데브옵스
[구축사례] IPFIX와 Goflow2로 구현한 kt cloud Network 미터링 내재화
두줄요약
OVN 전환으로 기존 미터링 방식이 막히자 IPFIX와 Goflow2로 새 과금 계측 체계를 구축했습니다. 로컬 캐시 매핑과 자원 격리로 정확도와 성능을 함께 확보했습니다.
문제 상황
- ML2/OVN 전환으로 기존 Neutron-metering-agent의 iptables 기반 카운터 수집 불가
- 테넌트별 North-South 트래픽을 정확히 계측해야 하는 과금 신뢰성 요구
- 컴퓨트 노드 오버헤드와 데이터 정확도를 동시에 만족해야 하는 제약
원인 분석
- OVN은 OVS Flow로 라우팅해 리눅스 IP 스택과 iptables를 통과하지 않음
- sFlow는 샘플링 기반이라 과금용 정합성 확보에 한계
- IPFIX 원본 레코드만으로는 프로젝트 ID를 알 수 없어 보강 필요
해결 방법
- IPFIX와 Goflow2로 OVS Flow 단위 미터링 파이프라인 구성
- Goflow2에 로컬 메모리 캐시 기반 Enrichment 모듈을 커스터마이징해 IP와 Project ID 매핑
- Sampling Rate 1 유지 후 cache_active_timeout, cache_max_flows 튜닝으로 CPU와 정확도 균형 확보
성능/운영 포인트
- OVSDB/OVN SB DB 변경 구독으로 FIP/NAT 매핑 실시간 갱신
- Cgroups와 CPU Pinning으로 미터링 프로세스와 VM 자원 경합 차단
- UDP 손실과 중복 레코드 대응을 위한 sequence_num 기반 중복 제거
적용해볼 점
- 과금·정산처럼 정합성이 중요한 영역은 샘플링보다 전수 집계를 우선 검토
- 원격 조회 대신 로컬 캐시와 이벤트 동기화로 지연과 부하를 최소화
- 계측 프로세스는 격리 전략까지 함께 설계
