(57)【要約】【課題】  既存の仮想マシンイメージをリンククローン形式に変換する機能、専用I/Oアプライアンスや独自のデータ形式を用いずマスタのディスクイメージにOSのホットフィックス、アプリケーションをインストールする機能を持つリンククローンの作成方法を提供する。【解決手段】  複数の仮想マシンイメージから共通のデータを抽出し、マスタのディスクイメージを作成するステップと、作成した前記マスタのディスクイメージと仮想マシンイメージの差分を抽出し、デルタディスクを作成することで、既存の仮想マシンイメージをリンククローン形式に変換するステップとから成る。  さらに、マスタのディスクイメージにOSのホットフィックス、アプリケーションをインストールした後で、マスタのディスクイメージ、デルタディスクを任意のホストにマウントし、同一セクタへのデータの書き込みを排除するためのディスクレイアウト再配置処理を実行するステップを備える。【選択図】      図７
2011221597.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンにおけるリンククローンの作成方法であって、
前記リンククローンの作成過程が、
複数の仮想マシンイメージから共通のデータを抽出し、マスタのディスクイメージを作成するステップと、作成した前記マスタのディスクイメージと仮想マシンイメージの差分を抽出し、デルタディスクを作成することで、既存の仮想マシンイメージをリンククローン形式に変換するステップとから成ることを特徴とするリンククローン作成方法。
【請求項２】
前記マスタのディスクイメージにOSのホットフィックス、アプリケーションをインストールした後で、マスタのディスクイメージ、デルタディスクを任意のホストにマウントし、同一セクタへのデータの書き込みを排除するためのディスクレイアウト再配置処理を実行するステップを備え、専用I／Oアプライアンスや独自のデータ形式を用いることなく、マスタのディスクイメージにOSのホットフィックス、アプリケーションをインストールすることを特徴とする請求項１に記載のリンククローン作成方法。
【請求項３】
仮想マシンにおけるリンククローンの作成プログラムであって、
前記リンククローンの作成プログラムが、
複数の仮想マシンイメージから共通のデータを抽出し、マスタのディスクイメージを作成するステップと、作成した前記マスタのディスクイメージと仮想マシンイメージの差分を抽出し、デルタディスクを作成することで、既存の仮想マシンイメージをリンククローン形式に変換するステップとを備えることを特徴とするリンククローン作成プログラム。
【請求項４】
前記リンククローンの作成プログラムが、
マスタのディスクイメージにOSのホットフィックス、アプリケーションをインストールした後で、マスタのディスクイメージ、デルタディスクを任意のホストにマウントし、同一セクタへのデータの書き込みを排除するためのディスクレイアウト再配置処理を実行するステップを備え、専用I／Oアプライアンスや独自のデータ形式を用いることなく、マスタのディスクイメージにOSのホットフィックス、アプリケーションをインストールすることを特徴とする請求項１に記載のリンククローン作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想化環境におけるリンククローンの作成方法及びプログラムに関するものである。
【背景技術】
【０００２】
従来、仮想マシンのリンククローンを作成する技術に関して、下記非特許文献１、非特許文献２に記載の技術が知られている。
下記特許文献１に記載のものは、完全クローンとリンククローンに関する技術である。完全クローンでは、仮想マシンのクローンを作成する際にマスタの仮想マシンのディスクイメージ全体をコピーする。一方、リンククローンでは、複数の仮想マシン間で共有するマスタのディスクイメージを持ち、個々の仮想マシン固有のデータをマスタのディスクイメージとの差分（デルタディスク）として保持する。リンククローンを用いれば複数の仮想マシン間でマスタのディスクイメージを共有するため、新規の仮想マシンの作成に必要なディスク容量、作成時間を大幅に削減できる。
また、下記非特許文献２に記載のFlocks技術では、デルタディスクをブロックデータとファイルデータの両方で格納しておき（格納形式は必要に応じて使い分ける）、ブート時に仮想マシンのディスクイメージを構成する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】VMware社ディスククローン機能（完全クローン、リンククローン）http://vmware.com/files/jp/pdf/ws7_manual.pdf
【非特許文献２】Atlantis Comuting社Flocks技術http://www.atlantiscomputing.com/web/index.php  option=com_content&view=article&id=50%3Aatlantis-article-ilio-for-vdi&catid=37%3Aatlantis-ilio&Itemid=28
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記非特許文献１、非特許文献２に記載の技術は、マスタの仮想マシンのディスクイメージから新規にリンククローンを作成することを前提としているため、既存の仮想マシンイメージ（非リンククローン）をリンククローン形式に変換することはできない。
【０００５】
また、リンククローン形式にも幾つかの運用上の制限事項がある。例えば、上記非特許文献１に記載の技術は、マスタのディスクイメージにOSのホットフィックス、アプリケーションをインストールできない。これはユーザデータ（デルタディスク上）と同一のディスクのセクタにOSのホットフィックス、アプリケーションのデータが書き込まれる可能性があるためである。
一方、上記非特許文献２に記載の技術を用いれば、例えば、OSのホットフィックス、アプリケーションをファイルデータとして格納しておき、ブート時に仮想マシンのディスクイメージに組み込む方法でリンククローンの制限事項を取り除くことができる。しかしながら、ファイルＩ／Ｏをフィルタリングする専用のアプライアンス装置が必要になるため、Ｉ／Ｏが集中することで性能上のボトルネックとなる。また、Flocksという独自のデータ形式を用いることもシステムの汎用性を確保する上で問題がある。
【０００６】
本発明は、上記の問題点を踏まえ、
（１）既存の仮想マシンイメージ（非リンククローン形式）をリンククローン形式に変換する機能、
（２）専用Ｉ／Ｏアプライアンスや、独自のデータ形式を用いることなく、マスタのディスクイメージにOSのホットフィックス、アプリケーションをインストールする機能、
を持つリンククローンの作成方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、上記目的を達成するため、本発明における仮想マシンにおけるリンククローンの作成方法は、前記リンククローンの作成過程が、
複数の仮想マシンイメージから共通のデータを抽出し、マスタのディスクイメージを作成するステップと、作成した前記マスタのディスクイメージと仮想マシンイメージの差分を抽出し、デルタディスクを作成することで、既存の仮想マシンイメージをリンククローン形式に変換するステップとから成ることを特徴とする。
また、前記マスタのディスクイメージにOSのホットフィックス、アプリケーションをインストールした後で、マスタのディスクイメージ、デルタディスクを任意のホストにマウントし、同一セクタへのデータの書き込みを排除するためのディスクレイアウト再配置処理を実行するステップを備え、専用I／Oアプライアンスや独自のデータ形式を用いることなく、マスタのディスクイメージにOSのホットフィックス、アプリケーションをインストールすることを特徴とする。
【０００８】
また、本発明に係るプログラムは、仮想マシンにおけるリンククローンの作成プログラムであって、
前記リンククローンの作成プログラムが、
複数の仮想マシンイメージから共通のデータを抽出し、マスタのディスクイメージを作成するステップと、作成した前記マスタのディスクイメージと仮想マシンイメージの差分を抽出し、デルタディスクを作成することで、既存の仮想マシンイメージをリンククローン形式に変換するステップとを備えることを特徴とする。
また、前記リンククローンの作成プログラムが、
マスタのディスクイメージにOSのホットフィックス、アプリケーションをインストールした後で、マスタのディスクイメージ、デルタディスクを任意のホストにマウントし、同一セクタへのデータの書き込みを排除するためのディスクレイアウト再配置処理を実行するステップを備え、専用I／Oアプライアンスや独自のデータ形式を用いることなく、マスタのディスクイメージにOSのホットフィックス、アプリケーションをインストールすることを特徴とする。
【発明の効果】
【０００９】
本発明によれば、既存の仮想マシンイメージ（非リンククローン形式）をリンククローン形式に変換することができ、専用Ｉ／Ｏアプライアンスや、独自のデータ形式を用いることなく、マスタのディスクイメージにＯＳのホットフィックス、アプリケーションをインストールできるリンククローンを作成できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態を示すシステム構成図である。
【図２】本発明におけるリンククローンのディスク構成を示す図である。
【図３】本発明におけるリンククローンの課題を説明する図である。
【図４】本発明の従来技術であるFlocksテクノロジーの概略を説明する図である。
【図５】本発明におけるマスタファイルテーブルの構成を示す図である。
【図６】本発明におけるリンククローン変換方法を示す図である。
【図７】本発明におけるディスクレイアウト再配置方法を示す図である。
【図８】本発明におけるディスク構成変更プログラムのリンククローン変換処理のフローチャートである。
【図９】本発明におけるディスク構成変更プログラムのディスクレイアウト再配置処理のフローチャートである。
【図１０】本  発明における仮想マシンテンプレートのディスクレイアウト再配置処理のフローチャートである。
【図１１】本発明におけるデルタディスクのディスクレイアウト再配置処理のフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明を実施する場合の一形態を図面を参照して具体的に説明する。
図１は本発明の実施の形態を示すシステム構成図である。
この実施の形態の仮想マシンモニタ（１）上には仮想マシンテンプレート（２０）、仮想マシン１（３０）、仮想マシン２（４０）、仮想マシン３（５０）など複数の仮想マシンが稼動している。個々の仮想マシンにはストレージ装置（１０）上のディスク領域が割り当てられている。
仮想マシン１（３０）と仮想マシン２（４０）はリンククローン、仮想マシン３（５０）は通常の仮想マシンであると仮定する。
【００１２】
リンククローンでは、複数の仮想マシン間で共有するOSやアプリケーションの構成ファイルが格納されるマスタのディスクイメージと、個々の仮想マシン固有のデータ（ユーザデータ）が保存されるデルタディスクが管理されており、仮想マシンモニタ（１）がマスタのディスクイメージとデルタディスクへのＩ／Ｏの振り分け処理を実行する（デルタディスク、マスタのディスクイメージの順にアクセスし、必要なデータを取得する）。
【００１３】
マスタのディスクイメージ（１０１）は仮想マシンテンプレート（２０）に対応する仮想ディスクである。また、デルタディスク１（１０２）とデルタディスク２（１０３）はマスタのディスクイメージ（１０１）との差分であり、それぞれ仮想マシン１（３０）と仮想マシン２（４０）に対応する。また、仮想マシンのディスクイメージ（１０４）は仮想マシン３（５０）に対応する。
ディスク構成変更プログラム（２）は、任意のホストで動作し、マスタのディスクイメージへのOSのホットフィックス、アプリケーションのインストールを可能にするためのディスクレイアウト再配置機能と、仮想マシンのディスクイメージ（１０４）からマスタのディスクイメージ（１０１）とデルタディスク（１０２または１０３）を作成する機能を持つ専用のプログラムである。
【００１４】
図２は本発明におけるリンククローンのディスク構成を示す。
デルタディスク１（１０２）とデルタディスク２（１０３）では同一セクタへのデータの書き込みは許可される。これは、仮想マシンモニタ（１）がデルタディスク１（１０２）とデルタディスク２（１０３）をそれぞれ別のディスクと認識するためである。
【００１５】
図３は本発明におけるリンククローンの課題を説明する図である。
リンククローンでは、マスタのディスクイメージ（１０１）にOSのホットフィックス、アプリケーションをインストールできない。仮にマスタのディスクイメージ（１０１）上に適用したOSのホットフィックス、アプリケーションと、デルタディスク（１０２、または１０３）上のユーザデータが同一セクタに書き込まれた場合、仮想マシンモニタ（１）はマスタのディスクイメージとデルタディスクへのＩ／Ｏの振り分け処理を正しく実行できなくなるためである。
【００１６】
図４は本発明における従来技術として、Flocksテクノロジーの概略を説明する図である。
Flocksテクノロジーでは、マスタのディスクイメージ（１０１）との差分をFlocks（１０４、１０５）という専用のデータ形式で管理する。デルタディスクはブロックデータのみ、Flocksはブロックデータとファイルを組合せたデータである。差分をFlocks形式で保存するため、FlocksテクノロジーではいＩ／Ｏフィルタアプライアンス（６０）がマスタのディスクイメージ（１０１）とFlocks（１０４、１０５）の振り分け処理を実行する。また、仮想マシン１（３０）と仮想マシン２（４０）には専用エージェント（３１、４１）を組み込んでおき、仮想マシン（３０、４０）内で発生するファイルＩ／Ｏ（Read/Write）をインターセプトし、Ｉ／Ｏフィルタアプライアンス（６０）に転送することで、仮想マシンモニタ（１）に先んじて振り分け処理を実行することができるようになる。
【００１７】
図５は本発明におけるマスタファイルテーブルの構成を示す図である。
通常、仮想マシンのディスクイメージにはマスタファイルテーブルが存在する。
マスタファイルテーブルには、ファイルのレイアウト情報（ファイルがディスク上のどのセクタに格納されているかを示すテーブル）が保存されている。
マスタファイルテーブルには２通りのデータの格納方法がある。
レコード１（１０７）はディスクのクラスタサイズ（通常は４０９６バイト）を超えるファイルを格納するための格納形式であり、ファイル名、日付、インデックス（インデックス１、インデックス２、…）からなる。ファイル全体を１レコードに含めることができないため、代わりにファイルデータを保持しているセクタの参照情報をインデックス形式で保持する。本例では、インデックス１、インデックス２はそれぞれマスタのディスクイメージのセクタＭ、セクタＮをポイントする例を示している。
一方、レコード２（１０８）はディスクのクラスタサイズ以下の小さなファイルを格納するための格納形式であり、ファイル名、日付、ファイルデータからなる。レコード１（１０７）とは異なり、ファイル全体を１レコードに含めることができる。
【００１８】
図６は本発明におけるリンククローン変換方法を示す図である。
本例では、説明を判りやすくするため、仮想マシンのディスクイメージ（１０４）がマスタのディスクイメージ（１０１）の完全クローンである場合について説明する。
本発明のディスク構成変更プログラム（２）はマスタのディスクイメージ（１０１）と仮想マシンのディスクイメージ（１０４）のブロック単位の差分データを抽出する。この差分データがそのままデルタディスク（１０９）になる。仮にマスタのディスクイメージ（１０１）が存在しない場合は、複数の仮想マシンのディスクイメージから任意のディスクイメージをマスタのディスクイメージ（１０１）として選択するだけである。
【００１９】
図７は本発明におけるマスタのディスクレイアウト再配置方法を示す図である。
本例は、マスタのディスクイメージ（１０１）にＯＳのホットフィックス、アプリケーションをインストールした直後の構成である。
本発明のディスク構成変更プログラム（２）は、マスタのディスクイメージ（１０１）、デルタディスク１（１０２）を任意のホストにマウントし、同一セクタへのデータの書き込みを排除するためのディスクレイアウト再配置処理を実行する。こうすることで、専用Ｉ／Ｏアプライアンスや、独自のデータ形式を用いる必要がなくなる。
【００２０】
本例はディスクレイアウト再配置処理の一実施例である。具体的には、マスタのディスクイメージ（１０１）のOSのホットフィックス、アプリケーションを格納しているセクタをディスクの前方に再配置する（再配置後のマスタのディスクイメージ（１１１））。デルタディスク（１１０）は、データをディスクの後方に再配置する（再配置後のデルタディスク（１１２））。
セクタ再配置に伴い、マスタファイルテーブルの各レコードの内容を更新する必要があることは言うまでもない。
【００２１】
以下、本発明を実施する場合の処理の流れをフローチャートを用いて具体的に説明する。
図８は本発明におけるディスク構成変更プログラム（２）のリンククローン変換処理のフローチャートである。
ディスク構成変更プログラム（２）は、ユーザからリンククローン変換要求を待ち（ステップ８０１）、リンククローン変換要求を受信すると（ステップ８０２）、マスタのディスクイメージを選択する（ステップ８０３）。
仮想マシンテンプレート（マスタのディスクイメージ（１０１））が存在する場合は仮想マシンテンプレートを選択するが、仮想マシンテンプレートが存在しない場合は任意の仮想マシンのディスクイメージをマスタのディスクイメージとする。
【００２２】
マスタのディスクイメージと仮想マシンの全てのブロックの比較を終了したかチェックし（ステップ８０４）、チェック済みでないブロックが存在する間はブロックデータの比較を行う（ステップ８０５）。
ステップ８０５でマスタのディスクイメージと仮想マシンの対応するブロックデータが異なる場合はデルタディスクに差分ブロックとして追加し（ステップ８０６）、それ以外の場合はステップ８０４から繰り返す。
マスタのディスクイメージと仮想マシンの全てのブロックの比較を終了した後で処理を終了する。
【００２３】
図９は本発明におけるディスク構成変更プログラム（２）のディスクレイアウト再配置処理のフローチャートである。
ディスク構成変更プログラム（２）は、ユーザが仮想マシンテンプレート（マスタのディスクイメージ（１０１））にOSのホットフィックス、アプリケーションをインストールした後で実行される。
ユーザからのディスクレイアウト再配置要求を待ち（ステップ９０１）、ユーザからのディスクレイアウト再配置要求を受信すると（ステップ９０２）、仮想マシンテンプレート（マスタのディスクイメージ（１０１））のディスクレイアウト再配置処理（A）を実行する（ステップ９０３）。
全てのデルタディスクの再配置を終了したかチェックし（ステップ９０４）、再配置が済みでないデルタディスクが存在する間はデルタディスクのディスクレイアウト再配置処理（B）を実行する（ステップ９０５）。
全てのデルタディスクを再配置した後で処理を終了する。
【００２４】
図１０は本発明における仮想マシンテンプレートのディスクレイアウト再配置処理の一実施形態のフローチャートである。
ディスク構成変更プログラム（２）は仮想マシンテンプレート（マスタのディスクイメージ（１０１））を任意のホストにマウントし（ステップ９１１）、マスタファイルテーブルに登録されている全てのファイルの探索が終了したかをチェックする（ステップ９１２）。
ステップ９１２でファイルの探索が終了していない間は、ディスクの先頭ブロックに近い空きブロックにファイルを移動し（ステップ９１３）、マスタファイルテーブルの対応するファイルのレコード情報を書き換える（ステップ９１４）、ステップ９１２から繰り返す。全てのファイルの探索が終了した後で処理を終了する。
【００２５】
図１１は本発明におけるデルタディスクのディスクレイアウト再配置処理の一実施形態のフローチャートである。
ディスク構成変更プログラム（２）はデルタディスク１（１０２）を任意のホストにマウントし（ステップ９２１）、マスタファイルテーブルに登録されている全てのファイルの探索が終了したかをチェックする（ステップ９２２）。ステップ９２２でファイルの探索が終了していない間は、ディスクの後方ブロックに近い空きブロックにファイルを移動し（ステップ９２３）。マスタファイルテーブルの対応するファイルのレコード情報を書き換え（ステップ９２４）、ステップ９２２から繰り返す。全てのファイルの探索が終了した後で処理を終了する。
【符号の説明】
【００２６】
１…仮想マシンモニタ
２…ディスク構成変更プログラム
１０…ストレージ装置
２０…仮想マシンテンプレート
３０…仮想マシン１
４０…仮想マシン２
５０…仮想マシン３
１０１…マスタのディスクイメージ
１０２…デルタディスク１
１０３…デルタディスク２
１０４…仮想マシンのディスクイメージ
【図１】
2011221597.tif 000003
【図２】
2011221597.tif 000004
【図３】
2011221597.tif 000005
【図４】
2011221597.tif 000006
【図５】
2011221597.tif 000007
【図６】
2011221597.tif 000008
【図７】
2011221597.tif 000009
【図８】
2011221597.tif 000010
【図９】
2011221597.tif 000011
【図１０】
2011221597.tif 000012
【図１１】
2011221597.tif 000013