KR20110035949A - 가상 머신 이미지를 실행하기 위한 방법과 시스템 - Google Patents

가상 머신 이미지를 실행하기 위한 방법과 시스템 Download PDF

Info

Publication number
KR20110035949A
KR20110035949A KR1020100094081A KR20100094081A KR20110035949A KR 20110035949 A KR20110035949 A KR 20110035949A KR 1020100094081 A KR1020100094081 A KR 1020100094081A KR 20100094081 A KR20100094081 A KR 20100094081A KR 20110035949 A KR20110035949 A KR 20110035949A
Authority
KR
South Korea
Prior art keywords
file
virtual machine
image
machine image
host
Prior art date
Application number
KR1020100094081A
Other languages
English (en)
Inventor
지 양
›X오 종
잉 리
지에 치오
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20110035949A publication Critical patent/KR20110035949A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

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

Abstract

본 발명은 호스트에서 가상 머신 이미지를 실행하기 위한 방법 및 시스템을 제공한다. 상기 방법은 : 가상 머신 이미지 공급 요청(provisioning request)을 수신하는 단계(receiving); 상기 가상 머신 이미지 공급 요청에 관련된 가상 머신 이미지의 복사에 관한 요청(request of copying )을 스토리지 서버로 송신하는 단계(sending); 적어도 운영 체제 커널(operation system kernel), 파티션(partition)정보 및 파일 인덱스(index)정보를 포함하는, 가상 머신 이미지의 일부분(a portion)을 수신하는 단계 ; 상기 가상 머신 이미지의 상기 수신된 일부분을 실행함에 의해서 호스트에서 가상 머신을 시작하는 단계(starting); 상기 가상 머신에서 실행 중인 프로그램의 파일 오퍼레이션 요청(file operation request)을 가로채기 하는 단계(intercepting); 상기 파일 오퍼레이션 요청에 관련된 파일의 복사에 관한 요청을 상기 스토리지 서버에 송신하는 단계(sending); 및 상기 파일 오퍼레이션 요청에 관련된 파일을 획득하는 단계(acquiring); 를 포함한다.
본 발명에서는, 초기에 가상 머신 이미지의 아주 적은 일부분만 전송되면 되기 때문에, 네트워크 대역폭의 점유(occupation)가 크게 줄어든다. 한편, 본 발명에서는, 파일의 복사가 응용 프로그램에 의해서 실행되기 때문에 오직 필요한 파일만 스토리지 서버로부터 복사되고, 이 때문에, 네트워크 대역폭의 점유는 크게 줄어든다.

Description

가상 머신 이미지를 실행하기 위한 방법과 시스템{METHOD AND SYSTEM FOR RUNNING VIRTUAL MACHINE IMAGE}
본 발명은 클라우드 컴퓨팅(cloud computing)에 관한 것이다. 특히, 본 발명은 클라우드 컴퓨팅에서 가상 머신 이미지를 실행하기 위한 방법 및 시스템에 관한 것이다.
클라우드 컴퓨팅은, 강력한 컴퓨팅 능력(powerful computing capabilities)에 의존하기 때문에, 수천명의 최종 사용자들이 낡은(used)컴퓨팅 기술, 접근 방법 등등에 관하여 걱정하지 않고 네트워크을 통해서 서로 접속된 IT의 컴퓨팅 능력을 효과적으로 이용할 수 있게 한다. 클라우드 컴퓨팅에서, IT의 컴퓨팅 능력은 서비스로서 제공된다. 가상화 기술(virtualization technology)은 클라우드 컴퓨팅에서 널리 사용되는 기술이다. 기존의 클라우드 컴퓨팅 아키텍쳐에서는, 가상 머신(virtual machine)이 사용자들에 대하여 서비스를 제공하기 위해 일반적으로 사용된다. 클라우드 컴퓨팅 환경에서 가상 머신을 실행하려면, 가상 머신 이미지 파일(virtual machine image file)을 실행하는 것이 필요하며, 가상 머신 이미지 파일은 보통 운영 체제(operating system), 설치된 응용프로그램(installed application program), 및 이용 가능한 디스크 공간(available disk space)를 포함한다. 일반적으로 작은(smaller)가상 머신 이미지 파일이라 하더라도 4 - 5GB의 크기이다. 대규모의(larger)가상 머신 이미지 파일인 경우 그 크기는 수백 GB가 될 수 있는데, 예를 들어, TPM의 이미지 파일은 대략 100GB의 크기를 갖는다.
종래 기술에서, 가상 머신을 실행하기 위해서는, 전체 가상 머신의 이미지 파일(운영 체제, 설치된 응용 프로그램 및 이용 가능한 디스크 공간)이 스토리지 서버(a storage server)로부터 호스트로 복사되는 것이 일반적으로 필요하다. 그 다음에 가상 머신 이미지 파일로부터 가상 머신의 실행이 시작된다. 가상 머신의 실행이 시작되면, 응용 프로그램이 가상 머신에서 실행될 수 있다. 만일 가상 머신 이미지 파일에서 데이터가 실행 동안 변경되면, 변경된 가상 머신 이미지 파일은 가상 머신 실행이 종료된 후 스토리지 서버에 다시 세이브(save)되어야 할 필요가 있다.
일반적으로, 서버 클러스터(a server cluster)는 다수의 호스트들을 실행 시키며(즉, 클라우드에서 서버들을 실행 시키며), 각각의 호스트는 다수의 가상 머신들을 실행 시킨다. 전술한 바와 같이, 가상 머신을 실행 시키기 위해서는, 전체 가상 머신의 이미지 파일이 스토리지 서버로부터 호스트에 복사될 필요가 있다. 상대적으로 적은 가상 머신 이미지 파일도 크기가 일반적으로 4-5GB이므로, 가상 머신 이미지 파일을 복사한다는 것은 상당한 양의 네트워크 대역폭(a great amount of network bandwidth)을 소비하게 될 것이다. 한편, 전체 변경된 가상 머신 이미지 파일도 가상 머신 실행이 종료된 후에는 스토리지 서버에 다시 세이브되는 것이 또한 필요한데, 이 세이브를 위한 저장의 절차도 또한 상당한 양의 네트워크 대역폭을 소비하게 될 것이다.
따라서, 종래 기술의 클라우딩 컨퓨팅에서 가상 머신 이미지를 실행하기 위한 개선된 방법과 시스템의 필요가 존재한다.
본 발명의 한가지 목적은 호스트에서 가상 머신 이미지를 실행하기 위한 방법을 제공하는 것으로서, 상기 방법은: 가상 머신 이미지 공급 요청(provisioning request)을 수신하는 단계; 상기 가상 머신 이미지 공급 요청에 관련된 가상 머신 이미지를 복사하는 것에 관한 요청(request of copying )을 스토리지 서버로 송신하는 단계; 적어도 운영 체제 커널(kernel), 파티션(partition)정보 및 파일 인덱스 정보를 포함하는, 가상 머신 이미지의 일부분(a portion)을 수신하는 단계 ; 상기 가상 머신 이미지의 상기 수신된 일부분을 실행함에 의해서 호스트에서 가상 머신을 시작하는 단계(starting); 상기 가상 머신에서 실행 중인 프로그램의 파일 오퍼레이션 요청(file operation request)을 가로채기 하는 단계(intercepting); 상기 파일 오퍼레이션 요청에 관련된 파일을 복사하는 것에 관한 요청을 상기 스토리지 서버에 송신하는 단계(sending); 및 상기 파일 오퍼레이션 요청에 관련된 파일을 수신하는 단계(receiving); 를 포함하는 방법이다.
본 발명의 다른 목적은, 호스트에서 가상 머신 이미지를 구동하기 위한 방법을 제공하는 것으로서, 상기 방법은: 가상 머신 이미지 공급 요청에 관련된 가상 머신 이미지를 복사하는 것에 관하여 상기호스트에 의해 송신된 요청(request sent by the host of copying )을 수신하는 단계 ; 적어도 운영 체제 커널(kernel), 파티션(partition)정보 및 파일 인덱스 정보를 포함하는, 가상 머신 이미지의 일부분을 상기 호스트에 송신하는 단계 ; 파일 오퍼레이션 요청에 관련된 파일을 복사하는 것에 관하여 상기 호스트에 의해 송신된 요청을 수신하는 단계 ; 및 상기 파일 오퍼레이션 요청에 관련된 파일을 상기 호스트에 송신하는 단계 ;를 포함하는 방법이다.
본 발명의 또 다른 목적은, 호스트에서 가상 머신 이미지를 실행하기 위한 시스템을 제공하는 것으로서, 상기 시스템은: 가상 머신 이미지 공급 요청을 수신하고 ; 상기 가상 머신 이미지 공급 요청에 관련된 가상 머신 이미지를 복사하기 위해 스토리지 서버로 요청하며 ; 적어도 운영 체제 커널, 파티션 정보 및 파일 인덱스 정보를 포함하는, 가상 머신 이미지의 일부분을 수신하고 ; 그리고 상기 가상 머신 이미지의 상기 수신된 일부분을 실행함에 의해서 가상 머신을 시작하는 이미지 로더(an image loader)와 : 상기 가상 머신에서 실행 중인 프로그램의 파일 오퍼레이션 요청을 가로채기 하고 ; 상기 파일 오퍼레이션 요청에 관련된 파일을 복사하기 위해 상기 스토리지 서버로 요청하며 ; 그리고 상기 파일 오퍼레이션 요청에 관련된 상기 파일을 수신하는 ; 어플리케이션 로더(an application loader): 를 포함하는 시스템이다.
본 발명의 또 다른 목적은, 호스트에서 가상 머신 이미지를 실행하기 위한 시스템을 제공하는 것으로서, 상기 시스템은: 가상 머신 이미지 공급 요청에 관련된 가상 머신 이미지를 복사하는 것에 관하여 상기 호스트에 의해서 송신된 요청을 수신하고 ; 적어도 운영 체제 커널, 파티션 정보 및 파일 인덱스 정보를 포함하는, 가상 머신 이미지의 일부분을 상기 호스트에 송신하며 ; 파일 오퍼레이션 요청에 관련된 파일을 복사하는 것에 관하여 상기 호스트에 의해서 송신된 요청을 수신하고 ; 그리고 상기 파일 오퍼레이션 요청에 관련된 상기 파일을 상기 호스트에 송신하는 ; 이미지 비지터(an image visitor): 를 포함하는 시스템이다.
본 발명에서는, 초기에 가상 머신 이미지의 아주 적은 일부분만 전송되면 되기 때문에, 네트워크 대역폭의 점유(occupation)가 크게 줄어든다. 한편, 본 발명에서는, 파일의 복사가 응용 프로그램에 의해서 실행되기 때문에 오직 필요한 파일만 스토리지 서버로부터 복사되고, 이 때문에, 네트워크 대역폭의 점유는 크게 줄어든다.
본 발명은 아래의 도면들을 참조하는 상세한 설명의 의해 보다 잘 이해될 것이다. 도면들에서, 동일 혹은 비슷한 참조번호는 도면들을 통해서 동일하거나 혹은 비슷한 구성을 나타낸다. 도면들은 아래의 상세한 설명에 포함되어 그 일부분을 구성하며, 본 발명의 바람직한 실시 예들을 도시하고 본 발명의 원리와 장점을 설명하기 위해서 사용된다.
도 1은 본 발명의 실시 예에 따라 호스트에서 가상 머신 이미지를 실행하기 위한 시스템(100)을 도시한다.
도 2는 본 발명의 실시 예에 따라 호스트에서 가상 머신 이미지를 실행하기 위한 방법의 플로 다이어그램(200)을 도시한다.
도 3은 본 발명의 실시 예에 따라 호스트에서 가상 머신 이미지를 실행하기 위한 방법의 플로 다이어그램(300)을 도시한다.
본 발명의 예시적 실시 예들을 첨부된 도면들을 참조하여 아래에서 설명한다. 명확성과 간결함을 위해서, 본 발명의 실제적 구현의 모든 특징들이 이 명세서에 설명되지는 않는다. 그러나, 그러한 모든 실제 구현의 개발 과정에서, 개발자의 특정 목표들(specific goals), 예를 들면, 시스템 관련 제한 조건들 및 비즈니스 관련 제한 조건들을 준수해야 한다는 것과 같은 특정 목표들을 달성하기 위해서, 수많은 구현 특정 결정들(implementation-specific decisions)이 내려졌다. 또한 그러한 개발 과정에서의 노력이 복잡하고 시간 소모적인 것일 수 있다고 하더라도 본 발명으로 혜택을 보는 당업자들에게는 일상적인 일임도 이해해야 할 것이다.
여기서, 불필요한 상세함에 의해서 본 발명을 불명확하게 하는 일을 피하기 위해서, 오직 본 발명의 해결책과 밀접하게 연관된 수단 구조들 및/또는 프로세스 단계들만 도면들에 표시하고, 또한 별로 관련이 없는 다른 상세 설명들은 생략됨도 주목해야 한다.
근무 중에, 본 발명의 발명자는 가상 머신 이미지에서 응용프로그램을 실행함에 있어서 파일의 일부분만 필요하다는 사실을 여러 번 발견했다. 예를 들면, 종래 방식에 따라서, 아파치(Apache)를 실행하는 동안 파일 중에서 대략 100MB 정도만 필요했다. 그러나, 아파치를 실행하기 위해서, 대략 4-5GB인 전체 가상 머신 이미지가 네트워크를 통해서 호스트로 복사되어야만 하고, 이 때문에 대단히 큰 양의 네트워크 대역폭이 낭비된다. 본 발명의 방법을 사용하면, 아파치를 실행하기 위해 필요한 파일의 100MB정도 만이 네트워크를 통해 복사되므로, 이 때문에 네트워크 대역폭의 소모를 대폭 줄인다. 본 발명의 발명자는 이에 기초하여 본 발명을 고안하였다.
지금 도 1을 참조하면, 도 1은 본 발명에 따라 호스트에서 가상 머신 이미지를 실행하기 위한 시스템(100)을 보여주고 있다. 본 발명의 한 실시 예에서, 가상 머신 이미지를 실행하기 위한 시스템(100)은 이미지 비지터(102), 이미지 로더(104), 어플리케이션 로더(106)와 이미지 동기장치(synchronizer)(108)을 포함한다. 다른 실시 예에서, 가상 머신 이미지를 실행하기 위한 시스템(100)은 두 개의 서브시스템들을 포함하는데, 여기서 스토리지 서버에 위치하는 이미지 비지터(102)는 서버 서브시스템을 구성하고, 호스트 및 호스트에서 실행 중인 가상 머신에 위치한 이미지 로더(104), 어플리케이션 로더(106)및 이미지 동기장치(108)은 호스트 서브시스템을 구성한다.
서버 서브시스템을 구성하는 이미지 비지터(102)는 스토리지 서버에 위치하며, 이미지 변환기(an image converter), 이미지 인덱서(an image indexer)및 이미지 파일 비지터(an image file visitor)를 포함한다. 여기에서, 상기 이미지 변환기는 본래의(original)가상 머신 이미지를 가상 머신 이미지의 일부분으로 변환하는데 사용된다. 상기 가상 머신 이미지의 일부분은 적어도 운영 체제의 커널, 파티션 정보 및 파일 인덱스 정보를 포함한다. 상기 이미지 인덱서는 가상 머신 이미지에서 파일을 찾기 위해 사용되는 파일 인덱스 정보를 생성하기 위해 사용된다. 상기 이미지 변환기는 상기 가상 머신 이미지를 분석하여 운영 체제 커널 및 파티션 정보를 먼저 획득하고. 그 다음 상기 이미지 인덱서에 의해서 생성된 파일 인덱스 정보와 함께 (in conjunction with)가상 머신 이미지의 일부분을 생성한다. 운영 체제 커널 및 파티션 정보의 획득, 파일 인덱스 정보 생성 및 가상 머신 이미지의 일부분의 생성에 관한 상기 프로세스들은 이 분야에서 어떤 수단에 의해서도 구현될 수 있으므로 설명을 간단히 하기 위해서 더 이상 설명하지는 않을 것이다. 이미지 변환기 및 이미지 인덱서에 관한 전술한 프로세스들은 오프라인(offline)에서도 구현될 수 있고, 또한 동적으로(dynamically)구현될 수도 있다. 오히려, 상기 가상 머신 이미지의 일부분은 오프라인에서 미리 준비되는 것이 바람직하다. 상기 이미지 변환기는 또한 어플리케이션 로딩 코드를 가상 머신 이미지의 상기 일부분에 임베드(embed)하여, 상기 호스트에서 실행 중인 가상 머신에 위치하는 어플리케이션 로더(106)과 통신할 수 있다.
상기 이미지 파일 비지터는 호스트에서 실행 중인 가상 머신에 위치하는 어플리케이션 로더(106)로부터 발행된 파일 읽기 요청(a file reading request)을 수신하여, 가상 머신 이미지에서 파일을 읽고, 어플리케이션 로더(106)에 응답으로서 그것을 되돌려 주기(return)위해 사용된다. 상기 이미지 파일 비지터는 또한 호스트에 위치하는 이미지 동기장치 (108)에 의해서 송신된 업데이트 파일(update file)을 수신하여 스토리지 서버에서 가상 머신 이미지를 업데이트 하기 위해 사용된다.
상기 호스트 서브시스템을 구성하는 이미지 로더(104), 어플리케이션 로더(106)이미지 동기장치(108)은 아래에 설명될 것이다. 호스트에 위치하는 이미지 로더(104)는 상기 이미지 변환기에 의해 생성된 가상 머신 이미지의 일부분을 로드(load)(즉, 스토리지 서버로부터 복사)하기 위해 사용된다. 가상 머신 이미지의 상기 일부분이 로드된 후, 이미지 로더(104)는 가상 머신 이미지의 상기 일부분에서의 파티션 정보 및 파일 인덱스 정보에 기초하여 가상 머신 이미지의 상기 일부분을 실행한다(instantiates). 그리고 상기 실행(instantiating)프로세스는 하이퍼바이저(hypervisor)에 의해 수행되는 것과 비슷하므로 간결을 위해 설명을 생략한다. 호스트에 실행 중인 가상 머신 에 위치하는 어플리케이션 로더(106)은 파일 훅(file hook)및 로컬 이미지 비지터를 포함한다. 여기서, 상기 파일 훅은 호스트에서 실행 중인 가상 머신에 실행 중인 프로그램의 파일 오퍼레이션 요청을 가로채기(intercept)하여, 이를 로컬 이미지 비지터에 송신하기 위해 사용된다. 로컬 이미지 비지터는 상기 파일 훅에 의해서 가로채어진 파일 오퍼레이션 요청을 수신하여, 가상 머신 이미지의 상기 처리된 일부분 내의 파티션 정보 및 파일 인덱스 정보를 체크(cheaks)하고, 상기 파일 오퍼레이션 요청에 관련된 파일이 상기 호스트에서 실행 중인 가상 머신 내의 로컬 데이터에 위치하는 지를 결정한다. 만약 상기 파일 오퍼레이션 요청에 관련된 상기 파일이 상기 로컬 데이터에 위치한다면, 대응 파일(corresponding file)은 파일 오퍼레이션 응용 프로그램 인터페이스 API를 통해 읽혀진다. 만약 상기 파일 오퍼레이션 요청에 관련된 상기 파일이 상기 호스트에서 실행 중인 가상 머신 내의 로컬 데이터에 위치하지 않는다면, 하나의 파일 읽기 요청이 스토리지 서버 내의 이미지 비지터(102)에 위치한 상기 이미지 파일 비지터로 송신되고, 상기 파일 오퍼레이션 요청에 관련된 상기 파일을 포함하는 상기 이미지 파일 비지터에 의해 회신된 응답이 수신되며, 그리고 상기 응답에서 회신된(returned)상기 파일 오퍼레이션 요청에 관련된 상기 파일은 상기 파일 오퍼레이션 응용 프로그램 인터페이스 API를 통해서 로컬 데이터에 저장된다. 상기 로컬 이미지 비지터는 또한 파일 오퍼레이션에 의해서 인크리멘털하게(incrementally)(즉, 인덱스 증가)만들어진 파일 인덱스 정보의 변화를 기록하기 위해 사용된다. 호스트내에 위치하는 이미지 동기장치(108)은 상기 로컬 이미지 비지터에 의해 기록된 파일 인덱스 정보의 변경을 읽고, 상기 변경된 파일 인덱스 정보를 사용함에 의해 로컬 데이터 내의 업데이트된 파일을 읽으며, 그리고 상기 스토리지 서버 내의 가상 머신 이미지를 업데이트하기 위해 상기 업데이트된 파일을 상기 스토리지 서버의 이미지 비지터(102)내에 위치하는 상기 이미지 파일 비지터에 송신하기 위해 사용된다.
파일 훅 및 호스트에서 실행 중인 가상 머신 내의 어플리케이션 로더 (106)에 위치하는 로컬 이미지 비지터에 관한 프로세스들은 아래에서 상세히 설명될 것이다. 상기 파일 훅은 이 분야의 어떤 수단에 의해서도 구현될 수 있으므로 더 설명을 하지 않을 것이다.
어플리케이션 로더(106)이 호스트에서 실행중인 프로그램의 파일 오퍼레이션 요청을 수신할 때, 어플리케이션 로더(106)내의 상기 파일 훅이 상기 파일 오퍼레이션 요청을 가로채기 한다. 다른 파일 오퍼레이션 요청에 대해서는, 상기 파일 훅은 대응하는 프로세스를 수행하는 상기 로컬 이미지 비지터와 각각 협력한다.
만약에 상기 파일 오퍼레이션 요청이 파일 오프닝 요청(a file opening request)라면, 즉, 상기 파일 오퍼레이션 요청이 오직 파일 정보의 획득만을 필요로 한다면, 상기 파일 훅은 파일 오프닝 요청을 가로채기 하여 그것을 로컬 이미지 비지터로 송신한다. 그 다음, 상기 로컬 이미지 비지터는 파티션 정보 및 파일 인덱스 정보를 읽는다. 여기서, 상기 파일 인덱스 정보는 일반적으로 파일 할당(allocation)테이블이다. 그 다음, 상기 로컬 이미지 비지터는 상기 파일 인덱스 정보 내의 파일 디스크립터(descriptor)를 읽어서, 대응 파일 이름, 파일 저장 경로, 파일 억세스 권한(file access right)등등과 같은 정보를 획득하고, 그리고 상기 파일 오픈 오퍼레이션은 종료된다.
만약에 상기 파일 오퍼레이션 요청이 파일 읽기 요청(a file reading operation)이라면, 상기 파일 훅은 상기 파일 읽기 요청을 가로채기 하여 그것을 상기 로컬 이미지 비지터로 송신한다. 상기 로컬 이미지 비지터는 상기 파일 읽기 요청과 관련된 파일의 대응 파일 정보를 위해 로컬 인덱스를 검색한다 ; 만약에 상기 파일 읽기 요청과 관련된 상기 파일을 처음으로(for the first time)읽는다면, 다시 말해서, 대응 파일이 로컬 인덱스에 존재하지 않는 경우라면, 상기 로컬 이미지 비지터는 파일 읽기 요청을 스토리지 서버의 이미지 비지터(102)내에 위치하는 상기 이미지 파일 비지터로 파일 훅을 통해서 송신한다. 상기 이미지 파일 비지터에 의해 회신된(returned)상기 파일 읽기 요청과 관련된 상기 파일을 포함하는 응답(a response)이 수신된 후, 상기 파일 읽기 요청과 관련된 상기 파일의 대응 파일 정보는 상기 로컬 인덱스에 기록되고, 그리고 상기 응답에서 회신된 상기 파일 읽기 요청과 관련된 상기 파일은 상기 파일 오퍼레이션 응용 프로그램 인터페이스 API를 통해서 로컬 데이터에 저장된다. 만일 상기 로컬 이미지 비지터가 상기 파일 읽기 요청에 관련된 상기 파일의 대응 파일 정보를 위해 상기 로컬 인덱스를 검색한 후에, 상기 파일 읽기 요청에 관련된 상기 파일이 처음 읽혀지는 것이 아니라고 결정되면, 다시 말해서, 대응 파일 정보가 이미 상기 로컬 인덱스에 존재한다면, 상기 로컬 이미지 비지터는 상기 로컬 인덱스에 저장된 대응 파일 정보에 따라 상기 파일 오퍼레이션 응용 프로그램 인터페이스 API를 통해서 로컬 데이터로부터 상기 관련된 파일을 직접 읽는다.
만일 상기 파일 오퍼레이션 요청이 파일 생성 요청(a file creating request)라면, 상기 파일 훅은 상기 파일 생성 요청을 가로채기 하여서 그것을 상기 로컬 이미지 비지터에 송신한다. 상기 로컬 이미지 비지터는 먼저 파티션 정보 및 파일 인덱스 정보를 읽는데, 이는 상기 파일 생성 요청에 의해서 생성될 파일 이름이 기존의 파일 인덱스 정보에 존재하는 이름으로 반복되는 것을 피하기 위해서이다. 상기 파일 인덱스 정보는 일반적으로 파일 할당 테이블(a file allocation table)이다. 만일 파일 이름 반복이 없다면, 상기 로컬 이미지 비지터는 파일 훅을 통해 상기 생성된 새로운 파일의 대응 파일 정보를 로컬 인덱스에 기록하고, 상기 파일 오퍼레이션 응용 프로그램 인터페이스 API를 통해서 로컬 데이터에 생성될 이름을 갖는 새로운 파일을 생성한다.
만일 상기 파일 오퍼레이션 요청이 파일 쓰기 요청(a file writing request)라면, 상기 파일 훅은 상기 파일 쓰기 요청을 가로채기 하여서 그것을 상기 로컬 이미지 비지터에 송신한다. 상기 로컬 이미지 비지터는 상기 파일 쓰기 요청에 관련된 파일의 변경을 상기 파일 오퍼레이션 응용 프로그램 인터페이스 API를 통해서 로컬 데이터에 기록한다. 만일 상기 파일 쓰기 요청에 관련된 파일의 대응 파일 정보가 변경되면, 상기 로컬 이미지 비지터는 또한 상기 파일 쓰기 요청에 관련된 파일의 상기 대응 파일 정보의 변경을 로컬 인덱스에 기록한다.
파일 오퍼레이션이 수행되고 난 후, 상기 로컬 이미지 비지터는 상기 인덱스 정보의 변경을 인크리멘털하게 기록하고, 상기 호스트에 위치하는 이미지 동기장치(108)은 상기 로컬 이미지 비지터에 의해서 기록된 상기 파일 인덱스 정보의 변경을 읽고, 그 변경된 파일 인덱스 정보를 이용하여 로컬 데이터 내의 업데이트된 파일을 읽어서, 상기 스토리지 서버 내의 가상 머신 이미지를 업데이트 하기 위해 업데이트된 파일을 상기 스토리지 서버의 이미지 비지터 (102)에 위치하는 상기 이미지 파일 비지터에 송신한다.
본 발명의 한 실시 예에 따라, 호스트에서 가상 머신 이미지를 실행하기 위한 시스템이 제공되는데, 상기 시스템은: 가상 머신 이미지 공급 요청을 수신하고 ; 상기 가상 머신 이미지 공급 요청에 관련된 가상 머신 이미지를 복사하기 위해 스토리지 서버에 요청하며 ; 적어도 운영 체제 커널, 파티션 정보 및 파일 인덱스 정보를 포함하는, 가상 머신 이미지의 일부분을 수신하고 ; 그리고 상기 가상 머신 이미지의 상기 수신된 일부분을 실행함에 의해서 가상 머신을 시작하는 이미지 로더(an image loader)와 : 상기 가상 머신에서 실행 중인 프로그램의 파일 오퍼레이션 요청을 가로채기 하여 ; 상기 파일 오퍼레이션 요청과 관련된 파일을 복사하기 위해 상기 스토리지 서버에 요청하며 ; 그리고 상기 파일 오퍼레이션 요청에 관련된 상기 파일을 수신하는 ; 어플리케이션 로더(an application loader): 를 포함하는 시스템이다. 선택적으로, 가상 머신 이미지를 실행하기 위한 상기 시스템은, 만일 상기 호스트에서 실행 중인 가상 머신 이미지 내의 데이터가 변경되었다면, 상기 스토리지 서버 내의 상기 가상 머신 이미지를 업데이트 하기 위해서 변경된 데이터를 송신하기 위해, 이미지 동기장치 (108)을 더 포함할 수 있다.
본 발명의 한 실시 예에 따라, 호스트에서 가상 머신 이미지를 실행하기 위한 시스템이 제공되는데, 상기 시스템은: 가상 머신 이미지 공급 요청에 관련된 가상 머신 이미지를 복사하는 것에 관하여 상기 호스트에 의해서 송신된 요청을 수신하고 ; 적어도 운영 체제 커널, 파티션 정보 및 파일 인덱스 정보를 포함하는, 가상 머신 이미지의 일부분을 상기 호스트에 송신하며 ; 파일 오퍼레이션 요청에 관련된 파일을 복사하는 것에 관하여 상기 호스트에 의해서 송신된 요청을 수신하고 ; 그리고 상기 파일 오퍼레이션 요청에 관련된 상기 파일을 상기 호스트에 송신하는 ; 이미지 비지터(an image visitor): 를 포함하는 시스템이다. 여기서, 상기 이미지 비지터는 상기 호스트에서 실행 중인 가상 머신 이미지 내의 변경된 데이터를 수신하여 상기 가상 머신 이미지를 상기 변경된 데이터로 업데이트 하기 위한 이미지 파일 비지터를 더 포함할 수 있다. 선택적으로, 가상 머신 이미지를 실행하기 위한 상기 시스템은 파일 인덱스 정보를 생성하기 위한 이미지 인덱서(an image indexer)와 ; 상기 이미지 인덱스에 의해서 생성된 상기 파일 인덱스 정보를 사용하여 가상 머신 이미지의 일부분을 생성하기 위한 이미지 변환기(an image converter)를 더 포함할 수 있다.
이제 도 2를 참조하면, 도 2는 본 발명의 한 실시 예에 따라, 호스트에서 가상 머신 이미지를 실행하기 위한 방법에 관한 플로 다이어그램을 보여준다. 본 발명의 한 실시 예에 따라, 호스트에서 가상 머신 이미지를 실행하기 위한 방법 (200)은 단계(202)에서 시작한다. 그 다음, 단계 (204)에서, 가상 머신 이미지 공급 요청이 호스트에 의해서 수신된다 ; 그 다음, 단계 (206)에서, 상기 가상 머신 이미지 공급 요청에 관련된 가상 머신 이미지를 복사하는 것에 관한 요청이 상기 호스트에 의해서 스토리지 서버에 송신된다 ; 그 다음, 단계 (208)에서, 적어도 운영 체제 커널, 파티션 정보 및 파일 인덱스 정보를 포함하는, 가상 머신 이미지의 일부분이 상기 호스트에 의해서 수신된다 ; 그 다음, 단계 (210)에서, 상기 가상 머신 이미지의 상기 수신된 일부분을 실행함으로써 상기 호스트에서 가상 머신이 시작된다 ; 그 다음, 단계 (212)에서, 상기 가상 머신에서 실행 중인 프로그램의 파일 오퍼레이션 요청이 상기 호스트에 의해서 가로채기 된다 ; 그 다음, 단계 (214)에서, 상기 파일 오퍼레이션 요청에 관련된 파일이 상기 호스트에 의해서 획득된다. 또한, 가상 머신 이미지를 실행하기 위한 방법 (200)은, 만일 상기 호스트에서 실행 중인 가상 머신 내의 데이터가 상기 가상 머신의 실행 중에 변경된다면, 단계 (216)에서, 상기 가상 머신 이미지를 업데이트하기 위해 상기 변경된 데이터는 상기 스토리지 서버로 송신되는 것을 더 포함할 수 있다. 그 다음, 본 발명의 상기 실시 예에 따른 방법 (200)은 단계 (218)에서 종료된다.
또한, 상기 파일 오퍼레이션 요청이 수신되었을 때, 본 발명의 상기 실시 예에 따른 방법 (200)은 다른 파일 오퍼레이션 요청에 대해서도 대응 프로세스들을, 각각, 수행한다.
만일 상기 파일 오퍼레이션 요청이 파일 오프닝 요청이라면, 즉 상기 파일 오퍼레이션 요청이 오직 파일 정보를 획득하는 것만 필요로 한다면, 파티션 정보 및 파일 인덱스 정보가 읽혀져서, 대응 파일 이름, 파일 저장 경로, 파일 접근 권한(file access right), 등등과 같은 정보가 획득되고, 그 다음 파일 오픈 오퍼레이션은 종료된다.
만일 상기 파일 오퍼레이션 요청이 파일 읽기 요청(a file reading request)라면, 로컬 인덱스가 상기 파일 읽기 요청에 관련된 파일의 대응 파일 정보를 위해 검색된다 ; 만일 상기 파일 읽기 요청에 관련된 파일이 처음 읽혀지는 것이라면, 다시 말해서, 대응 파일 정보가 상기 로컬 인덱스에 존재하지 않는다면, 상기 파일 읽기 요청은 상기 스토리지 서버로 송신된다. 상기 파일 읽기 요청에 관련된 파일을 포함하는 회신 응답이 수신된 후, 상기 파일 읽기 요청에 관련된 파일의 대응 파일 정보는 상기 로컬 인덱스에 기록되고, 상기 응답에서 회신된 상기 파일 읽기 요청에 관련된 파일은 파일 오퍼레이션 응용 프로그램 인터페이스 API를 통해서 로컬 데이터에 저장된다. 만일, 상기 로컬 인덱스가 상기 파일 읽기 요청에 관련된 파일의 대응 파일 정보를 위해 검색된 후에, 상기 파일 읽기 요청에 관련된 파일이 처음 읽혀지는 것이 아니라고 결정되면, 다시 말해서, 대응 파일 정보가 이미 상기 로컬 인덱스에 존재한다면, 상기 관련된 파일은 로컬 인덱스에 저장된 상기 대응 파일 정보에 따라 파일 오퍼레이션 응용 프로그램 인터페이스 API를 통해서 상기 로컬 데이터로부터 직접 읽혀진다.
만일 상기 파일 오퍼레이션 요청이 파일 생성 요청(a file creating request)이라면, 제 1 파티션 정보 및 파일 인덱스 정보가 읽혀지는데, 이는 상기 파일 생성 요청에 의해 생성될 파일 이름이 기존의 파일 인덱스 정보에 존재하는 것으로 반복되는 것을 피하기 위함이다. 만일 파일 이름 반복이 없다면, 상기 생성된 새로운 파일의 대응 파일 정보는 로컬 인덱스에 기록되고, 생성될 이름을 갖는 새로운 파일이 상기 파일 오퍼레이션 응용 프로그램 인터페이스 API를 통해서 로컬 데이터에 생성된다.
만일 상기 파일 오퍼레이션 요청이 파일 쓰기 요청(a file writing request)라면, 상기 파일 쓰기 요청에 관련된 파일의 변경은 상기 파일 오퍼레이션 응용 프로그램 인터페이스 API를 통해서 로컬 데이터에 기록된다. 만일 상기 파일 쓰기 요청에 관련된 파일의 대응 파일 정보가 변경되면, 상기 파일 쓰기 요청에 관련된 파일의 상기 대응 파일 정보의 변경은 또한 상기 로컬 인덱스에 기록된다.
파일 오퍼레이션이 수행되고 난 후, 상기 인덱스 정보의 변경은 인크리멘털하게 기록된다. 로컬 데이터 내의 업데이트된 파일은 상기 변경된 파일 인덱스 정보를 사용하여 읽혀지고, 상기 업데이트된 파일은 상기 스토리지 서버 내의 가상 머신 이미지를 업데이트 하기 위해 상기 스토리지 서버에 송신된다.
이제 도 3을 참조하면, 도 3은 본 발명의 다른 실시 예에 따라, 호스트에서 가상 머신 이미지를 실행하기 위한 방법에 관한 플로 다이어그램(300)을 보여준다. 본 발명의 다른 실시 예에 따라, 호스트에서 가상 머신 이미지를 실행하기 위한 방법 (300)은 단계(302)에서 시작한다. 그 다음, 단계 (304)에서, 상기 호스트에 의해서 송신된 가상 머신 이미지 공급 요청에 관련된 가상 머신 이미지를 복사하는 것에 관한 요청이 수신된다 ; 그 다음, 단계 (306)에서, 적어도 운영 체제 커널, 파티션 정보 및 파일 인덱스 정보를 포함하는, 가상 머신 이미지의 일부분이 상기 호스트에 의해서 수신된다 ; 그 다음, 단계 (308)에서, 상기 호스트에 의해서 송신된 파일 오퍼레이션 요청에 관련된 파일을 복사하는 것에 관한 요청이 수신된다 ; 그 다음, 단계 (310)에서, 상기 파일 오퍼레이션 요청에 관련된 상기 파일이 상기 호스트에 송신된다 ; 그 다음, 본 발명의 상기 실시 예에 따른 방법 (300)은 단계 (312)에서 종료된다. 또한, 본 발명의 다른 실시 예에 따른 가상 머신 이미지를 실행하기 위한 방법 (300)은 파일 인덱스 정보를 생성하는 것과 ; 상기 생성된 파일 인덱스 정보를 사용하여 가상 머신 이미지의 일부분을 생성하는 것을 더 포함한다.
지금까지 본 발명의 기본 원리들이 구체적인 실시 예들과 함께 설명되었다. 그러나, 이 분야의 통상의 지식을 가진 자들은 본 발명의 방법 및 장치에서 모든 혹은 어떤 단계 혹은 구성요소들이 어떠한 컴퓨팅 장치들(프로세서, 저장 매체, 등을 포함하여)혹은 하드웨어, 펌웨어, 소프트웨어, 혹은 이들의 조합의 형태로 된 컴퓨터 장치의 네트워크에서 구현될 수 있음을 이해할 것이다. 이러한 것들은 이 분야의 통상의 지식을 가진 자들이 본 발명의 설명을 읽고 나서 그들의 기초 프로그래밍 기술들을 사용하여 달성할 수 있다.
따라서, 본 발명의 목적은 모든 컴퓨팅 장치상에서 실행되는 프로그램 혹은 프로그램 그룹에 의해서 또한 구현될 수 있다. 그러한 컴퓨팅 장치는 범용 장치 일 수도 있다. 따라서, 본 발명의 목적은 방법을 구현하기 위한 프로그램 코드들을 포함하는 컴퓨터 프로그램 제품 혹은 장치를 단순히 제공함으로써 또한 구현될 수 있다. 다시 말하면, 그러한 프로그램 제품도 또한 본 발명을 구성할 수 있고, 그러한 프로그램 제품을 저장하는 저장 매체도 또한 본 발명을 구성할 수 있다. 물론, 저장 매체는 알려진 모든 저장 매체 혹은 미래에 개발될 모든 저장 매체가 될 수 있다.
본 발명의 장치 및 방법에 있어서, 각각의 구성요소 혹은 각각의 단계는 분리되거나, 재결합될 수 있다. 그러한 분리 및/또는 재결합은 본 발명의 균등 해결 방안으로 고려된 것이다. 또한, 전술한 일련의 프로세스들을 수행하기 위한 단계들은 설명의 순서에 따라 시간 순서로 자연스럽게 실행될 수 있지만, 반드시 시간 순서로 실행될 필요는 없다. 일부 단계들은 병렬로 혹은 서로 독립적으로 실행될 수 있다.
본 발명과 그 장점들이 상세하게 설명되었지만, 다양한 수정들, 치환들 및 변경들이 첨부된 청구항들에 의해서 정의된 본 발명의 정신과 범위를 벗어남이 없이 만들어질 수 있음도 이해되어야 한다. 또한, “포함하는(comprising, including)”이라는 용어 혹은 이와 유사한 용어들은 비 배타적 포함(non-exclusive inclusion)을 적용하기 위해 의도된 것이며, 이에 의해서 일련의 구성요소들을 포함하는 절차, 방법, 아이템, 혹은 장치를 구성한다는 말은 이들 구성요소들을 포함할 뿐만 아니라, 명백하게 나열되지 않은 다른 구성요소들을 포함하거나 혹은 그러한 절차, 방법, 아이템, 혹은 장치에 고유한(inherent)구성요소들을 포함한다는 것을 의미한다. 다른 곳에서 달리 정의되지 않는한, “포함하는…(including…)” 이라는 어구로 정의된 구성요소(element)는 그러한 구성요소를 포함하는 절차, 방법, 아이템 혹은 장치에 또한 존재하는 다른 동일 구성요소를 배제하지 않는다.

Claims (16)

  1. 호스트에서 가상 머신 이미지를 실행하기 위한 방법에 있어서, 상기 방법은 :
    가상 머신 이미지 공급 요청(provisioning request)을 수신하는 단계(receiving);
    상기 가상 머신 이미지 공급 요청에 관련된 가상 머신 이미지를 복사하는 것에 관한 요청(request of copying )을 스토리지 서버로 송신하는 단계(sending);
    적어도 운영 체제 커널(operation system kernel), 파티션(partition)정보 및 파일 인덱스(index)정보를 포함하는, 가상 머신 이미지의 일부분(a portion)을 수신하는 단계 ;
    상기 가상 머신 이미지의 상기 수신된 일부분을 실행함에 의해서 호스트에서 가상 머신을 시작하는 단계(starting);
    상기 가상 머신에서 실행 중인 프로그램의 파일 오퍼레이션 요청(file operation request)을 가로채기 하는 단계(intercepting);
    상기 파일 오퍼레이션 요청에 관련된 파일을 복사하는 것에 관한 요청을 상기 스토리지 서버에 송신하는 단계(sending); 및
    상기 파일 오퍼레이션 요청에 관련된 파일을 획득하는 단계(acquiring); 를 포함하는
    방법.
  2. 제 1항에서, 상기 방법은
    만일 상기 호스트에서 실행 중인 가상 머신 이미지 내의 데이터가 변경되었다면, 상기 스토리지 서버 내의 상기 가상 머신 이미지를 업데이트 하기 위해서 변경된 데이터를 송신하는 단계를 더 포함하는
    방법.
  3. 제 1항에서, 상기 방법은
    상기 파일 인덱스 정보의 변경을 인크리멘탈하게(incrementally)기록하는 단계(recording)를 더 포함하는
    방법.
  4. 제 1 또는 2항에서, 상기 방법은
    만일 상기 파일 오퍼레이션 요청에 관련된 상기 파일이 상기 호스트에서 실행 중인 가상 머신의 로컬 데이터 내에 이미 존재하고 있다면, 상기 파일 오퍼레이션 요청에 관련된 상기 파일을 상기 로컬 데이터로부터 직접 읽는 단계를 더 포함하는
    방법.
  5. 제 1 또는 2항에서, 상기 방법은
    만일 상기 파일 오퍼레이션 요청에 관련된 상기 파일이 상기 호스트에서 실행 중인 가상 머신의 로컬 데이터 내에 존재하고 있지 않다면, 상기 파일 오퍼레이션 요청에 관련된 상기 파일을 복사하는 것에 관한 요청을 상기 스토리지 서버에 송신하는 단계 및 상기 스토리지 서버로부터 상기 파일 오퍼레이션 요청에 관련된 상기 파일을 수신하는 단계를 더 포함하는
    방법.
  6. 호스트에서 가상 머신 이미지를 실행하기 위한 방법에 있어서, 상기 방법은:
    가상 머신 이미지 공급 요청에 관련된 가상 머신 이미지를 복사하는 것에 관하여 상기 호스트에 의해 송신된 요청(request sent by the host of copying )을 수신하는 단계 ;
    적어도 운영 체제 커널(kernel), 파티션(partition)정보 및 파일 인덱스 정보를 포함하는, 가상 머신 이미지의 일부분을 상기 호스트에 송신하는 단계 ;
    파일 오퍼레이션 요청에 관련된 파일을 복사하는 것에 관하여 상기 호스트에 의해 송신된 요청을 수신하는 단계 ; 및
    상기 파일 오퍼레이션 요청에 관련된 상기 파일을 상기 호스트에 송신하는 단계 ;를 포함하는
    방법.
  7. 제 6항에서, 상기 방법은
    상기 호스트에서 실행 중인 가상 머신 이미지 내의 변경된 데이터를 수신하는 단계 ;
    상기 가상 머신 이미지를 상기 변경된 데이터로 업데이트하는 단계(updating)를 더 포함하는
    방법.
  8. 제 6항에서, 상기 방법은
    파일 인덱스 정보를 생성하는 단계(generating); 및
    상기 생성된 파일 인덱스 정보를 사용하여 상기 가상 머신 이미지의 일부분을 생성하는 단계를 더 포함하는
    방법.
  9. 호스트에서 가상 머신 이미지를 실행하기 위한 시스템에 있어서, 상기 시스템은:
    가상 머신 이미지 공급 요청을 수신하고 ;
    상기 가상 머신 이미지 공급 요청에 관련된 가상 머신 이미지를 복사하기 위해 스토리지 서버로 요청하며 ;
    적어도 운영 체제 커널, 파티션 정보 및 파일 인덱스 정보를 포함하는, 가상 머신 이미지의 일부분을 수신하고 ; 그리고
    상기 가상 머신 이미지의 상기 수신된 일부분을 실행함에 의해서 가상 머신을 시작하는 ;
    이미지 로더(an image loader)와 :
    상기 가상 머신에서 실행 중인 프로그램의 파일 오퍼레이션 요청을 가로채기 하고 ;
    상기 파일 오퍼레이션 요청에 관련된 파일을 복사하기 위해 상기 스토리지 서버로 요청하며 ; 그리고
    상기 파일 오퍼레이션 요청에 관련된 상기 파일을 획득하는 ;
    어플리케이션 로더(an application loader): 를 포함하는
    시스템.
  10. 제 9항에서, 상기 시스템은
    만일 상기 호스트에서 실행 중인 가상 머신 이미지 내의 데이터가 변경되었다면, 상기 스토리지 서버 내의 상기 가상 머신 이미지를 업데이트하기 위해서 변경된 데이터를 송신하기 위한, 이미지 동기장치(an image synchronizer)를 더 포함하는
    시스템.
  11. 제 9 또는 10항에서,
    상기 어플리케이션 로더는 상기 파일 인덱스 정보의 변경을 인크리멘탈하게(incrementally)기록하고, 그리고
    상기 이미지 동기장치는 상기 파일 인덱스 정보의 변경을 읽는
    시스템.
  12. 제 9 또는 10항에서,
    만일 상기 파일 오퍼레이션 요청에 관련된 상기 파일이 상기 호스트에서 실행 중인 가상 머신의 로컬 데이터 내에 이미 존재하고 있다면, 상기 어플리케이션 로더는 상기 파일 오퍼레이션 요청에 관련된 상기 파일을 상기 로컬 데이터로부터 직접 읽는
    시스템.
  13. 제 9 또는 10항에서,
    만일 상기 파일 오퍼레이션 요청에 관련된 상기 파일이 상기 호스트에서 실행 중인 가상 머신의 로컬 데이터 내에 존재하고 있지 않다면, 상기 어플리케이션 로더는 상기 파일 오퍼레이션 요청에 관련된 상기 파일을 복사하는 것에 관한 요청을 상기 스토리지 서버에 송신하고 그리고 상기 스토리지 서버로부터 상기 파일 오퍼레이션 요청에 관련된 상기 파일을 수신하는
    시스템.
  14. 호스트에서 가상 머신 이미지를 실행하기 위한 시스템에 있어서, 상기 시스템은:
    가상 머신 이미지 공급 요청에 관련된 가상 머신 이미지를 복사하는 것에 관하여 상기 호스트에 의해서 송신된 요청을 수신하고 ;
    적어도 운영 체제 커널, 파티션 정보 및 파일 인덱스 정보를 포함하는, 가상 머신 이미지의 일부분을 상기 호스트에 송신하며 ;
    파일 오퍼레이션 요청에 관련된 파일을 복사하는 것에 관하여 상기 호스트에 의해서 송신된 요청을 수신하고 ; 그리고
    상기 파일 오퍼레이션 요청에 관련된 상기 파일을 상기 호스트에 송신하는 ;
    이미지 비지터(an image visitor): 를 포함하는
    시스템.
  15. 제 14항에서,
    상기 이미지 비지터는 상기 호스트에서 실행중인 가상 머신 이미지 내의 변경된 데이터를 수신하여 상기 가상 머신 이미지를 상기 변경된 데이터로 업데이터하기 위한 이미지 파일 비지터(an image file visitor)를 더 포함하는
    시스템.
  16. 청구항 14에서, 상기 시스템은 :
    파일 인덱스 정보를 생성하기 위한 이미지 인덱서(an image indexer);
    상기 이미지 인덱서에 의해서 생성된 상기 파일 인덱스 정보를 사용하여 가상 머신 이미지의 일부분을 생성하기 위한 이미지 변환기(an image converter)를 더 포함하는
    시스템.
KR1020100094081A 2009-09-30 2010-09-29 가상 머신 이미지를 실행하기 위한 방법과 시스템 KR20110035949A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2009101741293A CN102033755A (zh) 2009-09-30 2009-09-30 用于运行虚拟机镜像的方法和系统
CN200910174129.3 2009-09-30

Publications (1)

Publication Number Publication Date
KR20110035949A true KR20110035949A (ko) 2011-04-06

Family

ID=43781761

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100094081A KR20110035949A (ko) 2009-09-30 2010-09-29 가상 머신 이미지를 실행하기 위한 방법과 시스템

Country Status (4)

Country Link
US (1) US20110078681A1 (ko)
JP (1) JP2011076605A (ko)
KR (1) KR20110035949A (ko)
CN (1) CN102033755A (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101471879B1 (ko) * 2012-10-31 2014-12-11 삼성에스디에스 주식회사 하이퍼바이저 기반 서버 이중화 시스템, 그 방법 및 서버 이중화 컴퓨터 프로그램이 기록된 기록매체
US9262211B2 (en) 2011-11-10 2016-02-16 Samsung Electronics Co., Ltd. Apparatus and method for software migration in mobile environment
KR101967300B1 (ko) * 2017-10-27 2019-04-09 아토리서치(주) 가상머신 이미지 생성 자동화 방법 및 장치

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5576781B2 (ja) * 2010-12-16 2014-08-20 株式会社メガチップス 画像処理システム、画像処理システムの動作方法、ホスト装置、プログラム、およびプログラムの作成方法
US8875240B2 (en) 2011-04-18 2014-10-28 Bank Of America Corporation Tenant data center for establishing a virtual machine in a cloud environment
CN102185861B (zh) * 2011-05-13 2014-04-16 惠州Tcl移动通信有限公司 一种实现平板电脑与智能手机交互的系统及方法
CN102185928B (zh) * 2011-06-01 2013-07-17 广州杰赛科技股份有限公司 一种在云计算系统创建虚拟机的方法及云计算系统
US8776057B2 (en) * 2011-06-02 2014-07-08 Fujitsu Limited System and method for providing evidence of the physical presence of virtual machines
CN102810067A (zh) * 2011-06-02 2012-12-05 鸿富锦精密工业(深圳)有限公司 虚拟机模板更新系统及方法
US8843443B1 (en) * 2011-06-30 2014-09-23 Emc Corporation Efficient backup of virtual data
US9158632B1 (en) 2011-06-30 2015-10-13 Emc Corporation Efficient file browsing using key value databases for virtual backups
US8849777B1 (en) 2011-06-30 2014-09-30 Emc Corporation File deletion detection in key value databases for virtual backups
US9152405B2 (en) * 2011-08-22 2015-10-06 International Business Machines Corporation Rapid provisioning of virtual machines based on multi-dimensional user request patterns in a cloud
US8813076B2 (en) 2011-11-17 2014-08-19 International Business Machines Corporation Virtual machine updates
US9519472B2 (en) 2011-11-23 2016-12-13 Red Hat, Inc. Automation of virtual machine installation by splitting an installation into a minimal installation and customization
CN102495744B (zh) * 2011-11-29 2014-11-19 湖南南车时代电动汽车股份有限公司 基于can总线的电动汽车电控设备控制软件升级方法
CN103150175B (zh) * 2011-12-07 2018-04-13 天津中兴智联科技有限公司 一种构建转产镜像的方法及装置
US8943291B2 (en) 2011-12-13 2015-01-27 International Business Machines Corporation Reorganization of software images based on predicted use thereof
CN103176831B (zh) * 2011-12-22 2016-08-10 中国移动通信集团公司 一种虚拟机系统及其管理方法
TW201327391A (zh) * 2011-12-27 2013-07-01 Hon Hai Prec Ind Co Ltd 虛擬機應用系統及方法
US9992024B2 (en) 2012-01-25 2018-06-05 Fujitsu Limited Establishing a chain of trust within a virtual machine
US9098378B2 (en) 2012-01-31 2015-08-04 International Business Machines Corporation Computing reusable image components to minimize network bandwidth usage
US10445121B2 (en) * 2012-02-23 2019-10-15 Red Hat Inc. Building virtual machine disk images for different cloud configurations from a single generic virtual machine disk image
CN102629941B (zh) * 2012-03-20 2014-12-31 武汉邮电科学研究院 云计算系统中虚拟机镜像缓存的方法
US9135045B2 (en) 2012-05-29 2015-09-15 International Business Machines Corporation Generating user-requested virtual machine templates from super virtual machine templates and cacheable patches
US8880638B2 (en) 2012-06-18 2014-11-04 International Business Machines Corporation Distributed image cache for servicing virtual resource requests in the cloud
US9183031B2 (en) 2012-06-19 2015-11-10 Bank Of America Corporation Provisioning of a virtual machine by using a secured zone of a cloud environment
WO2014031100A1 (en) * 2012-08-21 2014-02-27 Empire Technology Development Llc Detection and mitigation of side-channel attacks
CN102880515A (zh) * 2012-09-07 2013-01-16 浪潮电子信息产业股份有限公司 一种云海os中虚拟机快速部署方法
US9063815B2 (en) * 2012-09-17 2015-06-23 International Business Machines Corporation Provisioning a virtual machine from one or more VM images
CN103838593B (zh) * 2012-11-22 2020-04-03 华为技术有限公司 恢复虚拟机的方法、系统及控制器、服务器、寄宿主机
CN103116507B (zh) * 2012-12-14 2017-02-08 惠州市亿能电子有限公司 一种基于can的ecu程序下载方法
CN103906068B (zh) * 2012-12-26 2017-07-21 华为技术有限公司 虚拟基站创建方法及装置
CN103077072A (zh) * 2013-01-04 2013-05-01 浪潮(北京)电子信息产业有限公司 一种复制虚拟机的方法和系统
US9813485B2 (en) 2013-06-14 2017-11-07 1E Limited Communication of virtual machine data
GB2515114B (en) * 2013-06-14 2015-07-22 1E Ltd Communication of Virtual Machine Data
GB2516842A (en) 2013-07-31 2015-02-11 Ibm Deployment of software images with distinct configuration logic
US9600774B1 (en) * 2013-09-25 2017-03-21 Amazon Technologies, Inc. Predictive instance suspension and resumption
CN103729264B (zh) * 2013-12-23 2016-07-13 国云科技股份有限公司 一种Windows虚拟机系统盘备份还原方法
CN103778031B (zh) * 2014-01-15 2017-01-18 华中科技大学 一种云环境下的分布式系统多级故障容错方法
US9195401B2 (en) * 2014-02-18 2015-11-24 University Of Florida Research Foundation, Inc. Method and apparatus for virtual machine live storage migration in heterogeneous storage environment
CN103810422B (zh) * 2014-02-20 2017-05-17 东莞中国科学院云计算产业技术创新与育成中心 一种基于镜像智能管理的安全虚拟化隔离方法
CN104281486B (zh) * 2014-09-26 2018-04-20 华为技术有限公司 一种虚拟机处理方法和装置
CN104573422A (zh) * 2015-01-08 2015-04-29 浪潮软件股份有限公司 一种基于虚拟机的应用进程运行方法及装置
CN106155758B (zh) * 2015-03-24 2022-04-19 联想(北京)有限公司 一种服务器系统及其相关控制方法
CN104820610B (zh) * 2015-05-14 2017-12-22 华中科技大学 一种云环境中虚拟机镜像的更新方法及系统
CN105260229A (zh) * 2015-10-28 2016-01-20 北京百度网讯科技有限公司 拉取虚拟机镜像文件的方法和装置
CN106020902A (zh) * 2016-05-31 2016-10-12 浪潮(北京)电子信息产业有限公司 一种应用于云平台的虚拟机镜像文件管理方法及系统
WO2018014356A1 (zh) * 2016-07-22 2018-01-25 华为技术有限公司 一种加载方法及装置
CN107968794B (zh) * 2016-10-18 2023-05-12 中兴通讯股份有限公司 一种虚拟光驱挂载方法及系统、服务器、终端
CN106445643B (zh) * 2016-11-14 2019-10-22 上海云轴信息科技有限公司 克隆、升级虚拟机的方法及设备
CN108206750A (zh) * 2016-12-16 2018-06-26 北京国双科技有限公司 虚拟机网卡的配置方法及装置
CN106997392B (zh) * 2017-04-10 2020-03-03 北京搜狐新媒体信息技术有限公司 Docker镜像缓存信息的处理方法、装置以及读取方法和装置
CN107256368B (zh) * 2017-06-06 2020-02-07 北京航空航天大学 基于写时复制特性的虚拟机内文件完整性度量方法
CN107291507B (zh) * 2017-06-28 2020-10-27 联想(北京)有限公司 一种虚拟机虚拟硬盘的升级方法及电子设备
CN108287733A (zh) * 2017-12-19 2018-07-17 广东睿江云计算股份有限公司 一种虚拟机加载启动方法
CN111602118B (zh) * 2018-01-16 2023-06-06 Qsc公司 实现虚拟机的音频,视频和控制系统
CN111630495A (zh) 2018-01-16 2020-09-04 Qsc公司 多种音频/视频操作系统的服务器支持
CA3091825C (en) 2018-02-23 2023-10-17 Qsc, Llc Audio amplifier assemblies, processes, and methods
CN110032870B (zh) * 2019-03-29 2020-10-02 网御安全技术(深圳)有限公司 虚拟机监控器的安全引导方法、系统及硬件安全监控卡
WO2021232289A1 (zh) * 2020-05-20 2021-11-25 深圳市欢太科技有限公司 镜像拉取方法及相关产品
CN113760439A (zh) * 2020-06-01 2021-12-07 中移(苏州)软件技术有限公司 一种虚拟机网络管理方法、装置、设备及存储介质
CN112130930B (zh) * 2020-09-23 2023-08-22 平安科技(深圳)有限公司 镜像系统生成方法、装置、设备及介质
CN113703927B (zh) * 2021-10-29 2022-02-11 杭州链城数字科技有限公司 数据处理方法、隐私计算系统、电子装置和存储介质

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7257584B2 (en) * 2002-03-18 2007-08-14 Surgient, Inc. Server file management
US7434220B2 (en) * 2002-09-16 2008-10-07 Clearcube Technology, Inc. Distributed computing infrastructure including autonomous intelligent management system
US8209680B1 (en) * 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
US7634689B2 (en) * 2005-09-22 2009-12-15 Advanced Micro Devices, Inc. Boot performance optimization for hard drive for personal internet communicator
WO2007064849A1 (en) * 2005-12-01 2007-06-07 Cassatt Corporation Automated deployment and configuration of applications in an autonomically controlled distributed computing system
JP4434168B2 (ja) * 2006-03-30 2010-03-17 日本電気株式会社 オンデマンドクライアントサービスシステム、その管理方法、及びプログラム
JP4366698B2 (ja) * 2006-07-27 2009-11-18 日本電気株式会社 計算機、計算機システム、及びディスクイメージ配布方法
US8903938B2 (en) * 2007-06-18 2014-12-02 Amazon Technologies, Inc. Providing enhanced data retrieval from remote locations
US8051111B2 (en) * 2008-01-31 2011-11-01 Prowess Consulting, Llc Method and system for modularizing windows imaging format

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9262211B2 (en) 2011-11-10 2016-02-16 Samsung Electronics Co., Ltd. Apparatus and method for software migration in mobile environment
KR101471879B1 (ko) * 2012-10-31 2014-12-11 삼성에스디에스 주식회사 하이퍼바이저 기반 서버 이중화 시스템, 그 방법 및 서버 이중화 컴퓨터 프로그램이 기록된 기록매체
US8997098B2 (en) 2012-10-31 2015-03-31 Samsung Sds Co., Ltd. Hypervisor-based server duplication system and method and storage medium storing server duplication computer program
US9317320B2 (en) 2012-10-31 2016-04-19 Samsung Sds Co., Ltd. Hypervisor-based server duplication system and method and storage medium storing server duplication computer program
KR101967300B1 (ko) * 2017-10-27 2019-04-09 아토리서치(주) 가상머신 이미지 생성 자동화 방법 및 장치

Also Published As

Publication number Publication date
CN102033755A (zh) 2011-04-27
JP2011076605A (ja) 2011-04-14
US20110078681A1 (en) 2011-03-31

Similar Documents

Publication Publication Date Title
KR20110035949A (ko) 가상 머신 이미지를 실행하기 위한 방법과 시스템
US11537573B2 (en) Elastic, ephemeral in-line deduplication service
KR101376952B1 (ko) 머신을 가상 머신으로 변환하는 방법
US11500814B1 (en) Chain file system
US8924954B2 (en) Application software installation method and application software installation apparatus
US8966188B1 (en) RAM utilization in a virtual environment
WO2011069977A2 (en) Efficient loading of data into memory of a computing system
WO2019061352A1 (zh) 数据加载方法及装置
EP3317764B1 (en) Data access accelerator
US8732427B2 (en) Systems and methods for collapsing a derivative version of a primary storage volume
US20240020131A1 (en) Isolating applications at the edge
US20140082275A1 (en) Server, host and method for reading base image through storage area network
CN107528871B (zh) 存储系统中的数据分析
JP5439435B2 (ja) 計算機システムおよびその計算機システムにおけるディスク共有方法
CN107832097B (zh) 数据加载方法及装置
US20240078198A1 (en) Instant recovery as an enabler for uninhibited mobility between primary storage and secondary storage
US10127029B1 (en) Operating system installation using logical volumes
US10248449B1 (en) Application containers running inside virtual machine
CN111459619A (zh) 一种基于云平台实现服务的方法和装置
CN109343928B (zh) 虚拟化集群中虚拟机的虚拟内存文件重定向方法及其系统
US11663241B2 (en) System and method for catalog service
JP7347157B2 (ja) 情報処理システム、ストレージ制御プログラム、及び、ストレージ制御装置
WO2017004361A1 (en) Data access accelerator
TW201214282A (en) Method and system for running virtual machine image
US8065737B1 (en) Virus scanning for block-level distributed application management

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application