(57)【要約】  複数のオペレーティングシステムが稼働する計算機であって、複数のオペレーティングシステムは、第１のオペレーティングシステムと、複数の仮想計算機を生成する第２のオペレーティングシステムとを含み、第１のオペレーティングシステムは第１の論理リソース上で稼働し、第２のオペレーティングシステムは第２の論理リソース上で稼働し、仮想計算機では第３のオペレーティングシステムが稼動し、第３のオペレーティングシステムは、仮想メモリにキャッシュメモリ領域を確保し、第２のオペレーティングシステムは、第２のオペレーティングシステムが管理する物理アドレス空間における第２のキャッシュメモリ領域の位置を示す配置情報を生成し、第１のオペレーティングシステムは、配置情報に基づいて、キャッシュ領域に格納されるデータを取得する。
2015132941.tif 000002
【特許請求の範囲】
【請求項１】
複数のオペレーティングシステムが稼働する計算機であって、
前記計算機は、物理リソースとして、プロセッサ、前記プロセッサに接続される揮発性メモリ、前記プロセッサに接続される不揮発性メモリ、および前記プロセッサに接続されるＩ／Ｏデバイスを備え、
前記複数のオペレーティングシステムは、第１のオペレーティングシステムと、複数の仮想計算機を生成する第２のオペレーティングシステムと、を含み、
前記第１のオペレーティングシステムは、
前記プロセッサが論理的に分割された第１の論理プロセッサ、前記揮発性メモリが論理的に分割された第１の論理揮発性メモリ、および前記Ｉ／Ｏデバイスが論理的に分割された第１論理Ｉ／Ｏデバイスを含む第１の論理リソース上で稼働し、
前記計算機の電源の遮断を検出する電源遮断検出部を有し、
前記第２のオペレーティングシステムは、前記プロセッサが論理的に分割された第２のプロセッサ、前記揮発性メモリが論理的に分割された第２の論理揮発性メモリ、前記Ｉ／Ｏデバイスが論理的に分割された第２のＩ／Ｏデバイスを含む第２の論理リソース上で稼働し、
前記複数の仮想計算機の各々では、第３のオペレーティングシステムが稼動し、
前記第１のオペレーティングシステムは、
当該第１のオペレーティングシステムの起動時に、前記第１の論理揮発性メモリに、一時的にデータを格納する第１のキャッシュメモリ領域を確保し、
前記第１のオペレーティングシステムが管理する前記第１の論理揮発性メモリの物理アドレス空間における前記第１のキャッシュメモリ領域の位置を示す第１の配置情報を生成し、
前記第２のオペレーティングシステムは、
少なくとも一つの仮想計算機を生成して、前記少なくとも一つの仮想計算機上で前記第３のオペレーティングシステムを起動し、
前記第３のオペレーティングシステムは、前記少なくとも一つの仮想計算機に割り当てられた仮想メモリに、第２のキャッシュメモリ領域を確保し、
前記第２のオペレーティングシステムは、当該第２のオペレーティングシステムが管理する前記第２の論理揮発性メモリの物理アドレス空間における前記第２のキャッシュメモリ領域の位置を示す第２の配置情報を生成し、
前記第１のオペレーティングシステムは、
前記計算機の電源の遮断が検出された場合に、前記第１の配置情報に基づいて、前記第１のキャッシュメモリ領域に格納される第１のデータを取得し、
前記第１のデータを前記不揮発性メモリに格納し、
前記第２の配置情報を取得し、
前記第２の配置情報に基づいて、前記第２のキャッシュメモリ領域に格納される第２のデータを前記第２の論理揮発性メモリから取得し、
前記第２のデータを前記不揮発性メモリに格納することを特徴とする計算機。
【請求項２】
請求項１に記載の計算機であって、
前記第１のオペレーティングシステムは、
前記計算機が再起動した場合に、前記第１の論理揮発性メモリに、新たに前記第１のキャッシュメモリ領域を確保し、
新たに前記第１の配置情報を生成し、
前記不揮発性メモリに格納される前記第１のデータを取得し、
前記新たに生成された第１の配置情報に基づいて、前記新たに確保された第１のキャッシュメモリ領域に前記第１のデータをリストアし、
前記第２のオペレーティングシステムは、
前記計算機が再起動した場合に、新たに前記少なくとも一つの仮想計算機を生成して、前記新たに生成された少なくとも一つの仮想計算機上で前記第３のオペレーティングシステムを起動し、
前記第３のオペレーティングシステムは、前記新たに生成された少なくとも一つの仮想計算機に新たに割り当てられた仮想メモリに、新たに前記第２のキャッシュメモリ領域を確保し、
前記第２のオペレーティングシステムは、新たに前記第２の配置情報を生成し、
前記第１のオペレーティングシステムに、前記少なくとも一つの仮想計算機上で稼動する第３のオペレーティングシステムの前記第２のデータのリストア要求を送信し、
前記第１のオペレーティングシステムは、
前記不揮発性メモリから、前記少なくとも一つの仮想計算機に対応する前記第２のデータを取得し、
前記新たに生成された第２の配置情報を取得し、
前記新たに生成された第２の配置情報に基づいて、前記新たに確保された第２のキャッシュメモリ領域に前記第２のデータをリストアすることを特徴とする計算機。
【請求項３】
請求項２に記載の計算機であって、
前記第２のオペレーティングシステムは、
前記少なくとも一つの仮想計算機を生成する場合に、前記第２のオペレーティングシステムが管理する物理アドレス空間と、前記第３のオペレーティングシステムが管理する物理アドレス空間との間のマッピング関係を管理する第１のマッピング情報を生成し、
前記第３のオペレーティングシステムは、
前記第３のオペレーティングシステムが管理する物理アドレス空間と、前記第３のオペレーティングシステムが管理する仮想アドレス空間との間の対応関係を管理する第２のマッピング情報を生成し、
前記第３のオペレーティングシステムが管理する仮想アドレス空間で連続する記憶領域を前記第２のキャッシュメモリ領域として確保し、
前記第２のマッピング情報に基づいて、前記第３のオペレーティングシステムが管理する仮想メモリの物理アドレス空間における前記第２のキャッシュメモリ領域を構成する複数の記憶領域の位置を特定し、
前記第３のオペレーティングシステムが管理する仮想メモリの物理アドレス空間における前記特定された複数の記憶領域の各々の物理アドレスを含むエントリを複数生成し、
前記第３のオペレーティングシステムが管理する仮想アドレス空間における前記第２のキャッシュメモリ領域のアドレス順に、前記生成された複数のエントリを並び替えることによって、前記第３のオペレーティングシステムが管理する前記仮想メモリの物理アドレス空間における前記第２のキャッシュメモリ領域の位置を示す第３の配置情報を生成し、
前記第２のオペレーティングシステムは、
前記第２の配置情報を生成する場合に、前記第３の配置情報および前記第１のマッピング情報に基づいて、前記第２のオペレーティングシステムが管理する第２の論理揮発性メモリの物理アドレス空間における前記第２のキャッシュメモリ領域を構成する複数の記憶領域の位置を特定し、
前記第２のオペレーティングシステムが管理する第２の論理揮発性メモリの物理アドレス空間における前記特定された複数の記憶領域の各々の物理アドレスを含むエントリを複数生成し、
前記第３のオペレーティングシステムが管理する仮想アドレス空間における前記第２のキャッシュメモリ領域のアドレス順に、前記生成された複数のエントリを並び替えることによって、前記第２の配置情報を生成することを特徴とする計算機。
【請求項４】
請求項３に記載の計算機であって、
前記第１のオペレーティングシステムは、前記仮想メモリに格納される前記第２のデータをバックアップする場合に、前記仮想メモリにおける前記第３のオペレーティングシステムが管理する前記仮想アドレス空間におけるアドレス順に、前記第２のデータを前記不揮発性メモリに格納することを特徴とする計算機。
【請求項５】
請求項４に記載の計算機であって、
前記不揮発性メモリは、アドレスが連続する記憶領域から構成される前記第１のデータを格納する第１の不揮発性キャッシュメモリ領域、およびアドレスが連続する記憶領域から構成される前記少なくとも一つの仮想計算機の前記第２のデータを格納する第２の不揮発性キャッシュメモリ領域を含み、
前記第１のオペレーティングシステムは、
前記第１の配置情報のエントリ順に、前記第１のキャッシュメモリ領域を構成する記憶領域に格納されるデータを読み出し、
前記第１の不揮発性キャッシュメモリ領域のアドレス順に、前記第１のキャッシュメモリ領域を構成する記憶領域から読み出されたデータを格納し、
前記第２の配置情報のエントリ順に、前記第２のキャッシュメモリ領域を構成する記憶領域に格納されるデータを読み出し、
前記第１の不揮発性キャッシュメモリ領域のアドレス順に、前記第２のキャッシュメモリ領域を構成する記憶領域から読み出されたデータを格納することを特徴とする計算機。
【請求項６】
複数のオペレーティングシステムが稼働する計算機におけるキャッシュデータ管理方法であって、
前記計算機は、物理リソースとして、プロセッサ、前記プロセッサに接続される揮発性メモリ、前記プロセッサに接続される不揮発性メモリ、および前記プロセッサに接続されるＩ／Ｏデバイスを備え、
前記複数のオペレーティングシステムは、第１のオペレーティングシステムと、複数の仮想計算機を生成する第２のオペレーティングシステムと、を含み、
前記第１のオペレーティングシステムは、
前記プロセッサが論理的に分割された第１の論理プロセッサ、前記揮発性メモリが論理的に分割された第１の論理揮発性メモリ、および前記Ｉ／Ｏデバイスが論理的に分割された第１論理Ｉ／Ｏデバイスを含む第１の論理リソース上で稼働し、
前記計算機の電源の遮断を検出する電源遮断検出部を有し、
前記第２のオペレーティングシステムは、前記プロセッサが論理的に分割された第２のプロセッサ、前記揮発性メモリが論理的に分割された第２の論理揮発性メモリ、前記Ｉ／Ｏデバイスが論理的に分割された第２のＩ／Ｏデバイスを含む第２の論理リソース上で稼働し、
前記複数の仮想計算機の各々では、第３のオペレーティングシステムが稼動し、
前記キャッシュデータ管理方法は、
前記第１のオペレーティングシステムが、当該第１のオペレーティングシステムの起動時に、前記第１の論理揮発性メモリに、一時的にデータを格納する第１のキャッシュメモリ領域を確保する第１のステップと、
前記第１のオペレーティングシステムが、前記第１のオペレーティングシステムが管理する前記第１の論理揮発性メモリの物理アドレス空間における前記第１のキャッシュメモリ領域の位置を示す第１の配置情報を生成する第２のステップと、
前記第２のオペレーティングシステムが、少なくとも一つの仮想計算機を生成して、前記少なくとも一つの仮想計算機上で前記第３のオペレーティングシステムを起動する第３のステップと、
前記第３のオペレーティングシステムが、前記少なくとも一つの仮想計算機に割り当てられた仮想メモリに、第２のキャッシュメモリ領域を確保する第４のステップと、
前記第２のオペレーティングシステムが、前記第２のオペレーティングシステムは、当該第２のオペレーティングシステムが管理する前記第２の論理揮発性メモリの物理アドレス空間における前記第２のキャッシュメモリ領域の位置を示す第２の配置情報を生成する第５のステップと、
前記第１のオペレーティングシステムが、前記計算機の電源の遮断が検出された場合に、前記第１の配置情報に基づいて、前記第１のキャッシュメモリ領域に格納される第１のデータを取得し、前記不揮発性メモリに前記第１のデータを格納する第６のステップと、
前記第１のオペレーティングシステムが、前記第２の配置情報を取得する第７のステップと、
前記第１のオペレーティングシステムが、前記第２の配置情報に基づいて、前記第２のキャッシュメモリ領域に格納される第２のデータを前記第２の論理揮発性メモリから取得し、前記不揮発性メモリに前記第２のデータを格納する第８のステップと、を含むことを特徴とするキャッシュデータ管理方法。
【請求項７】
請求項６に記載のキャッシュデータ管理方法であって、
前記キャッシュデータ管理方法は、
前記第１のオペレーティングシステムが、前記計算機が再起動した場合に、前記第１の論理揮発性メモリに、新たに前記第１のキャッシュメモリ領域を確保する第９のステップと、
前記第１のオペレーティングシステムが、新たに前記第１の配置情報を生成する第１０のステップと、
前記第１のオペレーティングシステムが、前記不揮発性メモリに格納される前記第１のデータを取得する第１１のステップと、
前記第１のオペレーティングシステムが、前記新たに生成された第１の配置情報に基づいて、前記新たに確保された第１のキャッシュメモリ領域に前記第１のデータをリストアする第１２のステップと、
前記第２のオペレーティングシステムが、前記計算機が再起動した場合に、新たに前記少なくとも一つの仮想計算機を生成して、前記新たに生成された少なくとも一つの仮想計算機上で前記第３のオペレーティングシステムを起動する第１３のステップと、
前記第３のオペレーティングシステムが、前記新たに生成された少なくとも一つの仮想計算機に新たに割り当てられた仮想メモリに、新たに前記第２のキャッシュメモリ領域を確保する第１４のステップと、
前記第２のオペレーティングシステムが、新たに前記第２の配置情報を生成する第１５のステップと、
前記第２のオペレーティングシステムが、前記第１のオペレーティングシステムに、前記少なくとも一つの仮想計算機上で稼動する第３のオペレーティングシステムの前記第２のデータのリストア要求を送信する第１６のステップと、
前記第１のオペレーティングシステムが、前記不揮発性メモリから、前記少なくとも一つの仮想計算機に対応する前記第２のデータを取得する第１７のステップと、
前記第１のオペレーティングシステムが、前記新たに生成された第２の配置情報を取得する第１８のステップと、
前記第１のオペレーティングシステムが、前記新たに生成された第２の配置情報に基づいて、前記新たに確保された第２のキャッシュメモリ領域に前記第２のデータをリストアする第１９のステップと、を含むことを特徴とするキャッシュデータ管理方法。
【請求項８】
請求項７に記載のキャッシュデータ管理方法であって、
前記第３のステップおよび前記第１３のステップは、前記第２のオペレーティングシステムが、前記第２のオペレーティングシステムが管理する物理アドレス空間と、前記第３のオペレーティングシステムが管理する物理アドレス空間との間のマッピング関係を管理する第１のマッピング情報を生成するステップを含み、
前記第４のステップおよび前記第１４のステップは、
前記第３のオペレーティングシステムが、前記第３のオペレーティングシステムが管理する物理アドレス空間と、前記第３のオペレーティングシステムが管理する仮想アドレス空間との間の対応関係を管理する第２のマッピング情報を生成するステップと、
前記第３のオペレーティングシステムが、前記第３のオペレーティングシステムが管理する仮想アドレス空間で連続する記憶領域を前記第２のキャッシュメモリ領域として確保するステップと、
前記第３のオペレーティングシステムが、前記第２のマッピング情報に基づいて、前記第３のオペレーティングシステムが管理する仮想メモリの物理アドレス空間における前記第２のキャッシュメモリ領域を構成する複数の記憶領域の位置を特定するステップと、
前記第３のオペレーティングシステムが、前記第３のオペレーティングシステムが管理する仮想メモリの物理アドレス空間における前記特定された複数の記憶領域の各々の物理アドレスを含むエントリを複数生成するステップと、
前記第３のオペレーティングシステムが、前記第３のオペレーティングシステムが管理する仮想アドレス空間における前記第２のキャッシュメモリ領域のアドレス順に、前記生成された複数のエントリを並び替えることによって、前記第３のオペレーティングシステムが管理する前記仮想メモリの物理アドレス空間における前記第２のキャッシュメモリ領域の位置を示す第３の配置情報を生成するステップと、を含み、
前記第５のステップおよび前記第１５のステップは、
前記第２のオペレーティングシステムが、前記第３の配置情報および前記第１のマッピング情報に基づいて、前記第２のオペレーティングシステムが管理する第２の論理揮発性メモリの物理アドレス空間における前記第２のキャッシュメモリ領域を構成する複数の記憶領域の位置を特定するステップと、
前記第２のオペレーティングシステムが、前記第２のオペレーティングシステムが管理する第２の論理揮発性メモリの物理アドレス空間における前記特定された複数の記憶領域の各々の物理アドレスを含むエントリを複数生成するステップと、
前記第２のオペレーティングシステムが、前記第３のオペレーティングシステムが管理する仮想アドレス空間における前記第２のキャッシュメモリ領域のアドレス順に、前記生成された複数のエントリを並び替えることによって、前記第２の配置情報を生成するステップと、を含むことを特徴とするキャッシュデータ管理方法。
【請求項９】
請求項８に記載のキャッシュデータ管理方法であって、
前記第１０のステップでは、前記第１のオペレーティングシステムが、前記仮想メモリにおける前記第３のオペレーティングシステムが管理する前記仮想アドレス空間におけるアドレス順に、前記第２のデータを前記不揮発性メモリに格納することを特徴とするキャッシュデータ管理方法。
【請求項１０】
請求項９に記載のキャッシュデータ管理方法であって、
前記不揮発性メモリは、アドレスが連続する記憶領域から構成される前記第１のデータを格納する第１の不揮発性キャッシュメモリ領域、およびアドレスが連続する記憶領域から構成される前記少なくとも一つの仮想計算機の前記第２のデータを格納する第２の不揮発性キャッシュメモリ領域を含み、
前記第６のステップは、
前記第１のオペレーティングシステムが、前記第１の配置情報のエントリ順に、前記第１のキャッシュメモリ領域を構成する記憶領域に格納されるデータを読み出すステップと、
前記第１のオペレーティングシステムが、前記第１の不揮発性キャッシュメモリ領域のアドレス順に、前記第１のキャッシュメモリ領域を構成する記憶領域から読み出されたデータを格納するステップと、を含み、
前記第８のステップは、
前記第１のオペレーティングシステムが、前記第２の配置情報のエントリ順に、前記第２のキャッシュメモリ領域を構成する記憶領域に格納されるデータを読み出すステップと、
前記第１のオペレーティングシステムが、前記第１の不揮発性キャッシュメモリ領域のアドレス順に、前記第２のキャッシュメモリ領域を構成する記憶領域から読み出されたデータを格納するステップと、を含むことを特徴とするキャッシュデータ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチＯＳ技術および仮想マシン技術が適用された計算機におけるキャッシュデータのバックアップ技術およびリストア技術に関する。
【背景技術】
【０００２】
クライアント装置が、Ｅｔｈｅｒｎｅｔ等で構成されたＬＡＮで接続されたファイルサーバ、データベースサーバ、等のサーバ装置とデータのリード／ライトを行い、かつ、サーバ装置がバックエンドとして、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ等で構成されたＳＡＮで接続されたストレージ装置とデータのリード／ライトを行うシステムにおいて、ストレージ装置と各サーバ装置には、一般に、システムパフォーマンスの向上等の観点から、キャッシュメモリが搭載されている。キャッシュメモリは、典型的には、ＤＲＡＭ等の揮発性メモリから構成される、システムメモリ上に配置する。例えば、大容量のＨＤＤを搭載した大規模なストレージ装置は、数〜数十ギガバイトオーダの大容量のキャッシュメモリを実装し、その稼動中、そこにアプリケーションデータをキャッシュしながら、フロントエンド装置に対するＩ／Ｏアクセス要求に応答する。【０００３】
このような装置は、キャッシュメモリ上の膨大な量のデータが消失することを防止するため、不意の電源遮断時には二次電源であるバッテリから電源を一時的に供給し、ＨＤＤよりも高速にアクセス可能なＳＳＤ等のＮＶＲＡＭ（不揮発性メモリ）にバックアップする。さらに、マルチプロセッサで構成されている装置の場合、バッテリ動作中の消費電力を抑えるため、１つのプロセッサだけに給電し、そのプロセッサだけがキャッシュメモリのバックアップ動作をする、といった工夫がされている。【０００４】
また、近年、物理計算機上のハードウェアリソースを有効に活用するために、一台の物理計算機上で二つ以上のＯＳ（オペレーティングシステム）を起動する技術が注目されている（例えば、特許文献１および特許文献２参照）。【０００５】
特許文献１には、「マルチオペレーティングシステム計算機は、優先度が設定された複数のタスクを優先度順に実行する第１のＯＳ（オペレーティングシステム）と、前記第１のＯＳと異なる第２のＯＳとを動作ＯＳとして交互に動作させるマルチオペレーティングシステム計算機であって、前記第１のＯＳが動作ＯＳとして動作しているときに前記複数のタスクのうち所定の優先度が設定された所定のタスクであって動作ＯＳの切替え契機を特定するための切替え契機タスクとして用いられるタスクが実行された場合に、動作ＯＳを前記第１のＯＳから前記第２のＯＳに切り替えるＯＳ切替え部」を備えることが記載されている。【０００６】
また、特許文献２には、「第１のＯＳと第２のＯＳとの少なくとも２つのＯＳを起動するマルチＯＳ起動装置において、（１）メモリ領域を有し、前記メモリ領域に対してメモリ空間が定義される１次記憶部と、（２）セカンドブートローダと、前記第２のＯＳとを記憶する２次記憶部と、（３）ＣＰＵに対する制御情報を示すコンテキストであって前記第１のＯＳ用のコンテキストである第１のコンテキストで動作する前記第１のＯＳのもとで動作するファーストブートローダを前記第１のコンテキストで動作中の前記第１のＯＳのもとで動作させることにより、前記第１のＯＳが管理する第１のメモリ空間として前記第１のコンテキストにより前記１次記憶装置に対して定義された前記１次記憶部のメモリ領域に前記２次記憶部から前記セカンドブートローダと前記第２のＯＳとを前記ファーストブートローダにロードさせるＯＳ実行部と、（４）前記第１のメモリ空間として定義されたメモリ領域にロードされた前記セカンドブートローダを前記第１のコンテキストで動作中の前記第１のＯＳのもとで実行することにより前記第２のＯＳが管理する第２のメモリ空間として定義されるメモリ領域と前記セカンドブートローダ及び前記第２のＯＳがロードされたメモリ領域とを含む第３のメモリ空間を前記１次記憶部に対して定義する前記セカンドブートローダ用のコンテキストを前記セカンドブートローダに生成させると共に生成された前記セカンドブートローダ用のコンテキストへ前記第１のコンテキストから切り替えさせ、前記セカンドブートローダ用のコンテキストのもとで前記セカンドブートローダを実行することにより前記第３のメモリ空間に含まれる前記第２のメモリ空間として定義された前記１次記憶部のメモリ領域に前記ファーストブートローダによって前記１次記憶部のメモリ領域にロードされた前記第２のＯＳを前記セカンドブートローダにロードさせると共に前記第２のＯＳ用のコンテキストを生成させ、生成された前記第２のＯＳ用のコンテキストへ前記セカンドブートローダ用のコンテキストから切り替えさせ、前記第２のＯＳ用のコンテキストのもとで前記セカンドブートローダに前記第２のＯＳの起動を実行させるローダ実行部と」を備えることが記載されている。【０００７】
このマルチＯＳ技術を利用し、第１のＯＳ（第１のホストＯＳ）としてストレージ制御ＯＳを搭載し、第２のＯＳ（第２のホストＯＳ）として仮想マシンモニタ（ＶＭＭ）を搭載し、さらに仮想マシンモニタ上の複数の仮想マシン（ＶＭ１〜ＶＭｎ）上のＯＳ（ゲストＯＳ１〜ゲストＯＳｎ）としてサーバ制御ＯＳを搭載することで、省スペース化・低価格化が期待できる。また、従来ＳＡＮを介して行っていたＩ／Ｏデータのリード／ライトを、ホストＯＳ１−ゲストＯＳ間共有メモリを介して行うようにすることで、Ｉ／Ｏデータのリード／ライト性能の向上も期待できる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平１１−１４９３８５号公報
【特許文献２】国際公開第２００９／１１３３９４号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
マルチＯＳ技術および仮想マシン技術を用いて、一つのハードウェア（計算機）上に複数のホストＯＳを搭載し、かつ、少なくとも一つのホストＯＳ上に複数のゲストＯＳが稼動する計算機システムにおいて、不意の電源遮断が発生した場合に、消費電力を抑え、かつ、ホストＯＳおよびゲストＯＳに関連するデータをＮＶＲＡＭ等にバックアップできる方法が必要である。【００１０】
例えば、一つの計算機上に、第１のホストＯＳ（ストレージ制御ＯＳ）、および、複数のゲストＯＳ（サーバ制御ＯＳ）が稼動する第２のホストＯＳ（ＶＭＭ）を搭載した計算機システムにおいて、以下のような要求に応える必要がある。すなわち、計算機システムにおいて、不意の電源遮断が発生した場合、第１のホストＯＳが使用する一つのプロセッサだけを用いて、第１のホストＯＳ自身に割り当てられたキャッシュメモリに格納されるデータに加え、各ゲストＯＳに割り当てられたキャッシュメモリに格納されるデータも含めてＮＶＲＡＭにバックアップしたいとの要求が考えられる。【００１１】
（１）しかし、各ゲストＯＳは第２のホストＯＳによって管理されているため、第１のホストＯＳは、各ゲストＯＳに割り当てられるキャッシュメモリが物理アドレス空間のどこに配置されているかを把握できない。そのため、従来技術では、第１のホストＯＳが、各ゲストＯＳに割り当てられたキャッシュメモリのデータをＮＶＲＡＭ等にバックアップすることができない。【００１２】
（２）また、電源の遮断状態から復旧して、計算機システムの再起動後に、第１のホストＯＳは、各ゲストＯＳに割り当てられたキャッシュメモリに、ＮＶＲＡＭにバックアップされたデータをリストアする必要がある。しかし、計算機システムの再起動後、物理アドレス空間における、各ゲストＯＳに割り当てられるキャッシュメモリの配置は、再起動前の配置とは異なっている可能性がある。そのため、第１のホストＯＳは、各ゲストＯＳに割り当てられたキャッシュメモリの配置を把握できないため、各ゲストＯＳのバックアップデータを適切にリストアすることができない。【００１３】
本発明は、複数のホストＯＳを搭載し、少なくとも一つのホストＯＳ上に複数のゲストＯＳが稼動する計算機システムにおいて、一つのホストＯＳが、当該ホストＯＳのキャッシュメモリに格納されるデータ、および他のホストＯＳ上で稼動する各ゲストＯＳに割り当てられたキャッシュメモリに格納されるデータをバックアップするための方法を提供することを目的とする。【００１４】
また、本発明は、各ゲストＯＳに割り当てられたキャッシュメモリの物理アドレス空間における配置が再起動の前後で変化する場合であっても、各ゲストＯＳのバックアップデータを適切にリストアするための方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、複数のオペレーティングシステムが稼働する計算機であって、前記計算機は、物理リソースとして、プロセッサ、前記プロセッサに接続される揮発性メモリ、前記プロセッサに接続される不揮発性メモリ、および前記プロセッサに接続されるＩ／Ｏデバイスを備え、前記複数のオペレーティングシステムは、第１のオペレーティングシステムと、複数の仮想計算機を生成する第２のオペレーティングシステムと、を含み、前記第１のオペレーティングシステムは、前記プロセッサが論理的に分割された第１の論理プロセッサ、前記揮発性メモリが論理的に分割された第１の論理揮発性メモリ、および前記Ｉ／Ｏデバイスが論理的に分割された第１論理Ｉ／Ｏデバイスを含む第１の論理リソース上で稼働し、前記計算機の電源の遮断を検出する電源遮断検出部を有し、前記第２のオペレーティングシステムは、前記プロセッサが論理的に分割された第２のプロセッサ、前記揮発性メモリが論理的に分割された第２の論理揮発性メモリ、前記Ｉ／Ｏデバイスが論理的に分割された第２のＩ／Ｏデバイスを含む第２の論理リソース上で稼働し、前記複数の仮想計算機の各々では、第３のオペレーティングシステムが稼動し、前記第１のオペレーティングシステムは、当該第１のオペレーティングシステムの起動時に、前記第１の論理揮発性メモリに、一時的にデータを格納する第１のキャッシュメモリ領域を確保し、前記第１のオペレーティングシステムが管理する前記第１の論理揮発性メモリの物理アドレス空間における前記第１のキャッシュメモリ領域の位置を示す第１の配置情報を生成し、前記第２のオペレーティングシステムは、少なくとも一つの仮想計算機を生成して、前記少なくとも一つの仮想計算機上で前記第３のオペレーティングシステムを起動し、前記第３のオペレーティングシステムは、前記少なくとも一つの仮想計算機に割り当てられた仮想メモリに、第２のキャッシュメモリ領域を確保し、前記第２のオペレーティングシステムは、当該第２のオペレーティングシステムが管理する前記第２の論理揮発性メモリの物理アドレス空間における前記第２のキャッシュメモリ領域の位置を示す第２の配置情報を生成し、前記第１のオペレーティングシステムは、前記計算機の電源の遮断が検出された場合に、前記第１の配置情報に基づいて、前記第１のキャッシュメモリ領域に格納される第１のデータを取得し、前記第１のデータを前記不揮発性メモリに格納し、前記第２の配置情報を取得し、前記第２の配置情報に基づいて、前記第２のキャッシュメモリ領域に格納される第２のデータを前記第２の論理揮発性メモリから取得し、前記第２のデータを前記不揮発性メモリに格納することを特徴とする。
【発明の効果】
【００１６】
本発明によれば、第１のオペレーティングシステムは、電源の遮断が検出された場合に、アドレス変換処理等を実行することなく、第１のオペレーティングシステムのキャッシュデータおよび第３のオペレーティングシステムのキャッシュデータを素早くバックアップすることができる。【００１７】
前述した以外の課題、構成および効果は、以下の実施形態の説明によって明らかにされる。
【図面の簡単な説明】
【００１８】
【図１】本発明の概要を説明するブロック図である。
【図２】本発明の実施例１の計算機システムの物理ハードウェア構成の一例を示す説明図である。
【図３】本発明の実施例１の計算機システムの論理構成の一例を示す説明図である。
【図４Ａ】本発明の実施例１のＶＲＡＭに格納される情報を示す説明図である。
【図４Ｂ】本発明の実施例１のＮＶＲＡＭに格納される情報を示す説明図である。
【図５】本発明の実施例１のＧＰＡ−ＨＰＡマッピング情報の一例を示す説明図である。
【図６】本発明の実施例１のＧＶＡ−ＧＰＡマッピング情報の一例を示す説明図である。
【図７】本発明の実施例１のＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報の一例を示す説明図である。
【図８】本発明の実施例１のＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報の一例を示す説明図である。
【図９】本発明の実施例１のＮＶＣＭ  ＮＶＡ管理情報の一例を示す説明図である。
【図１０】本発明の実施例１の計算機システムの起動処理の概要を説明するフローチャートである。
【図１１】本発明の実施例１の第１のホストＯＳの起動処理の詳細を説明するフローチャートである。
【図１２】本発明の実施例１の第２のホストＯＳの起動処理の詳細を説明するフローチャートである。
【図１３】本発明の実施例１のゲストＯＳの起動処理の一例を説明するフローチャートである。
【図１４】本発明の実施例１におけるＧＯＳ＿ＶＣＭのＧＶＡ空間における配置、ＧＰＡ空間における配置、およびＨＰＡ空間における配置の一例を示す説明図である。
【図１５】本発明の実施例１のバックアップ処理の一例を説明するフローチャートである。
【図１６】本発明の実施例１の第１のホストＯＳのリストア処理を説明するフローチャートである。
【図１７Ａ】本発明の実施例１のゲストＯＳのリストア処理を説明するフローチャートである。
【図１７Ｂ】本発明の実施例１のゲストＯＳのリストア処理を説明するフローチャートである。
【図１７Ｃ】本発明の実施例１のゲストＯＳのリストア処理を説明するフローチャートである。
【図１８】本発明の実施例１におけるＧＯＳ＿ＶＣＭのＧＶＡ空間における配置、ＧＰＡ空間における配置、およびＨＰＡ空間における配置の一例を示す説明図である。
【発明を実施するための形態】
【００１９】
以下、図面を用いて実施例について説明する。まず、図１を用いて本発明の概要について説明する。
【００２０】
図１は、本発明の概要を説明するブロック図である。ここでは、物理計算機１０および外部ストレージ装置２０から構成される計算機システムを例に本発明の概要について説明する。
【００２１】
物理計算機１０は、第１のホストＯＳ２５１および第２のホストＯＳ２５２の二つのホストＯＳを搭載する。後述するように、第１のホストＯＳ２５１および第２のホストＯＳ２５２のそれぞれには、物理計算機１０が備えるハードウェアリソースが論理的に分割されたリソース（分割ハードウェアリソース）が割り当てられる。図１では、第１のホストＯＳ２５１には、第１の分割ＶＲＡＭ２２１、ＮＶＲＡＭ１３０、および電源部１５０が分割ハードウェアリソースとして割り当てられる。
【００２２】
図１に示す例では、第１のホストＯＳ２５１は、外部ストレージ装置２０に対するデータリード処理およびデータライト処理を制御するストレージ制御ＯＳであり、第２のホストＯＳ２５２は、複数の仮想計算機を制御するＶＭＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ  Ｍｏｎｉｔｏｒ）であるものとする。ＶＭＭは、複数のＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を生成し、生成されたＶＭ上にゲストＯＳ４００を稼動させる。
【００２３】
前述したようなシステム構成では、データリードおよびデータライトの性能を向上させるために、第１のホストＯＳ２５１に割り当てられた第１の分割ＶＲＡＭ２２１の一部の記憶領域をＨＯＳ＿ＶＣＭ（ホストＯＳ用の揮発性キャッシュメモリ）２３０として確保する。また、ゲストＯＳ４００として、例えば、ファイルサーバ、データベースサーバ等のサーバ制御ＯＳを稼動させる場合、データリードおよびデータライトの性能を向上させるために、ゲストＯＳ４００に割り当てられた仮想ＶＲＡＭ４１０の一部の記憶領域をＧＯＳ＿ＶＣＭ（ゲストＯＳ用の揮発性キャッシュメモリ）４２０として確保する。
【００２４】
本発明では、電源部１５０によって電源の遮断が検出された場合、第１のホストＯＳ２５１が、ＨＯＳ＿ＶＣＭ２３０に格納されるデータをＨＯＳ＿ＮＶＣＭ（ホストＯＳ用の不揮発性キャッシュメモリ）７１０としてＮＶＲＡＭ１３０にバックアップする。また、第１のホストＯＳ２５１は、物理アドレス空間におけるＧＯＳ＿ＶＣＭ４２０のアドレスを特定し、ＧＯＳ＿ＶＣＭ４２０に格納されるデータをＧＯＳ＿ＮＶＣＭ７２０（ゲストＯＳ用の不揮発性キャッシュメモリ）にバックアップする。
【００２５】
また、本発明では、物理計算機１０における電源の障害が復旧し、物理計算機１０が再起動する場合に、第１のホストＯＳ２５１は、新たに確保されたＨＯＳ＿ＶＣＭ２３０に、ＨＯＳ＿ＮＶＣＭ７１０に格納されるデータをリストアする。また、第１のホストＯＳ２５１は、第２のホストＯＳ２５２およびゲストＯＳ４００と連携して、新たに割り当てられた仮想ＶＲＡＭ４１０上のＧＯＳ＿ＶＣＭ４２０に、ＧＯＳ＿ＮＶＣＭ７２０に格納されるデータをリストアする。
【実施例１】
【００２６】
図２は、本発明の実施例１の計算機システムの物理ハードウェア構成の一例を示す説明図である。【００２７】
本実施例の計算機システムは、物理計算機１０、および外部ストレージ装置２０から構成される。物理計算機１０は、外部ストレージ装置２０と直接、または、ネットワークを介して接続される。ネットワークとしては、ＦＣ（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）で構成されたＳＡＮ等が考えられる。なお、物理計算機１０は、装置内部にストレージ装置を備えていてもよい。【００２８】
物理計算機１０は、プロセッサ１１０、ＶＲＡＭ（Ｖｏｌａｔｉｌｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１２０、ＮＶＲＡＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１３０、Ｉ／Ｏデバイス１４０、および電源部１５０を備える。【００２９】
プロセッサ１１０は、ＶＲＡＭ１２０に格納されるプログラムを実行する。プロセッサ１１０は、複数のＣＰＵコア１１１を有する。プロセッサ１１０がプログラムを実行することによって、ＯＳ等の機能が実現される。以下、プロセッサ１１０を主体に処理を説明する場合、当該プログラムがプロセッサ１１０によって実行されていることを示す。【００３０】
ＶＲＡＭ１２０は、揮発性の記憶素子から構成される記憶媒体である。ＶＲＡＭ１２０は、プロセッサ１１０によって実行されるプログラムおよび当該プログラムの実行に必要な情報を格納する。また、ＶＲＡＭ１２０は、各プログラムのワークエリアを含む。【００３１】
ＮＶＲＡＭ１３０は、不揮発性の記憶素子から構成される記憶媒体である。ＮＶＲＡＭ１３０は、物理計算機１０内で動作する各種ファームウェアのプログラムコード等を格納する。また、ＮＶＲＡＭ１３０は、不意に電源の遮断が発生した場合に、一時的にデータを格納するための記憶領域も含む。なお、ＮＶＲＡＭ１３０の記憶容量は、外部ストレージ装置より小さいが、物理計算機１０から高速にアクセスが可能である。ＮＶＲＡＭ１３０は、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記憶媒体が考えられる。本実施例では、不揮発性の記憶媒体としてＮＶＲＡＭ１３０を用いているが、その他の不揮発性の記憶媒体を用いてもよい。【００３２】
Ｉ／Ｏデバイス１４０は、外部装置と接続することによって、外部から情報を入力し、外部に情報を出力するためのデバイスである。Ｉ／Ｏデバイス１４０は、例えば、ＮＩＣ、ＦＣ  ＨＢＡ等が考えられる。図２には、Ｉ／Ｏデバイス１４０として、四つのＮＩＣ１４１、および四つのＦＣ  ＨＢＡ１４２を示している。なお、一つのＮＩＣ１４１または一つのＦＣ  ＨＢＡ１４２が一つのＩ／Ｏデバイス１４０に対応する。【００３３】
電源部１５０は、物理計算機１０の電源を制御する。電源部１５０は、電源遮断検出部１５１およびバッテリ電源１５２を有する。電源遮断検出部１５１は、不意の電源の遮断を監視し、電源の遮断が検出された場合に、バッテリ電源１５２から給電するように制御する。【００３４】
外部ストレージ装置２０は、ＯＳのプログラム、ＯＳ上で動作する各種アプリケーションのプログラムコード、およびアプリケーションが扱うデータ等を格納する。また、外部ストレージ装置２０は、ＯＳがページインおよびページアウトをサポートするものである場合、ＶＲＡＭ１２０に格納されるデータを一時的な退避するための記憶領域を提供する。外部ストレージ装置２０は、複数の記憶媒体を備える。記憶媒体は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の記憶媒体が考えられる。図２では、外部ストレージ装置２０は、記憶媒体として四つのＨＤＤ１９０を備える。【００３５】
なお、物理計算機１０は、複数のストレージ装置、およびコントローラを備えるストレージシステムと接続されてもよい。【００３６】
図３は、本発明の実施例１の計算機システムの論理構成の一例を示す説明図である。【００３７】
本実施例の計算機システムでは、マルチＯＳ技術を用いて、物理計算機１０のハードウェアが、第１の分割Ｈ／Ｗ（ハードウェア）２０１、第２の分割Ｈ／Ｗ（ハードウェア）２０２、および共有Ｈ／Ｗ（ハードウェア）２０３の三つに論理に分割される。【００３８】
第１の分割Ｈ／Ｗ２０１上では第１のホストＯＳ２５１が起動され、第２の分割Ｈ／Ｗ２０２上で第２のホストＯＳ２５２が起動される。第１の分割Ｈ／Ｗ２０１は第１のホストＯＳ２５１によって占有的に使用され、第２の分割Ｈ／Ｗ２０２は第２のホストＯＳ２５２によって占有的に使用される。【００３９】
第１の分割Ｈ／Ｗ２０１は、第１の分割プロセッサ２１１、第１の分割ＶＲＡＭ２２１、ＮＶＲＡＭ１３０、第１の分割Ｉ／Ｏデバイス２４１、および電源部１５０を含む。【００４０】
第１の分割プロセッサ２１１は、プロセッサ１１０が有する四つのＣＰＵコア１１１のうち、二つのＣＰＵコア１１１が割り当てられた論理的なプロセッサである。第１の分割ＶＲＡＭ２２１は、ＶＲＡＭ１２０の一部の記憶領域が割り当てられた論理的なＶＲＡＭである。図２に示すように、第１の分割ＶＲＡＭ２２１の一部の記憶領域は、ＨＯＳ＿ＶＣＭ２３０として確保される。【００４１】
第１の分割プロセッサ２１１に割り当てられたＣＰＵコア１１１および第１の分割ＶＲＡＭ２２１に割り当てられた記憶領域は、第２の分割Ｈ／Ｗ２０２上で稼動する第２のホストＯＳ２５２から使用されないように制御される。例えば、第１の分割ＶＲＡＭ２２１に割り当てられた記憶領域は、第２のホストＯＳ２５２のＨＶＡ（ホスト仮想アドレス）空間にはマップされない。【００４２】
また、物理計算機１０が備える一部のＩ／Ｏデバイス１４０が第１の分割Ｉ／Ｏデバイス２４１として割り当てられる。また、ＮＶＲＡＭ１３０および電源部１５０は、第１の分割Ｈ／Ｗ２０１が占有するように割り当てられる。【００４３】
第２の分割Ｈ／Ｗ２０２は、第２の分割プロセッサ２１２、第２の分割ＶＲＡＭ２２２、および第２の分割Ｉ／Ｏデバイス２４２を含む。【００４４】
第２の分割プロセッサ２１２は、プロセッサ１１０が有する四つのＣＰＵコア１１１のうち、二つのＣＰＵコア１１１が割り当てられた論理的なプロセッサである。第２の分割ＶＲＡＭ２２２は、ＶＲＡＭ１２０の一部の記憶領域が割り当てられた論理的なＶＲＡＭである。また、物理計算機１０が備える一部のＩ／Ｏデバイス１４０が第２の分割Ｉ／Ｏデバイス２４２として割り当てられる。【００４５】
共有Ｈ／Ｗ２０３は、第１のホストＯＳ２５１および第２のホストＯＳ２５２のいずれもが使用可能なハードウェアである。本実施例では、共有Ｈ／Ｗ２０３は、ＶＲＡＭ１２０の一部の記憶領域が割り当てられた共有ＶＲＡＭ２２３を含む。共有ＶＲＡＭ２２３に割り当てられた記憶領域は、第１のホストＯＳ２５１のＨＶＡ空間および第２のホストＯＳ２５２のＨＶＡ空間のそれぞれにマップされる。すなわち、第１のホストＯＳ２５１および第２のホストＯＳ２５２のそれぞれが、共有ＶＲＡＭ２２３にアクセスすることができる。【００４６】
本実施例の第１のホストＯＳ２５１は、ストレージ制御ＯＳに対応する。ストレージ制御ＯＳは、外部ストレージ装置２０に対するデータリード処理およびデータライト処理を制御する。【００４７】
第１のホストＯＳ２５１は、一般的なＯＳが有するメモリのアドレス空間を管理する機能を有しており、第１の分割ＶＲＡＭ２２１のＨＰＡ（ホスト物理アドレス）空間とＨＶＡ空間との間のマッピングを管理する。ここで、第１の分割ＶＲＡＭ２２１のＨＰＡ空間は、第１のホストＯＳ２５１が管理する第１の分割ＶＲＡＭの物理的な位置を示すアドレス空間であり、第１の分割ＶＲＡＭ２２１のＨＶＡ空間は、第１のホストＯＳ２５１によってアプリケーション等に割り当てられる仮想的なメモリの位置を示すアドレス空間である。【００４８】
また、本実施例では、第１のホストＯＳ２５１は、ＶＣＭとＮＶＣＭとの間のバックアップ処理およびリストア処理を実行する。以下の説明では、ＶＣＭとＮＶＣＭとの間のバックアップ処理およびリストア処理を、単に、バックアップ処理およびリストア処理とも記載する。【００４９】
本実施例の第２のホストＯＳ２５２は、ＶＭＭに対応する。ＶＭＭは、仮想マシン技術を用いて、第２の分割Ｈ／Ｗ２０２の一部を割り当てることによって複数のＶＭ３００を生成し、生成された各ＶＭ３００上でゲストＯＳ４００を稼動させる。【００５０】
ＶＭＭは、ＶＭ３００に割り当てられた仮想ＶＲＡＭ４１０のＧＰＡ（ゲスト物理アドレス）空間と、第２の分割ＶＲＡＭ２２２のＨＰＡ空間との間のマッピングを管理する。ここで、仮想ＶＲＡＭ４１０のＧＰＡ空間は、ゲストＯＳ４００によって管理される仮想ＶＲＡＭ４１０の物理的な位置を示すアドレス空間であり、第２の分割ＶＲＡＭ２２２のＨＰＡ空間は、第２のホストＯＳ２５２によって管理される第２の分割ＶＲＡＭ２２２の物理的な位置を示すアドレス空間である。【００５１】
ゲストＯＳ４００が稼動するＶＭ３００には、仮想ＶＲＡＭ４１０が割り当てられる。また、ゲストＯＳ４００には、図示しない仮想プロセッサおよび仮想Ｉ／Ｏデバイス等が割り当てられる。【００５２】
ゲストＯＳ４００は、仮想ＶＲＡＭ４１０を物理的なＶＲＡＭとして認識する。ゲストＯＳ４００は、一般的なＯＳが有するメモリのアドレス空間を管理する機能を有しており、仮想ＶＲＡＭ４１０のＧＰＡ空間とＧＶＡ（ゲスト仮想アドレス）空間との間のマッピングを管理する。ここで、仮想ＶＲＡＭ４１０のＧＶＡ空間は、ゲストＯＳ４００によってアプリケーション等に割り当てられる仮想的なメモリの位置を示すアドレス空間である。【００５３】
図４Ａは、本発明の実施例１のＶＲＡＭ１２０に格納される情報を示す説明図である。図４Ｂは、本発明の実施例１のＮＶＲＡＭ１３０に格納される情報を示す説明図である。ここでは、バックアップ処理およびリストア処理に必要な情報を中心に説明する。【００５４】
ＶＲＡＭ１２０の物理アドレス空間は、第１の分割ＶＲＡＭ２２１に割り当てられる記憶領域、第２の分割ＶＲＡＭ２２２に割り当てられる記憶領域、および共有ＶＲＡＭ２２３に割り当てられる記憶領域の三つの記憶領域に論理的に分割される。なお、図４Ａでは、ＶＲＡＭ１２０の物理アドレス空間が、アドレスが連続するように三つの記憶領域に分割されているが、分割方法はこれに限定されない。【００５５】
第１の分割ＶＲＡＭ２２１は、第１のホストＯＳ２５１によって管理される。第１のホストＯＳ２５１は、第１の分割ＶＲＡＭ２２１の一部の記憶領域を、ＨＯＳ＿ＶＣＭ２３０として確保する。第１の分割ＶＲＡＭ２２１には、バックアップ処理およびリストア処理に必要な情報として、ＨＶＡ−ＨＰＡマッピング情報２４０およびＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０が格納される。【００５６】
ＨＶＡ−ＨＰＡマッピング情報２４０は、第１のホストＯＳ２５１が管理するＨＰＡ空間とＨＶＡ空間との間のマッピングを管理する情報である。ＨＶＡ−ＨＰＡマッピング情報２４０は、第１のホストＯＳ２５１によって生成される。ＨＶＡ−ＨＰＡマッピング情報２４０は、一般的には、ページテーブルと呼ばれるものに対応する。ここで、ＨＰＡは、第１の分割ＶＲＡＭ２２１の物理的なアドレスである。ＨＶＡは、第１のホストＯＳ２５１および第１のホストＯＳ２５１上で動作するアプリケーションが使用する仮想的なアドレスである。【００５７】
ＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０は、第１のホストＯＳ２５１が管理するＨＰＡ空間におけるＨＯＳ＿ＶＣＭ２３０の配置を示す情報である。ＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０は、第１のホストＯＳ２５１によって生成される。ＨＯＳ＿ＶＣＭ２３０には、通常、物理アドレスが不連続な複数の記憶領域が割り当てられる。そのため、ＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０は、ＨＯＳ＿ＶＣＭ２３０に割り当てられた一つの記憶領域の物理的な先頭アドレス、およびサイズが対応付けられたエントリを複数含む。【００５８】
第２のホストＯＳ２５２は、第２のホストＯＳ２５２自身を第２の分割ＶＲＡＭ２２２の一部の記憶領域に配置する。また、第２のホストＯＳ２５２は、第２の分割ＶＲＡＭ２２２の一部を仮想ＶＲＡＭ４１０としてＶＭ３００に割り当てる。【００５９】
第２のホストＯＳ２５２が配置される記憶領域には、バックアップ処理およびリストア処理に必要な情報として、ＧＰＡ−ＨＰＡマッピング情報５００が格納される。【００６０】
ＧＰＡ−ＨＰＡマッピング情報５００は、ゲストＯＳ４００が管理するＧＰＡ空間と第２のホストＯＳ２５２が管理するＨＰＡ空間との間のマッピングを管理する情報である。ＧＰＡ−ＨＰＡマッピング情報５００は、第２のホストＯＳ２５２によって生成される。第２のホストＯＳ２５２（ＶＭＭ）がＩｎｔｅｌ  ＶＴ−ｘテクノロジを利用する場合、ＧＰＡ−ＨＰＡマッピング情報５００は、ＥＰＴ（拡張ページテーブル）と呼ばれるものに対応する。ここで、ＧＰＡは、ＶＭ３００が物理的なＶＲＡＭとして認識する仮想ＶＲＡＭ４１０の物理的なアドレスである。ＧＰＡ−ＨＰＡマッピング情報５００については、図５を用いて後述する。【００６１】
仮想ＶＲＡＭ４１０の一部の記憶領域は、ＧＯＳ＿ＶＣＭ４２０として確保される。また、仮想ＶＲＡＭ４１０は、バックアップ処理およびリストア処理に必要な情報として、ＧＶＡ−ＧＰＡマッピング情報４３０およびＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０を格納する。【００６２】
ＧＶＡ−ＧＰＡマッピング情報４３０は、ゲストＯＳ４００が管理するＧＶＡ空間とＧＰＡ空間との間のマッピングを管理する情報である。ＧＶＡ−ＧＰＡマッピング情報４３０は、ゲストＯＳ４００によって生成される。ＧＶＡ−ＧＰＡマッピング情報４３０は、ＨＶＡ−ＨＰＡマッピング情報２４０と同様、一般的に、ページテーブルと呼ばれるものである。ここで、ＧＶＡは、ゲストＯＳ４００およびゲストＯＳ４００上で動作するアプリケーションが使用する仮想的なアドレスである。ＧＶＡ−ＧＰＡマッピング情報４３０については、図６を用いて後述する。【００６３】
ＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０は、ゲストＯＳ４００が管理するＧＰＡ空間におけるＧＯＳ＿ＶＣＭ４２０の配置を示す情報である。ＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０は、ゲストＯＳ４００によって生成される。ＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０については、図７を用いて後述する。【００６４】
共有ＶＲＡＭ２２３は、バックアップ処理およびリストア処理に必要な情報として、ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００を格納する。ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００は、第２のホストＯＳ２５２が管理するＨＰＡ空間におけるＧＯＳ＿ＶＣＭ４２０の配置を示す情報である。ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００は、第２のホストＯＳ２５２によって生成される。ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００については、図８を用いて後述する。【００６５】
ＮＶＲＡＭ１３０の一部の記憶領域は、ＨＯＳ＿ＮＶＣＭ７１０およびＧＯＳ＿ＮＶＣＭ７２０として確保される。また、ＮＶＲＡＭ１３０は、バックアップ処理およびリストア処理に必要な情報としてＮＶＣＭ  ＮＶＡ管理情報７００を格納する。【００６６】
ＮＶＣＭ  ＮＶＡ管理情報７００は、ＨＯＳ＿ＮＶＣＭ７１０およびＧＯＳ＿ＮＶＣＭ７２０として確保された記憶領域のＮＶＲＡＭ１３０のアドレス（ＮＶＡ）を管理する情報である。ＮＶＣＭ  ＮＶＡ管理情報７００については、図９を用いて後述する。【００６７】
図５は、本発明の実施例１のＧＰＡ−ＨＰＡマッピング情報５００の一例を示す説明図である。【００６８】
ＧＰＡ−ＨＰＡマッピング情報５００には、ゲストＯＳ４００によって管理されるＧＰＡ空間における一つの記憶領域（例えばページ）に対して一つのエントリが登録される。ＧＰＡ−ＨＰＡマッピング情報５００に登録されるエントリは、ＧＰＡ５０１、ＨＰＡ５０２、およびサイズ５０３を含む。【００６９】
ＧＰＡ５０１は、ＧＰＡ空間における一つの記憶領域の先頭アドレスである。ＨＰＡ５０２は、ＧＰＡ５０１に対応する記憶領域に割り当てられる、ＨＰＡ空間における一つの記憶領域の先頭アドレスである。サイズ５０３は、ＧＰＡ５０１に対応する一つの記憶領域の大きさである。【００７０】
図６は、本発明の実施例１のＧＶＡ−ＧＰＡマッピング情報４３０の一例を示す説明図である。【００７１】
ＧＶＡ−ＧＰＡマッピング情報４３０には、ゲストＯＳ４００によって管理されるＧＶＡ空間における一つの記憶領域（例えばページ）に対して一つのエントリが登録される。ＧＶＡ−ＧＰＡマッピング情報４３０に登録されるエントリは、ＧＶＡ４３１、ＧＰＡ４３２、およびサイズ４３３を含む。【００７２】
ＧＶＡ４３１は、ＧＶＡ空間における一つの記憶領域の先頭アドレスである。ＧＰＡ４３２は、ＧＶＡ４３１に対応する記憶領域に割り当てられる、ＧＰＡ空間における一つの記憶領域の先頭アドレスである。サイズ４３３は、ＧＶＡ４３１に対応する一つの記憶領域の大きさである。【００７３】
図７は、本発明の実施例１のＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０の一例を示す説明図である。【００７４】
ＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０には、ＧＯＳ＿ＶＣＭ４２０を構成する一つの記憶領域群（例えばブロック）に対して一つのエントリが登録される。ここで、記憶領域群は、アドレスが連続する複数の記憶領域（ページ）を示す。ＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０に登録されるエントリは、ＩＤ４４１、ＧＰＡ４４２、およびサイズ４４３を含む。【００７５】
ＩＤ４４１は、ＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０に登録されるエントリを一意に識別するための識別子である。ＧＰＡ４４２は、ゲストＯＳ４００によって管理されるＧＰＡ空間におけるＧＯＳ＿ＶＣＭ４２０を構成する一つの記憶領域群の先頭アドレスである。サイズ４４３は、ＧＰＡ４４２に対応する一つの記憶領域群の大きさである。【００７６】
図８は、本発明の実施例１のＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００の一例を示す説明図である。【００７７】
ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００には、ＧＯＳ＿ＶＣＭ４２０を構成する一つの記憶領域群（例えばブロック）に対して一つのエントリが登録される。ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００は、ＩＤ６０１、ＨＰＡ６０２、およびサイズ６０３を含む。【００７８】
ＩＤ６０１は、ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００に登録されるエントリを一意に識別するための識別子である。ＨＰＡ６０２は、ＶＭＭによって管理されるＨＰＡ空間におけるＧＯＳ＿ＶＣＭ４２０を構成する一つの記憶領域群の先頭アドレスである。サイズ６０３は、ＨＰＡ６０２に対応する一つの記憶領域群の大きさである。【００７９】
図９は、本発明の実施例１のＮＶＣＭ  ＮＶＡ管理情報７００の一例を示す説明図である。【００８０】
ＮＶＣＭ  ＮＶＡ管理情報７００には、ＨＯＳ＿ＮＶＣＭ７１０、また、ＧＯＳ＿ＮＶＣＭ７２０毎に一つのエントリが登録される。ＮＶＣＭ  ＮＶＡ管理情報７００に登録されるエントリは、ＯＳ＿ＩＤ７０１、ＮＶＡ７０２、およびサイズ７０３を含む。【００８１】
ＯＳ＿ＩＤ７０１は、ＮＶＣＭ  ＮＶＡ管理情報７００に登録されるエントリを一意に識別するための識別子である。ＮＶＡ７０２は、ＨＯＳ＿ＮＶＣＭ７１０またはＧＯＳ＿ＮＶＣＭ７２０に対応する記憶領域の先頭アドレスである。サイズ７０３は、ＮＶＡ７０２に対応する記憶領域の大きさである。【００８２】
図１０は、本発明の実施例１の計算機システムの起動処理の概要を説明するフローチャートである。【００８３】
物理計算機１０に電源が投入されると、まず、第１のホストＯＳ２５１の起動処理が開始される（ステップＳ１００）。具体的には、以下のような処理が実行される。【００８４】
電源投入後、一つのＣＰＵコア１１１が、外部ストレージ装置２０等からブートローダを読み出し、第１の分割ＶＲＡＭ２２１にブートローダをロードする。さらに、ＣＰＵコア１１１は、ロードされたブートローダを実行する。【００８５】
ブートローダは、予め設定されたリソース定義情報（図示省略）に基づいて、ＶＲＡＭ１２０に共有ＶＲＡＭ２２３を設定し、共有ＶＲＡＭ２２３にリソース定義情報を書き込む。【００８６】
ブートローダは、リソース定義情報に基づいて、第１の分割ＶＲＡＭ２２１に第１のホストＯＳ２５１のイメージを書き込み、第１のホストＯＳ２５１を起動する。以下、第１のホストＯＳ２５１は、リソース定義情報に基づいて、第１の分割Ｈ／Ｗ２０１を用いて起動する。第１のホストＯＳ２５１の起動処理の詳細については、図１１を用いて後述する。【００８７】
なお、第１のホストＯＳ２５１の起動方法はこれに限定されず、他の公知の方法を用いて起動してもよい。以上が、ステップＳ１００の処理の説明である。【００８８】
次に、第１のホストＯＳ２５１は、電源遮断後の再起動処理であるか否かを判定する（ステップＳ１０１）。【００８９】
例えば、電源部１５０が、電源遮断を検出した場合に、電源遮断が検出されたことを示す情報をＮＶＲＡＭ１３０に設定する方法等が考えられる。この場合、第１のホストＯＳ２５１は、ＮＶＲＡＭ１３０に当該情報が設定されているか否かを判定する。なお、前述した判定方法は一例であって、これに限定されない。例えば、第１のホストＯＳ２５１は、ＮＶＲＡＭ１３０のＨＯＳ＿ＮＶＣＭ７１０にバックアップデータが格納されている場合、電源遮断後の再起動処理であると判定する方法も考えられる。【００９０】
電源遮断後の再起動処理でないと判定された場合、第１のホストＯＳ２５１は、第２のホストＯＳ２５２の起動処理を開始する（ステップＳ１０２）。【００９１】
具体的には、第１のホストＯＳ２５１は、リソース定義情報に基づいて、第２の分割ＶＲＡＭ２２２に第２のホストＯＳ２５２のイメージを書き込み、起動させる。以下、第２のホストＯＳ２５２は、リソース定義情報に基づいて、第２の分割Ｈ／Ｗ２０２を用いて起動する。第２のホストＯＳ２５２の起動処理の詳細については、図１２を用いて後述する。【００９２】
次に、第２のホストＯＳ２５２は、ゲストＯＳ４００の起動処理を開始する（ステップＳ１０３）。ゲストＯＳ４００の起動処理の詳細については、図１３を用いて後述する。【００９３】
その後、第１のホストＯＳ２５１は、ゲストＯＳ４００の起動処理が完了した後、通常の業務を実行すると共に、電源の監視処理を開始する。第１のホストＯＳ２５１は、電源遮断を検出したか否かを判定する（ステップＳ１０９）。【００９４】
電源遮断が検出されない場合、第１のホストＯＳ２５１は、電源の監視処理を継続する。一方、電源遮断が検出された場合、第１のホストＯＳ２５１は、バックアップ処理を開始する（ステップＳ１１０）。第１のホストＯＳ２５１は、バックアップ処理が完了した後、物理計算機１０への給電を停止する。バックアップ処理の詳細については、図１５を用いて後述する。【００９５】
ステップＳ１０１において、電源遮断後の再起動処理であると判定された場合、第１のホストＯＳ２５１は、第１のホストＯＳ２５１のリストア処理を実行する（ステップＳ１０５）。【００９６】
具体的には、第１のホストＯＳ２５１は、ＮＶＣＭ  ＮＶＡ管理情報７００及び新たに生成されたＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０に基づいて、第１の分割ＶＲＡＭ２２１に、ＨＯＳ＿ＮＶＣＭ７１０に格納されるデータをリストアする。なお、第１のホストＯＳ２５１のリストア処理については、図１６を用いて後述する。【００９７】
次に、第１のホストＯＳ２５１は、第２のホストＯＳ２５２の起動処理を開始する（ステップＳ１０６）。ステップＳ１０６の処理はステップＳ１０２の処理と同一の処理である。【００９８】
次に、第２のホストＯＳ２５２は、ゲストＯＳ４００の起動処理を実行する（ステップＳ１０７）。ステップＳ１０７の処理は、ステップＳ１０３の処理と同一の処理である。【００９９】
ゲストＯＳ４００は、ゲストＯＳ４００が再起動したことを検知し、第１のホストＯＳ２５１および第２のホストＯＳ２５２と連携してゲストＯＳ４００のリストア処理を実行する（ステップＳ１０８）。その後、第１のホストＯＳ２５１は、ゲストＯＳ４００のリストア処理が完了した後、通常の業務を実行すると共に、電源の監視処理を開始する。第１のホストＯＳ２５１は、電源遮断を検出したか否かを判定する（ステップＳ１０９）。ステップＳ１０９以下の処理はすでに説明したため省略する。【０１００】
ゲストＯＳ４００のリストア処理では、仮想ＶＲＡＭ４１０にＧＯＳ＿ＮＶＣＭ７２０に格納されたデータがリストアされる。ゲストＯＳ４００のリストア処理については、図１７Ａ、図１７Ｂおよび図１７Ｃを用いて後述する。【０１０１】
なお、ゲストＯＳ４００が再起動したことを検知する方法としては、以下のような方法が考えられる。ゲストＯＳ４００は、起動後、ＧＯＳ＿ＮＶＣＭ７２０にアクセスし、当該ＧＯＳ＿ＮＶＣＭ７２０にデータが格納されているか否かを判定する。ＧＯＳ＿ＮＶＣＭ７２０にデータが格納されている場合、ゲストＯＳ４００は、ゲストＯＳ４００が再起動したと判定する。【０１０２】
他の方法としては、ゲストＯＳ４００が、シャットダウン時に原因を特定するログを取得し、起動後に当該ログに基づいて、ゲストＯＳ４００が再起動したか否かを判定する。また、他の方法としては、第２のホストＯＳ２５２が、ゲストＯＳ４００の起動処理において、ゲストＯＳ４００を起動させた後に、ゲストＯＳ４００が再起動した旨を通知する方法も考えられる。なお、前述した判定方法は一例であって、本発明はこれに限定されない。【０１０３】
図１１は、本発明の実施例１の第１のホストＯＳ２５１の起動処理の詳細を説明するフローチャートである。第１のホストＯＳ２５１は、第１の分割プロセッサ２１１を用いて第１のホストＯＳ２５１の起動処理を実行する。【０１０４】
第１のホストＯＳ２５１は、ＨＶＡ−ＨＰＡマッピング情報２４０を生成する（ステップＳ２００）。ＨＶＡ−ＨＰＡマッピング情報２４０の生成方法は公知のものであるため説明を省略する。【０１０５】
第１のホストＯＳ２５１は、第１の分割ＶＲＡＭ２２１上に、ＨＯＳ＿ＶＣＭ用の記憶領域を確保する（ステップＳ２０１）。具体的には、第１のホストＯＳ２５１は、ＨＶＡ空間のアドレスが連続する記憶領域を、ＨＯＳ＿ＶＣＭ用の記憶領域として確保する。【０１０６】
第１のホストＯＳ２５１は、ページインおよびページアウトが有効であるか否かを判定する（ステップＳ２０２）。【０１０７】
ページインおよびページアウトが有効でないと判定された場合、第１のホストＯＳ２５１は、ステップＳ２０４に進む。【０１０８】
ページインおよびページアウトが有効であると判定された場合、第１のホストＯＳ２５１は、ＨＯＳ＿ＶＣＭ用に確保された記憶領域に格納されるデータが、スワップファイルとして追い出されないように、当該記憶領域をピン留めする（ステップＳ２０３）。【０１０９】
第１のホストＯＳ２５１は、ＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０を生成し（ステップＳ２０４）、処理を終了する。具体的には、以下のような処理が実行される。【０１１０】
第１のホストＯＳ２５１は、ＨＯＳ＿ＶＣＭ用に確保された記憶領域のＨＶＡに基づいてＨＶＡ−ＨＰＡマッピング情報２４０を参照し、ＨＯＳ＿ＶＣＭ用に確保された記憶領域を構成するＨＰＡ空間の複数の記憶領域群を特定する。【０１１１】
第１のホストＯＳ２５１は、ＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０に特定された各記憶領域群に対応するエントリを追加する。また、第１のホストＯＳ２５１は、各エントリに各記憶領域群の先頭アドレス（ＨＰＡ）およびサイズを設定する。【０１１２】
第１のホストＯＳ２５１は、複数の記憶領域群の各々のＨＶＡの順番にしたがって、ＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０のエントリを並び替える。例えば、第１のホストＯＳ２５１は、ＨＶＡの昇順または降順にエントリを並び替える。【０１１３】
第１のホストＯＳ２５１は、ＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０の上のエントリから昇順にＩＤを付与する。これによって、ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００と同様の情報が生成される。以上がステップＳ２０４の処理の説明である。【０１１４】
図１２は、本発明の実施例１の第２のホストＯＳ２５２の起動処理の詳細を説明するフローチャートである。第２のホストＯＳ２５２は、第２の分割プロセッサ２１２を用いて第２のホストＯＳ２５２の起動処理を実行する。【０１１５】
第２のホストＯＳ２５２は、まず、初期化処理を実行する（ステップＳ３００）。ＶＭＭの初期化処理は、公知の処理であるためここでは省略する。第２のホストＯＳ２５２は、初期化処理が完了した後、ＶＭ３００を生成する（ステップＳ３０１）。ＶＭの生成処理は公知の処理であるためここでは説明を省略する。【０１１６】
第２のホストＯＳ２５２は、生成されたＶＭ３００に対応するＧＰＡ−ＨＰＡマッピング情報５００を生成する（ステップＳ３０２）。ＧＰＡ−ＨＰＡマッピング情報５００の生成処理は、公知の処理であるため説明を省略する。なお、第２のホストＯＳ２５２は、ＶＭ３００の識別情報と対応付けて、ＧＰＡ−ＨＰＡマッピング情報５００を管理する。【０１１７】
第２のホストＯＳ２５２は、ＶＭ３００を起動する（ステップＳ３０３）。さらに、起動したＶＭ３００は、ゲストＯＳ４００の起動処理を開始する。ゲストＯＳ４００の起動処理については、図１３を用いて後述する。【０１１８】
第２のホストＯＳ２５２は、ゲストＯＳ４００からＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０の格納場所を示す通知を受信したか否かを判定する（ステップＳ３０４）。【０１１９】
ゲストＯＳ４００から通知を受信していないと判定された場合、第２のホストＯＳ２５２は、ゲストＯＳ４００から通知を受信するまで待ち続ける。【０１２０】
ゲストＯＳ４００から通知を受信したと判定された場合、第２のホストＯＳ２５２は、ＶＭ３００に対応するＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００を生成する（ステップＳ３０５）。具体的には、以下のような処理が実行される。【０１２１】
第２のホストＯＳ２５２は、ゲストＯＳ４００から受信した通知に含まれるＧＰＡに基づいてＧＰＡ−ＨＰＡマッピング情報５００を参照し、仮想ＶＲＡＭ４１０に格納されるＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０を読み出す。第２のホストＯＳ２５２は、ＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０から一つのエントリを選択する。ここでは、ＩＤ４４１が小さい順にエントリが選択されるものとする。【０１２２】
第２のホストＯＳ２５２は、選択されたエントリのＧＰＡ４４２に基づいて、ＧＰＡ−ＨＰＡマッピング情報５００を参照し、ＧＰＡ５０１がＧＰＡ４４２と一致するエントリを検索する。すなわち、第２のホストＯＳ２５２が管理するＨＰＡ空間における、ＧＯＳ＿ＶＣＭ４２０を構成する記憶領域のアドレスが特定される。【０１２３】
第２のホストＯＳ２５２は、ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００にエントリを生成し、ＩＤ６０１に昇順の識別番号を設定する。また、第２のホストＯＳ２５２は、生成されたエントリのＨＰＡ６０２に、検索されたエントリのＨＰＡ５０２に格納されるアドレスを設定し、さらに、サイズ６０３に、選択されたエントリのサイズ４４３に格納される値を設定する。【０１２４】
以下、ＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０の全てのエントリに対して同様の処理が実行される。これによって、ＶＭ３００に対応するＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００が生成される。以上が、ステップＳ３０５の処理の説明である。【０１２５】
次に、第２のホストＯＳ２５２は、ゲストＯＳ４００からの通知に対する応答を当該ゲストＯＳ４００に送信し（ステップＳ３０６）、処理を終了する。なお、複数のゲストＯＳ４００を起動する場合、一つのゲストＯＳ４００に対して、ステップＳ３０１からステップＳ３０５までの処理が繰り返し実行される。【０１２６】
図１３は、本発明の実施例１のゲストＯＳ４００の起動処理の一例を説明するフローチャートである。【０１２７】
ゲストＯＳ４００は、ＧＶＡ−ＧＰＡマッピング情報４３０を生成する（ステップＳ４００）。ＧＶＡ−ＧＰＡマッピング情報４３０の生成方法は公知のものであるため説明を省略する。【０１２８】
ゲストＯＳ４００は、仮想ＶＲＡＭ４１０上に、ＧＯＳ＿ＶＣＭ用の記憶領域を確保する（ステップＳ４０１）。具体的には、ゲストＯＳ４００は、ＧＶＡ空間のアドレスが連続する記憶領域を、ＧＯＳ＿ＶＣＭ用の記憶領域として確保する。【０１２９】
ゲストＯＳ４００は、ページインおよびページアウトが有効であるか否かを判定する（ステップＳ４０２）。【０１３０】
ページインおよびページアウトが有効でないと判定された場合、ゲストＯＳ４００は、ステップＳ４０４に進む。【０１３１】
ページインおよびページアウトが有効であると判定された場合、ゲストＯＳ４００は、ＧＯＳ＿ＶＣＭ４２０用に確保された記憶領域に格納されるデータが、スワップファイルとして追い出されないように、当該記憶領域をピン留めする（ステップＳ４０３）。【０１３２】
ゲストＯＳ４００は、ＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０を生成し（ステップＳ４０４）、第２のホストＯＳ２５２にＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０の格納場所を示す通知を第２のホストＯＳ２５２に送信する（ステップＳ４０５）。具体的には、以下のような処理が実行される。【０１３３】
ゲストＯＳ４００は、ＧＯＳ＿ＶＣＭ用に確保された記憶領域のＧＶＡに基づいてＧＶＡ−ＧＰＡマッピング情報４３０を参照し、ＧＯＳ＿ＶＣＭ用に確保された記憶領域を構成するＧＰＡ空間の複数の記憶領域群を特定する。【０１３４】
ゲストＯＳ４００は、ＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０に特定された各記憶領域群に対応するエントリを追加する。また、ゲストＯＳ４００は、各エントリのＧＰＡ４４２およびサイズ４４３に、各記憶領域群の先頭アドレス（ＧＰＡ）およびサイズを設定する。【０１３５】
ゲストＯＳ４００は、ＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０の複数のエントリをＧＰＡ４４２の順番にしたがって並び替える。例えば、ゲストＯＳ４００は、ＧＶＡの昇順または降順にエントリを並び替える。【０１３６】
ゲストＯＳ４００は、ＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０の上のエントリから昇順にＩＤを付与する。これによって、ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００が生成される。ゲストＯＳ４００は、ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００が格納されるＧＰＡ空間のアドレス（ＧＰＡ）を第２のホストＯＳ２５２に通知する。以上がステップＳ４０４およびステップＳ４０５の処理の説明である。【０１３７】
ゲストＯＳ４００は、第２のホストＯＳ２５２から応答を受信したか否かを判定する（ステップＳ４０６）。【０１３８】
第２のホストＯＳ２５２から応答を受信していないと判定された場合、ゲストＯＳ４００は、第２のホストＯＳ２５２から応答を受信するまで待ち続ける。一方、第２のホストＯＳ２５２から応答を受信したと判定された場合、ゲストＯＳ４００は、処理を終了する。これ以後、ゲストＯＳ４００は、通常の処理を実行する。【０１３９】
ここで、図１４を用いて、ＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０およびＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００の技術的な特徴について説明する。図１４は、本発明の実施例１におけるＧＯＳ＿ＶＣＭ４２０のＧＶＡ空間における配置、ＧＰＡ空間における配置、およびＨＰＡ空間における配置の一例を示す説明図である。【０１４０】
（１）図１１から図１３を用いて説明したように、第１のホストＯＳ２５１は、起動する度に、ＨＰＡ空間とＨＶＡ空間との間のマッピングを生成し、ＨＯＳ＿ＶＣＭ２３０に割り当てる記憶領域としてＨＶＡ空間のアドレスが連続する記憶領域を確保する。また、ゲストＯＳ４００は、起動する度に、ＧＰＡ空間とＧＶＡ空間との間のマッピングを生成し、ＧＯＳ＿ＶＣＭ４２０に割り当てる記憶領域としてＧＶＡ空間のアドレスが連続する記憶領域を確保する。【０１４１】
前述したように、ＨＰＡ空間とＨＶＡ空間との間のマッピング関係、およびＧＰＡ空間とＧＶＡ空間との間のマッピング関係は物理計算機１０が起動する度に変化する可能性が高い。そのため、ＨＯＳ＿ＶＣＭ２３０に割り当てられるＨＰＡ空間の記憶領域、およびＧＯＳ＿ＶＣＭ４２０に割り当てられるＧＰＡ空間の記憶領域が変化する可能性がある。【０１４２】
したがって、第１のホストＯＳ２５１は、ＨＯＳ＿ＶＣＭ２３０およびＧＯＳ＿ＶＣＭ４２０のそれぞれに格納されるデータを高速にバックアップするために、ＨＯＳ＿ＶＣＭ２３０の第１のホストＯＳ２５１が管理するＨＰＡ空間における配置、およびＧＯＳ＿ＶＣＭ４２０の第２のホストＯＳ２５２が管理するＨＰＡ空間における配置を把握する必要がある。【０１４３】
しかし、前述したように、第１のホストＯＳ２５１が管理するＨＰＡ空間におけるＨＯＳ＿ＶＣＭ２３０の配置、および第２のホストＯＳ２５２が管理するＨＰＡ空間におけるＧＯＳ＿ＶＣＭ４２０の配置は、物理計算機１０が起動する度に異なる。【０１４４】
したがって、第１のホストＯＳ２５１が、電源の遮断を検出し、バックアップ処理を開始するときに、第１のホストＯＳ２５１が管理するＨＰＡ空間におけるＨＯＳ＿ＶＣＭ２３０の配置を把握するためには、ＨＶＡ−ＨＰＡマッピング情報２４０を参照して、ＨＯＳ＿ＶＣＭ２３０の配置を把握する必要がある。また、第１のホストＯＳ２５１は、第２のホストＯＳ２５２が管理するＨＰＡ空間におけるＧＯＳ＿ＶＣＭ４２０の配置を把握するためには、第２のホストＯＳ２５２と通信を行う必要がある。【０１４５】
そのため、バックアップするためのデータを把握するために多くの処理を実行する必要があり、短時間かつ消費電力を抑えたバックアップ処理を実現することが困難である。【０１４６】
そこで、本実施例では、第１のホストＯＳ２５１が、起動時に、第１のホストＯＳ２５１が管理するＨＰＡ空間におけるＨＯＳ＿ＶＣＭ２３０の配置を示すＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０を生成する。また、第２のホストＯＳ２５２は、起動時に、ゲストＯＳ４００と連携して、第２のホストＯＳ２５２が管理するＨＰＡ空間におけるＧＯＳ＿ＶＣＭ４２０の配置を示すＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００を生成する。【０１４７】
これによって、第１のホストＯＳ２５１は、バックアップすべきデータが格納される記憶領域を容易にかつ迅速に把握できるため、短時間かつ消費電力を抑えたバックアップ処理を実現することができる。【０１４８】
（２）図１４に示すＧＯＳ＿ＶＣＭ４２０は、ゲストＯＳ４００が管理するＧＰＡ空間では三つの記憶領域群、すなわち、ブロック１（８０１）、ブロック２（８０２）およびブロック３（８０３）にマップされる。さらに、ゲストＯＳ４００が管理するＧＰＡ空間のブロック１（８０１）は、第２のホストＯＳ２５２が管理するＨＰＡ空間ではブロック１（９０１）にマップされ、ゲストＯＳ４００が管理するＧＰＡ空間のブロック２（８０２）は、第２のホストＯＳ２５２が管理するＨＰＡ空間のブロック２（９０２）およびブロック３（９０３）にマップされ、さらに、ゲストＯＳ４００が管理するＧＰＡ空間のブロック３は、第２のホストＯＳ２５２が管理するＨＰＡ空間のブロック４（９０４）にマップされる。したがって、ＧＯＳ＿ＶＣＭ４２０は、第２のホストＯＳ２５２が管理するＨＰＡ空間のアドレスが不連続な記憶領域群が割り当てられていることが分かる。【０１４９】
ゲストＯＳ４００が管理するＧＶＡ空間におけるＧＯＳ＿ＶＣＭ４２０の配置関係を保持するようにバックアップを行うことによって、リストア処理時に、電源が遮断される直前と同一の状態を復元できる。【０１５０】
そこで、ゲストＯＳ４００は、ゲストＯＳ４００が管理するＧＰＡ空間の三つのブロックのエントリが、ゲストＯＳ４００が管理するＧＶＡ空間の連続した記憶領域の配置となるように並べられたＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０を生成する（ステップＳ４０４）。また、第２のホストＯＳ２５２は、ＧＰＡ空間の四つのブロックのエントリが、ゲストＯＳ４００が管理するＧＶＡ空間の連続したアドレス順となるように並べられたＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００を生成する。【０１５１】
第１のホストＯＳ２５１は、後述するように、ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００のエントリ順にデータを読み出し、ＧＯＳ＿ＮＶＣＭ７２０に当該データを書き込むことによって、ゲストＯＳ４００が管理するＧＶＡ空間の連続したＧＯＳ＿ＶＣＭ４２０のイメージデータと同一の状態で、ＧＯＳ＿ＮＶＣＭ７２０にデータが格納される。【０１５２】
なお、ＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０についても同様の技術的な特徴がある。【０１５３】
次に、バックアップ処理およびリストア処理の詳細について説明する。【０１５４】
図１５は、本発明の実施例１のバックアップ処理の一例を説明するフローチャートである。【０１５５】
第１のホストＯＳ２５１は、電源の遮断が検出されると、ＮＶＣＭ  ＮＶＡ管理情報７００を参照して、ＨＯＳ＿ＮＶＣＭ７１０のアドレス（ＮＶＡ）を取得する（ステップＳ５００）。すなわち、第１のホストＯＳ２５１は、ＨＯＳ＿ＶＣＭ２３０に格納されるデータを保存するＨＯＳ＿ＮＶＣＭ７１０の先頭アドレスを特定する。【０１５６】
第１のホストＯＳ２５１は、第１の分割ＶＲＡＭ２２１に格納されるＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０を参照し、ＨＯＳ＿ＶＣＭ２３０に格納されるデータをＨＯＳ＿ＮＶＣＭ７１０にバックアップする（ステップＳ５０１）。具体的には、以下のような処理が実行される。【０１５７】
第１のホストＯＳ２５１は、ＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０のエントリを上から順に選択する。第１のホストＯＳ２５１は、選択されたエントリに対応するデータを書き込むＨＯＳ＿ＮＶＣＭ７１０のアドレスを決定する。【０１５８】
一番上のエントリの場合、ステップＳ５００において取得されたＮＶＡがデータを書き込むＨＯＳ＿ＮＶＣＭ７１０のアドレスとして決定される。それ以降のエントリの場合、第１のホストＯＳ２５１は、前回決定されたアドレスと、前回書き込まれたデータのサイズとからデータを書き込むＨＯＳ＿ＮＶＣＭ７１０のアドレスを決定する。【０１５９】
第１のホストＯＳ２５１は、ＨＯＳ＿ＶＣＭ２３０からデータを読み出し、ＨＯＳ＿ＮＶＣＭ７１０に当該データを格納する。このとき、ＤＭＡ転送を用いて、ＨＯＳ＿ＶＣＭ２３０からＨＯＳ＿ＮＶＣＭ７１０にデータが書き込まれる。ＤＭＡ転送では、選択されたエントリに格納されるＨＰＡ、および決定されたアドレスが用いられる。以上がステップＳ５０１の処理の説明である。【０１６０】
次に、第１のホストＯＳ２５１は、ＮＶＣＭ  ＮＶＡ管理情報７００を参照して、処理対象のゲストＯＳ４００を選択する（ステップＳ５０２）。【０１６１】
ここでは、第１のホストＯＳ２５１は、ＮＶＣＭ  ＮＶＡ管理情報７００の上のエントリから順に処理対象のゲストＯＳ４００を選択するものとする。このとき、第１のホストＯＳ２５１は、選択されたエントリのＮＶＡ７０２を取得する。また、第１のホストＯＳ２５１は、選択されたエントリのＯＳ＿ＩＤ７０１に基づいて共有ＶＲＡＭ２２３から、処理対象のゲストＯＳ４００に対応するＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００を取得する。【０１６２】
第１のホストＯＳ２５１は、選択されたＧＯＳ＿ＶＣＭ４２０に格納されるデータをＧＯＳ＿ＮＶＣＭ７２０にバックアップする（ステップＳ５０３）。具体的には、以下のような処理が実行される。【０１６３】
第１のホストＯＳ２５１は、取得されたＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００のエントリを一つ選択する。ここでは、上のエントリから順に選択される。第１のホストＯＳ２５１は、選択されたエントリのＨＰＡ６０２に対応するデータを書き込むＧＯＳ＿ＮＶＣＭ７２０のアドレスを決定する。アドレスの決定方法はステップＳ５０１と同一の方法を用いればよい。【０１６４】
第１のホストＯＳ２５１は、選択されたエントリのＨＰＡ６０２およびサイズ６０３に基づいてＧＯＳ＿ＶＣＭ４２０からデータを読み出し、ＧＯＳ＿ＮＶＣＭ７２０に読み出されたデータを格納する。このとき、ＤＭＡ転送を用いて、ＧＯＳ＿ＶＣＭ４２０からＧＯＳ＿ＮＶＣＭ７２０にデータが書き込まれる。ＤＭＡ転送では、選択されたエントリに格納されるＨＰＡ６０２およびサイズ６０３、並びに決定されたアドレスが用いられる。【０１６５】
なお、ＧＯＳ＿ＶＣＭ４２０は、第２の分割ＶＲＡＭ２２２に含まれるため、第１のホストＯＳ２５１は、通常、アクセスを行わない。しかし、バックアップ処理およびリストア処理の実行時には、第１のホストＯＳ２５１が、一時的に第２の分割ＶＲＡＭ２２２にアクセスできるように設定する。他の方法としては、第１のホストＯＳ２５１が、第２のホストＯＳ２５２に読み出し命令を発行する方法も考えられる。【０１６６】
本実施例では、第１のホストＯＳ２５１が、ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００のエントリ順にＧＯＳ＿ＶＣＭ４２０に格納されるデータをＧＯＳ＿ＮＶＣＭ７２０に格納する。したがって、図１４に示すように、ＧＯＳ＿ＮＶＣＭ７２０に格納されるデータはＧＯＳ＿ＶＣＭ４２０と同様に連続したイメージデータとなっている。以上がステップＳ５０３の処理の説明である。【０１６７】
次に、第１のホストＯＳ２５１は、全てのゲストＯＳ４００について処理が完了したか否かを判定する（ステップＳ５０４）。すなわち、ＮＶＣＭ  ＮＶＡ管理情報７００に登録される全てのゲストＯＳ４００のエントリについて処理が完了したか否かが判定される。【０１６８】
全てのゲストＯＳ４００について処理が完了していないと判定された場合、第１のホストＯＳ２５１はステップＳ５０２に戻り、新たなゲストＯＳ４００に対して同様の処理を実行する。【０１６９】
全てのゲストＯＳ４００について処理が完了したと判定された場合、第１のホストＯＳ２５１は、処理を終了する。【０１７０】
図１６は、本発明の実施例１の第１のホストＯＳ２５１のリストア処理を説明するフローチャートである。【０１７１】
第１のホストＯＳ２５１は、第１のホストＯＳ２５１の起動処理が終了した後、リストア処理を開始する。第１のホストＯＳ２５１は、ＮＶＣＭ  ＮＶＡ管理情報７００を参照して、ＨＯＳ＿ＮＶＣＭ７１０のアドレス（ＮＶＡ）を取得する（ステップＳ６００）。すなわち、第１のホストＯＳ２５１は、バックアップデータを読み出すＨＯＳ＿ＮＶＣＭ７１０の先頭アドレスを特定する。【０１７２】
第１のホストＯＳ２５１は、第１の分割ＶＲＡＭ２２１に格納されるＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０を参照し、ＨＯＳ＿ＮＶＣＭ７１０に格納されるデータをＨＯＳ＿ＶＣＭ２３０にリストアし（ステップＳ６０１）、処理を終了する。具体的には、以下のような処理が実行される。【０１７３】
第１のホストＯＳ２５１は、ＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０のエントリを上から順に選択する。第１のホストＯＳ２５１は、選択されたエントリのサイズを取得する。第１のホストＯＳ２５１は、ＨＯＳ＿ＮＶＣＭ７１０からデータを読み出すアドレスを決定する。【０１７４】
一番上のエントリの場合、ステップＳ６００において取得されたＮＶＡがデータを読み出すＨＯＳ＿ＮＶＣＭ７１０のアドレスとして決定される。それ以降のエントリの場合、第１のホストＯＳ２５１は、前回決定されたアドレスと、前回読み出されたデータのサイズとからデータを読み出すＨＯＳ＿ＮＶＣＭ７１０のアドレスを決定する。【０１７５】
第１のホストＯＳ２５１は、ＨＯＳ＿ＮＶＣＭ７１０から選択されたエントリのサイズ分のデータを読み出し、ＨＯＳ＿ＶＣＭ２３０に当該データを格納する。このとき、ＤＭＡ転送を用いて、ＨＯＳ＿ＮＶＣＭ７１０からＨＯＳ＿ＶＣＭ２３０にデータが書き込まれる。ＤＭＡ転送では、選択されたエントリに格納されるＨＰＡおよびサイズ、並びに決定されたアドレスが用いられる。以上がステップＳ６０１の処理の説明である。【０１７６】
ここで、ステップＳ６０１において参照されるＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０は、再起動後に生成されたものである。再起動後、ＨＯＳ＿ＶＣＭ２３０として確保される記憶領域が変化した場合、バックアップ処理において参照されたＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０とは内容が異なっている。【０１７７】
図１７Ａ、図１７Ｂ、および図１７Ｃは、本発明の実施例１のゲストＯＳ４００のリストア処理を説明するフローチャートである。図１８は、本発明の実施例１におけるＧＯＳ＿ＶＣＭ４２０のＧＶＡ空間における配置、ＧＰＡ空間における配置、およびＨＰＡ空間における配置の一例を示す説明図である。【０１７８】
ゲストＯＳ４００は、ゲストＯＳ４００の起動処理が終了した後、第２のホストＯＳ２５２に、ＧＯＳ＿ＶＣＭ４２０へのデータのリストア要求を送信する（ステップＳ７００）。その後、ゲストＯＳ４００は、第２のホストＯＳ２５２から応答を受信したか否かを判定する（ステップＳ７０１）。【０１７９】
第２のホストＯＳ２５２から応答を受信していないと判定された場合、ゲストＯＳ４００は、第２のホストＯＳ２５２から応答を受信するまで待ち続ける。第２のホストＯＳ２５２から応答を受信したと判定された場合、ゲストＯＳ４００は、処理を終了する。【０１８０】
第２のホストＯＳ２５２は、ゲストＯＳ４００からＧＯＳ＿ＶＣＭ４２０へのデータのリストア要求を受信すると（ステップＳ８００）、第１のホストＯＳ２５１に、当該ＧＯＳ＿ＶＣＭ４２０へのデータのリストア要求を転送する（ステップＳ８０１）。なお、当該リストア要求には、ゲストＯＳ４００の識別子が含まれる。【０１８１】
その後、第２のホストＯＳ２５２は、第１のホストＯＳ２５１から応答を受信したか否かを判定する（ステップＳ８０２）。第１のホストＯＳ２５１から応答を受信していないと判定された場合、第２のホストＯＳ２５２は、第１のホストＯＳ２５１から応答を受信するまで待ち続ける。【０１８２】
第１のホストＯＳ２５１から応答を受信したと判定された場合、第２のホストＯＳ２５２は、ゲストＯＳ４００に応答を送信し（ステップＳ８０３）、処理を終了する。【０１８３】
第１のホストＯＳ２５１は、第２のホストＯＳ２５２からＧＯＳ＿ＶＣＭ４２０へのデータのリストア要求を受信すると（ステップＳ９００）、リストア要求に含まれるゲストＯＳ４００の識別子に基づいてＮＶＣＭ  ＮＶＡ管理情報７００を参照し、ゲストＯＳ４００に対応するＧＯＳ＿ＮＶＣＭ７２０のアドレス（ＮＶＡ）を取得する（ステップＳ９０１）。【０１８４】
第１のホストＯＳ２５１は、共有ＶＲＡＭ２２３に格納されるＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００を参照し、ＧＯＳ＿ＮＶＣＭ７２０に格納されるデータをＧＯＳ＿ＶＣＭ４２０にリストアし（ステップＳ９０２）、その後、第２のホストＯＳ２５２に応答を送信し（ステップＳ９０３）、処理を終了する。具体的には、以下のような処理が実行される。【０１８５】
第１のホストＯＳ２５１は、ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００の上のエントリから順に選択する。第１のホストＯＳ２５１は、選択されたエントリのサイズ７０３を取得する。第１のホストＯＳ２５１は、ＧＯＳ＿ＮＶＣＭ７２０からデータを読み出すアドレスを決定する。【０１８６】
一番上のエントリの場合、ステップＳ９０１において取得されたＮＶＡがデータを読み出すＧＯＳ＿ＮＶＣＭ７２０のアドレスである。それ以降のエントリの場合、第１のホストＯＳ２５１は、前回決定されたアドレスと、前回読み出されたデータのサイズ７０３とからデータを読み出すＧＯＳ＿ＮＶＣＭ７２０のアドレスを決定する。【０１８７】
第１のホストＯＳ２５１は、ＧＯＳ＿ＮＶＣＭ７２０から選択されたエントリのサイズ７０３分のデータを読み出し、ＧＯＳ＿ＶＣＭ４２０に当該データを格納する。このとき、ＤＭＡ転送を用いて、ＧＯＳ＿ＮＶＣＭ７２０からＧＯＳ＿ＶＣＭ４２０にデータが書き込まれる。ＤＭＡ転送では、選択されたエントリに格納されるＮＶＡ７０２およびサイズ７０３、並びに決定されたが用いられる。以上がステップＳ９０２の処理の説明である。【０１８８】
ここで、ステップＳ９０２において参照されるＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００は、再起動後に生成されたものである。再起動後、ＧＯＳ＿ＶＣＭ４２０として確保された記憶領域が変化した場合、バックアップ処理において参照されたＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００とは内容が異なっている。【０１８９】
ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００は、ゲストＯＳ４００が管理するＧＶＡ上のアドレス順にエントリが並び替えられている。したがって、第１のホストＯＳ２５１が、ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００のエントリ順に、ＧＯＳ＿ＶＣＭ４２０にデータをリストアすることによって、図１８に示すように、ＧＯＳ＿ＶＣＭ４２０に格納されるデータは、ＧＯＳ＿ＶＣＭ４２０には再起動前と同様に、ＧＶＡ空間のアドレスが連続したイメージデータとしてリストアされる。すなわち、電源の遮断が発生する前と同一のメモリ状態を復元することができる。【０１９０】
なお、ＧＯＳ＿ＶＣＭ４２０は、第２の分割ＶＲＡＭ２２２に含まれるため、第１のホストＯＳ２５１は、通常、第２の分割ＶＲＡＭ２２２にはアクセスを行わない。しかし、バックアップ処理およびリストア処理の実行時には、第１のホストＯＳ２５１が、共有ＶＲＡＭ２２３にＧＯＳ＿ＮＶＣＭ７２０一時的に第２の分割ＶＲＡＭ２２２にアクセスできるように設定する。他の方法としては、第１のホストＯＳ２５１が、第２のホストＯＳ２５２に読み出し命令を発行する方法も考えられる。共有ＶＲＡＭ２２３にＧＯＳ＿ＮＶＣＭ７２０から読み出されたデータを書き込み、第２のホストＯＳ２５２に当該データの書き込み命令を発行する方法も考えられる。【０１９１】
複数のゲストＯＳ４００が再起動する場合、一つのゲストＯＳ４００に対して、図１７Ａから図１７Ｃに示す処理が繰り返し実行される。【０１９２】
本発明によればバックアップ処理では以下のような効果を得られる。【０１９３】
物理計算機１０の起動時に、バックアップ処理およびリストア処理に必要なメモリ空間のアドレス変換処理が実行される。すなわち、第１のホストＯＳ２５１が、第１のホストＯＳが管理するＨＰＡ空間におけるＨＯＳ＿ＶＣＭ２３０の配置を示すＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０を生成し、また、第２のホストＯＳ２５２（ＶＭＭ）が、第２のホストＯＳ２５２が管理するＨＰＡ空間におけるＧＯＳ＿ＶＣＭ４２０の配置を示すＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００を生成する。【０１９４】
これによって、第１のホストＯＳ２５１は、電源の遮断が検出された場合に、ＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０を参照することによって、ＨＯＳ＿ＶＣＭ２３０に格納されるデータを容易にかつ迅速にバックアップすることができ、また、ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００を参照することによって、各ゲストＯＳ４００のＧＯＳ＿ＶＣＭ４２０に格納されるデータを容易にかつ迅速にバックアップすることができる。【０１９５】
そのため、第１のホストＯＳ２５１は、バッテリ電源１５２の電力を用いてバックアップ処理を実行する場合に、複雑なアドレス変換処理を行うことなく、短期間に、かつ、消費電力を抑えたＶＣＭのデータのバックアップを実現することができる。【０１９６】
また、ＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０およびＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００では、ゲストＯＳ４００が管理するＧＶＡ空間のアドレスが連続するようにエントリが並べられている。【０１９７】
そのため、第１のホストＯＳ２５１は、ＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０のエントリ順にＨＯＳ＿ＶＣＭ２３０に格納されるデータをＨＯＳ＿ＮＶＣＭ７１０にバックアップすることによって、第１のホストＯＳ２５１が管理するＨＶＡ空間におけるＨＯＳ＿ＶＣＭ２３０に格納されるデータを、電源遮断時の状態でバックアップできる。また、第１のホストＯＳ２５１は、ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００のエントリ順にＧＯＳ＿ＶＣＭ４２０に格納されるデータをＧＯＳ＿ＮＶＣＭ７２０にバックアップすることによって、ゲストＯＳ４００が管理するＧＶＡ空間におけるＧＯＳ＿ＶＣＭ４２０に格納されるデータを、電源遮断時の状態でバックアップできる。【０１９８】
本発明によればリストア処理では以下のような効果を得られる。【０１９９】
バックアップ処理と同様に、第１のホストＯＳ２５１は、ＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０を参照することによって、ＨＯＳ＿ＮＶＣＭ７１０に格納されるデータを容易にかつ迅速にＨＯＳ＿ＶＣＭ２３０にリストアすることができ、また、ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００を参照することによって、ＧＯＳ＿ＮＶＣＭ７２０に格納されるデータを容易にかつ迅速にＧＯＳ＿ＶＣＭ４２０にリストアすることができる。【０２００】
また、バックアップ処理と同様に、第１のホストＯＳ２５１は、ＨＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報２５０のエントリ順にＨＯＳ＿ＮＶＣＭ７１０に格納されるデータをＨＯＳ＿ＶＣＭ２３０にリストアすることによって、電源遮断時の状態のＨＯＳ＿ＶＣＭ２３０のデータを復元できる。また、第１のホストＯＳ２５１は、ＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００のエントリ順にＧＯＳ＿ＮＶＣＭ７２０に格納されるデータをＧＯＳ＿ＶＣＭ４２０にリストアすることによって、電源遮断時の状態のＧＯＳ＿ＶＣＭ４２０のデータを復元できる。【０２０１】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。【０２０２】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるプロセッサが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、およびそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、光ディスク、光磁気ディスク、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭなどが用いられる。【０２０３】
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、Ｃ／Ｃ＋＋、ｐｅｒｌ、Ｓｈｅｌｌ、ＰＨＰ、Ｊａｖａ等の広範囲のプログラムまたはスクリプト言語で実装できる。【０２０４】
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段またはＣＤ−ＲＷ、ＣＤ−Ｒ等の記憶媒体に格納し、コンピュータが備えるプロセッサが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。【０２０５】
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
【図１】
2015132941.tif 000003
【図２】
2015132941.tif 000004
【図３】
2015132941.tif 000005
【図４Ａ】
2015132941.tif 000006
【図４Ｂ】
2015132941.tif 000007
【図５】
2015132941.tif 000008
【図６】
2015132941.tif 000009
【図７】
2015132941.tif 000010
【図８】
2015132941.tif 000011
【図９】
2015132941.tif 000012
【図１０】
2015132941.tif 000013
【図１１】
2015132941.tif 000014
【図１２】
2015132941.tif 000015
【図１３】
2015132941.tif 000016
【図１４】
2015132941.tif 000017
【図１５】
2015132941.tif 000018
【図１６】
2015132941.tif 000019
【図１７Ａ】
2015132941.tif 000020
【図１７Ｂ】
2015132941.tif 000021
【図１７Ｃ】
2015132941.tif 000022
【図１８】
2015132941.tif 000023
【手続補正書】
【提出日】平成28年6月13日(2016.6.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のオペレーティングシステムが稼働する計算機であって、
前記計算機は、物理リソースとして、プロセッサ、前記プロセッサに接続される揮発性メモリ、前記プロセッサに接続される不揮発性メモリ、および前記プロセッサに接続されるＩ／Ｏデバイスを備え、
前記複数のオペレーティングシステムは、第１のオペレーティングシステムと、複数の仮想計算機を生成する第２のオペレーティングシステムと、を含み、
前記第１のオペレーティングシステムは、
前記プロセッサが論理的に分割された第１の論理プロセッサ、前記揮発性メモリが論理的に分割された第１の論理揮発性メモリ、および前記Ｉ／Ｏデバイスが論理的に分割された第１論理Ｉ／Ｏデバイスを含む第１の論理リソース上で稼働し、
前記計算機の電源の遮断を検出する電源遮断検出部を有し、
前記第２のオペレーティングシステムは、前記プロセッサが論理的に分割された第２の論理プロセッサ、前記揮発性メモリが論理的に分割された第２の論理揮発性メモリ、前記Ｉ／Ｏデバイスが論理的に分割された第２の論理Ｉ／Ｏデバイスを含む第２の論理リソース上で稼働し、
前記複数の仮想計算機の各々では、第３のオペレーティングシステムが稼動し、
前記第１のオペレーティングシステムは、
当該第１のオペレーティングシステムの起動時に、前記第１の論理揮発性メモリに、一時的にデータを格納する第１のキャッシュメモリ領域を確保し、
前記第１のオペレーティングシステムが管理する前記第１の論理揮発性メモリの物理アドレス空間における前記第１のキャッシュメモリ領域の位置を示す第１の配置情報を生成し、
前記第２のオペレーティングシステムは、
少なくとも一つの仮想計算機を生成して、前記少なくとも一つの仮想計算機上で前記第３のオペレーティングシステムを起動し、
前記第３のオペレーティングシステムは、前記少なくとも一つの仮想計算機に割り当てられた仮想メモリに、第２のキャッシュメモリ領域を確保し、
前記第２のオペレーティングシステムは、当該第２のオペレーティングシステムが管理する前記第２の論理揮発性メモリの物理アドレス空間における前記第２のキャッシュメモリ領域の位置を示す第２の配置情報を生成し、
前記第１のオペレーティングシステムは、
前記計算機の電源の遮断が検出された場合に、前記第１の配置情報に基づいて、前記第１のキャッシュメモリ領域に格納される第１のデータを取得し、
前記第１のデータを前記不揮発性メモリに格納し、
前記第２の配置情報を取得し、
前記第２の配置情報に基づいて、前記第２のキャッシュメモリ領域に格納される第２のデータを前記第２の論理揮発性メモリから取得し、
前記第２のデータを前記不揮発性メモリに格納することを特徴とする計算機。
【請求項２】
請求項１に記載の計算機であって、
前記第１のオペレーティングシステムは、
前記計算機が再起動した場合に、前記第１の論理揮発性メモリに、新たに前記第１のキャッシュメモリ領域を確保し、
新たに前記第１の配置情報を生成し、
前記不揮発性メモリに格納される前記第１のデータを取得し、
前記新たに生成された第１の配置情報に基づいて、前記新たに確保された第１のキャッシュメモリ領域に前記第１のデータをリストアし、
前記第２のオペレーティングシステムは、
前記計算機が再起動した場合に、新たに前記少なくとも一つの仮想計算機を生成して、前記新たに生成された少なくとも一つの仮想計算機上で前記第３のオペレーティングシステムを起動し、
前記第３のオペレーティングシステムは、前記新たに生成された少なくとも一つの仮想計算機に新たに割り当てられた仮想メモリに、新たに前記第２のキャッシュメモリ領域を確保し、
前記第２のオペレーティングシステムは、新たに前記第２の配置情報を生成し、
前記第１のオペレーティングシステムに、前記少なくとも一つの仮想計算機上で稼動する第３のオペレーティングシステムの前記第２のデータのリストア要求を送信し、
前記第１のオペレーティングシステムは、
前記不揮発性メモリから、前記少なくとも一つの仮想計算機に対応する前記第２のデータを取得し、
前記新たに生成された第２の配置情報を取得し、
前記新たに生成された第２の配置情報に基づいて、前記新たに確保された第２のキャッシュメモリ領域に前記第２のデータをリストアすることを特徴とする計算機。
【請求項３】
請求項２に記載の計算機であって、
前記第２のオペレーティングシステムは、
前記少なくとも一つの仮想計算機を生成する場合に、前記第２のオペレーティングシステムが管理する物理アドレス空間と、前記第３のオペレーティングシステムが管理する物理アドレス空間との間のマッピング関係を管理する第１のマッピング情報を生成し、
前記第３のオペレーティングシステムは、
前記第３のオペレーティングシステムが管理する物理アドレス空間と、前記第３のオペレーティングシステムが管理する仮想アドレス空間との間の対応関係を管理する第２のマッピング情報を生成し、
前記第３のオペレーティングシステムが管理する仮想アドレス空間で連続する記憶領域を前記第２のキャッシュメモリ領域として確保し、
前記第２のマッピング情報に基づいて、前記第３のオペレーティングシステムが管理する仮想メモリの物理アドレス空間における前記第２のキャッシュメモリ領域を構成する複数の記憶領域の位置を特定し、
前記第３のオペレーティングシステムが管理する仮想メモリの物理アドレス空間における前記特定された複数の記憶領域の各々の物理アドレスを含むエントリを複数生成し、
前記第３のオペレーティングシステムが管理する仮想アドレス空間における前記第２のキャッシュメモリ領域のアドレス順に、前記生成された複数のエントリを並び替えることによって、前記第３のオペレーティングシステムが管理する前記仮想メモリの物理アドレス空間における前記第２のキャッシュメモリ領域の位置を示す第３の配置情報を生成し、
前記第２のオペレーティングシステムは、
前記第２の配置情報を生成する場合に、前記第３の配置情報および前記第１のマッピング情報に基づいて、前記第２のオペレーティングシステムが管理する第２の論理揮発性メモリの物理アドレス空間における前記第２のキャッシュメモリ領域を構成する複数の記憶領域の位置を特定し、
前記第２のオペレーティングシステムが管理する第２の論理揮発性メモリの物理アドレス空間における前記特定された複数の記憶領域の各々の物理アドレスを含むエントリを複数生成し、
前記第３のオペレーティングシステムが管理する仮想アドレス空間における前記第２のキャッシュメモリ領域のアドレス順に、前記生成された複数のエントリを並び替えることによって、前記第２の配置情報を生成することを特徴とする計算機。
【請求項４】
請求項３に記載の計算機であって、
前記第１のオペレーティングシステムは、前記仮想メモリに格納される前記第２のデータをバックアップする場合に、前記仮想メモリにおける前記第３のオペレーティングシステムが管理する前記仮想アドレス空間におけるアドレス順に、前記第２のデータを前記不揮発性メモリに格納することを特徴とする計算機。
【請求項５】
請求項４に記載の計算機であって、
前記不揮発性メモリは、アドレスが連続する記憶領域から構成される前記第１のデータを格納する第１の不揮発性キャッシュメモリ領域、およびアドレスが連続する記憶領域から構成される前記少なくとも一つの仮想計算機の前記第２のデータを格納する第２の不揮発性キャッシュメモリ領域を含み、
前記第１のオペレーティングシステムは、
前記第１の配置情報のエントリ順に、前記第１のキャッシュメモリ領域を構成する記憶領域に格納されるデータを読み出し、
前記第１の不揮発性キャッシュメモリ領域のアドレス順に、前記第１のキャッシュメモリ領域を構成する記憶領域から読み出されたデータを格納し、
前記第２の配置情報のエントリ順に、前記第２のキャッシュメモリ領域を構成する記憶領域に格納されるデータを読み出し、
前記第２の不揮発性キャッシュメモリ領域のアドレス順に、前記第２のキャッシュメモリ領域を構成する記憶領域から読み出されたデータを格納することを特徴とする計算機。
【請求項６】
複数のオペレーティングシステムが稼働する計算機におけるキャッシュデータ管理方法であって、
前記計算機は、物理リソースとして、プロセッサ、前記プロセッサに接続される揮発性メモリ、前記プロセッサに接続される不揮発性メモリ、および前記プロセッサに接続されるＩ／Ｏデバイスを備え、
前記複数のオペレーティングシステムは、第１のオペレーティングシステムと、複数の仮想計算機を生成する第２のオペレーティングシステムと、を含み、
前記第１のオペレーティングシステムは、
前記プロセッサが論理的に分割された第１の論理プロセッサ、前記揮発性メモリが論理的に分割された第１の論理揮発性メモリ、および前記Ｉ／Ｏデバイスが論理的に分割された第１論理Ｉ／Ｏデバイスを含む第１の論理リソース上で稼働し、
前記計算機の電源の遮断を検出する電源遮断検出部を有し、
前記第２のオペレーティングシステムは、前記プロセッサが論理的に分割された第２の論理プロセッサ、前記揮発性メモリが論理的に分割された第２の論理揮発性メモリ、前記Ｉ／Ｏデバイスが論理的に分割された第２の論理Ｉ／Ｏデバイスを含む第２の論理リソース上で稼働し、
前記複数の仮想計算機の各々では、第３のオペレーティングシステムが稼動し、
前記キャッシュデータ管理方法は、
前記第１のオペレーティングシステムが、当該第１のオペレーティングシステムの起動時に、前記第１の論理揮発性メモリに、一時的にデータを格納する第１のキャッシュメモリ領域を確保する第１のステップと、
前記第１のオペレーティングシステムが、前記第１のオペレーティングシステムが管理する前記第１の論理揮発性メモリの物理アドレス空間における前記第１のキャッシュメモリ領域の位置を示す第１の配置情報を生成する第２のステップと、
前記第２のオペレーティングシステムが、少なくとも一つの仮想計算機を生成して、前記少なくとも一つの仮想計算機上で前記第３のオペレーティングシステムを起動する第３のステップと、
前記第３のオペレーティングシステムが、前記少なくとも一つの仮想計算機に割り当てられた仮想メモリに、第２のキャッシュメモリ領域を確保する第４のステップと、
前記第２のオペレーティングシステムが、当該第２のオペレーティングシステムが管理する前記第２の論理揮発性メモリの物理アドレス空間における前記第２のキャッシュメモリ領域の位置を示す第２の配置情報を生成する第５のステップと、
前記第１のオペレーティングシステムが、前記計算機の電源の遮断が検出された場合に、前記第１の配置情報に基づいて、前記第１のキャッシュメモリ領域に格納される第１のデータを取得し、前記不揮発性メモリに前記第１のデータを格納する第６のステップと、
前記第１のオペレーティングシステムが、前記第２の配置情報を取得する第７のステップと、
前記第１のオペレーティングシステムが、前記第２の配置情報に基づいて、前記第２のキャッシュメモリ領域に格納される第２のデータを前記第２の論理揮発性メモリから取得し、前記不揮発性メモリに前記第２のデータを格納する第８のステップと、を含むことを特徴とするキャッシュデータ管理方法。
【請求項７】
請求項６に記載のキャッシュデータ管理方法であって、
前記キャッシュデータ管理方法は、
前記第１のオペレーティングシステムが、前記計算機が再起動した場合に、前記第１の論理揮発性メモリに、新たに前記第１のキャッシュメモリ領域を確保する第９のステップと、
前記第１のオペレーティングシステムが、新たに前記第１の配置情報を生成する第１０のステップと、
前記第１のオペレーティングシステムが、前記不揮発性メモリに格納される前記第１のデータを取得する第１１のステップと、
前記第１のオペレーティングシステムが、前記新たに生成された第１の配置情報に基づいて、前記新たに確保された第１のキャッシュメモリ領域に前記第１のデータをリストアする第１２のステップと、
前記第２のオペレーティングシステムが、前記計算機が再起動した場合に、新たに前記少なくとも一つの仮想計算機を生成して、前記新たに生成された少なくとも一つの仮想計算機上で前記第３のオペレーティングシステムを起動する第１３のステップと、
前記第３のオペレーティングシステムが、前記新たに生成された少なくとも一つの仮想計算機に新たに割り当てられた仮想メモリに、新たに前記第２のキャッシュメモリ領域を確保する第１４のステップと、
前記第２のオペレーティングシステムが、新たに前記第２の配置情報を生成する第１５のステップと、
前記第２のオペレーティングシステムが、前記第１のオペレーティングシステムに、前記少なくとも一つの仮想計算機上で稼動する第３のオペレーティングシステムの前記第２のデータのリストア要求を送信する第１６のステップと、
前記第１のオペレーティングシステムが、前記不揮発性メモリから、前記少なくとも一つの仮想計算機に対応する前記第２のデータを取得する第１７のステップと、
前記第１のオペレーティングシステムが、前記新たに生成された第２の配置情報を取得する第１８のステップと、
前記第１のオペレーティングシステムが、前記新たに生成された第２の配置情報に基づいて、前記新たに確保された第２のキャッシュメモリ領域に前記第２のデータをリストアする第１９のステップと、を含むことを特徴とするキャッシュデータ管理方法。
【請求項８】
請求項７に記載のキャッシュデータ管理方法であって、
前記第３のステップおよび前記第１３のステップは、前記第２のオペレーティングシステムが、前記第２のオペレーティングシステムが管理する物理アドレス空間と、前記第３のオペレーティングシステムが管理する物理アドレス空間との間のマッピング関係を管理する第１のマッピング情報を生成するステップを含み、
前記第４のステップおよび前記第１４のステップは、
前記第３のオペレーティングシステムが、前記第３のオペレーティングシステムが管理する物理アドレス空間と、前記第３のオペレーティングシステムが管理する仮想アドレス空間との間の対応関係を管理する第２のマッピング情報を生成するステップと、
前記第３のオペレーティングシステムが、前記第３のオペレーティングシステムが管理する仮想アドレス空間で連続する記憶領域を前記第２のキャッシュメモリ領域として確保するステップと、
前記第３のオペレーティングシステムが、前記第２のマッピング情報に基づいて、前記第３のオペレーティングシステムが管理する仮想メモリの物理アドレス空間における前記第２のキャッシュメモリ領域を構成する複数の記憶領域の位置を特定するステップと、
前記第３のオペレーティングシステムが、前記第３のオペレーティングシステムが管理する仮想メモリの物理アドレス空間における前記特定された複数の記憶領域の各々の物理アドレスを含むエントリを複数生成するステップと、
前記第３のオペレーティングシステムが、前記第３のオペレーティングシステムが管理する仮想アドレス空間における前記第２のキャッシュメモリ領域のアドレス順に、前記生成された複数のエントリを並び替えることによって、前記第３のオペレーティングシステムが管理する前記仮想メモリの物理アドレス空間における前記第２のキャッシュメモリ領域の位置を示す第３の配置情報を生成するステップと、を含み、
前記第５のステップおよび前記第１５のステップは、
前記第２のオペレーティングシステムが、前記第３の配置情報および前記第１のマッピング情報に基づいて、前記第２のオペレーティングシステムが管理する第２の論理揮発性メモリの物理アドレス空間における前記第２のキャッシュメモリ領域を構成する複数の記憶領域の位置を特定するステップと、
前記第２のオペレーティングシステムが、前記第２のオペレーティングシステムが管理する第２の論理揮発性メモリの物理アドレス空間における前記特定された複数の記憶領域の各々の物理アドレスを含むエントリを複数生成するステップと、
前記第２のオペレーティングシステムが、前記第３のオペレーティングシステムが管理する仮想アドレス空間における前記第２のキャッシュメモリ領域のアドレス順に、前記生成された複数のエントリを並び替えることによって、前記第２の配置情報を生成するステップと、を含むことを特徴とするキャッシュデータ管理方法。
【請求項９】
請求項８に記載のキャッシュデータ管理方法であって、
前記第１０のステップでは、前記第１のオペレーティングシステムが、前記仮想メモリにおける前記第３のオペレーティングシステムが管理する前記仮想アドレス空間におけるアドレス順に、前記第２のデータを前記不揮発性メモリに格納することを特徴とするキャッシュデータ管理方法。
【請求項１０】
請求項９に記載のキャッシュデータ管理方法であって、
前記不揮発性メモリは、アドレスが連続する記憶領域から構成される前記第１のデータを格納する第１の不揮発性キャッシュメモリ領域、およびアドレスが連続する記憶領域から構成される前記少なくとも一つの仮想計算機の前記第２のデータを格納する第２の不揮発性キャッシュメモリ領域を含み、
前記第６のステップは、
前記第１のオペレーティングシステムが、前記第１の配置情報のエントリ順に、前記第１のキャッシュメモリ領域を構成する記憶領域に格納されるデータを読み出すステップと、
前記第１のオペレーティングシステムが、前記第１の不揮発性キャッシュメモリ領域のアドレス順に、前記第１のキャッシュメモリ領域を構成する記憶領域から読み出されたデータを格納するステップと、を含み、
前記第８のステップは、
前記第１のオペレーティングシステムが、前記第２の配置情報のエントリ順に、前記第２のキャッシュメモリ領域を構成する記憶領域に格納されるデータを読み出すステップと、
前記第１のオペレーティングシステムが、前記第２の不揮発性キャッシュメモリ領域のアドレス順に、前記第２のキャッシュメモリ領域を構成する記憶領域から読み出されたデータを格納するステップと、を含むことを特徴とするキャッシュデータ管理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
このマルチＯＳ技術を利用し、第１のＯＳ（第１のホストＯＳ）としてストレージ制御ＯＳを搭載し、第２のＯＳ（第２のホストＯＳ）として仮想マシンモニタ（ＶＭＭ）を搭載し、さらに仮想マシンモニタ上の複数の仮想マシン（ＶＭ１〜ＶＭｎ）上のＯＳ（ゲストＯＳ１〜ゲストＯＳｎ）としてサーバ制御ＯＳを搭載することで、省スペース化・低価格化が期待できる。また、従来ＳＡＮを介して行っていたＩ／Ｏデータのリード／ライトを、第１のホストＯＳ−ゲストＯＳ間共有メモリを介して行うようにすることで、Ｉ／Ｏデータのリード／ライト性能の向上も期待できる。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０１３５
【補正方法】変更
【補正の内容】
【０１３５】
ゲストＯＳ４００は、ＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０の複数のエントリをＧＰＡ４４２の順番にしたがって並び替える。例えば、ゲストＯＳ４００は、ＧＰＡの昇順または降順にエントリを並び替える。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１５０
【補正方法】変更
【補正の内容】
【０１５０】
そこで、ゲストＯＳ４００は、ゲストＯＳ４００が管理するＧＰＡ空間の三つのブロックのエントリが、ゲストＯＳ４００が管理するＧＶＡ空間の連続した記憶領域の配置となるように並べられたＧＯＳ＿ＶＣＭ  ＧＰＡ空間配置情報４４０を生成する（ステップＳ４０４）。また、第２のホストＯＳ２５２は、ＨＰＡ空間の四つのブロックのエントリが、ゲストＯＳ４００が管理するＧＶＡ空間の連続したアドレス順となるように並べられたＧＯＳ＿ＶＣＭ  ＨＰＡ空間配置情報６００を生成する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１８７
【補正方法】変更
【補正の内容】
【０１８７】
第１のホストＯＳ２５１は、ＧＯＳ＿ＮＶＣＭ７２０から選択されたエントリのサイズ７０３分のデータを読み出し、ＧＯＳ＿ＶＣＭ４２０に当該データを格納する。このとき、ＤＭＡ転送を用いて、ＧＯＳ＿ＮＶＣＭ７２０からＧＯＳ＿ＶＣＭ４２０にデータが書き込まれる。ＤＭＡ転送では、選択されたエントリに格納されるＮＶＡ７０２およびサイズ７０３、並びに決定されたＧＯＳ＿ＮＶＣＭ７２０のアドレスが用いられる。以上がステップＳ９０２の処理の説明である。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１９０
【補正方法】変更
【補正の内容】
【０１９０】
なお、ＧＯＳ＿ＶＣＭ４２０は、第２の分割ＶＲＡＭ２２２に含まれるため、第１のホストＯＳ２５１は、通常、第２の分割ＶＲＡＭ２２２にはアクセスを行わない。しかし、バックアップ処理およびリストア処理の実行時には、第１のホストＯＳ２５１が、共有ＶＲＡＭ２２３に対して、ＧＯＳ＿ＮＶＣＭ７２０から一時的に第２の分割ＶＲＡＭ２２２にアクセスできるように設定する。他の方法としては、第１のホストＯＳ２５１が、第２のホストＯＳ２５２に読み出し命令を発行する方法も考えられる。共有ＶＲＡＭ２２３にＧＯＳ＿ＮＶＣＭ７２０から読み出されたデータを書き込み、第２のホストＯＳ２５２に当該データの書き込み命令を発行する方法も考えられる。
【手続補正７】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2015132941.tif 000024
【手続補正８】
【補正対象書類名】図面
【補正対象項目名】図４Ａ
【補正方法】変更
【補正の内容】
【図４Ａ】
2015132941.tif 000025
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図１１
【補正方法】変更
【補正の内容】
【図１１】
2015132941.tif 000026
【手続補正１０】
【補正対象書類名】図面
【補正対象項目名】図１３
【補正方法】変更
【補正の内容】
【図１３】
2015132941.tif 000027
【手続補正１１】
【補正対象書類名】図面
【補正対象項目名】図１６
【補正方法】変更
【補正の内容】
【図１６】
2015132941.tif 000028
【手続補正１２】
【補正対象書類名】図面
【補正対象項目名】図１７Ａ
【補正方法】変更
【補正の内容】
【図１７Ａ】
2015132941.tif 000029
【手続補正１３】
【補正対象書類名】図面
【補正対象項目名】図１７Ｂ
【補正方法】変更
【補正の内容】
【図１７Ｂ】
2015132941.tif 000030
【手続補正１４】
【補正対象書類名】図面
【補正対象項目名】図１７Ｃ
【補正方法】変更
【補正の内容】
【図１７Ｃ】
2015132941.tif 000031
【国際調査報告】
2015132941.tif 000032
2015132941.tif 000033