(57)【要約】【課題】短期不揮発性メモリに格納されたデータを長期不揮発性記憶媒体にコピーするのに必要な時間を短縮させる。【解決手段】冗長データ記憶システムのデータをバックアップするためのシステムおよび方法が提供される。一実施形態では、一次コントローラが、第１の開始アドレスから開始する一次アドレス指定シーケンスを用いて、一次記憶ユニットから一次バックアップ記憶ユニットに第１のデータブロックをコピーするよう構成され、二次コントローラが、第１の開始アドレスから開始する二次アドレス指定シーケンスを用いて、二次記憶ユニットから二次バックアック記憶ユニットに第２のデータブロックを、一次コントローラによるコピー動作とほぼ同時にコピーするよう構成される。【選択図】図６
2004021989.tif 000002
【特許請求の範囲】
【請求項１】
第１の開始アドレスから始まる一次アドレス指定シーケンスを用いて、第１のデータ・ブロックを、一次記憶ユニットから一次バックアップ記憶ユニットにコピーするステップと、
第２の開始アドレスから始まる二次アドレス指定シーケンスを用いて、第２のデータ・ブロックを、二次記憶ユニットから二次バックアップ記憶ユニットにコピーするステップと、
を含む、データをバックアップする方法。
【請求項２】
前記第２のデータ・ブロックをコピーするステップとほぼ同時に、前記第１のデータ・ブロックをコピーするステップをさらに含む、請求項１に記載の方法。
【請求項３】
前記一次アドレス指定シーケンスを第１の終了アドレスで終わらせるステップと、前記二次アドレス指定シーケンスを第２の終了アドレスで終わらせるステップをさらに含む、請求項２に記載の方法。
【請求項４】
前記第２の終了アドレスを、前記第１の開始アドレスと同じになるようにセットするステップと、
前記一次アドレス指定シーケンスを増分カウントとしてセットするステップと、
前記二次アドレス指定シーケンスを減分カウントとしてセットするステップと、
をさらに含む、請求項３に記載の方法。
【請求項５】
第１の開始アドレスから始まる一次アドレス指定シーケンスを用いて、第１のデータ・ブロックを、一次記憶ユニットから一次バックアップ記憶ユニットにコピーするように構成された一次コントローラ（１３０）と、
第２の開始アドレスから始まる二次アドレス指定シーケンスを用いて、第２のデータ・ブロックを、二次記憶ユニットから二次バックアップ記憶ユニットにコピーするように構成された二次コントローラ（１４５）と、
を備える、データをバックアップするシステム。
【請求項６】
前記一次アドレス指定シーケンスを生成するように構成された一次カウンタと、前記二次アドレス指定シーケンスを生成するように構成された二次カウンタをさらに備える、請求項５に記載のシステム。
【請求項７】
前記一次カウンタは、さらに、現在の一次アドレスを数値的に増分するように構成され、前記二次カウンタは、さらに、二次アドレスを数値的に減分するように構成される、請求項６に記載のシステム。
【請求項８】
コンピュータ読取り可能な媒体（３３５）上に格納されたデータ・バックアップ・マネージャ（５００）であって、
第１の開始アドレスから始まる一次アドレス指定シーケンスを用いて、第１のデータ・ブロックを、一次記憶ユニットから一次バックアップ記憶ユニットにコピーするように構成されたロジックと、
第２の開始アドレスから始まる二次アドレス指定シーケンスを用いて、第２のデータ・ブロックを、二次記憶ユニットから二次バックアップ記憶ユニットにコピーするように構成されたロジックと、
を備えるマネージャ。
【請求項９】
前記第２のデータ・ブロックを、前記第１のデータ・ブロックのコピーとして生成するように構成されたロジックをさらに備える、請求項８に記載のマネージャ。
【請求項１０】
前記一次アドレス指定シーケンスを第１の終了アドレスで終わらせ、前記二次アドレス指定シーケンスを第２の終了アドレスで終わらせるように構成されたロジックをさらに備える、請求項９に記載のマネージャ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般に、冗長データ記憶システムの分野に関し、より具体的には、ディスク記憶サブシステムにおいて、データの損失を防止することに関する。
【０００２】
【従来の技術】
性能、容量、費用節約、および信頼性が単一の大型ドライブのものよりも優れているコストパフォーマンスの高いシステムを得るために、外部メモリ記憶システムは、複数の安価なディスクドライブを組み合わせて一体型のアレイにすることが多い。このようなドライブのアレイは、ホストコンピュータには単一の論理ドライブに見える。このアレイが、冗長でないやり方で動作するように構成されている場合には、平均故障間隔（ＭＴＢＦ；ｍｅａｎｔ　ｔｉｍｅ　ｂｅｔｗｅｅｎ　ｆａｉｌｕｒｅｓ）が比較的低い。なぜなら、これは、アレイ内のドライブ数で割った個々のドライブのＭＴＢＦに等しいからである。ＭＴＢＦを向上させるために、ドライブのアレイをＲＡＩＤ（ｒｅｄｕｎｄａｎｔ　ａｒｒａｙ　ｏｆ　ｉｎｅｘｐｅｎｓｉｖｅ　ｄｉｓｋｓ）として構成することができる。ＲＡＩＤアレイは、ハードウェアの故障によって生じるデータ損失を防止する冗長アーキテクチャを用いることにより、耐故障性（フォルト・トレランス；ｆａｕｌｔ　ｔｏｌｅｒａｎｃｅ）を実現している。
【０００３】
ＲＡＩＤシステムにおけるディスク・コントローラは、ＲＡＩＤコントローラと呼ばれる。ＲＡＩＤコントローラは、異なる機能セットを提供するよう異なる「レベル」で定義されている。ＲＡＩＤシステム内のユーザ・データは、「データマップ」を利用してデータ移動を追跡することができるデータ記憶管理システムによって、異なるＲＡＩＤレベル間を動かされる。このデータマップは定期的に更新され、該データマップを保存することは、システム動作の保全性のために重要である。このデータマップが失われた場合、ユーザ・データへのアクセスも失われる。いくつかのシステムでは、このデータマップを、不揮発性ＲＡＭ（ＮＶＲＡＭ）に格納している。このＮＶＲＡＭは、メインシステムの電源が故障した場合にはオンボード・バッテリから電力供給される短期メモリ記憶機構（ｓｈｏｒｔ−ｔｅｒｍ　ｍｅｍｏｒｙ　ｓｔｏｒａｇｅ　ｍｅｃｈａｎｉｓｍ）として機能する。
【０００４】
ＮＶＲＡＭはまた、他の重要なタスクを実行する。ＮＶＲＡＭが「ライト・キャッシュ（ｗｒｉｔｅ　ｃａｃｈｅ）」として動作して、データをＲＡＩＤメモリディスクに転送する前に該データを一時的に格納することにより、ホストコンピュータのデータアクセス待ち時間（ｄａｔａ　ａｃｃｅｓｓ　ｌａｔｅｎｃｙ）が短縮される。該データが、ホストコンピュータによってＮＶＲＡＭに書き込まれると、そのトランザクションが確認され、ホストコンピュータは次のオペレーションに移る。この時点において、ホストコンピュータに関する限り、該データは成功裡にハードディスクドライブに転送されている。したがって、しばらくの間、ＲＡＩＤメモリディスク記憶装置宛てのデータだけがＮＶＲＡＭに格納される。この時にメインシステムの電源が故障した場合には、オンボード・バッテリを用いてＮＶＲＡＭデータが失われないようにしつつ、データ・バックアップ・プロセスを起動してＮＶＲＡＭの内容を、一般に「ダンプ・ディスク（ｄｕｍｐ　ｄｉｓｋ）」と呼ばれる予め定められた形式の長期不揮発性記憶装置（ｌｏｎｇ−ｔｅｒｍ　ｎｏｎ−ｖｏｌａｔｉｌｅ　ｓｔｏｒａｇｅ）にコピーする。該データが、ダンプ・ディスク（例えば、磁気ディスク記憶装置でよい）にコピーされたならば、該格納されたデータは、たとえその後にダンプ・ディスクへの電力供給が切断されても保持される。
【０００５】
このダンプ・ディスクの読出し／書込み性能は、ＮＶＲＡＭのものよりもかなり低いので、このダンプ・ディスクは、一般に、データマップを格納するための「一次（ｐｒｉｍａｒｙ）」機構としては用いられない。
【０００６】
メインシステムの電源が故障したときには、ダンプ・ディスクは、少なくとも、ディスク・コントローラがデータマップとライト・キャッシュのデータをコピーすることができるほど十分長く電源を入れたままにされるのが望ましい。データマップとライト・キャッシュのデータは共に、以後この明細書において、ＮＶＲＡＭから１つまたは複数のダンプ・ディスクへの「有効（ｖａｌｉｄ）」データと呼ばれる。これを行う一つの方法は、メインシステム電源の故障状態下で、ＮＶＲＡＭデータを安全にコピーするまで、このダンプ・ディスクを動作させる能力を有する外部バッテリ・バックアップ・システムを（ＮＶＲＡＭのバッテリに加えて）用いることである。
【０００７】
このようなアーキテクチャの最大の課題の１つは、この外部バッテリ・バックアップ・システムに、バックアップを達成するのには充分な容量を持たせつつ、費用、複雑さなどを必要以上に増すほどには該外部バッテリ・バックアップ・システムを大きくしないようにすることである。
【０００８】
ディスク・アレイがさらに大きくなってシステム要件が増すと、それに対応して、さらに大きいＮＶＲＡＭサイズが要求される。メインシステムの電源の故障時に、ＮＶＲＡＭに格納されたデータを保存する期間は、バッテリ容量およびＮＶＲＡＭサイズに直接関係する。バッテリ技術の改良に限界があり、かつ、コスト要因や物理サイズの制約のためにバッテリ容量に制限が加えられる場合に、さらに大きいＮＶＲＡＭサイズを求め続けると、メインシステム電源の故障時に、ＮＶＲＡＭデータを保存することのできる期間が短縮されることになる。このことは、電源の故障後の、ＮＶＲＡＭからダンプ・ディスクへのデータ・バックアップ・プロセス中に重大な問題を発生させることになる。
【０００９】
高い可用性のＲＡＩＤシステムのような耐故障性システム（フォルト・トレラントシステム）をサポートするために、少なくとも２つの別々のＲＡＩＤコントローラを使用し、そのうちの一方を、「マスタ」コントローラとして動作するように指定する。この２つのＲＡＩＤコントローラのそれぞれは、適切な電源とともに、それ自体の対応するＮＶＲＡＭとダンプ・ディスクを持っている。この２つのコントローラ内のＮＶＲＡＭは、一般に、同一のデータを含む。システムの電源が故障した状態では、マスタ・コントローラは、そのＮＶＲＡＭに含まれている有効データを２つのダンプ・ディスクにコピーすることによって、データのバックアップを実行する。この有効データは、一般に、ＮＶＲＡＭから、２つのダンプ・ディスクのそれぞれに順次にコピーされる。例えば、ＮＶＲＡＭに６４キロバイトの有効データが含まれている場合には、コピー・シーケンスは、アドレス００００から開始して、アドレスＦＦＦＦ（１６進）で終了する。
【００１０】
さらに多量の有効ＮＶＲＡＭデータを含むシステムでは、この２つのダンプ・ディスクについて写しをとる必要のある上記コピー動作は、数分かかることがある。この時間の間、ダンプ・ディスクに電力を供給するバッテリシステムに重大な故障が起こるかもしれず、または、バッテリシステムの充電量が、ＮＶＲＡＭの全内容のダンプ・ディスクへのコピーに充分でないかもしれない。このようなことが起こって該コピー動作が達成されない場合には、ＮＶＲＡＭに残っているデータが、その後失われる場合がある。なぜならば、ＮＶＲＡＭバッテリがＮＶＲＡＭに電力を供給することができる限りにおいてのみ、このデータを保存することができるからである。ＮＶＲＡＭバッテリは、その容量、およびＮＶＲＡＭのサイズに応じて、数時間または数日しかもたないことがある。
【００１１】
【発明が解決しようとする課題】
したがって、メインシステムの電源の故障中に、ＮＶＲＡＭのような短期不揮発性メモリに格納されたデータを、磁気ダンプ・ディスクのような長期不揮発性記憶媒体にコピーするのに必要な時間を最小限に抑える解決策を提供することが望まれている。耐故障性が重要なファクターである冗長データ記憶システムでは、有効データを保護することが特に重要となる。
【００１２】
【課題を解決するための手段】
本発明は、冗長データ記憶システムにおいてデータをバックアップする方法、システム、および手段を提供する。この点に関し、このようなデータ記憶システムの１つでは、第１の開始アドレスから始まる一次アドレス指定シーケンスを用いて、データ・ブロックを、一次記憶ユニットから一次バックアップ記憶ユニットにコピーし、これとほぼ同時に、第２の開始アドレスから始まる二次アドレス指定シーケンスを用いて、第２のデータ・ブロックを、二次記憶ユニットから二次バックアップ記憶ユニットにコピーする典型的なシステムによって、おおまかに要約されることができる。
【００１３】
方法として記述されることのできる他の実施形態では、第２の開始アドレスが第１の終了アドレスと同一であり、一次アドレス指定シーケンスは増分カウントを使用し、二次アドレス指定シーケンスは減分カウントを使用する。この方法は、２つのバックアップ記憶ユニットに転送されたデータが、互いに補完して、一次記憶ユニットと二次記憶ユニットに個々に格納されているデータの完全なイメージを共同で提供するクロスオーバ時点（ｃｒｏｓｓｏｖｅｒ　ｐｏｉｎｔ　ｉｎ　ｔｉｍｅ）を生成する。このクロスオーバ時点において該情報は保護されることになるが、この共同で行うやり方で該情報を保護するのにかかる時間は、２つの同一の冗長なコピーを２つのバックアップ記憶ユニットに格納する従来の方法でかかる時間のわずか半分である。
【００１４】
【発明の実施の形態】
以下の図面を参照すると、本発明の多くの面をより良く理解できる。これらの図面中の構成要素は、必ずしも定尺ではなく、本発明の原理を明確に図解することに重点を置いている。さらに、これらの図面では、いくつかの図を通じて、該当する部分には、同じ参照数字が示されている。
【００１５】
ＲＡＩＤシステムに用いられるようなディスクアレイ・アーキテクチャを取り入れたシステムを特に参照して、本発明を述べる。しかしながら、当業者であれば、データの長期メモリ記憶装置と短期メモリ記憶装置を組み合わせたものを取り入れた冗長アーキテクチャを利用する他の用途に、この説明を拡張することができるのは明らかであろう。
【００１６】
図１は、冗長ディスク・コントローラ・システムにおける２つのディスク・コントローラによって制御されるディスク・アレイを図式的に描いたものである。
【００１７】
ホストコンピュータ１３５は、パーソナル・コンピュータ（ＰＣ）、マイクロプロセッサ・システム、ネットワーク・サーバー、メインフレーム・コンピュータ、または専用システム・コントローラ・ユニットであってもよい。この具体的な図解においては、示されるホストコンピュータ１３５は、ホストコンピュータ１３５の外部に設けられた２つのディスク・コントローラ１３０と１４５から成る冗長ディスク・コントローラ・システム１６０に、バス・インターフェース１４０ｅを介して接続されている。ディスク・コントローラ１４５は、一般に、ディスク・コントローラ１３０が故障した場合にディスク・コントローラ１３０と同等の動作能力を提供することができるように、ディスク・コントローラ１３０と同一のものが選択される。
【００１８】
バス・インターフェース１４０ｅは、ＳＣＳＩ（ｓｍａｌｌ　ｃｏｍｐｕｔｅｒ　ｓｙｓｔｅｍ　ｉｎｔｅｒｆａｃｅ）または高速ファイバ・チャネル（ＦＣ）インターフェースなどの様々な機構を利用することができる。バス・インターフェース１４０ｅはまた、ほとんどのデスクトップＰＣがＩＤＥ（Ｉｎｔｅｇｒａｔｅｄ　Ｄｒｉｖｅ　Ｅｌｅｃｔｒｏｎｉｃｓ）ディスクをアクセスするのに使っているＡＴＡ（ＡＴ　Ａｔｔａｃｈｍｅｎｔ）を使用することもできる。
【００１９】
ディスク１１０、１１５、１２０、および１２５は、一次シリアル相互接続と二次シリアル相互接続を有する冗長ディスク・アレイとして構成されている。双方向通信リンク１４０ａ、１４０ｂ、１４０ｃ、および１４０ｄによって形成される一次シリアル相互接続は、ディスク・コントローラ１３０に関連づけられている。双方向通信リンク１５０ａ、１５０ｂ、１５０ｃ、および１５０ｄによって形成される二次シリアル相互接続は、ディスク・コントローラ１４５に関連づけられている。
【００２０】
冗長ディスク・コントローラ・システム１６０は、２つのディスク・コントローラ１３０および１４５のいずれの故障からも保護する。例えば、ディスク・コントローラ１３０が故障しても、ホストコンピュータ１３５は、ディスク・コントローラ１４５を用いてディスク・アレイにアクセスし、該ディスク・アレイに格納されたデータを検索することができる。
【００２１】
わかりやすく説明するため、ディスク・コントローラ１３０に関連づけられた回路をＡ側と標記し、ディスク・コントローラ１４５に関連づけられた回路をＢ側と標記する。典型的な用途では、これら２つの側のうちの一方は、役割上、「マスタ」、「アクティブ」、または「一次」などの様々な名称によって参照されるような制御を引き受ける。その結果、他方の側は、「スレーブ（ｓｌａｖｅ）」、「スタンバイ」、または「二次」などの対応する名称によって参照される。この“マスタ−スレーブ”アービトレーション（ａｒｂｉｔｒａｔｉｏｎ）は、２つの装置が共通要素と対話するときに、これら２つの装置間の動作の競合を避けるために使用される。一例として、ディスク・コントローラ１３０と１４５が、双方のディスク・コントローラが共有する単一の双方向通信リンク１４０ｅを使って、同じ情報をホストコンピュータ１３５に同時に転送しようとする時に、このような状況が起こる場合がある。この種の問題は、ホストコンピュータ１３５によって起動された「ｒｅａｄ　ｄｉｓｋ　ｍｅｍｏｒｙ（ディスク・メモリ読出し）」要求に応答して発生することがある。このような状態のもとでは、指定された「マスタ」ディスク・コントローラだけが、データをホストコンピュータ１３５に転送することができる。該指定されたマスタ・ディスク・コントローラが故障したならば、スレーブ・ディスク・コントローラが、マスタの役割を引き受ける。
【００２２】
双方向通信リンク１３２は、２つの冗長ディスク・コントローラ１３０と１４５との間でメッセージを搬送する機構を提供する。このメッセージは、双方のディスク・コントローラが同じデータを確実に含むようにするのに必要な情報を含むことができる。このように同一データを保証するプロセスは、「同期（ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ）」または「ｓｙｎｃ」と呼ばれ、マスタ・コントローラの故障に起因してマスタ・コントローラからスレーブ・コントローラへの切り換えが起こった後でも該システムを中断なく動作させるために用いられる。
【００２３】
図１の図解は、２つの異なるディスク・コントローラと、このディスク・アレイにおける２つの異なるシリアル相互接続を示しているが、このような構成を、双方のディスク・コントローラを内部に組み入れた単一のコントローラ・ユニット（図１に破線の囲み枠として示される）を設けることによって物理的に実現してもよいことは、当業者ならば明らかであろう。例えば、ディスク・コントローラ１３０と１４５は、ディスク・アレイへの２つのシリアル相互接続が単一のケーブル構造内に物理的に組み込まれているデュアル・ポート式ファイバ・チャネル・ドライブの一部であることもできる。さらに都合のよいことがわかれば、単一ポートのドライブ構造、例えばＡＴＡタイプのドライブに用いられるものを利用して、ディスク・アレイへの２つの別々のシリアル相互接続を提供することもできる。また、システムによっては、この２つのディスク・コントローラをホストコンピュータ１３５に物理的に組み入れることもできる。
【００２４】
図１に示される冗長ディスク・コントローラ・システムは、具体的にＲＡＩＤシステムと呼ばれることがあり、またディスク・コントローラ１３０と１４５は、それぞれ、ＲＡＩＤコントローラ１３０とＲＡＩＤコントローラ１４５と呼ばれることがあることは理解されたい。さらに、ある時点でＲＡＩＤコントローラ１３０が「マスタ」モードで動作していた場合には、ＲＡＩＤコントローラ１３０は「一次ＲＡＩＤコントローラ」と呼ばれ、それに対応してＲＡＩＤコントローラ１４５は「二次ＲＡＩＤコントローラ」と呼ばれることがある。
【００２５】
「一次ＲＡＩＤコントローラ」および「二次ＲＡＩＤコントローラ」という語は、一般に、冗長記憶システムと関連して大まかに「一次コントローラ」および「二次コントローラ」と呼ばれることもある。
【００２６】
図２は、メインシステムの電源の故障中にデータをバックアップするのに用いられるダンプ・ディスクと共に図１を図式的に描いたものである。ディスク・コントローラ１３０は、Ａ側ダンプ・ディスク２５５として定められた不揮発性ディスク記憶システムに通信リンク２６０ａによって接続され、また、Ｂ側ダンプ・ディスク２６５として定められた不揮発性ディスク記憶システムに通信リンク２６０ｂによって接続される。ディスク・コントローラ１４５は、Ａ側ダンプ・ディスク２５５に通信リンク２６０ｃによって接続され、また、Ｂ側ダンプ・ディスク２６５に通信リンク２６０ｄによって接続される。通信リンク２６０ａと２６０ｂにより、ディスク・コントローラ１３０は、ダンプ・ディスク２５５またはダンプ・ディスク２６５のいずれかに対してデータの読出し／書込みを行うことができる。同様に、通信リンク２６０ｃと２６０ｄにより、ディスク・コントローラ１４５は、ダンプ・ディスク２５５またはダンプ・ディスク２６５のいずれかに対してデータの読出し／書込みを行うことができる。ダンプ・ディスク２６５は、典型的には、ダンプ・ディスク２５５と同一のものが選択される。
【００２７】
ダンプ・ディスク２５５と２６５が、例示の目的で、ディスク・コントローラの外部にあるように図２に示されているが、これらのダンプ・ディスクは、一般に、この明細書の初めの方で述べたように、ディスク・コントローラの内部に存在することもできる。他のいくつかの用途では、ダンプ・ディスク２５５と２６５は、ディスク１１０、１１５、１２０、および１２５から成るディスク・アレイの一部として組み込まれることもある。
【００２８】
図２では、通信リンク２６０ａ、２６０ｂ、２６０ｃ、および２６０ｄは、説明のために、明らかに１つずつ別々なものとして示されている。しかし、これらの通信リンクの物理的な実現は様々な形式を取ることができ、或るケースでは、これらの形式が、複数の個々の通信信号を同時に搬送することができる単一ケーブル接続などの統合媒体（ｉｎｔｅｇｒａｔｅｄ　ｍｅｄｉｕｍ）を利用することもできるということについては理解されたい。
【００２９】
図３は、ディスク・コントローラ・システム１６０における機能ブロックを図式的に描いたものである。ディスク・コントローラ１６０は、ホスト・インターフェース回路３２０およびディスク・インターフェース回路３５５に結合された、マイクロプロセッサのような制御プロセッサ３４０を組み込むことができる。制御プロセッサ３４０はまた、ＮＶＲＡＭ３５０のような短期メモリと、メイン・メモリ３３５とに結合される。バス３５０ａ、３５０ｂ、３５０ｃ、および３５０ｄは、制御プロセッサ３４０のための接続を提供し、物理的に互いに異なることができ、または共通バスの形式を取ることもできる。この目的のために、スター型、共通バス型、またはデイジー・チェーン型などのいくつかのタイプのバス・アーキテクチャを利用することができるということは、当業者であれば理解するであろう。
【００３０】
図１を参照して前述したように、ディスク・メモリ１１０、１１５、１２０、および１２５をディスク・アレイとして構成することができる。このようなディスク・アレイは、ディスク・インターフェース回路３５５を介してディスク・コントローラ１６０に接続されることができる。
【００３１】
図３では、ホストコンピュータ１３５と該ディスク・アレイとの間のデータ転送は、制御プロセッサ３４０により、ホスト・インターフェース回路３２０を経てキャッシュ・メモリ３４５に至るようにルーティング（経路設定）される。キャッシュ・メモリ３４５は、「ライト・キャッシュ（ｗｒｉｔｅ　ｃａｃｈｅ）」および／または「リード・キャッシュ（ｒｅａｄ　ｃａｃｈｅ）」を含むことができる。ライト・キャッシュは、「バッファ・キャッシュ」と呼ばれることもある。キャッシュ・メモリ３４５は、例示の目的で、ＮＶＲＡＭ３５０に含まれるように示されているが、メインシステム電源の故障の場合の冗長性に関するシステム要件に応じて、不揮発性メモリおよび／または揮発性メモリから成ることができる。
【００３２】
ホストコンピュータ１３５が書込み動作を開始するとき、データはキャッシュ・メモリ３４５に書き込まれ、次に、ディスク・インターフェース回路３５５を介してディスク・アレイに転送される。同様に、該ディスク・アレイからの読出し動作を構成するデータ・フェッチ（ｄａｔａ　ｆｅｔｃｈ）の要求をホストコンピュータ１３５が出したとき、ディスク・コントローラ１６０は、要求されたデータがキャッシュ・メモリ３４５にすでに格納されているかどうかを最初に判断する。要求されたデータがキャッシュ・メモリ３４５に格納されている場合には、ディスク・コントローラ１６０は、この「キャッシュされた」データをホストコンピュータ１３５に提供し、それにより、キャッシュ・メモリ３４５よりも遅いディスク・アレイにアクセスする必要性を回避する。要求されたデータがキャッシュ・メモリ３４５に格納されてない場合には、該データはディスク・アレイから検索され、キャッシュ・メモリ３４５に格納され、その後にホストコンピュータ１３５に提供される。このような技術を用いて、ディスク・コントローラ１６０は、読出し動作または書込み動作中にホストコンピュータ１３５とディスク・アレイとの間で転送されるデータのコピーを、キャッシュ・メモリ３４５に維持する。
【００３３】
図３のメイン・メモリ３３５は、いくつかのタイプのメモリ素子、例えば読出し動作も書込み動作も可能にするランダム・アクセス・メモリだけでなく、リード・オンリー・メモリ（読み出し専用メモリ）を含むこともできる。リード・オンリー・メモリは、ソフトウェアおよび／またはファームウェアの形式でプログラミング情報を含むことができる。このような情報の一例が、データ・バックアップ・マネージャ５００として示されている。メイン・メモリ３３５に含まれるランダム・アクセス・メモリを使用して、ホストコンピュータ１３５上で実行されているアプリケーションに関連づけられた情報を格納することができる。このような情報の一例は、キャッシュ・メモリ３４５を動作させるのに用いられるキャッシュ管理テーブルである。
【００３４】
図４は、冗長ディスク・コントローラ・システムに、バッテリ・バックアップ式のダンプ・ディスク（１つまたは複数）と共に、ＮＶＲＡＭを組み込んだ例示的なシステムを示している。ＮＶＲＡＭ４１０は、ディスク・コントローラ１３０の内部に設けられる。また、ＮＶＲＡＭ４１０は、バッテリ４１５のような独立した電源を備えているので、メインシステムの電源が故障したときでも、そのデータ内容を保存する。Ａ側ダンプ・ディスク２５５も、バッテリ４２０のような独立した電源を備えている。バッテリ４２０は、メインシステムの電源の故障中に、少なくとも、ＮＶＲＡＭ４１０の内容をダンプ・ディスク２５５にコピーすることを可能にするぐらいに十分長くダンプ・ディスク２５５を動作させるのに充分な容量をもつように設計されている。バッテリ４２０はまた、典型的には、ディスク・コントローラ１３０上の他の回路を動作させるのにも使用される。このような回路は、メインシステムの電源が故障した場合にバックアップ動作を実行するのに必要とされることがある。
【００３５】
ＮＶＲＡＭ４２５は、ディスク・コントローラ１４５の内部に設けられる。ＮＶＲＡＭ４２５はまた、ＮＶＲＡＭ４１０と同様に、メインシステムの電源が故障したときに、そのデータ内容を保存する不揮発性ランダム・アクセス・メモリである。このようなデータ保存機能は、ＮＶＲＡＭ４２５に接続されたバッテリ４３０などの独立した電源によって提供される。Ｂ側ダンプ・ディスク２６５は、ダンプ・ディスク２５５と同様である。バッテリ４３５のような電源により、ダンプ・ディスク２６５は、メインシステムの電源の故障中でも動作することができる。バッテリ４３５は、メインシステムの電源の故障中、少なくとも、ＮＶＲＡＭ４２５の内容をダンプ・ディスク２６５に転送することを可能にするぐらい十分長くダンプ・ディスク２６５を動作させるのに充分な容量をもつように設計されている。バッテリ４２０の使用と同様に、バッテリ４３５または該バッテリ４３５と同等の電源も、典型的に、ディスク・コントローラ１４５上の他の回路を動作させるのに使用されることができる。
【００３６】
正常なシステム動作状態のもとでは、ＮＶＲＡＭ４１０とＮＶＲＡＭ４２５のデータ内容は同一であって、マスタ−スレーブの動作構成によって、互いに同期がとられている。このような動作は、通信リンク１３２により容易となる。
【００３７】
マスタ・コントローラ内に設けられたＮＶＲＡＭに含まれる有効データはまた、ダンプ・ディスク２５５とダンプ・ディスク２６５の両方に定期的にコピーされる。例えば、ディスク・コントローラ１３０が、ある時点でマスタ・コントローラである場合には、ＮＶＲＡＭ４１０に含まれる有効データは、マスタ・コントローラ１３０によって、リンク２６０ａを使ってＡ側ダンプ・ディスク２５５にコピーされ、また、リンク２６０ｂを使ってＢ側ダンプ・ディスク２６５にもコピーされる。
【００３８】
このデータ・コピー動作は、一般に、システム電源が故障していない時の正常な状態中に実行され、ディスク・コントローラ１３０は、ホストコンピュータ１３５からのコマンドをサービスすることには積極的にはかかわらない。
【００３９】
したがって、一般に、システムレベルの電源が故障したとき、ダンプ・ディスク２５５と２６５には、有効ＮＶＲＡＭデータの一部がすでに含まれている。この段階において、これらのダンプ・ディスクに転送する必要のあるＮＶＲＡＭデータは、電源の故障前には転送されなかったデータだけである。この「増分」有効データは、メモリ・アドレス・セクタにおいて必ずしもアドレス位置００００から始まるとは限らない所に存在する場合があることは理解されたい。例えば、有効ＮＶＲＡＭデータが００００からＦＡＡＡ（１６進）まで存在し、アドレス００００〜ＡＡＡＡ（１６進）のデータ内容が、正常な動作状態中にすでにダンプ・ディスクに転送されている場合には、システムレベルの電源故障状態の時点では、ＡＡＡＢ（１６進）からＦＡＡＡ（１６進）までの増分有効データだけが、ダンプ・ディスクへの転送を必要とする。このような電源の故障状態のもとでは、００００からＦＡＡＡ（１６進）までの全ＮＶＲＡＭデータを転送する必要はない。システムによっては、電源故障の後で、ＮＶＲＡＭデータをバックアップするのに必要な時間を最小限に抑えるように、この種の「増分バックアップ」手順を利用することができる。
【００４０】
図５は、２つのディスク・コントローラのそれぞれに設けられたＮＶＲＡＭの内容を、それらの対応するダンプ・ディスクにコピーする代表的なプロセスを示す流れ図である。図５に示されるプロセス・ステップすなわちブロックは、このプロセスにおける特定の論理的な機能すなわちステップを実施するために、１つまたは複数の実行可能命令を含むモジュール、セグメント、またはコードの一部を表わしている。特定の例示的なプロセス・ステップが述べられているが、代替の実施も可能であることは理解されよう。さらに、ステップは、関連する機能性に依存して、図示され、または記述された順序とは異なる順序で実行されることもできる（たとえば、ほぼ同時に実行される、または逆の順序で実行されることもある）。コードはまた、本発明のいくつかのデバイスに含まれることができ、必ずしも特定のデバイスに限定されることはない。以下の説明は、或るデバイスにおけるコードの常駐性と機能性を暗に示すことがあるが、これは、もっぱら本発明の背後にある概念を説明する目的でのみ行われる。このような記述は、他の用途での本発明の様々な実施について限定するファクターと解されるべきではない。
【００４１】
ステップ５１５とステップ５２０において、このシステムは、メインシステムの電源が故障したかどうかを判断する。ステップ５２０において、メインシステムの電源が故障したと該システムによって判断されたならば、ＮＶＲＡＭデータをダンプ・ディスクに転送するプロセスが、ステップ５３５とステップ５４０を介して実行される。
【００４２】
ステップ５３５とステップ５４０は、一般に、同時に実行するように行われることができるが、用途によっては、Ａ側転送とＢ側転送との間に小さな時間遅れを持たせて動作させることもできる。ステップ５３５において、Ａ側ディスク・コントローラ１３０は、有効データを、ＮＶＲＡＭ４１０からＡ側ダンプ・ディスク２５５にコピーし始め、ほとんど同時にステップ５４０において、Ｂ側ディスク・コントローラ１４５は、有効データを、そのＮＶＲＡＭ４２５からＢ側ダンプ・ディスク２６５にコピーし始める。
【００４３】
ステップ５３５とステップ５４０で説明されるこのコピー・プロセスは、冗長ディスク・コントローラ・システムのＡ側とＢ側の両方について同時に動作するので、データをダンプ・ディスクにバックアップするのに要する時間が最小限に抑えられる。これは、逐次バックアップまたは時間多重化バックアップを用いて、非同時にデータをダンプ・ディスクにバックアップするシステムと比較すると、とりわけ有意である。
【００４４】
図６は、アドレス指定カウンタを含む図５の別の実施形態である。ステップ６１５とステップ６２０において、このシステムは、メインシステムの電源が故障したかどうかを判断する。メインシステムの電源が故障していなければ、該システムは、冗長ディスク・コントローラ・システムのＡ側に必要とされる開始アドレスをセットする。開始アドレスをセットするこのプロセス（これは、ステップ６２５において実行される）は、開始アドレスを予め決めておき、それに応じて該開始アドレスをセットするという静的プロセスであることができる。例えば、開始アドレスは、ＦＦＦＦ（１６進）にセットされることができる。
【００４５】
代替的に、開始アドレスをセットするプロセスは、ＮＶＲＡＭに含まれる有効データのバイトのサイズに基づいて、開始アドレスを決定する動的プロセスであることもできる。例示を目的として、ダンプ・ディスクに未だ書き込まれていない増分有効データが、ＮＶＲＡＭのアドレス０ＦＡ２（１６進）〜アドレスＦＦＡＥ（１６進）にあると仮定する。このような状態のもとでは、開始アドレスをセットする動的プロセスは、ステップ６２５において、Ａ側開始アドレスを０ＦＡ２（１６進）にセットすることができる。
【００４６】
図５のステップ６２５の後にステップ６３０が続き、ステップ６３０において、該システムは、Ｂ側の開始アドレスをセットする。これは、ステップ６２５において実施される静的アドレス指定プロセスまたは動的アドレス指定プロセスのいずれかに適合したやり方で行われる。ステップ６２５において、静的プロセスでアドレスＦＦＦＦ（１６進）が用いられるとすると、それに対応して、該システムは、ステップ６３０において、Ｂ側開始アドレスを００００にセットすることができる。ステップ６２５において動的プロセスが用いられ、Ａ側開始アドレスが０ＦＡ２（１６進）にセットされた場合には、それに対応して、Ｂ側開始アドレスは、ステップ６３０において、ＦＦＡＥ（１６進）にセットされることができる。
【００４７】
さらに図６を参照すると、ステップ６２０において、メインシステムの電源が故障したと該システムによって判断されたならば、ＮＶＲＡＭデータをダンプ・ディスクに転送するプロセスは、ステップ６３５とステップ６４０を介して実行される。ステップ６３５とステップ６４０は、一般に、同時に実行するように行われることもできるが、用途によっては、Ａ側転送とＢ側転送との間に小さな時間遅れを持たせて動作させることもできる。動的プロセスに関して上に引用された例を用い、図６のステップ６３５はＡ側に関係づけられ、その開始アドレスは０ＦＡ２（１６進）である。ステップ６３５において、ディスク・コントローラ１３０（図４参照）は、０ＦＡ２（１６進）からＦＦＡＥ（１６進）に向かって増分する増分シーケンス・カウンタを用いて、データ・バイトをＮＶＲＡＭ４１０からＡ側ダンプ・ディスク２５５に転送し始める。
【００４８】
ステップ６４０において、ディスク・コントローラ１４５（図４のもの）は、ＦＦＡＥ（１６進）から０ＦＡ２（１６進）に向かって減分する減分シーケンス・カウンタを用いて、データ・バイト（この例では、Ｂ側開始アドレスとしてＦＦＡＥ（１６進）が使用される）を、ＮＶＲＡＭ４２５からＢ側ダンプ・ディスク２６５に転送し始める。
【００４９】
ステップ６３５とステップ６４０に示されるデータ転送プロセスの開始に続くある時点において、２つのダンプ・ディスクに転送されたデータが互いに補完し（相補し（ｃｏｍｐｌｅｍｅｎｔ））、それぞれのＮＶＲＡＭに個別に格納されたＮＶＲＡＭの有効データの完全なイメージを共同で提供することになるクロスオーバ時点に到達することがわかる。このクロスオーバ時点においてＮＶＲＡＭ情報が保護されたことになるが、この共同で行うやり方によるＮＶＲＡＭ情報の保護にかかる時間は、両方とも同じ増分計数方式を持つ２つのカウンタを用いた従来の方法で該ＮＶＲＡＭ情報を保護するのにかかる時間のわずか半分である。したがって、図６に概略的に示される新規のデータ・バックアップ・プロセスにより、メインシステムの電源の故障中にＮＶＲＡＭデータが失われるおそれがさらに少なくなる。クロスオーバ時点に達したならば、それぞれのコントローラは、充分な冗長性が得られるまで、ハードディスク上にデータをコピーし続けることができる。
【００５０】
上述の例は、Ａ側とＢ側という２つの側を利用したが、３つ以上の側が、このような構成を必要とするシステムにおいて実現されることができるということを理解されたい。このような場合には、これら複数の側のそれぞれに適切なアドレス範囲を提供するように、該複数の側の開始アドレスを適切なやり方で選択する。
【００５１】
上述の例は、増分シーケンス・カウンタと減分シーケンス・カウンタを使用するが、適切なシーケンス計数方式を用いる他のタイプのカウンタを使用してもよい。カウント・シーケンスを使用する背後の目的は、複数のダンプ・ディスクにまたがってＮＶＲＡＭデータを格納する効率的なやり方を達成することである。
【００５２】
シーケンス計数方式の変形の一例として、ＮＶＲＡＭが、アドレス００００〜アドレスＦＦＦＦ（１６進）の有効データを持ち、かつ、Ａ側、Ｂ側、およびＣ側と指定された３つのダンプ・ディスクが用いられるシステムを使用するものを挙げることができる。
【００５３】
この例では、Ａ側は、００００の開始アドレスで指定されることができ、Ｂ側は５５５５（１６進）から始まり、Ｃ側はＡＡＡＡ（１６進）から始まることができる。これら３つの側に関連づけられた３つすべてのカウンタが増分するように設定される場合には、Ａ側は、００００から５５５５（１６進）に向かって増分し、Ｂ側は、５５５５（１６進）からＡＡＡＡ（１６進）に向かって増分し、Ｃ側は、ＡＡＡＡ（１６進）からＦＦＦＦ（１６進）に向かって増分する。Ａ側カウンタが５５５５（１６進）に達する時点において、これら３つのダンプ・ディスクにまたがってＮＶＲＡＭ有効データの相補コピー（ｃｏｍｐｌｅｍｅｎｔａｒｙ　ｃｏｐｙ）が利用可能となる。この時点では、Ｂ側カウンタがＡＡＡＡ（１６進）を読み出し、Ｃ側カウンタがＦＦＦＦ（１６進）を読み出すことになる。
【００５４】
図５と図６に述べられる流れ図を実施するのに必要なソフトウェアおよび／またはファームウェアは、図３のデータ・バックアップ・マネージャ５００で示されるように、典型的にはディスク・コントローラ内に常駐することができるが、このようなソフトウェアおよび／またはファームウェアを、ホストコンピュータ１３５に常駐するように設計することもできる。こうする利点は、動作している２つまたはそれ以上のディスク・コントローラのうちどれがマスタであるかを判断するために、該２つまたはそれ以上のディスク・コントローラ間のマスタ−スレーブ・アービトレーション・プロセスにおいて発生しうる何らかの遅れまたは曖昧さを克服することができる点にある。
【００５５】
ほとんどのシステムでは、データ・バックアップ・ソフトウェアを組み込んだデバイスは、典型的には、メインシステム電源の故障の場合にはバックアップ電源から動作するように設計されている。いくつかの実施形態では、ホストコンピュータ１３５が使用可能なバックアップ・システム電源を、ディスク・コントローラ１６０が使用可能なものよりも効率が良いように、外部メモリ記憶サブシステムを設計することがある。このような場合には、バックアップ・ソフトウェアを、ディスク・コントローラ１６０内ではなくて、ホストコンピュータ１３５内に設けることができる。他の実施形態では、ディスク・コントローラ１６０は、ホストコンピュータ１３５内に存在するデータ・バックアップ・ソフトウェアの一部（サブセット）も含むこともできる。
【００５６】
本発明の上述の実施形態は、単に可能な実施例にすぎず、本発明の原理を明確に理解するためにのみ記述されたにすぎない点を強調しておくべきであろう。本発明の精神および原理から実質的に逸脱することなく、本発明の上述の実施形態に多くの変形および変更を行うことができる。例えば、当業者であれば、情報の特定の形式、および情報がやり取りされる媒体の特定の形式は、任意の可能な手段から選択されることができるということが理解されよう。このような変更および変形はすべて、本発明の範囲内に含まれ、特許請求の範囲で保護されることが意図されている。
【図面の簡単な説明】
【図１】冗長ディスク・コントローラ・システムにおいて２つのディスク・コントローラにより制御されるディスク・アレイを概略的に示す図。
【図２】図１においてダンプ・ディスクを備えた場合を概略的に示す図。
【図３】ディスク・コントローラ・システムにおける機能ブロックを概略的に示す図。
【図４】冗長ディスク・コントローラ・システムにおいて、バッテリ・バックアップ式のダンプ・ディスク記憶装置とともにＮＶＲＡＭ記憶装置を示す図。
【図５】２つのディスク・コントローラのそれぞれに設けられたＮＶＲＡＭの内容を、対応するダンプ・ディスクにコピーする本発明の代表的なプロセスにかかわるステップを示す流れ図。
【図６】アドレス指定カウンタを含む図５のさらに他の形態を示す図。
【符号の説明】
１３０　Ａ側ディスクコントローラ
１４５　Ｂ側ディスクコントローラ
４１０　Ａ側ＮＶＲＡＭ
４２５　Ｂ側ＮＶＲＡＭ
２５５　Ａ側ダンプ・ディスク
２６５　Ｂ側ダンプ・ディスク
５００　データ・バックアップ・マネージャ
【図１】
2004021989.tif 000003
【図２】
2004021989.tif 000004
【図３】
2004021989.tif 000005
【図４】
2004021989.tif 000006
【図５】
2004021989.tif 000007
【図６】
2004021989.tif 000008