KR101836380B1 - 파일 시스템의 데이터 관리 방법 및 이를 이용하는 컴퓨팅 시스템 - Google Patents
파일 시스템의 데이터 관리 방법 및 이를 이용하는 컴퓨팅 시스템 Download PDFInfo
- Publication number
- KR101836380B1 KR101836380B1 KR1020160063614A KR20160063614A KR101836380B1 KR 101836380 B1 KR101836380 B1 KR 101836380B1 KR 1020160063614 A KR1020160063614 A KR 1020160063614A KR 20160063614 A KR20160063614 A KR 20160063614A KR 101836380 B1 KR101836380 B1 KR 101836380B1
- Authority
- KR
- South Korea
- Prior art keywords
- inode
- backup
- file
- information
- unallocated
- Prior art date
Links
Images
Classifications
-
- G06F17/3007—
-
- 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/11—File system administration, e.g. details of archiving or snapshots
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- 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/17—Details of further file system functions
-
- 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/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
-
- G06F17/30129—
-
- G06F17/30185—
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
파일 시스템의 데이터 관리 방법은 비할당 아이노드(inode)의 식별 정보에 기초하여 아이노드 테이블(inode table)에 저장된 상기 비할당 아이노드의 삭제시각정보를 획득하는 단계, 아이노드 고유의 매직 넘버(magic number)를 이용하여, 로그 영역(log area) 내에서 상기 비할당 아이노드에 상응하는 백업 아이노드를 검색하는 단계, 검색된 백업 아이노드의 변경시각정보와 상기 비할당 아이노드의 삭제시각정보를 비교하여 상기 백업 아이노드를 검증하는 단계 및 검증된 백업 아이노드에 상응하는 파일의 복원 여부의 선택을 요청하는 단계를 포함한다.
Description
본 발명의 기술적 사상은 파일 시스템의 데이터 관리 방법 및 이를 이용하는 컴퓨팅 시스템에 관한 것으로, 보다 상세하게는, 비할당 아이노드의 삭제시각정보와 아이노드 고유의 매직 넘버(magic number)를 이용하여 로그 영역(log area) 내의 백업 아이노드를 검색하고, 상기 삭제시각정보를 이용하여 상기 백업 아이노드를 검증하여 검증된 백업 아이노드에 상응하는 복원 후보 파일 정보를 출력할 수 있는 파일 시스템의 데이터 관리 방법 및 이를 이용하는 컴퓨팅 시스템에 관한 것이다.
컴퓨팅 시스템에서는 하드웨어 저장 장치에 저장된 파일에 쉽게 접근하고, 저장된 파일을 관리할 수 있도록 하기 위하여 파일 시스템(file system)을 두고 있다.
즉, 파일 시스템은 하드웨어 저장 장치에 데이터를 쓰고(write), 읽고(read), 관리하기 위한 규칙을 정리해 놓은 체계를 나타낸다.
파일 시스템은 OS(Operating System)의 일부로 구성되기 때문에, OS의 종류에 따라 서로 다른 형태를 가질 수 있으며 윈도우 기반의 파일 시스템에는 FAT16(File Allocation Table 16), FAT32(File Allocation Table 32), NTFS(NT file system) 등이 있으며, 리눅스 기반의 파일 시스템에는 ext2(Extended File System 2), reiserFS(Reiser File System), ext3(Extended File System 3), ext4(Extended File System 4) 등이 있으며, 유닉스 기반의 파일 시스템에는 UFS(Unix File System)가 있다.
본 발명의 기술적 사상에 따른 파일 시스템의 데이터 관리 방법 및 이를 이용하는 컴퓨팅 시스템이 이루고자 하는 기술적 과제는, 비할당 아이노드의 삭제시각정보와 아이노드 고유의 매직 넘버(magic number)를 이용하여 로그 영역(log area) 내의 백업 아이노드를 검색하고, 상기 삭제시각정보를 이용하여 상기 백업 아이노드를 검증하여 검증된 백업 아이노드에 상응하는 복원 후보 파일 정보를 출력할 수 있는 파일 시스템의 데이터 관리 방법 및 이를 이용하는 컴퓨팅 시스템을 제공하는 것이다.
본 발명의 기술적 사상에 의한 일 양태에 따른 파일 시스템의 데이터 관리 방법은 비할당 아이노드(inode)의 식별 정보에 기초하여 아이노드 테이블(inode table)에 저장된 상기 비할당 아이노드의 삭제시각정보를 획득하는 단계, 아이노드의 고유의 매직 넘버(magic number)와 상기 삭제시각정보를 이용하여, 로그 영역(log area) 내에서 상기 비할당 아이노드에 상응하는 백업 아이노드를 검색하는 단계, 검색된 백업 아이노드의 변경시각정보와 상기 비할당 아이노드의 상기 삭제시각정보를 비교하여 상기 백업 아이노드를 검증하는 단계 및 검증된 백업 아이노드에 상응하는 파일의 복원 여부의 선택을 요청하는 단계를 포함한다.ㅏ
일부 실시 예에서, 상기 삭제시각정보를 획득하는 단계 이전에, 그룹 디스크립터(group descriptor)에 저장된 마지막으로 사용된 아이노드 위치 정보, 비할당 아이노드의 개수 정보, 총 아이노드 개수 정보에 기초하여, 상기 비할당 아이노드의 상기 식별 정보를 획득하는 단계를 더 포함할 수 있다.
일부 실시 예에서, 상기 비할당 아이노드의 상기 삭제시각정보는, 상기 아이노드 테이블에 저장된 상기 비할당 아이노드의 삭제 시각을 나타내는 비트들의 값에 따라 판단될 수 있다.
일부 실시 예에서, 상기 백업 아이노드를 검색하는 단계는, 상기 로그 영역 내의 상기 매직 넘버를 포함하는 데이터 중에서 상기 삭제시각정보와 일치하는 정보를 가지는 데이터를 상기 백업 아이노드로 판단하여 검색할 수 있다.
일부 실시 예에서, 상기 백업 아이노드를 검증하는 단계는 상기 백업 아이노드의 상기 변경시각정보에 포함된 생성시각, 접근시각, 및 수정시각이 상기 삭제시각정보에 포함된 삭제시각 이전인지 여부를 통하여 상기 백업 아이노드를 검증할 수 있다.
일부 실시 예에서, 상기 백업 아이노드를 검증하는 단계는 상기 백업 아이노드의 파일 모드에 관한 비트들, 파일 크기에 관한 비트들, 및 포인터에 관한 비트들이 유효한 값을 가지는지 여부를 추가로 검증할 수 있다.
일부 실시 예에서, 상기 복원 여부의 선택을 요청하는 단계는 상기 백업 아이노드에 상응하는 상기 파일의 파일 종류에 기초하여, 우선순위를 정하여 복원 여부의 선택을 요청할 수 있다.
본 발명의 기술적 사상에 의한 일 양태에 따른 파일 시스템은 복원 후보 파일들의 정보를 포함하는 파일 목록을 요청하는 어플리케이션 인터페이스(application interface) 및 상기 요청에 따라, 비할당 아이노드(inode)의 식별 정보에 기초하여 파일 시스템(file system)의 아이노드 테이블(inode table)에 저장된 상기 비할당 아이노드의 삭제시각정보를 획득하고, 아이노드의 고유의 매직 넘버(magic number)와 상기 삭제시각정보를 이용하여, 로그 영역(log area) 내에서 상기 비할당 아이노드에 상응하는 백업 아이노드를 검색하고, 검색된 백업 아이노드의 변경시각정보와 상기 비할당 아이노드의 상기 삭제시각정보를 비교하여 상기 백업 아이노드를 검증하여, 검증된 백업 아이노드에 상응하는 파일을 포함하는 상기 복원 후보 파일들의 정보를 출력하는 파일 관리 장치를 포함한다.
일부 실시 예에서, 상기 파일 관리 장치는 그룹 디스크립터(group descriptor)에 저장된 마지막으로 사용된 아이노드 위치 정보, 비할당 아이노드의 개수 정보, 총 아이노드 개수 정보에 기초하여 상기 비할당 아이노드의 상기 식별 정보를 획득할 수 있다.
일부 실시 예에서, 상기 비할당 아이노드의 상기 삭제시각정보는 상기 아이노드 테이블에 저장된 상기 비할당 아이노드의 삭제 시각을 나타내는 비트들의 값에 따라 판단될 수 있다.
일부 실시 예에서, 상기 파일 관리 장치는 상기 로그 영역 내의 상기 매직 넘버를 포함하는 데이터 중에서 상기 삭제시각정보와 일치하는 정보를 가지는 데이터를 상기 백업 아이노드로 판단하여 검색할 수 있다.
일부 실시 예에서, 상기 파일 관리 장치는 상기 백업 아이노드의 상기 변경시각정보에 포함된 생성시각, 접근시각, 및 수정시각이 상기 삭제시각정보에 포함된 삭제시각 이전인지 여부를 통하여 상기 백업 아이노드를 검증할 수 있다.
일부 실시 예에서, 상기 파일 관리 장치는 상기 백업 아이노드의 파일 모드에 관한 비트들, 파일 크기에 관한 비트들, 및 포인터에 관한 비트들이 유효한 값을 가지는지 여부에 따라 상기 백업 아이노드를 추가로 검증할 수 있다.
일부 실시 예에서, 상기 파일 관리 장치는 상기 백업 아이노드에 상응하는 상기 파일의 파일 종류에 기초하여, 우선순위를 정하여 상기 복원 후보 파일들의 정보를 출력할 수 있다.
본 발명의 기술적 사상에 의한 실시 예에 따른 방법과 장치는, 비할당 아이노드의 삭제시각정보와 아이노드 고유의 매직 넘버를 이용하여 로그 영역(log area) 내에서 백업 아이노드를 효율적으로 검색할 수 있는 효과가 있다.
또한, 본 발명의 기술적 사상에 의한 실시 예에 따른 방법과 장치는, 삭제시각정보를 이용하여 검색된 백업 아이노드를 검증함에 따라 높은 정확도의 복원 후보 파일들의 정보를 포함하는 파일 목록을 제공할 수 있는 효과가 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 파일 시스템의 구조를 나타낸 도면이다.
도 2는 본 발명의 실시 예에 따른 파일 시스템의 데이터 관리 방법의 플로우차트이다.
도 3은 도 1의 파일 시스템에 포함된 아이노드 테이블(inode table)을 나타낸 도면이다.
도 4는 도 1의 파일 시스템의 스토리지 블록들(storage blocks)에 포함된 디렉토리 엔트리(directory entry)를 나타낸 도면이다.
도 5는 도 3의 아이노드 테이블에 포함된 아이노드의 데이터 포인팅 형태를 나타낸 도면이다.
도 6은 본 발명의 실시 예에 따른 컴퓨팅 시스템(computing system)의 블록도이다.
도 1은 본 발명의 실시 예에 따른 파일 시스템의 구조를 나타낸 도면이다.
도 2는 본 발명의 실시 예에 따른 파일 시스템의 데이터 관리 방법의 플로우차트이다.
도 3은 도 1의 파일 시스템에 포함된 아이노드 테이블(inode table)을 나타낸 도면이다.
도 4는 도 1의 파일 시스템의 스토리지 블록들(storage blocks)에 포함된 디렉토리 엔트리(directory entry)를 나타낸 도면이다.
도 5는 도 3의 아이노드 테이블에 포함된 아이노드의 데이터 포인팅 형태를 나타낸 도면이다.
도 6은 본 발명의 실시 예에 따른 컴퓨팅 시스템(computing system)의 블록도이다.
본 발명의 기술적 사상은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 이를 상세한 설명을 통해 상세히 설명하고자 한다. 그러나, 이는 본 발명의 기술적 사상을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 기술적 사상의 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명의 기술적 사상을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 본 명세서의 설명 과정에서 이용되는 숫자(예를 들어, 제1, 제2 등)는 하나의 구성요소를 다른 구성요소와 구분하기 위한 식별기호에 불과하다.
또한, 본 명세서에서, 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에 기재된 "~부(유닛)", "~기", "~자", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
그리고 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다.
이하, 본 발명의 기술적 사상에 따른 실시예들을 차례로 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 파일 시스템의 구조를 나타낸 도면이다.
도 1을 참조하면, 도 1의 파일 시스템(FS)는 UFS(Unix File System) 구조를 기반으로 설명되지만, 이에 한정되는 것은 아니다.
파일 시스템(file system, FS)은 하드 디스크 레코드(hard disk record)와 여러 개의 파티션들(partition1~ partition3)로 구성될 수 있다.
디스크 레이블(disk label)이라고도 불리는 하드 디스크 레코드는 하드 디스크 전체 정보를 담고 있는 영역으로서 파일시스템(FS)의 첫번째 블록에 존재한다.
하드 디스크 레코드는 서로 구분되어 있는 각 파티션(partition1~ partition3)에 관한 정보를 저장할 수 있으며, 각 파티션(partition1~ partition3)은 파일 시스템(FS)의 성능 향상을 위하여 복수의 실린더 그룹들(cylinder group#1 ~ cylinder group#n)로 구분될 수 있다.
도 1에서는 설명의 편의를 위하여 파일 시스템(FS)이 3개의 파티션(partition1~ partition3)으로 구성되는 경우를 도시하나, 이에 한정되지 않으며 파티션의 개수는 변할 수 있다.
각 실린더 그룹(cylinder group#1 ~ cylinder group#n)은 부트 블록(boot block), 슈퍼 블록(super block), 그룹 디스크립터(group descriptor), 아이노드 테이블(inode table), 및 스토리지 블록들(storage blocks)을 포함할 수 있다.
부트 블록은 컴퓨팅 시스템(computing system)의 부팅(booting)에 필요한 프로그램이 저장되는 영역이다.
각 실린더 그룹(cylinder group#1 ~ cylinder group#n)에 관한 설정 정보는 슈퍼 블록과 그룹 디스크립터에 저장된다.
슈퍼 블록은 각 실린더 그룹(cylinder group#1 ~ cylinder group#n)을 대표하는 블록으로서, 각 실린더 그룹(cylinder group#1 ~ cylinder group#n)의 주요 설정 정보들이 기록되어 있다. 즉, 슈퍼 블록은 각 실린더 그룹(cylinder group#1 ~ cylinder group#n)의 구조 분석 시 가장 기초가 되는 메타데이터(metadata)이다.
슈퍼 블록에 저장되는 주요 데이터에는 총 블록의 개수, 데이터 블록의 크기, 프래그먼트(fragment)의 크기, 그룹 디스크립터의 오프셋(offset), 아이노드 테이블의 오프셋 등이 있다.
실시 예에 따라, 슈퍼 블록은 하드 디스크 레코드와 제1파티션(partition1) 사이에 배치되고, 제1실린더 그룹(cylinder group#1)의 슈퍼 블록은 백업 슈퍼 블록(backup super block)으로 구성될 수도 있다.
실린더 그룹 블록(cylinder group block) 또는 실린더 그룹 맵(cylinder group map)이라고도 불리는 그룹 디스크립터는 슈퍼 블록의 다음 블록부터 시작되며, 각 실린더 그룹(cylinder group#1 ~ cylinder group#n)에 대한 세부 정보를 포함하고 있다.
그룹 디스크립터에 저장되는 주요 데이터에는 각 실린더 그룹(cylinder group#1 ~ cylinder group#n) 내의 총 아이노드 개수, 각 실린더 그룹(cylinder group#1 ~ cylinder group#n) 내의 총 아이노드 개수, 비할당 아이노드의 개수, 마지막으로 할당된 아이노드 위치, 현재 할당된 아이노드들의 위치 등이 있다.
아이노드 테이블은 복수의 아이노드들을 포함할 수 있으며, 아이노드 테이블의 구조는 도 3을 참조하여 상세히 설명된다.
데이터 블록들(data blocks)이라고도 불리는 스토리지 블록들은 실제로 데이터가 저장되는 공간으로서 파일 시스템(FS)의 가장 많은 부분을 차지한다. 스토리지 블록들에는 파일에 대한 접근 경로를 생성 및 저장하는 디렉토리와 파일의 데이터를 저장하는 데이터 블록들, 백업 데이터들이 기록되는 로그 영역(log area)으로 구성된다.
특히, 스토리지 블록들은 디렉토리들의 리스트를 포함하는 디렉토리 엔트리(directory entry)를 포함하며, 디렉토리 엔트리의 구조는 도 4를 참조하여 상세히 설명된다.
도 2는 본 발명의 실시 예에 따른 파일 시스템의 데이터 관리 방법의 플로우차트이다. 도 3은 도 1의 파일 시스템에 포함된 아이노드 테이블(inode table)을 나타낸 도면이다. 도 4는 도 1의 파일 시스템의 스토리지 블록들(storage blocks)에 포함된 디렉토리 엔트리(directory entry)를 나타낸 도면이다. 도 5는 도 3의 아이노드 테이블에 포함된 아이노드의 데이터 포인팅 형태를 나타낸 도면이다.
도 1과 도 2를 참조하면, 도 1의 파일 시스템(FS)을 포함하는 컴퓨팅 시스템은 복원 후보 파일들의 정보를 포함하는 파일 목록 요청에 따라, 먼저 파일 시스템(FS)의 슈퍼 블록을 분석할 수 있다(S10).
S10 단계의 슈퍼 블록의 분석 결과 총 블록의 개수, 데이터 블록의 크기, 프래그먼트(fragment)의 크기, 그룹 디스크립터의 오프셋(offset), 아이노드 테이블의 오프셋 등에 관한 정보가 획득될 수 있다.
다음으로, 컴퓨팅 시스템은 파일 시스템(FS)의 그룹 디스크립터를 분석하여, 비할당된 아이노드의 식별 정보를 획득할 수 있다(S12).
S12 단계에서는, S10 단계에서 획득된 그룹 디스크립터의 오프셋과 프래그먼트의 크기를 이용하여 그룹 디스크립터의 위치를 확인하여 그룹 디스크립터를 분석할 수 있다.
실시 예에 따라, 컴퓨팅 시스템은 그룹 디스크립터에 저장된 마지막으로 사용된 아이노드 위치 정보, 비할당 아이노드의 개수 정보, 총 아이노드 개수 정보에 기초하여 비할당 아이노드의 식별 정보(예컨대, 아이노드의 번호 정보)를 획득할 수 있다.
컴퓨팅 시스템은 S12 단계에서 획득한 비할당 아이노드의 식별 정보에 기초하여, 아이노드 테이블에 저장된 상기 비할당 아이노드의 삭제시각정보를 획득할 수 있다(S14).
도 2와 도 3을 참조하면, 아이노드 테이블은 복수의 아이노드들(Inode 1 ~ Inode m)을 포함하며, 복수의 아이노드들(Inode 1 ~ Inode m) 각각은 파일 모드(file mode), UID(User ID), 파일 사이즈(file size), 파일 접근 시각(atime), 파일 수정 시각(mtime), 파일 삭제 시각(dtime), 파일 생성 시각(crtime) 및 복수의 포인터들(pointer 1 ~ pointer p) 등의 데이터를 포함할 수 있다.
S14 단계에서의 비할당 아이노드의 삭제시각정보는 상기 비할당 아이노드의 파일 삭제 시각을 나타내는 비트들, 예컨대 파일 삭제 시각(dtime)에 따라 판단될 수 있다.
도 2로 돌아와서, 컴퓨팅 시스템은 아이노드의 고유의 매직 넘버(magic number)와 S14 단계에서 획득한 삭제시각정보를 이용하여, 로그 영역(log area) 내에서 비할당 아이노드에 상응하는 백업 아이노드를 검색할 수 있다(S16).
도 1 내지 도 3을 참조하면, 각 아이노드는 별도의 정보를 나타내지는 않지만 아이노드의 자료구조를 표시하기 위해 쓰이는 고유의 값, 즉 아이노드 고유의 매직 넘버(mgnum)를 포함한다. 실시 예에 따라, 매직 넘버(mgnum)는 아이노드의 가장 앞부분에 위치할 수 있으나 이에 한정되는 것은 아니다.
삭제된 데이터에 대한 백업 아이노드는 스토리지 블록들에 포함되어 있는 로그 영역에 저장되어 있으며, 컴퓨팅 시스템은 이러한 백업 아이노드가 시작되는 부분을 매직 넘버(mgnum)를 통하여 검색할 수 있다.
컴퓨팅 시스템은 로그 영역 내의 매직 넘버(mgnum)를 포함하는 데이터 중에서 S14 단계에서 획득한 삭제시각정보와 일치하는 정보를 가지는 데이터를 복원 후보 파일에 관련된 백업 아이노드로 판단하여 검색할 수 있다.
도 2로 돌아와서, 컴퓨팅 시스템은 S16 단계에서 검색된 백업 아이노드를 S14 단계에서 획득한 삭제시각정보를 통하여 검증할 수 있다(S18).
실시 예에 따라, 컴퓨팅 시스템은 S16 단계에서 검색된 백업 아이노드의 변경시각정보와 S14 단계에서 획득한 삭제시각정보를 비교함으로써 상기 백업 아이노드를 검증할 수 있다.
도 2와 도 3을 참조하면, 백업 아이노드의 변경시각정보는 파일 접근 시각(atime), 파일 수정 시각(mtime), 및 파일 생성 시각(crtime))을 포함할 수 있다.
실시 예에 따라, 컴퓨팅 시스템은 백업 아이노드의 파일 접근 시각(atime), 파일 수정 시각(mtime), 및 파일 생성 시각(crtime)이 파일 삭제 시각(dtime) 이전인지 여부를 통하여 백업 아이노드를 검증할 수 있다. 이 경우, 파일 접근 시각(atime), 파일 수정 시각(mtime), 및 파일 생성 시각(crtime)이 파일 삭제 시각(dtime) 이전인 경우 백업 아이노드는 정상적으로 검증될 수 있다.
다른 실시 예에 따라, 컴퓨팅 시스템은 백업 아이노드의 파일 모드에 관한 비트들(file mode), 파일 크기에 관한 비트들(file size), 및 포인터에 관한 비트들(pointer1 ~ pointer p)이 유효한 값을 가지는지 여부를 추가로 검증할 수 있다. 이 경우, 파일 모드에 관한 비트들(file mode), 파일 크기에 관한 비트들(file size), 및 포인터에 관한 비트들(pointer1 ~ pointer p)이 정상 범위의 값을 갖는지 여부를 통하여 유효한 값을 가지는지 여부를 판단할 수 있다.
실시 예에 따라, S18 단계에서 백업 아이노드가 정상적으로 검증되지 않은 경우, 해당 백업 아이노드에 상응하는 파일은 복원 후보 파일에서 제외시킬 수 있다.
도 1, 도 2, 및 도 4를 참조하면, 컴퓨팅 시스템은 S18 단계에서 검증된 백업 아이노드에 상응하는 파일 정보를 획득할 수 있다. 실시 예에 따라, 컴퓨팅 시스템은 백업 아이노드에 상응하는 파일 정보는 파일 시스템(FS)의 스토리지 블록들에 포함된 디렉토리 엔트리(directory entry)를 참조하여 획득할 수 있다.
디렉토리 엔트리는 각 아이노드(Inode 1 ~ Inode m) 별로 디렉토리 엔트리의 길이(directory entry length1 ~ directory entry length m), 파일명의 길이(name length 1 ~ name length m), 파일 타입(file type 1 ~ file type m), 파일명 (file name 1 ~ file name m) 등의 정보를 포함할 수 있다.
도 2로 돌아와서, 컴퓨팅 시스템은 S18 단계에서 검증된 백업 아이노드에 상응하는 파일의 복원 여부의 선택을 사용자에게 요청할 수 있다(S20).
실시 예에 따라, S20 단계에서 컴퓨팅 시스템은 디렉토리 엔트리로부터 획득한 파일 정보에 기초하여, 복원 후보 파일들의 정보를 포함하는 파일 목록을 생성하여 사용자에게 제공할 수 있다.
다른 실시 예에 따라, 컴퓨팅 시스템은, 백업 아이노드에 상응하는 파일의 파일 종류(파일의 확장자, 파일의 형태(예컨대, 이미지 또는 텍스트) 등)에 따라 우선순위를 정하여 상기 백업 아이노드에 상응하는 파일의 복원 여부의 선택을 사용자에게 요청할 수 있다.
이 경우, 사용자에게 제공되는 복원 후보 파일들의 파일 목록에서 파일들의 순서는 상기 우선순위에 따라 달라질 수 있다. 예컨대, 컴퓨팅 시스템이 디지털포렌식(digital forensic) 기법을 활용하는 데에 적용되는 경우, 증거 확보에 큰 영향을 미칠 수 있는 이미지 파일(jpg, gif 등의 확장자를 가지는 파일)의 우선순위를 높게 설정하고, 이미지 파일을 영구삭제 후보 파일들의 리스트에서 위쪽에 배치하거나, 이미지 파일을 복원 후보 파일들의 리스트에서 강조 표시를 하여 사용자에게 제공할 수 있다.
또 다른 실시 예에 따라, 컴퓨팅 시스템은, 백업 아이노드에 상응하는 파일의 삭제시각에 따라 우선순위를 정하여 상기 백업 아이노드에 상응하는 파일의 복원 여부의 선택을 사용자에게 요청할 수 있다. 예컨대, 최근에 삭제된 파일의 우선순위가 높게 설정될 수 있다.
도 2로 돌아와서, 컴퓨팅 시스템은 사용자의 선택에 따라 선택된 파일을 복원할 수 있다(S22).
도 2와 도 5를 참조하면, S22 단계의 복원을 수행하는 경우, 사용자에 의해 선택된 파일의 아이노드(예컨대, Inode 2)를 참조하여, 해당 아이노드의 직접 블록 포인터(예컨대, pointer 1), 단일 간접 블록 포인터(예컨대, pointer 2), 이중 간접 블록 포인터(예컨대, pointer 3), 삼중 간접 블록 포인터(예컨대, pointer 4)의 깊이(depth of tree)에 따라 상응하는 데이터를 추적하여 해당 데이터를 복원할 수 있다.
도 6은 본 발명의 실시 예에 따른 컴퓨팅 시스템(computing system)의 블록도이다.
도 1 내지 도 6을 참조하면, 컴퓨팅 시스템(10)은 버스(bus)로 연결된 프로세서(processor, 100), 랜덤 억세스 메모리(Random Access Memory(RAM),200), 어플리케이션 인터페이스(application interface, 300), 저장 장치(storage, 400), 파일 관리 장치(file managing device, 600), 및 디스플레이(display, 700)를 포함할 수 있다.
도 6의 컴퓨팅 시스템(10)의 구성은 일 실시 예에 불과하며, 컴퓨팅 시스템(10)은 실시 예에 따라 일부 구성이 제외되거나 일부 구성이 추가되어 구성될 수도 있다.
프로세서(100)는 컴퓨팅 시스템(10)의 전반적인 동작을 처리하며, 프로세서(100)는 저장 장치(400)에 데이터를 입출력하기 위한 입출력 명령을 생성할 수 있다.
랜덤 억세스 메모리(200)는 프로세서(100)의 동작에 필요한 데이터들을 저장하며, 프로세서(100)는 랜덤 억세스 메모리(200)에 저장된 데이터를 가공, 연산, 또는 처리할 수 있다.
어플리케이션 인터페이스(300)는 사용자 또는 어플리케이션에서 발생한 요청을 프로세서(100)로 전달하고, 프로세서(100)에 의해 처리된 결과를 수신하여 출력할 수 있다.
저장 장치(400)는 데이터를 저장하며, 프로세서(100)의 명령에 따라 저장 장치(400)에 저장된 데이터가 입출력될 수 있다.
파일 관리 장치(600)는 적어도 하나의 파일 시스템(file system, 500)을 사용할 수 있다. 저장 장치(400)로 입출력되는 데이터는 파일 시스템(500)에 의해서 접근 또는 관리될 수 있다. 실시 예에 따라, 도 6의 파일시스템(500)은 도 1의 파일시스템(FS)과 같은 형태로 구현될 수 있다. 다른 실시 예에 따라, 파일 시스템(500)은 UFS(Unix File System), Advanced Disc Filing System, AdvFS, Be File System (BFS), Btrfs, CrossDOS, 디스크 파일링 시스템 (DFS), Episode, EFS, exFAT, ext, ext2, ext3, FAT, Files-11, 계층적 파일 시스템(HFS), HFS 플러스, High Performance File System, IBM GPFS, JFS, 매킨토시 파일 시스템, MINIX, 넷웨어 파일 시스템, NILFS, 노벨 스토리지 서비스, NTFS, QFS, QNX4FS, ReiserFS(Reiser4), SpadFS, UBIFS, Veritas File System (VxFS), VFAT, Write Anywhere File Layout (WAFL), XFS, Xsan, ZFS 등의 다양한 형태로 구현될 수 있다.
디스플레이(700)는 프로세서(100)에 의해 처리된 결과를 화면으로 표시할 수 있다.
실시 예에 따라, 프로세서(100)는 어플리케이션 인터페이스(300)를 통해 복원 후보 파일들의 정보를 포함하는 파일 목록의 요청이 입력된 경우, 프로세서(100)는 도 2의 S10 내지 S20 단계에 따라 요청에 상응하는 파일 정보를 파일 관리 장치(600)의 파일 시스템(500)으로부터 획득하고, 획득한 파일 정보에 기초하여 파일 목록을 작성하여 어플리케이션 인터페이스(300)로 제공할 수 있다.
사용자는 제공된 파일 목록에 따라, 복원할 파일을 어플리케이션 인터페이스(300)를 통해 선택하고, 프로세서(100)는 선택된 파일이 복원되도록 파일 관리 장치(600)의 파일 시스템(500)에 명령을 전달하며, 이에 따라 해당 파일이 복원될 수 있다.
이상, 본 발명의 기술적 사상을 다양한 실시예들을 들어 상세하게 설명하였으나, 본 발명의 기술적 사상은 상기 실시예들에 한정되지 않고, 본 발명의 기술적 사상의 범위 내에서 당 분야에서 통상의 지식을 가진 자에 의하여 여러가지 변형 및 변경이 가능하다.
10 : 컴퓨팅 시스템
100: 프로세서
200 : 랜덤 억세스 메모리
300 : 어플리케이션 인터페이스
400 : 저장 장치
500 : 파일 관리 장치
600 : 파일 시스템
700 : 디스플레이
100: 프로세서
200 : 랜덤 억세스 메모리
300 : 어플리케이션 인터페이스
400 : 저장 장치
500 : 파일 관리 장치
600 : 파일 시스템
700 : 디스플레이
Claims (14)
- 비할당 아이노드(inode)의 식별 정보에 기초하여 아이노드 테이블(inode table)에 저장된 상기 비할당 아이노드의 삭제시각정보를 획득하는 단계;
아이노드의 고유의 매직 넘버(magic number)와 상기 삭제시각정보를 이용하여, 로그 영역(log area) 내에서 상기 비할당 아이노드에 상응하는 백업 아이노드를 검색하는 단계;
검색된 백업 아이노드의 변경시각정보와 상기 비할당 아이노드의 상기 삭제시각정보를 비교하여 상기 백업 아이노드를 검증하는 단계; 및
검증된 백업 아이노드에 상응하는 파일의 복원 여부의 선택을 요청하는 단계를 포함하고,
상기 백업 아이노드를 검색하는 단계는,
상기 로그 영역 내의 상기 매직 넘버를 포함하는 데이터 중에서 상기 삭제시각정보와 일치하는 정보를 가지는 데이터를 상기 백업 아이노드로 판단하여 검색하는, 파일 시스템의 데이터 관리 방법.
- 제1항에 있어서,
상기 삭제시각정보를 획득하는 단계 이전에,
그룹 디스크립터(group descriptor)에 저장된 마지막으로 사용된 아이노드 위치 정보, 비할당 아이노드의 개수 정보, 총 아이노드 개수 정보에 기초하여, 상기 비할당 아이노드의 상기 식별 정보를 획득하는 단계를 더 포함하는, 파일 시스템의 데이터 관리 방법.
- 제1항에 있어서,
상기 비할당 아이노드의 상기 삭제시각정보는,
상기 아이노드 테이블에 저장된 상기 비할당 아이노드의 삭제 시각을 나타내는 비트들의 값에 따라 판단되는, 파일 시스템의 데이터 관리 방법.
- 삭제
- 제1항에 있어서,
상기 백업 아이노드를 검증하는 단계는,
상기 백업 아이노드의 상기 변경시각정보에 포함된 생성시각, 접근시각, 및 수정시각이 상기 삭제시각정보에 포함된 삭제시각 이전인지 여부를 통하여 상기 백업 아이노드를 검증하는, 파일 시스템의 데이터 관리 방법.
- 제5항에 있어서,
상기 백업 아이노드를 검증하는 단계는,
상기 백업 아이노드의 파일 모드에 관한 비트들, 파일 크기에 관한 비트들, 및 포인터에 관한 비트들이 유효한 값을 가지는지 여부를 추가로 검증하는, 파일 시스템의 데이터 관리 방법.
- 제1항에 있어서,
상기 복원 여부의 선택을 요청하는 단계는,
상기 백업 아이노드에 상응하는 상기 파일의 파일 종류에 기초하여, 우선순위를 정하여 복원 여부의 선택을 요청하는, 파일 시스템의 데이터 관리 방법.
- 복원 후보 파일들의 정보를 포함하는 파일 목록을 요청하는 어플리케이션 인터페이스(application interface); 및
상기 요청에 따라, 비할당 아이노드(inode)의 식별 정보에 기초하여 파일 시스템(file system)의 아이노드 테이블(inode table)에 저장된 상기 비할당 아이노드의 삭제시각정보를 획득하고, 아이노드의 고유의 매직 넘버(magic number)와 상기 삭제시각정보를 이용하여, 로그 영역(log area) 내에서 상기 비할당 아이노드에 상응하는 백업 아이노드를 검색하고, 검색된 백업 아이노드의 변경시각정보와 상기 비할당 아이노드의 상기 삭제시각정보를 비교하여 상기 백업 아이노드를 검증하여, 검증된 백업 아이노드에 상응하는 파일을 포함하는 상기 복원 후보 파일들의 정보를 출력하는 파일 관리 장치를 포함하고,
상기 파일 관리 장치는,
상기 로그 영역 내의 상기 매직 넘버를 포함하는 데이터 중에서 상기 삭제시각정보와 일치하는 정보를 가지는 데이터를 상기 백업 아이노드로 판단하여 검색하는, 컴퓨팅 시스템.
- 제8항에 있어서,
상기 파일 관리 장치는,
그룹 디스크립터(group descriptor)에 저장된 마지막으로 사용된 아이노드 위치 정보, 비할당 아이노드의 개수 정보, 총 아이노드 개수 정보에 기초하여 상기 비할당 아이노드의 상기 식별 정보를 획득하는, 컴퓨팅 시스템.
- 제8항에 있어서,
상기 비할당 아이노드의 상기 삭제시각정보는,
상기 아이노드 테이블에 저장된 상기 비할당 아이노드의 삭제 시각을 나타내는 비트들의 값에 따라 판단되는, 컴퓨팅 시스템.
- 삭제
- 제8항에 있어서,
상기 파일 관리 장치는,
상기 백업 아이노드의 상기 변경시각정보에 포함된 생성시각, 접근시각, 및 수정시각이 상기 삭제시각정보에 포함된 삭제시각 이전인지 여부를 통하여 상기 백업 아이노드를 검증하는, 컴퓨팅 시스템.
- 제12항에 있어서,
상기 파일 관리 장치는,
상기 백업 아이노드의 파일 모드에 관한 비트들, 파일 크기에 관한 비트들, 및 포인터에 관한 비트들이 유효한 값을 가지는지 여부에 따라 상기 백업 아이노드를 추가로 검증하는, 컴퓨팅 시스템.
- 제8항에 있어서,
상기 파일 관리 장치는,
상기 백업 아이노드에 상응하는 상기 파일의 파일 종류에 기초하여, 우선순위를 정하여 상기 복원 후보 파일들의 정보를 출력하는, 컴퓨팅 시스템.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160063614A KR101836380B1 (ko) | 2016-05-24 | 2016-05-24 | 파일 시스템의 데이터 관리 방법 및 이를 이용하는 컴퓨팅 시스템 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160063614A KR101836380B1 (ko) | 2016-05-24 | 2016-05-24 | 파일 시스템의 데이터 관리 방법 및 이를 이용하는 컴퓨팅 시스템 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170132572A KR20170132572A (ko) | 2017-12-04 |
KR101836380B1 true KR101836380B1 (ko) | 2018-03-08 |
Family
ID=60921403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160063614A KR101836380B1 (ko) | 2016-05-24 | 2016-05-24 | 파일 시스템의 데이터 관리 방법 및 이를 이용하는 컴퓨팅 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101836380B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6615224B1 (en) | 1999-02-23 | 2003-09-02 | Lewis B. Davis | High-performance UNIX file undelete |
JP2005166042A (ja) | 2003-12-02 | 2005-06-23 | Hauri Inc | Ext2ファイルシステムのデータ復旧方法及びそのプログラムを記録した記録媒体 |
JP5650826B2 (ja) * | 2013-10-04 | 2015-01-07 | 日本電信電話株式会社 | 検索インデックス生成装置及び検索インデックス構築方法及び検索インデックス構築プログラム |
KR101556300B1 (ko) * | 2014-12-15 | 2015-09-30 | 아주대학교산학협력단 | 리눅스 파일 시스템에서의 파일 복원 장치 및 방법 |
-
2016
- 2016-05-24 KR KR1020160063614A patent/KR101836380B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6615224B1 (en) | 1999-02-23 | 2003-09-02 | Lewis B. Davis | High-performance UNIX file undelete |
JP2005166042A (ja) | 2003-12-02 | 2005-06-23 | Hauri Inc | Ext2ファイルシステムのデータ復旧方法及びそのプログラムを記録した記録媒体 |
JP5650826B2 (ja) * | 2013-10-04 | 2015-01-07 | 日本電信電話株式会社 | 検索インデックス生成装置及び検索インデックス構築方法及び検索インデックス構築プログラム |
KR101556300B1 (ko) * | 2014-12-15 | 2015-09-30 | 아주대학교산학협력단 | 리눅스 파일 시스템에서의 파일 복원 장치 및 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20170132572A (ko) | 2017-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101403305B1 (ko) | 백업부트레코드 정보를 이용한 파티션 복구 장치 및 방법 | |
US7809779B2 (en) | Method of creating symbolic link capable of being compatible with file system, and method and apparatus for accessing file or directory by using symbolic link | |
KR100600933B1 (ko) | 파일 시스템 백업 방법, 컴퓨터 판독 가능 기록 매체 및 데이터 처리 시스템 | |
US7574435B2 (en) | Hierarchical storage management of metadata | |
US8122178B2 (en) | Filesystem having a filename cache | |
KR100622801B1 (ko) | 파일 시스템 액세스 방법, 파일 시스템 복원 방법, 컴퓨터 판독 가능 기록 매체 및 데이터 처리 시스템 | |
US11288128B2 (en) | Indexing a relationship structure of a filesystem | |
US20130086121A1 (en) | Path lookup in a hierarchical file system | |
US20070276848A1 (en) | Apparatus and method for managing data | |
US8095678B2 (en) | Data processing | |
US10078648B1 (en) | Indexing deduplicated data | |
Lee et al. | Improved deleted file recovery technique for Ext2/3 filesystem | |
Salunkhe et al. | In search of a scalable file system state-of-the-art file systems review and map view of new Scalable File system | |
US20110153677A1 (en) | Apparatus and method for managing index information of high-dimensional data | |
US8176087B2 (en) | Data processing | |
CN106709014B (zh) | 一种文件系统转换方法及装置 | |
US9886446B1 (en) | Inverted index for text searching within deduplication backup system | |
KR101769778B1 (ko) | 파일 시스템의 데이터 관리 방법 및 이를 이용하는 컴퓨팅 시스템 | |
KR100809318B1 (ko) | 파일 관리 장치 및 방법 | |
KR101836380B1 (ko) | 파일 시스템의 데이터 관리 방법 및 이를 이용하는 컴퓨팅 시스템 | |
Park et al. | Data investigation based on XFS file system metadata | |
Currier | The Flash-Friendly File System (F2FS) | |
KR100647193B1 (ko) | 파일 시스템 관리 방법 및 이를 사용하는 장치 | |
WO2024032898A1 (en) | Choosing a set of sequential storage media in deduplication storage systems | |
KR101335881B1 (ko) | 파일 복원 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
GRNT | Written decision to grant |