(57)【要約】【課題】ストレージ装置５０１、５０２を仮想化する複数のスイッチ装置２００、３００からなるシステムで、各スイッチ装置によるデータの更新を誤りなく実行する。【解決手段】スイッチ２００、３００とストレージ装置５０１、５０２とを有し、各スイッチ装置はそれぞれ複数のストレージ装置の記憶領域の一部あるいは全部を組み合わせた仮想記憶領域２５０、３５０を管理し、スイッチ２００は、仮想記憶領域２５０でデータのコピー処理を行う通知をスイッチ３００に送信し、スイッチ２００は、仮想記憶領域の記憶領域２５１に格納されたデータを記憶領域２５２にコピーし、スイッチ２００はコピーの実行中にスイッチ３００から記憶領域３５１、３５２にアクセスするリクエストを受信した場合、コピーの実行を停止し、スイッチ３００はスイッチ２００がコピーの実行を停止した後に記憶領域３５１、３５２にアクセスする。【選択図】図１
2009205614.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで接続された第一のスイッチ装置と第二のスイッチ装置と複数のストレージ装置とを有し、該第一のスイッチ装置と該第二のスイッチ装置はそれぞれ該複数のストレージ装置の記憶領域を用いて構成される仮想記憶領域を備えたストレージシステムの制御方法であって、
該第一のスイッチ装置は、該仮想記憶領域の中でデータのコピー処理を行う通知を該第二のスイッチ装置に送信し、
該第一のスイッチ装置は、該仮想記憶領域の第一の記憶領域に格納されたデータを該仮想記憶領域の第二の記憶領域にコピーし、
該第一のスイッチ装置は、該コピーの実行中に該第二のスイッチ装置から該第一の記憶領域あるいは該第二の記憶領域にアクセスするリクエストを受信した場合、コピーの実行を停止し、
該第二のスイッチ装置は、該第一のスイッチ装置がコピーの実行を停止した後に、該第一の記憶領域あるいは該第二の記憶領域にアクセスする
ことを特徴とするストレージシステムの制御方法。
【請求項２】
該第一のスイッチ装置および該第二のスイッチ装置は、該第一の記憶領域に格納されたデータを該第二の記憶領域にコピーする処理の進行の状態を示す管理情報を共有し、
該第一のスイッチ装置および該第二のスイッチ装置は、該管理情報の更新の可否を示す可否情報を有し、
該第二のスイッチ装置は、該アクセスが該管理情報の更新を要するか否かを判別し、
該第二のスイッチ装置は、該アクセスが該管理情報の更新を要する場合に、該リクエストを第一のスイッチ装置に送信することを特徴とする請求項１に記載のストレージシステムの制御方法。
【請求項３】
該第二のスイッチ装置は、該アクセスを実行した後に該可否情報を管理情報の更新が不許可であることを示す状態に変更することを特徴とする請求項２に記載のストレージシステムの制御方法。
【請求項４】
該第一のスイッチ装置は、該第二のスイッチ装置から該可否情報の取得依頼を受信すると、該コピー処理を中断し、該可否情報を該管理情報の更新が不可であることを示す状態に変更し、該管理情報の更新を許可する情報を該第二のスイッチ装置に送信することを特徴とする請求項２に記載のストレージシステムの制御方法。
【請求項５】
該第二のスイッチ装置は、該アクセスが該第一の記憶領域のコピー処理を実施していない領域についてデータを書き込む処理、該第二の記憶領域のコピー処理を実施していない領域についてデータを書き込む処理、および該第二の記憶領域のコピー処理を実施していない領域についてデータを読み出す処理のいずれかである場合に、該管理情報の更新を要するアクセスであると判別することを特徴とする請求項２に記載のストレージシステムの制御方法。
【請求項６】
複数のストレージ装置および他のスイッチ装置にネットワークで接続するスイッチ装置であって、
該複数のストレージ装置の記憶領域の一部あるいは全部を組み合わせた仮想記憶領域を管理し、
該仮想記憶領域の中でデータのコピー処理を行う通知を該他のスイッチ装置に送信し、
該仮想記憶領域の第一の記憶領域に格納されたデータを該仮想記憶領域の第二の記憶領域にコピーし、
該コピーの実行中に該他のスイッチ装置から該第一の記憶領域あるいは該第二の記憶領域にアクセスするリクエストを受信した場合、コピーの実行を停止する
ことを特徴とするスイッチ装置。
【請求項７】
該仮想記憶領域の中でデータのコピー処理を行う通知を該他のスイッチ装置から受信し、
該他のスイッチ装置が該コピーの実行中に該第一の記憶領域あるいは該第二の記憶領域にアクセスする場合、該アクセスのリクエストを該他のスイッチ装置に送信し、
該他のスイッチ装置がコピーの実行を停止した後に該第一の記憶領域あるいは該第二の記憶領域にアクセスする
ことを特徴とする請求項６に記載のスイッチ装置。
【請求項８】
ネットワークで接続された第一のスイッチ装置と第二のスイッチ装置と複数のストレージ装置とを有し、該第一のスイッチ装置と該第二のスイッチ装置はそれぞれ該複数のストレージ装置の記憶領域の一部あるいは全部を組み合わせた仮想記憶領域を管理するストレージシステムであって、
該第一のスイッチ装置は、該仮想記憶領域の中でデータのコピー処理を行う通知を該第二のスイッチ装置に送信し、該仮想記憶領域の第一の記憶領域に格納されたデータを該仮想記憶領域の第二の記憶領域にコピーし、該コピーの実行中に該第二のスイッチ装置から該第一の記憶領域あるいは該第二の記憶領域にアクセスするリクエストを受信した場合、コピーの実行を停止し、
該第二のスイッチ装置は該仮想記憶領域の中でデータのコピー処理を行う通知を該第一のスイッチ装置から受信し、該第一のスイッチ装置が該コピーの実行中に該第一の記憶領域あるいは該第二の記憶領域にアクセスする場合、該アクセスのリクエストを該第一のスイッチ装置に送信し、該第一のスイッチ装置がコピーの実行を停止した後に該第一の記憶領域あるいは該第二の記憶領域にアクセスする
ことを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークで接続された複数のスイッチ装置と複数のストレージ装置とを有するストレージシステムの制御方法に関する。
【背景技術】
【０００２】
複数のホスト装置と複数のストレージ装置とをスイッチ装置を介したネットワークによって接続し、ホスト装置とストレージ装置との間でデータの送受信を行うストレージシステムがある。ストレージシステムにおいて、スイッチ装置は耐障害性を高めるために冗長に接続される。
【０００３】
ストレージシステムのストレージ装置の記憶領域を有効に使用するための技術としてストレージ装置の仮想化技術がある。ストレージ装置の仮想化はスイッチ装置によって管理される場合がある。スイッチ装置がストレージ装置の仮想化を管理することにより、複数のストレージ装置を組み合わせること、およびホスト装置でのストレージ装置の管理を低減させることが可能になる。
【０００４】
スイッチ装置は、仮想記憶領域に格納されたある時点でのデータの状態を他の仮想記憶領域にコピーするスナップショット処理がある。スナップショット処理において、スイッチ装置は、実際のデータのコピー処理の完了を待つこと無く、コピーの完了を通知する。通知後、スイッチ装置は実際のコピー処理を実行する。
【０００５】
このため、一つのスイッチ装置がスナップショット処理中であっても、他のスイッチ装置はスナップショット処理の対象の記憶領域にアクセスすることができ、対象の記憶領域のデータの不整合が生じる場合がある。
【０００６】
従来技術として下記の文献がある。
【特許文献１】特開２００６−７２９８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、複数のストレージ装置を仮想化する複数のスイッチ装置を有するシステムで、各スイッチ装置によるデータの更新を誤りなく実行することを可能とする方法の提供を目的とする。
【課題を解決するための手段】
【０００８】
本制御方法は、ネットワークで接続された第一のスイッチ装置と第二のスイッチ装置と複数のストレージ装置とを有し、第一のスイッチ装置と第二のスイッチ装置はそれぞれ複数のストレージ装置の記憶領域を用いて構成される仮想記憶領域を備えたストレージシステムを対象とする。第一のスイッチ装置は、仮想記憶領域の中でデータのコピー処理を行う通知を第二のスイッチ装置に送信し、第一のスイッチ装置は、仮想記憶領域の第一の記憶領域に格納されたデータを仮想記憶領域の第二の記憶領域にコピーし、第一のスイッチ装置は、コピーの実行中に第二のスイッチ装置から第一の記憶領域あるいは第二の記憶領域にアクセスするリクエストを受信した場合、コピーの実行を停止し、第二のスイッチ装置は、第一のスイッチ装置がコピーの実行を停止した後に、第一の記憶領域あるいは第二の記憶領域にアクセスすることを特徴とする。
【発明の効果】
【０００９】
本発明は、第一のスイッチ装置は、仮想記憶領域の第一の記憶領域に格納されたデータを第二の記憶領域にコピー中に、第二のスイッチ装置から第一の記憶領域あるいは第二の記憶領域にアクセスするリクエストを受信すると、コピーの実行を停止する。その後、第二のスイッチ装置が第一の記憶領域あるいは第二の記憶領域にアクセスする。この結果、第一のスイッチ装置と第二のスイッチ装置との間でコピー処理を排他的に実行することが可能となり、各スイッチ装置はデータの更新を誤りなく実行することが可能になる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態について図面を用いて説明する。
【００１１】
図１は、一実施例でのストレージシステムである。本実施例のストレージシステムは、ホスト装置１００、仮想化スイッチ装置２００、仮想化スイッチ装置３００、ストレージ装置５０１、ストレージ装置５０２、ビットマップ情報格納部４００が接続される。ホスト装置１００と仮想化スイッチ装置２００および３００、仮想化スイッチ装置２００および３００とストレージ装置５０１および５０２の間は、例えば、ファイバチャネルによって接続する。
【００１２】
ホスト装置１００は、ネットワークを介して、図示しない他のコンピュータに処理、サービス等を提供する。
【００１３】
仮想化スイッチ装置２００および３００は、ホスト装置１００とストレージ装置５０１および５０２との間でデータの送受信を管理する。本実施例のシステムの仮想化スイッチ装置２００および３００は、ストレージ装置５０１および５０２の仮想化が可能であるものとする。仮想化スイッチ装置でストレージ装置を仮想化することにより、複数のストレージ装置を組み合わせた仮想記憶領域を管理することが可能となるため、ストレージ装置の記憶領域を有効に使用することができる。また、仮想化スイッチ装置でストレージ装置を仮想化することにより、ホスト装置１００は、仮想記憶領域にアクセスすれば良いため、ホスト装置１００によるストレージ装置５０１および５０２の管理が容易になる。仮想化スイッチ装置２００および３００は、複数のストレージ装置の記憶領域を組み合わせた仮想記憶領域情報、仮想記憶領域内で定義された仮想ボリューム情報、および仮想ボリュームとホスト装置との関連情報を管理する。仮想化スイッチ装置２００および３００は耐障害性を高めるためにホスト装置１００とストレージ装置５０１および５０２との間を冗長に接続する。冗長に接続するそれぞれの仮想化スイッチ装置２００および３００は、ホスト装置１００からのアクセスがいずれの仮想化スイッチ装置２００および３００に対してなされた場合でも同一のアクセス結果が得られるように仮想記憶領域情報、仮想ボリューム情報、および関連情報を記憶する。
仮想化スイッチ装置２００および３００は、ホスト装置１００とストレージ装置５０１およびストレージ装置５０２との間の経路が多重（冗長）になるように接続される）。仮想化スイッチ装置２００と仮想化スイッチ装置３００とは例えばローカルエリアネットワーク（ＬＡＮ）６０２によって接続される。仮想化スイッチ装置２００および３００を接続するＬＡＮ６０２を多重の通信路にすることで、仮想化スイッチ装置２００および３００の間の耐障害性を高める。
【００１４】
ストレージ装置５０１およびストレージ装置５０２は、ホスト装置１００から送信された書込データを仮想化スイッチ装置２００あるいは３００を経由して受信して格納する。また、ストレージ装置５０１および５０２は、ホスト装置１００から送信された読出し依頼を仮想化スイッチ装置２００あるいは３００を経由して受信すると、対応するデータを読み出し、仮想化スイッチ装置２００あるいは３００を経由してホスト装置１００に送信する。
【００１５】
仮想化スイッチ装置２００および仮想化スイッチ装置３００は、ストレージ装置５０１およびストレージ装置５０２のそれぞれのデータ記憶領域に対応する仮想的なデータ記憶領域を管理する。ホスト装置１００は仮想的なデータ記憶領域に対してアクセスする。仮想化スイッチ装置２００あるいは仮想化スイッチ装置３００は、ホスト装置１００からアクセスされた仮想的なデータ記憶領域に対応するストレージ装置５０１あるいはストレージ装置５０２のデータ記憶領域にアクセスする。
【００１６】
ここで、ストレージ装置の仮想化について説明する。ストレージの仮想化とは、複数の物理ストレージ装置を仮想的な一つのディスクスペースとすることである。仮想的なディスクスペースとすることにより、ホスト装置１００は、物理ストレージ装置５０１および５０２の物理的なデータ記憶領域に制限されずに、データ記憶領域の使用が可能となる。例えば、ストレージシステムの管理者は仮想的なディスクスペースの一部のデータ記憶領域を仮想ボリュームとして設定する。
【００１７】
仮想化スイッチ装置２００は、設定した仮想ボリュームをホスト装置１００に認識させる。仮想化スイッチ装置２００は、ホスト装置１００と仮想ボリュームとを関連付けた情報、および仮想ボリュームとストレージ装置５０１あるいはストレージ装置５０２のデータ記憶領域とを関連付けた情報を有する。仮想化スイッチ装置２００は、上記の情報に基づき、ホスト装置１００からの仮想ボリュームに対するアクセスに応じて、アクセスされた仮想ボリュームに対応するストレージ装置５０１および５０２のデータ記憶領域にアクセスする。
【００１８】
以上から、ホスト装置１００は、仮想化スイッチ装置２００のストレージ仮想化モジュール２１１によって、通常のストレージ装置にアクセスするのと同様に仮想ボリュームに対してアクセスすることが可能となる。
【００１９】
次に、仮想化スイッチ装置２００および仮想化スイッチ装置３００が管理する仮想的なディスクスペース、および仮想ボリュームについて説明する。２５０および３５０は、仮想化スイッチ装置２００および仮想化スイッチ装置３００が管理する仮想的なディスクスペースである。仮想的なディスクスペース２５０および３５０は、仮想化スイッチ装置２００および仮想化スイッチ装置３００で共通であるとする。仮想的なディスクスペース２５０および３５０は、ストレージ装置５０１のデータ記憶領域およびストレージ装置５０２のデータ記憶領域が対応付けられる。
【００２０】
本実施例のストレージ装置の仮想化は、仮想化スイッチ装置２００が仮想的なディスクスペース２５０を管理し、仮想化スイッチ装置３００が仮想的なディスクスペース３５０を管理する。仮想的なディスクスペース２５０および３５０には、仮想ボリュームがある。仮想的なディスクスペース２５０には、仮想ボリューム（ＶＶＯＬＳ）２５１および仮想ボリューム（ＶＶＯＬＤ）２５２が設定されており、仮想的なディスクスペース３５０には、仮想ボリューム（ＶＶＯＬＳ）３５１および仮想ボリューム（ＶＶＯＬＤ）３５２が設定されているものとする。仮想ボリューム（ＶＶＯＬＳ）２５１に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域は、仮想ボリューム（ＶＶＯＬＳ）３５１に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域に対応する。仮想ボリューム（ＶＶＯＬＤ）２５２に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域は、仮想ボリューム（ＶＶＯＬＤ）３５２に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域に対応する。
【００２１】
本実施例の仮想化スイッチ装置２００と仮想化スイッチ装置３００とは、ストレージシステム内で冗長に接続される。仮想化スイッチ装置２００あるいは仮想化スイッチ装置３００のいずれかが管理する仮想ボリュームにホスト装置１００がアクセスした場合であっても、ストレージ装置５０１およびストレージ装置５０２から取得するデータは同一であり、ストレージ装置５０１およびストレージ装置５０２にデータを書き込む先は同一である必要がある。本実施例では、仮想ボリューム（ＶＶＯＬＳ）２５１と仮想ボリューム（ＶＶＯＬＳ）３５１とが対応し、仮想ボリューム（ＶＶＯＬＤ）２５２と仮想ボリューム（ＶＶＯＬＤ）３５２とが対応するものとする。本実施例のスナップショット処理のコピー元の仮想ボリュームは、仮想ボリューム（ＶＶＯＬＳ）２５１であるとする。また、本実施例のスナップショット処理のコピー先の仮想ボリュームは、仮想ボリューム（ＶＶＯＬＤ）２５２であるとする。
【００２２】
ビットマップ情報格納部４００は、ビットマップ情報４１０を格納する。ビットマップ情報４１０は、スナップショット処理の進行の状況をマップ上に配置された各ビットに対応付けて管理するための情報である。スナップショット処理は、ストレージ装置に格納されているデータの、ある時点での状態を別の領域に格納(バックアップ)する処理である。各ビットは、仮想ボリュームを所定の大きさの記憶領域で区切った単位記憶領域に対応付けられる。図１のビットマップ情報４１０は、ビットマップを図で示すものである。ビットマップ情報４１０の各矩形はそれぞれのビットを示す。各ビットは、各ビットに対応する単位記憶領域のスナップショット処理が終了したか否かによって状態が変わる。例えば、矩形内に斜線があるビット４１１は、ビット４１１に対応する単位記憶領域のスナップショット処理が終了したことを示す。一方、矩形内に斜線がないビット４１２は、ビット４１２に対応する単位記憶領域のスナップショット処理が終了していないことを示す。同様に、値が０のビットはスナップショット処理が終了したことを示し、一方値が１のビットはスナップショット処理が終了していないことを示してもよい。
【００２３】
ビットマップ情報４１０は、仮想化スイッチ装置２００および仮想化スイッチ装置３００が実行する仮想ボリューム対応するストレージ装置５０１およびストレージ装置５０２のデータのスナップショット処理を実行する際に使用される。仮想化スイッチ装置２００および仮想化スイッチ装置３００はビットマップ情報４１０を共有する。
【００２４】
次に仮想化スイッチ装置２００および仮想化スイッチ装置３００について説明する。本実施例のストレージシステムの仮想化スイッチ装置２００および３００は、ホスト装置とストレージ装置との間の通信路が冗長な関係になるように接続されている。冗長とは、一方の仮想化スイッチ装置が故障した場合であっても、他方の仮想化スイッチ装置によって、ホスト装置とストレージ装置との間の通信路が確保できる状態であることをいう。仮想化スイッチ装置では、ストレージ装置を仮想化するため、ホスト装置は仮想ボリュームにアクセスする。したがって、仮想化スイッチ装置が管理する仮想ボリュームは、仮想化スイッチ装置間で対応する必要がある。図２は、本実施例の仮想化スイッチ装置２００の構成を示す図面である。なお、仮想化スイッチ装置３００も図２図示の構成を有し、図２中のかっこ内の符号は、仮想化スイッチ装置３００に対する符号である。
【００２５】
本実施例の仮想化スイッチ装置２００は、制御部２１０、メモリ２２０、ファイバチャネル接続端子２３０、仮想化スイッチ装置間接続端子２４０を有する。本実施例の仮想化スイッチ装置３００は、制御部３１０、メモリ３２０、ファイバチャネル接続端子３３０、仮想化スイッチ装置間接続端子３４０を有する。以下、仮想化スイッチ装置２００について、その構成を説明する。
【００２６】
制御部２１０は、例えば、中央演算ユニット（ＣＰＵ）やその他の演算ユニットであり、メモリ２２０に格納されたプログラムを実行する。
【００２７】
メモリ２２０は、データの読み書きが可能なメモリ（ＲＡＭ）やデータの読み出しのみ可能なメモリ（ＲＯＭ）などである。メモリ２２０は、制御部２１０が実行する制御プログラム２２１を記憶する。制御プログラム２２１は、例えば、ストレージ装置５０１および５０２の仮想化処理やデータのスナップショット処理を制御部２１０に実行させるためのプログラムである。制御部２１０は、制御プログラム２２１を実行することにより、ストレージ仮想化モジュール２１１およびスナップショット処理モジュール２１２として機能する。また、メモリ２２０は、可否情報２２２を有する。可否情報２２２は仮想化スイッチ装置２００がビットマップ情報４１０を更新することが可能であるか否かを示す情報である。
【００２８】
ファイバチャネル接続端子２３０は、ファイバチャネルによってホスト装置１００、ストレージ装置５０１、およびストレージ装置５０２に仮想化スイッチ装置２００を接続する端子である。また、仮想化スイッチ装置２００は、ファイバチャネル接続端子２３０からファイバチャネルを介して仮想化スイッチ装置３００に接続する。
【００２９】
仮想化スイッチ装置間接続端子２４０は、仮想化スイッチ装置２００と仮想化スイッチ装置３００との間を接続するための端子である。仮想化スイッチ装置２００と仮想化スイッチ装置３００との間は、例えば、ＬＡＮ６０２によって接続する。仮想化スイッチ装置間接続端子２４０は、耐障害性を高めるために仮想化スイッチ装置２００に複数設けられても良い。
【００３０】
ストレージ仮想化モジュール２１１は、仮想化スイッチ装置２００に接続されたストレージ装置５０１および５０２のデータ記憶領域の仮想化を実行する。ストレージ仮想化モジュール２１１は、複数のストレージ装置５０１、５０２のデータ記憶領域の一部、あるいは全部を組み合わせて仮想的なディスクスペースを生成し、管理する。例えば、ストレージシステムの管理者は仮想的なディスクスペースの一部のデータ記憶領域を仮想ボリュームとして設定する。ストレージ仮想化モジュール２１１は、仮想ボリュームをホスト装置１００に認識させる。
【００３１】
ストレージ仮想化モジュール２１１は、ホスト装置１００と仮想ボリュームとを関連付けた情報、および仮想ボリュームとストレージ装置５０１あるいはストレージ装置５０２のデータ記憶領域とを関連付けた情報を管理する。ストレージ仮想化モジュール２１１は、上記の情報に基づき、ホスト装置１００からの仮想ボリュームに対するアクセスに応じて、アクセスされた仮想ボリュームに対応するストレージ装置５０１および５０２のデータ記憶領域にアクセスする。
【００３２】
仮想化スイッチ装置２００のストレージ仮想化モジュール２１１は、ストレージ装置５０１およびストレージ装置５０２から得られる仮想的なディスクスペース２５０を管理する。また、ストレージ仮想化モジュール２１１は、仮想的なディスクスペース２５０内の仮想ボリューム（ＶＶＯＬＳ）２５１および仮想ボリューム（ＶＶＯＬＤ）２５２を管理する。仮想化スイッチ装置３００のストレージ仮想化モジュール３１１は、ストレージ装置５０１およびストレージ装置５０２から得られる仮想的なディスクスペース３５０を管理する。また、仮想化スイッチ装置３００のストレージ仮想化モジュール３１１は、仮想的なディスクスペース３５０内の仮想ボリューム（ＶＶＯＬＳ）３５１および仮想ボリューム（ＶＶＯＬＤ）３５２を管理する。仮想的なディスクスペース２５０に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域は、仮想的なディスクスペース３５０に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域と同じになる。
【００３３】
次に、制御部２１０のスナップショット処理モジュール２１２について説明する。
【００３４】
スナップショット処理は、定期的に実行されたり、ストレージシステムの管理者の指示によって実行されたりする。スナップショット処理モジュール２１２は、定期的にあるいはスナップショット処理の実行の開始命令をホスト装置１００あるいは図示しないストレージシステム１の管理サーバから取得すると、スナップショット処理を実行する。
本実施例のスナップショット処理は、特定の仮想ボリュームに対応するストレージ装置５０１およびストレージ装置５０２のある時点でのデータの状態を他の仮想ボリュームに対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域にコピーする処理を示す。スナップショット処理において、仮想化スイッチ装置２００あるいは３００は、仮想ボリューム（ＶＶＯＬＳ）２５１に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域から仮想ボリューム（ＶＶＯＬＤ）２５２に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域への実際のデータのコピーを実行する。仮想化スイッチ装置２００あるいは３００は、実際のデータのコピーの完了を待つこと無く、コピーの完了をホスト装置１００に通知する。コピー完了の通知後、仮想化スイッチ装置２００はスナップショット処理の対象となるデータのコピー処理を実行する。スナップショット処理モジュール２１２はスナップショット処理を実行する。スナップショット処理では、スナップショット処理モジュール２１２が第一のボリュームに格納された特定の時点のデータを第二のボリュームに格納する。
【００３５】
なお、スナップショット処理モジュール２１２は、スナップショット処理の実行の開始命令を取得すると、スナップショット処理の対象のデータ記憶領域のコピーが完了する前であっても、スナップショット処理の完了を返信する。このため、ホスト装置１００は、仮想化スイッチ装置２００あるいは３００がスナップショット処理中であっても、各仮想ボリュームに対してアクセスすることが可能になる。ただし、ホスト装置１００から仮想ボリューム（ＶＶＯＬＤ）２５２に対応するストレージ装置５０１およびストレージ装置５０２へのアクセスは、アクセスに対応するストレージ装置５０１およびストレージ装置５０２のデータに関するコピー処理終了している必要がある。
【００３６】
スナップショット処理モジュール２１２は、ビットマップ情報４１０に応じてスナップショット処理を実行する。スナップショット処理モジュール２１２は、仮想化スイッチ装置２００と仮想化スイッチ装置３００との間でビットマップ情報４１０の排他制御をする。スナップショット処理モジュール２１２は、スナップショット処理中にホスト装置１００からのアクセスがあると、アクセスの内容に応じた処理を実行する。
【００３７】
次に、本実施例でのスナップショット処理について説明する。本実施例のストレージシステムは、仮想化スイッチ装置２００と仮想化スイッチ装置３００とで一つのビットマップ情報４１０を共有する。仮想化スイッチ装置２００および仮想化スイッチ装置３００が同時にビットマップ情報４１０を更新すると、ビットマップ情報に矛盾が生じる場合がある。ビットマップ情報の矛盾は、例えば、ビットマップ情報４１０の各ビットを更新するのに要する時間と仮想ボリュームに対応するストレージ装置５０１およびストレージ装置５０２に格納されたデータをコピーするのに要する時間とが異なることが原因になる。そこで、本実施例では、ビットマップ情報４１０を更新する仮想化スイッチ装置を排他処理によって判別し、一方の仮想化スイッチ装置のみがビットマップ情報４１０を更新できることにする。
【００３８】
本実施例では、仮想化スイッチ装置２００が主としてスナップショット処理を実行する。スナップショット処理の対象のデータの送信元は仮想ボリューム（ＶＶＯＬＳ）２５１に対応するストレージ装置５０１およびストレージ装置５０２であり、スナップショット処理の対象のデータの送信先は仮想ボリューム（ＶＶＯＬＤ）２５２に対応するストレージ装置５０１およびストレージ装置５０２である。仮想ボリューム（ＶＶＯＬＤ）２５２に対応するストレージ装置５０１およびストレージ装置５０２は仮想ボリューム（ＶＶＯＬＳ）２５１に対応するストレージ装置５０１およびストレージ装置５０２のデータを格納し得る記憶領域を有する。また、本実施例のストレージシステムは、仮想化スイッチ装置２００を主に動作する仮想化スイッチ装置として機能させ、仮想化スイッチ装置３００を補助的に動作する仮想化スイッチ装置として機能させるシステムであるとする。例えば、通常時、ホスト装置１００は仮想化スイッチ装置２００を経由してストレージ装置５０１および５０２に対してアクセスする。ホスト装置１００は、スイッチ装置２００を経由するアクセスの応答時間が遅くなる場合、仮想化スイッチ装置３００を経由するアクセスも行う。
【００３９】
仮想化スイッチ装置３００の制御部３１０、メモリ３２０、ファイバチャネル接続端子３３０、および仮想化スイッチ装置間接続端子３４０は、仮想化スイッチ装置２００の制御部２１０、メモリ２２０、ファイバチャネル接続端子２３０、および仮想化スイッチ装置間接続端子２４０にそれぞれ対応するため、説明を省略する。また、ストレージ仮想化モジュール３１１、スナップショット処理モジュール３１２、および制御プログラム３２１は、ストレージ仮想化モジュール２１１、スナップショット処理モジュール２１２、および制御プログラム２２１にそれぞれ対応するため、説明を省略する。
【００４０】
図３は、仮想化スイッチ装置２００および仮想化スイッチ装置３００のスナップショット処理時の動作のシーケンス図である。図３では、仮想化スイッチ装置２００がスナップショットを主として実行し、スナップショット処理が開始してから仮想化スイッチ装置２００にはホストからのアクセスがなく、仮想化スイッチ３００にホストからのアクセスがあった場合の処理を記載する。
【００４１】
仮想化スイッチ装置２００の制御部２１０は、スナップショット処理を開始する（Ｓ０１）。なお、仮想化スイッチ装置２００のメモリ２２０の可否情報２２２は、ビットマップ情報４１０の更新が不可であることを示してあるものとする。仮想化スイッチ装置３００のメモリ３２０の可否情報３２２は、ビットマップ情報４１０の更新が不可であることを示してあるものとする。
仮想化スイッチ装置２００の制御部２１０は、スナップショット処理の開始の命令を、例えばホスト装置から受信すると、ビットマップ情報４１０を作成し、スナップショット処理の完了をホスト装置１００に通知する。制御部２１０は、スナップショット処理に対応するデータのコピー処理を実行する。制御部２１０は、例えば、仮想ボリューム（ＶＶＯＬＤ）２５２に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域を所定の大きさで区切った単位記憶領域を、ビットマップ情報４１０の各ビットに対応付ける制御部２１０は、ビットマップ情報４１０の各ビットを、初期値として単位記憶領域のコピーが完了していない状態を示す値にする。制御部２１０は、仮想ボリューム（ＶＶＯＬＳ）２５１に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域に格納されたデータを仮想ボリューム（ＶＶＯＬＤ）２５２に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域にコピーする。制御部２１０は、コピーが完了した単位記憶領域に対応するビットマップ情報４１０のビットを、単位記憶領域のコピーが完了したことを示す値に更新する。また、仮想化スイッチ装置２００は、スナップショット処理を開始した旨の情報を、ＬＡＮ６０２を介して、仮想化スイッチ装置３００に送信する。制御部２１０は、仮想ボリューム（ＶＶＯＬＳ）２５１に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域にから仮想ボリューム（ＶＶＯＬＤ）２５２に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域へのデータのコピーが全て完了するまでコピー処理を実行する。スナップショット処理を開始した旨の情報は、例えば、コピー元の仮想ボリューム情報、コピー先の仮想ボリューム情報、対応するビットマップ情報４１０の格納先の情報等を含む。ストレージシステムは、一つのスナップショット処理について一つのビットマップ情報４１０を有する。よって、ビットマップ情報４１０の格納先を特定する必要がある。仮想化スイッチ装置２００および仮想化スイッチ装置３００は、特定されたビットマップ情報４１０の格納先にアクセスして、スナップショット処理を排他的に実行することが可能になる。また、仮想化スイッチ装置２００および仮想化スイッチ装置３００は、複数の仮想ボリュームを管理する。よって、コピー元の仮想ボリューム情報とコピー先の仮想ボリューム情報とを特定する必要がある。仮想化スイッチ装置２００および仮想化スイッチ装置３００は、複数の仮想ボリュームの内、コピー元の仮想ボリューム情報とコピー先の仮想ボリューム情報とを特定してスナップショット処理を実行することが可能になる。
【００４２】
ここで、ホスト装置１００が仮想化スイッチ装置３００に対してアクセスしたとする。仮想化スイッチ装置３００の制御部３１０は、仮想化スイッチ装置２００の制御部２１０で実行されるスナップショット処理中に、ホスト装置１００が仮想化スイッチ装置３００で管理する仮想ボリュームに対するアクセス処理命令を受信する（Ｓ０２）。
【００４３】
仮想化スイッチ装置３００の制御部３１０は、データに対するホスト装置１００からのアクセスがビットマップ情報４１０の更新を必要とするか否かを判定する（Ｓ０３）。ビットマップ情報４１０の更新が必要になるアクセスは、（１）スナップショット処理中のコピー元の仮想ボリューム（ＶＶＯＬＳ）に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域であって、コピー処理を実施していない領域についてデータを書き込む処理（ライト処理）のアクセス、（２）スナップショット処理中のコピー先の仮想ボリューム（ＶＶＯＬＤ）に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域であって、コピー処理を実施していない領域についてデータを書き込む処理（ライト処理）のアクセス、および（３）スナップショット処理中のコピー先の仮想ボリューム（ＶＶＯＬＤ）に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域であって、コピー処理を実施していない領域についてデータを読み出す処理（リード処理）のアクセスである。
【００４４】
ホスト装置１００からのアクセスがビットマップ情報４１０の更新を必要としない場合（Ｓ０３：Ｎｏ）、仮想化スイッチ装置３００の制御部３１０は、アクセスに応じた処理を実行する（Ｓ０９）。一方、ホスト装置１００からのアクセスがビットマップ情報４１０の更新を必要とする場合（Ｓ０３：Ｙｅｓ）、仮想化スイッチ装置３００の制御部３１０は、仮想化スイッチ装置３００がビットマップ情報４１０を更新することが可能であるか否かを判別する（Ｓ０４）。制御部３１０は、仮想化スイッチ装置３００が可否情報３２２に基づき、仮想化スイッチ装置３００によるビットマップ情報４１０更新の可否を判別する。以下の説明では、ビットマップ情報４１０を変更することができる権利を使用権と定義する。使用権があるとは、その仮想化スイッチ装置によるビットマップ情報の更新が許可されていることを言い、仮想化スイッチ装置に格納されている可否情報がビットマップ情報４１０の更新が許可されている状態であることを示す。使用権がないとは、その仮想化スイッチ装置がビットマップ情報の更新ができないことを言い、仮想化スイッチ装置に格納された可否情報がビットマップ情報４１０の更新が許可されていない状態であることを示す。
【００４５】
仮想化スイッチ装置３００の制御部３１０は、ビットマップ情報４１０を更新することが可能である場合（Ｓ０４：Ｙｅｓ）、ホスト装置１００からのアクセスに対する処理を実行する（Ｓ０９）。Ｓ０５で仮想化スイッチ装置３００がビットマップ情報４１０を更新することが可能に分岐するのは、例えば、仮想化スイッチ装置３００でホスト装置１００からのアクセスを処理中に、更に仮想化スイッチ装置３００がホスト装置１００からアクセスを受信した場合である。
【００４６】
一方、仮想化スイッチ装置３００の制御部３１０は、可否情報３２２がビットマップ情報４１０の更新が可能であることを示す場合（Ｓ０４：Ｎｏ）、仮想化スイッチ装置２００に対して、ビットマップ情報４１０の更新を可能とする使用権情報の移動を依頼する（Ｓ０５）。使用権情報の移動とは、具体的には、仮想化スイッチ装置２００でのビットマップ情報４１０の更新を不可の状態にして、仮想化スイッチ装置３００でのビットマップ情報４１０の更新を可能の状態にすることである。
【００４７】
使用権を有する仮想化スイッチ装置２００の制御部２１０は、仮想化スイッチ装置３００から使用権の移動依頼を受信すると、スナップショット処理を停止する（Ｓ０６）。スナップショット処理は、例えば、ビットマップ情報４１０のビットに対応する単位記憶領域のコピーが完了するときに停止する。言い換えれば、任意の単位記憶領域のコピーが完了するまでは、仮想化スイッチ装置２００によるスナップショット処理は停止しない。仮想化スイッチ装置２００の制御部２１０は、仮想化スイッチ装置２００がビットマップ情報４１０を更新することが不可能である状態に、可否情報２２２を変更する（Ｓ０７）。制御部２１０は、仮想化スイッチ装置３００がビットマップ情報４１０を更新することが可能であることを示す情報を、仮想化スイッチ装置３００に送信する。仮想化スイッチ装置３００の制御部３１０は、仮想化スイッチ装置２００からビットマップ情報４１０を更新することが可能であることを示す情報を受信すると、仮想化スイッチ装置３００がビットマップ情報４１０を更新することが可能である状態に可否情報３２２を変更する（Ｓ０８）。仮想化スイッチ装置３００の制御部３１０は、ホスト装置１００からのアクセスに対する処理を実行する（Ｓ０９）。
【００４８】
仮想化スイッチ装置３００の制御部３１０は、ホスト装置１００からのアクセスに対する処理の実行が完了すると、ビットマップ情報４１０のビットを更新する（Ｓ１０）。ホスト装置１００からのアクセスの対象のデータ領域に対応するビットが更新の対象になる。仮想化スイッチ装置３００の制御部３１０は、仮想化スイッチ装置２００に対して使用権を返却する（Ｓ１１）。使用権の返却は、例えば、処理の完了の通知でよい。仮想化スイッチ装置３００の制御部３１０は、Ｓ０５で仮想化スイッチ装置３００から使用権の移動を依頼していた場合、使用権を仮想化スイッチ装置２００に返却する。
【００４９】
なお、ストレージシステムは、スナップショット処理を仮想化スイッチ装置３００が継続して実行することも可能である。仮想化スイッチ装置３００がスナップショット処理を継続して実行する場合、制御部３１０は、ビットマップ情報４１０を参照してコピー処理が完了していない領域からスナップショット処理を継続して実行する。
【００５０】
仮想化スイッチ装置３００の制御部３１０は、仮想化スイッチ装置３００がビットマップ情報４１０を更新することが可能ではない状態に変更する。制御部３１０は、仮想化スイッチ装置２００がビットマップ情報４１０を更新することが可能であることを示す情報を仮想化スイッチ装置２００に送信する。仮想化スイッチ装置２００の制御部２１０は、仮想化スイッチ装置２００がビットマップ情報４１０を更新することが可能であることを示す情報を受信すると、仮想化スイッチ装置２００がビットマップ情報４１０を更新することが可能である状態に変更する。制御部２１０は、ビットマップ情報４１０に基づき、スナップショット処理の続きの処理を実行する。仮想化スイッチ装置２００は、スナップショット処理が完了すると、スナップショット処理が完了した旨の情報を、ＬＡＮ６０２を介して、仮想化スイッチ装置３００に送信する。
【００５１】
以上の処理は、仮想化スイッチ装置が２台の場合について説明した。仮想化スイッチ装置が３台以上の場合、使用権を有する仮想化スイッチ装置に対して使用権の取得依頼をすればよい。
【００５２】
次に、制御部２１０および制御部３１０が実行する、ホスト装置１００からのアクセスに対する処理を説明する。スナップショット処理中でのホスト装置１００からのアクセスは、アクセス先がコピー元の仮想ボリューム（ＶＶＯＬＳ）かコピー先の仮想ボリューム（ＶＶＯＬＤ）か、スナップショット処理が完了した領域に対するアクセスか否か、ライト処理かリード処理かによって分類できる。
【００５３】
図４および図５は、制御部２１０あるいは制御部３１０が実行するスナップショット処理時の、ホスト装置１００からのアクセスに対する処理のフローチャートである。図４および図５は、仮想化スイッチ装置２００がスナップショット処理を主として実行し、仮想化スイッチ装置２００および仮想化スイッチ装置３００にホストからのアクセスがあった場合の処理のフローチャートである。
【００５４】
制御部２１０あるいは制御部３１０は、図４および図５のフローチャートに基づきホスト装置１００からのアクセスがビットマップ情報４１０の更新を必要とするか否かを分類することが可能である。ホスト装置１００からのアクセスは、対象のボリュームを識別する情報、Ｗｒｉｔｅ命令かＲｅａｄ命令かを判別する情報、アクセスの対象の領域のアドレス情報、およびＷｒｉｔｅ処理の対象のデータ情報を含む。Ｗｒｉｔｅ命令は、記憶領域にデータを格納する命令であり、Ｒｅａｄ命令は記憶領域に格納されたデータを読み出す命令である。
【００５５】
以下のフローチャートの処理は、ストレージシステムの仮想化スイッチ装置２００がホスト装置１００からのアクセスを受信したときに実行されるものとする。ストレージシステムの仮想化スイッチ装置３００ホスト装置１００からのアクセスを受信したときに実行する処理も同様であるため、説明を省略する。
【００５６】
制御部２１０はホスト装置１００からのアクセス命令を受信する（Ｓ２１）。制御部２１０はアクセス命令の内容を解析する。
【００５７】
制御部２１０は、アクセス命令が有するアクセス対象のボリュームを識別する情報から、アクセスの対象が仮想ボリューム（ＶＶＯＬＳ）２５１か仮想ボリューム（ＶＶＯＬＤ）２５２かを判別する（Ｓ２２）。仮想ボリューム（ＶＶＯＬＤ）２５２に対するアクセスの場合（Ｓ２２：Ｎｏ）、制御部２１０は図５のＳ３１以降の処理を実行する。一方、仮想ボリューム（ＶＶＯＬＳ）２５１に対するアクセスの場合（Ｓ２２：Ｙｅｓ）、制御部２１０はＳ２３以降の処理を実行する。
【００５８】
制御部２１０は、アクセス命令が有するＷｒｉｔｅ命令かＲｅａｄ命令かを判別する情報から、アクセス命令がＷｒｉｔｅ命令かＲｅａｄ命令かを判別する（Ｓ２３）。アクセス命令がＲｅａｄ命令である場合（Ｓ２３：Ｎｏ）、制御部２１０は仮想ボリューム（ＶＶＯＬＳ）２５１に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域に格納されたアクセスの対象のデータを読み出す（Ｓ２８）。仮想ボリューム（ＶＶＯＬＳ）２５１に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域には最新のデータが格納された状態であり、Ｒｅａｄ命令の場合、ビットマップ情報４１０の更新は不要である。一方、アクセス命令がＷｒｉｔｅ命令である場合（Ｓ２３：Ｙｅｓ）、制御部２１０は、アクセスの対象のデータが格納された領域についてスナップショット処理が完了したか否かを判別する（Ｓ２４）。スナップショット処理が完了した領域をコピー済領域とする。制御部２１０は、アクセスの対象がコピー済領域か否かをビットマップ情報４１０の各ビットの値と単位記憶領域とから判別する。
【００５９】
制御部２１０は、アクセスの対象がコピー済領域ではない場合（Ｓ２４：Ｎｏ）、仮想ボリューム（ＶＶＯＬＳ）２５１に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域でアクセスの対象の領域を含む単位記憶領域を、仮想ボリューム（ＶＶＯＬＤ）２５２に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域にコピーする（Ｓ２５）。制御部２１０は、コピーしたデータに対応するデータ記憶領域に対応する単位記憶領域に対応するビットマップ情報４１０のビットの値を更新する。（Ｓ２６）。
【００６０】
制御部２１０は、Ｓ２６でビットマップ情報４１０を更新した後、あるいはアクセスの対象がコピー済領域である場合（Ｓ２４：Ｙｅｓ）、書き込み処理を実行する（Ｓ２７）。書き込み処理は、アクセス命令が有する対象の領域のアドレス情報に対応する仮想ボリュームに対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域の位置に、アクセス命令が有するＷｒｉｔｅ処理の対象のデータ情報を書き込む。例えば、制御部２１０は、仮想化モジュールのアドレス情報に対応するストレージ装置、およびストレージ装置内の記憶領域を特定して、Ｗｒｉｔｅ処理の対象のデータ情報を書き込む。
【００６１】
図４のＳ２２で、制御部２１０がアクセスを仮想ボリューム（ＶＶＯＬＤ）２５２に対するものであると判別した場合（Ｓ２２：Ｎｏ）、制御部２１０は図５のＳ３１以降の処理を実行する。
【００６２】
制御部２１０は、アクセス命令のＷｒｉｔｅ命令かＲｅａｄ命令かを判別する情報から、アクセス命令がＷｒｉｔｅ命令かＲｅａｄ命令かを判別する（Ｓ３１）。
【００６３】
アクセス命令がＷｒｉｔｅ命令である場合（Ｓ３１：Ｙｅｓ）、制御部２１０は、アクセスの対象の領域のアドレス情報から、アクセスの対象の領域がコピー済領域か否かを判別する（Ｓ３２）。制御部２１０は、アクセス対象領域がコピー済領域か否かをビットマップ情報４１０によって判別する。
【００６４】
アクセスの対象がコピー済領域ではない場合（Ｓ３２：Ｎｏ）、制御部２１０は仮想ボリューム（ＶＶＯＬＳ）２５１に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域のアクセスの対象の領域を含む単位記憶領域を、仮想ボリューム（ＶＶＯＬＤ）２５２に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域にコピーする（Ｓ３３）。制御部２１０は、コピーしたデータのデータ記憶領域に対応するビットマップ情報４１０のビットを更新する（Ｓ３４）。制御部２１０は、Ｓ３４でビットマップ情報４１０を更新した後、あるいはアクセスの対象がコピー済領域である場合（Ｓ３２：Ｙｅｓ）、書き込み処理を実行する（Ｓ３５）。
【００６５】
アクセス命令がＲｅａｄ命令である場合（Ｓ３１：Ｎｏ）、制御部２１０は、アクセスの対象の領域がコピー済領域か否かを判別する（Ｓ３６）。制御部２１０は、アクセス対象領域がコピー済領域か否かをビットマップ情報４１０によって判別する。
【００６６】
アクセスの対象の領域がコピー済領域ではない場合（Ｓ３６：Ｎｏ）、制御部２１０は仮想ボリューム（ＶＶＯＬＳ）２５１に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域へのアクセスの対象の領域を含む単位記憶領域を仮想ボリューム（ＶＶＯＬＤ）２５２にコピーする（Ｓ３７）。制御部２１０は、コピーしたデータのデータ記憶領域に対応するビットマップ情報４１０のビットを更新する（Ｓ３８）。制御部２１０は、Ｓ３８でビットマップ情報４１０を更新した後、あるいはアクセスの対象がコピー済領域である場合（Ｓ３６：Ｙｅｓ）、仮想ボリューム（ＶＶＯＬＤ）２５２に対応するストレージ装置５０１およびストレージ装置５０２のデータ記憶領域からアクセスの対象のデータを読み出す（Ｓ３９）。
【００６７】
なお、図４および図５の処理の判別の順序は適宜変更可能である。
【００６８】
次に、主に動作する仮想化スイッチ装置として機能する仮想化スイッチ装置２００とビットマップ情報格納部４００との間の経路（パス）に異常があった場合の処理について説明する。図６は、経路６１１で異常が発生したストレージシステムである。図６のストレージシステムは、仮想化スイッチ装置２００を主に動作する仮想化スイッチ装置として機能させ、仮想化スイッチ装置３００を補助的に動作する仮想化スイッチ装置として機能させるシステムであるとする。仮想化スイッチ装置２００および仮想化スイッチ装置３００は、主として動作する仮想化スイッチ装置であるのか、補助的に動作する仮想化スイッチ装置であるのかを判別する情報を有する。
【００６９】
図７は、経路６１１で異常が発生した場合の処理のシーケンス図である。仮想化スイッチ装置２００の制御部２１０は、スナップショット処理を開始する（Ｓ４１）。しかし、仮想化スイッチ装置２００とビットマップ情報格納部４００とをつなぐ経路６１１に異常が発生しているため、制御部２１０は、ビットマップ情報４１０のビット情報の書き込みあるいは読み出しができないことを検出する（Ｓ４２）。そのため、制御部２１０はスナップショット処理を停止する（Ｓ４３）。なお、ビットマップ情報４１０を更新できない状態の仮想化スイッチ装置２００は、ホスト装置１００によるアクセスに対する応答をしない。ホスト装置１００は仮想化スイッチ装置２００の無応答によって仮想化スイッチ装置２００のエラーを検知する。仮想化スイッチ装置２００のエラーを検出したホスト装置１００は、他の仮想化スイッチ装置、例えば、仮想化スイッチ装置３００を経由して以降のアクセスを行う。制御部２１０は、Ｓ４３に続いて、仮想化スイッチ装置２００がビットマップ情報４１０を更新できない状態に変更する（Ｓ４４）。制御部２１０は、ビットマップ情報４１０を更新できる旨の情報（使用権情報）および主として動作する仮想化スイッチ装置となる情報を、仮想化スイッチ装置３００に送信する（Ｓ４５）。
【００７０】
仮想化スイッチ装置３００の制御部３１０は、ビットマップ情報４１０を更新できる旨の情報および主として動作する仮想化スイッチ装置となる情報を仮想化スイッチ装置２００から受信すると、仮想化スイッチ装置３００を主として動作する仮想化スイッチ装置とし、またビットマップ情報４１０を更新できる状態に変更する（Ｓ４６）。制御部３１０は、スナップショット処理をビットマップ情報４１０に基づき実行する（Ｓ４７）。
【００７１】
次に、仮想化スイッチ装置２００に異常が発生した場合の動作を説明する。図８は、仮想化スイッチ装置２００で異常が発生したストレージシステムである。図８のストレージシステムは、仮想化スイッチ装置２００を主に動作する仮想化スイッチ装置として機能させ、仮想化スイッチ装置３００を補助的に動作する仮想化スイッチ装置として機能させるシステムであるとする。各仮想化スイッチ装置は、主として動作する仮想化スイッチ装置であるのか、補助的に動作する仮想化スイッチ装置であるのかを判別する情報を有する。
【００７２】
仮想化スイッチ装置２００および仮想化スイッチ装置３００は、例えば、定期的にパトロール処理を実行する。パトロール処理は、ストレージシステムの冗長に接続された仮想化スイッチ装置同士で動作の異常を検出する処理である。例えば、一方の仮想化スイッチ装置が、他方の仮想化スイッチ装置が動作しているか否かを確認するパトロール情報を他方の仮想化スイッチ装置に送信する。パトロール情報を受信した仮想化スイッチ装置は、パトロール情報に応答する。パトロール情報を送信した仮想化スイッチ装置は、パトロール情報の応答を受信することにより、他方の仮想化スイッチ装置の動作を確認する。仮想化スイッチ装置２００および仮想化スイッチ装置３００は、例えば、ＬＡＮあるいはファイバチャネルを経由してパトロールの情報の送受信をする。
【００７３】
図９は、仮想化スイッチ装置２００に異常が発生した場合の処理のシーケンス図である。仮想化スイッチ装置２００の制御部２１０は、スナップショット処理を開始する（Ｓ５１）。
【００７４】
仮想化スイッチ装置３００の制御部３１０は、仮想化スイッチ装置２００にパトロール信号を送信する（Ｓ５２）。仮想化スイッチ装置２００からの応答を受信した場合（Ｓ５３：Ｙｅｓ）、制御部３１０はパトロール処理を終了する。一方、仮想化スイッチ装置２００からの応答がない場合（Ｓ５３：Ｎｏ）、仮想化スイッチ装置３００の制御部３１０は仮想化スイッチ装置２００にエラーが発生したと判定する。制御部３１０は、仮想化スイッチ装置２００の関与無く、ビットマップ情報４１０の更新を可能とする状態に仮想化スイッチ装置３００を変更する（Ｓ５４）。制御部３１０は、仮想化スイッチ装置３００をストレージシステム内で主として動作する仮想化スイッチ装置に変更する。
【００７５】
なお、異常が検出されたとしても、仮想化スイッチ装置２００に異常が発生したのか、仮想化スイッチ装置２００と仮想化スイッチ装置３００との間の通信経路に異常が発生したのかが不明な場合がある。しかし、仮想化スイッチ装置２００と仮想化スイッチ装置３００との間の通信経路は耐障害性を向上させるため、複数の通信経路によって接続する。したがって、仮想化スイッチ装置２００と仮想化スイッチ装置３００との間の全ての通信経路に異常が発生する可能性は低い。そこで、パトロール処理で応答がない仮想化スイッチ装置は故障したと判断することができる。
【００７６】
ここで、仮想化スイッチ装置２００と仮想化スイッチ装置３００との間の通信経路（パス）に異常があったことを検知した場合の動作を説明する。例えば、図８のＬＡＮ６０２の通信経路（パス）に異常があった場合、仮想化スイッチ装置のビットマップ情報４１０の更新の可否を示す情報を仮想化スイッチ装置間で送受信することができない。よって、スナップショット処理中で、通信経路に異常が発生した以降に補助的に動作する仮想化スイッチ装置３００に対するホスト装置１００からのアクセスがあった場合、制御部３１０はホスト装置１００に対してエラーの応答をする。通信経路の異常の場合、他方の仮想化スイッチ装置は動作しているため、ビットマップ情報４１０の更新で矛盾が生じる可能性があるためである。
【００７７】
以上の説明により、複数の仮想化スイッチ装置が多重に接続されたストレージシステム内であっても、仮想ボリュームのスナップショット処理を実行することが可能となる。
【００７８】
本実施例の別の例として、ストレージシステムは、複数の仮想化スイッチ装置を管理する管理装置を有し、管理装置がスナップショット処理の実行を行う仮想化スイッチ装置を選択する方法もある。この場合、ストレージシステムは、管理装置を別に有する必要になる。
【００７９】
本実施例の適用前のストレージシステムで、ホスト装置とストレージ装置との間の経路が冗長になるように仮想化スイッチ装置を接続する場合、以下の問題が発生する。スナップショット処理を一方の仮想化スイッチ装置のみが実行する場合、他方の仮想化スイッチ装置は、ビットマップ情報を更新する必要があるアクセスについての処理をスナップショット処理中に実行できない。また、各仮想化スイッチ装置が独立したビットマップ情報をそれぞれ有する場合、双方のスナップショット処理の終了を知ることができなくなる。また、スナップショット処理の状況を互いのビットマップ情報を同期させる処理を実行することは、処理が複雑になるとともに処理時間が増加する。
【００８０】
一方、仮想化スイッチ装置をカスケード接続することにより、双方で管理する仮想ボリュームをリンクすることも可能である。ホスト装置が、カスケードの下段の仮想化スイッチ装置にアクセスする場合、カスケードの上段の仮想化スイッチ装置を経由する必要がある。したがって、カスケード接続では、下段の仮想化スイッチ装置の仮想ボリュームへのアクセスを上段の仮想化スイッチ装置で管理することが可能になるため、スナップショット処理時の問題は生じない。しかし、ホスト装置とストレージ装置との間の全てのデータの転送が上段の仮想化スイッチ装置を経由するため、上段の仮想化スイッチ装置は過負荷の状態となり、応答時間が増大する。さらに、カスケード接続のために仮想化スイッチ装置のファイバチャネル接続端子を使用する必要があり、他のホスト装置およびストレージ装置に接続するための端子の数が減少する。
【図面の簡単な説明】
【００８１】
【図１】一実施例でのストレージシステムである。
【図２】一実施例の仮想化スイッチ装置２００である。
【図３】仮想化スイッチ装置２００および仮想化スイッチ装置３００のスナップショット処理時の動作のシーケンス図である。
【図４】制御部２１０あるいは制御部３１０が実行するスナップショット処理時のアクセスに対する処理のフローチャートである。
【図５】制御部２１０あるいは制御部３１０が実行するスナップショット処理時のアクセスに対する処理のフローチャートである。
【図６】経路６１１で異常が発生したストレージシステムである。
【図７】経路６１１で異常が発生した場合の処理のシーケンス図である。
【図８】仮想化スイッチ装置２００で異常が発生したストレージシステムである。
【図９】仮想化スイッチ装置２００に異常が発生した場合のシーケンス図である。
【符号の説明】
【００８２】
１００  ホスト装置
２００  仮想化スイッチ装置
２１０  仮想化スイッチ装置２００の制御部
２２０  仮想化スイッチ装置２００のメモリ
２３０  仮想化スイッチ装置２００のファイバチャネル接続端子
２４０  仮想化スイッチ装置２００の仮想化スイッチ装置間接続端子
２２１  仮想化スイッチ装置２００の制御プログラム
３００  仮想化スイッチ装置
３１０  仮想化スイッチ装置３００の制御部
３２０  仮想化スイッチ装置３００のメモリ
３３０  仮想化スイッチ装置３００のファイバチャネル接続端子
３４０  仮想化スイッチ装置３００の仮想化スイッチ装置間接続端子
３２１  仮想化スイッチ装置３００の制御プログラム
４００  ビットマップ情報格納部
５０１  ストレージ装置
５０２  ストレージ装置
【図１】
2009205614.tif 000003
【図２】
2009205614.tif 000004
【図３】
2009205614.tif 000005
【図４】
2009205614.tif 000006
【図５】
2009205614.tif 000007
【図６】
2009205614.tif 000008
【図７】
2009205614.tif 000009
【図８】
2009205614.tif 000010
【図９】
2009205614.tif 000011