(57)【要約】【課題】物理計算機上で仮想記憶部に係るイメージデータを効率的に管理する。【解決手段】物理計算機において、物理記憶部を複数の物理ブロックに分割して管理し、仮想計算機及び仮想記憶部を構成し、仮想計算機から仮想記憶部として認識される第１のイメージデータを物理記憶部に格納し、仮想計算機において複数の仮想ブロックに分割されて管理されている仮想記憶部であって、当該仮想記憶部における１の仮想ブロックと、当該仮想記憶部に係る第１のイメージデータを構成する１又は２以上の物理ブロックとの対応関係を構成情報として管理する。【選択図】図１
2014225153.tif 000002
【特許請求の範囲】
【請求項１】
物理記憶部を備える物理計算機であって、
前記物理記憶部を複数の物理ブロックに分割して管理する手段と、
仮想的な計算機である仮想計算機及び当該仮想計算機において仮想的な記憶部として認識される仮想記憶部を構成する手段と、
前記仮想計算機から仮想記憶部として認識される第１のイメージデータを前記物理記憶部に格納する手段と、
前記仮想計算機において複数の仮想ブロックに分割されて管理されている仮想記憶部であって、当該仮想記憶部における１の仮想ブロックと、当該仮想記憶部に係る第１のイメージデータを構成する１又は２以上の物理ブロックとの対応関係を構成情報として管理する手段と
を有する物理計算機。
【請求項２】
第１のイメージデータに係る構成情報を複製して、第２のイメージデータを生成する手段と、
当該第２のイメージデータに係る構成情報における仮想ブロックと物理ブロックとの対応関係を、所定の変更情報に基づいて変更する変更手段と、
前記仮想計算機から仮想記憶部として認識されていた前記第１のイメージデータを、当該第２のイメージデータに切り替える切替手段と、をさらに有する
請求項１に記載の物理計算機。
【請求項３】
前記変更情報は、前記第１のイメージデータに対する変更先の仮想ブロック及び変更内容を含む情報を有しており、
前記変更手段は、前記第２のイメージデータに係る構成情報において、前記変更先の仮想ブロックと物理ブロックとの対応関係を変更する
請求項２に記載の物理計算機。
【請求項４】
前記変更情報に基づいて変更先の仮想ブロックに対するデータ更新を要求された場合、前記変更手段は、前記物理記憶部上に新規の物理ブロックを確保し、前記第２のイメージデータに係る構成情報において、変更先の仮想ブロックを前記新規の物理ブロックに対応付けるように変更する
請求項３に記載の物理計算機。
【請求項５】
物理計算機において仮想的な計算機である仮想計算機を管理する方法であって、
前記物理計算機の備える物理記憶部を複数の物理ブロックに分割して管理し、
前記仮想計算機及び当該仮想計算機において仮想的な記憶部として認識される仮想記憶部を構成し、
前記仮想計算機から仮想記憶部として認識される第１のイメージデータを前記物理記憶部に格納し、
前記仮想計算機において複数の仮想ブロックに分割されて管理されている仮想記憶部であって、当該仮想記憶部における１の仮想ブロックと、当該仮想記憶部に係る第１のイメージデータを構成する１又は２以上の物理ブロックとの対応関係を構成情報として管理する
仮想計算機管理方法。
【請求項６】
物理計算機において仮想的な計算機である仮想計算機を管理するためのコンピュータプログラムであって、前記物理計算機に実行されると、
前記物理計算機の備える物理記憶部を複数の物理ブロックに分割して管理し、
前記仮想計算機及び当該仮想計算機において仮想的な記憶部として認識される仮想記憶部を構成し、
前記仮想計算機から仮想記憶部として認識される第１のイメージデータを前記物理記憶部に格納し、
前記仮想計算機において複数の仮想ブロックに分割されて管理されている仮想記憶部であって、当該仮想記憶部における１の仮想ブロックと、当該仮想記憶部に係る第１のイメージデータを構成する１又は２以上の物理ブロックとの対応関係を構成情報として管理する
コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物理計算機、仮想計算機管理方法及びコンピュータプログラムの技術に関する。
【背景技術】
【０００２】
物理計算機上で仮想的な計算機である仮想計算機を動作させる仮想化技術が知られている。仮想計算機は、仮想的なＣＰＵ、仮想的なメモリ及び仮想的な記憶ディスク（以下「仮想ディスク」という）等によって構成されており、仮想ディスクにＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）等をインストールすることもできる。
【０００３】
仮想ディスクは、例えば、物理計算機上では仮想ディスクイメージのファイルとして認識される。よって、物理計算機上で仮想ディスクイメージのファイルを複製しておくことにより、仮想計算機のシステム環境（ＯＳ等）をバックアップすることができる。
【０００４】
バックアップ技術として、ベースとなる仮想ディスクイメージから変更されたデータ（差分データ）のみをバックアップする方法が知られている。例えば、現状の仮想ディスクイメージの一部を差分データで書き換えることにより、ベースとなる仮想ディスクイメージを復元することができる（特許文献１、非特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平９−１０１９１２号公報
【非特許文献】
【０００６】
【非特許文献１】”Ｗｒｉｇｈｔ，  Ｃ．Ｐ．  ａｎｄ  Ｄａｖｅ，  Ｊ．  ａｎｄ  Ｇｕｐｔａ，  Ｐ．  ａｎｄ  Ｋｒｉｓｈｎａｎ，  Ｈ．  ａｎｄ  Ｚａｄｏｋ，  Ｅ．  ａｎｄ  Ｚｕｂａｉｒ，  Ｍ．Ｎ．”，  ２００４，  Ｖｅｒｓａｔｉｌｉｔｙ  ａｎｄ  ｕｎｉｘ  ｓｅｍａｎｔｉｃｓ  ｉｎ  ａ  ｆａｎ−ｏｕｔ  ｕｎｉｆｉｃａｔｉｏｎ  ｆｉｌｅ  ｓｙｓｔｅｍ，  Ｔｅｃｈｎｉｃａｌ  Ｒｅｐｏｒｔ  ＦＳＬ−０４−０１ｂ，  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ  Ｄｅｐａｒｔｍｅｎｔ，  Ｓｔｏｎｙ  Ｂｒｏｏｋ  Ｕｎｉｖｅｒｓｉｔｙ
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、複数の異なる仮想計算機のシステム環境を保持しておき、そのシステム環境を切り替えたいというユーザニーズが存在する。しかし、一般的に仮想ディスクイメージのファイルサイズは大きいので、仮想ディスクイメージを丸ごとコピーしたのでは、物理計算機の物理ディスクの記憶容量を圧迫してしまう。
【０００８】
また、上述において仮想計算機のシステム環境を切り替える場合、例えば、仮想計算機を一旦停止させ、現状の仮想ディスクイメージに差分データを適用した後、仮想計算機を再起動させる。この仮想計算機の停止から再起動までの時間（ダウンタイム）はできるだけ短い方が望ましい。
【０００９】
本発明の目的は、物理計算機上において、複数の異なる仮想ディスクイメージを効率的に管理することにある。本発明の別の目的は、仮想計算機のシステム環境を切り替える際に発生するダウンタイムを短縮することにある。
【課題を解決するための手段】
【００１０】
本発明の一実施形態に係る物理計算機は、物理記憶部を備え、
物理記憶部を複数の物理ブロックに分割して管理する手段と、
仮想的な計算機である仮想計算機及び当該仮想計算機において仮想的な記憶部として認識される仮想記憶部を構成する手段と、
仮想計算機から仮想記憶部として認識される第１のイメージデータを物理記憶部に格納する手段と、
仮想計算機において複数の仮想ブロックに分割されて管理されている仮想記憶部であって、当該仮想記憶部における１の仮想ブロックと、当該仮想記憶部に係る第１のイメージデータを構成する１又は２以上の物理ブロックとの対応関係を構成情報として管理する手段とを有する。
【発明の効果】
【００１１】
本発明によれば、物理計算機上において、複数の異なる仮想ディスクイメージを効率的に管理することができる。また、仮想計算機のシステム環境を切り替える際に発生するダウンタイムを短縮することができる。
【図面の簡単な説明】
【００１２】
【図１】物理計算機の構成例を示す。
【図２】各手段の関係を示す図である。
【図３】物理ディスクと、仮想ディスクとの関係を示す図である。
【図４】切替先仮想ディスクイメージと、切替元仮想ディスクイメージと、差分情報との関係を示す模式図である。
【図５】差分ブロック情報の構成例を示す。
【図６】差分ブロック情報の分類処理の一例を示すフローチャートである。
【図７】仮想ディスク切替手段の処理の一例を示すフローチャートである。
【図８】切替先仮想ディスクイメージの構成情報が生成された場合の模式図である。
【図９】分類１及び分類２の差分ブロック情報が適用された場合の切替先仮想ディスクイメージの構成情報の一例を示す。
【図１０】分類３の差分ブロック情報が適用された場合の切替先仮想ディスクイメージの構成情報の一例を示す。
【図１１】分類４の差分ブロック情報が適用された場合の切替先仮想ディスクイメージの構成情報の一例を示す。
【図１２】分類５の差分ブロック情報が適用された場合の切替先仮想ディスクイメージの構成情報の一例を示す。
【図１３】仮想計算機の仮想ディスクの参照先を、切替先仮想ディスクイメージに切り替えた場合の一例を示す。
【発明を実施するための形態】
【００１３】
以下、異なるシステム環境を有する仮想ディスクイメージを物理計算機上のファイルシステムに係る構成情報を用いて管理する物理計算機の実施形態について、図面を参照しながら説明する。
【００１４】
図１は、物理計算機１０の構成例を示す。
物理計算機１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２１と、メモリ２２と、物理ディスク２３とを備え、各要素は双方向にデータ通信可能なバス２４で接続されている。
【００１５】
ＣＰＵ２１は、物理計算機１０を制御する。ＣＰＵ２１では、例えばＯＳ等の各種コンピュータプログラムが実行され、後述する様々な機能が実現される。ＣＰＵ２１は、メモリ２２に対して、データの読み出し及び書き込みを行う。メモリ２２は、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等によって構成される。ＣＰＵ２１は、物理ディスク２３に対して、データの読み出し及び書き込みを行う。物理ディスク２３は、例えば、フラッシュメモリ２２及び／又はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等によって構成される。
【００１６】
物理計算機１０上のＣＰＵ２１では、例えば、仮想計算機構築手段３４と、差分情報生成手段３１と、差分情報取得手段３２と、仮想ディスク切替手段３３とが実現される。
【００１７】
仮想計算機構築手段３４は、物理計算機１０上に仮想的な計算機である仮想計算機１０１を構築する。仮想計算機１０１は、仮想ＣＰＵ（不図示）、仮想メモリ（不図示）及び仮想ディスク１０２等を有する。その仮想計算機１０１では、物理計算機１０のＯＳとは独立したＯＳ等を実行させることができる。仮想ディスク１０２は、例えば、物理ディスク２３上では仮想ディスクイメージ４２（ファイル）として管理される。つまり、仮想ディスク１０２は、物理計算機１０からは１つのファイルとして認識される。一方、仮想計算機１０１からは、物理ディスク２３を直接認識することはできない。つまり、仮想計算機１０１は、仮想ディスクイメージ４２が物理ディスク２３でどのように管理されているのか、又は物理ディスク２３にどのようなデータが格納されているのかを認識することはできない。
【００１８】
物理計算機１０上のＯＳは、物理ディスク２３の記憶領域を、複数のブロック（以下「物理ブロック」という）に分割して管理する。物理ディスク２３をどのように分割及び管理するかは、ＯＳのファイルシステムによって異なり得る。
【００１９】
図２は、各手段３１〜３４の関係を示す図である。
仮想計算機構築手段３４は、仮想計算機１０１における仮想ディスク１０２の記憶領域を、複数のブロック（以下「仮想ブロック」という）に分割して管理する。つまり、仮想計算機１０１上のＯＳは、仮想ディスク１０２の記憶領域を複数の仮想ブロックに分割して管理する。仮想計算機構築手段３４は、仮想計算機１０１の仮想ディスク１０２における１の仮想ブロックと、当該仮想ディスク１０２に係る仮想ディスクイメージ４２を格納する１又は２以上の物理ブロックとの対応関係を、構成情報４１として管理する。更なる詳細については後述する。
【００２０】
差分情報生成手段３１は、２つの仮想ディスクイメージ４２の間の仮想ブロックにおける差分（差異）の情報である差分情報５１を生成する。例えば、切替元仮想ディスクイメージ４２と、切替先仮想ディスクイメージ４２が存在するとする。ここで、その仮想計算機１０１の有する仮想記憶ディスク１０２を、切替元仮想ディスクイメージ４２から、切替先仮想ディスクイメージ４２に切り替える。この場合、差分情報生成手段３１は、切替先仮想ディスクイメージ４２と切替元仮想ディスクイメージ４２との間の仮想ブロックにおける差分情報５１を生成する。
【００２１】
差分情報生成手段３１は、この生成した差分情報５１を差分情報取得手段３２に渡すとしても良い。差分情報５１は、必ずしも２つの仮想ディスクイメージ４２を比較して生成されなくても良い。例えば、或る時点から仮想計算機１０１上で変更された仮想ブロックを記録しておき、その記録に基づいて差分情報５１が生成されても良い。差分情報５１は、ユーザによって手動で生成されても良い。差分情報生成手段３１は、仮想ディスク１０２として現用されている仮想ディスクイメージ４２を切替前仮想ディスクイメージ４２とし、以前にバックアップされた仮想ディスクイメージ４２を切替後仮想ディスクイメージ４２としても良い。更なる詳細については後述する。
【００２２】
差分情報取得手段３２は、差分情報生成手段３１において生成された差分情報５１を取得する。図１では、差分情報生成手段３１と差分情報取得手段３２とが同じ物理計算機１０上で実行されているが、差分情報生成手段３１が他の物理計算機上で実行されても良い。例えば、他の物理計算機上の差分情報生成手段３１が差分情報５１を生成し、所定の通信ネットワークを介して当該物理計算機１０に送信するとしても良い。そして、当該物理計算機１０上の差分情報取得手段３２が、その送信された差分情報５１を受信するとしても良い。
【００２３】
差分情報取得手段３２は、仮想ディスク切替手段３３に対して、その取得した差分情報５１と共に仮想ディスク切替命令５２を渡しても良い。
【００２４】
仮想ディスク切替手段３３は、差分情報取得手段３２で取得した差分情報５１と、切替元仮想ディスクイメージ４２に係る構成情報４１とに基づいて、切替先仮想ディスクイメージ４２に係る構成情報４１を生成する。仮想ディスク切替手段３３は、仮想計算機１０１の仮想ディスク１０２として認識される参照先を、切替元仮想ディスクイメージ４２から切替先仮想ディスクイメージ４２に切り替える。
【００２５】
仮想計算機構築手段３４は、仮想ディスク切替手段３３によって切り替えられた切替先仮想ディスクイメージ４２を仮想ディスク１０２の参照先として、仮想計算機１０１を起動させる。
【００２６】
仮想ディスク切替手段３３は、切替元仮想ディスクイメージ４２に係る構成情報を複製して、切替先仮想ディスクイメージ４２を生成し、切替先仮想ディスクイメージ４２に係る構成情報４１における仮想ブロックと物理ブロックとの対応関係を、差分情報５１に基づいて変更しても良い。
【００２７】
差分情報５１は、切替元仮想ディスクイメージ４２に対する変更先の仮想ブロック及び変更内容を含む情報を有しており、仮想ディスク切替手段３３は、切替先仮想ディスクイメージ４２に係る構成情報４１において、変更先の仮想ブロックと物理ブロックとの対応関係を変更しても良い。
【００２８】
差分情報５１に基づいて変更先の仮想ブロックに対するデータ更新を要求された場合、仮想ディスク切替手段３３は、物理ディスク２３上に新規の物理ブロックを確保し、切替先仮想ディスクイメージ４２に係る構成情報４１において、変更先の仮想ブロックを新規の物理ブロックに対応付けるように変更しても良い。
【００２９】
上述によれば、構成情報を複製（コピー）したとしても、物理ディスク２３に格納されているデータの実体はコピーされないので、物理ディスク２３上の記憶容量を圧迫することなく、複数の異なる仮想ディスクイメージ４２を管理することができる。また、切替先仮想ディスクイメージ４２に係る構成情報を、差分情報５１で指定された変更先の仮想ブロックのみ変更すれば良いので、仮想計算機１０１の仮想ディスク１０２の参照先を、切替元仮想ディスクイメージ４２から切替先仮想ディスクイメージ４２へ切り替える際のダウンタイムを短縮することができる。
【００３０】
なお、ＵｎｉｏｎＦＳのように、２つのファイルシステムを重ね合わせて１つのファイルシステムを構築する技術が存在する。この技術によれば、仮想計算機１０１上で現状のファイルシステム（つまり、仮想ディスクに含まれるデータ）に他のファイルシステムを重ね合わせて切替先となるファイルシステムを構築し、システム環境を切り替えることができる。しかし、この処理は仮想計算機１０１上で実行されるものである。よって、仮に仮想計算機１０１のシステム環境が不安定になってしまった場合、この技術によってはシステム環境を切り替えられない虞がある。これに対して、本実施形態に係る処理は、物理計算機１０上で実行されるので、仮に仮想計算機１０１のシステム環境が不安定になったとしても、仮想計算機１０１のシステム環境を切り替えることができる。
【００３１】
図３は、物理ディスク２３と、仮想ディスク１０２との関係を示す図である。
物理計算機１０上で稼働しているＯＳは、例えば、物理ディスク２３の記憶領域を、所定サイズの複数の物理ブロックに分割して管理する。
【００３２】
また、仮想計算機１０１上で稼働しているＯＳも、仮想ディスクの記憶領域を、所定サイズの複数の仮想ブロックに分割して管理する。
【００３３】
仮想計算機構築手段３４（又は仮想計算機１０１）は、１の仮想ブロックが１又は２以上の物理ブロックに対応するように仮想ディスクイメージ４２（又は仮想ディスク１０２）を構築する（図３の仮想ディスク（１）及び（２）参照）。仮想計算機構築手段３４（又は仮想計算機１０１）は、２以上の仮想ブロックが１の物理ブロックに対応するようには仮想ディスクイメージ４２（又は仮想ディスク１０２）を構築しない（図３の仮想ディスク（ＮＧ）参照）。
【００３４】
つまり、仮想計算機構築手段３４（又は仮想計算機１０１）は、仮想ディスクイメージ４２（又は仮想ディスク１０２）の仮想ブロックの境界が、物理ディスク２３上の物理ブロックの何れかの境界に一致するように仮想ディスクイメージ４２（又は仮想ディスク１０２）を構築する。
【００３５】
仮想ブロックに格納されているデータの実体は、その仮想ブロックに対応する１又は２以上の物理ブロックに格納される（図３の物理ディスク２３参照）。つまり、仮想計算機１０１上のＯＳが仮想ディスク内の或る仮想ブロックにアクセス（データのリード及びライト等）する場合、実際にはその仮想ブロックに対応する物理ブロックにアクセスしていることとなる。
【００３６】
図４は、切替先仮想ディスクイメージ４２と、切替元仮想ディスクイメージ４２と、差分情報５１との関係を示す模式図である。
【００３７】
物理計算機１０上の差分情報生成手段３１は、切替元仮想ディスクイメージ４２と、切替先仮想ディスクイメージ４２との間の差分情報５１を抽出する。差分情報５１の生成方法の詳細については後述するが、例えば、切替先仮想ディスクイメージ４２の仮想ブロック＃３の有するデータは「Ｂ」であり、切替元仮想ディスクイメージ４２の仮想ブロック＃３の有するデータは「Ｚ」である場合、この差分ブロック情報５００（図５参照）を「Ｂ」としても良い。
【００３８】
差分情報生成手段３１は、仮想ブロック間の差分（差異）に基づいて、差分ブロック情報５００を以下のように分類する。なお、以下において仮想計算機１０１のシステム環境を「仮想システム環境」という場合がある。
【００３９】
分類１：切替元仮想ディスクイメージ４２から切替先仮想ディスクイメージ４２に切り替わる際に、データが変更されない仮想ブロックが該当し得る。例えば、仮想システム環境においても共通するデータを有する仮想ブロックはこれに該当し得る。又は、切替先仮想ディスクイメージ４２への切り替える後に不要となるデータを有する仮想ブロックもこれに該当し得る。又は、切替元仮想ディスクイメージ４２から切替先仮想ディスクイメージ４２へ引き継ぎたいデータ（例えば、所定の設定ファイル等）を有する仮想ブロックもこれに該当し得る。
【００４０】
分類２：切替元仮想ディスクイメージ４２から切替先仮想ディスクイメージ４２に切り替わる際に、データが変更される仮想ブロックが該当し得る。例えば、各々の仮想システム環境で異なり得るデータ（例えば、ファイルシステムに関するメタデータ等）を有する仮想ブロックはこれに該当し得る。
【００４１】
分類３：切替元仮想ディスクイメージ４２から切替先仮想ディスクイメージ４２に切り替わる際に、新たに追加され且つデータの格納される仮想ブロックが該当し得る。例えば、切替元の仮想システム環境では不要であり、切替先の仮想システム環境では必要なデータを格納する仮想ブロックはこれに該当し得る。
【００４２】
分類４：切替元仮想ディスクイメージ４２から切替先仮想ディスクイメージ４２に切り替わる際に、新たに追加されるもののデータは格納されない仮想ブロックが該当し得る。例えば、切替元の仮想システム環境に係る仮想ディスクの記憶容量に対して、切替先の仮想システム環境に係る仮想ディスクの記憶容量が大きい場合、一部の仮想ブロックはこれに該当し得る。
【００４３】
分類５：切替元仮想ディスクイメージ４２から切替先仮想ディスクイメージ４２に切り替わる際に、削除される仮想ブロックが該当し得る。例えば、切替元の仮想システム環境に係る仮想ディスクの記憶容量に対して、切替先の仮想システム環境に係る仮想ディスクの記憶容量が小さい場合、一部の仮想ブロックはこれに該当し得る。
【００４４】
図５は、差分ブロック情報５００の構成例を示す。
差分ブロック情報５００は、項目として、分類番号５０１と、オフセット値５０２と、連続ブロック数５０３と、差分データ５０４とを有する。
【００４５】
分類番号５０１には、当該差分ブロック情報５００を分類するための番号が格納される。分類番号５０１には、例えば、上記で説明した分類１〜分類５の何れかの番号が格納される。
【００４６】
オフセット値５０２には、仮想ディスクイメージ４２の先頭から見た当該差分データ５０４の格納位置（順番又はアドレス等）を示す情報が格納される。
【００４７】
連続ブロック数５０３には、当該差分データ５０４のブロック数（又はデータサイズ等）が格納される。
【００４８】
差分データ５０４には、比較された仮想ブロック間における切替先のデータが格納される。分類番号５０１が「１」、「４」又は「５」の場合、この差分データ５０４には何も格納されないとしても良い。
【００４９】
差分情報生成手段３１は、分類１に属する差分ブロック情報５００を、差分情報取得手段３２に渡さなくても良い。なぜなら、分類１に属する差分ブロック情報５００は、後述する仮想ディスク切替手段３３において何ら処理されなくても良いからである（図７参照）。
【００５０】
図６は、差分ブロック情報５００の分類処理の一例を示すフローチャートである。
当該分類処理は、例えば、差分情報生成手段３１によって実行される。
【００５１】
差分情報生成手段３１は、切替先仮想ブロックと切替元仮想ブロックとを比較し、切替先仮想ブロックの切替元仮想ブロックに対する差分（差異）を判定する（Ｓ１０１）。
差分情報生成手段３１は、切替先仮想ブロックに新規物理ブロックを割り当てる必要があるか否かを判定する（Ｓ１０２）。
【００５２】
以下、切替先仮想ブロックに新規物理ブロックを割り当てる必要がある場合（Ｓ１０２：ＹＥＳ）について説明する。
差分情報生成手段３１は、新規物理ブロックにデータを書き込む必要があるか否かを判定する（Ｓ１１１）。
データを書き込む必要がない場合（Ｓ１１１：ＮＯ）、差分情報生成手段３１は、当該差分ブロック情報５００を分類４に分類し（Ｓ１１３）、処理を終了する（終了）。
データを書き込む必要がある場合（Ｓ１１１：ＹＥＳ）、差分情報生成手段３１は、当該差分ブロック情報５００を分類３に分類し、処理を終了する（終了）。
【００５３】
以下、切替先仮想ブロックに新規物理ブロックを割り当てることは不要である場合（Ｓ１０２：ＮＯ）について説明する。
差分情報生成手段３１は、切替先仮想ブロックの削除が必要であるか否かを判定する（Ｓ１０３）。
削除が必要な場合（Ｓ１０３：ＹＥＳ）、差分情報生成手段３１は、当該差分ブロック情報５００を分類５に分類し（Ｓ１０７）、処理を終了する（終了）。
削除が不要な場合（Ｓ１０３：ＮＯ）、差分情報生成手段３１は、切替先仮想ブロックのデータ変更が必要であるか否かを判定する（Ｓ１０４）。
データ変更が必要である場合（Ｓ１０４：ＹＥＳ）、差分情報生成手段３１は、当該差分ブロック情報５００を分類２に分類し（Ｓ１０５）、処理を終了する（終了）。
データ変更が不要である場合（Ｓ１０４：ＮＯ）、差分情報生成手段３１は、当該差分ブロック情報５００を分類１に分類し（Ｓ１０８）、処理を終了する（終了）。
【００５４】
差分情報生成手段３１は、仮想計算機１０１からアクセス頻度の高い仮想ブロックに格納されているデータであって、物理ディスク２３のフラグメンテーションによるパフォーマンス低下が懸念される場合、上述の処理に次のような処理を組み込んでも良い。つまり、差分情報生成手段３１は、仮想ディスクイメージ４２を切り替える際、アクセス頻度の高い仮想ブロックに係る差分ブロック情報５００を適切に分類３又は分類５に分類し、その仮想ブロックに係るデータが物理ブロックにおいて連続的になるようにしても良い。
【００５５】
上述の差分ブロック情報５００の分類は、仮想計算機１０１で実行される仮想システム環境を切り替えるユーザ（管理者）によって手動で行われても良い。上述の差分ブロック情報５００の分類は、仮想システムの切替元と切替先との間のインストール用マスターディスクの差分、更新日時、及び仮想ディスクイメージ４２内のファイルの種類（属性）等に基づいて判定されても良い。
【００５６】
差分情報生成手段３１は、稼動中の仮想計算機１０１に使用されている仮想ディスク１０２を切替元仮想ディスクイメージ４２とする場合、切替元仮想ディスクイメージ４２から順次仮想ブロックを読み出して、切替先仮想ディスクイメージ４２の仮想ブロックと比較しても良い。
【００５７】
図７は、仮想ディスク切替手段３３の処理の一例を示すフローチャートである。
図８は、切替先仮想ディスクイメージ４２の構成情報４１が生成された場合の模式図である。
図９は、分類１及び分類２の差分ブロック情報５００が適用された場合の切替先仮想ディスクイメージ４２の構成情報４１の一例を示す。
図１０は、分類３の差分ブロック情報５００が適用された場合の切替先仮想ディスクイメージ４２の構成情報４１の一例を示す。
図１１は、分類４の差分ブロック情報５００が適用された場合の切替先仮想ディスクイメージ４２の構成情報４１の一例を示す。
図１２は、分類５の差分ブロック情報５００が適用された場合の切替先仮想ディスクイメージ４２の構成情報４１の一例を示す。
図１３は、仮想計算機１０１の仮想ディスクの参照先を、切替先仮想ディスクイメージ４２に切り替えた場合の一例を示す。
以下、図７〜１３を参照しながら、仮想ディスク切替手段３３の処理の一例を説明する。
【００５８】
仮想ディスク切替手段３３は、切替元仮想ディスクイメージ４２の構成情報（以下「切替元構成情報」という）４１ａを複製（コピー）し、切替先仮想ディスクイメージ４２の構成情報（以下「切替先構成情報」という）４１ｂを生成する（Ｓ２０１）。
【００５９】
例えば、図８に示すように、切替元構成情報４１ａにおける仮想ブロック＃１、＃２、＃３、＃６の参照先が、それぞれ物理ブロック＃１、＃２、＃３、＃６であるとする。ここで、切替元構成情報４１ａを複製して切替先構成情報４１ｂが生成されたとする（３０１）。この切替先構成情報４１ｂにおける仮想ブロック＃１、＃２、＃３、＃６の参照先もまた、それぞれ物理ブロック＃１、＃２、＃３、＃６である。つまり、切替元構成情報４１ａと切替先構成情報４１ｂとは、この時点において、同一の物理ブロックを参照先としている。
【００６０】
よって、物理計算機１０上のＯＳは、切替元仮想ディスクイメージ４２と切替先仮想ディスクイメージ４２とを別々のファイルとして管理しつつ、実体として同じ物理ブロックを参照するファイルとして管理する。したがって、その複製された切替先仮想ディスクイメージ４２は、物理ディスク２３の容量をほとんど消費しない。
【００６１】
次に、仮想ディスク切替手段３３は、処理対象とする差分ブロック情報５００を１つ取得する（Ｓ２０２）。
そして、仮想ディスク切替手段３３は、差分ブロック情報５００が何れの分類番号５０１を有するかを判定する（Ｓ２０３）。分類番号５０１が「１」である場合、仮想ディスク切替手段３３は、何もせずにステップＳ２５０に進んでも良い（不図示）。又は、上述のように、差分情報生成手段３１は分類番号５０１が「１」の差分ブロック情報５００を差分情報取得手段３２に渡さないとしたならば、このステップＳ２０３において、分類番号５０１が「１」である場合は発生しない。
【００６２】
以下、分類番号５０１が「２」の場合（Ｓ２０３：分類２）について説明する。
仮想ディスク切替手段３３は、新規物理ブロックを確保する（Ｓ２１１）。例えば、図９に示すように、仮想ブロック＃３に対する差分ブロック情報５００が「分類２」であった場合（３１１）、仮想ディスク切替手段３３は、新規物理ブロック＃４を確保する（３１２）。
そして、仮想ディスク切替手段３３は、差分ブロック情報５００に係る切替先仮想ブロックの参照先を、その新規物理ブロックに変更する（Ｓ２１２）。例えば、図９に示すように、切替先仮想ブロック＃３の参照先を、物理ブロック＃３から物理ブロック＃４に変更する（３１３）。
そして、仮想ディスク切替手段３３は、切替先仮想ブロックの参照先である物理ブロックに差分データ５０４を書き込み（Ｓ２１３）、ステップＳ２５０へ進む。例えば、図９に示すように、差分データ５０４「Ｂ」を切替先仮想ブロック＃３の参照先である物理ブロック＃４に書き込む。
【００６３】
以下、分類番号５０１が「３」の場合（Ｓ２０３：分類３）について説明する。
仮想ディスク切替手段３３は、新規物理ブロックを確保する（Ｓ２２１）。例えば、図１０に示すように、仮想ブロック＃４に対する差分ブロック情報５００が「分類３」であった場合（３２１）、仮想ディスク切替手段３３は、新規物理ブロック＃７を確保する（３２２）。
そして、仮想ディスク切替手段３３は、差分ブロック情報５００に係る切替先仮想ブロックの参照先を、その新規物理ブロックに設定する（Ｓ２２２）。例えば、図１０に示すように、切替先仮想ブロック＃４の参照先を、物理ブロック＃７に設定する（３２３）。
そして、仮想ディスク切替手段３３は、切替先仮想ブロックの参照先である物理ブロックに差分データ５０４を書き込み（Ｓ２２３）、ステップＳ２５０へ進む。例えば、図１０に示すように、差分データ５０４「Ｃ」を切替先仮想ブロック＃４の参照先である物理ブロック＃７に書き込む。
【００６４】
以下、分類番号５０１が「４」の場合（Ｓ２０３：分類４）について説明する。
仮想ディスク切替手段３３は、新規物理ブロックを確保する（Ｓ２３１）。例えば、図１１に示すように、仮想ブロック＃４に対する差分ブロック情報５００が「分類４」であった場合（３３１）、仮想ディスク切替手段３３は、新規物理ブロック＃５を確保する（３３２）。
そして、仮想ディスク切替手段３３は、差分ブロック情報５００に係る切替先仮想ブロックの参照先を、その新規物理ブロックに設定し（Ｓ２３２）、ステップＳ２５０へ進む。例えば、図１１に示すように、切替先仮想ブロック＃５の参照先を、物理ブロック＃５に設定する（３３３）。
【００６５】
以下、分類番号が「５」の場合（Ｓ２０３：分類５）について説明する。
仮想ディスク切替手段３３は、差分ブロック情報５００に係る切替先仮想ブロックの参照先を削除し（Ｓ２４１）、ステップＳ２５０へ進む。例えば、図１２に示すように、仮想ブロック＃６に対する差分ブロック情報５００が「分類５」であった場合（３４１）、仮想ディスク切替手段３３は、切替先仮想ブロック＃６の物理ブロック＃６への参照先を削除する（３４２）。
【００６６】
次に、ステップＳ２５０以降の処理を説明する。仮想ディスク切替手段３３は、未処理の差分ブロック情報５００が存在するか否かを判定する（Ｓ２５０）。
【００６７】
未処理の差分ブロック情報５００が残っている場合（Ｓ２５０：ＹＥＳ）、仮想ディスク切替手段３３は、ステップＳ２０２へ戻り、未処理の差分ブロック情報５００について上記と同様の処理を行う。
【００６８】
未処理の差分ブロック情報５００が残っていない場合（Ｓ２５０：ＮＯ）、仮想ディスク切替手段３３は、仮想計算機１０１の仮想ディスクの参照先を、切替元仮想ディスクイメージ４２から切替先仮想ディスクイメージ４２に切り替え（Ｓ２５１）、当該処理を終了する（終了）。例えば、図１３に示すように、仮想計算機１０１の仮想ディスクの参照先を、切替元構成情報４１ａに係る切替元仮想ディスクイメージ４２から、切替先構成情報４１ｂに係る切替先仮想ディスクイメージ４２へ切り替える（３５１）。
【００６９】
以上の処理により、仮想計算機１０１で稼働させるシステム環境を、切替元仮想ディスク１０２に係る仮想システム環境から、切替先仮想ディスク１０２に係る仮想システム環境へ切り替えることができる。
【００７０】
上述した実施形態は例示であり、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。
【符号の説明】
【００７１】
１０…物理計算機  ２３…物理ディスク  ４２…仮想ディスクイメージ  １０１…仮想計算機  １０２…仮想ディスク
【図１】
2014225153.tif 000003
【図２】
2014225153.tif 000004
【図３】
2014225153.tif 000005
【図４】
2014225153.tif 000006
【図５】
2014225153.tif 000007
【図６】
2014225153.tif 000008
【図７】
2014225153.tif 000009
【図８】
2014225153.tif 000010
【図９】
2014225153.tif 000011
【図１０】
2014225153.tif 000012
【図１１】
2014225153.tif 000013
【図１２】
2014225153.tif 000014
【図１３】
2014225153.tif 000015