KR100825720B1 - 파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터서버 - Google Patents

파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터서버 Download PDF

Info

Publication number
KR100825720B1
KR100825720B1 KR1020060044257A KR20060044257A KR100825720B1 KR 100825720 B1 KR100825720 B1 KR 100825720B1 KR 1020060044257 A KR1020060044257 A KR 1020060044257A KR 20060044257 A KR20060044257 A KR 20060044257A KR 100825720 B1 KR100825720 B1 KR 100825720B1
Authority
KR
South Korea
Prior art keywords
metadata
file
identifier
magic code
generating
Prior art date
Application number
KR1020060044257A
Other languages
English (en)
Other versions
KR20070061088A (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 KR1020060044257A priority Critical patent/KR100825720B1/ko
Priority to US11/634,483 priority patent/US20070143286A1/en
Publication of KR20070061088A publication Critical patent/KR20070061088A/ko
Application granted granted Critical
Publication of KR100825720B1 publication Critical patent/KR100825720B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/14Details of searching files based on file metadata

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)
  • Human Computer Interaction (AREA)
  • Library & Information Science (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터 서버가 개시된다. 본 발명의 파일 시스템에서 파일 관리 방법은 제1파일에 대해 동일한 제1식별자를 갖는 제1메타데이터 및 제1객체를 생성하는 단계; 및 생성된 복수의 파일들중 찾고자하는 이름의 제2파일에 대응되는 제2메타데이터 및 제2객체를 제2식별자를 이용하여 찾고, 제2메타데이터 및 제2객체가 찾아지면 제2파일을 개방하는 단계를 포함함을 특징으로 한다.

Description

파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터 서버{File management method in file system and metadata server for the same}
도 1은 본 발명이 적용되는 OSDFS에 대한 개략적인 구성도를 도시한 것이다.
도 2는 도 1의 OSDFS에 대한 상세 블록도를 도시한 것이다.
도 3(a)는 MDS의 저장부에 저장되는 각 파일에 대한 메타데이터를 도시한 것이다.
도 3(b)는 OSD의 저장부에 저장되고 해당 파일에 대해 메타데이터가 참조하는 객체를 도시한 것이다.
도 4는 클라이언트부에 의해 각 저장부에 메타데이터 또는 객체가 변경되어 기록되는 과정을 도시한 흐름도이다.
도 5a 내지 도 5c는 도 4의 과정에 따라 메타데이터 또는 객체를 변경하는 OSDFS에서 발생할 수 있는 에러를 도시한 것이다.
도 6은 생성부 및 고장회복부의 연동에 의해 수행되는 객체 생성 과정을 흐름도로 도시한 것이다.
도 7은 저장관리부에서 수행되는 파일 삭제 과정에 대한 흐름도를 도시한 것이다.
도 8은 저장관리부 및 고장회복부의 연동에 의해 수행되는 파일 개방 과정에 대한 흐름도를 도시한 것이다.
본 발명은 파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터 서버에 관한 것으로, 특히 객체 기반 스토리지 장치(Object-based Storage Device, OSD)를 사용하는 네트워크 기반의 비대칭 분산 파일 시스템(asymmetric distributed file system)에서 파일 시스템의 구조적 일관성(structural consistency)을 유지하기 위해 파일을 관리하는 방법 및 이를 위한 메타데이터 서버에 관한 것이다.
파일 시스템(file system)은 운영체제가 파티션(partition)이나 디스크(disk)에 파일들이 연속되게 하기 위해 사용하는 자료 구조로서, 파일들이 디스크상에서 구성되는 방식을 말한다.
모든 파일 시스템은 독자적인 저장 구조를 가지고 있으며, 장애에 대비하여 파일 시스템에 대한 검사 및 복구(File System Check and Recovery, FSCR) 절차를 제공한다. 현재 널리 사용되고 있는 파일 배치표(File Allocation Table, FAT) 파일 시스템의 CHKDSK 유틸리티, ext2, ext3 파일 시스템의 fsck 유틸리티, NT 파일 시스템의 scandisk 유틸리티 등이 이러한 목적을 위해 제공되는 복구 절차이다.
이러한 장애 복구 절차는 OSD에 기반한 비대칭 분산 파일 시스템(Object Storage Device File System, OSDFS)에서도 제공되어야 한다. OSDFS는 메타데이터(metadata) 서버와 데이터 서버가 별도로 존재하는 비대칭 분산 파일 서 버(asymetric distributed file server) 구조이다. 즉, 모든 메타데이터 처리를 담당하는 메타데이터 서버(metadata server, MDS)와 모든 데이터 처리를 담당하는 데이터 서버 그리고 이들에 접근하여 파일 서비스를 제공하기 위한 클라이언트들이 네트워크로 서로 연결되어 있는 구조이다. 더 나아가, OSDFS에서 데이터 서버는 OSD를 활용한다. 이 구조에서는 모든 파일의 실제 데이터는 다수의 데이터 서버에 분산 저장되며 그 식별자(object id)들은 해당 파일의 다른 메타데이터, 예를 들어, 파일 이름, 크기, 속성, 소유자 등과 함께 메타데이터 서버에 저장된다. 이 저장 구조는 어떠한 경우라도 결함이 발생하지 않아야 하지만, 현실적으로는 다수의 서버로 구성되는 OSDFS 시스템의 특성상 장애 직후 최근 변경 사항의 일부분에 구조적 결함이 발생하는 것을 완전히 막을 수는 없다. 따라서 이러한 종류의 구조적 결함은 적절한 FSCR 절차에 의해 모두 탐색되어 수정될 수 있어야 한다.
본 발명이 이루고자 하는 기술적 과제는 OSD를 이용한 비대칭 분산 파일 시스템에서 SCSI/OSD 프로토콜을 따르는 OSD를 사용하여 참조 무결성을 검사하고 복구함으로써 파일을 관리하는 방법 및 이를 위한 메타데이터 서버를 제공하는 데 있다.
상기 기술적 과제를 이루기 위한, 본 발명의 파일 시스템에서 파일 관리 방법은 제1파일에 대해 동일한 제1식별자를 갖는 제1메타데이터 및 제1객체를 생성하는 단계; 및 상기 단계에서 생성된 복수의 파일들 중 찾고자하는 이름의 제2파일에 대응되는 제2메타데이터 및 제2객체를 제2식별자를 이용하여 찾고, 상기 제2메타데이터 및 제2객체가 찾아지면 상기 제2파일을 개방하는 단계를 포함함을 특징으로 한다.
상기 기술적 과제를 이루기 위한, 본 발명의 메타데이터 서버는 생성할 파일에 대한 메타데이터 및 객체를 생성하는 생성부; 상기 메타데이터를 저장하는 저장부; 상기 메타데이터를 상기 저장부에 저장하고, 상기 객체를 외부에 저장하며 상기 메타데이터 및 객체를 관리하는 저장관리부; 및 상기 생성부에 의한 상기 메타데이터 및 객체 생성시, 또는 상기 저장관리부에 의한 상기 메타데이터 및 객체의 관리시, 상기 메타데이터 또는 객체에 대해 발생하는 에러를 감지하고 복구하는 고장회복부를 포함함을 특징으로 한다.
이하에서 첨부된 도면을 참조하여 본 발명을 상세하게 설명하기로 한다.
도 1은 본 발명이 적용되는 OSDFS에 대한 개략적인 구성도를 도시한 것이다. 도시된 OSDFS는 네트워크(14)에 연결되는 복수의 클라이언트(11), MDS(12) 및 복수의 OSD(13)를 포함한다.
MDS(12)는 OSDFS에서 사용하는 각종 메타데이터를 생성, 저장 및 관리한다. MDS(12)는 메타데이터를 저장 및 관리하기 위하여 메타데이터 처리 모듈과 함께 자체적인 메타데이터 저장 장치(미도시)를 가지고 있어야 하며 이 저장 장치는 파일 시스템, 예를 들어, ext2, ext3 또는 xfs일 수도 있고 데이터베이스(DBMS)일 수도 있다. 단, 이들 메타데이터의 저장 장치는 자체적인 FSCR 절차를 가지고 있어서 장애 발생시 이들에 저장되어 있는 메타데이터의 일관성을 자체 복구할 수 있다.
OSD(13)는 네트워크(14)에 연결된 다수의 물리적인 저장장치이다. OSD(13)는 스토리지(storage) 분야에서 태동기에 있는 지능형 스토리지(intelligent storage) 기술중 하나로서, 현존하는 대부분의 스토리지 장치인 블록 기반 장치, 예를 들어 PC용 하드디스크 또는 CD-ROM 등과 달리, 객체를 기반으로 데이터를 저장하는 장치이다. OSD(13)는 스토리지 내에 다수의 객체를 관리하기 위한 기능과 함께 입출력 기능, 복구 기능 등을 수행할 수 있다. 특히 OSD에서 복구 기능은 객체를 관리하기 위한 내부 메타데이터에 대한 장애 복구 절차로서, OSD에 장애가 발생하였을 경우 이 절차를 이용하여 객체 저장 구조의 일관성을 자체 복구할 수 있다.
OSD(13)로의 데이터 입출력을 위해서는 SCSI/OSD 프로토콜이 사용된다. 이는스토리지 판매자 및 이들간의 협의체인 SNIA(Storage Network Industry Association) 주도로 진행되고 있는 차세대 지능형 스토리지의 표준이다. 이 프로토콜은 SCSI 인터페이스뿐만 아니라 iSCSI(internet SCSI) 인터페이스, FC-SCSI 인터페이스 장치 등을 통해 운영될 수 있다.
네트워크(14)는 LAN(Local Area Network), WAN(Wide Area Network), SAN(Storage Area Network), 무선 네트워크(wireless network) 뿐 아니라 하드웨어간에 교신을 가능하게 하는 임의의 네트워크중 하나로서, 본 실시예에서는 클라이언트(11), MDS(12) 및 OSD(13)간의 통신을 위해 사용된다.
도 2는 도 1의 OSDFS에 대한 상세 블록도를 도시한 것이다.
클라이언트(11)는 클라이언트부(111) 및 인터페이스부(112)를 포함한다. iSCSI/OSD 모듈(112) 및 원격 절차 호출(Remote Procedure Call, RPC) 모듈(113)을 포함한다.
클라이언트부(111)는 운영체제에 따라 네트워크(14)를 통해 MDS(12) 또는 OSD(13)에 접근한다. 인터페이스부(112)는 클라이언트부(111)에서 네트워크(14)를 통해 OSD(13)에 직접 접근할 수 있도록 입출력을 담당하는 iSCSI/OSD initiator 및 클라이언트부(111)에서 MDS(22)에 접근할 수 있도록 인터페이스하는 RPC 프로토콜을 포함한다.
MDS(12)는 생성부(121), 저장관리부(122), 고장회복부(123), 인터페이스부(124) 및 저장부(124)를 포함한다. 생성부(121)는 파일에 대한 메타데이터 및 객체를 생성한다. 저장관리부(122)는 OSDFS에서 사용되는 모든 메타데이터를 저장하고 관리한다. 모든 디렉토리 및 파일 개체는 각각에 대한 속성을 표현하는 인덱스 노드, 즉, 인노드(Inode)를 가지며, 여기에는 파일의 논리적인 크기, 소유자, 접근 권한과 함께 이 파일의 데이터를 실제로 저장하고 있는 OSD(13)상의 객체에 대한 식별자를 저장한다. 고장회복부(123)는 클라이언트(11), MDS(12), OSD(13)에서 고장 발생시 파일 시스템 일관성을 복구한다. 이 기능은 관리자에 의해 수동으로 기동되거나 시스템 감시 소프트웨어가 고장을 감지하거나 혹은 미리 정해진 주기에 따라 자동적으로 기동될 수 있다. 실제 구현에 따라 이 기능이 동작중에는 모든 클라이언트(11)의 접근을 금지하거나, OSDFS의 가용성을 증대시키기 위해 모든 클라이언트(11)의 접근을 허용하도록 구현될 수도 있다. 고장회복부(123)의 상세한 동작에 대해서는 후술하기로 한다.
인터페이스부(124)는 RPC 프로토콜을 통해 클라이언트부(111)로부터 수신한 MDS 접근 요청을 생성부(121), 저장관리부(122) 및 고장회복부(123)에 전달하고, 그 처리 결과를 클라이언트부(111)에 출력한다. 또한 인터페이스부(124)는 iSCSI/OSD initiator를 통해 생성부(121), 저장관리부(122) 및 고장회복부(123)가 OSD(13)에 접근하도록 한다. 저장부(125)는 생성부(121) 및 저장관리부(122)에서 생성 및 관리하는 모든 메타데이터를 저장하며, 이를 위해 저널링(journaling)에 기반한 ext3 파일 시스템을 사용한다.
OSD(13)는 OST(Object Storage Target, 131)와 저장부(132)로 구성된다. OST(131)는 클라이언트부(111), 생성부(121), 저장관리부(122) 또는 고장회복부(123)로부터 전달되는 SCSI/OSD 명령어를 받아 해석하고 처리한다. 저장부(132)는 OST(131)에 의해 입출력되는 객체를 저장하며, 저널링에 기반한 ext3 파일 시스템을 사용한다.
다음 표는 상술한 SCSI/OSD 명령어의 일부를 설명한 것이다.
명령어 동작 코드(OP code) 서비스 동작(service action)
CREATE 7Fh 8802h
CREATE COLLECTION 7Fh 8815h
CREATE PARTITION 7Fh 880Bh
FLUSH OBJECT 7Fh 8808h
GET_ATTRIBUTES 7Fh 880Eh
LIST 7Fh 8803h
LIST COLLECTION 7Fh 8817h
READ 7Fh 8805h
REMOVE 7Fh 880Ah
REMOVE COLLECTION 7Fh 8816h
REMOVE PARTITION 7Fh 880Ch
SET_ATTRIBUTES 7Fh 880Ff
WRITE 7Fh 8806h
표 1에서, h는 16진수를 나타낸다. 명령어들 중 CREATE는 새로운 객체 생성에 대한 것이고, GET_ATTRIBUTES는 객체의 속성들을 얻는 것에 대한 것이다. REMOVE는 특정 객체의 삭제에 대한 것이며, SET_ATTRIBUTES는 특정 객체에 특정 속성들을 설정하는 것에 대한 것이다.
도 3(a)는 MDS(12)의 저장부(126)에 저장되는 각 파일에 대한 메타데이터를 도시한 것이고, 도 3(b)는 OSD(13)의 저장부(132)에 저장되고 해당 파일에 대해 메타데이터가 참조하는 객체를 도시한 것이다.
도시된 따르면, 인노드는 파일 식별자, 파일의 데이터가 저장된 디스크의 위치, 파일 소유자, 그룹, 접근권한, 파일의 접근, 수정 및 변경 시간을 포함한다. 인노드는 새로운 파일이 생성되거나 기존 파일을 삭제하는 경우 생성 또는 제거된다.
각 저장부(126, 132)는 일시 저장부(미도시)와 영속 저장부(미도시)를 포함한다. 여기서, 일시 저장부는 영속 저장부보다 빠른 접근이 이루어지는 기억장치이다.
도 4는 클라이언트부(111)에 의해 각 저장부(125, 132)에 메타데이터 또는 객체가 변경되어 기록되는 과정을 도시한 흐름도이다.
클라이언트부(111)로부터 인터페이스부(112)(113)를 통해 임의의 변경 요청이 저장관리부(122) 또는 OST(131)로 전달되면(41단계), 저장관리부(122) 또는 OST(131)는 해당 변경 요청을 일시 저장부에서 처리한 후(42단계), 처리 결과를 클라이언트부(111)로 출력한다(43단계). 일시 저장부에 저장된 처리결과는 일정 시간이 경과한 후 영속 저장부에 기록된다(44단계). 이러한 메타데이터 또는 객체의 변경 과정은 전체 시스템의 성능을 향상시키는 순기능이 있는 반면, 장애 발생시 최근 변경 사항 중 미처 영속 저장부에 기록되지않은 일부 정보가 유실되어 메타데이터와 객체간 참조에 에러가 발생할 수 있다.
도 5a 내지 도 5c는 도 4의 과정에 따라 메타데이터 또는 객체를 변경하는 OSDFS에서 발생할 수 있는 에러를 도시한 것이다.
도 5a는 고아 객체 잔류(remnant orphan object) 에러를 예시한 것이다. 고아 객체 잔류 에러라 함은 객체(51)는 존재하지만 어떠한 메타데이터에 의해서도 참조되지 않는 에러를 말한다. 이 에러는, 파일 생성 과정에서 생성된 객체는 저장부(132)의 영속 저장부에 반영되었으나 메타데이터의 삭제 결과가 저장부(125)의 영속 저장부에 반영되기 전에 MDS(12)에 장애가 생긴 경우 발생한다. 또한, 이 에러는, 파일 삭제 과정에서 메타데이터 삭제 결과는 저장부(125)의 영속 저장부에 반영되었으나 삭제된 객체 정보가 저장부(132)의 영속 저장부에 반영되기 전에 OSD(13)에 장애가 생긴 경우 발생한다. 두 경우 모두 고아 객체는 저장부(125, 132)의 해당 영역을 영원히 활용할 수 없도록 하므로, 이러한 고아 객체들이 발생하지 않도록 하거나 효과적으로 제거해 주어야 한다.
도 5b는 부재 객체 참조(non-existent object reference) 에러를 예시한 것이다. 부재 객체 참조 에러라 함은 메타데이터(52)가 존재하지 않는 객체를 참조하는 것을 말한다. 이 에러는 파일 생성 과정에서 생성된 파일의 메타데이터는 저장부(125)의 영속 저장부에 반영되었으나 생성된 객체는 저장부(132)의 영속 저장부에 반영되기 전에 OSD(13)에 장애가 생긴 경우 발생한다. 또한, 이 에러는 파일 삭제 과정에서 삭제된 객체 정보는 저장부(132)의 영속 저장부에 반영되었으나 해당 메타데이터가 저장부(125)의 영속 저장부에 반영되기 전에 MDS(12)에 장애가 생긴 경우 발생한다.
도 5c는 잘못된 객체 참조(incorrect object reference) 에러를 예시한 것이다. 잘못된 객체 참조 에러라 함은 특정 파일의 메타데이터(53)가 참조하고 있는 객체(54)가 자신의 것이 아닌 에러이다. 이 에러는 특정 파일에 대응되는 객체가 식별자는 같으나, 이전에 삭제된 파일에서 사용되었던 객체인 경우로서, 파일 삭제와 생성이 연속된 후 OSD(13)에 장애가 생긴 경우 발생한다.
도 5a 내지 도 5c에 도시된 바와 같은 에러들을 해결하기 위하여, 생성부(121)는 고장회복부(123)와 연동하면서 객체, 메타데이터 또는 메타데이터 식별자를 다음과 같이 생성한다.
첫째, 파일 생성시 메타데이터를 생성하고 그 식별자와 동일한 값으로 OSD(13)에 객체를 생성한다. 이로 인해 특정 파일의 메타데이터에 대응되는 객체의 식별자를 유지하지 않아도 되며, 특정 메타데이터에 대한 객체 참조 에러는 동일한 식별자를 가지는 객체의 존재 유무를 판단함으로써 이루어질 수 있다. 또한, 메타데이터 식별자와 이에 대응되는 객체 식별자의 배치 및 순서가 완전히 일치하므로 양측의 비교 절차가 매우 용이하다.
둘째, 메타데이터 식별자는 16비트 또는 32비트의 사용되지 않은 가장 작은 식별자부터 사용되며 삭제된 파일의 메타데이터 식별자는 그 다음 파일 생성시 재사용된다. 따라서 장애로 인해 중단된 파일 생성이나 삭제 과정에서 고아 객체가 잔류했더라도, 장애 이후에 새로운 파일 생성시 고아 객체의 식별자로 객체를 생성하게 되며, 그에 따라 고아 객체를 제거 또는 복구할 수 있다.
셋째, 모든 메타데이터는 메타데이터 식별자와 함께 매직 코드(magic code)를 가진다. 매직 코드는 새로 생성된 메타데이터가 바로 직전에 삭제된 객체를 참조하는 잘못된 참조 에러 문제를 해결하기 위해 사용된다. 매직 코드는 파일 생성시마다 생성되는 특별한 코드값으로서 메타데이터와 이에 대응되는 객체 양측에 속성값으로 설정된다. 따라서 특정 메타데이터에 대응되는 객체는 그 식별자가 동일해야 하며 또한 매직 코드가 동일해야 한다. 이로써 직전에 삭제되었던 파일에 대한 객체가 새로 생성되는 파일에 잘못 사용되는 에러를 방지할 수 있다.
상술한 매직 코드는 다양한 방법으로 생성될 수 있다. 예를 들어, 랜덤 넘버(random number)를 사용하거나, 클럭을 사용하거나, 파일 생성시마다 증가하는 전역 카운터를 사용하거나, 메타데이터 식별자별로 카운터를 두고 해당 식별자가 파일 생성에 사용될 때마다 증가시켜서 사용할 수도 있다. 어떠한 경우에도 특정 메타데이터와 이에 대응되는 객체가 동일한 시점에 생성된 것임을 보장하기 위한 용도로 사용할 수 있다.
상술한 메타데이터 및 메타데이터 식별자를 이용하여 고장회복부(123)는 저장관리부(122)와 연동하면서 각 에러를 다음과 같이 복구한다.
먼저, 부재 객체 참조 에러에 대한 복구는 저장관리부(122)가 특정 파일을 개방할 때 고장회복부(123)에 의해 자동으로 진행되며, 개방하려는 파일에 해당하는 메타데이터 식별자와 동일한 객체의 존재 유무를 판단하고, 존재하지 않을 경우 동일한 식별자로 새로운 객체를 생성함으로써 이루어진다.
잘못된 객체 참조 에러에 대한 복구는 저장관리부(122)가 특정 파일을 개방할 때 고장회복부(123)에 의해 자동으로 진행되며, 개방하려는 파일에 해당하는 메타데이터 식별자와 동일한 객체가 존재할 경우 양측의 매직 코드를 추가로 비교하여 이들 값이 서로 다를 경우 기존 객체를 삭제한 후 재생성함으로써 이루어진다.
또한 고아 객체 에러에 대한 복구는 생성부(121)가 파일을 생성할 때 고장회복부(123)에 의해 자동으로 진행되며, 생성된 파일에 해당하는 메타데이터 식별자와 같은 식별자를 가지는 객체의 존재 유무를 판단하고, 존재할 경우 이를 제거함으로써 이루어진다.
또한 장애 후 일괄 에러 검사 및 복구는 고장회복부(123)에 의해 OSD(13)의 모든 객체 식별자를 일괄적 또는 차례대로 메타데이터 식별자와 1대1 대조하고, 양측에 공통으로 존재하지 않는 식별자들을 참조 에러로 판정함으로써 이루어진다.
도 6은 생성부(121) 및 고장회복부(123)의 연동에 의해 수행되는 객체 생성 과정을 흐름도로 도시한 것이다.
먼저 생성할 파일을 위한 고유한 매직 코드를 얻는다(61단계). 매직 코드는 상술한 바와 같이 MDS(12)에서 발생되는 랜덤 넘버, MDS(12)에 제공되는 클럭, 전역 카운터 및 메타데이터별 카운터에서 선택될 수 있다. 다음으로 생성할 파일를 위한 메타데이터를 주어진 이름과 매직 코드를 이용하여 생성하고 그 식별자를 얻는다(62단계). 매직 코드는 생성된 메타데이터 내에 저장된다. 다음으로 SCSI/OSD 명령어인 CREATE를 이용하여 객체를 메타데이터 식별자와 동일한 객체 식별자로 OSD(13)에 생성한다(63단계). 만약 63단계가 실패하였고(64단계) 그 원인이 동일한 식별자의 객체가 이미 존재하는 경우라면(68단계), 해당 객체를 SCSI/OSD 명령어인 REMOVE를 이용하여 제거하고(67단계) 다시 63단계로 진행한다. 만약 63단계가 실패하였고 68단계의 원인이 아니라면 파일 생성이 실패한 것을 의미하므로 에러를 리턴하고(69단계) 종료한다. 만약 64단계에서 성공하였다면, SCSI/OSD 명령어인 SET_ATTIBUTE, 즉, SETATTR를 이용하여 메타데이터의 매직 코드를 생성된 객체에 사용자 속성으로 설정하고(65단계), 생성된 메타데이터 식별자를 리턴한다(66단계).
도 7은 저장관리부(122)에서 수행되는 파일 삭제 과정에 대한 흐름도를 도시한 것이다. 파일 삭제 과정은 먼저, 삭제할 파일의 객체를 OSD_REMOVE를 이용하여 제거한다(71단계). 다음으로 삭제할 파일의 메타데이터를 제거하고 파일 삭제를 완료한다(72단계).
도 8은 저장관리부(122) 및 고장회복부(123)의 연동에 의해 수행되는 파일 개방 과정에 대한 흐름도를 도시한 것이다.
먼저 주어진 이름의 파일에 대응되는 메타데이터 식별자를 탐색하여(81단계) 해당 메타데이터와 매직 코드를 얻는다(82단계). 다음으로, 메타데이터 식별자와 동일한 식별자를 가지는 객체가 OSD(13)의 저장부(132)에 존재하며 해당 객체에 설정된 매직 코드 속성값이 해당 메타데이터의 매직코드와 일치함을 SCSI/OSD 명령어인 GETATTR을 이용하여 확인한다(83단계). 만약 해당 객체가 존재하지 않아 에러가 발생하면(83, 84단계), 메타데이터 식별자와 동일한 식별자로 새로운 객체를 생성하고 사용자 속성으로 메타데이터의 매직 코드를 설정한다(89단계). 89단계에서 새로운 객체 생성 및 매직 코드 설정이 성공하였다면(90단계), 메타데이터(md)와 메타데이터 식별자(mdidx)를 리턴하여 파일 개방을 완료한다(86단계).
84단계에서 동일 식별자의 객체는 존재하나, 메타데이터의 매직 코드가 일치하지 않는다면(85단계), 해당 객체를 삭제하고(87단계), 메타데이터 식별자와 동일한 식별자로 새로운 객체를 생성하며 사용자 속성으로 메타데이터의 매직코드를 설정한다(89단계). 89단계에서 새로운 객체 생성 및 매직 코드 설정이 성공하였다면(90단계), 메타데이터(md)와 메타데이터 식별자(mdidx)를 리턴하여 파일 개방을 완료한다(86단계). 85단계에서 동일 식별자의 객체가 존재하며 메타데이터 매직 코드도 일치할 경우, 메타데이터(md)와 메타데이터 식별자(mdidx)를 리턴하여 파일 개방을 완료한다(86단계).
본 발명은 또한 컴퓨터로 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD_ROM, 자기 테이프, 플로피 디스크 및 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브, 예를 들어 인터넷을 통한 전송의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
본 발명은 SCSI/OSD 표준을 따르는 어떠한 저장 장치에서도 실시가 가능하므로 장치 호환성이 증대될 수 있다.
또한 장애후 별도의 복구 절차 없이 시스템을 재기동하더라도 시스템 운영에 장애를 초래하지 않으며, 다양한 종류의 참조 에러가 점진적으로 복구될 수 있다.
또한 장애에 대비하기 위하여 정상적인 운영 과정에서 추가 부담을 요구하지 않으므로 종래보다 향상된 성능을 기대할 수 있다. 즉, 기존 시스템이 MDS, OSD 양측에 별도의 로그를 두고 양측의 영속 저장 장치 반영 여부 등을 추적하기 위해 별도의 프로토콜로 상호 동기화하는 등의 추가 부담을 요구하는 반면, 본 발명은 이러한 부담을 필요로 하지 않기 때문에 정상적인 운영 과정에 부담을 주지 않는다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서, 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (17)

  1. 제1파일에 대해 동일한 제1식별자를 갖는 제1메타데이터 및 제1객체를 생성하는 단계; 및
    상기 단계에서 생성된 복수의 파일들중 찾고자하는 이름의 제2파일에 대응되는 제2메타데이터 및 제2객체를 제2식별자를 이용하여 찾고, 상기 제2메타데이터 및 제2객체가 찾아지면 상기 제2파일을 개방하는 단계를 포함함을 특징으로 하는 파일 시스템에서 파일 관리 방법.
  2. 제1항에 있어서, 상기 제1메타데이터 및 제1객체를 생성하는 단계는
    상기 제1파일에 대한 매직 코드를 얻는 단계;
    상기 제1파일의 이름과 상기 매직 코드를 이용하여 상기 제1메타데이터를 생성하고, 상기 제1메타데이터에 대한 상기 제1식별자를 얻는 단계; 및
    상기 제1식별자와 동일한 식별자를 갖는 상기 제1객체를 생성하는 단계를 포함함을 특징으로 하는 파일 시스템에서 파일 관리 방법.
  3. 제2항에 있어서,
    상기 제1식별자와 동일한 식별자의 제3객체가 이미 존재하여 상기 제1객체가 생성되지 않았다면, 상기 제3객체를 삭제하는 단계; 및
    상기 제1식별자와 동일한 식별자를 갖는 상기 제1객체를 생성하는 단계를 더 포함함을 특징으로 하는 파일 시스템에서 파일 관리 방법.
  4. 제2항에 있어서,
    상기 매직 코드를 상기 제1객체의 사용자 속성으로 설정하는 단계를 더 포함함을 특징으로 하는 파일 시스템에서 파일 관리 방법.
  5. 제2항 내지 제4항중 어느 한 항에 있어서, 상기 매직 코드는
    랜덤 넘버, 클럭, 상기 제1메타데이터가 생성될 때마다 1씩 증가하는 전역 카운터의 현재 값, 상기 제1식별자가 생성되는 파일에 할당될 때마다 1씩 증가하는 카운터의 현재 값중 하나로 결정되는 것을 특징으로 하는 파일 시스템에서 파일 관리 방법.
  6. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 각 단계는
    SCSI/OSD 명령어를 이용하여 수행되는 것을 특징으로 하는 파일 시스템에서 파일 관리 방법.
  7. 제1항에 있어서, 상기 제2파일을 개방하는 단계는
    상기 제2파일에 대응되는 상기 제2식별자를 탐색하여 상기 제2메타데이터 및 매직 코드를 얻는 단계;
    상기 제2식별자와 동일한 식별자를 갖는 제3객체를 찾고, 상기 제3객체의 매 직코드 속성값이 상기 매직 코드와 일치하는지를 판단하는 단계; 및
    일치한다면, 상기 제3객체가 제2객체임을 확인하고 상기 제2파일을 개방하는 단계를 포함함을 특징으로 하는 파일 시스템에서 파일 관리 방법.
  8. 제7항에 있어서, 상기 제3객체를 찾는 단계는
    상기 제3객체가 존재하지 않는다면, 상기 제2식별자와 동일한 식별자를 갖는 제4객체를 생성하는 단계; 및
    상기 제2메타데이터의 매직 코드를 상기 제4객체의 매직 코드의 속성으로 설정하는 단계를 더 포함함을 특징으로 하는 파일 시스템에서 파일 관리 방법.
  9. 제7항에 있어서,
    상기 제3객체의 매직코드 속성값이 상기 매직 코드와 일치하는지의 판단은 SCSI/OSD의 명령어를 사용하여 이루어지는 것을 특징으로 하는 파일 시스템에서 파일 관리 방법.
  10. 제7항에 있어서, 상기 제3객체의 매직코드 속성값이 상기 매직 코드와 일치하는지를 판단하는 단계는
    상기 제3객체가 존재하나 상기 제3객체의 매직코드 속성값이 상기 매직 코드와 일치하지 않으면, 상기 제3객체를 삭제하는 단계;
    상기 제2식별자와 동일한 식별자를 갖는 제4객체를 생성하는 단계; 및
    상기 제2메타데이터의 매직 코드를 상기 제4객체의 매직 코드의 속성으로 설정하는 단계를 더 포함함을 특징으로 하는 파일 시스템에서 파일 관리 방법.
  11. 제1항에 있어서,
    삭제할 제3파일의 객체를 제거하는 단계; 및
    상기 제3파일의 메타데이터를 제거하는 단계를 더 포함하여 상기 제3파일을 삭제하는 것을 특징으로 하는 파일 시스템에서 파일 관리 방법.
  12. 제1항에 있어서,
    상기 객체들의 식별자들을 일괄적으로 또는 차례대로 얻어서 1:1로 상기 메타데이터의 식별자들과 비교하는 단계; 및
    상기 비교결과, 양측에 공통으로 존재하지 않는 식별자들을 에러로 판정하는 단계를 포함함을 특징으로 하는 파일 시스템에서 파일 관리 방법.
  13. 생성할 파일에 대한 메타데이터 및 객체를 생성하는 생성부;
    상기 메타데이터를 저장하는 저장부;
    상기 메타데이터를 상기 저장부에 저장하고, 상기 객체를 외부에 저장하며 상기 메타데이터 및 객체를 관리하는 저장관리부; 및
    상기 생성부에 의한 상기 메타데이터 및 객체 생성시, 또는 상기 저장관리부에 의한 상기 메타데이터 및 객체의 관리시, 상기 메타데이터 또는 객체에 대해 발 생하는 에러를 감지하고 복구하는 고장회복부를 포함함을 특징으로 하는 메타데이터 서버.
  14. 제13항에 있어서,
    상기 외부에 저장된 객체를 관리하기 위해 상기 생성부, 저장관리부 및 고장회복부는 SCSI/OSD 프로토콜을 통해 상기 외부와 통신하는 것을 특징으로 하는 메타데이터 서버.
  15. 제13항에 있어서, 상기 생성부는
    상기 파일에 대해 동일한 식별자를 갖는 상기 메타데이터 및 객체를 생성하는 것을 특징으로 하는 메타데이터 서버.
  16. 제14항에 있어서, 상기 생성부는
    상기 파일에 대한 매직 코드를 얻는 단계;
    상기 파일의 이름과 상기 매직 코드를 이용하여 상기 메타데이터를 생성하고, 상기 메타데이터에 대한 상기 식별자를 얻는 단계; 및
    상기 식별자와 동일한 식별자를 갖는 상기 객체를 생성하는 단계를 수행하여 상기 메타데이터 및 객체를 생성하는 것을 특징으로 하는 메타데이터 서버.
  17. 제13항에 있어서, 상기 저장관리부는
    찾고자하는 파일에 대응되는 식별자를 탐색하여 제2메타데이터 및 매직 코드를 얻는 단계; 및
    상기 식별자와 동일한 식별자를 갖는 제2객체를 찾고, 상기 제2객체의 매직코드 속성값이 상기 매직 코드와 일치하는지를 판단하는 단계를 수행하고,
    상기 제2객체의 매직코드 속성값이 상기 매직 코드와 일치하면 상기 찾고자하는 파일을 개방하는 것을 특징으로 하는 메타데이터 서버.
KR1020060044257A 2005-12-08 2006-05-17 파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터서버 KR100825720B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060044257A KR100825720B1 (ko) 2005-12-08 2006-05-17 파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터서버
US11/634,483 US20070143286A1 (en) 2005-12-08 2006-12-06 File management method in file system and metadata server therefor

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR20050119483 2005-12-08
KR1020050119483 2005-12-08
KR1020060044257A KR100825720B1 (ko) 2005-12-08 2006-05-17 파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터서버

Publications (2)

Publication Number Publication Date
KR20070061088A KR20070061088A (ko) 2007-06-13
KR100825720B1 true KR100825720B1 (ko) 2008-04-29

Family

ID=38174958

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060044257A KR100825720B1 (ko) 2005-12-08 2006-05-17 파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터서버

Country Status (2)

Country Link
US (1) US20070143286A1 (ko)
KR (1) KR100825720B1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7228320B2 (en) * 2004-11-17 2007-06-05 Hitachi, Ltd. System and method for creating an object-level snapshot in a storage system
KR100912127B1 (ko) * 2006-12-04 2009-08-13 한국전자통신연구원 메타데이터 관리 시스템 및 메타데이터 관리 방법
KR100977159B1 (ko) * 2007-12-14 2010-08-20 한국전자통신연구원 데이터 서버 주소의 변경과 디스크 이동에 투명한 파일메타데이터 관리 방법 및 시스템
CN100595761C (zh) * 2007-12-29 2010-03-24 中国科学院计算技术研究所 一种拆分名字空间的元数据管理方法
KR101010219B1 (ko) * 2008-12-16 2011-01-21 한국전자통신연구원 비대칭 분산 파일 시스템과 그의 점진적 일관성 오류 감지 및 복구 방법
KR101453425B1 (ko) * 2008-12-18 2014-10-23 한국전자통신연구원 메타데이터 서버 및 메타데이터 관리 방법
US9449169B2 (en) * 2012-03-26 2016-09-20 Vmware, Inc. Block storage virtualization on commodity secure digital cards
CN105573809B (zh) * 2012-11-15 2019-05-24 青岛海信宽带多媒体技术有限公司 创建设备节点的方法及装置
CN103078907B (zh) * 2012-12-26 2016-03-30 华为技术有限公司 上传、云备份、查找、恢复数据的方法及装置
CN104679772B (zh) * 2013-11-29 2019-01-25 深圳市腾讯计算机系统有限公司 分布式数据仓库中删除文件的方法、装置、设备及系统
US10719487B2 (en) * 2016-01-29 2020-07-21 M-Files Oy Method, an apparatus, a computer program product for determining metadata for a data item
KR102545067B1 (ko) 2016-03-02 2023-06-20 한국전자통신연구원 로그 구조 파일 시스템의 메타 데이터 저장 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
US10545829B2 (en) * 2017-08-29 2020-01-28 Western Digital Technologies, Inc. Using file system extended attributes to recover databases in hierarchical file systems
US11768804B2 (en) * 2018-03-29 2023-09-26 Konica Minolta Business Solutions U.S.A., Inc. Deep search embedding of inferred document characteristics
CN111770158B (zh) * 2020-06-24 2023-09-19 腾讯科技(深圳)有限公司 云平台恢复方法、装置、电子设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040081061A (ko) * 2003-03-14 2004-09-20 휴렛-팩커드 컴퍼니(델라웨어주법인) 데이터 탐색 시스템 및 방법과, 데이터 탐색 방법을수행하는 장치
KR20060045711A (ko) * 2004-04-15 2006-05-17 톰슨 라이센싱 메타데이터를 핸들링하는 방법 및 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100453228B1 (ko) * 2002-03-21 2004-10-15 한국전자통신연구원 공유 디스크 파일 시스템의 저널링 및 회복 방법
US7155464B2 (en) * 2002-03-29 2006-12-26 Panasas, Inc. Recovering and checking large file systems in an object-based data storage system
US7346733B2 (en) * 2004-09-09 2008-03-18 Hitachi, Ltd. Storage apparatus, system and method using a plurality of object-based storage devices
US7228320B2 (en) * 2004-11-17 2007-06-05 Hitachi, Ltd. System and method for creating an object-level snapshot in a storage system
US7213116B2 (en) * 2005-03-24 2007-05-01 Hitachi, Ltd. Method and apparatus for mirroring objects between storage systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040081061A (ko) * 2003-03-14 2004-09-20 휴렛-팩커드 컴퍼니(델라웨어주법인) 데이터 탐색 시스템 및 방법과, 데이터 탐색 방법을수행하는 장치
KR20060045711A (ko) * 2004-04-15 2006-05-17 톰슨 라이센싱 메타데이터를 핸들링하는 방법 및 장치

Also Published As

Publication number Publication date
US20070143286A1 (en) 2007-06-21
KR20070061088A (ko) 2007-06-13

Similar Documents

Publication Publication Date Title
KR100825720B1 (ko) 파일 시스템에서 파일 관리 방법 및 이를 위한 메타데이터서버
US7634679B2 (en) Remote location failover server application
JP5918243B2 (ja) 分散型データベースにおいてインテグリティを管理するためのシステム及び方法
JP5254611B2 (ja) 固定内容分散データ記憶のためのメタデータ管理
US8060776B1 (en) Mirror split brain avoidance
US7933872B2 (en) Database backup, refresh and cloning system and method
JP5918244B2 (ja) フォールトトレラントデータベース管理システムにおいてクエリ結果を統合するシステム及び方法
US8495027B2 (en) Processing archive content based on hierarchical classification levels
US20070294310A1 (en) Method and apparatus for storing and recovering fixed content
US7840539B2 (en) Method and system for building a database from backup data images
US20060129614A1 (en) Crash recovery system and method for distributed file server using object based storage
US7464238B1 (en) System and method for verifying the consistency of mirrored data sets
US7664785B2 (en) Method and apparatus of WAFS backup managed in centralized center
US20040254964A1 (en) Data replication with rollback
US20130036088A1 (en) Metadata management for fixed content distributed data storage
KR100749922B1 (ko) 객체 기반 스토리지를 사용하는 분산 파일 서버에서 장애복구 시스템 및 방법
US20100169415A1 (en) Systems, methods, and apparatus for identifying accessible dispersed digital storage vaults utilizing a centralized registry
US8214377B2 (en) Method, system, and program for managing groups of objects when there are different group types
US20100223428A1 (en) Snapshot reset method and apparatus
JP2013544386A5 (ko)
JP2013545162A5 (ko)
CN110781525A (zh) 一种基于区块链的档案信息安全管理系统和方法
JP2020506444A (ja) 期限切れバックアップ処理方法及びバックアップサーバ
CN108762982B (zh) 一种数据库恢复方法、装置及系统
US20040254962A1 (en) Data replication for enterprise applications

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110411

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee