KR20150081810A - 데이터 저장장치에 대한 다중 스냅샷 관리 방법 및 장치 - Google Patents

데이터 저장장치에 대한 다중 스냅샷 관리 방법 및 장치 Download PDF

Info

Publication number
KR20150081810A
KR20150081810A KR1020140001669A KR20140001669A KR20150081810A KR 20150081810 A KR20150081810 A KR 20150081810A KR 1020140001669 A KR1020140001669 A KR 1020140001669A KR 20140001669 A KR20140001669 A KR 20140001669A KR 20150081810 A KR20150081810 A KR 20150081810A
Authority
KR
South Korea
Prior art keywords
snapshot
time
data
mapping table
original
Prior art date
Application number
KR1020140001669A
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 KR1020140001669A priority Critical patent/KR20150081810A/ko
Priority to US14/591,119 priority patent/US20150193315A1/en
Publication of KR20150081810A publication Critical patent/KR20150081810A/ko

Links

Images

Classifications

    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1466Management of the backup or restore process to make the backup process non-disruptive
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Abstract

다중 스냅샷 백업 방법은, 데이터 블록에 대하여 쓰기 또는 변경 연산 발생 시, 쓰기 시 복사 수행 여부를 판단하는 단계와, 쓰기 시 복사를 수행하기로 하는 판단에 따라 데이터 블록의 원본 데이터를 스냅샷 저장소에 기록하는 단계와, 원본 데이터가 스냅샷 저장소에 기록된 시간과 물리 주소를 데이터 블록의 논리 주소에 상응하는 연결 리스트에 기록하는 단계로 구성된다. 다중 스냅샷 복원 방법은, 특정한 스냅샷 시점으로 복원하는 이벤트 발생 시, 저장 매체의 임의의 데이터 블록 중 복원할 데이터 블록을 결정하는 단계와, 데이터 블록의 논리 주소에 상응하는 연결 리스트 중 참조 대상이 되는 연결 리스트를 결정하는 단계와, 연결 리스트에 기반하여 스냅샷 저장소에 기록된 데이터로 데이터 블록의 원본 데이터를 덮어쓰기 하는 단계로 구성된다.

Description

