KR20120027786A - Meta-data server, data server, replica server, asymmetric distributed file system, and data processing method therefor - Google Patents

Meta-data server, data server, replica server, asymmetric distributed file system, and data processing method therefor Download PDF

Info

Publication number
KR20120027786A
KR20120027786A KR1020100089571A KR20100089571A KR20120027786A KR 20120027786 A KR20120027786 A KR 20120027786A KR 1020100089571 A KR1020100089571 A KR 1020100089571A KR 20100089571 A KR20100089571 A KR 20100089571A KR 20120027786 A KR20120027786 A KR 20120027786A
Authority
KR
South Korea
Prior art keywords
data
server
write operation
write
replica
Prior art date
Application number
KR1020100089571A
Other languages
Korean (ko)
Other versions
KR101679303B1 (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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

PURPOSE: A metadata server, a data server, a replicated server, an asymmetric distributed file system, and a data processing method are provided to support storing spaces through small number of computers by arranging a data server and a replicated server to different layers. CONSTITUTION: Data servers(120-1, 120-2, 120-3, 120-n) performs a writing operation about original data. Copy servers(130-1, 130-m) perform a writing operation about replicated data. Metadata servers allocate chunks corresponding to the writing location of replicated data and original data. The metadata servers store the original data and the metadata of the replicated data. The data servers and the replicated servers perform a writing operation about the original data.

Description

메타 데이터 서버, 데이터 서버, 복제 서버, 비대칭 분산 파일 시스템 및 그 데이터 처리 방법{META-DATA SERVER, DATA SERVER, REPLICA SERVER, ASYMMETRIC DISTRIBUTED FILE SYSTEM, AND DATA PROCESSING METHOD THEREFOR}Metadata Servers, Data Servers, Replication Servers, Asymmetric Distributed File Systems, and Methods for Processing Data {META-DATA SERVER, DATA SERVER, REPLICA SERVER, ASYMMETRIC DISTRIBUTED FILE SYSTEM, AND DATA PROCESSING METHOD THEREFOR}

본 발명은 비대칭 분산 파일 시스템에 관한 것으로, 더욱 상세하게는 메타 데이터 서버와 데이터 서버 및 복제 서버를 각각 별도의 레이어에 배치한 비대칭 분산 파일 시스템과 이를 구성하는 메타 데이터 서버와 데이터 서버 및 복제 서버, 그리고 이들의 데이터 쓰기 동작 및 데이터 읽기 동작을 위한 데이터 처리 방법에 관한 것이다.The present invention relates to an asymmetric distributed file system, and more particularly, an asymmetric distributed file system having a metadata server, a data server, and a replication server on separate layers, a metadata server, a data server, and a replication server constituting the same. And it relates to a data processing method for these data write operation and data read operation.

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

이러한 메타 데이터 서버와 데이터 서버들은 네트워크로 연결되어 분산된 구조를 갖는다. 따라서 클라이언트 단말은 파일의 메타 데이터와 데이터를 접근하는 경로가 분리된다. 즉, 파일을 액세스하기 위해서, 클라이언트 단말은 먼저 메타 데이터 서버에 있는 파일의 메타 데이터를 액세스해서 실제 데이터가 저장되어 있는 데이터 서버들에 대한 정보를 얻는다. 그리고 나서 실제 데이터에 대한 입출력은 데이터 서버들을 통하여 이루어진다.These metadata servers and data servers are distributed over a network. Therefore, the client terminal is separated from the file metadata 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 to obtain information about the data servers in which the actual data is stored. Then input and output to the actual data is done through the data servers.

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

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

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

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

본 발명은 이와 같은 종래 기술의 문제점을 해결하기 위해 제안한 것으로서, 메타 데이터 서버와 데이터 서버 및 복제 서버를 각각 별도의 레이어에 배치하고 원본 데이터 쓰기 동작과 복제본 데이터 쓰기 동작을 이원화하여 낮은 지연을 지원하는 비대칭 분산 파일 시스템을 제공한다.The present invention has been proposed to solve the above problems of the prior art, and the metadata server, the data server and the replication server are arranged in separate layers, and the original data write operation and the duplicate data write operation to support low latency Provide an asymmetric distributed file system.

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

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

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

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

상기 데이터 서버와 상기 복제 서버는, 서로 다른 레벨의 RAID를 적용할 수 있다.The data server and the replication server may 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, the metadata server allocates a chunk (block) corresponding to a write position of a data server to perform a write operation on original data, and writes a replication server to perform a write operation on replica data. The chunk (block) corresponding to a location may be allocated, and metadata of the original data and the replica data may be stored.

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

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

본 발명의 제 4 관점으로서 복제 서버는, 메타 데이터 서버가 복제본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 청크(블록)를 할당하면 원본 데이터에 대한 쓰기 동작을 수행한 데이터 서버로부터 상기 원본 데이터를 전송 받아 상기 복제본 데이터에 대한 쓰기 동작을 수행할 수 있다.As a fourth aspect of the present invention, if the metadata server allocates a chunk (block) corresponding to a write position to perform a write operation on the replica data, the replication server receives the original data from the data server performing the write operation on the original data. The data may be received to perform a write operation on the copy data.

여기서, 상기 복제 서버는, 상기 데이터 서버와는 다른 레벨의 RAID를 적용할 수 있다.Here, the replication server may apply a RAID having a different level 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, a data processing method of an asymmetric distributed file system includes a method in which a metadata server allocates chunks (blocks) corresponding to write positions of original data and replica data, and the data server is configured for the original data. The method may include performing a write operation, performing a write operation on the replica data by the replication server, and storing the original data and metadata of the replica data by the metadata server.

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

본 발명의 제 6 관점으로서 메타 데이터 서버의 데이터 처리 방법은, 원본 데이터에 대한 쓰기 동작을 수행할 데이터 서버의 쓰기 위치에 해당하는 청크(블록)를 할당하는 단계와, 복제본 데이터에 대한 쓰기 동작을 수행할 복제 서버의 쓰기 위치에 해당하는 상기 청크(블록)를 할당하는 단계와, 상기 원본 데이터 및 상기 복제본 데이터의 메타 데이터를 저장하는 단계를 포함할 수 있다.According to a sixth aspect of the present invention, a data processing method of a metadata server may include allocating a chunk (block) corresponding to a write position of a data server to perform a write operation on original data, and performing a write operation on replica data. The method may include allocating the chunk (block) corresponding to a write position of a replication 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 a client terminal when the data server completes a write operation on the original data.

본 발명의 제 7 관점으로서 데이터 서버의 데이터 처리 방법은, 메타 데이터 서버로부터 원본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 청크(블록)를 할당 받는 단계와, 할당된 상기 청크(블록)에 상기 원본 데이터를 기록하는 쓰기 동작을 수행하는 단계와, 상기 메타 데이터 서버가 복제본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 상기 청크(블록)를 할당하면 복제 서버에게 상기 원본 데이터를 전송하여 상기 복제 서버가 상기 복제본 데이터에 대한 쓰기 동작을 수행하도록 하는 단계를 포함할 수 있다.According to a seventh aspect of the present invention, a data processing method of a data server includes: receiving a chunk (block) corresponding to a write position to perform a write operation on an original data from a metadata server, and the allocated chunk (block). Performing a write operation of recording the original data in the; and if the metadata server allocates the chunk (block) corresponding to a write position to perform a write operation on the replica data, the original data is transmitted to a replication server. 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 replication server, the method comprising: receiving a chunk (block) corresponding to a write position to perform a write operation on a replica data from a metadata server, and source data from the metadata server. Receiving the original data from a data server performing a write operation of receiving the chunk (block) corresponding to the write position to perform a write operation on the original data, and the allocated chunk (block). And performing a write operation to record the copy data at.

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

아울러, 데이터 서버와 복제 서버를 서로 다른 레이어에 배치함으로써 서로 다른 RAID를 적용할 수 있으므로 데이터 서버와 복제 서버를 동일한 레이어에 배치하는 종래 기술과 비교할 때에 더 적은 수의 컴퓨터를 이용하여 더 많은 저장 공간을 지원할 수 있으며, 데이터 오류 복구에 대한 지원이 용이하여 데이터 안전성을 강화하는 효과가 있다.In addition, different RAIDs can be applied by placing data servers and replica servers on different layers, thus using more storage space with fewer computers compared to the prior art of placing data servers and replica servers on the same layer. It is possible to support the data error recovery, and it is easy to support data error recovery, thereby enhancing the data safety.

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

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.Advantages and features of the present invention and methods for achieving them will be apparent with reference to the embodiments described below in detail with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various different forms, and only the embodiments make the disclosure of the present invention complete, and the general knowledge in the art to which the present invention belongs. It is provided to fully inform the person having the scope of the invention, which is defined only by the scope of the claims.

본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. In describing the embodiments of the present invention, if it is determined that a detailed description of a known function or configuration may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, terms to be described below are terms defined in consideration of functions in the embodiments of the present invention, which may vary according to intentions or customs of users and operators. 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 mounted on a processor of a general purpose computer, special purpose computer, or other programmable data processing equipment such that instructions executed through the processor of the computer or other programmable data processing equipment may not be included in each block or flowchart of the block diagram. It will create means for performing the functions described in each step. These computer program instructions may be stored in a computer usable or computer readable memory that can be directed to a computer or other programmable data processing equipment to implement functionality in a particular manner, and thus the computer usable or computer readable memory. It is also possible for the instructions stored in to produce an article of manufacture containing instruction means for performing the functions described in each block or flowchart of each step of the block diagram. Computer program instructions may also be mounted on a computer or other programmable data processing equipment, such that a series of operating steps may be performed on the computer or other programmable data processing equipment to create a computer-implemented process to create a computer or other programmable data. Instructions that perform processing equipment may also provide steps for performing the functions described in each block of the block diagram and in each step of the flowchart.

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

도 1은 본 발명의 실시예에 따른 비대칭 분산 파일 시스템의 구성도이다.1 is a block 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 FIG. 4, the asymmetric distributed file system 100 includes a plurality of metadata servers 111 and 112 disposed in layer 1, n data servers 120-1, 120-2, 120-3, ..., 120-n), including m replication servers 130-1, ..., 130-m arranged in Layer 3, and k client terminals 10-1, 10-2, 10-3, and 10-. 4, ..., 10-k) provides the storage and management of data through the network. For example, the number of nodes can be arranged under the condition of "k? N> (2 x m)". Although FIG. 1 illustrates an example in which two metadata servers 111 and 112 are arranged, one or more metadata servers may be arranged.

