KR20090119481A - 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법 - Google Patents

파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법 Download PDF

Info

Publication number
KR20090119481A
KR20090119481A KR1020080045555A KR20080045555A KR20090119481A KR 20090119481 A KR20090119481 A KR 20090119481A KR 1020080045555 A KR1020080045555 A KR 1020080045555A KR 20080045555 A KR20080045555 A KR 20080045555A KR 20090119481 A KR20090119481 A KR 20090119481A
Authority
KR
South Korea
Prior art keywords
entry
file
cluster
log
information
Prior art date
Application number
KR1020080045555A
Other languages
English (en)
Other versions
KR100954603B1 (ko
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 KR1020080045555A priority Critical patent/KR100954603B1/ko
Publication of KR20090119481A publication Critical patent/KR20090119481A/ko
Application granted granted Critical
Publication of KR100954603B1 publication Critical patent/KR100954603B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 플래시 메모리에서 파일 시스템의 오류를 복구하기 위한 방법에 대한 것으로서, 플래시 메모리에서 엔트리(entry) 위치 정보를 이용함으로써 디스크상의 데이터를 변경시킬 때에 해당 연산 동작과 무관하게 메타데이터와 파일/디렉토리의 데이터를 복구할 수 있도록 하는 방법에 대한 것이다.
본 발명의 실시예에 따른 파일 시스템의 로그 파일은 적어도 하나 이상의 로그 데이터를 포함하는 로그 파일로서, 상기 로그 데이터를 구성하는 각각의 로그들은 적어도 하나 이상의 엔트리로 구성되며, 각각의 엔트리는 엔트리 위치정보와 상기 엔트리의 시작 클러스터로 구성되는 것을 특징으로 한다.
또한, 본 발명의 실시예에 따른 파일 시스템의 오류 복구 방법은 로그 파일로부터 엔트리 정보를 읽어오고, 읽어온 엔트리 정보를 확인하여 상기 엔트리가 삭제된 엔트리인지 여부를 확인하는 단계; 확인 결과, 상기의 읽어온 엔트리 정보의 엔트리가 삭제된 경우에, 상기 엔트리의 시작 클러스터가 사용가능 상태인지 여부를 확인하는 단계; 및 상기 엔트리 시작 클러스터가 사용가능상태가 아닌 경우에, 링크된 클러스터들을 사용가능상태로 변경함으로써, 오류를 복구하는 단계;를 포함한다.
파일 시스템, 메타데이터, 로그 파일

Description

파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구 방법{A log file of file system and method for recovering file system}
본 발명은 플래시 메모리에서 파일 시스템의 오류를 복구하기 위한 방법에 대한 것으로서, 플래시 메모리에서 엔트리(entry) 위치 정보를 이용함으로써 디스크상의 데이터를 변경시킬 때에 해당 연산 동작과 무관하게 메타데이터와 파일/디렉토리의 데이터를 복구할 수 있도록 하는 방법에 대한 것이다.
플래시 메모리는 기존의 회전식 자기 매체를 이용한 디스크에 비해 외부 충격에 강하고 비휘발성의 성질을 가지며, 빠른 속도로 접근할 수 있는 장점이 있다.
그리고, 상기 플래시 메모리는 저전력 구동이 가능하고 크기가 작기 때문에 정보가전, 통신기기, 휴대기기, 셋탑박스, 인터넷폰등의 내장형 시스템(Embedded System)에서 데이터를 저장하고 처리하기 위한 저장매체로 그 사용 영역이 폭넓게 확장되고 있다.
상기의 내장형 시스템에서는 전원이 꺼진 뒤에도 데이터를 보관하고 있어야 하며, 갑작스럽게 전원이 꺼지더라도 데이터의 일관성(consistency)이 보장되어야 한다. 다라서, 이러한 내장형 시스템에서는 비휘발성의 특성을 갖는 플래시 메모리 가 이용되고 있다.
일반적으로, 플래시 파일 시스템은 갑작스런 파워 오프(power off)시에 파일 시스템의 정상적인 구동을 위하여 파일 시스템의 메타데이터를 복구하는 루틴을 내부적으로 수행한다.
FAT 기반의 파일 시스템은 FAT 테이블과 실제 데이터를 저장하는 데이터 블럭(data block)으로 구분되고, 상기 데이터 블럭은 데이터를 저장하기 위하여 512bytes, 1024bytes 또는 2048bytes등과 같이 데이터를 저장할 수 있는 소정 크기로 구분되는데, 이러한 크기의 공간을 클러스터(cluster)라고 한다.
상기 클러스터는 큰 단위의 데이터는 클러스터 크기로 데이터를 구분함으로써, 여러 개의 클러스터를 사용하여 상기 데이터를 저장한다. 이때, 클러스터들은 사용가능한 클러스터부터 할당받게 되는 것이므로, 순차적으로 정렬되는 것이 아니라 비순차적으로 떨어져있게 된다.
비순차적으로 떨어져있는 클러스터를 관리하는 것은 FAT 테이블을 이용하여 수행되고, FAT 테이블에서 파일의 시작 클러스터에 다음으로 연결되는 클러스터 번호를 기록하고, 연결의 마지막에 데이터의 끝을 표시하는 EOC(End of Cluster)를 기록한다.
도 1은 FAT 테이블과 데이터 블록의 관계를 보여주는 도면이고, 도 2는 종래의 파일 시스템에서 FAT 테이블을 이용하여 파일의 저장을 보여주는 개념도이다.
도 1 및 도 2를 참조하면, 디렉토리(directory) Dir100은 2번 클러스터를 사용하고 있으며, 하나의 클러스터만을 사용하여 2번 클러스터에 EOC를 표시한다.
그리고, Dir100 디렉토리의 하위 파일인 File.dat는 3번 클러스터를 시작 클러스터로 하여 4번, 6번, 7번, 8번으로 연결되어 있으며, 8번에 EOC를 표시하여 파일이 끝났다는 것을 나타낸다.
이러한 파일 시스템은 파일에 대한 정보를 엔트리(entry)를 통해 디렉토리에 저장하며, 엔트리에 파일의 시작 클러스터 번호를 함께 기록한다. 만약, 파일이 삭제되면 엔트리와 엔트리의 시작 클러스터에 연결된 모든 클러스터를 지우게 된다.
이때, 클러스터를 지우거나 엔트리를 지울때 파워 로스(power loss) 또는 이동형 디바이스의 연결해재등이 발생하게 되면, 파일 시스템은 오류가 생겨 파일 시스템을 더이상 사용하지 못하는 경우가 발생한다.
이러한 오류에 대해서 첨부되는 도면을 참조하여 좀 더 상세히 살펴본다.
도 3은 종래의 파일 시스템에서 파일 삭제시 오류의 발생을 보여주는 도면이다.
도 3을 참조하면, File.dat를 삭제하는 과정에서 파워 로스가 qkfotd되어 파일의 일부 클러스터를 지우고, 나머지 클러스터를 지우지 못하였을 경우에, 클러스터가 손상된 것이 도시되어 있다.
즉, 시작 클러스터인 3번은 4번 클러스터를 다음 클러스터로 나타내고 있으나, 4번 클러스터는 EOC 표시되어 있지 않아 파일이 끝나지 않은 상태로서 사용가능한 것임을 나타내고 있다. 그러나, 상기 4번 클러스터는 다음 클러스터를 나타내고 있지 않아, 클러스터 연결의 깨짐이 발생하여 File.dat를 나타내는 파일 시스템 내부의 엔트리 정보가 유효하지 못하는 현상이 발생하게 된다.
이러한 문제점을 해결하기 위한 기술구성으로서, 파일 연산의 종류에 따라 복구 연산을 다르게 하여 이러한 오류를 복구하는 구성이 등록특허 10-0704621호에 개시되고 있다.
그러나, 상기 기술은 로그로 저장된 데이터에 라이트(write) 작업이 일어날 때 어떤 연산인지를 항상 기록하여야 하므로, 로그 데이터의 용량이 커져 로그 저장에 대한 오버헤드(overhead)가 발생하게 되고, 복구 시에도 각각의 연산이 어떤 연산인지 검사하고 각 연산에 대한 수행 작업을 별도로 관리하여야 하므로, 오류 복구 방법이 오히려 복잡해지는 문제점이 있다.
그리고, 상기 기술은 로그 데이터에 저장된 파일이나 디렉토리의 이름을 이용하여 엔트리의 위치 정보를 찾음으로써, 로그 데이터에 관련된 파일이나 디렉토리의 이름을 저장하여야 한다.
그러나, 파일의 이름을 로그에 저장하는 것은 로그 데이터의 크기를 키우게 되고, 디렉토리의 깊이가 깊어질수록 저장되는 이름 또한 늘어나게 되므로 로그 데이터가 커짐으로 인하여 로그를 저장하기 위한 데이터 크기 역시 비대해지는 문제점이 있다.
또한, 상기 기술에 따를 경우, 복구시에도 파일 이름을 통해 파일 엔트리를 찾아야 하므로, 파일을 검색하는 시간이 늘어나 오류를 복구하는데 소요되는 시간이 증가해지는 문제점이 있다.
또한, 상기 기술에 따를 경우, 각각의 로그 데이터에 시리얼 넘버를 사용하여 유효한 로그를 표시하는 방법을 개시하고 있는데, 이러한 방법은 오류를 복구하 기 위하여 모든 로그 데이터에서 시리얼 넘버를 찾아 유효한 로그인지 찾아야 하므로, 유효한 로그 검색에 소요되는 시간이 증가하게 되는 문제점이 있다.
또한, 상기 기술에 따를 경우, 로그 데이터의 개수가 늘어날 경우 최소 특정 크기의 공간 즉, 섹터단위로만 저장가능한 물리 장치에 섹터단위를 넘어서는 로그 데이터가 생성되므로, 로그 데이터를 저장하기 위해 여러 개의 섹터를 저장해야 하는 문제점이 있다.
또한, 상기 기술에 따를 경우, 멀티 태스킹(multi tasking) 환경에서 여러 개의 태스크가 파일 시스템에 접근시 이를 지원할 수 없게 된다.
본 발명은 상기되는 문제점을 해결하기 위하여 제안되는 것으로서, 엔트리 위치 정보와 엔트리 시작 클러스터 정보를 이용하여 파일 시스템의 메타 데이터의 오류를 복구하기 위한 방법을 제안하는 것을 목적으로 한다.
또한, 파일 연산의 종류에 구분없이 엔트리 위치 정보와 엔트리 시작 클러스터의 번호를 로그에 저장함으로써, 로그 자체 데이터의 크기를 줄여 로그 저장에 대한 오버헤드를 줄일 수 있는 파일 시스템의 오류 복구 방법을 제안하는 것을 목적으로 한다.
또한, 파일 시스템의 오류 복구시에, 파일의 연산 종류에 관계없이 엔트리 위치 정보와 엔트리 시작 클러스터를 이용하여 오류를 복구함으로써, 오류 복구 작업을 간소화할 수 있는 파일 시스템의 오류 복구 방법을 제안하는 것을 목적으로 한다.
또한, 엔트리 위치 정보를 로그로 저장하여 파일이나 디렉토리의 위치를 바로 찾을 수 있도록 함으로써, 복구할 파일을 찾기 위하여 파일 시스템을 검색하는 시간을 줄이고, 오류 복구에 따른 소요시간을 절감할 수 있는 파일 시스템의 오류 복구 방법을 제안하는 것을 목적으로 한다.
또한, 모든 로그 데이터에 유효한 로그를 찾기 위하여 시리얼 번호를 저장하는 것 대신에 하나의 로그 마스크를 저장함으로써, 로그 데이터의 크기를 줄일 뿐만 아니라 유효한 로그를 빠르게 검색하여 멀티 태스킹 환경에서도 로그 관리 및 복구를 가능하게 할 수 있는 파일 시스템의 오류 복구 방법을 제안하는 것을 목적으로 한다.
본 발명의 실시예에 따른 파일 시스템의 로그 파일은 적어도 하나 이상의 로그 데이터를 포함하는 로그 파일로서, 상기 로그 데이터를 구성하는 각각의 로그들은 적어도 하나 이상의 엔트리로 구성되며, 각각의 엔트리는 엔트리 위치정보와 상기 엔트리의 시작 클러스터로 구성되는 것을 특징으로 한다.
또한, 본 발명의 실시예에 따른 파일 시스템의 오류 복구 방법은 로그 파일로부터 엔트리 정보를 읽어오고, 읽어온 엔트리 정보를 확인하여 상기 엔트리가 삭제된 엔트리인지 여부를 확인하는 단계; 확인 결과, 상기의 읽어온 엔트리 정보의 엔트리가 삭제된 경우에, 상기 엔트리의 시작 클러스터가 사용가능 상태인지 여부를 확인하는 단계; 및 상기 엔트리 시작 클러스터가 사용가능상태가 아닌 경우에, 링크된 클러스터들을 사용가능상태로 변경함으로써, 오류를 복구하는 단계;를 포함한다.
다른 측면에 따른 본 발명의 파일 시스템의 오류 복구 방법은 파일 시스템의 로그 파일로부터 엔트리 정보를 읽어오고, 읽어온 엔트리 정보를 확인하여 상기 엔트리가 삭제된 엔트리인지 여부를 확인하는 단계; 확인 결과, 읽어온 엔트리 정보의 엔트리가 유효하고, 상기 엔트리 정보가 디렉토리일 경우에, 상기 엔트리의 시작 클러스터가 사용가능 상태인지 여부를 판단하는 단계; 판단결과, 상기 엔트리의 시작 클러스터가 유효한 클러스터인 경우에, 해당 클러스터 체인의 끝이 정상적으 로 종료되어 있는지 여부를 판단하는 단계; 및 판단결과, 해당 클러스터의 체인이 정상적으로 종료되지 않은 경우에, 상기 엔트리 정보의 엔트리를 모두 삭제하고, 상기 엔트리의 시작 클러스터에 연결된 클러스터들을 삭제하는 단계;를 포함한다.
다른 측면에 따른 본 발명의 파일 시스템의 오류 복구 방법은 파일 시스템의 로그 파일로부터 엔트리 정보를 읽어오고, 읽어온 엔트리 정보를 확인하여 상기 엔트리가 삭제된 엔트리인지 여부를 확인하는 단계; 확인 결과, 읽어온 엔트리 정보의 엔트리가 유효하고, 상기 엔트리 정보가 디렉토리일 경우에, 상기 엔트리의 시작 클러스터가 사용가능 상태인지 여부를 판단하는 단계; 판단결과, 상기 엔트리의 시작 클러스터가 유효한 클러스터인 경우에, 해당 클러스터 체인의 끝이 정상적으로 종료되어 있는지 여부를 판단하는 단계; 판단결과, 상기의 클러스터 체인이 정상적으로 종료된 경우에, 상기 파일 시스템이 적용된 장치가 이레이즈(erase)가 필요한지 여부를 판단하는 단계; 및 판단결과, 상기 장치가 이레이즈가 필요한 경우에, 상기 디렉토리 내의 하위 엔트리가 정상인지 여부를 검사하고, 상기 엔트리 위치 정보를 통해 읽어온 엔트리를 삭제하는 단계;를 포함한다.
다른 측면에 따른 본 발명의 파일 시스템의 오류 복구 방법은 파일 시스템의 로그 파일로부터 엔트리 정보를 읽어오고, 읽어온 엔트리 정보를 확인하여 상기 엔트리가 삭제된 엔트리인지 여부를 확인하는 단계; 확인 결과, 읽어온 엔트리 정보의 엔트리가 유효하고, 상기 엔트리 정보가 파일일 경우에, 상기 엔트리의 시작 클러스터가 사용가능 상태인지 여부를 판단하는 단계; 판단 결과, 상기 엔트리의 시작 클러스터가 유효한 클러스터인 경우에, 해당 클러스터 체인의 끝이 정상적으로 종료되어 있는지 여부를 판단하는 단계; 판단 결과, 해당 클러스터 체인이 정상적으로 종료되지 않은 경우에 정상적으로 체인을 완성하고, 상기 엔트리 정보의 파일크기보다 클러스터 개수가 많을 경우에 파일 크기만큼 클러스터 개수를 수정하는 단계; 및 상기 엔트리 정보의 파일 크기보다 클러스터의 개수가 적을 경우에, 클러스터 개수만큼 엔트리의 파일 크기를 수정하는 단계;를 포함한다.
다른 측면에 따른 본 발명의 파일 시스템의 오류 복구 방법은 파일 시스템의 로그 파일로부터 엔트리 정보를 읽어오고, 읽어온 엔트리 정보를 확인하여 상기 엔트리가 삭제된 엔트리인지 여부를 확인하는 단계; 확인 결과, 읽어온 엔트리 정보의 엔트리가 유효하고, 상기 엔트리 정보가 디렉토리일 경우에, 상기 엔트리의 시작 클러스터가 사용가능 상태인지 여부를 판단하는 단계; 및 판단결과, 상기 엔트리의 시작 클러스터가 사용가능상태인 경우에, 상기 시작 클러스터와 연결되는 클러스터 모두가 사용가능상태이면 상기 엔트리 정보의 엔트리를 모두 삭제하는 단계;를 포함한다.
제안되는 바와 같은 본 발명의 실시예에 따른 파일 시스템의 오류 복구 방법에 의하여, 파워 로스에 따른 FAT 메타데이터와 파일/디렉토리의 무결성을 보장하기 위한 로그의 저장시에, 실제로 변경되는 파일이나 디렉토리의 위치정보를 이용함으로써 로그의 오버헤드를 줄일 수 있는 장점이 있다.
또한, 로그 저장시에 연산의 종류에 따라 구분하지 않고, 오류 복구시에도 연산 종류에 관계없이 위치정보를 통하여 오류를 복구함으로써, 파일 시스템의 무 결성을 보장하기 위한 방법이 간소하여 오류 복구 시간을 단축시키는 장점이 있다.
또한, 로그 데이터에 파일이나 디렉터리의 위치 정보를 저장함으로써, 파일이나 디렉토리를 상위부터 검색하여 위치를 찾는 시간을 줄일 수 있는 장점이 있다.
또한, 로그 마스크를 이용하여 유효한 로그를 신속하게 검색할 수 있으며, 다수의 로그를 한 파일에 관리함으로써, 멀티 태스킹 환경에서도 여러 개의 로그를 관리하기 위하여 여러 개의 로그 파일을 생성할 필요가 없는 장점이 있으며, 한 파일을 통하여 로그를 관리할 수 있게 됨에 따라 오버헤드를 줄일 수 있으며, 로그 파일에 로그를 등록하는 때에만 로그 파일을 저장함으로써 로그를 저장하는 오버 헤드를 줄일 수 있는 장점이 있다.
또한, 로그를 저장하는 로그 자체 정보를 줄임으로써, 다수의 로그를 단일의 섹터에 저장하는 것이 가능해지고, 다수의 로그를 저장하기 위하여 다수의 섹터를 사용하지 않아 오버헤드를 줄일 수 있는 장점이 있다.
이하에서는, 본 실시예에 대하여 첨부되는 도면을 참조하여 상세하게 살펴보도록 한다. 다만, 본 실시예가 개시하는 사항으로부터 본 실시예가 갖는 발명의 사상의 범위가 정해질 수 있을 것이며, 본 실시예가 갖는 발명의 사상은 제안되는 실시예에 대하여 구성요소의 추가, 삭제, 변경등의 실시변형을 포함한다고 할 것이다.
그리고, 이하의 설명에서, 단어 '포함하는'은 열거된 것과 다른 구성요소들 또는 단계들의 존재를 배제하지 않는다.
본 발명의 실시예에 대한 상세한 설명에 있어서 각 용어에 대하여 기술하면, 아래와 같다.
본 발명의 실시예에 따라 라이트(write)작업에 해당하는 일련의 연산으로 인해 실제 디스크가 변경될 때 해당 파일이나 디렉토리의 엔트리(entry) 위치정보, 엔트리 시작 클러스터등을 로그 데이터로 저장한다.
라이트 작업에 해당하는 일련의 연산은 파일의 생성, 삭제 및 이동과, 디렉터리의 생성, 삭제 및 이동등 실제 물리적으로 기록되는 연산을 나타내며, 이하의 설명에서 이들을 라이트 작업이라 나타낸다.
그리고, 이하의 설명에서 엔트리는 상기의 파일에 대한 엔트리와 디렉토리의 엔트리들을 포함하는 의미로 사용된다.
도 4는 본 발명의 실시예에 따른 로그 파일의 일 실시 예를 보여주는 도면이다.
도 4를 참조하면, 본 발명에 따른 로그 파일은 시그너처(Signature), 로그 마스크(Log Mask) 및 로그 데이터(Log Data)을 포함하며, 상기 로그 데이터는 복수개의 로그로 이루어진다.
각각의 로그들은 1개 이상의 엔트리로 구성되며, 각각의 엔트리는 엔트리의 위치정보와 엔트리의 시작 클러스터로 구성된다.
상기 엔트리 위치정보는 파일 또는 디렉터리가 저장되는 공간 즉, 데이터 블록에 엔트리가 위치하는 물리적인 주소를 나타내고, 엔트리의 시작 클러스터는 FAT 메타데이터(Mata-Data) 즉, FAT 테이블에서 해당 엔트리의 시작점을 나타낸다.
상세히, 상기 엔트리 위치정보와 엔트리 시작 클러스터는 하나의 로그 데이터를 구성하며, 본 발명에서는 로그 데이터들을 저장하기 위하여 로그파일을 관리하기 위한 역할을 수행한다.
상기 로그파일은 볼륨당 하나의 로그파일이 생성되고 로그파일의 생성은 최초 파일시스템 포맷(Format) 후 생성된다.
상기 시그너처는 상기 로그 파일의 데이터가 유효한지 여부를 나타내며, 상기 로그 마스크는 멀티 태스킹을 지원하는 시스템에서 발생되는 다수의 로그를 하나의 로그 파일로 관리하며 로그파일내 다수의 로그 데이터중에서 유효한 로그를 나타내는 역할을 수행한다.
즉, 상기 시그너처는 파일시스템에서 지정된 값이 사용되며, 파일시스템 마운트(mount)시 시그너처가 지정된 값이 아닐 경우에 로그 파일의 데이터는 유효하지 않은 것으로 판단하여 복구작업을 수행하지 않고 상기 로그파일을 초기화한다.
반면에, 상기 시그너처가 유효하다면, 본 발명의 실시예에 따라 로그 데이터를 기반으로하여 메타데이터의 복구 작업이 수행된다.
그러나, 상기 로그 파일이 외부 환경에 의해 존재하지 않을 경우 상기 시그너처가 유효하지 않은 것과 같이 복구 작업은 수행하지 않고 로그파일을 새로 생성하고 로그파일을 초기화한다.
상기 로그 마스크는 로그파일 내 로그 데이터 중 유효한 로그 데이터를 나타낸다. 멀티 태스킹이 지원되지 않는 시스템에는 한 개의 로그 데이터만을 사용할 것이며 멀티 태스킹이 지원되는 시스템일 경우 파일시스템에 동시에 접근하는 태스크(task)수 만큼 로그가 사용된다.
예컨대, 상기 로그 마스크는 기본적으로 4bytes로 구성되며, 비트로 로그를 관리하므로 32개의 로그데이터를 관리한다. 상기 로그 마스크는 각각의 비트에 대응되는 위치의 로그 데이터를 나타내며, 1이면 유효한 로그를 의미하고 0이면 유효하지 않은 로그를 의미한다.
상기 로그 마스크는 시스템에 따라 변경 가능하므로 4bytes에 국한되는 것은 아니며, 상기 로그 마스크 및 시그너처는 본 발명의 사상에 따라 메타 데이터를 복구함에 있어서 선택적인 구성요소라 할 수 있다.
다만, 본 발명에 따른 로그 파일에는 엔트리 위치정보와 엔트리 시작 클러스터를 포함하는 적어도 하나 이상의 로그가 포함된다.
상기 로그 데이터는 엔트리의 위치정보 및 엔트리 시작 클러스터 등을 나타내는 것으로서, 라이트 작업은 하나의 엔트리를 변경하기도 하고 여러 개의 엔트리를 변경하기도 한다.
이하의 설명에서는, 이해의 편의를 돕기 위하여 하나의 엔트리에 대해 설명하고, 다수의 엔트리가 변경되는 경우에 대해서는 추후에 설명하고자 한다.
상기 엔트리의 위치정보는 파일이나 디렉터리가 생성이나 수정될 때 파일시스템 내에 위치하는 실제 물리적인 위치를 구해 로그로 관리함으로써, 엔트리의 위치를 찾기 위하여 루트(Root) 디렉터리부터 찾아오는 방식이 아니라 상기 엔트리의 위치정보를 통해 엔트리를 찾음으로써, 로그를 통해 복구하고자 하는 파일의 검색 이 간편히 수행된다.
상기 엔트리 시작 클러스터는 상기 엔트리가 할당 받은 엔트리가 시작되는 클러스터를 나타내며, 상기 엔트리 시작 클러스터를 통하여 엔트리에 연결된 클러스터 체인에 대한 복구가 가능하다.
한편, 파일 시스템을 마운트할 때, 로그관리기에 의하여 로그파일의 모든 데이터는 램(RAM)상의 로그버퍼로 관리되며, 라이트 작업으로 인해 실제 디스크가 변경되면 로그를 등록하기 위해 먼저 등록할 로그번호를 할당 받는다.
상기 로그번호의 할당은 상기 로그 마스크에 사용 가능한 위치를 하위 비트부터 0으로 설정된 것의 위치를 할당하고 상기 비트를 1로 설정한다. 그리고, 상기 라이트 작업으로 인해 변경되는 엔트리 위치정보 및 엔트리 시작 클러스터를 로그버퍼에 저장한다.
그 다음, 상기 할당과 로그버퍼에 등록하는 작업이 완료되면 실제 디스크의 로그파일에 저장한다.
라이트 작업이 완료되면, 파워 로스(Power Loss)와 같은 상황에서도 FAT 메타데이터와 파일/디렉터리의 무결성이 보장되므로, 상기 로그관리기에 의하여 관리되는 로그는 해제된다.
즉, 램 상의 버퍼에 로그 번호를 할당받기 위하여 상기 로그 마스크를 1로 설정하여 사용 중이라고 설정한 비트를 다시 사용 가능한 로그번호 상태인 0으로 변경하는 것에 의하여, 로그 해제작업은 끝이 난다.
따라서, 로그 해제 작업에서는 실제 디스크에 변경된 버퍼의 내용을 저장하 는 과정을 생략함으로써 로그를 관리하는 오버헤드를 줄일 수 있다.
상기 로그 해제작업에서 로그버퍼를 저장하지 않는 것으로 인해 파일시스템에서 디스크상의 데이터가 한번이라도 변경되었다면, 로그 파일에는 최소 1개의 로그 데이터가 유효한 상태로 표시되어있게 된다.
즉, 파일시스템의 마운트시 로그에 남아있는 최소 1개의 로그 데이터를 통해 무결성을 검사하게 되며, 필요시 무결성을 보장하기 위해 복구 작업을 수행한다.
파일 시스템의 마운트시 로그파일에 있는 로그 데이터로 무결성을 검사하는 것이 로그 해제 시 로그 데이터를 실제 디스크에 저장하는 것보다 로그를 관리하는 오버헤드를 줄일 수 있는 것이다.
왜냐하면, 로그의 등록/설정 및 해제 작업은 파일시스템을 사용하는 환경에서는 무수히 많이 일어나는 작업인 반면에, 파일 시스템의 마운트는 상대적으로 적은 양만이 수행되기 때문이다.
또한, 로그를 등록하는 작업이 라이트 작업이 일어날 때마다 발생하게 되므로, 실제 로그파일의 갱신은 로그해제시 해주지 않아도 로그를 등록하는 작업에서 로그파일의 갱신을 대신해주는 효과가 있다.
한편, 멀티 태스킹 시스템에서는 다수의 태스크(task)에서 파일시스템에 접근 가능하므로, 라이트 작업이 발생할 때 마다 상기 과정이 수행된다.
즉, 파일시스템 마운트시 로그 마스크에 1로 설정된 비트가 있으면, 1로 설정된 비트에 해당하는 위치의 로그 데이터를 기반으로 무결성 검사 및 복구를 수행한다. 그리고, 로그 데이터에 있는 엔트리 위치정보를 이용하여 해당 위치의 엔트 리 정보를 읽어온다. 읽어온 엔트리 정보가 정상적인 상태의 엔트리인지 검사하고 비정상적이면 삭제한다.
상기 엔트리 위치정보를 이용하여 해당 위치의 엔트리 정보를 읽어 왔을 때, 비정상적인 엔트리는 다음과 같은 경우에 빈번히 발생하는 것으로서, 플래시 메모리 소자의 경우를 예로 들어 본다.
플래시 메모리와 같이 특정 크기의 공간 즉, 섹터 단위로만 저장 가능한 물리 장치에서는, 파일시스템에서 관리하는 LFN(Long File Name) 엔트리와 같이 여러 개의 섹터에 나누어서 저장할 엔트리를 저장하는 도중에 갑자기 전원이 공급되지 않게 되면(파워 로스와 같은 외부 환경 요인도 포함), 엔트리의 일부 섹터만 저장되고, 나머지 섹터가 저장되지 않아 완전하지 않은 엔트리 상태가 될 수 있다.
이러한 상태는 FAT 메타 데이터의 무결성을 해치는 치명적인 결과를 가져오므로 마운트시 이러한 오류를 제거해주는 작업이 필요하다.
상기 LFN 엔트리가 유효하지 않은 상태로 남는 것은 LFN 엔트리를 생성하는 과정과 지우는 과정에서 많이 나타나므로, 본 발명에서 설명은 두 가지에 대해 설명한다. 다만, 이 두 가지 경우에만 국한되는 것은 아니다.
먼저, 상기 LFN 엔트리를 생성하는 과정에서 첫 섹터가 저장되고, 두 번째 섹터가 저장되지 않은 상태에서 파워 로스가 발생된 경우에, LFN 엔트리는 완성되지 않은 상태로 남아있게 된다.
상기 LFN 엔트리는 0x40을 LFN의 시작 엔트리로 설정하고, Short Name Entry를 마지막 엔트리로 저장한다. 이 경우, 첫 섹터에 저장되어 있는 LFN의 시작 엔트 리와 일부 LFN 엔트리를 제거하여 FAT 메타 데이터의 무결성을 보장한다.
다음으로, 상기 LFN 엔트리를 지우는 과정에서 첫 섹터에 엔트리를 삭제하고 두 번째 섹터의 엔트리를 삭제하지 않은 상태에서 파워 로스가 발생될 경우에, LFN 엔트리는 유효하지 않은 상태로 남아있게 된다. 이 경우 두 번째 섹터에 남아 있는 일부 LFN 엔트리와 Short Name entry를 제거하여 FAT 메타 데이터의 무결성을 보장한다.
상기 엔트리 정보가 비정상적일 때는 물론 정상적인 경우라도 엔트리 시작 클러스터로부터 연결된 클러스터 체인이 정상적으로 링크되어 있는지 여부를 검사하는 작업이 수행된다.
상기 로그 데이터의 위치정보를 통해 읽어온 엔트리 정보의 속성이 디렉터리일 경우에, 로그 데이터의 엔트리 시작 클러스터가 사용 가능 상태인지 검사한다. 사용가능 상태이면 해당 엔트리를 삭제한다.
만약, 사용가능 상태가 아닐 경우에는, 클러스터의 체인이 정상적으로 EOC(End of Cluster)로 끝이 나는지 검사하여 EOC로 끝이 나지 않았다면, 상기 엔트리 시작 클러스터에 링크된 클러스터를 모두 사용가능 상태로 만들고, 로그 데이터의 엔트리 위치정보에 해당하는 엔트리를 삭제한다.
반면에, 상기 클러스터 체인이 EOC로 끝난다면, 해당 볼륨의 디바이스가 이레이즈(erase)가 필요한 장치인지 검사하고, 삭제가 필요하지 않은 장치라면 복구 작업을 종료한다.
상기 디바이스가 이레이즈가 필요한 장치이면, 디렉터리내의 엔트리를 삭제 하는 도중에 파워 로스와 같은 상황이 발생될 수 있기 때문에, 디렉터리가 유효한지 검사하여 유효하지 않을 경우 상기 로그 데이터의 엔트리를 삭제한다.
상기 로그 데이터의 위치정보를 통해 읽어온 엔트리정보의 속성이 파일일 경우 로그 데이터의 엔트리 시작 클러스터가 사용가능 상태인지 검사한다. 사용가능 상태이면 해당 엔트리를 삭제한다.
사용가능 상태가 아닐 경우에, 클러스터 체인을 검사하여 EOC로 끝나는지 검사한다. 만약 EOC로 끝난다면 복구 작업을 종료하고, 사용가능 상태로 끝난다면 마지막 클러스터를 EOC를 표시하여 클러스터 체인을 완성한다.
클러스터 체인이 완성되면 실제 파일의 크기와 클러스터 체인을 통해 할당된 파일 크기를 검사하여 서로 다르면 클러스터에 실제 할당된 크기로 파일 엔트리의 파일 크기를 변경한다.
상기 로그 데이터에 저장된 엔트리가 여러 개인 경우 첫 번째 엔트리를 시간상 최초에 변경된 엔트리로 판단한다. 따라서, 마지막에 있는 엔트리를 검사하여 정상적이면 이전 엔트리에 대해 상기 방법을 이용하여 클러스터 체인과 엔트리를 삭제한다.
마지막 엔트리가 비정상적이라면, 바로 이전 엔트리를 검사한다. 여러 개의 엔트리중 하나는 정상적인 엔트리가 있게 되므로, 마지막 엔트리부터 시작하여 첫 엔트리까지 상기 과정을 반복하여 정상적인 엔트리찾고 상기 정상적인 엔트리를 사용하여 복구한다.
도 5는 본 발명의 실시예에 따라 로그 마스크에서 로그 데이터의 로그를 설 정하는 방법을 설명하기 위한 도면이다.
로그 마스크는 0x00000003이며, 이는 비트로 00000000 00000000 00000000 00000011을 나타낸다. 비트가 0으로 된 부분은 사용 가능하거나 유효하지 않은 로그를 나타내며, 1로 설정된 부분은 Log가 유효함을 나타낸다.
만약, 라이트 작업 중 파워 로스가 발생하여, 이후 마운트 하게 되면 1로 설정된 로그를 찾아 파일시스템의 오류를 검사하며, 필요시에 오류를 복구하기 위한 루틴이 수행된다.
상기 로그 마스크의 마지막 비트는 도면과 같이 로그 0번의 위치를 나타내고 마지막 이전 비트는 로그 1의 위치를 나타낸다. 같은 방법으로 모든 비트는 각 로그의 위치와 대응된다.
도 6은 본 발명의 실시예에 따라 라이트 작업시에 로그 파일 관리 방법을 설명하기 위한 도면이다.
도 6에는 라이트 작업이 발생하였을 때 로그 위치를 할당받고, 로그를 로그버퍼에 저장한 후 디스크에 로그파일로 저장하는 과정이 도시된다.
먼저, 라이트 작업이 수행되면 로그 마스크의 마지막 비트부터 할당 가능한 로그 공간을 할당한다. 도면에서는 마지막 비트를 할당하여 로그 마스크를 1로 바꾸고, 마지막 비트에 해당하는 Log 0번 위치에 라이트 작업이 발생된 파일에 대한 엔트리의 위치 정보와 엔트리의 시작 클러스터를 저장한다.
상기의 과정은 실제 디스크에 로그파일로 저장하는 것이 아니라 램 상에 로그파일과 동일한 상태의 로그버퍼를 두고, 이 로그버퍼에 수행되는 것이다. 로그버 퍼에 저장하는 과정이 끝나면, 저장된 로그 데이터를 실제 파일에 기록한다.
도 7은 본 발명의 실시예에 따라 라이트 작업이 완료되어 로그 데이터를 해제하는 과정을 설명하기 위한 도면이다.
도 7을 참조하면, 라이트 작업이 완료되어 로그파일에 저장한 로그를 해제하는 것은 램 상의 로그버퍼에서 할당했던 로그 마스크의 비트를 1에서 0으로 바꿈으로써 해제 과정은 종료된다.
로그 해제는 실제 디스크에 로그버퍼를 저장하지 않고 로그버퍼의 로그 마스크만을 변경함으로써, 로그 데이터를 디스크에 저장하는 부하를 줄인다. 그리고, 라이트 작업이 다시 수행되면, 로그버퍼의 내용이 바뀌고 실제 디스크에 저장함으로써 이전의 로그 파일은 자동으로 갱신된다.
도 8은 본 발명의 실시예에 따라 LFN Entry의 라이트 작업시에 발생한 오류를 복구하는 방법을 설명하기 위한 도면이다.
도 8에 도시된 바와 같이, LFN Entry가 4개의 엔트리로 구성되어 있을 경우에, 파일시스템에서는 4개의 LFN Entry를 기록하기 위하여 사용가능한 엔트리 공간을 찾는다.
이때, Entry는 사용 후 지워진 Deleted Entry이거나 할당되었지만 아직 사용하지 않은 Empty Entry이다. 만약 하나의 섹터에 4개의 LFN Entry을 기록할 공간이 부족해서 두 개의 섹터에 나뉘어 기록될 경우, 첫 번째 섹터에 LFN Entry의 Order number 43 Entry와 02 Entry를 기록하고, 두 번째 섹터에 01 Entry와 Short name Entry를 기록하게 된다.
이때, 첫 섹터의 라이트는 완료되고, 두 번째 섹터가 라이트되기 전에 파워 로스가 발생하게 되면, 첫 번째 섹터에는 43 Entry와 02 Entry만 라이트되어 완성되지 않은 Entry가 존재하게 되고, 두 번째 섹터는 01 Entry와 Short Entry를 라이트하기 위해 찾았던 Deleted이거나 Empty 상태의 Entry이다. 이때 완성되지 않은 43 Entry와 02 Entry를 Delete하여 오류를 복구하게 된다.
도 9는 본 발명의 실시예에 따라 LFN Entry을 삭제하는 작업시에 발생한 오류를 복구하는 방법을 설명하기 위한 도면이다.
도 9에 도시된 바와 같이, 2개의 섹터에 나뉘어진 4개의 LFN Entry를 삭제(Delete)하는 경우에 파워 로스등의 이유로 오류가 발생한 경우 즉, 첫 번째 섹터에 존재하는 LFN Entry의 Order number 43 Entry와 02 Entry를 삭제하고, 두 번째 섹터의 01 Entry와 Short name Entry는 삭제되지 않은 상태에서 파워 로스가 발생한 경우이다.
이 경우, 두 번째 섹터의 엔트리가 삭제되지 않아 유효하지 않은 01 Entry와 Short name Entry가 남아 있게된다. 이때, 유효하지 않은 01 Entry와 Short name Entry를 삭제하여 오류를 복구한다.
전술한 바와 같은 각각의 실시예들에서에서, 본 발명의 사상에 따른 로그 파일과 상기 로그 파일에 포함되어 있는 엔트리 위치 정보와 엔트리 시작 클러스터를 이용하는 것임은 앞서 설명한 바와 같다.
도 10은 본 발명의 실시예에 따라 파일 시스템의 마운트시 유효한 로그 데이터의 엔트리 정보를 이용하여 엔트리 정보를 읽어온 후 오류 검사 및 복구를 수행 하는 과정을 설명하기 위한 흐름도이다.
먼저, 본 발명의 실시예에 따른 로그 파일로부터 엔트리 정보(entry information)를 읽어오고(S101), 읽어온 엔트리 정보를 확인하여(S102) 상기 엔트리가 삭제된 엔트리인지 여부를 확인한다(S103).
그 다음, 읽어온 엔트리 정보의 엔트리가 삭제된 엔트리인 경우에(S104), 엔트리의 시작 클러스터가 사용가능 상태인지 검사하고(S104), 그 결과 엔트리 시작 클러스터가 사용가능상태가 아닌 경우에는 모든 링크된 클러스터를 사용가능 상태로 변경함으로써, 오류를 복구한다(S105).
만약, 엔트리 위치정보를 통해 읽어온 엔트리 정보의 엔트리가 유효하다면(S106), 도 11과 도 12의 과정을 통하여 오류를 복구하기 위한 작업이 수행된다.
도 11은 본 발명의 실시예에 따라 엔트리 위치 정보를 통해 읽어온 엔트리 정보가 디렉토리일 경우에 오류를 복구하기 위한 작업을 설명하기 위한 흐름도이다.
도 11을 참조하면, 엔트리의 시작 클러스터가 사용가능 상태인지 여부를 판단하고(S201), 판단결과 클러스터 체인을 통하여 연결된 클러스터 모두가 사용가능한 상태인 경우에 엔트리 정보의 엔트리를 모두 삭제한다(S202).
반면, 엔트리의 시작 클러스터가 사용불가능 상태 즉, 시작 클러스터가 현재 유효한 클러스터인 경우에는 해당 클러스터 체인의 끝이 EOC로 기록되어 있는지 여부를 판단한다(S203).
판단결과, 해당 클러스터 체인의 끝이 EOC로 끝이 나지 않는다면, 엔트리와 엔트리의 시작 클러스터는 유효하지 않은 것이므로, 엔트리 정보의 엔트리를 모두 삭제하고, 엔트리의 시작 클러스터에 연결된 모든 클러스터를 삭제한다(S204).
그러나, 해당 클러스터 체인의 끝이 EOC로 기록되어 있어 엔트리의 시작 클러스터가 유효한 경우라 하더라도, 이레이즈(Erase)가 필요한 저장장치인지 여부를 판단하는 과정이 수행된다(S205).
본 발명의 사상이 적용되는 저장장치가 이레이즈가 필요한 경우에는, 디렉터리내의 하위 엔트리가 정상적인지 검사한다(S206). 만약 디렉터리내의 하위 엔트리가 정상적이면 오류가 없으므로 오류복구를 끝내고, 비정상적이라면 엔트리 위치정보를 통해 읽어온 엔트리 정보의 엔트리를 지운다(S207)(S208).
도 12는 본 발명의 실시예에 따라 엔트리 위치 정보를 통해 읽어온 엔트리 정보가 파일일 경우에 오류를 복구하기 위한 작업을 설명하기 위한 흐름도이다.
도 12를 참조하면, 엔트리 정보로부터 시작 클러스터를 확인하고(S301), 시작 클러스터로부터 클러스터 체인을 검사하여 마지막 클러스터가 사용가능한지 여부를 확인한다(S302).
만약, 마지막 클러스터가 사용가능하지 않는 경우 즉, 상기 마지막 클러스터가 EOC로 끝나는 경우에는 엔트리가 FAT 테이블에 매칭되는지 여부를 확인하고(S304), 상기 엔트리가 FAT 테이블에 매칭되도록 업데이트한다(S305).
상기 마지막 클러스터가 EOC로 끝나지 않는 경우에는, 상기 마지막 클러스터에 EOC를 기록한 뒤(S303), 엔트리가 FAT 테이블에 매칭되는지 여부에 따라 상기 엔트리를 업데이트시키는 작업을 반복한다.
다시 말하면, 엔트리의 시작 클러스터로부터 클러스터 체인을 형성하는 파일의 크기가 상기 엔트리 위치정보를 통해 읽어온 엔트리 정보의 파일크기와 같으면, 상기 클러스터 체인을 형성하는 파일은 정상적인 파일이므로 오류복구를 끝낸다.
그리고, 파일 크기가 상이할 경우에는, 클러스터 체인의 마지막 클러스터가 EOC로 끝나는지 검사한다. EOC로 끝나지 않고 사용가능으로 끝이나면 마지막 클러스터를 EOC로 바꾼다. 그리고, 수정된 클러스터의 개수에 맞게 파일을 나타내는 엔트리의 파일 크기도 수정하여 엔트리를 업데이트한다.
전술한 바와 같은 본 발명의 사상에 대하여 비록 한정되는 실시예와 도면에 의하여 설명하였으나, 본 발명의 사상은 상기되는 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 실시예의 변경, 구성요소의 추가 및 변형이 가능할 것이다.
도 1은 FAT 테이블과 데이터 블록의 관계를 보여주는 도면.
도 2는 종래의 파일 시스템에서 FAT 테이블을 이용하여 파일의 저장을 보여주는 개념도.
도 3은 종래의 파일 시스템에서 파일 삭제시 오류의 발생을 보여주는 도면.
도 4는 본 발명의 실시예에 따른 로그 파일의 일 실시 예를 보여주는 도면.
도 5는 본 발명의 실시예에 따라 로그 마스크에서 로그 데이터의 로그를 설정하는 방법을 설명하기 위한 도면.
도 6은 본 발명의 실시예에 따라 라이트 작업시에 로그 파일 관리 방법을 설명하기 위한 도면.
도 7은 본 발명의 실시예에 따라 라이트 작업이 완료되어 로그 데이터를 해제하는 과정을 설명하기 위한 도면.
도 8은 본 발명의 실시예에 따라 LFN Entry의 라이트 작업시에 발생한 오류를 복구하는 방법을 설명하기 위한 도면.
도 9는 본 발명의 실시예에 따라 LFN Entry을 삭제하는 작업시에 발생한 오류를 복구하는 방법을 설명하기 위한 도면.
도 10은 본 발명의 실시예에 따라 파일 시스템의 마운트시 유효한 로그 데이터의 엔트리 정보를 이용하여 엔트리 정보를 읽어온 후 오류 검사 및 복구를 수행하는 과정을 설명하기 위한 흐름도.
도 11은 본 발명의 실시예에 따라 엔트리 위치 정보를 통해 읽어온 엔트리 정보가 디렉토리일 경우에 오류를 복구하기 위한 작업을 설명하기 위한 흐름도.
도 12는 본 발명의 실시예에 따라 엔트리 위치 정보를 통해 읽어온 엔트리 정보가 파일일 경우에 오류를 복구하기 위한 작업을 설명하기 위한 흐름도이다.

Claims (15)

  1. 파일 시스템 복구를 위한 메타데이터를 나타내는 적어도 하나 이상의 로그 데이터를 포함하는 로그 파일로서,
    상기 로그 데이터를 구성하는 각각의 로그들은 적어도 하나 이상의 엔트리로 구성되며, 각각의 엔트리는 엔트리 위치정보와 상기 엔트리의 시작 클러스터로 구성되는 것을 특징으로 하는 파일 시스템의 로그 파일.
  2. 제 1 항에 있어서,
    상기 엔트리 위치정보는 데이터 블럭에 상기 엔트리가 위치하는 물리적인 주소를 나타내는 것을 특징으로 하는 파일 시스템의 로그 파일.
  3. 제 1 항에 있어서,
    상기 엔트리의 시작 클러스터는 FAT 테이블에서 상기 엔트리 데이터의 시작점을 나타내는 것을 특징으로 하는 파일 시스템의 로그 파일.
  4. 제 1 항에 있어서,
    상기 로그 파일에는 상기 로그 파일의 데이터가 유효한지 여부를 나타내기 위한 시그너처(signature)가 더 포함되는 것을 특징으로 하는 파일 시스템의 로그 파일.
  5. 제 4 항에 있어서,
    상기 시그너처는 상기 파일 시스템에서 지정된 값이 사용되며, 상기 파일 시스템의 마운트(mount)시에 상기 시그너처가 지정된 값이 아닐 경우에 상기 로그 파일의 데이터는 유효하지 않은 것으로 판단되어 상기 로그파일이 초기화되는 것을 특징으로 하는 파일 시스템의 로그 파일.
  6. 제 1 항에 있어서,
    상기 로그 파일에는 상기 로그 파일내의 로그 데이터중에서 유효한 로그 데이터를 나타내기 위한 로그 마스크가 더 포함되는 것을 특징으로 하는 파일 시스템의 로그 파일.
  7. 제 6 항에 있어서,
    상기 파일 시스템이 멀티 태스킹(multi-tasking)을 지원하기 위하여, 상기 파일 시스템에 접근하는 태스크(task)수 만큼 상기 로그 마스크가 더 구비되는 것을 특징으로 하는 파일 시스템의 로그 파일.
  8. 로그 파일로부터 엔트리 정보를 읽어오고, 읽어온 엔트리 정보를 확인하여 상기 엔트리가 삭제된 엔트리인지 여부를 확인하는 단계;
    확인 결과, 상기의 읽어온 엔트리 정보의 엔트리가 삭제된 경우에, 상기 엔 트리의 시작 클러스터가 사용가능 상태인지 여부를 확인하는 단계; 및
    상기 엔트리 시작 클러스터가 사용가능상태가 아닌 경우에, 링크된 클러스터들을 사용가능상태로 변경함으로써, 오류를 복구하는 단계;를 포함하는 파일 시스템의 오류 복구 방법.
  9. 파일 시스템의 로그 파일로부터 엔트리 정보를 읽어오고, 읽어온 엔트리 정보를 확인하여 상기 엔트리가 삭제된 엔트리인지 여부를 확인하는 단계;
    확인 결과, 읽어온 엔트리 정보의 엔트리가 유효하고, 상기 엔트리 정보가 디렉토리일 경우에, 상기 엔트리의 시작 클러스터가 사용가능 상태인지 여부를 판단하는 단계;
    판단결과, 상기 엔트리의 시작 클러스터가 유효한 클러스터인 경우에, 해당 클러스터 체인의 끝이 정상적으로 종료되어 있는지 여부를 판단하는 단계; 및
    판단결과, 해당 클러스터의 체인이 정상적으로 종료되지 않은 경우에, 상기 엔트리 정보의 엔트리를 모두 삭제하고, 상기 엔트리의 시작 클러스터에 연결된 클러스터들을 삭제하는 단계;를 포함하는 파일 시스템의 오류 복구 방법.
  10. 파일 시스템의 로그 파일로부터 엔트리 정보를 읽어오고, 읽어온 엔트리 정보를 확인하여 상기 엔트리가 삭제된 엔트리인지 여부를 확인하는 단계;
    확인 결과, 읽어온 엔트리 정보의 엔트리가 유효하고, 상기 엔트리 정보가 디렉토리일 경우에, 상기 엔트리의 시작 클러스터가 사용가능 상태인지 여부를 판 단하는 단계;
    판단결과, 상기 엔트리의 시작 클러스터가 유효한 클러스터인 경우에, 해당 클러스터 체인의 끝이 정상적으로 종료되어 있는지 여부를 판단하는 단계;
    판단결과, 상기의 클러스터 체인이 정상적으로 종료된 경우에, 상기 파일 시스템이 적용된 장치가 이레이즈(erase)가 필요한지 여부를 판단하는 단계; 및
    판단결과, 상기 장치가 이레이즈가 필요한 경우에, 상기 디렉토리 내의 하위 엔트리가 정상인지 여부를 검사하고, 상기 엔트리 위치 정보를 통해 읽어온 엔트리를 삭제하는 단계;를 포함하는 파일 시스템의 오류 복구 방법.
  11. 파일 시스템의 로그 파일로부터 엔트리 정보를 읽어오고, 읽어온 엔트리 정보를 확인하여 상기 엔트리가 삭제된 엔트리인지 여부를 확인하는 단계;
    확인 결과, 읽어온 엔트리 정보의 엔트리가 유효하고, 상기 엔트리 정보가 디렉토리일 경우에, 상기 엔트리의 시작 클러스터가 사용가능 상태인지 여부를 판단하는 단계; 및
    판단결과, 상기 엔트리의 시작 클러스터가 사용가능상태인 경우에, 상기 시작 클러스터와 연결되는 클러스터 모두가 사용가능상태이면 상기 엔트리 정보의 엔트리를 모두 삭제하는 단계;를 포함하는 파일 시스템의 오류 복구 방법.
  12. 파일 시스템의 로그 파일로부터 엔트리 정보를 읽어오고, 읽어온 엔트리 정보를 확인하여 상기 엔트리가 삭제된 엔트리인지 여부를 확인하는 단계;
    확인 결과, 읽어온 엔트리 정보의 엔트리가 유효하고, 상기 엔트리 정보가 파일일 경우에, 상기 엔트리의 시작 클러스터로부터 클러스터 체인을 형성하는 파일의 크기와 상기 엔트리 정보로부터 획득되는 파일크기를 비교하는 단계; 및
    상기의 파일 크기들 간의 비교 결과에 따라, 상이한 오류 복구 작업이 수행되는 단계;가 포함되는 파일 시스템의 오류 복구 방법.
  13. 제 12 항에 있어서,
    상기 엔트리 정보로부터 획득되는 파일크기가 상기 클러스터 체인을 형성하는 파일의 크기와 동일할 경우에는, 상기 클러스터 체인을 형성하는 파일을 정상적으로 판단하고 오류 복구작업을 종료하는 것을 특징으로 하는 파일 시스템의 오류 복구 방법.
  14. 제 12 항에 있어서,
    상기 엔트리 정보로부터 획득되는 파일크기가 상기 클러스터 체인을 형성하는 파일의 크기와 상이할 경우에는,
    상기 클러스터 체인의 마지막 클러스터가 정상적으로 종료하는지 여부를 검사하여 상기의 마지막 클러스터가 정상적으로 종료하는 값을 갖도록 수정하는 단계와, 수정된 클러스터의 개수에 대응되도록 상기 파일을 나타내는 엔트리 정보를 업데이트하는 단계를 더 포함하는 것을 특징으로 하는 파일 시스템의 오류 복구 방법.
  15. 파일 시스템의 로그 파일로부터 엔트리 정보를 읽어오고, 읽어온 엔트리 정보를 확인하여 상기 엔트리가 삭제된 엔트리인지 여부를 확인하는 단계;
    확인 결과, 읽어온 엔트리 정보의 엔트리가 유효하고, 상기 엔트리 정보가 파일일 경우에, 상기 엔트리의 시작 클러스터가 사용가능 상태인지 여부를 판단하는 단계;
    판단 결과, 상기 엔트리의 시작 클러스터가 유효한 클러스터인 경우에, 해당 클러스터 체인의 끝이 정상적으로 종료되어 있는지 여부를 판단하는 단계;
    판단 결과, 해당 클러스터 체인이 정상적으로 종료되지 않은 경우에 정상적으로 체인을 완성하고, 상기 엔트리 정보의 파일크기보다 클러스터 개수가 많을 경우에 파일 크기만큼 클러스터 개수를 수정하는 단계; 및
    상기 엔트리 정보의 파일 크기보다 클러스터의 개수가 적을 경우에, 클러스터 개수만큼 엔트리의 파일 크기를 수정하는 단계;를 포함하는 파일 시스템의 오류 복구 방법.
KR1020080045555A 2008-05-16 2008-05-16 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법 KR100954603B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080045555A KR100954603B1 (ko) 2008-05-16 2008-05-16 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080045555A KR100954603B1 (ko) 2008-05-16 2008-05-16 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법

Publications (2)

Publication Number Publication Date
KR20090119481A true KR20090119481A (ko) 2009-11-19
KR100954603B1 KR100954603B1 (ko) 2010-04-26

Family

ID=41603179

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080045555A KR100954603B1 (ko) 2008-05-16 2008-05-16 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법

Country Status (1)

Country Link
KR (1) KR100954603B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190044820A (ko) * 2017-10-23 2019-05-02 숭실대학교산학협력단 동적 로딩 파일 추출 방법 및 장치
US10922270B2 (en) * 2017-02-01 2021-02-16 Pittasoft Co., Ltd. Adaptive data recording method in vehicle image recording device
CN113742127A (zh) * 2021-09-16 2021-12-03 重庆大学 一种裸闪存文件系统的故障恢复方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101979715B1 (ko) 2012-09-28 2019-05-17 삼성전자 주식회사 컴퓨팅 시스템 및 그 데이터 관리 방법
KR20220060155A (ko) 2020-11-04 2022-05-11 삼성전자주식회사 스토리지 서버, 상기 스토리지의 서버 구동 방법 및 상기 스토리지 서버를 포함하는 데이터 센터

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001101044A (ja) * 1999-09-29 2001-04-13 Toshiba Corp トランザクショナルファイル管理方法、トランザクショナルファイルシステム及び複合トランザクショナルファイルシステム
KR100775141B1 (ko) * 2005-12-28 2007-11-12 엘지전자 주식회사 저널링이 적용된 fat 파일 시스템의 구현 방법

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10922270B2 (en) * 2017-02-01 2021-02-16 Pittasoft Co., Ltd. Adaptive data recording method in vehicle image recording device
KR20190044820A (ko) * 2017-10-23 2019-05-02 숭실대학교산학협력단 동적 로딩 파일 추출 방법 및 장치
US10467413B2 (en) 2017-10-23 2019-11-05 Foundation Of Soongsil University-Industry Cooperation Method and apparatus of dynamic loading file extraction for an application running in an android container
CN113742127A (zh) * 2021-09-16 2021-12-03 重庆大学 一种裸闪存文件系统的故障恢复方法

Also Published As

Publication number Publication date
KR100954603B1 (ko) 2010-04-26

Similar Documents

Publication Publication Date Title
JP4832521B2 (ja) フラッシュメモリメディアにおけるデータ管理方法
KR100843543B1 (ko) 플래시 메모리 장치를 포함하는 시스템 및 그것의 데이터복구 방법
KR100644602B1 (ko) 플래시메모리를 위한 재사상 제어방법 및 그에 따른플래시 메모리의 구조
US10120795B2 (en) Wear-leveling nandflash memory reading/writing method
US8694984B2 (en) Memory apparatus and method of updating firmware of the memory apparatus
US9092323B2 (en) Systems and methods for recovering addressing data
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
JP2009199625A (ja) メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法
JP2000305839A (ja) 記憶装置、記憶システム、メモリ管理方法及び記録媒体
CN109902034B (zh) 快照创建方法、装置、电子设备及机器可读存储介质
KR100703680B1 (ko) 플래시 파일 시스템
KR100954603B1 (ko) 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법
JP4347707B2 (ja) 情報記録媒体のフォーマット方法および情報記録媒体
JP6542152B2 (ja) オブジェクトストレージ、コントローラおよびプログラム
KR100698655B1 (ko) 이동통신 단말기의 파일 업데이트 시스템과, efs 영역헤더 손실로 인한 치명적인 에러를 방지하는 이동통신단말기의 부팅 관리 시스템과, 이동통신 단말기의 파일업데이트 방법 및 efs 영역 헤더 손실로 인한 치명적인에러를 방지하는 이동통신 단말기의 부팅 방법
KR101676175B1 (ko) 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
US8595426B2 (en) Handling commands within a write-once read-many storage device configuration
CN114327292B (zh) 文件管理方法、系统、电子设备和存储介质
US11436105B2 (en) Data processing method and memory controller utilizing the same
CN111949212B (zh) 基于自定义开放通道ssd的文件系统及文件管理方法
KR100638638B1 (ko) 플래시 메모리의 제어 방법
JP2014115927A (ja) プログラム更新装置、方法、プログラム、及び記憶媒体
KR100939814B1 (ko) 플래시 메모리의 로그파일 관리 및 기록방법
CN114265562B (zh) 一种基于flash存储器的文件存储方法和系统
JP7435470B2 (ja) 情報処理装置、情報処理方法および情報処理プログラム

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
LAPS Lapse due to unpaid annual fee