KR101601877B1 - Apparatus and method for client's participating in data storage of distributed file system - Google Patents

Apparatus and method for client's participating in data storage of distributed file system Download PDF

Info

Publication number
KR101601877B1
KR101601877B1 KR1020120067505A KR20120067505A KR101601877B1 KR 101601877 B1 KR101601877 B1 KR 101601877B1 KR 1020120067505 A KR1020120067505 A KR 1020120067505A KR 20120067505 A KR20120067505 A KR 20120067505A KR 101601877 B1 KR101601877 B1 KR 101601877B1
Authority
KR
South Korea
Prior art keywords
chunk
file
metadata
data
information
Prior art date
Application number
KR1020120067505A
Other languages
Korean (ko)
Other versions
KR20130045159A (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 US13/602,783 priority Critical patent/US9378218B2/en
Publication of KR20130045159A publication Critical patent/KR20130045159A/en
Application granted granted Critical
Publication of KR101601877B1 publication Critical patent/KR101601877B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs

Landscapes

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

Abstract

분산 파일시스템에서 클라이언트가 데이터 저장에 참여하는 장치 및 방법이 개시된다. 본 발명에 따른 분산 파일시스템의 클라이언트 장치는 읽고자 하는 파일에 상응하는 청크의 전역 생성 번호를 포함하는 제1 메타데이터 정보가 내부에 기저장되어있는지 여부를 판단하는 저장 여부 판단부; 및 상기 제1 메타데이터 정보가 기저장되어있는 경우, 상기 제1 메타데이터 정보에 상응하는 로컬 데이터를 이용하여 상기 파일에 대한 읽기를 수행하는 파일 리드부를 포함한다.An apparatus and method for a client to participate in data storage in a distributed file system is disclosed. The client apparatus of the distributed file system according to the present invention includes a storage determination unit for determining whether first metadata information including a global generation number of a chunk corresponding to a file to be read is stored in the storage unit; And a file read unit for reading the file using the local data corresponding to the first metadata information if the first metadata information is stored in advance.

Description

분산 파일시스템에서 클라이언트가 데이터 저장에 참여하는 장치 및 방법 {APPARATUS AND METHOD FOR CLIENT'S PARTICIPATING IN DATA STORAGE OF DISTRIBUTED FILE SYSTEM}[0001] APPARATUS AND METHOD FOR CLIENT'S PARTICIPATING IN DATA STORAGE OF DISTRIBUTED FILE SYSTEM [0002]

본 발명은 분산 파일시스템에 관한 것으로, 특히 파일시스템의 클라이언트가 특정 데이터 집합을 집중적으로 액세스하는 환경에서 고성능 액세스가 가능하도록 하기 위해 분산 파일 시스템의 데이터 저장소 역할에 클라이언트가 참여하는 기술에 관한 것이다.BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a distributed file system, and more particularly, to a technique in which a client participates in a data storage role of a distributed file system to enable high performance access in an environment in which a client of a file system accesses a specific data set intensively.

최근 가상화 기술을 활용하여 하나의 물리 서버에 여러 개의 가상 머신들(VMs: Virtual Machines)이 탑재되는 경우가 많다. 시스템 장애 대비나 워크로드 최적화 등에 유연성이 높은 가상 머신을 활용함으로써 시스템의 활용율을 높일 수 있고, 라이브 마이그레이션과 같은 기능을 활용할 수 있다.Recently, many virtual machines (VMs) are mounted on one physical server by utilizing virtualization technology. By leveraging flexible virtual machines for system failure and workload optimization, you can increase system utilization and take advantage of features such as live migration.

가상머신의 라이브 마이그레이션을 위해서는 가상머신 이미지를 서로 다른 서버 호스트에서 공유하면서 액세스할 수 있는 공유 스토리지가 필수적이다.For a live migration of virtual machines, shared storage is required to share virtual machine images across different server hosts.

공유 스토리지를 제공하는 방법에는 SAN(Storage Area Network), NAS(Network Attached Storage), iSCSI(internet Small Computer System Interface) 스토리지 및 분산 파일시스템 등이 있다.Methods for providing shared storage include Storage Area Network (SAN), Network Attached Storage (NAS), Internet Small Computer System Interface (iSCSI) storage, and distributed file systems.

그러나, SAN, NAS, iSCSI 등 종래의 공유 스토리지 제공 방법은 스토리지 확장성 및 관리의 용이성 측면에서 많은 문제점을 가지고 있다. 또한, 클라이언트의 수가 증가함에 따라 스토리지 액세스가 집중되어 클라이언트의 스토리지 액세스 성능이 저하되는 문제점을 가진다.However, conventional shared storage providing methods such as SAN, NAS, and iSCSI have many problems in terms of storage scalability and ease of management. In addition, as the number of clients increases, storage accesses are concentrated and the storage access performance of the clients is deteriorated.

한편, 최근 들어 다양한 인터넷 환경에서, 스토리지를 구비한 다수의 컴퓨터들을 네트워크로 연결함으로써 사용자에게 통합된 파일시스템을 제공하고 여러 사용자 사이에서 공유가 가능한 분산 파일시스템이 사용되고 있다.Meanwhile, in recent years, in a variety of Internet environments, a distributed file system has been used in which a plurality of computers having storage are connected to a network to provide an integrated file system to a user and can be shared among a plurality of users.

분산 파일시스템은 상황에 따라 분산 파일시스템에 참여하는 서버의 수를 늘림으로써 파일시스템의 크기를 쉽게 확장할 수 있는 고확장성을 제공한다는 장점이 있다. 또한, 분산 파일시스템은 파일 데이터의 복제본을 서로 다른 서버에 중복 저장하는 방법으로 특정 데이터 저장 서버의 고장시에도 다른 데이터 저장 서버의 복제본을 활용할 수 있어 고가용성을 제공할 수 있다. 나아가, 복제본들을 여러 개 구비함으로써 여러 클라이언트의 읽기 요청을 여러 저장서버에 분산하여 성능을 향상시킬 수 있다.Distributed file systems have the advantage of providing scalability that can easily scale the size of a file system by increasing the number of servers participating in a distributed file system, depending on the situation. In addition, the distributed file system can store replicas of file data on different servers in a redundant manner, so that replicas of other data storage servers can be utilized even in the event of a failure of a specific data storage server, thereby providing high availability. Furthermore, by having multiple replicas, performance can be improved by distributing the read requests of a plurality of clients to a plurality of storage servers.

나아가, 미국공개특허 제2009/0037680호의 가상머신이 수행중인 상태에서 가상 머신 디스크(VM disk)를 하나의 물리 스토리지에서 다른 물리 스토리지로 이동하기 위한 방법 등 분산 파일시스템을 이용한 다양한 개량기술이 소개되어 있다. Furthermore, various improvements using a distributed file system have been introduced, such as a method for moving a virtual disk (VM disk) from one physical storage to another physical storage while the virtual machine of US Patent Publication No. 2009/0037680 is in operation have.

그러나, 이와 같은 분산 파일시스템 역시 클라이언트의 수가 증가함에 따라 클라이언트의 스토리지 액세스 성능이 저하된다는 문제점을 가진다. 가상환경에서의 이와 같은 문제점들은, 데이터베이스 시스템 같이 기업에 중요한 응용들이 복수 개의 파일시스템들을 구비하여 각각의 파일시스템이 제한된 수의 클라이언트들만을 지원하도록 하거나, 아예 가상환경에서의 실행을 포기하여야 하는 치명적인 한계를 가진다.However, such distributed file system also has a problem that the storage access performance of the client is lowered as the number of clients increases. These problems in the virtual environment are that the applications that are important to the enterprise such as the database system have a plurality of file systems so that each file system can support only a limited number of clients, Have limitations.

본 발명의 목적은 분산 파일시스템에서 클라이언트를 데이터 저장소 역할에 참여시킴으로써, 클라이언트의 파일시스템 액세스에 대하여 로컬 디스크 액세스 효과를 가질 수 있도록 하는 것이다.An object of the present invention is to enable a client to participate in a data storage role in a distributed file system so as to have a local disk access effect on a client's file system access.

또한, 본 발명의 목적은 분산 파일시스템에서 클라이언트를 데이터 저장소 역할에 참여시킴으로써, 분산 공유 파일시스템의 클라이언트 수가 증가함에 따라 발생하는 스토리지 액세스 성능 저하를 방지하는 것이다.It is also an object of the present invention to prevent a degradation in storage access performance caused by an increase in the number of clients of a distributed shared file system by allowing a client to participate in a data storage role in the distributed file system.

또한, 본 발명의 목적은 분산 파일시스템에서 클라이언트가 데이터 저장소 역할에 참여함에 있어서, 청크의 생성 번호를 이용하여 해당 청크의 변경 이력을 추적하고, 해당 청크를 액세스하고자 하는 클라이언트가 올바른 청크에 액세스할 수 있도록 하는 것이다.It is also an object of the present invention to provide a distributed file system in which when a client participates in a data storage role, a change history of a corresponding chunk is tracked using a chunk generation number, and a client accessing the chunk accesses a correct chunk .

상기한 목적을 달성하기 위한 본 발명에 따른 분산 파일시스템의 클라이언트 장치는, 읽고자 하는 파일에 상응하는 청크의 전역 생성 번호를 포함하는 제1 메타데이터 정보가 내부에 기저장되어있는지 여부를 판단하는 저장 여부 판단부; 및 상기 제1 메타데이터 정보가 기저장되어있는 경우, 상기 제1 메타데이터 정보에 상응하는 로컬 데이터를 이용하여 상기 파일에 대한 읽기를 수행하는 파일 리드부를 포함한다.According to an aspect of the present invention, there is provided a client apparatus for a distributed file system, the apparatus comprising: a first storage unit for storing first metadata information including a global generation number of a chunk corresponding to a file to be read, A storage determination unit; And a file read unit for reading the file using the local data corresponding to the first metadata information if the first metadata information is stored in advance.

이 때, 분산 파일시스템의 클라이언트 장치는 상기 청크의 전역 생성 번호를 포함하는 제2 메타데이터 정보를 메타데이터 서버로부터 수신하고 상기 제2 메타데이터 정보를 로컬에 저장하는 메타데이터 수신부를 더 포함할 수 있다.In this case, the client apparatus of the distributed file system may further include a metadata receiving unit that receives second metadata information including the global generation number of the chunk from the metadata server and stores the second metadata information locally have.

이 때, 파일 리드부는 상기 제2 메타데이터 정보에 상응하는 데이터 서버로부터 청크 데이터를 수신하고, 수신된 상기 청크 데이터를 이용하여 상기 파일에 대한 읽기를 수행할 수 있다.In this case, the file read unit may receive the chunk data from the data server corresponding to the second metadata information, and may read the file using the received chunk data.

이 때, 상기 제1 메타데이터 정보 및 제2 메타데이터 정보는 각각 상기 파일의 크기, 상기 청크의 크기, 상기 파일의 복제 수, 상기 파일의 소유자, 상기 파일의 접근 권한 중 하나 이상을 포함하는 파일 속성 정보; 및 상기 파일에 속한 상기 청크에 대한 청크 정보를 포함할 수 있다.The first metadata information and the second metadata information may include at least one of a size of the file, a size of the chunk, a number of copies of the file, an owner of the file, Attribute information; And chunk information for the chunk belonging to the file.

이 때, 상기 청크 정보는 청크 아이디, 상기 전역 생성 번호, 및 청크 저장 서버 리스트를 포함할 수 있다. 이 때, 청크 저장 서버 리스트는 상기 청크를 저장하고 있는 데이터 서버들 각각의 데이터 서버 아이디, 청크 위치 아이디 및 생성 번호를 포함할 수 있다. 이 때, 생성 번호는 상기 생성 번호에 상응하는 청크에 변경이 발생할 때마다 1씩 증가할 수 있다.At this time, the chunk information may include a chunk ID, the global generation number, and a chunk storage server list. At this time, the chunk storage server list may include a data server ID, a chunk location ID, and a generation number of each of the data servers storing the chunk. At this time, the generation number may be incremented by 1 each time a change is made to the chunk corresponding to the generation number.

이 때, 상기 전역 생성 번호는 상기 데이터 서버들에 상응하는 생성 번호들 중 가장 큰 값에 상응할 수 있다.At this time, the global generation number may correspond to a largest value among generation numbers corresponding to the data servers.

이 때, 분산 파일시스템의 클라이언트 장치는 상기 제1 메타데이터 정보 및 상기 제2 메타데이터 정보에 각각 포함된 상기 전역 생성 번호들을 비교하여 상기 청크에 대한 변경 여부를 판단하는 변경 여부 판단부를 더 포함할 수 있다.In this case, the client apparatus of the distributed file system may further include a change determining unit for determining whether to change the chunk by comparing the global generation numbers included in the first metadata information and the second metadata information, respectively .

이 때, 상기 파일 리드부는 상기 전역 생성 번호들이 동일한 경우에 상기 제1 메타데이터 정보에 상응하는 로컬 데이터를 이용하여 상기 파일에 대한 읽기를 수행하고, 상기 전역 생성 번호들이 상이한 경우에 상기 청크가 변경된 것으로 판단하고 상기 제2 메타데이터 정보에 상응하는 데이터 서버로부터 청크 데이터를 수신하고, 수신된 상기 청크 데이터를 이용하여 상기 파일에 대한 읽기를 수행할 수 있다.The file read unit may read the file using the local data corresponding to the first metadata information if the global generation numbers are identical, and if the global generation numbers are different, , Receives chunk data from a data server corresponding to the second metadata information, and reads the chunk data using the received chunk data.

이 때, 상기 제2 메타데이터 정보에 상응하는 데이터 서버는 상기 제2 메타데이터 정보에 포함된 상기 전역 생성 번호와 동일한 생성 번호에 상응하는 것일 수 있다.In this case, the data server corresponding to the second metadata information may correspond to the same generation number as the global generation number included in the second metadata information.

이 때, 분산 파일시스템의 클라이언트 장치는 로컬 청크에 데이터를 쓰는 데이터 라이팅부; 상기 데이터에 상응하는 청크의 전역 생성 번호를 1 증가시켜서 저장하는 로컬 전역 번호 증가부; 메타데이터 서버로 상기 데이터에 상응하는 메타데이터 정보의 전역 생성번호 1 증가를 요청하는 전역 번호 증가 요청부; 및 상기 쓰기에 상응하는 데이터 복제를 수행하는 데이터 복제부를 더 포함할 수 있다. 이 때, 상기 분산 파일시스템의 클라이언트 장치는 상기 데이터를 쓰기 전에 새로운 청크가 필요한지 여부를 판단하는 청크 필요 판단부; 상기 새로운 청크가 필요한 경우 상기 메타데이터 서버로 청크 할당을 요청하는 청크 할당 요청부; 및 상기 메타데이터 서버로부터 청크 할당 결과 및 할당된 청크에 상응하는 메타데이터 정보를 수신하고 로컬에 새로운 청크를 할당하고 수신된 메타데이터를 저장하는 청크 할당부를 더 포함할 수 있다.At this time, the client apparatus of the distributed file system includes a data writing unit for writing data to the local chunk; A local global number increasing unit for increasing the global generation number of the chunk corresponding to the data by 1; A global number increase request unit for requesting the metadata server to increase the global generation number 1 of the metadata information corresponding to the data; And a data replication unit for performing data replication corresponding to the write. In this case, the client device of the distributed file system may determine whether a new chunk is required before writing the data. A chunk allocation request unit for requesting a chunk allocation to the metadata server when the new chunk is needed; And a chunk allocation unit receiving the chunk allocation result and the metadata information corresponding to the allocated chunk from the metadata server, allocating a new chunk locally, and storing the received metadata.

또한, 본 발명의 일실시예에 따른 분산 파일시스템의 메타데이터 서버 장치는, 읽기 요청된 파일에 상응하는 청크의 메타데이터 정보가 존재하는지 여부를 판단하는 존재 여부 판단부; 및 상기 메타데이터 정보가 존재하는 경우, 상기 메타데이터 정보에 포함된 파일 속성 정보 및 청크 정보를 전송하는 메타데이터 전송부를 포함한다.In addition, the metadata server apparatus of the distributed file system according to an embodiment of the present invention includes an existence determination unit for determining whether metadata information of a chunk corresponding to a file requested to be read exists; And a metadata transmitting unit for transmitting the file attribute information and the chunk information included in the metadata information when the metadata information exists.

이 때, 상기 파일 속성 정보는 상기 파일의 크기, 상기 청크의 크기, 상기 파일의 복제 수, 상기 파일의 소유자, 상기 파일의 접근 권한 중 하나 이상을 포함한다.At this time, the file attribute information includes at least one of the size of the file, the size of the chunk, the number of copies of the file, the owner of the file, and the access right of the file.

이 때, 상기 분산 파일시스템의 메타데이터 서버 장치는 상기 메타데이터 정보가 존재하지 않는 경우, 에러를 전송하는 에러 전송부; 및 상기 파일 속성 정보 및 상기 청크에 대한 잠금을 설정하는 잠금 설정부를 더 포함할 수 있다. 이 때, 메타데이터 전송부는 상기 잠금이 설정된 경우에만 상기 파일 속성 정보 및 상기 청크 정보를 액세스할 수 있다.In this case, the metadata server apparatus of the distributed file system may include an error transmission unit for transmitting an error if the metadata information does not exist; And a lock setting unit for setting the file attribute information and the lock for the chunk. At this time, the metadata transfer unit can access the file attribute information and the chunk information only when the lock is set.

이 때, 상기 메타데이터 서버 장치는 복수의 메타데이터 서버들로 구성된 메타데이터 서버 클러스터에 상응하며, 상기 복수의 메타데이터 서버들 각각은 할당된 상기 메타데이터 정보만을 관리할 수 있다.At this time, the metadata server apparatus corresponds to a metadata server cluster composed of a plurality of metadata servers, and each of the plurality of metadata servers can manage only the allocated metadata information.

또한, 본 발명의 일실시예에 따른 분산 파일시스템의 클라이언트의 파일 읽기 방법은, 읽고자 하는 파일에 상응하는 청크의 전역 생성 번호를 포함하는 제1 메타데이터 정보가 기저장되어있는지 여부를 판단하는 단계; 및 상기 제1 메타데이터 정보가 기저장되어있는 경우, 상기 제1 메타데이터 정보에 상응하는 로컬 데이터를 이용하여 상기 파일에 대한 읽기를 수행하는 단계를 포함한다.The method of reading a file of a client of a distributed file system according to an embodiment of the present invention may include determining whether first metadata information including a global generation number of a chunk corresponding to a file to be read is stored in advance step; And performing reading of the file using local data corresponding to the first metadata information when the first metadata information is stored in advance.

이 때, 파일 읽기 방법은 상기 청크의 전역 생성 번호를 포함하는 제2 메타데이터 정보를 수신하여 로컬에 저장하는 단계를 더 포함하고, 상기 파일에 대한 읽기를 수행하는 단계는 상기 제2 메타데이터 정보에 상응하는 데이터 서버로부터 청크 데이터를 수신하고, 수신된 상기 청크 데이터를 이용하여 상기 파일에 대한 읽기를 수행할 수 있다.In this case, the file reading method may further include receiving second metadata information including the global generation number of the chunk and storing the received second metadata information locally, and the step of reading the file may include reading the second metadata information Receiving chunk data from the data server corresponding to the received chunk data, and reading the chunk data using the received chunk data.

이 때, 상기 제1 메타데이터 정보 및 제2 메타데이터 정보는 각각 상기 파일의 크기, 상기 청크의 크기, 상기 파일의 복제 수, 상기 파일의 소유자, 상기 파일의 접근 권한 중 하나 이상을 포함하는 파일 속성 정보; 및 상기 파일에 속한 상기 청크에 대한 청크 정보를 포함할 수 있다.The first metadata information and the second metadata information may include at least one of a size of the file, a size of the chunk, a number of copies of the file, an owner of the file, Attribute information; And chunk information for the chunk belonging to the file.

또한, 본 발명의 일실시예에 따른 분산 파일시스템의 메타데이터 서버 장치의 읽기 요청 처리 방법은, 읽기 요청된 파일에 상응하는 청크의 메타데이터 정보가 존재하는지 여부를 판단하는 단계; 및 상기 메타데이터 정보가 존재하는 경우, 상기 메타데이터 정보에 포함된 파일 속성 정보 및 청크 정보를 전송하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method of processing a read request of a metadata server apparatus of a distributed file system, the method comprising: determining whether metadata information of a chunk corresponding to a read requested file exists; And transmitting file attribute information and chunk information included in the metadata information when the metadata information exists.

이 때, 상기 파일 속성 정보는 상기 파일의 크기, 상기 청크의 크기, 상기 파일의 복제 수, 상기 파일의 소유자, 상기 파일의 접근 권한 중 하나 이상을 포함한다.At this time, the file attribute information includes at least one of the size of the file, the size of the chunk, the number of copies of the file, the owner of the file, and the access right of the file.

본 발명에 따르면, 분산 파일시스템에서 클라이언트를 데이터 저장소 역할에 참여시킴으로써, 클라이언트의 분산 공유 파일시스템 액세스에 대하여 로컬 디스크 액세스 효과를 가질 수 있다.According to the present invention, by joining a client to a data storage role in a distributed file system, it can have a local disk access effect on a client's distributed shared file system access.

또한, 본 발명은 분산 파일시스템에서 클라이언트를 데이터 저장소 역할에 참여시킴으로써, 분산 파일시스템의 클라이언트 수가 증가함에 따라 발생하는 스토리지 액세스 성능 저하를 방지할 수 있다.In addition, the present invention can prevent a degradation in storage access performance caused by an increase in the number of clients of the distributed file system by joining the client to the data storage role in the distributed file system.

또한, 본 발명은 분산 파일시스템에서 클라이언트가 데이터 저장소 역할에 참여함에 있어서, 청크의 생성 번호를 이용하여 해당 청크의 변경 이력을 추적하고, 해당 청크를 액세스하고자 하는 클라이언트가 올바른 청크에 액세스할 수 있다.In addition, in the distributed file system, when a client participates in a data storage role, a change history of a corresponding chunk is tracked using a chunk generation number, and a client accessing the chunk can access the correct chunk .

도 1은 본 발명의 일실시예에 따른 클라이언트 참여형 분산 파일 시스템의 구성도이다.
도 2는 본 발명의 일실시예에 따른 메타데이터 정보를 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 분산 파일시스템의 참여형 클라이언트의 파일 읽기 방법을 나타낸 동작 흐름도이다.
도 4는 본 발명의 일실시예에 따른 분산 파일시스템의 비참여형 클라이언트의 파일 읽기 방법을 나타낸 동작 흐름도이다.
도 5는 본 발명의 일실시예에 따른 분산 파일시스템의 메타데이터 서버가 클라이언트의 파일 읽기 요청을 처리하는 방법을 나타낸 동작 흐름도이다.
도 6은 가상환경처럼 클라이언트가 특정 파일을 독점적으로 사용하는 환경에서 참여형 클라이언트의 파일 읽기 방법을 나타낸 동작 흐름도이다.
도 7은 가상환경처럼 클라이언트가 특정 파일을 독점적으로 사용하는 환경에서 메타데이터 서버가 클라이언트의 파일 읽기 요청을 처리하는 방법을 나타낸 동작 흐름도이다.
도 8은 본 발명의 일실시예에 따른 분산 파일시스템의 참여형 클라이언트의 파일 쓰기 방법을 나타낸 동작 흐름도이다.
도 9는 본 발명의 일실시예에 따른 분산 파일시스템의 클라이언트 장치를 나타낸 블록도이다.
도 10은 본 발명의 일실시예에 따른 분산 파일시스템의 메타데이터 서버 장치를 나타낸 블록도이다.
1 is a block diagram of a client-participant distributed file system according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating metadata information according to an exemplary embodiment of the present invention. Referring to FIG.
3 is a flowchart illustrating a method of reading a file of a participating client of a distributed file system according to an exemplary embodiment of the present invention.
4 is a flowchart illustrating a method of reading a file of a non-participant client of a distributed file system according to an exemplary embodiment of the present invention.
5 is a flowchart illustrating a method of processing a file read request of a client by a metadata server of a distributed file system according to an embodiment of the present invention.
6 is an operational flowchart illustrating a file reading method of a participant client in an environment where a client exclusively uses a specific file as in a virtual environment.
FIG. 7 is a flowchart illustrating a method for a metadata server to process a client file read request in an environment where a client exclusively uses a specific file, such as a virtual environment.
8 is a flowchart illustrating a method of writing a file to a participant client of a distributed file system according to an embodiment of the present invention.
9 is a block diagram showing a client apparatus of a distributed file system according to an embodiment of the present invention.
10 is a block diagram illustrating a metadata server apparatus of a distributed file system according to an embodiment of the present invention.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.The present invention will now be described in detail with reference to the accompanying drawings. Hereinafter, a repeated description, a known function that may obscure the gist of the present invention, and a detailed description of the configuration will be omitted. Embodiments of the present invention are provided to more fully describe the present invention to those skilled in the art. Accordingly, the shapes and sizes of the elements in the drawings and the like can be exaggerated for clarity.

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

도 1은 본 발명의 일실시예에 따른 클라이언트 참여형 분산 파일 시스템의 구성도이다.1 is a block diagram of a client-participant distributed file system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일실시예에 따른 클라이언트 참여형 분산 파일 시스템은 참여형 클라이언트들(100-1, ..., 100-m), 비참여형 클라이언트들(200-1, ..., 200-n), 데이터 서버들(400-1, ..., 400-x) 및 메타데이터 서버들(500-1, ..., 500-y)을 포함한다.Referring to FIG. 1, a client-participant distributed file system according to an embodiment of the present invention includes participating clients 100-1 to 100-m, non-participating clients 200-1 to 200- 200-n, data servers 400-1, ..., 400-x, and metadata servers 500-1, ..., 500-y.

참여형 클라이언트들(100-1, ..., 100-m), 비참여형 클라이언트들(200-1, ..., 200-n), 데이터 서버들(400-1, ..., 400-x) 및 메타데이터 서버들(500-1, ..., 500-y)은 네트워크 스위치(300)에 의하여 서로 연결된다. ..., 100-m, non-participating clients 200-1, ..., 200-n, data servers 400-1, ..., 400-x And the metadata servers 500-1, ..., 500-y are connected to each other by the network switch 300.

참여형 클라이언트들(100-1, ..., 100-m)은 스토리지(110-1, ..., 110-m)를 구비하고 분산 파일 시스템의 데이터 저장에 부분적으로 참여하면서, 메타데이터 서버들(500-1, ..., 500-y)로부터 제공되는 파일 메타데이터를 액세스하고 데이터 서버들(400-1, ..., 400-x)로부터 직접 파일 데이터를 액세스한다.Participating clients 100-1 ... 100-m have storage 110-1, ..., 110-m and are partly involved in data storage of the distributed file system, Accesses the file metadata provided from the data servers 400-1 to 400-x and accesses the file data directly from the data servers 400-1 to 400-x.

또한, 참여형 클라이언트들(100-1, ..., 100-m)은 액세스된 메타데이터 정보와 파일 데이터들을 자신의 로컬 스토리지(110-1, ..., 110-m)에 저장하고 향후 저장된 데이터와 동일한 데이터에 대한 액세스는 모두 로컬 스토리지에서 수행함으로써 부분적으로 데이터 서버의 역할을 수행하게 된다.In addition, the participating clients 100-1, ..., 100-m store the accessed metadata information and file data in their local storage 110-1, ..., 110-m, Access to the same data as the data is partially performed by the local storage, thereby acting as a data server.

비참여형 클라이언트들(200-1, ..., 200-n)은 분산 파일시스템의 데이터 저장에 참여하지 않는 일반적인 클라이언트들로써, 참여형 클라이언트들(100-1, ..., 100-m)과 유사하게 메타데이터 서버들(500-1, ..., 500-y)로부터 파일 메타데이터를 액세스하고 데이터 서버들(400-1, ..., 400-x)로부터 직접 파일 데이터를 액세스한다.The non-participating clients 200-1 to 200-n are general clients that do not participate in the data storage of the distributed file system and are similar to the participating clients 100-1 to 100- Access the file metadata from the metadata servers 500-1 to 500-y and access the file data directly from the data servers 400-1 to 400-x.

메타데이터 서버들(500-1, ..., 500-y)은 스토리지(510-1, ..., 510-y)를 구비하고, 파일 시스템의 모든 파일에 대한 메타데이터(메타데이터 정보)를 유지한다. 메타데이터는 파일들 각각에 대한 속성 및 파일들 각각을 구성하는 청크들 각각이 데이터 서버들(400-1, ..., 400-x) 중 어느 데이터 서버에 저장되어 있는지에 관한 위치정보를 포함한다.Each of the metadata servers 500-1 to 500-y includes storage 510-1 to 510-y, and metadata (metadata information) for all the files in the file system, Lt; / RTI > The metadata includes location information about which attributes of each of the files and each of the chunks constituting each of the files are stored in the data server 400-1, ..., 400-x. do.

이 때, 파일들 각각에 대한 속성은 파일의 크기, 청크(또는 블록)의 크기, 복제 수, 파일의 접근권한, 파일의 소유자 등을 포함할 수 있다.At this time, the attributes for each of the files may include the size of the file, the size of the chunk (or block), the number of copies, the access right of the file, the owner of the file, and the like.

또한, 메타데이터에는 파일들 각각에 상응하는 청크들 각각의 변경 이력을 추적하고 해당 청크를 액세스하고자 하는 클라이언트가 올바른 청크에 액세스할 수 있도록 제어하기 위한 청크의 생성 번호(generation number)가 추가된다.The metadata also includes a chunk's generation number to track the change history of each of the chunks corresponding to each of the files and to control the client accessing the chunk to access the correct chunks.

생성 번호는 해당 청크에 변경이 발생한 경우 수정된다. 예를 들어, 생성 번호는 청크에 변경이 발생할 때마다 '1'씩 증가된다.The generation number is modified if a change is made to the chunk. For example, the generation number is incremented by '1' whenever a change is made to the chunk.

참여형 클라이언트들(100-1, ..., 100-m)은 로컬 스토리지에 저장된 특정 청크의 생성 번호와 메타데이터 서버들(500-1, ..., 500-y)에 저장된 해당 청크의 생성 번호를 활용하여 청크에의 변경 사실을 인지하게 된다.Participating clients 100-1 to 100-m generate a chunk of the specific chunks stored in the local storage and generation of corresponding chunks stored in the metadata servers 500-1 to 500-y. The number is used to recognize the change to the chunk.

또한, 메타데이터 서버들(500-1, ..., 500-y)은 새로운 청크가 생성될 필요가 있을 때 생성된 청크가 저장될 주 데이터 서버와 주 데이터 서버에 의해 복제가 이루어질 복제 데이터 서버(들)을 선정한다.The metadata servers 500-1, ..., 500-y may store a chunk generated when a new chunk needs to be generated, and a duplicate data server to be replicated by the main data server. (S).

데이터 서버들(400-1, ..., 400-x)은 각각 스토리지(410-1, ..., 410-x)를 구비하고, 담당하는 파일의 청크들을 저장하고 관리하며, 클라이언트들(100-1, ..., 100-m, 200-1, ..., 200-n)로부터의 데이터 액세스 요청을 처리한다.
Each of the data servers 400-1 to 400-x has storage 410-1, ..., 410-x, stores and manages chunks of a file to be managed, 100-1, ..., 100-m, 200-1, ..., 200-n.

도 2는 본 발명의 일실시예에 따른 메타데이터 정보를 나타낸 도면이다.FIG. 2 is a diagram illustrating metadata information according to an exemplary embodiment of the present invention. Referring to FIG.

도 2를 참조하면, 파일 시스템에 유지되는 파일을 위해 메타데이터 서버에 유지 및 관리되는 메타데이터 정보(520)는 파일 속성 정보(521) 및 하나 이상의 청크 정보(522-1, ..., 522-z)로 구성된다.Referring to FIG. 2, the metadata information 520 maintained and managed by the metadata server for files maintained in the file system includes file attribute information 521 and one or more chunk information 522-1, ..., 522 -z).

파일 속성 정보(521)는 파일 크기, 청크 크기, 복제 수, 소유자, 접근 권한 등을 포함할 수 있다.The file attribute information 521 may include a file size, a chunk size, the number of copies, an owner, an access right, and the like.

청크 정보(522-1, ..., 522-z)는 파일에 속한 각 청크에 대한 정보이며, 파일에 속한 청크의 수(z)에 따라 복수개 구비될 수 있다.The chunk information 522-1, ..., 522-z is information on each chunk belonging to the file, and a plurality of chunk information may be provided according to the number (z) of chunks belonging to the file.

청크 정보(522-1, ..., 522-z)는 청크 아이디, 청크의 전역생성번호(522-1-1, ..., 522-z-1), 청크를 저장할 데이터 서버들의 리스트로 구성된다.The chunk information 522-1, ..., 522-z includes a chunk ID, global generation numbers 522-1-1, ..., 522-z-1 of chunks, and a list of data servers .

청크를 저장할 데이터 서버들의 리스트(청크 저장 서버 리스트)는 데이터 서버 아이디, 해당 데이터 서버내에서의 청크 위치 아이디, 해당 데이터 서버에 저장된 청크의 생성번호(522-1-i, ..., 522-z-i)로 구성된다.The list of data servers (chunk storage server list) for storing the chunks includes a data server ID, a chunk location ID in the data server, a generation number 522-1-i, ..., 522- zi).

이 때, 해당 데이터 서버에 저장된 청크의 생성번호(522-1-i, ..., 522-z-i)는 해당 데이터 서버에서 해당 청크를 수정한 경우 1 증가되는 생성번호이다. 예를 들어, 특정 청크에 대한 쓰기 요청에 따라 주 데이터 서버는 수정을 하였으나 복제 데이터 서버는 수정을 하지 않은 상태라면, 주 데이터 서버의 생성 번호는 복제 데이터 서버의 생성 번호보다 1이 크게 된다.At this time, the generation numbers (522-1-i, ..., 522-z-i) of chunks stored in the data server are generation numbers that are incremented by 1 when the corresponding chunk is modified in the data server. For example, if the primary data server is modified according to a write request for a specific chunk but the replication data server is not modified, the generation number of the primary data server is one greater than the generation number of the replication data server.

청크의 전역 생성 번호(522-1-1, ..., 522-z-1)는 청크 저장 서버 리스트에 포함된 데이터 서버들(참여형 클라이언트를 포함) 중 가장 큰 생성번호가 할당된다. 전역 생성 번호는 참여형 클라이언트에서 쓰기를 로컬에 수행한 후 아직 데이터 서버들에는 쓰기가 반영되지 않은 상황을 추적하기 위해서 사용될 수 있다.The global generation numbers (522-1-1, ..., 522-z-1) of the chunks are assigned the largest generation number among the data servers (including the participating clients) included in the chunk storage server list. The global generation number can be used to track situations where the participating client has performed writes locally and data is not yet written to the data servers.

모든 생성 번호는 파일이 처음 생성될 때 0으로 초기화된다.All generation numbers are initialized to zero when the file is first created.

이하에서는 설명의 편의를 위하여 메타데이터 서버가 한 대만 있는 경우를 중심으로 설명한다. 확장성 및 성능 향상을 위해 메타데이터 서버는 다수의 메타데이터 서버들로 구성된 메타데이터 서버 클러스터로 확장될 수 있다. 메타데이터 서버가 클러스터 형태로 구성된 경우, 특정 메타데이터를 담당하는 메타데이터 서버가 어느 것인지를 결정하기 위해 모든 메타데이터 서버들이 공유하는 정보가 필요하다. 이와 같은 공유 정보는 해쉬함수를 통한 계산으로 얻어지거나, 공유 정보를 모든 메타데이터 서버들이 공유하는 방식으로 얻어질 수 있다. 메타데이터 서버 클러스터 내의 각 메타데이터 서버는 자신이 관리하도록 할당된 메타데이터만 관리하게 된다.Hereinafter, the case where only one metadata server exists is explained for convenience of explanation. To improve scalability and performance, a metadata server can be extended to a metadata server cluster composed of a plurality of metadata servers. When a metadata server is configured in a cluster form, information shared by all metadata servers is needed to determine which metadata server is responsible for the specific metadata. Such shared information can be obtained by a calculation using a hash function, or shared information can be obtained in a manner that all metadata servers share. Each metadata server in the metadata server cluster manages only metadata assigned to the metadata server.

이하에서, 파일의 읽기(read) 및 쓰기(write)에 관하여 상세히 설명한다.
Hereinafter, the reading and writing of the file will be described in detail.

도 3은 본 발명의 일실시예에 따른 분산 파일시스템의 참여형 클라이언트의 파일 읽기 방법을 나타낸 동작 흐름도이다.3 is a flowchart illustrating a method of reading a file of a participating client of a distributed file system according to an exemplary embodiment of the present invention.

도 3을 참조하면, 본 발명의 일실시예에 따른 분산 파일시스템의 참여형 클라이언트는 파일을 읽기 위해 메타데이터 서버에게 읽고자 하는 파일의 청크 번호를 제공하면서 파일의 메타데이터 정보를 요청한다(S301).3, a participating client of the distributed file system according to an exemplary embodiment of the present invention requests metadata information of a file while providing a chunk number of a file to be read to a metadata server in order to read the file (S301) .

단계(S301)의 요청에 대한 회신으로, 참여형 클라이언트는 메타데이터 서버로부터 파일의 메타데이터 정보(파일 속성 정보 및 해당 청크의 청크 정보)를 수신한다(S302).In response to the request in step S301, the participating client receives metadata information (file attribute information and chunk information of the chunk of the file) of the file from the metadata server (S302).

수신이 완료되면, 참여형 클라이언트는 자신의 로컬에 해당 메타데이터 정보가 기저장되어 있는지 여부를 판단한다(S303).Upon completion of the reception, the participating client determines whether the corresponding metadata information is stored in its local area (S303).

단계(S303)의 판단 결과, 해당 메타데이터 정보가 로컬에 존재하지 않으면 읽기 요청된 파일의 청크를 처음 읽는 것이므로 수신한 메타데이터 정보(파일 속성 정보 및 해당 청크의 청크 정보)를 로컬에 저장한다(S304).As a result of the determination in step S303, if the corresponding meta data information does not exist locally, the received metadata information (file attribute information and chunk information of the chunk) is locally stored S304).

메타데이터 정보를 로컬에 저장한 후, 참여형 클라이언트는 수신한 메타데이터 정보를 이용하여 데이터를 읽어올 데이터 서버를 선택(S305)하고 선택된 데이터 서버에 데이터를 요청(S306)한 후, 데이터 서버로부터 청크 데이터를 수신한다(S307). 수신이 완료되면 수신된 청크 데이터를 로컬에 저장하고 수신된 청크 데이터를 이용하여 파일 읽기 동작을 수행한다(S308).After storing the metadata information locally, the participating client selects the data server to read the data using the received metadata information (S305), requests data to the selected data server (S306) Data is received (S307). When the reception is completed, the received chunk data is stored locally and the file reading operation is performed using the received chunk data (S308).

특히, 단계(S305)에서 참여형 클라이언트는 해당 청크의 전역 생성 번호와 동일한 생성 번호를 가지는 데이터 서버만을 선택 대상으로 한다.Particularly, in step S305, the participating client selects only the data server having the same generation number as the global generation number of the corresponding chunk.

이 때, 참여형 클라이언트는 단계(S307)가 완료되는 시점에 데이터 서버로부터 전달된 상태 정보로부터 읽기의 성공 여부를 확인하고, 읽기 실패시 단계(S305)로 되돌아가 다른 데이터 서버를 선택하고 데이터 요청 및 수신 동작을 계속할 수 있다.At this time, the participating client confirms the success or failure of the reading from the status information transmitted from the data server at the time when the step S307 is completed, returns to the step S305 when the reading is unsuccessful, selects another data server, The receiving operation can be continued.

설명의 편의를 위하여, 이하에서는 데이터 수신이 성공한 경우만이 설명된다.For convenience of explanation, only the case where data reception is successful will be described below.

단계(S303)의 판단 결과, 해당 메타데이터 정보가 로컬에 기저장되어 있으면, 참여형 클라이언트는 로컬의 메타데이터 정보와 수신한 메타데이터 정보가 동일한지 여부를 체크한다(S309).If it is determined in step S303 that the corresponding metadata information is locally stored, the participating client checks whether the local metadata information is the same as the received metadata information (S309).

이 때, 로컬의 메타데이터 정보와 수신한 메타데이터 정보가 동일한지 여부는 메타데이터 정보 전체를 비교하지 아니하고 읽고자 하는 청크의 전역 생성 번호만을 비교할 수 있다.At this time, whether or not the local metadata information and the received metadata information are the same can be compared only with the global generation numbers of the chunks to be read without comparing the entire metadata information.

로컬의 메타데이터 정보와 수신한 메타데이터 정보 각각에 상응하는 전역 생성 번호들이 다르다면 해당 청크가 다른 클라이언트에 의해 변경되었다는 것을 의미하므로, 참여형 클라이언트는 수신한 메타데이터 정보를 로컬에 저장한다(S304).If the global generation numbers corresponding to the local metadata information and the received metadata information are different, it means that the corresponding chunk has been changed by another client. Therefore, the participating client stores the received metadata information locally (S304) .

이후는 위에서 로컬에 메타데이터가 존재하지 않은 경우 수행된 과정과 동일하게 수행한다.Thereafter, if there is no metadata in the above, the same process as performed is performed.

로컬의 메타데이터 정보와 수신한 메타데이터 정보 각각에 상응하는 전역 생성 번호들이 동일하다면 해당 파일이 이미 클라이언트에 기저장되어 있음을 의미하므로, 로컬 데이터를 활용하여 파일에 대한 읽기를 수행한다(S310).
If the global generation numbers corresponding to the local metadata information and the received metadata information are the same, it means that the corresponding file is already stored in the client, so that the file is read using the local data (S310) .

도 4는 본 발명의 일실시예에 따른 분산 파일시스템의 비참여형 클라이언트의 파일 읽기 방법을 나타낸 동작 흐름도이다.4 is a flowchart illustrating a method of reading a file of a non-participant client of a distributed file system according to an exemplary embodiment of the present invention.

도 4를 참조하면, 본 발명의 일실시예에 따른 분산 파일시스템의 비참여형 클라이언트는 파일을 읽기 위해 메타데이터 서버에게 읽고자 하는 파일의 청크 번호를 제공하면서 파일의 메타데이터 정보를 요청한다(S401).4, the non-participating client of the distributed file system according to an embodiment of the present invention requests metadata information of a file while providing a chunk number of a file to be read to the metadata server in order to read the file (S401 ).

단계(S401)의 요청에 대한 회신으로, 비참여형 클라이언트는 메타데이터 서버로부터 파일의 메타데이터 정보(파일 속성 정보 및 해당 청크의 청크 정보)를 수신한다(S402).In response to the request of step S401, the non-participant client receives metadata information (file attribute information and chunk information of the chunk of the file) of the file from the metadata server (S402).

수신이 완료되면, 비참여형 클라이언트는 수신한 메타데이터 정보를 이용하여 데이터를 읽어올 데이터 서버를 선택(S403)하고 선택된 데이터 서버에 데이터를 요청(S404)한 후, 데이터 서버로부터 청크 데이터를 수신하고 수신된 청크 데이터를 이용하여 파일 읽기 동작을 수행한다(S405).When the reception is completed, the non-participating client selects the data server to read the data using the received metadata information (S403), requests the selected data server (S404), and receives the chunk data from the data server A file reading operation is performed using the received chunk data (S405).

도 3 및 도 4를 통하여 설명한 파일 읽기 방법에서 클라이언트는 메모리상의 일시적인 캐싱을 사용할 수 있다. 이와 같은 경우에는 도 4를 통하여 설명한 파일 읽기 방법도 도 3에 도시된 방법과 유사하게 수행될 수 있다.
In the file reading method described with reference to FIGS. 3 and 4, the client can use temporal caching on the memory. In such a case, the file reading method described with reference to FIG. 4 may also be performed similarly to the method shown in FIG.

도 5는 본 발명의 일실시예에 따른 분산 파일시스템의 메타데이터 서버가 클라이언트의 파일 읽기 요청을 처리하는 방법을 나타낸 동작 흐름도이다.5 is a flowchart illustrating a method of processing a file read request of a client by a metadata server of a distributed file system according to an embodiment of the present invention.

도 5를 참조하면, 본 발명의 일실시예에 따른 분산 파일시스템의 메타데이터 서버는 클라이언트로부터 읽고자 하는 파일의 청크 번호와 함께 읽기 요청을 수신하면, 요청된 파일의 메타데이터 정보가 존재하는지 여부를 판단한다(S501).Referring to FIG. 5, the metadata server of the distributed file system according to an embodiment of the present invention, when receiving a read request with a chunk number of a file to be read from a client, determines whether metadata information of a requested file exists (S501).

단계(S501)의 판단 결과, 메타데이터 정보가 존재하지 아니하는 경우 존재하지 않는 파일이나 청크에 대한 읽기 요청이므로 에러를 클라이언트에게 전송(S507)하고 읽기 요청 처리를 끝낸다.As a result of the determination in step S501, if metadata information does not exist, it is a read request for a file or chunk that does not exist, so an error is transmitted to the client in step S507 and the read request processing is terminated.

단계(S501)의 판단 결과, 메타데이터 정보가 존재하는 경우 해당 파일에 대한 메타데이터 정보에서 파일 속성 정보 및 요청된 청크에 대한 공유 잠금을 설정한다(S502).As a result of the determination in step S501, if there is metadata information, a share lock for the file attribute information and the requested chunk is set in metadata information about the file in operation S502.

이후, 메타데이터 서버는 공유 잠금이 획득되었는지 여부를 판단(S503)하여 공유 잠금이 획득되지 아니하였으면, 다른 클라이언트에 의해 해당 파일이 변경중이므로 잠시 대기 후 다시 공유 잠금 설정을 시도한다(S502).In step S503, the metadata server determines whether the shared lock has been acquired. If the shared lock is not acquired, the metadata server waits for a while after the file is being changed by another client, and attempts to set the shared lock again in step S502.

단계(S503)의 판단 결과 공유 잠금이 획득되었으면, 메타데이터 서버는 해당 메타데이터에서 파일 속성 정보와 읽기 요청된 청크 정보를 읽고(S504), 공유 잠금을 해제(S505)한 후 파일 속성 정보 및 청크 정보를 클라이언트에 전송(S506)한다.If it is determined in step S503 that the shared lock has been acquired, the metadata server reads the file attribute information and the requested chunk information from the corresponding metadata in step S504, releases the shared lock in step S505, And transmits the information to the client (S506).

한편, 가상환경과 같은 사용환경에서는 특정 파일시스템 클라이언트가 특정 시점에 특정 파일을 독점하여 사용하게 된다. 가상머신을 실행하는 서버 호스트는 가상머신 이미지를 집중적으로 액세스하는 파일시스템의 한 클라이언트이다. On the other hand, in a usage environment such as a virtual environment, a specific file system client monopolizes a specific file at a specific point in time. A server host running a virtual machine is a client of the file system that intensively accesses the virtual machine image.

가상 머신(VM)은 자신과 매핑된 가상머신 이미지를 독립적으로 사용하기 때문에 가상머신을 실행하고 있는 서버 호스트(파일시스템의 클라이언트)는 특정 시점에는 해당 가상머신 이미지를 독립적으로 사용한다. 가상머신의 라이브 마이그레이션이 발생하게 되면 새로운 서버 호스트가 독립적으로 해당 가상머신 이미지를 사용하게 되고, 라이브 마이그레이션 이전의 서버 호스트는 가상머신 이미지의 사용을 중지하게 된다. 따라서, 이러한 환경에서는 다른 클라이언트에서의 파일에 대한 수정이 발생하지 않으므로 도 3 및 도 5에서 설명한 방법들이 파일시스템의 성능을 향상시키기 위해 간략화될 수 있다.Since the virtual machine (VM) uses the mapped virtual machine image independently, the server host (the client of the file system) running the virtual machine independently uses the virtual machine image at a specific point in time. When a live migration of a virtual machine occurs, the new server host independently uses the virtual machine image, and the server host before the live migration stops using the virtual machine image. Therefore, in such an environment, modifications to files in other clients do not occur. Therefore, the methods described in FIGS. 3 and 5 can be simplified in order to improve the performance of the file system.

이에 대하여 도6 및 도7을 통해 설명한다. 도 4에서 설명한 과정은 가상환경에서 성능향상을 위해 사용될 가능성이 적으므로 설명을 생략한다. 다만, 당해 기술분야에서 통상의 지식을 가진 자라면 도 4에서 설명한 과정이 가상환경에서 성능향상을 위해 사용되는 경우(case)를 도 3, 도 6및 도 4의 관계로부터 쉽게 도출할 수 있음은 자명하다.
This will be described with reference to FIG. 6 and FIG. The process described in FIG. 4 is less likely to be used for performance enhancement in a virtual environment, so a description thereof will be omitted. However, those skilled in the art can easily derive a case in which the process described in FIG. 4 is used for performance improvement in a virtual environment from the relationship of FIGS. 3, 6, and 4 It is obvious.

도 6은 가상환경처럼 클라이언트가 특정 파일을 독점적으로 사용하는 환경에서 참여형 클라이언트의 파일 읽기 방법을 나타낸 동작 흐름도이다.6 is an operational flowchart illustrating a file reading method of a participant client in an environment where a client exclusively uses a specific file as in a virtual environment.