이와 같이 비대칭 분산 파일 시스템을 구성하는 각각 단말이나 서버들의 기능을 살펴보면 다음과 같다.As described above, the functions of terminals or servers constituting the asymmetric distributed file system are 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 terminals 10-1, 10-2, 10-3, 10-4,..., 10-k access the file metadata from the metadata server 111, 112 while executing the client application and the data server 120. -1, 120-2, 120-3, ..., 120-n) and / or file data is input and output from the replication servers 130-1, ..., 130-m.

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

본 발명의 실시예에 따른 비대칭 분산 파일 시스템(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, the original file data is divided into chunk units having a predetermined size and distributed to the data servers 120-1, 120-2, 120-3, ..., 120-n. The replica file data is divided into chunk units having a predetermined size and distributed to the replica servers 130-1,..., 130-m. The meta data servers 111 and 112 select data servers on which the original file data chunks are to be generated, and also select replica servers 130-1,..., 130-m on which the duplicate file data chunks are 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 maintained in the metadata servers 111 and 112 as metadata information of the file.

데이터 서버(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)에게 자신의 상태 정보를 보고한다.Data servers 120-1, 120-2, 120-3, ..., 120-n store and manage the original file data chunks, and replica servers 130-1, ..., 130-m store replica file data chunks. Store and manage it. The data servers 120-1, 120-2, 120-3,..., 120-n and the replication servers 130-1,..., 130-m periodically transmit their status to the metadata server 111, 112. 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)이 우수한 레벨을 적용하여 볼륨을 구성할 수 있다.Client terminals 10-1, 10-2, 10-3, 10-4, ..., 10-k, metadata servers 111, 112, data servers 120-1, 120-2, 120-3, ..., 120-n), the replication servers 130-1, ..., 130-m are interconnected via a network, and apply a RAID volume by applying one RAID level among a plurality of levels of redundant array of inexpensive disks (RAID). volume). For example, the data servers 120-1, 120-2, 120-3,..., 120-n may configure a volume by applying a level at which data read / write performance is excellent, such as RAID level 0, and a replication server. 130-1,..., 130-m may configure a volume by applying a level of high reliability such as RAID level 5 or RAID level 6.

RAID는 값싼 디스크를 여러 개 묶어 대용량의 저장공간을 만들고자 하는 요구로 처음 등장하였지만 최근에는 디스크의 가격이 저렴해 지면서 용어적 의미가 퇴색되었으며, 최근에는 Redundant Array of Independent Disks라고 불리기도 한다.RAID first appeared as a request to bundle a lot of inexpensive disks to create a large amount of storage space. However, the terminology has faded in recent years as the price of disks has become cheaper, and 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 intended for 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. Grouped disks of different levels are called RAID volumes because they are used as a single volume. The characteristics of RAID levels are as follows.

(RAID 0)(RAID 0)

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

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

(RAID 1)(RAID 1)

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

읽기 성능은 다중 쓰레드를 사용할 경우 분할해서 읽을 수 있기 때문에 성능 향상을 보일 수 있지만 쓰기는 중복해서 써야 하므로 성능이 저하된다. 서버용과 같이 데이터의 신뢰성이 중요한 경우에 사용하기도 하지만 디스크 구성 비용이 2배로 들기 때문에 별로 선호되지 못한다.Read performance can be improved because multithreaded reads can be split, but writes are redundant, resulting in poor performance. It is often used when data reliability is important, such as for servers, but it is not preferred because it costs twice the disk configuration.

(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 separately store parity between each volume (volume 0-volume 1, volume 1-volume 2, volume 2-volume 3). With this configuration, you can recover normally if multiple disks fail.

(RAID 3)(RAID 3)

RAID 레벨 3은 RAID 레벨 2의 단점을 조금 개선한 것이다. 패리티 저장을 위해 데이터 저장 볼륨 -1만큼의 추가적인 볼륨이 필요했지만 RAID 3은 단지 하나의 볼륨만 가지고 패리티를 저장한다. 따라서 디스크의 추가적인 비용이 더 적게 든다. 하지만 만약 각 볼륨의 동일한 위치가 동시에 오류가 나거나 고장이 날 경우에는 복구하기가 애매하다.RAID level 3 is a minor improvement over RAID level 2. Although parity storage required an additional volume of data storage volume -1, RAID 3 stores parity with only one volume. Therefore, 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 difficult to recover.

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

(RAID 4)(RAID 4)

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

(RAID 5)(RAID 5)

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

(RAID 6)(RAID 6)

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

지금까지 살펴본 바와 같이 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 in terms of speed for read / write is relatively low. However, the replication servers 130-1,..., 130-m of the present invention can apply RAID level 5 or RAID level 6 because high reliability is required rather than high speed.

도 2는 본 발명의 실시예에 따른 비대칭 분산 파일 데이터 처리 방법을 설명하기 위한 흐름도이다. 도 2에서는 설명의 이해를 돕기 위하여 비대칭 분산 파일 데이터 처리 방법을 여러 개의 단계로 나누어 시계열적으로 나열하였지만 각 단계들은 그 순서가 바뀌거나 동일한 순서에서 동시에 수행될 수도 있다. 예컨대, 단계 S203과 단계 S211은 동일한 순서에 동시에 수행될 수 있으며, 단계 S207과 단계 S215도 동일한 순서에 동시에 수행될 수도 있다.2 is a flowchart illustrating a method for processing asymmetric distributed file data according to an embodiment of the present invention. In FIG. 2, the asymmetric distributed file data processing method is listed in time series for dividing the process into a plurality of stages for clarity of understanding, but each stage may be changed in order or may be performed simultaneously in the same order. For example, step S203 and step S211 may be performed simultaneously in the same order, and step S207 and step S215 may also 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 a step (S203, S211) of assigning chunks (blocks) corresponding to write positions of original data and replica data by a metadata server arranged in Layer 1, and in Layer 2; (S205) the arranged data server performs a write operation on the original data, and when the data server completes the write operation on the original data, the metadata server transmits a data write completion message to the client terminal (S209). And performing a write operation on the replica data by the replication server arranged in the layer 3 (S213), and storing the metadata of the original data and the replica data by the metadata server (S207 and S215). have.

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

먼저, 클라이언트 단말(10-1, 10-2, 10-3, 10-4, …, 10-k)이 메타 데이터 서버(111, 112)에게 파일 데이터에 대한 저장을 요청하면 메타 데이터 서버(111, 112)가 원본 데이터 쓰기 위치에 해당하는 청크(블록)을 할당한다(S203).First, when the client terminal 10-1, 10-2, 10-3, 10-4,..., 10-k requests the metadata server 111, 112 to store file data, the metadata server 111 (112) allocates a chunk (block) corresponding to the original data write 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, ..., 120-n Performs an original data write operation of writing original data into chunks (blocks) of the data servers 120-1, 120-2, 120-3, ..., 120-n allocated by the metadata servers 111 and 112. (S205).

데이터 서버(120-1, 120-2, 120-3, …, 120-n)에 의한 원본 데이터 쓰기 동작이 완료되면 메타 데이터 서버(111, 112)는 원본 데이터 청크(블록) 정보를 포함하는 메타 데이터를 저장한다(S207).When the original data write operation by the data servers 120-1, 120-2, 120-3,..., 120-n is completed, the metadata servers 111 and 112 perform meta-data including original data chunk (block) information. The data is stored (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 is completed, and send the generated data write completion message to the client terminals 10-1, 10-2, 10-3, 10-4, ..., 10-k. It transmits (S209).

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

그러면, 데이터 서버(120-1, 120-2, 120-3, …, 120-n) 및 복제 서버(130-1, …, 130-m)는 메타 데이터 서버(111, 112)가 할당한 복제 서버(130-1, …, 130-m)의 청크(블록)에 복제본 데이터를 기록하는 복제본 데이터 쓰기 동작을 수행한다(S213).Then, the data servers 120-1, 120-2, 120-3,..., 120-n and the replication servers 130-1,..., 130-m are replicated assigned by the metadata servers 111, 112. The replica data write operation for recording the replica data in the chunk (block) of the servers 130-1, ..., 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 such, the write operation on the original data and the write operation on the replica data are performed asynchronously by dualizing, and as soon as the write operation on the original data is completed, the client terminal 10-1, 10-2, 10-3, 10- 4, ..., 10-k to inform the completion of the data write operation, the data server (120-1, 120-2, 120-3, ..., 120-n) and the replication server (130-1, ..., 130- m) transmits and receives data directly to each other to create a copy.

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

앞서 설명한 바와 같이 도 2의 실시예에서는 단계 S203 내지 단계 S207의 원본 데이터 쓰기 과정과 단계 S211 내지 단계 S215의 복제본 데이터 쓰기 과정이 순차적으로 수행되는 경우를 예시하였으나, 원본 데이터 쓰기 과정에 포함된 일부 순서와 복제본 데이터 쓰기 과정에 포함된 일부 순서는 동시에 수행될 수도 있다. 예컨대, 원본 데이터 쓰기 위치에 해당하는 청크(블록)과 복제본 데이터 쓰기 위치에 해당하는 청크(블록)을 동시에 할당하며(S203, S211), 원본 데이터 쓰기 동작과 복제본 데이터 쓰기 동작을 순차적으로 수행하고(S205, S213), 원본 데이터 청크(블록) 정보를 포함하는 메타 데이터와 복제본 데이터 청크(블록) 정보를 포함하는 메타 데이터를 동시에 저장할 수 있다(S207, S215).As described above, the embodiment of FIG. 2 illustrates a case in which the original data writing process of steps S203 to S207 and the copy data writing process of steps S211 to S215 are sequentially performed, but some orders included in the original data writing process are illustrated. And some of the sequences included in the copy data write process may be performed simultaneously. For example, allocating a chunk (block) corresponding to the original data write position and a chunk (block) corresponding to the replica data write position (S203, S211), and performing the original data write operation and the replica data write operation sequentially ( S205 and S213 may simultaneously store metadata including original data chunk (block) information and metadata including duplicate data chunk (block) information (S207 and 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 the file data, the corresponding file is transmitted to the metadata server 111 or 112. Request metadata, and access the metadata and based on the chunk (block) information contained therein, the data server 120-1, 120-2, 120-3, ..., 120-n and / or the replication server ( 130-1, ..., 130-m) to read the file data.

본 발명의 실시예는, 웹하드와 인터넷하드 등의 용어로 불리는 데이터 저장 서비스 서버와 이를 이용한 서비스 시스템 및 그 데이터 처리 방법, 네트워크를 통하여 가상화된 스토리지 자원을 사용자의 요구에 따라 제공하는 클라우드 스토리지 서버와 이를 이용한 서비스 시스템 및 그 데이터 처리 방법, 복수의 데이터 센터를 운영하는 것이 보편적인 유선 통신 또는 무선 통신 서비스 시스템과 그 서비스 방법 등과 같이 데이터 안정성 및 성능 향상을 위해 파일별로 복제본들을 여러 저장공간으로 분산하여 생성 및 관리하는 기술 분야에 이용할 수 있다.An embodiment of the present invention, a data storage service server referred to as terms such as web hard and internet hard, a service system using the same, a data processing method thereof, and a cloud storage server providing virtualized storage resources according to a user's request. And the service system, its data processing method, and multiple data centers, which are common to operate a wired or wireless communication service system and its service method. It can be used in the technical field to create and manage.

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)

원본 데이터에 대한 쓰기 동작을 수행하는 데이터 서버와,
복제본 데이터에 대한 쓰기 동작을 수행하는 복제 서버와,
상기 원본 데이터 및 상기 복제본 데이터의 쓰기 위치에 해당하는 청크(블록)를 할당하며, 상기 원본 데이터 및 상기 복제본 데이터의 메타 데이터를 저장하는 메타 데이터 서버를 포함하는
비대칭 분산 파일 시스템.
A data server performing a write operation on the original data,
A replication server that writes to replica data;
A metadata server for allocating chunks (blocks) corresponding to write positions of the original data and the replica data, and storing metadata of the original data and the replica data;
Asymmetric Distributed File System.
제 1 항에 있어서,
상기 데이터 서버와 상기 복제 서버는, 상기 원본 데이터에 대한 쓰기 동작과 상기 복제본 데이터에 대한 쓰기 동작을 비동기로 수행하는
비대칭 분산 파일 시스템.
The method of claim 1,
The data server and the replication server perform asynchronous write operations on the original data and write operations on the replica data.
Asymmetric Distributed File System.
제 1 항에 있어서,
상기 데이터 서버와 상기 복제 서버는, 서로 다른 레벨의 RAID를 적용한
비대칭 분산 파일 시스템.
The method of claim 1,
The data server and the replication server, applying different levels of RAID
Asymmetric Distributed File System.
제 1 항 또는 제 3 항에 있어서,
상기 복제 서버는, RAID 레벨 5 또는 RAID 레벨 6을 적용한
비대칭 분산 파일 시스템.
The method according to claim 1 or 3,
The replication server, applying a RAID level 5 or a RAID level 6
Asymmetric Distributed File System.
원본 데이터에 대한 쓰기 동작을 수행할 데이터 서버의 쓰기 위치에 해당하는 청크(블록)를 할당하고, 복제본 데이터에 대한 쓰기 동작을 수행할 복제 서버의 쓰기 위치에 해당하는 상기 청크(블록)를 할당하며, 상기 원본 데이터 및 상기 복제본 데이터의 메타 데이터를 저장하는
메타 데이터 서버.
Allocate a chunk (block) corresponding to a write location of a data server to perform a write operation on the source data, and allocate the chunk (block) corresponding to a write location of a replication server to perform a write operation to replica data. Storing metadata of the original data and the replica data.
Metadata Server.
제 5 항에 있어서,
상기 메타 데이터 서버는, 상기 데이터 서버가 상기 원본 데이터에 대한 쓰기 동작을 완료하면 클라이언트 단말에게 데이터 쓰기 완료 메시지를 전송하는
메타 데이터 서버.
The method of claim 5, wherein
The metadata server transmits a data write completion message to a client terminal when the data server completes a write operation on the original data.
Metadata Server.
메타 데이터 서버가 원본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 청크(블록)를 할당하면 할당된 상기 청크(블록)에 상기 원본 데이터를 기록하는 쓰기 동작을 수행하며, 상기 메타 데이터 서버가 복제본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 상기 청크(블록)를 할당하면 복제 서버에게 상기 원본 데이터를 전송하여 상기 복제 서버가 상기 복제본 데이터에 대한 쓰기 동작을 수행하도록 하는
데이터 서버.
When the metadata server allocates a chunk (block) corresponding to a write position to perform a write operation on the original data, the metadata server performs a write operation of writing the original data to the allocated chunk (block). Allocating the chunk (block) corresponding to a write position to perform a write operation on the replica data transmits the original data to a replication server so that the replication server performs a write operation on the replica data.
Data server.
메타 데이터 서버가 복제본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 청크(블록)를 할당하면 원본 데이터에 대한 쓰기 동작을 수행한 데이터 서버로부터 상기 원본 데이터를 전송 받아 상기 복제본 데이터에 대한 쓰기 동작을 수행하는
복제 서버.
When the metadata server allocates a chunk (block) corresponding to a write position to perform a write operation on the replica data, the original data is received from the data server performing the write operation on the original data, and the write operation is performed on the replica data. To do
Replication server.
제 8 항에 있어서,
상기 복제 서버는, 상기 데이터 서버와는 다른 레벨의 RAID를 적용한
복제 서버.
The method of claim 8,
The replication server applies a RAID level different from that of the data server.
Replication server.
제 8 항 또는 제 9 항에 있어서,
상기 복제 서버는, RAID 레벨 5 또는 RAID 레벨 6을 적용한
복제 서버.
The method according to claim 8 or 9,
The replication server, applying a RAID level 5 or a RAID level 6
Replication server.
메타 데이터 서버가 원본 데이터 및 복제본 데이터의 쓰기 위치에 해당하는 청크(블록)를 할당하는 단계와,
데이터 서버가 상기 원본 데이터에 대한 쓰기 동작을 수행하는 단계와,
복제 서버가 상기 복제본 데이터에 대한 쓰기 동작을 수행하는 단계와,
상기 메타 데이터 서버가 상기 원본 데이터 및 상기 복제본 데이터의 메타 데이터를 저장하는 단계를 포함하는
비대칭 분산 파일 시스템의 데이터 처리 방법.
The metadata server assigns chunks (blocks) corresponding to the write locations of the original data and the replica data;
A data server performing a write operation on the original data;
A replication server performing a write operation on the replica data;
Storing, by the metadata server, metadata of the original data and the replica data.
How data is processed in an asymmetric distributed file system.
제 11 항에 있어서,
상기 원본 데이터에 대한 쓰기 동작과 상기 복제본 데이터에 대한 쓰기 동작을 비동기로 수행하는
비대칭 분산 파일 시스템의 데이터 처리 방법.
The method of claim 11,
Asynchronously performing a write operation on the original data and a write operation on the copy data.
How data is processed in an asymmetric distributed file system.
원본 데이터에 대한 쓰기 동작을 수행할 데이터 서버의 쓰기 위치에 해당하는 청크(블록)를 할당하는 단계와,
복제본 데이터에 대한 쓰기 동작을 수행할 복제 서버의 쓰기 위치에 해당하는 상기 청크(블록)를 할당하는 단계와,
상기 원본 데이터 및 상기 복제본 데이터의 메타 데이터를 저장하는 단계를 포함하는
메타 데이터 서버의 데이터 처리 방법.
Allocating a chunk (block) corresponding to a write location of a data server to perform a write operation on the original data;
Allocating the chunk (block) corresponding to the write position of the replica server to perform a write operation on the replica data;
Storing metadata of the original data and the replica data;
How the metadata server handles data.
제 13 항에 있어서,
상기 데이터 처리 방법은, 상기 데이터 서버가 상기 원본 데이터에 대한 쓰기 동작을 완료하면 클라이언트 단말에게 데이터 쓰기 완료 메시지를 전송하는 단계를 더 포함하는
메타 데이터 서버의 데이터 처리 방법.
The method of claim 13,
The data processing method may further include transmitting a data write completion message to a client terminal when the data server completes a write operation on the original data.
How the metadata server handles data.
메타 데이터 서버로부터 원본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 청크(블록)를 할당 받는 단계와,
할당된 상기 청크(블록)에 상기 원본 데이터를 기록하는 쓰기 동작을 수행하는 단계와,
상기 메타 데이터 서버가 복제본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 상기 청크(블록)를 할당하면 복제 서버에게 상기 원본 데이터를 전송하여 상기 복제 서버가 상기 복제본 데이터에 대한 쓰기 동작을 수행하도록 하는 단계를 포함하는
데이터 서버의 데이터 처리 방법.
Receiving a chunk (block) corresponding to a write position to perform a write operation on the original data from the metadata server;
Performing a write operation of writing the original data into the allocated chunk (block);
When the metadata server allocates the chunk (block) corresponding to a write position to perform a write operation on the replica data, the metadata server transmits the original data to the replica server to perform a write operation on the replica data. Comprising the steps of
How data servers process data.
메타 데이터 서버로부터 복제본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 청크(블록)를 할당 받는 단계와,
상기 메타 데이터 서버로부터 원본 데이터에 대한 쓰기 동작을 수행할 쓰기 위치에 해당하는 상기 청크(블록)를 할당 받아 상기 원본 데이터를 기록하는 쓰기 동작을 수행하는 데이터 서버로부터 상기 원본 데이터를 전송 받는 단계와,
할당된 상기 청크(블록)에 상기 복제본 데이터를 기록하는 쓰기 동작을 수행하는 단계를 포함하는
복제 서버의 데이터 처리 방법.
Receiving a chunk (block) corresponding to a write position to perform a write operation on the replica data from the metadata server;
Receiving the chunk (block) corresponding to a write position to perform a write operation on the original data from the metadata server, and transmitting the original data from a data server performing a write operation of writing the original data;
Performing a write operation to write the replica data to the allocated chunk (block).
How data is processed by the replication server.
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 true KR20120027786A (en) 2012-03-22
KR101679303B1 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)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130130383A (en) * 2012-05-22 2013-12-02 한국전자통신연구원 Data replication apparatus and method using hierarchical organization of data servers
CN107656695A (en) * 2016-07-25 2018-02-02 杭州海康威视数字技术股份有限公司 A kind of data storage, delet method, device and distributed memory system
KR20190027279A (en) * 2017-09-06 2019-03-14 에스케이텔레콤 주식회사 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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130130383A (en) * 2012-05-22 2013-12-02 한국전자통신연구원 Data replication apparatus and method using hierarchical organization of data servers
CN107656695A (en) * 2016-07-25 2018-02-02 杭州海康威视数字技术股份有限公司 A kind of data storage, delet method, device and distributed memory system
CN107656695B (en) * 2016-07-25 2020-12-25 杭州海康威视数字技术股份有限公司 Data storage and deletion method and device and distributed storage system
KR20190027279A (en) * 2017-09-06 2019-03-14 에스케이텔레콤 주식회사 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
KR101679303B1 (en) 2016-11-24

Similar Documents

Publication Publication Date Title
US11947423B2 (en) Data reconstruction in distributed storage systems
US9823980B2 (en) Prioritizing data reconstruction in distributed storage systems
US20210334206A1 (en) Optimized Inline Deduplication
US10365968B2 (en) Apportioning namespace ranges in accordance with dispersed storage unit capacity
US9417955B2 (en) Data reconstruction in distributed data storage system with key-based addressing
CN106687911B (en) Online data movement without compromising data integrity
US9747155B2 (en) Efficient data reads from distributed storage systems
US9774679B2 (en) Storage pools for a dispersed storage network
JP6240071B2 (en) Computer system and method for effectively managing mapping table in storage system
AU2012294218B2 (en) Logical sector mapping in a flash storage array
US8725986B1 (en) System and method for volume block number to disk block number mapping
US9639268B2 (en) Distributed data storage system with key-based addressing
CN109313538B (en) Inline deduplication
JP2014532227A (en) Variable length coding in storage systems
CN101976181A (en) Management method and device of storage resources
CN109478125B (en) Manipulating a distributed consistency protocol to identify a desired set of storage units
KR101679303B1 (en) Asymmetric distributed file system and data processing method therefor
Wei et al. DSC: Dynamic stripe construction for asynchronous encoding in clustered file system
Wei et al. A new adaptive coding selection method for distributed storage systems
US10372556B1 (en) Recovery of nodes
Xu et al. TEA: A traffic-efficient erasure-coded archival scheme for in-memory stores
US11256428B2 (en) Scaling raid-based storage by redistributing splits
Xu et al. Incremental encoding for erasure-coded cross-datacenters cloud storage
Ahn et al. Dynamic erasure coding decision for modern block-oriented distributed storage systems
CN111124746A (en) Method, apparatus and computer readable medium for managing redundant arrays of independent disks

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