데이터 저장장치에 대한 다중 스냅샷 관리 방법 및 장치{METHOD AND DEVICE FOR MULTIPLE SNAPSHOT MANAGEMENT OF DATA STORAGE MEDIA}
본 발명은 데이터 저장 매체에 기록되어 있는 데이터를 백업하고 복원하는 기술에 관한 것으로, 더욱 상세하게는 SSD(Solid State Drive), HDD(Hard Disk Drive), 혹은 이들을 결합한 하이브리드(hybrid) 저장장치에 있어서, 여러 개의 스냅샷(snapshot)을 효과적으로 생성하고 관리할 수 있는 기술에 관한 것이다.
백업(backup)은 임시로 보관하는 것을 일컫는 말로, IT 분야에서는 데이터 백업이라고 한다. 통상적으로 백업이라고 하면 데이터 백업을 의미한다. 백업이 필요한 이유는 주로 자료 손실의 위험에 대비하기 위함이므로, 데이터를 저장하고 있는 시스템의 사용이 빈번할 때를 회피하여 백업이 이루어지는 것이 보통이다.
전체 데이터를 백업하는 데에는 많은 시간과 자원을 필요로 하기 때문에 정기적으로 백업 스케줄에 맞춰 단계적으로 수행하는 것이 일반적이다. 이를테면, 전체 데이터의 백업은 3개월에 한번, 시스템의 사용이 빈번하지 않은 새벽 시간대에 수행하며, 증분에 대한 백업(incremental backup)은 일주일에 한번씩 수행하는 형태로 하여 시스템의 부하 및 백업 데이터의 저장용량을 분산시킨다.
또한 실시간 트랜잭션(transaction) 데이터가 중요한 시스템의 경우에는 저장장치의 데이터 블록에 대하여 쓰기 또는 변경 연산이 일어난 상황을 데이터 저장소 및 아카이브(archive) 형태의 파일에 중복하여 기록하고 일정한 파일 크기(예를 들면 10GByte)가 채워지면 다른 아카이브 파일을 생성하여 계속하여 기록하는 방법을 사용하기도 한다.
데이터 백업 장소의 측면에서는 데이터의 중요도를 감안하여 여러 곳에 분산하여 보관하는 방법을 고려할 수 있다. 지진이나 화재 등 예측할 수 없는 사고에 대비하기 위해서는 백업 데이터를 거리가 멀리 떨어진 장소에 중복하여 보관하는 방법도 고려될 수 있다.
한편, 데이터 트랜잭션의 안정성이 극도로 중요한 시스템, 즉 무정지시스템(Fault Tolerant System)의 경우에는 이러한 데이터 백업뿐만 아니라, 서비스 자체를 계속하기 위한 측면의 접근이 고려된다. 이를테면, 여러 개의 물리적인 디스크 드라이브를 합쳐 하나의 논리적인 디스크 드라이브를 생성하고 운영 체제(operation system) 상에서 논리적인 디스크 드라이브에 데이터를 저장하는 방법이다. 이 방법의 장점은 물리적인 디스크 드라이브가 일부 손실되더라도 나머지 정상 작동하는 물리적인 디스크 드라이브로서 논리적인 디스크 드라이브는 정상 동작할 수 있게끔 할 수 있다는 것이다.
여기에서 사용되는 기술은 raid(redundant array of inexpensive disk) 시스템, 데이터 미러링(data mirroring) 등이 있다. 더 나아가, 이러한 논리적이 디스크 드라이브들은 같은 서버 스토리지 내, 심지어는 같은 장소에 있을 필요가 없다. 즉, 서로 다른 종류의 데이터 저장장치를 한 데이터 서버에 연결하여, 총괄적으로 관리해주는 네트워크인 NAS(Network Attached Storage)나 SAN(Storage Area Network)이 등장하게 되었다.
백업 대상은 파일, 폴더 단위로, 아니면 디스크나 파티션 단위로 정할 수 있다. 백업 대상은 복원하고자 하는 데이터의 복원 시나리오에 따라 정해진다. 데이터 컨텐츠에 해당하는 파일 및 폴더만을 백업하는 방법, 운영 체제와 응용 소프트웨어만을 백업하는 방법, 기본 설정값만을 보존해 두는 방법 등이 그것이다. 백업 매체로는 플로피 디스크, 자기 테이프, 광 디스크, 플래시 메모리, 광학 자기 디스크, 하드 디스크 등이 활용될 수 있다.
한편, 데이터 백업은 데이터 손실을 대비하기 위함이 아니라 원하는 복원 시점의 데이터로 되돌리고 싶은 경우에도 활용될 수 있다. 이를 위해 데이터 저장 매체의 특정한 시점에서의 파일과 디렉터리 구조를 기억한 이른바 타임 스탬프를 찍는 아이디어가 제안되었다. 이를 스냅샷이라고 지칭하며, 일반적인 사전적 의미로 쓰일 때와는 구별되어야 한다. 즉, 스냅샷은 과거의 한 때 존재하고 유지시킨 컴퓨터 파일과 디렉터리의 모임을 의미한다.
일반적으로 다른 종류(SSD, HDD 등)의 스토리지를 결합하여 사용하는 하이브리드 저장 시스템은 가상 파일 시스템(virtual file system)으로부터의 I/O 요청에 포함된 논리 주소를 물리적 저장 장치에서 실제 블록 위치로 매핑해 주는 매핑 테이블을 가지고 있다. 매핑 테이블은 하이브리드 스토리지 시스템을 구성하는 두 개 이상의 저장 장치를 통합한다. 매핑 테이블은 새로운 블록이 할당되거나 블록의 이동이 발생할 때 변경된다.
하이브리드 저장시스템에서 스냅샷의 생성은 다음과 같은 절차를 거쳐서 진행된다. 먼저 가상의 스냅샷 저장장치를 생성하고, 원래의 저장장치에 새로운 입출력 연산을 지연시킨다. 동시에 현재 수행되고 있는 입출력 연산이 종료될 때까지 기다린다. 모든 입출력 연산이 종료되면 원래 저장 장치의 매핑 테이블을 스냅샷 저장장치로 복사한다. 매핑 테이블을 복사하고 나면 스냅샷 생성 절차가 종료되고 정상적으로 입출력 연산을 허용한다.
스냅샷이 생성된 후 원래 저장장치에 쓰기 연산이 발생하게 되면 변경될 데이터가 포함된 블록을 스냅샷에 할당된 저장 공간에 복사해서 보관한 후 스냅샷 매핑 테이블의 해당 블록을 지정하도록 한 후 원래 저장장치에 쓰기를 수행한다. 원래 저장장치의 매핑 테이블과 스냅샷 매핑 테이블이 변경되면 이를 반드시 디스크에 기록해야 저장 장치의 일관성이 유지된다.
대용량의 저장 시스템은 매핑 테이블 및 저장공간을 효율적으로 관리하기 위해서 물리적으로 연속된 블록들의 집합인 익스텐트(extent) 개념을 사용한다. 하이브리드 저장장치의 크기가 1[TByte] 이고 매핑 테이블의 한 엔트리의 크기를 22Byte, 익스텐트의 크기를 32KByte라고 한다면 매핑 테이블을 위해서 할당해야 하는 저장공간은 (1T/32K)*22 = 700MByte 가량이 소요된다. 따라서 스냅샷이 100개 정도 생성이 된다면 70GByte 정도의 공간이 스냅샷의 매핑 테이블을 위해서 할당되어야 한다. 이외에도, 각 스냅샷은 쓰기 시 복사되는 익스텐트를 저장하기 위한 별도의 공간을 필요로 한다.
위와 같은 저장공간에 대한 부담 외에도 쓰기 시 복사될 때 매핑 테이블이 변경되면 추가적인 쓰기 연산이 수행되어야 한다. 즉, 스냅샷이 100개 생성된 후 원래 저장 장치에 쓰기 연산이 발생한다면, COW로 인한 입출력 연산과 각 스냅샷의 매핑 테이블이 변경되면서 발생하는 100번의 쓰기 연산이 발생하게 된다. 이는 저장장치의 성능을 떨어뜨리는 중요한 요인이다.
상기와 같은 문제점을 해결하기 위한 본 발명의 목적은, 데이터 블록의 논리 주소와 물리 주소를 매핑하여 관리하는 매핑 테이블 기반의 저장장치에서, 다중 스냅샷을 유지하기 위한 하나의 스냅샷 매핑 테이블(SMT, Snapshot Mapping Table)을 생성하고 타임스탬프를 이용해서 각 스냅샷 생성 시간과 각 블록에 대한 쓰기 시 복사 수행 시간을 기록하여 효과적으로 스냅샷 생성 시점의 이미지를 유지할 수 있도록 하는 데에 있다.
또한, 다중 스냅샷을 유지하고 있는 상황에서 데이터 입력 연산이 있을 때, 단 한번의 쓰기 시 복사를 수행할 수 있도록 하여 스냅샷을 유지하는데 소요되는 저장공간 및 입출력 연산 시간을 최소화할 수 있다는 기술적 특징과 장점을 갖는다.
상기 목적을 달성하기 위한 본 발명의 실시예에 따른 다중 스냅샷 백업 방법은, 저장매체에 대한 스냅샷(snapshot) 이미지(image)를 관리하는 장치가 수행하는 방법에 있어서, 저장 매체의 데이터 블록에 대하여 쓰기(write) 또는 변경(update) 연산 발생 시, 쓰기 시 복사(COW, Copy On Write) 수행 여부를 판단하는 카우 여부 판단 단계와, 쓰기 시 복사를 수행하기로 하는 판단에 따라 데이터 블록의 원본 데이터를 스냅샷 저장소에 기록하는 원본 백업 단계와, 원본 데이터가 스냅샷 저장소에 기록된 시간과 물리 주소(PA, Physical Address)를 데이터 블록의 논리 주소(LA, Logical Address)에 상응하는 연결 리스트에 기록하는 스냅샷 매핑 정보 기록 단계를 포함하여 구성될 수 있다.
여기에서, 상기 카우 여부 판단 단계는, 데이터 블록의 논리 주소에 상응하는 원본 매핑 테이블의 최근 업데이트된 시간, 쓰기 또는 변경 연산이 발생된 시간, 스냅샷 리스트의 최근 촬영 시작 시간 각각의 선후(先後) 관계 조건을 충족하는지 여부에 대한 판단하는 것일 수 있다.
나아가, 선후 관계 조건은, 원본 매핑 테이블의 최근 업데이트된 시간이, 쓰기 또는 변경 연산이 발생된 시간과 스냅샷 리스트의 최근 촬영 시작 시간보다 빠른 경우, 쓰기 시 복사를 수행하기로 판단하고, 원본 매핑 테이블의 최근 업데이트된 시간이, 쓰기 또는 변경 연산이 발생된 시간 또는 스냅샷 리스트의 최근 촬영 시작 시간보다 늦은 경우, 쓰기 시 복사를 수행하지 않기로 판단일 수 있다.
더 나아가, 상기 다중 스냅샷 백업 방법은, 쓰기 시 복사를 수행하지 않기로 하는 판단에 따라, 카우 여부 판단 단계 이후에, 데이터 블록의 원본 데이터를 변경할 데이터로 덮어쓰기(overwrite)하고, 원본 매핑 테이블에 덮어쓰기한 시간을 기록하는 단계를 더 포함하여 구성될 수 있다.
여기에서, 상기 연결 리스트는, 스냅샷 매핑 테이블에 포함되어 적어도 하나의 쓰기 시 복사 정보를 기록할 수 있도록 확장될 수 있다.
나아가, 상기 스냅샷 매핑 테이블은, 논리 주소를 기록한 필드(field)와, 논리 주소에 상응하는 연결 리스트로 구성되고, 연결 리스트는 논리 주소에 상응하는 물리 주소를 기록한 필드 및 연결 리스트가 작성된 시간을 기록한 필드로 구성될 수 있다.
여기에서, 상기 다중 스냅샷 백업 방법은, 스냅샷 매핑 정보 기록 단계 이후에, 데이터 블록의 원본 데이터를 변경할 데이터로 덮어쓰기하고, 원본 매핑 테이블에 덮어쓰기한 시간을 기록하는 단계를 더 포함하여 구성될 수 있다.
상기 목적을 달성하기 위한 본 발명의 다른 실시예에 따른 다중 스냅샷 복원 방법은, 데이터 복원을 위하여 저장매체에 대한 스냅샷 이미지를 관리하는 장치가 수행하는 방법에 있어서, 저장 매체의 특정한 스냅샷 시점으로 복원하는 이벤트 발생 시, 저장 매체의 임의의 데이터 블록 중 복원할 데이터 블록을 결정하는 데이터 블록 결정 단계와, 결정된 데이터 블록의 논리 주소에 상응하는 적어도 하나의 연결 리스트 중 데이터 복원의 참조 대상이 되는 연결 리스트를 결정하는 연결 리스트 결정 단계와, 결정된 참조 대상이 되는 연결 리스트에 기반하여 스냅샷 저장소에 기록된 데이터로 결정된 데이터 블록의 원본 데이터를 덮어쓰기 하는 데이터 복원 단계를 포함하여 구성될 수 있다.
여기에서, 상기 복원할 데이터 블록은, 임의의 데이터 블록의 업데이트 시간이 특정한 스냅샷 시점 이후인 것일 수 있다.
여기에서, 상기 결정된 연결 리스트는, 적어도 하나의 연결 리스트의 업데이트 시간이 스냅샷 시점보다는 이후인 연결 리스트 중 시간적으로 가장 앞선 것일 수 있다.
상기 목적을 달성하기 위한 본 발명의 또다른 실시예에 따른 다중 스냅샷 관리 장치는, 저장매체에 대한 스냅샷 이미지를 관리하는 장치에 있어서, 저장 매체의 데이터 블록에 대하여 쓰기 또는 변경 연산 발생 시, 쓰기 시 복사 수행 여부를 판단하는 카우 여부 판단부와, 쓰기 시 복사를 수행하기로 하는 판단에 따라 데이터 블록의 원본 데이터를 스냅샷 저장부에 기록하는 데이터 입출력 관리부와, 원본 데이터가 스냅샷 저장부에 기록된 시간과 물리 주소를 데이터 블록의 논리 주소에 상응하는 연결 리스트에 기록하는 스냅샷 매핑 정보 관리부를 포함하여 구성될 수 있다.
여기에서, 상기 카우 여부 판단부는, 데이터 블록의 논리 주소에 상응하는 원본 매핑 테이블의 최근 업데이트된 시간, 쓰기 또는 변경 연산이 발생된 시간, 스냅샷 리스트의 최근 촬영 시작 시간 각각의 선후(先後) 관계 조건을 충족하는지 여부를 판단할 수 있다.
나아가, 상기 선후 관계 조건은, 원본 매핑 테이블의 최근 업데이트된 시간이, 쓰기 또는 변경 연산이 발생된 시간과 스냅샷 리스트의 최근 촬영 시작 시간보다 빠른 경우, 쓰기 시 복사를 수행하기로 판단하고, 원본 매핑 테이블의 최근 업데이트된 시간이, 쓰기 또는 변경 연산이 발생된 시간 또는 스냅샷 리스트의 최근 촬영 시작 시간보다 늦은 경우, 쓰기 시 복사를 수행하지 않기로 하는 판단일 수 있다.
여기에서, 상기 원본 데이터를 변경할 데이터로 덮어쓰기하도록, 데이터 입출력 관리부에 변경할 데이터를 전송하고, 원본 매핑 테이블에 덮어쓰기한 시간을 기록하는 원본 매핑 정보 관리부를 더 포함하여 구성될 수 있다.
여기에서, 상기 연결 리스트는, 스냅샷 매핑 테이블에 포함되어 적어도 하나의 쓰기 시 복사 정보를 기록할 수 있도록 확장될 수 있다.
나아가, 상기 스냅샷 매핑 테이블은, 논리 주소를 기록한 필드와, 논리 주소에 상응하는 연결 리스트로 구성되고, 연결 리스트는 논리 주소에 상응하는 물리 주소를 기록한 필드 및 연결 리스트가 작성된 시간을 기록한 필드로 구성될 수 있다.
여기에서, 상기 다중 스냅샷 관리 장치는, 저장 매체의 특정한 스냅샷 시점으로 복원하는 이벤트 발생에 기반하여, 저장 매체의 복원할 데이터 블록을 결정하는 복원 블록 결정부를 더 포함하고, 복원 블록 결정부는, 결정된 복원할 데이터 블록의 논리 주소에 상응하는 적어도 하나의 연결 리스트 중 참조 대상이 되는 연결 리스트를 결정할 수 있다.
나아가, 상기 데이터 입출력 관리부는, 결정된 연결 리스트에 기반하여 스냅샷 저장부에 기록된 데이터로 결정된 데이터 블록의 원본 데이터를 덮어쓰기 할 수 있다.
더 나아가, 상기 복원할 데이터 블록은, 데이터 블록의 업데이트 시간이 특정한 스냅샷 시점 이후인 것일 수 있다.
나아가, 상기 결정된 연결 리스트는, 적어도 하나의 연결 리스트의 업데이트 시간이 스냅샷 시점보다는 이후인 연결 리스트 중 시간적으로 가장 앞선 것일 수 있다.
상기와 같은 본 발명에 따른 다중 스냅샷 관리 방법과 장치를 사용하면, 매핑 테이블 기반의 저장 매체에서 다중 스냅샷을 생성할 때 단일의 스냅샷 매핑 테이블과 타임 스탬프 기반의 버전 관리를 통해서 스냅샷 공간 및 저장 장치에 대한 입출력 연산에 대한 부담을 최소화할 수 있다는 장점이 있다.
이는 하나의 저장장치에 다중 스냅샷을 생성하여, 일반적으로 각 스냅샷 별로 별도의 저장 공간을 필요로 하게 됨으로 인한 저장 공간에 대한 부담과 스냅샷을 유지하기 위해 저장 장치에 대한 쓰기가 느려지는 문제를 극복한 것이다. 특히, OLTP(On-Line Transaction Processing)와 같이 변경 연산이 상대적으로 빈번한 상황에서 저장 장치에 대한 스냅샷을 생성하여 유지하는 경우에 있어서는 본 발명의 장점이 더욱 부각될 수 있다.
도 1은 본 발명의 일 실시예에 따른 다중 스냅샷 백업 방법에서 저장 매체의 초기 상태를 설명하기 위한 예시도이다.
도 2는 본 발명의 일 실시예에 따른 스냅샷 매핑 테이블의 구조를 설명하기 위한 개념도이다.
도 3 내지 도 14는 본 발명의 일 실시예에 따른 다중 스냅샷 백업 방법을 사용하여 백업이 이루어지는 과정의 예를 단계적으로 설명하기 위한 예시도이다.
도 15는 본 발명의 일 실시예에 따른 다중 스냅샷 관리 장치를 설명하기 위한 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
먼저, 본 출원에서 사용되는 용어를 정의하면 다음과 같다.
데이터 저장 매체의 특정한 시점에서의 파일과 디렉터리 구조를 기억하기 위해 타임 스탬프를 찍을 수 있다. 이는 마치 움직이는 사물의 동영상에 대하여 순간적인 정지 영상을 얻는 스틸 컷(still cut)과 비슷하므로 스냅샷이라고 지칭되고 있다. 본 출원에어 사용하는 용어로서 스냅샷 이미지는 일반적인 사전적 의미가 아니라 위에서 말한 타임 스탬프 시점에 상응하는 데이터 상태 정보로 이해되어야 한다. 즉, 스냅샷은 과거의 한 때 존재하고 유지시킨 컴퓨터 파일과 디렉터리의 모임을 의미할 수 있다.
데이터 블록이란, 데이터 전송에 있어서의 단위를 의미한다. 즉, 한 덩어리의 데이터를 데이터 블록이라 한다. 블록의 길이는 고정인 것과 가변인 것이 있을 수 있다.
쓰기 시 복사(COW, Copy On Write)는 스냅샷이 생성된 이후에 저장 장치에 쓰기가 발생하면 해당 블록의 변경 전 이미지를 예약된 저장 공간에 복사한 후 쓰기를 수행하는 것을 뜻한다. 그리고, 예약 공간에 기록된 원본 블록에 대해 포인터를 유지하여 스냅샷 생성 당시의 복사본 이미지를 유지한다.
기억 장치에 데이터가 기록될 경우, 물리 주소(기억 장치에 데이터가 기록되어 있는 실제 주소)와 구분하여 사용자(개발자) 관점에서 본 논리적인 데이터의 주소를 논리 주소라 한다. 사용자 측면에서는 기억 장치가 하나의 연속적인 공간이라고 생각하지만, 사실 데이터는 실제 기억 장소에 흩어져 있고, 그 실제 기억 장치는 다른 영역의 데이터도 포함한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일 실시예에 따른 다중 스냅샷 백업 방법에서 저장 매체의 초기 상태를 설명하기 위한 예시도이고, 도 2는 스냅샷 매핑 테이블(141)의 구조를 설명하기 위한 개념도이다.
도 1 내지 도 2를 참조하면, 일반적인 스냅샷 처리 방법의 저장공간 부담 및 추가 입출력 연산으로 인한 성능 저하 문제를 해결하기 위해서 스냅샷 매핑 테이블(141)의 공유 방법을 제안한다.
매핑 테이블 기반의 저장 장치(SSD와 HDD를 결합한 하이브리드 저장장치가 대표적인 예이다)에서 데이터가 실제로 기록되는 물리 주소와 사용자 관점에서의 논리 주소를 매핑하여 주는 원본 매핑 테이블(181)(이하 하이브리드 저장장치의 예를 들어 하이브리드 매핑 테이블, HMT, Hybrid Mapping Table이라 표현할 수 있다)은 데이터 블록의 논리 주소(LA, Logical Address)와 저장 장치(200)의 물리 주소(PA, Physical Address) 및 업데이트된 시간을 각각 표현하는 필드(field)로 구성된다. 데이터 블록은 익스텐트(extent) 단위로 확장될 수 있다.
그리고 원본 저장부(210)(HD, Hybrid Device라 표현할 수 있다)는 원본 매핑 테이블(181)에서 표현되는 각각의 익스텐트에 대한 실제 데이터를 담고 있다. 또한, 해시(hash) 테이블 기반의 스냅샷 매핑 테이블(141)(SMT, Snapshot Mapping Table)은 시스템 운용 중 익스텐트에 쓰기 시 복사(COW, Copy on Write)가 발생했을 때 어떤 익스텐트에 대한 백업본인지에 대한 논리 주소와 그 백업본이 스냅샷 저장장치(SD, Snapshot Device)에 저장되어 있는 물리 주소, 그리고 언제 쓰기 시 복사가 발생했는지를 나타내는 업데이트된 시간 정보로 구성된다. 만일 동일한 익스텐트에 중복 쓰기 시 복사가 일어났을 때 연결 리스트(145)(CL, Connect List)를 이용하여 해당 쓰기 시 복사 발생 시간과 스냅샷 저장장치에 저장되어 있는 백업 데이터의 물리 주소를 표현한다. 마지막으로 스냅샷 리스트(151)(SL, Snapshot List)는 사용자에 의해 요구된 스냅샷 차수 번호와 촬영 시작 시간 정보로 구성된다.
도 3 내지 도 14는 본 발명의 일 실시예에 따른 다중 스냅샷 백업 방법을 사용하여 백업이 이루어지는 과정의 예를 단계적으로 설명하기 위한 예시도이다.
도 3 내지 도 14를 참조하면, 다중 스냅샷 백업 방법은, 데이터 백업을 위하여 저장매체에 대한 스냅샷(snapshot) 이미지(image)를 관리하는 장치가 수행하는 방법에 있어서, 저장 매체의 데이터 블록에 대하여 쓰기(write) 또는 변경(update) 연산 발생 시, 쓰기 시 복사(COW, Copy On Write) 수행 여부를 판단하는 카우 여부 판단 단계와, 쓰기 시 복사를 수행하기로 하는 판단에 따라 데이터 블록의 원본 데이터를 스냅샷 저장소에 기록하는 원본 백업 단계와, 원본 데이터가 스냅샷 저장소에 기록된 시간과 물리 주소(PA, Physical Address)를 데이터 블록의 논리 주소(LA, Logical Address)에 상응하는 연결 리스트(145)(CL, Connection List)에 기록하는 스냅샷 매핑 정보 기록 단계를 포함하여 구성될 수 있다.
카우 여부 판단 단계는, 데이터 블록의 논리 주소에 상응하는 원본 매핑 테이블(181)의 최근 업데이트된 시간, 쓰기 또는 변경 연산이 발생된 시간, 스냅샷 리스트(151)의 최근 촬영 시작 시간 각각의 선후(先後) 관계 조건을 충족하는지 여부에 대한 판단일 수 있다. 또한 선후 관계 조건은, 원본 매핑 테이블(181)의 최근 업데이트된 시간이, 쓰기 또는 변경 연산이 발생된 시간과 스냅샷 리스트(151)의 최근 촬영 시작 시간보다 빠른 경우에는 쓰기 시 복사를 수행하기로 판단하고, 쓰기 또는 변경 연산이 발생된 시간 또는 스냅샷 리스트(151)의 최근 촬영 시작 시간보다 늦은 경우에는 쓰기 시 복사를 수행하지 않기로 판단하는 것일 수 있다.
다중 스냅샷 백업 방법은, 쓰기 시 복사를 수행하지 않기로 하는 판단에 따라, 카우 여부 판단 단계 이후에, 데이터 블록의 원본 데이터를 변경할 데이터로 덮어쓰기(overwrite)하고, 원본 매핑 테이블(181)에 상기 덮어쓰기한 시간을 기록하는 단계를 더 포함하여 구성될 수 있다.
연결 리스트(145)는, 스냅샷 매핑 테이블(141)에 포함되어 적어도 하나의 쓰기 시 복사 정보를 기록할 수 있도록 확장될 수 있다. 나아가 스냅샷 매핑 테이블(141)은, 논리 주소를 기록한 필드(field)와, 논리 주소에 상응하는 연결 리스트(145)로 구성되고, 연결 리스트(145)는 논리 주소에 상응하는 물리 주소를 기록한 필드 및 연결 리스트(145)가 작성된 시간을 기록한 필드로 구성될 수 있다.
다중 스냅샷 백업 방법은, 스냅샷 매핑 정보 기록 단계 이후에, 데이터 블록의 원본 데이터를 변경할 데이터로 덮어쓰기하고, 원본 매핑 테이블(181)에 덮어쓰기한 시간을 기록하는 단계를 더 포함하여 구성될 수 있다.
다중 스냅샷 관리 장치(100)를 구동하면 사용자가 지정한 시간에 스냅샷 리스트(151)가 생성되며 스냅샷 차수 번호와 촬영 시작 시간이 기록된다. 도 3, 도 6, 도 9 및 도 12는 각각 스냅샷 리스트(151)가 생성되는 예를 보여주는 그림이다. 스냅샷 리스트(151)에는 T5, T10, T15, T20의 시간에 각각 첫번째, 두번째, 세번째 및 네번째 스냅샷이 촬영됨을 나타내고 있다. 이후 스냅샷을 다시 찍으면 새로이 생성되는 스냅샷의 번호는 각각 그 다음 번호가 되고 촬영 시작 시간이 스냅샷 리스트(151)에 기록된다. 즉, 다중 스냅샷 백업 방법은, 스냅샷 이벤트의 발생에 상응하여 스냅샷 차수(次數) 및 촬영 시작 시간을 기록하는 스냅샷 리스트(151) 작성 단계를 더 포함하여 구성될 수 있다. 촬영 시작 시간은 시스템의 절대 시간 값으로 표현될 수 있으며 이 때 촬영 시작 시간은 이전 촬영 시작 시간과 사용자 지정 스냅샷 촬영 타임 슬라이스 값을 더한 값으로 치환될 수 있다.
쓰기 시 복사의 발생은 익스텐트에 Update 또는 Write 작업이 발생하는 모든 경우에 스냅샷 저장부(220)와 스냅샷 매핑 테이블(141)을 갱신하면 저장 용량의 오버헤드가 매우 심해지므로 원본 저장부(210)의 각 익스텐트들의 업데이트된 시간(즉, 데이터 블록의 논리 주소에 상응하는 원본 매핑 테이블(181)의 최근 업데이트된 시간)이 새로이 Write되는 업데이트 시간(즉, 쓰기 또는 변경 연산이 발생된 시간)과 스냅샷 리스트(151)의 가장 최신의 스냅샷 생성시간(즉, 스냅샷 리스트의 최근 촬영 시작 시간)보다 이전 시간인 경우에만 쓰기 시 복사를 수행하는 것으로 판단하여 스냅샷 저장부(220)와 스냅샷 매핑 테이블(141)에 기록(백업)한다.
도 4, 도 5, 도 7, 도 8, 도 10, 도 11 및 도 13이 위 쓰기 시 복사를 수행하여 스냅샷 저장부(220)와 스냅샷 매핑 테이블(141)에 기록하는 예이다. 상기 도면에서 스냅샷 매핑 테이블(141)과 스냅샷 저장부(220)를 참조하여 보면, 쓰기 시 복사 발생시 스냅샷 저장부(220)에 백업 데이터가 저장되는 모습을 알 수 있다. 원본 저장부(210)에서 쓰기 시 복사가 발생할 때 원본 저장부(210)의 데이터는 스냅샷 저장부(220)의 할당된 물리 주소로 복사되고 그 내용과 시간을 해시 테이블(Hash Table) 기반의 스냅샷 매핑 테이블(141)에 기록한 후 Update 또는 Write되는 새로운 데이터는 원본 저장부(210)의 물리 주소에 저장된다. 같은 데이터 블록에 중복해서 쓰기 시 복사가 발생하는 경우를 위하여 스냅샷 매핑 테이블(141)은 계속하여 확장될 수 있는 연결 리스트(145) 구조로 이루어질 수 있으며, 이를 통하여 그 내용을 기록하고 스냅샷 저장부(220)에 데이터를 백업하는 과정은 똑같다.
예를 들어, 도 4, 도 7 및 도 10에서 원본 매핑 테이블(181)의 논리 주소 4는 새로운 Write 요구가 3번 발생한 경우로 첫번째 Write 요구가 발생한 도 4의 경우, 스냅샷 매핑 테이블(141)에 그 내용을 기록하고 스냅샷 매핑 테이블(141)에서 할당된 물리 주소의 스냅샷 저장부(220)에 기존의 원본 저장부(210)의 물리 주소에 저장된 데이터인 E를 복사한 후 새로운 Write 요구 데이터인 E'가 저장된다. 두번째 Write 요구가 발생한 도 7의 경우, 스냅샷 리스트(151)를 참조하여 최근의 스냅샷 촬영 시작 시간보다 원본 매핑 테이블(181)의 최근 업데이트된 시간이 이후인 경우에는 백업할 필요가 없으므로 원본 저장소에 바로 쓰기를 실행하고, 최근의 스냅샷 촬영 시작 시간(T10)보다 원본 매핑 테이블(181)의 최근 업데이트된 시간(T6)이 앞서는 경우에만 스냅샷 매핑 테이블(141)의 논리 주소를 찾아 연결 리스트(145)를 생성하고 새로운 물리 주소를 할당하여 스냅샷 저장부(220)에 원본 저장부(210)의 저장 데이터 E'를 복사한 후 새로운 Write 요구 변경 데이터인 E''가 원본 저장부(210)에 저장된다. 세번째의 Write 요구에 대한 동작 절차도 동일하다.
또한 스냅샷 매핑 테이블(141)의 논리 주소가 3인 익스텐트의 업데이트 시간은 T7로 쓰기 시 복사가 그 시간에 일어났음을 알 수 있고 물리 주소를 통해서 스냅샷 저장부(220)의 물리주소 S1에 D라는 데이터 백업 본이 저장되었음을 알 수 있다.
한편, 도 14는 쓰기 시 복사를 수행하지 않고 원본 저장부(210)에 바로 저장하는 예를 보여 준다. 스냅샷 리스트(151)가 최근 촬영된 시작 시간은 T20이고, 논리 주소 2에서 C'로부터 C''로 변경 연산이 발생된 시간은 T22이다. 현재 원본 매핑 테이블(181)의 최근 업데이트된 시간은 T21로(도 13 참조) 스냅샷 리스트(151)가 최근 촬영된 시작 시간보다 이후임을 알 수 있다. 이러한 경우는 C'를 백업할 필요가 없으므로, 원본 저장부(210)의 데이터를 그대로 덮어쓰기 하면 된다.
다중 스냅샷 환경에서 데이터를 복원하는 과정은 백업 과정에서 수행한 쓰기 시 복사 정보를 참조하여 이루어질 수 있다. 즉, 앞서 참조한 도 3 내지 도 14를 참조하여 데이터 복원 과정을 설명하면 다음과 같다.
다중 스냅샷 복원 방법은, 데이터 복원을 위하여 저장매체에 대한 스냅샷 이미지를 관리하는 장치가 수행하는 방법에 있어서, 저장 매체의 특정한 스냅샷 시점으로 복원하는 이벤트 발생 시, 저장 매체의 임의의 데이터 블록 중 복원할 데이터 블록을 결정하는 데이터 블록 결정 단계와, 결정된 데이터 블록의 논리 주소에 상응하는 적어도 하나의 연결 리스트(145) 중 데이터 복원의 참조 대상이 되는 연결 리스트(145)를 결정하는 연결 리스트(145) 결정 단계와, 결정된 참조 대상이 되는 연결 리스트(145)에 기반하여 스냅샷 저장소에 기록된 데이터로 결정된 데이터 블록의 원본 데이터를 덮어쓰기 하는 데이터 복원 단계를 포함하여 구성될 수 있다.
복원할 데이터 블록은, 임의의 데이터 블록의 업데이트 시간이 특정한 스냅샷 시점 이후인 것일 수 있다. 결정된 연결 리스트(145)는, 적어도 하나의 연결 리스트(145)의 업데이트 시간이 스냅샷 시점보다는 이후인 연결 리스트(145) 중 시간적으로 가장 앞선 것일 수 있다.
스냅샷 생성 시간과 저장 데이터 기반의 복원은, 스냅샷을 특정 시점으로 복원하는 경우에, 복원 시점과 원본 매핑 테이블(181)의 각 익스텐트의 업데이트 시간을 비교하여 복원 시점보다 이전의 업데이트 시간을 가진 블록은 스냅샷 복원 시점부터 현재까지 해당 익스텐트에 쓰기 시 복사가 일어나지 않은 블록이기 때문에 이러한 블록은 원본 매핑 테이블(181)에서 수정 없이 그대로 가지고 있으면 된다. 반면 원본 매핑 테이블(181)의 각 익스텐트의 업데이트 시간이 스냅샷 복원 시점 이후라면 쓰기 시 복사가 일어났다는 의미이므로 스냅샷 매핑 테이블을 참조하여 스냅샷 저장부(220)에서 해당 백업 데이터를 원본 저장부(210)에 각각의 익스텐트들을 복원 시켜야 한다.
탐색한 익스텐트가 중복 쓰기 시 복사가 일어난 경우라면, 연결 리스트(145) 중 업데이트 시간이 스냅샷 복원 시점보다는 큰 익스텐트를 선별하여 그 중 업데이트 시간이 가장 앞선 익스텐트를 채택하여 시점 복원을 실시한다.
예를 들어, 데이터 저장 매체가 T10인 시점으로 복원하는 경우에, 스냅샷 리스트(151)의 2번 시점으로 복구하게 된다. 원본 매핑 테이블(181)의 익스텐트 엔트리중 논리 주소가 0, 3인 익스텐트는 업데이트 시간(T0, T7)이 복구 시점(T10)보다 이전이므로 복구 시점에서 현재 시점까지 쓰기 시 복사가 일어나지 않은 블록이다. 따라서 시점 복구시 논리 주소가 0, 3인 익스텐트의 데이터는 복구 작업이 필요 없다. 반면에 논리 주소가 1, 2, 4인 익스텐트는 업데이트 시간(T18, T22, T16)이 복구 시점(T10) 이후이므로 복구 시점에서 현재 시점까지 쓰기 시 복사가 적어도 한 번이라도 발생한 블록들이라고 할 수 있다.
논리 주소가 1인 익스텐트는 스냅샷 매핑 테이블(141)에서 보는 바와 같이 T12와 T18, 두 번 중복해서 쓰기 시 복사가 일어났다. 두 번의 쓰기 시 복사는 복구 시점인 T10보다 이후에 일어났으므로, 그 중 더 과거에 일어난 T12에 해당하는 엔트리의 물리 주소 S3의 데이터가 복구된다.
논리 주소가 2인 익스텐트의 경우에는 스냅샷 매핑 테이블(141)에서 해당 익스텐트를 조회하여 스냅샷 저장부(220)의 복원 데이터 물리 주소를 알아내어 복원한다. T21 시점에 물리 주소 S6에 저장된 C가 복원됨을 알 수 있다. 이 때 원본 저장부(210)의 물리 주소 H2에는 C''가 저장되어 있는 상태이고, T21 시점에는 C'에서 C''로 데이터 변경이 이루어졌었지만 복원 시점이 T10이므로 이는 고려되지 않아도 된다.
논리 주소가 4인 익스텐트의 경우에는, T6, T11, T16 시점에 3번의 쓰기 시 복사가 발생하였으나 T6은 T10 이전에 발생할 쓰기 시 복사이므로 고려할 필요가 없고, T11, T16 중 보다 앞선 시간에 일어난 논리 주소 4 익스텐트의 T11 엔트리의 물리 주소 S2의 데이터인 E'가 복구된다.
도 15는 본 발명의 일 실시예에 따른 다중 스냅샷 관리 장치(100)를 설명하기 위한 블록도이다.
도 15를 참조하면, 다중 스냅샷 관리 장치(100)는, 데이터 백업 및 복원을 위하여 저장매체에 대한 스냅샷 이미지를 관리하는 장치에 있어서, 저장 매체의 데이터 블록에 대하여 쓰기 또는 변경 연산 발생 시, 쓰기 시 복사 수행 여부를 판단하는 카우 여부 판단부(160)와, 쓰기 시 복사를 수행하기로 하는 판단에 따라 데이터 블록의 원본 데이터를 스냅샷 저장부(220)에 기록하는 데이터 입출력 관리부(120)와, 원본 데이터가 스냅샷 저장부(220)에 기록된 시간과 물리 주소를 데이터 블록의 논리 주소에 상응하는 연결 리스트(145)에 기록하는 스냅샷 매핑 정보 관리부(130)를 포함하여 구성될 수 있다.
카우 여부 판단부(160)는, 데이터 블록의 논리 주소에 상응하는 원본 매핑 테이블(181)의 최근 업데이트된 시간, 쓰기 또는 변경 연산이 발생된 시간, 스냅샷 리스트(151)의 최근 촬영 시작 시간 각각의 선후(先後) 관계 조건을 충족하는지 여부를 판단할 있고, 선후 관계 조건은, 원본 매핑 테이블(181)의 최근 업데이트된 시간이, 쓰기 또는 변경 연산이 발생된 시간과 스냅샷 리스트(151)의 최근 촬영 시작 시간보다 빠른 경우, 쓰기 시 복사를 수행하기로 판단하고, 쓰기 또는 변경 연산이 발생된 시간 또는 스냅샷 리스트(151)의 최근 촬영 시작 시간보다 늦은 경우, 쓰기 시 복사를 수행하지 않기로 판단하는 것일 수 있다.
다중 스냅샷 관리 장치(100)는, 원본 데이터를 변경할 데이터로 덮어쓰기하도록, 데이터 입출력 관리부(120)에 변경할 데이터를 전송하고, 원본 매핑 테이블(181)에 덮어쓰기한 시간을 기록하는 원본 매핑 정보 관리부(110)를 더 포함하여 구성될 수 있다.
연결 리스트(145)는, 스냅샷 매핑 테이블(141)에 포함되어 적어도 하나의 쓰기 시 복사 정보를 기록할 수 있도록 확장될 수 있다. 또한 스냅샷 매핑 테이블(141)은, 논리 주소를 기록한 필드와, 논리 주소에 상응하는 연결 리스트(145)로 구성되고, 연결 리스트(145)는 논리 주소에 상응하는 물리 주소를 기록한 필드 및 연결 리스트(145)가 작성된 시간을 기록한 필드로 구성될 수 있다.
다중 스냅샷 관리 장치(100)는, 저장 매체의 특정한 스냅샷 시점으로 복원하는 이벤트 발생에 기반하여, 저장 매체의 복원할 데이터 블록을 결정하는 복원 블록 결정부(170)를 더 포함하고, 복원 블록 결정부(170)는, 결정된 복원할 데이터 블록의 논리 주소에 상응하는 적어도 하나의 연결 리스트(145) 중 참조 대상이 되는 연결 리스트(145)를 결정할 수 있다.
데이터 입출력 관리부(120)는, 결정된 연결 리스트(145)에 기반하여 스냅샷 저장부(220)에 기록된 데이터로 결정된 데이터 블록의 원본 데이터를 덮어쓰기 할 수 있다.
복원할 데이터 블록은, 데이터 블록의 업데이트 시간이 특정한 스냅샷 시점 이후인 것일 수 있고, 결정된 연결 리스트(145)는, 적어도 하나의 연결 리스트(145)의 업데이트 시간이 스냅샷 시점보다는 이후인 연결 리스트(145) 중 시간적으로 가장 앞선 것일 수 있다.
데이터 저장 매체에 데이터 블록에 대한 쓰기 또는 변경 요청이 원본 매핑 정보 관리부(110)로 들어오면, 다중 스냅샷 관리 장치(100)의 카우 여부 판단부(160)는 원본 매핑 테이블 저장부(180)에 저장된 원본 매핑 테이블(181)과 스냅샷 리스트 저장부(150)에 저장된 스냅샷 리스트(151)를 참조하여 쓰기 시 복사 수행여부를 판단한다.
스냅샷 리스트 저장부(150)는 스냅샷 이벤트가 있을 때마다 그 차수와 시간을 스냅샷 리스트(151)에 기록하고, 스냅샷 매핑 정보 관리부(130)는 쓰기 시 복사를 수행하는 판단에 따라 스냅샷 매핑 테이블 저장부(140)와 스냅샷 저장부(220)에 쓰기 시 복사 정보를 저장할 수 있도록 조정한다. 이 때 데이터 저장 장치(200)의 스냅샷 저장부(220)에 데이터가 기록되는 것은 데이터 입출력 관리부(120)를 통하여 이루어질 수 있다.
데이터 복원 시에는 복원 블록 결정부(170)가 복원할 데이터 블록과 연결 리스트(145)를 결정할 수 있다. 이 때 스냅샷 저장부(220)에 있는 백업 데이터는 데이터 입출력 관리부(120)를 통하여 원본 저장부(210)에 복원될 수 있다. 이하 다중 스냅샷 관리 장치(100)의 각 구성요소들의 기능은 앞선 다중 스냅샷 백업 및 복원 방법의 설명에서 상술하였으므로 중복하여 기재하지는 않는다.
스냅샷 매핑 테이블(141)이 변경될 때마다 변경된 내용을 저장 장치(200)에 저장해야 각 스냅샷의 일관성이 유지될 수 있다. 본 발명에서는 하나의 스냅샷 매핑 테이블(141)을 유지하고 쓰기 시 복사가 반복적으로 수행되는 블록을 위하여 데이터 블록의 논리 주소에 상응하는 연결 리스트(145) 형태로 관리한다. 스냅샷 매핑 테이블(141)은 연속된 익스텐트에 저장하고 하나의 데이터 블록에 대해서 반복적으로 쓰기 시 복사가 수행된 매핑 정보는 하나의 데이터 블록에 유지함으로써 스냅샷 매핑 테이블(141)을 유지하기 위한 입출력 비용을 최소화 할 수 있다.
비록 몇몇의 측면들은 방법의 관점에서 설명되었지만, 이러한 측면들은 상응하는 장치의 설명을 나타내는 것이 명확하며, 여기서 방법의 단계는 장치에 대응한다. 특정 구현 요구들에 따르면, 발명의 실시예들은 하드웨어 또는 소프트웨어에서 구현될 수 있다. 본 발명의 실시예들은 프로그램 코드, 방법들 중 하나의 수행을 위해 동작하는 프로그램 코드를 가지는 컴퓨터 프로그램 제품으로서 수행될 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 발명에 개시된 실시 예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시 예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 다중 스냅샷 관리 장치 110: 원본 매핑 정보 관리부
120: 데이터 입출력 관리부 130: 스냅샷 매핑 정보 관리부
140: 스냅샷 매핑 테이블 저장부 141: 스냅샷 매핑 테이블
145: 연결 리스트 150: 스냅샷 리스트 저장부
151: 스냅샷 리스트 160: 카우 여부 판단부
170: 복원 블록 결정부 180: 원본 매핑 테이블 저장부
181: 원본 매핑 테이블 200: 저장 장치
210: 원본 저장부 220: 스냅샷 저장부

