KR101268643B1 - 가상 볼륨에 대한 연속적 데이터 보호를 제공하는 방법 및 가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템 - Google Patents

가상 볼륨에 대한 연속적 데이터 보호를 제공하는 방법 및 가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템 Download PDF

Info

Publication number
KR101268643B1
KR101268643B1 KR1020100042602A KR20100042602A KR101268643B1 KR 101268643 B1 KR101268643 B1 KR 101268643B1 KR 1020100042602 A KR1020100042602 A KR 1020100042602A KR 20100042602 A KR20100042602 A KR 20100042602A KR 101268643 B1 KR101268643 B1 KR 101268643B1
Authority
KR
South Korea
Prior art keywords
chunk
modified
virtual volume
ptvv
pit
Prior art date
Application number
KR1020100042602A
Other languages
English (en)
Other versions
KR20110025053A (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 엘에스아이 코포레이션
Publication of KR20110025053A publication Critical patent/KR20110025053A/ko
Application granted granted Critical
Publication of KR101268643B1 publication Critical patent/KR101268643B1/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
    • 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/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or 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)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 가상 볼륨(VV)에 대한 연속적 데이터 보호를 제공하는 방법에 관한 것이다. 이 방법은, VV를 복수의 동일한 크기의 청크들(chunks)로 개념적으로 분할하는 단계와, 지정된 시간에 VV의 콘텐츠를 보존하는 단계와, 지정된 시간에 VV에 대한 제 1 시점(Point-in-Time; PiT) 인스턴스를 생성하는 단계와, VV의 복수의 청크들 중 한 청크가 수정되면 1 PiT 인스턴스를 업데이트하는 단계를 포함하는데, 제 1 PiT 인스턴스는 지정된 시간 이후의 VV에 대한 수정을 저장하는 PiT 임시 가상 볼륨(PTVV) - 제 1 PTVV에 저장된 데이터는 덮어쓰기(overwritten)가 금지됨 - 과, VV의 상기 복수의 청크들 각각에 가장 최근 버전으로의 판독 액세스를 제공하도록 구성됨 - 과, PTVV에 저장된 청크의 이력 버전으로의 판독 액세스를 제공하는 연속적 데이터 보호(CDP) 로그를 포함한다.

Description

가상 볼륨에 대한 연속적 데이터 보호를 제공하는 방법 및 가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템{A METHOD FOR IMPLEMENTING CONTINUOUS DATA PROTECTION UTILIZING ALLOCATE-ON-WRITE SNAPSHOTS}
본 발명은 전자 데이터 저장 분야에 관한 것으로, 특히 기록시 할당(allocate-on-write) 스냅샷을 사용하여 연속적인 데이터 보호를 제공하는 시스템 및 방법에 관한 것이다.
정보 기술(IT)의 사용자들은 심각한 장애로부터 보호하기 위해 핵심 데이터의 백업을 수행할 수 있다. 이러한 심각한 장애가 발생하는 경우, 백업은 IT 시스템으로 핵심 데이터를 복원시키기 위해 사용될 수 있다. 통상적인 백업은 백업이 수행된 시점까지의 데이터만을 복원할 수 있다. 백업이 소정 스케줄(가령, 하루에 한 번, 일주일에 한 번 등)에 따라 수행되는 경우, 이는, 심각한 장애가 발생되는 때에 따라 백업 매체상의 핵심 데이터의 카피가 비교적 오래된 것일 수 있으며 IT 시스템을 장애 이전에 있던 곳으로 다시 가져오기 위해서 상당한 추가 프로세싱을 요구할 수 있다. 또한, 가장 최근의 백업 데이터 자체가 (가령, 바이러스에 의해 감염되어) 부분적으로 손상될 수 있는데, 이는 사용자가 훨씬 더 오래된 카피(이용 가능한 것이 있는 경우)로 돌아갈 것을 요구할 수 있다.
따라서, 본 발명의 실시예는 가상 볼륨에 대한 연속적 데이터 보호를 제공하는 방법에 관한 것이다. 이 방법은 가상 볼륨을 복수의 동일한 크기의 청크들(chunks)로 개념적으로(conceptually) 분할하는 단계와, 가상 볼륨의 콘텐츠를 보존하고 첫 번째 지정된 시간에 가상 볼륨으로의 직접 기록 액세스를 금지하는 단계와, 첫 번째 지정된 시간에 가상 볼륨에 대한 제 1 시점(Point-in-Time; PiT) 인스턴스를 생성하는 단계와, 가상 볼륨의 상기 복수의 청크들 중 한 청크가 수정되면 제 1 PiT 인스턴스를 업데이트하는 단계를 포함하는데, 제 1 PiT 인스턴스는 첫 번째 지정된 시간 이후의 상기 가상 볼륨에 대한 수정을 저장하도록 구성되며 저장된 데이터는 덮어쓰기(overwritten)가 금지되는 제 1 PiT 임시 가상 볼륨(PiT Temporary Virtual Volume; PTVV)과, 가상 볼륨의 복수의 청크들 각각에 대한 엔트리를 포함하고 가상 볼륨의 복수의 청크들 각각의 가장 최근 버전으로의 판독 액세스를 제공하도록 구성되는 제 1 재할당 테이블과, 제 1 PTVV에 저장된 청크의 이력 버전(historic version)으로 판독 액세스를 제공하도록 구성되는 제 1 연속적 데이터 보호(Continuous Data Protection; CDP) 로그를 포함한다.
본 명세서의 다른 실시예는 가상 볼륨에 대한 복원 인스턴스를 생성하는 방법에 관한 것이다. 이 방법은 복원 시간을 수신하는 단계와, 복원 시간 이전인 가장 최근의 생성 시간을 갖는 시점(PiT) 인스턴스를 식별하는 단계와, 식별된 PiT 인스턴스의 재할당 테이블을 상기 복원 인스턴스의 재할당 테이블로 카피하는 단계와, 식별된 PiT 인스턴스의 연속적 데이터 보호 로그(CDP 로그)와 복원 시간에 기초하여 복원 인스턴스의 상기 재할당 테이블을 업데이트하는 단계를 포함한다.
본 발명의 추가 실시예는 가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템에 관한 것이다. 이 시스템은 가상 볼륨을 복수의 동일한 크기의 청크들로 개념적으로 분할하는 수단과, 가상 볼륨의 콘텐츠를 보존하고 첫 번째 지정된 시간에 가상 볼륨으로의 직접 기록 액세스를 금지하는 수단과, 첫 번째 지정된 시간에 상기 가상 볼륨에 대한 제 1 시점(Point-in-Time; PiT) 인스턴스를 생성하는 수단과, 가상 볼륨의 복수의 청크들 중 한 청크가 수정되면 상기 제 1 PiT 인스턴스를 업데이트하는 수단을 포함하는데, 제 1 PiT 인스턴스는 첫 번째 지정된 시간 이후의 가상 볼륨에 대한 수정을 저장하도록 구성되며 저장된 데이터는 덮어쓰기가 금지되는 제 1 PiT 임시 가상 볼륨(PTVV)과, 가상 볼륨의 복수의 청크들 각각에 대한 엔트리를 포함하고 가상 볼륨의 복수의 청크들 각각의 가장 최근 버전으로의 판독 액세스를 제공하도록 구성되는 제 1 재할당 테이블과, 제 1 PTVV에 저장된 청크의 이력 버전으로의 판독 액세스를 제공하도록 구성되는 제 1 연속적 데이터 보호(CDP) 로그를 포함한다.
전술한 전반적인 설명 및 후술하는 상세한 설명은 모두 예시적인 것일 뿐이며 청구되는 본 발명을 반드시 제한하는 것은 아니라는 것을 이해해야 한다. 본 명세서의 일부를 구성하며 포함되는 첨부된 도면은 상세한 설명과 함께 본 발명의 실시예를 설명하고 있으며 본 발명의 원히를 설명하기 위해 제공된다.
본 발명의 많은 장점은 첨부된 도면을 참조하여 당업자에게 보다 잘 이해될 수 있다.
도 1은 가상 볼륨 구성을 도시하는 블록도이다.
도 2는 가상 볼륨에 대한 시점(Point-in-Time) 인스턴스를 생성하기 위한 스냅샷 메커니즘을 도시하는 블록도이다.
도 3은 가상 볼륨에 대한 변경을 유지하는 PTVV에 의해 사용되는 재할당 테이블(RT)을 도시하는 도면이다.
도 4는 가상 볼륨의 재할당 테이블 및 청크의 엔트리의 연관을 도시하는 도면이다.
도 5는 연속적인 데이터 보호 로그의 도면이다.
도 6은 본 발명의 실시예에 따라 논리 유닛에 대한 연속적인 데이터 보호를 제공하는 방법을 도시하는 흐름도이다.
도 7은 본 발명의 실시예에 따라 가상 볼륨에 대한 복원 인스턴스를 생성하는 방법을 도시하는 흐름도이다.
이하에서는 본 발명의 바람직한 실시예를 상세히 참조할 것이며, 첨부된 도면에 실시예가 도시되어 있다.
연속적 데이터 보호(Continuous Data Protection; CDP, 연속적 백업 또는 실시간 백업으로도 알려짐)은 컴퓨터 데이터에 이루어진 모든 변경의 카피를 자동적으로 저장함으로써 그 데이터를 백업하는 것을 지칭하며, 필수적으로 사용자가 생성하는 데이터의 모든 버전을 캡처한다. CDP를 사용하는 것은 사용자 및/또는 관리자가 사용되는 CDP의 메커니즘에 따라 어떤 시점까지 데이터를 복원할 수 있게 할 수 있다.
소정 CDP 메커니즘은 빈번한 간격으로 핵심 데이터의 스냅샷이 자동적으로 취해지는 스냅샷 방안을 이용할 수 있다. 스냅샷 메커니즘은 각 스냅샷에 대한 전체 카피를 생성하는 대신에 원본에 대한 데이터의 차이점만을 캡처하도록 구성될 수 있다. 스냅샷 메커니즘은 "슬라이딩 윈도우" 방안도 사용할 수 있는데, 여기서는 논리 유닛(LU)에 대해 캡처되는 스냅샷의 총 횟수가 소정 임계에 도달하면 가장 오래된 스냅샷이 삭제될 수 있다.
본 명세서는 논리 유닛에 대한 연속적 데이터 보호를 제공하는 방법에 관한 것이다. 논리 유닛은 가상 볼륨으로 맵핑될 수 있는데, 이는 복수의 동일한 크기의 청크로 개념적으로 분할될 수 있다. 시점(Point-in-Time) 인스턴스가 지정된 시간에 가상 볼륨에 대해 생성될 수 있다. PiT 인스턴스는, 이 PiT가 생성된 이후의 가상 볼륨에 이루어진 변경을 저장하는 PiT 임시 가상 볼륨(PiT Temporary Virtual Volumn; PTVV)을 포함할 수 있다. 각 PiT 인스턴스에 대한 PTVV는 이 PiT 인스턴스가 액티브(PiT 인스턴스는 PiT 인스턴스의 생성 시간과 후속 PiT 인스턴스의 생성 시간 사이에서 액티브임) 한 동안에 가상 볼륨에 대한 모든 수정을 저장하도록 구성될 수 있다. 이 방식에서, 가상 볼륨의 특정 청크(chunk)가 PiT 인스턴스가 액티브인 동안에 5회 업데이트된 경우, 이 PiT 인스턴스의 PTVV는 특정 청크에 대한 데이터 콘텐츠의 5개의 버전을 저장할 수 있다. 일 실시예에서, PTVV에 저장된 데이터는 덮어쓰기(overwritten)가 금지된다.
재할당 테이블은 가상 볼륨의 각 청크의 가장 최근 버전에 액세스하는 PiT 인스턴스에 의해 사용될 수 있다. 연속적 데이터 보호(CDP) 로그는 PTVV에 저장된 청크의 더 오래된 버전으로의 액세스를 제공하기 위해 사용될 수 있다. 이 방식에서, 메커니즘은 개별적인 기록 동작의 입도(granularity)로 과거의 측정 시간에 대한 복원 인스턴스를 생성하기 위해 제공될 수 있다.
도 1을 참조하면, 가상 볼륨 구성을 도시하는 블록도가 도시되어 있다. 일 실시예에서, 논리 유닛(LU)은 저장 장치(가령, 스토리지 어레이 또는 독립적 디스크의 중복 어레이)의 가상 볼륨(102)으로 맵핑될 수 있다. 저장 장치에서 전개되는 스토리지 가상화 관리자(SVM)가 이러한 맵핑을 촉진하기 위해 사용될 수 있다. 가상 볼륨(102)은 하나 이상의 가상 볼륨 세그먼트(104)를 포함할 수 있다. 각 가상 볼륨 세그먼트(104)는 가상 드라이브 LBA 범위로의 가상 볼륨 논리 블록 어드레스(LBA) 범위의 맵핑을 표현할 수 있다. 가상 드라이브는 저장 장치의 스토리지 할당에 대응할 수 있다. 예를 들어, 가상 드라이브는 RAID 볼륨에 대응할 수 있다.
도 2를 참조하면, 가상 볼륨에 대한 시점(Point-in-Time) 인스턴스를 생성하는 스냅샷 메커니즘을 도시하는 블록도이다. 예를 들어, SVM은 첫 번째 지정된 시간(가령, 8:00 AM)에서 가상 볼륨(202)에 대한 제 1 PiT 인스턴스를 생성하도록 구성될 수 있다. 8:00 AM 이전에, 호스트로부터 가상 볼륨(202)으로 발신된 기록 명령은 가상 볼륨(202)의 데이터 콘텐츠를 직접적으로 수정할 수 있다. 그러나, 가상 볼륨의 데이터 콘텐츠는 정지하고(freezes), 제 1 PiT 임시 가상 볼륨(PTVV)(206)은 첫 번째 지정된 시간 8:00 AM 이후의 가상 볼륨에 대한 모든 변경을 유지하도록 생성된다. 결과적으로, 8:00 AM 이전의 가상 볼륨(202)의 데이터 콘텐츠는 제 1 PiT 인스턴스가 생성된 시간에 정지된 이미지(208)로서 보존된다. 정지된 이미지(208)는 가상 볼륨(202)의 콘텐츠를 보호하고 8:00 AM으로부터 시작하는 가상 볼륨(202)으로의 기록 액세스를 금지한다. 가상 볼륨에 대한 PiT 인스턴스를 생성하는 스냅샷 메커니즘은 가상 볼륨에 액세스하는 호스트에 대해 투명할 수 있다는 것을 이해할 수 있다. 위의 예에서, PTVV(206) 및 정지된 이미지(208)는 현재 가상 볼륨(204)으로서 함께 기능할 수 있는데, 이는 가상 볼륨에 액세스하는 호스트에 대해 투명할 수 있다.
또한, SVM은 두 번째 지정된 시간(가령, 11:00 AM)에서 가상 볼륨에 대한 제 2 PiT 인스턴스를 생성하도록 구성될 수 있다. 이 예에서, 8:00 AM과 11:00 AM 사이에 이루어진 가상 볼륨에 대한 변경은 제 1 PTVV(206)에서 유지될 수 있다. 11:00 AM에서, 제 1 PTVV(206)의 데이터 콘텐츠는 정지되고, 제 2 PTVV(212)는 두 번째 지정된 시간 11:00 AM 이후의 가상 볼륨에 대한 모든 변경을 유지하기 위해 제 1 PTVV(206)의 대체에서 생성된다. 결과적으로, 제 1 PTVV(206)의 콘텐츠는, 첫 번째 지정된 시간에 취해진 원본 가상 볼륨의 정지된 이미지(208)와 함께, 제 2 PiT 인스턴스가 생성된 때의 정지된 이미지(214)로서 보존된다. PTVV(212), 제1 PTVV의 정지된 이미지(214) 및 원본 가상 볼륨의 정지된 이미지(208)는 함께 현재 가상 볼륨(210)으로서 기능할 수 있는데, 이는 가상 볼륨에 액세스하는 호스트에 대해 투명할 수 있다.
추가 PiT 인스턴스는 가상 볼륨에 대해 생성될 수 있다. 각 PiT 인스턴스는 PiT 인스턴스의 생성 이후에 가상 볼륨에 대한 변경을 유지하기 위해 새로운 PTVV를 포함할 수 있다. 각 PiT 인스턴스는 원본 가상 볼륨의 정지된 이미지(208) 및 이전 PTVV의 정지된 이미지(가령, 제 1 PTVV의 정지된 이미지(214))로의 판독 액세스를 가질 수 있다. PiT 생성 시간은 요구에 따라(가령, 명령에 따라) 지정되거나 사전 결정된 간격(가령, 매시간)에 기초하여 구성될 수 있다.
도 3을 참조하면, 가상 볼륨에 대한 변경을 유지하기 위해 PTVV에 의해 사용되는 재할당 테이블(RT)이 도시되어 있다. 일 실시예에서, 가상 볼륨의 LBA 범위는 동일한 크기의 청크로 개념적으로 분할될 수 있다. 청크의 크기는 데이터 복원의 입도에 대응할 수 있다. 예를 들어, 8 바이트의 청크 크기는, 데이터 복원의 입도가 가상 볼륨에 기록되는 모든 8 바이트의 데이터이라고 표시한다.
재할당 테이블(302)은 PiT 인스턴스마다 생성될 수 있다. 일 실시예에서,재할당 테이블(302)은 가상 볼륨의 청크(chunk)마다 엔트리를 포함할 수 있다. PiT 인스턴스가 생성된 후 호스트에 의해 청크가 기록될 때, 이 청크에 대한 재할당 테이블의 대응 엔트리는 "할당되는" 것으로 위치되고 표시될 수 있다. 이 청크의 데이터 콘텐츠는 다음 이용 가능한 LBA에서 PTVV에 배치/저장될 수 있다. 재할당 테이블(302)의 이 청크에 대한 엔트리는 (가령, 레퍼런스 또는 포인터를 통해) PTVV에 저장된 청크의 데이터 콘텐츠와 연관될 수 있다. 재할당 테이블은 청크가 기록/업데이트되었을 때를 반영하는 각 엔트리에 대한 타임스탬프를 추적할 수 있다.
도 3에 도시된 실시예에서, 청크 "j"로의 기록 명령을 수신하면, PTVV는 재할당 테이블(302)의 청크 "j"에 대한 엔트리를 위치시키고 이 엔트리를 "할당된" 것으로 표시할 수 있다. PTVV는 PTVV에 액세스 가능한 다음 이용 가능한 LBA(304)의 청크 "j"의 데이터 콘텐츠를 저장할 수 있다. 또한, PTVV는 재할당 테이블(302)의 청크 "j"에 대한 엔트리와 LBA(304)에 저장된 청크 "j"의 데이터 콘텐츠를 연관시킬 수 있다.
다른 청크로의 후속 기록 명령이 유사하게 처리될 수 있다. 예를 들어, 청크 "i"로의 기록 명령을 수신하면, PTVV는 재할당 테이블(302)의 청크 "i"에 대한 엔트리를 위치시키고 이 엔트리를 "할당된" 것으로 표시할 수 있다. PTVV는 PTVV에 액세스 가능한 다음 이용 가능한 LBA(306)의 청크 "i"의 데이터 콘텐츠를 저장할 수 있다. 또한, PTVV는 재할당 테이블(302)의 청크 "i"에 대한 엔트리를 LBA(306)에 저장된 청크 "i"의 데이터 콘텐츠와 연관시킬 수 있다. PTVV에 배치된/저장된 청크의 순서는 본래 가상 볼륨의 순서에 반드시 대응하는 것은 아니라는 것을 이해할 수 있다. 일 실시예에서, PTVV의 청크는 기록되는 순서대로 위치되며, 이는 도 3에 도시되어 있다.
일 실시예에서, 현재/액티브 PiT 인스턴스의 특정 청크에 대한 재할당 테이블 엔트리는 항상 이 특정 청크(즉, 유효 청크)의 가장 최근 버전을 가리킨다. 특정 청크의 가장 최근 버전은 현재 PiT 인스턴스의 생성 이전에 생성/업데이트될 수 있다는 것을 이해할 수 있다. 즉, 이 특정 청크의 데이터 콘텐츠는 이전 PTVV에 저장될 수 있다. 재할당 테이블과 유효 청크의 연관이 도 4에 도시되어 있다.
도 4에 도시된 예에서, 청크 "j"는 현재 PiT 인스턴스의 생성 후(즉, 이 예에서는 11:00 AM 후)에 기록될 수 있다. 따라서, 청크 "j"의 데이터 콘텐츠는 현재/액티브 PTVV에 저장될 수 있다. 청크 "i"는 8:00 AM과 11:00 AM 사이의 가장 최근의 어떤 시간에 기록될 수 있다. 따라서, 청크 "i"의 데이터 콘텐츠는 8:00 AM과 11:00 AM 사이에 액티브였던 이전 PTVV에 저장될 수 있는데, 이는 이제 기록 명령으로부터 보호되나 판독 액세스에 대해서는 여전히 액세스 가능하다. 그러므로, 현재 PiT 인스턴스의 재할당 테이블의 청크 "i"에 대한 엔트리는 판독 액세스를 위해 이전 PTVV에 저장된 청크 "i"의 데이터 콘텐츠를 가리킬 수 있다. 또한, 청크 "k"는 8:00 AM 이전에 가장 최근에 기록될 수 있는데, 이는 이 예에서 제 1 PiT 인스턴스의 생성 이전이다. 따라서, 청크 "k"의 데이터 콘텐츠는 가상 볼륨 자체에 저장될 수 있으며, 이는 이제 기록 명령으로부터 보호되자 판독 액세스에 대해서는 여전히 이용 가능하다. 그러므로, 현재 PiT 인스턴스의 재할당 테이블의 청크 "k"에 대한 엔트리는 판독 액세스에 대한 원본 가상 볼륨에 저장된 청크 "k"의 데이터 콘텐츠를 가리킬 수 있다.
일 실시예에서, 청크의 데이터 콘텐츠는 일단 PTVV에 저장되면 보호되며 덮어쓸 수 없을 수 있다. 기록 동작이 재할당 테이블에 이미 할당된 청크에 대해 처리되면, 청크의 이전/이력 버전이 PTVV에 유지되고 청크의 새로운 버전은 PTVV이 새로운 위치(가령, 다음 이용 가능한 LBA)에 저장된다. CDP 로그는 청크에 대한 이력 버전을 관리하고 액세스를 제공하도록 사용될 수 있다. 일 실시예에서, CDP 로그는 PiT 인스턴스마다 유지될 수 있다. CDP 로그는 NVSRAM, 배터리 장착(battery backed) 캐시 메모리, 덤프 장치 장착(dump device backed) 캐시 메모리, 고체 상태 드라이브(SSD) 등과 같은 고속의 영구적 메모리를 사용하여 구현될 수 있다.
도 5를 참조하면, CDP 로그(502)가 도시되어 있다. 일 실시예에서, 재할당 테이블의 특정 청크에 대한 엔트리는 항상 이 특정 청크의 가장 최신의 버전을 가리킨다. 기록 명령이 이미 재할당 테이블에 이미 할당된 청크 "i"에 대해 처리되면, 청크 "i"에 대한 업데이트된 데이터 콘텐츠(512)는 다음 이용 가능한 슬롯에서 PTVV에 저장되며 재할당 테이블(510)의 청크 "i"에 대한 엔트리는 업데이트된 데이터 콘텐츠(512)를 가리키도록 업데이트된다. 청크 "i"에 대한 이전 데이터 콘텐츠(508)은 PTVV에 남을 수 있지만, 재할당 테이블을 통해 직접적으로 액세스 가능하지 않을 수 있다. 청크 "i"에 대한 이전 데이터 콘텐츠(508)와 연관되는 새로운 레코드(504)가 CDP 로그(502)에 추가될 수 있다. 일 실시예에서, 새로운 레코드(504)는 청크(508)에 대한 타임스탬프, PTVV에 저장된 청크(508)의 데이터 콘텐츠로의 포인터(가령, 청크에 대한 시작 LBA), 및 재할당 테이블 엔트리와의 연관(가령, 이 CDP 로그 엔트리가 청크 "i"에 대한 것이라고 표시하는 청크 식별자, 또는 재할당 테이블의 엔트리로의 포인터)을 포함할 수 있다. PTVV 및 CDP 로그상에서 수행되는 동작은 기록 명령의 개시자에 대해 투명할 수 있으며 기록 명령의 상태는 동작이 완료되면 개시자에게 보고될 수 있다는 것을 이해할 수 있다.
유사하게, 제 2 기록 명령이 청크 "i"에 대해 처리되면, 청크 "i"에 대한 업데이트된 데이터 콘텐츠(514)는 다음 이용 가능한 슬롯에서 PTVV에 저장되며 재할당 테이블(510)의 청크 "i"에 대한 엔트리는 업데이트된 데이터 콘텐츠(514)를 가리키도록 업데이트된다. 청크 "i", 즉, 청크(508 및 512)에 대한 이전 데이터는 PTVV에 모두 남을 수 있지만, 재할당 테이블을 통해서 직접적으로 액세스 가능하지 않을 수 있다. 기존 CDP 로그 엔트리(504)는 남을 수 있지만, 청크(512)와 연관되는 다른 CDP 로그 엔트리(506)는 CDP 로그(502)에 추가될 수 있다.
PiT 인스턴스의 PTVV 및 CDP 로그는 함께 개별적인 기록 동작의 입도로 과거의 특정 시간에 대한 복원 인스턴스를 생성하는 메커니즘을 제공할 수 있다. 예를 들어, 사용자는 특정 복원 시간(즉, 과거의 어떤 시간)을 지정함으로써 가상 볼륨에 대한 복원 인스턴스를 생성할 수 있다. 생성된 복원 인스턴스는 사용자가 지정한 복원 시간에 가상 볼륨의 데이터 콘텐츠를 반영할 수 있다.
일 실시예에서, 지정된 복원 시간을 수신하면, 복원 메커니즘은 복원 시간 이전인 가장 최근의 생성 시간을 갖는 PiT 인스턴스를 식별하고 선택할 수 있다. 예를 들어, 가상 볼륨이 7:00 AM, 8:00 AM 및 9:00 AM에 생성된 PiT 인스턴스를 가지며, 사용자가 지정한 복원 시간이 8:30 AM인 경우, 8:00 AM에 생성된 PiT 인스턴스는 8:30 AM 이전인 가장 최근의 생성 시간을 갖도록 선택될 것이다.
선택된 PiT 인스턴스는 복원 인스턴스를 생성하기 위한 기반으로서 사용될 수 있다. 예를 들어, 복원 메커니즘은 복원 인스턴스로 선택 PiT 인스턴스의 재할당 테이블을 카피하도록 구성될 수 있다. 그 후, 복원 메커니즘은 재할당 테이블을 업데이트하고 CDP 로그 엔트리 및 지정된 복원 시간에 기초하여 복원 인스턴스를 갖는 선택 PiT 인스턴스로부터의 적합한 청크들을 연관시킬 수 있다. 예를 들어, 복원 메커니즘은 가상 볼륨의 특정 청크에 대해 생성되었던 CDP 로그 엔트리를 식별할 수 있다. 복원 메커니즘은 이들 CDP 로그 엔트리들 중에서 복원 시간 이전인 가장 최근의 생성 시간을 갖는 특정 로그 엔트리를 식별할 수 있다. (복원 로그 엔트리로서 지칭될 수 있는) 이 특정 로그 엔트리는 복원 시간에 이 청크의 데이터 콘텐츠를 반영한다. 복원 메커니즘은 복원 인스턴스의 재할당 테이블의 이 청크에 대한 엔트리의 위치를 파악하고 복원 로그 엔트리가 연관되는 데이터 콘텐츠를 갖는 이 청크에 대한 엔트리와 연관시킬 수 있다. 선택된 PiT 인스턴스로부터의 적합한 청크의 실제 데이터 콘텐츠가 복원 인스턴스로 카피될 수 있다고 생각된다. 이와 달리, 선택 PiT 인스턴스로부터의 적합한 청크가 일단 식별되면, 복원 인스턴스는 복원 인스턴스의 CDP 로그 엔트리를 사용하여 식별된 적합한 청크를 (가령, 레퍼런스 또는 포인터를 통해) 가리킬 수 있다.
복원 메커니즘은 다른 청크들과 연관되는 CDP 로그 엔트리를 갖는 청크들에 대한 처리를 반복할 수 있다는 것을 이해할 수 있다. 업데이트된 재할당 테이블을 갖는 복원 인스턴스는 지정된 복원 시간에 가상 볼륨 콘텐츠를 반영할 수 있다. 사용자는 복원 인스턴스를 사용하여 가상 볼륨의 보기(view)를 생성하거나 복원 인스턴스에 대한 가상 볼륨을 복원하는 옵션을 가져서 가상 볼륨 콘텐츠를 지정된 복원 시간의 것들로 변경할 수 있다.
PiT 인스턴스는 가상 볼륨상의 I/O 패턴에 의존하여 신속하게 성장할 수 있다는 것이 생각된다. 예를 들어, 동일한 청크가 빈번히 "덮어쓰기"되는 경우에는 PTVV의 동일한 청크의 많은 버전이 존재한다. PiT 인스턴스의 액티브 지속시간을 제어하기 위해 스케줄이 사용될 수 있다. 예를 들어, 새로운 PiT 인스턴스가 빈번하게 업데이트되는 가상 볼륨에 대해 매시간 생성되도록 지정할 수 있다. 다른 예에서는, 빈번하지 않게 업데이트되는 가상 볼륨에 대해 3시간 마다 새로운 PiT 인스턴스가 생성되도록 상이한 스케줄을 지정할 수 있다.
또한, 소정의 설정 가능한 개수의 가상 볼륨에 대한 PiT 인스턴스를 보관하기 위해 "슬라이딩 윈도우"가 사용될 수 있다는 것이 생각된다. 이러한 구성에서, 일단 시스템이 소정 개수의 PiT 인스턴스에 도달하면 가장 오래된 PiT 인스턴스는 제거/삭제될 수 있다. 일 실시예에서, PiT 인스턴스가 삭제되면 PiT의 대응 PTVV의 청크들이 이전 PiT 또는 (이전 PiT가 없는 경우에는) 가상 볼륨 자체로 재통합된다.
가장 오래된 PiT 인스턴스가 더 간격이 넓은(coarser) 시간 입도로 진행함으로써 "압축될" 수 있다는 것도 고려된다. 예를 들어, 사용자는 마지막 3일 내의 임의의 지정된 시간에 대한 복원 인스턴스를 생성할 수 있을 수 있다. 그러나, 특정 시간에 정확히 복언 인스턴스를 제공하는 대신, 사용자가 일주일 이전의 특정 시간에 대한 복원 인스턴스를 생성하기로 선택한 경우, 간격이 넓은 입도를 갖는 복원 인스턴스는 최소 5분, 30분, 또는 심지어 60분 등에 대해 생성될 수 있다. 훨씬 더 오래된 PiT 인스턴스(가령, 한달 전에 생성된 것)는 훨씬 더 많이, 예를 들어, 가장 가까운 날로만 압축될 수 있다는 것을 이해할 수 있다.
일 실시예에서, 더 오래된 PiT 인스턴스의 압축은 PiT로부터의 특정 청크 버전(PTVV)을 삭제하고 이를 알맞게 압축함으로써 달성될 수 있다. 예를 들어, (5분 또는 30분 등의 입도를 표시하는) 입도 정의를 수신하면, CDP 로그의 패스 스루(pass through)는 그 PiT 인스턴스에 대한 주어진 시간 입도로 제거될 수 있는 청크 버전을 결정하기 위해 수행될 수 있다. 입도가 매 5분으로 설정되고 동일한 5분 간격 내에 하나 이상의 청크 버전이 존재하는 경우, 그 5분 간격 내의 가장 최근 버전이 유지되고 다른 버전은 삭제될 수 있다. 압축이 백그라운드 프로세스에서 수행될 수 있고 더 오래된 PiT 인스턴스에 적용 가능할 수 있다.
도 6은 본 발명에 따른 연속적 데이터 보호 방법(600)에 의해 수행되는 단계들을 도시하는 흐름도이다. 이 방법(600)은 가상 볼륨에 대한 연속적 데이터 보호를 제공하기 위해 사용될 수 있다. 단계(602)는 복수의 동일한 크기의 청크들로 가상 볼륨을 개념적으로 분할할 수 있다. 단계(604)는 가상 볼륨의 콘텐츠를 보존하고 첫 번째 지정된 시간에 가상 볼륨으로의 직접 기록 액세스를 금지할 수 있다. 단계(606)는 첫 번째 지정된 시간에 가상 볼륨에 대한 제 1 PiT 인스턴스를 생성할 수 있다.
제 1 PiT 인스턴스는 첫 번째 지정된 시간 이후에 가상 볼륨에 대한 수정을 저장하도록 구성되는 첫 번째 PTVV를 포함할 수 있는데, 여기서 제 1 PTVV에 저장된 데이터는 덮어쓰기가 금지된다. 제 1 PiT 인스턴스는 또한 가상 볼륨의 복수의 청크 각각에 대한 엔트리를 표시하는 제 1 재할당 테이블을 포함할 수 있다. 제 1 재할당 테이블은 가상 볼륨의 복수의 청크 각각의 가장 최근 버전으로의 판독 액세스를 제공하도록 구성될 수 있다. 제 1 PiT 인스턴스는 제 1 PTVV에 저장된 청크의 이력 버전에 대한 판독 액세스를 제공하도록 구성되는 제 1 CDP 로그를 더 포함할 수 있다.
단계(608)는 가상 볼륨의 복수의 청크의 청크가 수정될 때 제 1 PTVV를 업데이트할 수 있다. 제 1 PiT 인스턴스는 두 번째 지정된 시간에 보존될 수 있으며, 추가 PiT 인스턴스는 후속 수정을 유지하기 위해 첫 번째 PiT 인스턴스의 교체에 생성될 수 있다.
도 7은 본 발명에 따른 복원 방법(700)에 의해 수행되는 단계들을 도시하는 흐름도이다. 이 방법(700)은 가상 볼륨에 대한 복원 인스턴스를 생성하기 위해 사용될 수 있다. 단계(702)는 사용자에 의해 지정되는 복원 시간을 수신할 수 있다. 단계(704)는 복원 시간 이전에 가장 최근의 생성 시간을 갖는 PiT 인스턴스를 식별할 수 있다. 단계(706)는 복원 인스턴스의 재할당 테이블로 식별된 PiT 인스턴스의 재할당 테이블을 카피할 수 있다. 단계(708)는 복원 시간에 따라 CDP 로그에 기초하여 복원 인스턴스의 재할당 테이블을 업데이트할 수 있다.
컴퓨터 기술 분야의 당업자에게 자명한 바와 같이, 본 발명에 따른 전술한 실시예는 본 명에서의 개시 내용에 따라 프로그래밍되는 종래 범용 디지털 컴퓨터를 사용하여 편리하게 구현될 수 있다는 것을 유의해야 한다. 적합한 소프트웨어 코딩이 본 명세서의 개시 내용에 기초하여 당업자에 의해 쉽게 갖추어질 것이며, 이는 소프트웨어 분야의 당업자에게 자명할 것이다.
본 발명은 소프트웨어 패키지의 형태로 편리하게 구현될 수 있다는 것을 이해할 수 있다. 이러한 소프트웨어 패키지는, 본 발명의 개시된 기능 및 프로세스를 수행하기 위해 컴퓨터를 프로그래밍하는 데에 사용되는 저장된 컴퓨터 코드를 포함하는 컴퓨터 판독 가능한 기록 매체를 사용하는 컴퓨터 프로그램 제품일 수 있다. 컴퓨터 판독 가능한 매체는 임의의 종류의 종래 플로피 디스크, 광 디스크, CD-ROM, 자기 디스크, 하드 디스크 드라이브, 자기 광 디스크, ROM, RAM, EPROM, EEPROM, 자기 또는 광 카드 또는 전자 인스트럭션을 저장하기 위한 임의의 다른 적합한 미디어를 포함할 수 있으며, 이에 한정되지 않는다.
전술한 방법의 단계의 특정 순서 또는 계층은 예시적 방안의 예들이라는 것을 이해해야 한다. 설계 선호도에 기초하여, 이 방법의 단계의 특정 순서 또는 계층은 본 발명의 범위 내에서 재배열될 수 있다는 것을 이해해야 한다. 첨부된 방법 청구항은 샘플 순서로 다양한 단계의 요소를 제공하며 제동된 특정 순서 또는 계급으로 한정되는 것을 의미하지 않는다.
본 발명 및 많은 부수적 장점들은 전술한 설명에 의해 이해될 것으로 생각된다. 또한, 본 발명의 범위 및 사상을 벗어나지 않고 또는 본질적인 장점 모두를 희생시키지 않고 그 구성요소의 형태, 구성 및 배열에 다양한 변형이 이루어질 수 있다는 것은 자명한 것으로 생각된다. 전술한 형태는 단지 예시적인 것이며, 다음의 청구범위는 이러한 변경을 포함하는 것으로 의도된다.

Claims (20)

  1. 가상 볼륨(a virtual volume)에 대한 연속적 데이터 보호를 제공하는 방법으로서,
    상기 가상 볼륨을 복수의 동일한 크기의 청크들(chunks)로 분할하는 단계와,
    상기 가상 볼륨의 콘텐츠를 보존하고 첫 번째 지정된 시간에 상기 가상 볼륨으로의 직접 기록 액세스를 금지하는 단계와,
    상기 첫 번째 지정된 시간에 상기 가상 볼륨에 대한 제 1 시점(Point-in-Time; PiT) 인스턴스를 생성하는 단계와,
    상기 가상 볼륨의 상기 복수의 청크들 중 한 청크가 수정되면 상기 제 1 PiT 인스턴스를 업데이트하는 단계를 포함하되,
    상기 제 1 PiT 인스턴스는,
    상기 첫 번째 지정된 시간 이후의 상기 가상 볼륨에 대한 수정을 저장하도록 구성되는 제 1 PiT 임시 가상 볼륨(PiT Temporary Virtual Volume; PTVV) -상기 제 1 PTVV에 저장된 데이터는 덮어쓰기(overwritten)가 금지됨- 과,
    상기 가상 볼륨의 상기 복수의 청크들 각각에 대한 엔트리를 포함하고, 상기 가상 볼륨의 상기 복수의 청크들 각각의 가장 최근 버전으로의 판독 액세스를 제공하도록 구성되는 제 1 재할당 테이블과,
    상기 제 1 PTVV에 저장된 청크의 이력 버전(historic version)으로의 판독 액세스를 제공하도록 구성되는 제 1 연속적 데이터 보호(Continuous Data Protection; CDP) 로그를 포함하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 방법.
  2. 제 1 항에 있어서,
    상기 가상 볼륨의 상기 복수의 청크들 중 한 청크가 수정되면 상기 제 1 PiT 인스턴스를 업데이트하는 단계는,
    상기 수정되는 청크의 수정된 콘텐츠를 수신하는 단계와,
    상기 제 1 PTVV에 저장된 기존 청크를 덮어쓰기 하지 않고 상기 제 1 PTVV에 상기 수정된 콘텐츠를 저장하는 단계와,
    상기 제 1 재할당 테이블에서 상기 수정되는 청크에 대응하는 엔트리의 위치를 파악하는 단계와,
    상기 수정되는 청크에 대응하는 상기 엔트리가 할당된 것으로 표시되는지를 판단하는 단계와,
    상기 수정되는 청크에 대응하는 상기 엔트리가 할당된 것으로 표시되지 않으면 상기 제 1 할당 테이블을 업데이트하는 단계와,
    상기 수정되는 청크에 대응하는 상기 엔트리가 할당된 것으로 표시되면 상기 CDP 로그 및 상기 제 1 재할당 테이블을 업데이트하는 단계를 더 포함하되,
    상기 수정되는 청크에 대응하는 상기 엔트리가 할당된 것으로 표시되지 않으면 상기 제 1 할당 테이블을 업데이트하는 단계는,
    상기 수정되는 청크에 대응하는 엔트리와 상기 제 1 PTVV에 저장된 상기 수정된 콘텐츠를 연관시키는 단계와,
    상기 수정되는 청크에 대응하는 엔트리를 할당된 것으로 표시하는 단계를 더 포함하고,
    상기 수정되는 청크에 대응하는 상기 엔트리가 할당된 것으로 표시되면 상기 CDP 로그 및 상기 제 1 재할당 테이블을 업데이트하는 단계는,
    상기 CDP 로그의 로그 엔트리를 생성하고, 상기 수정된 콘텐츠를 수신하기 전에 상기 로그 엔트리와 상기 수정되는 청크의 이력 콘텐츠를 연관시키는 단계와,
    상기 수정되는 청크에 대응하는 엔트리와 상기 제 1 PTVV에 저장된 수정된 콘텐츠를 연관시키는 단계를 더 포함하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 방법.
  3. 제 1 항에 있어서,
    상기 제 1 PiT 인스턴스의 콘텐츠를 보존하고, 상기 첫 번째 지정된 시간 이후의 두 번째 지정된 시간에 상기 제 1 PiT 인스턴스로의 직접 기록 액세스를 금지하는 단계와,
    상기 두 번째 지정된 시간에 상기 가상 볼륨에 대한 제 2 PiT 인스턴스를 생성하는 단계와,
    상기 가상 볼륨의 상기 복수의 청크들 중 한 청크가 수정되면 상기 제 2 PiT 인스턴스를 업데이트하는 단계를 더 포함하되,
    상기 제 2 PiT 인스턴스는,
    상기 두 번째 지정된 시간 이후의 상기 가상 볼륨에 대한 수정을 저장하도록 구성되는 제 2 PTVV -상기 제 2 PTVV에 저장된 데이터는 덮어쓰기가 금지됨- 와,
    상기 가상 볼륨의 상기 복수의 청크들 각각에 대한 엔트리를 포함하고, 상기 가상 볼륨의 상기 복수의 청크들 각각의 가장 최근 버전으로의 판독 액세스를 제공하도록 구성되는 제 2 재할당 테이블과,
    상기 제 2 PTVV에 저장된 청크의 이력 버전으로의 판독 액세스를 제공하도록 구성되는 제 2 CDP 로그를 포함하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 방법.
  4. 제 3 항에 있어서,
    상기 가상 볼륨의 상기 복수의 청크들 중 한 청크가 수정되면 상기 제 2 PiT 인스턴스를 업데이트하는 단계는,
    상기 수정되는 청크의 수정된 콘텐츠를 수신하는 단계와,
    상기 제 2 PTVV에 저장된 기존 청크를 덮어쓰기 하지 않고 상기 제 2 PTVV에 상기 수정된 콘텐츠를 저장하는 단계와,
    상기 제 2 재할당 테이블에서 상기 수정되는 청크에 대응하는 엔트리의 위치를 파악하는 단계와,
    상기 수정되는 청크에 대응하는 엔트리가 할당된 것으로 표시되는지를 판단하는 단계와,
    상기 수정되는 청크에 대응하는 엔트리가 할당된 것으로 표시되지 않으면 상기 제 2 재할당 테이블을 업데이트하는 단계와,
    상기 수정되는 청크에 대응하는 엔트리가 할당된 것으로 표시되면 상기 CDP 로그 및 상기 제 2 재할당 테이블을 업데이트하는 단계를 더 포함하되,
    상기 수정되는 청크에 대응하는 엔트리가 할당된 것으로 표시되지 않으면 상기 제 2 재할당 테이블을 업데이트하는 단계는,
    상기 수정되는 청크에 대응하는 엔트리와 상기 제 2 PTVV에 저장된 수정된 콘텐츠를 연관시키는 단계와,
    상기 수정되는 청크에 대응하는 엔트리를 할당된 것으로 표시하는 단계를 더 포함하고,
    상기 수정되는 청크에 대응하는 엔트리가 할당된 것으로 표시되면 상기 CDP 로그 및 상기 제 2 재할당 테이블을 업데이트하는 단계는,
    상기 CDP 로그의 로그 엔트리를 생성하고, 상기 수정된 콘텐츠를 수신하기 전에 상기 로그 엔트리와 상기 수정되는 청크의 이력 콘텐츠를 연관시키는 단계와,
    상기 수정되는 청크에 대응하는 엔트리와 상기 제 2 PTVV에 저장된 수정된 콘텐츠를 연관시키는 단계를 더 포함하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 방법.
  5. 제 1 항에 있어서,
    입도 정의(a granularity definition)를 수신하는 단계와,
    상기 입도 정의에 기초하여 PiT 인스턴스의 PTVV에 저장된 청크를 압축하는 단계를 더 포함하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 방법.
  6. 제 1 항에 있어서,
    지정된 PiT 인스턴스를 제거하는 단계와,
    상기 지정된 PiT 인스턴스의 PTVV를 이전 PiT 또는 상기 가상 볼륨 중 적어도 하나로 통합시키는 단계를 더 포함하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 방법.
  7. 제 1 항에 있어서,
    상기 가상 볼륨의 상기 복수의 청크들 중 한 청크 상에서 기록 동작이 수행되면 상기 가상 볼륨의 수정이 발생하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 방법.
  8. 제 3 항에 있어서,
    상기 첫 번째 지정된 시간과 상기 두 번째 지정된 시간 중 적어도 하나를 지정하는 것은 요구에 따른 요청(on-demand request) 또는 사전결정된 시간 간격 중 적어도 하나를 사용하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 방법.
  9. 삭제
  10. 삭제
  11. 가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템으로서,
    상기 가상 볼륨을 복수의 동일한 크기의 청크들로 분할하는 수단과,
    상기 가상 볼륨의 콘텐츠를 보존하고, 첫 번째 지정된 시간에 상기 가상 볼륨으로의 직접 기록 액세스를 금지하는 수단과,
    상기 첫 번째 지정된 시간에 상기 가상 볼륨에 대한 제 1 시점(Point-in-Time; PiT) 인스턴스를 생성하는 수단과,
    상기 가상 볼륨의 상기 복수의 청크들 중 한 청크가 수정되면 상기 제 1 PiT 인스턴스를 업데이트하는 수단을 포함하되,
    상기 제 1 PiT 인스턴스는,
    상기 첫 번째 지정된 시간 이후의 상기 가상 볼륨에 대한 수정을 저장하도록 구성되는 제 1 PiT 임시 가상 볼륨(PTVV) -상기 제 1 PTVV에 저장된 데이터는 덮어쓰기가 금지됨- 과,
    상기 가상 볼륨의 상기 복수의 청크들 각각에 대한 엔트리를 포함하고, 상기 가상 볼륨의 상기 복수의 청크들 각각의 가장 최근 버전으로의 판독 액세스를 제공하도록 구성되는 제 1 재할당 테이블과,
    상기 제 1 PTVV에 저장된 청크의 이력 버전으로의 판독 액세스를 제공하도록 구성되는 제 1 연속적 데이터 보호(CDP) 로그를 포함하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템.
  12. 제 11 항에 있어서,
    상기 가상 볼륨의 상기 복수의 청크들 중 한 청크가 수정되면 상기 제 1 PiT 인스턴스를 업데이트하는 수단은,
    상기 수정되는 청크의 수정된 콘텐츠를 수신하는 수단과,
    상기 제 1 PTVV에 저장된 기존 청크를 덮어쓰기 하지 않고 상기 제 1 PTVV 내에 수정된 콘텐츠를 저장하는 수단과,
    상기 제 1 재할당 테이블에서 상기 수정되는 청크에 대응하는 엔트리의 위치를 파악하는 수단과,
    상기 수정되는 청크에 대응하는 엔트리가 할당된 것으로 표시되는지를 판단하는 수단과,
    상기 수정되는 청크에 대응하는 엔트리가 할당된 것으로 표시되지 않으면 상기 제 1 재할당 테이블을 업데이트하는 수단과,
    상기 수정되는 청크에 대응하는 엔트리가 할당된 것으로 표시되면 상기 CDP 로그 및 상기 제 1 재할당 테이블을 업데이트하는 수단을 더 포함하되.
    상기 수정되는 청크에 대응하는 엔트리가 할당된 것으로 표시되지 않으면 상기 제 1 재할당 테이블을 업데이트하는 수단은,
    상기 수정되는 청크에 대응하는 엔트리와 상기 제 1 PTVV에 저장된 수정된 콘텐츠를 연관시키는 수단과,
    상기 수정되는 청크에 대응하는 엔트리를 할당된 것으로 표시하는 수단을 더 포함하고,
    상기 수정되는 청크에 대응하는 엔트리가 할당된 것으로 표시되면 상기 CDP 로그 및 상기 제 1 재할당 테이블을 업데이트하는 수단은,
    상기 CDP 로그의 로그 엔트리를 생성하고, 상기 수정된 콘텐츠를 수신하기 전에 상기 로그 엔트리와 상기 수정되는 청크의 이력 콘텐츠를 연관시키는 수단과,
    상기 수정되는 청크에 대응하는 엔트리와 상기 제 1 PTVV에 저장되는 수정된 콘텐츠를 연관시키는 수단을 더 포함하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템.
  13. 제 11 항에 있어서,
    상기 제 1 PiT 인스턴스의 콘텐츠를 보존하고, 상기 첫 번째 지정된 시간 이후의 두 번째 지정된 시간에 상기 제 1 PiT 인스턴스로의 직접 기록 액세스를 금지하는 수단과,
    상기 두 번째 지정된 시간에 상기 가상 볼륨에 대한 제 2 PiT 인스턴스를 생성하는 수단과,
    상기 가상 볼륨의 상기 복수의 청크들 중 한 청크가 수정되면 상기 제 2 PiT 인스턴스를 업데이트하는 수단을 더 포함하되,
    상기 제 2 PiT 인스턴스는,
    상기 두 번째 지정된 시간 이후의 상기 가상 볼륨에 대한 수정을 저장하도록 구성되는 제 2 PTVV -상기 제 2 PTVV에 저장된 데이터는 덮어쓰기가 금지됨- 와,
    상기 가상 볼륨의 상기 복수의 청크들 각각에 대한 엔트리를 포함하고, 상기 가상 볼륨의 상기 복수의 청크들 각각의 가장 최근 버전으로의 판독 액세스를 제공하도록 구성되는 제 2 재할당 테이블과,
    상기 제 2 PTVV에 저장된 청크의 이력 버전으로의 판독 액세스를 제공하도록 구성되는 제 2 CDP 로그를 포함하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템.
  14. 제 13 항에 있어서,
    상기 가상 볼륨의 상기 복수의 청크들 중 한 청크가 수정되면 상기 제 2 PiT 인스턴스를 업데이트하는 수단은,
    상기 수정되는 청크의 수정된 콘텐츠를 수신하는 수단과,
    상기 제 2 PTVV에 저장된 기존 청크를 덮어쓰기 하지 않고 상기 제 2 PTVV에 상기 수정된 콘텐츠를 저장하는 수단과,
    상기 제 2 재할당 테이블에서 상기 수정되는 청크에 대응하는 엔트리의 위치를 파악하는 수단과,
    상기 수정되는 청크에 대응하는 엔트리가 할당된 것으로 표시되는지를 판단하는 수단과,
    상기 수정되는 청크에 대응하는 엔트리가 할당된 것으로 표시되지 않으면 상기 제 2 재할당 테이블을 업데이트하는 수단과,
    상기 수정되는 청크에 대응하는 엔트리가 할당된 것으로 표시되면 상기 CDP 로그 및 상기 제 2 재할당 테이블을 업데이트하는 수단을 더 포함하되,
    상기 수정되는 청크에 대응하는 엔트리가 할당된 것으로 표시되지 않으면 상기 제 2 재할당 테이블을 업데이트하는 수단은,
    상기 수정되는 청크에 대응하는 엔트리와 상기 제 2 PTVV에 저장된 수정된 콘텐츠를 연관시키는 수단과,
    상기 수정되는 청크에 대응하는 엔트리를 할당된 것으로 표시하는 수단을 더 포함하고,
    상기 수정되는 청크에 대응하는 엔트리가 할당된 것으로 표시되면 상기 CDP 로그 및 상기 제 2 재할당 테이블을 업데이트하는 수단은,
    상기 CDP 로그의 로그 엔트리를 생성하고, 상기 수정된 콘텐츠를 수신하기 전에 상기 로그 엔트리와 상기 수정되는 청크의 이력 콘텐츠를 연관시키는 수단과,
    상기 수정되는 청크에 대응하는 엔트리와 상기 제 2 PTVV에 저장된 수정된 콘텐츠를 연관시키는 수단을 더 포함하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템.
  15. 제 11 항에 있어서,
    입도 정의(a granularity definition)를 수신하는 수단과,
    상기 입도 정의에 기초하여 PiT 인스턴스의 PTVV에 저장된 청크를 압축하는 수단을 더 포함하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템.
  16. 제 11 항에 있어서,
    지정된 PiT 인스턴스를 제거하는 수단과,
    상기 지정된 PiT 인스턴스의 PTVV를 이전 PiT 또는 상기 가상 볼륨 중 적어도 하나로 통합시키는 수단을 더 포함하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템.
  17. 제 11 항에 있어서,
    상기 가상 볼륨의 상기 복수의 청크들 중 한 청크상에서 기록 동작이 수행되면 상기 가상 볼륨의 수정이 발생하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템.
  18. 제 13 항에 있어서,
    상기 첫 번째 지정된 시간과 상기 두 번째 지정된 시간 중 적어도 하나를 지정하는 것은 요구에 따른 요청 또는 사전결정된 시간 간격 중 적어도 하나를 사용하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템.
  19. 제 11 항에 있어서,
    복원 시간을 수신하는 수단과,
    상기 복원 시간 이전인 가장 최근의 생성 시간을 갖는 시점(PiT) 인스턴스를 식별하는 수단과,
    식별된 PiT 인스턴스의 재할당 테이블과 복원 인스턴스의 재할당 테이블을 연관시키는 수단과,
    상기 식별된 PiT 인스턴스의 연속적 데이터 보호(CDP) 로그 및 상기 복원 시간에 기초하여 상기 복원 인스턴스의 상기 재할당 테이블을 업데이트하는 수단을 포함하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템.
  20. 제 19 항에 있어서,
    상기 식별된 PiT 인스턴스의 CDP 로그 및 상기 복원 시간에 기초하여 상기 복원 인스턴스의 상기 재할당 테이블을 업데이트하는 수단은,
    상기 CDP 로그에서 상기 가상 볼륨의 특정 청크에 대해 생성되는 적어도 하나의 로그 엔트리를 식별하는 수단과,
    상기 특정 청크에 대해 생성되는 적어도 하나의 로그 엔트리 중에서 상기 복원 시간 이전인 가장 최근의 생성 시간을 갖는 복원 로그 엔트리를 식별하는 수단과,
    상기 복원 인스턴스의 재할당 테이블에서 상기 특정 청크에 대한 엔트리의 위치를 파악하는 수단과,
    상기 재할당 테이블의 상기 특정 청크에 대한 엔트리를 상기 복원 로그 엔트리가 연관되는 청크 버전과 연관시키는 수단을 더 포함하는
    가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템.
