Non-RT RIC RAN PM Measurement 정리
Non-RT RIC RAN PM Measurement
- 개요
- Non-RT RIC은 PM 측정을 처리하기 위한 solution을 제공함.
- PM 보고서는 XML 파일로, RAN에서 수집되어 저장되며 rApp은 원하는 resource를 구독하여 data를 저장된 파일을 통해 정보를 얻을 수 있음
-
구성요소
- PM Data File Collector : RAN에서 data file(XML) 가져옴
- PM File Converter : data형식 변경(XML -> JSON), 구조 및 내용 변경 x
- PM Producer : data 중 subscriber(rApp)가 원하는 data만 filtering 후 배포
- Influx Logger : 선택된 PM measurement를 시간 순으로 저장함 (시계열 database)
- HTTPS-SERVER : test용, RAN node에서 data 파일 전송하는 동작을 simulation
- third party products
- Minio : object 저장소로 file을 저장
- Kafka : data, message를 전송
- Influx : 시계열 database로, PM measurement를 시간에 따라 저장
-
Data flow
- VES event 송신
- PM report는 VES event에 포함
- data 이동경로 : RAN node -> VES collector
- VES event 수신
- kafka의 특정 topic에 VES event가 포함
- Data File Collector는 topic을 모니터링하여 event를 수신
- message 이동경로 : VES collector -> Data File Collector
- PM report 다운로드 받기
- Data File Collector는 RAN node로부터 RM report file(XML)을 다운로드
- VES event에서 지정된 전송protocol을 사용
- data 이동경로 : RAN node -> Data File Collector
- PM report 저장
- Data File Collector가 다운로드한 PM report를 Minio에 저장
- data 이동경로 : Data File Collector -> Minio
- 저장된 파일(PM report)관련 정보전달
- Kafka topic을 통해 저장된 파일 object에 대한 정보를 받음
- message 이동경로 : Data File Collector -> Data Converter
- 저장된 파일 가져오기
- Data Converter가 파일 저장소에서 XML 파일을 읽어옴
- data 이동경로 : Minio -> Data Converter
- 파일 변환
- Data 형식 변환 (XML -> JSON)하여 gzip으로 압축
- 파일 형식만 변환 o, 구조 및 내용 변환 x
- 새로운 report 사용가능 알림
- 완성된 JSON 형식의 PM report가 7번에서 완성
- 이를 Kafka topic을 통해 Data Producer에게 사용가능한 PM report가 생성되었다는 것을 알림
- message 이동경로 : Data Converter -> Data Producer
- 저장된 파일 가져오기
- Data Producer가 파일 저장소에서 JSON 파일을 읽어옴
- data 이동경로 : Minio -> Data Producer
- 구독자에게 데이터 전달
- Data Producer가 구독자(rApp)가 구독한 데이터만 필터링하여 rApp에 전달
- Kafka를 통해 전달
- data 이동경로 : Data Producer -> rApp
- PM Data를 시계열 DB에 저장
- PM data를 influxDB에 저장함
- rApp은 InfluxDB에 언제든지 접근 가능
-
data 이동경로 : Data Influx Logger -> InfluxDB
cf. 각각의 component들은 kafka를 통해 각 요소가 데이터를 이용할 수 있다는 메세지를 받은 후에, Minio에서 data를 읽어와 각자의 task를 수행하는 메커니즘인 것 같다.
- VES event 송신
PM Data Subscription (control flow)
- 구독은 PM measurement 데이터가 ICS를 사용하여 Information Job을 생성함으로써 설정됨.
1. Information Coordination Service (ICS)
- data subscription을 관리하는 중재자 역할
- DME(Data Management Exposure) in O-RAN
2. Information Job
- 어떤 data가 필요한지, 어디서 수신할지 정의
- 먼저, rApp과 Data Influx Logger는 원하는 data를 ICS를 통해 구독함
- 그 후, PM Data Producer는 구독을 확인하고 맞는 data를 구독자에 전달함
- BUT, Data Collector는 모든 PM data를 가져오기 때문에 구독을 사용하지 않음
PM Subscriber design time dependencies
Kafka
- 대규모 실시간 data 스트리밍을 위한 분산 이벤트 스트리밍 플랫폼
- opensource로 2011년에 공개
- Apache Software Foundation의 프로젝트
- 주요 기능
- 실시간 데이터 처리 : 실시간으로 data를 수집하고 처리하는데 사용
- 데이터 파이프라인 구축 : 서로 다른 시스템 간의 데이터 이동을 쉽게할 수 있도록 도와줌
- 이벤트 소싱, CQRS 패턴 : 시스템 상태 변화를 기록하고 필요할 때마다 재구성
- 분산 log 저장소 : data가 여러 broker에 걸쳐 분산 저장되어 장애에도 안전
- 구성 요소
- Producer
- 데이터를 Kafka 토픽에 게시하는 클라이언트
- 데이터 메시지를 생성하여 Kafka broker에 전송
- Broker
- Kafka 클러스터를 구성하는 서버
- 데이터를 저장하고 소비자에게 데이터를 제공
- 여러 브로커가 모여 클러스터를 형성하며, 데이터의 복제와 분산 저장을 담당
- Consumer
- Kafka에서 데이터를 읽어들이는 클라이언트
- 특정 토픽으로부터 메시지를 수신하여 처리
- Topic
- 메시지가 게시되는 카테고리나 피드
- 각각의 토픽은 파티션으로 나뉘어 데이터가 분산 저장
- Partition
- 토픽 내에서 메시지를 나누어 저장하는 단위
- 파티션 덕분에 Kafka는 확장성과 높은 처리량을 제공
- ZooKeeperKafka
- 클러스터의 메타데이터를 관리하고, 브로커 간의 협력을 지원하는 서비스
- 그러나, 최근 Kafka가 자체적인 메타데이터 관리 시스템을 도입하여 Zookeeper 의존성을 줄여가고 있음
- Producer