(57)【特許請求の範囲】
【請求項１】
指定された時点における第１の論理ボリュームの内容と、現在の前記第１の論理ボリュームの内容との差分を表す差分データ及びその管理情報である差分管理情報を保持し、保持した前記差分データ及び前記差分管理情報に基づいて、前記指定された時点における第１の論理ボリュームを復元する機能が搭載されたディスクアレイ装置において、
前記ディスクアレイ装置の稼動時に前記差分管理情報を保持するためのメモリと、
１又は複数の記憶デバイスと、
前記メモリ及び前記記憶デバイスに対するデータの読み書きを制御する制御部と、
を備え、
前記記憶デバイスは、
システムを起動及び制御するために用いられるシステム情報を格納するためのシステム領域及びユーザデータを格納するためのユーザデータ領域を記憶領域として提供し、
前記制御部は、
外部操作に応じて、前記第１の論理ボリューム及び前記差分管理情報を格納するための第２の論理ボリュームを前記ユーザデータ領域に設定し、
前記ディスクアレイ装置の稼動を停止させる際には、前記メモリに保持された前記差分管理情報のうち前記第１の論理ボリュームの内容変更の有無を管理するための情報である差分ビットマップを前記システム領域に退避させ、前記メモリに保持された前記差分管理情報のうちプールボリュームに格納された各差分データとそれぞれ１対１で対応付けられた複数の管理領域を有する差分情報テーブル及び前記第１の論理ボリュームの各ブロック領域と前記差分情報テーブル上の対応する管理領域とを対応付けたプライマリボリュームアドレステーブルを前記第２の論理ボリュームに退避させ、
前記ディスクアレイ装置を起動させる際には、当該差分管理情報を前記システム領域及び前記第２の論理ボリュームから前記メモリに読み出させ、
前記第２の論理ボリュームを設定する際には、前記メモリの記憶容量を検出し、次いで前記記憶デバイスが提供する論理ボリュームのうち、未使用の論理ボリュームを検出し、該検出した未使用の論理ボリュームのうち、前記検出したメモリの記憶容量のうち前記差分管理情報を格納するために使用する記憶容量よりも大きな記憶容量であり、かつ、予め定められた記憶容量以内の記憶容量の論理ボリュームを、前記差分管理情報を退避させる前記第２の論理ボリュームの候補としてユーザに提示する
ことを特徴とするディスクアレイ装置。
【請求項２】
前記制御部は、
前記外部操作に応じて、前記第２の論理ボリュームを複数設定し、
前記ディスクアレイ装置の稼動を停止させる際には、設定された各前記第２の論理ボリュームにそれぞれ前記差分管理情報を退避させる
ことを特徴とする請求項１に記載のディスクアレイ装置。
【請求項３】
前記制御部は、
前記第２の論理ボリュームを上位装置が認識できないように遮蔽する
ことを特徴とする請求項１に記載のディスクアレイ装置。
【請求項４】
前記差分管理情報は、
対応する前記差分データの世代を管理するための情報を含む
ことを特徴とする請求項１に記載のディスクアレイ装置。
【請求項５】
前記差分管理情報は、
対応する前記差分データと、当該差分データの前の前記世代及び又は次の前記世代の前記差分データとを関連付ける情報を含む
ことを特徴とする請求項１に記載のディスクアレイ装置。
【請求項６】
指定された時点における第１の論理ボリュームの内容と、現在の前記第１の論理ボリュームの内容との差分を表す差分データ及びその管理情報である差分管理情報を保持し、保持した前記差分データ及び前記差分管理情報に基づいて、前記指定された時点における第１の論理ボリュームを復元する機能が搭載されたディスクアレイ装置の制御方法において、
前記ディスクアレイ装置は、
前記ディスクアレイ装置の稼動時に前記差分管理情報を保持するためのメモリと、
１又は複数の記憶デバイスと、
前記メモリ及び前記記憶デバイスに対するデータの読み書きを制御する制御部と、
を備え、
前記記憶デバイスが、
システムを起動及び制御するために用いられるシステム情報を格納するためのシステム領域及びユーザデータを格納するためのユーザデータ領域を記憶領域として提供する第１のステップと、
前記制御部が、
外部操作に応じて、前記第１の論理ボリューム及び前記差分管理情報を格納するための第２の論理ボリュームを前記ユーザデータ領域に設定する第２のステップと、
前記ディスクアレイ装置の稼動を停止させる際には、前記メモリに保持された前記差分管理情報のうち前記第１の論理ボリュームの内容変更の有無を管理するための情報である差分ビットマップを前記システム領域に退避させ、前記メモリに保持された前記差分管理情報のうちプールボリュームに格納された各差分データとそれぞれ１対１で対応付けられた複数の管理領域を有する差分情報テーブル及び前記第１の論理ボリュームの各ブロック領域と前記差分情報テーブル上の対応する管理領域とを対応付けたプライマリボリュームアドレステーブルを前記第２の論理ボリュームに退避させる第３のステップと、
前記ディスクアレイ装置を起動させる際には、当該差分管理情報を前記システム領域及び前記第２の論理ボリュームから前記メモリに読み出させる第４のステップと、
前記第２の論理ボリュームを設定する際には、前記メモリの記憶容量を検出し、次いで前記記憶デバイスが提供する論理ボリュームのうち、未使用の論理ボリュームを検出し、該検出した未使用の論理ボリュームのうち、前記検出したメモリの記憶容量のうち前記差分管理情報を格納するために使用する記憶容量よりも大きな記憶容量であり、かつ、予め定められた記憶容量以内の記憶容量の論理ボリュームを、前記差分管理情報を退避させる前記第２の論理ボリュームの候補としてユーザに提示する第５のステップと
を備えることを特徴とするディスクアレイ装置の制御方法。
【請求項７】
前記第５のステップでは、
前記外部操作に応じて、前記第２の論理ボリュームを複数設定し、
前記第３のステップでは、
前記ディスクアレイ装置の稼動を停止させる際に、設定された各前記第２の論理ボリュームにそれぞれ前記差分管理情報を退避させる
ことを特徴とする請求項６に記載のディスクアレイ装置の制御方法。
【請求項８】
前記第２の論理ボリュームを上位装置が認識できないように遮蔽する
ことを特徴とする請求項６に記載のディスクアレイ装置の制御方法。
【請求項９】
前記差分管理情報は、
対応する前記差分データの世代を管理するための情報を含む
ことを特徴とする請求項６に記載のディスクアレイ装置の制御方法。
【請求項１０】
前記差分管理情報は、
対応する前記差分データと、当該差分データの前の前記世代及び又は次の前記世代の前記差分データとを関連付ける情報を含む
ことを特徴とする請求項６に記載のディスクアレイ装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスアレイ装置及びその制御方法に関し、例えばスナップショット機能が搭載されたディスクアレイ装置に適用して好適なものである。
【背景技術】
【０００２】
従来、下記特許文献１に記載のように、ディスクアレイ装置の機能の１つとして、スナップショットの作成指示を受けた時点における指定された論理ボリューム（以下、これをプライマリボリュームと呼ぶ）のイメージを保持する、いわゆるスナップショット機能がある。スナップショット機能は、人為的なミスによりデータが消失してしまったときや、所望時点におけるファイルシステムの状態を復元したいときなどに、その時点におけるプライマリボリュームを復元するために用いられる。
【０００３】
かかるスナップショット機能により保持されるプライマリボリュームのイメージ（バーチャルボリュームとも呼ばれる）は、スナップショットの作成指示を受けた時点におけるプライマリボリューム全体のデータではなく、現在のプライマリボリュームのデータと、プールボリュームと呼ばれる専用の論理ボリュームに保持される差分データとから構成される。この差分データは、スナップショットの作成指示を受けた時点におけるプライマリボリュームと、現在のプライマリボリュームとの差分である。そしてこれらの差分データと現在のプライマリボリュームとに基づいて、かかるスナップショット作成指示された時点におけるプライマリボリュームの状態が復元される。従って、スナップショット機能によれば、プライマリボリュームの内容をそのまま記憶する場合に比べて、より小さい記憶容量でスナップショット作成指示された時点のプライマリボリュームを復元できるという利点がある。
【特許文献１】特開２００３−２４２０１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、従来のディスクアレイ装置においては、ＯＳ（Operating System）などからなるマイクロプログラムや、各論理ボリュームの開始ＬＢＡ（Logical Brock Address）、終了ＬＢＡ、容量及び属性などの構成情報、各外部ポートの設定情報などのディスクアレイ装置全体を起動及び制御するために必要な情報（以下、これらをまとめてシステム情報と呼ぶ）がディスクアレイ装置内の２つ又はそれ以上のディスクドライブにそれぞれミラー状に書き込まれて保持されている。このようにシステム情報が書き込まれる領域はシステム領域と呼ばれ、かかる各ディスクドライブに予め固定的に確保されている。
【０００５】
そして、従来のディスクアレイ装置では、上述したスナップショット機能における各差分データの管理情報（以下、これらをスナップショット差分管理情報と呼ぶ）も、ユーザ指示により装置を停止させる計画停止の際に、このシステム領域に退避させて保持するように構成されていた。
【０００６】
このため、かかる従来のディスクアレイ装置では、ユーザの希望によりスナップショット機能が搭載されていない場合や、未だスナップショット機能を利用していない場合においても、上述のようなスナップショット差分管理情報を保持するための記憶領域が、使用されないにもかかわらずシステム領域内に予め固定的に確保されるなど、記憶資源を有効かつ効率的に使用し難い問題があった。
【０００７】
本発明は以上の点を考慮してなされたもので、記憶資源を有効かつ効率的に使用し得るディスクアレイ装置及びその制御方法を提案しようとするものである。
【課題を解決するための手段】
【０００８】
かかる課題を解決するため、本発明は、指定された時点における第１の論理ボリュームの内容と、現在の前記第１の論理ボリュームの内容との差分を表す差分データ及びその管理情報である差分管理情報を保持し、保持した前記差分データ及び前記差分管理情報に基づいて、前記指定された時点における当該第１の論理ボリュームを復元する機能が搭載されたディスクアレイ装置において、前記ディスクアレイ装置の稼動時に前記差分管理情報を保持するためのメモリと、１又は複数の記憶デバイスと、前記メモリ及び前記記憶デバイスに対するデータの読み書きを制御する制御部とを備え、前記制御部は、外部操作に応じて、前記差分管理情報を格納するための第２の論理ボリュームを前記記憶デバイスが提供する記憶領域に設定し、前記ディスクアレイ装置の稼動を停止させる際には、前記メモリに保持された前記差分管理情報を前記第２の論理ボリュームに退避させ、前記ディスクアレイ装置を起動させる際には、当該差分管理情報を前記第２の論理ボリュームから前記メモリに読み出させることを特徴とする。
【０００９】
また本発明は、指定された時点における第１の論理ボリュームの内容と、現在の前記第１の論理ボリュームの内容との差分を表す差分データ及びその管理情報である差分管理情報を保持し、保持した前記差分データ及び前記差分管理情報に基づいて、前記指定された時点における当該第１の論理ボリュームを復元する機能が搭載されたディスクアレイ装置の制御方法において、外部操作に応じて、前記差分管理情報を格納するための第２の論理ボリュームを所定の記憶デバイスが提供する記憶領域に設定する第１のステップと、前記ディスクアレイ装置の稼動を停止させる際には、所定のメモリに保持された前記差分管理情報を前記第２の論理ボリュームに退避させ、前記ディスクアレイ装置を起動させる際には、当該差分管理情報を前記第２の論理ボリュームから前記メモリに読み出させる第２のステップとを備えることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、差分管理情報を格納するための第２の論理ボリュームを必要なときに設定できるようにすることができるため、差分管理情報を格納するための記憶領域を予め固定的に確保しておく場合に比べて、記憶資源を有効かつ効率的に使用することができる。
【発明を実施するための最良の形態】
【００１１】
以下図面について、本発明の一実施の形態を詳述する。
【００１２】
（１）第１の実施の形態
（１−１）本実施の形態によるディスクアレイ装置１の構成
図１は、本実施例に係るディスクアレイ装置１の構成を示す。ディスクアレイ装置１は、通信ネットワーク２を介してホスト装置（上位ホスト装置）３に接続されている。
【００１３】
ホスト装置３は、ディスクアレイ装置１の上位装置として機能するサーバ、パーソナルコンピュータ、ワークステーション、メインフレームなどから構成される。通信ネットワーク２としては、例えば、ＬＡＮ(Local Area Network)、ＳＡＮ（Storage Area Network）、インターネット、専用回線等を挙げることができる。
【００１４】
ホスト装置３がオープン系の場合、通信ネットワーク２を介したホスト装置３及びディスクアレイ装置１間の通信は、例えばＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）、ＦＣＰ（Fibre Channel Protocol ）、ｉＳＣＳＩ（internet Small Computer System Interface）等のプロトコルに従って行われる。またホスト装置３がメインフレーム系の場合、通信ネットワーク２を介したホスト装置３及びディスクアレイ装置１間の通信は、例えばＦＩＣＯＮ（Fibre Connection：登録商標）、ＥＳＣＯＮ（Enterprise System Connection：登録商標）、ＡＣＯＮＡＲＣ（Advanced Connection Architecture：登録商標）、ＦＩＢＡＲＣ（Fibre Connection Architecture：登録商標）等の通信プロトコルに従って行われる。
【００１５】
ディスクアレイ装置１は、二重化されたコントローラ１０，２０を備えるデュアルコントローラ構成を有する。コントローラ１０は、主にＣＰＵ１１、ローカルメモリ（ＬＭ）１２、データコントローラ（Ｄ−ＣＴＬ）１３、キャッシュメモリ（ＣＭ）１４、ファイバチャネルプロトコルコントローラ（Ｆ−ＣＴＬ）１５、ＰＢＣ（Port Bypass Circuit）１６、エンクロージャーコントローラ（Ｅ−ＣＴＬ）１７、及びＦＣ−ＡＬ（Fibre Channel Arbitrated Loop）３０，３１を備える。
【００１６】
ＣＰＵ１１は、ホスト装置３からのデータ入出力要求に応答して、複数のディスクドライブＤＲＶ０〜ＤＲＶ１４へのデータ入出力処理（ライトアクセス又はリードアクセス）を制御するプロセッサであり、ローカルメモリ１２に格納されたマイクロプログラムを実行することによりデータコントローラ１３、ファイバチャネルプロトコルコントローラ１５及びＰＢＣ１６等を制御する。
【００１７】
データコントローラ１３は、ＣＰＵ１１の制御に基づいて、ファイバチャネルプロトコルコントローラ１５とキャッシュメモリ１４との間のデータ転送を制御する。キャッシュメモリ１４は、ファイバチャネルプロトコルコントローラ１５を介してフロントインターフェース又はバックインターフェースとの間で授受されるデータを一時的に記憶する。
【００１８】
ファイバチャネルプロトコルコントローラ１５は、フロントインターフェース接続用ファイバチャネル１８Ｆを介してホスト装置３にインターフェース接続されており、ファイバチャネルプロトコルによるブロックアクセス要求を受信する機能を有する。またファイバチャネルプロトコルコントローラ１５は、バックインターフェース接続用ファイバチャネル１８Ｂを介してディスクドライブＤＲＶ０〜ＤＲＶ１４にインターフェース接続されており、ディスクドライブＤＲＶ０〜ＤＲＶ１４を制御するコマンド等を規定するプロトコルに従って、ディスクドライブＤＲＶ０〜ＤＲＶ１４へのデータ入出力要求を送信する機能を有する。ＰＢＣ１６は、バックインターフェース接続用ファイバチャネル１８Ｂの接続先として、二つのＦＣ−ＡＬ３０，３１のうち何れか一方又は両者を選択し、接続切り替えを行う。
【００１９】
ＦＣ−ＡＬ３０は、ＦＣ−ＡＬ３１上に実装されたＰＢＣ３５を介して、偶数番号のディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４にループ接続されている。またＦＣ−ＡＬ３１は、ＦＣ−ＡＬ３１上に実装されたＰＢＣ３５を介して、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３にループ接続されている。
【００２０】
ＰＢＣ３５は、システム運用上の障害を最小限に止めて、ノードの追加や削除が行えるようにＦＣ−ＡＬ３０，３１を自動的にオープン又はクローズする電子スイッチである。ＰＢＣ３５は、ファイバチャネルプロトコルコントローラ１５やディスクドライブＤＲＶ０〜ＤＲＶ１４をバイパスして、これらをＦＣ−ＡＬ３０，３１から電気的に除外する機能を有する。例えばＰＢＣ３５は、障害が発生したディスクドライブＤＲＶ０〜ＤＲＶ１４をＦＣ−ＡＬ３０，３１から切り離して、他のディスクドライブＤＲＶ０〜ＤＲＶ１４とファイバチャネルプロトコルコントローラ１５との間の通信を可能にする。またＰＢＣ３５は、ＦＣ−ＡＬ３０，３１の動作を維持したままで、ディスクドライブＤＲＶ０〜ＤＲＶ１４の抜き差しを可能にする。例えば、新たなディスクドライブが装着された場合には、そのディスクドライブをＦＣ−ＡＬ３０，３１に取り込み、ファイバチャネルプロトコルコントローラ１５との間の通信を可能にする。
【００２１】
エンクロージャーコントローラ（Ｅ−ＣＴＬ）１７は、ＳＥＳ（SCSI Enclosure Surcuit）ドライブを制御する。ＳＥＳドライブは、ＳＣＳＩ３（Small Computer System Interface ３）規格に規定されるＳＥＳ（ＳＣＳＩ Enclosure Services）やＥＳＩ(Enclosure Service I/F)の機能を備えており、ＳＥＳ（ＳＣＳＩ Enclosure Service）やＥＳＩ(Enclosure Service I/F)の機能を動作させることができる。本実施例の場合、ＳＥＳドライブは、ＦＣ−ＡＬ３０〜３３の他に、エンクロージャーコントローラ１７とも通信可能なディスクドライブである。ここでは、各ＦＣ−ＡＬにつき２台のディスクドライブＤＲＶ０〜ＤＲＶ３をＳＥＳドライブとしているが、全てのディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４をＳＥＳドライブとしてもよい。
【００２２】
一方、コントローラ２０は、コントローラ１０と同様に構成されており、ＣＰＵ２１、ローカルメモリ（ＬＭ）２２、データコントローラ（Ｄ−ＣＴＬ）２３、キャッシュメモリ（ＣＭ）２４、ファイバチャネルプロトコルコントローラ（ＦＣ−ＣＴＬ）２５、ＰＢＣ２６、エンクロージャーコントローラ（Ｅ−ＣＴＬ）２７、フロントインターフェース接続用ファイバチャネル２８Ｆ、バックインターフェース接続用ファイバチャネル２８Ｂ、及びＦＣ−ＡＬ３２，３３を備えて構成される。
【００２３】
ＰＢＣ２６は、バックインターフェース接続用ファイバチャネル２８Ｂの接続先として、２つのＦＣ−ＡＬ３２，３３のうち何れか一方又は両方を選択し、接続切り替えを行う。ＦＣ−ＡＬ３２は、ＰＢＣ３５を介して偶数番号のディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４にループ接続している。ＦＣ−ＡＬ３３は、ＰＢＣ３５を介して奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３にループ接続されている。
【００２４】
データコントローラ１３，２３はバス３６を介して相互に接続されており、一方のデータコントローラ１３（又は２３）がバス３６を介して他方のデータコントローラ２３（又は１３）に対して、コマンド転送やデータ転送等を行うこともできる。例えば、両コントローラ１０，２０が分担して同一の論理ボリュームに対するアクセスを行う場合に、両コントローラ間でライトデータ又はリードデータの転送を行うこともできる。
【００２５】
コントローラ１０，２０は、ディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４をいわゆるＲＡＩＤ方式に規定されるＲＡＩＤレベル（例えば、０，１，５）で制御することができる。ＲＡＩＤ方式では、複数のディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４を一つのグループ（以下、ＲＡＩＤグループと称する。）として管理する。ＲＡＩＤグループ上には、ホスト装置３からのアクセス単位である論理ボリュームが形成される。各論理ボリュームには、ＬＵＮ（Logical Unit Number）と呼ばれる識別子が付与されている。
【００２６】
なお、ＰＢＣ１６とＦＣ−ＡＬ３０，３１との間には、それぞれＰＢＣ４０，４１が実装されている。ＰＢＣ４０は、ＦＣ−ＡＬ３０に障害が生じた場合には、バックインターフェース接続用ファイバチャネル１８Ｂを、ファイバチャネル４４（点線）を介してＦＣ−ＡＬ３２に接続する。ＰＢＣ４１は、ＦＣ−ＡＬ３１に障害が生じた場合には、バックインターフェース接続用ファイバチャネル１８Ｂを、ファイバチャネル４５（点線）を介してＦＣ−ＡＬ３３に接続する。
【００２７】
同様に、ＰＢＣ２６とＦＣ−ＡＬ３２，３３との間には、それぞれＰＢＣ４２，４３が実装されている。ＰＢＣ４２は、ＦＣ−ＡＬ３２に障害が生じた場合には、バックインターフェース接続用ファイバチャネル２８Ｂを、ファイバチャネル４６（点線）を介してＦＣ−ＡＬ３０に接続する。ＰＢＣ４３は、ＦＣ−ＡＬ３３に障害が生じた場合には、バックインターフェース接続用ファイバチャネル２８Ｂを、ファイバチャネル４７（点線）を介してＦＣ−ＡＬ３１に接続する。
【００２８】
仮に、各コントローラ１０，２０に実装されている全てのＰＢＣ４０〜４３がファイバチャネル４４〜４７に接続することにより、バックインターフェース接続用ファイバチャネル１８Ｂ，２８Ｂが相手コントローラ側のＦＣ−ＡＬ３０〜３３に接続された状態を想定すると、この状態は、例えば、特開２０００−１８７５６１号の図１に示されているように、両コントローラ間を接続するファイバチャネルループに複数のディスクドライブが接続する状態と同じになる。
【００２９】
以下の説明においては、ＦＣ−ＡＬ３０をコントローラ２０の稼働系ＦＣ−ＡＬ、ＦＣ−ＡＬ３１をコントローラ２０の待機系ＦＣ−ＡＬ、ＦＣ−ＡＬ３２をコントローラ２０の待機系ＦＣ−ＡＬ、ＦＣ−ＡＬ３３をコントローラ２０の稼働系ＦＣ−ＡＬとした場合を想定して説明を進める。
【００３０】
図２は複数のディスクドライブＤＲＶ１０〜ＤＲＶ１４に形成される論理ボリュームを示している。ここでは、説明の便宜上、二つの論理ボリュームＬＵ１，ＬＵ２が示されている。ホスト装置３に搭載されているＯＳ（Operating System）は、論理ボリューム名を指定してディスクアレイ装置１０にアクセスする。仮に、各論理ボリュームＬＵ１，ＬＵ２を構成する物理ディスクを一つにすると、その物理ディスクが故障したときに、その論理ボリュームＬＵ１，ＬＵ２は使用不能となる。これを防止するために、ＲＡＩＤ方式では、各論理ボリュームＬＵ１，ＬＵ２が異なる複数のディスクドライブＤＲＶ１０〜ＤＲＶ１４上に形成される。その一方で、コントローラ１０の稼働系ＦＣ−ＡＬ３０は偶数番号のディスクドライブＤＲＶ１０、１２、１４に接続され、コントローラ２０の稼働系ＦＣ−ＡＬ３３は奇数番号のディスクドライブＤＲＶ１１、１３に接続されているため、各々の論理ボリュームＬＵ１，ＬＵ２へのアクセスは、必ずしも何れか一方のコントローラ１０又は２０のみが行うものではなく、両コントローラ１０，２０が協調制御の下、協力して行うように構成してもよい。
【００３１】
ホスト装置３からディスクアレイ装置１の論理ボリュームＬＵ１又はＬＵ２に対して、ライトアクセスが行われると、このライトアクセスと共にホスト装置３から出力されて一方のコントローラ１０内のキャッシュメモリ１４に格納されたライトデータは、バス３６を介して他方のコントローラ２０内のキャッシュメモリ１４にも格納される。このようにデータを二重化することで、一方のコントローラ１０に障害が生じた場合でも、他方のコントローラ２０にフェイルオーバーできる。キャッシュメモリ１４，２４にライトデータが格納された時点でディスクアレイ装置１はホスト装置３に対してライトアクセス完了の通知を行う。次いで、コントローラ１０は、ＦＣ−ＡＬ３０を介してディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４へのライトアクセスを行う。ライトアクセスが行われる論理ボリュームＬＵ１又はＬＵ２は、偶数番号のディスクドライブＤＲＶ０，ＤＲＶ１，…，ＤＲＶ１４だけでなく、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３をも含むので、奇数番号のディスクドライブＤＲＶ１，ＤＲＶ３，…，ＤＲＶ１３へのライトアクセスは、コントローラ２０がＦＣ−ＡＬ３３を介して行う。
【００３２】
一方、ホスト装置３からディスクアレイ装置１の論理ボリュームＬＵ１又はＬＵ２に対して、リードアクセスが行われると、コントローラ１０はキャッシュメモリ１４をチェックし、リードアクセスの対象となるデータがある場合には、該当データを読み取ってホスト装置３に送信する。キャッシュメモリ１４に該当データがない場合には、コントローラ１０は、ＦＣ−ＡＬ６１を介してディスクドライブＤＲＶ０，ＤＲＶ２，…，ＤＲＶ１４へのリードアクセスを行う。リードアクセスが行われる論理ボリュームＬＵ１又はＬＵ２は、偶数番号のディスクドライブＤＲＶ１０、１２、１４だけでなく、奇数番号のディスクドライブＤＲＶ１１、１３をも含むので、奇数番号のディスクドライブＤＲＶ１１、１３へのリードアクセスはコントローラ３０がＦＣ−ＡＬ３３を介して行う。各コントローラ１０，２０によって読み出されたリードデータはキャッシュメモリ１４，２４に二重書きされる。
【００３３】
このように、一つの論理ボリュームに対するアクセスを、両コントローラ１０，２０が協調制御の下、協力して行うことにより、各コントローラ１０，２０の処理負荷を均等化できる。本実施例では、偶数番号のディスクドライブＤＲＶ１０、１２、１４と、奇数番号のディスクドライブＤＲＶ１１、１３とに二分して、各コントローラ１０，２０の処理負荷を均等化する例を示したが、各コントローラ１０，２０が担当するディスクドライブ数が略同程度になるように、例えば、ディスクドライブＤＲＶ１１、１２と、ディスクドライブＤＲＶ１３、１４とに二分して、各コントローラ１０，２０の処理負荷を均等化してもよい。
【００３４】
また、本実施例では、二つのＰＢＣ１６，２６を制御して、バックインターフェース接続用ファイバチャネル１８Ｂ，２８Ｂを稼働系ＦＣ−ＡＬ３０，３３に接続するだけで、全てのディスクドライブＤＲＶ０〜ＤＲＶ１４は、何れか一方のコントローラ１０又は２０に接続されるため、ＦＣ−ＡＬ３０〜３３上に実装された個々のＰＢＣ３５を個別に制御する必要がなく、制御が容易である。また、各ＣＰＵ１１，２１は、各コントローラ内の稼働系ＦＣ−ＡＬと待機系のＦＣ−ＡＬを区別することなく、両者とも同一のデバイスとして認識しているので、制御が容易である。
【００３５】
（１−２）スナップショット差分管理情報の管理方式
次に、かかるディスクアレイ装置１におけるスナップショット差分管理情報の管理方式について説明する。
【００３６】
本ディスクアレイ装置１では、図３に示すように、ＦＣ−ＡＬ３０〜３３に接続された先頭から５つ分のディスクドライブＤＲＶ０〜４に固定的にシステム領域ＳＡＲ０〜ＳＡＲ４が割り当てられ、これら５つのディスクドライブＤＲＶ０〜４の各システム領域ＳＡＲ０〜ＳＡＲ４内にそれぞれマイクロプログラムなどの全てのユーザが共通に使用するシステム情報を保持（５重化）する一方で、オプション機能であるスナップショット機能の実行により得られる上述のスナップショット差分管理情報の一部を、予めユーザにより設定された専用の論理ボリューム（以下、これを差分管理ボリュームと呼ぶ）に保持するようになされた点を特徴の１つとしている。
【００３７】
図４は、このような本ディスクアレイ装置１におけるスナップショット差分管理情報の管理方式を概念的に示したものである。本ディスクアレイ装置１の場合、スナップショット差分管理情報としては、差分ビットマップ５０、プライマリボリュームアドレステーブル５１及び差分情報テーブル５２が存在する。
【００３８】
差分ビットマップ５０は、スナップショット作成対象の論理ボリュームＬＵであるプライマリボリュームＬＵPの内容変更の有無を、６４〔Kbyte〕（ある範囲（例えば１〜５１２〔Kbyte〕の範囲など）で可変とすることができる）のブロック領域ＢＬ単位で管理するためのビットマップであり、プライマリボリュームＬＵP内の各ブロック領域ＢＬとそれぞれ１対１で対応付けられた複数のビットを有する。この差分ビットマップ５０は、スナップショット作成指示が与えられたタイミングでリセット（オール「０」）され、その後、プライマリボリューム内のいずれかのブロック領域ＢＬの内容が最初に更新されたときに（すなわち、そのブロック領域ＢＬに新たにデータが書き込まれ又はそのブロック領域ＢＬに書き込まれていたデータが上書きされたときに）、そのブロック領域ＢＬと対応付けられたビットが「０」から「１」に変更される。
【００３９】
プライマリボリュームアドレステーブル５１は、プライマリボリュームＬＵPの各ブロック領域ＢＬと差分情報テーブル５２上の対応する管理領域５２Ａとを対応付けたテーブルであり、プライマリボリュームＬＵPの各ブロック領域ＢＬにそれぞれ対応させて、複数のアドレス領域５１Ａが設けられている。そして、これらアドレス領域５１Ａには、プライマリボリュームＬＵPの対応するブロック領域ＢＬの内容が更新されて、対応する差分データＤDFがプールボリュームＬＵPOOLに格納されたときに、後述のようにその差分データＤDFと対応付けて作成された差分情報テーブル５２上の管理領域５２Ａのアドレスが格納される。
【００４０】
差分情報テーブル５２は、プールボリュームＬＵPOOLに格納された各差分データＤDFとそれぞれ１対１で対応付けられた複数の管理領域５２Ａを有している。各管理領域５２Ａには、例えば図５に示すように、４〔Byte〕の次差分管理情報アドレスフィールドＦＬ1、４〔Byte〕の前差分管理情報アドレスフィールドＦＬ2、同じく４〔Byte〕の世代管理ビットマップフィールドＦＬ3、１〔Byte〕のプライマリボリュームＬＵＮフィールドＦＬ4、同じく１〔Byte〕のリザーブフィールドＦＬ5及び２〔Byte〕のプライマリボリューム通し番号フィールドＦＬ6がそれぞれ設けられている。
【００４１】
このうち世代管理ビットマップフィールドＦＬ3は、複数世代分のバーチャルボリューム（スナップショット）の作成を可能とするために世代管理用のビットマップを格納するフィールドであり、対応する差分データＤDFが属するバーチャルボリュームの世代が格納される。また次差分管理情報アドレスフィールドＦＬ1には、次世代のバーチャルボリュームにおける対応する差分データＤDFと関連付けられた管理領域５２Ａの差分情報テーブル５２上のアドレスが格納される。さらに前差分管理情報アドレスフィールドＦＬ2には、前世代のバーチャルボリュームにおける対応する差分データＤDFと関連付けられた管理領域５２Ａの差分情報テーブル５２上のアドレスが格納される。この前差分管理情報アドレスフィールドＦＬ2に格納されているアドレスを辿って行くことによって、より古い世代のバーチャルボリュームにおける対応する差分データＤDF及びその管理情報にアクセスすることができる。
【００４２】
プライマリボリュームＬＵＮフィールドＦＬ4には、対応するプライマリボリュームＬＵPのＬＵＮの下１〔Byte〕が格納される。これはチェックコードとして使用される。またプライマリボリューム内通し番号フィールドＦＬ6には、プライマリボリュームＬＵP内での対応するブロック領域ＢＬの通し番号が格納される。これもチェックコードとして使用される。なお、リザーブフィールドＦＬ5は、将来の拡張のために設けられたものであり、通常はダミーデータが格納される。
【００４３】
このようなスナップショット差分管理情報のうち、差分ビットマップ５０は、ディスクアレイ装置１の立ち下がり時にシステム情報の一部として図３について上述したシステム領域ＳＡＲ0〜ＳＡＲ4に格納されて保存され、プライマリボリュームアドレステーブル５１及び差分情報テーブル５２は、ディスクアレイ装置１の立下り時に差分管理ボリュームＬＵDMに格納されて保存される。そしてこれら差分ビットマップ５０、プライマリボリュームアドレステーブル５１Ａ及び差分情報テーブル５２は、ディスクアレイ装置１の立ち上がり時にそれぞれシステム領域ＳＡＲ0〜ＳＡＲ4や差分管理ボリュームＬＵDMから読み出されてキャッシュメモリ１４，２４上に展開され、その後必要に応じて後述のように更新される。
【００４４】
なお、差分ビットマップ５０、プライマリボリュームアドレステーブル５１及び差分情報テーブル５２は、コントローラ１０，２０毎にそれぞれ作成される。ただし、このとき各コントローラ１０，２０同士が通信を行いながら同期して差分情報テーブル５２等を作成するため、同じものが作成されることとなる。このように差分ビットマップ５０、プライマリボリュームアドレステーブル５１及び差分情報テーブル５２をディスクアレイ装置１内において２重化してもつことにより、一方のデータが壊れた場合においても他方のデータによって対応することが可能となる。
【００４５】
図６は、本ディスクアレイ装置１における差分管理ボリュームＬＵDMの設定手順を示すフローチャートである。本ディスクアレイ装置１では、差分管理ボリュームＬＵDMを設定する場合、通常の論理ボリュームＬＵを作成する場合と同様にして、まず複数のディスクドライブＤＲＶ０〜ＤＲＶ４からなるＲＡＩＤグループを設定する（Ｓ１）。具体的には、専用のソフトウェアがインストールされたホスト装置３（図１）を操作して、そのディスプレイに所定の設定画面を表示させ、この設定画面を用いて、新たに作成しようとするＲＡＩＤグループを構成するディスクドライブＤＲＶ０〜ＤＲＶ４、ＲＡＩＤグループの容量、ＲＡＩＤ構成（４Ｄ＋１Ｐ等）及びＲＡＩＤレベル（１、１＋０、２〜６）などを設定する。
【００４６】
続いて、ユーザは、このようにして設定したＲＡＩＤグループ内に論理ボリュームＬＵを作成する（Ｓ２）。具体的には、上述した設定画面を用いて、新たに作成しようとする論理ボリュームＬＵのＬＵＮや容量などをそれぞれ設定する。
【００４７】
この後ユーザは、このようにして作成した１又は複数の論理ボリュームＬＵの中から所望の論理ボリュームＬＵを差分管理ボリュームＬＵDMに設定する（Ｓ３）。具体的には、ホスト装置３を操作して、そのディスプレイに例えば図７に示すような設定画面６０を表示させ、その後この設定画面６０の右下に表示された設定ボタン６１をクリックするようにする。この結果、ホスト装置３のディスプレイ上に、図８に示すセレクトロジカルユニットダイアログ６２が表示される。
【００４８】
このセレクトロジカルユニットダイアログ６２は、差分管理ボリュームＬＵDMに設定しようとする論理ボリュームＬＵを選択するためのダイアログであり、そのディスクアレイ装置１内に形成された全ての論理ボリュームＬＵの中から対象となる各論理ボリュームＬＵのＬＵＮや、容量及びその論理ボリュームＬＵが属するＲＡＩＤグループの識別番号などの各種情報が論理ボリューム情報表示欄６２Ａ内に一覧表示される。
【００４９】
かくしてユーザは、このセレクトロジカルユニットダイアログ６２の論理ボリューム情報表示欄６２Ａに表示された情報を目視確認しながら必要な条件（この実施の形態では容量が５〔Gbyte〕以上）を満たす所望の論理ボリュームＬＵを選択し、その後ＯＫボタン６３をクリックするようにする。この結果、図９に示すような確認メッセージダイアログ６４がホスト装置３のディスプレイに表示される。そしてユーザは、問題がなければこの確認メッセージダイアログ６４のＯＫボタン６５をクリックするようにする。
【００５０】
かくして、このとき選択された論理ボリュームＬＵが差分管理ボリュームＬＵDMとして設定され、図１０に示すように、この選択された論理ボリュームＬＵ（差分管理ボリュームＬＵDM）のＬＵＮや容量及び当該論理ボリュームＬＵが属するＲＡＩＤグループの識別番号などの各種情報が設定画面６０の差分管理ボリューム表示欄６０Ａに表示される。
【００５１】
このように設定された差分管理ボリュームＬＵDMは、ディスクアレイ装置１内において、他の通常の論理ボリュームＬＵと同様に扱われる。ただし、差分管理ボリュームＬＵDMに設定された論理ボリュームＬＵは、ホスト装置３からは認識されないように遮蔽される。
【００５２】
なお、本実施のディスクアレイ装置１の場合、セレクトロジカルユニットダイアログ６２（図８）を用いて、差分管理ボリュームＬＵDMとして最大２個の論理ボリュームＬＵを選択し設定することができる。この場合、２個目の論理ボリュームＬＵは、１個目の論理ボリュームＬＵのミラーリング用として用いられる。
【００５３】
本ディスクアレイ装置１の場合、差分管理ボリュームＬＵDMが設定されていなければ、スナップショット機能が実行されない。この場合における差分管理ボリュームＬＵDMが設定されているか否かの判断は、オプションであるスナップショット機能用のプログラムを購入してインストールし、管理プログラムからのその開錠キーを入力した段階では行われず、実際にホスト装置３からディスクアレイ装置１に対してスナップショット作成指示を与えたときに当該ディスクアレイ装置１の各コントローラ１０，２０内のＣＰＵ１１，２１によって行われる。
【００５４】
図１１は、このような判断に関するＣＰＵ１１，２１の処理手順を示すフローチャートである。ＣＰＵ１１，２１は、ホスト装置３からスナップショット作成指示が与えられると、まずキャッシュメモリ１４，２４上に展開されているシステム情報に基づいて、差分管理ボリュームＬＵDMが設定されているか否かを判定する（Ｓ１０）。
【００５５】
そしてＣＰＵ１１，２１は、差分管理ボリュームＬＵDMが設定されていないときには、ホスト装置３に対してエラーメッセージを送信する（Ｓ１１）。この結果、対応するホスト装置３のディスプレイに対応するエラーメッセージが表示される。
【００５６】
一方、ＣＰＵ１１，２１は、差分管理ボリュームＬＵDMが設定されているときには、プライマリボリュームＬＵPに対するデータのライト／リード処理と並行して、図１２に示すフローチャートに従って、スナップショットの作成処理を実行する（Ｓ１２）。
【００５７】
すなわち、ＣＰＵ１１，２１は、スナップショット作成処理を開始すると、まず差分ビットマップ５０（図４）及びプライマリボリュームアドレステーブル５１（図４）をそれぞれクリアし（Ｓ２０）、その後プライマリボリュームＬＵPへのライトアクセスを待ち受ける（Ｓ２１）。
【００５８】
そしてＣＰＵ１１，２１は、この後ホスト装置３からプライマリボリュームＬＵPへのライトアクセスがあると（Ｓ２１：ＹＥＳ）、まず差分ビットマップ５０を参照して、そのときライトデータを書き込むべきプライマリボリュームＬＵPのブロック領域ＢＬに対するライトアクセスが、最後のスナップショット作成指示が与えられてから最初のものであるか否かを判定する（Ｓ２２）。
【００５９】
ＣＰＵ１１，２１は、このライトアクセスがそのブロック領域ＢＬに対する最初のものでなかった場合には（Ｓ２２：ＮＯ）、再度、プライマリボリュームＬＵPへのライトアクセスを待ち受ける待ち受け状態に戻る（Ｓ２１）。
【００６０】
これに対して、ＣＰＵ１１，２１は、このライトアクセスがそのブロック領域ＢＬに対する最初のものであった場合には（Ｓ２２：ＹＥＳ）、プライマリボリュームＬＵPにおけるライトアクセス直前の当該ブロック領域ＢＬのデータを読み出し、これを差分データＤDF（図４）としてプールボリュームＬＵPOOL（図４）の対応するアドレス位置に書き込ませる（Ｓ２３）。
【００６１】
またＣＰＵ１１，２１は、この後、キャッシュメモリ１４，２４に展開されている差分ビットマップ５０、プライマリボリュームアドレステーブル５１及び差分情報テーブル５２の更新処理を実行する（Ｓ２４）。
【００６２】
具体的に、ＣＰＵ１１，２１は、差分ビットマップ５０の対応するビットを「０」から「１」に変更する。またＣＰＵ１１，２１は、差分情報テーブル５２上にその差分データＤDFに対する管理領域５２Ａ（図４）を確保し、その管理領域５２Ａにおける世代管理ビットマップフィールドＦＬ3（図５）、プライマリボリュームＬＵＮフィールドＦＬ4（図５）及びプライマリボリューム通し番号フィールドＦＬ6（図５）に必要な情報をそれぞれ格納する。この際ＣＰＵ１１，２１は、前世代のバーチャルボリュームが存在する場合には、その管理領域５２Ａにおける前差分管理情報アドレスフィールドＦＬ2（図５）に、前世代の差分データＤDFと対応付けられた管理領域５２Ａの差分情報テーブル５２上のアドレスを格納すると共に、当該前世代の差分データＤDFと対応付けられた管理領域５２Ａの次差分管理情報アドレスフィールドＦＬ1（図５）に、上述のようにそのときに確保した管理領域５２Ａの差分情報テーブル５２上のアドレスを格納する。さらにＣＰＵ１１，２１は、この管理領域５２Ａのアドレスをプライマリボリュームアドレステーブル５１の対応するアドレス領域５１Ａに格納する。
【００６３】
そしてＣＰＵ１１，２１は、再度、プライマリボリュームＬＵPへのライトアクセスを待ち受ける待ち受け状態に戻る（Ｓ２１）。また、この後ＣＰＵ１１，２１は、同様の処理を繰り返すことで（Ｓ２１〜Ｓ２４−Ｓ２１）、スナップショット作成指示時のプライマリボリュームＬＵPのイメージ（バーチャルボリューム）を保持する。
【００６４】
一方、図１３は、ディスクアレイ装置１の計画停止時における差分情報の退避に関するＣＰＵ１１，２１の処理手順を示すフローチャートである。
【００６５】
ＣＰＵ１１，２１は、ユーザの操作に基づいてホスト装置３から稼動を停止すべき旨のコマンドが送信されてくると、まず、他方のコントローラ１０，２０のＣＰＵ１１，２１と通信して、自ＣＰＵ１１，２１及び他方のＣＰＵ２１，１１の少なくとも一方がスナップショット差分管理情報を更新処理中であるか否かを判断する（Ｓ３０）。
【００６６】
ＣＰＵ１１，２１は、かかる判断において肯定結果を得ると（Ｓ３０：ＹＥＳ）、双方のＣＰＵ１１，２１がスナップショット差分管理情報の更新処理を終えるのを待ち受け、やがて双方のＣＰＵ１１，２１がスナップショット差分管理情報の更新処理を終えると（Ｓ３０：ＮＯ）、キャッシュメモリ１４，２４に保持されているシステム情報に基づいて、差分管理ボリュームＬＵDMのＬＵＮを取得する（Ｓ３１）。またＣＰＵ１１，２１は、ミラーリング用の差分管理ボリューム（２個目の差分管理ボリューム）ＬＵDMが設定されている場合には、その差分管理ボリュームＬＵDMのＬＵＮも取得する（Ｓ３１）。
【００６７】
そしてＣＰＵ１１，２１は、このようにして取得した差分管理ボリュームＬＵDMのＬＵＮとシステム情報とに基づいて、キャッシュメモリ１４，２４に保持しているスナップショット差分管理情報のうちのプライマリボリュームアドレステーブル５１及び差分情報テーブル５２のデータを、差分管理ボリュームＬＵDMに格納（退避）させる（Ｓ３２）。この際ＣＰＵ１１，２１は、ミラーリング用の差分管理ボリュームＬＵDMが設定されている場合には、かかるプライマリボリュームアドレステーブル５１及び差分情報テーブル５２のデータを、そのミラー側の差分管理ボリュームＬＵDMにも退避させる（Ｓ３２）。
【００６８】
またＣＰＵ１１，２１は、これと同様にしてシステムキャッシュメモリ１４，２４に保持されているシステム情報に基づいてシステム領域ＳＡＲ0〜ＳＡＲ4が設けられたディスクドライブＤＲＶ０〜ＤＲＶ４を検出し、キャッシュメモリ１４，２４に展開しているスナップショット差分管理情報のうちの差分ビットマップ５０を、キャッシュメモリ１４，２４に展開している他のシステム情報と共にかかるシステム領域ＳＡＲ0〜ＳＡＲ4に格納（退避）させる（Ｓ３２）。
【００６９】
他方、図１４は、ディスクアレイ装置１の立ち上がり時におけるスナップショット差分管理情報の読み出しに関するＣＰＵ１１，２１の処理手順を示すフローチャートである。
【００７０】
ＣＰＵ１１，２１は、ユーザの操作に基づいてホスト装置３からディスクアレイ装置１を立ち上げるべき旨のコマンドが送信されてくると、まず、上述のシステム領域ＳＡＲ0〜ＳＡＲ4が設けられた５つのディスクドライブＤＲＶ０〜ＤＲＶ４のいずれかからシステム情報を読み出し、これをキャッシュメモリ１４，２４に展開する（Ｓ４０）。
【００７１】
続いてＣＰＵ１１，２１は、キャッシュメモリ１４，２４に展開したシステム情報に基づいて差分管理ボリュームＬＵDMのＬＵＮを検出し（Ｓ４１）、この後この検出したＬＵＮの論理ボリュームＬＵ、すなわち差分管理ボリュームＬＵDMからスナップショット差分管理情報（プライマリボリュームアドレステーブル５１及び差分情報テーブル５２）を読み出して、これをキャッシュメモリ１４，２４に展開する（Ｓ４２）。
【００７２】
この際、ＣＰＵ１１，２１は、差分管理ボリュームＬＵDMが２つ設定されている場合には、図１５に示すように、初期時には、これら２つの差分管理ボリュームＬＵDMのうちの最初に設定された方の差分管理ボリュームＬＵDM（以下、これをマスター側の差分管理ボリュームＬＵDMと呼ぶ）からスナップショット差分管理情報を読み出すものの、退避時の書込みエラーによりデータが壊れているなど、なんらかの原因によりその読み出しに失敗したときには、対象を最後に設定された方の差分管理ボリュームＬＵDM（以下、これをミラー側の差分管理ボリュームＬＵDMと呼ぶ）に切り替えて、この差分管理ボリュームＬＵDMからスナップショット差分管理情報を読み出すようにディスクドライブＤＲＶ０〜ＤＲＶ４を制御する。また、このときＣＰＵ１１，２１は、ミラー側の差分管理ボリュームＬＵDMからのスナップショット差分管理情報の読み出しを、読み出しに失敗した位置から再開するように対応するディスクドライブＤＲＶ０〜ＤＲＶ４を制御する。
【００７３】
さらにＣＰＵ１１，２１は、ミラー側の差分管理ボリュームＬＵDMからスナップショット差分管理情報を読み出している場合に、その読み出しに失敗したときには、対象をマスター側の差分管理ボリュームＬＵDMに切り替えて、この差分管理ボリュームＬＵDMからスナップショット差分管理情報を読み出すようにディスクドライブ１１を制御する。この場合にも、ＣＰＵ１１，２１は、読み出しに失敗した位置から差分情報の読み出しを再開するように対応するディスクドライブＤＲＶ０〜ＤＲＶ４を制御する。
【００７４】
このように本ディスクアレイ装置１では、ユーザの都合に合わせてユーザが自由に差分管理ボリュームＬＵDMを設定でき、この設定された差分管理ボリュームＬＵDMに差分ビットマップ５０を除くスナップショット差分管理情報を格納するようにしているため、例えば従来のディスクアレイ装置のように、スナップショット機能の購入の有無及びスナップショット機能の使用の有無にかかわりなく、スナップショット差分管理情報を格納するための記憶容量をシステム領域ＳＡＲ0〜ＳＡＲ4内に予め固定的に確保しておく場合に比べて、有効かつ効率的にディスクドライブＤＲＶ０〜ＤＲＶ４の記憶容量（記憶資源）を使用することができる。
【００７５】
また本ディスクアレイ装置１では、このような差分管理ボリュームＬＵDMを２つ設定でき、２つの差分管理ボリュームＬＵDMが設定されたときには、キャッシュメモリ１４，２４に保持されたスナップショット差分管理情報を各差分管理ボリュームＬＵDMのそれぞれに退避させるようにしているため、退避時の書込みエラーなどの原因により一方の差分管理ボリュームＬＵDMに格納されたスナップショット差分管理情報に不具合が発生した場合においても、実用上十分に対応することができる。
【００７６】
なお本ディスクアレイ装置１の場合、スナップショット差分管理情報を差分管理ボリュームＬＵDMやシステム領域ＳＡＲ0〜ＳＡＥ4から読み出してキャッシュメモリ１４，２４上に展開した後に、そのキャッシュメモリ１４，２４におけるスナップショット差分管理情報が格納された記憶領域にアクセスするための専用のウインドが予め設けている。
【００７７】
すなわち、通常、キャッシュメモリ１４，２４へのアクセス時には、キャッシュメモリ１４，２４の記憶領域全体を一度に参照することができないため、図１６に示すように、キャッシュメモリ１４，２４におけるデータを読み出そうとする領域ＭARのみを取り囲むようにウインドＷが設定され、その領域ＭARにのみ排他的にアクセスできるようにする処理が行われる。
【００７８】
この場合において、あるアクセスに対してウインドＷを設定する際には、先行する排他的な設定を削除後、ウインドＷを前のアクセスに対する位置から今回のアクセスに対する位置に切り替えるなどの処理が必要となる。このため、かかる処理によりオーバーヘッドが発生して、迅速なメモリアクセスを行い得ない場合がある。
【００７９】
そこで本ディスクアレイ装置１では、キャッシュメモリ１４，２４上の頻繁にアクセスされるスナップショット差分管理情報が格納される固定的な領域ＭAR(DM)に対して専用のウインドＷDMを予め設定しておき、他の領域にウインドＷが設定されている場合においても、専用のウインドＷDMを用いて当該スナップショット差分管理情報が格納された領域ＭAR(DM)に対して排他的にアクセスできるようにすることで、ウインド切り替えに伴うオーバーヘッドを削減し、かかる領域ＭAR(DM)に対する迅速なアクセスを可能としている。
【００８０】
なお、このように専用のウインドＷDMを設定できるようにする領域ＭARは、キャッシュメモリ１４，２４におけるスナップショット差分管理情報が格納される領域ＭAR(DM)に限らず、頻繁にアクセスされる他の固定的な領域ＭARについても同様に専用のウインドＷを設定できるようにしても良い。
【００８１】
（２）第２の実施の形態
図１において７０は、第２の実施の形態によるディスクアレイ装置を示す。このディスクアレイ装置７０は、差分管理ボリュームＬＵDMの設定方法が異なる点を除いて第１の実施の形態によるディスクアレイ装置１と同様に構成されている。
【００８２】
すなわち、第１の実施の形態によるディスクアレイ装置１では、図１７に示すように、１つのコントローラ１０，２０あたりのキャッシュメモリ１４，２４の容量に対して、スナップショット差分管理情報を格納するために使用する容量が予め定められている。この図１７からも明らかなように、１つのコントローラ１０，２０あたりのキャッシュメモリ１４，２４の容量が１０２４〜８１９２〔Mbyte〕である場合、スナップショット差分管理情報を格納するために使用できる容量は５１２〜４０９６〔Mbyte〕である。
【００８３】
このため第１の実施の形態では、図７〜図１０について上述した設定画面６０等を用いて差分管理ボリュームＬＵDMに設定する論理ボリュームＬＵを選択する際には、キャッシュメモリ１４，２４におけるスナップショット差分管理情報を格納するために使用する容量の最大値が４０９６〔ＭＢ〕であることを考慮して、その最低限度の記憶容量が５〔Gbyte〕であることが差分管理ボリュームＬＵDMとして選択できる論理ボリュームＬＵの条件となっていた。
【００８４】
このような構成によれば、差分管理ボリュームＬＵDMを設定する際に、ユーザがディスクアレイ装置１における各コントローラ１０，２０のキャッシュメモリ１４，２４の容量を気にすることなく、固定的に５〔Gbyte〕以上の容量を有する論理ボリュームＬＵを選択すればよいため、差分管理ボリュームＬＵDMの設定作業を容易化させ得るという利点がある。しかしながら、その反面、このような構成によると、差分管理ボリュームＬＵDMとして５１２〔Mbyte〕の容量しか必要がない場合にも固定的に５〔Gbyte〕以上の論理ボリュームＬＵを選択しなければならないため、その差分だけ容量が無駄になるという問題がある。
【００８５】
そこで本実施の形態によるディスクアレイ装置７０では、差分管理ボリュームＬＵDMを設定する際、各コントローラ１０，２０のＣＰＵ７１，７２が当該ディスクアレイ装置７０における各コントローラ１０，２０のキャッシュメモリ１４，２４の容量を調査し、その調査結果に基づいて最適な容量を有する論理ボリュームＬＵを差分管理ボリュームＬＵDMの候補としてユーザに提示するようになされた点を特徴としている。
【００８６】
図１８は、このような差分管理ボリュームＬＵDMの設定処理に関する本ディスクアレイ装置７０内のＣＰＵ７１，７２の処理手順を示すフローチャートである。
【００８７】
ＣＰＵ７１，７２は、ユーザがホスト装置３を操作して差分管理ボリュームＬＵDMを設定するための所定のコマンドを入力すると、まず、所定のディスクドライブＤＲＶ０〜ＤＲＶ４のシステム領域ＳＡＲ0〜ＳＡＲ4から読み出されてキャッシュメモリ１４，２４に展開されたシステム情報に基づいて、各コントローラ１０，２０内のキャッシュメモリ１４，２４の容量を検出する（Ｓ５０）。また、ＣＰＵ７１，７２は、かかるシステム情報に基づいて、未使用の論理ボリュームＬＵ及びその論理ボリュームＬＵの容量をそれぞれ検出する（Ｓ５１）。
【００８８】
続いてＣＰＵ７１，７２は、これらの検出結果に基づいて、差分管理ボリュームＬＵDMの候補となり得る論理ボリュームＬＵ、つまりコントローラ１０，２０におけるキャッシュメモリ１４，２４の容量よりも予め定められた所定量（例えば数Mbyte〜数百Mbyte程度）以内の大きさの容量を有する未使用の論理ボリュームＬＵが存在するか否かを判定する（Ｓ５２）。
【００８９】
そしてＣＰＵ７１，７２は、この判定により差分管理ボリュームＬＵDMの候補となり得る論理ボリュームＬＵが存在しないと判定したときには（Ｓ５２：ＮＯ）、ホスト装置３に対してエラーメッセージを送信し、この後この一連の処理を終了する。かくして、このときそのホスト装置３のディスプレイに対応するエラーメッセージが表示される。
【００９０】
これに対して、ＣＰＵ７１，７２は、この判定により差分管理ボリュームＬＵDMの候補となり得る論理ボリュームＬＵが存在すると判定したときには、対応する全ての論理ボリュームＬＵについての各種情報をホスト装置３に送信することにより、例えば図１９に示すようなセレクトロジカルユニットダイアログ８０をホスト装置３のディスプレイに表示させる（Ｓ５４）。
【００９１】
このセレクトロジカルユニットダイアログ８０には、差分管理ボリュームＬＵDMの候補となり得る全ての論理ボリュームＬＵについて、ＬＵＮや容量などの情報が一覧表示される。またこのセレクトロジカルユニットダイアログ８０では、差分管理ボリュームＬＵDMの候補となり得る全ての論理ボリュームＬＵのうち、その容量がコントローラ１０，２０内のキャッシュメモリ１４，２４の容量に対して必要となる容量よりも大きくかつ当該容量に最も近い容量の論理ボリュームＬＵが強調表示される。
【００９２】
そしてＣＰＵ７１，７２は、セレクトロジカルユニットダイアログ８０に掲載した差分管理ボリュームＬＵDMの候補となり得る全ての論理ボリュームＬＵのうちのいずれかの論理ボリュームＬＵが選択されるのを待ち受け（Ｓ５５）、やがてホスト装置３からセレクトロジカルユニットダイアログ８０に一覧表示された論理ボリュームＬＵのうちの１つの論理ボリュームＬＵを選択する操作が入力された旨のコマンドが入力されると（Ｓ５５：ＹＥＳ）、これに応動してその選択された論理ボリュームＬＵを差分管理ボリュームＬＵDMに設定する（Ｓ５６）。この後ＣＰＵ７１，７２は、かかる一連の処理を終了する。
【００９３】
これに対してＣＰＵ７１，７２は、セレクトロジカルユニットダイアログ８０に掲載した論理ボリュームＬＵのいずれも選択されなかったときには（Ｓ５５：ＮＯ）、その段階で管理ボリュームＬＵDMを設定することなく、この一連の処理を終了する。従って、この場合には、第１の実施の形態において上述した手順に従ってユーザ自身で差分管理ボリュームＬＵDMとなり得る論理ボリュームＬＵを探すこととなる。
【００９４】
このように本実施の形態によるディスクアレイ装置７０では、差分管理ボリュームＬＵDMを設定する際、各コントローラ１０，２０内のキャッシュメモリ１４，２４の容量を調査し、その調査結果に基づいて最適な容量を有する論理ボリュームＬＵを差分管理ボリュームＬＵDMの候補としてユーザに提示するようになされているため、差分管理ボリュームＬＵDMの設定が容易であり、例えばスナップショット機能の初期設定作業を簡易化させることができる。
【００９５】
またこの場合において、本ディスクアレイ装置７０は、差分管理ボリュームＬＵDMの候補として、キャッシュメモリ１４，２４の容量よりも予め定められた所定量以内の大きさの容量を有する未使用の論理ボリュームＬＵを提示するため、差分管理ボリュームＬＵDMとしてキャッシュメモリ１４，２４の容量に応じた最適な容量の論理ボリュームＬＵを提示することができ、この結果キャッシュメモリ１４，２４の容量に比して無駄に容量の大きい論理ボリュームが差分管理ボリュームＬＵDMとして設定されるという不具合を未然にかつ有効に防止することができる。
【００９６】
（３）他の実施の形態
なお上述の第１及び第２の実施の形態においては、ミラー側の差分管理ボリュームＬＵDMを１つだけ設定（つまり差分管理ボリュームＬＵDMを２つだけ設定）できるようにした場合について述べたが、本発明はこれに限らず、ミラー側の差分管理ボリュームＬＵDMを２つ以上設定（つまり差分管理ボリュームＬＵDMを３つ以上設定）できるようにしても良い。
【００９７】
また上述の第２の実施の形態においては、差分管理ボリュームＬＵDMの候補の論理ボリュームＬＵをユーザに提示する手法として、図１９のようなセレクトロジカルユニットダイアログ８０をホスト装置３のディスプレイに表示させるようにした場合について述べたが、本発明はこれに限らず、提示手法としては、この他種々の方法を広く適用することができる。
【産業上の利用可能性】
【００９８】
本発明は、ディスクアレイ装置に適用することができる。
【図面の簡単な説明】
【００９９】
【図１】本実施の形態によるディスクアレイ装置の構成を示すブロック図である。
【図２】論理ボリュームの説明に供する概念図である。
【図３】本実施の形態によるスナップショット差分管理情報の管理方式の説明に供する概念図である。
【図４】本実施の形態によるスナップショット差分管理情報の管理方式の説明に供する概念図である。
【図５】差分情報テーブルの説明に供する概念図である。
【図６】差分管理ボリュームの設定手順の説明に供するフローチャートである。
【図７】設定画面を示す図である。
【図８】セレクトロジカルユニットダイアログを示す図である。
【図９】確認メッセージダイアログを示す図である。
【図１０】差分管理ボリューム設定後の設定画面を示す図である。
【図１１】スナップショット作成指示受信後のＣＰＵの処理手順を示すフローチャートである。
【図１２】スナップショット作成処理に関するＣＰＵの処理手順を示すフローチャートである。
【図１３】スナップショット差分管理情報の退避に関するＣＰＵの処理手順を示すフローチャートである。
【図１４】スナップショット差分管理情報の読み出しに関するＣＰＵの処理手順を示すフローチャートである。
【図１５】スナップショット差分情報の読出し障害時におけるＣＰＵの処理内容の説明に供する概念図である。
【図１６】キャッシュメモリの固定領域に設定される専用のウインドの説明に供する概念図である。
【図１７】キャッシュメモリの容量とスナップショット差分管理情報のデータ量と関係の説明に供する図表である。
【図１８】第２の実施の形態によるディスクアレイ装置における差分管理ボリュームの設定に関するＣＰＵの処理手順を示すフローチャートである。
【図１９】差分管理ボリュームの候補の一覧表示の様子を示す図である。
【符号の説明】
【０１００】
１，７０……ディスクアレイ装置、３……ホスト装置、１０，２０……コントローラ、１１，２１……ＣＰＵ、１２，２２……ローカルメモリ、１４，２４……キャッシュメモリ、５０……差分ビットマップ、５１……プライマリボリュームアドレステーブル、５２……差分情報テーブル、６０……設定画面、６２，８０……セレクトロジカルユニットダイアログ、ＤＲＶ０〜ＤＲＶ１４……ディスクドライブ、論理ボリューム……ＬＵ，ＬＵ1，ＬＵ2……論理ボリューム、ＬＵDN……差分管理ボリューム、ＬＵP……プライマリボリューム、ＬＵPOOL……プールボリューム、ＭAR，ＭAR(DM)……領域、Ｗ，ＷDM……ウインド。
【図１】
0004783076.tif 000002
【図２】
0004783076.tif 000003
【図３】
0004783076.tif 000004
【図４】
0004783076.tif 000005
【図５】
0004783076.tif 000006
【図６】
0004783076.tif 000007
【図７】
0004783076.tif 000008
【図８】
0004783076.tif 000009
【図９】
0004783076.tif 000010
【図１０】
0004783076.tif 000011
【図１１】
0004783076.tif 000012
【図１２】
0004783076.tif 000013
【図１３】
0004783076.tif 000014
【図１４】
0004783076.tif 000015
【図１５】
0004783076.tif 000016
【図１６】
0004783076.tif 000017
【図１７】
0004783076.tif 000018
【図１８】
0004783076.tif 000019
【図１９】
0004783076.tif 000020