• 검색 결과가 없습니다.

(11) 공개번호 10-2015-0087622 (43) 공개일자 2015년07월30일

N/A
N/A
Protected

Academic year: 2022

Share "(11) 공개번호 10-2015-0087622 (43) 공개일자 2015년07월30일"

Copied!
22
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

(19) 대한민국특허청(KR) (12) 공개특허공보(A)

(11) 공개번호 10-2015-0087622 (43) 공개일자 2015년07월30일

(51) 국제특허분류(Int. Cl.)

G06F 17/30

(2006.01)

G06F 15/16

(2006.01) (21) 출원번호 10-2014-0007799

(22) 출원일자 2014년01월22일 심사청구일자 없음

(71) 출원인

한국전자통신연구원

대전광역시 유성구 가정로 218 (가정동) (72) 발명자

김영철

대전광역시 유성구 가정로 63 럭키하나아파트 10 3동 1106호

이상민

대전광역시 유성구 가정로 65 대림두레아파트 10 1동 608호

(뒷면에 계속)

(74) 대리인

특허법인지명 전체 청구항 수 : 총 1 항

(54) 발명의 명칭 파일 수준의 스냅샷을 제공하는 분산 파일 시스템 및 그 동작 방법 (57) 요 약

본 발명은 파일의 메타데이터 정보를 관리하되, 파일 수준에서 스냅샷 파일에 대한 메타데이터 정보를 관리하는 메타데이터 서버, 및 상기 파일의 데이터를 청크 단위로 분할하여 저장 및 관리하되, 원본 파일의 청크에 대해 상기 스냅샷 파일의 델타 청크를 저장 및 관리하며, 상기 원본 파일 또는 상기 스냅샷 파일에 대한 입출력을 관 리하는 다수의 데이터 서버를 포함하는 분산 파일 시스템 및 그 동작 방법에 관한 것이다.

대 표 도 - 도1

(2)

(72) 발명자 김영균

대전광역시 유성구 엑스포로 448 엑스포아파트 40 4동 1201호

최완

대전광역시 유성구 어은로 57 한빛아파트 119동 501호

이 발명을 지원한 국가연구개발사업 과제고유번호 10041730 부처명 舊지경부 연구관리전문기관 KEIT

연구사업명 산업원천기술개발사업(SW)

연구과제명 10,000 사용자 이상 동시 접속 가상 데스크탑 서비스를 지원하는 클라우드 스토리지용 파 일 시스템 개발

기 여 율 1/1 주관기관 ETRI

연구기간 2012.06.01 ~ 2015.05.31

(3)

명 세 서

청구범위 청구항 1

파일의 메타데이터 정보를 관리하되, 파일 수준에서 스냅샷 파일에 대한 메타데이터 정보를 관리하는 메타데이 터 서버; 및

상기 파일의 데이터를 청크 단위로 분할하여 저장 및 관리하되, 원본 파일의 청크에 대해 상기 스냅샷 파일의 델타 청크를 저장 및 관리하며, 상기 원본 파일 또는 상기 스냅샷 파일에 대한 입출력을 관리하는 다수의 데이 터 서버;

를 포함하는 분산 파일 시스템.

발명의 설명

기 술 분 야

본 발명은 분산 파일 시스템에 관한 것으로, 특히 파일 수준의 스냅샷을 제공하는 분산 파일 시스템의 기술에 [0001]

관한 것이다.

배 경 기 술

인터넷 비즈니스 응용 환경에서는 대용량 데이터의 처리와 저장 공간의 확장뿐만 아니라 시스템의 안정성과 가 [0002]

용성이 요구된다. 하지만, 대량의 데이터를 백업하기 위해서는 오랜 시간이 필요하고 이 시간 동안 서비스를 중단해야 하는 것은 용납될 수 없다. 따라서, 서비스가 제공되고 있는 동안에도 백업을 제공할 수 있는 온라인 백업(on-line)이 요구되며, 이러한 온라인 백업을 지원하기 위해서는 스냅샷 기법이 필요하다. 즉, 스냅샷은 특정 시점의 파일 시스템 또는 볼륨 이미지를 유지할 수 있는 기법으로, 서비스를 제공하는 동시에 스냅샷을 통 한 온라인 백업을 수행할 수 있도록 한다

한편, 일반적인 파일 시스템에서는 파일 시스템 또는 볼륨 수준에서 스냅샷을 제공하고 있으며, 파일의 메타데 [0003]

이터와 데이터를 함께 관리하는 구조를 갖는다. 여기서, 스냅샷은 임의의 시점에 파일 시스템 또는 볼륨 수준 에서의 현재 상태를 보관함으로써, 온라인 상태에서 백업을 할 수 있도록 지원하기 위해 사용된다. 또한, 최근 에는 가상 데스크탑 환경에서 가상 데이크탑 이미지 또는 가상 디스크에 대한 스냅샷을 지원함으로써, 특정 시 점의 스냅샷 상태로 복귀할 수 있도록 하거나, 가상 데스크탑 이미지에 대한 스냅샷을 생성하여 빠르게 가상 데 스크탑 이미지를 배포하기 위해 사용하고 있다.

하지만, 최근의 대용량 파일 시스템들은 대부분 파일의 메타데이터와 데이터를 메타데이터 서버와 데이터 서버 [0004]

들로 분리하여 저장하고 관리하는 분산 파일 시스템의 구조를 가진다. 이에 따라, 파일 수준에서 스냅샷을 지 원할 수 있는 방법이 요구된다.

즉, 비대칭 구조를 갖는 분산 파일 시스템에서 파일 수준으로 스냅샷을 제공하기 위해서는 메타데이터 서버에서 [0005]

원본 파일과 스냅샷 파일에 대한 메타데이터를 관리하며, 데이터 서버들에서 원본 파일과 스냅샷 파일에 대한 데이터를 관리하는 방법이 요구된다. 또한, 원본 파일과 스냅샷 파일에 대한 일관성을 보장하여야만 한다.

발명의 내용

해결하려는 과제

본 발명은 분산 파일 시스템에서 파일 수준으로 읽기 전용 또는 쓰기 가능한 스냅샷을 지원할 수 있도록 하는 [0006]

기술적 방안을 제공함을 목적으로 한다.

과제의 해결 수단

전술한 과제를 달성하기 위한 본 발명의 일 양상에 따른 분산 파일 시스템은 파일의 메타데이터 정보를 관리하 [0007]

(4)

되, 파일 수준에서 스냅샷 파일에 대한 메타데이터 정보를 관리하는 메타데이터 서버, 및 상기 파일의 데이터를 청크 단위로 분할하여 저장 및 관리하되, 원본 파일의 청크에 대해 상기 스냅샷 파일의 델타 청크를 저장 및 관 리하며, 상기 원본 파일 또는 상기 스냅샷 파일에 대한 입출력을 관리하는 다수의 데이터 서버를 포함한다.

발명의 효과

본 발명에 따르면, 메타데이터 서버에서 원본 파일과 스냅샷 파일에 대한 메타데이터를 공유하면서 일관성을 보 [0008]

장하여, 보다 빠른 스냅샷 생성과 관리를 지원하며, 데이터 서버에서는 원본 파일 또는 스냅샷 파일에 대한 데 이터 입출력과 갱신 요청을 스냅샷의 특성에 따라 효율적으로 처리함으로써, 메타데이터 서버 또는 클라이언트 에 투명한 처리를 지원할 수 있다.

도면의 간단한 설명

도 1은 본 발명의 일 실시예에 따른 분산 파일 시스템의 구성을 도시한 블록도.

[0009]

도 2는 본 발명의 실시예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 개념적으로 도시 한 도면.

도 3은 본 발명의 실시예에 따른 분산 파일 시스템의 메타데이터 서버에서 관리하는 파일 수준의 읽기 전용 스 냅샷 파일의 메타데이터 구조를 개략적으로 도시한 도면.

도 4는 본 발명의 실시 예에 따른 분산 파일 시스템에서 읽기 전용 스냅샷 파일의 델타 청크를 식별하기 위한 식별자 구성 정보를 개략적으로 도시한 도면.

도 5는 본 발명의 실시 예에 따른 분산 파일 시스템에서 갱신 데이터 정보를 익스텐트 단위로 추적하기 위한 원 본 청크 익스텐트 변경맵을 개략적으로 도시한 도면.

도 6은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 생성하는 처리 과정을 도시한 흐름도.

도 7은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 삭제하는 처리 과정을 도시한 흐름도.

도 8은 본 발명의 실시 예에 따른 분산 파일 시스템에서 원본 파일에 대한 쓰기 처리 과정을 도시한 흐름도.

도 9는 본 발명의 실시 예에 따른 분산 파일 시스템에서 원본 파일에 대한 읽기 처리 과정을 도시한 흐름도.

도 10은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일에 대한 읽기 처리 과정을 도시한 흐름도.

도 11은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일을 개념적으로 도 시한 도면.

도 12는 본 발명의 실시 예에 따른 분산 파일 시스템의 메타데이터 서버에서 관리하는 파일 수준의 쓰기 가능 스냅샷 파일의 메타데이터 구조를 개략적으로 도시한 도면.

도 13은 본 발명의 실시 예에 따른 분산 파일 시스템에서 쓰기 가능 스냅샷 파일의 델타 청크를 식별하기 위한 식별자 구성 정보를 개략적으로 도시한 도면.

도 14는 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일을 생성하는 처리 과정을 도시한 흐름도.

도 15는 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 쓰기 가능 스냅 샷 파일로 변환하는 처리 과정을 도시한 흐름도.

도 16은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일에 대한 쓰기 처리 과정을 도시한 흐름도.

도 17은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일에 대한 읽기 처리 과정을 도시한 흐름도.

발명을 실시하기 위한 구체적인 내용

(5)

전술한, 그리고 추가적인 본 발명의 양상들은 첨부된 도면을 참조하여 설명되는 바람직한 실시예들을 통하여 더 [0010]

욱 명백해질 것이다. 이하에서는 본 발명을 이러한 실시예를 통해 당업자가 용이하게 이해하고 재현할 수 있도 록 상세히 설명하기로 한다.

본 발명을 구체적으로 설명하기 전, 본 발명은 파일의 메타데이터를 독립적인 메타데이터 서버에서 관리하고, [0011]

파일의 데이터를 고정된 크기의 청크 단위로 나누어서 다수의 데이터 서버에 분산하여 관리함으로써, 파일 메타 데이터 접근 경로와 파일 데이터 접근 경로가 분리된 비대칭 구조를 갖는 분산 파일 시스템을 대상으로 한다.

도 1은 본 발명의 일 실시예에 따른 분산 파일 시스템의 구성을 도시한 블록도이다.

[0012]

클라이언트(110)는 클라이언트 응용을 수행하고, 메타데이터 서버(120)에 저장된 파일의 메타데이터에 접근할 [0013]

수 있으며, 데이터 서버(S140)에 저장된 파일의 데이터를 입출력할 수 있다. 즉, 클라이언트(110)가 파일에 접 근하기 위해서는, 먼저 메타데이터 서버(120)에 있는 파일 메타데이터에 접근하여 파일 데이터가 저장되어 있는 다수의 데이터 서버(130)에 대한 정보를 얻고 나서, 실제 데이터에 대한 입출력은 다수의 데이터 서버(130)를 통하여 이루어진다.

