(57)【要約】【課題】複数の仮想マシンを管理する仮想マシン管理システムにおいて、多様化するゲストＯＳのイメージファイルを一元化することで、ゲストＯＳ及びゲストＯＳ上で動作するＡＰの管理を容易にすること、並びにゲストＯＳのアップデートの際にＡＰ環境を容易に元に戻せるようにすることを目的とする。【解決手段】ゲストＯＳ上で動作する複数のＡＰに関連するデータを１つの仮想ＡＰイメージファイルとして分離して保存し、ゲストＯＳのイメージファイルを一元的に管理する。ゲストＯＳをアップデートする場合は、一元化したゲストＯＳのイメージファイルを１回だけアップデートし、アップデート済みのイメージファイルをその他のゲストＯＳイメージファイルに上書きする。その後、アップデートが完了したゲストＯＳ上に仮想ＡＰイメージファイルをダウンロードし、そのＡＰのイメージファイル上からデータを読み込んでＡＰを起動する。【選択図】図１
2008084029.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想マシンが動作する仮想マシンサーバにおいて、それら複数の仮想マシンを管理する仮想マシン管理システムであって、
前記各仮想マシン毎に、その仮想マシン上で動作するゲストＯＳが管理する仮想ハードディスク上に仮想ＡＰイメージファイルを作成する手段と、
任意の仮想マシン上で動作する任意のモジュールが、その仮想マシン上で動作するゲストＯＳが管理する仮想ハードディスク上の任意の領域に対して、任意のデータの書き込みまたは読み込みの処理を試みた場合に、該書き込みまたは読み込みが指示された領域から、前記仮想ハードディスク上に存在する仮想ＡＰイメージファイル上の所定の領域にリダイレクトを行い、書き込みまたは読み込み先を変更して書き込みまたは読み込みを実行することにより、前記任意のデータを前記仮想ＡＰイメージファイルに分離する手段と、
前記仮想ＡＰイメージファイルを、前記仮想ハードディスクから、前記仮想マシンサーバ上のホストＯＳが管理する物理ハードディスク上へ、バックアップする手段と、
前記物理ハードディスク上の前記仮想ＡＰイメージファイルを、前記仮想ハードディスク上にダウンロードする手段とを備え、
前記任意の仮想マシン上で動作するモジュールに関連するデータを前記ゲストＯＳのイメージファイルから分離することにより、前記ゲストＯＳのイメージファイルを一元的に扱うことを可能にしたことを特徴とする仮想マシン管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の仮想マシン及び仮想マシン上で使用されるＯＳイメージファイルの管理技術に関するものである。
【背景技術】
【０００２】
仮想マシンは、ある特定のハードウェアをエミュレーションする環境、またはそれによって実現された仮想的なマシン環境のことであり、通常何らかのオペレーティング・システム（以後、ＯＳと記述する）上でエミュレーションソフトを実行することにより実現される。また、仮想マシン上では、前記のＯＳとは異なるＯＳやプログラムを動作させることが可能である。このとき、仮想マシンそのものの実行に使われるＯＳのことを「ホストＯＳ」、仮想マシンの上で実行されるＯＳのことを「ゲストＯＳ」という。仮想マシンでは、１台の物理コンピュータ上に複数のマシン環境を構築できることから、リソースの効率的使用を目的としたサーバ集約に利用されている。またその他にも、ゲストＯＳを、１つのイメージファイルとして扱うことが可能であり、イメージファイルのコピーのみで複数のマシン環境を構築することが可能なため、大規模なシステム開発におけるテスト環境の構築等にも利用される。
【０００３】
仮想マシンの構築方法として、下記特許文献１では、ゲストＯＳに適用される設定や、仮想マシンの新規構築・削除等を容易にする手段を提供している。また、複数の仮想マシンを１つの管理コンソール画面上から管理するための仮想マシン管理ツール等も整備されつつある。さらに、Windows（登録商標）のActive Directory（登録商標）等のように、ネットワークで接続されたコンピュータからＯＳの設定を行う手段が存在し、仮想マシンの構築はいっそう容易になってきている。
【特許文献１】特開2005-332223
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、仮想マシンやゲストＯＳの複製・設定が容易にできるようになったことで、仮想マシンは増殖し、ゲストＯＳにおける設定やアプリケーションのインストール状況は多様となるため、管理者は大量、かつ、複雑な管理を行わなければならないという問題がある。
【０００５】
また、従来の仮想マシン管理システムでは、ゲストＯＳをアップデートすると仮想マシン上のゲストＯＳイメージがアップデートしたものに書き替えられてしまうので、それまでに構築したアプリケーション環境を容易に元に戻せないという問題がある。アプリケーション環境を元に戻すためには、再びアプリケーションのインストールから作業を行う必要があった。
【０００６】
本発明は、このような問題に鑑みて発明されたものであり、その目的は、多様化するゲストＯＳのイメージファイルを一元化することで（以後、一元化されたゲストＯＳのイメージファイルをマスターゲストＯＳイメージと呼ぶ）、ゲストＯＳ、及び、ゲストＯＳ上で動作するアプリケーションの管理を容易にすることである。また、ゲストＯＳのアップデートの際にアプリケーション環境を容易に元に戻せるようにすることを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明は、複数の仮想マシンが動作する仮想マシンサーバにおいて、それら複数の仮想マシンを管理する仮想マシン管理システムであって、前記各仮想マシン毎に、その仮想マシン上で動作するゲストＯＳが管理する仮想ハードディスク上に仮想ＡＰイメージファイルを作成する手段と、任意の仮想マシン上で動作する任意のモジュールが、その仮想マシン上で動作するゲストＯＳが管理する仮想ハードディスク上の任意の領域に対して、任意のデータの書き込みまたは読み込みの処理を試みた場合に、該書き込みまたは読み込みが指示された領域から、前記仮想ハードディスク上に存在する仮想ＡＰイメージファイル上の所定の領域にリダイレクトを行い、書き込みまたは読み込み先を変更して書き込みまたは読み込みを実行することにより、前記任意のデータを前記仮想ＡＰイメージファイルに分離する手段と、前記仮想ＡＰイメージファイルを、前記仮想ハードディスクから、前記仮想マシンサーバ上のホストＯＳが管理する物理ハードディスク上へ、バックアップする手段と、前記物理ハードディスク上の前記仮想ＡＰイメージファイルを、前記仮想ハードディスク上にダウンロードする手段とを備え、前記任意の仮想マシン上で動作するモジュールに関連するデータを前記ゲストＯＳのイメージファイルから分離することにより、前記ゲストＯＳのイメージファイルを一元的に扱うことを可能にしたことを特徴とする。
【０００８】
すなわち、本発明では、ゲストＯＳのイメージファイルはマスタゲストＯＳイメージとして一元化する。マスタゲストＯＳイメージをコピーして作成したゲストＯＳ上で任意のモジュールが動作して仮想ＨＤＤに書き込み・読み込みをした場合、それらのデータは仮想ＡＰイメージファイルにリダイレクトされる。これにより、ゲストＯＳイメージと仮想ＡＰイメージとが明確に分離できる。
【０００９】
本発明によれば、ゲストＯＳにおいてアップデート等の更新が容易である。例えば、ゲストＯＳをアップデートしたい場合は、マスターゲストＯＳイメージに対してアップデートを１回行い、仮想マシンサーバ上で動作する任意のゲストＯＳのイメージファイルを、アップデート済みのマスターゲストＯＳイメージで上書することで、ゲストＯＳのアップデートが完了する。この際、アプリケーションに関連する実行コードやデータ等は上記仮想ＡＰイメージファイルとして分離されているので、アップデート済みのマスターゲストＯＳイメージで、ゲストＯＳのイメージファイルの上書きを行っても、ゲストＯＳ上で動作していたアプリケーション等の任意のモジュールのデータは仮想ＡＰイメージファイルとして残されており消えることはない。通常、アプリケーションのインストール状況の異なるゲストＯＳのアップデートを行う場合、前記のゲストＯＳを起動して手動、または、自動でアップデート操作を行う必要があったが、本発明においては、マスターゲストＯＳイメージで上書きするだけで仮想マシンサーバ上に存在する全てのゲストＯＳのアップデートを完了することが可能となる。また、本発明のシステムを使用すれば、起動していないゲストＯＳにおいて、ゲストＯＳを起動させずにアップデートすることも可能となる。
【発明の効果】
【００１０】
本発明によれば、多様化するゲストＯＳのイメージファイルをマスターゲストＯＳイメージとして一元化することで、ゲストＯＳ及びゲストＯＳ上で動作するアプリケーションの管理が容易になる。また、ゲストＯＳのアップデートの際に、再びアプリケーションのインストールから作業を行う必要を無くし、アプリケーション環境を容易に元に戻すことが可能になる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を用いて、本発明の実施形態を説明する。
【００１２】
図１は、本発明の一実施形態である仮想マシン管理システムのシステム構成を示す。なお、以後アプリケーションのことをＡＰと省略して記述する。
【００１３】
図１のシステムは、仮想マシンサーバ100、ホストＯＳ101、仮想マシン管理モジュール102、アップデートモジュール103、仮想マシン104、ゲストＯＳ105、仮想ＡＰ化モジュール106、仮想ＡＰバックアップモジュール107（以後、仮想ＡＰＢＵモジュールと記述する）、仮想ＡＰダウンロードモジュール108（以後、仮想ＡＰＤＬモジュールと記述する）、仮想ＨＤＤ109、仮想ＡＰイメージ110、仮想ＡＰ111、物理ＨＤＤ112、マスターゲストＯＳイメージ113、ゲストＯＳイメージ114を備える。
【００１４】
仮想マシンサーバ100は、複数台の仮想マシンを動作させるための物理的なコンピュータである。また、仮想マシンサーバ100は、１つの物理ハードディスク（ＨＤＤ）112を具備している。本実施形態では、仮想マシン上の仮想ＨＤＤと区別するために、仮想マシンサーバ上でホストＯＳが管理している物理的なハードディスクを物理ＨＤＤ112と呼ぶ。なお、図１で実際に物理的に存在し動作しているのは、仮想マシンサーバ100、ホストＯＳ101、仮想マシン管理モジュール102、アップデートモジュール103、及び物理ＨＤＤ112の部分である。点線120内の部分は仮想的に実現されている範囲を示す。また、本実施形態では１台の仮想マシンサーバ100のみを対象とした構成を挙げているが、複数台の仮想マシンサーバが存在する構成でもかまわない。
【００１５】
仮想マシン管理モジュール102は、仮想マシン104を管理するためのモジュール（プログラム）であり、ホストＯＳ101上で動作することにより、仮想マシンの追加・削除・起動・停止・設定（例えば、仮想マシンの名前の決定等）等の管理機能を提供する。また、仮想マシン管理モジュール102は、管理者が仮想マシンを管理するためのＧＵＩインターフェースの機能も提供し、任意のタイミングで前記の管理機能を行使することが可能である。
【００１６】
仮想マシン104は、仮想マシンサーバ100上では、複数台の仮想マシン104を動作させることが可能である。仮想マシン環境を新規に構築するためには、仮想マシン管理モジュール102により、新規に仮想マシン104を作成した後、物理ＨＤＤ112上にゲストＯＳイメージ114を新規に作成し、マウントする必要がある。この際、１台の仮想マシン104に対して１つのゲストＯＳイメージ114が必要である。逆に言えば、１つのゲストＯＳイメージ114を物理ＨＤＤ112上に作成することにより１台の仮想マシン104が実現される。ゲストＯＳイメージ114を新規に作成する方法は、マスターゲストＯＳイメージ113（後述）を複製することで作成することができる。
【００１７】
ゲストＯＳ105上には、仮想ＡＰ化モジュール106、仮想ＡＰＢＵモジュール107、及び仮想ＡＰＤＬモジュール108が常に動作している。
【００１８】
仮想ＡＰ化モジュール106とは、ゲストＯＳ105やアプリケーション111等の任意のモジュールが仮想ＨＤＤ109に対して行うデータの読み込み・書き込み等のファイルＩ／Ｏ操作を監視し、それらのファイルＩ／Ｏを仮想ＡＰイメージ110（後述）上の任意の領域へリダイレクトする機能と、そのリダイレクトした先を記憶しておき、前記ゲストＯＳ105やアプリケーション111等の任意のモジュールが以前に仮想ＨＤＤ109上に対して読み込み・書き込みを行ったデータ（実際には、仮想ＡＰ化モジュール106により、仮想ＡＰイメージ110上に保存されているデータ）に読み込み・書き込みを行った場合、仮想ＡＰイメージ110上の当該領域を参照するようにリダイレクトする機能とを持つ。これらの機能は、ゲストＯＳ105上のアプリケーション111に関連するデータ（例えば、図３で説明するような仮想マシン上にインストーラによってインストールされた実行ファイルやドライバやデータ、あるいは図４で説明するような仮想ＡＰ111が保存した保存データなど）を１つの仮想ＡＰイメージ110として分離することを可能とするものである。
【００１９】
仮想ＡＰＢＵモジュール107とは、仮想ＨＤＤ109上に保存されている仮想ＡＰイメージ110（後述）を、ホストＯＳ101が管理する物理ＨＤＤ112上に、バックアップする機能を持つモジュールである。仮想ＡＰＢＵモジュール107は、仮想マシン104が停止する前には必ず仮想ＡＰイメージ110のバックアップを行う。115はバックアップされた仮想ＡＰイメージを示す。また、仮想ＡＰＢＵモジュール107は、仮想マシン管理モジュール102から任意のタイミングで呼び出すことも可能である。
【００２０】
仮想ＡＰＤＬモジュール108とは、物理ＨＤＤ112上にバックアップされた仮想ＡＰイメージ115を仮想ＨＤＤ109上にダウンロードしてくる機能を持つモジュールである。仮想ＡＰＤＬモジュール107は、仮想マシン104が起動した直後には必ず仮想ＡＰイメージのダウンロード（115から110へのダウンロード）を行う。また、仮想ＡＰＤＬモジュール108は、仮想マシン管理モジュール102から任意のタイミングで呼び出すことも可能である。
【００２１】
仮想ＡＰイメージ110は、仮想マシン104上で動作する複数のアプリケーション111等のモジュールに関連するデータの内、従来の仮想マシン環境では仮想ＨＤＤ109に保存されるデータを、仮想ＡＰ化モジュール106がリダイレクトして書き込むためのイメージファイルである。従来の仮想マシンではこのような仮想ＡＰイメージ110は無かったため、仮想マシンにアプリケーションがインストールされたときの実行ファイルや、仮想ＡＰが保存したデータなどは、ゲストＯＳイメージ内に組み込まれてしまい容易に分離できないデータとなっていた。本実施形態のシステムでは、ゲストＯＳ105に対応するゲストＯＳイメージ114は変更することなく、アプリケーションに関連するデータを仮想ＡＰイメージ110として切り離して取り扱えるようにしている。仮想ＡＰイメージ110は、１つのゲストＯＳ105に対して１つ存在する。また、１つの仮想ＡＰイメージ110内には、ある仮想マシン104上で動作する複数のアプリケーション111に関連するデータが書き込まれている。仮想ＡＰイメージ110は、ゲストＯＳ105のインストールが終了した時から、新規にアプリケーション等の任意のモジュールがインストールされるまでの間の任意のタイミングで、仮想ＡＰ化モジュール106により１つだけ作成される。
【００２２】
仮想ＡＰ111とは、仮想ＡＰ化モジュール106により実行ファイルやドライバやデータ等が仮想ＡＰイメージ110上に分離されているアプリケーションのことである（図３で詳述する）。仮想マシン104上で、新規にアプリケーションのインストールを行うと、従来の仮想マシン上では、仮想ＨＤＤ上の任意の場所に保存されるはずのデータが、図１のシステムでは仮想ＡＰイメージ110上に保存される。そのため、ゲストＯＳ105のインストール時にインストールされないアプリケーションは全て仮想化され仮想ＡＰ111となる。
【００２３】
マスターゲストＯＳイメージ113は、全てのゲストＯＳイメージ114のもととなるゲストＯＳのイメージファイルである。実際の内容は、仮想ＡＰ化モジュール106、仮想ＡＰＢＵモジュール107、及び仮想ＡＰＤＬモジュール108以外の、アプリケーション等の任意のモジュールが新規インストールされていない状態のゲストＯＳのイメージファイルである。なお、アップデートや設定等に関しては、最新または適切な状態にしておくことが必要である。マスターゲストＯＳイメージ113は、仮想マシン104にマウントされているゲストＯＳ105のアップデートを行うときに使用される。マスターゲストＯＳイメージ113のアップデートはアップデートモジュール103により管理されている。アップデートに関しては、動作の説明で詳細に述べる。
【００２４】
アップデートモジュール103は、マスターゲストＯＳイメージ113のアップデートを行う機能を持っている。アップデートモジュール103は、ゲストＯＳ105にアップデートが生じた場合、マスターゲストＯＳイメージ113に対してアップデートを１回行い、アップデート済みのマスターゲストＯＳイメージ113で、物理ＨＤＤ112上のゲストＯＳイメージ114を上書きすることで、アップデートを完了する。従来の仮想マシン管理システムでは、ゲストＯＳのイメージファイルを他のゲストＯＳのイメージファイルで上書きすると、アプリケーション等の任意のモジュールに関連するデータは消去されてしまうが、図１のシステムでは、仮想ＡＰ化モジュール106により、アプリケーション等の任意のモジュールに関連するデータは仮想ＡＰイメージ110に分離され、物理ＨＤＤ113上に保存されるため、アプリケーションのデータが消去されることはない。
【００２５】
以下、本実施の形態における処理の流れについて、図２〜図６を参照して詳細に説明する。
【００２６】
図２は、マスターゲストＯＳイメージの作成フローである。マスターゲストＯＳイメージ113を作成するためには、まず、任意の仮想マシンを起動する（s200）。仮想マシンが存在しない場合は、新規に仮想マシンを作成し起動する。仮想マシンが起動したら、任意のＯＳのインストールを行う（s201）。インストール作業が終了したら、ゲストＯＳ上に仮想ＡＰＢＵモジュール107、仮想ＡＰＤＬモジュール108、及び仮想ＡＰ化モジュール106をインストールする（s202）。次に、アップデート及び設定を最適な状態にする（s203）。最後に、ゲストＯＳをシャットダウンし、仮想マシンを停止させる（s204）。以上の操作を行うと、物理ＨＤＤ上にゲストＯＳイメージが作成され、これをマスターゲストＯＳイメージ113とする。
【００２７】
図３は、ＡＰインストール時におけるＡＰデータの分離（ＡＰ仮想化）を示した図である。ここでは、アプリケーションのインストール時にアプリケーションのデータをゲストＯＳのイメージファイルから分離する動作について解説する。
【００２８】
まず、任意のアプリケーションＡとアプリケーションＢをインストールするものとし、それぞれのインストーラーをＡＰインストーラーＡ300及びＡＰインストーラーＢ301とする。ＡＰインストーラーＡからインストールを開始すると、従来の仮想マシン環境ならば、点線で示すように、インストールデータ（例えば、実行ファイル、ドライバ、レジストリに保存されるデータ等）はゲストＯＳ105が管理する仮想ＨＤＤ109内の任意の場所（例えば、ＣドライブのProgramフォルダの下のApplicationＡフォルダなど）に保存される（s300）。図３では、実行ファイルＡ302、ドライバＡ303、データＡ304などがそれである。
【００２９】
一方、本実施形態のシステムでは、仮想ＡＰ化モジュール106が、本来保存されるべき領域から、仮想ＡＰイメージ110上の所定の領域にリダイレクトして保存する（s301）。図３では、仮想ＡＰイメージ110上の実行ファイルＡ305、ドライバＡ306、データＡ307などである。以上により、アプリケーションに関連するデータを仮想ＡＰイメージ110上に分離することが可能となる。
【００３０】
図４は、仮想ＡＰ化モジュールの動作例の図である。
【００３１】
まず、仮想ＡＰ111が保存データＢの書き込みを試みたとする（s400）。仮想ＡＰ111は、仮想ＨＤＤ109上の保存データＢ401の領域へ書き込みを試みる（s402）。しかし、実際には、仮想ＡＰ化モジュール106によりリダイレクトされ、仮想ＡＰイメージ110上の保存データＢ404の領域へ書き込みを行うことになる（s403）。このとき、仮想ＡＰ化モジュール106は、本来データが保存される仮想ＨＤＤ上の保存データＢ401の領域と、リダイレクトした仮想ＡＰイメージ110上の保存データＢ404の領域との対応関係を記憶しておく。その後、仮想ＡＰ111またはゲストＯＳ105上の任意のモジュールが、前記仮想ＨＤＤ109上の保存データＢ401に対して読み込み・書き込み処理を行った場合、仮想ＡＰ化モジュール106は、仮想ＡＰイメージ110上の保存データＢ404の領域にリダイレクトして読み込み・書き込みを行わせる。以上により、仮想ＡＰイメージ110を仮想ＨＤＤ109から物理ＨＤＤへバックアップすることにより、アプリケーションのデータをゲストＯＳのイメージファイルから分離することが可能となる。よって、個々の仮想マシン上で使用される各ゲストＯＳのイメージファイルの管理が不要となりＯＳイメージの管理が容易になる。
【００３２】
図５と図６は、ゲストＯＳのアップデートとそのフローを示している。
【００３３】
ゲストＯＳをアップデートする必要が生じた場合、仮想マシン管理モジュール102は仮想マシン104に停止命令を出すが、仮想マシン104上では停止する前に、仮想ＡＰＢＵモジュール107が仮想ＡＰイメージ110を物理ＨＤＤ112上にバックアップする（s500）。その後、仮想マシン104を停止する（s501）。これにより、仮想マシン104上で動作するアプリケーション等の任意のモジュールに関連するデータが全て物理112上にコピーされたことになる。
【００３４】
次に、アップデートモジュール103は、物理ＨＤＤ112上に保存されているマスターゲストＯＳイメージ113のアップデート処理を行う（s502）。マスターゲストＯＳイメージ113のアップデートの方法に関しては、任意の仮想マシン上にマスターゲストＯＳイメージ113をマウントして、アップデートを行う方法等が挙げられる。マスターゲストＯＳイメージ113のアップデートが終了したら、アップデート済みのマスターゲストＯＳイメージ113でゲストＯＳイメージ114を上書きする（s503）。その後、仮想マシン管理モジュール102は、仮想マシン104にゲストＯＳイメージ114をマウントし起動させる（s504）。
【００３５】
起動後、仮想ＡＰＤＬモジュール108は、物理ＨＤＤ112上にバックアップされている仮想ＡＰイメージ115を仮想ＨＤＤ109上にダウンロードし、仮想ＡＰイメージ110として配置する（s505）。仮想ＡＰイメージ110のダウンロード後、ゲストＯＳ105は、仮想アプリケーション111の起動に必要な実行ファイル、ドライバ、データ等をメモリ上に配置してアプリケーションを起動する（s506）。この際、ゲストＯＳ105は、仮想ＨＤＤ109上の任意の場所へ実行ファイル、ドライバ、データの読み込みを試みるが、仮想ＡＰ化モジュール106のリダイレクト機能により、仮想ＨＤＤ109上の仮想ＡＰイメージ110から読み込みが行われ、メモリ上に配置される。以上により、ゲストＯＳのアップデートが完了する。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施形態のシステム構成図
【図２】マスターゲストＯＳイメージ作成フロー図
【図３】ＡＰインストール時におけるＡＰデータの分離（ＡＰ仮想化）図
【図４】仮想ＡＰ化モジュール及び仮想ＡＰイメージの使用例の図
【図５】本発明におけるゲストＯＳのアップデート図
【図６】本発明におけるゲストＯＳのアップデートフロー図
【符号の説明】
【００３７】
100…仮想マシン管理サーバ、101…ホストＯＳ、102…仮想マシン管理モジュール、103…アップデートモジュール、104…仮想マシン、105…ゲストＯＳ、106…仮想ＡＰ化モジュール、107…仮想ＡＰＢＵモジュール、108仮想ＡＰＤＬモジュール、109…仮想ＨＤＤ、110…仮想ＡＰイメージ、111…仮想ＡＰ、112…物理ＨＤＤ、113…マスターゲストＯＳイメージ、114…ゲストＯＳイメージ。
【図１】
2008084029.tif 000003
【図２】
2008084029.tif 000004
【図３】
2008084029.tif 000005
【図４】
2008084029.tif 000006
【図５】
2008084029.tif 000007
【図６】
2008084029.tif 000008