KR20150087622A - Distributed file system for providing the file-based snapshot and method thereof - Google Patents

Distributed file system for providing the file-based snapshot and method thereof Download PDF

Info

Publication number
KR20150087622A
KR20150087622A KR1020140007799A KR20140007799A KR20150087622A KR 20150087622 A KR20150087622 A KR 20150087622A KR 1020140007799 A KR1020140007799 A KR 1020140007799A KR 20140007799 A KR20140007799 A KR 20140007799A KR 20150087622 A KR20150087622 A KR 20150087622A
Authority
KR
South Korea
Prior art keywords
snapshot
file
chunk
original
file system
Prior art date
Application number
KR1020140007799A
Other languages
Korean (ko)
Other versions
KR102169867B1 (en
Inventor
김영철
이상민
김영균
최완
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020140007799A priority Critical patent/KR102169867B1/en
Publication of KR20150087622A publication Critical patent/KR20150087622A/en
Application granted granted Critical
Publication of KR102169867B1 publication Critical patent/KR102169867B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Abstract

The present invention relates to a distributed file system and operating method thereof. The distributed file system includes: a metadata server which manages the metadata information of files and the metadata information of snap shot files at the file level; and multiple data servers which divide the file data in chunk units to store and manage the file data, stores and manages the delta chunks of the snapshot files for the chunks of original files, and manages the input and output of the snapshot files or the original files.

Description

파일 수준의 스냅샷을 제공하는 분산 파일 시스템 및 그 동작 방법{Distributed file system for providing the file-based snapshot and method thereof}[0001] The present invention relates to a distributed file system providing file-level snapshots,

본 발명은 분산 파일 시스템에 관한 것으로, 특히 파일 수준의 스냅샷을 제공하는 분산 파일 시스템의 기술에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a distributed file system, and more particularly, to a distributed file system that provides file-level snapshots.

인터넷 비즈니스 응용 환경에서는 대용량 데이터의 처리와 저장 공간의 확장뿐만 아니라 시스템의 안정성과 가용성이 요구된다. 하지만, 대량의 데이터를 백업하기 위해서는 오랜 시간이 필요하고 이 시간 동안 서비스를 중단해야 하는 것은 용납될 수 없다. 따라서, 서비스가 제공되고 있는 동안에도 백업을 제공할 수 있는 온라인 백업(on-line)이 요구되며, 이러한 온라인 백업을 지원하기 위해서는 스냅샷 기법이 필요하다. 즉, 스냅샷은 특정 시점의 파일 시스템 또는 볼륨 이미지를 유지할 수 있는 기법으로, 서비스를 제공하는 동시에 스냅샷을 통한 온라인 백업을 수행할 수 있도록 한다In the Internet business application environment, the stability and the availability of the system are required as well as the processing of large amounts of data and expansion of the storage space. However, it takes a long time to back up a large amount of data and it is unacceptable to stop service during this time. Therefore, an online backup (on-line) is required to provide a backup while the service is being provided, and a snapshot technique is needed to support such online backup. In other words, snapshots are a technique for maintaining a point-in-time file system or volume image, allowing you to perform online backups via snapshots while providing services

한편, 일반적인 파일 시스템에서는 파일 시스템 또는 볼륨 수준에서 스냅샷을 제공하고 있으며, 파일의 메타데이터와 데이터를 함께 관리하는 구조를 갖는다. 여기서, 스냅샷은 임의의 시점에 파일 시스템 또는 볼륨 수준에서의 현재 상태를 보관함으로써, 온라인 상태에서 백업을 할 수 있도록 지원하기 위해 사용된다. 또한, 최근에는 가상 데스크탑 환경에서 가상 데이크탑 이미지 또는 가상 디스크에 대한 스냅샷을 지원함으로써, 특정 시점의 스냅샷 상태로 복귀할 수 있도록 하거나, 가상 데스크탑 이미지에 대한 스냅샷을 생성하여 빠르게 가상 데스크탑 이미지를 배포하기 위해 사용하고 있다.On the other hand, a general file system provides snapshots at the file system or volume level, and has a structure for managing file metadata and data together. Here, a snapshot is used to support a backup in an online state by keeping the current state at the file system or volume level at a certain point in time. In addition, recent support for snapshots of virtual desktop images or virtual disks in a virtual desktop environment enables them to return to snapshot status at a specific point in time, or snapshots of virtual desktop images to quickly create virtual desktop images Is used for distribution.

하지만, 최근의 대용량 파일 시스템들은 대부분 파일의 메타데이터와 데이터를 메타데이터 서버와 데이터 서버들로 분리하여 저장하고 관리하는 분산 파일 시스템의 구조를 가진다. 이에 따라, 파일 수준에서 스냅샷을 지원할 수 있는 방법이 요구된다. However, recent large-capacity file systems mostly have a distributed file system structure in which metadata and data of files are separated and managed by metadata server and data server. As a result, there is a need for a way to support snapshots at the file level.

즉, 비대칭 구조를 갖는 분산 파일 시스템에서 파일 수준으로 스냅샷을 제공하기 위해서는 메타데이터 서버에서 원본 파일과 스냅샷 파일에 대한 메타데이터를 관리하며, 데이터 서버들에서 원본 파일과 스냅샷 파일에 대한 데이터를 관리하는 방법이 요구된다. 또한, 원본 파일과 스냅샷 파일에 대한 일관성을 보장하여야만 한다.To provide file-level snapshots in a distributed file system with an asymmetric structure, the metadata server manages the metadata of the original files and the snapshot files. In the data servers, data about the original file and the snapshot file Is required. In addition, consistency must be ensured for source files and snapshot files.

본 발명은 분산 파일 시스템에서 파일 수준으로 읽기 전용 또는 쓰기 가능한 스냅샷을 지원할 수 있도록 하는 기술적 방안을 제공함을 목적으로 한다.The present invention aims to provide a technical solution for supporting read-only or writable snapshots at a file level in a distributed file system.

전술한 과제를 달성하기 위한 본 발명의 일 양상에 따른 분산 파일 시스템은 파일의 메타데이터 정보를 관리하되, 파일 수준에서 스냅샷 파일에 대한 메타데이터 정보를 관리하는 메타데이터 서버, 및 상기 파일의 데이터를 청크 단위로 분할하여 저장 및 관리하되, 원본 파일의 청크에 대해 상기 스냅샷 파일의 델타 청크를 저장 및 관리하며, 상기 원본 파일 또는 상기 스냅샷 파일에 대한 입출력을 관리하는 다수의 데이터 서버를 포함한다.According to an aspect of the present invention, there is provided a distributed file system including a metadata server for managing metadata information of a file, managing metadata information for a snapshot file at a file level, A plurality of data servers for storing and managing the chunks of the original file, and for storing and managing the delta chunks of the snapshot files, and managing input / output of the original files or the snapshot files do.

본 발명에 따르면, 메타데이터 서버에서 원본 파일과 스냅샷 파일에 대한 메타데이터를 공유하면서 일관성을 보장하여, 보다 빠른 스냅샷 생성과 관리를 지원하며, 데이터 서버에서는 원본 파일 또는 스냅샷 파일에 대한 데이터 입출력과 갱신 요청을 스냅샷의 특성에 따라 효율적으로 처리함으로써, 메타데이터 서버 또는 클라이언트에 투명한 처리를 지원할 수 있다.According to the present invention, the meta data server shares metadata with respect to the original file and the snapshot file to assure consistency, thereby supporting faster snapshot creation and management. In the data server, data about the original file or the snapshot file By processing I / O and update requests efficiently according to the characteristics of the snapshot, transparent processing can be supported for the metadata server or client.

도 1은 본 발명의 일 실시예에 따른 분산 파일 시스템의 구성을 도시한 블록도.
도 2는 본 발명의 실시예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 개념적으로 도시한 도면.
도 3은 본 발명의 실시예에 따른 분산 파일 시스템의 메타데이터 서버에서 관리하는 파일 수준의 읽기 전용 스냅샷 파일의 메타데이터 구조를 개략적으로 도시한 도면.
도 4는 본 발명의 실시 예에 따른 분산 파일 시스템에서 읽기 전용 스냅샷 파일의 델타 청크를 식별하기 위한 식별자 구성 정보를 개략적으로 도시한 도면.
도 5는 본 발명의 실시 예에 따른 분산 파일 시스템에서 갱신 데이터 정보를 익스텐트 단위로 추적하기 위한 원본 청크 익스텐트 변경맵을 개략적으로 도시한 도면.
도 6은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 생성하는 처리 과정을 도시한 흐름도.
도 7은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 삭제하는 처리 과정을 도시한 흐름도.
도 8은 본 발명의 실시 예에 따른 분산 파일 시스템에서 원본 파일에 대한 쓰기 처리 과정을 도시한 흐름도.
도 9는 본 발명의 실시 예에 따른 분산 파일 시스템에서 원본 파일에 대한 읽기 처리 과정을 도시한 흐름도.
도 10은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일에 대한 읽기 처리 과정을 도시한 흐름도.
도 11은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일을 개념적으로 도시한 도면.
도 12는 본 발명의 실시 예에 따른 분산 파일 시스템의 메타데이터 서버에서 관리하는 파일 수준의 쓰기 가능 스냅샷 파일의 메타데이터 구조를 개략적으로 도시한 도면.
도 13은 본 발명의 실시 예에 따른 분산 파일 시스템에서 쓰기 가능 스냅샷 파일의 델타 청크를 식별하기 위한 식별자 구성 정보를 개략적으로 도시한 도면.
도 14는 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일을 생성하는 처리 과정을 도시한 흐름도.
도 15는 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 쓰기 가능 스냅샷 파일로 변환하는 처리 과정을 도시한 흐름도.
도 16은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일에 대한 쓰기 처리 과정을 도시한 흐름도.
도 17은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일에 대한 읽기 처리 과정을 도시한 흐름도.
1 is a block diagram showing a configuration of a distributed file system according to an embodiment of the present invention;
FIG. 2 conceptually illustrates a file-level read-only snapshot file in a distributed file system according to an embodiment of the present invention; FIG.
FIG. 3 is a view schematically showing a metadata structure of a file-level read-only snapshot file managed by a metadata server of a distributed file system according to an embodiment of the present invention; FIG.
FIG. 4 is a diagram schematically illustrating identifier configuration information for identifying a delta chunk of a read-only snapshot file in a distributed file system according to an embodiment of the present invention; FIG.
5 is a view schematically showing a original chunk extent change map for tracking update data information on an extent basis in a distributed file system according to an embodiment of the present invention;
FIG. 6 is a flowchart illustrating a process of generating a file-level read-only snapshot file in a distributed file system according to an embodiment of the present invention; FIG.
7 is a flowchart illustrating a process of deleting a file-level read-only snapshot file in a distributed file system according to an embodiment of the present invention;
FIG. 8 is a flowchart illustrating a write process of an original file in a distributed file system according to an embodiment of the present invention; FIG.
FIG. 9 is a flowchart illustrating a reading process of an original file in a distributed file system according to an embodiment of the present invention; FIG.
FIG. 10 is a flowchart illustrating a read process of a file-level read-only snapshot file in a distributed file system according to an embodiment of the present invention; FIG.
FIG. 11 conceptually illustrates a file-level writeable snapshot file in a distributed file system according to an embodiment of the present invention; FIG.
12 is a view schematically showing a metadata structure of a file-level writeable snapshot file managed by a metadata server of a distributed file system according to an embodiment of the present invention;
13 is a view schematically showing identifier configuration information for identifying a delta chunk of a writable snapshot file in a distributed file system according to an embodiment of the present invention;
FIG. 14 is a flowchart illustrating a process of generating a file-level writeable snapshot file in a distributed file system according to an embodiment of the present invention; FIG.
15 is a flowchart illustrating a process of converting a file-level read-only snapshot file into a writable snapshot file in a distributed file system according to an embodiment of the present invention;
FIG. 16 is a flowchart illustrating a write process for a file-level writeable snapshot file in a distributed file system according to an embodiment of the present invention; FIG.
FIG. 17 is a flowchart illustrating a read process of a file-level writeable snapshot file in a distributed file system according to an embodiment of the present invention; FIG.

전술한, 그리고 추가적인 본 발명의 양상들은 첨부된 도면을 참조하여 설명되는 바람직한 실시예들을 통하여 더욱 명백해질 것이다. 이하에서는 본 발명을 이러한 실시예를 통해 당업자가 용이하게 이해하고 재현할 수 있도록 상세히 설명하기로 한다.BRIEF DESCRIPTION OF THE DRAWINGS The foregoing and further aspects of the present invention will become more apparent from the following detailed description of preferred embodiments with reference to the accompanying drawings. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

본 발명을 구체적으로 설명하기 전, 본 발명은 파일의 메타데이터를 독립적인 메타데이터 서버에서 관리하고, 파일의 데이터를 고정된 크기의 청크 단위로 나누어서 다수의 데이터 서버에 분산하여 관리함으로써, 파일 메타데이터 접근 경로와 파일 데이터 접근 경로가 분리된 비대칭 구조를 갖는 분산 파일 시스템을 대상으로 한다. Before describing the present invention in detail, the present invention manages meta data of a file in an independent metadata server, divides the data of the file into chunks of fixed size, distributes and manages the data to a plurality of data servers, Distributed file system with asymmetric data access path and file data access path.

도 1은 본 발명의 일 실시예에 따른 분산 파일 시스템의 구성을 도시한 블록도이다. 1 is a block diagram showing a configuration of a distributed file system according to an embodiment of the present invention.

클라이언트(110)는 클라이언트 응용을 수행하고, 메타데이터 서버(120)에 저장된 파일의 메타데이터에 접근할 수 있으며, 데이터 서버(S140)에 저장된 파일의 데이터를 입출력할 수 있다. 즉, 클라이언트(110)가 파일에 접근하기 위해서는, 먼저 메타데이터 서버(120)에 있는 파일 메타데이터에 접근하여 파일 데이터가 저장되어 있는 다수의 데이터 서버(130)에 대한 정보를 얻고 나서, 실제 데이터에 대한 입출력은 다수의 데이터 서버(130)를 통하여 이루어진다.The client 110 may perform a client application, access metadata of a file stored in the metadata server 120, and input / output data of a file stored in the data server S140. That is, in order for the client 110 to access the file, first the file metadata in the metadata server 120 is accessed to obtain information about the plurality of data servers 130 in which the file data is stored, Output is performed through a plurality of data servers 130.

메타데이터 서버(120)는 파일 시스템의 모든 파일에 대한 메타데이터를 저장하고 관리하며, 모든 데이터 서버(S140)에 대한 상태 정보를 관리한다. 구체적으로, 메타데이터 서버(120)는 파일의 메타데이터 정보를 관리하되, 파일 수준에서 스냅샷 파일에 대한 메타데이터 정보를 관리한다.The metadata server 120 stores and manages metadata of all files in the file system, and manages status information on all the data servers S140. Specifically, the metadata server 120 manages the metadata information of the file, and manages the metadata information of the snapshot file at the file level.

여기서, 스냅샷은 특성에 따라 읽기 전용 스냅샷 또는 쓰기 가능 스냅샷으로 관리될 수 있으며, 두 스냅샷 모두 원본 파일 데이터에 대한 메타데이터를 공유한다. 읽기 전용 스냅샷은 스냅샷을 생성한 시점에서의 파일 데이터를 읽기만 가능하며, 원본 파일은 계속적으로 변경된다. 쓰기 가능 스냅샷은 스냅샷이 생성된 이후에 스냅샷에 대한 읽기 쓰기가 가능할 수 있다. 따라서, 원본 파일과 스냅샷이 파일 데이터에 대한 메타데이터를 공유하지만, 원본 파일에 대한 변경이 스냅샷에 반영되지 않으며, 스냅샷에 대한 변경이 원본 파일에 반영되지 않는 특성을 갖는다. Here, snapshots can be managed as read-only snapshots or writable snapshots, depending on their characteristics, and both snapshots share metadata about the original file data. Read-only snapshots can only read file data at the point of creation of the snapshot, and the original file is continuously changed. Write-enabled snapshots can be read-write to the snapshot after the snapshot is created. Thus, although the original file and snapshot share metadata about the file data, changes to the original file are not reflected in the snapshot, and changes to the snapshot are not reflected in the original file.

데이터 서버(S140)는 파일의 데이터 청크를 저장 및 관리하고, 주기적으로 메타데이터 서버(120)에게 자신의 상태 정보를 보고한다. 구체적으로, 데이터 서버(130)는 파일의 데이터를 청크 단위로 분할하여 저장 및 관리하되, 원본 파일의 청크에 대해 스냅샷 파일의 델타 청크를 저장 및 관리하며, 원본 파일 또는 스냅샷 파일에 대한 입출력을 관리한다. 바람직하게, 데이터 서버(130)는 이러한 읽기 전용 스냅샷 또는 쓰기 가능 스냅샷의 특성을 반영하여 파일의 청크 데이터에 대한 입출력을 관리한다.The data server (S140) stores and manages data chunks of the file, and periodically reports its status information to the metadata server (120). Specifically, the data server 130 stores and manages the data of the file in units of chunks, and stores and manages the delta chunks of the snapshot files with respect to the chunks of the original files. The input / . Preferably, the data server 130 manages the input and output of chunks of data in the file, reflecting the characteristics of these read-only snapshots or writable snapshots.

분산 파일 시스템(10)의 데이터 서버(S140)는 다수 개로 구성하는 것이 바람직하며, 클라이언트(110), 메타데이터 서버(120) 및 다수의 데이터 서버(S140)는 네트워크로 상호 연결된다.
The data server S140 of the distributed file system 10 is preferably composed of a plurality of data servers and the client 110, the metadata server 120 and the plurality of data servers S140 are interconnected via a network.

이하, 도 2 내지 도 10을 참조하여 파일 수준의 읽기 전용 스냅샷을 제공하는 분산 파일 시스템 및 그 방법에 대해 설명한다. Hereinafter, a distributed file system and its method for providing a file-level read-only snapshot will be described with reference to FIGS. 2 to 10. FIG.

도 2는 본 발명의 실시예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 개념적으로 도시한 도면이다.FIG. 2 conceptually illustrates a file-level read-only snapshot file in a distributed file system according to an embodiment of the present invention.

파일 수준의 읽기 전용 스냅샷 파일은 원본 파일에 대한 스냅샷을 생성하는 시점의 상태를 보관한다. 따라서 스냅샷을 생성한 이후에 원본 파일이 계속해서 갱신되더라도 특정 스냅샷을 생성한 시점의 파일 상태로 복귀할 수 있도록 한다. 읽기 전용 스냅샷은 시간 상에서 계속해서 생성할 수 있으며 각각의 스냅샷은 스냅샷을 생성하는 시점에서의 원본 파일의 상태를 보관하게 된다. 이를 위해, 읽기 전용 스냅샷(203,205,207)은 원본 파일과 동일하게 파일 형태로 생성된다. 그리고, 데이터를 저장하는 청크에 대해서는 스냅샷을 생성한 이후에는 데이터 갱신이 발생하면 원본 청크(202)에서 갱신하지 않고 스냅샷 이후에 갱신되는 데이터만을 저장하는 스냅샷 델타 청크(104,106,108)에 저장됨으로써, 특정 스냅샷으로 복귀할 때 스냅샷 시점의 데이터에 접근할 수 있도록 한다.A file-level read-only snapshot file holds the state at the time the snapshot is taken of the original file. Therefore, even if the original file continues to be updated after the snapshot is created, it can be restored to the state of the file at the time the specific snapshot was created. Read-only snapshots can be created continuously over time, and each snapshot retains the state of the original file at the time the snapshot is created. To this end, the read-only snapshots 203, 205, and 207 are created in the same file format as the original file. The chunks storing the data are stored in the snapshot delta chunks 104, 106, and 108, which store only the data updated after the snapshot without updating the original chunks 202 when data updates occur after the snapshot is generated , Allowing access to the data at the time of the snapshot when returning to a specific snapshot.

도 3은 본 발명의 실시예에 따른 분산 파일 시스템의 메타데이터 서버에서 관리하는 파일 수준의 읽기 전용 스냅샷 파일의 메타데이터 구조를 개략적으로 도시한 도면이다.FIG. 3 is a diagram schematically illustrating a metadata structure of a file-level read-only snapshot file managed by a metadata server of a distributed file system according to an embodiment of the present invention.

원본 파일과 읽기 전용 스냅샷 파일에 대한 메타데이터 정보는 메타데이터 서버(120)에서 inode 구조(301,306,311,316)로 관리된다. inode 구조에는 inode 속성 정보(302,307,312,317)와 데이터 서버(130)에 분할되어 저장되어 있는 청크 레이아웃 정보를 포함한다. 여기서, inode 속성 정보로는 inode 식별자, 파일 타입, 파일 모드, 파일 크기, 파일 소유권, 파일 접근/변경/갱신 시간 등을 갖는다. 또한, 청크 레이아웃 정보는 청크 개수, 청크 크기, 청크 복제본 수에 대한 정보를 갖는 청크 레이아웃 헤더 정보(304,309,314,319)와 청크가 저장된 디스크 식별자, 청크 식별자, 청크 타입, 청크 버전 정보를 갖는 청크 정보(305,310,315,320)로 구성된다. 이외에 원본 파일에서는 원본 파일에서 생성한 읽기 전용 스냅샷 파일의 inode 정보가 유지되는(303) 반면에, 읽기 전용 스냅샷 파일의 inode에서는 원본 파일의 inode 정보를 유지됨으로써(308,313,318), 원본 파일과 스냅샷 파일과의 관계가 설정된한다.Metadata information about the original file and the read-only snapshot file is managed by the inode structure 301, 306, 311, 316 in the metadata server 120. The inode structure includes inode attribute information (302, 307, 312, 317) and chunk layout information that is divided and stored in the data server 130. Here, the inode attribute information includes an inode identifier, a file type, a file mode, a file size, a file ownership, a file access / change / update time, and the like. The chunk layout information includes chunk layout header information 304, 309, 314, 319 having information on the number of chunks, chunk size, and number of chunk replicas, chunk information 305, 310, 315, 320 having chunk identifier, chunk identifier, chunk type, . In addition, in the original file, the inode information of the read-only snapshot file generated from the original file is maintained (303), whereas the inode of the read-only snapshot file retains the inode information of the original file (308, 313, 318) The relationship with the shot file is set.

도 4는 본 발명의 실시 예에 따른 분산 파일 시스템에서 읽기 전용 스냅샷 파일의 델타 청크를 식별하기 위한 식별자 구성 정보를 개략적으로 도시한 도면이다.4 is a diagram schematically showing identifier configuration information for identifying a delta chunk of a read-only snapshot file in a distributed file system according to an embodiment of the present invention.

구체적으로, 도 4는 분산 파일 시스템(10)에서 파일 수준의 읽기 전용 스냅샷 파일을 생성한 이후에 원본 파일의 청크가 갱신되는 경우, 갱신 데이터를 저장하는 읽기 전용 스냅샷 파일의 델타 청크를 식별하기 위한 식별자 구성 정보이다. 여기서, 읽기 전용 스냅샷 파일의 델타 청크는 원본 파일의 청크와 같이 별도의 청크 식별자를 할당하지 않고, 원본 청크의 식별자(401)와 읽기 전용 스냅샷 번호(402)를 이용하여 식별하도록 한다. 따라서, 읽기 전용 스냅샷 파일의 청크 정보에서 청크가 저장된 디스크 식별자와 청크 식별자는 원본 파일의 청크와 동일하게 유지된다.Specifically, FIG. 4 identifies a delta chunk of a read-only snapshot file that stores update data when a chunk of the original file is updated after a file-level read-only snapshot file is created in the distributed file system 10 Is the identifier configuration information to be used. Here, the delta chunk of the read-only snapshot file is identified by using the identifier 401 of the original chunk and the read-only snapshot number 402 without allocating a separate chunk identifier as in the chunk of the original file. Therefore, in the chunk information of the read-only snapshot file, the disk identifier and the chunk identifier where the chunk is stored remain the same as the chunk of the original file.

도 5는 본 발명의 실시 예에 따른 분산 파일 시스템에서 갱신 데이터 정보를 익스텐트 단위로 추적하기 위한 원본 청크 익스텐트 변경맵을 개략적으로 도시한 도면이다.FIG. 5 is a diagram schematically showing a original chunk extent change map for tracking update data information on an extent basis in a distributed file system according to an embodiment of the present invention.

구체적으로, 도 5는 분산 파일 시스템(10)에서 파일 수준의 읽기 전용 스냅샷 파일을 생성한 이후에 원본 파일의 청크가 갱신되는 경우, 갱신 데이터 정보를 익스텐트 단위로 추적하기 위한 원본 청크 익스텐트 변경맵이다. 분산 파일 시스템(10)은 읽기 전용 스냅샷 파일을 생성한 이후에 원본 파일의 청크가 갱신되는 경우, 스냅샷 델타 청크에 갱신되는 데이터를 저장한다. 여기서, 갱신은 익스텐트(extent) 단위로 copy-on-write 방법을 사용한다. Specifically, FIG. 5 shows an original chunk extent change map for tracking update data information in units of extents when a chunk of an original file is updated after a file-level read-only snapshot file is created in the distributed file system 10 to be. The distributed file system 10 stores data that is updated in the snapshot delta chunk when a chunk of the original file is updated after a read-only snapshot file is created. Here, the update uses the copy-on-write method in units of extent.

즉, 분산 파일 시스템(10)은 청크를 익스텐트 단위로 분할하였을 때 갱신 데이터가 포함되는 익스텐트에 대해 원본 청크 또는 이전 읽기 전용 스냅샷의 델타 청크에서 익스텐트를 읽어서 데이터를 갱신하고, 현재 읽기 전용 스냅샷 델타 청크에 저장한다. 이때, 청크를 구성하는 익스텐트들에 대해 익스텐트가 어떤 읽기 전용 스냅샷 번호 이후에 변경되었는지를 추적하기 위해, 분산 파일 시스템(10)은 익스텐트 번호와 읽기 전용 스냅샷 번호(502)를 관리하는 원본 청크 익스텐트 변경맵을 원본 청크 끝에 유지한다. 또한, 분산 파일 시스템(10)은 원본 청크 익스텐트 변경맵에는 마지막으로 생성된 읽기 전용 스냅샷 번호(501)도 함께 유지한다.That is, when the chunk is divided into extent units, the distributed file system 10 updates the data by reading the extent from the original chunk or the delta chunk of the previous read-only snapshot, updating the current read-only snapshot Store in delta chunk. At this time, in order to track which extents are changed after a certain read-only snapshot number with respect to the extents constituting the chunk, the distributed file system 10 stores the extent number and the read-only snapshot number 502, Keeps the extent change map at the end of the original chunk. The distributed file system 10 also keeps the originally created read-only snapshot number 501 in the original chunk extent change map.

도 6은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 생성하는 처리 과정을 도시한 흐름도이다.6 is a flowchart illustrating a process of generating a file-level read-only snapshot file in the distributed file system according to the embodiment of the present invention.

먼저, 분산 파일 시스템(10)은 원본 파일 inode의 잠금을 획득한다(S601). 이는, 원본 파일의 읽기 전용 스냅샷을 생성하기 위해서 원본 파일 inode의 잠금을 획득하여 스냅샷 생성에 대한 일관성을 보장한다. 잠금을 획득한 이후, 분산 파일 시스템(10)은 스냅샷 파일 inode를 생성하고, 읽기 전용 스냅샷 번호를 부여한 다음, 스냅샷 파일의 모드를 읽기 전용으로 설정한다(S602). 다음으로, 분산 파일 시스템(10)은 원본 파일 또는 이전에 생성된 읽기 전용 스냅샷의 청크 레이아웃 정보를 새로 생성된 읽기 전용 스냅샷의 청크 레이아웃 정보에 복사한다(S603). First, the distributed file system 10 acquires the lock of the original file inode (S601). This ensures the consistency of snapshot creation by acquiring a lock on the original file inode to create a read-only snapshot of the original file. After acquiring the lock, the distributed file system 10 creates a snapshot file inode, assigns a read-only snapshot number, and sets the mode of the snapshot file to read-only (S602). Next, the distributed file system 10 copies the chunk layout information of the original file or the previously created read-only snapshot to the chunk layout information of the newly created read-only snapshot (S603).

또한, 분산 파일 시스템(10)은 원본 파일의 청크를 저장하고 있는 모든 데이터 서버들(130)에서 원본 청크 또는 이전에 생성된 스냅샷 델타 청크의 잠금을 획득하고(S604), 새로 생성된 읽기 전용 스냅샷에 대한 델타 청크를 생성한다(S605). In addition, the distributed file system 10 acquires a lock of the original chunk or the previously created snapshot delta chunk in all the data servers 130 storing the chunk of the original file (S604) Delta chunks for the snapshot are generated (S605).

이때 만약, 원본 청크 또는 이전 스냅샷 델타 청크에 대한 데이터 갱신이 있는 경우, 분산 파일 시스템(10)은 새로 생성된 스냅샷 델타 청크를 저장하고 원본 청크의 익스텐트 변경맵에 반영한다(S606). 이후에 원본 청크 또는 이전에 생성된 스냅샷 델타 청크의 잠금을 해제한다(S607). At this time, if there is data update for the original chunk or the previous snapshot delta chunk, the distributed file system 10 stores the newly created snapshot delta chunk and reflects it in the extent change map of the original chunk (S606). Thereafter, the original chunk or the previously created snapshot delta chunk is unlocked (S607).

나아가, 분산 파일 시스템(10)은 메타데이터 서버(120)에서 새로 생성한 스냅샷 파일의 inode에 원본 파일의 inode 정보를 저장하고(S608), 원본 파일의 inode에는 새로 생성한 읽기 전용 스냅샷 파일의 inode 식별자와 스냅샷 번호를 저장한다(S609). 마지막으로, 분산 파일 시스템(10)은 원본 파일 inode의 잠금을 해제하여(S610), 파일 수준의 읽기 전용 스냅샷 파일을 생성하는 처리 과정을 종료한다.In addition, the distributed file system 10 stores the inode information of the original file in the inode of the snapshot file newly created by the metadata server 120 (S608), and the newly created read-only snapshot file And stores the inode identifier and the snapshot number (S609). Finally, the distributed file system 10 unlocks the original file inode (S610) and ends the process of creating a file-level read-only snapshot file.

도 7은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 삭제하는 처리 과정을 도시한 흐름도이다.7 is a flowchart illustrating a process of deleting a file-level read-only snapshot file in the distributed file system according to the embodiment of the present invention.

읽기 전용 스냅샷 파일을 삭제하기 위해서, 분산 파일 시스템(10)은 삭제할 스냅샷 파일이 원본 파일에 대해 첫번째로 생성된 스냅샷인지에 따라 다른 처리 과정으로 수행한다(S701). In order to delete the read-only snapshot file, the distributed file system 10 performs a different process according to whether the snapshot file to be deleted is the first snapshot created for the original file (S701).

먼저 삭제하고자 하는 스냅샷이 첫번째로 생성된 읽기 전용 스냅샷 파일일 경우에는, 분산 파일 시스템(10)은 청크를 저장하고 있는 데이터 서버(130)에서 원본 청크의 익스텐트 변경맵을 분석하여(S702), 삭제할 스냅샷이 생성된 이후에 변경된 데이터를 저장하고 있는 스냅샷 델타 청크를 원본 청크와 병합한다(S703). 병합한 후, 분산 파일 시스템(10)은 데이터 서버(130)에서 삭제 대상인 읽기 전용 스냅샷 델타 청크를 삭제한다(S704). If the first snapshot to be deleted is the first created read-only snapshot file, the distributed file system 10 analyzes the extent change map of the original chunk in the data server 130 storing the chunk in step S702, , The snapshot delta chunk storing the changed data after the snapshot to be deleted is created is merged with the original chunk (S703). After merging, the distributed file system 10 deletes the read-only snapshot delta chunk to be deleted from the data server 130 (S704).

만약, 삭제하고자 하는 스냅샷이 첫번째로 생성된 읽기 전용 스냅샷이 아닌 경우, 분산 파일 시스템(10)은 청크를 저장하고 있는 데이터 서버(130)에서 원본 청크의 익스텐트 변경맵을 분석하여(S705), 삭제할 스냅샷이 생성된 이후에 변경된 데이터를 저장하고 있는 스냅샷 델타 청크와 삭제 대상 스냅샷 보다 이전에 생성된 스냅샷 이후에 변경된 데이터를 저장하고 있는 스냅샷 델타 청크를 병합한다(S706). 병합한 후, 분산 파일 시스템(10)의 데이터 서버(130)에서는 삭제 대상인 읽기 전용 스냅샷 델타 청크를 삭제한다(S707).If the snapshot to be deleted is not the firstly created read-only snapshot, the distributed file system 10 analyzes the extent change map of the original chunk in the data server 130 storing the chunk (S705) The snapshot delta chunk storing the changed data after the snapshot to be deleted is created, and the snapshot delta chunk storing the changed data after the snapshot created before the deletion target snapshot are merged (S706). After merging, the data server 130 of the distributed file system 10 deletes the read-only snapshot delta chunk to be deleted (S707).

이러한 과정 후에, 분산 파일 시스템(10)의 데이터 서버(130)에서는 원본 청크의 익스텐트 변경맵의 삭제할 스냅샷 번호를 초기화하거나, 이전 스냅샷 번호로 변경 및 저장한다(S708). 그리고, 분산 파일 시스템(10)은 원본 파일의 inode에서 삭제 대상인 읽기 전용 스냅샷 inode 정보를 삭제한다(S709). 마지막으로, 분산 파일 시스템(10)은 스냅샷 파일의 inode를 삭제하여(S710), 파일 수준의 읽기 전용 스냅샷 파일을 삭제하는 처리 과정을 종료한다.After this process, the data server 130 of the distributed file system 10 initializes the snapshot number to be deleted of the extent change map of the original chunk, or changes and stores the snapshot number to the previous snapshot number (S708). Then, the distributed file system 10 deletes the read-only snapshot inode information to be deleted from the inode of the original file (S709). Finally, the distributed file system 10 deletes the inode of the snapshot file (S710) and ends the process of deleting the file-level read-only snapshot file.

도 8은 본 발명의 실시 예에 따른 분산 파일 시스템에서 원본 파일에 대한 쓰기 처리 과정을 도시한 흐름도이다. 구체적으로, 분산 파일 시스템(10)은 파일 수준의 읽기 전용 스냅샷 파일을 생성한 이후에, 클라이언트(110)에서 원본 파일에 데이터를 쓸 수 있다. 8 is a flowchart illustrating a write process of an original file in a distributed file system according to an embodiment of the present invention. Specifically, the distributed file system 10 can write data to the original file from the client 110 after creating the file-level read-only snapshot file.

이를 위해서 먼저, 분산 파일 시스템(10)은 클라이언트(110)에서 메타데이터 서버(120)로부터 원본 파일의 청크 레이아웃 정보를 요청하여 받아온다(S801). 그리고, 클라이언트(110)는 데이터를 쓸 위치의 청크를 저장하고 있는 데이터 서버(130)에 데이터 쓰기를 요청한다(S802). 그러면, 분산 파일 시스템(10)의 데이터 서버(130)에서는 먼저 원본 청크의 익스텐트 변경맵을 분석하여(S803), 청크에서 데이터를 쓸 위치의 익스텐트가 변경되었는지를 검사한다(S804).To this end, the distributed file system 10 requests and receives chunk layout information of an original file from the metadata server 120 in the client 110 (S801). Then, the client 110 requests the data server 130 storing the chunk of the data write location to write data (S802). Then, the data server 130 of the distributed file system 10 first analyzes the extent change map of the original chunk (S803) and checks whether the extent of the data write location in the chunk is changed (S804).

만약 익스텐트가 변경되었으면, 분산 파일 시스템(10)은 마지막 변경 데이터를 가지고 있는 읽기 전용 스냅샷 델타 청크와 현재(마지막) 읽기 전용 스냅샷 델타 청크의 잠금을 획득한다(S805). 분산 파일 시스템(10)은 마지막 변경 스냅샷 델타 청크에서 현재 스냅샷 델타 청크로 익스텐트 단위의 copy-on-write를 수행한 후(S806), 마지막 변경 스냅샷 델타 청크와 현재 스냅샷 델타 청크의 잠금을 해제한다(S807). If the extent has changed, the distributed file system 10 obtains a lock on the read-only snapshot delta chunk having the last change data and the current (last) read-only snapshot delta chunk (S805). The distributed file system 10 performs an extent-by-extent copy-on-write from the last changed snapshot delta chunk to the current snapshot delta chunk (S806), and then locks the last changed snapshot delta chunk and the current snapshot delta chunk (S807).

만약, 익스텐트가 변경되지 않았으면 원본 청크에서 한번도 변경되지 않았다는 것을 의미하므로, 분산 파일 시스템(10)은 원본 청크와 현재 스냅샷 델타 청크의 잠금을 획득한다(S808). 분산 파일 시스템(10)은 원본 청크에서 현재 스냅샷 델타 청크로의 copy-on-write를 수행한 후(S809), 원본 청크와 현재 스냅샷 델타 청크의 잠금을 해제한다(S810).If the extent has not been changed, it means that the original chunk has not changed at all, so the distributed file system 10 obtains the lock of the original chunk and the current snapshot delta chunk (S808). The distributed file system 10 performs copy-on-write from the original chunk to the current snapshot delta chunk (S809), and then unlocks the original chunk and the current snapshot delta chunk (S810).

이후, 분산 파일 시스템(10)은 원본 청크의 익스텐트 변경맵에서 익스텐트에 대해 마지막(현재) 읽기 전용 스냅샷 번호를 설정함으로써, 마지막으로 변경된 위치를 추적할 수 있게 된다(S811).Thereafter, the distributed file system 10 is able to track the last changed location by setting the last (current) read-only snapshot number for the extent in the extent change map of the original chunk (S811).

도 9는 본 발명의 실시 예에 따른 분산 파일 시스템에서 원본 파일에 대한 읽기 처리 과정을 도시한 흐름도이다. 구체적으로, 분산 파일 시스템(10)은 파일 수준의 읽기 전용 스냅샷 파일을 생성한 이후, 원본 파일에 대한 읽기 처리 과정을 수행할 수 있다.9 is a flowchart illustrating a reading process of an original file in a distributed file system according to an embodiment of the present invention. Specifically, the distributed file system 10 can create a file-level read-only snapshot file and then perform a read process on the original file.

읽기 전용 스냅샷 파일 생성한 이후에 원본 파일을 읽을 때, 분산 파일 시스템(10)은 먼저 클라이언트(110)에서 메타데이터 서버(120)로부터 원본 파일의 청크 레이아웃 정보를 요청하여 받아온다(S901). 또한, 분산 파일 시스템(10)의 클라이언트(110)에서는 청크 레이아웃에서 읽을 데이터를 저장하고 있는 데이터 서버(130)로 데이터 읽기를 요청하게 된다(S902). 그러면, 분산 파일 시스템(10)의 데이터 서버에서는 원본 청크의 익스텐트 변경맵을 분석하여(S903), 익스텐트가 스냅샷 생성 이후에 변경되었는지를 검사한다(S904). When reading the original file after creating the read-only snapshot file, the distributed file system 10 first requests the client 110 to receive the chunk layout information of the original file from the metadata server 120 (S901). In addition, the client 110 of the distributed file system 10 requests the data server 130, which stores data to be read in the chunk layout, to read data (S902). Then, the data server of the distributed file system 10 analyzes the extent change map of the original chunk (S903), and checks whether the extent has been changed since the snapshot was created (S904).

단계 S904의 검사 결과 익스텐트가 변경되었으면, 분산 파일 시스템(10)은 마지막으로 변경된 데이터를 저장하고 있는 스냅샷 델타 청크의 잠금을 획득하고(S905), 마지막 변경 읽기 전용 스냅샷 델타 청크에서 데이터 읽기를 수행하여 클라이언트(110)에 전달한 후(S906), 마지막 변경 스냅샷 델타 청크의 잠금을 해제한다(S907).If the extent has been changed as a result of the check in step S904, the distributed file system 10 acquires the lock of the snapshot delta chunk storing the last changed data (S905) and reads the data from the last change read-only snapshot delta chunk To the client 110 (S906), and then unlocks the last changed snapshot delta chunk (S907).

만약 단계 S904의 검사 결과 익스텐트가 변경되지 않았으면, 원본 청크가 스냅샷 생성 이후에 한번도 변경되지 않은 것이므로, 분산 파일 시스템(10)은 원본 청크의 잠금을 획득하고(S908), 원본 청크에서 데이터를 읽어서 클라이언트(110)에 전달한 후(S909), 원본 청크의 잠금을 해제한다(S910).If the extent has not been changed as a result of the check in step S904, the original chunk has not been changed after the snapshot has been created. Therefore, the distributed file system 10 acquires the lock of the original chunk (S908) And transmits it to the client 110 (S909), and then unlocks the original chunk (S910).

도 10은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일에 대한 읽기 처리 과정을 도시한 흐름도이다.10 is a flowchart illustrating a read processing procedure for a file-level read-only snapshot file in the distributed file system according to the embodiment of the present invention.

구체적으로, 읽기 전용 스냅샷 파일을 읽을 때, 분산 파일 시스템(10)은 먼저 클라이언트(110)에서 메타데이터 서버(120)로부터 스냅샷 파일의 청크 레이아웃 정보를 요청하여 받아온다(S1001). 분산 파일 시스템(10)의 클라이언트(110)에서는 읽을 데이터를 저장하고 있는 데이터 서버로 데이터 읽기 요청을 전달한다(S1002). 그러면, 분산 파일 시스템(10)의 데이터 서버(130)에서는 원본 청크의 익스텐트 변경맵을 분석하여(S1003), 스냅샷 이전에 익스텐트가 변경되었는지를 검사한다(S1004). Specifically, when reading a read-only snapshot file, the distributed file system 10 first requests the client 110 to request chunk layout information of the snapshot file from the metadata server 120 (S1001). The client 110 of the distributed file system 10 transmits a data read request to the data server storing the data to be read (S1002). Then, the data server 130 of the distributed file system 10 analyzes the extent change map of the original chunk (S1003), and checks whether the extent has been changed before the snapshot (S1004).

단계 S1004의 검사 결과 익스텐트가 변경되었으면, 분산 파일 시스템(10)은 이전에 변경된 익스텐트를 저장하고 있는 스냅샷 델타 청크의 잠금을 획득하고(S1005), 이전에 변경된 익스텐트에서 데이터를 읽어서 클라이언트(110)에 전달한 후(S1006), 이전 변경된 읽기 전용 스냅샷 델타 청크의 잠금을 해제한다(S1007). If the extent of the check is changed in step S1004, the distributed file system 10 acquires the lock of the snapshot delta chunk storing the previously changed extent (S1005), reads the data from the previously changed extent, (S1006), and then unlocks the previously changed read-only snapshot delta chunk (S1007).

만약, 단계 S1004의 검사 결과 익스텐트가 변경되지 않았으면, 분산 파일 시스템(10)은 원본 청크의 잠금을 획득하고(S1008), 원본 청크에서 데이터를 읽어서 클라이언트(110)에 전달한 후(S1009), 원본 청크의 잠금을 해제한다(S1010).
If the extent has not been changed as a result of the check in step S1004, the distributed file system 10 acquires the lock of the original chunk (S1008), reads the data from the original chunk and transmits it to the client 110 (S1009) The chunk is unlocked (S1010).

이하, 도 11 내지 도 17을 참조하여 파일 수준의 쓰기 가능 스냅샷을 제공하는 분산 파일 시스템 및 그 방법에 대해 설명한다. Hereinafter, a distributed file system and its method for providing a file-level writeable snapshot will be described with reference to FIGS. 11 to 17. FIG.

도 11은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일을 개념적으로 도시한 도면이다.11 is a view conceptually showing a file-level writeable snapshot file in a distributed file system according to an embodiment of the present invention.

파일 수준의 쓰기 가능 스냅샷은 읽기 전용 스냅샷과 같이 스냅샷 생성 시점에 원본 파일과 메타데이터 정보를 공유하지만, 읽기 전용 스냅샷과는 달리 원본 파일과 독립적으로 스냅샷에 대한 읽기와 쓰기가 가능하다. 그리고, 원본 파일에 대한 변경은 쓰기 가능 스냅샷에 반영되지 않으며, 쓰기 가능 스냅샷에 대한 변경은 원본 파일에 반영되지 않는다. File-level writable snapshots, like read-only snapshots, share metadata and metadata information at the time of snapshot creation, but read and write to snapshots independent of the original file, unlike read-only snapshots Do. Changes to the original file are not reflected in the writable snapshot, and changes to the writable snapshot are not reflected in the original file.

따라서, 원본 파일(1101)의 원본 청크(1102)에 대한 변경은 읽기 전용 스냅샷 델타 청크와 같이 유지되며, 쓰기 가능 스냅샷들(1003,1005,1007)은 별도로 쓰기 가능 스냅샷 델타 청크(1004,1006,1008)를 유지하면서 쓰기 가능 스냅샷의 데이터가 변경되는 경우, 원본 청크와 읽기 전용 스냅샷 델타 청크를 이용하여 copy-on-write가 수행된다.Thus, the change to the original chunks 1102 of the original file 1101 is maintained as a read-only snapshot delta chunk, and the writable snapshots 1003, 1005, 1007 are separately maintained as writable snapshot delta chunks 1004 , 1006,1008), and the data in the writable snapshot changes, copy-on-write is performed using the original chunk and the read-only snapshot delta chunk.

