(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-22
(45)【発行日】2024-05-01
(54)【発明の名称】情報処理システム、物理マシン、情報処理方法、及びプログラム
(51)【国際特許分類】
G06F 9/455 20180101AFI20240423BHJP
G06F 9/52 20060101ALI20240423BHJP
G06F 9/54 20060101ALI20240423BHJP
【FI】
G06F9/455 150
G06F9/52 150Z
G06F9/54 A
(21)【出願番号】P 2019057836
(22)【出願日】2019-03-26
【審査請求日】2022-02-07
【前置審査】
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】高井 洋明
【審査官】坂庭 剛史
(56)【参考文献】
【文献】特開2010-218481(JP,A)
【文献】特開2012-164075(JP,A)
【文献】国際公開第2015/033451(WO,A1)
【文献】米国特許第07447854(US,B1)
【文献】米国特許出願公開第2014/0040206(US,A1)
【文献】河村裕太、山田浩史,データベース管理システムと協調した仮想マシン移送,情報処理学会研究報告 [online],日本,一般社団法人情報処理学会,2016年05月23日,Vol. 2016-OS-137, No.2,pp.1-11,ISSN 2188-8795
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/455
G06F 9/52
G06F 9/54
(57)【特許請求の範囲】
【請求項1】
異なる物理マシン上で動作する仮想マシンを備え、第1の物理マシン上で動作する第1の仮想マシンと、第2の物理マシン上で動作する第2の仮想マシンとの間で前記仮想マシンの記憶情報を共有する情報処理システムにおいて、
前記記憶情報と、前記第1の仮想マシンと前記第2の仮想マシンとの間で同期の要否を示す要否情報と、に基づいて、前記同期の必要な前記記憶情報を同期情報と判定し、前記同期の不要な前記記憶情報を非同期情報と判定する判定部と、
前記同期情報について、複数の前記仮想マシンの間で同期処理を実行する第1処理部と、
前記第1の物理マシンと前記第2の物理マシンのどちらか一方に接続できず、他方の前記物理マシン上
で仮想マシンを起動する場合、前記仮想マシンを起動する前記物理マシン上で前記非同期情報を更新する第2処理部と、
を備える、情報処理システム。
【請求項2】
異なる物理マシン上で動作する仮想マシンを備え、第1の物理マシン上で動作する第1の仮想マシンと、第2の物理マシン上で動作する第2の仮想マシンとの間で前記仮想マシンの記憶情報を共有する情報処理システムにおいて、
前記記憶情報と、前記第1の仮想マシンと前記第2の仮想マシンとの間で同期の要否を示す要否情報と、に基づいて、前記同期の必要な前記記憶情報を同期情報と判定し、前記同期の不要な前記記憶情報を非同期情報と判定する判定部と、
前記同期情報について、複数の前記仮想マシンの間で同期処理を実行する第1処理部と、を備え、
前記判定部は、前記記憶情報が更新されるときに、前記記憶情報と前記要否情報とに基づいて、更新される前記記憶情報のうち、前記同期情報に含まれる情報を更新同期情報と判定し、更新される前記記憶情報のうち、前記非同期情報に含まれる情報を更新非同期情報と判定し、
前記第1処理部は、前記更新同期情報について、前記同期処理を実行し、
前記第1処理部は、前記更新非同期情報がある場合に、前記非同期情報の更新が行われることを示す非同期情報更新情報を生成し、前記非同期情報更新情報について前記同期処理を行い、
前記非同期情報更新情報と前記非同期情報を更新するための情報とを対応付けた対処情報と、前記非同期情報更新情報とに基づいて、前記非同期情報の更新を行う第2処理部を更に備える、情報処理システム。
【請求項3】
異なる物理マシン上で動作する仮想マシンを備え、第1の物理マシン上で動作する第1の仮想マシンと、第2の物理マシン上で動作する第2の仮想マシンとの間で前記仮想マシンの記憶情報を共有する情報処理システムにおける仮想マシンを動作させる物理マシンであって、
前記記憶情報と、前記第1の仮想マシンと前記第2の仮想マシンとの間で同期の要否を示す要否情報と、に基づいて、前記同期の必要な前記記憶情報を同期情報と判定し、前記同期の不要な前記記憶情報を非同期情報と判定する場合に、
前記同期情報について、仮想マシンを動作させる他の物理マシンとの間で同期処理を行う第1処理部と、
前記第1の物理マシンと前記第2の物理マシンのどちらか一方に接続できず、他方の前記物理マシン上
で仮想マシンを起動する場合、前記仮想マシンを起動する前記物理マシン上で前記非同期情報を更新する第2処理部と、
を備える、物理マシン。
【請求項4】
異なる物理マシン上で動作する仮想マシンを備え、第1の物理マシン上で動作する第1の仮想マシンと、第2の物理マシン上で動作する第2の仮想マシンとの間で前記仮想マシンの記憶情報を共有する情報処理システムにおける仮想マシンを動作させる物理マシンであって、
前記記憶情報と、前記第1の仮想マシンと前記第2の仮想マシンとの間で同期の要否を示す要否情報と、に基づいて、前記同期の必要な前記記憶情報を同期情報と判定し、前記同期の不要な前記記憶情報を非同期情報と判定する場合に、
前記同期情報について、仮想マシンを動作させる他の物理マシンとの間で同期処理を行う第1処理部、
を備え、
前記判定は、前記記憶情報が更新されるときに、前記記憶情報と前記要否情報とに基づいて、更新される前記記憶情報のうち、前記同期情報に含まれる情報を更新同期情報と判定し、更新される前記記憶情報のうち、前記非同期情報に含まれる情報を更新非同期情報と判定し、
前記第1処理部は、前記更新同期情報について、前記同期処理を実行し、
前記第1処理部は、前記更新非同期情報がある場合に、前記非同期情報の更新が行われることを示す非同期情報更新情報を生成し、前記非同期情報更新情報について前記同期処理を行い、
前記非同期情報更新情報と前記非同期情報を更新するための情報とを対応付けた対処情報と、前記非同期情報更新情報とに基づいて、前記非同期情報の更新を行う第2処理部を更に備える、物理マシン。
【請求項5】
異なる物理マシン上で動作する仮想マシンを備え、第1の物理マシン上で動作する第1の仮想マシンと、第2の物理マシン上で動作する第2の仮想マシンとの間で前記仮想マシンの記憶情報を共有する情報処理システムにおける情報処理方法であって、
前記記憶情報と、前記第1の仮想マシンと前記第2の仮想マシンとの間で同期の要否を示す要否情報と、に基づいて、前記同期の必要な前記記憶情報を同期情報と判定し、前記同期の不要な前記記憶情報を非同期情報と判定する判定ステップと、
前記同期情報について、複数の前記仮想マシンの間で同期処理を実行する第1処理ステップと、
前記第1の物理マシンと前記第2の物理マシンのどちらか一方に接続できず、他方の前記物理マシン上
で仮想マシンを起動する場合、前記仮想マシンを起動する前記物理マシン上で前記非同期情報を更新する第2処理ステップと、
を含む、情報処理方法。
【請求項6】
異なる物理マシン上で動作する仮想マシンを備え、第1の物理マシン上で動作する第1の仮想マシンと、第2の物理マシン上で動作する第2の仮想マシンとの間で前記仮想マシンの記憶情報を共有する情報処理システムにおける情報処理方法であって、
前記記憶情報と、前記第1の仮想マシンと前記第2の仮想マシンとの間で同期の要否を示す要否情報と、に基づいて、前記同期の必要な前記記憶情報を同期情報と判定し、前記同期の不要な前記記憶情報を非同期情報と判定する判定ステップと、
前記同期情報について、複数の前記仮想マシンの間で同期処理を実行する第1処理ステップと、
前記判定ステップは、前記記憶情報が更新されるときに、前記記憶情報と前記要否情報とに基づいて、更新される前記記憶情報のうち、前記同期情報に含まれる情報を更新同期情報と判定し、更新される前記記憶情報のうち、前記非同期情報に含まれる情報を更新非同期情報と判定し、
前記第1処理ステップは、前記更新同期情報について、前記同期処理を実行し、
前記第1処理ステップは、前記更新非同期情報がある場合に、前記非同期情報の更新が行われることを示す非同期情報更新情報を生成し、前記非同期情報更新情報について前記同期処理を行い、
前記非同期情報更新情報と前記非同期情報を更新するための情報とを対応付けた対処情報と、前記非同期情報更新情報とに基づいて、前記非同期情報の更新を行う第2処理ステップを更に備える、情報処理方法。
【請求項7】
異なる物理マシン上で動作する仮想マシンを備え、第1の物理マシン上で動作する第1の仮想マシンと、第2の物理マシン上で動作する第2の仮想マシンとの間で前記仮想マシンの記憶情報を共有する情報処理システムのコンピュータに、
前記記憶情報と、前記第1の仮想マシンと前記第2の仮想マシンとの間で同期の要否を示す要否情報と、に基づいて、前記同期の必要な前記記憶情報を同期情報と判定し、前記同期の不要な前記記憶情報を非同期情報と判定する判定ステップと、
前記同期情報について、複数の前記仮想マシンの間で同期処理を実行する第1処理ステップと、
前記第1の物理マシンと前記第2の物理マシンのどちらか一方に接続できず、他方の前記物理マシン上
で仮想マシンを起動する場合、前記仮想マシンを起動する前記物理マシン上で前記非同期情報を更新する第2処理ステップと、
を実行させるための、プログラム。
【請求項8】
異なる物理マシン上で動作する仮想マシンを備え、第1の物理マシン上で動作する第1の仮想マシンと、第2の物理マシン上で動作する第2の仮想マシンとの間で前記仮想マシンの記憶情報を共有する情報処理システムのコンピュータに、
前記記憶情報と、前記第1の仮想マシンと前記第2の仮想マシンとの間で同期の要否を示す要否情報と、に基づいて、前記同期の必要な前記記憶情報を同期情報と判定し、前記同期の不要な前記記憶情報を非同期情報と判定する判定ステップと、
前記同期情報について、複数の前記仮想マシンの間で同期処理を実行する第1処理ステップと、
前記判定ステップは、前記記憶情報が更新されるときに、前記記憶情報と前記要否情報とに基づいて、更新される前記記憶情報のうち、前記同期情報に含まれる情報を更新同期情報と判定し、更新される前記記憶情報のうち、前記非同期情報に含まれる情報を更新非同期情報と判定し、
前記第1処理ステップは、前記更新同期情報について、前記同期処理を実行し、
前記第1処理ステップは、前記更新非同期情報がある場合に、前記非同期情報の更新が行われることを示す非同期情報更新情報を生成し、前記非同期情報更新情報について前記同期処理を行い、
前記非同期情報更新情報と前記非同期情報を更新するための情報とを対応付けた対処情報と、前記非同期情報更新情報とに基づいて、前記非同期情報の更新を行う第2処理ステップを更に実行させるための、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、仮想マシン、物理マシン、情報処理方法、及びプログラムに関する。
【背景技術】
【0002】
物理マシン上で実行される仮想マシン環境では、物理マシンの状態が重要である。そのため、物理マシンの状態によっては、仮想マシンを実行する物理マシンを他の物理マシンに変更することがある。例えば、仮想マシンが実行させる物理マシンについて、当該物理マシンの負荷の上昇等が生じる場合に、仮想マシンを他の物理マシンに移動し、その動作を継続することができる。また、物理マシンが故障等により動作を継続できない場合でも、仮想マシンを他の物理マシン上で再度起動することにより、動作の継続を実現できる。
このような仮想マシン環境を実現するための1つの方法として、仮想マシンを構成する仮想ディスクに対する情報が共有ディスク装置に記憶する方法がある。この方法では、複数の物理マシン間で共有ディスク装置が共有される。また、別の方法として、共有ディスク装置を利用しない方法がある。この方法では、仮想ディスクに対する書き込みを、ネットワークを介した通信により、他の物理マシンに逐次転送し、その変更を複数の物理マシン間で共有する。
特許文献1には、関連する技術として、送信側の仮想マシンへの書き込みが発生した場合に、実行状態の差分を受信側の仮想マシンに送信する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
前述の方式では、仮想ディスクに対する変更は複数物理マシン間で共有する必要がある。しかしながら、仮想ディスクに対する変更には反映を行う必要がないものが含まれる。そのため、このような情報を共有することによって、仮想マシンの効率性、応答性が低下してしまう場合があった。
【0005】
本発明は、上記の課題を解決する、情報処理システム、仮想マシン、物理マシン、情報処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
本発明の一態様によれば、異なる物理マシン上で動作する仮想マシンを備え、第1の物理マシン上で動作する第1の仮想マシンと、第2の物理マシン上で動作する第2の仮想マシンとの間で前記仮想マシンの記憶情報を共有する情報処理システムにおいて、前記記憶情報と、前記第1の仮想マシンと前記第2の仮想マシンとの間で同期の要否を示す要否情報と、に基づいて、前記同期の必要な前記記憶情報を同期情報と判定し、前記同期の不要な前記記憶情報を非同期情報と判定する判定部と、前記同期情報について、複数の前記仮想マシンの間で同期処理を実行する第1処理部と、を備える、情報処理システムである。
【0007】
また、本発明の一態様によれば、異なる物理マシン上で動作する仮想マシンを備え、第1の物理マシン上で動作する第1の仮想マシンと、第2の物理マシン上で動作する第2の仮想マシンとの間で前記仮想マシンの記憶情報を共有する情報処理システムにおける仮想マシンであって、前記記憶情報と、前記第1の仮想マシンと前記第2の仮想マシンとの間で同期の要否を示す要否情報と、に基づいて、前記同期の必要な前記記憶情報を同期情報と判定し、前記同期の不要な前記記憶情報を非同期情報と判定する判定部、を備える、仮想マシンである。
【0008】
また、本発明の一態様によれば、異なる物理マシン上で動作する仮想マシンを備え、第1の物理マシン上で動作する第1の仮想マシンと、第2の物理マシン上で動作する第2の仮想マシンとの間で前記仮想マシンの記憶情報を共有する情報処理システムにおける仮想マシンを動作させる物理マシンであって、前記仮想マシンが、前記記憶情報と、前記第1の仮想マシンと前記第2の仮想マシンとの間で同期の要否を示す要否情報と、に基づいて、前記同期の必要な前記記憶情報を同期情報と判定し、前記同期の不要な前記記憶情報を非同期情報と判定する場合に、前記同期情報について、仮想マシンを動作させる他の物理マシンとの間で同期処理を行う第1処理部を備える、物理マシンである。
【0009】
また、本発明の一態様によれば、異なる物理マシン上で動作する仮想マシンを備え、第1の物理マシン上で動作する第1の仮想マシンと、第2の物理マシン上で動作する第2の仮想マシンとの間で前記仮想マシンの記憶情報を共有する情報処理システムにおける情報処理方法であって、前記記憶情報と、前記第1の仮想マシンと前記第2の仮想マシンとの間で同期の要否を示す要否情報と、に基づいて、前記同期の必要な前記記憶情報を同期情報と判定し、前記同期の不要な前記記憶情報を非同期情報と判定する判定ステップと、前記同期情報について、複数の前記仮想マシンの間で同期処理を実行する第1処理ステップと、を含む情報処理方法である。
【0010】
また、本発明の一態様によれば、異なる物理マシン上で動作する仮想マシンを備え、第1の物理マシン上で動作する第1の仮想マシンと、第2の物理マシン上で動作する第2の仮想マシンとの間で前記仮想マシンの記憶情報を共有する情報処理システムのコンピュータに、前記記憶情報と、前記第1の仮想マシンと前記第2の仮想マシンとの間で同期の要否を示す要否情報と、に基づいて、前記同期の必要な前記記憶情報を同期情報と判定し、前記同期の不要な前記記憶情報を非同期情報と判定する判定ステップと、前記同期情報について、複数の前記仮想マシンの間で同期処理を実行する第1処理ステップと、を実行させるための、プログラムである。
【発明の効果】
【0011】
本発明によれば、仮想マシンの効率性、応答性の低下を抑制することができる。
【図面の簡単な説明】
【0012】
【
図1】本発明の一実施形態に係る情報処理システム1の構成の一例を示す概要ブロック図である。
【
図2】本発明の一実施形態に係る情報処理システム1の構成の詳細な一例を示す概略ブロック図である。
【
図3】本発明の一実施形態に係る記憶識別情報の一例を示す図である。
【
図4】本発明の一実施形態に係る対処情報の一例を示す図である。
【
図5】本発明の一実施形態に係る仮想マシンの記憶情報の更新処理の一例を示すフローチャートである。
【
図6】本発明の一実施形態に係る他の物理マシンで仮想マシンを開始する場合の動作の一例を示すフローチャートである。
【
図7】本発明の一実施形態に係る他の物理マシンで仮想マシンを開始する場合の動作の別の一例を示すフローチャートである。
【
図8】本発明の一実施形態に係る情報処理システムの最小構成の一例を示す概略ブロック図である。
【発明を実施するための形態】
【0013】
以下、図面を参照して、本発明の一実施形態について詳しく説明する。
【0014】
図1は、本発明の一実施形態に係る情報処理システム1の構成の一例を示す概略ブロック図である。
情報処理システム1は、多数の物理マシン10(10A、10B・・・)を備える。物理マシン10(10A、10B・・・)は、ネットワークNWを介して接続されている。ネットワークNWは、例えば、LAN(Local Area Network)、又はインターネット等の情報通信ネットワークである。情報通信ネットワークは、有線又は無線のネットワークでも良いし、種々のネットワークを組み合わせたネットワークであっても良い。
【0015】
本実施形態では、説明の都合上、物理マシン10が2つである例を説明するが、物理マシン10は、複数の物理マシン10(10A、10B、・・・)を備えてもよい。また、本実施形態において、物理マシン10(10A、10B、・・・)は、情報処理システム1が備える任意の物理マシンを示す場合、又は特に区別しない場合には、物理マシン10として説明する。
【0016】
物理マシン10は、例えば、ネットワークNWを介して、ユーザが所持するデスクトップパソコン、ノートパソコン、タブレット端末、スマートフォンなどから接続されるサーバなどの処理装置である。
物理マシン10は、内部に備える複数の仮想マシン20(20A-1、20A-2、・・・20A-N、20B-1、20B-2、・・・20B-N)の制御を行う。物理マシン10は、複数の仮想マシン20を同時に実行可能である。また、物理マシン10は、複数の仮想マシン20の記憶情報について、同期や共有などの処理を行う。本実施形態では、説明の都合上、仮想マシン20が各物理マシン10に1つ備える例を説明するが、仮想マシン20は、1つの物理マシン10に対し、複数備わっていてもよい。また、本実施形態において、仮想マシン20(20A-1、20A-2、・・・、20A-N、20B-1、20B-2、・・・20B-N)は、情報処理システム1が備える任意の仮想マシンを示す場合、又は特に区別しない場合には、仮想マシン20として説明する。また、物理マシン10Aの複数の仮想マシン20(20A-1、20A-2、・・・20A-N)は、物理マシン10Aが備える任意の仮想マシンを示す場合、又は特に区別しない場合には、仮想マシン20Aとして説明する。また、物理マシン10Bについても同様に、物理マシン10Bが備える任意の仮想マシンを示す場合、又は特に区別しない場合には、仮想マシン20Bとして説明する。
【0017】
本実施形態では、ユーザが、最初に物理マシン10A(第1の物理マシンの一例)上の仮想マシン20A(第1の仮想マシンの一例)を利用し、次に別の物理マシンである物理マシン10B(第2の物理マシンの一例)上の仮想マシン20B(第2の仮想マシンの一例)を利用する場合の処理について説明するが、本発明の実施形態はこれには限られない。
【0018】
例えば、物理マシン10Aは、仮想マシン20Aが記憶する記憶情報を同期情報と非同期情報とに分けて記憶する。ここで非同期情報とは、同期しないまま喪失しても仮想マシン20の動作に影響のない情報である。動作に影響のない情報とは、例えば、仮想マシン20Aが一時的に利用するための情報や、更新前の情報から生成することが可能な情報である。更新前の情報から更新後の情報を生成する手段(以下、更新前の情報から更新後の情報を生成することを「復元する」とも称する)については、詳細を後述する。復元手段に関する情報は、物理マシン10A及び物理マシン10Bとの間で予め共有される情報に含まれる。
同期情報とは、非同期情報以外の情報である。
【0019】
物理マシン10Aは、仮想マシン20Aが記憶する記憶情報の更新が行われる場合に、他の仮想マシン20と同期が不要な更新非同期情報と、同期が必要な更新同期情報とを、仮想マシン20Aから受け入れる。更新非同期情報は、非同期情報のうち、更新が行われる情報である。更新同期情報とは、同期情報のち、更新が行われる情報である。なお、更新同期情報は、非同期情報の更新が行われたことを示す情報(以下、「非同期情報更新情報」とも称する)を含む。非同期情報更新情報については、詳細を後述する。
物理マシン10Aは、受け入れた更新非同期情報と更新同期情報を記憶する。また、物理マシン10Aは、更新同期情報を物理マシン10Bに送信する。
【0020】
物理マシン10Bは、受信した更新同期情報と物理マシン10Bが記憶する同期情報とに基づいて、同期情報を更新する。また、物理マシン10Bは共有情報と、更新同期情報に含まれる非同期情報更新情報と、物理マシン10Bが記憶する非同期情報に基づいて、非同期情報を更新する。これにより、物理マシン10Aと物理マシン10Bとは仮想マシン20Aと仮想マシン20Bに関して、同一の記憶情報を持つことができる。
【0021】
これにより、情報処理システム1は、物理マシン10Aと物理マシン10Bとの間で更新情報の全てを同期することなく、仮想マシンに関する記憶情報を共有することが可能になる。これにより、ネットワークNWを介して送受信する情報が少なくなることでネットワークNWを介する他の送受信情報への影響が小さくなる。そのため応答性の低下を抑制することができる。また、同期する情報が少なくなるため、同期処理に必要なリソースを低減することができ、他の処理の効率を高めることができる。そのため、効率性の低下を抑制することができる。
【0022】
物理マシン10(10A、10B)は、通信制御部11(11A、11B)、制御部12(12A、12B)、ディスク制御部13(13A、13B)、記憶部14(14A、14B)、複数の仮想マシン20(20A、20B)を備える。なお、物理マシン10Aが備える、通信制御部11A、制御部12A、ディスク制御部13A、及び記憶部14Aと、物理マシン10Bが備える、通信制御部11B、制御部12B、ディスク制御部13B、及び記憶部14Bの各機能は基本的に同一である。すなわち、以下説明される物理マシン10Aの機能と、物理マシン10Bの機能は入れ替えることができる。
以下では、物理マシン10Aの各機能について説明する。
【0023】
通信制御部11Aは、ネットワークNWを介して各種通信を行う通信モジュールである。通信制御部11Aは、例えば、通信制御部11Bとの間で、各種通信を行う。
制御部12A(第1処理部の一例)は、物理マシン10Aの制御を行う。制御部12Aは、例えば、通信制御部11Aから入力された入力情報、後述するディスク制御部13Aから入力された入力情報に基づいて、仮想マシン20Aの制御を行う。また、仮想マシン20Aから入力された入力情報に対応した出力情報を、通信制御部11Aを介して他の物理マシン(物理マシン10B)に送信する。また、仮想マシン20Aから入力された入力情報に対応した出力情報を、ディスク制御部13Aに出力する。
【0024】
ディスク制御部13Aは、記憶部14Aに対する読み出し及び書き込みを制御する。ディスク制御部13Aは、例えば、通信制御部11A又は制御部12Aから入力された入力情報に対応する情報を記憶部14Aに記憶させる。また、ディスク制御部13Aは、通信制御部11A又は制御部12Aから入力された入力情報に対応する情報を記憶部14Aから取得し、通信制御部11A又は制御部12Aに出力する。
記憶部14Aは、例えば、ハードディスクドライブ、メモリなどの記憶装置である。記憶部14Aは、ファームウェアやアプリケーションプログラムなど、制御部12Aが実行するための各種プログラム、及び、制御部12Aが実行した処理の結果などを記憶する。また、記憶部14Aは、仮想マシン20Aを実行するために必要な情報を記憶する。
仮想マシン20Aは、物理マシン10A上で動作する仮想的なマシンである。仮想マシン20Aの詳細については後述する。
【0025】
次に、
図2を用いて仮想マシンを含む物理マシン10の詳細な構成について説明する。
図2は、本発明の一実施形態に係る情報処理システム1の構成の詳細な一例を示す概略ブロック図である。
【0026】
物理マシン10に備わる仮想マシン20は仮想化した処理装置である。仮想マシン20は、例えば、デスクトップパソコン、ノートパソコン、タブレット端末、スマートフォン、サーバなどを仮想化した処理装置である。
仮想マシン20(20A、20B)は、仮想マシン制御部21(21A、21B)、仮想ディスク制御部22(22A、22B)、及び、仮想記憶部23(23A、23B)を備える。なお、仮想マシン20Aが備える、仮想マシン制御部21A、仮想ディスク制御部22A、及び仮想記憶部23Aと、仮想マシン20Bが備える、仮想マシン制御部21B、仮想ディスク制御部22B、及び仮想記憶部23Bの各機能は基本的に同一である。すなわち、以下説明される仮想マシン20Aの各機能と、仮想マシン20Bの各機能とは入れ替えることができる。
以下では、仮想マシン20Aの各機能について説明する。
【0027】
仮想マシン制御部21Aは、仮想マシン20Aの制御を行う。
後述する仮想ディスク制御部22Aから入力された入力情報に基づいて仮想マシン20Aの制御を行う。また、仮想マシン20Aから入力された入力情報に対応した出力情報を、仮想ディスク制御部22Aに出力する。
【0028】
仮想ディスク制御部22A(判定部の一例)は、仮想記憶部23Aの制御を行う。仮想ディスク制御部22Aは、例えば、仮想マシン制御部21Aから入力された入力情報に対応する情報を仮想記憶部23Aに記憶させる。また、仮想マシン制御部21Aは、仮想マシン制御部21Aから入力された入力情報に対応する出力情報を、仮想記憶部23Aから取得し、仮想マシン制御部21Aに出力する。
また、仮想ディスク制御部22Aは、仮想マシン20Aの外部との通信が必要な情報の送受信を行う。仮想ディスク制御部22Aは、仮想マシン制御部21Aから入力された入力情報のうち仮想マシン20Aの外部との通信が必要な情報を制御部12Aに出力する。また、仮想ディスク制御部22Aは、制御部12Aから受信した情報を、仮想マシン制御部21Aに出力するか、又は仮想記憶部23Aに記憶させる。
【0029】
仮想記憶部23Aは、例えば、ハードディスクドライブ、メモリなどの記憶装置を仮想化したものである。仮想記憶部23Aは、ファームウェアやアプリケーションプログラムなど、仮想マシン制御部21Aが実行するための各種プログラム、及び、仮想マシン制御部21Aが実行した処理の結果などを記憶する。
【0030】
仮想記憶部23Aは仮想的な記憶部であり、仮想記憶部23Aが記憶する実際の情報は、記憶部14Aに記憶されている。従って、仮想記憶部23Aに対する読み出し又は書き込みは、実際には制御部12Aを介して、記憶部14に対する読み出し又は書き込みとして実現される。
例えば、仮想ディスク制御部22Aが仮想記憶部23Aに情報を書き込む場合、実際には、まず、仮想ディスク制御部22Aは、制御部12Aに書き込む情報を出力する。制御部12Aは仮想ディスク制御部22Aから入力される情報に基づいて、ディスク制御部13Aを介して、記憶部14Aに当該情報を書き込む。制御部12Aは書き込みが終了した情報を仮想ディスク制御部22Aに出力する。書き込み処理の詳細については後述する。
また、仮想ディスク制御部22Aが仮想記憶部23Aから情報を読み出す場合、実際には、まず、仮想ディスク制御部22Aは、制御部12Aに読み出す情報を出力する。制御部12Aは仮想ディスク制御部22Aから入力される情報に基づいて、ディスク制御部13Aを介して、記憶部14Aから当該情報を読み出す。制御部12Aは読み出した情報を仮想ディスク制御部22Aに出力する。
【0031】
記憶部14Aは、仮想記憶部23Aに関する情報を、共有情報記憶部141A、同期情報記憶部142A、及び非同期情報記憶部143Aに分けて記憶する。以下各記憶部について説明する。
【0032】
共有情報記憶部141Aは、複数の物理マシン10で共有される共有情報を記憶する。共有情報は、記憶識別情報と対処情報とを含む。記憶識別情報とは、仮想記憶部23Aの情報と、同期情報記憶部142A又は非同期情報記憶部143Aのどちらに記憶させるかを示す情報とを関連付けた情報である。また、対処情報とは、非同期情報記憶部143Aに記憶される情報と他の物理マシン10Bで復元するための復元手段に関する情報(以下、「復元方法情報」とも称する)とを対応づけた情報である。
以下、共有情報記憶部141Aが記憶する情報の一例について、
図3、
図4を用いて説明する。
【0033】
図3は、本発明の一実施形態に係る共有情報記憶部141Aの記憶識別情報の一例を示す図である。
図3に示す一例では、記憶識別情報(要否情報の一例)は、仮想記憶情報と、識別情報とを対応付けた情報である。仮想記憶情報は、仮想記憶部23Aが記憶するファイルやフォルダの位置を示す情報である。識別情報は、復元方法情報を識別するための識別子である。
図3に示す一例では、「仮想記憶情報」が“/・・・/temp/*”で示される情報は、「識別情報」が“識別子101”であることを示す。なお、本実施形態では、同期情報については、復元の必要がない。そのため、仮想記憶部23Aのうち、同期情報に相当する情報については、記憶識別情報を有さない。すなわち、仮想記憶情報で示される情報は、全て非同期情報として記憶部14Aに記憶される情報である。
【0034】
図4は、本発明の一実施形態に係る共有情報記憶部141Aの対処情報の一例を示す図である。
図4に示す一例では、対処情報は、識別情報と復元方法情報とを対応付けた情報である。
図4に示す一例では、「識別情報」が“識別子101”で識別される情報に対応する「復元方法情報」は“削除”である。これは“識別子101”で識別される情報は、例えば、仮想マシン20Aが一時的に利用するための情報であり、削除しても動作に影響を与えない情報であることを示す。また、
図4に示す一例では、「識別情報」が“識別子102”で識別される情報に対応する「復元方法情報」は“共有記憶情報Aで置換”である。これは、“識別子102”で識別される情報は、例えば、仮想マシン20Aの更新前の非同期情報と、共有記憶情報Aに基づいて復元可能な情報であることを示す。また、この場合、共有情報記憶部141Aは、共有記憶情報Aを予め記憶する。
【0035】
図2に戻って、同期情報記憶部142Aは、同期情報を記憶する。また、同期情報記憶部142Aは通信制御部11A及び通信制御部11Bを介して、物理マシン10Bの同期情報記憶部142Bと同期される。共有情報記憶部141A、同期情報記憶部142Aは、共有情報記憶部141B、同期情報記憶部142Bと同一の内容であるが、共有情報記憶部141A及び共有情報記憶部141Bは前もって共有されているのに対し、同期情報記憶部142A及び同期情報記憶部142Bは、仮想マシン20Aが仮想記憶部23Aの更新を行う場合に、同期される。
【0036】
また、非同期情報記憶部143Aは、非同期情報を記憶する。非同期情報は物理マシン10Aと物理マシン10Bとの間で同期されない。従って、非同期情報記憶部143Aと非同期情報記憶部143Bとは同一の内容ではないこともある。また、非同期情報が存在しない場合には、非同期情報記憶部143Bも存在しない。
【0037】
続いて、仮想マシン制御部21Aが仮想ディスク制御部22Aに対して仮想記憶部23Aの更新(書き込みなど)を示す情報を出力する場合の処理について説明する。
【0038】
図5は、本発明の一実施形態に係る仮想マシンの記憶情報の更新処理の一例を示すフローチャートである。
【0039】
仮想マシン制御部21Aは、仮想記憶部23Aに対して更新を行う場合、仮想ディスク制御部22Aに対し、更新を行うことを示す情報を出力する(ステップS100)。このとき、仮想マシン制御部21Aは更新対象及び更新内容を示す情報(以下、「更新内容情報」とも称する)についても、仮想ディスク制御部22Aに出力する。仮想ディスク制御部22Aは情報を受け入れると処理をステップS101に進める。
【0040】
仮想ディスク制御部22Aは、記憶識別情報を読み出し、更新対象が同期情報であるか否かを判定する(ステップS101)。具体的には、仮想ディスク制御部22Aは、制御部12Aに記憶識別情報を要求する情報を出力する。制御部12Aは、ディスク制御部13Aを介して共有情報記憶部141Aから記憶識別情報を取得する。制御部12Aは、取得した情報を仮想ディスク制御部22Aに出力する。仮想ディスク制御部22Aは、取得した記憶識別情報と、更新内容情報とに基づいて、更新対象が、記憶識別情報の仮想記憶情報に存在するか否かを判定する。
仮想ディスク制御部22Aは、更新対象が、記憶識別情報の仮想記憶情報に存在しない場合、更新対象は同期情報であると判定する(ステップS101:YES)。この場合、仮想ディスク制御部22Aは処理をステップS102に進める。
仮想ディスク制御部22Aは、更新対象が、記憶識別情報の仮想記憶情報に存在する場合、更新対象は同期情報でない(非同期情報である)と判定する(ステップS101:NO)。この場合、仮想ディスク制御部22Aは処理をステップS107に進める。
【0041】
仮想ディスク制御部22Aは、制御部12Aに対して、更新内容情報を用いて同期情報を更新することを要求する情報を出力する(ステップS102)。具体的には、仮想ディスク制御部22Aは、識別情報を付加しない更新内容情報を制御部12Aに出力する。制御部12Aは仮想ディスク制御部22Aから入力された情報を受け入れると、処理をステップS103に進める。
【0042】
制御部12A及びディスク制御部13Aは、更新内容情報に基づいて、同期情報記憶部142Aを更新する(ステップS103)。具体的には、まず、制御部12Aは、受け入れた更新内容情報に識別情報が付加されていないことに基づいて、ディスク制御部13Aに対して、更新対象が、同期情報記憶部142Aに記憶される情報であると判定する。制御部12Aは、判定結果に基づき、更新内容情報と、当該情報を同期情報記憶部142Aに記憶させることを示す情報を出力する。ディスク制御部13Aは入力された情報に基づいて、同期情報記憶部142Aの更新対象の情報を更新内容に基づいて更新する。ディスク制御部13Aは更新が終了すると、終了したことを示す情報を制御部12Aに出力する。制御部12Aは入力された情報を受け入れると、処理をステップS104に進める。
【0043】
制御部12Aは、共有情報記憶部141Bの同期処理を要求する(ステップS104)。具体的には、制御部12Aは、識別情報の付加されていない更新内容情報を通信制御部11Aに出力する。通信制御部11Aは、受け入れた情報を、ネットワークNWを介して、他の物理マシン(物理マシン10B)に送信する。通信制御部11Bは受信した情報を制御部12Bに出力する。制御部12Bは入力された情報を受け入れると、処理をステップS105に進める。
【0044】
制御部12B(第2処理部の一例)は、受け入れた更新内容情報に識別情報が付加されていないことに基づいて、更新対象が、同期情報記憶部142Bに記憶される情報であると判定する。制御部12Bは、判定結果に基づき、ディスク制御部13Bに対して、更新内容情報と、当該情報を同期情報記憶部142Bに記憶させることを示す情報を出力する。ディスク制御部13Bは入力された情報に基づき、同期情報記憶部142Bの更新対象となる情報を、更新内容に基づいて更新する。ディスク制御部13Bは更新が終了すると、終了したことを示す情報を制御部12Bに出力する。制御部12Bは入力された情報を受け入れると、処理をステップS106に進める。
【0045】
制御部12Bは、同期処理が完了したことを示す情報を、物理マシン10Aに送信する(ステップS106)。具体的には、制御部12Bは、同期処理が完了したことを示す情報を、通信制御部11Bを介して物理マシン10Aに送信する。制御部12Aは、通信制御部11Aを介して物理マシン10Bの同期処理が完了したことを示す情報を受け入れる。制御部12Aは、全ての他の物理マシン10の同期処理が完了した場合、仮想ディスク制御部22Aに対し、更新完了を示す情報を送信し、更新処理を終了する。
【0046】
仮想ディスク制御部22Aは、制御部12Aに対して、更新内容情報を用いて非同期情報を更新することを要求する情報を出力する(ステップS107)。具体的には、仮想ディスク制御部22Aは、記憶識別情報と更新対象とに基づいて、更新内容情報に識別情報を付加する。仮想ディスク制御部22Aは識別情報を付加した更新内容情報を、制御部12Aに出力する。制御部12Aは仮想ディスク制御部22Aから入力された情報を受け入れると、処理をステップS108に進める。
【0047】
制御部12A及びディスク制御部13Aは、仮想ディスク制御部22Aから入力された情報に基づいて、非同期情報記憶部143Aを更新する(ステップS108)。具体的には、まず、制御部12Aは、受け入れた更新内容情報に識別情報が付加されていることに基づいて、更新対象が、非同期情報記憶部143Aに記憶される情報であると判定する。制御部12Aは、判定結果に基づいて、ディスク制御部13Aに対して、更新内容情報と、当該情報を非同期情報記憶部143Aに記憶させることを示す情報を出力する。ディスク制御部13Aは入力された情報に基づき、非同期情報記憶部143Aの更新対象の情報を更新内容に基づいて更新する。ディスク制御部13Aは更新が終了すると、終了したことを示す情報を制御部12Aに出力する。制御部12Aは入力された情報を受け入れると、処理をステップS109に進める。
【0048】
制御部12Aは、非同期情報更新情報を同期情報記憶部142Aに反映させる(ステップS109)。具体的には、まず制御部12Aは、更新内容情報に基づき、非同期情報記憶部143Aに更新を行ったことを示す非同期情報更新情報を生成し、ディスク制御部13Aに出力する。ここで、非同期情報更新情報は、更新内容情報に付加された識別情報と、更新対象が非同期情報記憶部143Aに記憶される情報であることを示す情報を含むが、更新内容は含まない。
ディスク制御部13Aは入力された情報を、同期情報記憶部142Aに記憶させる。ディスク制御部13Aは処理を終了すると、終了したことを示す情報を制御部12Aに出力する。制御部12Aは入力された情報を受け入れると、処理をステップS110に進める。
【0049】
制御部12Aは、非同期情報更新情報の同期処理を要求する(ステップS110)。具体的には、制御部12Aは、非同期情報更新情報を通信制御部11Aに出力する。通信制御部11Aは、受け入れた情報を、ネットワークNWを介して、他の物理マシン(物理マシン10B)に送信する。通信制御部11Bは受信した情報を制御部12Bに出力する。制御部12Bは入力された情報を受け入れると、処理をステップS111に進める。
【0050】
制御部12Bは、ディスク制御部13Bに対して、受け入れた非同期情報更新情報と、当該情報を同期情報記憶部142Bに記憶させることを示す情報を出力する。ディスク制御部13Bは入力された情報に基づき、同期情報記憶部142Bに非同期情報更新情報を反映する。ディスク制御部13Bは処理が終了すると、終了したことを示す情報を制御部12Bに出力する。制御部12Bは入力された情報を受け入れると、処理をステップS106に進める。
制御部12Aは、上述した処理と同様の処理を行い、他の物理マシン10の全てが非同期情報更新情報の更新を終了すると、仮想ディスク制御部22Aに対し、更新完了を示す情報を送信し、更新処理を終了する。
【0051】
続いて、制御部12Bが仮想マシン20Bを起動する場合の処理について説明する。まず、物理マシン10Bが物理マシン10Aに接続できる場合の処理について説明する。
図6は、本発明の一実施形態に係る他の物理マシンで仮想マシンを開始する場合の動作の一例を示すフローチャートである。
【0052】
まず、制御部12Bは、通信制御部11Bを介して、非同期情報記憶部143Aを要求する情報を物理マシン10Aに送信し(ステップS200)、情報処理システム1は処理をステップS201に進める。
【0053】
制御部12Aは、取得した情報に基づいて、非同期情報記憶部143Aを制御部12Bに送信する(ステップS201)。具体的には、まず、制御部12Aは、通信制御部11Aを介して、物理マシン10Bから非同期情報記憶部143Aを要求する情報を取得する。制御部12Aは、取得した情報をディスク制御部13Aに出力する。ディスク制御部13Aは入力された情報に基づいて非同期情報記憶部143Aから、非同期情報を読み出す。ディスク制御部13Aは読み出した情報を制御部12Aに出力する。制御部12Aは、入力された情報を、通信制御部11Aを介して、物理マシン10Bに送信する。その後、情報処理システム1は、処理をステップS202に進める。
【0054】
制御部12Bは、取得した情報を用いて非同期情報記憶部143Bを生成させる(ステップS203)。具体的には、制御部12Bは、通信制御部11Bを介して物理マシン10Aから受信した情報をディスク制御部13Bに出力する。ディスク制御部13Bは受け入れた情報を非同期情報記憶部143Bとして、記憶部14Bに記憶させる。ディスク制御部13Bは、処理を終了すると、処理が終了したことを示す情報を制御部12Bに出力する。制御部12Bは入力された情報を受け入れると、処理をステップS203に進める。
【0055】
制御部12Bは、仮想マシン20Bを開始する(ステップS203)。制御部12Bは、同期情報記憶部142B及び非同期情報記憶部143Bが記憶部14Bに存在することに基づいて、仮想マシン20Bの起動処理を開始する。同期情報記憶部142B及び非同期情報記憶部143Bは、同期情報記憶部142A及び非同期情報記憶部143Aと同一の内容であるので、仮想マシン20Bは仮想マシン20Aの終了時と同じ状態で開始することができる。
以上が、制御部12Bが仮想マシン20Bを起動する場合の処理の説明である。
【0056】
続いて、何らかの理由によって物理マシン10Aに接続できない場合に、制御部12Bが仮想マシン20Bを起動する場合の処理について説明する。また、以下の処理においては、予め記憶部14Bに記憶されている非同期情報はなく、非同期情報記憶部143Bが存在しない場合について説明するが、本実施形態はこれに限られない。
図7は、本発明の一実施形態に係る他の物理マシンで仮想マシンを開始する場合の動作の別の一例を示すフローチャートである。
【0057】
まず、制御部12Bは、非同期情報に関する情報を取得する(ステップS300)。具体的には、まず、制御部12Bは、ディスク制御部13Bに非同期情報更新情報を要求する情報を出力する。ディスク制御部13Bは、受け入れた情報に基づいて、同期情報記憶部142Bから非同期情報更新情報を取得する。ディスク制御部13Bは取得した情報を制御部12Bに出力する。ディスク制御部13Bは、非同期情報更新情報が同期情報記憶部142Bに存在しない場合、存在しないことを示す情報を制御部12Bに出力する。制御部12Bは、入力された情報を受け入れ、処理をステップS301に進める。
【0058】
制御部12Bは、非同期情報があるか否かを判定する(ステップS301)。具体的には、制御部12Bは取得した情報が非同期情報更新情報である場合、非同期情報があると判定する(ステップS301:YES)。この場合、制御部12Bは処理をステップS302に進める。また、制御部12Bは、取得した情報が非同期情報更新情報がないことを示す情報である場合、非同期情報がないと判定する(ステップS301:NO)。この場合、制御部12Bは処理をステップS305に進める。
【0059】
制御部12Bは、共有情報を取得する(ステップS302)。具体的には、制御部12Bは、非同期情報更新情報に含まれる識別情報を取得する。制御部12Bは、取得した識別情報と一致する対処情報を要求する情報をディスク制御部13Bに出力する。ディスク制御部13Bは入力された情報を受け入れ、共有情報記憶部141Bから、受け入れた識別情報と一致する対処情報を取得する。ディスク制御部13Bは、取得した対処情報を制御部12Bに出力する。制御部12Bは、対処情報を取得すると、処理をステップS303に進める。
【0060】
制御部12Bは、非同期情報を生成する(ステップS303)。具体的には、制御部12Bは、取得した対処情報と、非同期情報更新情報とに基づいて、非同期情報を生成する。制御部12Bは、生成した非同期情報を記憶させる情報をディスク制御部13Bに出力する。ディスク制御部13Bは、非同期情報を非同期情報記憶部143Bに記憶させる。ディスク制御部13Bは処理が完了すると、制御部12Bに完了したことを示す情報を出力する。制御部12Bは、入力された情報を受け入れると、処理をステップS304に進める。
【0061】
制御部12Bは、仮想マシン20Bを開始する(ステップS304)。制御部12Bは、同期情報記憶部142B及び非同期情報記憶部143Bが記憶部14Bに存在することに基づいて、仮想マシン20Bの起動処理を開始する。
【0062】
制御部12Bは、非同期情報がない場合、空の非同期情報を作成する(ステップS305)。具体的には、制御部12Bは、空の非同期情報を作成することを指示する情報をディスク制御部13Bに出力する。ディスク制御部13Bは、入力された情報に基づいて、非同期情報記憶部143Bが空であることを示す情報を生成する。ディスク制御部13Bは処理が完了すると、制御部12Bに完了したことを制御部12Bに完了したことを示す情報を出力する。制御部12Bは、入力された情報を受け入れると、処理をステップS304に進める。
以上が、物理マシン10Aに接続できない場合に、制御部12Bが仮想マシン20Bを起動する場合の処理の説明である。
【0063】
以上説明したように、情報処理システム1は、異なる物理マシン上で動作する仮想マシンを備え、第1の物理マシン(物理マシン10A)上で動作する第1の仮想マシン(仮想マシン20A)と、第2の物理マシン(物理マシン10B)上で動作する第2の仮想マシン(仮想マシン20B)との間で前記仮想マシンの記憶情報を共有する情報処理システムにおいて、前記記憶情報と、前記第1の仮想マシンと前記第2の仮想マシンとの間で同期の要否を示す要否情報(例えば、記憶識別情報)と、に基づいて、前記同期の必要な前記記憶情報を同期情報と判定し、前記同期の不要な前記記憶情報を非同期情報と判定する判定部(例えば、仮想ディスク制御部22A)と、前記同期情報について、複数の前記仮想マシンの間で同期処理を実行する第1処理部(制御部12A)とを備える。
【0064】
これにより、情報処理システム1は、物理マシン10Aと物理マシン10Bとの間で更新情報の全てを同期することなく、仮想マシンに関する記憶情報を共有することが可能になる。これにより、ネットワークNWを介して送受信する情報が少なくなることでネットワークNWを介する他の送受信情報への影響が小さくなる。そのため応答性の低下を抑制することができる。また、同期する情報が少なくなるため、同期処理に必要なリソースを低減することができ、他の処理の効率を高めることができる。そのため、効率性の低下を抑制することができる。
【0065】
また、情報処理システム1の前記判定部は、前記記憶情報が更新されるときに、前記記憶情報と前記要否情報とに基づいて、更新される前記記憶情報のうち、前記同期情報に含まれる情報を更新同期情報と判定し、更新される前記記憶情報のうち、前記非同期情報に含まれる情報を更新非同期情報と判定し、前記第1処理部は、前記更新同期情報について、前記同期処理を実行する。
これにより、情報処理システム1は、更新毎に全ての更新情報を同期することなく、物理マシン10Aと物理マシン10Bとの間で更新情報の全てを同期することなく、仮想マシンに関する記憶情報を共有することが可能になる。これにより、ネットワークNWを介して送受信する情報が少なくなることでネットワークNWを介する他の送受信情報への影響が小さくなる。そのため、応答性や効率性の低下を抑制することができる。
【0066】
また、前記第1処理部は、前記更新非同期情報がある場合に、前記非同期情報の更新が行われることを示す非同期情報更新情報を生成し、前記非同期情報更新情報について前記同期処理を行う。
これにより、情報処理システム1は、更新時に同期が行われない非同期情報についても、更新が行われたかどうかを知らせることができる。更新が行われた非同期情報については、他の物理マシン上で仮想マシンを動作させる場合にのみ取得すればよいので、通信負荷を軽減することができ、応答性や効率性の低下を抑制することができる。
【0067】
また、情報処理システム1は、前記非同期情報更新情報と前記非同期情報を更新するための情報とを対応付けた対処情報と、前記非同期情報更新情報とに基づいて、前記非同期情報の更新を行う第2処理部を更に備える。
これにより、他の物理マシン上の非同期情報についても更新を行うことが可能になり、複数の物理マシン間上で動作する仮想マシンの記憶情報を、通信負荷を軽減したまま、共有することができる。そのため、応答性や効率性の低下を抑制することができる。
【0068】
図8は、上記の実施形態に関わる情報処理システムの最小構成の一例を示すブロック図である。
この図に示すように、異なる物理マシン上で動作する仮想マシンを備え、第1の前記物理マシン上で動作する第1の前記仮想マシンと、第2の前記物理マシン上で動作する第2の前記仮想マシンとの間で前記仮想マシンの記憶情報を共有する情報処理システム1は、少なくとも判定部101と第1処理部102とを備える。
判定部101は、前記記憶情報と、前記第1の仮想マシンと前記第2の仮想マシンとの間で同期の要否を示す要否情報と、に基づいて、前記同期の必要な前記記憶情報を同期情報と判定し、前記同期の不要な前記記憶情報を非同期情報と判定する。
第1処理部102は、前記同期情報について、複数の前記仮想マシンの間で同期処理を実行する。
【0069】
なお、上述した実施形態において、非同期情報は、複数の物理マシン10間で共有しない例を説明したが、これには限られない。例えば、定期的に複数の物理マシン10間で非同期情報の差分情報を共有してもよい。この場合、共有後に起動した仮想マシン20において更新された非同期情報に関する情報だけを、非同期情報更新情報として同期してもよい。
【0070】
また、上述した実施形態において、共有情報記憶部141(141A、141B)は、各物理マシン10で同じものを保持する例を説明したが、これには限られない。例えば、共有ディスク装置や、ネットワークNWを介して接続された記憶装置上に共有情報が存在し、各物理マシン10は、当該共有情報を参照してもよい。
【0071】
また、上述した実施形態において、物理マシン10Aに接続できず非同期情報記憶部143Aを取得できない場合に、非同期情報更新情報を用いて非同期情報を生成する例を説明したが、これには限られない。例えば、制御部12Bは、非同期情報更新情報を無効化させ、空の非同期情報記憶部143Bを作成するようにしてもよい。
【0072】
また、上述した実施形態において、物理マシン10は、例えば、ネットワークNWを介して、ユーザが所持するデスクトップパソコン、ノートパソコン、タブレット端末、スマートフォンなどから接続されるサーバなどの処理装置である例を説明したが、これには限られない。例えば、ユーザが所持するデスクトップパソコン、ノートパソコン、タブレット端末、スマートフォンなどの端末装置であってもよい。
【0073】
また、上述した実施形態において、識別情報は非同期情報についてのみ付加される例を説明したが、これには限られない。例えば、同期情報については同期情報であることを示す識別情報が付加されるようであってもよい。このとき、制御部12は識別情報に基づいて、更新内容情報が同期情報であるか非同期情報であるかを判定する。
【0074】
また、上述した各実施形態において、制御部12Aとディスク制御部13Aとが同一の物理マシン10Aに含まれる例を説明したが、これには限られない。例えば、ディスク制御部13A、記憶部14Aを含む記憶装置Aが物理マシン10Aの外部に備えられてもよい。同様にディスク制御部13B、記憶部14Bを含む記憶装置Bが物理マシン10Bの外部に備えられてもよい。なお、記憶装置Aと記憶装置Bとは異なる。
【0075】
また、上述した実施形態における物理マシン10の一部、例えば、制御部12(12A、12B)などをコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、物理マシン10に内蔵されたコンピュータシステムであって、OS(Operating System)や周辺機器等のハードウェアを含むものとする。
【0076】
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0077】
また、上述した実施形態における物理マシン10の一部、または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。情報処理システム1の各機能部は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【0078】
以上、図面を参照してこの発明の一実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。また、本発明の一態様は、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。また、上記各実施形態や変形例に記載された要素であり、同様の効果を奏する要素同士を置換した構成も含まれる。
【符号の説明】
【0079】
1・・・情報処理システム、10、10A、10B・・・物理マシン、11、11A、11B・・・通信制御部、12、12A、12B・・・制御部、13、13A、13B・・・ディスク制御部、14、14A、14B・・・記憶部、141A、141B・・・共有情報記憶部、142A、142B・・・同期情報記憶部、143A、143B・・・非同期情報記憶部、20、20A、20B・・・仮想マシン、21、21A、21B・・・仮想マシン制御部、22、22A、22B・・・仮想ディスク制御部、23、23A、23B・・・仮想記憶部