KR101679303B1 - Asymmetric distributed file system and data processing method therefor - Google Patents

Asymmetric distributed file system and data processing method therefor Download PDF

Info

Publication number
KR101679303B1
KR101679303B1 KR1020100089571A KR20100089571A KR101679303B1 KR 101679303 B1 KR101679303 B1 KR 101679303B1 KR 1020100089571 A KR1020100089571 A KR 1020100089571A KR 20100089571 A KR20100089571 A KR 20100089571A KR 101679303 B1 KR101679303 B1 KR 101679303B1
Authority
KR
South Korea
Prior art keywords
data
server
replica
metadata
write operation
Prior art date
Application number
KR1020100089571A
Other languages
Korean (ko)
Other versions
KR20120027786A (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 KR1020100089571A priority Critical patent/KR101679303B1/en
Publication of KR20120027786A publication Critical patent/KR20120027786A/en
Application granted granted Critical
Publication of KR101679303B1 publication Critical patent/KR101679303B1/en

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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1057Parity-multiple bits-RAID6, i.e. RAID 6 implementations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations

Abstract

본 발명은 메타 데이터 서버, 데이터 서버, 복제 서버, 비대칭 분산 파일 시스템 및 그 데이터 처리 방법에 관한 것으로, 개시된 비대칭 분산 파일 시스템은 원본 데이터에 대한 쓰기 동작을 수행하는 데이터 서버와, 복제본 데이터에 대한 쓰기 동작을 수행하는 복제 서버와, 원본 데이터 및 복제본 데이터의 쓰기 위치에 해당하는 청크(블록)를 할당하며 원본 데이터 및 복제본 데이터의 메타 데이터를 저장하는 메타 데이터 서버를 포함하며, 메타 데이터 서버와 데이터 서버 및 복제 서버를 각각 별도의 레이어에 배치하고 원본 데이터 쓰기 동작과 복제본 데이터 쓰기 동작을 이원화하여 낮은 지연을 지원할 수 있고, 데이터 서버와 복제 서버를 서로 다른 레이어에 배치함으로써 서로 다른 RAID를 적용할 수 있으므로 데이터 서버와 복제 서버를 동일한 레이어에 배치하는 종래 기술과 비교할 때에 더 적은 수의 컴퓨터를 이용하여 더 많은 저장 공간을 지원할 수 있으며, 데이터 오류 복구에 대한 지원이 용이하여 데이터 안전성을 강화하는 이점이 있다.The present invention relates to a metadata server, a data server, a replication server, an asymmetric distributed file system, and a data processing method thereof. The disclosed asymmetric distributed file system includes a data server for performing a write operation on original data, And a metadata server for allocating chunks (blocks) corresponding to the write locations of the original data and the replica data, and storing metadata of the original data and the replica data, wherein the meta data server and the data server And replication servers can be placed on separate layers and the original data write operations and replica data write operations can be dualized to support low latency and different RAIDs can be applied by placing the data server and the replica server on different layers The data server and the replica server are the same When compared to the prior art placed in an ear and to support more storage space by using a smaller number of computers, to the support for data error recovery facilitates there is an advantage to enhance the data security.

Description

비대칭 분산 파일 시스템 및 그 데이터 처리 방법{ASYMMETRIC DISTRIBUTED FILE SYSTEM AND DATA PROCESSING METHOD THEREFOR}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to an asymmetric distributed file system,

본 발명은 비대칭 분산 파일 시스템에 관한 것으로, 더욱 상세하게는 메타 데이터 서버와 데이터 서버 및 복제 서버를 각각 별도의 레이어에 배치한 비대칭 분산 파일 시스템과 이들의 데이터 쓰기 동작 및 데이터 읽기 동작을 위한 데이터 처리 방법에 관한 것이다.The present invention relates to an asymmetric distributed file system, and more particularly, to an asymmetric distributed file system in which a metadata server, a data server, and a replica server are disposed on separate layers, data processing for data write operations and data read operations ≪ / RTI >

주지하는 바와 같이, 비대칭 분산 파일 시스템은 파일의 메타 데이터와 실제 데이터를 분리하여 저장하고 관리하는 시스템으로서, 메타 데이터는 메타 데이터 서버에서 관리되며 실제 데이터는 여러 대의 데이터 서버들에 분산되어 저장된다. 메타 데이터 서버에서 관리하는 메타 데이터에는 실제 데이터가 저장되어 있는 데이터 서버에 대한 정보가 포함된다.As noted, the asymmetric distributed file system is a system for separately storing and managing metadata and actual data of a file. Metadata is managed by a metadata server, and actual data is stored in a plurality of data servers. The metadata managed by the metadata server includes information about the data server in which the actual data is stored.

이러한 메타 데이터 서버와 데이터 서버들은 네트워크로 연결되어 분산된 구조를 갖는다. 따라서 클라이언트 단말은 파일의 메타 데이터와 데이터를 접근하는 경로가 분리된다. 즉, 파일을 액세스하기 위해서, 클라이언트 단말은 먼저 메타 데이터 서버에 있는 파일의 메타 데이터를 액세스해서 실제 데이터가 저장되어 있는 데이터 서버들에 대한 정보를 얻는다. 그리고 나서 실제 데이터에 대한 입출력은 데이터 서버들을 통하여 이루어진다.The metadata server and the data server are connected to each other via a network to have a distributed structure. Therefore, the client terminal is separated from the metadata of the file and the path for accessing the data. That is, in order to access the file, the client terminal first accesses the metadata of the file in the metadata server and obtains information about the data servers in which the actual data is stored. Input / output to the actual data is then performed through the data servers.

비대칭 분산 파일 시스템에서는 파일 데이터를 고정된 크기의 데이터 청크(chunk) 단위로 나누어 데이터 서버들에 분산하여 저장한다.In an asymmetric distributed file system, file data is divided into data chunks of fixed size and distributed to data servers.

또한 서버나 네트워크 등이 고장난 경우에, 데이터에 대한 입출력을 할 수 없는 문제를 해결하고자 청크에 대한 복제본을 만들어 다른 데이터 서버들에 저장하는데, 복제본의 개수는 저장 비용 등을 고려하여 결정한다. 이처럼 복제본을 여러 데이터 서버에 유지함에 따라서 사용자로부터의 액세스 부하를 분산시킬 수 있게 된다.In order to solve the problem that the server can not input or output data when the server or the network fails, a replica of the chunk is created and stored in the other data servers. The number of replicas is decided considering the storage cost. By keeping replicas on different data servers, it is possible to distribute the access load from the users.

종래 기술에 따른 비대칭 분산 파일 시스템은 메타 데이터 서버와 데이터 서버를 각각 별도의 레이어에 배치하며, 복제본은 원본이 저장된 데이터 서버와는 다른 데이터 서버들에 저장된다. 그리고, 주로 대용량 데이터 분석 등과 같은 배치 작업을 고려하여 복제본의 분산된 생성에 초점을 맞추어 비대칭 분산 파일 시스템을 운용하였다.In the asymmetric distributed file system according to the related art, the metadata server and the data server are arranged in separate layers, respectively, and the replica is stored in data servers different from the data server in which the original is stored. In addition, we focused on the distributed generation of replicas in consideration of batch operations such as large-capacity data analysis, and operated an asymmetric distributed file system.

따라서, 클라이언트 단말의 요청에 따라 데이터 쓰기 동작을 수행할 때에는 원본 데이터의 쓰기 동작을 위한 소요 시간뿐만 아니라 복제본 데이터의 쓰기 동작을 위한 추가적인 소요 시간이 발생하므로 낮은 지연(low-latency)을 지원할 수 없는 문제점이 있었다.Therefore, when the data writing operation is performed according to the request of the client terminal, not only the time required for the write operation of the original data but also the additional time required for the write operation of the replica data occurs, so that it can not support the low latency There was a problem.

본 발명은 이와 같은 종래 기술의 문제점을 해결하기 위해 제안한 것으로서, 메타 데이터 서버와 데이터 서버 및 복제 서버를 각각 별도의 레이어에 배치하고 원본 데이터 쓰기 동작과 복제본 데이터 쓰기 동작을 이원화하여 낮은 지연을 지원하는 비대칭 분산 파일 시스템을 제공한다.Disclosure of Invention Technical Problem [8] Accordingly, the present invention has been made in order to solve the problems of the related art, and it is an object of the present invention to provide a data server, a data server, and a replication server in a separate layer, Asymmetric distributed file system.

본 발명은 이러한 비대칭 분산 파일 시스템을 구성하는 메타 데이터 서버, 데이터 서버, 복제 서버를 제공한다.The present invention provides a metadata server, a data server, and a replica server constituting such an asymmetric distributed file system.

본 발명은 낮은 지연을 지원할 수 있도록 한 비대칭 분산 파일 데이터 처리 방법을 제공한다.The present invention provides an asymmetric distributed file data processing method capable of supporting low latency.

본 발명의 제 1 관점으로서 비대칭 분산 파일 시스템은, 원본 데이터에 대한 쓰기 동작을 수행하는 데이터 서버와, 복제본 데이터에 대한 쓰기 동작을 수행하는 복제 서버와, 상기 원본 데이터 및 상기 복제본 데이터의 쓰기 위치에 해당하는 청크(블록)를 할당하며, 상기 원본 데이터 및 상기 복제본 데이터의 메타 데이터를 저장하는 메타 데이터 서버를 포함할 수 있다.According to a first aspect of the present invention, there is provided an asymmetric distributed file system comprising a data server for performing a write operation on original data, a replica server for performing a write operation on the replica data, And a metadata server that allocates the corresponding chunks (blocks) and stores metadata of the original data and the replica data.

여기서, 상기 데이터 서버와 상기 복제 서버는, 상기 원본 데이터에 대한 쓰기 동작과 상기 복제본 데이터에 대한 쓰기 동작을 비동기로 수행할 수 있다.Here, the data server and the replica server can perform the write operation on the original data and the write operation on the replica data asynchronously.

상기 데이터 서버와 상기 복제 서버는, 서로 다른 레벨의 RAID를 적용할 수 있다.The data server and the replica server can apply different levels of RAID.

상기 복제 서버는, RAID 레벨 5 또는 RAID 레벨 6을 적용할 수 있다.The replication server may apply RAID level 5 or RAID level 6.

본 발명의 제 2 관점으로서 메타 데이터 서버는, 원본 데이터에 대한 쓰기 동작을 수행할 데이터 서버의 쓰기 위치에 해당하는 청크(블록)를 할당하고, 복제본 데이터에 대한 쓰기 동작을 수행할 복제 서버의 쓰기 위치에 해당하는 상기 청크(블록)를 할당하며, 상기 원본 데이터 및 상기 복제본 데이터의 메타 데이터를 저장할 수 있다.As a second aspect of the present invention, a metadata server allocates a chunk (block) corresponding to a write location of a data server to perform a write operation on original data, and writes And stores metadata of the original data and the replica data.

여기서, 상기 메타 데이터 서버는, 상기 데이터 서버가 상기 원본 데이터에 대한 쓰기 동작을 완료하면 클라이언트 단말에게 데이터 쓰기 완료 메시지를 전송할 수 있다.Here, the metadata server may transmit a data write completion message to the client terminal when the data server completes a write operation on the original data.

본 발명의 제 3 관점으로서 데이터 서버는, 메타 데이터 서버가 원본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 청크(블록)를 할당하면 할당된 상기 청크(블록)에 상기 원본 데이터를 기록하는 쓰기 동작을 수행하며, 상기 메타 데이터 서버가 복제본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 상기 청크(블록)를 할당하면 복제 서버에게 상기 원본 데이터를 전송하여 상기 복제 서버가 상기 복제본 데이터에 대한 쓰기 동작을 수행하도록 할 수 있다.As a third aspect of the present invention, a data server records the original data in the allocated chunk (block) when a meta data server allocates a chunk (block) corresponding to a write location for performing a write operation on the original data And when the metadata server allocates the chunk (block) corresponding to the write location for performing a write operation on the replica data, the metadata server transmits the original data to the replica server, The write operation can be performed.

본 발명의 제 4 관점으로서 복제 서버는, 메타 데이터 서버가 복제본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 청크(블록)를 할당하면 원본 데이터에 대한 쓰기 동작을 수행한 데이터 서버로부터 상기 원본 데이터를 전송 받아 상기 복제본 데이터에 대한 쓰기 동작을 수행할 수 있다.According to a fourth aspect of the present invention, there is provided a duplication server, wherein when a metadata server allocates a chunk (block) corresponding to a write location for performing a write operation on replica data, And may perform a write operation on the replica data by receiving the data.

여기서, 상기 복제 서버는, 상기 데이터 서버와는 다른 레벨의 RAID를 적용할 수 있다.Here, the replica server may apply RAID at a level different from that of the data server.

상기 복제 서버는, RAID 레벨 5 또는 RAID 레벨 6을 적용할 수 있다.The replication server may apply RAID level 5 or RAID level 6.

본 발명의 제 5 관점으로서 비대칭 분산 파일 시스템의 데이터 처리 방법은, 메타 데이터 서버가 원본 데이터 및 복제본 데이터의 쓰기 위치에 해당하는 청크(블록)를 할당하는 단계와, 데이터 서버가 상기 원본 데이터에 대한 쓰기 동작을 수행하는 단계와, 복제 서버가 상기 복제본 데이터에 대한 쓰기 동작을 수행하는 단계와, 상기 메타 데이터 서버가 상기 원본 데이터 및 상기 복제본 데이터의 메타 데이터를 저장하는 단계를 포함할 수 있다.According to a fifth aspect of the present invention, there is provided a method of processing data in an asymmetric distributed file system, the method comprising: allocating a chunk (block) corresponding to a writing location of original data and replica data to a metadata server; Write operation of the replica data; performing a write operation on the replica data by the replica server; and storing the metadata of the original data and the replica data by the metadata server.

여기서, 상기 원본 데이터에 대한 쓰기 동작과 상기 복제본 데이터에 대한 쓰기 동작을 비동기로 수행할 수 있다.Here, the writing operation for the original data and the writing operation for the replica data can be performed asynchronously.

본 발명의 제 6 관점으로서 메타 데이터 서버의 데이터 처리 방법은, 원본 데이터에 대한 쓰기 동작을 수행할 데이터 서버의 쓰기 위치에 해당하는 청크(블록)를 할당하는 단계와, 복제본 데이터에 대한 쓰기 동작을 수행할 복제 서버의 쓰기 위치에 해당하는 상기 청크(블록)를 할당하는 단계와, 상기 원본 데이터 및 상기 복제본 데이터의 메타 데이터를 저장하는 단계를 포함할 수 있다.According to a sixth aspect of the present invention, there is provided a data processing method of a metadata server, comprising: allocating a chunk (block) corresponding to a write location of a data server to perform a write operation on original data; Allocating the chunk (block) corresponding to a write location of a replica server to be performed, and storing metadata of the original data and the replica data.

여기서, 상기 데이터 처리 방법은, 상기 데이터 서버가 상기 원본 데이터에 대한 쓰기 동작을 완료하면 클라이언트 단말에게 데이터 쓰기 완료 메시지를 전송하는 단계를 더 포함할 수 있다.The data processing method may further include transmitting a data write completion message to the client terminal when the data server completes a write operation on the original data.

본 발명의 제 7 관점으로서 데이터 서버의 데이터 처리 방법은, 메타 데이터 서버로부터 원본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 청크(블록)를 할당 받는 단계와, 할당된 상기 청크(블록)에 상기 원본 데이터를 기록하는 쓰기 동작을 수행하는 단계와, 상기 메타 데이터 서버가 복제본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 상기 청크(블록)를 할당하면 복제 서버에게 상기 원본 데이터를 전송하여 상기 복제 서버가 상기 복제본 데이터에 대한 쓰기 동작을 수행하도록 하는 단계를 포함할 수 있다.According to a seventh aspect of the present invention, there is provided a data processing method of a data server, comprising: receiving a chunk (block) corresponding to a write location for performing a write operation on original data from a metadata server; The method comprising: performing a write operation to write the original data in the replica data; and allocating the chunk (block) corresponding to the write location in which the metadata server performs the write operation to the replica data, And causing the replication server to perform a write operation on the replica data.

본 발명의 제 8 관점으로서 복제 서버의 데이터 처리 방법은, 메타 데이터 서버로부터 복제본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 청크(블록)를 할당 받는 단계와, 상기 메타 데이터 서버로부터 원본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 상기 청크(블록)를 할당 받아 상기 원본 데이터를 기록하는 쓰기 동작을 수행하는 데이터 서버로부터 상기 원본 데이터를 전송 받는 단계와, 할당된 상기 청크(블록)에 상기 복제본 데이터를 기록하는 쓰기 동작을 수행하는 단계를 포함할 수 있다.According to an eighth aspect of the present invention, there is provided a data processing method of a replica server, comprising: receiving a chunk (block) corresponding to a write location for performing a write operation on replica data from a metadata server; Receiving the original data from a data server which is allocated with the chunk (block) corresponding to a write location for performing a write operation to the original data and writes the original data; And performing a write operation of writing the replica data in the replica data.

본 발명의 실시예에 의하면, 메타 데이터 서버와 데이터 서버 및 복제 서버를 각각 별도의 레이어에 배치하고 원본 데이터 쓰기 동작과 복제본 데이터 쓰기 동작을 이원화하여 낮은 지연을 지원할 수 있다.According to the embodiment of the present invention, the metadata server, the data server, and the replica server are disposed on separate layers, respectively, and the original data write operation and the replica data write operation are duplexed to support low latency.

아울러, 데이터 서버와 복제 서버를 서로 다른 레이어에 배치함으로써 서로 다른 RAID를 적용할 수 있으므로 데이터 서버와 복제 서버를 동일한 레이어에 배치하는 종래 기술과 비교할 때에 더 적은 수의 컴퓨터를 이용하여 더 많은 저장 공간을 지원할 수 있으며, 데이터 오류 복구에 대한 지원이 용이하여 데이터 안전성을 강화하는 효과가 있다.In addition, since the data server and the replica server can be arranged in different layers, different RAIDs can be applied. Therefore, compared to the prior art in which the data server and the replica server are arranged on the same layer, , And it is effective to enhance data security by facilitating support for data error recovery.

도 1은 본 발명의 실시예에 따른 비대칭 분산 파일 시스템의 구성도.
도 2는 본 발명의 실시예에 따른 비대칭 분산 파일 데이터 처리 방법을 설명하기 위한 흐름도.
1 is a configuration diagram of an asymmetric distributed file system according to an embodiment of the present invention;
2 is a flowchart illustrating an asymmetric distributed file data processing method according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention, and the manner of achieving them, will be apparent from and elucidated with reference to the embodiments described hereinafter in conjunction with the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. To fully disclose the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims.

본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. In the following description of the present invention, a detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. The following terms are defined in consideration of the functions in the embodiments of the present invention, which may vary depending on the intention of the user, the intention or the custom of the operator. Therefore, the definition should be based on the contents throughout this specification.

첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다. Each block of the accompanying block diagrams and combinations of steps of the flowchart may be performed by computer program instructions. These computer program instructions may be loaded into a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus so that the instructions, which may be executed by a processor of a computer or other programmable data processing apparatus, And means for performing the functions described in each step are created. These computer program instructions may also be stored in a computer usable or computer readable memory capable of directing a computer or other programmable data processing apparatus to implement the functionality in a particular manner so that the computer usable or computer readable memory It is also possible for the instructions stored in the block diagram to produce a manufacturing item containing instruction means for performing the functions described in each block or flowchart of the block diagram. Computer program instructions may also be stored on a computer or other programmable data processing equipment so that a series of operating steps may be performed on a computer or other programmable data processing equipment to create a computer- It is also possible that the instructions that perform the processing equipment provide the steps for executing the functions described in each block of the block diagram and at each step of the flowchart.

또한, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.Also, each block or each step may represent a module, segment, or portion of code that includes one or more executable instructions for executing the specified logical function (s). It should also be noted that in some alternative embodiments, the functions mentioned in the blocks or steps may occur out of order. For example, two blocks or steps shown in succession may in fact be performed substantially concurrently, or the blocks or steps may sometimes be performed in reverse order according to the corresponding function.

도 1은 본 발명의 실시예에 따른 비대칭 분산 파일 시스템의 구성도이다.1 is a configuration diagram of an asymmetric distributed file system according to an embodiment of the present invention.

이에 나타낸 바와 같이 비대칭 분산 파일 시스템(100)은 레이어1에 배치한 복수의 메타 데이터 서버(111, 112), 레이어2에 배치한 n개의 데이터 서버(120-1, 120-2, 120-3, …, 120-n), 레이어3에 배치한 m개의 복제 서버(130-1, …, 130-m)를 포함하며, k개의 클라이언트 단말(10-1, 10-2, 10-3, 10-4, …, 10-k)을 대상으로 하여 네트워크를 통해 데이터의 저장 및 관리 기능을 제공한다. 예컨대, 노드의 개수는 "k ≫ n > (2×m)" 조건으로 배치할 수 있다. 도 1에서는 2개의 메타 데이터 서버(111, 112)를 배치한 예를 나타내었으나 하나 또는 셋 이상의 메타 데이터 서버를 배치할 수도 있다.As shown in the figure, the asymmetric distributed file system 100 includes a plurality of metadata servers 111 and 112 arranged in the layer 1, n data servers 120-1, 120-2, 120-3, ..., 120-n and m duplication servers 130-1, ..., 130-m arranged in the layer 3 and k client terminals 10-1, 10-2, 10-3, 10- 4,..., 10-k) through the network. For example, the number of nodes can be arranged as "k " n > (2 x m)" Although FIG. 1 shows an example in which two metadata servers 111 and 112 are arranged, one or more metadata servers may be arranged.

이와 같이 비대칭 분산 파일 시스템을 구성하는 각각 단말이나 서버들의 기능을 살펴보면 다음과 같다.The function of each terminal or server constituting the asymmetric distributed file system will be described as follows.

클라이언트 단말(10-1, 10-2, 10-3, 10-4, …, 10-k)은 클라이언트 응용을 수행하면서 메타 데이터 서버(111, 112)로부터 파일 메타 데이터에 액세스하고 데이터 서버(120-1, 120-2, 120-3, …, 120-n) 및/또는 복제 서버(130-1, …, 130-m)로부터 파일 데이터를 입출력 한다.The client terminal 10-1, 10-2, 10-3, 10-4, ..., 10-k accesses the file metadata from the metadata servers 111 and 112 while performing the client application, -1, 120-2, 120-3, ..., 120-n and / or the replica servers 130-1, ..., and 130-m.

메타 데이터 서버(111, 112)는 파일 시스템의 모든 파일에 대한 메타 데이터를 저장하고 관리하며, 모든 데이터 서버(120-1, 120-2, 120-3, …, 120-n) 및 복제 서버(130-1, …, 130-m)에 대한 상태 정보를 관리한다.The metadata servers 111 and 112 store and manage the metadata of all the files in the file system and manage all the data servers 120-1, 120-2, 120-3, ..., 120- 130-1, ..., 130-m.

본 발명의 실시예에 따른 비대칭 분산 파일 시스템(100)에서는 원본 파일 데이터가 정해진 크기의 청크 단위로 나뉘어서 데이터 서버(120-1, 120-2, 120-3, …, 120-n)에 분산 생성되며, 복제본 파일 데이터가 정해진 크기의 청크 단위로 나뉘어서 복제 서버(130-1, …, 130-m)에 분산 생성된다. 메타 데이터 서버(111, 112)는 원본 파일 데이터 청크가 생성될 데이터 서버를 선정하며 복제본 파일 데이터 청크가 생성될 복제 서버(130-1, …, 130-m)도 선정한다. 파일 데이터 청크는 유일한 식별자에 의해 구별되며 생성된 파일 데이터 청크에 대한 식별자 정보는 파일의 메타 데이터 정보로 메타 데이터 서버(111, 112)에 저장 및 유지된다.In the asymmetric distributed file system 100 according to the embodiment of the present invention, original file data is divided into chunks of a predetermined size and distributed to the data servers 120-1, 120-2, 120-3, ..., 120- And replica file data is divided into chunks of a predetermined size and distributed to the replica servers 130-1, ..., and 130-m. The metadata servers 111 and 112 select a data server on which the original file data chunk is to be generated and also select the replica servers 130-1,..., And 130-m for which a replica file data chunk is to be generated. The file data chunks are distinguished by unique identifiers, and the identifier information for the generated file data chunks is stored and held in the metadata servers 111 and 112 as metadata information of the files.