메타데이터 서버(120)는 파일 시스템의 모든 파일에 대한 메타데이터를 저장하고 관리하며, 모든 데이터 서버 [0014]

(S140)에 대한 상태 정보를 관리한다. 구체적으로, 메타데이터 서버(120)는 파일의 메타데이터 정보를 관리하 되, 파일 수준에서 스냅샷 파일에 대한 메타데이터 정보를 관리한다.

여기서, 스냅샷은 특성에 따라 읽기 전용 스냅샷 또는 쓰기 가능 스냅샷으로 관리될 수 있으며, 두 스냅샷 모두 [0015]

원본 파일 데이터에 대한 메타데이터를 공유한다. 읽기 전용 스냅샷은 스냅샷을 생성한 시점에서의 파일 데이 터를 읽기만 가능하며, 원본 파일은 계속적으로 변경된다. 쓰기 가능 스냅샷은 스냅샷이 생성된 이후에 스냅샷 에 대한 읽기 쓰기가 가능할 수 있다. 따라서, 원본 파일과 스냅샷이 파일 데이터에 대한 메타데이터를 공유하 지만, 원본 파일에 대한 변경이 스냅샷에 반영되지 않으며, 스냅샷에 대한 변경이 원본 파일에 반영되지 않는 특성을 갖는다.

데이터 서버(S140)는 파일의 데이터 청크를 저장 및 관리하고, 주기적으로 메타데이터 서버(120)에게 자신의 상 [0016]

태 정보를 보고한다. 구체적으로, 데이터 서버(130)는 파일의 데이터를 청크 단위로 분할하여 저장 및 관리하 되, 원본 파일의 청크에 대해 스냅샷 파일의 델타 청크를 저장 및 관리하며, 원본 파일 또는 스냅샷 파일에 대 한 입출력을 관리한다. 바람직하게, 데이터 서버(130)는 이러한 읽기 전용 스냅샷 또는 쓰기 가능 스냅샷의 특 성을 반영하여 파일의 청크 데이터에 대한 입출력을 관리한다.

분산 파일 시스템(10)의 데이터 서버(S140)는 다수 개로 구성하는 것이 바람직하며, 클라이언트(110), 메타데이 [0017]

터 서버(120) 및 다수의 데이터 서버(S140)는 네트워크로 상호 연결된다.

이하, 도 2 내지 도 10을 참조하여 파일 수준의 읽기 전용 스냅샷을 제공하는 분산 파일 시스템 및 그 방법에 [0018]

대해 설명한다.

도 2는 본 발명의 실시예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 개념적으로 도시 [0019]

한 도면이다.

파일 수준의 읽기 전용 스냅샷 파일은 원본 파일에 대한 스냅샷을 생성하는 시점의 상태를 보관한다. 따라서 [0020]

스냅샷을 생성한 이후에 원본 파일이 계속해서 갱신되더라도 특정 스냅샷을 생성한 시점의 파일 상태로 복귀할 수 있도록 한다. 읽기 전용 스냅샷은 시간 상에서 계속해서 생성할 수 있으며 각각의 스냅샷은 스냅샷을 생성 하는 시점에서의 원본 파일의 상태를 보관하게 된다. 이를 위해, 읽기 전용 스냅샷(203,205,207)은 원본 파일 과 동일하게 파일 형태로 생성된다. 그리고, 데이터를 저장하는 청크에 대해서는 스냅샷을 생성한 이후에는 데 이터 갱신이 발생하면 원본 청크(202)에서 갱신하지 않고 스냅샷 이후에 갱신되는 데이터만을 저장하는 스냅샷 델타 청크(104,106,108)에 저장됨으로써, 특정 스냅샷으로 복귀할 때 스냅샷 시점의 데이터에 접근할 수 있도록 한다.

도 3은 본 발명의 실시예에 따른 분산 파일 시스템의 메타데이터 서버에서 관리하는 파일 수준의 읽기 전용 스 [0021]

냅샷 파일의 메타데이터 구조를 개략적으로 도시한 도면이다.

원본 파일과 읽기 전용 스냅샷 파일에 대한 메타데이터 정보는 메타데이터 서버(120)에서 inode 구조 [0022]

(6)

(301,306,311,316)로 관리된다. inode 구조에는 inode 속성 정보(302,307,312,317)와 데이터 서버(130)에 분 할되어 저장되어 있는 청크 레이아웃 정보를 포함한다. 여기서, inode 속성 정보로는 inode 식별자, 파일 타입, 파일 모드, 파일 크기, 파일 소유권, 파일 접근/변경/갱신 시간 등을 갖는다. 또한, 청크 레이아웃 정보 는 청크 개수, 청크 크기, 청크 복제본 수에 대한 정보를 갖는 청크 레이아웃 헤더 정보(304,309,314,319)와 청 크가 저장된 디스크 식별자, 청크 식별자, 청크 타입, 청크 버전 정보를 갖는 청크 정보(305,310,315,320)로 구 성된다. 이외에 원본 파일에서는 원본 파일에서 생성한 읽기 전용 스냅샷 파일의 inode 정보가 유지되는(303) 반면에, 읽기 전용 스냅샷 파일의 inode에서는 원본 파일의 inode 정보를 유지됨으로써(308,313,318), 원본 파 일과 스냅샷 파일과의 관계가 설정된한다.

도 4는 본 발명의 실시 예에 따른 분산 파일 시스템에서 읽기 전용 스냅샷 파일의 델타 청크를 식별하기 위한 [0023]

식별자 구성 정보를 개략적으로 도시한 도면이다.

구체적으로, 도 4는 분산 파일 시스템(10)에서 파일 수준의 읽기 전용 스냅샷 파일을 생성한 이후에 원본 파일 [0024]

의 청크가 갱신되는 경우, 갱신 데이터를 저장하는 읽기 전용 스냅샷 파일의 델타 청크를 식별하기 위한 식별자 구성 정보이다. 여기서, 읽기 전용 스냅샷 파일의 델타 청크는 원본 파일의 청크와 같이 별도의 청크 식별자를 할당하지 않고, 원본 청크의 식별자(401)와 읽기 전용 스냅샷 번호(402)를 이용하여 식별하도록 한다. 따라서, 읽기 전용 스냅샷 파일의 청크 정보에서 청크가 저장된 디스크 식별자와 청크 식별자는 원본 파일의 청크와 동 일하게 유지된다.

도 5는 본 발명의 실시 예에 따른 분산 파일 시스템에서 갱신 데이터 정보를 익스텐트 단위로 추적하기 위한 원 [0025]

본 청크 익스텐트 변경맵을 개략적으로 도시한 도면이다.

구체적으로, 도 5는 분산 파일 시스템(10)에서 파일 수준의 읽기 전용 스냅샷 파일을 생성한 이후에 원본 파일 [0026]

의 청크가 갱신되는 경우, 갱신 데이터 정보를 익스텐트 단위로 추적하기 위한 원본 청크 익스텐트 변경맵이다.

분산 파일 시스템(10)은 읽기 전용 스냅샷 파일을 생성한 이후에 원본 파일의 청크가 갱신되는 경우, 스냅샷 델 타 청크에 갱신되는 데이터를 저장한다. 여기서, 갱신은 익스텐트(extent) 단위로 copy-on-write 방법을 사용 한다.

즉, 분산 파일 시스템(10)은 청크를 익스텐트 단위로 분할하였을 때 갱신 데이터가 포함되는 익스텐트에 대해 [0027]

원본 청크 또는 이전 읽기 전용 스냅샷의 델타 청크에서 익스텐트를 읽어서 데이터를 갱신하고, 현재 읽기 전용 스냅샷 델타 청크에 저장한다. 이때, 청크를 구성하는 익스텐트들에 대해 익스텐트가 어떤 읽기 전용 스냅샷 번호 이후에 변경되었는지를 추적하기 위해, 분산 파일 시스템(10)은 익스텐트 번호와 읽기 전용 스냅샷 번호 (502)를 관리하는 원본 청크 익스텐트 변경맵을 원본 청크 끝에 유지한다. 또한, 분산 파일 시스템(10)은 원본 청크 익스텐트 변경맵에는 마지막으로 생성된 읽기 전용 스냅샷 번호(501)도 함께 유지한다.

도 6은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 생성하는 처리 [0028]

과정을 도시한 흐름도이다.

먼저, 분산 파일 시스템(10)은 원본 파일 inode의 잠금을 획득한다(S601). 이는, 원본 파일의 읽기 전용 스냅 [0029]

샷을 생성하기 위해서 원본 파일 inode의 잠금을 획득하여 스냅샷 생성에 대한 일관성을 보장한다. 잠금을 획 득한 이후, 분산 파일 시스템(10)은 스냅샷 파일 inode를 생성하고, 읽기 전용 스냅샷 번호를 부여한 다음, 스 냅샷 파일의 모드를 읽기 전용으로 설정한다(S602). 다음으로, 분산 파일 시스템(10)은 원본 파일 또는 이전에 생성된 읽기 전용 스냅샷의 청크 레이아웃 정보를 새로 생성된 읽기 전용 스냅샷의 청크 레이아웃 정보에 복사 한다(S603).

또한, 분산 파일 시스템(10)은 원본 파일의 청크를 저장하고 있는 모든 데이터 서버들(130)에서 원본 청크 또는 [0030]

이전에 생성된 스냅샷 델타 청크의 잠금을 획득하고(S604), 새로 생성된 읽기 전용 스냅샷에 대한 델타 청크를 생성한다(S605).

이때 만약, 원본 청크 또는 이전 스냅샷 델타 청크에 대한 데이터 갱신이 있는 경우, 분산 파일 시스템(10)은 [0031]

새로 생성된 스냅샷 델타 청크를 저장하고 원본 청크의 익스텐트 변경맵에 반영한다(S606). 이후에 원본 청크 또는 이전에 생성된 스냅샷 델타 청크의 잠금을 해제한다(S607).

나아가, 분산 파일 시스템(10)은 메타데이터 서버(120)에서 새로 생성한 스냅샷 파일의 inode에 원본 파일의 [0032]

inode 정보를 저장하고(S608), 원본 파일의 inode에는 새로 생성한 읽기 전용 스냅샷 파일의 inode 식별자와 스 냅샷 번호를 저장한다(S609). 마지막으로, 분산 파일 시스템(10)은 원본 파일 inode의 잠금을 해제하여(S610),

(7)

파일 수준의 읽기 전용 스냅샷 파일을 생성하는 처리 과정을 종료한다.

도 7은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 삭제하는 처리 [0033]

과정을 도시한 흐름도이다.

읽기 전용 스냅샷 파일을 삭제하기 위해서, 분산 파일 시스템(10)은 삭제할 스냅샷 파일이 원본 파일에 대해 첫 [0034]

번째로 생성된 스냅샷인지에 따라 다른 처리 과정으로 수행한다(S701).

먼저 삭제하고자 하는 스냅샷이 첫번째로 생성된 읽기 전용 스냅샷 파일일 경우에는, 분산 파일 시스템(10)은 [0035]

청크를 저장하고 있는 데이터 서버(130)에서 원본 청크의 익스텐트 변경맵을 분석하여(S702), 삭제할 스냅샷이 생성된 이후에 변경된 데이터를 저장하고 있는 스냅샷 델타 청크를 원본 청크와 병합한다(S703). 병합한 후, 분산 파일 시스템(10)은 데이터 서버(130)에서 삭제 대상인 읽기 전용 스냅샷 델타 청크를 삭제한다(S704).

만약, 삭제하고자 하는 스냅샷이 첫번째로 생성된 읽기 전용 스냅샷이 아닌 경우, 분산 파일 시스템(10)은 청크 [0036]

를 저장하고 있는 데이터 서버(130)에서 원본 청크의 익스텐트 변경맵을 분석하여(S705), 삭제할 스냅샷이 생 성된 이후에 변경된 데이터를 저장하고 있는 스냅샷 델타 청크와 삭제 대상 스냅샷 보다 이전에 생성된 스냅샷 이후에 변경된 데이터를 저장하고 있는 스냅샷 델타 청크를 병합한다(S706). 병합한 후, 분산 파일 시스템(1 0)의 데이터 서버(130)에서는 삭제 대상인 읽기 전용 스냅샷 델타 청크를 삭제한다(S707).

이러한 과정 후에, 분산 파일 시스템(10)의 데이터 서버(130)에서는 원본 청크의 익스텐트 변경맵의 삭제할 스 [0037]

냅샷 번호를 초기화하거나, 이전 스냅샷 번호로 변경 및 저장한다(S708). 그리고, 분산 파일 시스템(10)은 원 본 파일의 inode에서 삭제 대상인 읽기 전용 스냅샷 inode 정보를 삭제한다(S709). 마지막으로, 분산 파일 시 스템(10)은 스냅샷 파일의 inode를 삭제하여(S710), 파일 수준의 읽기 전용 스냅샷 파일을 삭제하는 처리 과정 을 종료한다.

도 8은 본 발명의 실시 예에 따른 분산 파일 시스템에서 원본 파일에 대한 쓰기 처리 과정을 도시한 [0038]

흐름도이다. 구체적으로, 분산 파일 시스템(10)은 파일 수준의 읽기 전용 스냅샷 파일을 생성한 이후에, 클라 이언트(110)에서 원본 파일에 데이터를 쓸 수 있다.

이를 위해서 먼저, 분산 파일 시스템(10)은 클라이언트(110)에서 메타데이터 서버(120)로부터 원본 파일의 청크 [0039]

레이아웃 정보를 요청하여 받아온다(S801). 그리고, 클라이언트(110)는 데이터를 쓸 위치의 청크를 저장하고 있는 데이터 서버(130)에 데이터 쓰기를 요청한다(S802). 그러면, 분산 파일 시스템(10)의 데이터 서버(130)에 서는 먼저 원본 청크의 익스텐트 변경맵을 분석하여(S803), 청크에서 데이터를 쓸 위치의 익스텐트가 변경되었 는지를 검사한다(S804).

만약 익스텐트가 변경되었으면, 분산 파일 시스템(10)은 마지막 변경 데이터를 가지고 있는 읽기 전용 스냅샷 [0040]

델타 청크와 현재(마지막) 읽기 전용 스냅샷 델타 청크의 잠금을 획득한다(S805). 분산 파일 시스템(10)은 마 지막 변경 스냅샷 델타 청크에서 현재 스냅샷 델타 청크로 익스텐트 단위의 copy-on-write를 수행한 후(S806), 마지막 변경 스냅샷 델타 청크와 현재 스냅샷 델타 청크의 잠금을 해제한다(S807).

만약, 익스텐트가 변경되지 않았으면 원본 청크에서 한번도 변경되지 않았다는 것을 의미하므로, 분산 파일 시 [0041]

스템(10)은 원본 청크와 현재 스냅샷 델타 청크의 잠금을 획득한다(S808). 분산 파일 시스템(10)은 원본 청크 에서 현재 스냅샷 델타 청크로의 copy-on-write를 수행한 후(S809), 원본 청크와 현재 스냅샷 델타 청크의 잠금 을 해제한다(S810).

이후, 분산 파일 시스템(10)은 원본 청크의 익스텐트 변경맵에서 익스텐트에 대해 마지막(현재) 읽기 전용 스냅 [0042]

샷 번호를 설정함으로써, 마지막으로 변경된 위치를 추적할 수 있게 된다(S811).

도 9는 본 발명의 실시 예에 따른 분산 파일 시스템에서 원본 파일에 대한 읽기 처리 과정을 도시한 [0043]

흐름도이다. 구체적으로, 분산 파일 시스템(10)은 파일 수준의 읽기 전용 스냅샷 파일을 생성한 이후, 원본 파 일에 대한 읽기 처리 과정을 수행할 수 있다.

읽기 전용 스냅샷 파일 생성한 이후에 원본 파일을 읽을 때, 분산 파일 시스템(10)은 먼저 클라이언트(110)에서 [0044]

메타데이터 서버(120)로부터 원본 파일의 청크 레이아웃 정보를 요청하여 받아온다(S901). 또한, 분산 파일 시 스템(10)의 클라이언트(110)에서는 청크 레이아웃에서 읽을 데이터를 저장하고 있는 데이터 서버(130)로 데이터 읽기를 요청하게 된다(S902). 그러면, 분산 파일 시스템(10)의 데이터 서버에서는 원본 청크의 익스텐트 변경 맵을 분석하여(S903), 익스텐트가 스냅샷 생성 이후에 변경되었는지를 검사한다(S904).

