KR101323729B1 - 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치 및 방법 - Google Patents

비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치 및 방법 Download PDF

Info

Publication number
KR101323729B1
KR101323729B1 KR20100028464A KR20100028464A KR101323729B1 KR 101323729 B1 KR101323729 B1 KR 101323729B1 KR 20100028464 A KR20100028464 A KR 20100028464A KR 20100028464 A KR20100028464 A KR 20100028464A KR 101323729 B1 KR101323729 B1 KR 101323729B1
Authority
KR
South Korea
Prior art keywords
chunk
data
recovery
data server
error
Prior art date
Application number
KR20100028464A
Other languages
English (en)
Other versions
KR20110070677A (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 US12/971,167 priority Critical patent/US8543864B2/en
Publication of KR20110070677A publication Critical patent/KR20110070677A/ko
Application granted granted Critical
Publication of KR101323729B1 publication Critical patent/KR101323729B1/ko

Links

Images

Abstract

비대칭 클러스터링 파일 시스템에서 데이터 서버의 고장시 메타데이터 서버에서 처리하는 방식에 비해 효율성을 높이도록 한 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치 및 방법을 제시한다. 제시된 본 발명은 복수의 데이터 서버군중에서 고장난 데이터 서버가 포함된 해당 데이터 서버군과는 다른 데이터 서버군의 데이터 서버가 복구가 필요한 청크 목록을 수신하는 단계, 다른 데이터 서버군의 데이터 서버가 해당 데이터 서버군중에서 고장난 데이터 서버를 제외한 나머지 데이터 서버들에게 오류 청크를 복구하는데 필요한 청크 데이터를 요청하는 단계, 및 다른 데이터 서버군의 데이터 서버가 청크 데이터를 근거로 오류 청크에 대한 복구를 행하는 단계를 포함한다. 다수의 데이터 서버들이 오류 데이터를 분배하여 복구하기 때문에 단일 메타데이터 서버에서 전담하여 오류 데이터의 복구를 처리하는 방식에 비해 효율적이고 빠른 복구를 제공할 수 있다.

Description

비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치 및 방법{Apparatus and method of processing failure data recovery in the asymmetric clustering file system}
본 발명은 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치 및 방법에 관한 것으로, 보다 상세하게는 비대칭 클러스터링 파일 시스템에서 데이터 서버 고장으로 인한 데이터 오류 복구를 분산 처리하는 장치 및 방법에 관한 것이다.
본 발명은 지식경제부의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2007-S-016-03, 과제명: 저비용 대규모 글로벌 인터넷 서비스 솔루션 개발].
일반적으로 비대칭 클러스터링 파일 시스템은 파일의 메타데이터를 관리하는 메타데이터 서버, 파일의 데이터를 관리하는 복수의 데이터 서버, 및 파일을 저장하거나 검색하는 복수의 클라이언트를 포함한다.
메타데이터 서버와 복수의 데이터 서버 및 복수의 클라이언트는 로컬 네트워크상에서 서로 연결되어 통신한다.
복수의 데이터 서버는 가상화 기술을 통해 대규모의 단일 저장공간으로 제공될 수 있다. 데이터 서버 또는 데이터 서버내 볼륨의 추가/삭제를 통해 자유로운 저장공간 관리가 가능하다.
이와 같이 복수의 데이터 서버를 관리하는 시스템에서는 서버 수에 비례하는 고장율을 고려하게 된다. 그에 따라, 복수의 데이터 서버를 관리하는 시스템에서는 레이드(RAID; Redundant Array of Inexpensive Disks) 레벨 5처럼 데이터는 분산시키고, 복구를 위해 패리티를 두는 방법 또는 데이터에 대한 복제본을 두는 미러링 기술이 주로 이용된다. 미러링 기술은 데이터 중복 저장으로 스토리지 효율성이 낮다. 그에 따라, 고장 감내를 요구하는 경우 패리티를 이용한 데이터 분산 저장 구조가 선호된다.
패리티를 이용한 데이터 분산 저장 구조는 데이터를 저장하는 저장장치 중 단일 오류가 발생하는 경우 패리티를 이용하여 오류 장치에 저장된 데이터를 복구할 수 있다. 복구 과정은 패리티를 구성하는 다른 데이터들과 패리티의 오류 정정 방식(예를 들어, exclusive-OR)을 수행함으로써 복구된다. 이를 위해 단일 데이터 복구 과정에는 다수의 데이터 및 패리티에 대한 읽기 처리가 수반되어야 한다.
종래에 제안된 기술은 대부분 저장 장치 오류를 감지한 메타데이터 서버에서 해당 장치에 저장된 데이터들에 대한 복구를 수행하는 것이다.
본 발명은 상기한 종래의 사정을 감안하여 제안된 것으로, 비대칭 클러스터링 파일 시스템에서 데이터 서버의 고장시 메타데이터 서버에서 처리하는 방식에 비해 효율성을 높이도록 한 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치 및 방법을 제공함에 그 목적이 있다.
본 발명은 비대칭 클러스터링 파일 시스템에서 다수의 데이터 서버로 데이터 및 패리티를 분산 저장하는 구조에서 단일 데이터 서버 고장으로 인한 데이터 복구를 다수의 데이터 서버들로 분산하여 처리하는 것을 특징으로 한다.
상기와 같은 목적을 달성하기 위하여 본 발명의 바람직한 실시양태에 따른 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법은, 복수의 데이터 서버군중에서 고장난 데이터 서버가 포함된 해당 데이터 서버군과는 다른 데이터 서버군의 데이터 서버가, 복구가 필요한 청크 목록을 수신하는 단계; 다른 데이터 서버군의 데이터 서버가, 해당 데이터 서버군중에서 고장난 데이터 서버를 제외한 나머지 데이터 서버들에게 오류 청크를 복구하는데 필요한 청크 데이터를 요청하는 단계; 및 다른 데이터 서버군의 데이터 서버가, 청크 데이터를 근거로 오류 청크에 대한 복구를 행하는 단계;를 포함한다.
복수의 데이터 서버군 각각은 클라이언트로부터 저장되는 파일에 대해 청크 단위로 나뉘어진 파일 데이터들의 개수 및 파일 데이터들에 대한 오류 복구용 패리티의 개수를 합산한 개수와 동일한 개수의 데이터 서버들로 구성된다.
청크 목록은 하나 이상의 디스크 식별자별로 복구가 필요한 청크 식별자, 복구 데이터가 저장될 청크 식별자, 및 복구에 필요한 청크 정보 리스트를 포함한다.
복구가 필요한 청크 식별자는 고장난 데이터 서버에 저장된 청크들 중 선택된 청크의 식별정보이다.
복구 데이터가 저장될 청크 식별자는 오류 청크가 복구되어 새롭게 저장될 청크의 식별정보이다.
복구에 필요한 청크 정보 리스트는 오류 청크를 복구하는데 필요한 데이터 및 패리티에 대한 청크 정보의 리스트이다.
청크 정보는 청크가 저장된 데이터 서버 IP주소, 디스크 식별자, 청크 식별자 정보를 포함한다.
바람직하게, 복구 단계 이후에, 다른 데이터 서버군의 데이터 서버가, 메타데이터 서버에게로 복구 완료 메시지를 전송하는 단계를 추가로 포함한다.
바람직하게, 다른 데이터 서버군의 데이터 서버가, 오류 청크를 복구함에 따른 복구 데이터를 청크 목록에 저장하는 단계;를 추가로 포함한다.
바람직하게, 다른 데이터 서버군의 데이터 서버가 클라이언트로부터의 쓰기 요청을 수신함에 따라 쓰기 요청에 상응하는 처리하는 행하는 단계를 추가로 포함한다.
쓰기 요청 처리 단계는, 쓰기 요청에 의해 상기 청크 목록에 해당 청크가 존재하는지를 확인하는 단계; 및 확인 결과, 해당 청크가 존재하지 않으면 해당 청크에 데이터를 쓰기하여 저장하는 단계;를 포함한다.
저장 단계 이후에 메타데이터 서버에게로 복구 완료를 알리는 단계를 추가로 포함한다.
쓰기 요청 처리 단계는, 확인 결과, 해당 청크가 존재하되 해당 청크에 대한 복구가 진행중이면 복구를 취소하고 청크 목록에서 해당 청크 정보를 삭제하는 단계; 및 쓰기 요청에 의한 데이터를 해당 청크에 저장하는 단계;를 추가로 포함한다.
쓰기 요청 처리 단계는, 확인 결과, 해당 청크가 존재하되 해당 청크에 대한 복구가 시작되지 않은 경우에는 청크 목록에서 해당 청크 정보를 삭제하는 단계; 및 쓰기 요청에 의한 데이터를 해당 청크에 저장하는 단계;를 추가로 포함한다.
본 발명의 바람직한 실시양태에 따른 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치는, 메타데이터 서버로부터의 복구가 필요한 청크 목록을 수신하는 수신부; 오류 청크를 복구하는데 필요한 청크 데이터를 근거로 오류 청크에 대한 복구를 행하는 복구부; 및 데이터 서버군내의 고장난 데이터 서버를 제외한 나머지 데이터 서버들에게 청크 데이터를 요청하고, 수신한 청크 데이터를 복구부에게로 전송하는 제어부;를 포함한다.
청크 목록은 하나 이상의 디스크 식별자별로 복구가 필요한 청크 식별자, 복구 데이터가 저장될 청크 식별자, 및 복구에 필요한 청크 정보 리스트를 포함한다.
복구가 필요한 청크 식별자는 고장난 데이터 서버에 저장된 청크들 중 선택된 청크의 식별정보이다.
복구 데이터가 저장될 청크 식별자는 오류 청크가 복구되어 새롭게 저장될 청크의 식별정보이다.
복구에 필요한 청크 정보 리스트는 오류 청크를 복구하는데 필요한 데이터 및 패리티에 대한 청크 정보의 리스트이다.
제어부는 복구부에서의 복구 완료시 메타데이터 서버에게로 복구 완료 메시지를 전송한다.
이러한 구성의 본 발명에 따르면, 다수의 데이터 서버들이 오류 데이터를 분배하여 복구하기 때문에 단일 메타데이터 서버에서 전담하여 오류 데이터의 복구를 처리하는 방식에 비해 효율적이고 빠른 복구를 제공할 수 있다.
도 1은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템의 구조를 나타낸 도면이다.
도 2는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 및 패리티를 분산 저장하는 방식을 설명하기 위한 도면이다.
도 3은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 복구 분산 처리를 위해 메타데이터 서버에서 구성하는 복구 정보 구조를 설명하기 위한 도면이다.
도 4는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서의 데이터 서버의 내부 구성을 나타낸 블록도이다.
도 5는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 메타데이터 서버에서 수행되는 복구 관리 쓰레드 처리 흐름을 설명하기 위한 도면이다.
도 6은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 메타데이터 서버가 복구 완료 메시지를 수신함에 따른 처리 흐름을 설명하기 위한 도면이다.
도 7은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 서버에서 오류 청크를 복구하는 처리 흐름을 설명하기 위한 도면이다.
도 8은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 서버가 클라이언트로부터의 쓰기 요청을 수신함에 따른 처리 흐름을 설명하기 위한 도면이다.
도 9는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 클라이언트에서의 읽기 처리 흐름을 설명하기 위한 도면이다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예에 따른 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치 및 방법에 대하여 설명하면 다음과 같다. 본 발명의 상세한 설명에 앞서, 이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니된다. 따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일실시예에 불과할 뿐이고 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 1은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템의 구조를 나타낸 도면이다.
메타데이터 서버(10)는 파일의 메타데이터를 관리한다.
복수의 데이터 서버(20a ~ 20n; 20)는 파일의 데이터를 관리한다. 각각의 데이터 서버는 하나 이상의 디스크 저장 장치(22a)를 장착한다. 각각의 데이터 서버의 저장 공간 크기는 장착된 디스크 수에 의해 결정된다.
클라이언트(30a ~ 30n; 30)는 파일을 접근한다.
메타데이터 서버(10)와 복수의 데이터 서버(20a ~ 20n; 20) 및 클라이언트(30a ~ 30n; 30)는 이더넷 등과 같은 네트워크(40)를 통해 서로 연결되고 통신한다.
본 발명은 클라이언트(30a ~ 30n)로부터 저장되는 파일이 청크(chunk)라는 일정 단위로 분할되어 서로 다른 데이터 서버(20a ~ 20n)에 미리 저장되고, 어느 한 데이터 서버의 고장으로 인한 오류가 발생하는 경우 이를 복구할 수 있는 패리티가 서로 다른 데이터 서버(20a ~ 20n)에 미리 저장되어 있는 구조에 적용된다. 이는 후술하는 도 2의 내용을 보면 보다 쉽게 이해할 수 있다.
도 2는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 및 패리티를 분산 저장하는 방식을 설명하기 위한 도면이다.
클라이언트(30a)는 파일 A(50)를 일정 단위(예컨대, 청크(chunk))로 분할한다. 여기서, 분할 크기는 미리 설정되거나, 파일 A(50)의 크기를 저장하고자 하는 데이터 서버 수로 나눈 값과 같이 파일 시스템을 구성하는 사용자가 정의하는 값이다.
클라이언트(30a)는 이와 같이 분할되어 생성된 일정 수의 데이터(51, 52, 53)마다 패리티(54)를 생성한다. 패리티(54)를 구성하는 데이터 청크의 수에 대한 정의는 사용자에 의해 결정될 수 있다. 데이터(51, 52, 54)와 패리티(54)를 저장할 데이터 서버(20a, 20b, 20c, 20n)는 메타데이터 서버(10)에서 각 데이터 서버의 저장 공간 이용률을 고려하여 선정한다. 메타데이터 서버(10)는 선정된 내용을 클라이언트(30a)에게 알려주게 된다.
도 2에서는 데이터(51)가 데이터 서버(20c)에 저장되고, 데이터(52)가 데이터 서버(20a)에 저장되고, 데이터(53)가 데이터 서버(20n)에 저장되고, 패리티(54)가 데이터 서버(20b)에 저장되는 것으로 하였다. 도 2에서, n(n≥5)개의 데이터 서버들 중에서 4개의 데이터 서버(20a, 20b, 20c, 20n)가 한 개의 데이터 서버군을 형성하는 것으로 가정한다. 이와 같은 가정하에 해당 데이터 서버군(그룹)에서 어느 한 데이터 서버(예컨대, 20a)가 고장나면, 데이터 서버(20a, 20b, 20c, 20n)와는 별개로 존재하는 다른 데이터 서버군의 데이터 서버(즉, 메타데이터 서버(10)가 선정하는 데이터 서버로서, 정상의 데이터 서버임)가 복구 활동을 진행한다.
도 3은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 복구 분산 처리를 위해 메타데이터 서버에서 구성하는 복구 정보 구조를 설명하는 도면이다.
메타데이터 서버(10)는 각각의 데이터 서버군에서의 데이터 서버의 고장을 감지한다. 메타데이터 서버(10)는 데이터 서버의 고장이 감지되면 비대칭 클러스터링 파일 시스템을 검사하여 복구 정보 구조를 구성한다. 메타데이터 서버(10)는 구성된 복구 정보 구조를 고장난 데이터 서버가 포함된 데이터 서버군과는 다른 데이터 서버군의 데이터 서버에게 전송한다.
복구 정보 구조는 각각의 데이터 서버별로의 데이터 서버 IP주소 및 디스크 식별자 정보 리스트를 포함하는 데이터 서버 정보(60)를 포함한다. 또한, 디스크 식별자 정보 리스트는 디스크 식별자별로 복구가 필요한 청크 식별자와 복구 데이터가 저장될 청크 식별자 및 복구에 필요한 청크 정보 리스트를 포함하는 디스크 식별자 정보(70)를 포함한다. 복구에 필요한 청크 정보 리스트는 청크가 저장된 데이터 서버 IP주소와 디스크 식별자 및 청크 식별자를 포함하는 청크 정보(80)를 포함한다.
여기서, 복구가 필요한 청크 식별자는 고장난 데이터 서버에 저장된 청크들 중 선택된 청크의 식별정보이다. 복구 데이터가 저장될 청크 식별자는 오류 청크가 복구되어 새롭게 저장될 청크의 식별정보이다. 복구에 필요한 청크 정보 리스트는 오류 청크를 복구하는데 필요한 데이터 및 패리티 청크 정보의 리스트이다. 하나의 패리티 청크 및 패리티를 산출하는데 포함된 데이터 청크들을 하나의 스트라입(90)이라 한다.
도 4는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서의 데이터 서버의 내부 구성을 나타낸 블록도이다.
데이터 서버는 수신부(100), 버퍼(110), 복구부(120), 제어부(130), 및 저장부(140)를 포함한다. 여기서, 데이터 서버는 도 1에 도시된 데이터 서버(20a~20n) 각각을 의미하는 것으로 이해하면 된다. 그러나, 고장난 데이터 서버는 메타데이터 서버(10)로부터 제공되는 복구가 필요한 청크 목록을 수신할 수 없다.
수신부(100)는 메타데이터 서버(10)로부터 제공되는 복구가 필요한 청크 목록을 수신한다. 여기서, 수신하는 청크 목록은 디스크 식별자 정보(70) 목록이다. 디스크 식별자 정보(70)는 상술한 도 3에 대한 설명으로 갈음한다.
버퍼(110)는 오류 청크를 복구함에 따른 복구 데이터를 저장한다. 즉, 버퍼(110)는 오류 청크를 복구함에 따라 발생되는 복구 데이터를 일시적으로 저장한다. 도 4에서는 버퍼(110)를 하나만 도시하였으나, 복수개로 구현되어도 무방하다.
복구부(120)는 오류 청크를 복구하는데 필요한 청크 데이터를 근거로 오류 청크에 대한 복구를 행한다. 여기서, 오류 청크를 복구하는데 필요한 청크 데이터는 데이터 서버군내의 고장난 데이터 서버를 제외한 나머지 데이터 서버들이 가지고 있다.
제어부(130)는 데이터 서버군내의 고장난 데이터 서버를 제외한 나머지 데이터 서버들에게 청크 데이터(즉, 오류 청크를 복구하는데 필요한 청크 데이터)를 요청한다. 제어부(130)는 수신부(100)를 통해 수신한 청크 데이터를 복구부(120)에게로 전송한다. 제어부(130)는 복구부(120)에서의 복구 완료시 메타데이터 서버(10)에게로 복구 완료 메시지를 전송한다.
저장부(140)는 청크 단위의 파일 데이터를 저장한다. 여기서, 저장부(140)는 도 1의 디스크 저장 장치(22a)에 해당하는 것으로 이해하면 된다.
도 5는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 메타데이터 서버에서 수행되는 복구 관리 쓰레드 처리 흐름을 설명하기 위한 도면이다. 즉, 도 5는 메타데이터 서버(10)가 데이터 서버 고장을 감지하였을 때 수행하는 데이터 복구 관리 쓰레드의 처리 흐름도이다.
메타데이터 서버(10)는 먼저 복구 정보 구조(바람직하게, 리스트 형태의 데이터 서버 정보(60) 및 디스크 식별자 정보(70))를 초기화한다(S10).
메타데이터 서버(10)는 비대칭 클러스터링 파일 시스템을 검사한다(S12).
메타데이터 서버(10)는 검사를 통해 고장난 데이터 서버에 저장된 청크들의 목록을 작성한다(S14). 여기서, 고장난 데이터 서버는 4개의 데이터 서버(20a, 20b, 20c, 20n)를 한 개의 데이터 서버군이라고 가정하고 해당 데이터 서버군에서 데이터 서버(20a)가 고장난 것으로 가정한다.
메타데이터 서버(10)는 고장난 데이터 서버(20a)에 저장된 청크들(즉, 오류 청크들)의 상태를 복구 상태로 설정한다(S16).
메타데이터 서버(10)는 이와 같이 하여 작성된 청크 목록의 처음부터 마지막 청크까지를 초기화된 복구 정보 구조에 저장한다(S18). 즉, 메타데이터 서버(10)는 청크 목록으로부터 복구해야 하는 청크 식별자가 선택되면, 복구된 청크 데이터를 저장할 새로운 청크를 할당한다(S20). 그리고 나서, 메타데이터 서버(10)는 선택된 청크가 속한 스트라입(90)에 속하는 나머지 데이터 및 패리티의 청크 정보(80)를 검사하여 이를 복구 정보 구조에 저장한다(S22). 여기서, 저장되는 위치는 새롭게 할당된 청크가 생성된 데이터 서버 및 디스크에 해당하는 정보 구조에 저장된다.
마지막 청크까지 완료되면 메타데이터 서버(10)는 데이터 서버 정보(60) 리스트의 처음부터 디스크 식별자 정보(70) 리스트에 저장된 내용을 복구 활동을 할 해당 데이터 서버에게로 전송한다(S26). 즉, 메타데이터 서버(10)는 복구가 필요한 청크 목록을 복구 활동을 할 해당 데이터 서버에게로 전송한다. 여기서, 복구 활동을 할 해당 데이터 서버는 고장난 데이터 서버(20a)가 포함된 데이터 서버군과는 별개로 존재하는 다른 데이터 서버군의 데이터 서버이다.
여기서, 복구 활동을 할 해당 데이터 서버로의 전송과정(S26)이 마지막 데이터 서버(즉, 모든 데이터 서버(20b, 20c, 20n))의 내용까지 완료되었다면(S24에서 "예") 해당 쓰레드는 종료된다.
도 6은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 메타데이터 서버가 복구 완료 메시지를 수신함에 따른 처리 흐름을 설명하기 위한 도면이다. 먼저, 메타데이터 서버(10)는 도 5에서와 같이 작업한 복구 정보 구조를 가지고 있음을 전제로 한다.
메타데이터 서버(10)는 데이터 서버(즉, 복구 활동을 수행한 데이터 서버)로부터의 복구 완료 메시지를 수신한다(S30).
메타데이터 서버(10)는 복구 정보 구조에서 데이터 서버 IP 주소와 디스크 식별자를 이용하여 해당 데이터 서버 정보(60)와 해당 디스크 식별자 정보(70)를 찾는다. 그 후, 메타데이터 서버(10)는 수신된 청크 식별자와 복구 데이터가 저장될 청크 식별자를 서로 비교하여 해당하는 청크 정보를 찾는다(S32).
메타데이터 서버(10)는 복구 정보 구조에서 복구가 완료된 오류 청크에 대한 정보를 가지고 있는 해당 청크 정보를 삭제한다(S34).
그리고, 메타데이터 서버(10)는 파일 메타데이터에서 오류 청크 정보를 새롭게 복구된 청크 정보로 수정한다(S36).
도 7은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 서버가 오류 청크를 복구하는 처리 흐름을 설명하기 위한 도면이다.
일단, 복구 활동을 할 데이터 서버는 메타데이터 서버(10)로부터 복구가 필요한 청크 목록을 수신한다(S40). 여기서 수신되는 청크 목록은 디스크 식별자 정보(70) 목록이다. 여기서, 복구 활동을 할 데이터 서버는 고장난 데이터 서버가 포함된 데이터 서버군과는 별개로 존재하는 다른 데이터 서버군의 데이터 서버이다.
복구 활동을 할 데이터 서버는 수신된 청크 목록의 첫번째 디스크부터 수행하여 마지막 디스크까지 처리가 완료되면(S42에서 "예") 종료한다.
복구 활동을 할 데이터 서버는 각 디스크마다 오류 청크의 내용이 실린 청크 목록의 처음부터 마지막 청크까지 수행한다(S44). 다시 말해서, 복구 활동을 할 데이터 서버는 먼저 복구중인 청크를 임시로 저장하는 버퍼를 할당한다(S46). 복구 활동을 할 데이터 서버는 버퍼가 할당되면 하기의 단계들과 같은 복구 활동을 수행하게 된다. 복구 활동을 할 데이터 서버는 오류 청크를 복구하는데 필요한 청크들이 저장된 데이터 서버들 중 마지막 데이터 서버인지 확인한다(S48).
확인 결과, 마지막이 아니라면 복구 활동을 할 데이터 서버는 고장나지 않은 나머지 데이터 서버(예컨대, 20b, 20c, 20n)에게로 해당 청크 데이터를 요청한다(S50).
이후, 복구 활동을 할 데이터 서버는 요청한 청크 데이터를 수신하게 되면 임시 버퍼의 내용과 수신된 데이터를 이용하여 오류 데이터 복구 과정(예를 들어, exclusive-OR)을 수행한다 (S52). 오류 데이터 복구 과정을 수행하였으므로, 상기의 복구 활동을 할 데이터 서버는 이하에서는 복구 활동을 수행한 데이터 데이터 서버가 된다.
이와 같은 오류 데이터 복구 과정이 마지막 데이터 서버(즉, 고장나지 않은 모든 데이터 서버(20b, 20c, 20n))의 마지막 청크까지 활용하여 완료되면 복구 활동을 수행한 데이터 서버는 임시 버퍼에 저장된 복구 데이터를 새롭게 할당된 청크 파일에 저장한다(S54).
복구 활동을 수행한 데이터 서버는 저장이 완료되면 메타데이터 서버(10)에게로 해당 오류 청크에 대한 복구가 완료되었음을 알린다(S56). 즉, 복구 활동을 수행한 데이터 서버는 복구 완료 메시지를 메타데이터 서버(10)에게로 보낸다.
그리고 나서, 복구 활동을 수행한 데이터 서버는 복구가 필요한 청크 목록에서 복구가 완료된 청크 정보를 삭제한다(S58).
도 8은 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 데이터 서버가 클라이언트로부터의 쓰기 요청을 수신함에 따른 처리 흐름을 설명하기 위한 도면이다.
먼저, 복구 활동의 주체인 데이터 서버가 클라이언트(30a ~ 30n중의 어느 하나)로부터의 쓰기 요청을 수신한다(S60). 여기서, 복구 활동의 주체인 데이터 서버는 고장난 데이터 서버가 포함된 데이터 서버군과는 별개로 존재하는 다른 데이터 서버군의 데이터 서버이다.
이어, 복구 활동의 주체인 데이터 서버는 처리중인 복구 청크 목록에 해당 청크가 존재하는지 확인한다(S62).
확인 결과, 존재하지 않는다면(S62에서 "아니오") 복구 활동의 주체인 데이터 서버는 이미 해당 청크에 대한 복구가 완료된 것으로 해석하여 해당 청크 파일에 쓰기를 처리한다(S64).
반대로, 존재하면서(S62에서 "예") 현재 해당 청크에 대한 복구가 진행 중이라면(S66에서 "예") 복구 활동의 주체인 데이터 서버는 현재 대기중인 입출력 명령이 완료되면 복구를 중지시킨다(S68). 그리고 나서, 복구 활동의 주체인 데이터 서버는 복구 청크 목록에서 해당 청크 정보를 삭제한다(S70). 물론, 복구 청크 목록에는 존재하지만 아직 복구가 시작되지 않았다면 복구 청크 목록에서 해당 청크 정보를 삭제한다. 이어, 복구 활동의 주체인 데이터 서버는 쓰기 요청된 데이터를 해당 청크에 저장한다(S72).
이와 같이, 복구가 완료되거나 복구가 취소되고 쓰기 데이터에 대한 저장이 완료되면 복구 활동의 주체인 데이터 서버는 메타데이터 서버(10)에게로 해당 청크의 복구가 완료되었음을 알린다(S74). 즉, 복구 활동의 주체인 데이터 서버는 복구 완료 메시지를 메타데이터 서버(10)에게로 보낸다.
도 9는 본 발명이 적용되는 비대칭 클러스터링 파일 시스템에서 클라이언트에서의 읽기 처리 흐름을 설명하기 위한 도면이다. 도 9는 클라이언트의 상부 계층인 응용계층에서 읽기 요청을 하면 클라이언트가 이를 수신하여 실행하는 과정을 설명하는 도면이다.
먼저, 클라이언트(30a ~ 30n중의 어느 하나)가 읽기 요청을 수신한다(S80).
읽기 요청을 수신한 클라이언트는 메타데이터 서버(10)에게로 해당 파일에 대한 메타데이터를 요청한다(S82).
이후, 해당 클라이언트는 메타데이터 서버(10)로부터의 메타데이터 정보를 수신한다(S84).
이어, 해당 클라이언트는 수신한 메타데이터 정보를 근거로 현재 읽고자 하는 청크의 상태값이 복구 상태인지 확인한다(S86).
확인 결과, 복구 상태라면(S86에서 "예") 해당 클라이언트는 먼저 복구 데이터 저장을 위한 임시 버퍼를 할당한다(S88). 여기서, 임시 버퍼 할당은 복구에 필요한 청크가 저장되어 있는 데이터 서버의 수와 동일할 수 있다. 예를 들어, 4개의 데이터 서버를 하나의 데이터 서버군이라고 가정하고 그 중에서 하나의 데이터 서버가 고장난 경우 나머지 세 개의 데이터 서버가 복구에 필요한 청크가 저장되어 있는 데이터 서버가 된다.
마지막 데이터 서버까지의 임시 버퍼 할당이 완료되지 않았다면(S90에서 "아니오") 해당 클라이언트는 복구에 필요한 청크가 저장되어 있는 마지막 데이터 서버에게까지 해당 청크 데이터를 요청한다(S92). 해당 클라이언트는 요청한 청크 데이터를 수신하면 임시 버퍼의 내용과 수신된 청크 데이터를 이용하여 오류 데이터 복구 과정을 수행한다(S94).
이와 같은 오류 데이터 복구 과정이 마지막 데이터 서버까지 완료되면 해당 클라이언트는 해당 데이터를 반환한다(S96).
상기 단계 S86에서의 확인 결과, 복구 상태가 아니라면 해당 클라이언트는 해당 청크가 저장된 데이터 서버에게로 데이터를 요청(S98)한 후에 상기의 단계 S96의 동작을 수행한다.
한편, 본 발명은 상술한 실시예로만 한정되는 것이 아니라 본 발명의 요지를 벗어나지 않는 범위내에서 수정 및 변형하여 실시할 수 있고, 그러한 수정 및 변형이 가해진 기술사상 역시 이하의 특허청구범위에 속하는 것으로 보아야 한다.
10 : 메타데이터 서버 20a ~ 20n : 데이터 서버
30a ~ 30n : 클라이언트 40 : 네트워크
100 : 수신부 110 : 버퍼
120 : 복구부 130 제어부
140 : 저장부

Claims (20)

  1. 복수의 데이터 서버군중에서 고장난 데이터 서버가 포함된 해당 데이터 서버군과는 다른 데이터 서버군의 데이터 서버가, 복구가 필요한 청크 목록을 수신하는 단계;
    상기 다른 데이터 서버군의 데이터 서버가, 상기 해당 데이터 서버군중에서 상기 고장난 데이터 서버를 제외한 나머지 데이터 서버들에게 오류 청크를 복구하는데 필요한 청크 데이터를 요청하는 단계; 및
    상기 다른 데이터 서버군의 데이터 서버가, 상기 청크 데이터를 근거로 상기 오류 청크에 대한 복구를 행하는 단계;를 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
  2. 청구항 1에 있어서,
    상기 복수의 데이터 서버군 각각은 클라이언트로부터 저장되는 파일에 대해 청크 단위로 나뉘어진 파일 데이터들의 개수 및 상기 파일 데이터들에 대한 오류 복구용 패리티의 개수를 합산한 개수와 동일한 개수의 데이터 서버들로 구성되는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
  3. 청구항 1에 있어서,
    상기 청크 목록은 하나 이상의 디스크 식별자별로 복구가 필요한 청크 식별자, 복구 데이터가 저장될 청크 식별자, 및 복구에 필요한 청크 정보 리스트를 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
  4. 청구항 3에 있어서,
    상기 복구가 필요한 청크 식별자는 상기 고장난 데이터 서버에 저장된 청크들 중 선택된 청크의 식별정보인 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
  5. 청구항 3에 있어서,
    상기 복구 데이터가 저장될 청크 식별자는 상기 오류 청크가 복구되어 새롭게 저장될 청크의 식별정보인 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
  6. 청구항 3에 있어서,
    상기 복구에 필요한 청크 정보 리스트는 상기 오류 청크를 복구하는데 필요한 데이터 및 패리티에 대한 청크 정보의 리스트인 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
  7. 청구항 6에 있어서,
    상기 청크 정보는 청크가 저장된 데이터 서버 IP주소, 디스크 식별자, 청크 식별자 정보를 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
  8. 청구항 1에 있어서,
    상기 복구 단계 이후에, 상기 다른 데이터 서버군의 데이터 서버가, 메타데이터 서버에게로 복구 완료 메시지를 전송하는 단계를 추가로 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
  9. 청구항 1에 있어서,
    상기 다른 데이터 서버군의 데이터 서버가, 상기 오류 청크를 복구함에 따른 복구 데이터를 상기 청크 목록에 저장하는 단계;를 추가로 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
  10. 청구항 1에 있어서,
    상기 다른 데이터 서버군의 데이터 서버가 클라이언트로부터의 쓰기 요청을 수신함에 따라 상기 쓰기 요청에 상응하는 처리하는 행하는 단계를 추가로 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
  11. 청구항 10에 있어서,
    상기 쓰기 요청 처리 단계는,
    상기 쓰기 요청에 의해 상기 청크 목록에 해당 청크가 존재하는지를 확인하는 단계; 및
    상기 확인 결과, 상기 해당 청크가 존재하지 않으면 상기 해당 청크에 데이터를 쓰기하여 저장하는 단계;를 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
  12. 청구항 11에 있어서,
    상기 저장 단계 이후에 메타데이터 서버에게로 복구 완료를 알리는 단계를 추가로 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
  13. 청구항 11에 있어서,
    상기 쓰기 요청 처리 단계는,
    상기 확인 결과, 상기 해당 청크가 존재하되 상기 해당 청크에 대한 복구가 진행중이면 상기 복구를 취소하고 상기 청크 목록에서 해당 청크 정보를 삭제하는 단계; 및
    상기 쓰기 요청에 의한 데이터를 해당 청크에 저장하는 단계;를 추가로 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
  14. 청구항 11에 있어서,
    상기 쓰기 요청 처리 단계는,
    상기 확인 결과, 상기 해당 청크가 존재하되 상기 해당 청크에 대한 복구가 시작되지 않은 경우에는 상기 청크 목록에서 해당 청크 정보를 삭제하는 단계; 및
    상기 쓰기 요청에 의한 데이터를 해당 청크에 저장하는 단계;를 추가로 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 방법.
  15. 메타데이터 서버로부터의 복구가 필요한 청크 목록을 수신하는 수신부;
    오류 청크를 복구하는데 필요한 청크 데이터를 근거로 오류 청크에 대한 복구를 행하는 복구부; 및
    데이터 서버군내의 고장난 데이터 서버를 제외한 나머지 데이터 서버들에게 상기 청크 데이터를 요청하고, 수신한 상기 청크 데이터를 상기 복구부에게로 전송하는 제어부;를 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치.
  16. 청구항 15에 있어서,
    상기 청크 목록은 하나 이상의 디스크 식별자별로 복구가 필요한 청크 식별자, 복구 데이터가 저장될 청크 식별자, 및 복구에 필요한 청크 정보 리스트를 포함하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치.
  17. 청구항 16에 있어서,
    상기 복구가 필요한 청크 식별자는 상기 고장난 데이터 서버에 저장된 청크들 중 선택된 청크의 식별정보인 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치.
  18. 청구항 16에 있어서,
    상기 복구 데이터가 저장될 청크 식별자는 상기 오류 청크가 복구되어 새롭게 저장될 청크의 식별정보인 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치
  19. 청구항 16에 있어서,
    상기 복구에 필요한 청크 정보 리스트는 상기 오류 청크를 복구하는데 필요한 데이터 및 패리티에 대한 청크 정보의 리스트인 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치.
  20. 청구항 15에 있어서,
    상기 제어부는 상기 복구부에서의 복구 완료시 상기 메타데이터 서버에게로 복구 완료 메시지를 전송하는 것을 특징으로 하는 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치.
KR20100028464A 2009-12-18 2010-03-30 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치 및 방법 KR101323729B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/971,167 US8543864B2 (en) 2009-12-18 2010-12-17 Apparatus and method of performing error recovering process in asymmetric clustering file system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020090127531 2009-12-18
KR20090127531 2009-12-18

Publications (2)

Publication Number Publication Date
KR20110070677A KR20110070677A (ko) 2011-06-24
KR101323729B1 true KR101323729B1 (ko) 2013-10-30

Family

ID=44546027

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20100028464A KR101323729B1 (ko) 2009-12-18 2010-03-30 비대칭 클러스터링 파일 시스템에서의 오류 복구 처리 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101323729B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100069234A (ko) * 2008-12-16 2010-06-24 한국전자통신연구원 비대칭 분산 파일 시스템과 그의 점진적 일관성 오류 감지 및 복구 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100069234A (ko) * 2008-12-16 2010-06-24 한국전자통신연구원 비대칭 분산 파일 시스템과 그의 점진적 일관성 오류 감지 및 복구 방법

Also Published As

Publication number Publication date
KR20110070677A (ko) 2011-06-24

Similar Documents

Publication Publication Date Title
CN111031096B (zh) 一种基于拟态防御的分布式存储系统构建方法
US11132256B2 (en) RAID storage system with logical data group rebuild
CN110169040B (zh) 基于多层一致性哈希的分布式数据存储方法与系统
CN105359099B (zh) 索引更新管线
US9411685B2 (en) Parity chunk operating method and data server apparatus for supporting the same in distributed raid system
RU2449358C1 (ru) Распределенная файловая система и способ управления согласованностью блоков данных в такой системе
US11487468B2 (en) Healing failed erasure-coded write attempts in a distributed data storage system configured with fewer storage nodes than data plus parity fragments
US7590672B2 (en) Identification of fixed content objects in a distributed fixed content storage system
JP5918243B2 (ja) 分散型データベースにおいてインテグリティを管理するためのシステム及び方法
JP5254611B2 (ja) 固定内容分散データ記憶のためのメタデータ管理
US11074129B2 (en) Erasure coded data shards containing multiple data objects
US7657796B1 (en) System and method for distributed storage verification
US8713356B1 (en) Error detection and recovery tool for logical volume management in a data storage system
US20170288701A1 (en) Restoration of Erasure-Coded Data Via Data Shuttle in Distributed Storage System
CN103929500A (zh) 一种分布式存储系统的数据分片方法
CN102110154B (zh) 一种集群文件系统中文件冗余存储方法
US8930663B2 (en) Handling enclosure unavailability in a storage system
US20140188957A1 (en) Hierarchical storage system and file management method
CN103268318A (zh) 一种强一致性的分布式键值数据库系统及其读写方法
WO2012075845A1 (zh) 分布式文件系统
JP2013544386A5 (ko)
WO2008109321A1 (en) Method and system for a self managing and scalable grid storage
US8543864B2 (en) Apparatus and method of performing error recovering process in asymmetric clustering file system
US10031682B1 (en) Methods for improved data store migrations and devices thereof
US20180081768A1 (en) Hierarchical fault tolerance in system storage

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170927

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20181001

Year of fee payment: 6