KR100994342B1 - 분산 파일 시스템 및 복제본 기반 장애 처리 방법 - Google Patents

분산 파일 시스템 및 복제본 기반 장애 처리 방법 Download PDF

Info

Publication number
KR100994342B1
KR100994342B1 KR1020080051249A KR20080051249A KR100994342B1 KR 100994342 B1 KR100994342 B1 KR 100994342B1 KR 1020080051249 A KR1020080051249 A KR 1020080051249A KR 20080051249 A KR20080051249 A KR 20080051249A KR 100994342 B1 KR100994342 B1 KR 100994342B1
Authority
KR
South Korea
Prior art keywords
replica
data server
log
failure
copy
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020080051249A
Other languages
English (en)
Other versions
KR20090124829A (ko
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 KR1020080051249A priority Critical patent/KR100994342B1/ko
Publication of KR20090124829A publication Critical patent/KR20090124829A/ko
Application granted granted Critical
Publication of KR100994342B1 publication Critical patent/KR100994342B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • G06F11/1471Error detection or correction of the data by redundancy in operations involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/184Distributed file systems implemented as replicated file system

Landscapes

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

Abstract

분산 파일 시스템 및 복제본 기반 장애 처리 방법이 개시된다. 복제본 기반 장애 처리 방법은 오너 별 복제본을 저장하는 제1 데이터 서버에서 일시적 장애가 발생하는 단계, 상기 제1 데이터 서버가 제2 데이터 서버에 상기 복제본에 대한 파일 연산 내용이 기록된 로그를 요청하는 단계 및 상기 제1 데이터 서버가 상기 로그를 이용하여 상기 복제본을 복구하는 단계를 포함할 수 있다.
Figure R1020080051249
분산 파일 시스템, 일시적 장애, 영구적 장애, 데이터 서버,

Description

분산 파일 시스템 및 복제본 기반 장애 처리 방법{DISTRIBUTED FILE SYSTEM AND METHOD FOR REPLICA-BASED FAULT TREATMENT}
본 발명은 분산 파일 시스템 및 복제본 기반 장애 처리 방법에 관한 것으로, 보다 자세하게는 데이터 서버에 발생된 장애를 일시적 장애 또는 영구적 장애로 분류하여 처리하는 분산 파일 시스템 및 복제본 기반 장애 처리 방법에 관한 것이다.
최근, 대량의 파일 데이터를 저장하기 위해 다수의 저가(low price)의 서버를 이용하여 분산 파일 시스템을 구축하는 방법이 제시되고 있다. 이러한 분산 파일 시스템은 다수의 저가의 서버가 파일 데이터를 분산하여 처리하기 때문에, 비용과 성능 면에서 탁월한 효과를 발휘한다.
다만, 저가의 서버를 이용하는 경우, 파일 데이터에 장애가 빈번하게 발생된다. 즉, 저가의 서버를 이용하면, 분산 파일 시스템을 구성하기 위한 하드웨어 비용을 줄일 수 있는 장점이 있지만, 동시에 저가의 서버에 따른 높은 장애 발생 빈도 때문에 시스템의 연산 능력이 저하되는 단점도 동시에 존재한다.
따라서, 분산 파일 시스템에 있어 저가의 서버를 이용한 장점을 유지하면서, 빈번히 발생되는 서버의 장애를 효과적으로 처리하는 방법이 요구된다.
본 발명은 데이터 서버에 발생된 장애를 장애 유형에 따라 구분하여 처리하는 분산 파일 시스템 및 복제본 기반 장애 처리 방법을 제공한다.
본 발명은 데이터 서버에 일시적 장애가 발생하는 경우, 복제본을 복구하고, 영구적 장애가 발생하는 경우, 복제본을 이동시킴으로써 복제본 가용성을 유지하는 분산 파일 시스템 및 복제본 기반 장애 처리 방법을 제공한다.
본 발명은 복제본 복구 시, 일시적 장애 기간 동안의 파일 연산 내용을 기록한 로그와 복제본 복구 중 파일 연산 내용을 기록한 로그를 재연(replay)함으로써 파일 연산 요청을 효율적으로 반영할 수 있는 분산 파일 시스템 및 복제본 기반 장애 처리 방법을 제공한다.
본 발명은 복제본 이동 시, 신규로 할당된 데이터 서버에 복제본을 복사하여 이동시킴으로써 장애 발생 이전의 복제본 상태를 유지할 수 있는 분산 파일 시스템 및 복제본 기반 장애 처리 방법을 제공한다.
본 발명의 일실시예에 따른 복제본 기반 장애 처리 방법은 오너(owner) 별 복제본을 저장하는 제1 데이터 서버에서 일시적 장애가 발생하는 단계, 상기 제1 데이터 서버가 제2 데이터 서버에 상기 복제본에 대한 파일 연산 내용이 기록된 로그를 요청하는 단계 및 상기 제1 데이터 서버가 상기 로그를 이용하여 상기 복제본을 복구하는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 복제본 기반 장애 처리 방법은 오너 별 복제본을 저장하는 제1 데이터 서버에서 영구적 장애가 발생하는 단계, 메타데이터 서버가 상기 복제본의 복사를 수행할 제2 데이터 서버를 선택하는 단계, 상기 메타데이터 서버가 상기 복수의 데이터 서버 중 상기 복제본이 이동될 제3 데이터 서버를 할당하는 단계 및 상기 메타데이터 서버의 복제본 이동 명령에 따라 상기 제2 데이터 서버가 상기 제3 데이터 서버에 상기 복제본을 복사하여 이동시키는 단계를 포함할 수 있다.
본 발명의 일실시예에 따른 데이터 서버는 오너 별 복제본을 저장하는 복제본 저장부, 상기 오너에 속한 파일에 대한 파일 연산 요청에 따라 파일 연산을 수행하는 파일 연산 수행부 및 장애가 발생하는 경우, 복제본을 이용하여 장애 유형에 따라 장애를 처리하는 장애 처리부를 포함할 수 있다.
본 발명에 따르면, 데이터 서버에 발생된 장애를 장애 유형에 따라 구분하여 처리하는 분산 파일 시스템 및 복제본 기반 장애 처리 방법이 제공된다.
본 발명에 따르면, 데이터 서버에 일시적 장애가 발생하는 경우, 복제본을 복구하고, 영구적 장애가 발생하는 경우, 복제본을 이동시킴으로써 복제본 가용성을 유지하는 분산 파일 시스템 및 복제본 기반 장애 처리 방법이 제공된다.
본 발명에 따르면, 복제본 복구 시, 일시적 장애 기간 동안의 파일 연산 내용을 기록한 로그와 복제본 복구 중 파일 연산 내용을 기록한 로그를 재연함으로써 파일 연산 요청을 효율적으로 반영할 수 있는 분산 파일 시스템 및 복제본 기반 장 애 처리 방법이 제공된다.
본 발명은 복제본 이동 시, 신규로 할당된 데이터 서버에 복제본을 복사하여 이동시킴으로써 장애 발생 이전의 복제본 상태를 유지할 수 있는 분산 파일 시스템 및 복제본 기반 장애 처리 방법이 제공된다.
이하, 첨부된 도면들에 기재된 내용들을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다. 다만, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다. 본 발명의 일실시예에 따른 분산 파일 시스템에서의 장애 처리 방법은 데이터 서버에 의해 수행될 수 있다.
도 1은 본 발명의 일실시예에 따른 분산 파일 시스템의 전체 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 분산 파일 시스템은 클라이언트 서버(101), 메타데이터 서버(102) 및 복수의 데이터 서버(103-1, 103-2, 103-3, 103-4)를 포함할 수 있다. 본 발명의 일실시예에 따른 데이터 서버의 개수는 제한이 없다.
본 발명의 일실시예에 따른 분산 파일 시스템은 데이터 서버(103-1, 103-2, 103-3, 103-4)에 발생된 장애를 일시적 장애와 영구적 장애로 구분하여 처리할 수 있다. 이 때, 메타데이터 서버(102)는 분산 파일 시스템을 구성하는 데이터 서버들(103-1, 103-2, 103-3, 103-4)의 상태를 감시하여, 장애의 유형을 일시적 장애 또는 영구적 장애로 판정할 수 있다.
이 때, 일시적 장애는 데이터 서버 자체의 결함보다는 외부적인 요인(예, 네트워크상 순간 장애)에 의해 발생한 후 짧은 시간 내에 정상으로 돌아오는 장애를 의미한다. 이와 달리, 영구적 장애는 데이터 서버 자체의 결함(예. 전원 공급부 고장)으로 인해 발생하여 정상적인 동작을 할 수 없는 장애를 의미한다. 이하에서는, 본 발명의 일실시예에 따른 분산 파일 시스템의 전체 구성이 설명되고, 데이터 서버에 장애가 발생하는 경우 장애를 처리하는 과정이 설명된다.
본 발명의 일실시예에 따른 분산 파일 시스템에 있어 클라이언트 서버(101)는 복수일 수 있다. 일례로, 메타데이터 서버(102)와 복수의 데이터 서버(103-1, 103-2, 103-3, 103-4)가 하나의 클러스터를 구성할 수 있다. 이 때, 분산 파일 시스템은 적어도 하나의 클러스터를 포함할 수 있다.
데이터 서버(103-1, 103-2, 103-3) 각각은 오너(owner) 별 복제본(replica)을 저장할 수 있다. 일례로, 오너는 데이터 서버(103-1, 103-2, 103-3)에 저장된 파일을 그룹화하는 단위로, 상기 파일의 디렉토리에 기초하여 결정될 수 있다. 다시 말해, 오너 별 복제본은 오너 별로 그룹화된 파일의 집합을 의미한다.
도 1을 참고하면, 데이터 서버(103-1, 103-2, 103-3) 각각은 소정의 오너에 대해 생성된 3개의 복제본 X를 하나씩 저장할 수 있다. 특정 오너에 대해 생성되는 복제본의 개수는 제한이 없다. 그리고, 데이터 서버(103-1, 103-2, 103-3) 각각은 다른 오너에 대한 복제본도 저장할 수 있다. 오너에 대해서 도 2에서 구체적으로 설명된다.
메타데이터 서버(102)는 오너 별 복제본의 저장 위치 정보로 구성된 상기 오너 별 메타데이터를 저장할 수 있다. 이 때, 오너 별 복제본의 저장 위치 정보는 상기 오너 별 복제본이 저장된 데이터 서버의 리스트를 의미한다.
클라이언트 서버(101)는 메타데이터 서버(102)에 소정의 오너에 대한 메타데이터를 요청하여 메타데이터를 반환 받을 수 있다. 이 때, 소정의 오너는 클라이언트 서버(101)가 처리하고자 하는 파일이 속한 오너를 의미한다. 그러면, 클라이언트 서버(101)는 메타데이터를 통해 상기 소정의 오너의 복제본 저장 위치인 데이터 서버를 확인할 수 있다.
도 1에서 볼 수 있듯이, 클라이언트 서버(101)는 오너의 복제본이 저장된 데이터 서버 1(103-1), 데이터 서버 2(103-2) 및 데이터 서버 3(103-3)에 파일 연산을 요청할 수 있다. 즉, 클라이언트 서버(101)는 오너의 복제본이 저장되지 않은 데이터 서버 4(103-4)에 파일 연산을 요청하지 않는다.
이 때, 파일 연산의 내용에 따라 클라이언트 서버(101)가 데이터 서버(103)에 파일 연산 요청하는 방식이 달라질 수 있다. 예를 들면, 파일 쓰기 연산 또는 파일 삭제 연산의 경우, 복제본의 상태를 변경시키는 것이기 때문에, 동일한 오너에 대한 복수의 복제본이 함께 변경되어야 한다.
즉, 복제본의 상태를 변경하는 파일 연산 요청의 경우, 클라이언트 서버(101)는 동일한 오너에 대한 복수의 복제본이 각각 저장된 데이터 서버 1(103-1), 데이터 서버 2(103-2) 및 데이터 서버 3(103-3)에 파일에 대한 연산 요청을 할 수 있다.
본 발명의 일실시예에 따른 분산 파일 시스템에서 데이터 서버(103-2)에 장애가 발생하는 경우, 분산 파일 시스템은 장애 유형에 따라 장애를 처리할 수 있다. 이 때, 장애 유형은 일시적 장애 또는 영구적 장애로 구분될 수 있다.
일례로, 데이터 서버 2(103-2)에 일시적 장애가 발생하는 경우, 데이터 서버 2(103-2)는 장애 기간 동안 파일 요청에 따른 복제본 변경 사항을 재연함으로써 복제본을 복구할 수 있다.
또 다른 일례로, 데이터 서버 2(103-2)에 영구적 장애가 발생하는 경우, 동일한 복제본을 저장하는 데이터 서버 1(103-1) 또는 데이터 서버 3(103-3) 중 어느 하나의 데이터 서버가 데이터 서버 2(103-2)를 대체할 데이터 서버 4(103-4)에 복제본을 복사함으로써 복제본을 이동시킬 수 있다. 이 때, 데이터 서버 4(103-4)는 데이터 서버 1(103-1), 데이터 서버 2(103-2) 및 데이터 서버 3(103-3)이 저장하고 있는 오너 별 복제본과 다른 오너의 복제본을 저장한 서버를 의미한다. 분산 파일 시스템은 복제본 이동을 통해 영구적 장애가 발생하기 이전의 오너 별 복제본의 개수를 계속 유지할 수 있다.
도 1을 참고하면, 데이터 서버(103-1, 103-2, 103-3)는 분산 파일 시스템의 가용성을 향상시키기 위해 오너 별로 생성된 복수의 복제본 중 하나의 복제본을 저장할 수 있다. 본 발명의 일실시예에 따른 분산 파일 시스템은 저가의 데이터 서버를 사용하기 때문에, 장애가 쉽게 발생할 수 있다.
따라서, 빈번한 장애를 효과적으로 처리하기 위해 본 발명의 일실시예에 따른 분산 파일 시스템은 하나의 오너에 대한 복수 개의 복제본을 물리적으로 다른 데이터 서버(103-1, 103-2, 103-3)에 저장할 수 있다. 결국, 특정 데이터 서버에 오류가 발생하여 어느 하나의 복제본에 장애가 발생하더라도 분산 파일 시스템은 장애가 없는 복제본을 이용하여 장애가 발생한 복제본을 복구할 수 있다.
장애를 처리하는 구체적인 과정에 대해서는 도 3 내지 도 7에서 구체적으로 설명된다.
도 2는 본 발명의 일실시예에 따른 디렉토리에 기초한 오너 단위로 파일을 그룹화하고, 오너의 복제본이 데이터 서버에 저장되는 일례를 도시한 도면이다.
도 2를 참고하면, 데이터 서버에 저장된 파일 디렉토리(201)가 도시되어 있다. 이 때, 파일 디렉토리(201)는 서브 디렉토리인 dir1로 구성되어 있다. 이 때, 서브 디렉토리 dir1에 file 1, file 2, file 3이 저장되어 있다. 본 발명의 일실시예에 따르면, 오너(owner)는 파일의 디렉토리에 기초하여 결정될 수 있다. 다시 말해서, 오너는 데이터 서버에 실제 저장된 파일의 디렉토리와 대응될 수 있다.
결국, 데이터 서버의 파일은 오너 단위에 따라 관리될 수 있다. 즉, 본 발명의 일실시예에 따른 분산 파일 시스템은 파일 각각에 대해 관리하는 것이 아니라 파일의 디렉토리(즉, 오너 단위)별로 관리하여 파일을 효율적으로 관리할 수 있다. 그리고, 파일이 디렉토리 단위인 오너로 관리되기 때문에, 적은 용량의 파일의 개수가 기하급수적으로 증가하더라도 분산 파일 시스템이 처리하는 메타데이터의 양은 상대적으로 덜 증가하게 된다.
이 때, 도 2를 참고하면, 파일의 디렉토리인 dir/dir1는 오너 1로 결정될 수 있다. 그리고, dir 디렉토리에 대해서도 오너 1과 다른 오너가 결정될 수 있다. 만약, 파일 디렉토리(201)에 dir/dir2, dir/dir3인 디렉토리가 존재한다면, 상기 디렉토리 각각은 오너 1과 다른 오너 2, 오너 3으로 결정될 수 있다. 즉, 데이터 서버에 저장된 파일은 오너 단위에 따라 그룹화될 수 있다.
본 발명의 일실시예에 따르면, 분산 파일 시스템은 오너 별 복제본을 생성할 수 있다. 이 때, 오너 별로 생성되는 복제본의 개수는 제한이 없다. 도 2를 참고하면, dir/dir1인 디렉토리가 오너 1로 결정되는 경우, 오너 1에 대한 3개의 복제본 X(202-1, 202-2, 202-3)가 생성되는 것을 알 수 있다. 이 때, 오너 별로 생성되는 복제본의 개수는 제한이 없다.
그러면, 데이터 서버는 오너 별로 생성된 복제본 중 어느 하나를 저장할 수 있다. 예를 들어, 오너 1에 대해 복수의 복제본 X가 생성되고, 오너 2에 대해 복수의 복제본 Y가 생성되는 경우, 데이터 서버 각각은 복제본 X 하나 또는 복제본 Y 하나를 저장할 수 있다. 결국, 데이터 서버는 하나의 복제본을 저장함으로써 복수의 파일을 관리할 수 있다.
도 2에서 볼 수 있듯이, 오너 1에 대해 복제본 X가 3개가 생성되는 경우, 복제본 X(202-1)는 데이터 서버 1(103-1)에 저장되고, 복제본 X(202-2)는 데이터 서버 2(103-2)에 저장될 수 있다. 또한, 오너 1에 대한 복제본 X(202-3)는 데이터 서버 3(103-3)에 저장될 수 있다. 이 때, 데이터 서버 1(103-1), 데이터 서버 2(103-2) 또는 데이터 서버 3(103-3)은 오너 1과 다른 오너에 대한 복제본도 저장할 수 있다. 즉, 데이터 서버 각각에 저장되는 오너 별 복제본의 개수는 제한이 없다.
결국, 본 발명의 일실시예에 따른 분산 파일 시스템은 오너 별로 생성된 복제본을 물리적으로 구분된 데이터 서버 각각에 저장할 수 있다. 만약, 어느 하나의 데이터 서버에 장애가 발생하더라도, 장애가 발생하지 않은 다른 데이터 서버에 저장된 정상적인 복제본을 이용함으로써 효율적인 파일 연산이 수행될 수 있다.
도 3은 본 발명의 일실시예에 따른 분산 파일 시스템이 일시적 장애를 처리하는 방법을 도시한 플로우차트이다.
일례로, 분산 파일 시스템은 복수의 데이터 서버로 구성될 수 있다. 도 3에서 설명되는 제1 데이터 서버 및 제2 데이터 서버는 복수의 데이터 서버 중 어느 하나의 데이터 서버를 의미한다. 복수의 데이터 서버 각각은 오너 별 복제본을 저장할 수 있다.
단계 S301에서, 제1 데이터 서버에 일시적 장애가 발생할 수 있다. 이 때, 일시적 장애는 장애가 발생되기 이전에 제1 데이터 서버에 저장된 복제본을 이용할 수 있는 경우의 장애를 의미한다. 예를 들면, 일시적 장애는 네트워크의 이상이나, 데이터 서버의 재부팅 등 비교적 짧은 시간에 장애가 해소되어 저장된 복제본을 다시 이용할 수 있는 장애를 의미한다.
단계 S302에서, 제1 데이터 서버는 복제본에 대한 파일 연산이 기록된 로그를 제2 데이터 서버에 요청할 수 있다. 단계 S302는 일시적 장애가 해소된 후에 수행될 수 있다. 이 때, 제2 데이터 서버는 복수의 데이터 서버 중 제1 데이터 서버와 소정의 오너에 대한 동일한 복제본을 저장하는 어느 하나의 데이터 서버를 의 미할 수 있다.
일례로, 제1 데이터 서버는 제2 데이터 서버에 MO(Missed Operation) 로그를 요청할 수 있다. 이 때, MO 로그는 제2 데이터 서버의 복제본에 일시적 장애 발생 시점부터 일시적 장애 해소 시점까지의 장애 기간 동안 요청된 파일 연산 내용이 기록된 로그일 수 있다.
도 1을 참고하면, 클라이언트 서버는 복제본을 저장하고 있는 데이터 서버에 소정의 오너에 속하는 파일에 대한 연산 요청을 할 수 있다. 이 때, 제1 데이터 서버에 장애가 발생하는 경우, 클라이언트 서버는 장애가 발생하지 않은 제2 데이터 서버에 파일에 대한 연산 요청을 할 수 있다. 그러면, 제2 데이터 서버는 파일 연산을 수행할 수 있다. 이 때, 제2 데이터 서버는 장애 기간 동안 클라이언트 서버가 요청한 파일 연산 내용을 MO 로그로 기록할 수 있다. 결국, 제1 데이터 서버는 일시적 장애가 해소된 후, 제2 데이터 서버가 기록하여 생성한 MO 로그를 요청할 수 있다.
단계 S303에서, 제1 데이터 서버는 MO 로그를 이용하여 복제본을 복구할 수 있다. 일례로, 제1 데이터 서버는 MO 로그에 기록된 파일 연산 내용을 재연하여 복제본을 업데이트함으로써 복제본을 복구할 수 있다. 다시 말해서, 제1 데이터 서버는 제2 데이터 서버가 기록한 MO 로그를 재연함으로써, 일시적 장애로 인해 수행하지 못한 파일 연산 내용을 장애가 발생하기 이전의 복제본에 업데이트하여 복제본을 복구할 수 있다.
단계 S304에서, 제1 데이터 서버는 복제본 복구 중, 복제본에 대한 파일 연 산 요청을 수신한 경우, 파일 연산 내용을 로그에 기록할 수 있다. 일례로, 제1 데이터 서버는 복제본 복구 중 복제본에 요청된 파일 연산 내용을 DO(Delayed Operation) 로그에 기록할 수 있다.
단계 S305에서, 복제본의 복구가 완료되면 제1 데이터 서버가 DO 로그를 이용하여 복제본에 대해 파일 연산을 수행할 수 있다. 즉, 복제본의 복구 도중에 파일 연산을 수행할 수 없다. 이 때, 제1 데이터 서버는 복제본의 복구가 완료된 후 DO 로그를 재연하여 복제본 복구에 따른 지연된 파일 연산을 수행함으로써, 복제본을 최신 상태로 유지할 수 있다.
일례로, DO 로그를 이용하여 지연된 파일 연산을 수행하는 경우, 제1 데이터 서버는 오너 별 재연 잠금(replay lock)을 이용하여 파일 연산을 수행할 수 있다. 이 때, 오너 별 재연 잠금은 제1 데이터 서버가 저장 중인 오너 별 복제본 각각에 대해 생성될 수 있다.
제1 데이터 서버는 DO 로그를 재연하여 지연된 파일 연산을 수행할 수 있다. 이 때, DO 로그를 재연하는 동안, 제1 데이터 서버가 파일 연산 요청을 수신하는 경우 DO 로그가 추가로 생성될 수 있다. DO 로그가 추가적으로 생성되는 것을 방지하기 위해, 제1 데이터 서버는 재연 잠금 없이 DO 로그를 재연하고, 재연 잠금을 획득한 후, 다시 DO 로그를 재연할 수 있다. 즉, 제1 데이터 서버는 재연 잠금을 통해 DO 로그를 2번 재연할 수 있다. 이 때, 두 번째 DO 로그 재연은 재연 잠금을 획득한 후 수행되므로, 첫 번째 DO 로그 재연 이후에 파일 연산 요청에 의해 DO 로그가 재생성 되지 않을 수 있다.
결국, 분산 파일 시스템은 재연 잠금을 통해 DO 로그를 2번 재연함으로써, DO 로그를 재연하는 도중 복제본에 대한 파일 연산 요청으로 인해 DO 로그가 추가로 생성되는 것을 방지할 수 있다.
결국, 일시적 장애의 경우, 장애가 해소되면 제1 데이터 서버는 MO 로그를 재연하여 복제본을 복구할 수 있다. 또한, 제1 데이터 서버는 복제본 복구 중에 생성된 DO 로그를 재연하여 최신 상태의 복제본을 유지할 수 있다. 즉, 일시적 장애가 발생한 제1 데이터 서버는 장애 기간 중 생성한 로그를 장애 해소 후에 재연하고, 복구 중의 로그를 복구가 완료된 후 재연함으로써, 분산 파일 시스템 전체의 일관성이 유지될 수 있다.
도 4는 본 발명의 일실시예에 따라 일시적 장애를 처리하는 구체적인 과정을 도시한 플로우차트이다. 이 때, 도 4는 도 1의 구성을 참고로 하여 설명된다.
데이터 서버 2(103-2)와 데이터 서버 3(103-3)은 오너 별 복제본을 저장하고 유지할 수 있다(S401, S402). 이 때, 데이터 서버 2(103-2)와 데이터 서버 3(103-3)는 소정의 오너에 대한 동일한 복제본을 저장할 수 있다. 그리고, 메타데이터 서버(102)는 메타데이터를 저장하고 유지할 수 있다(S403). 이 때, 메타데이터는 오너 별 복제본을 저장하는 데이터 서버의 리스트일 수 있다.
클라이언트 서버(101)는 파일 연산을 위해 메타데이터 서버(102)에 파일 연산을 수행하려는 오너의 메타데이터를 요청할 수 있다(S404). 그러면, 메타데이터 서버(102)는 오너의 메타데이터를 클라이언트 서버(101)에 반환할 수 있다(S405). 이 때, 데이터 서버 2(103-2)에 일시적 장애가 발생할 수 있다(S406). 앞에서 이 미 언급했듯이, 일시적 장애는 장애 이전에 저장된 복제본을 사용할 수 있는 경우의 장애를 의미한다. 일례로, 복수의 데이터 서버 각각에 발생되는 장애는 메타데이터 서버(102)의 Heartbeat 메시지를 통한 실시간 모니터링을 통해 감지될 수 있다.
클라이언트 서버(101)는 메타데이터를 통해 오너의 복제본이 저장된 위치를 확인할 수 있다(S407). 즉, 클라이언트 서버(101)는 메타데이터를 통해 오너의 복제본이 저장된 데이터 서버(도 1을 참고하면, 데이터 서버 1, 데이터 서버 2 및 데이터 서버 3)를 확인할 수 있다.
그러면, 클라이언트 서버(101)는 오너의 복제본이 저장된 데이터 서버 3(103-3)에 파일 연산을 요청할 수 있다(S408). 또한, 클라이언트 서버(101)는 동일한 복제본을 저장하는 데이터 서버 1(103-1)에도 파일 연산을 요청할 수 있다. 그러나, 클라이언트 서버(101)는 일시적 장애가 발생된 데이터 서버 2(103-2)에 파일 연산을 요청할 수 없다.
데이터 서버 3(103-3)은 클라이언트 서버(101)의 파일 연산 요청에 대해 파일 연산 내용을 MO 로그에 기록할 수 있다(S409). 이 때, 데이터 서버 3(103-3)은 데이터 서버 2(103-2)에 일시적 장애가 발생한 시점부터 해소될 때까지의 장애 기간 동안 파일 연산 요청에 대해 파일 연산 내용을 MO 로그에 기록할 수 있다. MO 로그를 기록하는 과정은 데이터 서버 1(103-1)에서 동일하게 이루어질 수 있다. 이 후, 데이터 서버 3(103-3)는 파일 연산 결과를 클라이언트 서버(101)에 반환할 수 있다.
일시적 장애가 해소되면(S411), 데이터 서버 2(103-2)는 데이터 서버 3(103-3)에 MO 로그를 요청할 수 있다(S412). 또는, 데이터 서버 2(103-2)는 데이터 서버 1(103-1)에 MO 로그를 요청할 수 있다. 그러면, 데이터 서버 3(103-3)는 데이터 서버 2(103-2)에 MO 로그를 전송할 수 있다(S413). 데이터 서버 2(103-2)는 MO 로그를 재연하여 복제본을 복구할 수 있다(S414).
복제본 복구 중, 클라이언트 서버(101)이 데이터 서버 2(103-2)에 파일 연산을 요청하면(S415), 데이터 서버 2(103-2)는 파일 연산을 수행하지 않고, 파일 연산 내용을 DO 로그에 기록할 수 있다(S416). 이 후, 복제본 복구가 완료되면(S417), 데이터 서버 2(103-2)는 DO 로그를 재연하여 복제본 복구 때문에 지연된 파일 연산을 수행할 수 있다(S418).
도 5는 본 발명의 일실시예에 따른 분산 파일 시스템이 영구적 장애를 처리하는 방법을 도시한 플로우 차트이다.
일례로, 분산 파일 시스템은 복수의 데이터 서버로 구성될 수 있다. 도 5에서 설명되는 제1 데이터 서버, 제2 데이터 서버 및 제3 데이터 서버는 복수의 데이터 서버 중 어느 하나의 데이터 서버를 의미한다. 복수의 데이터 서버 각각은 오너 별 복제본을 저장할 수 있다. 이 때, 오너는 복수의 데이터 서버 각각에 저장된 파일을 그룹화하는 단위로, 파일의 디렉토리에 기초하여 결정될 수 있다.
단계 S501에서, 제1 데이터 서버에 영구적 장애가 발생할 수 있다. 이 때, 영구적 장애는 장애가 발생되기 이전에 제1 데이터 서버에 저장된 복제본을 이용할 수 없는 경우의 장애를 의미한다. 예를 들면, 영구적 장애는 복제본을 저장하는 디스크의 물리적 고장이나 하드웨어 상의 문제 등 장애가 해소되지 않아 저장된 복제본을 다시 이용할 수 없는 장애를 의미한다.
단계 S502에서, 메타데이터 서버가 복제본의 복사를 수행할 제2 데이터 서버를 선택할 수 있다. 이 때, 제2 데이터 서버는 복수의 데이터 서버 중 소정의 오너에 대해 제1 데이터 서버와 동일한 복제본을 저장하는 어느 하나의 데이터 서버를 의미할 수 있다.
메타데이터 서버는 오너 별 복제본이 저장된 데이터 서버의 리스트를 저장할 수 있다. 또한, 메타데이터 서버는 복제본의 이동 작업을 관리할 수 있다. 예를 들면, 메타데이터 서버는 복제본 이동 작업을 스케줄링 할 수 있다.
단계 S503에서, 메타데이터 서버는 복제본이 복사되어 이동될 제3 데이터 서버를 할당할 수 있다. 이 때, 제3 데이터 서버는 복수의 데이터 서버 중 제1 데이터 서버를 대체하여 복제본을 저장할 서버로, 메타데이터 서버에 의해 신규로 할당될 수 있다.
단계 S504에서, 제2 데이터 서버는 메타데이터 서버의 복제본 이동 명령에 따라 신규로 할당된 제3 데이터 서버에 복제본을 복사하여 이동시킬 수 있다. 일례로, 메타데이터 서버는 제1 데이터 서버가 담당하는 오너 별 복제본의 이동 작업에 대해 우선 순위를 결정할 수 있다. 예를 들어, 제1 데이터 서버가 owner 1, owner 2 각각의 복제본을 저장하는 경우, owner 1, owner 2의 복제본 모두가 이동되어야 한다. 이 때, 메타데이터 서버는 복제본의 이동 작업에 대한 우선 순위를 오너 별로 다르게 결정할 수 있다. 예를 들면, 메타데이터 서버는 오너 별로 장애 로 인해 남아있는 정상적인 복제본의 개수, 사용자의 종류, 파일의 개수, 장애 지연 시간 등을 고려할 수 있다.
결국, 단계 S504를 통해 제1 데이터 서버가 담당하던 복제본이 신규로 할당된 제3 데이터 서버에 이동될 수 있다. 따라서, 오너의 복제본이 영구적 장애가 발생되기 이전의 상태로 동일하게 존재함으로써, 분산 파일 시스템의 일관성이 유지될 수 있다. 복제본 이동을 통해 메타데이터 서버는 해당 복제본을 저장하는 데이터 서버의 리스트를 변경하여 메타데이터를 업데이트 할 수 있다.
단계 S505에서, 제3 데이터 서버는 복제본 이동 중, 복제본에 대한 파일 연산 요청을 수신한 경우, 파일 연산 내용을 로그에 기록할 수 있다. 일례로, 제3 데이터 서버는 복제본 이동 중 복제본에 요청된 파일 연산 내용을 DO(Delayed Operation) 로그에 기록할 수 있다.
단계 S506에서, 복제본의 이동이 완료되면 제1 데이터 서버가 DO 로그를 이용하여 복제본에 대해 파일 연산을 수행할 수 있다. 즉, 복제본의 이동 작업 중에 제3 데이터 서버는 파일 연산을 수행할 수 없다. 이 때, 제3 데이터 서버는 복제본의 이동이 완료된 후, DO 로그를 재연하여 복제본 복구에 따른 지연된 파일 연산을 수행함으로써 복제본을 최신 상태로 유지할 수 있다.
일례로, DO 로그를 이용하여 지연된 파일 연산을 수행하는 경우, 제3 데이터 서버는 오너 별 재연 잠금(replay lock)을 이용하여 파일 연산을 수행할 수 있다. 이 때, 제1 데이터 서버는 재연 잠금 없이 DO 로그를 재연하고, 그 후, 재연 잠금된 상태에서 DO 로그를 재연할 수 있다. 결국, 분산 파일 시스템은 재연 잠금을 통해 DO 로그를 2번 재연함으로써, DO 로그를 재연하는 도중 복제본에 대한 파일 연산 요청으로 인해 DO 로그가 추가로 생성되는 것을 방지할 수 있다.
도 6은 본 발명의 일실시예에 따라 영구적 장애를 처리하는 구체적인 과정을 도시한 플로우차트이다.
데이터 서버 2(103-2)와 데이터 서버 1(103-1)은 오너 별 복제본을 저장하고 유지할 수 있다(S601, S602). 이 때, 데이터 서버 2(103-2)와 데이터 서버 1(103-3)은 소정의 오너에 대한 동일한 복제본을 저장할 수 있다. 그리고, 메타데이터 서버(102)는 메타데이터를 저장하고 유지할 수 있다(S603). 이 때, 메타데이터는 오너 별 복제본을 저장하는 데이터 서버의 리스트일 수 있다.
데이터 서버 2(103-2)에 영구적 장애가 발생할 수 있다(S604). 앞에서 이미 언급했듯이, 영구적 장애는 데이터 서버의 물리적 장애 등을 이유로 장애 이전에 저장된 복제본을 사용할 수 없는 경우의 장애를 의미한다. 일례로, 데이터 서버에 발생되는 장애는 메타데이터 서버(102)의 Heartbeat 메시지를 통한 실시간 모니터링을 통해 감지될 수 있다.
그러면, 메타데이터 서버(102)는 복제본의 복사를 수행할 데이터 서버를 선택할 수 있다(S605). 도 6을 참고하면, 메타데이터 서버(102)는 데이터 서버 1(103-1)을 복제본의 복사를 수행할 데이터 서버로 선택한다. 즉, 복제본의 복사를 수행할 데이터 서버는 영구적 장애가 발생한 데이터 서버와 동일한 복제본을 저장하는 데이터 서버를 의미할 수 있다. 도 1을 참고하면, 메타데이터 서버(101)는 데이터 서버 3(103-3)을 복제본의 복사를 수행할 데이터 서버로 선택할 수 있다.
그리고, 메타데이터 서버(102)는 복수의 데이터 서버 중 복제본이 이동될 데이터 서버를 신규로 할당할 수 있다(S606). 즉, 복제본이 이동될 데이터 서버는 영구적 장애가 발생한 데이터 서버와 동일한 복제본을 저장하지 않는 데이터 서버를 의미할 수 있다. 도 6을 참고하면, 메타데이터 서버(102)는 데이터 서버 4(103-4)를 복제본이 이동될 데이터 서버로 할당할 수 있다. 이 후, 메타데이터 서버(102)는 데이터 서버 1(103-1)에 복제본 이동 명령을 할 수 있다(S607).
데이터 서버 1(103-1)은 복제본 이동 명령에 따라 복제본을 데이터 서버 4(103-4)에 이동시킬 수 있다. 즉. 데이터 서버 1(103-1)은 복제본을 복사함으로써 데이터 서버 2(103-2)가 저장하고 있는 복제본을 데이터 서버 4(103-4)에 이동시킬 수 있다.
이 때, 복제본 이동 중, 클라이언트 서버(101)가 메타데이터 서버(102)에 저장된 메타데이터를 이용하여 데이터 서버 4(103-4)에 파일 연산을 요청할 수 있다(S609). 그러면, 데이터 서버 4(103-4)는 파일 연산을 수행하지 않고, 파일 연산 내용을 DO 로그에 기록할 수 있다(S610). 이 후, 복제본 이동이 완료되면(S611), 데이터 서버 4(103-4)는 DO 로그를 재연하여 복제본 이동 때문에 지연된 파일 연산을 수행할 수 있다(S612).
이 후, 데이터 서버 4는 파일 연산 결과를 클라이언트 서버(101)에 반환할 수 있다(S613). 또한, 데이터 서버 4(103-4)는 데이터 서버 1(103-1) 및 메타데이터 서버(102)에 복제본 이동 결과를 알릴 수 있다(S614, S615). 그러면, 데이터 서버 1(103-1)은 복제본의 상태를 이동 완료 상태로 인지할 수 있다. 메타데이터 서 버(102)는 해당 복제본을 저장하는 데이터 서버의 리스트를 변경하여 메타데이터를 업데이트 할 수 있다(S616).
도 7은 본 발명의 일실시예에 따라 장애 발생에 따른 복제본의 상태가 전이되는 과정을 도시한 도면이다.
복제본 상태가 N(Normal)인 경우, 데이터 서버는 장애가 발생하지 않는 정상인 것을 의미한다. 데이터 서버에 장애 발생이 감지되면, 복제본 상태는 F(Failure)가 된다. 이 때, 분산 파일 시스템은 데이터 서버에 장애가 발생되면 먼저 장애를 일시적 장애로 감지할 수 있다.
이 후, 일시적 장애가 해소되어 데이터 서버는 복제본 복구를 수행하는 경우, 복제본 상태는 R(Recovery)가 된다. 이 때, 데이터 서버에 재차 일시적 장애가 발생되면, 복제본 상태는 F로 되돌아간다. 그리고, 복제본의 복구가 완료되면, 복제본 상태는 R에서 N으로 전환될 수 있다.
복제본 상태가 F에서, 영구적 장애의 발생이 감지되면, 복제본 이동이 시작되면서 복제본 상태는 M(Migration)으로 전환된다. 만약, 복제본의 이동이 실패되면, 복제본 상태는 M에서 F로 전환될 수 있다. 그리고, 복제본의 이동이 완료되면, 복제본 상태는 M에서 N으로 전환될 수 있다.
이 때, 복제본이 F 상태인 경우, 파일 연산에 대한 MO 로그가 생성될 수 있다. 그리고, 복제본이 R 상태이거나 또는 M 상태인 경우, 파일 연산에 대한 DO 로그가 생성될 수 있다.
결국, 분산 파일 시스템을 구성하는 서버들은 소정의 복제본 상태를 동일하 게 인지함으로써, 복제본의 일관성을 유지할 수 있다. 또한, 복제본 상태를 동일하게 인지하지 못한 경우, 복제본 상태 매칭을 수행하여 복제본의 일관성을 유지할 수 있다.
도 8은 본 발명의 일실시예에 따른 분산 파일 시스템을 구성하는 데이터 서버의 구체적인 구성을 도시한 도면이다.
도 8을 참고하면, 분산 파일 시스템은 복수의 데이터 서버(800-1, 800-2, 800-3), 메타데이터 서버(809) 및 클라이언트 서버(810)로 구성될 수 있다. 도 8에서는, 하나의 데이터 서버(800-1)을 기준으로 설명된다. 도 8의 설명은 분산 파일 시스템을 구성하는 복수의 데이터 서버 모두에 동일하게 적용될 수 있다.
도 8을 참고하면, 데이터 서버(800-1)는 복제본 저장부(801), 파일 연산 수행부(802), 장애 처리부(803)를 포함할 수 있다.
복제본 저장부(801)는 오너 별 복제본을 저장할 수 있다. 이 때, 복제본은 오너 별로 그룹화된 파일의 집합을 의미할 수 있다. 그리고, 오너는 파일의 디렉토리에 기초하여 결정될 수 있다. 즉, 오너는 파일의 디렉토리와 대응될 수 있다. 도 8에서, 데이터 서버(800-2)는 데이터 서버(800-1)에 저장된 소정의 오너의 복제본과 동일한 복제본을 저장한다고 가정한다. 그리고, 데이터 서버(800-3)은 데이터 서버(800-1)에 저장된 소정의 오너와 다른 오너의 복제본을 저장한다고 가정한다.
파일 연산 수행부(802)는 파일 연산 요청에 따라 오너에 속한 파일에 대한 연산을 수행할 수 있다. 이 때, 클라이언트 서버(810)가 메타데이터 서버에 요청 한 소정의 오너에 대한 메타데이터를 이용하여 데이터 서버(800-1)에 파일 연산 요청을 할 수 있다. 이 때, 메타데이터는 오너 별 복제본이 저장된 데이터 서버의 리스트를 의미할 수 있다. 그리고, 파일 연산 수행부(802)는 파일 연산 결과를 클라이언트 서버(810)에 반환할 수 있다.
장애 처리부(803)는 복제본을 이용하여 장애 유형에 따라 장애를 처리할 수 있다. 이 때, 장애 유형은 일시적 장애 및 영구적 장애로 구분될 수 있다. 일례로, 장애 처리부(803)는 복제본 복구부(804) 및 복제본 이동부(805)를 포함할 수 있다.
복제본 복구부(804)는 데이터 서버(800-1)에 일시적 장애가 발생한 경우, 복제본에 대한 파일 연산 내용이 기록된 로그를 이용하여 복제본을 복구할 수 있다. 이 때, 복제본 복구부(804)는 일시적 장애가 해소되면 복제본과 동일한 복제본을 저장하는 데이터 서버(800-2)에 MO 로그를 요청할 수 있다. 이 때, MO 로그는 데이터 서버(800-1)에 일시적 장애가 발생한 경우, 일시적 장애 발생 시점부터 일시적 장애 해소 시점까지의 장애 기간 동안 데이터 서버(800-2)에 요청된 파일 연산 내용이 기록된 로그일 수 있다.
그리고, 복제본 복구부(804)는 MO 로그에 기록된 복제본에 대한 파일 연산 내용을 재연하여 복제본을 업데이트 할 수 있다. 결국, 복제본 복구부(804)는 데이터 서버(800-2)의 MO 로그를 재연함으로써, 데이터 서버(800-1)가 일시적 장애로 인해 수행하지 못한 파일 연산을 업데이트 하여 복제본을 복구할 수 있다.
복제본 이동부(805)는 동일한 복제본이 저장된 데이터 서버(800-2)에 영구적 장애가 발생한 경우, 메타데이터 서버(809)의 복제본 이동 명령에 따라 복제본을 복사하여 이동시킬 수 있다. 이 때, 메타데이터 서버(809)는 오너 별 복제본이 저장된 데이터 서버의 리스트를 저장하고, 상기 복제본의 이동 작업을 관리할 수 있다.
일례로, 메타데이터 서버(809)는 복수의 데이터 서버 중 복제본이 이동될 데이터 서버를 선택할 수 있다. 도 8을 참고하면, 메타데이터 서버(809)는 데이터 서버(800-3)를 복제본이 이동될 데이터 서버로 선택할 수 있다. 데이터 서버(800-2)에 영구적 장애가 발생하는 경우, 정상 상태인 데이터 서버(800-1)가 복제본을 복사하여 이동시킬 수 있다. 이 때, 메타데이터 서버(809)는 오너의 복제본의 이동 작업에 대해 우선 순위를 결정하여 복제본 이동부(805)에 복제본 이동 명령을 할 수 있다.
일례로, 장애 처리부(803)는 MO 로그 생성부(806)를 더 포함할 수 있다. MO 로그 생성부(806)는 데이터 서버(800-1)와 동일한 복제본을 저장하고 있는 데이터 서버(800-2)에 일시적 장애가 발생하는 경우, 클라이언트 서버(810)로부터 요청된 복제본에 대한 파일 연산 내용을 MO 로그에 기록할 수 있다. 그러면, 일시적 장애가 발생한 데이터 서버(800-2)는 데이터 서버(800-1)에 MO 로그를 요청하여 재연함으로써, 복제본을 복구할 수 있다.
일례로, 장애 처리부(803)는 DO 로그 생성부(807) 및 DO 로그 재연부(808)를 더 포함할 수 있다. DO 로그 생성부(807)는 복제본이 복구 중이거나 또는 이동 중 복제본에 대한 파일 연산 요청을 수신한 경우, 복제본의 복구 또는 이동에 따라 지 연된 파일 연산 내용을 DO 로그에 기록할 수 있다.
복제본의 복구 완료 또는 이동 완료된 후, DO 로그 재연부(808)는 DO 로그를 재연하여 지연된 파일 연산을 수행할 수 있다. 결국, 로그 재연을 통해 분산 파일 시스템은 동일한 복제본을 저장하는 데이터 서버(800-1,800-2) 간에 복제본의 일관성을 유지할 수 있다.
이 때, DO 로그 재연부(808)는 오너 별 재연 잠금을 이용하여 DO 로그를 재연할 수 있다. 구체적으로, DO 로그 재연부(808)는 오너 별 재연 잠금을 통해 DO 로그를 2번 재연하여 DO 로그가 추가적으로 생성되는 것을 방지할 수 있다.
결국, 분산 파일 시스템은 일시적 장애가 발생하는 경우와 영구적 장애가 발생하는 경우를 구분하여 장애를 효율적으로 처리할 수 있다. 도 8에서 설명되지 않은 부분은 도 1 내지 도 7의 설명을 참고할 수 있다.
또한 본 발명의 일실시예에 따른 복제본 기반 장애 처리 방법은 다양한 컴퓨터로 구현되는 동작을 수행하기 위한 프로그램 명령을 포함하는 컴퓨터 판독 가능 매체를 포함한다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 이는 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명 사상은 아래에 기재된 특허청구범위에 의해서만 파악되어야 하고, 이의 균등 또는 등가적 변형 모두는 본 발명 사상의 범주에 속한다고 할 것이다.
도 1은 본 발명의 일실시예에 따른 분산 파일 시스템의 전체 구성을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 디렉토리에 기초한 오너 단위로 파일을 그룹화하고, 오너의 복제본이 데이터 서버에 저장되는 일례를 도시한 도면이다.
도 3은 본 발명의 일실시예에 따른 분산 파일 시스템에서의 일시적 장애를 처리하는 방법을 도시한 플로우 차트이다.
도 4는 본 발명의 일실시예에 따라 일시적 장애를 처리하는 구체적인 과정을 도시한 플로우차트이다.
도 5는 본 발명의 일실시예에 따른 분산 파일 시스템에서의 영구적 장애를 처리하는 방법을 도시한 플로우 차트이다.
도 6은 본 발명의 일실시예에 따라 영구적 장애를 처리하는 구체적인 과정을 도시한 플로우차트이다.
도 7은 본 발명의 일실시예에 따라 장애 발생에 따른 복제본의 상태가 전이되는 과정을 도시한 도면이다.
도 8은 본 발명의 일실시예에 따른 분산 파일 시스템을 구성하는 데이터 서버의 구체적인 구성을 도시한 도면이다.
<도면의 주요 부분에 대한 부호의 설명>
101: 클라이언트 서버
102: 메타데이터 서버
103-1: 데이터 서버 1
103-2: 데이터 서버 2
103-3: 데이터 서버 3
103-4: 데이터 서버 4

Claims (28)

  1. 복수의 데이터 서버로 구성된 복제본 기반 장애 처리 방법에 있어서,
    제1 데이터 서버에서 일시적 장애가 발생하는 단계;
    상기 제1 데이터 서버가 제2 데이터 서버에 상기 복제본에 대한 파일 연산 내용이 기록된 로그를 요청하는 단계; 및
    상기 제1 데이터 서버가 상기 로그를 이용하여 상기 복제본을 복구하는 단계
    를 포함하고,
    상기 제2 데이터 서버는,
    상기 복수의 데이터 서버 중 상기 제1 데이터 서버와 동일한 복제본을 저장하는 어느 하나의 데이터 서버인 것을 특징으로 하는 복제본 기반 장애 처리 방법.
  2. 제1항에 있어서,
    상기 복수의 데이터 서버 각각은,
    오너 별로 그룹화된 파일의 집합인 오너 별 복제본을 저장하고,
    상기 오너는,
    상기 파일의 디렉토리에 기초하여 결정되는 것을 특징으로 하는 복제본 기반 장애 처리 방법.
  3. 제1항에 있어서,
    상기 일시적 장애는,
    상기 제1 데이터 서버에 장애가 발생되기 이전에 저장된 복제본을 이용할 수 있는 경우의 장애를 의미하는 복제본 기반 장애 처리 방법.
  4. 제1항에 있어서,
    상기 제1 데이터 서버가 제2 데이터 서버에 상기 복제본에 대한 파일 연산 내용이 기록된 로그를 요청하는 단계는,
    일시적 장애가 해소된 후, 상기 제1 데이터 서버가 상기 제2 데이터 서버에 MO(Missed Operation) 로그를 요청하는 것을 특징으로 하고,
    상기 MO 로그는,
    상기 제2 데이터 서버의 복제본에 일시적 장애 발생 시점부터 일시적 장애 해소 시점까지의 장애 기간 동안 요청된 파일 연산 내용이 기록된 로그인 것을 특징으로 하는 복제본 기반 장애 처리 방법.
  5. 제4항에 있어서,
    상기 제1 데이터 서버가 상기 로그를 이용하여 상기 복제본을 복구하는 단계는,
    상기 제1 데이터 서버가 상기 MO 로그에 기록된 파일 연산 내용을 재연하여 상기 복제본을 업데이트하는 것을 특징으로 하는 복제본 기반 장애 처리 방법.
  6. 제1항에 있어서,
    상기 복제본의 복구 중, 상기 복제본에 대한 파일 연산 요청을 수신한 경우, 상기 제1 데이터 서버가 파일 연산 내용을 로그에 기록하는 단계; 및
    상기 복제본의 복구가 완료되면, 상기 제1 데이터 서버가 상기 로그를 이용하여 복구가 완료된 상기 복제본에 대해 파일 연산을 수행하는 단계
    를 더 포함하는 복제본 기반 장애 처리 방법.
  7. 제6항에 있어서,
    상기 제1 데이터 서버가 파일 연산 내용을 로그에 기록하는 단계는,
    상기 제1 데이터 서버가 상기 복제본의 복구에 따라 지연된 상기 파일 연산 내용을 DO(Delayed Operation) 로그에 기록하는 것을 특징으로 하고,
    상기 로그를 이용하여 복구 작업이 완료된 상기 복제본에 대한 파일 연산을 수행하는 단계는,
    상기 제1 데이터 서버가 상기 DO 로그에 기록된 파일 연산 내용을 재연하여 상기 복제본에 대한 지연된 파일 연산을 수행하는 것을 특징으로 하는 복제본 기반 장애 처리 방법.
  8. 제7항에 있어서
    상기 로그를 이용하여 복구 작업이 완료된 상기 복제본에 대한 파일 연산을 수행하는 단계는,
    오너 별 재연 잠금(replay lock)을 이용하여 상기 DO 로그에 기록된 파일 연산 내용을 재연하는 것을 특징으로 하는 복제본 기반 장애 처리 방법.
  9. 복수의 데이터 서버로 구성된 복제본 기반 장애 처리 방법에 있어서,
    제1 데이터 서버에서 영구적 장애가 발생하는 단계;
    메타데이터 서버가 상기 복제본의 복사를 수행할 제2 데이터 서버를 선택하는 단계;
    상기 메타데이터 서버가 상기 복수의 데이터 서버 중 상기 복제본이 이동될 제3 데이터 서버를 할당하는 단계; 및
    상기 메타데이터 서버의 복제본 이동 명령에 따라 상기 제2 데이터 서버가 상기 제3 데이터 서버에 상기 복제본을 복사하여 이동시키는 단계
    를 포함하고,
    상기 제2 데이터 서버는,
    상기 복수의 데이터 서버 중 상기 제1 데이터 서버와 동일한 복제본을 저장하는 어느 하나의 데이터 서버인 것을 특징으로 하는 복제본 기반 장애 처리 방법.
  10. 제9항에 있어서,
    상기 복수의 데이터 서버 각각은,
    오너 별로 그룹화된 파일의 집합인 오너 별 복제본을 저장하고,
    상기 오너는,
    상기 파일의 디렉토리에 기초하여 결정되는 것을 특징으로 하는 복제본 기반 장애 처리 방법.
  11. 제9항에 있어서,
    상기 영구적 장애는,
    상기 제1 데이터 서버에 장애가 발생되기 이전에 저장된 복제본을 이용할 수 있는 경우의 장애를 의미하는 복제본 기반 장애 처리 방법.
  12. 제10항에 있어서,
    상기 메타데이터 서버는,
    상기 오너 별 복제본이 저장된 데이터 서버의 리스트를 저장하고, 상기 복제본의 이동 작업을 관리하는 것을 특징으로 하는 복제본 기반 장애 처리 방법.
  13. 제12항에 있어서,
    상기 메타데이터 서버는,
    상기 제1 데이터 서버가 담당하는 오너 별 복제본의 이동 작업에 대해 우선 순위를 결정하는 것을 특징으로 하는 복제본 기반 장애 처리 방법.
  14. 제9항에 있어서,
    상기 복제본이 이동 중, 상기 복제본에 대한 파일 연산 요청을 수신한 경우, 상기 제3 데이터 서버가 파일 연산 내용을 로그에 기록하는 단계; 및
    상기 복제본의 이동이 완료되면, 상기 제3 데이터 서버가 상기 로그를 이용하여 이동이 완료된 상기 복제본에 대해 파일 연산을 수행하는 단계
    를 더 포함하는 복제본 기반 장애 처리 방법.
  15. 제14항에 있어서,
    상기 제3 데이터 서버가 파일 연산 내용을 로그에 기록하는 단계는,
    상기 제3 데이터 서버가 상기 복제본의 이동 작업에 따라 지연된 상기 파일 연산 내용을 DO(Delayed Operation) 로그에 기록하는 것을 특징으로 하고,
    상기 로그를 이용하여 이동이 완료된 상기 복제본에 대해 파일 연산을 수행하는 단계는,
    상기 제3 데이터 서버가 상기 DO 로그에 기록된 파일 연산 내용을 재연하여 상기 복제본에 대한 지연된 파일 연산을 수행하는 것을 특징으로 하는 복제본 기반 장애 처리 방법.
  16. 제15항에 있어서
    상기 로그를 이용하여 복구가 완료된 상기 복제본에 대한 파일 연산을 수행하는 단계는,
    오너 별 재연 잠금(replay lock)을 이용하여 상기 DO 로그에 기록된 파일 연산 내용을 재연하는 것을 특징으로 하는 복제본 기반 장애 처리 방법.
  17. 제1항 내지 제16항 중 어느 한 항의 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
  18. 분산 파일 시스템을 구성하는 복수의 데이터 서버 중 어느 하나의 데이터 서버에 있어서,
    오너 별 복제본을 저장하는 복제본 저장부;
    상기 오너에 속한 파일에 대한 파일 연산 요청에 따라 파일 연산을 수행하는 파일 연산 수행부; 및
    장애가 발생하는 경우, 복제본을 이용하여 장애 유형에 따라 장애를 처리하는 장애 처리부
    를 포함하는 데이터 서버.
  19. 제18항에 있어서,
    상기 복제본 저장부는,
    오너 별로 그룹화된 파일의 집합인 상기 오너 별 복제본을 저장하고,
    상기 오너는,
    상기 파일의 디렉토리에 기초하여 결정되는 것을 특징으로 하는 데이터 서버.
  20. 제18항에 있어서,
    상기 장애 처리부는,
    일시적 장애가 발생한 경우, 상기 복제본에 대한 파일 연산 내용이 기록된 로그를 이용하여 상기 복제본을 복구하는 복제본 복구부; 및
    상기 복제본과 동일한 복제본이 저장된 다른 데이터 서버에 영구적 장애가 발생한 경우, 메타데이터 서버의 복제본 이동 명령에 따라 상기 복제본을 복사하여 이동시키는 복제본 이동부
    를 포함하는 데이터 서버.
  21. 제20항에 있어서,
    상기 복제본 복구부는,
    일시적 장애가 해소되면 상기 복제본과 동일한 복제본을 저장하는 데이터 서버에 MO 로그를 요청하고,
    상기 MO 로그에 기록된 상기 복제본에 대한 파일 연산 내용을 재연하여 상기 복제본을 업데이트하는 것을 특징으로 하는 데이터 서버.
  22. 제21항에 있어서,
    상기 MO 로그는,
    일시적 장애 발생 시점부터 일시적 장애 해소 시점까지의 장애 기간 동안 요청된 파일 연산 내용이 기록된 로그인 것을 특징으로 하는 데이터 서버.
  23. 제20항에 있어서,
    상기 메타데이터 서버는,
    오너 별 복제본이 저장된 데이터 서버의 리스트를 저장하고, 상기 복제본의 이동 작업을 관리하는 것을 특징으로 하는 데이터 서버.
  24. 제23항에 있어서,
    상기 메타데이터 서버는,
    상기 복수의 데이터 서버 중 상기 복제본이 이동될 데이터 서버를 선택하고,
    상기 복제본 이동부는,
    상기 복제본이 이동될 데이터 서버에 복제본을 이동시키는 것을 특징으로 하는 데이터 서버.
  25. 제20항에 있어서,
    상기 메타데이터 서버는,
    상기 오너의 복제본의 이동 작업에 대해 우선 순위를 결정하는 것을 특징으로 하는 데이터 서버.
  26. 제20항에 있어서,
    상기 장애 처리부는,
    상기 복수의 데이터 서버 중 상기 복제본과 동일한 복제본을 저장하는 데이터 서버에 일시적 장애가 발생하는 경우, 상기 복제본에 요청된 파일 연산 내용을 MO 로그에 기록하는 MO 로그 생성부
    를 더 포함하는 데이터 서버.
  27. 제20항에 있어서,
    상기 장애 처리부는,
    상기 복제본이 복구 중이거나 또는 이동 중 상기 복제본에 대한 파일 연산 요청을 수신한 경우, 상기 복제본의 복구 또는 이동에 따라 지연된 파일 연산 내용을 DO 로그에 기록하는 DO 로그 생성부; 및
    상기 복제본이 복구 완료 또는 이동 완료된 후, 상기 생성된 DO 로그를 재연하여 지연된 파일 연산을 수행하는 DO 로그 재연부
    를 더 포함하는 데이터 서버.
  28. 제27항에 있어서
    상기 DO 로그 재연부는,
    오너 별 재연 잠금(replay lock)을 이용하여 상기 DO 로그에 기록된 파일 연산 내용을 재연하는 것을 특징으로 하는 데이터 서버.
KR1020080051249A 2008-05-30 2008-05-30 분산 파일 시스템 및 복제본 기반 장애 처리 방법 Active KR100994342B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080051249A KR100994342B1 (ko) 2008-05-30 2008-05-30 분산 파일 시스템 및 복제본 기반 장애 처리 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080051249A KR100994342B1 (ko) 2008-05-30 2008-05-30 분산 파일 시스템 및 복제본 기반 장애 처리 방법

Publications (2)

Publication Number Publication Date
KR20090124829A KR20090124829A (ko) 2009-12-03
KR100994342B1 true KR100994342B1 (ko) 2010-11-12

Family

ID=41686713

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080051249A Active KR100994342B1 (ko) 2008-05-30 2008-05-30 분산 파일 시스템 및 복제본 기반 장애 처리 방법

Country Status (1)

Country Link
KR (1) KR100994342B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101413298B1 (ko) * 2010-11-04 2014-06-27 한국전자통신연구원 단편적 정보를 이용하여 메타 데이터를 복구하기 위한 장치, 시스템 및 그 방법
KR101713314B1 (ko) * 2013-05-03 2017-03-07 한국전자통신연구원 가비지 파일의 삭제 방법 및 시스템

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003186722A (ja) 2001-12-20 2003-07-04 Hitachi Software Eng Co Ltd クラスタシステムにおけるデータベースサーバフェイルオーバー方法
KR100857036B1 (ko) 2007-04-20 2008-09-05 (주)엔텔스 과금 시스템에서 트랜잭션 로그 파일을 이용한 장애 복구방법 및 그 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003186722A (ja) 2001-12-20 2003-07-04 Hitachi Software Eng Co Ltd クラスタシステムにおけるデータベースサーバフェイルオーバー方法
KR100857036B1 (ko) 2007-04-20 2008-09-05 (주)엔텔스 과금 시스템에서 트랜잭션 로그 파일을 이용한 장애 복구방법 및 그 장치

Also Published As

Publication number Publication date
KR20090124829A (ko) 2009-12-03

Similar Documents

Publication Publication Date Title
US10909004B1 (en) Online system checkpoint recovery orchestration
CN102197372B (zh) 已分区的、可缩放的、并且可用的结构化存储中的分区管理
US7546486B2 (en) Scalable distributed object management in a distributed fixed content storage system
JP5479490B2 (ja) 複製ストレージクラスタのための非同期式分散ガーベッジコレクション
JP4977565B2 (ja) アクセス制御リストを用いてファイルへのアクセスを制御するアクセスコントローラ
US10789223B2 (en) Hybrid garbage collection in a distributed storage system
CN111221678B (zh) Hbase数据备份/恢复系统、方法、装置及电子设备
US20090204650A1 (en) File Deduplication using Copy-on-Write Storage Tiers
JP6525491B2 (ja) ファイルをチャンク単位で分散処理するシステムおよび方法
US11314459B2 (en) Distributed metadata management in a distributed storage system
US11347600B2 (en) Database transaction log migration
JP2013544386A5 (ko)
CN107870829A (zh) 一种分布式数据恢复方法、服务器、相关设备及系统
CN107797878A (zh) 虚拟机热迁移处理方法及系统
WO2010118657A1 (zh) 一种数据恢复的方法、数据节点及分布式文件系统
US20130332418A1 (en) Method of managing data in asymmetric cluster file system
CN102349047A (zh) 数据插入系统
US10628298B1 (en) Resumable garbage collection
US11403176B2 (en) Database read cache optimization
KR100994342B1 (ko) 분산 파일 시스템 및 복제본 기반 장애 처리 방법
US11023324B2 (en) Harmonization of failure domains in a distributed system
JP5303935B2 (ja) データ多重化システムおよびデータ多重化方法
US12443446B2 (en) Fencing off cluster services based on shared storage access keys
KR101009149B1 (ko) 오너 단위의 파일 그룹화를 이용한 분산 파일 시스템 및파일 연산 방법
US20050097105A1 (en) Distributed database for one search key

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20080530

PA0201 Request for examination
N231 Notification of change of applicant
PN2301 Change of applicant

Patent event date: 20090522

Comment text: Notification of Change of Applicant

Patent event code: PN23011R01D

PG1501 Laying open of application
E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20100401

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20101028

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20101108

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20101108

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20130926

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20130926

Start annual number: 4

End annual number: 4

FPAY Annual fee payment

Payment date: 20140925

Year of fee payment: 5

PR1001 Payment of annual fee

Payment date: 20140925

Start annual number: 5

End annual number: 5

FPAY Annual fee payment

Payment date: 20151102

Year of fee payment: 6

PR1001 Payment of annual fee

Payment date: 20151102

Start annual number: 6

End annual number: 6

FPAY Annual fee payment

Payment date: 20161024

Year of fee payment: 7

PR1001 Payment of annual fee

Payment date: 20161024

Start annual number: 7

End annual number: 7

FPAY Annual fee payment

Payment date: 20171011

Year of fee payment: 8

PR1001 Payment of annual fee

Payment date: 20171011

Start annual number: 8

End annual number: 8

FPAY Annual fee payment

Payment date: 20181105

Year of fee payment: 9

PR1001 Payment of annual fee

Payment date: 20181105

Start annual number: 9

End annual number: 9

PR1001 Payment of annual fee

Payment date: 20210929

Start annual number: 12

End annual number: 12

PR1001 Payment of annual fee

Payment date: 20230925

Start annual number: 14

End annual number: 14

PR1001 Payment of annual fee