KR101426382B1 - 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법 - Google Patents

분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법 Download PDF

Info

Publication number
KR101426382B1
KR101426382B1 KR1020130034864A KR20130034864A KR101426382B1 KR 101426382 B1 KR101426382 B1 KR 101426382B1 KR 1020130034864 A KR1020130034864 A KR 1020130034864A KR 20130034864 A KR20130034864 A KR 20130034864A KR 101426382 B1 KR101426382 B1 KR 101426382B1
Authority
KR
South Korea
Prior art keywords
data
group
pipeline
recovery
job
Prior art date
Application number
KR1020130034864A
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 KR1020130034864A priority Critical patent/KR101426382B1/ko
Application granted granted Critical
Publication of KR101426382B1 publication Critical patent/KR101426382B1/ko

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
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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

Landscapes

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

Abstract

본 발명은 자료를 여러 개의 조각(slice)로 분할하고, 분할된 데이터를 적어도 2개 이상의 서버로 저장하는 새로운 구조를 갖는 분산 파일 시스템에서 그룹의 처리 데이터(job)를 일정 크기로 잘라서 파이프라인을 구축하여 자료를 복구하는 방법을 제공하기 위한 것으로서, (A) 메타데이터 서버로부터 가져온 복구 작업을 데이터 서버의 주소 기반으로 복구 작업을 분류하는 단계와, (B) 상기 분류된 복구 작업을 그룹별로 하나의 처리 작업 스트림으로 생성하고 이를 적어도 2개 이상의 파이프라인 조각으로 데이터를 분리하는 단계와, (C) 그룹의 복구 작업을 처리할 파이프라인을 구축하는 단계와, (D) 상기 구축된 파이프라인으로 상기 분리된 파이프라인 조각(데이터)을 해당 그룹에 차례로 전송하고 각각의 데이터 서버에서 복구연산을 수행하는 단계와, (E) 모든 파이프라인 데이터 처리가 완료될 때까지 상기 복구연산이 반복 수행되며, 모든 파이프라인 데이터 처리가 완료되면 구축된 파이프라인을 제거하는 단계를 포함하여 이루어지는데 있다.

Description

분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법{Method for data recovery using pipeline in distributed file system}
본 발명은 분산 파일 시스템에서의 자료 복구 방법에 관한 것으로, 특히 그룹의 처리 데이터(job)를 일정 크기로 잘라서 파이프라인을 구축하여 자료를 복구하는 방법에 관한 것이다.
종래의 스토리지(storage) 환경에서 저장되는 데이터의 대부분은 기업이나 기관에서 생성한 업무 관련 데이터였으나, 최근 인터넷 기술의 비약적인 발전으로 블로그, 사진, 동영상과 같은 멀티미디어 데이터들의 저장 비율도 급속도로 증가하고 있다. 특히, 국내외에서 인터넷 서비스를 실시중인 대형 포탈 업체의 경우에는 매월 수 테라바이트(Tera Byte : TB)-수십 테라바이트의 데이터가 새롭게 생성되어 저장 및 관리되고 있다. 그러나 기존의 저장 구조 환경은 스토리지 확장성 및 관리의 용이성에서 많은 문제점이 있기 때문에 변화 무쌍한 서비스 환경에 대체하기에는 부족하다.
따라서, 최근 스토리지 시스템 혹은 파일 시스템의 근원적인 기술 발전은 스토리지 시스템의 확장성(scalability) 및 성능의 향상에 기인하고 있다. 상세하게는, 파일 시스템 구조 측면에서 몇몇 시스템들이 파일의 데이터 입출력 경로와 파일의 메타데이터 관리 경로를 분리시켜서 분산 스토리지 시스템의 확장성과 성능을 높인 것이다. 이러한 구조를 적용하여 클라이언트 시스템이 저장 장치들에 직접 접근할 수 있게 하고, 메타데이터를 분산시켜서 빈번한 파일의 메타데이터 접근으로 인한 병목현상을 해소하여 스토리지의 확장성을 높인다.
이러한 구조를 기반으로 개발된 엔터프라이즈급 스토리지 솔루션으로 IBM의 StorageTank, Panasas의 ActiveScale Storage Cluster, 그리고 Cluster filesystems의 luster, Google의 Google Filesystem 등이 있다. 특히, Google Filesystem은 한 파일에 대한 블록 데이터를 다수의 데이터 서버에 복제하여 가용성을 더욱 높였다.
이 같은 네트워크 기반 분산 파일 시스템 환경에서는 클라이언트 파일 시스템, 메타데이터 서버 및 데이터 서버들이 네트워크를 통해 교신하면서 데이터의 입출력을 제공한다. 클라이언트는 특정 파일에 접근하기 위해서 메타데이터 서버로부터 파일의 실제 데이터가 저장된 블록의 위치 정보를 획득한 후, 블록이 위치한 데이터 서버에 접근하여 블록의 데이터를 읽어 이를 사용한다.
한편, 이러한 분산 파일 시스템에서 자료의 손상 및 서버(데이터 서버, 메타데이터 서버)나 디스크의 고장 등과 같은 장애가 발생되는 경우, 이를 빠르고 정확하게 감지하고 복구해 내는 것이 분산 파일 시스템의 성능을 크게 작용하는 매우 중요한 이슈로 작용한다.
이러한 분산 파일 시스템에서의 장애 발생에 대비하기 위해서, 일반적으로 다중 복제를 지원하는 분산 파일 시스템 환경에서는 최소한의 가용성을 보장하는 범위 내에서 아래와 같은 방법들을 사용하여 고장이 발생한 블록들을 복구한다.
첫 번째 방법은 모든 블록 정보를 메타데이터 서버의 메모리에 적재하고 고장 상황 발생시 메모리로부터 고장이 발생한 블록 정보를 수집한 후 블록을 복구하는 방법이다.
두 번째 방법은 모든 블록 정보를 별도의 데이터베이스에 저장하고 고장 상황 발생시 데이터베이스로부터 블록 정보를 수집한 후 블록을 복구하는 방법이다. 상세하게는 메타데이터 서버에 블록 정보 저장을 위한 전용의 데이터베이스를 구축하여 블록에 대한 변동이 발생할 때마다 데이터베이스를 편집하여 관리하는 방법이다.
세 번째 방법은 별도의 블록 정보를 관리하지 않고 고장이 발생할 때마다 모든 메타데이터를 검색하여 고장이 발생한 블록 정보를 수집한 후 블록을 복구하는 방법이다.
이처럼, 분산 파일 시스템은 장애 발생에 대비하여 다양한 복구 방법들이 연구되고 있으며, 새롭게 연구되어 설계되는 분산 파일 시스템의 테이블 구조에서도 이러한 새로운 구조에 맞는 복구 방법이 적용되어야 보다 효율적인 장애 복구가 가능할 것이다.
따라서 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 자료를 여러 개의 조각(slice)로 분할하고, 분할된 데이터를 적어도 2개 이상의 서버로 저장하는 새로운 구조를 갖는 분산 파일 시스템에서 그룹의 처리 데이터(job)를 일정 크기로 잘라서 파이프라인을 구축하여 자료를 복구하는 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적은 자료 복구에 참여하는 데이터서버가 하나의 파이프라인을 구성하고 처리할 데이터가 순서대로 나열된 작업(job) 스트림을 일정 크기로 잘라서 파이프라인에 처리하여 복구 작업시간을 줄일 수 있는 파이프라인을 이용한 자료 복구 방법을 제공하는데 있다.
상기와 같은 목적을 달성하기 위한 본 발명에 따른 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법의 특징은 (A) 메타데이터 서버로부터 가져온 복구 작업을 데이터 서버의 주소 기반으로 복구 작업을 분류하는 단계와, (B) 상기 분류된 복구 작업을 그룹별로 하나의 처리 작업 스트림으로 생성하고 이를 적어도 2개 이상의 파이프라인 조각으로 데이터를 분리하는 단계와, (C) 그룹의 복구 작업을 처리할 파이프라인을 구축하는 단계와, (D) 상기 구축된 파이프라인으로 상기 분리된 파이프라인 조각(데이터)을 그룹에 차례로 전송하고 각각의 데이터 서버에서 복구연산을 수행하는 단계와, (E) 모든 파이프라인 데이터 처리가 완료될 때까지 상기 복구연산이 반복 수행되며, 모든 파이프라인 데이터 처리가 완료되면 구축된 파이프라인을 제거하는 단계를 포함하여 이루어지는데 있다.
바람직하게 상기 그룹 키 집합은 복구하는데 필요한 파일이 저장된 복수개의 데이터 서버로 구성된 모든 조합(COMBIN함수)인 것을 특징으로 한다.
바람직하게 상기 (A) 단계는 메타데이터 서버에 복구 작업이 존재하는 경우, 복구 작업 별로 해당 복구 작업에 참여하는 데이터 서버의 주소 조합을 이용해 그룹 키 집합을 생성하는 단계와, 상기 생성된 그룹 키 집합에 해당하는 각 그룹에 작업을 추가하는 단계와, 모든 그룹의 그룹 age 값, 그룹 사이즈(그룹 내의 작업 수)를 고려하여 미리 정의된 우선순위가 가장 높은 제 1 그룹을 선택하고, 선택된 제 1 그룹 내의 작업을 처리하고, 처리된 제 1 그룹의 age 값을 0(zero)로 초기화하는 단계와, 상기 제 1 그룹에서 처리한 작업을 다른 모든 나머지 그룹들에서 모두 제거하고, 그룹 age 값을 증가(+1) 시키는 단계와, 모든 그룹 내의 작업이 모두 처리될 때까지 반복하는 단계를 포함하는 것을 특징으로 한다.
바람직하게 상기 (A) 단계는 메타데이터 서버에 복구 작업이 존재하지 않는 경우, 별도의 작업추가 없이 현재의 모든 그룹의 그룹 age 값, 그룹 사이즈(그룹 내의 작업 수)를 고려하여 미리 정의된 우선순위가 가장 높은 제 1 그룹을 선택하고, 선택된 제 1 그룹 내의 작업을 처리하고, 처리된 제 1 그룹의 age 값을 0(zero)로 초기화하는 단계와, 상기 제 1 그룹에서 처리한 작업을 다른 모든 나머지 그룹들에서 모두 제거하고, 그룹 age 값을 증가(+1) 시키는 단계와, 모든 그룹 내의 작업이 모두 처리될 때까지 반복하는 단계를 더 포함하는 것을 특징으로 한다.
바람직하게 상기 분리되는 파이프라인 조각은 데이터 서버의 스토리지 크기 이내로 데이터가 분리되는 것을 특징으로 한다.
바람직하게 상기 파이프라인의 구축 및 데이터 전송, 그리고 수행된 복구연산의 관리 및 처리는 구축된 파이프라인에 포함되는 어느 하나의 데이터 서버에서 이루어지는 것을 특징으로 한다.
바람직하게 상기 파이프라인의 구축 및 데이터 전송, 그리고 수행된 복구연산의 관리 및 처리는 구축된 파이프라인에 포함되지 않는 메타데이터 서버, 데이터 서버를 포함하는 임의의 서버 중 어느 하나에서 이루어지는 것을 특징으로 한다.
이상에서 설명한 바와 같은 본 발명에 따른 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법은 자료를 여러 개의 조각(slice)로 분할하고, 분할된 데이터를 적어도 2개 이상의 서버로 저장하는 새로운 구조를 갖는 분산 파일 시스템에서 자료 복구에 참여하는 복수의 데이터서버를 하나의 파이프라인으로 구성하여 복구 작업을 수행함으로써 복구 작업시간을 효율적으로 줄일 수 있는 효과가 있다. 또한, 이러한 복구 작업 시간의 절약뿐만 아니라, 네트워크 자원을 효율적으로 사용함으로써 복구작업으로 인한 부하가 서비스에 미치는 영향을 줄일 수 있는 효과가 있다.
도 1 은 본 발명의 실시예에 따른 분산 파일 시스템의 전체 구조를 나타낸 구성도
도 2 및 도 3 은 본 발명의 일 실시예에 따른 자료의 분산 저장 방법을 설명하기 위한 도면
도 4 는 본 발명의 실시예에 따른 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법을 설명하기 위한 흐름도
도 5 는 도 4에서 복구 작업을 분류하는 방법을 설명하기 위한 흐름도
도 6 내지 도 8 은 북구 작업을 분류하는 방법을 설명하기 위한 실시예
도 9 는 메타데이터 서버(130)에서 복구 작업을 가져온 것을 나타내고 있는 일 실시예
도 10 은 데이터 서버 주소 기반으로 복구 작업을 분류한 것을 나타내고 있는 일 실시예
도 11 은 그룹별로 하나의 처리 작업 스트림을 생성하는 과정을 설명하기 위한 도면
도 12 는 구축된 파이프라인을 통해 복구 연산을 수행하는 과정을 설명하기 위한 도면
본 발명의 다른 목적, 특성 및 이점들은 첨부한 도면을 참조한 실시예들의 상세한 설명을 통해 명백해질 것이다.
본 발명에 따른 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법의 바람직한 실시예에 대하여 첨부한 도면을 참조하여 설명하면 다음과 같다. 그러나 본 발명은 이하에서 개시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예는 본 발명의 개시가 완전하도록하며 통상의 지식을 가진자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 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) 각각이 공통적으로 수행할 수 있다.
그리고 자료의 분산 방법은 클라이언트를 통해 입력되는 원 파일을 각 데이터 서버 내 로컬 스토리지의 한 프레임에 해당하는 부호어(codeword) 크기 단위로 분할한다.
도 2 및 도 3 은 본 발명의 일 실시예에 따른 자료의 분산 저장 방법을 설명하기 위한 도면이다.
도 2 및 도 3과 같이, 하나의 원 파일이 d 개로 분할되어 d1~dd 분할 데이터가 순차적으로 나열된다. 그리고 이 분할 데이터에 따른 p개의 패리티 데이터(설명을 용이하게 하기 위해 여기서는 3개(p1~p3) 패리티 데이터를 기재하였다.)를 포함한다. 이때, 상기 d+p는 데이터 서버의 개수와 동일하거나 적은 수를 갖는 것이 바람직하다.
이처럼 상기 분할 데이터와 패리티 데이터로 분할된 d+p개의 분할 데이터들(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)를 저장하게 된다.
그리고 분산 파일 시스템(100)은 데이터 서버들(110a~110n)의 로컬 스토리지(120a~120n)에 각각 저장된 분할 데이터들의 위치정보를 포함하는 메타 정보를 별도의 메타데이터 서버(MDS)(130)에 저장한다.
이처럼, 본 발명에 따른 패리티 데이터를 이용한 자료의 분산 저장 방법에서는 하나의 원 파일이 d개로 분할되어 각각의 데이터 서버 내 로컬 스토리지에 각각 분할되어 저장되게 된다.
이와 같이 구성된 본 발명에 따른 분산 파일 시스템에서 효율적인 자료 복구 방법을 첨부한 도면을 참조하여 설명하면 다음과 같다.
도 4 는 본 발명의 실시예에 따른 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법을 설명하기 위한 흐름도이다.
도 4를 참조하여 설명하면, 먼저 메타데이터 서버(130)는 손상된 파일에 대한 복구 작업(recovery job)을 생성한다(S100).
이때, 상기 메타데이터 서버(130)에서 복구 작업을 생성하는 과정을 설명하면, 먼저 메타데이터 서버(130)는 장애가 발생된 데이터 서버(110)를 탐지한다. 상기 데이터 서버(110)의 장애 탐지는 읽기 작업 중 손상된 자료를 발견한 경우와, 데이터 서버(110)나 디스크(로컬 스토리지)(120) 자체에 고장이 발생하여 장애가 발생된 경우와, 메타데이터 서버(130)를 통한 데이터 서버(110)와의 주기적인 검사를 통해 "checksum"과 맞지 않는 자료가 발생, 네트워크 연결 단절, 데이터 서버 프로세스의 비정상 종료, 전원 불량 등에 의해 감지될 수 있다.
이어 메타데이터 서버(130)는 장애가 발생된 데이터 서버(110)가 탐지되면, 탐지된 데이터 서버(110)의 장애로부터 복구를 위해 재구성될 복구 데이터를 저장하고 있는 데이터 서버들의 위치를 검출한다. 이때 메타데이터 서버(130)는 파일의 네임스페이스 트리(file namespace tree)를 관리하기 위한 영역으로 각 디렉터리 및 파일의 계층 구조를 표현하며, 각 파일들의 이름, 크기, 권한 및 위치 정보 등 파일의 속성 및 파일에 대한 정보를 저장 및 관리한다. 따라서 메타데이터 서버(130)는 모든 데이터 서버에서 관리하는 모든 데이터 정보를 관리하며, 특정 데이터 서버의 고장에 대한 복구 정보를 수집할 수 있다.
이처럼 메타데이터 서버(130)에서 복구를 위해 검출된 데이터 서버에서는 복구에 사용될 정상적인 복구 데이터를 전송하고, 메타데이터 서버(130)는 전송된 복구 데이터를 이용하여 손상된 파일에 대한 복구 작업(recovery job)이 생성하게 된다.
이어 각 데이터 서버(110)들은 메타데이터 서버(130)로부터 생성된 복구 작업을 가져온다(S200). 도 9 는 메타데이터 서버(130)에서 복구 작업을 가져온 것을 나타내고 있는 일 실시예이다.
그리고 상기 데이터 서버(100)는 메타데이터 서버(130)에 가져온 복구 작업을 복구 작업 별로 분류한다(S300). 이때, 복구 작업의 분류는 데이터 서버(100)의 주소 기반으로 분류한다. 도 10 은 데이터 서버 주소 기반으로 복구 작업을 분류한 것을 나타내고 있는 일 실시예이다.
도 5 는 복구 작업을 분류하는 방법을 설명하기 위한 흐름도로서, 도 5를 참조하여 설명하면, 먼저 상기 데이터 서버(100)는 메타데이터 서버(130)에 복구 작업이 존재하는 경우(S310), 복구 작업 별로 해당 복구 작업에 참여하는 데이터 서버의 주소 조합을 이용해 그룹 키 집합을 생성한 후, 생성된 그룹 키 집합에 해당하는 각 그룹에 작업을 추가한다(S320). 참고로 분할 데이터가 RS(6,3) 모델의 경우 총 COMBIN(9,2)개의 조합이 생성되게 된다.
이때, 상기 그룹 키 집합을 생성하는 방법을 실시예로 상세한 설명하면, RS(6,3) 모델에서 제 1 데이터 서버(ds1)가 메타데이터 서버(130)로부터 가져온 복구 작업이 도 6과 같다고 정의한다. 참고로 도면의 진한부분이 각 작업(job) 별로 복구하는데 필요한 파일이 저장된 위치를 나타낸다.
이때, 각 작업의 그룹 키 집합은 복구하는데 필요한 파일이 저장된 데이터 서버 6개로 구성된 모든 조합(COMBIN함수)으로서, 도 6을 참조하면, 제 1 작업(job1)의 그룹 키 집합은 “ds2, ds3, ds4, ds5, ds6, ds7”, “ds2, ds3, ds4, ds5, ds6, ds8”, “ds2, ds3, ds4, ds7, ds8, ds9”, …로 각각 조합되어 생성되고, 제 2 작업(job2)의 그룹 키 집합은 “ds2, ds3, ds4, ds7, ds8, ds9”, “ds2, ds3, ds4, ds7, ds8, ds10”, “ds2, ds3, ds4, ds7, ds8, ds11”, …로 각각 조합되어 생성된다. 그리고 제 3 작업(job3)의 그룹 키 집합은 “ds3, ds4, ds5, ds8, ds9, ds10”, “ds3, ds4, ds5, ds8, ds9, ds11”, “ds3, ds4, ds5, ds8, ds11, ds12”, …로 각각 조합되어 생성된다. 아울러, 제 4 작업(job4), 제 5 작업(job5), 제 6 작업(job6)도 위와 같은 방법으로 그룹 키의 집합이 조합되어 생성되면, 도 7에서 도시하고 있는 것과 같이 그룹 키에 해당하는 각 그룹에 할당된 작업을 추가한다.
이처럼 각 그룹에 할당된 작업을 추가함으로써, 복구 작업이 충분히 모이면 모든 그룹의 그룹 age 값(작업 처리 여부를 나타내는 변수로 최초에는 0(zero)로 설정된다), 그룹 사이즈(그룹 내의 작업 수) 등을 고려하여 미리 정의된 우선순위가 가장 높은 제 1 그룹을 선택하고 선택된 제 1 그룹 내의 작업을 처리한다. 그리고 처리된 제 1 그룹의 age 값은 0(zero)로 초기화 한다(S330). 도 7을 참조하면, 모든 그룹 age 값은 0이고, 그룹 키 중 “ds2, ds3, ds4, ds7, ds8, ds9”에 해당하는 그룹의 작업이 그룹 사이즈가 가장 큰 것을 알 수 있다. 이에 따라 해당되는 그룹이 가장 높은 우선순위로 선택되는 것이 바람직하다. 그러나 이는 바람직한 하나의 실시예일 뿐, 이미 공지되어 있는 다양한 우선순위 알고리즘을 통해 우선순위가 변경될 수 있다.
이어 도 8에서 도시하고 있는 것과 같이, 상기 제 1 그룹에서 처리한 작업을 다른 모든 나머지 그룹들에서 모두 제거하고, 그룹 age 값을 증가(+1) 시킨다(S340).
그리고 이러한 과정은 모든 그룹의 사이즈가 0(zero)이 될 때까지, 즉 모든 그룹 내의 작업이 모두 처리될 때까지 반복한다(S350).
한편, 상기 데이터 서버(100)는 메타데이터 서버(130)에 복구 작업이 존재하지 않는 경우(S310), 이는 추가되는 복구 작업이 없으므로 현재의 모든 그룹의 그룹 age 값, 그룹 사이즈(그룹 내의 작업 수) 등을 고려하여 미리 정의된 우선순위가 가장 높은 제 1 그룹을 선택하고 선택된 제 1 그룹 내의 작업을 처리한다. 그리고 처리된 제 1 그룹의 age 값은 0(zero)로 초기화 한다(S360). 위에서 설명한 것과 마찬가지로 도 7을 참조하면, 모든 그룹 age 값은 0(zero)이고, 그룹 키 중 “ds2, ds3, ds4, ds7, ds8, ds9”에 해당하는 그룹의 작업이 그룹 사이즈가 가장 큰 것을 알 수 있다. 이에 따라 해당되는 그룹이 가장 높은 우선순위로 선택되는 것이 바람직하다. 그러나 이는 바람직한 하나의 실시예일 뿐, 이미 공지되어 있는 다양한 우선순위 알고리즘을 통해 우선순위가 변경될 수 있다.
이어 도 8에서 도시하고 있는 것과 같이, 상기 제 1 그룹에서 처리한 작업을 나머지 다른 모든 그룹들에서 모두 제거하고, 그룹 age 값을 증가(+1) 시킨다(S370). 아울러 이는 현재의 모든 그룹의 사이즈가 0(zero)이 될 때까지, 즉 모든 그룹 내의 작업이 모두 처리될 때까지 반복한다(S350).
이처럼 복구 작업을 복구 작업 별로 분류한 후(S300), 도 11에서 도시하고 있는 것과 같이 그룹별로 하나의 처리 작업 스트림을 생성하고 이를 적어도 2개 이상의 파이프라인 조각으로 데이터를 분리한다(S400). 이때 분리되는 파이프라인 조각은 데이터 서버(100)의 스토리지 크기 이내로 데이터가 분리되는 것이 바람직하다.
그리고 그룹의 복구 작업을 처리할 파이프라인을 구축한 후(S500), 구축된 파이프라인으로 상기 분리된 파이프라인 조각(데이터)을 그룹에 차례로 전송하여 각각의 데이터 서버(100)에서 복구연산을 수행한다(S600). 이때, 파이프라인의 구축 및 데이터 전송, 그리고 수행된 복구연산의 관리 및 처리는 도 12에서 도시하고 있는 것과 같이, 구축된 파이프라인에 포함되는 어느 하나의 데이터 서버를 마스터 서버로 구성하여 이루어지며, 이중 파이프라인의 끝(터미널)에 존재하는 복구 대상 데이터 서버에서 이루어지는 것이 바람직하다. 그러나 이는 바람직한 하나의 일 실시예일 뿐 구축된 파이프라인에 포함되지 않은 독립된 데이터 서버에서 수행될 수도 있다.
아울러, 상기 복구연산은 모든 파이프라인 데이터 처리가 완료될 때까지 반복 수행하며(S700), 모든 파이프라인 데이터 처리가 완료되면 구축된 파이프라인을 제거한다(S800).
상기에서 설명한 본 발명의 기술적 사상은 바람직한 실시예에서 구체적으로 기술되었으나, 상기한 실시예는 그 설명을 위한 것이며 그 제한을 위한 것이 아님을 주의하여야 한다. 또한, 본 발명의 기술적 분야의 통상의 지식을 가진자라면 본 발명의 기술적 사상의 범위 내에서 다양한 실시예가 가능함을 이해할 수 있을 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (7)

  1. (A) 메타데이터 서버로부터 가져온 복구 작업을 데이터 서버의 주소 기반으로 복구 작업을 분류하는 단계와,
    (B) 상기 분류된 복구 작업을 그룹별로 하나의 처리 작업 스트림으로 생성하고 이를 적어도 2개 이상의 파이프라인 조각으로 데이터를 분리하는 단계와,
    (C) 그룹의 복구 작업을 처리할 파이프라인을 구축하는 단계와,
    (D) 상기 구축된 파이프라인으로 상기 분리된 파이프라인 조각(데이터)을 그룹에 차례로 전송하고 각각의 데이터 서버에서 복구연산을 수행하는 단계와,
    (E) 모든 파이프라인 데이터 처리가 완료될 때까지 상기 복구연산이 반복 수행되며, 모든 파이프라인 데이터 처리가 완료되면 구축된 파이프라인을 제거하는 단계를 포함하여 이루어지고,
    이때, 상기 (A) 단계는
    메타데이터 서버에 복구 작업이 존재하는 경우, 복구 작업 별로 해당 복구 작업에 참여하는 데이터 서버의 주소 조합을 이용해 그룹 키 집합을 생성하는 단계와,
    상기 생성된 그룹 키 집합에 해당하는 각 그룹에 작업을 추가하는 단계와,
    모든 그룹의 그룹 age 값, 그룹 사이즈(그룹 내의 작업 수)를 고려하여 미리 정의된 우선순위가 가장 높은 제 1 그룹을 선택하고, 선택된 제 1 그룹 내의 작업을 처리하고, 처리된 제 1 그룹의 age 값을 0(zero)로 초기화하는 단계와,
    상기 제 1 그룹에서 처리한 작업을 다른 모든 나머지 그룹들에서 모두 제거하고, 그룹 age 값을 증가 시키는 단계와,
    모든 그룹 내의 작업이 모두 처리될 때까지 반복하는 단계를 포함하는 것을 특징으로 하는 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법.
  2. 제 1 항에 있어서,
    상기 그룹 키 집합은 복구하는데 필요한 파일이 저장된 복수개의 데이터 서버로 구성된 모든 조합인 것을 특징으로 하는 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법.
  3. 삭제
  4. 제 1 항에 있어서, 상기 (A) 단계는
    메타데이터 서버에 복구 작업이 존재하지 않는 경우, 별도의 작업추가 없이 현재의 모든 그룹의 그룹 age 값, 그룹 사이즈(그룹 내의 작업 수)를 고려하여 미리 정의된 우선순위가 가장 높은 제 1 그룹을 선택하고, 선택된 제 1 그룹 내의 작업을 처리하고, 처리된 제 1 그룹의 age 값을 0(zero)로 초기화하는 단계와,
    상기 제 1 그룹에서 처리한 작업을 다른 모든 나머지 그룹들에서 모두 제거하고, 그룹 age 값을 증가 시키는 단계와,
    모든 그룹 내의 작업이 모두 처리될 때까지 반복하는 단계를 더 포함하는 것을 특징으로 하는 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법.
  5. 제 1 항에 있어서,
    상기 분리되는 파이프라인 조각은 데이터 서버의 스토리지 크기 이내로 데이터가 분리되는 것을 특징으로 하는 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법.
  6. 제 1 항에 있어서,
    상기 파이프라인의 구축 및 데이터 전송, 그리고 수행된 복구연산의 관리 및 처리는 구축된 파이프라인에 포함되는 어느 하나의 데이터 서버에서 이루어지는 것을 특징으로 하는 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법.
  7. 제 1 항에 있어서,
    상기 파이프라인의 구축 및 데이터 전송, 그리고 수행된 복구연산의 관리 및 처리는 구축된 파이프라인에 포함되지 않는 메타데이터 서버, 데이터 서버를 포함하는 임의의 서버 중 어느 하나에서 이루어지는 것을 특징으로 하는 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법.
