(57)【要約】【課題】独立ディスクの冗長アレイ（ＲＡＩＤ）記憶システム内の保護されたデータの量を最大限にするための、コンピュータで実施される方法、データ処理システム、およびコンピュータ・プログラム製品を提供すること。【解決手段】複数の物理ディスク・ドライブを独立ディスクの冗長アレイに構成する要求が受信された場合、複数の物理ディスク・ドライブのそれぞれは、最小公倍数に基づいてデータのブロックに分割される。データのブロックは次いで、有効な独立ディスクの冗長アレイのパリティ・セットを形成するよう配列され、それにより独立ディスクの冗長アレイ内の保護されたデータの量が最大限にされる。【選択図】図２
2007265409.tif 000002
【特許請求の範囲】
【請求項１】
独立ディスクの冗長アレイ内の保護されたデータの量を最大限にするための、コンピュータで実施される方法において、
複数の物理ディスク・ドライブを独立ディスクの冗長アレイに構成する要求を受信したことに応答して、前記複数の物理ディスク・ドライブのそれぞれを最小公倍数に基づいてデータのブロックに分割するステップと、
前記独立ディスクの冗長アレイ内の前記保護されたデータの量を最大限にするために、有効な独立ディスクの冗長アレイのパリティ・セットを形成するよう前記データのブロックを配列するステップと
を含む方法。
【請求項２】
少なくとも１つの有効な独立ディスクの冗長アレイのパリティ・セットを形成するために前記物理ディスク・ドライブを同じサイズのデータのブロックに分割するよう前記最小公倍数が使用される請求項１に記載のコンピュータで実施される方法。
【請求項３】
有効な独立ディスクの冗長アレイのパリティ・セットは、少なくとも３つ以上の物理ディスク・ドライブからのデータのブロックを含む請求項１に記載のコンピュータで実施される方法。
【請求項４】
有効な独立ディスクの冗長アレイのパリティ・セット内の各物理ディスク・ドライブは、一度だけ表される請求項１に記載のコンピュータで実施される方法。
【請求項５】
前記要求を受信したことに応答してユーザにインターフェースを提供するステップであって、前記インターフェースは、前記独立ディスクの冗長アレイ内の保護されたデータの量を最大限にする選択肢を含むステップをさらに含む請求項１に記載のコンピュータで実施される方法。
【請求項６】
前記分割するステップと配列するステップとは、前記保護されたデータの量を最大限にするために前記ユーザが前記選択肢を選択したと判定したことに応答して実行される請求項５に記載のコンピュータで実施される方法。
【請求項７】
インターフェースは、独立ディスクの冗長アレイのアーキテクチャの選択可能メニューを含む請求項１に記載のコンピュータで実施される方法。
【請求項８】
独立ディスクの冗長アレイ内の保護されたデータの量を最大限にするためのデータ処理システムにおいて、
バスと、
前記バスに接続され、コンピュータ使用可能コードを含む記憶装置と、
前記バスに接続された少なくとも１つの管理されたデバイスと、
前記バスに接続された通信ユニットと、
前記バスに接続された処理ユニットであって、複数の物理ディスク・ドライブを独立ディスクの冗長アレイに構成する要求を受信したことに応答して、前記複数の物理ディスク・ドライブのそれぞれを最小公倍数に基づいてデータのブロックに分割し、前記独立ディスクの冗長アレイ内の前記保護されたデータの量を最大限にするために有効な独立ディスクの冗長アレイのパリティ・セットを形成するよう前記データのブロックを配列するために前記コンピュータ使用可能コードを実行する処理ユニットと
を含むデータ処理システム。
【請求項９】
少なくとも１つの有効な独立ディスクの冗長アレイのパリティ・セットを形成するために前記物理ディスク・ドライブを同じサイズのデータのブロックに分割するよう前記最小公倍数が使用される請求項８に記載のデータ処理システム。
【請求項１０】
有効な独立ディスクの冗長アレイのパリティ・セットは、少なくとも３つ以上の物理ディスク・ドライブからのデータのブロックを含む請求項８に記載のデータ処理システム。
【請求項１１】
有効な独立ディスクの冗長アレイのパリティ・セット内の各物理ディスク・ドライブは、一度だけ表される請求項８に記載のデータ処理システム。
【請求項１２】
前記処理ユニットは、前記要求を受信したことに応答してユーザにインターフェースを提供するために前記コンピュータ使用可能コードをさらに実行し、前記インターフェースは、前記独立ディスクの冗長アレイ内の前記保護されたデータの量を最大限にする選択肢を含む請求項８に記載のデータ処理システム。
【請求項１３】
前記ユーザが、前記保護されたデータの量を最大限にするための前記選択肢を選択したと判定したことに応答して、前記複数の物理ディスク・ドライブのそれぞれをデータのブロックに分割し、前記データのブロックを配列するために前記コンピュータ使用可能コードが実行される請求項１２に記載のデータ処理システム。
【請求項１４】
独立ディスクの冗長アレイ内の保護されたデータの量を最大限にするためのコンピュータ・プログラムにおいて、
複数の物理ディスク・ドライブを独立ディスクの冗長アレイに構成する要求を受信したことに応答して、複数の物理ディスク・ドライブのそれぞれを最小公倍数に基づいてデータのブロックに分割するためのコンピュータ使用可能プログラム・コードと、
前記独立ディスクの冗長アレイ内の保護されたデータの量を最大限にするために、有効な独立ディスクの冗長アレイのパリティ・セットを形成するよう前記データのブロックを配列するためのコンピュータ使用可能プログラム・コードと、
をコンピュータに実行させる
コンピュータ・プログラム。
【請求項１５】
少なくとも１つの有効な独立ディスクの冗長アレイのパリティ・セットを形成するために前記物理ディスク・ドライブを同じサイズのデータのブロックに分割するよう前記最小公倍数が使用される請求項１４に記載のコンピュータ・プログラム。
【請求項１６】
有効な独立ディスクの冗長アレイのパリティ・セットは、少なくとも３つ以上の物理ディスク・ドライブからのデータのブロックを含む請求項１４に記載のコンピュータ・プログラム。
【請求項１７】
有効な独立ディスクの冗長アレイのパリティ・セット内の各物理ディスク・ドライブは、一度だけ表される請求項１４に記載のコンピュータ・プログラム。
【請求項１８】
前記要求を受信したことに応答して、ユーザにインターフェースを提供するためのコンピュータ使用可能プログラム・コードであって、前記インターフェースは、前記独立ディスクの冗長アレイ内の保護されたデータの量を最大限にする選択肢を含むコンピュータ使用可能プログラム・コード
をさらに含む請求項１４に記載のコンピュータ・プログラム。
【請求項１９】
前記複数の物理ディスク・ドライブのそれぞれをデータのブロックに分割し、前記データのブロックを配列するための前記コンピュータ使用可能プログラム・コードは、前記保護されたデータの量を最大限にするために前記ユーザが前記選択肢を選択したと判定したことに応答して実行される請求項１８に記載のコンピュータ・プログラム。
【請求項２０】
インターフェースは、独立ディスクの冗長アレイのアーキテクチャの選択可能メニューを含む請求項１４に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、コンピュータ・システムにおけるデータ回復に関し、詳細には、独立ディスクの冗長アレイ（ＲＡＩＤ）記憶システムにおいて保護されたデータの量を最大限にするための、コンピュータで実施される方法、データ処理システム、およびコンピュータ・プログラムに関する。
【背景技術】
【０００２】
ハードディスク・ドライブ（「ハードドライブ」）は、大部分のコンピュータまたはプロセッサにとって主要データ記憶デバイスである。典型的なハードドライブは、磁化された形態でデータを記憶するために磁気素材で覆われた複数のハードディスク・プラッタ（「ディスク」）を含む。それらディスクは、一定の比率で一斉にそれらディスクを回転させるスピンドルに添着されている。アクチュエータ・アームは、磁化されたデータを取り出すか記憶するために、１つまたは複数の読み書きヘッドを複数のディスクにまたがって半径方向に移動する。ハードドライブの構成要素（ディスク、スピンドル、アクチュエータ・アーム、読み書きヘッド、関連付けられたモータおよび電子回路など）は、ヘッド・ディスク・アセンブリ（ＨＤＡ）内に封入される。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ＨＤＡは、ハードドライブの構成要素を埃、結露、および他の原因による汚染から保護する。ハードドライブのディスクまたは読み書きヘッドの汚染は、ディスクの故障、ヘッド・クラッシュまたはデータの回復不可能な消失或いはこれら全ての原因となる危険性がある。また、データ消失は、電子回路の誤作動、物理的衝撃、構成要素の磨耗、不適切に製造されたディスクなどのような、他のハードドライブ問題によって起こる危険性がある。
【０００４】
ハードドライブにおいて増加するハード・エラーの問題を解決するための１つのハードウェアによる手法は、直接アクセス記憶装置（ＤＡＳＤ）を利用することである。ＤＡＳＤの一例は、独立ディスクの冗長アレイ（ＲＡＩＤ）である。ＲＡＩＤ手法は、複数のハードドライブを接続して、それらを単一の論理ユニットとして扱う。その結果、コンピュータは、複数のドライブを、より小さな個々のドライブと同様にフォーマットし、パーティションで区切ることのできる１つの大きなハードドライブとして認識する。ＲＡＩＤ実施態様は、ＲＡＩＤセットの所与の数の物理ディスクにまたがるデータ「ストライプ」の書き込みと、ストライプされたデータに関する冗長情報の適切な記憶とを通してデータ記憶の信頼性／完全性を強化する。冗長情報は、記憶装置に障害が生じた場合に消失したデータの回復を可能にする。
【０００５】
したがって、ＲＡＩＤ手法の複数のハードドライブにより提供された冗長性は、ハード・エラーにより消失したデータの回復を強化し、関連するコンピュータ・システムの性能も高める。しかし現在では、ＲＡＩＤで構成するために使用可能な各ディスクの記憶空間は、アレイの最小ディスクの記憶空間サイズに限られる。例えば、ＲＡＩＤを構築するために２つの３５ＧＢのディスクが７０ＧＢと共に使用される場合、各ディスクは、そのＲＡＩＤに対して１０５ＧＢの合計記憶空間に対してアレイに３５ＧＢを提供することになるが、より大きなディスクの残りの３５ＧＢは保護されないまま残る。したがって、既存のＲＡＩＤシステム内の保護可能なデータ量は、ＲＡＩＤセットの最小ドライブの容量により制約される。
【０００６】
したがって、ＲＡＩＤ記憶システム内の保護されたデータの量を増やすための方法およびシステムを有することは有利である。
【課題を解決するための手段】
【０００７】
本発明の実施形態は、独立ディスクの冗長アレイ（ＲＡＩＤ）記憶システム内の保護されたデータの量を最大限にするための、コンピュータで実施される方法、データ保護システム、およびコンピュータ・プログラム製品を提供する。複数の物理ディスク・ドライブを独立ディスクの冗長アレイに構成する要求が受信されると、それら複数の物理ディスク・ドライブのそれぞれは、最小公倍数に基づくデータのブロックに分割される。データのブロックは次いで、有効な独立ディスクの冗長アレイのパリティ・セットを形成するように配列され、それにより独立ディスクの冗長アレイ内の保護されたデータの量は最大限にされる。
【発明を実施するための最良の形態】
【０００８】
本発明の特徴と思われる新規の特性は首記の請求項に述べる通りである。しかし本発明自体並びに用途の好ましい態様、さらにはその目的および利点は、添付の図面と共に読んだ場合、説明を目的とした一実施形態の以下の詳細な説明を参照することにより最も良く理解されよう。
【０００９】
次に、図面、特に図１および２を参照すると、本発明の実施形態を実施することのできるデータ処理環境の例示の図表が提供されている。図１および２は、単なる例示であって、本発明の態様または実施形態を実施することのできる環境に関していかなる制約も主張または暗示することを目的とするものではないことを理解されたい。示した環境に対する多くの修正形態を、本発明の趣旨および範囲を逸脱せずに行うことができる。
【００１０】
次に図面を参照すると、図１には、本発明の態様を実施することのできるデータ処理システム網の絵図が示されている。ネットワーク・データ処理システム１００は、本発明の実施形態を実施することのできるコンピュータ網である。ネットワーク・データ処理システム１００は、様々なデバイスと、ネットワーク・データ処理システム１００内で接続されたコンピュータとの間の通信リンクを提供するために使用される媒体であるネットワーク１０２を含む。ネットワーク１０２は、有線通信リンク、無線通信リンクまたは光ファイバ・ケーブルなどの接続を含むことができる。
【００１１】
示された実施例では、サーバ１０４とサーバ１０６は、ディスク・アレイ１０８に沿ってネットワーク１０２に接続される。さらに、クライアント１１０、１１２、および１１４はネットワーク１０２に接続される。これらのクライアント１１０、１１２、および１１４は、例えばパーソナル・コンピュータまたはネットワーク・コンピュータであってよい。示した実施例では、サーバ１０４は、ブート・ファイルと、オペレーティング・システム画像およびクライアント１１０、１１２、および１１４に対するアプリケーションなどのデータを提供する。本実施例では、クライアント１１０、１１２、および１１４はサーバ１０４に対するクライアントである。ネットワーク・データ処理システム１００は、図示しない追加のサーバ、クライアントおよび他のデバイスを含むことができる。
【００１２】
示した実施例では、ネットワーク・データ処理システム１００は、相互に通信するために伝送制御プロトコル/インターネット・プロトコル（ＴＣＰ／ＩＰ）一式を使用するネットワークおよびゲートウェイの世界中に広がる集合体を表すネットワーク１０２を有するインターネットである。インターネットの心臓部には、データおよびメッセージをルーティングする数千もの商用、官用、教育用および他のコンピュータ・システムからなる主要ノードまたはホスト・コンピュータの間の高速データ通信回線のバックボーンがある。当然ながら、ネットワーク・データ処理システム１００は、多数の異なるタイプのネットワーク、例えばイントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）、またはワイド・エリア・ネットワーク（ＷＡＮ）などとして実施することができる。図１は、一例であることを目的としており、本発明の異なる実施形態に対してアーキテクチャ上の制約を目的とするものではない。
【００１３】
次に図２を参照すると、本発明の態様を実施することのできるデータ処理システムのブロック図が示されている。データ処理システム２００は、本発明の実施形態に対する処理を実施するコンピュータ使用可能コードまたは命令を置くことのできる図１のサーバ１０４またはクライアント１１０などのコンピュータの一例である。
【００１４】
示した実施例では、データ処理システム２００は、ノース・ブリッジおよびメモリ・コントローラ・ハブ（ＮＢ／ＭＣＨ）２０２とサウス・ブリッジおよび入出力（Ｉ／Ｏ）コントローラ・ハブ（ＳＢ／ＩＣＨ）２０４とを含むハブ・アーキテクチャを使用する。処理ユニット２０６、主メモリ２０８、およびグラフィック・プロセッサ２１０は、ＮＢ／ＭＣＨ  ２０２に接続されている。グラフィック・プロセッサ２１０は、加速グラフィック・ポート（ＡＧＰ）を介してＮＢ／ＭＣＨ  ２０２に接続することができる。
【００１５】
示した実施例では、ローカル・エリア・ネットワーク（ＬＡＮ）アダプタ２１２がＳＢ／ＩＣＨ  ２０４に接続されている。オーディオ・アダプタ２１６、キーボードおよびマウス・アダプタ２２０、モデム２２２、読み取り専用メモリ（ＲＯＭ）２２４、ハードディスク・ドライブ（ＨＤＤ）２２６、ＣＤ−ＲＯＭドライブ２３０、ユニバーサル・シリアル・バス（ＵＳＢ）ポートおよび他の通信ポート２３２、およびＰＣＩ／ＰＣＩｅデバイス２３４は、バス２３８およびバス２４０を介してＳＢ／ＩＣＨ  ２０４に接続されている。ＰＣＩ／ＰＣＩｅデバイスは、例えばイーサネット（登録商標）・アダプタ、アドイン・カード、およびノートブック・コンピュータ用のＰＣカードを含んでもよい。ＰＣＩはカード・バス・コントローラを使用するが、ＰＣＩｅはこれを使用しない。ＲＯＭ  ２２４は、例えばフラッシュ・バイナリ入出力システム（ＢＩＯＳ）であってよい。
【００１６】
ＨＤＤ  ２２６およびＣＤ−ＲＯＭドライブ２３０は、バス２４０を介してＳＢ／ＩＣＨ  ２０４に接続する。ＨＤＤ  ２２６およびＣＤ−ＲＯＭドライブ２３０は、例えば統合ドライブエレクトロニクス（ＩＤＥ）またはシリアル拡張技術アタッチメント（ＳＡＴＡ）インターフェースを使用してもよい。Ｓｕｐｅｒ  Ｉ／Ｏ（ＳＩＯ）デバイス２３６は、ＳＢ／３ＩＣＨ  ２０４に接続してもよい。
【００１７】
オペレーティング・システムは、処理ユニット２０６で実行され、図２のデータ処理システム２００内にある様々な構成要素の制御を調整し、また提供する。クライアントとして、オペレーティング・システムは、Ｍｉｃｒｏｓｏｆｔ（Ｒ）Ｗｉｎｄｏｗｓ（Ｒ）ＸＰ（ＭｉｃｒｏｓｏｆｔおよびＷｉｎｄｏｗｓはＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎの商標）などの市販のオペレーティング・システムであってよい。Ｊａｖａ（Ｒ）（ＪａｖａはＳｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍの商標）プログラミング・システムのようなオブジェクト指向プログラミング・システムは、オペレーティング・システムと連動して実行することができ、Ｊａｖａ（Ｒ）プログラムまたはデータ処理システム２００で実行中のアプリケーションに対する呼び出しを提供する。
【００１８】
サーバとして、データ処理システム２００は、例えば拡張双方向エグゼクティブ（ＡＩＸ（Ｒ））オペレーティング・システムまたはＬＩＮＵＸ（Ｒ）（ＬｉｎｕｘはＬｉｎｕｓ  Ｔｏｒｖａｌｄｓの商標）オペレーティング・システムで実行中のＩＢＭ（Ｒ）ｅＳｅｒｖｅｒ（ＴＭ）ｐＳｅｒｉｅｓ（Ｒ）コンピュータ・システムである（ｅＳｅｒｖｅｒ、ｐＳｅｒｉｅｓおよびＡＩＸは、ＩＢＭ  Ｃｏｒｐｏｒａｔｉｏｎの商標）。データ処理システム２００は、処理ユニット２０６に複数のプロセッサを含む対称型マルチプロセッサ（ＳＭＰ）システムであってよい。或いは、単一プロセッサ・システムを使用することができる。
【００１９】
オペレーティング・システムに対する命令、オブジェクト指向プログラミング・システムおよびアプリケーションまたはプログラムは、ＨＤＤ  ２２６などの記憶装置に配置されて、処理ユニット２０６により実行するために主メモリ２０８にロードすることができる。本発明の実施形態の処理は、処理ユニット２０６により、例えば主メモリ２０８、ＲＯＭ  ２２４などのメモリまたは１つまたは複数の周辺デバイス２２６および２３０に置くことのできるコンピュータ有効プログラム・コードを使用して実行される。
【００２０】
当業者には、図１および２にあるハードウェアは実施態様により異なる場合があることが理解されよう。他の内部ハードウェアまたはフラッシュ・メモリ、等価の不揮発性メモリまたは光ディスク・ドライブなどの周辺デバイスを、図１および２に示すハードウェアに加えて、またはこれらの代わりに使用することができる。また、本発明の処理は、マルチプロセッサ・データ処理システムに適用することができる。
【００２１】
いくつかの説明のための実施例では、データ処理システム２００は、オペレーティング・システム・ファイルまたはユーザ生成によるデータ或いはその両方を記憶するための不揮発性メモリを提供するためにフラッシュ・メモリにより構成される携帯情報端末（ＰＤＡ）であってよい。
【００２２】
バス・システムは、図２に示すようなバス２３８またはバス２４０などの１つまたは複数のバスから構成することができる。当然ながら、バス・システムは、いかなるタイプの通信構成またはアーキテクチャに取り付けられた、異なる構成要素またはデバイス間においてデータを転送する、いかなるタイプの通信構成またはアーキテクチャを使用して実施することもできる。通信ユニットは、図２のモデム２２２またはネットワーク・アダプタ２１２などの、データを送信および受信するために使用される１つまたは複数のデバイスを含むことができる。メモリは、例えば図２のＮＢ／ＭＣＨ  ２０２にあるような主メモリ２０８、ＲＯＭ２２４、またはキャッシュであってよい。図１および２に示す実施例および上記実施例は、アーキテクチャ上の制限を暗示することは意味しない。例えば、データ処理システム２００は、ＰＤＡの形態をとることに加えて、タブレット・コンピュータ、ラップトップ・コンピュータまたは電話機であってもよい。
【００２３】
図３は、ＲＡＩＤストレージ・サブシステムを示す。ＲＡＩＤシステム３００は、図１のディスク・アレイ１０８の一例である。ＲＡＩＤシステム３００は、データの完全性を向上させるためにデータの複数のコピーが複数の異なる記憶装置に記憶される、データ冗長システムである。元のデータと冗長データの両方（欠陥データを回復するために元のデータと連動して使用することのできる複製データまたはパリティ・データ）は、複数のディスク・ドライブに記憶される。保存またはバックアップされるべきデータは、通常は、ディスク・ドライブ３０４、３０６、３０８および３１０などのような複数のディスク・ドライブにまたがって元のデータと冗長データを記憶する方法を管理する、直接アクセス記憶装置（ＤＡＳＤ）コントローラ３０２によりホスト・データ処理システムから受信される。
【００２４】
ＲＡＩＤアーキテクチャまたは技術にはいくつかの異なるタイプがあり、それぞれが様々なコスト上の利益と性能上のトレードオフを提供する。例えばＲＡＩＤ  １は、単一論理ドライブから、ドライブ３０４と３０６などのような２つの物理デバイスにまたがりデータを複製するデータのミラーリングの概念を使用する。これにより、同じデータを含んでいる一対のドライブが作成される。これらの物理デバイスの１つが故障した場合でも、データは残りのディスク・ドライブから入手可能である。ＲＡＩＤ  ３は、すべてのデータ・ドライブにまたがりデータをストライプする。パリティ・データは、別個のパリティ・ドライブに記憶される。１つのディスク・ドライブが故障した場合、データを再構築するためにパリティ・データを使用することができる。ＲＡＩＤ  ４は、ＲＡＩＤ３によってなされるようなバイトレベルのストライプではなく複数のドライブにまたがりデータのブロックレベルのストライプを使用することを除いて、ＲＡＩＤ  ３に類似している。データのストライプに対してより大きなブロックを使用することにより、性能が向上する。ＲＡＩＤ  ５は、ブロックレベルのストライプと分散されたパリティとを使用する。データとパリティ情報の両方が全てのディスクにまたがり拡散され、それによりＲＡＩＤ  ３およびＲＡＩＤ  ４で発生する可能性のある専用パリティ・ディスクのボトルネックが解消され、また追加の専用パリティ・ディスクが解消される。ＲＡＩＤ  ６はＲＡＩＤ  ５と類似しているが、全てのディスクにまたがり拡散された第２のパリティ方式を使用し、したがって、極度に高い障害およびドライブ故障耐性を提供する。ＲＡＩＤ  ０は、データ冗長性は提供しないが、完全性に関して言及されるべきである。その代わりに、これは、大きな論理ドライブを形成するために複数の物理ドライブが連結されることを可能にし、複数のドライブにまたがりデータのブロックをインタリーブするためにデータのストライプが使用される。したがってこのレイアウトは、論理ドライブのデータの連続的な読み取りの結果、複数の物理ドライブのそれぞれに対するパラレル読み取りが生じる点で、性能を向上させる。
【００２５】
ＲＡＩＤセット（またはディスク・セット）は、１つの特徴によりグループ化された特定数のドライブであり、アレイ全体またはアレイの部分集合を含むことができる。ＲＡＩＤシステムを構築する際、ユーザは、図３で既に説明したＲＡＩＤアーキテクチャの１つから実施するために、データ保護レベルまたは「ＲＡＩＤフレーバ」を選択することができる。例えば３つ以上のドライブがｒａｉｄのために使用可能な場合、ユーザは、１つのドライブに障害が生じた場合に記憶されているデータを保護する、ＲＡＩＤ  ５アーキテクチャを選択することができる。１つのドライブに故障が生じた場合、全てのデータは依然として完全に使用可能である。これは、依然として使用可能なパリティ情報から消失したデータが再計算されるからである。しかし、２つのドライブに故障が生じた場合、そのデータは失われる。その結果、ユーザがより高い故障耐性を希望しており、尚且つｒａｉｄするために４つ以上のドライブが入手可能な場合、ユーザは最大２つのドライブに故障が生じた場合に記憶されているデータを保護するＲＡＩＤ  ６アーキテクチャを選択することができる。
【００２６】
使用されるＲＡＩＤ実施態様に関わらず、各ＲＡＩＤ構成はＲＡＩＤセットの最小ドライブの容量により依然として制約を受ける。これは、その最小ドライブの容量が、ＲＡＩＤによりどれだけのデータを保護できるかを決定するからである。本発明の態様は、上記制約を緩和または解消し、それによって所与のＲＡＩＤセットにおける任意のサイズのドライブの保護されたデータの量でも最大限にする、アモルファスＲＡＩＤアルゴリズムを提供することによりこの制約に対処する。したがって、既存のＲＡＩＤ構成技術は、ユーザが所望のＲＡＩＤアーキテクチャを選択することによりデータ保護レベルを最大限にすることを可能にするが、本発明のアモルファスＲＡＩＤアルゴリズムは、ユーザがＲＡＩＤセットにおける保護されたデータの量を最大限にすることを可能にすることにより、既存の技術の上に拡張する。
【００２７】
本発明のアモルファスＲＡＩＤアルゴリズムは、最初に一次要素を「最小公倍数」概念によりそのサイズが決定されるデータのブロックと定義することにより、保護されたデータの量を最大限にする。最小公倍数の概念は、複数のドライブをデータの多数の同一サイズの容量ブロックに分割するために使用される。一次要素サイズは、パリティ・セット内の３つ以上のブロックの複数セットを最大限にするように、配列できる複数のブロックにドライブの容量を分割することにより決定される。さらに各パリティ・セットは、そのセットにある任意のハードドライブからの一次要素を１つだけ持つことができる。また、各ブロックのサイズは、到達したパリティ・セット配列によりドライブの全てでカバーされる容量が最大限になるようにするべきである。以下の例は、ドライブ・セットのうちの最小ドライブの容量を説明のために一次要素サイズとして使用するが、本発明はそのような実施形態には限定されず、保護されたデータの量を最大限にするために物理ドライブを駆動するためのいかなるアルゴリズムでも使用することができる。
【００２８】
一次要素サイズが一度定義され、データ・ブロックが決定されると、それらブロックは、有効ＲＡＩＤパリティ・セットに組織化することができる。上記のように、有効ＲＡＩＤパリティ・セットは、３つのハードドライブの最小値が各セットで表されることを必要とする。さらに追加の制約がブロックの組織化に適用されるが、その制約は、いかなる所与のパリティ・セットにおいてもハードドライブが複数回表されることを必要とする。したがって、所与のパリティ・セットは、同じドライブ上に２つのブロックを有することはない。１つのハードドライブがその上に２つのパリティ・ブロックを有することになる場合、そのドライブは、パリティ・セットについて故障の単一点を表す。パリティ・セットの目的は単一故障、或いはＲＡＩＤ  ６の場合は２つの故障に対してドライブを保護することなので、この方法は、最低限、その制約をサポートする必要がある。
【００２９】
単純にドライブを隣り合わせに並べる現行ＲＡＩＤ構成技術とは対照的に、本発明の機構は、保護されたデータの量を最大限にするために、複数のドライブ・ブロックを複数のパリティ・セットに配列する。パリティ・セットは、パリティ・ストライプにより保護された一群のデータである。パリティは、データが消失したか、或いは上書きされたかを判定するために、複数のコンピュータ間で移動または送信されたデータをチェックすることにより、記憶されたデータの完全性を検証する技術である。パリティ保護は、消失した情報を既存のデータから再計算するために使用することができる。パリティを記憶しているディスクが消失した場合、そのパリティはそのデータから再生成することができる。複数のデータ・ディスクのうちの１つが消失した場合、データは、存続するデータ・ディスクの内容を追加し、次いで記憶されたパリティからその結果を差し引くことにより再生成することができる。
【００３０】
ボード上で使用されるコントローラのタイプにより、アモルファスＲＡＩＤアルゴリズムは、ハードウェア実施形態、ソフトウェア実施態様、またはそれら両方の組み合わせとして実施することができる。例えばアモルファスＲＡＩＤアルゴリズムは、ハードドライブの分割を処理するチップセットを複数ブロックに組み込み、それらのブロックの配列を有効パリティ・セットに組み込む、ハードウェアＲＡＩＤ  ＳＣＳＩコントローラの形態で実施することができる。したがって、アモルファスＲＡＩＤアルゴリズムを実施するための論理を有するＲＡＩＤ  ＳＣＳＩコントローラをＤＡＳＤコントローラ３０２として使用することができ、それによりハードウェア・ソリューション全体が提供される。アモルファスＲＡＩＤアルゴリズムは、それら複数のドライブを分割してそれら複数のブロックを配列するよう処理能力を提供するためにシステムのＣＰＵを使用するソフトウェア・パッケージの形態でも実施することができる。この実施態様は、コンピュータ上に直接置かれたそれぞれのハードウェアを介してＲＡＩＤ機能を有しない統合ドライブエレクトロニクス（ＩＤＥ）コントローラまたはシリアル拡張技術アタッチメント（ＳＡＴＡ）コントローラなどのＤＡＳＤコントローラを使用することを可能にする。したがって、ＤＡＳＤコントローラ３０２は、アモルファスＲＡＩＤアルゴリズムをソフトウェア・ソリューションとして実施して、ＩＤＥまたはＳＡＴＡとして実施することができる。
【００３１】
さらに、アモルファスＲＡＩＤアルゴリズムは、顧客が様々なサイズのＤＡＳＤを使用することを必要とするか、または希望する状況で使用することができる。例えば、この状況は、古いドライブは依然として機能するが、最早サポートされておらず、容量は最早使用可能でない場合に起こりうる。古いドライブ全てを交換するのではなく、顧客は、古いドライブが故障した際にそれらを交換し、依然として最大のデータ保護量を維持することができる。
【００３２】
次に図４を参照すると、ＲＡＩＤセットを構成する前の直接アクセス記憶装置（ＤＡＳＤ）を説明するブロック図の一例が示されている。特に、直接アクセス記憶装置４００は、図３のＲＡＩＤシステム３００などの、ディスク・ドライブがＲＡＩＤシステムに構成される前の時点の一群のディスク・ドライブである。この説明のための実施例では、直接アクセス記憶装置４００は、ドライブＡ  ４０２、ドライブＢ  ４０４、ドライブＣ  ４０６、ドライブＤ  ４０８の４つのディスク・ドライブを含む。ドライブＡ  ４０２とドライブＢ  ４０４は、それぞれ７０ＧＢの使用可能なドライブ空間からなり、ドライブＣ  ４０６とドライブＤ  ４０８は、それぞれ３５ＧＢの使用可能なドライブ空間からなる。
【００３３】
図５は、図４のＤＡＳＤに対して既存のＲＡＩＤ構成技術を使用することにより生じた、保護されたドライブ空間と保護されないドライブ空間とを説明するブロック図である。典型的なＲＡＩＤ構成技術により、所与のＲＡＩＤセットにある各ドライブに対してＲＡＩＤ可能なデータの量は、そのセット内の最小ドライブの容量により異なる。パリティ・ストライプがドライブＡ  ５０２、ドライブＢ  ５０４、ドライブＣ  ５０６およびドライブＤ  ５０８などの各ドライブのビットから構成されているので、現行ＲＡＩＤ構成は最小ドライブ容量に限られる。４つのドライブのうちの３つは記憶したデータを含み、それらドライブのうちの１つは、他の３つのデータ・ビットに基づいて数学的アルゴリズムを含むパリティ・ビットを記憶する。この説明のための実施例では、最小ドライブは、それぞれに３５ＧＢからなるドライブＣ  ５０６とドライブＤ  ５０８である。したがって、典型的なＲＡＩＤ構成技術を使用すると、最大ＲＡＩＤ可能空間はドライブごとに３５ＧＢとなる。ドライブＡ  ５０２とドライブＢ  ５０４の両方の超過分の容量がそのセットの最小ドライブを超えるので、典型的なＲＡＩＤ技術は、ドライブＡ  ５０２とドライブＢ  ５０４の両方にある残りの３５ＧＢのドライブ空間をパリティすることができない。その結果、この超過分の容量のビットを比較するための、ドライブＣ  ５０６とドライブＤ  ５０８のドライブ空間は不充分である。結果として生じるＲＡＩＤ構成は、ドライブＡ  ５０２、ドライブＢ  ５０４、ドライブＣ  ５０６、およびドライブＤ  ５０８それぞれの３５ＧＢを保護する。図示するように、ドライブＡ  ５０２の超過分の容量（３５ＧＢ）とドライブＢ  ５０４の超過分の容量（３５ＧＢ）は、パリティ保護なしに合計７０ＧＢに対して保護されていない。
【００３４】
図６は、本発明の説明のための実施形態により、図４のＤＡＳＤに対してアモルファスＲＡＩＤ構成を使用した結果保護されたドライブ空間と保護されないドライブ空間とを説明するブロック図の一例である。本発明のアモルファスＲＡＩＤ方法により、パリティ保護下のデータ量は、典型的なＲＡＩＤ構成において図５で保護されたデータの量を超えて増やすことができる。この特定の実施例では、図４のドライブＡ  ４０２、ドライブＢ  ４０４、ドライブＣ  ４０６、およびドライブＤ  ４０８のドライブ空間の全てを保護することができる。したがって、ドライブＡ  ６０２とドライブＢ  ６０４のそれぞれのドライブ空間の７０ＧＢと、ドライブＣ  ６０６とドライブＤ  ６０８のそれぞれの３５ＧＢとを合計２１０ＧＢに対して保護することができる。したがって、図５に示すように、アモルファスＲＡＩＤ方法を使用して保護されないドライブ空間はないが、７０ＧＢは典型的なＲＡＩＤ構成を使用して保護されない。
【００３５】
アモルファスＲＡＩＤ方法により、ＲＡＩＤアーキテクチャの同じ制約が継承され、適用可能になることに留意されたい。例えば図４に示すように４つのドライブが急遽使用可能な場合、ユーザは、図５に示すように典型的なＲＡＩＤ構成（４つのドライブ構成要素が隣り合わせになったパリティ・ストライプ）を有するか、アモルファスＲＡＩＤ構成（３つのドライブ構成要素６１０、６１２および６１４を有するパリティ・ストライプ）により保護されたデータの量を最大限にするかを選ぶことができる。換言すれば、図４のＤＡＳＤ  ４００の典型的なＲＡＩＤ構成により図５に示すような２つのパリティ・ストライプの耐性の高いＲＡＩＤ  ６アーキテクチャが生じる場合があるが、アモルファスＲＡＩＤ構成は、データ保護レベルがより低い（パリティ・ストライプ１つのみ）ＲＡＩＤ  ５アーキテクチャになるが、パリティ保護下にあるドライブ空間はより多くなる。したがって、図６に示すようにアモルファス・アルゴリズムを使用すると、ユーザは、急遽使用されるドライブ容量を最大限にすることができるが、その結果はアレイに対するＲＡＩＤ  ５のアーキテクチャである。対照的に、典型的なＲＡＩＤ技術はパリティ保護されていない７０ＧＢを生じるが、アレイはＲＡＩＤ  ６構成になる。その結果、２つのドライブが故障する場合があり、データは依然として維持される。したがって、２つの３５ＧＢドライブと２つの７０ＧＢドライブとを有するユーザは、４つのドライブ構成要素を有するパリティ・ストライプの超過分の容量を浪費するのではなく、３つのドライブ構成要素により保護されたデータの量を最大限にし、容量の全てを急遽使用することを選ぶことができる。
【００３６】
図７は、ＲＡＩＤを構成する前の直接アクセス記憶装置（ＤＡＳＤ）を説明するブロック図の一例である。直接アクセス記憶装置７００は、図３のＲＡＩＤシステム３００などの、ディスク・ドライブがＲＡＩＤシステムに構成される前のあるポイントにある一群のディスク・ドライブである。この説明のための実施例では、直接アクセス記憶装置７００は、ドライブＡ  ７０２、ドライブＢ  ７０４、ドライブＣ  ７０６、ドライブＥ  ７０８、ドライブＦ  ７１０の５つのディスク・ドライブから構成される。ドライブＡ  ７０２、ドライブＢ  ７０４、およびドライブＥ  ７０８は、それぞれ７０ＧＢのドライブ空間からなり、ドライブＣ  ７０６は３５ＧＢのドライブ空間からなり、ドライブＦ  ７１０は１４０ＧＢのドライブ空間からなる。
【００３７】
図８および９は、本発明の説明のための実施形態によるアモルファスＲＡＩＤ構成方法を説明するブロック図である。特に図８は、最小公倍数によるドライブ空間の分割を説明するブロック図の一例である。図７のＤＡＳＤ  ７００の各ドライブは、複数の一次要素またはブロックＡ１  ８０２、Ａ２  ８０４、Ｂ１  ８０６、Ｂ２  ８０８、Ｃ  ８１０、Ｅ１  ８１２、Ｅ２  ８１４、Ｆ１  ８１６、Ｆ２  ８１８、Ｆ３  ８２０およびＦ４  ８２２に分割される。この説明のための実施例で使用される一次要素のサイズは、ＤＡＳＤの最小ドライブの容量（図７の３５ＧＢドライブＣ  ７０６）である。しかしこの一次要素サイズは、最小ドライブの容量になるよう要求されるわけではなく、他のデータ・ブロックのサイズを使用することができる。上述の通り、一次要素のサイズは、パリティ・セットの３つ以上のブロックの複数のセットを最大限にする方法で、それら複数のドライブを分割する、最小公倍数の概念を利用することにより得ることができる。ここで、各パリティ・セットは、いかなる所与のハードドライブからでもデータのブロックを１つだけ有する。また、それらブロックのサイズは、パリティ・セット配列を通してすべてのドライブでカバーされる容量が最大限になるようなサイズである。
【００３８】
図９は、本発明のアモルファスＲＡＩＤ構成を使用して、保護されたデータの量を最大限にするために、図８で有効パリティ・セットに作成されたドライブ空間ブロックの組織を説明するブロック図の一例である。図８でドライブ・ブロックが一度決定されると、それらブロックは有効ＲＡＩＤパリティ・セットに組織化される。３つの物理ドライブの最小値は有効ＲＡＩＤパリティ・ストライプを作ることが必要となるので、ブロックＡ１  ９０２、Ａ２  ９０４、Ｂ１  ９０６、Ｂ２  ９０８、Ｃ  ９１０、Ｅ１  ９１２、Ｅ２  ９１４、Ｆ１  ９１６、Ｆ２  ９１８、Ｆ３  ９２０およびＦ４  ９２２は、いかなる所与のパリティ・セットで表される少なくとも３つの物理的に異なるドライブを有する方法で複数のブロックを積み重ねることにより組織化される。さらなる制約が複数ブロックの組織化に適用される。組織化には、いかなる所与のパリティ・セットにおける物理ドライブ（例えば、ドライブＡ）でも、そのセットでは一度しか表されないことが必要とされる。換言すれば、パリティ・セットは、同じドライブの２つのブロック（例えば、Ａ１およびＡ２）を含むことはできない。
【００３９】
例えば図９に示すように、保護されたデータの量を最大限にするために、複数のブロックは４つの物理ドライブ（９３０、９３２、９３４、９３６）にまたがり３つの有効パリティ・セット（９２４、９２６、９２８）に配列される。パリティ・セット１  ９２４は、ブロックＡ１  ９０２、Ｃ  ９１０およびＦ２  ９１８を含み、パリティ・セット２  ９２６は、ブロックＢ１  ９０６、Ｅ１  ９１２およびＦ３  ９２０を含み、パリティ・セット３  ９２８は、ブロックＡ２  ９０４、Ｂ２  ９０８、Ｅ２  ９１４およびＦ４  ９２２を含む。各ドライブ（Ａ、Ｂ、Ｃ、ＥおよびＦ）はパリティ・セット９２４、９２６および９２８のそれぞれで一度だけ表されるので、図９のこのアモルファスＲＡＩＤ構成は、所与のパリティ・セットで２度表すことのできる物理ドライブはないという制約にも準拠する。
【００４０】
図９のＲＡＩＤ構成により、合計３８５ＧＢのドライブ空間から保護されていない３５ＧＢ（Ｆ１  ９１６）だけが除外される。対照的に、典型的なＲＡＩＤ構成は、図７に示す５つのドライブ全ての３５ＧＢセクションだけを保護することができるか、或いは４つのドライブの７０ＧＢを保護してＲＡＩＤセットから小さい３５ＧＢドライブを除外することができる。合計３８５ＧＢのドライブ空間から、上述の第１の典型的なＲＡＩＤ構成では２１０ＧＢが保護されないままであり、第２の典型的なＲＡＩＤ構成では１０５ＧＢが保護されないままである。したがって、本発明のアモルファスＲＡＩＤアルゴリズムは、既存のＲＡＩＤ構成方法によりドライブ上で保護されたデータの量を増やすことを可能にする。
【００４１】
図１０は、本発明の説明のための実施形態によりＲＡＩＤストレージ・システムで保護されたデータの量を最大限にするためのプロセスのフローチャートである。このプロセスは、ユーザからＤＡＳＤのＲＡＩＤ構成を開始する要求を受信すること（ステップ１００２）から始まる。この要求を受信したことに応答して、本発明のアモルファスＲＡＩＤ方法を使用して保護されたデータの量を最大限にする選択肢を含むインターフェースがユーザに提示される（ステップ１００４）。このインターフェースは、典型的なＲＡＩＤアーキテクチャ（例えば、ＲＡＩＤ  ０、１、２など）のメニュー、並びに保護されたデータを最大限にするための新しいアモルファスＲＡＩＤ名称を含むことができる。インターフェースでユーザ入力を受信する際に、それらドライブで保護されたデータの量を最大限にするために、ユーザがアモルファスＲＡＩＤ構成を選択したか否かの判定が行われる（ステップ１００６）。それらドライブでのデータの保護レベルを最大限にするためにユーザが典型的なＲＡＩＤ構成を選択した場合、その後の終了プロセスによりＤＡＳＤを構成するために典型的なＲＡＩＤ構成技術が使用される（ステップ１００８）。
【００４２】
ステップ１００６に戻って、ユーザがアモルファスＲＡＩＤ構成により保護されたデータの量を最大限にすることを選択した場合、それらドライブは、サイズが最小公倍数の概念に基づいている複数の一次要素（データ・ブロック）に分割される（ステップ１０１０）。最小公倍数の概念は、３つ以上の物理ドライブにまたがり少なくとも１つの有効パリティ・ストライプがあるようにする方法でそれらドライブを分割することを可能にする。それら複数の一次要素またはデータ・ブロックは、保護されたデータの量を最大限にするために複数のパリティ・セットに組織化される（ステップ１０１２）。保護されたデータの量を最大限にするためのブロックの組織化に関する制約は、いかなる所与のパリティ・セットで表される少なくとも３つの物理的に異なるドライブを有し、いかなる所与のパリティ・セットにも物理ドライブが一度以上表されないような方法でブロックを配列することを含む。
【００４３】
本発明は、完全なハードウェア実施形態、完全なソフトウェア実施形態、またはハードウェア要素とソフトウェア要素の両方を含む１つの実施形態の形態をとることができる。さらに本発明は、コンピュータまたはいかなる命令実行システムにより、またはこれらに関連付けて使用するためのプログラム・コードを提供するコンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラム製品の形態をとることができる。この説明のために、コンピュータ使用可能またはコンピュータ可読媒体は、命令実行システム、装置またはデバイスにより、またはこれらに関連付けて使用するためのプログラムを含み、記憶し、通信し、伝播し、または輸送することのできるいかなる有形装置であってもよい。
【００４４】
媒体は、電子システム、磁気システム、光システム、電磁気システム、赤外線システムまたは半導体システム（または装置またはデバイス）または伝播媒体であってよい。コンピュータ可読媒体の例には、半導体または固体メモリ、磁気テープ、取り外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、固定磁気ディスクおよび光ディスクが含まれる。光ディスクの現行の例には、コンパクト・ディスク−読み取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク−読み取り／書き込み（ＣＤ−Ｒ／Ｗ）、およびＤＶＤが含まれる。
【００４５】
プログラム・コードを記憶するかまたは実行するか、或いはその両方を行うのに適したデータ処理システムは、システム・バスを介してメモリ素子に直接的または間接的に連結された少なくとも１つのプロセッサを含む。メモリ素子は、プログラム・コードの実際の実行中に利用されるローカル・メモリと、大容量記憶装置と、実行中に大容量記憶装置からコードを取り出す必要のある回数を減らすために少なくとも一部のプログラム・コードの一時記憶域を提供するキャッシュ・メモリとを含むことができる。
【００４６】
入出力またはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、これらに限定されない）は、直接的に、または介入するＩ／Ｏコントローラを介してシステムに連結することができる。
【００４７】
ネットワーク・アダプタは、介入する専用ネットワークまたは公衆ネットワークを介して他のデータ処理システムまたは遠隔プリンタまたは記憶装置にデータ処理システムを連結することのできるシステムにも連結することができる。モデム、ケーブル・モデムおよびイーサネット（登録商標）・カードは、現行で入手可能なタイプのネットワーク・アダプタのいくつかである。
【００４８】
以上、本発明の説明は、例示および説明のために提示されており、網羅的なものとすることも、本発明を開示された形態に限定することも意図されていない。当業者には、多くの修正形態と変形形態が明らかになろう。この実施形態は、本発明の原理、実際の適用例を最も良く説明し、他の当業者が、企図される特定の用法に適した様々な修正形態を有する様々な実施形態に関して本発明を理解できるようにするために選ばれ、説明されたものである。
【図面の簡単な説明】
【００４９】
【図１】本発明を実施することのできるデータ処理システムのネットワーク例の絵図である。
【図２】本発明の説明のための実施形態により実施することのできるデータ処理システムのブロック図の一例である。
【図３】本発明の説明のための実施形態により実施することのできるＲＡＩＤ記憶サブシステムを説明するブロック図の一例である。
【図４】ＲＡＩＤを構成する前の直接アクセス記憶装置（ＤＡＳＤ）を説明するブロック図の一例である。
【図５】図４のＤＡＳＤに対して既存のＲＡＩＤ構成技術を使用することにより生じる保護されたドライブ空間と保護されないドライブ空間とを説明するブロック図である。
【図６】本発明の説明のための実施形態による、図４のＤＡＳＤに対してアモルファスＲＡＩＤ構成を使用することにより生じる保護されたドライブ空間と保護されないドライブ空間とを説明するブロック図の一例である。
【図７】ＲＡＩＤを構成する前の直接アクセス記憶装置（ＤＡＳＤ）を説明するブロック図の一例である。
【図８】本発明の説明のための実施形態による、最小公倍数に応じたドライブ空間の分割を説明するブロック図の一例である。
【図９】本発明の説明のための実施形態による、保護されたデータの量を最大限にするための、図８で作成されたドライブ空間ブロックの有効パリティ・セットへの組織化を説明するブロック図の一例である。
【図１０】本発明の説明のための実施形態による、ＲＡＩＤ記憶システムにおける保護されたデータの量を最大限にする処理のフローチャートである。
【符号の説明】
【００５０】
１０２  ネットワーク
１０４  サーバ
１０６  サーバ
１１０  クライアント
１１２  クライアント
１１４  クライアント
１０８  ディスク・アレイ
２０６  処理ユニット
２０８  主メモリ
２１０  グラフィック・プロセッサ
２１２  ＬＡＮアダプタ
２１６  オーディオ・アダプタ
２２０  キーボードおよびマウス・アダプタ
２２２  モデム
２２６  ハードディスク・ドライブ
２３２  ＵＳＢおよび他のポート
２３４  ＰＣＩ／ＰＣＩｅデバイス
２３８  バス
２４０  バス
【図１】
2007265409.tif 000003
【図２】
2007265409.tif 000004
【図３】
2007265409.tif 000005
【図４】
2007265409.tif 000006
【図５】
2007265409.tif 000007
【図６】
2007265409.tif 000008
【図７】
2007265409.tif 000009
【図８】
2007265409.tif 000010
【図９】
2007265409.tif 000011
【図１０】
2007265409.tif 000012