図1は、本発明の第1の実施形態における情報処理システムのシステム構成を示すブロック図である。本実施形態の情報処理システムは、ホストコンピュータ(ホスト)101とディスクサブシステム109を含んで構成される。ディスクサブシステム109は、スモール・コンピュータ・システム・インタフェース(SCSI)やファイバ・チャネル(Fibre Channel)などのインタフェースバス103を介してホスト101と接続される。ホスト101とディスクサブシステム109との間は、SCSIプロトコルやFibreプロトコルなどによって、情報の授受が行われる。
ディスクサブシステム109は、ホストインタフェース112、制御プロセッサ105、制御メモリ106、ボリュームアクセス部107およびボリューム108を有する。ホストインタフェース105は、ホスト101とのインタフェースである。制御プロセッサ105は、ホストインタフェース112により受信されたホスト101からの要求にしたがって、ディスクサブシステム109を制御する。制御メモリ106は、制御プロセッサ105がディスクサブシステム109を制御するために必要な制御情報を格納するメモリである。本発明に関係する情報として、ペア情報110および差分情報111が制御メモリ106に保持される。ボリュームアクセス部107は、ボリューム108に対してデータのリード/ライトを行う機能を有する。ボリューム108は、データを格納する磁気ディスク媒体を備えたディスクユニットなどから構成され、おのおのを識別するための識別子が割り当てられている。
制御メモリ106は、1、又は複数のペア情報110を保有する。図2は、ペア情報110の一例を示すデータ構造図である。
ペア情報110は、使用中フラグ200、正ボリューム番号201、副ボリューム番号202、差分情報番号203、ペア状態204、エクステント情報205を有して構成される。
使用中フラグ200は、当該ペア情報110が使用されているかどうかを示すフラグで、“使用中”または“未使用”の値をとる。使用中フラグ200が“使用中”のとき、当該ペア情報110は、使用中であることが示される。使用中フラグ200が“未使用”のとき、当該ペア情報110は、未使用であることが示される。
正ボリューム番号201、副ボリューム番号202は、ボリューム108を識別する識別子である。以下では、正ボリューム番号201により識別されるボリュームを正ボリューム、副ボリューム番号202により特定されるボリュームを副ボリュームと呼ぶ。差分情報番号203は、差分情報111を識別する識別子である。正ボリュームと副ボリュームの組をここではペアと呼ぶ。ペアには、“ペア形成中”、“ペア形成完了”、“ペア分割”、“データ復旧中”および“ペアなし”という状態がある。ペア状態204は、ペアについてのこれらの状態を示す。
エクステント情報205は、開始アドレス207、終了アドレス208から構成される。開始アドレス207は、ボリューム108内の連続する領域の始端のアドレスを示す。終了アドレス208は、ボリューム108内の連続する領域の終端のアドレスを示す。例えば、ボリューム108が固定長ブロックから構成される固定長ブロック形式のボリュームである場合、開始アドレス207および終了アドレス208にはブロック番号が格納される。また、ボリューム108が可変長レコード形式のボリュームである場合、開始アドレス207および終了アドレス208にはトラック番号が格納される。以下では、説明を分かりやすくする為に、データを格納する領域として、トラックという言葉を使用する。したがって、トラックという言葉に、可変長レコード形式ボリュームのトラックを当てはめても良いし、固定長ブロック形式ボリュームのブロックを当てはめても良い。また、ボリューム108内の先頭からi番目のトラックをトラック(i)と表記する。
制御メモリ106は、1又は複数の差分情報111を保有する。差分情報111のデータ構造の一例を図3に示す。
差分情報111は、使用中フラグ301、コピー対象ビットマップ302および差分ビットマップ303を保有する。使用中フラグ301は、当該差分情報111が使用中かどうかを示すフラグで、“使用中”または“未使用”の値をとる。使用中フラグ301が“使用中”であるとき、当該差分情報111は、使用中であることが示される。使用中フラグ301が“未使用”のとき、当該差分情報111は、未使用状態であることが示される。
コピー対象ビットマップ302は、副ボリュームから正ボリュームへコピーするデータを示す情報で、複数のビットから構成される。1ビットは、ボリューム8上の1つのトラックに対応する。ビットが0のとき、そのビットに対応するトラック(またはブロック)はコピー対象ではないことが示され、ビットが1のとき、そのビットに対応するトラック(またはブロック)がコピー対象であることが示される。以下、コピー対象ビットマップ302のi番目のビットをコピー対象(i)と表記する。すなわち、トラック(i)に対応するビットは、コピー対象(i)である。
差分ビットマップ303は、正ボリュームと副ボリュームの対応するトラック間でデータの内容が異なっているトラックを示す情報で、複数のビットから構成される。コピー対象ビットマップ302と同様に、1つのビットは、1つのトラックに対応する。ビットが0のとき、そのビットに対応するトラックのデータは、正ボリュームと副ボリュームとの間で異なっていないことが示される。一方、ビットが1のとき、そのビットに対応するトラックのデータは、正ボリュームと副ボリュームとの間で異なっていることが示される。以下、差分ビットマップ303のi番目のビットを差分(i)と表記する。すなわち、トラック(i)に対応するビットは、差分(i)である。
図4は、バッチ処理を実行する時のホスト101による処理の流れを示すフローチャートである。
ホスト101は、実行しようとするバッチ処理で使用されるデータを格納したボリューム108の識別子(以下、このボリューム108の識別子をSと表記する)を正ボリューム番号、未使用のボリューム108の識別子(以下、このボリューム108の識別子をTと表記する)を副ボリューム番号として、これらをパラメータとして含むペア形成要求を作成し、ディスクサブシステム109に発行する(ステップ400)。
ペア形成要求を発行した後、ホスト101は、正ボリューム番号S、副ボリューム番号Tをパラメータとして有するペア状態参照要求を作成し、ディスクサブシステム109に発行する。ペア状態参照要求に対する応答として、ディスクサブシステム109から報告されるペア状態が“ペア形成完了”の場合、ステップ402に進む。ディスクサブシステム109から報告されるペア状態が“ペア形成完了”以外の場合、報告されるペア状態が“ペア形成完了”となるまで待つ(ステップ401)。
ペア状態が“ペア形成完了”になると、ホスト101は、例えば、オンライン処理の区切りなどバッチ処理を開始する契機まで待つ(ステップ402)。
バッチ処理を開始する契機になると、ホスト101は、正ボリューム番号S、副ボリューム番号Tをパラメータとして有するペア分割要求を作成し、ディスクサブシステム109に発行する(ステップ403)。
ペア分割要求を発行した後、ホスト101は、正ボリューム番号S、副ボリューム番号Tをパラメータとして有するペア状態参照要求を作成し、ディスクサブシステム109に発行する。ペア状態参照要求に対する応答として、ディスクサブシステム109から報告されるペア状態が“ペア分割”の場合、ステップ405に進む。ディスクサブシステム109から報告されるペア状態が“ペア分割”以外の場合、ホスト101は、ペア状態が“ペア分割”になるまで待つ(ステップ404)。
ペア状態が“ペア分割”になると、ホスト101は、バッチ処理を開始する(ステップ405)。
バッチ処理が途中で異常終了すると、バッチ処理のリトライのために、バッチ処理を実行する前のデータが必要とされる。この場合、ステップ407に進む。バッチ処理が正常終了した場合は、ステップ410に進む(ステップ406)。
バッチ処理が異常終了し、バッチ処理を実行する前のデータが必要になった場合、ホスト101は、データの回復を行うボリューム108内の領域を求める。この領域は、ログファイルを解析して、異常終了したバッチ処理の実行中に更新のあった部分を特定することにより行われる。または、ユーザからの指定を受け付けても良い。以降、求められた領域の始端のアドレスをB、終端のアドレスをEと表記する。
続いて、ホスト101は、正ボリューム番号の値としてS、副ボリューム番号の値としてT、開始アドレスの値がB、終了アドレスの値がEをパラメータとして有するデータ復旧要求を作成し、ディスクサブシステム109に発行する(ステップ407)。
データ復旧要求を発行した後、ホスト101は、正ボリューム番号S、副ボリューム番号Tをパラメータとするペア状態参照要求を作成し、ディスクサブシステム109に発行する。このペア状態参照要求に対する応答として、ディスクサブシステム109から報告されるペア状態が“ペア分割”の場合、ステップ409に進む。ディスクサブシステム109から報告されるペア状態が“ペア分割”以外の場合、ホスト101は、報告されるペア状態が“ペア分割”になるまで待つ(ステップ408)。
ペア状態が“データ分割”になると、データの回復が完了しているので、ホスト101は、バッチ処理を再実行する(ステップ409)。
バッチ処理が正常終了すると、ホスト101は、正ボリューム番号の値S、副ボリューム番号の値Tをパラメータとして有するペア解除要求を作成し、ディスクサブシステム109に発行する(ステップ410)。
ペア解除要求を発行した後、ホスト101は、正ボリューム番号S、副ボリューム番号Tをパラメータとして有するペア状態参照要求を作成し、ディスクサブシステム109に発行する。このペア状態参照要求に対する応答としてディスクサブシステム109から報告されるペア状態が“ペアなし”の場合、処理を終了する。ディスクサブシステム109から報告されるペア状態が“ペアなし”以外の場合、ペア状態が“ペアなし”になるまで待つ(ステップ411)。
以上説明したホスト101の処理では、バッチ実行前の状態にデータを回復してから、バッチ処理を再実行させたが、ステップ409において、ログファイルを使って、適切なところまでデータの更新を行ってからバッチ処理を実行しても良い。
図5は、ホスト101からの要求に応答してディスクサブシステム109により行われる処理の処理フローを示すフローチャートである。
ディスクサブシステム109は、ホスト101から要求を受領するとステップ500〜505において、その要求がペア形成要求、ペア分割要求、ペア削除要求、データ復旧要求、及びペア状態参照要求のいずれかに該当するか判別する。
ホスト101からの要求がペア形成要求である場合、ディスクサブシステム109は、ペア情報及び差分情報を作成する。具体的に、ディスクサブシステム109は、使用中フラグ200が“未使用”であるペア情報110を選択し、選択したペア情報110の使用中フラグ200に“使用中”を設定する。次に、使用中フラグ301が“未使用”である差分情報111を選択し、選択した差分情報111の使用中フラグ301に“使用中”を設定する。その後、ディスクサブシステム109は、選択したペア情報110の正ボリューム番号201に、ペア形成要求のパラメータとして設定されている正ボリューム番号Sを、副ボリューム番号202に、副ボリューム番号Tを設定する。また、選択したペア情報110の差分情報番号203に、選択した差分情報111の識別子を設定する。そして、選択したペア情報110のペア状態204に“ペア形成中”を設定する。次に、ディスクサブシステム109は、選択した差分情報111のコピー対象ビットマップ302、及び差分ビットマップ303のすべてのビットを0にする(ステップ506)。
ペア情報110および差分情報111に値を設定したら、ディスクサブシステム109は、後述する形成コピー処理を実行する(ステップ507)。
形成コピーが完了すると、ディスクサブシステム109は、ステップ506で選択したペア情報110のペア状態204に“ペア形成完了”を設定し、処理を終了する(ステップ508)。
ホスト101から受領した要求がペア分割要求である場合、ディスクサブシステム109は、使用中フラグ200が“使用中”であり、正ボリューム番号201、及び副ボリューム番号202に、ペア分割要求のパラメータとして与えられる正ボリューム番号S、副ボリューム番号Tが設定されているペア情報110を選択する。そして、選択したペア情報110のペア状態204に“ペア分割”を設定して処理を終了する(ステップ509)。
ホスト101から受領した要求がペア削除要求である場合、ディスクサブシステム109は、使用中フラグ200が“使用中”であり、正ボリューム番号201、副ボリューム番号202に、ペア削除要求のパラメータとして設定されている正ボリューム番号S、副ボリューム番号Tが設定されているペア情報110を選択する。そして、選択したペア情報110の差分情報番号203によりポイントされる差分情報111の使用中フラグ301に“未使用”を設定する。また、選択したペア情報110の使用中フラグ200にも“未使用”を設定する。ディスクサブシステム109は、使用中フラグ200および使用中フラグ301の更新が完了すると処理を終了する(ステップ510)。
次に、ホスト101から受領した要求がデータ復旧要求である場合、ディスクサブシステム109は、使用中フラグ200が“使用中”であり、正ボリューム番号201、副ボリューム番号202にデータ復旧要求のパラメータとして設定されている正ボリューム番号S、副ボリューム番号Tが設定されているペア情報110を選択する。次に、ディスクサブシステム109は、選択したペア情報110のペア状態204に“データ復旧中”を設定する。また、エクステント情報205の開始アドレス207、及び終了アドレス208には、データ復旧要求にパラメータとして設定されている開始アドレスB、終了アドレスEを設定する。さらに、ディスクサブシステム109は、選択したペア情報203の差分情報番号203によりポイントされる差分情報111のコピー対象ビットマップ302を設定する。すなわち、差分(B)から差分(E)までのビットに関して、差分(i)が0のときコピー対象(i)に0を設定し、差分(i)が1のときコピー対象(i)に1を設定する(ステップ511)。
ペア情報110および差分情報111を更新した後、ディスクサブシステム109は、後述するデータ復旧処理を実行する(ステップ512)。
データ復旧処理が完了すると、ディスクサブシステム109は、ステップ511で選択したペア情報110のペア状態204に“ペア分割”を設定して処理を終了する(ステップ513)。
ホスト101から受領した要求がペア状態参照要求である場合、ディスクサブシステム109は、使用中フラグ200が“使用中”であり、正ボリューム番号201、副ボリューム番号202にペア状態参照要求のパラメータとして与えられた正ボリューム番号S、副ボリューム番号Tが設定されているペア情報110を選択する。次に、ディスクサブシステム109は、選択したペア情報110のペア状態204をホスト101に報告して処理を終了する。ここで、該当するペア情報110がない場合は、ペア状態として“ペアなし”を報告する(ステップ514)。
ホスト101からの要求が上述したいずれの要求でもない場合、ステップ515において、ホスト101からの要求がリード要求であるかライト要求であるかが判定される。この判定の結果、要求がリード要求の場合は、後述するリード処理が行われ(ステップ516)、ライト要求の場合には、後述するライト処理が行われる(ステップ517)。
図6は、ステップ507において実施される形成コピー処理のフローチャートである。
まず、初期設定として、ディスクサブシステム109は、変数iに0を設定する(ステップ600)。
次に、ボリュームアクセス部107により、ステップ506で選択したペア情報110の正ボリューム番号201に設定された識別子で指定されるボリューム108のトラック(i)のデータを読み出す。そして、ボリュームアクセス部107により、読み出したデータを副ボリューム番号202に設定された識別子で指定されるボリュームのトラック(i)に書き込む(ステップ601)。
変数iの値が、正ボリュームの最終トラックのトラック番号を超えたか判定する(ステップ602)。変数iが最終トラックのトラック番号を超えていると、ディスクサブシステム109は、形成コピーの処理を終了してステップ508に進む。そうでなければ、ステップ603の処理に進み、変数iに1を加算してステップ601に戻り、次のトラックのコピー処理を実行する(ステップ603)。
図7は、ステップ512で実施されるデータ復旧処理のフローチャートである。
ディスクサブシステム109は、まず、変数iに初期値としてBを設定する(ステップ700)。
次に、ステップ511で設定したコピー対象ビットマップ302を参照して、コピー対象(i)が0か1かを判定する(ステップ701)。コピー対象(i)が0の場合は、ステップ704に、1の場合は、ステップ703に進む。
ステップ703では、ボリュームアクセス部107により、副ボリュームのトラック(i)のデータを読み出し、読み出したデータを正ボリュームのトラック(i)に書き込む。そして、コピー対象(i)を0にする。
ステップ704で、ディスクサブシステム109は、Eと変数iとを比較し、iがEに等しいか大きい場合にはデータ回復処理を終了し、そうでなければ、ステップ705に進む。ステップ705では、変数iに1を加算してステップ701に戻り、次のトラックについて同様の処理が行われる。
図8は、ステップ516におけるリード処理のフローチャートである。
ホスト101により発行されるリード要求には、パラメータとして、データを読み出すべきボリューム108の識別子とトラック番号を含んでいる。以降、パラメータで指定されるボリューム108の識別子を“RVOL”、トラック番号を“RTRK”とする。
リード処理では、まず、使用中フラグ200が“使用中”、正ボリューム番号201に“RVOL”が設定されているペア情報110が選択される。該当するペア情報110がある場合、処理は、ステップ801に進む。該当するペア情報110がない場合、処理は、ステップ804に進む(ステップ800)。
ステップ801でディスクサブシステム109は、ステップ800で選択したペア情報110のペア状態204を参照し、“データ復旧中”になっているか判
定する。ペア状態204が“データ復旧中”である場合は、ステップ802に進み、そうでなければステップ806に進む。
ステップ802でディスクサブシステム109は、エクステント情報205の開始アドレス207と終了アドレス208によって特定される領域に、トラック“RTRK”が含まれるかどうかを判定する。開始アドレス207と終了アドレス208によって特定される領域にトラック“RTRK”が含まれていれば、当該領域に対するアクセスを拒否することをホスト101に報告してリード処理を終了する(ステップ803)。開始アドレス207と終了アドレス208によって特定される領域にトラック“RTRK”が含まれていない場合は、ボリュームアクセス部107により、識別子“RVOL”で識別されるボリューム108のトラック“RTRK”のデータが読み出され、ホスト101に転送されてリード処理が終了する(ステップ806)。
リード対象のボリュームが正ボリュームでない場合、使用中フラグ200が“使用中”となっているペア情報110から、副ボリューム番号201が“RVOL”であるペア情報が選択される。該当するペア情報110がなければ、ステップ806の処理に移り、データの転送が行われ処理が終了する。該当するペア情報110があれば、ステップ805に進む(ステップ804)。
ステップ805では、ステップ804で選択されたペア情報110のペア状態204が参照され、“ペア分割”であるか判定される。ペア状態204が“ペア分割”であればステップ806に進み、データの転送が行われる。ペア状態204が“ペア分割”でなければステップ803に進み、アクセスが拒否される。
図9は、ステップ517で行われるライト処理のフローチャートである。
ホスト101により発行されるライト要求は、パラメータに、ボリューム108の識別子、トラック番号、およびライトデータを含む。以降、パラメータで指定されるボリューム108の識別子を“WVOL”、トラック番号を“WTRK”とする。
ライト処理において、ディスクサブシステム109は、まず、使用中フラグ200が“使用中”、正ボリューム番号201の値が“WVOL”であるペア情報110を選択する。該当するペア情報110があればステップ901に進み、該当するペア情報110がなければステップ904に進む(ステップ900)。
ステップ901では、ステップ900で選択されたペア情報110のペア状態204が“データ復旧中”かどうか判定される。ペア状態204が“データ復旧中”であればステップ902に進み、“データ復旧中”でなければステップ90
8に進む。
ステップ908では、ステップ900で選択されたペア情報110のペア状態204が“分割中”か判定される。ペア状態204が“分割中”であればステップ906に進み、“分割中”でなければステップ909に進む。
ステップ909では、ボリュームアクセス部107により、ステップ900で選択されたペア情報110の副ボリューム番号202により識別されるボリューム108内のトラック“WTRK”にライトデータが書き込まれる。その後、処理は、ステップ907に進む。
ステップ902では、ステップ900で選択されたペア情報110のエクステント情報205の開始アドレス207と終了アドレス208によって特定される領域に、トラック“WTRK”が含まれるかどうか判定される。該当する領域に、トラック“WTRK”が含まれればステップ903に進み、含まれなければステップ906に進む。
ステップ903でディスクサブシステム109は、当該領域へのアクセスを拒否することをホスト101に報告して処理を終了する。
ステップ904では、使用中フラグ200が“使用中”、副ボリューム番号201の値が“WVOL”であるペア情報110が選択される。該当するペア情報110があればステップ905に進み、該当するペア情報110がなければステップ907に進む。
ステップ905では、ステップ904で選択されたペア情報110のペア状態204が“ペア分割”かどうか判定される。ペア状態204が“ペア分割”であればステップ906に進み、“ペア分割”でなければステップ903に進む。
ステップ906でディスクサブシステム109は、ステップ904で選択したペア情報110の差分情報番号203により示される差分情報111の差分(WTRK)に1を設定する。
ステップ907では、識別子が“WVOL”であるボリューム108のトラック“WTRK”に、受領したライトデータが書き込まれ、ライト処理が終了する。
上述した第1の実施の形態では、ディスクサブシステム109は、ホスト101から送られる要求に応答して処理を行う。これらの要求のうち、ペア形成要求、ペア分割要求、ペア削除要求、ペア状態参照要求を遠隔端末100からディスクサブシステム109に与えることも可能である。この場合、制御プロセッサ105は、遠隔端末インタフェース104を介して、遠隔端末100から要求を受領して、処理を実行する。処理内容は、上述した各処理と同様となる。
また、上述した実施形態では、データを復旧中の領域に対するリード/ライト要求を拒否しているが、リード処理におけるステップ803、ライト処理におけるステップ903を以下に説明する処理に変更することで、データを復旧中の領域に対するリード/ライト要求に応じてデータ転送を行うようにすることができる。
図10は、データを復旧中の領域に対するリード要求に対してデータ転送を行うために、ステップ803に替えて行われる処理のフローチャートである。
ディスクサブシステム109は、データを復旧中の領域に対するリード要求を処理するに当たり、ペア情報110を参照して、リード要求の対象ボリュームを含むペアのペア状態204が“データ復旧中”か調べる(ステップ1000)。
ペア状態204が“データ復旧中”であれば、次に、ディスクサブシステム109は、リード要求の対象領域がコピー対象となっているかどうか調べる。これは、ペア情報110の差分情報番号203が指している差分情報111のコピー対象(RTRK)が0か1かを調べることで実現される。コピー対象(RTRK)が0の場合は、ボリュームアクセス部107によりボリューム108からデータを読み出してホスト101に転送し、処理を終了する(ステップ1005)。
ステップ1001でコピー対象であると判定された場合、ディスクサブシステム109は、ボリュームアクセス部107により副ボリュームのトラック“RTRK”からデータを読み出して、それを正ボリュームのトラック“RTRK”に書き込む(ステップ1002)。
続いて、ディスクサブシステム109は、コピー対象(RTRK)に0を設定する(ステップ1003)。そして、ボリュームアクセス部107により、ボリューム108からデータを読み出してホスト101に転送し、処理を終了する(ステップ1004)。
ステップ1000でペア状態204が“データ復旧中”でないと判定された場合は、ホスト101にアクセスを拒否することが報告されて処理が終了する(ステップ1006)。
図11は、データを復旧中の領域に対するライト要求を処理するために、ステップ903に替えて行われる処理のフローチャートである。
ディスクサブシステム109は、データを復旧中の領域に対するライト要求を処理するに当たり、ライト要求の対象であるボリュームに関するペア情報110を参照して、そのペア状態204が“データ復旧中”かどうか調べる(ステップ1100)。
ペア状態204が“データ復旧中”であると判定された場合、ライト要求の対象領域がコピー対象となっているかどうか調べられる。これは、ペア情報110の差分情報番号203が指す差分情報111のコピー対象(WTRK)が0であるか1であるかを調べることにより行われる(ステップ1101)。
コピー対象(WTRK)が0の場合は、ステップ1104に進む。1の場合はステップ1102に進む。
ステップ1101でコピー対象(WTRK)が1であり、ライト要求の対象領域がコピー対象であると判定しされた場合、ボリュームアクセス部107により、副ボリュームのトラック“WTRK”のデータが読み出され、正ボリュームのトラック“WTRK”にそのデータが書き込まれる(ステップ1102)。その後、差分情報111のコピー対象(WTRK)に0が設定され、ステップ1104の処理に移る(ステップ1103)。
ステップ1104でディスクサブシステム109は、差分情報111の差分(WTRK)に1を設定する。続いて、ボリュームアクセス部107により、識別子“WVOL”で識別されるボリューム108のトラック“WTRK”にライトデータが書き込まれる(ステップ1105)。
ステップ1100でペア状態204が“データ復旧中”でないと判定された場合、ディスクサブシステム109は、ホスト101にアクセスを拒否することを報告して処理を終了する(ステップ1106)。
以上の処理により、データを復旧中の領域に対するリード/ライト要求に対しても、その要求に応答してデータのリード/ライト処理を実施することが可能となる。
本発明が適用された情報処理システムの他の実施形態について、以下に説明する。以下に説明する実施形態におけるシステムとしての構成は、図1に示したものと同様であるが、制御プロセッサ105において実現される機能が上述した実施形態と異なる。本実施形態では、ホスト101(あるいは遠隔端末100)から発行される要求として、上述した実施形態において説明したペア形成要求、ペア分割要求、ペア削除要求、データ復旧要求、ペア状態参照要求、リード要求およびライト要求に加え、コピーなしペア形成要求が含まれる。制御プロセッサ105は、これらの要求に応答して各種の処理を行う。
図12は、データ回復処理時のホスト101側の処理を示すフローチャートである。
データ回復処理時、ホスト101は、まず、ディスクサブシステム1209にコピーなしペア形成要求を発行する。コピーなしペア形成要求には、パラメータとして、正ボリューム番号と副ボリューム番号が含まれる。正ボリューム番号には、回復するデータを格納するボリューム108の識別子が、副ボリューム番号には、データを一時的に格納する未使用のボリューム108の識別子が設定される。以下では、処理の対象となる正ボリュームのボリューム番号をS、副ボリュームのボリューム番号をTとして説明する(ステップ1300)。
ホスト101は、コピーなしペア形成要求を発行した後、パラメータに正ボリューム番号S、副ボリューム番号Tを有するペア状態参照要求を作成し、ディスクサブシステム109に発行する。このペア状態参照要求に対する応答としてディスクサブシステム109から報告されるペア状態が“ペア分割”でなければ、ペア状態が“ペア分割”になるまで待ち、ペア状態が“ペア分割”であることを確認して次の処理に進む(ステップ1301)。
次に、ホスト101は、回復するデータがバックアップされている磁気テープからデータを読み出す。ホスト101は、このデータを、ボリューム番号がTであるボリューム108に書き込むよう、ディスクサブシステム1209にライト要求を発行する(ステップ1302)。
回復するデータを含むバックアップデータをボリューム108に書き込むと、ホスト101は、ログファイルを解析してデータの回復を行う範囲を求める。続いて、ホスト101は、パラメータに正ボリューム番号S、副ボリューム番号T、ここで求めた回復範囲の開始アドレス、及び、終了アドレスの値を有するデータ復旧要求を作成し、ディスクサブシステム109に発行する(ステップ1303)。
データ復旧要求を発行した後、ホスト101は、パラメータに正ボリューム番号S、副ボリューム番号Tを有するペア状態参照要求を作成し、ディスクサブシステム109に発行する。このペア状態参照要求に対する応答としてディスクサブシステム109から報告されるペア状態が“ペア分割”でなければ、ペア状態が“ペア分割”になるまで待ち、ペア状態が“ペア分割”であることを確認して次の処理に進む(ステップ1304)。
ここまでの処理でデータの回復は完了する。ホスト101は、データの回復が完了した後、パラメータとして正ボリューム番号S、副ボリューム番号Tを有するペア解除要求をディスクサブシステム109に発行する(ステップ1305)。
ペア解除要求を発行した後、ホスト101は、パラメータに正ボリューム番号S、副ボリューム番号Tを有するペア状態参照要求をディスクサブシステム109に発行する。このペア状態参照要求に対する応答としてディスクサブシステム109から報告されるペア状態が“ペアなし”でなければ、ペア状態が“ペアなし”となるまで待つ。ペア状態が“ペアなし”となり、ペアの解除が完了するとホスト101は処理を終える(ステップ1306)。
ステップ1300において、ホスト101からコピーなしペア形成要求を受けたときのディスクサブシステム109による処理は次の通りである。
ホスト101からのコピーなしペア形成要求に応答して、ディスクサブシステム109は、使用中フラグ200が“未使用”であるペア情報110を選択し、その使用中フラグ200を“使用中”にする。続いて、ディスクサブシステム109は、使用中フラグ301が“未使用”である差分情報111を選択し、その使用中フラグ301を“使用中”にする。
次に、ディスクサブシステム109は、選択されたペア情報110の正ボリューム番号201に“S”、副ボリューム番号202に“T”、差分情報番号203に、選択した差分情報111の識別子、ペア状態204に“ペア分割”をそれぞれ設定する。次に、ディスクサブシステム109は、選択した差分情報111のコピー対象ビットマップ302のすべてのビットを0に、差分ビットマップ303のすべてのビットを1にする。
図13は、本発明のさらに別の実施形態における情報処理システムのシステム構成を示すブロック図である。本実施形態の情報処理システムは、基本的には図1に示した第1の実施形態における情報処理システムと同様に構成されるが、制御プロセッサ1505、制御メモリ1506、ボリュームアクセス部107などの機能がこれまで説明した実施形態とは異なる。以下、特に、第1の実施形態との相違する点を主体として説明を行う。
制御メモリ1506には、制御プロセッサ1505が制御に必要とする制御情報である位置情報1510が格納される。物理ボリューム1508はデータを格納する機能を有し、ボリュームアクセス部1507は、物理ボリューム1508にアクセスする機能を有する。
本実施形態では、ホスト101は、ディスクサブシステム1509により仮想的に定義される論理ボリュームに対してリードやライトなどの要求を発行する。ディスクサブシステム1509には、複数の論理ボリュームを定義でき、各論理ボリュームは、個別の識別子を有する。論理ボリュームは、以下のように定義されている。
(1) 論理ボリュームは、複数の仮想的な論理トラックから構成されている。論理トラックには、各々を識別するための識別子がつけられている。識別子は、0、1、2、…という値を持つ。
(2) 論理ボリュームは、1以上の仮想的な論理領域から構成されている。論理領域は、1以上の連続する論理トラックから構成されていて、おのおのの論理領域の論理トラック数は等しい。各論理領域には、おのおのを識別するための識別子がついている。識別子は、0、1、2、…という値を持つ。
論理ボリューム上のデータは、実際には物理ボリューム108に格納される。物理ボリューム108は以下のような特徴をもつ。
(1) 物理ボリューム108は、データを格納する実体(例えば磁気ディスク)から構成される。
(2) 物理ボリューム108は、複数の物理トラックから構成される。各物理トラックには、おのおのを識別するための識別子がついている。識別子は、0、1、2、…という値を持つ。
(3) 物理ボリューム1508は、1以上の物理領域から構成される。物理領域は、1以上の連続する物理トラックから構成されている。おのおのの物理領域の物理トラック数は等しく、論理領域を構成する論理トラック数と等しい。物理トラックには、おのおのを識別するための識別子がついている。識別子は、0、1、2、…という値を持つ。
制御メモリ1506には、論理ボリュームと物理ボリュームの対応関係を示すマッピング情報である位置情報が格納される。図14に位置情報のデータ構造を示す。図に示すように、位置情報1510は、論理ボリューム番号1800、デバイスビジー要求1801、リード/ライト実行中フラグ1802およびマッピング情報1803から構成される。
論理ボリューム番号1800は、当該位置情報により管理される論理ボリュームの識別子を示す。デバイスビジー要求1801は、論理ボリューム番号1800により識別される論理ボリュームに対するホスト101からのアクセスに対して、デバイスビジーを報告することを示す情報である。デバイスビジー要求1801は、“オン”あるいは“オフ”の値を取る。リード/ライト実行中フラグ1802は、論理ボリューム番号1800により識別される論理ボリュームに対するホスト101からのリード・ライト要求を実行中であることを示すフラグである。リード/ライト実行中フラグ1802は、“オン”あるいは“オフ”の値を取る。マッピング情報1803は、論理領域番号1804、物理ボリューム番号1805および物理領域番号1806から構成される。論理領域番号1804は、論理ボリューム内の論理領域に割り当てられた識別子を示す。物理ボリューム番号1805は、物理ボリューム108の識別子を示す。物理領域番号1806は、物理ボリューム108内の物理領域の識別子である。
図15は、データ回復時にホスト101側で行われる処理のフローチャートである。
以下、識別子がSの論理ボリューム1600に対して、磁気テープに格納されているバックアップデータをリストアする処理ついて説明する。
データ回復時にホスト101は、まず、未使用の論理ボリュームを1つ選択する。以下、この論理ボリュームの識別子を“T”とする。ホスト101は、磁気テープに格納されているバックアップデータを、識別子“T”で識別される論理ボリュームにリストアする(ステップ1901)。
リストアが完了すると、ホスト101は、パラメータに正ボリューム番号“S”、副ボリューム番号“T”を有するスワップ要求を作成し、ディスクサブシステム1509に発行する(ステップ1902)。
図16は、ディスクサブシステム1509における処理のフローチャートである。
ディスクサブシステム1509は、ホスト1501から要求を受領すると(ステップ2000)、それがスワップ要求であるかリード/ライト要求か判別する(ステップ2001)。
受領した要求がスワップ要求である場合、ディスクサブシステム1509は、パラメータで指定された正ボリューム番号と同じ値を論理ボリューム番号1800に持つ位置情報1510を選択する。以下、この位置情報1510を位置情報(S)と表記する。ディスクサブシステム1509は、位置情報(S)のデバイスビジー要求1801に“オン”を設定する。次に、ディスクサブシステム1509は、パラメータで指定された副ボリューム番号と同じ値を論理ボリューム番号1800に持つ位置情報1510を選択する。以下、この位置情報1510を位置情報(T)と表記する。ディスクサブシステム1509は、位置情報(T)のデバイスビジー要求1801に“オン”を設定する(ステップ2007)。
デバイスビジー要求1801を“オン”に設定した後、ディスクサブシステム1509は、位置情報(S)のリード/ライト実行中フラグ1802および位置情報(T)のリード/ライト実行中フラグ1802が“オフ”になっているかどうかを判定する(ステップ2008)。
リード/ライト実行中フラグ1802が“オフ”でなれければ、“オフ”になるまで待つ。リード/ライト実行中フラグ1802が“オフ”になると、マッピング情報1803が更新される。すなわち、位置情報(S)のマッピング情報1803の値と位置情報(T)のマッピング情報1803の値が入れ替えられる(ステップ2009)。
マッピング情報1803の入れ替えが終了したら、ディスクサブシステム1509は、位置情報(S)のデバイスビジー要求1801および位置情報(T)のデバイスビジー要求18012に“オフ”を設定し、処理を終了する(ステップ2011)。
ステップ2001でホスト101から受領した要求がリード/ライト要求であると判別された場合、ディスクサブシステム1509は、リード/ライトの対象となる論理ボリューム1600の識別子を論理ボリューム番号1800に持つ位置情報1510を選択し、デバイスビジー要求1801の値が“オン”になっているかどうか判定する。デバイスビジー要求1801が“オン”であれば、ディスクサブシステム1509は、ホスト1501にデバイスビジーを報告して処理を終了する(ステップ2010)。
デバイスビジー要求1801が“オン”になっていない場合、ディスクサブシステム1509は、位置情報(S)のリード/ライト実行中フラグ1802および位置情報(T)のリード/ライト実行中フラグ1802に“オン”を設定する(ステップ2003)。
リード/ライト実行中フラグ1802の更新が完了したら、まず、リード/ライト対象の論理トラックに対応する物理トラックを求める。物理トラックは、位置情報(S)のマッピング1803の値から次のようにして求められる。
(1) リード/ライト対象の論理トラックの識別子の値を、論理領域を構成する論理トラック数で割った時の商をA、余りをBとする。
(2) マッピング情報1803の論理領域番号1804がAである行の物理ボリューム番号1805にある値Cを求める。
(3) マッピング情報1803の論理領域番号1804がAである行の物理領域番号1806にある値Dを求める。
(4) 値Dと物理領域を構成する物理トラック数の積をEとする。
(5) EとBとの和としてFを得る。
以上のようにして求めた値から、リード/ライト対象の物理トラックは、識別子がCである物理ボリューム108内の、識別子がFである物理トラックであることが求まる(ステップ2004)。
物理トラックが得られると、ディスクサブシステム1509は、ボリュームアクセス部1507により、ホスト101との間でデータ転送を実行する(ステップ2005)。
データ転送の終了に応答して、ディスクサブシステム1509は、位置情報(S)のリード/ライト実行中フラグ1802および位置情報(T)のリード/ライト実行中フラグ1802に“オフ”を設定して処理を終了する(ステップ2006)。
以上の説明では、論理ボリューム内のデータがすべて交換されるが、第1の論理ボリューム内のある論理領域と、第2の論理ボリューム内のある論理領域のデータとを交換することもできる。以下、識別子がSである論理ボリュームの論理領域S1のデータと、識別子がTである論理ボリュームの論理領域T1のデータとを交換する場合について説明する。
この場合、ホスト101は、S、S1、T、T1をパラメータとして有するデータ交換要求をディスクサブシステム1509に対して発行する。
データ交換要求を受領したディスクサブシステム1509は、スワップ要求を受領したときの処理と同様に、デバイスビジー要求1801に“オン”を設定し、リード/ライト実行中フラグ1802が“オフ”なるのを待つ。リード/ライト実行中フラグ1802が“オフ”になったら、論理ボリューム番号1800がSである位置情報1510に含まれるマッピング情報1803の論理領域番号1804がS1であるエントリに対応する物理ボリューム番号1805と物理領域番号1806の値と、論理ボリューム番号1800がTである位置情報1510のマッピング1803の論理領域番号1804がT1であるエントリに対応する物理ボリューム番号1805と物理領域番号1806の値とを入れ替える。入れ替えが終了したら、デバイスビジー要求1801に“オフ”を設定して、処理を終了する。
100・・・遠隔端末、101・・・ホスト、102・・・LAN、103・・・バス、104・・・遠隔端末インタフェース、105・・・ホストインタフェース、106・・・制御メモリ、107・・・ボリュームアクセス部、108・・・ボリューム、109・・・ディスクサブシステム、110・・・ペア情報、111・・・差分情報