데이터 서버(120-1, 120-2, 120-3, …, 120-n)는 원본 파일 데이터 청크를 저장하고 관리하며, 복제 서버(130-1, …, 130-m)는 복제본 파일 데이터 청크를 저장하고 관리한다. 데이터 서버(120-1, 120-2, 120-3, …, 120-n) 및 복제 서버(130-1, …, 130-m)는 주기적으로 메타 데이터 서버(111, 112)에게 자신의 상태 정보를 보고한다.The data servers 120-1, 120-2, 120-3, ..., 120-n store and manage original file data chunks, and the replica servers 130-1, ..., 130- . The data servers 120-1, 120-2, 120-3, ..., 120-n and the replica servers 130-1, ..., and 130-m periodically inform the metadata servers 111, Report the information.

클라이언트 단말(10-1, 10-2, 10-3, 10-4, …, 10-k), 메타 데이터 서버(111, 112), 데이터 서버(120-1, 120-2, 120-3, …, 120-n), 복제 서버(130-1, …, 130-m)들은 네트워크를 통해 상호 연결되며, 복수의 RAID(Redundant Array of Inexpensive Disks) 레벨 중에서 하나의 RAID 레벨을 적용하여 RAID 볼륨(volume)을 구성할 수 있다. 예컨대, 데이터 서버(120-1, 120-2, 120-3, …, 120-n)는 RAID 레벨 0과 같이 데이터의 읽기/쓰기 성능이 우수한 레벨을 적용하여 볼륨을 구성할 수 있고, 복제 서버(130-1, …, 130-m)는 RAID 레벨 5나 RAID 레벨 6 등과 같이 신뢰성(reliability)이 우수한 레벨을 적용하여 볼륨을 구성할 수 있다.The client terminals 10-1, 10-2, 10-3, 10-4, ..., 10-k, the metadata servers 111 and 112, the data servers 120-1, 120-2, ..., and 130-m are interconnected through a network and apply one RAID level among a plurality of Redundant Array of Inexpensive Disks (RAID) levels to create RAID volumes volume can be configured. For example, the data servers 120-1, 120-2, 120-3, ..., and 120-n can configure a volume by applying a level of excellent data read / write performance such as RAID level 0, (130-1, ..., 130-m) can constitute a volume by applying a level having an excellent reliability such as a RAID level 5, a RAID level 6, and the like.

RAID는 값싼 디스크를 여러 개 묶어 대용량의 저장공간을 만들고자 하는 요구로 처음 등장하였지만 최근에는 디스크의 가격이 저렴해 지면서 용어적 의미가 퇴색되었으며, 최근에는 Redundant Array of Independent Disks라고 불리기도 한다.RAID was first introduced as a requirement to create a large storage space by bundling several cheap disks, but in recent years the price has become cheaper and the term meaning has been faded and recently it is also called Redundant Array of Independent Disks.

