KR100936238B1 - Lazy Replication System And Method For Balanced I/Os Between File Read/Write And Replication - Google Patents

Lazy Replication System And Method For Balanced I/Os Between File Read/Write And Replication Download PDF

Info

Publication number
KR100936238B1
KR100936238B1 KR1020070129209A KR20070129209A KR100936238B1 KR 100936238 B1 KR100936238 B1 KR 100936238B1 KR 1020070129209 A KR1020070129209 A KR 1020070129209A KR 20070129209 A KR20070129209 A KR 20070129209A KR 100936238 B1 KR100936238 B1 KR 100936238B1
Authority
KR
South Korea
Prior art keywords
file
replication
server
data
metadata
Prior art date
Application number
KR1020070129209A
Other languages
Korean (ko)
Other versions
KR20090062106A (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 KR1020070129209A priority Critical patent/KR100936238B1/en
Publication of KR20090062106A publication Critical patent/KR20090062106A/en
Application granted granted Critical
Publication of KR100936238B1 publication Critical patent/KR100936238B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system
    • G06F16/1844Management specifically adapted to replicated file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing

Landscapes

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

Abstract

본 발명은 파일 입출력과 복제의 균형적 수행을 위한 지연 복제 시스템 및 방법을 제공하는 것으로, 본 발명의 지연복제 시스템은, 파일을 저장하는 다수의 데이터 서버들; 메타데이터를 저장하는 메타데이터 서버; 및 상기 메타데이터를 참조하여 갱신 가능 파일에 대한 정보를 얻어서, 상기 데이터 서버들 중에 해당 파일을 저장한 데이터 서버에만 파일 정보를 갱신시키는 클라이언트;를 구비하되, 상기 메타데이터 서버는 상기 클라이언트에 의해 갱신된 원본 파일을 저장한 데이터 서버에게 상기 원본 파일을 원본 파일이 없는 데이터 서버들로 전송할 것을 쓰레드를 이용하여 지시하는 것을 특징으로 한다.The present invention provides a delayed replication system and method for the balanced execution of file input and output and replication, the delayed replication system of the present invention, a plurality of data servers for storing a file; A metadata server for storing metadata; And a client which obtains information on the updatable file by referring to the metadata and updates the file information only in the data server storing the file among the data servers, wherein the metadata server is updated by the client. It is characterized by using a thread to instruct the data server storing the original file to transfer the original file to the data server does not have the original file.

파일입출력, 지연, 복제, 균형 File I / O, Delay, Replication, Balance

Description

파일 입출력과 복제의 균형적 수행을 위한 지연복제 시스템 및 방법{Lazy Replication System And Method For Balanced I/Os Between File Read/Write And Replication}Lazy Replication System And Method For Balanced I / Os Between File Read / Write And Replication}

본 발명은 파일 입출력과 복제의 균형적 수행을 위한 지연 복제 시스템 및 방법에 관한 것으로, 특히 일반적인 파일 입출력 작업과 다수의 파일들 사이의 일관성 유지 작업 간의 균형성과 효율성을 제공하는 지연복제 시스템에 관한 것으로, 보다 구체적으로 다수의 저장장치들이 네트워크로 연결되어 있고 다수의 클라이언트들이 동시에 저장장치들에 접근하는 환경에서 백업이나 복구 목적으로 동일한 파일들이 여러 개 존재할 때 그 파일들이 모두 동일한 이미지를 유지할 수 있도록 갱신 및 복제하는 작업이 클라이언트의 일반적인 파일 입출력 요청을 방해하지 않는 한도에서 균형적으로 수행되도록 하는 지연 복제 시스템 및 방법에 관한 것이다.The present invention relates to a delayed replication system and method for the balanced execution of file I / O and replication, and more particularly to a delayed replication system that provides the balance and efficiency between common file I / O operation and maintaining consistency between a plurality of files More specifically, in an environment where multiple storage devices are networked and multiple clients access storage devices at the same time, update them to maintain the same image when multiple identical files exist for backup or recovery purposes. And a delayed replication system and method that allows the copying operation to be performed in a balanced manner without disturbing the general file input / output request of the client.

본 발명은 정보통신부 및 정보통신연구진흥원의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2007-S-016-01, 과제명: 저비용 대규모 글로벌 인터넷 서비스 솔루션 개발].The present invention is derived from the research conducted as part of the IT growth engine technology development project of the Ministry of Information and Communication and the Ministry of Information and Telecommunication Research and Development. [Task Management Number: 2007-S-016-01, Title: Development of a Low-cost Large-scale Global Internet Service Solution] ].

네트워크를 이용하여 다수의 컴퓨터들을 연결함으로써 사용자에게 통합된 저장공간을 제공해 주는 저장 시스템은 웹 검색 처리, 슈퍼 컴퓨팅 등 다양한 분야에서 사용되고 있다. 이러한 시스템 중 일부는 사용자가 저장한 파일에 오류가 생겼을 경우를 대비하여 동일한 파일을 여러 개 만들어 서로 다른 저장 장치에 별개로 저장시킴으로써 복구 가능성을 높이고 다수 클라이언트가 동일한 파일을 읽고자 할 때의 성능 향상도 의도하고 있다.BACKGROUND A storage system that provides a user with an integrated storage space by connecting a plurality of computers using a network is used in various fields such as web search processing and super computing. Some of these systems create multiple identical files and store them separately on different storage devices in case of user-failed file failures, improving recoverability and improving performance when multiple clients want to read the same file. Is also intended.

이와 같은 시스템 내에서 파일 복사본의 생성 혹은 갱신이 필요한 경우는 크게 두 가지로 나뉘어진다. 첫 번째는 파일의 일부 혹은 전부가 갱신된 경우로, 이 경우 기존의 모든 복사본에 갱신된 내용을 전파하여야 한다. 나머지는 파일 복사본을 저장하고 있던 데이터 서버들 중 임의의 하나가 장애에 의해서 더 이상 동작하지 않는 경우로, 이 경우 새로운 데이터 서버에 해당 파일의 복사본이 추가적으로 생성되어야 한다. There are two main types of file copy creation or update in such a system. The first is when some or all of the files have been updated, in which case the updated content must be propagated to all existing copies. The rest is when any one of the data servers that stored the file copy is no longer running due to a failure. In this case, an additional copy of the file must be created on the new data server.

일반 입출력 동작과 파일의 복제 동작은 동일한 네트워크 및 디스크, 메모리 자원을 이용한다. 따라서 파일 복제 동작에서의 자원의 과다한 사용은 일반 입출력 동작을 방해한다. 만일, A라는 파일이 데이터 서버 D1, D2, D3에 저장되어 있는 경우 A의 갱신 동작은 데이터 서버 D1, D2, D3 모두에 저장된 데이터를 변경하게 된다. 이때, 그 순서가 D1 -> D2 -> D3 인 경우 처음 D1으로의 갱신 동작은 파일 시스템 전체로 봐서는 새로운 데이터의 기록이지만, 이후 데이터 서버 D2, D3에 대한 기록은 단지 시스템 전체의 가용성을 늘이기 위한 작업이다. 따라서 파일 A의 갱신 연산 도중 파일 B의 생성 연산인 OB가 들어오는 경우 데이터 서버 D2, D3에 파일 A를 갱신하는 작업의 중요도는 새로 파일 B를 생성하는 작업보다 떨어짐에도 동일 자원에 대한 경쟁으로 파일 B의 생성 작업이 지연될 가능성이 존재한다.General I / O operations and file replication operations use the same network, disk, and memory resources. Therefore, excessive use of resources in the file replication operation interferes with normal I / O operations. If the file A is stored in the data servers D1, D2, and D3, the update operation of A changes data stored in all of the data servers D1, D2, and D3. In this case, when the sequence is D1->D2-> D3, the first update operation to D1 is the recording of new data in the file system as a whole, but the subsequent recording to the data servers D2 and D3 is merely to increase the availability of the entire system. It's work. Therefore, if O B, which is the creation operation of file B, is received during the update operation of file A, the importance of updating file A to data servers D2 and D3 is lower than that of newly creating file B. There is a possibility of delaying the creation of B.

Ghemawat 등이 발명하고 구글(Google)이 2003년 6월 30일자로 출원하여 2006년 6월 20일에 등록된 미국특허 US7065618B1에서는 여러 개의 컴퓨터에 복제 저장된 파일의 갱신 연산들을 관리하기 위한 방법이 제시되어 있다. 이 특허에서는 메타 데이터를 관리하는 마스터(master) 서버가 파일을 저장하고 있는 청크 서버(chunk server)들 중에서 하나의 청크 서버를 선택하고 그 청크 서버에 리스(lease)를 발급하여 주(primary) 청크 서버 역할을 맡기고 나머지 청크 서버들은 부(secondary) 청크 서버로서 어떤 파일에 대한 갱신을 할 때는 항상 그 파일에 대한 주 청크 서버의 통제를 받도록 하고 있다. 클라이언트에 의해서 데이터가 갱신되는 경우 그 데이터는 즉시 모든 청크 서버들에 전달이 되고, 주 청크 서버는 해당 데이터의 디스크 쓰기 여부를 결정하여 부 청크 서버들에 알리면 모든 청크 서버들은 동시에 데이터를 디스크에 기록한다. 즉, 클라이언트에 의한 파일 쓰기 동작은 복사본 수만큼의 추가 부하를 그 즉시 발생시킨다. 따라서 다른 클라이언트의 입출력 혹은 갱신 요청에 필요한 자원 확보를 힘들게 한다는 문제가 존재한다. 또한, 기록 도중 주 청크 서버에 문제가 발생한 경우 각 청크 서버들이 저장한 파일의 이미지가 서로 일치하지 않거나 일치하더라도 클라이언트가 접근이 불가능한 문제도 존재하고 이를 해결하기 위해서 추가적으로 전체 파일 이미지 중에서 사용 가 능한 영역을 구분하고 그에 대한 인덱스를 관리해야 하는 부담이 있다.US Patent US7065618B1, invented by Ghemawat et al. And filed on June 30, 2003 and filed on June 30, 2003, proposes a method for managing update operations of files stored on multiple computers. have. In this patent, the master server that manages metadata selects one chunk server from the chunk servers that store files, and issues a lease to the chunk server to issue a primary chunk. In the role of server, the rest of the chunk servers are secondary chunk servers, and whenever a file is updated, it is always under the control of the primary chunk server for that file. When the data is updated by the client, the data is immediately delivered to all chunk servers, and the primary chunk server decides whether to write the data to disk and informs the subchunk servers that all chunk servers simultaneously write the data to the disk. do. That is, a file write operation by the client immediately creates an additional load by the number of copies. Therefore, there is a problem in that it is difficult to secure resources required for input / output or update requests of other clients. In addition, if a problem occurs in the main chunk server during recording, there is a problem that the clients cannot access even if the images of the files stored by each chunk server do not match or match each other. There is a burden to classify and manage indexes.

본 발명은 상기와 같은 문제점을 해결하기 위한 것으로, 본 발명의 목적은 여러 개의 복사본들 중 최초의 데이터 갱신은 가장 빠르고 효율적으로 진행하고, 나머지 복사본들은 일반적인 입출력 작업을 방해하지 않는 한도에서 각 데이터 서버의 부하를 고루 분산하며, 최소의 데이터 갱신시 발생하는 오류에 대해서는 나머지 복사본을 이용하여 되돌리기를 지원함으로써 시스템의 안정성을 보장하면서도 클라이언트의 편의성을 향상시킬 수 있는 지연복제 시스템 및 방법을 제공하는 데 있다.The present invention is to solve the above problems, the object of the present invention is to update the first data among the multiple copies is the fastest and most efficient, and the remaining copies of each data server as long as it does not interfere with general input and output operations It is to provide a delayed replication system and method that can evenly distribute the load and improve the convenience of the client while ensuring the stability of the system by supporting the reversion by using the remaining copies for errors occurring during the minimum data update. .

본 발명의 다른 목적은 파일에 대한 기록 작업에서 복제 작업을 분리함으로써 새로운 파일에 대한 입출력 작업이 기존 파일 복제 작업에 의해서 방해받지 않도록 할 수 있는 지연복제 시스템 및 방법을 제공하는 데 있다.It is another object of the present invention to provide a delayed replication system and method that can separate the copy operation from the recording operation for the file so that the input and output operations for the new file are not interrupted by the existing file replication operation.

본 발명의 또 다른 목적은 복제 작업의 우선 정도를 사용자의 특성에 따라 조절함으로써, 복제에 의한 안정성이 보장되어야 하는 환경이나 사용자로의 응답이 중요한 환경, 혹은 두 가지 특성을 갖는 파일들이 함께 존재하는 환경 모두에서 시스템의 전체 성능을 향상시킬 수 있는 지연복제 시스템 및 방법을 제공하는 데 있다.Another object of the present invention is to adjust the priority of the replication operation according to the user's characteristics, such that the environment in which the stability by the replication should be guaranteed, the environment in which the response to the user is important, or files having two characteristics exist together. It is to provide a delayed replication system and method that can improve the overall performance of the system in both environments.

본 발명의 또 다른 목적은 복사본을 갱신 가능한 파일과 읽기 전용 파일로 구분함으로써, 갱신 도중 파일에 오류가 생긴 경우 이전의 안정적인 버전 파일로의 되돌리기가 가능하여 시스템의 안정성을 향상시킬 수 있는 지연복제 시스템 및 방 법을 제공하는 데 있다.Another object of the present invention is to divide a copy into a file that can be updated and a read-only file, so that if a file error occurs during the update, it is possible to revert to a previous stable version file, which can improve the stability of the system. And providing a method.

이와 같은 목적을 달성하기 위한 본 발명의 지연복제 시스템은, 파일을 저장하는 다수의 데이터 서버들; 메타데이터를 저장하는 메타데이터 서버; 및 상기 메타데이터를 참조하여 갱신 가능 파일에 대한 정보를 얻어서, 상기 데이터 서버들 중에 해당 파일을 저장한 데이터 서버에만 파일 정보를 갱신시키는 클라이언트;를 구비하되, 상기 메타데이터 서버는 상기 클라이언트에 의해 갱신된 원본 파일을 저장한 데이터 서버에게 상기 원본 파일을 원본 파일이 없는 데이터 서버들로 전송할 것을 쓰레드를 이용하여 지시하는 것을 특징으로 한다.The delay replication system of the present invention for achieving the above object comprises a plurality of data servers for storing a file; A metadata server for storing metadata; And a client which obtains information on the updatable file by referring to the metadata and updates the file information only in the data server storing the file among the data servers, wherein the metadata server is updated by the client. It is characterized by using a thread to instruct the data server storing the original file to transfer the original file to the data server does not have the original file.

본 발명의 지연복제 방법은, 갱신할 파일에 대한 메타데이터에서 갱신 가능한 복사본을 선택하고 해당 복사본을 저장하는 데이터 서버 주소를 얻은 후, 해당 데이터 서버에게 갱신 데이터를 전송하는 단계; 복제 시작이 설정됨에 따라 메타데이터 서버에게 지연복제를 요청하는 단계; 복제를 필요로 하는 파일들에 대한 최신 데이터를 갖는 데이터 서버를 탐색하고 해당 데이터 서버를 담당하는 작업 쓰레드에 복제 작업을 할당하는 단계; 부하가 가장 적은 데이터 서버를 선택하고, 원본 파일이 있는 데이터 서버에게 선택된 데이터 서버로 파일을 전송할 것을 지시하는 단계; 및 복제 지시받은 파일을 복제 대상인 데이터 서버에 전송하는 단계;를 포함하는 것을 특징으로 한다.The delayed replication method of the present invention includes selecting an updatable copy from metadata for a file to be updated, obtaining a data server address storing the copy, and then transmitting update data to the corresponding data server; Requesting a delayed replication from the metadata server as the start of replication is set; Searching for a data server having up-to-date data about files that need to be replicated and assigning a replication job to a job thread in charge of the data server; Selecting a data server having the least load and instructing the data server with the original file to transfer the file to the selected data server; And transmitting the file instructed to be replicated to a data server to be replicated.

상기 구성을 갖는 본 발명은 여러 개의 복사본들 중 최초의 데이터 갱신은 가장 빠르고 효율적으로 진행하고, 나머지 복사본들은 일반적인 입출력 작업을 방해하지 않는 한도에서 각 데이터 서버의 부하를 고루 분산하며, 최소의 데이터 갱신시 발생하는 오류에 대해서는 나머지 복사본을 이용하여 되돌리기를 지원함으로써 시스템의 안정성을 보장하면서도 클라이언트의 편의성을 향상시킬 수 있다.According to the present invention having the above configuration, the first data update among the multiple copies proceeds most quickly and efficiently, and the remaining copies evenly distribute the load of each data server without interrupting general input / output operations, and minimize the data update. In the event of errors occurring during the rest of the copy, the rest of the copy can be used to guarantee the stability of the system while improving the convenience of the client.

본 발명은 파일에 대한 기록 작업에서 복제 작업을 분리함으로써 새로운 파일에 대한 입출력 작업이 기존 파일 복제 작업에 의해서 방해받지 않도록 할 수 있다.The present invention can separate the copying operation from the recording operation for the file so that the input / output operation for the new file is not interrupted by the existing file replication operation.

본 발명은 복제 작업의 우선 정도를 사용자의 특성에 따라 조절함으로써, 복제에 의한 안정성이 보장되어야 하는 환경이나 사용자로의 응답이 중요한 환경, 혹은 두 가지 특성을 갖는 파일들이 함께 존재하는 환경 모두에서 시스템의 전체 성능을 향상시킬 수 있다.The present invention adjusts the priority of the duplication operation according to the characteristics of the user, so that the system can be used both in an environment in which stability by replication is to be guaranteed, in an environment in which a response to the user is important, or in an environment in which files having both characteristics exist together. Can improve the overall performance.

본 발명은 복사본을 갱신 가능한 파일과 읽기 전용 파일로 구분함으로써, 갱신 도중 파일에 오류가 생긴 경우 이전의 안정적인 버전 파일로의 되돌리기가 가능하여 시스템의 안정성을 향상시킬 수 있다.According to the present invention, by dividing the copy into an updateable file and a read-only file, when an error occurs in the file during the update, it is possible to revert to the previous stable version file and improve the stability of the system.

이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세하게 설명한다.Hereinafter, with reference to the accompanying drawings will be described in detail a preferred embodiment of the present invention.

도 1은 본 발명의 실시예에 따른 파일 입출력과 복제의 균형적 수행을 위한 지연복제 시스템의 구성도이다.1 is a block diagram of a delayed replication system for balanced execution of file input and output and replication according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 지연복제 시스템은, 메타데이터(Metadata) 서버(100), 클라이언트(200), 다수의 데이터 서버들(300-1 내지 300-n), 그리고 네트워크(400)를 구비한다. 또한, 본 발명의 지연복제 시스템은 클라이언트(200) 이외에 도시되지 않은 다수의 클라이언트들을 구비한다. 여기서, 메타데이터 서버(100), 클라이언트(200) 및 다수의 데이터 서버들(300-1 내지 300-n)은 네트워크(400)를 통해 접속한다. 그리고, 하나의 파일은 여러 개의 청크(chunk)들로 다시 분할되거나 하나의 연속된 파일로서 저장될 수 있다. 메타데이터 서버(100)는 별도의 독립된 서버로 구현되나, 이에 한정되지 않고, 클라이언트(200)나 다수의 데이터 서버들(300-1 내지 300-n)과 동일한 기계에 위치될 수도 있다.Referring to FIG. 1, the delay replication system of the present invention includes a metadata server 100, a client 200, a plurality of data servers 300-1 to 300-n, and a network 400. Equipped. In addition, the delay replication system of the present invention includes a plurality of clients not shown in addition to the client 200. Here, the metadata server 100, the client 200, and the plurality of data servers 300-1 to 300-n connect through the network 400. And, one file may be divided into several chunks or stored as one continuous file. The metadata server 100 is implemented as a separate independent server, but is not limited thereto and may be located on the same machine as the client 200 or the plurality of data servers 300-1 to 300-n.

도 2는 본 발명에 따른 지연복제 시스템이 파일을 데이터 서버들에 복제 및 저장하는 과정을 설명하기 위한 예시도로서, 가정된 지연복제 시스템을 사용하는 환경에서 하나의 파일이 갱신되는 과정을 나타낸 것이다.FIG. 2 is an exemplary diagram for explaining a process of duplicating and storing a file in data servers by a delayed replication system according to the present invention, and illustrating a process of updating one file in an environment using an assumed delayed replication system. .

도 2를 참조하면, 클라이언트(200)가 원본 파일(210)을 지연복제 시스템에 저장한 경우 미리 지정한 개수만큼의 데이터 서버들(300-1 내지 30-n)에 복제되어 저장된다. 여기서, 데이터 서버들(300-1 내지 30-n)에 저장된 파일들(310-1 내지 310-n)은 동일한 이미지를 갖는다. 이때, 저장 위치에 대한 메타데이터(110) 정보는 메타데이터 서버(110)에 보관된다. 만약, 파일(210)에 대한 추가적인 갱신이 일어나면, 클라이언트(200)는 파일(210)에 대한 갱신을 위해서 메타데이터(110)의 정 보를 참조하여 갱신 가능 파일(310-1)에 대한 정보를 얻고 해당 파일을 저장하고 있는 데이터 서버(300-1)에만 파일 정보를 갱신한다. 이 상태에서, 파일(310-1)은 최신 버전의 데이터를 갖고, 나머지 파일들(310-2 내지 310-n)은 이전 버전에 대한 백업 데이터를 갖는다.Referring to FIG. 2, when the client 200 stores the original file 210 in the delay replication system, the client 200 is duplicated and stored in the predetermined number of data servers 300-1 through 30-n. Here, the files 310-1 through 310-n stored in the data servers 300-1 through 30-n have the same image. At this time, the metadata 110 information about the storage location is stored in the metadata server 110. If an additional update to the file 210 occurs, the client 200 obtains information on the updatable file 310-1 by referring to the information of the metadata 110 to update the file 210. The file information is updated only in the data server 300-1 storing the file. In this state, the file 310-1 has the latest version of data, and the remaining files 310-2 to 310-n have backup data for the previous version.

데이터 서버들(300-2 내지 300-n)에 저장된 나머지 파일들(310-2 내지 310-n)에 대한 갱신은 클라이언트(200)의 설정에 따라서, 파일 닫음(close) 혹은, 주기적으로 또는 관리자의 직접적인 지시에 따라서 메타데이터 서버(100)에 의해서 지연되어 실행된다. Updates to the remaining files 310-2 to 310-n stored in the data servers 300-2 to 300-n may be closed or periodically or managed according to the setting of the client 200. The delay is executed by the metadata server 100 according to the direct instruction of.

메타데이터 서버(100)는 클라이언트(200)에 의해 갱신된 원본 파일(310-1)을 저장한 데이터 서버(300-1)에게 원본 파일(310)을 데이터 서버들(300-2 내지 300-n)로 전송하도록 지시하는데, 이때 다수의 쓰레드들을 이용하여 동시에 지시함으로써 갱신을 해야 할 파일이 다수 개일 경우, 각 데이터 서버에서 해당 작업이 동시에 이루어지도록 하여 작업 효율을 향상시킨다. 즉, 데이터 서버들(300-2 내지 300-n)의 파일들(310-2 내지 310-n)은 데이터 서버(300-1)로부터 전송된 파일이다.The metadata server 100 transmits the original file 310 to the data servers 300-2 to 300-n to the data server 300-1 storing the original file 310-1 updated by the client 200. In this case, when multiple files need to be updated by using multiple threads at the same time, the corresponding work is performed simultaneously on each data server to improve work efficiency. That is, the files 310-2 to 310-n of the data servers 300-2 to 300-n are files transmitted from the data server 300-1.

도 3은 도 2에 도시된 메타데이터의 구조를 나타낸 도면이다.FIG. 3 is a diagram illustrating the structure of metadata shown in FIG. 2.

도 3을 참조하면, 메타데이터(110)는 현재 복사본의 수만큼의 복사본 정보(Replica Informatio)들(110-1 내지 110-N)로 구성된다.Referring to FIG. 3, the metadata 110 is composed of as many Copy Informatios 110-1 to 110 -N as the number of current copies.

하나의 복사본 정보는 버전(version)(111), 복사본 상태(File Status)(112), 데이터 서버의 주소(DSIP)(113)로 이루어진다. 여기서, 버전(111)은 클라이언트(200)에 의해서 해당 파일이 갱신되었을 경우 증가하여 각 복사본 사이에 어느 것이 더 최신의 데이터를 갖는지를 나타낸다. 복사본 상태(112)는 해당 복사본이 갱신 가능한 복사본 인지 여부 및 데이터의 유효성 정보, 데이터 서버들(300-1 내지 300-n)의 유효성 정보 등을 포함한다. 데이터 서버 주소(113)는 클라이언트(200)에서 해당 데이터 서버로의 갱신 과정에서 이용된다.One copy information is composed of a version 111, a file status 112, and an address (DSIP) 113 of a data server. Here, version 111 is incremented when the file is updated by the client 200 to indicate which has the latest data between each copy. The copy state 112 includes information on whether the corresponding copy is an updatable copy, validity information of data, validity information of data servers 300-1 to 300-n, and the like. The data server address 113 is used in the update process from the client 200 to the corresponding data server.

도 4는 도 2에 도시된 클라이언트가 파일 갱신 연산을 수행하는 과정을 나타낸 흐름도로서, 지연 복제 시작 전까지 하나의 데이터 서버로의 파일 갱신 연산을 수행하는 과정을 나타낸 것이다.FIG. 4 is a flowchart illustrating a process of performing a file update operation by a client illustrated in FIG. 2, and illustrates a process of performing a file update operation to one data server before delay copying starts.