도 12는 본 발명의 실시 예에 따른 분산 파일 시스템의 메타데이터 서버에서 관리하는 파일 수준의 쓰기 가능 스냅샷 파일의 메타데이터 구조를 개략적으로 도시한 도면이다.12 is a view schematically showing a metadata structure of a file-level writeable snapshot file managed by a metadata server of a distributed file system according to an embodiment of the present invention.

구체적으로, 원본 파일(1201)과 쓰기 가능 스냅샷 파일들(1206,1211,1216)은 메타데이터 서버(120)에서 inode 구조로 메타데이터가 관리된다. 이때, inode에는 inode 속성 정보(1202,1207,1212,1217)와 청크 레이아웃 정보(1204,1205,1209,1210,1214,1215,1219,1220)가 관리된다. 이러한 정보들은 읽기 전용 스냅샷 파일과 동일하다. 또한, 원본 파일 inode에서는 쓰기 가능 스냅샷에 대한 inode 정보(1203)가 유지되며, 쓰기 가능 스냅샷들에는 원본 파일의 inode 정보(1108,1113,1118)가 유지된다.Specifically, metadata of the original file 1201 and the writable snapshot files 1206, 1211, and 1216 are managed by the metadata server 120 in an inode structure. At this time, the inode attribute information 1202, 1207, 1212 and 1217 and the chunk layout information 1204, 1205, 1209, 1210, 1214, 1215, 1219 and 1220 are managed in the inode. This information is the same as a read-only snapshot file. Also, the inode information 1203 for the writable snapshot is maintained in the original file inode, and the inode information 1108, 1113, and 1118 of the original file is retained in the writable snapshots.

