KR101441059B1 - Method for effective data storage in distributed file system - Google Patents

Method for effective data storage in distributed file system Download PDF

Info

Publication number
KR101441059B1
KR101441059B1 KR1020120150101A KR20120150101A KR101441059B1 KR 101441059 B1 KR101441059 B1 KR 101441059B1 KR 1020120150101 A KR1020120150101 A KR 1020120150101A KR 20120150101 A KR20120150101 A KR 20120150101A KR 101441059 B1 KR101441059 B1 KR 101441059B1
Authority
KR
South Korea
Prior art keywords
data
original file
servers
size
storing
Prior art date
Application number
KR1020120150101A
Other languages
Korean (ko)
Other versions
KR20140080919A (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 KR1020120150101A priority Critical patent/KR101441059B1/en
Publication of KR20140080919A publication Critical patent/KR20140080919A/en
Application granted granted Critical
Publication of KR101441059B1 publication Critical patent/KR101441059B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode

Landscapes

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

Abstract

본 발명은 분산 파일 시스템에서 크기가 큰 자료는 삭제 코드(erasure code) 방식을 이용하여 여러 개의 조각(slice)로 분할하여 적어도 2개 이상의 서버에 분할하여 저장하고, 크기가 작은 자료는 미러 방식을 이용하여 원 파일과 동일한 크기의 복제본을 추가로 저장하는 분산 파일 시스템에서 효율적인 자료 저장 방법을 제공하기 위한 것으로서, 데이터를 저장하기 위한 저장 공간을 갖는 로컬 스토리지를 포함하는 적어도 2개 이상의 서버로 구성되는 분산 파일 시스템의 분산 파일 운용 방법에 있어서, (A) 입력되는 원 파일의 크기를 미리 정의되어 있는 임계치와 비교하는 단계와, (B) 상기 비교결과, 원 파일의 크기가 설정된 임계치보다 크면 삭제 코드(erasure code) 방식을 이용하여 여러 개의 조각(slice)로 분할하여 적어도 2개 이상의 서버에 분할하여 저장하는 단계와, (C) 상기 비교결과, 원 파일의 크기가 설정된 임계치보다 작거나 같으면, 미러 방식을 이용하여 원 파일과 동일한 크기의 크기가 작은 데이터 복제본을 추가로 저장하는 단계를 포함하여 이루어지는데 있다. In the distributed file system according to the present invention, a large size data is divided into a plurality of slices by using an erasure code method and is divided into at least two or more servers, And a local storage having a storage space for storing data, the method comprising the steps of: (a) storing a copy of the original file; A method of operating a distributed file system, the method comprising the steps of: (A) comparing a size of an original file to be input with a predetermined threshold; and (B) if the size of the original file is greater than a predetermined threshold, (slice) by using an erasure code method and divided into at least two or more servers If the size of the original file is smaller than or equal to a preset threshold value, storing a data copy having the same size as that of the original file using the mirror method is further included in the step (C) have.

Description

분산 파일 시스템에서 효율적인 자료 저장 방법{Method for effective data storage in distributed file system}[0001] The present invention relates to an efficient data storage method in a distributed file system,

본 발명은 분산 파일 시스템에서 자료를 저장하는 방법에 관한 것으로, 특히 분산 파일 시스템에서 미러 방식 및 삭제 코드(erasure code) 방식을 혼용해서 사용자의 자료를 효율적으로 저장하는 방법에 관한 것이다.The present invention relates to a method for storing data in a distributed file system, and more particularly, to a method for efficiently storing user data by using a mirror method and an erasure code method in a distributed file system.

네트워크를 이용하여 다수의 컴퓨터들을 연결함으로써 사용자에게 통합된 파일 시스템 환경을 제공해 주는 분산 파일 시스템은 다양한 인터넷 서비스 환경에서 사용되고 있다. 사용자의 참여로 새롭고 다양해지는 인터넷 서비스들로 인해 분산 파일 시스템에 요구되는 기능들은 더욱 많아지고 있다. 이러한 서비스 중 일부는 파일의 읽기뿐만 아니라 파일의 내용 변경, 내용 추가를 필요로 하고 있으며, 이러한 사용자의 요구를 만족시키기 위해 지속적으로 변화하고 있다. 특히, 분산 파일 시스템은 파일의 읽기 성능에 저하 없이 변경, 추가의 기능을 제공하도록 하면서 파일을 동시에 접근하는 다수의 클라이언트들에 의해 메타 데이터의 일관성이 깨지지 않도록 보장하는 것이 매우 중요하다.A distributed file system that provides a consolidated file system environment to a user by connecting a plurality of computers using the network is used in various internet service environments. With the participation of users, new and diverse Internet services are increasingly required for distributed file systems. Some of these services require not only the reading of files, but also the contents of files and the addition of contents, and are constantly changing to meet the needs of such users. In particular, it is very important to ensure that the distributed file system does not break the consistency of the metadata by multiple clients accessing the file at the same time, while providing the change and additional functions without compromising file read performance.

이와 같은 분산 파일 시스템 내에는 동일한 파일을 동시에 접근하는 다수의 클라이언트들이 존재하기 때문에 여러 데이터 서버에 존재하는 파일 데이터에 대해 클라이언트가 올바르게 접근할 수 있도록 메타 데이터 정보를 일관되게 유지시켜야 한다. Since there are a number of clients accessing the same file simultaneously in the distributed file system, the metadata information must be consistently maintained so that the client can access the file data existing in various data servers correctly.

예로서, A라는 파일이 데이터 서버 D1, D2, D3에 저장되어 있고, 파일 A를 읽고자 하는 클라이언트 C1과 파일 A에 추가하고자 하는 클라이언트 C2, C3이 동시에 존재한다면, 클라이언트 C1은 메타 데이터 서버 M에 있는 메타 데이터의 정보를 얻을 할 것이고, 클라이언트 C2, C3은 메타 데이터 서버 M에 있는 메타 데이터의 정보를 변경하려 할 것이다. 이때, 클라이언트 C2가 마지막 블록 정보를 블록 식별자를 쓰는 중간에 클라이언트 C1이 마지막 블록 정보의 블록 식별자를 읽는다면, 클라이언트 C2는 잘못된 블록 식별자로 인해 혼란을 겪게 될 것이다. For example, if a file A is stored in the data servers D1, D2, and D3 and the client C1 that wants to read file A and the clients C2 and C3 that want to add to file A are present at the same time, And clients C2 and C3 will try to change the information of the metadata in the metadata server M. At this time, if the client C1 reads the block identifier of the last block information while the client C2 writes the block identifier to the last block information, the client C2 will be confused by the erroneous block identifier.

따라서, 이러한 문제를 해결하기 위해서는 동일한 파일에 동시에 접근하는 다수의 클라이언트들을 제어하기 위한 방법이 요구되며, 동시에 성능의 저하를 최소화할 수 있도록 하여야 할 것이다.Accordingly, in order to solve such a problem, a method for controlling a plurality of clients simultaneously accessing the same file is required, and at the same time, the degradation of the performance should be minimized.

한편, 분산 파일 시스템은 데이터의 컨스턴트(constant)를 유지할 수 있도록 하기 위해 미러 방식을 이용하고 있다. 이는 원 파일 외에 또 다른 데이터의 복제본을 적어도 하나 이상 추가로 저장하고 있다가, 원 파일에 오류나 손실이 발생되면 미리 저장하고 있던 복제본을 이용하여 원 파일을 복구하는 방식이다. 이에 따라 기존의 분산 파일 시스템은 원 파일과 함께 복제본을 추가로 저장하고 있어야 하며, 또한 이러한 복제본은 원 파일과 동일한 데이터 크기를 갖고 있어서, 분산 파일 시스템 내에 원 파일의 저장 공간은 최소 2배 이상의 많은 저장 공간이 요구되는 문제점이 있었다.On the other hand, the distributed file system uses a mirror method to maintain the constant of the data. In this case, at least one copy of another data is stored in addition to the original file, and if an error or loss occurs in the original file, the original file is recovered using the previously stored copy. Therefore, the existing distributed file system must store additional copies with the original file, and these replicas have the same data size as the original file, so that the storage space of the original file in the distributed file system is at least twice as many A storage space is required.

이러한 문제점을 해결하기 위한 방법으로 등록특허공보 제10-1128998호(패리티 데이터를 이용한 분산 파일 운용 방법)에서는 추가로 복제본을 이용하지 않고, 입력되는 원 파일을 적어도 하나 이상의 데이터로 분할하고, 분할된 데이터에 각각 패리티 데이터를 결합한 분할 데이터를 다수 개 생성하여 적어도 2개 이상의 서버로 분할하여 저장함으로써, 복제본에 따른 저장 공간의 낭비를 막을 수 있을 뿐만 아니라, 원 파일에 오류나 손실이 발생되면 복수의 서버에 각각 저장되어 있는 분할 데이터의 패리티 데이터를 이용하여 원 파일을 복구하여 데이터의 컨스턴트도 유지할 수 있는 삭제 코드(erasure code) 방식이 기재되어 있다.As a method for solving such a problem, Japanese Laid-Open Patent Publication No. 10-1128998 (distributed file operation method using parity data) divides an original file to be input into at least one data without using a further copy, A plurality of pieces of divided data obtained by combining parity data with data are divided and stored into at least two or more servers so that waste of storage space according to replicas can be prevented. In addition, when an error or loss occurs in the original file, An erasure code method is disclosed in which the original file can be restored by using the parity data of the divided data stored in the erase code storage unit and the constants of the data can be maintained.

그러나 이러한 삭제 코드(erasure code) 방식의 경우는 원 파일이 어느 정도 큰 경우에는 복제본에 따른 저장 공간의 낭비를 막을 수 있는 효과를 나타낼 수 있으나, 원 파일의 크기가 작은 경우에는 다수개의 데이터로 분할하고, 패리티 데이터와 결합하여 복수의 서버에 분할하여 저장하여야 함에 따라, 자료를 저장함에 있어 복잡하고 많은 절차들이 발생됨은 물론, 이에 반해 저장 공간의 효과는 미비한 수준에 불과하다. 또한 원 파일의 복구에 있어서도 삭제 코드(erasure code) 방식의 경우는 분할되어 저장된 복수의 서버에서 해당 데이터를 모두 입력 받아야 처리 가능함에 따라 메타 데이터 서버(MDS)에 저장되는 메타 데이터의 정보의 양이 많아지게 되고 분할된 데이터를 다시 결합하여 복구해야 하는 등 그 과정이 매우 복잡해지는 문제점이 발생된다.However, in the case of the erasure code method, it is possible to prevent waste of storage space according to the replica when the original file is large to some extent. However, when the original file is small, In addition, since the data is divided and stored in a plurality of servers in combination with the parity data, a complicated and many procedures are required to store the data, while the effect of the storage space is insignificant. Also, in the case of the erasure code method in the recovery of the original file, since it is necessary to receive all the corresponding data from a plurality of divided servers, the amount of information of the metadata stored in the metadata server (MDS) There is a problem that the process becomes complicated, for example, the data becomes large and the divided data needs to be combined again and recovered.

따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 분산 파일 시스템에서 크기가 큰 자료는 삭제 코드(erasure code) 방식을 이용하여 여러 개의 조각(slice)로 분할하여 적어도 2개 이상의 서버에 분할하여 저장하고, 크기가 작은 자료는 미러 방식을 이용하여 원 파일과 동일한 크기의 복제본을 추가로 저장하는 분산 파일 시스템에서 효율적인 자료 저장 방법을 제공하는데 그 목적이 있다. SUMMARY OF THE INVENTION Accordingly, the present invention has been made in an effort to solve the problems as described above, and it is an object of the present invention to provide a distributed file system that divides a large size data into a plurality of slices using an erasure code method, The present invention also provides a method of efficiently storing data in a distributed file system in which a copy having the same size as an original file is additionally stored using a mirror method.

상기와 같은 목적을 달성하기 위한 본 발명에 따른 분산 파일 시스템에서 효율적인 자료 저장 방법의 특징은 데이터를 저장하기 위한 저장 공간을 갖는 로컬 스토리지를 포함하는 적어도 2개 이상의 서버로 구성되는 분산 파일 시스템의 분산 파일 운용 방법에 있어서, (A) 입력되는 원 파일의 크기를 미리 정의되어 있는 임계치와 비교하는 단계와, (B) 상기 비교결과, 원 파일의 크기가 설정된 임계치보다 크면 삭제 코드(erasure code) 방식을 이용하여 여러 개의 조각(slice)로 분할하여 적어도 2개 이상의 서버에 분할하여 저장하는 단계와, (C) 상기 비교결과, 원 파일의 크기가 설정된 임계치보다 작거나 같으면, 미러 방식을 이용하여 원 파일과 동일한 크기의 크기가 작은 데이터 복제본을 추가로 저장하는 단계를 포함하여 이루어지는데 있다. According to an aspect of the present invention, there is provided an efficient data storage method in a distributed file system, including: distributing a distributed file system comprising at least two servers including a local storage having a storage space for storing data; A method for operating a file, the method comprising: (A) comparing a size of an original file to be input with a predetermined threshold; and (B) if the size of the original file is greater than a preset threshold, Dividing the file into a plurality of slices using at least two or more servers and storing the divided files in at least two servers; and (C) if the size of the original file is smaller than or equal to the set threshold, And further storing a small size replica of the same size as the file.

바람직하게 상기 (B) 단계는 입력되는 원 파일을 적어도 하나 이상의 데이터로 분할하는 단계와, 상기 분할된 데이터에 각각 패리티 데이터를 결합한 하나 이상의 분할 데이터를 생성하는 단계와, 상기 생성된 분할 데이터를 적어도 2개 이상의 서버로 각각 전송하여 서버 내의 로컬 스토리지에 저장하는 단계와, 상기 로컬 스토리지에 각각 저장된 분할 데이터들의 위치정보를 포함하는 메타 정보를 별도의 메타 데이터 서버(MDS)에 저장하는 단계를 포함하는 것을 특징으로 한다.Preferably, the step (B) includes the steps of: dividing the input original file into at least one piece of data; generating at least one piece of divided data obtained by combining parity data with each of the divided pieces of data; Storing the metadata in a local storage in a server, and storing meta information including location information of the divided data stored in the local storage in a separate metadata server (MDS) .

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

바람직하게 상기 (C) 단계는 클라이언트를 통해 입력되는 원 파일의 복제본을 적어도 하나 이상 생성하는 단계와, 상기 원 파일과 생성된 복제본을 2개 이상의 서버로 각각 전송하여 서버 내의 로컬 스토리지에 각각 저장하는 단계와, 상기 로컬 스토리지에 각각 저장된 원 파일 및 복제본들의 위치정보를 포함하는 메타 정보를 별도의 메타 데이터 서버(MDS)에 저장하는 단계를 포함하는 것을 특징으로 한다. Preferably, the step (C) includes the steps of: generating at least one copy of the original file input through the client; and transmitting the original file and the generated copy to two or more servers, respectively, And storing the meta information including location information of the original files and the replicas stored in the local storage in a separate metadata server (MDS).

이상에서 설명한 바와 같은 본 발명에 따른 분산 파일 시스템에서 효율적인 자료 저장 방법은 다음과 같은 효과가 있다.The method of efficiently storing data in the distributed file system according to the present invention as described above has the following effects.

첫째, 크기가 큰 자료는 삭제 코드(erasure code) 방식을 이용하여 여러 개의 조각(slice)로 분할하여 적어도 2개 이상의 서버에 분할하여 저장함으로써, 원 파일의 오류나 손실된 파일 복구를 위해 추가로 저장되는 크기가 큰 데이터 복제본에 따른 추가 저장 공간을 제거할 수 있다. 또한 이 경우, 다수의 데이터 서버가 참여하므로 병렬 효과로 읽기/쓰기 처리량(throughput)이 올라가는 효과가 있다.First, the large-sized data is divided into several slices by using an erasure code method, and is divided into at least two servers. By storing the data, You can eliminate the extra storage space associated with large replicas of data. Also, in this case, because there are a plurality of data servers involved, the throughput is increased due to the parallel effect.

둘째, 크기가 작은 자료는 미러 방식을 이용하여 원 파일과 동일한 크기의 크기가 작은 데이터 복제본을 추가로 저장하여 복제본에 의한 저장 공간의 낭비를 최소한으로 막을 수 있는 효과가 있다. 또한 이 경우, 참여하는 데이터 서버의 수가 삭제 코드(erasure code)에서 참여하는 데이터 서버 수보다 적으므로 읽기/쓰기 지연(latency)이 짧아지는 효과가 있다.Secondly, the data of small size can be saved by using the mirror method to save a copy of data having the same size as the original file, thereby minimizing the waste of storage space by the copy. In this case, since the number of participating data servers is smaller than the number of participating data servers in the erasure code, the read / write latency is shortened.

셋째, 크기가 큰 자료는 삭제 코드 방식을 이용하고, 크기가 작은 자료는 미러 방식을 이용함에 따라 데이터의 컨스턴트(constant)를 유지할 수 있어 원 파일의 오류나 손실된 파일의 유연한 복구가 가능한 효과가 있다. Third, it is possible to maintain the constant of the data by using the deletion code method for the large data and the mirror method using the small size data, so that it is possible to recover the error of the original file or the lost file flexibly have.

도 1 은 본 발명의 실시예에 따른 분산 파일 시스템의 전체 구조를 나타낸 구성도
도 2 는 본 발명의 실시예에 따른 분산 파일 시스템에서 효율적인 자료 저장 방법을 설명하기 위한 흐름도
도 3 은 본 발명에 따른 삭제 코드(erasure code) 방식을 이용한 자료의 분산 저장 방법을 설명하기 위한 도면
도 4 는 도 3의 부호어(codeword) 크기 단위의 분할 데이터를 생성하는 인코딩을 설명하기 위한 도면
도 5 는 본 발명에 따른 미러 방식을 이용한 자료의 분산 저장 방법을 설명하기 위한 도면
BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a block diagram showing the overall structure of a distributed file system according to an embodiment of the present invention; FIG.
2 is a flowchart illustrating an efficient data storage method in a distributed file system according to an embodiment of the present invention.
FIG. 3 is a view for explaining a distributed storage method of data using an erasure code method according to the present invention; FIG.
FIG. 4 is a diagram for explaining encoding for generating divided data in units of codeword sizes in FIG. 3; FIG.
5 is a view for explaining a method of distributing and storing data using a mirror system according to 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 an efficient data storage method in a distributed file system 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.

도 1 은 본 발명의 실시예에 따른 분산 파일 시스템의 전체 구조를 나타낸 구성도이다.FIG. 1 is a block diagram showing the overall structure of a distributed file system according to an embodiment of the present invention.

도 1과 같이, 분산 파일 시스템(100)은 복수의 서버(110a~110n)와, 상기 각각의 서버(100a~11n)에 데이터를 저장하기 위한 저장 공간을 갖는 로컬 스토리지(120a~120n)로 구성된다.1, the distributed file system 100 includes a plurality of servers 110a to 110n and local storages 120a to 120n each having a storage space for storing data in the respective servers 100a to 11n do.

일 예로, 분산 파일 시스템(100)을 구성하는 서버(110a~110n) 각각은 자신의 로컬 스토리지(120a~120n)에 저장된 데이터에 대해 발생한 이벤트를 감지할 수 있다. 이때, 데이터는 파일 또는 디렉터리를 의미할 수 있다. 또한, 이벤트는 파일 또는 디렉터리에 대한 변경, 삭제 또는 생성을 의미한다.For example, each of the servers 110a to 110n constituting the distributed file system 100 may detect an event occurring on data stored in its local storages 120a to 120n. At this time, the data may mean a file or a directory. An event also means a change, deletion or creation of a file or directory.

따라서 제 2 로컬 스토리지(120b)에 저장된 데이터에 대한 이벤트가 발생하면, 제 2 서버(110b)는 자신을 제외한 분산 파일 시스템(110)의 다른 서버에 이벤트를 통해 변경된 데이터를 전송함으로써, 전체적으로 서버 간에 동일한 데이터 상태가 유지될 수 있다.Accordingly, when an event for the data stored in the second local storage 120b occurs, the second server 110b transmits the changed data through the event to the other servers of the distributed file system 110 excluding the second server 110b, The same data state can be maintained.

그리고 데이터 입출력을 통해 하드웨어인 로컬 스토리지(120a~120n)에서 이벤트를 감지하면, 이벤트에 의해 변경된 데이터의 내용을 어플리케이션에 통보한다. 이때 어플리케이션은 분산 파일 시스템(100)을 구성하는 복수의 서버(110a~110n)에서 동작하는 프로그램을 의미할 수 있다. 즉 분산 파일 시스템(100)은 서버(100a~110n) 각각이 제공하는 서비스 별 프로그래밍 언어로 구현된 전용 어플리케이션을 사용하여 데이터 입출력을 통해 이벤트를 감지하게 된다.When an event is detected in the local storages 120a to 120n, which are hardware, through data input / output, the contents of the data changed by the event are notified to the application. The application may be a program running on the plurality of servers 110a to 110n constituting the distributed file system 100. [ That is, the distributed file system 100 senses an event through data input / output using a dedicated application implemented in each service-specific programming language provided by each of the servers 100a to 110n.

그러면 분산 파일 시스템(100)은 운영체제에 따라 결정되는 로컬 스토리지(120a~120n)의 데이터 형태에 기초하여 이미 구현된 데이터 입출력을 사용할 수 있다.The distributed file system 100 may then use the already implemented data input / output based on the data type of the local storage 120a-120n determined by the operating system.

이처럼 분산 파일 시스템(100)은 다른 서버에 이벤트에 따른 데이터 변경을 반영하기 위해 어플리케이션을 통해 변경된 데이터를 다른 서버에 전송할 수 있다. 반대로, 분산 파일 시스템(100)은 어플리케이션을 통해 변경된 데이터에 대해 다른 서버로부터 수신할 수 있다. 이때, 어플리케이션은 다른 서버로부터 수신한 변경된 데이터를 해당 서버의 로컬 스토리지에 반영할 수 있다. 데이터를 전송하고, 데이터를 수신하는 과정은 분산 파일 시스템(100)을 구성하는 복수의 서버(110a~110n) 각각이 공통적으로 수행할 수 있다.
As described above, the distributed file system 100 can transmit data changed through the application to another server in order to reflect data change according to an event to another server. Conversely, the distributed file system 100 may receive data that has changed through the application from another server. At this time, the application can reflect the changed data received from the other server to the local storage of the server. The process of transmitting data and receiving data can be performed by each of the plurality of servers 110a to 110n constituting the distributed file system 100 in common.

이와 같이 구성된 본 발명에 따른 분산 파일 시스템에서 효율적인 자료 저장 방법을 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다. 도 1과 동일한 참조부호는 동일한 기능을 수행하는 동일한 부재를 지칭한다. An efficient data storage method in the distributed file system according to the present invention will now be described in detail with reference to the accompanying drawings. The same reference numerals as those in Fig. 1 designate the same members performing the same function.

도 2 는 본 발명의 실시예에 따른 분산 파일 시스템에서 효율적인 자료 저장 방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating an efficient data storage method in a distributed file system according to an embodiment of the present invention.

도 2를 참조하여 설명하면, 먼저 분산 파일 시스템(100)은 원 파일이 입력되면(S10), 분산 파일 시스템(100)내의 스토리지 API(미도시)에서 입력되는 원 파일의 크기를 미리 정의되어 있는 임계치와 비교한다(S20). 이때, 상기 임계치는 원 파일을 여러 개의 조각(slice)로 분할하여 적어도 2개 이상의 서버에 분할하여 저장하는 경우와, 원 파일과 동일한 크기의 복제본을 적어도 1개 이상의 서버에 추가로 저장하는 경우를 비교하였을 때, 저장 공간(로컬 스토리지, 메타데이터 서버(MDS))의 낭비를 최소화하면서도 저장 및 복구에 따른 계산량을 최적화할 수 있는 값으로서, 바람직하게는 512Kb를 갖는다. 2, when the original file is input (S10), the size of the original file input from the storage API (not shown) in the distributed file system 100 is defined in advance And compares it with a threshold value (S20). In this case, the threshold may be a case where the original file is divided into a plurality of slices and divided into at least two or more servers, and a case where a replica of the same size as the original file is additionally stored in at least one server As a comparison, it is a value that can optimize the amount of calculation due to storage and recovery while minimizing the waste of storage space (local storage, metadata server (MDS)), preferably 512 Kb.

상기 비교결과(S20), 원 파일의 크기가 설정된 임계치보다 크면 삭제 코드(erasure code) 방식을 이용하여 여러 개의 조각(slice)로 분할하여 적어도 2개 이상의 서버에 분할하여 저장한다(S30~S60).If the size of the original file is larger than the preset threshold value, the controller 20 divides the slice into a plurality of slices using an erasure code method and divides the divided slices into at least two or more servers (S30 to S60) .

상기 삭제 코드(erasure code) 방식을 이용한 저장방법을 도 3을 참조하여 좀 더 상세히 설명하면, 먼저 클라이언트를 통해 입력되는 원 파일을 각 서버 내 로컬 스토리지의 한 프레임에 해당하는 부호어(codeword) 크기 단위로 분할한다(S30). 그리고 상기 분할된 데이터에 각각 패리티 데이터를 결합한 하나 이상의 분할 데이터를 생성한다(S40). 즉 도 4와 같이, 원 파일은 로컬 스토리지의 부호어(codeword) 크기 단위가 'i'인 경우, 패리티 데이터가 포함될 크기 'm'을 제외한 나머지 크기인 'k' 단위로 분할되어, D1~D5로 각각 분할된다. 이때 분할된 분할 데이터에 패리티 데이터를 포함하기 위한 'm'의 크기는 데이터의 중요도 정도에 따라 중요도가 높은 경우에는 'm'의 크기가 커지고, 중요도가 낮은 경우에는 'm'의 크기가 작아지므로, 이는 관리자에 의해 변경 가능한 것에 주의하여야 한다. 참고로 'm'의 크기가 크다는 것은 패리티 데이터의 비트수가 많아지는 것을 뜻하며, 패리티 비트가 많을수록 데이터 복구 능력이 좋아지게 됨이 당연하다.Referring to FIG. 3, the original file input through the client is stored in a codeword size corresponding to one frame of the local storage in each server. (S30). Then, one or more divided data obtained by combining parity data with the divided data is generated (S40). That is, as shown in FIG. 4, when the codeword size unit of the local storage is 'i', the original file is divided into 'k' units except for the size 'm' Respectively. In this case, the size of 'm' for including the parity data in the divided data is increased according to the degree of importance of the data, and the size of 'm' is decreased when the importance is low , Which can be changed by the administrator. For reference, the large size of 'm' means that the number of bits of parity data increases, and the more parity bits, the better the data recovery capability.

이렇게 생성된 상기 분할 데이터를 적어도 2개 이상의 서버로 각각 전송하여 서버 내의 로컬 스토리지(120a~120n)에 각각 저장한다(S50). 그러면 도 3에 도시되고 있는 것과 같이, 상기 패리티 데이터가 결합되어 생성된 분할 데이터(sb1, sb2, .., sbn)를 다수개의 서버(110a~110n)로 각각 전송하여 제 1 서버(110a)내의 제 1 로컬 스토리지(120a)에는 제 1 분할 데이터(sb1)를 저장하고, 제 2 서버(110b)내의 제 2 로컬 스토리지(120b)에는 제 2 분할 데이터(sb2)를 저장하고, 제 3 서버(110c)내의 제 3 로컬 스토리지(120c)에는 제 3 분할 데이터(sb3)를 저장한다. 이러한 방식으로 마지막에는 제 n 서버(110n)내의 제 n 로컬 스토리지(120n)에는 제 n 분할 데이터(sbn)를 저장하게 된다. 이때, 패리티 데이터의 크기에 따라 다르지만 대부분 마지막의 제 n 로컬 스토리지(120n)에는 패리티 데이터가 저장되게 된다.The division data thus generated is transmitted to at least two or more servers and stored in the local storages 120a to 120n in the server (S50). Then, as shown in FIG. 3, the divided data sb1, sb2, ..., sbn generated by combining the parity data are transmitted to the plurality of servers 110a to 110n, respectively, The first local storage 120a stores the first partitioned data sb1 and the second local storage 120b stored in the second server 110b stores the second partitioned data sb2 and the third server 110c The third local storage 120c stores the third divided data sb3. In this manner, the n-th divided data sbn is stored in the nth local storage 120n in the n-th server 110n. At this time, parity data is stored in the last nth local storage 120n depending on the size of the parity data.

그리고 분산 파일 시스템(100)은 서버들(110a~110n)의 로컬 스토리지(120a~120n)에 각각 저장된 분할 데이터들의 위치정보를 포함하는 메타 정보를 별도의 메타 데이터 서버(MDS)(130)에 저장한다(S60). 이처럼, 원 파일의 크기가 설정된 임계치보다 크면 삭제 코드(erasure code) 방식을 이용하여 하나의 원 파일이 n 개로 분할되고, 분할된 각각의 데이터에 패리티 데이터를 결합한 분할 데이터를 각각의 서버 내 로컬 스토리지에 각각 분할하여 저장한다.The distributed file system 100 stores meta information including location information of the divided data stored in the local storages 120a to 120n of the servers 110a to 110n in a separate metadata server (MDS) 130 (S60). If the size of the original file is larger than the set threshold value, the original file is divided into n pieces by using the erasure code method. The divided data obtained by combining the divided data with the parity data is stored in the local storage Respectively.

한편, 상기 비교결과(S20), 원 파일의 크기가 설정된 임계치보다 작거나 같으면, 미러 방식을 이용하여 원 파일과 동일한 크기의 크기가 작은 데이터 복제본을 추가로 저장한다(S70~S90).If the size of the original file is smaller than or equal to the preset threshold value (S20), a data copy having the same size as the original file is further stored using the mirroring method (S70 to S90).

상기 미러 방식 방식을 이용한 저장방법을 도 5를 참조하여 좀 더 상세히 설명하면, 먼저 클라이언트를 통해 입력되는 원 파일의 복제본을 적어도 1개 이상 생성한다(S70). 본 발명에서는 1+2 미러 방식을 적용하여 하나의 원 파일과 2개의 복제본을 생성한다. 그러나 이는 일 실시예에 해당되는 것으로 이에 한정되지는 않는다. 즉, 복제본이 많을수록 데이터 복구 능력이 좋아지게 됨에 따라 데이터의 중요도 정도에 따라 중요도가 높을수록 복제본의 개수를 많이 생성한다. 따라서, 이는 관리자에 의해 변경 가능한 것에 주의하여야 한다.5, at least one replica of the original file input through the client is generated at step S70. In the present invention, one original file and two copies are generated by applying a 1 + 2 mirror method. However, the present invention is not limited thereto. That is, as the number of replicas increases, the ability to recover data becomes better. Therefore, the more important the data is, the more the number of replicas is generated. Therefore, it should be noted that this can be changed by the administrator.

이어 상기 원 파일과 생성된 복제본을 2개 이상의 서버로 각각 전송하여 서버 내의 로컬 스토리지(120a~120c)에 각각 저장한다(S80). 그러면 도 5에 도시되고 있는 것과 같이, 상기 원 파일은 제 1 서버(110a)내의 제 1 로컬 스토리지(120a)에는 원 파일을 저장하고, 제 2 서버(110b)내의 제 2 로컬 스토리지(120b)에는 제 1 복제본을 저장하고, 제 3 서버(110c)내의 제 3 로컬 스토리지(120c)에는 제 2 복제본을 저장한다.The original file and the generated replica are transmitted to two or more servers, respectively, and stored in the local storages 120a to 120c in the server (S80). 5, the original file stores the original file in the first local storage 120a in the first server 110a and the original file is stored in the second local storage 120b in the second server 110b, Stores the first copy in the third local storage 120c in the third server 110c, and stores the second copy in the third local storage 120c in the third server 110c.

그리고 분산 파일 시스템(100)은 서버들(110a~110c)의 로컬 스토리지(120a~120c)에 각각 저장된 원 파일 및 복제본들의 위치정보를 포함하는 메타 정보를 별도의 메타 데이터 서버(MDS)(130)에 저장한다(S90). 이처럼, 원 파일의 크기가 설정된 임계치보다 작거나 같으면 미러 방식 방식을 이용하여 원 파일과 이를 복제한 복제본을 각각의 서버 내 로컬 스토리지에 각각 분할하여 저장한다.The distributed file system 100 then transmits meta information including location information of original files and replicas stored in the local storages 120a to 120c of the servers 110a to 110c to a separate metadata server (MDS) (S90). If the size of the original file is smaller than or equal to the set threshold value, the original file and the replica of the original file are divided and stored in the local storage in the respective servers using the mirror method.

이에 따라, 데이터의 컨스턴트(constant)를 유지하여 원 파일의 오류나 손실된 파일의 유연한 복구가 가능하면서도 저장 공간의 낭비를 최소한으로 막을 수 있다.
Accordingly, it is possible to maintain the constant of the data, thereby allowing a smooth recovery of the original file or the lost file, while minimizing the waste of the storage space.

상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시예에서 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술적 분야의 통상의 지식을 가진자라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다. While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments. 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 (4)

데이터를 저장하기 위한 저장 공간을 갖는 로컬 스토리지를 포함하는 적어도 2개 이상의 서버로 구성되는 분산 파일 시스템의 분산 파일 운용 방법에 있어서,
(A) 입력되는 원 파일의 크기를 미리 정의되어 있는 임계치와 비교하는 단계와,
(B) 상기 비교결과, 원 파일의 크기가 설정된 임계치보다 크면 삭제 코드(erasure code) 방식을 이용하여 여러 개의 조각(slice)로 분할하여 적어도 2개 이상의 서버에 분할하여 저장하는 단계와,
(C) 상기 비교결과, 원 파일의 크기가 설정된 임계치보다 작거나 같으면, 미러 방식을 이용하여 원 파일과 동일한 크기의 크기가 작은 데이터 복제본을 추가로 저장하는 단계를 포함하여 이루어지며,
이때, 상기 (C) 단계는
클라이언트를 통해 입력되는 원 파일의 복제본을 적어도 하나 이상 생성하는 단계와,
상기 원 파일과 생성된 복제본을 2개 이상의 서버로 각각 전송하여 서버 내의 로컬 스토리지에 각각 저장하는 단계와,
상기 로컬 스토리지에 각각 저장된 원 파일 및 복제본들의 위치정보를 포함하는 메타 정보를 별도의 메타 데이터 서버(MDS)에 저장하는 단계를 포함하는 것을 특징으로 하는 분산 파일 시스템에서 효율적인 자료 저장 방법.
A method for operating a distributed file system in a distributed file system comprising at least two servers including local storage having a storage space for storing data,
(A) comparing the size of an original file to be input with a predefined threshold,
(B) dividing the original file into a plurality of slices by using an erasure code method if the size of the original file is larger than a predetermined threshold, and dividing the divided files into at least two or more servers;
(C) if the size of the original file is smaller than or equal to the set threshold value as a result of the comparison, further storing the data copy having the same size as the original file using the mirror method,
At this time, the step (C)
Generating at least one replica of the original file input through the client,
Transmitting the original file and the generated replica to two or more servers, respectively, and storing the original files and local replicas in a local storage in the server;
And storing meta information including location information of original files and replicas respectively stored in the local storage in a separate metadata server (MDS).
제 1 항에 있어서, 상기 (B) 단계는
입력되는 원 파일을 적어도 하나 이상의 데이터로 분할하는 단계와,
상기 분할된 데이터에 각각 패리티 데이터를 결합한 하나 이상의 분할 데이터를 생성하는 단계와,
상기 생성된 분할 데이터를 적어도 2개 이상의 서버로 각각 전송하여 서버 내의 로컬 스토리지에 저장하는 단계와,
상기 로컬 스토리지에 각각 저장된 분할 데이터들의 위치정보를 포함하는 메타 정보를 별도의 메타 데이터 서버(MDS)에 저장하는 단계를 포함하는 것을 특징으로 하는 분산 파일 시스템에서 효율적인 자료 저장 방법.
2. The method of claim 1, wherein step (B)
Dividing the input original file into at least one or more data;
Generating at least one piece of divided data obtained by combining parity data with each of the divided data;
Transmitting the generated divided data to at least two or more servers and storing the divided data in local storage in a server,
And storing meta information including location information of the divided data stored in the local storage in a separate metadata server (MDS).
제 2 항에 있어서,
상기 생성된 분할 데이터는 인코딩을 통해 패리티 데이터를 포함하는 로컬 스토리지의 한 프레임에 해당하는 부호어 크기로 생성되는 것을 특징으로 하는 분산 파일 시스템에서 효율적인 자료 저장 방법.
3. The method of claim 2,
Wherein the generated partitioned data is generated in a codeword size corresponding to one frame of local storage including parity data through encoding.
삭제delete
KR1020120150101A 2012-12-20 2012-12-20 Method for effective data storage in distributed file system KR101441059B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120150101A KR101441059B1 (en) 2012-12-20 2012-12-20 Method for effective data storage in distributed file system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120150101A KR101441059B1 (en) 2012-12-20 2012-12-20 Method for effective data storage in distributed file system

Publications (2)

Publication Number Publication Date
KR20140080919A KR20140080919A (en) 2014-07-01
KR101441059B1 true KR101441059B1 (en) 2014-09-25

Family

ID=51732331

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120150101A KR101441059B1 (en) 2012-12-20 2012-12-20 Method for effective data storage in distributed file system

Country Status (1)

Country Link
KR (1) KR101441059B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017030296A1 (en) * 2015-08-14 2017-02-23 Samsung Electronics Co., Ltd. Apparatus and method for implementing xf erasure code in distributed storage systems
US10902144B2 (en) 2017-08-25 2021-01-26 Electronics And Telecommunications Research Institute Method and apparatus for securing data

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10740198B2 (en) 2016-12-22 2020-08-11 Purdue Research Foundation Parallel partial repair of storage
KR101934204B1 (en) * 2017-07-28 2018-12-31 한양대학교 산학협력단 Erasure Coding Method and Apparatus for Data Storage
CN109271360A (en) * 2018-08-03 2019-01-25 北京城市网邻信息技术有限公司 Distributed objects storing data redundancy approach, device, equipment and storage medium
CN113296698A (en) * 2021-03-29 2021-08-24 阿里巴巴新加坡控股有限公司 Data processing method, device and equipment

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060047896A1 (en) 2004-08-25 2006-03-02 Lu Nguyen Storing parity information for data recovery
KR20070040142A (en) * 2005-10-11 2007-04-16 주식회사 레인콤 Apparatus for accessing hard disk drive of multimedia player and method thereof
KR100754522B1 (en) * 2006-07-24 2007-09-03 삼성전자주식회사 Host apparatus for storing image efficiently and image storage method using the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060047896A1 (en) 2004-08-25 2006-03-02 Lu Nguyen Storing parity information for data recovery
KR20070040142A (en) * 2005-10-11 2007-04-16 주식회사 레인콤 Apparatus for accessing hard disk drive of multimedia player and method thereof
KR100754522B1 (en) * 2006-07-24 2007-09-03 삼성전자주식회사 Host apparatus for storing image efficiently and image storage method using the same

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017030296A1 (en) * 2015-08-14 2017-02-23 Samsung Electronics Co., Ltd. Apparatus and method for implementing xf erasure code in distributed storage systems
US10073738B2 (en) 2015-08-14 2018-09-11 Samsung Electronics Co., Ltd. XF erasure code for distributed storage systems
US10902144B2 (en) 2017-08-25 2021-01-26 Electronics And Telecommunications Research Institute Method and apparatus for securing data

Also Published As

Publication number Publication date
KR20140080919A (en) 2014-07-01

Similar Documents

Publication Publication Date Title
US11907585B2 (en) Storing data sequentially in zones in a dispersed storage network
US10019192B2 (en) Policy-based hierarchical data protection in distributed storage
US10437672B2 (en) Erasure coding and replication in storage clusters
US20190171519A1 (en) Storing data and associated metadata in a dispersed storage network
US11061613B2 (en) Dynamic retention policies and optional deletes
KR101441059B1 (en) Method for effective data storage in distributed file system
US8209363B2 (en) File system adapted for use with a dispersed data storage network
US11093387B1 (en) Garbage collection based on transmission object models
JP2007202146A (en) Method and apparatus for distributed data replication
US20130282976A1 (en) Self-protecting mass storage systems and methods
US11003554B2 (en) RAID schema for providing metadata protection in a data storage system
US10628298B1 (en) Resumable garbage collection
US11442827B2 (en) Policy-based hierarchical data protection in distributed storage
US20190205033A1 (en) Storing data utilizing a maximum accessibility approach in a dispersed storage network
CN113126890B (en) Method, apparatus and computer program product for storage
CN110419029B (en) Method for partially updating data content in distributed storage network
US20190347165A1 (en) Apparatus and method for recovering distributed file system
CN109478125B (en) Manipulating a distributed consistency protocol to identify a desired set of storage units
US10169392B2 (en) Persistent data structures on a dispersed storage network memory
US10031805B2 (en) Assigning slices to storage locations based on a predicted lifespan
US11334456B1 (en) Space efficient data protection
JP2018524705A (en) Method and system for processing data access requests during data transfer
US20190026147A1 (en) Avoiding index contention with distributed task queues in a distributed storage system
US11645333B1 (en) Garbage collection integrated with physical file verification
US10360107B2 (en) Modifying allocation of storage resources in a dispersed storage network

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
FPAY Annual fee payment

Payment date: 20180830

Year of fee payment: 5