Claims (20)

  1. 저장매체에 대한 스냅샷(snapshot) 이미지(image)를 관리하는 장치가 수행하는 방법에 있어서,
    상기 저장 매체의 데이터 블록에 대하여 쓰기(write) 또는 변경(update) 연산 발생 시, 쓰기 시 복사(COW, Copy On Write) 수행 여부를 판단하는 카우 여부 판단 단계;
    쓰기 시 복사를 수행하기로 하는 판단에 따라 상기 데이터 블록의 원본 데이터를 스냅샷 저장소에 기록하는 원본 백업 단계; 및
    상기 원본 데이터가 상기 스냅샷 저장소에 기록된 시간과 물리 주소(PA, Physical Address)를 상기 데이터 블록의 논리 주소(LA, Logical Address)에 상응하는 연결 리스트(CL, Connection List)에 기록하는 스냅샷 매핑 정보 기록 단계를 포함하는 다중 스냅샷 백업 방법.
  2. 청구항 1에 있어서,
    상기 카우 여부 판단 단계는,
    상기 데이터 블록의 논리 주소에 상응하는 원본 매핑 테이블의 최근 업데이트된 시간, 상기 쓰기 또는 변경 연산이 발생된 시간, 스냅샷 리스트의 최근 촬영 시작 시간 각각의 선후(先後) 관계 조건을 충족하는지 여부에 대한 판단인 것을 특징으로 하는 다중 스냅샷 백업 방법.
  3. 청구항 2에 있어서,
    상기 선후 관계 조건은,
    상기 원본 매핑 테이블의 최근 업데이트된 시간이, 상기 쓰기 또는 변경 연산이 발생된 시간과 상기 스냅샷 리스트의 최근 촬영 시작 시간보다 빠른 경우, 상기 쓰기 시 복사를 수행하기로 판단하고,
    상기 원본 매핑 테이블의 최근 업데이트된 시간이, 상기 쓰기 또는 변경 연산이 발생된 시간 또는 상기 스냅샷 리스트의 최근 촬영 시작 시간보다 늦은 경우, 쓰기 시 복사를 수행하지 않기로 판단하는 것임을 특징으로 하는 다중 스냅샷 백업 방법.
  4. 청구항 3에 있어서,
    상기 쓰기 시 복사를 수행하지 않기로 하는 판단에 따라,
    상기 카우 여부 판단 단계 이후에,
    상기 데이터 블록의 원본 데이터를 변경할 데이터로 덮어쓰기(overwrite)하고, 상기 원본 매핑 테이블에 상기 덮어쓰기한 시간을 기록하는 단계를 더 포함하는 것을 특징으로 하는 다중 스냅샷 백업 방법.
  5. 청구항 1에 있어서,
    상기 연결 리스트는,
    스냅샷 매핑 테이블에 포함되어 적어도 하나의 쓰기 시 복사 정보를 기록할 수 있도록 확장되는 것을 특징으로 하는 다중 스냅샷 백업 방법.
  6. 청구항 5에 있어서,
    상기 스냅샷 매핑 테이블은, 상기 논리 주소를 기록한 필드(field)와, 상기 논리 주소에 상응하는 상기 연결 리스트로 구성되고,
    상기 연결 리스트는 상기 논리 주소에 상응하는 물리 주소를 기록한 필드 및 상기 연결 리스트가 작성된 시간을 기록한 필드로 구성되는 것을 특징으로 하는 다중 스냅샷 백업 방법.
  7. 청구항 1에 있어서,
    상기 스냅샷 매핑 정보 기록 단계 이후에,
    상기 데이터 블록의 원본 데이터를 변경할 데이터로 덮어쓰기하고, 원본 매핑 테이블에 상기 덮어쓰기한 시간을 기록하는 단계를 더 포함하는 것을 특징으로 하는 다중 스냅샷 백업 방법.
  8. 데이터 복원을 위하여 저장매체에 대한 스냅샷 이미지를 관리하는 장치가 수행하는 방법에 있어서,
    상기 저장 매체의 특정한 스냅샷 시점으로 복원하는 이벤트 발생 시, 상기 저장 매체의 임의의 데이터 블록 중 복원할 데이터 블록을 결정하는 데이터 블록 결정 단계;
    상기 결정된 데이터 블록의 논리 주소에 상응하는 적어도 하나의 연결 리스트 중 상기 데이터 복원의 참조 대상이 되는 연결 리스트를 결정하는 연결 리스트 결정 단계; 및
    상기 결정된 참조 대상이 되는 연결 리스트에 기반하여 스냅샷 저장소에 기록된 데이터로 상기 결정된 데이터 블록의 원본 데이터를 덮어쓰기 하는 데이터 복원 단계를 포함하는 다중 스냅샷 복원 방법.
  9. 청구항 8에 있어서,
    상기 복원할 데이터 블록은,
    상기 임의의 데이터 블록의 업데이트 시간이 상기 특정한 스냅샷 시점 이후인 것을 특징으로 하는 다중 스냅샷 복원 방법.
  10. 청구항 8에 있어서,
    상기 결정된 연결 리스트는,
    상기 적어도 하나의 연결 리스트의 업데이트 시간이 상기 스냅샷 시점보다는 이후인 연결 리스트 중 시간적으로 가장 앞선 것임을 특징으로 하는 다중 스냅샷 복원 방법.
  11. 저장매체에 대한 스냅샷 이미지를 관리하는 장치에 있어서,
    상기 저장 매체의 데이터 블록에 대하여 쓰기 또는 변경 연산 발생 시, 쓰기 시 복사 수행 여부를 판단하는 카우 여부 판단부;
    쓰기 시 복사를 수행하기로 하는 판단에 따라 상기 데이터 블록의 원본 데이터를 스냅샷 저장부에 기록하는 데이터 입출력 관리부; 및
    상기 원본 데이터가 상기 스냅샷 저장부에 기록된 시간과 물리 주소를 상기 데이터 블록의 논리 주소에 상응하는 연결 리스트에 기록하는 스냅샷 매핑 정보 관리부를 포함하는 다중 스냅샷 관리 장치.
  12. 청구항 11에 있어서,
    상기 카우 여부 판단부는,
    상기 데이터 블록의 논리 주소에 상응하는 원본 매핑 테이블의 최근 업데이트된 시간, 상기 쓰기 또는 변경 연산이 발생된 시간, 스냅샷 리스트의 최근 촬영 시작 시간 각각의 선후(先後) 관계 조건을 충족하는지 여부를 판단하는 것을 특징으로 하는 다중 스냅샷 관리 장치.
  13. 청구항 12에 있어서,
    상기 선후 관계 조건은,
    상기 원본 매핑 테이블의 최근 업데이트된 시간이, 상기 쓰기 또는 변경 연산이 발생된 시간과 상기 스냅샷 리스트의 최근 촬영 시작 시간보다 빠른 경우, 상기 쓰기 시 복사를 수행하기로 판단하고,
    상기 원본 매핑 테이블의 최근 업데이트된 시간이, 상기 쓰기 또는 변경 연산이 발생된 시간 또는 상기 스냅샷 리스트의 최근 촬영 시작 시간보다 늦은 경우, 쓰기 시 복사를 수행하지 않기로 판단하는 것임을 특징으로 하는 다중 스냅샷 관리 장치.
  14. 청구항 11에 있어서,
    상기 원본 데이터를 변경할 데이터로 덮어쓰기하도록, 상기 데이터 입출력 관리부에 상기 변경할 데이터를 전송하고, 원본 매핑 테이블에 상기 덮어쓰기한 시간을 기록하는 원본 매핑 정보 관리부를 더 포함하는 것을 특징으로 하는 다중 스냅샷 관리 장치.
  15. 청구항 11에 있어서,
    상기 연결 리스트는,
    스냅샷 매핑 테이블에 포함되어 적어도 하나의 쓰기 시 복사 정보를 기록할 수 있도록 확장되는 것을 특징으로 하는 다중 스냅샷 관리 장치.
  16. 청구항 15에 있어서,
    상기 스냅샷 매핑 테이블은, 상기 논리 주소를 기록한 필드와, 상기 논리 주소에 상응하는 상기 연결 리스트로 구성되고,
    상기 연결 리스트는 상기 논리 주소에 상응하는 물리 주소를 기록한 필드 및 상기 연결 리스트가 작성된 시간을 기록한 필드로 구성되는 것을 특징으로 하는 다중 스냅샷 관리 장치.
  17. 청구항 11에 있어서,
    상기 저장 매체의 특정한 스냅샷 시점으로 복원하는 이벤트 발생에 기반하여, 상기 저장 매체의 복원할 데이터 블록을 결정하는 복원 블록 결정부를 더 포함하고,
    상기 복원 블록 결정부는,
    상기 결정된 복원할 데이터 블록의 논리 주소에 상응하는 적어도 하나의 연결 리스트 중 참조 대상이 되는 연결 리스트를 결정하는 것을 특징으로 하는 다중 스냅샷 관리 장치.
  18. 청구항 17에 있어서,
    상기 데이터 입출력 관리부는,
    상기 결정된 연결 리스트에 기반하여 스냅샷 저장부에 기록된 데이터로 상기 결정된 데이터 블록의 원본 데이터를 덮어쓰기 하는 것을 특징으로 하는 다중 스냅샷 관리 장치.
  19. 청구항 17에 있어서,
    상기 복원할 데이터 블록은,
    상기 데이터 블록의 업데이트 시간이 상기 특정한 스냅샷 시점 이후인 것을 특징으로 하는 다중 스냅샷 관리 장치.
  20. 청구항 17에 있어서,
    상기 결정된 연결 리스트는,
    상기 적어도 하나의 연결 리스트의 업데이트 시간이 상기 스냅샷 시점보다는 이후인 연결 리스트 중 시간적으로 가장 앞선 것임을 특징으로 하는 다중 스냅샷 관리 장치.
KR1020140001669A 2014-01-07 2014-01-07 데이터 저장장치에 대한 다중 스냅샷 관리 방법 및 장치 KR20150081810A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140001669A KR20150081810A (ko) 2014-01-07 2014-01-07 데이터 저장장치에 대한 다중 스냅샷 관리 방법 및 장치
US14/591,119 US20150193315A1 (en) 2014-01-07 2015-01-07 Method and device for managing multiple snapshots of data strorage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140001669A KR20150081810A (ko) 2014-01-07 2014-01-07 데이터 저장장치에 대한 다중 스냅샷 관리 방법 및 장치

Publications (1)

Publication Number Publication Date
KR20150081810A true KR20150081810A (ko) 2015-07-15

Family

ID=53495265

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140001669A KR20150081810A (ko) 2014-01-07 2014-01-07 데이터 저장장치에 대한 다중 스냅샷 관리 방법 및 장치

Country Status (2)

Country Link
US (1) US20150193315A1 (ko)
KR (1) KR20150081810A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102005727B1 (ko) * 2018-01-22 2019-07-31 한국교통대학교산학협력단 파일 시스템의 변경 연산 가로채기 기법을 기반으로 한 다중 스냅샷 방법

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9927985B2 (en) * 2016-02-18 2018-03-27 SK Hynix Inc. Method of dynamic table journaling
US10235066B1 (en) * 2017-04-27 2019-03-19 EMC IP Holding Company LLC Journal destage relay for online system checkpoint creation
US10664358B1 (en) 2017-04-28 2020-05-26 EMC IP Holding Company LLC Ensure volume consistency for online system checkpoint
US11003542B1 (en) * 2017-04-28 2021-05-11 EMC IP Holding Company LLC Online consistent system checkpoint
KR20180128588A (ko) * 2017-05-24 2018-12-04 에스케이하이닉스 주식회사 메모리 시스템 및 그의 동작 방법
CN107391396B (zh) * 2017-07-27 2020-10-23 苏州浪潮智能科技有限公司 一种可写快照装置的数据分区方法及可写快照装置
CN107423165A (zh) * 2017-08-01 2017-12-01 郑州云海信息技术有限公司 一种数据快照首写拷贝方法及装置
KR102406666B1 (ko) 2017-09-20 2022-06-08 삼성전자주식회사 스냅샷 기능을 지원하는 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법
US10705920B1 (en) * 2017-10-26 2020-07-07 Gravic, Inc. Method and system for implementing current, consistent, and complete backups
CN109144416B (zh) * 2018-08-03 2020-04-28 华为技术有限公司 查询数据的方法和装置
CN109902034B (zh) * 2019-02-25 2021-09-10 杭州宏杉科技股份有限公司 快照创建方法、装置、电子设备及机器可读存储介质
CN110096476B (zh) * 2019-04-08 2023-06-09 平安科技(深圳)有限公司 数据备份方法、装置及计算机可读存储介质
US11422897B2 (en) * 2019-07-31 2022-08-23 Rubrik, Inc. Optimizing snapshot image processing
CN112988042B (zh) * 2019-12-18 2023-04-18 深圳大普微电子科技有限公司 一种数据存储方法、装置、设备及可读存储介质
FR3108753B1 (fr) * 2020-03-27 2022-04-01 Bull Sas Procédé et dispositif de contrôle dynamique, au niveau fichier, de l’intégrité de fichiers de programme dans une mémoire persistante d’un ordinateur, programme d’ordinateur et ordinateur l’incorporant
US20220398217A1 (en) * 2021-06-10 2022-12-15 EMC IP Holding Company, LLC System and Method for Snapshot Rule Time Zone Value
US11663083B2 (en) * 2021-10-29 2023-05-30 EMC IP Holding Company LLC Cyber-related data recovery

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5089958A (en) * 1989-01-23 1992-02-18 Vortex Systems, Inc. Fault tolerant computer backup system
US5325519A (en) * 1991-10-18 1994-06-28 Texas Microsystems, Inc. Fault tolerant computer with archival rollback capabilities
US6016553A (en) * 1997-09-05 2000-01-18 Wild File, Inc. Method, software and apparatus for saving, using and recovering data
US6871271B2 (en) * 2000-12-21 2005-03-22 Emc Corporation Incrementally restoring a mass storage device to a prior state
US6883074B2 (en) * 2002-12-13 2005-04-19 Sun Microsystems, Inc. System and method for efficient write operations for repeated snapshots by copying-on-write to most recent snapshot
US7409587B2 (en) * 2004-08-24 2008-08-05 Symantec Operating Corporation Recovering from storage transaction failures using checkpoints
US7831782B1 (en) * 2004-06-30 2010-11-09 Symantec Operating Corporation Roll-back log to provide data consistency
US8059635B1 (en) * 2006-05-05 2011-11-15 Workday, Inc. Non-destructive data storage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102005727B1 (ko) * 2018-01-22 2019-07-31 한국교통대학교산학협력단 파일 시스템의 변경 연산 가로채기 기법을 기반으로 한 다중 스냅샷 방법

