(57)【要約】【課題】スナップショットデータを安全にコピーする。【解決手段】第１データ転送部は、第１運用ボリュームに書き込まれる更新データを第２データ転送部に送信し；第２データ転送部は、更新データを第２運用ボリュームに格納し、第２運用ボリュームの更新データの格納位置に書き込まれている差分データを第２差分ボリュームに格納し、第２管理情報保持部を更新し、その後、データ更新の完了を第１データ転送部に通知し；第１データ転送部は、第２データ転送部からのデータ更新完了通知を受信すると、更新データを第１運用ボリュームの更新位置に格納し、差分データを第１差分ボリュームに格納し、第１管理情報保持部を更新する。【選択図】  図１
2005292952.tif 000002
【特許請求の範囲】
【請求項１】
通常運用に供されるディスクドライブを有する第１ディスクサブシステムと、前記第１ディスクサブシステムへのデータの入出力を制御する第１ファイルサーバと、前記第１ディスクサブシステムに記憶されるデータの複製を記憶するディスクドライブを有する第２ディスクサブシステムと、前記第２ディスクサブシステムへのデータの入出力を制御する第２ファイルサーバと、前記第１ディスクサブシステムと前記第２ディスクサブシステムとの間を接続する通信回線と、を備え、
前記第１ディスクサブシステムには、通常の読み書きが行われる第１運用ボリュームと、前記第１運用ボリュームのスナップショットの差分データを記憶する第１差分ボリュームと、前記差分データを管理する第１管理情報保持部と、前記第２ディスクサブシステムとの間でデータを転送する第１データ転送部と、が設けられ、
前記第２ディスクサブシステムには、前記第１運用ボリュームに記憶されるデータの複製を記憶する第２運用ボリュームと、前記第２運用ボリュームのスナップショットの差分データを記憶する第２差分ボリュームと、前記差分データを管理する第２管理情報保持部と、前記第２ディスクサブシステムとの間でデータを転送する第２データ転送部と、が設けられ；
前記第１ファイルサーバ及び前記第２ファイルサーバの各々には、ホストとの間でデータや制御信号を送受信するホスト入出力制御部と、前記ディスクサブシステムとの間でデータや制御信号を送受信するディスク入出力制御部と、前記ホスト入出力制御部と前記ディスク入出力制御部との間で送受信されるデータを一時的に記憶するキャッシュメモリと、制御プログラムを実行することによって前記ファイルサーバの動作を制御するＣＰＵと、前記制御プログラムが記憶されるメモリと、が設けられるストレージシステムであって；
前記第１データ転送部は、前記第１運用ボリュームに書き込まれる更新データ、前記更新データが書き込まれる更新位置、前記第１運用ボリュームの前記更新位置に書き込まれている差分データ、及び前記差分データの格納位置を示す管理情報を一まとめにして前記第２データ転送部に送信し；
前記第２データ転送部は、
前記第１データ転送部から送信された更新データを前記第２運用ボリュームの前記更新位置に格納し、
前記第１データ転送部から送信された差分データを前記第２差分ボリュームに格納し、
前記第１データ転送部から送信された管理情報に基づいて前記第２管理情報保持部を更新し、
その後、データ更新の完了を前記第１データ転送部に通知し；
前記第１データ転送部は、
前記第２データ転送部からデータ更新完了通知を受信すると、前記更新データを前記第１運用ボリュームの前記更新位置に格納し、
前記差分データを前記第１差分ボリュームに格納し、
前記第１管理情報保持部を更新するストレージシステム。
【請求項２】
通常運用に供されるディスクドライブを有する第１ディスクサブシステムと、前記第１ディスクサブシステムに記憶されるデータの複製を記憶するディスクドライブを有する第２ディスクサブシステムと、前記第１ディスクサブシステムと前記第２ディスクサブシステムとの間を接続する通信回線と、を備え、
前記第１ディスクサブシステムには、通常の読み書きを行う第１運用ボリュームと、前記第１運用ボリュームのスナップショットの差分データを記憶する第１差分ボリュームと、前記差分データを管理する第１管理情報保持部と、前記第２ディスクサブシステムとの間でデータを転送する第１データ転送部と、が設けられ、
前記第２ディスクサブシステムには、前記第１運用ボリュームに記憶されるデータの複製を記憶する第２運用ボリュームと、前記第２運用ボリュームのスナップショットの差分データを記憶する第２差分ボリュームと、前記差分データを管理する第２管理情報保持部と、前記第２ディスクサブシステムとの間でデータを転送する第２データ転送部と、が設けられるストレージシステムであって；
前記第１データ転送部は、前記第１運用ボリュームに書き込まれる更新データを前記第２データ転送部に送信し；
前記第２データ転送部は、
前記更新データを前記第２運用ボリュームに格納し、
前記第２運用ボリュームの前記更新データの格納位置に書き込まれている差分データを前記第２差分ボリュームに格納し、
前記第２管理情報保持部を更新し、
その後、データ更新の完了を前記第１データ転送部に通知し；
前記第１データ転送部は、
前記第２データ転送部からのデータ更新完了通知を受信すると、前記更新データを前記第１運用ボリュームの前記更新位置に格納し、
前記差分データを前記第１差分ボリュームに格納し、
前記第１管理情報保持部を更新するストレージシステム。
【請求項３】
前記第１データ転送部は、前記第１運用ボリュームに書き込まれる更新データ、前記更新データが書き込まれる更新位置、前記第１運用ボリュームの前記更新位置に書き込まれている差分データ、及び前記差分データの格納位置を示す管理情報を一まとめにして前記第２データ転送部に送信し；
前記第２データ転送部は、
前記第１データ転送部から送信された更新データを前記第２運用ボリュームの前記更新位置に格納し、
前記第１データ転送部から送信された差分データを前記第２差分ボリュームに格納し、
前記第１データ転送部から送信された管理情報に基づいて前記第２管理情報保持部を更新し、
その後、データ更新の完了を前記第１データ転送部に通知する請求項２に記載のストレージシステム。
【請求項４】
前記第２データ転送部は、
前記第１データ転送部から送信された差分データと、前記第２差分ボリュームの前記更新位置に格納されている差分データとを比較し、
前記両差分データが一致している場合に、前記第１データ転送部から送信された更新データを前記第２運用ボリュームの前記更新位置に格納し、
前記第１データ転送部から送信された差分データを前記第２差分ボリュームに格納し、
前記第１データ転送部から送信された管理情報と、前記差分データの第２差分ボリュームへの格納位置に基づいて生成された管理情報とを比較し、
前記両管理情報が一致している場合に、前記第１データ転送部から送信された管理情報に基づいて前記第２管理情報保持部を更新し、
その後、データ更新の完了を前記第１データ転送部に通知する請求項３に記載のストレージシステム。
【請求項５】
前記第１データ転送部は、
前記通信回線の負荷状況を判定し、
前記通信回線の負荷が大きいと判定した場合は、前記第１運用ボリュームに書き込まれる更新データ、及び前記更新データが書き込まれる更新位置を前記第２データ転送部に送信し；
前記第２データ転送部は、
前記第２運用ボリュームの前記更新位置に格納されている差分データを読み出して前記第２差分ボリュームに格納し、
前記第１データ転送部から送信された更新データを前記第２運用ボリュームの前記更新位置に格納し、
前記差分データの第２差分ボリュームへの格納位置に基づいて前記第２管理情報保持部を更新し、
その後、データ更新の完了を前記第１データ転送部に通知し；
前記第１データ転送部は、
前記第２データ転送部からのデータ更新完了通知を受信すると、前記更新データを前記第１運用ボリュームの前記更新位置に格納し、
前記差分データを前記第１差分ボリュームに格納し、
前記第１管理情報保持部を更新する請求項２に記載のストレージシステム。
【請求項６】
前記第１データ転送部は、
前記通信回線の負荷状況を判定し、
前記通信回線の負荷が小さいと判定した場合は、前記第１運用ボリュームに書き込まれる更新データ、前記更新データが書き込まれる更新位置、前記第１運用ボリュームの前記更新位置に書き込まれている差分データ、及び前記差分データの格納位置を示す管理情報を一まとめにして前記第２データ転送部に送信し；
前記第２データ転送部は、
前記第１データ転送部から送信された差分データと、前記第２差分ボリュームの前記更新位置に格納されている差分データとを比較し、
前記両差分データが一致している場合に、前記第１データ転送部から送信された更新データを前記第２運用ボリュームの前記更新位置に格納し、
前記第１データ転送部から送信された差分データを前記第２差分ボリュームに格納し、
前記第１データ転送部から送信された管理情報と、前記差分データの第２差分ボリュームへの格納位置に基づいて生成された管理情報とを比較し、
前記両管理情報が一致している場合に、前記第１データ転送部から送信された管理情報に基づいて前記第２管理情報保持部を更新し、
その後、データ更新の完了を前記第１データ転送部に通知し；
前記第１データ転送部は、
前記第２データ転送部からデータ更新完了通知を受信すると、前記更新データを前記第１運用ボリュームの前記更新位置に格納し、
前記差分データを前記第１差分ボリュームに格納し、
前記第１管理情報保持部を更新する請求項２に記載のストレージシステム。
【請求項７】
前記第１データ転送部は、前記第１運用ボリュームに書き込まれる更新データ、及び前記更新データが書き込まれる更新位置を前記第２データ転送部に送信し；
前記第２データ転送部は、
前記第２運用ボリュームの前記更新位置に格納されている差分データを読み出して前記第２差分ボリュームに格納し、
前記第１データ転送部から送信された更新データを前記第２運用ボリュームの前記更新位置に格納し、
前記差分データの第２差分ボリュームへの格納位置に基づいて前記第２管理情報保持部を更新し、
その後、データ更新の完了を前記第１データ転送部に通知する請求項２に記載のストレージシステム。
【請求項８】
通常運用に供されるディスクドライブを有する第１ストレージ装置と、前記第１ストレージ装置に記憶されるデータの複製を記憶するディスクドライブを有する第２ストレージ装置と、前記第１ストレージ装置と前記第２ストレージ装置との間を接続する通信回線と、を備え、
前記第１ストレージ装置には、通常の読み書きが行われる第１運用ボリュームと、前記第１運用ボリュームのスナップショットの差分データを記憶する第１差分ボリュームと、前記差分データを管理する第１管理情報保持部と、前記第２ストレージ装置との間でデータを転送する第１データ転送部と、が設けられ、
前記第２ストレージ装置には、前記第１運用ボリュームに記憶されるデータの複製を記憶する第２運用ボリュームと、前記第２運用ボリュームのスナップショットの差分データを記憶する第２差分ボリュームと、前記差分データを管理する第２管理情報保持部と、前記第２ストレージ装置との間でデータを転送する第２データ転送部と、が設けられるストレージシステムに用いられるストレージ装置であって；
前記第１データ転送部は、
前記第１運用ボリュームに書き込まれる更新データを前記第２データ転送部に送信し、
データ更新完了通知を前記第２データ転送部から受信すると、前記更新データを前記第１運用ボリュームの前記更新位置に格納し、
前記差分データを前記第１差分ボリュームに格納し、
前記第１管理情報保持部を更新するストレージ装置。
【請求項９】
前記第１データ転送部は、前記第１運用ボリュームに書き込まれる更新データ、前記更新データが書き込まれる更新位置、前記第１運用ボリュームの前記更新位置に書き込まれている差分データ、及び前記差分データの格納位置を示す管理情報を一まとめにして前記第２データ転送部に送信する請求項８に記載のストレージ装置。
【請求項１０】
前記第１データ転送部は、
前記通信回線の負荷状況を判定し、
前記通信回線の負荷が大きいと判定した場合は、前記第１運用ボリュームに書き込まれる更新データ、及び前記更新データが書き込まれる更新位置を前記第２データ転送部に送信し、
前記データ更新完了通知を前記第２データ転送部から受信すると、前記更新データを前記第１運用ボリュームの前記更新位置に格納し、
前記差分データを前記第１差分ボリュームに格納し、
前記第１管理情報保持部を更新する請求項８に記載のストレージ装置。
【請求項１１】
前記第１データ転送部は、
前記通信回線の負荷状況を判定し、
前記通信回線の負荷が小さいと判定した場合は、前記第１運用ボリュームに書き込まれる更新データ、前記更新データが書き込まれる更新位置、前記第１運用ボリュームの前記更新位置に書き込まれている差分データ、及び前記差分データの格納位置を示す管理情報を一まとめにして前記第２データ転送部に送信し、
前記データ更新完了通知を前記第２データ転送部から受信すると、前記更新データを前記第１運用ボリュームの前記更新位置に格納し、
前記差分データを前記第１差分ボリュームに格納し、
前記第１管理情報保持部を更新する請求項８に記載のストレージ装置。
【請求項１２】
通常運用に供されるディスクドライブを有する第１ストレージ装置と、前記第１ストレージ装置に記憶されるデータの複製を記憶するディスクドライブを有する第２ストレージ装置と、前記第１ストレージ装置と前記第２ストレージ装置との間を接続する通信回線と、を備え、
前記第１ストレージ装置には、通常の読み書きが行われる第１運用ボリュームと、前記第１運用ボリュームのスナップショットの差分データを記憶する第１差分ボリュームと、前記差分データを管理する第１管理情報保持部と、前記第２ストレージ装置との間でデータを転送する第１データ転送部と、が設けられ、
前記第２ストレージ装置には、前記第１運用ボリュームに記憶されるデータの複製を記憶する第２運用ボリュームと、前記第２運用ボリュームのスナップショットの差分データを記憶する第２差分ボリュームと、前記差分データを管理する第２管理情報保持部と、前記第２ストレージ装置との間でデータを転送する第２データ転送部と、が設けられるストレージシステムに用いられるストレージ装置であって；
前記第２データ転送部は、
前記第１運用ボリュームに書き込まれる更新データを前記第１データ転送部から受信し、
前記更新データを前記第２運用ボリュームに格納し、
前記第２運用ボリュームの前記更新データの格納位置に書き込まれている差分データを前記第２差分ボリュームに格納し、
前記第２管理情報保持部を更新し、
その後、前記第１ストレージ装置にデータを更新させるためのデータ更新完了通知を送信するストレージ装置。
【請求項１３】
前記第２データ転送部は、
前記第１運用ボリュームに書き込まれる更新データ、前記更新データが書き込まれる更新位置、前記第１運用ボリュームの前記更新位置に書き込まれている差分データ、及び前記差分データの格納位置を示す管理情報が一まとめにされた信号を前記第１データ転送部から受信し；
前記受信した更新データを前記第２運用ボリュームの前記更新位置に格納し、
前記受信した差分データを前記第２差分ボリュームに格納し、
前記受信した管理情報に基づいて前記第２管理情報保持部を更新し、
その後、前記データ更新の完了を前記第１データ転送部に通知する請求項１２に記載のストレージ装置。
【請求項１４】
前記第２データ転送部は、
前記受信した差分データと、前記第２差分ボリュームの前記更新位置に格納されている差分データとを比較し、
前記両差分データが一致している場合に、前記第１データ転送部から送信された更新データを前記第２運用ボリュームの前記更新位置に格納し、
前記受信した差分データを前記第２差分ボリュームに格納し、
前記受信した管理情報と、前記差分データの第２差分ボリュームへの格納位置に基づいて生成された管理情報とを比較し、
前記両管理情報が一致している場合に、前記受信した管理情報に基づいて前記第２管理情報保持部を更新し、
その後、前記データ更新の完了を前記第１データ転送部に通知する請求項１３に記載のストレージ装置。
【請求項１５】
前記第２データ転送部は、
前記第１データ転送部が前記通信回線の負荷が大きいと判定した場合は、
前記第１運用ボリュームに書き込まれる更新データ、及び前記更新データが書き込まれる更新位置を前記第１データ転送部から受信し、
前記第２運用ボリュームの前記更新位置に格納されている差分データを読み出して前記第２差分ボリュームに格納し、
前記受信した更新データを前記第２運用ボリュームの前記更新位置に格納し、
前記差分データの第２差分ボリュームへの格納位置に基づいて前記第２管理情報保持部を更新し、
その後、前記データ更新の完了を前記第１データ転送部に通知する請求項１２に記載のストレージ装置。
【請求項１６】
前記第２データ転送部は、
前記第１データ転送部が前記通信回線の負荷が小さいと判定した場合は、
前記第１運用ボリュームに書き込まれる更新データ、前記更新データが書き込まれる更新位置、前記第１運用ボリュームの前記更新位置に書き込まれている差分データ、及び前記差分データの格納位置を示す管理情報が一まとめにされた信号を前記第１データ転送部から受信し；
前記受信した差分データと、前記第２差分ボリュームの前記更新位置に格納されている差分データとを比較し、
前記両差分データが一致している場合に、前記第１データ転送部から送信された更新データを前記第２運用ボリュームの前記更新位置に格納し、
前記受信した差分データを前記第２差分ボリュームに格納し、
前記受信した管理情報と、前記差分データの第２差分ボリュームへの格納位置に基づいて生成された管理情報とを比較し、
前記両管理情報が一致している場合に、前記第１データ転送部から送信された管理情報に基づいて前記第２管理情報保持部を更新し、
その後、前記データ更新の完了を前記第１データ転送部に通知する請求項１２に記載のストレージ装置。
【請求項１７】
前記第２データ転送部は、
前記第１運用ボリュームに書き込まれる更新データ、及び前記更新データが書き込まれる更新位置を前記第１データ転送部から受信し；
前記第２運用ボリュームの前記更新位置に格納されている差分データを読み出して前記第２差分ボリュームに格納し、
前記受信した更新データを前記第２運用ボリュームの前記更新位置に格納し、
前記差分データの第２差分ボリュームへの格納位置に基づいて前記第２管理情報保持部を更新し、
その後、前記データ更新の完了を前記第１データ転送部に通知する請求項１２に記載のストレージ装置。
【請求項１８】
通常運用に供されるディスクドライブを有する第１ディスクサブシステムと、前記第１ディスクサブシステムに記憶されるデータの複製を記憶するディスクドライブを有する第２ディスクサブシステムと、前記第１ディスクサブシステムと前記第２ディスクサブシステムとの間を接続する通信回線と、を備え、
前記第１ディスクサブシステムには、通常の読み書きが行われる第１運用ボリュームと、前記第１運用ボリュームのスナップショットの差分データを記憶する第１差分ボリュームと、前記差分データを管理する第１管理情報保持部と、前記第２ディスクサブシステムとの間でデータを転送する第１データ転送部と、が設けられ、
前記第２ディスクサブシステムには、前記第１運用ボリュームに記憶されるデータの複製を記憶する第２運用ボリュームと、前記第２運用ボリュームのスナップショットの差分データを記憶する第２差分ボリュームと、前記差分データを管理する第２管理情報保持部と、前記第２ディスクサブシステムとの間でデータを転送する第２データ転送部と、が設けられるストレージシステムに用いられるリモートコピー方法であって；
前記第１データ転送部が、前記第１運用ボリュームに書き込まれる更新データを前記第２データ転送部に送信する第１手順と；
前記第２データ転送部が、
前記更新データを前記第２運用ボリュームに格納し、
前記第２運用ボリュームの前記更新データの格納位置に書き込まれている差分データを前記第２差分ボリュームに格納し、
前記第２管理情報保持部を更新し、
その後、データ更新の完了を前記第１データ転送部に通知する第２手順と；
前記第１データ転送部が、
前記第２データ転送部からのデータ更新完了通知を受信すると、前記更新データを前記第１運用ボリュームの前記更新位置に格納し、
前記差分データを前記第１差分ボリュームに格納し、
前記第１管理情報保持部を更新する第３手順と、を有するリモートコピー方法。
【請求項１９】
前記第１手順は、前記第１データ転送部が、前記第１運用ボリュームに書き込まれる更新データ、前記更新データが書き込まれる更新位置、前記第１運用ボリュームの前記更新位置に書き込まれている差分データ、及び前記差分データの格納位置を示す管理情報を一まとめにして前記第２データ転送部に送信し；
前記第２手順は、前記第２データ転送部が、前記第１データ転送部から送信された差分データと、前記第２差分ボリュームの前記更新位置に格納されている差分データとを比較し、前記両差分データが一致している場合に、前記第１データ転送部から送信された更新データを前記第２運用ボリュームの前記更新位置に格納し、前記第１データ転送部から送信された差分データを前記第２差分ボリュームに格納し、前記第１データ転送部から送信された管理情報と、前記差分データの第２差分ボリュームへの格納位置に基づいて生成された管理情報とを比較し、前記両管理情報が一致している場合に、前記第１データ転送部から送信された管理情報に基づいて前記第２管理情報保持部を更新し、
その後、データ更新の完了を前記第１データ転送部に通知する請求項１８に記載のリモートコピー方法。
【請求項２０】
前記第１手順は、前記第１データ転送部が、前記第１運用ボリュームに書き込まれる更新データ、及び前記更新データが書き込まれる更新位置を前記第２データ転送部に送信し；
前記第２手順は、前記第２データ転送部が、前記第２運用ボリュームの前記更新位置に格納されている差分データを読み出して前記第２差分ボリュームに格納し、前記第１データ転送部から送信された更新データを前記第２運用ボリュームの前記更新位置に格納し、前記差分データの第２差分ボリュームへの格納位置に基づいて前記第２管理情報保持部を更新し、その後、データ更新の完了を前記第１データ転送部に通知する請求項１８に記載のリモートコピー方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スナップショット機能を有するストレージシステムに関し、特に、スナップショットのデータを転送する技術に関する。
【背景技術】
【０００２】
情報化社会において、情報を蓄積するストレージシステムの重要な役割の一つに、データ保護がある。データ保護のもっとも一般的な方法は、テープをはじめとするバックアップメディアにストレージ上のデータの複製を保存するバックアップである。バックアップは、故障や障害、或いは、操作ミスなどによって、運用中のストレージ上のデータが失われたとしても、バックアップに基づいてデータを復元することで、保存した時点のデータに回復することを可能にし、被害を最小限に抑えることができる。
【０００３】
しかし、ストレージの大容量化に伴い、バックアップに要する時間が問題となってきている。さらに、データの更新頻度が高い用途では、一度バックアップを作成しても、すぐにバックアップとの差が拡大し、万が一の際、被害が増大してしまうため、頻繁にバックアップを作成することが必要となってきている。また、操作ミスなどによるファイル紛失や、ファイルの内容を過去の状態と比較したい場合などに備えて、定期的なバックアップを容易に参照可能にしたいという要求がある。
【０００４】
このような用途に応える機能として、スナップショット機能が注目されている。スナップショット機能は、スナップショットを取得した瞬間の運用中のストレージ上のデータイメージを維持すると共に、運用中のストレージとは別の手段によってアクセス可能にする機能である。スナップショットは、取得時点で、ストレージ上のデータ全体のコピー完了を待つことなく利用可能にすることにより、テープバックアップで問題となっていたバックアップ時間を極小化する。
【０００５】
このスナップショットを維持するため、スナップショット時のデータを保存する保存記憶領域を利用する方法がある（例えば、特許文献１参照。）。
【０００６】
これによれば、運用ボリュームのスナップショットを取得すると、それ以降に発生する未更新ブロックの更新時に、当該ブロックの旧データを、保存記憶領域にコピーするとともに、スナップショットを提供する仮想ボリュームを生成する。仮想ボリュームからの読み出しは、読み出すアドレスのブロックが保存記憶領域にコピー済であれば、そのブロックを返す。保存記憶領域にコピーがなければ、運用ボリュームに変更が生じていないため、運用ボリュームの同じアドレスのブロックを返す。
【０００７】
この技術によれば、スナップショット取得時点での運用ボリュームの全てのデータを別のボリュームに保存しておく場合と比較して、少ない記憶容量でスナップショット取得時点での運用ボリュームのイメージを維持することができる。
【０００８】
また、ストレージシステムに格納されたデータの移行には、上位装置（ホスト）からアクセス中のデータ移行には、拡張データ転送機能（ＸＲＣ：Extended Remote Copy）、又は対等データ転送機能（ＰＰＲＣ：Peer-to-Peer Remote Copy）がＩＢＭ社から提案されている（例えば、非特許文献１参照。）。
【特許文献１】米国特許第５６４９１５２号明細書
【非特許文献１】「Implementing ESS Copy Services on S/390」，IBM P.502.8.5 DASD migration
【発明の開示】
【発明が解決しようとする課題】
【０００９】
前述したスナップショットは、プライマリボリューム、差分ボリューム及びマッピングテーブルによって実現される。しかし、スナップショットデータを移行する際に、この３つを同期してコピーすることは考慮されていなかった。このため、例えば、プライマリボリューム、差分ボリューム及びマッピングテーブルのコピーに時間差が生じると、その間はスナップショットのデータが整合せず、スナップショット作成時のイメージ（仮想ボリューム）が構成できない問題が生じる。さらに、プライマリボリューム及び差分ボリュームをコピーしたところで、データ転送機能に障害が生じ、マッピングテーブルがコピーされなかった場合には、スナップショットの仮想ボリュームが構成できない問題が生じる。
【００１０】
本発明は、スナップショットデータを安全にコピーすることができるストレージシステムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、通常運用に供されるディスクドライブを有する第１ディスクサブシステムと、前記第１ディスクサブシステムに記憶されるデータの複製を記憶するディスクドライブを有する第２ディスクサブシステムと、前記第１ディスクサブシステムと前記第２ディスクサブシステムとの間を接続する通信回線と、を備え、前記第１ディスクサブシステムには、通常の読み書きを行う第１運用ボリュームと、前記第１運用ボリュームのスナップショットの差分データを記憶する第１差分ボリュームと、前記差分データを管理する第１管理情報保持部と、前記第２ディスクサブシステムとの間でデータを転送する第１データ転送部と、が設けられ、前記第２ディスクサブシステムには、前記第１運用ボリュームに記憶されるデータの複製を記憶する第２運用ボリュームと、前記第２運用ボリュームのスナップショットの差分データを記憶する第２差分ボリュームと、前記差分データを管理する第２管理情報保持部と、前記第２ディスクサブシステムとの間でデータを転送する第２データ転送部と、が設けられるストレージシステムであって；
前記第１データ転送部は、前記第１運用ボリュームに書き込まれる更新データを前記第２データ転送部に送信し；
前記第２データ転送部は、前記更新データを前記第２運用ボリュームに格納し、前記第２運用ボリュームの前記更新データの格納位置に書き込まれている差分データを前記第２差分ボリュームに格納し、前記第２管理情報保持部を更新し、その後、データ更新の完了を前記第１データ転送部に通知し；
前記第１データ転送部は、前記第２データ転送部からのデータ更新完了通知を受信すると、前記更新データを前記第１運用ボリュームの前記更新位置に格納し、前記差分データを前記第１差分ボリュームに格納し、前記第１管理情報保持部を更新する。
【発明の効果】
【００１２】
本発明によると、スナップショットのデータの整合が保たれ、デイザスタリカバリを強化することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を図面を参照して説明する。
【００１４】
図１は、本発明の実施の形態のストレージシステムの構成を示すブロック図である。
【００１５】
ＮＡＳ（Network Attached Storage）１は、ディスクサブシステム２に接続されている。ローカル側のＮＡＳ１は、ネットワーク６を介してＣＩＦＳ（Common Internet File System）を使用するクライアント７やＮＦＳ（Network File System）を使用するクライアントに接続されている。ネットワーク６は、例えば、ＴＣＰ／ＩＰ等のプロトコルで通信を行う。なお、ファイバチャネルや、ｉＳＣＳＩ（internet SCSI）によって通信可能なものであってもよい。ＮＡＳ１は、ファイルサーバ（ＮＥＦ／ＣＩＦＳサーバ部）を備えており、ファイルサーバによってクライアント６、７に対してファイル共有サービスを提供する。
【００１６】
また、ＮＡＳ１は、差分スナップショット部を備えている。差分スナップショット部は、後述する差分スナップショット作成プログラム１２２、差分スナップショット管理プログラム１２３、及び差分スナップショット合成プログラム１２４によって、スナップショットの作成、維持、仮想ボリュームの合成を行う。
【００１７】
ローカル側のディスクサブシステム２には、複数のディスクドライブが設けられている。ディスクドライブには、ＯＳが単一のディスクとして認識できる単位である論理ユニット（ＬＵ）が設定されている。また、ディスクドライブは主ボリューム群を構成し、主ボリューム群にはプライマリボリューム２０１、差分ボリューム２０２、及びマッピングテーブル２０３を備える。
【００１８】
また、論理ユニットはＲＡＩＤ（Redundant Array of Independent Disks）によって構成されており、記憶されるデータに冗長性を持たせている。このため、ディスクドライブの一部に障害が生じても、記憶されたデータが消失しないようになっている。
【００１９】
プライマリボリューム２０１は、通常の運用に供されるボリュームであり、クライアント７、８からアクセスがされ、データが読み書きされる。差分ボリューム２０２は、スナップショットのコピーオンライト時に、プライマリボリューム２０１に記憶されていたデータが格納される。マッピングテーブル２０３は、スナップショットの世代毎に、プライマリボリューム２０１と差分ボリューム２０２との関係が記録されている。
【００２０】
また、ディスクサブシステム２にはリモートコピー部が備わっている。リモートコピー部は、主ボリューム群に記憶されたデータの変更箇所を検出し、リモート側ディスクサブシステム４にデータを転送するもので、主ボリューム群に記憶されたリモートコピープログラム２０４が実行されることによって実現される。
【００２１】
リモート側にはリモート側ＮＡＳ３及びリモート側ディスクサブシステム４が設けられており、ローカル側ＮＡＳ１及びローカル側ディスクサブシステム２と同じ機能を提供することができる。
【００２２】
ローカル側とリモート側とはデータ転送用ネットワーク５によって接続されている。ネットワーク５は、ローカル側のＮＡＳ１とリモート側のＮＡＳ３、及び、ローカル側のディスクサブシステム２とリモート側のディスクサブシステム４の間をデータ転送可能に接続しており、ＴＣＰ／ＩＰプロトコルによって信号（データ、制御信号）を送受信する。なお、ネットワーク５は、よりデータの転送に好適なファイバチャネル（Fibre Channel）プロトコルによって信号（データ、制御信号）を送受信するＳＡＮ（Storage Area Network）でもよい。
【００２３】
なお、ローカル側からリモート側へのデータのバックアップは、ＮＡＳ間で行う場合と、ディスクサブシステム間で行う場合とが考えられる。以下の実施の形態ではディスクサブシステム間のデータバックアップについて説明するが、本発明はＮＡＳ間のデータバックアップに適用してもよい。
【００２４】
また、ローカル側、リモート側共にＮＡＳとディスクサブシステムを別に設ける実施の形態について説明したが、ＮＡＳとディスクサブシステムを一体としたストレージ装置にも本発明を適用することができる。
【００２５】
図２は、本発明の実施の形態のＮＡＳ１の構成を示すブロック図である。
【００２６】
ＮＡＳ１には、ＣＰＵ１１、メモリ１２、ネットワークインターフェース１４及びストレージインターフェース１５が設けられている。
【００２７】
ネットワークインターフェース１４は、クライアント６、７との間でＴＣＰ／ＩＰプロトコルによってデータや制御信号を送受信する。
【００２８】
ストレージインターフェース１５は、ディスクサブシステム２との間でファイバチャネル（Fibre Channel）に基づくデータや制御信号を送受信する。
【００２９】
メモリ１２には、ディスクに読み書きされるデータを一時的に記憶するキャッシュメモリが設けられている。また、メモリ１２には、ファイルサーバプログラム１２１、差分スナップショット作成プログラム１２２、差分スナップショット管理プログラム１２３、差分スナップショット合成プログラム１２４、及びファイルシステム処理プログラム１２５が記憶されており、ＣＰＵ１１がこれらのプログラムを呼び出して実行することによって、各種処理が行われる。
【００３０】
ファイルサーバプログラム１２１は、クライアント６、７からのデータアクセス要求に応じて、ファイルシステム処理プログラム１２５に対してファイルやディレクトリの読み出し処理又は書き込み処理の実行を要求し、その実行結果を要求元であるクライアント６、７に返送する。
【００３１】
スナップショット作成プログラム１２２は、スナップショット作成要求を受信すると、ディスクサブシステム２プライマリボリュームに対するスナップショットを作成する。具体的には、マッピングテーブル２０３の領域を設定する。
【００３２】
差分スナップショット管理プログラム１２３は、スナップショットの維持に必要な差分データを格納する差分ボリューム２０２を管理し、ファイルシステム処理プログラム１２５の要求に応じたデータ書き込み及びスナップショットを維持する処理を行う。具体的には、マッピングテーブル２０３を用いて、プライマリボリューム２０１にデータを書き込む際に、プライマリボリューム２０１に記憶されていた差分データを差分ボリュームにコピーした後、プライマリボリューム２０１に更新データを書き込み、記憶内容を更新する。
【００３３】
差分スナップショット合成プログラム１２４は、プライマリボリューム２０１及び差分ボリューム２０２を使用して、ファイルシステム管理プログラム１２５の要求に応じて仮想ボリュームの読み出し処理（すなわち、スナップショットを利用可能にする処理）を行う。具体的には、マッピングテーブル２０３を参照して、プライマリボリューム２０１又は差分ボリューム２０２のいずれからデータを読み出すかを決定し、決定されたボリュームからデータを読み出して、スナップショット作成要求時にプライマリボリューム２０１に記憶されていたデータを提供する仮想ボリュームを合成する。
【００３４】
ファイルシステム処理プログラム１２５は、ファイルサーバプログラム１２１や、差分スナップショット管理プログラム１２３が発行するファイルやディレクトリの読み出し要求及び書き込み要求に応じて、ファイルやディレクトリを格納しているボリューム及びアクセスするブロックの位置及びサイズを指定する。また、仮想ボリュームの読み出し処理や書き込み処理をスナップショット合成プログラム１２４に対して発行する。
【００３５】
次にスナップショットの管理について説明する。図３、図４は、本発明の実施の形態のスナップショットの管理の説明図である。
【００３６】
スナップショット作成プログラム１２２は、スナップショット作成要求を受信すると、マッピングテーブル２０３に新しい仮想ボリュームの識別情報（図３の「マッピングテーブルのスナップショット１差分ボリューム格納位置」欄）を登録する。この仮想ボリュームのブロックは、スナップショット作成時点では、マッピングテーブル２０３の差分ボリューム格納位置欄にデータの格納位置が登録されないことによって、プライマリボリューム２０１のブロックと一対一で対応付けられている。
【００３７】
その後、プライマリボリューム２０１内のデータが更新される際には、スナップショット管理プログラム１２３は、プライマリボリューム２０１内の更新前の差分データを差分ボリューム２０２に複写し、この複写後にプライマリボリューム２０１に更新データを書き込んで、プライマリボリューム２０１記憶内容を更新する。なお、このデータのプライマリボリューム２０１から差分ボリューム２０２へのデータの複写は、現実にデータを移動させても、データの格納場所を示すポインタを書き換えてもよい。
【００３８】
更に、スナップショット管理プログラム１２４は、データが更新されたプライマリボリューム２０１内のブロックに対応する仮想ボリューム２０２内のブロックを、スナップショット作成時点でプライマリボリューム２０１に格納されていたデータ（すなわち更新前のデータ）が格納されている差分ボリューム２０２のブロックと対応付けるようマッピングテーブル２０３を更新する。
【００３９】
例えば、図４において、スナップショット１の作成からスナップショット２の作成までの間に、プライマリボリュームのＰ１に格納されているデータが”ａａａａａ”に書き換えられる際に、プライマリボリュームのＰ１に格納されていた差分データ”ＡＡＡＡＡ”が差分ボリュームのＤ１にコピーされた後、プライマリボリュームのＰ１に更新データ”ａａａａａ”が格納される。このとき、マッピングテーブルのＰ１欄には差分データの格納位置Ｄ１が記憶される。さらに、マッピングテーブルの変更有無ビットマップの上位第１ビットには、スナップショット１に対して差分データが記憶されていることを示す”１”が記憶される。
【００４０】
また、スナップショット２の作成から現時点までの間に、プライマリボリュームのＰ２が”ｂｂｂｂｂ”に書き換えられる際に、プライマリボリュームのＰ２に格納されていた差分データ”ＢＢＢＢＢ”が差分ボリュームのＤ２にコピーされた後、プライマリボリュームのＰ２に更新データ”ｂｂｂｂｂ”が格納される。このとき、マッピングテーブルのＰ２欄には差分データの格納位置Ｄ２が記憶される。このとき、スナップショット２の差分ボリューム格納位置だけでなく、この差分データを必要とするスナップショット１の差分ボリューム格納位置にもＤ２が記憶される。さらに、マッピングテーブルの変更有無ビットマップの第１ビット及び第２ビットには、スナップショット１及び２に対して差分データが記憶されていることを示す”１”が記憶される（すなわち、変更有無ビットマップには”１１”が記憶される）。
【００４１】
ファイルシステム処理プログラム１２５が仮想ボリュームに対するアクセス要求をスナップショット合成プログラム１２４に発行すると、スナップショット合成プログラム１２４はマッピングテーブルを参照して、仮想ボリュームのブロックと対応付けられているプライマリボリュームのブロック又は差分ボリュームのブロックからデータを読み出す。従って、ファイルシステム処理プログラム１２５は、仮想ボリュームにアクセスすることによって、スナップショットが作成要求が発行された時点においてプライマリボリュームに記憶されている情報を利用できるので、クライアント６、７にファイルシステムのスナップショットイメージを提供することができる。
【００４２】
すなわち、仮想ボリュームは１又は複数のディスク装置内の記憶領域からなる仮想的なボリュームであって、実際にはプライマリボリュームのブロックの一部と差分ボリュームのブロックの一部とから構成されている。
【００４３】
例えば、図４において、スナップショット１作成時のプライマリボリュームに対応する仮想ボリュームは、Ｐ１に対応する差分データである差分ボリュームのＤ１に記憶された”ＡＡＡＡＡ”、Ｐ２に対応する差分データである差分ボリュームのＤ２に記憶された”ＢＢＢＢＢ”、プライマリボリュームのＰ３に記憶された”ＣＣＣＣＣ”（Ｐ３に対応する差分データはないためプライマリボリュームからデータを読み出す）の各々が読み出されて、これらのデータが合成されたものとなる。
【００４４】
図５は、本発明の第１の実施の形態のデータ転送処理のフローチャートである。
【００４５】
まず、ローカル側のデータ転送部は、差分スナップショット管理プログラム１２３によるデータ更新要求（すなわち、更新要求に基づくコピーオンライトの発生）を検出すると（Ｓ１０１）、更新要求を解析して、更新要求に含まれる更新データ（ディスクに書き込まれるデータ）とデータ更新位置（データを書き込むアドレス）を抽出する（Ｓ１０２）。その後、プライマリボリューム２０１の更新位置に記憶されている差分データ（更新前のデータ）を読み出す（Ｓ１０３）。さらに、差分データを格納する差分ボリュームの領域を決定し、当該データ更新後のマッピング情報（マッピングテーブルの更新位置に書き込まれる差分データを格納する領域の情報）を作成する（Ｓ１０４）。なお、この段階ではマッピングテーブル２０３にマッピング情報は書き込まれない。
【００４６】
そして、これら取得した更新データ、更新位置、差分データ及びマッピング情報をグループにまとめてリクエストに含めて、このリクエストをリモート側ディスクサブシステム４に送信する（Ｓ１０５）。
【００４７】
リモート側のデータ転送部は、リクエストの到着を監視している（Ｓ１０６）。リモート側のデータ転送部がローカル側ディスクサブシステム２からのリクエストを受信すると、受信したリクエストから更新データ、更新位置、差分データ及びマッピング情報を抽出する（Ｓ１０７〜Ｓ１１０）。
【００４８】
そして、プライマリボリューム４０１の更新位置にリクエストから抽出した更新データを書き込み（Ｓ１１１）、リクエストから抽出した差分データを差分ボリューム４０２に書き込む（Ｓ１１２）。この差分データの書き込み位置は、リクエストから抽出したマッピング情報に含まれる差分データの格納領域である。そして、リクエストから抽出したマッピング情報をマッピングテーブル４０３に書き込む（Ｓ１１３）。その後、リモート側のデータの更新が完了したので、ローカル側ディスクサブシステム２に完了通知を送信する（Ｓ１１４）。
【００４９】
リクエストを送信したローカル側のデータ転送部は、完了通知の到着を監視している（Ｓ１１５）。そして、ローカル側のデータ転送部がリモート側ディスクサブシステム４からの完了通知を受信すると、更新データをプライマリボリューム２０１に書き込み（Ｓ１１６）、Ｓ１０３で読み出した差分データを差分ボリューム２０２に書き込み（Ｓ１１７）、Ｓ１０４で作成したマッピング情報をマッピングテーブルに書き込む（Ｓ１１８）。
【００５０】
このように第１の実施の形態のデータ転送処理では、差分スナップショットに必要な更新データ、差分データ及びマッピング情報をグループ化して、ローカル側ディスクサブシステム２からリモート側ディスクサブシステム４に送信するので、ローカル側からリモート側へのデータ転送途中に障害が発生しても、スナップショットのデータの矛盾を回避することができる。
【００５１】
図６は、本発明の第２の実施の形態のデータ転送処理のフローチャートである。第２の実施の形態のデータ転送処理では、ローカル側からリモート側へ転送されるデータを必要最低限とし、転送性能重視している。
【００５２】
まず、ローカル側のデータ転送部は、差分スナップショット管理プログラム１２３によるデータ更新要求（すなわち、更新要求に基づくコピーオンライトの発生）を検出すると（Ｓ１２１）、更新要求を解析して、更新要求に含まれる更新データ（ディスクに書き込まれるデータ）とデータ更新位置（データを書き込むアドレス）を抽出する（Ｓ１２２）。そして、これら取得した更新データ及び更新位置をリクエストに含めて、このリクエストをリモート側ディスクサブシステム４に送信する（Ｓ１２３）。
【００５３】
リモート側のデータ転送部は、リクエストの到着を監視している（Ｓ１２４）。リモート側のデータ転送部がローカル側ディスクサブシステム２からのリクエストを受信すると、受信したリクエストから更新データ及び更新位置を抽出する（Ｓ１２５、Ｓ１２６）。
【００５４】
そして、プライマリボリューム４０１の更新位置（リクエストから抽出した更新位置）に格納されている差分データを読み出す（Ｓ１２７）。そして、差分データを書き込む領域を差分ボリューム４０２に確保し（Ｓ１２８）、Ｓ１２７で読み出した差分データをＳ１２８で確保した差分ボリューム４０２の領域に書き込む（Ｓ１２９）。その後、リクエストから抽出した更新データをリクエストから抽出した更新位置に書き込んで（Ｓ１３０）、マッピングテーブルの更新位置に差分データを格納した領域を書き込む（Ｓ１３１）。その後、リモート側のデータの更新が完了したので、ローカル側ディスクサブシステム２に完了通知を送信する（Ｓ１３２）。
【００５５】
リクエストを送信したローカル側のデータ転送部は、完了通知の到着を監視している（Ｓ１３３）。そして、ローカル側のデータ転送部がリモート側ディスクサブシステム４からの完了通知を受信すると、プライマリボリューム２０１の更新位置に格納されている差分データを読み出して、更新位置に更新データを書き込む（Ｓ１３４）。そして、更新位置から読み出した差分データを差分ボリューム２０２に格納し（Ｓ１３５）、マッピングテーブルの更新位置に差分データを格納した領域を書き込む（Ｓ１３６）。
【００５６】
このように第２の実施の形態のデータ転送処理では、ローカル側からリモート側へ転送されるデータを更新データと格納位置のみとし、コピーオンライトに必要な他の情報（差分データ、マッピングテーブルの情報）はリモート側で取得する。よって、ローカル側からリモート側へ転送されるデータを必要最低限に抑えることができ、転送処理に要する時間を短縮して、転送性能を向上させることができる。また、データ転送用ネットワーク５の負荷の増大を低減することができる。
【００５７】
図７は、本発明の第３の実施の形態のデータ転送処理のフローチャートである。第３の実施の形態のデータ転送処理では、差分データやマッピングテーブルの一致を確認した後にデータを更新し、データ同期の信頼性を向上させたものである。
【００５８】
まず、ローカル側のデータ転送部は、差分スナップショット管理プログラム１２３によるデータ更新要求（すなわち、更新要求に基づくコピーオンライトの発生）を検出すると（Ｓ１４１）、更新要求を解析して、更新要求に含まれる更新データ（ディスクに書き込まれるデータ）とデータ更新位置（データを書き込むアドレス）を抽出する（Ｓ１４２）。その後、プライマリボリューム２０１の更新位置に記憶されている差分データ（更新前のデータ）を読み出す（Ｓ１４３）。さらに、差分データを格納する差分ボリュームの領域を決定し、当該更新後のマッピング情報（マッピングテーブルの更新位置に書き込まれる差分データを格納する領域の情報）を作成する（Ｓ１０４）。なお、この段階ではマッピングテーブル２０３にマッピング情報は書き込まれない。
【００５９】
そして、これら取得した更新データ、更新位置、差分データ及びマッピング情報をグループにまとめてリクエストに含めて、このリクエストをリモート側ディスクサブシステム４に送信する（Ｓ１４５）。
【００６０】
リモート側のデータ転送部は、リクエストの到着を監視している（Ｓ１４６）。リモート側のデータ転送部がローカル側ディスクサブシステム２からのリクエストを受信すると、受信したリクエストから更新データ、更新位置、差分データ及びマッピング情報を抽出する（Ｓ１４７〜Ｓ１５０）。
【００６１】
そして、プライマリボリューム４０１の更新位置に記憶されているデータが、リクエストから抽出した差分データと等しいか否かを判定する（Ｓ１５１）。その結果、両データが等しくなければ、転送されたデータに異常があると判定し、管理者にエラーを報知する（Ｓ１６２）。一方、両データが等しければ、転送されたデータに異常はないと判定し、プライマリボリューム４０１の更新位置にリクエストから抽出した更新データを書き込む（Ｓ１５２）。
【００６２】
そして、リクエストから抽出した差分データを差分ボリューム４０２に書き込む（Ｓ１５３）。この差分データの書き込み位置は、リクエストから抽出したマッピング情報に含まれる差分データの格納領域である。その後、当該更新後のマッピング情報（マッピングテーブルの更新位置に書き込まれる差分データを格納する領域の情報）を作成する（Ｓ１５４）。
【００６３】
そして、Ｓ１５４で作成したマッピング情報と、リクエストから抽出したマッピング情報とが一致するか否かを判定する（Ｓ１５５）。その結果、両マッピング情報が一致しなければ、転送されたデータに異常があると判定し、管理者にエラーを報知する（Ｓ１６２）。なお、このとき、既にプライマリボリューム４０１に更新位置に差分データを書き込み、また、差分ボリューム４０２に書き込んだデータを消去することによって、プライマリボリューム４０１と差分ボリューム４０２をデータ更新前の状態に戻すとよい。
【００６４】
一方、両マッピング情報が等しければ、転送されたデータに異常はないと判定し、リクエストから抽出したマッピング情報をマッピングテーブル４０３に書き込む（Ｓ１５６）。その後、リモート側のデータの更新が完了したので、ローカル側ディスクサブシステム２に完了通知を送信する（Ｓ１５７）。
【００６５】
リクエストを送信したローカル側のデータ転送部は、完了通知の到着を監視している（Ｓ１５８）。そして、ローカル側のデータ転送部がリモート側ディスクサブシステム４からの完了通知を受信すると、更新データをプライマリボリューム２０１に書き込み（Ｓ１５９）、Ｓ１４３で読み出した差分データを差分ボリューム２０２に書き込み（Ｓ１６０）、Ｓ１４４で作成したマッピング情報をマッピングテーブルに書き込む（Ｓ１６１）。
【００６６】
このように第３の実施の形態のデータ転送処理では、更新データ、更新データの格納位置、差分データ及びマッピング情報を、ローカル側からリモート側へ転送し、ローカル側の差分データとリモート側の差分データとが一致することを確認して更新データを書き込む。さらに、ローカル側で作成されたマッピング情報とリモート側で作成されたマッピング情報とが一致することを確認してマッピングテーブルを更新する。よって、第１の実施の形態の効果に加え、データ転送の信頼性をさらに向上させることができる。
【００６７】
図８、図９、図１０は、本発明の第４の実施の形態のデータ転送処理のフローチャートである。第４の実施の形態のデータ転送処理では、前述した他の実施の形態の処理と異なり、データ転送用ネットワーク５の混雑度によってデータ転送方法を変えるものである。
【００６８】
図８は、ローカル側ディスクサブシステムの転送処理のフローチャートである。
【００６９】
まず、ローカル側のデータ転送部は、差分スナップショット管理プログラム１２３によるデータ更新要求（すなわち、更新要求に基づくコピーオンライトの発生）を検出すると（Ｓ１７１）、更新要求を解析して、更新要求に含まれる更新データ（ディスクに書き込まれるデータ）とデータ更新位置（データを書き込むアドレス）を抽出する（Ｓ１７２）。その後、プライマリボリューム２０１の更新位置に記憶されている差分データ（更新前のデータ）を読み出す（Ｓ１７３）。さらに、差分データを格納する差分ボリュームの領域を決定し、当該データ更新後のマッピング情報（マッピングテーブルの更新位置に書き込まれる差分データを格納する領域の情報）を作成する（Ｓ１７４）。なお、この段階ではマッピングテーブル２０３にマッピング情報は書き込まれない。
【００７０】
その後、ローカル側のデータ転送部は、データ転送用ネットワーク５の利用率を監視しており、この利用率を計算する（Ｓ１７５）。この利用率の計算は、例えば、過去１時間に送信したデータ量を１時間あたりの回線速度（転送可能なデータ量）で除することによって求めることができる。
【００７１】
そして、計算された利用率と予め設定された上限値とを比較する（Ｓ１７６）。その結果、ネットワーク利用率が上限値を超えていれば、データ転送用ネットワーク５の負荷が大きいと判定する。そして、これら取得した更新データ及び更新位置をリクエストに含めて、リモート側ディスクサブシステム４の受信処理１にリクエストを送信する（Ｓ１７７）。
【００７２】
一方、ネットワーク利用率が上限値を超えていなければ、データ転送用ネットワーク５の負荷は小さい（まだ余裕がある）と判定し、これら取得した更新データ、更新位置、差分データ及びマッピング情報をグループにまとめてリクエストに含めて、リモート側ディスクサブシステム４の受信処理２にリクエストを送信する（Ｓ１７８）。
【００７３】
リクエストを送信したローカル側のデータ転送部は、完了通知の到着を監視している（Ｓ１７９）。そして、ローカル側のデータ転送部がリモート側ディスクサブシステム４からの完了通知を受信すると、更新データをプライマリボリューム２０１に書き込み（Ｓ１８０）、Ｓ１７３で読み出した差分データを差分ボリューム２０２に書き込み（Ｓ１８１）、Ｓ１７４で作成したマッピング情報をマッピングテーブルに書き込む（Ｓ１８２）。
【００７４】
図９は、リモート側ディスクサブシステムの受信処理１のフローチャートである。
【００７５】
リモート側のデータ転送部は、リクエストの到着を監視している（Ｓ１９１）。リモート側のデータ転送部がローカル側ディスクサブシステム２からの受信処理１に対するリクエストを受信すると、受信したリクエストから更新データ及び更新位置を抽出する（Ｓ１９２、Ｓ１９３）。
【００７６】
そして、プライマリボリューム４０１の更新位置（リクエストから抽出した更新位置）に格納されている差分データを読み出す（Ｓ１９４）。そして、差分データを書き込む領域を差分ボリューム４０２に確保し（Ｓ１９５）、Ｓ１９４で読み出した差分データをＳ１９５で確保した差分ボリューム４０２の領域に書き込む（Ｓ１９６）。その後、リクエストから抽出した更新データをリクエストから抽出した更新位置に書き込んで（Ｓ１９７）、マッピングテーブルの更新位置に差分データを格納した領域を書き込む（Ｓ１９８）。その後、リモート側のデータの更新が完了したので、ローカル側ディスクサブシステム２に完了通知を送信する（Ｓ１９９）。
【００７７】
図１０は、リモート側ディスクサブシステムの受信処理１のフローチャートである。
【００７８】
リモート側のデータ転送部は、リクエストの到着を監視している（Ｓ２０１）。リモート側のデータ転送部がローカル側ディスクサブシステム２からの受信処理２に対するリクエストを受信すると、受信したリクエストから更新データ、更新位置、差分データ及びマッピング情報を抽出する（Ｓ２０２〜Ｓ２０５）。
【００７９】
そして、プライマリボリューム４０１の更新位置に記憶されているデータが、リクエストから抽出した差分データと等しいか否かを判定する（Ｓ２０６）。その結果、両データが等しくなければ、転送されたデータに異常があると判定し、管理者にエラーを報知する（Ｓ２１３）。一方、両データが等しければ、転送されたデータに異常はないと判定し、プライマリボリューム４０１の更新位置にリクエストから抽出した更新データを書き込む（Ｓ２０７）。
【００８０】
そして、リクエストから抽出した差分データを差分ボリューム４０２に書き込む（Ｓ２０８）。この差分データの書き込み位置は、リクエストから抽出したマッピング情報に含まれる差分データの格納領域である。その後、当該更新後のマッピング情報（マッピングテーブルの更新位置に書き込まれる差分データを格納する領域の情報）を作成する（Ｓ２０９）。
【００８１】
そして、Ｓ２０９で作成したマッピング情報と、リクエストから抽出したマッピング情報とが一致するか否かを判定する（Ｓ２１０）。その結果、両マッピング情報が一致しなければ、転送されたデータに異常があると判定し、管理者にエラーを報知する（Ｓ２１３）。なお、このとき、既にプライマリボリューム４０１に更新位置に差分データを書き込み、また、差分ボリューム４０２に書き込んだデータを消去することによって、プライマリボリューム４０１と差分ボリューム４０２をデータ更新前の状態に戻すとよい。
【００８２】
一方、両マッピング情報が等しければ、転送されたデータに異常はないと判定し、リクエストから抽出したマッピング情報をマッピングテーブル４０３に書き込む（Ｓ２１１）。その後、リモート側のデータの更新が完了したので、ローカル側ディスクサブシステム２に完了通知を送信する（Ｓ２１２）。
【００８３】
このように第４の実施の形態のデータ転送処理では、ローカル側とリモート側を接続するデータ転送用ネットワーク５の負荷状況（回線利用率）に応じて、ローカル側からリモート側へ転送されるデータを変更する。すなわち、回線が混雑しているときは転送データ量を減らし、空いているときはコピーオンライトに関する冗長データを付加して信頼性を確保することができる。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施の形態のストレージシステムの構成を示すブロック図である。
【図２】本発明の実施の形態のＮＡＳ１の構成を示すブロック図である。
【図３】本発明の実施の形態のスナップショットの管理の説明図である。
【図４】本発明の実施の形態のスナップショットの管理の説明図である。
【図５】本発明の第１の実施の形態のデータ転送処理のフローチャートである。
【図６】本発明の第２の実施の形態のデータ転送処理のフローチャートである。
【図７】本発明の第３の実施の形態のデータ転送処理のフローチャートである。
【図８】本発明の第４の実施の形態のデータ転送処理のうちローカル側の転送処理のフローチャートフローチャートである。
【図９】本発明の第４の実施の形態のデータ転送処理のうちリモート側の受信処理１のフローチャートである。
【図１０】本発明の第４の実施の形態のデータ転送処理のうちリモート側の受信処理２のフローチャートである。
【符号の説明】
【００８５】
１      ローカル側ＮＡＳ
２      ローカル側ディスクサブシステム
３      リモート側ＮＡＳ
４      リモート側ディスクサブシステム
５      データ転送用ネットワーク
６      ＬＡＮ
７      ＣＩＦＳクライアント
８      ＮＦＳクライアント
１１    ＣＰＵ
１２    メモリ
１４    ネットワークインターフェース
１５    ストレージインターフェース
１２１  ファイルサーバプログラム
１２２  差分スナップショット作成プログラム
１２３  差分スナップショット管理プログラム
１２４  差分スナップショット合成プログラム
１２５  ファイルシステム処理プログラム
２０１、４０１  プライマリボリューム
２０２、４０２  差分ボリューム
２０３、４０３  マッピングテーブル
【図１】
2005292952.tif 000003
【図２】
2005292952.tif 000004
【図３】
2005292952.tif 000005
【図４】
2005292952.tif 000006
【図５】
2005292952.tif 000007
【図６】
2005292952.tif 000008
【図７】
2005292952.tif 000009
【図８】
2005292952.tif 000010
【図９】
2005292952.tif 000011
【図１０】
2005292952.tif 000012