1 |
1
파일의 메타데이터 정보를 관리하되, 파일 수준에서 스냅샷 파일에 대한 메타데이터 정보를 관리하는 메타데이터 서버; 및상기 파일의 데이터를 청크 단위로 분할하여 저장 및 관리하되, 원본 파일의 청크에 대해 상기 스냅샷 파일의 델타 청크를 저장 및 관리하며, 상기 원본 파일 또는 상기 스냅샷 파일에 대한 입출력을 관리하는 다수의 데이터 서버를 포함하되, 읽기 전용 스냅샷 파일의 델타 청크는, 원본 파일의 청크와 같이 별도의 청크 식별자를 할당하지 않고, 원본 청크의 식별자와 읽기 전용 스냅샷 번호를 이용하여 식별하고, 상기 파일 수준의 읽기 전용 스냅샷 파일을 생성한 이후에 원본 파일의 청크가 갱신되면, 원본 청크 익스텐트 변경맵을 통해 갱신 데이터 정보를 익스텐트 단위로 추적하기 위한 익스텐트 단위로 스냅샷 델타 청크에 갱신되는 데이터를 저장하는 것인 분산 파일 시스템
|
2 |
2
제 1항에 있어서, 상기 스냅샷은, 시간 상에서 계속해서 생성할 수 있고 스냅샷을 생성하는 시점에서의 원본 파일의 상태를 보관하되, 스냅샷을 생성한 시점에서의 파일 데이터를 읽기만 가능하며, 원본 파일은 계속 변경되는 읽기 전용 스냅샷과, 스냅샷이 생성된 이후에 스냅샷에 대한 읽기 쓰기가 가능한 쓰기 가능 스냅샷을 포함하는 분산 파일 시스템
|
3 |
3
제 2항에 있어서, 상기 파일 수준의 읽기 전용 스냅샷 파일은 상기 메타데이터 서버에서 inode 속성 정보와 상기 데이터 서버에 분할되어 저장되어 있는 청크 레이아웃 정보를 포함하는 것인 분산 파일 시스템
|
4 |
4
삭제
|
5 |
5
삭제
|
6 |
6
원본 파일 inode의 잠금을 획득하는 단계; 스냅샷 파일 inode를 생성하고, 읽기 전용 스냅샷 번호를 부여한 다음, 스냅샷 파일의 모드를 읽기 전용으로 설정하는 단계; 원본 파일 또는 이전에 생성된 읽기 전용 스냅샷의 청크 레이아웃 정보를 새로 생성된 읽기 전용 스냅샷의 청크 레이아웃 정보에 복사하는 단계; 원본 파일의 청크를 저장하고 있는 모든 데이터 서버들에서 원본 청크 또는 이전에 생성된 스냅샷 델타 청크의 잠금을 획득하는 단계; 새로 생성된 읽기 전용 스냅샷에 대한 델타 청크를 생성하는 단계; 원본 청크 또는 이전 읽기 전용 스냅샷 델타 청크에 대한 쓰기가 있을 경우, 생성된 읽기 전용 스냅샷 델타 청크에 저장하고 원본 청크 익스텐트 변경맵을 반영하는 단계; 데이터 서버에서 원본 청크 또는 이전 읽기 전용 스냅샷 델타 청크에 대한 잠금을 해제하는 단계; 읽기 전용 스냅샷 파일의 inode에 원본 파일의 inode 정보를 저장하는 단계; 원본 파일의 inode에 새로 생성한 읽기 전용 스냅샷 파일의 inode 식별자와 스냅샷 번호를 저장하는 단계; 및 원본 파일 inode의 잠금을 해제하는 단계;를 포함하는 분산 파일 시스템 동작 방법
|
7 |
7
제 6항에 있어서, 삭제할 스냅샷 파일이 원본 파일에 대해 첫번째로 생성된 스냅샷인지를 판단하는 단계; 상기 판단 단계에서 삭제할 스냅샷 파일이 원본 파일에 대해 첫번째로 생성된 스냅샷이면, 청크를 저장하고 있는 데이터 서버에서 원본 청크의 익스텐트 변경맵을 분석하는 단계; 변경된 데이터를 저장하고 있는 스냅샷 델타 청크를 원본 청크와 병합하는 단계; 및 상기 데이터 서버에서 삭제 대상인 읽기 전용 스냅샷 델타 청크를 삭제하는 단계;를 포함하는 분산 파일 시스템 동작 방법
|
8 |
8
제 7항에 있어서, 상기 판단 단계에서 삭제할 스냅샷 파일이 원본 파일에 대해 첫번째로 생성된 스냅샷이 아니면, 청크를 저장하고 있는 데이터 서버(130)에서 원본 청크의 익스텐트 변경맵을 분석하는 단계; 삭제할 스냅샷이 생성된 이후에 변경된 데이터를 저장하고 있는 스냅샷 델타 청크와 삭제 대상 스냅샷 보다 이전에 생성된 스냅샷 이후에 변경된 데이터를 저장하고 있는 스냅샷 델타 청크를 병합하는 단계; 데이터 서버에서 삭제 대상인 읽기 전용 스냅샷 델타 청크를 삭제하는 단계; 데이터 서버에서 원본 청크의 익스텐트 변경맵의 삭제할 스냅샷 번호를 초기화하거나, 이전 스냅샷 번호로 변경 및 저장하는 단계; 스냅샷 파일의 inode에서 삭제 대상인 읽기 전용 스냅샷 inode 정보를 삭제하는 단계; 및 스냅샷 파일의 inode를 삭제하고, 파일 수준의 읽기 전용 스냅샷 파일을 삭제하는 단계;를 포함하는 분산 파일 시스템 동작 방법
|
9 |
9
제 6항에 있어서, 클라이언트에서 메타데이터 서버로부터 원본 파일의 청크 레이아웃 정보를 요청하여 받는 단계; 데이터를 쓸 위치의 청크를 저장하고 있는 데이터 서버에 데이터 쓰기를 요청하는 단계; 데이터 서버에서 원본 청크의 익스텐트 변경맵을 분석하는 단계; 청크에서 데이터를 쓸 위치의 익스텐트가 변경되었는지를 검사하는 단계; 익스텐트가 변경되었으면, 마지막 변경 데이터를 가지고 있는 읽기 전용 스냅샷 델타 청크와 현재(마지막) 읽기 전용 스냅샷 델타 청크의 잠금을 획득하는 단계; 마지막 변경 스냅샷 델타 청크에서 현재 스냅샷 델타 청크로 익스텐트 단위의 copy-on-write를 수행하는 단계; 마지막 변경 스냅샷 델타 청크와 현재 스냅샷 델타 청크의 잠금을 해제하는 단계; 익스텐트가 변경되지 않으면, 익스텐트가 변경되지 않았으면 원본 청크와 현재 스냅샷 델타 청크의 잠금을 획득하는 단계; 원본 청크에서 현재 스냅샷 델타 청크로의 copy-on-write를 수행하는 단계; 원본 청크와 현재 스냅샷 델타 청크의 잠금을 해제하는 단계; 원본 청크의 익스텐트 변경맵에서 익스텐트에 대해 마지막(현재) 읽기 전용 스냅샷 번호를 설정하는 단계; 마지막으로 변경된 위치를 추적하는 단계;를 포함하는 분산 파일 시스템 동작 방법
|
10 |
10
제 6항에 있어서, 읽기 전용 스냅샷 파일 생성한 이후에 원본 파일을 읽을 때, 클라이언트에서 메타데이터 서버로부터 원본 파일의 청크 레이아웃 정보를 요청하여 받는 단계; 클라이언트가 청크 레이아웃에서 읽을 데이터를 저장하고 있는 데이터 서버로 데이터 읽기를 요청하는 단계; 데이터 서버가 원본 청크의 익스텐트 변경맵을 분석하는 단계; 익스텐트가 스냅샷 생성 이후에 변경되었는지를 검사하는 단계; 익스텐트가 변경되었으면, 마지막으로 변경된 데이터를 저장하고 있는 스냅샷 델타 청크의 잠금을 획득하는 단계; 마지막 변경 읽기 전용 스냅샷 델타 청크에서 데이터 읽기를 수행하여 클라이언트에 전달하는 단계; 마지막 변경 스냅샷 델타 청크의 잠금을 해제하는 단계; 익스텐트가 변경되지 않았으면, 원본 청크의 잠금을 획득하는 단계; 및 원본 청크에서 데이터를 읽어서 클라이언트에 전달한 후 원본 청크의 잠금을 해제하는 단계;를 포함하는 분산 파일 시스템 동작 방법
|