도 4를 참조하면, 클라이언트(200)는 갱신할 파일에 대한 메타데이터(110)를 메타데이터 서버(100)에게 문의한다(S101). 이때, 클라이언트(200)는 메타데이터(110) 상의 복사본 정보들(110-1 내지 110-N)에서 복사본 상태 정보(112)를 보고서 갱신 가능한 복사본을 선택하고 해당 복사본을 저장하는 데이터 서버의 주소(113)를 얻는다(S102).Referring to FIG. 4, the client 200 queries the metadata server 100 for metadata 110 about a file to be updated (S101). In this case, the client 200 selects a copy that can update the copy status information 112 from the copy information 110-1 to 110-N on the metadata 110, and selects the address of the data server storing the copy. 113) (S102).

그리고, 클라이언트(200)는 해당 데이터 서버에 갱신 요청과 갱신 데이터를 전송한다(S103). 클라이언트(200)는 갱신 요청과 갱신 데이터를 전송하는 도중에 오류가 발생 되었는지를 판단하여(S104), 판단결과 오류가 발생되지 않았으면, 파일 갱신이 성공한 것으로 판단하여 파일 갱신을 종료한다.The client 200 transmits an update request and update data to the corresponding data server (S103). The client 200 determines whether an error has occurred during the transmission of the update request and the update data (S104). If the error has not occurred as a result of the determination, the client 200 determines that the file update is successful and ends the file update.

판단결과 오류가 발생 되었으면, 클라이언트(200)는 메타데이터 서버(100)에 해당 데이터 서버의 오류를 보고한다(S105). 이에 따라, 메타데이터 서버(100)는 보고된 오류 정보를 이용하여 복사본 정보(110-1 내지 110-N) 중에서 갱신 가능한 복사본을 다시 선택하여 메타데이터(110)를 갱신한다. 따라서, 다른 클라이언트들은 정상적인 데이터 서버에서 갱신 작업을 수행할 수 있다.If an error occurs as a result of the determination, the client 200 reports the error of the data server to the metadata server 100 (S105). Accordingly, the metadata server 100 updates the metadata 110 by reselecting an updateable copy from the copy information 110-1 to 110 -N by using the reported error information. Therefore, other clients can perform the update operation on the normal data server.

도 5는 도 2에 도시된 클라이언트가 지연 복제를 요청하는 과정을 나타낸 흐름도이다.FIG. 5 is a flowchart illustrating a process of requesting a delay copy by a client illustrated in FIG. 2.

도 5를 참조하면, 클라이언트(200)가 모든 파일 작업을 끝내고 파일을 닫은 후 복제 시작을 미리 설정하였는지를 판단하여(S201), 판단결과 복제 시작을 설정하지 않았으면, 파일 닫는 과정을 종료한다.Referring to FIG. 5, when the client 200 finishes all file operations and closes a file, it is determined whether a replication start is set in advance (S201). If the determination result is not set, the file closing process is terminated.

판단결과 복제 시작을 설정하였으면, 클라이언트(200)는 메타데이터 서버(100)에게 복제 작업을 전담하는 복제 데몬 기동을 요청한다(S202).If it is determined that the replication start is set, the client 200 requests the metadata server 100 to start the replication daemon dedicated to the replication job (S202).

이렇게 복제 요청을 한 후, 클라이언트(200)는 곧바로 모든 동작을 수행하거나 해당 파일에 대한 복제 작업의 종료를 기다릴 수 있는지를 판단하여(S203), 판단결과 복제 작업의 종료를 기다릴 수 없으면, 파일 닫는 과정을 종료한다.After the replication request is made, the client 200 immediately performs all operations or determines whether to wait for the end of the replication operation for the file (S203). End the process.

판단 과정(S203)에서의 판단결과 복제 작업의 종료를 기다릴 수 있으면, 클라이언트(200)는 주기적으로 메타데이터 서버(100)에 해당 파일에 대한 복제 작업의 수행이 끝났는지 여부를 문의한다(S204). 이때, 메타데이터 서버(100)는 해당 파일의 메타데이터(110)를 검사하여 현재 복사본 수가 사전에 지정한 수에 도달하였는지 여부를 보고 클라이언트(200)에게 복제 작업 수행 여부를 알려준다.If the determination result in the determination process (S203) can wait for the completion of the replication job, the client 200 periodically inquires the metadata server 100 whether the replication operation for the file is finished (S204). . At this time, the metadata server 100 checks the metadata 110 of the corresponding file, checks whether the current copy number reaches a predetermined number, and informs the client 200 whether to perform a replication operation.

그리고, 클라이언트(200)는 복제 작업이 종료되었는지를 판단하여(S205), 판단결과 종료되었으면, 파일 닫는 과정을 종료한다.Then, the client 200 determines whether the copying operation is finished (S205), and if the determination result is finished, the file closing process is terminated.

판단 과정(S205)에서의 판단결과 복제 작업이 종료되지 않았으면, 클라이언트(200)는 일정 시간 동안 기다린 후(S206), 문의 과정(S204)으로 넘어간다.As a result of the determination in the determination process (S205), if the duplication operation is not finished, the client 200 waits for a predetermined time (S206), and then proceeds to the inquiry process (S204).

메타데이터 서버(100)는 모든 갱신 데이터에 대한 복제 작업을 파일 단위가 아니라 전체 지연복제 시스템 단위로 모아서 처리하여 처리 효율을 높인다. 여기서, 갱신 과정은 도 6에 도시된 바와 같이 전체 지연복제 시스템에서 갱신이 필요한 파일에 대한 정보를 수집하는 과정과 도 7에 도시된 바와 같이 해당 파일에 대한 갱신을 수행하는 과정으로 이루어진다.The metadata server 100 improves processing efficiency by collecting and processing replication tasks for all update data in units of entire delayed replication systems rather than in units of files. Here, the update process includes collecting information on a file that needs to be updated in the entire delayed replication system as shown in FIG. 6 and performing an update on the corresponding file as shown in FIG. 7.

도 6은 도 2에 도시된 메타데이터 서버가 복제 연산을 필요로 하는 파일 정보를 수집하는 과정을 나타낸 흐름도이다.6 is a flowchart illustrating a process in which the metadata server illustrated in FIG. 2 collects file information requiring a duplication operation.

도 6을 참조하면, 메타데이터 서버(100)는 모든 파일에 대한 메타데이터(110)를 검색하여 복제를 필요로 하는 파일들을 순차적으로 탐색한다(S301). 이때, 메타데이터 서버(100)는 탐색을 통해 더 이상 복제를 필요로 하는 파일이 없는지를 판단하여(S302), 판단결과 복제를 필요로 하는 파일이 없으면, 파일 복제 과정을 종료한다. 이때, 메타데이터 서버(100)는 검색의 효율을 위해서 미리 갱신이 필요한 파일에 대한 인덱스를 데이터 서버의 오류시 마다 작성하여 이용하거나, 파일 별 남은 복사본의 수에 따라서 차등적으로 복제의 우선 순위를 조절할 수 있다.Referring to FIG. 6, the metadata server 100 sequentially searches for files requiring replication by searching the metadata 110 for all files (S301). At this time, the metadata server 100 determines whether there are no more files that need to be duplicated through the search (S302), and if there is no file that requires the duplication, the file duplication process is terminated. At this time, the metadata server 100 creates and uses an index for a file that needs to be updated in advance every error of the data server, or differentially prioritizes replication according to the number of remaining copies of each file. I can regulate it.

판단결과 복제를 필요로 하는 파일이 있으면, 메타데이터 서버(100)는 복사본 수가 미리 설정된 기준값 보다 적은지를 판단한다(S303). 판단결과 복사본 수가 적지 않으면, 메타데이터 서버(100)는 탐색 과정(S301)으로 넘어간다.As a result of the determination, if there is a file requiring duplication, the metadata server 100 determines whether the number of copies is smaller than a preset reference value (S303). If it is determined that the number of copies is not small, the metadata server 100 proceeds to the search process (S301).

판단결과 복사본 수가 적으면, 메타데이터 서버(100)는 복제가 필요한 파일에 대해서는 해당 파일에 대한 최신 데이터를 갖고있는 데이터 서버를 찾는다(S304). 이 과정에서, 메타데이터 서버(100)는 메타데이터(110)의 버전 정보(111)를 참조한다.As a result of the determination, if the number of copies is small, the metadata server 100 searches for a data server having the latest data on the file for a file that requires replication (S304). In this process, the metadata server 100 refers to the version information 111 of the metadata 110.

이어서, 메타데이터 서버(100)는 해당 데이터 서버를 담당하는 작업 쓰레드가 존재하는지를 검사하여(S305), 검사결과 작업 쓰레드가 있으면, 해당 데이터 서버를 담당하는 작업 쓰레드에 복제 작업을 할당한 후(S306), 탐색 과정(S301)으로 넘어간다.Subsequently, the metadata server 100 checks whether a work thread that is in charge of the data server exists (S305), and if there is a work thread as a result of the check, allocates a replication work to a work thread in charge of the data server (S306). ), The process proceeds to S301.

검사결과 작업 쓰레드가 없으면, 메타데이터 서버(100)는 해당 데이터 서버를 담당하는 작업 쓰레드를 새로 생성한 후(S307), 할당 과정(S306)으로 넘어간다.If there is no task thread as a result of the check, the metadata server 100 generates a new task thread in charge of the corresponding data server (S307), and proceeds to the allocation process (S306).

도 7은 도 2에 도시된 메타데이터 서버가 지연복제 연산을 수행하는 과정을 나타낸 흐름도이다.FIG. 7 is a flowchart illustrating a process of performing a delay replication operation by the metadata server illustrated in FIG. 2.

도 7을 참조하면, 메타데이터 서버(100)가 파일 복제 쓰레드를 시작시키면, 쓰레드는 자신에게 새로운 파일 복제 작업이 할당되었는지를 판단하여(S401), 판단결과 할당되지 않았으면, 새로운 복제 작업이 할당되기를 기다린다. 여기서, 쓰레드가 새로운 작업의 할당을 기다리는 방법은 작업 이벤트에 대한 큐를 구현하여 구현된 큐가 채워지길 기다리는 방법 또는 외부로부터의 시그널(Signal)을 해석하여 동작하는 방법 등이 있다.Referring to FIG. 7, when the metadata server 100 starts a file replication thread, the thread determines whether a new file replication job is allocated to the thread (S401), and if it is not assigned, the new replication job is allocated. Wait for it. Here, the thread waits for the allocation of a new job may be implemented by implementing a queue for a job event, waiting for the implemented queue to be filled, or operating by interpreting a signal from the outside.

판단결과 새로운 복제 작업이 할당되었으면, 쓰레드는 해당하는 파일에 잠금을 설정하여 복제 중에 파일 변화를 방지한다(S402). 이 과정에서, 쓰레드는 복제 중에 파일의 변화를 허용하고, 복제 후에 파일의 변화 여부를 감지하여 파일 변화 시에 파일 복제를 재시도할 수도 있다.If it is determined that a new replication job has been allocated, the thread sets a lock on the corresponding file to prevent file changes during replication (S402). In this process, the thread may allow the file to change during replication, detect the file's change after the replication, and retry copying the file when the file changes.

파일 잠금 설정이 되고 나면, 쓰레드는 데이터 서버들(300-1 내지 300-n) 중 에 가장 부하가 적은 데이터 서버를 선택한다(S403). 이 과정에서, 쓰레드는 스토리지의 가용량, CPU 및 네트워크, 디스크 활용률, 랙이나 스위치 등 위상 구조를 고려한 물리적인 거리 등 여러 가지 취합된 상태 정보를 이용할 수 있다. 또는 쓰레드는 단순하고 빠른 임의 선택 방법이나 순차적으로 선택하는 방법을 수행도록 구현될 수도 있다.After the file lock is set, the thread selects the data server having the least load among the data servers 300-1 to 300-n (S403). In this process, a thread can use a variety of aggregated state information, such as storage capacity, CPU and network, disk utilization, and physical distances taking into account the topology of the rack or switch. Alternatively, a thread may be implemented to perform a simple and fast random selection method or a sequential selection method.

이어서, 쓰레드는 원본 파일이 있는 데이터 서버에게 선택 과정(S403)에서 선택된 데이터 서버로 파일을 전송할 것을 지시한다(S404). 이때, 쓰레드는 파일의 전송 도중 오류가 발생되었는지를 검사하여(S405), 검사결과 오류없이 정상적으로 복제가 완료되었으면, 쓰레드는 복제 완료를 메타데이터 서버(100)에게 보고하여 메타데이터의 복사본 정보가 갱신되도록 한다(S406). 여기서, 원본 파일이 있는 데이터 서버의 오류는 일정 기간 응답이 없는 경우 혹은 네트워크 활동의 검사 등으로 확인이 가능하고, 복제 대상 데이터 서버의 오류는 원본 파일이 있는 데이터 서버에 의해서 보고된다.Subsequently, the thread instructs the data server having the original file to transfer the file to the data server selected in the selection process (S403) (S404). At this time, the thread checks whether an error occurs during the file transfer (S405), and if the check is normally completed without error, the thread reports the completion of replication to the metadata server 100 to update the copy information of the metadata. To be made (S406). Here, the error of the data server with the original file can be confirmed when there is no response for a certain period of time or by inspection of network activity, and the error of the replication target data server is reported by the data server with the original file.

이렇게 복사본 정보가 갱신되고 나면, 쓰레드는 원본 파일에 대한 잠금을 해제하여 다른 요청에 대한 접근이 가능하도록 한 후(S407), 수행된 복제 작업이 마지막 복제 작업인지를 판단한다(S408). 판단결과 마지막 복제 작업이 아니면, 쓰레드는 작업 할당 여부를 판단하는 과정(S401)을 진행한다.After the copy information is updated in this way, the thread releases the lock on the original file to allow access to another request (S407), and then determines whether the performed replication operation is the last replication operation (S408). If the determination result is not the last replication job, the thread proceeds to step S401 to determine whether the job is allocated.

판단 과정(S408)에서의 판단결과 마지막 복제 작업이면, 메타데이터 서버(100)는 파일 복제 쓰레드의 동작을 종료한다. 한편, 쓰레드는 마지막 복제 요청의 경우 작업을 요청할 때, 더 이상의 요청 작업이 없음을 표시하여 보낸다. 이때, 더 이상의 요청 작업이 없는 시점은 지연복제 시스템 상의 모든 파일에 대한 메타데이터 검색이 종료된 후이다.If the determination result in the determination process (S408) is the last replication job, the metadata server 100 terminates the operation of the file replication thread. On the other hand, when the thread requests a task for the last duplicate request, the thread indicates that there are no more requested tasks. At this time, when there is no further request work, the metadata search for all files on the delayed replication system is finished.

검사 과정(S405)에서의 검사결과 오류가 있으면, 쓰레드는 복제 대상인 데이터 서버에서 전송 중 중단된 파일을 정리한 후(S409), 원본 파일이 있는 데이터 서버에서 오류가 발생하였는지를 판단한다(S410). 판단결과 오류가 없으면, 쓰레드는 서버 선택 과정(S403)을 진행한다.If there is an error as a result of the check in the checking process (S405), the thread cleans up the file interrupted during transmission in the data server to be replicated (S409), and determines whether an error has occurred in the data server where the original file is located (S410). If there is no error as a result of the determination, the thread proceeds to the server selection process (S403).

판단 과정(S410)에서의 판단결과 오류가 있으면, 쓰레드는 해당하는 파일에 대한 복제 요청을 더 이상 수행할 수 없으므로 복제 작업을 종료하고 잠금 해제 과정(S407)을 진행한다.If there is an error as a result of the determination in the determination process (S410), since the thread can no longer perform a replication request for the corresponding file, the replication operation is terminated and the lock release process is performed (S407).

도 8은 도 2에 도시된 데이터 서버가 복제 연산을 수행하는 과정을 나타낸 흐름도이다.8 is a flowchart illustrating a process of performing a copy operation by the data server illustrated in FIG. 2.

도 8을 참조하면, 원본 파일을 갖는 하나의 데이터 서버가 파일 복제를 시작하고 나서, 복제 지시받은 파일을 복제 대상인 데이터 서버에 전송한다(S501). 이때, 하나의 데이터 서버는 파일 전송이 오류없이 성공하였는지를 판단한다(S502). 이 과정에서, 하나의 데이터 서버는 실패 응답이 오거나 일정한 시간 안에 성공 응답이 오지 않은 경우 전송 실패라고 판단한다.Referring to FIG. 8, after one data server having an original file starts file duplication, a file instructed for duplication is transferred to a data server that is a duplication target (S501). At this time, one data server determines whether the file transfer succeeded without error (S502). In this process, one data server determines that the transmission failed when a failure response or a success response does not come within a certain time.

판단결과 전송 성공이면, 하나의 데이터 서버는 파일 복제 과정을 종료한다.If the determination is successful, one data server terminates the file duplication process.

판단결과 전송 실패면, 하나의 데이터 서버는 메타데이터 서버(100)에게 전송 실패를 보고하여 해당 메타데이터가 갱신되도록 한다(S503).If it is determined that the transmission fails, one data server reports the transmission failure to the metadata server 100 to update the corresponding metadata (S503).

본 발명의 기술사상은 상기 바람직한 실시예에 따라 구체적으로 기술되었으 나, 상기한 실시예는 그 설명을 위한 것이며, 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술분야의 통상의 전문가라면 본 발명의 기술사상의 범위에서 다양한 실시예가 가능함을 이해할 수 있을 것이다.Although the technical spirit of the present invention has been described in detail according to the above preferred embodiment, it should be noted that the above embodiment is for the purpose of description and not of limitation. In addition, those skilled in the art will understand that various embodiments are possible within the scope of the technical idea of the present invention.

도 1은 본 발명의 실시예에 따른 파일 입출력과 복제의 균형적 수행을 위한 지연복제 시스템의 구성도.1 is a block diagram of a delayed replication system for balanced performance of file input and output and replication according to an embodiment of the present invention.

도 2는 본 발명에 따른 지연복제 시스템이 파일을 데이터 서버들에 복제 및 저장하는 과정을 설명하기 위한 예시도.2 is an exemplary diagram for explaining a process of replicating and storing a file in data servers by a delayed replication system according to the present invention.

도 3은 도 2에 도시된 메타데이터의 구조를 나타낸 도면.FIG. 3 is a diagram showing the structure of metadata shown in FIG. 2; FIG.

도 4는 도 2에 도시된 클라이언트가 파일 갱신 연산을 수행하는 과정을 나타낸 흐름도.4 is a flowchart illustrating a process of a file update operation performed by a client illustrated in FIG. 2.

도 5는 도 2에 도시된 클라이언트가 지연 복제를 요청하는 과정을 나타낸 흐름도.5 is a flowchart illustrating a process of requesting a delayed replication by a client illustrated in FIG. 2.

도 6은 도 2에 도시된 메타데이터 서버가 복제 연산을 필요로 하는 파일 정보를 수집하는 과정을 나타낸 흐름도.FIG. 6 is a flowchart illustrating a process in which the metadata server illustrated in FIG. 2 collects file information requiring a copy operation.

도 7은 도 2에 도시된 메타데이터 서버가 지연복제 연산을 수행하는 과정을 나타낸 흐름도.7 is a flowchart illustrating a process of performing a delayed replication operation by the metadata server illustrated in FIG. 2.

도 8은 도 2에 도시된 데이터 서버가 복제 연산을 수행하는 과정을 나타낸 흐름도.8 is a flowchart illustrating a process of performing a copy operation by the data server illustrated in FIG. 2.

Claims (19)

다수의 데이터 서버 중에서 원본 파일을 저장하는 어느 하나의 데이터 서버;Any one of a plurality of data servers for storing the original file; 상기 다수의 데이터 서버 중에서 상기 원본 파일의 복사본을 각각 저장하는 적어도 하나의 다른 데이터 서버;At least one other data server, each storing a copy of the original file among the plurality of data servers; 상기 원본 파일 및 상기 각 복사본의 메타데이터를 저장하는 메타데이터 서버; 및A metadata server for storing metadata of the original file and each copy; And 상기 메타데이터를 참조하여 상기 원본 파일에 대한 정보를 얻어서 상기 원본 파일을 갱신시키는 클라이언트;를 포함하되,A client for updating the original file by obtaining information about the original file by referring to the metadata; 상기 메타데이터 서버는, 상기 원본 파일의 갱신이 완료된 후, 상기 클라이언트에 의해 갱신된 원본 파일을 저장한 데이터 서버에게 상기 원본 파일의 복사본을 저장하는 다른 데이터 서버들로 상기 갱신된 원본 파일을 전송하여 복제하도록 지시하되,After the update of the original file is completed, the metadata server transmits the updated original file to other data servers storing a copy of the original file to a data server storing the original file updated by the client. Instruct them to replicate, 상기 다른 데이터 서버들 중 부하가 가장 적은 데이터 서버부터 먼저 복제가 이루어지도록 하는 지연복제 시스템.Lazy replication system for replicating the data server with the least load among the other data server first. 제1항에 있어서,The method of claim 1, 상기 원본 파일의 갱신 단위는 상기 원본 파일의 지연 복제 단위보다 작은 것인 지연복제 시스템.And the update unit of the original file is smaller than the delay copy unit of the original file. 제1항에 있어서,The method of claim 1, 상기 다른 데이터 서버들에 저장된 파일들은 동일한 이미지를 갖는 것인 지연복제 시스템.And the files stored in the other data servers have the same image. 제1항에 있어서, 상기 다른 데이터 서버들에 저장된 원본 파일의 복사본은,The method of claim 1, wherein the copy of the original file stored on the other data servers, 상기 갱신된 원본 파일보다 이전 버전인 것인 지연복제 시스템.And a delayed replication system that is older than the updated original file. 제1항에 있어서,The method of claim 1, 상기 다른 데이터 서버들의 파일들에 대한 갱신은 상기 클라이언트의 설정에 따라 지연되어 수행되는 것인 지연복제 시스템.Updating the files of the other data servers is delayed and performed according to the setting of the client. 제1항에 있어서,The method of claim 1, 상기 다른 데이터 서버들의 파일들에 대한 갱신은 관리자의 지시에 따라 상기 메타데이터 서버에 의해 지연되어 실행되는 것인 지연복제 시스템.Updating the files of the other data servers is delayed and executed by the metadata server according to an administrator's instruction. 제1항에 있어서, 상기 메타데이터는,The method of claim 1, wherein the metadata, 상기 원본 파일의 복사본의 수만큼의 복사본 정보들을 포함하는 것인 지연복제 시스템.And as many copies of the copy of the original file as possible. 제7항에 있어서, 상기 복사본 정보들은,The method of claim 7, wherein the copy information, 상기 클라이언트에 의해서 상기 원본 파일이 갱신될 때 증가되어 각 복사본 사이에 어느 것이 더 최신의 데이터를 갖는지를 나타내는 버전;A version that is incremented when the original file is updated by the client to indicate which has the latest data between each copy; 상기 복사본이 갱신 가능한 복사본 인지 여부에 대한 정보, 데이터의 유효성 정보, 및 데이터 서버들의 유효성 정보를 포함하는 복사본 상태; 및A copy status including information on whether the copy is an updatable copy, validity information of data, and validity information of data servers; And 상기 클라이언트에서 상기 원본 파일의 갱신 과정에서 이용되는 데이터 서버 주소Data server address used in the client update process of the original file 를 포함하는 것인 지연복제 시스템.Delayed replication system comprising a. 클라이언트가 메타데이터 서버에 저장된 메타데이터를 이용하여 다수의 데이터 서버 중에서 어느 하나의 데이터 서버에 저장된 원본 파일을 갱신한 후, 상기 갱신된 원본 파일을 다른 데이터 서버들에 복제하는 지연복제 방법에 있어서,In a delayed replication method in which a client updates original files stored in any one of a plurality of data servers using metadata stored in a metadata server, and then copies the updated original files to other data servers. 상기 원본 파일 및 상기 원본 파일의 복사본의 메타데이터를 참조하여 상기 어느 하나의 데이터 서버를 검색하고, 상기 어느 하나의 데이터 서버의 상기 원본 파일을 갱신하는 단계;Searching the one data server with reference to metadata of the original file and a copy of the original file and updating the original file of the one data server; 상기 원본 파일의 갱신이 완료되면, 상기 원본 파일의 복사본이 저장된 다른 데이터 서버를 검색하고, 상기 갱신된 원본 파일을 전송하여 복제하는 단계를 포함하되,When the update of the original file is completed, searching for another data server storing a copy of the original file, and transmitting and replicating the updated original file, 상기 다른 데이터 서버들 중 부하가 가장 적은 데이터 서버부터 먼저 복제가 이루어지도록 하는 지연복제 방법.The delayed replication method of replicating the data server with the least load among the other data servers first. 제9항에 있어서, 상기 갱신하는 단계는,The method of claim 9, wherein the updating is, 상기 클라이언트가 상기 어느 하나의 데이터 서버의 주소를 문의하는 단계;The client querying the address of the one data server; 상기 메타데이터 서버로부터 상기 어느 하나의 데이터 서버 주소를 수신하는 단계;Receiving the one data server address from the metadata server; 상기 어느 하나의 데이터 서버에 갱신 요청과 상기 원본 파일의 갱신 데이터를 전송하는 단계;Transmitting an update request and update data of the original file to the one data server; 상기 클라이언트는 상기 갱신 요청과 상기 갱신 데이터를 전송하는 도중에 오류가 발생 되었는지를 판단하는 단계;Determining, by the client, whether an error occurred while transmitting the update request and the update data; 판단결과 오류가 발생되지 않았으면, 상기 클라이언트는 원본 파일의 갱신이 성공한 것으로 판단하여 갱신을 종료하는 단계; 및If it is determined that no error has occurred, the client determining that the update of the original file is successful and ending the update; And 판단결과 오류가 발생 되었으면, 상기 클라이언트는 상기 메타데이터 서버에게 상기 어느 하나의 데이터 서버의 갱신에 오류가 발생하였음을 보고하는 단계If the determination result is an error, the client reports to the metadata server that an error occurred in the update of any one data server. 를 포함하는 것인 지연복제 방법.Delayed replication method comprising a. 제10항에 있어서,The method of claim 10, 상기 메타데이터 서버는 상기 오류가 발생하였음을 보고받으면, 상기 다른 데이터 서버 중 적어도 어느 하나에 저장된 원본 파일의 복사본을 이용하여 상기 원본 파일을 복구하는 단계If the metadata server is notified that the error has occurred, recovering the original file using a copy of the original file stored in at least one of the other data servers. 를 더 포함하는 지연복제 방법.Delayed replication method further comprising. 제9항에 있어서, 상기 복제하는 단계는,The method of claim 9, wherein the replicating step, 상기 클라이언트가 모든 파일 작업을 끝내고 파일을 닫은 후 복제 시작을 미리 설정하였는지를 판단하는 단계;Determining whether the client presets the start of replication after finishing all file operations and closing the file; 판단결과 복제 시작을 설정하지 않았으면, 상기 클라이언트는 파일 닫는 과정을 종료하는 단계;If it is determined that duplication is not set, the client terminating the file closing process; 판단결과 복제 시작을 설정하였으면, 상기 클라이언트는 메타데이터 서버에게 복제 작업을 전담하는 복제 데몬 기동을 요청하는 단계;If it is determined that replication start has been established, the client requesting a metadata server to start a replication daemon dedicated to replication; 상기 클라이언트는 복제 데몬 기동을 요청한 후 곧바로 모든 동작을 수행하거나 해당 파일에 대한 복제 작업의 종료를 기다릴 수 있는지를 판단하는 단계;Determining whether the client can perform all operations immediately after requesting to start the replication daemon or wait for the completion of the replication operation for the file; 판단결과 복제 작업의 종료를 기다릴 수 없으면, 상기 클라이언트는 파일 닫는 과정을 종료하는 단계;If the client cannot wait for the end of the duplication operation, the client terminating the file closing process; 판단결과 복제 작업의 종료를 기다릴 수 있으면, 상기 클라이언트는 주기적으로 상기 메타데이터 서버에게 해당 파일에 대한 복제 작업의 수행이 끝났는지 여부를 문의하는 단계;If the client can wait for the completion of the duplication, the client periodically inquiring the metadata server whether the duplication of the file is finished; 상기 클라이언트는 복제 작업이 종료되었는지를 판단하는 단계;Determining, by the client, whether a copy job is finished; 판단결과 복제 작업이 종료되었으면, 상기 클라이언트는 파일 닫는 과정을 종료하는 단계; 및If it is determined that the copying operation is finished, the client terminating the file closing process; And 판단결과 복제 작업이 종료되지 않았으면, 상기 클라이언트는 일정 시간 동안 기다린 후, 상기 복제 작업의 수행 여부를 문의하는 단계로 넘어가는 단계; 및If it is determined that the copying job is not finished, the client waits for a predetermined time and then proceeds to inquiring whether to perform the copying job; And 상기 복제 작업이 종료됨에 따라 상기 다른 데이터 서버들에 상기 원본 파일의 복사본이 저장되는 단계Storing a copy of the original file on the other data servers as the copy operation ends. 를 포함하는 것인 지연복제 방법.Delayed replication method comprising a. 제12항에 있어서, 상기 복제 작업의 수행 여부를 문의하는 단계에서,The method of claim 12, wherein in the step of inquiring whether to perform the replication operation, 상기 메타데이터 서버는 상기 메타데이터를 검사하여 상기 원본 파일의 복사본 수가 기설정된 개수에 도달하였는지 여부를 확인하고, 상기 클라이언트에게 복제 작업 수행 여부를 알려주는 것인 지연복제 방법.The metadata server checks the metadata to determine whether the number of copies of the original file has reached a preset number, and informs the client whether or not to perform a copy operation. 제9항에 있어서, 상기 복제하는 단계는,The method of claim 9, wherein the replicating step, 상기 메타데이터 서버가 모든 파일에 대한 메타데이터를 검색하여 복제를 필요로 하는 파일들을 순차적으로 탐색하는 단계;The metadata server sequentially searching for files requiring duplication by searching metadata for all files; 상기 메타데이터 서버는 탐색을 통해 더 이상 복제를 필요로 하는 파일이 없는지를 판단하는 단계;Determining, by the metadata server, that the file no longer needs a copy by searching; 판단결과 복제를 필요로 하는 파일이 없으면, 상기 메타데이터 서버는 파일 복제 과정을 종료하는 단계;If there is no file requiring duplication, the metadata server terminating the duplication process; 판단결과 복제를 필요로 하는 파일이 있으면, 상기 메타데이터 서버는 복사본 수가 소정의 기준값 보다 적은지를 판단하는 단계;Determining, by the metadata server, if there is a file requiring duplication, the number of copies is less than a predetermined reference value; 판단결과 복사본 수가 적지 않으면, 상기 탐색 단계로 넘어가는 단계;If it is determined that the number of copies is not small, proceeding to the searching step; 판단결과 복사본 수가 적으면, 상기 메타데이터 서버는 상기 원본 파일이 저장된 상기 어느 하나의 데이터 서버를 검색하는 단계;If it is determined that the number of copies is small, the metadata server searching for the one data server in which the original file is stored; 상기 메타데이터 서버는 상기 어느 하나의 데이터 서버를 담당하는 작업 쓰레드가 존재하는지를 검사하는 단계;The metadata server checking whether there is a working thread that is responsible for any one of the data servers; 검사결과 작업 쓰레드가 있으면, 상기 메타데이터 서버는 기 어느 하나의 데이터 서버를 담당하는 작업 쓰레드에 복제 작업을 할당하는 단계; 및Test results further comprising: If the working threads, the metadata server assigns the task to the task thread replication responsible for a group of any one data server; And 검사결과 작업 쓰레드가 없으면, 상기 메타데이터 서버는 상기 어느 하나의 데이터 서버를 담당하는 작업 쓰레드를 새로 생성한 후 상기 복제 작업 할당 단계로 넘어가는 단계If there is no task thread as a result of the check, the metadata server creates a new task thread that is in charge of the one data server and then proceeds to the step of allocating the replication task. 를 포함하는 것인 지연복제 방법.Delayed replication method comprising a. 제14항에 있어서, 상기 파일 복제 종료 단계에서,15. The method of claim 14, wherein in the file replication termination step, 상기 메타데이터 서버는 갱신이 필요한 파일에 대한 인덱스를 미리 상기 다수의 데이터 서버의 오류 발생시마다 작성하여 이용하거나, 파일 별 남은 복사본의 수에 따라서 차등적으로 복제의 우선 순위를 조절하는 것인 지연복제 방법.The metadata server creates an index for a file that needs to be updated in advance whenever an error occurs in the plurality of data servers, or adjusts the priority of replication differentially according to the number of remaining copies per file. Way. 제14항에 있어서, 상기 어느 하나의 데이터 서버를 검색하는 단계에서,15. The method of claim 14, wherein retrieving any one data server: 상기 메타데이터 서버는 상기 메타데이터의 버전 정보를 참조하는 것인 지연복제 방법.And the metadata server refers to version information of the metadata. 제9항에 있어서, 상기 복제하는 단계는,The method of claim 9, wherein the replicating step, 상기 메타데이터 서버가 파일 복제 쓰레드를 시작시키는 단계;The metadata server starting a file replication thread; 상기 쓰레드는 자신에게 새로운 파일 복제 작업이 할당되었는지를 판단하는 단계;The thread determining whether a new file duplication task has been allocated to the thread; 판단결과 새로운 파일 복제 작업이 할당되지 않았으면, 상기 쓰레드는 새로운 복제 작업이 할당되기를 기다리는 단계;If it is determined that no new file duplication task has been allocated, the thread waiting for a new duplication task to be allocated; 판단결과 새로운 복제 작업이 할당되었으면, 상기 쓰레드는 상기 갱신된 원본 파일에 잠금을 설정하여 복제 중에 파일 변화를 방지하는 단계;If it is determined that a new copy job is allocated, the thread locks the updated original file to prevent file changes during copying; 상기 쓰레드는 상기 다수의 데이터 서버들 중에 부하가 가장 적은 다른 데이터 서버들을 하나씩 선택하는 단계;The thread selecting one of the plurality of other data servers with the least load among the plurality of data servers; 상기 쓰레드는 상기 어느 하나의 데이터 서버에게 상기 선택된 다른 데이터 서버로 파일을 전송할 것을 지시하는 단계;The thread instructing the one data server to transfer a file to the selected other data server; 상기 쓰레드는 파일의 전송 도중 오류가 발생되었는지를 검사하는 단계;The thread checking whether an error occurred during the transfer of a file; 검사결과 오류없이 정상적으로 복제가 완료되었으면, 상기 쓰레드는 복제 완료를 상기 메타데이터 서버에게 보고하여 메타데이터의 복사본 정보가 갱신되도록 하는 단계;If the duplication is completed normally without error, the thread reports completion of duplication to the metadata server to update the copy information of the metadata; 상기 쓰레드는 상기 원본 파일에 대한 잠금을 해제하는 단계;The thread releasing a lock on the original file; 상기 쓰레드는 수행된 복제 작업이 마지막 복제 작업인지를 판단하는 단계;Determining, by the thread, whether the replication operation performed is the last replication operation; 판단결과 마지막 복제 작업이 아니면, 작업 할당 여부를 판단하는 단계로 넘어가는 단계;If it is not determined that the final copy job, the method proceeds to the step of determining whether to assign the job; 판단결과 마지막 복제 작업이면, 상기 메타데이터 서버는 파일 복제 쓰레드의 동작을 종료하는 단계;If the determination result is the last replication job, the metadata server terminating the operation of the file replication thread; 검사결과 오류가 있으면, 상기 쓰레드는 상기 어느 하나의 데이터 서버에서 전송 중 중단된 파일을 정리한 후, 오류가 발생하였는지를 판단하는 단계;If there is an error in the check result, the thread cleans up a file interrupted during transmission at any one of the data servers and then determines whether an error has occurred; 판단결과 오류가 없으면, 상기 다른 데이터 서버들을 하나씩 선택하는 단계로 넘어가는 단계; 및If there is no error as a result of the determination, the method proceeds to selecting the other data servers one by one; And 판단결과 오류가 있으면, 복제 작업을 종료하고 잠금 해제 단계로 넘어가는 단계If it is determined that there is an error, the procedure ends the replication operation and proceeds to the unlocking stage. 를 포함하는 것인 지연복제 방법.Delayed replication method comprising a. 제9항에 있어서, 상기 복제하는 단계는,The method of claim 9, wherein the replicating step, 상기 어느 하나의 데이터 서버의 원본 파일을 복제하여 상기 다른 데이터 서버들에 전송하는 단계;Duplicating the original file of the one data server and transmitting it to the other data servers; 상기 전송이 오류없이 성공하였는지를 판단하는 단계;Determining whether the transmission succeeded without error; 판단결과 전송 성공이면, 파일 복제 과정을 종료하는 단계; 및If the transmission is successful, terminating the file duplication process; And 판단결과 전송 실패면, 상기 메타데이터 서버에게 전송 실패를 보고하는 단계If it is determined that the transmission failed, reporting the transmission failure to the metadata server; 를 포함하는 것인 지연복제 방법.Delayed replication method comprising a. 제18항에 있어서, 상기 판단 단계에서,19. The method of claim 18, wherein in the determining step, 상기 다른 데이터 서버들 중 적어도 하나로부터 실패 응답이 오거나 일정한 시간 안에 성공 응답이 오지 않은 경우 전송 실패라고 판단하는 것인 지연복제 방법.And determining that the transmission failed when a failure response comes from at least one of the other data servers, or a success response does not come within a predetermined time.
KR1020070129209A 2007-12-12 2007-12-12 Lazy Replication System And Method For Balanced I/Os Between File Read/Write And Replication KR100936238B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070129209A KR100936238B1 (en) 2007-12-12 2007-12-12 Lazy Replication System And Method For Balanced I/Os Between File Read/Write And Replication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070129209A KR100936238B1 (en) 2007-12-12 2007-12-12 Lazy Replication System And Method For Balanced I/Os Between File Read/Write And Replication

Publications (2)

Publication Number Publication Date
KR20090062106A KR20090062106A (en) 2009-06-17
KR100936238B1 true KR100936238B1 (en) 2010-01-12

Family

ID=40991393

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070129209A KR100936238B1 (en) 2007-12-12 2007-12-12 Lazy Replication System And Method For Balanced I/Os Between File Read/Write And Replication

Country Status (1)

Country Link
KR (1) KR100936238B1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101243981B1 (en) 2011-05-27 2013-03-14 주식회사 케이티디에스 A Method for Back-Up CCTV image data, and A System therefor
KR20160123748A (en) * 2015-04-17 2016-10-26 한국전자통신연구원 Apparatus for controlling reproduction of file in distributed file system and method
KR20180069651A (en) 2016-12-15 2018-06-25 (주)신테카바이오 Analysis platform for personalized medicine based personal genome map and Analysis method using thereof
KR20190000341A (en) 2018-12-20 2019-01-02 (주)신테카바이오 Analysis platform for personalized medicine based personal genome map and Analysis method using thereof
KR20190000342A (en) 2018-12-20 2019-01-02 (주)신테카바이오 Analysis platform for personalized medicine based personal genome map and Analysis method using thereof
KR20190000340A (en) 2018-12-20 2019-01-02 (주)신테카바이오 Analysis platform for personalized medicine based personal genome map and Analysis method using thereof
US10540324B2 (en) 2016-07-29 2020-01-21 Syntekabio Co., Ltd. Human haplotyping system and method

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102137217B1 (en) * 2013-07-18 2020-07-23 한국전자통신연구원 Method of data re-replication in asymmetric file system
KR102221366B1 (en) * 2019-04-18 2021-03-02 주식회사 웨이투빗 Method and device for restoring blockchain network with its credibility on backup data maintained and minimizing resource usage by using delayed synchronization recycling nodes
KR102221350B1 (en) 2019-04-18 2021-03-02 주식회사 웨이투빗 Method and device for restoring blockchain network with its credibility on backup data maintained by using delayed synchronization

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08185346A (en) * 1994-12-27 1996-07-16 Mitsubishi Electric Corp Data duplicate system
KR20060067119A (en) * 2004-12-14 2006-06-19 한국전자통신연구원 Crash recovery system and method for a distributed file server using object based storage

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08185346A (en) * 1994-12-27 1996-07-16 Mitsubishi Electric Corp Data duplicate system
KR20060067119A (en) * 2004-12-14 2006-06-19 한국전자통신연구원 Crash recovery system and method for a distributed file server using object based storage

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101243981B1 (en) 2011-05-27 2013-03-14 주식회사 케이티디에스 A Method for Back-Up CCTV image data, and A System therefor
KR20160123748A (en) * 2015-04-17 2016-10-26 한국전자통신연구원 Apparatus for controlling reproduction of file in distributed file system and method
KR102377726B1 (en) 2015-04-17 2022-03-24 한국전자통신연구원 Apparatus for controlling reproduction of file in distributed file system and method
US10540324B2 (en) 2016-07-29 2020-01-21 Syntekabio Co., Ltd. Human haplotyping system and method
KR20180069651A (en) 2016-12-15 2018-06-25 (주)신테카바이오 Analysis platform for personalized medicine based personal genome map and Analysis method using thereof
KR20190000341A (en) 2018-12-20 2019-01-02 (주)신테카바이오 Analysis platform for personalized medicine based personal genome map and Analysis method using thereof
KR20190000342A (en) 2018-12-20 2019-01-02 (주)신테카바이오 Analysis platform for personalized medicine based personal genome map and Analysis method using thereof
KR20190000340A (en) 2018-12-20 2019-01-02 (주)신테카바이오 Analysis platform for personalized medicine based personal genome map and Analysis method using thereof

Also Published As

Publication number Publication date
KR20090062106A (en) 2009-06-17

Similar Documents

Publication Publication Date Title
KR100936238B1 (en) Lazy Replication System And Method For Balanced I/Os Between File Read/Write And Replication
US10209893B2 (en) Massively scalable object storage for storing object replicas
US10104175B2 (en) Massively scalable object storage system
US9898521B2 (en) Massively scalable object storage system
JP6246358B2 (en) Managed service for acquisition, storage and consumption of large data streams
US8510267B2 (en) Synchronization of structured information repositories
US8386540B1 (en) Scalable relational database service
KR101597384B1 (en) Partition management in a partitioned, scalable, and available structured storage
US8271455B2 (en) Storing replication requests for objects in a distributed storage system
US8392482B1 (en) Versioning of database partition maps
US20240168673A1 (en) Methods and systems to interface between a multi-site distributed storage system and an external mediator to efficiently process events related to continuity
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: 20121206

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20131209

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20141229

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20151228

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20161228

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20171226

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 10