도 13은 본 발명의 실시 예에 따른 분산 파일 시스템에서 쓰기 가능 스냅샷 파일의 델타 청크를 식별하기 위한 식별자 구성 정보를 개략적으로 도시한 도면이다.13 is a diagram schematically showing identifier configuration information for identifying a delta chunk of a writable snapshot file in a distributed file system according to an embodiment of the present invention.

구체적으로, 도 13은 분산 파일 시스템(10)에서 파일 수준의 쓰기 가능 스냅샷 파일을 생성한 이후에 원본 파일의 청크가 갱신되는 경우, 갱신 데이터를 저장하는 쓰기 가능 스냅샷 파일의 델타 청크를 식별하기 위한 식별자 구성 정보이다. 여기서, 쓰기 가능 스냅샷 파일의 델타 청크는 원본 청크의 식별자(S1401)와 쓰기 가능 스냅샷 번호(S1402)로 구성된다. 따라서, 분산 파일 시스템(10)은 쓰기 가능 스냅샷 델타 청크를 위한 별도의 청크 식별자를 할당하지 않는다.Specifically, FIG. 13 identifies a delta chunk of a writable snapshot file that stores update data when a chunk of the original file is updated after generating a file-level writeable snapshot file in the distributed file system 10 Is the identifier configuration information to be used. Here, the delta chunk of the writable snapshot file is composed of the identifier (S1401) of the original chunk and the writable snapshot number (S1402). Thus, the distributed file system 10 does not allocate a separate chunk identifier for the writable snapshot delta chunk.

도 14는 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일을 생성하는 처리 과정을 도시한 흐름도이다.FIG. 14 is a flowchart illustrating a process of generating a file-level writeable snapshot file in the distributed file system according to an embodiment of the present invention.

구체적으로, 원본 파일에 대한 쓰기 가능 스냅샷을 생성하기 위해서, 분산 파일 시스템(10)은 먼저 원본 파일 inode의 잠금을 획득한다(S1401). 그리고, 분산 파일 시스템(10)은 쓰기 가능 스냅샷 inode를 생성하고, 쓰기 가능 스냅샷 번호를 할당한다(S1402). 또한, 분산 파일 시스템(10)은 쓰기 가능 스냅샷 inode의 청크 레이아웃 정보에 원본 파일 inode의 청크 레이아웃 정보를 복사한다(S1403). Specifically, in order to create a writable snapshot of the original file, the distributed file system 10 first acquires a lock of the original file inode (S1401). Then, the distributed file system 10 creates a writable snapshot inode and allocates a writable snapshot number (S1402). In addition, the distributed file system 10 copies the chunk layout information of the original file inode to the chunk layout information of the writable snapshot inode (S1403).

분산 파일 시스템(10)은 청크 레이아웃을 참조하여 청크를 저장하고 있는 모든 데이터 서버(130)에서 원본 청크의 잠금을 획득하고(S1404), 쓰기 가능 스냅샷 델타 청크를 생성한다(S1405). 만약, 원본 청크에 대한 데이터 쓰기가 있을 경우, 분산 파일 시스템(10)은 생성된 스냅샷 델타 청크에 원본 청크의 해당 익스텐트를 copy-on-write하고, 스냅샷 델타 청크의 익스텐트 변경 비트맵을 반영하며(S1406), 데이터 서버(130)에서 원본 청크의 잠금을 해제한다(S1407). The distributed file system 10 acquires a lock of the original chunk in all the data servers 130 storing the chunk with reference to the chunk layout (S1404), and generates a writable snapshot delta chunk (S1405). If there is a data write to the original chunk, the distributed file system 10 copies-in-write the corresponding extent of the original chunk to the generated snapshot delta chunk and reflects the extent change bitmap of the snapshot delta chunk (S1406), and the data server 130 releases the lock of the original chunk (S1407).

이후, 분산 파일 시스템(10)은 쓰기 가능 스냅샷 파일 inode에 원본 파일 inode 정보를 저장하고(S1408), 원본 파일 inode에는 새로 생성된 쓰기 가능 스냅샷 파일 inode 정보와 스냅샷 번호를 추가한다(S1409). 마지막으로, 분산 파일 시스템(10)은 원본 파일 inode의 잠금을 해제하여(S1410), 파일 수준의 쓰기 가능 스냅샷 파일을 생성하는 처리 과정을 종료한다.Thereafter, the distributed file system 10 stores the original file inode information in the writeable snapshot file inode (S1408), and adds the newly created writeable snapshot file inode information and the snapshot number to the original file inode (S1409 ). Finally, the distributed file system 10 unlocks the original file inode (S1410) and ends the process of creating a file-level writeable snapshot file.

도 15는 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 쓰기 가능 스냅샷 파일로 변환하는 처리 과정을 도시한 흐름도이다. 구체적으로, 분산 파일 시스템(10)의 쓰기 가능 스냅샷 파일은 읽기 전용 스냅샷 파일로부터 변환된 수 있다. 15 is a flowchart illustrating a process of converting a file-level read-only snapshot file into a writable snapshot file in the distributed file system according to an embodiment of the present invention. Specifically, the writable snapshot file of the distributed file system 10 may be converted from a read-only snapshot file.

이를 위해, 분산 파일 시스템(10)은 먼저 원본 파일과 읽기 전용 스냅샷 파일 inode의 잠금을 획득한다(S1501). 그런 다음, 분산 파일 시스템(10)은 읽기 전용 스냅샷 파일의 타입을 쓰기 가능 스냅샷 파일로 변경하고, 쓰기 가능 스냅샷 번호를 부여한다(S1502). 또한, 분산 파일 시스템(10)은 읽기 전용 스냅샷 파일의 청크 레이아웃 정보를 참조하여 모든 청크에 대해, 데이터 서버(130)에서 이전 스냅샷 델타 청크들에 대한 잠금을 획득하고(S1503), 쓰기 가능 스냅샷 델타 청크를 생성한다(S1504). To this end, the distributed file system 10 first acquires the lock of the original file and the read-only snapshot file inode (S1501). Then, the distributed file system 10 changes the type of the read-only snapshot file to a writable snapshot file and gives a writeable snapshot number (S1502). In addition, the distributed file system 10 obtains a lock on the previous snapshot delta chunks in the data server 130 (S1503) for all chunks by referring to the chunk layout information of the read-only snapshot file And generates a snapshot delta chunk (S1504).

분산 파일 시스템(10)의 데이터 서버(130)에서는 이전 읽기 전용 스냅샷 델타 청크들을 쓰기 가능 스냅샷 델타 청크로 병합한다(S1505). 그리고, 분산 파일 시스템(10)의 데이터 서버(130)에서 쓰기 가능 스냅샷으로 변경하는 읽기 전용 스냅샷의 델타 청크들을 이전 스냅샷 델타 청크에 병합한다(S1506).The data server 130 of the distributed file system 10 merges the previous read-only snapshot delta chunks into writable snapshot delta chunks (S1505). Then, the delta chunks of the read-only snapshot changing from the data server 130 of the distributed file system 10 to the writable snapshot are merged into the previous snapshot delta chunk (S1506).

분산 파일 시스템(10)은 단계 S1506에서 병합된 것은 원본 청크의 익스텐트 변경맵에 반영 즉, 원본 청크 익스텐트 변경맵에서 읽기 전용 스냅샷 번호를 이전 읽기 전용 스냅샷 번호로 변경하고(S1507), 데이터 서버(130)에서 원본 청크의 잠금을 해제한다(S1508). 분산 파일 시스템(10)의 메타데이터 서버(120)에서는 원본 파일 inode에서 읽기 전용 스냅샷 파일 inode 정보를 삭제하고, 쓰기 가능 스냅샷 inode 정보에 쓰기 가능 스냅샷 파일 inode 식별자와 번호를 추가한다(S1509). 마지막으로, 분산 파일 시스템(10)은 원본 파일 inode의 잠금을 해제하여(S1510), 파일 수준의 읽기 전용 스냅샷 파일을 쓰기 가능 스냅샷 파일로 변환하는 처리 과정을 종료한다.In step S1506, the distributed file system 10 changes the read-only snapshot number to the previous read-only snapshot number in the original chunk extent change map (step S1507) The original chunk is unlocked in step S1508. The metadata server 120 of the distributed file system 10 deletes the read-only snapshot file inode information from the original file inode and adds the writeable snapshot file inode identifier and number to the writable snapshot inode information (S1509 ). Finally, the distributed file system 10 unlocks the original file inode (S1510) and ends the process of converting the file-level read-only snapshot file into a writable snapshot file.

도 16은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일에 대한 쓰기 처리 과정을 도시한 흐름도이다.16 is a flowchart illustrating a write process for a file-level writeable snapshot file in the distributed file system according to an embodiment of the present invention.

쓰기 가능 스냅샷 파일에 대한 쓰기 처리를 위해, 분산 파일 시스템(10)은 먼저 클라이언트(110)에서 메타데이터 서버(120)로부터 쓰기 가능 스냅샷 파일의 청크 레이아웃 정보를 요청하여 받아온다(S1601). 분산 파일 시스템(10)의 클라이언트(110)에서는 쓸 데이터에 대한 청크를 저장하고 있는 데이터 서버(130)에 데이터 쓰기를 요청한다(S1602). 또한, 분산 파일 시스템(10)의 데이터 서버(130)에서는 먼저 쓰기 가능 스냅샷 델타 청크의 익스텐트 변경 비트맵을 분석하여(S1603), 쓸 데이터에 위치의 익스텐트가 변경되었는지를 검사한다(S1604). In order to process the write-enabled snapshot file, the distributed file system 10 first requests the client 110 to request the chunk layout information of the writable snapshot file from the metadata server 120 (S1601). The client 110 of the distributed file system 10 requests the data server 130 storing the chunk for the data to be written to write data (S1602). In step S1603, the data server 130 of the distributed file system 10 analyzes the extent change bitmap of the writable snapshot delta chunk in step S1603. In step S1604, it is determined whether the extent of the location is changed in the write data.

단계 S1604의 검사 결과 익스텐트가 변경되었으면, 분산 파일 시스템(10)은 스냅샷 델타 청크의 잠금을 획득하고(S1605), 쓰기 가능 스냅샷 델타 청크에 데이터를 쓴 후(S1606), 쓰기 가능 스냅샷 델타 청크의 잠금을 해제한다(S1607). If the extent has been changed as a result of the check in step S1604, the distributed file system 10 acquires the lock of the snapshot delta chunk (S1605), writes the data to the writable snapshot delta chunk (S1606) The chunk is unlocked (S1607).

만약, 단계 S1604의 검사 결과 해당 익스텐트가 변경되지 않았으면, 분산 파일 시스템(10)은 원본 청크와 스냅샷 델타 청크의 잠금을 획득하고(S1608), 원본 청크에서 스냅샷 델타 청크로의 copy-on-write를 수행한다(S1609). 그리고, 분산 파일 시스템(10)은 쓰기 가능 스냅샷 델타 청크의 익스텐트 변경 비트맵에 익스텐트가 변경된 것으로 설정한다(S1610). 마지막으로, 분산 파일 시스템(10)은 원본 청크 및 쓰기 가능 스냅샷 델타 청크의 잠금을 해제하여(S1611), 파일 수준의 쓰기 가능 스냅샷 파일에 대한 쓰기 처리 과정을 종료한다.If it is determined in step S1604 that the corresponding extent has not been changed, the distributed file system 10 acquires a lock of the original chunk and the snapshot delta chunk (S1608), and copies the copy chunk from the original chunk to the snapshot delta chunk -write is executed (S1609). Then, the distributed file system 10 sets the extent change bitmap of the writable snapshot delta chunk to that the extent is changed (S1610). Finally, the distributed file system 10 unlocks the original chunk and writable snapshot delta chunk (S1611) and ends the write process for the file-level writeable snapshot file.

도 17은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일에 대한 읽기 처리 과정을 도시한 흐름도이다.17 is a flowchart illustrating a reading process of a file-level writeable snapshot file in a distributed file system according to an embodiment of the present invention.

쓰기 가능 스냅샷 파일에서 데이터를 읽기 위해, 분산 파일 시스템(10)은 먼저 클라이언트(110)에서 메타데이터 서버(120)로부터 쓰기 가능 스냅샷의 청크 레이아웃 정보를 요청하여 받아온다(S1701). 그리고, 분산 파일 시스템(10)의 클라이언트(110)에서는 읽을 데이터의 청크를 저장하고 있는 데이터 서버(130)로 데이터 읽기를 요청한다(S1702). 이에 따라, 분산 파일 시스템(10)의 데이터 서버(130)에서는 쓰기 가능 스냅샷 델타 청크의 익스텐트 변경 비트맵을 분석하여(S1703), 읽을 데이터에 해당하는 익스텐트가 변경되었는지를 검사한다(S1704). In order to read data from the writable snapshot file, the distributed file system 10 first requests the client 110 to request the chunk layout information of the writable snapshot from the metadata server 120 (S1701). Then, the client 110 of the distributed file system 10 requests the data server 130, which stores the chunk of the data to be read, to read the data (S1702). Accordingly, the data server 130 of the distributed file system 10 analyzes the extent change bitmap of the writable snapshot delta chunk (S1703) and checks whether the extent corresponding to the data to be read is changed (S1704).

단계 S1704의 검사 결과 해당 익스텐트가 변경되었으면, 분산 파일 시스템(10)은 쓰기 가능 스냅샷 델타 청크의 잠금을 획득하고(S1705), 쓰기 가능 스냅샷 델타 청크에서 데이터를 읽어서 클라이언트에 전달한 후(S1706), 스냅샷 델타 청크의 잠금을 해제한다(S1707). If it is determined in step S1704 that the corresponding extent has been changed, the distributed file system 10 acquires the lock of the writable snapshot delta chunk (S1705), reads the data from the writable snapshot delta chunk and transmits it to the client (S1706) , The snapshot delta chunk is unlocked (S1707).

만약, 단계 S1704의 검사 결과 해당 익스텐트가 변경되지 않았으면, 분산 파일 시스템(10)은 원본 청크의 잠금을 획득하고(S1708), 원본 청크에서 데이터를 읽어서 클라이언트(110)에 전달한 후(S1709), 원본 청크의 잠금을 해제하여(S1710), 파일 수준의 쓰기 가능 스냅샷 파일에 대한 읽기 처리 과정을 종료한다.If it is determined in step S1704 that the corresponding extent has not been changed, the distributed file system 10 acquires the lock of the original chunk (S1708), reads the data from the original chunk, and transmits the data to the client 110 (S1709) Unlocking the original chunk (S1710) terminates the read process for the file-level write-enabled snapshot file.

이와 같이 본 발명은 메타데이터 서버에서 원본 파일과 스냅샷 파일에 대한 메타데이터를 공유하면서 일관성을 보장하여, 보다 빠른 스냅샷 생성과 관리를 지원하며, 데이터 서버에서는 원본 파일 또는 스냅샷 파일에 대한 데이터 입출력과 갱신 요청을 스냅샷의 특성에 따라 효율적으로 처리함으로써, 메타데이터 서버 또는 클라이언트에 투명한 처리를 지원할 수 있다.
As described above, according to the present invention, the meta data server shares the metadata of the original file and the snapshot file to assure consistency, thereby supporting faster snapshot creation and management. In the data server, data of the original file or the snapshot file By processing I / O and update requests efficiently according to the characteristics of the snapshot, transparent processing can be supported for the metadata server or client.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.The present invention has been described with reference to the preferred embodiments. It will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Therefore, the disclosed embodiments should be considered in an illustrative rather than a restrictive sense. The scope of the present invention is defined by the appended claims rather than by the foregoing description, and all differences within the scope of equivalents thereof should be construed as being included in the present invention.

10 : 분산 파일 시스템 110 : 클라이언트
120 : 메타데이터 서버 130 : 데이터 서버
10: Distributed File System 110: Client
120: metadata server 130: data server

Claims (1)

파일의 메타데이터 정보를 관리하되, 파일 수준에서 스냅샷 파일에 대한 메타데이터 정보를 관리하는 메타데이터 서버; 및
상기 파일의 데이터를 청크 단위로 분할하여 저장 및 관리하되, 원본 파일의 청크에 대해 상기 스냅샷 파일의 델타 청크를 저장 및 관리하며, 상기 원본 파일 또는 상기 스냅샷 파일에 대한 입출력을 관리하는 다수의 데이터 서버;
를 포함하는 분산 파일 시스템.
A metadata server for managing metadata information of files, and managing metadata information for snapshot files at a file level; And
A storage unit for storing and managing data of the file in units of chunks and storing and managing the delta chunks of the snapshot files with respect to a chunk of the original files and managing input and output of the original files or the snapshot files; A data server;
/ RTI >
KR1020140007799A 2014-01-22 2014-01-22 Distributed file system for providing the file-based snapshot and method thereof KR102169867B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140007799A KR102169867B1 (en) 2014-01-22 2014-01-22 Distributed file system for providing the file-based snapshot and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140007799A KR102169867B1 (en) 2014-01-22 2014-01-22 Distributed file system for providing the file-based snapshot and method thereof

Publications (2)

Publication Number Publication Date
KR20150087622A true KR20150087622A (en) 2015-07-30
KR102169867B1 KR102169867B1 (en) 2020-10-26

Family

ID=53876800

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140007799A KR102169867B1 (en) 2014-01-22 2014-01-22 Distributed file system for providing the file-based snapshot and method thereof

Country Status (1)

Country Link
KR (1) KR102169867B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170103627A (en) * 2015-01-03 2017-09-13 맥아피 인코퍼레이티드 Secure distributed backup for personal device and cloud data
CN107480242A (en) * 2017-08-10 2017-12-15 郑州云海信息技术有限公司 A kind of method and system of establishment file system snapshot tree

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100541530B1 (en) * 2003-12-08 2006-01-12 한국전자통신연구원 Method of processing snapshot introducing snapshot status table based on memory for shared storage supporting large capacity
KR20080050980A (en) * 2006-12-04 2008-06-10 한국전자통신연구원 Method for providing snapshot of fileset of object based file system
KR20090065131A (en) * 2007-12-17 2009-06-22 한국전자통신연구원 Distributed file system and method for guaranteeing consistency of metadata
KR20120110871A (en) * 2011-03-30 2012-10-10 주식회사 케이티 Method for determining and searching storage server in distributed file system
KR101246996B1 (en) * 2005-08-30 2013-03-25 마이크로소프트 코포레이션 Electronic data snapshot generator
KR20130045159A (en) * 2011-10-24 2013-05-03 한국전자통신연구원 Apparatus and method for client's participating in data storage of distributed file system
US8601473B1 (en) * 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100541530B1 (en) * 2003-12-08 2006-01-12 한국전자통신연구원 Method of processing snapshot introducing snapshot status table based on memory for shared storage supporting large capacity
KR101246996B1 (en) * 2005-08-30 2013-03-25 마이크로소프트 코포레이션 Electronic data snapshot generator
KR20080050980A (en) * 2006-12-04 2008-06-10 한국전자통신연구원 Method for providing snapshot of fileset of object based file system
KR100912126B1 (en) * 2006-12-04 2009-08-13 한국전자통신연구원 Method for providing snapshot of fileset of object based file system
KR20090065131A (en) * 2007-12-17 2009-06-22 한국전자통신연구원 Distributed file system and method for guaranteeing consistency of metadata
KR20120110871A (en) * 2011-03-30 2012-10-10 주식회사 케이티 Method for determining and searching storage server in distributed file system
US8601473B1 (en) * 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
KR20130045159A (en) * 2011-10-24 2013-05-03 한국전자통신연구원 Apparatus and method for client's participating in data storage of distributed file system

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170103627A (en) * 2015-01-03 2017-09-13 맥아피 인코퍼레이티드 Secure distributed backup for personal device and cloud data
CN107480242A (en) * 2017-08-10 2017-12-15 郑州云海信息技术有限公司 A kind of method and system of establishment file system snapshot tree

Also Published As

Publication number Publication date
KR102169867B1 (en) 2020-10-26

Similar Documents

Publication Publication Date Title
US10289497B2 (en) Distributed file system
US9946716B2 (en) Distributed file system snapshot
US11522808B2 (en) Shared storage model for high availability within cloud environments
US11042448B2 (en) Archiving NAS servers to the cloud
US11099938B2 (en) System and method for creating linked clones of storage objects with surface snapshots
US9946603B1 (en) Mountable container for incremental file backups
JP5661188B2 (en) File system and data processing method
US9996429B1 (en) Mountable container backups for files
US20150317216A1 (en) System and method for full virtual machine backup using storage system functionality
US10740005B1 (en) Distributed file system deployment on a data storage system
US20090089340A1 (en) Backup catalog recovery from replicated data
US10042711B1 (en) Distributed data protection techniques with cloning
US11334545B2 (en) System and method for managing space in storage object structures
US10078555B1 (en) Synthetic full backups for incremental file backups
CN101084481A (en) A method to perform parallel data migration in a clustered storage environment
US11397749B2 (en) Asynchronous replication of in-scope table data
US20170075771A1 (en) Backup and restoration of file system
US10877849B2 (en) System and method for managing different types of snapshots of storage objects
CN108351821A (en) Data reconstruction method and storage device
US20190332500A1 (en) Method and system for global snapshots of distributed storage
CN113722275A (en) Object storage space management method, device, server and storage medium
KR102169867B1 (en) Distributed file system for providing the file-based snapshot and method thereof
US10067949B1 (en) Acquired namespace metadata service for controlling access to distributed file system
US20160098413A1 (en) Apparatus and method for performing snapshots of block-level storage devices
JP2019124983A (en) Storage system and storage control method

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