(57)【特許請求の範囲】
【請求項１】
データ・ストレージ・システムであって、
ネットワークを介してネットワーク・デバイスと接続するように構成されている複数の自立式離散的データ・ストレージを支持するエンクロージャと、
一次および冗長データを格納するために、前記データ・ストレージのストレージ空間を割り当て、管理する前記エンクロージャ内の独立ドライブの冗長アレイ（ＲＡＩＤ）コンテナ・サービス・モジュールと、
前記データ・ストレージ・システムへのネットワーク負荷を連続的かつ定性的に特徴付けて、一次データのアクセス・コマンドと冗長データのアクセス・コマンドとを区別する予測した使用期間に基づいて、前記各データ・ストレージへの配電を管理する前記エンクロージャ内のポリシー・エンジンと、
を備え、
前記ＲＡＩＤコンテナ・サービス・モジュールが、ＲＡＩＤ−１障害許容と一緒にデータを格納するために、前記データ・ストレージを、対になっているミラーリング配置の一次データ・デバイスおよびミラー・データ・デバイスに割り当て、前記ポリシー・エンジンが、前記一次データ・デバイスが読取りコマンドだけを受信する可能性が統計的にある間隔を予測し、予測した読取専用コマンド間隔が所定のしきい値より長い場合に、前記ミ
ラー・データ・デバイスの電力モードを低減する、データ・ストレージ・システム。
【請求項２】
前記ポリシー・エンジンが、所定の期間、前記各データ・ストレージへの前記冗長データのアクセス・コマンドと区別した一次データのアクセス・コマンドの観察した数の統計的記録を維持する、請求項１に記載のデータ・ストレージ・システム。
【請求項３】
前記ポリシー・エンジンが、前記ネットワークから独立して、データ・ストレージが統計的に使用されない可能性がある将来の間隔を予測し、予測した間隔が所定のしきい値より長い場合に、前記データ・ストレージの電力モードを低減するために、配電モジュールを管理する、請求項１または２に記載のデータ・ストレージ・システム。
【請求項４】
前記ポリシー・エンジンが、いずれのアクセス・コマンドが読取りコマンドであるかということについて、リアルタイムに負荷を特徴付ける、請求項１〜３のいずれか１項に記載のデータ・ストレージ・システム。
【請求項５】
前記ポリシー・エンジンが、低減された電力モード状態を中断する低頻度アクセス・コマンド活動を識別し、識別した低頻度コマンド活動を統合するために、前記低頻度活動に関連するデータ・ブロックを１つのデータ・ストレージに転送する、請求項１〜４のいずれか１項に記載のデータ・ストレージ・システム。
【請求項６】
前記ポリシー・エンジンが、前記低頻度アクセス・コマンド活動に関連する前記データ・ブロックを、キャッシュに転送する、請求項５に記載のデータ・ストレージ・システム。
【請求項７】
前記ポリシー・エンジンが、有限状態機械を備える、請求項１〜６のいずれか１項に記載のデータ・ストレージ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、概して、データ・ストレージ・システムの分野に関し、特に、アレイ・ストレージ・システムでの電力消費を適応可能に管理するための装置および方法に関するが、これに限定されない。
【背景技術】
【０００２】
コンピュータ・ネットワーキングは、工業規格アーキテクチャのデータ転送速度が、インテル社（Ｉｎｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ）の８０３８６プロセッサのデータ・アクセス速度に追いつくことができなくなった時に急激に増大し始めた。ローカル・エリア・ネットワーク（ＬＡＮ）は、ネットワーク内のデータ・ストレージ容量を強化することにより、ストレージ・エリア・ネットワーク（ＳＡＮ）に進化した。ユーザは、装置を結合しＳＡＮ内の装置で扱われる関連データにより、直接取付ストレージにより可能となるものより一桁上の処理能力、そして扱いやすいコストで有意の利点を実現している。
【０００３】
さらに最近は、データ・ストレージ・サブシステムを制御するためのネットワーク・セントリック・アプローチの方向への動きがある。すなわち、ストレージを強化したのと同じ方法で、サーバから取り出され、ネットワーク自身に送られるストレージの機能を制御するシステムにも同じ動きがある。例えば、ホスト・ベースのソフトウェアは、インテリジェント・スイッチまたは特殊化したネットワーク・ストレージ・サービス・プラットフォームに保守および管理タスクを委託することができる。アプライアンス・ベースの解決方法を使用すれば、ソフトウェアが必要なくなるし、これらのものをストレージ割当ルーチン、バックアップ・ルーチン、およびホストによらない障害許容スキームとして中央に集めることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
インテリジェンスをホストからネットワークに移動すればこのようないくつかの問題を解決することはできるが、仮想ストレージのプレゼンテーションをホストに変更する際の柔軟性の一般的な不足に関連する固有の問題は解決しない。例えば、データを格納する方法を、通常でないホスト負荷活動のバーストを収容するように適合させる必要がある場合がある。その各データ・ストレージ容量の自己決定による割当て、管理、および保護、およびグローバルなストレージ要件に適応するように、ネットワークへその容量を仮想ストレージ空間として提示するインテリジェント・データ・ストレージ・サブシステムが求められている。この仮想ストレージ空間は、複数のストレージ・ボリューム内に提供することができる。本発明の目指しているのはこのための解法である。
【課題を解決するための手段】
【０００５】
本発明の実施形態は、概して、分散ストレージ・システムのストレージ・アレイ部分での電力管理に関する。
【０００６】
ある実施形態は、データ・ストレージ・アレイ上のネットワーク負荷に関するデータを連続的に収集し、日付および時刻でアレイの各データ・ストレージの実際の使用期間に関連して負荷を特徴付け、ネットワークから独立して、将来の計画した使用期間を予測するための使用期間の統計的記録を作成する装置および関連する方法を提供する。
【０００７】
本発明を特徴付けるこれらおよび種々の他の機能および利点は、下記の詳細な説明を読み、関連する図面を見れば理解することができるだろう。
【発明を実施するための最良の形態】
【０００８】
図１は、本発明の実施形態を含む例示としてのコンピュータ・システム１００である。１つまたは複数のホスト１０２は、ローカル・エリア・ネットワーク（ＬＡＮ）および／またはワイド・エリア・ネットワーク（ＷＡＮ）１０６により、１つまたは複数のネットワークに取り付けられているサーバ１０４にネットワークで接続している。好適には、ＬＡＮ／ＷＡＮ１０６は、ワールド・ワイド・ウェブを通して通信するために、インターネット・プロトコル・ネットワーキング・インフラストラクチャを使用することが好ましい。ホスト１０２は、多数のインテリジェント記憶素子（ＩＳＥ）１０８のうちの１つまたは複数上に格納しているデータをルーチン的に必要とするサーバ１０４内に常駐しているアプリケーションにアクセスする。それ故、ＳＡＮ１１０は、格納しているデータにアクセスするために、サーバ１０４をＩＳＥ１０８に接続する。ＩＳＥ１０８は、その内部の企業またはデスクトップ・クラスの記憶媒体により、直列ＡＴＡおよびファイバ・チャネルのような種々の選択した通信プロトコルによりデータを格納するために、データ・ストレージ容量１０９を提供する。
【０００９】
図２は、図１のコンピュータ・システム１００の一部の簡単な図面である。３つのホスト・バス・アダプタ（ＨＢＡ）１０３は、ネットワークまたはファブリック１１０を介して１対のＩＳＥ１０８（それぞれＡおよびＢで示す）と相互に作用する。各ＩＳＥ１０８は、好適には、独立ドライブの冗長アレイ（ＲＡＩＤ）として特徴付けられている一組のストレージとして、データ・ストレージ容量１０９上で動作することが好ましい二重化冗長制御装置１１２（Ａ１、Ａ２およびＢ１、Ｂ２で示す）を含む。すなわち、好適には、制御装置１１２およびデータ・ストレージ容量１０９は、種々の制御装置１１２が並列の冗長リンクを使用し、システム１００が格納しているユーザ・データのうちの少なくともいくつかが、少なくとも一組のデータ・ストレージ容量１０９内の冗長フォーマットに格納されるように、障害許容配置を使用することが好ましい。
【００１０】
図３は、本発明の例示としての実施形態により組み立てたＩＳＥ１０８である。シェルフ１１４は、ミッドプレーン１１６と電気的に接続している制御装置１１２に収容する形で係合するための空洞を定める。シェルフ１１４は、キャビネット（図示せず）内に支持される。１対の複数ドライブ・アセンブリ（ＭＤＡ）１１８は、ミッドプレーン１１６の同じ側面上のシェルフ１１４内に収容される形で係合している。ミッドプレーン１１６の対向側面には、非常電力供給を行うデュアル・バッテリー１２２、デュアル交流電源１２４およびデュアル・インタフェース・モジュール１２６が接続している。好適には、デュアル構成要素は、一方のあるいは両方のＭＤＡ１１８を同時に動作し、それにより構成要素が故障した場合にバックアップ保護を行うように構成することが好ましい。
【００１１】
図４は、それぞれが５つのデータ・ストレージ１２８を支持している上部隔壁１３０および下部隔壁１３２を有するＭＤＡ１１８の拡大分解等角図である。隔壁１３０、１３２は、ミッドプレーン１１６（図３）と係合するコネクタ１３６を有する共通の回路基板１３４と接続するためにデータ・ストレージ１２８を整合する。ラッパー１３８は、電磁妨害シールドを行う。ＭＤＡ１１８のこの例示としての実施形態は、参照により本明細書に組み込むものとする譲受人に譲渡される「複数のディスク・アレイのためのキャリヤ装置および方法（Ｃａｒｒｉｅｒ  Ｄｅｖｉｃｅ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  ａ  Ｍｕｌｔｉｐｌｅ  Ｄｉｓｃ  Ａｒｒａｙ）」という名称の米国特許第７，１３３，２９１号の主題である。ＭＤＡ１１８のもう１つの例示としての実施形態は、本発明の譲受人に譲渡される、参照により本明細書に組み込むものとする同じ名称の米国特許第７，１７７，１４５号の主題である。他の等価の実施形態の場合には、ＭＤＡ１１８は、密封されたエンクロージャ内に設置することができる。
【００１２】
図５は、本発明の実施形態と一緒に使用するのに適していて、回転媒体ディスク・ドライブの形をしているデータ・ストレージ１２８の等角図である。動体データ記憶媒体と回転スピンドルを下記の説明のために使用するが、他の等価の実施形態の場合には、固体メモリ素子のような非回転媒体デバイスが使用される。図５の例示としての実施形態の場合には、データ記憶ディスク１３８は、読取り／書込みヘッド（「ヘッド」）１４２にディスク１３８のデータ記憶位置を示すためにモータ１４０により回転する。ヘッド１４２は、ディスク１３８の内部トラックと外部トラックとの間をヘッド１４２が半径方向に移動している間に、ボイス・コイル・モータ（ＶＣＭ）１４６に応じる回転アクチュエータ１４４の遠い方の端部のところに支持されている。ヘッド１４２は、フレックス回路１５０を通して回路基板１４８に電気的に接続している。回路基板１４８は、データ・ストレージ１２８の機能を制御する制御信号を受信し、送信することができる。コネクタ１５２は、回路基板１４８に電気的に接続していて、データ・ストレージ１２８をＭＤＡ１１８の回路基板１３４（図４）と接続することができる。
【００１３】
図６は、制御装置１１２のうちの１つの図面である。制御装置１１２は、１つの集積回路で具体化することもできるし、必要に応じて多数の個々の回路間で分散することもできる。好適には、プログラマブル・コンピュータ・プロセッサであることを特徴とするプロセッサ１５４は、プログラミング・ステップ、および好適には不揮発性メモリ１５６（フラッシュ・メモリまたは類似物など）およびダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）１５８内に格納している処理データにより制御を行う。
【００１４】
ファブリック・インタフェース（Ｉ／Ｆ）回路１６０は、ファブリック１１０を介して他の制御装置１１２およびＨＢＡ１０３と通信し、デバイスＩ／Ｆ回路１６２は、ストレージ１２８と通信する。Ｉ／Ｆ回路１６０、１６２および経路制御装置１６４は、キャッシュ１６６を使用するなどして、ＨＢＡ１０３を介してネットワーク・デバイスとＩＳＥ１０８との間でコマンドおよびデータを送るために通信経路を形成する。別々に図示してあるが、経路制御装置１６４およびＩ／Ｆ回路１６０、１６２は一体に形成することができることを理解することができるだろう。
【００１５】
好適には、ホスト処理機能を増大するために、ストレージ１２８への仮想ブロックをフラッシュするようにＲＡＩＤコンテナ・サービス（ＲＣＳ）に要求することにより、キャッシュ・マネージャが、書込みコマンドの特定のサブセットに対してフラッシング活動を作動させるまで、仮想ブロックに対する書込みコマンドはキャッシュ１６６内にライトバック・キャッシュされ、その内部に懸案として保持される。確実に媒体を更新するＲＡＩＤアルゴリズムにより媒体の更新を行う目的で、ＲＣＳは、シーク・マネージャに特定のデータ転送を行うために要求を送るアルゴリズムを実行する。シーク・マネージャは、キャッシュされたライトバック・コマンド、およびもっと優先度の高いホスト読取りコマンドからのデータ転送要求を発行する許可を実際に与えるために、特定のストレージ１２８に対するコマンド・キューを管理する。シーク・マネージャは、実際に転送要求を発行する許可を与える関連するデータ転送を行うためのリソースを割り当てる。
【００１６】
ＩＳＥ１０８のデータ・ストレージ容量は、データをストレージ１２８に格納する場合に、およびデータをドライブ１２８から検索する場合に、参照される論理装置の形に組織される。システム構成情報は、ユーザ・データおよび関連するパリティと、ミラー・データおよび各記憶位置間の関係を定義する。システム構成情報は、さらに、論理ブロック・アドレス（ＬＢＡ）の用語のようなもので、データに割り当てられたストレージ容量のブロックと関連するメモリ記憶位置との間の関係を識別する。システム構成情報は、さらに、論理ブロック・アドレスにマッピングされる仮想ブロック・アドレスを定義することによる仮想化を含むことができる。
【００１７】
制御装置１１２アーキテクチャは、有利にスケーリングすることができる非常に機能的なデータ管理を行い、ストレージ容量の制御を行う。好適には、ストライプ・バッファ・リスト（ＳＢＬ）および他のメタデータ構造を、記憶媒体上のストライプ境界、および記憶処理中ディスク・ストライプと関連するデータを格納するための専用のキャッシュ１６６内の参照データ・バッファと整合することが好ましい。
【００１８】
動作中、キャッシュ１６６は、ＳＡＮ１１０によりＨＢＡ１０３を通して、ユーザ・データおよびＩ／Ｏ転送に関連する他の情報を格納する。要求されなかった不確かなデータを含むストレージ１２８から検索したリードバック・データを、ストレージ１２８宛のアクセス・コマンドのスケジューリングを要求する代わりに、以降の要求したデータがキャッシュ１６６から直接転送されるように、以降の「キャッシュ・ヒット」をあてにして、キャッシュ１６６内に暫くの間保持することができる。同様に、ストレージ１２８に書き込むデータが、キャッシュされるようにライトバック・キャッシュ・ポリシーが使用され、完了肯定応答がＨＢＡ１０３を介して開始ネットワーク・デバイスに返送されるが、ストレージ１２８へのデータの実際の書込みは、後の都合のよい時間にスケジューリングされる。
【００１９】
それ故、通常、制御装置１１２は、各エントリの状態を含むキャッシュ１６６の内容の正確な制御を維持しなければならない。このような制御は、テーブル構造に関連するアドレスを使用するスキップ・リスト配置により実行することが好ましい。スキップ・リストは、キャッシュ１６６の一部内に維持することが好ましいが、必要に応じて他のメモリ・スペースを使用することもできる。
【００２０】
キャッシュ１６６は、ストライプ・データ記述子（ＳＤＤ）と呼ばれるデータ構造を使用して、制御装置１１２によりノード・ベースで管理される。各ＳＤＤは、それが関連するデータへの最近および現在のアクセスに関連するデータを保持する。各ＳＤＤは、対応するＲＡＩＤストライプ（すなわち、特定のパリティ・セットに関連する選択したストレージ上のすべてのデータ）と整合し、特定のストライプ・バッファ・リスト（ＳＢＬ）に適合することが好ましい。
【００２１】
制御装置１１２により管理される各キャッシュ・ノードは、好適には、順方向および逆方向にリンクしているリストを使用して、仮想ブロック・アドレス（ＶＢＡ）を通して昇順にリンクしている所与の組の論理ディスクに対する能動ＳＤＤ構造によりいくつかの特定のＳＤＤを参照することが好ましい。また、各ＳＤＤは、アクセス履歴、ロックした状態、最後のオフセット、最後のブロック、タイムスタンプ（時刻、ＴＯＤ）、データがいずれのゾーン（ブック）に属するのかを示す識別子、および使用するＲＡＩＤレベルを含むデータの種々の状態を示す変数を含むことが好ましい。ＳＤＤに関連するライトバック（「ダーティ」データ状態は、ダーティ・データ、ダーティ・バッファ、ダーティＬＲＵおよびフラッシングＬＲＵの値と関連して管理することが好ましい。
【００２２】
好適には、ＶＢＡの値は、ＲＡＩＤ割当てグリッド・システム（ＲＡＧＳ）とも呼ばれるグリッド・システムを使用して、ＲＡＩＤデータ組織と整合される。通常、同じＲＡＩＤストリップ（例えば、特定のパリティ・セットに貢献するすべてのデータなど）に属するブロックの任意の特定の集合体が、特定のシート上の特定の信頼できるストレージ・ユニットに割り当てられる。ブックは多数のシートからできていて、異なるストレージからのブロックの複数の隣接する組から作られる。実際のシートおよびＶＢＡに基づいて、このブックを、さらに、（冗長性を使用する場合）特定のデバイスまたはデバイスの組を示すゾーンに分割することができる。
【００２３】
制御装置１１２は、システム要件により、多数の異なるレベルのところでのライトバック・データ・プロセスを管理するために同時に動作することが好ましい。第１のレベルは、通常、全ＲＡＩＤストリップが検出された場合に、全ＳＤＤ構造の周期的フラッシングを含む。このことは、ＳＤＤが関連するデータをダーティと識別した場合に、ＲＡＩＤレベル変数に基づいて所与のＳＤＤに対して容易に行うことができる。好適には、このことは、十分な連続している隣接ＳＤＤが、十分ダーティなデータで満たされているか否かを判定するために逆方向のチェックを含む。そうである場合には、これらのＳＤＤ構造は、コマンド・キュー内に入れられ、データのフラッシングを開始するようにとの要求が行われる。
【００２４】
もっと小さな組のデータのフラッシングもＳＤＤをベースとして処理することが好ましい。ダーティ・ブロックおよびロックされていないブロックを含む任意のＳＤＤは、ダーティＬＲＵとしてセットし、古さの程度（例えば、キャッシュ待機フラッシング中にデータが消費した時間など）により区分けすることが好ましい。特定のエージングに達した場合には、フラッシングＬＲＵ変数を設定し、コマンド・キューを更新することが好ましい。連続しているダーティ・ブロックの特定の範囲がフラッシングに対してスケジューリングされると、制御装置１１２は、最も近い位置を有するＲＡＩＤレベルに基づいて、ダーティ・ブロックの他の範囲、すなわち、シーク時間の点で「近い」ブロック、または同じＲＡＩＤパリティ・ストリップへのアクセスを含むブロックを配置することが好ましい。
【００２５】
この実施形態によれば、コマンド・キューからのデータのフラッシングの積極性は、Ｉ／Ｏコマンドのホスト負荷と結びついている。すなわち、比較的大きな負荷がかかっている時に十分積極的にフラッシングを行わないと、キャッシュ１２６が飽和する恐れがある。逆に、比較的低いホスト負荷中の非常に積極的なフラッシングは、ホスト読取り要求のレイテンシに悪影響を及ぼす恐れがある。両方のシナリオは、ＩＳＥ１０８システムの性能に悪影響を与える。
【００２６】
図７は、キャッシュ・マネージャ１７０、ＲＡＩＤコンテナ・サービス・モジュール１７２、ポリシー・エンジン１７４、および経路制御装置１６４（図６）内に常駐するシーク・マネージャ１７６を示す機能ブロック図である。図にはシーク・マネージャ１７６を１つしか示していないが、各データ・ストレージ１２８用に専用シーク・マネージャ１７６が存在し、そのためこれらのものは、ポリシー・エンジン１７４からの規則に個々に応答する。
【００２７】
これらの機能ブロックは、ソフトウェアまたはハードウェア内に位置することができる。ハードウェア内に位置する場合には、ポリシー・エンジン１７４は有限状態機械であるが、これに限定されない。いずれにせよ、ポリシー・エンジン１７４は、経路１７８を介して、Ｉ／Ｏ単位ベースでファブリックＩ／Ｆ１６０経由で受信したアクセス・コマンドについての定性データを連続的に収集する。ポリシー・エンジン１７４は、動的にホスト負荷を特徴付け、それに続けてシーク・マネージャ１７６を支配する経路１７９を介して規則をその後で発行する。シーク・マネージャは、経路１８０を介してライトバック・データおよびホスト読取りコマンドをフラッシングするために、データ転送要求のコマンド・キューに問い合わせ、コマンド・プロファイルを定義するために経路１８２を通してデータ転送要求を発行する許可を選択的に与える。ポリシー・エンジン１７４は、経路１８４を通してキャッシュ１６６の状態を引き続き知らされ、経路１８６を通してキャッシュ・マネージャに規則を同様に発行することができる。
【００２８】
ポリシー・エンジン１７４は、１つまたは複数のネットワーク要求デバイスからのＩ／Ｏコマンドの現在の速度のようなリアルタイムの負荷についての定量データを収集することができる。ポリシー・エンジン１７４は、また、特徴に関連してデータ・ストレージ１２８にシーク・プロファイルを調整する目的で負荷を動的に特徴付け、キャッシュ・マネージャ１７０および／またはシーク・マネージャ１７６に規則を連続的に送るために負荷に関する質的データを収集することができる。
【００２９】
例えば、ポリシー・エンジン１７４は、ライトバック・キャッシングが仮定される環境で、レイテンシに敏感なコマンドに対する速度に敏感なコマンドの比率で、ネットワーク負荷を特徴付けるデータをリアルタイムで収集することができる。ライトバック・キャッシュ・コマンドは、速度に敏感なコマンドであると見なされる。何故なら、任意の時点でデータ・ストレージ１２８にいずれの要求をフラッシングするかはたいした問題ではないからである。実際には、ダーティ・データとしてキャッシュ１６６内で未決状態である場合に、速度に敏感な要求を上書きすることさえできる。問題は、速度に敏感なコマンドを、キャッシュ１６６が飽和状態になることを防止する速度でフラッシングすることである。一方、１つまたは複数のデータ・ストレージ１２８内に格納しているデータを読み出すためのホスト・アクセス・コマンドは、ホスト・アプリケーションが、アクセス・コマンドが満足するまでそれ以上の処理を阻止する恐れがある。アクセス・コマンドを満足させるのにかかる時間、すなわち、レイテンシ期間は、アプリケーションの性能にとって非常に重要なものである。そのため、このようなコマンドは、レイテンシに敏感なコマンドと呼ばれる。ある状況の場合には、ホストは、ライトバック・キャッシングを許可しないことを選択することができる。この場合、ライトスルー・キャッシュ・コマンドと呼ばれる書込みコマンドは、同様にレイテンシに敏感なコマンドとして分類される。
【００３０】
本発明は、タイムスタンプ統計で、すなわち、ＩＳＥ１０８がアクセス・コマンドを受信した日付および時刻で、読取りアクセス・コマンドおよび書込みアクセス・コマンドをさらに特徴付けるポリシー・エンジン１７４を予想している。タイムスタンプ情報を収集すれば、ポリシー・エンジン１７４は、ＩＳＥ１０８内で各ストレージ１２８の実際の使用期間に負荷特徴を相互に関連付けることができ、タイムスタンプ情報の統計的回帰により、ポリシー・エンジン１７４は、各ストレージ１２８の将来の計画した使用期間を予測することができる。計画した使用期間は、ストレージ１２８の適当なグループ分けで個々に、または集合的に各ストレージ１２８の電力のオン／オフを制御する配電モジュール１８７を制御する規則を作成するために使用される。
【００３１】
これらの特徴付けの他に、ポリシー・エンジン１７４は、また、関連するデータ・ファイル（帯域幅）のサイズ、アクセス・コマンドを開始するＨＢＡ１０３および／またはネットワーク・デバイス、ストレージ１２８のアクセス履歴、またはブック・アクセス履歴のようなその任意の一部、ＲＡＩＤクラス、およびアクセス・コマンドが送られるＬＵＮクラスのような、しかしこれに限定されない他のものでホスト負荷を特徴付ける質的データを収集することもできる。
【００３２】
質的データを収集する際に、ポリシー・エンジン１７４は、１秒の各間隔のような、しかしこれに限定されない所定の各サンプリング期間中にカウントを照合することが好ましい。１秒の間隔は、比較的長い時間にわたって集合的に観察され、平均および標準偏差等により統計的に解析される。フリーランニング・カウンタは、連続的に読取りコマンドの数、書込みコマンドの数、およびコマンドの帯域幅のような所望のメトリックの値を追跡するために、１秒の境界上で指針を移動させるポインタにより設定することができる。カウンタは、１秒サンプル比の前の１５分のような前に観察した比率の所望の数を保持する。１秒の境界上では、指針が回転し、指し示した履歴値を減算し、最新のサンプル値を加算し、次に、最新の移動平均を統計的に解析する。
【００３３】
ポリシー・エンジン１７４は、キャッシュ・マネージャ１７０、シーク・マネージャ１７６および配電１８７に対する規則を作成する際に性能の目標１８８に応じることができる。目標１８８は、量的なものでも質的なものであってもよいが、１つまたは複数のストレージ１２８の電力を低減するか否かを決定する際に、それに対して予測した使用しない期間が比較されるしきい値間隔の動的設定に限定されない。しきい値は、ＩＳＥ１０８が飽和状態で書込みコマンドの大きな負荷を受けることが予測される時間内に、ストレージ１２８の電力を低減するのがもっと危険であるように、性能に対するシステムの要求により変動を起こしやすい。
【００３４】
さらに、ポリシー・エンジン１７４は、規則を作成する際に、システム状態情報１９０に応じることができる。例えば、制限なしで、電源インジケータは、ポリシー・マネージャ１７４にＩＳＥ１０８がバッテリーのバックアップ電源に切り替わったことを知らせることができる。この状態において、ポリシー・エンジン１７４は、投影された制限付きの電力利用度に関してキャッシュ１６６を積極的にフラッシングする不測の事態を実行する可能性が高い。ポリシー・エンジン１７４は、また、規則を作成する際に、アクセス・コマンド・データ転送に直接関与しない懸案のバックグラウンドＩ／Ｏ１９２またはＩ／Ｏの状態に応じることができる。
【００３５】
ここで本発明の実施形態の電力管理面に焦点を当てると、図８は、Ａ〜Ｈで示す８つのストレージ１２８を記憶容量の８つのブック１９６１から１９６８に割り当てる例示としての割当てを示すアレイである。ストレージ１２８は、「対になっているミラーリング」ＲＡＩＤ−１配置内にデータを格納するために割り当てられる。すなわち、「Ｄ１」で示すユーザ・データ（一次データ）は、ストレージＡ、Ｂ、ＣおよびＤのブック１内に格納され、同じブックではあるが、ストレージＥ、Ｆ、ＧおよびＨ内でミラーリングされ（冗長データ）、「Ｍ１」の符号がついている。
【００３６】
図９は、所与の日の２４時間中にすべてのストレージ上で観察したネットワーク負荷の活動である。収集したデータは、各曜日のデータを結合することにより、または仕事日を一緒におよび週末および休日を一緒に結合することにより、または前年度の活動からカレンダーの日付を個々に追跡すること等により有用な任意の方法で特徴付けることができる。
【００３７】
このデータから、ポリシー・エンジンは、０７３０および１７３０の時間外のすべてのストレージ１２８の使用していないいくつかの比較的長い間隔をヒューリスティックに予測することができることを直ちに認識することができる。例えば、ポリシー・エンジン１７４の規則は、１５分またはそれ以上の任意の計画した使用しない期間の間、ストレージ１２８の電力を低減し、次に、低頻度コマンド活動１９８が起こることが予測された場合、すべてのストレージ１２８に電力を供給する機会が１９４５頃から２２００頃までに発生する。このイベントの後で、２２１５頃から、２００で示す低頻度活動イベントにより、低減された電力モードが再度中断される０５３０頃まですべてのストレージ１２８への電力を供給するもう１つの機会が発生する。すべてのストレージへの電力を低減する他の機会が、イベント２００の後および０７３０頃、および１２３０頃および１３００頃から発生することに留意されたい。
【００３８】
ポリシー・エンジン１７４は、ＩＳＥ１０８への電力を低減するための他の機会を識別するために、統計的特徴を構文解析（ｐａｒｓｅ）することができる。例えば、特徴は、低頻度イベント１９８が、ストレージＡだけに関連していて、低頻度イベント２００がストレージＡおよびＢだけに関連していることを示すものと仮定する。それ故、ポリシー・エンジン１７４は、予測した使用していない状態に基づいて、Ａを除くすべてのストレージおよびイベント１９８を予測してそのミラーの対の片方Ｅへの電力を低減するために、また同様に、ＡおよびＢを除くすべてのストレージおよびイベント２００を予測してそのミラーの対の相手ＥおよびＦへの電力を低減するために、配電１８７を制御することができる。
【００３９】
また、これらのような状況においては、ポリシー・エンジン１７４は、さらに電力を低減できる機会があった場合にデータを移行することができる。例えば、イベント２００に関連するデータを、アクセス・コマンド活動を支持するのに必要なストレージ１２８の数を半分にするために、１つのストレージ１２８だけに移行することができる。さらに、ポリシー・エンジン１７４は、ストレージ１２８のいずれもが、低減された電力状態から中断されないように、普通のしかし低頻度のイベントをキャッシュ１６６内に格納することができる。
【００４０】
さらに、予想した使用期間中（０７３０〜１８３０）、ポリシー・エンジン１７４は、各ストレージ１２８に対するネットワーク負荷を解析し、これらストレージへの電力供給を個々にオン／オフする規則を発行する。例えば、図１０は、図９のものに類似しているが、ストレージＡおよびＢだけに対する、観察した使用期間のチャートである。ストレージＡに対する使用していない期間の予測は、他の方法で予想した使用期間の持続時間に対する１３００頃の後で行うことができることに留意されたい。この情報に基づいて、ポリシー・エンジン１７４は、この計画した使用されない期間によりストレージＡの電力を低減することができる。
【００４１】
ポリシー・エンジン１７４は、使用期間の計画した間隔であるが、ミラー・データを必要としないと思われる期間に基づいて規則をさらに発行することができる。例えば、図１１は、受信した読取りコマンドおよび書込みコマンドのサブセットを示す積み重ねたバーグラフによる１２００〜１３００間の図９のデータの拡大詳細図である。１２３０で終わる使用されない期間の後で、読取りコマンドだけを受信する１５分の間隔が計画されていることに留意されたい。この期間中はミラー書込みを必要としないし、システム状態１９０およびシーク・マネージャ１７６からのような他のインジケータは予想内に含まれているものと仮定した場合、対の相手のストレージＡ、Ｂ、ＣおよびＤの計画した使用期間であっても、ポリシー・エンジン１７４は、ストレージ１２８の半分（ミラーストレージＥ、Ｆ、ＧおよびＨ）を有利に電力低減状態のままにしておくことができる。
【００４２】
図１２は、本発明の実施形態による電力管理のための方法２１０のステップを示すフローチャートである。この方法２１０は、ポリシー・エンジンがネットワーク負荷に関するデータを収集する１５分の間隔のような、しかしこれに限定されない所定の間隔ｔの間すべてのストレージへ電力を供給するデフォルト・モードを呼び出すブロック２１２から開始する。最新のデータは、書込みに対する読取りの比率およびＩ／Ｏ速度で、ホスト負荷を動的に特徴付けるためにブロック２１４で使用される。
【００４３】
ブロック２１６においては、ポリシー・エンジン１７４は、ストレージ１２８の使用期間に関する収集したデータを統計的に解析し、しきい値より長い期間の間、任意のものが使用されないと現在予測されているか否かを判定する。しきい値もポリシー・エンジンにより供給され、このしきい値は、目標１８８、システム状態１９０、およびバックグラウンドＩ／Ｏ１９２からの情報により表示するように、異なる動作状態に関連して変化することができる。ブロック２１６での判定が「はい」である場合には、ブロック２１８において、ポリシー・エンジン１７４がホスト負荷データの次のバッチを収集する間隔ｔの間、対になっているミラー配置の一次および冗長ストレージ１２８の両方への電力供給の低減またはオフのような電力管理を行う。ポリシー・エンジン１７４は、電力を管理するための規則を呼び出すが、予測した間隔の長さにより、全電力モードから、スタンバイ・モード、スリープ・モード、電力低減モードのように、ステップ・バイ・ステップで増分だけ低減することが好ましい。
【００４４】
ブロック２１６での判定が「いいえ」である場合には、ブロック２２０において、ポリシー・エンジン１７４は、収集したデータの統計解析から、ストレージ１２８のうちの任意のものが使用されるが、しきい値より長い間隔の間、読取専用モードで使用されるか否かを判定する。この場合も、しきい値およびそれにより電力を低減するレベルを定義する規則は、ポリシー・エンジン１７４により管理される。ブロック２２０における判定が「はい」である場合には、ポリシー・エンジン１７４が、ホスト負荷データの次のバッチを収集する間隔ｔの間、ブロック２２２内の冗長ストレージ１２８への電力供給を低減するかまたはオフにする。ブロック２２０での判定が「いいえ」である場合には、制御はブロック２１２に戻り、デフォルト状態が持続する。
【００４５】
通常、この実施形態は、ネットワークを介してＭＤＡのデータ・ストレージとネットワーク・デバイス間でアクセス・コマンドを実行するための自立式ストレージ・プロセッサの制御下でＭＤＡを有するデータ・ストレージ・システムと、実際の使用期間について収集したデータから使用期間を予測することにより、ＭＤＡ内のデータ各ストレージへの電力を管理するための手段を予想している。この説明および添付の特許請求の範囲の意味の目的の場合には、「管理するための手段」という用語は、本明細書に記載する構造および制御装置１１２がネットワーク負荷を特徴付け、この特徴によりＭＤＡに供給される電力を直接調整することができるようにするその等価物を含む。
【００４６】
上記説明内で、本発明の種々の実施形態の構造および機能の詳細と一緒に、本発明の種々の実施形態の多くの特徴および利点を説明してきたが、この詳細な説明は、例示としてのためだけのものであって、添付の特許請求の範囲を説明している用語の広い一般的な意味により示す全範囲に、特に本発明の原理の部材の構造および配置を変えることができることを理解されたい。例えば、本発明の精神および範囲から逸脱することなしに、特定の処理環境により特定の要素を変えることができる。
【００４７】
さらに、本明細書に記載する実施形態は、データ・ストレージ・アレイに関するものであるが、当業者であれば、特許請求の範囲に記載の主題は、それに限定されるものではなく、本発明の精神および範囲から逸脱することなしに、種々の他の処理システムも使用することができることを理解することができるだろう。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施形態を組み込むコンピュータ・システムの図面である。
【図２】図１のコンピュータ・システムの一部の簡単な図面である。
【図３】本発明の実施形態によるインテリジェント記憶素子の分解等角図である。
【図４】図３のインテリジェント記憶素子の複数のドライブ・アレイの分解等角図である。
【図５】図４の複数のドライブ・アレイで使用する例示としてのデータ・ストレージである。
【図６】インテリジェント記憶素子内のアレイ制御装置の機能ブロック図である。
【図７】インテリジェント記憶素子内のアレイ制御装置の一部の機能ブロック図である。
【図８】対になっているドライブＲＡＩＤ−１配置のインテリジェント・ストレージ素子でのストレージの割当てを示すアレイである。
【図９】２４時間間隔中のすべてのストレージの使用期間のためのポリシー・エンジンにより収集した履歴データのチャートである。
【図１０】図９に類似しているが、ストレージＡおよびＢの個々の使用期間を示すチャートである。
【図１１】計画した使用期間中の書込みコマンドに対する読取りコマンドの比率を示す、図９のチャートの一部の詳細図である。
【図１２】本発明の実施形態による「電力管理」のための方法のステップを示すフローチャートである。
【符号の説明】
【００４９】
１００  コンピュータ・システム
１０２  ホスト
１０３  ホスト・バス・アダプタ（ＨＢＡ）
１０４  サーバ
１０６  ＬＡＮ／ＷＡＮ
１０８  インテリジェント記憶素子（ＩＳＥ）
１０９  データ・ストレージ容量
１１０  ＳＡＮ
１１２  二重化冗長制御装置
１１４  シェルフ
１１６  ミッドプレーン
１１８  ドライブ・アセンブリ（ＭＤＡ）
１２２  デュアル・バッテリー
１２４  デュアル交流電源
１２６  デュアル・インタフェース・モジュール
１２８  データ・ストレージ
１３０，１３２  隔壁
１３４  回路基板
１３６  コネクタ
１３８  ラッパー
１４０  モータ
１４２  読取り／書込みヘッド
１４４  回転アクチュエータ
１４６  ボイス・コイル・モータ（ＶＣＭ）
１４８  回路基板
１５０  フレックス回路
１５２  コネクタ
１５４  プロセッサ
１５６  不揮発性メモリ
１５８  ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）
１６０，１６２  Ｉ／Ｆ回路
１６４  経路制御装置
１６６  キャッシュ
【図１】
0005236365.tif 000002
【図２】
0005236365.tif 000003
【図３】
0005236365.tif 000004
【図４】
0005236365.tif 000005
【図５】
0005236365.tif 000006
【図６】
0005236365.tif 000007
【図７】
0005236365.tif 000008
【図８】
0005236365.tif 000009
【図９】
0005236365.tif 000010
【図１０】
0005236365.tif 000011
【図１１】
0005236365.tif 000012
【図１２】
0005236365.tif 000013