JP2012118827A - 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体 - Google Patents

情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体 Download PDF

Info

Publication number
JP2012118827A
JP2012118827A JP2010268890A JP2010268890A JP2012118827A JP 2012118827 A JP2012118827 A JP 2012118827A JP 2010268890 A JP2010268890 A JP 2010268890A JP 2010268890 A JP2010268890 A JP 2010268890A JP 2012118827 A JP2012118827 A JP 2012118827A
Authority
JP
Japan
Prior art keywords
virtual
clone
virtual machine
image
information processing
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
JP2010268890A
Other languages
English (en)
Other versions
JP5681465B2 (ja
Inventor
Yohei Ueda
陽平 上田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2010268890A priority Critical patent/JP5681465B2/ja
Priority to US13/307,144 priority patent/US20120144391A1/en
Publication of JP2012118827A publication Critical patent/JP2012118827A/ja
Application granted granted Critical
Publication of JP5681465B2 publication Critical patent/JP5681465B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • 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/45579I/O management, e.g. providing access to device drivers or storage

Abstract

【課題】仮想機械を迅速に準備するための情報処理システム、情報処理装置、仮想機械の準備方法、プログラムおよび記録媒体を提供する。
【解決手段】情報処理システム100は、クローン元仮想機械138Sを稼働させるコンピュータ装置110Sが、クローン元仮想機械138Sを仮想ネットワーク・インタフェースが切り離された状態で起動させて、該クローン元仮想機械の作業状態を表す作業状態情報を取得し、作業状態情報160および仮想ディスク情報162を含むイメージを保存する制御を行い、クローン先となるコンピュータ装置が、上記イメージを用いて、1以上のクローンの仮想機械を仮想ネットワーク・インタフェースが切り離された状態で再開させ、1以上のクローンの仮想機械に仮想ネットワーク・インタフェースを取り付ける制御を行う。
【選択図】図4

Description

本発明は、仮想化技術に関し、より詳細には、仮想機械を迅速に準備するための情報処理システム、情報処理装置、仮想機械の準備方法、該情報処理装置を実現するためのプログラム、および該プログラムを記録する記録媒体に関する。
近年、コンピュータのCPU(Central Processing Unit)、メモリ、ストレージなどのハードウェア・リソースを仮想化して、当該リソース上に仮想的なコンピュータ、すなわち仮想機械(Virtual Machine)を実現する、システム仮想化技術が発展している。また、上述したシステム仮想化技術の発展および近年のインターネット技術の進歩に伴い、上記仮想機械やネットワークなどのインフラストラクチャを、インターネット経由のサービスとして提供する、いわゆるIaaS(Infrastructure as a Service)などのクラウド・サービスも普及している。
上述したIaaSによれば、サービス利用者は、アクセス数に対応させてウェブ・サーバのインスタンスを適時に増減させたり、バッチ処理のデータ規模に応じて分散バッチ処理システムのデータ・ノードのインスタンスを増減させたりすることが可能となる。ひいては、負荷の変化に合わせて素早く能力を拡張または縮小することが可能なシステムが提供される。
上述したシステムにおいては、オペレーティング・システム(以下、OSと参照する。)やソフトウェアがインストールされたファイルシステム・イメージ(以下、OSイメージと参照する。)をホストマシンに配布し(特許文献1,特許文献2)、各ホストマシン上でOSイメージから仮想機械をブートさせることによって、必要なサーバ・インスタンスが準備(プロビジョニング)される。そして、単一のOSイメージから複数の仮想機械がプロビジョニングされる場合、必要な数の仮想機械が起動するまで同一のブート・プロセスが繰り返されることになる。
一方、ブート・プロセスは、ランダムなディスク入出力(I/O;Input / Output)を発生させるため一般に遅いプロセスであり、多数のサーバ・インスタンスを起動させるためには時間が必要である。また、ブート・プロセスは、ディスクI/Oの帯域幅を消費し、同一リソース上で稼働する他の仮想機械に干渉する可能性もある。このような干渉は、他のサービス利用者のシステムに不都合を発生させる可能性があるため望ましくない。したがって、仮想機械の起動の高速化および効率化は、クラウド・サービスの差別化において重要なポイントとなる。
仮想機械の起動を高速化する試みとしては、稼働中の仮想機械のメモリやレジスタの値を含む仮想機械の作業状態情報を複製し、稼働中の仮想機械をクローンする手法が考えられる。この手法によれば、ブート・プロセスを省略することが可能となり、これによりディスクI/Oを低減することができると考えられる。しかしながら、長時間稼働している仮想機械は、IP(Internet Protocol)アドレスやアプリケーションの内部状態など、複製すべきではないステートフルな情報を保持しているため、上記仮想機械をそのままクローンしてしまうと、不具合があり妥当ではない。
その他、仮想機械の起動処理を高速化する技術として、プロセス仮想化の一種であるJVM(Java(登録商標) Virtual Machine)に関連して、特開2007−293730号公報(特許文献3)に開示される技術が知られている。特許文献1は、仮想機械が動作する情報処理装置において、アプリケーションの実行と同時にアプリケーションのデータ入出力を監視し、入出力の回数や種別および入出力データ量を記録し、一定の入出力記録からメモリダンプの妥当性とメモリダンプ方法を判定し、アプリケーションを実行中の仮想マシンのメモリイメージを全部もしくは一部をダンプする構成を採用する、仮想マシン実行可能な情報端末を開示する。
特許文献3に開示される技術は、情報端末上のJVMにおいて、アプリケーションのメモリダンプを取得して、アプリケーション起動時間を短縮するというプロセス仮想化に関する技術である。ブート・プロセス中、ファイルへの書き込み、画面出力装置への書き込み、キー入力などのいずれかのI/Oイベントが最初に発生した時点でJVMをサスペンドし、メモリダンプを取得する構成を採用する。しかしながら、プロセス仮想化の場合と異なりシステム仮想化においては、最初のI/Oはブート・プロセスの極めて初期の段階で発生してしまう。このため、上記特許文献3の手法をシステム仮想化に応用してみても、起動処理の高速化の効果はほとんど得ることができない。
また、特許文献1および特許文献2は、OSイメージのデプロイメントを効率化する技術を開示するものであるが、起動開始前の処理を対象とした技術であり、配布されたOSイメージからの起動処理を高速化することについては何ら開示するものではない。
また、上記ステートフルな情報に起因する不具合を念頭に、仮想機械起動後にネットワーク設定を書き換える手法も考え得る。しかしながら、ネットワーク設定がOSのカーネルやアプリケーションがアロケートされたメモリ内に書き込まれているため、そのようなソフトウェアの内部構造は外部から簡単に書き換えることができない。また、仮に書き換えられることができたとしてもOS環境に強く依存する手法となる。その他、非特許文献1に開示されるような管理ツールを使用して、仮想機械のクローンを作成し、仮想ディスク内のネットワーク設定の構成ファイルを変更したとしても、稼働中の仮想機械のネットワークを変更することはできない。したがって、結局のところ、同一ブート・プロセスを繰り返す必要がある。また、設定ファイルがメモリ上にキャッシュされている場合、仮想機械が起動中に仮想ディスク上のファイルだけを書き換えてしまうと、キャッシュ不整合を生じさせてしまう可能性がある。
特開2005−292922号公報 特開2009−230655号公報 特開2007−293730号公報
"RHEL5.4 KVM 仮想マシンの自動複製",[online],[2010年11月25日検索]インターネット<URL; http://www-06.ibm.com/jp/domino01/mkt/cnpages7.nsf/page/default-0004E0BB>
したがって、上述したIaaSにおいて、サーバ・インスタンスを迅速にサービス利用者に提供するために、単一のOSイメージに基づく複数の仮想機械を、短時間に、かつ、同一ホストマシン上で稼働中の他の仮想機械を圧迫することなく、起動させることが可能な、システム仮想機械のプロビジョニング手法が望まれていた。
本発明は、上記従来からの問題点に鑑みてなされたものであり、本発明は、単一のOSイメージに基づく複数の仮想機械を、短時間に、かつ同一ホストマシン上で稼働中の他の仮想機械を圧迫することなく準備することが可能な、情報処理システム、情報処理装置、仮想機械の準備方法、該情報処理装置を実現するためのプログラム、および該プログラムを記録する記録媒体を提供することを目的とする。
本発明は、上記従来技術の問題を解決するために、以下の特徴を有する情報処理システムを提供する。本情報処理システムは、1以上のコンピュータ装置と、ストレージ装置とを含む。上記1以上のうちのクローン元仮想機械を稼働させるコンピュータ装置は、クローン元仮想機械を仮想ネットワーク・インタフェースが切り離された状態で起動させて、該クローン元仮想機械の作業状態を表す作業状態情報を取得し、該作業状態情報および仮想ディスク情報を含むイメージを上記ストレージ装置に保存する制御を行う。また、上記1以上のうちのクローン先となるコンピュータ装置は、上記イメージを用いて、1以上のクローンの仮想機械を、仮想ネットワーク・インタフェースが切り離された状態で再開させ、再開後に仮想ネットワーク・インタフェースを取り付ける制御を行う。
上記起動制御は、より具体的には、ストレージ装置に保存されたイメージを当該コンピュータ装置上に複製し、当該コンピュータ装置で起動させるクローンの仮想機械それぞれについて、順次、上記作業状態情報に含まれる固有情報(例えば仮想機械を固有に識別する固定長の識別子や仮想機械固有に割り当てられる仮想ディスクの固定長のパス)を更新し、更新されたイメージから仮想機械を再開させる制御とすることができる。
さらに本発明によれば、上記情報処理システムにおける仮想機械の準備方法、クローン元コンピュータ装置およびクローン先コンピュータ装置、またはこれらのいずれか一方として動作させることができる情報処理装置、該情報処理装置を実現するためのプログラム、および該プログラムを記録する記録媒体を提供することができる。なお、上記ストレージ装置は、上記1以上のコンピュータ装置とネットワークを介して接続されるリポジトリ・サーバが備えてもよいし、上記1以上のコンピュータ装置のいずれかが備えるストレージ装置であってもよい。
上記構成によれば、クローン元仮想機械から取り込まれたイメージから、1以上の仮想機械が、ランダムなディスクI/Oを発生させる通常のブート・プロセスを経ずに、クローン元仮想機械の複製が再開するという形で、コンピュータ装置上に準備される。したがって、通常のブート・プロセスを経る場合に比較して、短時間に起動することができ、また、ディスクI/Oによる負荷が低減されるため、同一コンピュータ装置上で稼働中の他の仮想機械への干渉も低減される。
上記イメージは、仮想ネットワーク・インタフェースが切り離された状態で起動した後にクローン元仮想機械から取り込まれたものであるため、ネットワーク設定などのステートフルな情報を保持せず、ステートフルな情報も同一のクローンが同時動作する不具合も発生させない。また、仮想ネットワーク・インタフェースが取り付けられると、仮想機械のゲストOSが自動的に認識し、ネットワーク・アドレスの割り当てなどを行うため、OS非依存の手法と言える。
本発明の実施形態によるプロビジョニング・システムの概略図。 本実施形態におけるホストマシンのハードウェア構成およびソフトウェア構成を示すブロック図。 本発明の実施形態による仮想機械のプロビジョニング処理を説明する概念図。 本発明の実施形態によるプロビジョニング・システムにおいて実現される、取込処理に関連する機能ブロック図。 本発明の実施形態によるプロビジョニング・システムにおいて実現される、起動処理に関連する機能ブロック図。 本発明の実施形態によるプロビジョニング・システムにおいてクローン元ホストマシンが実行する取込処理を示すフローチャート。 本発明の実施形態によるプロビジョニング・システムにおいてクローン先ホストマシンが実行する起動処理を示すフローチャート。 ステートファイルの更新処理を説明する図。 キャプチャされたステートファイルを例示する図。 仮想機械の起動数に対してプロビジョニング処理にかかる所要時間をプロットしたグラフ。
以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。以下説明する実施形態では、1以上のコンピュータ装置とストレージ装置とを含む情報処理システムの一例として、複数のホストマシンと、ストレージ装置を備えるリポジトリ・サーバとを含み、インターネット経由のサービスとして利用者に対しコンピューティング能力を提供するクラウド環境において、該コンピューティング能力を提供する仮想機械を準備するためのプロビジョニング・システムを一例として説明する。
図1は、本発明の実施形態によるプロビジョニング・システムの概略図を示す。本プロビジョニング・システム100は、それぞれネットワーク102に接続されるホストマシン群104と、管理サーバ106と、リポジトリ・サーバ108とを含む。ホストマシン群104は、それぞれ、プロセッサやメモリなどのハードウェア・リソースを含み構成される1以上のホストマシン110a〜110dからなる。各ホストマシン110には、仮想化ソフトウェアがインストールされており、これによって、上記ホストマシン110により提供されるハードウェア・リソースが抽象化され、当該物理リソース上に、仮想化されたコンピュータ、すなわち仮想機械(Virtual Machine)が実現される。
リポジトリ・サーバ108は、オペレーティング・システム(以下、OSと参照する。)やソフトウェアがインストールされたファイルシステム・イメージ(以下、OSイメージと参照する。)を永続的に保存するための記憶領域を提供する。サービス利用者は、予め準備されている種々のOSイメージの中から、自らが使用するOSイメージを選択することができる。利用者は、さらに、テンプレートのOSイメージからカスタマイズしたカスタムOSイメージを作成し、上記リポジトリ・サーバ108へ保管することができる。通常のプロビジョニング方法では、OSイメージから所定のブート・プロセスを経て各仮想機械が起動される。
さらに、本発明の実施形態によるリポジトリ・サーバ108は、詳細は後述するように、稼働中の仮想機械からキャプチャされた、仮想メモリ(なお、本明細書においては、仮想化されて各仮想機械にアサインされたハードウェアについては、物理的なハードウェアと区別するため「仮想」を付して参照する場合がある。)のデータ等を含むキャプチャ・イメージを永続的に保存するための記憶領域を提供する。本発明の実施形態によるプロビジョニング方法によれば、詳細は後述するが、予め用意されたキャプチャ・イメージから1以上の仮想機械が起動される。
上記ネットワーク102は、サービス提供者側の内部ネットワークであり、特に限定されるものではないが、例えば、TCP/IPおよびイーサネット(登録商標)によるLAN(Local Area Network)を含むことができる。また他の実施形態では、ネットワーク102は、専用線を介して、またはVPN(Virtual Private Network)を用いて公衆回線を介して、異なるロケーションのLANが結合されて構成された、広域ネットワークとして構成されていてもよい。
上記ネットワーク102は、図示しないルータや、ファイヤウォールなどのセキュリティ・レイヤを介して、インターネット112に接続されている。管理サーバ106は、サービス利用者側の管理者に対し、サービスを利用するための管理ポータル・サイトを提供する。また、管理サーバ106は、サービス利用者側の管理者が上記管理ポータル・サイトを介して行う各種要求を処理する管理アプリケーションを備え、ホストマシン群104上に構築される仮想化環境に関する情報を収集および管理し、上記管理者からの要求に対応して、各ホストマシン110上で動作する仮想化ソフトウェアのリモート管理を行う。サービス利用者は、クライアント端末114を用いてインターネット112を介して管理サーバ106にアクセスし、当該サービスの管理ポータル・サイトから、仮想機械のキャプチャ・イメージの作成申請、仮想機械のプロビジョニング申請、仮想機械を増減させる契機とするトリガ条件の設定などを行うことができる。
管理サーバ106およびリポジトリ・サーバ108は、概ね、ワークステーション、ラックマウント型サーバ、ブレード型サーバなどの汎用コンピュータ装置として構成される。管理サーバ106およびリポジトリ・サーバ108は、より具体的には、シングルコア・プロセッサまたはマルチコア・プロセッサなどのCPU、キャッシュ・メモリ、RAM、ネットワーク・インタフェース・カード(NIC)、ストレージ・デバイスなどのハードウェア・リソースを備え、Windows(登録商標)、UNIX(登録商標)、LINUX(登録商標)などの適切なOSの制御の下、それぞれ、仮想化環境の管理インタフェースおよびストレージ・サービスとしての機能を提供する。
クライアント端末114は、概ね、タワー型、デスクトップ型、ラップトップ型またはタブレット型のパーソナル・コンピュータ、ワークステーション、ネットブック、PDA(Personal Data Assistance)などのコンピュータ装置として構成され、上記CPUなどのハードウェア・リソースを備えており、Windows(登録商標)、UNIX(登録商標)、LINUX(登録商標)、Mac OS(登録商標)、AIX(登録商標)などの適切なOSの制御の下動作する。本実施形態では、クライアント端末114は、上記OS上で動作するウェブ・ブラウザを実装する。
以下、仮想機械が稼働するホストマシン110の構成について説明する。図2は、本実施形態によるプロビジョニング・システムにおけるホストマシンのハードウェア構成およびソフトウェア構成を示すブロック図である。ホストマシン110は、概ね、ワークステーション、ラックマウント型サーバ、ブレード型サーバ、ミッドレンジ、メインフレームなどの汎用コンピュータ装置として構成される。ホストマシン110は、ハードウェア・リソース120として、中央演算装置(CPU)122と、メモリ124と、ハードディスク・ドライブ(HDD)やソリッド・ステート・ドライブ(SSD)などのストレージ126と、NIC128とを含む。
ホストマシン110は、ハードウェア・リソース120上で動作する、Xen(登録商標)、VMWare(登録商標)、Hyper−V(登録商標)などの仮想化ソフトウェアのハイパーバイザ(仮想機械モニタとも呼ばれることがある。)130を備え、このハイパーバイザ130上で、Windows(登録商標)、UNIX(登録商標)、LINUX(登録商標)などの種々のOSをゲストOSとした仮想機械132,138が稼働する。
なお、上記仮想化ソフトウェアは、図2に示すようなベアメタル型のアーキテクチャを採用することができるが、特に限定されるものではなく、他の実施形態では、ホスト型など他のアーキテクチャを採用することもできる。また、ハイパーバイザ130は、ベアメタル型のアーキテクチャを採用する場合、完全仮想化または準仮想化のいずれの方式を採用してもよく、デバイス・ドライバの実装方式としても、モノリシックカーネル型またはマイクロカーネル型のいずれの方式を採用してもよい。
仮想機械132は、ドメイン0またはペアレント・パーティションなどの呼ばれる管理用の仮想機械であり、管理用仮想機械132は、管理用OS134と、管理用OS134上で動作する制御モジュール136とを含んで構成される。制御モジュール136は、管理サーバ106からの指令を受信して、当該制御モジュール136が動作しているホストマシン110上のハイパーバイザ130に対しコマンドを発行するモジュールである。制御モジュール136は、例えば、管理サーバ106からの指令に応答して、ハイパーバイザ130に対し、ドメインUまたはチャイルド・パーティションなどと呼ばれるユーザドメインの仮想機械の作成やゲストOSの起動の命令を発行し、管理サーバ106による管理の下、仮想機械の動作を制御する。
仮想機械138a,138bは、サービス利用者に対しコンピューティング能力を提供するユーザドメインの仮想機械である。仮想機械138は、ゲストOS140と、該ゲストOS140上で動作する種々のアプリケーション142とを含む。仮想機械138に含まれるゲストOS140およびアプリケーション142は、サービス利用者に依存するものであり、如何なる組み合わせを採用することができる。上記アプリケーション142としては、ウェブ・サーバ、分散バッチ処理、データベース管理、画像処理などを実行する種々のアプリケーションを採用することができるが、特に限定されるものではない。仮想機械138は、備えているアプリケーション142に応じて、ウェブ・サーバや分散バッチ処理システムにおけるデータ・ノードのインスタンスとして機能する。
上記仮想機械138は、サービス利用者からの仮想機械のプロビジョニング申請に応答して、またはサービス利用者が設定した仮想機械を増加させる契機とするトリガ条件が満たされたことに応答して、所定の方法によりプロビジョニングされる。プロビジョニングが完了した以降は、サービス利用者は、管理サーバ106を経由せずにインターネット112から仮想機械138に直接アクセスできるようになる。仮想機械138へのアクセス方法は、特に限定されるものではないが、ターミナル・エミュレータによりアクセスすることができる。また、仮想機械138がウェブ・アプリケーションを備える場合には、上記プロビジョニングによりウェブ・サイトが構築されるため、ブラウザを用いてサイトにログインすることでアクセスすることもできる。
本発明の実施形態によるプロビジョニング・システム100においては、仮想機械のプロビジョニング方法として、予め用意されたOSイメージから所定のブート・プロセスを経て仮想機械138を起動させる通常の方法に加えて、通常のブート・プロセスを経ずに稼働中の仮想機械から取込まれたキャプチャ・イメージを用いて仮想機械138を起動させる方法が設けられている。以下、本発明の実施形態による仮想機械のプロビジョニング処理の詳細について、図3〜図9を参照しながら説明する。
図3は、キャプチャ・イメージを用いて複数の仮想機械をホストマシン群104上にプロビジョニングする、本発明の実施形態による仮想機械のプロビジョニング処理を説明する概念図である。本発明の実施形態によるのプロビジョニング処理によれば、指定された仮想機械から複製された1以上のクローンの仮想機械が、ホストマシン群104上に起動される。当該プロビジョニング処理は、前提となるキャプチャ・イメージを作成する取込処理と、キャプチャ・イメージから仮想機械を起動する起動処理とから構成される。
上記取込処理は、クローン元の仮想機械が動作するホストマシン110(例えばホストマシン110a)上で実行され、当該取込処理により、クローン元仮想機械のキャプチャ・イメージが作成される。本発明の実施形態による取込処理では、より具体的には、稼働中(Running)のクローン元仮想機械を一旦シャットダウンし(Stop)、仮想NICが切り離された状態で再び起動し(Boot)、起動直後の状態でクローン元仮想機械をサスペンド(Suspend)し、キャプチャ・イメージを一旦ストレージ装置に記憶させる。作成されたキャプチャ・イメージは、リポジトリ・サーバ108へ保存されて(Copy)、クローン先のホストマシン110への配布の用に供される。
上記キャプチャ・イメージは、より具体的には、デバイス・コンフィギュレーション、仮想機械の仮想CPUのレジスタ値および仮想メモリのデータを含む作業状態情報と、仮想機械の仮想ルートディスクのデータを含む仮想ディスク情報とからなる。上記作業状態情報は、ホストマシン110上のハイパーバイザ130により、VMステートファイル(以下、単にステートファイルとして参照する。)として取得される。なお、仮想NICが切り離された状態で再起動した直後の仮想機械にはIPアドレスが割り当てられておらず、したがって、起動直後の状態で取り込まれたキャプチャ・イメージには、ステートフルな情報である仮想NICのネットワーク設定に関する情報が含まれない。
仮想ディスク情報は、OS等がインストールされた仮想ルートディスクの内容そのものとしてもよいが、イメージの作成時間短縮およびサイズ削減の観点からは、ハイパーバイザ130が有するコピー・オン・ライト機能による仮想ルートディスクのディスク・スナップショット(以下、単にスナップショットと参照する。)を用いることができる。
上記起動処理は、クローン先の各ホストマシン110上で実行され、当該起動処理により、各ホストマシン110上に、単一のキャプチャ・イメージから1以上のクローンの仮想機械が起動される。本発明の実施形態による起動処理では、より具体的には、まず、各ホストマシン110が、リポジトリ・サーバ108から自己のストレージ126上へステートファイルおよびスナップショットを複製する(Copy)。なお、図3に示す例では、ホストマシン110a,110bがクローン先コンピュータ装置とされており、ホストマシン110a,110bにキャプチャ・イメージが複製されている。しかしながら、ホストマシンA110aのようにクローン元およびクローン先の両方のコンピュータ装置として動作する場合には、リポジトリ・サーバ108を経由した複製処理は必ずしも必要ではない。
本発明の実施形態による起動処理では、続いて、全体として要求された数の仮想機械が起動するまで、各ホストマシン110が、各仮想機械用にステートファイルの更新および仮想ルートディスクのスナップショットの新規作成を行い(Clone)、上記更新されたステートファイルから仮想機械を再開し(Resume)、再開後の所定のカスタマイズ処理を施す処理を繰り返す。上記キャプチャ・イメージから再開された各クローンの仮想機械は、仮想NICが切り離された状態であり、IPアドレスが割り当てられていない。このため、各ホストマシン110は、上記カスタマイズ処理として、各クローンの仮想機械に仮想NICを取り付ける処理を行う。これにより、各クローンの仮想機械のゲストOSは、それぞれ、プラグ・アンド・プレイで、取り付けられた仮想NICを認識し、IPアドレスの割り当てを行う。
以下、プロビジョニング・システム100の機能ブロック図を参照しながら、本発明の実施形態による仮想機械のプロビジョニング処理について詳細を説明する。図4は、本発明の実施形態によるプロビジョニング・システムにおいて実現される、取込処理に関連する機能ブロックを示す図である。図4には、管理サーバ106と、リポジトリ・サーバ108と、クライアント端末114と、クローン元仮想機械138Sが動作するホストマシン110Sとが示されている。
管理サーバ106は、サービス管理用のインタフェースを提供する管理ポータル172と、サービス利用者により管理ポータル172を介して行われる各種要求を処理する管理アプリケーション174とを含む。本実施形態の管理ポータル172は、ウェブ・サーバとして実装され、サービス利用者側の管理者は、クライアント端末114のブラウザ170を用いてHTTPプロトコルにより、当該管理ポータル172にアクセスし、管理メニューから種々の要求を行うことができる。上述した要求としては、仮想機械に導入するOSイメージの選択、仮想機械のスペックの選択を始めとして、仮想機械のキャプチャ・イメージの作成申請、仮想機械のプロビジョニング申請、仮想機械を増減させる契機とするトリガ条件の設定などが含まれる。なお、管理ポータル172および管理アプリケーション174は、それぞれ、本発明の実施形態における受付部および準備指令部を構成する。
なお、説明の便宜上、ここでは、サービス利用者側管理者によりクローン元仮想機械のOSイメージおよびスペックが選択済みであり、クローン元仮想機械138Sがホストマシン110S上で既に稼働しているものとして説明する。サービス利用者側の管理者が、管理ポータル172を介してクローン元仮想機械138Sのキャプチャ・イメージの作成申請を行うと、リクエストが管理ポータル172から管理アプリケーション174に渡され、管理アプリケーション174は、クローン元ホストマシン110Sに対し、取込処理実行を指令する。
ホストマシン110上で動作する制御モジュール136は、管理サーバ106やリポジトリ・サーバ108との通信を管理する通信管理部150と、取込処理を行う取込制御部152とを含み構成される。なお、取込制御部152は、本発明の実施形態における保存制御部を構成する。通信管理部150が管理アプリケーション174から取込処理実行の指令を受信すると、取込制御部152に当該指令が渡される。上記取込処理実行の指令には、クローン先仮想機械138Sを特定する識別情報が含まれており、取込制御部152は、指定されたクローン元仮想機械138Sのキャプチャ・イメージを作成する処理を開始する。
取込制御部152は、より詳細には、クローン元仮想機械138Sの再起動を行う再起動部154と、クローン元仮想機械138Sの取り込みを行うイメージ取込部156と、キャプチャ・イメージをリポジトリ・サーバ108へ保存するイメージ保存部158とを含む。再起動部154は、ハイパーバイザ130に対し、稼働中のクローン元仮想機械138Sのシャットダウン命令(Stop)を発行し、キャプチャ・イメージの作成に備えて仮想NICが切り離された状態で起動するよう仮想機械の定義ファイルを書き換えた上で、クローン元仮想機械138Sの再起動命令(boot)を発行する。
キャプチャ・イメージは、仮想メモリの内容を作業状態情報として含むものであるが、クローン元仮想機械138Sの仮想メモリが未使用の領域を多く含むと、その分だけキャプチャ・イメージが余分に肥大することになる。そこで、好適な実施形態では、クローン元仮想機械138Sの再起動命令を発行する前に、該仮想機械にアサインされた仮想メモリのサイズを縮小するよう上記仮想機械の定義ファイルをさらに書き換えることができる。
上記仮想メモリのサイズを事前に縮小しておくことにより、クローン元仮想機械にアサインされた記憶容量のうち、未使用の領域分が削減され、イメージの保存時間、複製時間が短縮され、起動処理におけるディスクI/Oを低減することができる。また、クローン元仮想機械138Sにデータ・ディスクが取り付けられている場合には、クローン元仮想機械138Sの再起動命令を発行する前に、データ・ディスクを切り離すよう仮想機械の定義ファイルを書き換えてもよい。
イメージ取込部156は、クローン元仮想機械138Sが、仮想NICが切り離された状態で起動した直後に、ハイパーバイザ130に対し、サスペンド命令(Suspend)ないしハイバネーション命令(Hibernate)を発行する。なお、ここにいう起動直後の状態とは、クローン元仮想機械138Sが、仮想NICが切り離され、適宜仮想メモリ146Sが縮小され、データ・ディスクが切り離されていることを除き、通常の稼働状態となった状態をいう。また、アプリケーション142が、追加されたNICを認識して動的に設定を行う機能を備える場合には、当該アプリケーション142が起動した状態をいう。例えば、仮想機械がウェブ・サーバのインスタンスとして動作する場合、ウェブ・サーバが追加NICの動的な設定を行う機能を有する場合には、ウェブ・サーバが稼働した後の状態をいう。
サスペンド命令を受け取ると、ハイパーバイザ130は、クローン元仮想機械138Sの稼働を停止し、その仮想CPU144Sのレジスタ値および仮想メモリ146Sのデータを、ステートファイル160としてストレージ126に書き出す。イメージ保存部158は、ストレージ126に記憶されたステートファイル160を読み出し、さらに仮想ルートディスク148Sのスナップショット162を取得し、通信管理部150を介して、リポジトリ・サーバ108へキャプチャ・イメージの保存依頼を行う。リポジトリ・サーバ108のリポジトリ管理部180は、保存依頼に応答して、ステートファイル184およびスナップショット186をリポジトリ182内に保存する。
なお、上記スナップショット162,186は、仮想ルートディスク148Sからコピー・オン・ライトで取得される差分データであるが、仮想ルートディスク148Sの基本となるベース仮想ディスクイメージは、例えばリポジトリ182内に予め保存され、クローン先ホストマシン110Tへの配布の用に供される。このように、仮想ルートディスク148Sの内容を、ホストマシン110間で事前に共有されるベース仮想ディスクイメージ188と、最新状態を反映するスナップショット186とに分離して管理することにより、キャプチャ・イメージの作成時間を短縮し、またイメージのサイズを削減することができる。
図5は、本発明の実施形態によるプロビジョニング・システムにおいて実現される、起動処理に関連する機能ブロックを示す図である。図5には、管理サーバ106と、リポジトリ・サーバ108と、クローン先となるホストマシン110Tとが示されている。
サービス利用者が、管理ポータル172を介してキャプチャ・イメージからの仮想機械のプロビジョニング申請を行うと、リクエストが管理ポータル172から管理アプリケーション174に渡される。管理アプリケーション174は、リクエストを受け取ると、ホストマシン群104の中からクローン先とするホストマシン110Tを決定し、該クローン先ホストマシン110Tに対し起動処理実行を指令する。
なお、クローン先ホストマシン110Tは、プロビジョニング申請の際に管理者が指定した仮想機械数や仮想機械を実行させるロケーション(地域や地域内の区画)などのユーザ指定情報と、各ホストマシン110の配備されるロケーションや負荷状況などの環境情報に応じて決定されるが、特に限定されるものではない。また、決定されるクローン先ホストマシン110Tは、1つに限定されるものではなく、全体として求められた数の仮想機械を準備するべく、任意の数のクローン先ホストマシン110Tが決定される。
クローン先ホストマシン110T上で動作する制御モジュール136は、通信管理部150と、起動処理を行う起動制御部190とを含む。通信管理部150が管理アプリケーション174から起動処理実行の指令を受信すると、起動制御部190に当該指令が渡される。上記起動処理実行の指令には、当該クローン先ホストマシン110T上に準備すべき仮想機械の数(以下、必要数と参照する。)と、キャプチャ・イメージを特定する情報が含まれており、起動制御部190は、指定されたキャプチャ・イメージから必要数のクローンの仮想機械を起動する処理を開始する。
起動制御部190は、より詳細には、ベースイメージ取得部192と、イメージ複製部194と、イメージ更新部196と、再開部198と、インタフェース取付部200と、カスタマイズ部202とを含み構成される。ベースイメージ取得部192は、リポジトリ・サーバ108からベース仮想ディスクイメージ188を予め取得し、ストレージ126に記憶する。イメージ複製部194は、リポジトリ・サーバ108からリポジトリ182内のステートファイル184とスナップショット186を取得し、ストレージ126に記憶する。
イメージ更新部196は、準備すべきクローンの仮想機械毎に、ストレージ126に複製されたステートファイル204に含まれる仮想機械固有の情報(以下、固有情報と参照する)を更新し、取得したスナップショット206を複製して各クローンの仮想機械用にスナップショットを作成する。上記更新される固有情報としては、仮想機械を識別するVMID(Virtual Machine IDentifier)、仮想機械にアサインされる仮想ルートディスクのパスが挙げられる。また、上記VMIDや仮想ルートディスクのパス以外にも、例えば仮想機械の名称など他の固有な情報がある場合には、それらも更新する。各クローン仮想機械の仮想ルートディスク148Sは、ベース仮想ディスクイメージ208と、クローン仮想機械毎に作成されたスナップショットとから復元される。
再開部198は、準備すべきクローン仮想機械毎に、ハイパーバイザ130に対し、更新されたステートファイル204からのレジューム命令(Resume)を発行する。ハイパーバイザ130は、レジューム命令に応答して、更新されたステートファイル204から、仮想CPU144Tのレジスタ値を復元し、仮想メモリ146Tのデータを復元し、仮想機械138Tを復帰させる。
なお、仮想機械138Tは、クローン元仮想機械138Sからキャプチャ・イメージが作成された直前の状態、つまり仮想NICの取り付け、適宜仮想メモリの拡大およびデータ・ディスクの取り付けを除いて、通常の稼働状態となった状態から再開される。仮想機械138Tのアプリケーション142が、追加されたNICを認識して動的に設定を行う機能を備える場合には、当該アプリケーション142が起動した状態から再開される。
インタフェース取付部200は、クローン仮想機械138Tが、仮想NICが切り離された状態で復帰した後、ハイパーバイザ130に対し、当該クローン仮想機械138Tへの仮想NICの取り付け指令を発行する。当該仮想機械138Tへ仮想NICが取り付けられると、そのゲストOSが仮想NICを認識し、IPアドレスの割り当てなどネットワーク設定を行う。また、仮想機械138Tがウェブ・サーバのインスタンスとして動作し、当該ウェブ・サーバが追加NICの動的な設定を行う機能を有する場合には、当該ウェブ・サーバは、上記仮想NICの取り付けに応答して、認識された仮想NICに対しネットワーク設定を行い、サービスを開始する。
カスタマイズ部202は、準備すべき仮想機械毎に、仮想NIC取り付けの以外のカスタマイズ処理を実施する。上記他のカスタマイズ処理としては、仮想メモリ146Tのリサイズや、データ・ディスクの取り付け、他のカスタム・スクリプトの実行を含むことができる。この場合、カスタマイズ部202は、適宜、仮想メモリ146Tの拡大やデータ・ディスクの取り付けなどの命令をハイパーバイザ130に発行する。当該クローン仮想機械138Tの仮想メモリ146Tのリサイズが行われると、当該仮想機械138TのゲストOSは、記憶領域が変更されたことを認識する。また、クローン仮想機械138Tにデータ・ディスクが取り付けられると、当該仮想機械138TのゲストOSは、当該データ・ディスクを認識し、コンフィグレーションする。
上記取込処理の際に仮想メモリ146Sのサイズを縮小した上でキャプチャ・イメージを作成しておき、上記起動処理の際に仮想メモリ146Tのサイズを元のサイズに拡大する構成によって、キャプチャ・イメージのサイズを削減し、ひいては、プロビジョニング時のディスクI/Oをより低減し、同一ホストマシン上の他の仮想機械への干渉をより低減することができる。
上記イメージ更新部196、再開部198、インタフェース取付部200およびカスタマイズ部202による処理が、準備するべき仮想機械の数分繰り返されることにより、クローン先ホストマシン110T上に、必要数の仮想機械がプロビジョニングされる。なお、上記イメージ更新部196、再開部198、インタフェース取付部200およびカスタマイズ部202が実行する処理は、各仮想機械毎に並列に行うこともできる。しかしながら、詳細は後述するが、ステートファイル204を効率的に再利用する観点からは、少なくとも上記イメージ更新部196および再開部198が行うステートファイルの更新およびクローン仮想機械の再開の処理については、各仮想機械毎に、異なるホストマシン間では、並列で実行し、同一ホストマシン上では、順番に行われることが望ましい。
以下、図6および図7を参照しながら、本発明の実施形態において行われるプロビジョニング処理の流れについて、より詳細に説明する。図6は、本発明の実施形態によるプロビジョニング・システムにおいて、クローン元ホストマシン110Sが実行する取込処理を示すフローチャートである。図6に示す処理は、サービス利用者側の管理者により管理サーバ106にキャプチャ・イメージ作成申請が行われ、管理サーバ106から取込処理実行の指令が発行されたことに応答して、ステップS100から開始される。
ステップS101では、ホストマシン110Sは、管理サーバ106から、クローン元仮想機械138Sが指定される取込処理実行の指令を受信する。ステップS102では、ホストマシン110Sは、再起動部154により、指定されたクローン元仮想機械138Sをシャットダウンし、クローン元仮想機械138Sの定義ファイルの複製を作成し、NIC未接続、データ・ディスク未接続およびメモリ最小の状態となるよう該定義ファイルの複製を改変する。ステップS103では、ホストマシン110Sは、再起動部154により、改変されたクローン元仮想機械138Sの定義ファイルを用いて、NICおよびデータ・ディスクが切り離され、メモリ最小構成の状態で、クローン元仮想機械138Sをブートさせる。
ステップS104では、ホストマシン110Sは、イメージ取込部156により、起動した直後の状態でクローン元仮想機械138Sをキャプチャし、ステートファイル160およびスナップショット162をストレージ126に書き出す。ステップS105では、ホストマシン110Sは、イメージ保存部158により、クローン元仮想機械138Sのステートファイル160をリポジトリ・サーバ108へコピーし、ステップS106で、仮想ルートディスクのスナップショット(コピー・オン・ライト・データ)162をリポジトリ・サーバ108へコピーする。ステップS107では、ホストマシン110Sは、取込処理完了応答を管理サーバ106へ送信し、ステップS108で本取込処理を終了する。
図7は、本発明の実施形態によるプロビジョニング・システムにおいて、クローン先ホストマシン110Tが実行する起動処理を示すフローチャートである。図7に示す処理は、サービス利用者側から管理サーバ106にプロビジョニング申請が行われ、または予め設定された仮想機械を増加させる契機とするトリガ条件が満たされ、管理サーバ106から当該クローン先ホストマシン110Tに起動処理実行の指令が発行されたことに応答して、ステップS200から開始される。
なお、上記トリガ条件は、特に限定されるものではないが、仮想マシンのCPU使用率、ネットワーク負荷やディスク使用量などの指標値に対する条件とすることができる。例えば、サービス利用者のシステムにおいて、ウェブ・サーバのインスタンスにかかる平均ネットワーク負荷をモニタし、平均負荷が一定以上となることを条件として、ウェブ・サーバのインスタンスを追加する条件を設けることができる。これにより、過渡的なアクセス量の増加に対応してシームレスにウェブ・システムの規模を拡大することが可能となる。
ステップS201では、クローン先ホストマシン110Tは、当該ホストマシン110T上に準備すべき仮想機械の必要数およびクローン元キャプチャ・イメージが指定された起動処理実行の指令を受信する。ステップS202では、ホストマシン110Tは、必要数分の新規VMIDを生成し、ステップS203で、必要数分の新規VM名を生成し、ステップS204で、各新規VMID用に仮想機械の仮想ルートディスクを格納するための各新規ディレクトリを作成する。
ステップS205では、ホストマシン110Tは、当該ホストマシン110Tのストレージ126にベース仮想ディスクイメージ208が存在するか否かを判定する。ステップS205で、ベース仮想ディスクイメージ208が存在しないと判定された場合(NO)には、ステップS206へ処理が進められる。ステップS206では、ホストマシン110Tは、ベースイメージ取得部192により、ベース仮想ディスクイメージ188をリポジトリ・サーバ108から取得し、ストレージ126に記憶し、ステップS207へ処理を進める。
一方、ステップS205で、ベース仮想ディスクイメージ208がキャッシュされており、存在すると判定された場合(YES)には、ステップS207へ直接処理が進められる。ステップS207では、ホストマシン110Tは、イメージ複製部194により、リポジトリ・サーバ108からステートファイル184およびスナップショット186を取得し、ストレージ126にコピーする。
ステップS208では、ホストマシン110Tは、イメージ更新部196により、ステートファイル204中のVMID、VM名および仮想ルートディスクのパスを、上記ステップS202〜S204で作成された各新規VMID、各新規VM名および各新規ディレクトリのパスで更新する。
図8は、ステートファイルの更新処理を説明する図である。図9は、キャプチャされたステートファイルを例示する図である。図8および図9に示すように、ステートファイルは、メタデータ部(State File Metadata)と、CPUのレジスタ値(Register Values)を含むCPUデータ部(CPU State)と、カーネル領域(Kernel Pages)およびユーザ領域(User pages)を含むメモリデータ部(Memory Page Contents)とから構成されるシーケンシャル・データである。
上記メタデータ部には、仮想機械を固有に識別する識別子(VMID)が格納されるフィールド、仮想ルートディスクのパス(Virtual Root Disk Path)が格納されるフィールドおよびデバイス・コンフィギュレーションが記述される領域(Device Configuration)が含まれる。図9においては、ステートファイル中、太字で「xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx」と示されている部分が、クローン元仮想機械のVMID、VM名(図9では、VMIDと同一とされている)および仮想ルートディスクのパス中に含まれるVMIDの文字列を表す。
ステートファイルが、メタデータ部、CPUデータ部およびメモリデータ部が連続して構成されるシーケンシャル・データであるため、ステートファイル中のVMIDおよび仮想ルートディスクのパスの更新によってこれらの長さが変化してしまうと、ステートファイル全体を書き換える必要が生じる。つまり、仮想機械毎にステートファイルを準備する必要が生じる。一方、VMIDおよび仮想ルートディスクのパスを固定長とすることによって、更新によっても上記文字列の長さが変化せず、ひいては、クローンの仮想機械の再開が完了する毎に、単一のステートファイルを更新することで、次のクローンの再開に必要なステートファイルを得ることができるようになる。
そこで、好適な実施形態では、VMIDとしては、固定長のUUID(Universally Unique IDentifier)文字列を用いることができ、ステップS202では、uuidgenプログラムその他のライブラリを用いることによって、仮想機械固有な、ランダムでかつ固定長の識別子を生成することができる。新規VM名についても同様に、ステップS203では、同様のライブラリを用いて仮想機械固有なランダムでかつ固定長の名称を生成することができる。
各新規VMID用の仮想ルートディスクのパスについても同様に、ステップS204では、上記固定長のVMIDを一部に含ませてパスを生成することによって、仮想機械固有な固定長のパスを生成することができる。そして、ステップS208では、ステートファイル204中のVMID、VM名および仮想ルートディスクのパスを、作成された固定長の新規VMID、新規VM名および新規ディレクトリのパスによってインプレイスで置き換えることにより、ファイルサイズを変更せずに、また仮想機械毎にステートファイルを複製することなく、必要な仮想機械毎のステートファイルを用意することができる。図9においては、ステートファイル中、太字で「xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx」と示されている部分が、新規生成されたVMID(VM名)で単に置き換えられるだけで、各仮想機械を起動するに必要なステートファイルが用意される。
ステップS209では、ホストマシン110Tは、再開部198により、更新されたステートファイル204から、仮想CPU144Tおよび仮想メモリ146Tを復元し、クローン仮想機械を再開させる。ステップS210では、ホストマシン110Tは、インタフェース取付部200により、稼働を再開した仮想機械に仮想NICを取り付ける。ステップS210に応答して、ステップS211では、稼働を再開させた仮想機械のゲストOS140は、取り付けられた仮想NICを検出し、IPアドレスを割り当てる。
ステップS212では、ホストマシン110Tは、カスタマイズ部202により、稼働を再開させた仮想機械にデータ・ディスクを取り付ける。ステップS212に応答して、ステップS213では、稼働を再開させた仮想機械のゲストOS140は、取り付けられたデータ・ディスクを検出し、コンフィグレーションを行う。ステップS214では、ホストマシン110Tは、カスタマイズ部202により、稼働を再開させた仮想機械の仮想メモリ146Tをリサイズする。ステップS214に応答して、ステップS215では、稼働を再開させた仮想機械のゲストOS140は、変更されたメモリサイズを認識する。
ステップS216では、ホストマシン110Tは、必要数のクローン仮想機械が起動したか否かを判定する。ステップS216で、必要数のクローンの仮想機械が未だ起動していないと判定された場合(NO)には、ステップS208へ処理をループさせ、必要数の仮想機械が起動するまで処理を繰り返させる。したがって、図8および図9に示すステートファイル中のVMID文字列(太字で「xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx」と示されている部分)が、各仮想機械用に作成された新規VMIDで、順次、置き換えられ、更新されたステートファイルから、順次、各仮想機械の再開が行われる。
一方、ステップS216で、必要数のクローンの仮想機械が起動したと判定された場合(YES)には、ステップS217へ処理を進める。ステップS217では、ホストマシン110Tは、起動処理完了応答を管理サーバ106へ送信し、ステップS218で本起動処理を終了する。
以上説明した実施形態によれば、クローン元仮想機械138Sから取り込まれたキャプチャ・イメージから、1以上の仮想機械138Tが、ランダムなディスクI/Oを発生させる通常のブート・プロセスを経ずに、クローン元仮想機械の複製が再開するという形で、ホストマシン110上に準備される。したがって、通常のブート・プロセスを経る場合に比較して、短時間に起動することができ、また、ディスクI/Oによる負荷が低減されるため、同一ホストマシン110上で稼働中の他の仮想機械への干渉も低減される。
上記キャプチャ・イメージは、仮想NICが切り離された状態で起動した後にクローン元仮想機械138Sから取り込まれたものであるため、ネットワーク設定などのステートフルな情報を保持せず、ステートフルな情報も同一のクローンが同時動作する不具合も発生させない。また、仮想NICが取り付けられると、仮想機械のゲストOSが自動的に認識し、IPアドレスの割り当てなどを行うため、OS非依存の手法と言える。
なお、上述した実施形態では、ステートファイル、スナップショット、ベース仮想ディスクイメージは、それぞれ、リポジトリ・サーバ108を介して各ホストマシン110に配布されるものとして説明してきが、必ずしも、リポジトリ・サーバ108を介して配布される必要はない。他の実施形態では、クローン元ホストマシン110Sおよび1以上のクローン先ホストマシン110T間で、ピア・ツー・ピアの通信方式により、上記ステートファイル、スナップショット、ベース仮想ディスクイメージを共有する構成を採用してもよい。
以下、本発明の実施形態によるプロビジョニング処理を具体的な実施例をもって説明するが、本発明は後述する実施例に限定されるものでもない。
(実施例)
上記実施形態によるプロビジョニング・システム100を、複数のコンピュータ装置からなるコンピュータ・システム上に実現するためのプログラムを作成し、所定数の仮想機械がプロビジョニングされるまでの時間を計測し、従来の手法と比較して、本発明の実施形態によるプロビジョニング手法の評価を行った。
ホストマシン110としては、それぞれ8つのコア、24GBのDDR3(Double Data Rate 3)のRAM、500GBのHDDの物理リソースからなるIBM社のIBM(登録商標)BladeCenter(登録商標)HS22を、合計4台使用して、ホストマシン群104を構成した。リポジトリ・サーバ108としては、IBM社のIBM(登録商標)BladeCenter(登録商標)HS21を使用した。4台のホストマシン(HS22)およびリポジトリ・サーバ(HS21)は、CFFh高速拡張スロットに、10GbE(10ギガビット・イーサネット(登録商標))のネットワーク拡張カードを挿入して相互に接続した。仮想化ソフトウェアは、Xen(登録商標)を使用した。仮想機械は、ゲストOSとして、Linux(登録商標)のカーネルイメージを用い、1コアの仮想CPU、512MBの仮想メモリ、10GBの仮想ストレージの構成とした。
ベース仮想ディスクイメージは、予め、各ホストマシン110に配布し、VMステートファイルと、対応するコピー・オン・ライト・データ(スナップショット)をリポジトリ・サーバ108に保存した。プロビジョニング処理の際には、リポジトリ・サーバ108からホストマシン110それぞれに、VMステートファイルと、コピー・オン・ライト・データ(スナップショット)とをコピーし、これを用いて、全体として1,2,4,8,16,32,64個の仮想機械を順次起動させた。そして、それぞれの場合について、仮想機械すべての起動が完了するまでの所要時間を計測した。図10は、本発明の実施形態によるプロビジョニング処理でかかった所要時間を、仮想機械の起動数に対してプロットしたグラフを示す。
(比較例)
物理リソース、仮想化ソフトウェアおよび仮想機械の構成は、上記実施例と同一構成とした。OSイメージは、予めホストマシン110に配布し、OSイメージから通常のブート・プロセスを経て、1,2,4,8,16,32,64個の仮想機械を起動させ、それぞれの場合について、仮想機械すべての起動が完了するまでの所要時間を計測した。なお、各仮想機械のブート・プロセスは並列処理とした。図10には、比較例のプロビジョニング処理による所要時間を、仮想機械の起動数に対してプロットした。
(考察)
図10に示されるように、実施例によるプロビジョニング処理では、仮想機械数が64までの範囲にわたって、全体として、比較例によるプロビジョニング手法の場合にかかる時間より短い時間で仮想機械の起動が完了することが実証された。また、多数側の領域において特に起動時間の短縮の効果が大きいことが顕著に示された。
以上説明したように、本発明の実施形態によれば、単一のOSイメージに基づく複数の仮想機械を、短時間に、かつ同一ホストマシン上で稼働中の他の仮想機械を圧迫することなく準備することが可能な情報処理システム、情報処理装置、仮想機械の準備方法、該情報処理装置を実現するためのプログラム、および該プログラムを記録する記録媒体を提供することができる。
本発明の実施形態によるプロビジョニング・システムは、コンピュータ実行可能なプログラムを、コンピュータ装置にロードして各機能部を実現することにより提供される。このようなプログラムとしては、例えば、FORTRAN、COBOL、PL/I、C、C++、Java(登録商標)、Java(登録商標)Beans、Java(登録商標)Applet、Java(登録商標)Script、Perl、Rubyなどのレガシー・プログラミング言語や、オブジェクト指向プログラミング言語などで記述された、コンピュータ実行可能なプログラムにより実現でき、装置可読な記録媒体に格納して頒布することができる。
これまで本発明を図面に示した実施形態および実施例をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。
100…プロビジョニング・システム、102…ネットワーク、104…ホストマシン群、106…管理サーバ、108…リポジトリ・サーバ、110…ホストマシン、112…インターネット、114…クライアント端末、120…ハードウェア・リソース、122…CPU、124…メモリ、126…ストレージ、128…NIC、130…ハイパーバイザ、132…管理用仮想機械、134…管理用OS、136…制御モジュール、138…仮想機械、140…ゲストOS、142…アプリケーション、144…仮想CPU、146…仮想メモリ、148…仮想ルートディスク、150…通信管理部、152…取込制御部、154…再起動部、156…イメージ取込部、158…イメージ保存部、160,184,204…ステートファイル、162,186,206…スナップショット、170…ブラウザ、172…管理ポータル、174…管理アプリケーション、180…リポジトリ管理部、182…リポジトリ、188,208…ベース仮想ディスクイメージ、190…起動制御部、192…ベースイメージ取得部、194…イメージ複製部、196…イメージ更新部、198…再開部、200…インタフェース取付部、202…カスタマイズ部

Claims (18)

  1. 1以上のコンピュータ装置と、ストレージ装置とを含む情報処理システムであって、
    クローン元仮想機械を稼働させるコンピュータ装置が含む保存制御部であって、前記クローン元仮想機械を仮想ネットワーク・インタフェースが切り離された状態で起動させて、該クローン元仮想機械の作業状態を表す作業状態情報を取得し、前記作業状態情報および仮想ディスク情報を含むイメージを前記ストレージ装置に保存する制御を行う保存制御部と、
    クローン先となるコンピュータ装置が含む起動制御部であって、前記イメージを用いて、1以上のクローンの仮想機械を仮想ネットワーク・インタフェースが切り離された状態で再開させ、前記1以上のクローンの仮想機械に仮想ネットワーク・インタフェースを取り付ける制御を行う起動制御部と
    を含む、情報処理システム。
  2. 前記起動制御部は、前記ストレージ装置に保存された前記イメージを当該コンピュータ装置上に複製し、当該コンピュータ装置で起動させる前記クローンの仮想機械それぞれについて、順次、前記作業状態情報に含まれる固有情報を更新し、更新されたイメージから仮想機械を再開させる制御を行う、請求項1に記載の情報処理システム。
  3. 前記保存制御部は、前記作業状態情報を取得する前に、前記クローン元仮想機械の仮想メモリのサイズを縮小する処理を実施し、前記起動制御部は、前記クローンの仮想機械それぞれについて、再開後さらに、仮想メモリのリサイズを含むカスタマイズ処理を実施する、請求項2に記載の情報処理システム。
  4. 前記仮想ディスク情報は、前記クローン元仮想機械の仮想ディスクのスナップショットを含み、前記クローン先となるコンピュータ装置は、それぞれ、前記クローン元仮想機械の前記仮想ディスクの前記スナップショットが表す差分の基礎となるディスクイメージを記憶する記憶部を備える、請求項3に記載の情報処理システム。
  5. 前記固有情報は、仮想機械を固有に識別する固定長の識別子と、仮想機械固有に割り当てられる仮想ディスクの固定長のパスを含み、前記イメージは、シーケンシャルであり、前記固有情報の更新は、前記イメージのサイズを変更せずに、前記イメージ中の識別子およびパスを、起動させるクローンの仮想機械固有の識別子およびパスで置き換える処理を含む、請求項2に記載の情報処理システム。
  6. 前記情報処理システムは、
    仮想機械の準備申請または仮想機械を増加させる契機となる条件の設定を受け付ける受付部と、前記準備申請を受け付けたことまたは前記条件が満たされたことに応答して、コンピュータ装置が含む前記起動制御部それぞれに対し、必要数の仮想機械の準備指令を発する準備指令部とを含む管理サーバをさらに含む、請求項1に記載の情報処理システム。
  7. 前記情報処理システムは、
    前記ストレージ装置に保存される仮想機械のイメージを管理するリポジトリ・サーバをさらに含む、請求項1に記載の情報処理システム。
  8. 前記イメージの前記作業状態情報は、固有情報と、仮想プロセッサのレジスタ値と、仮想メモリ上のデータとを含む、請求項1に記載の情報処理システム。
  9. ハードウェア・リソースを抽象化し、仮想機械の実行基盤を提供するシステム仮想化制御部と、
    クローン元仮想機械の作業状態を表す作業状態情報および仮想ディスク情報を含むイメージであって、前記クローン元仮想機械に取り付けられる仮想ネットワーク・インタフェースの設定情報を含まないことを特徴とする当該イメージを記憶する記憶部と、
    前記システム仮想化制御部に対し、前記イメージを用いて、要求数のクローンの仮想機械を仮想ネットワーク・インタフェースが切り離された状態で再開させる再開部と、
    前記システム仮想化制御部に対し、再開された前記クローンの仮想機械に仮想ネットワーク・インタフェースを取り付ける取付部と
    を含む、情報処理装置。
  10. 前記情報処理装置は、外部のストレージ装置に保存されたイメージを前記記憶部に複製する複製部と、当該情報処理装置上で起動させる前記要求数のクローンの仮想機械それぞれについて、順次、前記記憶部に記憶されているイメージに含まれる固有情報を更新する更新部とを含み、前記再開部は、順次、更新されたイメージから仮想機械を再開させる、請求項9に記載の情報処理装置。
  11. 前記仮想ディスク情報は、前記クローン元仮想機械の仮想ディスクのスナップショットを含み、前記情報処理装置は、前記クローン元仮想機械の前記仮想ディスクの基礎となるディスクイメージを記憶する記憶部をさらに備える、請求項9に記載の情報処理装置。
  12. 前記情報処理装置は、前記システム仮想化制御部に対し、前記クローンの仮想機械それぞれについて、再開後さらに、仮想メモリのリサイズを含むカスタマイズ処理を施させるカスタマイズ部をさらに含む、請求項9に記載の情報処理装置。
  13. 1以上のコンピュータ装置と、ストレージ装置とを含む情報処理システムにおいて、前記1以上のコンピュータ装置に1以上の仮想機械を準備する準備方法であって、
    クローン元の仮想機械が稼働するコンピュータ装置が、前記クローン元の仮想機械を仮想ネットワーク・インタフェースが切り離された状態で起動するステップと、
    前記クローン元のコンピュータ装置が、前記クローン元の仮想機械の作業状態を表す作業状態情報を起動後の状態で取得し、前記作業状態情報および仮想ディスク情報を含むイメージを前記ストレージ装置に保存するステップと
    を含み、前記準備方法は、さらに、
    クローン先となるコンピュータ装置が、前記イメージを用いて、クローンの仮想機械を仮想ネットワーク・インタフェースが切り離された状態で再開するステップと、
    前記クローン先のコンピュータ装置が、再開された前記クローンの仮想機械に仮想ネットワーク・インタフェースを取り付けるステップと
    を含む、準備方法。
  14. 前記準備方法は、前記再開するステップの前に、
    前記クローン先のコンピュータ装置が、前記ストレージ装置に保存された前記イメージを当該コンピュータ装置上に複製するステップと、
    前記クローン先のコンピュータ装置が、前記クローンの仮想機械について、複製されたイメージに含まれる固有情報を更新するステップと
    を含み、前記再開するステップは、更新されたイメージから仮想機械を再開させるものであり、前記更新するステップおよび前記再開するステップは、当該コンピュータ装置で起動させる1以上のクローンの仮想機械それぞれについて順次繰り返して行われる、請求項13に記載の準備方法。
  15. 前記起動するステップは、さらに、前記クローン元の仮想機械に割り当てる仮想メモリのサイズを縮小させるサブステップを含み、前記準備方法は、さらに、前記クローン先のコンピュータ装置が、前記再開するステップの後に、前記クローンの仮想機械に割り当てる仮想メモリのサイズを拡大するステップを含む、請求項13に記載の準備方法。
  16. 再開された前記クローンの仮想機械に仮想ネットワーク・インタフェースが取り付けられたことに応答して、前記クローンの仮想機械のオペレーティング・システムが、前記仮想ネットワーク・インタフェースの接続を検出し、ネットワーク・アドレスを割り当てるステップをさらに含む、請求項13に記載の準備方法。
  17. コンピュータ実行可能なプログラムであって、前記プログラムは、コンピュータを、
    ハードウェア・リソースを抽象化し、仮想機械の実行基盤を提供するシステム仮想化制御部、
    前記システム仮想化制御部に対し、仮想ネットワーク・インタフェースが切り離された状態で、前記システム仮想化制御部上で動作するクローン元仮想機械の作業状態を表す作業状態情報を取得する取得部、
    前記システム仮想化制御部に対し、前記クローン元仮想機械の前記作業状態情報および仮想ディスク情報を含むイメージをストレージ装置に保存させる保存部、
    前記システム仮想化制御部に対し、前記イメージを用いて、要求数のクローンの仮想機械を仮想ネットワーク・インタフェースが切り離された状態で再開させる再開部、および
    前記システム仮想化制御部に対し、再開された前記クローンの仮想機械に仮想ネットワーク・インタフェースを取り付けさせる取付部
    として機能させるためのプログラム。
  18. 請求項17に記載のコンピュータ実行可能なプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2010268890A 2010-12-02 2010-12-02 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体 Expired - Fee Related JP5681465B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010268890A JP5681465B2 (ja) 2010-12-02 2010-12-02 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体
US13/307,144 US20120144391A1 (en) 2010-12-02 2011-11-30 Provisioning a virtual machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010268890A JP5681465B2 (ja) 2010-12-02 2010-12-02 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体

Publications (2)

Publication Number Publication Date
JP2012118827A true JP2012118827A (ja) 2012-06-21
JP5681465B2 JP5681465B2 (ja) 2015-03-11

Family

ID=46163505

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010268890A Expired - Fee Related JP5681465B2 (ja) 2010-12-02 2010-12-02 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体

Country Status (2)

Country Link
US (1) US20120144391A1 (ja)
JP (1) JP5681465B2 (ja)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013254337A (ja) * 2012-06-06 2013-12-19 Ntt Data Corp 仮想化装置、仮想化制御方法、仮想化装置制御プログラム
WO2014030203A1 (ja) * 2012-08-20 2014-02-27 富士通株式会社 稼働管理装置、稼働管理方法、及び稼働管理プログラム
JP2014096675A (ja) * 2012-11-08 2014-05-22 Hitachi Ltd 通信装置、及び、設定方法
WO2016052593A1 (ja) * 2014-10-02 2016-04-07 インテリジェントウィルパワー株式会社 仮想マシン利用システム
JP5904514B1 (ja) * 2014-10-28 2016-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム
JP2016519381A (ja) * 2013-10-23 2016-06-30 華為技術有限公司Huawei Technologies Co.,Ltd. クラウドアプリケーションの冗長化のための方法、システム、および装置
JP2016526726A (ja) * 2013-07-03 2016-09-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 動的に生成される仮想ディスク・コンテンツを用いてプロビジョニング時間を最適化する方法
JP2017037665A (ja) * 2013-01-23 2017-02-16 ヴイエムウェア インコーポレイテッドVMware,Inc. ホスト側フラッシュストレージデバイスの容量を仮想マシンに利用可能にする技術
JP2018077880A (ja) * 2017-12-21 2018-05-17 華為技術有限公司Huawei Technologies Co.,Ltd. クラウドアプリケーションの冗長化のための方法、システム、および装置
JP2019074876A (ja) * 2017-10-13 2019-05-16 富士通株式会社 バックアップ方法、バックアップシステム、およびバックアップ装置
JP2019083039A (ja) * 2019-01-09 2019-05-30 華為技術有限公司Huawei Technologies Co.,Ltd. クラウドアプリケーションの冗長化のための方法、システム、および装置
US10459753B2 (en) 2017-05-26 2019-10-29 Cognizant Technology Solutions India Pvt. Ltd. System and method for agent based centralized and efficient transaction recordings for service virtualization

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8831993B2 (en) * 2010-03-19 2014-09-09 Novell, Inc. Techniques for sharing virtual machine (VM) resources
US9619263B2 (en) * 2011-06-11 2017-04-11 Microsoft Technology Licensing, Llc Using cooperative greedy ballooning to reduce second level paging activity
US8601473B1 (en) 2011-08-10 2013-12-03 Nutanix, Inc. Architecture for managing I/O and storage for a virtualization environment
JP5978659B2 (ja) * 2012-03-06 2016-08-24 日本電気株式会社 シンクライアントシステム、管理サーバ、業務環境設定方法、及び業務環境設定プログラム
US9250945B2 (en) * 2012-03-27 2016-02-02 Microsoft Technology Licensing, Llc Detecting a repeating execution time sequence in a virtual machine
US8930747B2 (en) * 2012-03-30 2015-01-06 Sungard Availability Services, Lp Private cloud replication and recovery
US9436492B2 (en) * 2012-05-02 2016-09-06 Microsoft Technology Licensing, Llc Cloud virtual machine provisioning using virtual storage
US9501296B2 (en) * 2012-05-18 2016-11-22 Ca, Inc. Hypervisor automation manager for starting an operation system with customization data from a disk image
US9164790B2 (en) * 2012-06-07 2015-10-20 Red Hat Israel, Ltd. Live virtual machine template creation
US10713183B2 (en) 2012-11-28 2020-07-14 Red Hat Israel, Ltd. Virtual machine backup using snapshots and current configuration
US9047238B2 (en) * 2012-11-28 2015-06-02 Red Hat Israel, Ltd. Creating a virtual machine from a snapshot
US9250827B2 (en) 2012-12-14 2016-02-02 Vmware, Inc. Storing checkpoint file in high performance storage device for rapid virtual machine suspend and resume
US9110757B2 (en) * 2013-01-14 2015-08-18 Vmware, Inc. Techniques for performing virtual machine software upgrades using virtual disk swapping
US9582219B2 (en) 2013-03-12 2017-02-28 Netapp, Inc. Technique for rapidly converting between storage representations in a virtualized computing environment
US9740514B1 (en) * 2013-06-26 2017-08-22 Nutanix, Inc. Method and system to share data with snapshots in a virtualization environment
US9274824B2 (en) * 2013-06-27 2016-03-01 Verizon Patent And Licensing Inc. Network technology standard operating environment
US9053216B1 (en) 2013-08-09 2015-06-09 Datto, Inc. CPU register assisted virtual machine screenshot capture timing apparatuses, methods and systems
US9639384B2 (en) * 2013-08-20 2017-05-02 Vmware, Inc. Method and system for fast provisioning of virtual desktop
US20160048428A1 (en) * 2013-09-04 2016-02-18 DataGravity, Inc. Thin provisioned clone
US11663025B2 (en) 2013-09-23 2023-05-30 Bankvault Pty Ltd Maintenance of and caching of suspended virtual computers in a pool of suspended virtual computers
US9959106B2 (en) * 2013-11-14 2018-05-01 International Business Machines Corporation Sharing of portable initialized objects between computing platforms
US9268836B2 (en) * 2013-11-14 2016-02-23 Vmware, Inc. Intelligent data propagation in a highly distributed environment
US9230001B2 (en) 2013-11-14 2016-01-05 Vmware, Inc. Intelligent data propagation using performance monitoring
US10977063B2 (en) 2013-12-20 2021-04-13 Vmware, Inc. Elastic compute fabric using virtual machine templates
US9323565B2 (en) * 2013-12-20 2016-04-26 Vmware, Inc. Provisioning customized virtual machines without rebooting
US9477507B2 (en) 2013-12-20 2016-10-25 Vmware, Inc. State customization of forked virtual machines
US9588793B2 (en) 2013-12-20 2017-03-07 Red Hat Israel, Ltd. Creating new virtual machines based on post-boot virtual machine snapshots
CN104750543B (zh) * 2013-12-26 2018-06-15 杭州华为数字技术有限公司 线程创建方法、业务请求处理方法及相关设备
US11243707B2 (en) 2014-03-12 2022-02-08 Nutanix, Inc. Method and system for implementing virtual machine images
US9696983B2 (en) 2014-04-25 2017-07-04 Vmware, Inc. Dynamic updating of operating systems and applications using volume attachment
US10216531B2 (en) 2014-05-12 2019-02-26 Netapp, Inc. Techniques for virtual machine shifting
KR101593163B1 (ko) * 2014-05-12 2016-02-15 한국전자통신연구원 실 환경 악성코드 분석 장치 및 방법
US20150324216A1 (en) * 2014-05-12 2015-11-12 Netapp, Inc. Self-repairing configuration service for virtual machine migration
US9841991B2 (en) 2014-05-12 2017-12-12 Netapp, Inc. Techniques for virtual machine migration
US10097410B2 (en) * 2014-06-26 2018-10-09 Vmware, Inc. Methods and apparatus to scale application deployments in cloud computing environments
US9626254B2 (en) * 2014-06-26 2017-04-18 Hewlett Packard Enterprise Development Lp Backup and non-staged recovery of virtual environment data
US9535915B2 (en) * 2014-07-11 2017-01-03 Quantum Corporation Immediate recovery of virtual machine using deduplication device and snapshots
US9639340B2 (en) * 2014-07-24 2017-05-02 Google Inc. System and method of loading virtual machines
US9619268B2 (en) 2014-08-23 2017-04-11 Vmware, Inc. Rapid suspend/resume for virtual machines via resource sharing
US10241691B2 (en) 2014-11-04 2019-03-26 Rubrik, Inc. Data management system
US10310880B2 (en) * 2014-11-25 2019-06-04 Red Hat, Inc. Hot-swapping storage pool backend functional modules
US20160162302A1 (en) * 2014-12-07 2016-06-09 Strato Scale Ltd. Fast initiation of workloads using memory-resident post-boot snapshots
US10606704B1 (en) * 2014-12-31 2020-03-31 Acronis International Gmbh Creation of consistent copies of application data
US20160203014A1 (en) * 2015-01-08 2016-07-14 International Business Machines Corporaiton Managing virtual machines using globally unique persistent virtual machine identifiers
US9626221B2 (en) 2015-02-24 2017-04-18 Red Hat Israel, Ltd. Dynamic guest virtual machine identifier allocation
US9792141B1 (en) * 2015-05-28 2017-10-17 Amazon Technologies, Inc. Configured generation of virtual machine images
US10282092B1 (en) * 2015-09-09 2019-05-07 Citigroup Technology, Inc. Methods and systems for creating and maintaining a library of virtual hard disks
US10599459B2 (en) 2016-02-12 2020-03-24 Nutanix, Inc. Entity database distributed replication
WO2017185204A1 (zh) * 2016-04-25 2017-11-02 深圳前海达闼云端智能科技有限公司 一种虚拟机创建方法和装置
US9817592B1 (en) 2016-04-27 2017-11-14 Netapp, Inc. Using an intermediate virtual disk format for virtual disk conversion
US10613947B2 (en) 2016-06-09 2020-04-07 Nutanix, Inc. Saving and restoring storage devices using application-consistent snapshots
US10606625B1 (en) 2016-09-16 2020-03-31 Google Llc Hot growing a cloud hosted block device
CN107885622B (zh) * 2016-09-30 2021-03-09 伊姆西Ip控股有限责任公司 处理虚拟数据移动器(vdm)故障备援情况
US10949234B2 (en) * 2016-10-11 2021-03-16 Cisco Technology, Inc. Device pass-through for virtualized environments
US10152356B2 (en) 2016-12-07 2018-12-11 Vmware, Inc. Methods and apparatus for limiting data transferred over the network by interpreting part of the data as a metaproperty
US10552180B2 (en) 2016-12-07 2020-02-04 Vmware, Inc. Methods, systems, and apparatus to trigger a workflow in a cloud computing environment
US11481239B2 (en) 2016-12-07 2022-10-25 Vmware, Inc. Apparatus and methods to incorporate external system to approve deployment provisioning
US11061706B2 (en) * 2017-01-06 2021-07-13 Cisco Technology, Inc. Method of tracking usage of virtual machines
US10915348B2 (en) 2017-01-31 2021-02-09 Intel Corporation Technologies for duplicating virtual machine states
TWI643129B (zh) * 2017-08-22 2018-12-01 廣積科技股份有限公司 融合運用系統架構
US11334438B2 (en) 2017-10-10 2022-05-17 Rubrik, Inc. Incremental file system backup using a pseudo-virtual disk
US10824522B2 (en) 2017-11-27 2020-11-03 Nutanix, Inc. Method, apparatus, and computer program product for generating consistent snapshots without quiescing applications
US11372729B2 (en) 2017-11-29 2022-06-28 Rubrik, Inc. In-place cloud instance restore
US10713060B2 (en) * 2018-08-02 2020-07-14 Micron Technology, Inc. Configurable option ROM
US11620148B2 (en) 2020-02-25 2023-04-04 International Business Machines Corporation Collecting capacity data of virtual machines by leveraging agent data
CN113377487A (zh) * 2020-02-25 2021-09-10 伊姆西Ip控股有限责任公司 管理虚拟机升级的方法、设备和计算机程序产品
JP7400587B2 (ja) * 2020-03-30 2023-12-19 横河電機株式会社 通信処理装置、プログラム、及び通信処理方法
US11797330B2 (en) * 2020-12-11 2023-10-24 Microsoft Technology Licensing, Llc Saving and restoring pre-provisioned virtual machine states
US20230305854A1 (en) * 2022-03-25 2023-09-28 Sap Se Reducing downtime during operating system patching

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007164304A (ja) * 2005-12-12 2007-06-28 Hitachi Ltd コンピュータ割り当て方法
US20070234337A1 (en) * 2006-03-31 2007-10-04 Prowess Consulting, Llc System and method for sanitizing a computer program
US20070283314A1 (en) * 2006-06-05 2007-12-06 Dennis Michael Browning A Method and System for Performing a Change-Over to a Component of a Computing System
JP2008107966A (ja) * 2006-10-24 2008-05-08 Hitachi Ltd 計算機システム
WO2009042327A2 (en) * 2007-09-21 2009-04-02 Microsoft Corporation Software deployment in large-scale networked systems
JP2010257429A (ja) * 2009-04-28 2010-11-11 Toshiba Corp 計算機

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5935249A (en) * 1997-02-26 1999-08-10 Sun Microsystems, Inc. Mechanism for embedding network based control systems in a local network interface device
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
US7480761B2 (en) * 2005-01-10 2009-01-20 Microsoft Corporation System and methods for an overlay disk and cache using portable flash memory
WO2007079499A2 (en) * 2006-01-04 2007-07-12 Nytor, Inc. Trusted host platform
US7788665B2 (en) * 2006-02-28 2010-08-31 Microsoft Corporation Migrating a virtual machine that owns a resource such as a hardware device
US9213542B2 (en) * 2006-03-30 2015-12-15 Microsoft Technology Licensing, Llc Creating templates of offline resources
US8151263B1 (en) * 2006-03-31 2012-04-03 Vmware, Inc. Real time cloning of a virtual machine
US20110040812A1 (en) * 2007-12-20 2011-02-17 Virtual Computer, Inc. Layered Virtual File System
US9098698B2 (en) * 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
US8307187B2 (en) * 2008-09-12 2012-11-06 Vmware, Inc. VDI Storage overcommit and rebalancing
WO2010055937A1 (ja) * 2008-11-17 2010-05-20 日本電気株式会社 計算機システム、データ保存方法およびプログラム
JP5066613B2 (ja) * 2009-03-06 2012-11-07 株式会社日立製作所 セキュリティ管理装置及び方法並びにプログラム
US8099391B1 (en) * 2009-03-17 2012-01-17 Symantec Corporation Incremental and differential backups of virtual machine files
EP2411918B1 (en) * 2009-03-23 2018-07-11 Riverbed Technology, Inc. Virtualized data storage system architecture
WO2010135430A1 (en) * 2009-05-19 2010-11-25 Vmware, Inc. Shortcut input/output in virtual machine systems
US8234469B2 (en) * 2009-07-09 2012-07-31 Microsoft Corporation Backup of virtual machines using cloned virtual machines
US20110035802A1 (en) * 2009-08-07 2011-02-10 Microsoft Corporation Representing virtual object priority based on relationships
EP2488946B1 (en) * 2009-10-12 2018-11-28 Veeam Software Ag Item-level restoration and verification of image level backups
US8631403B2 (en) * 2010-01-04 2014-01-14 Vmware, Inc. Method and system for managing tasks by dynamically scaling centralized virtual center in virtual infrastructure
US8839228B2 (en) * 2010-04-21 2014-09-16 Ca, Inc. System and method for updating an offline virtual machine
US9110702B2 (en) * 2010-06-02 2015-08-18 Microsoft Technology Licensing, Llc Virtual machine migration techniques
US9317314B2 (en) * 2010-06-29 2016-04-19 Microsoft Techology Licensing, Llc Techniques for migrating a virtual machine using shared storage
US20120005672A1 (en) * 2010-07-02 2012-01-05 International Business Machines Corporation Image management for virtual machine instances and associated virtual storage
US8443365B2 (en) * 2010-11-03 2013-05-14 Hewlett-Packard Development Company, L.P. Methods and systems to clone a virtual machine instance

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007164304A (ja) * 2005-12-12 2007-06-28 Hitachi Ltd コンピュータ割り当て方法
US20070234337A1 (en) * 2006-03-31 2007-10-04 Prowess Consulting, Llc System and method for sanitizing a computer program
US20070283314A1 (en) * 2006-06-05 2007-12-06 Dennis Michael Browning A Method and System for Performing a Change-Over to a Component of a Computing System
JP2008107966A (ja) * 2006-10-24 2008-05-08 Hitachi Ltd 計算機システム
WO2009042327A2 (en) * 2007-09-21 2009-04-02 Microsoft Corporation Software deployment in large-scale networked systems
JP2010541044A (ja) * 2007-09-21 2010-12-24 マイクロソフト コーポレーション 大規模なネットワーク化されたシステムにおけるソフトウェアの展開
JP2010257429A (ja) * 2009-04-28 2010-11-11 Toshiba Corp 計算機

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013254337A (ja) * 2012-06-06 2013-12-19 Ntt Data Corp 仮想化装置、仮想化制御方法、仮想化装置制御プログラム
WO2014030203A1 (ja) * 2012-08-20 2014-02-27 富士通株式会社 稼働管理装置、稼働管理方法、及び稼働管理プログラム
JP2014096675A (ja) * 2012-11-08 2014-05-22 Hitachi Ltd 通信装置、及び、設定方法
US9535730B2 (en) 2012-11-08 2017-01-03 Hitachi, Ltd. Communication apparatus and configuration method
JP2017037665A (ja) * 2013-01-23 2017-02-16 ヴイエムウェア インコーポレイテッドVMware,Inc. ホスト側フラッシュストレージデバイスの容量を仮想マシンに利用可能にする技術
JP2016526726A (ja) * 2013-07-03 2016-09-05 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 動的に生成される仮想ディスク・コンテンツを用いてプロビジョニング時間を最適化する方法
US9703654B2 (en) 2013-10-23 2017-07-11 Huawei Technologies Co., Ltd. Method, system, and apparatus for cloud application redundancy
JP2016519381A (ja) * 2013-10-23 2016-06-30 華為技術有限公司Huawei Technologies Co.,Ltd. クラウドアプリケーションの冗長化のための方法、システム、および装置
WO2016052593A1 (ja) * 2014-10-02 2016-04-07 インテリジェントウィルパワー株式会社 仮想マシン利用システム
JP5904514B1 (ja) * 2014-10-28 2016-04-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想マシンのスナップショットに対して更新を自動的に適用する方法、並びに、そのコンピュータ・システム及びコンピュータ・システム用プログラム
US10083022B2 (en) 2014-10-28 2018-09-25 International Business Machines Corporation Applying update to snapshots of virtual machine
US10140115B2 (en) 2014-10-28 2018-11-27 International Business Machines Corporation Applying update to snapshots of virtual machine
US10394547B2 (en) 2014-10-28 2019-08-27 International Business Machines Corporation Applying update to snapshots of virtual machine
US10459753B2 (en) 2017-05-26 2019-10-29 Cognizant Technology Solutions India Pvt. Ltd. System and method for agent based centralized and efficient transaction recordings for service virtualization
JP2019074876A (ja) * 2017-10-13 2019-05-16 富士通株式会社 バックアップ方法、バックアップシステム、およびバックアップ装置
JP2018077880A (ja) * 2017-12-21 2018-05-17 華為技術有限公司Huawei Technologies Co.,Ltd. クラウドアプリケーションの冗長化のための方法、システム、および装置
JP2019083039A (ja) * 2019-01-09 2019-05-30 華為技術有限公司Huawei Technologies Co.,Ltd. クラウドアプリケーションの冗長化のための方法、システム、および装置

Also Published As

Publication number Publication date
JP5681465B2 (ja) 2015-03-11
US20120144391A1 (en) 2012-06-07

Similar Documents

Publication Publication Date Title
JP5681465B2 (ja) 情報処理システム、情報処理装置、準備方法、プログラムおよび記録媒体
EP2765508B1 (en) Installation method and installation device for application software
CN105765534B (zh) 虚拟计算系统和方法
US8924954B2 (en) Application software installation method and application software installation apparatus
US9183099B2 (en) Replication of a write-back cache using a placeholder virtual machine for resource management
CA2648761C (en) Converting machines to virtual machines
US9626180B2 (en) Live operating system update mechanisms
US9268610B2 (en) Rapid virtual machine cloning
Zhang et al. 4VP: A novel meta OS approach for streaming programs in ubiquitous computing
WO2019119850A1 (zh) 一种部署应用软件的方法、装置及虚拟机
EP3227783A1 (en) Live rollback for a computing environment
WO2019196705A1 (zh) 物理机到虚拟机迁移方法、装置及存储介质
KR20180098842A (ko) 가상화 환경에서의 소프트웨어 업데이트 장치 및 방법
US10642518B1 (en) System and method for creating high frequency snapshots of an entity in a virtualized environment
US11630777B2 (en) Provisioning virtual machines with a single identity and cache virtual disk
EP4018302A1 (en) Hydration of applications
JP2016004432A (ja) 仮想マシンマイグレーションプログラム、仮想マシンマイグレーションシステムおよび仮想マシンマイグレーション方法
US10503492B2 (en) Live kernel updating using progressive checkpointing and network tunnels
EP3786797A1 (en) Cloud resource marketplace
JP6146092B2 (ja) 仮想化システム、仮想サーバ、仮想マシン制御方法、及び仮想マシン制御プログラム
Shi et al. A cloud service cache system based on memory template of virtual machine
US11416279B2 (en) Disks in a virtualized computing environment that are backed by remote storage
Chieu et al. Virtual machines with sharable operating system
CN117193936A (zh) 超融合架构下的虚拟机管理方法、装置及设备
CN117581205A (zh) 用于虚拟化系统中虚拟化操作的虚拟化引擎

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130903

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140829

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140902

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141117

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141216

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20141216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150109

R150 Certificate of patent or registration of utility model

Ref document number: 5681465

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees