KR101465928B1 - Converting machines to virtual machines - Google Patents

Converting machines to virtual machines Download PDF

Info

Publication number
KR101465928B1
KR101465928B1 KR1020137031209A KR20137031209A KR101465928B1 KR 101465928 B1 KR101465928 B1 KR 101465928B1 KR 1020137031209 A KR1020137031209 A KR 1020137031209A KR 20137031209 A KR20137031209 A KR 20137031209A KR 101465928 B1 KR101465928 B1 KR 101465928B1
Authority
KR
South Korea
Prior art keywords
machine
virtual
virtual machine
host
volumes
Prior art date
Application number
KR1020137031209A
Other languages
Korean (ko)
Other versions
KR20140000720A (en
Inventor
마이클 엘. 마이클
윌리암 엘. 샤이델
벤자민 알랜 레이스
카란 메라
벤카타스브라만얌 라만
나탈리아 브이. 바라바
Original Assignee
마이크로소프트 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US11/430,676 priority Critical
Priority to US11/430,676 priority patent/US7653794B2/en
Application filed by 마이크로소프트 코포레이션 filed Critical 마이크로소프트 코포레이션
Priority to PCT/US2007/006021 priority patent/WO2007130209A1/en
Publication of KR20140000720A publication Critical patent/KR20140000720A/en
Application granted granted Critical
Publication of KR101465928B1 publication Critical patent/KR101465928B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending, resuming virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing
    • Y02D10/20Reducing energy consumption by means of multiprocessor or multiprocessing based techniques, other than acting upon the power supply
    • Y02D10/22Resource allocation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing
    • Y02D10/20Reducing energy consumption by means of multiprocessor or multiprocessing based techniques, other than acting upon the power supply
    • Y02D10/26Increasing resource utilisation, e.g. virtualisation, consolidation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing
    • Y02D10/20Reducing energy consumption by means of multiprocessor or multiprocessing based techniques, other than acting upon the power supply
    • Y02D10/28Load distribution
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing
    • Y02D10/30Reducing energy consumption in distributed systems
    • Y02D10/36Resource sharing

Abstract

실제(또는 이전의 가상) 머신이 실행되고 있는 동안에, 실제 머신 볼륨이 가상 머신 호스트에서 가상 머신으로 변환될 수 있다. While the actual (or prior virtual) machine is running, there is a physical machine volumes can be converted to a virtual machine at the virtual machine host. 일 구현에서, 하나 이상의 볼륨이 실행되고 있는 동안에, 하나 이상의 실제 머신 볼륨의 애플리케이션(및/또는 파일 시스템)-일관형 스냅샷을 생성하는 데 볼륨 쉐도우 복사 서비스가 사용될 수 있다. In one implementation, during which more than one volume is running, the application of one or more physical machine volumes (and / or the file system) may be used Volume Shadow Copy Service to create a consistent snapshot. 그리고, 스냅샷 데이터는 가상 머신 호스트의, 탑재된 가상 하드 디스크 파일(동적 또는 고정됨)로 전달될 수 있다. Then, the snapshot data may be delivered to the virtual machine host, the mounted virtual hard disk file (dynamic or fixed). 그리고, 가상 머신 내의 운영 체체(들) 및 가상 하드 디스크 파일과 연관된 동작 정보(예를 들면, 부팅 기록, 시스템 레지스트리, 드라이버, 장치, 구성 선호도 등)는, 대응하는 가상 머신이 가상 머신 호스트에서 부팅 가능하고 기능하는 것을 보장하기 위하여 적절하게 변경될 수 있다. Then, the operation information associated with the operating tsetse (s) and the virtual hard disk file in the virtual machine (e.g., boot record, system registry, drivers, devices, configuration preferences, etc.), the corresponding virtual machine is booted from the virtual machine host to It may be suitably modified to ensure that the available functions. 그리고, 가상 하드 디스크 파일은 탑재 해제되어, 새로운 가상 머신으로서 사용될 수 있다. Then, the virtual hard disk file is dismounted, can be used as a new virtual machine.

Description

머신을 가상 머신으로 변환하는 방법{CONVERTING MACHINES TO VIRTUAL MACHINES} How to convert the machine into a virtual machine {CONVERTING MACHINES TO VIRTUAL MACHINES}

컴퓨터화된 환경에서 상이한 유형의 리소스(소프트웨어, 하드웨어 또는 그 조합)들을 분산시키는 방법은 여러 가지가 있다. Of different types in a computerized environment, the resource method of dispersing the (software, hardware or a combination thereof) has a number of reasons. 예를 들면, 소프트웨어 관점에서, 기업체는 복수의 다른 컴퓨터들에 운영 체제(또는 애플리케이션 프로그램)의 복수의 사본을 설치할 수 있고, 이에 의해 여러 시스템들 간에 하나의 사본을 분산시킬 수 있다. For example, in a software point of view, businesses may install multiple copies of the operating system (or application program) to a plurality of other computers, thereby to distribute one copy of among the different systems. 하드웨어를 공유하는 통상적인 방법은, 다양한 저장 또는 파일 공유 필요성을 위해 복수의 다른 컴퓨터 시스템들이 다른 컴퓨터의 드라이브 공간에 액세스할 수 있도록 네트워크 상에 컴퓨터 시스템을 셋업하는 것을 포함한다. Conventional method of sharing a piece of hardware, and comprises a plurality of other computer systems to set up the computer system on the network to allow access to the drive space of the computer for a variety of other storage or file sharing needs.

그러나, 하드웨어 성능(즉, 현재 저장, 메모리 및 처리 용량)의 최근의 발달을 보면, 단순히 통상적인 저장 및/또는 네트워크 트래픽 관리 기능을 제공하는 것만으로는 소정의 실제 머신(physical machine)을 최대한으로 활용할 수 없는 경향이 있다는 것을 의미하고 있다. However, the performance of the hardware In the recent development of the (i. E., The current storage, memory, and throughput capacity), simply conventional storage and / or network simply by a given physical machine (physical machine) to provide a traffic management function to the maximum It has meant that there is a tendency not to take advantage. 이와 같은 경우, 조합된 소프트웨어 및 하드웨어 관점에서 리소스들을 분산시키는 추가적인 방법은 이제 단일의 실제 시스템 상에 복수의 가상 컴퓨터 시스템들을 설치하는 것을 포함한다. In this case, the method of dispersing additional resources from a combined software and hardware standpoint now include installing multiple virtual computer systems on a single physical machine. 일반적으로, 가상 머신(virtual machine)은 호스트의 저장 장치의 전용 부분 상의 특정 운영 체제의 고유한 인스턴스, 및 호스트 메모리 및 처리 능력의 할당 부분을 이용하여 설치될 수 있다. In general, the virtual machine (virtual machine) can be set up by using the allocated portion of the particular operating system on a dedicated portion of the storage device of the host unique instance, and the host memory and processing power.

이들 및 기타 특징들 때문에, 가상 머신은 다른 가상 머신, 심지어는 가상 머신이 설치된 호스트 서버와도 쉽게 구분될 수 있다. Because of these and other features, virtual machines can also be easily distinguished from other virtual machines, and even host server virtual machine installed. 네트워크 상의 다른 사용자에게, 가상 머신은 단순히 네트워크 상의 임의의 다른 실제 컴퓨터 시스템과 같은 별도로 어드레스 가능한 컴퓨터 시스템으로서 보일 것이다. To other users on the network, the virtual machine would simply appear as a separately addressable computer system, such as any other physical computer system on the network. 그리고, 가상 머신은 네트워크 상의 다른 서버(예를 들면, 이메일 또는 데이터베이스 서버)로서 사용되거나, 소프트웨어 또는 하드웨어 테스트 목적을 위해 사용되거나, 씬 클라이언트(thin client)에 대한 메인 컴퓨터 시스템으로서 사용되거나 하는 등과 같은 광범위한 목적에 사용될 수 있다. Then, the virtual machine is the same as that used or a different server (for example, e-mail or database server) on the network, or used for software or hardware testing purposes, used as a main computer system for the thin client (thin client) or It can be used in a wide range of purposes.

이러한 기능 외에, 가상 머신은 상당히 용이하게, 일부 경우에는 빠르게 설치되고 셋업될 수 있을 뿐만 아니라 제거될 수도 있다는 추가적인 이점도 제공할 수 있다. In addition to these features, the virtual machine can provide additional benefits that quite easily, there may be installed and removed quickly and in some cases not only can be set up. 예를 들면, 특정한 호스트 컴퓨터 시스템에 대한 관리자는 가상 머신에 대한 요청을 수신하고, 호스트 컴퓨터 상에 적절한 리소스들을 수동으로 할당하여, 요청된 가상 머신을 설치할 수 있다. For example, an administrator for a particular host computer system receives a request for a virtual machine, manually allocate appropriate resources on the host computer, it is possible to install the requested virtual machine. 가상 머신이 더 이상 필요 없어지면, 관리자는 호스트 서버에서 가상 머신을 종료(shut down)시키거나, 심지어는 가상 머신을 제거하라는 하나 이상의 명령을 수동으로 선택할 수 있다. Disappears, the virtual machine is no longer needed, the administrator can select one or more ordered to shut down (shut down) the virtual machine on the host server, or even remove a virtual machine manually. 따라서, 조직(organization)은 하나 또는 몇 개의 호스트 서버가 수 백개의 가상 머신들을 잠재적으로 호스트하게 함으로써, 실제 머신들(서버, 퍼스널 컴퓨터 등)의 수를 감소시키기를 원할 수 있다. Thus, the organization (organization) may wish to reduce the number of one or a few, by the host server to the potential to host hundreds of virtual machines to physical machines (servers, personal computers, etc.). 특히, 조직이 전력 절약, 열(temperature)/냉각 절약, 공간 절약 및 감소된 실제 머신 사용에 의해 이용 가능한 다른 절약들을 포함해서 다양한 리소스 소비 및 머신 관리 비용을 줄일 수 있으면, 이러한 통합(consolidation)에 의해 다수의 이점들을 제공할 수 있음이 이해될 것이다. In particular, if the tissue is the power-saving, it reduces the heat (temperature) / cooling savings, space savings, and to include other savings available by the reduced physical machine to use various resource consumption and machine management costs, in this integration (consolidation) this can be provided by a number of benefits to be understood.

불행하게도, 다수의 기존의 실제 컴퓨터 시스템들을 가상 머신들로 변환하는 것에 의해 실제 머신들을 통합시키는 것은 간단한 문제가 아니다. Unfortunately, the consolidation of physical machines by converting a number of existing physical computer system into a virtual machine is not a simple matter. 특히, 일반적으로 실제 드라이브의 콘텐츠를 호스트 서버의 파티션에 단순히 복사하는 것만으로는 이용 가능한 가상 머신을 생성하는 데 충분하지 않다. In particular, usually to simply copy the content of a physical drive on the host server partition is not enough to produce a usable virtual machines. 예를 들면, 실제 머신이 실행되고 있는 동안에 실제 머신의 드라이브의 기본적 복사를 행하는 것은 파일 상태에 모순(inconsistency)(즉, 데이터가 "애플리케이션-일관형(application-consistent)"이 아님)을 생성할 수 있다. For example, it is while the physical machine is running for performing basic copy of a physical machine drive contradiction (inconsistency) the file status - to generate (i.e., data is not the "application consistent type (application-consistent)") can. 이와 같이, 실제 머신에서 데이터를 액세스하고 있는 애플리케이션은 나중에 가상 머신으로 이동될 때, 데이터의 사본을 사용하는 것이 불가능하다. In this way, applications that are accessing data at the physical machine when later moved to a virtual machine, it is not possible to use the copy of the data. 또한, 이러한 사본을 호스트 서버로 단순히 전송하는 것만으로는 시스템 레지스트리에 다른 모순을 일으키거나, 여러 디스크 및 네트워크 드라이버와 모순을 일으키거나, 운영 체제 바이너리(binary)에 모순을 일으키거나 등등을 할 수 있다. In addition, to simply transfer those copies to the host server will cause the contradiction raised other contradictions in the system registry, or multiple disks and network causing the driver and contradictions, or the operating system binaries (binary), or can be, etc. . 이러한 어려움들을 극복하기 위한 일부 메커니즘들이 존재하긴 하지만, 그렇게 하기 위한 통상적인 메커니즘들은 전형적으로 현저한 가동 중지 시간(downtime) 및 리소스 낭비(인간 및 소프트웨어 측면 모두에서)를 수반한다. Although some mechanisms exist to overcome these difficulties, however, conventional mechanisms for doing so are typically accompanied by significant downtime (downtime), and a waste of resources (both human and software aspects).

예를 들면, 실제 머신을 변환하는 한 가지 방법은 가상 머신 호스트(virtual machine host)에서 아무것도 없는 상태로부터(from scratch) 가상 머신을 생성하는 단계를 포함한다. For example, one method of converting a physical machine involves the step of generating from the state with nothing in the host virtual machine (virtual machine host) (from scratch) the virtual machine. 특히, 관리자는 단순히 실제 머신의 모든 애플리케이션을 새로운 가상 머신에 설치하고, 파일 시스템 및 애플리케이션 데이터를 가상 머신으로 전송하고 나서, 아무것도 없는 상태로부터 및/또는 애플리케이션 복원 동작을 통해 가상 머신에서 임의의 다른 작업 부하(workload)를 재구축할 수 있다. In particular, the administrator simply any other work in all applications, the new virtual machine installation, file system, and then transfer the application data to a virtual machine, the virtual machine through the operation from nothing status and / or the application to restore the physical machine you can rebuild the load (workload). 물론, 이 방법은 여러 가지 관점에서 바람직하지 않은데, 특히 수백 개의 실제 머신을 가상 머신으로 변환하려고 하는 경우, 조직의 리소스에 낭비를 발생시킬 수 있다. Of course, this method can cause a case, the waste of resources of the organization to try to convert undesirable in many respects, particularly the hundreds of physical machines to virtual machines.

실제 머신을 변환하기 위한 다른 방법은, 실제 머신의 콘텐츠의 전달 가능한(transferable) 사본을 생성하기 위하여 ADS(Automated Deployment Service) 및/또는 PXE(Pre-Installation Executable Environment)와 같은 상당히 복잡한 인프라스트럭쳐(infrastructure) 컴포넌트를 사용하는 단계를 포함한다. Other methods for converting a physical machine, to produce a (transferable) copies as possible delivery of the contents of the physical machine ADS (Automated Deployment Service) and / or the PXE fairly complex infrastructure, such as (Pre-Installation Executable Environment) (infrastructure ) comprises the step of using the component. 일반적으로, 이러한 유형의 인프라스트럭쳐를 사용하는 메커니즘은 실제 머신을 종료시키고, 예를 들어 PXE를 이용하여 실제 머신을 재부팅하는 단계를 포함한다. In general, mechanisms using this type of infrastructure include shutting down the physical machine, and the step, for example, rebooting the physical machine with the PXE. 이는 관리자로 하여금 고유의 운영 체제를 로드시키지 않고도 실제 머신을 시작하게 할 수 있기 때문에, 복사 프로세스 동안에 파일에 대한 기입을 금지시킬 수 있다. This can allow the administrator to prohibit writing to the file during the copying process, it is possible to begin a physical machine without having to load your own operating system.

실제 드라이브 콘텐츠를 복사한 후에, 관리자는 가상 머신 호스트로 콘텐츠를 전달할 수 있다. After copying the physical drive content, administrators can deliver the content to the virtual machine host. 이것만으로도 수 기가바이트의 데이터에 대해 한 시간 이상이 걸릴 수 있다. This may take an hour or more for the number of groups of bytes of data only. 데이터를 전달하면, 관리자는 복사된 콘텐츠를 가상 머신으로서 부팅가능하게 하기 위하여 전달된 데이터에 상대적으로 복잡한 수 많은 변화들을 행할 필요가 있다. Passing the data, the administrator needs to be a relatively large number of complex changes in the data transmission in order to enable the boot to the copied content as a virtual machine. 변환되고 있는 실제 머신을 오프라인으로 하고 또한 데이터를 부팅 가능하게 하는 것(taking the physical machine that is being converted offline and making the data bootable)과 연관된 가동 중지 시간에 적어도 부분적으로 기인하여, 이 방법은 통상적으로 실제 머신을 아무것도 없는 상태로부터 가상 머신으로서 단순히 재구축하는 것이 너무 어려울 때 행해진다. The physical machine that is being converted offline and also based at least in part due to the downtime associated with it to enable the boot data (taking the physical machine that is being converted offline and making the data bootable), the method typically when it is done simply too difficult to re-establish a virtual machine to a physical machine, there is nothing from the state.

따라서, 실제 머신을 어드레스 가능한 가상 머신으로 변환하는 것과 연관된 여러 가지 문제(issue)가 있다. Thus, a number of problems (issue) associated with converting physical machines to virtual machines addressable.

본 발명의 구현은 실제 머신을 가상 머신으로 효율적으로 변환하도록 구성되는 시스템, 방법 및 컴퓨터 프로그램 제품(product)을 이용하여, 본 기술 분야에서의 하나 이상의 문제점을 해결한다. Implementation of the invention using a system, method and computer program (product) that is configured to convert a physical machine to a virtual machine to efficiently solves one or more problems in the art. 특히, 본 발명의 구현은 실제 머신을 오프라인으로 할 필요 없이, 실제 머신 볼륨 데이터가 가상 머신 호스트(또는 다른 적절한 컴퓨터 시스템) 등에서 빠르게 복사, 전달, 부팅 가능하게 할 수 있다. In particular, embodiments of the present invention may be possible, the actual volume of data that the virtual machine host machine quickly copied, transferred, boots, etc. (or other appropriate computer systems) without the need for a physical machine offline. 일 구현에서, 예를 들면, 하나 이상의 애플리케이션 기입자(writer)(예를 들면, 볼륨 쉐도우 복사 서비스(volume shadow copy service)를 통함)가, 하나 이상의 볼륨이 온라인에서 유지되면서, 하나 이상의 실제 머신 볼륨의 애플리케이션(및/또는 파일 시스템)-일관형 스냅샷(snapshot)을 생성하는 데 사용될 수 있다. In one implementation, for example, one or more application-based particles (writer) (for example, a volume shadow copy service (volume shadow copy service) the tongham) has, as one or more volumes are maintained in-line, one or more physical machine volumes of the application (and / or the file system) it can be used to create a consistent snapshot (snapshot). 그리고, 스냅샷(들)은 효율적인 전달 수단(예를 들면, 블록 수준 복사)을 사용하여 호스트 서버의 가상 하드 디스크 파일로 전달될 수 있다. Then, the snapshot (s) using efficient transferring means (e.g., block level copy) may be delivered to the virtual hard disk file in the host server. 그리고, 전달된 스냅샷 데이터와 연관된 동작 정보(예를 들면, 부팅 데이터, 시스템 레지스트리 및 바이너리 등)는 가상 머신 호스트에서 변경(modified)되어, 이에 의해 그 전달된 스냅샷 볼륨을 부팅 가능하게 할 수 있다. Then, the operation information associated with the snapshot of the data transmission (e.g., boot data, system registries and binaries, etc.) will change the (modified), In that the delivery of snapshot volumes can be bootable by the virtual machine host have.

예를 들면, 실제 머신의 관점에서 볼 때, 현저한 가동 중지 시간을 일으키지 않고도 실제 머신을 가상 머신으로 변환하는 본 발명의 일 구현에 따른 하나의 예시적인 방법은, 실제 머신의 하나 이상의 볼륨에 대한 하나 이상의 하드웨어 구성 설정을 식별하는 단계를 포함할 수 있다. For example, in view of the physical machine, one exemplary method according to an embodiment of the invention for converting a physical machine to a virtual machine without causing significant downtime, one of one or more volumes of the physical machine It may include a step of identifying one or more hardware configuration settings. 또한, 본 방법은 하나 이상의 실제 머신 볼륨에 대응하는 하나 이상의 일관된 스냅샷을 생성하는 단계를 포함할 수 있다. In addition, the method may include the step of generating the one or more consistent snapshots corresponding to one or more physical machine volumes. 또한, 본 방법은 탑재된(mounted) 가상 하드 디스크 파일에 하나 이상의 스냅샷을 전송하는 단계를 포함할 수 있다. In addition, the method may include the step of transmitting one or more snapshots to a mounted (mounted) virtual hard disk file. 또한, 본 방법은 탑재된 가상 하드 디스크 파일에 하나 이상의 일관된 스냅샷에 대한 부팅 기록을 전송하는 단계를 포함할 수 있다. In addition, the method may include sending a boot record for the one or more consistent snapshots to the mounted virtual hard disk file. 이러한 경우, 부팅 기록은 가상 머신 호스트에서 변경(또는 필요하다면, 아무것도 없는 상태로부터 생성)될 수 있는 하나 이상의 일관된 스냅샷에 대한 동작 정보의 일부를 형성할 수 있다. In this case, the boot record can form part of the operational information for the one or more consistent snapshots that can be changed (or, if necessary, the state created from nothing) in a virtual machine host.

또한, 가상 머신 호스트의 관점에서 볼 때, 실제 머신을 가상 머신으로 변환하는 본 발명의 일 구현에 따른 다른 예시적인 방법은, 파일 크기를 갖는 가상 하드 디스크 파일을 생성하는 단계를 포함할 수 있다. In addition, from the perspective of virtual machine host, another exemplary method according to an embodiment of the invention for converting a physical machine to a virtual machine can comprise the step of creating a virtual hard disk file having a file size. 또한, 본 방법은 가상 머신 호스트에서 가상 하드 디스크 파일을 탑재하는 단계를 포함할 수 있다. In addition, the method may include the step of mounting the virtual hard disk file at a virtual machine host. 이러한 경우, 가상 하드 디스크 파일은 운영 체제에게 액세스 가능한 실제 디스크로서 보일 수 있다. In this case, the virtual hard disk file may be visible to the operating system as an accessible physical disk. 또한, 본 방법은 하나 이상의 실제 머신 볼륨에 대응하는 하나 이상의 일관된 스냅샷을 수신하는 단계를 포함할 수 있다. In addition, the method may include receiving one or more consistent snapshots corresponding to one or more physical machine volumes. 또한, 본 방법은 하나 이상의 일관된 스냅샷에 대한 동작 정보를 변경하는 단계를 포함할 수 있다. In addition, the method may include the step of changing the operation information for the one or more consistent snapshots. 이와 같이, 하나 이상의 일관된 스냅샷은 예를 들면, 부팅 기록, 드라이버, 운영 체제 바이너리, 시스템 레지스트리 및/또는 구성 선호도에 대한 변화를 통해, 가상 머신 호스트에서의 운영 체제에 적절하도록 될 수 있다. Thus, one or more consistent snapshots, for example, through changes in the boot record, drivers, operating system binaries, system registry and / or configure preferences may be appropriate to the operating system in a virtual machine host. 또한, 본 방법은 가상 하드 디스크 파일의 탑재(mount)를 제거하는 단계를 포함할 수 있다. In addition, the method may include the step of removing the mounting (mount) on the virtual hard disk file. 따라서, 가상 하드 디스크 파일은 실제 디스크로서는 액세스할 수 없지만, 오히려 가상 머신으로서 부팅 가능할 수 있다. Therefore, you can not be accessed as a virtual hard disk file is a physical disk, rather it may be possible to boot a virtual machine.

본 발명의 개요는 이하 실시예에서 더욱 상술되는 개념의 선택을 간략화된 형태로 도입하기 위하여 제공된다. Summary of the invention are provided to introduce a selection of concepts in a simplified form that are further described in the following Examples. 본 발명의 개요는 청구 대상의 핵심적인 특징 또는 본질적인 특징을 식별하기 위한 것이 아니며, 또한 청구 대상의 범위를 정하는 데 도움을 주기 위하여 사용되는 것도 아니다. Summary of the present invention is not intended to identify key features or essential features of the claimed subject matter, nor is it to be used to aid in determining the scope of the claimed subject matter.

본 발명의 예시적인 구현의 추가적인 특징 및 이점은 이하의 실시예에서 설명되며, 부분적으로는 실시예로부터 명백해지거나, 또는 이러한 예시적인 구현의 실시에 의해 알 수 있을 것이다. Additional features and advantages of exemplary embodiments of the present invention will be described in the following Examples, in part will be learned by the practice of or apparent from the embodiments, or this exemplary implementation. 이러한 구현의 특징 및 이점은 첨부되는 청구범위에서 특히 명시되는 인스트루먼트(instrument) 및 조합에 의해 실현되고 획득될 수 있다. The features and advantages of such implementations may be realized and obtained by the specified particular instrument (instrument), and combinations in the appended claims. 이들 및 기타 특징은 이하 실시예 및 첨부되는 청구범위로부터 보다 충분히 명백해지거나, 또는 이하 설명되는 것과 같은 예시적인 구현의 실시에 의해 알 수 있을 것이다. These and other features will be appreciated by practice of the example implementation, such as that or more fully apparent from the claims which follows the Examples and drawings, or described below.

본 발명의 상술한 이점과 특징 및 기타 이점과 특징이 획득될 수 있는 방식을 설명하기 위하여, 위에서 간략하게 설명된 본 발명의 보다 구체적인 설명을 첨부된 도면에서 도시된 그 구체적인 실시예를 참조하여 나타낸다. In order to describe the manner in which the above advantages and features and other advantages and features of the present invention can be obtained, a denotes to the reference to specific embodiments shown in the accompanying drawings, a brief description more particular description of the invention above, . 이들 도면은 단지 본 발명의 통상적인 실시예만을 도시하기 때문에 그 범위를 제한하는 것으로 고려되지 않는다는 것을 이해하면, 이하 첨부되는 도면의 사용을 통해 본 발명의 추가적인 특성 및 상세가 기술되고 설명될 것이다. These drawings are only to be be understood that they are not considered to be limiting of its scope, the following additional characteristics of the present invention through the use of the accompanying drawings and the detailed and described explanation because illustrate only typical embodiments of the invention.
도 1a는 하나 이상의 스냅샷이 하나 이상의 실제 디스크 볼륨(들) 중에서 취해지고, 하나 이상의 가상 하드 디스크 파일이 가상 머신 호스트에서 생성되는 본 발명의 일 구현에 따른 총체적인 개략도. Figure 1a is taken from one or more snapshots to one or more physical disk volume (s), an overall schematic view of one or more virtual hard disk file according to one embodiment of the invention is generated in a virtual machine host.
도 1b는 실제 디스크 볼륨(들)의 하나 이상의 스냅샷의 데이터가 효율적인 전달 메커니즘을 사용하여 그 생성된 가상 하드 디스크 파일로 전송되는, 도 1a의 총체적인 개략도. Figure 1b is the one or more data of a snapshot of the physical disk volume (s) is used, an efficient delivery mechanism overall schematic view of Figure 1a is sent to the created virtual hard disk file.
도 1c는 전달된 스냅샷 데이터를 포함하는 가상 하드 디스크 파일이 본 발명의 일 구현에 따라 부팅 가능한 가상 머신을 생성하도록 변경되는, 도 1a 및 도 1b의 총체적인 개략도. Figure 1c is an overall schematic view of Figure 1a and 1b are changed, the virtual hard disk file containing the snapshot, the data transfer to create a bootable virtual machine in accordance with one embodiment of the invention.
도 2는 하나 이상의 머신을 대응하는 하나 이상의 가상 머신으로 변환하기 위한 방법을 실제 머신 및 가상 머신 호스트의 관점에서 본 흐름도. 2 is a flow chart of the method for converting the one or more virtual machines corresponding to the one or more machines in a real machine, and the perspective of virtual machine host.

본 발명은 실제 머신을 가상 머신으로 효율적으로 변환하도록 구성되는 시스템, 방법 및 컴퓨터 프로그램 제품으로 확장된다. The present invention extends to systems, methods and computer program products configured to efficiently convert physical machines to virtual machines. 특히, 본 발명의 구현은 실제 머신을 오프라인으로 할 필요 없이, 가상 머신 호스트(또는 다른 적절한 컴퓨터 시스템) 등에서 실제 머신 볼륨 데이터를 빠르게 복사, 전달, 부팅 가능하게 할 수 있다. In particular, embodiments of the present invention without the need for a physical machine offline, it can enable a virtual machine host (or other suitable computer system) a physical machine volumes quickly and copy, transfer data, etc., to boot. 일 구현에서, 예를 들면, 하나 이상의 애플리케이션 기입자(예를 들면, 볼륨 쉐도우 복사 서비스를 통함)가, 하나 이상의 볼륨이 온라인에서 유지되면서, 하나 이상의 실제 머신 볼륨의 애플리케이션(및/또는 파일 시스템)-일관형의 스냅샷을 생성하는 데 사용될 수 있다. In one implementation, for example, one or more application-based particles (e. G., Volume tongham the shadow copy service), as one or more volumes are maintained in-line, the application of one or more physical machine volume (and / or file system) - it can be used to create a snapshot of a consistent type. 그리고, 스냅샷(들)은 효율적인 전달 수단(예를 들면, 블록 수준 복사)을 사용하여 호스트 서버의 가상 하드 디스크 파일로 전달될 수 있다. Then, the snapshot (s) using efficient transferring means (e.g., block level copy) may be delivered to the virtual hard disk file in the host server. 그리고, 전달된 스냅샷 데이터와 연관된 동작 정보(예를 들면, 부팅 데이터, 시스템 레지스트리 및 바이너리 등)는 가상 머신 호스트에서 변경되어, 이에 의해 전송된 스냅샷 볼륨을 부팅 가능하게 할 수 있다. Then, the operation information associated with the snapshot of the data transmission (e.g., boot data, system registries and binaries, etc.) may enable the boot to the snapshot volume transmitted thereby, change the virtual machine host.

따라서, 본 발명의 구현은 실제 머신의 가동 중지 시간을 피할 수 있는 방식의 상대적으로 빠른 "원 터치(one-touch)" 실제 대 가상(physical-to-virtual) 머신 변환과 같은 이점을 제공할 수 있다. Accordingly, the implementation of the invention is to provide a fast, "one-touch (one-touch)," physical-to-virtual, such as a (physical-to-virtual) machine conversion advantages relative in a way that avoids the down time of the physical machine have. 또한, 본 발명의 구현은 변환된 머신이 가상 머신 호스트에서 일관되기 때문에, 안정된 "원 터치" 실제 대 가상 머신 변환을 허용할 수 있다. Also, implementations of the present invention can, allow stable "one-touch" physical-to-virtual machine conversion since the converted machine to be consistent at the virtual machine host. 이하의 설명 및 청구범위로부터 보다 충분히 이해되는 바와 같이, 이러한 변환은 임의의 수의 적절한 컴포넌트 및 모듈에 의해 수행될 수 있다. As will be more fully understood from the description and the claims below, this conversion may be performed by any number of suitable components and modules of the. 예를 들면, 본 발명의 구현은 애플리케이션(및/또는 파일 시스템)-일관형 스냅샷을 생성하기 위하여 VSS(Volume Shadow Copy Service)의 컴포넌트 및 메커니즘을 사용하는 것을 포함할 수 있다. For example, embodiments of the present invention is application (and / or file system) may comprise the use of components and mechanisms of the VSS (Volume Shadow Copy Service) to create a consistent snapshots. 이러한 컴포넌트는 스냅샷 프로세스 동안에 실행되고 있는 하나 이상의 실제 머신 볼륨의 하나 이상의 일관된 스냅샷(또는 지정 시점 이미지(point-in-time image))를 생성할 수 있다. This component may create one or more consistent snapshots of the one or more physical machine volumes that are running during snapshot processes (or point-in-time image (point-in-time image)).

또한, 본 발명의 구현은 VDS(Volume Disk Service) 및/또는 관련된 컴포넌트의 사용을 포함할 수 있다. Also, implementations of the invention may include the use of (Volume Disk Service) VDS and / or related components. 일반적으로, VDS(또는 관련된 컴포넌트(들))는 실제 디스크 상에 볼륨을 생성하고 구성하기 위한 플랫폼을 포함한다. In general, a VDS (or related component (s)) includes platforms for creating and configuring volumes on physical disks. 또한, 본 발명의 구현은 "디스크 이미저(disk imager)"의 사용을 포함하며, 일부 경우에는 "이미지 탑재기(image mounter)"의 사용을 포함한다. Also, implementations of the present invention includes the use of a "disk imager (disk imager)", and in some cases include the use of "image-mounted device (image mounter)". 일반적으로, 디스크 이미저는 복사하기 위한 시작 위치 및 바이트(또는 바이트 블록)의 수가 주어지면, 실제 디스크 또는 볼륨의 블록(또는 바이트 블록) 기반 사본을 생성하도록 구성되는 컴포넌트 및/또는 모듈을 포함한다. In general, the disk should imager comprises a starting position and a byte (or byte block) the number given, and a component configured to generate a copy of a block (or byte block) based on the physical disk or volume and / or a module for copying. 반대로, 이미지 탑재기 툴은 예를 들면, 가상 하드 디스크 파일을 입력으로서 취하고, 그 파일을 실제 디스크로서 노출시키도록 파일 시스템에 가상 하드 디스크 파일을 탑재하도록 구성되는 하나 이상의 컴포넌트 및/또는 모듈을 포함한다. In contrast, the image-mounted machine tool, for example, virtual takes a hard disk file as input, comprising one or more components and / or modules configured to mount the virtual hard disk file in the file system to expose the file as a physical disk . 이 노출된 실제 디스크는 마치 어떤 다른 실제 디스크가 운영 체제에 액세스 가능한 것처럼(이는 그 볼륨(들)에 데이터를 기입시키는 능력을 포함함) 액세스 가능하게 될 수 있다. This exposed the physical disk can be made available as like any other physical disk can access the operating system (which includes the ability to write data to the volume (s)) access.

본 발명의 구현은 가상 머신 호스트에서 가상 하드 디스크 파일("VHD(virtual hard disk)" 파일)을 사용하는 것을 더 포함하며, 여기서 VHD 파일은 하나 이상의 VM(Virtual Machine)에 의해 관리되는 (또한 그 내부에서 액세스 가능한) 하나의 실제 디스크 및 하나 이상의 실제 디스크 볼륨을 포함한다. Implementation of the invention is managed by the virtual machine host virtual hard disk file ( "VHD (virtual hard disk)" file), and further comprising the use of, wherein the VHD file comprises one or more VM (Virtual Machine) (also the comprises one physical disk and one or more physical disk volumes is accessible from the inside). "가상 머신", "가상 머신 호스트" 및 "VHD 파일"이란 용어가 일부 MICROSOFT 환경에서 사용되긴 하지만, MICROSOFT 컴포넌트(및/또는 WINDOWS SERVER 컴포넌트)에 대한 여기서의 참조는 단지 예시적인 것임을 이해할 것이다. "Virtual machine", "virtual machine host" and "VHD file" doegin term is used in some environments, but MICROSOFT, MICROSOFT components, see here for (and / or WINDOWS SERVER components) will understand that the exemplary only. 특히, 본 명세서 및 청구범위를 읽은 후에는, 여기서 설명되는 컴포넌트, 모듈 및/또는 메커니즘이 가상 머신 또는 이러한 관련된 엔티티를 구현하는 광범위한 운영 환경에서 발견되고 실시될 수 있음을 이해할 것이다. In particular, after reading this specification and claims, the components, modules and / or mechanisms described herein will be appreciated that the virtual machine can be or is found in a wide range of operating environments that implement these entities associated embodiment.

이제 도 1a를 참조하면, 본 도면은 실제 머신(105)(예를 들면, 퍼스널 컴퓨터, 실제 서버 등)이 가상 머신 호스트(110)에서 호스트되는 가상 머신으로 변환될 수 있는 예시적인 컴퓨터화된 환경(100)의 총체적인 개략도를 도시한다. Referring now to Figure 1a, the figure is a physical machine 105 a (e.g., a personal computer, a physical server, etc.), the virtual machine host exemplary computer which 110 can be converted to virtual machines that are hosted on the screen environment It shows an overall schematic diagram of the system 100. 하나의 구성요소적 수준에서, 실제 머신(예를 들면, 105)을 가상 머신(예를 들면, 도 1c의 175)으로 변환하는 단계는, 하나 이상의 실제 머신 볼륨(들)(예를 들면, 115)의 스냅샷을 찍는 단계, 가상 머신 호스트에서 가상 머신 하드 디스크 파일(들)(예를 들면, 140)을 생성하는 단계, 스냅샷(들)을 VHD 파일로 전달하는 단계, 및 VHD 파일의 전달된 스냅샷 볼륨(들) 중 하나 이상의 스냅샷 볼륨을 가상 머신(예를 들면, 175)으로서 부팅 가능하게 하는 단계를 포함할 수 있다. In one component ever level, a physical machine (e.g., 105) the virtual machine converting the (e.g., 175 of Fig. 1c), the one or more physical machine volume (s) (e. G., 115 ) virtual machine hard disk file (s) (e.g., 140) for generating, transferring the snapshot (s) into the VHD file, and transfer the VHD file in step take a snapshot, a virtual machine host of the snapshot volume (s) to one or more of a snapshot volume of the virtual machine (e.g., 175) as may comprise the step of enabling the boot. 따라서, 변환을 효율적으로 일어나게 하기 위하여 구현될 수 있는 상이한 준비 프로세스들 및 동작 후(post-operation) 프로세스들이 다수 존재함을 이해할 수 있을 것이다. Thus, after preparing the different processes and operations that may be implemented to occur in the conversion efficiency (post-operation) processes will be appreciated that the number exists.

적어도 하나의 구현에서, 예를 들면, 변환 프로세스는 변환 모듈(130)(즉, 머신(105) 및/또는 호스트(110)에 하나 이상의 모듈을 포함할 수 있음)의 사용을 통해 시작될 수 있으며, 이는 실제 머신(105)의 실제 디스크(들) 상의 하나 이상의 볼륨(예를 들면, 볼륨(115))의 스냅샷 동작을 시작한다. In at least one implementation, for example, the conversion process may be initiated through the use of (which may include one or more modules in other words, the machine 105 and / or host 110) Transformation module 130, This (e.g., volume 115) one or more volumes on the physical disk (s) of physical machine 105 and starts the operation of the snapshot. 일반적으로, 변환 모듈(130)은 실제 디스크 볼륨의 일관된 쉐도우 사본(shadow copy)을 생성하도록 구성되는 임의의 적절한 기입자 및 요청자(requestor)를 포함할 수 있다. In general, conversion module 130 may include any suitable particle group and the requestor (requestor) configured to generate a consistent shadow copy of a physical disk volume (shadow copy). 앞서 언급된 바와 같이, 예를 들면, 이러한 기입자 및 요청자는 볼륨 쉐도우 복사 서비스에서 제공될 수 있다. As noted above, for example, it is provided by the particles and this group requestor volume shadow copy service. 따라서, 예를 들면, 변환 모듈(130)은 실제 디스크의 하나 이상의 볼륨(예를 들면, 볼륨(115)) 각각의 모든 애플리케이션 기입자에, 그것의 데이터의 스냅샷 동작을 시작하기 위하여 신호를 전송함으로써 변환 프로세스를 시작할 수 있다. Thus, for example, the conversion module 130 may be one or more volumes on the physical disk (e.g., volume 115) sent to each and every application based particles, a signal to begin snapshot operations of its data by can begin the conversion process. 도시된 바와 같이, 예를 들면, 볼륨(115)은 적어도 볼륨 데이터(125)뿐만 아니라 부팅 기록(120)도 포함한다. As shown, for example, volume 115 includes at least volume data 125 include, as well as boot record 120. [

변환 모듈(130)로부터 이 메시지를 수신하면, 볼륨(115) 상의 각각의 애플리케이션 기입자는 그 메모리내(in-memory) 데이터를 실제 디스크에 플러쉬(flush)시키고/거나, 임의의 파일 시스템 또는 볼륨 로그(log)를 프리즈(freeze)시킬 수 있다. Upon receiving this message from conversion module 130, The write each application on the volume 115, the memory (in-memory) flush (flush) the data to physical disk, and / or any file system or volume logs the (log) can be freeze (freeze). 애플리케이션 기입자를 사용하지 않는 애플리케이션에 있어서, 변환 모듈(130)은 애플리케이션을 셧다운시키라고 명령하여(예를 들면, 디폴트로, 또는 사용자 또는 관리자로부터의 명령에 의해), 이에 의해 스냅샷 동안에 어떠한 기입도 행해지지 않는 것을 보장할 수 있다. In applications that do not use a application written, conversion module 130 and ordered to shut down the application, any written during the (e. G., As a default, or the user or by an instruction from the administrator), this snapshot by Fig. It can ensure that does not occur. 따라서, 도 1a는 변환 모듈(130)이 볼륨(115) 상의 모든 볼륨 데이터의 단일의 지정 시점 스냅샷(즉, 사본)을 생성할 수 있음을 도시하고 있다. Thus, Figure 1a shows that it is possible to generate a conversion module 130 is a single designated point-in-time snapshot of the volume of all the data in the volume 115 (i.e., a copy). 예를 들면, 도 1a는 변환 모듈(130)이 볼륨(115)의 스냅샷(117)(즉, "스냅샷 볼륨")을 생성한 것을 도시하고 있는데, 이 경우의 스냅샷(117)은 볼륨 데이터(127) 및 부팅 기록(120)을 포함한다. For example, there is Figure 1a shows that generates a conversion module 130 is a snapshot 117 of volume 115 (i.e., the "snapshot volume"), the snapshot 117 in this case is the volume It includes data 127 and boot record 120. [

데이터가 효율적인 방식으로 복사되고 전달되는 것을 보장하기 위하여, 스냅샷을 찍을 때, 또는 스냅샷(및 복사) 동작을 행할 때 행해질 수 있는 최적화가 다수 존재함을 이해할 것이다. In order to ensure that the data is copied and delivered in an efficient manner, it will be understood that when taking the snapshot, or snapshot (and copy) optimization that can be done also when performing the operation number exists. 예를 들면, 변환 모듈(130)은 볼륨(115)의 어느 부분이 사용 중이고(즉, 데이터를 포함하고), 어느 부분이 비었는지(free)를 식별할 수 있다. For example, the conversion module 130 may be running and which part of the volume 115 is used (i.e., include data), identify which part is empty (free). 따라서, 스냅샷 동작은 전체적인 볼륨(들) 또는 전체적인 실제 디스크보다는, 볼륨(들) 또는 실제 디스크의 사용 부분만을 복사하도록 구성될 수 있다. Thus, snapshot operations may be composed, rather than the overall volume (s) or entire physical disk, to copy only the use of the volume (s) or physical disk. 또한, 스냅샷 동작은 가상화된 환경에서 덜 유용한(또는 전혀 쓸모없는) 소정의 파일을 피하도록(avoid) 더 구성될 수 있다. In addition, snapshot operations may be further configured (avoid) in order to avoid less useful predetermined file (or useless at all) in a virtualized environment.

특히, 예를 들면, 스냅샷 동작은 볼륨 diff 영역, 페이지 파일, 배드 클러스터(bad cluster), 최대 절전 모드(hibernation) 파일 등에 포함된 것과 같은 파일을 식별하도록 더 구성될 수 있다. In particular, for example, snapshot operations may be further configured to identify the file, such as those embedded in a volume diff area, page files, bad clusters (bad cluster), maximum power saving mode (hibernation) file. 따라서, 스냅샷(117)을 생성하거나 바이트 블록 전달을 행할 때 이들 파일들을 피할(avoid) 수 있어서, 가상 머신 호스트(110)로 전달될 필요가 있는 데이터의 양을 더욱 감소시킬 수 있다. Therefore, it is possible (avoid) avoids these files when creating snapshot 117 or performing the byte block transfer, it is possible to further reduce the amount of data that needs to be delivered to the virtual machine host 110. 이들 유형의 파일 및 최적화는 광범위한 운영 환경에서 다른 유형의 파일, 사용 중이거나 빈 공간 계산 등에 대해 쉽게 변형될 수 있음을 이해할 것이다. Files and optimization of these types will understand that you are using different types of files, in a wide range of operating environments or can be easily modified for such space calculation.

어느 경우에서든, 예를 들어, 주로 스냅샷 동작 동안(및/또는 스냅샷 동작 이후)의 시간에 따른 변화에 의해, 스냅샷(117)의 데이터(127)가 볼륨(115) 상의 원본 데이터(125)와 일반적으로 상이하다. In either case, for example, mainly the snapshot operation for the original data (125 on (and / or snapshot operation after) the volume 115, the data 127 of snapshot 117, by the change with time of the ) and it is generally different. 예를 들면, 실제 머신(105)이 스냅샷 동작 동안에 여전히 실행되고 있기 때문에, 예를 들어 사용자가 계속해서 어떤 애플리케이션 데이터에 대한 기입을 생성하고 있는 경우, 볼륨 데이터(125)는 계속해서 변화될 수 있다. For example, a physical machine 105 is because it is still running during snapshot operations, for example if the user is continuing to create writes to certain application data, volume data 125 can continue to change have. 따라서, 볼륨 데이터(127)(즉, "볼륨 데이터(127)")는 좀더 앞선 일관된 지정 시간(point-in-time)의 볼륨(115) 상의 데이터(125)를 나타내며, 이 시간은 본질적으로 변환 모듈(130)이 스냅샷 프로세스를 시작한 지정 시간이다. Thus, volume data 127 (i.e., "volume data 127") represent the data 125 on volume 115 of the further previous consistent point in time (point-in-time), this time is essentially converts module 130 can start the snapshot process a specified time.

그렇지만, 도 1a는 부팅 기록(120)이 볼륨(115)의 실행 데이터와 함께 있을 때와 스냅샷(117)에 있을 때가 동일하다는 것을 도시하기도 한다. However, Figure 1a is also shown that when the same is in the boot record and snapshot 117 when 120 is to be executed with the data in the volume 115. 즉, 애플리케이션은 통상적으로 부팅 기록에 대한 액세스 권한을 갖지 않기 때문에, 부팅 기록(예를 들면, 120)이 스냅샷 프로세스 동안에 변할 수 없다는 것이 이해될 것이다. That is, the application typically does not have, because the access to the boot record, boot records (e.g., 120), it will be understood that this may change during the snapshot processes. 특히, 부팅 기록은 일반적으로 운영 체제에 의해 변화되며, 그나마도 통상적으로는 드물게 변화된다. In particular, boot records are generally changed by the operating system, typically geunamado is changed infrequently. 이와 같이, 도 1a는 이 경우의 부팅 기록(120)이 스냅샷 동작 이전과 동일함을 나타내고 있다. Thus, Figure 1a boot record 120 in this case represents the same as before snapshot operations.

스냅샷(117) 생성에 앞서, 혹은 스냅샷(117) 생성 동안에, 또는 스냅샷(117) 생성 직후에, 변환 모듈(130)은 실제 머신(105)의 실제 디스크(도시 생략)에 대응하는 하나 이상의 가상 하드 디스크("VHD") 파일(140)을 가상 머신 호스트(110)에 셋업할 수도 있다. Prior to the snapshot 117, or snapshots 117 during generation, or immediately after the snapshot 117 is generated, converter module 130 is one corresponding to a physical disk (not shown) of the physical machine 105 or more virtual hard disk ( "VHD") files 140 may be set up on the virtual machine host 110. 예를 들면, 도 1a는, 변환 모듈(130)이, 기입 가능한 가상 하드 디스크 파일(140)을 생성하기 위한 메시지(150)를 전송하는 것을 도시한다. For example, Figure 1a, the conversion module 130 is shown that is, sends a message 150 to create a writable virtual hard disk file 140. 또한, 일 구현에서, 이는 특정한 고정된 크기의 VHD 파일(들)(예를 들면, 140)을 생성하기 위한 메시지를 우선 전송하고, 그 VHD 파일을 기입 가능하게 하기 위한 별도의 메시지를 전송하는 단계를 포함할 수 있다. Furthermore, in one implementation, this step of first transmitting a message for generating a specific VHD file of fixed size (s) (e.g., 140), and send a separate message for enabling write the VHD file It may contain. (또한, 변환 모듈(130)은 (기입 가능하거나 그와 다른(otherwise)) 동적으로 크기가 변화되는(dynamically-sized) VHD 파일(이는 데이터가 추가됨에 따라 크기가 커짐)을 생성하기 위한 메시지를 전송할 수도 있다.) (In addition, the conversion module 130 (writable or that the other (otherwise)) dynamically, the size becomes larger in accordance with the (dynamically-sized) VHD file (this data is added whose size is changed) to the message for creating may be transmitted.)

일반적으로, 각각의 VHD 파일은 컴퓨터 시스템의 단일의 실제 디스크에 대응하도록 구성될 수 있고, 실제 디스크 내의 각각의 볼륨은 새로이 생성된 VHD 파일 내에 나타내는 것과 같은 방식으로 나타날 수 있다. Generally, each VHD file can be configured to correspond to a single physical disk of a computer system, and each volume within a physical disk can appear in the same way as shown in the newly created VHD file. 그러나, 일부 경우에는, VHD 파일은 전체적인 실제 디스크보다는 단일의 볼륨을 나타낼 수 있다. However, in some cases, VHD file may represent a single volume, rather than the entire physical disk. 그렇지만, (단일의 볼륨(115)만이 도시되어 있긴 하지만) 실제 디스크가 복수의 볼륨을 갖는 실제 디스크 예에서는, 새로운 VHD는 복수의 볼륨에 대응하는 데이터도 포함할 수 있다. However, it is possible to the (Although shown only a single volume 115 but) the physical disk with a plurality of physical disk volume, for example, the new VHD can also contain data corresponding to multiple volumes. 물론, 이에 관해서도 다소 융통성이 있긴 하다. Of course, it is Although some flexibility with regard to this. 예를 들어, 실제 머신(105)의 사용자가 복수의 파티션(및/또는 미러형 볼륨(mirrored volume) 등)에 걸쳐 확장되는 볼륨을 가진다면, 사용자는 대상(destination) 가상 하드 디스크 파일의 스냅샷 데이터에 하나의 파티션만을 전용(dedicate)시키도록 결정할 수 있다. For example, if it has a volume, a user of physical machine 105 that extends across (and so on, and / or mirrored volumes (mirrored volume)) a plurality of partitions, the user target (destination), the snapshot of the virtual hard disk file only dedicated (dedicate) one partition, the data can be determined so as to. 마찬가지로, 사용자는 복수의 볼륨을 포함하는 실제 디스크 중의 하나의 볼륨만을 가상 하드 디스크 파일로 전달하도록 결정할 수 있다. Similarly, a user only one volume of a physical disk comprising multiple volumes can be determined to be transmitted to the virtual hard disk file.

따라서, VHD 파일의 크기는 일반적으로 적어도 전달되는 소스(transferred source)(예를 들면, 실제 디스크, 구체적으로는 실제 디스크 볼륨, 실제 디스크 내의 데이터 등) 데이터에 대해 필요로 되는 것과 같은 크기일 것이다. Thus, the size of the VHD file is generally at least a transmission source (transferred source) will be the same size as is required for (e. G., A physical disk, specifically, data such as in the physical disk volume, the physical disk) data. 이와 같이, 여기서 설명되는 기술은 기존의 가상 머신을 좀더 큰 저장 공간에 복사할 때에도 또한 사용될 수 있음을 이해할 것이다. Thus, the techniques described herein will be understood that it can also be used when you want to copy an existing virtual machine to a larger storage space. 예를 들면, 관리자는, 가상 머신의 볼륨 저장 용량이 감소되고 있음을 식별하면, 추가로 좀더 큰 VHD 파일(들)을 생성하고, 가상 머신 데이터를 스냅샷하고, 그 스냅샷 데이터를 이미 설명된 것과 동일한 프로세스를 이용하여 새로운 VHD 파일(들)로 전달(예를 들면, 복사)함으로써 가상 머신을 실질적으로 "재가상화(re-virtualize)"시킬 수 있다. For example, an administrator, upon identifying that decreases the volume storage capacity of the virtual machine, the resulting additional larger VHD file (s) to, and snapshot the virtual machine data, and already described the snapshot data as (e. g., copying) go to the same new VHD file (s) by using a process can be substantially "re virtualization (re-virtualize)" virtual machines.

따라서, 본 발명의 구현은 "실제 대 가상" 머신 변환뿐만 아니라 "가상 대 가상(virtual to virtual)" 머신 변환도 포함한다. Thus, embodiments of the present invention includes "physical-to-virtual" machine, as well as conversion converts a "virtual-to-virtual (virtual to virtual)" machine. 특히, 일부 환경에서는, 본 발명의 구현이 "머신"을 "가상 머신"으로 변환하는 것으로서 보다 일반적으로 참조될 수 있다. In particular, in some environments, there are implementations of the invention may be more generally referred to as converting a "machine" to a "virtual machine." 즉, "머신"은 "실제" 컴퓨터 시스템(예를 들면, 연관된 하드웨어 및 운영 체제(들)를 갖는 데스크탑 컴퓨터) 및 "가상" 컴퓨터 시스템(예를 들면, 고유한(unique) 컴퓨터 시스템(들)으로서 가상 머신 호스트에 설치된 컴퓨터 시스템) 모두를 포함하는 것임을 이해할 수 있다. That is, "machine" is a "real" computer systems (e.g., a desktop computer with associated hardware and operating system (s)) and "virtual" computer systems (e.g., a unique (unique) computer system (s) as can be understood that includes a computer system) it was installed on the virtual machine host.

어쨌든, 가상 하드 디스크 파일(140)을 생성하면, 변환 모듈(130)이 파일(140)을 실제 디스크로서 탑재하여, 파일(140)이 예를 들면, 네트워크 통신을 통해 스냅샷(117)의 데이터를 수신할 수 있게 된다. In any case, data on the virtual hard disk when creating a file 140, the transform module 130 to mount the file 140 as a physical disk, the file 140 is, for example, snapshot 117 through the network communication a can receive. (여기서 설명되는 일부 구현에서는, 심지어 탑재가 필요없을 수도 있음을 이해할 것이다.) 따라서, 도 1a에는 변환 모듈(130)이 가상 하드 디스크 파일(140)을 탑재하기 위한 메시지(155)를 전송하는 것도 도시되어 있다. (In some implementations described herein, even herein may not be mounted is required.) Thus, in Figure 1a conversion module 130 also sends a message 155 to mount virtual hard disk file 140 It is shown. 추가적인 구현 또는 다른 구현에서, 메시지(155)는 임의의 가상 머신 호스트(110), 변환되고 있는 실제 머신(105), 또는 VHD 파일(140)이 탑재되어 있는 머신과 변환되고 있는 실제 머신(즉, 이 경우는 105) 간에 네트워크 접속이 있는 어느 곳 상에든 VHD 파일(140)을 탑재하기 위한 명령어를 포함할 수 있다. In additional implementations or other implementations, the message 155 may be any of virtual machine host 110, and the physical machine being converted (105), or a VHD file 140 is a physical machine that is being composed and the machine that is mounted (that is, the case may include an instruction to mount VHD file 140. in either the one point in the network connection between the 105).

파일(140)을 탑재하는 단계의 일부는 파일을 실제 디스크의 장치 ID와 같은 하나 이상의 장치 식별자와 연관시키는 단계를 포함할 수 있다. Some of the steps to mount the file 140 can include associating with one or more device identifiers such as the file and the device ID of a physical disk. 예를 들면, 가상 머신 호스트(110)는 " For example, virtual machine host 110 "

Figure 112013107212977-pat00001
"와 같은 드라이브 경로를 통해 식별 가능할 수 있게 가상 하드 디스크 파일(140)을 탑재하도록 명령받을 수 있다. 특히, 도 1b에는 VHD(140)가 "디스크 드라이브(145)"로서 식별 가능한 것이 도시되어 있다. 유사 선상에서, 변환 모듈(130)은 각각의 스냅샷(예를 들면, 117)에 대하여 장치 식별자(및/또는 예를 들면, 탑재점(mount point))를 식별할 수도 있다. 최종적으로, 변환 모듈(130)은 스냅샷 콘텐츠를 전달하기 위하여 임의의 스냅샷 및 임의의 대응하는 VHD 파일에 대해 그 식별된 장치 식별자를 사용할 수 있다. Is "and may be instructed to mount virtual hard disk file 140 is able to be identified through the drive path. In particular, Fig. 1b, the VHD 140, the" City capable identified as a disk drive 145. " in a similar line, conversion module 130 can also identify a device identifier (and / or for example, mount point (mount point)) for each snapshot (e.g., 117). finally, the conversion module 130 can use the identified device identifiers for any snapshot and any corresponding VHD files to transfer the snapshot contents.

일반적으로, 변환 모듈(130)은 임의의 수의 데이터 전달 메커니즘을 사용하여 스냅샷(117) 콘텐츠를 전달할 수 있다. In general, conversion module 130 can transfer the snapshot 117 contents using any number of data transfer mechanisms. 예를 들면, 일 구현에서, 변환 모듈(130)은 디스크 드라이브(145)를 통해 스냅샷(117)을 바이트 단위로(on a byte-by-byte basis) 파일(140)에 전달할 수 있다. For example, in one implementation, conversion module 130 can be transmitted to a snapshot 117 through the disk drives 145 in bytes (on a byte-by-byte basis) file 140. 그러나, 추가적인 구현 또는 다른 구현에서는, 변환 모듈(130)이 "바이트 블록들(byte blocks)"을 식별하고 전달함으로써 파일(140)에 스냅샷(117)을 전달할 수 있다. However, can be transmitted to additional implementations or in another embodiment, conversion module 130 is "byte blocks (byte blocks)" snapshot 117 to file 140 by identifying and forward. 일반적으로, 바이트 블록은 개별적인 바이트들의 (어떤 임의의 크기의) 고정된 시퀀스를 포함한다. In general, byte blocks comprise a fixed sequence (of any arbitrary size) of individual bytes. 적어도 일 구현에서는, 개별적인 바이트들보다는 바이트 블록들을 전달하는 것이 스냅샷(117)이 네트워크를 통해 전달될 수 있는 속도를 현저하게 증가시킬 수 있다. In at least one embodiment, the snapshots 117 to conveying byte blocks, rather than individual bytes, can significantly increase the rate that can be transmitted over the network.

예를 들면, 통상적인 네트워크 전달 프로토콜을 통해 가상 머신 호스트(110)로 전달하는 데 일반적으로 수 시간이 걸릴 수 있는 수 기가바이트의 데이터가 바이트 블록 전달 메커니즘을 이용하면 일부 경우에는 겨우 몇 분안에 전달될 수 있다. For example, conventional when using a network transmission protocol to be gigabyte of data in general, the number of time it may take to routing to a virtual machine host 110 using the byte block transfer mechanisms passed in is only a few minutes, in some cases It can be. 어쨌든, 도 1b는 이 경우에 변환 모듈(130)이 바이트들(또는 바이트 블록들) "160 1 ", "160 2 " 등을 전달하고, 이들 바이트들/바이트 블록들을 디스크 드라이브(145)를 통해, 기입 가능한 가상 하드 디스크 파일(140)에 직접 전달하는 것을 도시하고 있다. In any case, 1b is through this when the conversion module 130 bytes (or byte blocks) "160 1", "160 2" delivery or the like, and these bytes / disk drive 145 bytes block , shows that the directly transmitted to the writable virtual hard disk file 140. 도 1b에 도시된 바와 같이, 가상 하드 디스크 파일(140)은 부팅 데이터(120) 전부를 포함할 수 있고, 데이터 전달이 완료되면, 스냅샷(117)에 캡쳐된(captured) 다른 볼륨 데이터(127)를 포함할 것이다. As shown in Figure 1b, a virtual hard disk file 140 is the start data 120 when it is possible to include all the data transfer is complete, different volume data (captured) captured in snapshot 117 (127 ) it will include.

데이터 전달에도 불구하고, 가상 하드 디스크 파일(140)이 가상 머신 호스트(110)에서 반드시 부팅 가능할 필요는 없는데, 왜냐하면 부팅 데이터 및 드라이버가 가상 머신 호스트(110)의 콘텍스트(context)에서 유용하지 않을 수도 있기 때문이다. Despite the data transfer and virtual hard disk file 140 virtual machines on the host (110) I really do not need necessarily be able to boot because the boot data and the driver may not be useful in the context (context) of a virtual machine host 110 because. 이에 대한 한 가지 이유는 가상 머신 환경에(및/또는 가상 머신 호스트(110) 내에) 존재하는 "가상 하드웨어"가 실제 머신(105)에 대한 하드웨어와 동일하지 않을 수 있다는 것이다. One reason for this is that the "virtual hardware" that exists (within and / or virtual machine host 110) in a virtual machine environment may not be the same as the hardware for physical machine 105. The 예를 들면, 실제 머신(105) 상의 커널 및 HAL(Hardware Abstraction Layer)과 같은 컴포넌트는 예를 들면 듀얼(dual) 프로세서 시스템에 기초할 수 있다. For example, the kernel and HAL components such as (Hardware Abstraction Layer) on physical machine 105 may, for example, based on a dual (dual) systems. 또한, 가상 머신 호스트(110)는 다양한 네트워크 카드 드라이버, 프로세서 아키텍처, 실제 디스크(예를 들면, 머신에 부착된 저장 장치), 실제 디스크 식별자, 운영 체제 드라이버 및 디스크 드라이버를 그 호스트되는 가상 머신에 에뮬레이트(emulate)할 수는 있으며, 그렇지 않으면 이들은 변환되고 있는 소스 머신(source machine)(예를 들면, 실제 머신(105))에서는 찾을 수 없을 것이다(which might not otherwise be found at the source machine being converted). In addition, virtual machine host 110 different network card drivers, processor architecture, physical disks (e.g., storage attached to the machine), emulates physical disk identifiers, operating system drivers, and disk drivers to the hosted virtual machines (emulate) number, and otherwise they are the source machine that is being converted (source machine) to (for example, the physical machine 105), we will not be able to find (which might not otherwise be found at the source machine being converted) . 이러한 차이점은 실제 디스크 볼륨을 가상 호스트 내부로부터 가상 머신으로 변환할 때에 존재할 수도 있다. These differences may exist when converting a physical disk volume from within the virtual machine to a virtual host.

그 결과, 전달된 부팅 데이터(120)는 가상 머신 호스트(110)에서의 적절한 가상화된 환경 내에서는 적용할 필요가 없는, 실제 머신(105)에서의 운영 체제 특징에 기초할 수 있다. As a result, the transmission start data 120 may be based on operating system characteristics at the virtual machine host 110 within the appropriate virtualized environment that do not need to be applied, a physical machine 105 in the. 이들 및 기타 이유들은, 관리자가 특정 운영 환경(들)에 따라 다수의 상이한 변경들을 행할 필요가 있음을 의미한다. These and other reasons are, it means that the administrator needs to be performed a number of different changes according to the particular operating environment (s). 따라서, 변환 모듈(130)은 가상 하드 디스크 파일(140)을 가상 머신 호스트(110)에서 부팅 가능하게 변경할 수도 있다. Thus, the conversion module 130 may be a virtual hard disk file 140, the virtual machine host 110 to change bootable. 일부 경우에 있어서, 이는 스냅샷 데이터에 기초하여, 생성될 가상 머신에 대하여 커널 및 HAL - 및 다른 드라이버 및 레지스트리 설정 - 을 업데이트하라는 명령어를 포함할 수 있다. In some cases, this kernel and HAL with respect to a virtual machine to be created based on the snapshot data may include a command to update the - and other drivers and registry settings.

따라서, 예를 들면, 도 1c에는, 변환 모듈(130)이 가상 머신 호스트(110)에 동작 정보를 변경하기 위한 요청(165) 및 대응하는 인수(argument)를 전송하는 것도 도시되어 있다. Thus, for example, In Fig. 1c, it is shown for transmitting a request 165 and corresponding arguments (argument) to change the motion information conversion module 130 is a virtual machine host 110. (일부의 경우, 가상 머신의 동작 정보(예를 들면, 부팅 섹터 및 레지스트리 정보)에 대한 이들 변경은 (VHD 파일 내로 전달되기 전에) 심지어 실제 머신에서도 행해질 수 있다.) 일 구현에서, 이는, 변환 모듈(130)이 볼륨 스냅샷(117)의 부팅 기록을 조사하고, 가상 머신의 새로운 디스크 및 볼륨 구성에 기초하여, 이전에 전달된 부팅 데이터(120)를 새로운 부팅 정보(예를 들면, 변경된 부팅 정보 또는 아무것도 없는 상태로부터의 새로운 부팅 정보)로 교체하는 단계를 포함할 수 있다. (In some cases, for motion information (such as the virtual machine, these changes to the boot sector and the registry information) can be carried out even in a physical machine (before being passed into the VHD file).) In one implementation, which, converted module 130 by examining the boot record of volume snapshot 117, and based on the new disk and volume configuration of the virtual machine, the old boot data 120 is transmitted to, for the new boot information (e.g., modified boot information or may comprise replace it with a new boot information) from the state nothing. 또한, 다른 단계에서, 변환 모듈(130)은 볼륨 스냅샷(117)의 전달된 레지스트리 정보(도시 생략)를 조사할 수 있고, 가상 머신 호스트(110) 상에 존재하는 새로운 하드웨어 및 드라이버에 기초하여, 그 전달된 레지스트리 정보를 가상 머신(110)에 적절한 방식으로 업데이트할 수 있다. Also, in another step, conversion module 130 can examine the registry information (not shown) transfer of volume snapshot 117, on the basis of the new hardware and drivers that exist on virtual machine host 110 can be updated in a suitable manner that the transmitted information in the registry, the virtual machine 110.

또한, 이러한 업데이트하는 단계는 커널 및 HAL 드라이버와 같은 시스템 바이너리를 멀티 프로세서로부터 단일 프로세서 하드웨어 구성으로 변화시키는 단계를 포함할 수 있다. In addition, this step of updating may comprise the step of changing to a single processor hardware configuration, the system binaries, such as the kernel and HAL drivers from the multiprocessor. 또한, 이러한 업데이트하는 단계는 가상 머신 호스트(110)에 고유한 컴퓨터 및 드라이브 아이덴티티 정보를 추가하는 단계, 가상 머신 호스트(110)에 고유한 임의의 적절한 디스크 또는 파일 드라이버를 추가하는 단계뿐만 아니라 적절한 네트워크 드라이버, 저장 장치 드라이버 등을 수용하기 위하여 레지스트리 정보를 변화시키는 단계를 포함할 수 있다. In addition, this update step of, as well as adding a unique computer and the drive method comprising: adding an identity information, and any appropriate disk or file drivers unique to virtual machine host 110 to the virtual machine host 110, the appropriate network driver, and it may include the step of changing the registry information to accommodate the storage driver or the like. 이러한 업데이트하는 단계는, 실제 장치에 대한 드라이버를 가상 장치에 대한 드라이버로 교체하는 단계, 가상 환경 내에 대응하는 가상 장치가 존재하지 않는 경우에 하드웨어에 대한 드라이버를 디스에이블(disable)시키는 단계, 및 가상 환경 내에 대응하는 가상 장치가 존재하지 않는 경우에 장치에 종속되는 서비스 및 애플리케이션을 디스에이블시키는 단계를 더 포함할 수 있다. Step of this update, the driver for the real device comprising: driver replaced by for a virtual device, the method comprising: disabling (disable) the driver for the hardware if the virtual device is not present that corresponds in a virtual environment, and a virtual If the virtual device, corresponding in the environment does not exist, it may further include the step of disabling services and applications that depend on devices.

또한, 변환 모듈(130)은, 결과적인 가상 머신(예를 들면, 175)이 원래의 실제 머신(105)에서와 동일한 선호도(preference)(예를 들면, 메모리, CPU 등)로 동작하도록, 의도한 가상 머신(예를 들면, 175)에 대하여 이들 및/또는 다른 적절한 구성 값을 더 생성할 수 있다. In addition, the conversion module 130, the resulting virtual machine (e.g., 175), intended to operate with the same affinity as the original physical machine (105) (preference) (e.g., memory, CPU, etc.) a virtual machine (e.g., 175) may further create these and / or other appropriate configuration values ​​for. 또한(또는 다르게는), 이러한 선상에서, 가상 머신 호스트(110)의 관리자는 결과적인 가상 머신에 대한 이들 선호도를 변경할 수 있다. In addition (or alternatively), in this line, the administrator of the virtual machine host 110 can change these preferences for the resulting virtual machine. 또한, 관리자는 심지어 아무것도 없는 상태로부터 이러한 동작 정보(즉, 구성 값, 선호도 등)를 구축할 수도 있다. In addition, the administrator may establish such operation information (i.e., configuration values, preferences, etc.) from the state, even without anything. 어느 경우에든, 다수의 엔티티가 결과적인 가상 머신이 부팅 가능하며 가상 머신 레지던스(residence)(예를 들면, 가상 머신 호스트(110)) 상에서 정확하게 동작하게 될 것을 보장하는 데 적절한 임의의 수의 구성 변화를 가할 수 있음을 이해할 것이다. In either case, it can have multiple entity resulting virtual machine is bootable, and the virtual machine residence (residence) (e.g., virtual machine host 110), the configuration change in the number of any suitable to ensure that will correctly operate on it will be understood that the number added.

적절한 부팅 기록을 적절하게 변경/생성(즉, 120에서 123으로 변경/생성)하고, 또한 시스템 레지스트리 정보, 드라이버 정보 및/또는 기타 구성 또는 선호도 정보를 적절하게 변경/생성한 후, 변환 모듈(130)이 가상 하드 디스크 파일(140)의 탑재를 제거(즉, "탑재 해제(un-mount)")하여, 더 이상 드라이브로서 액세스 가능하지 않게 할 수 있다. Appropriate changes / creating the appropriate boot record (i.e., change from 120 to 123 / generation), and also after the appropriate changes / create a system registry information, driver information and / or other configuration or preference information, conversion module (130 ) to a virtual hard disk (to remove the mount of 140) (i.e., "with off (un-mount)" file), and further to prevent at least a drive inaccessible. 예를 들면, 도 1c에는 가상 머신 호스트(110)에게 가상 하드 디스크 파일(140)의 탑재를 제거하라고 명령하는 메시지(170)를 가상 머신 호스트(110)에 전송하는 것이 도시되어 있다. For example, Figure 1c, there is shown sending a message 170 that orders to remove the mounting of a virtual machine host 110, virtual hard disk file 140, the virtual machine host 110. 이 탑재를 제거한 후, 가상 하드 디스크 파일(들)(140)은 가상 머신(175)으로서 사용될 수 있고, 그 데이터는 스냅샷 동작이 시작된 곳에서의 볼륨(115)의 데이터와 본질적으로 동일하다. After removing this mount, virtual hard disk file (s) 140 may be used as virtual machine 175, the data is essentially the same as the data in the volume 115 of where the start of the snapshot operation.

특히, 새로운 가상 머신(175)에 의해 관리되는 볼륨(들) 내의 데이터는 모든 적절한 측면에서 일관된다(예를 들면, 애플리케이션-일관형, 파일 시스템-일관형, 및/또는 크래시-일관형(crash-consistent) 등). In particular, the data in the volume (s) managed by new virtual machine 175 are consistent in every appropriate side (e.g., application-consistent form, the file system-integrated type, and / or crash-consistent type (crash -consistent), etc.). 그 결과, 실제 머신(105)의 이전 사용자가 이제 가상 머신 호스트(110)에서 가상 머신(175)을 부팅시키고, 마치 사용자가 실제 머신(105)을 사용하고 있는 것처럼 (아니면 사용자가 실제 머신(105)을 사용하고 있는 경우에 비해 좀더 최적화되어) 가상 머신(이전 데이터에 대한 액세스 포함)을 사용할 수 있다. As a result, the previous user's physical machine 105 now and boot the virtual machine (175) in a virtual machine host 110, just as (or your actual machine you are using a physical machine (105) (105 ) If you are using are more optimized than) you can use the virtual machine (including access to historical data). 또한, VHD 파일이 일반적으로 휴대 가능한 것도 이해될 것이다. In addition, it will be understood that the VHD file can usually carry. 예를 들면, 최종 사용자는 가상 머신(175)과 연관된 가상 머신 파일(들)(예를 들면, VHD 파일(들) 등)을 원하는 장소로 전달하고 임의의 필요한 동작 정보 업데이트를 행함으로써, 적어도 하나의 구현에서 간단히 가상 머신(175)을 임의의 원하는 위치(즉, 다른 가상 머신 호스트)로 전달할 수 있다. For example, the end-user by transmitting and carrying out any operation information updates that are required to place a desired virtual machine file (s) (for example, VHD file (s)) associated with the virtual machine 175, at least one in the simple implementation it can be transmitted to the virtual machine 175 to any location desired (i.e., another virtual machine host).

다른 구현에서, 하나 이상의 VHD 파일(예를 들면, 140)은 심지어 실제 머신(105) 그 자체에서 생성되고 나서, 적절한 가상 머신 호스트(예를 들면, 110)에 전송/전달될 수도 있다. In another implementation, one or more VHD files (e.g., 140) even after being generated by the physical machine 105 itself, the appropriate virtual machine host (e.g., 110) may be sent / transmitted to. 예를 들면, 실제 머신(105)의 사용자는 실제 머신에서 VHD 파일(예를 들면, 140)을 생성하고, 실제 머신에서 관심 있는 데이터에 대해 스냅샷 콘텐츠를 그 VHD 파일에 전달할 수 있다. For example, a user of physical machine 105 can create a VHD file (e.g., 140) in the real machine, and for the data of interest in the physical machine to pass the snapshot contents to the VHD file. 이는, 원할 경우에, 사용자가 (즉, 가상 머신 호스트(110)에서) VHD 파일의 탑재를 피할 수 있는 적어도 한 가지 방법이다. Which, if desired, at least one way that the user can avoid mounting the VHD file (i.e., at virtual machine host 110). 어느 경우에든, 사용자는 VHD 파일 및 대응하는 스냅샷 콘텐츠를 적절한 대상(예를 들면, 가상 머신 호스트(110))으로 전송/전달하고, 그 대상에서 대응하는 동작 정보를 변화시킬 수 있다. In either case, the user can VHD file and corresponding snapshot contents to an appropriate the destination (e.g., virtual machine host 110), the transmit / transfer to, and the change in the operation information corresponding to the object. 다르게는, 사용자는 심지어 VHD 파일 및 스냅샷 콘텐츠를 새로운 대상으로 전송하기 전에, 소스(예를 들면, 실제 머신(105))에서 VHD 파일 및 스냅샷 콘텐츠에 대한 동작 정보를 변화시킬 수도 있다. Alternatively, the user or even the VHD file and snapshot contents prior to transfer to a new destination, the source (e.g., physical machine 105) may also be changed in the operation information for the VHD file and snapshot contents.

일부 경우에는, VHD "파일"을 그 자체로서 생성하기 보다는, 예를 들어 모듈(예를 들면, 변환 모듈(130))이 실제 머신(105)에서 생성된 스냅샷 데이터 및 VHD 메타데이터를 운반에 효율적인 부분들(예를 들면, 바이트 블록)로 하여 메모리로부터 스트리밍하도록 구성될 수 있다. In some cases, rather than create a VHD "file," as such, for example, the module (e.g., conversion module 130) to transport the snapshot data and VHD metadata created at the physical machine 105 and in the effective portion (e.g., byte block) may be configured to stream from memory. 또한, 스트리밍될 데이터는 적절한 VHD 포맷/콘텐츠 사양에 따라 VHD 포맷으로 포맷될 수 있다. Further, to be streaming data may be formatted in a VHD format according to appropriate VHD format / content specifications. 따라서, 대상(예를 들면, 가상 머신 호스트(110))으로 전달된 후에, 스트림이 VHD 파일로서 저장될 수 있는데, 왜냐하면 스트리밍된 데이터가 VHD 파일 포맷으로 생성되었기 때문이다. Therefore, since the destination (e.g., virtual machine host 110) after the transmission, the stream there can be stored as a VHD file, since the streamed data was generated in VHD file format. 이는 VHD 파일의 탑재를 피하는 또 다른 방법이기도 하다. This is also another way to avoid mounting the VHD file.

따라서, 도 1a 내지 도 1c는 실제 머신 볼륨 데이터의 스냅샷을 생성하고 그 데이터로부터 새로운 가상 머신을 생성하기 위한 본 발명의 구현에 따라 사용될 수 있는 다수의 총체적 개략도 및 컴포넌트를 도시한다. Thus, Figure 1a to 1c show a schematic view and a number of total components that may be used in accordance with embodiments of the present invention for generating a snapshot of physical machine volume data and creating a new virtual machine from that data. 상술한 사항 외에, 본 발명의 구현은 특정한 결과를 달성하기 위한 하나 이상의 단계를 포함하는 방법의 흐름도의 관점에서 설명될 수 있다. In addition to the above-described details, implementations of the invention may be described in terms of a flow chart of a method comprising one or more steps to achieve a particular result. 예를 들면, 도 2는 실제 머신 또는 다른 가상 머신과 같은 머신을 가상 머신으로 변환하기 위한 방법의 흐름도를 실제 머신(105) 및 가상 머신 호스트(110)의 관점에서 도시하고 있다. For example, Figure 2 shows a flow diagram of a method for converting a machine, such as a physical machine or a different virtual machine to a virtual machine from the viewpoint of the physical machine 105 and the virtual machine host 110. 도 2의 방법은 도 1a 내지 도 1c의 메커니즘의 컴포넌트들과 관련하여 이하 기술된다. The method of Figure 2 is described below in connection with the mechanism of Fig. 1a to Fig. 1c components.

예를 들면, 도 2는, 실제 머신(105)의 관점에서, 하나 이상의 실제 머신 볼륨 상에 현저한 가동 중지 시간을 일으키지 않고도 실제 머신을 가상 머신 호스트에서 가상 머신으로 변환하는 방법(a method of converting a physical machine to a virtual machine at a virtual machine host)이 실제 머신의 하드웨어 구성을 식별하는 단계(200)를 포함할 수 있음을 도시하고 있다. For example, Figure 2, from the perspective of physical machine 105, a method of converting a physical machine without causing significant downtime on one or more physical machine volumes to a virtual machine at a virtual machine host (a method of converting a It shows that a physical machine to a virtual machine at a virtual machine host) may comprise a step 200 of identifying hardware configurations of the physical machine and. 단계(200)는 머신의 하나 이상의 볼륨에 대한 하나 이상의 하드웨어 구성 설정을 식별하는 단계를 포함한다. The step 200 comprises the step of identifying one or more hardware configuration settings for one or more volumes of a machine. 예를 들면, 도 1a는 변환 모듈(130)을 도시하고 있는데, 이는 스냅샷 프로세스를 시작하기에 앞서 볼륨(115)에 대한 하드웨어(및/또는 소프트웨어) 구성 설정을 식별할 수 있다. For example, Figure 1a there is shown a conversion module 130, which can identify hardware (and / or software) configuration for the volume 115 prior to starting a snapshot process settings. 이는, 부팅 기록(120) 및 볼륨 데이터(125)를 이들이 볼륨(115) 상에서 실제 머신(105)에 존재하는 것으로서 식별하는 단계를 포함할 수 있고, 데이터가 멀티프로세서 환경에 대해 구성되는지 여부, 운영 체제 지원 파일의 비호환성, 고려될 필요가 있는 저장 장치 및 네트워크 드라이버가 존재하는지 여부 등을 식별하는 단계를 더 포함할 수 있다. This status, operating if the boot record 120 and volume data 125 may they comprise identified as being present in the physical machine 105 on volume 115, the data is configured for the multi-processor environment, a step of identifying whether such that the storage and network drivers that the incompatibility of system support files, need to be taken into account there may be further included.

또한, 도 2는 실제 머신(105)의 관점에서, 본 방법이 하나 이상의 볼륨의 스냅샷을 생성하는 단계(210)를 포함할 수 있음을 도시하고 있다. In addition, Figure 2 shows that from the perspective of physical machine 105 can include a step 210 of the method to create a snapshot of the one or more volumes. 단계(210)는 하나 이상의 머신 볼륨에 대응하는 하나 이상의 일관된 스냅샷을 생성하는 단계를 포함한다. And step 210 includes the step of generating the one or more consistent snapshots corresponding to one or more machine volumes. 예를 들면, 도 1a는 변환 모듈(130)이 볼륨(115)의 스냅샷(117)을 생성하는 것을 도시하고 있는데, 이 스냅샷은 이전과 동일한 부팅 기록(120)뿐만 아니라 볼륨 데이터(127)도 포함한다. For example, Figure 1a shows conversion module 130, there is shown that this creates a snapshot 117 of volume 115 and the snapshot as well as the same boot record 120 as before the volume data (127) also it includes. 적어도 하나의 구현에서, 변환 모듈(130)은, 기입자를 이용 가능한 경우에는 기입자 연관된(writer-involved) 스냅샷 프로세스를 볼륨(115) 상에 호출할 수 있고, 아니면 이러한 기입자를 이용할 수 없는 경우에는 단순히 애플리케이션(또는 다른 기입 프로세스)을 종료시킬 수 있다. If in at least one implementation, conversion module 130, if available characters written there may be called a group particle associated (writer-involved) snapshot processes on volume 115, or can not use these characters written there simply may terminate the application (or other write processes). 그 결과, 스냅샷 프로세스 후의 시간에 따른 단일의 인스턴스에 대해 스냅샷(117) 내의 데이터가 일관(예를 들어, 애플리케이션 일관형)되는 것이 보장될 수 있다. As a result, data within snapshot 117 for a single instance in time after the snapshot process can be guaranteed to be consistent (e.g., application consistent type).

또한, 도 2는 실제 머신(105)의 관점에서, 본 방법이 스냅샷(들)을 탑재된 가상 디스크 파일에 전송하는 단계(220)를 포함할 수 있음을 도시하고 있다. In addition, Figure 2 shows that from the perspective of physical machine 105, the method can include the step 220 of transmitting the virtual disk file with the snapshot (s). 단계(220)는 탑재된 가상 하드 디스크 파일에 하나 이상의 일관된 스냅샷을 전송하는 단계를 포함한다. And step 220 includes sending the one or more consistent snapshots to the mounted virtual hard disk file. 예를 들면, 변환 모듈(130)은 실제 머신(105)에서 찍힌 각각의 스냅샷에 대한 장치 식별자를 리트리브하고, 가상 머신 호스트(110)에 탑재된 가상 하드 디스크 파일 각각에 대한 임의의 장치 식별자를 리트리브한다. For example, the conversion module 130 may retrieve the device identifier for each snapshot taken at physical machine 105, and any device identifiers for each virtual hard disk file with a virtual machine host 110 The retrieval. 도 1b는, 적절한 장치 식별자를 리트리브하였을 때, 변환 모듈(130)이 예를 들어, 바이트(또는 바이트 블록) 전달/복사 메커니즘을 이용하여 스냅샷(117)의 볼륨 데이터(127)를 가상 하드 디스크 파일(140)로 전달할 수 있음을 도시하고 있다. Figure 1b is, when retrieving appropriate device identifiers, conversion module 130 can, for example, a byte (or byte block) transfer / volume data (127) of using the copy mechanism snapshot 117, the virtual hard disk It shows that it can be passed to the file (140).

또한, 도 2는 실제 머신(105)의 관점에서, 본 방법이 부팅 기록(들)을 탑재된 가상 디스크 파일로 전송하는 단계(230)를 포함할 수 있음을 도시하고 있다. In addition, Figure 2 shows that from the perspective of physical machine 105, the method can comprise a step 230 of transmitting a virtual disk file mounted the boot record (s). 단계(230)는, 하나 이상의 일관된 스냅샷에 대한 부팅 기록이 가상 머신 호스트에서 변경될 수 있도록, 그 하나 이상의 일관된 스냅샷에 대한 부팅 기록을 탑재된 가상 하드 디스크 파일에 전송하는 단계를 포함한다. The step 230 includes sending a virtual hard disk file mounted the boot record for the one or more consistent snapshots to, the boot record for the one or more consistent snapshots can be modified at the virtual machine host. 예를 들면, 도 1b는 변환 모듈(130)이 부팅 데이터(120)를 가상 하드 디스크 파일(140)에 전송하는 것도 도시하고 있다. For example, Figure 1b shows also that the conversion module 130 sends the boot data 120 to virtual hard disk file 140. 또한, 도 1c는, 부팅 기록(123)이 가상 머신 호스트(110)의 운영 환경에 대해 일관되도록, 부팅 기록(120)을 기록(123)으로 변경하기 위한 메시지(165)를 전송할 수 있다. Also, Figure 1c, the boot record 123 may transmit a message (165) for, which is consistent for the operating environment to modify the boot record 120 to record 123 in the virtual machine host 110. 일 구현에서, 새로운 가상 머신에 대한 새로운 부팅 기록은 그냥 전송되고 변경되는 것보다는 오히려 아무것도 없는 상태로부터 간단히 생성될 수 있다. In one implementation, a new boot record to a new virtual machine can be easily generated from the state rather than just nothing that is transmitted is changed.

상술한 사항 외에, 도 2는 가상 머신 호스트(110)의 관점에서, 하나 이상의 머신 볼륨에 대한 가동 중지 시간을 일으키지 않고도 머신(즉, 실제 머신 또는 이전 가상 머신)을 가상 머신 호스트에서 가상 머신으로 변환하는 방법이 가상 하드 디스크 파일을 생성하는 단계(240)를 포함할 수 있음을 도시하고 있다. In addition to the above-described matters, Fig. 2 is converted to a virtual machine from the point of view of the host 110, without causing downtime on one or more machine volumes machine (i.e., physical machine or prior virtual machine) to a virtual machine at the virtual machine host the method shows that it is possible to include a step 240 that creates a virtual hard disk file. 단계(240)는 파일 크기를 갖는 가상 하드 디스크 파일을 생성하는 단계를 포함한다. The step 240 includes generating a virtual hard disk file having a file size. 예를 들면, 도 1a에는 가상 머신 호스트(110)가 가상 머신 호스트(110)에게 기입 가능한 가상 하드 디스크파일을 생성하라고 명령하는 메시지(150)뿐만 아니라, 새로운 가상 하드 디스크 파일을 기입 가능하게 하라는 명령어를 수신하는 것이 도시되어 있다. For example, Fig. 1a, the virtual machine host command 110 is asked, as well as message 150 that orders to produce a possible virtual hard disk file written to virtual machine host 110, to enable write the new virtual hard disk file ] it is shown for receiving. 이에 응답하여, 가상 머신 호스트(110)는 가상 하드 디스크 파일(140)을 생성하고, 이를 기입 가능하게 한다. In response, virtual machine host 110 to enable creation of a virtual hard disk file 140 and write them. 앞서 언급된 바와 같이, 여기서 가상 하드 디스크 파일 크기는 정적일 수도 있고, 아니면 동적일 수도 있다. As noted above, in which may be a virtual hard disk file size is static, or it may be dynamic. 예를 들면, 가상 하드 디스크 파일(140)은 50 기가바이트의 볼륨(115) 데이터를 수용하기 위하여 100 기가바이트로 설정될 수 있다. For example, it may be set to a virtual hard disk file 140 is 100 gigabytes in order to accommodate 50 gigabytes of volume 115 data bytes. 다르게는, 변환 모듈(130)은 가상 하드 디스크 파일(140)을, 추가적인 데이터가 전달됨에 따라 동적으로 커지도록 설정한다. Alternatively, conversion module 130 sets virtual hard disk file 140, additional data is to dynamically grow based on the passed;

또한, 도 2는 가상 머신 호스트(110)의 관점에서, 본 방법이 가상 하드 디스크 파일을 탑재하는 단계(250)를 포함할 수 있음을 도시하고 있다. In addition, Figure 2 shows that from the perspective of virtual machine host 110, to which the present method may include a step 250 of mounting the virtual hard disk file. 단계(250)는, 가상 하드 디스크 파일이 액세스 가능한 실제 디스크로서 보이도록, 가상 머신 호스트에서 가상 하드 디스크 파일을 탑재하는 단계를 포함한다. Step 250 is, to show as a physical disk, the virtual hard disk file is accessible, and a step of mounting the virtual hard disk file at a virtual machine host. 예를 들면, 도 1a에는 가상 머신 호스트(110)가 가상 하드 디스크 파일(140)을 탑재하라는 요청(155)을 수신하는 것이 도시되어 있다. For example, Figure 1a, there is shown that the virtual machine host 110 receives a request 155 is asked to mount the virtual hard disk file 140. 일 구현에서, 가상 머신 호스트(110)는 파일(140)을 특정한 장치 식별자와 연관시키라는 명령을 받고 나서, 그 식별자를 실제 장치로서 탑재할 수 있다. In one implementation, virtual machine host 110 after receiving the command is sikira associate file 140 with a particular device identifier, it is possible to mount that identifier as a physical device. 그러면, 가상 하드 디스크 파일(140)은 디스크 장치(145)로서 보이고 액세스될 수 있다. Then, the virtual hard disk file 140 can be accessed showing a disk device 145. The

또한, 가상 머신 호스트(110)의 관점에서, 본 방법은 하나 이상의 스냅샷을 수신하는 단계(260)를 포함할 수 있다. Further, from the viewpoint of the virtual machine host 110, the method may include a step 260 of receiving one or more snapshots. 단계(260)는 하나 이상의 실제 머신 볼륨에 대응하는 하나 이상의 일관된 스냅샷의 데이터를 수신하는 단계를 포함한다. The step 260 includes receiving data of one or more consistent snapshots corresponding to one or more physical machine volumes. 예를 들면, 도 1a에 도시된 바와 같이, 가상 머신 호스트(110)는 임의의 적절한 전달 메커니즘(즉, 임의의 네트워크 전달 프로토콜에 따라 바이트 단위이든 또는 바이트 블록 단위이든)을 사용하여 볼륨 데이터(127) 및 부팅 데이터(120)를 수신한다. For example, as shown in Figure 1a, a virtual machine host 110 volume data (127, using (either in bytes, or any byte block-by-block basis in accordance with that is, any network transfer protocol), any suitable delivery mechanism ), and receives the start data 120.

또한, 도 2는 가상 머신 호스트(110)의 관점에서, 본 방법이 부팅 기록을 변경하는 단계(27)를 포함할 수 있음을 도시하고 있다. In addition, Figure 2 shows that from the perspective of virtual machine host 110, to which the present method may include a step 27 for changing the boot record. 단계(270)는, 하나 이상의 일관된 스냅샷이 가상 머신 호스트에서의 운영 체제에 적합하도록, 하나 이상의 일관된 스냅샷에 대한 동작 정보를 변경하는 단계를 포함한다. The step (270), comprising the step of changing the operation information for one or more consistent snapshots, one or more consistent snapshots are suitable for the operating system in a virtual machine host. 도 1c에 도시된 바와 같이, 예를 들면, 가상 머신 호스트(110)는 동작 정보를 변경하기 위한 메시지(165)를 수신한다. As shown in Figure 1c, for example, virtual machine host 110 receives message 165 to change the operation information. 예를 들면, 메시지(165)는 적절한 가상 머신 호스트(110) 기준(criteria)을 식별하고, 적절한 방법으로 부팅 데이터(120)를 부팅 데이터(123)로 변화시키기 위한 하나 이상의 요청을 포함할 수 있다. For example, the message 165 may include one or more requests for changing the appropriate virtual machine host 110 criteria (criteria) to boot data 120 in the identification and appropriate method for a bootable data (123) . 또한, 메시지(165)(또는 다른 메시지 - 도시 생략)는 레지스트리 및/또는 동작 선호도 정보를 변화시키기 위한 하나 이상의 요청을 포함할 수 있다. In addition, the message 165 (or another message - not shown) may include one or more requests to change registry and / or operating preference information.

동작 속성의 이러한 변화는 예를 들면, 임의의 수의 하드웨어 및 운영 체제 구성(예를 들면, 임의의 수의 프로세서, 하드웨어 드라이버, 디스크 드라이버/식별자 및 저장 장치 드라이버/식별자, 네트워크 드라이버 등)을 포함할 수 있다. This change in action property, for example, configuring the hardware and operating system in any number of (e. G., Any number of processors, hardware drivers, disk drivers / identifiers and storage drivers / identifiers, network drivers, etc.) can do. 이러한 변화는 가상 머신의 새로운 운영 체제가 가상 환경에 대해 호환 가능하고 적절하게 기능하는 것을 보장하도록 고려될 필요가 있다. These changes need to be considered to ensure that the new operating system of the virtual machine compatible and to function properly in a virtual environment. 동작 속성의 변화는 드라이버 및 다른 하드웨어의 사용, 드라이버의 아이덴티티가 바이너리에서 교체되고/되거나 등록되는 것, 커널 및/또는 HAL 정보에 대한 업데이트 등과 같은 여러 가지 레지스트리 조작을 더 포함할 수 있다. Changes in operating properties can further include various registry operations, such as the use of drivers and other hardware, the identity of the driver will have to be replaced and / or registered in binary, the kernel and / or update information on HAL. 동작 속성의 변화는 메모리 및/또는 CPU 요구 사항에 대한 구성 선호도와 같은, 가상 머신에 대한 여러 가지 구성 선호도를 더 포함할 수 있다. Changes in operating properties can further comprise a variety of configurations, such as a preference for virtual machine configuration preferences for memory and / or CPU requirements.

또한, 도 2는 가상 머신 호스트(110)의 관점에서, 본 방법이 가상 하드 디스크 파일 탑재를 제거하는 단계(280)를 포함할 수 있음을 도시하고 있다. In addition, Figure 2 shows that from the perspective of virtual machine host 110, the method can include the step 280 of removing the virtual hard disk file mount. 단계(280)는, 가상 하드 디스크 파일이 실제 디스크로서 액세스 가능하지 않도록, 하드 디스크 파일의 탑재를 제거하는 단계를 포함한다. Step 280, the virtual hard disk file is not accessible as a physical disk, and removing the mount of the hard disk file. 예를 들면, 가상 머신 호스트(110)는, 가상 머신 호스트(110)가 가상 하드 디스크 파일(140)의 탑재를 제거하라고 요청하는 메시지(170)를 수신한다. For example, virtual machine host 110 receives message 170 that the virtual machine host 110 remove the mount request that the virtual hard disk file 140. 그리고, 가상 머신 호스트(110)는, 파일(140)이 더이상 국지적으로 또는 네트워크를 통해 호스트 수준 디스크 드라이브로서 액세스 가능하지 않도록, 가상 하드 디스크 파일을 탑재 해제할 수 있다. In addition, virtual machine host 110, file 140 is not longer possible to access a host-level disk drive through a local or network, it is possible to dismount the virtual hard disk file. 그 결과, 시간에 따른 단일의 인스턴스에 대해 일관되는 데이터를 포함하는 가상 디스크 파일(140)이 가상 머신(175)으로서 부팅되고, 가상 머신 호스트(110)에서 동작하려고 할 수 있다. As a result, virtual disk file 140 that contains data that is consistent for a single instance in time and booting a virtual machine 175, it may try to operate at virtual machine host 110. 특히, 최종 사용자의 관점에서, 가상 머신(175)은 - 거의 모든 의도 및 목적상 - 스냅샷 동작 이전의 실제 머신(105)과 본질적으로 동일한 형태(즉, 동일한 데이터 또는 그의 데이터 서브세트(들))이다. In particular, from the perspective of the end user, virtual machine 175 is - almost all intents and purposes - snapshot operation physical machine 105 and the same shape are essentially the previous (i.e., same data, or a data sub-set (s) )to be.

따라서, 도 1a 내지 도 1c 및 도 2는 머신(예를 들면, 실제 머신 또는 이전 가상 머신)을 가상 머신으로 효율적으로 변환하기 위한 다수의 컴포넌트 및 메커니즘을 제공한다. Thus, Figure 1a to 1c and 2 provide a number of components and mechanisms for converting a machine (e.g., physical machine or prior virtual machine) to a virtual machine efficiently. 특히, 본 도면들 및 대응하는 본문은, 변환되고 있는 머신을 재부팅할 필요 없이, 및/또는 ADS 또는 PXE 환경으로 재부팅할 필요없이, 본 발명의 구현이 적어도 하나의 측면에서 수행될 수 있는 방법을 설명한다. In particular, the present drawings and the corresponding text that is, ways of without the need to reboot the machine that is being composed, and without having to reboot to / or ADS or PXE environment, the invention is implemented can be at least carried out in one of the side It will be described. 이와 같이, 상술한 컴포넌트 및 메커니즘은 실제 머신이 예를 들어, 통상적인 디스크 및 네트워크 전달 속도로 비교적 빠르게 생성될 수 있게 한다. Thus, allowing the components and mechanisms described above is the physical machine, for example, can be produced relatively quickly as a conventional disk and network transfer speeds.

여기서 앞서 논의된 바와 같이, 본 발명의 구현은 광범위한 최적화 및 광범위한 하드웨어 및 운영 체제 환경에 대해 변형되고 변경될 수 있음을 이해할 것이다. Here, as discussed above, implementation of the invention it will be appreciated that the same may be varied over a wide range of changes and optimization of a wide variety of hardware and operating system environments. 예를 들면, 본 발명의 구현은 임의의 유형의 머신을 새로운 가상 머신으로 변환하는 데 쉽게 적용될 수 있다. For example, embodiments of the present invention can be readily applied to convert any type of machine to a new virtual machine. 예를 들면, 이전 가상 머신에 대하여, 사용자는 그 볼륨을 최대한 활용하고 있는(maxed out) 가상 머신에 대해 저장 공간을 좀더 생성하고 싶어할 수 있다. For example, for a previous virtual machine, the user may wish to create more storage space for those that make the most of the volume (maxed out) virtual machine. 따라서, 사용자는 이전 가상 머신의 이전 VHD 파일보다 큰 하나 이상의 VHD 파일을 생성하고, 이전 가상 머신 데이터를 스냅샷하고, 그 가상 머신 스냅샷 데이터를 좀더 큰 VHD 파일에 전달할 수 있다. Thus, the user can create a larger one than the previous VHD file, the VHD file of a virtual machine before, and the previous virtual machine snapshot data and forward the data to the virtual machine snapshot larger VHD files. 또한, 여기서 설명되는 변환 프로세스는 명백하게 설명된 단계 이외의 복수의 독립적인 단계들로 좀더 분리될 수 있다. Further, the conversion process described herein may be further separated into a plurality of other than the steps described apparently independent step. 예를 들면, 사용자가 볼륨 이미지를 대상 머신으로 전달하기 위한 방법을 가지고 있으면, 사용자는, 이미지가 대상 머신에서 부팅 가능하게도록, 이미지를 "가상화"시키기 위한 픽스업(fix-up) 동작을 간단히 호출할 수 있다. For example, if the user has a way to transfer a volume image to a target machine, the user image is to be bootable at the target machine, simply the fix-up (fix-up) operation for "virtual" images you can call.

상술한 사항 외에, 본 발명의 구현이 광범위한 디스크 구성에도 적용될 수 있음이 쉽게 이해될 것이다. In addition to the above-described requirements, it will be readily understood that the implementations of the invention can be applied to a wide range of disk configurations. 예를 들면, 머신 볼륨(115)이 설치되는 실제 디스크(들)는 운영 체제의 임의의 하나 이상의 기본 또는 동적 디스크일 수 있고, 여러 가지 파티션들 및/또는 볼륨들을 더 포함할 수도 있다. For example, a machine physical disk volume (s) 115 is installed may be in one or more of any of the operating system, a basic or dynamic disk may further include a number of partitions and / or volumes. 그렇지만, 여기서 설명되는 프로시저(procedure), 컴포넌트 및 메커니즘은 마치 이들이 이전 머신(예를 들면, 실제 머신 또는 이전 가상 머신)에 있는 것처럼 가상 머신의 이러한 변형에 적용될 수 있다. However, the procedure (procedure), components, and mechanisms described herein may be if they are to be applied in this modification of the virtual machines as if they were in the prior machine (e.g., physical machine or previous virtual machine). 특히, 실제 동적 또는 기본 디스크와 연관된 특징이 가상 머신 호스트에 전달되어, 새로운 가상 머신은 기본 또는 동적 디스크 속성을 이용하여 마치 전에 했던 것과 마찬가지로 거동하게 될 것이다. In particular, the features associated with the physical dynamic or basic disk is transmitted to the virtual machine host, the new virtual machine will behave just as if that before using the basic or dynamic disk properties. 따라서, 여기서 설명되는 컴포넌트, 모듈 및 메커니즘은 이전 머신으로부터 이전 머신의 새로이 가상화된 형태로의 심리스한 천이(seamless transition)를 보장하도록 폭넓게 적용될 수 있다. Therefore, components, modules, and mechanisms described herein can be applied widely to ensure a seamless transition to a newly virtualized form of the prior machine (seamless transition) from the previous machine.

본 발명의 실시예는 이하 더욱 상술되는 바와 같이, 다양한 컴퓨터 하드웨어를 포함하는 전용 또는 범용 컴퓨터를 포함할 수 있다. Embodiments of the present invention as will be hereinafter further described above, may comprise a dedicated or general-purpose computer including various computer hardware. 또한, 본 발명의 범주 내에 있는 실시예는 저장되어 있는 컴퓨터 실행 가능 명령어 또는 데이터 구조를 전달하거나 포함하기 위한 컴퓨터 판독 가능 매체를 포함한다. In addition, embodiments within the scope of the present invention includes a computer-readable medium for transmitting or contain computer-executable instructions or data structures stored. 이러한 컴퓨터 판독 가능 매체는 범용 또는 전용 컴퓨터에 의해 액세스될 수 있는 어떠한 이용 가능한 매체일 수도 있다. Such computer-readable media may be any available media that can be accessed by a general purpose or special purpose computer.

예를 들어, 이러한 컴퓨터 판독 가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광 디스크 저장 장치, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 원하는 프로그램 코드 수단을 컴퓨터 실행 가능 명령어 또는 데이터 구조의 형태로 전달하거나 저장하는 데 사용되고 전용 또는 범용 컴퓨터에 의해 액세스 가능한 임의의 기타 매체를 포함할 수 있지만, 이에 제한되지 않는다. For example, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or desired program code means in the computer-executable instructions or data structures used to pass in the form or storage can include any other medium accessible by a dedicated or general-purpose computer but not so limited. 정보가 네트워크 또는 다른 통신 접속(하드와이어드(hardwired), 무선, 또는 하드와이어드 또는 무선의 조합)을 통해 컴퓨터로 전달되거나 제공될 때, 컴퓨터는 그 접속을 적절히 컴퓨터 판독 가능 매체로서 본다. When information is provided or transferred to the computer over a network or another communications connection (hard-wired (hardwired), wireless, or a combination of hardwired or wireless), the computer will see the connection as a computer-readable medium, as appropriate. 따라서, 임의의 이러한 접속들은 컴퓨터 판독 가능 매체라고 적절히 칭해진다. Thus, any such connection can properly be referred to as a computer-readable medium. 또한, 상술한 것들의 조합도 컴퓨터 판독 가능 매체의 범주 내에 포함되어야 한다. In addition, it should be included within the scope of combinations of the above should also a computer-readable medium.

컴퓨터 실행 가능 명령어는, 예를 들면, 범용 컴퓨터, 전용 컴퓨터 또는 전용 처리 장치로 하여금 어떤 함수 또는 함수들의 그룹을 실행하게 하는 명령어 및 데이터를 포함한다. Computer-executable instructions include, for example, to cause a general purpose computer, dedicated computer, or special purpose processing device to execute the command and data to a group of some function or functions. 본 발명의 대상들은 구조적인 특징 및/또는 방법론적인 단계에 특정된 언어로 기술되었지만, 첨부되는 청구범위에서 규정되는 대상은 상술한 특정 특징 또는 단계에 제한될 필요가 없음을 이해할 것이다. Although the subject of the invention are described in a specific language to structural features and / or methodological steps, as defined in the appended claims the target it will be appreciated that there is no need to be limited to the specific features or steps described above. 오히려, 상술한 특정 특징 및 단계는 청구범위를 구현하는 예시적인 형태로서 개시되어 있다. Rather, the above-described specific features and steps are disclosed as exemplary forms of implementing the claims.

본 발명은 그 사상 또는 본질적인 특징을 벗어나지 않고도 다른 특정한 형태로 실시될 수 있다. The invention may be embodied in other specific forms without departing from its spirit or essential characteristics. 개시된 실시예는 모든 측면에 있어서 제한적인 것이 아닌 단지 예시적인 것으로서 고려되어야 한다. The disclosed embodiments are to be considered as illustrative only, rather than limiting in all aspects. 따라서, 본 발명의 범위는 상술한 설명에 의하는 것이 아니라 첨부되는 청구범위에 의해 나타난다. Accordingly, the scope of the invention indicated by the appended claims, rather than depend on the above description. 청구범위의 등가물의 의미 및 범위 내에서의 모든 변화는 그 범주 내에 포함된다. All changes within the meaning and range of equivalency of the claims are embraced within their scope.

Claims (20)

  1. 머신을 가상 머신으로 변환하는 방법으로서, A method of converting the machine to a virtual machine,
    머신의 하나 이상의 볼륨에 대한 하나 이상의 하드웨어 구성 설정을 식별하는 단계; Identifying one or more hardware configuration settings for one or more volumes of a machine;
    상기 머신의 상기 하나 이상의 볼륨에 대응하는 하나 이상의 일관된 스냅샷(consistent snapshot)을 생성하는 단계; Generating the one or more consistent snapshots (consistent snapshot) corresponding to the one or more volumes of the machine;
    상기 하나 이상의 일관된 스냅샷을 탑재된(mounted) 가상 하드 디스크 파일로 전송하는 단계; It mounted to the one or more consistent snapshots (mounted) transmitting to the virtual hard disk file; And
    상기 하나 이상의 일관된 스냅샷에 대한 부팅 기록이 가상 머신 호스트에서 변경(modified)될 수 있게, 상기 하나 이상의 일관된 스냅샷에 대한 상기 부팅 기록을 상기 탑재된 가상 하드 디스크 파일로 전송하는 단계 This allows the boot record for the one or more consistent snapshots can be changed (modified) at a virtual machine host, the method comprising transmitting to the one or more consistent with the virtual hard disk file to the boot record of the snapshot
    를 포함하는, 머신을 가상 머신으로 변환하는 방법. The method of converting the machine to a virtual machine comprising a.
  2. 제1항에 있어서, According to claim 1,
    상기 가상 머신 호스트는 하나 이상의 가상 머신의 호스트이도록 구성되는, The virtual machine host is configured such that the one or more virtual machine host,
    머신을 가상 머신으로 변환하는 방법. How to convert the machine into a virtual machine.
  3. 제1항에 있어서, According to claim 1,
    상기 스냅샷이 상기 가상 머신에서의 운영 체제에 사용될 수 있도록 상기 스냅샷은 상기 가상 머신 호스트에서 변경가능한, The snapshot is the snapshot available to be used for the operating system in the virtual machine changes from the virtual machine host,
    머신을 가상 머신으로 변환하는 방법. How to convert the machine into a virtual machine.
  4. 제1항에 있어서, According to claim 1,
    상기 머신의 상기 하나 이상의 볼륨에 대응하는 하나 이상의 일관된 스냅샷을 생성하는 단계는 상기 머신의 상기 하나 이상의 볼륨이 활성 상태에 있는 동안 상기 머신의 상기 하나 이상의 볼륨에 대응하는 하나 이상의 일관된 스냅샷을 생성하는 단계를 포함하는, Generating the one or more consistent snapshots corresponding to the one or more volumes of the machine generates the one or more consistent snapshots corresponding to the one or more volume of the machine for the one or more volumes of the machine in the active state , comprising:
    머신을 가상 머신으로 변환하는 방법. How to convert the machine into a virtual machine.
  5. 제1항에 있어서, According to claim 1,
    상기 머신의 상기 하나 이상의 볼륨은 동적(dynamic) 실제 디스크 상에 설치된 복수의 머신 볼륨들을 포함하는, The one or more volumes of the machine comprising a plurality of machine volumes installed on a dynamic (dynamic) the physical disk,
    머신을 가상 머신으로 변환하는 방법. How to convert the machine into a virtual machine.
  6. 제1항에 있어서, According to claim 1,
    상기 탑재된 가상 하드 디스크 파일로 상기 하나 이상의 일관된 스냅샷을 전송하는 단계는 상기 하나 이상의 일관된 스냅샷 중 적어도 하나의 스냅샷을 하나 이상의 바이트(byte) 블록의 세트로서 전달하는 단계를 포함하는, Sending the one or more consistent snapshots to the mounted virtual hard disk, the files comprising the step of passing as the one or more consistent snapshots at least one set of one or more bytes (byte) blocks of the snapshot,
    머신을 가상 머신으로 변환하는 방법. How to convert the machine into a virtual machine.
  7. 제1항에 있어서, According to claim 1,
    상기 머신은 실제 머신(physical machine)이고, Wherein the machine is a physical machine (physical machine),
    상기 실제 머신 및 상기 가상 머신 호스트는 동일한 컴퓨터 시스템이어서, 상기 실제 머신의 하나 이상의 볼륨은 상기 동일한 컴퓨터 시스템 내의 상기 실제 머신의 다른 디스크 장치로 전사(transfer)되는, The physical machine and the virtual machine host are the same computer system, then, one or more volumes of the physical machine are transferred (transfer) to a different disk device of the physical machine within the same computer system, wherein,
    머신을 가상 머신으로 변환하는 방법. How to convert the machine into a virtual machine.
  8. 제1항에 있어서, According to claim 1,
    상기 가상 머신 호스트의 하나 이상의 시스템 값을 식별하는 단계; Identifying one or more system values ​​of the virtual machine host; And
    상기 식별된 하나 이상의 시스템 값에 따라 상기 하나 이상의 일관된 스냅샷의 데이터에 대한 동작 정보를 변경하라는 명령어를 전송하는 단계 Sending a command to change the operational information for the one or more data consistent snapshots in accordance with one or more system values ​​of the identification
    를 더 포함하고, Including more and
    상기 동작 정보를 변경하라는 명령어는, Command to change the operation information,
    (i) 상기 부팅 기록; (I) the boot record;
    (ii) 시스템 레지스트리 정보; (Ii) the system registry information;
    (iii) 하나 이상의 드라이버; (Iii) one or more drivers;
    (iv) 운영 체제 바이너리(binary)들; (Iv) the operating system binaries (binary);
    (v) 커널 바이너리들; (V) the kernel binary; 또는 or
    (vi) 상기 가상 머신의 하나 이상의 구성 선호도(preference) (Vi) one or more configuration preferences of the virtual machine (preference)
    중 임의의 하나 이상을 변경하라는 명령어를 포함하는, Of comprising instructions to change any one or more of,
    머신을 가상 머신으로 변환하는 방법. How to convert the machine into a virtual machine.
  9. 제8항에 있어서, The method of claim 8,
    상기 동작 정보를 변경하라는 명령어는, Command to change the operation information,
    하나 이상의 실제 장치에 대한 드라이버들을 하나 이상의 가장 장치에 대한 드라이버들로 교체하라는 하나 이상의 명령어; One or more instructions to replace the drivers for one or more physical devices with drivers for one or more of the device;
    가상 환경 내의 대응하는 가상 장치(virtual device)가 존재하지 않는 하드웨어에 대한 장치 드라이버들을 디스에이블(disable)시키라는 하나 이상의 명령어; A device driver for the hardware that does not correspond to the virtual device (virtual device) exists, disabling (disable) sikira one or more instructions in a virtual environment; 또는 or
    상기 가상 머신 호스트에 존재하지 않는 하나 이상의 장치에 종속되는 하나 이상의 서비스를 디스에이블시키라는 하나 이상의 명령어 The virtual machine display one or more services that depend on one or more devices that do not exist in the host is one or more instructions enable sikira
    중 임의의 하나 이상의 명령어를 포함하는, Of including any one or more instructions of,
    머신을 가상 머신으로 변환하는 방법. How to convert the machine into a virtual machine.
  10. 제8항에 있어서, The method of claim 8,
    상기 가상 하드 디스크 파일이 가상 머신으로서는 액세스 가능하지만 실제 디스크로서는 액세스 가능하지 않도록, 상기 가상 하드 디스크 파일의 탑재를 제거하라는 하나 이상의 명령어를 상기 가상 머신 호스트에 전송하는 단계를 더 포함하는, The virtual hard disk file can be accessible as a virtual machine but not as a physical disk can be accessed, the virtual hard disk file, one or more instructions to eliminate the mount further comprising: transmitting to the virtual machine host, the
    머신을 가상 머신으로 변환하는 방법. How to convert the machine into a virtual machine.
  11. 적어도 하나의 프로세서에 의해 실행되는 경우, 머신을 가상 머신으로 변환하는 방법을 수행하는 컴퓨터 실행가능 명령어들을 인코딩하는 컴퓨터 판독가능 저장 매체로서, As at least one of which when executed by a processor, machine, the virtual machine computer program method for encoding computer executable instructions for performing the conversion to the storage medium,
    상기 방법은, The method comprising the steps of:
    머신의 하나 이상의 볼륨에 대한 하나 이상의 하드웨어 구성 설정을 식별하는 단계; Identifying one or more hardware configuration settings for one or more volumes of a machine;
    상기 머신의 상기 하나 이상의 볼륨에 대응하는 하나 이상의 일관된 스냅샷을 생성하는 단계; Generating the one or more consistent snapshots corresponding to the one or more volumes of a machine;
    상기 하나 이상의 일관된 스냅샷을 탑재된 가상 하드 디스크 파일로 전송하는 단계; Sending to a virtual hard disk file with the one or more consistent snapshots; And
    상기 하나 이상의 일관된 스냅샷에 대한 부팅 기록이 가상 머신 호스트에서 변경될 수 있게, 상기 하나 이상의 일관된 스냅샷에 대한 상기 부팅 기록을 상기 탑재된 가상 하드 디스크 파일로 전송하는 단계 This allows the boot record for the one or more consistent snapshots can be modified at the virtual machine host, the method comprising transmitting to the one or more consistent with the virtual hard disk file to the boot record of the snapshot
    를 포함하는, 컴퓨터 판독가능 저장 매체. The computer-readable storage media including.
  12. 제11항에 있어서, 12. The method of claim 11,
    상기 가상 머신 호스트는 하나 이상의 가상 머신의 호스트이도록 구성되는, The virtual machine host is configured such that the one or more virtual machine host,
    컴퓨터 판독가능 저장 매체. The computer-readable medium.
  13. 제11항에 있어서, 12. The method of claim 11,
    상기 스냅샷이 상기 가상 머신에서의 운영 체제에 사용될 수 있도록 상기 스냅샷은 상기 가상 머신 호스트에서 변경가능한, The snapshot is the snapshot available to be used for the operating system in the virtual machine changes from the virtual machine host,
    컴퓨터 판독가능 저장 매체. The computer-readable medium.
  14. 제11항에 있어서, 12. The method of claim 11,
    상기 머신의 상기 하나 이상의 볼륨에 대응하는 하나 이상의 일관된 스냅샷을 생성하는 단계는 상기 머신의 상기 하나 이상의 볼륨이 활성 상태에 있는 동안 상기 머신의 상기 하나 이상의 볼륨에 대응하는 하나 이상의 일관된 스냅샷을 생성하는 단계를 포함하는, Generating the one or more consistent snapshots corresponding to the one or more volumes of the machine generates the one or more consistent snapshots corresponding to the one or more volume of the machine for the one or more volumes of the machine in the active state , comprising:
    컴퓨터 판독가능 저장 매체. The computer-readable medium.
  15. 제11항에 있어서, 12. The method of claim 11,
    상기 머신의 상기 하나 이상의 볼륨은 동적 실제 디스크 상에 설치된 복수의 머신 볼륨들을 포함하는, The one or more volumes of the machine comprising a plurality of machine volumes installed on a dynamic physical disk,
    컴퓨터 판독가능 저장 매체. The computer-readable medium.
  16. 컴퓨터 시스템으로서, A computer system,
    하나 이상의 프로세서; One or more processors; And
    상기 하나 이상의 프로세서에 결합된 메모리를 포함하되, Comprising: a memory coupled to the one or more processors,
    상기 메모리는 상기 하나 이상의 프로세서에 의해 실행되는 경우 상기 하나 이상의 프로세서가 머신을 가상 머신으로 변환하는 방법을 수행하게 하는 명령어들을 저장하고, If the memory is executed by the at least one processor storing instructions that perform a method for the at least one processor converting the machine to a virtual machine, and
    상기 방법은, The method comprising the steps of:
    머신의 하나 이상의 볼륨에 대한 하나 이상의 하드웨어 구성 설정을 식별하는 단계; Identifying one or more hardware configuration settings for one or more volumes of a machine;
    상기 머신의 상기 하나 이상의 볼륨에 대응하는 하나 이상의 일관된 스냅샷을 생성하는 단계; Generating the one or more consistent snapshots corresponding to the one or more volumes of a machine;
    상기 하나 이상의 일관된 스냅샷을 탑재된 가상 하드 디스크 파일로 전송하는 단계; Sending to a virtual hard disk file with the one or more consistent snapshots; And
    상기 하나 이상의 일관된 스냅샷에 대한 부팅 기록이 가상 머신 호스트에서 변경될 수 있게, 상기 하나 이상의 일관된 스냅샷에 대한 상기 부팅 기록을 상기 탑재된 가상 하드 디스크 파일로 전송하는 단계 This allows the boot record for the one or more consistent snapshots can be modified at the virtual machine host, the method comprising transmitting to the one or more consistent with the virtual hard disk file to the boot record of the snapshot
    를 포함하는, 컴퓨터 시스템. The computer system that includes.
  17. 제16항에 있어서, 17. The method of claim 16,
    상기 가상 머신 호스트는 하나 이상의 가상 머신의 호스트이도록 구성되는, The virtual machine host is configured such that the one or more virtual machine host,
    컴퓨터 시스템. The computer system.
  18. 제16항에 있어서, 17. The method of claim 16,
    상기 스냅샷이 상기 가상 머신에서의 운영 체제에 사용될 수 있도록 상기 스냅샷은 상기 가상 머신 호스트에서 변경가능한, The snapshot is the snapshot available to be used for the operating system in the virtual machine changes from the virtual machine host,
    컴퓨터 시스템. The computer system.
  19. 제16항에 있어서, 17. The method of claim 16,
    상기 머신의 상기 하나 이상의 볼륨에 대응하는 하나 이상의 일관된 스냅샷을 생성하는 단계는 상기 머신의 상기 하나 이상의 볼륨이 활성 상태에 있는 동안 상기 머신의 상기 하나 이상의 볼륨에 대응하는 하나 이상의 일관된 스냅샷을 생성하는 단계를 포함하는, Generating the one or more consistent snapshots corresponding to the one or more volumes of the machine generates the one or more consistent snapshots corresponding to the one or more volume of the machine for the one or more volumes of the machine in the active state , comprising:
    컴퓨터 시스템. The computer system.
  20. 제16항에 있어서, 17. The method of claim 16,
    상기 머신의 상기 하나 이상의 볼륨은 동적 실제 디스크 상에 설치된 복수의 머신 볼륨들을 포함하는, The one or more volumes of the machine comprising a plurality of machine volumes installed on a dynamic physical disk,
    컴퓨터 시스템. The computer system.
KR1020137031209A 2006-05-08 2007-03-08 Converting machines to virtual machines KR101465928B1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US11/430,676 2006-05-08
US11/430,676 US7653794B2 (en) 2006-05-08 2006-05-08 Converting physical machines to virtual machines
PCT/US2007/006021 WO2007130209A1 (en) 2006-05-08 2007-03-08 Converting machines to virtual machines

Publications (2)

Publication Number Publication Date
KR20140000720A KR20140000720A (en) 2014-01-03
KR101465928B1 true KR101465928B1 (en) 2014-11-26

Family

ID=38662463

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020137031209A KR101465928B1 (en) 2006-05-08 2007-03-08 Converting machines to virtual machines
KR1020087027375A KR20090025204A (en) 2006-05-08 2007-03-08 Converting machines to virtual machines

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020087027375A KR20090025204A (en) 2006-05-08 2007-03-08 Converting machines to virtual machines

Country Status (18)

Country Link
US (1) US7653794B2 (en)
EP (1) EP2021939B1 (en)
JP (2) JP5026509B2 (en)
KR (2) KR101465928B1 (en)
CN (2) CN102541658B (en)
AU (1) AU2007248886B2 (en)
BR (1) BRPI0711336A2 (en)
CA (1) CA2648761C (en)
ES (1) ES2632512T3 (en)
HK (1) HK1172718A1 (en)
IL (2) IL194679A (en)
MX (1) MX2008014244A (en)
MY (1) MY149997A (en)
NO (1) NO342885B1 (en)
RU (2) RU2446450C2 (en)
TW (2) TWI428830B (en)
WO (1) WO2007130209A1 (en)
ZA (1) ZA200808579B (en)

Families Citing this family (112)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8577940B2 (en) * 2006-03-20 2013-11-05 Parallels IP Holdings GmbH Managing computer file system using file system trees
US7617501B2 (en) 2004-07-09 2009-11-10 Quest Software, Inc. Apparatus, system, and method for managing policies on a computer having a foreign operating system
US8347063B2 (en) * 2005-08-19 2013-01-01 Intel Corporation Method and system for device address translation for virtualization
US7904949B2 (en) 2005-12-19 2011-03-08 Quest Software, Inc. Apparatus, systems and methods to provide authentication services to a legacy application
US8087075B2 (en) 2006-02-13 2011-12-27 Quest Software, Inc. Disconnected credential validation using pre-fetched service tickets
US8321377B2 (en) 2006-04-17 2012-11-27 Microsoft Corporation Creating host-level application-consistent backups of virtual machines
US7617373B2 (en) * 2006-05-23 2009-11-10 International Business Machines Corporation Apparatus, system, and method for presenting a storage volume as a virtual volume
US8429712B2 (en) 2006-06-08 2013-04-23 Quest Software, Inc. Centralized user authentication system apparatus and method
US8086710B2 (en) 2006-10-30 2011-12-27 Quest Software, Inc. Identity migration apparatus and method
US7689859B2 (en) * 2006-12-20 2010-03-30 Symantec Operating Corporation Backup system and method
US8656386B1 (en) * 2007-03-13 2014-02-18 Parallels IP Holdings GmbH Method to share identical files in a common area for virtual machines having the same operating system version and using a copy on write to place a copy of the shared identical file in a private area of the corresponding virtual machine when a virtual machine attempts to modify the shared identical file
KR20080085780A (en) * 2007-03-20 2008-09-24 이상규 Method for virtualizing operating system
US20080235361A1 (en) * 2007-03-21 2008-09-25 David Crosbie Management layer method and apparatus for dynamic assignment of users to computer resources
US8239646B2 (en) 2007-07-31 2012-08-07 Vmware, Inc. Online virtual machine disk migration
US8245217B2 (en) 2007-10-12 2012-08-14 Microsoft Corporation Management of software and operating system updates required for the process of creating a virtual machine facsimile of an existing physical or virtual machine
US8407688B2 (en) * 2007-11-27 2013-03-26 Managelq, Inc. Methods and apparatus for storing and transmitting historical configuration data associated with information technology assets
US7865711B2 (en) * 2007-12-03 2011-01-04 Microsoft Corporation Efficient method for operating system deployment
US8181174B2 (en) * 2007-12-28 2012-05-15 Accenture Global Services Limited Virtual machine configuration system
US20090217296A1 (en) * 2008-02-26 2009-08-27 Alexander Gebhart Benefit analysis of implementing virtual machines
US8560593B2 (en) * 2008-03-27 2013-10-15 Dell Software Inc. System for provisioning, allocating, and managing virtual and physical desktop computers in a network computing environment
US8365167B2 (en) * 2008-04-15 2013-01-29 International Business Machines Corporation Provisioning storage-optimized virtual machines within a virtual desktop environment
US8364983B2 (en) * 2008-05-08 2013-01-29 Microsoft Corporation Corralling virtual machines with encryption keys
US8266099B2 (en) * 2008-05-29 2012-09-11 Vmware, Inc. Offloading storage operations to storage hardware using a third party server
US8566502B2 (en) * 2008-05-29 2013-10-22 Vmware, Inc. Offloading storage operations to storage hardware using a switch
US8745336B2 (en) * 2008-05-29 2014-06-03 Vmware, Inc. Offloading storage operations to storage hardware
US20090328030A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Installing a management agent with a virtual machine
US20100042719A1 (en) * 2008-08-12 2010-02-18 Junji Kinoshita Content access to virtual machine resource
US8150801B2 (en) * 2008-08-20 2012-04-03 Microsoft Corporation Recovery of a computer that includes virtual disks
US8572608B2 (en) * 2008-10-22 2013-10-29 Vmware, Inc. Methods and systems for converting a related group of physical machines to virtual machines
CN101408856A (en) * 2008-11-21 2009-04-15 清华大学 System and method for tolerance disaster backup(disaster-tolerant backup)
US9454368B2 (en) * 2009-01-21 2016-09-27 Vmware, Inc. Data mover permitting data transfer without transferring data between application and operating system
JP5166307B2 (en) * 2009-01-30 2013-03-21 株式会社立花エレテック Connected devices use a system and method
US9134922B2 (en) 2009-03-12 2015-09-15 Vmware, Inc. System and method for allocating datastores for virtual machines
US8255984B1 (en) 2009-07-01 2012-08-28 Quest Software, Inc. Single sign-on system for shared resource environments
US20110010710A1 (en) * 2009-07-10 2011-01-13 Microsoft Corporation Image Transfer Between Processing Devices
US9778946B2 (en) * 2009-08-07 2017-10-03 Dell Software Inc. Optimized copy of virtual machine storage files
US9043454B2 (en) * 2009-08-26 2015-05-26 Red Hat Israel, Ltd. Auto suspense of virtual machine on client disconnection
US8589913B2 (en) * 2009-10-14 2013-11-19 Vmware, Inc. Tracking block-level writes
US8161077B2 (en) 2009-10-21 2012-04-17 Delphix Corp. Datacenter workflow automation scenarios using virtual databases
US8150808B2 (en) 2009-10-21 2012-04-03 Delphix Corp. Virtual database system
US8856080B2 (en) * 2009-10-30 2014-10-07 Microsoft Corporation Backup using metadata virtual hard drive and differential virtual hard drive
US9106591B2 (en) * 2009-12-24 2015-08-11 Delphix Corporation Adaptive resource management using survival minimum resources for low priority consumers
US9262306B2 (en) * 2010-01-27 2016-02-16 Hewlett Packard Enterprise Development Lp Software application testing
US8751738B2 (en) 2010-02-08 2014-06-10 Microsoft Corporation Background migration of virtual storage
US8751780B2 (en) 2010-02-08 2014-06-10 Microsoft Corporation Fast machine booting through streaming storage
US8204860B1 (en) * 2010-02-09 2012-06-19 F5 Networks, Inc. Methods and systems for snapshot reconstitution
JP5636695B2 (en) * 2010-03-02 2014-12-10 日本電気株式会社 Fault-tolerant system and virtual machine construction method
KR20110106716A (en) 2010-03-23 2011-09-29 삼성전자주식회사 Program compiler, program installer, and program install method
US8775781B2 (en) * 2010-03-25 2014-07-08 Microsoft Corporation Intelligent boot device selection and recovery
CN102214126A (en) * 2010-04-02 2011-10-12 英业达股份有限公司 Method for establishing object of provider of volume shadow copy service
US8996667B2 (en) 2010-04-27 2015-03-31 International Business Machines Corporation Deploying an operating system
US9569446B1 (en) 2010-06-08 2017-02-14 Dell Software Inc. Cataloging system for image-based backup
US8548944B2 (en) 2010-07-15 2013-10-01 Delphix Corp. De-duplication based backup of file systems
US20120054742A1 (en) * 2010-09-01 2012-03-01 Microsoft Corporation State Separation Of User Data From Operating System In A Pooled VM Environment
US8490088B2 (en) * 2010-09-10 2013-07-16 International Business Machines Corporation On demand virtual machine image streaming
US8694745B2 (en) 2010-09-15 2014-04-08 Symantec Corporation Physical to virtual disks creation (P2V) method, by harvesting data from critical sectors
JP2012068790A (en) 2010-09-22 2012-04-05 Internatl Business Mach Corp <Ibm> Selection apparatus for image of os, selection method, and selection program
JP5492731B2 (en) 2010-10-06 2014-05-14 株式会社日立製作所 Computer system using the volume allocation method and a method of the virtual machine
US9069620B2 (en) 2010-10-20 2015-06-30 Microsoft Technology Licensing, Llc Creating and deploying service-ready virtual hard disks
US9092149B2 (en) 2010-11-03 2015-07-28 Microsoft Technology Licensing, Llc Virtualization and offload reads and writes
WO2012063311A1 (en) * 2010-11-08 2012-05-18 株式会社日立製作所 Control method for calculator, calculator system, and storage medium
CN103221921B (en) 2010-11-23 2016-06-22 国际商业机器公司 Direct use of streaming technology migration software image
US8468174B1 (en) 2010-11-30 2013-06-18 Jedidiah Yueh Interfacing with a virtual database system
US8495352B2 (en) 2010-12-08 2013-07-23 International Business Machines Corporation System and method for instantiation of distributed applications from disk snapshots
CN103250163B (en) 2010-12-09 2016-08-10 国际商业机器公司 The computer-readable storage medium for encryption and decryption of virtual disk
GB2499964B (en) 2010-12-13 2013-12-11 Ibm Upgrade of software images based on streaming technique
JP5767565B2 (en) 2010-12-14 2015-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Managing software images, computer programs, and systems (management of multiple software image using a shared memory block)
JP5672075B2 (en) * 2011-03-03 2015-02-18 日本電気株式会社 Computer systems, the virtual environment migration method and the virtual environment migration program
US9146765B2 (en) 2011-03-11 2015-09-29 Microsoft Technology Licensing, Llc Virtual disk storage techniques
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
US9069467B2 (en) * 2011-06-01 2015-06-30 Microsoft Technology Licensing, Llc Isolation of virtual machine I/O in multi-disk hosts
US20130007726A1 (en) * 2011-06-30 2013-01-03 Indrajit Poddar Virtual machine disk image installation
KR101493827B1 (en) * 2011-07-04 2015-02-17 주식회사 케이티 Apparatus of migrating from physical server to virtual server and method thereof
DE102011107169A1 (en) * 2011-07-13 2013-01-17 Kuka Roboter Gmbh Controlling a robot
US9158561B2 (en) * 2011-08-18 2015-10-13 Vmware, Inc. Systems and methods for modifying an operating system for a virtual machine
US8595460B2 (en) 2011-08-26 2013-11-26 Vmware, Inc. Configuring object storage system for input/output operations
CN102323943A (en) * 2011-09-02 2012-01-18 北京天地云箱科技有限公司 Virtual-machine-based data storage method and system
US20130066838A1 (en) * 2011-09-12 2013-03-14 Microsoft Corporation Efficient data recovery
EP2570920A1 (en) * 2011-09-16 2013-03-20 France Télécom System and method for cross-platform application execution and display
US9009318B2 (en) * 2011-11-03 2015-04-14 Microsoft Corporation Offline resource allocation algorithms
US9767274B2 (en) * 2011-11-22 2017-09-19 Bromium, Inc. Approaches for efficient physical to virtual disk conversion
US9817582B2 (en) 2012-01-09 2017-11-14 Microsoft Technology Licensing, Llc Offload read and write offload provider
JP5684170B2 (en) * 2012-02-28 2015-03-11 株式会社東芝 The information processing apparatus, a client management system and client management method
US9055067B1 (en) * 2012-03-26 2015-06-09 Amazon Technologies, Inc. Flexible-location reservations and pricing for network-accessible resource capacity
TWI456944B (en) * 2012-05-02 2014-10-11 Quanta Comp Inc Management method and system using the same
US9740500B2 (en) 2012-08-30 2017-08-22 Microsoft Technology Licensing, Llc Layout system for operating systems using BPRAM
US9952879B2 (en) 2012-08-30 2018-04-24 Microsoft Technology Licensing, Llc Application pre-layout in byte-addressable persistent random access memory
US9778860B2 (en) 2012-09-12 2017-10-03 Microsoft Technology Licensing, Llc Re-TRIM of free space within VHDX
US8788461B2 (en) 2012-10-04 2014-07-22 Delphix Corp. Creating validated database snapshots for provisioning virtual databases
US9071585B2 (en) 2012-12-12 2015-06-30 Microsoft Technology Licensing, Llc Copy offload for disparate offload providers
US9251201B2 (en) 2012-12-14 2016-02-02 Microsoft Technology Licensing, Llc Compatibly extending offload token size
US10025674B2 (en) * 2013-06-07 2018-07-17 Microsoft Technology Licensing, Llc Framework for running untrusted code
US9383986B2 (en) 2013-06-18 2016-07-05 Disney Enterprises, Inc. Safe low cost web services software deployments
US9841983B2 (en) * 2013-06-28 2017-12-12 Vmware, Inc. Single click host maintenance
US9262448B2 (en) * 2013-08-12 2016-02-16 International Business Machines Corporation Data backup across physical and virtualized storage volumes
US9639384B2 (en) * 2013-08-20 2017-05-02 Vmware, Inc. Method and system for fast provisioning of virtual desktop
US9858154B1 (en) * 2013-08-23 2018-01-02 Acronis International Gmbh Agentless file backup of a virtual machine
US9594583B2 (en) 2013-11-12 2017-03-14 Red Hat, Inc. Lightweight snapshots for virtual disks
EP2955637B1 (en) * 2013-11-20 2017-08-16 Huawei Technologies Co., Ltd. Method, system and apparatus for generating snapshot
CN104809020B (en) * 2013-11-20 2018-05-11 华为技术有限公司 A method of generating a snapshot, the system and apparatus
CN103761168B (en) * 2014-01-26 2017-06-13 上海爱数信息技术股份有限公司 Nfs mount a backup volume based on the virtual machine approach
US20150269029A1 (en) * 2014-03-20 2015-09-24 Unitrends, Inc. Immediate Recovery of an Application from File Based Backups
US9448834B2 (en) 2014-06-27 2016-09-20 Unitrends, Inc. Automated testing of physical servers using a virtual machine
US9454439B2 (en) 2014-05-28 2016-09-27 Unitrends, Inc. Disaster recovery validation
CN104298559B (en) * 2014-09-30 2018-03-02 深信服科技股份有限公司 Physical host system virtualization method and apparatus
TWI608420B (en) 2014-10-20 2017-12-11 Wistron Corp Virtual machine monitoring method and system thereof
CN104331375B (en) * 2014-10-29 2018-08-07 中国建设银行股份有限公司 Share Share virtual resource management method and apparatus in a virtualized resource pool environment
US9798567B2 (en) 2014-11-25 2017-10-24 The Research Foundation For The State University Of New York Multi-hypervisor virtual machines
US20160162302A1 (en) * 2014-12-07 2016-06-09 Strato Scale Ltd. Fast initiation of workloads using memory-resident post-boot snapshots
CN105573791A (en) * 2015-12-15 2016-05-11 国云科技股份有限公司 Method for realizing network card hot plug by linux virtual machine
US10133593B1 (en) * 2016-03-31 2018-11-20 Amazon Technologies, Inc. Virtual machine migration

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356679B1 (en) 2003-04-11 2008-04-08 Vmware, Inc. Computer image capture, customization and deployment
US7448034B2 (en) 2003-07-30 2008-11-04 International Business Machines Corporation Build time determination and installation of drivers on cloned systems

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4475156A (en) * 1982-09-21 1984-10-02 Xerox Corporation Virtual machine control
US4975836A (en) * 1984-12-19 1990-12-04 Hitachi, Ltd. Virtual computer system
US4835685A (en) * 1985-05-06 1989-05-30 Computer X, Inc. Virtual single machine with message-like hardware interrupts and processor exceptions
US4787026A (en) * 1986-01-17 1988-11-22 International Business Machines Corporation Method to manage coprocessor in a virtual memory virtual machine data processing system
US5692193A (en) * 1994-03-31 1997-11-25 Nec Research Institute, Inc. Software architecture for control of highly parallel computer systems
US5996026A (en) * 1995-09-05 1999-11-30 Hitachi, Ltd. Method and apparatus for connecting i/o channels between sub-channels and devices through virtual machines controlled by a hypervisor using ID and configuration information
US6445704B1 (en) * 1997-05-02 2002-09-03 Cisco Technology, Inc. Method and apparatus for virtualizing a locally initiated outbound connection from a connection manager
US6052781A (en) 1997-02-21 2000-04-18 Savvy Frontiers Property Trust Multiple user computer including anti-concurrent user-class based disjunctive separation of plural hard drive operation
US6256637B1 (en) * 1998-05-05 2001-07-03 Gemstone Systems, Inc. Transactional virtual machine architecture
US6397242B1 (en) 1998-05-15 2002-05-28 Vmware, Inc. Virtualization system including a virtual machine monitor for a computer with a segmented architecture
US6496847B1 (en) 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
DK1297446T3 (en) 2000-07-05 2006-01-30 Ernst & Young Llp A method and apparatus for providing computer services
DE60125393T2 (en) * 2000-08-25 2007-09-27 Shikoku Electric Power Co., Inc., Takamatsu Remote control server, central server and existing it system
US6789156B1 (en) 2001-05-22 2004-09-07 Vmware, Inc. Content-based, transparent sharing of memory units
US6880002B2 (en) * 2001-09-05 2005-04-12 Surgient, Inc. Virtualized logical server cloud providing non-deterministic allocation of logical attributes of logical servers to physical resources
US7213065B2 (en) 2001-11-08 2007-05-01 Racemi, Inc. System and method for dynamic server allocation and provisioning
US6938250B2 (en) * 2002-06-12 2005-08-30 Microsoft Corporation Image-based software installation
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
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
US7257811B2 (en) 2004-05-11 2007-08-14 International Business Machines Corporation System, method and program to migrate a virtual machine
US7577959B2 (en) * 2004-06-24 2009-08-18 International Business Machines Corporation Providing on-demand capabilities using virtual machines and clustering processes
CA2486103A1 (en) * 2004-10-26 2006-04-26 Platespin Ltd. System and method for autonomic optimization of physical and virtual resource use in a data center
US7441092B2 (en) * 2006-04-20 2008-10-21 Microsoft Corporation Multi-client cluster-based backup and restore

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7356679B1 (en) 2003-04-11 2008-04-08 Vmware, Inc. Computer image capture, customization and deployment
US7448034B2 (en) 2003-07-30 2008-11-04 International Business Machines Corporation Build time determination and installation of drivers on cloned systems

Also Published As

Publication number Publication date
TWI547875B (en) 2016-09-01
CN101443748A (en) 2009-05-27
MX2008014244A (en) 2008-11-18
JP2012155768A (en) 2012-08-16
ES2632512T3 (en) 2017-09-13
CN101443748B (en) 2012-02-08
KR20090025204A (en) 2009-03-10
EP2021939B1 (en) 2017-04-19
TW201415371A (en) 2014-04-16
TW200813839A (en) 2008-03-16
JP5026509B2 (en) 2012-09-12
IL194679A (en) 2014-08-31
RU2011147372A (en) 2013-05-27
IL223026A (en) 2014-12-31
NO342885B1 (en) 2018-08-20
KR20140000720A (en) 2014-01-03
MY149997A (en) 2013-11-15
AU2007248886B2 (en) 2011-11-03
RU2446450C2 (en) 2012-03-27
WO2007130209A1 (en) 2007-11-15
RU2008144202A (en) 2010-05-20
CN102541658B (en) 2014-09-24
NO20084228L (en) 2008-10-22
IL223026D0 (en) 2012-12-31
JP2009536762A (en) 2009-10-15
ZA200808579B (en) 2011-11-30
HK1172718A1 (en) 2015-03-27
CA2648761C (en) 2015-06-02
EP2021939A4 (en) 2010-11-24
US20070260831A1 (en) 2007-11-08
US7653794B2 (en) 2010-01-26
CN102541658A (en) 2012-07-04
CA2648761A1 (en) 2007-11-15
AU2007248886A1 (en) 2007-11-15
EP2021939A1 (en) 2009-02-11
BRPI0711336A2 (en) 2011-08-30
JP5496254B2 (en) 2014-05-21
TWI428830B (en) 2014-03-01

Similar Documents

Publication Publication Date Title
CA2356387C (en) Pre-defined hardware and software bundle ready for database applications
US8327350B2 (en) Virtual resource templates
JP5459811B2 (en) Method and system for virtual storage migration, and virtual machine monitor
US8230095B2 (en) System and method for integrated on-demand delivery of operating system and applications
US8527466B2 (en) Handling temporary files of a virtual machine
CN102057355B (en) Synchronizing virtual machine and application life cycles
US8904387B2 (en) Storage manager for virtual machines with virtual storage
US7865663B1 (en) SCSI protocol emulation for virtual storage device stored on NAS device
US8793684B2 (en) Optimized deployment and replication of virtual machines
JP4860034B2 (en) File access request processing method
US8577845B2 (en) Remote, granular restore from full virtual machine backup
US9058123B2 (en) Systems, methods, and interfaces for adaptive persistence
US8490088B2 (en) On demand virtual machine image streaming
US8656018B1 (en) System and method for automated allocation of hosting resources controlled by different hypervisors
KR101432463B1 (en) Creating host-level application-consistent backups of virtual machines
US8776089B2 (en) File system independent content aware cache
US9411517B2 (en) System software interfaces for space-optimized block devices
JP4942966B2 (en) The partition bus
US20070006021A1 (en) Reliability of diskless network-bootable computers using non-volatile memory cache
US8429651B2 (en) Enablement and acceleration of live and near-live migration of virtual machines and their associated storage across networks
US8370819B2 (en) Mechanism to store information describing a virtual machine in a virtual disk image
JP4438457B2 (en) Storage area allocation method, the system and the virtualization device
US20110047340A1 (en) Proxy Backup of Virtual Disk Image Files on NAS Devices
US8402069B2 (en) Use of delete notifications by file systems and applications to release storage space
CN100410882C (en) System and method for centralized software management in virtual machines

Legal Events

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181018

Year of fee payment: 5