KR20110070677A - Apparatus and method of processing failure data recovery in the asymmetric clustering file system - Google Patents

Apparatus and method of processing failure data recovery in the asymmetric clustering file system Download PDF

Info

Publication number
KR20110070677A
KR20110070677A KR1020100028464A KR20100028464A KR20110070677A KR 20110070677 A KR20110070677 A KR 20110070677A KR 1020100028464 A KR1020100028464 A KR 1020100028464A KR 20100028464 A KR20100028464 A KR 20100028464A KR 20110070677 A KR20110070677 A KR 20110070677A
Authority
KR
South Korea
Prior art keywords
chunk
data
recovery
data server
error
Prior art date
Application number
KR1020100028464A
Other languages
Korean (ko)
Other versions
KR101323729B1 (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 US12/971,167 priority Critical patent/US8543864B2/en
Publication of KR20110070677A publication Critical patent/KR20110070677A/en
Application granted granted Critical
Publication of KR101323729B1 publication Critical patent/KR101323729B1/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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Quality & Reliability (AREA)

Abstract

PURPOSE: Apparatus and method for processing failure data recovery in an asymmetric clustering file system are provided to efficiently and rapidly error data by distributing the error data to a data server and recovering the error data by the data server. CONSTITUTION: A chunk list in which a data server of a second data server group is recovered is received(S40). The data server is not included in a first data server group including a failed data server. The data server requests chunk data required for recovering an error chunk to the rest data severs of the first data server group(S50). The data server recovers the error chunk on a basis of the chunk data(S52). The data server transmits the recovery complete message to a metadata server(S56).

Description

비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치 및 방법{Apparatus and method of processing failure data recovery in the asymmetric clustering file system}Apparatus and method of processing failure data recovery in the asymmetric clustering file system}

본 발명은 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치 및 방법에 관한 것으로, 보다 상세하게는 비대칭 클러스터링 파일 시스템에서 데이터 서버 고장으로 인한 데이터 오류 복구를 분산 처리하는 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for error recovery in an asymmetric clustering file system, and more particularly, to an apparatus and method for distributed processing of error recovery due to a data server failure in an asymmetric clustering file system.

본 발명은 지식경제부의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2007-S-016-03, 과제명: 저비용 대규모 글로벌 인터넷 서비스 솔루션 개발].The present invention is derived from a study conducted as part of the IT growth engine technology development project of the Ministry of Knowledge Economy [Task Management No .: 2007-S-016-03, Title: Development of a low-cost large-scale global Internet service solution].

일반적으로 비대칭 클러스터링 파일 시스템은 파일의 메타데이터를 관리하는 메타데이터 서버, 파일의 데이터를 관리하는 복수의 데이터 서버, 및 파일을 저장하거나 검색하는 복수의 클라이언트를 포함한다. In general, an asymmetric clustering file system includes a metadata server that manages file metadata, a plurality of data servers that manage data in the file, and a plurality of clients that store or retrieve the file.

메타데이터 서버와 복수의 데이터 서버 및 복수의 클라이언트는 로컬 네트워크상에서 서로 연결되어 통신한다. The metadata server, the plurality of data servers, and the plurality of clients communicate with each other over a local network.

복수의 데이터 서버는 가상화 기술을 통해 대규모의 단일 저장공간으로 제공될 수 있다. 데이터 서버 또는 데이터 서버내 볼륨의 추가/삭제를 통해 자유로운 저장공간 관리가 가능하다. Multiple data servers can be provided in a single, massive storage space through virtualization technology. Free storage management is possible by adding / deleting volumes in the data server or data server.

이와 같이 복수의 데이터 서버를 관리하는 시스템에서는 서버 수에 비례하는 고장율을 고려하게 된다. 그에 따라, 복수의 데이터 서버를 관리하는 시스템에서는 레이드(RAID; Redundant Array of Inexpensive Disks) 레벨 5처럼 데이터는 분산시키고, 복구를 위해 패리티를 두는 방법 또는 데이터에 대한 복제본을 두는 미러링 기술이 주로 이용된다. 미러링 기술은 데이터 중복 저장으로 스토리지 효율성이 낮다. 그에 따라, 고장 감내를 요구하는 경우 패리티를 이용한 데이터 분산 저장 구조가 선호된다.In such a system of managing a plurality of data servers, a failure rate proportional to the number of servers is considered. As a result, in systems that manage multiple data servers, as in Level 5 of Redundant Array of Inexpensive Disks (RAID), data is distributed, parity is provided for recovery, or mirroring technology is used to place copies of data. . Mirroring technology provides low storage efficiency due to redundant data storage. Accordingly, a data distributed storage structure using parity is preferred when fault tolerance is required.

패리티를 이용한 데이터 분산 저장 구조는 데이터를 저장하는 저장장치 중 단일 오류가 발생하는 경우 패리티를 이용하여 오류 장치에 저장된 데이터를 복구할 수 있다. 복구 과정은 패리티를 구성하는 다른 데이터들과 패리티의 오류 정정 방식(예를 들어, exclusive-OR)을 수행함으로써 복구된다. 이를 위해 단일 데이터 복구 과정에는 다수의 데이터 및 패리티에 대한 읽기 처리가 수반되어야 한다. The data distributed storage structure using parity may recover data stored in an error device using parity when a single error occurs among storage devices that store data. The recovery process is recovered by performing an error correction scheme (eg, exclusive-OR) of the parity with other data constituting the parity. To do this, a single data recovery process must involve read processing for multiple data and parities.

종래에 제안된 기술은 대부분 저장 장치 오류를 감지한 메타데이터 서버에서 해당 장치에 저장된 데이터들에 대한 복구를 수행하는 것이다.In the related art, a metadata server that detects a storage device error is mostly performed to recover data stored in the device.

본 발명은 상기한 종래의 사정을 감안하여 제안된 것으로, 비대칭 클러스터링 파일 시스템에서 데이터 서버의 고장시 메타데이터 서버에서 처리하는 방식에 비해 효율성을 높이도록 한 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치 및 방법을 제공함에 그 목적이 있다.The present invention has been proposed in view of the above-described conventional situation, and an error recovery processing apparatus in an asymmetric clustering file system that improves efficiency in asymmetric clustering file system in the event of a data server failure in a metadata server, and The purpose is to provide a method.

본 발명은 비대칭 클러스터링 파일 시스템에서 다수의 데이터 서버로 데이터 및 패리티를 분산 저장하는 구조에서 단일 데이터 서버 고장으로 인한 데이터 복구를 다수의 데이터 서버들로 분산하여 처리하는 것을 특징으로 한다.The present invention is characterized in that in the structure of distributing and storing data and parity to a plurality of data servers in an asymmetric clustering file system, data recovery due to a single data server failure is distributed and processed to a plurality of data servers.

상기와 같은 목적을 달성하기 위하여 본 발명의 바람직한 실시양태에 따른 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법은, 복수의 데이터 서버군중에서 고장난 데이터 서버가 포함된 해당 데이터 서버군과는 다른 데이터 서버군의 데이터 서버가, 복구가 필요한 청크 목록을 수신하는 단계; 다른 데이터 서버군의 데이터 서버가, 해당 데이터 서버군중에서 고장난 데이터 서버를 제외한 나머지 데이터 서버들에게 오류 청크를 복구하는데 필요한 청크 데이터를 요청하는 단계; 및 다른 데이터 서버군의 데이터 서버가, 청크 데이터를 근거로 오류 청크에 대한 복구를 행하는 단계;를 포함한다.In order to achieve the above object, an error recovery processing method in an asymmetric clustering file system according to a preferred embodiment of the present invention is a data server group different from the data server group including a failed data server among a plurality of data server groups. Receiving, by the data server, a list of chunks in need of recovery; Requesting, by a data server of another data server group, chunk data necessary for recovering an error chunk from data servers other than the failed data server among the data server groups; And recovering, by the data server of another data server group, the error chunk based on the chunk data.

복수의 데이터 서버군 각각은 클라이언트로부터 저장되는 파일에 대해 청크 단위로 나뉘어진 파일 데이터들의 개수 및 파일 데이터들에 대한 오류 복구용 패리티의 개수를 합산한 개수와 동일한 개수의 데이터 서버들로 구성된다.Each of the plurality of data server groups includes the same number of data servers as the sum of the number of file data divided in chunks and the number of error recovery parities for the file data.

청크 목록은 하나 이상의 디스크 식별자별로 복구가 필요한 청크 식별자, 복구 데이터가 저장될 청크 식별자, 및 복구에 필요한 청크 정보 리스트를 포함한다.The chunk list includes a chunk identifier for recovery by one or more disk identifiers, a chunk identifier for storing recovery data, and a chunk information list for recovery.

복구가 필요한 청크 식별자는 고장난 데이터 서버에 저장된 청크들 중 선택된 청크의 식별정보이다.The chunk identifier that needs to be recovered is identification information of the selected chunk among the chunks stored in the failed data server.

복구 데이터가 저장될 청크 식별자는 오류 청크가 복구되어 새롭게 저장될 청크의 식별정보이다.The chunk identifier in which the repair data is to be stored is identification information of the chunk in which the error chunk is recovered and newly stored.

복구에 필요한 청크 정보 리스트는 오류 청크를 복구하는데 필요한 데이터 및 패리티에 대한 청크 정보의 리스트이다.The list of chunk information needed for recovery is a list of chunk information for data and parity needed to recover the error chunk.

청크 정보는 청크가 저장된 데이터 서버 IP주소, 디스크 식별자, 청크 식별자 정보를 포함한다.The chunk information includes data server IP address, disk identifier, and chunk identifier information in which the chunk is stored.

바람직하게, 복구 단계 이후에, 다른 데이터 서버군의 데이터 서버가, 메타데이터 서버에게로 복구 완료 메시지를 전송하는 단계를 추가로 포함한다.Preferably, after the recovering step, the data server of another data server group further includes transmitting a recovery complete message to the metadata server.

바람직하게, 다른 데이터 서버군의 데이터 서버가, 오류 청크를 복구함에 따른 복구 데이터를 청크 목록에 저장하는 단계;를 추가로 포함한다.Preferably, the data server of the other data server group, further comprising the step of storing the recovery data according to the recovery of the error chunk in the chunk list.

바람직하게, 다른 데이터 서버군의 데이터 서버가 클라이언트로부터의 쓰기 요청을 수신함에 따라 쓰기 요청에 상응하는 처리하는 행하는 단계를 추가로 포함한다.Preferably, the method further includes performing processing corresponding to the write request as the data server of the other data server group receives the write request from the client.

쓰기 요청 처리 단계는, 쓰기 요청에 의해 상기 청크 목록에 해당 청크가 존재하는지를 확인하는 단계; 및 확인 결과, 해당 청크가 존재하지 않으면 해당 청크에 데이터를 쓰기하여 저장하는 단계;를 포함한다.The write request processing step may include: checking whether a corresponding chunk exists in the chunk list by a write request; And if it is determined that the chunk does not exist, writing and storing data in the chunk.

저장 단계 이후에 메타데이터 서버에게로 복구 완료를 알리는 단계를 추가로 포함한다.And after the storing step, notify the metadata server of the completion of the recovery.

쓰기 요청 처리 단계는, 확인 결과, 해당 청크가 존재하되 해당 청크에 대한 복구가 진행중이면 복구를 취소하고 청크 목록에서 해당 청크 정보를 삭제하는 단계; 및 쓰기 요청에 의한 데이터를 해당 청크에 저장하는 단계;를 추가로 포함한다.The write request processing step may include: canceling the recovery and deleting the chunk information from the chunk list if the chunk exists but the recovery of the chunk is in progress; And storing the data by the write request in the corresponding chunk.

쓰기 요청 처리 단계는, 확인 결과, 해당 청크가 존재하되 해당 청크에 대한 복구가 시작되지 않은 경우에는 청크 목록에서 해당 청크 정보를 삭제하는 단계; 및 쓰기 요청에 의한 데이터를 해당 청크에 저장하는 단계;를 추가로 포함한다.
The write request processing step may include: deleting the chunk information from the chunk list when the chunk exists, but the recovery of the chunk has not started; And storing the data by the write request in the corresponding chunk.

본 발명의 바람직한 실시양태에 따른 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치는, 메타데이터 서버로부터의 복구가 필요한 청크 목록을 수신하는 수신부; 오류 청크를 복구하는데 필요한 청크 데이터를 근거로 오류 청크에 대한 복구를 행하는 복구부; 및 데이터 서버군내의 고장난 데이터 서버를 제외한 나머지 데이터 서버들에게 청크 데이터를 요청하고, 수신한 청크 데이터를 복구부에게로 전송하는 제어부;를 포함한다.An error recovery processing apparatus in an asymmetric clustering file system according to a preferred embodiment of the present invention includes a receiving unit for receiving a list of chunks to be recovered from a metadata server; A recovery unit for recovering the error chunk based on the chunk data necessary to recover the error chunk; And a controller for requesting chunk data to the remaining data servers except for the failed data server in the data server group and transmitting the received chunk data to the recovery unit.

청크 목록은 하나 이상의 디스크 식별자별로 복구가 필요한 청크 식별자, 복구 데이터가 저장될 청크 식별자, 및 복구에 필요한 청크 정보 리스트를 포함한다.The chunk list includes a chunk identifier for recovery by one or more disk identifiers, a chunk identifier for storing recovery data, and a chunk information list for recovery.

복구가 필요한 청크 식별자는 고장난 데이터 서버에 저장된 청크들 중 선택된 청크의 식별정보이다.The chunk identifier that needs to be recovered is identification information of the selected chunk among the chunks stored in the failed data server.

복구 데이터가 저장될 청크 식별자는 오류 청크가 복구되어 새롭게 저장될 청크의 식별정보이다.The chunk identifier in which the repair data is to be stored is identification information of the chunk in which the error chunk is recovered and newly stored.

복구에 필요한 청크 정보 리스트는 오류 청크를 복구하는데 필요한 데이터 및 패리티에 대한 청크 정보의 리스트이다.The list of chunk information needed for recovery is a list of chunk information for data and parity needed to recover the error chunk.

제어부는 복구부에서의 복구 완료시 메타데이터 서버에게로 복구 완료 메시지를 전송한다.The control unit transmits a restoration complete message to the metadata server when the restoration is completed.

이러한 구성의 본 발명에 따르면, 다수의 데이터 서버들이 오류 데이터를 분배하여 복구하기 때문에 단일 메타데이터 서버에서 전담하여 오류 데이터의 복구를 처리하는 방식에 비해 효율적이고 빠른 복구를 제공할 수 있다.According to the present invention having such a configuration, since a plurality of data servers distribute and recover error data, a single metadata server can provide efficient and fast recovery compared to a method of handling error data.

도 1은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템의 구조를 나타낸 도면이다.
도 2는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 및 패리티를 분산 저장하는 방식을 설명하기 위한 도면이다.
도 3은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 복구 분산 처리를 위해 메타데이터 서버에서 구성하는 복구 정보 구조를 설명하기 위한 도면이다.
도 4는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서의 데이터 서버의 내부 구성을 나타낸 블록도이다.
도 5는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 메타데이터 서버에서 수행되는 복구 관리 쓰레드 처리 흐름을 설명하기 위한 도면이다.
도 6은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 메타데이터 서버가 복구 완료 메시지를 수신함에 따른 처리 흐름을 설명하기 위한 도면이다.
도 7은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 서버에서 오류 청크를 복구하는 처리 흐름을 설명하기 위한 도면이다.
도 8은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 서버가 클라이언트로부터의 쓰기 요청을 수신함에 따른 처리 흐름을 설명하기 위한 도면이다.
도 9는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 클라이언트에서의 읽기 처리 흐름을 설명하기 위한 도면이다.
1 is a diagram showing the structure of an asymmetric clustering file system to which the present invention is applied.
FIG. 2 is a diagram illustrating a method of distributedly storing data and parity in an asymmetric clustering file system to which the present invention is applied.
FIG. 3 is a diagram for describing a recovery information structure configured in a metadata server for data recovery distribution processing in an asymmetric clustering file system to which the present invention is applied.
4 is a block diagram illustrating an internal configuration of a data server in an asymmetric clustering file system to which the present invention is applied.
FIG. 5 is a diagram illustrating a recovery management thread processing flow performed in a metadata server in an asymmetric clustering file system to which the present invention is applied.
FIG. 6 is a diagram illustrating a processing flow when a metadata server receives a repair complete message in an asymmetric clustering file system to which the present invention is applied.
7 is a diagram illustrating a processing flow for recovering an error chunk in a data server in an asymmetric clustering file system to which the present invention is applied.
8 is a diagram illustrating a processing flow when a data server receives a write request from a client in an asymmetric clustering file system to which the present invention is applied.
9 is a diagram illustrating a read processing flow in a client in an asymmetric clustering file system to which the present invention is applied.

이하, 첨부된 도면을 참조하여 본 발명의 실시예에 따른 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치 및 방법에 대하여 설명하면 다음과 같다. 본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니된다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
Hereinafter, an error recovery processing apparatus and method in an asymmetric clustering file system according to an embodiment of the present invention will be described with reference to the accompanying drawings. Prior to the detailed description of the present invention, terms and words used in the present specification and claims should not be construed as limited to ordinary or dictionary terms. Therefore, the embodiments described in the specification and the drawings shown in the drawings are only one of the most preferred embodiments of the present invention and do not represent all of the technical idea of the present invention, various modifications that can be replaced at the time of the present application It should be understood that there may be equivalents and variations.

도 1은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템의 구조를 나타낸 도면이다.1 is a diagram showing the structure of an asymmetric clustering file system to which the present invention is applied.

메타데이터 서버(10)는 파일의 메타데이터를 관리한다.The metadata server 10 manages metadata of the file.

복수의 데이터 서버(20a ~ 20n; 20)는 파일의 데이터를 관리한다. 각각의 데이터 서버는 하나 이상의 디스크 저장 장치(22a)를 장착한다. 각각의 데이터 서버의 저장 공간 크기는 장착된 디스크 수에 의해 결정된다. The plurality of data servers 20a to 20n 20 manage data of files. Each data server is equipped with one or more disk storage devices 22a. The storage space size of each data server is determined by the number of disks mounted.

클라이언트(30a ~ 30n; 30)는 파일을 접근한다.Clients 30a-30n; 30 access the file.

메타데이터 서버(10)와 복수의 데이터 서버(20a ~ 20n; 20) 및 클라이언트(30a ~ 30n; 30)는 이더넷 등과 같은 네트워크(40)를 통해 서로 연결되고 통신한다. The metadata server 10, the plurality of data servers 20a to 20n; 20, and the clients 30a to 30n; 30 are connected to and communicate with each other through a network 40 such as Ethernet.

본 발명은 클라이언트(30a ~ 30n)로부터 저장되는 파일이 청크(chunk)라는 일정 단위로 분할되어 서로 다른 데이터 서버(20a ~ 20n)에 미리 저장되고, 어느 한 데이터 서버의 고장으로 인한 오류가 발생하는 경우 이를 복구할 수 있는 패리티가 서로 다른 데이터 서버(20a ~ 20n)에 미리 저장되어 있는 구조에 적용된다. 이는 후술하는 도 2의 내용을 보면 보다 쉽게 이해할 수 있다.
According to the present invention, a file stored from the clients 30a to 30n is divided into chunks in a predetermined unit and stored in advance in different data servers 20a to 20n, and an error due to a failure of one data server occurs. In this case, the parity for recovering the data is applied to a structure previously stored in different data servers 20a to 20n. This can be more easily understood from the description of FIG. 2 to be described later.

도 2는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 및 패리티를 분산 저장하는 방식을 설명하기 위한 도면이다.FIG. 2 is a diagram illustrating a method of distributedly storing data and parity in an asymmetric clustering file system to which the present invention is applied.

클라이언트(30a)는 파일 A(50)를 일정 단위(예컨대, 청크(chunk))로 분할한다. 여기서, 분할 크기는 미리 설정되거나, 파일 A(50)의 크기를 저장하고자 하는 데이터 서버 수로 나눈 값과 같이 파일 시스템을 구성하는 사용자가 정의하는 값이다.Client 30a divides file A 50 into units (eg, chunks). Here, the division size is a value that is set in advance or defined by a user configuring the file system, such as a value obtained by dividing the size of the file A 50 by the number of data servers to be stored.

클라이언트(30a)는 이와 같이 분할되어 생성된 일정 수의 데이터(51, 52, 53)마다 패리티(54)를 생성한다. 패리티(54)를 구성하는 데이터 청크의 수에 대한 정의는 사용자에 의해 결정될 수 있다. 데이터(51, 52, 54)와 패리티(54)를 저장할 데이터 서버(20a, 20b, 20c, 20n)는 메타데이터 서버(10)에서 각 데이터 서버의 저장 공간 이용률을 고려하여 선정한다. 메타데이터 서버(10)는 선정된 내용을 클라이언트(30a)에게 알려주게 된다. The client 30a generates the parity 54 for each of the predetermined number of data 51, 52, and 53 generated in this manner. The definition of the number of data chunks constituting parity 54 may be determined by the user. The data servers 20a, 20b, 20c, and 20n to store the data 51, 52, and 54 and the parity 54 are selected by considering the storage space utilization of each data server in the metadata server 10. The metadata server 10 notifies the client 30a of the selected content.

도 2에서는 데이터(51)가 데이터 서버(20c)에 저장되고, 데이터(52)가 데이터 서버(20a)에 저장되고, 데이터(53)가 데이터 서버(20n)에 저장되고, 패리티(54)가 데이터 서버(20b)에 저장되는 것으로 하였다. 도 2에서, n(n≥5)개의 데이터 서버들 중에서 4개의 데이터 서버(20a, 20b, 20c, 20n)가 한 개의 데이터 서버군을 형성하는 것으로 가정한다. 이와 같은 가정하에 해당 데이터 서버군(그룹)에서 어느 한 데이터 서버(예컨대, 20a)가 고장나면, 데이터 서버(20a, 20b, 20c, 20n)와는 별개로 존재하는 다른 데이터 서버군의 데이터 서버(즉, 메타데이터 서버(10)가 선정하는 데이터 서버로서, 정상의 데이터 서버임)가 복구 활동을 진행한다.
In FIG. 2, data 51 is stored in data server 20c, data 52 is stored in data server 20a, data 53 is stored in data server 20n, and parity 54 is stored. It is assumed that it is stored in the data server 20b. In FIG. 2, it is assumed that four data servers 20a, 20b, 20c, and 20n form one data server group among n (n ≧ 5) data servers. Under this assumption, if any data server (eg, 20a) in the data server group (group) fails, the data server of another data server group that exists separately from the data servers 20a, 20b, 20c, and 20n (i.e., Is a data server selected by the metadata server 10, which is a normal data server).