KR1020130034864A 2013-03-29 2013-03-29 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법 KR101426382B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130034864A KR101426382B1 (ko) 2013-03-29 2013-03-29 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130034864A KR101426382B1 (ko) 2013-03-29 2013-03-29 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법

Publications (1)

Publication Number Publication Date
KR101426382B1 true KR101426382B1 (ko) 2014-08-13

Family

ID=51749472

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130034864A KR101426382B1 (ko) 2013-03-29 2013-03-29 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법

Country Status (1)

Country Link
KR (1) KR101426382B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09146782A (ja) * 1995-11-24 1997-06-06 Hitachi Ltd ジョブ間データ引き継ぎにおける異常発生時の対応方法
JP2004145755A (ja) 2002-10-25 2004-05-20 Ntt Communications Kk データ分割方法及びデータ復元方法並びにプログラム
WO2011133299A2 (en) 2010-04-21 2011-10-27 Microsoft Corporation Automated recovery and escalation in complex distributed applications
KR20120090320A (ko) * 2011-02-07 2012-08-17 케이티하이텔 주식회사 분산 파일 시스템에서 효율적인 자료 복구 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09146782A (ja) * 1995-11-24 1997-06-06 Hitachi Ltd ジョブ間データ引き継ぎにおける異常発生時の対応方法
JP2004145755A (ja) 2002-10-25 2004-05-20 Ntt Communications Kk データ分割方法及びデータ復元方法並びにプログラム
WO2011133299A2 (en) 2010-04-21 2011-10-27 Microsoft Corporation Automated recovery and escalation in complex distributed applications
KR20120090320A (ko) * 2011-02-07 2012-08-17 케이티하이텔 주식회사 분산 파일 시스템에서 효율적인 자료 복구 방법

