(57)【要約】  版管理システムは、ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルを記憶装置に登録するイメージファイル登録手段と、前記記憶装置に登録されたイメージファイルと版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを前記記憶装置に登録し、前記記憶装置に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を版管理表に記録する更新ファイル登録手段とを備える。
2009154272.tif 000002
【特許請求の範囲】
【請求項１】
ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルを記憶装置に登録するイメージファイル登録手段と、
前記記憶装置に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを前記記憶装置に登録し、前記記憶装置に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を版管理表に記録する更新ファイル登録手段とを備える版管理システム。
【請求項２】
前記ストレージ装置が、仮想マシンホスト上で動作する仮想マシンがアクセスする仮想ストレージである、請求項１に記載の版管理システム。
【請求項３】
前記更新ファイル登録手段からの要求に応答し、前記ストレージ装置内の現在のファイルシステムに対応する前記更新ファイル及び前記変更情報を取得し、該取得した更新ファイル及び変更情報を前記更新ファイル登録手段に送信する更新ファイル取得手段を更に備える、請求項１又は２に記載の版管理システム。
【請求項４】
前記更新ファイル取得手段は、前記ファイルシステムに対して行われた変更を記録した更新ログを参照して、前記変更があった変更対象のファイルを特定し、前記送信される変更情報が、前記更新ファイル取得手段によって特定された変更対象のファイルを識別する情報を含む、請求項３に記載の版管理システム。
【請求項５】
前記差分情報が、前記ファイルシステム内で変更されたファイル及び／又はディレクトリの内容、又は、前記ファイル及び／又はディレクトリの変更前後での内容の差分を表す情報を含む、請求項３又は４に記載の版管理システム。
【請求項６】
前記記憶装置から前記更新ファイルを取得し、該取得した更新ファイルに含まれる差分情報を送信する更新ファイル配付手段と、
前記更新ファイル配付手段から前記差分情報を受け取り、該差分情報を前記ストレージ装置に適用する更新ファイル適用手段とを更に有する、請求項１乃至５の何れか一に記載の版管理システム。
【請求項７】
前記記憶装置から前記イメージファイル及び更新ファイルを読み出し、該読み出したイメージファイル及び更新ファイルから、特定の版のイメージファイルを取得し、該取得したイメージファイルを送信するイメージファイル配付手段と、
前記イメージファイル配付手段から前記特定の版のイメージファイルを受信し、該受信したイメージファイルを前記ストレージ装置のファイルシステムに配備するイメージファイル配備手段とを更に備える、請求項１乃至６の何れか一に記載の版管理システム。
【請求項８】
前記ストレージ装置における版更新時点でのイメージファイル及び前記更新ファイルを前記記憶装置に登録し、且つ、版更新時点までの変更情報を前記版管理表に記録するスナップショット登録手段を更に備える、請求項１乃至７の何れか一に記載の版管理システム。
【請求項９】
前記スナップショット登録手段からの版更新要求に応答し、現在のファイルシステムの内容に基づいて、前記更新ファイル及び前記変更情報を作成し、版更新時点でのイメージファイルと、前記作成した更新ファイル及び変更情報とを前記スナップショット登録手段に送信するスナップショット取得手段を更に有する、請求項８に記載の版管理システム。
【請求項１０】
前記更新ファイル登録手段に版更新処理の指令を与える、システム管理者が操作する管理装置を更に備える、請求項１乃至９の何れか一に記載の版管理システム。
【請求項１１】
ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルをイメージファイル記憶域に登録するイメージファイル配備手段と、
前記イメージファイル記憶域に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを取得し、前記イメージファイル記憶域に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を生成する更新ファイル取得手段とを備えるサーバホスト。
【請求項１２】
更新ファイル取得手段は、前記ファイルシステムに対して行われた変更を記録した更新ログを参照して、前記変更があった変更対象のファイルを特定し、前記送信される変更情報が、前記更新ファイル取得手段によって特定された変更対象のファイルを識別する情報を含む、請求項１１に記載のサーバホスト。
【請求項１３】
前記更新ファイルが、前記ファイルシステム内で変更されたファイル及び／又はディレクトリの内容、又は、前記ファイル及び／又はディレクトリの変更前後での内容の差分を含む、請求項１１又は１２に記載のサーバホスト。
【請求項１４】
コンピュータを用いる版管理方法であって、
ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルを記憶装置に登録するステップと、
前記記憶装置に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを前記記憶装置に登録するステップと、
前記記憶装置に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を版管理表に記録するステップと、を有する版管理方法。
【請求項１５】
コンピュータを用いる版管理方法であって、
ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルをイメージファイル記憶域に登録するステップと、
前記イメージファイル記憶域に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを取得するステップと、
前記イメージファイル記憶域に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を生成するステップと、を有する版管理方法。
【請求項１６】
コンピュータに、
ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルを記憶装置に登録する処理と、
前記記憶装置に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを前記記憶装置に登録する処理と、
前記記憶装置に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を版管理表に記録する処理と、を実行させるプログラム。
【請求項１７】
コンピュータに、
ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルをイメージファイル記憶域に登録する処理と、
前記イメージファイル記憶域に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを取得する処理と、
前記イメージファイル記憶域に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を生成する処理と、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、版管理システム、方法、及び、プログラムに関し、更に詳しくは、ストレージ装置に構築されたファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルの版を管理する版管理システム、方法、及び、プログラムに関する。
【背景技術】
【０００２】
ファイル等のバージョン管理を行う版管理システム（バージョン管理システム、version control system）が知られている。版管理システムの一例が、特許文献１に記載されている。特許文献１の版管理システムは、ファイル登録サーバ、ファイル配付サーバ、及び、クライアントから構成されている。これら要素は、ネットワークを介して相互に接続されている。ファイル登録サーバは、クライアントからの要求に応じて、版管理の対象となるファイルを、ファイル配付サーバに格納する。ファイル登録サーバは、登録済みファイルの更新が要求された場合には、ファイルの過去の版との比較を行い、その差分を登録する。【０００３】
ファイル配付サーバは、ファイル登録サーバにより登録されたファイルを格納し、クライアントからの要求に応じて、ファイルをクライアントに送信する。ファイル配付サーバは、ファイルの版が過去の版に対する差分として格納されている場合は、過去の版と差分とをクライアントに送信する。クライアントは、過去の版と差分とから、所望の版の内容を復元する処理を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−２６０２１２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ＶＭｗａｒｅ（登録商標）やＸｅｎ（登録商標）などの仮想マシン（Virtual Machine）技術では、個々の仮想マシンの内部状態は、イメージファイルと呼ばれるファイルによって規定される。イメージファイルは、仮想マシン上から見えるストレージ装置（仮想ディスク）の内容をファイルとして表現したストレージイメージ（ディスクイメージ）を含む。仮想マシン技術を版管理システムに適用し、仮想マシンのイメージファイルを対象として版管理を行うことで、仮想マシンにて、過去のある版の内部状態を再現することが可能となる。【０００６】
しかしながら、特許文献１に記載の版管理システムを、仮想マシンのイメージファイルに適用した場合には、以下の問題点が発生する。第１の問題点は、同一の仮想マシンについての異なる版の間で、どのような変更がなされたかを知ることが困難であるということである。その理由は、イメージファイル同士の差分を取った場合、その結果の差分ファイルからは、仮想ディスク上のファイルシステムに関する情報が失われるためである。【０００７】
イメージファイル同士を直接比較する代わりに、仮想ディスク上のファイルシステムを比較する手法も考えられる。しかし、その場合は、処理手順はより複雑になり、処理時間も余分にかかる。また、リポジトリ（特許文献１におけるファイル配付サーバに相当）中に差分ファイルを格納する方式では、仮想ディスク上のファイルシステムと比較する際には、元のイメージファイルを復元した上で比較する必要がある。従って、更に余分な時間を要することになる。【０００８】
本発明は、仮想マシンについてのイメージファイルを対象とした版管理において、版間の差異を、容易に参照可能な版管理システム、方法、及び、プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、第１の態様において、ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルを記憶装置に登録するイメージファイル登録手段と、前記記憶装置に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを前記記憶装置に登録し、前記記憶装置に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を版管理表に記録する更新ファイル登録手段と、を備える版管理システムを提供する。【００１０】
本発明は、第２の態様において、ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルをイメージファイル記憶域に登録するイメージファイル配備手段と、前記イメージファイル記憶域に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを取得し、前記イメージファイル記憶域に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を生成する更新ファイル取得手段と、を備えるサーバホストを提供する。【００１１】
本発明は、第３の態様において、コンピュータを用いる版管理方法であって、ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルを記憶装置に登録するステップと、前記記憶装置に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを前記記憶装置に登録するステップと、
前記記憶装置に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を版管理表に記録するステップと、を有する版管理方法を提供する。【００１２】
本発明は、第４の態様において、コンピュータを用いる版管理方法であって、ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルをイメージファイル記憶域に登録するステップと、前記イメージファイル記憶域に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを取得するステップと、前記イメージファイル記憶域に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を生成するステップと、を有する版管理方法を提供する。【００１３】
本発明は、第５の態様において、コンピュータに、ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルを記憶装置に登録する処理と、前記記憶装置に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを前記記憶装置に登録する処理と、前記記憶装置に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を版管理表に記録する処理と、を実行させるプログラムを提供する。【００１４】
本発明は、コンピュータに、ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルをイメージファイル記憶域に登録する処理と、前記イメージファイル記憶域に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを取得する処理と、前記イメージファイル記憶域に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を生成する処理と、を実行させるプログラムを提供する。
【発明の効果】
【００１５】
本発明の版管理システム、方法、及び、プログラムは、仮想マシンについてのイメージファイルを対象とした版管理に用いると、版間の差異を、容易に参照することができる。【００１６】
本発明の上記、及び、他の目的、特徴及び利益は、図面を参照する以下の説明により明らかになる。
【図面の簡単な説明】
【００１７】
【図１】本発明の一実施形態の版管理システムを示すブロック図。
【図２】版管理表のデータ例を示す図。
【図３】イメージファイル登録の手順を示すシーケンス図。
【図４】イメージファイル配付の手順を示すシーケンス図。
【図５】更新ファイル登録の手順を示すシーケンス図。
【図６】更新ファイル適用の手順を示すシーケンス図。
【図７】スナップショット登録の手順を示すシーケンス図。
【図８】版番号割り当ての具体例を示す図。
【図９】更新ログのデータ例を示す図。
【図１０】更新の競合が発生する例を示す図。
【図１１】イメージファイル登録処理の手順を示すフローチャート。
【図１２】イメージファイル配付処理の手順を示すフローチャート。
【図１３】イメージファイル配備処理の手順を示すフローチャート。
【図１４】更新ファイル登録処理の手順を示すフローチャート。
【図１５】更新ファイル取得処理の手順を示すフローチャート。
【図１６】更新ファイル配付処理の手順を示すフローチャート。
【図１７】更新ファイル適用処理の手順を示すフローチャート。
【図１８】スナップショット登録処理の手順を示すフローチャート。
【図１９】スナップショット取得処理の手順を示すフローチャート。
【図２０】サーバホストのイメージファイルの版管理を行う版管理システムを示すブロック図。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照し、本発明の実施の形態を詳細に説明する。図１は、本発明の一実施形態の仮想マシン版管理システムを示している。仮想マシン版管理システムは、仮想マシン管理装置１００と、リポジトリサーバ２００と、記憶装置３００と、１台以上の仮想マシン（ＶＭ：Virtual Machine）ホスト４００とを有する。仮想マシン管理装置１００、リポジトリサーバ２００、及び、仮想マシンホスト４００は、それぞれ、プログラム制御により動作するコンピュータである。記憶装置３００は、ハードディスクなどの物理的な記憶媒体を備える記憶装置である。【００１９】
仮想マシン版管理システムは、仮想マシンの状態を表すイメージファイルを管理単位とする版管理と、更新ファイルを管理単位とする版管理とを組み合わせた仮想マシンの版管理を行う。ここで、イメージファイルは、仮想マシンがアクセスするストレージ装置（仮想ストレージ）に構築されたファイルシステムの少なくとも一部の内容を表すストレージイメージを含むファイルである。また、更新ファイルは、過去の特定の版のイメージファイルからその特定の版よりも新しい版のイメージファイルを生成するための差分情報を含むファイルである。つまり、更新ファイルは、変更前の版と変更後の別の版との間で、ファイルシステムの差異を表現するファイルである。更新ファイルは、仮想ストレージに構築されたファイルシステム上で変更されたファイル／ディレクトリの内容、又は、ファイルシステム上で変更されたファイル／ディレクトリの変更前後での内容の差分を、差分情報として含む。【００２０】
なお、実際の仮想マシンソフトウェアでは、イメージファイルは単一のファイルとは限らない。例えば、ＶＭｗａｒｅ（登録商標）では、仮想マシンの状態は、仮想マシン設定ファイル（ＶＭＸファイル）、仮想ストレージ（ＶＭＤＫファイル）、不揮発メモリ（ＮＶＲＡＭファイル）等の複数のファイルにより表現される。本明細書では、これらファイルを総称して、イメージファイルと表記する。ただし、設定ファイルについては、既存の版管理システムで問題なく取り扱うことができるため、仮想ストレージのファイルと分けて、既存の版管理の手法で版管理を行ってもよい。【００２１】
システム管理者は、仮想マシン管理装置１００を通して、イメージファイルの登録、イメージファイルの仮想マシンホスト４００への配備などの操作を行う。仮想マシン管理装置１００は、キーボードやマウス等の入力装置と、ディスプレイ等の出力装置とを備えている。システム管理者は、それらを用いて、仮想マシン管理装置１００に対して、各種操作を指示する。或いは、同様の入出力装置を備える端末と仮想マシン管理装置１００との間をネットワーク等の通信手段で接続し、システム管理者が、端末を通して仮想マシン管理装置１００を操作する形態でもよい。【００２２】
リポジトリサーバ２００は、イメージファイルの版管理に用いられる、各版のイメージファイル及び更新ファイルを格納／配付する装置である。仮想マシン管理装置１００とリポジトリサーバ２００との間は、ネットワーク等の通信手段で接続されている。リポジトリサーバ２００は、仮想マシン管理装置１００から、仮想マシンホスト４００のイメージファイルと更新ファイルとに対する操作の要求を受け取る。リポジトリサーバ２００は、受け取った要求に対応して、記憶装置３００に格納されたデータを操作する。リポジトリサーバ２００と記憶装置３００との間は、ファイバチャネル（Fibre Channel）などの接続手段を用いて接続される。または、記憶装置３００は、リポジトリサーバ２００に内蔵される記憶媒体でも良い。【００２３】
記憶装置３００は、版管理表３１０、１以上のイメージファイル３２０、及び、１以上の更新ファイル３３０を記憶する。記憶装置３００におけるイメージファイル３２０及び更新ファイル３３０の格納形式には、任意の格納形式を用いることができる。例えば、イメージファイル３２０の格納形式には、仮想ストレージ（仮想ディスク）の内容と各種の設定ファイルとをまとめてｚｉｐ形式などのアーカイブにしたものを用いることができる。また、更新ファイルの格納形式には、版間で変更があったファイル（例えば/etc/resolv.confと/etc/nsswitch.conf）について、その変更後の内容をｚｉｐ形式などのアーカイブにしたものを用いることができる。更新ファイルの格納形式の別例として、変更があった各ファイルについて変更の前後での内容の差分を取り、その差分をアーカイブしたものも考えられる。【００２４】
版管理表３１０には、仮想マシンの版について、該当する版のイメージファイル３２０又は更新ファイル３３０を参照するための情報が記録される。また、版管理表３１０には、過去の版更新から今回の版更新までの間に仮想ディスクに対して実行された各変更イベントを示す変更情報を含む。変更情報は、更新前後の版において、仮想ディスクに構築されたファイルシステム上で変更があったファイルを識別するための情報（ファイル名／ディレクトリ名）を含む。この変更情報は、更新ファイル３３０と対応付けて、版管理表３１０に記録される。【００２５】
図２に、版管理表３１０の具体例を示す。版管理表３１０は、仮想マシン名、版番号、種別、仮想マシン上のファイル名、及び、リポジトリ内ファイル名の各情報を有する。仮想マシン名は、リポジトリサーバ２００が仮想マシンを識別するための名称である。版番号は、仮想マシン名によって識別される各仮想マシンのそれぞれについて、その変更履歴を識別するための番号である。各仮想マシンについて、最初の版番号は「１」であり、以後、「２」、「３」と、版番号が増加していく。【００２６】
種別は、イメージファイルと更新ファイルの何れを指すかを示す情報である。リポジトリ内ファイル名は、イメージファイル又は更新ファイルを記憶装置３００内で識別するファイル名が記録される。図２に示す版管理表３１０を参照することで、例えば、仮想マシン「ｖｍ０１」で識別される仮想マシンと版番号「２」の組み合わせについて、更新ファイルが記憶装置３００に格納されており、その更新ファイルのファイル名は「vm01_update_002.zip」であることがわかる。【００２７】
仮想マシン上のファイル名は、前記変更対象を識別する情報、すなわち、仮想マシン上で更新前後の版において変更があったファイル又はディレクトリの名前を識別する情報である。仮想マシン上のファイル名には、更新ファイルに対して、仮想マシン上で更新の対象となるファイル名が記録される。種別がイメージファイルの場合は、仮想マシン上のファイル名は空欄となる。図２に示す版管理表３１０を参照することで、例えば、仮想マシン名「ｖｍ０１」と版番号「２」との組合せに相当する更新ファイルは、その仮想マシンにおける「/etc/hosts」と「/etc/group」の２つのファイルに対する差分情報を含んでいることがわかる。この例が示すように、単一の仮想マシン名と版番号との組に対して、仮想マシン上のファイル名が複数対応することもあり得る。【００２８】
図１に戻り、仮想マシンホスト４００は、その上で仮想マシンが動作するサーバ機である。仮想マシンホスト４００上では、任意の数の仮想マシンを動作させることができる。リポジトリサーバ２００と、仮想マシンホスト４００とは、仮想マシンネットワーク５００により接続されている。仮想マシンネットワーク５００は、イーサネット（Ethernet：登録商標）等のネットワークである。仮想マシンネットワーク５００には、仮想マシン管理装置１００、及び、記憶装置３００が接続されていてもよい。【００２９】
リポジトリサーバ２００は、イメージファイル登録手段２１０、イメージファイル配付手段２２０、更新ファイル登録手段２３０、更新ファイル配付手段２４０、及び、スナップショット登録手段２５０を備える。イメージファイル登録手段２１０は、配付対象となるイメージファイルを、記憶装置３００に格納する。イメージファイル登録手段２１０は、例えば新規に作成された仮想マシンについてのイメージファイルを、記憶装置３００に格納する。イメージファイル配付手段２２０は、記憶装置３００に格納されたイメージファイル３２０を、仮想マシンホスト４００に配付する。【００３０】
更新ファイル登録手段２３０は、仮想マシンホスト４００から、更新ファイルを取得し、記憶装置３００に格納する。更新ファイル配付手段２４０は、記憶装置３００に格納された更新ファイル３３０を仮想マシンホスト４００に配付する。更新ファイル配付手段２４０は、更新ファイルを仮想マシンホスト４００に配付して、更新ファイルに含まれる差分情報を、仮想マシンのファイルシステムに適用させる。スナップショット登録手段２５０は、仮想マシンホスト４００から、特定の時点でのイメージファイルの内容及び更新ファイルを取得し、それらを記憶装置３００に格納する。【００３１】
仮想マシンホスト４００は、イメージファイル配備手段４１０、更新ファイル取得手段４２０、更新ファイル適用手段４３０、スナップショット取得手段４４０、及び、イメージファイル記憶域４５０を有する。仮想マシンホスト４００上では、任意の台数の仮想マシンが動作している。各仮想マシンは、更新ログ記録手段４６０を有する。また、各仮想マシンは、イメージファイルの一部として、仮想ディスクに構築されたファイルシステムに対して行われた変更を記録した更新ログ４７０を記憶する。【００３２】
イメージファイル記憶域４５０は、仮想マシンホスト４００上で動作する各仮想マシンのイメージファイルを記憶する記憶領域である。仮想マシンホスト４００は、例えば、仮想マシンホスト４００が内蔵するハードディスク等の記憶装置に、イメージファイルを格納する。或いは、仮想マシンホスト４００は、複数の仮想マシンホスト間で共有されるネットワークストレージ（ＳＡＮ： Storage Area Network、ＮＡＳ：Network Attached Storageなど）に、イメージファイルを格納してもよい。【００３３】
イメージファイル配備手段４１０は、リポジトリサーバ２００からイメージファイルを受信し、受信したイメージファイルをイメージファイル記憶域４５０に格納して、仮想マシンに対してイメージファイルを配備(deploy）する。その際、イメージファイル配備手段４１０は、必要に応じて、仮想マシンに対するイメージファイルの登録処理などを行う。仮想マシンに対してイメージファイルを配備することで、仮想マシンは、イメージファイル（仮想ディスク）に対してアクセス可能な状態となる。イメージファイル配備手段４１０は、仮想マシンに対してイメージファイルを配備する際に、その仮想マシンについての更新ログ４７０に、配備対象の仮想マシンの版番号を、更新記録として記録する。【００３４】
更新ログ記録手段４６０は、仮想マシンの動作中に、仮想マシンによる仮想ディスクへのアクセスを監視する。更新ログ記録手段４６０は、仮想マシンがアクセスする仮想ディスク上のファイルシステムへの変更が発生するたびに、その変更の概略を変更履歴として更新ログ４７０に追記する。変更履歴は、変更が発生したファイル又はディレクトリの名前が含まれる。【００３５】
更新ファイル取得手段４２０は、リポジトリサーバ２００から更新ファイルの取得要求を受ける。更新ファイル取得手段４２０は、更新要求を受けると、仮想マシンホスト４００上で動作する仮想マシンの版更新処理に移行し、更新ログ４７０に、新しい版番号が付加された更新記録を記入する。また、更新ファイル取得手段４２０は、更新ログ４７０から、前回の更新記録から最新の更新記録までの間になされた変更履歴を読み出し、変更履歴に基づいて仮想ディスクにて変更があったファイルを特定し、更新ファイル及び変更情報を作成する。操作の種類がファイル変更であるとき、更新ファイルに含まれる差分情報は、変更後のファイルの内容と、変更前後でのファイル内容の差分との何れでもよい。更新ファイル取得手段４２０は、変更情報には、変更が発生したファイル又はディレクトリの名前、及び、そのファイル又はディレクトリに適用した操作の種類を含める。更新ファイル取得手段４２０は、作成した更新ファイルと変更情報とをリポジトリサーバ２００に返却する。【００３６】
更新ファイル適用手段４３０は、リポジトリサーバ２００から、更新ファイルを受け取る。更新ファイル適用手段４３０は、更新ファイルを受け取ると、更新ファイルに含まれる差分情報を、仮想マシンホスト４００上で動作する仮想マシンのイメージファイルに適用する。更新ファイル適用手段４３０は、例えば差分情報が変更後のファイルの内容であるときは、仮想ディスク中の該当ファイルの内容を、更新ファイルに含まれる差分情報で上書きする。また、更新ファイル適用手段４３０は、差分情報が変更前後でのファイル内容の差分であるときは、仮想ディスクにおける変更前の該当ファイルの内容に対して変更前後でのファイル内容の差分を適用し、該当ファイルを、変更後のファイル内容に置き換える。更新ファイル適用手段４３０が更新ファイルを適用することで、イメージファイル記憶域４５０に記憶される仮想マシンのイメージファイルが、最新版のイメージファイルに更新される。【００３７】
スナップショット取得手段４４０は、リポジトリサーバからスナップショットの取得要求を受け取る。スナップショット取得手段４４０は、スナップショットの取得要求を受けると、仮想マシンホスト４００上で動作する仮想マシンにおける版更新処理に移行し、更新ログ４７０に、新しい版番号が付加された更新記録を記入する。スナップショット取得手段４４０は、更新記録の記入後、その時点でのイメージファイルを取得する。また、スナップショット取得手段４４０は、更新ファイル取得手段４２０と同様な手順で更新ファイル及び変更情報を作成し、作成した更新ファイル及び変更情報とイメージファイルとを、リポジトリサーバ２００に返却する。【００３８】
図３に、イメージファイル格納の手順を示す。システム管理者は、仮想マシン管理装置１００を操作して、イメージファイルの登録を指定する（Management １１：Ｍ１１）。仮想マシン管理装置１００は、リポジトリサーバ２００に対して、イメージファイル登録要求を送信する（Ｍ１２）。リポジトリサーバ２００のイメージファイル登録手段２１０は、イメージファイル登録要求を受けると、記憶装置３００に、イメージファイル配備を要求し、イメージファイル３２０を格納する（Ｍ１３）。イメージファイル登録手段２１０は、イメージファイル３２０の格納後、格納したイメージファイルの情報を、版管理表３１０に追加する（Ｍ１４）。【００３９】
図４に、イメージファイルの配付／配備の手順を示す。システム管理者は、仮想マシン管理装置１００を操作して、イメージファイル３２０を仮想マシンホスト４００に配付することを指定する（Ｍ２１）。このとき、システム管理者は、初版又は任意の版のイメージファイルの配付を指定できる。仮想マシン管理装置１００は、リポジトリサーバ２００に対して、イメージファイル配付要求を送信する（Ｍ２２）。リポジトリサーバ２００のイメージファイル配付手段２２０は、イメージファイル配付要求を受けると、版管理表３１０を参照して要求されたイメージファイル３２０を検索し、その検索結果、例えばファイル名を取得する（Ｍ２３）。【００４０】
イメージファイル配付手段２２０は、記憶装置３００から、検索結果に該当するイメージファイル３２０を取得する（Ｍ２４）。イメージファイル配付手段２２０は、取得したイメージファイル３２０を、イメージファイル配備要求と共に、仮想マシンホスト４００に送信する（Ｍ２５）。仮想マシンホスト４００のイメージファイル配備手段４１０は、イメージファイル配備要求を受けると、リポジトリサーバ２００から受信したイメージファイルを、当該ホストのイメージファイル記憶域４５０に格納する。また、イメージファイル配備手段４１０は、仮想マシンに対するイメージファイルの登録などを行う。【００４１】
図５に、更新ファイルの取得／登録の手順を示す。システム管理者は、仮想マシン管理装置１００を操作して、仮想マシンホスト４００上になされた変更を、更新ファイルとしてリポジトリに登録することを指定する（Ｍ３１）。仮想マシン管理装置１００は、リポジトリサーバ２００に対して、更新ファイル登録要求を送信する（Ｍ３２）。リポジトリサーバ２００の更新ファイル登録手段２３０は、指定された仮想マシンホスト４００に対して更新ファイル取得要求を送信する（Ｍ３３）。仮想マシンホスト４００の更新ファイル取得手段４２０は、更新ファイル取得要求を受けると、更新ログ４７０を参照して更新ファイル及び変更情報を作成し、作成した更新ファイル及び変更情報をリポジトリサーバ２００に返す。【００４２】
更新ファイル登録手段２３０は、Ｍ３３で送信した更新ファイル取得要求に対する応答として、仮想マシンホスト４００から更新ファイル及び変更情報を取得する。更新ファイル登録手段２３０は、取得した更新ファイルを、記憶装置３００に更新ファイル３３０として格納する（Ｍ３４）。また、更新ファイル登録手段２３０は、格納した更新ファイルの情報を、版管理表３１０に登録する（Ｍ３５）。その際、更新ファイル登録手段２３０は、更新ファイルと共に取得した変更情報を、格納した更新ファイルに対応付けて、版管理表３１０に記録する。【００４３】
図６は、更新ファイルの配付／適用の手順を示している。システム管理者は、仮想マシン管理装置１００を操作して、仮想マシンホスト４００の状態を最新にすることを指定する（Ｍ４１）。或いは、システム管理者は、特定の版を指定してもよい。仮想マシン管理装置１００は、リポジトリサーバ２００に対して、更新ファイル配付要求を送信する（Ｍ４２）。リポジトリサーバ２００の更新ファイル配付手段２４０は、仮想マシンホスト４００から、その仮想マシンホスト上の仮想マシンについての現在の版番号を取得する（Ｍ４３）。【００４４】
更新ファイル配付手段２４０は、記憶装置３００の版管理表３１０を参照し、適用対象の更新ファイル名を検索する（Ｍ４４）。更新ファイル配付手段２４０は、記憶装置３００の中から、Ｍ４４での検索結果に該当する更新ファイル３３０の内容を取得する（Ｍ４５）。更新ファイル配付手段２４０は、取得した更新ファイル３３０を、更新ファイル適用要求と共に、更新適用対象の仮想マシンホスト４００に対して送信する（Ｍ４６）。仮想マシンホスト４００上の更新ファイル適用手段４３０は、更新ファイル適用要求を受け取ると、リポジトリサーバ２００から受信した更新ファイルを、当該ホストが記憶するイメージファイル記憶域４５０に適用し、イメージファイルを更新する。【００４５】
図７は、スナップショットの取得の手順を示している。システム管理者は、仮想マシン管理装置１００を操作して、仮想マシンホスト４００からスナップショットの登録を指定する（Ｍ５１）。仮想マシン管理装置１００は、リポジトリサーバ２００に対して、スナップショット登録要求を送信する（Ｍ５２）。リポジトリサーバ２００のスナップショット登録手段２５０は、スナップショット登録要求を受けると、仮想マシンホスト４００に対して、スナップショット取得要求を送信する（Ｍ５３）。【００４６】
仮想マシンホスト４００のスナップショット取得手段４４０は、スナップショット取得要求を受けると、更新ファイル及び変更情報を作成し、イメージファイルと更新ファイル及び変更情報との組を、スナップショット登録手段２５０に送信する。スナップショット登録手段２５０は、イメージファイルと更新ファイルの組を取得すると、取得したイメージファイルと更新ファイルとを、それぞれ記憶装置３００に格納する（Ｍ５４）。また、スナップショット登録手段２５０は、格納したイメージファイル及び更新ファイルの情報を、版管理表３１０に追加する。その際、スナップショット登録手段２５０は、更新ファイルと共に取得した変更情報を、格納した更新ファイルに対応付けて、版管理表３１０に記録する。【００４７】
版管理システムでは、図４に示すイメージファイル配付の手順と、図５に示す更新ファイル適用の手順とを実行することで、仮想マシンホスト４００に、最新のイメージファイルを配付することができる。すなわち、まず、図４に示すイメージファイルの処理手順で、仮想マシンイメージを特定の仮想マシンホスト４００に配付する。その後、図５に示す更新ファイル適用の処理を行うことで、当該ホスト上のイメージファイルを最新の状態にすることができる。【００４８】
続いて、仮想マシン管理装置１００に対する各操作と、仮想マシンにおけるイメージファイルの版番号、及び、記憶装置３００に格納するイメージファイル３２０、更新ファイル３３０の版番号との関係について説明する。リポジトリサーバ２００は、仮想マシン管理装置１００に対してイメージファイル登録の操作（図３）がなされると、記憶装置３００に、新規にイメージファイル３２０を格納する。リポジトリサーバ２００は、このイメージファイル３２０に対して、版番号「１」を設定する。【００４９】
イメージファイル配付操作（図４）では、システム管理者は、仮想マシン管理装置１００に対して、指定した版番号のイメージファイルを、特定の仮想マシンホスト４００に配付するように指示する。イメージファイル配付操作を実行した直後の時点では、配付操作で指定したイメージファイルの版番号と、配付先の仮想マシンホスト４００上のイメージファイルの版番号とは同一である。【００５０】
リポジトリサーバ２００は、システム管理者が更新ファイル登録の操作（図５）を行うと、仮想マシンホスト４００における仮想マシンのイメージファイルの版番号を１つ増加させる。通常は、仮想マシンにおける版更新前のイメージファイルの版番号は、記憶装置３００が格納するイメージファイル３２０又は更新ファイル３３０の最新の版番号と一致する。このため、版更新後の仮想マシンにおける版番号は、記憶装置３００内の最新の版番号に１を加えた版番号となる。具体的には、記憶装置３００が格納する最新のイメージファイル３２０又は更新ファイル３３０の版番号がｖであれば、更新ファイル取得対象の仮想マシンにおけるイメージファイルの版番号はｖ＋１となる。【００５１】
リポジトリサーバ２００は、更新ファイル登録の操作で記憶装置３００に登録する更新ファイルに対して、記憶装置３００内の最新の版番号に１を加えた版番号を割り当てる。具体的には、リポジトリサーバ２００は、更新ファイル登録の操作で記憶装置３００に登録する、イメージファイルを版番号ｖからｖ＋１に更新するのに必要な更新ファイル３３０に対して、版番号ｖ＋１を割り当てる。【００５２】
更新ファイル適用の操作（図６）では、リポジトリサーバ２００は、特定の仮想マシンについて、現在の仮想マシンホスト４００におけるイメージファイルの版と、更新ファイル適用操作にて指定された版との間の版の更新ファイルを、仮想マシンホスト４００に対して適用する。更新ファイルを適用することで、仮想マシンホスト４００におけるイメージファイルの版番号は、更新ファイル適用操作にて指定された版番号に更新される。このとき、リポジトリサーバ２００が管理するイメージファイル３２０及び更新ファイル３３０の版番号は変化しない。【００５３】
具体的には、リポジトリサーバ２００は、更新ファイル適用操作にて指定された版番号をｖｘ、適用対象の仮想マシンホスト４００におけるイメージファイルの版番号をｖｙ（ｖｘ＞ｖｙ）として、版番号ｖｙ＋１、ｖｙ＋２、・・・、ｖｘの更新ファイルを、順次に仮想マシンホスト４００に対して適用する。ただし、記憶装置３００に、版番号ｖｙよりも新しい版番号のイメージファイルが存在する場合には、その版番号のイメージファイルと、以降の更新ファイルとを適用してもよい。更新ファイルを適用することで、最終的に、仮想マシンホスト４００におけるイメージファイルの版番号はｖｘとなる。【００５４】
システム管理者が、スナップショット登録の操作（図７）を行うと、リポジトリサーバ２００は、仮想マシンホスト４００における仮想マシンのイメージファイルの版番号を１つ増加させる。通常は、仮想マシンにおける版更新前のイメージファイルの版番号は、記憶装置３００が格納するイメージファイル３２０又は更新ファイル３３０の最新の版番号と一致する。このため、版更新後の仮想マシンにおける版番号は、記憶装置３００内の最新の版番号に１を加えた版番号となる。具体的には、記憶装置３００が格納する最新のイメージファイル３２０又は更新ファイル３３０の版番号がｖであれば、スナップショット取得対象の仮想マシンにおけるイメージファイルの版番号はｖ＋１となる。【００５５】
リポジトリサーバ２００は、スナップショット登録の操作で記憶装置３００に登録するイメージファイル及び更新ファイルに対して、それぞれ記憶装置３００内の最新の版番号に１を加えた版番号を割り当てる。具体的には、リポジトリサーバ２００は、スナップショット登録で記憶装置３００に登録するイメージファイルに、版番号ｖ＋１を割り当てる。また、リポジトリサーバ２００は、スナップショット登録の操作で記憶装置３００に登録する、イメージファイルを版番号ｖからｖ＋１に更新するのに必要な更新ファイル３３０に、版番号ｖ＋１を割り当てる。【００５６】
図８に、版番号割り当ての具体例を示す。時刻ｔ１１で、イメージファイル登録操作を行い、新規の仮想マシンについてのイメージファイルを、リポジトリサーバ２００（記憶装置３００）に登録する。このとき、リポジトリサーバ２００は、当該イメージファイルについて、版管理表３１０（図２）に、初版の版番号、すなわち、版番号「１」を記録する。その後、時刻ｔ１２でイメージファイル配付操作を行い、版番号「１」のイメージファイルを、特定の仮想マシンホスト４００に配付する。この操作の直後では、記憶装置３００と仮想マシンホスト４００とは、共に版番号「１」のイメージファイルを格納する。【００５７】
時刻ｔ１３で更新ファイル登録操作を行い、更新ファイルを記憶装置３００に登録する。更新ファイル登録操作を行うことで、仮想マシンホスト４００上の更新ファイル取得対象の仮想マシンのイメージファイルの版番号は、「２」に上がる。リポジトリサーバ２００は、記憶装置３００に格納する更新ファイルについて、版管理表３１０に、版番号「２」を記録する。つまり、リポジトリサーバ２００は、仮想マシンホスト４００から取得した、版番号「１」から版番号「２」に上げるために必要な更新ファイルに対して、版番号「２」を付与する。更新ファイル登録操作の直後では、記憶装置３００は、版番号「１」のイメージファイル３２０と、版番号「２」の更新ファイル３３０とを格納する。また、仮想マシンホスト４００は、版番号「２」のイメージファイルを格納する。【００５８】
時刻ｔ１４で、再び更新ファイル登録の操作を行い、仮想マシンの更新ファイルを記憶装置３００に登録する。更新ファイル登録操作を行うことで、仮想マシンのイメージファイルの版番号は、「３」に上がる。リポジトリサーバ２００は、仮想マシンホスト４００から取得した更新ファイルについて、版管理表３１０に版番号「３」を記録し、更新ファイルに、版番号「３」を付与する。この操作の直後では、記憶装置３００は、版番号「１」のイメージファイル３２０と、版番号「２」及び版番号「３」の更新ファイル３３０とを格納する。また、仮想マシンホスト４００は、版番号「３」のイメージファイルを格納する。【００５９】
時刻ｔ１５で、スナップショット登録の操作を行い、仮想マシンのイメージファイルと更新ファイルとを、記憶装置３００に登録する。スナップショット登録操作を行うことで、仮想マシンのイメージファイルの版番号は、「４」に上がる。リポジトリサーバ２００は、仮想マシンホスト４００から取得したイメージファイル及び更新ファイルのそれぞれについて、版管理表３１０に、版番号「４」を記録する。つまり、リポジトリサーバ２００は、スナップショット登録の操作で登録するイメージファイル及び更新ファイルに、それぞれ版番号「４」を付与する。この操作の直後では、記憶装置３００は、版番号「１」及び版番号「４」のイメージファイル３２０と、版番号「２」、「３」、「４」の更新ファイル３３０とを格納する。また、仮想マシンホスト４００は、版番号「４」のイメージファイルを格納する。【００６０】
図９に、更新ログ４７０のデータ例を示す。イメージファイル配備手段４１０は、図８の時刻ｔ１２で仮想マシンホスト４００にイメージファイルを配備する際に、更新ログ４７０に、版番号「１」のイメージファイルを配備した旨の更新記録を記録する。更新ログ記録手段４６０は、イメージファイルの配備後、仮想マシンがファイルシステム（仮想ディスク）に対して行った変更を、更新ログ４７０に記録していく。図９の例では、更新ログ記録手段４６０は、版番号「１」のイメージファイルの配備後、「/etc/hosts」と「/etc/group」とに更新があった旨を、更新日時と共に、更新ログ４７０に記録している。【００６１】
時刻ｔ１３で更新ファイル登録操作が行われると、更新ファイル取得手段４２０は、更新ログに、版番号を「２」に更新する旨の更新記録を記録する。更新ファイル取得手段４２０は、更新ログ４７０を参照して、版番号「１」の更新記録の記録後、版番号「２」の更新記録の記録までの間に、仮想マシンがファイルシステムに対して行った変更を調べる。図９を参照すると、版番号「１」と版番号「２」との間に「/etc/hosts」と「/etc/group」の更新があるので、更新ファイル取得手段４２０は、「/etc/hosts」と「/etc/group」の内容に基づいて、更新ファイルを生成する。更新ファイル取得手段４２０は、生成した更新ファイルを、リポジトリサーバ２００に送信する。【００６２】
更新ログ記録手段４６０は、版番号が「２」に更新された後、仮想マシンがファイルシステムに対して行った変更を、更新ログ４７０に記録していく。時刻ｔ１４で更新ファイル登録操作が行われると、更新ファイル取得手段４２０は、更新ログ４７０に、版番号を「３」に更新する旨の更新記録を記録する。その後、上記と同様な動作で、版番号「２」の更新記録の記録後、版番号「３」の更新記録の記録までの間に、仮想マシンがファイルシステムに対して行った変更に基づいて更新ファイルを生成する。更新ファイル取得手段４２０は、生成した更新ファイルを、リポジトリサーバ２００に送信する。【００６３】
更新ログ記録手段４６０は、版番号が「３」に更新された後、仮想マシンがファイルシステムに対して行った変更を、更新ログ４７０に記録していく。時刻ｔ１５でスナップショット登録操作が行われると、スナップショット取得手段４４０は、更新ログ４７０に、版番号を「４」に更新する旨の更新記録を記録する。その後、スナップショット取得手段４４０は、上記と同様な動作で、版番号「３」の更新記録の記録後、版番号「４」の更新記録の記録までの間に、仮想マシンがファイルシステムに対して行った変更に基づいて更新ファイルを生成する。スナップショット取得手段４４０は、生成した更新ファイルと、時刻ｔ１５の時点でのイメージファイルとを、リポジトリサーバ２００に送信する。【００６４】
ここで、同一名称の仮想マシンについてのイメージファイルを複数の仮想マシンホストに配付すると、更新の競合が発生する可能性がある。図１０に、更新の競合の具体例を示す。時刻ｔ２１で、新規の仮想マシンについてのイメージファイルを、記憶装置３００に登録する。この操作が完了した時点では、記憶装置３００におけるイメージファイルの版番号は「１」である。時刻ｔ２２で、記憶装置３００のイメージファイル３２０を、仮想マシンホストＡに配付する。この操作が完了した時点では、記憶装置３００内のイメージファイル３２０、及び、仮想マシンホストＡ上のイメージファイルの版番号は共に「１」である。【００６５】
時刻ｔ２３で、リポジトリサーバ２００からイメージファイル３２０を仮想マシンホストＢに配付する。この操作が完了した時点では、記憶装置３００内のイメージファイルと、仮想マシンホストＡ及びＢ上のイメージファイルの版番号は全て「１」である。時刻ｔ２４で、仮想マシンホストＡを対象として、更新ファイルを取得する。この操作が完了した時点では、記憶装置３００は、版番号「１」のイメージファイル３２０と版番号「２」の更新ファイル３３０とを記憶する。また、仮想マシンホストＡは、版番号「２」のイメージファイルを記憶し、仮想マシンホストＢは、版番号「１」のイメージファイルを記憶する。【００６６】
時刻ｔ２５で、仮想マシンホストＢを対象として更新ファイルの取得を試みる。時刻ｔ２５の直前の時点において、記憶装置３００内の最新の版番号は「２」であり、仮想マシンホストＢのイメージファイルの版番号は「１」である。従って、版番号は一致しない。更新ファイル登録操作を行う直前において、仮想マシンホスト４００上のイメージファイルの版番号は、リポジトリサーバ２００中の最新のイメージファイル又は更新ファイルの版番号と同一である必要がある。この条件が満たされない場合は、更新の競合として扱い、更新ファイルの登録操作に失敗する。【００６７】
上記更新の競合が発生したときは、以下の手順で競合を解決することができる。
（１）競合が発生した仮想マシンホストに対して更新を適用する。上記の例では、仮想マシンホストＢに対して更新を適用する。その結果、仮想マシンホストＢ上のイメージファイルの版番号は「２」となる。
（２）競合が発生した仮想マシンホストＢを対象として、更新ファイルの登録を再試行する。上記の例では、仮想マシンホストＢに対して更新を適用することで仮想マシンホストＢ上のイメージファイルの版番号は「２」となっているので、更新の競合は解消され、更新ファイルの登録に成功する。【００６８】
上記（１）の手順の実行直後の時点において、仮想マシンホストＡ上のイメージファイルと、仮想マシンホストＢ上のイメージファイルとは、必ずしも同じ内容ではない点に注意する必要がある。その理由は、仮想マシンホストＢにおいて、版番号「２」の更新ファイルには含まれない変更がなされている可能性があるからである。上記競合解決の手順において、版番号「２」の更新ファイルと仮想マシンホストＢとの間で、同一ファイルに対して異なる変更がなされている可能性がある。例えば、版番号「２」の更新ファイルは、/etc/hostsに対する変更を含み、仮想マシンホストＢ上では、同じファイル/etc/hostsに対して異なる内容の変更がなされている可能性がある。このような場合は、単に、仮想マシンホストＢ上で版番号「２」の更新ファイルを適用するだけでは不整合が生じる。この不整合を回避するためには、上記（１）の手順で、変更内容を手動で合成しておけばよい。【００６９】
更新ログ記録手段４６０により記録される変更履歴の内容、及び、更新ログ記録手段４６０の実現手段について説明する。変更履歴として記載する情報の一例は、仮想マシン上のファイル又はディレクトリに対する変更がなされた際に、その対象となったファイル又はディレクトリの名前をフルパスで表記したものである。更新ファイル取得手段４２０は、ある版の仮想マシンと、最新の仮想マシンとの間になされた変更を取得するために、変更履歴を参照する。更新ファイル取得手段４２０は、変更履歴を参照し、変更があったファイル名又はディレクトリ名を特定して、更新ファイル及び変更情報を生成する。【００７０】
更新ログ記録手段４６０を実現する手段の一例は、オペレーティングシステム（ＯＳ）のカーネルに常駐し、ファイル又はディレクトリ更新に関わるシステムコールを捕捉する手段である。この種のプログラムの一例として、Ｌｉｎｕｘ（登録商標）オペレーティングシステムと組み合わせて動作するLinux Auditing System(LauS)が知られている。【００７１】
続いて、全体の動作について詳細に説明する。はじめに、イメージファイルの登録の詳細について説明する。イメージファイルの登録に先立ち、登録の対象となるイメージファイルは、仮想マシン管理装置１００又はリポジトリサーバ２００の少なくとも一方から参照可能な位置に置かれる。システム管理者は、仮想マシン管理装置１００を操作して、イメージファイル登録を選択する（図３のＭ１１）。その際、システム管理者は、仮想マシン管理装置に対して、仮想マシン名、及び、登録対象のイメージファイル名を入力する。システム管理者は、この他にも、登録対象の仮想マシンについての自然言語による説明などの付加的な情報を入力してもよい。【００７２】
仮想マシン管理装置１００は、イメージファイル登録操作がなされると、リポジトリサーバ２００に対して、イメージファイル登録要求を送る（図３のＭ１２）。イメージファイル登録要求は、システム管理者により入力された情報、すなわち、仮想マシン名、イメージファイル名、その他の付加的な情報を含む。【００７３】
ここで、登録対象のイメージファイルがリポジトリサーバ２００から参照可能な位置に置かれている場合は、仮想マシン管理装置１００は、イメージファイル名などに、イメージファイル取得元のアドレス情報などを含めて、リポジトリサーバ２００にイメージファイル登録要求を送る。例えば、リポジトリサーバ２００がインターネットを介してアクセス可能なＷｅｂサーバ上にイメージファイルが公開されているときは、仮想マシン管理装置１００は、イメージファイル登録要求に、イメージファイルを参照するＵＲＬ（Uniform Resource Locator）を含める。この場合、イメージファイル登録要求自体に、イメージファイルの内容を含める必要はない。【００７４】
一方、登録対象のイメージファイルがリポジトリサーバ２００から参照できないときは、仮想マシン管理装置１００は、イメージファイル登録要求に、登録対象のイメージファイルの内容を含める。例えば、登録対象のイメージファイルが仮想マシン管理装置１００の内蔵ハードディスクに格納されており、かつ、そのイメージファイルがネットワークを介してリポジトリサーバ２００と共有されていない場合は、仮想マシン管理装置１００から、イメージファイルの内容をリポジトリサーバ２００に送信する。このときのイメージファイルの送信手段には、ＦＴＰ（File Transfer Protocol）、ＨＴＴＰ（Hypertext Transfer Protocol）、ＳＳＨ（Secure Shell）など、任意のファイル転送手段を用いることができる。【００７５】
リポジトリサーバ２００は、イメージファイル登録要求を受けると、イメージファイル登録手段２１０により、イメージファイル登録処理を行う。図１１に、イメージファイル登録処理の手順を示す。イメージファイル登録手段２１０は、登録対象のイメージファイルに対して、リポジトリ内ファイル名を決定する（ステップＳ２１１）。イメージファイル登録手段２１０は、例えば、仮想マシン名、イメージファイルであることを示す文字列（image）、及び、版番号を“＿”（アンダースコア）で連結した文字列をリポジトリ内ファイル名として決定する。具体的には、仮想マシン名「ｖｍ０１」のイメージファイルのファイル名を、「vm01_image_01.zip」と決定する。【００７６】
イメージファイル登録手段２１０は、記憶装置３００に、登録ファイルのイメージファイルの内容を格納する（ステップＳ２１２）。イメージファイル登録手段２１０は、イメージファイル登録要求にイメージファイルを参照するＵＲＬが含まれるときは、そのＵＲＬよりイメージファイルの内容を取得して、記憶装置３００に格納する。イメージファイル登録手段２１０は、イメージファイル登録要求にイメージファイルの内容が含まれるときには、その含まれるイメージファイルの内容を、記憶装置３００に格納する。このステップＳ２１２は、図３のＭ１３に相当する。イメージファイル登録手段２１０は、ステップＳ２１２でイメージファイルの内容を格納する際に、そのイメージファイルに、ステップＳ２１１で決定したリポジトリ内ファイル名を付ける。【００７７】
イメージファイル登録手段２１０は、イメージファイルの格納後、版管理表３１０に、登録対象のイメージファイルに関する情報を追加する（ステップＳ２１３）。このステップＳ２１３は、図３のＭ１４に相当する。イメージファイル登録手段２１０は、ステップＳ２１３では、版管理表３１０（図２）の「仮想マシン名」に、イメージファイル登録要求に含まれる仮想マシン名を記録し、「版番号」に１を記録する。また、イメージファイル登録手段２１０は、「種別」にイメージファイルを示す情報を記録し、「リポジトリ内ファイル名」に、ステップＳ２１１で決定したファイル名を記録する。イメージファイル登録手段２１０は、イメージファイル登録要求に付加的な情報が含まれる場合には、その付加的な情報も、版管理表３１０に登録する。この付加的な情報は、後に、システム管理者による便宜のために用いることができる。なお、ステップＳ２１２のイメージファイルの登録と、ステップＳ２１３の版管理表３１０の追加は、何れが先でもよい。【００７８】
次に、イメージファイルの配付／配備の詳細について説明する。システム管理者は、仮想マシン管理装置１００を操作して、イメージファイル配付を選択する（図４のＭ２１）。その際、システム管理者は、仮想マシン名、仮想マシンの版番号、及び、配付先の仮想マシンホスト４００のホスト名（以下、配付先ホスト名とも呼ぶ）を入力する。仮想マシン管理装置１００は、イメージファイル配付操作がなされると、リポジトリサーバに対して、イメージファイル配付要求を送る（図４のＭ２２）。イメージファイル配付要求は、システム管理者が仮想マシン管理装置１００に対して入力した情報、すなわち、仮想マシン名、版番号、及び、配付先ホスト名を含む。【００７９】
リポジトリサーバ２００は、仮想マシン管理装置１００からイメージファイル配付要求を受け取ると、イメージファイル配付手段２２０により、イメージファイル配付処理を行う。図１２に、イメージファイル配付処理の手順を示す。イメージファイル配付手段２２０は、版管理表３１０に対して、仮想マシン名、版番号、種別をキーとして検索を実行し、該当する仮想マシン及び版番号についてのイメージファイルのリポジトリ内ファイル名を取得する（ステップＳ２２１）。このステップＳ２２１は、図４のＭ２３に相当する。【００８０】
イメージファイル配付手段２２０は、ステップＳ２２１では、仮想マシン管理装置１００から受け取ったイメージファイル配付要求にて指定される仮想マシン名及び版番号を検索キーとして、検索を実行する。ステップＳ２２１で検索キーとする「種別」は、イメージファイルである。イメージファイル配付手段２２０は、ステップＳ２２１の検索の結果、リポジトリ内ファイル名を取得できない場合、つまり、検索条件を満たすエントリが見つからない場合は、仮想マシン管理装置１００に対してエラーを返し、処理を終了する。【００８１】
イメージファイル配付手段２２０は、記憶装置３００から、ステップＳ２２１で取得したリポジトリ内ファイル名に相当するイメージファイル３２０を取得する（ステップＳ２２２）。このステップＳ２２２は、図４のＭ２４に相当する。イメージファイル配付手段２２０は、記憶装置３００に該当するファイルが存在しないときは、仮想マシン管理装置１００に対してエラーを返し、処理を終了する。【００８２】
イメージファイル配付手段２２０は、仮想マシンホスト４００に対して、イメージファイル配備要求を送信する（ステップＳ２２３）。このステップＳ２２３は、図４のＭ２５に相当する。イメージファイル配付手段２２０は、ステップＳ２２３では、仮想マシン管理装置１００から受け取ったイメージファイル配付要求にて指定される配付先ホスト名に該当する仮想マシンホスト４００に対して、イメージファイル配備要求を送信する。イメージファイル配付要求は、仮想マシン名、版番号、及び、イメージファイルの内容を含む。この要求に含まれる仮想マシン名は、イメージファイル配付要求に含まれる仮想マシン名と同じであり、版番号は、イメージファイル配付要求に含まれる版番号と同じである。イメージファイルの内容は、ステップＳ２２２で取得したイメージファイルの内容である。【００８３】
仮想マシンホスト４００は、リポジトリサーバ２００からイメージファイル配備要求を受け取ると、イメージファイル配備手段４１０により、イメージファイル配備処理を行う。図１３に、イメージファイル配備処理の手順を示す。イメージファイル配備手段４１０は、イメージファイル配備要求で指定される仮想マシンの稼働状況を調べ、仮想マシンが動作中であるか否かを判断する（ステップＳ４１１）。仮想マシンホスト４００は、各仮想マシンの稼働状況を示す情報を保持しており、イメージファイル配備手段４１０は、その情報を参照することで、仮想マシンが動作中であるか否かを調べることができる。【００８４】
イメージファイル配備手段４１０は、仮想マシンが動作中であると判断したときは、その仮想マシンを停止する（ステップＳ４１２）。イメージファイル配備手段４１０は、例えばシャットダウンコマンドを発行して、仮想マシンを停止する。その後、イメージファイル配備手段４１０は、イメージファイル配備要求に含まれるイメージファイルを、イメージファイル記憶域４５０に格納する（ステップＳ４１３）。このときイメージファイル配備手段４１０は、イメージファイル配備要求に含まれる仮想マシン名を、イメージファイルと関連付ける形で格納する。【００８５】
イメージファイル配備手段４１０は、ステップＳ４１１で仮想マシンが動作中でないと判断したときは、そのままステップＳ４１３へ進み、イメージファイル記憶域４５０にイメージファイルを格納する。イメージファイル配備手段４１０は、指定された仮想マシンが仮想マシンホスト４００上に存在しない場合、つまり、イメージファイル記憶域４５０に対応するイメージファイルが格納されていない場合も、ステップＳ４１３へ進んでイメージファイルを格納する。【００８６】
イメージファイル配備手段４１０は、イメージファイルの格納後、格納したイメージファイル内に更新ログ４７０を新規に作成し、そこに版番号を記録する（ステップＳ４１４）。イメージファイル配備手段４１０は、更新ログ４７０が既に存在しているときは、それを削除した上で、新規の更新ログ４７０を作成する。イメージファイル配備手段４１０は、ステップＳ４１４では、更新ログ４７０に、リポジトリサーバ２００から受け取ったイメージファイル配備要求にて指定される版番号を記録する。【００８７】
なお、使用する仮想マシン製品によっては、仮想マシンを新規に動作させる際に、単にイメージファイル記憶域４５０に相当するディレクトリにイメージファイルをおくだけでは不十分で、別途、仮想マシン登録操作の実行が必要なものがある。その場合、イメージファイル配備手段４１０は、ステップＳ４１３で、必要な登録操作を実行する。【００８８】
続いて、更新ファイルの取得／登録の詳細について説明する。システム管理者は、仮想マシン管理装置１００を操作して、更新ファイル登録を選択する（図５のＭ３１）。その際、システム管理者は、仮想マシン管理装置１００に対して、更新ファイル取得元の仮想マシンホスト４００のホスト名（以下、更新取得元ホスト名）、仮想マシン名、及び、更新対象ディレクトリパスを入力する。【００８９】
更新対象ディレクトリパスは、指定した仮想マシン上に対してなされた全ての更新内容を取得するのに代えて、特定のディレクトリ以下の更新内容を取得したいときに指定する。例えば、「/etc/sysconfig」以下のディレクトリの更新内容を取得したいときは、更新対象ディレクトリに「/etc/sysconfig」を指定する。更新対象ディレクトリの指定がないときは、指定した仮想マシン上の全ファイル／ディレクトリの取得が要求されたものとして扱う。更新対象ディレクトリの指定がないことは、Ｌｉｎｘ等のオペレーティングシステムにおいて、更新対象のディレクトリパスとして「／」が指定された場合と等価である。【００９０】
仮想マシン管理装置１００は、更新ファイル登録操作がなされると、リポジトリサーバ２００に対して更新ファイル登録要求を送る（図５のＭ３２）。更新ファイル登録要求は、システム管理者によって入力された情報、すなわち、更新取得元ホスト名、仮想マシン名、及び、更新対象ディレクトリを含む。【００９１】
リポジトリサーバ２００は、仮想マシン管理装置１００から更新ファイル登録要求を受け取ると、更新ファイル登録手段２３０により、更新ファイル登録処理を行う。図１４に、更新ファイル登録処理の手順を示す。更新ファイル登録手段２３０は、版管理表３１０に対して、更新ファイル登録要求に含まれる仮想マシン名をキーとして検索を行い、最新のイメージファイル又は最新の更新ファイルの版番号を取得する（ステップＳ２３１）。更新ファイル登録手段２３０は、更新取得元ホスト名に該当する仮想マシンホスト４００に対して更新ファイル取得要求を送信する（ステップＳ２３２）。このステップＳ２３２は、図５のＭ３３に相当する。更新ファイル取得要求は、更新ファイル登録要求にて指定された仮想マシン名、更新ファイル要録要求にて指定された更新対象のディレクトリパス名、及び、ステップＳ２３１で検索された版番号を含む。【００９２】
仮想マシンホスト４００は、更新ファイル取得要求を受け取ると、更新ファイル取得手段４２０により、更新ファイル取得処理を行う。図１５に、更新ファイル取得処理の手順を示す。更新ファイル取得手段４２０は、イメージファイル記憶域４５０から、更新ファイル取得要求で指定された仮想マシンについての現在の版番号を取得し（ステップＳ４２１）、取得した版番号と、更新ファイル取得要求に含まれる版番号とを比較する（ステップＳ４２２）。前述した更新の競合が発生しているときは、版番号が一致しない。更新ファイル取得手段４２０は、版番号が一致しないときは、更新ファイル取得要求への応答として、リポジトリサーバ２００に対してエラーを返し、処理を終了する（ステップＳ４２８）。【００９３】
更新ファイル取得手段４２０は、版番号が一致するときは、更新ファイル取得要求で指定された仮想マシンの稼働状況を調べる（ステップＳ４２３）。更新ファイル取得手段４２０は、仮想マシンが動作中であるときは、その仮想マシンを停止する（ステップＳ４２４）。仮想マシンを停止する理由は、更新ファイル生成時に、仮想マシンが仮想ディスクに対して変更を加えることを避けるためである。ステップＳ４２４では、仮想マシンを完全に停止する必要はなく、ファイルアクセスを停止するだけでもよい。【００９４】
更新ファイル取得手段４２０は、仮想マシンの停止後、イメージファイル記憶域４５０から更新ファイル取得要求で指定された仮想マシンに対応するイメージファイルを取り出し、そのイメージファイル内の更新ログ４７０の末尾に、更新記録を記録する（ステップＳ４２５）。このとき記録する更新記録は、ステップＳ４２１で取得した版番号に１を加えた版番号である。更新ファイル取得手段４２０は、ステップＳ４２３で仮想マシンが動作中でないと判断したときは、そのままステップＳ４２５に進んで、更新ログに更新記録を記録する。【００９５】
更新ファイル取得手段４２０は、更新記録の記録後、更新ログ４７０から、前回の更新記録とステップＳ４２５で記録した更新記録との間に、更新ファイル取得要求で指定された仮想マシンについての変更履歴を取得する。更新ファイル取得手段４２０は、取得した変更履歴に基づいて、仮想マシン上で変更があったファイル又はディレクトリを特定し、前回の更新からどのような変更があったかを調べ、変更情報を生成する。また、更新ファイル取得手段４２０は、変更があったファイル又はディレクトリの内容を取得し、更新ファイルを生成する（ステップＳ４２６）。【００９６】
例えば、ステップＳ４２５で、更新ログ４７０に、更新記録として版番号を「３」を記録したとする。更新ファイル取得手段４２０は、ステップＳ４２６で、版番号「２」の更新記録から、版番号「３」の更新記録の間にある変更履歴を調べ、変更があったファイル又はディレクトリを特定する。図９の例では、版番号「２」から版番号「３」の間に、「/etc/resolv.conf」と「/etc/nsswitch.conf」とが更新されていることがわかる。更新ファイル取得手段４２０は、ステップＳ４２６で、仮想マシンがアクセスする仮想ディスク上での「/etc/resolv.conf」と「/etc/nsswitch.conf」の内容を取得し、更新ファイルを作成する。【００９７】
更新ファイル取得手段４２０は、作成した更新ファイルと、変更情報とを、更新ファイル取得要求への応答としてリポジトリサーバ２００に送信し（ステップＳ４２７）、処理を終了する。更新ファイル取得手段４２０は、例えば、変更後の「/etc/resolv.conf」と「/etc/nsswitch.conf」の内容を差分情報として含む更新ファイルを、リポジトリサーバ２００に送信する。また、「/etc/resolv.conf」と「/etc/nsswitch.conf」に対して、「更新」があった旨の変更情報を、リポジトリサーバ２００に送信する。【００９８】
図１４に戻り、更新ファイル登録手段２３０は、ステップＳ２３２で送信した仮想マシンホスト４００から更新ファイル取得要求に対する応答を受け取る。受け取る応答は、成功応答（図１５のステップＳ４２７）又はエラー応答（ステップＳ４２８）である。成功応答の場合は、応答には、更新ファイル取得に成功した旨に加えて、変更があった仮想マシン上でのファイル名を含む変更情報と、変更内容を示す差分情報を含む更新ファイルの実体とが含まれる。更新ファイル登録手段２３０は、更新ファイルの取得に成功したか否かを判断する（ステップＳ２３３）。更新ファイル登録手段２３０は、仮想マシンホスト４００から更新ファイル取得に失敗した旨の応答を受け取ったときは、仮想マシン管理装置１００に対する応答として失敗を通知し（ステップＳ２３７）、処理を終了する。【００９９】
更新ファイル登録手段２３０は、更新ファイル取得に成功した旨の応答を受け取ると、仮想マシンホスト４００から取得した更新ファイルに対応するリポジトリ内ファイル名を決定する（ステップＳ２３４）。更新ファイル登録手段２３０は、例えば、仮想マシン名と、イメージファイルと更新ファイルとを区別すための文字列（update）と、版番号とを連結した文字列を、リポジトリ内ファイル名として決定する。具体的には、更新ファイル登録手段２３０は、仮想マシン名「ｖｍ０１」、版番号「２」に対して、リポジトリ内ファイル名を「vm01_update_02.zip」と決定する。【０１００】
更新ファイル登録手段２３０は、記憶装置３００に、仮想マシンホスト４００から取得した更新ファイルを、更新ファイル３３０として格納する（ステップＳ２３５）。このステップＳ２３５は、図５のＭ３４に相当する。更新ファイル登録手段２３０は、更新ファイル格納に際しては、更新ファイルに、ステップＳ２３４で決定したリポジトリ内ファイル名を付与する。更新ファイル登録手段２３０は、更新ファイルの格納後、版管理表３１０に、格納した更新ファイルと共に取得したに変更情報を記録する（ステップＳ２３６）。このステップＳ２３６は、図５のＭ３５に相当する。更新ファイル登録手段２３０は、版管理表３１０への記録後、仮想マシン管理装置１００への応答として成功を通知し、処理を終了する。【０１０１】
更新ファイル登録手段２３０は、ステップＳ２３６では、版管理表３１０に、新たなエントリを追加し、各項目に、以下の情報を記録する。「仮想マシン名」には、更新ファイル登録要求に含まれる仮想マシン名を記録する。「版番号」には、ステップＳ２３１で取得した版番号に１を加えた版番号を記録する。「種別」には、更新ファイルを記録し、「リポジトリ内ファイル名」には、ステップＳ２３４で決定したファイル名を記録する。また、「仮想マシン上のファイル名」には、ステップＳ２３２の更新ファイル取得要求に対する応答に含まれる変更情報、つまり、更新ファイルが仮想マシン上でのどのファイルに対応するかを示す情報を記録する。【０１０２】
引き続き、更新ファイルの配付／適用の詳細について説明する。システム管理者は、仮想マシン管理装置１００を操作して、更新ファイル適用を選択する（図６のＭ４１）。その際、システム管理者は、仮想マシン管理装置１００に、配付対象の仮想マシン名、仮想マシンの版番号、及び、更新ファイル適用先の仮想マシンホスト４００のホスト名（以下、更新適用先ホスト名とも呼ぶ）を入力する。版番号は、入力を省略してもよい。版番号の入力が省略された場合は、記憶装置３００に格納されている仮想マシンの版について、最新の版番号が指定されたものとして取り扱う。【０１０３】
仮想マシン管理装置１００は、更新ファイル適用操作がなされると、リポジトリサーバ２００に、更新ファイル配付要求を送信する（図６のＭ４２）。更新ファイル配付要求には、仮想マシン管理装置１００に対して入力された情報、すなわち、仮想マシン名、版番号、更新適用先ホスト名の情報を含む。【０１０４】
リポジトリサーバ２００は、仮想マシン管理装置１００から更新ファイル配付要求を受け取ると、更新ファイル配付手段２４０により、更新ファイル配付処理を行う。図１６に、更新ファイル配付処理の手順を示す。更新ファイル配付手段２４０は、仮想マシンホスト４００に対して、その仮想マシンホスト４００上の仮想マシンの現在の版番号を問い合わせ、最新の版番号を取得する（ステップＳ２４１）。このステップＳ２４１は、図６のＭ４３に相当する。【０１０５】
更新ファイル配付手段２４０は、ステップＳ２４１では、受け取った更新ファイル配付要求にて指定されている更新適用先ホスト名に該当する仮想マシンホスト４００に対して問合せを行う。この問合せには、更新ファイル配付要求に含まれる仮想マシン名が含まれる。問合せを受けた仮想マシンホスト４００は、自身が備えるイメージファイル記憶域４５０から、問合せ対象の仮想マシンのイメージファイルの版番号を取得し、その版番号をリポジトリサーバ２００に返す。【０１０６】
なお、更新ファイル配付手段２４０は、仮想マシンホスト４００に対する問合せに失敗した場合、つまり、問合せ対象の仮想マシンのイメージファイルの版番号が取得できなかったときは、仮想マシン管理装置１００に対して、失敗応答を通知し、処理を終了する。版番号の取得に失敗する典型的なケースは、問合せ対象として指定された仮想マシンが、仮想マシンホスト４００上に存在しないケースである。【０１０７】
更新ファイル配付手段２４０は、版管理表３１０を参照して、更新ファイル名を取得する（ステップＳ２４２）。このステップＳ２４２は、図６のＭ４４に相当する。更新ファイル配付手段２４０は、ステップＳ２４２では、「仮想マシン名」を更新ファイル配付要求に含まれる仮想マシン名とし、「種別」を更新ファイルとした検索キーを用いて、版管理表３１０（図２）を検索し、該当する更新ファイルのファイル名を取得する。更新ファイル配付手段２４０は、この検索により、指定した仮想マシン名について、記憶装置３００に格納されている全ての更新ファイルの版番号と、それに対応する更新ファイル名とを取得する。更新ファイル配付手段２４０は、ステップＳ２４２で該当する情報が見つからない場合は、仮想マシン管理装置１００への応答として失敗を通知し、処理を終了する。【０１０８】
更新ファイル配付手段２４０は、記憶装置３００から、仮想マシンホスト４００に対して適用すべき更新ファイル３３０の内容を取得する（ステップＳ２４３）。このステップＳ２４３は、図６のＭ４５に相当する。更新ファイル配付手段２４０は、ステップＳ２４３では、ステップＳ２４２で取得した更新ファイルのうち、ステップＳ２４１で取得した版番号よりも大きく、かつ、更新ファイル取得要求に含まれる版番号以下の更新ファイルの内容を取得する。更新ファイル配付手段２４０は、更新ファイル配付要求に版番号が含まれない場合は、ステップＳ２４１で取得した版番号よりも大きい版番号を持つ全ての更新ファイルの内容を取得する。【０１０９】
ステップＳ２４３について、具体例を用いて説明する。更新ファイル配付要求には、仮想マシン名「ｖｍ０１」、版番号「３」が含まれているとする。また、ステップＳ２４１での問合せの結果、仮想マシンにおける現在の版番号は「１」であったとする。更新ファイル配付手段２４０は、図２に示す版管理表３１０を参照して、仮想マシン名「ｖｍ０１」、種別「更新ファイル」のうち、版番号が「１」よりも大きく、かつ、「３」以下の更新ファイルのファイル名（リポジトリ内ファイル名）を取得する。この場合、更新ファイル配付手段２４０は、ステップＳ２４３では、仮想マシン名ｖｍ０１、版番号「２」、「３」に対応する更新ファイルの内容を取得する。この例が示すとおり、ステップＳ２４３では、複数の更新ファイルを一度に取得することがあり得る。【０１１０】
なお、例えば、更新ファイル配付要求に含まれる版番号が「１０」で、仮想マシンにおける現在の版番号が「１」のとき、記憶装置３００に、版番号「２」〜「１０」の何れかのイメージファイルが存在するときは、それを用いることもできる。例えば、版番号「８」のイメージファイルが記憶装置３００に存在するときは、更新ファイル配付手段２４０は、ステップＳ２４３では、版番号「８」のイメージファイルと、版番号「９」、「１０」の更新ファイルとを、仮想マシンホスト４００に対して適用すべき更新ファイルの内容として取得すればよい。【０１１１】
更新ファイル配付手段２４０は、仮想マシンホスト４００に対して、更新ファイル適用要求を送信する（ステップＳ２４４）。このステップＳ２４４は、図６のＭ４６に相当する。更新ファイル適用要求の送信先は、更新ファイル配付要求に含まれる更新適用先ホスト名に該当する仮想マシンホスト４００である。更新ファイル適用要求は、更新ファイル配付要求に含まれる仮想マシン名、ステップＳ２４１で取得した版番号、及び、ステップＳ２４３で取得した更新ファイルの内容を含む。更新ファイル配付手段２４０は、ステップＳ２４３で、複数の版番号についての更新ファイルを取得している場合には、更新ファイル適用要求に、取得した複数の更新ファイルを含める。【０１１２】
仮想マシンホスト４００は、リポジトリサーバ２００から更新ファイル適用要求を受け取ると、更新ファイル適用手段４３０により、更新ファイル適用処理を行う。図１７に、更新ファイル適用処理の手順を示す。更新ファイル適用手段４３０は、更新ファイル適用要求で指定されている仮想マシンの稼働状況を確認する（ステップＳ４３１）。更新ファイル適用手段４３０は、仮想マシンが動作中のときは、その仮想マシンを停止する（ステップＳ４３２）。【０１１３】
更新ファイル適用手段４３０は、仮想マシンの停止後、イメージファイル記憶域４５０のうち、更新ファイル適用要求で指定されているイメージファイルに対して、更新ファイル適用要求に含まれる更新ファイルの内容を展開する（ステップＳ４３３）。ステップＳ４３３にて、仮想マシンがアクセスするファイルシステム中に、更新ファイルの内容を展開することで、版管理表３１０の仮想マシン上のファイル名に記録されているファイル名又はディレクトリ名の内容が、所望の版のイメージファイルにおけるファイル又はディレクトリの内容に更新される。【０１１４】
更新ファイル適用手段４３０は、ステップＳ４３３では、更新ファイル適用要求に複数の更新ファイルが含まれる場合は、版番号が小さい更新ファイルから順に、更新ファイルの内容を展開する。例えば、更新ファイル適用要求に版番号「２」の更新ファイルと版番号「３」の更新ファイルが含まれる場合は、更新ファイル適用手段４３０は、版番号「２」の更新ファイルの内容を展開した後に、版番号「３」の更新ファイルの内容を展開する。更新ファイル適用手段４３０は、ステップＳ４３１で仮想マシンが稼働中でないと判断した場合は、そのままステップＳ４３３に進み、イメージファイル記憶域４５０に、更新ファイルの内容を展開する。【０１１５】
更新ファイル適用手段４３０は、更新ログ４７０の末尾に、更新記録を記入する（ステップＳ４３４）。更新対象の更新ログ４７０は、ステップＳ４３３で更新ファイルを展開した仮想マシンに対応する更新ログである。更新ファイル適用手段４３０は、ステップＳ４３４では、ステップＳ４３３で展開した更新ファイルのうち、最も新しい版番号を、更新記録に記入する。すなわち、更新ファイル適用手段４３０は、版番号が最大の更新ファイルの版番号を、更新記録に記入する。【０１１６】
最後に、スナップショットの取得／登録の詳細について説明する。システム管理者は、仮想マシン管理装置１００を操作して、スナップショット登録を選択する（図７のＭ５１）。その際、システム管理者は、仮想マシン管理装置１００に、スナップショット取得元の仮想マシンホスト４００のホスト名（以下、スナップショット取得元ホスト名とも呼ぶ）と、仮想マシン名とを入力する。【０１１７】
仮想マシン管理装置１００は、スナップショット登録操作が行われると、リポジトリサーバ２００に、スナップショット登録要求を送る（図７のＭ５２）。スナップショット取得要求は、システム管理者によって入力された情報、すなわち、スナップショット取得先ホスト名と、仮想マシン名とを含む。【０１１８】
リポジトリサーバ２００は、仮想マシン管理装置１００からスナップショット登録要求を受けると、スナップショット登録手段２５０により、スナップショット登録処理を行う。図１８にスナップショット登録処理の手順を示す。スナップショット登録の手順の大部分は、更新ファイル登録処理の手順（図１４）と同様である。スナップショット登録処理と更新ファイル登録処理との主な相違点は、更新ファイルに加えて、イメージファイルを登録する点である。【０１１９】
スナップショット登録手段２５０は、受信したスナップショット登録要求に含まれる仮想マシン名をキーとして版管理表３１０を検索し、最新のイメージファイル又は更新ファイルの版番号を取得する（ステップＳ２５１）。スナップショット登録手段２５０は、仮想マシンホスト４００に対して、スナップショット取得要求を送信する（ステップＳ２５２）。このステップＳ２５２は、図７のＭ５３に相当する。【０１２０】
スナップショット登録手段２５０は、ステップＳ２５２では、スナップショット取得要求にて指定されているスナップショット取得元仮想マシンホスト名に該当する仮想マシンホスト４００に、スナップショット取得要求を送信する。スナップショット取得要求は、スナップショット取得要求に含まれる仮想マシン名、ステップＳ２５１で検索結果として得られた版番号を含む。【０１２１】
仮想マシンホスト４００は、スナップショット取得要求を受け取ると、スナップショット取得手段４４０により、スナップショット取得処理を行う。図１９に、スナップショット取得処理の手順を示す。スナップショット取得処理の手順の大部分は、図１５に示す更新ファイル取得処理の手順と同じである。スナップショット取得処理と更新ファイル取得処理との主な相違点は、更新ファイルに加えて、イメージファイルを取得する点である。【０１２２】
スナップショット取得手段４４０は、イメージファイル記憶域４５０から、スナップショット取得要求で指定された仮想マシンについての現在の版番号を取得する（ステップＳ４４１）。スナップショット取得手段４４０は、ステップＳ４４１で取得した版番号と、スナップショット取得要求で指定された版番号とを比較し、両者が一致するか否かを判断する（ステップＳ４４２）。スナップショット取得手段４４０は、両者が一致しないときは、スナップショット取得要求への応答として、リポジトリサーバ２００に失敗を通知し（ステップＳ４４８）、処理を終了する。【０１２３】
スナップショット取得手段４４０は、ステップＳ４４２で版番号が一致すると判断したときは、スナップショット取得要求で指定された仮想マシンが動作中であるか否かを調べる（ステップＳ４４３）。スナップショット取得手段４４０は、仮想マシンが動作中のときは、仮想マシンを停止する（ステップＳ４４４）。スナップショット取得手段４４０は、仮想マシンの停止後、イメージファイル記憶域４５０中の、スナップショット取得要求で指定された仮想マシンに対応するイメージファイル上の更新ログ４７０に、更新記録を記録する（ステップＳ４４５）。スナップショット取得手段４４０は、ステップＳ４４５では、ステップＳ４４１で取得した版番号に１を加えた版番号を、更新記録として記録する。【０１２４】
スナップショット取得手段４４０は、ステップＳ４４３で仮想マシンが動作中でないと判断したときは、そのままステップＳ４４５に進み、更新ログ４７０に、更新記録を記録する。スナップショット取得手段４４０は、更新記録の記録後、更新ログ４７０から、前回の更新記録の記録（版更新）と今回の更新記録の記録との間に仮想マシン上でなされた変更履歴を取得する。【０１２５】
スナップショット取得手段４４０は、取得した変更履歴に基づいて、仮想マシン上で変更があったファイル又はディレクトリを特定し、前回の更新からどのような変更があったかを調べ、変更情報を生成する。また、スナップショット取得手段４４０は、変更があったファイル又はディレクトリの内容を取得し、更新ファイルを生成する。更に、スナップショット取得手段４４０は、同仮想マシンについてのイメージファイル全体を取得する（ステップＳ４４６）。スナップショット取得手段４４０は、作成した更新ファイル及び変更情報と、取得したイメージファイルとを、スナップショット取得要求に対する応答としてリポジトリサーバ２００に送信し（ステップＳ４４７）、処理を終了する。【０１２６】
図１８に戻り、スナップショット登録手段２５０は、ステップＳ２５２で送信した仮想マシンホスト４００からスナップショット取得要求に対する応答を受け取る。受け取る応答は、成功応答（図１９のステップＳ４４７）又はエラー応答（ステップＳ４４８）である。成功応答の場合は、応答には、スナップショット取得に成功した旨に加えて、イメージファイルの内容と、更新ファイル及び変更情報とを含む。応答に含まれるイメージファイル及び更新ファイルは、スナップショット取得要求で指定した仮想マシンについて、仮想マシンホスト４００上での最新版に相当する版番号を持つ。【０１２７】
スナップショット登録手段２５０は、仮想マシンホスト４００からスナップショット取得要求に対応する応答を受け取ると、スナップショットの取得に成功したか否かを判断する（ステップＳ２５３）。スナップショット登録手段２５０は、仮想マシンホスト４００からスナップショット取得に失敗した旨の応答を受け取ったときは、仮想マシン管理装置１００に対する応答として失敗を通知し（ステップＳ２５７）、処理を終了する。スナップショット取得に失敗する典型的な例は、スナップショット取得要求で指定した版番号と、スナップショット取得元の仮想マシンホスト４００上での版番号とが異なる場合、すなわち、更新の競合が発生した場合である。【０１２８】
スナップショット登録手段２５０は、スナップショット取得要求に成功したと判断すると、取得したイメージファイル及び更新ファイルに対するリポジトリ内ファイル名を決定する（ステップＳ２５４）。イメージファイルに対するリポジトリ内ファイル名は、イメージファイル登録手段２１０によるリポジトリ内ファイル名の決定（図１１のステップＳ２１１）と同様である。また、更新ファイルに対するリポジトリ内ファイル名の決定では、更新ファイル登録手段２３０によるリポジトリ内ファイル名の決定（図１４のステップＳ２３４）と同様である。【０１２９】
スナップショット登録手段２５０は、記憶装置３００に、仮想マシンホスト４００から取得したイメージファイル及び更新ファイルを格納する（ステップＳ２５５）。このステップＳ２５５は、図７のＭ５４に相当する。スナップショット登録手段２５０は、ステップＳ２５５では、イメージファイル及び更新ファイルに、それぞれステップＳ２５４で決定したリポジトリ内ファイル名を付与する。スナップショット登録手段２５０は、版管理表３１０に、格納したイメージファイル及び更新ファイルの情報をそれぞれ追加する（ステップＳ２５６）。このステップＳ２５６は、図７のＭ５５に相当する。スナップショット登録手段２５０は、版管理表３１０への情報追加後、仮想マシン管理装置１００への応答として成功を通知し、処理を終了する。【０１３０】
スナップショット登録手段２５０は、ステップＳ２５６では、イメージファイルについて、版管理表３１０に情報を記録するためのエントリを追加し、各項目に、以下の情報を記録する。「仮想マシン名」には、受信したスナップショット登録要求に含まれる仮想マシン名を記録する。「版番号」には、ステップＳ２５１で取得した版番号に１を加えた版番号を記録する。「種別」には「イメージファイル」を記録し、「リポジトリ内ファイル名」には、ステップＳ２５４で決定したイメージファイル用のリポジトリ内ファイル名を記録する。【０１３１】
また、スナップショット登録手段２５０は、更新ファイルについて、版管理表３１０に情報を記録するためのエントリを追加し、各項目に、以下の情報を記録する。「仮想マシン名」には、受信したスナップショット登録要求に含まれる仮想マシン名を記録する。「版番号」には、ステップＳ２５１で取得した版番号に１を加えた版番号を記録する。「種別」には更新ファイルを記録し、「リポジトリ内ファイル名」には、ステップＳ２５４で決定した更新ファイル用のリポジトリ内ファイル名を記録する。また、「仮想マシン上のファイル名」には、ステップＳ２５２のスナップショット取得要求に対する応答に含まれる変更情報に含まれるファイル名を記録する。【０１３２】
管理者は、任意の時点で、仮想マシン管理装置１００を用いて、仮想マシンを指定して、ある版から別の版までに、どのようなファイルが変更されたかを調べる。仮想マシン管理装置１００は、リポジトリサーバ２００を通じて版管理表３１０を参照し、版管理表３１０における「仮想マシン上のファイル名」の情報を取得する。仮想マシン管理装置１００が、この「仮想マシン上のファイル名」の情報をディスプレイ等の出力装置に出力することで、管理者は、版間でどのようなファイルが変更されたかを、容易に知ることができる。【０１３３】
本実施形態では、更新ファイル登録手段２３０は、仮想マシンにおけるイメージファイルの版を更新し、過去の版更新時点でのイメージファイルから今回の版更新時点でのイメージファイルを生成するための差分情報を含む更新ファイルを記憶装置３００に登録する。また、更新ファイル登録手段２３０は、過去の版更新から今回の版更新までの間に仮想ディスクに対してどのような変更がなされたかを示す変更情報を版管理表３１０に記録する。本実施形態では、版管理表３１０に変更情報を記録している。管理者は、この変更情報を参照することで、仮想マシンについて異なる版の間で、更新ファイルの中身を見なくても、どのファイル／ディレクトリが、どのように変更されたかを知ることができる。【０１３４】
本実施形態では、更新ファイル取得手段４２０は、変更されたファイルの内容、又は、変更前後でのファイル内容の差分を、差分情報として更新ファイルに含める。仮に、各版のイメージファイルを記憶装置３００に登録することを考えると、イメージファイルは仮想ディスク全体の内容を含むため、イメージファイルの記憶装置３００への登録には長時間を要することになる。また、イメージファイルは、大きなストレージ容量を消費する。本実施形態では、変更があった部分を更新ファイルとして持つ構成であるので、更新ファイルの登録に要する時間は、仮想ディスク全体の内容（イメージファイル）を登録する場合に比して、短くて済む。また、更新ファイルの登録に必要な記憶装置３００に必要なストレージ容量も少なくて済む。【０１３５】
ここで、更新ファイル（差分情報）の別例として、イメージファイル同士の差分を、差分情報とすることも考えられる。この場合でも、差分情報を版更新前のイメージファイルに適用することで、イメージファイルの版更新が可能である。また、イメージファイルそのものを記憶装置３００に登録する場合に比して、登録に要する時間及び消費するストレージ容量は少なくて済む。更新ファイルを、イメージファイル同士の差分としたときでも、変更情報を参照することで、異なる版の間で、どのファイル／ディレクトリが、どのように変更されたかを知ることができるという効果は得られる。ただし、イメージファイルは通常サイズが大きいので、版更新前後のイメージファイルの比較には、長時間を要する。また、比較処理を行う際には、コンピュータ上に、イメージファイルの新旧の版の双方を一時的におく必要があるため、そのコンピュータのストレージ領域を余分に消費することになる。【０１３６】
仮想ディスクにて変更されたファイルのサイズは、イメージファイル（仮想ディスク全体）よりもサイズが小さい。このため、変更されたファイルの内容の取得、又は、変更されたファイルの変更前後でのファイル内容の差分の生成に掛かる時間は、イメージファイル同士の差分を生成するのに要する時間に比して短い。従って、変更されたファイルの内容、又は、変更前後でのファイル内容の差分を更新ファイルとすることで、イメージファイル同士の差分を更新ファイルとする場合に比して、更新ファイルの生成を短時間で行うことができる。また、作業に必要なストレージ容量も節約できる。【０１３７】
本実施形態では、仮想ディスクに対して行われた変更を記録した更新ログを参照して仮想ディスクにて変更があったファイルを特定する。通常、イメージファイルのサイズは大きく、仮想ディスクには多数のファイルが含まれているため、異なる版間のイメージファイルから変更があったファイルを特定すると、時間が掛かることになる。本実施形態では、更新ログを参照して変更があったファイルを特定しているため、イメージファイルを展開し、仮想ディスク上のファイルシステムを比較して変更があったファイルを特定する場合に比して、短時間で変更があったファイルの特定が可能である。【０１３８】
本実施形態では、スナップショット登録手段２５０は、仮想マシンにおけるイメージファイルの版を更新し、版更新時点でのイメージファイルと、前回の版更新から今回の版更新までに対応する更新ファイル及び変更情報とを取得し、記憶装置３００に格納する。スナップショット登録手段２５０を用いた構成では、特定の版のイメージファイルを、仮想マシンホストに対して配付することができる。例えば、スナップショット登録の動作で、版番号「４」のイメージファイル３２０を記憶装置３００に格納しておくことで、版番号「５」のイメージファイルの配付に際しては、版番号「４」のイメージファイルと、版番号「５」の更新ファイルを配付すればよいことになる。従って、常に版番号「１」のイメージファイルからの差分で特定の版番号のイメージファイル配付を行う場合に比して、イメージファイル配備に要する時間を短縮できる。【０１３９】
なお、上記実施形態では、仮想マシンの状態を表すイメージファイルの版管理を行う例について説明したが、本発明の版管理システムは、この例には限定されず、通常のサーバホストにおけるストレージ装置のイメージを含むイメージファイルの版管理を行ってもよい。図２０に、サーバホストのイメージファイルの版管理を行う版管理システムの例を示す。この版管理システムは、図１における仮想マシンホスト４００がサーバホスト４００ａに置き換わり、イメージファイル記憶域４５０がストレージ装置４８０に置き換わる点を除き、基本的に、上記実施形態の版管理システムと同様な構成である。【０１４０】
ストレージ装置４８０は、管理対象のストレージ装置であり、イメージファイル作成対象のストレージ装置である。ストレージ装置４８０は、実ストレージ装置でもよく、或いは、実ストレージ装置上に構築された仮想的なストレージ装置でもよい。イメージファイル作成単位は、ストレージ装置４８０全体でもよく、ストレージ装置４８０に設けられた領域（パーティション）でもよい。サーバホスト４００ａ内の各手段を実現するためのプログラムは、サーバホスト４００ａ内の記憶装置上に記録されている。これらプログラムが格納される部分と、ストレージ装置４８０でディスクイメージ（イメージファイル）が書き出される部分とは、異なるディスク又は異なる領域であることが好ましい。また、サーバホスト４００ａ内の各手段を実現するためのプログラムは、サーバホスト４００ａが内蔵する読み出し専用メモリ（ＲＯＭ）内にファームウェア（Firmware）として記録されていてもよい。この場合、更新ログ４７０は、記憶装置上の単独のディスク又は領域、不揮発性メモリなどの上に記録することが好ましい。【０１４１】
図２０に示す版管理システムの全体の動作の概略について説明する。イメージファイル登録手段２１０は、記憶装置３００にイメージファイル３２０を登録する。イメージファイル３２０は、ストレージ装置４８０のディスクイメージを含む。イメージファイル配付手段２２０は、イメージファイル３２０を、サーバホスト４００ａに送信する。イメージファイル配備手段４１０は、リポジトリサーバ２００からイメージファイルを受け取り、受け取ったイメージファイルをストレージ装置４８０に配備する。すなわち、イメージファイル配備手段４１０は、サーバホスト４００ａがアクセス可能な状態となるように、イメージファイルの内容をストレージ装置４８０上に展開する。【０１４２】
更新ファイル取得手段４２０は、更新ファイル登録手段２３０からの指示でストレージ装置４８０における版を更新すると共に、更新ファイル及び変更情報を生成し、更新ファイル登録手段２３０に送信する。更新ファイルは、過去の版更新時点でのディスクイメージから今回の版更新時点でのディスクイメージを生成するための差分情報を含む。より詳細には、更新ファイルは、ストレージ装置４８０に構築されたファイルシステム上で変更されたファイル／ディレクトリの内容、又は、ファイルシステム上で変更されたファイル／ディレクトリの変更前後での内容の差分を、差分情報として含む。或いは、更新ファイル３３０は、異なる版間でのディスクイメージ同士の差分を差分情報として含んでいてもよい。変更情報は、過去の版更新から今回の版更新までの間にストレージ装置４８０に対してどのような変更がなされたかを示す情報である。【０１４３】
更新ログ記録手段４６０は、ストレージ装置４８０に対して行われた変更を、更新ログ４７０に記録する。更新ファイル取得手段４２０は、更新ログ４７０を参照して、ストレージ装置４８０にて変更があったファイルを特定し、変更情報に、ファイルシステム上で変更があったファイルを識別するための情報を含める。更新ファイル登録手段２３０は、サーバホスト４００ａから更新ファイル及び変更情報を取得する。更新ファイル登録手段２３０は、取得した更新ファイルを、記憶装置３００に更新ファイル３３０として登録する。また、更新ファイル登録手段２３０は、取得した変更情報を版管理表３１０に記録する。【０１４４】
更新ファイル配付手段２４０は、記憶装置３００から更新ファイル３３０を取得し、取得した更新ファイルに含まれる差分情報を、サーバホスト４００ａに送信する。更新ファイル適用手段４３０は、更新ファイル配付手段２４０から差分情報を受け取り、受け取った差分情報をストレージ装置４８０に適用する。更新ファイル適用手段４３０が差分情報をストレージ装置４８０に適用することで、ストレージ装置４８０の版が更新ファイルの版に更新される。【０１４５】
スナップショット取得手段４４０は、スナップショット登録手段２５０からの指示でストレージ装置４８０の版を更新し、版更新時点でのストレージ装置４８０の内容をイメージファイル化し、スナップショット登録手段２５０に送信する。また、スナップショット取得手段４４０は、更新ファイル取得手段４２０と同様な手順で更新ファイル及び変更情報を生成し、スナップショット登録手段２５０に送信する。スナップショット登録手段２５０は、取得したイメージファイル及び更新ファイルを、記憶装置３００にそれぞれイメージファイル３２０及び更新ファイル３３０として登録する。また、スナップショット登録手段２５０は、取得した変更情報を版管理表３１０に記録する。【０１４６】
ところで、図１及び図２０の構成では、各仮想マシンホスト４００又は各サーバホスト４００ａ（以下、単にサーバホストとも呼ぶ）がイメージファイル配備手段４１０などの各手段を有する構成を説明したが、各サーバホストが各手段を持つことは必須ではない。例えば、イメージファイル記憶域４５０（図１）又はストレージ装置４８０（図２０）がサーバホスト以外の装置からアクセス可能であれば、その装置が、イメージファイル配備手段４１０、更新ファイル取得手段４２０、更新ファイル適用手段４３０、及び、スナップショット取得手段４４０を有していてもよい。その場合、イメージファイル配備手段４１０等の各手段を持つ装置が、複数のサーバホストに対して、イメージファイルの配備、更新ファイルの送信などの処理を行ってもよい。【０１４７】
本発明の第１の態様に係る版管理システムは、その最小構成において、ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルを記憶装置に登録するイメージファイル登録手段と、前記記憶装置に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを前記記憶装置に登録し、前記記憶装置に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を版管理表に記録する更新ファイル登録手段と、を備える。【０１４８】
本発明の第２の態様に係るサーバホストは、その最小構成において、ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルをイメージファイル記憶域に登録するイメージファイル配備手段と、前記イメージファイル記憶域に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを取得し、前記イメージファイル記憶域に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を生成する更新ファイル取得手段と、を備える。【０１４９】
本発明の第３の態様に係る版管理方法は、その最小構成において、コンピュータを用いる版管理方法であって、ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルを記憶装置に登録するステップと、前記記憶装置に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを前記記憶装置に登録するステップと、前記記憶装置に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を版管理表に記録するステップと、を有する。【０１５０】
本発明の第４の態様に係る版管理方法は、その最小構成において、コンピュータを用いる版管理方法であって、ストレージ装置内に構築された管理対象のファイルシステムの少なくとも一部の内容を表すストレージイメージを含むイメージファイルをイメージファイル記憶域に登録するステップと、前記イメージファイル記憶域に登録されたイメージファイルと、版更新時点におけるイメージファイルとの差を表す差分情報を含む更新ファイルを取得するステップと、前記イメージファイル記憶域に登録されたイメージファイルの版に対応するファイルシステムに対して前記版更新時点までに実行された各変更イベントを示す変更情報を生成するステップと、を有する。【０１５１】
本発明の版管理システム、方法、及び、プログラムは、特に限定はされないが、仮想マシンについてのイメージファイルを対象とした版管理に用いると、版間の差異を、容易に参照することができる。このため、任意の版のイメージファイルが容易に構築でき、それに基づいて任意の時点におけるコンピュータの状態の再現が容易である。【０１５２】
本発明を特別に示し且つ例示的な実施形態を参照して説明したが、本発明は、その実施形態及びその変形に限定されるものではない。当業者に明らかなように、本発明は、添付の請求の範囲に規定される本発明の精神及び範囲を逸脱することなく、種々の変更が可能である。【０１５３】
本出願は、２００８年６月２０日出願に係る日本特許出願２００８−１６２２３６号を基礎とし且つその優先権を主張するものであり、引用によってその開示の内容の全てを本出願の明細書中に加入する。
【産業上の利用可能性】
【０１５４】
本発明は、ソフトウェア開発において、仮想マシンを用いた試験／評価システムの版管理といった用途に適用できる。また、ソフトウェア実運用環境において、仮想マシンを用いて構築されたシステムの版管理といった用途にも適用できる。
【図１】
2009154272.tif 000003
【図２】
2009154272.tif 000004
【図３】
2009154272.tif 000005
【図４】
2009154272.tif 000006
【図５】
2009154272.tif 000007
【図６】
2009154272.tif 000008
【図７】
2009154272.tif 000009
【図８】
2009154272.tif 000010
【図９】
2009154272.tif 000011
【図１０】
2009154272.tif 000012
【図１１】
2009154272.tif 000013
【図１２】
2009154272.tif 000014
【図１３】
2009154272.tif 000015
【図１４】
2009154272.tif 000016
【図１５】
2009154272.tif 000017
【図１６】
2009154272.tif 000018
【図１７】
2009154272.tif 000019
【図１８】
2009154272.tif 000020
【図１９】
2009154272.tif 000021
【図２０】
2009154272.tif 000022
【国際調査報告】
2009154272.tif 000023
2009154272.tif 000024
2009154272.tif 000025
2009154272.tif 000026