도 6을 참조하면, 클라이언트가 특정 파일을 독점적으로 사용하는 환경에서 참여형 클라이언트는 읽을 파일의 청크에 대한 메타데이터 정보가 로컬에 기저장되어 있는지 여부를 판단한다(S601).Referring to FIG. 6, in an environment where a client exclusively uses a specific file, the participating client determines whether metadata information about a chunk of a file to be read is stored locally (S601).

단계(S601)의 판단 결과, 메타데이터 정보가 로컬에 기저장되어 있으면 해당 데이터가 로컬에 있으므로 로컬 데이터를 활용하여 읽기 요청된 파일에 대한 읽기를 수행한다(S609).As a result of the determination in step S601, if the meta data information is locally stored, the read data is read using the local data because the data is locally stored (S609).

단계(S601)의 판단 결과, 로컬에 메타데이터 정보가 기저장되어 있지 아니하면, 해당 청크를 처음 읽는 경우이므로 파일을 읽기 위해 메타데이터 서버에게 읽고자 하는 파일의 청크 번호를 제공하면서 읽고자 하는 파일의 메타데이터를 요청한다(S602).As a result of the determination in step S601, if the meta data information is not stored locally, it is the first time to read the chunk. Therefore, the metadata server is provided with a chunk number of a file to be read, (S602).

단계(S602)의 요청에 대한 회신으로, 참여형 클라이언트는 메타데이터 서버로부터 파일의 메타데이터 정보(파일 속성 정보 및 해당 청크의 청크 정보)를 수신한다(S603).In response to the request of step S602, the participating client receives metadata information (file attribute information and chunk information of the chunk of the file) of the file from the metadata server (S603).

단계(S603)의 수신이 완료되면 참여형 클라이언트는 자신의 로컬에 수신한 메타데이터 정보(파일 속성 정보 및 해당 청크의 청크 정보)를 저장한다(S604).When the reception of the step S603 is completed, the participating client stores metadata information (file attribute information and chunk information of the corresponding chunk) received locally in its own client (S604).

또한, 참여형 클라이언트는 수신된 메타데이터 정보로부터 데이터를 읽을 서버를 선택(S605)하고, 선택된 데이터 서버에 데이터를 요청(S606)한 후, 데이터 서버로부터 데이터를 수신한다(S607). 단계(S607)의 수신이 완료되면 수신된 청크 데이터를 로컬에 저장하고 수신된 청크 데이터를 이용하여 읽기 요청된 파일에 대한 읽기를 수행한다(S608).
In step S605, the participating client selects a server to read data from the received metadata information, requests data from the selected data server in step S606, and receives data from the data server in step S607. When the reception of the step S607 is completed, the received chunk data is stored locally and the read requested file is read using the received chunk data (S608).

도 7은 가상환경처럼 클라이언트가 특정 파일을 독점적으로 사용하는 환경에서 메타데이터 서버가 클라이언트의 파일 읽기 요청을 처리하는 방법을 나타낸 동작 흐름도이다.FIG. 7 is a flowchart illustrating a method for a metadata server to process a client file read request in an environment where a client exclusively uses a specific file, such as a virtual environment.

도 7을 참조하면, 메타데이터 서버는 클라이언트로부터 읽고자 하는 파일의 청크번호와 함께 읽기 요청을 수신하면, 요청된 파일에 해당하는 메타데이터 정보가 존재하는지 여부를 판단한다(S701).Referring to FIG. 7, when the meta data server receives a read request with a chunk number of a file to be read from a client, it determines whether metadata information corresponding to the requested file exists (S701).

단계(S701)의 판단 결과 메타데이터 정보가 존재하지 아니하면, 존재하지 않는 파일이나 청크에 대한 요청이므로 에러를 클라이언트에게 전송한다(S704).If metadata information does not exist as a result of the determination in step S701, the request is for a file or a chunk that does not exist, so an error is transmitted to the client in step S704.

단계(S701)의 판단 결과 메타데이터 정보가 존재하면 해당 메타데이터 정보에서 파일 속성 정보와 요청된 청크 정보를 읽고(S702), 파일 속성 정보 및 청크 정보를 클라이언트에 전송(S703)한다.If it is determined in step S701 that the metadata information exists, the file attribute information and the requested chunk information are read from the corresponding metadata information (S702), and the file attribute information and chunk information are transmitted to the client (S703).

도 6 및 도 7에 도시된 읽기 방법 및 읽기 요청 처리 방법은, 가상 환경과 같이 클라이언트가 특정 파일을 독점적으로 사용하는 환경에서 클라이언트 및 메타데이터 서버가 불필요한 동작을 수행하지 아니하도록 함으로써 성능을 극대화할 수 있다.The reading method and the read request processing method shown in FIGS. 6 and 7 can maximize performance by preventing a client and a metadata server from performing unnecessary operations in an environment where a client exclusively uses a specific file, such as a virtual environment .

도 6 및 도 7에 도시된 예에서 가상머신을 실행하는 서버 호스트가 가상머신 이미지를 집중적으로 액세스하는 파일시스템의 클라이언트로 동작하는 가상환경을 중심으로 설명하였으나, 가상환경 이외에도 다양한 유사환경이 존재할 수 있고 본 발명의 권리범위는 가상환경에 한정되어서는 안 된다.
In the example shown in FIGS. 6 and 7, a server host running a virtual machine has been described as a virtual environment operating as a client of a file system that intensively accesses a virtual machine image. However, various similar environments may exist in addition to a virtual environment And the scope of rights of the present invention should not be limited to a virtual environment.

도 8은 본 발명의 일실시예에 따른 분산 파일시스템의 참여형 클라이언트의 파일 쓰기 방법을 나타낸 동작 흐름도이다.8 is a flowchart illustrating a method of writing a file to a participant client of a distributed file system according to an embodiment of the present invention.

도 8을 참조하면, 본 발명의 일실시예에 따른 분산 파일시스템의 참여형 클라이언트는 파일을 쓰기 위해 새로운 청크가 필요한지 여부를 판단한다(S801).Referring to FIG. 8, the participating client of the distributed file system according to an embodiment of the present invention determines whether a new chunk is required to write a file (S801).

단계(S810)의 판단 결과 새로운 청크가 필요하지 않다고 판단되면, 로컬 청크에 데이터를 쓴다(S805).If it is determined in step S810 that a new chunk is not needed, data is written to the local chunk (step S805).

단계(S805)의 판단 결과 새로운 청크가 필요하다고 판단되면, 참여형 클라이언트는 메타데이터 서버에게 쓰고자 하는 청크 정보(information on the chuck for writing) (예를 들어, 청크 아이디)를 제공하면서 청크 할당을 요청한다(S802).As a result of the determination in step S805, if it is determined that a new chunk is required, the participating client requests the metadata server to request the chunk allocation, while providing information on the chuck for writing (for example, a chunk ID) (S802).

단계(S802)의 요청에 대한 응답으로, 참여형 클라이언트는 메타데이터 서버로부터 청크 할당 결과 및 파일의 메타데이터 정보(파일 속성 정보 및 해당 청크의 청크 정보)를 수신한다(S803).In response to the request of step S802, the participating client receives the chunk allocation result and metadata information of the file (file attribute information and chunk information of the chunk) from the metadata server (S803).

단계(S803)의 수신이 완료되면, 참여형 클라이언트는 자신의 로컬에 새로운 청크를 할당하고 수신된 메타데이터 정보를 로컬에 저장한다(S804).When the reception of the step S803 is completed, the participating client allocates a new chunk to its local area and stores the received metadata information locally (S804).

이후, 참여형 클라이언트는 할당된 로컬 청크에 쓰기 요청된 데이터를 쓴다(S805).Then, the participating client writes the data requested to be written in the allocated local chunk (S805).

쓰기가 완료되면 쓰기에 상응하는 청크를 참여형 클라이언트가 수정했음을 알리기 위해, 수정된 청크의 청크 정보의 전역 생성 번호를 1 증가시켜 저장하고(S806), 메타데이터 서버에 전역 생성 번호 1 증가를 요청한다(S807).When the writing is completed, the global generation number of the chunk information of the modified chunk is incremented by one to indicate that the participating client has modified the chunk corresponding to the write (S806), and the global generation number 1 is requested to be incremented to the metadata server (S807).

이후, 참여형 클라이언트는 해당 청크를 저장하고 있는 데이터 서버들에 청크 수정을 전파하기 위해 데이터 복제를 수행한다(S808).Thereafter, the participating client performs data replication to propagate the chunk modification to the data servers storing the chunk (S808).

단계(S808)의 데이터 복제는 동기식 방법 또는 비동기식 방법 중 하나에 의해 수행될 수 있고, 데이터 복제 방법은 파일 시스템 설정을 통해 언제든지 변경이 가능하다.The data replication in step S808 may be performed by either synchronous or asynchronous methods, and the data replication method may be changed at any time through the file system configuration.

동기식 방법의 경우 참여형 클라이언트가 직접 해당 데이터 서버들 중 주 데이터 서버에 데이터 쓰기를 요청하게 된다. 이 경우, 주 데이터 서버는 데이터 쓰기 요청을 수신하면 데이터 쓰기를 수행하고, 나머지 데이터 서버들에의 복제를 연속적으로 수행한다. 반면, 비동기식 방법의 경우 참여형 클라이언트는 별도의 복제 쓰레드나 복제 프로세스를 구동하고 파일 쓰기 작업을 완료한다. 주 데이터 서버를 포함한 데이터 서버들은 데이터 쓰기 요청을 수신하면, 데이터 쓰기를 수행하고 메타데이터 서버에 해당 청크의 생성번호 증가를 요청한다. 메타데이터 서버는 청크 생성번호 증가 요청을 수신하면 이를 반영한다. 참여형 클라이언트가 로컬에 저장하고 있는 메타데이터에 해당 청크 생성번호 변경에 대한 반영은 불필요하다. 데이터 서버들에 데이터 쓰기를 요청하고 그 결과가 수신되면 해당 파일의 메타데이터 중 해당 청크의 해당 데이터 서버에 대응되는 생성 번호(도 2의 522-z-i) 증가를 메타데이터 서버에 요청한다.In the synchronous method, the participating client directly requests data write to the main data server among the data servers. In this case, when the main data server receives the data write request, it performs data writing and continuously replicates to the remaining data servers. On the other hand, in the asynchronous approach, the participating client runs a separate replication thread or replication process and completes the file write operation. When the data servers including the primary data server receive the data write request, they write data and request the metadata server to increase the generation number of the corresponding chunk. The metadata server reflects this when it receives a chunk creation number increase request. It is unnecessary to reflect the chunk generation number change to the metadata stored locally by the participating client. Requesting the data servers to write data, and when the result is received, requests the metadata server to increase the generation number (522-z-i in FIG. 2) corresponding to the corresponding data server of the chunk in the metadata of the corresponding file.

비참여형 클라이언트의 파일 쓰기 방법은 도 3, 도 4 및 도 8로부터 쉽게 도출되므로 자세한 설명은 생략한다.The file writing method of the non-participating client is easily derived from FIG. 3, FIG. 4, and FIG. 8, and a detailed description thereof will be omitted.

또한, 클라이언트의 파일 쓰기를 통해 메타데이터 서버가 수행하는 작업은 청크 할당 요청 처리 및 청크에 대한 생성 번호 수정 요청 처리가 있으며, 이는 도 5를 통해 설명한 처리 방법과 유사하며 공유 잠금(sharing lock) 대신 배타 잠금(exclusive lock)이 사용되는 것만 차이가 있으므로 자세한 설명은 생략한다.In addition, the operations performed by the metadata server through the writing of the client file include processing of a chunk allocation request and processing of request for modification of a generation number for a chunk, which is similar to the processing described with reference to FIG. 5, Exclusive explanation is omitted because exclusive lock is used only.

가상환경처럼 특정 클라이언트가 특정 파일을 독점적으로 사용하는 환경에서의 쓰기 과정 및 메타데이터 서버에서의 처리 과정은 도 3과 도 6, 도 5와 도 7의 관계로부터 쉽게 이해될 수 있다. 이를 간략히 설명하면, 특정 클라이언트가 특정 파일을 독점적으로 사용하는 환경에서는 메타데이터 서버에서 메타데이터 액세스시마다 잠금 사용이 불필요하고, 클라이언트에서 로컬에 저장된 데이터의 유효성 검사를 위해 메타데이터 서버로부터의 메타데이터를 획득하는 과정도 불필요하며, 수신 메타데이터의 전역 생성 번호와 로컬의 전역 생성 번호를 비교하는 과정도 불필요하다.The writing process in an environment in which a specific client exclusively uses a specific file, such as a virtual environment, and the process in the metadata server can be easily understood from the relationship of FIG. 3, FIG. 6, FIG. 5, and FIG. In this case, in a case where a specific client exclusively uses a specific file, there is no need to use a lock every time the metadata server accesses the metadata server. In order to validate the data stored locally on the client, The process of acquiring the metadata is unnecessary, and the process of comparing the global generation number of the received metadata with the local global generation number is also unnecessary.

한편, 파일 생성 연산은 메타데이터 서버에서 파일에 대한 파일 속성 정보만을 생성하고 이를 클라이언트에 전송함으로써 완료된다. 반면 파일 열기 연산은 메타데이터 서버에서 파일 속성 정보만을 읽어서 클라이언트에 전송함으로써 완료된다. 마지막으로 파일 닫기 연산은 클라이언트에서 해당 파일에 대한 메타데이터 정보 및 데이터 정보를 삭제하는 것으로 완료된다. 파일 생성, 읽기 및 닫기 연산에서 특정 속성 정보(예를 들어, 파일의 열기 수 등)의 수정이 수반되는 경우에는 메타데이터 서버에서 해당 메타데이터 정보의 파일 속성 정보에 대한 수정을 할 수 있다.On the other hand, the file creation operation is completed by generating only the file attribute information about the file in the metadata server and transmitting it to the client. On the other hand, the file open operation is completed by reading only the file property information from the metadata server and transmitting it to the client. Finally, the file close operation is completed by deleting the metadata information and the data information for the file from the client. In the case where the file creation, reading and close operations involve modification of specific attribute information (for example, the number of open files, etc.), the metadata server can modify the file attribute information of the corresponding metadata information.

파일 삭제 연산은 파일 쓰기 연산과 유사하므로 자세한 설명은 생략한다.
The file delete operation is similar to the file write operation, so a detailed description is omitted.

도 9는 본 발명의 일실시예에 따른 분산 파일시스템의 클라이언트 장치를 나타낸 블록도이다.9 is a block diagram showing a client apparatus of a distributed file system according to an embodiment of the present invention.

도 9를 참조하면, 본 발명의 일실시예에 따른 분산 파일시스템의 클라이언트 장치는 저장 여부 판단부(910), 파일 리드부(920), 메타데이터 수신부(930) 및 변경 여부 판단부(940)를 포함한다.9, the client apparatus of the distributed file system according to an embodiment of the present invention includes a storage determination unit 910, a file read unit 920, a metadata receiving unit 930, and a change determination unit 940, .

저장 여부 판단부(910)는 읽고자 하는 파일에 상응하는 청크의 전역 생성 번호를 포함하는 메타데이터 정보(제1 메타데이터 정보)가 로컬에 기저장되어있는지 여부를 판단한다.The storage determination unit 910 determines whether the metadata information (first metadata information) including the global generation number of the chunk corresponding to the file to be read is stored locally.

파일 리드부(920)는 상기 메타데이터 정보(제1 메타데이터 정보)가 로컬에 기저장되어 있는 경우, 상기 메타데이터 정보(제1 메타데이터 정보)에 상응하는 로컬 데이터를 이용하여 상기 파일에 대한 읽기를 수행한다. 실시예에 따라, 로컬에 메타데이터가 있어도 메타데이터 서버에서 메타데이터를 읽어서 비교를 수행하고 비교 결과에 따라 상기 파일에 대한 읽기를 수행할 수 있다.When the metadata information (first metadata information) is stored locally, the file lead unit 920 reads the local metadata corresponding to the metadata using the local data corresponding to the metadata information (first metadata information) Perform reading. According to an embodiment, even if there is metadata locally, metadata can be read from the metadata server to perform comparison, and reading of the file can be performed according to the comparison result.

메타데이터 수신부(930)는 메타데이터 서버로부터 상기 청크의 전역 생성 번호를 포함하는 메타데이터 정보(제2 메타데이터 정보)를 수신하고, 수신된 메타데이터 정보(제2 메타데이터 정보)를 로컬에 저장한다.The metadata receiving unit 930 receives metadata information (second metadata information) including the global generation number of the chunk from the metadata server, and stores the received metadata information (second metadata information) locally do.

실시예에 따라, 메타데이터 수신부(930)는 저장 여부 판단부의 판단 결과 메타데이터 정보가 기저장되어 있지 않은 경우 메타데이터 서버로부터 메타데이터 정보를 수신할 수도 있고, 메타데이터 정보가 기저장되어 있는 경우에도 메타데이터 정보에 대한 변경 여부를 판단하기 위해 메타데이터 서버로부터 메타데이터 정보를 수신할 수 있다.According to the embodiment, the metadata receiving unit 930 may receive the metadata information from the metadata server if the metadata information is not stored as a result of the determination by the storage determination unit, or may store the metadata information And may also receive metadata information from the metadata server to determine whether the metadata information is changed.

메타데이터 수신부(930)에 의해 메타데이터 서버로부터 새로운 메타데이터 정보가 수신되는 경우, 클라이언트는 수신된 메타데이터 정보에 상응하는 데이터 서버로부터 청크 데이터를 수신하고, 수신된 청크 데이터를 이용하여 상기 파일에 대한 읽기를 수행할 수 있다. 이 때, 메타데이터 서버로부터 메타데이터를 수신하는 경우라도, 기저장된 메타데이터와 전역 생성번호가 동일하다면, 청크 데이터 수신이 없을 수도 있다.When new metadata information is received from the metadata server by the metadata receiving unit 930, the client receives the chunk data from the data server corresponding to the received metadata information, and transmits the chunk data to the file You can read on. At this time, even if meta data is received from the metadata server, if the previously stored meta data and the global generation number are the same, there may be no reception of chunk data.

이 때, 메타데이터 정보(제 1 메타데이터 정보 및 제2 메타데이터 정보)는 파일 속성 정보 및 상기 파일에 속한 청크에 대한 청크 정보를 포함할 수 있다. 이 때, 파일 속성 정보는 상기 파일의 크기, 상기 청크의 크기, 상기 파일의 복제 수, 상기 파일의 소유자, 상기 파일의 접근 권한 중 하나 이상을 포함할 수 있다. 이 때, 청크 정보는 청크 아이디, 상기 전역 생성 번호, 및 청크 저장 서버 리스트를 포함할 수 있다. 이 때, 청크 저장 서버 리스트는 상기 청크를 저장하고 있는 데이터 서버들 각각의 데이터 서버 아이디, 청크 위치 아이디 및 생성 번호를 포함할 수 있다. 이 때, 생성 번호는 상응하는 청크에 변경이 발생할 때마다 1씩 증가할 수 있다.At this time, the metadata information (the first metadata information and the second metadata information) may include file attribute information and chunk information about chunks belonging to the file. At this time, the file attribute information may include at least one of the size of the file, the size of the chunk, the number of copies of the file, the owner of the file, and the access right of the file. At this time, the chunk information may include a chunk ID, the global generation number, and a chunk storage server list. At this time, the chunk storage server list may include a data server ID, a chunk location ID, and a generation number of each of the data servers storing the chunk. At this time, the generation number may be incremented by 1 each time a change is made to the corresponding chunk.

이 때, 전역 생성 번호는 상기 데이터 서버들에 상응하는 생성 번호들 중 가장 큰 값에 상응하는 것일 수 있다.At this time, the global generation number may correspond to the largest value among the generation numbers corresponding to the data servers.

변경 여부 판단부(940)는 로컬에 기저장된 메타데이터 정보(제1 메타데이터 정보)와 메타데이터 서버로부터 수신된 메타데이터 정보(제2 메타데이터 정보)에 각각 포함된 전역 생성 번호들을 비교하여 상기 청크에 대한 변경 여부를 판단한다.The change determination unit 940 compares the global generation numbers included in the locally stored metadata information (first metadata information) and the metadata information (second metadata information) received from the metadata server with each other, It is determined whether or not the chunk is changed.

파일 리드부(920)는 로컬에 저장된 메타데이터 정보(제1 메타데이터 정보)와 메타데이터 서버로부터 수신된 메타데이터 정보(제2 메타데이터 정보)에 각각 포함된 전역 생성 번호들이 동일한 경우에는 로컬 데이터를 이용하여 파일에 대한 읽기를 수행하고, 저장여부 판단부(910)의 판단 결과 메타데이터 정보(제1 메타데이터 정보)가 기저장되어있지 않은 경우나 전역 생성 번호들이 상이하여 청크가 변경된 것으로 판단되는 경우 수신된 메타데이터 정보(제2 메타데이터 정보)를 이용하여 데이터를 다운로드할 데이터 서버를 선택하고 선택된 데이터 서버로부터 청크 데이터를 수신하고 수신된 청크 데이터를 이용하여 파일에 대한 읽기를 수행할 수 있다.If the global generation numbers included in the metadata information (first metadata information) stored locally and the metadata information (second metadata information) received from the metadata server are the same, the file lead unit 920 reads the local data If the storage determination unit 910 determines that the metadata information (first metadata information) is not stored, or if the global generation numbers are different, it is determined that the chunk is changed (Second metadata information) to select a data server to download data from and receive chunk data from the selected data server and to read the file using the received chunk data have.

이 때, 데이터를 다운로드할 데이터 서버의 선택은 메타데이터 서버로부터 수신된 메타데이터 정보(제2 메타데이터 정보)에 포함된 전역 생성 번호와 동일한 생성 번호를 가지는 데이터 서버들만을 대상으로 할 수 있다.In this case, the selection of the data server to download data may be performed only on data servers having the same generation number as the global generation number included in the metadata information (second metadata information) received from the metadata server.

도 9에는 도시되지 아니하였으나, 분산 파일시스템의 클라이언트 장치는 데이터 쓰기를 위해 청크 필요 여부 판단부, 청크 할당 요청부, 청크 할당부, 데이터 라이팅부, 로컬 전역 번호 증가부, 전역 번호 증가 요청부 및 데이터 복제부를 더 포함할 수 있다.Although not shown in FIG. 9, the client apparatus of the distributed file system includes a chunk need determination unit, a chunk allocation request unit, a chunk allocation unit, a data writing unit, a local global number increase unit, a global number increase request unit, And may further include a data copying unit.

청크 필요 여부 판단부는 데이터를 쓰기 전에 새로운 청크가 필요한지 여부를 판단한다.The chunk necessity determination unit determines whether or not a new chunk is required before writing data.

청크 할당 요청부는 새로운 청크 할당이 필요한 경우 메타데이터 서버로 새로운 청크 할당을 요청한다.The chunk allocation request unit requests a new chunk allocation to the metadata server when a new chunk allocation is required.

청크 할당부는 메타데이터 서버로부터 청크 할당 결과 및 할당된 청크에 상응하는 메타데이터 정보를 수신하여 로컬에 새로운 청크를 할당하고 수신된 메타데이터를 저장한다.The chunk allocator receives meta data information corresponding to the chunk allocation result and the allocated chunk from the metadata server, allocates a new chunk locally, and stores the received meta data.

데이터 라이팅부는 로컬 청크에 데이터를 쓴다.The data writing unit writes data to the local chunk.

로컬 전역 번호 증가부는 쓰기된 데이터에 상응하는 청크의 전역 생성 번호를 1 증가시켜서 저장한다.The local global number increasing unit increments the global generation number of the chunk corresponding to the written data by 1 and stores it.

전역 번호 증가 요청부는 메타데이터 서버로 상기 데이터에 상응하는 메타데이터 정보의 전역 생성 번호 1 증가를 요청한다.The global number increase requesting unit requests the metadata server to increase the global generation number 1 of the metadata information corresponding to the data.

데이터 복제부는 상기 쓰기에 상응하는 데이터 복제를 수행한다.The data replication unit performs data replication corresponding to the writing.

데이터 복제가 동기식 방법 및 비동기식 방법에 의하여 수행될 수 있음은 앞서 설명한 바와 같다.
As described above, data replication can be performed by the synchronous method and the asynchronous method.

도 10은 본 발명의 일실시예에 따른 분산 파일시스템의 메타데이터 서버 장치를 나타낸 블록도이다.10 is a block diagram illustrating a metadata server apparatus of a distributed file system according to an embodiment of the present invention.

도 10을 참조하면, 본 발명의 일실시예에 따른 분산 파일시스템의 메타데이터 서버 장치는 존재 여부 판단부(1010), 메타데이터 전송부(1020), 에러 전송부(1030) 및 잠금 설정부(1040)를 포함한다.10, a metadata server apparatus of a distributed file system according to an embodiment of the present invention includes a presence determination unit 1010, a metadata transmission unit 1020, an error transmission unit 1030, and a lock setting unit 1040).

존재 여부 판단부(1010)는 읽기 또는 쓰기 요청된 파일에 상응하는 청크의 메타데이터 정보가 존재하는지 여부를 판단한다.The existence determination unit 1010 determines whether metadata information of chunks corresponding to the file requested to be read or written exists.

메타데이터 전송부(1020)는 존재 여부 판단부(1010)의 판단 결과 메타데이터 정보가 존재한다고 판단되는 경우 상기 메타데이터 정보에 포함된 파일 속성 정보 및 청크 정보를 클라이언트로 전송한다.The metadata transmission unit 1020 transmits the file attribute information and the chunk information included in the metadata information to the client when the existence determination unit 1010 determines that the metadata information exists.

이 때, 파일 속성 정보는 파일의 크기, 청크의 크기, 파일의 복제 수, 파일의 소유자, 파일의 접근 권한 중 하나 이상을 포함할 수 있다.At this time, the file attribute information may include at least one of the size of the file, the size of the chunk, the number of copies of the file, the owner of the file, and the access authority of the file.

이 때, 청크 정보는 청크 아이디, 전역 생성 번호 및 청크 저장 서버 리스트를 포함할 수 있다. 이 때, 청크 저장 서버 리스트는 상기 청크를 저장하고 있는 데이터 서버들 각각의 데이터 서버 아이디, 청크 위치 아이디 및 생성 번호를 포함할 수 있다. 이 때, 생성 번호는 상기 생성 번호에 상응하는 청크에 변경이 발생할 때마다 1씩 증가할 수 있다.At this time, the chunk information may include a chunk ID, a global generation number, and a chunk storage server list. At this time, the chunk storage server list may include a data server ID, a chunk location ID, and a generation number of each of the data servers storing the chunk. At this time, the generation number may be incremented by 1 each time a change is made to the chunk corresponding to the generation number.

이 때, 전역 생성 번호는 데이터 서버들에 상응하는 생성 번호들 중 가장 큰 값에 상응하는 것일 수 있다.At this time, the global generation number may correspond to the largest value among the generation numbers corresponding to the data servers.

에러 전송부(1030)는 존재 여부 판단부(1010)의 판단 결과 메타데이터 정보가 존재하지 않는 경우, 잘못된 요청이므로 에러를 전송한다.If there is no metadata information as a result of the determination by the existence determination unit 1010, the error transmission unit 1030 transmits an error because it is a wrong request.

잠금 설정부(1040)는 파일 속성 정보 및 청크에 대한 잠금을 설정한다. 이 때, 파일 읽기의 경우 공유 잠금(sharing lock)을, 파일 쓰기의 경우 배타 잠금(exclusive lock)을 설정할 수 있다.The lock setting unit 1040 sets a lock on the file attribute information and the chunk. At this time, a sharing lock can be set for the file reading, and an exclusive lock can be set for the file writing.

메타데이터 전송부(1020)는 특정 클라이언트가 특정 파일을 독점적으로 사용하는 조건이 아닌 경우 잠금 설정부(1040)에 의하여 잠금이 설정된 경우에만 파일 속성 정보 및 청크 정보를 액세스할 수 있다.The metadata transmitting unit 1020 can access the file attribute information and the chunk information only when the lock setting unit 1040 sets the lock when the specific client does not use the specific file exclusively.

도 10에 도시된 메타데이터 서버 장치는 복수의 메타데이터 서버들로 구성된 메타데이터 서버 클러스터에 상응하는 것일 수 있다. 이 때, 복수의 메타데이터 서버들 각각은 할당된 메타데이터 정보만을 관리할 수 있다.
The metadata server apparatus shown in FIG. 10 may correspond to a metadata server cluster composed of a plurality of metadata servers. At this time, each of the plurality of metadata servers can manage only the allocated metadata information.

이상에서와 같이 본 발명에 따른 분산 파일시스템에서 클라이언트가 데이터 저장에 참여하는 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the apparatus and method for the client to participate in data storage in the distributed file system according to the present invention are not limited to the configuration and method of the embodiments described above, All or some of the embodiments may be selectively combined.

100-1, ..., 100-m: 참여형 클라이언트
110-1, ..., 110-m: 참여형 클라이언트의 로컬 스토리지
200-1, ..., 200-n: 비참여형 클라이언트
300: 네트워크 스위치
400-1, ..., 400-x: 데이터 서버
410-1, ..., 410-x: 데이터 서버의 로컬 스토리지
500-1, ..., 500-y: 메타데이터 서버
510-1, ..., 510-y: 메타데이터 서버의 로컬 스토리지
100-1, ..., 100-m:
110-1, ..., 110-m: local storage of participating clients
200-1, ..., 200-n: non-participant client
300: Network switch
400-1, ..., 400-x: data server
410-1, ..., 410-x: local storage of the data server
500-1, ..., 500-y: metadata server
510-1, ..., 510-y: local storage of the metadata server

Claims (20)

읽고자 하는 파일에 상응하는 청크의 전역 생성 번호를 포함하는 제1 메타데이터 정보가 내부에 기저장되어있는지 여부를 판단하는 저장 여부 판단부; 및
상기 제1 메타데이터 정보가 기저장되어있는 경우, 로컬 데이터에 해당하는 상기 제1 메타데이터 정보를 이용하여 상기 파일에 대한 읽기를 수행하는 파일 리드부
를 포함하는 것을 특징으로 하는 분산 파일시스템의 클라이언트 장치.
A storage determination unit for determining whether first metadata information including a global generation number of a chunk corresponding to a file to be read is stored in the storage unit; And
A file read unit for reading the file using the first metadata information corresponding to the local data when the first metadata information is stored in advance,
And a client device for distributing the file system.
청구항 1에 있어서,
상기 분산 파일시스템의 클라이언트 장치는
상기 청크의 전역 생성 번호를 포함하는 제2 메타데이터 정보를 수신하고 상기 제2 메타데이터 정보를 로컬에 저장하는 메타데이터 수신부를 더 포함하고,
상기 파일 리드부는
상기 제2 메타데이터 정보에 상응하는 데이터 서버로부터 청크 데이터를 수신하고, 수신된 상기 청크 데이터를 이용하여 상기 파일에 대한 읽기를 수행하는 것을 특징으로 하는 분산 파일시스템의 클라이언트 장치.
The method according to claim 1,
The client device of the distributed file system
Further comprising: a metadata receiving unit for receiving second metadata information including a global generation number of the chunk and storing the second metadata information locally,
The file lead portion
Receives chunk data from a data server corresponding to the second metadata information, and reads the chunk data using the received chunk data.
청구항 2에 있어서,
상기 제1 메타데이터 정보 및 제2 메타데이터 정보는 각각
상기 파일의 크기, 상기 청크의 크기, 상기 파일의 복제 수, 상기 파일의 소유자, 상기 파일의 접근 권한 중 하나 이상을 포함하는 파일 속성 정보; 및
상기 파일에 속한 상기 청크에 대한 청크 정보
를 포함하는 것을 특징으로 하는 분산 파일시스템의 클라이언트 장치.
The method of claim 2,
The first metadata information and the second metadata information are respectively
File attribute information including at least one of a size of the file, a size of the chunk, a number of copies of the file, an owner of the file, and an access right of the file; And
The chunk information for the chunk belonging to the file
And a client device for distributing the file system.
청구항 3에 있어서,
상기 청크 정보는 청크 아이디, 상기 전역 생성 번호, 및 청크 저장 서버 리스트를 포함하고,
상기 청크 저장 서버 리스트는 상기 청크를 저장하고 있는 데이터 서버들 각각의 데이터 서버 아이디, 청크 위치 아이디 및 생성 번호를 포함하고,
상기 생성 번호는 상기 생성 번호에 상응하는 청크에 변경이 발생할 때마다 1씩 증가하는 것을 특징으로 하는 분산 파일시스템의 클라이언트 장치.
The method of claim 3,
Wherein the chunk information includes a chunk ID, the global generation number, and a chunk storage server list,
Wherein the chunk storage server list includes a data server ID, a chunk location ID, and a generation number of each of the data servers storing the chunk,
Wherein the generation number is incremented by 1 each time a change is made to a chunk corresponding to the generation number.
청구항 4에 있어서,
상기 전역 생성 번호는 상기 데이터 서버들에 상응하는 생성 번호들 중 가장 큰 값에 상응하는 것을 특징으로 하는 분산 파일시스템의 클라이언트 장치.
The method of claim 4,
Wherein the global generation number corresponds to a largest value among generation numbers corresponding to the data servers.
청구항 5에 있어서,
상기 분산 파일시스템의 클라이언트 장치는
상기 제1 메타데이터 정보에 포함된 제1 전역 생성 번호와 상기 제2 메타데이터 정보에 포함된 제2 전역 생성 번호를 비교하여 상기 청크에 대한 변경 여부를 판단하는 변경 여부 판단부를 더 포함하는 것을 특징으로 하는 분산 파일시스템의 클라이언트 장치.
The method of claim 5,
The client device of the distributed file system
And a change determining unit for determining whether the chunk is changed by comparing a first global generation number included in the first metadata information with a second global generation number included in the second metadata information, The client device of the distributed file system.
청구항 6에 있어서,
상기 파일 리드부는
상기 제1 전역 생성 번호와 상기 제2 전역 생성 번호가 동일한 경우에 상기 제1 메타데이터 정보를 이용하여 상기 파일에 대한 읽기를 수행하고,
상기 제1 전역 생성 번호와 상기 제2 전역 생성 번호가 상이한 경우에 상기 청크가 변경된 것으로 판단하고 상기 제2 메타데이터 정보에 상응하는 데이터 서버로부터 청크 데이터를 수신하고, 수신된 상기 청크 데이터를 이용하여 상기 파일에 대한 읽기를 수행하는 것을 특징으로 하는 분산 파일시스템의 클라이언트 장치.
The method of claim 6,
The file lead portion
If the first global generation number is identical to the second global generation number, reading the file using the first metadata information,
When the first global generation number is different from the second global generation number, determining that the chunk has changed and receiving chunk data from a data server corresponding to the second metadata information, and using the received chunk data Wherein the reading of the file is performed by the client device.
청구항 7에 있어서,
상기 제2 메타데이터 정보에 상응하는 데이터 서버는
상기 제2 메타데이터 정보에 포함된 상기 제2 전역 생성 번호와 동일한 생성 번호에 상응하는 것을 특징으로 하는 분산 파일시스템의 클라이언트 장치.
The method of claim 7,
The data server corresponding to the second metadata information
Wherein the second generation number corresponds to a generation number identical to the second global generation number included in the second metadata information.
청구항 1에 있어서,
상기 분산 파일시스템의 클라이언트 장치는
로컬 청크에 데이터를 쓰는 데이터 라이팅부;
상기 데이터에 상응하는 청크의 전역 생성 번호를 1 증가시켜서 저장하는 로컬 전역 번호 증가부;
메타데이터 서버로 상기 데이터에 상응하는 메타데이터 정보의 전역 생성번호 1 증가를 요청하는 전역 번호 증가 요청부; 및
상기 쓰기에 상응하는 데이터 복제를 수행하는 데이터 복제부를 더 포함하는 것을 특징으로 하는 분산 파일시스템의 클라이언트 장치.
The method according to claim 1,
The client device of the distributed file system
A data writing unit for writing data to a local chunk;
A local global number increasing unit for increasing the global generation number of the chunk corresponding to the data by 1;
A global number increase request unit for requesting the metadata server to increase the global generation number 1 of the metadata information corresponding to the data; And
And a data replication unit for performing data replication corresponding to the write.
청구항 9에 있어서,
상기 분산 파일시스템의 클라이언트 장치는
상기 데이터를 쓰기 전에 새로운 청크가 필요한지 여부를 판단하는 청크 필요 판단부;
상기 새로운 청크가 필요한 경우 상기 메타데이터 서버로 청크 할당을 요청하는 청크 할당 요청부; 및
상기 메타데이터 서버로부터 청크 할당 결과 및 할당된 청크에 상응하는 메타데이터 정보를 수신하고 로컬에 새로운 청크를 할당하고 수신된 메타데이터를 저장하는 청크 할당부를 더 포함하는 것을 특징으로 하는 분산 파일시스템의 클라이언트 장치.
The method of claim 9,
The client device of the distributed file system
A chunk need determination unit for determining whether a new chunk is required before writing the data;
A chunk allocation request unit for requesting a chunk allocation to the metadata server when the new chunk is needed; And
Further comprising a chunk allocation unit for receiving the chunk allocation result from the metadata server and the metadata information corresponding to the allocated chunk, allocating new chunks locally, and storing the received metadata. Device.
읽기 요청된 파일에 상응하는 청크의 메타데이터 정보가 존재하는지 여부를 판단하는 존재 여부 판단부; 및
상기 메타데이터 정보가 존재하는 경우, 상기 메타데이터 정보에 포함된 파일 속성 정보 및 청크 정보를 전송하는 메타데이터 전송부를 포함하고,
상기 파일 속성 정보는 상기 파일의 크기, 상기 청크의 크기, 상기 파일의 복제 수, 상기 파일의 소유자, 상기 파일의 접근 권한 중 하나 이상을 포함하는 것을 특징으로 하는 분산 파일시스템의 메타데이터 서버 장치.
An existence determination unit for determining whether metadata information of a chunk corresponding to a read requested file exists; And
And a metadata transmitting unit for transmitting the file attribute information and the chunk information included in the metadata information when the metadata information exists,
Wherein the file attribute information includes at least one of a size of the file, a size of the chunk, a number of copies of the file, an owner of the file, and an access right of the file.
청구항 11에 있어서,
상기 청크 정보는
청크 아이디, 전역 생성 번호, 및 청크 저장 서버 리스트를 포함하고,
상기 청크 저장 서버 리스트는 상기 청크를 저장하고 있는 데이터 서버들 각각의 데이터 서버 아이디, 청크 위치 아이디 및 생성 번호를 포함하고,
상기 생성 번호는 상기 생성 번호에 상응하는 청크에 변경이 발생할 때마다 1씩 증가하는 것을 특징으로 하는 분산 파일시스템의 메타데이터 서버 장치.
The method of claim 11,
The chunk information
A chunk ID, a global generation number, and a chunk storage server list,
Wherein the chunk storage server list includes a data server ID, a chunk location ID, and a generation number of each of the data servers storing the chunk,
Wherein the generation number is incremented by 1 each time a change is made to a chunk corresponding to the generation number.
청구항 12에 있어서,
상기 분산 파일시스템의 메타데이터 서버 장치는
상기 메타데이터 정보가 존재하지 않는 경우, 에러를 전송하는 에러 전송부; 및
상기 파일 속성 정보 및 상기 청크에 대한 잠금을 설정하는 잠금 설정부를 더 포함하고,
상기 메타데이터 전송부는
상기 잠금이 설정된 경우에만 상기 파일 속성 정보 및 상기 청크 정보를 액세스하는 것을 특징으로 하는 분산 파일시스템의 메타데이터 서버 장치.
The method of claim 12,
The metadata server apparatus of the distributed file system
An error transmission unit for transmitting an error if the metadata information does not exist; And
Further comprising a lock setting unit for setting the file attribute information and the lock for the chunk,
The metadata transmission unit
And accesses the file attribute information and the chunk information only when the lock is set.
청구항 13에 있어서,
상기 전역 생성 번호는 상기 데이터 서버들에 상응하는 생성 번호들 중 가장 큰 값에 상응하는 것을 특징으로 하는 분산 파일시스템의 메타데이터 서버 장치.
14. The method of claim 13,
Wherein the global generation number corresponds to a largest value among generation numbers corresponding to the data servers.
청구항 14에 있어서,
상기 메타데이터 서버 장치는
복수의 메타데이터 서버들로 구성된 메타데이터 서버 클러스터에 상응하며, 상기 복수의 메타데이터 서버들 각각은 할당된 상기 메타데이터 정보만을 관리하는 것을 특징으로 하는 분산 파일시스템의 메타데이터 서버 장치.
15. The method of claim 14,
The metadata server apparatus
Wherein the plurality of metadata servers correspond to a metadata server cluster composed of a plurality of metadata servers, and each of the plurality of metadata servers manages only the metadata information allocated thereto.
읽고자 하는 파일에 상응하는 청크의 전역 생성 번호를 포함하는 제1 메타데이터 정보가 내부에 기저장되어있는지 여부를 판단하는 단계; 및
상기 제1 메타데이터 정보가 기저장되어있는 경우, 로컬 데이터에 해당하는 상기 제1 메타데이터 정보를 이용하여 상기 파일에 대한 읽기를 수행하는 단계
를 포함하는 것을 특징으로 하는 분산 파일시스템의 클라이언트의 파일 읽기 방법.
Determining whether or not first metadata information including a global generation number of a chunk corresponding to a file to be read is stored in advance; And
Performing reading of the file using the first metadata information corresponding to local data when the first metadata information is stored in advance
And reading the file of the client in the distributed file system.
청구항 16에 있어서,
상기 파일 읽기 방법은
상기 청크의 전역 생성 번호를 포함하는 제2 메타데이터 정보를 수신하여 로컬에 저장하는 단계를 더 포함하고,
상기 파일에 대한 읽기를 수행하는 단계는
상기 제2 메타데이터 정보에 상응하는 데이터 서버로부터 청크 데이터를 수신하고, 수신된 상기 청크 데이터를 이용하여 상기 파일에 대한 읽기를 수행하는 것을 특징으로 하는 분산 파일시스템의 클라이언트의 파일 읽기 방법.
18. The method of claim 16,
The file reading method
Further comprising receiving and locally storing second metadata information including a global generation number of the chunk,
The step of reading the file
Receiving chunk data from a data server corresponding to the second metadata information, and reading the file using the received chunk data.
청구항 17에 있어서,
상기 제1 메타데이터 정보 및 제2 메타데이터 정보는 각각
상기 파일의 크기, 상기 청크의 크기, 상기 파일의 복제 수, 상기 파일의 소유자, 상기 파일의 접근 권한 중 하나 이상을 포함하는 파일 속성 정보; 및
상기 파일에 속한 상기 청크에 대한 청크 정보
를 포함하는 것을 특징으로 하는 분산 파일시스템의 클라이언트의 파일 읽기 방법.
18. The method of claim 17,
The first metadata information and the second metadata information are respectively
File attribute information including at least one of a size of the file, a size of the chunk, a number of copies of the file, an owner of the file, and an access right of the file; And
The chunk information for the chunk belonging to the file
And reading the file of the client in the distributed file system.
읽기 요청된 파일에 상응하는 청크의 메타데이터 정보가 존재하는지 여부를 판단하는 단계; 및
상기 메타데이터 정보가 존재하는 경우, 상기 메타데이터 정보에 포함된 파일 속성 정보 및 청크 정보를 전송하는 단계를 포함하고,
상기 파일 속성 정보는 상기 파일의 크기, 상기 청크의 크기, 상기 파일의 복제 수, 상기 파일의 소유자, 상기 파일의 접근 권한 중 하나 이상을 포함하는 것을 특징으로 하는 분산 파일시스템의 메타데이터 서버 장치의 읽기 요청 처리 방법.
Determining whether metadata information of a chunk corresponding to a read requested file exists; And
And transmitting file attribute information and chunk information included in the metadata information when the metadata information exists,
Wherein the file attribute information includes at least one of a size of the file, a size of the chunk, a number of copies of the file, an owner of the file, and an access right of the file. How to handle read requests.
청구항 19에 있어서,
상기 청크 정보는
청크 아이디, 전역 생성 번호, 및 청크 저장 서버 리스트를 포함하고,
상기 청크 저장 서버 리스트는 상기 청크를 저장하고 있는 데이터 서버들 각각의 데이터 서버 아이디, 청크 위치 아이디 및 생성 번호를 포함하고,
상기 생성 번호는 상기 생성 번호에 상응하는 청크에 변경이 발생할 때마다 1씩 증가하는 것을 특징으로 하는 분산 파일시스템의 메타데이터 서버 장치의 읽기 요청 처리 방법.
The method of claim 19,
The chunk information
A chunk ID, a global generation number, and a chunk storage server list,
Wherein the chunk storage server list includes a data server ID, a chunk location ID, and a generation number of each of the data servers storing the chunk,
Wherein the generation number is incremented by 1 each time a change is made to a chunk corresponding to the generation number.
KR1020120067505A 2011-10-24 2012-06-22 Apparatus and method for client's participating in data storage of distributed file system KR101601877B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/602,783 US9378218B2 (en) 2011-10-24 2012-09-04 Apparatus and method for enabling clients to participate in data storage in distributed file system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020110109001 2011-10-24
KR20110109001 2011-10-24

Publications (2)

Publication Number Publication Date
KR20130045159A KR20130045159A (en) 2013-05-03
KR101601877B1 true KR101601877B1 (en) 2016-03-09

Family

ID=48657395

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120067505A KR101601877B1 (en) 2011-10-24 2012-06-22 Apparatus and method for client's participating in data storage of distributed file system

Country Status (1)

Country Link
KR (1) KR101601877B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190058993A (en) * 2017-11-22 2019-05-30 한국전자통신연구원 Apparatus for supporting file i/o based on erasure coding in distributed file system and the method for the same

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102169867B1 (en) * 2014-01-22 2020-10-26 한국전자통신연구원 Distributed file system for providing the file-based snapshot and method thereof
KR101672901B1 (en) * 2014-12-03 2016-11-07 충북대학교 산학협력단 Cache Management System for Enhancing the Accessibility of Small Files in Distributed File System
KR102350765B1 (en) * 2015-09-11 2022-01-12 삼성에스디에스 주식회사 System and method for managing data de-duplication dictionary
KR102033401B1 (en) * 2016-01-05 2019-11-08 한국전자통신연구원 Distributed file system and method for creating files effectively

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292705A1 (en) 2008-05-20 2009-11-26 International Business Machines Corporation Efficient support of consistent cyclic search with read-copy update and parallel updates
US20100161897A1 (en) 2008-12-22 2010-06-24 Electronics And Telecommunications Research Institute Metadata server and disk volume selecting method thereof

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100048130A (en) * 2008-10-30 2010-05-11 주식회사 케이티 Distributed storage system based on metadata cluster and method thereof
KR101626117B1 (en) * 2009-06-22 2016-05-31 삼성전자주식회사 Client, brokerage sever and method for providing cloud storage

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090292705A1 (en) 2008-05-20 2009-11-26 International Business Machines Corporation Efficient support of consistent cyclic search with read-copy update and parallel updates
US20100161897A1 (en) 2008-12-22 2010-06-24 Electronics And Telecommunications Research Institute Metadata server and disk volume selecting method thereof

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190058993A (en) * 2017-11-22 2019-05-30 한국전자통신연구원 Apparatus for supporting file i/o based on erasure coding in distributed file system and the method for the same
KR102252187B1 (en) 2017-11-22 2021-05-14 한국전자통신연구원 Apparatus for supporting file i/o based on erasure coding in distributed file system and the method for the same

Also Published As

Publication number Publication date
KR20130045159A (en) 2013-05-03

Similar Documents

Publication Publication Date Title
US9619543B1 (en) Replicating in virtual desktop infrastructure
JP5276218B2 (en) Convert LUNs to files or files to LUNs in real time
JP5411250B2 (en) Data placement according to instructions to redundant data storage system
US11157457B2 (en) File management in thin provisioning storage environments
US9378218B2 (en) Apparatus and method for enabling clients to participate in data storage in distributed file system
US10747673B2 (en) System and method for facilitating cluster-level cache and memory space
US8930313B2 (en) System and method for managing replication in an object storage system
CN106164870B (en) The memory damage detection of distributed shared memory application is supported
US20130275708A1 (en) Computer product, computing device, and data migration method
US8631209B2 (en) Reusable content addressable stores as building blocks for creating large scale storage infrastructures
CN106446159B (en) A kind of method of storage file, the first virtual machine and name node
US20210216213A1 (en) Optimizing write io bandwidth and latency in an active-active clustered system using storage object affinity to a single storage node
KR101601877B1 (en) Apparatus and method for client's participating in data storage of distributed file system
JP2010074604A (en) Data access system, data access method and data access program
CN104067240A (en) Block level storage
US10936499B2 (en) Method, device and computer programme product for storage management
JP2014044553A (en) Program, information processing device, and information processing system
US10860224B2 (en) Method and system for delivering message in storage system
JP2015529862A (en) Computer system and volume management method for computer system
US11216204B2 (en) Degraded redundant metadata, DRuM, technique
US7484038B1 (en) Method and apparatus to manage storage devices
US7493458B1 (en) Two-phase snap copy
US11327895B1 (en) Protocol for processing requests that assigns each request received by a node a sequence identifier, stores data written by the request in a cache page block, stores a descriptor for the request in a cache page descriptor, and returns a completion acknowledgement of the request
US10191690B2 (en) Storage system, control device, memory device, data access method, and program recording medium
KR100472207B1 (en) RAID control system for Sharing Logical Disk Units by Multiple RAID Controllers

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200224

Year of fee payment: 5