(57)【特許請求の範囲】
【請求項１】
ホストコンピュータにて更新されるマスターデータと、前記マスターデータの複製である複製データと、を管理するディスクアレイ装置であって、
複数のブロックからなり前記マスターデータを保存するマスターボリュームと、複数のブロックからなり前記複製データを保存する複製ボリュームと、を含み、前記マスターボリュームの各ブロックが前記複製ボリュームの各ブロックと１対１で対応している、複数のディスクと、
前記マスターボリュームに保存されているマスターデータと前記複製ボリュームに保存されている複製データとのうち前記マスターデータのみが更新された際に、当該マスターデータのうちの更新された更新後データが存在するマスターボリュームのブロックを示す更新差分情報を保存するキャッシュメモリと、
不揮発性格納部と、
前記キャッシュメモリに保存されている前記更新差分情報を、前記不揮発性格納部に保存する保存制御部と、
前記ディスクアレイ装置を起動する旨の起動指示を受け付けると、前記不揮発性格納部に保存されている前記更新差分情報を、前記キャッシュメモリに保存する復帰制御部と、
前記複製ボリュームに保存されている複製データのうち、前記キャッシュメモリに保存されている更新差分情報が示すマスターボリュームのブロックに対応する複製ボリュームのブロックのデータのみを、前記マスターデータのうちの更新後データに更新する情報制御部と、を含み、
前記保存制御部は、前記マスターデータおよび前記複製データの両方が一定時間変更されずに保持されているか否かを検出し、該マスターデータおよび該複製データの両方が一定時間変更されずに保持されていると、前記キャッシュメモリに保存されている前記更新差分情報を、前記不揮発性格納部に保存する、ディスクアレイ装置。
【請求項２】
請求項１に記載のディスクアレイ装置において、
前記ホストコンピュータは、さらに、前記複製ボリュームに保存されている複製データのみを更新する動作を行うものであり、
前記更新差分情報は、さらに、前記マスターボリュームに保存されているマスターデータと前記複製ボリュームに保存されている複製データとのうち前記複製データのみが更新された際に、当該複製データのうちの更新された更新後データが存在する複製ボリュームのブロックを示すものであり、
前記情報制御部は、さらに、前記マスターボリュームに保存されているマスターデータのうち、前記キャッシュメモリに保存された更新差分情報が示す複製ボリュームのブロックに対応するマスターボリュームのブロックのデータのみを、前記複製データのうちの更新後データに更新する、ディスクアレイ装置。
【請求項３】
請求項１または２に記載のディスクアレイ装置において、
前記保存制御部は、前記ディスクアレイ装置を停止する旨の停止指示を受け付けると、前記キャッシュメモリに保存されている前記更新差分情報を、前記不揮発性格納部に保存する、ディスクアレイ装置。
【請求項４】
請求項２に記載のディスクアレイ装置において、
前記情報制御部は、前記ホストコンピュータからデータ更新指示を受け付けると、該データ更新指示に基づいて、前記キャッシュメモリに保存されている前記更新差分情報を更新し、かつ、前記マスターボリュームに保存されているマスターデータまたは前記複製ボリュームに保存されている複製データを更新し、
前記保存制御部は、前記キャッシュメモリに保存されている更新差分情報が更新されると、該更新差分情報を、前記不揮発性格納部に保存する、ディスクアレイ装置。
【請求項５】
請求項１ないし４のいずれか１項に記載のディスクアレイ装置において、
前記複数のディスクは、前記不揮発性格納部を含む、ディスクアレイ装置。
【請求項６】
複数のブロックからなりホストコンピュータにて更新されるマスターデータを保存するマスターボリュームおよび複数のブロックからなり前記マスターデータの複製である複製データを保存する複製ボリュームを含み前記マスターボリュームの各ブロックが前記複製ボリュームの各ブロックと１対１で対応している複数のディスクと、前記マスターボリュームに保存されているマスターデータと前記複製ボリュームに保存されている複製データとのうち前記マスターデータのみが更新された際に当該マスターデータのうちの更新された更新後データが存在するマスターボリュームのブロックを示す更新差分情報を保存するキャッシュメモリと、不揮発性格納部と、を含むディスクアレイ装置が行うデータ管理方法であって、
前記キャッシュメモリに保存されている前記更新差分情報を、前記不揮発性格納部に保存する保存制御ステップと、
前記ディスクアレイ装置を起動する旨の起動指示を受け付けると、前記不揮発性格納部に保存されている前記更新差分情報を、前記キャッシュメモリに保存する復帰制御ステップと、
前記複製ボリュームに保存されている複製データのうち、前記キャッシュメモリに保存されている更新差分情報が示すマスターボリュームのブロックに対応する複製ボリュームのブロックのデータのみを、前記マスターデータのうちの更新後データに更新する情報制御ステップと、を含み、
前記保存制御ステップでは、前記マスターデータおよび前記複製データの両方が一定時間変更されずに保持されているか否かを検出し、該マスターデータおよび該複製データの両方が一定時間変更されずに保持されていると、前記キャッシュメモリに保存されている前記更新差分情報を、前記不揮発性格納部に保存する、データ管理方法。
【請求項７】
請求項６に記載のデータ管理方法において、
前記ホストコンピュータは、さらに、前記複製ボリュームに保存されている複製データのみを更新する動作を行うものであり、
前記更新差分情報は、さらに、前記マスターボリュームに保存されているマスターデータと前記複製ボリュームに保存されている複製データとのうち前記複製データのみが更新された際に、当該複製データのうちの更新された更新後データが存在する複製ボリュームのブロックを示すものであり、
前記情報制御ステップでは、さらに、前記マスターボリュームに保存されているマスターデータのうち、前記キャッシュメモリに保存された更新差分情報が示す複製ボリュームのブロックに対応するマスターボリュームのブロックのデータのみを、前記複製データのうちの更新後データに更新する、データ管理方法。
【請求項８】
請求項６または７に記載のデータ管理方法において、
前記保存制御ステップでは、前記ディスクアレイ装置を停止する旨の停止指示を受け付けると、前記キャッシュメモリに保存されている前記更新差分情報を、前記不揮発性格納部に保存する、データ管理方法。
【請求項９】
請求項７に記載のデータ管理方法において、
前記ホストコンピュータからデータ更新指示を受け付けると、該データ更新指示に基づいて、前記キャッシュメモリに保存されている前記更新差分情報を更新し、かつ、前記マスターボリュームに保存されているマスターデータまたは前記複製ボリュームに保存されている複製データを更新する更新ステップをさらに含み、
前記保存制御ステップでは、前記キャッシュメモリに保存されている更新差分情報が更新されると、該更新差分情報を、前記不揮発性格納部に保存する、データ管理方法。
【請求項１０】
請求項６ないし９のいずれか１項に記載のデータ管理方法において、
前記複数のディスクは、前記不揮発性格納部を含む、データ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクアレイ装置およびデータ管理方法に関し、特には、マスターデータと、マスターデータの複製である複製データと、を管理するディスクアレイ装置およびデータ管理方法に関する。
【背景技術】
【０００２】
従来、種々のディスクアレイ装置が知られている。
【０００３】
特許文献１（特開２００３−２２３２８４号公報）には、ディスク装置を追加してディスクアレイ装置の記憶容量を拡張する場合に、不揮発性メモリに容量拡張用の情報を格納することによって、データ損失を防ぐディスクアレイ装置が記載されている。
【０００４】
また、特許文献２（特開平６−３３２７７７号公報）には、ジャーナルファイルを不揮発性メモリに格納し、電源断等の障害時にもジャーナルファイルからデータを復元してデータベースの整合性を維持するデータ管理システムが記載されている。
【０００５】
また、特許文献３（特開２０００−３３０７３０号公報）には、マスターボリューム内のマスターデータの複製データをコピーボリューム内に保存するディスクアレイ装置が記載されている。
【０００６】
このディスクアレイ装置は、マスターデータと複製データとの更新の差分を表す更新履歴テーブルを、キャッシュメモリに格納する。このディスクアレイ装置は、その更新履歴テーブルを参照して、マスターデータおよび複製データにおいて、両データの差分のみを更新し、複製データとマスターデータとを同じ内容にする。
【０００７】
なお、以下では、複製データとマスターデータとを同じ内容にする修理を「ミラー化」と称し、２回目以降の「ミラー化」を「再ミラー化」と称する。
【特許文献１】特開２００３−２２３２８４号公報
【特許文献２】特開平６−３３２７７７号公報
【特許文献３】特開２０００−３３０７３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特許文献１および特許文献２には、複製データを短時間で作成するための技術は記載されていない。一方、特許文献３に記載されたディスクアレイ装置は、更新履歴テーブルを参照して、マスターデータおよび複製データのうち両データの差分のみを更新するため、短時間で複製データを作成できる。
【０００９】
特許文献３に記載されたディスクアレイ装置は、更新履歴テーブルを、キャッシュメモリに格納する。キャッシュメモリ内のデータは、電源断等によりディスクアレイ装置の動作が停止すると、消去される。このため、このディスクアレイ装置では、ディスクアレイ装置の立ち上げ後の再ミラー化時には、更新履歴テーブルがなく、よって、マスターボリューム内のマスターデータ全体を、コピーボリューム内にコピーする必要があった。
【００１０】
このため、ディスクアレイ装置の立ち上げ後の再ミラー化時には、複製データを短時間で作成できない。
【００１１】
本発明の目的は、ディスクアレイ装置の立ち上げ後の再ミラー化時に、複製データを短時間で作成することを可能にするディスクアレイ装置およびデータ管理方法を提供することである。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明のディスクアレイ装置は、ホストコンピュータにて更新されるマスターデータと、前記マスターデータの複製である複製データと、を管理するディスクアレイ装置であって、複数のブロックからなり前記マスターデータを保存するマスターボリュームと、複数のブロックからなり前記複製データを保存する複製ボリュームと、を含み、前記マスターボリュームの各ブロックが前記複製ボリュームの各ブロックと１対１で対応している、複数のディスクと、前記マスターボリュームに保存されているマスターデータと前記複製ボリュームに保存されている複製データとのうち前記マスターデータのみが更新された際に、当該マスターデータのうちの更新された更新後データが存在するマスターボリュームのブロックを示す更新差分情報を保存するキャッシュメモリと、不揮発性格納部と、前記キャッシュメモリに保存されている前記更新差分情報を、前記不揮発性格納部に保存する保存制御部と、前記ディスクアレイ装置を起動する旨の起動指示を受け付けると、前記不揮発性格納部に保存されている前記更新差分情報を、前記キャッシュメモリに保存する復帰制御部と、前記複製ボリュームに保存されている複製データのうち、前記キャッシュメモリに保存されている更新差分情報が示すマスターボリュームのブロックに対応する複製ボリュームのブロックのデータのみを、前記マスターデータのうちの更新後データに更新する情報制御部と、を含み、前記保存制御部は、前記マスターデータおよび前記複製データの両方が一定時間変更されずに保持されているか否かを検出し、該マスターデータおよび該複製データの両方が一定時間変更されずに保持されていると、前記キャッシュメモリに保存されている前記更新差分情報を、前記不揮発性格納部に保存する。
【００１３】
また、本発明のデータ管理方法は、複数のブロックからなりホストコンピュータにて更新されるマスターデータを保存するマスターボリュームおよび複数のブロックからなり前記マスターデータの複製である複製データを保存する複製ボリュームを含み前記マスターボリュームの各ブロックが前記複製ボリュームの各ブロックと１対１で対応している複数のディスクと、前記マスターボリュームに保存されているマスターデータと前記複製ボリュームに保存されている複製データとのうち前記マスターデータのみが更新された際に当該マスターデータのうちの更新された更新後データが存在するマスターボリュームのブロックを示す更新差分情報を保存するキャッシュメモリと、不揮発性格納部と、を含むディスクアレイ装置が行うデータ管理方法であって、前記キャッシュメモリに保存されている前記更新差分情報を、前記不揮発性格納部に保存する保存制御ステップと、前記ディスクアレイ装置を起動する旨の起動指示を受け付けると、前記不揮発性格納部に保存されている前記更新差分情報を、前記キャッシュメモリに保存する復帰制御ステップと、前記複製ボリュームに保存されている複製データのうち、前記キャッシュメモリに保存されている更新差分情報が示すマスターボリュームのブロックに対応する複製ボリュームのブロックのデータのみを、前記マスターデータのうちの更新後データに更新する情報制御ステップと、を含み、前記保存制御ステップでは、前記マスターデータおよび前記複製データの両方が一定時間変更されずに保持されているか否かを検出し、該マスターデータおよび該複製データの両方が一定時間変更されずに保持されていると、前記キャッシュメモリに保存されている前記更新差分情報を、前記不揮発性格納部に保存する。
【００１４】
上記発明によれば、ディスクアレイ装置は、キャッシュメモリに保存されている更新差分情報を不揮発性格納部に保存し、起動指示を受け付けると、不揮発性格納部に保存されている更新差分情報をキャッシュメモリに保存する。ディスクアレイ装置は、複製ボリュームに保存されている複製データのうち、キャッシュメモリに保存された更新差分情報が示す更新の差のみを更新する。
【００１５】
このため、ディスクアレイ装置の動作停止に伴い、キャッシュメモリ内の更新差分情報が消去されても、ディスクアレイ装置の起動時には、不揮発性格納部に保存されている更新差分情報がキャッシュメモリに展開される。
【００１６】
よって、ディスクアレイ装置の立ち上げ後の再ミラー化時に、更新差分情報を用いることができる。このため、ディスクアレイ装置の立ち上げ後の再ミラー化時に、複製データのうち更新の差のみを更新することが可能となり、複製データを短時間で作成することが可能になる。
【００１７】
なお、前記ホストコンピュータは、さらに、前記複製ボリュームに保存されている複製データのみを更新する動作を行うものであり、前記更新差分情報は、さらに、前記マスターボリュームに保存されているマスターデータと前記複製ボリュームに保存されている複製データとのうち前記複製データのみが更新された際に、当該複製データのうちの更新された更新後データが存在する複製ボリュームのブロックを示すものであり、前記情報制御部は、さらに、前記マスターボリュームに保存されているマスターデータのうち、前記キャッシュメモリに保存された更新差分情報が示す複製ボリュームのブロックに対応するマスターボリュームのブロックのデータのみを、前記複製データのうちの更新後データに更新する。
【００１８】
上記発明によれば、ディスクアレイ装置の立ち上げ後の再ミラー化時に、更新差分情報を用いることができ、マスターデータのうち更新の差のみを更新することが可能となる。したがって、ディスクアレイ装置の立ち上げ後の再ミラー化時に、複製データを短時間で作成することが可能になる。
【００１９】
また、前記保存制御部は、前記ディスクアレイ装置を停止する旨の停止指示を受け付けると、前記キャッシュメモリに保存されている前記更新差分情報を、前記不揮発性格納部に保存することが望ましい。
【００２０】
上記発明によれば、ディスクアレイ装置の停止に伴い、更新差分情報が消失することを防止できる。
【００２２】
上記各発明によれば、例えば、一定時間、マスターデータまたは複製データが更新されないときに、停電等の障害によってキャッシュメモリ内の更新差分情報が消失されても、ディスクアレイ装置の起動時に、不揮発性格納部から更新差分情報を読み取ることが可能となる。
【００２３】
このため、ディスクアレイ装置の立ち上げ後の再ミラー化時に、更新差分情報を用いることができ、マスターデータのうち更新の差のみを更新することが可能となる。
【００２４】
また、前記情報制御部は、前記ホストコンピュータからデータ更新指示を受け付けると、該データ更新指示に基づいて、前記キャッシュメモリに保存されている前記更新差分情報を更新し、かつ、前記マスターボリュームに保存されているマスターデータまたは前記複製ボリュームに保存されている複製データを更新し、前記保存制御部は、前記キャッシュメモリに保存されている更新差分情報が更新されると、該更新差分情報を、前記不揮発性格納部に保存することが望ましい。
【００２５】
上記発明によれば、マスターデータまたは複製データが更新されるたびに、更新差分情報が、不揮発性格納部に保存される。
【００２６】
このため、ディスクアレイ装置の障害により、キャッシュメモリ内の最新の更新差分情報が消失しても、ディスクアレイ装置の起動時に、その最新の更新差分情報を、不揮発性格納部から読み取ることが可能となる。
【００２７】
したがって、ディスクアレイ装置の立ち上げ後の再ミラー化時に、更新差分情報を用いることができる。よって、ディスクアレイ装置の立ち上げ後の再ミラー化時に、複製データを短時間で作成することが可能になる。
【００２８】
また、前記複数のディスクは、前記不揮発性格納部を含むことが望ましい。
【００２９】
上記発明によれば、複数のディスクを、マスターボリューム、複製ボリュームおよび不揮発性格納部として用いることが可能となる。
【発明の効果】
【００３０】
本発明によれば、ディスクアレイ装置の立ち上げ後の再ミラー化時に、複製データを短時間で作成することが可能になる。
【発明を実施するための最良の形態】
【００３１】
以下、本発明の実施例を図面を参照して説明する。
【００３２】
図１は、本発明の一実施例のディスクアレイ装置のハードウェア構成を示したブロック図である。
【００３３】
図１において、ディスクアレイ装置１は、ホストコンピュータ１０と接続され、また、ディスクアレイコントローラ２０と、ディスク３０〜３３と、を含む。
【００３４】
ディスクアレイコントローラ２０は、ホストコンピュータ１０とディスク３０〜３３との間に設けられる。ディスクアレイコントローラ２０は、インタフェースチップ２１と、メモリコントローラ２２と、マイクロプロセッサ２３と、ローカルメモリ２４と、キャッシュメモリ２５と、インタフェースチップ２６と、を含む。
【００３５】
ディスク３０は、ホストコンピュータ１０にて更新されるマスターデータを保存するマスターボリュームとして用いられる。
【００３６】
ディスク３１は、マスターデータの複製である複製データを保存するレプリケーションボリュームとして用いられる。
【００３７】
ディスク３２は、種々のデータを保存する。
【００３８】
ディスク３３は、システムボリューム（不揮発性格納部）として用いられる。
【００３９】
インタフェースチップ２１は、ＳＣＳＩ（Small Computer System Interface）またはファイバチャネルのような汎用バスで、ホストコンピュータ１０と接続する。
【００４０】
インタフェースチップ２６は、ＳＣＳＩまたはファイバチャネルのような汎用バスで、ディスク３０〜３３と接続する。
【００４１】
キャッシュメモリ２５は、インタフェースチップ２１および２６の間で通信されるリードデータおよびライトデータを格納する。また、キャッシュメモリ２５は、マスターボリューム３０に保存されているマスターデータとレプリケーションボリューム３１に保存されている複製データとの更新の差を表す更新管理テーブル（更新差分情報）を保存する。
【００４２】
メモリコントローラ２２は、キャッシュメモリ２５を制御する。
【００４３】
マイクロプロセッサ２３は、ディスクアレイコントローラ２０を総括的に制御する。
【００４４】
ローカルメモリ２４は、例えば、マイクロプロセッサ２３にて使用されるマイクロコードおよび制御情報を格納する。
【００４５】
なお、本実施例では、４台のディスク３０〜３３が用いられているが、ディスクの台数は４台に限らず適宜変更可能である。
【００４６】
図２は、ディスクアレイ装置１の機能的な構成を示したブロック図である。なお、図２において、図１に示したものと同一のものには同一符号を付してある。
【００４７】
図２において、ディスクアレイコントローラ２０は、ホストＩＯ受信部４０と、排他制御部４１と、更新管理テーブル制御部４２と、リード／ライト制御部４３と、装置停止指示検出部４４と、更新管理テーブル保存制御部４５と、装置立ち上げ指示検出部４６と、更新管理テーブル復帰制御部４７と、システムボリューム制御部４８と、キャッシュメモリ２５と、を含む。
【００４８】
ホストＩＯ受信部４０は、ホストコンピュータ１０と通信する。
【００４９】
装置停止指示検出部４４は、装置停止指示を検出する。なお、装置停止指示は、ディスクアレイ装置１を停止する旨の停止指示の一例である。
【００５０】
装置立ち上げ指示検出部４６は、装置立ち上げ指示を検出する。なお、装置立ち上げ指示は、ディスクアレイ装置１を起動する旨の起動指示の一例である。
【００５１】
リード／ライト制御部４３は、ディスク３０〜３２を制御する。
【００５２】
システムボリューム制御部４８は、システムボリューム３３を制御する。
【００５３】
排他制御部４１は、ホストＩＯ処理と、装置停止指示による処理と、装置立ち上げ指示による処理とを、排他的に制御する。
【００５４】
更新管理テーブル制御部４２は、ホストＩＯ処理時に、キャッシュメモリ２５内の更新管理テーブルの参照および更新を制御する。
【００５５】
また、更新管理テーブル制御部４２は、情報制御部の一例であり、レプリケーションボリューム３１に保存されている複製データのうち、キャッシュメモリ２５に保存された更新管理テーブルが示す更新の差のみを更新する。なお、更新管理テーブル制御部４２は、マスターボリューム３０に保存されているマスターデータのうち、キャッシュメモリ２５に保存された更新管理テーブルが示す更新の差のみを更新してもよい。
【００５６】
更新管理テーブル保存制御部４５は、保存制御部の一例であり、装置停止指示による処理時に、キャッシュメモリ２５から更新管理テーブルを読み出し、システムボリューム制御部４８を用いて、その更新管理テーブルをシステムボリューム３３に保存する。
【００５７】
更新管理テーブル復帰制御部４７は、復帰制御部の一例であり、装置立ち上げ指示による処理時に、システムボリューム制御部４８を用いて、システムボリューム３３から更新管理テーブルを読み出し、その更新管理テーブルをキャッシュメモリ２５に書き込む。
【００５８】
次に、動作を説明する。
【００５９】
まず、データレプリケーションについて説明する。データレプリケーションは、ディスクアレイ装置１がホストコンピュータ１０にて運用されているときに、マスターボリューム３０の複製を作成する機能である。
【００６０】
ディスクアレイ装置１は、ディスク３０を、ホストコンピュータ１０にて使用されるマスターボリューム３０として用い、また、ディスク３１を、マスターボリューム３０内のデータの複製を格納するためのレプリケーションボリューム３１として用いる。
【００６１】
マスターボリューム３０およびレプリケーションボリューム３１は、複数のブロックに分割され、ブロック単位でデータを管理する。また、マスターボリューム３０の各ブロックは、レプリケーションボリューム３１の各ブロックと、１対１で対応している。
【００６２】
ディスクアレイコントローラ２０は、データレプリケーション運用時に、マスターボリューム３０とレプリケーションボリューム３１を関連付ける。この関連付けは、例えば、以下のように行われる。
【００６３】
マスターボリューム３０とレプリケーション３１とが分離されているときに、ホストＩＯ受信部４０が、ホストコンピュータ１０からミラー化指示を受け付けると、ホストＩＯ受信部４０は、そのミラー化指示を排他制御部４１に提供する。
【００６４】
排他制御部４１は、ミラー化指示を受け付けると、ミラー化指示を更新管理テーブル制御部４２に提供する。
【００６５】
更新管理テーブル制御部４２は、ミラー化指示を受け付けると、処理をミラー化中にし、マスターボリューム３０とレプリケーションボリューム３１とを関連付けられる。この関連づけにより、マスターボリューム３０とレプリケーションボリューム３１との関係は、図３に示した状態から図４に示した状態に変化する。
【００６６】
この関連付け時に、更新管理テーブル制御部４２は、マスターボリューム３０用の更新管理テーブルＡと、レプリケーションボリューム３１用の更新管理テーブルＢとを、キャッシュメモリ２５に作成する。
【００６７】
図５は、更新管理テーブルの一例を示した説明図である。
【００６８】
図５において、更新管理テーブルには、ボリューム内の各ブロック（アドレス）と、各ブロックに対応するフラグ５ｂとが示される。
【００６９】
更新管理テーブル制御部４２は、最初のミラー化時（ミラー化指示を受け付けたとき）、更新管理テーブルＡ内のすべてのフラグをＯＮ状態にし、更新管理テーブルＢ内のすべてのフラグをＯＦＦ状態にする。
【００７０】
その後、更新管理テーブル制御部４２は、リード／ライト制御部４３を制御して、キャッシュメモリ２５内の更新管理テーブルＡのフラグがＯＮ状態となっているマスターボリューム３０のブロックのデータをコピーし、そのデータを、そのブロックに対応するレプリケーションボリューム３１のブロックに書き込む。
【００７１】
この場合、更新管理テーブルＡ内のすべてのフラグがＯＮ状態なので、更新管理テーブル制御部４２は、マスターボリューム３０内のすべてのデータを、レプリケーションボリューム３１にコピーする。このため、最初のミラー化が完了する。
【００７２】
その後、ホストＩＯ受信部４０が、ホストコンピュータ１０から分離指示を受け付けると、ホストＩＯ受信部４０は、その分離指示を排他制御部４１に提供する。
【００７３】
排他制御部４１は、分離指示を受け付けると、更新管理テーブル制御部４２に分離指示を提供する。
【００７４】
更新管理テーブル制御部４２は、分離指示を受け付けると、マスターボリューム３０とレプリケーションボリューム３１との関連付けを解消して、マスターボリューム３０からレプリケーションボリューム３１を分離する（図３参照）。
【００７５】
なお、図３および図４に示されたデータは、例えば、更新管理テーブル制御部４２によって、キャッシュメモリ２５に保存される。
【００７６】
図６は、ミラー化動作を説明するためのフローチャートである。以下、図６を参照してミラー化動作を説明する。
【００７７】
まず、ステップＳ６０１では、更新管理テーブル制御部４２は、現在の処理がミラー化中か否かを判断する。更新管理テーブル制御部４２は、現在の処理がミラー化中であると、ステップＳ６０２を実行し、現在の処理がミラー化中でないと、ミラー化動作を終了する。
【００７８】
ステップＳ６０２では、更新管理テーブル制御部４２は、更新管理テーブルＡのフラグの中でＯＮ状態のものがあるか判断する。更新管理テーブル制御部４２は、ＯＮ状態である更新管理テーブルＡのフラグがあると、ステップＳ６０３を実行し、ＯＮ状態である更新管理テーブルＡのフラグがないと、ミラー化動作を終了する。
【００７９】
ステップＳ６０３では、更新管理テーブル制御部４２は、リード／ライト制御部４３を制御して、更新管理テーブルＡのフラグがＯＮ状態となっているマスターボリューム３０のブロックのデータをコピーし、そのデータを、そのブロックに対応するレプリケーションボリューム３１のブロックに書き込む。その後、更新管理テーブル制御部４２は、ステップＳ６０４を実行する。
【００８０】
ステップＳ６０４では、更新管理テーブル制御部４２は、更新管理テーブルＡのフラグをＯＦＦ状態にして、ミラー化動作を終了する。
【００８１】
図７は、データライト時の動作を説明するためのフローチャートである。以下、図７を参照して、データライト時の動作を説明する。
【００８２】
ホストＩＯ受信部４０は、ホストコンピュータ１０からライト指示（ホストデータを含む）を受け付けると、そのライト指示を排他制御部４１に提供する。排他制御部４１は、ライト指示を受け付けると、そのライト指示を更新管理テーブル制御部４２に提供する。
【００８３】
更新管理テーブル制御部４２は、ライト指示を受け付けると、ステップＳ７０１を実行する。
【００８４】
ステップＳ７０１では、更新管理テーブル制御部４２は、そのライト指示がマスターボリューム３０へのアクセスか判断する。更新管理テーブル制御部４２は、そのライト指示がマスターボリューム３０へのアクセスであると、ステップＳ７０２を実行し、そのライト指示がマスターボリューム３０へのアクセスでないと、ステップＳ７０３を実行する。
【００８５】
ステップＳ７０２では、更新管理テーブル制御部４２は、現在の処理がミラー化中か否か判断する。更新管理テーブル制御部４２は、現在の処理がミラー化中であると、ステップＳ７０４を実行し、現在の処理がミラー化中でないと、ステップＳ７０５を実行する。
【００８６】
ステップＳ７０４では、更新管理テーブル制御部４２は、マスターボリューム３０とレプリケーションボリューム３１に、ホストデータを書き込む。このため、ミラー化中に、ホストコンピュータ１０からマスターボリューム３０にデータがライトされても、そのデータ更新がレプリケーションボリューム３１に反映され、マスターボリューム３０のマスターデータと、レプリケーションボリューム３１の複製データが一致する。
【００８７】
ステップＳ７０５では、更新管理テーブル制御部４２は、更新管理テーブルＡ内のフラグのうち、ホストコンピュータ１０にてアクセスされたマスターボリューム３０のブロックに対応するフラグをＯＮ状態に変更する。その後、更新管理テーブル制御部４２は、ステップＳ７０６を実行する。
【００８８】
ステップＳ７０６では、更新管理テーブル制御部４２は、ホストコンピュータ１０にてアクセスされたマスターボリューム３０のブロックに、ホストデータを書き込む。
【００８９】
一方、ステップＳ７０３では、更新管理テーブル制御部４２は、そのライト指示がレプリケーションボリューム３１へのアクセスか判断する。更新管理テーブル制御部４２は、そのライト指示がレプリケーションボリューム３１へのアクセスであると、ステップＳ７０７を実行し、そのライト指示がレプリケーションボリューム３１へのアクセスでないと、ステップＳ７０８を実行する。
【００９０】
ステップＳ７０７では、更新管理テーブル制御部４２は、更新管理テーブルＢ内のフラグのうち、ホストコンピュータ１０にてアクセスされたレプリケーションボリューム３１のブロックに対応するフラグをＯＮ状態に変更する。その後、更新管理テーブル制御部４２は、ステップＳ７０９を実行する。
【００９１】
ステップＳ７０９では、更新管理テーブル制御部４２は、ホストコンピュータ１０にてアクセスされたレプリケーションボリューム３１のブロックに、ホストデータを書き込む。
【００９２】
一方、ステップＳ７０８では、更新管理テーブル制御部４２は、ホストコンピュータ１０にてアクセスされたボリューム（例えば、ディスク３２）にホストデータを書き込む。
【００９３】
次に、再ミラー化動作を説明する。
【００９４】
ホストＩＯ受信部４０は、ホストコンピュータ１０から再ミラー化指示を受け付けると、その再ミラー化指示を排他制御部４１に提供する。排他制御部４１は、再ミラー化指示を受け付けると、その再ミラー化指示を、更新管理テーブル制御部４２に提供する。
【００９５】
更新管理テーブル制御部４２は、再ミラー化指示を受け付けると、処理をミラー化中にし、図６に示したミラー化動作を実行する。
【００９６】
なお、更新管理テーブル制御部４２は、図６に示したミラー化動作を終了する前に、以下の動作を行うことが望ましい。
【００９７】
更新管理テーブル制御部４２は、更新管理テーブルＢのフラグの中でＯＮ状態のものがあるか判断する。
【００９８】
更新管理テーブル制御部４２は、ＯＮ状態である更新管理テーブルＢのフラグがあると、リード／ライト制御部４３を制御して、更新管理テーブルＢのフラグがＯＮ状態となっているレプリケーションボリューム３１のブロックのデータをコピーし、そのデータを、そのブロックに対応するマスターボリューム３０のブロックに書き込む。
【００９９】
その後、更新管理テーブル制御部４２は、更新管理テーブルＢのフラグをＯＦＦ状態にして、ミラー化動作を終了する。
【０１００】
再ミラー化時では、更新管理テーブルのフラグのうち、ホストコンピュータ１０にてデータが更新されたブロックのフラグだけがＯＮ状態となっているため、更新されたブロックのデータのみがコピーされる。よって、データ更新の時間を短縮することが可能となる。
【０１０１】
ここで、更新管理テーブルは、マスターボリューム３０とレプリケーションボリューム３１とが分離状態である状況下で更新されたブロックを示しており、この更新管理テーブルは、キャッシュメモリ２５に保存されている。
【０１０２】
キャッシュメモリ２５が、その更新管理テーブルを保存している状態で、電源断等によりディスクアレイ装置１が停止され、その後、ディスクアレイ装置１が立ち上げられると、キャッシュメモリ２５は初期化されてしまい、更新管理テーブル制御部４２は、更新管理テーブルのすべてのフラグをＯＮ状態にする。この状態から、再ミラー化指示が行われると、マスターボリューム３０内のマスターデータ全体を、レプリケーションボリューム３１にコピーしてしまうことになる。
【０１０３】
そこで、ディスクアレイ装置１は、再ミラー化指示時に、マスターボリューム内のマスターデータ全体をコピーしないために、ディスクアレイ装置１の停止時に、キャッシュメモリ２５内の更新管理テーブルを、システムディスク領域（システムボリューム３３）に保存する。
【０１０４】
図８は、装置停止時の動作を説明するためのフローチャートである。以下、図８を参照して装置停止時の動作を説明する。
【０１０５】
装置停止指示検出部４４は、装置停止指示を検出すると、その装置停止指示を排他制御部４１に提供する。
【０１０６】
排他制御部４１は、装置停止指示を受け付けると、ステップＳ１００を実行する。
【０１０７】
ステップＳ１００では、排他制御部４１は、ホストコンピュータ１０からのアクセスを禁止状態にして、マスターボリューム３０およびレプリケーションボリューム３１のデータが更新されない状態にする。
【０１０８】
その後、排他制御部４１は、装置停止指示を更新管理テーブル保存制御部４５に提供する。更新管理テーブル保存制御部４５は、装置停止指示を受け付けると、ステップＳ１０１を実行する。
【０１０９】
ステップＳ１０１では、更新管理テーブル保存制御部４５は、複数のディスク３０〜３３に搭載されている１つのボリュームを選択し、そのボリュームが、マスターボリュームまたはレプリケーションボリュームであるか判断する。
【０１１０】
なお、この判断を実行するための情報（図３または図４に示した情報）は、例えば、図１に示したキャッシュメモリ２５およびローカルメモリ２４に保存されており、更新管理テーブル保存制御部４５は、キャッシュメモリ２５またはローカルメモリ２４から、その情報を読み取って、ステップＳ１０１を実行する。
【０１１１】
更新管理テーブル保存制御部４５は、そのボリュームがマスターボリュームまたはレプリケーションボリュームであると、ステップＳ１０２を実行し、そのボリュームがマスターボリュームでもなくレプリケーションボリュームでもないと、ステップＳ１０３を実行する。
【０１１２】
ステップＳ１０２では、更新管理テーブル保存制御部４５は、キャッシュメモリ２５から更新管理テーブルの情報を読み出す。その後、更新管理テーブル保存制御部４５は、その更新管理テーブルの情報を、マスターボリューム３０とレプリケーションボリューム３１の関連付け情報、および、その状態（図３および図４参照）と併せて、システムボリューム３３に保存する処理を、システムボリューム制御部４８に実行させる。その後、更新管理テーブル保存制御部４５は、ステップＳ１０３を実行する。
【０１１３】
なお、マスターボリューム３０とレプリケーションボリューム３１の関連付け情報、および、その状態（図３および図４参照）が、例えば、キャッシュメモリ２５に保存されている場合は、更新管理テーブル保存制御部４５は、キャッシュメモリ２５からそれらの情報を読み出し、システムボリューム制御部４８に、それらの情報をシステムボリューム３３に保存させる。
【０１１４】
ステップＳ１０３では、更新管理テーブル保存制御部４５は、複数のディスク３０〜３３に搭載されているすべてのボリュームについてステップＳ１０１を実行したか判断し、すべてのボリュームについてステップＳ１０１を実行していないと、ステップＳ１０１を実行し、すべてのボリュームについてステップＳ１０１を実行して場合、動作を終了する。
【０１１５】
図９は、装置立ち上げ時の動作を説明するためのフローチャートである。以下、図９を参照して、装置立ち上げ時の動作を説明する。
【０１１６】
装置立ち上げ指示検出部４６は、装置立ち上げ指示を検出すると、その装置立ち上げ指示を排他制御部４１に提供する。
【０１１７】
排他制御部４１は、装置立ち上げ指示を受け付けると、ホストコンピュータ１０からのアクセスを禁止状態にして、マスターボリューム３０およびレプリケーションボリューム３１のデータが更新されない状態にする。
【０１１８】
その後、排他制御部４１は、装置立ち上げ指示を更新管理テーブル復帰制御部４７に提供する。更新管理テーブル復帰制御部４７は、装置立ち上げ指示を受け付けると、ステップＳ１１０を実行する。
【０１１９】
ステップＳ１１０では、更新管理テーブル復帰制御部４７は、複数のディスク３０〜３３に搭載されている１つのボリュームを選択し、そのボリュームが、マスターボリュームまたはレプリケーションボリュームであるか判断する。
【０１２０】
なお、この判断を実行するための情報（例えば、図３または図４に示した情報）は、例えば、図１に示したキャッシュメモリ２５およびローカルメモリ２４に保存されており、更新管理テーブル保存制御部４５は、ローカルメモリ２４から、その情報を読み取って、ステップＳ１１０を実行する。
【０１２１】
更新管理テーブル復帰制御部４７は、そのボリュームがマスターボリュームまたはレプリケーションボリュームであると、ステップＳ１１１を実行し、そのボリュームがマスターボリュームでもなくレプリケーションボリュームでもないと、ステップＳ１１２を実行する。
【０１２２】
ステップＳ１１１では、更新管理テーブル復帰制御部４７は、システムボリューム３３に保存されている、マスターボリューム３０とレプリケーションボリューム３１の関連付け情報、その状態、および、更新管理テーブルの情報を読み出してキャッシュメモリ２５に展開する処理を、システムボリューム制御部４８に実行させる。その後、更新管理テーブル復帰制御部４７は、ステップＳ１１２を実行する。
【０１２３】
ステップＳ１１２では、更新管理テーブル復帰制御部４７は、複数のディスク３０〜３３に搭載されているすべてのボリュームについてステップＳ１１０を実行したか判断し、すべてのボリュームについてステップＳ１１０を実行していないと、ステップＳ１１０を実行し、すべてのボリュームについてステップＳ１１０を実行して場合、動作を終了する。
【０１２４】
すべての読み出しが完了すると、排他制御部４１は、ホストコンピュータ１０からのアクセス禁止状態を解除する。このため、ホストコンピュータ１０からのアクセスが可能な状態となり、通常の運用が可能となる。
【０１２５】
本実施例によれば、更新管理テーブル保存制御部４５は、装置停止時に、キャッシュメモリ２５内の更新管理テーブルをシステムボリューム３３に保存し、また、更新管理テーブル復帰制御部４７は、装置立ち上げ時に、システムボリューム３３から更新管理テーブルを読み出して、その更新管理テーブルをキャッシュメモリ２５に保存する。
【０１２６】
このため、ディスクアレイ装置１の動作停止に伴い、キャッシュメモリ２５内の更新管理テーブルが消去されても、ディスクアレイ装置１の起動時には、システムボリューム３３に保存されている更新管理テーブルがキャッシュメモリ２５に展開される。
【０１２７】
よって、ディスクアレイ装置１の立ち上げ後の再ミラー化時に、更新管理テーブルを用いることができる。このため、ディスクアレイ装置の立ち上げ後の再ミラー化時に、最小限のコピーのみの実施でミラー化が実施でき、複製データおよび／またはマスターデータを短時間で作成することが可能になる。
【０１２８】
また、本実施例では、更新管理テーブル保存制御部４５は、装置停止指示を受け付けると、キャッシュメモリ２５に保存されている更新管理テーブルを、システムボリューム３３に保存する。
【０１２９】
この場合、ディスクアレイ装置１の停止に伴い、更新管理テーブルが消失することを防止できる。
【０１３０】
なお、更新管理テーブル保存制御部４５は、例えば、以下のような機能をさらに有してもよい。
【０１３１】
図１０は、更新管理テーブル保存制御部４５の追加機能、具体的には、マスターボリューム３０またはレプリケーションボリューム３１に、一定期間、データのライトが実施されない状態を定期的に監視する監視タスクを説明するためのフローチャートである。
【０１３２】
なお、図１０において、図８に示した処理と同一の処理には同一符号を付してある。以下、図８の処理と異なる点を中心に動作を説明する。
【０１３３】
ステップＳ１０１およびＳ１２１では、更新管理テーブル保存制御部４５は、マスターボリューム３０またはレプリケーションボリューム３１に、一定期間、データの書き込み（ライト）が実施されない状態を定期的に監視する。
【０１３４】
更新管理テーブル保存制御部４５は、マスターボリューム３０またはレプリケーションボリューム３１に、一定期間、データのライトが実施されないと、ステップＳ１０２を実行して、その時点の更新管理テーブルの情報をシステムボリューム３３に保存する。
【０１３５】
この場合、長時間ライトが無い状態で、停電などの装置障害によりキャッシュメモリ２５内の更新管理テーブルが消失しても、装置立ち上げ時に、システムボリューム３３から更新管理テーブルを読み込み、その更新管理テーブルをキャッシュメモリ２５に復帰することができる。このため、再ミラー化時に最小限のコピーのみでミラー化が実施できる。
【０１３６】
図１１および図１２は、更新管理テーブル制御部４２および更新管理テーブル保存制御部４５の変形例を説明するためのフローチャートである。
【０１３７】
なお、図１１において、図７に示した処理と同一の処理には同一符号を付してあり、また、図１２において、図６に示した処理と同一の処理には同一符号を付してある。以下、以下、図７および図６の処理と異なる点を中心に動作を説明する。
【０１３８】
図１１において、ステップＳ７０５Ａは、図７に示したステップＳ７０５の代わりに実行され、ステップＳ７０７Ａは、図７に示したステップＳ７０７の代わりに実行される。
【０１３９】
ステップＳ７０５Ａでは、更新管理テーブル制御部４２は、更新管理テーブルＡ内のフラグのうち、ホストコンピュータ１０にてアクセスされたマスターボリューム３０のブロックに対応するフラグをＯＮ状態に変更する。その後、更新管理テーブル制御部４２は、更新管理テーブルＡをシステムボリューム３３に保存する処理を、更新管理テーブル保存制御部４５に実行させる。その後、更新管理テーブル制御部４２は、ステップＳ７０６を実行する。
【０１４０】
ステップＳ７０７Ａでは、更新管理テーブル制御部４２は、更新管理テーブルＢ内のフラグのうち、ホストコンピュータ１０にてアクセスされたレプリケーションボリューム３１のブロックに対応するフラグをＯＮ状態に変更する。その後、更新管理テーブル制御部４２は、更新管理テーブルＢをシステムボリューム３３に保存する処理を、更新管理テーブル保存制御部４５に実行させる。その後、更新管理テーブル制御部４２は、ステップＳ７０９を実行する。
【０１４１】
また、図１２において、ステップＳ６０４Ａは、図６に示したステップＳ６０４の代わりに実行される。
【０１４２】
ステップＳ６０４Ａでは、更新管理テーブル制御部４２は、更新管理テーブルＡのフラグをＯＦＦ状態にして、その後、更新管理テーブルＡをシステムボリューム３３に保存する処理を更新管理テーブル保存制御部４５に実行させ、その後、ミラー化動作を終了する。
【０１４３】
この場合、ミラー化していない状態時の更新管理テーブルのフラグ情報が更新されるたびに、更新管理テーブル保存制御部４５が、フラグ情報が更新された更新管理テーブルをシステムボリューム３３に保存してから、更新管理テーブル制御部４２が、ホストデータを書き込む。
【０１４４】
このため、装置障害によりキャッシュメモリ２５内の更新管理テーブルが消失した場合でも、装置障害発生時までの更新管理テーブルがシステムボリューム３３に保存されている。よって、更新管理テーブル復帰制御部４７が、システムボリューム３３に保存されている更新管理テーブルを、図９に示した手順でキャッシュメモリ２５に展開することにより、キャッシュメモリ２５内の更新管理テーブルを、装置障害発生前の状態とすることができる。
【０１４５】
したがって、ディスクアレイ装置１の立ち上げ後の再ミラー化時にも、複製データを短時間で作成することが可能になる。
【０１４６】
さらに、図１では、マスターボリューム、レプリケーションボリューム、および、システムボリュームのそれぞれは、１台のディスクであるが、それらは、ＲＡＩＤを構成しているディスクでも実施可能である。
【０１４７】
また、図１では、更新管理テーブルがシステムボリュームに保存されるが、マスターボリュームまたはレプリケーションのボリュームとして使用されているディスクの空きエリアに、更新管理テーブルが保存されてもよい。また、他のコンパクトフラッシュメモリなどの不揮発なメモリに、更新管理テーブルが保存されてもよい。
【０１４８】
以上説明した実施例において、図示した構成は単なる一例であって、本発明はその構成に限定されるものではない。
【図面の簡単な説明】
【０１４９】
【図１】本発明の一実施例のディスクアレイ装置のハードウェア構成を示したブロック図である。
【図２】ディスクアレイ装置１の機能的な構成を示したブロック図である。
【図３】レプリケーション時の各ボリュームの状態を示した説明図である。
【図４】レプリケーション時の各ボリュームの状態を示した説明図である。
【図５】更新管理テーブルの一例を示した説明図である。
【図６】ミラー化動作を説明するためのフローチャートである。
【図７】データライト時の動作を説明するためのフローチャートである。
【図８】装置停止時の動作を説明するためのフローチャートである。
【図９】装置立ち上げ時の動作を説明するためのフローチャートである。
【図１０】監視タスクを説明するためのフローチャートである。
【図１１】更新管理テーブル制御部４２および更新管理テーブル保存制御部４５の変形例を説明するためのフローチャートである。
【図１２】更新管理テーブル制御部４２および更新管理テーブル保存制御部４５の変形例を説明するためのフローチャートである。
【符号の説明】
【０１５０】
１        ディスクアレイ装置
１０        ホストコンピュータ
２０        ディスクアレイコントローラ
２１        インタフェースチップ
２２        メモリコントローラ
２３        マイクロプロセッサ
２４        ローカルメモリ
２５        キャッシュメモリ
２６        インタフェースチップ
３０〜３３  ディスク
４０        ホストＩＯ受信部
４１        排他制御部
４２        更新管理テーブル制御部
４３        リード／ライト制御部４３
４４        装置停止指示検出部
４５        更新管理テーブル保存制御部
４６        装置立ち上げ指示検出部
４７        更新管理テーブル復帰制御部
４８        システムボリューム制御部
【図１】
0004741976.tif 000002
【図２】
0004741976.tif 000003
【図３】
0004741976.tif 000004
【図４】
0004741976.tif 000005
【図５】
0004741976.tif 000006
【図６】
0004741976.tif 000007
【図７】
0004741976.tif 000008
【図８】
0004741976.tif 000009
【図９】
0004741976.tif 000010
【図１０】
0004741976.tif 000011
【図１１】
0004741976.tif 000012
【図１２】
0004741976.tif 000013