(8)

단계 S904의 검사 결과 익스텐트가 변경되었으면, 분산 파일 시스템(10)은 마지막으로 변경된 데이터를 저장하 [0045]

고 있는 스냅샷 델타 청크의 잠금을 획득하고(S905), 마지막 변경 읽기 전용 스냅샷 델타 청크에서 데이터 읽기 를 수행하여 클라이언트(110)에 전달한 후(S906), 마지막 변경 스냅샷 델타 청크의 잠금을 해제한다(S907).

만약 단계 S904의 검사 결과 익스텐트가 변경되지 않았으면, 원본 청크가 스냅샷 생성 이후에 한번도 변경되지 [0046]

않은 것이므로, 분산 파일 시스템(10)은 원본 청크의 잠금을 획득하고(S908), 원본 청크에서 데이터를 읽어서 클라이언트(110)에 전달한 후(S909), 원본 청크의 잠금을 해제한다(S910).

도 10은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일에 대한 읽기 처리 [0047]

과정을 도시한 흐름도이다.

구체적으로, 읽기 전용 스냅샷 파일을 읽을 때, 분산 파일 시스템(10)은 먼저 클라이언트(110)에서 메타데이터 [0048]

서버(120)로부터 스냅샷 파일의 청크 레이아웃 정보를 요청하여 받아온다(S1001). 분산 파일 시스템(10)의 클 라이언트(110)에서는 읽을 데이터를 저장하고 있는 데이터 서버로 데이터 읽기 요청을 전달한다(S1002). 그러 면, 분산 파일 시스템(10)의 데이터 서버(130)에서는 원본 청크의 익스텐트 변경맵을 분석하여(S1003), 스냅샷 이전에 익스텐트가 변경되었는지를 검사한다(S1004).

단계 S1004의 검사 결과 익스텐트가 변경되었으면, 분산 파일 시스템(10)은 이전에 변경된 익스텐트를 저장하고 [0049]

있는 스냅샷 델타 청크의 잠금을 획득하고(S1005), 이전에 변경된 익스텐트에서 데이터를 읽어서 클라이언트 (110)에 전달한 후(S1006), 이전 변경된 읽기 전용 스냅샷 델타 청크의 잠금을 해제한다(S1007).

만약, 단계 S1004의 검사 결과 익스텐트가 변경되지 않았으면, 분산 파일 시스템(10)은 원본 청크의 잠금을 획 [0050]

득하고(S1008), 원본 청크에서 데이터를 읽어서 클라이언트(110)에 전달한 후(S1009), 원본 청크의 잠금을 해제 한다(S1010).

이하, 도 11 내지 도 17을 참조하여 파일 수준의 쓰기 가능 스냅샷을 제공하는 분산 파일 시스템 및 그 방법에 [0051]

대해 설명한다.

도 11은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일을 개념적으로 도 [0052]

시한 도면이다.

파일 수준의 쓰기 가능 스냅샷은 읽기 전용 스냅샷과 같이 스냅샷 생성 시점에 원본 파일과 메타데이터 정보를 [0053]

공유하지만, 읽기 전용 스냅샷과는 달리 원본 파일과 독립적으로 스냅샷에 대한 읽기와 쓰기가 가능하다. 그리 고, 원본 파일에 대한 변경은 쓰기 가능 스냅샷에 반영되지 않으며, 쓰기 가능 스냅샷에 대한 변경은 원본 파일 에 반영되지 않는다.

따라서, 원본 파일(1101)의 원본 청크(1102)에 대한 변경은 읽기 전용 스냅샷 델타 청크와 같이 유지되며, 쓰기 [0054]

가능 스냅샷들(1003,1005,1007)은 별도로 쓰기 가능 스냅샷 델타 청크(1004,1006,1008)를 유지하면서 쓰기 가능 스냅샷의 데이터가 변경되는 경우, 원본 청크와 읽기 전용 스냅샷 델타 청크를 이용하여 copy-on-write가 수행 된다.

도 12는 본 발명의 실시 예에 따른 분산 파일 시스템의 메타데이터 서버에서 관리하는 파일 수준의 쓰기 가능 [0055]

스냅샷 파일의 메타데이터 구조를 개략적으로 도시한 도면이다.

구체적으로, 원본 파일(1201)과 쓰기 가능 스냅샷 파일들(1206,1211,1216)은 메타데이터 서버(120)에서 inode [0056]

구조로 메타데이터가 관리된다. 이때, inode에는 inode 속성 정보(1202,1207,1212,1217)와 청크 레이아웃 정보 (1204,1205,1209,1210,1214,1215,1219,1220)가 관리된다. 이러한 정보들은 읽기 전용 스냅샷 파일과 동일하다. 또한, 원본 파일 inode에서는 쓰기 가능 스냅샷에 대한 inode 정보(1203)가 유지되며, 쓰기 가능 스 냅샷들에는 원본 파일의 inode 정보(1108,1113,1118)가 유지된다.

도 13은 본 발명의 실시 예에 따른 분산 파일 시스템에서 쓰기 가능 스냅샷 파일의 델타 청크를 식별하기 위한 [0057]

식별자 구성 정보를 개략적으로 도시한 도면이다.

구체적으로, 도 13은 분산 파일 시스템(10)에서 파일 수준의 쓰기 가능 스냅샷 파일을 생성한 이후에 원본 파일 [0058]

의 청크가 갱신되는 경우, 갱신 데이터를 저장하는 쓰기 가능 스냅샷 파일의 델타 청크를 식별하기 위한 식별자 구성 정보이다. 여기서, 쓰기 가능 스냅샷 파일의 델타 청크는 원본 청크의 식별자(S1401)와 쓰기 가능 스냅샷 번호(S1402)로 구성된다. 따라서, 분산 파일 시스템(10)은 쓰기 가능 스냅샷 델타 청크를 위한 별도의 청크 식

