(57)【要約】      （修正有）【課題】情報処理装置間での処理の引継ぎをスムーズに行うことができるストレージシステムを提供する。【解決手段】  リモートコピーの実行中に、前記第二の情報処理装置からフェールオーバする旨の通知を受信すると、前記第二の記憶装置は、前記第一の記憶領域に書き込んだデータの複製が前記第二の記憶装置に未だ送信されておらず、前記データの複製が前記第二の記憶領域に書き込まれていないことを示す第一の情報を前記第一の記憶装置に要求し、当該要求に応じた前記第一の記憶装置から前記第一の情報を受信すると、前記第二の情報処理装置にデータ入出力要求を受け付けることができる旨を通知し、フェールオーバした前記第二の情報処理装置から送信されてくるデータの読み出し要求を受信すると、前記第一の情報を参照して前記データの読み出し要求の対象となるデータが前記第一の記憶領域に記憶されているかを判断することとする。【選択図】図８
2005165618.tif 000002
【特許請求の範囲】
【請求項１】
第一の情報処理装置と、
前記第一の情報処理装置と通信可能に接続され、前記第一の情報処理装置とクラスタを構成する第二の情報処理装置と、
前記第一の情報処理装置と通信可能に接続され、前記第一の情報処理装置から送信されてくるデータの入出力要求に応じて第一の記憶領域に対してデータの書き込み／読み込みを行う第一の記憶装置と、
前記第二の情報処理装置と通信可能に接続され、前記第二の情報処理装置から送信されてくるデータの入出力要求に応じて第二の記憶領域に対してデータの書き込み／読み込みを行う第二の記憶装置と、を含み、
前記第一の記憶装置と前記第二の記憶装置とは通信可能に接続され、
前記第一の記憶装置は、前記第一の記憶領域に書き込んだデータの複製を第二の記憶装置に送信し、前記データを受信した前記第二の記憶装置は、前記第二の記憶領域に前記データを書き込む処理である、第一の処理の実行中に、
前記第二の記憶装置は、前記第二の情報処理装置からフェールオーバする旨の通知を受信すると、前記第一の記憶領域に書き込んだデータの複製が前記第二の記憶装置に未だ送信されておらず、前記データの複製が前記第二の記憶領域に書き込まれていないことを示す第一の情報を前記第一の記憶装置に要求し、
前記第二の記憶装置は、前記第一の記憶装置から前記第一の情報を受信すると、前記第二の情報処理装置にデータ入出力要求を受け付けることができる旨を通知し、
前記第二の記憶装置は、フェールオーバした前記第二の情報処理装置から送信されてくるデータの読み出し要求を受信すると前記第一の情報を参照し、前記データの読み出し要求の対象となるデータが前記第一の記憶領域に記憶されていると判断した場合には、前記第一の記憶装置に前記データの読み出し要求の対象となるデータを要求し、当該要求に応じた前記第一の記憶装置から送信されてくる前記データの読み出し要求の対象となるデータを前記第二の情報処理装置に送信すること、
を特徴とするストレージシステムの制御方法。
【請求項２】
請求項１に記載のストレージシステムの制御方法において、
前記第二の記憶装置は第三の記憶領域を備えており、
前記第二の記憶装置は、前記第一の処理の実行中に前記第二の情報処理装置からデータの書き込み要求を受信すると、前記データの書き込み要求の対象となるデータを前記第三の記憶領域に書き込み、
前記第一の処理が終了した場合には、前記第二の記憶装置は前記第三の記憶領域に書き込んだデータの複製を前記第二の記憶領域に書き込み、
前記第二の記憶装置は前記第三の記憶領域に書き込んだデータである書き込みデータを前記第一の記憶装置に送信し、前記書き込みデータを受信した前記第一の記憶装置は前記第一の記憶領域に前記書き込みデータを書き込む処理である、第二の処理を開始すること、
を特徴とするストレージシステムの制御方法。
【請求項３】
請求項１に記載のストレージシステムの制御方法において、
前記第二の記憶装置は第三の記憶領域を備えており、
前記第二の記憶装置は、前記第一の処理の実行中に前記第二の情報処理装置からデータの書き込み要求を受信すると、前記データの書き込み要求の対象となるデータを前記第三の記憶領域に書き込み、
前記第二の記憶装置は、前記第二の情報処理装置からデータの読み出し要求を受信すると、前記データの読み出し要求の対象となるデータが前記第三の記憶領域に記憶されているかを判断し、
前記データの読み出し要求の対象となるデータが前記第三の記憶領域に記憶されていないと判断した場合には、前記第二の記憶装置は前記第一の情報を参照して前記データの読み出し要求の対象となるデータが前記第二の記憶領域に記憶されているかを判断し、
前記データの読み出し要求の対象となるデータが前記第二の記憶領域に記憶されていないと判断した場合には、前記第二の記憶装置は前記データの読み出し要求の対象となるデータを前記第一の記憶装置に要求し、当該要求に応じた前記第一の記憶装置から送信されてくる前記データの読み出し要求の対象となるデータを受信すると、前記第二の記憶装置は前記データの読み出し要求の対象となるデータを前記第二の情報処理装置に送信すること、
を特徴とするストレージシステムの制御方法。
【請求項４】
請求項１に記載のストレージシステムの制御方法において、
前記第二の記憶装置は第三の記憶領域を備えており、
前記第二の記憶装置は、前記第一の処理の実行中に前記第二の情報処理装置からデータの書き込み要求を受信すると、前記データの書き込み要求の対象となるデータを前記第三の記憶領域に書き込み、
前記第一の記憶装置は、前記第一の処理の実行中に前記第一の情報処理装置からフェールバックする旨の通知を受信すると、前記第三の記憶領域に書き込んだデータが前記第一の記憶装置に未だ送信されておらず、前記データが前記第一の記憶領域に書き込まれていないことを示す第二の情報を前記第二の記憶装置に要求し、
前記第一の記憶装置は、前記第二の記憶装置から前記第二の情報を受信すると、前記第一の情報処理装置にデータ入出力要求を受け付けることができる旨を通知し、
前記第二の記憶装置は、フェールバックした前記第一の情報処理装置から送信されてくるデータの読み出し要求を受信すると前記第二の情報を参照し、前記データの読み出し要求の対象となるデータが前記第三の記憶領域に記憶されていると判断した場合には、前記第二の記憶装置に前記データの読み出し要求の対象となるデータを要求し、当該要求に応じた前記第二の記憶装置から送信されてくる前記データの読み出し要求の対象となるデータを前記第一の情報処理装置に送信すること、
を特徴とするストレージシステムの制御方法。
【請求項５】
請求項４に記載のストレージシステムの制御方法において、
前記第一の記憶装置は第四の記憶領域を備えており、
前記第一の記憶装置は、前記第一の処理の実行中に前記第一の情報処理装置からデータの書き込み要求を受信すると、前記データの書き込み要求の対象となるデータを前記第四の記憶領域に書き込み、
前記第一の処理が終了した場合には、前記第二の記憶装置は前記第三の記憶領域に書き込んだデータの複製を前記第二の記憶領域に書き込み、
前記第二の記憶装置は、前記第三の記憶領域に書き込んだデータである書き込みデータを前記第一の記憶装置に送信し、前記書き込みデータを受信した前記第一の記憶装置は前記第一の記憶領域に前記書き込みデータを書き込む処理である、第二の処理を開始し、
前記第二の処理が終了した場合には、前記第一の記憶装置は前記第四の記憶領域に書き込んだデータの複製を前記第一の記憶領域に書き込み、
前記第一の記憶装置は、前記第四の記憶領域に書き込んだデータである書き込みデータを前記第二の記憶装置に送信し、前記書き込みデータを受信した前記第二の記憶装置は前記第二の記憶領域に前記書き込みデータを書き込む処理である、第三の処理を開始すること、
を特徴とするストレージシステムの制御方法。
【請求項６】
請求項４に記載のストレージシステムの制御方法において、
前記第一の記憶装置は第四の記憶領域を備えており、
前記第一の記憶装置は、前記第一の処理の実行中に前記第一の情報処理装置からデータの書き込み要求を受信すると、前記データの書き込み要求の対象となるデータを前記第四の記憶領域に書き込み、
前記第一の記憶装置は、前記第一の情報処理装置からデータの読み出し要求を受信すると、前記データの読み出し要求の対象となるデータが前記第四の記憶領域に記憶されているかを判断し、
前記データの読み出し要求の対象となるデータが前記第四の記憶領域に記憶されていないと判断した場合には、前記第一の記憶装置は、前記第二の情報を参照して前記データの読み出し要求の対象となるデータが前記第三の記憶領域に記憶されているかを判断し、
前記データの読み出し要求の対象となるデータが前記第三の記憶領域に記憶されていると判断した場合には、前記第一の記憶装置は前記データを前記第二の記憶装置に要求し、当該要求に応じた前記第二の記憶装置から送信されてくる前記データの読み出し要求の対象となるデータを受信すると、前記第一の記憶装置は前記データの読み出し要求の対象となるデータを前記第一の情報処理装置に送信すること、
を特徴とするストレージシステムの制御方法。
【請求項７】
請求項１に記載のストレージシステムの制御方法において、
前記第一の情報処理装置は、前記第一の記憶装置に前記データの書き込み要求を送信する時刻を監視しており、
前記第一の情報処理装置は、前記データの書き込み要求を前記第一の記憶装置に送信するとともに、当該送信時刻の情報を送信し、
前記第一の記憶装置は、前記第一の情報処理装置から順次送信されてくる前記データの書き込み要求の対象となるデータをそれぞれ送信時刻の情報と対応づけて管理し、
前記第一の記憶装置は、前記第一の記憶領域に記憶した前記データを古いものから順に前記第二の記憶装置に送信すること、
を特徴とするストレージシステムの制御方法。
【請求項８】
第一の情報処理装置と、
前記第一の情報処理装置と通信可能に接続され、前記第一の情報処理装置とクラスタを構成する第二の情報処理装置と、
前記第一の情報処理装置と通信可能に接続され、前記第一の情報処理装置から送信されてくるデータの入出力要求に応じて第一の記憶領域に対してデータの書き込み／読み込みを行う第一の記憶装置と、
前記第二の情報処理装置と通信可能に接続され、前記第二の情報処理装置から送信されてくるデータの入出力要求に応じて第二の記憶領域に対してデータの書き込み／読み込みを行う第二の記憶装置と、を含み、
前記第一の記憶装置と前記第二の記憶装置とは通信可能に接続され、
前記第一の記憶装置が前記第一の記憶領域に書き込んだデータの複製を前記第二の記憶装置に送信し、前記データを受信した前記第二の記憶装置が前記第二の記憶領域に前記データを書き込む処理である、第一の処理を実行する複製処理部を備え、
前記第二の記憶装置は、チャネル制御部を備え、
前記チャネル制御部は、前記第一の処理の実行中に前記第二の情報処理装置からフェールオーバする旨の通知を受信すると、前記第一の記憶領域に書き込んだデータの複製が前記第二の記憶装置に未だ送信されておらず、前記データの複製が前記第二の記憶領域に描き込まれていないことを示す第一の情報を前記第一の記憶装置に要求し、
前記チャネル制御部は、前記第一の記憶装置から前記第一の情報を受信すると、前記第二の情報処理装置にデータ入出力要求を受け付けることができる旨を通知し、
前記チャネル制御部は、フェールオーバした前記第二の情報処理装置から送信されてくるデータの読み出し要求を受信すると前記第一の情報を参照し、前記データの読み出し要求の対象となるデータが前記第一の記憶領域に記憶されていると判断した場合には、前記第一の記憶装置に前記データの読み出し要求の対象となるデータを要求し、当該要求に応じた前記第一の記憶装置から送信されてくる前記データの読み出し要求の対象となるデータを前記第二の情報処理装置に送信すること、
を特徴とするストレージシステム。
【請求項９】
請求項８に記載のストレージシステムにおいて、
前記第二の記憶装置は、第三の記憶領域とディスク制御部とを備え、
前記チャネル制御部は、前記第一の処理の実行中に前記第二の情報処理装置からデータの書き込み要求を受信し、
前記ディスク制御部は、前記データの書き込み要求の対象となるデータを前記第三の記憶領域に書き込み、
前記ディスク制御部は、前記第一の処理が終了した場合には、前記第三の記憶領域に書き込んだデータの複製を前記第二の記憶領域に書き込み、
前記複製処理部は、前記第二の記憶装置が前記第三の記憶領域に書き込んだデータを前記第一の記憶装置に送信し、前記データを受信した前記第一の記憶装置が前記第一の記憶領域に前記データを書き込む処理である、第二の処理を開始すること、
を特徴とするストレージシステム。
【請求項１０】
請求項８に記載のストレージシステムにおいて、
前記第二の記憶装置は、第三の記憶領域とディスク制御部とを備え、
前記チャネル制御部は、前記第一の処理の実行中に前記第二の情報処理装置からデータの書き込み要求を受信し、
前記ディスク制御部は、前記データの書き込み要求の対象となるデータを前記第三の記憶領域に書き込み、
前記チャネル制御部は、前記第二の情報処理装置からデータの読み出し要求を受信し、
前記チャネル制御部は、前記データの読み出し要求の対象となるデータが前記第三の記憶領域に記憶されているかを判断し、
前記チャネル制御部は、前記データの読み出し要求の対象となるデータが前記第三の記憶領域に記憶されていないと判断した場合には、前記第一の情報を参照して前記データの読み出し要求の対象となるデータが前記第二の記憶領域に記憶されているかを判断し、
前記チャネル制御部は、前記データの読み出し要求の対象となるデータが前記第二の記憶領域に記憶されていないと判断した場合には、前記データの読み出し要求の対象となるデータを前記第一の記憶装置に要求し、当該要求に応じた前記第一の記憶装置から送信されてくる前記データの読み出し要求の対象となるデータを受信すると、前記データの読み出し要求の対象となるデータを前記第二の情報処理装置に送信すること、
を特徴とするストレージシステム。
【請求項１１】
請求項８に記載のストレージシステムにおいて、
前記第二の記憶装置は、第三の記憶領域とディスク制御部とを備え、
前記第一の記憶装置は、チャネル制御部を備え、
前記第二の記憶装置のチャネル制御部は、前記第一の処理の実行中に前記第二の情報処理装置からデータの書き込み要求を受信し、
前記ディスク制御部は、前記データの書き込み要求の対象となるデータを前記第三の記憶領域に書き込み、
前記第一の記憶装置のチャネル制御部は、記第一の処理の実行中に前記第一の情報処理装置からフェールバックする旨の通知を受信すると、前記第三の記憶領域に書き込んだデータが前記第一の記憶装置に未だ送信されておらず、前記データが前記第一の記憶領域に書き込まれていないことを示す第二の情報を前記第二の記憶装置に要求し、
前記第一の記憶装置のチャネル制御部は、前記第二の記憶装置から前記第二の情報を受信すると、前記第一の情報処理装置にデータ入出力要求を受け付けることができる旨を通知し、
前記第一の記憶装置のチャネル制御部は、フェールバックした前記第一の情報処理装置から送信されてくるデータの読み出し要求を受信すると、前記第二の情報を参照して前記データの読み出し要求の対象となるデータが前記第三の記憶領域に記憶されていると判断した場合には、前記第二の記憶装置に前記データの読み出し要求の対象となるデータを要求し、当該要求に応じた前記第二の記憶装置から送信されてくる前記データの読み出し要求の対象となるデータを前記第一の情報処理装置に送信すること、
を特徴とするストレージシステム。
【請求項１２】
請求項１１に記載のストレージシステムにおいて、
前記第一の記憶装置は、第四の記憶領域とディスク制御部とを備え、
前記第一の記憶装置のチャネル制御部は、前記第一の処理の実行中に前記第一の情報処理装置からデータの書き込み要求を受信し、
前記第一の記憶装置のディスク制御部は、前記データの書き込み要求の対象となるデータを前記第四の記憶領域に書き込み、
前記第二の記憶装置のディスク制御部は、前記第一の処理が終了した場合に、前記第三の記憶領域に書き込んだデータの複製を前記第二の記憶領域に書き込み、
前記複製処理部は、前記第二の記憶装置が前記第三の記憶領域に書き込んだデータを前記第一の記憶装置に送信し、前記データを受信した前記第一の記憶装置が前記第一の記憶領域に前記データを書き込む処理である、第二の処理を開始し、
前記第一の記憶装置のディスク制御部は、前記第二の記憶装置から受信した前記第三の記憶領域に書き込まれているデータを前記第一の記憶領域に書き込み、
前記第一の記憶装置のディスク制御部は、前記第二の処理が終了した場合に、前記第四の記憶領域に書き込んだデータの複製を前記第一の記憶領域に書き込み、
前記複製処理部は、前記第一の記憶装置が前記第四の記憶領域に書き込んだデータを前記第二の記憶装置に送信し、前記データを受信した前記第二の記憶装置が前記第二の記憶領域に前記データを書き込む処理である、第三の処理を開始すること、
を特徴とするストレージシステム。
【請求項１３】
請求項１１に記載のストレージシステムにおいて、
前記第一の記憶装置は、第四の記憶領域とディスク制御部とを備え、
前記第一の記憶装置のチャネル制御部は、前記第一の処理の実行中に前記第一の情報処理装置からデータの書き込み要求を受信し、
前記第一の記憶装置のディスク制御部は、前記データの書き込み要求の対象となるデータを前記第四の記憶領域に書き込み、
前記第一の記憶装置のチャネル制御部は、前記第一の情報処理装置からデータの読み出し要求を受信し、
前記第一の記憶装置のチャネル制御部は、前記データの読み出し要求の対象となるデータが前記第四の記憶領域に記憶されているかを判断し、
前記第一の記憶装置のチャネル制御部は、前記データの読み出し要求の対象となるデータが前記第四の記憶領域に記憶されていないと判断した場合には、前記第二の情報を参照して前記データの読み出し要求の対象となるデータが前記第三の記憶領域に記憶されているかを判断し、
前記第一の記憶装置のチャネル制御部は、前記データの読み出し要求の対象となるデータが前記第二の記憶領域に記憶されていると判断した場合には、前記データの読み出し要求の対象となるデータを前記第二の記憶装置に要求し、当該要求に応じた前記第二の記憶装置から送信されてくる前記データの読み出し要求の対象となるデータを受信し、前記データの読み出し要求の対象となるデータを前記第一の情報処理装置に送信すること、
を特徴とするストレージシステム。
【請求項１４】
請求項８に記載のストレージシステムにおいて、
前記第一の情報処理装置は、
前記第一の記憶装置に前記データの書き込み要求を送信する時刻を監視するタイマーと、
前記データの書き込み要求を前記第一の記憶装置に送信するとともに、当該送信時刻の情報を送信するプロセッサと、を備え、
前記第一の記憶装置は、
前記第一の情報処理装置から順次送信されてくる前記データの書き込み要求の対象となるデータをそれぞれ送信時刻の情報と対応づけて管理する前記チャネル制御部と、
前記第一の記憶領域に記憶されているデータを古いものから順に前記第二の記憶装置に送信する前記チャネル制御部と、を備える
ことを特徴とするストレージシステム。
【請求項１５】
第一の情報処理装置と、
前記第一の情報処理装置と通信可能に接続され、前記第一の情報処理装置とクラスタを構成する第二の情報処理装置と、
前記第一の情報処理装置と通信可能に接続され、前記第一の情報処理装置から送信されてくるデータの入出力要求に応じて第一の記憶領域に対してデータの書き込み／読み込みを行う他の記憶装置と、
前記第二の情報処理装置と通信可能に接続され、前記第二の情報処理装置から送信されてくるデータの入出力要求に応じて第二の記憶領域に対してデータの書き込み／読み込みを行う記憶装置と、を含み、
前記他の記憶装置と前記記憶装置とは通信可能に接続され、
前記他の記憶装置が前記第一の記憶領域に書き込んだデータの複製を前記記憶装置に送信し、前記データを受信した前記記憶装置が前記第二の記憶領域に前記データを書き込む処理である、第一の処理を実行する複製処理部を備えるストレージシステムの記憶装置であって、
前記記憶装置は、チャネル制御部を備え、
前記チャネル制御部は、前記第一の処理の実行中に前記第二の情報処理装置からフェールオーバする旨の通知を受信すると、前記第一の記憶領域に書き込んだデータの複製が前記記憶装置に未だ送信されておらず、前記データの複製が前記第二の記憶領域に描き込まれていないことを示す第一の情報を前記他の記憶装置に要求し、
前記チャネル制御部は、前記他の記憶装置から前記第一の情報を受信すると、前記第二の情報処理装置にデータ入出力要求を受け付けることができる旨を通知し、
前記チャネル制御部は、フェールオーバした前記第二の情報処理装置から送信されてくるデータの読み出し要求を受信すると前記第一の情報を参照し、前記データの読み出し要求の対象となるデータが前記第一の記憶領域に記憶されていると判断した場合には、前記他の記憶装置に前記データの読み出し要求の対象となるデータを要求し、当該要求に応じた前記他の記憶装置から送信されてくる前記データの読み出し要求の対象となるデータを前記第二の情報処理装置に送信すること、
を特徴とする記憶装置。
【請求項１６】
請求項１５に記載の記憶装置において、
第三の記憶領域とディスク制御部とを備え、
前記チャネル制御部は、前記第一の処理の実行中に前記第二の情報処理装置からデータの書き込み要求を受信し、
前記ディスク制御部は、前記データの書き込み要求の対象となるデータを前記第三の記憶領域に書き込み、
前記ディスク制御部は、前記第一の処理が終了した場合には、前記第三の記憶領域に書き込んだデータの複製を前記第二の記憶領域に書き込み、
前記チャネル制御部は、前記第三の記憶領域に書き込んだデータを前記他の記憶装置に送信すること、
を特徴とする記憶装置。
【請求項１７】
請求項１５に記載の記憶装置において、
第三の記憶領域とディスク制御部とを備え、
前記チャネル制御部は、前記第一の処理の実行中に前記第二の情報処理装置からデータの書き込み要求を受信し、
前記ディスク制御部は、前記データの書き込み要求の対象となるデータを前記第三の記憶領域に書き込み、
前記チャネル制御部は、前記第二の情報処理装置からデータの読み出し要求を受信し、
前記チャネル制御部は、前記データの読み出し要求の対象となるデータが前記第三の記憶領域に記憶されているかを判断し、
前記チャネル制御部は、前記データの読み出し要求の対象となるデータが前記第三の記憶領域に記憶されていないと判断した場合には、前記第一の情報を参照して前記データの読み出し要求の対象となるデータが前記第二の記憶領域に記憶されているかを判断し、
前記チャネル制御部は、前記データの読み出し要求の対象となるデータが前記第二の記憶領域に記憶されていないと判断した場合には、前記データの読み出し要求の対象となるデータを前記他の記憶装置に要求し、当該要求に応じた前記第一の記憶装置から送信されてくる前記データの読み出し要求の対象となるデータを受信すると、前記データの読み出し要求の対象となるデータを前記第二の情報処理装置に送信すること、
を特徴とするストレージシステム。
【請求項１８】
第一の情報処理装置と、
前記第一の情報処理装置と通信可能に接続され、前記第一の情報処理装置とクラスタを構成する第二の情報処理装置と、
前記第一の情報処理装置と通信可能に接続され、前記第一の情報処理装置から送信されてくるデータの入出力要求に応じて第一の記憶領域に対してデータの書き込み／読み込みを行う記憶装置と、
前記第二の情報処理装置と通信可能に接続され、前記第二の情報処理装置から送信されてくるデータの入出力要求に応じて第二の記憶領域に対してデータの書き込み／読み込みを行う他の記憶装置と、を含み、
前記記憶装置と前記他の記憶装置とは通信可能に接続され、
前記記憶装置が前記第一の記憶領域に書き込んだデータの複製を前記他の記憶装置に送信し、前記データを受信した前記他の記憶装置が前記第二の記憶領域に前記データを書き込む処理である、第一の処理を実行する複製処理部を備え、
前記他の記憶装置は、第三の記憶領域を備え、
前記他の記憶装置は、前記第一の処理の実行中に前記第二の情報処理装置からデータの書き込み要求を受信し、前記データの書き込み要求の対象となるデータを前記第三の記憶領域に書き込む、ストレージシステムの記憶装置であって、
前記記憶装置は、チャネル制御部を備え、
前記チャネル制御部は、記第一の処理の実行中に前記第一の情報処理装置からフェールバックする旨の通知を受信すると、前記第三の記憶領域に書き込んだデータが前記第一の記憶装置に未だ送信されておらず、前記データが前記第一の記憶領域に書き込まれていないことを示す第二の情報を前記第二の記憶装置に要求し、
前記チャネル制御部は、前記第二の記憶装置から前記第二の情報を受信すると、前記第一の情報処理装置にデータ入出力要求を受け付けることができる旨を通知し、
前記チャネル制御部は、フェールバックした前記第一の情報処理装置から送信されてくるデータの読み出し要求を受信すると、前記第二の情報を参照して前記データの読み出し要求の対象となるデータが前記第三の記憶領域に記憶されていると判断した場合には、前記第二の記憶装置に前記データの読み出し要求の対象となるデータを要求し、当該要求に応じた前記第二の記憶装置から送信されてくる前記データの読み出し要求の対象となるデータを前記第一の情報処理装置に送信すること、
を特徴とする記憶装置。
【請求項１９】
請求項１８に記載のストレージシステムにおいて、
前記記憶装置は、第四の記憶領域とディスク制御部とを備え、
前記チャネル制御部は、前記第一の処理の実行中に前記第一の情報処理装置からデータの書き込み要求を受信し、
前記ディスク制御部は、前記データの書き込み要求の対象となるデータを前記第四の記憶領域に書き込み、
前記チャネル制御部は、前記他の記憶装置から送信されてくる前記第三の記憶領域に書き込まれているデータを受信し、
前記ディスク制御部は、前記第三の記憶領域に書き込まれているデータを前記第一の記憶領域に書き込み、
前記ディスク制御部は、前記第三の記憶領域に書き込まれている全てのデータを書き込むと、前記第四の記憶領域に書き込んだデータの複製を前記第一の記憶領域に書き込み、
前記チャネル制御部は、前記第四の記憶領域に書き込んだデータを前記第二の記憶装置に送信すること、
を特徴とする記憶装置。
【請求項２０】
請求項１８に記載のストレージシステムにおいて、
前記記憶装置は、第四の記憶領域とディスク制御部とを備え、
前記チャネル制御部は、前記第一の処理の実行中に前記第一の情報処理装置からデータの書き込み要求を受信し、
前記ディスク制御部は、前記データの書き込み要求の対象となるデータを前記第四の記憶領域に書き込み、
前記チャネル制御部は、前記第一の情報処理装置からデータの読み出し要求を受信し、
前記チャネル制御部は、前記データの読み出し要求の対象となるデータが前記第四の記憶領域に記憶されているかを判断し、
前記チャネル制御部は、前記データの読み出し要求の対象となるデータが前記第四の記憶領域に記憶されていないと判断した場合には、前記第二の情報を参照して前記データの読み出し要求の対象となるデータが前記第三の記憶領域に記憶されているかを判断し、
前記チャネル制御部は、前記データの読み出し要求の対象となるデータが前記第二の記憶領域に記憶されていると判断した場合には、前記データの読み出し要求の対象となるデータを前記他の記憶装置に要求し、当該要求に応じた前記他の記憶装置から送信されてくる前記データの読み出し要求の対象となるデータを受信し、前記データの読み出し要求の対象となるデータを前記第一の情報処理装置に送信すること、
を特徴とする記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステムの制御方法、ストレージシステム、及び記憶装置に関する。
【背景技術】
【０００２】
ストレージシステムにおける災害復旧（ディザスタリカバリ）が注目されている。ディザスタリカバリを実現する技術として、複製元の記憶領域のデータの複製を複製先の記憶領域においても管理する技術（リモートコピー）が知られている（例えば、特許文献１〜３参照）。この技術により、複製元の記憶装置にアクセスする情報処理装置の障害時に、複製先の記憶装置のデータを使用することで、前記情報処理装置で行われていた処理を、複製先の記憶装置にアクセスする他の情報処理装置に引き継がせることができる。
【特許文献１】特開２００１−３３７９３９号公報
【特許文献２】米国特許出願公開第２００３／５１１１１号明細書
【特許文献３】米国特許第６５９１３５１号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、複製元の記憶装置にアクセスする情報処理装置から複製先の記憶装置にアクセスする情報処理装置への上記引き継ぎに際し、複製元の記憶装置から複製先の記憶装置へのデータのセットアップが完了していないことがある。この場合、上記セットアップが完了するまで複製先の記憶装置にアクセスする情報処理装置を待機させることとなり、場合によっては情報処理装置側でタイムアウトを生じるなど、スムーズな引き継ぎが行えないことがある。
【０００４】
本発明は、情報処理装置間での処理の引き継ぎをスムーズに行うことができる、ストレージシステムの制御方法、ストレージシステム、及び記憶装置を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明のストレージシステムの制御方法は、第一の情報処理装置と、前記第一の情報処理装置と通信可能に接続され、前記第一の情報処理装置とクラスタを構成する第二の情報処理装置と、前記第一の情報処理装置と通信可能に接続され、前記第一の情報処理装置から送信されてくるデータの入出力要求に応じて第一の記憶領域に対してデータの書き込み／読み込みを行う第一の記憶装置と、前記第二の情報処理装置と通信可能に接続され、前記第二の情報処理装置から送信されてくるデータの入出力要求に応じて第二の記憶領域に対してデータの書き込み／読み込みを行う第二の記憶装置と、を含み、前記第一の記憶装置と前記第二の記憶装置とは通信可能に接続され、前記第一の記憶装置は、前記第一の記憶領域に書き込んだデータの複製を第二の記憶装置に送信し、前記データを受信した前記第二の記憶装置は、前記第二の記憶領域に前記データを書き込む処理である、第一の処理の実行中に、前記第二の記憶装置は、前記第二の情報処理装置からフェールオーバする旨の通知を受信すると、前記第一の記憶領域に書き込んだデータの複製が前記第二の記憶装置に未だ送信されておらず、前記データの複製が前記第二の記憶領域に書き込まれていないことを示す第一の情報を前記第一の記憶装置に要求し、前記第二の記憶装置は、前記第一の記憶装置から前記第一の情報を受信すると、前記第二の情報処理装置にデータ入出力要求を受け付けることができる旨を通知し、前記第二の記憶装置は、フェールオーバした前記第二の情報処理装置から送信されてくるデータの読み出し要求を受信すると前記第一の情報を参照し、前記データの読み出し要求の対象となるデータが前記第一の記憶領域に記憶されていると判断した場合には、前記第一の記憶装置に前記データの読み出し要求の対象となるデータを要求し、当該要求に応じた前記第一の記憶装置から送信されてくる前記データの読み出し要求の対象となるデータを前記第二の情報処理装置に送信することとする。
【０００６】
その他、本願が開示する課題、及びその解決方法は、発明の実施の形態の欄、及び図面により明らかにされる。
【発明の効果】
【０００７】
本発明によれば、情報処理装置間の処理の引き継ぎをスムーズに行うことができる、ストレージシステムの制御方法、ストレージシステム、及び、記憶装置を提供することができる。
【発明を実施するための最良の形態】
【０００８】
図１は本発明の一実施例として説明するストレージシステム９０の全体構成のブロック図を示す。
【０００９】
ストレージシステム９０は、第一の情報処理装置１０と、これと通信可能に接続されている第二の情報処理装置２０と、第一の情報処理装置１０と通信可能に接続されている第一の記憶装置３０と、第二の情報処理装置２０と通信可能に接続されている第二の記憶装置４０とを含んで構成される。ストレージシステム９０は、例えば、銀行のオンラインや経理等の業務、商社、物流会社などにおける在庫管理、鉄道会社や航空会社における座席予約などに運用されるシステムである。このストレージシステム９０は、地震・火災・台風・落雷・テロなどに対するディザスタリカバリの実現のために構築される。
【００１０】
第一の記憶装置３０と第二の記憶装置４０は第一のネットワーク８０を介して通信可能に接続されている。第一のネットワーク８０は、例えば、ギガビットイーサネット（登録商標）、ＡＴＭ（AsynchroＮＯus Transfer Mode）、公衆回線などである。
【００１１】
情報処理装置１０，２０と記憶装置３０，４０とは第二のネットワーク５０，６０を介して通信可能に接続されている。第二のネットワーク５０，６０は、例えば、ＳＡＮ（Storage Area Network）である。ＳＡＮは、記憶装置３０，４０のディスクドライブが提供する記憶領域におけるデータの管理単位であるブロックを単位として情報処理装置１０，２０との間でデータの授受を行うためのネットワークである。なお、第二のネットワーク５０，６０は、ＬＡＮ（Local Area Network）や、ｉＳＣＳＩ（Internet Small Computer System Interface）、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ、ＥＳＣＯＮ（Enterprise Systems Connection）（登録商標）、ＦＩＣＯＮ（Fibre Connection）（登録商標）などであってもよい。
【００１２】
各情報処理装置１０，２０は第三のネットワーク７０を介して通信可能に接続されている。第三のネットワーク７０は、例えば、ＬＡＮ（Local Area Network）などである。
【００１３】
図２は記憶装置３０，４０の一例として説明するディスクアレイ装置の具体的な構成を示す。なお、記憶装置３０，４０は、ディスクアレイ装置以外にも、例えば、半導体記憶装置などであってもよい。
【００１４】
ディスクアレイ装置は、記憶制御装置１００とディスクドライブ１０８などを備えている。記憶制御装置１００は、チャネル制御部１０１、リモート通信インタフェース１０２、ディスク制御部１０３、共有メモリ１０４、キャッシュメモリ１０５、これらの間を通信可能に接続するクロスバスイッチなどで構成されるスイッチング制御部１０６などを備えて構成される。  
キャッシュメモリ１０５は、主としてチャネル制御部１０１とディスク制御部１０３との間で授受されるデータを一時的に記憶するために用いられる。
【００１５】
ディスク制御部１０３は、チャネル制御部１０１により共有メモリ１０４に書き込まれたデータの入出力要求を読み出してそのデータの入出力要求に指定されているコマンド（例えば、ＳＣＳＩ（Small Computer System Interface）規格のコマンド）に従ってディスクドライブ１０８にデータの書き込みや読み出しなどの処理を実行する。ディスク制御部１０３は、ディスクドライブ１０８をいわゆるＲＡＩＤ（Redundant Array of Inexpensive Disks）方式に規定されるＲＡＩＤレベル（例えば、０，１，５）で制御する機能を備えることもある。
【００１６】
ディスクドライブ１０８は、例えば、ハードディスク装置である。ディスクドライブ１０８はディスクアレイ装置と一体型とすることもできるし、別体とすることもできる。ディスクドライブ１０８により提供される記憶領域は、物理ボリューム又はその物理ボリューム上に論理的に設定される論理ボリュームを単位として管理されている。ディスクドライブ１０８へのデータの書き込みや読み出しは、論理ボリュームに付与される識別子を指定して行なうことができる。
【００１７】
管理端末１０７はディスクアレイ装置やディスクドライブ１０８を保守・管理するためのコンピュータである。例えば、チャネル制御部１０１やディスク制御部１０３において実行されるソフトウエアやパラメータの変更や、ディスクドライブ１０８の構成の設定や、論理ボリュームの管理又は設定（容量管理や容量拡張・縮小、情報処理装置１０，２０の割り当て等）等は、管理端末１０７からの指示により行われる。管理端末１０７はディスクアレイ装置に内蔵される形態とすることもできるし、別体とすることもできる。
【００１８】
リモート通信インタフェース１０２は、他の記憶装置３０，４０とデータ伝送をするための通信インタフェース（チャネルエクステンダ）であり、後述するリモートコピーにおける複製データの伝送はこのリモート通信インタフェース１０２を介して行われる。リモート通信インタフェース１０２は、チャネル制御部１０１のインタフェース（例えば、Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ、ＥＳＣＯＮ（登録商標）、ＦＩＣＯＮ（登録商標）などのインタフェース）を第一のネットワーク８０の通信方式に変換する。これにより他の記憶装置３０，４０との間でのデータ伝送が実現される。
【００１９】
なお、ディスクアレイ装置は、以上に説明した構成のもの以外にも、例えば、ＮＦＳ（Network File System）などのプロトコルにより情報処理装置１０，２０からファイル名指定によるデータ入出力要求を受け付けるように構成されたＮＡＳ（Network Attached Storage）として機能するものなどであってもよい。
【００２０】
共有メモリ１０４はチャネル制御部１０１とディスク制御部１０３の両方からアクセスが可能である。データ入出力要求コマンドの受け渡しに利用される他、記憶装置３０，４０やディスクドライブ１０８の管理情報等が記憶される。
【００２１】
図３は本実施の形態に係る情報処理装置１０，２０の構成の一例を示すブロック図である。  
情報処理装置１０，２０は、ＣＰＵ（プロセッサ）１１０、メモリ１２０、ポート１３０、記憶装置１４０、記録媒体読取装置１６０、入力装置１７０、出力装置１８０、タイマー２００などを備える。
【００２２】
ＣＰＵ１１０は情報処理装置１０，２０の全体の制御を司るものであり、メモリ１２０に格納されたプログラムを実行することにより各種機能を実現し、後述する情報処理装置１０，２０の処理を行う。例えば上述した銀行の自動預金預け払いシステムを実現するための機能や航空機の座席予約システムを実現するための機能等である。  
記録媒体読取装置１６０は、記録媒体１９０に記録されているプログラムやデータを読み取るための装置である。読み取られたプログラムやデータはメモリ１２０や記憶装置１４０に格納される。記録媒体１９０としてはフレキシブルディスクやＣＤ−ＲＯＭ、半導体メモリ等を用いることができる。記録媒体読取装置１６０は情報処理装置１０，２０に内蔵されている形態とすることもできるし、外付されている形態とすることもできる。  
入力装置１７０はオペレータ等による情報処理装置１０，２０へのデータ入力等のために用いられる。入力装置１７０は、例えばキーボードやマウス等である。出力装置１８０は情報を外部に出力するための装置である。出力装置１８０は、例えばディスプレイやプリンタ等である。ポート１３０は記憶装置３０，４０と通信を行うための装置である。また他の情報処理装置１０，２０との間で通信を行うために使用することもできる。従って、情報処理装置１０，２０は、メモリ１２０や記憶装置１４０に格納されているプログラムやデータを、ポート１３０を介して他の情報処理装置１０，２０から受信して、メモリ１２０に格納するようにすることもできる。  
タイマー２００は、本実施の形態におけるいくつかの処理を行う時間を監視している。タイマー２００は、例えば、ハードウエアのタイマーや、ソフトウエアのタイマーなどである。このタイマー２００により、情報処理装置１０，２０はあらかじめ設定された時間内にデータの処理やデータの伝送が終わらないときにタイムアウト異常が発生したと判断して、処理や通信を打ち切って回復処理を実行することが可能となる。従って、タイムアウトを放置することにより起こるシステムダウンを防止することができるようになる。バス１５０はこれらの構成を相互に接続する。
【００２３】
図４は本実施の形態に係るチャネル制御部１０１の構成の一例を示すブロック図である。  
チャネル制御部１０１は、ＣＰＵ２１１、キャッシュメモリ２１２、制御メモリ２１３、ポート２１５、バス２１６などを備えている。
【００２４】
ＣＰＵ２１１は、チャネル制御部１０１の全体の制御を司るものであり、制御メモリ２１３に格納されたプログラムを実行することにより、後述するチャネル制御部１０１の各処理を行う。制御メモリ２１３に格納された制御プログラム（複製処理部）２１４は、各記憶装置３０，４０のＣＰＵ２１１によって実行されることにより、後述するリモートコピーを実行する。キャッシュメモリ２１２は情報処理装置１０，２０との間で授受されるデータやコマンド等を一時的に格納するためのメモリである。ポート２１５は情報処理装置１０，２０との間の通信や他の記憶装置３０，４０との間の通信を行うための通信インタフェースである。バス２１６はこれらの構成を相互に接続する。
【００２５】
図５は本発明の一実施例として説明するストレージシステムの概略構成を示す図である。
【００２６】
第一の情報処理装置１０と第二の情報処理装置２０には、高可用性（High Availability）を図ることを目的としてクラスタ３１０を実現するためのハードウエアやソフトウエアなどが導入されている。本実施の形態においてクラスタとは、主にフェールオーバ型クラスタを意味する。フェールオーバ型クラスタを構成するとは、２台あるいはそれ以上の情報処理装置を同時に動作させ、１台を主（プライマリ）として、他の情報処理装置を副（セカンダリ）として利用し、何らかの原因で主の情報処理装置において障害が発生した時に、他の情報処理装置が主の情報処理装置で行っていた処理を引き継ぐように構成することをいう。この情報処理装置１０，２０のクラスタ３１０により、情報処理装置１０，２０は、他の情報処理装置１０，２０の障害を第三のネットワーク７０を介して互いに監視することが可能になっている。また、情報処理装置１０，２０のクラスタ３１０により、情報処理装置１０，２０は、他の情報処理装置１０，２０の障害を検知すると他の情報処理装置１０，２０で行っていた処理３００を引き継ぐ（フェールオーバする）ことが可能になっている。また、情報処理装置１０，２０のクラスタ３１０により、第一の情報処理装置１０の障害が復旧したと判断した場合には、第一の情報処理装置１０は、第二の情報処理装置２０で行っていた処理３００を引き継ぐ（フェールバックする）ことが可能になっている。なお、第一の情報処理装置１０が第二の情報処理装置２０の障害を検知した場合や、管理端末１０７からフェールバック要求があった場合などにフェールバックするように設定してもよい。
【００２７】
情報処理装置１０，２０は、エージェント３２０により記憶装置３０，４０に対してデータの読み出し要求やデータの書き込み要求を送信することができ、記憶装置３０，４０から読み出しデータやデータの書き込み完了通知を受信することができる。
【００２８】
第一の記憶装置３０は、差分管理テーブル１（４００）、第一の記憶領域４１１などを備えている。第二の記憶装置４０は、第二の記憶領域４１２などを備えている。
【００２９】
差分管理テーブル１（４００）は、第一の記憶領域４１１に書き込んだデータの複製が第二の記憶装置４０に未だ送信されておらず、データの複製が第二の記憶領域４１２に書き込まれていないことを示す情報である。なお、第二の記憶装置４０の差分管理テーブル１（４００）はフェールオーバ時に第一の記憶装置３０から送信されてくるものである。差分管理テーブル２（４０１）は、第三の記憶領域４１３に書き込んだデータが第一の記憶装置３０に未だ送信されておらず、データが第一の記憶領域４１１に書き込まれていないことを示す情報である。差分管理テーブル２（４０１）は、第二の記憶装置４０にあらかじめ持たせることとしてもよいし、フェールオーバ時に作成させるようにしてもよい。なお、第一の記憶装置３０の差分管理テーブル２（４０１）はフェールバック時に第二の記憶装置４０から送信されてくるものである。これらの差分管理テーブル１，２（４０１，４０１）により、記憶装置３０，４０は後述するリモートコピーを行う際に、他の記憶装置３０，４０に未転送のデータがあるかどうかを判断することができる。また、差分管理テーブル１，２（４００，４０１）により、記憶装置３０，４０のチャネル制御部１０１はどのブロックのデータがどの記憶装置に存在するかを把握することができるようになる。
【００３０】
図６に差分管理テーブル１，２（４００，４０１）の一例を示す。差分管理テーブル１，２（４００，４０１）のビット値の欄には、「１」又は「０」が記録されている。「１」が記録されている場合には、そのブロックには他の記憶装置３０，４０に未転送のデータがあることを意味する。一方、「０」が記録されている場合には、そのブロックには他の記憶装置３０，４０に未転送のデータがないことを意味する。なお、セットアップ時には、差分管理テーブル１，２（４００，４０１）のビット値の欄は全て「０」が記録されている。本実施の形態においては、差分管理テーブル１，２（４００，４０１）は、共有メモリ１０４に記憶されていることとしているが、記憶領域４１１〜４１４などに記憶されていることとしてもよい。
【００３１】
第一の記憶領域４１１は、第一の情報処理装置１０又は第二の記憶装置４０から送信されてくるデータの書き込み要求に応じてそのデータを記憶するためのものである。第四の記憶領域４１４は予備の記憶領域である。第二の記憶領域４１２は、第二の情報処理装置２０又は第一の記憶装置３０から送信されてくるデータの書き込み要求に応じてそのデータを記憶するためのものである。第三の記憶領域４１３は予備の記憶領域である。なお、本実施の形態においては、記憶領域４１１〜４１４の容量は全て同じサイズに設定されていることとするが、これらに限定されるものではない。
【００３２】
次に、記憶装置３０，４０が情報処理装置１０，２０からデータの入出力要求を受信した場合に記憶装置３０，４０において行われる処理を説明する。チャネル制御部１０１は、情報処理装置１０，２０から送信されてくるデータの書き込み要求を受信すると、データの書き込み要求のコマンド（以下、「データの書き込みコマンド」と称する）を共有メモリ１０４に記憶するとともに、このデータの書き込み要求の対象となるデータ（以下、「書き込みデータ」と称する）をキャッシュメモリ１０５に記憶する。ディスク制御部１０３は、リアルタイムに共有メモリ１０４の内容を監視している。ディスク制御部１０３は、この監視により共有メモリ１０４にデータの書き込みコマンドが書き込まれていることを検知すると、キャッシュメモリ１０５から書き込みデータを読み出し、データの書き込みコマンドに指定されたアドレス（ブロック番号）に基づいて、その書き込みデータを記憶領域４１１〜４１４に書き込む。
【００３３】
ディスク制御部１０３は、記憶領域４１１〜４１４にデータの書き込みが完了すると、その旨をチャネル制御部１０１に通知する。チャネル制御部１０１は、データの書き込み完了通知を受信すると、情報処理装置１０，２０に対してデータの書き込み完了通知を送信する。
【００３４】
チャネル制御部１０１は、ディスク制御部１０３から前記通知を受領すると、チャネル制御部１０１は、当該データを書き込んだブロック番号に基づいて、差分管理テーブル１（４００）のビット値の欄を「１」に更新する。なお、ビット値の欄の更新は、ディスク制御部１０３が行うこととしてもよい。そして、チャネル制御部１０１は、キャッシュメモリ１０５に記憶されている読み出しデータを情報処理装置１０，２０に送信する。
【００３５】
一方、チャネル制御部１０１が、情報処理装置１０，２０から送信されてくるデータの読み出し要求を受信すると、データの読み出し要求のコマンド（以下、「データの読み出しコマンド」と称する）をディスク制御部１０３に送出する。なお、チャネル制御部１０１からディスク制御部１０３へのデータの読み出しコマンドの伝達は、共有メモリ１０４を介して行われてもよい。
【００３６】
ディスク制御部１０３は、チャネル制御部１０１からデータの読み出しコマンドを受領すると、データの読み出しコマンドにより指定されたアドレスに基づいて、その読み出し対象のデータ（以下、「読み出しデータ」と称する）を記憶領域４１１〜４１４から読み出す。そして、この読み出したデータをキャッシュメモリ１０５に書き込む。ディスク制御部１０３は、キャッシュメモリ１０５へのデータの転送が完了すると、その旨をチャネル制御部１０１に通知する。
【００３７】
なお、上述のように、本実施の形態に係るストレージシステム９０においては第一の情報処理装置１０と第一の記憶装置３０との間でデータの授受を行っているが、バックグラウンドでは、第一の記憶装置３０のデータの複製を第二の記憶装置４０においても管理する処理（リモートコピー）が行われている。このリモートコピーにより、対応づけられている記憶領域４１１，４１２間の内容が一致することとなり、データの冗長管理が可能となる。以下、リモートコピーについて説明する。
【００３８】
＝＝＝リモートコピー＝＝＝
図７は本実施の形態に係る、第一の記憶装置（複製元の記憶装置）３０から第二の記憶装置（複製先の記憶装置）４０へのリモートコピーに関する処理を説明するフローチャートである。
【００３９】
第一の記憶装置３０のチャネル制御部１０１は、第一の情報処理装置１０にデータの書き込み完了通知を送信した後に、共有メモリ１０４に記録されている差分管理テーブル１（４００）を参照して、第二の記憶装置４０に未転送のデータの書き込み要求を送信する（Ｓ７００）。なお、このデータの書き込みコマンドに指定されるアドレスは、送信する書き込みデータが記憶されている第一の記憶領域４１１のブロック番号が記録される。  
第二の記憶装置４０のチャネル制御部１０１は、データの書き込み要求を第一の記憶装置３０から受信すると（Ｓ７０１）、ディスク制御部１０３はデータの書き込みコマンドに従って第二の記憶領域４１２に書き込みデータを書き込む（Ｓ７０２）。第二の記憶装置４０のチャネル制御部１０１は、第二の記憶領域４１２にデータの書き込みが完了すると、第一の記憶装置３０にデータの書き込み完了通知を送信する（Ｓ７０３）。  
第一の記憶装置３０のチャネル制御部１０１は、データの書き込み完了通知を受信すると（Ｓ７０４）、データの書き込み要求に指定されたブロック番号に基づいて、そのブロックに対応する差分管理テーブル１（４００）のビット値を「１」から「０」に更新する。なお、この更新はディスク制御部１０３が行うこととしてもよい。  
次に、第一の記憶装置３０のチャネル制御部１０１は、更新した差分管理テーブル１（４００）を参照して、第二の記憶装置４０に未転送のデータがあるか否かを判断する（Ｓ７０５）。第一の記憶装置３０のチャネル制御部１０１は、第二の記憶装置４０に未転送のデータが存在すると判断した場合（Ｓ７０５；ＹＥＳ）には（Ｓ７００）に進む。一方、第一の記憶装置３０のチャネル制御部１０１は、第二の記憶装置４０に未転送のデータが存在しないと判断した場合（Ｓ７０５；ＮＯ）には処理を終了する。
【００４０】
以上のように、第一の記憶装置３０は第一の記憶領域４１１に記憶したデータの複製を第二の記憶装置４０に送信し、これを受信した第二の記憶装置４０は第二の記憶領域４１２に前記データの複製を記憶する処理（以下、「第一の処理」と称する）によって、第一の記憶領域４１１と第二の記憶領域４１２との内容を一致させることが可能となり、データを冗長管理することが可能となる。
【００４１】
なお、フェールオーバした後に第一の処理が終了した場合には、まず、第二の記憶装置４０のディスク制御部１０３が第三の記憶領域４１３に記憶されているデータの複製を全て第二の記憶領域４１２に書き込む処理が行われる。そして、上述の（Ｓ７００）〜（Ｓ７０５）に準じた処理がなされることとなる。なお、（Ｓ７００）では、第二の記憶装置４０のチャネル制御部１０１が、差分管理テーブル２（４０１）を参照して、第一の記憶装置３０に未転送のデータの書き込み要求を送信することとなる。
【００４２】
このように、第二の記憶装置４０は第三の記憶領域４１３に記憶したデータを第一の記憶装置に送信し、これを受信した第一の記憶装置３０は第一の記憶領域４１１に前記データを記憶する処理（以下、「第二の処理」と称する）によって、第一の記憶領域４１１と第二の記憶領域４１２との内容を一致させることが可能となる。
【００４３】
また、フェールバックした後に第二の処理が終了した場合には、まず、第一の記憶装置３０のディスク制御部１０３が第四の記憶領域４１４に記憶されているデータの複製を全て第一の記憶領域４１１に書き込む処理が行われる。そして、上述の（Ｓ７００）〜（Ｓ７０５）に準じた処理がなされることとなる。なお、（Ｓ７００）では、第一の記憶装置３０のチャネル制御部１０１は、差分管理テーブル３を参照して、第二の記憶装置４０に未転送のデータの書き込み要求を送信することとなる。差分管理テーブル３は、第四の記憶領域４１４に書き込んだデータが第二の記憶装置４０に未だ送信されておらず、データが第二の記憶領域４１２に書き込まれていないことを示す情報である。差分管理テーブル３は、第一の記憶装置３０にあらかじめ持たせることとしてもよいし、フェールバック後のフェールオーバ時に作成させるようにしてもよい。第一の記憶装置３０の差分管理テーブル３はフェールバック後のフェールバック時に第一の記憶装置３０から第二の記憶装置４０に送信される。この差分管理テーブル３により、第二の記憶装置４０はリモートコピーを行う際に、第一の記憶装置３０に未転送のデータがあるかどうかを判断することができる。また、差分管理テーブル３により、第一の記憶装置４０のチャネル制御部１０１はどのブロックのデータがどの記憶装置に存在するかを把握することができるようになる。なお、差分管理テーブル３は、差分管理テーブル１，２（４００，４０１）と同様の情報が記録されている。
【００４４】
このように、第一の記憶装置３０は第四の記憶領域４１４に記憶したデータを第二の記憶装置４０に送信し、これを受信した第二の記憶装置４０は第二の記憶領域４１２に前記データを記憶する処理（以下、「第三の処理」と称する）によって、第一の記憶領域４１１と第二の記憶領域４１２との内容を一致させることが可能となる。
【００４５】
＝＝＝第一の情報処理装置に障害が発生した場合の処理＝＝＝
次に、図８を用いて第二の情報処理装置２０が第一の情報処理装置１０の障害を検知した場合の処理の一例を説明する。  
第二の情報処理装置２０が第一の情報処理装置１０の障害を検知すると（Ｓ８００）、第二の情報処理装置２０は第二の記憶装置４０にフェールオーバする旨の通知を行う（Ｓ８０１）。  
第二の記憶装置４０のチャネル制御部１０１は、第二の情報処理装置２０からフェールオーバする旨の通知を受信すると（Ｓ８０２）、第一の記憶装置３０に差分管理テーブル１（４００）を要求する（Ｓ８０３）。  
第一の記憶装置３０のチャネル制御部１０１は、第二の記憶装置４０から差分管理テーブル１（４００）の要求を受信すると（Ｓ８０４）、共有メモリ１０４に記憶されている差分管理テーブル１（４００）の複製を第二の記憶装置４０に送信する（Ｓ８０５）。  
第二の記憶装置４０のチャネル制御部１０１は、第一の記憶装置３０から差分管理テーブル１（４００）を受信すると（Ｓ８０６）、共有メモリ１０４に差分管理テーブル１（４００）を記憶する（Ｓ８０７）。そして、第二の記憶装置４０のチャネル制御部１０１はデータ入出力要求を受け付けることができる旨を第二の情報処理装置２０に通知する（Ｓ８０８）。  
第二の情報処理装置２０は、第二の記憶装置４０からデータ入出力要求を受け付けることができる旨の通知を受信すると（Ｓ８０９）、第一の情報処理装置１０で行っていた処理を引き継ぎ（フェールオーバする）（Ｓ８１０）、処理を終了する。その後、第二の情報処理装置２０は第二の記憶装置４０にデータ入出力要求を送信し、第二の記憶装置４０は第二の情報処理装置２０から送信されてくるデータ入出力要求に応じてデータを処理することとなる。
【００４６】
なお、本実施の形態においては、第二の情報処理装置２０が第一の情報処理装置１０の障害を検知した場合の処理について説明したが、フェールバックする場合にも（Ｓ８０１）〜（Ｓ８１０）に準じた処理がなされる。なお、フェールバックする旨の通知は、例えば、第一の情報処理装置１０の障害が復旧した後に行われる。
【００４７】
また、本実施の形態においては、フェールオーバする前に第二の記憶装置４０が第一の記憶装置３０から差分管理テーブル１（４００）を受信することとしているが、フェールオーバ後に第二の記憶装置４０が第一の記憶装置３０から差分管理テーブル１（４００）を受信することとしてもよい。
【００４８】
また、本実施例の形態においては、フェールオーバする旨の通知を受信すると、（Ｓ８０３）〜（Ｓ８１０）の処理を行うこととしているが、最初のデータ入出力要求を情報処理装置１０，２０から受信した場合に（Ｓ８０３）〜（Ｓ８１０）の処理を行うこととしてもよい。
【００４９】
また、本実施の形態においては、第二の情報処理装置２０が第一の情報処理装置１０の障害を監視することとしているが、第一の記憶装置３０が第一の情報処理装置１０の障害を監視することとしてもよい。この場合には、第一の記憶装置３０が第一の情報処理装置１０の障害を検知すると、第一の記憶装置３０は差分管理テーブル１（４００）を第二の記憶装置４０に送信し、第二の記憶装置４０は第二の情報処理装置２０にデータ入出力要求を受け付けることができる旨を送信することができるようにしてもよい。これにより、第二の情報処理装置２０はフェールオーバを実行し、データ入出力要求を第二の記憶装置４０に送信することができるようになる。
【００５０】
また、本実施の形態においては、記憶装置３０，４０が他の記憶装置３０，４０に差分管理テーブル１，２（４００，４０１）を要求することにより、記憶装置３０，４０が受信することとしているが、記憶装置３０，４０が管理テーブル１，２（４００，４０１）を更新する度にそれを他の記憶装置３０，４０に送信することとしてもよい。なお、記憶装置３０，４０から他の記憶装置３０，４０に送信される管理テーブル１，２（４００，４０１）は、情報処理装置１０，２０を経由して送信されることとしてもよい。また、記憶装置３０，４０は、上記差分管理テーブル１，２（４００，４０１）の代わりにデータの書き込み要求で情報処理装置１０，２０が指定したアドレス（ブロック番号）の情報を他の記憶装置３０，４０に送信することとしてもよい。
【００５１】
以上の仕組みによれば、情報処理装置１０，２０は、フェールオーバ又はフェールバックする時に行われる処理（複製先の記憶領域４１１，４１２の内容と複製元の記憶領域４１２，４１１の内容とを一致させる処理）を待つことにより生じるタイムアウトを回避することができ、情報処理装置１０，２０間の処理の引き継ぎをスムーズに行うことができる。また、ストレージシステムの運用を円滑に行うことが可能となり、ストレージシステムの信頼性や可用性の向上を図ることが可能となる。
【００５２】
＝＝＝データの書き込み要求を受信した場合の処理＝＝＝
次に、図９を用いてフェールオーバ後に第二の記憶装置４０が第二の情報処理装置２０からデータの書き込み要求を受信した場合の処理の一例を説明する。
【００５３】
第二の記憶装置４０のチャネル制御部１０１は、第二の情報処理装置２０からデータの書き込み要求を受信すると（Ｓ９００）、差分管理テーブル１（４００）を参照して差分管理テーブル１（４００）のビット値が全て「０」であるか否かを判断する（Ｓ９０１）。第二の記憶装置４０のチャネル制御部１０１が差分管理テーブル１（４００）のビット値が全て「０」ではないと判断した場合（Ｓ９０１；ＮＯ）には、（Ｓ９０４）へ進む。一方、第二の記憶装置４０のチャネル制御部１０１が差分管理テーブル１（４００）のビット値が全て「０」であると判断した場合（Ｓ９０１；ＹＥＳ）には、（Ｓ９０２）に進む。
【００５４】
（Ｓ９０２）では、第二の記憶装置４０のチャネル制御部１０１が、第三の記憶領域４１３に記憶したデータを第二の記憶領域４１２に記憶したか否かを判断する（Ｓ９０３）。第二の記憶装置４０のチャネル制御部１０１が第三の記憶領域４１３に記憶した全てのデータの複製を第二の記憶領域４１２に記憶していないと判断した場合（Ｓ９０２；ＮＯ）には、（Ｓ９０４）へ進む。一方、第二の記憶装置４０のチャネル制御部１０１が第三の記憶領域４１３に記憶した全てのデータの複製を第二の記憶領域４１２に記憶したと判断した場合（Ｓ９０２；ＹＥＳ）には、第二の記憶装置４０のチャネル制御部１０１は、データの書き込みコマンドを共有メモリ１０４に記憶するとともに、この書き込みデータをキャッシュメモリ１０５に記憶する。ディスク制御部１０３は、共有メモリ１０４にデータの書き込みコマンドが書き込まれていることを検知すると、キャッシュメモリ１０５から書き込みデータを読み出し、データの書き込みコマンドに指定されたブロック番号に基づいて、第二の記憶領域４１２に書き込みデータを書き込む（Ｓ９０３）。
【００５５】
（Ｓ９０４）では、（Ｓ９０３）と同様に第二の記憶装置４０のディスク制御部１０３が第三の記憶領域４１３に書き込みデータを書き込む。  
第二の記憶装置４０のディスク制御部１０３は、記憶領域４１２，４１３にデータの書き込みが完了すると（Ｓ９０３，Ｓ９０４）、その旨を第二の記憶装置４０のチャネル制御部１０１に通知する。第二の記憶装置４０のチャネル制御部１０１は、データの書き込み完了通知を受信すると、データの書き込み要求に指定されたブロック番号に基づいて、差分管理テーブル２のブロック番号のビット値の欄を「１」に更新する（Ｓ９０５）。そして、第二の記憶装置４０のチャネル制御部１０１は、第二の情報処理装置２０にデータの書き込みが完了した旨を通知し（Ｓ９０６）、処理を終了する。
【００５６】
なお、本実施の形態においては、（Ｓ９０４）においてデータの書き込み要求の対象となるデータを第三の記憶領域４１３に記憶することとしたが、第二の記憶装置４０のチャネル制御部１０１は第一の記憶装置３０にデータの書き込み要求を転送し、第一の記憶装置３０のチャネル制御部１０１が前記データの書き込み要求に応じてそのデータを第一の記憶領域４１１に記憶することとしてもよい。この場合には、第一の記憶装置３０のチャネル制御部１０１は、データの書き込みが完了した後に、データの書き込み要求に指定されたブロック番号に基づいて、差分管理テーブル１（４００）のビット値の欄を「１」に更新することとなる。また、第二の記憶装置４０のチャネル制御部１０１も、第一の記憶装置３０からデータの書き込みが完了した旨の通知を受信した場合に、データの書き込み要求に指定されたブロック番号に基づいて、差分管理テーブル１（４００）のビット値の欄を「１」に更新することとなる。
【００５７】
なお、上述したように、第一の処理が終了した場合には、第二の記憶装置４０のディスク制御部１０３が第三の記憶領域４１３に記憶されているデータの複製を第二の記憶領域４１２に記憶し、その後、第二の処理が開始される。このような手順で処理させることにより、第二の記憶領域４１２に最新のデータを確保させることができ、また、第一の記憶領域４１１においても最新のデータを冗長管理させることが可能となる。
【００５８】
本実施の形態においては、フェールオーバした後の処理について説明したが、フェールバックした後も（Ｓ９００）〜（Ｓ９０６）に準じた処理がなされる。この場合において、（Ｓ９０２）の「第三の記憶領域４１３」は「第四の記憶領域４１４」とし、（Ｓ９０５）の「差分管理テーブル２（４０１）」は「差分管理テーブル３」とする。差分管理テーブル３は、第四の記憶領域４１４に書き込んだデータの複製が第二の記憶装置４０に未だ送信されておらず、データの複製が第二の記憶領域４１２に書き込まれていないことを示す情報である。差分管理テーブル３は、フェールバックする時に第一の記憶装置３０のチャネル制御部１０１により、新たに作成されて共有メモリ１０４に記憶される。
【００５９】
なお、第一の処理の実行中にフェールバックした場合にも、（Ｓ９００）〜（Ｓ９０６）に準じた処理がなされる。バックグラウンドでは、上述したように、第一の処理が終了した後に、第二の記憶装置４０のディスク制御部１０３が第三の記憶領域４１３に記憶されているデータの複製を第二の記憶領域４１２に記憶する。そして、第二の処理が開始され、第二の処理が終了すると、第一の記憶装置３０のディスク制御部１０３が第四の記憶領域４１４に記憶されているデータの複製を第一の記憶領域４１１に記憶する。その後、第三の処理が開始されることとなる。このような手順で処理することにより、最新のデータを確保することができ、最新のデータを冗長管理することができるようになる。
【００６０】
＝＝＝データの読み出し要求を受信した場合の処理＝＝＝
次に、図１０を用いてフェールオーバ後に第二の記憶装置４０が第二の情報処理装置２０からデータの読み出し要求を受信した場合の処理の一例を説明する。
【００６１】
第二の記憶装置４０のチャネル制御部１０１は、第二の情報処理装置２０からデータの読み出し要求を受信すると（Ｓ１０００）、第三の記憶領域４１３にデータの読み出しコマンドに指定されたデータがあるか否かを判断する（Ｓ１００１）。この判断は、例えば、差分管理テーブル２（４０１）を参照することにより行うことができる。第二の記憶装置４０のチャネル制御部１０１が第三の記憶領域４１３にデータの読み出しコマンドに指定されたデータがあると判断した場合（Ｓ１００１；ＹＥＳ）には、（Ｓ１００８）へ進む。一方、第二の記憶装置４０のチャネル制御部１０１が第三の記憶領域４１３にデータの読み出しコマンドに指定されたデータがないと判断した場合（Ｓ１００１；ＮＯ）には、第二の記憶装置４０のチャネル制御部１０１は第二の記憶領域４１２にデータの読み出しコマンドに指定されたデータがあるか否かを判断する（Ｓ１００２）。この判断は、例えば、差分管理テーブル１（４００）を参照することにより行うことができる。なお、上述の手順で判断することにより、第二の記憶装置４０は、最新のデータが何処にあるかを判断することが可能となる。
【００６２】
（Ｓ１００２）において、第二の記憶装置４０のチャネル制御部１０１が第二の記憶領域４１２にデータの読み出しコマンドに指定されたデータがあると判断した場合（Ｓ１００２；ＹＥＳ）には、（Ｓ１００９）に進む。一方、第二の記憶装置４０のチャネル制御部１０１が第二の記憶領域４１２にデータの読み出しコマンドに指定されたデータがないと判断した場合（Ｓ１００２；ＮＯ）には、第二の記憶装置４０のチャネル制御部１０１は、第一の記憶装置３０にデータの読み出し要求を送信する（Ｓ１００３）。
【００６３】
第一の記憶装置３０のチャネル制御部１０１は第二の記憶装置４０からデータの読み出し要求を受信すると（Ｓ１００４）、データの読み出しコマンドをディスク制御部１０３に送出する。ディスク制御部１０３は、チャネル制御部１０１からデータの読み出しコマンドを受領すると、データの読み出しコマンドにより指定されたブロック番号に基づいて、その読み出しデータを第一の記憶領域４１１から読み出す（Ｓ１００５）。そして、この読み出したデータをキャッシュメモリ１０５に書き込む。ディスク制御部１０３は、キャッシュメモリ１０５へのデータの転送が完了すると、その旨をチャネル制御部１０１に通知する。第二の記憶装置４０のチャネル制御部１０１は、ディスク制御部１０３から前記通知を受領すると、キャッシュメモリ１０５に記憶されている読み出しデータを第二の記憶装置４０に送信する（Ｓ１００６）。
【００６４】
第二の記憶装置４０のチャネル制御部１０１は、第一の記憶装置３０から読み出しデータを受信すると（Ｓ１００７）、第二の情報処理装置２０に読み出しデータを送信し（Ｓ１０１０）、処理を終了する。
【００６５】
（Ｓ１００８）では、ディスク制御部１０３が第二の記憶装置３０のチャネル制御部１０１からデータの読み出しコマンドを受領すると、ディスク制御部１０３はデータの読み出しコマンドにより指定されたブロック番号に基づいて、第三の記憶領域４１３から読み出しデータを読み出す。そして、第二の記憶装置４０のチャネル制御部１０１は第二の情報処理装置２０に読み出しデータを送信し（Ｓ１０１０）、処理を終了する。
【００６６】
（Ｓ１００９）では、（Ｓ１００８）と同様にディスク制御部１０３が第二の記憶領域４１２から読み出しデータを読み出す。そして、第二の記憶装置４０のチャネル制御部１０１は第二の情報処理装置２０に読み出しデータを送信し（Ｓ１０１０）、処理を終了する。
【００６７】
本実施の形態においては、フェールオーバした後の処理について説明したが、フェールバックした後も（Ｓ１０００）〜（Ｓ１００６）に準じた処理がなされる。この場合において、（Ｓ１００１）では、第一の記憶装置３０のチャネル制御部１０１が、第四の記憶領域４１４にデータの読み出しコマンドに指定されたデータがあるか否かを判断する。この判断は、例えば、差分管理テーブル３を参照することにより行うことができる。また、（Ｓ１００２）では、第一の記憶装置３０のチャネル制御部１０１が、第三の記憶領域４１３にデータの読み出しコマンドに指定されたデータがあるか否かを判断する。この判断は、例えば、差分管理テーブル３を参照することにより行うことができる。  
なお、第三の記憶領域４１３にデータの読み出しコマンドに指定されたデータがあると判断した場合（Ｓ１００２；ＹＥＳ）には、第一の記憶装置３０のチャネル制御部１０１は第二の記憶装置４０にデータの読み出し要求を送信することとなる（Ｓ１００３）。一方、第三の記憶領域４１３にデータの読み出しコマンドに指定されたデータがないと判断した場合（Ｓ１００２；ＮＯ）には、第一の記憶装置３０のチャネル制御部１０１は第一の記憶領域４１１からデータを読み出すこととなる（Ｓ１００９）。なお、第一の処理の実行中にフェールバックした場合にも同様の処理が行われることとなる。
【００６８】
以上のような手順で判断することにより、記憶装置３０，４０は、最新のデータが何処にあるかを判断することが可能となる。また、上述のように処理することにより、記憶装置３０，４０は、情報処理装置１０，２０から送信されてくるデータの読み出し要求に応じて最新のデータを提供することが可能となる。
【００６９】
＝＝＝その他の実施の形態＝＝＝
図１１は他の実施の形態の一例として説明する、ストレージシステム９０の概略構成を示す図である。
【００７０】
記憶装置３０，４０は、データ位置判定テーブル５００，６００、ローカル未反映テーブル５０１，６０１、リモート未反映テーブル５０２，６０２、通常ボリューム５１０，６１０、ローカル未反映ボリューム５１１，６１１、リモート未反映ボリューム５１２，６１２などを備えている。
【００７１】
通常ボリューム５１０，６１０は、他の記憶装置３０，４０又は情報処理装置１０，２０から送信されてくる書き込みデータを書き込むための記憶領域である。ローカル未反映ボリューム５１１，６１１は、予備の記憶領域である。情報処理装置１０，２０から送信されてくる書き込みデータをローカル未反映ボリューム５１１，６１１に書き込むと、記憶装置３０，４０のチャネル制御部１０１又はディスク制御部１０３は、データを書き込んだブロック番号に基づいて、共有メモリ１０４などに記憶されているローカル未反映テーブル５０１，６０１の内容を更新する。
【００７２】
図１２にローカル未反映テーブル５０１，６０１の一例を示す。ローカル未反映テーブル５０１，６０１の各ブロック番号には、通常ボリュームブロック番号の欄、時刻の欄、及び後方ポインタの欄が設けられている。通常ボリュームブロック番号の欄には、情報処理装置１０，２０から送信されてくるデータの書き込みコマンドに指定されたブロック番号が記録される。なお、初期状態においては、通常ボリュームブロック番号の欄には空きエントリを意味する「−１」が記録されている。この通常ボリュームブロック番号の欄を設けることにより、記憶装置３０，４０のチャネル制御部１０１やディスク制御部１０３は、ローカル未反映ボリューム５１１，６１１の各ブロック番号に記憶されているデータが通常ボリューム５１０，６１０のどのブロック番号に記憶しなければならないかを把握することが可能となる。
【００７３】
時刻の欄には、情報処理装置１０，２０から送信されてくるデータの書き込みコマンドのヘッダに記録されている時刻（例えば、年月日時分秒）が記録される。なお、この時刻は、例えば、情報処理装置１０，２０がデータの書き込み要求を作成した時刻であってもよいし、情報処理装置１０，２０が記憶装置３０，４０に対してデータの書き込み要求を送信した時刻であってもよい。この時刻は、情報処理装置１０，２０のタイマー２００によって監視されており、データの書き込み要求を送信する際にデータの書き込みコマンドのヘッダに記録される。なお、記憶装置３０，４０のチャネル制御部１０１が情報処理装置１０，２０からデータの書き込み要求を受信した時刻を時刻の欄に記録することとしてもよい。この時刻の欄を設けることにより、記憶装置３０，４０のチャネル制御部１０１は情報処理装置１０，２０から受信した書き込みデータを時系列で管理することが可能となる。
【００７４】
後方ポインタの欄には、ローカル未反映ボリューム５１１，６１１のブロック番号に記憶されているデータの次に情報処理装置１０，２０から受信した書き込みデータが記憶されているローカル未反映ボリューム５１１，６１１のブロック番号が記録されている。この記録は、記憶装置３０，４０のチャネル制御部１０１がローカル未反映テーブル５０１，６０１の時刻の欄を確認することにより行われる。なお、ローカル未反映ボリューム５１１，６１１のあるブロック番号に記憶されているデータより最新のデータが、ローカル未反映ボリューム５１１，６１１に記憶されていない場合には、そのデータが最新であること意味する「−１」が記録されることとなる。この後方ポインタの欄を設けることにより、記憶装置３０，４０のディスク制御部１０３は、リモートコピーを実行する前にローカル未反映ボリューム５１１，６１１に記憶されているデータを古いものから順に通常ボリューム５１０，６１０に記憶することが可能となり、データの整合性を確保することができるようになる。
【００７５】
リモート未反映ボリューム５１２，６１２は、記憶装置３０，４０の通常ボリューム５１０，６１０間の内容を一致させるために、他の記憶装置３０，４０に送信するためのデータが記憶されている記憶領域である。
【００７６】
記憶装置３０，４０が情報処理装置１０，２０から送信されてくる書き込みデータを、通常ボリューム５１０，６１０又はローカル未反映ボリューム５１１，６１１に書き込むと、記憶装置３０，４０はその書き込みデータをリモート未反映ボリューム５１２，６１２にも書き込む。そして、記憶装置３０，４０のチャネル制御部１０１は、データを書き込んだブロック番号に基づいて、共有メモリ１０４などに格納されているリモート未反映テーブル５０２，６０２の内容を更新する。なお、この更新は、記憶装置３０，４０のディスク制御部１０３が行うこととしてもよい。
【００７７】
図１３にリモート未反映テーブル５０２，６０２の一例を示す。リモート未反映テーブル５０２，６０２の各ブロック番号には、通常ボリュームブロック番号の欄、時刻の欄、及び後方ポインタの欄が設けられており、それらの欄にはローカル未反映テーブル５０１，６０１の場合と同様の内容が記録されている。記憶装置３０，４０のチャネル制御部１０１は、リモート未反映テーブル５０２，６０２を参照することにより、リモートコピーにおいてリモート未反映ボリューム５１２，６１２に記憶されているデータを古いものから順に他の記憶装置３０，４０に送信することが可能となる。また、他の記憶装置３０，４０は、古いものから順に送信されてくる書き込みデータを通常ボリューム５１０，６１０に記憶することができるようになるので、データの整合性を確保することができるようになる。
【００７８】
データ位置判定テーブル５００，６００は、通常ボリューム５１０，６１０に書き込んだデータの複製（リモート未反映ボリューム５１２，６１２に書き込んだデータ）が、他の記憶装置３０，４０に未だ送信されておらず、データの複製が他の記憶装置３０，４０の通常ボリューム５１０，６１０に書き込まれていないことを示す情報である。データ位置判定テーブル５００，６００は、他の記憶装置３０，４０から送信要求があった場合に記憶装置３０，４０のチャネル制御部１０１によって作成され、記憶装置３０，４０から他の記憶装置３０，４０に送信される。データ位置判定テーブル５００，６００は、リモート未反映テーブル５０２，６０２に基づいて作成される。なお、データ位置判定テーブル５００，６００の送信要求は、例えば、記憶装置３０，４０にアクセスする情報処理装置１０，２０からフェールオーバ又はフェールバックする旨の通知があった場合に行われる。
【００７９】
図１４にデータ位置判定テーブル５００，６００の一例を示す。リモート未反映テーブル５０２，６０２の通常ボリュームブロック番号に対応する欄にブロック番号が記録されている場合には、記憶装置３０，４０のチャネル制御部１０１はそのブロック番号に基づいて、データ位置判定テーブル５００，６００の通常ボリュームブロック番号に対応する欄に「−２」を記録する。また、記憶装置３０，４０のチャネル制御部１０１は、それ以外の欄に「−１」を記録する。
【００８０】
このようにして作成されたデータ位置判定テーブル５００，６００を受信した記憶装置３０，４０のチャネル制御部１０１は、情報処理装置１０，２０から送信されてくるデータの読み出し要求の対象となる最新のデータがどのボリュームに存在するのかを把握することができる。
【００８１】
また、本実施の形態においては、データ位置判定テーブル５００，６００を受信した記憶装置３０，４０は、情報処理装置１０，２０から送信されてくるデータの書き込み要求に応じたデータをローカル未反映ボリューム５１１，６１１に書き込んだ場合には、データの書き込みコマンドに指定されたブロック番号に基づいて、データ位置判定テーブル５００，６００の通常ボリュームブロック番号に対応する欄にデータを書き込んだブロックの番号を記録する。これにより、記憶装置３０，４０のチャネル制御部１０１は、情報処理装置１０，２０から送信されてくるデータの読み出し要求の対象となるデータがどのボリュームに記憶されているかを把握することができるようになる。なお、記憶装置３０，４０はデータ位置判定テーブル５００，６００を受信すると、それを共有メモリ１０４に記憶することとしてもよいし、別途設けられた記憶領域（メモリやボリュームなど）に記憶することとしてもよい。
【００８２】
＝＝＝リモートコピー＝＝＝
図１５は他の実施の形態の一例として説明する、バックグラウンドにおいて行われるリモートコピーのフローチャートを示す図である。
【００８３】
第一の記憶装置３０のチャネル制御部１０１は、第一の情報処理装置１０にデータの書き込み完了通知を送信した後に、共有メモリ１０４に記憶されているリモート未反映テーブル５０２の時刻の欄を参照して、リモート未反映ボリューム５１２に記憶されている一番古いデータの書き込み要求を作成し、第二の記憶装置４０に送信する（Ｓ１５００）。なお、データの書き込みコマンドのアドレスには、リモート未反映テーブル５０２の通常ボリュームブロック番号の欄に記録されているブロック番号が記録されることとなる。そして、（Ｓ１５０１）〜（Ｓ１５０４）の処理がなされる。なお、（Ｓ１５０１）〜（Ｓ１５０４）の処理は（Ｓ７０１）〜（Ｓ７０４）と同様に行われるので、ここでは省略することとする。
【００８４】
その後、第一の記憶装置３０のチャネル制御部１０１は、リモート未反映テーブル５０２の後方ポインタ欄を確認し、後方ポインタが「−１」であるか否かを判断する（Ｓ１５０５）。後方ポインタが「−１」でないと判断した場合（Ｓ１５０５；ＮＯ）には、（Ｓ１５００）に進み、後方ポインタ欄に記録されているリモート未反映ボリューム５１２のブロック番号に基づいて、そのブロックに格納されているデータ（一番古いデータ）の書き込み要求を第二の記憶装置４０に送信する（Ｓ１５００）。一方、後方ポインタが「−１」であると判断した場合（Ｓ１５０５；ＹＥＳ）には、第一の記憶装置３０のチャネル制御部１０１は、第二の記憶装置４０に未転送のデータがないと判断して処理を終了させる。
【００８５】
なお、（Ｓ１５０５）の判断をした後に、第一の記憶装置３０のチャネル制御部１０１は、第二の記憶装置４０に送信したデータが記憶されていたブロックの番号に基づいて、リモート未反映テーブル５０２の通常ボリュームブロック番号の欄を「−１」に更新する。もし、第二の記憶装置４０が第一の記憶装置３０から受信したデータ位置判定テーブル６００を共有メモリ１０４などに記憶している場合には、（Ｓ１５０２）の処理を行った後に第二の記憶装置４０のチャネル制御部１０１は、データを書き込んだブロックの番号に基づいて、データ位置判定テーブル６００の通常ボリュームブロック番号に対応する欄の数値を削除する。
【００８６】
本実施例においては、第一の記憶装置３０のチャネル制御部１０１がリモート未反映ボリューム５１２に記憶されているデータを古いものから順に第二の記憶装置４０に送信するために、リモート未反映テーブル５０２の時刻欄及び後方ポインタ欄を参照することとしているが、第二の記憶装置４０に送信するデータを時刻の古いものから順に並べて登録するためのキューを設けることとしてもよい。
【００８７】
以上のように、第一の記憶装置３０はリモート未反映ボリューム５１２に記憶したデータを第二の記憶装置４０に送信し、これを受信した第二の記憶装置４０は通常ボリューム６１０に前記データを記憶する処理によって、通常ボリューム５１０，６１０間の内容を一致させることが可能となる。
【００８８】
なお、フェールオーバした後に、第二の記憶装置４０の通常ボリューム６１０の内容を第一の記憶装置３０の通常ボリューム５１０の内容と一致させる処理が終了した場合には、第二の記憶装置４０のディスク制御部１０３は、ローカル未反映ボリューム６１１に記憶されているデータを通常ボリューム６１０に記憶する。そして、上述の（Ｓ１５００）〜（Ｓ１５０５）に準じた処理が行われることとなる。このように、第二の記憶装置４０はリモート未反映ボリューム６１２に記憶したデータを第一の記憶装置３０に送信し、これを受信した第一の記憶装置３０は通常ボリューム５１０に前記データを記憶する処理によって、通常ボリューム５１０，６１０間の内容を一致させることが可能となる。
【００８９】
また、フェールバックした後に、第一の記憶装置３０の通常ボリューム５１０の内容を第二の記憶装置４０の通常ボリューム６１０の内容と一致させる処理が終了した場合にも、第一の記憶装置３０のディスク制御部１０３がローカル未反映ボリューム５１１に記憶されているデータを通常ボリューム５１０に記憶してから、（Ｓ１５００）〜（Ｓ１５０５）のフローと同様の処理が行われることになる。
【００９０】
なお、記憶装置３０，４０のディスク制御部１０３がローカル未反映ボリューム５１１，６１１に記憶されているデータを通常ボリューム５１０，６１０に記憶する処理は、ローカル未反映テーブル６０１の時刻欄及び後方ポインタ欄に基づいて、古いデータから順に行われる。この場合において、通常ボリューム５１０，６１０に記憶するデータを古いものから順に並べて登録するためのキューを設けることとしてもよい。
【００９１】
＝＝＝第一の情報処理装置に障害が発生した場合の処理＝＝＝
第二の情報処理装置２０が第一の情報処理装置１０の障害を検知した場合には、図８に示される（Ｓ８００）〜（Ｓ８１０）のフローに準じた処理がなされる。  
なお、（Ｓ８０３）では、第二の記憶装置４０のチャネル制御部１０１は、第一の記憶装置３０に対してデータ位置判定テーブル５００を要求することとなる。  
また、（Ｓ８０５）では、第一の記憶装置３０は、リモート未反映テーブル５０２に基づいてデータ位置判定テーブル５００を作成し、第二の記憶装置４０に送信することとなる。  
なお、本実施の形態においては、第二の情報処理装置２０が第一の情報処理装置１０の障害を検知した場合の処理について説明したが、フェールバックする場合にも（Ｓ８０１）〜（Ｓ８１０）に準じた処理がなされる。
【００９２】
＝＝＝データの書き込み要求を受信した場合の処理＝＝＝
次に、図１６を用いてフェールオーバ又はフェールバックした後に、記憶装置３０，４０が情報処理装置１０，２０からデータの書き込み要求を受信した場合の処理の一例を説明する。
【００９３】
記憶装置３０，４０のチャネル制御部１０１は、情報処理装置１０，２０からデータの書き込み要求を受信すると（Ｓ１６００）、データ位置判定テーブル５００，６００を参照して、通常ボリュームブロック番号に対応する欄にローカル未反映ボリューム５１１，６１１のブロック番号が記録されているかどうかを判断する（Ｓ１６０１）。ローカル未反映ボリューム５１１，６１１のブロック番号が記録されていると判断した場合（Ｓ１６０１；ＹＥＳ）には、（Ｓ１６０３）へ進む。一方、ローカル未反映ボリューム５１１，６１１のブロック番号が記録されていないと判断した場合（Ｓ１６０１；ＮＯ）には、（Ｓ１６０２）へ進む。
【００９４】
（Ｓ１６０２）では、記憶装置３０，４０のチャネル制御部１０１は、データの書き込みコマンドを共有メモリ１０４に記憶するとともに、この書き込みデータをキャッシュメモリ１０５に記憶する。ディスク制御部１０３は、共有メモリ１０４にデータの書き込みコマンドが書き込まれていることを検知すると、キャッシュメモリ１０５から書き込みデータを読み出し、データの書き込みコマンドに指定されたブロック番号に基づいて、通常ボリューム５１０，６１０に書き込みデータを書き込む。
【００９５】
（Ｓ１６０３）では、（Ｓ１６０２）と同様に、記憶装置３０，４０のディスク制御部１０３がローカル未反映ボリューム５１１，６１１の空き領域に書き込みデータを書き込む。その後、チャネル制御部１０１がディスク制御部１０３からデータの書き込み完了通知を受信すると、チャネル制御部１０１はローカル未反映テーブル５０１，６０１の内容を更新する（Ｓ１６０４）。この更新は、データを書き込んだブロックの番号に基づいて行われる。ローカル未反映テーブル５０１，６０１の通常ボリュームブロック番号の欄には、データの書き込みコマンドに指定されたアドレスが記録される。また、ローカル未反映テーブル５０１，６０１の時刻の欄には、データの書き込みコマンドのヘッダに記録されている時刻が記録される。その後、チャネル制御部１０１は、ローカル未反映テーブル５０１，６０１の時刻の欄を参照しながら、ローカル未反映ボリューム５１１，６１１に記憶されているデータが古いものから順に通常ボリューム５１０，６１０に記憶されるようにするため、後方ポインタの欄を更新する。
【００９６】
（Ｓ１６０５）では、記憶装置３０，４０のディスク制御部１０３が通常ボリューム５１０，６１０又はローカル未反映ボリューム５１１，６１１に書き込んだデータをリモート未反映ボリューム５１２，６１２に書き込む。その後、チャネル制御部１０１がディスク制御部１０３からデータの書き込み完了通知を受信すると、（Ｓ１６０４）と同様に、チャネル制御部１０１はリモート未反映テーブル５０２，６０２の内容を更新する（Ｓ１６０６）。そして、記憶装置３０，４０のチャネル制御部１０１は、情報処理装置１０，２０にデータの書き込みが完了した旨を通知し（Ｓ１６０７）、処理を終了する。
【００９７】
＝＝＝データの読み出し要求を受信した場合の処理＝＝＝
フェールオーバ又はフェールバックした後に、記憶装置３０，４０のチャネル制御部１０１が、情報処理装置１０，２０からデータの読み出し要求を受信した場合にも、図１０に示される（Ｓ１０００）〜（Ｓ１０１０）と同様の処理がなされる。
【００９８】
なお、（Ｓ１００１）では、記憶装置３０，４０のチャネル制御部１０１が、情報処理装置１０，２０から受信したデータの読み出しコマンドに指定された最新のデータがローカル未反映ボリューム５１１，６１１にあるかどうかを判断する。また、（Ｓ１００２）では、記憶装置３０，４０のチャネル制御部１０１が、データの読み出しコマンドに指定された最新のデータが通常ボリューム５１０，６１０にあるかどうかを判断する。これらの判断は、データの読み出しコマンドに指定されたアドレスに基づいて、データ位置判定テーブル５００，６００の通常ボリュームブロック番号に対応する欄の値を参照して行われる。  
前記欄にローカル未反映ボリューム５１１，６１１のブロック番号が記録されている場合には、記憶装置３０，４０のチャネル制御部１０１は、最新のデータがローカル未反映ボリューム５１１，６１１にあると判断する（Ｓ１００１；ＹＥＳ）。また、前記欄に「−１」が記録されている場合には、記憶装置３０，４０のチャネル制御部１０１は、最新のデータが通常ボリューム５１０，６１０にあると判断する（Ｓ１００２；ＹＥＳ）。なお、前記欄に「−２」が記録されている場合には、記憶装置３０，４０のチャネル制御部１０１は、最新のデータが他の記憶装置３０，４０のリモート未反映ボリューム５１２，６１２にあると判断するので、（Ｓ１００５）では、他の記憶装置３０，４０がデータの読み出し要求の対象となる最新データをリモート未反映ボリューム５１２，６１２から読み出すこととなる。
【００９９】
以上、本実施の形態について説明したが、上記実施例は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【０１００】
【図１】本実施の形態に係る、ストレージシステム９０の全体構成を示すブロック図である。
【図２】本実施の形態に係る、記憶装置３０，４０の一例として説明するディスクアレイ装置の具体的な構成を示す図である。
【図３】本実施の形態に係る情報処理装置１０，２０の構成の一例を示すブロック図である。
【図４】本実施の形態に係るチャネル制御部１０１の構成の一例を示すブロック図である。
【図５】本発明の一実施例として説明するストレージシステム９０の概略構成を示す図である。
【図６】本実施の形態に係る、差分管理テーブル１，２（４００，４０１）の一例を示す図である。
【図７】本実施の形態に係る、第一の記憶装置３０から第二の記憶装置４０へのリモートコピーに関する処理を説明するフローチャートである。
【図８】本実施の形態に係る、第二の情報処理装置２０が第一の情報処理装置１０の障害を検知した場合の処理の一例を示す図である。
【図９】本実施の形態に係る、フェールオーバ後に第二の記憶装置４０が第二の情報処理装置２０からデータの書き込み要求を受信した場合の処理の一例を示すフローチャートである。
【図１０】本実施の形態に係る、フェールオーバ後に第二の記憶装置４０が第二の情報処理装置２０からデータの読み出し要求を受信した場合の処理の一例を示すフローチャートである。
【図１１】他の実施の形態の一例として説明する、ストレージシステム９０の概略構成を示す図である。
【図１２】他の実施の形態に係る、ローカル未反映テーブル５０１，６０１の一例を示す図である。
【図１３】他の実施の形態に係る、リモート未反映テーブル５０２，６０２の一例を示す図である。
【図１４】他の実施の形態に係る、データ位置判定テーブル５００，６００の一例を示す図である。
【図１５】他の実施の形態の一例として説明する、バックグラウンドにおいて行われるリモートコピーのフローチャートを示す図である。
【図１６】他の実施の形態に係る、フェールオーバ後に第二の記憶装置４０が第二の情報処理装置２０からデータの書き込み要求を受信した場合の処理の一例を示すフローチャートである。
【符号の説明】
【０１０１】
１０    第一の情報処理装置          ２０    第二の情報処理装置
３０    第一の記憶装置              ４０    第二の記憶装置
５０，６０    第二のネットワーク    ７０    第三のネットワーク
８０    第一のネットワーク          １００  記憶デバイス制御装置
１０１  チャネル制御部              １０２  リモート通信インタフェース
１０３  ディスク制御部              １０４  共有メモリ
１０５  キャッシュメモリ            １０６  スイッチング制御部
１０７  管理端末                    １０８  ディスクドライブ
１１０  ＣＰＵ                      １２０  メモリ
１３０  ポート                      １４０  記憶装置
１５０  バス                        １６０  記録媒体読取装置
１７０  入力装置                    １８０  出力装置
１９０  記録媒体                    ２１１  ＣＰＵ
２１２  キャッシュメモリ            ２１３  制御メモリ
２１４  制御プログラム              ２１５  ポート
【図１】
2005165618.tif 000003
【図２】
2005165618.tif 000004
【図３】
2005165618.tif 000005
【図４】
2005165618.tif 000006
【図５】
2005165618.tif 000007
【図６】
2005165618.tif 000008
【図７】
2005165618.tif 000009
【図８】
2005165618.tif 000010
【図９】
2005165618.tif 000011
【図１０】
2005165618.tif 000012
【図１１】
2005165618.tif 000013
【図１２】
2005165618.tif 000014
【図１３】
2005165618.tif 000015
【図１４】
2005165618.tif 000016
【図１５】
2005165618.tif 000017
【図１６】
2005165618.tif 000018