Also Published As

Publication number Publication date
US20150193315A1 (en) 2015-07-09

Similar Documents

Publication Publication Date Title
KR20150081810A (ko) 데이터 저장장치에 대한 다중 스냅샷 관리 방법 및 장치
US10235066B1 (en) Journal destage relay for online system checkpoint creation
US10152381B1 (en) Using storage defragmentation function to facilitate system checkpoint
US10547678B2 (en) Data transfer techniques within data storage devices, such as network attached storage performing data migration
CA2751180C (en) System and method for secure and reliable multi-cloud data replication
US9600377B1 (en) Providing data protection using point-in-time images from multiple types of storage devices
US10002048B2 (en) Point-in-time snap copy management in a deduplication environment
US9940205B2 (en) Virtual point in time access between snapshots
US9348827B1 (en) File-based snapshots for block-based backups
JP4336129B2 (ja) 複数のスナップショットを管理するシステム及び方法
US9563517B1 (en) Cloud snapshots
US9588847B1 (en) Recovering corrupt virtual machine disks
US10496487B1 (en) Storing snapshot changes with snapshots
US9411821B1 (en) Block-based backups for sub-file modifications
US9535801B1 (en) Xcopy in journal based replication
US9875162B1 (en) Recovering corrupt storage systems
US10031690B1 (en) Initializing backup snapshots on deduplicated storage
US7054960B1 (en) System and method for identifying block-level write operations to be transferred to a secondary site during replication
US7194487B1 (en) System and method for recording the order of a change caused by restoring a primary volume during ongoing replication of the primary volume
US10126946B1 (en) Data protection object store
US9031913B1 (en) File replication
EP1959346B1 (en) Methods and apparatus for adjusting a journal area for continuous data protection
US10255137B1 (en) Point-in-time recovery on deduplicated storage
US8046547B1 (en) Storage system snapshots for continuous file protection
JP5172892B2 (ja) アロケートオンライトのスナップショットを用いて連続データ保護を実現するための方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid