(57)【要約】  データストレージシステム内でのアクセスのためにデータユニットを準備するための方法が開示される。データストレージシステムは、データユニットを有する複数のストレージデバイスを含む。データストレージシステムのすべてのストレージデバイスの電源が同時にオンとなることはない。この方法は、補助データを準備するステップと格納するステップとを含む。補助データは、データユニットのアクセス要求中に電源がオフとなるストレージデバイス上のデータユニット用に準備される。補助データは、データユニットがアクセス要求の対象である場合、電源がオンのストレージデバイス上で補助データが使用可能な可能性があるように、ストレージデバイス上に格納される。
2009505310.tif 000002
【特許請求の範囲】
【請求項１】
データストレージシステム内におけるアクセスのためにデータユニットを準備する方法であって、前記データストレージシステムはデータユニットを有する複数のストレージデバイスを備え、前記ストレージデバイスのすべての電源が同時にオンとなることはなく、
電源がオフとなるストレージデバイス上のデータユニットのために、前記データユニットのアクセス要求中、補助データを準備するステップと、
前記データユニットがアクセス要求の対象である場合、電源がオンのストレージデバイス上で前記補助データが常に使用可能なように、複数のストレージデバイス上に前記補助データを格納するステップと
を含むことを特徴とする方法。
【請求項２】
前記補助データは、すべての前記ストレージデバイス上に格納されることを特徴とする請求項１に記載の方法。
【請求項３】
前記補助データを格納するためにストレージデバイス上の補助データ領域を使用するステップと、
前記補助データを更新するステップと
をさらに含むことを特徴とする請求項１に記載の方法。
【請求項４】
前記補助データを更新するために、変更ログおよび世代識別番号を使用するステップをさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記世代識別番号は、前記補助データが更新されるごとに増分されることを特徴とする請求項４に記載の方法。
【請求項６】
前記補助データは、前記世代識別番号が最新でない場合、前記補助データ領域上で更新されることを特徴とする請求項４に記載の方法。
【請求項７】
前記変更ログは、前記世代識別番号の各増分に対応する更新を含むことを特徴とする請求項４に記載の方法。
【請求項８】
前記補助データは、前記アクセス要求時に次の一群のストレージデバイスの電源がオンになっている場合、１群のストレージデバイスから前記次の一群のストレージデバイスに更新されることを特徴とする請求項３に記載の方法。
【請求項９】
前記補助データを更新するステップは、
前記アクセス要求が書き込み操作の場合、前記データストレージシステムの電源がオンのすべてのストレージデバイス上の前記補助データを修正するステップを含むことを特徴とする請求項３に記載の方法。
【請求項１０】
前記補助データは、前記アクセス要求が読み取り操作の場合、前記データストレージシステムの電源がオンのストレージデバイスのうちの１つから読み取られることを特徴とする請求項１に記載の方法。
【請求項１１】
前記アクセス要求はホストから受け取られることを特徴とする請求項１に記載の方法。
【請求項１２】
前記データユニットのために前記補助データを準備するステップは、
前記データストレージシステムのブートサイクル中に、前記データストレージシステムを設定するステップと、
前記データストレージシステムのすべてのデータユニット内の前記補助データを同期化するステップと
を含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記データストレージシステムを設定するステップは、
前記データストレージシステムの各ストレージデバイス上の補助データ領域を、前記データストレージシステムの１つまたは複数のデータユニットの一群の論理ブロックに割り当てるステップと、
前記補助データを、前記補助データ領域から前記１つまたは複数のデータユニットの前記一群の論理ブロックへと集めるステップと
を含むことを特徴とする請求項１２に記載の方法。
【請求項１４】
すべての前記ストレージデバイス上で補助データ領域を再設定するステップをさらに含むことを特徴とする請求項１２に記載の方法。
【請求項１５】
前記補助データ領域を再設定するステップは、
もはや設定内にない前記補助データ領域から、補助データをピン解除するステップと、
新しい補助データ領域を、前記１つまたは複数のデータユニットの前記一群の論理ブロックに割り当てるステップと、
前記１つまたは複数のデータユニットの前記一群の論理ブロックから、前記新しい補助データ領域へと、データを集めるステップと
を含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記補助データ領域を再設定するステップは、
アウトオブバンドおよびインバンドのインターフェースのうちのいずれか１つを介して受け取られるベンダ固有コマンドを使用することによって、前記一群の論理ブロックを修正するステップをさらに含むことを特徴とする請求項１５に記載の方法。
【請求項１７】
前記補助データ領域内のデータを同期化するステップをさらに含むことを特徴とする請求項１６に記載の方法。
【請求項１８】
前記データストレージシステムのストレージ管理ユニットが所定の期間アイドル状態である場合、前記複数のストレージデバイスの一群のストレージデバイス上で前記補助データをバックグラウンドモードで維持するステップをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１９】
前記補助データを維持するステップは、
前記バックグラウンドモードで前記一群のストレージデバイスの電源をオンにするステップを含むことを特徴とする請求項１８に記載の方法。
【請求項２０】
前記一群のストレージデバイスの電源をオンにするステップは、
前記一群のストレージデバイス内の電源がオンのストレージデバイスを、電源がオフのストレージデバイスと定期的に交換するステップをさらに含むことを特徴とする請求項１９に記載の方法。
【請求項２１】
前記ストレージデバイスを定期的に交換するための期間と、交換される前記ストレージデバイスとは、自己モニタ診断報告技術（ＳＭＡＲＴ）データによって提供され、前記ＳＭＡＲＴデータは、前記一群のストレージデバイス内の各ストレージデバイスの電源がオンである時間の記録を維持することを特徴とする請求項２０に記載の方法。
【請求項２２】
前記一群のストレージデバイスは、電源がオンの時間が最も少ないストレージデバイスを含むことを特徴とする請求項２０に記載の方法。
【請求項２３】
データユニットを有する複数のストレージデバイスであって、前記ストレージデバイスのすべての電源が同時にオンとなることはない、複数のストレージデバイスと、
電源がオフとなるストレージデバイス上のデータユニットのために、前記データユニットのアクセス要求中、補助データを準備するステップ、および
前記データユニットがアクセス要求の対象である場合、電源がオンのストレージデバイス上で前記補助データが常に使用可能なように、複数のストレージデバイス上に前記補助データを格納するステップと
を実行可能な、ストレージ管理ユニットと
を備えることを特徴とするデータストレージシステム。
【請求項２４】
前記複数のストレージデバイスの各ストレージデバイスに結合されたコントローラをさらに備え、前記コントローラは、
世代識別番号を増分するためのカウンタであって、前記世代識別番号は、前記補助データ領域が更新されるごとに増分される、カウンタと、
前記世代識別番号の各増分に対応する更新を格納するための変更ログと
を備えることを特徴とする請求項２３に記載のデータストレージシステム。
【請求項２５】
前記補助データの最新の更新を含む前記複数のストレージデバイスのうちの少なくとも１つのストレージデバイスは、常に電源がオンであることを特徴とする請求項２４に記載のデータストレージシステム。
【請求項２６】
すべての前記ストレージデバイス上で補助データ領域を再設定するための再設定マネージャをさらに備えることを特徴とする請求項２３に記載のデータストレージシステム。
【請求項２７】
前記補助データ領域内で管理されることになる論理ブロックを決定するための、補助データ領域管理アプリケーションプログラムインターフェースをさらに備えることを特徴とする請求項２３に記載のデータストレージシステム。
【請求項２８】
前記ストレージ管理ユニットが所定の期間アイドル状態である場合、前記複数のストレージデバイス上で前記補助データをバックグラウンドモードで維持するための補助データ領域マネージャをさらに備えることを特徴とする請求項２３に記載のデータストレージシステム。
【請求項２９】
前記補助データ領域は、前記複数のストレージデバイスの各ストレージデバイス内の、第１バイトまでの平均時間（ＭＴＦＢ）が短い領域であることを特徴とする請求項２３に記載のデータストレージシステム。
【請求項３０】
前記ＭＴＦＢが短い領域は一群の論理ブロックにマッピングされ、前記一群の論理ブロックは前記データストレージシステムの設定中にセットされることを特徴とする請求項２９に記載のデータストレージシステム。
【請求項３１】
命令を実行するためのプロセッサと、
電源がオフとなるドライブ上のデータユニットのために、前記データユニットのアクセス要求中、補助データを準備するための１つまたは複数の命令、および
前記データユニットがアクセス要求の対象である場合、電源がオンのデバイス上で前記補助データが常に使用可能なように、複数の前記ストレージデバイス上に前記補助データを格納するための１つまたは複数の命令
を含む、マシン読み取り可能媒体と
を備えることを特徴とする装置。
【請求項３２】
データストレージシステム内におけるアクセスのためにデータユニットを準備するための、プロセッサによって実行可能な命令を含む、マシン読み取り可能媒体であって、前記データストレージシステムは、データユニットを有する複数のストレージデバイスを備え、前記ストレージデバイスのすべての電源が同時にオンとなることはなく、前記マシン読み取り可能媒体は、
電源がオフとなるドライブ上のデータユニットのために、前記データユニットのアクセス要求中、補助データを準備するための１つまたは複数の命令、および
前記データユニットがアクセス要求の対象である場合、電源がオンのデバイス上で前記補助データが常にアクセス可能および使用可能なように、複数の前記ストレージデバイス上に前記補助データを格納するための１つまたは複数の命令
を含むことを特徴とするマシン読み取り媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、その全文が本明細書に記載されるように、参照により本明細書に組み込まれた、２００３年６月２６日出願の「Method and Apparatus for Power-Efficient High-Capacity Scalable Storage System」という名称の米国特許出願第１０／６０７９３２号明細書の一部継続出願である。
【０００２】
本発明は、一般に、データストレージシステムに関し、より具体的に言えば、電力効率の良い大容量のデータストレージシステムにおける補助データへのアクセスに関する。
【背景技術】
【０００３】
コンピューティングアプリケーション用のデータストレージシステムは、ハードディスクドライブ、フロッピー(登録商標）ドライブ、テープドライブ、およびコンパクトディスクなどの、ストレージデバイスを含む。これらのアプリケーションの量および複雑さが増加するのに比例して、より大規模な記憶容量に対する需要が高まってきている。したがって、大容量ストレージデバイスの生産が増加している。しかしながら、大規模な記憶容量は、データ転送率が適度に高い高信頼ストレージデバイスを必要とする。さらに、単一ストレージデバイスの記憶容量は、ある一定の限度を超えて増やすことはできない。したがって、一般に、この記憶容量を増やすという需要の高まりを満たすために、複数のストレージデバイスを使用する様々なデータストレージシステムの設定およびトポロジが使用される。
【０００４】
この需要の高まりを満たすためのデータストレージシステムの設定は、複数のディスクドライブの使用を含む。こうした設定により、格納済みデータの冗長性が可能である。冗長性により、デバイス障害の場合のデータ整合性が保証される。多くのこうしたデータストレージシステムでは、中央制御装置の支援により、パリティおよびその生成などのデータの冗長性を使用することによって、一般的な障害からの回復をデータストレージシステム内で自動化することができる。こうしたデータストレージシステムの１つが、典型的には、Ｍａｓｓｉｖｅ  Ａｒｒａｙ  ｏｆ  Ｉｄｌｅ／Ｉｎｄｅｐｅｎｄｅｎｔ  Ｄｉｓｋ（ＭＡＩＤ）と呼ばれる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＭＡＩＤストレージシステムは、これらのシステムからのデータアクセス時間を増やすという特有の欠点を抱える。ＭＡＩＤシステムでは、ストレージデバイスは必要な場合のみ電源オンとなる。したがって、ある時点では一部のディスクドライブのみの電源がオンとなり、その時点で電源がオフのディスクドライブにアクセスするには時間がかかる。これは、電源がオフのディスクドライブの電源をオンにする必要があるためであり、それによって、ディスクドライブへの最初の読み取り／書き込み要求のデータアクセス時間が増加する。
【課題を解決するための手段】
【０００６】
本発明の一実施形態に従った、データストレージシステム内でのアクセスのためにデータユニットを準備するための方法が提供される。データストレージシステムは、すべてのストレージデバイスが同時に電源オンされないような、複数のデータストレージデバイスを含む。この方法は、データユニットのアクセス要求中に電源がオフされることになるストレージデバイス上に、データユニット用の補助データを準備するステップと、データユニットがアクセス要求の対象である場合、電源がオンされたストレージデバイス上で常に補助データが使用可能なように、複数のストレージデバイス上に補助データを格納するステップとを含む。常に使用可能およびアクセス可能として提示されたこうした補助データは、ピンデータ（ｐｉｎｎｅｄ  ｄａｔａ）とも呼ばれる。
【０００７】
本発明の他の実施形態では、データストレージシステムが提供される。このデータストレージシステムは、複数のデータストレージデバイスおよびストレージ管理ユニットを含む。複数のデータストレージデバイスはデータユニットを含み、すべてのデータストレージデバイスの電源が同時にオンとなることはない。ストレージ管理ユニットは、データユニットのアクセス要求中に電源がオフされることになるストレージデバイス上に、データユニット用の補助データを準備する。さらにストレージ管理ユニットは、データユニットがアクセス要求の対象である場合、電源がオンされたストレージデバイス上で常に補助データが使用可能なように、複数のストレージデバイス上に補助データを格納する。
【０００８】
次に、本発明を制限するためではなく例示するために提供され、同じ指定が同じ要素を示す、添付の図面と共に、本発明の様々な実施形態について説明する。
【０００９】
本発明は様々な修正および代替の形を対象としているが、図面および添付の詳細な説明には、その特定の諸実施形態が例として示されている。しかしながら、この図面および詳細な説明は、本発明を、説明された特定の実施形態に限定することを意図するものではないことを理解されたい。その代わりに本開示は、添付の特許請求の範囲によって定義された本発明の範囲内にあるすべての修正形態、等価形態、および代替形態をカバーすることを意図するものである。
【発明を実施するための最良の形態】
【００１０】
次に、本発明の１つまたは複数の実施形態について説明する。以下で説明するこれらおよび任意の他の実施形態は例示的なものであり、本発明を限定するのではなく例示することを意図するものであることに留意されたい。
【００１１】
本明細書で説明されるように、本発明の様々な実施形態は、対応するデータストレージドライブを有する多数の緊密にパックされたデータドライブの電源が、使用要件に応じて個々にオンおよびオフされる、スケーラブル、高信頼性、良好な電力効率、および大容量の、データストレージを提供するための、システムおよび方法を含む。
【００１２】
一実施形態では、本発明はＲＡＩＤタイプのデータストレージシステムで実施される。このシステムは多数のハードディスクドライブを採用する。データがシステムに書き込まれる場合、データはディスクドライブのうちの１つまたは複数に書き込まれる。データが損失または破損する可能性を低減させるために、データに対応するメタデータおよびパリティ情報もディスクドライブのうちの１つまたは複数に書き込まれる。データがディスクに書き込まれる様式には、通常、メタデータおよびパリティディスクに加えて、一度に１つのデータディスクしか関係しない。同様に、データの読み取りには、通常、一度に１つのデータディスクしか関係しない。したがって、現時点でアクセスされていないデータディスクの電源はオフにすることができる。したがってシステムは、現時点でアクセスされているディスクのサブセットの電源を投入し、アクセスされていないディスクのサブセットの電源は切断するように、それぞれのディスクへの電力を個々に制御するように設定される。
【００１３】
任意の所与の時点でシステム内のディスクドライブの一部のみの電源がオンにされることから、このシステムの電力消費は、すべてのディスクドライブの電源を同時にオンにしなければならない、同程度の従来システム（すなわち、ほぼ同じ合計数の同様のディスクドライブを備えるシステム）の電力消費よりも少ない。このシステムでは電力消費が少ないことから、従来システムよりも熱の発生が少なく、冷却の必要性が低い。したがって本システムは、同程度の従来システムよりも小型のエンクロージャにパッケージングすることができる。本システムと従来システムとの他の相違点は、従来システムが、システムによって採用されたデータ保護スキーム（例えばＲＡＩＤレベル３）に従って、データを適切なデータディスクにルーティングするためのスイッチを必要とすることである。これに対して本システムでは、任意の所与の時点でほとんどのディスクドライブの電源はオフであるため、データは単純なファンアウト（ｆａｎ−ｏｕｔ）相互接続によって分散可能であり、これにより電力消費は少なくなり、従来システムで使用されるスイッチよりもシステムエンクロージャ内で占めるボリュームの方が少なくなる。本システムと従来システムとの他の相違点は、個々のディスクドライブに特定の信頼性（例えば平均故障寿命、すなわちＭＴＴＦ）が与えられた場合、従来システムは本質的に、システム内のディスクドライブ数および個々のディスクドライブの信頼性によって制約されるのに対して、本システムは特定の信頼性レベル（例えばしきい値平均故障間隔、すなわちＭＴＢＦ）を満たすように設計可能である、という点である。
【００１４】
本発明の様々な実施形態は、電源管理、データ保護、物理パッケージング、およびストレージトランザクション性能という、前述の４つの領域において、従来システム（例えばＲＡＩＤシステム）に優る利点を提供することができる。次にこれらの利点について、異なる影響領域に関して説明する。
【００１５】
電源管理
電源管理については、本発明の諸実施形態は、電力消費を削減するだけでなく、ドライブの最適なパワーサイクリング（ｐｏｗｅｒ  ｃｙｃｌｉｎｇ）によってシステムの信頼性を向上させることができる。言い換えれば、いつでも合計ドライブ数のサブセットのみの電源がオンになる。したがって、システム全体の信頼性がある一定の受け入れ可能なしきい値を超えるように設計することができる。
【００１６】
個々のドライブに基づくパワーサイクリングは、本実施形態と従来システムとを区別する特徴の１つである。前述のように、従来技術の多重ドライブシステムは、エネルギーを節約するためにシステムの動作中に決定論的様式で、個々のドライブの電源、またはドライブセットの電源さえも、オフにすることはできない。その代わりに、システム全体の電源を便宜主義的にオフにすることを教示する。言い換えれば、システムがまったく使用されないと予測された場合、システム全体の電源をオフにすることができる。システムの電源がオフの期間は、もちろん使用することができない。本発明の諸実施形態は、システム内の他のドライブの電源は引き続きオンのままで、個々のドライブの電源をオフにすることによって、データストレージに対して電力効率の良いシステムを提供し、緊密にパックされたドライブを使用するような機構により、同じ占有スペースで従来システムよりも高いドライブ密度を達成することができる。
【００１７】
データ保護
データ保護については、障害の発生したディスクの交換時に大幅な混乱なしに交換を可能にしながら、使用されるストレージオーバヘッドにおける効率性を保証する、データ保護スキームを提供することが望ましい。ＲＡＩＤスキームは、いつでも電源がオンになる正しいドライブサブセットで動作するようにしなければならないため、このスキームはドライブのパワーサイクリングに関して最適化されなければならない。したがって、任意の読み取りまたは書き込み操作は、たとえ固定ドライブセットの電源がオンである場合であっても、予想される時間内に完了しなければならない。本発明の諸実施形態は、ほとんどまたはすべてのデータディスクを同時に使用しないデータ保護スキームを採用するため、電源がオフのドライブを、動作を大幅に混乱させることなく容易に交換することができる。
【００１８】
物理パッケージング
システムの物理パッケージングについては、ほとんどのストレージデバイスは特定のボリューム制約に準拠しなければならない。例えば、標準ラックに対応する寸法および重量の制限があり、多くの顧客はこれらの制限範囲内のシステムを使用しなければならない可能性がある。本発明の諸実施形態は、ドライブの高密度パッキングおよび相互接続を使用して、ドライブの物理的編成を最適化し、これらの制約内で可能な最大数のドライブを達成する。
【００１９】
ストレージトランザクション性能
ストレージトランザクション性能については、ドライブのパワーサイクリングの結果、いつでも限られた数のドライブのみの電源がオンとなる。これが、２つの領域で性能に影響を与える。第１に、合計Ｉ／Ｏは、電源が投入されたドライブの数によって束縛される。第２に、電源がオフのドライブにあるブロックへのランダムな読み取り動作は、回転立ち上がり時間（ｓｐｉｎ−ｕｐ  ｔｉｍｅ）に多大な犠牲をもたらすことになる。本発明の諸実施形態は、多数の個々のドライブを使用するため、電源がオンのドライブ数がたとえ合計ドライブ数のうちのごく一部であっても、合計Ｉ／Ｏを指定の範囲内とすることができる。回転立ち上がり時間の遅延に関して、データアクセススキームが遅延を隠すため、ホストシステムが遅延を知覚すること、または性能の低下を体験することはない。
【００２０】
図１を参照すると、本発明の一実施形態に従った、多重ディスクデータストレージシステムの一般構造を示す図が示される。図１に示されたシステムは、単に本発明の実施形態の一態様（パワーサイクリング）を示すことが意図された非常に簡略化された構造であることに留意されたい。好ましい実施形態のより詳細な表現が図２および添付の以下のテキストに示される。
【００２１】
図１に示されるように、データストレージシステム１０は複数のディスクドライブ２０を含む。本開示では、図面における同一のアイテムは、同一の参照番号およびそれに続く小文字によって、例えば２０ａ、２０ｂなどのように示すことが可能であることに留意されたい。本明細書では、アイテムは単に参照番号によって集合的に参照される場合がある。各ディスクドライブ２０は、相互接続４０を介してコントローラ３０に接続される。
【００２２】
図１では、ディスクドライブ２０は２つのサブセット５０および６０にグループ分けされることがわかる。サブセット５０およびサブセット６０は、一方のサブセット（例えば５０）におけるディスクドライブの電源がオンであり、他方のサブセット（例えば６０）におけるディスクドライブの電源が切断されているという点で異なる。システム内の個々のディスクドライブは、必要な場合のみ電源がオンになる（または電源が投入される）。必要でない場合、それらは電源がオフになる（電源が切断される）。したがって、各サブセットを構成する特定のディスクドライブは、必要に応じて、１人または複数のユーザによるデータアクセス（読み取りおよび書き込み）を実行可能にするように変更される。これは前述のように、従来のデータストレージ（例えばＲＡＩＤ）システムは、一群のディスクドライブ全てのパワーサイクリングを提供するだけであることから、明白であり、システム内の個々のディスクドライブの電源を必要に応じて投入および切断することができない。
【００２３】
前述のように、図１によって示されるシステムは、ここでは本発明の一実施形態のパワーサイクリング態様を紹介するためにのみ使用される。本明細書で説明される本実施形態および他の実施形態は例示的なものであり、これらの諸実施形態に関する多数の変形が可能である。例えば、図１の実施形態は複数のディスクドライブを使用するが、ソリッドステートメモリ、光ドライブなどの他のタイプのデータストレージも使用可能である。しばしば実用的でなくなることが企図されるが、混合メディアドライブを使用することも可能である。したがって、本明細書でディスクドライブまたはデータストレージドライブと言及することは、広義に任意のタイプのデータストレージをカバーするものと解釈されるべきである。同様に、図１の実施形態は２つのディスクドライブサブセットを有し、その一方は電源がオンであり、一方は電源がオフであるが、他の電源状態も可能である。例えば、ディスクドライブが存在する可能性のある様々な追加の動作状態（例えばスタンバイ）が可能であり、各状態は独自の電力消費特徴を有する。
【００２４】
システム内のディスクドライブの１サブセットのみの電源を投入することによって、すべてのドライブの電源が一度にオンになるシステムと同じ占有スペース内で、より多数のドライブを使用することが可能になる。したがって、本発明の一実施形態は、ディスクドライブの高密度パッキングおよび相互接続を提供する。このシステムは、複数のシェルフを有するラックを備え、各シェルフは複数の行、またはディスクドライブの「スティック」を含む。このシステムの構造が図２に示される。
【００２５】
図２を参照すると、システムコントローラ１２０とシェルフ１１０との間の最上位相互接続が、図の左側に示される。ディスクドライブ１６０のスティック１５０それぞれに対するシェルフレベル相互接続が、図の右側に示される。図の左側に示されるように、システムは複数のシェルフ１１０を有し、そのそれぞれがシステムコントローラ１２０に接続される。各シェルフは、シェルフ内のスティック１５０に接続されたシェルフコントローラ１４０を有する。同様に、各スティック１５０はディスクドライブ１６０のそれぞれに接続されるため、それらはディスクドライブへのデータアクセスおよびディスクドライブの電源オン／オフの両方に関して、個々に制御可能である。次に、システム内のドライブの最適なパッキングおよび相互接続設定を決定するためのメカニズムについて、説明する。
【００２６】
図が見やすいように、図２の同一のアイテムのすべてが参照番号によって個別に識別されているわけではないことに留意されたい。例えば、ディスクシェルフ（１１０ａ〜１１０ｃ）、スティック（１５０ａ〜１５０ｂ）、およびディスクドライブ（１６０ａ〜１６０ｃ）のうちのいくつかのみに番号が付けられている。これは、参照番号の付けられたアイテムと参照番号が付けられていないアイテムとを区別することを意図するものではない。
【００２７】
システム内のドライブの数をＮとし、Ｎは大きな数である。
【００２８】
次にＮは、Ｎ＝ｓ，ｔ，ｄなどのように３組に分解される。
【００２９】
ｓ：通常はシステムの物理高さによって決定される、システム内のシェルフユニット数。例えば４４Ｕ標準ラックシステムの場合、ｓは８になるように選択することができる。
【００３０】
ｔ：スティックがディスクの列を備える、各シェルフユニット内の「スティック」の数。例えば２４インチ（６０．９６ｃｍ）幅のラックの場合、ｔ≦８である。
【００３１】
ｄ：シェルフの各スティック内のディスクドライブの数。標準ラックの場合、ｄは１４とすることができる。
【００３２】
図２に示されたような設定は、ディスクドライブの最大ボリューム容量のためにディスクの最良の緊密パッキングが達成できるように、シェルフ、スティック、およびディスクに分解される。この一例が図３に示される。使用可能な大規模ラックの場合、ほぼ１０００の３．５インチ（８．８９ｃｍ）ディスクをラックにパックすることができる。
【００３３】
好ましい設定は、ｉ）ドライブおよびシステム全体（ラック）のボリューム制約と、ｉｉ）完全なシステムの重さ制約とに関して最適化しながら、Ｎをｓ、ｔ、およびｄに分解することによって決定される。後者の制約は、データセンタにおける標準ラックサイズの物理的なサイズおよび重量の制限によって課せられる。
【００３４】
ドライブの大規模パッキングは、重量および寸法の制約に加えて、ディスクが指定された大気温度未満で動作できるようにするための、適切な空気流および熱放散も提供しなければならない。この熱放散制限は、システム内でのディスクの配置構成方法にも影響を与える。
【００３５】
熱放散のための十分な空気流を提供しながらドライブ密度を最大にする特定の一実施が、図３に示された設定である。
【００３６】
システムの信頼性および保守容易性（ｓｅｒｖｉｃｅａｂｉｌｉｔｙ）を向上させるためのドライブのパワーサイクリング
本発明の一実施形態は、大容量ストレージまたはニアオンライン（ＮＯＬ）システムを備える。このストレージシステムは、複数のシェルフを備えるラックレベルディスクシステムである。ホストは、ラック内のシェルフと相互接続されたシステムレベルラックコントローラ上のファイバチャネルポートを介してストレージシステムに接続することが可能である。各シェルフは、シェルフ内のすべてのドライブを制御するローカルコントローラを有する。ＲＡＩＤ機能は、パリティ保護のための冗長性ならびに故障したドライブを交換するためのディスクスペアを提供するのに十分なドライブを備えた各シェルフ内でサポートされる。
【００３７】
本実施形態では、システムはパワーサイクリングされる。より具体的に言えば、個々のドライブは、一群（大規模）ドライブ全体にわたってシステムの信頼性を向上させるために、電源がオンまたはオフとなる。現在知られた年間故障率（ＡＦＲ）が与えられたとすると、１０００  ＡＴＡドライブセットは、約２０日のＭＴＢＦを有すると予想される。企業環境において、ストレージシステムを保守するための２０日のドライブ交換期間は受け入れ不可能である。個々のドライブをパワーサイクリングさせるための本スキームは、ドライブの実際の寿命を大幅に延ばす。しかしながらこうしたパワーサイクリングは、いくつかの理由でかなりの最適化を必要とする。例えばパワーサイクリングは、結果として多くのコンタクトスタートストップ（ＣＳＳ／ｃｏｎｔａｃｔ  ｓｔａｒｔ−ｓｔｏｐｓ）を発生させ、ＣＳＳの増加はドライブの総寿命を短縮する。また、電源が投入されるドライブの数が減ることによって、大規模ＲＡＩＤセット全体にわたるデータの拡散が困難になる。したがって、ＲＡＩＤ  ５と等価のレベルでのデータ保護の実施が困難な可能性がある。さらに、電源が投入されるドライブが少ない場合、有効なシステム帯域幅が低減する。
【００３８】
一実施形態では、パワーサイクリングパラメータを決定するための手法は、図４の流れ図に示され、以下で説明するとおりである。以下の説明は、ディスクドライブが指数関数的障害率（すなわち障害の確率が１−ｅλｔであり、λは障害率の逆数である）を有することに留意されたい。他の実施形態におけるディスクドライブ（または他のタイプのドライブ）の障害率は、他の数学関数によってより近似に概算された障害率を有する可能性がある。こうしたシステムの場合、以下に記載する計算は、この指数関数の代わりに代替の障害関数を使用することになる。
【００３９】
単一の物理システム内の緊密にパックされたＮの多数のドライブを備える場合、システムのＭＴＴＦは、Ｎが大きな数字になるにつれて大幅に増えることになる。
【００４０】
単一ドライブのＭＴＴＦがｆ（通常は時間単位）で、ｆ＝１／（ドライブの障害率）の場合、システムＭＴＢＦの、システム内の個々のディスクの障害間のＦは、
【００４１】
【数１】
2009505310.tif 000003
【００４２】
である。
【００４３】
Ｎ＝１０００であり、ｆ＝５００，０００時間、すなわち５７年の場合、Ｆ＝２２日である。こうした低いＭＴＢＦは、ほとんどのデータセンタおよび企業にとって受け入れ不可能である。前述のようにシステムＭＴＢＦは、システム内の各ドライブの総寿命を延長させるために、ドライブの電源をオンおよびオフにすること、すなわちドライブのパワーサイクリングによって増加させることが可能である。これにより、構成要素（ドライブ）が修理または交換可能な場合、企業内のコンピューティングシステムの保守容易性が、決定論的なスケジューリングされたサービス時間を必要とするため、システムの保守が容易になる。定期的なスケジューリングされた保守を有することが望ましいため、この制約は以下のような計算に組み込まれる。
【００４４】
故障したディスクドライブを交換するためのシステムの保守間隔をＴとし、必要なパワーサイクリングデューティ率をＲとする。
【００４５】
有効なシステムＭＴＢＦはＴであり、システムの有効障害率は１／Ｔである。
【００４６】
次に、Ｎディスクのシステムにおける有効ＭＴＢＦは、以下のとおりである。
【００４７】
【数２】
2009505310.tif 000004
【００４８】
したがって、保守間隔がＴであるように、単一システム内の多数ドライブにおけるディスクの有効ＭＴＴＦを算出することが可能である。
【００４９】
実際のＭＴＴＦはｆであるため、本発明者らの講じる手法は、ドライブをパワーサイクリングさせること、すなわち、ドライブをある期間だけオフにした後、ある期間オンにすることである。
【００５０】
Ｒが有効ＭＴＴＦに合致させるための作業率である場合、
【００５１】
【数３】
2009505310.tif 000005
【００５２】
となる。
【００５３】
したがって、ドライブのＯＮ期間がρ時間の場合、ドライブはρ／Ｒ時間ＯＦＦでなければならない。
【００５４】
さらに、いかなる時点においても、すべてのドライブのサブセットのみの電源がオンであるため、電源がＯＮのシステム内の有効ドライブ数は
【００５５】
【数４】
2009505310.tif 000006
【００５６】
である。
【００５７】
したがって、シェルフのすべてのドライブの率Ｒは、各シェルフにおいて電源がＯＮでなければならない合計ドライブ数でもある。これにより、データの書き込みまたは読み取りに使用されるドライブの数、ならびにメタデータを保持するために使用される任意の他のドライブの数も制限される。
【００５８】
ρ時間のＯＮ期間を決定するパワーサイクリングにおいて満たさなければならない１つの他の制約がある。
【００５９】
典型的なドライブの寿命がｆ時間（公称ＭＴＴＦと同じ）である場合、あるドライブのパワーサイクリングイベントの数はＣＳＳ（すなわちコンタクトスタートストップ）である。
【００６０】
【数５】
2009505310.tif 000007
【００６１】
ＣＳＳは最大ＣＳＳｍａｘに限定されるため、任意のドライブについて、
ＣＳＳ＜ＣＳＳｍａｘ
である。
【００６２】
したがって、ρは、ＣＳＳｍａｘを決して超えないように選択されなければならない。
【００６３】
図４は、パワーサイクリングパラメータを確立するための流れ図を示す。
【００６４】
ニアオンライン（ＮＯＬ）システムのための効率的なデータ保護スキーム
一実施形態では、本電源管理システムのニーズを満たすために、新しいＲＡＩＤ変形が実施される。システムの保守容易性要件を満たすために、ドライブのパワーデューティサイクルＲは１００％未満となり、５０％をはるかに下回る場合もある。したがって、あるデータボリュームがシェルフ内のＲＡＩＤボリュームに書き込まれる場合、ＲＡＩＤセット内のすべてのドライブの電源が投入されている（ＯＮ）ことは不可能である。本明細書で開示されるＲＡＩＤ変形は、次のような機能を提供するように設計される。
【００６５】
第１に、このスキームは、適切なパリティ保護を提供するように設計される。さらに、保守容易性のニーズによって課せられたＣＳＳしきい値に違反しないことを保証するようにも設計される。さらに、ＲＡＩＤストライピングパラメータは、作業負荷パターン、ラックレベルでサポートされる帯域幅、およびアクセス時間のニーズを満たすように設計される。第１のバイトへのアクセス時間も、テープまたは順次媒体よりはるかに良好でなければならない。このスキームは、パリティベースのデータ保護およびオーバヘッドの低いディスクスペアリング（ｓｐａｒｉｎｇ）を提供するようにも設計される。
【００６６】
データ保護スキームには、対処しなければならないいくつかの問題がある。例えば、書き込み中の（システム内に多数のドライブがあることによるディスク障害の可能性の増加を原因とする）ディスクの障害によって、Ｉ／Ｏトランザクションが完了しない場合がある。したがって、書き込み中にデータ整合性を保証するため、およびデータの損失を避けるための手段を、スキーム内に設計しなければならない。さらにデータ保護は、ＲＡＩＤ冗長性またはパリティ保護を必要とする。しかしながら、ＲＡＩＤ動作は通常、データおよびパリティが複数のドライブ上で書き込まれるため、すべてのドライブの電源をＯＮにする必要がある。さらに、ＲＡＩＤ保護およびディスクスペアリングを使用することは、通常、潜在的に有効な容量を減少させる高ディスクスペースオーバヘッドにつながる。さらに、パワーサイクリングは、コンタクトスタートストップ（ＣＳＳ）の数を増加させるため、ＣＳＳ障害率が、おそらく４倍またはそれ以上に上昇する。
【００６７】
一実施形態では、各シェルフに、スケジュールごとまたは読み取り／書き込み動作ごとにパワーサイクリングされるデータおよびパリティドライブと、ドライブ障害時にデータを移行するために使用されるスペアドライブと、任意の所与のＲＡＩＤセットの状態および設定を維持するメタデータドライブとの、３タイプのドライブが存在する。メタデータドライブは、すべてのＩ／Ｏ動作およびディスクドライブの動作上の遷移（電源投入、電源切断、スペアリングなど）のためのメタデータを含む。このボリューム上に常駐するデータは、一群のディスクドライブ上のデータに関する情報を提供するように、さらにはまだ電源がオンになっていないドライブに書き込まれるかまたはこうしたドライブから読み取られることになるデータをキャッシュに入れるようにも、編成される。したがってメタデータボリュームは、ディスク管理、Ｉ／Ｏ性能、および耐障害性において、重要な役割を果たす。
【００６８】
本システムで使用されるＲＡＩＤ変形は、ＲＡＩＤセット内のディスクの最小サブセットへの書き込みを「直列化」しながら、ＣＳＳ制限を超えないこと、ならびに書き込みＩ／Ｏ性能がアクセス時間およびデータ速度において悪化しないことを保証する。
【００６９】
ＲＡＩＤ変形へのアプローチ
データ保護技法を適用する場合、一群のドライブおよびデータが置かれている可能性のある複数の状態が存在する。一実施形態では、以下の状態が使用される。初期化−この状態では、ボリュームは割り振られているが、対応するディスクには、可能なファイルメタデータを除いて、何のデータも書き込まれていない。標準−この状態では、ボリュームは対応するディスクドライブセット内に常駐する有効なデータを有する。これには、Ｉ／Ｏ動作の結果としてデータの転送が発生したボリュームが含まれる。データ冗長性−この状態では、ボリュームは予め機能低下しており、ボリューム全体にわたってデータ冗長性を復元中である。スペアリング−この状態では、一群内のディスクドライブが交換される。
【００７０】
仮定条件
データ保護の技法を開発する場合、選択された技法に基づいて作成されることになる交換条件がある。交換条件を考える場合、２つの条件が仮定される。第１の仮定条件は、このデータストレージシステムが、企業オンラインストレージシステムのＩ／Ｏ性能を達成しないこと、またはこれに近づかないことである。言い換えればこのシステムは、高Ｉ／Ｏトランザクションのためではなく、信頼性のために設計される。第２の仮定条件は、このデータストレージに関するＩ／Ｏ作業負荷使用法が、通常は、大規模な順次書き込み、および中程度から大規模までの順次読み取りであることである。
【００７１】
初期化済みの一群のディスクドライブ
初期化済みの一群のディスクドライブは、単一のディスクドライブ障害がデータの損失を発生させない、データのマッピング編成からなる。この技法では、すべてのディスクドライブが０の値に初期化される。
【００７２】
「ゼロ初期化済み」ディスクドライブの存在は、「回転パリティ（ｒｏｌｌｉｎｇ  ｐａｒｉｔｙ）」更新を作成するための基準として使用される。例えば図５を参照すると、４つのディスクドライブ２０１〜２０４の一群では、すべてのドライブ（３つのデータおよび１つのパリティ）が「０」に初期化される。（ディスクドライブは図内では水平に配置構成されており、垂直に並べられた列は異なる時点での単一のディスクを表すことに留意されたい。）ＸＯＲ計算の結果は、パリティドライブのコンテンツの結果を示す。
【００７３】
【数６】
2009505310.tif 000008
【００７４】
「５」の値を有するデータが第１のディスク２０１に書き込まれる場合、パリティディスク２０４に書き込まれるパリティは「５」を表すことになる。
【００７５】
【数７】
2009505310.tif 000009
【００７６】
次のデータディスク（ディスク２０２）が「Ａ」の値で書き込まれる場合、パリティは「Ｆ」として表されることになる。
【００７７】
【数８】
2009505310.tif 000010
【００７８】
パリティディスクは３つのデータディスクすべてのＸＯＲ演算に等しい値を含むが、正しいパリティを生成するために、必ずしもすべてのディスクの電源をオンにする必要はないことに留意されたい。その代わりに、新しいパリティ（「Ｆ」）を生成するために、古いパリティ（「５」）と新しく書き込まれたデータ（「Ａ」）とがＸＯＲ演算される。したがって、必ずしもディスク２０２上の古いデータをＸＯＲ演算する必要はない。
【００７９】
メタデータボリューム
一実施形態では、所与のＲＡＩＤセットの状態および設定を維持するために、「メタデータボリューム」（ＭＤＶ）が存在する。このボリュームは、耐障害性に関してミラーリング可能なオンラインの動作ディスクドライブの一群である。このボリュームは、ディスクドライブの一群と同じドメイン内に常駐する。したがって、動作環境は、このボリュームをサポートするのに十分な電力、冷却、およびパッケージングを提供するはずである。このボリュームは、Ｉ／Ｏ動作およびディスクドライブの動作上の遷移（電源投入、電源切断、スペアリングなど）に使用されるメタデータを含む。このボリューム上に常駐するデータは、データのサブセットのコピーが一群のディスクドライブ上のデータを表すように編成される。
【００８０】
好ましい実施では、メタデータボリュームは、シェルフ内のディスク上に常駐するすべてのデータボリュームに関するメタデータに対応する、各シェルフ内に配置される。図６および７を参照すると、メタデータボリュームのデータコンテンツが示される。このボリュームは、シェルフ、ＲＡＩＤ、ディスク、およびエンクロージャに関するすべてのメタデータを含む。ラックコントローラに関するメタデータも存在する。このメタデータは、ラックコントローラとディスクシェルフとの間の正しいシステム設定を決定するために使用される。
【００８１】
一実施形態では、メタデータボリュームは、合計ドライブ数などのシェルフ属性、ドライブスペア、未使用データ、ＲＡＩＤセットのセットなどのＲＡＩＤセットの属性およびメンバシップ、シリアル番号などのドライブ属性、ハードウェア改訂、ファームウェア改訂、ならびに、読み取りキャッシュおよび書き込みキャッシュを含むボリュームキャッシュを含む。
【００８２】
ボリューム設定
一実施形態では、メタデータボリュームはミラーリングされた一群のディスクドライブである。この実施形態では、ミラーリングされたドライブの最低数は２である。メタデータボリューム内のディスクドライブの数は、ユーザによって要求された保護レベルに合致するように設定することができる。ディスクの数がディスクコントローラの数を超えることはできない。ディスクシェルフ内で最高レベルの耐障害性を提供するために、メタデータボリュームは各ディスクコントローラにまたがってミラーリングされる。これにより、単一のディスクコントローラがシェルフコントローラを使用不可にする可能性がなくなる。
【００８３】
メタデータボリュームの最高の性能を提供するために、動的再設定によって、ディスクドライブが動作可能な最良のディスクコントローラを決定することができる。また、メタデータボリュームのディスク障害の場合、ディスクシェルフ内の第１の未割り振りディスクドライブが使用されることになる。したがって、未割り振りディスクドライブが残っていない場合、第１の割り振り済みスペアディスクドライブが使用されることになる。使用可能なディスクドライブが残っていない場合、シェルフコントローラは、メタデータボリュームが対処されるまで機能停止状態のままとなる。
【００８４】
ボリュームレイアウト
メタデータボリュームのレイアウトは、永続データおよびディスクシェルフの状態を提供するように設計される。このデータは、シェルフ設定、ＲＡＩＤセット設定、ボリューム設定、およびディスク設定に使用される。この永続メタデータは、ディスクシェルフのすべての段階（初期化、標準、再構築、サービスなど）で、更新および利用される。
【００８５】
メタデータボリュームデータは、状況および設定データをラックコントローラに送るために使用される。例えば、メタデータは各ディスクドライブに関する「健康情報」（すなわち、ディスクドライブがどのぐらいの間稼動しているか、電源が何回オンおよびオフされたか、ならびにその信頼性に影響を与える可能性のある他の要素、に関する情報）を含むことができる。特定のディスクドライブに関する健康情報が、そのドライブを交換するべきであることを示す場合に、システムは、第１のドライブに障害がある場合、そのディスクドライブ上のデータを他のドライブにコピーすることを開始するか、あるいは、単にそのドライブを次の標準サービス間隔で交換すべきである旨の通知を出すことができる。メタデータボリュームデータは、各ボリュームに関するボリュームキャッシュ領域も指定している。ボリュームがオフラインの場合、ボリュームがオンラインになるまでメタデータボリュームに格納されたそのオフラインボリュームに関するデータを使用することができる。これにより、ラックコントローラからの要求を通じて、１０〜１２秒（または対応するドライブの電源をオンにするのに必要な任意の時間）のウィンドウが提供され、その間、書き込みデータはキャッシュに入れられ、オフラインボリュームのドライブは電源が投入される。ドライブの電源が投入され、ボリュームがオンラインになった後、キャッシュに入れられたデータはボリュームに書き込まれる。
【００８６】
シェルフ初期化
ディスクシェルフの電源オン／リセット時に、すべてのデータがメタデータボリュームから読み取られる。このデータは、ディスクシェルフを動作モードにするために使用される。ディスクシェルフは初期化を完了すると、ラックコントローラがラックコントローラ初期化プロセスを開始するまで待機することになる。
【００８７】
ボリューム操作
ディスクシェルフが動作モードに入ると、各ボリュームはメタデータボリュームと同期化される。各ボリュームは、ディスクドライブ上の関連した一群のメタデータを有することになる。これは、壊滅的なメタデータボリューム障害の場合に必要である。
【００８８】
読み取りキャッシュ動作
メタデータボリュームは、各ボリュームについて予約されたスペースを有する。メタデータボリュームの予約スペース内に、割り振られたボリューム読み取りキャッシュ（ＶＲＣ）が常駐する。この読み取りキャッシュは、電源によって開始されると、ディスクドライブの回転立ち上がり時間およびシーク時間を軽減するように設計される。ＶＲＣは、各ボリュームの初期部分を複製する。ＶＲＣで複製されるデータのサイズは、所望の性能および環境条件に依存することになる。したがって、オフラインボリュームにＩ／Ｏ  ＲＥＡＤ要求が与えられると、ＶＲＣからデータを供給することができる。このデータが、関連するボリュームとコヒーレントであり整合性があることを保証するように、注意を払わなければならない。
【００８９】
書き込みキャッシュ動作
前述のように、メタデータボリュームは各ボリュームについて予約されたスペースを有する。メタデータボリュームの予約済みスペース内には、割り振られたボリューム書き込みキャッシュ（ＶＷＣ）が常駐する。この書き込みキャッシュは、電源によって開始されると、ディスクドライブの回転立ち上がり時間およびシーク時間を軽減するように設計される。ＶＷＣは、各ボリュームについて複製された初期データの一部、例えば５１２ＭＢを有する。したがって、オフラインボリュームにＩ／Ｏ書き込み要求が与えられた場合、データを一時的にＶＷＣに格納することができる。ここでも、このデータが、関連するボリュームとコヒーレントであり整合性があることを保証するように、注意を払わなければならない。
【００９０】
一群のディスクのＩ／Ｏ動作
図８を参照すると、一群のディスク上にデータが格納される様式を示す図が示されている。一群のディスクは、コンテナと呼ばれるデータブロックの「大規模連続」群に区分される。ストレージユーザまたはサーバに提示される単一または複数のディスクボリュームは、コンテナを表す可能性がある。コンテナ内のデータブロックは、通常は５１２バイトのディスクセクタサイズによって決定される。各コンテナは静的に割り振られ、０からｘまでのアドレスが指定されるが、ここでｘはデータブロック数から１を引いた数である。次に各コンテナはいくつかのサブコンテナに分割することができる。
【００９１】
各コンテナへのアクセスは、アドレス間接指示（ｉｎｄｉｒｅｃｔｉｏｎ）レベルを介する。コンテナは、０からｘまでのアドレスが指定された、ブロックの連続群（セット）である。デバイスがアドレス指定された場合、関連付けられたディスクドライブは電源が投入され、動作可能でなければならない。一例として、コンテナ０はディスクドライブ１のアドレススペース内に完全に含まれる。したがって、コンテナ０が書き込まれるかまたは読み取られる場合、電源がオンのディスクドライブのみがディスクドライブ１である。
【００９２】
システムに関する電力量および冷却能力に制限があり、一度に１つのディスクドライブにのみアクセス可能である場合、コンテナ２にアクセスするためには、コンテナ２が両方のディスクドライブにまたがるため、ディスクドライブ１および２に交互に電源を投入しなければならない。最初に、ディスクドライブ１の電源が投入される。次に、ディスクドライブ１の電源が切断され、ディスクドライブ２の電源が投入される。したがって、アクセス準備ができるまでにディスクドライブ２の遅延が生じることになる。したがって、ディスクドライブ２上の次の一群のデータブロックのアクセスが遅延することになる。これは一般に、ディスクドライブへのアクセスにとって受け入れ可能な挙動ではない。したがって、各ディスクドライブおよび／またはコンテナの第１のセグメントは、アクティブ／オンラインのディスクドライブの別々のセットでキャッシュに入れられる。この実施形態では、図９に示されるように、コンテナ２に関するデータブロックがメタデータボリューム上に常駐する。
【００９３】
２つのディスクドライブ間の遷移が、一方のディスクドライブの電源を切断することおよび他方のディスクドライブの電源を投入することによって実施される、この技法は、単なる単一ペアのディスクドライブよりも多くに適用することができる。より高位の帯域幅が必要な場合、前述の単一ドライブを、それぞれ一群のディスクドライブの代表とすることができる。このディスクドライブ設定は、ＲＡＩＤ  １０、または、多くのディスクドライブ（スピンドル）にわたってデータを拡散することが可能な何らかの他の形のデータ編成を含むことができる。
【００９４】
一群の冗長になるディスクドライブ
図１０を参照すると、冗長ディスクドライブのペアの使用を示す図が示されている。データが一群のディスクドライブに割り振られる場合、データの複製が必要である。複製がＲＡＩＤ（１、４、５など）の形であると想定すると、マージングプロセスはデータのコヒーレントを維持しなければならない。このプロセスは、各書き込み動作と同期的に実行するか、または後で実行することができる。一度にすべてのディスクドライブの電源がオンとなることがないため、一群のディスクドライブの現在の状況を追跡することが有用である。このハウスキーピング（ｈｏｕｓｅｋｅｅｐｉｎｇ）はデータブロックを再生成するために必要な情報を含み、データを復元する際に、どの一群のディスクドライブまたはディスクドライブサブセットが有効であるかが正確にわかる。
【００９５】
可変ＲＡＩＤセットメンバシップ
本明細書で説明される電源管理システムの重要な利点の１つは、たとえ複数のディスクドライブに障害が発生した場合であっても、ＲＡＩＤセット内のドライブが再使用可能であるという点である。従来のＲＡＩＤシステムでは、ＲＡＩＤセット内の複数ドライブに障害が発生すると、ＲＡＩＤセット内のすべてのドライブにわたってデータがストライピングまたは分散されているため、結果としてＲＡＩＤセット内のすべてのドライブを中止する必要が生じる。本明細書で説明される電源管理システムの場合、異なるＲＡＩＤセットまたは異なるサイズのＲＡＩＤセット内の残りのドライブを再使用することが可能である。そのため、システム全体でかなり多くのストレージスペースが利用できることになる。
【００９６】
同じＲＡＩＤセット内で複数のドライブに障害が発生した場合、ＲＡＩＤセット内のメンバドライブのセットを（例えば６ドライブから４ドライブに）減らすことができる。前述のように「ゼロベース」のＸＯＲパリティのプロパティを使用することにより、減らされた一群のドライブに関するパリティを、これらのドライブに常駐するデータから計算することができる。これにより、今後のドライブ障害の際に、残りのドライブ上のデータを保存することが可能である。パリティドライブが障害の発生したドライブのうちの１つである場合、新しいパリティドライブを新しく形成されたＲＡＩＤセット用に指定することが可能であり、パリティ情報はこのドライブに格納されることになる。ディスクドライブメタデータは、ここで減らされたかまたは新しく形成されたＲＡＩＤセットを構成する残りのドライブおよび／または新しいドライブを反映するように、更新される。
【００９７】
例示的一実施形態では、ＲＡＩＤセットは、４つのデータドライブおよび１つのパリティドライブの、５つのメンバドライブを有する。１つのデータドライブに障害が発生した場合、十分なスペースが使用可能であれば、残りのディスクドライブのいずれかにデータを再構築することができる。（障害の発生したドライブを交換するためにスペアが使用可能であり、ＲＡＩＤセットを減らす必要がない場合、データは新しいメンバドライブ上に再構築することができる。）２つまたはそれ以上のデータドライブに同時に障害が発生した場合、障害の発生していないドライブ上のデータを保持し、減らされたＲＡＩＤセット上の残りのデータで作業を進めるか、または減らされたＲＡＩＤセットを再初期化して、新しいＲＡＩＤセットとして使用することができる。
【００９８】
この同じ原理を、一群のディスクドライブの拡張に適用することができる。言い換えれば、ＲＡＩＤセットにドライブを追加することが望ましい（例えば、４ドライブから５ドライブの群に増やす）場合、ＲＡＩＤセットの削減と同じ様式で実施することもできる。ＲＡＩＤセットが追加のディスクドライブを保証する場合、新しいドライブのメンバシップを表すようにディスクドライブメタデータを更新することが必要となる。
【００９９】
一群のディスクドライブのスペアリング
一群のディスクドライブ上での障害ディスクのスペアリングは、障害データブロックおよび障害ディスクドライブの両方のイベントで実行される。障害データブロックのスペアリングは、一時的に再生成される。メタデータボリュームおよび「スペア」ディスクドライブの両方を使用することによって、一群のディスクドライブ内で冗長性を復元するプロセスをより効率的および効果的にすることができる。このプロセスは、一群のディスクドライブ内の残りのディスクドライブそれぞれの電源投入と合致される。
【０１００】
障害データブロックに関するしきい値を超えた場合、スペアディスクドライブは、交換用の候補としてＲＡＩＤセット内に割り振られる。一度に電源をオンにできるドライブの数が限られているため、障害データブロックを有するドライブおよび候補ドライブのみの電源が投入される。この時点で、良好であることが判明しているデータブロックのみが、障害データブロックの対応するアドレス位置にコピーされる。良好であることが判明しているすべてのブロックがコピーされると、障害ブロックを復元するためのプロセスが開始される。したがって、ＲＡＩＤセット全体の電源をオンにすることが必要となる。一群のディスクドライブ全体の電源をオンにする必要があるが、これは、不良ブロックの修理が必要な間のみである。すべての不良ブロックが修理された後、ドライブは電源オフ状態に戻される。
【０１０１】
障害ディスクドライブの場合、ＲＡＩＤセット内のすべてのディスクドライブの電源がオンとなる。その後、障害ディスクドライブ上のすべてのデータを復元するために、上記セクションで論じた再構築プロセスが開始される。
【０１０２】
ＲＡＩＤ自動ストレージ管理機構
システムのエンドユーザは、直接接続ストレージ（ＤＡＳ）またはストレージエリアネットワーク（ＳＡＮ）内の共有ストレージとしてのサーバに、直接接続されたディスクシステムとして、これを使用することができる。図１１では、システムは直接接続を介して１次ストレージに対するバックアップターゲットとして使用され、次いで、メディア（バックアップ）サーバを介してテープライブラリに接続される。システムは、他の実施形態で他の方法で使用することが可能である。
【０１０３】
本実施形態では、システムはサーバまたはシステムのユーザにボリュームイメージを提示する。しかしながら、エンドユーザが物理ボリュームに直接アクセスすることはできない。これは前述のように、電源がオンであろうとなかろうと、電源管理ＲＡＩＤを介して、物理ドライブへのアクセスの複雑さをシステムが隠しているからである。ラックおよびシェルフレベルのコントローラは、論理ボリュームを物理ボリュームおよびドライブから隔離する。
【０１０４】
ディスクボリュームの論理ビューが提示されると、システムは、異なる物理位置に論理ボリュームを再書き込み、再配置、または移動することができる。これにより、以下で説明されるいくつかのボリュームレベル機能が実行可能になる。例えばシステムは、ディスクドライブのタイプ、容量、データ速度などからの独立を提供することができる。これにより、新しいメディアが使用可能になった場合、および新しい技術が採用された場合、新しいメディアへの移行が可能になる。これにより、技術の陳腐化（ｏｂｓｏｌｅｓｃｅｎｃｅ）を組み込むために必要なデバイス（ディスク）管理もなくなる。
【０１０５】
システムは、災害回復のための自動複製も提供することができる。１次ボリュームの第２のコピーは、ローカルまたはワイドエリアのいずれかのネットワークを介して、第３のパリティストレージデバイスに独立にコピーすることができる。さらにデバイスは、他のディスクシステム、他のテープシステムなどとすることができる。またボリュームは、リモートまたはローカルの複数のコピーを同時に作成するために、複数のサイトに複製することもできる。
【０１０６】
システムは、メディアおよび帯域幅を節約するために自動増分バックアップを提供することもできる。ストレージボリューム内の増分および微分変化は、第３またはそれ以降のコピーに伝播することができる。
【０１０７】
システムは、認証および許可サービスも提供することができる。ラックおよびシェルフのコントローラがボリュームのエンドユーザと物理ドライブとの間に入れられるため、これによって物理および論理の両方のボリュームならびにドライブへのアクセスを制御することができる。
【０１０８】
システムは、自動データ再活性化（ｒｅｖｉｔａｌｉｚａｔｉｏｎ）も提供することができる。ディスクメディア上のデータは経時的に劣化する可能性があるため、システムコントローラは、データ整合性が維持されるように、ボリュームデータを自動的に異なるドライブへリフレッシュすることができる。コントローラはディスクおよびボリュームがいつ作成されたかに関する情報を有するため、どのディスクデータをリフレッシュまたは再活性化しなければならないかを追跡することができる。
【０１０９】
システムは、同時復元も提供可能であり、おそらくはシステム内のコントローラによって非同期的に、またはポリシーを介して、複数の復元を同時に実施することができる。
【０１１０】
システムは、シェルフ内のメタデータボリューム内などのボリューム内に含まれる、オブジェクトの詳細に関するメタデータ情報を維持することによって、ストレージボリューム内のメタデータへの固有インデックス付けも提供することが可能である。メタデータは、システム内のボリュームにまたがって特有のオブジェクトを即時に検索するために、コントローラによる使用が可能である。
【０１１１】
システムは、すべてのボリュームコピーの管理を簡略化し、管理コストを削減するための、すべてのデータの単一表示などの、ボリュームの２次および複数コピーの管理と、データコピーの配布の自動管理と、システムがバックアップを作成するために使用される場合、バックアップされている１次ボリュームの自動発見および変更検出とのための、他のストレージ管理機能も提供することができる。
【０１１２】
好ましい実施
相互接続
好ましい相互接続システムは、１シェルフにつき１１２ディスク、および１ラックにつき８シェルフとして設定される、８９６のディスクドライブを接続するための手段を提供する。内部システム相互接続は、６つの２Ｇｂ／秒ファイバチャネルインターフェース（１０００ＭＢ／秒読み取りまたは書き込み）と等価の、総合スループットを提供するように設計される。外部システムインターフェースはファイバチャネルである。相互接続システムは、必要なスループットでディスクあたり最低コストとなるように最適化される。図１２は、ホスト（サーバまたはエンドユーザ）からエンドディスクドライブへの相互接続スキームを示す。
【０１１３】
相互接続システムは、データ信頼性を提供するために、シェルフレベルのＲＡＩＤを組み込む。ＲＡＩＤコントローラは、１１２のディスクに対処するように設計され、その一部はスペアリングに割り振ることが可能である。ＲＡＩＤコントローラは、それぞれ１４ディスクの８つのスティックにまたがる。ＲＡＩＤセットは、任意の単一のスティックコントローラまたは相互接続の損失、あるいは任意の単一のディスクドライブの損失を防止するために、複数のスティックにまたがるように設定すべきである。
【０１１４】
シェルフからスティックへのシステム相互接続は、可用性を向上させるためにスティックレベルの冗長性を提供するように設定することができる。
【０１１５】
スティックレベルの相互接続は、スティックコントローラ（ＦＰＧＡ／ＡＳＩＣプラスＳＥＲＤＥＳ）、シェルフコントローラ（ＦＰＧＡ／ＡＳＩＣプラスＳＥＲＤＥＳ、外部プロセッサおよびメモリ）、ラックコントローラ（ＦＰＧＡ／ＡＳＩＣプラスＳＥＲＤＥＳ）ならびに、関連するケーブル、コネクタ、プリント回路基板、電源、および種々雑多な構成要素からなる。オプションとして、ＳＥＲＤＥＳおよび／またはプロセッサ機能を（例えばＸｉｌｉｎｘ  Ｖｉｒｔｅｘ  ＩＩ  Ｐｒｏを使用して）拡張ＦＰＧＡに統合することができる。
【０１１６】
シェルフおよびスティックコントローラ
シェルフコントローラおよび関連付けられた８つのスティックコントローラが、図１３に示される。この実施では、シェルフコントローラは、ファイバチャネル相互接続を介してラックコントローラ（図１５）に接続される。他の実施形態では、他のタイプのコントローラおよび相互接続（例えばＳＣＳＩ）を使用できることに留意されたい。
【０１１７】
シェルフコントローラは、８つのＳＡＴＡイニシエータポートを介してアクセス可能なプログラム可能ディスクＲＡＩＤを横切って、ＲＡＩＤ  ０、１、および５ならびにそれらの組合せなどの、異なるＲＡＩＤレベルサポートを提供することができる。ＲＡＩＤ機能は、ハードウェア内で実施されるＸＯＲエンジンおよびＤＭＡエンジンによって提供される加速度で、ファームウェア内で実施される。この場合、Ｉｎｔｅｌ  ＩＯＰ３２１などのＸＯＲを装備したＣＰＵが有用な可能性がある。しかしながら、好ましい実施では、ＸＯＲを装備したＣＰＵを使用せず、一般に任意のコントローラチップを使用することができる。
【０１１８】
シェルフコントローラＲＡＩＤコントロールユニットは、ＳＡＴＡチャネルコントローラを介しＰＣＩ−Ｘバスを経てスティックコントローラに接続される。各ＳＡＴＡチャネルコントローラの８つのＳＡＴＡ出力は、スティックコントローラのデータ／コマンドルータデバイス（図１４）と接続する。各データ／コマンドルータは、各スティックの１４のＳＡＴＡドライブを制御する。
【０１１９】
ラックコントローラ
ラックコントローラは、ＳｅｒｖｅｒＷｏｒｋｓ  ＧＣ−ＬＥチップセットおよび４から８のＰＣＩ−Ｘスロットを備えたマザーボードを含む。図１５に示された実施では、ＰＣＩ−Ｘスロットには２ポートまたは４ポートの２ＧファイバチャネルＰＣＩ−Ｘターゲットバスアダプタ（ＴＢＡ）が配置される。他の実施形態では、他のプロトコルを採用する他の構成要素を使用することができる。例えば、一実施形態では、シェルフユニットに対してｕ３２０を使用する４ポートシェルフＳＣＳＩアダプタを使用することができる。
【０１２０】
補助データアクセス
さらに本発明の諸実施形態は、スケーラブルで高信頼性の電力効率の良い大容量のデータストレージシステム内で、アクセスのためにデータユニットを準備するための方法、システム、およびコンピュータプログラム製品も提供する。データストレージシステムは、複数のストレージデバイスを含む。時には、データストレージシステムのすべてのストレージデバイスの電源が同時にオンにならない。
【０１２１】
下記で説明する本発明の諸実施形態は、例えば、電源管理されたＲｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ／Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋ（ＲＡＩＤ）ストレージシステムまたはＭａｓｓｉｖｅ  Ａｒｒａｙ  ｏｆ  Ｉｎｄｅｐｅｎｄｅｎｔ／Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋ（ＭＡＩＤ）ストレージシステムなどの、データストレージシステム内でのデータユニットの準備に関連する。
【０１２２】
図１６は、本発明の実施形態に従った、データストレージシステム１６０２とホスト１６０４との対話を示すブロック図である。データストレージシステム１６０２は、データアクセスに関する要求またはアクセス要求を、ホスト１６０４から受け取る。データストレージシステム１６０２は、複数のストレージデバイスを含む。図１では、図が見やすいように１つのホスト１６０４しか示されていないことに留意されたい。一般に、複数のホストがデータストレージシステム１６０２に対してアクセスを要求することができる。
【０１２３】
図１７は、本発明の一実施形態に従った、データストレージシステム１６０２を示す図である。データストレージシステム１６０２は、ストレージ管理ユニット１７０２、ストレージデバイス１７０４、コントローラ１７０６、再設定マネージャ１７０８、補助データ領域管理アプリケーションプログラムインターフェース（ＡＰＩ）１７１０、およびデータマネージャ１７１２を含む。ストレージデバイス１７０４の例には、ハードディスクドライブ、フロッピー(登録商標）ドライブ、テープドライブ、コンパクトディスク、ソリッドステートメモリ、光または光磁気ドライブなどが含まれるが、これらに限定されることはない。異なるメディアドライブの組合せを使用することが可能な場合もある。したがって、本明細書におけるディスクドライブまたはデータストレージドライブへの言及は、任意のタイプのストレージデバイスをカバーするものであると、広義に解釈されたい。ストレージ管理ユニット１７０２は、データストレージシステム１６０２のアクセス中は電源がオフになる、ストレージデバイス１７０４のうちのあるストレージデバイス上で、データユニットまたは論理ボリュームに対して補助データを準備することが可能である。「データユニット」またはその変形とは、論理または仮想データの任意の格納量、例えば、ビット、バイト、ワード、ブロック、ファイル、フレームなどを言い表す。さらにデータユニットは、論理ブロックに分割または区分することができる。データユニットにおいて、論理または仮想データは論理ブロックで格納される。
【０１２４】
「補助データ」またはその変形は、複数のデータ領域内に格納されたデータを含む。さらに、複数のデータ領域のうちの少なくとも２つのデータ領域は、互いに独立に電源を管理することが可能な異なるデバイス上にある。これによって、データ領域を格納している少なくとも１つのデバイスの方が、より高電力、低遅延の状態であることがわかる、またはその可能性があるため、より短い遅延で補助データにアクセスすることが可能となる。補助データは、補助データが「解放」されるまで移動を制限することができる（「ピン」データ）。補助データには、データユニットに有用なデータ、例えば「メタデータ」が含まれるが、これに限定されることはない。メタデータは、例えばデータユニットが作成された時間、データユニットのサイズ、およびデータユニットに対応するファイルの名前を含むことができる。補助データが、例えばストレージデバイス１７１４などの、電源がオンのストレージデバイス上で使用できる可能性があるため、ストレージ管理ユニット１７０２は、ストレージデバイス１７０４上に補助データを格納することもできる。本発明の一実施形態では、補助データは、ストレージデバイス１７０４の各ストレージデバイスの補助データ領域内に格納される。本発明の例示的実施形態では、補助データ領域は、ストレージデバイス１７０４の各ストレージデバイスの第１バイトまでの平均時間（ＭＴＦＢ／Ｍｅａｎ  Ｔｉｍｅ  ｔｏ  Ｆｉｒｓｔ  Ｂｙｔｅ）が短いか、または事実上、即時のアクセスおよび使用が可能である。本発明の様々な実施形態では、ＭＴＦＢの短い領域は、データストレージシステムの１つまたは複数のデータユニットの一群の論理ブロックにマッピングされる。一群の論理ブロックは、データストレージシステム１６０２の設定中にセットされる。さらにストレージデバイス１７０４の各ストレージデバイスは、補助データ以外のデータを格納するための、第１バイトまでの平均時間（ＭＴＦＢ）が長い領域も含む。
【０１２５】
さらにストレージ管理ユニット１７０２は、補助データを更新することもできる。ストレージデバイス１７０４に結合されたコントローラ１７０６が、ストレージ管理ユニット１７０２による補助データの更新を容易にする。本発明の実施形態では、補助データの最新の更新を有する、ストレージデバイス１７０４のうちの少なくとも１つのストレージデバイスの電源が、常にオンである。再設定マネージャ１７０８は、ストレージデバイス１７０４のすべてのストレージデバイス上で補助データ領域を再設定する。補助データ領域管理ＡＰＩ  １７１０は、ストレージデバイス１７０４の補助データ領域内で管理されることになるデータストレージシステム１６０２の１つまたは複数のデータユニットの一群の論理ブロックを決定する。補助データ領域マネージャ１７１２は、ストレージデバイス１７０４内の補助データを維持する。
【０１２６】
図１８は、本発明の一実施形態に従った、データストレージシステム１６０２内でのアクセスのためにデータユニットを準備するための方法を示す流れ図である。本発明の様々な実施形態では、補助データを準備するために必要な電力はストレージ管理ユニット１７０２によって提供される。ステップ１８０２で、ストレージデバイス上のデータユニット用の補助データが準備される。ストレージデバイス１７０４のすべてのストレージデバイスの電源が一度にオンにはならないため、データユニットへのアクセス要求中に電源がオフになるストレージデバイス用の補助データが準備される。補助データは、データストレージシステム１６０２のデータユニットへのアクセスを容易にするように、準備される。ステップ１８０４で、補助データは、電源がオンのストレージデバイス上で補助データが使用可能となる可能性があるように、ストレージデバイス１７０４上に格納される。本発明の実施形態では、補助データはストレージデバイス１７０４のすべてのストレージデバイスに格納される。データストレージシステム１６０２が補助データへのアクセス要求を受け取ると、そのアクセス要求は、データストレージシステム１６０２のうち電源がオンのストレージデバイスのうちの任意の１つによって、処理することが可能である。しかしながら、アクセス要求が、補助データ以外の特定のデータ向けである場合、その特定のデータを格納する単数または複数のストレージデバイスの電源は、まだオンでなければオンになる。
【０１２７】
図１９は、本発明の実施形態に従った、データユニット用の補助データを準備するための方法を示す流れ図である。補助データは、データストレージシステム１６０２がオフラインの場合、すなわち、データストレージシステム１６０２とホスト１６０４との対話がない場合に準備される。言い換えれば、データストレージシステム１６０２は、ホスト１６０４によって出された要求を受信または処理しない。ステップ１９０２で、データストレージシステム１６０２が設定される。データストレージシステム１６０２を設定するステップは、図２０に関連して詳細に説明する。図２０は、本発明の一実施形態に従った、データストレージシステム１６０２を設定するための方法を示す流れ図である。ステップ２００２で、データストレージシステム１６０２の各ストレージデバイス上の補助データ領域は、データストレージシステム１６０２の１つまたは複数のデータユニットの一群の論理ブロックに割り当てられる。ステップ１９０４で、データユニットの一群の論理ブロックに対して、補助データ領域から補助データが集められる。
【０１２８】
データストレージシステム１６０２は、データストレージシステム１６０２のホストアクセス中に必要となる可能性のあるデータが、ストレージデバイス１７０４の補助データ領域内にあるように、設定される。言い換えれば、補助データ領域は、補助データがデータユニットの一群の論理ブロックと共に常に使用可能なように、一群の論理ブロックにマッピングされる。データストレージシステム１６０２は、データストレージシステム１６０２のブートサイクル中に設定される。本発明の実施形態では、ストレージ管理ユニット１７０２がデータストレージシステム１６０２を設定する。ストレージ管理ユニット１７０２は、データストレージシステム１６０２の今後のブートサイクルで、データストレージシステム１６０２を再度設定することができる。これは、例えばホストの補助データ割り当てが変更された場合に発生する。
【０１２９】
補助データは一般に、「常に」使用可能であるものとして説明されるが、そのかなりの、あるいは同一の特典は、本明細書の説明に従って補助データまたは他のデータが提供されるが、いつでも使用可能というわけではない諸実施形態で、実現可能であることに留意されたい。そのため、「常に」を使用することは、ストレージシステム全体の性能に明らかな影響が、存在しない、明白でない、またはごくわずかであるように、十分な時間、データが使用可能である場合を説明することが意図される。
【０１３０】
設定後、ステップ１９０４で、データストレージシステム１６０２のすべてのデータユニット内の補助データが同期化される。データストレージシステム１６０２のデータユニットは、すべてのデータユニットが同じ補助データを有するように同期化される。データストレージシステム１６０２が同期化された後、データストレージシステム１６０２はオンラインとなることができる。言い換えれば、データストレージシステム１６０２は、ホスト１６０４によるアクセスの準備が整っている。
【０１３１】
ホスト１６０４がアクセス要求を行う場合、アクセス要求の対象である特定のデータユニットに提示される。しかしながら、データユニットに対応するデータを物理的に格納するすべてのストレージデバイスの電源が、オンであるとは限らない。したがって、アクセス要求が出された必要なデータは、電源がオフのストレージデバイス上にある可能性がある。ここでコントローラ１７０６は、アクセス要求が、補助データまたは補助データ以外の特定データの、どちらに向けられているかをチェックする。アクセス要求が特定データに向けられている場合、その特定データを格納する単数または複数のストレージデバイスの電源が、まだオンでなければオンになる。アクセス要求が補助データに向けられていることがわかった場合、データユニットは、電源がオンのストレージデバイスからのアクセス要求を処理する。この場合、アクセス要求は遅延なく処理される。これは、補助データがすでに準備されており、電源がオンとなる可能性のあるデータストレージシステム１６０２の各ストレージデバイス上に格納されているためである。アクセス要求は、読み取り操作または書き込み操作とすることができる。書き込み操作の場合、アクセス要求は、データストレージシステム１６０２のうちの電源がオンのストレージデバイスのいずれか１つから処理される。書き込み操作の場合、データは電源がオンのすべてのストレージデバイス上の補助データに書き込まれる。
【０１３２】
しかしながら、同じストレージデバイスの電源が常にオンであるとは限らない。ある時点で電源がオンのストレージデバイスは、その時点でどの単数または複数のデータユニットがアクセス要求の対象であるかによって決まる。したがって、書き込み操作の後、その時点で電源がオンのストレージデバイスは補助データを修正する。他のストレージデバイスが、新しいアクセス要求に応答して電源オフの状態からオンになると、修正された補助データは、新しく電源がオンになったストレージデバイス上で更新または同期化される。言い換えれば、補助データは、ある一群のストレージデバイスから、アクセス要求時に次の一群のデバイスの電源がオンになった場合、この次のストレージデバイスへと同期化される。補助データは、新しく電源がオンになったストレージデバイスがそれぞれの補助データ領域内で補助データの最新のコピーを有するように、更新される。本発明の一実施形態では、補助データは、世代識別番号（ｇｅｎｅｒａｔｉｏｎ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ｎｕｍｂｅｒ）を使用して更新される。世代識別番号は、電源がオンのストレージデバイスのうちの１つの電源がオフになるごとに増分される。これにより、データストレージシステム１６０２の次のブート後に電源がオンになるストレージデバイスが、補助データの最新のコピーを有することになることが保証される。さらに、補助データの各更新は、コントローラ１７０６によって記録される。この実施形態では、特定補助データ領域内の補助データに対応する世代識別番号が最新でない場合に、補助データが更新される。
【０１３３】
図２１は、本発明の一実施形態に従った、コントローラ１７０６を示す図である。コントローラ１７０６はカウンタ２１０２および変更ログ２１０４を含む。カウンタ２１０２は、電源がオンのストレージデバイスのうちの１つの電源がオフになるごとに、補助データ領域に対応する世代識別番号を増分する。変更ログ２１０４は、世代識別番号の各増分に対応する更新を格納する。したがって、カウンタ２１０２および変更ログ２１０４は、補助データ領域内での補助データの更新を容易にする。例えば、電源がオンになっているストレージデバイスの補助データ領域は、世代識別番号「１０」を有する補助データ「Ｘ」を含む。世代識別番号の最新の値が「１６」であり、対応する補助データ領域が補助データ「Ｙ」を含むと、想定する。変更ログ２１０４は、「１０」から「１６」への世代識別番号の増分、すなわち、「Ｘ」から「Ｙ」へのデータの変更に対応する、エントリを含むことになる。ここで、世代識別番号「１０」を有するピン領域内の補助データは、「Ｘ」から「Ｙ」への変化についてのみ更新される。これにより、電源がオンになっている各ストレージデバイスの補助データ領域上にある修正された補助データを書き換えるための要件がいらなくなる。さらに、更新された補助データを有するストレージデバイスに対応する世代識別番号は、「１０」から「１６」に増分される。
【０１３４】
データストレージシステム１６０２がオンラインの期間中、補助データはデータユニットと同期されない。しかしながら、かなり長い期間データストレージシステム１６０２がオンラインであると、データアクセス要件が変更される可能性がある。したがって、データストレージシステム１６０２は、補助データ領域からのアクセス要求に効率良く対処するように、データユニットを更新する必要が生じる可能性がある。
【０１３５】
図２２は、本発明の一実施形態に従った、データストレージシステム１６０２を再設定するための方法を示す流れ図である。データストレージシステム１６０２は、再設定マネージャ１７０８によって再設定される。ステップ２２０２で、設定内でもはや必要とされない補助データ領域からの補助データは、ストレージデバイスにピン解除または解放される。ステップ２２０４で、新しい補助データ領域が、データストレージシステム１６０２の１つまたは複数のデータユニットの一群の論理ブロックに割り当てられる。ステップ２２０６で、補助データが、これらのデータユニットの一群の論理ブロックから、新しい補助データ領域に集められる。本発明の実施形態では、ベンダの固有コマンドを使用して、設定を修正することができる。
【０１３６】
本発明の実施形態では、ベンダの固有コマンドはインバンドインターフェースを介して受け取られ、すなわちコマンドは、小型コンピュータ用周辺機器インターフェース（ＳＣＳＩ）を介して、再設定マネージャ１７０８に直接提供することができる。本発明の他の実施形態では、ベンダの固有コマンドは、アウトオブバンドインターフェースを介して受け取られ、すなわちコマンドは、ローカルエリアネットワークおよびワイドエリアネットワークなどのネットワークを介して、再設定マネージャ１７０８によって受け取られる。一群の論理ブロックが修正された後、補助データ領域内の補助データは同期化される。補助データ領域は、すべての補助データ領域が同じ補助データを有するように同期化される。本発明の様々な実施形態では、データストレージシステム１６０２は、今後の使用に必要でない補助データがピン解除されるように、再設定される。また、新しい補助データが補助データ領域内に追加またはピンされる。
【０１３７】
さらに、本発明の一実施形態に従って、ストレージデバイス１７０４の一群のストレージデバイスが維持される。一群のストレージデバイスは、データを維持するために電源がオンのまま維持される。一群のストレージデバイス内のストレージデバイスは、データストレージシステム１６０２内のストレージデバイス１７０４の寿命を延ばすために、ラウンドロビン様式で回転される。補助データ領域マネージャ１７１２は、どのストレージデバイスをオンのままとするかを制御する。一群のストレージデバイス内で電源がオンのストレージデバイスは、電源がオフのストレージデバイスと定期的に交換される。言い換えれば、現在電源がオフのストレージデバイスの一部が、現在電源がオンのストレージデバイスの一部と置き換えるために、電源がオンにされる。これらの現在電源がオンのストレージデバイスは、その後、電源がオフにされる。本発明の実施形態では、最小数の電源がオンのストレージデバイスが、電源がオフのストレージデバイスと交換される。本発明の他の実施形態では、ストレージデバイスを定期的に交換する期間が、自己診断報告技術（ＳＭＡＲＴ）データによって提供される。ＳＭＡＲＴデータは、一群のストレージデバイス内の各ストレージデバイスの電源がオンである時間の記録を維持する。本発明の他の実施形態では、一群のストレージデバイスは、ストレージデバイス１７０４のうちの他のストレージデバイスの電源がオンであった時間に対して、最も短い時間、電源がオンであったストレージデバイスを含む。
【０１３８】
前述の諸実施形態は、データストレージシステムのストレージ管理ユニットによって要求された補助データが、アクセス要求の受信時に電源がオンのストレージデバイスで使用できる可能性があることを保証する。さらにこの諸実施形態は、アクセスのためのデータユニットの準備が、データストレージシステムからのいかなる追加の電力も必要としないため、電力割当量の範囲内で動作する。この電力は、データユニットの準備のためにストレージ管理ユニットによって提供されるか、またはバックグラウンドモード動作で使用可能となる。オンラインモード動作では、電源がオンのストレージデバイスから補助データにアクセスされる。この方法およびシステムにより、データストレージシステム内で能力が低下したストレージデバイスの検出およびその後の保守が実行可能である。さらにこの方法およびシステムは、ストレージ管理ユニットが所定の期間アイドル状態である場合、保守が実施されることを保証する。
【０１３９】
以上、本発明について、その特定の実施形態に関して説明してきたが、これらの実施形態は本発明を説明するものであって、制限するものではなく、例えばパラメータの特定の値および範囲は、本明細書に記載されたものと異なってもよいことは明らかである。しきい値パラメータの値、ｐ、ｃ、ｒ、ｍ、ｓ、ｔなどは、新しい実験データが明らかになった場合、プリファレンスまたはシステム全体の特徴が変化した場合、あるいは改善された性能または望ましい性能を達成するために、変更することができる。値を計算するためおよび変数を定義するための特定の公式が提示されるが、値、変数、またはパラメータを取得するための他の方法が使用可能である。
【０１４０】
「ストレージデバイス」、「ディスクドライブ」などの用語が使用されるが、任意のタイプのストレージユニットが本発明と共に動作するように適合可能である。例えば、ディスクドライブ、テープドライブ、ランダムアクセスメモリ（ＲＡＭ）などを使用することができる。磁気、ソリッドステート、光、生体電気、ナノ加工、または他の技法で作成されるものなどの、様々な現在および将来のストレージ技術を使用することができる。ストレージシステムの様々な配置構成およびアーキテクチャが使用可能である。
【０１４１】
ストレージユニットは、コンピュータ内に内蔵して、またはコンピュータ外部のコンピュータに接続された別のハウジング内の、いずれかに配置することができる。ストレージユニット、コントローラ、および本明細書で論じた他のシステム構成要素は、単一の場所に、または様々な場所で別々に、含むことができる。こうした構成要素は、ネットワーク、通信リンク、または他の技術を伴う任意の好適な手段によって相互接続することができる。特定の機能は、特定の場所および回数で動作する、あるいは特定の場所にまたは特定の回数で常駐するものとして論じることができるが、一般に、この機能は様々な場所および回数で提供することが可能である。例えば、データ保護ステップなどの機能は、階層コントローラの様々な層に提供することができる。任意のタイプのＲＡＩＤまたはＲＡＩＶの配置または設定が使用可能である。
【０１４２】
本明細書の説明では、本発明の諸実施形態を完全に理解するために、構成要素および／または方法の例などの、多数の特定の細部が提供されている。しかしながら、当業者であれば、本発明の実施形態は、１つまたは複数のこの特定の細部を使用せずに、または他の装置、システム、アセンブリ、メソッド、構成要素、材料、部品、および／またはその他を使用して、実施可能であることを理解されよう。他のインスタンスでは、本発明の諸実施形態の諸態様を不明瞭にしないように、よく知られた構造、材料、動作の詳細は具体的に図示または説明されていない。
【０１４３】
「プロセッサ」または「プロセス」は、データ、信号、または他の情報を処理する、任意の人間、ハードウェア、および／またはソフトウェアのシステム、メカニズム、または構成要素を含む。プロセッサは、汎用中央処理ユニット、多重処理ユニット、機能を達成するための専用回路、または他のシステムを備えた、システムを含むことができる。処理は、必ずしも地理的場所、または時間的制限を有するように限定されることはない。例えば、プロセッサはその機能を「リアルタイム」、「オフライン」、「バッチモード」などで実行することができる。さらに、処理のある部分は、異なる時間および異なる場所で、異なる（または同じ）処理システムによって実行することができる。
【０１４４】
本明細書全体を通じて、「一実施形態」、「実施形態」、または「特定実施形態」という言い方は、その実施形態に関連して説明される特定の機構、構造、または特徴が、本発明の少なくとも１つの実施形態に含まれ、必ずしもすべての諸実施形態に含まれるとは限らないことを意味する。したがって、本明細書全体を通じて様々な場所に現れる「一実施形態では」、「実施形態では」、または「特定実施形態では」という表現それぞれが、必ずしも同じ実施形態を言い表すとは限らない。さらに、本発明の任意の特定実施形態の特定の機構、構造、または特徴は、１つまたは複数の他の実施形態と、任意の好適な様式で組み合わせることができる。本明細書で説明および図示される本発明の諸実施形態の他の変形および修正は、本明細書の教示に照らして可能であり、本発明の精神および範囲の一部とみなされるものであることが理解されよう。
【０１４５】
図／図面に記載された要素のうちの１つまたは複数が、特定の応用例によれば有用なように、より分離または統合された形で、あるいは場合によっては除去または動作不能な形でも、実施可能であることも理解されよう。前述の方法のいずれかをコンピュータが実行できるようにするために、マシン読み取り可能媒体内に格納可能なプログラムまたはコードを実施することも、本発明の精神および範囲内である。
【０１４６】
加えて、図／図面内の任意の信号矢印は、特に指定のない限り、単なる例示であって、限定的なものとみなされるべきではない。さらに、本明細書で使用される「または」という言葉は、特に指示のない限り、全体として「および／または」を意味することが意図される。分離するかまたは組み合わせるための機能が不明瞭であることを表すとして専門用語が予見される場合、構成要素またはステップの組合せも留意されているものとみなされることになる。
【０１４７】
本明細書の説明および添付の特許請求の範囲全体を通じて使用される場合、「ａ」、「ａｎ」、および「ｔｈｅ」は、文脈が明確に示していない限り、複数の参照を含む。加えて、本明細書の説明および添付の特許請求の範囲全体を通じて使用される場合、「において」の意味は、文脈が明確に示していない限り、「において」および「の上で」を含む。
【０１４８】
要約書に記載された内容を含む、本発明の例示された諸実施形態の前述の説明は、網羅的であること、または本発明を本明細書に開示された精密な形に限定することを、意図していない。本明細書では、本発明の特定の実施形態および本発明の例が例示の目的でのみ説明されているが、当業者であれば認識および理解されるように、本発明の精神および範囲内で様々な等価の修正が可能である。示されるように、これらの修正は、本発明の例示された諸実施形態の前述の説明に照らして本発明に対して実行されるものであり、本発明の精神および範囲に含まれるものである。
【０１４９】
したがって、本明細書ではこれまで、本発明の特定の諸実施形態を参照しながら本発明について説明してきたが、前述の開示では、修正の許容範囲、様々な変更、および置換が意図される。いくつかのインスタンスでは、前述のような本発明の範囲および精神から逸脱することなく、対応する他の機構を使用せずに、本発明の諸実施形態のいくつかの機構が採用されることを理解されよう。したがって、本発明の不可欠な範囲および精神に特定の状況または材料を適合させるために、多くの修正が実行可能である。本発明は、添付の特許請求の範囲で使用される特定の用語、および／または、本発明を実施するために企図された最良のモードとして開示された特定の実施形態には、限定されないが、本発明は、添付の特許請求の範囲内にある任意およびすべての諸実施形態および等価物を含むことになることが意図される。
【０１５０】
以上、本発明によって提供可能な特典および利点について、特定の諸実施形態に関して説明してきた。これらの特典および利点、ならびにそれらを発生させるかまたはより顕著にさせることが可能な任意の要素または制限は、任意またはすべての特許請求の範囲の、重大な、必要な、または不可欠な機構として解釈されるものではない。本明細書で使用される場合、「含む」、「含んでいる」、またはそれらの任意の他の変形の用語は、それらの用語に先行する要素または制限を非排他的に含むとして解釈されることを意図する。したがって、ある要素のセットを含むシステム、方法、または他の実施形態は、それらの要素にのみ限定されるものではなく、明確に列挙されていないか、または請求された実施形態に固有の、他の要素を含むことが可能である。
【０１５１】
以上、本発明について、特定の諸実施形態を参照しながら説明してきたが、この諸実施形態が例示的なものであること、および本発明の範囲はこれらの諸実施形態に限定されないことを理解されたい。前述の諸実施形態に対する多くの変形、修正、追加、および改良が可能である。これらの変形、修正、追加、および改良が、添付の特許請求の範囲内で詳述されるような本発明の範囲内にあることが企図される。
【図面の簡単な説明】
【０１５２】
【図１】一実施形態に従った、多重ディスクデータストレージシステムの一般構造を示す図である。
【図２Ａ】一実施形態に従った、高密度にパックされたデータストレージシステムにおける、コントローラとディスクドライブとの間の相互接続を示す図である。
【図２Ｂ】一実施形態に従った、高密度にパックされたデータストレージシステムにおける、コントローラとディスクドライブとの間の相互接続を示す図である。
【図３】一実施形態に従った、高密度にパックされたデータストレージシステムの物理設定を示す図である。
【図４】一実施形態に従った、高密度にパックされたデータストレージシステムの電源管理スキームが決定される様式を示す流れ図である。
【図５】一実施形態に従った、情報がパリティディスクに書き込まれる様式と、ディスクドライブの電源がオンおよびオフにされる様式とを示す図である。
【図６】一実施形態に従った、メタデータディスクのコンテンツを示す図である。
【図７】一実施形態に従った、メタデータディスク上に格納された情報の構造を示す流れ図である。
【図８】一実施形態に従った、データのコンテナが一群のディスクドライブ上に配置される様式を示す図である。
【図９】一実施形態に従った、複数のディスクドライブからのデータの初期セグメントがメタデータボリューム上に格納される様式を示す図である。
【図１０】一実施形態に従った、冗長ディスクドライブのペア、ならびに対応するパリティおよびメタデータボリュームの使用を示す図である。
【図１１】一実施形態に従った、直接接続を介した１次ストレージ用のバックアップターゲットとして、およびテープライブラリに対するメディア（バックアップ）サーバとしての、データストレージシステムの使用を示す図である。
【図１２】一実施形態に従った、ホスト（サーバまたはエンドユーザ）からエンドディスクドライブへの相互接続を示す図である。
【図１３】一実施形態に従った、チャネルコントローラと複数のスティックコントローラとの相互接続を示す図である。
【図１４】一実施形態に従った、ＳＡＴＡチャネルコントローラの出力と、対応するスティックコントローラのデータ／コマンドルータデバイスとの、相互接続を示す図である。
【図１５】一実施形態に従った、ラックコントローラの実施を示す図である。
【図１６】本発明の一実施形態に従った、ホストとデータストレージシステムとの対話を示す図である。
【図１７】本発明の一実施形態に従った、データストレージシステムを示す図である。
【図１８】本発明の一実施形態に従った、データストレージシステムのアクセスのためにデータユニットを準備するための方法を示す流れ図である。
【図１９】本発明の他の実施形態に従った、データユニットのために補助データを準備するための方法を示す流れ図である。
【図２０】本発明の一実施形態に従った、データストレージシステムを設定するための方法を示す流れ図である。
【図２１】本発明の一実施形態に従った、コントローラの構成要素を示す図である。
【図２２】本発明の一実施形態に従った、データストレージシステムを再設定するための方法を示す流れ図である。
【図１】
2009505310.tif 000011
【図２Ａ】
2009505310.tif 000012
【図２Ｂ】
2009505310.tif 000013
【図３】
2009505310.tif 000014
【図４】
2009505310.tif 000015
【図５】
2009505310.tif 000016
【図６】
2009505310.tif 000017
【図７】
2009505310.tif 000018
【図８】
2009505310.tif 000019
【図９】
2009505310.tif 000020
【図１０】
2009505310.tif 000021
【図１１】
2009505310.tif 000022
【図１２】
2009505310.tif 000023
【図１３】
2009505310.tif 000024
【図１４】
2009505310.tif 000025
【図１５】
2009505310.tif 000026
【図１６】
2009505310.tif 000027
【図１７】
2009505310.tif 000028
【図１８】
2009505310.tif 000029
【図１９】
2009505310.tif 000030
【図２０】
2009505310.tif 000031
【図２１】
2009505310.tif 000032
【図２２】
2009505310.tif 000033
【国際調査報告】
2009505310.tif 000034