KR101371202B1 - Distributed file system having multi MDS architecture and method for processing data using the same - Google Patents

Distributed file system having multi MDS architecture and method for processing data using the same Download PDF

Info

Publication number
KR101371202B1
KR101371202B1 KR1020120040998A KR20120040998A KR101371202B1 KR 101371202 B1 KR101371202 B1 KR 101371202B1 KR 1020120040998 A KR1020120040998 A KR 1020120040998A KR 20120040998 A KR20120040998 A KR 20120040998A KR 101371202 B1 KR101371202 B1 KR 101371202B1
Authority
KR
South Korea
Prior art keywords
server
data
metadata server
metadata
file system
Prior art date
Application number
KR1020120040998A
Other languages
Korean (ko)
Other versions
KR20130118088A (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 KR1020120040998A priority Critical patent/KR101371202B1/en
Publication of KR20130118088A publication Critical patent/KR20130118088A/en
Application granted granted Critical
Publication of KR101371202B1 publication Critical patent/KR101371202B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/325Hash tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

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)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 복수개의 클라이언트들로부터 집중적인 접근이 이루어지는 경우에도 다수개의 메타데이터 서버(Metadata Server : MDS)를 구성하여 메타데이터에 대한 확장성과 가용성을 높일 수 있는 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템 및 이를 이용한 데이터 처리 방법을 제공하기 위한 것으로서, 파일 데이터를 저장하고 관리하며, 주기적으로 메타데이터 서버로 자신의 상태 정보를 보고하는 적어도 2개 이상의 데이터 서버와, 적어도 2개 이상으로 구성되어 DHT(Distributed Hash Table) 개념을 적용하여 각각 배치되며, 파일 시스템의 모든 파일에 대한 메타데이터를 저장하고, 상기 데이터 서버로부터 제공되는 상태 정보를 기반으로 데이터 서버에 대한 상태 정보를 관리하는 메타데이터 서버와, 클라이언트 응용을 수행하면서 상기 메타데이터 서버로부터 파일 메타데이터를 액세스하고 데이터 서버로부터 파일 데이터를 입출력하는 파일 시스템 클라이언트를 포함하여 구성되는데 있다.The present invention is a distributed file system having a multi-metadata server structure capable of increasing scalability and availability of metadata by configuring a plurality of metadata servers (MDS) even when intensive access is made from a plurality of clients. And at least two or more data servers for storing and managing file data, and periodically reporting its status information to the metadata server, and at least two or more DHTs. A metadata server for storing metadata for all files of a file system and managing state information for the data server based on the state information provided from the data server, wherein each metadata is disposed by applying a distributed hash table) concept; The metadata server while running a client application Accessing the file from the metadata and may consists of, including the file system client for inputting and outputting file data from the data server.

Figure R1020120040998
Figure R1020120040998

Description

멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템 및 이를 이용한 데이터 처리 방법{Distributed file system having multi MDS architecture and method for processing data using the same}Distributed file system having multi MDS architecture and method for processing data using the same}

본 발명은 클라이언트들로부터 집중적인 접근이 이루어지는 데이터에 대한 접근을 분산하는 분산 파일 시스템에 관한 것으로, 특히 다수개의 메타데이터 서버(Metadata Server : MDS)를 구성하여 메타데이터에 대한 확장성과 가용성을 높일 수 있는 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템 및 이를 이용한 데이터 처리 방법에 관한 것이다.The present invention relates to a distributed file system that distributes access to data in which intensive access is made from clients. In particular, a plurality of metadata servers (MDS) can be configured to increase scalability and availability of metadata. The present invention relates to a distributed file system having a multi-metadata server structure and a data processing method using the same.

종래의 스토리지(storage) 환경에서 저장되는 데이터의 대부분은 기업이나 기관에서 생성한 업무 관련 데이터였으나, 최근 인터넷 기술의 비약적인 발전으로 블로그, 사진, 동영상과 같은 멀티미디어 데이터들의 저장 비율도 급속도로 증가하고 있다. 특히, 국내외에서 인터넷 서비스를 실시중인 대형 포탈 업체의 경우에는 매월 수 테라바이트(Tera Byte : TB)에서 수십 테라바이트의 데이터가 새롭게 생성되어 저장 및 관리되고 있다. 그러나 기존의 저장 구조 환경은 스토리지 확장성 및 관리의 용이성에서 많은 문제점이 있기 때문에 변화 무쌍한 서비스 환경에 대체하기에는 부족하다.Most of the data stored in a conventional storage environment is business-related data generated by a corporation or an institution. However, the rapid development of Internet technology has rapidly increased the storage ratio of multimedia data such as blogs, photographs, and moving images . In particular, large portal companies that provide Internet services at home and abroad are newly generating, storing and managing tens of terabytes of data every few terabytes (TB). However, the existing storage structure environment has many problems in storage scalability and ease of management, so it is not enough to replace the variable service environment.

따라서, 최근 스토리지 시스템 혹은 파일 시스템의 근원적인 기술 발전은 스토리지 시스템의 확장성(scalability) 및 성능의 향상에 기인하고 있다. 상세하게는, 파일 시스템 구조 측면에서 몇몇 시스템들이 파일의 데이터 입출력 경로와 파일의 메타데이터 관리 경로를 분리시켜서 분산 스토리지 시스템의 확장성과 성능을 높인 것이다. 이러한 구조를 적용하여 파일 시스템 클라이언트가 저장 장치들에 직접 접근할 수 있게 하고, 메타데이터를 분산시켜서 빈번한 파일의 메타데이터 접근으로 인한 병목현상을 해소하여 스토리지의 확장성을 높인다.Thus, recent technological advances in storage systems or file systems are due to improvements in scalability and performance of storage systems. In particular, some systems in the file system architecture have improved the scalability and performance of the distributed storage system by separating the data input / output path of the file and the metadata management path of the file. By applying this structure, the file system client can directly access the storage devices, and by distributing the metadata, the bottleneck caused by frequent file metadata access is eliminated to increase the storage scalability.

이러한 구조를 기반으로 개발된 엔터프라이즈급 스토리지 솔루션으로 IBM의 StorageTank, Panasas의 ActiveScale Storage Cluster, 그리고 Cluster filesystems의 luster, Google의 Google Filesystem 등이 있다. 특히, Google Filesystem은 한 파일에 대한 블록 데이터를 다수의 데이터 서버에 복제하여 가용성을 더욱 높였다.Enterprise-class storage solutions based on this architecture include IBM's StorageTank, Panasas's ActiveScale Storage Cluster, Cluster filesystems luster, and Google's Google Filesystem. In particular, Google Filesystem replicated block data for one file to multiple data servers to make it more usable.

이와 같은 네트워크 기반 분산 파일 시스템 환경에서는 파일 시스템 클라이언트, 메타데이터 서버(Metadata Server : MDS) 및 데이터 서버(Data Server : DS)들이 네트워크를 통해 교신하면서 데이터의 입출력을 제공한다. 그리고 파일 시스템 클라이언트는 특정 파일에 접근하기 위해서 메타데이터 서버(MDS)로부터 파일의 실제 데이터가 저장된 블록의 위치 정보를 획득한 후, 블록이 위치한 데이터 서버에 접근하여 블록의 데이터를 읽어 이를 사용한다.In such a network-based distributed file system environment, file system clients, metadata servers (MDSs), and data servers (Data Servers) communicate with each other over a network to provide input and output of data. In order to access a specific file, the file system client obtains the location information of the block in which the actual data of the file is stored from the metadata server (MDS), accesses the data server where the block is located, and reads the block data.

도 1 은 일반적인 분산 파일 시스템의 구성을 개략적으로 도시한 구성도이다.1 is a configuration diagram schematically illustrating a configuration of a general distributed file system.

도 1에 도시된 바와 같이, 분산 파일 시스템은 클라이언트 응용을 수행하면서 메타데이터 서버(20)로부터 파일 메타데이터를 액세스하고 데이터 서버(30)로부터 파일 데이터를 입출력하는 파일 시스템 클라이언트(10)와, 파일 시스템의 모든 파일에 대한 메타데이터를 저장하고 관리하며, 모든 데이터 서버(30)에 대한 상태 정보를 관리하는 메타데이터 서버(20)와, 파일 데이터를 저장하고 관리하며, 주기적으로 메타데이터 서버(20)에게 자신의 상태 정보를 보고하는 데이터 서버(30)를 포함한다. 이때, 상기 파일 시스템 클라이언트(10), 메타데이터 서버(20) 및 데이터 서버(30)들은 네트워크(40)로 상호 연결된다.As shown in FIG. 1, the distributed file system includes a file system client 10 that accesses file metadata from the metadata server 20 and inputs and outputs file data from the data server 30 while executing a client application. The metadata server 20 stores and manages metadata of all files of the system, manages state information of all data servers 30, and stores and manages file data, and periodically the metadata server 20. Includes a data server 30 for reporting its status information. In this case, the file system client 10, the metadata server 20, and the data server 30 are interconnected to the network 40.

이러한 구성으로 이루어지는 분산 파일 시스템에서는 파일 데이터가 정해진 크기의 청크 단위로 나뉘어서 데이터 서버들(30)에 분산 저장된다.In the distributed file system having such a configuration, file data is divided into chunk units having a predetermined size and distributed and stored in the data servers 30.

그러면, 상기 메타데이터 서버(20)는 파일 데이터가 생성될 데이터 서버(30)를 선정하고, 복제본을 저장할 데이터 서버들(30)을 선정한다. 이때, 파일 데이터는 유일한 식별자에 의해 구별되며 생성된 파일 데이터에 대한 식별자 정보는 파일의 메타데이터 정보로 메타데이터 서버(20)에 저장된다. 또한 새로운 파일을 쓰려는 사용자의 요청이 오면 데이터 서버(30)에서 보고되는 자신의 상태 정보를 바탕으로 적합한 데이터 서버(30)를 선택한다.Then, the metadata server 20 selects the data server 30 in which file data is to be generated, and selects data servers 30 to store the replica. In this case, the file data is distinguished by a unique identifier, and the identifier information on the generated file data is stored in the metadata server 20 as metadata information of the file. In addition, when a user's request to write a new file arrives, an appropriate data server 30 is selected based on the state information reported by the data server 30.

또한 상기 메타데이터 서버(20)는 데이터 서버(30)의 상태를 관리하다가 문제가 발생하면, 문제가 발생된 데이터 서버(30)를 사용할 수 없는 상태로 변경하는 등을 작업을 수행한다. 따라서 파일을 쓰려는 사용자의 요청이 들어왔을 때, 현재 사용 가능한 데이터 서버(30)를 선택을 한다.In addition, the metadata server 20 manages the state of the data server 30 and, if a problem occurs, changes the data server 30 in which the problem occurs to an unusable state. Therefore, when a user's request to write a file comes in, he selects the currently available data server 30.

Phil Schwan이 2003년 7월에 리눅스 심포지움 2003에서 발표한 "Lustre: Building a file system for 1000-node clusters"에서는 클라이언트가 주어진 파일이나 디렉토리 경로에 대해 다수의 데이터 서버 중에 특정 데이터 서버를 매핑하기 위해 단일 메타데이터 서버와 해시 함수를 활용한 방법을 제안하였다. 이는 매핑을 위한 해시함수가 균등하게 클라이언트의 요청을 다수의 데이터 서버들에 분배한다면, 클라이언트는 해시 함수를 통해 얻은 값을 매핑하여 상응하는 데이터 서버에 곧바로 접근할 수 있으며, 균등한 서버의 선택으로 인해 다수의 클라이언트들이 데이터 서버들을 선택할 때 부하를 균등하게 분배할 수 있는 효과를 가진다. Phil Schwan's “Lustre: Building a file system for 1000-node clusters”, presented at the Linux Symposium 2003 in July 2003, allows a client to map a particular data server among multiple data servers for a given file or directory path. We proposed a method using a metadata server and a hash function. This means that if the hash function for mapping evenly distributes the client's request to multiple data servers, the client can directly access the corresponding data server by mapping the values obtained through the hash function. This has the effect of distributing the load evenly when multiple clients select data servers.

그러나, 이와 같은 기존의 분산 파일 시스템의 경우는 다수 파일 시스템 클라이언트(10)의 요청에 의해 단일 메타데이터 서버(20)가 처리함에 따라, 단일 메타데이터 서버(20)가 처리할 수 있는 메타데이터 관련 연산의 수는 한정되게 된다. 따라서, 단일 메타데이터 서버(20)의 구성으로는 메타데이터에 대한 확장성과 가용성이 좋지 못한 문제점이 있다.However, in the case of such a conventional distributed file system, as the single metadata server 20 processes the request of the multiple file system clients 10, metadata related to the single metadata server 20 may be processed. The number of operations is limited. Therefore, the configuration of a single metadata server 20 has a problem that the scalability and availability for the metadata is not good.

이러한 문제점을 해결하기 위해 최근 이러한 메타데이터 처리 성능을 향상시키기 위해 다수의 메타데이터 서버로 구성하기 위한 다양한 연구가 진행되고 있다. 특히, 이러한 다수의 메타데이터 서버(20)의 구성은 처리 성능 향상과 더불어 고장에 대처할 수 있는 가용성을 가진다는 점에서 커다란 장점을 가지고 있으므로, 이에 따른 도입이 더욱 필요하게 된다.In order to solve this problem, various studies have recently been conducted to configure a plurality of metadata servers to improve such metadata processing performance. In particular, the configuration of the plurality of metadata server 20 has a great advantage in that it has the ability to cope with the failure and improve the processing performance, the introduction accordingly is more necessary.

본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 복수개의 클라이언트들로부터 집중적인 접근이 이루어지는 경우에도 다수개의 메타데이터 서버(Metadata Server : MDS)를 구성하여 메타데이터에 대한 확장성과 가용성을 높일 수 있는 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템 및 이를 이용한 데이터 처리 방법을 제공하는데 그 목적이 있다.The present invention has been made to solve the above problems, even when intensive access from a plurality of clients to configure a plurality of metadata server (Metadata Server: MDS) to increase the scalability and availability of metadata An object of the present invention is to provide a distributed file system having a multi-metadata server structure and a data processing method using the same.

본 발명의 다른 목적은 다수개의 메타데이터 서버의 배치를 DHT(Distributed Hash Table) 개념을 적용하고, 해시 공간(hash space)에 존재하는 값 중 하나를 토큰(token) 값으로 정의하여 메타데이터 서버들의 고장이 발생하는 상황에서도 효과적으로 모든 데이터 서버에 대한 상태 정보를 관리할 수 있는 분산 파일 시스템 및 이를 이용한 데이터 처리 방법을 제공하는데 있다.Another object of the present invention is to apply the concept of Distributed Hash Table (DHT) to the arrangement of a plurality of metadata servers, and to define one of the values present in the hash space as a token value of the metadata servers. It is to provide a distributed file system and a data processing method using the same that can effectively manage the status information for all data servers even in the event of a failure.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템의 특징은 파일 데이터를 저장하고 관리하며, 주기적으로 메타데이터 서버로 자신의 상태 정보를 보고하는 적어도 2개 이상의 데이터 서버와, 적어도 2개 이상으로 구성되어 DHT(Distributed Hash Table) 개념을 적용하여 각각 배치되며, 파일 시스템의 모든 파일에 대한 메타데이터를 저장하고, 상기 데이터 서버로부터 제공되는 상태 정보를 기반으로 데이터 서버에 대한 상태 정보를 관리하는 메타데이터 서버와, 클라이언트 응용을 수행하면서 상기 메타데이터 서버로부터 파일 메타데이터를 액세스하고 데이터 서버로부터 파일 데이터를 입출력하는 파일 시스템 클라이언트를 포함하여 구성되는데 있다.A feature of a distributed file system having a multi-metadata server structure according to the present invention for achieving the above object is at least two or more that stores and manages file data, and periodically reports its status information to the metadata server. It is composed of a data server and at least two, and each is arranged by applying the concept of a distributed hash table (DHT), and stores metadata about all files of the file system, and based on the status information provided from the data server. It includes a metadata server that manages state information about the server, and a file system client that accesses file metadata from the metadata server and inputs and outputs file data from the data server while executing a client application.

바람직하게 상기 데이터 서버는 입력되는 원 파일을 적어도 하나 이상의 데이터로 분할하고, 상기 분할된 원 파일 데이터에 각각 적어도 2개 이상의 패리티 데이터를 결합한 하나 이상의 분할 데이터를 생성한 후, 상기 생성된 각각의 분할 데이터를 다시 분할하여 저장하는 것을 특징으로 한다.Preferably, the data server divides the input original file into at least one piece of data, generates one or more pieces of divided data each of which combines at least two or more parity data with the divided pieces of original file data, and then generates each of the divided pieces. The data is divided and stored again.

바람직하게 상기 생성된 분할 데이터는 인코딩을 통해 패리티 데이터를 포함하는 로컬 스토리지의 부호어 크기로 생성되는 것을 특징으로 한다.Preferably, the generated divided data is generated with a codeword size of local storage including parity data through encoding.

