KR101128998B1 - 패리티 데이터를 이용한 분산 파일 운용 방법 - Google Patents

패리티 데이터를 이용한 분산 파일 운용 방법 Download PDF

Info

Publication number
KR101128998B1
KR101128998B1 KR1020100090736A KR20100090736A KR101128998B1 KR 101128998 B1 KR101128998 B1 KR 101128998B1 KR 1020100090736 A KR1020100090736 A KR 1020100090736A KR 20100090736 A KR20100090736 A KR 20100090736A KR 101128998 B1 KR101128998 B1 KR 101128998B1
Authority
KR
South Korea
Prior art keywords
data
file
divided
parity data
parity
Prior art date
Application number
KR1020100090736A
Other languages
English (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 KR1020100090736A priority Critical patent/KR101128998B1/ko
Application granted granted Critical
Publication of KR101128998B1 publication Critical patent/KR101128998B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1028Distributed, i.e. distributed RAID systems with parity

Landscapes

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

Abstract

본 발명은 파일의 패리티 데이터를 이용하여 데이터 복제본의 사용 없이 데이터의 컨스턴트(constant)를 유지할 수 있어 유연한 복구가 가능한 패리티 데이터를 이용한 분산 파일 운용 방법을 제공하기 위한 것으로서, (A) 데이터를 저장하기 위한 저장 공간을 갖는 로컬 스토리지를 포함하는 적어도 2개 이상의 서버로 구성되는 분산 파일 시스템의 분산 파일 운용 방법에 있어서, (B) 입력되는 원 파일을 적어도 하나 이상의 데이터로 분할하는 단계와, (C) 상기 분할된 데이터에 각각 패리티 데이터를 결합한 하나 이상의 분할 데이터를 생성하는 단계와, (D) 상기 생성된 분할 데이터를 적어도 2개 이상의 서버로 각각 전송하여 서버 내의 로컬 스토리지에 저장하는 단계와, (E) 상기 로컬 스토리지에 각각 저장된 분할 데이터들의 위치정보를 포함하는 메타 정보를 별도의 메타 정보 저장부(MDS)에 저장하는 단계를 포함하는데 있다.

Description

패리티 데이터를 이용한 분산 파일 운용 방법{Method for distributed file operation using parity data}
본 발명은 분산 파일 시스템에 관한 것으로, 특히 패리티 데이터를 이용하여 데이터 복제본의 사용 없이 유연한 복구가 가능한 패리티 데이터를 이용한 분산 파일 운용 방법에 관한 것이다.
네트워크를 이용하여 다수의 컴퓨터들을 연결함으로써 사용자에게 통합된 파일 시스템 환경을 제공해 주는 분산 파일 시스템은 다양한 인터넷 서비스 환경에서 사용되고 있다. 사용자의 참여로 새롭고 다양해지는 인터넷 서비스들로 인해 분산 파일 시스템에 요구되는 기능들은 더욱 많아지고 있다. 이러한 서비스 중 일부는 파일의 읽기뿐만 아니라 파일의 내용 변경, 내용 추가를 필요로 하고 있으며 분산 파일 시스템은 이러한 사용자의 요구를 만족시키기 위해 지속적으로 변화하고 있다. 파일의 읽기 성능에 저하 없이 변경, 추가의 기능을 제공하도록 하면서 동시에 파일을 동시에 접근하는 다수의 클라이언트들에 의해 메타 데이터의 일관성이 깨지지 않도록 보장하는 것이 매우 중요하다.
이와 같은 시스템 내에는 동일한 파일을 동시에 접근하는 다수의 클라이언트들이 존재하기 때문에 여러 데이터 서버에 존재하는 파일 데이터에 대해 클라이언트가 올바르게 접근할 수 있도록 메타 데이터 정보를 일관되게 유지시켜야 한다. A라는 파일이 데이터 서버 D1, D2, D3에 저장되어 있고 파일 A를 읽고자 하는 클라이언트 C1과 파일 A에 추가하고자 하는 클라이언트 C2, C3이 동시에 존재한다면, 클라이언트 C1은 메타 데이터 서버 M에 있는 메타 데이터의 정보를 얻으려 할 것이고, 클라이언트 C2와 C3은 메타 데이터 서버 M에 있는 메타 데이터의 정보를 변경하려 할 것이다. 클라이언트 C2가 마지막 블록 정보를 블록 식별자를 쓰는 중간에 클라이언트 C1이 마지막 블록 정보의 블록 식별자를 읽는다면, 클라이언트 C2는 잘못된 블록 식별자로 인해 혼란을 겪게 될 것이다. 따라서 동일한 파일을 동시에 접근하는 다수의 클라이언트들을 제어하기 위한 방법이 요구되며, 성능의 저하를 최소화할 수 있도록 해야 한다.
한편, 분산 파일 시스템은 데이터의 컨스턴트(constant)를 유지할 수 있도록 하기 위해 미러 방식을 이용하고 있다. 이는 원 파일 외에 또 다른 데이터의 복제본을 저장하고 있다가, 원 파일에 오류나 손실된 경우에 미리 저장하고 있던 복제본을 이용하여 원 파일을 복구하는 방식이다. 이에 따라, 기존의 분산 파일 시스템은 원 파일과 함께 복제본을 추가로 저장하고 있어야 하며, 또한 복제본은 원파일과 동일한 데이터 크기를 갖고 있어서, 분산 파일 시스템 내에 원 파일의 저장 공간은 최소 2배 이상의 많은 저장 공간이 요구되는 문제점이 있다.
따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 파일의 패리티 데이터를 이용하여 데이터 복제본의 사용 없이 데이터의 컨스턴트(constant)를 유지할 수 있어 유연한 복구가 가능한 패리티 데이터를 이용한 분산 파일 운용 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적은 패리티 데이터의 이용을 위해 파일을 여러 개의 조각(slice)로 구성하고 하나의 로컬 스토리지에 저장된 서로 다른 여러 개의 조각에 각각 대응하는 패리티 데이터를 구성하여, 파일 접근에 따른 성능 저하를 최소화할 수 있고, 또한 원 파일에 오류나 손실된 파일의 복구를 위한 데이터 복제본의 추가 저장 공간을 제거할 수 있는 패리티 데이터를 이용한 분산 파일 운용 방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 패리티 데이터를 이용한 분산 파일 운용 방법의 특징은 (A) 데이터를 저장하기 위한 저장 공간을 갖는 로컬 스토리지를 포함하는 적어도 2개 이상의 서버로 구성되는 분산 파일 시스템의 분산 파일 운용 방법에 있어서, (B) 입력되는 원 파일을 적어도 하나 이상의 데이터로 분할하는 단계와, (C) 상기 분할된 데이터에 각각 패리티 데이터를 결합한 하나 이상의 분할 데이터를 생성하는 단계와, (D) 상기 생성된 분할 데이터를 적어도 2개 이상의 서버로 각각 전송하여 서버 내의 로컬 스토리지에 저장하는 단계와, (E) 상기 로컬 스토리지에 각각 저장된 분할 데이터들의 위치정보를 포함하는 메타 정보를 별도의 메타 정보 저장부(MDS)에 저장하는 단계를 포함하는데 있다.
바람직하게 상기 분할 데이터의 개수와 서버의 개수는 동일하거나 서버가 더 많은 것을 특징으로 한다.
바람직하게 상기 (B) 단계에서 분할되는 데이터는 각 서버 내 로컬 스토리지의 한 프레임에 해당하는 부호어(codeword) 크기보다 작은 크기로 분할되는 것을 특징으로 한다.
바람직하게 상기 (C) 단계에서 생성된 분할 데이터는 분할되는 데이터는 상기 로컬 스토리지의 부호어 크기로 생성되는 것을 특징으로 한다.
바람직하게 상기 (E) 단계 이후, 상기 메타 정보 저장부(MDS)에 저장된 메타 정보를 기반으로 각각의 서버에 파일 리드에 따른 이벤트를 발생하면, 해당 메타 정보에 대응되는 서버에서 이벤트를 감지하는 단계와, 상기 이벤트가 발생된 각 서버에서 자신의 로컬 스토리지에 저장되어 있는 분할 데이터 중 이벤트와 함께 입력된 메타 정보(위치 정보)를 이용하여 해당 위치에 저장되어 있는 분할 데이터를 출력하는 단계와, 상기 출력된 분할 데이터를 하나의 파일로 결합하는 단계와, 상기 결합된 하나의 파일에 포함된 패리티 데이터를 이용하여 파일의 오류나 손실된 파일의 복구를 수행하는 단계와, 상기 복구된 분할 파일을 디코더를 통해 원 파일로 부호화한 후 부호화된 원 파일을 요청한 클라이언트에게 전송하는 단계를 더 포함하는 것을 특징으로 한다.
이상에서 설명한 바와 같은 본 발명에 따른 패리티 데이터를 이용한 분산 파일 운용 방법은 다음과 같은 효과가 있다.
첫째, 파일의 패리티 데이터를 이용하여 원본 파일의 손실 및 오류 복구를 위한 데이터 복제본의 사용 없이 데이터의 컨스턴트(constant)를 유지할 수 있어 원 파일의 오류나 손실된 파일의 유연한 복구가 가능한 효과가 있다.
둘째, 패리티 데이터의 이용을 위해 파일을 여러 개의 조각(slice)로 구성하고 하나의 로컬 스토리지에 저장된 서로 다른 여러 개의 조각에 각각 대응하는 패리티 데이터를 구성하여 파일 접근에 따른 성능 저하를 최소화할 수 있다.
셋째, 패리티 데이터의 이용을 위해 파일을 여러 개의 조각(slice)로 구성하고 하나의 로컬 스토리지에 저장된 서로 다른 여러 개의 조각에 각각 대응하는 패리티 데이터를 구성하여 원 파일의 오류나 손실된 파일 복구를 위해 추가로 저장되는 데이터 복제본에 따른 추가 저장 공간을 제거할 수 있다.
[도 1] 본 발명의 실시예에 따른 분산 파일 시스템의 전체 구조를 나타낸 구성도
[도 2] 본 발명에 따른 패리티 데이터를 이용한 자료의 분산 저장 방법을 설명하기 위한 도면
[도 3] 도 2의 부호어(codeword) 크기 단위의 분할 데이터를 생성하는 인코딩을 설명하기 위한 도면
[도 4] 본 발명에 따른 자료의 분산 저장 방법 중 평행 코딩 방법을 설명하기 위한 실시예
[도 5] 본 발명에 따른 자료의 분산 저장 방법 중 직교 코딩 방법을 설명하기 위한 실시예
[도 6] 본 발명에 따른 패리티 데이터를 이용한 자료의 획득 및 복구 방법을 설명하기 위한 도면
본 발명의 다른 목적, 특성 및 이점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
본 발명에 따른 패리티 데이터를 이용한 분산 파일 운용 방법의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 따라서 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 1 은 본 발명의 실시예에 따른 분산 파일 시스템의 전체 구조를 나타낸 구성도이다.
도 1과 같이, 분산 파일 시스템(100)은 복수의 서버(110a~110n)와, 상기 각각의 서버(110a~110n)에 데이터를 저장하기 위한 동일한 저장 공간을 갖는 로컬 스토리지(120a~120n)로 구성된다.
일 예로, 분산 파일 시스템(100)을 구성하는 서버(110a~110n) 각각은 자신의 로컬 스토리지(120a~120n)에 저장된 데이터에 대해 발생한 이벤트를 감지할 수 있다. 이때, 데이터는 파일 또는 디렉터리를 의미할 수 있다. 또한, 이벤트는 파일 또는 디렉터리에 대한 변경, 삭제 또는 생성을 의미한다.
따라서 제 2 로컬 스토리지(120b)에 저장된 데이터에 대한 이벤트가 발생하면, 제 2 서버(110b)는 자신을 제외한 분산 파일 시스템(100)의 다른 서버에 이벤트를 통해 변경된 데이터를 전송함으로써, 전체적으로 서버 간에 동일한 데이터 상태가 유지될 수 있다.
그리고 데이터 입출력을 통해 하드웨어인 로컬 스토리지(120a~120n)에서 이벤트를 감지하면, 이벤트에 의해 변경된 데이터의 내용을 어플리케이션에 통보한다. 이때 어플리케이션은 분산 파일 시스템(100)을 구성하는 복수의 서버(110a~110n)에서 동작하는 프로그램을 의미할 수 있다. 즉, 분산 파일 시스템(100)은 서버(110a~110n) 각각이 제공하는 서비스 별 프로그래밍 언어로 구현된 전용 어플리케이션을 사용하여 데이터 입출력을 통해 이벤트를 감지하게 된다.
그러면 분산 파일 시스템(100)은 운영체제에 따라 결정되는 로컬 스토리지(120a~120n)의 데이터 형태에 기초하여 이미 구현된 데이터 입출력을 사용할 수 있다.
이처럼, 분산 파일 시스템(100)은 다른 서버에 이벤트에 따른 데이터 변경을 반영하기 위해 어플리케이션을 통해 변경된 데이터를 다른 서버에 전송할 수 있다. 반대로, 분산 파일 시스템(100)은 어플리케이션을 통해 변경된 데이터에 대해 다른 서버로부터 수신할 수 있다. 이때, 어플리케이션은 다른 서버로부터 수신한 변경된 데이터를 해당 서버의 로컬 스토리지에 반영할 수 있다. 데이터를 전송하고, 데이터를 수신하는 과정은 분산 파일 시스템(100)을 구성하는 복수의 서버(110a~110n) 각각이 공통적으로 수행할 수 있다.
이와 같이 구성된 본 발명에 따른 분산 파일 시스템을 기반으로 패리티 데이터를 이용한 분산 파일 운용 방법을 첨부한 도면을 참조하여 상세히 설명하면 다음과 같다. 도 1과 동일한 참조부호는 동일한 기능을 수행하는 동일한 부재를 지칭한다.
도 2 는 본 발명에 따른 패리티 데이터를 이용한 자료의 분산 저장 방법을 설명하기 위한 도면이다.
도 2를 참조하여 자료의 분산 저장 방법을 설명하면, 먼저 분산 파일 시스템(100)은 클라이언트를 통해 입력되는 원 파일을 각 서버 내 로컬 스토리지의 한 프레임에 해당하는 부호어(codeword) 크기 단위로 분할한다.
즉 도 3과 같이, 원 파일은 로컬 스토리지의 부호어(codeword) 크기 단위가 'i'인 경우, 패리티 데이터가 포함될 크기 'm'을 제외한 나머지 크기인 'k' 단위로 분할되어, D1~D5로 분할된다. 이때 상기 패리티 데이터가 포함되기 위한 'm'의 크기는 데이터의 중요도 정도에 따라 중요도가 높은 경우에는 'm'의 크기가 커지고, 중요도가 낮은 경우에는 'm'의 크기가 작아지므로, 이는 관리자에 의해 변경 가능한 것에 주의하여야 한다. 참고로 'm'의 크기가 크다는 것은 패리티 데이터의 비트수가 많아지는 것을 뜻하며, 패리티 비트가 많을수록 데이터 복구 능력이 좋아지게 됨이 당연하다.
한편, 상기 인코딩시 부호어의 방향과 원본 자료의 방향은 분산 파일 시스템의 성능 및 활용도 등에 중요한 속성과 연관이 있다. 이에 인코딩시 부호어의 방향을 평행 코딩 방법과 직교 코딩 방법으로 구분한다. 이때 상기 구분되는 코딩 방법은 그 설명을 위한 것이며 그 제한을 위한 것이 아니며, 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능하다.
도시된 도면을 참조하여 상기 평행 코딩 방법과 직교 코딩 방법에 대해 좀 더 상세히 설명하면 다음과 같다.
도 4 는 본 발명에 따른 자료의 분산 저장 방법 중 평행 코딩 방법을 설명하기 위한 실시예이다.
도 4와 같이, 평행 코딩 방법은 하나의 원 파일이 n 개로 분할되어 'k' 단위에 맞게 d1~d5 분할 파일이 순차적으로 평행하게 나열되고, 아울러 ‘k'단위로 나열된 d1~d5에 따른 패리티 데이터가 'm' 단위에 맞게 p1~p3 패리티 데이터로 생성된다.
이어 n 개로 분할된 그 다음 순서의 d6~d10 분할 파일이 ‘k'단위에 맞게 나열되고, ‘k'단위로 나열된 d6~d10에 따른 패리티 데이터가 'm' 단위에 맞게 p4~p6 패리티 데이터로 생성된다.
이처럼 상기 평행 코딩 방법은 정의된 부호어(codeword) 크기에 상응하는 크기(k)로 평행한 방향으로 순차적 순서로 결합되어 생성되는 방법으로 인코딩 작업이 순차적으로 진행되어 큰 파일의 처리나 연속 리드 처리에 용이하여 미디어 스트리밍 저장(media streaming storage)이나 로깅 저장(logging storage)에 이용되는데 유리하다. 또한 이러한 특성에 따라 파일 자료의 추가(append) 작업이 용이하다.
도 5 는 본 발명에 따른 자료의 분산 저장 방법 중 직교 코딩 방법을 설명하기 위한 실시예이다.
도 5와 같이, 직교 코딩 방법은 먼저 하나의 정크(chunk) 단위로 구분한 후, n 개로 분할된 원 파일을 구분한 제 1 정크 단위로 직교 방향으로 위치시키며 'k' 단위에 맞게 d1~d10 분할 파일을 순차적으로 평행하게 나열한다. 그리고 이렇게‘k'단위로 나열된 분할 파일인 d1, d3, d5, d7, d9에 따른 패리티 데이터가 'm' 단위에 맞게 p1~p3 패리티 데이터로 생성되고, 제 1 정크 단위로 구분되어 나열된 나머지 데이터인 d2, d4, d6, d8, d10에 따른 패리티 데이터가 'm' 단위에 맞게 p4~p6 패리티 데이터로 생성된다.
이렇게 하나의 정크 단위의 저장이 완료되면, 또 다른 제 2 정크 단위로 다음 순서에 따른 분할된 원 파일을 직교 방향으로 위치시키며 'k' 단위에 맞게 d11~d20 분할 파일을 순차적으로 평행하게 나열한다. 그리고 이렇게‘k'단위로 나열된 분할 파일인 d11, d13, d15, d17, d19에 따른 패리티 데이터가 'm' 단위에 맞게 p7~p9 패리티 데이터로 생성되고, 제 2 정크 단위로 구분되어 나열된 나머지 데이터인 d12, d14, d16, d18, d20에 따른 패리티 데이터가 'm' 단위에 맞게 p10~p12 패리티 데이터로 생성된다.
참고로, 도 5에서 도시하고 있는 상기 구분한 정크 단위는 직교 방향으로 2개의 분할 파일을 위치시키고 있지만, 이는 설명을 용이하게 하기 위한 하나의 실시예일 뿐, 직교 방향으로 2개 이상의 분할 파일이 위치하도록 정크 단위를 조절할 수 있다.
이와 같이 상기 직교 코딩 방법은 미리 구분한 정크 단위로 직교 방향으로 순차적 순서로 결합되어 생성되는 방법으로 블록 저장(block storage)과 같이 고정 길이 자료나 MapReduce 연동과 같이 각 분할된 파일이 각 노드에서 지역적으로 사용될 경우에 유리하다. 또한, 해당 분할 데이터의 패리티 데이터가 포함된 부호어(codeword) 크기의 분할 데이터만으로도 자료로 사용이 가능하여 파일 자료의 임의 접근에 유리하다.
이처럼, 인코더(140)에 의해 상기 D1~D5로 분할된 파일에 각각 패리티 데이터가 결합된 로컬 스토리지의 부호어 크기 단위의 분할 데이터(sb1, sb2, .., sbn)를 생성한다. 이때, n은 서버의 개수와 동일하거나 적은 수를 나타내는 것이 바람직하다. 이때, 상기 인코더(140)는 바람직하게 RS(Reed Solomon) 인코더인 것이 바람직하나, 이는 하나의 일 실시예일 뿐, m 개의 데이터 비트 손실(failure)에 대응해 m 개의 패리티 비트를 구성하고, 자료를 복구할 수 있는 알고리즘(erasure code)으로 본 발명의 기술적 사상의 범위 내의 기술에 따른 공지된 다양한 알고리즘을 사용하는 인코더의 적용이 가능하다.
그러면 상기 패리티 데이터가 결합되어 생성된 분할 데이터(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)에는 패리티 데이터가 저장되게 된다.
그리고 분산 파일 시스템(100)은 서버들(110a~110n)의 로컬 스토리지(120a~120n)에 각각 저장된 분할 데이터들의 위치정보를 포함하는 메타 정보를 별도의 메타 정보 저장부(MDS)(130)에 저장한다.
이처럼, 본 발명에 따른 패리티 데이터를 이용한 자료의 분산 저장 방법에서는 하나의 원 파일이 n 개로 분할되어 각각의 서버 내 로컬 스토리지에 각각 분할되어 저장되게 된다.
한편, 도 6 은 본 발명에 따른 패리티 데이터를 이용한 자료의 획득 및 복구 방법을 설명하기 위한 도면이다.
도 6을 참조하여 자료의 획득 및 복구 방법을 설명하면 다음과 같다.
먼저, 분산 파일 시스템(100)은 메타 정보 저장부(MDS)(130)에 저장된 메타 정보를 기반으로 각각의 서버에 파일 리드(read)에 따른 이벤트를 발생한다. 이때, 연속된 하나의 파일이 여러 개의 로컬 스토리지에 분산되어 저장되어 있으므로, 분산 파일 시스템(100)의 서버들 중 상기 메타 정보에 대응되는 다수개의 서버에서 이벤트를 감지하게 된다. 이때 분할 데이터의 개수와 서버의 개수가 동일한 경우에는 모든 서버에서 이벤트를 감지하게 될 것이다.
이어 이벤트가 발생된 각 서버는 자신의 로컬 스토리지에 저장되어 있는 분할 데이터 중 이벤트와 함께 입력된 메타 정보(위치 정보)를 이용하여 해당 위치에 저장되어 있는 분할 데이터를 부호어 크기 단위로 출력한다.
그러면, 상기 분산 파일 시스템(100)은 상기 각 서버에서 출력되는 분할 데이터(sb1, sb2, .., sbn)를 메타 정보(인덱스 정보)를 이용하여 하나의 파일로 결합한다. 이때 다수의 분할 데이터들이 결합된 하나의 파일에는 패리티 데이터를 포함하게 된다.
따라서 상기 분할 파일 시스템(100)은 패리티 데이터가 포함되어 하나로 결합된 파일을 패리티 데이터를 이용하여 오류 검사를 수행하여 파일의 오류나 손실된 파일의 복구를 수행하게 된다. 이때 패리티 데이터를 이용한 파일의 복구 방법은 이미 공지된 기술로 이에 따른 상세한 설명은 생략한다.
이어 상기 복구된 분할 파일을 디코더(미도시)를 통해 원 파일로 디코딩한 후 디코딩된 원 파일을 요청한 클라이언트에게 전송한다. 이때 상기 디코더에서 부호화된 원 파일에는 패리티 데이터가 포함되어 있지 않은 최초의 원 파일로 클라이언트는 수신하게 된다.
이에 따라, 기존의 분산 파일 시스템의 경우 파일의 오류나 손실 시에 이를 복구하기 위해 미리 저장하고 있는 또 다른 데이터 복제본을 추가로 저장하는데 반해, 본 발명의 경우에는 패리티 데이터를 통해 별도의 데이터 복제본 없이도 손쉽게 파일의 복구가 가능하게 되어 저장 공간의 효율을 높일 수 있게 된다.
상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시예에서 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술적 분야의 통상의 지식을 가진자라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (6)

  1. (A) 데이터를 저장하기 위한 저장 공간을 갖는 로컬 스토리지를 포함하는 적어도 2개 이상의 서버로 구성되는 분산 파일 시스템의 분산 파일 운용 방법에 있어서,
    (B) 입력되는 원 파일을 적어도 하나 이상의 데이터로 분할하는 단계와,
    (C) 상기 분할된 원 파일 데이터에 각각 적어도 2개 이상의 패리티 데이터를 결합한 하나 이상의 분할 데이터를 생성하는 단계와,
    (D) 상기 생성된 각각의 분할 데이터를 분할하여 적어도 2개 이상의 서버로 상기 분할된 분할 데이터 각각을 전송하여 서버 내의 로컬 스토리지에 저장하는 단계와,
    (E) 상기 로컬 스토리지에 각각 저장된 분할된 분할 데이터들의 위치정보를 포함하는 메타 정보를 별도의 메타 정보 저장부(MDS)에 저장하는 단계를 포함하고,
    이때, 상기 (C) 단계에서 생성된 분할 데이터는 k 개로 분할된 원 파일 데이터와, m 개로 적어도 2개 이상의 패리티 데이터로 구성되는 i 개의 단위크기로 구성되며, 이 중 임의의 m 개의 데이터 비트가 손실되더라도 나머지 k 개의 데이터를 이용하여 상기 손실된 데이터 비트의 복구가 가능한 것을 특징으로 하는 패리티 데이터를 이용한 분산 파일 운용 방법.
  2. 제 1 항에 있어서,
    상기 분할 데이터의 분할되는 개수와 서버의 개수는 동일하거나 서버가 더 많은 것을 특징으로 하는 패리티 데이터를 이용한 분산 파일 운용 방법.
  3. 제 1 항에 있어서,
    상기 (C) 단계에서 생성된 분할 데이터는 인코딩을 통해 패리티 데이터를 포함하는 로컬 스토리지의 부호어 크기로 생성되는 것을 특징으로 하는 패리티 데이터를 이용한 분산 파일 운용 방법.
  4. 제 3 항에 있어서,
    상기 (B) 단계에서 분할되는 원 파일 데이터는 상기 인코딩에서 사용되는 부호어(codeword) 크기보다 작은 크기로 분할되는 것을 특징으로 하는 패리티 데이터를 이용한 분산 파일 운용 방법.
  5. 제 3 항에 있어서, 상기 인코딩은
    분할된 분할 파일이 순차적으로 평행하게 나열되어 패리티 데이터와 결합되는 평행 코딩 방법과,
    정크(chunk) 단위로 분할된 분할 파일이 순차적으로 직교하게 나열되어 패리티 데이터와 결합되는 직교 코딩 방법 중 어느 하나의 방법으로 이루어지는 것을 특징으로 하는 패리티 데이터를 이용한 분산 파일 운용 방법.
  6. 제 1 항에 있어서,
    상기 (E) 단계 이후, 상기 메타 정보 저장부(MDS)에 저장된 메타 정보를 기반으로 각각의 서버에 파일 리드에 따른 이벤트를 발생하면, 해당 메타 정보에 대응되는 서버에서 이벤트를 감지하는 단계와,
    상기 이벤트가 발생된 각 서버에서 자신의 로컬 스토리지에 저장되어 있는 분할 데이터 중 이벤트와 함께 입력된 메타 정보에 포함되는 위치 정보를 이용하여 해당 위치에 저장되어 있는 분할 데이터를 출력하는 단계와,
    상기 출력된 분할 데이터를 하나의 파일로 결합하는 단계와,
    상기 결합된 하나의 파일에 포함된 패리티 데이터를 이용하여 파일의 오류나 손실된 파일의 복구를 수행하는 단계와,
    상기 복구된 분할 파일을 디코더를 통해 원 파일로 부호화한 후 부호화된 원 파일을 요청한 클라이언트에게 전송하는 단계를 더 포함하는 것을 특징으로 하는 패리티 데이터를 이용한 분산 파일 운용 방법.
KR1020100090736A 2010-09-15 2010-09-15 패리티 데이터를 이용한 분산 파일 운용 방법 KR101128998B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100090736A KR101128998B1 (ko) 2010-09-15 2010-09-15 패리티 데이터를 이용한 분산 파일 운용 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100090736A KR101128998B1 (ko) 2010-09-15 2010-09-15 패리티 데이터를 이용한 분산 파일 운용 방법

Publications (1)

Publication Number Publication Date
KR101128998B1 true KR101128998B1 (ko) 2012-03-23

Family

ID=46142615

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100090736A KR101128998B1 (ko) 2010-09-15 2010-09-15 패리티 데이터를 이용한 분산 파일 운용 방법

Country Status (1)

Country Link
KR (1) KR101128998B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101341386B1 (ko) * 2012-09-18 2013-12-13 한국과학기술원 분산 파일 시스템에서 저장 공간 절약을 위한 효과적인 블록 인코딩 및 블록 배치 방법
KR20200114746A (ko) * 2019-03-29 2020-10-07 한국전자통신연구원 동적 데이터의 안전한 분산 데이터 관리를 위한 방법 및 시스템

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
KR20090063733A (ko) * 2007-12-14 2009-06-18 한국전자통신연구원 다중 복제를 지원하는 분산 파일 시스템에서 데이터 서버의복구 방법 및 그에 적당한 메타데이터 스토리지 및 저장방법
KR20100060429A (ko) * 2008-11-27 2010-06-07 엔에이치엔(주) 분산 파일 시스템 및 분산 파일 시스템의 수행 방법

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
KR20090063733A (ko) * 2007-12-14 2009-06-18 한국전자통신연구원 다중 복제를 지원하는 분산 파일 시스템에서 데이터 서버의복구 방법 및 그에 적당한 메타데이터 스토리지 및 저장방법
KR20100060429A (ko) * 2008-11-27 2010-06-07 엔에이치엔(주) 분산 파일 시스템 및 분산 파일 시스템의 수행 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101341386B1 (ko) * 2012-09-18 2013-12-13 한국과학기술원 분산 파일 시스템에서 저장 공간 절약을 위한 효과적인 블록 인코딩 및 블록 배치 방법
KR20200114746A (ko) * 2019-03-29 2020-10-07 한국전자통신연구원 동적 데이터의 안전한 분산 데이터 관리를 위한 방법 및 시스템
KR102193969B1 (ko) * 2019-03-29 2020-12-22 한국전자통신연구원 동적 데이터의 안전한 분산 데이터 관리를 위한 방법 및 시스템

Similar Documents

Publication Publication Date Title
US10514971B2 (en) Dispersed b-tree directory trees
US10437672B2 (en) Erasure coding and replication in storage clusters
US8886711B2 (en) File system adapted for use with a dispersed data storage network
CN111149093B (zh) 分布式存储系统的数据编码、解码及修复方法
US6704730B2 (en) Hash file system and method for use in a commonality factoring system
US8171102B2 (en) Smart access to a dispersed data storage network
US8751561B2 (en) Methods and systems for improved throughput performance in a distributed data de-duplication environment
AU2001238269B2 (en) Hash file system and method for use in a commonality factoring system
EP3430515A2 (en) Distributed storage system data management and security
US20070177739A1 (en) Method and Apparatus for Distributed Data Replication
US20100169500A1 (en) Systems, methods, and apparatus for matching a connection request with a network interface adapted for use with a with a dispersed data storage network
WO2016130091A1 (en) Methods of encoding and storing multiple versions of data, method of decoding encoded multiple versions of data and distributed storage system
KR101441059B1 (ko) 분산 파일 시스템에서 효율적인 자료 저장 방법
JP7139347B2 (ja) 散在ストレージ・ネットワークにおけるデータ・コンテンツの部分更新の方法
KR101621752B1 (ko) 부분접속 복구 가능한 반복분할 부호를 이용한 분산 저장 장치 및 그 방법
US20220321653A1 (en) Recovering a Data Chunk from a Portion of a Set of Encoded Data Slices
KR101128998B1 (ko) 패리티 데이터를 이용한 분산 파일 운용 방법
JP6671708B2 (ja) バックアップリストアシステム及びバックアップリストア方法
KR20190085743A (ko) 계층적 소거 코딩을 이용한 분산 파일시스템의 장애 복구 방법 및 이를 위한 장치
Chiniah et al. Object Storage System Using Replication and Erasure Codes (OSSREC)
Nataraj et al. A Survey on Object Storage System in Cloud Computing
US20180081546A1 (en) Modifying information dispersal algorithm (ida) thresholds by splitting existing slices

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170310

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180309

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20200310

Year of fee payment: 9