RAID는 디스크의 중복성(redundancy)과 성능 향상(performance improvement)을 목적으로 하며, 구성에 따라 총 6가지(0, 1, 2, 3, 4, 5, 6)의 레벨로 나눌 수 있다. 레벨에 따라 서로 다른 신뢰성과 성능 향상을 보여준다. 레벨에 따라 묶여진 디스크는 하나의 볼륨처럼 사용되기 때문에 RAID 볼륨이라 부른다. RAID 레벨에 따른 특성을 살펴보면 아래와 같다.RAID is aimed at disk redundancy and performance improvement, and can be divided into six levels (0, 1, 2, 3, 4, 5, 6) depending on the configuration. Different levels show different reliability and performance improvements. Because the disks that are grouped according to the level are used as one volume, they are called RAID volumes. The characteristics according to the RAID level are as follows.

(RAID 0)(RAID 0)

RAID 레벨 0은 2개 이상의 디스크를 사용하여 2개 이상의 볼륨을 구성하는 것이다. 단순히 볼륨마다 디스크를 나열해 놓았기 때문에 스트라이핑(striping) 모드라고 불린다. 일반적으로 RAID 0에서는 특정 데이터를 쓸 때 볼륨의 수만큼 나누어 같은 디스크의 같은 섹터에 병렬로 기록한다. 따라서 데이터의 읽기/쓰기 성능이 매우 향상된다.RAID level 0 is the configuration of two or more volumes using two or more disks. It is simply called striping mode because the disks are listed for each volume. Generally, in RAID 0, when writing specific data, the number of volumes is divided and written in parallel to the same sector of the same disk. Therefore, the data read / write performance is greatly improved.

하지만 데이터가 분할되어 있기 때문에 볼륨을 구성하는 하나의 디스크만 고장이 나도 데이터를 복구할 수 없다. 빠른 속도가 필요한 시스템이라면 고려해볼 수 있겠지만 데이터의 안정성이 필요한 시스템이라면 레벨 0은 바람직하지 않다.However, because the data is partitioned, only one disk that constitutes a volume can fail to recover even if it fails. You can think of systems that need fast speeds, but level 0 is undesirable if the system requires data stability.

(RAID 1)(RAID 1)

RAID 레벨 1은 동일한 RAID 볼륨을 추가적으로 구성한 것이다. 구성한 볼륨이 서로 동일하기 때문에 미러링(mirroring) 모드로 불린다. 이 레벨에서는 볼륨 0에 데이터를 읽고 쓸 때마다 동일한 작업은 볼륨 1에도 수행한다. 따라서 볼륨 내 디스크가 고장이나 오류가 발생하면 다른 볼륨의 디스크를 사용하여 정상적으로 읽기/쓰기 작업이 되도록 도와준다.RAID level 1 is an additional configuration of the same RAID volume. This is called mirroring mode because the volumes you configure are identical to each other. At this level, each time you read and write data to volume 0, the same operation is performed on volume 1 as well. Therefore, if a disk in a volume fails or fails, it will help to read / write normally by using disk of another volume.

읽기 성능은 다중 쓰레드를 사용할 경우 분할해서 읽을 수 있기 때문에 성능 향상을 보일 수 있지만 쓰기는 중복해서 써야 하므로 성능이 저하된다. 서버용과 같이 데이터의 신뢰성이 중요한 경우에 사용하기도 하지만 디스크 구성 비용이 2배로 들기 때문에 별로 선호되지 못한다.The read performance can be improved because it can be divided and read when using multi-thread, but the performance is degraded because the write must be written in duplicate. They are often used when data reliability is important, such as for servers, but they are not preferred because they cost twice as much disk configuration costs.

(RAID 2)(RAID 2)

RAID 레벨 2는 RAID 레벨 0의 장점을 사용하면서 신뢰성을 높이기 위한 방법이다. 4개의 볼륨을 스트라이핑 모드로 구성하고 추가적으로 3개의 볼륨을 이용해 앞의 4개의 볼륨에 대한 에러 정정 코드인 패리티를 저장한다. 패리티는 일반적으로 해밍 코드(hamming code)로 계산된다. 그리고 RAID 레벨 2를 구성하기 위해서는 최소한 3개의 디스크가 필요하다. 패리티 저장을 위해 추가적인 디스크가 요구되기 때문이다. 총 7개의 디스크가 사용되는 이유는 각 볼륨(볼륨 0-볼륨 1, 볼륨 1-볼륨 2, 볼륨 2-볼륨 3)간의 패리티를 별도로 저장하기 때문이다. 이와 같은 구성으로 만약 여러 개의 디스크가 오류가 나도 정상적으로 복구가 가능하다.RAID level 2 is a way to increase reliability while taking advantage of RAID level 0. Four volumes are configured in striping mode and an additional three volumes are used to store parity, the error correction code for the previous four volumes. Parity is generally calculated as a hamming code. At least three disks are required to configure RAID level 2. This is because additional disks are required for parity storage. A total of seven disks are used because they store separate parity between each volume (Volume 0 - Volume 1, Volume 1 - Volume 2, Volume 2 - Volume 3). With this configuration, if multiple disks fail, they can be recovered normally.

(RAID 3)(RAID 3)

RAID 레벨 3은 RAID 레벨 2의 단점을 조금 개선한 것이다. 패리티 저장을 위해 데이터 저장 볼륨 -1만큼의 추가적인 볼륨이 필요했지만 RAID 3은 단지 하나의 볼륨만 가지고 패리티를 저장한다. 따라서 디스크의 추가적인 비용이 더 적게 든다. 하지만 만약 각 볼륨의 동일한 위치가 동시에 오류가 나거나 고장이 날 경우에는 복구하기가 애매하다.RAID level 3 is a slight improvement on the disadvantages of RAID level 2. Data storage for parity storage An additional volume of 1 was needed, but RAID 3 stores parity with only one volume. Thus, the additional cost of the disk is less. However, if the same location on each volume fails or fails at the same time, it is vague to recover.

RAID 레벨 3의 특징은 바이트 레벨에서의 패리티를 생성한다는 것이다. 따라서 각 볼륨의 바이트에 대해 간단히 XOR 연산을 통해 패리티 계산이 가능하다. 또한, 패리티 저장을 위한 볼륨으로 최소한 3개의 디스크가 필요하다.A feature of RAID level 3 is that it generates parity at the byte level. Therefore, it is possible to perform parity calculation by simply XOR operation on the bytes of each volume. Also, at least three disks are required as the volume for parity storage.

(RAID 4)(RAID 4)

RAID 레벨 4는 RAID 레벨 3과 별 차이가 없어 보인다. 실제로도 두 레벨의 구성은 동일하다. 차이점은 RAID 레벨 3은 바이트 단위로 데이터를 분할하고 패리티를 계산하는데 반해 RAID 레벨 4는 미리 정해진 블록 단위로 데이터를 분할하고 패리티를 계산한다는 점이다. 블록 단위로 데이터를 처리하기 때문에 레벨 3보다 좀 더 성능 향상을 이룰 수 있다. 그리고 레벨 4도 역시 패리티 저장이 필요하므로 최소한 디스크가 3개 필요하다.RAID level 4 does not seem to be much different from RAID level 3. In reality, the configuration of the two levels is the same. The difference is that RAID level 3 divides the data in bytes and calculates the parity, while RAID level 4 divides the data in predetermined blocks and calculates the parity. Since the data is processed in block units, performance can be improved more than level 3. Level 4 also requires parity storage, so at least three disks are needed.

(RAID 5)(RAID 5)

RAID 레벨 5는 RAID 레벨 4의 단점을 개선하기 위해 설계되었다. 레벨 2는 패리티 디스크들이 같은 볼륨에 속해 있기 때문에 데이터의 변화가 빈번한 경우 패리티 디스크 볼륨은 큰 부하를 받게 된다. 따라서 성능상의 효율을 위해 패리티 디스크들을 각 볼륨에 분할시킨 것이 RAID 레벨 5이다. 레벨 5도 패리티가 필요하므로 최소한 3개의 디스크가 필요하다.RAID level 5 is designed to improve the disadvantages of RAID level 4. In Level 2, the parity disk volume is under heavy load when data changes frequently because the parity disks belong to the same volume. Therefore, RAID level 5 is the partitioning of parity disks into each volume for performance efficiency. Level 5 requires parity, so you need at least three disks.

(RAID 6)(RAID 6)

RAID 레벨 6은 신뢰성에 좀 더 기반을 둔 구성이다. RAID 레벨 5의 경우에도 2개의 디스크에 동시에 오류가 날 경우 복구하기 힘들지만 레벨 6은 패리티 디스크를 하나 더 추가해 동시에 오류가 나도 복구가 가능하게 만들었다. 실제로 각 볼륨마다 패리티 디스크가 2개씩 존재한다. 이를 통해 볼륨의 가로 방향, 세로 방향의 패리티 생성이 가능하다. 추가적인 패리티 디스크가 필요하므로 최소한 4개의 디스크가 있어야 구성이 가능하다.RAID level 6 is a more reliable configuration. In RAID level 5, it is hard to recover if two disks fail at the same time, but level 6 adds one additional parity disk to make it possible to recover even if there are no errors at the same time. Actually, there are two parity disks for each volume. This allows the generation of parity in the horizontal and vertical directions of the volume. Since additional parity disks are required, a minimum of four disks can be configured.

지금까지 살펴본 바와 같이 RAID 레벨 5와 RAID 레벨 6은 높은 신뢰성을 제공하는데 읽기/쓰기를 위한 속도 측면의 성능은 상대적으로 떨어진다. 그러나, 본 발명의 복제 서버(130-1, …, 130-m)는 빠른 속도보다는 높은 신뢰성이 요구되기에 RAID 레벨 5나 RAID 레벨 6을 적용할 수 있다.As we have seen, RAID level 5 and RAID level 6 provide high reliability, but the performance of the speed for read / write is relatively low. However, since the replica servers 130-1, ..., and 130-m of the present invention require higher reliability than the high-speed, RAID level 5 or RAID level 6 can be applied.

도 2는 본 발명의 실시예에 따른 비대칭 분산 파일 데이터 처리 방법을 설명하기 위한 흐름도이다. 도 2에서는 설명의 이해를 돕기 위하여 비대칭 분산 파일 데이터 처리 방법을 여러 개의 단계로 나누어 시계열적으로 나열하였지만 각 단계들은 그 순서가 바뀌거나 동일한 순서에서 동시에 수행될 수도 있다. 예컨대, 단계 S203과 단계 S211은 동일한 순서에 동시에 수행될 수 있으며, 단계 S207과 단계 S215도 동일한 순서에 동시에 수행될 수도 있다.2 is a flowchart illustrating an asymmetric distributed file data processing method according to an embodiment of the present invention. In FIG. 2, the asymmetric distributed file data processing method is divided into a plurality of steps and listed in a time series in order to facilitate the understanding of the description, but each step may be performed in the same order or in the same order. For example, steps S203 and S211 may be performed simultaneously in the same order, and steps S207 and S215 may be performed simultaneously in the same order.

이에 나타낸 바와 같이 비대칭 분산 파일 데이터 처리 방법은, 레이어1에 배치된 메타 데이터 서버가 원본 데이터 및 복제본 데이터의 쓰기 위치에 해당하는 청크(블록)를 할당하는 단계(S203, S211)와, 레이어2에 배치된 데이터 서버가 원본 데이터에 대한 쓰기 동작을 수행하는 단계(S205)와, 데이터 서버가 원본 데이터에 대한 쓰기 동작을 완료하면 메타 데이터 서버가 클라이언트 단말에게 데이터 쓰기 완료 메시지를 전송하는 단계(S209)와, 레이어3에 배치된 복제 서버가 복제본 데이터에 대한 쓰기 동작을 수행하는 단계(S213)와, 메타 데이터 서버가 원본 데이터 및 복제본 데이터의 메타 데이터를 저장하는 단계(S207, S215)를 포함할 수 있다.As described above, the asymmetric distributed file data processing method includes steps (S203 and S211) of allocating chunks (blocks) corresponding to the writing locations of the original data and the replica data to the metadata server arranged in the layer 1, A step S209 of the data server performing a write operation on the original data, and a step S209 of the metadata server transmitting a data write completion message to the client terminal when the data server completes the write operation on the original data, A step S213 of performing a write operation on the replica data by the replica server arranged in the layer 3, and a step S207 and S215 of storing the metadata of the original data and the replica data by the metadata server have.

이하, 도 1 및 도 2를 참조하여 비대칭 분산 파일 시스템에 의한 데이터 처리 방법을 시계열적으로 살펴보기로 한다.Hereinafter, a data processing method using an asymmetric distributed file system will be described in a time-wise manner with reference to FIGS. 1 and 2. FIG.

먼저, 클라이언트 단말(10-1, 10-2, 10-3, 10-4, …, 10-k)이 메타 데이터 서버(111, 112)에게 파일 데이터에 대한 저장을 요청하면 메타 데이터 서버(111, 112)가 원본 데이터 쓰기 위치에 해당하는 청크(블록)을 할당한다(S203).First, when the client terminals 10-1, 10-2, 10-3, 10-4, ..., 10-k request storage of file data to the metadata servers 111 and 112, , 112) allocates a chunk (block) corresponding to the original data writing position (S203).

그러면, 클라이언트 단말(10-1, 10-2, 10-3, 10-4, …, 10-k)과 데이터 서버(120-1, 120-2, 120-3, …, 120-n)는 메타 데이터 서버(111, 112)가 할당한 데이터 서버(120-1, 120-2, 120-3, …, 120-n)의 청크(블록)에 원본 데이터를 기록하는 원본 데이터 쓰기 동작을 수행한다(S205).Then, the client terminals 10-1, 10-2, 10-3, 10-4, ..., 10-k and the data servers 120-1, 120-2, 120-3, ..., The original data is written in chunks (blocks) of the data servers 120-1, 120-2, 120-3, ..., and 120-n assigned by the metadata servers 111 and 112 (S205).

