KR20040047996A - 실시간 데이터 파일을 위한 파일시스템 관리방법과 그기록매체, 및 이에 따른 실시간 데이터 저장장치 - Google Patents

실시간 데이터 파일을 위한 파일시스템 관리방법과 그기록매체, 및 이에 따른 실시간 데이터 저장장치 Download PDF

Info

Publication number
KR20040047996A
KR20040047996A KR1020020075739A KR20020075739A KR20040047996A KR 20040047996 A KR20040047996 A KR 20040047996A KR 1020020075739 A KR1020020075739 A KR 1020020075739A KR 20020075739 A KR20020075739 A KR 20020075739A KR 20040047996 A KR20040047996 A KR 20040047996A
Authority
KR
South Korea
Prior art keywords
real
time data
file
information
information element
Prior art date
Application number
KR1020020075739A
Other languages
English (en)
Inventor
성관수
안태윤
Original Assignee
디비코 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 디비코 주식회사 filed Critical 디비코 주식회사
Priority to KR1020020075739A priority Critical patent/KR20040047996A/ko
Publication of KR20040047996A publication Critical patent/KR20040047996A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 실시간 데이터를 제공받아 실시간 데이터 파일을 생성하는 실시간 데이터 저장장치에 있어서 실시간 데이터 파일을 생성하는 도중에 발생한 장애, 예컨대 전원오프에 대비한 파일시스템의 관리방법, 및 이 관리방법을 채용한 실시간 데이터 저장장치에 관한 것이다.
본 발명에 따르면, 실시간 데이터를 제공받아 소정의 파일시스템에 따른 실시간 데이터 파일을 생성하는 실시간 데이터 저장장치에서 상기 실시간 데이터 파일의 파일시스템을 관리하기 위한 메타정보를 유지하는 실시간 데이터 파일의 파일시스템 관리방법에 있어서, 상기 메타정보의 소정의 제1 정보엘리먼트가 소정의 제1 값인지 여부를 검사하는 제1 단계; 상기 제1 정보엘리먼트가 상기 제1 값인 경우에 상기 메타정보의 소정의 제2 정보엘리먼트가 소정의 제2 값인지 여부를 검사하는 제2 단계; 상기 제2 정보엘리먼트가 상기 제2 값인 경우에 상기 저장장치에 기록된 내용에 기초하여 상기 메타정보를 복구하는 제3 단계; 상기 복구된 메타정보를 이용하여 상기 실시간 데이터 파일을 생성하는 제4 단계; 및 상기 제1 정보엘리먼트를 상기 제1 값 이외의 값으로 설정하는 제5 단계를 포함하는 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법, 및 이 파일시스템 관리방법을 채용한 실시간 데이터 저장장치가 제시된다.
본 발명의 파일시스템 관리방법 및 저장장치에 따르면 실시간 데이터를 생성하는 도중에 발생한 장애, 예컨대 전원오프에 의해서 파일시스템에 오류가 발생하더라도 이 오류를 복구함으로써 장애발생 직전까지 생성한 실시간 데이터 파일을 정상적으로 사용할 수 있는 장점이 있다.

Description

실시간 데이터 파일을 위한 파일시스템 관리방법과 그 기록매체, 및 이에 따른 실시간 데이터 저장장치{A file system management method for real-time data files, a storage media thereof, and a real-time data storage device thereby}
본 발명은 외부로부터 실시간 데이터를 제공받아 실시간 데이터 파일을 생성하는 실시간 데이터 저장장치에 있어서 실시간 데이터 파일을 생성하는 도중에 발생한 장애, 예컨대 전원오프에 대비한 파일시스템 관리방법에 관한 것이다. 또한, 본 발명은 이러한 파일시스템 관리방법을 채용한 실시간 데이터 저장장치에 관한 것이다.
최근들어 소위 비선형편집(non-linear editing) 시스템이라고 불리는 영상편집 시스템이 사용되고 있는데, 이 비선형편집 시스템에서는 오디오/비디오 데이터를 통상의 디지탈 데이터 파일의 형태로 컴퓨터 시스템의 하드디스크에 저장하고, 이렇게 저장된 오디오/비디오 데이터를 어도비 프리미어(Adobe Premiere)와 같은 소정의 영상편집 소프트웨어를 이용하여 컴퓨터 모니터 상에서 소망하는 대로 편집을 수행한다.
이러한 비선형편집 시스템의 한 실시예로서 실시간 데이터 저장장치를 사용하는 구성을 생각할 수 있다. 도1은 실시간 데이터 저장장치(130)를 이용한 비선형편집 시스템의 동작 실시예를 도시하는 도면이다.
도1의 구성에서 디지탈 캠코더(120)는 디지탈 녹화 및 재생 기능을 갖는 공지기술의 캠코더로서, 본 명세서에서는 디지탈 캠코더(120)에 대해서는 특별한 제한을 가하지 않으며, 다만 디지탈 녹화 및 재생 기능을 갖고 실시간 데이터 저장장치(130)와 소정의 디지탈 네트워크(150)를 통해 연결될 수 있는 기능만 있으면 족하다.
도1의 구성에서 디지탈 캠코더(120)와 실시간 데이터 저장장치(130)는 IEEE 1394 포트나 USB 포트와 같은 소정의 디지탈 인터페이스를 구비하고, 이러한 디지탈 인터페이스를 이용한 디지탈 네트워크(150)를 통해 디지탈 캠코더(120)가 녹화 모드에서 촬영하는 실시간 오디오/비디오 데이터가 실시간으로 실시간 데이터 저장장치(130)로 전송되어 하드디스크 내에 소정의 파일시스템에 따른 실시간 데이터 파일로서 저장된다. 도1에서는 실시간 데이터 저장장치(130)의 일 실시예로서 하드디스크 장치를 도시하였는데, 본 발명은 하드디스크 뿐만 아니라 임의의 랜덤액세스가 가능한 실시간 데이터 저장장치에 대한 것이다. 다만, 설명의 편이를 위해서, 본 명세서에서는 하드디스크 장치를 기준으로 하여 본 발명의 사상을 기술하고자 한다.
도2는 전술한 소정의 파일시스템의 일 실시예로서 공지기술인 FAT 16/32 규격에 따른 하드디스크(200)의 내부구성의 실시예를 도시하는 도면이다. 도시된 바와 같이, 하드디스크(200)의 LBA (Logical Block Address) 0 위치에는 MBR (Master Boot Record: 210)가 위치하는데, 이 MBR(210)을 파싱하면 하드디스크의 파티션 구성을 파악할 수 있다. 도2에는 실시예로서 2개의 파티션(220, 230)을 갖는 하드디스크를 도시하였다.
하나의 파티션(220)의 처음 섹터 위치에는 수퍼블록(240)이 위치하고, 이 수퍼블록(240)은 파일할당표(File Allocation Table: FAT)의 위치에 대한 정보를 포함한다. 통상 하나의 파티션은 2개의 FAT(250, 260)를 구비하는데, 이는 만일을 대비하기 위함이다. 이 FAT는 하드디스크 내에 유지되는 일종의 파일 배치표로서, 파일이 저장되어 있는 클러스터들(clusters)의 위치에 대한 정보를 제공한다. 운영체제는 파일에 대해 각 클러스터의 위치와 순서를 기록한 FAT 엔트리를 만들며, 파일을 읽을 때 여러 클러스터로부터 읽어들인 파일의 내용을 순서에 맞게 다시 짜맞추어 전체 파일 내용을 구성한다.
FAT 1 및 2(250, 260) 이후에는 루트 디렉토리(270)가 위치하는데, 이 루트 디렉토리(270)는 현재 파티션(220) 내에 존재하는 디렉토리와 파일들의 루트(root)에 해당하는 곳으로서, 모든 파일에 대한 생성/검색 과정은 이 루트 디렉토리(270)에서부터 시작된다. 파티션(220)에서 루트 디렉토리(270) 이후의 영역에는 하나이상의 디렉토리/파일(280)이 존재하며, 임의의 파일을 구성하는 실제 데이터는 이 영역(280)에 위치하고, 운영체제는 임의의 파일을 검색할 때 루트 디렉토리(270)에서 시작하여 디렉토리 상에서 계층적으로 검색을 진행하여 파일의 시작 클러스터를 획득하고, 이어서 FAT 1(250)의 내용으로부터 이 파일을 구성하는 클러스터들의 시퀀스 정보를 얻어 이로부터 파일을 구성한다.
전술한 바와 같이, 저장장치는 소정의 파일시스템에 따른 관리를 수행하기 위해서 FAT 등과 같은 부가정보를 관리하여야 한다. 이러한 부가정보에는 전술한FAT 뿐만 아니라 저장장치의 특성에 따라 추가적으로 정의되어 사용되는 부가적인 정보도 포함될 수 있다. 예를 들어, 저장장치의 구현에 따라서는 FAT 16/32에서의 기본단위인 클러스터를 복수 개 묶어 새로운 관리유닛을 정의하고, FAT 관리에 추가하여 이 관리유닛을 위해 별도의 부가정보를 관리하도록 구성할 수 있다. 본 명세서에서는 클러스터나 새로 정의된 관리유닛을 일반화하여 운영체제에서 파일생성 및 관리를 위해 사용하는 기본 관리유닛을 "청크(chunk)"라고 부른다.
통상의 하드디스크의 경우에는 파일을 생성하거나 파일을 복사함에 있어서 이와같은 부가정보를 관리함에 있어서 어려움이 없는데, 이는 대부분의 경우 파일의 크기를 미리 알 수 있거나 적어도 시간에 따른 제약은 없기 때문이다. 그러나, 본 발명의 저장장치에서와 같이 실시간 데이터를 제공받아 실시간 데이터 파일을 생성하는 실시간 데이터 저장장치에 있어서는, 파일생성 시에 파일의 크기를 미리 알 수 없을 뿐만 아니라 데이터 처리에 있어 실시간성에 따른 시간제약도 존재하기 때문에 어려움이 많다.
즉, 실시간 데이터 파일을 생성하는 시점에는 파일의 크기를 미리 알 수 없기 때문에 파일의 생성 과정에서 필요한 만큼 그때그때 하드디스크 기본 관리유닛, 즉 청크를 할당받아 사용하여야 하는데, 이와같은 청크의 할당에 따른 관리용 부가정보의 기록을 위해 저장장치의 헤드(head)를 움직이는 경우에는 실시간 데이터를 잃어버릴 위험이 있다.
이에, 청크의 할당 및 부가정보 관리를 위한 하드부하를 최소화하기 위해 파일생성을 시작하기 전에 관리용 부가정보를 응답속도가 빠르고 저장장치의 헤드를이동시킬 필요가 없는 메모리 영역에 미리 로딩하고 실시간 데이터를 기록할 때에는 메모리 상에서 부가정보를 조작하였다가 실시간 데이터의 기록동작이 종료되면 메모리 영역의 관리용 부가정보를 이용하여 하드디스크 상에 부가정보를 업데이트하는 것이 보다 바람직하다. 그러나, 이렇게 구현된 경우에는 실시간 데이터를 하드디스크 상에 기록하는 동작을 수행하는 도중에 장애, 예컨대 전원오프가 발생하는 경우에 메모리 상의 관리용 부가정보가 하드디스크에 업데이트되지 못하므로 장애발생 시점까지 하드디스크 상에 기록된 실시간 데이터를 사용하지 못하는 문제점이 역시 존재한다.
이에, 본 발명은 실시간 데이터를 제공받아 소정의 파일시스템에 따른 실시간 데이터 파일을 생성하는 실시간 데이터 저장장치에 있어서 실시간 데이터를 제공받아 데이터 파일을 생성하는 도중에 발생하는 장애, 예컨대 전원오프에 대비한 파일시스템 관리방법을 제공하는 데에 그 목적이 있다. 또한, 본 발명은 이러한 파일시스템 관리방법을 구현한 실시간 데이터 저장장치를 제공하는 데에 그 목적이 있다.
도1은 실시간 데이터 저장장치를 이용한 비선형편집 시스템의 동작 실시예를 도시하는 도면.
도2는 공지기술인 FAT 16/32 규격에 따른 하드디스크의 내부구성의 실시예를 도시하는 도면.
도3은 본 발명의 파일시스템 관리방법에 따른 하드디스크의 파일시스템에 있어서 메타정보 파일 및 실시간 데이터 파일의 배치를 도시하는 도면.
도4는 본 발명의 파일시스템 관리방법에 따른 하드디스크의 파일시스템에 있어서 하나의 실시간 데이터 파일에 대한 메타정보 파일 및 RAW 데이터 파일의 배치와 관계를 도시하는 도면.
도5는 본 발명의 파일시스템 관리방법에 따른 메타정보 파일인 SYS 파일과 RIF 파일에 포함되는 정보의 실시예를 도시하는 도면.
도6은 본 발명의 파일시스템 관리방법에 따른 실시간 데이터 저장장치의 실시예를 도시하는 도면.
도7은 본 발명의 실시간 데이터 저장장치에 있어서 실시간 데이터 파일의 생성 절차의 일 실시예를 도시하는 도면.
도8은 본 발명의 파일시스템 관리방법에 따른 실시간 데이터 파일의 복구절차의 일 실시예를 도시하는 도면.
도9는 본 발명의 실시간 데이터 저장장치에 있어서 실시간 데이터 파일의 생성 절차의 다른 실시예를 도시하는 도면.
도10은 본 발명의 파일시스템 관리방법에 따른 실시간 데이터 파일의 복구절차의 다른 실시예를 도시하는 도면.
도11은 본 발명의 실시간 데이터 저장장치에 있어서 실시간 데이터 파일의 생성 절차의 다른 실시예를 도시하는 도면.
도12는 본 발명의 파일시스템 관리방법에 따른 실시간 데이터 파일의 복구절차의 다른 실시예를 도시하는 도면.
<도면의 주요 부분에 대한 부호의 설명>
130 : 실시간 데이터 저장장치
310 : 루트 디렉토리
320 : META 디렉토리
320:1 : SYS 파일
320:2 ~ 320:x : RIF 파일
330 : RAW 디렉토리
330:1 ~ 330:z : RAW 데이터 파일
전술한 바와 같은 본 발명의 목적을 달성하기 위해서, 본 발명은 실시간 데이터를 제공받아 소정의 파일시스템에 따른 실시간 데이터 파일을 생성하는 실시간데이터 저장장치에서 상기 실시간 데이터 파일의 파일시스템을 관리하기 위한 메타정보를 유지하는 실시간 데이터 파일의 파일시스템 관리방법에 있어서, 상기 메타정보의 소정의 제1 정보엘리먼트가 소정의 제1 값인지 여부를 검사하는 제1 단계; 상기 제1 정보엘리먼트가 상기 제1 값인 경우에 상기 메타정보의 소정의 제2 정보엘리먼트가 소정의 제2 값인지 여부를 검사하는 제2 단계; 상기 제2 정보엘리먼트가 상기 제2 값인 경우에 상기 저장장치에 기록된 내용에 기초하여 상기 메타정보를 복구하는 제3 단계; 상기 복구된 메타정보를 이용하여 상기 실시간 데이터 파일을 생성하는 제4 단계; 및 상기 제1 정보엘리먼트를 상기 제1 값 이외의 값으로 설정하는 제5 단계를 포함하는 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법, 및 이 파일시스템 관리방법을 채용한 실시간 데이터 저장장치를 제공한다.
이하, 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.
도3은 본 발명의 파일시스템 관리방법에 따른 하드디스크의 파일시스템에 있어서 메타정보 파일 및 실시간 데이터 파일의 배치를 도시하는 도면이다. 본 발명에 따른 저장장치는 도2를 참조하여 설명하였던 종래기술과 마찬가지로 루트 디렉토리(310)에서 시작하여 계층적 구조에 따라 데이터를 관리하는데, 도3에서는 설명의 편이를 위해서 루트 디렉토리가 하위 디렉토리로서 메타정보(meta information)을 관리하기 위한 META 디렉토리(320)와 하드디스크 상에 실제로 기록되는 실시간 데이터를 관리하기 위한 RAW 디렉토리(330)를 갖는다고 가정하였다. 하드디스크는루트 디렉토리(310) 상에 이들 하위 디렉토리 뿐만 아니라 하나이상의 파일(340, 350)을 더 포함할 수 있는데, 이는 종래기술과 같다.
META 디렉토리(320)는 본 발명에 따른 저장장치에서 메타정보를 관리하기 위한 파일을 포함하는 디렉토리로서, 본 명세서에서는 설명의 편이상 해당 파티션의 전체를 위한 메타정보를 포함하는 파일을 hdd.sys(320:1)라 하고 해당 파티션 내의 개별적인 실시간 데이터 파일을 위한 메타정보를 포함하는 파일을 ***.rif(320:2 ~ 320:x)라 하였다. 이들 RIF 파일(320:2 ~ 320:x)은 실시간 데이터 파일별로 하나씩 존재할 수도 있고, 혹은 여러 개의 실시간 데이터 파일에 대해서 하나의 RIF 파일이 존재할 수도 있으며, 반대로 하나의 실시간 데이터 파일에 대해서 여러 개의 RIF 파일이 존재할 수도 있다. 본 발명에서는 이에 대해서 특별히 제한하지 않는다.
다만, 본 명세서에서는 RIF 파일의 관리를 효율적으로 하기 위해 하나의 파일그룹에 포함되는 하나이상의 실시간 데이터 파일에 대해서 하나의 RIF 파일이 존재하는 것이 바람직한 것으로 기술하였다. 즉, 하나의 RIF 파일은 하나의 파일그룹에 대응하고, 이 파일그룹에는 소정의 기준에 따라 하나 또는 그 이상의 실시간 데이터 파일이 포함되는 것이다. 하나의 RIF 파일이 여러 개의 실시간 데이터 파일에 대한 메타정보를 제공하는 방법은 여러 가지가 가능한데, 단순히 각각의 실시간 데이터 파일에 대해서 메타정보 객체를 구성한 후에 이들 여러 개의 메타정보 객체를 RIF 파일 내에 소정의 순서로 배열시킬 수도 있고, 아니면 이러한 메타정보를 소정의 규칙에 따라서 결합시키는 것도 가능하다. 본 발명에서는 이에 대해서는 특별히 제한하지 않는다.
RAW 디렉토리(330)는 본 발명에 따른 저장장치에서 실제의 실시간 데이터를 저장하기 위한 파일, 즉 raw 데이터 파일을 포함하는 디렉토리로서, 본 명세서에서는 설명의 편이상 이러한 실시간 데이터를 포함하는 파일을 ***.raw라고 표시한다. 파일시스템은 일반적으로 하나의 파일이 가질 수 있는 크기에 대해서 일정한 제한, 예컨대 FAT 32의 경우 4 GB라는 제한을 가지고 있기 때문에, 상위 개념에서의 실시간 데이터 파일은 복수 개의 raw 파일이 연결된 것으로서 구성될 수 있고, 본 명세서에서는 이들 복수 개의 raw 데이터 파일은 후단에 "_" 기호와 일련번호를 붙여 구분한다. 다만, 이러한 네이밍 규칙(naming rule)은 본 명세서에서 편의적으로 사용하는 실시예에 불과한 것으로 이해되어야 한다.
전술하였던, 상위 개념에서의 실시간 데이터 파일이 복수 개의 raw 파일이 연결되어 구성되는 것을 예를 들어 설명하고자 한다. 설명의 편이를 위해, 상위 개념의 실시간 데이터 파일의 확장자를 "dv"라고 가정하고, 어떤 사용자가 디지털 캠코더를 이용하여 45분간 녹화하여 생성한 실시간 데이터 파일을 "00x.dv"라고 가정한다. 전술한 바와 같이, FAT 32에서는 파일 하나의 크기에 대해서 4 GB라고 하는 제한이 있는데, 이는 통상의 디지털 캠코더의 실시간 데이터에 대해서는 대략 17분에 해당하므로, 위의 "00x.dv" 파일을 구성하기 위해서는 최소한 3개의 raw 데이터 파일, 즉 "00x_1.raw", "00x_2.raw", "00x_3.raw"이 연결된다.
이러한 경우 rif 파일의 관리는 실시간 데이터 파일, 즉 "00x.dv"에 대해서 하나의 rif 파일("00x.rif")이 생성되어 관리될 수도 있고, 각각의 raw 데이터 파일에 대해서 별도의 rif 파일("00x_1.rif", "00x_2.rif", "00x_3.rif")이 생성될 수도 있고, 혹은 복수 개의 실시간 데이터 파일, 즉 복수 개의 DV 파일로 구성되는 파일그룹에 대해서 하나의 rif 파일이 생성되어 관리될 수도 있으며, 그 밖의 다른 관리방법도 가능한데, 이는 전적으로 구현시의 구체적인 판단에 따른다. 다만, "00x.dv" 파일에 대해서 rif 파일이 제공되거나 혹은 실시간 데이터 파일그룹에 대해서 rif 파일이 제공되는 경우에는, 복수의 raw 데이터 파일로부터 특정의 실시간 데이터 파일, 예컨대 "00x.dv"를 구성하기 위해 필요한 메타정보를 이 rif 파일 내에 삽입할 수 있으므로, 보다 바람직하다. 다른 경우에는, 이러한 파일결합정보를 다른 공간에 기록하여야 하므로 다소 불편하다.
본 발명의 내용에 최적화된 응용 프로그램은 전술한 "00x.dv" 파일을 처리함에 있어서 이들 하나이상의 raw 파일, 즉 "00x_1.raw", "00x_2.raw", "00x_3.raw"과 rif 파일, 예컨대 "00x.rif"의 내용을 참조하는데, 이에 대해서는 도4를 참조하여 설명한다.
도4는 본 발명의 파일시스템 관리방법에 따른 하드디스크의 파일시스템에 있어서 하나의 실시간 데이터 파일에 대한 메타정보 파일 및 raw 데이터 파일의 배치와 관계를 도시하는 도면이다.
도3을 참조하여 전술한 바와 같이, 본 발명에 따른 저장장치에 있어서 상위개념 상의 실시간 데이터 파일은 메타정보 파일 및 하나이상의 raw 데이터 파일과 연관되어 있는데, 도4는 전술하였던 실시간 데이터 파일 "00x.dv"에 대한 예를 도시한다. 전술한 실시간 데이터 파일 "00x.dv"에 대해서는 메타정보 파일로서 "hdd.sys" 파일(420:1)과 "00x.rif" 파일(420:2)이 관련되고 raw 데이터 파일로서 "00x_1.raw" 파일(430:1) 내지 "00x_3.raw" 파일(430:3)이 관련된다.
따라서, 본 발명에 따른 저장장치에 최적화되어 설계된 응용 소프트웨어는 상위개념의 실시간 데이터 파일 "00x.dv"를 처리함에 있어서 이들 "hdd.sys" 파일(420:1)과 "00x.rif" 파일(420:2)에 포함되어 있는 메타정보를 사용하고, 하나이상의 raw 데이터 파일 "00x_1.raw(430:1) ~ 00x_3.raw(430:3)"의 내용을 적절히 연결하여 응용 프로그램의 목적에 따른 소정의 동작, 예컨대 재생(PLAY) 동작을 수행한다.
도5는 본 발명의 저장장치에 따른 메타정보 파일인 SYS 파일(510)과 RIF 파일(520)에 포함되는 정보 엘리먼트(information elements)의 실시예를 도시하는 도면이다. 도5에 도시된 SYS 파일(510)과 RIF 파일(520)의 정보 엘리먼트는 일 실시예로 도시된 것으로서, 실제 구현에 있어서는 이에 제한되지 않고 구체적인 구현상의 필요에 따라 도5에 도시된 정보 엘리먼트가 삭제되거나 다른 정보 엘리먼트가 더 추가될 수도 있으며, SYS 파일(510)과 RIF 파일(520)이 통합되어 하나의 메타정보 파일로서 운영될 수도 있다.
도5에서, SYS 파일(510)은 하드디스크 전체, 특히 파티션 전체에 관련된 정보 엘리먼트를 포함하는 메타정보 파일로서 도3 및 도4에 도시된 바와 같이 파티션 하나에 대해서 예컨대 "hdd.sys"와 같은 파일이름을 가질 수 있다. 또한, RIF 파일(520)은 생성중인 혹은 생성된 실시간 데이터 파일에 관련된 정보 엘리먼트를 포함하는 메타정보 파일로서 도3 및 도4에 도시된 바와 같이 "000.rif", "001.rif" 등과 같은 파일이름을 가질 수 있다.
이하, SYS 파일(510)과 RIF 파일(520)에 포함된 정보 엘리먼트에 대해 상세히 기술한다.
도5에 도시된 바와 같이, SYS 파일(510)에 포함된 정보 엘리먼트는 현재 저장장치가 수행하고 있는 동작모드를 나타내는 디스크 녹화상태(disk recording status), 저장장치의 동작모드가 녹화모드인 경우에 실시간 데이터 파일을 저장하는 디렉토리 이름을 나타내는 녹화 디렉토리 인텍스(recording directory index), 사용정보 서브블록의 배열로서 구성되어 현재 저장장치, 또는 파티션에 포함된 청크들 각각에 대한 사용/불사용 정보를 나타내는 청크 사용정보(chunk usage), 및 저장장치의 동작모드가 녹화모드인 경우에 현재 생성중인 실시간 데이터 파일을 식별하기 위한 일종의 버전 넘버와도 같은 다음파일 식별자(next file ID)를 포함한다. 또한, SYS 파일(510)의 정보 엘리먼트는 이에 추가하여 현재 저장장치, 또는 파티션에서 실시간 데이터 파일의 생성에 할당된 청크의 갯수를 나타내는 디스크 청크 넘버(disk chunk number)를 더 포함할 수 있다.
여기에서, "디스크 청크 넘버" 정보 엘리먼트는 현재 저장장치, 또는 파티션에 포함된 청크의 갯수를 나타내는데, 실시간 데이터 파일을 생성에 할당된 사이즈가 64 GB이고 청크의 사이즈가 1024 KB라면 이 "디스크 청크 넘버" 정보 엘리먼트의 값은 대략 65000이 된다. 이 "디스크 청크 넘버"에 대한 정보는 본 발명에 따른 동작에 필요하기는 하지만, 굳이 SYS 파일(510)에 포함되어 있지 않더라도 프로그램 동작 중 필요한 시점에서 일반적으로 얻을 수 있기 때문에, 메타정보파일인 SYS 파일(510)에 포함되지 않을 수 있다.
또한, "청크 사용정보" 정보 엘리먼트는 사용정보 서브블록의 배열로서 구성되어 현재 저장장치, 또는 파티션에 포함된 청크들 각각에 대한 사용/불사용 정보를 나타내는데, 위의 예에서 하나의 청크를 위한 사용정보 서브블록의 크기가 1 워드, 즉 2 바이트라고 하면 이 "청크 사용정보" 정보 엘리먼트는 130 킬로바이트의 크기를 갖고 이 중의 각 워드는 기본적으로 해당 청크가 현재 사용상태인지의 여부를 나타낸다. 더욱이, 전술한 각 워드의 값이 사용상태로 되어있는 경우에 바람직하게는 해당 청크가 일련의 청크 시퀀스에서 마지막 청크인지, 그렇지 않다면 다음 청크의 주소는 어디인지를 더 나타낼 수 있다.
도5에 도시된 바와 같이, RIF 파일(520)에 포함된 정보 엘리먼트는 이 RIF 파일(520)에 대응되는 실시간 데이터 파일이 현재 생성중인지 여부를 나타내는 스트림 녹화상태(stream recording status), 이 RIF 파일(520)에 대응되는 실시간 데이터 파일의 생성작업이 시작된 하드디스크 내의 위치를 나타내는 녹화개시 포인터(recording start pointer), 및 이 RIF 파일(520)에 대응되는 실시간 데이터 파일을 구성하는 청크들의 시퀀스를 나타내는 청크 시퀀스(chunk sequence)를 포함한다.
도5에 도시된 정보 엘리먼트들은 본 발명의 방법에 따른 실시간 테이터 파일을 생성 및 복구함에 있어서 일정한 역할을 담당하는데, 도6 및 도7을 참조하여 이에 대해 기술하고자 한다.
도6은 본 발명의 파일시스템 관리방법에 따른 실시간 데이터 저장장치(600)의 실시예를 도시하는 도면으로서, 특히 실시간 데이터 저장장치(600)에서 모드설정 스위치(610) 및 네트워크 인터페이스(620)가 구비되어 있는 측면의 구현 실시예를 나타낸 것이다. 본 발명에 따른 실시간 데이터 저장장치(600)는 도1에 도시된 바와 같은 네트워크 연결을 가능하도록 하기 위한 소정의 디지탈 인터페이스를 구비하는데, 도6에서는 실시예로서 4핀 구성의 IEEE 1394 포트(620)를 도시하였다. 도6에는 도시되어 있지는 않으나, 본 발명의 실시간 데이터 저장장치(600)는 본 발명에 따른 동작을 수행하기 위해서 마이콤과 같은 제어판단모듈이나 하드디스크와 같은 저장매체, 그리고 하드디스크 인터페이스 등과 같은 구성요소들을 더 포함한다.
도1에 도시된 동작 실시예와 관련하여, 본 발명에 따른 실시간 데이터 저장장치(600)는 한 종류의 디지탈 인터페이스를 제공하여 이로써 도1(a)와 도1(b)의 디지탈 네트워크(150)에 공통으로 사용하는 것이 비용이나 제품개발 기간 등 여러가지 면에서 바람직하다. 그러나, 본 발명의 실시간 데이터 저장장치(600)는 이에 한정되지 않으며, 도1(a)와 도1(b)의 동작 실시예 각각을 위해서 별도로 디지탈 인터페이스를 제공하는 것도 가능하다.
도3(a)에 도시된 바와 같이, 본 발명에 따른 실시간 데이터 저장장치(600)에서는 바람직하게는 본 장치의 사용자가 소정의 모드설정 스위치(610)를 사용하여저장장치(600)의 동작모드를 소망하는 대로 설정할 수 있도록 하였다. 본 발명에 따른 실시간 데이터 저장장치(600)에서는 그 동작모드를 다양하게 설정할 수 있는데, 기본적으로는 전원 온/오프 모드를 선택할 수 있고, 선택적으로 기록 모드와 데이터통신 모드를 선택할 수 있다.
기록 모드는 도1(a)에 도시된 동작 실시예에서와 같이 실시간 데이터 저장장치(130)가 디지탈 캠코더(120)와 연결되어 디지탈 캠코더(120)가 녹화 동작을 수행할 때 디지탈 네트워크(150)를 통해 전달되는 실시간 오디오/비디오 데이터를 내부의 저장매체에 기록할 때의 동작모드이다. 한편, 데이터통신 모드는 도1(b)에 도시된 동작 실시예에서와 같이 실시간 데이터 저장장치(130)가 컴퓨터 시스템(140)과 연결되어 컴퓨터 시스템(140)이 본 발명의 실시간 데이터 저장장치(130) 내에 저장된 실시간 데이터를 일종의 파일로서 읽어들여 컴퓨터 시스템(140)의 내부로 복사할 때의 동작모드이다.
도6(b)는 모드설정 스위치(610)의 일 실시예를 도시하는데, 도6(b)에서 스위치(610)의 레버(630)가 "off" 위치에 있는 경우에는 저장장치(600)는 전원-오프 모드가 되어 동작을 수행하지 않는 상태에 있고, 레버(630)가 "on" 위치에 있는 경우에는 저장장치(300)는 전원-온 모드이면서 데이터통신 모드가 되어 도1(b)에 도시된 동작이 가능한 상태에 있다. 또한, 도6(b)에서 레버(630)가 "record" 위치에 있는 경우에는 저장장치(600)는 전원-온 모드이면서 기록 모드가 되어 도1(a)에 도시된 동작이 가능한 상태에 있다.
도6(b)는 본 발명에 있어서 모드설정 스위치(610)를 구현하는 일 실시예에불과한 것으로서, 본 발명을 제품으로 구현하고자 하는 사람은 도6(b)와 도6(c)를 비롯하여 다양한 형태로 모드설정 스위치(610)를 구현할 수 있는 것으로 이해되어야 한다. 도6(c)의 구현예는 기본적인 동작에 있어서 도6(b)와 동일한 것으로 해석되는데, 다만 레버(640)의 위치에 있어서 데이터통신 모드를 위한 위치가 전원-오프 모드를 위한 위치와 서로 바뀌었고, 데이터통신 모드를 위한 레이블이 "on"에서 "pc"로 변경되었다.
도1 및 도6을 참조하여 본 발명에 따른 실시간 데이터 저장장치(130, 600)의 동작방식에 대해 상세히 기술하고자 한다. 본 발명에 따른 실시간 데이터 저장장치(130, 600)는 모드설정 스위치(610)가 전원-오프 모드의 위치에 있을 때 특별히 동작을 수행하지 않음은 전술한 바와 같다. 물론, 실시간 데이터 저장장치(130, 600)는 전원-오프 모드에서 최소한의 동작은 수행하도록 구현될 수 있는데, 예컨대 저장장치(130, 600)에 사용자의 편이를 위해서 리모컨이 함께 제공되는 경우에 비록 전원-오프 모드이더라도 이 리모컨의 전원-온 명령은 인식하고 이에 대응하여 저장장치(130, 600)의 주 전원을 기동시키는 것과 같은 동작은 수행하도록 구현할 수 있다.
사용자는 도1(a)에 도시된 바와 같은 동작 시나리오를 수행하고자 하는 경우에는 저장장치(600)의 모드설정 스위치(610)를 기록 지점("record")으로 위치시킴으로써 저장장치(130, 600)를 기록 모드로 설정하여야 한다. 다만, 본 발명에 따른 실시간 데이터 저장장치(130, 600)는 자신의 동작모드가 기록 모드로 설정되었더라도 바람직하게는 바로 실시간 데이터의 기록동작을 수행하지는 않으며, 소정의상태질의 명령어를 이용하여 현재 연결되어 있는 디지탈 캠코더(120)의 동작상태를 모니터링하다가 디지탈 캠코더(120)가 레코드 모드로 되면 실시간 데이터의 기록동작을 시작하고 디지탈 캠코더(120)가 정지 모드로 되면 실시간 데이터의 기록동작을 중지한다.
본 발명에 따른 실시간 데이터 저장장치(130, 600)에서는 이와 같은 동작 시나리오가 가능하도록, 디지탈 인터페이스(620)는 IEEE 1394 인터페이스 등과 같이 연결된 기기 상호간에 서로의 상태를 모니터링할 수 있는 방법이 제공될 수 있는 기술이 보다 바람직하다. 예를 들어, 도6에 도시된 바와 같이 디지탈 인터페이스(620)가 IEEE 1394 기술로 구현되는 경우, 전술한 상태질의 명령어로서 1394 TA에서 제정한 "AV/C Tape Recorder/Player Subunit Specification" 규격의 TRANSPORT_STATE 상태 명령어가 가능하다.
도7은 본 발명의 실시간 데이터 저장장치(130, 600)에 있어서 실시간 데이터 파일의 생성 절차의 일 실시예를 도시하는 도면이다. 도7에서 사용자는 먼저 본 발명에 따른 실시간 저장장치(130, 600)의 동작모드를 기록모드로 설정(단계 710)함으로써 실시간 데이터 저장장치(130, 600)를 도1(a)에 도시된 동작 시나리오로 사용할 것임을 나타낸다. 이어서, 디지탈 캠코더(120)를 녹화모드로 설정(단계 720)하여 일정시간 녹화를 수행한 후 다시 정지모드로 설정(단계 730)함으로써 저장장치(130, 600) 내에 실시간 데이터 파일을 생성한다. 마지막으로, 사용자는 저장장치(130, 600)의 동작모드를 전원-오프 모드로 설정(단계 740)하여 사용이 끝났음을 나타낸다.
도7에 도시된 동작 실시예에서는 전술한 바와 같이 실시간 데이터의 누락을 방지하기 위해 실시간 데이터를 제공받아 실시간으로 파일을 생성하는 동안에는 메타정보와 같은 파일관리 정보를 응답속도가 빠르고 저장장치의 헤드를 이동시킬 필요가 없는 메모리 상에 저장한다. 그리고 나서, 디지탈 캠코더(120)가 녹화동작을 종료하여 기록할 데이터가 최종적으로 확정되는 시점(단계 730) 및 하드디스크가 전원-오프 모드로 되어 한동안 하드디스크 액세스가 없을 것으로 예상되는 시점(단계 740)이 되면 메모리 상에 저장되어 있던 파일관리 정보를 이용하여 실제 하드디스크 상의 기록내용을 업데이트한다.
이하, 도7에 도시된 본 발명의 실시간 데이터 저장장치에 따른 실시간 데이터 파일의 생성 절차의 일 실시예를 상세히 설명한다.
먼저, 사용자는 전술한 모드설정 스위치(610)를 이용하여 본 발명에 따른 저장장치(600)의 동작모드를 기록모드로 설정(단계 710)하는데, 이 때 저장장치(600)의 제어판단 모듈은 이 동작모드 설정 이벤트를 검출하여 (1) SYS 파일(510)의 "녹화 디렉토리 인덱스" 정보 엘리먼트를 적절한 값으로 설정하고, (2) SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트를 예컨대 "RECORD"로서 설정하며, (3) SYS 파일(510)의 "디스크 청크 사용정보" 정보 엘리먼트를 메모리 상에 로딩하는 작업을 수행한다.
여기에서, SYS 파일(510)의 "녹화 디렉토리 인덱스" 정보 엘리먼트의 값은구현상의 네이밍 정책(naming policy)에 따라서 적절히 설정되는데, 예컨대 녹화 디렉토리 인덱스를 여덟 개의 10진수로 구성하되 처음 생성되는 인덱스를 000000으로 하고 녹화 디렉토리 인덱스가 하나씩 필요할 때마다 (+1)씩 증가시키는 방법도 가능하고, 기타 다른 네이밍 정책도 다양하게 사용가능하다.
또한, 단계(710)에서 SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트가 "RECORD"로 설정된 것은 현재 저장장치의 동작모드가 녹화모드임을 나타내기 위한 것이다.
또한, 단계(710)에서 SYS 파일(510)의 "디스크 청크 사용정보" 정보 엘리먼트를 메모리 상에 로딩하는 것은 향후 실시간 데이터 파일의 생성과정에 있어서 청크 할당을 위한 하드디스크 액세스를 최소화하기 위함이다. 이러한 "디스크 청크 사용정보" 정보 엘리먼트의 메모리 로딩 작업은 도시된 바와 같이 단계(710)에서 수행되도록 구현될 수도 있고 혹은 저장장치(130, 600)의 기동과정에서 미리 수행되도록 구현될 수도 있다.
그리고 나서, 사용자가 디지탈 캠코더(120)의 녹화버튼을 눌러 캠코더(120)의 동작모드를 녹화모드로 절환(단계 720)시키는데, 이 때 저장장치(600)의 제어판단 모듈은 이 이벤트를 검출하여 디지탈 네트워크(150)를 통해 전달되는 실시간 데이터를 하드디스크에 기록한다. 이 단계(720)에서, 저장장치(130, 600)의 내부에서는 (1) RIF 파일(520)을 생성 및 초기화하고, (2) 사용가능한 청크를 할당받아 RIF 파일(520)의 "녹화개시 포인터" 정보 엘리먼트를 바람직하게는 이 청크 주소로설정하며, (3) RIF 파일(520)의 "스트림 녹화상태" 정보 엘리먼트를 예컨대 "OPEN"으로 설정하고, (4) 전달되는 실시간 데이터를 하드디스크에 저장하는 작업이 수행된다.
여기에서, RIF 파일(520)이 생성 및 초기화되는데, 이는 디지탈 캠코더(120)가 녹화모드로 절환되어 하나의 실시간 데이터 파일을 생성할 것이므로 이 실시간 데이터 파일을 위한 RIF 파일(520)을 준비하는 것으로서, RIF 파일(520)의 파일이름을 결정함에 있어서 후술하는 복구절차의 편이를 위해 SYS 파일의 "녹화 디렉토리 인덱스" 정보 엘리먼트의 값과 소정의 규칙에 따른 연관성을 갖도록 설정하는 것이 바람직하다.
다만, 단계(720)에서 RIF 파일(520)을 생성 및 초기화하는 것은 본 발명에 있어서 절대적인 것은 아닌 것으로 이해되어야 한다. 즉, RIF 파일(520)을 정적으로 관리하는 경우, 예컨대 미리 RIF 파일(520)이 20개정도 마련되어 배열(array)로서 구성되어 있고 저장장치(130, 600)의 동작모드가 기록 모드로 설정(단계 710)될 때마다 배열 인덱스(array index)가 초기화되는 경우에는 RIF 파일(520)이 미리 생성되어 있으므로 새롭게 생성할 필요는 없고, 바람직하게는 초기화하는 것으로 충분하다. 또한, 전술하였던 바와 같이 RIF 파일(520)을 실시간 데이터 파일그룹에 대해서 생성 및 관리하는 경우, 예컨대 하드디스크의 동작모드가 기록모드로 들어갈 때(710)부터 오프모드로 될 때(740)까지의 구간동안에 생성되는 하나 또는 그 이상의 실시간 데이터 파일에 대해서 하나의 RIF 파일(520)을 제공하는 경우에는 RIF 파일(520)을 생성 및 초기화하는 단계는 도7에서 단계(710)에서 수행되는 것이보다 바람직하다.
또한, 단계(720)에서 본 발명에 따른 실시간 데이터 저장장치(130, 600)는 전술한 바와 같이 청크(chunk)라는 기본단위를 기준으로 실시간 데이터의 기록을 수행하는 것으로 가정되는데, 이 청크의 크기는 무한하지 않기 때문에 하나의 실시간 데이터 파일을 생성하기 위해서는 수많은 청크가 필요하게 되고, 따라서 단계(720)에서는 실시간 데이터를 기록함에 있어서 다수의 청크의 할당 동작이 수행된다.
청크의 할당을 위해서 저장장치(130, 600)의 제어판단 모듈은 메모리 상에 로딩된 SYS 파일(510)의 "디스크 청크 사용정보" 정보 엘리먼트의 내용을 참조하여 사용가능한 청크를 새로 할당받아 사용하는데, 이와 같이 실시간 데이터 파일의 생성과정에서 청크의 할당에 관한 정보는 바람직하게는 메모리 영역 상에서 관리된다. 즉, 실시간 데이터 파일을 생성하는 단계(720)에서는 이러한 청크 할당/사용정보에 대한 기록은 하드디스크 상에 존재하는 SYS 파일(510)의 "디스크 청크 사용정보" 정보 엘리먼트와 RIF 파일(520)의 "청크 시퀀스" 정보 엘리먼트에 대해서는 수행되지 않고 응답속도가 빠르고 하드디스크의 헤드를 움직일 필요가 없는 메모리에서만 관리되는 것이 바람직하다. 앞에서 메모리 상에 이미 이러한 청크 사용현황에 대한 정보가 로딩되어 있기 때문에 이에 대한 관리는 비교적 용이하게 수행될 수 있다.
또한, 단계(720)에서 RIF 파일(520)의 "녹화개시 포인터" 정보 엘리먼트에 기록되는 정보는 현재 생성되는 실시간 데이터 파일에 있어서 하드디스크 상의 시작지점(starting location)을 나타내는데, 이에 해당하는 정보는 하드디스크 내에서 물리적으로 특정 지점을 식별할 수 있으면 족하다고 이해된다. 예를 들어, LBA (Logical Block Address)나 청크 주소(또는, 청크 식별자), 혹은 섹터(sector)와 같은 정보가 가능하다.
또한, 단계(720)에서 RIF 파일(520)의 "스트림 녹화상태" 정보 엘리먼트가 "OPEN"으로 설정된 것은 본 RIF 파일(520)에 대응하는 실시간 데이터 파일이 현재 생성과정 도중임을 나타내기 위한 것이다.
또한, 전술한 청크에는 별도로 헤더정보 영역이 배정되어 있어 실시간 데이터 파일의 생성 및 관리에 있어서 청크 관리에 관련된 정보를 기재할 수 있도록 되어있는데, 이러한 청크 관리정보에는 "파일 버전넘버"와 "다음청크 주소"가 포함될 수 있다. "파일 버전넘버"는 SYS 파일(510)의 "다음파일 식별자" 정보 엘리먼트에 대응하는 정보로서, 당해 청크가 어떠한 파일을 위해 사용되었는지에 대한 보조적인 정보를 제공한다. 한편, "다음청크 주소"는 하나의 실시간 데이터 파일의 생성을 위해서 당해 청크 다음에 추가적으로 청크가 할당되어 사용된 경우에 이 추가적으로 할당되어 사용된 청크의 주소정보를 포함하는 정보이다.
단계(720)에서는 실시간 데이터를 제공받아 하드디스크 내에 기록하면서 청크의 관리정보를 기록한다. 즉, 청크의 "파일 버전넘버"에는 SYS 파일(510)의 "다음파일 식별자" 정보 엘리먼트의 내용을 기입하고, "다음청크 주소"에는 현재 생성중인 실시간 데이터 파일을 위해 당해 청크 다음에 추가로 청크가 할당될 때 그 추가되는 청크의 주소정보를 기입한다. 청크 내에 이러한 관리정보를 기입하는 동작은 오버헤드가 대단히 작기 때문에 일반적으로 큰 문제는 되지 않는데, 그럼에도 불구하고 이러한 관리정보를 적절히 복수 개로 분할하여 실시간 데이터를 기록하면서 적절히 삽입하는 것이 보다 바람직하다.
청크 내에서 관리정보를 기입하는 예로서, 청크를 예컨대 1000개의 프레임 공간으로 구분한 뒤, 각 프레임의 소정의 공간에 헤더영역을 두어 이 헤더영역에 관리정보를 기록하는 것도 바람직하다. 이렇게 구성하는 경우에는, 실시간 데이터를 기록해 나가면서 디스크 헤드를 별도로 이동시키지 않으면서 관리정보를 기록할 수 있는 장점이 있다. 반면, 청크 전체에 대해서 소정의 청크관리정보 영역을 할당하여 이 청크관리정보 영역에 해당 청크에 대한 모든 관리정보를 기록하도록 하는 것도 불가능한 것은 아니다. 다만, 이러한 경우에는 실시간 데이터를 기록하는 도중에 관리정보를 기록하기 위해서 디스크 헤드를 다소나마 이동시켜야 하기 때문에 그만큼의 시간낭비가 존재하고, 이에 따라 처리할 수 있는 실시간 데이터의 대역폭에 저하가 발생할 수도 있다.
그리고 나서, 사용자는 디지탈 캠코더(120)의 특정의 기능버튼을 눌러 캠코더(120)의 동작모드를 녹화모드 이외의 모드, 예컨대 정지모드로 절환(단계 730)시키고, 이 때 저장장치(600)의 제어판단 모듈은 이 이벤트를 검출하여 실시간 데이터 파일의 생성동작을 중단한다. 이 단계(730)에서, 저장장치(130, 600)의 내부에서는 (1) 메모리에 저장된 청크 사용정보에 기초하여 RIF 파일(520)의 "청크 시퀀스" 정보 엘리먼트를 설정하고, (2) 메모리에 저장된 청크 사용정보에 기초하여SYS 파일(510)의 "디스크 청크 사용정보" 정보 엘리먼트를 설정하며, (3) SYS 파일(510)의 "다음파일 식별자" 정보 엘리번트를 (+1)만큼 증가시키고, (4) RIF 파일(520)의 "스트림 녹화상태" 정보 엘리먼트를 "CLOSE"로 설정하는 작업을 수행한다.
여기에서, RIF 파일(520)의 "청크 시퀀스" 정보 엘리먼트가 메모리에 저장되어 있는 청크 사용정보에 기초하여 설정되는데, 전술한 바와 같이 저장장치(130, 600)는 실시간 데이터의 생성과정에서 청크가 필요할 때에는 청크를 할당받아 사용하면서 이러한 청크 사용정보를 하드디스크 상에 기록하지 않고 별도로 응답속도가 빠르고 하드디스크의 헤드를 움직일 필요가 없는 메모리에 저장하므로, 실시간 데이터 파일의 생성작업이 종료되어 어느정도 시간여유가 있는 단계(730)에서는 메모리에 저장되어 있는 청크 사용정보에 기초하여 RIF 파일(520)의 "청크 시퀀스" 정보 엘리먼트 상에 현재 실시간 데이터 파일의 생성에 어떠한 청크가 사용되었는지를 반영한다.
또한, 단계(730)에서는 SYS 파일(510)의 "디스크 청크 사용정보" 정보 엘리먼트가 메모리에 저장되어 있는 청크 사용정보에 기초하여 설정되는데, 전술한 바와 같이 메모리에는 실시간 데이터 파일의 생성을 위해서 할당 및 사용된 청크들에 대한 정보가 포함되어 있으므로, 메모리에 저장된 청크 사용정보를 이용하여 SYS 파일(510)의 "디스크 청크 사용정보" 정보 엘리먼트 상에 현재 RIF 파일(520)에 대응하는 실시간 데이터 파일의 생성과정에서 어떠한 청크가 사용상태(in-used state)로 절환되었는지를 기록한다.
또한, 단계(730)에서는 SYS 파일의 "다음파일 식별자" 정보 엘리먼트를 (+1)만큼 증가시키는데, 이는 하나의 실시간 데이터 파일의 생성이 종료되었기 때문에 버전넘버를 증가시켜 프로세스를 구분하기 위한 것이다.
또한, 단계(730)에서는 RIF 파일(520)의 "스트림 녹화상태" 정보 엘리먼트가 "CLOSE"로 설정되는 것은 본 RIF 파일(520)에 대응하는 실시간 데이터 파일에 대한 생성작업이 종료되었음을 나타내기 위한 것이다.
그리고 나서, 사용자는 전술한 모드설정 스위치(610)를 이용하여 본 발명의 저장장치(600)의 동작모드를 기록모드 이외의 모드, 예컨대 전원-오프 모드로 설정(단계 740)하는데, 이 때 저장장치(600)의 제어판단 모듈은 이 이벤트를 검출하여 (1) SYS 파일(510)의 "녹화 디렉토리 인덱스" 정보 엘리먼트의 내용을 반영하여 RAW 디렉토리를 생성하고, (2) RIF 파일(520)의 "청크 시퀀스" 정보 엘리먼트의 내용에 기초하여 청크를 순차적으로 조합함으로써 전술한 RAW 디렉토리 내에 실시간 데이터 파일을 생성하며, (3) SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트를 예컨대 "IDLE"로 설정하는 작업을 수행한다.
여기에서, "녹화 디렉토리 인덱스" 정보 엘리먼트의 내용을 반영하여 RAW 디렉토리를 구성하는 것과 같은 동작은 본 발명에 따른 실시간 데이터 저장장치(130, 600)를 구현함에 있어서 도3 및 도4에 도시된 바와 같은 디렉토리 구성을 유지하고자 하는 경우에는 필요하지만, 예컨대 전혀 디렉토리 구성을 유지하지 않거나 혹은 디렉토리 구성이 존재하더라도 도3 및 도4에 도시된 바와 전혀 상이하게 구성하는경우에는 필요하지 않을 수 있다.
또한, 단계(740)에서는 RIF 파일(520)의 "청크 시퀀스" 정보 엘리먼트의 내용에 기초하여 하드디스크 상에 실시간 데이터 파일을 구성하는데, 이는 도3 및 도4에서 00x_1.raw 파일 내지 00x_3.raw 파일을 생성하는 과정에 해당한다. 저장장치(600)의 제어판단 모듈은 RIF 파일(520)의 "청크 시퀀스" 정보 엘리먼트의 내용에 기초하여 사용된 청크들을 순차적으로 조합하여 실시간 데이터 파일을 구성하는데, 전체 실시간 데이터 파일의 사이즈가 파일시스템에 따른 소정의 상한, 예컨대 4 GB을 초과하는 경우에는 여러 개의 raw 데이터 파일로 분할구성될 수 있음은 전술한 바와 같다.
RIF 파일(520)의 "청크 시퀀스" 정보 엘리먼트의 내용에 기초하여 실시간 데이터 파일을 구성하는 과정에 대해서 좀더 상세히 설명한다. 다만, RIF 파일(520)의 생성에 대해서는 하드디스크가 기록모드로 되었다가(710) 오프모드로 될 때까지 생성되는 실시간 데이터 파일 전체, 즉 파일그룹에 대해서 하나의 RIF 파일(520)이 생성되어 관리되는 경우를 가정한다. 그러나, 각각의 실시간 데이터 파일에 대해서 각각 RIF 파일(520)이 생성되거나 혹은 raw 데이터 파일에 대해서 RIF 파일(520)이 하나씩 생기는 경우의 동작에 대해서는 본 명세서의 내용으로부터 용이하게 추론될 수 있다.
도 7에서 사용자가 저장장치(130, 600)의 동작모드를 기록모드로 설정(단계 710)하였다가 다시 전원-오프 모드로 설정(단계 740)할 때까지의 기간 동안에 캠코더(120)의 동작모드를 녹화모드(단계 720)와 정지모드(단계 730) 사이에서 복수 회절환이 가능하고, 그 때마다 RIF 파일(520)의 정보 엘리먼트들이 적절히 반영되므로, 단계(740)에서는 RIF 파일(520)의 "청크 시퀀스" 정보 엘리먼트로부터 하나이상의 서브 청크 시퀀스를 획득하고, 이에 기초하여 하나이상의 실시간 데이터 파일을 생성하는 것으로 해석되어야 한다.
또한, 단계(740)에서 SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트가 "IDLE"로 설정된 것은 현재 저장장치의 동작모드가 녹화모드가 아님을 나타내기 위한 것이다.
도8은 본 발명의 파일시스템 관리방법에 따른 실시간 데이터 파일의 복구절차의 일 실시예를 도시하는 도면으로서, 특히 도7에 도시된 실시간 데이터 파일의 생성 절차에 대응하는 복구절차의 실시예를 도시하는 도면이다. 도시된 바와 같이, 본 발명에 따른 파일시스템 복구절차는 바람직하게는 하드디스크가 기동(단계 810)될 때 수행되는데, 이 때 "하드디스크 기동"의 의미는 물리적으로 하드디스크에 전원이 없었던 상태에서 전원공급이 개시되는 시점을 의미할 수도 있고, 혹은 본 발명에 따른 저장장치(600)의 동작모드가 전원-오프 상태에서 전원-온 상태로 절환되는 시점을 의미할 수도 있다.
이하, 도8에 도시된 실시간 데이터 파일의 복구절차의 실시예를 도면을 참조하여 상세히 설명한다.
본 발명에 따른 실시간 데이터 저장장치(600)는 기동(단계 810)되면 먼저SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트의 값이 "RECORD"인지 여부를 체크(단계 820)하여 "RECORD"가 아닌 경우에는 정상적으로 하드디스크를 사용하고 그렇지 않은 경우에는 도시된 바와 같은 복구절차를 수행한다. 도7의 실시예를 참조하면, SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트의 값이 "RECORD"라는 것은 이전에 단계(740)의 절차가 수행되지 않았다는 것을 의미하므로 정상적인 상황이 아니라고 판단하는 것이다.
단계(820)에서 SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트의 값이 "RECORD"이면 저장장치(600)는 RIF 파일(520)의 "스트림 녹화상태" 정보 엘리먼트의 값이 "OPEN"인지 여부를 체크(단계 830)하여 "OPEN"인 경우에는 다음의 단계(840) 내지 단계(860)을 수행하고, "OPEN"이 아닌 경우에는 상기 단계(840 내지 860)을 수행하지 않는다. RIF 파일(520)의 "스트림 녹화상태" 정보 엘리먼트의 값이 "OPEN"인지 여부를 체크하는 것은 도7의 단계(730)이 수행되었는지 여부, 즉 실시간 데이터에 대한 하드디스크 기록동작이 진행되는 도중에 하드디스크의 동작이 중단되었는지 여부를 검사하는 것이다.
이하, 단계(830)에서 RIF 파일(520)의 "스트림 녹화상태" 정보 엘리먼트의 값이 "OPEN"일 때, 즉 디지탈 캠코더(120)의 동작모드가 녹화모드이어서 디지탈 네트워크(150)를 통해 전달되는 실시간 데이터를 하드디스크 상에 기록하는 도중에 하드디스크의 동작이 중단된 경우에, 다음의 하드디스크 기동 시에 실시간 데이터 파일의 파일시스템 복구를 위해서 수행되는 단계(840 내지 860)에 대해서 상세히 설명한다.
먼저, 단계(840)에서는 RIF 파일(520)의 "녹화개시 포인터" 정보 엘리먼트의 값으로부터 현재 복구하고자 하는 실시간 데이터 파일의 시작지점에 대한 정보를 얻는다. 도7의 단계(720)에서 전술한 바와 같이, RIF 파일(520)의 "녹화개시 포인터" 정보 엘리먼트에는 예컨대 LBA나 청크 주소, 또는 섹터와 같이 하드디스크 내에서 실시간 데이터 파일의 시작지점을 물리적으로 식별할 수 있는 정보가 포함되어 있으므로, 이 정보를 이용하여 실시간 데이터 파일의 시작지점, 특히 시작 청크에 대한 정보를 얻는다.
이어서, 단계(850)에서는 단계(840)에서 얻은 시작 청크로부터 시작하여 청크를 순차적으로 추적함으로써 복구하고자 하는 실시간 데이터 파일을 위해서 디지탈 캠코더(120)의 녹화모드(단계 720)에서 사용되었던 청크 시퀀스 정보를 얻는다. 전술한 바와 같이, 청크의 헤더정보 영역에는 "다음청크 주소" 필드가 배정되어 있으므로, 전술한 시작 청크로부터 시작하여 이 "다음청크 주소" 필드를 사용하여 청크 시퀀스를 추적할 수 있다. 역시 전술한 바와 같이, 청크의 헤더정보 영역에는 "파일 버전넘버" 필드가 배정되어 있으므로 이 "파일 버전넘버" 필드의 값과 SYS 파일(510)의 "다음파일 식별자" 정보 엘리먼트와 같은지 여부를 검사함으로써 청크 시퀀스를 추적함에 있어서 종료지점을 검출할 수 있다.
이어서, 단계(860)에서는 단계(850)에서 획득한 청크 시퀀스 정보에 기초하여 RIF 파일(520)의 "청크 시퀀스" 정보 엘리먼트와 SYS 파일(510)의 "디스크 청크 사용정보" 정보 엘리먼트를 설정한다. 단계(850)에서 획득한 청크 시퀀스 정보에는 실제로는 사용되었지만 어떠한 원인으로 인해서 하드디스크 상의 메타정보 파일에는 반영되지 않았던 청크들에 대한 정보가 포함되어 있으므로, 이 청크 시퀀스 정보의 내용을 RIF 파일(520)과 SYS 파일(510)에 반영하는 것이다. 그리고, SYS 파일(510)의 "다음파일 식별자" 정보 엘리먼트를 (+1) 증가시키고, RIF 파일(520)의 "스트림 녹화상태" 정보 엘리먼트를 "CLOSE"로 설정한다.
위에서 설명한 단계(840) 내지 단계(860)에 의해 RIF 파일(520)의 "청크 시퀀스" 및 "스트림 녹화상태" 정보 엘리먼트와 SYS 파일(510)의 "디스크 청크 사용정보" 및 "다음파일 식별자" 정보 엘리먼트가 적절히 복구됨을 알 수 있다. 이하, 파일 시스템에 따른 실시간 데이터 파일을 생성하는 단계(870)에 대해서 설명하고자 한다.
도8의 단계(870)은 도7의 단계(740)에 대응되는 동작을 수행하는데, 먼저 SYS 파일(510)의 "녹화 디렉토리 인덱스" 정보 엘리먼트의 값에 기초하여 도3 및 도4에 도시된 바와 같은 RAW 디렉토리를 생성한다. 다만, RAW 디렉토리의 생성은는 단계(740)에 대해서 전술한 바와 같이 본 발명에 있어서 필수적인 사항은 아닌 것으로 이해되어야 한다. 그리고, RIF 파일(520)의 "청크 시퀀스" 정보 엘리먼트에 기초하여 실시간 데이터 파일을 생성하는데, 이 때 RIF 파일(520)의 "청크 시퀀스"로부터 복수 개의 서브 청크 시퀀스를 획득하고 이들 서브 청크 시퀀스의 각각으로부터 실시간 데이터 파일을 생성할 수 있음은 역시 단계(740)을 참조하여 전술한 바와 같다. 마지막으로, SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트를 "IDLE"로 설정함으로써 실시간 데이터 파일의 복구작업이 종료되었음을 나타내고, 정상적으로 하드디스크를 사용(단계 880)하면 된다.
도8에 도시된 실시예에 따르면, 본 발명에 따른 실시간 데이터 저장장치가 기동되면 먼저 저장장치에 대해 실시간 데이터 파일의 파일시스템 오류유무 검사를 수행(단계 820)하여, 만일 오류가 존재하지 않으면("아니오"의 경우) 특별한 절차를 거치지 않고 바로 저장장치를 사용(단계 880)하도록 하고, 반대로 오류가 존재하면("예"의 경우) 일련의 복구절차(단계 830 내지 870)를 수행하여 실시간 데이터 파일을 복구한 후에 저장장치를 사용(단계 880)하도록 하였다.
더욱이, 도8에 도시된 실시예에 따르면, 본 발명의 복구절차에 있어서 실시간 데이터 기록관리의 기본단위인 청크에 대한 관리작업이 수행되었는지 여부에 대해 검사를 수행(단계 830)하여, 만일 청크에 대한 관리작업이 수행되었다면("아니오"의 경우) 바로 실시간 데이터 디렉토리를 생성하고 실시간 데이터 파일을 생성하는 작업을 수행(단계 870)하도록 하고, 반대로 청크에 대한 관리작업이 수행되지 않았다면("예"의 경우) 실시간 데이터의 기록을 위해 실제로 사용되었던 청크에 대한 관리작업을 수행(단계 840 내지 860)한 후에 실시간 데이터 디렉토리 및 실시간 데이터 파일을 생성(단계 870)하도록 하였다.
도9는 본 발명의 파일시스템 관리방법에 있어서 실시간 데이터 파일의 생성 절차의 다른 실시예를 도시하는 도면이다. 도7의 실시예와 비교하여 도9의 실시예에서는 하나의 RIF 파일(520)을 지속적으로 재활용하며, 이를 위해 일련의 저장장치 조작단계(910 내지 940)에서 수행되는 작업이 다소 상이하다. 다만, 저장장치의 동작에 있어서 기본적인 사항은 도7을 참조하여 전술하였던 바와 유사하다. 이하, 도9에 도시된 실시간 데이터 파일의 생성 절차의 실시예를 도면을 참조하여 상세히 설명한다.
먼저, 사용자는 본 발명에 따른 저장장치(600)의 동작모드를 기록모드로 설정(단계 910)하는데, 이 때 저장장치(600)의 제어판단 모듈은 이 이벤트를 검출하여 (1) SYS 파일(510)의 "녹화 디렉토리 인덱스" 정보 엘리먼트를 적절한 값으로 설정하고, (2) 이 "녹화 디렉토리 인덱스" 정보 엘리먼트에 기초하여 도3 및 도4에 도시된 바와 같은 RAW 디렉토리를 생성하며, (3) SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트를 예컨대 "RECORD"로서 설정하고, (4) SYS 파일(510)의 "디스크 청크 사용정보" 정보 엘리먼트를 메모리 상에 로딩하며, (5) RIF 파일(520)을 생성 및 초기화하는 작업을 수행한다.
여기에서, SYS 파일(510)의 "녹화 디렉토리 인덱스" 정보 엘리먼트의 값이 구현상의 네이밍 정책에 따라서 적절히 설정될 수 있음은 전술한 바와 같은데, 본 실시예에서는 도7의 실시예와는 달리 실시간 데이터 파일을 위치시키기 위한 RAW 디렉토리를 미리 생성한다. 이는 본 실시예에서는 실시간 데이터 파일을 생성하는 작업이 저장장치(600)가 전원-오프 모드로 절환될 때(단계 740, 940) 수행되는 것이 아니라 디지탈 캠코더(120)가 정지모드로 절환될 때(단계 730, 930) 수행되기 때문이다. 이 단계(910)에서도 RAW 디렉토리를 생성하는 과정이 구체적인 구현방식에 따라서는 필요하지 않을 수도 있음은 도7의 단계(740)을 참조하여 전술한 바와 같다.
또한, 단계(910)에서 SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트가 "RECORD"로 설정되고 "디스크 청크 사용정보" 정보 엘리먼트를 메모리 상에 로딩하는데, 이에 대해서는 도7의 단계(710)을 참조하여 전술한 바와 같다.
또한, 단계(910)에서 RIF 파일(520)을 생성 및 초기화하는데 이는 본 실시예에 있어서 필수적인 사항은 아닌 것으로 이해되어야 한다. 즉, 본 실시예에서는 기본적으로 RIF 파일(520)을 재활용하므로 도9에 도시된 바와 같이 저장장치(600)가 기록모드로 설정(단계 910)될 때마다 RIF 파일(520)이 생성 및 초기화되어 전원-오프 모드로 설정(단계 940)될 때까지 사용되도록 구현할 수도 있고, 혹은 저장장치(600)가 초기화될 때 RIF 파일(520)이 한 번 생성 및 초기화되고 그 이후에는 계속해서 재활용되도록 구현할 수도 있다.
그리고 나서, 사용자는 디지탈 캠코더(120)의 동작모드를 녹화모드로 절환(단계 920)시키는데, 이 때 저장장치(600)의 제어판단 모듈은 전술한 바와 같이 이 이벤트를 검출하여 (1) RIF 파일(520)의 "녹화개시 포인터" 정보 엘리먼트를 설정하고, (2) RIF 파일(520)의 "스트림 녹화상태" 정보 엘리먼트를 예컨대 "OPEN"으로 설정하며, (3) 전달되는 실시간 데이터를 하드디스크에 저장하는 작업이 수행된다.
여기에서, RIF 파일(520)의 "녹화개시 포인터" 및 "스트림 녹화상태" 정보 엘리먼트의 설정에 관한 것이나 실시간 데이터의 기록에 있어서 필요에 따라 하나이상의 청크를 할당 및 사용하되 그 정보를 응답속도가 빠르고 하드디스크의 헤드를 움직일 필요가 없는 메모리에서 관리하는 것, 그리고 청크 내에 헤더정보 영역이 있어 "파일 버전넘버"와 "다음청크 주소"가 실시간 데이터를 기록하는 도중에 관리되는 것에 관한 사항은 도7의 단계(720)을 참조하여 전술한 바와 같다.
그리고 나서, 사용자는 디지탈 캠코더(120)의 동작모드를 녹화모드 이외의 모드, 예컨대 정지모드로 절환(단계 930)시키는데, 이 때 저장장치(600)의 제어판단 모듈은 이 이벤트를 검출하여 (1) 메모리에 저장된 청크 사용정보에 기초하여 청크를 순차적으로 조합함으로써 실시간 데이터 파일을 생성하고, (2) 메모리에 저장된 청크 사용정보에 기초하여 SYS 파일(510)의 "디스크 청크 사용정보" 정보 엘리먼트를 설정하며, (3) SYS 파일(510)의 "다음파일 식별자" 정보 엘리번트를 (+1)만큼 증가시키고, (4) RIF 파일(520)의 "스트림 녹화상태" 정보 엘리먼트를 "CLOSE"로 설정하는 작업이 수행된다.
도9의 실시예에서는 도7의 실시예와는 달리 실시간 데이터 파일의 생성 작업이 단계(930)에서 수행하는데, 이 단계(930)에서는 메모리에 저장된 청크 사용정보에 기초하여 실시간 데이터의 기록에 사용된 하나이상의 청크를 조합함으로써 하나의 실시간 데이터 파일을 생성한다. 기타, SYS 파일(510)의 "디스크 청크 사용정보" 및 "다음파일 식별자" 정보 엘리먼트의 설정에 관한 사항과 RIF 파일(520)의 "스트림 녹화상태" 정보 엘리먼트의 설정에 관한 사항은 도7의 단계(730)을 참조하여 전술한 바와 같다.
그리고 나서, 사용자는 본 발명의 저장장치(600)의 동작모드를 기록모드 이외의 모드, 예컨대 전원-오프 모드로 설정(단계 940)하는데, 이 때 저장장치(600)의 제어판단 모듈은 이 이벤트를 검출하여 SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트를 예컨대 "IDLE"로 설정하는 작업을 수행한다. 여기에서, SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트가 "IDLE"로 설정되는 것은 현재 저장장치의 동작모드가 녹화모드가 아님을 나타내기 위한 것으로서, 이는 도7의 단계(740)을 참조하여 전술한 바와 같다.
도10은 본 발명의 파일시스템 관리방법에 따른 실시간 데이터 파일의 복구절차의 다른 실시예를 도시하는 도면으로서, 특히 도9에 도시된 실시간 데이터 파일의 생성 절차에 대응하는 복구절차의 실시예를 도시하는 도면이다. 본 실시예에 따른 복구절차는 하드디스크가 기동(단계 1010)될 때 수행되며, "하드디스크 기동"의 의미는 보다 넓게 정의될 수 있음은 도8을 참조하여 전술한 바와 같다. 이하, 도10에 도시된 실시간 데이터 파일의 복구절차의 실시예를 도면을 참조하여 상세히 설명한다.
본 발명에 따른 실시간 데이터 저장장치(600)는 기동(단계 1010)되면 먼저 SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트의 값이 "RECORD"인지 여부를 체크(단계 1020)하여 "RECORD"가 아닌 경우에는 정상적으로 하드디스크를 사용(단계 1080)하고 그렇지 않은 경우에는 소정의 오류체크/복구 절차를 수행하며, 위의 소정의 오류체크/복구 절차에서는 먼저 RIF 파일(520)의 "스트림 녹화상태" 정보 엘리먼트의 값이 "OPEN"인지 여부를 체크(단계 1030)하여 "OPEN"인 경우에는 단계(1040) 내지 단계(1060)을 수행하고 "OPEN"이 아닌 경우에는 상기 단계(1040 내지 1060)을 수행하지 않는다.
이하, 단계(1030)에서 RIF 파일(520)의 "스트림 녹화상태" 정보 엘리먼트의 값이 "OPEN"일 때, 즉 디지탈 캠코더(120)의 동작모드가 녹화모드이어서 디지탈 네트워크(150)를 통해 전달되는 실시간 데이터를 하드디스크 상에 기록하는 도중에 하드디스크의 동작이 중단된 경우에, 다음의 하드디스크 기동 시에 실시간 데이터 파일의 파일시스템 복구를 위해서 수행되는 단계(1040 내지 1060)에 대해서 상세히 설명한다. 도10에 도시된 단계(1040 내지 1060)은 도8의 단계(840 내지 860)과 많은 공통점을 갖는데, 이와 같이 전술한 바와 공통되는 부분에 대해서는 자세히 설명하지 않는다.
먼저, 단계(1040)에서는 RIF 파일(520)의 "녹화개시 포인터" 정보 엘리먼트는 하드디스크 내에서 실시간 데이터 파일의 시작지점을 물리적으로 식별할 수 있는 정보를 포함하고 있으므로 이 정보 엘리먼트의 값을 이용하여 현재 복구하고자 하는 실시간 데이터 파일의 시작지점, 특히 시작 청크에 대한 정보를 얻는다. 이어서, 단계(1050)에서는 이 시작 청크로부터 시작하여 청크를 순차적으로 추적함으로써 실시간 데이터의 기록에 사용되었던 청크 시퀀스 정보를 얻는다. 이 과정에서 청크의 헤더정보 영역에 기록된 "다음청크 주소" 및 "파일 버전넘버" 필드가 사용됨은 역시 도8을 참조하여 전술한 바와 같다.
이어서, 단계(1060)에서는 이 청크 시퀀스 정보에 기초하여 하나이상의 청크를 순차적으로 조합하여 실시간 데이터 파일을 구성한 후, SYS 파일(510)의 "디스크 청크 사용정보" 정보 엘리먼트를 적절히 설정하고, SYS 파일(510)의 "다음파일 식별자" 정보 엘리먼트를 (+1) 증가시키며, RIF 파일(520)의 "스트림 녹화상태" 정보 엘리먼트를 "CLOSE"로 설정한다.
이상, 단계(1040) 내지 단계(1060)에 의해 본 발명에 따른 실시간 데이터 파일과 메타정보 파일인 RIF 파일(520)과 SYS 파일(510)이 적절히 복구되는 과정을 상세히 설명하였다. 마지막으로, 단계(1070)에서는 SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트가 "IDLE"로 설정됨으로써 실시간 데이터 파일의 복구작업이 종료되었음을 나타낸다. 그 이후에는, 본 발명의 저장장치(600)는 정상적으로 사용(단계 1080)된다.
도11은 본 발명의 파일시스템 관리방법에 있어서 실시간 데이터 파일의 생성 절차의 다른 실시예를 도시하는 도면이다. 도7 및 도9의 실시예와 비교하여 도11의 실시예에서는 저장장치(600)의 동작모드에 있어서 기록모드에 관한 고려가 없는 점이 특징이다. 즉, 본 실시예의 저장장치(600)는 전원-온 모드와 전원-오프 모드로 동작하고, 바람직하게는 디지탈 네트워크(150)를 통해 연결된 상대방 기기의 종류 및 동작모드를 모니터링하여 자신(600)이 어떠한 동작을 수행하여야 하는지를 판단한다. 이하, 도11에 도시된 실시간 데이터 파일의 생성 절차의 실시예를 도면을 참조하여 상세히 설명한다. 다만, 도11에서 저장장치(600)의 동작모드는 전원-온 모드라고 가정한다.
먼저, 사용자는 디지탈 캠코더(120)의 동작모드를 녹화모드로 절환(단계 1010)하는데, 이 때 저장장치(600)의 제어판단 모듈은 이 이벤트를 검출하여 (1) SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트를 예컨대 "RECORD"로서 설정하고, (2) RIF 파일(520)의 "녹화개시 포인터" 정보 엘리먼트를 적절히 설정하며, (3) 전달되는 실시간 데이터를 하드디스크 내의 저장공간에 저장하는 작업이 수행된다.
여기에서, SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트 및 RIF 파일(520)의 "녹화개시 포인터" 정보 엘리먼트의 설정에 관한 것이나 실시간 데이터의 기록에 있어서 필요에 따라 하나이상의 청크를 할당 및 사용하되 그 정보를 응답속도가 빠르고 하드디스크의 헤드를 움직일 필요가 없는 메모리에서 관리하는 것, 그리고 청크 내에 헤더정보 영역이 있어 "파일 버전넘버"와 "다음청크 주소"가 실시간 데이터를 기록하는 도중에 관리되는 것에 관한 사항은 도7 및 도9를 참조하여 전술한 바와 같다.
그리고 나서, 사용자는 디지탈 캠코더(120)의 동작모드를 녹화모드 이외의 모드, 예컨대 정지모드로 절환(단계 1120)시키는데, 이 때 저장장치(600)의 제어판단 모듈은 이 이벤트를 검출하여 (1) 메모리에 저장된 청크 사용정보에 기초하여 청크를 순차적으로 조합함으로써 실시간 데이터 파일을 생성하고, (2) 메모리에 저장된 청크 사용정보에 기초하여 SYS 파일(510)의 "디스크 청크 사용정보" 정보 엘리먼트를 설정하며, (3) SYS 파일(510)의 "다음파일 식별자" 정보 엘리번트를 (+1)만큼 증가시키고, (4) SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트를 "IDLE"로 설정하는 작업을 수행한다.
도11의 실시예에서는 도9의 실시예에서와 마찬가지로 실시간 데이터 파일의 생성 작업이 디지탈 캠코더(120)의 동작모드가 녹화모드로부터 예컨대 정지모드로 절환(단계 930, 1120)될 때 수행되는데, 메모리에 저장된 청크 사용정보에 기초한 실시간 데이터 파일의 생성, 및 SYS 파일(510)의 "디스크 청크 사용정보"와 "다음파일 식별자" 정보 엘리먼트의 설정에 관한 사항은 도9의 단계(930)을 참조하여 전술한 바와 같다. 다만, 도11의 실시예에서는 디지탈 캠코더(120)의 동작모드가 녹화모드로부터 예컨대 정지모드로 절환(단계 930, 1120)될 때 SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트가 예컨대 "IDLE"로 설정된다는 점에서 도9의 실시예에 대해서 상이점을 갖는다.
도12는 본 발명의 파일시스템 관리방법에 따른 실시간 데이터 파일의 복구절차의 다른 실시예를 도시하는 도면으로서, 특히 도11에 도시된 실시간 데이터 파일의 생성 절차에 대응하는 복구절차의 실시예를 도시하는 도면이다. 본 실시예에 따른 복구절차는 하드디스크가 기동(단계 1210)될 때 수행되며, "하드디스크 기동"의 의미는 보다 넓게 정의될 수 있음은 도8 및 도10을 참조하여 전술한 바와 같다. 이하, 도12에 도시된 실시간 데이터 파일의 복구절차의 실시예를 도면을 참조하여 상세히 설명한다.
본 발명에 따른 실시간 데이터 저장장치(600)는 기동(단계 1210)되면 먼저 SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트의 값이 "RECORD"인지 여부를 체크(단계 1220)하여 "RECORD"가 아닌 경우에는 정상적으로 하드디스크를 사용(단계 1260)하고 그렇지 않은 경우에는 단계(1230) 내지 단계(1250)에 나타낸 소정의 오류체크/복구 절차를 수행한 후 하드디스크를 사용(단계 1260)한다.
먼저, 단계(1230)에서는 RIF 파일(520)의 "녹화개시 포인터" 정보 엘리먼트의 값을 이용하여 현재 복구하고자 하는 실시간 데이터 파일의 시작지점, 특히 시작 청크에 대한 정보를 얻고, 단계(1240)에서는 이 시작 청크로부터 시작하여 청크를 순차적으로 추적함으로써 실시간 데이터의 기록에 사용되었던 청크 시퀀스 정보를 얻는데, 청크 시퀀스 정보를 얻는 과정에서 청크의 헤더정보 영역에 기록된 "다음청크 주소" 및 "파일 버전넘버" 필드가 사용됨은 도8 및 도10을 참조하여 전술한 바와 같다.
이어서, 단계(1250)에서는 이 청크 시퀀스 정보에 기초하여 하나이상의 청크를 순차적으로 조합하여 실시간 데이터 파일을 구성한 후, SYS 파일(510)의 "디스크 청크 사용정보"를 적절히 설정하고, SYS 파일(510)의 "다음파일 식별자" 정보 엘리먼트를 (+1) 증가시키며, SYS 파일(510)의 "디스크 녹화상태" 정보 엘리먼트를 "IDLE"로 설정한다.
이상, 단계(1230) 내지 단계(1250)에 의해 본 발명에 따른 실시간 데이터 파일과 메타정보 파일인 SYS 파일(510)이 적절히 복구되는 과정을 상세히 설명하였다. 그 이후에는, 본 발명의 저장장치(600)는 평상시와 같이 사용(단계 1260)된다.
본 발명의 파일시스템 관리방법에 따르면 실시간 데이터 저장장치에 있어서 실시간 데이터를 생성하는 도중에 발생하는 장애, 예컨대 전원오프에 의해서 파일시스템에 오류가 발생하더라도 이 오류를 치료하고 파일시스템을 복구함으로써 전술한 장애발생 시점의 직전까지 생성한 실시간 데이터 파일을 정상적으로 사용할 수 있는 장점이 있다.

