KR101181445B1 - Storage Apparatus of Network Video Recorder - Google Patents
Storage Apparatus of Network Video Recorder Download PDFInfo
- Publication number
- KR101181445B1 KR101181445B1 KR1020100084664A KR20100084664A KR101181445B1 KR 101181445 B1 KR101181445 B1 KR 101181445B1 KR 1020100084664 A KR1020100084664 A KR 1020100084664A KR 20100084664 A KR20100084664 A KR 20100084664A KR 101181445 B1 KR101181445 B1 KR 101181445B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- file system
- codeword
- media data
- rspm
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/202—Non-volatile memory
- G06F2212/2022—Flash memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-shaped record carriers
- G11B2220/25—Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
- G11B2220/2508—Magnetic discs
- G11B2220/2516—Hard disks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
본 발명은 네트워크 기반 비디오 레코더의 저장 장치에 관한 것으로, 사용자에 의해 작성된 응용프로그램, 상기 응용프로그램의 호출에 대응되는 입출력 요청을 생성하는 가상 파일 시스템, 상기 가상 파일 시스템의 입출력 요청에 대응되는 파일을 입출력하는 파일 시스템을 포함하여 구성되는 네트워크 기반 비디오 레코더의 저장 장치에 있어서, 상기 파일 시스템은, 영상 및 음성을 포함하는 미디어 데이터는 상기 미디어 데이터 복구를 위한 부호어를 채널코딩으로 생성하고, 생성된 부호어를 이용하여 손실된 데이터를 복구하고, 운영 체제 또는 전용 응용프로그램과 관련된 시스템 데이터는 상기 시스템 데이터가 저장된 제1 저장매체와 별도로 제2 저장매체에 상기 시스템 데이터의 복사본을 작성하는 미러링(Mirroring)을 수행하고 상기 시스템 데이터의 복사본을 이용하여 상기 시스템의 손실된 데이터를 복구하는 RSPM(Reliable Storage using Parity and Mirroring) 파일 시스템인 것을 특징으로 한다.
상기와 같이 구성된 본 발명에 따르면 많은 공간을 필요로 하며 2차적인 복원 수단이 존재하는 미디어 데이터는 패리티 코드와 Liberation 코드에 의한 부호어를 생성하며 이를 이용하여 데이터 손실을 복구함으로써 평균 약 11.289%의 데이터 손상을 방지할 수 있는 효과가 있으며, 시스템 데이터의 데이터는 손실 즉시 대체할 수 있는 동적 미러링 기법을 적용함으로써 예기치 않은 오류에도 실시간으로 촬영할 수 있는 환경을 제공할 수 있는 효과가 있다.The present invention relates to a storage device of a network-based video recorder, comprising: an application written by a user, a virtual file system generating an input / output request corresponding to a call of the application program, and a file corresponding to an input / output request of the virtual file system. In the storage device of a network-based video recorder comprising a file system for inputting and outputting, the file system, the media data including video and audio is generated by channel coding codewords for the media data recovery, Recovers lost data using codewords and mirrors system data related to an operating system or a dedicated application to make a copy of the system data on a second storage medium separate from the first storage medium on which the system data is stored. And having said system Using a copy of the emitter to the lost data in the system, characterized in that (Reliable Storage using Parity and Mirroring) RSPM file system to recover.
According to the present invention configured as described above, media data that requires a lot of space and there is a secondary recovery means generates a codeword by a parity code and a Liberation code and recovers data loss using the average of about 11.289%. Data corruption can be prevented, and data in system data can be replaced in real time by applying a dynamic mirroring technique that can be replaced immediately after loss.
Description
본 발명은 네트워크 기반 비디오 레코더의 저장 장치에 관한 것으로, 더욱 상세하게는 미디어 데이터의 손상 복구가 가능하고 시스템 데이터의 오류에 실시간으로 대응 가능한 네트워크 기반 비디오 레코더의 저장 장치에 관한 것이다.The present invention relates to a storage device of a network-based video recorder, and more particularly, to a storage device of a network-based video recorder capable of recovering damage to media data and responding to errors in system data in real time.
최근 촬영 기술의 발달과 네트워크 기술의 발전 및 비용 하락에 의하여 영상 감시 시스템은 기존에 비하여 더욱 폭넓게 사용되고 있다. Recently, due to the development of photographing technology, the development of network technology, and the decrease of costs, the video surveillance system is more widely used than before.
즉, 범용적으로 사용되는 보안 용도 이외에도 초등학생 등하교길 감시, 공장 생산 라인 감시, 쇼핑몰 손님 현황 분석 등, 다양한 분야에서 활용되고 있으며 근래에도 지속적으로 발전하고 있다. 과거 아날로그 방식으로 영상을 촬영하여 비디오테이프에 기록하는 VCR(Video Cassette Recorder) 방식은 기록 매체를 비디오테이프에서 디지털 미디어로 변경하는 DVR(Digital Video Recorder)시스템으로 발전하였다. 또한, 네트워크 기술의 발전 및 인프라가 구축됨에 따라 도 1과 같이 IP 카메라와 비디오 서버에 원격으로 접속하여 재생 및 제어를 수행할 수 있는 네트워크 기반 비디오 레코더(NVR, Network Video Recorder)가 출현하였다.In other words, in addition to the general-purpose security applications, it is being used in various fields such as elementary school students' way to school, school production line monitoring, shopping mall visitor status analysis, etc. and is continuously developing in recent years. In the past, the video cassette recorder (VCR) method, which records images on a video tape by analog recording, has evolved into a DVR (Digital Video Recorder) system that changes recording media from video tape to digital media. In addition, as network technologies have been developed and infrastructures have been established, network-based video recorders (NVRs) capable of remotely accessing and controlling IP cameras and video servers have emerged as shown in FIG. 1.
한편, 기존의 네트워크 기반 비디오 레코더는 전체 시스템의 규모에 따라 수량의 차이는 있지만 공통적으로 하드 디스크를 저장장치로 사용하였다. 또한 개인용 PC 환경에서 사용하는 것과 동일한 파일 시스템을 사용하였다. On the other hand, the existing network-based video recorder has a hard disk as a storage device, although the quantity varies depending on the size of the entire system. We also used the same file system that we used in the personal PC environment.
그러나 이러한 하드 디스크는 다양한 이유로 오류를 일으킨다. 오류의 종류는 크게 데이터의 분실과 손실로 분류할 수 있다. 데이터의 분실은 Servo영역 손실, 헤드 트랙 이탈, SMART 기한 초과, 컨트롤러 불량 등의 원인으로 인하여 일어나며 주로 하드웨어 또는 펌웨어 영역에서 발생한다. 데이터의 분실 오류는 오류가 일어나는 영역이 크고 명확하여 오류의 탐지가 용이하다. 따라서 많은 연구가 이루어졌으며 충분한 대책이 이루어졌다.However, these hard disks cause errors for various reasons. Types of errors can be classified into data loss and loss. Loss of data occurs due to loss of Servo area, head track deviation, SMART time limit, controller failure, etc., mainly in hardware or firmware area. Data loss errors are easy to detect because the area where the error occurs is large and clear. Therefore, much research has been done and sufficient measures have been taken.
데이터의 손실은 장치 노화, 비트 전송 오류, 과열 또는 부식에 의한 데이터 손실, 플래터의 흠집에 의한 손실 등에 인하여 국지적으로 발생되며, 이는 실제 데이터의 입출력이 시도되지 않으면 탐지되지 않는 잠재적인 오류이다. 대표적인 데이터 손실 오류는 하드 디스크의 불량 섹터 오류로 하드 디스크 특정 섹터의 데이터가 완전히 소실될 수 있다.Data loss occurs locally due to device aging, bit transmission errors, data loss due to overheating or corrosion, and loss due to scratches on the platters, which are potential errors that are not detected unless actual input / output of the data is attempted. Representative data loss errors are bad sector errors in the hard disk, which can result in complete loss of data in a particular hard disk sector.
이렇게 하드 디스크의 데이터의 분실 오류를 해결하기 위해 일반적으로 복수의 하드 디스크를 활용하는 RAID(Redundant Arrays of Inexpensive Disks)방법이 제안되었다. RAID 방법은 복수의 하드 디스크에 분산하여 데이터를 저장하여 입출력 성능을 향상시키는 스트라이핑 방법, 복사본을 만들어 두는 미러링 방법, 비트 단위의 오류를 검출, 복구하는데 적합한 ECC(Error Correction Code), 블록 단위의 오류를 검출, 복구하기 위한 패리티 방법 등이 있는데, 이를 이용함으로써 하드 디스크의 성능과 신뢰성을 향상시킬 수 있다.In order to solve such a data loss error of a hard disk, a RAID (Redundant Arrays of Inexpensive Disks) method using a plurality of hard disks in general has been proposed. The RAID method is a striping method for distributing data to a plurality of hard disks to improve I / O performance, a mirroring method for making a copy, an error correction code (ECC) suitable for detecting and recovering bit errors, and a block error. There is a parity method for detecting and recovering the data. By using this, the performance and reliability of the hard disk can be improved.
하지만 규모가 작은 시스템을 구성 시, 복수의 저장장치를 사용하기 어려운 경우가 있다. 또한 RAID 방법은 일반적으로 디바이스 드라이버 또는 펌웨어 영역에서 구현되기 때문에 데이터의 특성에 따라 차별화된 신뢰성 방법을 적용할 수 없는 문제점이 있었다.However, when configuring a small system, it may be difficult to use multiple storage devices. In addition, since the RAID method is generally implemented in the device driver or firmware area, there is a problem in that a different reliability method cannot be applied depending on the characteristics of the data.
또한, 개인용 PC 환경의 파일 입출력 요청과 네트워크 기반 비디오 레코더 환경의 파일 입출력 요청은 서로 다른 특성을 보인다. 개인용 PC 환경의 파일 입출력 요청은 대부분 그 크기가 작으며 공통적인 패턴 없이 무작위 발생하는 특성을 보이고 있지만 네트워크 기반 비디오 레코더의 파일 입출력 요청은 각 요청의 크기가 크며, 일정한 패턴이 반복되는 특성을 보이고 있다. 따라서 이러한 특성을 감안하여 네트워크 기반 비디오 레코더의 특성에 부합하여 하드 디스크의 입출력 성능을 최대한 높일 수 있는 파일 시스템이 요구되는 실정이었다.In addition, file I / O requests in a personal PC environment and file I / O requests in a network-based video recorder environment have different characteristics. Most file I / O requests in personal PC environment are small in size and randomly occur without a common pattern. However, file I / O requests of network-based video recorders are large in size and repeat a certain pattern. . Therefore, in consideration of these characteristics, a file system capable of maximizing the input / output performance of a hard disk in accordance with the characteristics of a network-based video recorder is required.
하지만 네트워크 기반 비디오 레코더는 저장장치에 대용량의 쓰기 연산을 반복적으로 수행하게 되므로 저장장치가 쉽게 노화되는 문제점이 있었다. 이에 따라 불량 섹터가 많아지며 데이터의 손상 가능성이 높아질 뿐만 아니라 불안정한 네트워크상황, 사용자의 잘못된 조작, 외부 충격 등에 의해서 촬영된 영상 데이터 및 시스템 데이터가 손실될 수 있다. However, the network-based video recorder repeatedly performs a large amount of write operations on the storage device, which causes the storage device to easily age. As a result, the number of bad sectors increases, the possibility of data corruption increases, and image data and system data captured by an unstable network situation, a wrong operation of a user, an external shock, etc. may be lost.
그러나 기존 네트워크 기반 비디오 레코더에 사용되는 파일 시스템에 따르면 이러한 손실에 충분히 대비되어 있지 않아 저장장치의 신뢰성이 보장되지 않았다.However, according to the file system used in existing network-based video recorders, the loss of reliability is not guaranteed because it is not sufficiently prepared for such losses.
또한, 네트워크 기반 비디오 레코더는 감시하거나 촬영한 영상 데이터를 저장장치에 저장하고 보존하여 사고나 범죄 발생 시 원인 분석의 중요한 단서로 활용되므로 저장된 데이터에 대하여 높은 신뢰도가 요구되는 실정이었다.In addition, since network-based video recorders store and preserve video data recorded and stored in storage devices, they are used as important clues for cause analysis in the event of an accident or crime. Therefore, high reliability is required for the stored data.
본 발명은 상술한 종래 기술의 문제점을 해결하기 위한 것으로서, 본 발명의 목적은 네트워크 기반 비디오 레코더의 저장 장치의 데이터 유형에 따라 다음과 같이 손실된 데이터의 복구를 차별화시킨다. 즉, 미디어 데이터에 대하여 채널코딩을 통하여 부호어를 생성하고 생성된 부호어를 이용하여 손상된 데이터를 복구하며, 시스템 데이터에 대하여 매핑테이블을 이용하여 별도의 저장매체에 상기 시스템 데이터의 복사본을 저장하고 저장된 시스템 데이터의 복사본을 이용하여 손상된 데이터를 복구함으로써 신뢰성 있는 데이터의 복구 및 시스템의 실시간성 유지가 가능한 네트워크 기반 비디오 레코더의 저장 장치를 제공하는 것이다.
SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned problems of the prior art, and an object of the present invention is to differentiate the recovery of lost data according to the data type of the storage device of the network-based video recorder as follows. That is, a codeword is generated through channel coding for media data, the damaged data is recovered using the generated codeword, and a copy of the system data is stored in a separate storage medium using a mapping table for system data. The present invention provides a storage device of a network-based video recorder capable of restoring damaged data by using a copy of stored system data, thereby enabling reliable recovery of data and maintaining system real-time.
사용자에 의해 작성된 응용프로그램, 상기 응용프로그램의 호출에 대응되는 입출력 요청을 생성하는 가상 파일 시스템, 상기 가상 파일 시스템의 입출력 요청에 대응되는 파일을 입출력하는 파일 시스템을 포함하여 구성되는 네트워크 기반 비디오 레코더의 저장 장치에 있어서, 상기 파일 시스템은, 영상 및 음성을 포함하는 미디어 데이터는 상기 미디어 데이터 복구를 위한 부호어를 채널코딩으로 생성하고, 생성된 부호어를 이용하여 손실된 데이터를 복구하고, 운영 체제 또는 전용 응용프로그램과 관련된 시스템 데이터는 상기 시스템 데이터가 저장된 제1 저장매체와 별도로 제2 저장매체에 상기 시스템 데이터의 복사본을 작성하는 미러링(Mirroring)을 수행하고 상기 시스템 데이터의 복사본을 이용하여 상기 시스템의 손실된 데이터를 복구하는 RSPM(Reliable Storage using Parity and Mirroring) 파일 시스템인 것을 특징으로 한다.An application program created by a user, a virtual file system generating an input / output request corresponding to an invocation of the application program, and a file system for inputting and outputting a file corresponding to the input / output request of the virtual file system. In the storage device, the file system, the media data including the video and audio to generate a codeword for the media data recovery by channel coding, recover the lost data using the generated codeword, operating system Alternatively, the system data related to a dedicated application program may perform mirroring to create a copy of the system data on a second storage medium separately from the first storage medium in which the system data is stored, and use the copy of the system data. RS to recover lost data It is a PM (Reliable Storage using Parity and Mirroring) file system.
본 발명에 따른 네트워크 기반 비디오 레코더의 저장 장치에서, 상기 부호어의 생성은, 스트라이핑된 복수의 미디어 데이터를 상호 XOR(Exclusive OR)연산하여 제1 부호어를 생성하고, 상기 스트라이핑된 미디어 데이터와 이에 대응되는 부호 분산 행렬(Coding Distribution Matrix)을 각각 XOR연산한 후 상기 XOR연산된 데이터를 상호 곱셈 연산하여 제2 부호어를 생성하는 것을 특징으로 하되, 상기 부호 분산 행렬은 하기 수학식 2와 같이 산출되되, I→i는 i가 증가함에 따라 행렬 값이 오른쪽으로 1 비트씩 이동하며, Oy,y+i-1는 (y,y+i-1)에 해당되는 행과 열의 값이 1이고 나머지 행렬인 것을 일 특징으로 한다.In the storage device of a network-based video recorder according to the present invention, the generation of the codeword may include generating a first codeword by performing an XOR (Exclusive OR) operation on a plurality of striped media data, and generating the first codeword. The second codeword is generated by performing XOR operation on each corresponding coding distribution matrix and multiplying the XOR-operated data, wherein the code distribution matrix is calculated as Equation 2 below. Where I → i is the value of the matrix shifted 1 bit to the right as i increases, and Oy, y + i-1 is the value of the row and column corresponding to (y, y + i-1) is 1 and the rest It is characterized by being a matrix.
본 발명에 따른 네트워크 기반 비디오 레코더의 저장 장치에서, 상기 미디어 데이터의 부호어 생성은, 버퍼(Buffer)에 상기 미디어 데이터를 일정 단위로 저장한 후 상기 일정단위로 저장된 미디어 데이터를 방출하고 상기 방출된 일정단위의 미디어 데이터에 대하여 부호어를 생성하는 것을 다른 특징으로 한다.In the storage device of a network-based video recorder according to the present invention, the codeword generation of the media data may include storing the media data in a buffer in a predetermined unit and then releasing the media data stored in the predetermined unit, Another feature is that codewords are generated for a predetermined unit of media data.
본 발명에 따른 네트워크 기반 비디오 레코더의 저장 장치에서, 상기 제1 저장매체는 하드 디스크이고, 상기 제2 저장매체는 플래쉬 메모리인 것을 또 다른 특징으로 한다.In the storage device of a network-based video recorder according to the present invention, the first storage medium is a hard disk, and the second storage medium is another feature of the flash memory.
본 발명에 따른 네트워크 기반 비디오 레코더의 저장 장치에서, 상기 미러링은 매핑테이블(Mapping Table)을 통하여 시스템 데이터의 복사본이 제2 저장매체에 동적으로 할당되어 저장되는 것을 또 다른 특징으로 한다.In the storage device of a network-based video recorder according to the present invention, the mirroring is another feature that a copy of system data is dynamically allocated to and stored in a second storage medium through a mapping table.
본 발명에 따른 네트워크 기반 비디오 레코더의 저장 장치에서, 상기 시스템 데이터가 변경되면 상기 매핑테이블을 통하여 상기 시스템 데이터의 복사본도 변경되는 것을 또 다른 특징으로 한다.In the storage device of a network-based video recorder according to the present invention, when the system data is changed, a copy of the system data is also changed through the mapping table.
본 발명에 따른 네트워크 기반 비디오 레코더의 저장 장치에서, 상기 매핑테이블은 이진 트리로 구성된 것을 또 다른 특징으로 한다.In a storage device of a network-based video recorder according to the present invention, the mapping table is another feature of a binary tree.
이상에서 상세히 설명한 바와 같이 상기 네트워크 기반 비디오 레코더의 저장 장치에 따르면 많은 공간을 필요로 하며 2차적인 복원 수단이 존재하는 미디어 데이터는 패리티 코드와 Liberation 코드에 의한 부호어를 생성하며 이를 이용하여 데이터 손실을 복구함으로써 평균 약 11.289%의 데이터 손상을 방지할 수 있는 효과가 있으며, 시스템 데이터의 데이터는 손실 즉시 대체할 수 있는 동적 미러링 기법을 적용함으로써 예기치 않은 오류에도 실시간으로 촬영할 수 있는 환경을 제공할 수 있는 효과가 있다.
As described in detail above, according to the storage device of the network-based video recorder, a large amount of space is required and media data having a secondary restoration means generates code words based on a parity code and a Liberation code. By recovering the data, an average of 11.289% of data corruption can be prevented, and the data of the system data can be replaced in real time by providing a dynamic mirroring technique that can replace the data immediately. It has an effect.
도 1은 통상적인 네트워크 기반 비디오 레코더(NVR, Network Video Recorder)를 도시한 도면이다.
도 2는 본 발명에 따른 네트워크 기반 비디오 레코더의 저장 장치를 도시한 도면이다.
도 3은 리눅스에서 사용되는 EXT3 파일시스템의 구조를 도시한 도면이다.
도 4는 데이터의 분류 및 시스템 데이터의 쓰기 연산에 대한 순서도이다.
도 5는 본 발명에 따른 RSPM 파일시스템에서 미디어 데이터에 대하여 지연쓰기를 도시한 도면이다.
도 6은 지연쓰기의 쓰기 연산 순서를 도시한 순서도이다.
도 7은 본 발명에 따른 RSPM 파일시스템에서 수행되는 비트 행렬 코딩 시스템의 인코딩 연산 예시를 도시한 도면이다.
도 8은 본 발명에 따른 RSPM 파일시스템에서 수행되는 Liberation 코드 고유의 CDM을 산출하는 예시를 도시한 도면이다.
도 9는 본 발명에 따른 RSPM 파일시스템에서 수행되는 미디어 데이터의 복구를 위한 디코딩 연산의 예시를 도시한 도면이다.
도 10은 본 발명에 따른 RSPM 파일시스템에서 동적 미러링 방법에 사용되는 이진 트리의 예시를 도시한 도면이다.
도 11은 도 9와 표 3의 데이터를 기반으로 하는 손상된 미디어 데이터의 검색 예시이다.
도 12는 60분의 촬영 시간을 100%로 가정할 때 인코딩 시간의 비율을 도시한 도면이다.
도 13은 본 발명에 따른 RSPM 파일시스템에 대하여 스트레스 테스트로 전체 하드디스크 중 생성된 오류의 비율과 이에 따른 패리티 코드와 Liberation 코드의 복원율을 도시한 도면이다.
도 14는 본 발명에 따른 RSPM 파일시스템에 대하여 와이블 분포에 따른 데이터의 손상률을 도시한 도면이다.1 is a diagram illustrating a conventional network-based video recorder (NVR).
2 illustrates a storage device of a network-based video recorder according to the present invention.
3 is a diagram illustrating the structure of the EXT3 file system used in Linux.
4 is a flow chart for the classification of data and the write operation of system data.
5 is a diagram illustrating delayed writing of media data in an RSPM file system according to the present invention.
6 is a flowchart showing a write operation sequence of delayed writing.
7 illustrates an example of an encoding operation of a bit matrix coding system performed in an RSPM file system according to the present invention.
8 is a diagram illustrating an example of calculating a CDM unique to a Liberation code performed in an RSPM file system according to the present invention.
9 is a diagram illustrating an example of a decoding operation for the recovery of media data performed in the RSPM file system according to the present invention.
10 illustrates an example of a binary tree used in a dynamic mirroring method in an RSPM file system according to the present invention.
FIG. 11 is an example of searching for damaged media data based on the data of FIG. 9 and Table 3. FIG.
FIG. 12 is a diagram illustrating a ratio of encoding times when assuming a 60-minute shooting time is 100%.
FIG. 13 is a diagram illustrating a ratio of an error generated in an entire hard disk by a stress test to a RSPM file system according to the present invention, and a recovery rate of a parity code and a Liberation code according to the present invention.
14 is a diagram illustrating a data corruption rate according to a Weibull distribution for the RSPM file system according to the present invention.
이하에서는 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명하기로 한다.
Hereinafter, with reference to the accompanying drawings, preferred embodiments of the present invention will be described in detail.
네트워크 기반 비디오 레코더의 비디오 서버는 기본적으로 하나의 하드 디스크를 가진다. 하드 디스크 내의 불량 섹터가 발생하여 데이터의 일부가 손상되는 경우가 종종 발생한다. 이에 대한 대응책이 기존의 네트워크 기반 비디오 레코더에는 마련되어 있지 않다. 이를 극복하기 위하여 본 발명은 하나의 플래시 메모리를 추가 장착하는 RSPM(Reliable Storage using Parity and Mirroring) 파일시스템을 제공한다. 추가된 플래시 메모리에는 시스템 데이터의 사본, 채널 코딩 방법의 부호어 일부를 저장한다. 하드 디스크가 손상된 경우에는 상기 플래시 메모리에 저장된 데이터를 이용하여 하드 디스크에 저장된 데이터들의 손상을 복구할 수 있다. 본 발명의 구체적인 구성은 다음과 같다.
The video server of a network-based video recorder basically has one hard disk. Often bad sectors in the hard disk occur and some of the data is corrupted. There is no countermeasure against existing network-based video recorders. In order to overcome this problem, the present invention provides a Reliable Storage Using Parity and Mirroring (RSPM) file system in which one flash memory is additionally installed. The added flash memory stores a copy of the system data and a part of a codeword of a channel coding method. If the hard disk is damaged, the data stored in the flash memory can be repaired by using the data stored in the flash memory. The specific configuration of the present invention is as follows.
도 2는 본 발명에 따른 네트워크 기반 비디오 레코더의 저장 장치(10)를 도시한 도면이다. 도 2에 따르면 본 발명에 따른 네트워크 기반 비디오 레코더의 저장 장치(10)는 응용 프로그램 계층(100), 가상 파일 시스템(200) 및 RSPM 계층(300)을 포함하여 이루어진다. 2 shows a
RSPM 계층(300)은 RSPM 파일시스템(310), RSPM 블록 디바이스 드라이버(320), 및 RSPM 블록 디바이스(330)를 포함하여 이루어지며, RSPM 블록 디바이스(330)는 플래시 메모리(331)와 하드디스크(332)로 이루어진다.The
구체적인 구성을 살펴보면, 응용프로그램 계층(100)은 사용자에 의해 작성된 응용 프로그램을 나타내며 시스템 콜(Call)을 통해 가상 파일 시스템(200)에 접근할 수 있다. 가상 파일 시스템(200)은 RSPM 파일 시스템(310)과 상호작용하여 RSPM 블록 디바이스 드라이버(320)에 적합한 입출력 요청을 생성한다. RSPM 파일 시스템(310)은 EXT3 파일 시스템을 기반으로 입출력 요청에 패리티 코드나 Liberation 코드와 같은 채널 코딩과 동적 미러링 방법을 적용한다. 채널 코딩 방법과 동적 미러링에 대해서는 후술한다. Looking at a specific configuration, the
RSPM 블록 디바이스 드라이버(320)는 하나의 플래쉬 메모리(331) 및 하나의 하드 디스크(332)를 하나의 단위 디바이스로 간주한 RSPM 블록 디바이스(330)를 제어한다.The RSPM
여기서 EXT3 파일 시스템은 리눅스 범용 파일 시스템으로서 많은 네트워크 기반 비디오 레코더가 임베디드 리눅스 환경에서 작동하고 있어 채택되고 있는 파일 시스템이다. EXT3는 EXT2가 발전된 형태로 도 3에 도시된 바와 같이 저널링 기능이 추가되어 신뢰성을 향상시켰다. Here, the EXT3 file system is a Linux general-purpose file system that is adopted by many network-based video recorders operating in an embedded Linux environment. EXT3 is an advanced version of EXT2, and as shown in FIG. 3, a journaling function is added to improve reliability.
저널링은 파일 시스템의 메타데이터(U), inode(Ni)와 데이터 블록(Nd)의 쓰기 도중 오류가 발생되어 파일 시스템 전체에 악영향을 미치는 경우에 대비한 것이다. Journaling is intended for cases where errors occur during the writing of file system metadata (U), inodes (N i ), and data blocks (N d ), adversely affecting the entire file system.
구체적인 동작을 살펴보면, 도 3에 도시된 바와 같이 물리적인 저장매체에 데이터를 쓰기 전에 먼저 저널에 쓰게 될 데이터를 복사 해둔 후 저널에 정상적으로 쓰기 작업이 완료되면 물리적인 저장매체에 데이터 쓰기 작업을 수행한다. 만약 저널에 쓰기 도중 문제가 발생할 경우 쓰기 요청 자체가 삭제되므로 파일 시스템의 무결성을 보장할 수 있다. 또한 물리적인 저장매체에 쓰기 과정 중 문제가 발생하는 경우에는 문제 해결 후 다시 저널에서 물리적인 저장매체로의 쓰기 시도를 하므로 파일 시스템의 무결성을 보장할 수 있다.
As a detailed operation, as shown in FIG. 3, before writing data to the physical storage medium, the data to be written in the journal is copied first, and then the data writing operation is performed to the physical storage medium when the writing operation is normally completed in the journal. . If a problem occurs while writing to the journal, the write request itself is discarded to ensure the integrity of the file system. In addition, if a problem occurs during the write process to the physical storage medium, the integrity of the file system can be guaranteed because the problem is attempted to write from the journal to the physical storage medium after the problem is solved.
한편, 본 발명에 따른 RSPM 파일시스템(310)은 일반적인 PC 환경과는 다르게 데이터 유형에 따라 별도 방식에 따라 처리를 할 수 있다. 즉, 일반적인 PC 환경 저장장치의 파일들은 제각각 그 역할과 특성이 다르며, 이를 명확하게 구분 지을 수 없어 각 파일의 특성에 적합한 처리를 할 수 없다. On the other hand,
하지만 네트워크 기반 비디오 레코더는 데이터 입출력 특성 및 용량에 따라 영상 및 음성을 포함하는 미디어 데이터와 시스템을 유지하는데 필요한 시스템 데이터로 크게 분류할 수 있다.However, network-based video recorders can be broadly classified into media data including video and audio and system data necessary to maintain the system according to data input / output characteristics and capacities.
표 1은 각 데이터 타입에 따른 신뢰성 방법을 보여준다. 미디어 데이터는 카메라에서 촬영된 영상 또는 사진, 음성을 뜻하며 네트워크 기반 비디오 레코더의 핵심적인 데이터이므로 높은 신뢰성을 확보할 필요가 있다. Table 1 shows the reliability method for each data type. Media data refers to the video, photo, and audio taken by the camera. It is essential to network-based video recorders.
또한 미디어 데이터는 크기가 크며 프레임 복원(특정 프레임이 손상 시, 인접한 프레임과 비교하여 손상된 프레임을 복원)과 같은 2차적인 복원 수단이 존재하기 때문에 높은 복원율보다 공간 효율 및 과부하 방지를 위해 작은 크기의 부호어를 생성하는 패리티 코드나 Liberation 코드와 같은 채널 코딩 방법을 적용한다. 채널 코딩방법으로 인코딩된 부호어는 플래시 메모리에 저장되어 하드디스크의 데이터 블록들이 손실되었을 경우 이를 복구하기 위해 사용된다.In addition, because media data is large and there are secondary restoration measures such as frame restoration (when a particular frame is damaged, restoring the damaged frame compared to adjacent frames), smaller media sizes can be used for space efficiency and overload protection than high restoration rates. A channel coding method such as a parity code or a Liberation code that generates codewords is applied. The codeword encoded by the channel coding method is stored in the flash memory and used to recover data blocks of the hard disk when they are lost.
시스템 데이터는 네트워크 기반 비디오 레코더의 운영 체제 또는 전용 응용프로그램에서 사용하는 파일들이며 네트워크 기반 비디오 레코더의 정상 가동을 위해서 필수 불가결한 파일들이다. 따라서 손상 시 즉시 복구할 수 있도록 복사본을 플래시 메모리에 작성하는 미러링 방법을 적용한다. 미러링 방법에 대해서도 후술한다.System data are files used by the operating system or dedicated application of the network-based video recorder and are essential files for the normal operation of the network-based video recorder. Therefore, we apply a mirroring method that writes a copy to flash memory so that it can be recovered immediately in the event of a crash. The mirroring method will also be described later.
데이터 타입Data type
크기size
실시간성 유지Maintain real time
채널코딩Channel coding
미러링Mirroring
미디어media
크다.
Big.
-
-
○
○
-
-
시스템system
작다.
small.
○
○
-
-
○
○
도 4는 데이터의 분류 및 시스템 데이터의 쓰기 연산에 대한 순서도이다. RSPM 파일 시스템은 파일이 저장된 디렉토리에 따라 타입을 구분하며 이는 파일 시스템 설계자에 의해 수정될 수 있다.(S100) 4 is a flow chart for the classification of data and the write operation of system data. The RSPM file system classifies the type according to the directory in which the file is stored, which can be modified by the file system designer (S100).
따라서 카메라 데이터를 저장하는 응용 프로그램은 이에 맞게 데이터를 배치할 수 있어야 한다. 예시적으로 /bin, /sbin, /lib, /etc, /boot, /initrd, /sys, /usr 디렉토리에 쓰여지는 데이터는 시스템 데이터로 분류될 수 있다. Therefore, an application program that stores camera data must be able to arrange the data accordingly. For example, data written to the / bin, / sbin, / lib, / etc, / boot, / initrd, / sys, and / usr directories may be classified as system data.
시스템 데이터로 분류된 데이터는 플래시 메모리(331)에 해당 데이터가 존재하는지 확인된 후(S110) 해당 데이터가 존재한다면 시스템 데이터의 쓰기 처리는 미러링 방법에 따라 플래시 메모리(331)에도 동시에 업데이트 된다(S120). 해당 데이터가 존재하지 않는다면 플래시 메모리(331)에 해당 데이터에 대한 새로운 영역을 할당받아 플래시 메모리(331)에 Mirror를 생성하고 이에 대응되도록 하드디스크(332)에 쓰기 요청을 수행한다.(S130)After the data classified as the system data is checked whether the corresponding data exists in the flash memory 331 (S110), if the corresponding data exists, the write processing of the system data is simultaneously updated in the
한편, 미디어 데이터는 /multimedia에 쓰여지는 파일이 될 수 있으며, 미디어 데이터의 특성과 네트워크 기반 비디오 레코더에 사용되는 하드디스크의 특성을 고려하여야 한다. Meanwhile, the media data may be a file written in / multimedia, and the characteristics of the media data and the characteristics of the hard disk used in the network-based video recorder should be considered.
즉, 하드 디스크는 회전하는 플래터에 암을 이용하여 데이터를 읽으며, 이러한 기계적인 특성에 의해 불연속적인 읽기/쓰기의 성능이 좋지 않으며 상대적으로 연속적인 읽기/쓰기에 좋은 성능을 보인다. 따라서 네트워크 기반 비디오 레코더는 이러한 하드 디스크의 특성을 고려하여 연속적인 읽기/쓰기를 수행할 수 있도록 유도하여야 한다.In other words, the hard disk reads data by using a arm on a rotating platter. Due to this mechanical property, the performance of discontinuous read / write is poor and relatively good for continuous read / write. Therefore, the network-based video recorder should induce continuous read / write in consideration of the characteristics of the hard disk.
본 발명에 따른 RSPM 파일시스템(310)에서 미디어 데이터의 쓰기는 도 5와 같이 각 채널당 미디어 데이터가 연속적으로 쓰이게 하며, 부호어를 효율적으로 인코딩하기 위해 지연쓰기를 사용할 수 있다. In the
지연쓰기는 메인 메모리를 버퍼로 활용하여 미디어 데이터를 일정량 모으고 이를 방출할 시 일정 단위로 묶어 부호어를 생성하는 방법으로 이루어진다. 버퍼에 모인 카메라 데이터는 채널 번호를 기준으로 정렬되어 방출되며 이로써 공간지역성을 유지할 수 있다. 지연쓰기의 부호어는 채널에 상관없이 연속적으로 쓰인 데이터를 이용하여 생성한다. 여기서 부호어 P와 Q는 플래시 메모리에 저장된다.Delayed writing is a method of generating a codeword by collecting a certain amount of media data by using the main memory as a buffer and then bundling it in a certain unit when releasing it. The camera data collected in the buffer is emitted by sorting by channel number, thereby maintaining spatial locality. Codewords for delayed writing are generated using data written continuously regardless of channel. Here, the code words P and Q are stored in the flash memory.
지연쓰기의 쓰기 연산은 도 6에 도시되어 있다. 지연쓰기는 각 채널에서 카메라 데이터 A, B, C, D를 모아 버퍼가 가득 찰 때까지 적재하는 방법으로 수행된다. 버퍼는 이중으로 구성되며 버퍼에 있는 데이터 방출시에도 다른 버퍼에 적재가 가능하도록 구성될 수 있다. The write operation of lazy writing is shown in FIG. Delayed writing is performed by collecting camera data A, B, C, and D from each channel and loading them until the buffer is full. The buffer is dual and can be configured to load into another buffer even when the data in the buffer is released.
버퍼에 데이터가 가득 차면 데이터를 방출하여 이에 대하여 부호어 P와 Q를 생성하여 플래시 메모리에 저장한다. 부호어 P, Q의 쓰기 연산이 끝난 후에 실제 미디어 데이터의 저장이 이루어진다.
When the buffer is full, the data is released, and codewords P and Q are generated and stored in the flash memory. After the write operation of the code words P and Q is completed, the actual media data is stored.
다음은 본 발명에 따른 RSPM 파일시스템(310)에서 미디어 데이터의 데이터 복구를 위하여 사용된 Liberation 코드를 설명한다.The following describes a Liberation code used for data recovery of media data in the
Liberation 코드는 RAID-6 기반 채널 코딩 방법 중 하나로 스트라이핑(striping)된 데이터를 XOR(Exclusive OR) 연산으로 부호어를 만들고 이 부호어를 사용하여 데이터 손상 시 복구하는 방법이다. Liberation code is a RAID-6 based channel coding method that creates a codeword using XOR (Exclusive OR) operation on striped data, and uses this codeword to recover from data corruption.
여기서 스트라이핑이란 최소 2개 이상의 HDD를 사용하여 연속적인 데이터의 기록시 각각의 HDD마다 서로 다른 데이터를 번갈아 가며 동시에 기록하거나 읽어 들이는 것을 말한다. Here, striping refers to writing or reading at the same time alternately of different data for each HDD when writing continuous data using at least two HDDs.
Liberation 코드는 현재 제안된 채널 코딩 방법 중 인코딩과 디코딩 연산에서 수행하는 XOR 연산의 수가 적어 높은 성능을 보이고 있다. 따라서 RSPM 방법은 Liberation 코드를 채용한다.Liberation codes show high performance because of the small number of XOR operations performed in encoding and decoding operations among the proposed channel coding methods. Therefore, the RSPM method employs a Liberation code.
도 7은 비트 행렬 코딩 시스템의 인코딩 연산 예시를 도시한 도면이다. 도 7에 의하면 Libration 코드는 이진 분산 행렬(Binary Distribution Matrix, BDM) 기반 코드로 미디어 데이터의 데이터를 복구하기 위한 부호어(Codeword) P, Q를 생성한다. 각 벡터는 w개의 비트로 이루어져 있으며, 각 매트릭스는 w×w개의 비트로 이루어져 있다. BDM의 I 행렬은 항등원 행렬(Identity Matrix)로 XOR 곱셈 연산을 하여도 같은 결과를 내는 행렬이다. 7 is a diagram illustrating an example of an encoding operation of a bit matrix coding system. According to FIG. 7, the Libration code is a binary distribution matrix (BDM) based code and generates codewords P and Q for recovering data of media data. Each vector consists of w bits, and each matrix consists of w × w bits. The I matrix of BDM is the matrix that produces the same result even if the XOR multiplication operation is performed on the identity matrix.
BDM의 Xp와 Xq는 부호어를 생성하는 부호 분산 행렬(Coding Distribution Matrix, CDM)로서 부호어 P와 Q를 생성하는데 사용된다. P는 각 k개의 하드디스크에 저장된 각 스트라이핑된 데이터들을 상호 XOR 연산함으로 산출될 수 있다. 구체적인 산출식은 하기의 수학식 1에 의한다. 상기에서 생성된 부호어 P는 플래시 메모리에 저장될 수 있다.
X p and X q of the BDM are code distribution matrices (CDMs) for generating codewords and used to generate codewords P and Q. P may be calculated by performing a mutual XOR operation on each striped data stored in each k hard disks. The specific calculation is based on the following equation (1). The generated codeword P may be stored in a flash memory.
부호어 Q를 계산하기에 앞서 도 7과 같은 Liberation 코드 고유의 CDM을 생성할 필요가 있다. CDM은 하기의 수학식 2에 의하여 생성될 수 있다.
Before calculating the codeword Q, it is necessary to generate a CDM unique to the Liberation code as shown in FIG. CDM may be generated by Equation 2 below.
도 8은 Liberation 코드 고유의 CDM을 산출하는 예시를 도시한 도면이다. 도 8의 예시에서는 미디어 데이터는 7비트이고, 4개의 하드에 미디어 데이터가 스트라이핑 되었다고(w=7, k=4) 가정하였다. 8 is a diagram illustrating an example of calculating a CDM unique to a Liberation code. In the example of FIG. 8, it is assumed that media data is 7 bits and that media data is striped (w = 7, k = 4) on four hard disks.
수학식 2에서 첫 번째 행렬 Xq , 0는 항등원 행렬이며, L→i는 i가 증가함에 따라 행렬값이 오른쪽으로 1 비트씩 이동하는 것을 나타낸다. 또한, (y,y+i-1)의 행과 열에 해당되는 값이 1이고 나머지 행과 열에 해당되는 값은 0인 행렬 Oy ,y+i- 1를 추가적으로 더해준다.In Equation 2, the first matrix X q , 0 is an identity matrix, and L → i indicates that the matrix value moves by one bit to the right as i increases. In addition, add the matrix O y , y + i- 1 where the value of the row and column of (y, y + i-1) is 1 and the value of the remaining row and column is 0.
예컨데, D0 = 1001101, D1 = 0010110, D2 = 1011001, D3 = 0110111 로 각 스트라이프를 가정하면, 각 스트라이프 간 XOR 연산을 통해 P = 0110101이 된다. 또한 Di(0≤i<k)와 Xq ,i(0≤i<k)를 XOR연산한 후 XOR연산된 값을 상호 곱셈 연산하면 Q = 0101101이 됨을 알 수 있다.For example, assuming each stripe as D0 = 1001101, D1 = 0010110, D2 = 1011001, and D3 = 0110111, P = 0110101 through an XOR operation between the stripes. In addition, when X (OR) Di (0≤i <k) and X q , i (0≤i <k) are cross-multiplied by the XOR operation, Q = 0101101.
한편, 데이터가 손상되었을 경우, 부호어를 이용하여 이를 복구할 수 있어야한다. 이러한 연산을 디코딩 연산이라 하며 도 7의 연산을 역으로 수행하여 원본 데이터를 복구한다. 디코딩 연산의 예시는 도 9에 도시되어 있다. 도 9에 도시된 바와 같이 (손상되지 않은 데이터(생존자, Surviver) + 부호어) * BDM 중 손상된 영역에 해당하는 부분을 삭제한 행렬의 역원(Inverse Matrix) 중 손상 영역에 해당되는 행렬을 연산하여 손상된 영역을 복원한다.
On the other hand, if data is corrupted, it should be possible to recover it using codewords. This operation is called a decoding operation and restores the original data by performing the operation of FIG. 7 in reverse. An example of the decoding operation is shown in FIG. As shown in FIG. 9 (intact data (survivor) + codeword) * a matrix corresponding to a damaged region of the inverse matrix of the matrix from which the portion corresponding to the damaged region of the BDM is deleted by calculating Restore the damaged area.
다음은 본 발명에 따른 RSPM 파일시스템(310)에서 시스템 데이터의 데이터 복구를 위하여 사용되는 동적 미러링에 대하여 설명한다.Next, dynamic mirroring used for data recovery of system data in the
RSPM 파일시스템(310)의 미러링 방법은 RSPM 파일시스템(310)의 블록 단위로 작동하며 저장장치 영역에서 일반적으로 사용되는 미러링 방법과 다르게 사본을 동적으로 할당하여 보관한다. The mirroring method of the
최근 플래시 메모리의 발전에 따라 저장 공간은 지속적으로 확장되었다. 하지만 비디오 서버를 구동시키는 임베디드 기반 운영체제의 필요 저장 공간은 크지 않으며 향후 그 증가 폭도 크지 않으리라 예상된다. 기존의 미러링 방식은 하드웨어에 의한 장치와 장치의 1:1 매핑 방식이며 이를 채용할 경우, 시스템 데이터가 포함된 저장장치와 같은 용량을 가지고 있는 저장장치를 사용하여야 한다. Recently, with the development of flash memory, the storage space has been continuously expanded. However, the required storage space of the embedded-based operating system that runs the video server is not large, and the increase is not expected to be large in the future. The existing mirroring method is a 1: 1 mapping method between a device and a hardware device. When employing this method, a storage device having the same capacity as a storage device including system data should be used.
하지만 사본의 저장 영역을 동적으로 할당하면 사본이 저장되는 영역 이외의 영역을 활용할 수 있으며 운영체제가 설치된 저장장치와 다른 종류의 저장장치를 활용할 수 있어 활용성이 증대된다.However, dynamically allocating the storage area of a copy allows you to use an area other than the area where the copy is stored, and to increase utilization by utilizing a different type of storage device than the operating system.
본 발명에서는 동적 미러링 방법을 위해 미러 블록 매핑 테이블(Mirror Block Mapping Table, MBMT)을 도입하였다. MBMT는 사본이 저장될 플래시 메모리가 마운트 될 시 생성되며, 원본 시스템 데이터 블록 갱신 시 사본에 변경 내용을 적용하며 MBMT 또한 갱신된다.In the present invention, a mirror block mapping table (MBMT) is introduced for a dynamic mirroring method. MBMT is created when the flash memory where the copy is to be stored is mounted, changes are made to the copy when the original system data block is updated, and MBMT is also updated.
MBMT에는 다음과 같은 정보가 포함된다. 즉, 원본 블록 주소(원본 시스템 데이터의 시작 블록 주소), 사본 블록 주소(사본 시스템 데이터의 시작 블록 주소) 및 대상 블록의 길이가 그것이다.MBMT includes the following information. That is, the original block address (start block address of the original system data), the copy block address (start block address of the copy system data), and the length of the target block.
시스템 데이터 영역이 손상되어 읽기 요청에 문제가 생겼을 경우, 대체 블록을 상기 읽기 요청의 결과 값으로 돌려줘야 한다. 이를 위하여 대체 블록의 주소를 알 수 있어야 하며 이는 MBMT에 기록되어 있다. 하지만 MBMT는 모든 블록 주소를 기록하지 않으며, 연속된 블록의 시작 블록 주소만 기록하기 때문에 대상 블록이 소속된 연속 블록의 시작 블록을 탐색할 수 있어야 한다.If the system data area is damaged and there is a problem with the read request, the replacement block should be returned as the result of the read request. For this purpose, the address of the replacement block must be known, which is recorded in the MBMT. However, since MBMT does not record all block addresses, it only records the start block address of a contiguous block. Therefore, it should be possible to search the start block of a contiguous block to which a target block belongs.
이러한 문제를 해결하기 위해 MBMT는 도 10과 같은 이진 트리(Binary Tree)로 구성된다. 도 10은 동적 미러링 방법에 사용되는 이진 트리의 예시로 MBMT의 원본 블록 주소를 기준으로 이진 트리를 작성하였다. 대체 블록의 검색은 손상 블록과 연속적이며 MBMT에 기재된 시작 블록을 먼저 검색하여야 한다. To solve this problem, MBMT is composed of a binary tree as shown in FIG. 10 illustrates a binary tree based on an original block address of MBMT as an example of a binary tree used in a dynamic mirroring method. The retrieval of the replacement block is contiguous with the damaged block and the first block described in the MBMT must be searched first.
도 11은 도 9와 하기 표 3의 데이터를 기반으로 작성한 검색 예시이다. 대체 블록 검색은 도 11과 같이 이진 트리를 순회하며 손상 블록의 시작 블록을 검색하여 대체 블록을 찾을 수 있다.FIG. 11 is a search example created based on the data shown in FIG. 9 and Table 3 below. The replacement block search may find a replacement block by traversing the binary tree and searching the start block of the damaged block as shown in FIG. 11.
구체적으로, 손상 영역이 x=0x00548378이라 가정하면, 손상영역에 해당되는 데이터 값을 첫 번째 트리의 데이터 값들과 비교한다. x 값이 상위 트리의 0x01435584에 저장된 데이터 값보다 적으므로 0x01435584에 연결된 하위 트리에 저장된 데이터 값들과 x 값을 비교한다. 하위 트리의 0x00545070 및 0x00548370에 저장된 데이터보다 x 값이 크므로 이를 건너뛰고 0x01422754에 저장된 데이터보다 x 값이 적으므로 0x01422754 바로 이전의 주소인 0x00548370를 x에 근접 주소인 y 값으로 취득한다. 다음으로 y와 x의 주소차인 y-x를 구한 후 y의 Mirror Block에 y-x만큼 주소를 증감하여 이를 x의 주소로 리턴한다.
Specifically, assuming that the damaged area is x = 0x00548378, the data value corresponding to the damaged area is compared with the data values of the first tree. Since the x value is smaller than the data value stored in 0x01435584 of the upper tree, the x value is compared with the data values stored in the lower tree connected to 0x01435584. Since the value of x is larger than the data stored in 0x00545070 and 0x00548370 of the subtree, the value of x is skipped and the value of x is smaller than the data stored in 0x01422754. Therefore, 0x00548370, which is the address immediately before 0x01422754, is obtained as the value y near the x. Next, after obtaining yx, the address difference between y and x, increase and decrease the address as much as yx in the Mirror Block of y and return it to the address of x.
다음은 본 발명에 따른 RSPM 블록 디바이스(330)를 사용한 경우와 단일의 하드 디스크를 사용한 경우 각각의 신뢰성을 측정한 결과를 설명한다.The following describes the results of measuring the reliability of the
측정 결과를 설명하기에 앞서 저장장치의 신뢰성 측정방법에 대하여 설명한다. 저장장치의 신뢰성 단위는 MTTF(Mean Time To Failure)를 사용한다. 이는 고장과 다음 고장 사이의 평균 시간을 말하며 제품의 데이터 시트에 일반적으로 포함되어 있다. MTTDL(Mean Time To Data Loss)는 복수개의 저장장치를 이용하여 신뢰성을 확보하는 방법에서 등장한 단위로, 실제 데이터의 손실과 다음 데이터의 손실 사이의 평균 시간을 말한다. Before describing the measurement results, a method of measuring reliability of a storage device will be described. The reliability unit of storage uses Mean Time To Failure (MTTF). This is the average time between a fault and the next fault and is usually included in the product's data sheet. Mean Time To Data Loss (MTTDL) is a unit that emerged from a method of securing reliability using a plurality of storage devices, and is an average time between loss of actual data and loss of next data.
모든 하드 디스크와 플래시 메모리는 하드웨어 제원에 MTTF를 포함하고 있으며 본 발명에 따른 RSPM 방법에서는 플래시 메모리와 하드 디스크를 동시에 사용하므로 하기 수학식 3과 같이 MTTDL을 계산할 수 있다.
All hard disks and flash memory include MTTF in hardware specifications, and in the RSPM method according to the present invention, since the flash memory and the hard disk are used at the same time, MTTDL can be calculated as in Equation 3 below.
PrRSPM은 데이터 복구 중 데이터의 손실이 일어나는 경우로 두 가지 경우에 발생할 수 있다. 플래시 메모리가 오류를 일으킨 후 하드디스크가 오류를 일으킨 경우와 하드디스크가 오류를 일으킨 후 플래시 메모리에 오류가 발생한 경우이다. 따라서 데이터 손실 가능성은 하기 수학식 4와 같이 산출될 수 있다.
PrRSPM occurs when data is lost during data recovery and can occur in two cases. The hard disk fails after the flash memory fails and the flash memory fails after the hard disk fails. Therefore, the probability of data loss can be calculated as shown in
PrFLASH는 두 개의 장치 중 플래시 메모리가 먼저 오류를 일으킬 가능성이다. Ph는 데이터 복구 중 하드 디스크가 오류를 일으킬 가능성이며 Pf는 플래시 메모리가 오류를 일으킬 가능성이다. 플래시 메모리의 오류를 복구하는데 걸리는 시간을 trFLASH 라고 정의하면 지수분포에 따른 오류율에 의해 로 가정한다. 이므로 데이터 복구 중 하드 디스크가 오류를 일으킬 가능성은 이다. 이와 비슷하게 이다. 이를 수학식 4에 적용하면 하기의 수학식 5와 같다.
Pref FLASH is the possibility that flash memory will fail first of the two devices. P h is the probability that the hard disk will fail during data recovery and P f is the probability that the flash memory will fail. If t rFLASH is defined as the time taken to recover the error from the flash memory, the error rate according to the exponential distribution Assume that The possibility of hard disk causing errors during data recovery to be. Similarly to be. If this is applied to the equation (4) is equal to the following equation (5).
수학식 5를 수학식 3에 적용하면 하기 수학식 6과 같은 결론이 나온다.
Applying
하기 표 3은 수학식 6을 적용하여 기존의 단일 디스크와 RSPM 방법을 적용하였을 경우의 MTTDL을 비교 계산한 결과이다. 여기서 MTTFHDD는 300000 시간, MTTFFLASH= 50000 시간이라고 가정하였다. Table 3 below is a result of comparing and calculating the MTTDL when applying the conventional single disk and the RSPM method by applying the equation (6). It is assumed here that the MTTF HDD is 300000 hours and MTTF FLASH = 50000 hours.
표 3에 나타난 바와 같이 단일 디스크를 사용하는 경우보다 본 발명에 따른 RSPM 블록 디바이스를 사용한 경우 MTTDL이 현저히 높아 오류 발생율이 현저히 감소 되었음을 알 수 있다.
As shown in Table 3, when the RSPM block device according to the present invention is used rather than using a single disk, the MTTDL is significantly higher, indicating that the error occurrence rate is significantly reduced.
MTTDLMTTDL
(년)(year)
단일 디스크
Single disk
5.7
5.7
RSPM
RSPM
5265097
5265097
다음은 본 발명에 따른 RSPM 파일 시스템(310)과 기존의 파일 시스템의 성능을 비교하여 설명한다. Next, the performance of the
RSPM 방법은 실험을 위해 리눅스 커널 2.6.24의 원시 코드를 일부 수정하였으며, EXT3 파일 시스템을 변형하여 RSPM 파일 시스템을 구축하였다. 또한 IP카메라에서 전송되는 카메라 데이터를 수신하는 비디오 서버 시뮬레이터를 작성하여 실험을 수행하였다. For the experiment, the RSPM method partially modified the source code of the Linux kernel 2.6.24, and modified the EXT3 file system to build the RSPM file system. In addition, the experiment was performed by creating a video server simulator that receives camera data transmitted from an IP camera.
본 발명에 따른 RSPM 방법에 따르면 부호어를 저장하는 패리티 디스크로 하나의 플래시 메모리를 활용한다. 하지만 RSPM 방법에 적용된 Liberation 코드는 원래 2개의 패리티 디스크를 상정하여 작성되었으며 이로 인하여 시스템 전체에 불필요한 과부하를 일으킬 수 있다. According to the RSPM method according to the present invention, one flash memory is utilized as a parity disk for storing codewords. However, the Liberation code applied to the RSPM method was originally written with two parity disks, which can cause unnecessary overload of the entire system.
하기 표 4는 부호어 P만 생성하는 패리티 코드와 부호어 P, Q를 모두 생성하는 Liberation 코드의 XOR 연산 회수를 비교한 것이다. 단일 패리티 코드의 XOR 연산 회수를 1로 볼 때, Liberation 코드는 부호어 P, Q를 모두 생산하기 때문에 단일 패리티 코드의 2.2배 정도의 연산이 더 필요하다. 또한 약 2.54배의 연산이 디코딩 시 필요하게 된다.
Table 4 below compares the number of XOR operations of a parity code that generates only codeword P and a Liberation code that generates both codewords P and Q. When the number of XOR operations of a single parity code is 1, the Liberation code produces both codewords P and Q, which requires 2.2 times more operations than a single parity code. In addition, about 2.54 times more computation is needed for decoding.
인코딩Encoding
디코딩decoding
패러티Parity
코드 code
1.0
1.0
1.0
1.0
LiberationLiberation
코드 code
2.225
2.225
2.54
2.54
Liberation 코드와 패리티 코드가 네트워크 기반 비디오 레코더의 성능에 미치는 영향을 측정하기 위해 다음과 같이 실험을 수행하였다. 4대의 IP 카메라에서 초당 24프레임으로 60분간 촬영하고 이를 네트워크로 전송받아 비디오 서버 시뮬레이터를 이용하여 저장하였다. 60분간 촬영 중 Liberation 코드는 약 187.013초의 인코딩 연산을 수행하였으며, 패리티 코드는 약 89.054 초의 인코딩 연산을 수행하였다. In order to measure the effects of the Liberation code and the parity code on the performance of the network-based video recorder, the following experiment was performed. Six IP cameras were shot at 24 frames per second for 60 minutes, and they were transferred to the network and stored using a video server simulator. During 60 minutes of shooting, the Liberation code performed an encoding operation of about 187.013 seconds, and the parity code performed an encoding operation of about 89.054 seconds.
도 12는 60분의 촬영 시간을 100%로 가정할 때 인코딩 시간의 비율을 도시한 도면이다. 도 12에서 도시된 바와 같이 Liberation 코드 적용 시 5.195%, 패리티 코드 적용 시 약 2.474%의 추가적인 과부하가 발생하였다. Liberation 코드는 고유의 코드 Q와 함께 패리티 코드 P도 함께 생성하므로 패리티 코드에 비하여 약 2배의 과부하가 발생하였다. FIG. 12 is a diagram illustrating a ratio of encoding times when assuming a 60-minute shooting time is 100%. As shown in FIG. 12, an additional overload of 5.195% was applied when applying the Liberation code and about 2.474% when the parity code was applied. Liberation code generates parity code P with inherent code Q, resulting in about twice as much overhead as parity code.
하지만 인코딩 연산 시 시스템에 걸리는 부하는 전체 시스템의 연산에서 걸리는 부하에서 낮은 비율을 차지하고 있는 반면, Liberation 코드 적용 시보다 높은 데이터 복구 상 신뢰성을 확보할 수 있다. However, while the load on the system during encoding operation occupies a low percentage of the load on the operation of the entire system, it can secure higher data recovery reliability than when applying Liberation code.
또한 부호어 생성에 따른 추가적인 과부하는 발생되지 않았으며 비디오 서버 시뮬레이터의 처리능력만으로도 충분히 분산 처리 가능한 정도였다. 따라서 Liberation 코드와 패리티 코드를 네트워크 기반 비디오 레코더에 적용시켜도 네트워크 기반 비디오 레코더에 주는 부하의 양은 극히 미미함을 알 수 있다.
In addition, no additional overload was generated due to codeword generation, and the processing power of the video server simulator was enough to perform distributed processing. Therefore, even though the Liberation code and the parity code are applied to the network-based video recorder, the load on the network-based video recorder is extremely small.
다음은 본 발명에 따른 RSPM 파일 시스템(310)에 채널 코딩 및 미러링 방법을 적용한 경우 데이터의 신뢰성에 어떠한 영향을 주는지를 평가해 본다.
The following is an evaluation of how the data coding reliability is applied to the
본 발명에 따른 RSPM 파일 시스템은 시스템 내의 데이터를 시스템 데이터과 미디어 데이터, 두 가지로 분류하여 미디어 데이터에 패리티 코드 및 Liberation 코드를, 시스템 데이터에 동적 미러링 방법을 각각 적용하였다. k개의 데이터 블록이 주어질 때, Liberation 코드를 적용한 RSPM 방법은 2개의 손실된 블록을 복구할 수 있으며, 패리티 코드를 적용한 RSPM 방법은 1개의 손실된 블록만 복구할 수 있다. 따라서 패리티 코드가 Liberation 코드보다 연속적으로 일어나는 오류에 좀더 취약하다.In the RSPM file system according to the present invention, data in the system is classified into two types, system data and media data, and a parity code and a Liberation code are applied to the media data, and a dynamic mirroring method is applied to the system data, respectively. Given k data blocks, the RSPM method with Liberation code can recover two lost blocks, and the RSPM method with parity code can recover only one lost block. Therefore, parity code is more vulnerable to continuous error than Liberation code.
도 13은 일종의 스트레스 테스트로 전체 하드디스크 중 생성된 오류의 비율과 이에 따른 패리티 코드와 Liberation 코드의 복원율을 도시한 도면이다. Liberation 코드가 패리티 코드에 비하여 평균 약 15.177%정도의 높은 복원율을 보였다.FIG. 13 is a diagram illustrating a percentage of errors generated among all hard disks and a recovery rate of a parity code and a liberation code according to a kind of stress test. Liberation code showed an average recovery rate of 15.177% higher than parity code.
도 14는 와이블 분포에 따른 데이터의 손상률을 도시한 도면이다. 와이블 분포는 수명 데이터 분석에 주로 사용되는 연속형 확률 분포이며 수명 데이터 분석에 주로 사용된다. 본 발명에 따른 RSPM 파일 시스템은 불량 섹터와 같은 데이터 손실 오류에 대응하고자 하며 이에 대한 와이블 분포의 척도 인수는 η = 9259 으로 설정하였으며, 와이블 계수는 β = 1, k=16으로 설정하였다. 14 is a diagram illustrating a damage rate of data according to a Weibull distribution. The Weibull distribution is a continuous probability distribution mainly used for life data analysis, and is mainly used for life data analysis. The RSPM file system according to the present invention attempts to cope with data loss errors such as bad sectors, and the scale factor of the Weibull distribution is set to η = 9259, and the Weibull coefficient is set to β = 1 and k = 16.
그 결과 Liberation 코드를 적용한 RSPM 방법이 일반 EXT3 파일 시스템보다 평균 약 11.29%의 낮은 손상률을 보였으며 패리티 코드를 적용한 RSPM 방법보다 5.21% 낮은 손상률을 보였다.
As a result, the RSPM method with Liberation code showed an average damage rate of 11.29% lower than that of general EXT3 file system, and 5.21% lower than the RSPM method with parity code.
이상에서는 본 발명의 바람직한 실시 예를 예시적으로 설명하였으나, 본 발명의 범위는 이 같은 특정 실시 예에만 한정되지 않으며 해당 분야에서 통상의 지식을 가진자라면 본 발명의 특허청구범위 내에 기재된 범주 내에서 적절하게 변경이 가능할 것이다.
In the above description of the preferred embodiment of the present invention by way of example, the scope of the present invention is not limited to this specific embodiment, and those skilled in the art within the scope of the claims of the present invention Changes may be made as appropriate.
10: 네트워크 기반 비디오 레코더의 저장 장치
100: 응용 프로그램 계층 200: 가상 파일 시스템
300: RSPM 계층 310: RSPM 파일시스템
320: RSPM 블록 디바이스 드라이버 330: RSPM 블록 디바이스
331: 플래시 메모리 332: 하드디스크10: storage device of a network-based video recorder
100: Application Layer 200: Virtual File System
300: RSPM layer 310: RSPM file system
320: RSPM block device driver 330: RSPM block device
331: flash memory 332: hard disk
Claims (7)
상기 파일 시스템은,
영상 및 음성을 포함하는 미디어 데이터는 상기 미디어 데이터 복구를 위한 부호어를 채널코딩으로 생성하고, 생성된 부호어를 이용하여 손실된 데이터를 복구하고,
운영 체제 또는 전용 응용프로그램과 관련된 시스템 데이터는 상기 시스템 데이터가 저장된 제1 저장매체와 별도로 제2 저장매체에 상기 시스템 데이터의 복사본을 작성하는 미러링(Mirroring)을 수행하고 상기 시스템 데이터의 복사본을 이용하여 상기 시스템의 손실된 데이터를 복구하는 RSPM(Reliable Storage using Parity and Mirroring) 파일 시스템이고,
상기 부호어의 생성은,
스트라이핑된 복수의 미디어 데이터를 상호 XOR(Exclusive OR)연산하여 제1 부호어를 생성하고,
상기 스트라이핑된 미디어 데이터와 이에 대응되는 부호 분산 행렬(Coding Distribution Matrix)을 각각 XOR연산한 후 상기 XOR연산된 데이터를 상호 곱셈 연산하여 제2 부호어를 생성하는 것을 특징으로 하되,
상기 부호 분산 행렬은 하기 수학식 2와 같이 산출되되, I→i는 i가 증가함에 따라 행렬 값이 오른쪽으로 1 비트씩 이동하며, Oy,y+i-1는 (y,y+i-1)의 행과 열에 해당되는 값이 1이고 나머지 행렬의 값이 0인 행렬이고,
상기 미디어 데이터의 부호어 생성은,
버퍼(Buffer)에 상기 미디어 데이터를 일정 단위만큼 저장한 후 상기 저장된 미디어 데이터를 방출하고 상기 방출된 일정단위의 미디어 데이터에 대하여 부호어를 생성하고,
상기 미러링은 매핑테이블(Mapping Table)을 통하여 시스템 데이터의 복사본이 제2 저장매체에 동적으로 할당되어 저장되고,
상기 시스템 데이터가 변경되면 상기 매핑테이블을 통하여 상기 시스템 데이터의 복사본도 변경되고,
상기 매핑테이블은 이진 트리로 구성된 것을 특징으로 하는 네트워크 기반 비디오 레코더의 저장 장치.
An application program created by a user, a virtual file system generating an input / output request corresponding to an invocation of the application program, and a file system for inputting and outputting a file corresponding to the input / output request of the virtual file system. In the storage device,
The file system,
The media data including video and audio generates a codeword for the media data recovery by channel coding, and recovers the lost data using the generated codeword.
System data related to an operating system or a dedicated application may be mirrored to create a copy of the system data on a second storage medium separately from the first storage medium on which the system data is stored, and by using the copy of the system data. RSPM (Reliable Storage using Parity and Mirroring) file system to recover lost data of the system,
Generation of the codeword,
A first codeword is generated by performing XOR (Exclusive OR) operation on a plurality of striped media data.
After performing XOR operation on the striped media data and a coding distribution matrix corresponding thereto, a second codeword is generated by mutually multiplying the XOR-operated data.
The sign variance matrix is calculated as in Equation 2 below, wherein I → i is shifted by one bit to the right as i increases, and O y, y + i-1 is (y, y + i- Is a matrix with a value of 1 for the rows and columns of 1) and a value of 0 for the rest of the matrix,
Codeword generation of the media data,
Storing the media data in a buffer by a predetermined unit, releasing the stored media data, and generating a codeword for the released predetermined media data,
In the mirroring, a copy of system data is dynamically allocated to a second storage medium through a mapping table, and stored.
When the system data is changed, a copy of the system data is also changed through the mapping table.
The mapping table is a storage device of a network-based video recorder, characterized in that consisting of a binary tree.
상기 제1 저장매체는 하드 디스크이고, 상기 제2 저장매체는 플래쉬 메모리인 것을 특징으로 하는 네트워크 기반 비디오 레코더의 저장 장치.
The method of claim 1,
And wherein the first storage medium is a hard disk and the second storage medium is a flash memory.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100084664A KR101181445B1 (en) | 2010-08-31 | 2010-08-31 | Storage Apparatus of Network Video Recorder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100084664A KR101181445B1 (en) | 2010-08-31 | 2010-08-31 | Storage Apparatus of Network Video Recorder |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120020811A KR20120020811A (en) | 2012-03-08 |
KR101181445B1 true KR101181445B1 (en) | 2012-09-19 |
Family
ID=46129339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100084664A KR101181445B1 (en) | 2010-08-31 | 2010-08-31 | Storage Apparatus of Network Video Recorder |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101181445B1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180093177A (en) | 2017-02-10 | 2018-08-21 | (주)홍익바이오텍 | A method of making a gum using bamboo salt and porous minerals |
-
2010
- 2010-08-31 KR KR1020100084664A patent/KR101181445B1/en not_active IP Right Cessation
Non-Patent Citations (2)
Title |
---|
논문 1 : 공학석사학위논문, 2010.02 |
브로셔 1 : MICROSOFT SQL SERVER 2005 |
Also Published As
Publication number | Publication date |
---|---|
KR20120020811A (en) | 2012-03-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7533330B2 (en) | Redundancy for storage data structures | |
US7103811B2 (en) | Mechanisms for detecting silent errors in streaming media devices | |
US20210081273A1 (en) | Method and System for Host-Assisted Data Recovery Assurance for Data Center Storage Device Architectures | |
CN101916173B (en) | RAID (Redundant Array of Independent Disks) based data reading and writing method and system thereof | |
US7093157B2 (en) | Method and system for autonomic protection against data strip loss | |
US20060156059A1 (en) | Method and apparatus for reconstructing data in object-based storage arrays | |
US20070294565A1 (en) | Simplified parity disk generation in a redundant array of inexpensive disks | |
CN103929609B (en) | A kind of video recording playback method and device | |
US20090006904A1 (en) | Apparatus and method to check data integrity when handling data | |
US20050283654A1 (en) | Method and apparatus for decreasing failed disk reconstruction time in a raid data storage system | |
CN102508733A (en) | Disk array based data processing method and disk array manager | |
US11741005B2 (en) | Using data mirroring across multiple regions to reduce the likelihood of losing objects maintained in cloud object storage | |
US11556423B2 (en) | Using erasure coding in a single region to reduce the likelihood of losing objects maintained in cloud object storage | |
CN108141229A (en) | Damage the efficient detection of data | |
US11544147B2 (en) | Using erasure coding across multiple regions to reduce the likelihood of losing objects maintained in cloud object storage | |
US7386754B2 (en) | Method and apparatus to improve magnetic disc drive reliability using excess un-utilized capacity | |
US10795790B2 (en) | Storage control apparatus, method and non-transitory computer-readable storage medium | |
US7689877B2 (en) | Method and system using checksums to repair data | |
US7234078B2 (en) | Data recovery method and data recording apparatus | |
US20060215456A1 (en) | Disk array data protective system and method | |
US9286163B2 (en) | Data recovery scheme based on data backup status | |
CN106933707B (en) | Data recovery method and system of data storage device based on raid technology | |
CN107885615B (en) | Distributed storage data recovery method and system | |
US11055190B1 (en) | System and method for facilitating storage system operation with global mapping to provide maintenance without a service interrupt | |
KR101181445B1 (en) | Storage Apparatus of Network Video Recorder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20150626 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20160602 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20170626 Year of fee payment: 6 |
|
LAPS | Lapse due to unpaid annual fee |