바람직하게 상기 메타데이터 서버는 해시 공간(hash space)에 존재하는 값 중 하나를 토큰(token) 값으로 정의하고, 시계 방향 또는 반시계 방향으로 해시 링(hash ring)을 따라 가면서 존재하는 데이터 서버에 대한 상태 정보를 관리하며, 다른 메타데이터 서버를 만나게 되는 지점 전까지를 자신의 관리영역으로 정의하는 것을 특징으로 한다.Preferably, the metadata server defines one of the values existing in the hash space as a token value, and the data server is located in the existing data server along the hash ring in a clockwise or counterclockwise direction. It manages state information about the server and defines its own management area until the point where it meets another metadata server.

바람직하게 상기 메타데이터 서버는 해시 알고리즘(hash algorithm)을 사용하여 해시 공간 전체에 메타데이터 서버가 위치되도록 토큰 값을 생성하여 메타데이터 서버로 설정하는 토큰 생성 함수부를 포함하는 것을 특징으로 한다.Preferably, the metadata server may include a token generation function configured to generate a token value and set the metadata server so that the metadata server is located in the entire hash space using a hash algorithm.

바람직하게 상기 해시 공간은 메타데이터 서버의 토큰 값 및 메타데이터 서버의 접속주소를 포함하는 분할맵으로 구성되는 것을 특징으로 한다.Preferably, the hash space is configured as a partition map including a token value of the metadata server and an access address of the metadata server.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템을 이용한 데이터 처리 방법의 특징은 적어도 2개 이상의 데이터 서버와, 파일에 대한 메타데이터를 저장하고, 데이터 서버에 대한 상태 정보를 관리하는 메타데이터 서버와, 클라이언트 응용을 수행하면서 데이터 서버로부터 파일 데이터를 입출력하는 파일 시스템 클라이언트를 포함하여 구성되는 분산파일 시스템을 이용한 데이터 처리 방법에 있어서, 상기 메타데이터 서버는 적어도 2개 이상이 DHT(Distributed Hash Table) 개념을 적용하여 각각 배치되며, 해시 공간(hash space)에 존재하는 값 중 하나를 토큰(token) 값으로 정의되는데 있다.A feature of the data processing method using a distributed file system having a multi-metadata server structure according to the present invention for achieving the above object is to store at least two or more data servers, metadata about a file, A data processing method using a distributed file system, comprising: a metadata server managing state information of a server; and a file system client configured to perform input and output of file data from a data server while executing a client application. More than two are arranged using the concept of Distributed Hash Table (DHT), and one of the values existing in the hash space is defined as a token value.

바람직하게 상기 메타데이터 서버는 다른 메타데이터 서버를 만나게 되는 지점 전까지를 자신의 관리영역으로 정의하여, 시계 방향 또는 반시계 방향으로 해시 링(hash ring)을 따라 가면서 존재하는 데이터 서버에 대한 상태 정보를 관리하는 것을 특징으로 한다.Preferably, the metadata server defines its own management area up to the point where it encounters another metadata server, and provides status information on the existing data server along a hash ring in a clockwise or counterclockwise direction. It is characterized by managing.

바람직하게 상기 데이터 서버에서 보고되는 상태 정보는 하나의 메타데이터 서버에만 전달되는 단계와, 상기 상태 정보를 보고 받은 메타데이터 서버는 보고된 상태 정보를 해시 링에 있는 다른 메타데이터 서버에게 공유하는 단계를 포함하는 것을 특징으로 한다. Preferably, the state information reported by the data server is delivered to only one metadata server, and the metadata server that has received the state information shares the reported state information with another metadata server in a hash ring. It is characterized by including.

바람직하게 상기 메타데이터 서버는 해시 알고리즘(hash algorithm)을 사용하여 해시 공간 전체에 메타데이터 서버가 위치되도록 생성된 토큰 값을 메타데이터 서버에 설정되는 단계와, 메타데이터 서버의 토큰 및 서버 접속 주소 정보를 갖는 분할맵을 시스템 공유 정보 저장부(iLock)나 Gossip 프로토콜을 이용해 공개하고, 상기 공개된 분할맵을 기반으로 데이터 서버 또는 파일 시스템 클라이언트가 해시 공간에서 메타데이터 서버를 검출하는 단계와, 레지스터(register)가 이루어지고 킵얼라이브(KeepAlive)가 유지되는 상기 데이터 서버로부터 데이터 서버가 관리하는 디스크 상태 정보를 포함하는 데이터 서버의 상태 정보(repoinfo)를 보고받는 단계를 포함하여 이루어지는 것을 특징으로 한다.Preferably, the metadata server sets a token value generated in the metadata server so that the metadata server is located in the entire hash space using a hash algorithm, token and server connection address information of the metadata server. Publishing a partition map having a system shared information storage unit (iLock) or Gossip protocol, and detecting a metadata server in a hash space by a data server or a file system client based on the published partition map; and receiving status information (repoinfo) of the data server including the disk status information managed by the data server from the data server where a register is made and keepalive is maintained.

바람직하게 상기 해시 링에 새롭게 추가되는 제 2 메타데이터 서버(MDS#2)가 상기 분할맵을 읽은 후에, 해시 알고리즘을 통해 결정되어 있는 자신의 토큰 및 서버 접속 주소 정보를 상기 분할맵에 기록하는 단계와, 이런 절차의 결과로 당연하게 정의되는 해시 링 상의 관리권한을 이미 일부 또는 전부 소요하고 있던 제 1 메타데이터 서버(MDS#1)가 상기 제 2 메타데이터 서버(MDS#2)에서 확보한 권리영역을 포기하는 단계와, 상기 분할맵을 기반으로 관리권한이 변한 데이터 서버 또는 파일 시스템 클라이언트가 해시 공간에서 메타데이터 서버를 검출하는 단계와, 레지스터(Register)가 이루어지고 킵얼라이브(KeepAlive)가 유지되는 상기 데이터 서버로부터 데이터 서버가 관리하는 디스크 상태 정보를 포함하는 데이터 서버의 상태 정보(repoinfo)를 보고받는 단계를 포함하여 이루어지는 것을 특징으로 한다.Preferably, after the second metadata server MDS # 2, which is newly added to the hash ring, reads the partitioning map, recording its token and server connection address information determined through a hash algorithm in the partitioning map. And a right secured by the second metadata server MDS # 2 by the first metadata server MDS # 1, which has already taken part or all of the management rights on the hash ring, which is naturally defined as a result of this procedure. Abandoning an area, detecting a metadata server in a hash space by a data server or file system client whose management authority has changed based on the partitioning map, registers, and keepalives are maintained Receiving status information (repoinfo) of a data server including disk status information managed by the data server from the data server And the like.

바람직하게 기존에 존재하는 메타데이터 서버의 정지 요청을 받으면, 정지 요청받은 메타데이터 서버는 분할맵에서 자신의 토큰을 삭제하고 이를 상기 시스템 공유 정보 저장부(iLock)나 Gossip 프로토콜을 이용해 공개하고 종료하는 단계와, 해시 링에 있던 이웃하는 메타데이터 서버가 상기 삭제된 메타데이터 서버의 해시 영역까지 그 담당 영역이 증가되는 단계를 포함하여 이루어지는 것을 특징으로 한다.Preferably, upon receiving a stop request of an existing metadata server, the requested stop metadata server deletes its token from the partition map and publishes and terminates it using the system shared information storage unit (iLock) or Gossip protocol. And a step in which the neighboring metadata server in the hash ring increases its area of responsibility to the hash area of the deleted metadata server.

바람직하게 해시 공간에 위치하는 메타데이터 서버 중 어느 하나의 제 4 메타데이터 서버가 예상치 못한 상황으로 정상적인 동작이 이루어지지 못하는 경우에는 상기 시스템 공유 정보 저장부(iLock)나 Gossip 프로토콜을 이용해 고장으로 판명된 제 4 메타데이터 서버의 토큰 값이 제거되었다는 사실이 공개되는 단계와, 상기 고장으로 판정된 제 4 메타데이터 서버를 감시하고 있던 이웃하는 다른 제 3 메타데이터 서버에서 그 감시 대상을 상기 제 4 메타데이터 서버에서 감시하고 있었던 제 5 메타데이터 서버로 변경하여 정의하는 단계를 포함하여 이루어지는 것을 특징으로 한다.Preferably, when the fourth metadata server of the metadata server located in the hash space cannot be operated normally due to an unexpected situation, the system shared information storage unit (iLock) or the Gossip protocol turns out to be a failure. Revealing that the token value of the fourth metadata server has been removed and subjecting the monitored object to another neighboring third metadata server that is monitoring the fourth metadata server determined as the failure; And changing to a fifth metadata server monitored by the server.

바람직하게 상기 메타데이터 서버는 해시 링 구조에서 자신의 이웃하는 다른 노드에 해당하는 메타데이터 서버를 지속적으로 감시하는 것을 특징으로 한다.Preferably, the metadata server continuously monitors a metadata server corresponding to another neighboring node in a hash ring structure.

이상에서 설명한 바와 같은 본 발명에 따른 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템 및 이를 이용한 데이터 처리 방법은 다음과 같은 효과가 있다.As described above, a distributed file system having a multi-metadata server structure and a data processing method using the same have the following effects.

첫째, 다수의 메타데이터 서버로 구성함에 따라 클라이언트가 메타데이터 서버의 메모리 캐시 효율을 고려하여 적절한 메타데이터 서버를 선택함으로써, 메타데이터 서버의 메타데이터 처리 성능과 응답 성능을 향상시킬 수 있다.First, by configuring a plurality of metadata servers, the client selects an appropriate metadata server in consideration of the memory cache efficiency of the metadata server, thereby improving metadata processing performance and response performance of the metadata server.

둘째, 다수개의 메타데이터 서버의 배치를 DHT(Distributed Hash Table) 개념을 적용하여 구성함으로써, 메타데이터 서버를 손쉽게 추가할 수 있으므로 서비스 용량의 증가에 능동적으로 대처할 수 있고 결과적으로 더 많은 클라이언트의 요청을 보다 빨리 처리할 수 있다.Second, by configuring the deployment of multiple metadata servers by applying the concept of Distributed Hash Table (DHT), metadata servers can be easily added so that they can actively cope with the increase in service capacity and consequently receive more requests from clients. You can do it faster.

셋째, 클라이언트가 고장이 발생한 메타데이터 서버에 대한 접근을 방지하며, 고장이 발생한 메타데이터 서버로의 접근을 다른 메타데이터 서버들로 손쉽게 대체할 수 있어 메타데이터 서버들의 고장이 발생하는 상황에서도 효과적으로 모든 데이터 서버에 대한 상태 정보를 관리할 수 있다.Third, the client prevents access to the failed metadata server and can easily replace the access to the failed metadata server with other metadata servers, effectively preventing all the metadata servers from occurring. You can manage the status information for the data server.

도 1 은 일반적인 분산 파일 시스템의 구성을 개략적으로 도시한 구성도
도 2 는 본 발명의 실시예에 따른 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템을 나타낸 구성도
도 3 은 본 발명의 일 실시예에 따른 자료의 분산 저장 방법을 설명하기 위한 도면
도 4 는 본 발명의 분산파일 시스템에서 여러 개의 메타데이터 서버의 배치구조를 설명하기 위한 도면
도 5 는 본 발명의 분산파일 시스템에서 데이터 서버 및 클라이언트가 해시 공간에 위치하였을 때 해당 영역을 담당하는 메타데이터 서버를 검출하는 과정을 설명하기 위한 도면
도 6 은 도 4에서 도시하고 있는 원으로 표시한 해시 공간을 맵(map) 형태로 나타낸 도면
도 7 은 본 발명의 분산파일 시스템에서 새로운 메타데이터 서버가 추가되는 과정을 설명하기 위한 도면
도 8 은 본 발명의 분산파일 시스템에서 기존의 메타데이터 서버의 예상치 못한 상황에서의 복구 방법을 설명하기 위한 도면
1 is a configuration diagram schematically showing the configuration of a general distributed file system
2 is a diagram illustrating a distributed file system having a multi-metadata server structure according to an embodiment of the present invention.
3 is a view for explaining a distributed storage method of data according to an embodiment of the present invention.
4 is a view for explaining a layout structure of several metadata servers in the distributed file system of the present invention.
5 is a diagram illustrating a process of detecting a metadata server in charge of a corresponding area when a data server and a client are located in a hash space in the distributed file system of the present invention.
FIG. 6 is a diagram illustrating a hash space represented by a circle illustrated in FIG. 4 in a map form. FIG.
7 is a diagram illustrating a process of adding a new metadata server in the distributed file system of the present invention.
8 is a diagram illustrating a recovery method in an unexpected situation of an existing metadata server in the distributed file system of the present invention.

본 발명의 다른 목적, 특성 및 이점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.Other objects, features and advantages of the present invention will become apparent from the detailed description of the embodiments with reference to the accompanying drawings.

본 발명에 따른 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템 및 이를 이용한 데이터 처리 방법의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록 하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.A preferred embodiment of a distributed file system having a multi-metadata server structure and a data processing method using the same according to the present invention will be described with reference to the accompanying drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. It is provided to let you know. Therefore, the embodiments described in the present specification and the configurations shown in the drawings are merely the most preferred embodiments of the present invention and are not intended to represent all of the technical ideas of the present invention. Therefore, various equivalents It should be understood that water and variations may be present.

도 2 는 본 발명의 실시예에 따른 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템을 나타낸 구성도이다.2 is a diagram illustrating a distributed file system having a multi-metadata server structure according to an embodiment of the present invention.

도 2와 같이, 분산파일 시스템은 파일 데이터를 저장하고 관리하며, 주기적으로 메타데이터 서버(20)로 자신의 상태 정보를 보고하는 적어도 2개 이상의 데이터 서버(300)와, 적어도 2개 이상으로 구성되어 DHT(Distributed Hash Table) 개념을 적용하여 각각 배치되며, 파일 시스템의 모든 파일에 대한 메타데이터를 저장하고, 상기 데이터 서버(300)로부터 제공되는 보고 데이터를 기반으로 모든 데이터 서버(300)에 대한 상태 정보를 관리하는 메타데이터 서버(200)와, 클라이언트 응용을 수행하면서 상기 메타데이터 서버(200)로부터 파일 메타데이터를 액세스하고 데이터 서버(300)로부터 파일 데이터를 입출력하는 파일 시스템 클라이언트(100)를 포함한다. 이때, 상기 각각의 데이터 서버(300)는 자신의 로컬 스토리지를 구성하고, 각 데이터 서버(300) 내 로컬 스토리지의 한 프레임에 해당하는 부호어(codeword) 크기 단위로 분할되어 저장된다. 그리고 상기 파일 시스템 클라이언트(100), 메타데이터 서버(200) 및 데이터 서버(300)들은 네트워크(400)로 상호 연결된다.As shown in FIG. 2, the distributed file system stores and manages file data, and includes at least two or more data servers 300 that periodically report their status information to the metadata server 20, and at least two or more data servers. And are respectively arranged by applying a DHT (Distributed Hash Table) concept, and store metadata about all files of the file system, and store the metadata for all data servers 300 based on the reporting data provided from the data server 300. A metadata server 200 that manages state information and a file system client 100 that accesses file metadata from the metadata server 200 and inputs and outputs file data from the data server 300 while executing a client application. Include. In this case, each data server 300 configures its own local storage, and is divided and stored in units of codeword sizes corresponding to one frame of local storage in each data server 300. The file system client 100, the metadata server 200, and the data server 300 are interconnected to the network 400.

도 3 은 본 발명의 일 실시예에 따른 자료의 분산 저장 방법을 설명하기 위한 도면이다.3 is a diagram illustrating a distributed storage method of data according to an embodiment of the present invention.

도 3과 같이, 하나의 원 파일이 d개로 분할되어 d1~dd 분할 데이터가 순차적으로 나열된다. 그리고 이 분할 데이터 별로 p개의 패리티 데이터(설명을 용이하게 하기 위해 여기서는 3개(p1~p3) 패리티 데이터를 기재하였다.)를 생성한다. 이때, 상기 d+p는 데이터 서버(300)의 개수와 동일하거나 적은 수를 갖는 것이 바람직하다.As shown in FIG. 3, one original file is divided into d pieces, and d 1 to d d divided data are sequentially arranged. P parity data (three (p1 to p3) parity data are described here for ease of explanation) for each of the divided data. At this time, the d + p is preferably equal to or less than the number of the data server 300.

이처럼 상기 분할 데이터와 패리티 데이터로 분할된 분할 데이터들을 다수개의 데이터 서버(300)로 각각 전송하여 제 1 데이터 서버내의 제 1 로컬 스토리지에는 제 1 분할 데이터(d1)를 저장하고, 제 2 데이터 서버내의 제 2 로컬 스토리지에는 제 2 분할 데이터(d2)를 저장하고, 제 3 데이터 서버내의 제 3 로컬 스토리지에는 제 3 분할 데이터(d3)를 저장한다. 이러한 방식으로 마지막에는 제 n 데이터 서버내의 제 n 로컬 스토리지에는 제 n 분할 데이터(dn)를 저장하게 된다.As described above, the divided data divided into the divided data and the parity data are respectively transmitted to the plurality of data servers 300 to store the first divided data d1 in the first local storage in the first data server, and to store the divided data d1 in the second data server. The second divided data d2 is stored in the second local storage, and the third divided data d3 is stored in the third local storage in the third data server. In this manner, the n th partition data dn is stored in the n th local storage in the n th data server.

그리고 분산 파일 시스템은 데이터 서버들(30)의 로컬 스토리지에 각각 저장된 분할 데이터들의 위치정보를 포함하는 메타 정보를 별도의 메타데이터 서버(MDS)(200)에 저장한다.The distributed file system stores meta information including location information of divided data stored in local storage of the data servers 30 in a separate metadata server (MDS) 200.

이처럼, 하나의 원 파일이 d개로 분할되어 각각의 데이터 서버 내 로컬 스토리지에 각각 분할되어 저장되게 된다.In this way, one original file is divided into d pieces and stored in local storage in each data server.

상기 메타데이터 서버(200)는 도 4에서 도시하고 있는 것과 같이, 적어도 2개 이상으로 구성되어 DHT(Distributed Hash Table) 개념을 적용하여 배치된다. 그리고 해시 공간(hash space)에 존재하는 값 중 하나를 토큰(token) 값으로 정의한다. As shown in FIG. 4, the metadata server 200 is composed of at least two and arranged by applying the concept of a distributed hash table (DHT). In addition, one of the values existing in the hash space is defined as a token value.

그리고 상기 메타데이터 서버(200)는 시계 방향 또는 반시계 방향으로 해시 링(hash ring)을 따라 가면서 존재하는 데이터 서버(300)에 대한 상태 정보를 관리하며, 다른 메타데이터 서버(200)를 만나게 되는 지점 전까지를 자신의 관리영역으로 정의한다. 도 4에 도시된 것을 예로 들면, 제 1 메타데이터 서버(MDS#1)의 담당영역이 4 ~ 8까지 이고, 제 2 메타데이터 서버(MDS#2)의 담당영역이 8 ~ 16, 0 ~ 4까지로 정의된다.The metadata server 200 manages state information on the existing data server 300 while following a hash ring in a clockwise or counterclockwise direction, and meets another metadata server 200. Define up to the point as your management area. For example, the area of responsibility of the first metadata server MDS # 1 is 4 to 8, and the area of responsibility of the second metadata server MDS # 2 is 8-16, 0-4. Is defined as

이러한 구성을 통해 데이터 서버(300)와 파일 시스템 클라이언트(100)는 메타데이터 서버(200)를 찾아갈 때, 도 5에서 도시하고 있는 것과 같이 토큰 생성 함수부(500)에서 고유의 토큰을 생성하고, 이렇게 생성된 토큰을 해시 공간에 위치시켰을 때, 그 영역을 담당하는 메타데이터 서버(200)로 설정되게 된다. 즉, 도 5와 같이, 데이터 서버(300)는 자신의 토큰이 위치한 영역을 담당하고 있는 제 2 메타데이터 서버(200b)에 레지스터(register)가 이루어지고 킵얼라이브(KeepAlive)를 유지한 상태에서 자신의 상태 정보(repoinfo)를 보고한다. 또한, 상기 파일 시스템 클라이언트(100)는 제 1 메타데이터 서버(200a)를 찾아가서 파일 데이터의 입출력을 수행한다.Through this configuration, when the data server 300 and the file system client 100 visit the metadata server 200, the token generating function unit 500 generates a unique token as shown in FIG. 5. When the token generated in this way is placed in the hash space, it is set to the metadata server 200 in charge of the area. That is, as shown in FIG. 5, the data server 300 registers at the second metadata server 200b which is in charge of an area where its token is located and maintains a keep-alive. Report status information (repoinfo). In addition, the file system client 100 visits the first metadata server 200a and performs input / output of file data.

이때, 상기 데이터 서버(300)에서 보고하는 상태 정보는 하나의 메타 데이터 서버에만 전달된다. 이에 따라, 제 2 메타데이터 서버(200b)는 상기 데이터 서버(300)로부터 보고되는 상태 정보를 해시 링에 있는 다른 MDS들에게 자신이 알게 된 정보를 공유하고 있다. 상기 공유 방법은 확률에 기반한 Gossip 프로토콜이나 시스템 공유 정보 저장부(ilock)를 이용한다. At this time, the state information reported by the data server 300 is transmitted to only one metadata server. Accordingly, the second metadata server 200b shares the information it has known to other MDSs in the hash ring with the status information reported from the data server 300. The sharing method uses a probabilistic Gossip protocol or a system shared information storage unit (ilock).

한편, 상기 메타데이터 서버(200)에 해시 공간(hash space)에 존재하는 값 중 하나인 토큰(token) 값을 정의할 때에는, 해시 공간 전체에 메타데이터 서버(200)가 고르게 생성되도록 정의하여야 한다. 그리고 이를 위해 MD5 알고리즘(Message-Digest algorithm 5), SHA 알고리즘(Secure Hash algorithm)과 같은 해시 알고리즘(hash algorithm)을 사용한다. On the other hand, when defining a token value, which is one of the values existing in the hash space, to the metadata server 200, the metadata server 200 should be defined to be evenly generated in the entire hash space. . To do this, we use a hash algorithm such as the MD5 algorithm (Message-Digest algorithm 5) and the SHA algorithm (Secure Hash algorithm).

즉, 상기 파일 시스템 클라이언트(or WebFront)(100)의 요청 메시지(user request)는 사용자(user), 디렉토리(bucket), 파일이름(object) 스트링을 조합하고 해시 알고리즘을 이용하여 해싱하여 토큰을 생성한다. 또한 상기 데이터 서버(300)는 자신의 고유 식별자(GUID)를 해시 알고리즘으로 해싱하여 토큰을 생성한다. 참고로, 상기 해시 알고리즘은 128비트 암호화 해시 함수로서, RFC 1321로 지정되어 있으며, 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사 등에 이용되는 공지되어 있는 방식으로, 이에 따른 상세한 설명은 생략한다.That is, the request message of the file system client (or WebFront) 100 combines a user, a directory, and an object string, and hashes using a hash algorithm to generate a token. do. In addition, the data server 300 generates a token by hashing its unique identifier (GUID) with a hash algorithm. For reference, the hash algorithm is a 128-bit cryptographic hash function designated by RFC 1321, and is a known method used mainly for checking integrity of a program or a file, .

이처럼, 해시 알고리즘을 이용하여 메타데이터 서버(200)에 토큰을 정의함으로써, 별도의 로드 밸런스(load balancing)을 고려하지 않아도 해시 링(hash ring)에 존재하는 메타데이터 서버(200)들에게 부하가 해시 공간 전체에 고르게 나누어지게 된다.As such, by defining tokens in the metadata server 200 using a hash algorithm, loads are placed on the metadata servers 200 existing in the hash ring without considering load balancing. It is divided evenly across the hash space.

도 4에서 도시하고 있는 원으로 표시한 해시 공간을 맵(map) 형태로 나타내면 도 6과 같이 나타낼 수 있다. 상기 도 6에서 나타내고 있는 분할맵에서의 SIOR은 메타데이터 서버(200)의 접속주소(IP, port)를 나타낸다.The hash space represented by the circle illustrated in FIG. 4 may be represented as shown in FIG. 6 in the form of a map. The SIOR in the division map shown in FIG. 6 represents an access address (IP, port) of the metadata server 200.

그리고 도 6에서 도시하고 있는 토큰 및 서버 접속 주소 정보를 갖는 분할맵은 시스템 공유 정보 저장부(iLock)나 확률에 기반한 Gossip 프로토콜을 이용해 공개하고 있으며, 메타데이터 서버(200)만이 이 분할맵을 편집할 수 있다. 그리고 데이터 서버(300)나 파일 시스템 클라이언트(100)은 이 분할맵을 읽어와서 해시 공간에서 검색하여 해당 영역의 메타데이터 서버(200)를 찾아간다. 이때, 상기 공유 정보 저장부를 이용하는 방법은 중앙 집중식 정보 공유 방법이며, 상기 Gossip 프로토콜을 이용하는 방법은 비 집중식 정보 공유 방법의 일 실시예이다. 이처럼 상기 분할맵의 공개는 중앙 집중식 정보 공유 방법의 경우에는 시스템 공유 정보 저장부를 이용하고, 비 집중식 정보 공유 방법의 경우에는 확률에 기반해 정보를 다수의 서버에 효율적으로 전파할 수 있는 Gossip 프로토콜을 이용하는 방법의 이용이 가능하다. 아울러 전통적인 멀티캐스트(multicast) 방식의 사용도 가능하다.In addition, the partition map having the token and server connection address information shown in FIG. 6 is disclosed using a system shared information storage unit (iLock) or a probability-based Gossip protocol, and only the metadata server 200 edits the partition map. can do. The data server 300 or the file system client 100 reads this partition map and searches the hash space to find the metadata server 200 in the corresponding area. At this time, the method using the shared information storage unit is a centralized information sharing method, and the method using the Gossip protocol is an embodiment of a non-centralized information sharing method. In the case of the centralized information sharing method, the system sharing information storage unit is used for the disclosure of the divided map, and in the case of the non-centralized information sharing method, the Gossip protocol for efficiently propagating information to a plurality of servers based on the probability It is possible to use a method of using it. It is also possible to use the traditional multicast method.

본 발명에서 사용하고 있는 해시 공간은 2128이기 때문에 0 ~ 2128-1 사이의 값을 가지는 토큰을 사용한다. 참고로 분할맵에는 16진수(hex) 값으로 기록되어 있다.Since the hash space used in the present invention is 2 128 , a token having a value between 0 and 2 128 -1 is used. For reference, the split map is recorded as a hex value.

도 7 은 새로운 메타데이터 서버가 추가되는 과정을 설명하기 위한 도면이다.7 is a diagram for explaining a process of adding a new metadata server.

도 7에서 도시하고 있는 것과 같이, 현재 제 1 메타데이터 서버(MDS#1)만이 해시 공간(hash space)에 존재하고 있으며, 또한 분할맵에는 제 1 메타데이터 서버의 토큰 및 서버 접속 주소 정보만을 저장하고 있다.As shown in FIG. 7, only the first metadata server MDS # 1 currently exists in the hash space, and only the token and server connection address information of the first metadata server are stored in the partition map. Doing.

이때 제 2 메타데이터 서버(MDS#2)가 해시 링에 추가되는 경우, 제 2 메타데이터 서버(MDS#2)는 분할맵을 읽은 후에, MD5 알고리즘(Message-Digest algorithm 5), SHA 알고리즘(Secure Hash algorithm)과 같은 해시 알고리즘(hash algorithm)을 통해 결정되어 있는 자신의 토큰 값 및 서버 접속 주소 값을 기록한다.At this time, when the second metadata server (MDS # 2) is added to the hash ring, the second metadata server (MDS # 2) reads the partition map, and then the MD5 algorithm (Message-Digest algorithm 5), SHA algorithm (Secure) It records its token value and server connection address value determined through hash algorithm such as Hash algorithm.

그러면 제 1 메타데이터 서버(MDS#1)는 상기 제 2 메타데이터 서버(MDS#2)에서 확보된 영역의 메모리 캐시를 자신의 영역에서 제공하고, 자신의 영역에서 벗어난 데이터 서버(300)가 제 2 메타데이터 서버(MDS#2)로 이동등록(moveRegistration)을 할 수 있도록 관리한다.Then, the first metadata server MDS # 1 provides the memory cache of the area secured by the second metadata server MDS # 2 in its own area, and the data server 300 that is out of its area is removed. 2 Manage to movemove (MistRegistration) to metadata server (MDS # 2).

이처럼 기존에 존재하던 제 1 메타데이터 서버(MDS#1) 사이로 새로운 제 2 메타데이터 서버((MDS#2)가 들어오는 경우, 이미 존재하고 있던 제 1 메타데이터 서버(MDS#1)의 토큰 값은 바뀌지 않고, 관리하는 영역만 변화하게 된다. As such, when a new second metadata server (MDS # 2) enters between the existing first metadata server MDS # 1, the token value of the existing first metadata server MDS # 1 is It does not change, only the area of management changes.

반대로, 기존에 존재하는 메타데이터 서버의 정지 요청을 받으면, 정지 요청받은 메타데이터 서버는 분할맵에서 자신의 토큰을 삭제하고 종료하게 된다.On the contrary, upon receiving a stop request of an existing metadata server, the stopped metadata server deletes its token from the partitioning map and terminates.

그리고 해시 링에 있던 이웃하는 메타데이터 서버는 삭제된 메타데이터 서버의 해시 영역까지 그 담당 영역이 증가하게 된다. 이때 영역이 늘어난 메타데이터 서버는 추가됐을 때와는 다르게 아무런 행동을 하지 않는다.In addition, the neighboring metadata server in the hash ring increases its area up to the hash area of the deleted metadata server. At this point, the extended metadata server does nothing differently than when it was added.

한편, 해시 공간에 위치하는 메타데이터 서버 중 예상치 못한 상황(고장 등)으로 정상적인 동작이 이루어지지 못하는 경우에는 이를 복구하기 위한 방법이 이루어져야 한다. 이를 위해, 메타데이터 서버(200)는 해시 링 구조에서 자신의 이웃하는 다른 노드에 해당하는 메타데이터 서버(200)를 지속적으로 감시하는 방법을 이용하여 메타데이터 서버의 예상치 못한 상황에 따른 정상적인 동작을 보상한다.On the other hand, if the normal operation cannot be performed due to an unexpected situation (failure, etc.) among the metadata servers located in the hash space, a method for recovering the metadata server should be made. To this end, the metadata server 200 performs a normal operation according to an unexpected situation of the metadata server by using a method of continuously monitoring the metadata server 200 corresponding to another neighboring node in a hash ring structure. To compensate.

도 8을 참조하여, 메타데이터 서버의 예상치 못한 상황에서의 복구 방법을 설명하면 다음과 같다.Referring to FIG. 8, a recovery method in an unexpected situation of the metadata server will be described.

도 8과 같이, 해시 공간에 제 1, 2, 3 메타데이터 서버가 존재하고 있으며, 제 1 메타데이터 서버(MDS#1)는 토큰 값으로 4를 갖고, 제 2 메타데이터 서버(MDS#2)는 토큰 값으로 8을 갖고, 제 3 메타데이터 서버(MDS#3)는 토큰 값으로 14를 갖고 있다.As shown in FIG. 8, the first, second, and third metadata servers exist in the hash space, the first metadata server MDS # 1 has a token value of 4, and the second metadata server MDS # 2. Has 8 as the token value and the third metadata server MDS # 3 has 14 as the token value.

이때, 제 2 메타데이터 서버(MDS#2)가 예상치 못한 상황으로 인해 고장(failure)이라고 판정되면, 상기 시스템 공유 정보 저장부(iLock)이나 Gossip 프로토콜을 이용해 고장으로 판명된 제 2 메타데이터 서버(MDS#2)의 토큰 값이 제거되었다는 사실을 공개하고, 상기 제 2 메타데이터 서버(MDS#2)를 감시하고 있던 이웃하는 제 1 메타데이터 서버(MDS#1)에서는 그 감시 대상을 상기 제 2 메타데이터 서버(MDS#2)에서 감시하고 있던 제 3 메타데이터 서버(MDS#3)로 변경하여 정의한다.At this time, if it is determined that the second metadata server (MDS # 2) is a failure due to an unexpected situation, the second metadata server that is determined to be broken using the system shared information storage unit iLock or Gossip protocol ( The token value of MDS # 2 is released, and the neighboring first metadata server MDS # 1 that is monitoring the second metadata server MDS # 2 monitors the second object. The data is changed to the third metadata server MDS # 3 monitored by the metadata server MDS # 2.

이에 따라, 메타데이터 서버들의 고장이 발생하는 상황에서도 효과적으로 모든 데이터 서버에 대한 상태 정보를 효율적으로 관리할 수 있게 된다.
Accordingly, even when a failure of the metadata server occurs, it is possible to effectively manage the status information for all data servers.

상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시예에서 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술적 분야의 통상의 지식을 가진자라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. Although the technical spirit of the present invention described above has been described in detail in a preferred embodiment, it should be noted that the above-described embodiment is for the purpose of description and not of limitation. It will be apparent to those skilled in the art that various modifications may be made without departing from the scope of the present invention. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.

Claims (14)

파일 데이터를 저장하고 관리하며, 주기적으로 메타데이터 서버로 자신의 상태 정보를 보고하는 적어도 2개 이상의 데이터 서버와,
적어도 2개 이상으로 구성되어 DHT(Distributed Hash Table) 개념을 적용하여 각각 배치되며, 파일 시스템의 모든 파일에 대한 메타데이터를 저장하고, 상기 데이터 서버로부터 제공되는 상태 정보를 기반으로 데이터 서버에 대한 상태 정보를 관리하는 메타데이터 서버와,
클라이언트 응용을 수행하면서 상기 메타데이터 서버로부터 파일 메타데이터를 액세스하고 데이터 서버로부터 파일 데이터를 입출력하는 파일 시스템 클라이언트를 포함하여 구성되고,
이때, 상기 메타데이터 서버는 해시 공간(hash space)에 존재하는 값 중 하나를 토큰(token) 값으로 정의하고, 시계 방향 또는 반시계 방향으로 해시 링(hash ring)을 따라 가면서 존재하는 데이터 서버에 대한 상태 정보를 관리하며, 다른 메타데이터 서버를 만나게 되는 지점 전까지를 자신의 관리영역으로 정의하는 것을 특징으로 하는 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템.
At least two data servers that store and manage file data and periodically report their status information to a metadata server,
It is composed of at least two and arranged respectively by applying the concept of Distributed Hash Table (DHT), and stores metadata about all files of the file system, and the state of the data server based on the state information provided from the data server. A metadata server for managing information,
And a file system client that accesses file metadata from the metadata server and inputs and outputs file data from a data server while executing a client application.
In this case, the metadata server defines one of the values existing in the hash space as a token value, and the data server is located along the hash ring in the clockwise or counterclockwise direction. A distributed file system having a multi-metadata server structure, which manages state information for a server and defines its own management area until a point where another metadata server is encountered.
제 1 항에 있어서,
상기 데이터 서버는 입력되는 원 파일을 적어도 하나 이상의 데이터로 분할하고, 상기 분할된 원 파일 데이터에 각각 적어도 2개 이상의 패리티 데이터를 결합한 하나 이상의 분할 데이터를 생성한 후, 상기 생성된 각각의 분할 데이터를 다시 분할하여 저장하는 것을 특징으로 하는 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템.
The method of claim 1,
The data server divides the input original file into at least one or more data, generates one or more pieces of divided data in which at least two or more parity data are combined with the divided original file data, and then divides each generated piece of data. Distributed file system having a multi-metadata server structure, characterized in that divided and stored again.
제 2 항에 있어서,
상기 생성된 분할 데이터는 인코딩을 통해 패리티 데이터를 포함하는 로컬 스토리지의 부호어 크기로 생성되는 것을 특징으로 하는 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템.
3. The method of claim 2,
The generated partitioned data is generated as a codeword size of local storage including parity data through encoding.
삭제delete 제 1 항에 있어서,
상기 메타데이터 서버는 해시 알고리즘(hash algorithm)을 사용하여 해시 공간 전체에 메타데이터 서버가 위치되도록 토큰 값을 생성하여 메타데이터 서버로 설정하는 토큰 생성 함수부를 포함하는 것을 특징으로 하는 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템.
The method of claim 1,
The metadata server structure may include a token generation function configured to generate a token value so that the metadata server is located in the entire hash space using a hash algorithm and set the metadata server as a metadata server. Distributed file system with.
제 1 항에 있어서,
상기 해시 공간은 메타데이터 서버의 토큰 및 메타데이터 서버의 접속주소 정보를 포함하는 분할맵으로 구성되는 것을 특징으로 하는 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템.
The method of claim 1,
The hash space is a distributed file system having a multi-metadata server structure, comprising a partition map including a token of a metadata server and access address information of the metadata server.
파일 데이터를 저장하고 관리하며, 주기적으로 메타데이터 서버로 자신의 상태 정보를 보고하는 적어도 2개 이상의 데이터 서버와, 파일에 대한 메타데이터를 저장하고, 데이터 서버에 대한 상태 정보를 관리하는 메타데이터 서버와, 클라이언트 응용을 수행하면서 상기 메타데이터 서버로부터 파일 메타데이터를 액세스하고 데이터 서버로부터 파일 데이터를 입출력하는 파일 시스템 클라이언트를 포함하여 구성되는 것을 특징으로 하는 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템을 이용한 데이터 처리 방법에 있어서,
상기 메타데이터 서버는 적어도 2개 이상이 DHT(Distributed Hash Table) 개념을 적용하여 각각 배치되며, 해시 공간(hash space)에 존재하는 값 중 하나를 토큰(token) 값으로 정의되고,
또한, 상기 메타데이터 서버는 다른 메타데이터 서버를 만나게 되는 지점 전까지를 자신의 관리영역으로 정의하여, 시계 방향 또는 반시계 방향으로 해시 링(hash ring)을 따라 가면서 존재하는 데이터 서버에 대한 상태 정보를 관리하는 것을 특징으로 하는 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템을 이용한 데이터 처리 방법.
At least two data servers that store and manage file data, periodically report their status information to the metadata server, and a metadata server that stores metadata about the file and manages status information about the data server. And a file system client that accesses file metadata from the metadata server and inputs and outputs file data from the data server while executing a client application. In the data processing method,
At least two metadata servers are respectively arranged by applying the concept of a distributed hash table (DHT), and one of the values existing in the hash space is defined as a token value.
In addition, the metadata server defines its own management area before the point where it meets another metadata server, and provides status information about the existing data server along a hash ring in a clockwise or counterclockwise direction. A data processing method using a distributed file system having a multi-metadata server structure, which is managed.
삭제delete 제 7 항에 있어서,
상기 데이터 서버에서 보고되는 상태 정보는 하나의 메타데이터 서버에만 전달되는 단계와,
상기 상태 정보를 보고 받은 메타데이터 서버는 보고된 상태 정보를 해시 링에 있는 다른 메타데이터 서버에게 공유하는 단계를 포함하는 것을 특징으로 하는 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템을 이용한 데이터 처리 방법.
The method of claim 7, wherein
The state information reported by the data server is delivered to only one metadata server,
And receiving the status information from the metadata server and sharing the reported status information with another metadata server in a hash ring.
제 7 항에 있어서, 상기 메타데이터 서버는
해시 알고리즘(hash algorithm)을 사용하여 해시 공간 전체에 메타데이터 서버가 위치되도록 생성된 토큰 값을 메타데이터 서버에 설정되는 단계와,
메타데이터 서버의 토큰 및 서버 접속 주소 정보를 갖는 분할맵을 시스템 공유 정보 저장부(iLock)나 Gossip 프로토콜을 이용해 공개하고, 상기 공개된 분할맵을 기반으로 데이터 서버 또는 파일 시스템 클라이언트가 해시 공간에서 메타데이터 서버를 검출하는 단계와,
레지스터(register)가 이루어지고 킵얼라이브(KeepAlive)가 유지되는 상기 데이터 서버로부터 데이터 서버가 관리하는 디스크 상태 정보를 포함하는 데이터 서버의 상태 정보(repoinfo)를 보고받는 단계를 포함하여 이루어지는 것을 특징으로 하는 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템을 이용한 데이터 처리 방법.
The method of claim 7, wherein the metadata server
Setting a token value generated in the metadata server so that the metadata server is located throughout the hash space using a hash algorithm;
The partition map with the metadata server's token and server connection address information is published using the system shared information storage unit (iLock) or the Gossip protocol, and based on the published partition map, the data server or file system client is meta-based in the hash space. Detecting a data server;
And receiving status information (repoinfo) of the data server including the disk status information managed by the data server from the data server that is registered and keep keeps alive (KeepAlive). Data processing method using a distributed file system having a multi-metadata server structure.
제 10 항에 있어서,
상기 해시 링에 새롭게 추가되는 제 2 메타데이터 서버(MDS#2)가 상기 분할맵을 읽은 후에, 해시 알고리즘을 통해 결정되어 있는 자신의 토큰 및 서버 접속 주소 정보를 기록한 분할맵을 시스템 공유 정보 저장부(iLock)나 Gossip 프로토콜을 이용해 공개하는 단계와,
상기 정의되는 해시 링 상의 관리권한을 이미 일부 또는 전부 소요하고 있던 제 1 메타데이터 서버(MDS#1)가 상기 제 2 메타데이터 서버(MDS#2)에서 확보한 권리영역을 포기하는 단계와,
상기 분할맵을 기반으로 관리권한이 변한 데이터 서버 또는 파일 시스템 클라이언트가 해시 공간에서 메타데이터 서버를 검출하는 단계와,
레지스터(Register)가 이루어지고 킵얼라이브(KeepAlive)가 유지되는 상기 데이터 서버로부터 데이터 서버가 관리하는 디스크 상태 정보를 포함하는 데이터 서버의 상태 정보(repoinfo)를 보고받는 단계를 포함하여 이루어지는 것을 특징으로 하는 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템을 이용한 데이터 처리 방법.
11. The method of claim 10,
After the second metadata server (MDS # 2) newly added to the hash ring reads the partitioning map, the partitioning map recording the token and server connection address information determined through a hash algorithm is stored in the system shared information storage unit. using iLock or Gossip protocol
Giving up the rights area secured by the second metadata server (MDS # 2) by the first metadata server (MDS # 1) that has already taken part or all of the management rights on the hash ring defined above;
Detecting a metadata server in a hash space by a data server or a file system client whose management authority is changed based on the partitioning map;
And receiving status information (repoinfo) of the data server including the disk status information managed by the data server from the data server where a register is made and keepalive is maintained. Data processing method using a distributed file system having a multi-metadata server structure.
제 10 항에 있어서,
기존에 존재하는 메타데이터 서버의 정지 요청을 받으면, 정지 요청받은 메타데이터 서버는 자신의 토큰을 삭제한 분할맵을 상기 시스템 공유 정보 저장부(iLock)나 Gossip 프로토콜을 이용해 공개하고 종료하는 단계와,
해시 링에 있던 이웃하는 메타데이터 서버가 상기 삭제된 메타데이터 서버의 해시 영역까지 그 담당 영역이 증가되는 단계를 포함하여 이루어지는 것을 특징으로 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템을 이용한 데이터 처리 방법.
11. The method of claim 10,
Upon receiving a stop request of an existing metadata server, the stopped metadata server publishes a partitioned map from which its token is deleted using the system shared information storage unit (iLock) or Gossip protocol. Terminating;
And a step in which the neighboring metadata server in the hash ring increases its area up to the hash area of the deleted metadata server.
제 10 항에 있어서,
해시 공간에 위치하는 메타데이터 서버 중 어느 하나의 제 4 메타데이터 서버가 예상치 못한 상황으로 정상적인 동작이 이루어지지 못하는 경우에는 상기 시스템 공유 정보 저장부(iLock)나 Gossip 프로토콜을 이용해 고장으로 판명된 제 4 메타데이터 서버의 토큰 값이 제거되었다는 사실이 공개되는 단계와,
상기 고장으로 판정된 제 4 메타데이터 서버를 감시하고 있던 이웃하는 다른 제 3 메타데이터 서버에서 그 감시 대상을 상기 제 4 메타데이터 서버에서 감시하고 있었던 제 5 메타데이터 서버로 변경하여 정의하는 단계를 포함하여 이루어지는 것을 특징으로 하는 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템을 이용한 데이터 처리 방법.
11. The method of claim 10,
If the fourth metadata server of the metadata server located in the hash space is not expected to operate normally due to an unexpected situation, the fourth metadata server found to be broken using the system shared information storage unit (iLock) or Gossip protocol Revealing that the token value of the metadata server has been removed,
And changing the monitoring target to a fifth metadata server monitored by the fourth metadata server in another neighboring third metadata server monitoring the fourth metadata server determined as the failure. A data processing method using a distributed file system having a multi-metadata server structure, characterized in that the configuration.
제 10 항에 있어서,
상기 메타데이터 서버는 해시 링 구조에서 자신의 이웃하는 다른 노드에 해당하는 메타데이터 서버를 지속적으로 감시하는 것을 특징으로 하는 멀티 메타데이터 서버 구조를 갖는 분산 파일 시스템을 이용한 데이터 처리 방법.
11. The method of claim 10,
The metadata server continuously monitors a metadata server corresponding to another neighboring node in a hash ring structure.
KR1020120040998A 2012-04-19 2012-04-19 Distributed file system having multi MDS architecture and method for processing data using the same KR101371202B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120040998A KR101371202B1 (en) 2012-04-19 2012-04-19 Distributed file system having multi MDS architecture and method for processing data using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120040998A KR101371202B1 (en) 2012-04-19 2012-04-19 Distributed file system having multi MDS architecture and method for processing data using the same

Publications (2)

Publication Number Publication Date
KR20130118088A KR20130118088A (en) 2013-10-29
KR101371202B1 true KR101371202B1 (en) 2014-03-10

Family

ID=49636574

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120040998A KR101371202B1 (en) 2012-04-19 2012-04-19 Distributed file system having multi MDS architecture and method for processing data using the same

Country Status (1)

Country Link
KR (1) KR101371202B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180122252A (en) 2017-05-02 2018-11-12 한국전자통신연구원 Metadata server and metadata distributing method of directory unit using the same
CN110928497A (en) * 2019-11-15 2020-03-27 浪潮电子信息产业股份有限公司 Metadata processing method, device and equipment and readable storage medium

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101672901B1 (en) * 2014-12-03 2016-11-07 충북대학교 산학협력단 Cache Management System for Enhancing the Accessibility of Small Files in Distributed File System
CN107920131A (en) * 2017-12-08 2018-04-17 郑州云海信息技术有限公司 A kind of metadata management method and device of HDFS storage systems
KR102275389B1 (en) * 2019-10-22 2021-07-08 한국항공대학교산학협력단 Block chain data mapping method and node device using distributed file system to omit block sync process and to provide remote storage
CN113918097A (en) * 2021-10-22 2022-01-11 云南电网有限责任公司电力科学研究院 Distributed storage method and system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100070895A (en) * 2008-12-18 2010-06-28 한국전자통신연구원 Metadata server and metadata management method
KR20100072770A (en) * 2008-12-22 2010-07-01 한국전자통신연구원 Hot data management based on hit counter from data servers in parallelism
KR101092658B1 (en) 2008-12-22 2011-12-13 한국전자통신연구원 Distributed File System And Metadata Server Selection Method In The Same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100070895A (en) * 2008-12-18 2010-06-28 한국전자통신연구원 Metadata server and metadata management method
KR20100072770A (en) * 2008-12-22 2010-07-01 한국전자통신연구원 Hot data management based on hit counter from data servers in parallelism
KR101092658B1 (en) 2008-12-22 2011-12-13 한국전자통신연구원 Distributed File System And Metadata Server Selection Method In The Same

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180122252A (en) 2017-05-02 2018-11-12 한국전자통신연구원 Metadata server and metadata distributing method of directory unit using the same
US10929354B2 (en) 2017-05-02 2021-02-23 Electronics And Telecommunications Research Institute Metadata server and method for distributing metadata in directories using the same
CN110928497A (en) * 2019-11-15 2020-03-27 浪潮电子信息产业股份有限公司 Metadata processing method, device and equipment and readable storage medium
CN110928497B (en) * 2019-11-15 2021-06-15 浪潮电子信息产业股份有限公司 Metadata processing method, device and equipment and readable storage medium

Also Published As

Publication number Publication date
KR20130118088A (en) 2013-10-29

Similar Documents

Publication Publication Date Title
US11588783B2 (en) Techniques for implementing IPV6-based distributed storage space
US10154086B1 (en) Distributed consumer cloud storage system
KR101371202B1 (en) Distributed file system having multi MDS architecture and method for processing data using the same
EP3258369B1 (en) Systems and methods for distributed storage
US20130218934A1 (en) Method for directory entries split and merge in distributed file system
US20150215405A1 (en) Methods of managing and storing distributed files based on information-centric network
US9785646B2 (en) Data file handling in a network environment and independent file server
TW202117529A (en) Log-structured storage systems
US9372879B1 (en) Balanced append tree data structure
US20130311520A1 (en) Storage-service-provision apparatus,system, service-provision method, and service-provision program
JP5298200B2 (en) Decomposition / reconstruction in data transfer storage
US8924513B2 (en) Storage system
TW202111520A (en) Log-structured storage systems
US11005663B2 (en) Secure audit scheme in a distributed data storage system
JP2010079886A (en) Scalable secondary storage system and method
TW202113580A (en) Log-structured storage systems
US9471586B2 (en) Intelligent selection of replication node for file data blocks in GPFS-SNC
CN106570113B (en) Mass vector slice data cloud storage method and system
KR20100094312A (en) File system and method for delivering contents in file system
Singh et al. Scalable metadata management techniques for ultra-large distributed storage systems--A systematic review
Varade et al. Distributed metadata management scheme in hdfs
US20160259836A1 (en) Parallel asynchronous data replication
US20150106468A1 (en) Storage system and data access method
US9578120B1 (en) Messaging with key-value persistence
JP2010271797A (en) Method, device and program for managing data position in distributed storage

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: 20180220

Year of fee payment: 5