(57)【特許請求の範囲】
【請求項１】
コントローラに接続されたディスクドライブを自動的にコンフィギュレ―ションするためのコンピュータで実施される方法であって、
コントローラに接続された各ディスクドライブを前記コントローラによって走査するステップであって、当該走査によって各ディスクドライブの物理的容量及びディスクドライブからのコンフィギュレーションデータが得られる、前記走査するステップと、
前記コンフィギュレーションデータを解析して、１又はそれ以上のコンフィギュレ―ションされていないディスクドライブを前記接続されたディスクドライブから前記コントローラによって見つけだすステップと、
複数のＲＡＩＤレベルのうちの１つに従って、前記コンフィギュレ―ションされていないディスクドライブに関するコンフィギュレーションを前記コントローラによって準備するステップであって、
（１）１又はそれ以上のパラメータ設定を各コンフィグレーションされていないディスクドライブに関連付けるステップであって、前記パラメータ設定は、冗長性が前記ディスクドライブによって必要とされるか又は必要とされないかを示す設定、冗長方法がミラーリング又はパリティのいずれかを示す設定、及びスペア処置の設定を含む、前記関連付けるステップと、
（２）コンフィギュレーションされていないディスクドライブの数及び前記パラメータ設定に基づき、特定のＲＡＩＤレベルで前記コンフィギュレーションされていないディスクドライブをコンフィギュレーションするステップであって、前記特定のＲＡＩＤレベルは前記コンフィギュレーション前のＲＡＩＤレベルと異なりうる、前記コンフィギュレーションするステップと
を含む、前記準備するステップと、
前記コンフィギュレーションされたコンフィギュレーションデータを前記コントローラによって前記ディスクドライブにストアするステップと
を含む、前記方法。
【請求項２】
前記コンフィギュレ―ションされていないディスクドライブに関するコンフィギュレーションを準備するステップが前記コントローラに格納された所定の規則に基づいて前記コントローラによって自動的に実行されるステップにおいて、
コンフィギュレ―ションされていないディスクドライブが１つだけ見つかったとき、単一ドライブとして（ＪＢＯＤ）、前記コンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションするステップと、
前記コンフィギュレ―ションされていないディスクドライブが、冗長がないことを示すパラメータ設定に関連付けされているとき、ＲＡＩＤレベル０に従って、前記コンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションするステップと、
前記コンフィギュレ―ションされていないディスクドライブが、ミラーリングを示すパラメータ設定に関連付けされているとき、ＲＡＩＤレベル０＋１に従って、前記コンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションするステップと、
前記コンフィギュレ―ションされていないディスクドライブが、ミラーリングが要求されていないことを示すパラメータ設定に関連付けされているとき、ＲＡＩＤレベル５に従って、前記コンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションするステップと
を更に含む、請求項１に記載の方法。
【請求項３】
前記コンフィギュレ―ションされていないディスクドライブが、スペアディスクドライブが要求されることを示すパラメータ設定に関連付けされているときに、下記ステップ、即ち
スペアディスクドライブとして最大のコンフィギュレ―ションされていないディスクドライブを選択するステップと、
スペアディスクドライブによってコンフィギュレ―ションされていないディスクドライブの数を減少させるステップと、
パラメータ設定に従って、コンフィギュレ―ションされていないディスクドライブの数を支持するＲＡＩＤレベルで、前記コンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションするステップと
を更に実行する、請求項２に記載の方法。
【請求項４】
ランタイムで、少なくとも１つのディスクドライブが前記コントローラに追加されたことを前記コントローラによって検出するステップと、
ランタイムで、１又はそれ以上の死んだドライブが前記コントローラに接続されていることを前記コントローラによって判断するステップと、
ランタイムで、各死んだドライブを前記追加されたディスクドライブの１つに前記コントローラによって置換するステップと
を含む、請求項１に記載の方法。
【請求項５】
データ記憶システムにおいて、コントローラに接続されたディスクドライブを自動的にコンフィギュレ―ションするための装置であって、
コントローラに接続された各ディスクドライブを走査する手段であって、当該走査によって各ディスクドライブの物理的容量及びディスクドライブからのコンフィギュレーションデータが得られる、前記走査する手段と、
前記コンフィギュレーションデータを解析して、１又はそれ以上のコンフィギュレ―ションされていないディスクドライブを前記接続されたディスクドライブから見つけだす手段と、
複数のＲＡＩＤレベルのうちの１つに従って、前記コンフィギュレ―ションされていないディスクドライブに関するコンフィギュレーションを準備する手段であって、
（１）１又はそれ以上のパラメータ設定を各コンフィグレーションされていないディスクドライブに関連付ける手段であって、前記パラメータ設定は、冗長性が前記ディスクドライブによって必要とされるか又は必要とされないかを示す設定、冗長方法がミラーリング又はパリティのいずれかを示す設定、及びスペア処置の設定を含む、前記関連付ける手段と、
（２）コンフィギュレーションされていないディスクドライブの数及び前記パラメータ設定に基づき、特定のＲＡＩＤレベルで前記コンフィギュレーションされていないディスクドライブをコンフィギュレーションする手段であって、前記特定のＲＡＩＤレベルは前記コンフィギュレーション前のＲＡＩＤレベルと異なりうる、前記コンフィギュレーションする手段と
を含む、前記準備する手段と、
前記コンフィギュレーションされたコンフィギュレーションデータを前記コントローラによって前記ディスクドライブにストアする手段と
を含む、前記装置。
【請求項６】
前記コンフィギュレ―ションされていないディスクドライブに関するコンフィギュレーションを準備する手段が前記コントローラに格納された所定の規則に基づいて前記コントローラによって自動的に実行される手段において、
コンフィギュレ―ションされていないディスクドライブが１つだけ見つかったとき、単一ドライブとして（ＪＢＯＤ）、前記コンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションする手段と、
前記コンフィギュレ―ションされていないディスクドライブが、冗長がないことを示すパラメータ設定に関連付けされているとき、ＲＡＩＤレベル０に従って、前記コンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションする手段と、
前記コンフィギュレ―ションされていないディスクドライブが、ミラーリングを示すパラメータ設定に関連付けされているとき、ＲＡＩＤレベル０＋１に従って、前記コンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションする手段と、
前記コンフィギュレ―ションされていないディスクドライブが、ミラーリングが要求されていないことを示すパラメータ設定に関連付けされているとき、ＲＡＩＤレベル５に従って、前記コンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションする手段と
を更に含む、請求項５に記載の装置。
【請求項７】
前記コンフィギュレ―ションされていないディスクドライブが、スペアディスクドライブが要求されることを示すパラメータ設定に関連付けされているときに、下記手段、即ち
スペアディスクドライブとして最大のコンフィギュレ―ションされていないディスクドライブを選択し、
スペアディスクドライブによってコンフィギュレ―ションされていないディスクドライブの数を減少させ、
パラメータ設定に従って、コンフィギュレ―ションされていないディスクドライブの数を支持するＲＡＩＤレベルで、前記コンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションする
手段を更に含む、請求項６に記載の装置。
【請求項８】
ランタイムで、少なくとも１つのディスクドライブが前記コントローラに追加されたことを検出する手段と、
ランタイムで、１又はそれ以上の死んだドライブが前記コントローラに接続されていることを判断する手段と、
ランタイムで、各死んだドライブを前記追加されたディスクドライブの１つと置換する手段と
を含む、請求項５に記載の装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は一般的には、周辺コントローラに関する。より詳細には、本発明は、ＲＡＩＤ（Redundant Array of Independent Disks）コントローラの自動コンフィギュレーションに関する。
【０００２】
【従来の技術】
ＲＡＩＤは、大容量記憶装置のＩ／Ｏ性能及び信頼性を改善するために使用される技術である。データは、１又はそれ以上のディスクの故障にもかかわらず、データへの即時のアクセスを提供するために複数のディスクにストアされる。ＲＡＩＤ技術は典型的には、分類（taxomony）の技術に関連付けられ、各技術はＲＡＩＤレベルと呼ばれる。６つの基本的なＲＡＩＤレベルがあり、各々、それ自身の有利点と不利点とを有する。ＲＡＩＤレベル２は非標準ディスクを使用し、それ自体商業的に適していない。
【０００３】
ＲＡＩＤレベル０は「ストライピング」を採用し、データはアレイの複数のディスクにストアされる多数のストライプに分割される。この技術は、データにアクセスする際により高い性能を提供するが、ディスクの障害にとって必要とされる冗長性を提供しない。
【０００４】
ＲＡＩＤレベル１は「ミラーリング」を採用し、データの各ユニットは複製され、即ち別のディスクドライブに「ミラー化」される。ミラーリングは、２又はそれ以上のディスクドライブを必要とする。読み取り作業に関して、該読み取り作業は平行に実行されることができるので、この技術は有利である。ミラーリングの欠点は、それがストレージ効率の５０％しか達成しないことである。
【０００５】
ＲＡＩＤレベル３では、データブロックは、一組のドライブにストライプされる複数のストライプに区分けされる。別々のパリティドライブが、データブロクに関連付けられたパリティビットをストアするために使用される。パリティはデータ冗長性のために使用される。残りのドライブ及びパリティドライブのデータからの単一のドライブ障害があるときに、データは再生成されうる。このタイプのデータ管理は、それがミラーリングよりも少ないスペース及び単一のパリティドライブだけを要求する故に有利である。更に、データは、各ドライブから平行にアクセスされ、大きなファイル転送に関して有利である。しかしながら、それはアレイの各ドライブへのアクセスを要求するので、性能は、高いＩ／Ｏトランザクションアプリケーションに関して低い。
【０００６】
ＲＡＩＤレベル４では、完全なデータブロックが一つのディスクドライブに書き込まれる。各データブロックに関するパリティは単一のパリティドライブにストアされる。各ディスクが独立してアクセスされるので、この技術は高いＩ／Ｏトランザクションアプリケーションに関して有利である。この技術の欠点は単一のパリティディスクであり、該単一のパリティドライブが各書き込み作業のためにアクセスされる必要があるので、ボトルネックになる。これは、アレイのディスクにランダムに散乱した小さな多数のＩ／Ｏオペレーションがあるとき、特に重荷となる。
【０００７】
ＲＡＩＤレベル５では、データブロックは、複数のディスクドライブにストライプされる複数のストライプに区分される。データブロックに関するパリティはドライブに分散され、それによって、パリティを単一のディスクドライブにストアするレベル４に対する固有のボトルネックを解消する。この技術は、小さなデータファイルに関する早いスループットを提供するが、大きなデータファイルに関しては不十分な性能である。
【０００８】
典型的なデータストレージシステムは、１又はそれ以上のＲＡＩＤレベルに従って配列された多数のディスクストレージデバイスを有する。ＲＡＩＤコントローラは、ＲＡＩＤディスクドライブの１又はそれ以上のアレイを管理するために使用されるデバイスである。ＲＡＩＤコントローラは、各論理ドライブがＲＡＩＤレベルのうちの１つに従って管理された、論理ドライブ内にデータストレージシステム中の物理ドライブをコンフィギュレ―ションする責任がある。
【０００９】
ＲＡＩＤコントローラは、複雑であり且つコンフィギュレ―ションするのが困難である。これは、ある程度は、達成されうる多数の可能なコンフィギュレーションと、そのようなシステムをコンフィギュレ―ションするためにユーザによって要求される知識と、コントローラをコンフィギュレ―ションする際にユーザによって消費される時間のためである。１つのそのようなＲＡＩＤコントローラコンフィギュレーションプロシージャでは、システム初期化で多数のデバイスを自動的にコンフィギュレ―ションすることによってユーザの入力を軽減するために試みる自動コンフィギュレーションが提供される。しかしながら、この自動コンフィギュレーションは、非常に制限されており、及び全ての物理ディスクドライブが同じ物理的サイズのものであり且つ３乃至８の間のディスクドライブである場合にのみ作動する。この場合、自動コンフィギュレーションの特徴は、スペアドライブを備えていないＲＡＩＤレベル５システムドライブとして定義された単一のドライブグループとしてディスクドライブをコンフィギュレ―ションする。このコンフィギュレ―ションは、他のいかなる別のコンフィギュレーションをも提供しないように制限される。
【００１０】
【発明が解決しようとする課題】
従って、種々のタイプのＲＡＩＤレベルコンフィギュレーションに調整しうる自動ＲＡＩＤコントローラコンフィギュレーション機構と、種々の物理的次元を有するディスクドライブとの必要性が存在する。
【００１１】
【課題を解決するための手段】
本発明は、ＲＡＩＤコントローラに接続されたディスクドライブを自動的にコンフィギュレーションするための装置及び方法に関する。自動コンフィギュレーション機構は、システム初期化即ちブートアップとランタイムとの両方でＲＡＩＤコントローラに接続されたディスクドライブの十分なコンフィギュレーションを生成することができる。該機構は、ディスクドライブをコンフィギュレ―ションするために頑強な基準を用い、該ドライブを、１又はそれ以上のＲＡＩＤレベルと、ディスクアレイのオペレーションに影響する種々のデフォルト設定とに従ってコンフィギュレ―ションされることを可能にする。
【００１２】
好ましい実施形態では、自動コンフィギュレーション機構は、システム初期化で自動コンフィギュレーション能力を提供するスタートアップコンフィギュレーションプロシージャと、ランタイムでＲＡＩＤコントローラに接続されたディスクドライブを自動的にコンフィギュレ―ションするランタイムコンフィギュレーションプロシージャとを含む。スタートアップコンフィギュレーションプロシージャは、ディスクドライブの完全なコンフィギュレーションを生成する。該コンフィギュレーションは、形成される論理ドライブと、ＲＡＩＤレベル、容量、並びに他の情報を含む各論理ドライブについての関連付けられた作動特徴とを特定する。スタートアップコンフィギュレーションプロシージャは、以前に存在していたコンフィギュレーションと、部分的なコンフィギュレーションとを調整することができる。更に、スタートアップコンフィギュレーションプロシージャは、ディスクドライブの既存のコンフィギュレーションを考慮する基準に従って、コンフィギュレ―ションされていないドライブをコンフィギュレ―ションすることができ、それは全てのコンピュータシステムの性能を最適化するために適した適切なＲＡＩＤレベルを選択することができる。
【００１３】
ランタイムコンフィギュレーションプロシージャは、システムが使用可能な間、ＲＡＩＤコントローラに接続されたディスクドライブをコンフィギュレ―ションするために使用される。挿入されたディスクドライブは、既存のコンフィギュレーションの部分であっても良く、又はコンフィギュレ―ションされていなくても良い。ランタイムコンフィギュレーションプロシージャは、コンフィギュレ―ションされたドライブを、現在のコンフィギュレーション内に組み入れることができ、並びにコンフィギュレ―ションされていないドライブをコンフィギュレ―ションすることができる。コンフィギュレ―ションされていないドライブは、死んだドライブ即ち故障したドライブを置換するために挿入されたディスクドライブを使用すること、挿入されたディスクドライブを、定義されたＲＡＩＤレベルで追加の能力をサポートすることができる特定の論理ドライブに追加すること、及び必要ならば追加の論理ドライブを形成することの基準に従ってコンフィギュレ―ションされる。
【００１４】
ＲＡＩＤコントローラに接続されたディスクドライブをコンフィギュレ―ションするために要求されるユーザインタラクションを排除する故に、自動コンフィギュレーション機構は有利である。更に、該機構は、ディスクドライブが、ディスクドライブの現状を考慮し且つ全体のシステムパフォーマンスを最適化する仕方で１又はそれ以上のＲＡＩＤレベルにコンフィギュレ―ションすることを可能にする。該機構は、ランタイム及びシステム初期化の両方で、自動コンフィギュレーションを柔軟に実行する。
【００１５】
【発明の実施の形態】
図１Ａは、本発明の第１の好ましい実施形態においてＲＡＩＤコントローラ１０２を利用するホストシステム１００を図示する。ホスト周辺バス１０４と、１又はそれ以上のＳＣＳＩ（Small Computer System Interface）チャンネル１０６Ａ乃至１０６Ｎとに接続されたＲＡＩＤコントローラ１０２が示されている。好ましい実施形態では、ＲＡＩＤコントローラ１０２は、いかなるＭｙｌｅｘ（商標）ＲＡＩＤコントローラであってよく、例えばＤＡＣ９６０シリーズのＲＡＩＤコントローラであるがこれらに限定されない。ＳＣＳＩチャンネルのオペレーションは当該技術分野では周知であり、より詳細な記載がAncot Corporationの「Basic of SCSI」第３版（1992〜1996年）に見つけられうる。
【００１６】
ホスト周辺バス１０４は、ホスト中央演算ユニット（ＣＰＵ）とメモリ１０８とに接続されている。ホスト周辺バス１０４は、いかなるタイプの周辺バスをも含んでおり、ＰＣＩ（peripheral Component Interconnect）バス、ＩＳＡ（Industry Standard Architecture）バス、ＥＩＳＡ（Extended Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）などを含むがこれに限定されない。ホストＣＰＵ及びメモリ１０８は、ＲＡＩＤコントローラと相互作用するオペレーティングシステム（図示せず）を含む。
【００１７】
各ＳＣＳＩチャンネル１０６は１又はそれ以上の周辺デバイス１１０Ａ乃至１１０Ｚを含み、例えばディスクドライブ、テープドライブ、種々のタイプの光ディスクドライブ、プリンタ、スキャナ、プロセッサ、通信デバイス、メディアチェンジャなどを含むがこれらに限定されない。ＳＣＳＩチャンネル１０６Ａは、ホストシステム１００内に配置された周辺デバイスをアクセスするために使用することができ、又はＳＣＳＩチャンネル１０６Ｎは、ホストシステム１００の外の周辺デバイスをアクセスするために使用することができる。
【００１８】
図１Ｂは、本発明の第２の好ましい実施形態によるコンピュータシステムを図示する。この実施形態では、ＲＡＩＤコントローラ１０２はホストシステム１００の外部にある。ＲＡＩＤコントローラ１０２は、ＳＣＳＩチャンネル１０６Ａを介してホストシステム１００に接続され、及び１又はそれ以上のＳＣＳＩチャンネル１０６Ｂ乃至１０６Ｎを介して１又はそれ以上の周辺デバイスに接続される。ＲＡＩＤコントローラ１０２及びＳＣＳＩチャンネル１０６は、図１Ａに関して上述したことと同様である。
【００１９】
図２は、ＲＡＩＤコントローラ１０２のコンポーネントを図示する。ホスト周辺バス１０４に接続されたＣＰＵ１１２が示されている。ＣＰＵ１１２はまた、１又はそれ以上のＳＣＳＩＩ／Ｏプロセッサ１１６Ａ乃至１１６Ｎに接続された第２の周辺バス１１４に接続される。ＳＣＳＩ Ｉ／Ｏプロセッサ１１６は、ＳＣＳＩチャンネル１０６Ａに接続されることができ、第２の周辺バス１１４とＳＣＳＩチャンネル１０６との間のインターフェースとして作動する。ＣＰＵ１１２はまた、第１のメモリデバイス（メモリ1）１２０と、第２のメモリデバイス（メモリ2）１２２と、コプロセッサ１２４とに接続されるローカルバス１１８に接続される。コプロセッサ１２４は、コプロセッサ１２４の制御下にあるオンボード・キャッシュメモリ１２６に接続される。コプロセッサ１２４及びキャッシュメモリ１２６は、周辺デバイス１１０に読み出し且つ周辺デバイス１１０から書き込まれるデータを検索するために使用され、並びに周辺デバイス１１０に読み出し且つ周辺デバイス１１０から書き込まれるデータをエンコーディングし且つデコーディングするエラー訂正コード（ＥＣＣ）を実行する。キャッシュメモリ１２６は、ライトスルーキャッシングストラテジ又はライトバックキャッシングストラテジのいずれかを採用することができる。
【００２０】
好ましい実施形態では、ＣＰＵ１１２は、３２ビットインテルｉ９６０ＲＩＳＣマイクロプロセッサであり、第１のメモリデバイス１２０はフラッシュＥＰＲＯＭ（消去可能／プログラム可能ＲＯＭ）であり、第２のメモリデバイス１２２は、不揮発性ＲＡＭ（ＮＶＲＡＭ）であり、ホスト周辺バス１０４は、プライマリＰＣＩバスであり、第２の周辺バス１１４はセカンダリＰＣＩバスである。第１のメモリデバイス１２０では、スタートアップ・コンフィグレーション・プロシージャ１２８とランタイム・コンフィギュレーション・プロシージャ１３０とをストアすることができる。スタートアップコンフィギュレーションプロシージャ１２８は、システム初期化、又はオペレーションシステムがインストールされる前に生じるブートアップで、ディスクドライブを自動的にコンフィギュレーションするために使用される。ランタイム・コンフィギュレーション・プロシージャ１２８は、オペレーションシステムが作動可能な間、ディスクドライブをコンフィギュレ―ションするために使用される。第２のメモリデバイス１２２では、ＲＡＩＤディスクドライブの現在のコンフィギュレーションを含むコンフィギュレーションファイル１３２をストアすることができる。
【００２１】
更に、ＲＡＩＤコントローラ１０２に関連付けられた各周辺ディスクドライブは、ドライブのコンフィギュレーションを示すデータを含むコンフィギュレーションファイル１３４を含む。
【００２２】
別の実施形態では、コントローラ上の第２のメモリデバイス１２２は、全体のコンフィギュレーション情報を保持する代わりに、物理ディスクドライブ上のコンフィギュレーションファイル１３４を識別するコンフィギュレーションラベルだけを保持する。
【００２３】
先の記載には、本発明の技術を利用するコンピュータシステムが記載されている。本発明が上述したコンフィギュレーションに制限されず、他のコンフィギュレーションが利用されうることに注目すべきである。次に、本発明の好ましい実施形態を記載するために使用される用語の簡単な概略に注目を向ける。この用語は、マニュアルコンフィギュレーションプロシージャの文脈において説明される。
【００２４】
マニュアルコンフィギュレーションプロシージャは、物理ディスクドライブのアレイから論理ディスクドライブを作成するために使用される。典型的には、コンフィギュレーションプロセスは、ユーザによって初期化されたマニュアルプロシージャである。図３は、マニュアルコンフィギュレーションプロセスで使用されるステップを図示する。まず、ユーザは、１又はそれ以上のドライブグループを識別し（ステップ１７２）、ドライブグループを順序づけし（ステップ１７４）、そしてＲＡＩＤレベルを備える各ドライブグループ及び他のパラメータ設定の１又はそれ以上の論理ドライブを作成し且つコンフィギュレ―ションする（ステップ１７６）。コンフィギュレーション情報は、各物理ドライブに及びＲＡＩＤコントローラにストアされる（ステップ１７８）。次いで、論理ドライブは初期化され（ステップ１８０）、コンフィギュレーションはホストオペレーションシステムに対するＲＡＩＤコントローラ１０２によって表される（ステップ１８２）。これらのステップは、以下により詳細に記載される。
【００２５】
図４は、１又はそれ以上のドライブグループ１４０,１４２,１４４に配置された多数の物理ディスクドライブを図示する。物理ディスクドライブは、ＳＣＳＩチャンネル１０６の１つに接続される。物理ディスクドライブは、１又はそれ以上のドライブグループ１４０，１４２，１４４内に配置される。ドライブグループ１４０，１４２，１４４は、定義された容量、ＲＡＩＤレベル並びに他のデバイス設定を有する論理ドライブを作成するために使用される。容量は、ドライブグループ内の各ディスクドライブの容量の集合体に基づき、且つＲＡＩＤレベルに依存する。好ましい実施形態では、ＲＡＩＤコントローラ１０２は８つのドライブグループをサポートしうる。ドライブグループは、１乃至８つの物理ドライブを含みうる。何らかのドライブグループにも含まれないドライブは、スタンバイ即ちホットスペアドライブと考えられる。スタンバイドライブは、ディスクドライブ障害の際に使用される冗長ディスクドライブである。
【００２６】
図４に示されているように、１つのスタンバイドライブ１４６とともに、ディスクドライブは、ドライブグループＡ１４０、ドライブグループＢ１４２、及びドライブグループＣ１４４と呼ばれる３つのドライブグループにコンフィギュレ―ションされる。ドライブグループＡ１４０は、ＳＣＳＩチャンネル１０６Ａに配置された３つのディスクドライブを含み、ドライブグループＢ１４２は、ＳＣＳＩチャンネル１０６Ｂに配置された３つのディスクドライブを含み、ドライブグループＣ１４４は、ＳＣＳＩチャンネル１０６Ａに位置づけられた２つのディスクドライブと、ＳＣＳＩチャンネル１０６Ｂに位置づけられた１つのディスクドライブとを含む。ディスクドライブ１４６はホットスペアドライブと考えられている。
【００２７】
全てのディスクグループが識別された後、ドライブグループは順序づけされる（ステップ１７４）。ドライブグループは、１からｎまで順序づけされるシーケンシャルな数で順序づけされ、ここでｎは最も大きな順序づけられた数である。順序づけすることは、所定のオペレーティングシステム目的のために使用され、且つ、特に、ブートドライブとして取り扱われ得るプライマリ論理ドライブを指示するために使用される。ブートドライブは、以下により詳細に記載されるコンフィギュレーションにおける物理ドライブを「ブートアップ」するために使用される。
【００２８】
次に、各ドライブグループの論理ドライブが作成され且つコンフィギュレ―ションされる（ステップ１７６）。論理ドライブ又はシステムドライブが、単一論理デバイスとしてホストオペレーティングシステムによってみられるドライブグループのその部分である。特定のドライブグループに関連付けられた１つ以上の論理ドライブだけでない。ユーザは、特定の論理ドライブの部分であろうドライブグループの部分を指示することによって論理ドライブを作成する。例えば、図５に示されるように、ドライブグループＡは３つの物理ドライブ１５０，１５２，１５４と、３つの論理ドライブＡ0，Ａ1及びＡ2を含む。論理ドライブＡ0は、ドライブグループＡにおいて各物理ドライブ１５０，１５２及び１５４の指定された部分にまたがる。同様に、論理ドライブＡ1及びＡ2各々は、ドライブグループＡにおいて各物理ドライブ１５０，１５２及び１５４の指定された部分にまたがる。
【００２９】
ドライブグループ内の各論理ドライブは順序づけられる。この順序づけは、論理ドライブが作成される方法に由来している。論理ドライブは、それら個々のドライブグループの順序づけに基づいて作成される。例えば、第１のドライブグループに作成される第１の論理ドライブは第１の論理ドライブとみなされ、第１のドライブグループに作成される第２の論理ドライブは第２の論理ドライブとなどとみなされる。上記されたように、順序づけは、ブートドライブとして取り扱われる論理ドライブを定義するために使用される。ブートドライブは、コンフィギュレーションにおいて物理ドライブをブートアップするためにシステム初期化で使用される。第１の論理ドライブ（即ち、論理ドライブ0）は、ブートドライブとみなされる。更に、順序づけは、以下でより詳細に議論されるディスク容量を追加するために使用される。図５に示されるように、論理Ａ0は、第１の論理ドライブ、又はドライブグループＡのブートドライブとみなされ、論理ドライブＡ1は、第２の論理ドライブとみなされ、論理ドライブＡ3は第３の論理ドライブとみなされる。
【００３０】
各論理ドライブは、容量、キャッシュ書き込みポリシー、及びＲＡＩＤレベルを定義することによってコンフィギュレ―ションされる。論理ドライブの容量は、そのドライブグループの総容量まで、ドライブグループのどんな部分をも含む。
【００３１】
ＲＡＩＤコントローラ１０２は、データ検索及びストレージオペレーションの性能を増加させるために使用されるキャッシュメモリ１２６を有する。キャッシュメモリ１２６は、ライトバック又はライトスルーモードで作動されうる。ライトバックモードでは、書き込みデータはキャッシュ１２６に一時的にストアされ、次の時にディスクに書き出される。このモードの利点は、それがコントローラの性能を増加させることである。ＲＡＩＤコントローラ１０２は、書き込みデータがディスクにストアされていないとしても、書き込みオペレーションが上手くいくオペレーティングシステムを通知する。しかしながら、システムクラッシュ又は電源障害の発生において、キャッシュ１２６のデータは、バッテリバックアップが使用されなければ失われる。
【００３２】
ライトスルーモードでは、完了状態がオペレーティングシステムに復帰される前に、書き込みデータは、キャッシュ１２６からディスクに書き込まれる。このモードは、データが電源障害の発生で失われない故に、より安全である。しかしながら、ライトスルーオペレーションは、多くの環境においてコントローラ１０２の性能を低下させる。
【００３３】
各論理ドライブは、それが作成されるドライブグループにおける多数のドライバに基づくＲＡＩＤレベルを有する。好ましい実施形態では、以下のＲＡＩＤレベルがサポートされる：
【表１】
0004478233.tif 000002
【００３４】
図６は、特定のドライブグループ、ドライブグループＢに関するＲＡＩＤレベルの例示的な割り当てを図示する。この例では、論理ドライブＢ0は、３つの物理ドライブ１５６，１５８，１６０にまたがり、論理ドライブＢ1は、同じ物理ドライブ１５６，１５８，１６０にまたがる。論理ドライブＢ0は、ＲＡＩＤレベル５を割り当てられ、論理ドライブＢ1は、ＲＡＩＤレベル０＋１を割り当てられている。
【００３５】
いったんコンフィギュレーションプロシージャが完了したならば、各ドライブグループに関するコンフィギュレーションは、コンフィギュレーションファイル１３４における各物理ドライブにストアされ、好ましくは、ドライブの最後の６４Ｋバイトに配置される（ステップ１７８）。次いで、論理ドライブは初期化され（ステップ１８０）、ＲＡＩＤコントローラ１０２は、コンフィギュレーションをホストオペレーティングシステムに対して表す（ステップ１８２）。
【００３６】
先の記載は、ＲＡＩＤコントローラに接続されたディスクドライブを手動でコンフィギュレ―ションするためにユーザによって使用されることができるステップを記載しており、本発明の好ましい実施形態で使用される用語を紹介する。次に、ＲＡＩＤコントローラに接続されたディスクドライブを自動的にコンフィギュレ―ションするために使用される方法及びプロシージャに注目を向ける。
【００３７】
ＲＡＩＤコントローラ１０２に接続されたディスクドライブ１１０を自動的にコンフィギュレ―ションするために使用される２つのプロシージャがある。オペレーティングシステムが作動可能な前にコントローラ１０２が動力供給されるか又はスタートされるとき、スタートアップコンフィギュレーションプロシージャ１２８が使用される。追加のディスクドライブがコントローラ１０２に接続されたとき、ランタイムコンフィギュレーションプロシージャ１３０が、ランタイムでコンフィギュレーションを変更するために使用される。ランタイムでは、ＲＡＩＤコントローラ１０２は作動可能であり、Ｉ／Ｏ活動を取り扱う。
【００３８】
図７は、コントローラ１０２に接続されたディスクドライブに関してコンフィギュレーションを作成するためにスタートアップコンフィギュレーションプロシージャ１２８によって使用されるステップを図示する。動力供給時に、コントローラ１０２は、ディスクドライブの物理的容量を得るために且つディスクドライブからのコンフィギュレーションデータを得るために、それに接続された全てのデバイス１１０をスキャンする。
【００３９】
図８は、更に詳細にこのステップ（ステップ２００）を図示する。スタートアップコンフィギュレーションプロシージャ１２８は、各ＳＣＳＩチャンネル１０６（ステップ２０２）と、ＳＣＳＩチャンネル１０６に接続された各デバイス１１０（ステップ２０４）とを走査する。好ましい実施形態では、スタートアップコンフィギュレーションプロシージャ１２８は、ＳＣＳＩチャンネル１０６に接続された周辺デバイスが動力供給され且つ作動可能であるかどうかを決定するためにＳＣＳＩコマンドＴＥＳＴＲＥＡＤＹ ＵＮＩＴを発行しうる。スタートアップコンフィギュレーションプロシージャ１２８はまた、周辺デバイス１１０のタイプを決定するためにＩＮＱＵＩＲＹコマンドを発行しうる。デバイス１１０がディスクドライブでないならば（ステップ２０６−Ｎ）、次いで、スタートアップコンフィギュレーションプロシージャ１２８は次のデバイス１１０に続く。さもなければ（ステップ２０６−Ｙ）、スタートアップコンフィギュレーションプロシージャ１２８は、ディスクドライブの容量を得る（ステップ２０８）。このことは、ＲＥＡＤＣＡＰＡＣＩＴＹコマンドをデバイスに発行するスタートアップコンフィギュレーションプロシージャ１２８によって達成されうる。ＲＥＡＤ ＣＡＰＡＣＩＴＹコマンドは、デバイス１１０の容量のインジケータとして役立つディスクドライブに関して最大論理ブロックアドレス（ＬＡＢ）を戻す。
【００４０】
次に、スタートアップコンフィギュレーションプロシージャ１２８は、ディスクドライブにストアされたコンフィギュレーションファイル１３４を読み出すことを試みる（ステップ２１０）。上記されたように、コンフィギュレーションファイル１３４は、ディスクドライブの最後の６４Ｋバイトブロックに配置されるのが好ましい。該ディスクが以前にコンフィギュレ―ションされているならば、コンフィギュレーションファイル１３４が存在する。さもなければ、コンフィギュレーションファイル１３４は存在しない。コンフィギュレーションファイル１３４は、コンフィギュレーション情報、例えばドライブグループ識別子、論理ドライブ識別子、ＲＡＩＤレベル並びに他の情報を含む。
【００４１】
スタートアップコンフィギュレーションプロシージャ１２８は、ＲＡＩＤコントローラ１０２に接続された各チャンネル１０６に配置された各ディスクドライブ１１０に関してステップ２０２乃至２１０を繰り返す。
【００４２】
図７に戻ってみると、次いで、スタートアップコンフィギュレーションプロシージャ１２８は、コンフィギュレーション情報を解析する（ステップ２１２）。スタートアップコンフィギュレーションプロシージャ１２８は、各コンフィギュレーションの妥当性を判断し且つデバイスがコンフィギュレ―ションされていないかどうか判断するために、コンフィギュレーション情報を使用する。
【００４３】
完全なコンフィギュレーションは、コンフィギュレーションで識別された全ての物理ドライブがコントローラ１０２に接続されているものである。部分的なコンフィギュレーションは、コンフィギュレーションで識別された物理ドライブの幾つかがコントローラ１０２に接続されていないものである。妥当なコンフィギュレーションは、完全なコンフィギュレーション又は論理ドライブが少なくとも低下モード（degraded mode）であるところの部分的なコンフィギュレーションのいずれかであるものである。低下モードとは、以下の２つの状態が交わる状況のことを言う。第１に、論理ドライブが冗長にコンフィギュレ―ションされ（即ち、ＲＡＩＤレベル１，３，５，又は０＋１）及び第２に、物理ドライブが死んでおり、或いは活動可能ではないが、論理ドライブはいかなるデータ損失無しに依然として稼働しうる。低下モードでは、ドライブグループは機能的であり、全てのデータが利用可能であるが、アレイは、潜在的データ損失無しに、更なるドライブ障害を維持することができない。
【００４４】
コンフィギュレーション情報を解析した後、スタートアップコンフィギュレーションプロシージャ１２８は、何らかの部分的コンフィギュレーションがあるかどうか判断する（ステップ２１４）。上記されたように、部分的コンフィギュレーションは、コンフィギュレーションで識別された物理ドライブの幾つかがコントローラ１０２に接続されていないものである。もしそうならば（ステップ２１４−Ｙ）、スタートアップコンフィギュレーションプロシージャ１２８は、妥当なコンフィギュレーションとしてドライブグループをコンフィギュレ―ションするために正しいアクションを実行する（ステップ２１６）。プロシージャ１２８は、論理ドライブを低下モードに置くことを試みるだろう（ステップ２１６）。
【００４５】
訂正動作が実行されることができないとき（ステップ２１８−Ｎ）、スタートアップコンフィギュレーションプロシージャ１２８は処理を終了し、適当なエラーメッセージがユーザに表示される（ステップ２２０）。訂正アクションが成功である場合（ステップ２１８−Ｙ）、スタートアップコンフィギュレーションプロシージャ１２８は、処理を続ける。
【００４６】
スタートアップコンフィギュレーションプロシージャ１２８は、コンフィギュレ―ションされていないドライブがあるかどうか判断する（ステップ２２２）。コンフィギュレ―ションされていないドライブとは、それに関連付けられたコンフィギュレーションファイル１３４を有しないものである。コンフィギュレ―ションされていないドライブがあるならば、スタートアップコンフィギュレーションプロシージャ１２８は、以下のコンフィギュレ―ション可能なデフォルトパラメータ設定で該ドライブをコンフィギュレ―ションする（ステップ２２４）。
【００４７】
ストライプサイズ：ストライプサイズとは、次のドライブに移動する前に、あるドライブに書き込まれたデータの量のサイズである。ストライプサイズは、特定の環境又はアプリケーションに関するコントローラ性能を調整するために使用される。典型的には、小さなストライプサイズは、ランダムＩ／Ｏに関してよりよい性能を提供し、大きなストライプサイズはシーケンシャル転送に関してよりよい性能を提供する。
【００４８】
キャッシュラインサイズ：キャッシュラインサイズとは、読み込まれ又は書き込まれるデータのサイズを表す。キャッシュラインサイズはストライプサイズに基づく。
【００４９】
ＳＣＳＩ転送レート：ＳＣＳＩ転送レートは、各ドライブチャンネルに関して最大転送レートを設定する。
【００５０】
スピンアップオプション：スピンアップオプションは、アレイ内のＳＣＳＩドライブがどのようにスタートされるかを制御する。自動(Automatic)及び電源を入れる（On Power）という、選択されうる２つのスピンアップモードがある。自動オプションは、コントローラが、アレイの全てのドライブが回転するまで、６秒インターバルで同時に２つ、全ての接続されたドライブをスピンアップさせることができる。電源を入れるオプションは、全てのドライブが既に回転していることを仮定する。
【００５１】
コントローラ前読み出し（Controller read ahead）：コントローラ前読み出しオプションは、コントローラが、同時にデータの完全なキャッシュラインをキャッシュ内に読み出すことを可能にする。このオプションが利用可能であるとき、キャッシュヒットのパーセントは改善される。
【００５２】
自動追加容量：このオプションは、容量を論理ドライブに自動的に追加する。
【００５３】
更に、スタートアップコンフィギュレーションプロシージャ１２８は、以下のパラメータ設定及び多数の挿入されたコンフィギュレ―ションされていないドライブの数に基づいて、ＲＡＩＤレベルをコンフィギュレ―ションされていないドライブに関連付ける（ステップ２２４）。ＲＡＩＤレベルの決定に影響するために使用されるパラメータ設定は以下の通りである。
【００５４】
冗長：このオプションは、データ冗長が要求されているかどうか指定する。
冗長方法：このオプションは、ミラーリング又はパリティという２つの冗長方法のうち一つを指定する。ミラーリングは、１つのディスクドライブのデータを別のディスクドライブに１００％複製することを言う。パリティ又はＸＯＲ冗長は、完全なデータ冗長性を提供する方法をいい、一方ミラーリングのストレージ容量の一部分だけを要求する。例えば、ＲＡＩＤ５下でコンフィギュレ―ションされたシステムでは、全てのデータ及びパリティブロックは、もし任意の単一のドライブが取り外され又は故障したならば、それ上のデータが残りのドライブのデータを使用して再構築されるような方法で、ドライブ間で分割される。
【００５５】
スペア処置：コントローラは、システムサービスの割り込みなしに、故障したハードディスクドライブの置換を可能にする。ホストスペアは、故障したディスク上のデータを再構築するためにディスク故障の発生で使用されるスタンバイドライブである。
【００５６】
ＲＡＩＤレベルは、前述のパラメータ設定と、下記表２に示される下記規則に従って、挿入されたコンフィギュレ―ションされていないドライブの数とに基づいて、コンフィギュレ―ションされていないドライブに割り当てられる：
（１）コンフィギュレ―ションされていないドライブの数が１ならば、コンフィギュレ―ションされていないドライブはＪＢＯＤである。
（２）冗長が必要ないならば、ＲＡＩＤレベルはＲＡＩＤ０に設定される。
（３）冗長が必要なく、ドライブの数が２ならば、ＲＡＩＤレベルはＲＡＩＤ１に設定される。
（４）冗長が必要なく、ドライブの数が３以下であり、及びスペアが必要ならば、最大のドライブがスペアドライブとして指定され、ドライブの数は１だけ減少させられる。
（５）この時点で２つのコンフィギュレ―ションされてないドライブだけがあるならば、ＲＡＩＤレベルはＲＡＩＤ１に設定される。
（６）冗長方法がミラーリングならば、ＲＡＩＤレベルをＲＡＩＤ０＋１に設定する。
（７）冗長方法がミラーリングでないならば、ＲＡＩＤレベルをＲＡＩＤ５に設定する。
【００５７】
【表２】
0004478233.tif 000003
【００５８】
いったんコンフィギュレ―ションされていないドライブがコンフィギュレ―ションされると、それらのコンフィギュレーションは各物理ドライブにストアされて、スタートアップコンフィギュレーションプロシージャ１２８は処理を続ける（ステップ２２４）。
【００５９】
次いで、スタートアップコンフィギュレーションプロシージャ１２８は、１つ以上の妥当なコンフィギュレーションがあるかどうか判断する（ステップ２２６）。この場合（ステップ２２６−Ｙ）、全ての妥当なコンフィギュレーションの集約である新しいコンフィギュレーションが生成されて、各論理ドライブは、集約されたコンフィギュレーションに関して論理ドライブ順序を割り当てる（ステップ２２８）。既存の論理ドライブ順序が各妥当なコンフィギュレーションと関連付けられることができ、それによって、集約されたコンフィギュレーションに関する新しい論理ドライブの生成を要求する。
【００６０】
図９を参照すると、スタートアップコンフィギュレーションプロシージャ１２８は、各論理ドライブに関連してコンフィギュレーションファイル１３２を読む（ステップ２４０）。幾つかの例では、単一のコンフィギュレーションファイル１３２は幾つかの論理ドライブと関連付けられうる。これは、各物理ドライブに関する単一のコンフィギュレーションファイル１３２があり、幾つかの論理ドライブが特定の物理ドライブと関係している事実によるものである。コンフィギュレーションファイル１３２は、ドライブの論理ドライブ順序を表す論理ドライブ番号を含む。コンフィギュレーションファイル１３２で見つけられる論理ドライブ番号は、結合されたコンフィギュレーションに関する論理ドライブ順序として使用されうる（ステップ２４２）。
【００６１】
しかしながら、同じ論理ドライブ番号を備える２またはそれ以上の論理ドライブがあり得る。この場合、以下の競合規則が、どちらの競合論理ドライブがより高い優先順位をとるか確かめるために使用される（ステップ２４４）。例えば、各々第１の論理ドライブとナンバリングされた２つのドライブがあるならば、一方が第１の論理ドライブとみなされ、他方は第２の論理ドライブとみなされる。
【００６２】
まず、コントローラのコンフィギュレーションファイル１３２は、各コンフィギュレーションのための一意の識別子であるコンフィギュレーションラベルについて検索される。このラベルが、競合論理ドライブの一つと関係するラベルと適合するならば、ラベルによって指標付けされた論理ドライブは、他の競合論理ドライブよりも先行した順位をとる。
【００６３】
コントローラのコンフィギュレーションファイル１３２がいずれの競合論理ドライブを適合する識別子をも有しない場合では、論理順序順位が、第１のＳＣＳＩチャンネル及び第１のＳＣＳＩデバイスに最も近い論理ドライブ（即ち、ＳＣＳＩチャンネル０に最も近い、ターゲットＩＤ０）に与えられる。例えば、第１の競合ドライブがＳＣＳＩチャンネル１に位置づけられ、ターゲットＩＤ３を有し、第２の競合ドライブがＳＣＳＩチャンネル０に位置づけられ、ターゲットＩＤ４を有するならば、それがＳＣＳＩチャンネル０に最も近く、ターゲットＩＤ０なので、第２の競合ドライブが優先順位を与えられる。
【００６４】
図９に戻ってみると、スタートアップコンフィギュレーションプロシージャ１２８は、次いで、一つの妥当なコンフィギュレーションがあるかどうか判断する（ステップ２３０）。この場合（ステップ２３０−Ｙ）、十分なコンフィギュレーションがホストオペレーティングシステムに対して表される（ステップ２３２）。先の記述は、システムの初期化においＲＡＩＤコントローラに接続されたディスクドライブを自動的にコンフィギュレ―ションするのに使用することができるステップを記載する。次に、ディスクドライブが、コントローラのランタイムオペレーション中に自動的にコンフィギュレ―ションされる仕方に注目を向ける。
【００６５】
システムが使用可能な間、ユーザは１又はそれ以上の物理ドライブをＳＣＳＩチャンネル１０６に接続することができる。ランタイムコンフィギュレーションプロシージャ１３０は、追加されたドライブを検出し、該ドライブをこのコンフィギュレーションに加えるのに使用される。ユーザは、予めコンフィギュレ―ションされた又はコンフィギュレ―ションされていない１又はそれ以上の物理ドライブを挿入することができる。挿入された物理ドライブの数及び、ディスクドライブの現在のコンフィギュレーションに基づいて、ランタイムコンフィギュレーションプロシージャ１３０は、故障したドライブを置換し、既存の論理ドライブの容量を拡張し、新しい論理ドライブを形成するために物理ドライブを使用することができる。
【００６６】
図１０を参照すると、ユーザは、好ましくは１分である挿入ディレイタイム内に追加のドライブを挿入することができる。複数のドライブを一度に挿入することができ、実質的な挿入の間の時間は、挿入ディレイ以下である。コントローラ１０２は、挿入ディレイの終わりで、挿入の通知を受けうる（ステップ２５０−Ｙ）。コントローラ１０２は、追加のドライブがＳＣＳＩチャンネル１０６に挿入されたことを示すサブシステムから割り込みを受ける。サブシステムは、ドライブ挿入の自動的検出をサポートしない別の実施形態では、ユーザはコントローラ１０２に対する通知を実行するためのユーティリティを利用することができる。
【００６７】
ドライブが１つだけ挿入され、低下モードにおいて少なくとも１つの論理ドライブがあるならば（ステップ２５２−Ｙ）、挿入されたドライブは故障した物理ドライブと置換されるように使用され、故障したドライブからのデータは挿入されたデータに再構築される（ステップ２５４）。上述したように、低下モードは、１又はそれ以上の死んだ又は使用可能でないディスクドライブがある場合を言う。
【００６８】
１つのドライブだけが挿入され、低下モードにおいて論理ドライブがない場合（ステップ２５６−Ｙ）、挿入されたドライブは、図１１に示された追加容量規則に従って容量をシステムに追加するのに使用される。
【００６９】
要するに、挿入されたドライブを最後の論理ドライブに追加することを試みる。言い換えれば、挿入されたドライブの容量は、最後の論理ドライブとしてまた呼ばれ得る最も高い次数の順序と関連する論理ドライブに加えられる。しかしながら、ドライブグループにグループ分けされ、特定のＲＡＩＤレベルと関連しうる物理ドライブの数には制限がある。最後の論理ドライブにおける物理ドライブと挿入されたドライブの数の合計が８以下ならば、挿入されたドライブは最後の論理ドライブに加えられる。挿入されたドライブの容量は最後の論理ドライブの容量に加えられる。
【００７０】
最後の論理ドライブにおける物理ドライブと挿入されたドライブの数の合計が８を超えるならば、挿入されたドライブは、冗長を有する論理ドライブの数を最大にするように加えられる。冗長は、ＲＡＩＤレベル１，５及び０＋１で見られる。ランタイムコンフィギュレーションプロシージャ１３０は、挿入されたドライブを最後の論理ドライブに加えるのを試みる。最後の論理ドライブが、対応するＲＡＩＤレベルのコンストレインツによって挿入されたドライブに全て適合することができないならば、プロシージャ１３０は可能な限り多く追加し、残りの挿入されたドライブを備える新しい論理ドライブを形成する。例えば、最後の論理ドライブに６つのドライブと、３つの挿入されたディスクドライブがあるならば、挿入されたディスクドライブのうちの１つだけが、最後の論理ドライブに加えられ、新しい論理ドライブが残りの２つのドライブで形成される。新しい論理ドライブは、冗長をサポートするＲＡＩＤレベル１とコンフィギュレ―ションされる。
【００７１】
図１１を参照すると、ランタイムコンフィギュレーションプロシージャ１３０は、最後の論理ドライブ（ＬＤi=ＬＤn）でスタートし（ステップ２７０）、全ての挿入されたドライブが最後の論理ドライブに加えられ得るかどうか判断する（ステップ２７２）。挿入されたドライブの数と、最後の論理ドライブにおけるドライブの数との合計が８以下ならば（ステップ２７２−Ｙ）、挿入されたドライブは最後の論理ドライブの容量に加えられる（ステップ２７４）。数８が、本発明の実施形態で使用されるしきい値を表す。しかしながら、本発明がこの特定の値を強制するのではなく、他のものも使用可能であることに注目すべきである。
【００７２】
さもなければ（ステップ２７２−Ｎ）、１つのドライブだけが挿入されるならば（ステップ２７６−Ｙ）、ランタイムコンフィギュレーションプロシージャ１３０は、ＪＢＯＤとして新しい論理ドライブを形成する（ステップ２８２）。挿入されたドライブの数が２つならば（ステップ２８４−Ｙ）、新しい論理ドライブ及びドライブグループは、表２で上述したようなデフォルトパラメータ設定に従って挿入されたドライブで形成される（ステップ２８６）。
【００７３】
挿入されたドライブ数が３と８の間ならば（ステップ２８８−Ｙ）、新しい論理ドライブ及びドライブグループは、表２で上述したようなデフォルトパラメータ設定に従って挿入されたドライブで形成される（ステップ２９０）。挿入されたドライブ数が８を超えるならば（ステップ２８８−Ｙ）、１又はそれ以上の論理ドライブ及び／又はドライブグループは、表２で上述したようなデフォルトパラメータ設定に基づいてＲＡＩＤレベル１，５，又は０＋１で形成される（ステップ２９２）。
【００７４】
図１０に戻ると、ランタイムコンフィギュレーションプロシージャ１３０は次いで、物理ドライブと関係するコンフィギュレーションファイル１３４のコンフィギュレーションを更新する（ステップ２６８）。その後、コントローラ１０２はホストオペレーティングシステムに対して新しいコンフィギュレーションを表す（ステップ２６８）。
【００７５】
複数のコンフィギュレ―ションされていない物理ドライブが挿入されたならば（ステップ２６０−Ｙ）、ランタイムコンフィギュレーションプロシージャ１３０は以下のようにドライブを割り当てる。最初に、物理ドライブは、既存の死んだドライブを再構築するのに使用される（ステップ２６２）。死んだドライブがなく、又は、死んだドライブが置換された後に残りの挿入されたドライブがあるならば、ランタイムコンフィギュレーションプロシージャ１３０は、図１１に示した前述の追加容量規則に従って既存の論理ドライブに容量を追加するように追加されたドライブを使用する（ステップ２５８）。
【００７６】
ランタイムコンフィギュレーションプロシージャ１３０は次いで、物理ドライブと関連したコンフィギュレーションファイル１３４のコンフィギュレーションを更新する（ステップ２６８）。その後、コントローラ１０２は、ホストオペレーティングシステムに対して新しいコンフィギュレーションを表す（ステップ２６８）。コントローラ１０２内に挿入された単一及び／又は複数のコンフィギュレ―ションされたドライブがある場合（ステップ２６４−Ｙ）では、挿入されたドライブのコンフィギュレーションが既存のコンフィギュレーションと結合され、論理ドライブ順序が、図９に関連して上に述べたように記述される（ステップ２６６）。ランタイムコンフィギュレーションプロシージャ１３０は、次いで、物理ドライブと関連するコンフィギュレーションファイル１３４のコンフィギュレーションを更新する（ステップ２６８）。その後、コントローラ１０２は、ホストオペレーティングシステムに対して新しいコンフィギュレーションを表す（ステップ２６８）。
【００７７】
先の記載は、ＲＡＩＤコントローラに接続されたディスクドライブをコンフィギュレ―ションするのに使用される、自動コンフィギュレーション装置及びプロシージャを説明したものである。コンフィギュレーションプロシージャは、ランタイムとシステム初期化との両方で、種々のＲＡＩＤレベルで作動するようにディスクのグループを自動的にコンフィギュレ―ションすることができる。それらは、ユーザの介入、知識、及びコントローラのコンフィギュレ―ションのために必要な時間を除去するので、自動コンフィギュレーション装置及びプロシージャは有益である。
【００７８】
別の実施形態
説明の目的のために先の記載は、本発明の完全な理解を提供するために特定の用語を使用した。しかしながら、特定の詳細は本発明を実行するために要求されないことは、当業者にとって明らかであろう。他の例では、周知の回路及びデバイスは、根本的な発明から不必要な混乱を除くためにブロック図に示した。従って、本発明の特定の実施形態の先の記述は、図示及び説明の目的で表されている。それらは、本発明を開示された正確な形態に制限する意図はなく、明らかに多くの修正及び変形が上記教示の観点から可能である。実施形態は、本発明の本質を最も良く説明するために選択され且つ記載されており、それによって、特定の想定される用途に適合するように、種々の変更をもって、本発明及び種々の実施形態を最も良く利用するために他の当業者が利用可能になる。本発明の範囲は特許請求の範囲及びそれらの均等の範囲によって定義される。
【００７９】
更に、上で記載した方法及びシステムは、ランダムアクセスメモリのようなメモリデバイスの他に種々のタイプの実行可能な媒体での実行に応ずる。実行可能な媒体の他のタイプは限定されないが、メモリデバイス、コンパクトディスク、又はフロッピィディスクであってよい。
【００８０】
本発明の選択された態様を次に短くまとめる。
第１の態様では、本発明は、コントローラに接続されたディスクドライブを自動的にコンフィギュレ―ションするためのコンピュータで実施される方法であって、
コントローラに接続されたディスクドライブを前記コントローラによって走査するステップと、
１又はそれ以上のコンフィギュレ―ションされていないディスクドライブを前記接続されたディスクドライブから前記コントローラによって見つけだすステップと、
複数のＲＡＩＤレベルのうちの１つに従って、前記コンフィギュレ―ションされていないディスクドライブに関するコンフィギュレーションを前記コントローラによって準備するステップであって、
（１）１又はそれ以上のパラメータ設定を各コンフィグレーションされていないディスクドライブに関連付けるステップと、
（２）コンフィギュレーションされていないディスクドライブの数及び前記パラメータ設定に基づき、特定のＲＡＩＤレベルで前記コンフィギュレーションされていないディスクドライブをコンフィギュレーションするステップであって、前記特定のＲＡＩＤレベルは前記コンフィギュレーション前のＲＡＩＤレベルと異なりうる、前記コンフィギュレーションするステップと
を含む、前記準備するステップと、
前記コンフィギュレーションを前記コントローラによってストアするステップと
を含むところの方法である。
【００８１】
第１の方法に関して、準備工程は更に、１又はそれ以上のパラメータ設定を各々コンフィギュレ―ションされていないディスクドライブと関連付け、コンフィギュレ―ションされていないディスクドライブの数と、パラメータ設定とに基づいたＲＡＩＤレベルを備えるコンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションする、ステップを含む。ここで、パラメータ設定は、必要な冗長性（冗長性が前記ディスクドライブによって必要とされるか又は必要とされないか）、冗長の方法、及び、スペア処置からなる群から選択される設定を有しうる。
【００８２】
第１の方法は、前記コンフィギュレ―ションされていないディスクドライブに関するコンフィギュレーションを準備するステップが前記コントローラに格納された所定の規則に基づいて前記コントローラによって自動的に実行されるステップにおいて、コンフィギュレ―ションされていないディスクドライブが１つだけ見つかったとき、単一ドライブとして（ＪＢＯＤ）、前記コンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションするステップと、前記コンフィギュレ―ションされていないディスクドライブが、冗長がないことを示すパラメータ設定に関連付けされているとき、ＲＡＩＤレベル０に従って、前記コンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションするステップと、前記コンフィギュレ―ションされていないディスクドライブが、ミラーリングを示すパラメータ設定に関連付けされているとき、ＲＡＩＤレベル０＋１に従って、前記コンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションするステップと、前記コンフィギュレ―ションされていないディスクドライブが、ミラーリングが要求されていないことを示すパラメータ設定に関連付けされているとき、ＲＡＩＤレベル５に従って、前記コンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションするステップとを更に含む。更に、第１の方法は、前記コンフィギュレ―ションされていないディスクドライブが、スペアディスクドライブが要求されることを示すパラメータ設定に関連付けされているときに、下記ステップ、即ちスペアディスクドライブとして最大のコンフィギュレ―ションされていないディスクドライブを選択するステップと、スペアディスクドライブによってコンフィギュレ―ションされていないディスクドライブの数を減少させるステップと、パラメータ設定に従って、コンフィギュレ―ションされていないディスクドライブの数を支持するＲＡＩＤレベルで、前記コンフィギュレ―ションされていないディスクドライブをコンフィギュレ―ションするステップとを更に実行する。
【００８３】
第１の方法はまた、前記コンフィギュレーションするステップの後で、且つ前記ストアするステップの前に、部分的なコンフィギュレーションを見つけるステップと、該部分的なコンフィギュレーションを妥当なコンフィギュレーションに変換するステップと、該妥当なコンフィギュレーションを十分なコンフィギュレーション内の前記構成されていないディスクドライブをコンフィギュレーションするステップにおいて確立された前記コンフィギュレーションと結合するステップとを含みうる。
【００８４】
第１の方法は変形実施形態として、ランタイムで少なくとも１つのディスクドライブがコントローラに追加されることを検出し、ランタイムで１又はそれ以上の死んだドライブがコントローラに接続されることを判断し、ランタイムで追加されたディスクドライブのうちの１つを備える各死んだドライブを代用することを、含みうる。第１の方法のこの変形実施形態は、代用ステップが更に、代用された追加されたディスクドライブの死んだドライブにストアされたデータを再構築するステップを含むことを任意に提供しうる。その同じ変形実施形態はまた、１又はそれ以上の追加されたドライブを既存の論理ドライブに追加し、追加されたドライブが既存の論理ドライブに追加されないとき、追加されたドライブで１又はそれ以上の論理ドライブを形成するステップを更に含みうる。
【００８５】
別の態様では、本発明は、ＲＡＩＤコントローラに接続されたディスクドライブを自動的にコンフィギュレ―ションするためにコンピュータで実施される第２の方法を提供し、かかる方法は、ランタイムで少なくとも１つのディスクドライブがＲＡＩＤコントローラに加えられることを検出し、１又はそれ以上の死んだドライブがＲＡＩＤコントローラに接続されていることを判断し、追加されたディスクドライブのうちの１つで各死んだドライブを代用する、ステップを含む。この第２の方法は更に、１又はそれ以上の追加されたドライブを既存の論理ドライブに追加し、追加されたドライブが既存の論理ドライブに追加されないとき、１又はそれ以上の論理ドライブを追加されたドライブで形成する、ステップを任意に含みうる。第２の方法のこの変形はそれ自身、１又はそれ以上の追加されたディスクドライブのうちの１つの死んだドライブに基づいたデータを再構築するステップを更に含むだいたいステップを提供しうる。形成ステップが更に、各形成された論理ドライブを複数のＲＡＩＤレベルのうちの１つと関連付けるステップを含むことをまた提供する。
【００８６】
ＲＡＩＤコントローラに接続されたディスクドライブを自動的にコンフィギュレ―ションするための第２の方法は更に、既存のコンフィギュレーションをＲＡＩＤコントローラに接続された既存のディスクドライブに提供し、追加されたディスクドライブが追加されたコンフィギュレーションと関連することを判断し、既存のコンフィギュレーション及び追加されたコンフィギュレーションから新しいコンフィギュレーションを形成する、ステップを含みうる。第２の方法のこの変形はそれ自身、既存のコンフィギュレーションが既存の論理ドライブ順序を含み、追加されたコンフィギュレーションが追加された論理ドライブを含み、既存のコンフィギュレーション及び追加されたコンフィギュレーションを使用して新しいコンフィギュレーションに関して新しい論理ドライブ順序を生成する、ステップを更に含みうる。
【００８７】
第３の態様では、本発明は、特定の方法でファンクションに対して論理ディスクドライブ内にグループ分けされたディスクドライブに接続されたＲＡＩＤコントローラを差し向けるコンピュータ読み取り可能記憶媒体を提供し、コンフィギュレ―ションされていないディスクドライブに関してコンフィギュレーションを生成するための能力を有する命令を含むスタートアップコンフィギュレーションプロシージャを含み、コンフィギュレ―ションされていないディスクドライブは１又はそれ以上の論理ディスクドライブを含み、各論理ディスクドライブは複数のＲＡＩＤレベルのうちの１つに従ってコンフィギュレ―ションされる。第１の変形では、このコンピュータ読み取り可能記憶媒体はまた、スタートアップコンフィギュレーションプロシージャが、論理ディスクドライブ及びコンフィギュレ―ションされていないディスクドライブの数と関連したパラメータ設定の設定に従って各論理ディスクドライブをコンフィギュレ―ションする能力を有する命令を含むことを、任意に提供し得る。第２の変形では、スタートアップコンフィギュレーションプロシージャが、十分なコンフィギュレーションを、１又はそれ以上の妥当なコンフィギュレーション、１又はそれ以上の部分的なコンフィギュレーション、及び、１またはそれ以上のコンフィギュレ―ションされていないディスクドライブコンフィギュレーションから生成する能力を有する命令を含むことを提供し得る。第３の変形では、ランタイム中、ＲＡＩＤコントローラに追加された１またはそれ以上のディスクドライブをコンフィギュレ―ションする能力を有する命令を含むランタイムコンフィギュレーションプロシージャを更に含みうる。コンピュータ読み取り可能記憶媒体のこの第３の変形は更に、各死んだドライブを該追加されたドライブと置換する能力を有する命令を含むランタイムコンフィギュレーションプロシージャを任意に含みうる。ランタイムコンフィギュレーションプロシージャを有するこの第３の変形はそれ自身、ランタイムコンフィギュレーションプロシージャが、１又はそれ以上の追加されたドライブを１又はそれ以上の論理ドライブに加える能力を有する命令を有し、更に、ランタイムコンフィギュレーションプロシージャが、追加されたドライブを含む１又はそれ以上の新しい論理ドライブを生成する能力を有する命令を任意に含むことを提供し得る。
【００８８】
第４の態様では、本発明は、特定の仕方のファンクションに対して複数の論理ドライブ内にグループ分けされたディスクドライブに接続されたＲＡＩＤコントローラを導くコンピュータ読み取り可能記憶媒体を提供し、ランタイムコンフィギュレーションプロシージャが、ランタイム中、ＲＡＩＤコントローラに追加された１又はそれ以上のディスクドライブをコンフィギュレ―ションする能力を有する命令を含み、命令が各死んだドライブを該追加されたドライブと置換し、１又はそれ以上の追加されたドライブを１又はそれ以上の論理ドライブに加えることを、含む。
【００８９】
複数の論理ドライブ内にグループ分けされたディスクドライブに接続されたＲＡＩＤコントローラを導くこのコンピュータ読み取り可能記憶媒体は更に、(i)ランタイムコンフィギュレーションプロシージャが、追加されたドライブを含む１又はそれ以上の新しい論理ドライブを生成する能力を有する命令を含み、及び／又は、(ii)各新しい論理ドライブが、ＲＡＩＤレベル１，ＲＡＩＤレベル５又はＲＡＩＤレベル０＋１からなる設定から選択されたＲＡＩＤレベルと関連し、及び／又は、(iii)ランタイムコンフィギュレーションプロシージャが、追加されたドライブを収容することができる最後の論理ドライブから始まる１又はそれ以上の追加されたドライブを追加する命令を含み、及び／又は、(iv)コンフィギュレ―ションされていないディスクドライブに関するコンフィギュレーションを生成する能力を有する命令を含むこと、を提供することができ、コンフィギュレ―ションされていないディスクドライブコンフィギュレーションが１又はそれ以上の論理ディスクドライブを含み、各論理ディスクドライブが複数のＲＡＩＤレベルのうちの１つに従ってコンフィギュレ―ションされる。
【００９０】
本発明の種々の実施形態の多くの特徴及び利点が、本発明の種々の実施形態の構造と機能の詳細と一緒に、先の記述内で説明されたけれども、この開示は単なる例示に過ぎず、特許請求の範囲に説明した用語を広く一般的に解釈することによって十分広く示された本発明の本質内の部分の構造及びコンフィギュレ―ションの問題については変更することが可能である。
【００９１】
本発明の特徴及び目的をより理解するために、添付の図面と一緒に詳細な説明を参照すべきである。同じ参照番号は、種々の図面を通じて対応する部分を示す。
【図面の簡単な説明】
【図１Ａ】本発明の好ましい実施形態によるコンピュータシステムを図示する。
【図１Ｂ】本発明の好ましい実施形態によるコンピュータシステムを図示する。
【図２】本発明の好ましい実施形態によるＲＡＩＤコントローラを図示する。
【図３】ディスクドライブの設定を手動でコンフィギュレ―ションするために使用されるステップを示すフローチャートである。
【図４】本発明の好ましい実施形態における、物理ドライブからドライブグループを形成し、順序づけするプロセスを図示する。
【図５】本発明の好ましい実施形態における、物理ドライブからドライブグループを形成し、順序づけするプロセスを図示する。
【図６】本発明の好ましい実施形態における、一組の論理ドライブへのＲＡＩＤレベルの典型的な割り当てを図示する。
【図７】本発明の好ましい実施形態における、スタートアップコンフィギュレーションプロシージャにおいて使用されるステップを示すフローチャートである。
【図８】本発明の好ましい実施形態における、ＲＡＩＤコントローラに接続された物理的デバイスを走査するために使用されるステップを示すフローチャートである。
【図９】本発明の好ましい実施形態の論理ドライブ順序づけ規則を示すフローチャートである。
【図１０】本発明の好ましい実施形態における、ランタイムコンフィギュレーションプロシージャで使用されるステップを示すフローチャートである。
【図１１】本発明の好ましい実施形態に従って容量を追加するために使用されるステップを示すフローチャートである。
【符号の説明】
１００  ホストシステム
１０２  ＲＡＩＤコントローラ
１０８  ホストＣＰＵ／メモリ
１０６  ＳＣＳＩチャネル
１１２  ＣＰＵ
１１６  ＳＣＳＩ入力／出力プロセッサ
１２０  メモリ
１２２  メモリ
１２４  コプロセッサ
１２６  キャッシュメモリ
１２８  スタートアップコンフィギュレーションプロシージャ
１３０  ランタイムコンフィギュレーションプロシージャ
１３２  コンフィギュレーションファイル
１３４  コンフィギュレーションファイル
１４０  ドライブグループ
１４２  ドライブグループ
１４４  ドライブグループ
【図１Ａ】
0004478233.tif 000004
【図１Ｂ】
0004478233.tif 000005
【図２】
0004478233.tif 000006
【図３】
0004478233.tif 000007
【図４】
0004478233.tif 000008
【図５】
0004478233.tif 000009
【図６】
0004478233.tif 000010
【図７】
0004478233.tif 000011
【図８】
0004478233.tif 000012
【図９】
0004478233.tif 000013
【図１０】
0004478233.tif 000014
【図１１】
0004478233.tif 000015