(57)【要約】【課題】  カスケード・コピー・ターゲティング機能及び高められた完全性をもつストレージ・システムを提供すること。【解決手段】  ホスト・コンピュータ装置及び複数の制御されたストレージ装置と協働可能なストレージ・コントローラは、データ・オブジェクトを複数の制御されたストレージ装置の１つにおけるソース・データ・イメージに書き込むように動作可能なホスト書き込みコンポーネントと、メタデータ状態に応答し、複数の制御されたストレージ装置におけるカスケード内のデータ・イメージの区切りシーケンスにおけるターゲット・データ・イメージにデータ・オブジェクトをコピーするのを制御するように動作可能なコピー・コンポーネントと、ターゲット・データ・イメージを含むディスクのオフライン条件の検出に応答し、ターゲット・データ・イメージを含むディスクに代えて補填ディスクによる置換を制御するように動作可能な補填コンポーネントと、を含む。【選択図】  図２
2006244501.tif 000002
【特許請求の範囲】
【請求項１】
ホスト・コンピュータ装置及び複数の被制御ストレージ装置と協働可能なストレージ・コントローラであって、
データ・オブジェクトを前記複数の被制御ストレージ装置の１つにおけるソース・データ・イメージに書き込むように動作可能なホスト書き込みコンポーネントと、
メタデータ状態に応答し、前記複数の被制御ストレージ装置において、前記データ・オブジェクトをカスケード内のデータ・イメージの区切りシーケンスにおけるターゲット・データ・イメージにコピーするのを制御するように動作可能なコピー・コンポーネントと、
前記ターゲット・データ・イメージを含むディスクのオフライン条件の検出に応答し、前記ターゲット・データ・イメージを含むディスクに代えて補填ディスクによる置換を制御するように動作可能な補填コンポーネントと、
を含むストレージ・コントローラ。
【請求項２】
前記ストレージ・コントローラがストレージ・ネットワークに組み込まれる、請求項１に記載のストレージ・コントローラ。
【請求項３】
前記ストレージ・ネットワークがストレージ・エリア・ネットワークである、請求項２に記載のストレージ・コントローラ。
【請求項４】
第１及び第２のコピー・コンポーネントの少なくとも一方が、通信ネットワークの異なるノードに配置される、請求項１に記載のストレージ・コントローラ。
【請求項５】
第１及び第２のコピー・コンポーネント、並びに、さらに別のコピー・コンポーネントの少なくとも１つが通信ネットワークの異なるノードに配置される、請求項２に記載のストレージ・コントローラ。
【請求項６】
ホスト・コンピュータ装置及び複数の被制御ストレージ装置と協働可能なストレージ・コントローラの動作方法であって、
ホスト書き込みコンポーネントにより、データ・オブジェクトを前記複数の被制御ストレージ装置の１つにおけるソース・データ・イメージに書き込むステップと、
メタデータ状態に応答し、コピー・コンポーネントにより、前記複数の被制御ストレージ装置におけるカスケード内のデータ・イメージの区切りシーケンスにおけるターゲット・データ・イメージへの前記データ・オブジェクトのコピーを制御するステップと、
前記ターゲット・データ・イメージを含むディスクのオフライン条件の検出に応答し、補填コンポーネントにより、前記ターゲット・データ・イメージを含むディスクに代えて補填ディスクによる置換を制御するステップと、
を含む方法。
【請求項７】
前記ストレージ・コントローラがストレージ・ネットワークに組み込まれる、請求項６に記載の方法。
【請求項８】
前記ストレージ・コントローラがストレージ・エリア・ネットワークである、請求項７に記載の方法。
【請求項９】
第１及び第２のコピー・コンポーネントの少なくとも一方が、通信ネットワークの異なるノードに配置される、請求項６に記載の方法。
【請求項１０】
第１及び第２のコピー・コンポーネント、並びに、さらに別のコピー・コンポーネントの少なくとも１つが通信ネットワークの異なるノードに配置される、請求項６に記載の方法。
【請求項１１】
コンピュータにロードされ、実行されたとき、前記コンピュータに、請求項６から請求項１０までのいずれか１項に記載された方法のステップを実行させるコンピュータ・プログラム・コードを含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・ストレージ・システムの分野に関し、具体的には、ＦｌａｓｈＣｏｐｙ（商標）機能又はその等価物を提供する拡張機能ストレージ・システムに関する。（ＦｌａｓｈＣｏｐｙは、インターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である。）
【背景技術】
【０００２】
コンピュータのストレージ・システムの分野においては、「拡張機能」と述べられるようになったものに対して、ますます要求が増加している。このような機能は、通常のストレージ・コントローラ・システムの単純なＩ／Ｏ機能を超えるものである。拡張機能は、当該技術分野においては周知のものであり、システムに格納される実データ又は「ユーザ」データについての状態データを保持するのに用いられるメタデータの制御に依存する。拡張機能を用いて利用可能な操作は、種々のアクションを迅速にデータの仮想イメージに適用し、実データはユーザ・アプリケーションにより用いるために利用可能にしておくことを可能にする。１つのこのような周知の拡張機能はＦｌａｓｈＣｏｐｙである。
【０００３】
最も広い概念では、ＦｌａｓｈＣｏｐｙは、「何らかのデータ」の第２のイメージが利用可能にされる機能である。この機能は、他のシステム状況では、時には、ポイント・イン・タイム・コピー又はＴ０コピーとして知られている。第２のイメージの内容は、最初は、第１のイメージの内容と同一である。第２のイメージは、「即時に」利用可能にされる。実際問題としては、このことは、第２のイメージは、真の、別個の物理的コピーを作成するのに要求されるよりはるかに少ない時間で利用可能にされ、しかも、このことは、使用アプリケーションの動作に対して受容不能な中断なしで確立できることを意味する。確立されると、第２のコピーは、バックアップの実行、システムの試行、及び、データ・マイニングを含む多数の目的のために用いることができる。第１のコピーは、オリジナルの使用アプリケーションによって、その元の目的のために用いられ続ける。
【０００４】
ＦｌａｓｈＣｏｐｙの実施は、第２のイメージ（以下、ターゲットという）にアドレス指定されたＩ／Ｏ読み取りを、その領域が書き込みの対象にされていなければ、元のイメージ（以下、ソースという）にリダイレクトすることにより、第２のイメージの存在の錯覚を生じさせる。領域が（ソース又はターゲットへの）書き込みの対象にされている場合には、ソース及びターゲットの両方がデータのコピーを所有するという錯覚を維持するために、書き込みコマンドの動作を中断するプロセスが起動され、中断が有効な間に、ソースからの影響された領域の読み取りを行い、読み取りデータを書き込みによってターゲットに適用し、次いで、（すべての段階が成功した場合にのみ）中断された書き込みを解放する。同じ領域への後続の書き込みは、ターゲットが既にデータのコピーを有しているため、中断する必要はない。このコピー・オン・ライト技術は周知のものであり、多くの環境で用いられている。ＦｌａｓｈＣｏｐｙのすべての実装は、上述の決定、すなわち、ターゲットで受信された読み取りがソースに発行されるか、又は、ターゲットに発行されるかに関する決定、及び、コピー・オン・ライトが行われるようにするために書き込みが中断されなければならないかどうかに関する決定を管理するデータ構造に依存する。データ構造は、本質的には、ソースからターゲットにコピーされたデータの領域又はグレーンを、そのようにコピーされていないものから区別して追跡する。最も単純な形態においては、このデータ構造は、ビットマップ形態で維持されて、どのグレーンが書き込まれたか、及び、どれが書き込みの影響を受けていないかを示す。
【０００５】
幾つかのストレージ・コントローラは、ユーザが所与のソースに対して複数のターゲットを構成することを可能にする。これには、多数のアプリケーションがある。例えば、異なる試みをターゲットの各々に対して実行することができる。あるいは、ターゲットを異なる時点（例えば、週の異なる日）で取り上げて、例えば、ウィルスによって引き起こされるような何らかのデータ破壊から回復する目的のために、ディスクへの履歴アクセスを可能にすることができる。複数のターゲットをもつＦｌａｓｈＣｏｐｙのための現在行われている実装手法は、Ａがソース・ロジカル・ユニットであり、Ｂ及びＣが過去の或る時点で取り出された２つのターゲットを示す場合に、図１に示すようにディスクを構成することにより、ＦｌａｓｈＣｏｐｙアルゴリズムを拡張する。Ａ、Ｂ、及びＣの各々は更新することができる。矢印は、依然としてソース・ロジカル・ユニットに直接依存するグレーン（ディスクの一定サイズの領域）を示す。これらは、各々のＦｌａｓｈＣｏｐｙの進行を追跡するビットマップにおいて対応する「０ｂ」のビットを有する。この通常のアルゴリズムは、複数のターゲットを単に並列に配置して、元のＦｌａｓｈＣｏｐｙアルゴリズムを各々のマッピングで動作させるものである。このことは、ソース内のグレーンへの書き込みが、複数のグレーン（各関係ごとに１つ）の分割を生じさせることがあるという欠点がある。上述の例における最後のグレーンは１つである。このことは、余分な処理及び待ち時間の原因になり、複数ＦｌａｓｈＣｏｐｙ構成の拡張容易性を制限し、したがって、その利用可能性を制限することになる。
【０００６】
ＦｌａｓｈＣｏｐｙマッピングをカスケード（階層）に組み立て、次いで、該カスケードにおけるターゲット・ディスクの数に関係なく、いかなるホストＩ／Ｏに必要な書き込みの数も２に限られることを確実にするように機能する構成を提供することができる。しかし、このような構成は、一組のカスケード関係が、カスケードのどこかでのディスク障害（又は他のディスク・オフライン条件）により壊れる状況は許容しない。したがって、カスケード化ＦｌａｓｈＣｏｐｙターゲットが通常の方式より劣っているという１つの点は、カスケード化ターゲット上のデータが、通常の方式におけるようなソースにだけでなく、その上位のすべてのディスクに依存していることである。ソース・ディスクがアクセス不能になった場合（ディスクが故障するか、他の原因でオフラインになった場合）には、ターゲット・ディスクもアクセス不能になると予想される。しかし、ターゲット・ディスクがアクセス不能になった場合（ディスクが故障するか、他の原因でオフラインになった場合）に、カスケード内の他のディスクのすべてがアクセス不能になることは、作成されているコピーについてのユーザの視点に反するものとなるので、妥当ではない。
【０００７】
上述の方式に対するさらに別の改良は、ルール・ベースの論理を適用して、次のようなシステムを提供することができる制御コンポーネント（ハードウェア、ソフトウェア、又は、それらの組み合わせにより実装することができる）を有するストレージ・コントローラを提供する。すなわち、このシステムでは、カスケードを複数のシーケンスに分割することができ、またソースからのオリジナル・データが優先的にカスケードされて、該オリジナル・データのコピーを各シーケンスの少なくとも１つのメンバーに確実に保存することを試みる。
【０００８】
この技術の改良を用いることにより、データがカスケードのソース・ディスクから除去されれば、ほとんどの場合に、該データは多数の下流ディスク上に維持される。データのコピー数（Ｎ）は、Ｎ＝２から（カスケードにおけるディスク数−１）までに及ぶ範囲内で選ぶことができる。このようにして、カスケード内のＮ−１までのディスク（異なって処理される、カスケードのソースを除く）がアクセス不能になった場合には、該カスケード内のすべてのディスクについてのデータを、他のディスクから抽出することができる。１つのディスクがアクセス不能になった場合には、回復手順が起動されて、データの複数のコピーが、カスケード内の残りのディスク上に保持されることを確実にする。したがって、多数の障害が急激に連続して生じるのでなければ、カスケードは、依然としてディスク障害に対処することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
この場合、たとえ短時間であっても、ディスクがアクセス不能になった場合には、これをカスケードから除去しなくてはならないという問題が生じる。ディスクは、アクセス不能になった時点では完全であったかもしれない。しかし、チェーン内の他のディスクへの書き込みが、いかなる所与のグレーンについてのオリジナル・データもチェーンの下方に移動させ、かつ、オフラインのディスク上に保持されたデータが、カスケードの残りから見れば冗長であるものとなってしまっているために、チェーンの残りが移動しているかもしれない。
【課題を解決するための手段】
【００１０】
したがって、本発明は、第１の態様においては、ホスト・コンピュータ装置及び複数の被制御ストレージ装置と協働可能なストレージ・コントローラを提供し、このストレージ・コントローラは、データ・オブジェクトを複数の被制御ストレージ装置の１つにおけるソース・データ・イメージに書き込むように動作可能なホスト書き込みコンポーネントと、メタデータ状態に応答し、複数の被制御ストレージ装置におけるカスケード内のデータ・イメージの区切りシーケンスにおけるターゲット・データ・イメージへのデータ・オブジェクトのコピーを制御するように動作可能なコピー・コンポーネントと、ターゲット・データ・イメージを含むディスクのオフライン条件の検出に応答し、ターゲット・データ・イメージを含むディスクに代えて補填ディスクによる置換を制御するように動作可能な補填コンポーネントとを含む。
【００１１】
ストレージ・コントローラはストレージ・ネットワークに組み込まれることが好ましい。
【００１２】
ストレージ・ネットワークはストレージ・エリア・ネットワークであることが好ましい。
【００１３】
第１及び第２のコピー・コンポーネントの少なくとも一方は、通信ネットワークの異なるノードに配置されることが好ましい。
【００１４】
第１及び第２のコピー・コンポーネント、並びにさらに別のコピー・コンポーネントの少なくとも１つは、通信ネットワークの異なるノードに配置されることが好ましい。
【００１５】
第２の態様においては、本発明は、ホスト・コンピュータ装置及び複数の被制御ストレージ装置と協働可能なストレージ・コントローラの動作方法を提供し、この方法は、ホスト書き込みコンポーネントにより、データ・オブジェクトを複数の被制御ストレージ装置の１つにおけるソース・データ・イメージに書き込むステップと、メタデータ状態に応答し、コピー・コンポーネントにより、複数の被制御ストレージ装置におけるカスケード内のデータ・イメージの区切りシーケンスにおけるターゲット・データ・イメージへのデータ・オブジェクトのコピーを制御するステップと、ターゲット・データ・イメージを含むディスクのオフライン条件の検出に応答し、補填コンポーネントにより、ターゲット・データ・イメージを含むディスクに代えて、補填ディスクによる置換を制御するステップとを含む。
【００１６】
ストレージ・コントローラはストレージ・ネットワークに含まれることが好ましい。
【００１７】
ストレージ・ネットワークはストレージ・エリア・ネットワークであることが好ましい。
【００１８】
第１及び第２のコピー・コンポーネントの少なくとも一方は、通信ネットワークの異なるノードに配置されることが好ましい。
【００１９】
第１及び第２のコピー・コンポーネント、並びにさらに別のコピー・コンポーネントの少なくとも１つは、通信ネットワークの異なるノードに配置されることが好ましい。
【００２０】
第３の態様においては、本発明は、コンピュータにロードされ、実行されたとき、該コンピュータに、第２の態様に記載された方法のステップを実行させるコンピュータ・プログラム・コードを含むコンピュータ・プログラムを提供する。
【００２１】
本発明の好ましい実施形態は、補填ディスクを提供する。これは、カスケード内の他のディスクと同じ大きさのディスクであることが好ましい。カスケード内のディスクがアクセス不能になった場合、それに保持されるデータのマップは、依然として利用可能である。したがって、補填ディスクを用いることにより、ディスクがオンラインであった場合にカスケード内のディスクに生じたであろう変更の記録を、保持することができる。オフラインのディスクが新規な顧客データを含まない場合には、補填ディスクが、最終的に、それに取って代わることができる。このことは、補填ディスク上でバックグラウンド・コピーを稼動させることにより達成され、これにより、オフラインのディスク上に保持されるすべてのオリジナル・データが、カスケード内の他のコピーから取得される。補填ディスクが最新のものにされる前に、オフラインのディスクが再びアクセス可能になった場合には、補填ディスクと関連付けられたビットマップを用いて、オフラインのディスクを最新のものにすることができる。一実施形態においては、この活動中におけるオフラインのディスクへのクライアント書き込みは補填ディスクにリダイレクトされ、代替的手法においては、これらは、クライアントにフェイルバックされる。
【００２２】
したがって、好ましい実施形態においては、ディスクへのアクセス及びカスケード内のディスクの位置は、ＦｌａｓｈＣｏｐｙが取られ、オフラインのディスクをオンラインに戻せなくなった後に、クライアント・データがオフラインのディスクに書き込まれた場合においてのみ失われる。
【発明を実施するための最良の形態】
【００２３】
次に、添付図面を参照しながら、本発明の好ましい実施形態について説明するが、実施形態は単なる例であって、本発明を限定するものではない。
図１は、複数の並列ターゲットを有する従来技術のデータ構成を示す。代替として、ホストＩ／Ｏ活動は限られるが、データのカスケード化コピーが、ホストの介入を必要とすることなく、将来のターゲットに伝播されるシステム、方法、又は、コンピュータ・プログラムを提供することができる。
【００２４】
ここで図２を参照すると、ＦｌａｓｈＣｏｐｙカスケードを実装することができるストレージ・コントローラの単純化された概略図が示されている。
【００２５】
図２は、ホスト・コンピュータ装置１０２及び複数の被制御ストレージ装置１０４、１０６、１０４０、１０６０と協働可能なストレージ・コントローラ１００を示し、これは、データ・オブジェクト１１０を複数の被制御ストレージ装置１０４、１０６、１０４０、１０６０の１つにおけるソース・データ・イメージ１１２に書き込むように動作可能なホスト書き込みコンポーネント１０８と、第１のメタデータ状態に応答し、データ・オブジェクト１１０を、複数の被制御ストレージ装置１０４、１０６、１０４０、１０６０の１つにおける第１のターゲット・データ・イメージ１１６にコピーするのを制御するように動作可能な第１のコピー・コンポーネント１１４と、第２のメタデータ状態に応答し、データ・オブジェクト１１０を、複数の被制御ストレージ装置１０４、１０６、１０４０、１０６０の１つにおける第２のターゲット・データ・イメージ１２０にコピーするのを制御すること、及び第１のコピー・コンポーネント１１４に、第２のターゲット・データ・イメージ１２０を第１のターゲット・データ・イメージ１１６にコピーさせること、の１つを実行するように動作可能な第２のコピー・コンポーネント１１８とを含む。
【００２６】
コピーの制御及びコピーの実行は、ホスト・コンピュータ装置１０２及びホスト書き込みコンポーネント１０８とは独立しており、第３のコピー・コンポーネント１２２は、ホスト・コンピュータ装置１０２、ホスト書き込みコンポーネント１０８、並びに第１及び第２のコピー・コンポーネント１１４、１１８とは独立して、複数の被制御ストレージ装置１０４、１０６、１０４０、１０６０の１つにおける第３のターゲット・データ・イメージ１２４へのデータ・オブジェクト１１０のカスケード化コピーを制御するように動作可能である。
【００２７】
第２及び第３のコピー・コンポーネント１１８、１２２の一方は、第２及び第３のターゲット・データ・イメージ１２０、１２４の一方における、データのグレーンの現行性を示す第３のメタデータ状態に応答して、データ・イメージの区切りシーケンスのカスケード化コピーを制御するように動作可能である。
【００２８】
このように、ストレージ・コントローラのコピー・コンポーネント（１１４、１１８、１２２）は、メタデータ状態に応じて、被制御ストレージ装置１０６、１０４０、１０６０において、データ・オブジェクトをカスケード内のデータ・イメージの区切られたシーケンスにおけるターゲット・データ・イメージにコピーするのを制御するように動作可能である。ストレージ・コントローラのコピー・コンポーネント（１１４、１１８、１２２）は、補填コンポーネント１２６と通信し、これは、ターゲット・データ・イメージを含むディスクのオフライン条件の検出に応答し、このターゲット・データ・イメージを含むディスクに代えて補填ディスクによる置換を制御するように動作可能である。
【００２９】
図３には、ホスト・コンピュータ装置及び複数の被制御ストレージ装置と協働可能なストレージ・コントローラを動作させるための方法を例示したフロー図を示す。
【００３０】
ステップ２０２では、ホスト書き込みコンポーネントが、データ・オブジェクトを複数の被制御ストレージ装置の１つにおけるソース・データ・イメージに書き込む。ステップ２０４では、第１のコピー・コンポーネントがメタデータ状態をテストし、それに応答して、ステップ２０６で、複数の被制御ストレージ装置の１つにおいて、データ・オブジェクトを第１のターゲット・データ・イメージにコピーする。ステップ２０８では、第２のコピー・コンポーネントが第２のメタデータ状態をテストし、それに応答して、ステップ２１０において、データ・オブジェクトを複数の被制御ストレージ装置の１つにおける第２のターゲット・データ・イメージにコピーするステップを実行するか、又は、ステップ２１２において、第１のコピー・コンポーネントに、第２のターゲット・データ・イメージを第１のターゲット・データ・イメージにコピーさせる。
【００３１】
図３のフロー図に示す本発明の例示的な実施形態においては、メタデータ状態に応答するコピー・コンポーネントにより、複数の被制御ストレージ装置のカスケード内のデータ・イメージの区切りシーケンスにおけるターゲット・データ・イメージにデータ・オブジェクトをコピーするのを制御するステップに対しては、介入テスト及び設定ステップ２０８２、２０８４が行われる。
【００３２】
ステップ２０８２において、ターゲット・データ・イメージを含むディスクのオフライン条件が検出された場合には、補填コンポーネントが、ステップ２０８４において、ターゲット・データ・イメージを含むディスクに代えて、補填ディスクが置き換わるようにする。このような条件が２０８２において検出されなかった場合には、ターゲットＩＤは、ステップ２０８４において、ここでの説明の範囲を越えるものである実装上の要因に応じて、元の値に設定されるか、又は、元の値のまま残されることになる。
【００３３】
テスト及びコピーを実行するステップは、ホスト・コンピュータ装置及びホスト書き込みコンポーネントとは独立している。ステップ２１４において、第３のコピー・コンポーネントが、ホスト・コンピュータ装置、ホスト書き込みコンポーネント、並びに、第１及び第２のコピー・コンポーネントとは独立して、データ・オブジェクトを複数の被制御ストレージ装置の１つにおける第３のターゲット・データ・イメージにコピーするのを管理し、第２又は第３のコピー・コンポーネントの一方は、第２及び第３のターゲット・データ・イメージの一方におけるデータのグレーンの現行性を示す、ステップ２１６での第３のメタデータ状態のテストに応答して、ステップ２１８において、データ・イメージの区切りシーケンスのカスケード化コピーを制御するように動作可能である。
【００３４】
図４には、カスケード内におけるディスクＳＲＣ（ソース）、Ａ、及びＴＧＴ（ターゲット）の例示的なシーケンスが示されており、ここでは、Ａ及びＴＧＴがＳＲＣからのデータの、カスケード内における下流コピーを含む。図５は、例示的なディスクＡの障害に応答して、ディスクＦがカスケードの中に置換された状態を示す。
【００３５】
以下では、この構造及び技術のさらなる詳細を述べ、これを用いることにより、オリジナル・データの必要とされるコピーをカスケード内に維持し、上述のように、ディスク障害においてもカスケードの継続した使用を可能にすることができる。
【００３６】
これらの構造及び技術を述べる前に、「グレーン・シーケンス」の概念を説明する必要がある。グレーン・シーケンスは、特定の時点において同じオリジナル・データと関連付けられた連続ディスク上のグレーンのシーケンスである。
【００３７】
シーケンスを有するカスケードの動作の説明は、任意の時点においてカスケード内のディスク上に存在することができるデータのタイプを考慮することを必要とする。関心のあるデータのタイプは４種類ある。
１）ブランク・データ（ＢＤ）：ＦｌａｓｈＣｏｐｙを開始する前にターゲット・ディスク上に存在していたデータ。
２）オリジナル・データ（ＯＤ）：ＦｌａｓｈＣｏｐｙを開始した時にソース・ディスク上に存在していたデータ。
３）新規データ（ＮＤ）：ＦｌａｓｈＣｏｐｙを開始した後で、カスケード内のディスクに書き込まれたデータ。
４）区切りデータ（ＤＤ）：最も上流側におけるオリジナル・データの出現。
【００３８】
データを４つのタイプに分類できるという事実は、各々のグレーンを２ビットで表わすことができることを意味する。したがって、カスケード内の各々の仮想ディスクには、２つのビットマップだけが必要である。実際に、ソース・ディスクにおいては、ＤＤ又はＮＤのデータしかあり得えず、ソース・ディスクの状態は、ターゲット・ディスクから推論できるため、必要なビットマップは１つだけでよいか、又は、ビットマップはまったく必要ない。
【００３９】
カスケード化ＦｌａｓｈＣｏｐｙに対する付加的なルールは以下の通りである。
Ａ１）ディスクの新規なシーケンスがカスケードにおいて開始される場合には、ソース上のすべてのグレーンはＤＤに設定される。
Ａ２）ディスク上のＯＤのグレーンに書き込みが行われる場合には、該グレーン上に保持されるデータが上流側又は下流側のＮ個のディスクに書き込まれるが、これらＮ個のディスクの対応するグレーンがＢＤであり、且つタイプＤＤのグレーンを持つディスクを横切ることを必要としないことが条件である。
Ａ３）ディスク上のＤＤのグレーンに書き込みが行われる場合には、該グレーン上に保持されるデータが下流側のＮ個のディスクに書き込まれるが、これらＮ個のディスクの対応するグレーンがＢＤであり、次の下流側ディスクもＢＤであって、タイプＤＤのグレーンを持つディスクを横切ることを必要としないことが条件である。次いで、ＯＤを含み、書き込み先のディスクを横切らない最も上流側のディスクがＤＤとして再分類される。
【００４０】
ディスクがアクセス不能になった場合には、カスケードが次の障害に対して保護される前に、以下の回復処置を実行しなければならない。
Ｂ１）各々のグレーンについて、ＤＤであるディスクの間でのＤＤ及びＯＤの出現数をカウントする。この数が必要とされる最少数より少ない場合には、上の（Ａ２）及び（Ａ３）で述べられた適当な数の書き込みを実行する。これは、カスケードにおいてＤＤ又はＯＤの少なくとも１つの他のコピーがあるため、実行可能である。
Ｂ２）アクセス不能ディスク上の各々のグレーンについて、データがＤＤであった場合には、ＯＤである次の下流側ディスクを見出して、そのディスク上のグレーンをＤＤに設定する。
【００４１】
このカスケード技術の改良においては、ターゲット書き込みについてのルールは、以下のように単純化することができる。
Ｄ１）グレーン上に保持されるデータがタイプＢＤであり、グレーン全体に書き込む場合には、単純に、新規なデータを書き込んで、グレーンをＮＤとしてマークする。
Ｄ２）グレーン上に保持されるデータがタイプＢＤであり、グレーンの一部に書き込む場合には、最も近いコピーからオリジナル・データを読み取り、新規なデータと組み合わせて、組み合わせたデータを書き込み、次いで、グレーンをＮＤとしてマークする。
【００４２】
この方式は、カスケードを制御するために、制御ビットマップ及び状態操作の様々な組み合わせを用いて動作できることが、当業者には明らかであろう。
【００４３】
ここで本発明の好ましい実施形態を参照すると、付加的な「補填」ディスクがディスク構成に追加されている。このディスクは、それが正規のターゲット・ディスクであるかのように該ディスクに関連付けられた正規のビットマップを持っている。これらのビットマップはＢＤに初期設定される。
【００４４】
カスケード内のディスクは、付加的な状態、すなわち、アクセス可能であるか又はアクセス不能であるかを定義されている。ディスクが、カスケードにおける別のディスクから取り出すことができないデータを含む場合には、アクセス不能として分類される。したがって、カスケードの通常の動作においては、ターゲット・ディスクへのクライント書き込みについて、以下のルールが導入される。
１）すべてのターゲット・ディスクはアクセス可能なものとして開始する。
２）クライアント・データが、アクセス可能なターゲット・ディスクに書き込まれた場合には、このディスクはアクセス不能として再分類される。
３）カスケード内のディスクへのクライアント書き込みにより、カスケード内にオリジナル・データのコピーが１つしか残らないようになった場合には、オリジナル・データを保持するディスクはアクセス不能として再分類される。
【００４５】
ここで、例えば図５に示すように、カスケード内のターゲット・ディスクＡが故障し、補填ディスク、すなわちディスクＦがある場合には、以下の処置を取る。
Ａ１）Ａの障害が検出されるとすぐ、さらに別のルールが、他のディスクへのクライアント書き込みによりもたらされた、Ａへの後続の書き込みに課される。このルールは、グレーンの状態を決定するために、どのビットマップを用いるかを管理する。このルールは、図６の疑似コードにより表わすことができる。
【００４６】
Ａ２）図７のルールが、Ａへの後続のクライアント書き込みに課される。
【００４７】
Ｆに対するリダイレクトされたクライアント書き込み動作は、図８の表に示すように、Ａ及びＦの両方のビットマップにより管理される。
【００４８】
図８において、各アクションの意味は次の通りである。
１）アクション１．１：必要であれば、カスケードからオリジナル・データを読み取り、クライアント・データと組み合わせる。組み合わせ／クライアント・データをＦに書き込む。ＦのビットマップをＮＤに設定する。
２）アクション１．２：クライアント・データをＦに書き込む。
３）アクション１．３：Ｆからグレーンを読み取る。通常の方法でオリジナル・データをカスケードに書き込む。クライアント・データをＦに書き込む。ＦのビットマップをＮＤに設定する。
【００４９】
Ａ３）Ａがアクセス可能である場合には、Ａについてのすべてのデータはカスケードに保持され、アクセス可能である。図９の表を用いて、すべてのデータをＡからＦに移動させるプロセスが開始される。
【００５０】
図９において、各アクションの意味は次の通りである。
１）アクション２．１：カスケード内の別のディスクからオリジナル・データを読み取り、Ｆに書き込み、ＦのビットマップをＯＤに設定する。
２）アクション２．２：カスケード内の別のディスクからオリジナル・データを読み取り、Ｆに書き込み、ＦのビットマップをＤＤに設定する。
Ａ４）上のＡ３で述べられたプロセスが終了した場合には、ディスクＦは、Ａから永久的に引き継ぎ、ユーザには通知がなされる。
【００５１】
Ａがオンラインに戻った場合には、以下の事象が行われる。
Ｂ１）以下のルールがＡへの書き込みに課される。このルールは、グレーンの状態を決定するためにどのビットマップを用いるかを管理する。このルールは、図１０の疑似コードにより表わすことができる。
【００５２】
Ｂ２）Ｆ上のすべてのデータはアクセス可能である。図１１の表を用いて、すべてのデータをＦからＡに移動させるプロセスが開始される。
【００５３】
図１１において、各アクションの意味は次の通りである。
アクション３．１：Ｆからグレーンを読み取り、Ａに書き込み、Ｆ上のグレーンをＢＤに設定し、Ａ上のグレーンをＮＤに設定する。
アクション３．２：Ｆからグレーンを読み取り、Ａに書き込み、Ｆ上のグレーンをＢＤに設定し、Ａ上のグレーンをＯＤに設定する。
アクション３．３：Ｆからグレーンを読み取り、Ａに書き込み、Ｆ上のグレーンをＢＤに設定し、Ａ上のグレーンをＤＤに設定する。
アクション３．４：Ｆ上のグレーンをＢＤに設定し、Ａ上のグレーンをＤＤに設定する。
【００５４】
Ｂ３）Ｂ２に述べられたプロセスが終了した場合には、ディスクＦは、そのすべてのビットマップを消去され、さらに別の可能な障害についての準備がなされる。
【００５５】
当業者であれば、本発明の好ましい実施形態は、装置のネットワークで動作するように構成されたストレージ・コントローラにおいて実施することができ、例えば、ストレージ・エリア・ネットワーク・コントローラを含むことができることを容易に理解するであろう。
【００５６】
当業者であれば、本発明の方法は、方法のステップを実行するための論理手段を含む論理装置において好適に実施することができ、こうした論理手段は、ハードウェア・コンポーネント又はファームウェア・コンポーネントを含むことができることが明らかであろう。
【００５７】
同様に、当業者であれば、本発明の論理構成は、方法のステップを実行するための論理手段を含む論理装置において好適に実施することができ、こうした論理手段は、例えば、プログラム可能な論理アレイにおける論理ゲートのようなコンポーネントを含むことができることが明らかであろう。このような論理構成は、さらに、例えば、固定の又は伝送可能なキャリア媒体を用いて格納することができる仮想ハードウェア記述子言語を用いて、一時的に又は永久的に、論理構造をこのようなアレイに確立するための使用可能化手段において実施することができる。
【００５８】
上述の方法は、さらに、１つ又はそれ以上のプロセッサ（図示せず）上で稼動するソフトウェアにおいて完全に又は部分的に、好適に実行することができ、このソフトウェアは、磁気又は光学コンピュータ・ディスクといった、あらゆる好適なデータ・キャリア（同様に図示せず）上に支持されるコンピュータ・プログラム要素として提供することができることを理解するであろう。同様に、データ伝送のためのチャネルは、あらゆる種類の格納媒体、及び、有線又は無線信号媒体のような信号搬送媒体を含むことができる。
【００５９】
本発明は、コンピュータ・システムと併せて用いるためのコンピュータ・プログラムとして好適に実施することができる。この実施は、例えば、フレキシブル・ディスク、ＣＤ−ＲＯＭ、ＲＯＭ、又はハードディスクのようなコンピュータ可読媒体といった有形媒体上に固定されているか、又は、モデム若しくは他のインターフェース・デバイスにより、以下に限られるものではないが、光学若しくはアナログ通信回線を含む有形媒体上で、又は、以下に限られるものではないが、マイクロ波、赤外線若しくは他の伝送技術を含む無線技術を用いて、コンピュータ・システムに伝送可能な、一連のコンピュータ可読命令を含むことができる。一連のコンピュータ可読命令は、上述した機能のすべて又は一部を具体化する。
【００６０】
当業者であれば、このようなコンピュータ可読命令は、多くのコンピュータ・アーキテクチャ又はオペレーティング・システムと併せて用いるための多数のプログラミング言語により書くことができることを理解するであろう。さらに、このような命令は、以下に限られるものではないが、半導体、磁気、又は光学を含む現在又は将来のあらゆるメモリ技術を用いて格納することができ、また、以下に限られるものではないが、光学、赤外線、又はマイクロ波を含む現在又は将来のあらゆる通信技術を用いて伝送することができる。このようなコンピュータ・プログラムは、ソフトウェア・パッケージのように、印刷文書又は電子文書が付属する取り外し可能媒体として配布したり、コンピュータ・システムの、例えばシステムＲＯＭ又は固定ディスクにプレインストールしたり、インターネット又はワールド・ワイド・ウェブのようなネットワーク上のサーバ又は電子掲示板から配布したりすることができる。
【００６１】
さらに、本発明の実施形態は、アウトソーシング・サービスを提供するために、顧客のために配備されるサービスの形態で提供できることが分かるであろう。
【００６２】
上述の好ましい実施形態に対する種々のさらなる修正は、当業者には明らかであることが理解されるであろう。
【図面の簡単な説明】
【００６３】
【図１】複数の並列ターゲットを有する従来技術のデータ構成を示す。
【図２】カスケード構成を組み込むことができるストレージ・コントローラ構造を示す概略図である。
【図３】ＦｌａｓｈＣｏｐｙカスケードを制御するためのストレージ・コントローラの動作方法を示すフローチャートである。
【図４】本発明の好ましい実施形態による例示的なディスク構成の関係を単純化された形態で示す。
【図５】本発明の好ましい実施形態による例示的なディスク構成の関係においてあるディスクが故障した場合の例を単純化された形態で示す。
【図６】図５の例において、グレーンの状態を決定するために、どのビットマップを用いるかを管理するルールの擬似コードを示す。
【図７】ディスクＡへの後続のクライアント書き込みに課されるルールの擬似コードを示す。
【図８】ディスクＦにリダイレクトされたクライアント書き込み動作を示す表。
【図９】すべてのデータをディスクＡからディスクＦに移動させる動作を示す表。
【図１０】ディスクＡがオンラインに戻った場合にディスクＡへの書き込みに課されるルールの擬似コードを示す。
【図１１】すべてのデータをディスクＦからディスクＡに移動させる動作を示す表。
【符号の説明】
【００６４】
１００：ストレージ・コントローラ
１０２：ホスト・コンピュータ装置
１０８：ホスト書き込みコンポーネント
１０４、１０６、１０４０、１０６０：被制御ストレージ装置
１１０：データ・オブジェクト
１１２：ソース・データ・イメージ
１１４、１１８、１２２：コピー・コンポーネント
１１６，１２０、１２４：ターゲット・データ・イメージ
１２６：補填コンポーネント
【図１】
2006244501.tif 000003
【図２】
2006244501.tif 000004
【図３】
2006244501.tif 000005
【図４】
2006244501.tif 000006
【図５】
2006244501.tif 000007
【図６】
2006244501.tif 000008
【図７】
2006244501.tif 000009
【図８】
2006244501.tif 000010
【図９】
2006244501.tif 000011
【図１０】
2006244501.tif 000012
【図１１】
2006244501.tif 000013