KR20130115391A - 가상 기계 볼륨 데이터의 애플리케이션-일관성 백업 생성 방법 - Google Patents

가상 기계 볼륨 데이터의 애플리케이션-일관성 백업 생성 방법 Download PDF

Info

Publication number
KR20130115391A
KR20130115391A KR1020137025294A KR20137025294A KR20130115391A KR 20130115391 A KR20130115391 A KR 20130115391A KR 1020137025294 A KR1020137025294 A KR 1020137025294A KR 20137025294 A KR20137025294 A KR 20137025294A KR 20130115391 A KR20130115391 A KR 20130115391A
Authority
KR
South Korea
Prior art keywords
virtual machine
backup
host
snapshot
data
Prior art date
Application number
KR1020137025294A
Other languages
English (en)
Other versions
KR101432463B1 (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 KR20130115391A publication Critical patent/KR20130115391A/ko
Application granted granted Critical
Publication of KR101432463B1 publication Critical patent/KR101432463B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory 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
    • 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/1464Management of the backup or restore process for networked environments
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency
    • 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

가상 기계 볼륨 데이터의 애플리케이션-일관성 백업 생성 방법{CREATING HOST-LEVEL APPLICATION-CONSISTENT BACKUPS OF VIRTUAL MACHINES}
1. 배경기술 및 관련 기술
컴퓨터화된 시스템들의 대중성이 확대됨에 따라, 사용자들이 작성한 전자 파일들 및 기타 통신들, 및 이들에 연관된 애플리케이션들을 저장하고 백업할 필요가 생겼다. 일반적으로, 컴퓨터 시스템들 및 관련 디바이스들은, 작업 환경에서 워드 프로세싱 문서를 생성하는 일반적인 경우 뿐만 아니라, 보다 정교한 데이터베이스용으로 사용되는 파일을 생성하는 경우 등과 같이, 다양한 이유로 파일들을 생성한다. 또한, 이러한 문서들 중 다수는 소중한 작업 결과물 또는 보호되어야 하는 민감한 정보를 포함할 수 있다. 따라서, 조직체에서 정기적으로 전자 파일들을 백업하기를 원하며, 이로써 필요할 때 최초 생성되었던 파일의 신뢰할만한 복구를 만들어내기를 원하는지에 대한 많은 이유들이 있음을 이해할 것이다.
컴퓨터화된 시스템들이 더욱 복잡한 소프트웨어 및 하드웨어 구성으로 계속 발전함에 따라, 이러한 구성을 백업하는 것과 연관된 복잡성 또한 증가하였다. 가장 단순한 양식으로 컴퓨터를 백업하는 것에는 컴퓨터 디스크 또는 볼륨(volume)으로부터 단지 정보를 복사하는 것과 그 정보를 백업 장소로 전달하는 것이 포함된다. 그러나, 디스크로부터 단지 데이터를 복사하는 것은, 네트워크 상의 복수의 서버들에 대규모 데이터 세트들을 백업할 때, 특히 백업 프로세스 중에 데이터 세트들이 계속하여 변경될 때 한층 더 복잡하게 된다. 예를 들어, 데이터를 단지 백업하는 것과 함께, 대규모 조직체에서의 몇몇 관심사는, 데이터가 또한 신속하게 복구될 수 있도록 데이터를 신속하고 신뢰성 있고 비교적 연속적인 방식으로 저장할 필요성을 포함할 수 있다. 특히, 각각의 서버는 그 서버를 다른 서버보다 소정의 백업 프로그램에 대해 더욱 잘 액세스하게 하거나 보다 덜 액세스할 수 있게 하는 상이한 기능들을 가질 수 있으므로, 추가적인 관심사는 우선 첫째로 각종 서버 데이터로의 액세스 방법을 포함한다.
서버 데이터를 백업하는데 있어서의 이러한 유형의 복잡성은 가상화된 서버 환경에서 특히 곤란할 수 있다. 일반적으로, 가상 서버 환경은, 하나 이상의 "가상 기계들"이 설치될 수 있는 호스트 서버의 사용을 포함한다. 이러한 가상 기계들은 호스트 서버 디스크 공간 또는 리소스(예컨대, 호스트 메모리)의 할당된 부분에 설치되는 운영 체제의 고유 인스턴스들을 포함하며, 따라서 분명한 기계 경계를 포함한다. 따라서, 각각의 가상 기계는 고유의 네트워크 식별자에 의해 표현될 수 있으며, 따라서 네트워크 상에서 호스트 서버 자체와는 구별되고 별개로 보인다. 또한, 각각의 가상 기계도 그 가상 기계에 대해 할당된 호스트 공간에 만들어진 추가적인 저장 파티션을 가질 수 있다. 또한, 호스트 서버와는 별개인 기계로 보이는 것 외에, 가상 기계는 호스트 서버의 물리적 디스크(들) 상에 존재함에도 불구하고 복수의 드라이브들 또는 볼륨들을 호스팅하는 것으로도 보일 수 있다. 따라서, 조직체 내에서 하드웨어 리소스들을 보다 효율적으로 분배하기 위해서 가상 기계들은 많은 중요한 방식들로 사용될 수 있음을 이해할 수 있다.
이러한 이점에도 불구하고, 가상 기계들이 설치되어 있는 호스트 볼륨들을 단순히 복사하고 그 데이터를 필요에 따라 유용하게(예컨대, 일관적이고 유효하게) 하는 것은 간단한 일은 아니다. 이러한 곤란성의 이유들 중 하나는 가상 기계들 자체의 속성으로부터 생기는데, 이로써 가상 기계들은 다른 가상 기계들 및 대응하는 호스트 서버(들)에 대해 별개의 아이덴티티(예컨대, 별개의 운영 체제들을 포함함)를 포함하는 것으로 여겨진다. 예를 들어, 호스트 서버는 가상 기계 내부에 있는 애플리케이션들에게 애플리케이션들의 데이터의 "애플리케이션-일관성" 스냅숏을 생성하라고 단순히 지시할 수 없는데, 이는 이러한 애플리케이션들이 일반적으로 가상 기계의 제어 하에 있기 때문이다. 따라서, 호스트가, 가상 기계가 설치되어 있는 볼륨(또는 볼륨들)의 스냅숏 또는 백업 사본을 생성할 때, 가상 기계 내부의 프로세스들은 계속하여 실행할 수 있고, 이로써 가상 기계의 사본은 아마도 상이한 시간대에서 유효한 데이터 및 파일 상태를 포함할 수 있을 것이다. 즉, 가상 기계 데이터의 사본은 "애플리케이션-일관성"이 아닐 것이다. 이러한 가상 기계를 복구하려고 한다면, 전혀 동작이 안 되는 것은 아니지만 적절히 동작하지 않을 수도 있다.
일반적으로, "애플리케이션-일관성" 백업은, 애플리케이션들이 백업 준비 프로세스에 참여하고, 물리적 디스크 상에 있는 것 뿐만 아니라 메모리에 있는 것에 기초하여 백업될 애플리케이션 파일들을 생성하는 것을 의미한다. 그래서, 백업될 이러한 파일들 또는 스냅숏들은 애플리케이션의 현재 상태와 일관적이고, 장래의 시점에서 그 애플리케이션에 의해 복구될 수 있다. 반대로, "크래쉬-일관성(crash-consistent)" 데이터란 우선 첫번째로 데이터를 생성하는 데 이용되는 애플리케이션들의 수반 없이 일반적으로 백업되는 데이터를 말한다. 따라서, 크래쉬-일관성 백업 동안의 1차 생성물(primary production)은 메모리 내에 있는 것에 대한 고려 없이, 그리고 애플리케이션 상태에 대한 고려 없이 백업 프로세스 동안 물리적 디스크 상에 있는 것과 동일한 데이터 세트이다. 이는 전력 손실 또는 재부팅 동안에서와 같이, 전체 시스템 크래쉬 동안 파일 데이터가 존속할 수 있는 방식과 유사하므로, 예컨대 애플리케이션-일관성을 보장하지 않는다. 특히, 특정의 복잡한 운영 환경에서, 그 중에서도 백업 후에 가능한 단절없는(seamless) 이행(transition)을 보장하는 것이 중요한 경우에, 일관적인(즉, 애플리케이션 및/또는 파일 시스템) 일관성 백업 접근법이 바람직하다.
볼륨 데이터의 일관성 백업을 생성하기 위한 다양한 방식들이 있다. 그러나, 불행하게도, 가상 기계들(및 그에 의해 관리되는 대응 볼륨들)의 애플리케이션-일관성 백업들을 생성하려는 종래의 시스템들은 일반적으로 가상 기계를 우선 중지하거나 턴 오프하지 않고서는 애플리케이션-일관성 백업을 효과적으로 생성할 수 없다. 이는 통상적으로 소정의 원하지 않는 휴지기간(downtime)으로 이어지며, 이 휴지기간은 특정의 "미션-크리티컬(mission-critical)" 소프트웨어를 갖는 몇몇 케이스에서 관리자에게 특수한 곤란함을 일으킬 수 있다. 이것에 대한 한가지 이유는 대상 볼륨을 추가적인 쓰기가 그 볼륨에 대해 이루어지지 않는 동안 복사될 수 있어, 애플리케이션을 통해 생성된 데이터는 동일한 시간대에 대해 모두 일관성이 있기 때문이다. 물론, 즉각적이고 연속적이고 효율적인 데이터 액세스가 중요한 환경에서는, 백업 사본을 만들기 위해 가상 기계를 중지시키거나 턴 오프하는 것은 덜 바람직하고, 이는 조직체의 리소스들에 대한 소모를 발생시킬 수 있다.
조직체가 가상 기계의 애플리케이션-일관성 백업을 생성하려고 시도할 수 있는 다른 방식은 소정의 가상 기계의 각각의 인스턴스 내에서 특정 백업 에이전트를 설치하는 것이다. 일반적으로, 백업 에이전트는 운영 체제 내에서 애플리케이션 라이터(application writer)와 상호작용하도록 구성되어, 마치 통상적으로 호스트 서버의 메인 볼륨의 호스트-레벨로 이루어질 수 있는 것처럼, 애플리케이션-일관성 백업을 생성한다. 불행하게도, 각각의 가상 기계에 대해 새로운 백업 에이전트를 단지 설치하는 것은 단순한 일이 아니다. 예를 들어, 조직체는 통상적으로 각각의 가상 기계에 대해 새로운 별도의 백업 에이전트(또는 라이센스(license))를 구매할 필요가 있을 것이며, 가상 기계 내에 각각의 백업 에이전트를 설치할 것이다. 이는 수십개, 수백개 또는 심지어 수천개의 가상 기계들을 실행할 수 있는 대규모 조직체에 대해, 비용과 리소스 소모(예컨대, 관리 오버헤드(overhead)를 포함함)의 관점에서 상당한 곤란함을 제공할 수 있다는 것을 이해할 것이다.
따라서, 어드레싱될 수 있는 가상 기계들을 백업하는 것과 관련된 많은 곤란함이 있다.
<개요>
본 발명의 구현은 하나 이상의 가상 기계들의 일관적인 호스트-레벨 백업을 생성하도록 구성된 시스템, 방법 및 컴퓨터 프로그램 제품을 제공한다. 특히, 본 발명의 구현은, 하나 이상의 가상 기계들의 동작에 중대한 중단을 필연적으로 발생시키지 않고도, 기존의 백업 요청자들와 라이터들을 이용하여 일관적인 방식으로 호스트 서버와 대응하는 하나 이상의 가상 기계들을 백업하는 기능을 제공한다. 일 구현에서, 예컨대 호스트 서버 라이터(예컨대 가상 서버 VSS 라이터)는 각각의 가상 기계들로 하여금 그 자신의 가상 기계-레벨 볼륨 데이터의 하나 이상의 애플리케이션-일관성 스냅숏들을 생성하도록 지시한다. 또한, 호스트 서버 상의 백업 애플리케이션은 하나 이상의 가상 기계들(예컨대 그 Virtual Hard Disk 파일)이 설치되는 호스트-레벨 볼륨의 스냅숏들을 생성한다. 그러면, 호스트 서버는 호스트-레벨 스냅숏들 내로부터 이전에 생성된 가상 기계-레벨 스냅숏들을 검색할 수 있고 백업 프로세스를 종료할 수 있다.
예를 들어, 하나 이상의 가상 기계들을 필연적으로 중단 또는 재부팅하는 것을 요구하지 않고서도, 가상 기계 볼륨 데이터의 일관성 백업을 생성하는 호스트 서버의 관점에서의 방법은 라이터-관여된 백업 프로세스들을 위한 하나 이상의 컴포넌트들을 갖는 적어도 하나의 가상 기계를 식별하는 것을 포함할 수 있다. 또한, 본 방법은 가상 기계-레벨의 애플리케이션-일관성 스냅숏을 준비하라는 지시를 하나 이상의 가상 기계들 각각에 전송하는 것을 포함할 수 있다. 또한, 본 방법은 적어도 하나의 가상 기계에서의 스냅숏 동작들이 완료되었음을 식별하는 것을 포함할 수 있다. 또한, 본 방법은 식별된 하나 이상의 가상 기계들이 설치되는 하나 이상의 호스트 볼륨들의 하나 이상의 호스트-레벨 스냅숏들을 생성하는 것을 포함할 수 있다. 또한, 본 방법은 적어도 하나의 가상 기계에 의해 만들어진 가상 기계 볼륨들의 애플리케이션-일관성 스냅숏을 검색하는 것을 더 포함할 수 있다.
반대로, 호스트 서버의 호스트 라이터로부터의 지시들에 응답하여 하나 이상의 가상 기계 볼륨들의 일관성 백업을 생성하는 가상 기계의 관점에서의 방법은 이용가능한 소프트웨어 컴포넌트들을 식별하라는 요청을 호스트 라이터로부터 수신하는 것을 포함할 수 있다. 또한, 본 방법은 적어도 하나의 이용가능한 소프트웨어 컴포넌트들을 이용하여 가상 기계에 의해 호스팅된 하나 이상의 볼륨들의 스냅숏을 취하라는 요청을 호스트 라이터로부터 수신하는 것을 포함할 수 있다. 또한, 본 방법은 백업을 위해 대응하는 하나 이상의 가상 기계 애플리케이션들을 준비하라는 지시들을 가상 기계 상의 하나 이상의 애플리케이션 라이터들에게 전송하는 것을 포함할 수 있다. 또한, 본 방법은 가상 기계 내부에 호스팅된 하나 이상의 볼륨들의 각각에 대한 스냅숏 준비가 완료되었다는 신호를 호스트 라이터에 전송하는 것을 포함할 수 있다.
본 개요는 상세한 설명에 더욱 자세히 설명될 개념들의 선택을 단순화된 양식으로 소개하고자 제공된다. 본 개요는 청구되는 청구물의 핵심 특징 또는 본질적인 특징을 식별하려는 것도 아니며 청구된 청구물의 범위를 결정하는 데 도움으로서 이용되고자 한 것도 아니다.
본 발명의 추가적인 특징 및 이점들은, 이하의 설명에서 제시될 것이며, 부분적으로는 그 설명으로부터 자명할 것이고, 또는 본 발명의 구현에 의해 알게 될 것이다. 본 발명의 특징 및 이점은 특히 첨부된 청구항에서 지적된 수단 및 조합에 의해 실현되고 달성될 수 있다. 본 발명의 이러한 특징 및 기타 특징은 상세한 설명 및 첨부된 청구항으로부터 더욱 충분히 자명해질 것이며, 이하 제시될 본 발명의 구현에 의해 알 수 있을 것이다.
본 발명의 상술한 이점 및 특징, 그리고 기타 이점 및 특징이 달성될 수 있는 방식을 설명하기 위해, 간략하게 설명된 본 발명의 보다 구체적인 설명이 첨부된 도면에서 예시된 그 구체적인 실시예들을 참조하여 주어질 것이다. 이러한 도면들은 본 발명의 단지 통상적인 실시예들을 도시하며, 따라서 그 범위를 제한하는 것으로 고려되어서는 않됨을 이해하여야 하며, 본 발명은 첨부된 도면을 사용하여 추가적인 구체사항 및 상세사항으로 서술되고 설명될 것이다.
도 1a는 호스트-레벨 백업 애플리케이션이 어떠한 하나 이상의 가상 기계들이 일관적인 방식으로 백업될 수 있는지를 식별하는 본 발명의 구현에 따른 전반적인 개략도를 도시한다.
도 1b는 호스트 서버가 본 발명의 구현에 따라, 가상 기계에서의 가상 기계-레벨 게스트 요청자와 함께 백업 프로세스를 개시하는, 도 1a의 컴포넌트들을 도시한다.
도 1c는 호스트 서버 요청자가 하나 이상의 가상 기계들이 설치되는 호스트 볼륨들의 스냅숏들을 생성하는 도 1a-1b의 컴포넌트들을 도시하며, 호스트-레벨 스냅숏들은 가상 기계 볼륨 데이터를 또한 포함하고, 가상 기계 볼륨 데이터는 가상 기계들에 의해 이전에 수행된 가상 기계-레벨 스냅숏들을 포함한다.
도 1d는 도 1a-1c에 도시된 백업 애플리케이션이 가상 기계-레벨 스냅숏 데이터가 포함된 호스트-레벨 스냅숏 데이터를 검색하는, 본 발명의 구현에 따른 전반적인 개략도를 도시한다.
도 2는 하나 이상의 호스트 서버 볼륨들 상에 설치된 가상 기계들의 애플리케이션-일관성 백업들을 제공하기 위해 호스트 서버 및 가상 기계의 관점에서 본 발명의 구현에 따른 일련의 단계들을 포함하는 방법의 흐름도를 도시한다.
본 발명의 구현은 하나 이상의 가상 기계들의 일관적인 호스트-레벨 백업들을 생성하도록 구성된 시스템, 방법 및 컴퓨터 프로그램 제품으로 확장된다. 특히, 본 발명의 구현은 하나 이상의 가상 기계들의 동작에 대해 중대한 중단을 필연적으로 발생시키지 않고도, 기존의 백업 요청자 및 라이터들을 일관적인 방식으로 이용하여 호스트 서버 및 대응하는 하나 이상의 가상 기계들을 백업하는 기능을 제공한다. 일 구현에서, 예컨대 호스트 서버 라이터(예컨대, 가상 서버 VSS 라이터)는 각각의 가상 기계에게 그 자신의 가상 기계-레벨 볼륨 데이터의 하나 이상의 애플리케이션-일관성 스냅숏들을 생성하도록 지시한다. 또한, 호스트 서버 상의 백업 애플리케이션은 하나 이상의 기계들(예컨대, 그 Virtual Hard Disk 파일)이 설치되는 호스트-레벨 볼륨들의 스냅숏들을 생성한다. 그러면, 호스트 서버는 호스트-레벨 스냅숏들 내로부터 이전에 생성된 가상 기계-레벨 스냅숏들을 검색할 수 있고 백업 프로세스를 종료할 수 있다.
본 상세한 설명 및 청구항을 읽은 후에는, 호스트 서버가 일관적인(예컨대, 애플리케이션 및/또는 파일 시스템)-일관성 백업 프로세스를 위해 구성된 것으로 쉽사리 확인될 수 없다고 하더라도, 그럼에도 호스트 서버가 (예컨대 가상 서버 라이터를 통해) 가상 기계들의 일관성 백업들을 또한 생성할 수 있음을 이해할 것이다. 예를 들어, 가상 기계들은 턴 오프되거나 아니면 실행되지 않을 수 있으며, 또는 가상 기계들은 적절한 소프트웨어 또는 하드웨어 컴포넌트들과 함께 설치되지 않을 수 있다. 그럼에도 불구하고, 호스트 서버는 여러 상이한 컴포넌트를 사용하여 호스트 볼륨들 및 대응하는 가상 기계들을, 상태를 보존하고, 적어도 순간적으로는 가상 기계들을 중지하거나 중단하는 방식으로 복사할 수 있다. 그러면, 호스트 서버 라이터는, 호스트 볼륨(들)의 스냅숏이 만들어진 후에 가상 기계가 재개하게 할 수 있다.
본 상세한 설명 및 청구항을 읽은 후에는, 본 발명의 구현은 새로운 백업 에이전트들의 구입 및 설치를 요구하지 않고서도, 휴지기간을 최소화하는 방식으로 가상 기계들의 일관성 백업들을 제공할 수 있다. 그래서, 가상 기계 솔루션을 구현하는 조직체는, 조직체의 리소스 소비를 최소화하는 방식으로 네트워크 시스템 내에서 보다 나은 호스트 서버, 가상 기계 및 데이터 가용성을 제공할 수 있다.
따라서, 도 1a는 볼륨들(110, 115)을 관리하도록 구성된 예시적인 호스트 서버(100)를 도시한다. 가상 기계들(120, 130)은 볼륨들(110, 115) 상에 각각 설치된다. 예시로써, 각각의 가상 기계(120, 130)는 한 레벨로 별개의 컴퓨터화된 시스템으로서 고려될 수 있지만, 각각의 가상 기계(120, 130)는 호스트(100) 레벨에서 바라보았을 때 "파일들"(예컨대, Virtual Machine Configuration, 또는 "VMC", 파일 및 하나 이상의 가상 하드 디스크-"VHD"-파일들)의 집합으로서 또한 고려될 수 있다. 어쨌든, 도 1a는 볼륨당 하나의 가상 기계를 도시하고 있지만, 이는 반드시 요구되는 것은 아니며, 임의의 주어진 호스트 서버(100) 볼륨 상에 몇 개의 가상 기계들이 설치될 수도 있다. 마찬가지로, 각각의 가상 기계가 하나 이상의 호스트 서버들 상에서 복수의 볼륨들에 거쳐 존재할 수 있다.
또한, 각각의 가상 기계는 추가의 드라이브들을 관리할 수 있으며, 이러한 드라이브들은 소정의 가상 기계가 설치되는 볼륨 할당(들) 내의 유효하게 추가되는 볼륨 할당들이다. 예를 들어, 도 1a는, 가상 기계(120)가 역시 호스트 볼륨(100)의 일부인 하나 이상의 가상 물리적 디스크들을 또한 관리하는 것을 도시한다. 일반적으로, 각각의 가상의 물리적인 디스크는 Virtual Hard Disk 파일(즉, VHD(123, 127 등))과 같은 파일에 의해 또한 표현될 수 있다. 특히, VHD 파일은 추가적인 하나 이상의 볼륨들(도시 생략)을 추가적으로 포함할 수 있는 가상 기계 내부에서 물리적인 디스크로서 노출되며, 각각의 볼륨은 그 자신의 "GUID(Global Unique Identifier)"를 갖는다. 따라서, VHD 파일(123)(본 도면에서는 단순함을 위해 하나의 볼륨만을 포함함)은 드라이브 "m:\" -또는 소정의 운영 시스템에 대해 적절한 소정의 기타 고유 식별자로서 보임- 으로서 보이는 볼륨을 가질 수 있으며, VHD(127)(이 또한 이 경우에는 하나의 볼륨만을 포함함)는 네트워크 상에서 드라이브 "n:\" 등으로서 보이는 볼륨을 가질 수 있다.
또한, 도 1a는, 호스트(100)가 "호스트 요청자" 또는 "호스트-레벨 요청자"로 칭해질 수도 있는 백업 애플리케이션(105)를 포함하는 것을 도시한다. 일반적으로, 백업 애플리케이션(105)은 호스트(100)에서 백업 이벤트들을 지시하도록 구성된 일련의 컴퓨터 실행가능 명령어들을 포함한다. 예컨대 MICROSOFT 운영 환경과 같은 일 구현에서, 백업 애플리케이션(105)은 "VSS(Volume Shadow Copy Service)" 요청자를 포함한다. 또한, 도 1a는, 백업 애플리케이션(105)이 다음에는 "호스트 라이터", "호스트-레벨 라이터" 또는 "호스트-레벨 가상 서버 VSS 라이터"로도 칭해질 수 있는 호스트 라이터(125)를 통해 그 백업 명령어들을 지시하도록 구성될 수 있는 것을 도시한다.
일반적으로, 호스트 라이터(125)는 백업 애플리케이션(105)으로부터 수신된 백업 명령어들을 구현하도록 구성된 일련의 컴퓨터 실행가능 명령어들을 포함한다. 예컨대 MICROSOFT 환경에서와 같은 일 구현에서, 호스트 라이터(125)는 MICROSOFT VIRTUAL SERVER에서 사용되는 VSS 라이터와 같은 VSS 라이터를 포함할 수 있다. 설명으로써, 본 명세서에서의 MICROSOFT 컴포넌트들에 대한 참조는 단지 예시적인 것이다. 특히, 본 상세한 설명 및 청구항을 읽은 후에는, 본 명세서에 설명된 컴포넌트들, 모듈들, 시스템들 및 기능들은 다른 운영 환경에서 사용되는 광범위하게 다양한 컴포넌트들, 모듈들 및 기능들에 적용될 수 있음을 이해할 것이다.
가상 기계들의 일관성 백업을 수행하기 위하여, 일반적으로 호스트(100)는 호스팅된 가상 기계들 중 어느 것이 무엇보다도 일관성 백업들을 가능하게 만들도록 구성되는 적절한 컴포넌트들을 보고할 수 있는지를 결정할 필요가 있을 것이다. 준비 사항으로서, 본 명세서에서 연속되는 참조번호가 "애플리케이션-일관성" 백업 또는 스냅숏 프로세스들에 부여된다. 그러나, 애플리케이션-일관성 백업 프로세스들은 본 발명의 구현에 따른 단지 하나의 예시적인 "일관적인" 백업 동작들이라는 것을 이해할 것이다. 일관성 백업 프로세스들의 다른 예들은 파일 시스템 및/또는 크래쉬-일관성 백업 프로세스들을 포함한다.
어쨌든, 예를 들어 애플리케이션-일관성 백업들에 관련하여, 소정의 가상 기계들은 애플리케이션-일관성 백업들을 만들기 위해 적절한 라이터들 및 요청자들과 함께 설치될 수 있으며, 다른 가상 기계들은 적절한 라이터들 및 요청자들 없이도 설치될 수 있다. 이러한 적절한 컴포넌트들 없이도 실행되는 가상 기계들에 대해, 호스트(100)는 여전히 이러한 가상 기계들을 백업할 수 있지만, 반드시 적절한 컴포넌트들을 갖는 것과 동일한 방식으로 백업할 필요는 없을 것이다. 특히, 호스트(100)는 휴지기간 또는 중단 없이(또는 사실상 없이) 적절한 컴포넌트들을 보고하는 이러한 가상 기계들을 백업하도록 구성될 수 있으며, 대안적으로는 적어도 소정의 휴지기간 또는 중단을 갖고 적절한 컴포넌트들을 보고하지 않는(즉, 없거나 동작하지 않는) 가상 기계들을 백업하도록 구성될 수 있다.
따라서, 도 1a는, 백업 애플리케이션(105)(즉, "호스트 요청자")이 요청(103)을 호스트 라이터(125)에 전송함으로써 백업 서비스를 적어도 일부 시작하는 것을 도시한다. 이 경우에, 요청(103)은, 호스트 라이터(125)에게 어느 가상 기계들이 "휴지기간 없이" 백업될 수 있는지를 식별하도록 지시한다. 예를 들어, 요청(103)은, 호스트 라이터(125)에게 어느 가상 기계들(120, 130 등)이 내부 애플리케이션-일관성 백업을 수행하기 위해 적절한 게스트 라이터들 및/또는 요청자들을 포함하는지를 확인하도록 지시한다. 예컨대 MICROSOFT 환경에서의 일 구현에서, 이러한 컴포넌트들은 MICROSOFT VIRTUAL SERVER 기반구조 내에서 사용되는 "VM Additions"과 호환가능한 것들을 포함할 수 있다.
이러한 가상 기계 컴포넌트들 및 기타 마찬가지로 구성된 가상 기계 컴포넌트들은 예컨대 호스트-레벨 가상 서버 VSS 라이터와 가상 기계 내로부터 상호작용하도록(그리고, 이로부터의 명령에 응답하여) 구성된다. 또한, 도 1a는, 호스트 라이터(125)가 요청(103)을 수신하면, 가상 기계(120)와 메시지(111)(이는 예컨대 개인 Application Program Interface - "개인 API")를 통해 가상 기계(120)와 통신할 수 있고, 가상 기계(120)가 "버전 x"에 따른 컴포넌트들을 보고하는 것을 확인한다. 예를 들어, 도 1a는, 가상 기계(120)가 "게스트 요청자(140)"를 포함한다는 것을 도시한다.
또한, 도 1a는, 호스트 라이터(125)가 가상 기계(130)와 (예컨대 메시지(111)를 통해) 추가적으로 통신하고, 호스트 라이터(125)가 가상 기계(130)가 "버전 y"에 따른 컴포넌트들을 보고함을 확인하는 것을 도시한다. 이 구체적인 경우에, "버전 y"는, 가상 기계(130)가 일관성 백업 프로세스를 위한 적절한 컴포넌트들을 갖지 않음을 나타낸다. 가상 기계들(예컨대 120, 130 등)과의 통신에 응답하여, 호스트 라이터(125)는 백업 애플리케이션(105)에 수집된 응답의 하나 이상의 메시지들을 다시 전송할 수 있다. 예를 들어, 라이터는 메시지(113)를 전송하는데, 이 메시지는 가상 기계(120)가 버전 "x"이고 적절한 컴포넌트들을 보고함을 나타내고, 또한 가상 기계(130)가 버전 "y"이지만 적절한 컴포넌트들을 보고하지 않는 것을 나타낸다.
도 1a는, 백업 애플리케이션(105)이 메시지(113)를 수신함에 의해 메시지(113)를 취할 수 있고, 어느 가상 기계들이 백업될지, 그리고 어느 가상 기계들이 백업되지 않을지에 대한 그 자신의 결정을 할 수 있다는 것을 도시한다. 예를 들어, 도 1a는, 결정 모듈(107)이 메시지(113)의 정보를 파싱(parsing)하고, 가상 기계(120)를 "휴지기간 없이 백업하는 VM들" 범주로 위치시키고, 가상 기계(130)를 "소정의 휴지기간을 갖고 백업하는 VM들"(또는 백업하지 않는 VM들) 범주로 위치시킨다는 것을 도시한다. 대안적인 구현에서, 호스트 라이터(125)는 어느 것이 백업되고 또는 어느 것이 백업되지 않아야 하는지(또는, 소정의 휴지기간으로 백업되어야 하는지)에 대한 그 자신의 결정만을 행하고, 백업 애플리케이션(105)에 이러한 범주화를 다시 보고한다. 어쨋든, 도시된 범주화는, 그 중에서도 특히 가상 기계(130)가 백업되지 않을 것이라는 것을 반드시 의미하지는 않는다. 대부분의 경우에, 이는 가상 기계(120)가 적절하게 일관적인 형식으로 백업될 수 없다는 것, 그리고 가상 기계(130)가 소정의 휴지기간을 갖고 일관적인 형식으로 백업되도록만 구성될 수 있다는 것을 단순히 의미한다. 각각의 가상 기계를 범주화한 후에, 백업 애플리케이션(105)은 백업 프로세스 구현을 개시한다.
예를 들어, 도 1b에 도시된 바와 같이, 백업 애플리케이션(105)은 명령어들(117a)을 호스트 라이터(125)에 전송한다. 그러면, 명령어들(117a)은 다음에 호스트 라이터(125)에게 적어도 가상 기계(120)에 대하여 애플리케이션-일관성 백업 프로세스를 개시하라고 알린다. 그 후에, 호스트 라이터(125)는 그 자신의 통신(117b)을 준비하는데, 이 통신은 가상 기계에게 "라이터-관여된" 백업 프로세스를 개시하도록 알린다. 그 후, 호스트 라이터(125)는 백업 애플리케이션(105)에 의해 표시된 각각의 가상 기계(예컨대 120)에게 메시지(117b)를 전송하고, 각각의 표시된 가상 기계는 그 후에 그 대응하는 인-게스트(in-guest) 요청자를 통해 메시지(117b)를 수신한다.
예를 들어, 도 1b는, 가상 기계(120)의 게스트 요청자(140)가 메시지(117b)를 수신한다는 것을 도시한다. 일 구현에서, 호스트 라이터(125)는 하나 이상의 개인 API들을 통해, "RPC(Remote Procedure Call)" 등을 통해 게스트 요청자(140)와 통신할 수 있는데(예컨대, 메시지(111, 117b 등)), 이를 통하는 것은 모든 구현에서 요구되지는 않는다. 호스트 라이터(125) 및 게스트 요청자(140)가 별개의 네트워크 위치(또는 심지어 다른 도메인)에 위치되는 경우와 같은 다른 구현에서, 호스트 라이터(125)는 다른 적절한 통신 인터페이스 및/또는 컴포넌트와 통신할 수 있다. 특히, 본 발명의 구현은 WAN(Wide Area Network)을 통해 원격지로부터의 가상 기계를 백업할 필요가 있을 때도 또한 구현될 수 있다는 것을 이해할 것이다.
어쨌든, 일단 트리거링되면, 게스트 요청자(140)는 백업 애플리케이션(105)의 초기 명령에 따라 그 볼륨들의 백업 프로세스를 시작한다. 예를 들어 도 1b에 도시된 바와 같이, 게스트 요청자(140)는 가상 기계(120)에 의해 관리되는 임의의 볼륨들 상에 설치되는 애플리케이션들에게 가상 기계-내부 메시지(117c)를 전송한다. 메시지(117c)는 그 물리적인 디스크들(즉, VHD 파일들(123, 127)로 표현됨)에 포함된 볼륨들 내에서 관리된 각 볼륨의 애플리케이션-일관성 백업 프로세스를 준비하라는 명령어들 각각의 애플리케이션 라이터(예컨대, VSS 라이터이며 도시하지는 않았음)마다 포함할 수 있다. 일반적으로, 각각의 애플리케이션 라이터는 가상 기계 내의 애플리케이션들 및 서비스들에 포함될 수 있고 애플리케이션 데이터의 애플리케이션-일관성 백업들을 제공하는 것을 돕는 컴퓨터 실행가능 명령어들을 포함할 수 있다.
요청(117c)을 받았을 때 실행하는 애플리케이션들의 경우, 애플리케이션 라이터는 예컨대 그 데이터 저장소를 준비하고, 스냅숏이 생성되는 동안 볼륨(예컨대 123, 127) 상에 어떠한 쓰기도 발생하지 않는다는 것을 보장함으로써 응답할 수 있다. 디스크 상의 데이터를 일관적으로 만들기 위해, 애플리케이션 라이터는 또한 그 버퍼들을 디스크로 플러싱(flushing)할 수 있거나, 인-메모리(in-memory) 데이터를 디스크에 기록할 수 있다(write out). 또한, 애플리케이션 라이터는 포함 또는 배제할 애플리케이션 이름, 아이콘들, 파일들에 대한 정보를 제공할 수 있으며, 파일들을 복구할 정책을 제공할 수 있다. 실행하고 있지 않은 애플리케이션들의 경우, 대응하는 애플리케이션 라이터는 메시지(117c)에 응답하지 않을 수 있으며, 이에 따라, 게스트 요청자(140)는, 애플리케이션 라이터들에 의해 다루어지는 볼륨 상의 모든 데이터가 일관적이며, 데이터베이스는 폐쇄되어 있고, 백업을 수행하기 위해 추가적인 노력이 요구되지 않는다고 가정할 수 있다.
일반적으로, 본 발명의 하나 이상의 구현에 따른 애플리케이션 라이터는 하나 이상의 컴포넌트들과 연관될 수 있다. 그 후, 각각의 컴포넌트는 전체로서 복사될 파일들의 그룹을(예컨대, 데이터베이스 및 로그 파일들의 세트) 포함할 수 있다. 따라서, 각각의 애플리케이션 라이터는 각각의 컴포넌트 및 각각의 대응하는 컴포넌트의 파일의 데이터를 적절한 백업 서비스(예컨대, 가상 기계 요청자 - 예컨대 게스트 요청자(140))에 제공할 필요가 있을 것이다. 각각의 애플리케이션 라이터는 컴포넌트 별로(및, 이로써 컴포넌트-파일 별로) 데이터를 복구하는 것에 대한 정보를 추가적으로 제공할 수 있다. 예컨대 일 구현에서, 호스트 라이터(125)는 관리되는 가상 기계들(예컨대, 120, 130 등)에 대한 지속적인 정보를 유지하는 데 이용되는 파일들의 리스트를 제공할 수 있다. 예컨대 호스트 라이터(125)는 각각의 가상 기계에 대하여 특정의 가상 기계 구성 파일의 경로, 가상 하드 디스크 파일의 임의의 경로 등을 보고할 수 있다.
어쨌든, 그리고 명령(117c)에 응답하여, 도 1b는 볼륨들(123 및 127) 내의 대응하는 애플리케이션 라이터들이 내부에서 볼륨 데이터의 애플리케이션-일관성 상태를 생성하는 것을 도시한다. 대응하는 물리적인 디스크 파일(예컨대, VHD들(123, 127)) 내의 볼륨에 대해 관련된 애플리케이션들에 의해 보고된 볼륨 데이터는 볼륨 스냅숏들에 포함된다. 예를 들어, 도 1b는, VHD(123) 내의 볼륨 데이터(145)가 "데이터의 클린(clean) 사본"(155)으로서 복사되고, VHD(127) 내의 데이터(150)는 "데이터의 클린 사본"(160)으로서 복사된다는 것을 도시한다. 일반적으로, 이러한 데이터의 "클린" 사본들(155, 160)은 게스트 볼륨 스냅숏 내의 데이터의 일관적인 사본들(예컨대, 볼륨 섀도우(volume shadow) 사본)이며, 일반적으로 스냅숏 자체와 별개의 사본들을 구성하지는 않는다. 특히, "클린 사본들"(155, 160)은 Virtual Hard files(VHD들)(123, 127)(도 1a)에 각각 포함된 스냅숏들 내의 볼륨 데이터의 본질적으로 애플리케이션-일관적인 사본들이다.
일단 각각의 적절하게 구성된 가상 기계(예컨대 120)가 그 자신의 내부의 그 물리적 디스크 볼륨들의 애플리케이션-일관성(또는 "클린") 사본(예컨대 데이터(145)의 사본(155))을 만들면, 호스트 라이터(125)는 백업 애플리케이션(105)으로 하여금 적절하게 구성된 가상 기계들(예컨대 120)이 설치되는 호스트 볼륨들(예컨대 110)의 스냅숏들을 만들기를 진행할 수 있게 한다. 그러나, 이러한 호스트-레벨 스냅숏들의 내부에 있는 가상 기계 볼륨 데이터는 반드시 애플리케이션-일관성일 필요는 없다(즉, "더티(dirty)" 또는 "크래쉬 일관성").
일반적으로, "더티" 사본들은 가상 기계 볼륨 데이터에 대해 애플리케이션-일관적으로 보장될 수 없는 것들인데, 적어도 부분적으로 이들은 가상 기계들 내의 애플리케이션 라이터-관여된 스냅숏 프로세스들을 호출하지 않기 때문이다. 예를 들어, 호스트(100)는 라이터-관여된 프로세스들로 볼륨(110)을 백업하기 위하여 호스트-레벨 애플리케이션 라이터들(예컨대 호스트 라이터(125))을 사용할 수 있지만, 상술한 바와 같이 이러한 호스트-레벨 애플리케이션 라이터들은 이들이 호스트에 의해 보이므로 전체 가상 기계 파일들만을 복사할 것이다. 따라서, 호스트-레벨 볼륨 데이터의 애플리케이션-일관성 사본들을 생성하기 위하여 호스트-레벨 애플리케이션 라이터들을 이용한다고 할지라도, 각각의 하부의(underlying) 가상 기계는 볼륨(110)의 호스트-레벨 백업을 만들 시에 다양한 데이터 변화를 경험할 것이다.
예를 들어, 도 1c는, 호스트 라이터(125)가 메시지(157)를 백업 애플리케이션(105)에 전송하는 것을 도시하며, 메시지(157)는 가상 기계(예컨대 120)의 백업이 완료되었음을 나타낸다. 그래서, 백업 애플리케이션(105)은 호스트 볼륨(110)(또한 적절하다면 볼륨(115) 등)의 호스트-레벨 스냅숏들을 만드는 것을 진행할 수 있다. 도 1c는 이 예에서의 응답에서, 백업 애플리케이션(105)이 볼륨(110, 115 등)에서 백업 프로세스를 개시하는 것(예컨대 신호(135))을 도시한다. 일 구현에서, 예를 들어, 호스트 요청자(105)는 라이터-관여된 백업 프로세스를 개시하고, 호스트-레벨 VSS 컴포넌트(도시 생략)를 통해 (즉, 가상 기계 파일들을 제외하고 애플리케이션 일관적인) 호스트-레벨 볼륨들(110, 115) 상의 데이터의 애플리케이션-일관성 스냅숏을 생성한다.
예를 들어, 도 1c는, 호스트(100)가 호스트 볼륨들(110, 115)의 스냅숏(167, 173)을 생성하는 것을 도시한다. 또한, 스냅숏들(167, 173)은 내부에 가상 기계 VHD 파일들(즉, 볼륨(110) 내부의 VHD 파일(123) 등)의 사본들을 포함한다. 호스트-레벨 스냅숏 중에, 가상 기계들(120, 130)은 스냅숏 프로세스와 관련된 그 대응 라이터를 가지지 않았으므로, 더 새로운 호스트-레벨 스냅숏들은 애플리케이션-일관성이 없는 가상 기계-레벨 볼륨들에 대한 VHD 볼륨 데이터(예컨대 156, 161)를 포함한다. 그럼에도 불구하고, 관련 가상 기계가 그 볼륨들의 애플리케이션-일관성 사본을 이미 만들었으므로, 호스트-레벨 스냅숏(167) 내의 VHD 데이터(156)는 이전에 생성된(즉, 가상 기계가 생성한) 애플리케이션-일관성 스냅숏(155)를 포함한다. 마찬가지로, 호스트-레벨 스냅숏(167) 내의 VHD 데이터(161)는 이전에 생성된(즉, 가상 기계가 생성한) 애플리케이션-일관성 스냅숏(160)을 포함한다. 상술한 바와 같이, VHD 파일들(123, 127)의 호스트-레벨 스냅숏들(167)(또한 173) 내의 VHD 데이터(156, 161)는 일반적으로는 전체적으로 크래쉬 일관적이다.
호스트-레벨 볼륨들의 호스트-레벨 스냅숏들(167, 173)을 생성하면, 호스트(100)는 호스트-레벨 볼륨 스냅숏들(167, 173) 내로부터 가상 기계-레벨 스냅숏을 검색할 필요가 있을 것이다. 일 구현에서, 이는 호스트-레벨 VHD 스냅숏 데이터(156, 161)를 대응하는 가상 기계-레벨 스냅숏 데이터(155, 160)로 다시 복구하는 것을 포함한다. 이렇게 하기 위해서, 호스트 라이터(125)는 하부의 데이터를 노출하기 위해 임의의 개수의 적절한 컴포넌트들을 이용하여 파일 시스템 내에 이러한 호스트-레벨 및 가상 기계-레벨 스냅숏들을 우선 설치할 수 있다. 예를 들어, 백업 애플리케이션(105)은 호스트 스냅숏들(167, 173 등)(그리고 하부의 VHD 파일들 스냅숏들)을 (읽기 전용이 아니라) 쓰기 가능하게 만들도록 호스트 라이터(125)를 구성할 수 있다. 또한, 호스트 라이터(125)는 호스트-레벨 스냅숏들에 대한 이러한 디바이스 ID들을 획득할 수 있고 캡슐화된 VHD 파일들(예컨대, 123, 127)에 대응하는 상이한 "디바이스 ID들"을 식별하기 위해 이들을 이용할 수 있다.
쓰기 가능한 호스트-레벨 스냅숏들(167, 173) 내로부터 가상 기계 VHD 파일들을 노출시키면, 호스트 서버(100)는 VHD 파일에 대응하는 각각의 디바이스 ID를 탑재할 수 있으므로, 각각의 VHD 파일은 호스트-레벨에서 물리적인 디스크로서 보인다. 특히, 호스트 라이터(125)는 VHD 파일들(123, 127) 내의 각각의 볼륨을 식별하기 위해 이미지 마운터 컴포넌트(image mounter component)와 함께 호스트 스냅숏 내의 VHD 파일들(123, 127)에 대한 디바이스 ID들을 사용할 수 있다. 예를 들어, 도 1c는, 호스트 서버가 (예컨대, 호스트 라이터(125)를 통해) 인수(argument)로서 VHD 파일(123) 및 VHD 파일(127)에 대한 디바이스 ID를 포함하는 마운트 디바이스 ID를 탑재하라는 명령(175)을 전송한다. 예컨대 특히 MICROSOFT 운영 환경에 대한 일 구현에서, 호스트(100)는 탑재 명령(175)을 수신하고 실행하기 위하여 "VHDImageMounter" 컴포넌트를 사용할 수 있다.
호스트 스냅숏(167) 내로부터 VHD 파일들(123, 127)을 탑재하는 것은 이러한 VHD 파일들 내에 운영 시스템을 노출시킬 수 있으며, 이는 차례로 가상 기계-레벨 스냅숏들(155, 160)이 호스트 서버(100) 상에 노출되게 한다. 특히, 이 경우에 볼륨(110)의 호스트 스냅숏(167) 내로부터 VHD 파일들(123, 127)을 탑재하는 것은 호스트 스냅숏(167)의 다른 VHD 데이터(156, 161) 내부에 가상 기계-레벨 스냅숏들(155, 160)을 노출시킨다. 따라서, 또한 도 1c는, 호스트(100)가 드라이브 "x:\"로서 호스트 스냅숏(167) 내부에 VHD 파일(123)을 탑재하는 것을 도시하며(이는 VHD 데이터(156)를 노출시키고, 이전에 그 내부에 생성된 가상 기계-레벨 스냅숏 데이터(155)를 추가적으로 노출시킴), 드라이브 "y:\"로서 호스트 스냅숏(167) 내로부터 VHD 파일(127)을 추가적으로 탑재하는 것을 도시한다(호스트 스냅숏(167)은 또한 VHD 데이터(161)를 포함하고, 이 데이터에는 이전에 생성된 가상 기계-레벨 스냅숏 데이터(160)가 노출됨).
이제 백업 애플리케이션(105)이 호스트 스냅숏(167) 내로부터 VHD 파일들(123, 127)을 탑재하였으므로, 백업 애플리케이션(105)은 호스트-레벨 스냅숏(167)의 VHD 데이터(156, 161)를 가상 기계-레벨 볼륨 스냅숏들의 VHD 데이터(155, 160)로 다시 복구할 수 있다. 예컨대 도 1d에 도시된 바와 같이, 드라이브 "x" 및 "y" 내의 더티 및 클린 스냅숏 데이터를 복구하기 위해 백업 애플리케이션(105)은 컴포넌트 인터페이스(185)(예를 들어, VSS 컴포넌트 인터페이스)를 사용한다. 일 구현에서, 백업 애플리케이션(105)은 인터페이스(185)를 사용하여 VHD 데이터(156, 161)를 단순히 삭제하거나 오버라이팅(overwriting)하고 이를 대응하는 클린 VHD 데이터(155, 160)로 교체한다.
일단 이러한 교체를 행하면, 하부의 가상 기계-레벨 볼륨 데이터가 이제 충분히 일관성이 있도록, 백업 애플리케이션(105)은 VHD 파일들(123, 127)의 스냅숏 데이터를 보정하거나 조정(즉, 복구와 교체)하였을 뿐만 아니라, 전체의 호스트-레벨 스냅숏(167)을 변경한 것이다. 즉, 호스트-레벨 스냅숏들 내의 모든 가상 기계 데이터는 이제 또한 애플리케이션-일관적으로 고려될 수 있다. 또한, 가상 기계-레벨 스냅숏들(155, 160)의 제어는 호스트(100) 백업 프로세스의 제어 내에 놓인다. 따라서, 호스트(100)는 그 볼륨 스냅숏들의 그 자신의 애플리케이션-일관성 백업을 행하며, 이러한 호스트-레벨 백업은 이제 각각 적절하게 구성된 가상 기계의 애플리케이션-일관성 백업을 포함할 수 있다.
상술된 컴포넌트들 및 프로세스들은, 식별된 가상 기계(예컨대, 120)가 일관성 백업을 생성하기 위한 적절한 소프트웨어 컴포넌트들을 갖는 구성을 나타내는 응답을 제공하는 경우에 대해 주로 설명된다. 구체적으로, 이러한 가상 기계들(예컨대, 120)은 약간의 휴지기간 또는 휴지기간 없이 백업될 수 있다. 그러나, 상술한 바와 같이, 소정의 가상 기계는 이것이 실행되고 있지 않으므로 응답을 제공하지 않거나, 일관성 백업들을 행하도록 구성되지 않았음을 나타내는 응답을 제공하는 또 다른 예가 있을 수 있다. 예를 들어, 적절한 애플리케이션 라이터(예컨대, 섀도우 복사 서비스의 정확한 버전), 적절한 게스트 요청자(예컨대, 140) 등과 같은 특정의 요구되는 소프트웨어 컴포넌트들을 포함하지 않는 운영 체제를 가상 기계(130)가 실행할 수도 있다. 이러한 또 다른 예에서, 본 발명의 구현은, 후에 데이터가 일관성이 있음을 보장할 필요가 있는 경우에 적어도 소정의 후속 휴지기간을 필요로 하거나 필요로 하지 않을 수 있는 가상 기계들(예컨대 130)의 적어도 크래쉬 일관성 백업들을 여전히 제공할 수 있다.
예를 들어, 호스트 라이터(125)는 통신 인터페이스(도시 생략)을 호출할 수 있고, 그 인터페이스에게 가상 기계(130)(및/또는 다른 마찬가지로 제한되는 가상 기계들)의 상태 모두를 저장하라고 지시할 수 있다. 예를 들어, 특히 MICROSOFT 운영 환경에 대한 일 구현에서, 호스트 라이터(125)는 Virtual Server Communication 인터페이스(즉, "VS COM API", 도시 생략)를 호출할 수 있다. 통신 인터페이스는, 가상 기계(130) 상태를 저장하기를 완료한 때 호스트 라이터(125)에게 보고할 수 있다. 특히, 통신 인터페이스는 이를 호스트 라이터(125)에게 보고할 수 있으며, 이는 차례로 가상 기계(130)가 상주하는 대응 호스트 볼륨(즉, 볼륨(115))의 스냅숏을 백업 애플리케이션(105)이 생성하게 허용한다.
가상 기계(130) 상태를 저장하는 것 외에, 통신 인터페이스는 또한 임의의 적절한 가상 및/또는 개인 API들을 이용하여 가상 기계 동작을 순간적으로 중지하거나 중단할 수 있다. 통신 인터페이스가 예컨대 가상 기계(130) 상태에 대한 임의의 변화를 식별한다면, 통신 인터페이스는 이 정보를 보고할 수 있다. 이러한 보고는 차례로 백업 동작을 실패하게 하며 보다 적절한 시간에 재시작을 일으킬 수 있다. 특히, 백업 애플리케이션(105)은, 백업 애플리케이션(105)이 원하는 일관성의 상태에서 볼륨(115)의 스냅숏들을 생성하기를 완료할 때까지 이러한 단계들을 계속하여 반복할 수 있다.
일단 백업 동작들이 완료되면, 호스트(100)는 볼륨(110) 및 그 대응 가상 기계(예컨대, 120)의 애플리케이션-일관성 사본을 생성한 것이고, 볼륨(115) 및 그 대응 가상 기계(예컨대, 130)의 일관성(즉, 적어도 크래쉬 일관성) 사본을 추가적으로 생성한 것이다. 볼륨(115)의 이러한 사본은 크래쉬 일관적일 뿐만 아니라, VHD 파일의 상태에 대해 "VHD 일관적"임을 이해할 것이다. 특히, 가상 기계 상태를 저장하는 것은 원한다면, 이후의 시점에서 성공적으로 복구될 수 있는 유효하고 일관적인 VHD 파일을 제공할 수 있다.
또 다른 구현에서, 본 발명에 따른 컴포넌트들은 상술된 일관성 스냅숏 기능들 중 다수를 제공하는 하드웨어 제공자의 사용을 추가적으로 포함할 수 있다. 하드웨어 제공자를 사용할 때, 예컨대 "VSS Hardware Provider"(예컨대, 플렉스/미러(plex/mirror) 제공자), 볼륨(110, 115) 저장 장치는 별도의 위치에 "미러링되고 있는(mirrored)" "디스크 어레이" 상에 상주할 수 있다. 호스트-레벨 스냅숏(즉, 가상 기계에 대한 논(non)-애플리케이션-일관성)을 생성할 때인 경우에, 하드웨어 제공자는 볼륨과 그 대응 미러 사이에서 그 미러를 단순히 "깨뜨릴(break)" 수 있다. 이는 별개의 독립형 디스크 디바이스로서 호스트-레벨 스냅숏을 노출시킬 수 있다. 그러면, 백업 애플리케이션(105)은 쓰기 가능한 볼륨의 미러를 만들기 위해 임의의 개수의 Virtual Disk Service("VDS") 및/또는 Volume Shadow Copy Server("VSS") API들을 호출할 수 있고, 볼륨의 미러를 조작할 수 있고, 하부의 클린(즉, 애플리케이션-일관성) 스냅숏 데이터(155, 160)를 노출시키고 탑재할 수 있다. 몇개의 저장 매체들에 분산된 가상 기계들의 애플리케이션-일관성 백업들을 생성하기 위하여, 이러한 유형의 하드웨어 솔루션은 Storage Area Network("SAN")환경에서와 같은 원격으로 접속된 저장 볼륨들에서 사용될 수도 있다.
이들 방침을 따라, 본 발명의 구현은, 예컨대 특정 가상 기계(예컨대, 120) 내부에 하드웨어 이송가능한, 애플리케이션-일관성 스냅숏을 생성하기 위해 게스트 요청자(140)의 사용을 추가적으로 포함할 수 있다. 예를 들어, SAN 볼륨들의 스냅숏들을 위해 구성된 예컨대 가상 기계(120) 내부의 컴포넌트(예컨대, 적절하게 구성된 VSS 컴포넌트)는 게스트(예컨대, 가상 기계(120, 130))에 부착된 원격 볼륨의 라이터-관여된 스냅숏(도시 생략)을 생성할 수 있으며, 이 때문에 호스트 서버(100) VHD 파일은 존재하지 않는다. 그러면, 게스트 요청자(140)는 스냅숏을 가져올 수 있고, 호스트 서버 상의 별개의 Logical Unit Number("LUN")로서 스냅숏을 서피스(surface) 할 수 있다. 그러면, 호스트 라이터(125)는 백업 애플리케이션(105)(즉, 호스트 요청자)에게 가상 머신(120)를 백업하는 것의 일부로서 LUN을 백업할 것을 요청한다. 따라서, 백업 애플리케이션(105)은, 예컨대 가상 기계 볼륨의 호스트-레벨 스냅숏에 대한 복귀(reversion)가 필요하지 않도록, 전체 LUN을 백업할 수 있다(즉, 게스트 또는 가상 기계-레벨 스냅숏).
따라서,도 1a-1d 및 대응 텍스트는 일관적인 방식으로 가상 기계들의 효율적인 호스트-레벨 백업을 제공하기 위한 다수의 시스템들, 컴포넌트들 및 인터페이스들을 제공한다. 상술한 것 외에, 또한 본 발명의 구현은 특정 결과를 달성하기 위한 하나 이상의 단계들을 포함하는 방법들의 관점에서 설명될 수 있다. 예를 들어, 도 2는 가상 기계들의 호스트-레벨, 애플리케이션-일관성 백업들을 생성하기 위하여 호스트(100) 및 가상 기계(120)의 관점으로부터 흐름도를 도시한다. 도 2의 방법 및 대응 단계들이 도 1a-1d의 시스템 및 컴포넌트를 참조하여 이하 설명된다.
예를 들어, 도 2는, 하나 이상의 가상 기계들의 중단 또는 중지를 반드시 요구하지 않고서도 하나 이상의 가상 기계들 각각의 애플리케이션-일관성 백업을 생성하는 호스트(100)의 관점에서의 방법이 호스트 상의 하나 이상의 가상 기계들을 식별하는 단계(210)를 포함하는 것을 도시한다. 단계(210)는 라이터-관여된 백업 프로세스를 위한 하나 이상의 컴포넌트들을 갖는 적어도 하나의 가상 기계를 식별하는 것을 포함한다. 예를 들어, 백업 애플리케이션(105)(즉, "호스트 요청자"(105))는 (메시지(103)를 통해) 호스트 라이터(125)에게 어느 가상 기계들이 호스트(100) 상에 존재하는지, 그리고 이러한 가상 기계들 중 어느 것이 애플리케이션-일관성 방식으로 (즉, 작은 휴지기간 또는 휴지기간 없이) 백업될 수 있는지를 문의한다.
호스트 라이터(125), 예컨대 VSS 라이터는 대응 버전 요청(111)을 각각의 가상 기계(예컨대, 120, 130)에 전송하고, 애플리케이션-일관성 백업을 생성하는 데 이용될 수 있는 컴포넌트들과 같은, 백업 프로세스를 돕기 위해 존재하는 소프트웨어 컴포넌트들(예컨대, 게스트 요청자(140))을 식별한다. 그 후에, 호스트 라이터(125)는 대응 응답(113)을 백업 애플리케이션(105)에 전송한다. 그 후에, 백업 애플리케이션(105)은 예컨대 결정 모듈(107)을 통해, 식별된 가상 기계들 중 어느 것(즉, 적절한 컴포넌트들을 포함하는 "백업될 VM")이 애플리케이션-일관성 방법을 이용하여 백업될 수 있는지, 그리고 적절한 컴포넌트들을 포함하지 않거나 턴 오프된, 다른 방법들을 이용하여 백업될 가상 기계(즉, "소정의 휴지기간을 갖고 백업될 VM")를 결정한다.
따라서, 도 2는, 하나 이상의 가상 기계 볼륨들의 일관성 백업을 생성하는 가상 기계(120)의 관점에서 본 방법이 컴포넌트들을 식별하라는 요청을 수신하는 단계(210)를 포함한다는 것을 추가적으로 도시한다. 단계(210)는 이용가능한 소프트웨어 컴포넌트들을 식별하라는 요청을 호스트 라이터로부터 수신하는 것을 포함한다. 예를 들어, 가상 기계(120)는 (예컨대, 게스트 요청자(140)를 통해) 버전 요청(111)을 수신하며, 이 버전 요청은 가상 기계(120)가 게스트 요청자 및 하나 이상의 애플리케이션 라이터들(및/또는 그 적절한 버전)을 포함하는지를 식별하라는 요청을 포함하며, 애플리케이션 라이터들은 애플리케이션-일관성 백업을 생성하기 위한 적절한 컴포넌트일 것이다. 그 후, 가상 기계(120)는 대응하는 응답을 반환하는데, 호스트 라이터(125)는 이 대응 응답을 메시지(113)로서 포맷하고 백업 애플리케이션(105)에 전송한다.
또한, 도 2는, 호스트(100)의 관점에서의 본 방법이 가상 기계들의 세트에 백업 요청을 전송하는 단계(220)를 포함한다는 것을 도시한다. 단계(220)는 하나 이상의 가상 기계 볼륨들의 하나 이상의 기계-레벨 스냅숏들을 준비하기 위하여 하나 이상의 가상 기계들의 각각에 명령을 전송하는 것을 포함한다. 예를 들어 도 1b에 도시한 바와 같이, 백업 애플리케이션(105) 가상 기계(120)를 백업하는 명령(117a)을 호스트 라이터(125)에 전송하고, 여기서 가상 기계(120)는 작은 휴지기간을 갖거나 휴지기간이 없이 애플리케이션-일관성 스냅숏들을 생성하기 위한 적절한 컴포넌트들을 갖는 가상 기계들의 세트의 일부이다. 호스트 라이터(125)는 라이터-관여된 백업 준비를 개시하라는 명령(117b)을 가상 기계(120)에 있는 게스트 요청자(140)에게 전송한다.
따라서, 도 2는, 가상 기계(120)의 관점에서의 본 방법은 호스트 라이터로부터 스냅숏 요청을 수신하는 단계(230)를 또한 포함한다는 것을 도시한다. 단계(230)는 적어도 하나의 이용가능한 소프트웨어 컴포넌트들을 이용하여 가상 기계에 의해 호스팅된 하나 이상의 볼륨들의 스냅숏을 생성하라는 요청을 호스트 라이터로부터 수신한다. 예를 들어, 게스트 요청자(140)는 호스트 라이터(125)로부터 메시지(117b)를 수신하며, 이 메시지(117b)는 라이터-관여된 스냅숏 프로세스를 시작하라는 요청을 포함한다. 그래서, 가상 기계는 각각의 VHD 파일(예컨대, 123, 127 등)에 의해 관리되는 그 볼륨들의 스냅숏을 준비하는 것을 시작할 것이다.
또한, 도 2는, 가상 기계(120)의 관점에서의 본 방법은 하나 이상의 애플리케이션 라이터들에게 백업 명령을 전송하는 단계(240)를 포함한다. 단계(240)는 스냅숏을 위해 대응하는 하나 이상의 가상 기계 애플리케이션들을 준비하라는 명령을 가상 기계 상의 하나 이상의 애플리케이션 라이터들에게 전송하는 것을 포함한다. 예를 들어, 도 1b는, 게스트 요청자(140)가 VHD 파일들(123, 127) 내의 볼륨들 상의 애플리케이션 라이터들(도시 생략)에게 메시지(117c)를 전송하는 것을 도시한다. 일 구현에서, 이것은 관련된 볼륨 데이터의 스냅숏을 준비하라는 요청을 데이터베이스, 이메일 또는 기타 유사한 애플리케이션들과 같은 애플리케이션에 대응하는 라이터들에게 전송하는 것을 포함할 수 있다.
또한, 도 2는, 가상 기계(120)의 관점에서의 본 방법은 가상 기계 스냅숏들의 완료를 나타내는 신호를 전송하는 단계(250)를 포함한다는 것을 도시한다. 단계(250)는 호스트 라이터에게, 가상 기계 내에서 호스팅된 하나 이상의 볼륨들의 각각에 대한 스냅숏 동작들이 완료되었다는 신호를 전송하는 것을 포함한다. 예를 들어, 가상 기계 스냅숏 활동을 완료하면, 게스트 요청자는 호스트 라이터(125)에게 완료 신호(도시 생략)를 전송한다. 이 신호에 응답하여, 그 후에 호스트 라이터(125)는 백업 애플리케이션(105)에게 호스트-레벨 스냅숏 동작들을 종료하라고 알리는 메시지(157)를 백업 애플리케이션(105)에게 전송할 수 있다.
따라서, 또한 도 2는, 호스트(100)의 관점에서의 본 방법이 가상 기계 스냅숏들의 완료를 식별하는 단계(260)를 포함한다는 것을 도시한다. 단계(260)는, 적어도 하나의 가상 기계에서의 스냅숏 동작들이 종료되었음을 식별하는 것을 포함한다. 예를 들어, 상술한 바와 같이, 호스트 라이터(125)는, 가상 기계-레벨 스냅숏들이 완료되었음을 나타내는 메시지(157)를 전송한다.
또한 호스트(100)의 관점에서의 본 방법은, 하나 이상의 호스트-레벨 스냅숏들을 생성하는 단계(270)를 포함한다. 단계(270)는, 적어도 하나의 가상 기계가 설치되는 하나 이상의 호스트 볼륨들의 하나 이상의 호스트-레벨 스냅숏들을 생성하는 것을 포함한다. 예를 들어, 백업 애플리케이션(105)은 호스트 볼륨들(110, 115)에서 백업 프로세스를 계속하라는 명령(예컨대, 135)을 전송한다. 도 1b에 도시된 바와 같이, 이것은 호스트 스냅숏(167)이 논 애플리케이션-일관성 VHD 파일들(123, 127) 및 데이터(156, 161)를 포함하게 한다. 본 명세서에서 언급한 바와 같이, 호스트-레벨 스냅숏(167)의 상이한 VHD 데이터는 VHD 파일들(123, 127)에 대해 반드시 애플리케이션-일관성은 없지만, 그럼에도 불구하고 이전에 생성된 애플리케이션-일관성 VHD 스냅숏 데이터(155, 160)를 포함한다. 특히, 볼륨(110)의 호스트-레벨 스냅숏(167)은 VHD 파일들(123, 127 등)을 제외한 모든 다른 점에서 애플리케이션-일관성일 수 있다.
또 다른 구현에서, 하드웨어 제공자에서와 같이, 호스트-레벨 스냅숏들은 가상 기계가 설치된 호스트 볼륨(들)과 대응 미러 볼륨 사이에 미러를 깨뜨림으로써 미러링된 호스트-레벨 볼륨들의 경우에 만들어질 수 있다. 따라서, 미러 볼륨은 호스트 볼륨의 스냅숏을 포함한다. 또한, 이러한 스냅숏은 그 하나 이상의 볼륨들의 이전에 취해진 가상 기계-레벨 스냅숏들을 포함하는데, 여기서 가상 기계-레벨 스냅숏들은 애플리케이션-일관적이다. 따라서, 가상 기계-레벨 스냅숏은 호스트의 미러 볼륨으로부터 검색될 수 있다.
또한, 도 2는, 호스트(100)의 관점에서의 본 방법은 호스트 스냅숏의 VHD 파일들 내부에 캡슐화된 가상 기계-레벨 스냅숏들을 검색하는 단계(280)를 포함한다는 것을 도시한다. 단계(280)는 하나 이상의 호스트 볼륨들의 하나 이상의 호스트-레벨 스냅숏들로부터 하나 이상의 가상 기계 볼륨들의 하나 이상의 가상 기계-레벨 스냅숏들을 검색하는 것을 포함한다. 예를 들어, 도 1d에 도시된 바와 같이, 호스트(100)는 (예컨대, VSS 컴포넌트를 통해) VHD(123) 내의 호스트-레벨 VHD 스냅숏 데이터(156)를 가상 기계-레벨 VHD 스냅숏 데이터(155)로 교체할 수 있다. 마찬가지로, 호스트(100)는 VHD(127) 내의 호스트-레벨 VHD 데이터(161)를 가상 기계-레벨 VHD 스냅숏 데이터(160)로 교체할 수 있다. 대안적으로, 하드웨어 제공자의 경우에(즉, 호스트 볼륨과 미러 볼륨 사이에 미러를 깨뜨림), 가상 기계-레벨 스냅숏은 상술한 바와 같이 노출될 수 있고 탑재된 미러 볼륨으로부터 검색될 수 있다. 두 경우에, 호스트-레벨 백업 데이터(예컨대, 195)는 이와 같이 가상 기계-레벨 스냅숏 데이터에 적어도 일부 기초를 둘 수 있다.
따라서, 도 1a-2 및 대응 텍스트는 하나 이상의 호스트 볼륨들 상에 가상 기계들의 일관성 백업 사본들을 적절하게 생성하는 데 사용될 수 있는 다수의 시스템들, 컴포넌트들 및 메커니즘들을 제공한다. 본 명세서에서 설명한 바와 같이, 본 발명에 따른 컴포넌트들은 가상 기계의 휴지기간을 필요로 하지도 않고, 별도로 설치되고 관리될 필요가 있는 추가적인 백업 에이전트들의 구입을 필요로 하지도 않는 가상 기계들의 일관성 백업들을 생성하는 데 사용될 수 있다. 또한, 본 명세서에서 설명된 컴포넌트들은 가상 기계의 일관성 스냅숏을 생성하고, 호스트-레벨 스냅숏 내로부터 가상 기계 스냅숏을 검색하기 위해 통상적인 섀도우 복사 서비스를 이용할 수 있다.
본 발명의 실시예들은 이하 더욱 상세히 설명할 바와 같이 각종 컴퓨터 하드웨어를 포함하는 특수 목적 또는 범용 컴퓨터를 포함할 수 있다. 또한, 본 발명의 범위 내의 실시예들은 컴퓨터 실행가능 명령어들 또는 데이터 구조들을 반송하거나 저장하는 컴퓨터 판독가능 매체를 포함한다. 이러한 컴퓨터 판독가능 매체는 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있다.
예로써, 이러한 컴퓨터 판독가능 매체는, RAM, ROM, EEPROM, CD-ROM 또는 기타 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 기타 자기 저장 디바이스, 또는 컴퓨터 실행가능 명령어 또는 데이터 구조의 형태로 원하는 프로그램 코드 수단을 반송하거나 저장하는 데 이용될 수 있고, 범용 또는 특수 목적 컴퓨터에 의해 액세스될 수 있는 임의의 기타 매체를 포함할 수 있으나, 이에 제한되는 것은 아니다. 정보가 네트워크 또는 또 다른 통신 접속(유선 또는 무선, 또는 유선 또는 무선의 조합)을 통해 컴퓨터에 전달되거나 제공되는 경우에, 컴퓨터는 컴퓨터 판독가능 매체로서 적절히 그 접속을 고려한다. 따라서, 이러한 임의의 접속을 컴퓨터 판독가능 매체라고 하는 것이 적절하다. 상술한 것들의 조합이 또한 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다.
예를 들어, 컴퓨터 실행가능 명령어들은 범용 컴퓨터, 특수 목적 컴퓨터 또는 특수 목적 프로세싱 디바이스로 하여금 특정 기능 또는 기능들의 그룹을 수행하게 하는 명령어 및 데이터를 포함한다. 청구물이 구조적 특징 및/또는 방법론적인 단계에 특정된 언어로 설명되었지만, 첨부된 청구항에 규정된 청구물은 상술한 구체적인 특징 또는 단계들에 반드시 제한되지는 않음이 이해되어야 한다. 오히려, 상술한 구체적인 특징들 및 단계들은 청구항을 구현하는 예시적인 형태로서 개시되었다.
본 발명은 그 사상 또는 본질적인 특성을 벗어나지 않고도 기타 구체적인 형태로 구현될 수 있다. 설명된 실시예들은 모든 관점에서 단지 예시적인 것이며 제한적인 것으로 고려되어서는 않된다. 따라서, 본 발명의 범위는 상술한 설명이 아니라 첨부된 청구항에 의해 나타내어진다. 청구항의 동등성의 의미 및 범위 내에 드는 모든 변화는 그 범위 내에 포함되는 것이다.

Claims (20)

  1. 가상 기계 데이터의 백업을 생성하는 컴퓨터 구현 방법으로서,
    가상 기계와 관련된 가상 기계 데이터의 제1 스냅숏을 생성하는 단계와,
    상기 가상 기계가 제2 스냅숏을 생성하도록 하는 단계 - 상기 제2 스냅숏은 상기 가상 기계 상에서 실행되는 애플리케이션으로부터의 데이터를 포함함 - 와,
    상기 애플리케이션의 현재 상태와 일관된 데이터를 기록함으로써 상기 애플리케이션이 상기 제2 스냅숏의 생성에 참여하도록 하는 단계와,
    상기 제1 스냅숏을 상기 제2 스냅숏으로 갱신하는 단계
    를 포함하는 가상 기계 데이터의 백업을 생성하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 가상 기계 데이터의 제1 스냅숏을 생성하는 단계는 호스트 볼륨의 호스트-레벨 스냅숏을 만드는 단계를 포함하는
    가상 기계 데이터의 백업을 생성하는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 가상 기계 데이터는 가상 하드 드라이브 데이터를 포함하는
    가상 기계 데이터의 백업을 생성하는 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 애플리케이션이 상기 제2 스냅숏의 생성에 참여하도록 하는 단계는 상기 애플리케이션의 현재 상태와 일관된 데이터를 기록하라는 메시지를 상기 애플리케이션으로 전송하는 단계를 포함하는
    가상 기계 데이터의 백업을 생성하는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 애플리케이션이 상기 제2 스냅숏의 생성에 참여하도록 하는 단계는 상기 애플리케이션이 메모리 내의 데이터(in-memory data)를 디스크에 기록하는 단계를 포함하는
    가상 기계 데이터의 백업을 생성하는 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 가상 기계가 제2 스냅숏을 생성하도록 하는 단계는 상기 가상 기계의 상태를 저장하는 인터페이스를 호출(invoke)하는 단계를 포함하는
    가상 기계 데이터의 백업을 생성하는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 제1 스냅숏을 상기 제2 스냅숏으로 갱신하는 단계는 상기 호스트 상에서 실행되는 프로세스에게 물리적 디스크로 보이도록 상기 가상 기계 데이터를 탑재(mount)하는 단계를 포함하는
    가상 기계 데이터의 백업을 생성하는 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    상기 제1 스냅숏을 상기 제2 스냅숏으로 갱신하는 단계는 상기 제1 스냅숏의 가상 하드 드라이브 데이터를 상기 제2 스냅숏의 가상 하드 드라이브 데이터로 대체하는 단계를 포함하는
    가상 기계 데이터의 백업을 생성하는 컴퓨터 구현 방법.
  9. 컴퓨팅 장치가 실행하는 명령어가 저장된 컴퓨터 판독 가능 저장 매체로서,
    상기 명령어는 상기 컴퓨팅 장치로 하여금
    제1 백업 프로세스가 가상 기계 볼륨 데이터를 포함하는 제1 백업을 생성하도록 하는 단계 - 상기 가상 기계 볼륨 데이터는 가상 기계에 대응함 - 와,
    상기 가상 기계가 제2 백업을 생성하도록 하는 지시를 전송하는 단계 - 상기 제2 백업은 상기 가상 기계 상에서 실행되는 애플리케이션에 의해 제공되는 백업 상태 데이터를 포함함 - 와,
    상기 제1 백업 내의 상기 가상 기계 볼륨 데이터를 상기 제2 백업을 사용하여 갱신하는 단계
    를 포함하는 방법을 수행하도록 하는 컴퓨터 판독 가능 저장 매체.
  10. 제9항에 있어서,
    상기 방법은 상기 가상 기계가 라이터-관여된 백업 프로세스를 위한 컴포넌트를 가진다는 지시를 수신하는 단계 - 상기 라이터-관여된 백업 프로세스는 상기 가상 기계 상에서 실행되는 애플리케이션의 개입(involvement)을 포함함 - 를 더 포함하는
    컴퓨터 판독 가능 저장 매체.
  11. 제9항에 있어서,
    상기 방법은 상기 가상 기계가 휴지기간 동안 백업되었는지 또는 휴지기간 없이 백업되었는지 여부를 나타내는 정보를 수신하는 단계를 더 포함하는
    컴퓨터 판독 가능 저장 매체.
  12. 제9항에 있어서,
    상기 제1 백업 프로세스 상기 제1 백업을 생성하도록 하는 단계는 스냅숏을 생성하기 위해 하드웨어 제공자를 사용하는 단계를 포함하는
    컴퓨터 판독 가능 저장 매체.
  13. 제9항에 있어서,
    상기 가상 기계는 원격 컴퓨팅 시스템 상에서 실행되는
    컴퓨터 판독 가능 저장 매체.
  14. 제9항에 있어서,
    상기 방법은 상기 제1 백업 상의 데이터를 노출하는 가상 하드 드라이브를 탑재하는 단계를 더 포함하는
    컴퓨터 판독 가능 저장 매체.
  15. 제9항에 있어서,
    상기 방법은 상기 가상 기계가 실행을 일시 중지 또는 중단하도록 하는 단계를 더 포함하는
    컴퓨터 판독 가능 저장 매체.
  16. 제9항에 있어서,
    상기 방법은 상기 제2 백업의 생성이 완료되었다는 지시를 수신하는 단계를 더 포함하는
    컴퓨터 판독 가능 저장 매체.
  17. 제9항에 있어서,
    상기 방법은 게스트 운영 체제에 속한 원격 볼륨의 스냅숏을 호스트 상의 분리된 장치로서 노출시키는 단계를 더 포함하는
    컴퓨터 판독 가능 저장 매체.
  18. 컴퓨터에 의해 실행시 상기 컴퓨터가 오퍼레이션을 수행하도록 하는 컴퓨터 실행가능 명령어가 저장된 컴퓨터 판독 가능 저장 매체로서,
    상기 오퍼레이션은
    미러링된 저장 장치 상의 미러링 프로세스를 중단하는 단계 - 상기 미러링된 저장 장치는 제1 메모리 및 제2 메모리를 포함하고, 상기 제1 메모리 상에는 가상 디스크 볼륨이 저장되며, 상기 미러링 프로세스는 상기 제2 메모리를 상기 제1 메모리의 미러 이미지로 유지함 - 와,
    가상 기계를 백업 프로세스에 참여시키는 단계 - 상기 가상 기계는 애플리케이션을 실행하고, 상기 애플리케이션은 현재 상태를 가짐 - 와,
    상기 애플리케이션의 현재 상태와 일관된 데이터를 갖는 스냅숏을 생성하기 위해 상기 애플리케이션을 상기 백업 프로세스에 참여시키는 단계와,
    상기 제2 메모리 내에서 상기 가상 디스크 볼륨의 위치를 찾는 단계와,
    상기 가상 디스크 볼륨을 상기 스냅숏으로 갱신하는 단계
    를 포함하는 컴퓨터 판독 가능 저장 매체.
  19. 제18항에 있어서,
    상기 오퍼레이션은 상기 제2 메모리를 독립된 디스크 장치로서 노출시키는 단계를 더 포함하는
    컴퓨터 판독 가능 저장 매체.
  20. 제18항에 있어서,
    상기 미러링된 저장 장치는 SAN(storage area network)인
    컴퓨터 판독 가능 저장 매체.
KR1020137025294A 2006-04-17 2007-02-15 가상 기계 볼륨 데이터의 애플리케이션-일관성 백업 생성 방법 KR101432463B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/405,236 2006-04-17
US11/405,236 US8321377B2 (en) 2006-04-17 2006-04-17 Creating host-level application-consistent backups of virtual machines
PCT/US2007/004183 WO2007130192A1 (en) 2006-04-17 2007-02-15 Creating host-level application-consistent backups of virtual machines

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020087025498A Division KR101330495B1 (ko) 2006-04-17 2007-02-15 가상 기계 볼륨 데이터의 애플리케이션-일관성 백업 생성 방법

Publications (2)

Publication Number Publication Date
KR20130115391A true KR20130115391A (ko) 2013-10-21
KR101432463B1 KR101432463B1 (ko) 2014-08-21

Family

ID=38606087

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020137025294A KR101432463B1 (ko) 2006-04-17 2007-02-15 가상 기계 볼륨 데이터의 애플리케이션-일관성 백업 생성 방법
KR1020087025498A KR101330495B1 (ko) 2006-04-17 2007-02-15 가상 기계 볼륨 데이터의 애플리케이션-일관성 백업 생성 방법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020087025498A KR101330495B1 (ko) 2006-04-17 2007-02-15 가상 기계 볼륨 데이터의 애플리케이션-일관성 백업 생성 방법

Country Status (14)

Country Link
US (3) US8321377B2 (ko)
EP (1) EP2016501B1 (ko)
JP (1) JP5021721B2 (ko)
KR (2) KR101432463B1 (ko)
CN (1) CN101421715B (ko)
AU (1) AU2007248869B2 (ko)
BR (1) BRPI0710003B1 (ko)
CA (1) CA2645969C (ko)
ES (1) ES2639417T3 (ko)
MX (1) MX2008013132A (ko)
MY (1) MY154949A (ko)
RU (1) RU2433458C2 (ko)
TW (1) TWI438689B (ko)
WO (1) WO2007130192A1 (ko)

Families Citing this family (153)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9209989B2 (en) * 2004-06-01 2015-12-08 Inmage Systems, Inc. Causation of a data read operation against a first storage system by a server associated with a second storage system according to a host generated instruction
US8949395B2 (en) 2004-06-01 2015-02-03 Inmage Systems, Inc. Systems and methods of event driven recovery management
US7979656B2 (en) 2004-06-01 2011-07-12 Inmage Systems, Inc. Minimizing configuration changes in a fabric-based data protection solution
US7698401B2 (en) 2004-06-01 2010-04-13 Inmage Systems, Inc Secondary data storage and recovery system
US8224786B2 (en) * 2004-06-01 2012-07-17 Inmage Systems, Inc. Acquisition and write validation of data of a networked host node to perform secondary storage
US7676502B2 (en) * 2006-05-22 2010-03-09 Inmage Systems, Inc. Recovery point data view shift through a direction-agnostic roll algorithm
US8055745B2 (en) * 2004-06-01 2011-11-08 Inmage Systems, Inc. Methods and apparatus for accessing data from a primary data storage system for secondary storage
US8868858B2 (en) * 2006-05-19 2014-10-21 Inmage Systems, Inc. Method and apparatus of continuous data backup and access using virtual machines
US8683144B2 (en) * 2005-09-16 2014-03-25 Inmage Systems, Inc. Causation of a data read against a first storage system to optionally store a data write to preserve the version to allow viewing and recovery
US8601225B2 (en) * 2005-09-16 2013-12-03 Inmage Systems, Inc. Time ordered view of backup data on behalf of a host
US8321377B2 (en) * 2006-04-17 2012-11-27 Microsoft Corporation Creating host-level application-consistent backups of virtual machines
US8554727B2 (en) * 2006-05-19 2013-10-08 Inmage Systems, Inc. Method and system of tiered quiescing
US8527470B2 (en) 2006-05-22 2013-09-03 Rajeev Atluri Recovery point data view formation with generation of a recovery view and a coalesce policy
US8527721B2 (en) * 2008-12-26 2013-09-03 Rajeev Atluri Generating a recovery snapshot and creating a virtual view of the recovery snapshot
US8838528B2 (en) * 2006-05-22 2014-09-16 Inmage Systems, Inc. Coalescing and capturing data between events prior to and after a temporal window
JP4681505B2 (ja) * 2006-05-23 2011-05-11 株式会社日立製作所 計算機システム、管理計算機及びプログラム配布方法
US7634507B2 (en) * 2006-08-30 2009-12-15 Inmage Systems, Inc. Ensuring data persistence and consistency in enterprise storage backup systems
US7689859B2 (en) * 2006-12-20 2010-03-30 Symantec Operating Corporation Backup system and method
JP4982249B2 (ja) * 2006-12-22 2012-07-25 株式会社日立製作所 運用整合性維持方法、システム及びプログラム
US8554734B1 (en) * 2007-07-19 2013-10-08 American Megatrends, Inc. Continuous data protection journaling in data storage systems
US8458419B2 (en) * 2008-02-27 2013-06-04 International Business Machines Corporation Method for application backup in the VMware consolidated backup framework
US8522135B2 (en) * 2008-06-06 2013-08-27 International Business Machines Corporation Generating a transformation description document for transforming messages
US9356805B2 (en) * 2008-06-06 2016-05-31 International Business Machines Corporation Implementing a plurality of interface definitions
US8090909B2 (en) 2008-06-06 2012-01-03 Pivot3 Method and system for distributed raid implementation
US8219750B2 (en) * 2008-06-30 2012-07-10 Pivot3 Method and system for execution of applications in conjunction with distributed RAID
US8135930B1 (en) 2008-07-14 2012-03-13 Vizioncore, Inc. Replication systems and methods for a virtual computing environment
US8060476B1 (en) 2008-07-14 2011-11-15 Quest Software, Inc. Backup systems and methods for a virtual computing environment
US8046550B2 (en) 2008-07-14 2011-10-25 Quest Software, Inc. Systems and methods for performing backup operations of virtual machine files
US8028194B2 (en) * 2008-07-25 2011-09-27 Inmage Systems, Inc Sequencing technique to account for a clock error in a backup system
US20100031079A1 (en) * 2008-07-29 2010-02-04 Novell, Inc. Restoration of a remotely located server
US7966290B2 (en) * 2008-07-29 2011-06-21 Novell, Inc. Backup without overhead of installed backup agent
US20100058106A1 (en) * 2008-08-27 2010-03-04 Novell, Inc. Virtual machine file system and incremental snapshot using image deltas
US8429649B1 (en) * 2008-09-25 2013-04-23 Quest Software, Inc. Systems and methods for data management in a virtual computing environment
US8499297B2 (en) * 2008-10-28 2013-07-30 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay
US8707299B1 (en) * 2008-11-14 2014-04-22 Symantec Corporation Method and apparatus for preserving virtual desktops for e-discovery through an agent-less solution
US8069227B2 (en) * 2008-12-26 2011-11-29 Inmage Systems, Inc. Configuring hosts of a secondary data storage and recovery system
US8205050B2 (en) * 2009-04-14 2012-06-19 Novell, Inc. Data backup for virtual machines
US8996468B1 (en) 2009-04-17 2015-03-31 Dell Software Inc. Block status mapping system for reducing virtual machine backup storage
JP5227887B2 (ja) * 2009-05-21 2013-07-03 株式会社日立製作所 バックアップ管理方法
US8219990B2 (en) * 2009-05-28 2012-07-10 Novell, Inc. Techniques for managing virtual machine (VM) states
US9778946B2 (en) 2009-08-07 2017-10-03 Dell Software Inc. Optimized copy of virtual machine storage files
US8438349B2 (en) * 2009-08-21 2013-05-07 Symantec Corporation Proxy backup of virtual disk image files on NAS devices
CN102025758B (zh) * 2009-09-18 2014-06-04 华为数字技术(成都)有限公司 分布式系统中数据副本的恢复方法、装置和系统
US8856080B2 (en) * 2009-10-30 2014-10-07 Microsoft Corporation Backup using metadata virtual hard drive and differential virtual hard drive
US8726275B2 (en) * 2009-12-18 2014-05-13 International Business Machines Corporation Selective partial cloning of virtual machines in a virtual computing environment
JP5440273B2 (ja) * 2010-03-09 2014-03-12 富士通株式会社 スナップショット管理方法、スナップショット管理装置、及びプログラム
US8255508B2 (en) 2010-03-24 2012-08-28 International Business Machines Corporation Administration of virtual machine affinity in a data center
US9367362B2 (en) 2010-04-01 2016-06-14 International Business Machines Corporation Administration of virtual machine affinity in a cloud computing environment
US8572612B2 (en) 2010-04-14 2013-10-29 International Business Machines Corporation Autonomic scaling of virtual machines in a cloud computing environment
US8326803B1 (en) * 2010-05-06 2012-12-04 Symantec Corporation Change tracking of individual virtual disk files
TWI486759B (zh) * 2010-05-14 2015-06-01 Alibaba Group Holding Ltd Subversion configuration library backup method and device
CN102255741B (zh) * 2010-05-21 2015-09-16 中兴通讯股份有限公司 用户业务信息备份方法和装置
US9569446B1 (en) 2010-06-08 2017-02-14 Dell Software Inc. Cataloging system for image-based backup
US8434081B2 (en) 2010-07-02 2013-04-30 International Business Machines Corporation Storage manager for virtual machines with virtual storage
US20120005672A1 (en) * 2010-07-02 2012-01-05 International Business Machines Corporation Image management for virtual machine instances and associated virtual storage
WO2012020482A1 (ja) 2010-08-11 2012-02-16 富士通株式会社 バックアップ方法、情報処理装置及びプログラム
US8898114B1 (en) 2010-08-27 2014-11-25 Dell Software Inc. Multitier deduplication systems and methods
US8677004B2 (en) * 2010-09-10 2014-03-18 International Business Machines Corporation Migration of logical partitions between two devices
US9037547B1 (en) * 2010-09-15 2015-05-19 Symantec Corporation Backup time deduplication of common virtual disks from virtual machine backup images
US20120072685A1 (en) * 2010-09-16 2012-03-22 Hitachi, Ltd. Method and apparatus for backup of virtual machine data
KR101731422B1 (ko) 2010-10-04 2017-04-28 삼성전자주식회사 가상화 환경에서의 장애 복구 장치 및 방법
US8417672B2 (en) * 2010-10-11 2013-04-09 Microsoft Corporation Item level recovery
US9141368B2 (en) 2011-03-10 2015-09-22 Microsoft Technology Licensing, Llc Managing boot loaders for virtual hard disks
US8892707B2 (en) * 2011-04-13 2014-11-18 Netapp, Inc. Identification of virtual applications for backup in a cloud computing system
US8725782B2 (en) * 2011-04-25 2014-05-13 Microsoft Corporation Virtual disk storage techniques
US9519496B2 (en) 2011-04-26 2016-12-13 Microsoft Technology Licensing, Llc Detecting and preventing virtual disk storage linkage faults
US9021475B2 (en) * 2011-05-04 2015-04-28 Citrix Systems, Inc. Systems and methods for SR-IOV pass-thru via an intermediary device
US8868882B2 (en) 2011-06-08 2014-10-21 Microsoft Corporation Storage architecture for backup application
US9286182B2 (en) 2011-06-17 2016-03-15 Microsoft Technology Licensing, Llc Virtual machine snapshotting and analysis
US9785523B2 (en) * 2011-06-20 2017-10-10 Microsoft Technology Licensing, Llc Managing replicated virtual storage at recovery sites
US8886903B2 (en) 2011-06-23 2014-11-11 Hitachi, Ltd. Storage management system and storage management method
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US8850130B1 (en) 2011-08-10 2014-09-30 Nutanix, Inc. Metadata for managing I/O and storage for a virtualization
US8863124B1 (en) 2011-08-10 2014-10-14 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
US8549518B1 (en) 2011-08-10 2013-10-01 Nutanix, Inc. Method and system for implementing a maintenanece service for managing I/O and storage for virtualization environment
US9009106B1 (en) 2011-08-10 2015-04-14 Nutanix, Inc. Method and system for implementing writable snapshots in a virtualized storage environment
US9747287B1 (en) 2011-08-10 2017-08-29 Nutanix, Inc. Method and system for managing metadata for a virtualization environment
US9652265B1 (en) * 2011-08-10 2017-05-16 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment with multiple hypervisor types
JP6063941B2 (ja) 2011-08-30 2017-01-18 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. システム管理要求のための仮想高特権モード
JP5134149B1 (ja) * 2011-09-26 2013-01-30 株式会社北洋銀行 ネットワークシステム及びその制御方法
CN102346697A (zh) * 2011-09-27 2012-02-08 宇龙计算机通信科技(深圳)有限公司 一种安卓安装包的备份与恢复的方法、系统及移动终端
CN103107905B (zh) * 2011-11-14 2017-08-04 华为技术有限公司 异常处理方法、装置和客户端
CN102521071B (zh) * 2011-11-24 2013-12-11 广州杰赛科技股份有限公司 一种基于私有云的虚拟机维护方法
US9311375B1 (en) 2012-02-07 2016-04-12 Dell Software Inc. Systems and methods for compacting a virtual machine file
US9773006B1 (en) * 2012-02-15 2017-09-26 Veritas Technologies Llc Techniques for managing non-snappable volumes
JP5966466B2 (ja) * 2012-03-14 2016-08-10 富士通株式会社 バックアップ制御方法、および情報処理装置
CN103797461B (zh) * 2012-03-29 2016-03-16 株式会社北洋银行 网络系统
US9104331B2 (en) * 2012-09-28 2015-08-11 Emc Corporation System and method for incremental virtual machine backup using storage system functionality
US8751515B1 (en) 2012-03-30 2014-06-10 Emc Corporation System and method for file-based virtual machine incremental backup
US8719286B1 (en) 2012-03-30 2014-05-06 Emc Corporation System and method for block-based subtree virtual machine backup
US9110604B2 (en) 2012-09-28 2015-08-18 Emc Corporation System and method for full virtual machine backup using storage system functionality
WO2013157124A1 (ja) * 2012-04-19 2013-10-24 株式会社日立製作所 ライセンス管理システム、管理サーバ及び管理方法
US10353619B1 (en) * 2012-06-11 2019-07-16 Veritas Technologies Llc Systems and methods for applying storage lifecycle policies to backups
US9772866B1 (en) 2012-07-17 2017-09-26 Nutanix, Inc. Architecture for implementing a virtualization environment and appliance
CN103593256B (zh) * 2012-08-15 2017-05-24 阿里巴巴集团控股有限公司 一种基于多层排重的虚机快照备份方法和系统
US9778860B2 (en) 2012-09-12 2017-10-03 Microsoft Technology Licensing, Llc Re-TRIM of free space within VHDX
WO2014052333A1 (en) * 2012-09-28 2014-04-03 Emc Corporation System and method for full virtual machine backup using storage system functionality
US9262212B2 (en) 2012-11-02 2016-02-16 The Boeing Company Systems and methods for migrating virtual machines
US9069708B2 (en) * 2012-12-27 2015-06-30 Nutanix, Inc. Method and system for implementing consistency groups with virtual machines
CN103902351A (zh) * 2012-12-28 2014-07-02 鸿富锦精密工业(深圳)有限公司 虚拟机运算系统及方法
CN104216793B (zh) * 2013-05-31 2017-10-17 国际商业机器公司 应用程序备份、恢复的方法及设备
JP6115331B2 (ja) 2013-06-06 2017-04-19 富士通株式会社 トランザクション再開プログラム、情報処理装置及びトランザクション再開方法
US9665386B2 (en) * 2013-06-14 2017-05-30 Nutanix, Inc. Method for leveraging hypervisor functionality for maintaining application consistent snapshots in a virtualization environment
US9740514B1 (en) 2013-06-26 2017-08-22 Nutanix, Inc. Method and system to share data with snapshots in a virtualization environment
US9262448B2 (en) * 2013-08-12 2016-02-16 International Business Machines Corporation Data backup across physical and virtualized storage volumes
US10359951B1 (en) * 2013-08-23 2019-07-23 Acronis International Gmbh Snapshotless backup
US9652178B2 (en) * 2013-09-10 2017-05-16 Veritas Technologies Systems and methods for protecting virtual machine data
CN103501290B (zh) * 2013-09-18 2017-10-24 万达信息股份有限公司 一种基于动态备份虚拟机的高可靠服务系统构建方法
CN103593226A (zh) * 2013-11-04 2014-02-19 国云科技股份有限公司 一种提高虚拟机磁盘io性能的方法
WO2015074200A1 (zh) 2013-11-20 2015-05-28 华为技术有限公司 一种生成快照的方法、系统和装置
CN104809020B (zh) * 2013-11-20 2018-05-11 华为技术有限公司 一种生成快照的方法、系统和装置
CN104793982A (zh) * 2014-01-20 2015-07-22 联想(北京)有限公司 一种创建虚拟机的方法和设备
TWI506418B (zh) * 2014-03-03 2015-11-01 Synology Inc 備份裝置及運作方法
US11243707B2 (en) 2014-03-12 2022-02-08 Nutanix, Inc. Method and system for implementing virtual machine images
US9092376B1 (en) 2014-08-29 2015-07-28 Nimble Storage, Inc. Methods and systems for ordering virtual machine snapshots
US9778990B2 (en) 2014-10-08 2017-10-03 Hewlett Packard Enterprise Development Lp Methods and systems for concurrently taking snapshots of a plurality of virtual machines
US9558078B2 (en) 2014-10-28 2017-01-31 Microsoft Technology Licensing, Llc Point in time database restore from storage snapshots
US9727252B2 (en) 2014-11-13 2017-08-08 Hewlett Packard Enterprise Development Lp Methods and systems for optimal snapshot distribution within a protection schedule
US9817686B2 (en) 2014-12-09 2017-11-14 The Boeing Company Systems and methods for securing virtual machines
US10289495B1 (en) * 2014-12-19 2019-05-14 EMC IP Holding Company LLC Method and system for performing an item level restore from a backup
US10606704B1 (en) * 2014-12-31 2020-03-31 Acronis International Gmbh Creation of consistent copies of application data
JP6069395B2 (ja) * 2015-04-02 2017-02-01 株式会社日立製作所 管理計算機
US10846195B2 (en) * 2015-10-05 2020-11-24 Unisys Corporation Configuring logging in non-emulated environment using commands and configuration in emulated environment
US10180886B2 (en) 2015-11-16 2019-01-15 Red Hat, Inc. Recreating a computing environment using tags and snapshots
TWI584131B (zh) * 2015-12-14 2017-05-21 財團法人工業技術研究院 伺服器備份方法及其備份系統
US10114702B2 (en) * 2016-01-06 2018-10-30 International Business Machines Corporation Method and system to discover and manage distributed applications in virtualization environments
US10467103B1 (en) 2016-03-25 2019-11-05 Nutanix, Inc. Efficient change block training
CN109313565A (zh) * 2016-05-02 2019-02-05 诺基亚通信公司 虚拟网络环境中的快照创建
US10613947B2 (en) 2016-06-09 2020-04-07 Nutanix, Inc. Saving and restoring storage devices using application-consistent snapshots
US10146471B1 (en) * 2016-06-27 2018-12-04 Emc Corporation Offloaded data protection based on virtual machine snapshots
US10241713B2 (en) 2016-09-01 2019-03-26 Red Hat Israel, Ltd. Snapshot management with an external storage service
US10379750B2 (en) * 2017-05-22 2019-08-13 Sap Se Processing large requests in data storage systems with limited/constant buffer sizes
US10417096B2 (en) * 2017-07-20 2019-09-17 Vmware, Inc. Multi-virtual machine time consistent snapshots
US10824522B2 (en) 2017-11-27 2020-11-03 Nutanix, Inc. Method, apparatus, and computer program product for generating consistent snapshots without quiescing applications
CN107995319B (zh) * 2018-01-08 2021-05-18 迈普通信技术股份有限公司 虚拟设备配置方法及网络设备
CN110058962B (zh) * 2018-01-18 2023-05-23 伊姆西Ip控股有限责任公司 确定虚拟机快照的一致性级别的方法、设备和计算机程序产品
US11232001B2 (en) * 2018-01-29 2022-01-25 Rubrik, Inc. Creation of virtual machine packages using incremental state updates
US10838823B2 (en) * 2018-02-01 2020-11-17 EMC IP Holding Company LLC Systems and method to make application consistent virtual machine backup work in private network
US11455215B2 (en) 2018-04-30 2022-09-27 Nutanix Inc. Context-based disaster recovery
US11093333B1 (en) * 2019-04-05 2021-08-17 EMC IP Holding Company LLC Efficient recovery of multiple virtual machines
US11321185B2 (en) * 2019-04-30 2022-05-03 EMC IP Holding Company LLC Method to detect and exclude orphaned virtual machines from backup
US11461121B2 (en) 2019-07-26 2022-10-04 Red Hat, Inc. Guest-driven virtual machine snapshots
US10969989B2 (en) * 2019-07-30 2021-04-06 EMC IP Holding Company LLC Techniques for capturing virtual machine snapshots using data storage system snapshots
WO2021050906A1 (en) * 2019-09-12 2021-03-18 restorVault Virtual recovery and replication of unstructured data
US11630737B2 (en) 2019-09-12 2023-04-18 Restorvault, Llc Virtual replication of unstructured data
CN111104367B (zh) * 2019-12-13 2023-08-18 浪潮云信息技术股份公司 一种基于openstack卷启动虚拟机创建私有镜像的方法
CN112130959B (zh) * 2020-09-29 2021-12-07 上海英方软件股份有限公司 一种虚拟机的保护系统及方法
US11663086B2 (en) * 2020-10-15 2023-05-30 EMC IP Holding Company LLC File system slicing in network attached storage for data protection
US11467738B2 (en) * 2021-01-28 2022-10-11 EMC IP Holding Company LLC Failsafe mechanism to import snapshots
US11816129B2 (en) 2021-06-22 2023-11-14 Pure Storage, Inc. Generating datasets using approximate baselines
US20230229641A1 (en) * 2022-01-16 2023-07-20 Bytebase (HongKong) Limited Novel database schema change, recording and version control method and platform
US20230409445A1 (en) * 2022-06-16 2023-12-21 Dell Products L.P. Memory simulation of agent service for secured restore
US11836350B1 (en) 2022-07-25 2023-12-05 Dell Products L.P. Method and system for grouping data slices based on data file quantities for data slice backup generation

Family Cites Families (72)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0827754B2 (ja) * 1992-05-21 1996-03-21 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムにおけるファイル管理方法及びファイル管理システム
US5475834A (en) 1992-10-26 1995-12-12 International Business Machines Corporation Integration of migration level two and backup tape processing using multiple inventory entries
US5771354A (en) 1993-11-04 1998-06-23 Crawford; Christopher M. Internet online backup system provides remote storage for customers using IDs and passwords which were interactively established when signing up for backup services
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
US6247141B1 (en) 1998-09-24 2001-06-12 Telefonaktiebolaget Lm Ericsson (Publ) Protocol for providing replicated servers in a client-server system
CN100384191C (zh) 1999-06-10 2008-04-23 阿尔卡塔尔互联网运行公司 基于策略的网络体系结构
US6714980B1 (en) 2000-02-11 2004-03-30 Terraspring, Inc. Backup and restore of data associated with a host in a dynamically changing virtual server farm without involvement of a server that uses an associated storage device
US6711699B1 (en) 2000-05-04 2004-03-23 International Business Machines Corporation Real time backup system for information based on a user's actions and gestures for computer users
US6993761B1 (en) * 2000-09-28 2006-01-31 Sun Microsystems, Inc. Method and apparatus to verify type safety of an application snapshot
US7035963B2 (en) * 2000-12-27 2006-04-25 Intel Corporation Method for resolving address space conflicts between a virtual machine monitor and a guest operating system
US6735601B1 (en) * 2000-12-29 2004-05-11 Vmware, Inc. System and method for remote file access by computer
US6728736B2 (en) * 2001-03-14 2004-04-27 Storage Technology Corporation System and method for synchronizing a data copy using an accumulation remote copy trio
GB0112781D0 (en) 2001-05-25 2001-07-18 Global Continuity Plc Method for rapid recovery from a network file server failure
US6948038B2 (en) * 2001-07-24 2005-09-20 Microsoft Corporation System and method for backing up and restoring data
US7251625B2 (en) * 2001-10-02 2007-07-31 Best Buy Enterprise Services, Inc. Customer identification system and method
US6751715B2 (en) 2001-12-13 2004-06-15 Lsi Logic Corporation System and method for disabling and recreating a snapshot volume
US20070094466A1 (en) * 2001-12-26 2007-04-26 Cisco Technology, Inc., A Corporation Of California Techniques for improving mirroring operations implemented in storage area networks and network based virtualization
JP2003202964A (ja) 2002-01-09 2003-07-18 Hitachi Ltd 計算機システムの制御方法、計算機システム、記憶装置の制御方法及び記憶装置
US7093086B1 (en) * 2002-03-28 2006-08-15 Veritas Operating Corporation Disaster recovery and backup using virtual machines
JP2003309564A (ja) 2002-04-17 2003-10-31 Mitsubishi Electric Corp マイクロコンピュータシステムおよびそれに使用されるトランシーバ
JP2003316522A (ja) 2002-04-26 2003-11-07 Hitachi Ltd 計算機システムおよび計算機システムの制御方法
US7313793B2 (en) * 2002-07-11 2007-12-25 Microsoft Corporation Method for forking or migrating a virtual machine
FI119407B (fi) 2002-08-28 2008-10-31 Sap Ag Korkean palvelutason ohjelmistopohjainen yhteyspalvelin
US7089377B1 (en) 2002-09-06 2006-08-08 Vmware, Inc. Virtualization system for computers with a region-based memory architecture
KR100439675B1 (ko) 2002-10-24 2004-07-14 한국전자통신연구원 대용량 공유 저장장치를 위한 효율적인 스냅샷 수행방법
US8209680B1 (en) * 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
CN1331063C (zh) * 2003-06-10 2007-08-08 联想(北京)有限公司 基于数据卷快照的在线数据备份方法
US7047380B2 (en) * 2003-07-22 2006-05-16 Acronis Inc. System and method for using file system snapshots for online data backup
JP4466001B2 (ja) 2003-08-06 2010-05-26 株式会社日立製作所 スナップショット高速化方法
US7953819B2 (en) * 2003-08-22 2011-05-31 Emc Corporation Multi-protocol sharable virtual storage objects
TWI223756B (en) 2003-10-09 2004-11-11 Univ Nat Sun Yat Sen Automatic register backup/restore system and method
US7373451B2 (en) * 2003-12-08 2008-05-13 The Board Of Trustees Of The Leland Stanford Junior University Cache-based system management architecture with virtual appliances, network repositories, and virtual appliance transceivers
US7139887B2 (en) * 2003-12-31 2006-11-21 Veritas Operating Corporation Coordinated storage management operations in replication environment
US7490103B2 (en) * 2004-02-04 2009-02-10 Netapp, Inc. Method and system for backing up data
US8359491B1 (en) * 2004-03-30 2013-01-22 Symantec Operating Corporation Disaster recovery rehearsal using copy on write
US7096392B2 (en) 2004-05-07 2006-08-22 Asempra Technologies, Inc. Method and system for automated, no downtime, real-time, continuous data protection
US20050267920A1 (en) 2004-05-13 2005-12-01 Fabrice Helliker System and method for archiving data in a clustered environment
JP4050249B2 (ja) 2004-05-20 2008-02-20 株式会社エヌ・ティ・ティ・データ 仮想マシン管理システム
US7299326B2 (en) 2004-06-09 2007-11-20 Taiwan Semiconductor Manufacturing Company, Ltd. System and method for providing backup service continuity using a virtual backup service path
US7580826B2 (en) 2004-06-30 2009-08-25 Microsoft Corporation Systems and methods for development of emulated devices in a virtual machine environment
US20060047926A1 (en) * 2004-08-25 2006-03-02 Zheng Calvin G Managing multiple snapshot copies of data
US20060080521A1 (en) 2004-09-23 2006-04-13 Eric Barr System and method for offline archiving of data
JP4550541B2 (ja) * 2004-10-06 2010-09-22 株式会社日立製作所 ストレージシステム
US20060085784A1 (en) * 2004-10-15 2006-04-20 Microsoft Corporation Systems and methods for authoring and accessing computer-based materials using virtual machines
US7840963B2 (en) * 2004-10-15 2010-11-23 Microsoft Corporation Marking and utilizing portions of memory state information during a switch between virtual machines to minimize software service interruption
GB2419701A (en) * 2004-10-29 2006-05-03 Hewlett Packard Development Co Virtual overlay infrastructure with dynamic control of mapping
US20060123210A1 (en) * 2004-12-06 2006-06-08 St. Bernard Software, Inc. Method for logically consistent backup of open computer files
US7409719B2 (en) * 2004-12-21 2008-08-05 Microsoft Corporation Computer security management, such as in a virtual machine or hardened operating system
US7899788B2 (en) * 2005-04-01 2011-03-01 Microsoft Corporation Using a data protection server to backup and restore data on virtual servers
US7669020B1 (en) * 2005-05-02 2010-02-23 Symantec Operating Corporation Host-based backup for virtual machines
WO2007002398A2 (en) * 2005-06-24 2007-01-04 Syncsort Incorporated System and method for virtualizing backup images
US8024292B2 (en) * 2005-06-29 2011-09-20 Emc Corporation Creation of a single snapshot using a server job request
US20070094659A1 (en) * 2005-07-18 2007-04-26 Dell Products L.P. System and method for recovering from a failure of a virtual machine
US7404056B1 (en) * 2005-12-07 2008-07-22 Nvidia Corporation Virtual copying scheme for creating multiple versions of state information
US7694101B2 (en) * 2005-12-30 2010-04-06 Vmware, Inc. Implementing virtual disk reservations on a storage media for multiple distributed applications
US8001342B2 (en) * 2006-03-29 2011-08-16 International Business Machines Corporation Method for storing and restoring persistent memory content and virtual machine state information
US7606868B1 (en) * 2006-03-30 2009-10-20 Wmware, Inc. Universal file access architecture for a heterogeneous computing environment
US7774391B1 (en) * 2006-03-30 2010-08-10 Vmware, Inc. Method of universal file access for a heterogeneous computing environment
US8296759B1 (en) * 2006-03-31 2012-10-23 Vmware, Inc. Offloading operations to a replicate virtual machine
US8056076B1 (en) * 2006-03-31 2011-11-08 Vmware, Inc. Method and system for acquiring a quiesceing set of information associated with a virtual machine
US8151263B1 (en) * 2006-03-31 2012-04-03 Vmware, Inc. Real time cloning of a virtual machine
US8321377B2 (en) * 2006-04-17 2012-11-27 Microsoft Corporation Creating host-level application-consistent backups of virtual machines
US7653794B2 (en) * 2006-05-08 2010-01-26 Microsoft Corporation Converting physical machines to virtual machines
US7707185B1 (en) * 2006-10-19 2010-04-27 Vmware, Inc. Accessing virtual data storage units to offload operations from a computer system hosting a virtual machine to an offload server
US8032351B2 (en) * 2006-11-30 2011-10-04 Symantec Corporation Running a virtual machine directly from a physical machine using snapshots
US7689859B2 (en) * 2006-12-20 2010-03-30 Symantec Operating Corporation Backup system and method
US8677352B2 (en) * 2007-10-31 2014-03-18 Vmware, Inc. Interchangeable guest and host execution environments
US8060476B1 (en) * 2008-07-14 2011-11-15 Quest Software, Inc. Backup systems and methods for a virtual computing environment
US8046550B2 (en) * 2008-07-14 2011-10-25 Quest Software, Inc. Systems and methods for performing backup operations of virtual machine files
US8135930B1 (en) * 2008-07-14 2012-03-13 Vizioncore, Inc. Replication systems and methods for a virtual computing environment
US8117410B2 (en) * 2008-08-25 2012-02-14 Vmware, Inc. Tracking block-level changes using snapshots
US8234469B2 (en) * 2009-07-09 2012-07-31 Microsoft Corporation Backup of virtual machines using cloned virtual machines

Also Published As

Publication number Publication date
AU2007248869B2 (en) 2011-09-08
EP2016501B1 (en) 2017-06-07
TW200809626A (en) 2008-02-16
MY154949A (en) 2015-08-28
CA2645969C (en) 2015-02-03
AU2007248869A1 (en) 2007-11-15
CA2645969A1 (en) 2007-11-15
CN101421715A (zh) 2009-04-29
KR20090005330A (ko) 2009-01-13
EP2016501A4 (en) 2009-11-11
BRPI0710003A2 (pt) 2011-08-02
BRPI0710003B1 (pt) 2018-11-13
EP2016501A1 (en) 2009-01-21
MX2008013132A (es) 2008-10-21
BRPI0710003A8 (pt) 2017-01-17
ES2639417T3 (es) 2017-10-26
JP2009533777A (ja) 2009-09-17
WO2007130192A1 (en) 2007-11-15
RU2433458C2 (ru) 2011-11-10
US20070244938A1 (en) 2007-10-18
CN101421715B (zh) 2012-01-04
US20170075912A1 (en) 2017-03-16
US9529807B2 (en) 2016-12-27
KR101330495B1 (ko) 2013-11-15
JP5021721B2 (ja) 2012-09-12
RU2008141158A (ru) 2010-04-27
KR101432463B1 (ko) 2014-08-21
TWI438689B (zh) 2014-05-21
US20130085994A1 (en) 2013-04-04
US8321377B2 (en) 2012-11-27

Similar Documents

Publication Publication Date Title
KR101432463B1 (ko) 가상 기계 볼륨 데이터의 애플리케이션-일관성 백업 생성 방법
KR101376952B1 (ko) 머신을 가상 머신으로 변환하는 방법
US9671967B2 (en) Method and system for implementing a distributed operations log
CN111488241B (zh) 在容器编排平台实现无代理备份与恢复操作的方法和系统
US8458422B1 (en) Policy based creation of export sets and backup media
US6243774B1 (en) Apparatus program product and method of managing computer resources supporting concurrent maintenance operations
CN112035293A (zh) 虚拟机集群备份
US8001339B1 (en) Storage management policies in a virtual data storage system
US7475277B1 (en) Automated repair of damaged objects
US8087021B1 (en) Automated activity processing
US11663096B1 (en) Managing storage domains, service tiers and failed storage domain
US20230305876A1 (en) Managing storage domains, service tiers, and failed servers
EP3629180A1 (en) Method and system for reliably restoring virtual machines

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for 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: 20170719

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190718

Year of fee payment: 6