데이터 서버(120-1, 120-2, 120-3, …, 120-n)에 의한 원본 데이터 쓰기 동작이 완료되면 메타 데이터 서버(111, 112)는 원본 데이터 청크(블록) 정보를 포함하는 메타 데이터를 저장한다(S207).When the original data writing operation by the data servers 120-1, 120-2, 120-3, ..., and 120-n is completed, the metadata servers 111 and 112 store the metadata including the original data chunk (block) And stores the data (S207).

아울러, 메타 데이터 서버(111, 112)는 데이터 쓰기가 완료되었음을 나타내는 데이터 쓰기 완료 메시지를 생성하여 클라이언트 단말(10-1, 10-2, 10-3, 10-4, …, 10-k)에게 전송한다(S209).In addition, the metadata servers 111 and 112 generate a data write completion message indicating that data writing has been completed and send the data write completion message to the client terminals 10-1, 10-2, 10-3, 10-4, ..., 10-k (S209).

다음으로, 메타 데이터 서버(111, 112)가 복제본 데이터 쓰기 위치에 해당하는 청크(블록)을 할당한다(S211).Next, the metadata servers 111 and 112 allocate chunks (blocks) corresponding to the replica data writing locations (S211).

그러면, 데이터 서버(120-1, 120-2, 120-3, …, 120-n) 및 복제 서버(130-1, …, 130-m)는 메타 데이터 서버(111, 112)가 할당한 복제 서버(130-1, …, 130-m)의 청크(블록)에 복제본 데이터를 기록하는 복제본 데이터 쓰기 동작을 수행한다(S213).The data servers 120-1, 120-2, 120-3, ..., 120-n and the duplication servers 130-1, ..., and 130- The replica data writing operation for recording the replica data in the chunks (blocks) of the servers 130-1, ..., and 130-m is performed (S213).

이처럼, 원본 데이터에 대한 쓰기 동작과 복제본 데이터에 대한 쓰기 동작은 이원화하여 비동기로 수행하며, 원본 데이터에 대한 쓰기 동작이 완료되면 곧바로 클라이언트 단말(10-1, 10-2, 10-3, 10-4, …, 10-k)에게 데이터 쓰기 동작이 완료되었음을 알려주고, 데이터 서버(120-1, 120-2, 120-3, …, 120-n)와 복제 서버(130-1, …, 130-m)는 상호간에 직접 데이터를 송수신하여 복제본을 생성한다.As described above, the write operation for the original data and the write operation for the replica data are performed in an asynchronous manner. When the write operation for the original data is completed, the client terminals 10-1, 10-2, 10-3, The data servers 120-1, 120-2, 120-3, ..., 120-n and the replica servers 130-1, ..., 130- m) send and receive data directly to each other to generate a duplicate.

끝으로, 데이터 서버(120-1, 120-2, 120-3, …, 120-n)에 의한 원본 데이터 쓰기 동작이 완료되면 메타 데이터 서버(111, 112)는 복제본 데이터 청크(블록) 정보를 포함하는 메타 데이터를 저장한다(S215).Finally, when the original data writing operation by the data servers 120-1, 120-2, 120-3, ..., and 120-n is completed, the metadata servers 111 and 112 store replica data chunk (block) information And stores metadata including the metadata (S215).

앞서 설명한 바와 같이 도 2의 실시예에서는 단계 S203 내지 단계 S207의 원본 데이터 쓰기 과정과 단계 S211 내지 단계 S215의 복제본 데이터 쓰기 과정이 순차적으로 수행되는 경우를 예시하였으나, 원본 데이터 쓰기 과정에 포함된 일부 순서와 복제본 데이터 쓰기 과정에 포함된 일부 순서는 동시에 수행될 수도 있다. 예컨대, 원본 데이터 쓰기 위치에 해당하는 청크(블록)과 복제본 데이터 쓰기 위치에 해당하는 청크(블록)을 동시에 할당하며(S203, S211), 원본 데이터 쓰기 동작과 복제본 데이터 쓰기 동작을 순차적으로 수행하고(S205, S213), 원본 데이터 청크(블록) 정보를 포함하는 메타 데이터와 복제본 데이터 청크(블록) 정보를 포함하는 메타 데이터를 동시에 저장할 수 있다(S207, S215).As described above, in the embodiment of FIG. 2, the original data writing process of steps S203 to S207 and the replica data writing process of steps S211 to S215 are sequentially performed. However, And some sequences involved in the process of writing replica data may be performed concurrently. For example, chunks (blocks) corresponding to the original data writing position and chunks (blocks) corresponding to the replica data writing positions are simultaneously allocated (S203 and S211), and the original data writing operation and the replica data writing operation are sequentially performed S205, and S213), metadata including original data chunk (block) information and metadata including replica data chunk (block) information can be simultaneously stored (S207, S215).

한편, 클라이언트 단말(10-1, 10-2, 10-3, 10-4, …, 10-k)이 파일 데이터에 대한 읽기 동작을 수행하고자 할 때에는 메타 데이터 서버(111, 112)에게 해당 파일의 메타 데이터를 요청하며, 메타 데이터를 액세스하여 이에 포함된 청크(블록) 정보에 의거하여 데이터 서버(120-1, 120-2, 120-3, …, 120-n) 및/또는 복제 서버(130-1, …, 130-m)로부터 파일 데이터를 읽어 들인다.On the other hand, when the client terminal 10-1, 10-2, 10-3, 10-4, ..., 10-k wants to perform a read operation on file data, the metadata server 111, (120-1, 120-2, 120-3, ..., 120-n) and / or the replication server (120-1) based on the chunk (block) 130-1, ..., 130-m.

본 발명의 실시예는, 웹하드와 인터넷하드 등의 용어로 불리는 데이터 저장 서비스 서버와 이를 이용한 서비스 시스템 및 그 데이터 처리 방법, 네트워크를 통하여 가상화된 스토리지 자원을 사용자의 요구에 따라 제공하는 클라우드 스토리지 서버와 이를 이용한 서비스 시스템 및 그 데이터 처리 방법, 복수의 데이터 센터를 운영하는 것이 보편적인 유선 통신 또는 무선 통신 서비스 시스템과 그 서비스 방법 등과 같이 데이터 안정성 및 성능 향상을 위해 파일별로 복제본들을 여러 저장공간으로 분산하여 생성 및 관리하는 기술 분야에 이용할 수 있다.The embodiment of the present invention is applicable to a data storage service server called a web hard and an internet hard, a service system using the same, a data processing method thereof, a cloud storage server providing virtualized storage resources through a network, And a data processing method using the same, and a plurality of data centers are operated in a wired communication or a wireless communication service system and a service method thereof. In order to improve data stability and performance, And the like.

10-1, 10-2, 10-3, 10-4, …, 10-k : 클라이언트 단말
111, 112 : 메타 데이터 서버
120-1, 120-2, 120-3, …, 120-n : 데이터 서버
130-1, …, 130-m : 복제 서버
10-1, 10-2, 10-3, 10-4, ... , 10-k: client terminal
111, 112: Metadata server
120-1, 120-2, 120-3, ... , 120-n: data server
130-1, ... , 130-m: Replication Server

Claims (16)

원본 데이터에 대한 쓰기 동작을 수행하는 데이터 서버와,
복제본 데이터에 대한 쓰기 동작을 수행하는 복제 서버와,
메타 데이터 서버를 포함하며,
상기 메타 데이터 서버는,
상기 원본 데이터의 쓰기 위치에 해당하는 청크(블록)를 상기 데이터 서버에게 할당한 후 상기 원본 데이터의 쓰기 동작이 수행되면 상기 원본 데이터의 메타 데이터를 저장하고, 상기 복제본 데이터의 쓰기 위치에 해당하는 청크(블록)를 상기 복제 서버에게 할당한 후 상기 복제본 데이터의 쓰기 동작이 수행되면 상기 복제본 데이터의 메타 데이터를 저장하며,
상기 데이터 서버와 상기 복제 서버는 서로 다른 레이어에 배치되고, 서로 다른 레벨의 RAID가 적용된,
비대칭 분산 파일 시스템.
A data server for performing a write operation on the original data,
A replica server that performs a write operation to the replica data,
A metadata server,
The metadata server includes:
Wherein when a write operation of the original data is performed after storing a chunk (block) corresponding to a writing position of the original data to the data server, the metadata of the original data is stored, (Block) to the copy server, and when the write operation of the copy data is performed, the metadata of the copy data is stored,
Wherein the data server and the replication server are arranged in different layers,
Asymmetric distributed file system.
제 1 항에 있어서,
상기 데이터 서버와 상기 복제 서버는, 상기 원본 데이터에 대한 쓰기 동작과 상기 복제본 데이터에 대한 쓰기 동작을 비동기로 수행하는
비대칭 분산 파일 시스템.
The method according to claim 1,
Wherein the data server and the replica server execute asynchronously a write operation on the original data and a write operation on the replica data
Asymmetric distributed file system.
삭제delete 제 1 항에 있어서,
상기 복제 서버는, RAID 레벨 5 또는 RAID 레벨 6을 적용한
비대칭 분산 파일 시스템.
The method according to claim 1,
The replication server may be configured to use RAID level 5 or RAID level 6
Asymmetric distributed file system.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 메타 데이터 서버가 제 1 레이어에 배치된 데이터 서버에게 원본 데이터의 쓰기 위치에 해당하는 청크(블록)를 할당하는 단계와,
상기 데이터 서버가 상기 원본 데이터에 대한 쓰기 동작을 수행하는 단계와,
상기 메타 데이터 서버가 상기 원본 데이터의 메타 데이터를 저장하는 단계와,
상기 메타 데이터 서버가 제 2 레이어에 배치된 복제 서버에게 복제본 데이터의 쓰기 위치에 해당하는 청크(블록)를 할당하는 단계와,
상기 복제 서버가 상기 복제본 데이터에 대한 쓰기 동작을 수행하는 단계와,
상기 메타 데이터 서버가 상기 복제본 데이터의 메타 데이터를 저장하는 단계를 포함하며,
상기 데이터 서버와 상기 복제 서버는 서로 다른 레벨의 RAID가 적용된,
비대칭 분산 파일 시스템의 데이터 처리 방법.
A step in which the metadata server allocates a chunk (block) corresponding to the writing position of the original data to the data server disposed in the first layer;
The data server performing a write operation on the original data;
The metadata server storing metadata of the original data;
The metadata server assigning a chunk (block) corresponding to a write location of the replica data to a replica server disposed in a second layer;
Performing a write operation on the replica data by the replica server;
Wherein the metadata server stores metadata of the replica data,
Wherein the data server and the replica server have different levels of RAID,
A method for processing data in an asymmetric distributed file system.
제 11 항에 있어서,
상기 원본 데이터에 대한 쓰기 동작과 상기 복제본 데이터에 대한 쓰기 동작을 비동기로 수행하는
비대칭 분산 파일 시스템의 데이터 처리 방법.
12. The method of claim 11,
A write operation for the original data and a write operation for the replica data are performed asynchronously
A method for processing data in an asymmetric distributed file system.
삭제delete 삭제delete 삭제delete 삭제delete
KR1020100089571A 2010-09-13 2010-09-13 Asymmetric distributed file system and data processing method therefor KR101679303B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100089571A KR101679303B1 (en) 2010-09-13 2010-09-13 Asymmetric distributed file system and data processing method therefor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100089571A KR101679303B1 (en) 2010-09-13 2010-09-13 Asymmetric distributed file system and data processing method therefor

Publications (2)

Publication Number Publication Date
KR20120027786A KR20120027786A (en) 2012-03-22
KR101679303B1 true KR101679303B1 (en) 2016-11-24

Family

ID=46132865

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100089571A KR101679303B1 (en) 2010-09-13 2010-09-13 Asymmetric distributed file system and data processing method therefor

Country Status (1)

Country Link
KR (1) KR101679303B1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101694308B1 (en) * 2012-05-22 2017-01-09 한국전자통신연구원 Data replication apparatus and method using hierarchical organization of data servers
CN107656695B (en) * 2016-07-25 2020-12-25 杭州海康威视数字技术股份有限公司 Data storage and deletion method and device and distributed storage system
KR102356307B1 (en) * 2017-09-06 2022-01-26 에스케이텔레콤 주식회사 Method And Apparatus for Recovery in Flash Storage Using Selective Erasure Coding
WO2021189306A1 (en) * 2020-03-25 2021-09-30 Beijing Didi Infinity Technology And Development Co., Ltd. Write operation in object storage system using enhanced meta structure

Also Published As

Publication number Publication date
KR20120027786A (en) 2012-03-22

Similar Documents

Publication Publication Date Title
USRE49011E1 (en) Mapping in a storage system
AU2012294218B2 (en) Logical sector mapping in a flash storage array
US9804939B1 (en) Sparse raid rebuild based on storage extent allocation
JP6124902B2 (en) Variable length coding in storage systems
US9417955B2 (en) Data reconstruction in distributed data storage system with key-based addressing
CN106687911B (en) Online data movement without compromising data integrity
US9280457B2 (en) System and method for volume block number to disk block number mapping
US9740416B2 (en) Essential metadata replication
US11074129B2 (en) Erasure coded data shards containing multiple data objects
US9639268B2 (en) Distributed data storage system with key-based addressing
US11256447B1 (en) Multi-BCRC raid protection for CKD
KR101679303B1 (en) Asymmetric distributed file system and data processing method therefor
JP2006331076A (en) Data storage system and storage method
US20180307427A1 (en) Storage control apparatus and storage control method

Legal Events

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