(9)

별자를 할당하지 않는다.

도 14는 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일을 생성하는 처리 [0059]

과정을 도시한 흐름도이다.

구체적으로, 원본 파일에 대한 쓰기 가능 스냅샷을 생성하기 위해서, 분산 파일 시스템(10)은 먼저 원본 파일 [0060]

inode의 잠금을 획득한다(S1401). 그리고, 분산 파일 시스템(10)은 쓰기 가능 스냅샷 inode를 생성하고, 쓰기 가능 스냅샷 번호를 할당한다(S1402). 또한, 분산 파일 시스템(10)은 쓰기 가능 스냅샷 inode의 청크 레이아웃 정보에 원본 파일 inode의 청크 레이아웃 정보를 복사한다(S1403).

분산 파일 시스템(10)은 청크 레이아웃을 참조하여 청크를 저장하고 있는 모든 데이터 서버(130)에서 원본 청크 [0061]

의 잠금을 획득하고(S1404), 쓰기 가능 스냅샷 델타 청크를 생성한다(S1405). 만약, 원본 청크에 대한 데이터 쓰기가 있을 경우, 분산 파일 시스템(10)은 생성된 스냅샷 델타 청크에 원본 청크의 해당 익스텐트를 copy-on- write하고, 스냅샷 델타 청크의 익스텐트 변경 비트맵을 반영하며(S1406), 데이터 서버(130)에서 원본 청크의 잠금을 해제한다(S1407).

이후, 분산 파일 시스템(10)은 쓰기 가능 스냅샷 파일 inode에 원본 파일 inode 정보를 저장하고(S1408), 원본 [0062]

파일 inode에는 새로 생성된 쓰기 가능 스냅샷 파일 inode 정보와 스냅샷 번호를 추가한다(S1409). 마지막으로, 분산 파일 시스템(10)은 원본 파일 inode의 잠금을 해제하여(S1410), 파일 수준의 쓰기 가능 스냅샷 파일을 생 성하는 처리 과정을 종료한다.

도 15는 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 읽기 전용 스냅샷 파일을 쓰기 가능 스냅 [0063]

샷 파일로 변환하는 처리 과정을 도시한 흐름도이다. 구체적으로, 분산 파일 시스템(10)의 쓰기 가능 스냅샷 파일은 읽기 전용 스냅샷 파일로부터 변환된 수 있다.

이를 위해, 분산 파일 시스템(10)은 먼저 원본 파일과 읽기 전용 스냅샷 파일 inode의 잠금을 획득한다(S1501).

[0064]

그런 다음, 분산 파일 시스템(10)은 읽기 전용 스냅샷 파일의 타입을 쓰기 가능 스냅샷 파일로 변경하고, 쓰기 가능 스냅샷 번호를 부여한다(S1502). 또한, 분산 파일 시스템(10)은 읽기 전용 스냅샷 파일의 청크 레이아웃 정보를 참조하여 모든 청크에 대해, 데이터 서버(130)에서 이전 스냅샷 델타 청크들에 대한 잠금을 획득하고 (S1503), 쓰기 가능 스냅샷 델타 청크를 생성한다(S1504).

분산 파일 시스템(10)의 데이터 서버(130)에서는 이전 읽기 전용 스냅샷 델타 청크들을 쓰기 가능 스냅샷 델타 [0065]

청크로 병합한다(S1505). 그리고, 분산 파일 시스템(10)의 데이터 서버(130)에서 쓰기 가능 스냅샷으로 변경하 는 읽기 전용 스냅샷의 델타 청크들을 이전 스냅샷 델타 청크에 병합한다(S1506).

분산 파일 시스템(10)은 단계 S1506에서 병합된 것은 원본 청크의 익스텐트 변경맵에 반영 즉, 원본 청크 익스 [0066]

텐트 변경맵에서 읽기 전용 스냅샷 번호를 이전 읽기 전용 스냅샷 번호로 변경하고(S1507), 데이터 서버(130)에 서 원본 청크의 잠금을 해제한다(S1508). 분산 파일 시스템(10)의 메타데이터 서버(120)에서는 원본 파일 inode에서 읽기 전용 스냅샷 파일 inode 정보를 삭제하고, 쓰기 가능 스냅샷 inode 정보에 쓰기 가능 스냅샷 파 일 inode 식별자와 번호를 추가한다(S1509). 마지막으로, 분산 파일 시스템(10)은 원본 파일 inode의 잠금을 해제하여(S1510), 파일 수준의 읽기 전용 스냅샷 파일을 쓰기 가능 스냅샷 파일로 변환하는 처리 과정을 종료한 다.

도 16은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일에 대한 쓰기 처리 [0067]

과정을 도시한 흐름도이다.

쓰기 가능 스냅샷 파일에 대한 쓰기 처리를 위해, 분산 파일 시스템(10)은 먼저 클라이언트(110)에서 메타데이 [0068]

터 서버(120)로부터 쓰기 가능 스냅샷 파일의 청크 레이아웃 정보를 요청하여 받아온다(S1601). 분산 파일 시 스템(10)의 클라이언트(110)에서는 쓸 데이터에 대한 청크를 저장하고 있는 데이터 서버(130)에 데이터 쓰기를 요청한다(S1602). 또한, 분산 파일 시스템(10)의 데이터 서버(130)에서는 먼저 쓰기 가능 스냅샷 델타 청크의 익스텐트 변경 비트맵을 분석하여(S1603), 쓸 데이터에 위치의 익스텐트가 변경되었는지를 검사한다(S1604).

단계 S1604의 검사 결과 익스텐트가 변경되었으면, 분산 파일 시스템(10)은 스냅샷 델타 청크의 잠금을 획득하 [0069]

고(S1605), 쓰기 가능 스냅샷 델타 청크에 데이터를 쓴 후(S1606), 쓰기 가능 스냅샷 델타 청크의 잠금을 해제 한다(S1607).

만약, 단계 S1604의 검사 결과 해당 익스텐트가 변경되지 않았으면, 분산 파일 시스템(10)은 원본 청크와 스냅 [0070]

샷 델타 청크의 잠금을 획득하고(S1608), 원본 청크에서 스냅샷 델타 청크로의 copy-on-write를 수행한다

(10)

(S1609). 그리고, 분산 파일 시스템(10)은 쓰기 가능 스냅샷 델타 청크의 익스텐트 변경 비트맵에 익스텐트가 변경된 것으로 설정한다(S1610). 마지막으로, 분산 파일 시스템(10)은 원본 청크 및 쓰기 가능 스냅샷 델타 청 크의 잠금을 해제하여(S1611), 파일 수준의 쓰기 가능 스냅샷 파일에 대한 쓰기 처리 과정을 종료한다.

도 17은 본 발명의 실시 예에 따른 분산 파일 시스템에서 파일 수준의 쓰기 가능 스냅샷 파일에 대한 읽기 처리 [0071]

과정을 도시한 흐름도이다.

쓰기 가능 스냅샷 파일에서 데이터를 읽기 위해, 분산 파일 시스템(10)은 먼저 클라이언트(110)에서 메타데이 [0072]

터 서버(120)로부터 쓰기 가능 스냅샷의 청크 레이아웃 정보를 요청하여 받아온다(S1701). 그리고, 분산 파일 시스템(10)의 클라이언트(110)에서는 읽을 데이터의 청크를 저장하고 있는 데이터 서버(130)로 데이터 읽기를 요청한다(S1702). 이에 따라, 분산 파일 시스템(10)의 데이터 서버(130)에서는 쓰기 가능 스냅샷 델타 청크의 익스텐트 변경 비트맵을 분석하여(S1703), 읽을 데이터에 해당하는 익스텐트가 변경되었는지를 검사한다 (S1704).

단계 S1704의 검사 결과 해당 익스텐트가 변경되었으면, 분산 파일 시스템(10)은 쓰기 가능 스냅샷 델타 청크의 [0073]

잠금을 획득하고(S1705), 쓰기 가능 스냅샷 델타 청크에서 데이터를 읽어서 클라이언트에 전달한 후(S1706), 스 냅샷 델타 청크의 잠금을 해제한다(S1707).

만약, 단계 S1704의 검사 결과 해당 익스텐트가 변경되지 않았으면, 분산 파일 시스템(10)은 원본 청크의 잠금 [0074]

을 획득하고(S1708), 원본 청크에서 데이터를 읽어서 클라이언트(110)에 전달한 후(S1709), 원본 청크의 잠금을 해제하여(S1710), 파일 수준의 쓰기 가능 스냅샷 파일에 대한 읽기 처리 과정을 종료한다.

이와 같이 본 발명은 메타데이터 서버에서 원본 파일과 스냅샷 파일에 대한 메타데이터를 공유하면서 일관성을 [0075]

보장하여, 보다 빠른 스냅샷 생성과 관리를 지원하며, 데이터 서버에서는 원본 파일 또는 스냅샷 파일에 대한 데이터 입출력과 갱신 요청을 스냅샷의 특성에 따라 효율적으로 처리함으로써, 메타데이터 서버 또는 클라이언 트에 투명한 처리를 지원할 수 있다.

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통 [0076]

상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고 려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내 에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.

부호의 설명

10 : 분산 파일 시스템 110 : 클라이언트 [0077]

120 : 메타데이터 서버 130 : 데이터 서버

(11)

도면 도면1

도면2

(12)

도면3

도면4

도면5

(13)

도면6

(14)

도면7

(15)

도면8

(16)

도면9

(17)

도면10

(18)

도면11

도면12

도면13

(19)

도면14

(20)

도면15

(21)

도면16

(22)

도면17

참조

관련 문서

Credit expired Late shipment Late presentation 서류관련 서류에

앞서 한국의 폐기물은 크게 생활 계 폐기물과 사업장 폐기물로 분류되는 점을 언급했는데, 전체 폐기물에서 생활계 폐기 물이 차지하는 비중은 11.7%

동포입증서류 (호구부 또는 사망증명서 또는 호구말소증명서) 원본

새로운 개체와 원본 이미지 의 컬러값의 차이를 점수로 만들어 저장하고, 새로운 개체가 우수할 경우 살아 남기고, 값이 적은 것은

그런 가운데 시각장애인을 위한 점자 또한 인천 에서 태어난 송암 박두성 선생님께서 창안해 역사적인 문화유산을 보유하고 있는 곳입니다. 하지만 관계자 외 에는 그런

② 전역 변수가 선언된 소스 파일의 헤더 파일에 전역 변수에 대한 extern 선 언을 넣어준다. 전역 변수의 extern 선언은 메모리를 할당하지

• 멀티미디어 데이터에 대한 효율적인 접근과 사용이 가능하도록 하는 멀티 미디어 기술구조에 대한 국제

지난 6월 3일 신세계면세점은 업 계 최초로 계열사인 신세계인터내셔날(S.I. 재고면세품 판매는 구매자 예약 주문 후 통관절차를 거쳐 배송된다.. 장기재고