(57)【要約】  仮想計算機の実行環境の更新状況をシステム管理者が容易に把握することを可能にする仮想計算機管理システムを提供する。  仮想計算機管理システムでは、仮想計算機の各々は、自己の実行環境の更新内容を示す更新情報を更新記録ファイルに記録するシステム更新手段と、当該更新情報を仮想計算機管理装置に送信する更新情報送信手段とを含む。仮想計算機管理装置は、送信された当該更新情報を更新情報ファイルに記録する更新情報格納制御手段と、更新情報ファイルに記録されている更新情報を比較して仮想計算機の実行環境の更新状況を示すデータを生成する更新情報比較手段とを含む。
2010100867.tif 000002
【特許請求の範囲】
【請求項１】
各々が少なくとも１台の仮想計算機を有する複数の実計算機と、
前記仮想計算機を通信ネットワークを介して遠隔制御する仮想計算機管理装置と、
前記複数の仮想計算機にそれぞれ対応して用意された複数の更新情報ファイルが格納される記憶装置と、
を備え、
前記各仮想計算機は、
更新記録ファイルが格納されるデータ記憶部と、
当該各仮想計算機の実行環境の更新が実行されたときに当該更新の内容を示す更新情報を前記更新記録ファイルに記録するシステム更新手段と、
前記更新記録ファイル内の当該更新情報を前記仮想計算機管理装置に送信する更新情報送信手段と、
を含み、
前記仮想計算機管理装置は、
前記更新情報送信手段から送信された当該更新情報を当該更新情報ファイルに記録する更新情報格納制御手段と、
前記更新情報ファイルに記録されている更新情報を比較して前記仮想計算機の実行環境の更新状況を示すデータを生成する更新情報比較手段と、
を含む、仮想計算機管理システム。
【請求項２】
請求項１に記載の仮想計算機管理システムであって、
前記実計算機は、当該仮想計算機のディスクイメージを前記仮想計算機管理装置に送信する仮想計算機制御手段を含み、
前記仮想計算機管理装置は、前記仮想計算機制御手段から送信された当該ディスクイメージを前記記憶装置に格納するディスクイメージ格納制御手段を含み、
前記ディスクイメージ格納制御手段は、当該ディスクイメージの識別子と、当該ディスクイメージを有する当該仮想計算機に対応して用意された当該更新情報ファイルの識別子とを関連付けて仮想計算機管理テーブルに記録する、仮想計算機管理システム。
【請求項３】
請求項２に記載の仮想計算機管理システムであって、前記仮想計算機制御手段は、前記仮想計算機の動作を一時的に停止したうえで当該仮想計算機のディスクイメージを前記仮想計算機管理装置に送信する、仮想計算機管理システム。
【請求項４】
請求項２または３に記載の仮想計算機管理システムであって、
前記更新情報比較手段は、前記仮想計算機管理テーブルを参照して、前記複数の更新情報ファイルの中から、指定された仮想計算機のディスクイメージに対応する対象ファイルを選択し、
前記更新状況を示すデータは、前記対象ファイルに記録されている更新情報を比較することにより生成される、仮想計算機管理システム。
【請求項５】
請求項４に記載の仮想計算機管理システムであって、システム管理者により操作入力された指示情報を前記仮想計算機管理装置に与える管理端末を更に備え、
前記仮想計算機管理装置は、当該指示情報を前記更新情報比較手段に与えるインターフェースを含み、
前記更新情報比較手段は、前記複数の更新情報ファイルの中から、当該指示情報により指定された仮想計算機のディスクイメージに対応する更新情報ファイルを前記対象ファイルとして選択し、
前記インターフェースは、前記更新状況を示すデータを、前記指示情報に対する応答結果として前記管理端末に与える、仮想計算機管理システム。
【請求項６】
請求項５に記載の仮想計算機管理システムであって、前記インターフェースは、ＨＴＴＰ（HyperText Transport Protocol）に基づいたウェブ・サービスを提供するインターフェースである、仮想計算機管理システム。
【請求項７】
請求項１から６のうちのいずれか１項に記載の仮想計算機管理システムであって、前記更新情報比較手段は、前記複数の仮想計算機のうち同一の仮想計算機の実行環境の更新履歴を示すデータを、前記更新状況を示すデータとして出力する、仮想計算機管理システム。
【請求項８】
請求項１から６のうちのいずれか１項に記載の仮想計算機管理システムであって、前記更新情報比較手段は、前記複数の仮想計算機のうち異なる仮想計算機間の実行環境の差分を示すデータを、前記更新状況を示すデータとして出力する、仮想計算機管理システム。
【請求項９】
請求項１から８のうちのいずれか１項に記載の仮想計算機管理システムであって、前記更新情報格納制御手段は、前記更新情報送信手段から送信された当該更新情報に基づいて、前記仮想計算機の現在のディスクイメージの識別子と、当該ディスクイメージの派生元である以前のディスクイメージの識別子とを関連付けて当該ディスクイメージの派生関係を生成する、仮想計算機管理システム。
【請求項１０】
各々が少なくとも１台の仮想計算機を有する複数の実計算機と、
前記仮想計算機を通信ネットワークを介して遠隔制御する仮想計算機管理装置と、
を備え、
前記各仮想計算機は、当該各仮想計算機の実行環境を構築するために当該各仮想計算機に導入された複数のソフトウェア・パッケージの識別情報と、当該ソフトウェア・パッケージの相互依存関係を示す依存関係情報とをパッケージ情報として前記仮想計算機管理装置に送信するパッケージ情報送信手段を含み、
前記仮想計算機管理装置は、
前記仮想計算機ごとに前記パッケージ情報送信手段から送信された前記パッケージ情報を記憶装置に格納するパッケージ情報格納制御手段と、
前記記憶装置に格納されている前記パッケージ情報を比較して前記仮想計算機の実行環境の更新状況を示すデータを生成するパッケージ情報比較手段と、
を含む、仮想計算機管理システム。
【請求項１１】
請求項１０に記載の仮想計算機管理システムであって、前記パッケージ情報比較手段は、前記依存関係情報に基づいて、前記実行環境の更新状況を示すデータを、前記ソフトウェア・パッケージのグループごとに分類した形で生成する、仮想計算機管理システム。
【請求項１２】
請求項１０または１１に記載の仮想計算機管理システムであって、
前記実計算機は、当該仮想計算機に対応するディスクイメージを前記仮想計算機管理装置に送信する仮想計算機制御手段を含み、
前記仮想計算機管理装置は、前記仮想計算機制御手段から送信された当該ディスクイメージを記憶装置に格納するディスクイメージ格納制御手段を含み、
前記ディスクイメージ格納制御手段は、前記仮想計算機の識別子と、当該仮想計算機に対応する当該ディスクイメージの識別子とを関連付けて仮想計算機管理テーブルに記録する、仮想計算機管理システム。
【請求項１３】
請求項１２に記載の仮想計算機管理システムであって、前記仮想計算機制御手段は、前記仮想計算機の動作を一時的に停止したうえで当該仮想計算機のディスクイメージを前記仮想計算機管理装置に送信する、仮想計算機管理システム。
【請求項１４】
請求項１２または１３に記載の仮想計算機管理システムであって、前記ディスクイメージ格納制御手段は、前記仮想計算機のディスクイメージの識別子と、当該仮想計算機に対応する当該パッケージ情報とを関連付けて前記仮想計算機管理テーブルに記録する、仮想計算機管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、実計算機上に仮想計算機を構成するための仮想化技術に関する。
【背景技術】
【０００２】
近年の実計算機（ハードウェア構成の計算機）の高性能化に伴い、実計算機上に仮想計算機（仮想マシン：virtual machine）を構成する仮想化技術が広く利用されている。１台の実計算機上に複数の仮想計算機を構成すれば、これら仮想計算機上でそれぞれ複数種のオペレーティング・システム（ＯＳ：Operating System）を同時並行に動作させることができるので、実計算機資源の有効活用が可能である。また、仮想計算機の構成に必要なファイル群を通信ネットワークを介して実計算機に伝送することにより、この実計算機上にユーザのコンピューティング環境を容易に構築することも可能となる。【０００３】
通信ネットワーク上に分散する多数の仮想計算機を保守管理する作業は容易ではない。そこで、多数の仮想計算機を通信ネットワークを介して効率的に管理する技術が要求されている。この種の管理技術に関する先行技術文献としては、たとえば、特許文献１（特開２００５−３３２２２３号公報）、特許文献２（特開２００５−２０８９９９号公報）、特許文献３（特開２００５−１１５６５３号公報）および特許文献４（米国特許第７３９８５２４号明細書）が挙げられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３３２２２３号公報
【特許文献２】特開２００５−２０８９９９号公報
【特許文献３】特開２００５−１１５６５３号公報
【特許文献４】米国特許第７３９８５２４号明細書
【発明の概要】
【０００５】
実計算機上に仮想計算機を短時間で構築する方法として、一度構築された仮想計算機の実行環境を表すイメージファイル群（ＯＳやアプリケーションプログラムやディレクトリ構造などのイメージ）を保存しておき、このイメージファイル群を仮想計算機の再構築の際に再利用するというものがある。従来の管理技術では、通信ネットワーク上に分散する仮想計算機を遠隔管理するための装置（以下、管理サーバと呼ぶ。）が使用される。管理サーバがそのようなイメージファイル群を保存しておけば、実計算機上の仮想計算機制御部（ホストＯＳや仮想計算機モニタ）が、そのイメージファイル群を用いて仮想計算機の実行環境を短時間にかつ容易に再構築することができる。更に、イメージファイル群がパッケージ化されて管理サーバに保存されていれば、必要なパッケージのみを用いて仮想計算機の所望の実行環境を容易に構築することが可能である。
【０００６】
仮想計算機のユーザごとに使用するコンピューティング環境が異なる場合、仮想計算機の構築に必要なイメージファイル群は、仮想計算機の実行環境ごとに異なる。管理サーバは、仮想計算機の構築に必要な最小限のイメージファイル群（たとえば、特定のアプリケーションプログラムや特定のディレクトリ構造のイメージ）を実計算機に転送するために、仮想計算機ごとにその実行環境の詳細を把握しておくことが必要である。しかしながら、従来の管理技術では、通信ネットワーク上に分散配置されている多数の仮想計算機の実行環境の詳細を管理サーバが正確かつ完全に把握することが難しいという問題がある。
【０００７】
たとえば、特許文献１に開示されている仮想計算機管理システム（仮想マシン管理システム）は、複数の仮想マシンサーバ（仮想計算機）が稼働する環境を管理し、必要なときにすぐに環境の再構築を行うことができる。これら仮想マシンサーバは、当該仮想マシンサーバ上で動作するＯＳの識別情報やＯＳのバージョン情報などの設定情報を仮想計算機管理システムに送信する機能を有する。仮想計算機管理システムは、仮想マシンサーバから送信された設定情報を記憶しおき、この設定情報に基づいて必要なときに仮想マシンサーバの環境の再構築を短時間で行うことができる。しかしながら、特許文献１の仮想計算機管理システムでは、システム管理者は、多数の仮想マシンサーバの実行環境の更新状況を容易に把握することができない。
【０００８】
上記に鑑みて本発明の目的は、通信ネットワーク上に分散している多数の仮想計算機の実行環境の更新状況をシステム管理者が容易に把握することを可能にする仮想計算機管理システムを提供するものである。
【０００９】
本発明によれば、各々が少なくとも１台の仮想計算機を有する複数の実計算機と、前記仮想計算機を通信ネットワークを介して遠隔制御する仮想計算機管理装置と、前記複数の仮想計算機にそれぞれ対応して用意された複数の更新情報ファイルが格納される記憶装置と、を備えた仮想計算機管理システムが提供される。この仮想計算機管理システムでは、前記各仮想計算機は、更新記録ファイルが格納されるデータ記憶部と、当該各仮想計算機の実行環境の更新が実行されたときに当該更新の内容を示す更新情報を前記更新記録ファイルに記録するシステム更新手段と、前記更新記録ファイル内の当該更新情報を前記仮想計算機管理装置に送信する更新情報送信手段と、を含み、前記仮想計算機管理装置は、前記更新情報送信手段から送信された当該更新情報を当該更新情報ファイルに記録する更新情報格納制御手段と、前記更新情報ファイルに記録されている更新情報を比較して前記仮想計算機の実行環境の更新状況を示すデータを生成する更新情報比較手段と、を含む。
【００１０】
本発明によれば、各々が少なくとも１台の仮想計算機を有する複数の実計算機と、前記仮想計算機を通信ネットワークを介して遠隔制御する仮想計算機管理装置と、を備えた仮想計算機管理システムが提供される。この仮想計算機管理システムでは、前記各仮想計算機は、当該各仮想計算機の実行環境を構築するために当該各仮想計算機に導入された複数のソフトウェア・パッケージの識別情報と、当該ソフトウェア・パッケージの相互依存関係を示す依存関係情報とをパッケージ情報として前記仮想計算機管理装置に送信するパッケージ情報送信手段を含み、前記仮想計算機管理装置は、前記仮想計算機ごとに前記パッケージ情報送信手段から送信された前記パッケージ情報を記憶装置に格納するパッケージ情報格納制御手段と、前記記憶装置に格納されている前記パッケージ情報を比較して前記仮想計算機の実行環境の更新状況を示すデータを生成するパッケージ情報比較手段と、を含む。
【００１１】
本発明による仮想計算機管理システムによれば、通信ネットワーク上に分散している多数の仮想計算機の実行環境に関する正確な詳細情報を取得し、当該実行環境の更新状況を示すデータを提供することができる。よって、システム管理者の管理負担が大幅に軽減される。
【図面の簡単な説明】
【００１２】
上述した目的、およびその他の目的、特徴および利点は、以下に述べる好適な実施の形態、およびそれに付随する以下の図面によってさらに明らかになる。【００１３】
【図１】本発明に係る第１の実施形態の仮想計算機管理システムの概略構成を示す機能ブロック図である。
【図２】更新記録ファイルの内容の一例を概略的に示す図である。
【図３】仮想計算機情報の格納手順を示す通信シーケンスを概略的に示す図である。
【図４】仮想計算機情報管理テーブルの内容の一例を示す図である。
【図５】比較対象であるディスクイメージを指定するための操作画面の一例を示す図である。
【図６】文字列比較による差分検出に基づく比較結果の一例を示す図である。
【図７】本発明に係る第２の実施形態の仮想計算機管理システムの概略構成を示す機能ブロック図である。
【図８】仮想計算機情報の格納手順を示す通信シーケンスを概略的に示す図である。
【図９】パッケージ情報データベースの内容の一例を示す図である。
【図１０】パッケージ情報比較部による処理手順を概略的に示すフローチャートである。
【図１１】５つのパッケージについての依存関係情報を示す図である。
【図１２】パッケージ名のグループを示す図である。
【図１３】ディスクイメージの内容を例示する図である。
【図１４】パッケージリスト間の依存関係情報の一例を示す図である。
【図１５】管理端末に出力される比較結果を示す図である。
【発明を実施するための形態】
【００１４】
以下、本発明に係る実施形態について図面を参照しつつ説明する。なお、すべての図面において、同様な構成要素には同一符号を付し、その詳細な説明は重複しないように適宜省略される。
【００１５】
（第１の実施形態）
図１は、本発明に係る第１の実施形態の仮想計算機管理システムの概略構成を示す機能ブロック図である。この仮想計算機管理システムは、複数の実計算機３００１〜３００Ｎと、仮想計算機管理サーバ（Virtual Machine Management Server）１００Ａと、記憶装置２００と、管理端末４００とを備えている。これら実計算機３００１〜３００Ｎ、仮想計算機管理サーバ１００Ａ、記憶装置２００および管理端末４００は、通信ネットワーク５００を介して相互に接続されている。
【００１６】
実計算機３００１〜３００Ｎの各々には、少なくとも１台の仮想計算機が起動する。図１に示されるように、実計算機３００１は、仮想計算機制御部３１０１を有しており、この仮想計算機制御部３１０１の制御下で実計算機３００１上に仮想計算機３０１１が構築されている。他の実計算機３００２〜３００Ｎも、実計算機３００１と同様の構成を有している。すなわち、実計算機３００２〜３００Ｎは、それぞれ、仮想計算機制御部３１０２〜３１０Ｎの制御下で構築された仮想計算機３０１２〜３０１Ｎを有している。仮想計算機管理サーバ１００Ａは、通信ネットワーク５００を介して実計算機３００１〜３００Ｎ上の仮想計算機群を遠隔管理する機能を有している。
【００１７】
仮想計算機制御部３１０１は、実計算機３００１の記憶装置（図示せず）に記憶されているディスクイメージや構成ファイル群に基づいて仮想計算機３０１１を論理的に構成する機能を有する。仮想計算機制御部３１０２〜３１０Ｎも、仮想計算機制御部３１０１と同様の機能を有する。本実施形態では、仮想計算機制御部３１０１は、実計算機３００１上で動作する仮想計算機モニタ（ＶＭＭ：Virtual Machine Monitor）である。仮想計算機モニタが実計算機上で直接動作する構成と、仮想計算機モニタが実計算機上のホスト・オペレーティング・システム（ホストＯＳ）上で動作する構成とがあり得る。
【００１８】
仮想計算機モニタは、ソフトウェアまたはハードウェアにより実現可能である。既存の仮想計算機モニタとしては、たとえば、ＶＭｗａｒｅ（登録商標）やＸｅｎ（登録商標）が挙げられる。
【００１９】
なお、実計算機３００１〜３００Ｎのハードウェア構成は、汎用的な構成であればよく、たとえば、ＣＰＵ（Central Processing Unit）などのプロセッサ、主メモリ、キャッシュメモリ、バス回路、タイマ回路、入力装置（たとえば、キーボード）および出力装置（たとえば、ディスプレイやプリンタ）などの物理資源によって構成され得る。たとえば、実計算機３００１〜３００Ｎを、ワークステーションまたはパーソナルコンピュータで実現してもよい。
【００２０】
管理端末４００は、キーボードやポインティングデバイスなどの入力装置と、液晶ディスプレイなどの出力装置とを備えた端末装置である。この管理端末４００は、ネットワーク５００を介して仮想計算機管理サーバ１００Ａと接続されている。管理端末４００は、たとえば、Ｗｉｎｄｏｗｓ（登録商標）オペレーティング・システムが動作するパーソナルコンピュータで構成できる。
【００２１】
実計算機３００１上の仮想計算機３０１１は、更新記録送信部（更新情報送信手段）３０２、システム更新部３０３および更新記録ファイル３０４を有する。システム更新部３０３は、仮想計算機３０１１の実行環境（システム）の更新が実行されたときに、この更新の内容を示す更新情報を更新記録ファイル３０４に記録する機能を有する。たとえば、仮想計算機３０１１に新たなアプリケーション・プログラムが導入されたり、既存のアプリケーション・プログラムが新バージョンにアップデートされたり、仮想計算機３０１１上で動作する仮想ＯＳのシステムファイルが更新されたりすると、仮想計算機３０１１の実行環境が更新される。この実行環境を表すデータがディスクイメージであり、このディスクイメージは実計算機３００１の内蔵ディスクに記憶されている。
【００２２】
更新記録ファイル３０４は、仮想計算機３０１１に割り当てられた記憶領域（データ記憶部）に格納されている。更新記録送信部３０２は、仮想計算機管理サーバ１００Ａからの更新情報取得要求に応じて、更新記録ファイル３０４に記録されている更新情報を仮想計算機管理サーバ１００Ａに送信する。
【００２３】
仮想計算機３０１１を制御する仮想計算機制御部３１０１は、ディスクイメージ送信部３１０Ａを有している。このディスクイメージ送信部３１０Ａは、仮想計算機管理サーバ１００Ａからのディスクイメージ格納要求に応じて、実計算機３００１のディスクイメージを読み出し、これを送信する機能を有する。後述するように、仮想計算機制御部３１０１は、ディスクイメージ格納要求が到来すると、仮想計算機３０１１の動作を一時的に停止した状態で、当該仮想計算機３０１１のディスクイメージをディスクイメージ送信部３１０Ａに送信させる機能を有している。
【００２４】
一方、仮想計算機管理サーバ１００Ａは、ディスクイメージ格納制御部１１０、更新情報格納制御部１２０、更新情報比較部１３０およびネットワーク・サービス・インターフェース１４０を有する。仮想計算機管理サーバ１００Ａの構成の全部または一部は、ハードウェアで実現されてもよいし、あるいは、コンピュータのプロセッサに処理を実行させるコンピュータプログラム（またはプログラムコード）で実現されてもよい。仮想計算機管理サーバ１００Ａの構成要素１１０，１２０，１３０，１４０の機能がコンピュータプログラムで実現される場合、プロセッサは、不揮発性メモリなどの記録媒体からそのコンピュータプログラムを読み出し実行する。
【００２５】
記憶装置２００は、ハードディスクなどのストレージデバイス（Storage Device）である。記憶装置２００は、仮想計算機管理サーバ１００Ａによって格納または参照されるディスクイメージおよび仮想計算機情報を保持する。仮想計算機情報の詳細については後述する。記憶装置２００には、実計算機３００１〜３００Ｎ上の多数の仮想計算機３０１１〜３０１Ｎにそれぞれ対応して用意された更新情報ファイル２３０，...が格納されている。更新情報ファイル２３０は、仮想計算機管理サーバ１００Ａの管理下にある仮想計算機３０１１〜３０１Ｎの実行環境に対してなされた更新の履歴を示す情報からなる電子ファイルである。
【００２６】
更新情報格納制御部１２０は、記憶装置２００を制御して、仮想計算機３０１ｉ（ｉは１〜Ｎのうちのいずれか）から送信された更新情報を、当該仮想計算機３０１ｉのために用意された更新情報ファイル２３０に記録する。
【００２７】
また、記憶装置２００は、実計算機３００１〜３００Ｎから送信されたディスクイメージ２２０，...を格納するための記憶領域を有している。ディスクイメージ格納制御部１１０は、記憶装置２００を制御して、実計算機３００１から送信されたディスクイメージを当該記憶領域に格納する。
【００２８】
更に、記憶装置２００には、仮想計算機情報管理テーブル２１０が格納されている。仮想計算機情報管理テーブル２１０には、仮想計算機管理サーバ１００Ａの管理下にある仮想計算機３０１１〜３０１Ｎに関する情報（メタデータ）が記録されている。ディスクイメージ格納制御部１１０は、実計算機３００ｉから送信された仮想計算機３０１ｉのディスクイメージの識別子（たとえば、当該ディスクイメージの名称を表すデータ）と、当該仮想計算機３０１ｉに対応して用意された更新情報ファイル２３０の識別子（たとえば、当該更新情報ファイル２３０の名称を表すデータ）とを関連付けて仮想計算機情報管理テーブル２１０に記録することができる。
【００２９】
更新情報比較部１３０は、ネットワーク・サービス・インターフェース１４０からの要求や問い合わせに基づいて、仮想計算機情報管理テーブル２１０を参照して比較対象となるディスクイメージに対応する更新情報ファイル２３０を選択する。更新情報比較部１３０は、選択した単数または複数の更新情報ファイル２３０に記録されている更新情報を比較して、単一または複数の仮想計算機の実行環境の更新状況を示すデータを生成する。
【００３０】
後述するように、たとえば、管理端末４００からネットワーク・サービス・インターフェース１４０を介して１台の仮想計算機３０１ｉの実行環境（ディスクイメージ）の更新履歴が要求された場合、更新情報比較部１３０は、当該仮想計算機３０１ｉに割り当てられた更新情報ファイル２３０を選択し、この更新情報ファイル２３０内の更新情報を比較する。一方、管理端末４００からネットワーク・サービス・インターフェース１４０を介して異なる２台の仮想計算機３０１ｉ，３０１ｊ（ｉ≠ｊ）の実行環境（ディスクイメージ）の差分が要求された場合、更新情報比較部１３０は、これら２台の仮想計算機３０１ｉ，３０１ｊにそれぞれ割り当てられた２つの更新情報ファイル２３０，２３０を選択し、これら更新情報ファイル２３０，２３０間で更新情報を比較する。更新情報比較部１３０による処理結果は、ネットワーク・サービス・インターフェース１４０を介して管理端末４００に送信される。
【００３１】
ネットワーク・サービス・インターフェース１４０は、管理端末４００と更新情報比較部１３０との間、あるいは、管理端末４００と更新情報格納制御部１２０との間で情報をやりとりするためのインターフェースである。
【００３２】
システム管理者は、管理端末４００を操作して仮想計算機管理サーバ１００Ａに対する指示情報を入力することができる。この指示情報は、通信ネットワーク５００を介してネットワーク・サービス・インターフェース１４０に送信される。ネットワーク・サービス・インターフェース１４０は、当該指示情報に基づいた要求や問い合わせを更新情報比較部１３０または更新情報格納制御部１２０に対して行う。更新情報比較部１３０または更新情報格納制御部１２０は、当該問い合わせや要求に応じた処理を実行し、その実行結果をネットワーク・サービス・インターフェース１４０に返す。そして、ネットワーク・サービス・インターフェース１４０は、その実行結果を、当該指示情報に対する応答結果として管理端末４００に返信することとなる。
【００３３】
ネットワーク・サービス・インターフェース１４０としては、たとえば、ＨＴＴＰ（HyperText Transport Protocol）／ＨＴＴＰＳ（Hypertext Transfer Protocol over Secure Socket Layer）に基づいたウェブ・サービス（Web service）を提供するインターフェースを採用することができる。ＨＴＴＰ／ＨＴＴＰＳは、ＲＦＣ（Request For Comment）に規定されている。この場合、管理端末４００には、ネットワーク・サービス・インターフェース１４０が提供するウェブページを表示するウェブブラウザ（ＷＷＷブラウザ）が導入される。システム管理者は、このウェブブラウザを通してネットワーク・サービス・インターフェース１４０にアクセスすることができる。
【００３４】
以上の構成を有する仮想計算機管理システムの動作について以下に説明する。第１の実施形態の仮想計算機管理システムは、１）仮想計算機の更新、２）仮想計算機情報の登録、３）仮想計算機情報の参照、という３つの相（フェーズ）で動作する。
【００３５】
「仮想計算機の更新」とは、仮想計算機上で動作するＯＳ（オペレーティング・システム）にアプリケーション・プログラムの導入などの変更操作を加えることである。図１の仮想計算機３０１１上のシステム更新部３０３は、管理端末４００からの更新指示情報に従って、この変更操作を実行する機能を有する。すなわち、システム管理者が管理端末４００に更新指示情報を操作入力すると、この更新指示情報が通信ネットワーク５００を介して実計算機３００１に送信される。システム更新部３０３は、管理端末４００から受信された更新指示情報に従って、たとえば、ソフトウェア・パッケージの導入、導入済みのソフトウェア・パッケージの更新、もしくは、導入済みのソフトウェア・パッケージの削除といった変更操作を実行することができる。
【００３６】
ここで、ソフトウェア・パッケージ（以下、単に「パッケージ」と呼ぶ。）とは、ソフトウェアを導入（すなわち、インストール：install）、更新（すなわち、アップデートまたはアップグレード：update or upgrade）あるいは削除（delete or remove）する際の管理単位となるファイルの集合と、当該ファイルの集合に付随する依存関係情報とを包含するものである。依存関係情報とは、あるパッケージと、このパッケージを導入するために必要となる他のパッケージとの間の関係を示す情報である。あるいは、各パッケージが提供する機能（ケーパビリティ：capability）と、当該各パッケージが依存する機能との組み合わせによって依存関係情報を規定してもよい。このような依存関係情報を与えるパッケージ形式としては、たとえば、ＲＰＭやｄｐｋｇによる形式が知られている。ＲＰＭやｄｐｋｇは、それぞれ、ソフトウェア・パッケージの管理システムである。ＲＰＭとｄｐｋｇについては、たとえば、特許文献４（米国特許第７３９８５２４号明細書）に開示されている。
【００３７】
システム更新部３０３に限らず、仮想計算機３０１１上で動作するＯＳや当該ＯＳ上で動作するアプリケーション・プログラムも変更操作を実行する場合がある。上述したように、システム更新部３０３は、仮想計算機３０１１の実行環境の更新が実行されたときに、その更新情報を更新記録ファイル３０４に記録する機能を有する。
【００３８】
また、システム更新部３０３は、この更新情報を、システム管理者が読解可能な形式で更新記録ファイル３０４に追記する機能を有している。図２（Ａ）および図２（Ｂ）は、更新記録ファイル３０４の内容の一例を概略的に示す図である。図２（Ａ）は、６つのパッケージ（「base-5.00-0」,「admintool-4.2-2」,「monitor-3.0.1-4」,「database-6.2-2」,「backup-1.0-5」,「shopping-3.2-3」）の導入履歴が時刻順に記録された内容を示すものである。たとえば、図２（Ａ）のファイル中の先頭行は、「base-5.00-0」という名前のパッケージを導入した記録を示している。
【００３９】
他方、図２（Ｂ）のファイルの先頭行から６行目までの内容は、図２（Ａ）のファイルの内容と共通する。第７行では、導入済みのパッケージ「monitor-3.0.1-4」を、より新しい「monitor-3.0.1-5」に更新したことを示している。第８行では、新規に「cache-1.1.1-3」というパッケージを導入したことを示している。
【００４０】
システム更新部３０３は、たとえば、パッケージ管理コマンドを呼び出すとともに、更新内容を更新記録ファイル３０４に追記する機能を有する上位プログラム（ラッパー：wrapper）により実現することができる。パッケージ管理コマンドとしては、たとえば、ｒｐｍ、ｙｕｍ、ｄｐｋｇ、ａｐｔ−ｇｅｔが知られている。ｒｐｍコマンドは、前述のパッケージ管理システムＲＰＭを操作するためのコマンドであり、ｄｐｋｇコマンドは、前述のパッケージ管理システムｄｐｋｇを操作するためのコマンドである。ｙｕｍコマンドは、パッケージ管理システムＲＰＭを呼び出すためのコマンドであり、ａｐｔ−ｇｅｔコマンドは、パッケージ管理システムｄｐｋｇを呼び出すためのコマンドである。
【００４１】
次に、「仮想計算機情報の登録」というフェーズについて説明する。
【００４２】
「仮想計算機情報の登録」とは、ある時点における仮想計算機３０１ｉに対応する仮想計算機情報を記憶装置２００に格納する処理をいう。ここで、仮想計算機情報とは、仮想計算機３０１ｉが内蔵する仮想ディスク装置の内容を表現するディスクイメージ（disk image）と、その仮想計算機３０１ｉに対する更新履歴が記録される更新情報ファイル２３０と、その他、仮想計算機３０１ｉに付随する情報とを包含するものである。
【００４３】
ディスクイメージと更新情報ファイル２３０以外の仮想計算機情報としては、たとえば、仮想計算機３０１ｉの識別子（たとえば、仮想計算機３０１ｉの名称）、仮想計算機３０１ｉ上のメモリ容量、導入されたオペレーティング・システム（ＯＳ）の名称がある。これらの情報は、システム管理者が、記憶装置２００に格納しようとするディスクイメージによって表現される仮想計算機３０１ｉがいかなる構成を有するかについて判断するために用いられる。
【００４４】
システム管理者は、管理端末４００に対して、ある仮想計算機３０１ｉのディスクイメージとその更新情報とを記憶装置２００に格納する旨の指示情報を操作入力することができる。管理端末４００は、この指示情報を仮想計算機管理サーバ１００Ａに送信する。仮想計算機管理サーバ１００Ａでは、更新情報格納制御部１２０が当該指示情報に応じて、仮想計算機３０１ｉの更新情報を記憶装置２００の更新情報ファイル２３０に記録するための制御を実行する。また、ディスクイメージ格納制御部１１０が当該指示情報に応じて、仮想計算機３０１ｉのディスクイメージを記憶装置２００に格納させる制御を実行する。
【００４５】
更に、ディスクイメージ格納制御部１１０は、仮想計算機情報管理テーブル２１０に新たなレコード（行）を追加する。ディスクイメージ格納制御部１１０は、実計算機３００ｉから送信された仮想計算機３０１ｉのディスクイメージの識別子と、当該仮想計算機３０１ｉに対応して用意された更新情報ファイル２３０の識別子とを関連付けてその新たなレコードに記録する。
【００４６】
図３は、仮想計算機情報の格納手順を示す通信シーケンスを概略的に示す図である。以下、図３に示されている各ステップに沿ってこの手順を詳細に説明する。
【００４７】
まず、システム管理者は、管理端末４００を操作してこの管理端末４００に対して仮想計算機情報格納の指示情報を入力する（ステップＳ１２１）。管理端末４００は、この指示情報を仮想計算機管理サーバ１００Ａに送信する。仮想計算機管理サーバ１００Ａでは、更新情報格納制御部１２０がネットワーク・サービス・インターフェース１４０を介して当該指示情報を受け付ける。当該指示情報は、仮想計算機３０１ｉの識別子（たとえば、仮想計算機３０１ｉの名称）を指定するものであればよい。
【００４８】
ステップＳ１２１でのシステム管理者による操作入力に先立って、システム管理者は、仮想計算機情報格納のための操作画面を呼び出すための操作を管理端末４００に対して行う。この操作に応じて、管理端末４００は、ネットワーク・サービス・インターフェース１４０から、操作画面を表示するための情報を取得する。本実施形態では、操作画面を呼び出すために、システム管理者は、管理端末４００で起動されたウェブブラウザにＵＲＬ（Uniform Resource Locator）を入力する操作を行う。この場合、操作画面を表示するための情報は、たとえば、ＨＴＭＬ（Hypertext Markup Language）で記述されていればよい。
【００４９】
次に、更新情報格納制御部１２０は、与えられた識別子に対応する仮想計算機３０１ｉ上の更新記録送信部３０２に対して更新情報取得要求を送信する（ステップＳ１２２）。仮想計算機３０１ｉの更新記録送信部３０２は、この更新情報取得要求に応じて、更新記録ファイル３０４に記録されている更新情報を送信する。この結果、更新情報格納制御部１２０は当該更新情報を取得する。
【００５０】
このステップＳ１２２が実行されるとき、当該仮想計算機３０１ｉは稼動状態にある必要がある。図３には明確に示されていないが、当該仮想計算機３０１ｉが停止状態にある場合には、更新情報取得要求の送信に先立って当該仮想計算機３０１ｉの起動処理が実行される。この起動処理は、更新情報格納制御部１２０が仮想計算機制御部３１０ｉに起動要求を送信することにより行われる。この起動要求に応じて、仮想計算機制御部３１０ｉは当該仮想計算機３０１ｉを起動することとなる。これにより、システム管理者は、実計算機３００ｉを直接操作または遠隔操作して当該実計算機３００ｉ上に仮想計算機３０１ｉを起動する必要がないので、システム管理者の負担が大幅に軽減される。
【００５１】
次に、更新情報格納制御部１２０は、記憶装置２００を制御して、ステップＳ１２２で取得した更新情報を、記憶装置２００の当該更新情報ファイル２３０に記録する（ステップＳ１２３）。当該更新情報ファイル２３０には、記憶装置２００内で当該仮想計算機３０１ｉに一意（ユニーク）な名称が付加されている。
【００５２】
更新情報ファイル２３０の名称は、たとえば、固定された先頭の文字列（プレフィックス：prefix）と、当該仮想計算機３０１ｉの名称と、当該仮想計算機３０１ｉの実行環境のバージョン（版）を示す番号（以下、「版番号」と呼ぶ。）とを結合することで与えられる。同一の仮想計算機の実行環境であっても、その内容は時間の経過とともに更新される。版番号は、ある時点における仮想計算機の実行環境を特定するための番号である。よって、版番号は、同一の仮想計算機において、ある時点における実行環境と別の時点における実行環境とを区別するものといえる。
【００５３】
図２に、更新情報ファイル２３０の名称の例が示されている。この例では、先頭の文字列として「update」、仮想計算機の名称として「shopping」、版番号として「52」および「53」が用いられている。版番号（バージョン番号：version number）を、シーケンス番号（sequence number）あるいはリビジョン番号（revision number）と呼んでもよい。
【００５４】
次に、更新情報格納制御部１２０は、ディスクイメージ格納制御部１１０に対してディスクイメージ格納要求を行う（ステップＳ１２４）。このディスクイメージ格納要求とともに、仮想計算機３０１ｉの名称がディスクイメージ格納制御部１１０に与えられる。このディスクイメージ格納要求に応じて、ディスクイメージ格納制御部１１０は、ステップＳ１１１〜Ｓ１２３を実行する。
【００５５】
なお、本実施形態では、仮想計算機３０１ｉのディスクイメージを記憶装置２００に格納するために、更新情報格納制御部１２０がディスクイメージ格納要求を行うことでディスクイメージ格納制御部１１０を呼び出しているが、かかる形態に限定されるものではない。たとえば、ディスクイメージ格納制御部１１０が、更新情報格納制御部１２０により呼び出されることなく、仮想計算機格納要求（ステップＳ１２１）に応じて、ステップＳ１１１〜Ｓ１２３を実行してもよい。
【００５６】
図３を参照すると、ステップＳ１１１では、ディスクイメージ格納制御部１１０は、当該仮想計算機３０１ｉが構築されている実計算機３００ｉ上の仮想計算機制御部３１０ｉに対して仮想計算機停止要求を行う。この仮想計算機停止要求に応じて、仮想計算機制御部３１０ｉは、当該仮想計算機３０１ｉの動作を一時的に停止させる。ここで、当該仮想計算機３０１ｉを一時的に停止させるのは、正確なディスクイメージを確実に取得するためである。仮想計算機３０１ｉが稼働状態にあるとき、ディスクイメージの更新が行われるおそれがあるので、正確かつ完全なディスクイメージを取得できるとは限らない。仮想計算機３０１ｉの動作を一時的に停止させることなく、正確かつ完全なディスクイメージを取得できるのであれば、仮想計算機３０１ｉの動作を一時的に停止させる必要はない。
【００５７】
次に、ディスクイメージ格納制御部１１０は、実計算機３００ｉ上の仮想計算機制御部３１０ｉに対してディスクイメージ送信要求を送信する（ステップＳ１１２）。このディスクイメージ送信要求とともに、仮想計算機３０１ｉの識別子（たとえば、仮想計算機３０１ｉの名称）も仮想計算機制御部３１０ｉに送信される。このディスクイメージ送信要求に応じて、仮想計算機制御部３１０ｉは仮想計算機３０１ｉのディスクイメージを送信することとなる。
【００５８】
なお、ディスクイメージの形式の一例として、ＶＭｗａｒｅにおけるＶＭＤＫ形式が挙げられる。ＶＭｗａｒｅを含む多くの仮想計算機ソフトウェアでは、仮想計算機の内容を表現するために、ディスクイメージの他に不揮発メモリの内容（ＶＭｗａｒｅではnvramファイル）や仮想計算機設定ファイル（ＶＭｗａｒｅではvmxファイル）などの付随するファイルが必要である。それらの付随するファイルも、ディスクイメージの一部に含まれるものとする。
【００５９】
次に、ディスクイメージ格納制御部１１０は、記憶装置２００を制御して、実計算機３００ｉから取得したディスクイメージを記憶装置２００に格納する（ステップＳ１１３）。ここで、記憶装置２００に格納されるディスクイメージ２２０には、記憶装置２００内で当該仮想計算機３０１ｉに一意なファイル名が付与される。
【００６０】
ディスクイメージ２２０の識別子であるファイル名は、たとえば、固定された先頭の文字列と、当該仮想計算機３０１ｉの名称と、版番号とを連結することで与えられる。図４には、このようにして与えられたファイル名（ディスクイメージ名）が例示されている。版番号（バージョン番号）として、更新情報ファイル２３０に付与される版番号と同一のものを用いる場合、ステップＳ１２４におけるディスクイメージ格納要求とともに、仮想計算機３０１ｉの識別子に加えて版番号もディスクイメージ格納制御部１１０に与えればよい。
【００６１】
上記のステップＳ１１１〜Ｓ１１３までの処理が完了すると、更新情報格納制御部１２０に制御が復帰する。
【００６２】
その後、更新情報格納制御部１２０は、仮想計算機情報を記憶装置２００に格納する（ステップＳ１２５）。すなわち、更新情報格納制御部１２０は、記憶装置２００に格納された更新情報ファイル２３０の識別子と、仮想計算機３０１ｉのディスクイメージ２２０の識別子と、仮想計算機３０１ｉの識別子と、仮想計算機３０１ｉの版番号とを関連付けて仮想計算機情報管理テーブル２１０に追記する。このとき、更新情報格納制御部１２０は、仮想計算機情報管理テーブル２１０に新規レコードを設けて、この新規レコードに、更新情報ファイル２３０の識別子と、ディスクイメージ２２０の識別子と、仮想計算機３０１ｉの識別子と、仮想計算機３０１ｉの版番号とを記録する。
【００６３】
ここで、前述の新規レコードは、仮想計算機３０１ｉの識別子（名称とその版番号）で一意に識別される必要がある。また、たとえば、ステップ１１２で取得したイメージファイルに付随するファイルに含まれる、仮想計算機３０１ｉを特定するのに寄与する任意の情報を新規レコードに追加してもよい。
【００６４】
本実施形態では、図３に示した一連の動作手順において、ディスクイメージ２２０の識別子と、更新情報ファイル２３０の識別子と、仮想計算機情報管理テーブル２１０に追加される新規レコードとに、共通の版番号が付与される。更に、その新規レコードには、付加的な情報として、当該仮想計算機３０１ｉ上で動作するオペレーティング・システムの名称（ＯＳ名）と、仮想計算機３０１ｉに割り当てられる物理メモリ量の情報とを含めることができる。
【００６５】
図４は、仮想計算機情報管理テーブル２１０の内容の一例を示す図である。図４に示されるように、テーブルの各レコード（行）に、「仮想計算機の名称」、「版番号」、「ディスクイメージ名」および「更新情報ファイルの名称」に加えて、「ＯＳ名」および「物理メモリ量」という付加情報が記録されている。また、「shop」という同一名称を含む２つのレコードがあるが、これらレコードのうち一方のレコードの版番号は「52」であり、他方のレコードの版番号は「53」である。よって、版番号の異なる２種類のディスクイメージに関する情報が記録されている。
【００６６】
次に、「仮想計算機情報の参照」というフェーズについて説明する。
【００６７】
「仮想計算機情報の参照」とは、仮想計算機管理サーバ１００Ａの更新情報比較部１３０が記憶装置２００に格納された更新情報ファイル２３０の内容を比較し、その結果を出力することによって行われる。すなわち、仮想計算機情報の参照は、記憶装置２００中の仮想計算機情報管理テーブル２１０の内容と更新情報ファイル２３０の内容とから、記憶装置２００に格納されたディスクイメージ２２０についての情報を、人間が理解可能な形で参照する操作をいう。
【００６８】
システム管理者は、管理端末４００を操作して仮想計算機管理サーバ１００に対する指示情報を入力することで、記憶装置２００に格納された仮想計算機情報を参照することができる。システム管理者は、仮想計算機情報の参照用の操作画面を呼び出すための操作（たとえば、ウェブブラウザに対するＵＲＬの入力）を管理端末４００に対して行う。この操作に対して、管理端末４００は、ネットワーク・サービス・インターフェース１４０から、該当する操作画面を表示するための情報（たとえば、ＨＴＭＬ文書）を取得する。
【００６９】
仮想計算機管理サーバ１００Ａでは、管理端末４００から、２つの仮想計算機３０１ｉ，３００ｊ（ｉ≠ｊ）の実行環境の比較に関する指示情報を受信した場合、更新情報比較部１３０は、それら２つの仮想計算機３０１ｉ，３００ｊにそれぞれ対応する更新情報ファイル２３０，２３０の内容比較を行い、その結果をネットワーク・サービス・インターフェース１４０に出力する。
【００７０】
また、仮想計算機情報の参照については、単一のディスクイメージ２２０に関する情報をその対象とする場合と、異なる２つのディスクイメージ２２０，２２０の情報を相互比較する場合とがある。２つのディスクイメージ２２０，２２０の情報を相互比較する場合は、更に、異なる２つの仮想計算機３０１ｉ，３０１ｊ（ｉ≠ｊ）を比較する場合と、同一の仮想計算機３０１ｉについての異なる版（バージョン）を比較する場合に分けられる。
【００７１】
単一のディスクイメージ２２０を比較対象とした仮想計算機情報の参照を行う場合、管理端末４００から更新情報比較部１３０に対して、仮想計算機３０１ｉの名称とその版番号との対が渡される。これに対して、更新情報比較部１３０は、仮想計算機情報管理テーブル２１０から該当するレコードを取得するとともに、そのレコード中に含まれる更新情報ファイル名に対応する更新情報ファイル２３０の内容を読み取り、当該内容をネットワーク・サービス・インターフェース１４０を介して管理端末４００に送信する。管理端末４００は、指定された仮想計算機３０１ｉと版番号の対に対応するディスクイメージに関する情報を、人間に理解可能な形で表示する。
【００７２】
一方、異なる２つのディスクイメージ２２０，２２０を比較対象とした仮想計算機情報の比較を行う場合、システム管理者は、管理端末４００を操作して比較対象のディスクイメージ２２０，２２０を指定する指示情報を入力する。この指示情報は、ネットワーク・サービス・インターフェース１４０を介して更新情報比較部１３０に送信される。
【００７３】
図５は、比較対象であるディスクイメージを指定するための操作画面の一例を示す図である。図５では、記憶装置２００に格納されるディスクイメージ２２０，...がそれぞれ箱（ボックス）１１Ｒ，１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ，１３として表示されている。また、これら箱１１Ｒ，１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ，１３のラベルとして仮想計算機名と版番号が表示される。更に、ディスクイメージ間の派生関係が矢印で図示されている。たとえば、「rails 版番号24」、「blog 版番号29」、「shop 版番号52」、「wiki、版番号19」の４つのディスクイメージは、どれも「base_os、版番号１」を元に作成されたものであることが示されている。このような派生関係を表示するためには、記憶装置２００中に、事前にディスクイメージ間の派生関係を格納しておく必要がある。この情報を与える方法の１つは、図３のステップＳ１２１の時点で、格納対象のディスクイメージがどのディスクイメージから派生したかという情報を、システム管理者が操作入力により指定するというものである。
【００７４】
あるいは、ディスクイメージの派生関係を以下の手順に従って自動的に生成することができる。図３のステップＳ１１２において、仮想計算機制御部３１０ｉが仮想計算機３０１ｉのディスクイメージを送信する際に、当該ディスクイメージに対応する仮想計算機３０１ｉの識別子（名称と版番号）が更新情報格納制御部１２０に送信される。この識別子に基づいて、更新情報格納制御部１２０は、仮想計算機３０１ｉの現在のディスクイメージの版と、当該仮想計算機３０１ｉの以前のディスクイメージの版とを関連付けて派生関係を生成する。具体的には、仮想計算機情報管理テーブル２１０の各レコードに派生元の仮想計算機を示す識別子（名称と版番号）を記録することができる。たとえば、図４に示す仮想計算機情報管理テーブル２１０に、派生元情報（派生元の仮想計算機を示す識別子）を記録するためのカラム（フィールド）を設け、このカラムに派生元情報を記録すればよい。この場合、「shop-53.img」のディスクイメージ名のレコードには、派生元情報として、仮想計算機の名称「shop」と版番号「52」とを記録することができる。また、「rails-24.img」や「blog-29.img」や「shop-52.img」や「wiki-19.img」のディスクイメージ名のレコードには、それぞれ、派生元情報として、当初導入された仮想計算機の名称「base_os」と版番号「1」とを記録することができる。
【００７５】
システム管理者は、図５に示される操作画面を確認しつつ、ポインティングデバイスなどの入力装置を操作してディスクイメージに対応する箱１１Ｒ，１２Ａ，１２Ｂ，１２Ｃ，１２Ｄ，１３のいずれかを指定することで、比較対象のディスクイメージを指定することができる。より具体的には、システム管理者は、ポインティングデバイスを操作して１つのディスクイメージに対応する箱をクリックした後、続いて、操作画面下部の「指定」ボタン１５Ａをクリックすることで、比較対象のディスクイメージの一方を指定する。同様の手順で、システム管理者は、ポインティングデバイスを操作して１つのディスクイメージに対応する箱をクリックした後、続いて、操作画面下部の「指定」ボタン１５Ｂをクリックすることで、比較対象のディスクイメージの他方を指定する。その後、システム管理者は、「決定」ボタン１６を選択することで、管理端末４００から更新情報比較部１３０に対して仮想計算機情報比較要求が送られる。この仮想計算機比較要求には、比較対象の２つのディスクイメージについての仮想計算機名と版番号が含まれている。
【００７６】
仮想計算機情報比較要求を受け取った更新情報比較部１３０は、仮想計算機情報管理テーブル２１０を参照して、比較対象の２つのディスクイメージに対応するレコードを抽出する。更に、更新情報比較部１３０は、それらのレコードに含まれる更新情報ファイル名の情報から、２つのディスクイメージにそれぞれ対応する更新情報ファイル２３０，２３０の内容を読み出す。最後に、更新情報比較部１３０は、２つのディスクイメージの間で、取得したレコード間の差分と更新情報ファイル２３０，２３０間の差分とを検出して、この検出結果をネットワーク・サービス・インターフェース１４０を介して管理端末４００に送信する。
【００７７】
レコード間の差分と更新情報ファイル２３０，２３０間の差分の検出は、たとえば、単純な文字列比較で行われる。図６は、文字列比較による差分検出に基づく比較結果の一例を示す図である。この例は、図５の操作画面において、比較対象のディスクイメージとして「shop 版番号52」と「shop 版番号53」を指定した場合に相当する。仮想計算機情報管理テーブル２１０の内容が図４の内容であったとすると、「shop 版番号52」と「shop 版番号53」との間の相違点は、ディスクイメージ名と更新情報ファイル名のみである。次に、これらのレコードに含まれる更新情報ファイル名に相当する更新情報ファイル２３０，２３０の内容がそれぞれ図２（Ａ），（Ｂ）の内容であったとすると、両者の差分は、「shop 版番号53」に含まれる最後の２行である。この結果、管理端末４００には、比較結果として、パッケージ「monitor-3.0.1-5」の更新（update）と、パッケージ「cache-1.1.1-3」の導入（install）という事項が表示される。
【００７８】
上記第１の実施形態の仮想計算機管理システムが奏する効果は以下の通りである。
【００７９】
上述したように、仮想計算機３０１１〜３０１Ｎの各々では、システム更新部３０３は、自らの実行環境の更新が行われたときに当該更新の内容を示す更新情報を更新記録ファイル３０４という形で保存し、また、更新記録送信部３０２は、更新記録ファイル３０４に記録されている更新情報を仮想計算機管理サーバ１００Ａに提供する。仮想計算機管理サーバ１００Ａは、仮想計算機３０１１〜３０１Ｎから送信された更新情報を、それぞれ対応する更新情報ファイル２３０，...に記録する。よって、更新情報比較部１３０は、更新情報ファイル２３０の更新情報に基づいて、仮想計算機３０１１〜３０１Ｎの更新状況を示すデータを生成することができる。
【００８０】
したがって、本実施形態の仮想計算機管理システムは、通信ネットワーク５００上に分散している多数の仮想計算機３０１１〜３０１Ｎの実行環境に関する正確な詳細情報を取得することができ、当該実行環境の更新状況を示すデータをシステム管理者に提供することができる。それ故、システム管理者の管理負担が大幅に軽減される。
【００８１】
また、ディスクイメージ格納制御部１１０は、ディスクイメージ２２０の識別子と、当該ディスクイメージ２２０を有する仮想計算機３０１ｉに対応して用意された更新情報ファイル２３０の識別子とを関連付けて仮想計算機情報管理テーブル２１０に記録する。更新情報比較部１３０は、この仮想計算機情報管理テーブル２１０を利用して、同一のディスクイメージ２２０の更新履歴を示すデータ、あるいは、異なる２つのディスクイメージ２２０，２２０間の差分を示すデータを生成することができる。その更新履歴や差分を示すデータに基づいて、システム管理者は、ネットワーク・サービス・インターフェース１４０を通じて、仮想計算機３０１１〜３０１Ｎの実行環境の更新状況を素早くかつ容易に把握することができる。
【００８２】
（第２の実施形態）
次に、本発明に係る第２の実施形態について説明する。図７は、第２の実施形態の仮想計算機管理システムの概略構成を示す機能ブロック図である。この仮想計算機管理システムは、複数の実計算機３２０１〜３２０Ｎと、仮想計算機管理サーバ（Virtual Machine Management Server）１００Ｂと、記憶装置２００と、管理端末４００とを備えている。これら実計算機３２０１〜３２０Ｎ、仮想計算機管理サーバ１００Ｂ、記憶装置２００および管理端末４００は、通信ネットワーク５００を介して相互に接続されている。
【００８３】
実計算機３２０１〜３２０Ｎの各々は、少なくとも１台の仮想計算機を有する。図７に示されるように、実計算機３２０１は、仮想計算機制御部３３０１を有しており、この仮想計算機制御部３３０１の制御下で実計算機３２０１上に仮想計算機３０５１が構築されている。他の実計算機３２０２〜３２０Ｎも、実計算機３２０１と同様の構成を有している。すなわち、実計算機３２０２〜３２０Ｎは、それぞれ、仮想計算機制御部３３０２〜３３０Ｎの制御下で構築された仮想計算機３２１２〜３２１Ｎを有している。仮想計算機管理サーバ１００Ｂは、通信ネットワーク５００を介して実計算機３２０１〜３２０Ｎ上の仮想計算機群を遠隔管理する機能を有している。
【００８４】
仮想計算機制御部３３０１は、実計算機３２０１の記憶装置（図示せず）に記憶されているディスクイメージや構成ファイル群に基づいて仮想計算機３２１１を論理的に構成する機能を有する。仮想計算機制御部３３０２〜３３０Ｎも、仮想計算機制御部３３０１と同様の機能を有する。仮想計算機制御部３３０１は、上記第１の実施形態の仮想計算機制御部３１０１（図１）と同様に、実計算機３２０１上で動作するホスト・オペレーティング・システム（ホストＯＳ）あるいは仮想計算機モニタ（ＶＭＭ：Virtual Machine Monitor）である。また、実計算機３２０１〜３２０Ｎのハードウェア構成は、上記第１の実施形態の実計算機３００１〜３００Ｎと同様の物理資源によって構成され得る。
【００８５】
仮想計算機３２１１は、パッケージ情報送信部３０５を有する。パッケージ情報送信部３０５は、仮想計算機３２１１の実行環境を構築するために導入された複数のソフトウェア・パッケージの識別情報（たとえば、当該ソフトウェア・パッケージの名称）と、当該ソフトウェア・パッケージの相互依存関係を示す依存関係情報とをパッケージ情報として仮想計算機管理サーバ１００Ｂに送信する機能を有する。
【００８６】
仮想計算機３２１１を制御する仮想計算機制御部３３０１は、ディスクイメージ送信部３３０Ａを有している。このディスクイメージ送信部３３０Ａは、仮想計算機管理サーバ１００Ｂからのディスクイメージ格納要求に応じて、実計算機３２０１のディスクイメージを読み出し、これを記憶装置２００に送信する機能を有する。
【００８７】
一方、仮想計算機管理サーバ１００Ｂは、ディスクイメージ格納制御部１１０、パッケージ情報格納制御部１５０、パッケージ情報比較部１６０およびネットワーク・サービス・インターフェース１４０を有する。仮想計算機管理サーバ１００Ｂの構成の全部または一部は、ハードウェアで実現されてもよいし、あるいは、コンピュータのプロセッサに処理を実行させるコンピュータプログラム（またはプログラムコード）で実現されてもよい。仮想計算機管理サーバ１００Ｂの構成要素１１０，１５０，１６０，１４０の機能がコンピュータプログラムで実現される場合、プロセッサは、不揮発性メモリなどの記録媒体からそのコンピュータプログラムを読み出し実行する。
【００８８】
記憶装置２００は、仮想計算機管理サーバ１００Ｂによって格納または参照されるディスクイメージ、パッケージ情報および仮想計算機情報を保持する。記憶装置２００には、実計算機３２０１〜３２０Ｎ上の多数の仮想計算機３２１１〜３２１Ｎにそれぞれ対応して用意されたパッケージリスト２５０，...が格納されている。ここで、パッケージリスト２５０は、パッケージ情報の一種であり、記憶装置２００に格納された各ディスクイメージ２２０について、そのディスクイメージ２２０中に導入済みのパッケージの名称からなるリストである。
【００８９】
また、記憶装置２００には、パッケージ情報データベース２４０が格納されている。このパッケージ情報データベース２４０の詳細は後述する。
【００９０】
また、記憶装置２００は、実計算機３２０１〜３２０Ｎから送信されたディスクイメージ２２０，...を格納するための記憶領域を有している。上述した通り、ディスクイメージ格納制御部１１０は、記憶装置２００を制御して、実計算機３２０１から送信されたディスクイメージを当該記憶領域に格納する。
【００９１】
更に、記憶装置２００には、仮想計算機情報管理テーブル２１０Ｂが格納されている。仮想計算機情報管理テーブル２１０Ｂには、仮想計算機管理サーバ１００Ｂの管理下にある仮想計算機３２１１〜３２１Ｎに関する情報（メタデータ）が記録されている。ディスクイメージ格納制御部１１０は、実計算機３２０ｉ（ｉは１〜Ｎのうちのいずれか）から送信された仮想計算機３２１ｉのディスクイメージの識別子（たとえば、当該ディスクイメージの名称を表すデータ）と、当該仮想計算機３２１ｉに対応するパッケージ情報とを関連付けて仮想計算機情報管理テーブル２１０Ｂに記録することができる。
【００９２】
パッケージ情報比較部１６０は、ネットワーク・サービス・インターフェース１４０からの要求や問い合わせに基づいて、仮想計算機情報管理テーブル２１０Ｂを参照して比較対象となるディスクイメージに対応するパッケージ情報を選択する。パッケージ情報比較部１６０は、選択したパッケージ情報を比較して、単一または複数の仮想計算機の実行環境の更新状況を示すデータを生成する。
【００９３】
第２の実施形態では、ネットワーク・サービス・インターフェース１４０は、管理端末４００とパッケージ情報比較部１６０との間、あるいは、管理端末４００とパッケージ情報格納制御部１５０との間で情報をやりとりするためのインターフェースである。
【００９４】
システム管理者は、管理端末４００を操作して仮想計算機管理サーバ１００Ｂに対する指示情報を入力することができる。この指示情報は、通信ネットワーク５００を介してネットワーク・サービス・インターフェース１４０に送信される。ネットワーク・サービス・インターフェース１４０は、当該指示情報に基づいた要求や問い合わせをパッケージ情報比較部１６０やパッケージ情報格納制御部１５０に対して行う。パッケージ情報比較部１６０またはパッケージ情報格納制御部１５０は、当該問い合わせや要求に応じた処理を実行し、その実行結果をネットワーク・サービス・インターフェース１４０に返す。そして、ネットワーク・サービス・インターフェース１４０は、その実行結果を、当該指示情報に対する応答結果として管理端末４００に返信することとなる。
【００９５】
パッケージ情報格納制御部１５０は、記憶装置２００を制御して、仮想計算機３２１ｉから送信されたパッケージ情報（ディスクイメージに導入済みのパッケージに関する情報を含む。）を、当該仮想計算機３２１ｉに対応して用意されたパッケージリスト２５０に記録する。
【００９６】
パッケージ情報データベース２４０は、記憶装置２００に格納された１つ以上のディスクイメージ２２０について、それらのディスクイメージ中に導入済みのパッケージの名称および依存関係情報を含むパッケージ情報を格納するデータベースである。
【００９７】
以上の構成を有する仮想計算機管理システムの動作について以下に説明する。第１の実施形態の場合と同様に、第２の実施形態の仮想計算機管理システムは、１）仮想計算機の更新、２）仮想計算機情報の登録、３）仮想計算機情報の参照、という３つの相（フェーズ）で動作する。
【００９８】
「仮想計算機の更新」のフェーズでは、上記第１の実施形態と同様に、仮想計算機３２１１〜３２１Ｎ上で動作するＯＳにアプリケーション・プログラムの導入などの変更操作が加えられる。第２の実施形態では、この更新の際に、仮想計算機３２１１〜３２１Ｎ上のＯＳに用意されたパッケージ管理機能が使用される。
【００９９】
次に、「仮想計算機情報の登録」のフェーズでは、ある時点における仮想計算機３２１ｉに対応する仮想計算機情報（パッケージ情報を含む。）が記憶装置２００に格納される。
【０１００】
システム管理者は、管理端末４００を操作して仮想計算機管理サーバ１００Ｂに対する指示情報を入力する。管理端末４００は、この指示情報を仮想計算機管理サーバ１００Ｂに送信する。仮想計算機管理サーバ１００Ｂでは、パッケージ情報格納制御部１５０が当該指示情報に応じて、仮想計算機３２１ｉに関するパッケージリスト２５０を記憶装置２００に格納させる制御を実行する。また、ディスクイメージ格納制御部１１０が当該指示情報に応じて、仮想計算機３０１ｉのディスクイメージを記憶装置２００に格納させる制御を実行する。
【０１０１】
更に、ディスクイメージ格納制御部１１０は、仮想計算機情報管理テーブル２１０Ｂに新たなレコード（行）を追加する。ディスクイメージ格納制御部１１０は、実計算機３２０ｉから送信された仮想計算機３２１ｉのディスクイメージの識別子と、当該仮想計算機３２１ｉに対応するパッケージ情報（パッケージリスト）の識別子とを関連付けてその新たなレコードに記録する。
【０１０２】
なお、記憶装置２００に格納されるパッケージリスト２５０の中に、パッケージ情報データベース２４０に含まれないパッケージ名がある場合には、ディスクイメージ格納制御部１１０またはパッケージ情報格納制御部１５０は、当該パッケージ名に関するレコードをパッケージ情報データベース２４０に追加する。
【０１０３】
図８は、仮想計算機情報の格納手順を示す通信シーケンスを概略的に示す図である。以下、図８に示されている各ステップに沿ってこの手順を詳細に説明する。
【０１０４】
まず、システム管理者は、管理端末４００を操作してこの管理端末４００に対して仮想計算機情報格納の指示情報を入力する（ステップＳ１５１）。管理端末４００は、この指示情報を仮想計算機管理サーバ１００Ｂに送信する。仮想計算機管理サーバ１００Ｂでは、パッケージ情報格納制御部１５０がネットワーク・サービス・インターフェース１４０を介して当該指示情報を受け付ける。当該指示情報は、仮想計算機３２１ｉの識別子（たとえば、仮想計算機３０１ｉの名称）を指定するものであればよい。
【０１０５】
ステップＳ１５１でのシステム管理者による操作入力に先立って、システム管理者は、仮想計算機情報格納のための操作画面を呼び出すための操作を管理端末４００に対して行う。この操作に応じて、管理端末４００は、ネットワーク・サービス・インターフェース１４０から、操作画面を表示するための情報を取得する。本実施形態では、操作画面を呼び出すために、システム管理者は、管理端末４００で起動されたウェブブラウザにＵＲＬ（Uniform Resource Locator）を入力する操作を行う。この場合、操作画面を表示するための情報は、たとえば、ＨＴＭＬ（Hypertext Markup Language）で記述されていればよい。
【０１０６】
次に、パッケージ情報格納制御部１５０は、与えられた識別子に対応する仮想計算機３２１ｉ上のパッケージ情報送信部３０５に対してパッケージリスト取得要求を送信する（ステップＳ１５２）。仮想計算機３２１ｉのパッケージ情報送信部３０５は、このパッケージリスト取得要求に応じてパッケージリストを示す情報を送信する。この結果、パッケージ情報格納制御部１５０は当該パッケージリストを取得する。なお、パッケージリストとは、仮想計算機３２１ｉ上のＯＳに、ある時点で導入済みの全パッケージの名称（パッケージ名）からなるリストである。
【０１０７】
このステップＳ１５２が実行されるとき、当該仮想計算機３２１ｉは稼動状態にある必要がある。図８には明確に示されていないが、当該仮想計算機３２１ｉが停止状態にある場合には、パッケージリスト取得要求の送信に先立って当該仮想計算機３２１ｉの起動処理が実行される。この起動処理は、パッケージ情報格納制御部１５０が仮想計算機制御部３３０ｉに起動要求を送信することにより行われる。この起動要求に応じて、仮想計算機制御部３３０ｉは当該仮想計算機３２１ｉを起動することとなる。これにより、システム管理者は、実計算機３２０ｉを直接操作または遠隔操作して当該実計算機３２０ｉ上に仮想計算機３２１ｉを起動する必要がないので、システム管理者の負担が大幅に軽減される。
【０１０８】
パッケージ情報送信部３０５は、パッケージリストを取得するために、仮想計算機３２１ｉ上のＯＳ上に用意されたパッケージ管理機能のコマンド（パッケージ管理コマンド）を使用する。たとえば、パッケージ管理機能としてＲＰＭを採用したゲストＯＳの場合、「rpm -qa」コマンドを実行することで、導入済みの全パッケージのリストを取得することができる。
【０１０９】
次に、パッケージ情報格納制御部１５０は、パッケージ情報データベース２４０を参照して、ステップＳ１５２で取得したパッケージリストのうち、パッケージ情報データベース２４０に対応するレコードに含まれないパッケージ名を調べる（ステップＳ１５３）。
【０１１０】
図９に、パッケージ情報データベース２４０の内容の一例を示す。この例では、表の各行（レコード）が１つのパッケージについての情報を示している。１つのレコードは、パッケージ名と、そのパッケージが依存する他のパッケージの名称（パッケージ名）のリストからなる。たとえば、「shopping-3.2-3」というパッケージは、「library-1.2-1」、「webserver-2.2.1-2」、「scriptor-1.8.0-3」の３つのパッケージに依存している。このことは、「shopping-3.2-3」を導入するためには、事前にこれら３つのパッケージが導入されている必要があることを示している。依存するパッケージ名が空欄になっているパッケージは、依存するパッケージがない、すなわち他のパッケージの導入状況に関わらず導入できることを意味する。
【０１１１】
次に、パッケージ情報格納制御部１５０は、仮想計算機３２１ｉのパッケージ情報送信部３０５に対して、パッケージ依存関係情報取得要求を送信する（ステップＳ１５４）。このパッケージ依存関係情報取得要求に応じて、パッケージ情報送信部３０５は、ステップＳ１５３で取得された各パッケージ名について、そのパッケージについての依存関係情報をパッケージ情報格納制御部１５０に送信する。前述した通り、パッケージの依存関係情報とは、そのパッケージを導入する際に必要となる他のパッケージの名称、あるいは、そのパッケージが提供する機能とそのパッケージが依存する機能との組み合わせである。なお、ステップＳ１５３において、パッケージ情報データベース２４０中のレコードに対象パッケージ名が存在しない場合には、ステップＳ１５４の実行は省略される。
【０１１２】
次に、パッケージ情報格納制御部１５０は、記憶装置２００を制御して、ステップＳ１５２において取得したパッケージリスト２５０を記憶装置２００に格納するとともに、ステップＳ１５４で取得したパッケージ依存関係情報を、新規レコードとしてパッケージ情報データベース２４０に追加する（ステップＳ１５５）。ここで、追加される新規レコードには、パッケージ名と、そのパッケージの依存関係情報とが含まれている。
【０１１３】
ステップＳ１５５において、格納対象となるパッケージリスト２５０には、記憶装置２００内で一意なパッケージリスト名が付与される。パッケージリスト名は、たとえば、固定された文字列と、当該仮想計算機３２１ｉの識別子（たとえば、当該仮想計算機３２１ｉの名称）と、版番号とを連結することで与えられる。
【０１１４】
次に、パッケージ情報格納制御部１５０は、ディスクイメージ格納制御部１１０に対して、ディスクイメージ格納要求を行う（ステップＳ１５６）。このディスクイメージ格納要求とともに、仮想計算機３２１ｉの名称がディスクイメージ格納制御部１１０に与えられる。このディスクイメージ格納要求に応じて、ディスクイメージ格納制御部１１０は、ステップＳ１１１〜Ｓ１２３を実行する。ステップＳ１１１〜Ｓ１２３の動作は上述した通りである。
【０１１５】
ステップＳ１１１からＳ１１３までの処理が完了すると、パッケージ情報格納制御部１５０に制御が復帰する。
【０１１６】
その後、パッケージ情報格納制御部１５０は、仮想計算機情報を記憶装置２００に格納する（ステップＳ１２５）。すなわち、パッケージ情報格納制御部１５０は、記憶装置２００に格納されたパッケージリスト２５０の識別子と、仮想計算機３２１ｉのディスクイメージ２２０の識別子と、仮想計算機３２１ｉの識別子と、仮想計算機３２１ｉの版番号とを関連付けて仮想計算機情報管理テーブル２１０Ｂに追記する。このとき、パッケージ情報格納制御部１５０は、仮想計算機情報管理テーブル２１０Ｂに新規レコードを設けて、この新規レコードに、パッケージリスト２５０の識別子と、ディスクイメージ２２０の識別子と、仮想計算機３２１ｉの識別子と、仮想計算機３２１ｉの版番号とを記録する。
【０１１７】
ここで、前述の新規レコードは、仮想計算機３２１ｉの識別子とその版番号とで一意に識別される必要がある。また、たとえば、仮想計算機３２１ｉ上で動作するＯＳの名称（ＯＳ名）や物理メモリ量などの、仮想計算機３２１ｉを特定するのに寄与する任意の情報を新規レコードに追加してもよい。
【０１１８】
本実施形態では、図８に示した一連の動作手順において、ディスクイメージ２２０の識別子と、パッケージリスト２５０の識別子と、仮想計算機情報管理テーブル２１０Ｂに追加される新規レコードとに、共通の版番号が付与される。
【０１１９】
図９は、仮想計算機情報管理テーブル２１０Ｂの内容の一例を示す図である。図９に示されるように、テーブルの各レコード（行）に、「仮想計算機の名称」、「版番号」、「ディスクイメージ名」および「パッケージリスト名」に加えて、「ＯＳ名」および「物理メモリ量」という付加情報が記録されている。また、「shop」という同一名称を含む２つのレコードがあるが、これらレコードのうち一方のレコードの版番号は「52」であり、他方のレコードの版番号は「53」である。よって、版番号の異なる２種類のディスクイメージに関する情報が記録されている。
【０１２０】
次に、「仮想計算機情報の参照」というフェーズについて説明する。
【０１２１】
仮想計算機管理サーバ１００Ｂのパッケージ情報比較部１６０は、記憶装置２００に格納されたディスクイメージの内容を比較し、その結果を出力する。第１の実施形態の場合と同様に、システム管理者は、管理端末４００を操作して仮想計算機管理サーバ１００に対する指示情報を入力することで、記憶装置２００に格納された、ディスクイメージに関する仮想計算機情報を参照することができる。システム管理者は、仮想計算機情報の参照用の操作画面を呼び出すための操作（たとえば、ウェブブラウザに対するＵＲＬの入力）を管理端末４００に対して行う。この操作に対して、管理端末４００は、ネットワーク・サービス・インターフェース１４０から、該当する操作画面を表示するための情報（たとえば、ＨＴＭＬ文書）を取得する。
【０１２２】
仮想計算機管理サーバ１００Ｂでは、管理端末４００から、２つの仮想計算機３２１ｉ，３２１ｊ（ｉ≠ｊ）の実行環境の比較に関する指示情報を受信した場合、パッケージ情報比較部１６０は、それら２つの仮想計算機３２１ｉ，３２１ｊにそれぞれ対応するパッケージリスト２５０，２５０の内容比較を行い、その結果をネットワーク・サービス・インターフェース１４０に出力する。このとき、パッケージ情報比較部１６０は、追加されたパッケージ間の依存関係を含めた形態の比較結果を出力する。
【０１２３】
また、仮想計算機情報の参照については、単一のディスクイメージ２２０に関する情報をその対象とする場合と、異なる２つのディスクイメージ２２０，２２０の情報を相互比較する場合とがある。２つのディスクイメージ２２０，２２０の情報を相互比較する場合は、更に、異なる２つの仮想計算機３０１ｉ，３０１ｊ（ｉ≠ｊ）を比較する場合と、同一の仮想計算機３０１ｉについての異なる版（バージョン）を比較する場合に分けられる。
【０１２４】
単一のディスクイメージ２２０を比較対象とした仮想計算機情報の参照を行う場合、管理端末４００からパッケージ情報比較部１６０に対して、仮想計算機３２１ｉの名称とその版番号との対が渡される。これに対して、パッケージ情報比較部１６０は、仮想計算機情報管理テーブル２１０Ｂから該当するレコードを取得するとともに、そのレコード中に含まれるパッケージリスト名に対応するパッケージリスト２５０の内容を読み取り、当該内容をネットワーク・サービス・インターフェース１４０を介して管理端末４００に送信する。管理端末４００は、指定された仮想計算機３２１ｉと版番号の対に対応する導入済みのパッケージリストの内容を、人間に理解可能な形で表示する。
【０１２５】
一方、異なる２つのディスクイメージ２２０，２２０を比較対象とした仮想計算機情報の比較を行う場合、システム管理者は、管理端末４００を操作して比較対象のディスクイメージ２２０，２２０を指定する指示情報を入力する。この指示情報は、ネットワーク・サービス・インターフェース１４０を介してパッケージ情報比較部１６０に送信される。このとき比較対象となるディスクイメージ２２０，２２０をシステム管理者が指定するために、図５に示した操作画面と同様の操作画面を使用すればよい。
【０１２６】
システム管理者が管理端末４００を操作して、２つのディスクイメージ２２０，２２０を指定するとともにこれらディスクイメージ２２０，２２０間の比較を指示する指示情報を入力すると、管理端末４００は、当該指示情報をネットワーク・サービス・インターフェース１４０に送信する。この指示情報に応じて、ネットワーク・サービス・インターフェース１４０は、パッケージ情報比較部１６０に対して仮想計算機情報比較要求を発行する。この仮想計算機情報比較要求には、比較対象の各ディスクイメージ２２０についての仮想計算機名と版番号との対が含まれる。
【０１２７】
仮想計算機情報比較要求を受け取ったパッケージ情報比較部１６０は、指定された２つのディスクイメージ２２０，２２０にそれぞれ対応するパッケージリスト２５０，２５０の内容を相互に比較し、その比較結果を出力する。ここで、パッケージ情報比較部１６０は、記憶装置２００に格納されている依存関係情報に基づいて、当該比較結果を、相互依存関係を有するパッケージのグループごとに分類した形で生成する。ネットワーク・サービス・インターフェース１４０は、パッケージ情報比較部１６０の出力を受け取り、管理端末４００に送信する。そして、管理端末４００は、２つのディスクイメージ２２０，２２０間の差分を表すデータを、パッケージ・グループごとに分類した形態で出力する。
【０１２８】
以下、パッケージ情報比較部１６０の処理内容を以下に説明する。図１０は、パッケージ情報比較部１６０による処理手順を概略的に示すフローチャートである。
【０１２９】
図１０を参照すると、パッケージ情報比較部１６０は、まず、比較対象の２つのパッケージリスト２５０，２５０を相互に比較して、これらパッケージリスト２５０，２５０のうち一方にのみ含まれるパッケージ名の集合すなわちパッケージリストの差分を抽出する（ステップＳ１６１）。このパッケージリストの差分は、比較対象の２つのパッケージリスト２５０，２５０にそれぞれ対応するディスクイメージ２２０，２２０間の差分を表す情報である。
【０１３０】
ステップＳ１６１では、比較対象のパッケージリスト２５０を取得するために、パッケージ情報比較部１６０は、仮想計算機情報比較要求に含まれる仮想計算機名と版番号との対を検索条件として、仮想計算機情報管理テーブル２１０Ｂからレコードを抽出する。そして、パッケージ情報比較部１６０は、抽出されたレコードに含まれるパッケージリスト名に対応するパッケージリスト２５０を取得する。
【０１３１】
なお、ステップＳ１６１において、パッケージ情報比較部１６０は、パッケージリストの差分だけでなく、比較対象の２つのパッケージリスト２５０，２５０に共通して含まれるパッケージ名の集合を取得してもよい。更に、各パッケージ名に版番号が付されている場合、パッケージ情報比較部１６０は、版番号ごとに分類されたパッケージ名の集合を抽出することもできる。
【０１３２】
説明の便宜上、比較対象の異なる２つのパッケージリスト２５０，２５０を、それぞれ、パッケージリストＧＡ、ＧＢとする。このとき、パッケージリストＧＢの全ての要素（パッケージ名）がパッケージリストＧＡに含まれる第１の場合（パッケージリストＧＢは、パッケージリストＧＡの部分集合である場合）、パッケージリストＧＡの全ての要素（パッケージ名）がパッケージリストＧＢに含まれる第２の場合（パッケージリストＧＡは、パッケージリストＧＢの部分集合である場合）、そして、これら第１および第２の場合以外の第３の場合（すなわち、パッケージリストＧＡにのみ含まれる部分集合と、パッケージリストＧＢにのみ含まれる部分集合とが存在する場合）があり得る。以下、第１および第２の場合を想定した手順を説明する。
【０１３３】
ステップＳ１６１で抽出されたパッケージ名の集合（パッケージリストの差分）Ｇｐを処理対象として、以下のステップＳ１６２〜Ｓ１６６の処理が実行される。
【０１３４】
まず、パッケージ情報比較部１６０は、当該集合Ｇｐの中に未処理のパッケージ名があるか否かを判定する（ステップＳ１６２）。未処理のパッケージ名がある場合（ステップＳ１６２のＹＥＳ）、パッケージ情報比較部１６０は、当該集合Ｇｐの中から１つのパッケージ名Ｎｐを選択する（ステップＳ１６３）。
【０１３５】
次に、パッケージ情報比較部１６０は、パッケージ情報データベース２４０を参照して、ステップＳ１６３で選択された処理対象のパッケージ名Ｎｐに関する依存関係情報を取得する（ステップＳ１６４）。
【０１３６】
次に、パッケージ情報比較部１６０は、ステップＳ１６４で取得された依存関係情報に基づいて、集合Ｇｐの中に、パッケージ名Ｎｐと相互依存関係を有するパッケージ名が存在するか否かを判定する（ステップＳ１６５）。集合Ｇｐの中に、パッケージ名Ｎｐと相互依存関係を有するパッケージ名Ｎｐｄが存在する場合（ステップＳ１６５のＹＥＳ）、パッケージ情報比較部１６０は、パッケージ名Ｎｐを有するパッケージとパッケージ名Ｎｐｄを有するパッケージとの間に依存関係リンクを設定する（ステップＳ１６６）。なお、依存関係リンクは、あるパッケージから、当該パッケージが依存する他のパッケージに向かう矢印として表現することができる。ステップＳ１６６における依存関係リンク作成の具体例については後述する。
【０１３７】
一方、ステップＳ１６５で、集合Ｇｐの中に、パッケージ名Ｎｐと相互依存関係を有するパッケージ名が存在しないと判定された場合（ステップＳ１６５のＮＯ）、パッケージ情報比較部１６０は、処理をステップＳ１６２に戻す。
【０１３８】
なお、ステップＳ１６２において、版番号のみが異なるパッケージ名が、比較対象の両パッケージリストに含まれる場合がありうる。パッケージ情報比較部１６０は、当該パッケージ名を更新されたパッケージ名として、後述のステップＳ１６７における出力の一部に含める。
【０１３９】
ステップＳ１６２で未処理のパッケージ名が無いと判定されたとき（ステップＳ１６２のＮＯ）、すなわち、パッケージリストの差分中の全パッケージ名について、ステップＳ１６２〜Ｓ１６６の処理が完了したとき、パッケージ情報比較部１６０は、パッケージリストの差分（パッケージ名の集合）を示す情報をネットワーク・サービス・インターフェース１４０に出力するとともに、当該差分を、依存関係リンクによってグループ化した形で出力する。依存関係リンクで結ばれたパッケージ名は、同一グループに分類されることとなる。１つのグループ内には、他のパッケージ名に依存されないパッケージ名（すなわち、当該パッケージ名を有するパッケージを指す矢印がない。）が少なくとも１つ存在するので、このパッケージ名を、当該グループの代表パッケージ名とする。
【０１４０】
あるグループの代表パッケージ名を有するパッケージ（以下、代表パッケージと呼ぶ。）を導入するには、この代表パッケージ以外のすべてのパッケージが事前に仮想計算機に導入されている必要がある。したがって、パッケージ情報比較部１６０は、異なる２台の仮想計算機３２１ｉ，３２１ｊ（ｉ≠ｊ）にそれぞれ導入されている代表パッケージ名を検出すれば、これら仮想計算機３２１ｉ，３２１ｊのディスクイメージ２２０，２２０間の差分を表すすべてのパッケージを特定することができる。
【０１４１】
図１１および図１２を参照しつつ、依存関係リンクの作成およびパッケージリストの差分のグループ化の具体例を説明する。図１１は、「pkg-11」、「pkg-12」、...、「pkg-15」という５つのパッケージについての依存関係情報を示す図である。パッケージ「pkg-11」は「pkg-12」に依存するので、「pkg-11」から「pkg-12」へと矢印が付加される。同様に、パッケージ「pkg-13」から「pkg-11」へと矢印が付加されることとなる。
【０１４２】
図１２は、パッケージ名のグループを示す図である。図１１の表の左欄には「pkg-11」、「pkg-12」、...、「pkg-15」というパッケージ名の５つのパッケージが示されている。図１１の表の右欄には、左欄で示される各パッケージに依存するパッケージの名称（パッケージ名）が表示されている。「pkg-13」および「pkg-14」に依存するパッケージは存在しないので、これらは代表パッケージ名となり得る。「pkg-15」、「pkg-7」および「pkg-8」はパッケージリスト中の他の要素との依存関係を持たないので、単独でグループを形成し、「pkg-15」はその代表パッケージ名となる。
【０１４３】
上記の手順は、パッケージリストＧＡ、ＧＢについて、一方が他方の部分集合であるとの条件を前提としていた。この条件が満たされない場合には、ＧＡにのみ含まれるパッケージ名の集合と、ＧＢにのみパッケージ名の集合が存在する。この場合、それらを個別のパッケージリストの差分として扱い、それぞれのパッケージリスト差分についてステップＳ１６２〜Ｓ１６７の手順を適用すればよい。
【０１４４】
以下、管理端末４００に表示されるパッケージリストの差分の表示内容を説明する。図１３（Ａ）と図１３（Ｂ）は、それぞれ、「pkglist-shopping-52」および「pkglist-shopping-53」と名付けられたディスクイメージの内容を示す図である。これらディスクイメージ間の差分を取得する場合を挙げて以下説明する。
【０１４５】
まず、これらのパッケージリストを単純に比較すると、「pkglist-shopping-53」にのみ、「memorydb-0.8-1」と「cache-1.1.1-3」が含まれている。次に、パッケージリスト間の依存関係情報が図１４に示されるものとすれば、パッケージ「cache-1.1.1-3」は「memorydb-0.8-1」に依存し、「cache-1.1.1」に依存するパッケージは存在しない。したがって、「cache-1.1.1」と「memorydb-0.8-1」は同一のグループに属し、「cache-1.1.1」がその代表パッケージ名となる。
【０１４６】
また、「monitor」という名称のパッケージは両パッケージリストに含まれるものの、パッケージ名に付加された版番号が、それぞれ「3.0.1-4」、「3.0.1-5」と異なっている。したがって、これらのパッケージ名を、更新されたパッケージ名として出力する。結果として、管理端末４００に出力される比較結果は、たとえば、図１５に示すものとなる。
【０１４７】
上記第２の実施形態の仮想計算機管理システムが奏する効果は以下の通りである。
【０１４８】
上述したように、仮想計算機３２１１〜３２１Ｎの各々では、パッケージ情報送信部３０５は、各仮想計算機に導入された複数のソフトウェア・パッケージの識別情報と、当該ソフトウェア・パッケージの相互依存関係を示す依存関係情報とをパッケージ情報として仮想計算機管理サーバ１００Ｂに送信する。パッケージ情報比較部１６０は、このパッケージ情報に基づいて、仮想計算機３２１１〜３２１Ｎの更新状況を示すデータを生成することができる。
【０１４９】
したがって、本実施形態の仮想計算機管理システムは、通信ネットワーク５００上に分散している多数の仮想計算機３２１１〜３２１Ｎの実行環境に関する正確な詳細情報を取得することができ、当該実行環境の更新状況を示すデータをシステム管理者に提供することができる。それ故、システム管理者の管理負担が大幅に軽減される。
【０１５０】
また、パッケージ情報比較部１６０は、仮想計算機３２１１〜３２１Ｎのディスクイメージの識別子と、これら仮想計算機にそれぞれ対応する当該パッケージ情報とを関連付けて仮想計算機情報管理テーブル２１０Ｂに記録するので、パッケージ情報比較部１６０は、この仮想計算機情報管理テーブル２１０Ｂを利用して、同一のディスクイメージ２２０の更新履歴を示すデータ、あるいは、異なる２つのディスクイメージ２２０，２２０間の差分を示すデータを生成することができる。その更新履歴や差分を示すデータに基づいて、システム管理者は、ネットワーク・サービス・インターフェース１４０を通じて、仮想計算機３２１１〜３２１Ｎの実行環境の更新状況を素早くかつ容易に把握することができる。
【０１５１】
更に、パッケージ情報比較部１６０は、依存関係情報に基づいて、仮想計算機３２１１〜３２１Ｎの実行環境の更新状況を示すデータを、ソフトウェア・パッケージのグループごとに分類した形で生成するので、システム管理者は、その更新状況を容易にかつ素早く把握することができる。
【０１５２】
以上、図面を参照して本発明の実施形態について述べた。上記第１および第２の実施形態の仮想計算機管理システムは、仮想計算機により構成される企業内コンピュータシステムの構築において、仮想計算機の実行環境を一元管理するためのシステムとしての用途に適用可能である。
【０１５３】
また、上記第１および第２の実施形態の仮想計算機管理システムは、仮想計算機により構成されるデータセンターにおいて、複数のシステム管理者が少しずつ異なる内容の仮想計算機を利用する目的で、それらの仮想計算機についての情報を一元管理するためのシステムとしての用途にも適用可能である。
【０１５４】
上記実施形態は本発明の例示であり、上記以外の様々な構成を採用することもできる。たとえば、上記第１の実施形態（図１）では、仮想計算機管理サーバ１００Ａと記憶装置２００とは通信ネットワーク５００を介して相互接続されているが、かかる形態に限定されるものではない。仮想計算機管理サーバ１００Ａと記憶装置２００とが同一の装置内に組み込まれる形態もあり得る。同様に、管理端末４００と仮想計算機管理サーバ１００Ａとは、通信ネットワーク５００を介して相互接続されているが、かかる形態に限定されるものでもない。管理端末４００が仮想計算機管理サーバ１００Ａに直接接続された形態もあり得る。
【０１５５】
また、上記第２の実施形態（図７）でも、仮想計算機管理サーバ１００Ｂと記憶装置２００とは通信ネットワーク５００を介して相互接続されているが、かかる形態に限定されるものではない。仮想計算機管理サーバ１００Ｂと記憶装置２００とが同一の装置内に組み込まれる形態もあり得る。同様に、管理端末４００と仮想計算機管理サーバ１００Ｂとは、通信ネットワーク５００を介して相互接続されているが、かかる形態に限定されるものでもない。管理端末４００が仮想計算機管理サーバ１００Ｂに直接接続された形態もあり得る。
【０１５６】
上記第１の実施形態では、図１に示されるように、仮想計算機管理サーバ１００Ａは、複数の機能ブロック１１０，１２０，１３０，１４０を含む。これら機能ブロック１１０，１２０，１３０，１４０は単一の装置内に組み込まれてもよいし、あるいは、協働する複数の装置に分散して組み込まれていてもよい。同様に、上記第２の実施形態でも、仮想計算機管理サーバ１００Ｂを構成する機能ブロック１１０，１４０，１５０，１６０は、単一の装置内に組み込まれてもよいし、あるいは、協働する複数の装置に分散して組み込まれていてもよい。
【０１５７】
この出願は、日本国特許庁に出願された特願２００９−０５２６０３号（出願日：２００９年３月５日）を基礎とする優先権を主張するものであり、その開示の全ては、本明細書の一部として援用（incorporation herein by reference）される。
【図１】
2010100867.tif 000003
【図２】
2010100867.tif 000004
【図３】
2010100867.tif 000005
【図４】
2010100867.tif 000006
【図５】
2010100867.tif 000007
【図６】
2010100867.tif 000008
【図７】
2010100867.tif 000009
【図８】
2010100867.tif 000010
【図９】
2010100867.tif 000011
【図１０】
2010100867.tif 000012
【図１１】
2010100867.tif 000013
【図１２】
2010100867.tif 000014
【図１３】
2010100867.tif 000015
【図１４】
2010100867.tif 000016
【図１５】
2010100867.tif 000017
【国際調査報告】
2010100867.tif 000018
2010100867.tif 000019
2010100867.tif 000020
2010100867.tif 000021