KR1020100042602A 2009-09-01 2010-05-06 가상 볼륨에 대한 연속적 데이터 보호를 제공하는 방법 및 가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템 KR101268643B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/551,593 2009-09-01
US12/551,593 US8225146B2 (en) 2009-09-01 2009-09-01 Method for implementing continuous data protection utilizing allocate-on-write snapshots

Publications (2)

Publication Number Publication Date
KR20110025053A KR20110025053A (ko) 2011-03-09
KR101268643B1 true KR101268643B1 (ko) 2013-05-29

Family

ID=43087058

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100042602A KR101268643B1 (ko) 2009-09-01 2010-05-06 가상 볼륨에 대한 연속적 데이터 보호를 제공하는 방법 및 가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템

Country Status (6)

Country Link
US (1) US8225146B2 (ko)
EP (1) EP2290544B1 (ko)
JP (1) JP5172892B2 (ko)
KR (1) KR101268643B1 (ko)
CN (1) CN102004681B (ko)
TW (1) TWI396973B (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225146B2 (en) 2009-09-01 2012-07-17 Lsi Corporation Method for implementing continuous data protection utilizing allocate-on-write snapshots
CN102339321A (zh) * 2011-11-09 2012-02-01 上海盛霄云计算技术有限公司 具有版本控制的网络文件系统及方法
CN103403679B (zh) * 2011-12-31 2016-08-31 华为技术有限公司 易失性存储设备持久化过程中的数据更新方法及装置
KR101460452B1 (ko) * 2012-09-25 2014-11-12 주식회사 티엘아이 하이버네이션 기반 스냅샷 이미지 생성 장치 및 방법
JP5963324B2 (ja) 2014-08-11 2016-08-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想シーケンシャルアクセスボリュームのデータのコピー方法、システム
US9558078B2 (en) * 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots
CN104978279A (zh) * 2014-12-30 2015-10-14 宁波江东圣阳软件有限公司 一种基于数据块的持续数据保护方法
CN106547641B (zh) * 2015-09-17 2020-04-10 南京壹进制信息科技有限公司 一种基于卷的cdp备份方法
RU2609727C1 (ru) * 2015-09-24 2017-02-02 Федеральное Государственное Бюджетное Образовательное Учреждение Высшего Профессионального Образования "Ростовский Государственный Университет Путей Сообщения" Способ определения удаленности места повреждения контактной сети (варианты)
CN107357928B (zh) * 2017-07-26 2020-09-18 苏州浪潮智能科技有限公司 一种实现存储快照的方法和系统
CN107797888A (zh) * 2017-11-06 2018-03-13 长沙曙通信息科技有限公司 一种持续数据保护系统数据回滚实现方法
US11042503B1 (en) * 2017-11-22 2021-06-22 Amazon Technologies, Inc. Continuous data protection and restoration
US11269731B1 (en) 2017-11-22 2022-03-08 Amazon Technologies, Inc. Continuous data protection
CN108255645A (zh) * 2018-01-08 2018-07-06 长沙曙通信息科技有限公司 一种持续数据保护系统数据回滚实现方法
CN109445986A (zh) * 2018-09-30 2019-03-08 南京壹进制信息技术股份有限公司 一种备份数据集挂载方法和备份数据集快速恢复、挂载系统
CN112445805A (zh) * 2019-08-29 2021-03-05 北京国双科技有限公司 一种数据的查询方法及装置
CN111949252B (zh) * 2020-07-23 2023-09-08 网易(杭州)网络有限公司 一种数据处理方法、装置和电子设备
KR20240009187A (ko) * 2022-07-13 2024-01-22 쿠팡 주식회사 인스턴스 관리 방법 및 이를 위한 전자 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225146B2 (en) 2009-09-01 2012-07-17 Lsi Corporation Method for implementing continuous data protection utilizing allocate-on-write snapshots

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6212531B1 (en) 1998-01-13 2001-04-03 International Business Machines Corporation Method for implementing point-in-time copy using a snapshot function
US6732125B1 (en) 2000-09-08 2004-05-04 Storage Technology Corporation Self archiving log structured volume with intrinsic data protection
US7383381B1 (en) 2003-02-28 2008-06-03 Sun Microsystems, Inc. Systems and methods for configuring a storage virtualization environment
US7111136B2 (en) * 2003-06-26 2006-09-19 Hitachi, Ltd. Method and apparatus for backup and recovery system using storage based journaling
US7406488B2 (en) 2004-02-04 2008-07-29 Netapp Method and system for maintaining data in a continuous data protection system
US7653800B2 (en) 2005-08-03 2010-01-26 International Business Machines Corporation Continuous data protection
US7836266B2 (en) 2005-09-19 2010-11-16 International Business Machines Corporation Managing snapshot history in a data storage system
JP4749112B2 (ja) * 2005-10-07 2011-08-17 株式会社日立製作所 記憶制御システム及び方法
WO2007075587A2 (en) 2005-12-19 2007-07-05 Commvault Systems, Inc. Systems and methods for performing data replication
US20070245107A1 (en) 2006-04-14 2007-10-18 Hitachi, Ltd. System and method for processing a plurality kinds of event markers of a continuous data protection
US7769723B2 (en) 2006-04-28 2010-08-03 Netapp, Inc. System and method for providing continuous data protection
JP5124989B2 (ja) * 2006-05-26 2013-01-23 日本電気株式会社 ストレージシステム及びデータ保護方法とプログラム
US20080027998A1 (en) * 2006-07-27 2008-01-31 Hitachi, Ltd. Method and apparatus of continuous data protection for NAS
GB0615779D0 (en) 2006-08-09 2006-09-20 Ibm Storage management system with integrated continuous data protection and remote copy
US20080091744A1 (en) 2006-10-11 2008-04-17 Hidehisa Shitomi Method and apparatus for indexing and searching data in a storage system
US7711712B2 (en) 2007-03-12 2010-05-04 Hitachi, Ltd. System and method for managing consistency among volumes based on application information
JP4906562B2 (ja) * 2007-04-02 2012-03-28 株式会社日立製作所 ストレージ装置及びボリューム復元方法
US20080281876A1 (en) 2007-05-10 2008-11-13 Hitachi, Ltd. Methods and apparatus to recover data and configuration of storage system
JP4972457B2 (ja) 2007-05-11 2012-07-11 株式会社日立製作所 記憶制御装置、記憶制御装置の制御方法及び情報処理システム
US9032154B2 (en) * 2007-12-13 2015-05-12 Sandisk Technologies Inc. Integration of secure data transfer applications for generic IO devices
US8825758B2 (en) * 2007-12-14 2014-09-02 Microsoft Corporation Collaborative authoring modes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225146B2 (en) 2009-09-01 2012-07-17 Lsi Corporation Method for implementing continuous data protection utilizing allocate-on-write snapshots

Also Published As

Publication number Publication date
US8225146B2 (en) 2012-07-17
EP2290544A1 (en) 2011-03-02
TWI396973B (zh) 2013-05-21
JP2011054153A (ja) 2011-03-17
TW201109926A (en) 2011-03-16
JP5172892B2 (ja) 2013-03-27
KR20110025053A (ko) 2011-03-09
CN102004681A (zh) 2011-04-06
CN102004681B (zh) 2014-09-24
US20110055624A1 (en) 2011-03-03
EP2290544B1 (en) 2013-03-27

Similar Documents

Publication Publication Date Title
KR101268643B1 (ko) 가상 볼륨에 대한 연속적 데이터 보호를 제공하는 방법 및 가상 볼륨에 대한 연속적 데이터 보호를 제공하는 시스템
EP3098715B1 (en) System and method for object-based continuous data protection
US8560790B2 (en) Incremental backup of source to target storage volume
US7406488B2 (en) Method and system for maintaining data in a continuous data protection system
US7849257B1 (en) Method and apparatus for storing and retrieving data
US7243197B2 (en) Method and apparatus for backup and recovery using storage based journaling
US7237076B2 (en) Method of maintaining a plurality of snapshots, server apparatus and storage apparatus
US8296264B1 (en) Method and system for file-level continuous data protection
KR101813786B1 (ko) Ssd 상의 기록-시-복사를 위한 시스템 및 방법
US20110022811A1 (en) Information backup/restoration processing apparatus and information backup/restoration processing system
EP2955633B1 (en) Data erasing method and device for flash memory
KR102033323B1 (ko) 플래시 메모리에서 사용하는 로그 구조 파일시스템의 메타데이터 저장 방법
US8150851B2 (en) Data processing apparatus and method of processing data
US20160292025A1 (en) Methods to identify, handle and recover from suspect ssds in a clustered flash array
US20160328413A1 (en) Recovering data lost in data de-duplication system
JP2012243385A (ja) 直列のアドレス間接参照メタデータ記憶を備えた記憶装置
US8818950B2 (en) Method and apparatus for localized protected imaging of a file system
US20150193315A1 (en) Method and device for managing multiple snapshots of data strorage device
TW201619971A (zh) 耦合至主機dram之綠能與非固態硬碟(nand ssd)驅動器、gnsd應用程式及其操作方法和電腦系統主機、增加非揮發快閃記憶儲存器耐久性之方法
WO2007103141A2 (en) Method and apparatus for providing virtual machine backup
US20230237020A1 (en) Container-based erasure coding
Kim et al. RAIZN: Redundant array of independent zoned namespaces
JP2006011811A (ja) 記憶制御システム及び記憶制御方法
JP2020204932A (ja) ストレージシステムおよび履歴情報管理方法
US20240176489A1 (en) Priority based raid (redundant array of independent disks) rebuild for a data storage system

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20180510

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee