(57)【要約】【課題】仮想マシンの稼働に要する情報を共有する複数の物理マシン同士を通信可能に接続する通信ネットワークへの負荷を抑制できる仮想マシン制御システムを提供する。【解決手段】仮想マシン９１０は、仮想マシン９１０で使用される情報である仮想情報を仮想情報が一時的に使用される情報であるか否かを示す情報と共に記憶する仮想記憶部９１１を有し、仮想マシン９１０が稼働する物理マシン９２０は、仮想記憶部９１１を構成する情報を仮想記憶情報として記憶する記憶部９２１と、仮想情報の更新内容を記憶部９２１に記憶されている仮想記憶情報に反映する反映部９２２と、一時的に使用されない仮想情報の更新内容のみを他の物理マシンに記憶されている仮想記憶情報に反映させるように他の物理マシンに指示する指示部９２３とを有する。【選択図】図６
2019053492.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンが稼働する物理マシンが少なくとも１つ含まれる複数の物理マシンで構成される仮想マシン制御システムであって、
前記仮想マシンは、
前記仮想マシンで使用される情報である仮想情報を前記仮想情報が一時的に使用される情報であるか否かを示す情報と共に記憶する仮想記憶部を有し、
前記仮想マシンが稼働する物理マシンは、
前記仮想記憶部を構成する情報を仮想記憶情報として記憶する記憶部と、
仮想情報の更新内容を前記記憶部に記憶されている仮想記憶情報に反映する反映部と、
一時的に使用されない仮想情報の更新内容のみを他の物理マシンに記憶されている仮想記憶情報に反映させるように前記他の物理マシンに指示する指示部とを有する
ことを特徴とする仮想マシン制御システム。
【請求項２】
仮想マシンは、仮想情報を制御する制御部を有し、
前記制御部は、仮想情報の取得要求を発行し、
反映部は、
発行された取得要求に基づいて仮想記憶情報のうちの取得対象の情報を取得し、
取得された取得対象の情報を前記制御部に入力する
請求項１記載の仮想マシン制御システム。
【請求項３】
制御部は、仮想マシンが起動した後に更新されていない一時的に使用される仮想情報の取得要求を発行する前に前記仮想情報の初期化要求を発行し、
反映部は、発行された初期化要求に基づいて仮想記憶情報のうちの取得対象の情報を初期化する
請求項２記載の仮想マシン制御システム。
【請求項４】
反映部は、記憶部に記憶されている仮想記憶情報に対する初期化を省略する
請求項３記載の仮想マシン制御システム。
【請求項５】
仮想マシンが稼働する物理マシンは、他の物理マシンと通信ネットワークを介して通信可能に接続されている
請求項１から請求項４のうちのいずれか１項に記載の仮想マシン制御システム。
【請求項６】
仮想マシンが稼働する物理マシンが少なくとも１つ含まれる複数の物理マシンで構成される仮想マシン制御システムにおいて実行される仮想マシン制御方法であって、
前記仮想マシンは、
前記仮想マシンで使用される情報である仮想情報を前記仮想情報が一時的に使用される情報であるか否かを示す情報と共に記憶し、
前記仮想マシンが稼働する物理マシンは、
前記仮想マシンに記憶されている情報を構成する情報を仮想記憶情報として記憶し、
仮想情報の更新内容を記憶されている仮想記憶情報に反映し、
一時的に使用されない仮想情報の更新内容のみを他の物理マシンに記憶されている仮想記憶情報に反映させるように前記他の物理マシンに指示する
ことを特徴とする仮想マシン制御方法。
【請求項７】
仮想マシンは、仮想情報の取得要求を発行し、
前記仮想マシンが稼働する物理マシンは、
発行された取得要求に基づいて仮想記憶情報のうちの取得対象の情報を取得し、
取得された取得対象の情報を前記仮想マシンに入力する
請求項６記載の仮想マシン制御方法。
【請求項８】
仮想マシンは、前記仮想マシンが起動した後に更新された一時的に使用される仮想情報の取得要求を発行する前に前記仮想情報の初期化要求を発行し、
前記仮想マシンが稼働する物理マシンは、発行された初期化要求に基づいて仮想記憶情報のうちの取得対象の情報を初期化する
請求項７記載の仮想マシン制御方法。
【請求項９】
仮想マシンが稼働する物理マシンは、前記物理マシンに記憶されている仮想記憶情報に対する初期化を省略する
請求項８記載の仮想マシン制御方法。
【請求項１０】
仮想マシンが稼働する物理マシンは、他の物理マシンと通信ネットワークを介して通信可能に接続されている
請求項６から請求項９のうちのいずれか１項に記載の仮想マシン制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想マシン制御システムおよび仮想マシン制御方法に関し、特に仮想マシンが有するディスクを構成する情報の同期処理を制御する仮想マシン制御システムおよび仮想マシン制御方法に関する。
【背景技術】
【０００２】
仮想マシンが稼働する環境（以下、仮想マシン環境という。）を複数の物理マシンで構成する技術がある。仮想マシン環境が複数の物理マシンで構成されていると、仮想マシンが稼働する物理マシンに負荷や障害による影響が生じても、仮想マシンは、他の物理マシンに再配置されることによって継続して稼働できる可能性がある。
【０００３】
上記のように他の物理マシンに再配置された仮想マシンが継続して稼働するためには、例えば複数の物理マシンが同一の仮想ディスクに記憶されている情報にアクセスできるような構成が仮想マシン環境に求められる。構成が実現されるために、例えば、仮想マシン環境に共有ディスク装置が導入される。
【０００４】
しかし、仮想マシン環境に共有ディスク装置が導入されると、小規模な仮想マシン環境の構築は困難になる。よって、小規模な仮想マシン環境を構築するために、共有ディスク装置を利用せず、例えば仮想マシンが有するディスクである仮想ディスクを構成する情報（以下、仮想ディスク情報という。）を複数の物理マシンに配置する方法が使用される。
【０００５】
上記の方法では、複数の物理マシンに配置されている各仮想ディスク情報に仮想マシンからの書き込み要求の内容が反映される。すなわち、仮想マシンの管理者は、仮想マシンが稼働する物理マシンで障害等が発生しても、仮想マシンを新たな物理マシンに移動させることによって、移動させた物理マシンにおいて仮想マシンを継続して稼働させることができる。
【０００６】
上記のような共有ディスク装置が導入されずに、仮想マシン環境が複数の物理マシンで構成される方式が利用されている。また、通信ネットワーク技術の高度化および高速化に伴い、上記の方式は、比較的大規模な仮想マシン環境の構築にも利用されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第５４７１６７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述したように、複数の物理マシンで構成される仮想マシン環境では、仮想マシンが稼働する物理マシンで故障等が発生したために仮想マシンが継続して稼働できない場合であっても、仮想マシンは、他の物理マシンにおいて再起動できる。再起動した仮想マシンは、他の物理マシンにおいて継続して稼働できる。
【０００９】
また、共有ディスク装置が導入されずに仮想マシン環境が複数の物理マシンで構成されるためには、仮想マシンが有する仮想ディスクを構成する情報である仮想ディスク情報が複数の物理マシンに共有されていることが求められる。
【００１０】
仮想ディスク情報が複数の物理マシンに共有されている場合、例えば仮想ディスクに対する書き込み要求が通信ネットワーク等を介して他の物理マシンに転送される。転送されることによって、書き込み要求が複数の物理マシンに共有される。
【００１１】
上記の方法では、書き込み要求の内容等の仮想ディスク情報に対する変更内容が全て複数の物理マシンに共有される。しかし、仮想ディスク情報に対する変更内容には、仮想マシンの再起動に不要な内容も存在する。すなわち、仮想ディスク情報に対する全ての変更内容が複数の物理マシンに共有される方法は、効率の低い方法である。
【００１２】
また、各仮想ディスク情報の内容を常に同期させる方法が取られると、物理マシン同士を通信可能に接続する通信ネットワークへの負荷が高まる可能性がある。通信ネットワークへの負荷が高まると、物理マシンの応答性が悪化するという問題が生じる恐れがある。
【００１３】
よって、通信ネットワークへの負荷を抑えつつ、安全に仮想ディスク情報の内容を同期させることができる方法が求められている。上記の方法が実現されるために、例えば仮想ディスク情報に対する変更内容のうち、共有される変更内容が選別されることが考えられる。
【００１４】
特許文献１には、仮想マシンが有する仮想ディスクを制御する仮想ディスク制御システムが記載されている。特許文献１に記載されている仮想ディスク制御システムは、ゲストOS(Operating System)に依らずに仮想化環境において物理メモリを有効に活用できるシステムである。しかし、特許文献１に記載されている仮想ディスク制御システムでは、仮想ディスク情報に対する変更内容のうち、共有される変更内容が選別されることは想定されていない。
【００１５】
［発明の目的］
そこで、本発明は、上述した課題を解決する、仮想マシンの稼働に要する情報を共有する複数の物理マシン同士を通信可能に接続する通信ネットワークへの負荷を抑制できる仮想マシン制御システムおよび仮想マシン制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明による仮想マシン制御システムは、仮想マシンが稼働する物理マシンが少なくとも１つ含まれる複数の物理マシンで構成される仮想マシン制御システムであって、仮想マシンは、仮想マシンで使用される情報である仮想情報を仮想情報が一時的に使用される情報であるか否かを示す情報と共に記憶する仮想記憶部を有し、仮想マシンが稼働する物理マシンは、仮想記憶部を構成する情報を仮想記憶情報として記憶する記憶部と、仮想情報の更新内容を記憶部に記憶されている仮想記憶情報に反映する反映部と、一時的に使用されない仮想情報の更新内容のみを他の物理マシンに記憶されている仮想記憶情報に反映させるように他の物理マシンに指示する指示部とを有することを特徴とする。
【００１７】
本発明による仮想マシン制御方法は、仮想マシンが稼働する物理マシンが少なくとも１つ含まれる複数の物理マシンで構成される仮想マシン制御システムにおいて実行される仮想マシン制御方法であって、仮想マシンは、仮想マシンで使用される情報である仮想情報を仮想情報が一時的に使用される情報であるか否かを示す情報と共に記憶し、仮想マシンが稼働する物理マシンは、仮想マシンに記憶されている情報を構成する情報を仮想記憶情報として記憶し、仮想情報の更新内容を記憶されている仮想記憶情報に反映し、一時的に使用されない仮想情報の更新内容のみを他の物理マシンに記憶されている仮想記憶情報に反映させるように他の物理マシンに指示することを特徴とする。
【発明の効果】
【００１８】
本発明によれば、仮想マシンの稼働に要する情報を共有する複数の物理マシン同士を通信可能に接続する通信ネットワークへの負荷を抑制できる。
【図面の簡単な説明】
【００１９】
【図１】本発明による仮想マシンシステムの第１の実施形態の構成例を示すブロック図である。
【図２】第１の実施形態の物理マシン１００および物理マシン１１０の構成例を示すブロック図である。
【図３】仮想ディスク部１２３に記憶されている記憶管理情報の例を示す説明図である。
【図４】第１の実施形態の仮想マシンシステム１０による記憶情報更新処理の動作を示すフローチャートである。
【図５】第１の実施形態の仮想マシンシステム１０による記憶情報取得処理の動作を示すフローチャートである。
【図６】本発明による仮想マシン制御システムの概要を示すブロック図である。
【発明を実施するための形態】
【００２０】
実施形態１．
［構成の説明］
以下、本発明の実施形態を、図面を参照して説明する。図１は、本発明による仮想マシンシステムの第１の実施形態の構成例を示すブロック図である。
【００２１】
本実施形態の仮想マシンシステム１０は、共有ディスク装置を有さない複数の物理マシンで構成される仮想マシン環境において、複数の物理マシンに仮想ディスク情報が共有される場合の通信ネットワークへの負荷、および仮想マシンのディスクへの負荷を軽減できる。また、仮想マシンシステム１０は、仮想マシンの応答性も改善できる。
【００２２】
図１に示すように、本実施形態の仮想マシンシステム１０は、物理マシン１００と、物理マシン１１０と、通信ネットワーク２００とを含む。なお、仮想マシンシステム１０は、物理マシンを３台以上含んでもよい。
【００２３】
また、図１に示すように、物理マシン１００および物理マシン１１０では、それぞれ仮想マシンが稼働する。また、通信ネットワーク２００は、物理マシン１００と物理マシン１１０を通信可能に接続する。
【００２４】
また、図１に示すように、本実施形態の物理マシン１００は、制御部１０１と、ディスク制御部１０２と、ディスク部１０３と、通信制御部１０４と、仮想マシン１２０と、仮想マシン１３０と、仮想マシン１４０とを有する。
【００２５】
なお、物理マシン１００は、仮想マシンを１台以上有する。すなわち、物理マシン１００が有する仮想マシンの台数は、図１に示す３台に限られない。
【００２６】
また、図１に示すように、本実施形態の物理マシン１１０は、制御部１１１と、ディスク制御部１１２と、ディスク部１１３と、通信制御部１１４と、仮想マシン１５０と、仮想マシン１６０と、仮想マシン１７０とを有する。
【００２７】
すなわち、物理マシン１１０の構成は、物理マシン１００の構成と同様である。なお、物理マシン１１０が有する仮想マシンの台数は、図１に示す３台に限られない。また、物理マシン１１０は、仮想マシンを有していなくてもよい。
【００２８】
制御部１０１は、各仮想マシンの動作、およびディスク部１０３へのディスク制御部１０２による操作を制御する機能を有する。また、制御部１０１は、通信制御部１０４を介して他の物理マシンが有する制御部と通信できる。また、制御部１１１は、制御部１０１が有する機能と同様の機能を有する。
【００２９】
ディスク制御部１０２は、ディスク部１０３に記憶されている情報を操作する機能を有する。また、ディスク制御部１１２は、ディスク制御部１０２が有する機能と同様の機能を有する。
【００３０】
ディスク部１０３は、後述する仮想マシンが有する仮想ディスク部を構成する実データ（仮想ディスク情報）を記憶する機能を有する。また、ディスク部１１３は、ディスク部１０３が有する機能と同様の機能を有する。
【００３１】
通信制御部１０４は、通信ネットワーク２００を介して物理マシン１１０と通信する機能を有する。また、通信制御部１１４は、通信制御部１０４が有する機能と同様の機能を有する。
【００３２】
図２は、第１の実施形態の物理マシン１００および物理マシン１１０の構成例を示すブロック図である。便宜上、図２に示す物理マシン１００には、仮想マシン１２０のみが記載されている。また、便宜上、図２に示す物理マシン１１０には、仮想マシンが記載されていない。
【００３３】
図２に示すように、仮想マシン１２０は、仮想制御部１２１と、仮想ディスク制御部１２２と、仮想ディスク部１２３とを有する。
【００３４】
また、仮想マシン１３０、仮想マシン１４０、仮想マシン１５０、仮想マシン１６０、および仮想マシン１７０の各構成は、仮想マシン１２０の構成とそれぞれ同様である。なお、物理マシンは、構成が仮想マシン１２０の構成と異なる仮想マシンを有してもよい。
【００３５】
仮想制御部１２１は、仮想マシン１２０の動作を制御する機能を有する。また、仮想ディスク制御部１２２は、仮想ディスク部１２３に記憶されている情報を操作する機能を有する。
【００３６】
また、仮想ディスク部１２３は、仮想マシン１２０で使用される情報を記憶情報として記憶する機能を有する。また、図２に示すように、仮想ディスク部１２３は、記憶情報を記憶管理情報と共に記憶する。
【００３７】
本実施形態の記憶管理情報は、共に記憶されている記憶情報の属性を示す情報である。仮想ディスク制御部１２２は、仮想ディスク部１２３に記憶されている記憶情報や記憶管理情報を操作する。
【００３８】
また、図２における破線が示すように、仮想ディスク部１２３を構成する実データは、ディスク部１０３に仮想ディスク情報Ａとして保存されている。すなわち、仮想ディスク部１２３の実体は、物理マシン１００のディスク部１０３に保存されている仮想ディスク情報Ａである。
【００３９】
すなわち、仮想マシン１２０における記憶情報や記憶管理情報は、仮想ディスク情報Ａ内のデータとして表現される。また、ディスク制御部１０２は、仮想ディスク情報Ａを操作できる。
【００４０】
本実施形態の記憶管理情報は、記憶情報が保存されている仮想ディスク部１２３内の位置や、記憶情報の属性を示す。仮想ディスク制御部１２２は、記憶情報が記憶されている仮想ディスク部１２３内の位置や記憶情報の属性を管理する記憶管理情報を用いて、記憶情報を制御する。
【００４１】
図３は、仮想ディスク部１２３に記憶されている記憶管理情報の例を示す説明図である。図３に示すように、記憶管理情報は、例えば記憶情報識別子と、記憶情報位置と、記憶情報属性とを含む。
【００４２】
記憶情報識別子は、記憶管理情報で管理される情報が記録されている記憶情報を一意に識別する識別子である。また、記憶情報位置は、記憶管理情報で管理される情報が記録されている記憶情報の部分を示す情報である。なお、記憶情報位置は、記憶情報が記憶されている仮想ディスク部１２３内の位置を示してもよい。
【００４３】
また、記憶情報属性は、記憶管理情報で管理される情報の属性を示す情報である。記憶情報が一時的に使用される情報（以下、一時的な情報という。）であるか否かは、記憶管理情報に含まれている記憶情報属性を基に判断される。なお、記憶情報属性は、記憶管理情報と独立に管理されてもよい。
【００４４】
以下、一時的な情報の例を示す。仮想制御部１２１で実行される処理の形態には、特定の記憶情報に対する更新に関して一時的な要求が発行されるような形態がある。例えば、仮想ディスクにおける特定領域に対するアクセスが常に一時的な要求であると考えられるような形態である。
【００４５】
仮想ディスクにおける特定領域には、仮想メモリ（スワップ）領域として利用される領域等、ドライバレベルで管理可能な領域が想定される。上記のスワップ領域内の情報が、例えば一時的な情報として管理される。
【００４６】
また、記憶情報を更新する場合、仮想ディスク制御部１２２は、対応する記憶管理情報を参照した上で、物理マシン１００の制御部１０１に更新対象の記憶情報に対応する実データの更新要求を入力する。
【００４７】
更新要求が入力された制御部１０１は、ディスク部１０３に保存されている仮想ディスク情報Ａに更新要求の内容を反映するように、ディスク制御部１０２に指示する。反映を指示されたディスク制御部１０２は、仮想ディスク情報Ａに更新要求の内容を反映する。
【００４８】
上記のように、仮想ディスク制御部１２２による更新要求の内容は、物理マシン１００の制御部１０１がディスク制御部１０２に指示することによってディスク部１０３に保存されている仮想ディスク情報Ａに反映される。
【００４９】
なお、物理マシン１００の制御部１０１は、仮想ディスク部１２３に保存されている内容を認識できない。すなわち、制御部１０１は、仮想ディスク部１２３に保存されている記憶情報および記憶管理情報を操作できない。
【００５０】
また、図２に示すように、仮想ディスク部１２３を構成する実データは、物理マシン１１０のディスク部１１３に仮想ディスク情報Ｂとして保存されている。本実施形態の仮想ディスク情報Ａは、１台以上の他の物理マシンのディスク部に仮想ディスク情報Ｂ等として共有されている。すなわち、仮想マシンシステム１０では、仮想ディスク情報Ａの内容と仮想ディスク情報Ｂの内容がほぼ同一になるように同期が取られる。
【００５１】
仮想ディスク情報に対する更新要求は、通信ネットワーク２００を介して物理マシン１１０の制御部１１１に通知される。制御部１１１は、物理マシン１１０が有するディスク部１１３に保存されている仮想ディスク情報Ｂに、通知された更新要求の内容を反映できる機能を有する。
【００５２】
具体的には、仮想ディスク情報Ａに対する更新が要求された場合、制御部１０１は、仮想ディスク情報Ａに更新要求の内容を反映すると共に、通信ネットワーク２００を経由して物理マシン１１０の制御部１１１に更新要求を通知するように通信制御部１０４に指示する。
【００５３】
通知を指示された通信制御部１０４は、通信ネットワーク２００を経由して通信制御部１１４に更新要求を通知する。通信制御部１１４は、通知された更新要求を制御部１１１に入力する。
【００５４】
制御部１１１は、ディスク制御部１１２を介して仮想ディスク情報Ｂに入力された更新要求の内容を反映する。上記の方法で、物理マシン１１０は、仮想ディスク情報を物理マシン１００と共有する。
【００５５】
物理マシン１００やディスク部１０３が故障等の理由で利用不可能な状態になると、仮想ディスク情報Ａも利用不可能になるため、仮想マシン１２０は停止する。しかし、上記のように仮想ディスク情報が物理マシン１１０に共有されていれば、仮想マシン１２０は、物理マシン１１０のディスク部１１３に保存されている仮想ディスク情報Ｂを利用して、物理マシン１１０において起動できる。
【００５６】
また、仮想ディスク情報Ｂが物理マシン１１０から他の物理マシンに転送されれば、仮想マシン１２０は、物理マシン１１０以外の他の物理マシンにおいて起動できる。
【００５７】
本実施形態の記憶情報属性は、仮想マシン１２０内に存在する記憶情報が一時的な情報であるか否かを示す情報である。一時的な情報として管理されている記憶情報を更新する場合、仮想ディスク制御部１２２は、更新対象の情報が一時的な情報であることを示す情報を付与した上で仮想ディスク部１２３に対する更新要求を発行する。
【００５８】
物理マシン１００の制御部１０１には、発行された更新要求が入力される。更新要求が入力された制御部１０１は、自身の物理マシン（物理マシン１００）に保存されている仮想ディスク情報Ａのみを更新するか、仮想ディスク情報Ａと他の物理マシン（物理マシン１１０）に保存されている仮想ディスク情報Ｂの両方を更新するか判断する。
【００５９】
一時的な情報であることを示す情報が付与された更新要求が入力された場合、制御部１０１は、更新要求の内容を他の物理マシン（物理マシン１１０）に保存されている仮想ディスク情報Ｂに反映しない。反映しないことによって、仮想マシンシステム１０は、通信負荷の軽減、およびアクセス性能の改善を実現できる。
【００６０】
本実施形態の仮想マシンシステム１０は、仮想マシン１２０の仮想ディスク情報を有する物理マシンを２台以上含む。また、３台以上の物理マシンが仮想ディスク情報を共有する場合、制御部１０１は、一部の仮想ディスク情報に更新要求の内容を反映しなくてもよい。
【００６１】
また、仮想マシン１２０は、記憶情報へのアクセスの際に記憶管理情報を参照した時、アクセス対象の記憶情報が一時的な情報であることを記憶管理情報が示している場合、アクセス対象の記憶情報に過去の情報が反映されていない可能性があると認識できる。
【００６２】
例えば、仮想マシン１２０は、起動時に記憶情報にアクセスする。仮想マシン１２０は、記憶情報の内容が起動前と起動後で維持されていない可能性があると認識する。
【００６３】
記憶情報の読み込み時に対象の記憶情報が一時的な情報であると認識した場合、仮想マシン１２０は、記憶情報が仮想マシン１２０の起動後に更新されたか否かを確認する。更新されていない場合、仮想マシン１２０は、対象の記憶情報の内容を初期化する。
【００６４】
初期化する理由は、例えば一時的な情報に対する書き込み処理が行われると、仮想ディスク情報Ａに仮想ディスク情報Ｂと不一致な内容が発生する。仮想マシン１２０の起動後に書き込み処理が行われても、物理マシン１００に所属していることを仮想マシン１２０自身が認識している場合、仮想マシン１２０は、仮想ディスク情報Ａが正当に保存された情報であると保証されていることを把握できる。
【００６５】
しかし、仮想マシン１２０は、常に所属している物理マシンがどれであるか認識しているとは限られない。すなわち、起動後に最初にアクセスする時点では、仮想マシン１２０は、利用される仮想ディスク情報が仮想ディスク情報Ａであるか仮想ディスク情報Ｂであるかを判定できない可能性がある。
【００６６】
よって、起動直後のタイミングでは一時的な情報の全ての内容が取得されない可能性があるため、本実施形態の仮想マシンは、起動時に最初から一時的な情報を利用しないことにしたからである。
【００６７】
上記のように、本実施形態では一時的な記憶情報の内容は初期化される可能性があるため、仮想マシン１２０は、一時的な記憶情報の内容が全て反映されていない仮想ディスク情報を利用しても同様に動作できる。
【００６８】
すなわち、仮想ディスク情報Ａが利用不可能な状況になった場合であっても、仮想マシン１２０は、一時的な情報の過去の内容が反映されていない仮想ディスク情報Ｂを利用して問題なく稼働できる。
【００６９】
以上のように、仮想マシン１２０は、起動後に一時的な記憶情報を読み込んだ時に更新されていない記憶情報の内容を初期化する。なお、仮想ディスク情報に識別情報が付加され、仮想ディスク情報の取得操作が実行された時に仮想ディスク情報Ａが取得されたと確認された場合、仮想マシン１２０の起動処理において一時的な記憶情報の初期化は省略されてもよい。すなわち、仮想マシン１２０の起動処理で仮想ディスク情報Ａがそのまま再利用されてもよい。
【００７０】
［動作の説明］
以下、本実施形態の仮想マシン１２０の仮想制御部１２１が記憶情報を更新する際の仮想マシンシステム１０の動作を図４を参照して説明する。図４は、第１の実施形態の仮想マシンシステム１０による記憶情報更新処理の動作を示すフローチャートである。
【００７１】
なお、仮想制御部１２１が記憶情報を更新する処理は、例えば仮想制御部１２１が記憶情報に新たな内容を書き込む処理である。
【００７２】
記憶情報の更新を要求する場合、仮想制御部１２１は、仮想ディスク制御部１２２に対して記憶情報の更新を指示する（ステップS101）。
【００７３】
更新を指示された仮想ディスク制御部１２２は、仮想ディスク部１２３に保存されている記憶管理情報を参照することによって、更新対象の情報の仮想ディスク部１２３における位置情報や属性情報を確認する（ステップS102）。
【００７４】
確認の際、仮想ディスク制御部１２２は、更新対象の情報の属性に「一時的」という属性があるか否かを確認する。「一時的」という属性がある場合（ステップS103におけるYes）、仮想ディスク制御部１２２は、記憶情報に対する更新要求を「一時的」という属性を付与して生成する（ステップS104）。
【００７５】
「一時的」という属性がない場合（ステップS103におけるNo）、仮想ディスク制御部１２２は、記憶情報に対する更新要求を通常の要求として生成する（ステップS105）。
【００７６】
次いで、仮想ディスク制御部１２２は、生成された更新要求を発行する。記憶情報が更新されるためには、仮想ディスク部１２３の実体であるディスク部１０３に保存されている仮想ディスク情報Ａが更新されることが求められる。よって、仮想ディスク制御部１２２は、物理マシン１００の制御部１０１に発行された更新要求を入力する（ステップS106）。
【００７７】
次いで、物理マシン１００の制御部１０１は、仮想ディスク制御部１２２から入力された更新要求に基づいて仮想ディスク部１２３の実体である仮想ディスク情報Ａを更新するために、ディスク制御部１０２に仮想ディスク情報Ａの更新を要求する（ステップS107）。
【００７８】
更新を要求されたディスク制御部１０２は、ディスク部１０３に保存されている仮想ディスク情報Ａを更新する（ステップS108）。更新した後、ディスク制御部１０２は、制御部１０１に更新が完了した旨を入力する。
【００７９】
なお、ステップS108から仮想ディスク情報Ａに伸びる破線の矢印は、ステップS108で仮想ディスク情報Ａが更新されることを示す。また、仮想ディスク情報Ａから記憶情報に伸びる破線の矢印は、仮想ディスク情報Ａに記憶情報が表現されていることを示す。
【００８０】
また、物理マシン１００の制御部１０１は、ステップS107の処理と並列に、仮想ディスク制御部１２２から入力された更新要求が「一時的」という属性が付与された更新要求であるか否かを判定する（ステップS109）。
【００８１】
仮想ディスク制御部１２２から入力された更新要求が「一時的」という属性が付与された更新要求である場合（ステップS109におけるYes）、制御部１０１は、仮想ディスク情報Ａの更新完了をもって記憶情報の更新が完了したとみなす。次いで、制御部１０１は、仮想制御部１２１に更新が完了した旨を入力する（ステップS116）。入力した後、仮想マシンシステム１０は、記憶情報更新処理を終了する。
【００８２】
仮想ディスク制御部１２２から入力された更新要求が「一時的」という属性が付与された更新要求でない場合（ステップS109におけるNo）、制御部１０１は、通信制御部１０４に、物理マシン１１０に対して更新要求を送信するように指示する（ステップS110）。
【００８３】
送信される更新要求は、物理マシン１１０が有するディスク部１１３に保存されている仮想ディスク情報Ｂに対する更新要求である。なお、送信される更新要求の内容は、制御部１０１に入力された更新要求の内容と同様である。
【００８４】
送信を指示された通信制御部１０４は、通信ネットワーク２００を介して物理マシン１１０の通信制御部１１４に更新要求を送信する（ステップS111）。更新要求を受信した通信制御部１１４は、物理マシン１１０の制御部１１１に受信された更新要求を入力する（ステップS112）。
【００８５】
次いで、制御部１１１は、仮想ディスク情報Ａの共有情報である仮想ディスク情報Ｂを更新するために、仮想ディスク情報Ａに実行された操作と同様の操作が実行される更新をディスク制御部１１２に要求する（ステップS113）。
【００８６】
更新を要求されたディスク制御部１１２は、ディスク部１１３に保存されている仮想ディスク情報Ｂを更新する（ステップS114）。更新した後、ディスク制御部１１２は、制御部１１１に更新が完了した旨を入力する。
【００８７】
なお、ステップS114から仮想ディスク情報Ｂに伸びる破線の矢印は、ステップS114で仮想ディスク情報Ｂが更新されることを示す。また、仮想ディスク情報Ｂから記憶情報に伸びる破線の矢印は、仮想ディスク情報Ｂに記憶情報が表現されていることを示す。
【００８８】
更新が完了した旨が入力された物理マシン１１０の制御部１１１は、通信制御部１１４に物理マシン１００の制御部１０１に更新が完了した旨を通知するように指示する。通知を指示された通信制御部１１４は、通信ネットワーク２００を介して通信制御部１０４に更新が完了した旨を通知する。次いで、通信制御部１０４は、制御部１０１に通知された更新が完了した旨を入力する（ステップS115）。
【００８９】
ディスク制御部１０２および通信制御部１０４からそれぞれ更新が完了した旨が入力された制御部１０１は、仮想ディスク情報Ａの更新が完了したこと、および仮想ディスク情報Ｂの更新が完了したことをそれぞれ確認する。すなわち、制御部１０１は、記憶情報の更新が完了したとみなす。
【００９０】
次いで、制御部１０１は、仮想制御部１２１に更新が完了した旨を入力する（ステップS116）。入力した後、仮想マシンシステム１０は、記憶情報更新処理を終了する。
【００９１】
次に、本実施形態の仮想マシン１２０の仮想制御部１２１が記憶情報を取得する際の仮想マシンシステム１０の動作を図５を参照して説明する。図５は、第１の実施形態の仮想マシンシステム１０による記憶情報取得処理の動作を示すフローチャートである。
【００９２】
なお、仮想制御部１２１が記憶情報を取得する処理は、例えば仮想制御部１２１が仮想ディスク部１２３に保存されている記憶情報を読み込む処理である。
【００９３】
記憶情報を取得する場合、仮想制御部１２１は、仮想ディスク制御部１２２に対して記憶情報の取得を指示する（ステップS201）。
【００９４】
取得を指示された仮想ディスク制御部１２２は、仮想ディスク部１２３に保存されている記憶管理情報を参照することによって、取得対象の情報の仮想ディスク部１２３における位置情報や属性情報を確認する（ステップS202）。
【００９５】
確認の際、仮想ディスク制御部１２２は、取得対象の情報の属性に「一時的」という属性があるか否かを確認する。「一時的」という属性がある場合（ステップS203におけるYes）、仮想ディスク制御部１２２は、仮想マシン１２０が起動してから記憶情報取得処理が開始されるまでに取得対象の情報が更新されたか否かを確認する（ステップS204）。
【００９６】
仮想マシン１２０が起動した後に取得対象の情報が更新されている場合（ステップS204におけるYes）、仮想ディスク制御部１２２は、取得対象の情報が利用可能であると判定する。取得対象の情報が利用可能であると判定された場合、仮想ディスク制御部１２２は、ステップS209の処理を行う。
【００９７】
仮想マシン１２０が起動した後に取得対象の情報が更新されていない場合（ステップS204におけるNo）、仮想ディスク制御部１２２は、取得対象の情報が利用不可能であると判定する。取得対象の情報が利用不可能であると判定された場合、仮想ディスク制御部１２２は、仮想ディスク部１２３に対する取得対象の情報の初期化を要求する。
【００９８】
取得対象の情報の属性に「一時的」という属性があるため、仮想ディスク制御部１２２は、取得対象の情報の初期化要求を「一時的」という属性を付与して生成する（ステップS205）。
【００９９】
次いで、仮想ディスク制御部１２２は、生成された初期化要求を発行する。取得対象の情報が初期化されるためには、仮想ディスク部１２３の実体であるディスク部１０３に保存されている仮想ディスク情報Ａの該当領域が初期化されることが求められる。
【０１００】
よって、仮想ディスク制御部１２２は、物理マシン１００の制御部１０１に発行された初期化要求を入力する（ステップS206）。なお、仮想ディスク情報Ａの該当領域は、取得対象の情報が表現されている領域である。
【０１０１】
次いで、制御部１０１は、仮想ディスク制御部１２２から入力された初期化要求に基づいて仮想ディスク部１２３の実体である仮想ディスク情報Ａの該当領域を初期化するために、ディスク制御部１０２に仮想ディスク情報Ａの該当領域の初期化を要求する（ステップS207）。
【０１０２】
初期化を要求されたディスク制御部１０２は、ディスク部１０３に保存されている仮想ディスク情報Ａの該当領域を初期化する（ステップS208）。
【０１０３】
なお、ステップS208から仮想ディスク情報Ａに伸びる破線の矢印は、ステップS208で仮想ディスク情報Ａの該当領域が初期化されることを示す。また、仮想ディスク情報Ａから記憶情報に伸びる破線の矢印は、仮想ディスク情報Ａに記憶情報が表現されていることを示す。
【０１０４】
次いで、仮想ディスク制御部１２２は、記憶情報のうちの取得対象の情報に対する取得要求を生成する（ステップS209）。
【０１０５】
次いで、仮想ディスク制御部１２２は、生成された取得要求を発行する。記憶情報から取得対象の情報が読み取られるためには、仮想ディスク部１２３の実体であるディスク部１０３に保存されている仮想ディスク情報Ａから取得対象の情報が取得されることが求められる。よって、仮想ディスク制御部１２２は、物理マシン１００の制御部１０１に発行された取得要求を入力する（ステップS210）。
【０１０６】
次いで、物理マシン１００の制御部１０１は、仮想ディスク制御部１２２から入力された取得要求に基づいて仮想ディスク部１２３の実体である仮想ディスク情報Ａから取得対象の情報を取得するために、ディスク制御部１０２に仮想ディスク情報Ａの該当領域の情報の取得を要求する（ステップS211）。
【０１０７】
取得を要求されたディスク制御部１０２は、ディスク部１０３に保存されている仮想ディスク情報Ａの該当領域の情報を取得する（ステップS212）。なお、ステップS212から仮想ディスク情報Ａに伸びる破線の矢印は、ステップS212で仮想ディスク情報Ａの該当領域の情報が取得されることを示す。
【０１０８】
次いで、ディスク制御部１０２は、取得された情報を制御部１０１に入力する。次いで、物理マシン１００の制御部１０１は、入力された情報を仮想マシン１２０の仮想制御部１２１に入力する（ステップS213）。
【０１０９】
次いで、仮想制御部１２１は、入力された情報を読み込む（ステップS214）。読み込んだ後、仮想マシンシステム１０は、記憶情報取得処理を終了する。
【０１１０】
［効果の説明］
本実施形態では仮想マシン１２０に保存されている記憶管理情報に、記憶情報が一時的な情報であるか否かを示す情報が追加されている。仮想ディスク制御部１２２は、記憶情報のうち一時的に利用される情報を更新する場合、記憶管理情報を参照して物理マシン１００の制御部１０１に対して仮想ディスク情報Ａに反映される更新要求の対象が一時的な情報であることを伝達する。
【０１１１】
制御部１０１は、仮想ディスク情報Ａへの反映時に仮想ディスク制御部１２２からの更新要求の内容を確認し、更新要求の内容を仮想ディスク情報Ａのみに反映するか、仮想ディスク情報Ａだけでなく仮想ディスク情報Ｂにも反映するか判断する。
【０１１２】
本実施形態の制御部１０１は、対象が一時的な情報であるとされた更新要求の内容を仮想ディスク情報Ａのみに反映する。すなわち、仮想ディスク情報Ｂへの更新要求の内容の反映が一部抑制されるため、通信負荷の軽減、および応答性の改善が実現される。
【０１１３】
本実施形態の仮想マシンシステム１０が使用されると、以下の２つの効果が得られる。第１の効果は、物理マシンの制御部が他の物理マシンのディスク部に保存されている予備の仮想ディスク情報の更新要求を削減することによって、物理マシン間の通信ネットワークへの負荷が軽減されることである。
【０１１４】
制御部は、例えば、仮想マシン内のOSのスワップファイルやキャッシュファイル等の所定量のアクセスが発生するファイルへのアクセスの種類を認識した上で、更新要求を削減する。
【０１１５】
ディスク部に対する書き込み要求は、短時間でも要求量が大きかったり、連続して発生したりすることがある。よって、物理マシンのディスク部に対する処理には、高速性が確保されている場合が多い。しかし、ディスク部に確保されている帯域幅に比べて通信ネットワークには、十分な帯域幅が確保されていない場合が多い。
【０１１６】
特に、共有ディスクが利用されない形態の仮想マシン環境において、書き込み要求の伝達範囲は、１つの物理マシン内に限定される。上記のような仮想マシン環境における物理マシンのディスク部に対する処理には、高速性が確保されている。
【０１１７】
しかし、通信ネットワークによる接続は、物理マシンと外部の物理マシンとの接続である。すなわち、十分な帯域幅が確保されていない通信ネットワークを介した処理には、通信速度に基づく制約がある。また、多くの物理マシンが通信ネットワークを共有する場合、輻輳による影響が発生する可能性がある。
【０１１８】
本実施形態の仮想マシンシステム１０では物理マシン間の通信ネットワークへの負荷が軽減されるため、管理者は、十分な帯域幅が確保されていない通信ネットワークであっても仮想マシンシステム１０に適用できる。
【０１１９】
第２の効果は、仮想マシンのディスクへのアクセス性能が向上することである。ディスクに対して安全に書き込みが行われるためには、仮想ディスク情報に更新内容が全て反映されていると保証されていることが求められる。
【０１２０】
本実施形態の仮想マシンシステム１０では、仮想マシンが稼働する物理マシンのディスク部が、外部の物理マシンと通信ネットワークを介して通信可能に接続されている。すなわち、ディスク部に対する操作の応答性と、外部の物理マシンに対する操作の応答性に差異がある。よって、各仮想ディスク情報に更新内容が全て反映される場合、仮想マシンが利用する情報に対する操作の性能が一律に低下すると推測される。
【０１２１】
本実施形態の仮想マシンシステム１０では、仮想マシンが一時的に利用するような揮発性を有する情報に対する操作は、仮想マシンが稼働する物理マシン内でのみ実行される。すなわち、通信ネットワークが利用されないため、揮発性を有する情報に対する操作の性能が向上することが期待される。
【０１２２】
なお、本実施形態の物理マシン１００、および物理マシン１１０は、例えば、非一時的な記憶媒体に格納されているプログラムに従って処理を実行するCPU(Central Processing Unit)によって実現される。すなわち、制御部１０１、ディスク制御部１０２、通信制御部１０４、制御部１１１、ディスク制御部１１２、および通信制御部１１４は、プログラム制御に従って処理を実行するCPUによって実現される。
【０１２３】
また、仮想マシン１２０、仮想マシン１３０、および仮想マシン１４０は、具体的には仮想ソフトウェアに従って物理マシン１００のCPUが処理を実行することによって実現される。また、仮想マシン１５０、仮想マシン１６０、および仮想マシン１７０は、具体的には仮想ソフトウェアに従って物理マシン１１０のCPUが処理を実行することによって実現される。
【０１２４】
また、ディスク部１０３、およびディスク部１１３は、例えばRAM(Random Access Memory)で実現されてもよい。
【０１２５】
次に、本発明の概要を説明する。図６は、本発明による仮想マシン制御システムの概要を示すブロック図である。本発明による仮想マシン制御システム９００は、仮想マシン９１０（例えば、仮想マシン１２０）が稼働する物理マシン９２０（例えば、物理マシン１００）が少なくとも１つ含まれる複数の物理マシンで構成される仮想マシン制御システムであって、仮想マシン９１０は、仮想マシン９１０で使用される情報である仮想情報を仮想情報が一時的に使用される情報であるか否かを示す情報と共に記憶する仮想記憶部９１１（例えば、仮想ディスク部１２３）を有し、仮想マシン９１０が稼働する物理マシン９２０は、仮想記憶部９１１を構成する情報を仮想記憶情報として記憶する記憶部９２１（例えば、ディスク部１０３）と、仮想情報の更新内容を記憶部９２１に記憶されている仮想記憶情報に反映する反映部９２２（例えば、ディスク制御部１０２）と、一時的に使用されない仮想情報の更新内容のみを他の物理マシン（例えば、物理マシン１１０）に記憶されている仮想記憶情報に反映させるように他の物理マシンに指示する指示部９２３（例えば、制御部１０１）とを有する。
【０１２６】
そのような構成により、仮想マシン制御システムは、仮想マシンの稼働に要する情報を共有する複数の物理マシン同士を通信可能に接続する通信ネットワークへの負荷を抑制できる。
【０１２７】
また、仮想マシン９１０は、仮想情報を制御する制御部（例えば、仮想ディスク制御部１２２）を有し、制御部は、仮想情報の取得要求を発行し、反映部９２２は、発行された取得要求に基づいて仮想記憶情報のうちの取得対象の情報を取得し、取得された取得対象の情報を制御部に入力してもよい。
【０１２８】
そのような構成により、仮想マシン制御システムは、仮想マシンに所定の仮想ディスク情報を読み込ませることができる。
【０１２９】
また、制御部は、仮想マシン９１０が起動した後に更新されていない一時的に使用される仮想情報の取得要求を発行する前に仮想情報の初期化要求を発行し、反映部９２２は、発行された初期化要求に基づいて仮想記憶情報のうちの取得対象の情報を初期化してもよい。
【０１３０】
そのような構成により、仮想マシン制御システムは、仮想マシンを安全に起動させることができる。
【０１３１】
また、反映部９２２は、記憶部９２１に記憶されている仮想記憶情報に対する初期化を省略してもよい。
【０１３２】
そのような構成により、仮想マシン制御システムは、仮想マシンの起動処理の速度を向上できる。
【０１３３】
また、仮想マシン９１０が稼働する物理マシン９２０は、他の物理マシンと通信ネットワーク（例えば、通信ネットワーク２００）を介して通信可能に接続されていてもよい。
【０１３４】
そのような構成により、仮想マシン制御システムは、仮想マシンの稼働に要する情報を共有する複数の物理マシン同士を通信可能に接続する通信ネットワークへの負荷を抑制できる。
【符号の説明】
【０１３５】
１０  仮想マシンシステム
１００、１１０、９２０  物理マシン
１０１、１１１  制御部
１０２、１１２  ディスク制御部
１０３、１１３  ディスク部
１０４、１１４  通信制御部
１２０、１３０、１４０、１５０、１６０、１７０、９１０  仮想マシン
１２１  仮想制御部
１２２  仮想ディスク制御部
１２３  仮想ディスク部
２００  通信ネットワーク
９００  仮想マシン制御システム
９１１  仮想記憶部
９２１  記憶部
９２２  反映部
９２３  指示部
【図１】
2019053492.tif 000003
【図２】
2019053492.tif 000004
【図３】
2019053492.tif 000005
【図４】
2019053492.tif 000006
【図５】
2019053492.tif 000007
【図６】
2019053492.tif 000008