(57)【要約】【課題】ストレージ装置間でのデータのコピー処理に関する試験において，精度良く，ストレージ間でのデータの一致性を検証することが可能となる技術を提供する。【解決手段】ホスト計算機１０の試験部１００は，ホスト計算機１０に接続された第１のストレージ装置から第２のストレージ装置へのデータのコピー処理に関する試験を行う。試験部１００のバッファ情報取得部１２２は，第１のストレージ装置が有する送信バッファの使用量を取得し，第１のストレージ装置が有する送信バッファの容量と使用量とから，該送信バッファの未使用量を算出する。ライト処理部１２３は，第１のストレージ装置に対して未使用量を超えるサイズのデータの書き込みを行う。キャンセル処理部１２４は，そのデータの書き込みをキャンセルする。【選択図】図３
2014137718.tif 000002
【特許請求の範囲】
【請求項１】
第１のストレージ装置から第２のストレージ装置へのデータのコピー処理に関する試験を行う試験方法であって，
ホストのコンピュータが，
前記第１のストレージ装置が有する送信バッファの使用量を取得し，
前記第１のストレージ装置が有する送信バッファの容量と前記使用量とから，該送信バッファの未使用量を算出し，
前記第１のストレージ装置に対して前記未使用量を超えるサイズのデータの書き込みを行い，
前記データの書き込みをキャンセルする処理を実行する
ことを特徴とする試験方法。
【請求項２】
第１のストレージ装置から第２のストレージ装置へのデータのコピー処理に関する試験を行う試験方法であって，
ホストのコンピュータが，
前記第１のストレージ装置が有する送信バッファに対して最後にデータが格納されてから自動的に送信バッファの切り替えが行われるまでの時間間隔を取得し，
前記第１のストレージ装置に対して第１のデータの書き込みを行い，
前記第１のデータの書き込みが終了してから前記時間間隔の経過後に，前記第１のストレージ装置に対して第２のデータの書き込みを行い，
前記第２のデータの書き込みをキャンセルする処理を実行する
ことを特徴とする試験方法。
【請求項３】
第１のストレージ装置から第２のストレージ装置へのデータのコピー処理に関する試験を行う試験装置であって，
前記第１のストレージ装置が有する送信バッファの使用量を取得し，前記第１のストレージ装置が有する送信バッファの容量と前記使用量とから，該送信バッファの未使用量を算出するバッファ情報取得部と，
前記第１のストレージ装置に対して前記未使用量を超えるサイズのデータの書き込みを行うライト処理部と，
前記データの書き込みをキャンセルするキャンセル処理部とを備える
ことを特徴とする試験装置。
【請求項４】
第１のストレージ装置から第２のストレージ装置へのデータのコピー処理に関する試験を行う試験装置であって，
前記第１のストレージ装置が有する送信バッファに対して最後にデータが格納されてから自動的に送信バッファの切り替えが行われるまでの時間間隔を取得するバッファ情報取得部と，
前記第１のストレージ装置に対して第１のデータの書き込みを行い，前記第１のデータの書き込みが終了してから前記時間間隔の経過後に，前記第１のストレージ装置に対して第２のデータの書き込みを行うライト処理部と，
前記第２のデータの書き込みをキャンセルするキャンセル処理部とを備える
ことを特徴とする試験装置。
【請求項５】
第１のストレージ装置から第２のストレージ装置へのデータのコピー処理に関する試験をホストのコンピュータに実行させるためのプログラムであって，
前記ホストのコンピュータに，
前記第１のストレージ装置が有する送信バッファの使用量を取得し，
前記第１のストレージ装置が有する送信バッファの容量と前記使用量とから，該送信バッファの未使用量を算出し，
前記第１のストレージ装置に対して前記未使用量を超えるサイズのデータの書き込みを行い，
前記データの書き込みをキャンセルする
処理を実行させるための試験プログラム。
【請求項６】
第１のストレージ装置から第２のストレージ装置へのデータのコピー処理に関する試験をホストのコンピュータに実行させるためのプログラムであって，
ホストのコンピュータに，
前記第１のストレージ装置が有する送信バッファに対して最後にデータが格納されてから自動的に送信バッファの切り替えが行われるまでの時間間隔を取得し，
前記第１のストレージ装置に対して第１のデータの書き込みを行い，
前記第１のデータの書き込みが終了してから前記時間間隔の経過後に，前記第１のストレージ装置に対して第２のデータの書き込みを行い，
前記第２のデータの書き込みをキャンセルする
処理を実行させるための試験プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ストレージ装置の試験を行う試験方法，試験装置および試験プログラムに関するものである。
【背景技術】
【０００２】
ストレージ装置のレプリケーションでは，例えば，運用系のストレージ装置に書き込まれるデータを，遠隔地にある待機系のストレージ装置に転送してデータのコピーを作成することで，災害発生などによるデータの喪失を防止する。ここでは，データを送る側のストレージ装置をプライマリ装置と呼び，データを受ける側のストレージ装置をセカンダリ装置と呼ぶ。
【０００３】
このようなレプリケーションを行うシステムにおけるストレージ装置の試験として，プライマリ装置へのデータの書き込みにより，ストレージ装置間でのデータのコピー処理を発生させ，双方のストレージ装置間でデータの一致性が保障されているかなどを検証する試験が行われている。この試験では，例えば，プライマリ装置に対するデータのライト処理や，ライト処理に対するキャンセル指示の処理などを長時間繰り返して実行し，プライマリ装置とセカンダリ装置との間のデータの一致性が保たれているか等を確認する処理が行われる。
【０００４】
なお，ストレージ装置間のリモートコピーに使用するバッファを予約して確保する技術が知られている。また，論理ディスクのグループごとに複数の格納バッファを備えたディスクアレイ装置におけるリモートコピー制御の技術が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１２２２３５号公報
【特許文献２】特開２００３−１６７６８４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上記のレプリケーションを行うシステムにおいて，一般に，プライマリ装置は，複数の送信バッファを有し，使用する送信バッファを切り替えしながら，セカンダリ装置へのデータ転送を行う。使用する送信バッファが切り替わるタイミングは，擾乱が起きやすいタイミングである。上記の試験において，精度良く一致性の検証を行うためには，擾乱が起きやすいバッファ切り替えのタイミングでライト処理のキャンセル指示が行われた場合でも，双方のストレージ装置間のデータの一致性が保証されているかを検証できることが望ましい。
【０００７】
一側面では，本発明は，ストレージ装置間でのデータのコピー処理に関する試験において，精度良く，ストレージ間でのデータの一致性を検証することが可能となる技術を提供することを目的とする。
【課題を解決するための手段】
【０００８】
１態様では，第１のストレージ装置から第２のストレージ装置へのデータのコピー処理に関する試験を行う試験方法は，ホストのコンピュータが，第１のストレージ装置が有する送信バッファの使用量を取得し，第１のストレージ装置が有する送信バッファの容量と使用量とから該送信バッファの未使用量を算出し，第１のストレージ装置に対して未使用量を超えるサイズのデータの書き込みを行い，該データの書き込みをキャンセルする処理を実行する。
【発明の効果】
【０００９】
１態様では，ストレージ装置間でのデータのコピー処理に関する試験において，精度良く，ストレージ装置間でのデータの一致性を検証することが可能となる。
【図面の簡単な説明】
【００１０】
【図１】本実施の形態による試験システムの構成例を示す図である。
【図２】ストレージ装置間でのデータのコピー処理に関する試験の一例を説明する図である。
【図３】本実施の形態による試験部の構成例を示す図である。
【図４】本実施の形態による試験部を備えるホスト計算機を実現するコンピュータのハードウェア構成例を示す図である。
【図５】本実施例１による試験処理の例を説明する図である。
【図６】本実施例１によるバッファ切り替えタイミングを狙ってキャンセル命令を発行する試験の処理フローチャートである。
【図７】本実施例２による試験処理の例を説明する図である。
【図８】本実施例２によるバッファ切り替えタイミングを狙ってキャンセル命令を発行する試験の処理フローチャートである。
【発明を実施するための形態】
【００１１】
以下，本実施の形態について，図を用いて説明する。
【００１２】
図１は，本実施の形態による試験システムの構成例を示す図である。
【００１３】
図１に示す試験システムは，ストレージ装置のレプリケーション動作の試験を行うシステムの一例を示す。図１に示す試験システムは，ホスト計算機１０，プライマリ装置２０，セカンダリ装置３０を備える。
【００１４】
プライマリ装置２０とセカンダリ装置３０は，ストレージ装置である。図１に示す試験システムにおいて，プライマリ装置２０は，実際のシステム運用時における運用系のストレージ装置を想定したものであり，セカンダリ装置３０は，実際のシステム運用時における待機系のストレージ装置を想定したものである。ストレージ装置間でのデータのコピー処理において，プライマリ装置２０は，コピーするデータを送信する側のストレージ装置であり，セカンダリ装置３０は，コピーするデータを受信する側のストレージ装置である。
【００１５】
ホスト計算機１０は，ストレージ装置にとってホストとなるコンピュータである。ホスト計算機１０によって，ストレージ装置に対するデータの書き込みや読み込みなどの処理が行われる。図１に示す試験システムにおいて，ホスト計算機１０は，プライマリ装置２０からセカンダリ装置３０へのデータのコピー処理に関する試験の実行，検証を行うコンピュータとなる。
【００１６】
図１に示す試験システムにおいて，ホスト計算機１０とプライマリ装置２０，ホスト計算機１０とセカンダリ装置３０は，それぞれインタフェースケーブル５０，６０で接続されている。災害発生によるデータ喪失の防止を目的として一方のストレージ装置を遠隔地に置くシステムでは，プライマリ装置２０とセカンダリ装置３０とが，同じホスト計算機１０にインタフェースケーブル５０，６０で接続されることは想定されない。図１に示す試験システムでは，プライマリ装置２０からセカンダリ装置３０へのデータのコピー処理を行う試験の検証をホスト計算機１０で行うために，双方のストレージ装置が同じホスト計算機１０にインタフェースケーブル５０，６０で接続される構成となっている。
【００１７】
図１に示す試験システムにおいて，プライマリ装置２０とセカンダリ装置３０とは，遠距離の接続を想定したインターネットなどのネットワークで接続されている。なお，本実施の形態における試験システムは，必ずしも遠隔地を想定したものである必要はなく，例えば隣接して置かれるストレージ装置を想定して，プライマリ装置２０とセカンダリ装置３０とがインタフェースケーブルで接続される構成であってもよい。
【００１８】
プライマリ装置２０は，複数のボリューム２１（ａ，ｂ，ｃ，ｄ，... ）と，複数の送信バッファ２２（ａ，ｂ，... ）とを備える。ボリューム２１は，プライマリ装置２０における記憶媒体の管理単位である。送信バッファ２２は，プライマリ装置２０からセカンダリ装置３０へのデータ転送において，セカンダリ装置３０に送信するデータを一時保存する記憶部である。
【００１９】
セカンダリ装置３０は，複数のボリューム３１（ｗ，ｘ，ｙ，ｚ，... ）と，複数の受信バッファ３２（ａ，ｂ，... ）とを備える。ボリューム３１は，セカンダリ装置３０における記憶媒体の管理単位である。送信バッファ３２は，プライマリ装置２０からセカンダリ装置３０へのデータ転送において，プライマリ装置２０から受信したデータを一時保存する記憶部である。
【００２０】
図１に示す試験システムでは，ホスト計算機１０によりプライマリ装置２０へのデータのライト処理が行われると，プライマリ装置２０からセカンダリ装置３０へのデータのコピー処理が速やかに行われる。
【００２１】
例えば，ホスト計算機１０からプライマリ装置２０の各ボリューム２１にデータがライトされると，プライマリ装置２０は，当該データを送信バッファ２２ａに格納する。プライマリ装置２０は，送信バッファ２２ａがいっぱいになる場合に，または送信バッファ２２ａに最後にデータが格納されてから所定時間経過した場合に，データの格納先を送信バッファ２２ｂに切り替える。その後，プライマリ装置２０は，送信バッファ２２ａのデータを，ネットワーク４０経由でセカンダリ装置３０に転送する。
【００２２】
セカンダリ装置３０は，プライマリ装置２０からネットワーク４０経由で転送されたデータを，受信バッファ３２ａに格納する。セカンダリ装置３０は，プライマリ装置２０の送信バッファ２２ａに格納されているデータがすべて受信バッファ３２ａに転送されると，データの転送先を受信バッファ３２ｂに切り替える。セカンダリ装置３０は，受信バッファ３２ａに格納されたデータを，目的のボリューム３１に展開する。
【００２３】
このような図１に示す試験システムにおいて，ホスト計算機１０に，プライマリ装置２０に対するデータのライト処理や，ライト処理に対するキャンセル指示の処理などを繰り返し実行させて，プライマリ装置２０とセカンダリ装置３０との間のデータの一致性が保たれているか等を確認する試験が行われる。
【００２４】
図２は，ストレージ装置間でのデータのコピー処理に関する試験の一例を説明する図である。
【００２５】
図２に示す試験は，図１に示す試験システムで行う試験の一例を示す。図２に示す試験では，ホスト計算機１０が，データのライト処理と，ライト処理のキャンセル命令をランダムなタイミングで発行する処理とを繰り返し実行する。なお，図１に示す試験システムにおいて，セカンダリ装置３０のボリューム３１ｗ，ｘ，ｙ，ｚは，それぞれプライマリ装置２０のボリューム２１ａ，ｂ，ｃ，ｄに対応する。
【００２６】
ホスト計算機１０は，試験の前処理として，二重化ペアとなるプライマリ装置２０とセカンダリ装置３０のデバイスを設定して，コピーセッションをスタートする。
【００２７】
ホスト計算機１０は，ライト（Write ）コマンドの発行により，プライマリ装置２０のボリューム２１ａに対する任意長のデータのライト処理を行う（手順＃０１）。ここでは，ライト処理が正常に実行され，同時に送信バッファ２２ａにもデータが書き込まれる。ホスト計算機１０は，同様に，ボリューム２１ｂ，ｃ，ｄに対する任意長のデータのライト処理を行い（手順＃０２，＃０３，＃０４），各ライト処理と同時に送信バッファ２２ａへのデータの書き込みが行われる。
【００２８】
ホスト計算機１０は，ライトコマンドの発行により，プライマリ装置２０のボリューム２１ｂに対する任意長のデータのライト処理を行う（手順＃０５）。このライト処理は，手順＃０２と同じボリューム２１ｂに対するライト処理であるが，手順＃０２とは異なる領域へのライト処理であるものとする。ホスト計算機１０は，手順＃０５のライトコマンドの発行直後に，Halt I/O命令を発行して，手順＃０５のライト処理をキャンセルする（手順＃０６）。Halt I/O命令は，ライト処理をキャンセルするキャンセル命令の一種である。ホスト計算機１０は，手順＃０５のライト処理をリトライする（手順＃０７）。このライト処理は正常に実行され，同時に送信バッファ２２ａにもデータが書き込まれる。
【００２９】
手順＃０１〜＃０７の処理で，送信バッファ２２ａがいっぱいになるものとする。このとき，バッファ切り替えにより，データの格納先が送信バッファ２２ａから送信バッファ２２ｂに自動的に切り替えられる。送信バッファ２２ａのデータは，ネットワーク４０を介してセカンダリ装置３０の受信バッファ３２ａに転送される。セカンダリ装置３０では，受信バッファ３２ａの各データが，それぞれ対応するボリューム３１ｗ，ｘ，ｙ，ｚに展開される。
【００３０】
ホスト計算機１０は，リード（Read）コマンドの発行により，セカンダリ装置３０のボリューム３１ｗからのリード処理を行う（手順＃０８）。ホスト計算機１０は，手順＃０８のリードデータが，手順＃０１のライトデータと等しいことを確認する。ホスト計算機１０は，同様に，ボリューム３１ｘ，ｙ，ｚからのリード処理を行い（手順＃０９，＃１０，＃１１），リードデータがそれぞれ手順＃０２，＃０３，＃０４のライトデータと等しいことを確認する。
【００３１】
また，ホスト計算機１０は，リードコマンドの発行により，セカンダリ装置３０のボリューム３１ｘからのリード処理を行う（手順＃１２）。このリード処理は，手順＃０９と同じボリューム３１ｘからのリード処理であるが，手順＃０９とは異なる領域からのリード処理である。ホスト計算機１０は，手順＃１２のリードデータが，手順＃０７のライトデータと等しいことを確認する。なお，手順＃０６のHalt I/O命令によるキャンセル処理によって，手順＃０５のライト処理が中止されたか否かは不明である。
【００３２】
ホスト計算機１０は，ライトコマンドの発行により，プライマリ装置２０のボリューム２１ｂに対する任意長のデータのライト処理を行う（手順＃１３）。ここでは，ライト処理が正常に実行され，同時に送信バッファ２２ｂにもデータが書き込まれる。ホスト計算機１０は，同様に，ボリューム２１ｄに対する任意長のデータのライト処理を行い（手順＃１４），そのライト処理と同時に送信バッファ２２ｂへのデータの書き込みが行われる。
【００３３】
ホスト計算機１０は，ライトコマンドの発行により，プライマリ装置２０のボリューム２１ａに対する任意長のデータのライト処理を行う（手順＃１５）。ホスト計算機１０は，手順＃１５のライトコマンドの発行直後に，Clear I/O 命令を発行して，手順＃１５のライト処理をキャンセルする（手順＃１６）。Clear I/O 命令は，ライト処理をキャンセルするキャンセル命令の一種である。ホスト計算機１０は，手順＃１５のライト処理をリトライする（手順＃１７）。このライト処理は正常に実行され，同時に送信バッファ２２ｂにもデータが書き込まれる。
【００３４】
その後バッファ切り替えが行われ，送信バッファ２２ｂのデータは，ネットワーク４０を介してセカンダリ装置３０の受信バッファ３２ｂに転送される。セカンダリ装置３０では，受信バッファ３２ｂの各データが，それぞれ対応するボリューム３１ｘ，ｚ，ｗに展開される。
【００３５】
ホスト計算機１０は，リードコマンドの発行により，セカンダリ装置３０のボリューム３１ｘからのリード処理を行う（手順＃１８）。ホスト計算機１０は，手順＃１８のリードデータが，手順＃１３のライトデータと等しいことを確認する。ホスト計算機１０は，同様に，ボリューム３１ｚからのリード処理を行い（手順＃１９），リードデータが手順＃１４のライトデータと等しいことを確認する。
【００３６】
また，ホスト計算機１０は，リードコマンドの発行により，セカンダリ装置３０のボリューム３１ｗからのリード処理を行う（手順＃２０）。ホスト計算機１０は，手順＃２０のリードデータが，手順＃１７のライトデータと等しいことを確認する。なお，手順＃１６のClear I/O 命令によるキャンセル処理によって，手順＃１５のライト処理が中止されたか否かは不明である。
【００３７】
ホスト計算機１０は，このようなライト処理やキャンセル処理を繰り返し実行する。試験を終了する際には，ホスト計算機１０は，試験の後処理として，プライマリ装置２０とセカンダリ装置３０との二重化ペアの対応関係を解消して，コピーセッションを終了する。
【００３８】
図２に示す試験の例では，ライトコマンド発行後，キャンセル命令を発行するタイミングがランダムに決定されるため，送信バッファ２２の切り替えのタイミングでキャンセル命令が発行されるか否かは不明である。そのため，図２に示す試験の例において，擾乱が起こりやすいバッファ切り替えのタイミングで，ライト処理をキャンセルする処理を実行させる確率を上げるためには，試験走行を長時間行う必要がある。
【００３９】
以下では，送信バッファ２２の切り替えのタイミングを精度良く狙って，ライト処理をキャンセルするキャンセル命令を印加させることにより，試験精度の向上と試験時間の短縮を図った本実施の形態による試験の技術について，説明する。
【００４０】
図３は，本実施の形態による試験部の構成例を示す図である。
【００４１】
ホスト計算機１０は，ストレージ装置間でのデータのコピー処理に関する試験を行う試験部１００を備える。図１に示す本実施の形態による試験システムの例では，試験部１００は，第１のストレージ装置であるプライマリ装置２０から第２のストレージ装置であるセカンダリ装置３０へのデータのコピー処理に関する試験を行う。本実施の形態による試験部１００は，送信バッファ２２の切り替えタイミングを狙ってライト処理をキャンセルする試験を実行することができる。
【００４２】
試験部１００は，操作処理部１１１，コンフィグレーション処理部１１２，割り込み制御処理部１１３，出力処理部１１４，テストスケジューラ１１５，コピー制御部１２１，バッファ情報取得部１２２，ライト処理部１２３，キャンセル処理部１２４，リード処理部１２５を備える。これらの機能部のうち，操作処理部１１１，コンフィグレーション処理部１１２，割り込み制御処理部１１３，出力処理部１１４，テストスケジューラ１１５は，ユーザインタフェースやホスト計算機１０のシステムとの連携を制御するモニタ／制御部１１０に属する。また，コピー制御部１２１，バッファ情報取得部１２２，ライト処理部１２３，キャンセル処理部１２４，リード処理部１２５は，テストスケジューラ１１５により設定されたテストスケジュールに従って実際に試験処理を実行するテスト処理部１２０に属する。
【００４３】
操作処理部１１１は，オペレータによる入力装置からの試験操作を処理する。操作処理部１１１は，オペレータからの指示に基づいて各処理コンポーネントの起動や終了の確認などを行う。
【００４４】
コンフィグレーション処理部１１２は，ホスト計算機１０に接続されている全デバイスの自動検索処理を行い，検索結果をオペレータへ通知する。図１に示す試験システムでは，ホスト計算機１０に接続されるデバイスとして，試験対象のプライマリ装置２０とセカンダリ装置３０のみが記載されているが，実際には，他のディスク装置や，プリンタなどの様々なデバイスがホスト計算機１０に接続されている。オペレータは，全デバイスの中から，テスト対象とするデバイスと実行させる試験機能との選択を行う。
【００４５】
割り込み制御処理部１１３は，ホスト計算機１０内で発生するＩ／Ｏ（Input/Output）割り込み，マシンチェック割り込み，タイマ割り込み，プログラム割り込み，スーパーバイザコール割り込みなどの割り込みを制御する。
【００４６】
出力処理部１１４は，各コンポーネントからのメッセージやテスト結果などの情報を整理し，表示装置や外部の記憶媒体への出力処理を行う。
【００４７】
テストスケジューラ１１５は，テスト処理部１２０の各機能部と連携し，オペレータにより指定された試験対象デバイスに対して，コピー処理向けのライト処理やリード処理，キャンセル処理などの実行をスケジュールする。テストスケジューラ１１５は，オペレータから指示された時間だけ，試験処理を繰り返す。
【００４８】
コピー制御部１２１は，オペレータにより指定された試験対象デバイスに対して，コピーセッションの設定や解除を行う。本実施の形態の例では，プライマリ装置２０とセカンダリ装置３０とに対して，コピーセッションの設定や解除が行われる。また，コピー制御部１２１は，各試験対象デバイスのコピー状態の確認を行う。
【００４９】
バッファ情報取得部１２２は，プライマリ装置２０が有する送信バッファ２２の情報を取得する。例えば，バッファ情報取得部１２２は，プライマリ装置２０が有する送信バッファ２２の容量や個数などの構成や，データの格納先となっている送信バッファ２２のその時点での使用量，送信バッファ２２の切り替え時間間隔などの情報を取得する。送信バッファ２２の切り替え時間間隔は，データの格納先となっている送信バッファ２２に対して最後にデータが格納されてから自動的に送信バッファ２２の切り替えが行われるまでの時間間隔である。また，バッファ情報取得部１２２は，送信バッファ２２の容量と使用量とから，その送信バッファ２２の未使用量，すなわち空き容量を算出する。
【００５０】
ライト処理部１２３は，プライマリ装置２０に対してライト命令を発行し，プライマリ装置２０に対するデータのライト処理，すなわちデータの書き込みを行う。例えば，送信バッファ２２の切り替えのタイミングを狙ってライト処理をキャンセルする試験を行う場合において，ライト処理部１２３は，プライマリ装置２０に対して，算出された送信バッファ２２の未使用量を超えるサイズのデータの書き込みを行う。また，例えば，送信バッファ２２の切り替えのタイミングを狙ってライト処理をキャンセルする試験を行う場合において，ライト処理部１２３は，プライマリ装置２０に対して，第１のデータの書き込みを終了してから切り替え時間間隔の経過後に，第２のデータの書き込みを行う。
【００５１】
キャンセル処理部１２４は，プライマリ装置２０に対してキャンセル命令を発行し，実行中のライト処理をキャンセルする処理を行う。例えば，送信バッファ２２の切り替えのタイミングを狙ってライト処理をキャンセルする試験を行う場合において，キャンセル処理部１２４は，送信バッファ２２の未使用量を超えるサイズのデータの書き込みをキャンセルする処理を行う。また，例えば，送信バッファ２２の切り替えのタイミングを狙ってライト処理をキャンセルする試験を行う場合において，キャンセル処理部１２４は，第１のデータの書き込みを終了してから切り替え時間間隔の経過後に行われる第２のデータの書き込みをキャンセルする処理を行う。
【００５２】
リード処理部１２５は，プライマリ装置２０やセカンダリ装置３０にリード命令を発行し，プライマリ装置２０やセカンダリ装置３０からのデータのリード処理，すなわちデータの読み取りを行う。また，リード処理部１２５は，コピー処理の終了が確認された際に，リードデータ同士の比較や，リードデータとライトデータとの比較により，コピー処理の正常性を確認する。
【００５３】
図４は，本実施の形態による試験部を備えるホスト計算機を実現するコンピュータのハードウェア構成例を示す図である。
【００５４】
図３に示す試験部１００を備えるホスト計算機１０を実現するコンピュータ１は，例えば，ＣＰＵ（Central Processing Unit ）２，主記憶となるメモリ３，記憶装置４，通信装置５，媒体読取・書込装置６，入力装置７，出力装置８等を備える。記憶装置４は，例えばＨＤＤ（Hard Disk Drive ）等の外部記憶装置や，補助記憶装置などである。媒体読取・書込装置６は，例えばＣＤ−Ｒ（Compact Disc Recordable ）ドライブやＤＶＤ−Ｒ（Digital Versatile Disc Recordable ）ドライブなどである。入力装置７は，例えばキーボード・マウス等の入力機器などである。出力装置８は，例えばディスプレイ等の表示装置などである。
【００５５】
図３に示す試験部１００および試験部１００が備える各機能部は，コンピュータ１が備えるＣＰＵ２，メモリ３等のハードウェアと，ソフトウェアプログラムとによって実現することが可能である。コンピュータ１が実行可能なプログラムは，記憶装置４に記憶され，その実行時にメモリ３に読み出され，ＣＰＵ２により実行される。
【００５６】
コンピュータ１は，可搬型記録媒体から直接プログラムを読み取り，そのプログラムに従った処理を実行することもできる。また，コンピュータ１は，サーバコンピュータからプログラムが転送されるごとに，逐次，受け取ったプログラムに従った処理を実行することもできる。さらに，このプログラムは，コンピュータ１で読み取り可能な記録媒体に記録しておくことができる。
【００５７】
以下では，より具体的な実施例を用いて，本実施の形態の試験部１００による，送信バッファ２２の切り替えのタイミングを狙ってライト処理をキャンセルする命令を発行する試験を行う処理の例を説明する。
【００５８】
〔実施例１〕
本実施例１は，データの格納先の送信バッファ２２の未使用量を求め，得られた未使用量を超えるサイズのデータのライト処理を行うことで送信バッファ２２の切り替えを発生させ，そのタイミングに合わせてキャンセル命令を発行する試験を行う例である。
【００５９】
図５は，本実施例１による試験処理の例を説明する図である。
【００６０】
ホスト計算機１０において，試験部１００のライト処理部１２３は，ライトコマンドの発行により，プライマリ装置２０のボリューム２１ａに対する任意長のデータのライト処理を行う（手順Ａ０１）。ここでは，ライト処理が正常に実行され，同時に送信バッファ２２ａにもデータが書き込まれる。ライト処理部１２３は，同様に，ボリューム２１ｂに対する任意長のデータのライト処理を行い（手順Ａ０２），そのライト処理と同時に送信バッファ２２ａへのデータの書き込みが行われる。
【００６１】
ここで，バッファ情報取得部１２２が，プライマリ装置２０に対してGet Buffer Infコマンドを発行し，送信バッファ２２の容量を示す内部分割単位Ｓと，その時点での送信バッファ２２ａのデータ格納量を示す使用量Ｕとを取得する（手順Ａ０３）。Get Buffer Infコマンドは，バッファの情報を取得するコマンドの一例である。
【００６２】
バッファ情報取得部１２２は，内部分割単位Ｓと使用量Ｕとから，例えば次の式によって，送信バッファ２２ａの空き容量を示す未使用量Ｒを算出する。
【００６３】
未使用量Ｒ＝内部分割単位Ｓ−使用量Ｕ
算出される未使用量Ｒは，バッファ切り替えの境界に到達するまでに必要なデータのサイズを示す。
【００６４】
ライト処理部１２３は，ライトコマンドの発行により，プライマリ装置２０のボリューム２１ｃに対する，算出された未使用量Ｒを超えるサイズ（Ｒ＋α）のデータのライト処理を行う（手順Ａ０４）。プライマリ装置２０では，サイズ（Ｒ＋α）のデータが送信バッファ２２ａに入りきらないと判断され，送信バッファ２２ａから送信バッファ２２ｂへのバッファ切り替えが行われる。バッファ切り替えの時間は，例えば数ｍｓである。
【００６５】
キャンセル処理部１２４は，手順Ａ０４のライトコマンドの発行直後に，Reset Channel Path命令を発行して，手順Ａ０４のライト処理をキャンセルする（手順Ａ０５）。Reset Channel Path命令は，ライト処理をキャンセルするキャンセル命令の一種である。手順Ａ０５で発行されるキャンセル命令は，手順Ａ０４のライト処理の開始時にバッファ切り替えが行われるタイミングで発行される可能性が高い。
【００６６】
送信バッファ２２ａから送信バッファ２２ｂへのバッファ切り替え後，送信バッファ２２ａのデータは，ネットワーク４０を介してセカンダリ装置３０の受信バッファ３２ａに転送される。セカンダリ装置３０では，受信バッファ３２ａの各データが，それぞれ対応するボリューム３１ｗ，ｘにコピーされる。
【００６７】
コピー制御部１２１は，プライマリ装置２０に対してコピー状態確認コマンド（Query ）を発行し，プライマリ装置２０とセカンダリ装置３０とが等価状態になるのを待つ（手順Ａ０６）。
【００６８】
その後，リード処理部１２５は，リードコマンドの発行により，プライマリ装置２０のボリューム２１ｃからのリード処理を行う（手順Ａ０７）。
【００６９】
リード処理部１２５は，リードコマンドの発行により，セカンダリ装置３０のボリューム３１ｗからのリード処理を行う（手順Ａ０８）。リード処理部１２５は，手順Ａ０８のリードデータが，手順Ａ０１のライトデータと等しいことを確認する。リード処理部１２５は，同様に，ボリューム３１ｘからのリード処理を行い（手順Ａ０９），リードデータが手順Ａ０２のライトデータと等しいことを確認する。
【００７０】
リード処理部１２５は，リードコマンドの発行により，セカンダリ装置３０のボリューム３１ｙからのリード処理を行う（手順Ａ１０）。リード処理部１２５は，手順Ａ１０のリードデータが，手順Ａ０４のライトデータと一致せず，かつ手順Ａ０７のリードデータと等しい場合，手順Ａ０４のライト処理がキャンセルされたと判断する。なお，リード処理部１２５は，手順Ａ１０のリードデータと，手順Ａ０４のライトデータとが等しい場合，手順Ａ０４のライト処理がキャンセルされていないと判断する。
【００７１】
図６は，本実施例１によるバッファ切り替えタイミングを狙ってキャンセル命令を発行する試験の処理フローチャートである。
【００７２】
ホスト計算機１０において，試験部１００のバッファ情報取得部１２２は，送信バッファ２２の内部分割単位Ｓと，現時点でのデータの格納先である送信バッファ２２の使用量Ｕとを取得する（ステップＳ１０）。バッファ情報取得部１２２は，内部分割単位Ｓと使用量Ｕとから，データの格納先である送信バッファ２２の未使用量Ｒを算出する（ステップＳ１１）。
【００７３】
ライト処理部１２３は，プライマリ装置２０に対する，算出された未使用量Ｒを超えるサイズ（Ｒ＋α）のデータのライト処理を実行する（ステップＳ１２）。キャンセル処理部１２４は，ステップＳ１２のライト処理の開始直後に，該ライト処理をキャンセルするキャンセル命令を発行する（ステップＳ１３）。
【００７４】
コピー制御部１２１は，プライマリ装置２０からセカンダリ装置３０へのコピー処理が終了したかを判定する（ステップＳ１４）。例えばプライマリ装置２０とセカンダリ装置３０との等価状態の確認により，コピー処理の終了が判断される。
【００７５】
コピー処理が終了した場合（ステップＳ１４のＹＥＳ），リード処理部１２５は，プライマリ装置２０の該当ボリューム２１と，セカンダリ装置３０の該当ボリューム３１とからのリード処理を実行する（ステップＳ１５）。リード処理部１２５は，セカンダリ装置３０からのリードデータとステップＳ１２のライトデータとの比較，およびセカンダリ装置３０からのリードデータとプライマリ装置２０からのリードデータとの比較を行う（ステップＳ１６）。セカンダリ装置３０からのリードデータとステップＳ１２のライトデータとが不一致であり，かつセカンダリ装置３０からのリードデータとプライマリ装置２０からのリードデータとが等しい場合，ステップＳ１２のライト処理がキャンセルされたと判断される。
【００７６】
本実施例１に示すように，データの格納先の送信バッファ２２の未使用量Ｒを超えるサイズのデータのライト処理を開始したタイミングでキャンセル命令を発行することにより，バッファ切り替えタイミングを狙ってキャンセル命令を発行する試験を行うことが可能となる。
【００７７】
〔実施例２〕
本実施例２は，第１のデータのライト処理の終了後，他のライト処理を行わずに切り替え時間間隔を経過させることで，送信バッファ２２の切り替えを発生させ，そのタイミングに合わせて第２のデータのライト処理を実行し，キャンセル命令を発行する試験を行う例である。
【００７８】
図７は，本実施例２による試験処理の例を説明する図である。
【００７９】
ホスト計算機１０において，試験部１００のバッファ情報取得部１２２は，プライマリ装置２０に対してGet Buffer Infコマンドを発行し，送信バッファ２２の切り替え時間間隔Ｔを取得する（手順Ｂ０１）。
【００８０】
ライト処理部１２３は，ライトコマンドの発行により，プライマリ装置２０のボリューム２１ａに対する，任意長である第１のデータのライト処理を行う（手順Ｂ０２）。ここでは，ライト処理が正常に実行され，同時に送信バッファ２２ａにもデータが書き込まれる。
【００８１】
その後，ライト処理部１２３は，切り替え時間間隔Ｔが経過するまで，ライト処理を行わない。切り替え時間間隔Ｔの経過後，送信バッファ２２ａから送信バッファ２２ｂへのバッファ切り替えが行われる。その切り替え時間間隔Ｔの経過直後のタイミングで，ライト処理部１２３は，ライトコマンドの発行により，プライマリ装置２０のボリューム２１ｂに対する，任意長である第２のデータのライト処理を行う（手順Ｂ０３）。
【００８２】
キャンセル処理部１２４は，手順Ｂ０３のライトコマンドの発行直後に，Clear I/O 命令を発行して，手順Ｂ０３のライト処理をキャンセルする（手順Ｂ０４）。手順Ｂ０４で発行されるキャンセル命令は，切り替え時間間隔Ｔの経過直後のバッファ切り替えが行われるタイミングで発行される可能性が高い。
【００８３】
送信バッファ２２ａから送信バッファ２２ｂへのバッファ切り替え後，送信バッファ２２ａのデータは，ネットワーク４０を介してセカンダリ装置３０の受信バッファ３２ａに転送される。セカンダリ装置３０では，受信バッファ３２ａのデータが，対応するボリューム３１ｗにコピーされる。
【００８４】
コピー制御部１２１は，プライマリ装置２０に対してコピー状態確認コマンド（Query ）を発行し，プライマリ装置２０とセカンダリ装置３０とが等価状態になるのを待つ（手順Ｂ０５）。
【００８５】
その後，リード処理部１２５は，リードコマンドの発行により，プライマリ装置２０のボリューム２１ｂからのリード処理を行う（手順Ｂ０６）。
【００８６】
リード処理部１２５は，リードコマンドの発行により，セカンダリ装置３０のボリューム３１ｗからのリード処理を行う（手順Ｂ０７）。リード処理部１２５は，手順Ｂ０７のリードデータが，手順Ｂ０２のライトデータと等しいことを確認する。
【００８７】
リード処理部１２５は，リードコマンドの発行により，セカンダリ装置３０のボリューム３１ｘからのリード処理を行う（手順Ｂ０８）。リード処理部１２５は，手順Ｂ０８のリードデータが，手順Ｂ０３のライトデータと一致せず，かつ手順Ｂ０６のリードデータと等しい場合，手順Ｂ０３のライト処理がキャンセルされたと判断する。なお，リード処理部１２５は，手順Ｂ０８のリードデータと，手順Ｂ０３のライトデータとが等しい場合，手順Ｂ０３のライト処理がキャンセルされていないと判断する。
【００８８】
図８は，本実施例２によるバッファ切り替えタイミングを狙ってキャンセル命令を発行する試験の処理フローチャートである。
【００８９】
ホスト計算機１０において，試験部１００のバッファ情報取得部１２２は，送信バッファ２２の切り替え時間間隔Ｔを取得する（ステップＳ２０）。ライト処理部１２３は，プライマリ装置２０に対する，任意長である第１のデータのライト処理を実行する（ステップＳ２１）。
【００９０】
ライト処理部１２３は，第１のデータのライト処理が終了してから，切り替え時間間隔Ｔが経過したかを判定する（ステップＳ２２）。切り替え時間間隔Ｔの経過直後（ステップＳ２２のＹＥＳ），ライト処理部１２３は，プライマリ装置２０に対する，任意長である第２のデータのライト処理を実行する（ステップＳ２３）。キャンセル処理部１２４は，ステップＳ２３のライト処理の開始直後に，該ライト処理をキャンセルするキャンセル命令を発行する（ステップＳ２４）。
【００９１】
コピー制御部１２１は，プライマリ装置２０からセカンダリ装置３０へのコピー処理が終了したかを判定する（ステップＳ２５）。
【００９２】
コピー処理が終了した場合（ステップＳ２５のＹＥＳ），リード処理部１２５は，プライマリ装置２０の該当ボリューム２１と，セカンダリ装置３０の該当ボリューム３１とからのリード処理を実行する（ステップＳ２６）。リード処理部１２５は，セカンダリ装置３０からのリードデータとステップＳ２３のライトデータとの比較，およびセカンダリ装置３０からのリードデータとプライマリ装置２０からのリードデータとの比較を行う（ステップＳ２７）。セカンダリ装置３０からのリードデータとステップＳ２３のライトデータとが不一致であり，かつセカンダリ装置３０からのリードデータとプライマリ装置２０からのリードデータとが等しい場合，ステップＳ２３のライト処理がキャンセルされたと判断される。
【００９３】
本実施例２に示すように，第１のデータのライト処理が終了してから切り替え時間間隔Ｔの経過後に第２のデータのライト処理を開始したタイミングでキャンセル命令を発行することにより，バッファ切り替えタイミングを狙ってキャンセル命令を発行する試験を行うことが可能となる。
【００９４】
以上説明した本実施の形態の試験部１００による試験処理によって，擾乱が起きやすいバッファ切り替えタイミングを狙って，ライト処理をキャンセルするキャンセル命令を発行する試験を行うことが可能となる。これにより，ストレージ装置間でデータのコピー処理を行わせてストレージ間でのデータの一致性を検証する試験の精度を向上させることが可能となり，またその試験時間を短縮することが可能となる。
【００９５】
以上，本実施の形態について説明したが，本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【符号の説明】
【００９６】
１０  ホスト計算機
１００  試験部
１１０  モニタ／制御部
１１１  操作処理部
１１２  コンフィグレーション処理部
１１３  割り込み制御処理部
１１４  出力処理部
１１５  テストスケジューラ
１２０  テスト処理部
１２１  コピー制御部
１２２  バッファ情報取得部
１２３  ライト処理部
１２４  キャンセル処理部
１２５  リード処理部
２０  プライマリ装置
２１  ボリューム
２２  送信バッファ
３０  セカンダリ装置
３１  ボリューム
３２  受信バッファ
４０  ネットワーク
５０，６０  インタフェースケーブル
【図１】
2014137718.tif 000003
【図２】
2014137718.tif 000004
【図３】
2014137718.tif 000005
【図４】
2014137718.tif 000006
【図５】
2014137718.tif 000007
【図６】
2014137718.tif 000008
【図７】
2014137718.tif 000009
【図８】
2014137718.tif 000010