(57)【要約】【課題】バックアップ論理ユニットをマスタ論理ユニットに同期化するのに必要なコピー処理の期間におけるマスタ論理ユニットの負荷を低減する。【解決手段】マスタＬＵ２１０-0とバックアップＬＵ２１０-1との同期化がｔ１で停止されると当該ＬＵ２１０-1にスナップショットが採取され、その後マスタＬＵ２１０-0とバックアップＬＵ２１０-2との同期化がｔ２で停止されると当該ＬＵ２１０-2にスナップショットが採取される。その後、バックアップＬＵ２１０-1の再同期化が指示されると、テーブルＤＴ１により示されるｔ１から現在までにマスタＬＵ２１０-0に書かれたデータの集合をＤ１、テーブルＤＴ２により示されるｔ２から現在までにマスタＬＵ２１０-0に書かれたデータの集合をＤ２とすると、コントローラ２２はＤ１のうちのＤ１−Ｄ２の部分を、バックアップＬＵ２１０-2からバックアップＬＵ２１０-1にコピーする。【選択図】      図８
2005085117.tif 000002
【特許請求の範囲】
【請求項１】
ホスト計算機から要求されたデータの読み出し／書き込みが行われるマスタ論理ユニットと、前記マスタ論理ユニットの複製を保持するための第１のバックアップ論理ユニット及び第２のバックアップ論理ユニットを含む複数のバックアップ論理ユニットとを備えたディスクアレイを制御するディスクアレイコントローラにおいて、
前記マスタ論理ユニットと前記第１のバックアップ論理ユニットとが同期化されている状態で前記第１のバックアップ論理ユニットへのスナップショット採取が前記ホスト計算機から指示されることにより当該同期化状態が停止された第１の時点を基準に、それ以降に発生した前記マスタ論理ユニットに対するデータ更新によって前記マスタ論理ユニットと前記第１のバックアップ論理ユニットとの間でデータが相異する更新位置を記録するための第１の差分管理テーブルと、
前記第１の時点以降に前記マスタ論理ユニットと前記第２のバックアップ論理ユニットとが同期化されている状態で前記第２のバックアップ論理ユニットへのスナップショット採取が前記ホスト計算機から指示されることにより当該同期化状態が停止された第２の時点を基準に、それ以降に発生した前記マスタ論理ユニットに対するデータ更新によって前記マスタ論理ユニットと前記第２のバックアップ論理ユニットとの間でデータが相異する更新位置を記録するための第２の差分管理テーブルと、
前記ホスト計算機から前記第１のバックアップ論理ユニットを前記マスタ論理ユニットに再同期化することが指示された場合、前記第１の時点以降に更新されたデータを前記第１のバックアップ論理ユニットにコピーするコピー手段であって、前記第１の差分管理テーブル及び前記第２の差分管理テーブルのうち、前記第１の差分管理テーブルのみによって示される更新位置のデータを、前記第２のバックアップ論理ユニットから前記第１のバックアップ論理ユニットにコピーする第１のコピー手段と、前記第１の差分管理テーブル及び前記第２の差分管理テーブルによって共に示される更新位置のデータを、前記マスタ論理ユニットから前記第１のバックアップ論理ユニットにコピーする第２のコピー手段とを含むコピー手段と
を具備することを特徴とするディスクアレイコントローラ。
【請求項２】
前記第１のコピー手段によるコピー時に、対応する更新位置を示す情報を前記第１の差分管理テーブルから削除し、前記第２のコピー手段によるコピー時に、対応する更新位置を示す情報を前記第１の差分管理テーブル及び前記第２の差分管理テーブルから削除するテーブル操作手段を更に具備することを特徴とする請求項１記載のディスクアレイコントローラ。
【請求項３】
前記コピー手段によるコピー処理中に前記ホスト計算機からデータの書き込みが要求された場合、当該データを前記マスタ論理ユニット及び前記第１のバックアップ論理ユニットの同一位置に書き込む手段を更に具備し、
前記テーブル操作手段は、前記書き込み手段によりデータが書き込まれた位置が、前記第１の差分管理テーブルに更新位置として記録されている場合に当該更新位置を示す情報を前記第１の差分管理テーブルから削除すると共に当該更新位置を示す情報を前記第２の差分管理テーブルに記録することを特徴とする請求項２記載のディスクアレイコントローラ。
【請求項４】
ホスト計算機から要求されたデータの読み出し／書き込みが行われるマスタ論理ユニットと、前記マスタ論理ユニットの複製を保持するための第１のバックアップ論理ユニット及び第２のバックアップ論理ユニットを含む複数のバックアップ論理ユニットとを備えたディスクアレイを制御するディスクアレイコントローラにおいて、
前記マスタ論理ユニットと前記第１のバックアップ論理ユニットとが同期化されている状態で前記第１のバックアップ論理ユニットへのスナップショット採取が前記ホスト計算機から指示されることにより当該同期化状態が停止された第１の時点を基準に、それ以降に発生した前記マスタ論理ユニットに対するデータ更新によって前記マスタ論理ユニットと前記第１のバックアップ論理ユニットとの間でデータが相異する更新位置を記録するための第１の差分管理テーブルと、
前記マスタ論理ユニットと前記第２のバックアップ論理ユニットとが同期化されている状態で前記第２のバックアップ論理ユニットへのスナップショット採取が前記ホスト計算機から指示されることにより当該同期化状態が停止された第２の時点を基準に、それ以降に発生した前記マスタ論理ユニットに対するデータ更新によって前記マスタ論理ユニットと前記第２のバックアップ論理ユニットとの間でデータが相異する更新位置を記録するための第２の差分管理テーブルと、
前記第１の時点が前記第２の時点に先行している状態で前記ホスト計算機から前記第１のバックアップ論理ユニットを前記マスタ論理ユニットに再同期化することが指示された第１の場合には、前記第１の時点以降に更新されたデータを前記第１のバックアップ論理ユニットにコピーし、前記第２の時点が前記第１の時点に先行している状態で前記ホスト計算機から前記第２のバックアップ論理ユニットを前記マスタ論理ユニットに再同期化することが指示された第２の場合には、前記第２の時点以降に更新されたデータを前記第２のバックアップ論理ユニットにコピーするコピー手段であって、前記第１の場合には、前記第１の差分管理テーブル及び前記第２の差分管理テーブルのうち、前記第１の差分管理テーブルのみによって示される更新位置のデータを、前記第２のバックアップ論理ユニットから前記第１のバックアップ論理ユニットにコピーし、前記第２の場合には、前記第１の差分管理テーブル及び前記第２の差分管理テーブルのうち、前記第２の差分管理テーブルのみによって示される更新位置のデータを、前記第１のバックアップ論理ユニットから前記第２のバックアップ論理ユニットにコピーする第１のコピー手段と、前記第１の場合には、前記第１の差分管理テーブル及び前記第２の差分管理テーブルによって共に示される更新位置のデータを、前記マスタ論理ユニットから前記第１のバックアップ論理ユニットにコピーし、前記第２の場合には、前記第１の差分管理テーブル及び前記第２の差分管理テーブルによって共に示される更新位置のデータを、前記マスタ論理ユニットから前記第２のバックアップ論理ユニットにコピーする第２のコピー手段とを含むコピー手段と
を具備することを特徴とするディスクアレイコントローラ。
【請求項５】
前記第１の場合における前記第１のコピー手段によるコピー時には、対応する更新位置を示す情報を前記第１の差分管理テーブルから削除し、前記第２の場合における前記第１のコピー手段によるコピー時には、対応する更新位置を示す情報を前記第２の差分管理テーブルから削除し、前記第２のコピー手段によるコピー時には、対応する更新位置を示す情報を前記第１の差分管理テーブル及び前記第２の差分管理テーブルから削除するテーブル操作手段を更に具備することを特徴とする請求項４記載のディスクアレイコントローラ。
【請求項６】
前記第１の場合における前記コピー手段によるコピー処理中に前記ホスト計算機からデータの書き込みが要求された場合に、当該データを前記マスタ論理ユニット及び前記第１のバックアップ論理ユニットの同一位置に書き込み、前記第２の場合における前記コピー手段によるコピー処理中に前記ホスト計算機からデータの書き込みが要求された場合に、当該データを前記マスタ論理ユニット及び前記第２のバックアップ論理ユニットの同一位置に書き込む手段を更に具備し、
前記テーブル操作手段は、前記第１の場合に、前記書き込み手段によりデータが書き込まれた位置が、前記第１の差分管理テーブルに更新位置として記録されているときは、当該更新位置を示す情報を前記第１の差分管理テーブルから削除すると共に当該更新位置を示す情報を前記第２の差分管理テーブルに記録し、前記第２の場合に、前記書き込み手段によりデータが書き込まれた位置が、前記第２の差分管理テーブルに更新位置として記録されているときは、当該更新位置を示す情報を前記第２の差分管理テーブルから削除すると共に当該更新位置を示す情報を前記第１の差分管理テーブルに記録することを特徴とする請求項５記載のディスクアレイコントローラ。
【請求項７】
ホスト計算機から要求されたデータの読み出し／書き込みが行われるマスタ論理ユニットと、前記マスタ論理ユニットの複製を保持するための複数のバックアップ論理ユニットとを備えたディスクアレイを制御するディスクアレイコントローラにおいて、
前記マスタ論理ユニットと前記複数のバックアップ論理ユニットのうちの１つとが同期化されている状態で前記ホスト計算機からスナップショット採取が指示されることにより当該同期化状態が停止された時点以降に発生した前記マスタ論理ユニットに対するデータ更新の更新位置を記録するための差分管理テーブルと、
前記マスタ論理ユニットと前記複数のバックアップ論理ユニットのうちの１つである第１のバックアップ論理ユニットとが同期化されている状態で前記ホスト計算機からスナップショット採取が指示されることにより当該同期化状態が停止された後に、前記ホスト計算機から前記複数のバックアップ論理ユニットのうちの他の１つである第２のバックアップ論理ユニットを前記マスタ論理ユニットに同期化することが指示された場合、前記第２のバックアップ論理ユニットを前記マスタ論理ユニットに同期化するためのコピー処理を実行するコピー手段であって、前記差分管理テーブルによって示される更新位置のデータを、前記マスタ論理ユニットから前記第２のバックアップ論理ユニットにコピーする第１のコピー手段と、前記差分管理テーブルによって更新位置が示されていないデータを、前記第１のバックアップ論理ユニットから前記第２のバックアップ論理ユニットにコピーする第２のコピー手段とを含むコピー手段と
を具備することを特徴とするディスクアレイコントローラ。
【請求項８】
前記第１のコピー手段によるコピー時に、対応する更新位置を示す情報を前記差分管理テーブルから削除するテーブル操作手段を更に具備することを特徴とする請求項７記載のディスクアレイコントローラ。
【請求項９】
前記コピー手段によるコピー処理中に前記ホスト計算機からデータの書き込みが要求された場合、当該データを前記マスタ論理ユニット及び前記第２のバックアップ論理ユニットの同一位置に書き込む手段を更に具備し、
前記テーブル操作手段は、前記書き込み手段によりデータが書き込まれた位置がコピー未完了の場合、当該位置を示す情報を前記差分管理テーブルに記録することを特徴とする請求項８記載のディスクアレイコントローラ。
【請求項１０】
ホスト計算機から要求されたデータの読み出し／書き込みが行われるマスタ論理ユニットと、前記マスタ論理ユニットの複製を保持するための第１のバックアップ論理ユニット及び第２のバックアップ論理ユニットを含む複数のバックアップ論理ユニットとを備えたディスクアレイと、
前記ディスクアレイを制御するディスクアレイコントローラとを具備し、
前記ディスクアレイコントローラは、
前記マスタ論理ユニットと前記第１のバックアップ論理ユニットとが同期化されている状態で前記第１のバックアップ論理ユニットへのスナップショット採取が前記ホスト計算機から指示されることにより当該同期化状態が停止された第１の時点を基準に、それ以降に発生した前記マスタ論理ユニットに対するデータ更新によって前記マスタ論理ユニットと前記第１のバックアップ論理ユニットとの間でデータが相異する更新位置を記録するための第１の差分管理テーブルと、
前記第１の時点以降に前記マスタ論理ユニットと前記第２のバックアップ論理ユニットとが同期化されている状態で前記第２のバックアップ論理ユニットへのスナップショット採取が前記ホスト計算機から指示されることにより当該同期化状態が停止された第２の時点を基準に、それ以降に発生した前記マスタ論理ユニットに対するデータ更新によって前記マスタ論理ユニットと前記第２のバックアップ論理ユニットとの間でデータが相異する更新位置を記録するための第２の差分管理テーブルと、
前記ホスト計算機から前記第１のバックアップ論理ユニットを前記マスタ論理ユニットに再同期化することが指示された場合、前記第１の時点以降に更新されたデータを前記第１のバックアップ論理ユニットにコピーするコピー手段であって、前記第１の差分管理テーブル及び前記第２の差分管理テーブルのうち、前記第１の差分管理テーブルのみによって示される更新位置のデータを、前記第２のバックアップ論理ユニットから前記第１のバックアップ論理ユニットにコピーする第１のコピー手段と、前記第１の差分管理テーブル及び前記第２の差分管理テーブルによって共に示される更新位置のデータを、前記マスタ論理ユニットから前記第１のバックアップ論理ユニットにコピーする第２のコピー手段とを含むコピー手段と
から構成されることを特徴とするディスクアレイ装置。
【請求項１１】
ホスト計算機から要求されたデータの読み出し／書き込みが行われるマスタ論理ユニットと、前記マスタ論理ユニットの複製を保持するための複数のバックアップ論理ユニットとを備えたディスクアレイと、
前記ディスクアレイを制御するディスクアレイコントローラとを具備し、
前記ディスクアレイコントローラは、
前記マスタ論理ユニットと前記複数のバックアップ論理ユニットのうちの１つとが同期化されている状態で前記ホスト計算機からスナップショット採取が指示されることにより当該同期化状態が停止された時点以降に発生した前記マスタ論理ユニットに対するデータ更新の更新位置を記録するための差分管理テーブルと、
前記マスタ論理ユニットと前記複数のバックアップ論理ユニットのうちの１つである第１のバックアップ論理ユニットとが同期化されている状態で前記ホスト計算機からスナップショット採取が指示されることにより当該同期化状態が停止された後に、前記ホスト計算機から前記複数のバックアップ論理ユニットのうちの他の１つである第２のバックアップ論理ユニットを前記マスタ論理ユニットに同期化することが指示された場合、前記第２のバックアップ論理ユニットを前記マスタ論理ユニットに同期化するためのコピー処理を実行するコピー手段であって、前記差分管理テーブルによって示される更新位置のデータを、前記マスタ論理ユニットから前記第２のバックアップ論理ユニットにコピーする第１のコピー手段と、前記差分管理テーブルによって更新位置が示されていないデータを、前記第１のバックアップ論理ユニットから前記第２のバックアップ論理ユニットにコピーする第２のコピー手段とを含むコピー手段と
から構成されることを特徴とするディスクアレイ装置。
【請求項１２】
ホスト計算機から要求されたデータの読み出し／書き込みが行われるマスタ論理ユニットと、前記マスタ論理ユニットの複製を保持するための第１のバックアップ論理ユニット及び第２のバックアップ論理ユニットを含む複数のバックアップ論理ユニットとを備えたディスクアレイを制御するディスクアレイコントローラに適用されるディスクアレイ制御プログラムであって、
前記ディスクアレイコントローラに、
前記マスタ論理ユニットと前記第１のバックアップ論理ユニットとが同期化されている状態で前記第１のバックアップ論理ユニットへのスナップショット採取が前記ホスト計算機から指示されることにより当該同期化状態が停止された第１の時点以降、前記マスタ論理ユニットに対するデータ更新が発生する毎に、前記第１の差分管理テーブルにデータ更新の更新位置を記録するステップと、
前記第１の時点以降に前記マスタ論理ユニットと前記第２のバックアップ論理ユニットとが同期化されている状態で前記第２のバックアップ論理ユニットへのスナップショット採取が前記ホスト計算機から指示されることにより当該同期化状態が停止された第２の時点以降、前記マスタ論理ユニットに対するデータ更新が発生する毎に、前記第２の差分管理テーブルにデータ更新の更新位置を記録するステップと、
前記ホスト計算機から前記第１のバックアップ論理ユニットを前記マスタ論理ユニットに再同期化することが指示された場合、前記第１の時点以降に更新されたデータを前記第１のバックアップ論理ユニットにコピーするステップであって、前記第１の差分管理テーブル及び前記第２の差分管理テーブルのうち、前記第１の差分管理テーブルのみによって示される更新位置のデータを、前記第２のバックアップ論理ユニットから前記第１のバックアップ論理ユニットにコピーする第１のコピーステップと、前記第１の差分管理テーブル及び前記第２の差分管理テーブルによって共に示される更新位置のデータを、前記マスタ論理ユニットから前記第１のバックアップ論理ユニットにコピーする第２のコピーステップとを含むステップと
を実行させるためのディスクアレイ制御プログラム。
【請求項１３】
ホスト計算機から要求されたデータの読み出し／書き込みが行われるマスタ論理ユニットと、前記マスタ論理ユニットの複製を保持するための複数のバックアップ論理ユニットとを備えたディスクアレイを制御するディスクアレイコントローラに適用されるディスクアレイ制御プログラムであって、
前記ディスクアレイコントローラに、
前記マスタ論理ユニットと前記複数のバックアップ論理ユニットのうちの１つとが同期化されている状態で前記ホスト計算機からスナップショット採取が指示されることにより当該同期化状態が停止された時点以降、前記マスタ論理ユニットに対するデータ更新が発生する毎に、差分管理テーブルにデータ更新の更新位置を記録するステップと、
前記マスタ論理ユニットと前記複数のバックアップ論理ユニットのうちの１つである第１のバックアップ論理ユニットとが同期化されている状態で前記ホスト計算機からスナップショット採取が指示されることにより当該同期化状態が停止された後に、前記ホスト計算機から前記複数のバックアップ論理ユニットのうちの他の１つである第２のバックアップ論理ユニットを前記マスタ論理ユニットに同期化することが指示された場合、前記第２のバックアップ論理ユニットを前記マスタ論理ユニットに同期化するためのコピー処理を実行するステップであって、前記差分管理テーブルによって示される更新位置のデータを、前記マスタ論理ユニットから前記第２のバックアップ論理ユニットにコピーする第１のコピーステップと、前記差分管理テーブルによって更新位置が示されていないデータを、前記第１のバックアップ論理ユニットから前記第２のバックアップ論理ユニットにコピーする第２のコピーステップとを含むステップと
を実行させるためのディスクアレイ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ホスト計算機から要求されたデータの読み出し／書き込みが行われるマスタ論理ユニットのスナップショットをバックアップ論理ユニットに採取するのに備えて、当該バックアップ論理ユニットをマスタ論理ユニットに同期化するのに好適なディスクアレイコントローラ、ディスクアレイ装置及びディスクアレイ制御プログラムに関する。
【背景技術】
【０００２】
一般に外部記憶装置を備えたコンピュータシステムでは、当該外部記憶装置のデータを適宜別の記憶装置にバックアップすることが行われている。このようなデータのバックアップの機能としてスナップショット機能が知られている。スナップショット機能とは、マスタ論理ユニット（マスタＬＵ）と呼ばれる、ある時点の論理ディスクの内容を、バックアップ論理ユニット（バックアップＬＵ）と呼ばれる別の論理ディスクに複製する機能である。マスタＬＵとは、ホスト計算機上で動作するアプリケーションの実行により、当該ホスト計算機（アプリケーション）から要求されたデータの読み出し／書き込みが行われるＬＵ（論理ディスク）をいう。バックアップＬＵとは、マスタＬＵのデータの複製を保持しておくＬＵ（論理ディスク）をいう。スナップショットを実現するために、マスタＬＵと同じ大きさのバックアップＬＵが用意される。
【０００３】
従来、スナップショットデータの採取には、次の方法が適用されている。まず、スナップショットデータの採取が指示されるまで、マスタＬＵの内容とバックアップＬＵの内容とを一致化させる２重化制御（ミラー制御）、つまりマスタＬＵとバックアップＬＵとの同期化を行う。この状態でスナップショットの採取が指示されると、同期化を停止する。これによりバックアップＬＵにマスタＬＵのスナップショットデータが採取される。同期化を停止してからマスタＬＵに書き込まれたデータについては、差分データとして管理される。これにより、バックアップＬＵをマスタＬＵに再同期化する際には、差分データのみをバックアップＬＵに書き込むことで、短時間で再同期化が行える（マスタＬＵの内容全てをコピーする必要はない）。
【０００４】
この従来のスナップショット採取方法（以下、方法１と称する）においては、スナップショットが採取されたバックアップＬＵから、例えば磁気テープへのデータバックアップを行った後に、当該バックアップＬＵの内容を再度マスタＬＵと一致化させる「再同期化」の処理が必要となる。この再同期化の処理中には、差分データのみがマスタＬＵからバックアップＬＵへとコピーされる。このコピー処理の期間には、マスタＬＵには、バックアップＬＵへのデータコピーのためのアクセス（コピーアクセス）と、ホスト計算機からの読み出し／書き込み要求に従うアクセス（通常アクセス）とが集中する。
【０００５】
一方、マスタＬＵとバックアップＬＵとの同期化を停止した状態で、バックアップＬＵの内容をテンポラリＬＵにコピーすることで、当該テンポラリＬＵにスナップショットを採取する方法（以下、方法２と称する）が提案されている（例えば、特許文献１参照）。この方法２では、バックアップＬＵからテンポラリＬＵへのデータコピーが完了した段階で、バックアップＬＵの内容を再度マスタＬＵと一致化させる「再同期化」の処理が開始される。この方法２においても、上記方法１と同様に、再同期化の処理中には、差分データがマスタＬＵからバックアップＬＵへとコピーされる。
【特許文献１】特開２００１−３３１３７８号公報（段落００２５乃至００２８、図５）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上記したように従来は、マスタＬＵとバックアップＬＵとを同期化することでスナップショットを採取する方法として、方法１と方法２の２種類の方法が知られている。方法１では、マスタＬＵとバックアップＬＵとを同期化しておき、スナップショットの採取が指示されると、同期化を停止することで、バックアップＬＵにスナップショットが採取される。一方、方法２では、マスタＬＵとバックアップＬＵとの同期化を停止した状態で、バックアップＬＵの内容をテンポラリＬＵにコピーすることで、当該テンポラリＬＵにスナップショットが採取される。
【０００７】
いずれの方法においても、スナップショットが採取された後は、バックアップＬＵの内容を再度マスタＬＵと一致化させる「再同期化」の処理が必要となる。この再同期化の処理中には、差分データのみがマスタＬＵからバックアップＬＵへとコピーされる。このコピー処理の期間には、マスタＬＵには、バックアップＬＵへのデータコピーのためのアクセスと、ホスト計算機からの読み出し／書き込み要求に従うアクセスとが集中する。このため従来のスナップショット採取方法においては、バックアップＬＵの内容を再度マスタＬＵと一致化させる「再同期化」の処理の期間に、マスタＬＵの負荷の増大を招くという問題がある。
【０００８】
本発明は上記事情を考慮してなされたものでその目的は、バックアップ論理ユニットをマスタ論理ユニットに同期化するのに必要なコピー処理の期間におけるマスタ論理ユニットの負荷を低減できるディスクアレイコントローラ、ディスクアレイ装置及びディスクアレイ制御プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の１つの観点によれば、ホスト計算機から要求されたデータの読み出し／書き込みが行われるマスタ論理ユニットと、このマスタ論理ユニットの複製を保持するための第１のバックアップ論理ユニット及び第２のバックアップ論理ユニットを含む複数のバックアップ論理ユニットとを備えたディスクアレイを制御するディスクアレイコントローラが提供される。このディスクアレイコントローラは、上記マスタ論理ユニットと上記第１のバックアップ論理ユニットとが同期化されている状態で上記第１のバックアップ論理ユニットへのスナップショット採取が上記ホスト計算機から指示されることにより当該同期化状態が停止された第１の時点を基準に、それ以降に発生した上記マスタ論理ユニットに対するデータ更新によって上記マスタ論理ユニットと上記第１のバックアップ論理ユニットとの間でデータが相異する更新位置を記録するための第１の差分管理テーブルと、上記第１の時点以降に上記マスタ論理ユニットと上記第２のバックアップ論理ユニットとが同期化されている状態で上記第２のバックアップ論理ユニットへのスナップショット採取が上記ホスト計算機から指示されることにより当該同期化状態が停止された第２の時点を基準に、それ以降に発生した上記マスタ論理ユニットに対するデータ更新によって上記マスタ論理ユニットと上記第２のバックアップ論理ユニットとの間でデータが相異する更新位置を記録するための第２の差分管理テーブルと、上記ホスト計算機から上記第１のバックアップ論理ユニットを上記マスタ論理ユニットに再同期化することが指示された場合、上記第１の時点以降に更新されたデータを上記第１のバックアップ論理ユニットにコピーするコピー手段とを備えることを特徴とする。このコピー手段は、上記第１の差分管理テーブル及び上記第２の差分管理テーブルのうち、上記第１の差分管理テーブルのみによって示される更新位置のデータを、上記第２のバックアップ論理ユニットから上記第１のバックアップ論理ユニットにコピーする第１のコピー手段と、上記第１の差分管理テーブル及び上記第２の差分管理テーブルによって共に示される更新位置のデータを、上記マスタ論理ユニットから上記第１のバックアップ論理ユニットにコピーする第２のコピー手段とを含む。
【００１０】
このような構成においては、第１の時点から現在までにマスタ論理ユニットに書かれた、第１のバックアップ論理ユニットとの間で異なるデータの更新位置が第１の差分テーブルに記録され、第１の時点より後の第２の時点から現在までにマスタ論理ユニットに書かれた、第２のバックアップ論理ユニットとの間で異なるデータの更新位置が第２の差分テーブルに記録される。ここで、第１及び第２の差分管理テーブルのうち、第１の差分管理テーブルのみによって示される更新位置のデータは、マスタ論理ユニット及び第２のバックアップ論理ユニットの双方に存在する。これに対し、第１及び第２の差分管理テーブルによって共に示される更新位置のデータは、マスタ論理ユニットにみに存在する。そこで、上記の構成においては、第１の差分管理テーブルのみによって示される更新位置のデータについては、第２のバックアップ論理ユニット（現世代のバックアップ論理ユニット）から第１のバックアップ論理ユニット（１世代前のバックアップ論理ユニット）にコピーされる。このように、マスタ論理ユニットと第１のバックアップ論理ユニットとの間で相異するデータのうち、第２のバックアップ論理ユニットにも存在するデータについては、当該第２のバックアップ論理ユニットから第１のバックアップ論理ユニットにコピーすることにより、その分だけ、第１のバックアップ論理ユニットをマスタ論理ユニットに同期化するのに必要なコピー処理の期間におけるマスタ論理ユニットの負荷を低減できる。ここで、第１のバックアップ論理ユニットを再同期化した後、その同期化状態が停止されて、当該第１のバックアップ論理ユニットにスナップショットが採取され、その後、今度は第２のバックアップ論理ユニットの再同期化が指示された場合には、第１のバックアップ論理ユニットが前回スナップショット採取済みの（現世代の）バックアップ論理ユニットとなり、第２のバックアップ論理ユニットが次にスナップショットを採取するのに用いられる（１つ前の世代の）バックアップ論理ユニットとなる。そこで、第１及び第２のバックアップ論理ユニットの関係、並びに第１及び第２の差分管理テーブルの関係を、それぞれ上記第１のバックアップ論理ユニットの再同期化が指示された場合と逆にして、マスタ論理ユニットと第２のバックアップ論理ユニットとの間で相異するデータのうち、第１のバックアップ論理ユニットにも存在するデータについては、当該第１のバックアップ論理ユニットから第２のバックアップ論理ユニットにコピーするならば、その分だけ、第２のバックアップ論理ユニットをマスタ論理ユニットに同期化するのに必要なコピー処理の期間におけるマスタ論理ユニットの負荷を低減できる。
【００１１】
また本発明の他の観点によれば、ホスト計算機から要求されたデータの読み出し／書き込みが行われるマスタ論理ユニットと、このマスタ論理ユニットの複製を保持するための複数のバックアップ論理ユニットとを備えたディスクアレイを制御するディスクアレイコントローラが提供される。このディスクアレイコントローラは、上記マスタ論理ユニットと上記複数のバックアップ論理ユニットのうちの１つとが同期化されている状態で上記ホスト計算機からスナップショット採取が指示されることにより当該同期化状態が停止された時点以降に発生した上記マスタ論理ユニットに対するデータ更新の更新位置を記録するための差分管理テーブルと、上記マスタ論理ユニットと上記複数のバックアップ論理ユニットのうちの１つである第１のバックアップ論理ユニットとが同期化されている状態で上記ホスト計算機からスナップショット採取が指示されることにより当該同期化状態が停止された後に、上記ホスト計算機から上記複数のバックアップ論理ユニットのうちの他の１つである第２のバックアップ論理ユニットを上記マスタ論理ユニットに同期化することが指示された場合、上記第２のバックアップ論理ユニットを上記マスタ論理ユニットに同期化するためのコピー処理を実行するコピー手段とを備えることを特徴とする。このコピー手段は、上記差分管理テーブルによって示される更新位置のデータを、上記マスタ論理ユニットから上記第２のバックアップ論理ユニットにコピーする第１のコピー手段と、上記差分管理テーブルによって更新位置が示されていないデータを、上記第１のバックアップ論理ユニットから上記第２のバックアップ論理ユニットにコピーする第２のコピー手段とを含む。
【００１２】
このような構成においては、差分管理テーブルによって更新位置が示されているデータは、マスタ論理ユニットのみに存在するのに対し、差分管理テーブルによって更新位置が示されていないデータは、マスタ論理ユニットだけでなく、第１のバックアップ論理ユニットにも存在する。そこで、上記の構成においては、差分管理テーブルによって更新位置が示されていないデータについては、第１のバックアップ論理ユニットから第２のバックアップ論理ユニットにコピーされる。このように、マスタ論理ユニットと第２のバックアップ論理ユニットとの間で相異するデータのうち、第１のバックアップ論理ユニットにも存在するデータについては、当該第１のバックアップ論理ユニットから第２のバックアップ論理ユニットにコピーすることにより、その分だけ、第２のバックアップ論理ユニットをマスタ論理ユニットに同期化するのに必要なコピー処理の期間におけるマスタ論理ユニットの負荷を低減できる。ここで、第２のバックアップ論理ユニットを同期化した後、その同期化状態が停止されて、当該第２のバックアップ論理ユニットにスナップショットが採取され、その後、今度は別のバックアップ論理ユニットの同期化が指示された場合には、この第２のバックアップ論理ユニット（前回スナップショット採取済みのバックアップ論理ユニット）及び別のバックアップ論理ユニット（次にスナップショットを採取するバックアップ論理ユニット）の関係を、上記第１及び第２のバックアップ論理ユニットの関係に置き換えれば良い。これにより、マスタ論理ユニットと次にスナップショットを採取するバックアップ論理ユニットとの間で相異するデータのうち、前回スナップショット採取済みのバックアップ論理ユニットにも存在するデータについては、当該スナップショット採取済みのバックアップ論理ユニットから次にスナップショットを採取するバックアップ論理ユニットにコピーすることにより、その分だけ、次にスナップショットを採取するバックアップ論理ユニットをマスタ論理ユニットに同期化するのに必要なコピー処理の期間におけるマスタ論理ユニットの負荷を低減できる。
【発明の効果】
【００１３】
前回スナップショット採取済みのバックアップ論理ユニットのデータを利用することで、新たにバックアップ論理ユニットをマスタ論理ユニットに同期化するのに必要なコピー処理の期間におけるマスタ論理ユニットの負荷を低減できる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態につき図面を参照して説明する。  
［第１の実施形態］
図１は本発明の第１の実施形態に係る計算機システムの構成を示すブロック図である。図１の計算機システムは、各種アプリケーションを実行するホスト計算機１０と、このホスト計算機１０の外部記憶装置として用いられるディスクアレイ装置２０とから構成される。なお、ディスクアレイ装置２０がホスト計算機１０を含む複数のホスト計算機によって共有される計算機システムであっても構わない。
【００１５】
ディスクアレイ２１は、複数、例えば４台の論理ディスク装置２１０-0〜２１０-3から構成される。論理ディスク装置２１０-0〜２１０-3は、それぞれ少なくとも１台のディスク記憶装置、例えばハードディスクドライブ（ＨＤＤ）を用いて構成される。本実施形態では、各論理ディスク装置２１０-0〜２１０-3にそれぞれ論理ユニット（Logical Unit）が割り当てられる。ここでは、論理ディスク装置２１０-0に割り当てられる論理ユニットは、ホスト計算機１０がアプリケーションを実行することにより当該アプリケーションに従ってデータの読み出し／書き込みが行われるマスタ論理ユニット（以下、マスタＬＵと称する）として用いられる。そこで以下の説明では、論理ディスク装置２１０-0をマスタＬＵ（＃Ｍ）２１０-0と称する。一方、論理ディスク装置２１０-1，２１０-2，２１０-3に割り当てられる論理ユニットは、マスタＬＵ（＃Ｍ）２１０-0のデータの複製を保持するためのバックアップ論理ユニット（以下、バックアップＬＵと称する）として用いられる。そこで以下の説明では、論理ディスク装置２１０-1，２１０-2，２１０-3をそれぞれバックアップＬＵ（＃Ｂ１）２１０-1，（＃Ｂ２）２１０-2，２１０-3と称する。このように本実施形態では、バックアップＬＵは複数台（３台）存在する。ここでは、各バックアップＬＵの世代はそれぞれ異なり、バックアップＬＵ（＃Ｂ１）は第１世代、バックアップＬＵ（＃Ｂ２）は第２世代、バックアップＬＵ（＃Ｂ３）は第３世代である。つまりバックアップＬＵ（＃Ｂ１）よりバックアップＬＵ（＃Ｂ２）のスナップショットの方が新しく、バックアップＬＵ（＃Ｂ２）よりバックアップＬＵ（＃Ｂ３）のスナップショットの方が更に新しい。なお、ディスクアレイ２１におけるマスタＬＵ及びバックアップＬＵの割り当て方と論理ディスク装置の数は、本実施形態に限られるものではない。
【００１６】
ディスクアレイコントローラ２２は、ホスト計算機１０からの要求に応じてディスクアレイ２１内の各ＬＵ２１０-0〜２１０-3に対するアクセスを制御する。ディスクアレイコントローラ２２は、当該コントローラ２２の主制御部をなすマイクロプロセッサと、当該マイクロプロセッサが実行する制御プログラムが格納されるプログラムメモリ（いずれも図示せず）とを備えている。ディスクアレイコントローラ２２はまた書き換えが可能な不揮発性メモリ２２０を備えている。本実施形態における不揮発性メモリ２２０は、バッテリでバックアップされた揮発性メモリ（例えばＲＡＭ）を用いて実現されている。しかし不揮発性メモリ２２０にフラッシュメモリを用いることも可能である。この不揮発性メモリ２２０には、差分管理テーブルＤＴが格納される。差分管理テーブルＤＴは、マスタＬＵ（＃Ｍ）２１０-0とバックアップＬＵ（＃Ｂｋ）２１０-k（ｋは１〜３のいずれか）との間の同期化が停止されている状態で、マスタＬＵ（＃Ｍ）２１０-0のデータ更新が発生した場合に、その更新されたデータを差分データとして管理するのに用いられる。ここでは、差分管理テーブルＤＴは、マスタＬＵ（＃Ｍ）２１０-0でのみデータが更新された際の更新位置（論理ブロックアドレス）を例えばビットマップ形式で記録するのに用いられる。つまり差分管理テーブルＤＴは、マスタＬＵ（＃Ｍ）２１０-0とバックアップＬＵ（＃Ｂｋ）２１０-kとの間でデータが異なる（マスタＬＵの方がデータが新しい）論理ブロックのアドレス（論理ブロックアドレス）を示すビットマップテーブルである。マスタＬＵ（＃Ｍ）２１０-0の各論理ブロックアドレスＬＢＡｉの領域と差分管理テーブルＤＴの各ビットｉとの対応関係を図２に示す。バックアップＬＵ（＃Ｂｋ）２１０-kの各論理ブロックアドレスＬＢＡｉの領域と差分管理テーブルＤＴの各ビットｉとの対応関係も、図２と同様である。なお、差分管理テーブルＤＴが、ディスクアレイ２１に格納される構成であっても構わない。
【００１７】
次に、図１の計算機システムにおけるディスクアレイコントローラ２２によるスナップショット管理について説明する。まず最初の段階では、ディスクアレイ装置２０内のディスクアレイコントローラ２２は、ホスト計算機１０からの同期化指示により、次にホスト計算機１０からスナップショットデータの採取が指示されるまで、マスタＬＵ（＃Ｍ）２１０-0とバックアップＬＵ（＃Ｂ１）２１０-1とを同期化する。マスタＬＵとバックアップＬＵとの同期化とは、マスタＬＵとバックアップＬＵとをミラー制御（２重化制御）することであり、マスタＬＵがミラー元、バックアップＬＵがミラー先となる。つまりディスクアレイコントローラ２２は、ホスト計算機１０からデータの書き込みが要求される毎に、そのデータを、マスタＬＵ（＃Ｍ）２１０-0の当該書き込み要求で指定された論理ブロックアドレス（開始論理ブロックアドレス）ＳＬＢＡから始まる指定サイズの領域に書き込むと共に、バックアップＬＵ（＃Ｂ１）２１０-1の論理ブロックアドレスＳＬＢＡから始まる指定サイズの領域にも書き込む。この状態では、ホスト計算機１０からはマスタＬＵ（＃Ｍ）２１０-0及びバックアップＬＵ（＃Ｂ１）２１０-1のうちのマスタＬＵだけが認識可能である。
【００１８】
このような状態で、ホスト計算機１０からディスクアレイコントローラ２２に対してスナップショット（スナップショットデータ）の採取が指示されたものとする。この場合、ディスクアレイコントローラ２２はマスタＬＵ（＃Ｍ）２１０-0とバックアップＬＵ（＃Ｂ１）２１０-1との同期化を停止する。これにより、スナップショット採取の指示時点におけるマスタＬＵ（＃Ｍ）２１０-0のデータがスナップショットデータとしてバックアップＬＵ（＃Ｂ１）２１０-1に採取されたことになる。この状態では、バックアップＬＵ（＃Ｂ１）はマスタＬＵ（＃Ｍ）から切り離され、ホスト計算機１０は、マスタＬＵ（＃Ｍ）及びバックアップＬＵ（＃Ｂ１）をそれぞれ認識可能である。通常、バックアップＬＵ（＃Ｂ１）にスナップショットが採取されると、そのバックアップＬＵ（＃Ｂ１）から例えば磁気テープへのデータバックアップ（テープバックアップ）が行われる。
【００１９】
次に、バックアップＬＵ（＃Ｂ１）２１０-1にスナップショットが採取された以降に、ホスト計算機１０からディスクアレイコントローラ２２に対してデータの書き込みが要求された場合の動作について、図３のフローチャートを参照して説明する。ここでは、説明を簡略化するために、書き込み要求で指定されるデータのサイズが１論理ブロックのサイズに一致するものとする。
【００２０】
ディスクアレイコントローラ２２は、マスタＬＵ（＃Ｍ）２１０-0とバックアップＬＵ（＃Ｂ１）２１０-1との同期化が停止されている状態で、ホスト計算機１０からのデータの書き込み要求を受け付けると、そのデータを、マスタＬＵ（＃Ｍ）２１０-0の当該書き込み要求で指定された論理ブロックアドレスの領域のみに書き込む（ステップＳ１）。ここで書き込み要求で指定された論理ブロックアドレスをＬＢＡｉ、当該論理ブロックアドレスＬＢＡｉで指定される論理ブロック領域をＡｉと表現する。ステップＳ１の実行により、マスタＬＵ（＃Ｍ）２１０-0の論理ブロック領域Ａｉのデータは、バックアップＬＵ（＃Ｂｋ）２１０-kの論理ブロック領域Ａｉのデータ（旧データ）とは異なるデータ（新データ）に更新される。そこでディスクアレイコントローラ２２は、このデータが相異する位置（更新位置）を、不揮発性メモリ２２０に格納されている差分管理テーブルＤＴに記録するために、当該テーブルＤＴ中のビットのうち、論理ブロック領域Ａｉを指定する論理ブロックアドレスＬＢＡｉに対応する全てのビットｉをＯＮ（オン）する（ステップＳ２）。
【００２１】
このように、ホスト計算機１０から要求されたデータがマスタＬＵ（＃Ｍ）２１０-0だけに書き込まれると、そのデータの更新位置を差分データの更新位置として管理するために、その更新位置を示す論理ブロックアドレスｉに対応する差分管理テーブルＤＴ中のビットｉがＯＮされる。このことは、差分管理テーブルＤＴに更新位置（論理ブロックアドレス）を記録したことと等価である。
【００２２】
バックアップＬＵ（＃Ｂ１）２１０-1にスナップショットを採取した後、次のスナップショットをバックアップＬＵ（＃Ｂ２）２１０-2に採取するのに備えて、当該バックアップＬＵ（＃Ｂ２）２１０-2をマスタＬＵ（＃Ｍ）２１０-0に同期化するものとする。この場合、基本的にはマスタＬＵ（＃Ｍ）２１０-0のデータをバックアップＬＵ（＃Ｂ２）２１０-2にコピーする必要がある。従来は、このマスタＬＵ（＃Ｍ）２１０-0のデータを全てバックアップＬＵ（＃Ｂ２）２１０-2にコピーしている。このコピー処理の期間、マスタＬＵ（＃Ｍ）２１０-0には、ホスト計算機１０からの読み出し／書き込み要求に従うアクセス（通常アクセス）と、バックアップＬＵ（＃Ｂ２）２１０-2へのデータコピーのためのアクセス（コピーアクセス）とが集中し、マスタＬＵ（＃Ｍ）の負荷が増大する。
【００２３】
そこで本実施形態では、バックアップＬＵ（＃Ｂ２）２１０-2をマスタＬＵ（＃Ｍ）２１０-0に同期化する期間におけるマスタＬＵ（＃Ｍ）の負荷を軽減するために、１世代前のバックアップＬＵ（＃Ｂ１）２１０-1のデータをバックアップＬＵ（＃Ｂ２）２１０-2へのコピーに利用する。このバックアップＬＵ（＃Ｂ１）２１０-1を利用してのコピー処理の概要について、図４を参照して説明する。
【００２４】
まず、マスタＬＵ（＃Ｍ）２１０-0及びバックアップＬＵ（＃Ｂ１）２１０-1のデータのうち、差分管理テーブルＤＴ中でＯＮ（オン）状態にあるビットに対応する論理ブロックアドレスのデータは相異しており、マスタＬＵ（＃Ｍ）２１０-0のデータの方が新しい。このバックアップＬＵ（＃Ｂ１）２１０-1には含まれず、マスタＬＵ（＃Ｍ）２１０-0のみに含まれているデータの集合を差分データＤと表現する。またバックアップＬＵ（＃Ｂ１）２１０-1に格納されているデータの集合をデータＢ１で表現し、マスタＬＵ（＃Ｍ）２１０-0及びバックアップＬＵ（＃Ｂ１）２１０-1の両方に含まれているデータ、つまり差分管理テーブルＤＴ中でＯＦＦ（オフ）状態にあるビットに対応する論理ブロックアドレスのデータの集合をＢ１−Ｄで表現する。
【００２５】
本実施形態では、バックアップＬＵ（＃Ｂ１）２１０-1には含まれず、マスタＬＵ（＃Ｍ）２１０-0のみに含まれているデータＤを、当該マスタＬＵ（＃Ｍ）からバックアップＬＵ（＃Ｂ２）にコピーする。一方、残りのデータ、即ちマスタＬＵ（＃Ｍ）及びバックアップＬＵ（＃Ｂ１）の両方に含まれているデータＢ１−Ｄについては、バックアップＬＵ（＃Ｂ１）からバックアップＬＵ（＃Ｂ２）にコピーする。
【００２６】
次に、バックアップＬＵ（＃Ｂ２）２１０-2をマスタＬＵ（＃Ｍ）２１０-0に同期化するためのコピー処理の詳細な手順について、図５のフローチャートを参照して説明する。今、ホスト計算機１０からディスクアレイコントローラ２２に対して、バックアップＬＵ（＃Ｂ２）２１０-2をマスタＬＵ（＃Ｍ）２１０-0に同期させるための同期化指示が与えられたものとする。この場合、ディスクアレイコントローラ２２は同期化のためのコピー処理を次のように実行する。
【００２７】
まずディスクアレイコントローラ２２は、論理ブロックアドレスＬＢＡｊを指定するパラメータｊを初期値０に初期設定する（ステップＳ１１）。次にディスクアレイコントローラ２２は、論理ブロックアドレスＬＢＡｊに対応する差分管理テーブルＤＴ中のビットｊを参照して、当該ビットｊがＯＮ状態にあるかを判定する（ステップＳ１２）。
【００２８】
もし、差分管理テーブルＤＴ中のビットｊがＯＮ状態にあるならば、ディスクアレイコントローラ２２は、当該ビットｊに対応する論理ブロックアドレスＬＢＡｊで指定されるマスタＬＵ（＃Ｍ）２１０-0のデータをバックアップＬＵ（＃Ｂ２）２１０-2の論理ブロックアドレスＬＢＡｊの位置にコピーする（ステップＳ１３）。そしてディスクアレイコントローラ２２は、差分管理テーブルＤＴ中のビットｊをＯＦＦした後（ステップＳ１４）、ステップＳ１５に進む。一方、差分管理テーブルＤＴ中のビットｊがＯＦＦ状態にあるならば、ディスクアレイコントローラ２２は、当該ビットｊに対応する論理ブロックアドレスＬＢＡｊで指定されるバックアップＬＵ（＃Ｂ１）２１０-1のデータをバックアップＬＵ（＃Ｂ２）２１０-2の論理ブロックアドレスＬＢＡｊの位置にコピーする（ステップＳ１６）。そしてディスクアレイコントローラ２２はステップＳ１５に進む。
【００２９】
ステップＳ１５において、ディスクアレイコントローラ２２は、差分管理テーブルＤＴの全ビットについて処理したか、つまりバックアップＬＵ（＃Ｂ２）２１０-2へのコピーが完了したかを判定する。もし、未処理のビットが残っているならば、ディスクアレイコントローラ２２はパラメータｊを１インクリメントした後（ステップＳ１７）、ステップＳ１２に戻る。
【００３０】
さて、上記のコピー処理中にもホスト計算機１０からディスクアレイコントローラ２２に対してデータの書き込みが要求される。そこで、コピー処理中にホスト計算機１０からディスクアレイコントローラ２２に対してデータの書き込みが要求された場合の動作について、図６のフローチャートを参照して説明する。ここでは、説明を簡略化するために、書き込み要求で指定されるデータのサイズが１論理ブロックのサイズに一致するものとする。
【００３１】
ディスクアレイコントローラ２２は、ホスト計算機１０からのデータの書き込み要求を受け付けると、そのデータを、マスタＬＵ（＃Ｍ）２１０-0の当該書き込み要求で指定された論理ブロックアドレスの領域に書き込む（ステップＳ２１）。ここで書き込み要求で指定された論理ブロックアドレスをＬＢＡｉ、当該論理ブロックアドレスＬＢＡｉで指定される論理ブロック領域をＡｉと表現する。次にディスクアレイコントローラ２２は、バックアップＬＵ（＃Ｂ２）２１０-2をマスタＬＵ（＃Ｍ）２１０-0に同期化するために、マスタＬＵ（＃Ｍ）２１０-0の論理ブロック領域Ａｉに書き込んだのと同じデータをバックアップＬＵ（＃Ｂ２）２１０-2の論理ブロック領域Ａｉにも書き込む（ステップＳ２２）。
【００３２】
次にディスクアレイコントローラ２２は、本実施形態のようにバックアップＬＵ（＃Ｂ２）２１０-2へのコピー処理中の状態では、つまりバックアップＬＵ（＃Ｂ２）２１０-2がマスタＬＵ（＃Ｍ）２１０-0に完全には同期化されていない状態では（ステップＳ２３）、バックアップＬＵ（＃Ｂ２）２１０-2の論理ブロック領域Ａｉへのデータコピーが済んでいるか否かを判定する（ステップＳ２４）。この判定は、書き込みの対象となる論理ブロックアドレスＬＢＡｉとコピーの対象となる論理ブロックアドレスＬＢＡｊとの大小を比較することにより行われる。ここでは、ＬＢＡｉ＜ＬＢＡｊ（ｉ＜ｊ）の場合にコピー済みが、ＬＢＡｉ≧ＬＢＡｊ（ｉ≧ｊ）の場合にコピー未完了が、それぞれ判定される。
【００３３】
もし、論理ブロックアドレスＬＢＡｉで指定される論理ブロック領域Ａｉへのデータコピーコピーが済んでいない場合には、ディスクアレイコントローラ２２は、当該アドレスＬＢＡｉに対応する差分管理テーブルＤＴ中のビットｉをＯＮ状態にする（ステップＳ２５）。このステップＳ２５を実行する理由は、ホスト計算機１０からの書き込み要求に従って、マスタＬＵ（＃Ｍ）２１０-0及びバックアップＬＵ（＃Ｂ２）２１０-2の同一論理ブロックアドレスＬＢＡｉの領域（論理ブロック領域）Ａｉに同一データを書き込んだ結果、当該アドレスＬＢＡｉの領域Ａｉのデータが、マスタＬＵ（＃Ｍ）２１０-0とバックアップＬＵ（＃Ｂ１）２１０-1との間で相異するためである。
【００３４】
もし、上記ステップＳ２５が実行されないと、差分管理テーブルＤＴ中のビットｉがＯＦＦ状態にある場合には、その後のコピー処理で当該ビットｉに対応する論理ブロックアドレスＬＢＡｉに関して、データバックアップＬＵ（＃Ｂ１）２１０-1のデータ、つまりマスタＬＵ（＃Ｍ）２１０-0の同一論理ブロックアドレスＬＢＡｉのデータ（新データ）とは異なる更新前のデータ（旧データ）がバックアップＬＵ（＃Ｂ２）２１０-2にコピーされる不具合が発生する。ステップＳ２５の処理は、この不具合を防止するために行われる。このステップＳ２５の処理により、差分管理テーブルＤＴ中のビットｉに対応する論理ブロックアドレスＬＢＡｉに関しては、マスタＬＵ（＃Ｍ）２１０-0のデータがバックアップＬＵ（＃Ｂ２）２１０-2にコピーされ（ステップＳ１３）、しかる後に当該ビットｉがＯＦＦされる（ステップＳ１４）。
【００３５】
なお、論理ブロックアドレスＬＢＡｉで指定されるバックアップＬＵ（＃Ｂ２）の領域には、当該アドレスＬＢＡｉで指定されるマスタＬＵ（＃Ｍ）の領域にステップＳ２１で書かれたのと同一のデータが、ステップＳ２２で書かれている。それにも拘わらずに、このデータがステップＳ１３でマスタＬＵ（＃Ｍ）からバックアップＬＵ（＃Ｂ２）にコピーされるのは無駄である。そこで差分管理テーブルＤＴの各論理ブロックアドレス毎のエントリを２ビットで構成し、そのうちの１ビットをコピー不要を示すフラグビットに割り当てると良い。ここでは、上記ステップＳ２５に代えて、アドレスＬＢＡｉに対応するフラグビットをＯＮする処理を実行することにより、ＯＮ状態にあるフラグビットと対応付けられたアドレスＬＢＡｉへのデータコピー（ステップＳ１３）が抑止されるようにすれば良い。また、差分管理テーブルＤＴと同様のビットマップ構造のコピー管理テーブルを用意し、コピーが完了したアドレスＬＢＡｉに対応するビットｊを例えばＯＮする構成としても良い。この構成では、上記ステップＳ２５に代えて、アドレスＬＢＡｉに対応するコピー管理テーブル中のビットｉをＯＮして強制的にコピー完了を示すことにより、ＯＮ状態にあるビットｉと対応付けられたアドレスＬＢＡｉへのデータコピー（ステップＳ１３）を抑止することが可能となる。
【００３６】
明らかなように、バックアップＬＵ（＃Ｂ２）２１０-2へのコピーが全て完了した時点、つまりバックアップＬＵ（＃Ｂ２）２１０-2がマスタＬＵ（＃Ｍ）２１０-0に同期化された時点では、差分管理テーブルＤＴの全ビットはＯＦＦ状態にある。これ以降、ホスト計算機１０からディスクアレイコントローラ２２に対してスナップショットの採取が指示されるまでは、バックアップＬＵ（＃Ｂ２）２１０-2をマスタＬＵ（＃Ｍ）２１０-0に同期させる状態が継続される。そして、この状態でホスト計算機１０からディスクアレイコントローラ２２に対してスナップショットの採取が指示されると、マスタＬＵ（＃Ｍ）２１０-0とバックアップＬＵ（＃Ｂ２）２１０-2との同期化が停止される。
【００３７】
マスタＬＵ（＃Ｍ）２１０-0とバックアップＬＵ（＃Ｂ２）２１０-2との同期化が停止された状態では、差分管理テーブルＤＴの各ビットのうち、バックアップＬＵ（＃Ｂ２）２１０-2にスナップショットが採取されてからマスタＬＵ（＃Ｍ）２１０-0のみに書き込まれた差分データＤ’の論理ブロックアドレスｉに対応するビットｉがＯＮされている。つまり、バックアップＬＵ（＃Ｂ２）２１０-2にスナップショットが採取された後、差分管理テーブルＤＴには、それ以降にマスタＬＵ（＃Ｍ）２１０-0に書き込まれたデータ（このデータの集合を差分データＤ’と表現する）の論理ブロックアドレス（更新位置）が記録される。また、バックアップＬＵ（＃Ｂ３）２１０-3にスナップショットが採取された場合も同様であり、それ以後、差分管理テーブルＤＴには、それ以降にマスタＬＵ（＃Ｍ）２１０-0に書き込まれたデータ（このデータの集合を差分データＤ”と表現する）の論理ブロックアドレス（更新位置）が記録される。
【００３８】
本実施形態では、バックアップＬＵ（＃Ｂ２）２１０-2にスナップショットが採取された後、次のスナップショットをバックアップＬＵ（＃Ｂ３）２１０-3に採取するのに備えて、当該バックアップＬＵ（＃Ｂ３）２１０-3をマスタＬＵ（＃Ｍ）２１０-0に同期化する場合に、差分管理テーブルＤＴの示す差分データＤ’を利用して図４に示すコピー処理が次のように行われる。
【００３９】
まず、バックアップＬＵ（＃Ｂ２）２１０-2に格納されているデータの集合をデータＢ２で表現し、マスタＬＵ（＃Ｍ）２１０-0及びバックアップＬＵ（＃Ｂ２）２１０-2の両方に含まれているデータ、つまり差分管理テーブルＤＴ中でＯＦＦ状態にあるビットに対応する論理ブロックアドレスのデータの集合をＢ２−Ｄ’で表現する。ここでは、バックアップＬＵ（＃Ｂ２）に含まれていないデータＤ’は、マスタＬＵ（＃Ｍ）からバックアップＬＵ（＃Ｂ３）にコピーされ、残りのデータＢ２−Ｄ’については、バックアップＬＵ（＃Ｂ２）からバックアップＬＵ（＃Ｂ３）にコピーされる。
【００４０】
［第２の実施形態］
図７は本発明の第２の実施形態に係る計算機システムの構成を示すブロック図である。図７において、図１中の構成要素と同様の要素には便宜的に同一符号を付してある。第２の実施形態では、ディスクアレイ２１は、マスタＬＵ（＃Ｍ）２１０-0と２台のバックアップＬＵ、即ちバックアップＬＵ（＃Ｂ１）２１０-1及びバックアップＬＵ（＃Ｂ２）２１０-2とから構成される。ここでは、バックアップＬＵ（＃Ｂ１）２１０-1は第１世代、バックアップＬＵ（＃Ｂ２）２１０-2は第２世代であるものとする。
【００４１】
また、ディスクアレイコントローラ２２の不揮発性メモリ２２０には、バックアップＬＵ（＃Ｂ１）２１０-1及びバックアップＬＵ（＃Ｂ２）２１０-2に対応して用意される差分管理テーブルＤＴ１及びＤＴ２が格納される。差分管理テーブルＤＴ１及びＤＴ２の構造は、上記第１の実施形態で適用された差分管理テーブルＤＴと同様である（図２参照）。
【００４２】
次に、図７の計算機システムにおけるディスクアレイコントローラ２２によるスナップショット管理の概要について、図８及び図９を参照して説明する。まず最初の段階では、マスタＬＵ（＃Ｍ）２１０-0とバックアップＬＵ（＃Ｂ１）２１０-1とが同期化される。その後、ホスト計算機１０からのスナップショット採取指示によりマスタＬＵ（＃Ｍ）とバックアップＬＵ（＃Ｂ１）との同期化が停止される。差分管理テーブルＤＴ１には、バックアップＬＵ（＃Ｂ１）にスナップショットが採取された時点ｔ１（第１の時点）から現時点までの間にマスタＬＵ（＃Ｍ）に書き込まれるデータ（このデータの集合を差分データＤ１と表現する）の論理ブロックアドレス（更新位置）が記録される。
【００４３】
次に、マスタＬＵ（＃Ｍ）２１０-0とバックアップＬＵ（＃Ｂ２）２１０-2とが同期化される。その後、ホスト計算機１０からのスナップショット採取指示によりマスタＬＵ（＃Ｍ）とバックアップＬＵ（＃Ｂ２）２１０-2との同期化が停止される。差分管理テーブルＤＴ２には、バックアップＬＵ（＃Ｂ２）にスナップショットが採取された時点ｔ２（ｔ２＞ｔ１，第２の時点）から現時点までの間にマスタＬＵ（＃Ｍ）に書き込まれたデータ（このデータの集合を差分データＤ２と表現する）の論理ブロックアドレスが記録される。
【００４４】
ここで、第１世代のバックアップＬＵ（＃Ｂ１）２１０-1及び第２世代のバックアップＬＵ（＃Ｂ２）２１０-2のうち、古い方のスナップショットが採取されたバックアップＬＵ（＃Ｂ１）２１０-1を用いた例えばテープバックアップが終了した後、次のスナップショットに備えて当該バックアップＬＵ（＃Ｂ１）２１０-1をマスタＬＵ（＃Ｍ）２１０-0に再同期化する指示が、時点ｔ３にホスト計算機１０からディスクアレイコントローラ２２に与えられたものとする。この場合、差分データＤ１をバックアップＬＵ（＃Ｂ１）にコピーする必要がある。従来は、このＤ１を全てマスタＬＵ（＃Ｍ）からコピーしているため、マスタＬＵ（＃Ｍ）にはホスト計算機１０からの読み出し／書き込み要求に従う通常アクセスと、バックアップＬＵ（＃Ｂ１）へのコピーアクセスとが集中し、マスタＬＵ（＃Ｍ）の負荷が増大する。
【００４５】
そこで本実施形態では、第１世代のバックアップＬＵ（＃Ｂ１）をマスタＬＵ（＃Ｍ）に再同期化する期間におけるマスタＬＵ（＃Ｍ）の負荷を軽減するために、第２世代のバックアップＬＵ（＃Ｂ２）を利用してコピー処理を行う。
【００４６】
まず、バックアップＬＵ（＃Ｂ１）にはバックアップＬＵ（＃Ｂ２）よりも古いスナップショットが採取されている。このため、差分管理テーブルＤＴ１によって管理されている、マスタＬＵ（＃Ｍ）とバックアップＬＵ（＃Ｂ１）との間で相異する差分データＤ１のうち、マスタＬＵ（＃Ｍ）とバックアップＬＵ（＃Ｂ２）との間で相異する差分データＤ２が差分管理テーブルＤＴ２によって管理される以前のデータ部分９１は、バックアップＬＵ（＃Ｂ２）に含まれている。このデータ部分９１をＤ１−Ｄ２で表現する。また、データＤ２（データ部分９２）はマスタＬＵ（＃Ｍ）に含まれている。
【００４７】
本実施形態では、Ｄ１−Ｄ２（データ部分９１）がバックアップＬＵ（＃Ｂ２）に含まれていることに着目し、バックアップＬＵ（＃Ｂ１）にＤ１をコピーする処理を、Ｄ２以外の部分、つまりＤ１−Ｄ２の部分（データ部分９１）については、バックアップＬＵ（＃Ｂ２）からバックアップＬＵ（＃Ｂ１）にコピーし、Ｄ２の部分（データ部分９２）については、マスタＬＵ（＃Ｍ）からバックアップＬＵ（＃Ｂ１）にコピーすることによって実現する。これにより、コピー処理の期間におけるマスタＬＵ（＃Ｍ）の負荷を、Ｄ１−Ｄ２の部分（データ部分９１）のコピーに要する時間だけ低減できる。
【００４８】
次に、バックアップＬＵ（＃Ｂ１）をマスタＬＵ（＃Ｍ）に再同期化するためのコピー処理の詳細な手順について、図１０のフローチャートを参照して説明する。今、ホスト計算機１０からディスクアレイコントローラ２２に対して、第１世代のバックアップＬＵ（＃Ｂ１）をマスタＬＵ（＃Ｍ）に再同期化するための再同期化指示が与えられたものとする。この場合、ディスクアレイコントローラ２２は再同期化のためのコピー処理を次のように実行する。
【００４９】
まずディスクアレイコントローラ２２は、論理ブロックアドレスＬＢＡｊを指定するパラメータｊを初期値０に初期設定する（ステップＳ３１）。次にディスクアレイコントローラ２２は、論理ブロックアドレスＬＢＡｊに対応する差分管理テーブルＤＴ１中のビットｊを参照して、当該ビットｊがＯＮ状態にあるかを判定する（ステップＳ３２）。
【００５０】
もし、差分管理テーブルＤＴ１中のビットｊがＯＮ状態にあるならば、ディスクアレイコントローラ２２は当該ビットｊをオフする（ステップ３３）。そしてディスクアレイコントローラ２２は、差分管理テーブルＤＴ２中のビットｊがＯＮ状態にあるかを判定する（ステップＳ３４）。もし、差分管理テーブルＤＴ２中のビットｊもＯＮ状態にあるならば、ディスクアレイコントローラ２２は、当該ビットｊに対応する論理ブロックアドレスＬＢＡｊで指定されるマスタＬＵ（＃Ｍ）のデータを第１世代のバックアップＬＵ（＃Ｂ１）の論理ブロックアドレスＬＢＡｊの位置にコピーする（ステップＳ３５）。そしてディスクアレイコントローラ２２は、差分管理テーブルＤＴ２中のビットｊをＯＦＦした後（ステップＳ３６）、ステップＳ３７に進む。
【００５１】
一方、差分管理テーブルＤＴ１中のビットｊはＯＮ状態にあっても、差分管理テーブルＤＴ２中のビットｊがＯＦＦ状態にあるならば、ディスクアレイコントローラ２２は、当該ビットｊに対応する論理ブロックアドレスＬＢＡｊで指定される第２世代のバックアップＬＵ（＃Ｂ２）のデータを第１世代のバックアップＬＵ（＃Ｂ１）の論理ブロックアドレスＬＢＡｊの位置にコピーする（ステップＳ３８）。そしてディスクアレイコントローラ２２はステップＳ３７に進む。
【００５２】
これに対し、差分管理テーブルＤＴ１中のビットｊがＯＦＦ状態にあるならば、ディスクアレイコントローラ２２は当該ビットｊに対応する論理ブロックアドレスＬＢＡｊで指定されるバックアップＬＵ（＃Ｂ１）のデータは、当該アドレスＬＢＡｊで指定されるマスタＬＵ（＃Ｍ）のデータに一致していると判断する。この場合、対応するデータをバックアップＬＵ（＃Ｂ１）にコピーする必要はないことから、ディスクアレイコントローラ２２はステップＳ３２からステップＳ３７に進む。
【００５３】
ステップＳ３７において、ディスクアレイコントローラ２２は、差分管理テーブルＤＴ１の全ビットについて処理したか、つまりバックアップＬＵ（＃Ｂ１）へのコピーが完了したかを判定する。もし、未処理のビットが残っているならば、ディスクアレイコントローラ２２はパラメータｊを１インクリメントした後（ステップＳ３９）、ステップＳ３２に戻る。
【００５４】
次に、上記再同期化のためのコピー処理中にホスト計算機１０からディスクアレイコントローラ２２に対してデータの書き込みが要求された場合の動作について、図１１のフローチャートを参照して説明する。ここでは、説明を簡略化するために、書き込み要求で指定されるデータのサイズが１論理ブロックのサイズに一致するものとする。
【００５５】
ディスクアレイコントローラ２２は、ホスト計算機１０からのデータの書き込み要求を受け付けると、そのデータを、マスタＬＵ（＃Ｍ）の当該書き込み要求で指定された論理ブロックアドレスの領域に書き込む（ステップＳ４１）。ここで書き込み要求で指定された論理ブロックアドレスをＬＢＡｉ、当該論理ブロックアドレスＬＢＡｉで指定される論理ブロック領域をＡｉと表現する。次にディスクアレイコントローラ２２はマスタＬＵ（＃Ｍ）の論理ブロック領域Ａｉに書き込んだのと同じデータを第１世代のバックアップＬＵ（＃Ｂ１）の論理ブロック領域Ａｉにも書き込む（ステップＳ４２）。
【００５６】
ディスクアレイコントローラ２２は、ステップＳ４１及びＳ４２によって、マスタＬＵ（＃Ｍ）及び第１世代のバックアップＬＵ（＃Ｂ１）の同一論理ブロックアドレスＬＢＡｉの領域に同一データを書き込むと、当該アドレスＬＢＡｉに対応する差分管理テーブルＤＴ１中のビットｉをＯＦＦする（ステップＳ４３）。また、マスタＬＵ（＃Ｍ）及び第１の世代のバックアップＬＵ（＃Ｂ１）のアドレスＬＢＡｉの領域に対するデータ書き込みの結果、当該アドレスＬＢＡｉの領域のデータは、マスタＬＵ（＃Ｍ）と第２の世代のバックアップＬＵ（＃Ｂ２）との間で相異する。そこでディスクアレイコントローラ２２は、アドレスＬＢＡｉに対応する差分管理テーブルＤＴ２中のビットｉをＯＮする（ステップＳ４４）。
【００５７】
次に、上記したようにバックアップＬＵ（＃Ｂ１）を再同期化した後、今度はマスタＬＵ（＃Ｍ）と当該バックアップＬＵ（＃Ｂ１）との同期化状態を時点ｔ４（ｔ４＞ｔ３）で停止して、当該バックアップＬＵ（＃Ｂ１）にスナップショットを採取する場合について簡単に説明する。この時点ｔ４では、上記の例とは逆に、バックアップＬＵ（＃Ｂ１）に採取されたスナップショットよりも、時点ｔ２でバックアップＬＵ（＃Ｂ２）に採取されたスナップショットの方が古くなる。ここでは、時点ｔ２が上記ｔ１（第１の時点）に対応し、時点ｔ４が上記ｔ２（第２の時点）に対応する。そこで、次のスナップショットに備えてバックアップＬＵ（＃Ｂ２）をマスタＬＵ（＃Ｍ）に再同期化する指示が時点ｔ５（ｔ５＞ｔ４）で与えられた場合には、差分管理テーブルＤＴ２によって管理されている、時点ｔ２（第１の時点）から現時点までの間にマスタＬＵ（＃Ｍ）に書き込まれたデータ（このデータの集合を差分データＤ２’と表現する）をバックアップＬＵ（＃Ｂ２）にコピーする必要がある。ここで、差分管理テーブルＤＴ１によって管理されている、時点ｔ４（第２の時点）から現時点までの間にマスタＬＵ（＃Ｍ）に書き込まれたデータの集合を差分データＤ１’と表現する。この場合、Ｄ２’−Ｄ’の部分をバックアップＬＵ（＃Ｂ１）からバックアップＬＵ（＃Ｂ２）にコピーし、残りのＤ１’の部分をマスタＬＵ（＃Ｍ）からバックアップＬＵ（＃Ｂ２）にコピーすれば良い。
【００５８】
以下、同様にして、スナップショット採取先として、バックアップＬＵ（＃Ｂ１）及びＬＵ（＃Ｂ２）を交互に指定し、その際にスナップショット採取先として指定されていないバックアップＬＵ（即ち前回スナップショット採取済みのバックアップＬＵ）及びマスタＬＵ（＃Ｍ）の双方に存在する差分データについては、前回スナップショット採取済みのバックアップＬＵからスナップショット採取先のバックアップＬＵにコピーすれば良い。
【００５９】
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００６０】
【図１】本発明の第１の実施形態に係る計算機システムの構成を示すブロック図。
【図２】マスタＬＵ（＃Ｍ）２１０-0の各論理ブロックアドレスＬＢＡｉの領域と差分管理テーブルＤＴの各ビットｉとの対応関係を示す図。
【図３】バックアップＬＵ（＃Ｂ１）２１０-1にスナップショットが採取された以降に、ホスト計算機１０からディスクアレイコントローラ２２に対してデータの書き込みが要求された場合の動作手順を示すフローチャート。
【図４】上記第１の実施形態においてバックアップＬＵ（＃Ｂ２）２１０-2をマスタＬＵ（＃Ｍ）２１０-0に同期化するために実行されるコピー処理の概要を示す図。
【図５】上記第１の実施形態におけるコピー処理の詳細な手順を示すフローチャート。
【図６】上記第１の実施形態においてコピー処理中にホスト計算機１０からディスクアレイコントローラ２２に対してデータの書き込みが要求された場合の動作手順を示すフローチャート。
【図７】本発明の第２の実施形態に係る計算機システムの構成を示すブロック図。
【図８】上記第２の実施形態においてバックアップＬＵ（＃Ｂ１）２１０-1をマスタＬＵ（＃Ｍ）２１０-0に同期化するために実行されるコピー処理の概要を示す図。
【図９】スナップショット採取時点ｔ１及びｔ２以降に発生する差分データとマスタＬＵ（＃Ｍ）並びにバックアップＬＵ（＃Ｂ１）及びバックアップＬＵ（＃Ｂ２）との関係を示す図。
【図１０】上記第２の実施形態におけるコピー処理の詳細な手順を示すフローチャート。
【図１１】上記第２の実施形態においてコピー処理中にホスト計算機１０からディスクアレイコントローラ２２に対してデータの書き込みが要求された場合の動作手順を示すフローチャート。
【符号の説明】
【００６１】
１０…ホスト計算機、２０…ディスクアレイ装置、２１…ディスクアレイ、２２…ディスクアレイコントローラ、２１０-0…マスタＬＵ（マスタ論理ユニット）、２１０-1〜２１０-3…バックアップＬＵ（バックアップ論理ユニット）、ＤＴ，ＤＴ１，ＤＴ２…差分管理テーブル。
【図１】
2005085117.tif 000003
【図２】
2005085117.tif 000004
【図３】
2005085117.tif 000005
【図４】
2005085117.tif 000006
【図５】
2005085117.tif 000007
【図６】
2005085117.tif 000008
【図７】
2005085117.tif 000009
【図８】
2005085117.tif 000010
【図９】
2005085117.tif 000011
【図１０】
2005085117.tif 000012
【図１１】
2005085117.tif 000013