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