KR20110050452A - 가상 디스크를 포함하는 컴퓨터의 복구 - Google Patents

가상 디스크를 포함하는 컴퓨터의 복구 Download PDF

Info

Publication number
KR20110050452A
KR20110050452A KR1020117003397A KR20117003397A KR20110050452A KR 20110050452 A KR20110050452 A KR 20110050452A KR 1020117003397 A KR1020117003397 A KR 1020117003397A KR 20117003397 A KR20117003397 A KR 20117003397A KR 20110050452 A KR20110050452 A KR 20110050452A
Authority
KR
South Korea
Prior art keywords
virtual disk
disk
virtual
volume
disks
Prior art date
Application number
KR1020117003397A
Other languages
English (en)
Other versions
KR101591550B1 (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 KR20110050452A publication Critical patent/KR20110050452A/ko
Application granted granted Critical
Publication of KR101591550B1 publication Critical patent/KR101591550B1/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/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

가상 디스크의 백업 및/또는 복원이 기술되어 있다. 일반적으로, 가상 디스크를 복원하기 위한 메타데이터가 백업된다. 디스크를 복원하기 위해, 실제 디스크가 만들어지고, 실제 디스크의 파티션 상에 가상 디스크가 만들어진다. 블록 레벨 복원을 비롯하여, 중첩된 가상 디스크에 대한 백업 및 복원에 대해 기술되어 있다. 중요 가상 디스크 및 그의 컨테이너의 백업, 그리고 기본 디스크 및 동적 볼륨과 관련한 가상 디스크 백업이 추가로 기술되어 있다.

Description

가상 디스크를 포함하는 컴퓨터의 복구{RECOVERY OF A COMPUTER THAT INCLUDES VIRTUAL DISKS}
최근의 Microsoft® Windows®-기반 운영 체제에서 지원되는 가상 컴퓨터 기술은 하나의 실제 컴퓨팅 기계가 다수의 운영 체제를 동시에 실행(예를 들어, 다수의 서버 환경을 제공)할 수 있게 해준다. 이러한 기술에서, 가상 디스크는 실제 디스크 드라이브 상에 또는 다른 가상 디스크 드라이브 상에 저장될 수 있는 파일이지만, 이 파일이 디스크 장치로서 사용(노출)될 수 있게 해주는 형식으로 되어 있다. 예를 들어, 가상 디스크는 Microsoft® VHD(Virtual Hard Disk) 형식으로 되어 있을 수 있으며, 그로써 VHD 형식을 이해하는 어떤 드라이버라도 VHD 파일을 디스크 장치로서 탑재할 수 있다, 즉 가상 디스크는 VHD 드라이버가 VHD 파일을 탑재하게 함으로써 만들어지는 디스크 장치이다. 이러한 가상 디스크는 또한 실제 컴퓨터 상에서 실행되는 Windows® 운영 체제 상에서 만들어져 노출될 수 있다. 이들 가상 디스크는 중요한 운영 체제 파일(예를 들어, 부팅 볼륨)을 저장하는 데 사용될 수 있다.
이러한 운영 체제는 또한 ASR(automated system recovery)이라고 하는 기술 등을 통해 완전 복구 지원을 제공할 수 있다. 이 기술은 백업된 컴퓨터 시스템 데이터(상태를 포함함)가 다른 실제 컴퓨터(예를 들어, 새로운 교체 컴퓨터, 새로운 디스크를 갖는 수리된 컴퓨터 등) 상에 다시 만들어질 수 있게 해준다. 일반적으로, ASR은 백업/복원 응용 프로그램이 컴퓨터의 디스크 구성을 백업 및 복원하는 기능을 제공한다. 그렇지만, 기존의 ASR 기술은 가상 디스크에 대처하지 못하고 있다.
[발명의 요약]
이 요약은 이하에서 상세한 설명에 더 기술되는 일련의 대표적인 개념들을 간략화된 형태로 소개하기 위해 제공된 것이다. 이 요약은 청구된 발명 대상의 주요 특징들 또는 필수적인 특징들을 확인하기 위한 것이 아니며, 청구된 발명 대상의 범위를 제한하는 방식으로 사용되기 위한 것도 아니다.
간략히 말하면, 본 명세서에 기술된 발명 대상의 다양한 측면은 백업된 메타데이터로부터 컴퓨팅 장치의 가상 디스크가 복원될 수 있는 기술에 관한 것이다. 일반적으로, 가상 디스크를 복원하는 것은 실제 디스크를 만드는 것, 및 실제 디스크의 파티션 상에 가상 디스크를 만드는 것을 포함한다.
한 측면에서, 가상 디스크가 중첩(nest)될 수 있다. 이러한 중첩된 가상 디스크를 복원하기 위해, 상위 레벨에 있는 가상 디스크가 임의의 하위 레벨의 중첩된 가상 디스크보다 먼저 복원된다. 이것은 보통의 파일 복원 및 블록 레벨 복원을 제공한다.
한 측면에서, 가상 디스크를 백업하는 것도 관리된다. 백업은 디스크가 백업과 관련하여 중요한지 여부를 평가하고, 중요한 경우, 역시 백업될 필요가 있는 디스크의 모든 컨테이너를 중요(critical)라고 표시하는 것을 포함한다. 백업은 또한 기본 디스크 및 동적 볼륨과 관련하여 가상 디스크 백업과 구분된다.
다른 이점들이, 도면들과 관련하여 살펴볼 때, 이하의 상세한 설명으로부터 명백하게 될 수 있다.
본 발명이 유사한 참조 번호가 유사한 구성요소를 나타내는 첨부 도면에 제한이 아닌 일례로서 도시되어 있다.
도 1은 가상 디스크를 백업하고 복원하기 위해 포함하는 백업 및 복원 시스템 내의 예시적인 구성요소를 나타내는 블록도.
도 2는 가상 하드 디스크 상의 단일 볼륨을 나타낸 도면.
도 3은 가상 하드 디스크 상의 다중 볼륨을 나타낸 도면.
도 4는 중첩된 가상 하드 디스크를 나타낸 도면.
도 5는 가상 디스크를 포함하는 컴퓨터를 복원하기 위해 취해질 수 있는 예시적인 단계들을 나타낸 흐름도.
도 6은 본 발명의 다양한 측면이 구현될 수 있는 컴퓨팅 환경의 예시적인 일례를 나타낸 도면.
본 명세서에 설명된 기술의 다양한 측면은 일반적으로, 디스크들 중 하나 이상의 디스크가 하나 이상의 실제 디스크 상에 저장된 가상 디스크인 경우를 비롯하여, 컴퓨터의 디스크 구성을 백업하고 복원하는 기능을 제공하는 운영 체제(또는 유사한 구성요소)에 관한 것이다. 이를 위해, 본 명세서에 기술된 바와 같이, 이것은 백업 시에 가상 디스크 및 가상 디스크의 실제 디스크 또는 다른 가상 디스크 파티션에 대한 종속성에 관한 메타데이터 정보를 파일[한 일례에서, "디스크-구성-파일(disk-config-file)" 등]에 저장함으로써 달성된다.
복구 시에, 디스크 레이아웃을 다시 만들기 위해 디스크-구성-파일에 액세스한다. 보다 상세하게는, 실제 디스크가 먼저 만들어진다. 그 후에, 가상 디스크가 만들어진다. 이 프로세스는 가상 디스크가 다른 가상 디스크를 포함하는 상황을 처리하기 위해 추가로 중첩될 수 있다. 가상 디스크를 가지는 파티션은 백업 시에 이용가능한 것과 동일한 네임스페이스에 탑재된다. 이것에 의해 백업 공급업체 등은, 가상 디스크가 만들어지고 동일한 네임스페이스에 탑재된 후에, 데이터를 가상 디스크에 복원할 수 있다.
환언하면, 한 예시적인 프로세스는 실제 디스크를 만들고, 파티션하여 실제 디스크에 대한 볼륨을 만든다. 이어서, 제1 중첩 레벨(레벨 1)에 있는 임의의 가상 디스크(들)가 만들어지고, 그 후에 이 프로세스는 파티션하여 레벨 1 가상 디스크(들)에 대한 볼륨을 만든다. 하나 이상의 레벨 2 가상 디스크가 있는 경우, 이들은 파티션하여 레벨 2 가상 디스크에 대한 볼륨을 만드는 것에 의해 만들어지며, 최하위 중첩 레벨까지 마찬가지로 행해진다. 저장된 메타데이터는 가상 디스크의 계층화된(레벨별) 다시 만들기를 위한 각각의 가상 디스크의 중첩 레벨을 찾아내는 데 충분한 정보를 포함한다. 이러한 레벨별 가상 디스크 다시 만들기는, 이하에서 기술하는 바와 같이, 각각의 레벨 내에서의 블록 레벨 동작을 가능하게 해준다.
도 1을 참조하면, 하나 이상의 가상 디스크를 포함할 수 있는 디스크(104)를 가지는 컴퓨터 시스템(102)의 완전 복구를 위해 사용되는 구성요소를 포함하는 예시적인 블록도가 도시되어 있다. 백업 메커니즘(106)은, 이하에서 설명하는 바와 같이, 특정 파일 및 메타데이터를 백업/복원 미디어(110)에 백업하는 가상 디스크 백업 메커니즘(108)을 포함한다.
나중에, 점선으로 나타낸 바와 같이, 가상 디스크 복원 메커니즘(114)(역시 이하에서 기술함)을 포함하는 복원 메커니즘(112)은 파일 및 메타데이터를 대응하는 다시 만들어진 디스크(118)를 가지는 다시 만들어진 컴퓨터 시스템(116)에 복원한다. 복원 메커니즘(112)은 메타데이터를 사용하여 실제 디스크를 만들고, 이어서 임의의 중첩된 가상 디스크를 포함하는 가상 디스크를 만든다.
한 예시적인 Windows®-기반 구현에서, 백업 메커니즘(106) 및 복원 메커니즘(112)은 ASR(automated system recovery) 구성요소에 제공되어 있다. 그렇지만, 다른 환경에 있는 및/또는 다른 파일 형식 및 메타데이터를 가지는 것을 비롯한 어느 프로그램이라도 본 명세서에 기술된 기술을 구현할 수 있다. 그에 따라, 본 발명은 본 명세서에 기술된 임의의 특정의 실시예, 측면, 개념, 구조, 기능, 또는 일례로 제한되지 않는다. 오히려, 본 명세서에 기술된 임의의 실시예, 측면, 개념, 구조, 기능 또는 일례는 제한하는 것이 아니며, 본 발명은 일반적으로 컴퓨팅 및 데이터 저장/액세스에서 이점 및 장점을 제공하는 다양한 방식으로 사용될 수 있다.
시스템은 다수의 가상 디스크를 가질 수 있다. 한 예시적인 시나리오는 (실제 파티션인) 시스템 파티션에 있는 가상 디스크 파일에 의해 뒷받침되는 부팅 볼륨이 가상 디스크 상에 있을 때이다. 이 특정의 시나리오에 부가하여, 일반적으로 실제 볼륨 상에 있거나 가상 디스크 상에 있는 볼륨 상에 있는 가상 디스크 파일에 의해 뒷받침되는 가상 디스크가 있다. 본 명세서에 기술된 백업 및 복원(예를 들어, ASR)은 이러한 시나리오에서 디스크 레이아웃의 백업 및 복원을 처리한다.
도 2 내지 도 4는 다양한 예시적인 시나리오를 나타낸 것이다. 가상 디스크 상의 단일 볼륨을 나타내는 도 2에서, E:는 가상 디스크[예를 들어, 부팅 볼륨(즉, 이 일례에서, 볼륨 C:)을 뒷받침하는 VHD 파일 boot.vhd]에 대한 컨테이너이기도 한 실제 볼륨이다. C: 볼륨은 또한 하나 이상의 응용 프로그램이 설치되어 있을 수 있다.
도 3은 단일 가상 디스크 상의 다중 볼륨을 나타낸 것이다. 도 3에서, E:는 C:(부팅 볼륨) 및 다른 볼륨(볼륨 D)을 포함하는, 가상 디스크 파일(예를 들어, boot.vhd)에 대한 컨테이너이기도 한 볼륨이다.
도 4는 중첩된 가상 디스크를 나타내고 있다. 도 4에서, E:는 부팅 볼륨 C:를 뒷받침하는 부팅 가상 디스크(예를 들어, boot.vhd)에 대한 컨테이너이기도 한 실제 볼륨이다. 부팅 가상 디스크는 또한, 볼륨 D:를 뒷받침하고 하나 이상의 응용 프로그램을 가지고 있는 응용 프로그램 가상 디스크(예를 들어, App.vhd)도 포함하고 있다.
이하에서는 ASR(automated system recovery)이 백업 및 복원 메커니즘을 제공하는 Windows®-기반 환경에서의 백업 및 복원의 일례에 대해 설명한다. 이 일례에서, 가상 디스크에 대응하는 파일은 VHD 형식으로 유지되고, 그 형식에 대한 적절한 메타데이터가 획득되어 유지된다. 그렇지만, 잘 알 수 있는 바와 같이, 어떤 환경이라도 예시된 기술로부터 이득을 볼 수 있고 및/또는 어떤 적당한 파일 형식이라도 그 형식에 대한 적절한 메타데이터와 함께 사용될 수 있다.
이 일례에서, "팩(pack)"이라는 용어는 하나 이상의 동적 디스크를 포함하는 디스크 그룹(일군의 디스크)을 말한다(여기서, 동적 디스크는 공지된 개념이며, 일반적으로 디스크 그룹와 연관되고 동일한 구성 데이터의 복제본을 저장한다).
ASR 구현에서, AsrSystem은 디스크의 파티션 레이아웃 및 기본 볼륨에 대한 볼륨 GUID을 백업하고 다시 만드는 일을 맡은 모듈이다. AsrLdm은 팩, 팩 내의 동적 디스크, 및 팩 내의 동적 볼륨을 백업하고 다시 만드는 일을 맡은 모듈이다. AsrFmt는 볼륨을 백업하고 다시 만들어진 볼륨을 복원 및 포맷팅하는 모듈이다.
가상 디스크 파일은 다수의 (예를 들어, VHD) 파일을 포함할 수 있다. 새로운 가상 디스크가 기존의 가상 디스크를 기반으로 하면서 몇가지 변경되어야만 하는 경우와 같은 때에 이것이 유용하다. 이것을 차이점 보관(differencing)이라고 하며, 유의할 점은, 가상 디스크를 차이점 보관하기 위해, 그의 전체 체인이 다시 만들어져야 한다는 것이다.
ASR 환경에서의 백업을 살펴보면, ASR은 가상 디스크를 백업한다. 일반적으로, 백업은 복원 동안에 가상 디스크를 다시 만드는 데 사용될 수 있는 충분한 정보를 포함한다. 한 예시적인 구현에서, ASR은 다음과 같은 Win32 API 및 IOCTL을 사용하여 백업 시에 가상 디스크 정보를 저장하고 복원 시에 가상 디스크를 다시 만든다.
백업
1. GetStorageDependencyInformation.
a. 이 API는, 백업 동안에, 탑재된 가상 디스크에 관한 메타데이터 정보를 찾아내는 데 사용된다. 이 API는 이러한 정보, 예를 들어, 가상 디스크 파일(들)의 파일 경로(차이점 보관 가상 디스크의 경우 2개 이상) 그리고 가상 디스크가 스파스(sparse)인지 고정(fixed)인지 및 가상 디스크의 블록 크기 등의 가상 디스크의 기타 특성을 반환한다.
b. 가상 디스크와 관련하여, 이 API는 가상 디스크 플래그 및 차이점 보관 디스크 체인 시퀀스 정보 등의 부가의 정보를 반환할 수 있다.
복원
2. CreateVirtualDisk.
a. 이 API는 백업 시에 GetStorageDependencylnformation에 의해 반환된 정보에 기초하여 가상 디스크 파일을 다시 만드는 데 사용된다.
b. 이 API는 각각의 가상 디스크 파일을 다시 만드는 데 사용된다.
3. SurfaceVirtualDisk.
a. 가상 디스크 파일이 만들어지면, 이 API는 가상 디스크 파일을 디스크로서 노출시키는 데 사용된다.
4. 가상 디스크에 볼륨을 다시 만들기
백업 VSS(Volume Shadow (Copy) Service) 구성요소와 관련하여, 실제 디스크 및 볼륨에서와 같이, ASR 작성자(ASR writer)는 가상 디스크 및 그 안에 있는 볼륨을 구성요소로서 보고한다. 가상 디스크에 대한 구성요소는 ASR 메타데이터를 보는 누구에게라도 도움이 되는 정보를 전달하기 위해 "This is a virtual disk" 등과 같은 캡션을 포함한다. 한 예시적인 구현에서, 디스크 구성요소는 다음과 같이 되어 있다:
Figure pct00001
ASR 메타데이터와 관련하여, 가상 디스크를 다시 만들기 위해, 디스크 레이아웃에 관한 정보 이외의 부가의 정보(가상 디스크의 파일 경로 및 가상 디스크 유형 등)가 포함될 수 있다. 각각의 가상 디스크의 레이아웃은 <MbrDisk> 또는 <GptDisk>노드에 저장되며, 이는 실제 디스크 레이아웃이 저장되는 방법과 동일하다. 참조를 위해, MBR 노드가 여기에 재현되어 있으며, 그의 형식에 어떤 변화도 없다:
Figure pct00002
가상 디스크에 대한 부가의 정보가 다음과 같이 새로운 노드 <VirtualDisk>에 저장된다:
Figure pct00003
유의할 점은, 한 구현에서 일반적으로 테스트 및 개발을 단순화하기 위해 새로운 노드가 만들어졌다는 것이다. <VirtualDisk> 노드에서의 DeviceNumber 특성은 <MbrDisk> 노드에서 그의 레이아웃 정보를 탐색하는 데 사용된다. 게다가, 유의할 점은, 시퀀스 0를 갖는 Vhdlnfo 노드가 가상 디스크를 VHD 형식으로 표현하는 VHD 파일이라는 것이다. 0보다 큰 시퀀스를 갖는 Vhdlnfo 노드는 이 VHD가 링크되는 차이점 보관 VHD를 나타낸다. Flag 값은 VHD의 유형(동적 또는 고정)을 나타낸다. BlockSize는 VHD 파일 내부에서 사용되는 데이터 블록의 크기이다. 이는 VHD 형식의 일부이다. 이는 바이트 단위로 되어 있다.
가상 디스크 정보는 다음과 같이 발견된다:
디스크에 대한 핸들을 연다. InfoLevel을 2로 설정하고 GetParents를 TRUE로 설정한 상태에서, GetStorageDependencylnformation를 호출한다.
반환된 상태가 STATUS_INVALID_DEVICE_REQUEST인 경우, 이는 가상 디스크가 아니고, 그렇지 않고 성공하는 경우, 이는 가상 디스크이다.
IOCTL은 다음과 같이 정의되는 STORAGE_QUERY_DEPENDENT_DISK_RESPONSE를 반환한다.
Figure pct00004
이는 각각의 차이점 보관 디스크마다 하나씩 STORAGE_QUERY_DEPENDENT_DISK_LEV2_ENTRY 구조체의 어레이를 포함한다:
Figure pct00005
이 API는 차이점 보관 디스크의 가상 디스크 파일 간의 시퀀스 정보를 반환한다. ASR은 최하위(leaf-most) 가상 디스크 파일을 (예를 들어, 종속성 그래프로 표현되는) 차이점 보관 체인 내의 다른 것들과 구분한다.
특정 볼륨/디스크를 "중요(critical)"한 것이라고 하고 "중요"라고 표시한다. 실제 디스크의 경우에서와 같이, 탑재된 가상 디스크 내부의 볼륨이 중요한 경우, 가상 디스크 및 그가 속하는 팩이 '중요'라고 표시된다. 게다가, 가상 디스크가 (그의 가상 디스크 파일이 존재하는) 실제 디스크 또는 가상 디스크 상의 볼륨(들)에 의존하기 때문에, 부모도 역시 '중요'라고 표시되어야 한다.
부모 볼륨이 기본 디스크 상에 있을 때와 (예를 들어, 소프트웨어 RAID에서와 같이) 부모 볼륨이 동적 볼륨일 때를 비롯한 2가지 경우가 고려되어야 한다. 부모 볼륨이 기본 디스크 상에 있을 때, 탑재된 가상 디스크는 '중요'라고 표시되고, 탑재된 파티션도 마찬가지이며, 부모 볼륨이 기본 디스크 상에 있기 때문에, 그의 부모 파티션 및 부모 디스크도 역시 '중요'라고 표시된다.
(예를 들어, 소프트웨어 RAID에서와 같이) 부모 볼륨이 동적 볼륨일 때, 탑재된 가상 디스크는 '중요'라고 표시되며, 탑재된 파티션도 마찬가지이다. 일반적으로, 동적 부모 볼륨은 그와 연관된 파티션을 가지지 않는다. 일반적으로, 부모 볼륨을 포함하는 디스크와 동일한 팩에 있는 동적 디스크는 '중요'라고 표시되며, 예를 들어, 중요한 볼륨 정보가 <AsrLdm> 노드에 표시되고, 여기서 팩 및 볼륨은 적절히 표시된 "IsCritical"을 가진다.
게다가, 유의할 점은, 가상 디스크가 백업 시에 제외되는 디스크에 의존할 수 있으며, 의존하고 있고 가상 디스크가 '중요'로 되어 있는 경우, 백업이 실패한다는 것이다. 그렇지 않은 경우, 가상 디스크가 '제외'로 표시되고, 복원 시에 포함되더라도, 복원 시에 다시 만들어지지 않는다.
복원에 관련된 측면들을 살펴보면, 복원 동안에, ASR은 먼저 가상 디스크를 다시 만들고, 이를 탑재하며, 이어서 그 안에 볼륨을 다시 만든다. 그렇지만, 그것이 행해질 수 있기 전에, 가상 디스크가 의존하는 파티션 및 볼륨이 다시 만들어져야 한다. 이들 종속성은 실제 또는 가상일 수 있다.
그 결과, 디스크 다시 만들기가 계층별로 행해질 필요가 있다, 즉 실제 디스크부터 시작하여, 이어서 실제 디스크에만 의존하는 가상 디스크를 다시 만들고, 이어서 지금까지 다시 만들어진 디스크에만 의존하는 가상 디스크를 다시 만들며, 이하 마찬가지이다. 따라서 가상 디스크를 다시 만드는 전체적인 프로세스에 포함되는 3가지 단계가 있다:
a) ASR 메타데이터로부터 가상 디스크의 디스크 레이아웃 및 종속성 정보를 추출함.
b) 종속성 정보를 사용하여 종속성이 생성된 가상 디스크를 식별함.
c) 단계 (b)에서 식별된 가상 디스크를 다시 만듦.
d) 단계 (c)에서 만들어진 가상 디스크 내부에 파티션 및 볼륨을 다시 만듦.
모든 VHD가 다시 만들어질 때까지 또는 더 이상 VHD가 다시 만들어질 수 없을 때까지 단계 b, c 및 d가 반복된다. 볼륨을 이미지로서 복원("블록 레벨 복원")하는 백업 응용 프로그램의 경우에, 응용 프로그램은 단계 (d) 이후 그 다음 중첩 레벨에 대해 단계 b, c 및 d가 반복될 수 있기 이전에 이미지를 복원해야 한다.
복원을 요청하는 데 사용되는 프로그램(또는 프로그램들)(요청자)는 다음과 같이 SetRestoreOptions을 사용하여 가상 디스크의 다시 만들기를 건너뛰기로 선택할 수 있다:
Figure pct00006
복원 옵션 문자열에 "Recreate VHD=0" 하위 문자열이 존재하는 경우, ASR은 어떤 가상 디스크 파일 및 어떤 가상 디스크 디스크도 다시 만들지 않는다.
복원을 위한 가상 디스크 정보의 추출을 참조하면, <MbrDisk> 및 <GptDisk> 노드가 다른 디스크에서와 같이 역직렬화되고, 그로써 가상 디스크에 대한 레이아웃 정보를 알게 된다. 이 이후에, <AsrVhd> 노드가 역직렬화된다. 가상 디스크 파일 및 임의의 부모 가상 디스크 파일에 관한 정보가 다음과 같이 기존의 struct ASR_DISK_INFO 내에 부가의 정보로서 유지된다:
Figure pct00007
Figure pct00008
Figure pct00009
그의 종속성 모두가 생성된 경우에만 가상 디스크가 만들어진다. 가상 디스크는 가상 디스크의 가상 디스크 파일이 존재하는 각각의 볼륨에 의존한다. 각각의 이러한 볼륨이 다시 만들어진 경우, 가상 디스크가 다시 만들어진다.
기존의 AsrSys, AsrLdm 및 AsrFmt 사전-복원이 완료된 후에 가상 디스크 다시 만들기 단계가 수행된다. 이것은 가상 디스크 파일이 존재하는 실제 볼륨(기본 또는 동적)이 이미 다시 만들어져 있다는 것을 보장해준다. AsrSys가 디스크 할당을 위해, 다시 만들기를 위해, 그리고 모든 중요 볼륨이 다시 만들어졌는지를 확인하기 위해 가상 디스크를 고려하지 않도록 수정되었다.
가상 디스크 다시 만들기 동안, 다음과 같은 예시적인 단계들이 수행될 수 있다:
a. 가상 디스크를 표현하는 각각의 ASR_DISK_INFO pVhdDisk에 대해, do
b. {
c. ASR_VHD_INFO: : rgwszVHDFilenames를 사용하여, 마지막 가상 디스크 파일로부터 시작하여 가상 디스크 파일이 다시 만들어지고, 따라서 차이점 보관 체인이 적절히 다시 만들어진다.
- 가상 디스크 파일이 제외되는 디스크 상에 존재하는 경우, 가상 디스크 파일이 다시 만들어지지 않는다.
- 가상 디스크 파일이 존재하는 경우, 그의 대응하는 파일(예를 들어, VHD)이 먼저 분리되고, 가상 디스크 파일이 삭제된다.
d. 가상 디스크가 차이점 보관 체인의 리프인 ASR_VHD_INFO::rgwszVHDFilenames[0]를 사용하여 탑재된다.
e. 가상 디스크를 탑재할 시에, 그의 장치 경로가 반환된다.
f. 이 경로를 사용하여, 새로운 ASR_DISK_INFO 개체인 pAssignedVHD가 만들어지고 초기화되며 복원 동안에 시스템 상에서 이용가능한 디스크의 목록(AsrSystem::m_pDiskListDuringRestore)에 추가된다.
g. 백업에서 특정의 가상 디스크에 대한 가상 디스크가 만들어져 있기 때문에, 이 메커니즘이 직접 디스크 할당을 수행하다: pVhdDisk->AssignedTo이 pAssignedVHD로 설정되고, pAssignedVHD->AssignedTo이 pVhdDisk로 설정된다.
h. 실제 디스크가 다시 만들어지는 것처럼 탑재된 가상 디스크가 다시 만들어진다.
i. 가상 디스크가 중요로 되어 있는 경우, 이 단계 동안에 어떤 실패라도 있게 되면 복원 전체가 실패하게 된다.
j. }
이하의 API는 가상 디스크 파일(들)을 다시 만드는 데 사용된다:
Figure pct00010
Figure pct00011
가상 디스크를 탑재(즉, 노출)하는 API -
Figure pct00012
Figure pct00013
이미 탑재된 가상 디스크를 분리시키는 것과 관련하여, 가상 디스크를 다시 만들기 전에, 가상 디스크 파일이 이미 존재하고 탑재되어 있는 경우, 장치 및 파일이 제거된다. 가상 디스크를 분리하는 하나의 API는 다음과 같다:
Figure pct00014
장치를 분리하기 위해, 그의 CallerContext 및 DiskContext가 필요하다. 이를 위해, ASR은 네이티브 가상 디스크 API인 GetStorageDependencylnformation를 사용하여 주어진 볼륨 상에 가상 디스크 파일을 가지는 탑재된 가상 디스크를 열거한다.
각각의 가상 디스크에 대해 분리를 행하는 것이 비효율적인데, 그 이유는 모든 탑재된 가상 디스크가 매번 열거되어야만 하기 때문이다. 따라서, 효율을 위해, 가상 디스크를 분리하는 것이 가상 디스크를 다시 만들기 전에 1회 동작으로서 행해진다. 이는 다음과 같이 행해진다:
다시 만들 필요가 있는 가상 디스크 파일이 존재하는 볼륨 이름의 목록(목록에 중복되는 것이 없음)을 컴파일한다.
1. 각각의 볼륨에 대해, GetParents=FALSE이고 InfoLevel=1인 상태에서 GetStorageDependencylnformation를 호출함
2. 각각의 반환된 STORAGE_DEPENDENCY_INFO_LEVEL1에 대해, 그의 CallerContext 및 DiskContext를 사용하여 가상 디스크를 분리함
3. 유효성 검사를 위해, 가상 디스크 다시 만들기 단계 후에, ASR은 ASR 메타데이터에 존재하는 중요 디스크(critical disk)가 다시 만들어졌는지를 확인한다.
각각의 레벨의 가상 디스크가 만들어져 파티션된 이후 그 다음 레벨의 VHD 파일이 만들어질 수 있기 이전에, 블록 레벨 복원이 호출될 필요가 있다.
이러한 응용 프로그램은 또한 SkipVHDRe-creation 옵션을 사용하여, ASR에게 어떤 가상 디스크도 다시 만들려고 시도하지 않도록 지시한다.
중첩된 가상 디스크의 계층별 다시 만들기를 참조하면, 그의 가상 디스크 파일이 다른 가상 디스크 또는 실제 볼륨 상에 있는 가상 디스크에서와 같이 더 많은 가상 디스크 계층이 있을 수 있기 때문에, 도 5에 개괄적으로 나타내어져 있는 것처럼 다음과 같이 가상 디스크가 레벨별로 만들어진다.
1) 실제 디스크 상의 파티션 및 볼륨을 다시 만든다(단계 501).
2) 가상 디스크 레벨 1을 다시 만든다(단계 503) - ASR 메타데이터를 사용하여, 그의 모든 파일이 단계 1에서 다시 만들어진 볼륨 상에 있는 가상 디스크를 찾아낸다.
가상 디스크의 파일을 다시 만들고[레벨 1에 대한 단계(504)], 가상 디스크 파일을 가상 디스크로서 노출시켜 그에 파티션 및 볼륨을 다시 만들고, 파티션/볼륨을 포맷한다[레벨 1에 대한 단계(505)].
3) 가상 디스크 레벨 2를 다시 만든다[단계(509)가 레벨을 상승시키고, 이는, 단계(507)에서 블록 레벨 복원이 일어나는 경우, 단계(508)에서의 블록 레벨 복원 이후에 일어남] - 그의 가상 디스크 파일이 지금까지 다시 만들어진 볼륨 상에 있는 모든 나머지 가상 디스크를 찾아낸다. 어느 가상 디스크 파일이 어느 볼륨 상에 있는지의 정보가 ASR 메타데이터에 있다.
가상 디스크 파일을 다시 만들고[레벨 2에 대한 단계(504)], 가상 디스크 파일을 가상 디스크로서 노출시켜 그에 파티션 및 볼륨을 다시 만들고, 파티션/볼륨을 포맷한다[레벨 2에 대한 단계(505)].
4) 새로운 가상 디스크가 다시 만들어지지 않을 때까지 3을 반복한다(단계 502).
블록 레벨 복원 응용 프로그램의 계층별 다시 만들기의 한가지 이점은 모든 가상 디스크를 한꺼번에 다시 만드는 것이, 상기한 바와 같이, 블록 레벨 요청자에게 적합하지 않다는 것이다. 블록 레벨 요청자는, 또한 가상 디스크 파일이 다시 만들어져 있는 볼륨을 복원하는 경우, 다시 만들어진 가상 디스크를 파괴하는 것을 피할 수 없다.
이것은 계층별 다시 만들기를 사용하여, ASR 작성자 개체 인터페이스에 대한 API, HRESULT IVssAsrWriterRestoreEx::RecreateNextLayer (void )(이는 언제 그 다음 계층을 만들어야 하는지를 요청자가 ASR에게 지시할 수 있게 해줌)를 추가함으로써 해결된다. 요청자가 가상 디스크 및 그의 종속성을 알고 있을 필요가 없다.
요청자는 이하에 기술하는 바와 같이 ASR과 상호작용적으로 동작할 수 있다:
1. 요청자가 IVssBackupComponents::PreRestore를 호출한다
2. ASR이 실제 디스크를 다시 만든다
요청자는 백업하였던 볼륨들 중에서 다시 만들어진 그 볼륨만을 복원한다. 요청자는 FindFirstVolume/findNextVolume를 호출함으로써 볼륨을 찾아낼 수 있다.
3. 요청자는 IvssAsrWriterRestoreEx::RecreateNextLayer를 호출한다
ASR은 상기 단계 2에서 언급한 바와 같이 가상 디스크를 다시 만듦으로써 추가의 볼륨을 다시 만든다. 다시 만들어진 볼륨이 더 이상 없는 경우, ASR은 S_FALSE를 반환한다.
4. ASR이 S_FALSE를 반환할 때까지, 요청자는 또다시 단계 2 및 3을 반복한다.
계층화된 가상 디스크 다시 만들기 동안의 동적 볼륨의 다시 만들기와 관련하여, 일반적으로, 동적 팩이 일부는 가상 디스크로 일부는 실제 디스크로 또는 전적으로 가상 디스크로 이루어질 수 있다. 이 동적 가상 디스크는 다른 가상 디스크 상에 있을 수 있고, 따라서 중첩되어 있다. 계층별 다시 만들기 동안, ASR 내의 다음과 같은 부가의 논리가 동적 디스크 및 볼륨을 다시 만드는 일도 맡고 있다:
1. 실제 디스크 다시 만들기 이후에, 다음과 같이 수정하여, AsrLdm을 사용하여 보통 때와 같이 실제 팩을 다시 만든다:
a. 팩에 대한 모든 디스크가 아직 이용가능하지 않을 수 있는데, 그 이유는 그들이 가상 디스크일 수 있기 때문이며, 따라서 팩 내의 적어도 모든 실제 디스크가 다시 만들어져 있을지라도 팩을 만든다.
b. 계층에 대한 모든 가상 디스크가 식별되고 노출되며 파티션되면, 디스크가 동적 디스크인지를 알아본다(이는 ASR 메타데이터를 조회함으로써 발견될 수 있다).
2. 가상 디스크가 동적 디스크인 경우,
a. 가상 디스크를 실제 디스크 다시 만들기 동안에 다시 만들어진 동적 팩에 추가한다
b. 전적으로 지금까지 팩에 추가된 디스크의 집합에 있는 (아직 다시 만들어지지 않은) 팩 내의 볼륨들을 AsrLdm 메타데이터로부터 찾아낸다. 이들 볼륨을 다시 만들고 포맷한다.
3. ASR에 대한 종료 조건이 계속하여 동일하다, 즉 어떤 새로운 볼륨도 다시 만들어지지 않은 경우, 디스크 다시 만들기를 종료한다.
알 수 있는 바와 같이, 가상화가 점점 더 사용됨에 따라, 가상 디스크를 실행하는 컴퓨터의 완전 복구가 필요하다. 이것은 가상 디스크로부터 부팅하는 실제 컴퓨터의 완전 복구, 및 다중-레벨 가상 디스크(가상 디스크 내에 탑재된 가상 디스크)를 가지는 실제 컴퓨터의 완전 복구를 포함한다.
게다가, 백업 및 복원은 본 명세서에 기술된 가상화-관련 기술의 한 예시적인 사용에 불과하다. 가상 환경을 다른 컴퓨터로 마이그레이션하는 것도 이와 유사하게 이 기술에 의해 수행될 수 있다. 게다가, 가상 컴퓨터를 게스트로서 관리하기 위해 하이퍼바이저를 실행하는 호스트 파티션을 생각해보자. 시스템 자동 복구 및/또는 (예를 들어, 가상 디스크를 갖는 게스트를 가지는) 이러한 호스트의 마이그레이션이 이 기술을 통해 수행될 수 있다.
예시적인 동작 환경
도 6은 도 1 내지 도 5에 나타낸 일례 및/또는 실시예가 구현될 수 있는 적당한 컴퓨터 시스템 환경(600)의 일례를 나타낸 것이다. 컴퓨팅 시스템 환경(600)은 적당한 컴퓨팅 환경의 일례에 불과하며 본 발명의 용도 또는 기능의 범위에 관한 어떤 제한을 암시하기 위한 것이 아니다. 컴퓨팅 환경(600)이 예시적인 운영 환경(600)에 예시된 구성요소들 중 어느 하나 또는 이들 구성요소의 임의의 조합에 관한 어떤 종속성 또는 요구조건을 갖는 것으로 해석되어서도 안된다.
본 발명은 많은 다른 범용 또는 전용 컴퓨팅 시스템 환경 또는 구성에서 사용가능하다. 본 발명에서 사용하기에 적합할 수 있는 공지의 컴퓨팅 시스템, 환경 및/또는 구성의 일례로는 개인용 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩톱 장치, 태블릿 장치, 멀티프로세서 시스템, 마이크로프로세서-기반 시스템, 셋톱 박스, 프로그램가능 가전 제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템들 또는 장치들 중 어느 것이라도 포함하는 분산 컴퓨팅 환경, 기타 등등이 있지만, 이들로 제한되지 않는다.
본 발명이 일반적으로 컴퓨터에 의해 실행되는 프로그램 모듈 등의 컴퓨터 실행가능 명령어와 관련하여 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정의 작업을 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 개체, 구성요소, 데이터 구조, 기타 등등을 포함한다. 본 발명은 또한 작업이 통신 네트워크를 통해 연결되어 있는 원격 처리 장치에 의해 수행되는 분산 컴퓨팅 환경에서도 실시될 수 있다. 분산 컴퓨팅 환경에서는, 프로그램 모듈이 메모리 저장 장치를 비롯한 로컬 및/또는 원격 컴퓨터 저장 매체에 위치할 수 있다.
도 6을 참조하면, 본 발명의 다양한 측면을 구현하는 예시적인 시스템은 컴퓨터(610) 형태의 범용 컴퓨팅 장치를 포함할 수 있다. 컴퓨터(610)의 구성요소로는 처리 장치(620), 시스템 메모리(630), 및 시스템 메모리를 비롯한 다양한 시스템 구성요소를 처리 장치(620)에 결합시키는 시스템 버스(621)가 있을 수 있지만, 이들로 제한되지 않는다. 시스템 버스(621)는 메모리 버스 또는 메모리 제어기, 주변 장치 버스, 및 각종의 버스 아키텍처 중 어느 것이라도 사용하는 로컬 버스를 비롯한 몇가지 유형의 버스 구조 중 어느 것이라도 될 수 있다. 제한이 아닌 예로서, 이러한 아키텍처로는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 메자닌(Mezzanine) 버스라고도 하는 PCI(Peripheral Component Interconnect) 버스가 있다.
컴퓨터(610)는 통상적으로 각종의 컴퓨터-판독가능 매체를 포함하고 있다. 컴퓨터-판독가능 매체는 컴퓨터(610)에 의해 액세스될 수 있는 이용가능한 매체라면 어느 것이라도 될 수 있고, 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체 둘다를 포함한다. 제한이 아닌 예로서, 컴퓨터-판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등의 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체로는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 또 컴퓨터(610)에 의해 액세스될 수 있는 임의의 다른 매체가 있지만, 이들로 제한되지 않는다. 통신 매체는 통상적으로 컴퓨터-판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터를 반송파 또는 기타 전송 메카니즘 등의 피변조 데이터 신호(modulated data signal)에 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는 신호의 특성들 중 하나 이상이 정보를 그 신호에 인코딩하는 방식으로 설정 또는 변경된 신호를 의미한다. 제한이 아닌 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 연결(direct-wired connection) 등의 유선 매체와, 음향, RF, 적외선 및 기타 무선 매체 등의 무선 매체를 포함한다. 상기한 것들 중 임의의 것의 조합도 역시 컴퓨터-판독가능 매체의 범위 내에 포함되어야 한다.
시스템 메모리(630)는 판독 전용 메모리(ROM)(631) 및 랜덤 액세스 메모리(RAM)(632) 등의 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에 컴퓨터(610) 내의 구성요소들 간의 정보 전송을 돕는 기본 루틴들이 들어 있는 기본 입/출력 시스템(633)(BIOS)은 통상적으로 ROM(631)에 저장되어 있다. RAM(632)에는 통상적으로 처리 장치(620)에 의해 즉각 액세스될 수 있고 및/또는 현재 처리되고 있는 데이터 및/또는 프로그램 모듈이 들어 있다. 제한이 아닌 예로서, 도 6은 운영 체제(634), 응용 프로그램(635), 기타 프로그램 모듈(636), 및 프로그램 데이터(637)를 나타내고 있다.
컴퓨터(610)는 또한 다른 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체도 포함할 수 있다. 단지 예로서, 도 6은 비이동식, 비휘발성 자기 매체로부터 판독을 하거나 그에 기록을 하는 하드 디스크 드라이브(641), 이동식, 비휘발성 자기 디스크(652)로부터 판독을 하거나 그에 기록을 하는 자기 디스크 드라이브(651), 및 CD-ROM 또는 기타 광 매체 등의 이동식, 비휘발성 광 디스크(656)로부터 판독을 하거나 그에 기록을 하는 광 디스크 드라이브(655)를 나타내고 있다. 예시적인 운영 환경에서 사용될 수 있는 기타의 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD(digital versatile disk), 디지털 비디오 테이프, 고상 RAM, 고상 ROM, 기타 등등이 있지만, 이들로 제한되지 않는다. 하드 디스크 드라이브(641)는 통상적으로 인터페이스(640) 등의 비이동식 메모리 인터페이스를 통해 시스템 버스(621)에 연결되고, 자기 디스크 드라이브(651) 및 광 디스크 드라이브(655)는 통상적으로 인터페이스(650) 등의 이동식 메모리 인터페이스에 의해 시스템 버스(621)에 연결된다.
이상에서 설명되고 도 6에 도시되어 있는 드라이브 및 이들과 연관된 컴퓨터 저장 매체는 컴퓨터(610)에 대한 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 제공한다. 도 6에서, 예를 들어, 하드 디스크 드라이브(641)는 운영 체제(644), 응용 프로그램(645), 기타 프로그램 모듈(646), 및 프로그램 데이터(647)를 저장하는 것으로 도시되어 있다. 유의할 점은 이들 구성요소가 운영 체제(634), 응용 프로그램(635), 기타 프로그램 모듈(636), 및 프로그램 데이터(637)와 동일하거나 다를 수 있다는 것이다. 본 명세서에서, 운영 체제(644), 응용 프로그램(645), 기타 프로그램 모듈(646), 및 프로그램 데이터(647)에 다른 참조 번호가 부여되어 있는 것은 적어도 이들이 다른 사본임을 나타내기 위한 것이다. 사용자는 태블릿 또는 전자 디지타이저(664), 리모콘(R/C)(663), 키보드(662) 및 포인팅 장치(661)(통상적으로 마우스, 트랙볼 또는 터치 패드라고 함) 등의 입력 장치를 통해 컴퓨터(610)에 명령 및 정보를 입력할 수 있다. 다른 입력 장치(도 6에 도시 생략)로는 조이스틱, 게임 패드, 위성 안테나, 스캐너, 기타 등등이 있을 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 연결된 사용자 입력 인터페이스(660)를 통해 처리 장치(620)에 연결되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 연결될 수도 있다. 모니터(691) 또는 기타 유형의 디스플레이 장치도 비디오 인터페이스(690) 등의 인터페이스를 통해 시스템 버스(621)에 연결되어 있다. 모니터(691)는 또한 터치 스크린 등과 일체로 되어 있을 수 있다. 유의할 점은, 태블릿형 개인용 컴퓨터에서와 같이, 모니터 및/또는 터치 스크린이 컴퓨팅 장치(610)가 포함되어 있는 하우징에 물리적으로 결합되어 있을 수 있다는 것이다. 그에 부가하여, 컴퓨팅 장치(610) 등의 컴퓨터는 또한 출력 주변장치 인터페이스(694) 등을 통해 접속될 수 있는 스피커(695) 및 프린터(696) 등의 다른 주변 출력 장치도 포함할 수 있다.
컴퓨터(610)는 원격 컴퓨터(680) 등의 하나 이상의 원격 컴퓨터와의 논리적 연결을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(680)는 개인용 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 통상적으로 컴퓨터(610)와 관련하여 상기한 구성요소들 중 다수 또는 그 전부를 포함하지만, 도 6에는 메모리 저장 장치(681)만이 도시되어 있다. 도 6에 도시된 논리적 연결은 하나 이상의 LAN(local area network)(671) 및 하나 이상의 WAN(wide area network)(673)을 포함하지만, 다른 네트워크도 포함할 수 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크, 인트라넷 및 인터넷에서 흔한 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(610)는 네트워크 인터페이스 또는 어댑터(670)를 통해 LAN(671)에 연결된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(610)는 통상적으로 인터넷 등의 WAN(673)을 통해 통신을 설정하는 모뎀(672) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(672)은 사용자 입력 인터페이스(660) 또는 다른 적절한 메커니즘을 통해 시스템 버스(621)에 연결될 수 있다. 인터페이스 및 안테나 등을 포함하는 무선 네트워킹 구성요소(674)는 액세스 포인트 또는 피어 컴퓨터 등의 적당한 장치를 통해 WAN 또는 LAN에 결합될 수 있다. 네트워크화된 환경에서, 컴퓨터(610) 또는 그의 일부와 관련하여 도시된 프로그램 모듈들은 원격 메모리 저장 장치에 저장될 수 있다. 제한이 아닌 예로서, 도 6은 원격 응용 프로그램(685)이 메모리 장치(681)에 존재하는 것으로 도시하고 있다. 도시된 네트워크 연결이 예시적인 것이고 컴퓨터들 간에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 잘 알 것이다.
컴퓨터 시스템의 주요 부분이 절전 상태에 있는 경우에도, 프로그램 콘텐츠, 시스템 상태 및 이벤트 통지 등의 데이터가 사용자에게 제공될 수 있게 해주기 위해, (예를 들어, 콘텐츠의 보조 디스플레이를 위한) 보조 서브시스템(699)이 사용자 인터페이스(660)를 통해 연결될 수 있다. 보조 서브시스템(699)은, 주 처리 장치(620)가 절전 상태에 있는 동안에 이들 시스템 간의 통신을 가능하게 해주기 위해, 모뎀(672) 및/또는 네트워크 인터페이스(670)에 연결될 수 있다.
결론
본 발명에 대한 다양한 수정 및 대안의 구성이 있을 수 있지만, 본 발명의 특정의 예시된 실시예가 도면에 도시되고 이상에서 상세히 설명하였다. 그렇지만, 본 발명을 개시된 특정의 형태로 제한하기 위한 것이 아니라 그와 반대로 본 발명의 사상 및 범위 내에 속하는 모든 수정, 대안 구성 및 등가물을 포함시키기 위한 것임을 잘 알 것이다.

Claims (20)

  1. 컴퓨팅 환경에서의 방법으로서,
    가상 디스크를 복원하는 단계(504, 505, 508)를 포함하고,
    상기 복원하는 단계는,
    실제 디스크(physical disk)를 만드는 단계(501), 및
    상기 실제 디스크의 파티션 상에 상기 가상 디스크를 만드는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 가상 디스크를 복원하는 단계는,
    상기 가상 디스크가 제1 중첩(nesting) 레벨과 연관되어 있음을 판정하는 단계, 및
    각각의 가상 디스크의 연관된 레벨에 기초하여 계층화된 순서로 상기 가상 디스크 및 제2 중첩 레벨에 있는 다른 가상 디스크를 복원하는 단계를 포함하는 방법.
  3. 제2항에 있어서, 상기 가상 디스크는 블록 레벨 복원을 하도록 구성되어 있고,
    상기 가상 디스크를 복원하는 단계는 상기 제1 중첩 레벨에서 블록 레벨 복원을 수행하는 단계를 포함하는 방법.
  4. 제1항에 있어서, 상기 가상 디스크를 복원하는 단계는 계층화된 동작으로 상기 가상 디스크를 노출시키고(surfacing) 파티션하는 단계를 포함하는 방법.
  5. 제4항에 있어서, 상기 계층화된 동작이 임의의 실제 디스크들을 다시 만들고, 실제 디스크들에만 의존하는 임의의 가상 디스크들을 다시 만들며, 상기 다시 만들어진 디스크들에 의존하는 가상 디스크들을 다시 만드는 방법.
  6. 컴퓨팅 환경에서의 방법으로서,
    차후의 복원을 위해 가상 디스크(104)를 백업(108)하는 단계를 포함하고,
    상기 백업하는 단계는 상기 가상 디스크를 다시 만들기 위한 메타데이터(110)를 유지하는 단계를 포함하는 방법.
  7. 제6항에 있어서, 상기 메타데이터는 종속성 정보를 포함하거나, 또는 상기 메타데이터는 레벨 정보를 포함하거나, 또는 상기 메타데이터는 종속성 정보 및 레벨 정보 둘다를 포함하는 방법.
  8. 제6항에 있어서, 볼륨 또는 디스크가 중요(critical)인 것을 판정하는 단계, 및
    상기 볼륨 또는 디스크를 중요로서 표시하는 단계를 더 포함하는 방법.
  9. 제6항에 있어서, 탑재된 가상 디스크 내부의 볼륨이 중요인지 여부를 판정하는 단계, 및
    중요인 경우, 상기 가상 디스크 및 상기 가상 디스크가 속해 있는 팩을 중요로서 표시하는 단계를 더 포함하는 방법.
  10. 제6항에 있어서, 가상 디스크가 상기 가상 디스크의 파일들이 존재하는 볼륨 또는 가상 디스크에 의존하는지를 판정하는 단계, 및
    의존하는 경우, 상기 가상 디스크의 부모 볼륨을 중요로서 표시하는 단계를 더 포함하는 방법.
  11. 제6항에 있어서, 부모 볼륨이 기본 디스크 상에 있는지 여부를 판정하는 단계, 및
    기본 디스크 상에 있는 경우, 탑재된 가상 디스크를 중요로서 표시하고, 탑재된 파티션을 중요로서 표시하며, 부모 파티션을 중요로서 표시하고, 부모 디스크를 중요로서 표시하는 단계를 더 포함하는 방법.
  12. 제6항에 있어서, 부모 볼륨이 동적 볼륨인지 여부를 판정하는 단계, 및
    동적 볼륨인 경우, 탑재된 가상 디스크를 중요로서 표시하고, 탑재된 파티션을 중요로서 표시하며, 상기 부모 볼륨을 포함하는 디스크와 동일한 팩에 있는 임의의 동적 디스크를 중요로서 표시하는 단계를 더 포함하는 방법.
  13. 제6항에 있어서, 중요로서 표시되는 어떤 가상 디스크도 백업 시에 제외되는 디스크에 의존하지 않도록 하는 단계를 더 포함하는 방법.
  14. 컴퓨팅 장치를 포함하는 컴퓨팅 환경에서의 시스템으로서,
    복원 메커니즘(112)을 포함하고,
    상기 복원 메커니즘은,
    상기 컴퓨팅 장치(102)의 백업 시에 유지되는 메타데이터(110)에 기초하여 실제 디스크를 다시 만드는 메커니즘(114), 및
    상기 실제 디스크(118) 상에 가상 디스크를 다시 만드는 메커니즘을 포함하는 시스템.
  15. 제14항에 있어서, 백업 시에 가상 디스크 메타데이터를 포함하는 메타데이터를 상기 복원 메커니즘에 의해 액세스되는 매체에 백업하는 백업 메커니즘을 더 포함하는 시스템.
  16. 제14항에 있어서, 상기 컴퓨팅 장치는 상기 복원 메커니즘에 의해 복원되는 복수의 가상 디스크를 포함하는 시스템.
  17. 제15항에 있어서, 상기 컴퓨팅 장치는 상기 복원 메커니즘에 의해 복원되는 가상 디스크 상의 부팅 볼륨을 포함하고, 상기 가상 디스크는 실제 시스템 파티션 상의 가상 디스크 파일과 연관되어 있는 시스템.
  18. 제15항에 있어서, 상기 컴퓨팅 장치는 상기 복원 메커니즘에 의해 복원되는 실제 볼륨을 포함하고, 상기 실제 볼륨은 부팅 볼륨을 뒷받침하는 가상 디스크를 포함하는 시스템.
  19. 제15항에 있어서, 상기 컴퓨팅 장치는, 복수의 볼륨을 포함하는 가상 디스크 파일에 대한 컨테이너인 볼륨을 비롯한, 상기 복원 메커니즘에 의해 복원되는 단일 가상 디스크 상의 다중 볼륨을 포함하는 시스템.
  20. 제15항에 있어서, 상기 컴퓨팅 장치는, 부팅 볼륨을 뒷받침하는 부팅 가상 디스크 및 다른 볼륨을 뒷받침하는 다른 가상 디스크를 포함하는 실제 볼륨을 비롯한, 상기 복원 메커니즘에 의해 복원되는 중첩된 가상 디스크들을 포함하는 시스템.
KR1020117003397A 2008-08-20 2009-08-18 가상 디스크를 포함하는 컴퓨터의 복구 KR101591550B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IN2026CH2008 2008-08-20
IN2026/CHE/2008 2008-08-20
US12/242,933 US8150801B2 (en) 2008-08-20 2008-10-01 Recovery of a computer that includes virtual disks
US12/242,933 2008-10-01

Publications (2)

Publication Number Publication Date
KR20110050452A true KR20110050452A (ko) 2011-05-13
KR101591550B1 KR101591550B1 (ko) 2016-02-04

Family

ID=41697311

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117003397A KR101591550B1 (ko) 2008-08-20 2009-08-18 가상 디스크를 포함하는 컴퓨터의 복구

Country Status (7)

Country Link
US (2) US8150801B2 (ko)
EP (1) EP2335144B1 (ko)
JP (1) JP5572163B2 (ko)
KR (1) KR101591550B1 (ko)
CN (1) CN102124437B (ko)
CA (1) CA2730094C (ko)
WO (1) WO2010022099A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180081575A (ko) * 2016-07-22 2018-07-16 핑안 테크놀로지 (션젼) 컴퍼니 리미티드 가상 컴퓨터의 성능을 향상시키는 방법, 단말기, 기기 및 컴퓨터 판독 가능 저장 매체

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8099391B1 (en) 2009-03-17 2012-01-17 Symantec Corporation Incremental and differential backups of virtual machine files
US8397046B2 (en) * 2009-03-26 2013-03-12 Hitachi, Ltd. Method and apparatus for deploying virtual hard disk to storage system
US8943203B1 (en) * 2009-07-10 2015-01-27 Netapp, Inc. System and method for storage and deployment of virtual machines in a virtual server environment
US9032243B2 (en) * 2010-01-27 2015-05-12 International Business Machines Corporation Target operating system and file system agnostic bare-metal restore
US8627000B2 (en) * 2010-02-08 2014-01-07 Microsoft Corporation Virtual disk manipulation operations
US8413142B2 (en) * 2010-03-30 2013-04-02 Citrix Systems, Inc. Storage optimization selection within a virtualization environment
US9767274B2 (en) * 2011-11-22 2017-09-19 Bromium, Inc. Approaches for efficient physical to virtual disk conversion
US8694745B2 (en) * 2010-09-15 2014-04-08 Symantec Corporation Physical to virtual disks creation (P2V) method, by harvesting data from critical sectors
US9037547B1 (en) * 2010-09-15 2015-05-19 Symantec Corporation Backup time deduplication of common virtual disks from virtual machine backup images
US8666944B2 (en) 2010-09-29 2014-03-04 Symantec Corporation Method and system of performing a granular restore of a database from a differential backup
US8417672B2 (en) * 2010-10-11 2013-04-09 Microsoft Corporation Item level recovery
US8799337B2 (en) 2010-12-15 2014-08-05 Microsoft Corporation System reset and system restore
US9182982B1 (en) * 2011-05-06 2015-11-10 Symantec Corporation Techniques for creating an encrypted virtual hard disk
US9069467B2 (en) 2011-06-01 2015-06-30 Microsoft Technology Licensing, Llc Isolation of virtual machine I/O in multi-disk hosts
US20130066838A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Efficient data recovery
CN102662783A (zh) * 2012-03-20 2012-09-12 浪潮电子信息产业股份有限公司 一种桌面云环境下修复虚拟机的方法
US8819090B2 (en) 2012-04-23 2014-08-26 Citrix Systems, Inc. Trusted file indirection
US8819369B1 (en) * 2012-06-26 2014-08-26 Netapp, Inc. Restoring a virtual machine
CN103838639B (zh) * 2012-11-23 2018-04-27 华为技术有限公司 一种恢复虚拟磁盘元数据的方法、装置及系统
US20140250077A1 (en) * 2013-03-01 2014-09-04 Storagecraft Technology Corporation Deduplication vault storage seeding
US9218251B1 (en) * 2013-03-11 2015-12-22 Emc Corporation Method to perform disaster recovery using block data movement
US9411394B2 (en) 2013-03-15 2016-08-09 Seagate Technology Llc PHY based wake up from low power mode operation
US9335809B2 (en) 2013-03-15 2016-05-10 Seagate Technology Llc Volatile memory storing system data during low power mode operation and monitoring the voltage supplied to the memory during low power mode
US8766707B1 (en) 2013-03-15 2014-07-01 Seagate Technology Llc Integrated always on power island for low power mode operation
US9805068B1 (en) * 2013-08-30 2017-10-31 Veritas Technologies Llc Systems and methods for facilitating features of system recovery environments during restore operations
KR101649909B1 (ko) 2014-09-25 2016-08-22 한국전자통신연구원 가상 머신 취약점 점검과 복구 방법 및 장치
US9798567B2 (en) 2014-11-25 2017-10-24 The Research Foundation For The State University Of New York Multi-hypervisor virtual machines
CN105808152B (zh) * 2014-12-29 2018-11-27 曙光云计算集团有限公司 一种优化raid全局元数据读写性能的方法
US9569138B2 (en) * 2015-06-15 2017-02-14 International Business Machines Corporation Copying virtual machine flat tires from a source to target computing device based on matching disk layout
US10126983B2 (en) 2015-06-24 2018-11-13 Vmware, Inc. Methods and apparatus to enforce life cycle rules in a modularized virtualization topology using virtual hard disks
US10097534B2 (en) * 2015-08-28 2018-10-09 Dell Products L.P. System and method to redirect hardware secure USB storage devices in high latency VDI environments
US10310949B1 (en) 2016-12-22 2019-06-04 EMC IP Holding Company LLC Disaster restore of big data application with near zero RTO
US10152387B1 (en) * 2016-12-23 2018-12-11 EMC IP Holding Company LLC Instant start of virtual machine from archive copy on backup media
US11016798B2 (en) 2018-06-01 2021-05-25 The Research Foundation for the State University Multi-hypervisor virtual machines that run on multiple co-located hypervisors
US10976959B2 (en) * 2018-07-23 2021-04-13 EMC IP Holding Company LLC Method and system for accessing virtual machine state while virtual machine restoration is underway
CN109358988A (zh) * 2018-12-10 2019-02-19 郑州云海信息技术有限公司 一种云备份数据的恢复方法、装置、系统及可读存储介质
US11847030B2 (en) * 2020-02-19 2023-12-19 EMC IP Holding Company LLC Prioritizing virtual machines for backup protection at a virtual machine disk level
US11586391B2 (en) 2020-12-16 2023-02-21 Nutanix, Inc. Technique for efficient migration of live virtual disk across storage containers of a cluster
US11487467B1 (en) 2021-05-28 2022-11-01 Microsoft Technology Licensing, Llc Layered memory mapped file technology

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6047294A (en) 1998-03-31 2000-04-04 Emc Corp Logical restore from a physical backup in a computer storage system
US20020095557A1 (en) 1998-06-22 2002-07-18 Colin Constable Virtual data storage (VDS) system
US6269431B1 (en) * 1998-08-13 2001-07-31 Emc Corporation Virtual storage and block level direct access of secondary storage for recovery of backup data
US6820214B1 (en) 1999-07-26 2004-11-16 Microsoft Corporation Automated system recovery via backup and restoration of system state
KR20020080458A (ko) 2001-01-05 2002-10-23 가부시키가이샤 미디어 비젼 가상 디스크 드라이브를 이용한 저장 시스템의 물리적섹터의 파티션 재생성 방법, 데이터 처리 장치 및 데이터저장 장치
US7433948B2 (en) * 2002-01-23 2008-10-07 Cisco Technology, Inc. Methods and apparatus for implementing virtualization of storage within a storage area network
US7093086B1 (en) 2002-03-28 2006-08-15 Veritas Operating Corporation Disaster recovery and backup using virtual machines
GB2411030B (en) 2002-11-20 2006-03-22 Filesx Ltd Fast backup storage and fast recovery of data (FBSRD)
JP4493321B2 (ja) 2003-11-19 2010-06-30 株式会社日立製作所 ディスクアレイ装置及びデータ退避方法
US7440965B1 (en) * 2004-02-11 2008-10-21 Network Appliance, Inc. Method and system for generating and restoring a backup image
US7293272B1 (en) 2004-02-26 2007-11-06 Veritas Operating Corporation Device driver processing for automated system restores
US20060112313A1 (en) 2004-11-12 2006-05-25 Tripp Thomas M Bootable virtual disk for computer system recovery
US7669020B1 (en) * 2005-05-02 2010-02-23 Symantec Operating Corporation Host-based backup for virtual machines
CA2954888C (en) 2005-06-24 2019-06-04 Catalogic Software, Inc. System and method for high performance enterprise data protection
US7434218B2 (en) 2005-08-15 2008-10-07 Microsoft Corporation Archiving data in a virtual application environment
US7165158B1 (en) * 2005-08-17 2007-01-16 Hitachi, Ltd. System and method for migrating a replication system
JP4702000B2 (ja) 2005-11-10 2011-06-15 パナソニック株式会社 電気湯沸かし器
JP4544146B2 (ja) 2005-11-29 2010-09-15 株式会社日立製作所 障害回復方法
US7441092B2 (en) 2006-04-20 2008-10-21 Microsoft Corporation Multi-client cluster-based backup and restore
US7653794B2 (en) * 2006-05-08 2010-01-26 Microsoft Corporation Converting physical machines to virtual machines
JP2008009485A (ja) * 2006-06-27 2008-01-17 Fujitsu Ltd 仮想ストレージ制御装置及び仮想ストレージ制御プログラム
JP2008181271A (ja) 2007-01-24 2008-08-07 Hitachi Ltd 仮想ボリュームに記憶されたデータをバックアップする記憶制御装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180081575A (ko) * 2016-07-22 2018-07-16 핑안 테크놀로지 (션젼) 컴퍼니 리미티드 가상 컴퓨터의 성능을 향상시키는 방법, 단말기, 기기 및 컴퓨터 판독 가능 저장 매체

Also Published As

Publication number Publication date
CA2730094A1 (en) 2010-02-25
EP2335144A2 (en) 2011-06-22
CN102124437B (zh) 2013-12-11
US8150801B2 (en) 2012-04-03
US20100049750A1 (en) 2010-02-25
EP2335144A4 (en) 2012-06-13
EP2335144B1 (en) 2013-08-14
CN102124437A (zh) 2011-07-13
US9081732B2 (en) 2015-07-14
US20120159240A1 (en) 2012-06-21
KR101591550B1 (ko) 2016-02-04
JP2012509516A (ja) 2012-04-19
CA2730094C (en) 2016-11-01
JP5572163B2 (ja) 2014-08-13
WO2010022099A3 (en) 2010-05-06
WO2010022099A2 (en) 2010-02-25

Similar Documents

Publication Publication Date Title
KR101591550B1 (ko) 가상 디스크를 포함하는 컴퓨터의 복구
US8924358B1 (en) Change tracking of individual virtual disk files
CN110531940B (zh) 视频文件处理方法及装置
US8732121B1 (en) Method and system for backup to a hidden backup storage
US8555278B2 (en) Method and system for migrating a selected set of virtual machines between volumes
US6618736B1 (en) Template-based creation and archival of file systems
US9836244B2 (en) System and method for resource sharing across multi-cloud arrays
US10162722B2 (en) Virtual machine aware replication method and system
US8954383B1 (en) Analyzing mapping objects of file systems
US11500814B1 (en) Chain file system
US8229897B2 (en) Restoring a file to its proper storage tier in an information lifecycle management environment
US7395389B2 (en) Extending non-volatile storage at a computer system
US10303499B2 (en) Application aware graph driver
US10353872B2 (en) Method and apparatus for conversion of virtual machine formats utilizing deduplication metadata
US20080144471A1 (en) Application server provisioning by disk image inheritance
US7899795B1 (en) Method and system for recovering lost data volumes
US20120278580A1 (en) Data storage reclamation systems and methods
CN108733311B (zh) 用于管理存储系统的方法和设备
CN115098299A (zh) 一种虚拟机的备份方法、容灾方法、装置及设备
US20130024428A1 (en) Method and system for a fast full style system check using multithreaded read ahead
Sun et al. Breaking apart the {VFS} for managing file systems
CN112148532A (zh) 硬盘数据的批量恢复方法、装置、存储介质及电子设备
CN112740186A (zh) 对存储段应用日志
US10585601B2 (en) Information processing apparatus, storage apparatus, and information processing system wherein virtual volume to physical volume mapping is updated from management machine responsive to storage indicating said physical volume is not present

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190103

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200103

Year of fee payment: 5