도 3은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 복구 분산 처리를 위해 메타데이터 서버에서 구성하는 복구 정보 구조를 설명하는 도면이다.3 is a diagram illustrating a recovery information structure configured in a metadata server for data recovery distribution processing in an asymmetric clustering file system to which the present invention is applied.

메타데이터 서버(10)는 각각의 데이터 서버군에서의 데이터 서버의 고장을 감지한다. 메타데이터 서버(10)는 데이터 서버의 고장이 감지되면 비대칭 클러스터링 파일 시스템을 검사하여 복구 정보 구조를 구성한다. 메타데이터 서버(10)는 구성된 복구 정보 구조를 고장난 데이터 서버가 포함된 데이터 서버군과는 다른 데이터 서버군의 데이터 서버에게 전송한다.The metadata server 10 detects a failure of the data server in each data server group. When the metadata server 10 detects a failure of the data server, the metadata server 10 checks the asymmetric clustering file system to configure a recovery information structure. The metadata server 10 transmits the configured recovery information structure to a data server of a data server group different from the data server group including the failed data server.

복구 정보 구조는 각각의 데이터 서버별로의 데이터 서버 IP주소 및 디스크 식별자 정보 리스트를 포함하는 데이터 서버 정보(60)를 포함한다. 또한, 디스크 식별자 정보 리스트는 디스크 식별자별로 복구가 필요한 청크 식별자와 복구 데이터가 저장될 청크 식별자 및 복구에 필요한 청크 정보 리스트를 포함하는 디스크 식별자 정보(70)를 포함한다. 복구에 필요한 청크 정보 리스트는 청크가 저장된 데이터 서버 IP주소와 디스크 식별자 및 청크 식별자를 포함하는 청크 정보(80)를 포함한다.The recovery information structure includes data server information 60 including a list of data server IP addresses and disk identifier information for each data server. In addition, the disc identifier information list includes disc identifier information 70 including a chunk identifier for recovery, a chunk identifier for storing recovery data, and a chunk information list for recovery for each disc identifier. The list of chunk information required for recovery includes chunk information 80 including the data server IP address where the chunk is stored, the disk identifier and the chunk identifier.

여기서, 복구가 필요한 청크 식별자는 고장난 데이터 서버에 저장된 청크들 중 선택된 청크의 식별정보이다. 복구 데이터가 저장될 청크 식별자는 오류 청크가 복구되어 새롭게 저장될 청크의 식별정보이다. 복구에 필요한 청크 정보 리스트는 오류 청크를 복구하는데 필요한 데이터 및 패리티 청크 정보의 리스트이다. 하나의 패리티 청크 및 패리티를 산출하는데 포함된 데이터 청크들을 하나의 스트라입(90)이라 한다.
Here, the chunk identifier to be recovered is identification information of the selected chunk among the chunks stored in the failed data server. The chunk identifier in which the repair data is to be stored is identification information of the chunk in which the error chunk is recovered and newly stored. The list of chunk information required for recovery is a list of data and parity chunk information needed for recovering the error chunk. One parity chunk and data chunks included in calculating parity are referred to as one stripe 90.

도 4는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서의 데이터 서버의 내부 구성을 나타낸 블록도이다.4 is a block diagram illustrating an internal configuration of a data server in an asymmetric clustering file system to which the present invention is applied.

데이터 서버는 수신부(100), 버퍼(110), 복구부(120), 제어부(130), 및 저장부(140)를 포함한다. 여기서, 데이터 서버는 도 1에 도시된 데이터 서버(20a~20n) 각각을 의미하는 것으로 이해하면 된다. 그러나, 고장난 데이터 서버는 메타데이터 서버(10)로부터 제공되는 복구가 필요한 청크 목록을 수신할 수 없다.The data server includes a receiver 100, a buffer 110, a recoverer 120, a controller 130, and a storage 140. Here, the data server may be understood to mean each of the data servers 20a to 20n illustrated in FIG. 1. However, the failed data server cannot receive the list of chunks that need to be provided from the metadata server 10.

수신부(100)는 메타데이터 서버(10)로부터 제공되는 복구가 필요한 청크 목록을 수신한다. 여기서, 수신하는 청크 목록은 디스크 식별자 정보(70) 목록이다. 디스크 식별자 정보(70)는 상술한 도 3에 대한 설명으로 갈음한다.The receiver 100 receives a list of chunks to be repaired provided from the metadata server 10. Here, the received chunk list is a list of disc identifier information 70. The disc identifier information 70 is replaced with the description of FIG. 3 described above.

버퍼(110)는 오류 청크를 복구함에 따른 복구 데이터를 저장한다. 즉, 버퍼(110)는 오류 청크를 복구함에 따라 발생되는 복구 데이터를 일시적으로 저장한다. 도 4에서는 버퍼(110)를 하나만 도시하였으나, 복수개로 구현되어도 무방하다.The buffer 110 stores the recovery data for recovering the error chunk. That is, the buffer 110 temporarily stores the recovery data generated as the error chunk is recovered. In FIG. 4, only one buffer 110 is illustrated, but a plurality of buffers 110 may be implemented.

복구부(120)는 오류 청크를 복구하는데 필요한 청크 데이터를 근거로 오류 청크에 대한 복구를 행한다. 여기서, 오류 청크를 복구하는데 필요한 청크 데이터는 데이터 서버군내의 고장난 데이터 서버를 제외한 나머지 데이터 서버들이 가지고 있다.The recovery unit 120 recovers the error chunk based on the chunk data necessary to recover the error chunk. Here, the chunk data necessary for recovering the error chunks is owned by the remaining data servers except the failed data server in the data server group.

제어부(130)는 데이터 서버군내의 고장난 데이터 서버를 제외한 나머지 데이터 서버들에게 청크 데이터(즉, 오류 청크를 복구하는데 필요한 청크 데이터)를 요청한다. 제어부(130)는 수신부(100)를 통해 수신한 청크 데이터를 복구부(120)에게로 전송한다. 제어부(130)는 복구부(120)에서의 복구 완료시 메타데이터 서버(10)에게로 복구 완료 메시지를 전송한다.The controller 130 requests chunk data (that is, chunk data necessary to recover an error chunk) from the remaining data servers except the failed data server in the data server group. The controller 130 transmits the chunk data received through the receiver 100 to the recovery unit 120. The controller 130 transmits a restoration completion message to the metadata server 10 when the restoration is completed by the restoration unit 120.

저장부(140)는 청크 단위의 파일 데이터를 저장한다. 여기서, 저장부(140)는 도 1의 디스크 저장 장치(22a)에 해당하는 것으로 이해하면 된다.
The storage 140 stores file data in chunk units. Here, the storage 140 may be understood to correspond to the disk storage 22a of FIG. 1.

도 5는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 메타데이터 서버에서 수행되는 복구 관리 쓰레드 처리 흐름을 설명하기 위한 도면이다. 즉, 도 5는 메타데이터 서버(10)가 데이터 서버 고장을 감지하였을 때 수행하는 데이터 복구 관리 쓰레드의 처리 흐름도이다.FIG. 5 is a diagram illustrating a recovery management thread processing flow performed in a metadata server in an asymmetric clustering file system to which the present invention is applied. That is, FIG. 5 is a flowchart of processing of a data recovery management thread that is performed when the metadata server 10 detects a data server failure.

메타데이터 서버(10)는 먼저 복구 정보 구조(바람직하게, 리스트 형태의 데이터 서버 정보(60) 및 디스크 식별자 정보(70))를 초기화한다(S10). The metadata server 10 first initializes a recovery information structure (preferably, data server information 60 and disk identifier information 70 in the form of a list) (S10).

메타데이터 서버(10)는 비대칭 클러스터링 파일 시스템을 검사한다(S12). The metadata server 10 checks the asymmetric clustering file system (S12).

메타데이터 서버(10)는 검사를 통해 고장난 데이터 서버에 저장된 청크들의 목록을 작성한다(S14). 여기서, 고장난 데이터 서버는 4개의 데이터 서버(20a, 20b, 20c, 20n)를 한 개의 데이터 서버군이라고 가정하고 해당 데이터 서버군에서 데이터 서버(20a)가 고장난 것으로 가정한다. The metadata server 10 creates a list of chunks stored in the failed data server through inspection (S14). Here, the failed data server assumes that four data servers 20a, 20b, 20c, and 20n are one data server group, and assumes that the data server 20a has failed in the corresponding data server group.

메타데이터 서버(10)는 고장난 데이터 서버(20a)에 저장된 청크들(즉, 오류 청크들)의 상태를 복구 상태로 설정한다(S16).The metadata server 10 sets the states of chunks (that is, error chunks) stored in the failed data server 20a to a recovery state (S16).

메타데이터 서버(10)는 이와 같이 하여 작성된 청크 목록의 처음부터 마지막 청크까지를 초기화된 복구 정보 구조에 저장한다(S18). 즉, 메타데이터 서버(10)는 청크 목록으로부터 복구해야 하는 청크 식별자가 선택되면, 복구된 청크 데이터를 저장할 새로운 청크를 할당한다(S20). 그리고 나서, 메타데이터 서버(10)는 선택된 청크가 속한 스트라입(90)에 속하는 나머지 데이터 및 패리티의 청크 정보(80)를 검사하여 이를 복구 정보 구조에 저장한다(S22). 여기서, 저장되는 위치는 새롭게 할당된 청크가 생성된 데이터 서버 및 디스크에 해당하는 정보 구조에 저장된다. The metadata server 10 stores the first to last chunks of the chunk list thus created in the initialized recovery information structure (S18). That is, when the chunk identifier to be recovered from the chunk list is selected, the metadata server 10 allocates a new chunk to store the recovered chunk data (S20). Then, the metadata server 10 checks the chunk information 80 of the remaining data and parity belonging to the stripe 90 to which the selected chunk belongs and stores it in the recovery information structure (S22). Here, the stored location is stored in the information structure corresponding to the data server and disk on which the newly allocated chunk is generated.

마지막 청크까지 완료되면 메타데이터 서버(10)는 데이터 서버 정보(60) 리스트의 처음부터 디스크 식별자 정보(70) 리스트에 저장된 내용을 복구 활동을 할 해당 데이터 서버에게로 전송한다(S26). 즉, 메타데이터 서버(10)는 복구가 필요한 청크 목록을 복구 활동을 할 해당 데이터 서버에게로 전송한다. 여기서, 복구 활동을 할 해당 데이터 서버는 고장난 데이터 서버(20a)가 포함된 데이터 서버군과는 별개로 존재하는 다른 데이터 서버군의 데이터 서버이다. When the last chunk is completed, the metadata server 10 transmits the contents stored in the disk identifier information 70 list from the beginning of the data server information 60 list to the corresponding data server to perform the recovery operation (S26). That is, the metadata server 10 transmits the list of chunks to be repaired to the corresponding data server to perform the recovery activity. Here, the data server to perform the recovery activity is a data server of another data server group which exists separately from the data server group including the failed data server 20a.

여기서, 복구 활동을 할 해당 데이터 서버로의 전송과정(S26)이 마지막 데이터 서버(즉, 모든 데이터 서버(20b, 20c, 20n))의 내용까지 완료되었다면(S24에서 "예") 해당 쓰레드는 종료된다.
Here, if the transmission process (S26) to the corresponding data server to perform the recovery activity is completed up to the contents of the last data server (that is, all data servers 20b, 20c, 20n) (YES in S24), the thread is terminated. do.

도 6은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 메타데이터 서버가 복구 완료 메시지를 수신함에 따른 처리 흐름을 설명하기 위한 도면이다. 먼저, 메타데이터 서버(10)는 도 5에서와 같이 작업한 복구 정보 구조를 가지고 있음을 전제로 한다.FIG. 6 is a diagram illustrating a processing flow when a metadata server receives a repair complete message in an asymmetric clustering file system to which the present invention is applied. First, it is assumed that the metadata server 10 has a recovery information structure worked as shown in FIG. 5.

메타데이터 서버(10)는 데이터 서버(즉, 복구 활동을 수행한 데이터 서버)로부터의 복구 완료 메시지를 수신한다(S30). The metadata server 10 receives a recovery completion message from a data server (that is, a data server that has performed a recovery activity) (S30).

메타데이터 서버(10)는 복구 정보 구조에서 데이터 서버 IP 주소와 디스크 식별자를 이용하여 해당 데이터 서버 정보(60)와 해당 디스크 식별자 정보(70)를 찾는다. 그 후, 메타데이터 서버(10)는 수신된 청크 식별자와 복구 데이터가 저장될 청크 식별자를 서로 비교하여 해당하는 청크 정보를 찾는다(S32). The metadata server 10 finds the data server information 60 and the disk identifier information 70 by using the data server IP address and the disk identifier in the recovery information structure. Thereafter, the metadata server 10 searches for the corresponding chunk information by comparing the received chunk identifier with the chunk identifier where the recovery data is to be stored (S32).

메타데이터 서버(10)는 복구 정보 구조에서 복구가 완료된 오류 청크에 대한 정보를 가지고 있는 해당 청크 정보를 삭제한다(S34). The metadata server 10 deletes corresponding chunk information having information on the error chunk in which the recovery is completed in the recovery information structure (S34).

그리고, 메타데이터 서버(10)는 파일 메타데이터에서 오류 청크 정보를 새롭게 복구된 청크 정보로 수정한다(S36).
Then, the metadata server 10 modifies the error chunk information in the file metadata into newly recovered chunk information (S36).

도 7은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 서버가 오류 청크를 복구하는 처리 흐름을 설명하기 위한 도면이다.7 is a diagram illustrating a processing flow of a data server recovering an error chunk in an asymmetric clustering file system to which the present invention is applied.

일단, 복구 활동을 할 데이터 서버는 메타데이터 서버(10)로부터 복구가 필요한 청크 목록을 수신한다(S40). 여기서 수신되는 청크 목록은 디스크 식별자 정보(70) 목록이다. 여기서, 복구 활동을 할 데이터 서버는 고장난 데이터 서버가 포함된 데이터 서버군과는 별개로 존재하는 다른 데이터 서버군의 데이터 서버이다.First, the data server to perform a recovery activity receives a list of chunks to be recovered from the metadata server 10 (S40). The chunk list received here is a list of disc identifier information 70. Here, the data server to perform the recovery activity is a data server of another data server group which exists separately from the data server group including the failed data server.

복구 활동을 할 데이터 서버는 수신된 청크 목록의 첫번째 디스크부터 수행하여 마지막 디스크까지 처리가 완료되면(S42에서 "예") 종료한다. The data server to perform the recovery activity starts from the first disk of the received chunk list and ends when processing is completed until the last disk (YES in S42).

복구 활동을 할 데이터 서버는 각 디스크마다 오류 청크의 내용이 실린 청크 목록의 처음부터 마지막 청크까지 수행한다(S44). 다시 말해서, 복구 활동을 할 데이터 서버는 먼저 복구중인 청크를 임시로 저장하는 버퍼를 할당한다(S46). 복구 활동을 할 데이터 서버는 버퍼가 할당되면 하기의 단계들과 같은 복구 활동을 수행하게 된다. 복구 활동을 할 데이터 서버는 오류 청크를 복구하는데 필요한 청크들이 저장된 데이터 서버들 중 마지막 데이터 서버인지 확인한다(S48).The data server to perform the recovery operation performs from the beginning to the last chunk of the chunk list in which the contents of the error chunks are loaded for each disk (S44). In other words, the data server to perform the recovery activity first allocates a buffer to temporarily store the chunks being recovered (S46). When a buffer is allocated, the data server to perform recovery activities performs recovery activities as described in the following steps. The data server to perform the recovery activity checks whether the chunks necessary for recovering the error chunks are the last data server among the stored data servers (S48).

확인 결과, 마지막이 아니라면 복구 활동을 할 데이터 서버는 고장나지 않은 나머지 데이터 서버(예컨대, 20b, 20c, 20n)에게로 해당 청크 데이터를 요청한다(S50). As a result of the check, if not last, the data server to perform the recovery activity requests the corresponding chunk data to the remaining data servers (for example, 20b, 20c, and 20n) that are not broken (S50).

이후, 복구 활동을 할 데이터 서버는 요청한 청크 데이터를 수신하게 되면 임시 버퍼의 내용과 수신된 데이터를 이용하여 오류 데이터 복구 과정(예를 들어, exclusive-OR)을 수행한다 (S52). 오류 데이터 복구 과정을 수행하였으므로, 상기의 복구 활동을 할 데이터 서버는 이하에서는 복구 활동을 수행한 데이터 데이터 서버가 된다. Thereafter, upon receiving the requested chunk data, the data server for recovery activity performs an error data recovery process (for example, exclusive-OR) by using the contents of the temporary buffer and the received data (S52). Since the error data recovery process is performed, the data server to perform the above recovery activity will be the data data server performing the recovery activity below.

이와 같은 오류 데이터 복구 과정이 마지막 데이터 서버(즉, 고장나지 않은 모든 데이터 서버(20b, 20c, 20n))의 마지막 청크까지 활용하여 완료되면 복구 활동을 수행한 데이터 서버는 임시 버퍼에 저장된 복구 데이터를 새롭게 할당된 청크 파일에 저장한다(S54). When this error data recovery process is completed using the last chunk of the last data server (that is, all data servers (20b, 20c, 20n) that have not failed), the data server that performed the recovery activity will recover the recovery data stored in the temporary buffer. The newly allocated chunk file is stored (S54).

복구 활동을 수행한 데이터 서버는 저장이 완료되면 메타데이터 서버(10)에게로 해당 오류 청크에 대한 복구가 완료되었음을 알린다(S56). 즉, 복구 활동을 수행한 데이터 서버는 복구 완료 메시지를 메타데이터 서버(10)에게로 보낸다.The data server performing the recovery activity notifies the metadata server 10 that the recovery of the corresponding error chunk is completed when the saving is completed (S56). That is, the data server performing the recovery activity sends a recovery completion message to the metadata server 10.

그리고 나서, 복구 활동을 수행한 데이터 서버는 복구가 필요한 청크 목록에서 복구가 완료된 청크 정보를 삭제한다(S58).
Then, the data server performing the recovery activity deletes the recovered chunk information from the list of chunks to be recovered (S58).

도 8은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 서버가 클라이언트로부터의 쓰기 요청을 수신함에 따른 처리 흐름을 설명하기 위한 도면이다.8 is a diagram illustrating a processing flow when a data server receives a write request from a client in an asymmetric clustering file system to which the present invention is applied.

먼저, 복구 활동의 주체인 데이터 서버가 클라이언트(30a ~ 30n중의 어느 하나)로부터의 쓰기 요청을 수신한다(S60). 여기서, 복구 활동의 주체인 데이터 서버는 고장난 데이터 서버가 포함된 데이터 서버군과는 별개로 존재하는 다른 데이터 서버군의 데이터 서버이다.First, the data server, which is the subject of the recovery activity, receives a write request from the client (any one of 30a to 30n) (S60). Here, the data server, which is the subject of the recovery activity, is a data server of another data server group which exists separately from the data server group including the failed data server.

이어, 복구 활동의 주체인 데이터 서버는 처리중인 복구 청크 목록에 해당 청크가 존재하는지 확인한다(S62). Subsequently, the data server which is the subject of the recovery activity checks whether the corresponding chunk exists in the recovery chunk list being processed (S62).

확인 결과, 존재하지 않는다면(S62에서 "아니오") 복구 활동의 주체인 데이터 서버는 이미 해당 청크에 대한 복구가 완료된 것으로 해석하여 해당 청크 파일에 쓰기를 처리한다(S64). As a result of the check, if it is not present (NO in S62), the data server, which is the subject of the recovery activity, interprets that the recovery for the chunk is completed and processes the write to the chunk file (S64).

반대로, 존재하면서(S62에서 "예") 현재 해당 청크에 대한 복구가 진행 중이라면(S66에서 "예") 복구 활동의 주체인 데이터 서버는 현재 대기중인 입출력 명령이 완료되면 복구를 중지시킨다(S68). 그리고 나서, 복구 활동의 주체인 데이터 서버는 복구 청크 목록에서 해당 청크 정보를 삭제한다(S70). 물론, 복구 청크 목록에는 존재하지만 아직 복구가 시작되지 않았다면 복구 청크 목록에서 해당 청크 정보를 삭제한다. 이어, 복구 활동의 주체인 데이터 서버는 쓰기 요청된 데이터를 해당 청크에 저장한다(S72).On the contrary, if there exists (YES in S62) and the recovery for the corresponding chunk is currently in progress (YES in S66), the data server, which is the subject of the recovery activity, stops the recovery when the current I / O command is completed (S68). ). Then, the data server that is the subject of the recovery activity deletes the corresponding chunk information from the recovery chunk list (S70). Of course, if it exists in the recovery chunk list but recovery has not yet started, the corresponding chunk information is deleted from the recovery chunk list. Subsequently, the data server, which is the subject of the recovery activity, stores the data requested to be written in the corresponding chunk (S72).

이와 같이, 복구가 완료되거나 복구가 취소되고 쓰기 데이터에 대한 저장이 완료되면 복구 활동의 주체인 데이터 서버는 메타데이터 서버(10)에게로 해당 청크의 복구가 완료되었음을 알린다(S74). 즉, 복구 활동의 주체인 데이터 서버는 복구 완료 메시지를 메타데이터 서버(10)에게로 보낸다.
As such, when the recovery is completed or the recovery is canceled and the storage of the write data is completed, the data server, which is the subject of the recovery activity, informs the metadata server 10 that the recovery of the chunk is completed (S74). That is, the data server, which is the subject of the recovery activity, sends a recovery completion message to the metadata server 10.

도 9는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 클라이언트에서의 읽기 처리 흐름을 설명하기 위한 도면이다. 도 9는 클라이언트의 상부 계층인 응용계층에서 읽기 요청을 하면 클라이언트가 이를 수신하여 실행하는 과정을 설명하는 도면이다.9 is a diagram illustrating a read processing flow in a client in an asymmetric clustering file system to which the present invention is applied. 9 is a diagram illustrating a process of receiving and executing a client when a read request is made by an application layer, which is an upper layer of the client.

먼저, 클라이언트(30a ~ 30n중의 어느 하나)가 읽기 요청을 수신한다(S80).First, the client (any one of 30a to 30n) receives a read request (S80).

읽기 요청을 수신한 클라이언트는 메타데이터 서버(10)에게로 해당 파일에 대한 메타데이터를 요청한다(S82). Upon receiving the read request, the client requests metadata about the file to the metadata server 10 (S82).

이후, 해당 클라이언트는 메타데이터 서버(10)로부터의 메타데이터 정보를 수신한다(S84). Thereafter, the client receives metadata information from the metadata server 10 (S84).

이어, 해당 클라이언트는 수신한 메타데이터 정보를 근거로 현재 읽고자 하는 청크의 상태값이 복구 상태인지 확인한다(S86). Subsequently, the client checks whether the state value of the chunk to be read currently is based on the received metadata information (S86).

확인 결과, 복구 상태라면(S86에서 "예") 해당 클라이언트는 먼저 복구 데이터 저장을 위한 임시 버퍼를 할당한다(S88). 여기서, 임시 버퍼 할당은 복구에 필요한 청크가 저장되어 있는 데이터 서버의 수와 동일할 수 있다. 예를 들어, 4개의 데이터 서버를 하나의 데이터 서버군이라고 가정하고 그 중에서 하나의 데이터 서버가 고장난 경우 나머지 세 개의 데이터 서버가 복구에 필요한 청크가 저장되어 있는 데이터 서버가 된다.If it is confirmed that the recovery state (YES in S86), the client first allocates a temporary buffer for storing the recovery data (S88). Here, the temporary buffer allocation may be equal to the number of data servers in which chunks required for recovery are stored. For example, suppose four data servers are a group of data servers, and if one data server fails, the remaining three data servers become data servers storing chunks required for recovery.

마지막 데이터 서버까지의 임시 버퍼 할당이 완료되지 않았다면(S90에서 "아니오") 해당 클라이언트는 복구에 필요한 청크가 저장되어 있는 마지막 데이터 서버에게까지 해당 청크 데이터를 요청한다(S92). 해당 클라이언트는 요청한 청크 데이터를 수신하면 임시 버퍼의 내용과 수신된 청크 데이터를 이용하여 오류 데이터 복구 과정을 수행한다(S94).If the temporary buffer allocation to the last data server is not completed (No in S90), the client requests the chunk data to the last data server in which the chunk necessary for recovery is stored (S92). When the client receives the requested chunk data, the client performs an error data recovery process using the contents of the temporary buffer and the received chunk data (S94).

이와 같은 오류 데이터 복구 과정이 마지막 데이터 서버까지 완료되면 해당 클라이언트는 해당 데이터를 반환한다(S96).When the error data recovery process is completed up to the last data server, the client returns the data (S96).

상기 단계 S86에서의 확인 결과, 복구 상태가 아니라면 해당 클라이언트는 해당 청크가 저장된 데이터 서버에게로 데이터를 요청(S98)한 후에 상기의 단계 S96의 동작을 수행한다.
As a result of the checking in step S86, if it is not in the recovery state, the client requests data to the data server in which the chunk is stored (S98) and then performs the operation of step S96.

한편, 본 발명은 상술한 실시예로만 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위내에서 수정 및 변형하여 실시할 수 있고, 그러한 수정 및 변형이 가해진 기술사상 역시 이하의 특허청구범위에 속하는 것으로 보아야 한다.On the other hand, the present invention is not limited only to the above-described embodiments and can be carried out by modifications and variations within the scope not departing from the gist of the present invention, the technical idea that such modifications and variations are also within the scope of the claims Must see

10 : 메타데이터 서버 20a ~ 20n : 데이터 서버
30a ~ 30n : 클라이언트 40 : 네트워크
100 : 수신부 110 : 버퍼
120 : 복구부 130 제어부
140 : 저장부
10: metadata server 20a to 20n: data server
30a ~ 30n: Client 40: Network
100: receiver 110: buffer
120: recovery unit 130 control unit
140: storage unit

Claims (20)

복수의 데이터 서버군중에서 고장난 데이터 서버가 포함된 해당 데이터 서버군과는 다른 데이터 서버군의 데이터 서버가, 복구가 필요한 청크 목록을 수신하는 단계;
상기 다른 데이터 서버군의 데이터 서버가, 상기 해당 데이터 서버군중에서 상기 고장난 데이터 서버를 제외한 나머지 데이터 서버들에게 오류 청크를 복구하는데 필요한 청크 데이터를 요청하는 단계; 및
상기 다른 데이터 서버군의 데이터 서버가, 상기 청크 데이터를 근거로 상기 오류 청크에 대한 복구를 행하는 단계;를 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
Receiving, by a data server of a data server group different from the data server group including the failed data server among the plurality of data server groups, a list of chunks to be restored;
Requesting, by a data server of the other data server group, chunk data necessary for recovering an error chunk from the data server group except for the failed data server; And
Restoring the error chunk based on the chunk data by a data server of the other data server group.
청구항 1에 있어서,
상기 복수의 데이터 서버군 각각은 클라이언트로부터 저장되는 파일에 대해 청크 단위로 나뉘어진 파일 데이터들의 개수 및 상기 파일 데이터들에 대한 오류 복구용 패리티의 개수를 합산한 개수와 동일한 개수의 데이터 서버들로 구성되는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
The method according to claim 1,
Each of the plurality of data server groups includes the same number of data servers as the sum of the number of file data divided in chunks and the number of error recovery parity for the file data. Error recovery processing in an asymmetric clustering file system, characterized in that the.
청구항 1에 있어서,
상기 청크 목록은 하나 이상의 디스크 식별자별로 복구가 필요한 청크 식별자, 복구 데이터가 저장될 청크 식별자, 및 복구에 필요한 청크 정보 리스트를 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
The method according to claim 1,
And the chunk list includes a chunk identifier for recovery by one or more disk identifiers, a chunk identifier for storing recovery data, and a chunk information list for recovery.
청구항 3에 있어서,
상기 복구가 필요한 청크 식별자는 상기 고장난 데이터 서버에 저장된 청크들 중 선택된 청크의 식별정보인 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
The method according to claim 3,
And the chunk identifier to be recovered is identification information of the selected chunk among the chunks stored in the failed data server.
청구항 3에 있어서,
상기 복구 데이터가 저장될 청크 식별자는 상기 오류 청크가 복구되어 새롭게 저장될 청크의 식별정보인 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
The method according to claim 3,
And a chunk identifier in which the repair data is to be stored is identification information of a chunk in which the error chunk is recovered and newly stored.
청구항 3에 있어서,
상기 복구에 필요한 청크 정보 리스트는 상기 오류 청크를 복구하는데 필요한 데이터 및 패리티에 대한 청크 정보의 리스트인 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
The method according to claim 3,
And the chunk information list necessary for the recovery is a list of the chunk information for the data and parity necessary for recovering the error chunk.
청구항 6에 있어서,
상기 청크 정보는 청크가 저장된 데이터 서버 IP주소, 디스크 식별자, 청크 식별자 정보를 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
The method of claim 6,
The chunk information includes a data server IP address, a disk identifier, and a chunk identifier information on which the chunk is stored.
청구항 1에 있어서,
상기 복구 단계 이후에, 상기 다른 데이터 서버군의 데이터 서버가, 메타데이터 서버에게로 복구 완료 메시지를 전송하는 단계를 추가로 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
The method according to claim 1,
After the recovering step, the data server of the other data server group further comprises transmitting a recovery complete message to a metadata server.
청구항 1에 있어서,
상기 다른 데이터 서버군의 데이터 서버가, 상기 오류 청크를 복구함에 따른 복구 데이터를 상기 청크 목록에 저장하는 단계;를 추가로 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
The method according to claim 1,
And storing, by the data server of the other data server group, the recovery data according to the recovery of the error chunk in the chunk list.
청구항 1에 있어서,
상기 다른 데이터 서버군의 데이터 서버가 클라이언트로부터의 쓰기 요청을 수신함에 따라 상기 쓰기 요청에 상응하는 처리하는 행하는 단계를 추가로 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
The method according to claim 1,
And processing corresponding to the write request as the data server of the other data server group receives the write request from the client.
청구항 10에 있어서,
상기 쓰기 요청 처리 단계는,
상기 쓰기 요청에 의해 상기 청크 목록에 해당 청크가 존재하는지를 확인하는 단계; 및
상기 확인 결과, 상기 해당 청크가 존재하지 않으면 상기 해당 청크에 데이터를 쓰기하여 저장하는 단계;를 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
The method according to claim 10,
The write request processing step,
Checking whether the corresponding chunk exists in the chunk list by the write request; And
And writing the data into the chunk and storing the chunk if the chunk does not exist as a result of the checking.
청구항 11에 있어서,
상기 저장 단계 이후에 상기 메타데이터 서버에게로 복구 완료를 알리는 단계를 추가로 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
The method of claim 11,
And notifying the metadata server of the completion of the recovery after the storing step.
청구항 11에 있어서,
상기 쓰기 요청 처리 단계는,
상기 확인 결과, 상기 해당 청크가 존재하되 상기 해당 청크에 대한 복구가 진행중이면 상기 복구를 취소하고 상기 청크 목록에서 해당 청크 정보를 삭제하는 단계; 및
상기 쓰기 요청에 의한 데이터를 해당 청크에 저장하는 단계;를 추가로 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
The method of claim 11,
The write request processing step,
Canceling the recovery and deleting the chunk information from the chunk list if the chunk exists, but the recovery of the chunk is in progress; And
And storing the data in response to the write request in the corresponding chunk.
청구항 11에 있어서,
상기 쓰기 요청 처리 단계는,
상기 확인 결과, 상기 해당 청크가 존재하되 상기 해당 청크에 대한 복구가 시작되지 않은 경우에는 상기 청크 목록에서 해당 청크 정보를 삭제하는 단계; 및
상기 쓰기 요청에 의한 데이터를 해당 청크에 저장하는 단계;를 추가로 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
The method of claim 11,
The write request processing step,
Deleting the chunk information from the chunk list when the chunk exists but recovery of the chunk is not started; And
And storing the data in response to the write request in the corresponding chunk.
메타데이터 서버로부터의 복구가 필요한 청크 목록을 수신하는 수신부;
오류 청크를 복구하는데 필요한 청크 데이터를 근거로 오류 청크에 대한 복구를 행하는 복구부; 및
데이터 서버군내의 고장난 데이터 서버를 제외한 나머지 데이터 서버들에게 상기 청크 데이터를 요청하고, 수신한 상기 청크 데이터를 상기 복구부에게로 전송하는 제어부;를 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치.
A receiver for receiving a list of chunks to be recovered from the metadata server;
A recovery unit for recovering the error chunk based on the chunk data necessary to recover the error chunk; And
Error in the asymmetric clustering file system comprising a; control unit for requesting the chunk data to the remaining data servers except the failed data server in the data server group, and transmits the received chunk data to the recovery unit Recovery processing unit.
청구항 15에 있어서,
상기 청크 목록은 하나 이상의 디스크 식별자별로 복구가 필요한 청크 식별자, 복구 데이터가 저장될 청크 식별자, 및 복구에 필요한 청크 정보 리스트를 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치.
The method according to claim 15,
And the chunk list includes a chunk identifier for recovery by one or more disk identifiers, a chunk identifier for storing recovery data, and a chunk information list for recovery.
청구항 16에 있어서,
상기 복구가 필요한 청크 식별자는 상기 고장난 데이터 서버에 저장된 청크들 중 선택된 청크의 식별정보인 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치.
The method according to claim 16,
And the chunk identifier to be repaired is identification information of the selected chunk among the chunks stored in the failed data server.
청구항 16에 있어서,
상기 복구 데이터가 저장될 청크 식별자는 상기 오류 청크가 복구되어 새롭게 저장될 청크의 식별정보인 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치
The method according to claim 16,
An apparatus for error recovery in an asymmetric clustering file system, wherein the chunk identifier for storing the repair data is identification information of the chunk in which the error chunk is restored and newly stored.
청구항 16에 있어서,
상기 복구에 필요한 청크 정보 리스트는 상기 오류 청크를 복구하는데 필요한 데이터 및 패리티에 대한 청크 정보의 리스트인 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치.
The method according to claim 16,
And the chunk information list necessary for the recovery is a list of the chunk information for the data and parity necessary for recovering the error chunk.
청구항 15에 있어서,
상기 제어부는 상기 복구부에서의 복구 완료시 상기 메타데이터 서버에게로 복구 완료 메시지를 전송하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치.
The method according to claim 15,
And the control unit transmits a restoration completion message to the metadata server when the restoration is completed in the restoration unit.
KR20100028464A 2009-12-18 2010-03-30 Apparatus and method of processing failure data recovery in the asymmetric clustering file system KR101323729B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/971,167 US8543864B2 (en) 2009-12-18 2010-12-17 Apparatus and method of performing error recovering process in asymmetric clustering file system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20090127531 2009-12-18
KR1020090127531 2009-12-18

Publications (2)

Publication Number Publication Date
KR20110070677A true KR20110070677A (en) 2011-06-24
KR101323729B1 KR101323729B1 (en) 2013-10-30

Family

ID=44546027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20100028464A KR101323729B1 (en) 2009-12-18 2010-03-30 Apparatus and method of processing failure data recovery in the asymmetric clustering file system

Country Status (1)

Country Link
KR (1) KR101323729B1 (en)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101010219B1 (en) * 2008-12-16 2011-01-21 한국전자통신연구원 Asymmetric Distributed File System, And Incremental Consistency Error Check And Recovery Method For The Same

Also Published As

Publication number Publication date
KR101323729B1 (en) 2013-10-30

Similar Documents

Publication Publication Date Title
CN111031096B (en) Distributed storage system construction method based on mimicry defense
US12050806B2 (en) Distributed data storage system using erasure coding on storage nodes fewer than data plus parity fragments and healing failed write attempts
US10467246B2 (en) Content-based replication of data in scale out system
US11704207B2 (en) Methods and systems for a non-disruptive planned failover from a primary copy of data at a primary storage system to a mirror copy of the data at a cross-site secondary storage system without using an external mediator
US10019192B2 (en) Policy-based hierarchical data protection in distributed storage
RU2449358C1 (en) Distributed file system and data block consistency managing method thereof
CN105359099B (en) Index update pipeline
JP5254611B2 (en) Metadata management for fixed content distributed data storage
US11074129B2 (en) Erasure coded data shards containing multiple data objects
JP5918243B2 (en) System and method for managing integrity in a distributed database
JP5607059B2 (en) Partition management in partitioned, scalable and highly available structured storage
US8713356B1 (en) Error detection and recovery tool for logical volume management in a data storage system
CN106776130B (en) Log recovery method, storage device and storage node
CN103929500A (en) Method for data fragmentation of distributed storage system
US20140188957A1 (en) Hierarchical storage system and file management method
CN102110154B (en) File redundancy storage method in cluster file system
US20100023564A1 (en) Synchronous replication for fault tolerance
CN109690494B (en) Hierarchical fault tolerance in system storage
JP2013544386A5 (en)
WO2012075845A1 (en) Distributed file system
US10031682B1 (en) Methods for improved data store migrations and devices thereof
CN104994168A (en) distributed storage method and distributed storage system
US20110154100A1 (en) Apparatus and method of performing error recovering process in asymmetric clustering file system
US11194501B2 (en) Standby copies withstand cascading fails
US11216204B2 (en) Degraded redundant metadata, DRuM, technique

Legal Events

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

Payment date: 20170329

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 6