Similar Documents

Publication Publication Date Title
US11940952B2 (en) Techniques for serving archived electronic mail
US10956275B2 (en) Collaborative restore in a networked storage system
US20230350589A1 (en) Making more active use of a secondary storage system
US10846266B2 (en) Distributed architecture for content indexing emails
US20220229736A1 (en) Synthesizing a restore image from one or more secondary copies to facilitate data restore operations to a file server
US11086834B2 (en) Distributed framework for data proximity-based task splitting in a content indexing system
US8548953B2 (en) File deduplication using storage tiers
US8112463B2 (en) File management method and storage system
US9928210B1 (en) Constrained backup image defragmentation optimization within deduplication system
US11321190B2 (en) Distributed framework for task splitting and task assignments in a content indexing system
US10108635B2 (en) Deduplication method and deduplication system using data association information
US20210334171A1 (en) Distributed content indexing architecture with separately stored file previews
US11609827B2 (en) Distributed architecture for tracking content indexing
US20190087286A1 (en) Distributed architecture for content indexing using restored secondary copies
US20190087285A1 (en) Distributed content indexing architecture with combined backup and content indices
US20190303035A1 (en) Copying garbage collector for geographically distributed data storage environment
KR101254179B1 (ko) 분산 파일 시스템에서 효율적인 자료 복구 방법
KR101426382B1 (ko) 분산 파일 시스템에서 파이프라인을 이용한 자료 복구 방법
CN114490509A (zh) 跟踪改变数据捕获日志历史

Legal Events

Date Code Title Description
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170720

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180719

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190710

Year of fee payment: 6