KR20160112758A - 분산 파일 시스템 - Google Patents

분산 파일 시스템 Download PDF

Info

Publication number
KR20160112758A
KR20160112758A KR1020150039017A KR20150039017A KR20160112758A KR 20160112758 A KR20160112758 A KR 20160112758A KR 1020150039017 A KR1020150039017 A KR 1020150039017A KR 20150039017 A KR20150039017 A KR 20150039017A KR 20160112758 A KR20160112758 A KR 20160112758A
Authority
KR
South Korea
Prior art keywords
file
chunk
read
snapshot
data
Prior art date
Application number
KR1020150039017A
Other languages
English (en)
Other versions
KR102378367B1 (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 KR1020150039017A priority Critical patent/KR102378367B1/ko
Priority to US15/073,072 priority patent/US10289497B2/en
Publication of KR20160112758A publication Critical patent/KR20160112758A/ko
Application granted granted Critical
Publication of KR102378367B1 publication Critical patent/KR102378367B1/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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • G06F17/30088
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • 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/18File system types
    • G06F16/182Distributed file systems
    • G06F17/30194
    • 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/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/825Indexing scheme relating to error detection, to error correction, and to monitoring the problem or solution involving locking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

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

Abstract

분산 파일 시스템은 파일에 대한 메타데이터를 저장하고 관리하는 메타데이터 서버와, 상기 파일의 데이터와 속성 정보를 저장하고 관리하는 데이터 서버를 포함하고, 상기 메타데이터 서버는 클라이언트로부터 쓰기 요청에 응답하여, 변경 요청된 데이터를 읽기 전용 스냅샷 파일 또는 쓰기 가능 스냅샷 파일의 델타 청크(chunk)에 저장하고, 원본 파일과 상기 읽기 전용 스냅샷 파일을 아이노드(inode) 구조로 연결한다.

Description

분산 파일 시스템{DISTRIBUTED FILE SYSTEM}
본 발명의 개념에 따른 실시 예는 파일 수준의 스냅샷을 제공할 수 있는 분산 파일 시스템에서 에 관한 것으로서, 특히 청크 단위로 분산 저장된 파일 데이터를 읽기 전용 스냅샷 파일이나 쓰기 가능 스냅샷 파일로 관리하는 분산 파일 시스템에 관한 것이다.
분산 파일 시스템은 파일의 메타데이터와 실제 데이터를 분리하여 저장하고 관리하는 시스템이다. 통상적으로, 메타데이터는 다른 데이터를 설명해 주는 데이터로서, 속성정보라고도 한다. 메타데이터는 메타데이터 서버에서 관리되고, 실제 데이터는 복수의 데이터 서버에 분산되어 저장된다. 메타데이터는 실제 데이터가 저장되어 있는 데이터 서버에 대한 정보를 포함한다.
메타데이터 서버와 복수의 데이터 서버는 네트워크로 연결되어 분산된 구조를 갖는다. 따라서, 클라이언트에서 파일의 메타데이터와 실제 데이터를 접근하는 경로가 분리된다. 즉, 파일에 접근하기 위해서, 클라이언트는 먼저 메타데이터 서버에 있는 파일의 메타데이터를 접근하여 실제 데이터가 저장되어 있는 복수의 데이터 서버에 대한 정보를 얻는다. 그리고 나서 실제 데이터에 대한 입출력은 복수의 데이터 서버를 통하여 이루어진다.
스냅샷은 일반적으로 임의의 시점에 파일 시스템 또는 볼륨 수준에서 현재 상태를 보관함으로써 온라인 상태에서 백업을 할 수 있도록 지원하기 위해 사용된다. 최근에는 가상 데스크탑 환경에서 가상 데스크탑 이미지 또는 가상 디스크에 대한 스냅샷을 지원함으로써 특정 시점의 스냅샷 상태로 복귀할 수 있도록 하고, 또는 가상 데스크탑 이미지에 대한 스냅샷을 생성하여 빠르게 가상 데스크탑 이미지를 배포하기 위하여 사용된다.
이러한 경우에 파일 기반 분산 파일 시스템은 가상 데스크탑 이미지 또는 가상 디스크를 파일 수준으로 매핑하여 관리하는 파일 수준의 스냅샷이 제공되어야 한다.
본 발명이 이루고자 하는 기술적인 과제는, 상술한 기술적 어려움을 해결하기 위해 발명한 것으로서, 분산 파일 시스템의 데이터 서버에 청크 단위로 분산되어 저장된 파일 데이터를 스냅샷이 생성된 이후 계속적으로 변경되는 데이터를 일관되게 유지하면서 임의의 스냅샷으로 복귀했을 때, 이와 상응하는 파일 데이터로 접근할 수 있는 분산 파일 시스템을 제공하는 것이다.
본 발명의 실시 예에 따른 분산 파일 시스템은, 파일에 대한 메타데이터를 저장하고 관리하는 메타데이터 서버와, 상기 파일의 데이터와 속성 정보를 저장하고 관리하는 데이터 서버를 포함하고, 상기 메타데이터 서버는 클라이언트로부터 쓰기 요청에 응답하여, 변경 요청된 데이터를 읽기 전용 스냅샷 파일의 델타 청크(chunk)에 저장하고, 원본 파일과 상기 읽기 전용 스냅샷 파일을 아이노드(inode) 구조로 연결한다.
실시 예에 따라, 상기 메타데이터 서버는, 상기 스냅샷 파일의 모드를 읽기 전용으로 설정한 후, 상기 읽기 전용 스냅샷 파일의 아이노드를 생성하고, 상기 원본 파일의 청크 레이아웃 정보 또는 이전에 생성된 읽기 전용 스냅샷 파일의 청크 레이아웃 정보를 새로 생성된 읽기 전용 스냅샷 파일의 아이노드의 청크 레이아웃 정보에 복사하고, 상기 읽기 전용 스냅샷 파일의 아이노드의 상기 청크 레이아웃 정보를 이용하여 상기 델타 청크를 생성하고, 상기 새로 생성된 읽기 전용 스냅샷 파일의 아이노드에 상기 원본 파일의 아이노드 정보를 저장할 수 있다.
실시 예에 따라, 상기 메타데이터 서버는, 상기 클라이언트로부터 전송된 청크 레이아웃 정보 요청에 응답하여, 상기 원본 파일의 상기 청크 레이아웃 정보를 상기 클라이언트로 전송할 수 있다.
실시 예에 따라, 상기 메타데이터 서버는, 상기 읽기 전용 스냅샷 파일을 삭제하기 위해 원본 파일에 대해 첫 번째로 생성된 읽기 전용 스냅샷 파일인지 판단하고, 상기 읽기 전용 스냅샷 파일이 첫 번째로 생성된 경우에, 상기 데이터 서버에서 상기 원본 파일의 청크의 익스텐트 변경맵을 분석하고, 분석 결과에 따라 상기 읽기 전용 스냅샷 파일 생성된 후 변경된 데이터를 저장하는 델타 청크를 상기 원본 파일의 청크와 병합하고, 상기 읽기 전용 스냅샷 파일을 상기 데이터 서버에서 삭제할 수 있다.
실시 예에 따라, 상기 읽기 전용 스냅샷 파일이 첫 번째로 생성되지 않은 경우, 상기 데이터 서버에서 상기 원본 파일의 청크의 익스텐트 변경맵을 분석하고, 분석 결과에 따라 상기 읽기 전용 스냅샷 파일 생성된 후 변경된 데이터를 저장하는 상기 델타 청크를 이전에 생성된 읽기 전용 스냅샷 파일의 델타 청크와 병합할 수 있다.
실시 예에 따라, 상기 데이터 서버는, 상기 클라이언트로부터 전송된 원본 파일의 갱신 요청에 응답하여 상기 데이터 서버에 저장된 원본 청크의 익스텐트 변경맵을 분석하고, 상기 원본 파일의 청크에서 데이터가 쓰여질 위치의 익스텐트가 변경되었는지 확인하고, 상기 익스텐트가 변경되었으면 이전에 변경된 읽기 전용 스냅샷 파일의 델타 청크에서 현재의 읽기 전용 스냅샷 파일의 델타 청크로 익스텐트 단위의 카피-온-라이트(copy-on-write)하고, 상기 익스텐트가 변경되지 않았으면 상기 원본 파일의 청크와 상기 현재의 읽기 전용 스냅샷 파일의 델타 청크로 카피-온-라이트를 할 수 있다.
실시 예에 따라, 상기 데이터 서버가, 마지막으로 상기 원본 파일이 변경된 위치를 추적하기 위해, 상기 원본 파일의 청크의 익스텐트 변경맵의 익스텐트에 대해 현재의 스냅샷 번호를 설정할 수 있다.
본 발명의 다른 실시 예에 따른 분산 파일시스템은, 파일에 대한 메타데이터를 저장하고 관리하는 메타데이터 서버와, 상기 파일의 데이터와 속성 정보를 저장하고 관리하는 데이터 서버를 포함하고, 상기 메타데이터 서버는 클라이언트로부터 쓰기 요청에 응답하여 스냅샷 파일의 모드를 읽기 전용 모드 및 쓰기 가능 모드 중 어느 하나로 설정하고, 설정 결과에 따라 변경 요청된 데이터를 청크 단위로 저장한다.
실시 예에 따라, 상기 설정 결과가 읽기 전용 모드인 경우, 상기 메타데이터 서버는 상기 변경 요청된 데이터를 읽기 전용 스냅샷 파일의 델타 청크에 저장하고, 원본 파일과 상기 읽기 전용 스냅샷 파일을 아이노드(inode) 구조로 연결할 수 있다.
실시 예에 따라, 상기 설정 결과가 쓰기 가능 모드인 경우, 상기 메타데이터 서버는 원본 파일의 변경 없이 변경 요청된 데이터를 쓰기 가능 스냅샷 파일의 델타 청크에 저장하고, 상기 원본 파일과 상기 쓰기 가능 스냅샷 파일을 아이노드 구조로 연결할 수 있다.
실시 예에 따라, 상기 메타데이터 서버는, 상기 쓰기 가능 스냅샷 파일의 아이노드를 생성하고, 원본 파일의 아이노드의 청크 레이아웃 정보를 상기 쓰기 가능 스냅샷 파일의 아이노드의 청크 레이아웃 정보에 복사하고, 상기 쓰기 가능 스냅샷 파일의 아이노드의 상기 청크 레이아웃 정보를 이용하여 상기 데이터 서버에 상기 쓰기 가능 스냅샷 파일의 델타 청크를 생성하고, 상기 쓰기 가능 스냅샷 파일의 아이노드에 원본 파일의 아이노드 정보를 저장할 수 있다.
실시 예에 따라, 상기 데이터 서버는, 상기 클라이언트로부터 수신된 데이터 쓰기 요청에 응답하여, 상기 쓰기 가능 스냅샷 델타 청크의 익스텐트 변경 맵을 분석하여 데이터를 쓰기 위한 익스텐트의 변경여부를 검사하고, 상기 익스텐트가 변경되었으면 상기 델타 청크에 데이터를 쓰고, 상기 익스텐트가 변경되지 않았으면 상기 원본 파일의 청크로부터 상기 델타 청크로 카피-온-라이트를 수행할 수 있다.
본 발명의 실시 예에 따른 분산 파일 시스템은 메타데이터 서버에서 스냅샷 특성에 따른 원본 파일과 스냅샷 파일의 메타데이터 관리를 하고, 데이터 서버에서 스냅샷 특성에 따른 파일 데이터를 처리하여 파일 수준의 읽기 전용 스냅샷 파일 또는 쓰기 가능 스냅샷을 제공할 수 있다.
본 발명의 실시 예에 따른 분산 파일 시스템은 원본 파일과 스냅샷의 메타데이터 처리에 대한 일관성을 보장하는 메타데이터 서버와, 원본 파일과 스냅샷 데이터에 대한 투명한 입출력을 수행하는 데이터 서버를 제공할 수 있다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 실시 예에 따른 분산 파일 시스템의 블록도이다.
도 2는 본 발명의 실시 예에 따른 분산 파일 시스템에서 원본 파일과 읽기 전용 스냅샷 파일을 설명하기 위한 개념도이다.
도 3은 본 발명의 실시 예에 따른 분산 파일 시스템에서 읽기 전용 스냅샷을 제공하는 방법을 설명하기 위한 개념도이다.
도 4는 본 발명의 실시 예에 따른 읽기 전용 스냅샷 파일의 델타 청크를 식별하기 위한 청크 레이아웃 정보를 설명하기 위한 개념도이다.
도 5는 본 발명의 실시 예에 따른 원본 파일이 갱신될 때 생성되는 델타 청크를 익스텐트(extent) 단위로 식별하는 방법을 설명하기 위한 개념도이다.
도 6은 본 발명의 실시 예에 따른 읽기 전용 스냅샷 파일을 생성하는 방법을 설명하기 위한 흐름도이다.
도 7은 본 발명의 실시 예에 따른 읽기 전용 스냅샷 파일을 삭제하는 방법을 설명하기 위한 흐름도이다.
도 8은 본 발명의 실시 예에 따른 읽기 전용 스냅샷 파일이 생성된 이후에 원본 파일을 갱신하는 방법을 설명하기 위한 흐름도이다.
도 9는 본 발명의 실시 예에 따른 읽기 전용 스냅샷 파일을 생성한 후 원본 파일에 대한 읽기 동작을 수행하는 방법을 설명하기 위한 흐름도이다.
도 10은 본 발명의 실시 예에 따른 읽기 전용 스냅샷 파일에 대한 읽기 동작 을 수행하는 방법을 설명하기 위한 흐름도이다.
도 11은 본 발명의 실시 예에 따른 읽기 전용 스냅샷 파일에 대한 복귀 처리 동작을 설명하기 위한 흐름도이다.
도 12는 본 발명의 실시 예에 따른 분산 파일 시스템에서 원본 파일과 쓰기 가능 스냅샷 파일을 설명하기 위한 개념도이다.
도 13은 본 발명의 실시 예에 따른 원본 파일과 읽기 전용 스냅샷 파일의 아이 노드(inode) 구조를 설명하기 위한 개념도이다.
도 14는 본 발명의 실시 예에 따른 쓰기 가능 스냅샷 파일의 델타 청크를 식별하기 위한 청크 레이아웃 정보를 설명하기 위한 개념도이다.
도 15는 본 발명의 실시 예에 따른 쓰기 가능 스냅샷 파일을 생성하는 방법을 설명하기 위한 흐름도이다.
도 16는 본 발명의 실시 예에 따른 읽기 전용 스냅샷 파일을 쓰기 가능 스냅샷 파일로 변환하는 처리 과정을 설명하기 위한 흐름도이다.
도 17은 본 발명의 실시 예에 따른 쓰기 가능 스냅샷 파일에 대한 쓰기 동작을 설명하기 위한 흐름도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1구성 요소는 제2구성 요소로 명명될 수 있고 유사하게 제2구성 요소는 제1구성 요소로도 명명될 수 있다.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 나타낸다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도 1은 본 발명의 실시 예에 따른 분산 파일 시스템의 블록도이다.
도 1을 참조하면, 분산 파일 시스템은 클라이언트(100), 메타데이터 서버(200), 데이터 서버(300), 및 네트워크(400)를 포함할 수 있다.
클라이언트(100)는 메타데이터 서버(200)에 저장된 파일의 메타데이터를 이용하여 데이터 서버(300)에 저장된 파일의 데이터를 쓰거나 읽을 수 있다.
메타데이터는 파일에 대한 정보를 포함하는 데이터로서, 파일이 저장되어 있는 데이터 서버(300)에 대한 정보를 포함할 수 있다.
예컨대, 클라이언트(100)는 메타데이터 서버(200)에 저장된 메타데이터를 이용하여 파일의 정보를 분석하고, 실제로 파일이 저장된 데이터 서버(300)에 접속하여 파일의 데이터를 갱신할 수 있다.
메타데이터 서버(200)는 분산 파일 시스템의 모든 파일에 대한 메타데이터를 저장하고 관리할 수 있다. 메타데이터 서버(200)는 데이터 서버(300)에 대한 상태 정보를 관리할 수 있고, 데이터 서버(300)가 복수 개 존재하는 경우 모든 데이터 서버(300)에 대한 상태 정보를 관리할 수 있다.
데이터 서버(300)는 파일을 저장하고, 클라이언트(100)로부터 수신된 요청신호에 따라 파일의 읽기 동작 또는 쓰기 동작을 할 수 있다.
실시 예에 따라, 데이터 서버(300)는 청크(chunk)로 분할된 일정 크기의 파일을 저장할 수 있다. 여기서, 청크는 파일의 단위 크기로 분할된 데이터 정보이고, 단위 크기는 다양하게 변경되어 실시될 수 있다.
예컨대, 데이터 서버(300)가 복수 개 존재하면, 파일은 일정 크기의 청크로 분할되어 복수의 데이터 서버(300)들로 분산 저장될 수 있고, 하나의 파일은 복수의 데이터 서버(300)에 스트라입(stripe)될 수 있다.
데이터 서버(300)는 주기적으로 메타데이터 서버(200)로 데이터 서버(300)의 상태 정보, 예컨대 저장된 파일의 크기, 저장된 파일의 갱신시간 등을 보고할 수 있다.
클라이언트(100), 메타데이터 서버(200), 및 데이터 서버(300)는 네트워크(400)를 통해 연결될 수 있다.
도 2는 본 발명의 실시 예에 따른 분산 파일 시스템에서 원본 파일과 연결된 읽기 전용 스냅샷 파일을 설명하기 위한 개념도이다.
본 발명의 설명의 편의를 위해, 클라이언트(100)에 의해 데이터 갱신이 이루어지는 파일을 원본 파일(210)이라 한다.
도 1과 도 2를 참조하면, 메타 데이터 서버(300)는 원본 파일(210)에 대한 스냅샷을 생성하는 시점의 상태를 저장하기 위해 읽기 전용 스냅샷 파일(220-1 및 220-2)을 생성한다. 따라서, 원본 파일(210)의 데이터가 갱신되더라도, 클라이언트(100)는 읽기 전용 스냅샷 파일(220-1 및 220-2)을 이용하여 스냅샷 파일을 생성한 시점의 파일 상태로 복귀할 수 있다.
읽기 전용 스냅샷 파일(220-1 및 220-2)은 실시간으로 스냅샷 생성 요청에 따라 연속적으로 생성될 수 있다. 생성된 각각의 읽기 전용 스냅샷 파일(220-1 또는 220-2)은 생성된 시점의 원본 파일(210)의 상태를 포함할 수 있다.
읽기 전용 스냅샷 파일(220-1 및 220-2)은 원본 파일(210)과 동일한 파일 형태로 생성된다. 원본 파일(210)의 데이터가 갱신되면, 데이터 서버(300)는 갱신된 데이터를 원본 파일(210)에 갱신하지 않고 읽기 전용 스냅샷 파일(220-1 및 220-2)에 스냅샷 델타 청크(222-1 및 222-2)로 저장할 수 있다.
예컨대, 원본 파일(210)에 1차적으로 데이터가 갱신되면 갱신된 데이터는 제1읽기 전용 스냅샷 파일(220-1)에 제1델타 청크(222-1)로 저장될 수 있다. 원본 파일(210)에 2차적으로 데이터가 갱신되면 갱신된 데이터는 제2읽기 전용 스냅샷 파일(220-2)에 제2델타 청크(222-2)로 저장될 수 있다. 제2읽기 전용 스냅샷 파일(220-2)은 제1델타 청크(222-1)와 제2델타 청크(222-1)를 저장할 수 있다.
실시 예에 따라, 원본 파일(210)과 읽기 전용 스냅샷 파일(220-1 및 220-2)은 생성된 순서로 차례대로 연결될 수 있다.
예컨대, 원본 파일(210)은 제1읽기 전용 스냅샷 파일(220-1)과 연결되고, 제1읽기 전용 스냅샷 파일(220-1)은 제2읽기 전용 스냅샵 파일(220-2)과 연결될 수 있다. 즉, 클라이언트(100)는 제1읽기 전용 스냅샷 파일(220-1)을 이용하여 원본 파일(210)에 접근할 수 있고, 제2읽기 전용 스냅샷 파일(220-2)을 이용하여 1차적으로 갱신된 원본 파일에 접근할 수 있다.
다른 실시 예에 따라, 원본 파일(210)은 읽기 전용 스냅샷 파일(220-1 및 (220-2)) 각각과 개별적으로 연결될 수 있다.
예컨대, 제1읽기 전용 스냅샷 파일(220-1)과 제2읽기 전용 스냅샷 파일(220-2) 각각은 원본 파일(210)과 연결될 수 있다. 즉, 클라이언트(100)는 제1읽기 전용 스냅샷 파일(220-1)을 이용하여 원본 파일(210)에 접근하거나, 제2읽기 전용 스냅샷 파일(220-2)을 이용하여 원본 파일(210)에 접근할 수 있다.
따라서, 본 발명의 실시 예에 따른 스냅샷 제공 방법에 따르면, 클라이언트(100)는 원본 파일(210)의 변경 없이 생성된 읽기 전용 스냅샷 파일(220-1 및 220-2)을 이용하여 특정한 시점의 원본 파일(210) 또는 갱신된 원본 파일(210)에 접근할 수 있다.
도 3은 본 발명의 실시 예에 따른 원본 파일과 읽기 전용 스냅샷 파일의 아이 노드(inode) 구조를 설명하기 위한 개념도이다.
도 1부터 도 3를 참조하면, 메타데이터 서버(200)는 원본 파일(210)과 읽기 전용 스냅샷 파일을 아이노드(inode) 구조로 관리할 수 있다. 원본 파일(210)과 읽기 전용 스냅샷 파일(220-1 및 220-2)은 아이노드를 이용하여 서로 연결될 수 있다.
원본 파일의 inode(214)는 inode 속성 정보(214-1), 읽기 전용 스냅샷 파일의 inode 정보(214-2), 및 청크 레이아웃 정보(214-3)를 포함할 수 있다.
inode 속성 정보(214-1)는 원본 파일(210)에 대한 inode 식별자, 파일 타입, 파일 모드, 파일 크기, 파일 소유권, 파일의 접근,변경, 및 갱신 시간 등을 포함할 수 있다.
읽기 전용 스냅샷 파일의 inode 정보(214-2)는 원본 파일의 inode(214)와 연결된 읽기 전용 스냅샷 파일의 inode(224-1)의 식별 정보를 포함할 수 있다. 즉, 원본 파일의 inode(214)는 읽기 전용 스냅샷 파일의 inode 정보(214-2)를 이용하여 특정한 읽기 전용 스냅샷 파일의 inode와 연결될 수 있다.
청크 레이아웃 정보(214-3)는 청크의 개수, 청크의 크기, 및 청크 복제본의 수 등을 포함할 수 있다. 원본 파일의 inode(214)는 청크 레이아웃 정보(214-3)를 이용하여 청크로 분할된 원본 파일(210)과 연결될 수 있다.
읽기 전용 스냅샷 파일의 inode(224-1 및 224-2)는 inode 속성 정보(224-1a 및 224-2a), 원본 파일의 inode 정보(224-1b 및 224-2b), 및 청크 레이아웃 정보(224-1c 및 224-2b)를 포함할 수 있다.
inode 속성 정보(224-1a 및 224-2a)는 읽기 전용 스냅샷 파일(220-1 및 220-2)에 대한 inode 식별자, 파일 타입, 파일 모드, 파일 크기, 파일 소유권, 파일의 접근,변경, 및 갱신 시간 등을 포함할 수 있다.
원본 파일의 inode 정보(224-1b 및 224-2b)는 원본 파일(210)의 식별 정보를 포함할 수 있다. 즉, 읽기 전용 스냅샷 파일의 inode(224-1 및 224-2)는 원본 파일 inode 정보(224-1b 및 224-2b)를 이용하여 원본 파일의 inode(214)와 연결될 수 있다.
다른 실시 예에 따라, 읽기 전용 스냅샷 파일의 inode(224-1 및 224-2)는 읽기 전용 스냅샷 파일의 inode 정보를 포함할 수 있다. 예컨대, 제1읽기 전용 스냅샷 파일의 inode(224-1)는 제2읽기 전용 스냅샷 파일의 inode 정보를 포함할 수 있고, 제1읽기 전용 스냅샷 파일(224-1)은 제2읽기 전용 스냅샷 파일의 inode 정보를 이용하여 제2읽기 전용 스냅샷 파일의 inode(224-2)와 연결될 수 있다.
청크 레이아웃 정보(224-1c 및 224-2c)는 읽기 전용 스냅샷 파일(220-1 및 220-2)의 델타 청크의 개수, 델타 청크의 크기, 및 델타 청크 복제본의 수 등을 포함할 수 있다. 읽기 전용 스냅샷 파일의 inode(224-1 및 224-2)는 청크 레이아웃 정보(224-1c 및 224-2c)를 이용하여 델타 청크와 연결될 수 있다.
예컨대, 제1읽기 전용 스냅샷 파일의 inode(224-1)는 제1청크 레이아웃 정보(224-1c)를 이용하여 제1델타 청크(226-1 및 228-1)와 연결될 수 있다.
도 4는 본 발명의 실시 예에 따른 제1읽기 전용 스냅샷 파일의 델타 청크를 식별하기 위한 청크 레이아웃 정보를 설명하기 위한 개념도이다.
도 1부터 도 4를 참조하면, 메타데이터 서버(200)는 원본 파일(210)을 갱신할 때, 원본 파일(210)에 대한 델타 청크(222-1 및 222-2)를 생성하고, 델타 청크(222-1 및 222-2)를 식별하기 위한 청크 레이아웃 정보(224-1c 및 224-2c)를 생성할 수 있다. 청크 레이아웃 정보(224-1c 및 224-2c)는 델타 청크(222-1 및 222-2)를 식별하기 위해 원본 청크 식별자(224-1c')와 읽기 전용 스냅샷 번호(224-1c'')를 포함할 수 있다.
메타데이터 서버(200)는 원본 청크 식별자(224-1c')와 읽기 전용 스냅샷 번호(224-1c'')를 이용하여 델타 청크를 식별할 수 있다.
예컨대, 메타데이터 서버(200)는 제1읽기 전용 스냅샷 파일의 청크 레이아웃 정보(224-1c)를 이용하여 제1델타 청크(222-1)를 식별할 수 있다. 즉, 메타데이터 서버(200)는 원본 청크 식별자(224-1c')를 이용하여 원본 파일의 청크(212)를 식별하고, 원본 파일(210)의 데이터에 1차적으로 갱신된 데이터인 제1델타 청크(222-1)를 읽기 전용 스냅샷 번호(224-1c'')를 이용하여 식별할 수 있다.
따라서, 메타데이터 서버(200)는 원본 청크 식별자(224-1c')와 읽기 전용 스냅샷 번호(224-1c'')를 이용하여 특정한 스냅샷이 생성된 시점의 원본 파일의 청크와 델타 청크에 접근할 수 있다.
도 5는 본 발명의 실시 예에 따른 원본 파일이 갱신될 때 생성되는 델타 청크를 익스텐트(extent) 단위로 식별하는 방법을 설명하기 위한 개념도이다.
도 1부터 도 5를 참조하면, 읽기 전용 스냅샷 파일을 생성한 이후에 원본 파일이 갱신되는 경우, 데이터 서버는 델타 청크에 갱신되는 데이터를 저장할 수 있다.
데이터 서버(300)는 카피-온-라이트(copy-on-write)방법을 이용하여 익스텐트(extent) 단위로 델타 청크를 갱신할 수 있다. 즉, 데이터 서버(300)는 청크를 익스텐트 단위로 분할할 수 있고, 갱신 데이터가 포함되는 익스텐트를 읽기 전용 스냅샷 파일(220-1 및 220-2)의 델타 청크(222-1 및 222-2)의 익스텐트에 저장할 수 있다.
이때, 청크를 구성하는 익스텐트들에 대해 특정한 익스텐트가 어떤 읽기 전용 스냅샷 번호 이후에 변경되었는지를 추적하기 위하여, 데이터 서버(300)는 익스텐트 번호와 읽기 전용 스냅샷 번호를 관리하는 원본 청크 익스텐트 변경맵(218)을 원본 파일의 청크(212)의 끝에 포함시킬 수 있다. 또한, 원본 청크 익스텐트 변경맵(218)은 마지막으로 생성된 읽기 전용 스냅샷 번호를 포함할 수 있다.
도 6은 본 발명의 실시 예에 따른 읽기 전용 스냅샷 파일을 생성하는 방법을 설명하기 위한 흐름도이다.
도 1부터 도 6을 참조하면, 메타데이터 서버(200)는 원본 파일(210)의 읽기 전용 스냅샷 파일(220-1 및 220-2)을 생성하기 위해서 원본 파일 inode(214)의 잠금을 획득하고(S100), 읽기 전용 스냅샷 파일의 inode(224-1 및 224-2)를 생성하고 읽기 전용 스냅샷 번호(224-1c'')를 부여한 다음 스냅샷 파일의 모드를 읽기 전용으로 설정한다(S110).
메타데이터 서버(200)는 원본 파일(210) 또는 이전에 생성된 읽기 전용 스냅샷 파일의 청크 레이아웃 정보를 새로 생성된 읽기 전용 스냅샷 파일의 inode의 청크 레이아웃 정보에 복사한다(S120).
이후, 메타데이터 서버(200)는 원본 파일의 청크(212)를 저장하고 있는 모든 데이터 서버(300)들에서 원본 파일의 청크(212) 또는 이전에 생성된 읽기 전용 스냅샷 파일의 델타 청크(222-1)의 잠금을 획득하고(S130), 새로 생성된 읽기 전용 스냅샷 파일에 대한 델타 청크(222-2)를 생성한다(S140).
이때, 모든 데이터 서버(300)들은 데이터 갱신이 있는 경우에 갱신된 데이터를 생성된 델타 청크(222-2)에 저장할 수 있고, 갱신된 데이터를 원본 청크의 익스텐트 변경맵(218)에 반영할 수 있다.
메타데이터 서버(200)는 모든 데이터 서버(300)들에서 원본 파일의 청크(212) 또는 이전에 생성된 읽기 전용 스냅샷 파일의 델타 청크(222-1)의 잠금을 해제하고(S150), 새로 생성된 읽기 전용 스냅샷 파일의 inode에 원본 파일의 inode 정보를 저장할 수 있다(S160).
도 7은 본 발명의 실시 예에 따른 읽기 전용 스냅샷 파일을 삭제하는 방법을 설명하기 위한 흐름도이다.
도 1부터 도 7을 참조하면, 메타데이터 서버(200)는 삭제될 읽기 전용 스냅샷 파일이 원본 파일에 대해 첫 번째로 생성된 읽기 전용 스냅샷 파일인지 판단한다(S200).
메타데이터 서버(200)는 삭제될 읽기 전용 스냅샷 파일이 첫 번째로 생성된 읽기 전용 스냅샷 파일인 경우에 데이터 서버(300)에서 원본 청크의 익스텐트 변경맵(218)을 분석하고, 분석 결과에 따라 삭제될 읽기 전용 스냅샷 파일이 생성된 이후에 변경된 데이터를 저장하고 있는 델타 청크를 원본 파일의 청크(212)와 병합한다(S210A).
메타데이터 서버(200)는 삭제될 읽기 전용 스냅샷 파일이 첫번째로 생성된 읽기 전용 스냅샷 파일이 아닌 경우에 데이터 서버(300)에서 원본 청크의 익스텐트 변경맵을 분석하고, 분석 결과에 따라 삭제될 읽기 전용 스냅샷 파일이 생성된 이후에 변경된 데이터를 저장하고 있는 델타 청크를 이전에 생성된 읽기 전용 스냅샷 파일의 델타 청크와 병합한다(S210B).
메타데이터 서버(200)는 삭제될 읽기 전용 스냅샷 파일을 데이터 서버(300)에서 삭제한다(S220).
메타데이터 서버(200)는 데이터 서버(300)에서 원본 청크의 익스텐트 변경맵(218)에서 삭제될 읽기 전용 스냅샷 파일의 스냅샷 번호를 초기화하고(S230), 원본 파일의 inode에서 삭제될 읽기 전용 스냅샷 파일의 inode 정보를 삭제한다(S240).
마지막으로, 메타데이터 서버(200)는 삭제될 읽기 전용 스냅샷 파일의 inode를 삭제한다(S250).
도 8은 본 발명의 실시 예에 따른 읽기 전용 스냅샷 파일이 생성된 이후에 원본 파일을 갱신하는 방법을 설명하기 위한 흐름도이다.
도1부터 도 8을 참조하면, 메타데이터 서버(200)는 읽기 전용 스냅샷 파일이 생성된 이후에 클라이언트(100)로부터 원본 파일의 쓰기 요청을 받을 수 있다. 즉, 메타데이터 서버(200)는 클라이언트(100)로부터 원본 파일의 청크 레이아웃 정보를 요청받고(S300), 클라이언트(100)는 메타데이터 서버(200)로부터 수신된 청크 레이아웃 정보를 이용하여 데이터를 갱신할 위치의 청크를 저장하고 있는 데이터 서버(300)에 쓰기 요청을 한다(S310).
데이터 서버(300)는 원본 청크의 익스텐트 변경맵(218)을 분석하여(S320), 데이터를 쓸 위치의 익스텐트가 변경되었는지를 검사한다(S330).
만약 익스텐트가 변경되었으면, 데이터 서버(300)는 마지막 변경된 데이터를 포함하는 읽기 전용 스냅샷 파일의 델타 청크와 현재의 읽기 전용 스냅샷 파일의 델타 청크에 대한 잠금을 획득한다(S340).
데이터 서버(300)는 이전에 변경된 읽기 전용 스냅샷 파일의 델타 청크에서 현재의 읽기 전용 스냅샷 파일의 델타 청크로 익스텐트 단위의 카피-온-라이트를 수행한 후 이전에 변경된 읽기 전용 스냅샷 파일의 델타 청크와 현재의 읽기 전용 스냅샷 파일의 델타 청크의 잠금을 해제한다(S350).
만약 익스텐트가 변경되지 않았으면 원본 파일의 청크(212)에서 한번도 데이터를 갱신한 적이 없으므로, 데이터 서버(300)는 원본 파일의 청크와 현재의 읽기 전용 스냅샷 파일의 델타 청크의 잠금을 획득할 수 있다(S360).
데이터 서버(300)는 원본 파일의 청크에서 현재의 읽기 전용 스냅샷 파일의 델타 청크로 카피-온-라이트를 수행한 후에, 원본 파일의 청크(212)와 현재의 읽기 전용 스냅샷 파일의 델타 청크의 잠금을 해제한다(S370).
마지막으로, 데이터 서버(300)는 원본 청크 익스텐트 변경맵(218)에서 익스텐트에 대해 현재 스냅샷 번호를 설정함으로써 마지막으로 변경된 위치를 추적할 수 있다(S380).
도 9는 본 발명의 실시 예에 따른 읽기 전용 스냅샷 파일을 생성한 후 원본 파일에 대한 읽기 동작을 수행하는 방법을 설명하기 위한 흐름도이다.
도 1부터 도 9를 참조하면, 메타데이터 서버(200)는 읽기 전용 스냅샷 파일이 생성된 이후에 클라이언트(100)로부터 원본 파일의 읽기 요청을 받을 수 있다. 즉, 메타데이터 서버(200)는 클라이언트(100)로부터 원본 파일의 청크 레이아웃 정보(214-3)를 요청받고(S400), 클라이언트(100)는 메타데이터 서버(200)로부터 수신된 청크 레이아웃 정보(214-3)를 이용하여 데이터 서버(300)로 데이터 읽기 요청을 한다(S410).
데이터 서버(300)에서는 원본 청크의 익스텐트 변경맵(218)을 분석하여(S420), 익스텐트가 스냅샷 생성 이후에 변경되었는지를 검사한다(S430).
만약 익스텐트가 변경되었으면, 데이터 서버(300)는 마지막으로 변경된 데이터를 저장하고 있는 읽기 전용 스냅샷 파일의 델타 청크의 잠금을 획득한다(S440).
데이터 서버(300)는 읽기 전용 스냅샷 파일의 델타 청크에서 데이터를 읽어서 클라이언트(100)에 전달한 후에(S450), 마지막으로 변경된 읽기 전용 스냅샷 파일의 델타 청크의 잠금을 해제한다(S460).
만약 익스텐트가 변경되지 않았으면, 읽기 전용 스냅샷 파일의 생성 이후에 원본 파일의 청크(212)를 한 번도 갱신하지 않은 것이므로, 데이터 서버(300)는 원본 파일의 청크(212)의 잠금을 획득하고(S470), 원본 파일의 청크에서 데이터를 읽어서 클라이언트(100)에 전달한 후(S480), 원본 파일의 청크(212)의 잠금을 해제한다(S490).
도 10은 본 발명의 실시 예에 따른 읽기 전용 스냅샷 파일에 대한 읽기 동작 을 수행하는 방법을 설명하기 위한 흐름도이다.
도 1부터 도 10을 참조하면, 클라이언트(100)는 메타데이터 서버(200)로부터 읽기 전용 스냅샷 파일의 청크 레이아웃 정보를 수신하고, 청크 레이아웃 정보를 이용하여 데이터 서버(300)로 데이터 읽기 요청을 전송한다(S500)
데이터 서버(300)에서는 원본 청크의 익스텐트 변경맵(218)을 분석하여(S510), 읽기 전용 스냅샷 파일의 생성 이전에 익스텐트가 변경되었는지를 검사한다(S520).
만약 읽기 전용 스냅샷 파일의 생성 이전에 익스텐트가 변경되었으면, 데이터 서버(300)는 이전에 변경된 익스텐트를 저장하고 있는 읽기 전용 스냅샷 파일의 델타 청크의 잠금을 획득하고(S530), 이전에 변경된 익스텐트에서 데이터를 읽어서 클라이언트(100)에 전송한 후(S540), 이전에 변경된 익스텐트를 저장하고 있는 읽기 전용 스냅샷 파일의 델타 청크의 잠금을 해제한다(S550)
만약 익스텐트가 변경되지 않았으면, 데이터 서버(300)는 원본 파일의 청크(212)의 잠금을 획득하고(S560), 원본 파일의 청크(212)에서 데이터를 읽어서 클라이언트(100)에 전송한 한 후(S570), 원본 파일의 청크(212)의 잠금을 해제한다(S580).
도 11은 본 발명의 실시 예에 따른 읽기 전용 스냅샷 파일에 대한 복귀 처리 동작을 설명하기 위한 흐름도이다.
스냅샷 복귀는 장애 또는 관리상의 문제로 인해 원본 파일을 특정 시점에 생성된 스냅샷 파일의 원본 파일로 복구할 때 사용될 수 있다.
도 1부터 도 11을 참조하면, 메타데이터 서버(200)는 복귀할 시점의 읽기 전용 스냅샷 파일을 지정하여 복귀를 요청한다(S600).
데이터 서버(300)는 저장된 원본 파일의 청크들에 대해 원본 청크의 익스텐트 변경맵을 분석하여(S610), 익스텐트들 각각이 복귀하고자 하는 읽기 전용 스냅샷 파일의 생성 이후에 변경되었는지 판단한다(S620).
데이터 서버(300)는 원본 청크 익스텐트 변경맵(218)에서 익스텐트들 각각이 변경된 마지막 읽기 전용 스냅샷 번호가 복귀할 읽기 전용 스냅샷 파일 보다 크면 변경된 것으로 판단한다.
복귀하고자 하는 읽기 전용 스냅샷 파일의 생성 이후에 변경된 것으로 판단되면, 데이터 서버(300)는 복귀할 읽기 전용 스냅샷 파일에서 가장 가까운 시점의 읽기 전용 스냅샷 파일의 델타 청크에서 해당 익스텐트를 원본 청크의 익스텐트에 복사한다(S630).
데이터 서버(300)는 복사가 완료되면 원본 청크 익스텐트 변경맵(218)에 복귀한 읽기 전용 스냅샷 번호를 적용한다(S640). 마지막으로, 메타데이터 서버(200)는 복귀한 읽기 전용 스냅샷 파일의 생성 이후에 생성된 모든 읽기 전용 스냅샷 파일들을 삭제한다(S650).
복귀하고자 하는 읽기 전용 스냅샷 파일의 생성 이후에 변경되지 않은 것으로 판단되면, 데이터 서버(300)는 원본 청크의 익스텐트(218)를 그대로 유지한다(S660).
도 12는 본 발명의 실시 예에 따른 분산 파일 시스템에서 원본 파일과 쓰기 가능 스냅샷 파일을 설명하기 위한 개념도이다.
도 1부터 도 12를 참조하면, 본 발명의 실시 예에 따른 스냅샷은 특성에 따라 읽기 전용 또는 쓰기 가능 스냅샷으로 관리될 수 있으며 두 스냅샷 모두 원본 파일 데이터에 대한 메타데이터를 공유할 수 있다. 앞서 설명된 읽기 전용 스냅샷파일은 스냅샷 파일을 생성한 시점에서의 파일 데이터를 읽기 동작만 할 수 있고, 원본 파일은 계속적으로 변경될 수 있다. 하지만, 도 12에 도시된 쓰기 가능 스냅샷 파일은 스냅샷 파일이 생성된 이후에 쓰기 가능 스냅샷 파일에 대한 읽기 쓰기가 가능할 수 있다.
즉, 원본 파일(210')에 대한 변경은 쓰기 가능 스냅샷 파일(230-1 및 230-2)에 반영되지 않으며, 쓰기 가능 스냅샷 파일(230-1 및 230-2)에 대한 변경은 원본 파일에 반영되지 않는다. 따라서, 원본 파일의 청크(212')에 대한 변경된 데이터는 읽기 전용 스냅샷 파일(220-1 및 220-2)의 경우와 같이 쓰기 가능 스냅샷 파일의 델타 청크(232-1 및 232-2)로 저장된다. 쓰기 가능 스냅샷 파일(230-1 및 230-2)의 데이터가 변경될 때는 원본 파일의 청크(212')와 쓰기 가능 스냅샷 델타 청크(232-1 및 232-2)를 이용하여 카피-온-라이트를 수행한다.
도 13은 본 발명의 실시 예에 따른 원본 파일과 쓰기 가능 스냅샷 파일의 아이 노드(inode) 구조를 설명하기 위한 개념도이다.
도 1 및 도 13를 참조하면, 메타 데이터 서버(300)는 원본 파일(210')과 쓰기 가능 스냅샷 파일(230-1 및 230-2)을 아이노드(inode) 구조로 관리할 수 있다. 원본 파일(210')과 쓰기 가능 스냅샷 파일(230-1 및 230-2)은 아이노드를 이용하여 서로 연결될 수 있다.
원본 파일의 inode(214')는 inode 속성 정보(214-1'), 쓰기 가능 스냅샷 파일의 inode 정보(214-2'), 및 청크 레이아웃 정보(214-3')를 포함할 수 있다.
inode 속성 정보(214-1')와 청크 레이아웃 정보(214-3')는 앞서 설명된 도 3의 inode 속성 정보(214-1)와 청크 레이아웃 정보(214-1)와 동일한 기능을 수행하고 중복되는 설명은 생략한다.
쓰기 가능 스냅샷 파일의 inode 정보(214-2')는 원본 파일의 inode(214')와 연결된 쓰기 가능 스냅샷 파일의 inode(234-1 및 234-2)의 식별 정보를 포함할 수 있다. 즉, 원본 파일의 inode(214')는 쓰기 가능 스냅샷 파일의 inode 정보(214-2')를 이용하여 특정한 쓰기 가능 스냅샷 파일의 inode와 연결될 수 있다.
쓰기 가능 스냅샷 파일의 inode(234-1 및 234-2)는 inode 속성 정보(234-1a 및 234-2a), 원본 파일의 inode 정보(234-1b 및 234-2b), 및 청크 레이아웃 정보(234-1c 및 234-2c)를 포함할 수 있다.
inode 속성 정보(234-1a 및 234-2a), 원본 파일의 inode 정보(234-1b 및 234-2b), 및 청크 레이아웃 정보(234-1c 및 234-2c)는 도 3에 도시된 inode 속성 정보(224-1a 및 224-2a), 원본 스냅샷 파일의 inode 정보(224-1b 및 224-2b), 및 청크 레이아웃 정보(224-1c 및 224-2c)와 동일한 기능을 수행하므로 중복되는 설명은 생략한다.
도 14는 본 발명의 실시 예에 따른 쓰기 가능 스냅샷 파일의 델타 청크를 식별하기 위한 청크 레이아웃 정보를 설명하기 위한 개념도이다.
도 1, 도 12, 도 13 및 도 14를 참조하면, 메타데이터 서버(200)는 원본 청크 식별자(234-1c')와 쓰기 가능 스냅샷 번호(234-1c'')를 이용하여 델타 청크를 식별할 수 있다.
예컨대, 메타데이터 서버(200)는 쓰기 가능 스냅샷 파일의 청크 레이아웃 정보(234-1c)를 이용하여 델타 청크를 식별할 수 있다. 즉, 메타데이터 서버(200)는 원본 청크 식별자(234-1c')를 이용하여 원본 파일의 청크(212')를 식별하고, 원본 파일(210')의 데이터가 갱신된 데이터인 델타 청크를 쓰기 가능 스냅샷 번호(234-1c'')를 이용하여 식별할 수 있다.
도 15는 본 발명의 실시 예에 따른 쓰기 가능 스냅샷 파일을 생성하는 방법을 설명하기 위한 흐름도이다.
도 1, 도 12, 도 13, 도 14 및 도 15를 참조하면, 메타데이터 서버(200)는 원본 파일(210')에 대한 쓰기 가능 스냅샷 파일을 생성하기 위해서 원본 파일 inode(214')의 잠금을 획득하고(S700), 쓰기 가능 스냅샷 파일의 inode(234-1 및 234-2)를 생성하고, 쓰기 가능 스냅샷 파일의 모드를 쓰기 가능으로 설정한다(S710).
메타데이터 서버(200)는 쓰기 가능 스냅샷 파일의 inode의 청크 레이아웃 정보(234-1c 및 234-2c)에 원본 파일 inode의 청크 레이아웃 정보(214-3')를 복사한다(S720).
이후, 메타데이터 서버(200)는 청크 레이아웃(214-3')을 참조하여 청크를 저장하고 있는 모든 데이터 서버(300)에서 쓰기 가능 스냅샷 파일의 델타 청크(232-1 및 232-2)를 생성한다(S730).
메타데이터 서버(200)는 쓰기 가능 스냅샷 파일의 inode(234-1 및 234-2)에 원본 파일 inode 정보(234-1b 및 234-2b)를 저장할 수 있다(S740).
마지막으로 메타데이터 서버(200)는 원본 파일 inode(214')에 새로 생성된 쓰기 가능 스냅샷 파일의 inode 정보를 추가하고, 원본 파일 inode(214')의 잠금을 해제한다(S750).
도 16는 본 발명의 실시 예에 따른 읽기 전용 스냅샷 파일을 쓰기 가능 스냅샷 파일로 변환하는 처리 과정을 설명하기 위한 흐름도이다.
도 1부터 도 16을 참조하면, 읽기 전용 스냅샷 파일(220-1 및 220-2)은 쓰기 가능 스냅샷 파일(230-1 및 230-2)로 변환될 수 있다. 메타데이터 서버(200)는 원본 파일의 inode(214)와 읽기 전용 스냅샷 파일의 inode(224-1 및 224-2)의 잠금을 획득할 수 있다(S800).
메타데이터 서버(200)는 읽기 전용 스냅샷 파일의 타입을 쓰기 가능 스냅샷 파일로 변경할 수 있다(S810).
메타데이터 서버(200)는 읽기 전용 스냅샷 파일의 청크 레이아웃 정보(224-1c 및 224-2c)를 참조하여 모든 데이터 서버(300)들로부터 이전의 읽기 전용 스냅샷 파일의 델타 청크에 대한 잠금을 획득하고(S820), 쓰기 가능 스냅샷 파일의 델타 청크를 생성할 수 있다(S830).
데이터 서버(300)는 이전의 읽기 전용 스냅샷 파일의 델타 청크를 쓰기 가능 스냅샷 파일의 델타 청크와 병합할 수 있다(S840).
또한, 쓰기 가능 스냅샷 파일로 변경되는 읽기 전용 스냅샷 파일의 델타 청크들은 이전의 쓰기 가능 스냅샷 파일의 델타 청크에 병합될 수 있다(S850).
데이터 서버(300)는 원본 청크의 익스텐트 변경맵(218)에 반영하고 원본 파일의 청크(210)의 잠금을 해제할 수 있다(S860).
메타데이터 서버(200)는 원본 파일 inode(214)에서 읽기 전용 스냅샷 파일의 inode 정보(214-2)를 삭제하고, 삭제된 읽기 전용 스냅샷 파일의 inode 정보(214-2)를 쓰기 가능 스냅샷 inode 정보(214-3')에 추가할 수 있다(S870). 마지막으로 메타데이터 서버(200)는 원본 파일 inode(214)의 잠금을 해제할 수 있다(S880).
도 17은 본 발명의 실시 예에 따른 쓰기 가능 스냅샷 파일에 대한 쓰기 동작을 설명하기 위한 흐름도이다.
도 1, 도 12, 도 13, 도 14, 도 15,도 16 및 도 17을 참조하면, 클라이언트(100)는 메타데이터 서버(200)로부터 수신된 쓰기 가능 스냅샷 파일의 청크 레이아웃 정보를 이용하여 데이터 서버(300)에 데이터 쓰기를 요청할 수 있다(S900).
데이터 서버(300)는 쓰기 가능 스냅샷 델타 청크의 익스텐트 변경 비트맵을 분석하여(S910), 데이터를 쓰기 위해 익스텐트가 변경되었는지를 검사할 수 있다(S920).
익스텐트가 변경되었으면, 데이터 서버(300)는 쓰기 가능 스냅샷 파일의 델타 청크의 잠금을 획득하고(S930), 델타 청크에 데이터를 쓴 후, 쓰기 가능 스냅샷 파일의 델타 청크의 잠금을 해제할 수 있다(S940).
해당 익스텐트가 변경되지 않았으면, 데이터 서버(300)는 원본 파일의 청크와 쓰기 가능 스냅샷 파일의 델타 청크의 잠금을 획득하고(S950), 원본 파일의 청크에서 쓰기 가능 스냅샷 파일의 델타 청크로 카피-온-라이트를 수행할 수 있다(S960).
데이터 서버(300)는 쓰기 가능 스냅샷 델타 청크의 익스텐트 변경 비트맵에 익스텐트가 변경된 것으로 설정하고(S970), 원본 파일의 청크 및 스냅샷 델타 청크의 잠금을 해제할 수 있다(S980).
도 18은 본 발명의 실시 예에 따른 쓰기 가능 스냅샷 파일에 대한 읽기 처리 과정을 도시한 흐름도이다.
도 1, 도 12, 도 13, 도 14, 도 15, 도 16, 및 도 17을 참조하면, 메타데이터 서버(200)는 쓰기 가능 스냅샷 파일에서 데이터를 읽기 위해서 클라이언트(100)로부터 스냅샷의 청크 레이아웃 정보를 요청받고, 클라이언트(100)는 메타데이터 서버(200)로부터 수신된 청크 레이아웃 정보를 이용하여 데이터 서버(300)로 데이터 읽기를 요청할 수 있다(S1000).
데이터 서버(300)는 쓰기 가능 스냅샷 델타 청크의 익스텐트 변경 비트맵을 분석하여(S1010), 읽을 데이터에 해당하는 익스텐트가 변경되었는지를 검사할 수 있다(S1020).
해당 익스텐트가 변경되었으면, 데이터 서버(300)는 쓰기 가능 스냅샷 파일의 델타 청크의 잠금을 획득하고(S1030), 쓰기 가능 스냅샷 파일의 델타 청크로부터 데이터를 읽어서 클라이언트(100)에 전달한 후(S1040), 쓰기 가능 스냅샷 파일의 델타 청크의 잠금을 해제할 수 있다(S1050).
해당 익스텐트가 변경되지 않았으면, 원본 파일의 청크의 잠금을 획득하고(S1060), 원본 파일의 청크에서 데이터를 읽어서 클라이언트(100)에 전달한 후(S1070), 원본 파일의 청크의 잠금을 해제한다(S1080).
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100: 클라이언트
200: 메타데이터 서버
300: 데이터 서버
400: 네트워크

Claims (12)

  1. 파일에 대한 메타데이터를 저장하고 관리하는 메타데이터 서버; 및
    상기 파일의 데이터와 속성 정보를 저장하고 관리하는 데이터 서버를 포함하고,
    상기 메타데이터 서버는 클라이언트로부터 쓰기 요청에 응답하여, 변경 요청된 데이터를 읽기 전용 스냅샷 파일의 델타 청크(chunk)에 저장하고, 원본 파일과 상기 읽기 전용 스냅샷 파일을 아이노드(inode) 구조로 연결하는 분산 파일 시스템.
  2. 제1항에 있어서, 상기 메타데이터 서버는,
    상기 스냅샷 파일의 모드를 읽기 전용으로 설정한 후, 상기 읽기 전용 스냅샷 파일의 아이노드를 생성하고,
    상기 원본 파일의 청크 레이아웃 정보 또는 이전에 생성된 읽기 전용 스냅샷 파일의 청크 레이아웃 정보를 새로 생성된 읽기 전용 스냅샷 파일의 아이노드의 청크 레이아웃 정보에 복사하고,
    상기 읽기 전용 스냅샷 파일의 아이노드의 상기 청크 레이아웃 정보를 이용하여 상기 델타 청크를 생성하고,
    상기 새로 생성된 읽기 전용 스냅샷 파일의 아이노드에 상기 원본 파일의 아이노드 정보를 저장하는 분산 파일 시스템.
  3. 제1항에 있어서, 상기 메타데이터 서버는,
    상기 클라이언트로부터 전송된 청크 레이아웃 정보 요청에 응답하여, 상기 원본 파일의 상기 청크 레이아웃 정보를 상기 클라이언트로 전송하는 분산 파일 시스템.
  4. 제1항에 있어서, 상기 메타데이터 서버는,
    상기 읽기 전용 스냅샷 파일을 삭제하기 위해 원본 파일에 대해 첫 번째로 생성된 읽기 전용 스냅샷 파일인지 판단하고,
    상기 읽기 전용 스냅샷 파일이 첫 번째로 생성된 경우, 상기 데이터 서버에서 상기 원본 파일의 청크의 익스텐트 변경맵을 분석하고,
    분석 결과에 따라 상기 읽기 전용 스냅샷 파일 생성된 후 변경된 데이터를 저장하는 델타 청크를 상기 원본 파일의 청크와 병합하고,
    상기 읽기 전용 스냅샷 파일을 상기 데이터 서버에서 삭제하는 분산 파일 시스템.
  5. 제4항에 있어서,
    상기 읽기 전용 스냅샷 파일이 첫 번째로 생성되지 않은 경우, 상기 데이터 서버에서 상기 원본 파일의 청크의 익스텐트 변경맵을 분석하고,
    분석 결과에 따라 상기 읽기 전용 스냅샷 파일 생성된 후 변경된 데이터를 저장하는 상기 델타 청크를 이전에 생성된 읽기 전용 스냅샷 파일의 델타 청크와 병합하는 분산 파일 시스템.
  6. 제1항에 있어서, 상기 데이터 서버는,
    상기 클라이언트로부터 전송된 원본 파일의 갱신 요청에 응답하여 상기 데이터 서버에 저장된 원본 청크의 익스텐트 변경맵을 분석하고,
    상기 원본 파일의 청크에서 데이터가 쓰여질 위치의 익스텐트가 변경되었는지 확인하고,
    상기 익스텐트가 변경되었으면 이전에 변경된 읽기 전용 스냅샷 파일의 델타 청크에서 현재의 읽기 전용 스냅샷 파일의 델타 청크로 익스텐트 단위의 카피-온-라이트(copy-on-write)하고,
    상기 익스텐트가 변경되지 않았으면 상기 원본 파일의 청크와 상기 현재의 읽기 전용 스냅샷 파일의 델타 청크로 카피-온-라이트를 하는 분산 파일 시스템.
  7. 제1항에 있어서, 상기 데이터 서버가,
    마지막으로 상기 원본 파일이 변경된 위치를 추적하기 위해, 상기 원본 파일의 청크의 익스텐트 변경맵의 익스텐트에 대해 현재의 스냅샷 번호를 설정하는 분산 파일 시스템.
  8. 파일에 대한 메타데이터를 저장하고 관리하는 메타데이터 서버; 및
    상기 파일의 데이터와 속성 정보를 저장하고 관리하는 데이터 서버를 포함하고,
    상기 메타데이터 서버는 클라이언트로부터 쓰기 요청에 응답하여 스냅샷 파일의 모드를 읽기 전용 모드 및 쓰기 가능 모드 중 어느 하나로 설정하고, 설정 결과에 따라 변경 요청된 데이터를 청크 단위로 저장하는 분산 파일 시스템.
  9. 제8항에 있어서,
    상기 설정 결과가 읽기 전용 모드인 경우, 상기 메타데이터 서버는 상기 변경 요청된 데이터를 읽기 전용 스냅샷 파일의 델타 청크에 저장하고, 원본 파일과 상기 읽기 전용 스냅샷 파일을 아이노드(inode) 구조로 연결하는 분산 파일 시스템.
  10. 제8항에 있어서,
    상기 설정 결과가 쓰기 가능 모드인 경우, 상기 메타데이터 서버는 원본 파일의 변경 없이 변경 요청된 데이터를 쓰기 가능 스냅샷 파일의 델타 청크에 저장하고, 상기 원본 파일과 상기 쓰기 가능 스냅샷 파일을 아이노드 구조로 연결하는 분산 파일 시스템.
  11. 제10항에 있어서, 상기 메타데이터 서버는,
    상기 쓰기 가능 스냅샷 파일의 아이노드를 생성하고,
    원본 파일의 아이노드의 청크 레이아웃 정보를 상기 쓰기 가능 스냅샷 파일의 아이노드의 청크 레이아웃 정보에 복사하고,
    상기 쓰기 가능 스냅샷 파일의 아이노드의 상기 청크 레이아웃 정보를 이용하여 상기 데이터 서버에 상기 쓰기 가능 스냅샷 파일의 델타 청크를 생성하고,
    상기 쓰기 가능 스냅샷 파일의 아이노드에 원본 파일의 아이노드 정보를 저장하는 분산 파일 시스템.
  12. 제10항에 있어서, 상기 데이터 서버는,
    상기 클라이언트로부터 수신된 데이터 쓰기 요청에 응답하여, 상기 쓰기 가능 스냅샷 델타 청크의 익스텐트 변경 맵을 분석하여 데이터를 쓰기 위한 익스텐트의 변경여부를 검사하고,
    상기 익스텐트가 변경되었으면 상기 델타 청크에 데이터를 쓰고,
    상기 익스텐트가 변경되지 않았으면 상기 원본 파일의 청크로부터 상기 델타 청크로 카피-온-라이트를 수행하는 분산 파일 시스템.
KR1020150039017A 2015-03-20 2015-03-20 분산 파일 시스템 KR102378367B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150039017A KR102378367B1 (ko) 2015-03-20 2015-03-20 분산 파일 시스템
US15/073,072 US10289497B2 (en) 2015-03-20 2016-03-17 Distributed file system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150039017A KR102378367B1 (ko) 2015-03-20 2015-03-20 분산 파일 시스템

Publications (2)

Publication Number Publication Date
KR20160112758A true KR20160112758A (ko) 2016-09-28
KR102378367B1 KR102378367B1 (ko) 2022-03-24

Family

ID=56923756

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150039017A KR102378367B1 (ko) 2015-03-20 2015-03-20 분산 파일 시스템

Country Status (2)

Country Link
US (1) US10289497B2 (ko)
KR (1) KR102378367B1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10810165B2 (en) 2016-10-07 2020-10-20 Electronics And Telecommunications Research Institute Distributed storage server, server device included therein, and method of operating server device
CN107957918B (zh) * 2016-10-14 2019-05-10 腾讯科技(深圳)有限公司 数据恢复方法和装置
US10241896B2 (en) * 2016-11-08 2019-03-26 Salesforce, Inc. Formation and manipulation of test data in a database system
US20200201745A1 (en) * 2016-11-08 2020-06-25 Salesforce.Com, Inc. Formation and manipulation of test data in a database system
KR102610984B1 (ko) 2017-01-26 2023-12-08 한국전자통신연구원 토러스 네트워크를 이용하는 분산 파일 시스템 및 토러스 네트워크를 이용하는 분산 파일 시스템의 운영 방법
CN106874481B (zh) * 2017-02-20 2020-02-07 郑州云海信息技术有限公司 一种分布式文件系统元数据信息读取方法及系统
KR102376157B1 (ko) 2017-05-02 2022-03-21 한국전자통신연구원 메타데이터 서버 및 그것을 이용한 디렉토리 단위의 메타데이터 분산 방법
CN108984105B (zh) * 2017-06-02 2021-09-10 伊姆西Ip控股有限责任公司 对网络存储设备中的复制任务进行分配的方法和设备
US11016937B2 (en) * 2017-07-17 2021-05-25 Microsoft Technology Licensing, Llc Updateable distributed file framework
WO2019049073A1 (en) * 2017-09-07 2019-03-14 Zudomanzi (Pty) Ltd METHOD AND SYSTEM FOR VIRTUAL OFFICE MANAGEMENT
CN110874185B (zh) * 2018-09-04 2021-12-17 杭州海康威视系统技术有限公司 一种数据存储方法及存储装置
CN109815060A (zh) * 2019-01-30 2019-05-28 北京百度网讯科技有限公司 用于备份信息的方法及装置
JP6890153B2 (ja) * 2019-06-10 2021-06-18 株式会社日立製作所 特異なイベントをリストアポイントとして設定するストレージ装置およびバックアップ方法
CN110502485B (zh) * 2019-08-16 2022-04-22 北京浪潮数据技术有限公司 文件创建方法、客户端、元数据服务器及系统
US11640371B2 (en) * 2020-03-12 2023-05-02 Western Digital Technologies, Inc. Snapshot management in partitioned storage
CN111611310A (zh) * 2020-04-28 2020-09-01 深圳壹账通智能科技有限公司 区块链数据裁剪方法、节点恢复方法、装置、设备及介质
US20220019555A1 (en) * 2020-07-17 2022-01-20 Rubrik, Inc. Snapshot and restoration of distributed file system
CN114296649B (zh) * 2021-12-27 2024-01-02 天翼云科技有限公司 云间业务迁移系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030158834A1 (en) * 2002-02-15 2003-08-21 International Business Machines Corporation Writable file system snapshot with ditto address feature
US20050065986A1 (en) * 2003-09-23 2005-03-24 Peter Bixby Maintenance of a file version set including read-only and read-write snapshot copies of a production file
US20070260830A1 (en) * 2006-05-08 2007-11-08 Sorin Faibish Distributed maintenance of snapshot copies by a primary processor managing metadata and a secondary processor providing read-write access to a production dataset
US20140149698A1 (en) * 2012-11-29 2014-05-29 Infinidat Ltd. Storage System Capable of Managing a Plurality of Snapshot Families and Method of Operating Thereof
US20140258672A1 (en) * 2013-03-08 2014-09-11 Microsoft Corporation Demand determination for data blocks

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6829617B2 (en) 2002-02-15 2004-12-07 International Business Machines Corporation Providing a snapshot of a subset of a file system
KR100439675B1 (ko) 2002-10-24 2004-07-14 한국전자통신연구원 대용량 공유 저장장치를 위한 효율적인 스냅샷 수행방법
US7457982B2 (en) 2003-04-11 2008-11-25 Network Appliance, Inc. Writable virtual disk of read-only snapshot file objects
US7895575B2 (en) 2005-08-19 2011-02-22 Electronics And Telecommunications Research Institute Apparatus and method for generating test driver
KR100912126B1 (ko) 2006-12-04 2009-08-13 한국전자통신연구원 객체 기반 파일 시스템의 파일셋의 스냅샷 제공 방법
US20160210306A1 (en) * 2015-01-15 2016-07-21 Commvault Systems, Inc. Managing structured data in a data storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030158834A1 (en) * 2002-02-15 2003-08-21 International Business Machines Corporation Writable file system snapshot with ditto address feature
US20050065986A1 (en) * 2003-09-23 2005-03-24 Peter Bixby Maintenance of a file version set including read-only and read-write snapshot copies of a production file
US20070260830A1 (en) * 2006-05-08 2007-11-08 Sorin Faibish Distributed maintenance of snapshot copies by a primary processor managing metadata and a secondary processor providing read-write access to a production dataset
US20140149698A1 (en) * 2012-11-29 2014-05-29 Infinidat Ltd. Storage System Capable of Managing a Plurality of Snapshot Families and Method of Operating Thereof
US20140258672A1 (en) * 2013-03-08 2014-09-11 Microsoft Corporation Demand determination for data blocks

Also Published As

Publication number Publication date
US20160274980A1 (en) 2016-09-22
KR102378367B1 (ko) 2022-03-24
US10289497B2 (en) 2019-05-14

Similar Documents

Publication Publication Date Title
KR102378367B1 (ko) 분산 파일 시스템
US20200012568A1 (en) Scalable log-based continuous data protection for distributed databases
TWI451243B (zh) 單一架構下進行資料卷複製的方法及其裝置
US10853182B1 (en) Scalable log-based secondary indexes for non-relational databases
US9092153B2 (en) Method for creating clone file, and file system adopting the same
US9116913B2 (en) File storage system and file cloning method
US8255420B2 (en) Distributed storage
JP4919851B2 (ja) ファイルレベルの仮想化を行う中間装置
WO2012140957A1 (ja) 情報記憶システム及びそのデータ複製方法
US8135918B1 (en) Data de-duplication for iSCSI
WO2012137262A1 (en) Information processing system and data processing method
JP2012523023A (ja) 重複したデータを排除するストレージシステム
JP5701398B2 (ja) 計算機システム、データ管理方法及びプログラム
JP2007079774A (ja) ファイルシステムの構築方法
WO2014183708A1 (zh) 一种实现分布式文件系统块存储的方法及系统
US8332497B1 (en) Generic resynchronization between persistent management store and dynamic configuration
JP2009259007A (ja) 分散格納方法、分散格納システム及び分散格納装置
US20180107404A1 (en) Garbage collection system and process
JP2009064160A (ja) 計算機システム、管理計算機及びデータ管理方法
WO2017145214A1 (ja) センタノードからエッジノードにデータを転送する計算機システム
KR20150010242A (ko) 비대칭 파일 시스템의 데이터 복제 방법
KR102169867B1 (ko) 파일 수준의 스냅샷을 제공하는 분산 파일 시스템 및 그 동작 방법
JP6955588B2 (ja) データ分析を支援するシステム及び方法
US7130931B2 (en) Method, system, and article of manufacture for selecting replication volumes
US7251645B1 (en) Data processing apparatus, data processing system, data processing method, and recording medium

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant