Ⅰ. 서론
특정 시설물에 대한 경비 혹은 범죄의 예방 및 보안의 목적으로 설치되는 CCTV 영상 녹화 시스템은 사건·사고에 대한 중요한 증거를 제공할 수 있는 장치로 많은 분야에서 활용되고 있다. 특히 최근 유무선 네트워크 통신기술의 발달로 인해 시스템 사용자는 언제 어디서든 디지털화된 영상 데이터를 전송받을 수 있게 되었다. 하지만, 오픈 네트워크 환경에서 악의적인 공격으로 유발된 시스템의 다운 혹은 시스템 자체가 가지고 있는 하드웨어 고장의 문제는 장비 운용 중에 필연적으로 발생할 수 있는 현상이다. 이러한 의도치 않은 문제로 발생하는 영상 녹화 데이터의 부재는 중요한 증거자료의 상실로도 이어질 수 있다.
물리적 네트워크 장치나 전원 공급 장치 혹은 네트워크상에서 여러 가지 서비스를 제공하는 서버들은 이러한 위협을 예방하기 위해 여러 가지 이중화 방안을 적용하고 있지만, 지금까지의 아날로그 CCTV 영상 녹화 장비에서는 이러한 기술이 거의 적용되지 않았다.
최근 디지털 영상 처리 기술의 발달로 인해, CCTV 영상 녹화기는 고화질·고용량의 데이터를 처리할 수 있을 만큼 성능이 개선되었다.[1][8] 불과 몇 년 전만 해도 Full HD (1920x1080)급 해상도의 영상이 표준으로 사용되었으나, 현재는 4K(3840x2160)급 혹은 8K(7680x4320)급 크기 이상의 영상을 전송하고 처리해야 한다. 또한 녹화 서버 1대가 처리해야 하는 카메라 채널의 수도 기하급수적으로 증가하고 있다.
본 논문에서는 고화질·고용량 데이터를 처리해야 하는 CCTV 네트워크 영상 녹화 환경에서 시스템 가용시간을 최대한 보장하기 위해 결함이나 외부 공격으로부터 녹화 데이터를 최대한 보호할 수 있는 장애 조치 방안을 제안한다. 제안하는 방안은 복수의 NVR 서버를 이용하여 이중화를 구성하는 시스템으로, 네트워크 부하를 최소화하고 장애 발생 시 CCTV 네트워크와 영상 녹화 데이터 가용성을 최대한 높인다.
본 논문의 구성은 2장에서 이중화와 CCTV 네트워크 영상 녹화 관련 연구에 대해서 논의하고 3장에서는 제안하는 방안을 설명한다. 4장에서 시스템의 성능을 평가하고 5장에서 결론 및 향후 연구 방향을 기술한다.
Ⅱ. 관련 연구
이 장에서는 본 논문과 관련 있는 일반적인 이중화 방식과 CCTV 네트워크 영상 녹화 환경에서 이중화를 적용할 때 고려해야 할 사항을 살펴본다.
1. 이중화 방식
시스템의 신뢰성과 무결성 향상을 위한 연구는 지금까지 많이 진행되어 왔으며 아주 중요한 연구 과제이다. 신뢰성을 높이는 방법으로 오류를 사전에 배제할 방법을 제시해야 하는데 이는 완전히 불가능하므로, 오류가 발생한 시점에 이를 대처하는 결함 허용(fault tolerance) 방법을 사용하여 신뢰성을 높인다.[2] 일반적으로 시스템의 결함 허용 방법으로 시스템에서 중요한 부분을 중복시켜 한 개 파트의 오류가 발생하더라도 중복된 다른 파트가 이를 대체하여 서비스를 계속할 수 있도록 만들어 줄 수 있는 이중화 방식을 많이 사용한다.
이중화 시스템은 복수의 시스템을 이용하여 서비스를 구성하는 것이므로, 장애가 발생하여도 시스템의 가용성을 높일 수 있어야 한다. 이중화 모델은 2N 이중화, N+M 이중화, N-Way 이중화, N-Way 액티브 이중화 모델이 있다. 일반적으로 시스템의 결함 내성을 위해 시스템의 중요 요소를 중복으로 배치해 하나의 노드에 오류가 발생하더라도 나머지 중복된 다른 노드가 이를 대체하여 서비스를 계속 유지하는 이중화 방식으로 구현한다.[3][4]
2. CCTV 네트워크 영상 녹화
CCTV 영상을 동축 케이블을 통해 캡처해서 저장 장치에 녹화하는 DVR(Digital Video Recorder)과 달리 네트워크 영상 녹화기(NVR: Network Video Recorder) 서버는 네트워크에 연결된 IP 카메라에서 RTSP / RTP 같은 프로토콜을 이용해 인코딩된 영상을 수신한다. NVR은 항상 IP 카메라에 연결되어 영상을 수신하고 녹화한다.
NVR과 IP 카메라는 본질적으로 모두 네트워크를 통해 연결되고 서로 통신하기 때문에, 고가용성을 위해 네트워크 서버에 적용하는 일반적인 로드 밸런싱이나 가상화를 이용한 이중화 방법을 사용할 수 있다.[5] 하지만 웹 서버나 저장 서버 같은 대부분 네트워크 서버는 외부 요청에 대해 독립적으로 처리를 완료하지만, NVR은 항상 IP 카메라에 연결한 상태로 영상을 수신하고 NVR에 장착된 저장 장치에 녹화한다. 이로 인해 액티브-액티브 방식 이중화를 적용하면 복수의 NVR이 동시에 IP 카메라에 연결되어 네트워크 부하가 증가할 뿐 아니라 저장 장치 사용량이 증가해서 유지 비용이 상승한다. CCTV 네트워크는 NVR 뿐 아니라 IP 카메라, 라우터 등으로 구성되기 때문에, 영상 녹화의 연속성과 고가용성을 확보하려면 NVR 뿐 아니라 IP 카메라, 라우터 등에 대한 장애 조치 방안도 필요하다.[9]
이중화로 구성한 NVR 그룹은 단일 NVR처럼 동작해야 비디오 관리 시스템(VMS)이나 통합 관제 시스템(CMS)이 NVR에 연결해서 라이브 영상을 표출하거나 녹화 영상을 검색할 수 있다. 단일 NVR처럼 동작하지 않으면 VMS / CMS는 NVR 이중화 상태를 파악하고 동작하는 추가기능이 필요하다.[6]
로드 밸런싱이나 고가용성을 구현하는 Keepalived[7] 같은 소프트웨어를 이용하면 기본 / 보조 NVR로 구성된 그룹에 가상 IP 주소를 할당해서 사용할 수 있다. 예를 들어, 두 NVR은 모두 실제 IP 주소가 따로 있지만, 정상 상태에서는 기본 NVR이 가상 IP를 할당받고 기본 NVR에 장애가 발생하면 보조 NVR이 가상 IP를 할당받도록 설정할 수 있다. 이 방식은 NVR에 쉽게 적용할 수 있고 라이브 영상을 끊김 없이 표출할 수 있지만, 각각의 NVR 에 따로 녹화된 카메라 영상을 합쳐서 검색하고 재생하는 추가 기능이 VMS / CMS에 필요하다.
Ⅲ. 규칙 기반 장애 조치 기법
본 논문에서는 CCTV 네트워크를 구성하는 다양한 요소의 장애를 검사하고 상태에 따라 카메라 연결 구성을 변경하는 기법을 제안한다. 장애 조치를 실행하는 NVR은 정의된 규칙에 따라 다른 NVR이나 IP 카메라, 라우터 등과 같은 검사 대상의 장애 상태를 주기적으로 검사하고 상태를 결정한다. 상태가 변경되면 상태별로 정의된 카메라 구성 정보를 이용해 카메라를 다시 연결한다. 검사 대상의 상태가 다시 정상으로 복구되면 영상 녹화 데이터를 기본 NVR에 다시 전송한다. 장애 조치가 실행되는 전체적인 흐름은 그림 1과 같다.
그림 1. 장애 조치 흐름도
Fig. 1. Failover Flowchart
이 장에서는 본 논문이 제안하는 장애 조치 규칙에 관해 설명하고, 이중화 대상과 방식에 따라 규칙을 적용하는 방법을 설명한다.
1. 장애 조치 규칙
본 논문에서 제안하는 장애 조치 방안은 규칙(rule)을 기반으로 동작한다. 규칙은 검사 대상과 방법, 상태별 카메라 구성 정보, 백업 정보로 구성된다.
NVR은 규칙에 명시된 네트워크 호스트가 동작하는지 검사해서 상태를 판단하고, 상태가 바뀌면 기존 상태의 카메라 구성을 해제하고 새로운 상태의 연결 정보를 이용해 카메라를 연결한다. 연결된 카메라의 영상은 자동으로 저장 장치에 녹화된다. 네트워크 호스트가 고장 상태에서 정상 상태로 되돌아가면(failback), 고장 상태에서 녹화된 영상을 지정한 네트워크 호스트에 전송해서 백업한 데이터를 복구한다.
규칙에 정의된 검사 대상 네트워크 호스트는 주기적으로 ICMP 패킷에 대한 응답 여부가 기록된다. 네트워크 불안정으로 인한 오류를 피하고자, 지정한 횟수 이상 연속으로 ICMP 응답이 없으면 고장(failure)으로 판단한다. 마찬가지로 고장 상태에서 지정한 횟수 이상 연속으로 ICMP 응답이 있으면 정상(normal)으로 판단한다. 검사 대상 네트워크 호스트에는 IP 카메라 또는 다른 NVR, 네트워크 게이트웨이 장비를 지정할 수 있다.
상태별 카메라 구성 정보는 NVR 카메라를 네트워크 호스트와 연결하는 데 사용된다. 카메라 구성 정보는 NVR 로컬 카메라 번호와 IP 카메라의 IP 주소, 채널 번호로 구성된 레코드의 집합이다. IP 카메라의 IP 주소를 지정하지 않으면(n/a) 아무 일도 하지 않고 대기 상태를 유지한다.
백업 정보에 NVR의 IP 주소와 카메라 정보를 정의하면 검사 대상이 정상 상태로 되돌아갈 때 고장 상태에서 녹화한 카메라 영상을 백업 NVR로 전송한다.
장애 조치를 실행하는 NVR은 복수의 규칙을 동시에 실행할 수 있다. 규칙별로 다른 네트워크 호스트를 지정해서 검사할 수 있고, 규칙별로 다른 NVR 카메라 목록을 구성할 수도 있다.
2. NVR 이중화
장애 조치 규칙을 기반으로 2대의 NVR을 이용해 액티브-스탠바이 방식 이중화를 구성할 수 있다. 스탠바이 상태의 보조 NVR은 장애 조치 규칙을 정의하고 실행한다. 액티브 상태의 기본 NVR을 검사 대상 네트워크 호스트로 지정한다. 정상 상태의 카메라 구성은 아무 일도 하지 않는 대기 상태로 지정하고, 고장 상태의 카메라 구성은 기본 NVR의 카메라 구성과 일치시킨다. 백업 정보에는 기본 NVR의 IP 주소와 카메라 정보를 지정해서 고장 상태에서 녹화된 카메라 영상을 나중에 다시 기본 NVR에 전송한다. (그림 2 참고)
그림 2. NVR 이중화 구조
Fig. 2. NVR Redundancy Scheme
3. NVR N+M 이중화
장애 조치를 실행하는 NVR은 복수의 규칙을 정의할 수 있기 때문에 스탠바이 상태의 보조 NVR 1대가 여러 액티브 상태의 기본 NVR의 정상 상태를 검사하고 조치할 수 있다. (그림 3 참고)
그림 3. NVR N+M 이중화 구조
Fig. 3. NVR N+M Redundancy Scheme
보조 NVR의 카메라 구성에서 기본 NVR의 카메라 간서로 겹치지 않게 정의되었지만, 환경에 따라 보조 NVR의 카메라를 여러 기본 NVR 카메라에 중복으로 지정해서 구성하는 방식도 허용된다.
4. IP 카메라 이중화
본 논문에서 제안하는 장애 조치 규칙을 이용하면 NVR 서버 이중화뿐 아니라 IP 카메라 이중화도 가능하다. 2대의 IP 카메라가 같은 장소에 설치되어 가동되지만, 1대는 액티브 상태의 기본 노드 역할을 하고 다른 1대는 스탠바이 상태로 보조 노드 역할을 한다. 장애 조치를 실행하는 NVR은 기본 IP 카메라에 연결해서 영상을 수신해서 녹화하다가 장애가 발생하면 보조 IP 카메라에 연결해서 계속 작업을 진행한다. (그림 4 참고)
그림 4. IP Camera 이중화 구조
Fig. 4. IP Camera Redundancy Scheme
만일 보안과 안정성을 위해 IP 카메라를 각각 다른 라우터를 통해 다른 서브 네트워크에 연결한 환경이라면 검사 대상 네트워크 호스트에 IP 카메라가 아닌 라우터의 주소를 지정하면 된다.
Ⅳ. 실험 및 결과
이 장에서는 본 논문에서 제안하는 장애 조치 방안을 기존 NVR 장비에 구현하고 이를 이용한 장애 조치 실험 결과를 분석한다.
1. 구현
장애 조치 기능을 구현할 NVR은 네트워크 카메라 목록과 로컬 카메라 목록을 정의한다. 네트워크 카메라 목록은 네트워크 IP 카메라의 IP 주소, 인증 정보, 프로토콜 등과 같은 연결 정보를 정의한다. 로컬 카메라 목록은 각 카메라가 실제로 연결할 네트워크 카메라 정보를 구성한다. (그림 5 참고)
그림 5. NVR 로컬 네트워크 카메라 설정
Fig. 5. NVR Local / Network Camera Setting
장애 조치 규칙은 JSON 형식으로 설정 파일에 저장된다. NVR은 시스템이 시작할 때 이 설정 파일을 읽어 들여 내부 자료구조로 변환하고, 전담 스레드(thread)를 생성해서 규칙에 따라 검사 대상 네트워크 호스트의 상태를 검사한다. 상태가 변경되면 네트워크 카메라 영상의 연결을 해제하고 영상 녹화를 멈춘 뒤에 새로운 상태의 네트워크 카메라 구성 정보를 이용해 로컬 카메라를 설정한 뒤 다시 연결하여 영상 녹화를 시작한다. 대상 네트 워크 호스트가 다시 정상 상태로 복구되면 녹화된 영상을 지정한 호스트에 전송한다.
2. 실험
NVR 액티브-스탠바이 방식 이중화 방식을 실험하기 위해 NVR 장비 2대와 IP 카메라 2대를 스위치 허브에 연결하고 가상의 실험 환경을 구성했다. 기본 NVR(192.168.1.1)은 2대의 IP 카메라(192.168.2.1 / 192.168.2.2)에 연결하여 영상을 녹화하고, 보조 NVR(192.168.1.2)은 대기 상태로 장애 조치 규칙을 실행한다. 장애 조치 규칙은 기본 NVR의 상태를 1초 주기로 검사하면서 3회 이상 같은 상태가 감지되면 상태가 변경된 것으로 판단한다. 기본 NVR이 고장 상태가 되면 2대의 IP 카메라에 연결하여 녹화를 계속 진행하고 기본 NVR이 다시 정상 상태가 되면 IP 카메라에 대한 연결을 해제하고, 녹화된 영상을 기본 NVR에 전송하도록 설정했다. 장애 조치 규칙을 JSON 형식으로 기술하면 그림 6과 같다.
그림 6. NVR 액티브 스탠바이 장애 조치 규칙
Fig. 6. NVR Active-Standby Failover Rule
실험을 위해 IP 카메라에 연결되어 정상적으로 녹화 작업을 수행하는 기본 NVR과 스위치 허브 간의 네트워크 이더넷 선을 강제로 오프라인 상태로 만들고 5분 후에 다시 온라인 상태로 만드는 과정을 반복하면서 NVR 의 절체 시간과 녹화 손실 시간을 측정했다. 절체 시간은 기본 NVR의 이더넷 선이 오프라인 상태가 된 후 보조 NVR이 이를 감지하기까지 걸리는 시간을 측정했고, 녹화 손실 시간은 보조 NVR이 IP 카메라에 연결하여 녹화를 시작하기까지 걸리는 시간을 측정했다. 실험 결과는 표 1과 같다.
표 1. NVR 절체 시간 / 녹화 손실 시간
Table 1. NVR Takeover / Recording Loss Time
장애 조치 기법이 적용되지 않은 NVR은 운영자의 수작업 조치로 인해 절체 시간과 녹화 손실 시간이 가변적이다. 하지만, 실험 결과를 통해 규칙 기반 장애 조치를 적용한 NVR은 평균 3.9초의 절체 시간이 발생하고, 평균 8.9초의 녹화 손실 시간이 발생함을 알 수 있다. 녹화 손실 시간과 절체 시간의 차이는 대부분 영상을 수신하기 위해 IP 카메라에 RTSP 프로토콜을 연결하는 과정에서 발생한다.
Ⅴ. 결론
CCTV 영상 관제에서 발생할 수 있는 결함의 문제는 향후 치명적인 손상을 일으킬 수 있다. 이를 방지하기 위해 이중화를 통한 서버 신뢰성 관리가 필요하다. 본 논문에서는 CCTV 네트워크 영상 녹화 환경에서 고용량 고화질 데이터 처리를 위한 장애 조치 방안을 제안하고 검증했다. 이중화를 통해 장애 발생 시 녹화보장 시간을 최소화하고, 녹화 지속성을 유지함으로써 CCTV 증거자료의 보존 확률을 높일 수 있었다. 또한, 환경에 따라 필요한 이중화 방식에 따라 장애 조치 규칙을 정의하면 NVR 이중화 뿐 아니라 IP 카메라 이중화에도 활용할 수 있다.
향후에는 고장이 발생한 시점부터 절체가 발생하는 시점까지 손실되는 영상 녹화 데이터를 최소화하기 위한 연구가 더 필요한 것으로 사료된다.
References
- Jeon Yong Sung, Han Jong Wook and Cho Hyun Sook, "Next Generation Video Security Technology Trend" REVIEW OF KIISC, Vol. 20, No. 3, pp. 9-17, 2010.
- Jae-Weon Choi, "Foundation Techniques and Cooperation Test of Fault-tolerant Domain Name Servers for Internet Name Resolution", Journal of Korean Institute of Marine Information and Communication Sciences, Vol. 15, No. 1, Jan. 2011.
- Dong Hyun Kim and Yutae Lee, "Availability Analysis of 2N Redundancy System Using Stochastic Models" Journal of the Korea Institute of Information and Communication Engineering, Vol. 18, No. 11, pp. 2634-2639, Nov, 2014. https://doi.org/10.6109/jkiice.2014.18.11.2634
- Sung-Hwa Lim, "Process Migration Scheme based on Dynamic Fault Avoidance Strategies for Dependable Real-time Multimedia Services" Journal of the Korea Entertainment Industry Association, Vol. 8, No. 3, pp. 145-149, Sep, 2014. DOI: https://doi.org/10.21184/jkeia.2014.09.8.3.145
- Y. H. Lee, “A Study on Logical Redundancy Network Implementation Using Network Virtualization,” Journal of KIIT, Vol. 12, No. 5, pp. 107-113, May 2014. DOI: https://doi.org/10.14801/kiitr.2014.12.5.107
- H. Chiao, C. Lin, Y. Chang, R. Sheu, L. Chen and S. Yuan, "A Fault-Tolerant ONVIF Standard Extension for Cloud-Based Surveillance Systems" 2017 IEEE 7th International Symposium on Cloud and Service Computing (SC2), Kanazawa, pp. 201-208, 2017. DOI: https://doi.org/10.1109/SC2.2017.38
- CASSEN, Alexandre, "Keepalived: Health checking for LVS & high availability", Available From: http://www.keepalived.org (cited Mar. 21, 2019)
- Soonduck Yoo, Daehyun Ryu, "A Study on the Promotion Method of Domestic Video Security Industry", Journal of The Institute of Internet, Broadcasting and Communication, Vol. 17, No. 3, June. 2017.
- Kwang-Hyoung Lee and Young-Hun Jung, "Implementation of Real-Time Security System by using Dual Camera", Journal of the Korea Academia-Industrial cooperation Society (JKAIS), Vol. 10, No. 1, pp. 158-164, 2009. https://doi.org/10.5762/KAIS.2009.10.1.158