(57)【要約】      （修正有）【課題】物理リソースへの負荷や容量の低減、及び仮想マシンの起動処理時間の短時間化を実現する。【解決手段】仮想マシン１００が、ゲストＯＳ１０２起動時に任意のタイミングで仮想マシンのメモリデータを採取するためのトリガをＶＭＭ２１０に発行する。メモリ制御手段２１１は採取したメモリデータを仮想サーバ３００上の物理メモリ３０１に保存する。任意に選出されたマスタ仮想マシンのメモリデータをマスタメモリ３０３として保存するとともに、マスタメモリファイル４０１として記憶装置４００上に保存し、マスタ仮想マシン以外の仮想マシンのメモリデータとマスタメモリ３０３と異なる部分を差分データとして抽出し、差分メモリファイル４０２として記憶装置４００上に保存する。【選択図】図１
2014197337.tif 000002
【特許請求の範囲】
【請求項１】
ＶＭＭを備え、仮想マシンが動作する仮想サーバと、
記憶装置とを備え、
前記仮想マシンが、ゲストＯＳ起動時に任意のタイミングで仮想マシンのメモリデータを採取するためのトリガを前記ＶＭＭに発行するメモリ同期手段を備え、
前記ＶＭＭが、
前記トリガを受信し、前記仮想マシンの動作を停止させる同期管理手段と、
前記トリガを契機にその時点における前記仮想マシンのメモリデータを採取するメモリ制御手段とを備え、
前記メモリ制御手段は、
採取した前記メモリデータを前記仮想サーバ上の物理メモリに保存し、
複数の前記仮想マシンから任意に選出されたマスタ仮想マシンの前記メモリデータをマスタメモリとして前記物理メモリに保存するとともに、マスタメモリファイルとして前記記憶装置上に保存し、
前記マスタ仮想マシン以外の前記仮想マシンのメモリデータと、前記マスタメモリとを比較して、前記マスタメモリと異なる部分を差分データとして抽出し、当該差分データを差分メモリファイルとして前記記憶装置上に保存する
ことを特徴とする仮想化システム。
【請求項２】
前記メモリ制御手段は、
前記差分メモリ及び差分メモリファイルの保存を、前記マスタ仮想マシン以外の全ての前記仮想マシンについて実施する
ことを特徴とする請求項１に記載の仮想化システム。
【請求項３】
前記メモリ制御手段は、
前記マスタ仮想マシンが起動された場合、当該マスタ仮想マシン起動後にデータ更新部分の書き込みがされる差分メモリを前記物理メモリ上に構成し、当該差分メモリと前記マスタメモリを前記マスタ仮想マシンの仮想メモリとして割り当てて、前記マスタ仮想マシンの起動処理を再開する
ことを特徴とする請求項１又は請求項２に記載の仮想化システム。
【請求項４】
前記メモリ制御手段は、
前記マスタ仮想マシン以外の前記仮想マシンが起動された場合、当該仮想マシンの前記差分メモリファイルを前記記憶装置から読み出して、前記物理メモリ上に差分メモリとして展開し、
前記差分メモリと前記マスタメモリを前記仮想マシンの仮想メモリとして割り当てて、前記マスタ仮想マシンの起動処理を再開する
ことを特徴とする請求項１から請求項３の何れか１項に記載の仮想化システム。
【請求項５】
ＶＭＭを備え、仮想マシンが動作する仮想サーバであって、
前記仮想マシンが、ゲストＯＳ起動時に任意のタイミングで仮想マシンのメモリデータを採取するためのトリガを前記ＶＭＭに発行するメモリ同期手段を備え、
前記ＶＭＭが、
前記トリガを受信し、前記仮想マシンの動作を停止させる同期管理手段と、
前記トリガを契機にその時点における前記仮想マシンのメモリデータを採取するメモリ制御手段とを備え、
前記メモリ制御手段は、
採取した前記メモリデータを前記仮想サーバ上の物理メモリに保存し、
複数の前記仮想マシンから任意に選出されたマスタ仮想マシンの前記メモリデータをマスタメモリとして前記物理メモリに保存するとともに、マスタメモリファイルとして記憶装置上に保存し、
前記マスタ仮想マシン以外の前記仮想マシンのメモリデータと、前記マスタメモリとを比較して、前記マスタメモリと異なる部分を差分データとして抽出し、当該差分データを差分メモリファイルとして前記記憶装置上に保存する
ことを特徴とする仮想サーバ。
【請求項６】
前記メモリ制御手段は、
前記差分メモリ及び差分メモリファイルの保存を、前記マスタ仮想マシン以外の全ての前記仮想マシンについて実施する
ことを特徴とする請求項５に記載の仮想サーバ。
【請求項７】
前記メモリ制御手段は、
前記マスタ仮想マシンが起動された場合、当該マスタ仮想マシン起動後にデータ更新部分の書き込みがされる差分メモリを前記物理メモリ上に構成し、当該差分メモリと前記マスタメモリを前記マスタ仮想マシンの仮想メモリとして割り当てて、前記マスタ仮想マシンの起動処理を再開する
ことを特徴とする請求項５又は請求項６に記載の仮想サーバ。
【請求項８】
前記メモリ制御手段は、
前記マスタ仮想マシン以外の前記仮想マシンが起動された場合、当該仮想マシンの前記差分メモリファイルを前記記憶装置から読み出して、前記物理メモリ上に差分メモリとして展開し、
前記差分メモリと前記マスタメモリを前記仮想マシンの仮想メモリとして割り当てて、前記マスタ仮想マシンの起動処理を再開する
ことを特徴とする請求項５から請求項７の何れか１項に記載の仮想サーバ。
【請求項９】
ＶＭＭを備え、仮想マシンが動作する仮想サーバによる仮想マシン制御方法であって、
前記仮想マシンが備えるメモリ同期手段が、ゲストＯＳ起動時に任意のタイミングで仮想マシンのメモリデータを採取するためのトリガを前記ＶＭＭに発行するメモリ同期ステップと、
前記ＶＭＭが備える同期管理手段が、前記トリガを受信し、前記仮想マシンの動作を停止させる同期管理ステップと、
前記ＶＭＭが備えるメモリ制御手段が、前記トリガを契機にその時点における前記仮想マシンのメモリデータを採取するメモリ制御ステップとを有し、
前記メモリ制御ステップで、
採取した前記メモリデータを前記仮想サーバ上の物理メモリに保存し、
複数の前記仮想マシンから任意に選出されたマスタ仮想マシンの前記メモリデータをマスタメモリとして前記物理メモリに保存するとともに、マスタメモリファイルとして記憶装置上に保存し、
前記マスタ仮想マシン以外の前記仮想マシンのメモリデータと、前記マスタメモリとを比較して、前記マスタメモリと異なる部分を差分データとして抽出し、当該差分データを差分メモリファイルとして前記記憶装置上に保存する
ことを特徴とする仮想マシン制御方法。
【請求項１０】
ＶＭＭを備え、仮想マシンが動作する仮想サーバを構成するコンピュータ上で動作する仮想マシン制御プログラムであって、
前記仮想マシンが備えるメモリ同期手段に、ゲストＯＳ起動時に任意のタイミングで仮想マシンのメモリデータを採取するためのトリガを前記ＶＭＭに発行するメモリ同期処理を実行させ、
前記ＶＭＭが備える同期管理手段に、前記トリガを受信し、前記仮想マシンの動作を停止させる同期管理処理を実行させ、
前記ＶＭＭが備えるメモリ制御手段に、前記トリガを契機にその時点における前記仮想マシンのメモリデータを採取するメモリ制御処理を実行させ、
前記メモリ制御処理で、
採取した前記メモリデータを前記仮想サーバ上の物理メモリに保存し、
複数の前記仮想マシンから任意に選出されたマスタ仮想マシンの前記メモリデータをマスタメモリとして前記物理メモリに保存するとともに、マスタメモリファイルとして記憶装置上に保存し、
前記マスタ仮想マシン以外の前記仮想マシンのメモリデータと、前記マスタメモリとを比較して、前記マスタメモリと異なる部分を差分データとして抽出し、当該差分データを差分メモリファイルとして前記記憶装置上に保存する
ことを特徴とする仮想マシン制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン起動処理に関し、特に、物理リソースへの負荷や容量の低減を実現し、起動処理時間の短時間化を実現する技術に関する。
【背景技術】
【０００２】
昨今、物理サーバ上で複数の仮想マシンを動作させる仮想化技術が普及している。仮想マシンには物理マシン同様に、例えばメモリやディスクなどのハードウェア装置が仮想的に構成され、その上でオペレーティングシステム（以下、ＯＳ）が動作する。
【０００３】
仮想マシンの仮想ディスクを実現するには複数の方式があるが、一般的に、固定ディスク方式、ならびに差分ディスク方式、が挙げられる。以下、それぞれの方式に関して説明する。
【０００４】
固定ディスク方式では、仮想ディスクと同容量の仮想ディスクファイルを記憶装置内に作成し、格納する。仮想マシンは、この仮想ディスクファイルに対して、データの読み込み、および書き込みを実施する。
【０００５】
固定ディスク方式では、仮想マシンごとに独立した仮想ディスクファイルが提供されるため、他の仮想マシンからの影響が無く、一般的な物理マシンと同等のディスク機能を提供することが可能である。しかし、一方で固定ディスク方式は、仮想マシンごとに仮想ディスクと同容量の記憶領域を必要とするため、大容量の記憶装置を用意する必要がある。
【０００６】
差分ディスク方式では、仮想ディスクを構成する仮想ディスクファイルとして、読み取り専用となるマスタディスクファイルと、このマスタディスクファイルの更新部分（差分）のみを保持する差分ディスクファイルとを持つ。仮想マシンが、仮想ディスクへの書き込み処理において、マスタディスクファイルに該当するブロック位置のデータ更新を伴う書き込みを行った場合、実際にはマスタディスクファイルは更新されず、差分ディスクファイルに書き込みが行われ、更新される。差分ディスクファイルは、データが更新される都度、記憶領域内でディスク領域を確保するため、固定ディスク方式のように最初から仮想ディスクと同容量の記憶領域を必要としない。
【０００７】
仮想マシンが、仮想ディスクからデータを読み込む場合、差分ディスクファイルに更新されたデータがある場合はそれを読み込み、更新されたデータが無い場合はマスタディスクファイルから読み込みが行われる。このため、マスタディスクファイル自体は更新されることがなく、複数の仮想マシンから参照可能な仮想ディスクファイルである。
【０００８】
一般的に、マスタディスクファイルには、仮想マシン共通の情報（ＯＳやアプリケーション、など）が格納され、差分ディスクファイルには、仮想マシンごとが個々に持つ一意な情報（ホスト名やＩＰアドレス、など）が最低限保持される。
【０００９】
差分ディスク方式では、マスタディスクファイルを複数の仮想マシンから共有することが可能であるため、同一構成の仮想マシンが複数動作する仮想マシン環境に差分ディスク方式を採用した場合、固定ディスク方式と比較し、記憶領域の削減が可能となる。また、同一構成の仮想マシンを複数展開する場合、マスタディスクファイル分のデータ複製が不要となるため、迅速な展開が可能となる。このため、差分ディスク方式は、ＶＤＩ（Ｖｉｒｔｕａｌ  Ｄｅｓｋｔｏｐ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）のように、同一のＯＳやアプリケーション構成の仮想マシンが多量に存在する環境で頻繁に使用される方式である。
【００１０】
差分ディスク方式以外で、物理リソース消費を低減する方法がいくつか提供されている。
【００１１】
物理メモリ消費を低減する１つの方法として、ＶＭｗａｒｅ社の「ＴＰＳ（Ｔｒａｎｓｐａｒｅｎｔ  Ｐａｇｅ  Ｓｈａｒｉｎｇ）」がある。このＴＰＳは、仮想マシン間で同一のデータが格納されたメモリページを、各仮想マシンで保持するのではなく、１つのメモリページを仮想マシン間で参照し、共有化する機能である。本機能は、ＶＤＩのように、同一メモリページとなりやすい同一のＯＳやアプリケーション構成の仮想マシンが複数存在する環境で有効である。これにより、各仮想マシンで同一のメモリページを保持する必要はなくなるため、物理メモリの容量削減が可能となる。
【００１２】
他の解決方法が、特許文献１に記載されている。特許文献１では、物理ディスク上から物理メモリ上に仮想マシンのデータを予め配置させ、それ以降の仮想マシン起動で必要なデータは、物理ディスクからではなく物理メモリ上に配置したデータから読み出される、というものである。
【００１３】
ここで、関連技術として、特許文献２は、複数の仮想マシンで共有するスナップショットイメージをホストＯＳのメモリ領域に保持し、メモリへの書き込みがあったときに、スナップショットイメージの部分領域を複写して差分メモリ領域を生成する技術を開示している。
【００１４】
また、別の関連技術として、特許文献２は、複数の仮想サーバ間で、ゲストＯＳのＣＰＵレジスタのデータ及びメモリデータをコピーする技術を開示している。
【先行技術文献】
【特許文献】
【００１５】
【特許文献１】特開２００８−１３５００９号公報
【特許文献２】特開２００７−０６６２６５号公報
【特許文献３】特開２０１１−２１０１５１号公報
【発明の概要】
【発明が解決しようとする課題】
【００１６】
前述のとおり、差分ディスク方式により記憶領域の削減は実現可能であるが、それ以外の物理リソース、つまりＣＰＵや物理メモリ、ディスク装置へ要求される処理は、固定ディスク方式と変わらず、仮想マシン台数分必要である。特に、仮想マシン起動処理のように、マスタディスクファイルからのデータの読み込み、メモリに展開されるデータ、その処理のために使用されるＣＰＵ時間は、その処理の内容が各仮想マシンでほぼ同一の内容となるにも関わらず、仮想マシン台数分の物理リソース消費、時間が必要となる。
【００１７】
また、ＶＤＩでは、導入コストを低減するため、物理マシン上で稼働させる仮想マシン台数が多量、つまり高集約となる傾向にあり、かつその仮想マシンはデスクトップ用途となるため、仮想マシン起動（再起動含む）処理が、サーバ用途のそれと比較し、頻繁に発生する特徴がある。起動処理は、物理リソースへ多量の要求がなされるため、仮想マシン高集約環境においては、物理リソースへの負荷が集中しやすく、システム全体の性能低下を招きやすく、仮想マシンの性能低下を発生させる、という問題がある。
【００１８】
さらに、仮想マシンの性能低下により仮想マシンの起動、再起動処理時間の遅延が発生することで、仮想マシン利用者のダウンタイムが長期化する、という問題がある。
【００１９】
一方、ＴＰＳは、仮想マシン起動後のメモリページを定期的に確認し、共有化可否の判断しているため、仮想マシン起動処理自体に関してはその恩恵を受けることができない。
【００２０】
また、特許文献１の方法では、仮想マシンごとのデータを物理メモリ上に配置する必要があり、ＶＤＩのように仮想マシン台数が多量に存在する環境では、物理メモリの容量を圧迫してしまう、という課題がある。
【００２１】
（発明の目的）
本発明の目的は、上述の課題を解決し、物理リソースへの負荷や容量の低減を実現する仮想化システム、仮想サーバ、仮想マシン制御方法、及び仮想マシン制御プログラムを提供することである。
【００２２】
本発明の他の目的は、起動処理時間の短時間化を実現する仮想化システム、仮想サーバ、仮想マシン制御方法、及び仮想マシン制御プログラムを提供することである。
【課題を解決するための手段】
【００２３】
本発明の第１の仮想化システムは、ＶＭＭを備え、仮想マシンが動作する仮想サーバと、記憶装置とを備え、仮想マシンが、ゲストＯＳ起動時に任意のタイミングで仮想マシンのメモリデータを採取するためのトリガをＶＭＭに発行するメモリ同期手段を備え、ＶＭＭが、トリガを受信し、仮想マシンの動作を停止させる同期管理手段と、トリガを契機にその時点における仮想マシンのメモリデータを採取するメモリ制御手段とを備え、メモリ制御手段は、採取したメモリデータを仮想サーバ上の物理メモリに保存し、複数の仮想マシンから任意に選出されたマスタ仮想マシンのメモリデータをマスタメモリとして物理メモリに保存するとともに、マスタメモリファイルとして記憶装置上に保存し、マスタ仮想マシン以外の仮想マシンのメモリデータと、マスタメモリとを比較して、マスタメモリと異なる部分を差分データとして抽出し、当該差分データを差分メモリファイルとして記憶装置上に保存する。
【００２４】
本発明の第１の仮想サーバは、ＶＭＭを備え、仮想マシンが動作する仮想サーバであって、仮想マシンが、ゲストＯＳ起動時に任意のタイミングで仮想マシンのメモリデータを採取するためのトリガをＶＭＭに発行するメモリ同期手段を備え、ＶＭＭが、トリガを受信し、仮想マシンの動作を停止させる同期管理手段と、トリガを契機にその時点における仮想マシンのメモリデータを採取するメモリ制御手段とを備え、メモリ制御手段は、採取したメモリデータを仮想サーバ上の物理メモリに保存し、複数の仮想マシンから任意に選出されたマスタ仮想マシンのメモリデータをマスタメモリとして物理メモリに保存するとともに、マスタメモリファイルとして記憶装置上に保存し、マスタ仮想マシン以外の仮想マシンのメモリデータと、マスタメモリとを比較して、マスタメモリと異なる部分を差分データとして抽出し、当該差分データを差分メモリファイルとして記憶装置上に保存する。
【００２５】
本発明の第１の仮想マシン制御方法は、ＶＭＭを備え、仮想マシンが動作する仮想サーバによる仮想マシン制御方法であって、仮想マシンが備えるメモリ同期手段が、ゲストＯＳ起動時に任意のタイミングで仮想マシンのメモリデータを採取するためのトリガをＶＭＭに発行するメモリ同期ステップと、ＶＭＭが備える同期管理手段が、トリガを受信し、仮想マシンの動作を停止させる同期管理ステップと、ＶＭＭが備えるメモリ制御手段が、トリガを契機にその時点における仮想マシンのメモリデータを採取するメモリ制御ステップとを有し、メモリ制御ステップで、採取したメモリデータを仮想サーバ上の物理メモリに保存し、複数の仮想マシンから任意に選出されたマスタ仮想マシンのメモリデータをマスタメモリとして物理メモリに保存するとともに、マスタメモリファイルとして記憶装置上に保存し、マスタ仮想マシン以外の仮想マシンのメモリデータと、マスタメモリとを比較して、マスタメモリと異なる部分を差分データとして抽出し、当該差分データを差分メモリファイルとして記憶装置上に保存する。
【００２６】
本発明の第１の仮想マシン制御プログラムは、ＶＭＭを備え、仮想マシンが動作する仮想サーバを構成するコンピュータ上で動作する仮想マシン制御プログラムであって、仮想マシンが備えるメモリ同期手段に、ゲストＯＳ起動時に任意のタイミングで仮想マシンのメモリデータを採取するためのトリガをＶＭＭに発行するメモリ同期処理を実行させ、ＶＭＭが備える同期管理手段に、トリガを受信し、仮想マシンの動作を停止させる同期管理処理を実行させ、ＶＭＭが備えるメモリ制御手段に、トリガを契機にその時点における仮想マシンのメモリデータを採取するメモリ制御処理を実行させ、メモリ制御処理で、採取したメモリデータを仮想サーバ上の物理メモリに保存し、複数の仮想マシンから任意に選出されたマスタ仮想マシンのメモリデータをマスタメモリとして物理メモリに保存するとともに、マスタメモリファイルとして記憶装置上に保存し、マスタ仮想マシン以外の仮想マシンのメモリデータと、マスタメモリとを比較して、マスタメモリと異なる部分を差分データとして抽出し、当該差分データを差分メモリファイルとして記憶装置上に保存する。
【発明の効果】
【００２７】
本発明によれば、物理リソースへの負荷や容量の低減を実現することができる。
【００２８】
また、本発明によれば、起動処理時間の短時間化を実現することができる。
【図面の簡単な説明】
【００２９】
【図１】本発明の第１の実施の形態による仮想化システムの構成を示すブロック図である。
【図２】本発明の第１の実施の形態によるメモリの構成例を示す図である。
【図３】本発明の第１の実施の形態におけるマスタメモリ及びマスタメモリファイルの生成の動作を示すフローチャートである。
【図４】本発明の第１の実施の形態における差分メモリファイルの生成の動作を示すフローチャートである。
【図５】本発明の第１の実施の形態における仮想マシンの起動の動作を示すフローチャートである。
【図６】本発明の仮想化システムの最小限の構成を示すブロック図である。
【図７】本発明の仮想サーバのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【００３０】
本発明の上記及び他の目的、特徴及び利点を明確にすべく、添付した図面を参照しながら、本発明の実施形態を以下に詳述する。なお、上述の本願発明の目的のほか、他の技術的課題、その技術的課題を解決する手段及びその作用効果についても、以下の実施形態による開示によって明らかとなるものである。なお、すべての図面において、同様な構成要素には同様の符号を付し、適宜説明を省略する。
【００３１】
（第１の実施の形態）
差分ディスク方式の仮想マシンが稼働するシステムにおいて、仮想マシン起動からある特定の時点までに、ディスクから読み込まれ展開されるメモリ情報を保持する機能、ならびに仮想マシン間でそのメモリ情報を比較し、その差分のメモリ情報を保持する方法を提供する。
【００３２】
仮想マシンを起動する場合、予め保持された各メモリ情報を組み合わせ、起動からある特定の時点までのメモリ情報を構成し、仮想マシンに割り当てた後に仮想マシン起動処理を再開する。これにより、仮想マシンの起動処理は、特定の時点までスキップされるため、仮想マシン起動処理時間の短縮、ＣＰＵ、メモリ、ディスクといった物理リソースへの負荷回避、を実現することができる。
【００３３】
本発明では、差分ディスク方式において、仮想マシン起動から特定の時点までに物理メモリに展開されたメモリデータを、仮想マシン間で共有するマスタメモリと、仮想マシンごとに発生するマスタメモリとの差分を差分メモリと、に分けて管理する。仮想マシンを起動する時は、マスタメモリと差分メモリから、該当仮想マシンの特定の時点までのメモリデータを構成し、それを割り当てることで、特定の時点以降の処理から仮想マシンの起動処理を再開させることで、前述の課題を解決する。
【００３４】
具体的には、本発明にて実現するシステムは、仮想マシン上のゲストＯＳ内に、ハイパーバイザ（ＶＭＭ）と同期し、仮想マシンの動作を一時停止させ、ＶＭＭ内にて仮想マシンのメモリデータを採取させるトリガを発行する、メモリ同期機能を持つ。
【００３５】
ＶＭＭ内には、このメモリ同期機能からのトリガを受信し、ＶＭＭに対して仮想マシンの動作を停止させるメモリ同期管理機能機能と、そのトリガを契機にその時点の仮想マシンのメモリデータを採取するメモリ制御機能を持つ。さらに、メモリ制御機能は、採取されたメモリデータを物理メモリ上に保持する機能、異なる２つの仮想マシンのメモリデータ比較しその差分メモリデータのみを抽出する機能、比較元のメモリデータと抽出された差分メモリデータから１つの仮想マシンのメモリデータを再構成する機能、とを持つ。また、採取されたメモリデータ、差分メモリデータを物理ディスク上に保存および読み出すディスク制御手段を持つ。
【００３６】
複数仮想マシンの中から、マスタ仮想マシンを選出する。この選出は管理者が明示的に実施しても、自動的に実施しても構わない。
【００３７】
マスタ仮想マシンを起動させ、ゲストＯＳ起動に必要なデータをディスク上から読み出し、物理メモリ上にそのデータが展開させる。この過程で、マスタ仮想マシン上のメモリ同期機能が、ＶＭＭ内のメモリ同期管理機能に対してトリガを発行する。メモリ同期管理機能は、マスタ仮想マシンの動作を一時停止させるとともに、メモリ制御手段に対してマスタ仮想マシンのメモリデータを採取するよう指示する。メモリ制御機能は採取したマスタ仮想マシンのメモリデータを、マスタメモリとして物理メモリ上に保持するとともに、物理ディスク上にマスタメモリファイルとして保存する。
【００３８】
マスタ仮想マシン以外の仮想マシンを起動させ、マスタ仮想マシン同様にメモリ同期機能がトリガを発行する時点でのメモリデータを採取する。メモリ制御手段は、採取されたメモリデータと、物理メモリ上に保持しているマスタメモリとを比較し、マスタメモリと異なる差分メモリデータのみを抽出し、差分メモリを生成し、この差分メモリを物理ディスク上に差分メモリファイルとして保存する。
【００３９】
この差分メモリファイルの保存を、マスタ仮想マシン以外の仮想マシンすべてで実施する。
【００４０】
仮想マシンを運用で使用する前に以上の処理を終了させておく。
【００４１】
ＶＭＭは仮想マシンの起動を検出すると、その仮想マシンが、マスタ仮想マシンか否かを判定する。
【００４２】
マスタ仮想マシンの起動である場合、メモリ制御手段は、物理メモリ上に存在するマスタメモリを参照させる差分メモリを構成し、マスタ仮想マシンの仮想メモリとして割り当て、マスタ仮想マシンの起動処理を再開する。
【００４３】
マスタ仮想マシン以外の起動である場合、メモリ制御手段は、該当仮想マシンの差分メモリファイルを物理ディスクから読み出し、物理メモリ上に差分メモリを展開する。この差分メモリと、同じく物理メモリ上に存在するマスタメモリへの参照から、仮想メモリを構成し該当仮想マシンに割り当て、該当仮想マシンの起動処理を再開する。
【００４４】
参照されるマスタメモリ領域のデータが更新される場合、または参照されるマスタメモリ領域以外に新たに更新（追加）されるメモリ領域が要求される場合、各仮想マシンの差分メモリ上にてそのデータを管理する。
【００４５】
本発明により、あらかじめマスタメモリおよび差分メモリから仮想マシンの仮想メモリを構成しておくことで、ある特定の時点までの起動処理が完了した状態で、仮想マシンの起動処理を再開することが可能となり、ある特定の時点までの仮想マシン起動に必要となる物理リソース消費を回避するとともに、仮想マシン起動時間の短縮を実現することが可能となる。
【００４６】
次に、本発明の第１の実施の形態について図面を参照して詳細に説明する。
【００４７】
図１は、本発明の第１の実施の形態による仮想化システム１０００の構成を示すブロック図である。
【００４８】
図１を参照すると、本実施の形態による仮想化システム１０００は、仮想サーバ３００と、記憶装置４００とから構成される。
【００４９】
仮想サーバ３００は、物理メモリ３０１を備える。また、仮想サーバ３００上では、マスタ仮想マシン（仮想マシンＭ）１００と、仮想マシン２００と、ＶＭＭ（ハイパーバイザ）２１０とが動作する。
【００５０】
なお、図１は例示であって、システム構成を制限するものではない。すなわち、仮想マシン２００は任意の台数として構成可能である。
【００５１】
マスタ仮想マシン１００は、仮想ハードウェア１０１と、ゲストＯＳ１０２から構成される。
【００５２】
仮想ハードウェア１０１は、ゲストＯＳ１０２を格納する仮想ディスクＭ１０３と、ゲストＯＳ１０２のメモリデータを格納する仮想メモリＭ１０４を備える。
【００５３】
ゲストＯＳ１０２は、メモリ同期管理手段２１２に対して、仮想メモリＭ１０４に格納されたメモリデータを保持するよう通知する機能を有するメモリ同期手段１０５を備える。
【００５４】
説明は省略するが、仮想マシン２００も、マスタ仮想マシン１００と同様の構成となる。
【００５５】
ＶＭＭ２１０は、マスタ仮想マシン１００および仮想マシン２００と、メモリ制御手段２１１と、メモリ同期管理手段２１２と、ディスク制御手段２１３と、を動作させる機能を備える。
【００５６】
ディスク制御手段２１３は、ＩＯデバイス３０２を介し、記憶装置４００から各ファイルを読み込むまたは書き込む機能を備える。
【００５７】
メモリ制御手段２１１は、記憶装置４００から読み込まれたデータを物理メモリ３０１上に展開し、その展開されたメモリデータを、仮想マシンが備える仮想メモリに割り当てる機能をそなえる。また、メモリ制御手段２１１は、メモリ同期管理手段２１２からの指示を元に、物理メモリ３０１上に展開された仮想マシンのメモリデータを、ディスク制御手段２１３に対して記憶装置４００にメモリファイルとして保存する指示を行う機能を備える。さらに、メモリ制御手段２１１は、メモリ同期管理手段２１２からの指示を元に、マスタメモリ３０３と仮想メモリを比較し差分メモリを抽出する機能を備える。
【００５８】
ＩＯデバイス３０２は、ディスク制御手段２１３からの指示を元に、記憶装置４００から各ファイルを読み込むまたは書き込む機能を備える。物理メモリ３０１は、各仮想マシンに割り当てるマスタメモリ３０３と、差分メモリＭ３０４と、差分メモリ３０５から構成される。
【００５９】
ここで、マスタメモリ３０３は、マスタ仮想マシン１００および仮想マシン２００から参照される共有のメモリデータを保持する。
【００６０】
差分メモリＭ３０４は、マスタ仮想マシン１００が起動後に、マスタメモリ３０３から更新または新規に必要となるメモリデータを保持する。
【００６１】
差分メモリ３０５は、仮想マシン２００が起動前に必要なメモリデータの内、マスタメモリ３０３以外の差分メモリとして差分メモリファイル４０２から読み込まれるメモリデータと、仮想マシン２００が起動後に、マスタメモリ３０３から更新または新規に必要となるメモリデータと、を保持する。
【００６２】
記憶装置４００は、各仮想マシンが持つ仮想ディスクの実態となるディスクファイルや、メモリファイルを格納する記憶領域４１０を備える。記憶領域４１０は、各仮想マシンで共有可能なデータを保持するマスタディスクファイル４０３と、マスタ仮想マシン１００が保持する差分ディスクファイルＭ４０４と、仮想マシン２００が保持する差分ディスクファイル４０５と、マスタメモリ３０３のデータを保持するマスタメモリファイル４０１と、仮想マシン２００が起動前に必要となる差分メモリ３０５のデータを保持する差分メモリファイル４０２から、構成される。
【００６３】
物理メモリ３０１と、マスタメモリ３０３と、差分メモリ、仮想メモリとの関係性について、図２を用いて説明する。
【００６４】
図２を参照すると、仮想マシンに構成される仮想メモリ２０４は、マスタメモリ３０３と差分メモリ３０５から構成される。
【００６５】
マスタメモリ３０３は、マスタ仮想マシン１００が起動してから特定の時点までに物理メモリ３０１上に展開されるメモリデータであり、この特定の時点とは、メモリ同期手段１０５がメモリ同期管理手段２１２にマスタメモリ３０３の保持を指示するタイミングである。マスタメモリ３０３は、メモリ制御手段２１１により、物理メモリ３０１上にマッピングされる。
【００６６】
差分メモリ３０５は、マスタメモリ３０３が物理メモリ３０１上に保持されている状態で、マスタ仮想マシン１００以外の仮想マシン２００が起動してから特定の時点までに物理メモリ３０１上に展開されるメモリデータを、メモリ制御手段２１１がマスタメモリ３０３と比較して差分メモリデータを抽出したものである。この特定の時点とは、マスタ仮想マシン１００のそれと同一である。差分メモリ３０５は、メモリ制御手段２１１により、物理メモリ３０１上にマッピングされる。
【００６７】
仮想マシン２００が仮想メモリ２０４にアクセスした場合、メモリ制御手段２１１は、その領域が差分メモリ３０５上に存在する場合、差分メモリ３０５から該当データを参照させ、差分メモリ３０５上に存在しない場合はマスタメモリ３０３の該当データを参照させる。
【００６８】
仮想マシン２００が仮想メモリ２０４を更新した場合、メモリ制御手段２１１は、その領域が差分メモリ３０５上に存在する場合は、差分メモリ３０５上の該当データを更新させ、差分メモリ３０５上に存在せず、マスタメモリ３０３を参照させている領域であり、かつそのデータが異なる場合は、差分メモリ３０５上の該当領域を該当データにて更新する。更新領域が、差分メモリ３０５、マスタメモリ３０３のいずれにも該当しない場合は、新たな物理メモリ３０１上の領域にそのデータを格納するとともに、差分メモリ３０５として管理する。
【００６９】
（第１の実施の形態の動作の説明）
次に、本実施の形態による仮想化システム１０００の動作について、図面を参照して詳細に説明する。
【００７０】
図３は、マスタメモリ３０３と、マスタメモリファイル４０１の生成の動作を示すフローチャートである。
【００７１】
まず、ＶＭＭ２１０は、マスタメモリ３０３の有無を確認する（ステップＡ１）。マスタメモリ３０３が存在しない場合（ステップＡ１”ＮＯ”）、ＶＭＭ２１０はマスタ仮想マシン１００の起動を開始する（ステップＡ４）。マスタ仮想マシン１００の起動により、記憶領域４１０上のマスタディスクファイル４０３及び差分ディスクファイルＭ４０４から、マスタ仮想マシン１００上のゲストＯＳ１０２を起動するのに必要なデータの読み込みが開始され、物理メモリ３０１上にマスタ仮想マシン１００のメモリデータが展開される。
【００７２】
ゲストＯＳ１０２上のメモリ同期手段１０５は、起動したタイミングでメモリ同期管理手段２１２に対して通知を行い、メモリ同期管理手段２１２はこれを受信する（ステップＡ５）。
【００７３】
該通知を受けたメモリ同期管理手段２１２は、メモリ制御手段２１１を介して、マスタ仮想マシン１００に割り当てられているメモリデータを、マスタメモリ３０３として物理メモリ３０１上にコピーし、保持する（ステップＡ６）。
【００７４】
メモリ制御手段２１１は、ディスク制御手段２１３を介して、マスタメモリ３０３をマスタメモリファイル４０１として記憶領域４１０上に保存する（ステップＡ７）。
【００７５】
マスタメモリ３０３と、マスタメモリファイル４０１の生成処理が完了したのち、マスタ仮想マシン１００は停止される。（ステップＡ８）。
【００７６】
ステップＡ１で、マスタメモリ３０３が存在していた場合（ステップＡ１”ＹＥＳ”）、記憶領域４１０上のマスタメモリファイル４０１が読み込まれる（ステップＡ２）。読み込まれて物理メモリ３０１上に展開されたメモリデータは、マスタメモリ３０３として保持される（ステップＡ３）。
【００７７】
図４は、差分メモリファイル４０２の生成の動作を示すフローチャートである。
【００７８】
まず、ＶＭＭ２０２が、メモリデータの比較対象となるマスタメモリ３０３の有無を確認する（ステップＢ１）。
【００７９】
マスタメモリ３０３が存在しない場合、比較対象がないため処理を終了する（ステップＢ１”ＮＯ”）。マスタメモリ３０３が存在する場合（ステップＢ１”ＹＥＳ”）、次に差分メモリファイル４０２の有無を確認する（ステップＢ２）。差分メモリファイル４０２が存在する場合、生成する必要がないため処理を終了する（ステップＢ２”ＹＥＳ”）。
【００８０】
差分メモリファイル４０２が存在しない場合（ステップＢ２”ＮＯ”）、仮想マシン２００の起動を開始する（ステップＢ３）。仮想マシン２００の起動により、記憶領域４１０上の、マスタディスクファイル４０３と差分ディスクファイル４０５から、仮想マシン２００上のゲストＯＳ２０２を起動するのに必要なデータの読み込みが開始され、物理メモリ３０１上に仮想マシン２００のメモリデータが展開される。
【００８１】
ゲストＯＳ２０２上のメモリ同期手段２０５は、起動したタイミングで、メモリ同期管理手段２１２に対して通知を行い、メモリ同期管理手段２１２はこれを受信する（ステップＢ４）。
【００８２】
該通知を受信したメモリ同期管理手段２１２は、メモリ制御手段２１１を介して、仮想マシン２００に割り当てられているメモリデータと、マスタメモリ３０３とを比較し、その差分を差分メモリ３０５として物理メモリ３０１上に生成する（ステップＢ５）。
【００８３】
メモリ制御手段２１１は、差分メモリ３０５を、ディスク制御手段２１３を介して記憶領域４１０上に差分メモリファイル４０２として保存する（ステップＢ６）。差分メモリファイル４０２の生成処理が完了したのち、仮想マシン２００は停止される（ステップＢ７）。
【００８４】
マスタメモリ３０３と、マスタメモリファイル４０１と、差分メモリファイル４０２の生成は、それ以降で実施される各仮想マシン起動の前に実施されている必要がある。
【００８５】
図５は、マスタ仮想マシン１００、または仮想マシン２００の起動の動作を示すフローチャートである。
【００８６】
ＶＭＭ２０２は、仮想マシンの起動を検出した場合（ステップＣ１）、その仮想マシンがマスタ仮想マシン１００か、仮想マシン２００かを判定する（ステップＣ２）。
【００８７】
起動される仮想マシンが、仮想マシン２００である場合、メモリ制御手段２１１は記憶領域４１０上の、差分メモリファイル４０２を読み込み、物理メモリ３０１上に差分メモリ３０５を展開する（ステップＣ３、ステップＣ４）。
【００８８】
メモリ制御手段２１１は、物理メモリ３０１上のマスタメモリ３０３と、差分メモリ３０５から、仮想マシン２００の仮想メモリ２０４を構成し、それを割り当てる（ステップＣ５）。
【００８９】
ステップＣ２で、起動される仮想マシンが、マスタ仮想マシン１００である場合、メモリ制御手段２１１は、物理メモリ３０１上のマスタメモリ３０３への参照のみとなる差分メモリＭ３０４を生成し、マスタ仮想マシン１００の仮想メモリ１０４を構成し、それを割り当てる（ステップＣ６）。
【００９０】
仮想マシンの仮想メモリが構成された後、仮想マシンの起動処理を再開する（ステップＣ７）。
【００９１】
（第１の実施の形態による効果）
第一の効果は、仮想マシン起動処理の特定の時点までにおいて、処理に必要な物理リソースの消費を回避する点である。この結果、ＶＭＭの性能低下を回避することが可能となる。
【００９２】
その理由は、事前に各仮想マシンの起動から特定の時点までに展開される仮想マシンメモリを、仮想マシン間で共有可能なマスタメモリと、仮想マシンごとに持つ固有データとして差分メモリ、から構成しておくことで、特定の時点以降の処理から再開することが可能となるからである。
【００９３】
第二の効果は、仮想マシン起動処理の特定時点までにおいて、処理に必要な時間を回避する点である。この結果、仮想マシン起動から利用者が使用できるまでの時間を短縮することが可能となる。
【００９４】
その理由は、上述した通り、特定の時点以降の処理から仮想マシンの起動を再開することが可能となるからである。
【００９５】
ここで、本発明の課題を解決できる最小限の構成を図６に示す。仮想化システム１０００が、ＶＭＭ２１０を備え、仮想マシン１００、２００が動作する仮想サーバ３００と、記憶装置４００とを備え、仮想マシン１００、２００が、ゲストＯＳ１０２、２０２起動時に任意のタイミングで仮想マシンのメモリデータを採取するためのトリガをＶＭＭ２１０に発行するメモリ同期手段１０５、２０５を備え、ＶＭＭ２１０が、トリガを受信し、仮想マシンの動作を停止させる同期管理手段２０２と、トリガを契機にその時点における仮想マシンのメモリデータを採取するメモリ制御手段２１１とを備え、メモリ制御手段２１１は、採取したメモリデータを仮想サーバ３００上の物理メモリ３０１に保存し、複数の仮想マシンから任意に選出されたマスタ仮想マシンのメモリデータをマスタメモリ３０３として物理メモリ３０１に保存するとともに、マスタメモリファイル４０１として記憶装置４００上に保存し、マスタ仮想マシン以外の仮想マシンのメモリデータと、マスタメモリ３０３とを比較して、マスタメモリ３０３と異なる部分を差分データとして抽出し、当該差分データを差分メモリファイル４０２として記憶装置４００上に保存することで、上述した本発明の課題を解決することができる。
【００９６】
本発明の他の実施例について以下に説明する。
【００９７】
本発明は、ＶＭＭ１台に閉じた環境に限らず、同一構成、つまり同一のマスタディスクファイルを使用する仮想マシンが稼働するＶＭＭ上で適用することが可能である。これにより、複数ＶＭＭ間でマスタメモリおよびマスタメモリファイルを共有することが可能である。
【００９８】
マスタメモリを共有する場合、１台のＶＭＭでマスタメモリ生成後、そのマスタメモリをネットワークや物理的な保存媒体を介し、他のＶＭＭ上の物理メモリ上にコピーを行い共有する。
【００９９】
マスタメモリファイルを共有する場合、マスタメモリ同様に、ネットワークや物理的な媒体を介す、または記憶装置自体を共有している場合は直接マスタメモリファイルにアクセスすることで、共有する。
【０１００】
複数ＶＭＭ間で、マスタメモリおよびマスタメモリファイルを共有することで、マスタメモリ、マスタメモリファイルの作成処理の回数が低減できるため、物理リソース消費の削減、および処理時間の短縮が可能となる。
【０１０１】
次に、本発明の仮想サーバ３００のハードウェア構成例について、図７を参照して説明する。
【０１０２】
図７を参照すると、本発明の仮想サーバ３００は、一般的なコンピュータ装置と同様のハードウェア構成であり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１００１、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等のメモリからなる、データの作業領域やデータの一時退避領域に用いられる主記憶部１００２、ネットワークを介してデータの送受信を行う通信部１００３、入力装置１００５や出力装置１００６及び記憶装置１００７と接続してデータの送受信を行う入出力インタフェース部１００４、上記各構成要素を相互に接続するシステムバス１００８を備えている。記憶装置１００７は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、磁気ディスク、半導体メモリ等の不揮発性メモリから構成されるハードディスク装置等で実現される。
【０１０３】
本発明の仮想サーバ３００の各機能は、プログラムを組み込んだ、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等のハードウェア部品である回路部品を実装することにより、その動作をハードウェア的に実現することは勿論として、その機能を提供するプログラムを、記憶装置１００７に格納し、そのプログラムを主記憶部１００２にロードしてＣＰＵ１００１で実行することにより、ソフトウェア的に実現することも可能である。
【０１０４】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものでなく、その技術的思想の範囲内において様々に変形して実施することができる。
【０１０５】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、記録媒体、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【０１０６】
また、本発明の各種の構成要素は、必ずしも個々に独立した存在である必要はなく、複数の構成要素が一個の部材として形成されていること、一つの構成要素が複数の部材で形成されていること、ある構成要素が他の構成要素の一部であること、ある構成要素の一部と他の構成要素の一部とが重複していること、等でもよい。
【０１０７】
また、本発明の方法およびコンピュータプログラムには複数の手順を順番に記載してあるが、その記載の順番は複数の手順を実行する順番を限定するものではない。このため、本発明の方法およびコンピュータプログラムを実施する時には、その複数の手順の順番は内容的に支障しない範囲で変更することができる。
【０１０８】
また、本発明の方法およびコンピュータプログラムの複数の手順は個々に相違するタイミングで実行されることに限定されない。このため、ある手順の実行中に他の手順が発生すること、ある手順の実行タイミングと他の手順の実行タイミングとの一部ないし全部が重複していること、等でもよい。
【０１０９】
さらに、上記実施形態の一部又は全部は、以下の付記のようにも記載されうるが、これに限定されない。
【０１１０】
（付記１）
ＶＭＭを備え、仮想マシンが動作する仮想サーバと、
記憶装置とを備え、
前記仮想マシンが、ゲストＯＳ起動時に任意のタイミングで仮想マシンのメモリデータを採取するためのトリガを前記ＶＭＭに発行するメモリ同期手段を備え、
前記ＶＭＭが、
前記トリガを受信し、前記仮想マシンの動作を停止させる同期管理手段と、
前記トリガを契機にその時点における前記仮想マシンのメモリデータを採取するメモリ制御手段とを備え、
前記メモリ制御手段は、
採取した前記メモリデータを前記仮想サーバ上の物理メモリに保存し、
複数の前記仮想マシンから任意に選出されたマスタ仮想マシンの前記メモリデータをマスタメモリとして前記物理メモリに保存するとともに、マスタメモリファイルとして前記記憶装置上に保存し、
前記マスタ仮想マシン以外の前記仮想マシンのメモリデータと、前記マスタメモリとを比較して、前記マスタメモリと異なる部分を差分データとして抽出し、当該差分データを差分メモリファイルとして前記記憶装置上に保存する
ことを特徴とする仮想化システム。
【０１１１】
（付記２）
前記メモリ制御手段は、
前記差分メモリ及び差分メモリファイルの保存を、前記マスタ仮想マシン以外の全ての前記仮想マシンについて実施する
ことを特徴とする付記１に記載の仮想化システム。
【０１１２】
（付記３）
前記メモリ制御手段は、
前記マスタ仮想マシンが起動された場合、当該マスタ仮想マシン起動後にデータ更新部分の書き込みがされる差分メモリを前記物理メモリ上に構成し、当該差分メモリと前記マスタメモリを前記マスタ仮想マシンの仮想メモリとして割り当てて、前記マスタ仮想マシンの起動処理を再開する
ことを特徴とする付記１又は付記２に記載の仮想化システム。
【０１１３】
（付記４）
前記メモリ制御手段は、
前記マスタ仮想マシン以外の前記仮想マシンが起動された場合、当該仮想マシンの前記差分メモリファイルを前記記憶装置から読み出して、前記物理メモリ上に差分メモリとして展開し、
前記差分メモリと前記マスタメモリを前記仮想マシンの仮想メモリとして割り当てて、前記マスタ仮想マシンの起動処理を再開する
ことを特徴とする付記１から付記３の何れか１項に記載の仮想化システム。
【０１１４】
（付記５）
ＶＭＭを備え、仮想マシンが動作する仮想サーバであって、
前記仮想マシンが、ゲストＯＳ起動時に任意のタイミングで仮想マシンのメモリデータを採取するためのトリガを前記ＶＭＭに発行するメモリ同期手段を備え、
前記ＶＭＭが、
前記トリガを受信し、前記仮想マシンの動作を停止させる同期管理手段と、
前記トリガを契機にその時点における前記仮想マシンのメモリデータを採取するメモリ制御手段とを備え、
前記メモリ制御手段は、
採取した前記メモリデータを前記仮想サーバ上の物理メモリに保存し、
複数の前記仮想マシンから任意に選出されたマスタ仮想マシンの前記メモリデータをマスタメモリとして前記物理メモリに保存するとともに、マスタメモリファイルとして記憶装置上に保存し、
前記マスタ仮想マシン以外の前記仮想マシンのメモリデータと、前記マスタメモリとを比較して、前記マスタメモリと異なる部分を差分データとして抽出し、当該差分データを差分メモリファイルとして前記記憶装置上に保存する
ことを特徴とする仮想サーバ。
【０１１５】
（付記６）
前記メモリ制御手段は、
前記差分メモリ及び差分メモリファイルの保存を、前記マスタ仮想マシン以外の全ての前記仮想マシンについて実施する
ことを特徴とする付記５に記載の仮想サーバ。
【０１１６】
（付記７）
前記メモリ制御手段は、
前記マスタ仮想マシンが起動された場合、当該マスタ仮想マシン起動後にデータ更新部分の書き込みがされる差分メモリを前記物理メモリ上に構成し、当該差分メモリと前記マスタメモリを前記マスタ仮想マシンの仮想メモリとして割り当てて、前記マスタ仮想マシンの起動処理を再開する
ことを特徴とする付記５又は付記６に記載の仮想サーバ。
【０１１７】
（付記８）
前記メモリ制御手段は、
前記マスタ仮想マシン以外の前記仮想マシンが起動された場合、当該仮想マシンの前記差分メモリファイルを前記記憶装置から読み出して、前記物理メモリ上に差分メモリとして展開し、
前記差分メモリと前記マスタメモリを前記仮想マシンの仮想メモリとして割り当てて、前記マスタ仮想マシンの起動処理を再開する
ことを特徴とする付記５から付記７の何れか１項に記載の仮想サーバ。
【０１１８】
（付記９）
ＶＭＭを備え、仮想マシンが動作する仮想サーバによる仮想マシン制御方法であって、
前記仮想マシンが備えるメモリ同期手段が、ゲストＯＳ起動時に任意のタイミングで仮想マシンのメモリデータを採取するためのトリガを前記ＶＭＭに発行するメモリ同期ステップと、
前記ＶＭＭが備える同期管理手段が、前記トリガを受信し、前記仮想マシンの動作を停止させる同期管理ステップと、
前記ＶＭＭが備えるメモリ制御手段が、前記トリガを契機にその時点における前記仮想マシンのメモリデータを採取するメモリ制御ステップとを有し、
前記メモリ制御ステップで、
採取した前記メモリデータを前記仮想サーバ上の物理メモリに保存し、
複数の前記仮想マシンから任意に選出されたマスタ仮想マシンの前記メモリデータをマスタメモリとして前記物理メモリに保存するとともに、マスタメモリファイルとして記憶装置上に保存し、
前記マスタ仮想マシン以外の前記仮想マシンのメモリデータと、前記マスタメモリとを比較して、前記マスタメモリと異なる部分を差分データとして抽出し、当該差分データを差分メモリファイルとして前記記憶装置上に保存する
ことを特徴とする仮想マシン制御方法。
【０１１９】
（付記１０）
前記メモリ制御ステップで、
前記差分メモリ及び差分メモリファイルの保存を、前記マスタ仮想マシン以外の全ての前記仮想マシンについて実施する
ことを特徴とする付記９に記載の仮想マシン制御方法。
【０１２０】
（付記１１）
前記メモリ制御ステップで、
前記マスタ仮想マシンが起動された場合、当該マスタ仮想マシン起動後にデータ更新部分の書き込みがされる差分メモリを前記物理メモリ上に構成し、当該差分メモリと前記マスタメモリを前記マスタ仮想マシンの仮想メモリとして割り当てて、前記マスタ仮想マシンの起動処理を再開する
ことを特徴とする付記９又は付記１０に記載の仮想マシン制御方法。
【０１２１】
（付記１２）
前記メモリ制御ステップで、
前記マスタ仮想マシン以外の前記仮想マシンが起動された場合、当該仮想マシンの前記差分メモリファイルを前記記憶装置から読み出して、前記物理メモリ上に差分メモリとして展開し、
前記差分メモリと前記マスタメモリを前記仮想マシンの仮想メモリとして割り当てて、前記マスタ仮想マシンの起動処理を再開する
ことを特徴とする付記９から付記１１の何れか１項に記載の仮想マシン制御方法。
【０１２２】
（付記１３）
ＶＭＭを備え、仮想マシンが動作する仮想サーバを構成するコンピュータ上で動作する仮想マシン制御プログラムであって、
前記仮想マシンが備えるメモリ同期手段に、ゲストＯＳ起動時に任意のタイミングで仮想マシンのメモリデータを採取するためのトリガを前記ＶＭＭに発行するメモリ同期処理を実行させ、
前記ＶＭＭが備える同期管理手段に、前記トリガを受信し、前記仮想マシンの動作を停止させる同期管理処理を実行させ、
前記ＶＭＭが備えるメモリ制御手段に、前記トリガを契機にその時点における前記仮想マシンのメモリデータを採取するメモリ制御処理を実行させ、
前記メモリ制御処理で、
採取した前記メモリデータを前記仮想サーバ上の物理メモリに保存し、
複数の前記仮想マシンから任意に選出されたマスタ仮想マシンの前記メモリデータをマスタメモリとして前記物理メモリに保存するとともに、マスタメモリファイルとして記憶装置上に保存し、
前記マスタ仮想マシン以外の前記仮想マシンのメモリデータと、前記マスタメモリとを比較して、前記マスタメモリと異なる部分を差分データとして抽出し、当該差分データを差分メモリファイルとして前記記憶装置上に保存する
ことを特徴とする仮想マシン制御プログラム。
【０１２３】
（付記１４）
前記メモリ制御処理で、
前記差分メモリ及び差分メモリファイルの保存を、前記マスタ仮想マシン以外の全ての前記仮想マシンについて実施する
ことを特徴とする付記１３に記載の仮想マシン制御プログラム。
【０１２４】
（付記１５）
前記メモリ制御処理で、
前記マスタ仮想マシンが起動された場合、当該マスタ仮想マシン起動後にデータ更新部分の書き込みがされる差分メモリを前記物理メモリ上に構成し、当該差分メモリと前記マスタメモリを前記マスタ仮想マシンの仮想メモリとして割り当てて、前記マスタ仮想マシンの起動処理を再開する
ことを特徴とする付記１３又は付記１４に記載の仮想マシン制御プログラム。
【０１２５】
（付記１６）
前記メモリ制御処理で、
前記マスタ仮想マシン以外の前記仮想マシンが起動された場合、当該仮想マシンの前記差分メモリファイルを前記記憶装置から読み出して、前記物理メモリ上に差分メモリとして展開し、
前記差分メモリと前記マスタメモリを前記仮想マシンの仮想メモリとして割り当てて、前記マスタ仮想マシンの起動処理を再開する
ことを特徴とする付記１３から付記１５の何れか１項に記載の仮想マシン制御プログラム。
【産業上の利用可能性】
【０１２６】
本発明によれば、差分ディスクの仮想マシン環境であれば本発明を適用することが可能である。特に本発明が高い効果を発揮するのは、ＯＳやアプリケーションが同一の仮想マシン環境であり、さらに仮想マシンの台数が多いシステムであるため、ＶＤＩでの利用が最適であると考えられる。
【符号の説明】
【０１２７】
１００：マスタ仮想マシン
１０１、２０１：仮想ハードウェア
１０２、２０２：ゲストＯＳ
１０３、２０３：仮想ディスク
１０４、２０４：仮想メモリ
１０５、２０５：メモリ同期手段
２００：仮想マシン
２１０：ＶＭＭ
２１１：メモリ制御手段
２１２：メモリ同期管理手段
２１３：ディスク制御手段
３００：仮想サーバ
３０１：物理メモリ
３０２：ＩＯデバイス
３０３：マスタメモリ
３０４：差分メモリＭ
３０５：差分メモリ
４００：記憶装置
４０１：マスタメモリファイル
４０２：差分メモリファイル
４０３：マスタディスクファイル
４０４：差分ディスクファイルＭ
４０５：差分ディスクファイル
４１０：記憶領域
１０００：仮想化システム
８０１：ＣＰＵ
８０２：主記憶部
８０３：通信部
８０４：入出力インタフェース部
８０５：入力装置
８０６：出力装置
８０７：記憶装置
８０８：システムバス
【図１】
2014197337.tif 000003
【図２】
2014197337.tif 000004
【図３】
2014197337.tif 000005
【図４】
2014197337.tif 000006
【図５】
2014197337.tif 000007
【図６】
2014197337.tif 000008
【図７】
2014197337.tif 000009