Claims (18)

  1. 실시간 데이터를 제공받아 소정의 파일시스템에 따른 실시간 데이터 파일을 생성하는 실시간 데이터 저장장치에서 상기 실시간 데이터 파일의 파일시스템을 관리하기 위한 메타정보를 유지하는 실시간 데이터 파일의 파일시스템 관리방법에 있어서, 상기 메타정보의 소정의 제1 정보엘리먼트가 소정의 제1 값인지 여부를 검사하는 제1 단계; 상기 제1 정보엘리먼트가 상기 제1 값인 경우에 상기 메타정보의 소정의 제2 정보엘리먼트가 소정의 제2 값인지 여부를 검사하는 제2 단계; 상기 제2 정보엘리먼트가 상기 제2 값인 경우에 상기 저장장치에 기록된 내용에 기초하여 상기 메타정보를 복구하는 제3 단계; 상기 복구된 메타정보를 이용하여 상기 실시간 데이터 파일을 생성하는 제4 단계; 및 상기 제1 정보엘리먼트를 상기 제1 값 이외의 값으로 설정하는 제5 단계를 포함하는 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  2. 제1항에 있어서, 상기 제3 단계는 상기 메타정보의 소정의 제3 정보엘리먼트로부터 상기 실시간 데이터 파일에 대하여 상기 저장장치 상에서의 시작청크의 주소를 획득하는 제3a 단계; 상기 시작청크로부터 시작하여 청크 내의 소정의 관리정보를 이용하여 상기 실시간 데이터 파일을 위한 청크시퀀스 정보를 획득하는 제3b 단계; 상기 청크시퀀스 정보에 기초하여 상기 메타정보의 소정의 제4 정보엘리먼트를 작성하는 제3c 단계; 및 상기 제2 정보엘리먼트를 상기 제2 값 이외의 값으로 설정하는 제3d 단계를 포함하는 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  3. 제2항에 있어서, 상기 제4 단계는 상기 제4 정보엘리먼트를 사용하여 상기 실시간 데이터 파일을 생성하는 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  4. 제3항에 있어서, 상기 제4 단계는 상기 메타정보의 소정의 제5 정보엘리먼트에 기초하여 실시간 데이터 디렉토리를 생성하는 제4a 단계; 및 상기 제4 정보엘리먼트를 이용하여 상기 실시간 데이터 디렉토리 내에 상기 실시간 데이터 파일을 생성하는 제4b 단계를 포함하는 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  5. 실시간 데이터를 제공받아 소정의 파일시스템에 따른 실시간 데이터 파일을 생성하는 실시간 데이터 저장장치에서 상기 실시간 데이터 파일의 파일시스템을 관리하기 위한 메타정보를 유지하는 실시간 데이터 파일의 파일시스템 관리방법에 있어서, 상기 메타정보의 소정의 제1 정보엘리먼트가 소정의 제1 값인지 여부를 검사하는 제1 단계; 상기 제1 정보엘리먼트가 상기 제1 값인 경우에 상기 메타정보의 소정의 제2 정보엘리먼트가 소정의 제2 값인지 여부를 검사하는 제2 단계; 상기 제2 정보엘리먼트가 상기 제2 값인 경우에 상기 저장장치에 기록된 내용에 기초하여 상기 실시간 데이터 파일을 복구하는 제3 단계; 및 상기 제1 정보엘리먼트를 상기 제1 값 이외의 값으로 설정하는 제4 단계를 포함하는 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  6. 제5항에 있어서, 상기 제3 단계는 상기 메타정보의 소정의 제3 정보엘리먼트로부터 상기 실시간 데이터 파일에 대하여 상기 저장장치 상에서의 시작청크의 주소를 획득하는 제3a 단계; 상기 시작청크로부터 시작하여 청크 내의 소정의 관리정보를 이용하여 상기 실시간 데이터 파일을 위한 청크시퀀스 정보를 획득하는 제3b 단계; 상기 청크시퀀스 정보에 기초하여 상기 실시간 데이터 파일을 생성하는 제3c 단계; 및 상기 제2 정보엘리먼트를 상기 제2 값 이외의 값으로 설정하는 제3d 단계를 포함하는 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  7. 제2항 또는 제6항에 있어서, 상기 제3 단계는 상기 청크시퀀스 정보에 기초하여 상기 메타정보의 소정의 청크 사용관리 정보엘리먼트를 업데이트하는 제3e 단계를 더 포함하는 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  8. 제1항 또는 제5항에 있어서, 상기 제1 정보엘리먼트는 상기 저장장치의 동작모드를 나타내기 위한 정보엘리먼트이고, 상기 제1 값은 상기 저장장치가 녹화모드임을 나타내는 값이며, 상기 제2 정보엘리먼트는 상기 실시간 데이터 파일의 생성모드를 나타내기 위한 정보엘리먼트이고, 상기 제2 값은 상기 실시간 데이터 파일이 생성 중임을 나타내는 값인 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  9. 제2항 또는 제6항에 있어서, 상기 제3 정보엘리먼트는 상기 실시간 데이터 파일의 상기 하드디스크 상의 시작지점을 나타내기 위한 정보엘리먼트인 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  10. 실시간 데이터를 제공받아 소정의 파일시스템에 따른 실시간 데이터 파일을 생성하는 실시간 데이터 저장장치에서 상기 실시간 데이터 파일의 파일시스템을 관리하기 위한 메타정보를 유지하는 실시간 데이터 파일의 파일시스템 관리방법에 있어서, 상기 메타정보의 소정의 제1 정보엘리먼트가 소정의 제1 값인지 여부를 검사하여 상기 제1 값인 경우에 상기 메타정보의 소정의 제2 정보엘리먼트로부터 상기 실시간 데이터 파일에 대하여 상기 저장장치 상에서의 시작청크의 주소를 획득하는 제1 단계; 상기 시작청크로부터 시작하여 청크 내의 소정의 관리정보를 이용하여 상기 실시간 데이터 파일을 위한 청크시퀀스 정보를 획득하는 제2 단계; 상기 청크시퀀스 정보에 기초하여 상기 실시간 데이터 파일을 생성하는 제3 단계' 및 상기 제1 정보엘리먼트를 상기 제1 값 이외의 값으로 설정하는 제4 단계를 포함하는 파일복구절차를 수행하는 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  11. 제10항에 있어서, 상기 제3 단계 이후에 상기 청크시퀀스 정보에 기초하여 상기 메타정보의 소정의 청크 사용관리 정보엘리먼트를 업데이트하는 제5 단계를 더 포함하되, 상기 제4 단계와 상기 제5 단계는 서로 전후순서에 무관한 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  12. 제1항 또는 제5항 또는 제10항 중의 어느 하나의 항에 있어서, 상기 제1 정보엘리먼트가 상기 제1 값인지 여부를 검사하는 시기는 상기 저장장치에 전원이 공급되기 시작하여 상기 저장장치가 기동되기 시작하는 시점인 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  13. 제1항 또는 제5항 또는 제10항 중의 어느 하나의 항에 있어서, 상기 제1 정보엘리먼트가 상기 제1 값인지 여부를 검사하는 시기는 상기 저장장치가 전원-오프 모드에서 전원-온 모드로 절환되는 시점인 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  14. 제2항 또는 제6항 또는 제10항에 있어서, 상기 관리정보는 다음청크 주소정보와 관리버전정보인 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  15. 제1항 또는 제5항 또는 제10항 중의 어느 하나의 항에 있어서, 상기 실시간 데이터 저장장치는 하드디스크 장치인 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  16. 제1항 또는 제5항 또는 제10항 중의 어느 하나의 항에 있어서, 상기 메타정보는 상기 저장장치 내의 소정의 파일그룹에 속하는 하나이상의 실시간 데이터 파일을 위해서 제공되는 것을 특징으로 하는 실시간 데이터 파일의 파일시스템 관리방법.
  17. 제1항 또는 제5항 또는 제10항 중의 어느 하나의 항에 따른 실시간 데이터 파일의 파일시스템 관리방법을 구현하기 위한 프로그램을 기록한 컴퓨터로 판독가능한 기록매체.
  18. 제1항 또는 제5항 또는 제10항 중의 어느 하나의 항에 따른 실시간 데이터 파일의 파일시스템 관리방법에 의해 실시간 데이터 파일의 복구동작을 수행하는 것을 특징으로 하는 실시간 데이터 저장장치.
KR1020020075739A 2002-12-02 2002-12-02 실시간 데이터 파일을 위한 파일시스템 관리방법과 그기록매체, 및 이에 따른 실시간 데이터 저장장치 KR20040047996A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020020075739A KR20040047996A (ko) 2002-12-02 2002-12-02 실시간 데이터 파일을 위한 파일시스템 관리방법과 그기록매체, 및 이에 따른 실시간 데이터 저장장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020020075739A KR20040047996A (ko) 2002-12-02 2002-12-02 실시간 데이터 파일을 위한 파일시스템 관리방법과 그기록매체, 및 이에 따른 실시간 데이터 저장장치

Publications (1)

Publication Number Publication Date
KR20040047996A true KR20040047996A (ko) 2004-06-07

Family

ID=37342928

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020020075739A KR20040047996A (ko) 2002-12-02 2002-12-02 실시간 데이터 파일을 위한 파일시스템 관리방법과 그기록매체, 및 이에 따른 실시간 데이터 저장장치

Country Status (1)

Country Link
KR (1) KR20040047996A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100625207B1 (ko) * 2004-01-26 2006-09-20 현경열 유체 펌프 및 모터
KR100714691B1 (ko) * 2005-05-04 2007-05-04 삼성전자주식회사 파일 시스템에 추가 정보를 저장하고 관리하는 장치 및방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10177769A (ja) * 1996-12-13 1998-06-30 Sony Corp ディスク状記録媒体、ディスクドライブ装置
KR19990072945A (ko) * 1998-02-25 1999-09-27 가나이 쓰도무 실시간데이타기록방법
KR20000060245A (ko) * 1999-03-12 2000-10-16 구자홍 인터넷 스트리밍 서비스를 위한 스트림 파일 제작 방법
US6295086B1 (en) * 1996-04-24 2001-09-25 Sony Corporation Apparatus and method for generating digital still image files from digital moving images
US6330028B1 (en) * 1996-02-15 2001-12-11 Casio Computer Co., Ltd. Electronic image pickup device which is operable even when management information related to recording/reproducing image data is not readable

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330028B1 (en) * 1996-02-15 2001-12-11 Casio Computer Co., Ltd. Electronic image pickup device which is operable even when management information related to recording/reproducing image data is not readable
US6295086B1 (en) * 1996-04-24 2001-09-25 Sony Corporation Apparatus and method for generating digital still image files from digital moving images
JPH10177769A (ja) * 1996-12-13 1998-06-30 Sony Corp ディスク状記録媒体、ディスクドライブ装置
KR19990072945A (ko) * 1998-02-25 1999-09-27 가나이 쓰도무 실시간데이타기록방법
KR20000060245A (ko) * 1999-03-12 2000-10-16 구자홍 인터넷 스트리밍 서비스를 위한 스트림 파일 제작 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100625207B1 (ko) * 2004-01-26 2006-09-20 현경열 유체 펌프 및 모터
KR100714691B1 (ko) * 2005-05-04 2007-05-04 삼성전자주식회사 파일 시스템에 추가 정보를 저장하고 관리하는 장치 및방법

Similar Documents

Publication Publication Date Title
US7533378B2 (en) File-update apparatus for updating a file recorded on a recording medium
US8223600B2 (en) Network-attachable, file-accessible storage drive
US7263589B2 (en) Apparatus and method for controlling booting operation of computer system
KR100546524B1 (ko) 파일 관리 방법
JP4490917B2 (ja) ファイル管理方法及び情報処理装置
US8200631B2 (en) Snapshot reset method and apparatus
US20080215836A1 (en) Method of managing time-based differential snapshot
US20030076764A1 (en) File control method
JP2000020365A (ja) データ処理装置、及びそのファイル管理方法
JP2006510984A (ja) 事前設定されたバックアップ用dvd−rws
US8867889B2 (en) Apparatus, method, and computer program for processing information
US20060287990A1 (en) Method of file accessing and database management in multimedia device
JP4221959B2 (ja) ブリッジファイルシステム、コンピュータシステム、ブリッジファイルシステムを用いたデータ管理方法及び記録媒体
US20050262033A1 (en) Data recording apparatus, data recording method, program for implementing the method, and program recording medium
JP2005050192A (ja) 情報記録システム
KR102094786B1 (ko) 파일 시스템 및 상기 파일 시스템을 이용한 파일 저장 방법
JP4667225B2 (ja) 制御装置およびコピー制御方法
KR20040047996A (ko) 실시간 데이터 파일을 위한 파일시스템 관리방법과 그기록매체, 및 이에 따른 실시간 데이터 저장장치
JP2008269520A (ja) 記録装置及び記録方法
JP2006178633A (ja) 情報処理装置、情報処理方法、プログラム
JP2009205590A (ja) アクセスモジュール、情報記録モジュール、コントローラ、及び情報記録システム
JP2004302704A (ja) ファイル管理方法及びそれを用いたファイル管理機能付き記録再生装置
JP2001036841A (ja) データ管理装置、データ管理方法、データ管理手順を記録した記録媒体
JPH1198448A (ja) ビデオサーバ装置及びそのアクセス処理方法
JP2007264870A (ja) 情報処理装置、および情報処理方法、並びにコンピュータ・プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application