(57)【特許請求の範囲】
【請求項１】
第１の物理マシンに配置された第１の仮想マシンがアクセス可能な１以上のボリュームを含む第１のボリュームとして用いられる記憶領域を有する第１のストレージ装置と、
第２の物理マシンに配置された第２の仮想マシンがアクセス可能な１以上のボリュームを含む第２のボリュームとして用いられる記憶領域を有する第２のストレージ装置と、を有し、
前記第１の仮想マシンまたは前記第１のストレージ装置における所定の異常の発生に応じて、前記第１の仮想マシンが実行していた第１の処理を前記第２の仮想マシンが実行する場合、前記第２のストレージ装置は、前記第２の仮想マシンのうち、前記第１の処理を実行する仮想マシンを識別する情報と、前記第２のボリュームのうち、前記識別された仮想マシンが前記第１の処理の実行時にアクセスする１以上のボリュームとして用いられる記憶領域を識別する情報とのそれぞれを、互いに対応可能な状態で含む第１の情報を情報記憶部に記憶し、
前記第１のストレージ装置は、前記第１の仮想マシンが前記第１の処理を再実行する前に、前記第１のボリュームに含まれる１以上のボリュームとしてそれぞれ用いられる記憶領域の構成を、前記第２のボリュームに含まれる１以上のボリュームとしてそれぞれ用いられる記憶領域のうち、前記第１の情報に対応する記憶領域と同じ構成になるように再構成する、
情報処理システム。
【請求項２】
請求項１において、
前記第１のストレージ装置は、前記第１の仮想マシンを識別する情報と、前記第１のボリュームのうち、前記第１の仮想マシンが前記第１の処理の実行時にアクセスする１以上のボリュームとして用いられる記憶領域を識別する情報とのそれぞれを、互いに対応可能な状態で含む第２の情報を記憶し、
前記第１のストレージ装置は、前記第１の情報と前記第２の情報との差分情報に基づき、前記第１のボリュームに含まれる１以上のボリュームとしてそれぞれ用いられる記憶領域の再構成を行う情報処理システム。
【請求項３】
請求項１において、
前記第１のストレージ装置は、前記第１のボリュームに含まれる１以上のボリュームとしてそれぞれ用いられる記憶領域の再構成を行った後、前記第１のボリュームに含まれる１以上のボリュームとしてそれぞれ用いられる記憶領域に記憶された内容を、前記第２のボリュームに含まれる１以上のボリュームとしてそれぞれ用いられる記憶領域のうち、前記第１の情報に対応する記憶領域に記憶された内容と同期させる情報処理システム。
【請求項４】
物理マシンに配置された仮想マシンがアクセス可能な１以上のボリュームを含む特定のボリュームとして用いられる記憶領域を有するストレージ装置であって、
他の物理マシンに配置された他の仮想マシンまたは該他の仮想マシンがアクセス可能な他のストレージ装置における所定の異常の発生に応じて、前記他の仮想マシンが実行していた第１の処理を前記仮想マシンが実行する場合、前記仮想マシンのうち、前記第１の処理を実行する仮想マシンを識別する情報と、前記特定のボリュームに含まれる１以上のボリュームのうち、前記識別された仮想マシンが前記第１の処理の実行時にアクセスする１以上のボリュームとして用いられる記憶領域を識別する情報とのそれぞれを、互いに対応可能な状態で含む第１の情報を情報記憶部に記憶し、
前記他の仮想マシンが前記第１の処理を再実行する前に、前記他の仮想マシンがアクセス可能な１以上のボリュームとしてそれぞれ用いられる記憶領域の構成を、前記特定のボリュームに含まれる１以上のボリュームとしてそれぞれ用いられる記憶領域のうち、前記第１の情報に対応する記憶領域と同じ構成になるように再構成するために、前記第１の情報を前記他のストレージ装置に送信する、
ストレージ装置。
【請求項５】
物理マシンに配置された仮想マシンがアクセス可能な１以上のボリュームを含む特定のボリュームとして用いられる記憶領域を有するストレージ装置であって、
前記仮想マシンまたは前記ストレージ装置における所定の異常の発生に応じて、前記仮想マシンが実行していた第１の処理を他の物理マシンに配置された他の仮想マシンが実行した場合、前記他の仮想マシンのうち、前記第１の処理を実行する仮想マシンを識別する情報と、前記他の仮想マシンがアクセス可能な１以上のボリュームとしてそれぞれ用いられる記憶領域のうち、前記識別された仮想マシンが前記第１の処理の実行時にアクセスする１以上のボリュームとして用いられる記憶領域を識別する情報とのそれぞれを、互いに対応可能な状態で含む第１の情報を受信し、
前記仮想マシンが前記第１の処理を再実行する前に、前記特定のボリュームに含まれる１以上のボリュームとしてそれぞれ用いられる記憶領域の構成を、前記他の仮想マシンがアクセス可能な１以上のボリュームとしてそれぞれ用いられる記憶領域のうち、前記第１の情報に対応する記憶領域と同じ構成になるように再構成する、
ストレージ装置。
【請求項６】
物理マシンに配置された仮想マシンがアクセス可能な１以上のボリュームを含む特定のボリュームとして用いられる記憶領域を有するストレージ装置におけるプログラムであって、
他の物理マシンに配置された他の仮想マシン、または該他の仮想マシンがアクセス可能な他のストレージ装置における所定の異常の発生に応じて、前記他の仮想マシンが実行していた第１の処理を前記仮想マシンが実行する場合、前記仮想マシンのうち、前記第１の処理を実行する仮想マシンを識別する情報と、前記特定のボリュームに含まれる１以上のボリュームのうち、前記識別された仮想マシンが前記第１の処理の実行時にアクセスする１以上のボリュームとして用いられる記憶領域を識別する情報とのそれぞれを、互いに対応可能な状態で含む第１の情報を情報記憶部に記憶し、
前記他の仮想マシンが前記第１の処理を再実行する前に、前記他の仮想マシンがアクセス可能な１以上のボリュームとしてそれぞれ用いられる記憶領域の構成を、前記特定のボリュームに含まれる１以上のボリュームとしてそれぞれ用いられる記憶領域のうち、前記第１の情報に対応する記憶領域と同じ構成になるように再構成するために、前記第１の情報を前記他のストレージ装置に送信する、
処理をコンピュータに実行させるプログラム。
【請求項７】
物理マシンに配置された仮想マシンがアクセス可能な１以上のボリュームを含む特定のボリュームとして用いられる記憶領域を有するストレージ装置におけるプログラムであって、
前記仮想マシンまたは前記ストレージ装置における所定の異常の発生に応じて、前記仮想マシンが実行していた第１の処理を他の物理マシンに配置された他の仮想マシンが実行した場合、前記他の仮想マシンのうち、前記第１の処理を実行する仮想マシンを識別する情報と、前記他の仮想マシンがアクセス可能な１以上のボリュームとしてそれぞれ用いられる記憶領域のうち、前記識別された他の仮想マシンが前記第１の処理の実行時にアクセスする１以上のボリュームとして用いられる記憶領域を識別する情報とのそれぞれを、互いに対応可能な状態で含む第１の情報を受信し、
前記仮想マシンが前記第１の処理を再実行する前に、前記特定のボリュームに含まれる１以上のボリュームとしてそれぞれ用いられる記憶領域の構成を、前記他の仮想マシンがアクセス可能な１以上のボリュームとしてそれぞれ用いられる記憶領域のうち、前記第１の情報に対応する記憶領域と同じ構成になるように再構成する、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、ストレージ装置及びプログラムに関する。
【背景技術】
【０００２】
例えば、利用者に対してサービスを提供する業務システムにおいて、運用中のサーバ（以下、運用サーバとも呼ぶ）で動作している処理と同じ処理を実行することができるサーバ（以下、待機サーバとも呼ぶ）を準備する場合がある。この待機サーバは、例えば、運用サーバが設置されたデータセンタから数十ｋｍから数百ｋｍ程度離れた場所にあるデータセンタに設置される。これにより、例えば、自然災害の発生等によって運用サーバでの処理の継続が困難になった場合に、運用サーバで実行していた処理を待機サーバに実行させ、利用者に対するサービスの提供を継続することができる。そして、運用サーバの復旧が完了した後、運用管理者は、例えば、待機サーバで実行していた処理を、再び運用サーバで実行させる。（例えば、特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１２−６４０１２号公報
【特許文献２】特表２００６−５０８４５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
運用管理者は、例えば、待機サーバがアクセスするストレージ装置（以下、待機側ストレージ装置とも呼ぶ）の構成を、運用サーバがアクセスしているストレージ装置（以下、運用側ストレージ装置とも呼ぶ）の構成と同じ構成にする場合がある。そして、運用管理者は、例えば、これらのストレージ装置に記憶されたデータを、所定の間隔（例えば、１日に１回）で同期する場合がある。この場合、運用サーバで障害が発生した際に、待機サーバでの処理を迅速に開始することが可能になる。
【０００５】
ここで、待機サーバでの処理の実行中（運用サーバの障害発生時）に、待機サーバでの処理の実行に伴って待機側ストレージ装置内の構成を変更する場合がある。具体的に、例えば、待機側ストレージ装置内のあるボリュームに空き容量がなくなったために、新たなボリュームにデータの記憶を開始する場合がこれに該当する。そのため、運用管理者は、この場合に、待機側ストレージ装置内の構成に関する情報に基づいて、運用側ストレージ装置の構成を更新する必要がある。
【０００６】
しかしながら、例えば、待機側ストレージ装置内の構成に関する情報に基づいて、運用サーバが運用側ストレージ装置の構成を更新する場合、運用側ストレージ装置の構成は、運用サーバの復旧が完了するまで更新されない。そのため、例えば、運用側ストレージ装置が運用サーバよりも先に復旧した場合や運用側ストレージ装置に障害が発生していない場合であっても、運用サーバが復旧するまでは運用側ストレージ装置の構成を更新できない。
【０００７】
また、例えば、待機サーバが独自の処理（運用サーバでは実行されていない処理）を行っている場合、運用側ストレージ装置が取得した待機側ストレージ装置内の構成に関する情報に、待機サーバにおける独自の処理に関する情報が含まれている場合がある。そのため、運用側ストレージ装置は、取得した待機側ストレージ装置内の構成に関する情報に基づいて運用側ストレージ装置の構成を更新する場合に、運用サーバが必要としない記憶領域を作成する場合がある。
【０００８】
そこで、一つの実施の形態の目的は、ストレージ装置間でデータの同期を行うことができる情報処理システム、ストレージ装置及びプログラムを提供することにある。
【課題を解決するための手段】
【０００９】
実施の形態の一つの側面によれば、第１の物理マシンに配置された第１の仮想マシンがアクセス可能な第１の記憶領域を有する第１のストレージ装置と、第２の物理マシンに配置された第２の仮想マシンがアクセス可能な第２の記憶領域を有する第２のストレージ装置とを有し、
前記第１の仮想マシンまたは前記第１のストレージ装置における所定の異常の発生に応じて、前記第１の仮想マシンが実行していた第１の処理を前記第２の仮想マシンが実行する場合、前記第２のストレージ装置は、前記第２の仮想マシンのうち前記第１の処理を実行する仮想マシンを識別する情報と、前記第２の記憶領域のうち前記識別された仮想マシンが前記第１の処理の実行時にアクセスする記憶領域を識別する情報とを対応させた第１の情報を情報記憶部に記憶し、
前記第１のストレージ装置は、前記第１の仮想マシンが前記第１の処理を再実行する前に、前記第１の記憶領域の構成を、前記第２の記憶領域のうち前記第１の情報に対応する記憶領域と同じ構成になるように再構成する。
【発明の効果】
【００１０】
一つの側面によれば、ストレージ装置間でデータの同期を行うことができる。
【図面の簡単な説明】
【００１１】
【図１】情報処理システムの全体構成を示す図である。
【図２】ストレージ装置の構成を説明する図である。
【図３】ストレージ装置の構成を説明する図である。
【図４】ストレージ装置の構成を説明する図である。
【図５】ストレージ装置の構成を説明する図である。
【図６】ストレージ装置の構成を説明する図である。
【図７】ストレージ装置の構成を説明する図である。
【図８】ストレージ装置の構成を説明する図である。
【図９】情報処理システムのハードウエア構成を示す図である。
【図１０】図９のストレージ装置の機能ブロック図である。
【図１１】図９のストレージ装置の機能ブロック図である。
【図１２】第１の実施の形態における切換処理及び再構成処理の概略を示すフローチャート図である。
【図１３】第１の実施の形態における再構成処理の概要を説明する図である。
【図１４】第１の実施の形態における再構成処理の概要を説明する図である。
【図１５】第１の実施の形態における再構成処理の詳細を説明するフローチャート図である。
【図１６】第１の実施の形態における再構成処理の詳細を説明するフローチャート図である。
【図１７】第１の実施の形態における再構成処理の詳細を説明する図である。
【図１８】第１の実施の形態における再構成処理の詳細を説明する図である。
【図１９】第１の実施の形態における再構成処理の詳細を説明する図である。
【図２０】第２の実施の形態における再構成処理を説明するフローチャート図である。
【図２１】第２の実施の形態における再構成処理を説明するフローチャート図である。
【図２２】第２の実施の形態における再構成処理の詳細を説明する図である。
【図２３】第２の実施の形態における再構成処理の詳細を説明する図である。
【発明を実施するための形態】
【００１２】
［情報処理システムの構成］
図１は、情報処理システムの全体構成を示す図である。図１に示す情報処理システム１００は、第１サイト１０と第２サイト２０にそれぞれ設置された物理マシン等によって構成される。第１サイト１０と第２サイト２０は、例えば、数十ｋｍから数百ｋｍ程度離れた場所に存在するサイトである。
【００１３】
そして、第１サイト１０には、例えば、管理サーバ１１と、仮想マシン（ＶＭ：Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）を作成する物理マシン１２と、仮想マシン等がアクセス可能な記憶領域（以下、ボリュームとも呼ぶ）を有するストレージ装置１５（以下、第１のストレージ装置１５とも呼ぶ）とが設けられている。また、第２サイト２０には、例えば、管理サーバ２１と、仮想マシンを作成する物理マシン２２と、仮想マシン等がアクセス可能なボリュームを有するストレージ装置２５（以下、第２のストレージ装置２５とも呼ぶ）とが設けられている。そして、第１サイト１０内の機器と、第２サイト２０内の機器とは、インターネットやイントラネット等のネットワークを介して互いにアクセス可能になっている。
【００１４】
物理マシン１２、２２は、図１の例では複数の物理マシンから構成されており、各物理マシンは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）と、ハードディスク（ＨＤＤ：Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の大容量メモリとネットワークとを有する。そして、物理マシン１２、２２のリソースは、それぞれ複数の仮想マシン１３、２３に割り当てられる。
【００１５】
管理サーバ１１、２１は、例えば、それぞれ物理マシン１２、２２とアクセス可能であり、仮想マシンの作成指示や作成された仮想マシンの管理を行う。
【００１６】
仮想マシン１３、２３（以下、それぞれ第１の仮想マシン１３、第２の仮想マシン２３とも呼ぶ）は、例えば、サービス事業者がそのインフラ等をネットワーク経由で利用者に提供するもの（以下、クラウドサービスとも呼ぶ）である。クラウドサービスは、コンピュータシステムを構築し稼働させるための基盤、即ち、仮想マシンやネットワーク等のインフラストラクチャそのものを、ネットワーク経由で提供するサービスである。また、利用者は、例えば、利用者端末からクラウドサービスポータルサイトにアクセスして、仮想マシンに必要な仕様、例えばＣＰＵのクロック周波数、メモリの容量（ＧＢ）、ハードディスクの容量（ＭＢ／ｓｅｃ、ＩＯＰＳ）、及びネットワークの通信帯域幅（Ｇｂｐｓ）を選択する。そして、利用者は、それらについてクラウド利用契約を締結する。また、利用者端末は、例えば、仮想マシンの稼働状態を監視や、仮想マシンに対する操作等を可能にする。
【００１７】
なお、例えば、通常時においては、第１サイト１０内の仮想マシン１３が利用者にサービスを提供するためのサービスを行い、第２サイト２０内の仮想マシン２３がその他の処理（例えば、利用者によるサービスの利用状況を分析する処理）を行う。そして、災害の発生等に起因して、第１サイト１０内の仮想マシン１３において異常が発生した場合に、仮想マシン２３は、仮想マシン１３で実行されていた処理を引き継いで実行することにより、利用者へのサービスの提供を継続する。その後、仮想マシン１３が復旧した場合、仮想マシン１３は、例えば、仮想マシン２３が行っていた処理の実行を再び開始する。そのため、図１の例において、第２サイト２０内の各機器は、第１サイト１０内のそれぞれ対応する機器が実行する処理を実行することができる環境を有している。具体的に、例えば、仮想マシン２３には、仮想マシン１３で動作するプログラム等がインストールされており、ストレージ装置２５に記憶されているデータと、ストレージ装置１５に記憶されているデータとは同期されている。
【００１８】
また、第２サイト２０内の仮想マシン２３が独自の処理（仮想マシン２３が実行していない処理）を行っている場合、仮想マシン１３は、仮想マシン２３で動作しているプログラム等をインストールしておく。これにより、災害の発生等に起因して、第２サイト２０内の仮想マシン２３において異常が発生した場合に、仮想マシン１３は、仮想マシン２３で実行されていた処理を引き継いで実行することが可能になる。
【００１９】
そして、仮想化ソフトウエア１４、２４は、それぞれ管理サーバ１１、２１からの指示に応じて、物理マシン２のＣＰＵ、メモリ、ハードディスク、ネットワーク等のリソースを割り当てることにより、仮想マシン３を動作させる基盤ソフトウエアである。仮想化ソフトウエア１４、２４は、例えば、それぞれ物理マシン１２、２２で動作する。
【００２０】
また、仮想マシン１３、２３は、それぞれ物理マシン１２、２２のリソースが割り当てられることに加えて、例えば、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、ミドルウエア、アプリケーション、データベース等を有するイメージファイルをそのハードディスク内に有する。そして、仮想マシン１３、２３は、例えば、起動時にイメージファイルをハードディスクからメモリに書き込み、所望のサービスに対応する動作を行う。
【００２１】
[物理サーバとストレージ装置の構成]
次に、ストレージ装置の構成を説明する。図２から図８は、ストレージ装置の構成を説明する図である。なお、以下の例では、第１サイト１０が通常時に処理を実行する運用サイトであり、第２サイト２０が第１サイト１０で異常が発生した場合に、第１サイト１０で実行されていた処理を引き継ぐ待機サイトであるものとして説明する。
【００２２】
図２は、通常運用時における物理サーバ及びストレージ装置の構成を説明する図である。図２の例において、第２サイト２０の仮想マシン２３Ａは、第１サイト１０の仮想マシン１３Ａで動作している処理の実行が可能であり、第２サイト２０の仮想マシン２３Ｂは、第１サイト１０の仮想マシン１３Ｂで動作している処理の実行が可能である。また、仮想マシン１３Ａ、１３Ｂがアクセス可能なストレージ装置１５内のボリュームと、仮想マシン２３Ａ、２３Ｂがアクセス可能なストレージ装置２５内のボリュームとはそれぞれ同期されている。具体的に、図２の例において、仮想マシン１３Ａがアクセス可能なボリューム１５Ａ、１５Ｂに記憶されているデータは、仮想マシン２３Ａがアクセス可能なボリューム２５Ａ、２５Ｂに記憶されているデータと同期している。また、図２の例において、仮想マシン１３Ｂがアクセス可能なボリューム１５Ｃに記憶されているデータは、仮想マシン２３Ｂがアクセス可能なボリューム２５Ｃに記憶されているデータと同期している。これにより、災害の発生等に起因して仮想マシン１３Ａ、１３Ｂに異常が発生した際に、仮想マシン２３Ａ、２３Ｂは、ボリューム１５Ａ、１５Ｂに記憶されているデータとボリューム２５Ａ、２５Ｂに記憶されているデータとを同期させる必要がない。そのため、仮想マシン２３Ａ、２３Ｂは、仮想マシン１３Ａ、１３Ｂに異常が発生した場合に、仮想マシン１３Ａ、１３Ｂが行っていた処理を迅速に開始することが可能になる。以下、災害の発生等に起因して仮想マシン１３Ａ及び１３Ｂに異常が発生した場合における具体的な処理について説明する。
【００２３】
[災害等が発生した場合の処理]
図３は、異常発生前における物理マシンと仮想マシンの構成を説明する図である。また、図４から図７は、仮想マシンに異常が発生した場合を説明する図である。
【００２４】
図３に示す例において、仮想マシン１３Ａは、処理の実行に伴ってボリューム１５Ａ、１５Ｂにアクセスを行い、仮想マシン１３Ｂは、処理の実行に伴ってボリューム１５Ｃにアクセスを行う。また、図３に示す状態において、仮想マシン２３Ａ、２３Ｂは、仮想マシン１３Ａ、１３Ｂが行っている処理を実行していない。そのため、図３に示す例において、仮想マシン２３Ａ、２３Ｂは、ボリューム２５Ａ、２５Ｂ、２５Ｃにアクセスしていない状態である。
【００２５】
図３に示す状態において、仮想マシン１３Ａ、１３Ｂに異常が発生した場合、仮想マシン２３Ａ、２３Ｂは、例えば、仮想マシン１３Ａ、１３Ｂにアクセスができなくなったことを検知することにより、仮想マシン１３Ａ、１３Ｂに異常が発生したものと判定する。そして、仮想マシン２３Ａ、２３Ｂは、この場合、図４に示すように、仮想マシン１３Ａ、１３Ｂが行っていた処理をそれぞれ引き継いで実行する。具体的に、仮想マシン２３Ａは、ボリューム１５Ａ、１５Ｂと同期しているボリューム２５Ａ、２５Ｂにアクセスして処理を行い、仮想マシン２３Ｂは、ボリューム１５Ｃと同期しているボリューム２５Ｃにアクセスして処理を行う。これにより、災害の発生等があった場合に、利用者に対するサービスの提供を継続して行うことが可能になる。
【００２６】
ここで、例えば、仮想マシン１３Ａ、１３Ｂに異常が発生した場合において、復旧作業に時間を要した場合、仮想マシン１３Ａ、１３Ｂが実行していた処理を仮想マシン２３Ａ、２３Ｂで実行する時間が長くなる。この場合、図５に示すように、仮想マシン２３Ａ、２３Ｂによる処理の実行に伴って、各仮想マシンがアクセスするストレージ装置２５内のボリュームの構成が変更される場合がある。すなわち、この場合、異常発生前の仮想マシン１３Ａ、１３Ｂが処理の実行に伴ってアクセスしていたボリュームの構成と、仮想マシン２３Ａ、２３Ｂが現在アクセスしているボリュームの構成が異なる。具体的に、図５に示す例では、図４における状態と異なり、仮想マシン２３Ａは、ボリューム２５Ａにのみアクセスし、仮想マシン２３Ｂは、ボリューム２５Ｃ及びボリューム２６Ｃにアクセスしている。そのため、仮想マシン１３Ａ、１３Ｂが復旧した場合、仮想マシン１３Ａ、１３Ｂは、それぞれ仮想マシン２３Ａ、２３Ｂがアクセスしていたボリュームに関する情報を取得する必要がある。具体的に、仮想マシン１３Ａは、例えば、ボリューム２５Ａに対応するボリューム１５Ａにのみアクセスを行う必要があることを示す情報を仮想マシン２３Ａから取得する。また、仮想マシン１３Ｂは、例えば、ボリューム２５Ｃ及びボリューム２５Ｄに対応するボリューム１５Ｃ及び図６に示すボリューム１５Ｄにアクセスを行う必要がある旨を示す情報を仮想マシン２３Ｂから取得する。そして、ストレージ装置１５は、図６に示すように、仮想マシン１３Ａ、１３Ｂが取得した情報に基づき、ストレージ装置１５内のボリュームの構成を再構成する。
【００２７】
しかし、例えば、災害の発生時等において、仮想マシン１３Ａ及び仮想マシン１３Ｂに異常が発生したが、ストレージ装置１５には異常が発生していない場合がある。または、ストレージ装置１５が、仮想マシン１３Ａ及び仮想マシン１３Ｂよりも早く復旧する場合がある。この場合、ストレージ装置１５は、仮想マシン１３Ａ及び仮想マシン１３Ｂが復旧するまで、ストレージ装置１５内のボリュームの構成を再構成させることができない。
【００２８】
また、図７に示すように、物理マシン１２には存在しないが、物理マシン２２においてのみ動作する仮想マシン（図７の例では仮想マシン２３Ｃ）が存在する場合がある。この場合、ストレージ装置２５の構成に関する情報に、仮想マシン２３Ｃがアクセスするボリューム２５Ｅに関する情報が含まれている。そのため、ストレージ装置１５は、図８に示すように、ストレージ装置２５の構成に関する情報に基づいてストレージ装置１５の構成を更新した場合、仮想マシン１３Ａ、１３Ｂが必要としないボリューム（図８の例ではボリューム１５Ｅ）を作成する場合がある。
【００２９】
そこで、本実施の形態では、仮想マシン１３Ａ、１３Ｂによって実行されていた処理を、仮想マシン２３Ａ、２３Ｂが実行する際に、アクセスするストレージ装置２５内のボリュームの情報に基づき、ストレージ装置１５内のボリュームを再構成する。これにより、ストレージ装置１５は、仮想マシン１３Ａ、１３Ｂによる処理の実行を待つことなく、ストレージ装置１５内のボリュームの再構成を行うことができる。すなわち、仮想マシン１３Ａ、１３Ｂの復旧していない場合であっても、ストレージ装置１５は、ストレージ装置１５内のボリュームの再構成を行うことができる。
【００３０】
［情報処理システムのハードウエア構成］
次に、情報処理システム１００の構成について説明する。図９は、情報処理システムのハードウエア構成を示す図である。図９の例における情報処理システム１００は、第１サイト１０に設置された物理マシン１２及びストレージ装置１５と、第２サイト２０に設置された物理マシン２２及びストレージ装置２５とを含む。また、図９の例においては、物理マシン１２、ストレージ装置１５、物理マシン２２及びストレージ装置２５は、それぞれネットワークを介してアクセスが可能である。なお、以下、仮想マシン１３Ａ、１３Ｂをまとめて仮想マシン１３とも呼び、仮想マシン２３Ａ、２３Ｂをまとめて仮想マシン２３とも呼ぶ。
【００３１】
物理マシン１２は、プロセッサであるＣＰＵ１２０１と、メモリ１２０２と、外部インターフェース（Ｉ／Ｏユニット）１２０３と、記憶媒体１２０４とを有する。各部は、バス１２０５を介して互いに接続される。記憶媒体１２０４は、例えば、記憶媒体１２０４内のプログラム格納領域（図示しない）に、仮想マシン２３が実行していた処理を引き継ぐ処理（以下、切換処理とも呼ぶ）等を行うためのプログラム１２１０を記憶する。ＣＰＵ１２０１は、図９に示すように、プログラム１２１０の実行時に、プログラム１２１０を記憶媒体１２０４からメモリ１２０２にロードし、プログラム１２１０と協働して切換処理等を行う。また、記憶媒体１２０４は、例えば、切換処理等を行う際に用いられる情報を記憶する情報格納領域１２３０を有する。
【００３２】
そして、ストレージ装置１５は、プロセッサであるＣＰＵ１５０１と、メモリ１５０２と、外部インターフェース（Ｉ／Ｏユニット）１５０３と、記憶媒体１５０４とを有する。各部は、バス１５０５を介して互いに接続される。記憶媒体１５０４は、例えば、記憶媒体１５０４内のプログラム格納領域（図示しない）に、記憶媒体１５０４内のボリュームの再構成する処理（以下、再構成処理とも呼ぶ）を行うためのプログラム１５１０（以下、再構成プログラムとも呼ぶ）を記憶する。ＣＰＵ１５０１は、図９に示すように、プログラム１５１０の実行時に、プログラム１５１０を記憶媒体１５０４からメモリ１５０２にロードし、プログラム１５１０と協働して再構成処理を行う。また、記憶媒体１５０４は、例えば、仮想マシンがアクセスする情報や、再構成処理を行う際に用いられる情報を記憶する情報格納領域１５３０を有する。なお、記憶媒体１５０４は、例えば、物理マシン１２内のファイルシステム（図示しない）によって論理的なボリュームに分割されて管理される。
【００３３】
また、物理マシン２２は、物理マシン１２と同様に、プロセッサであるＣＰＵ２２０１と、メモリ２２０２と、外部インターフェース（Ｉ／Ｏユニット）２２０３と、記憶媒体２２０４とを有する。各部は、バス２２０５を介して互いに接続される。記憶媒体２２０４は、例えば、記憶媒体２２０４内のプログラム格納領域（図示しない）に、仮想マシン１３が実行していた処理を引き継ぐ処理（以下、切換処理とも呼ぶ）等を行うためのプログラム２２１０を記憶する。ＣＰＵ２２０１は、図９に示すように、プログラム２２１０の実行時に、プログラム２２１０を記憶媒体２２０４からメモリ２２０２にロードし、プログラム２２１０と協働して切換処理等を行う。また、記憶媒体２２０４は、例えば、切換処理等を行う際に用いられる情報を記憶する情報格納領域２２３０を有する。
【００３４】
そして、ストレージ装置２５は、プロセッサであるＣＰＵ２５０１と、メモリ２５０２と、外部インターフェース（Ｉ／Ｏユニット）２５０３と、記憶媒体２５０４とを有する。各部は、バス２５０５を介して互いに接続される。記憶媒体２５０４は、例えば、記憶媒体２５０４内のプログラム格納領域（図示しない）に、記憶媒体２５０４内のボリュームの再構成処理を行うための再構成プログラム２５１０を記憶する。ＣＰＵ２５０１は、図９に示すように、プログラム２５１０の実行時に、プログラム２５１０を記憶媒体２５０４からメモリ２５０２にロードし、プログラム２５１０と協働して再構成処理を行う。また、記憶媒体２５０４は、例えば、仮想マシンがアクセスする情報や、再構成処理を行う際に用いられる情報を記憶する情報格納領域２５３０を有する。なお、記憶媒体２５０４は、例えば、物理マシン２２内のファイルシステム（図示しない）によって論理的なボリュームに分割されて管理される。
【００３５】
[ストレージ装置のソフトウエア構成]
図１０は、図９のストレージ装置の機能ブロック図である。具体的に、図１０は、第１サイト１０のストレージ装置１５の機能ブロック図である。ＣＰＵ１５０１は、プログラム１５１０と協働することにより、例えば、データ参照部１５１１と、データ記憶部１５１２と、状態検知部１５１３と、対応情報記憶部１５１４として動作する。また、ＣＰＵ１５０１は、プログラム１５１０と協働することにより、例えば、対応情報送信部１５１５と、対応情報受信部１５１６と、ボリューム構成部１５１７と、データ同期部１５１８として動作する。また、情報格納領域１５３０には、例えば、仮想マシン参照情報１５３１と、対応情報１５３２（以下、第２の情報１５３２とも呼ぶ）とが記憶されている。
【００３６】
データ参照部１５１１は、例えば、図１において説明した仮想マシン１３からアクセス要求を受信したときに、受信したアクセス要求に対応する仮想マシン参照情報１５３１へのアクセスを行い、その取得したデータをアクセス要求の送信元に返す。なお、仮想マシン参照情報１５３１は、仮想マシン１３がアクセス可能なデータの集合体であり、後述するボリューム構成部１５１７が作成した１つ以上のボリュームに記憶される。
【００３７】
データ記憶部１５１２は、例えば、仮想マシン１３からデータ記憶要求を受信したときに、受信したデータ記憶要求に対応するデータを仮想マシン参照情報１５３１として記憶する。また、データ記憶部１５１２は、例えば、仮想マシン１３からデータ更新要求を受信したときに、情報格納領域１５３０に記憶された仮想マシン参照情報１５３１を更新する。
【００３８】
状態検知部１５１３は、例えば、第２サイト２０において所定の異常が発生した場合にこれを検知する。具体的に、状態検知部１５１３は、例えば、第２サイト２０にアクセスができなくなったことを検知した場合に、第２サイト２０において異常が発生したものと判定するものであってよい。そして、状態検知部１５１３は、例えば、第２サイト２０において異常が発生したものと判定した場合、第２サイト２０の仮想マシン２３が実行していた処理を引き継ぐ。
【００３９】
対応情報記憶部１５１４は、例えば、仮想マシン１３を識別する情報と、各仮想マシン１３がアクセスしているボリュームを識別する情報とを対応させた対応情報１５３２を作成する。そして、対応情報記憶部１５１４は、例えば、作成した対応情報１５３２を情報格納領域１５３０に記憶する。具体的に、対応情報記憶部１５１４は、例えば、第２サイト２０の仮想マシン２３が実行していた処理を引き継いで実行している場合、仮想マシン１３のうち第２サイト２０での処理を実行している仮想マシンに関する対応情報１５３２のみを作成する。
【００４０】
対応情報送信部１５１５は、例えば、対応情報記憶部１５１４が記憶した対応情報１５３２をストレージ装置２５に送信する。また、対応情報受信部１５１６は、例えば、対応情報２５３２（ストレージ装置２５が作成した対応情報）を受信する。
【００４１】
ボリューム構成部１５１７は、例えば、対応情報記憶部１５１４が作成した対応情報１５３２と、対応情報受信部１５１６が受信した対応情報２５３２とに差異があるか否かを判定する。そして、ボリューム構成部１５１７は、これらの情報に差異があると判定した場合、対応情報２５３２の情報に基づき、ストレージ装置１５内のボリュームを再構成する。また、ボリューム構成部１５１７は、例えば、対応情報受信部１５１６が受信した対応情報２５３２のみに基づいて、ストレージ装置１５内のボリュームを再構成する。
【００４２】
データ同期部１５１８は、例えば、ストレージ装置１５に記憶されたデータと、ストレージ装置２５に記憶されたデータとの同期を行う。具体的に、データ同期部１５１８は、例えば、ボリューム構成部１５１７がボリュームの再構成を行った後にデータの同期を行う。
【００４３】
図１１は、図９のストレージ装置の機能ブロック図である。具体的に、図１１は、第２サイト２０のストレージ装置２５の機能ブロック図である。ＣＰＵ２５０１は、プログラム２５１０と協働することにより、例えば、データ参照部２５１１と、データ記憶部２５１２と、状態検知部２５１３と、対応情報記憶部２５１４として動作する。また、ＣＰＵ２５０１は、プログラム２５１０と協働することにより、例えば、対応情報送信部２５１５と、対応情報受信部２５１６と、ボリューム構成部２５１７と、データ同期部２５１８として動作する。また、情報格納領域２５３０には、例えば、仮想マシン参照情報２５３１と、対応情報２５３２（以下、第１の情報２５３２とも呼ぶ）とが記憶されている。なお、ストレージ装置２５の各機能及び情報は、図１０において説明したストレージ装置１５の各処理及び情報と同じであるため、ここでは説明を省略する。
【００４４】
［第１の実施の形態の概略］
次に、第１の実施の形態の概略について説明する。図１２は、第１の実施の形態における切換処理及び再構成処理の概略を示すフローチャート図である。また、図１３及び図１４は、第１の実施の形態における再構成処理の概略を説明する図である。図１３及び図１４を参照しながら図１２の切換処理及び再構成処理の概略について説明する。なお、以下、仮想マシン１３において異常が発生する場合について説明する。
【００４５】
初めに、図１２の左側のフローチャートを参照しながら切換処理を説明する。図１２における切換処理は、仮想マシン１３及び仮想マシン２３において実行される処理である。具体的に、仮想マシン２３は、例えば、仮想マシン１３において異常が発生するまで待機する（Ｓ１のＮＯ）。仮想マシン２３は、例えば、定期的に仮想マシン１３へのアクセスを行い、そのアクセスに失敗した場合に、仮想マシン１３に異常が発生したものと判定するものであってよい。
【００４６】
そして、仮想マシン２３が仮想マシン１３において異常が発生したものと判定した場合（Ｓ１のＹＥＳ）、仮想マシン２３は、例えば、仮想マシン１３において実行されていた処理（以下、第１の処理とも呼ぶ）の実行を開始する（Ｓ２）。すなわち、仮想マシン２３が仮想マシン１３とアクセスできなくなった場合、仮想マシン１３において、第１の処理の継続ができなくなっている可能性が考えられる。この場合、利用者に提供されるサービスに影響が及ぶ可能性がある。そのため、仮想マシン２３は、仮想マシン１３における異常を検知した場合に、仮想マシン１３において実行されていた第１の処理を引き継いで実行を開始する。その後、仮想マシン２３は、例えば、仮想マシン１３が復旧するまで待機する（Ｓ３のＮＯ）。
【００４７】
なお、運用管理者は、例えば、仮想マシン１３からのエラー出力等によって、仮想マシン１３に異常が発生したことを検知する場合がある。この場合、第１の処理を仮想マシン２３で実行する必要があるか否かの判断を運用管理者が行うものであってもよい。そして、運用管理者は、仮想マシン２３で処理を実行する必要があると判断した場合、仮想マシン２３が第１の処理の実行を開始するためのオペレーションを行うものであってもよい。
【００４８】
そして、仮想マシン１３が復旧した場合（Ｓ３のＹＥＳ）、仮想マシン１３は、仮想マシン２３が実行していた第１の処理を引き継ぎ再実行する（Ｓ４）。なお、仮想マシン２３は、例えば、運用管理者によって、仮想マシン１３が復旧したことを示す入力があった場合に、第１の処理の引き継ぎを行うものであってよい。また、仮想マシン１３は、後述するように、ストレージ装置１５によるボリュームの再構成（Ｓ１４）が完了した後に、第１の処理の再実行を行うことが好ましい。
【００４９】
次に、図１２の右側のフローチャートを参照しながら再構成処理について説明する。図１２における再構成処理は、ストレージ装置１５及びストレージ装置２５において実行される処理である。具体的に、ストレージ装置２５は、例えば、仮想マシン１３において異常が発生するまで待機する（Ｓ１１のＮＯ）。具体的に、例えば、ストレージ装置２５は、上記の切換処理の場合と同様に、仮想マシン２３が仮想マシン１３において異常が発生したものと検知するまで待機する。
【００５０】
そして、仮想マシン２３が仮想マシン１３において異常が発生したものと判定した場合（Ｓ１１のＹＥＳ）、ストレージ装置２５は、例えば、仮想マシン２３が第１の処理の実行を開始した後に、図１３に示すように、対応情報２５３２を作成して記憶する（Ｓ２、Ｓ１２）。対応情報２５３２は、例えば、仮想マシン２３のうち第１の処理を実行する仮想マシンの識別情報と、ストレージ装置２５内のボリューム（以下、第２のボリュームとも呼ぶ）のうち第１の処理を実行する仮想マシンがアクセスするボリュームとを対応させた情報である。具体的に、ストレージ装置２５は、ストレージ装置２５が有する各可能マシンのＷＷＮ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｎａｍｅ）を仮想マシンの識別情報として、対応情報２５３２を作成するものであってよい。そして、ストレージ装置２５は、仮想マシン１３における異常の発生を検知した後、例えば、第２のボリュームの構成が変更される毎に対応情報２５３２を更新するものであってよい。対応情報２５３２の具体例については後述する。その後、ストレージ装置２５は、例えば、ストレージ装置１５が復旧するまで待機する（Ｓ１３のＮＯ）。そして、ストレージ装置１５が復旧した場合（Ｓ１３のＹＥＳ）、ストレージ装置１５は、例えば、図１４に示すように、対応情報２５３２に基づき、ストレージ装置１５内のボリューム（以下、第１のボリュームとも呼ぶ）の再構成を行う（Ｓ１４）。
【００５１】
すなわち、仮想マシン２３が仮想マシン１３において実行されていた第１の処理を引き継いで実行する場合、第２のボリュームの構成が第１の処理の切換時における第１のボリュームの構成と異なる場合がある。この場合、ストレージ装置１５は、第２のボリュームの構成に関する情報の取得に基づいて、第１のボリュームの再構成を行う必要がある。ここで、ストレージ装置１５は、ストレージ装置２５から第２のボリュームの構成に関する情報を直接取得し、第１のボリュームの再構成を行うことにより、仮想マシン１３の復旧前に第１のボリュームの再構成を行うことが可能になる。そのため、ストレージ装置１５は、例えば、ストレージ装置１５に異常が発生していない場合やストレージ装置１５が仮想マシン１３よりも先に復旧した場合に、仮想マシン１３の復旧を待つことなくボリュームの再構成を行うことができる。また、これにより、仮想マシン間で第２のボリュームの構成に関する情報を送受信するための回線を設ける必要がなくなる。
【００５２】
さらに、ストレージ装置２５は、ストレージ装置２５内のボリュームのうち、仮想マシン１３が実行していた第１の処理を実行している仮想マシンがアクセスするボリュームに関する対応情報２５３２を作成する。そのため、対応情報２５３２には、仮想マシン２３が独自の処理を実行するためにアクセスするボリュームに関する情報は含まれない。
【００５３】
このように、第１の実施の形態によれば、仮想マシン１３における所定の異常の発生に応じて、仮想マシン１３が実行していた第１の処理を仮想マシン２３が実行する場合、ストレージ装置２５は、対応情報２５３２を記憶する。そして、ストレージ装置１５は、仮想マシン１３が第１の処理を再実行する前に、第１のボリュームの構成を、第２のボリュームのうち対応情報２５３２に対応するボリュームと同じ構成になるように再構成する。これにより、ストレージ装置１５は、仮想マシン１３が異常から復旧しているか否かを問わず、ストレージ装置１５のボリュームを再構成することができる。また、ストレージ装置１５及びストレージ装置２５は、仮想マシン１３が使用しないボリュームが作成されることを防ぐことができる。
【００５４】
[第１の実施の形態の詳細]
次に、第１の実施の形態の詳細について説明する。図１５及び図１６は、第１の実施の形態における再構成処理の詳細を説明するフローチャート図である。また、図１７から図１９は、第１の実施の形態における再構成処理の詳細を説明する図である。図１７から図１９を参照しながら、図１５及び図１６の再構成処理の詳細を説明する。
【００５５】
[第２のストレージ装置での処理]
初めに、ストレージ装置２５において実行される再構成処理を説明する。ストレージ装置２５の対応情報記憶部２５１４は、例えば、図１２で説明した対応情報２５３２を記憶するタイミングまで待機する（Ｓ２１のＮＯ）。この対応情報２５３２を記憶するタイミングは、例えば、例えば、仮想マシン１３またはストレージ装置１５の異常を検知した後、所定の時間毎（例えば、１時間毎）であってよい。そして、対応情報２５３２を記憶するタイミングになった場合（Ｓ２１のＹＥＳ）、対応情報記憶部２５１４は、例えば、対応情報２５３２の作成を行い、情報格納領域２５３０に記憶する（Ｓ２２）。
【００５６】
また、ストレージ装置２５の状態検知部２５１３は、例えば、ストレージ装置１５の復旧を検知するまで待機する（Ｓ３１のＮＯ）。そして、ストレージ装置１５が復旧していると判定した場合（Ｓ３１のＹＥＳ）、対応情報送信部２５１５は、例えば、対応情報記憶部２５１４が作成した最新の対応情報２５３２をストレージ装置１５に送信する（Ｓ３２）。これにより、ストレージ装置１５は、仮想マシン１３が復旧しているか否かに関わらず、対応情報２５３２を取得することが可能になる。そして、ストレージ装置１５は、仮想マシン１３が復旧していない状態であっても、ストレージ装置１５のボリューム構成と、ストレージ装置２５のボリューム構成との同期を取ることが可能になる。
【００５７】
[第１のストレージ装置での処理]
次に、ストレージ装置１５において実行される再構成処理を説明する。ストレージ装置１５の対応情報受信部１５１６は、例えば、ストレージ装置２５から送信された対応情報２５３２を受信するまで待機する（Ｓ４１のＮＯ）。すなわち、対応情報受信部１５１６が対応情報２５３２を受信できる場合とは、ストレージ装置１５に異常が発生しなかった場合またはストレージ装置１５が異常から復旧した場合である。そして、対応情報受信部１５１６が対応情報２５３２を受信した場合（Ｓ４１のＹＥＳ）、ボリューム構成部１５１７は、例えば、対応情報２５３２に基づき、ストレージ装置１５のボリュームを再構成する。具体的に、ボリューム構成部１５１７は、ストレージ装置１５のボリュームの構成を、ストレージ装置２５のボリュームの構成と同じ構成にする。
【００５８】
続いて、ストレージ装置１５のデータ同期部１５１８は、例えば、第１のボリュームに記憶された内容を、第２のボリュームに記憶させた内容と同期させる（Ｓ４３）。すなわち、ボリューム構成部１５１７がストレージ装置１５とストレージ装置２５のボリューム構成を同期させたことにより、データ同期部１５１８は、ストレージ装置１５とストレージ装置２５のそれぞれに記憶されたデータを同期させることが可能になる。そして、データ同期部１５１８は、例えば、仮想マシン１３が復旧するまで待機する（Ｓ４４のＮＯ）。その後、仮想マシン１３が復旧した場合に（Ｓ４４のＹＥＳ）、データ同期部１５１８は、例えば、仮想マシン１３に再構成した第１のボリュームの構成に関する情報を送信する（Ｓ４５）。この第１のボリュームの構成に関する情報は、例えば、ストレージ装置２５から受信した対応情報２５３２であってもよい。すなわち、ストレージ装置１５は、例えば、ストレージ装置１５が仮想マシン１３よりも先に復旧した場合に、復旧後の仮想マシン１３がアクセスする必要があるボリュームの再構成を行う。そのため、仮想マシン１３は、復旧後に第１のボリュームの構成に関する情報を受信することにより、その情報の内容に基づいてストレージ装置１５のボリュームにアクセスを行うことが可能になる。したがって、仮想マシン１３の復旧後、仮想マシン１３が第１の処理を実行するまで要する時間を短縮させることが可能になる。
【００５９】
[再構成処理の具体例]
次に、再構成処理の具体例を説明する。図１７から図１９は、対応情報２５３２の具体例を説明する図である。図１７から図１９に示す例は、第１サイト１０の仮想マシンに異常が発生した場合に、第２サイト２０において作成される対応情報２５３２の例である。なお、以下、対応情報２５３２は、第１サイト１０の仮想マシンと第２サイト２０の仮想マシンとの対応を示す仮想マシン対応情報と、各仮想マシンがアクセスするボリューム対応情報とからなるものとして説明する。
【００６０】
図１７は、仮想マシン対応情報の具体例を説明する図である。図１７に示す仮想マシン対応情報は、第１サイト１０側の仮想マシンと第２サイト側の仮想マシンとの組み合わせを識別する「グループ識別ＩＤ」と、第１サイト１０側で仮想マシンが配置された物理マシンを識別する「プライマリ物理マシンＩＤ」とを項目として有する。また、図１７に示す仮想マシン対応情報は、第１サイト１０側の仮想マシンを識別する「プライマリ仮想マシンＩＤ」と、第２サイト２０側で仮想マシンが配置された物理マシンを識別する「セカンダリ物理マシンＩＤ」とを項目として有する。さらに、図１７に示す仮想マシン対応情報は、第２サイト２０側の仮想マシンを識別する「プライマリ仮想マシンＩＤ」を項目として有する。なお、図１７の例において、グループ識別ＩＤは、それぞれ１台ずつのプライマリ物理マシンＩＤとセカンダリ物理マシンＩＤとに対応する。
【００６１】
具体的に、図１７の例においては、例えば、第１サイト１０側の仮想マシンＶＭ−１−１は、第２サイト２０側の仮想マシンＶＭ−２−１と対応しており、これらの仮想マシンのグループ識別ＩＤは１である。また、仮想マシンＶＭ−１−１は、物理マシンＳＶ−１−１に作成されており、仮想マシンＶＭ−２−１は、物理マシンＳＶ−２−１に作成されている。すなわち、図１７に示す仮想マシン対応情報は、例えば、仮想マシンＶＭ−１−１に異常が発生した場合、仮想マシンＶＭ−１−１が実行していた処理を仮想マシンＶＭ−２−１が引き継ぐことを示している。なお、グループ識別ＩＤが２、３、４である情報は、グループ識別ＩＤが１である情報と同じであるため説明を省略する。
【００６２】
次に、図１８及び図１９は、ボリューム対応情報の具体例を説明する図である。図１８及び図１９に示すボリューム対応情報は、図１７において説明した「グループ識別ＩＤ」と、図１７の項目「セカンダリ仮想マシンＩＤ」が示す仮想マシンがアクセスするデータが記憶されたボリュームを示す「セカンダリボリューム」とを項目として有している。
【００６３】
具体的に、図１８に示すボリューム対応情報は、項目「グループ識別ＩＤ」が１である仮想マシン−２−１が、ボリュームＶｏｌ−１−１−２、Ｖｏｌ−１−２−２、Ｖｏｌ−１−３−２にアクセスしていることを示している。なお、グループ識別ＩＤが２、３、４である情報は、グループ識別ＩＤが１である情報と同じであるため説明を省略する。
【００６４】
そして、図１９は、図１８に示す状態からボリューム構成が変化した場合のボリューム対応情報を示す例である。具体的に、図１９に示す例は、図１８に示すボリューム対応情報の状態から、ボリュームＶｏｌ−１−４−２に関する情報が追加されている。また、図１９に示す例は、図１８に示すボリューム対応情報の状態から、ボリュームＶｏｌ−１−２−２とボリュームＶｏｌ−３−２−２に関する情報が削除されている。すなわち、仮想マシン２３による第１の処理の実行時に、新たにボリュームＶｏｌ−１−４−２へのアクセスが開始され、ボリュームＶｏｌ−１−２−２とボリュームＶｏｌ−３−２−２へのアクセスが終了したことを示している。したがって、ストレージ装置１５は、第１サイト１０の仮想マシンが異常から復旧した場合、例えば、図１９に示すボリューム対応情報を受信することにより、ストレージ装置１５内のボリューム構成とストレージ装置２５内のボリューム構成とを同期させることが可能になる。
【００６５】
［第２の実施の形態］
次に、第２の実施の形態について説明する。図２０は、第２の実施の形態における再構成処理を示すフローチャートである。
【００６６】
第２の実施の形態では、ストレージ装置１５は、第１の実施の形態と異なり、対応情報１５３２を作成する。そして、ストレージ装置１５は、例えば、所定の時間間隔毎に、対応情報１５３２をストレージ装置２５に送信し、ストレージ装置２５は、対応情報２５３２をストレージ装置１５に送信する。これにより、ストレージ装置１５及びストレージ装置２５は、異常が発生しているか否かに依らず、互いのボリューム構成を常に確認して同期させることが可能になる。
【００６７】
そして、ストレージ装置２５は、仮想マシン１３またはストレージ装置１５に異常が発生した場合においても、対応情報２５３２の作成を継続する。さらに、ストレージ装置１５が異常から復旧した場合、ストレージ装置２５は、最新の対応情報２５３２をストレージ装置１５に送信する。その後、ストレージ装置１５は、受信した対応情報２５３２と異常発生時における対応情報１５３２とを差分情報を取得し、第１のボリュームの更新を行う。これにより、ストレージ装置１５は、取得した差分情報に基づき、第１のボリュームの更新を迅速に行うことが可能になる。また、ストレージ装置１５及びストレージ装置２５の両方が対応情報を作成することにより、仮想マシン２３に異常が発生した場合においても、仮想マシン１３が作成した対応情報１５３２に基づき、第２のボリュームの再構成を行うことが可能になる。以下、第２の実施に形態における再構成処理の詳細を説明する。
【００６８】
[第２のストレージ装置での処理]
初めに、ストレージ装置２５において実行される再構成処理を説明する。対応情報記憶部２５１４は、対応情報２５３２を記憶するタイミングまで待機する（Ｓ５１のＮＯ）。そして、対応情報２５３２を記憶するタイミングになった場合（Ｓ５１のＹＥＳ）、対応情報記憶部２５１４は、例えば、対応情報２５３２の作成を行い、情報格納領域２５３０に記憶する（Ｓ５２）。その後、対応情報送信部２５１５は、例えば、対応情報記憶部２５１４が作成した対応情報２５３２を、ストレージ装置１５に送信する（Ｓ５３）。すなわち、第２の実施の形態では、第１の実施の形態と異なり、仮想マシン等における異常の発生有無に依らず、定常的に対応情報を作成する。そして、ストレージ装置１５及びストレージ装置２５は、例えば、相互に対応情報を送信することにより、それぞれのボリューム構成を同期させる。
【００６９】
[第１のストレージ装置での処理]
次に、ストレージ装置１５において実行される再構成処理を説明する。対応情報記憶部１５１４は、例えば、ストレージ装置２５と同様に、対応情報１５３２を記憶するタイミングまで待機する（Ｓ６１のＮＯ）。そして、対応情報１５３２を記憶するタイミングになった場合（Ｓ６１のＹＥＳ）、対応情報記憶部１５１４は、例えば、対応情報１５３２の作成を行い、情報格納領域１５３０に記憶する（Ｓ６２）。その後、対応情報送信部１５１５は、例えば、対応情報記憶部１５１４が作成した対応情報１５３２を、ストレージ装置２５に送信する（Ｓ６３）。すなわち、第２の実施の形態におけるストレージ装置１５は、第１の実施の形態と異なり、ストレージ装置２５と同様に、対応情報１５３２を作成する。これにより、仮想マシン２３に異常が発生した場合に、その異常の復旧後、仮想マシン１３が作成した対応情報１５３２に基づいてストレージ装置２５の再構成を行うことが可能になる。そのため、仮想マシン１３と仮想マシン２３とで異なる処理を行っている場合において、一方の仮想マシン等に障害が発生した場合に、その仮想マシンが実行していた処理を、他方の仮想マシンに切り替えることが可能になる。
【００７０】
また、対応情報受信部１５１６は、例えば、ストレージ装置２５から送信された対応情報２５３２を受信するまで待機する（Ｓ７１のＮＯ）。すなわち、異常が発生した仮想マシン１３は、復旧後、異常発生前と同様の処理を開始することになる。そのため、異常発生前と同様に、第１の情報を受信し、後述するようにストレージ装置１５のボリューム構成とストレージ装置２５のボリューム構成とを同期する。そして、対応情報受信部１５１６が対応情報２５３２を受信した場合（Ｓ７１のＹＥＳ）、ボリューム構成部１５１７は、例えば、対応情報１５３２と対応情報２５３２との差分情報を抽出する。さらに、ボリューム構成部１５１７は、抽出した差分情報に基づき、第１のボリュームを再構成する。具体的に、ボリューム構成部１５１７は、対応情報１５３２には情報が含まれるが対応情報２５３２には情報が含まれないボリュームを削除する。また、ボリューム構成部１５１７は、対応情報２５３２には情報が含まれるが対応情報１５３２には情報が含まれないボリュームを追加する。これにより、ボリューム構成部１５１７は、第１のボリュームの再構成を行うために必要な時間やコストを削減することが可能になる。
【００７１】
次に、ストレージ装置１５のデータ同期部１５１８は、例えば、第１のボリュームに記憶された内容を、第２のボリュームに記憶させた内容と同期させる（Ｓ７３）。そして、データ同期部１５１８は、例えば、仮想マシン１３が復旧するまで待機する（Ｓ７４のＮＯ）。その後、仮想マシン１３が復旧した場合に（Ｓ７４のＹＥＳ）、データ同期部１５１８は、例えば、仮想マシン１３に再構成した第１のボリュームの構成に関する情報を送信する（Ｓ７５）。これにより、ストレージ装置２５は、仮想マシン１３に異常が発生した場合に、最も新しい対応情報２５３２を情報格納領域２５３０から取得することにより、ストレージ装置１５に送信することが可能になる。
【００７２】
[再構成処理の具体例]
次に、再構成処理の具体例を説明する。図２２及び図２３は、対応情報１５３２、２５３２の具体例を説明する図である。以下、対応情報１５３２、２５３２は、第１サイト１０の仮想マシンと第２サイト２０の仮想マシンとの対応を示す仮想マシン対応情報と、各仮想マシンがアクセスするボリューム対応情報とからなるものとして説明する。なお、第２の実施の形態における仮想マシン対応情報は、図１７で説明したものと同じ内容であるため、ここでは説明を省略する。
【００７３】
初めに、図２２は、異常発生前におけるボリューム対応情報の具体例を説明する図である。図２２（Ａ）は、ストレージ装置１５が作成する対応情報１５３２の例であり、図２２（Ｂ）は、ストレージ装置２５が作成する対応情報２５３２の例である。
【００７４】
具体的に、図２２（Ａ）の例において、項目「グループ識別ＩＤ」が１である第１サイト１０側の仮想マシンは、ボリュームＶｏｌ−１−１−１、Ｖｏｌ−１−２−１、Ｖｏｌ−１−３−１にアクセスしていることを示している。また、項目「グループ識別ＩＤ」が１である第２サイト２０側の仮想マシンは、ボリュームＶｏｌ−１−１−２、Ｖｏｌ−１−２−２、Ｖｏｌ−１−３−２にアクセスしていることを示している。また、図２２（Ａ）において、同一の列に記憶されているボリュームは、それぞれに記憶された内容が同期されるボリュームであることを示している。すなわち、ボリュームＶｏｌ−１−１−１とボリュームＶｏｌ−１−１−２とは、記憶されている情報が同期している。なお、グループ識別ＩＤが２、３、４である情報は、グループ識別ＩＤが１である情報と同じであるため説明を省略する。
【００７５】
また、図２２（Ｂ）に示す対応情報２５３２は、図２２（Ａ）に示す対応情報１５３２と同じ情報を有している。すなわち、ストレージ装置１５及びストレージ装置２５は、異常発生前において、互いに対応情報の送受信し、これに基づいてストレージ装置内の構成を同期する。したがって、図２２に示す例において、対応情報１５３２と対応情報２５３２は、同じ情報を有している。
【００７６】
次に、図２３は、異常発生後のボリューム対応情報の具体例を説明する図である。図２３（Ａ）は、ストレージ装置１５が作成する対応情報１５３２の例であり、図２３（Ｂ）は、ストレージ装置２５が作成する対応情報２５３２の例である。例えば、仮想マシン１３において異常が発生した場合、仮想マシン１３によるストレージ装置１５の更新は停止する。したがって、図２３（Ａ）に示す対応情報１５３２は、図２２（Ａ）に示す対応情報１５３２の状態から更新されない。
【００７７】
一方、仮想マシン１３に異常が発生している場合であっても、仮想マシン２３はストレージ装置２５の更新を行う。したがって、仮想マシン１３において異常が発生した場合、図２２の場合とは異なり、対応情報１５３２の内容と対応情報２５３２の内容とは異なることになる。具体的に、図２３（Ｂ）に示す例は、図２２（Ｂ）に示すボリューム対応情報の状態から、ボリュームＶｏｌ−１−４−２に関する情報が追加されている。また、図２３（Ｂ）に示す例は、図２２（Ｂ）に示すボリューム対応情報の状態から、ボリュームＶｏｌ−１−２−２とボリュームＶｏｌ−３−２−２に関する情報が削除されている。すなわち、仮想マシン２３による第１の処理の実行に伴い、新たにボリュームＶｏｌ−１−４−２へのアクセスが開始され、ボリュームＶｏｌ−１−２−２とボリュームＶｏｌ−３−２−２へのアクセスが終了したことを示している。
【００７８】
これにより、ストレージ装置１５は、例えば、図２３（Ｂ）に示す対応情報２５３２のセカンダリボリュームに関する情報と、図２３（Ａ）に示す対応情報１５３２のプライマリボリュームに関する情報とに基づき、差分情報を取得することが可能になる。そして、ストレージ装置１５は、取得した差分情報に基づき、ストレージ装置１５のボリューム構成をストレージ装置２５のボリューム構成と同期させることが可能になる。
【００７９】
すなわち、第２の実施の形態によれば、ボリューム構成部１５１７は、ストレージ装置１５で作成された対応情報１５３２と、ストレージ装置２５で作成された対応情報２５３２との差分情報を参照して、第１のボリュームの再構成を行う。これにより、ストレージ装置２５で作成された対応情報２５３２のみを参照して第１のボリュームの再構成を行うよりも短時間でボリュームの再構成を行うことが可能になる。
【００８０】
以上の実施の形態をまとめると、以下の付記のとおりである。
【００８１】
（付記１）
第１の物理マシンに配置された第１の仮想マシンがアクセス可能な第１の記憶領域を有する第１のストレージ装置と、
第２の物理マシンに配置された第２の仮想マシンがアクセス可能な第２の記憶領域を有する第２のストレージ装置と、を有し、
前記第１の仮想マシンまたは前記第１のストレージ装置における所定の異常の発生に応じて、前記第１の仮想マシンが実行していた第１の処理を前記第２の仮想マシンが実行する場合、前記第２のストレージ装置は、前記第２の仮想マシンのうち前記第１の処理を実行する仮想マシンを識別する情報と、前記第２の記憶領域のうち、前記識別された仮想マシンが前記第１の処理の実行時にアクセスする記憶領域を識別する情報とを対応させた第１の情報を情報記憶部に記憶し、
前記第１のストレージ装置は、前記第１の仮想マシンが前記第１の処理を再実行する前に、前記第１の記憶領域の構成を、前記第２の記憶領域のうち前記第１の情報に対応する記憶領域と同じ構成になるように再構成する、
情報処理システム。
【００８２】
（付記２）
付記１において、
前記第１のストレージ装置は、前記第１の仮想マシンを識別する情報と、前記第１の記憶領域のうち、前記第１の仮想マシンがアクセスする記憶領域とを対応させた第２の情報を記憶し、
前記第１のストレージ装置は、前記第１の情報と前記第２の情報との差分情報に基づき、前記第１の記憶領域の再構成を行う情報処理システム。
【００８３】
（付記３）
付記１において、
前記第１のストレージ装置は、前記第１の記憶領域の再構成を行った後、前記第１の記憶領域に記憶された内容を、前記第２の記憶領域に記憶された内容と同期させる情報処理システム。
【００８４】
（付記４）
付記１において、
前記第２のストレージ装置は、前記第１のストレージ装置とアクセスができなくなった場合に、前記所定の異常が発生したものと判定する情報処理システム。
【００８５】
（付記５）
物理マシンに配置された仮想マシンがアクセス可能な記憶領域を有するストレージ装置であって、
他の物理マシンに配置された他の仮想マシンまたは該他の仮想マシンがアクセス可能な他のストレージ装置における所定の異常の発生に応じて、前記他の仮想マシンが実行していた第１の処理を前記仮想マシンが実行する場合、前記仮想マシンのうち前記第１の処理を実行する仮想マシンを識別する情報と、前記記憶領域のうち、前記識別された仮想マシンが前記第１の処理の実行時にアクセスする記憶領域を識別する情報とを対応させた第１の情報を情報記憶部に記憶し、
前記他の仮想マシンが前記第１の処理を再実行する前に、前記他の記憶領域の構成を、前記記憶領域のうち前記第１の情報に対応する記憶領域と同じ構成になるように再構成するために、前記第１の情報を前記他のストレージ装置に送信する、
ストレージ装置。
【００８６】
（付記６）
物理マシンに配置された仮想マシンがアクセス可能な記憶領域を有するストレージ装置であって、
前記仮想マシンまたは前記ストレージ装置における所定の異常の発生に応じて、前記仮想マシンが実行していた第１の処理を他の物理マシンに配置された他の仮想マシンが実行した場合、前記他の仮想マシンのうち前記第１の処理を実行する仮想マシンを識別する情報と、該識別された仮想マシンが前記第１の処理の実行時にアクセスする他の記憶領域を識別する情報とを対応させた第１の情報を受信し、
前記仮想マシンが前記第１の処理を再実行する前に、前記記憶領域の構成を、前記他の記憶領域のうち前記第１の情報に対応する記憶領域と同じ構成になるように再構成する、
ストレージ装置。
【００８７】
（付記７）
物理マシンに配置された仮想マシンがアクセス可能な記憶領域を有するストレージ装置におけるプログラムであって、
他の物理マシンに配置された他の仮想マシン、または該他の仮想マシンがアクセス可能な他のストレージ装置における所定の異常の発生に応じて、前記他の仮想マシンが実行していた第１の処理を前記仮想マシンが実行する場合、前記仮想マシンのうち前記第１の処理を実行する仮想マシンを識別する情報と、前記記憶領域のうち前記識別された仮想マシンが前記第１の処理の実行時にアクセスする記憶領域を識別する情報とを対応させた第１の情報を情報記憶部に記憶し、
前記他の仮想マシンが前記第１の処理を再実行する前に、前記他の記憶領域の構成を、前記記憶領域のうち前記第１の情報に対応する記憶領域と同じ構成になるように再構成するために、前記第１の情報を前記他のストレージ装置に送信する、
処理をコンピュータに実行させるプログラム。
【００８８】
（付記８）
物理マシンに配置された仮想マシンがアクセス可能な記憶領域を有するストレージ装置におけるプログラムであって、
前記仮想マシンまたは前記ストレージ装置における所定の異常の発生に応じて、前記仮想マシンが実行していた第１の処理を他の物理マシンに配置された他の仮想マシンが実行した場合、前記他の仮想マシンのうち前記第１の処理を実行する仮想マシンを識別する情報と、該識別された他の仮想マシンが前記第１の処理の実行時にアクセスする他の記憶領域を識別する情報とを対応させた第１の情報を受信し、
前記仮想マシンが前記第１の処理を再実行する前に、前記記憶領域の構成を、前記他の記憶領域のうち前記第１の情報に対応する記憶領域と同じ構成になるように再構成する、
処理をコンピュータに実行させるプログラム。
【符号の説明】
【００８９】
１０：第１サイト            １２：物理マシン
１３：仮想マシン            １５：ストレージ装置
２０：第２サイト            ２２：物理マシン            
２３：仮想マシン            ２５：仮想マシン
【図１】
0006394212.tif 000002
【図２】
0006394212.tif 000003
【図３】
0006394212.tif 000004
【図４】
0006394212.tif 000005
【図５】
0006394212.tif 000006
【図６】
0006394212.tif 000007
【図７】
0006394212.tif 000008
【図８】
0006394212.tif 000009
【図９】
0006394212.tif 000010
【図１０】
0006394212.tif 000011
【図１１】
0006394212.tif 000012
【図１２】
0006394212.tif 000013
【図１３】
0006394212.tif 000014
【図１４】
0006394212.tif 000015
【図１５】
0006394212.tif 000016
【図１６】
0006394212.tif 000017
【図１７】
0006394212.tif 000018
【図１８】
0006394212.tif 000019
【図１９】
0006394212.tif 000020
【図２０】
0006394212.tif 000021
【図２１】
0006394212.tif 000022
【図２２】
0006394212.tif 000023
【図２３】
0006394212.tif 000024