(57)【要約】【課題】特定のテ゛ータに入出力要求が集中した際に生じるホ゛トルネックを解消させるＲＡＩＤシステムを提供すること。【解決手段】将来的に頻繁にアクセスされるテ゛ータとなる可能性のあるテ゛ータがアレイ式記憶装置（１０２）に記憶されているか否かを予測する（４０４）再分配モシ゛ュール（２３０）を採用するシステム及び方法。該再分配モシ゛ュール（２３０）は、アレイ（１０２）内の１つ又は２つ以上の記憶構成要素（２１６）上の高頻度アクセステ゛ータを探し出し、該高頻度アクセステ゛ータをアレイ（１０２）内の全ての記憶構成要素（２１６）に均等に再分配して、単一の記憶構成要素（２１６）が不釣り合いな量の高頻度アクセステ゛ータを含まないようにする。アレイ（１０２）内の全ての記憶構成要素（例えばテ゛ィスク）（２１６）への高頻度アクセステ゛ータの均等な再分配は、該アレイ中（１０２）の単一の記憶構成要素（２１６）における入出力上のホ゛トルネックの防止に資するものとなる。これにより、入出力が一層ハ゜ラレルな態様で処理されて、記憶装置アレイ（１０２）の全体的な性能が向上する。【選択図】　図４
2004005634.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサにより実行することが可能な命令を含む、プロセッサにより読み出しを行うことが可能な媒体であって、該命令が、
記憶装置アレイ（１０２）内の複数の記憶構成要素（２１６）に関する作業負荷情報（２３２）を収集し（４００）、
該作業負荷情報（２３２）に基づいて少なくとも１つの記憶構成要素（２１６）が高頻度アクセスデータを含むことを予測し（４０４）、
該高頻度アクセスデータを前記記憶装置アレイ（１０２）内の全ての記憶構成要素（２１６）にわたって均等に再分配する（４１０）、
という各ステップを行うよう構成されている、プロセッサにより読み出しを行うことが可能な媒体。
【請求項２】
前記予測ステップが、
前記作業負荷情報（２３２）にアクセスし（４０２）、
該作業負荷情報（２３２）に関して動作する予測アルゴリズム（２３４）を実行する（４０４）、
という各ステップを更に含む、請求項１に記載のプロセッサにより読み出しを行うことが可能な媒体。
【請求項３】
前記再分配ステップ（４１０）が、
前記少なくとも１つの記憶構成要素（２１６）上の前記高頻度アクセスデータを探し出し、
前記少なくとも１つの記憶構成要素（２１６）から高頻度アクセスデータを除去し、
前記記憶装置アレイ（１０２）内の全ての記憶構成要素（２１６）に高頻度アクセスデータを均等に記憶させる、
という各ステップを更に含む、請求項１に記載のプロセッサにより読み出しを行うことが可能な媒体。
【請求項４】
プロセッサにより実行することが可能な命令を含む、プロセッサにより読み出しを行うことが可能な媒体であって、該命令が、
記憶装置アレイ（１０２）内の複数の記憶構成要素（２１６）に関する作業負荷情報（２３２）を収集し（４００）、
該作業負荷情報（２３２）に基づいて、最もビジーでない記憶構成要素（２１６）と最もビジーな記憶構成要素（２１６）とを判定し、
新たなディスクアクセスがランダムな入出力であることを判定し、
最もビジーでない記憶構成要素（２１６）を使用して前記新たなディスクアクセスを処理する、
という各ステップを行うよう構成されている、プロセッサにより読み出しを行うことが可能な媒体。
【請求項５】
複数の記憶構成要素を有する記憶装置アレイ内の、プロセッサにより読み出しを行うことが可能な媒体であって、
予知情報（３００）にアクセスして少なくとも１つの記憶構成要素（２１６）上のデータが高頻度アクセスデータであることを判定し（５０２）、
該高頻度アクセスデータを前記記憶装置アレイ（１０２）内の全ての記憶構成要素（２１６）にわたって均等に再分配する、
という各ステップを行うよう構成されたプロセッサにより実行することが可能な命令を含む、プロセッサにより読み出しを行うことが可能な媒体。
【請求項６】
前記アクセスステップの前に前記記憶装置アレイ（１０２）上のメモリ（２２４）に前記予知情報（３００）を記憶し、
前記アクセスステップ（５０２）が、前記メモリ（２２４）内の前記予知情報（３００）にアクセスすることを含む、
という各ステップを行うよう構成されたプロセッサにより実行することが可能な命令を更に含む、請求項５に記載のプロセッサにより読み出しを行うことが可能な媒体。
【請求項７】
２つ又は３つ以上の記憶構成要素（２１６）と、
記憶構成要素の作業負荷情報（２３２）にアクセスし、該作業負荷情報（２３２）に基づいて高頻度アクセスデータを前記２つ又は３つ以上の記憶構成要素（２１６）にわたって均等に再分配するよう構成された、再分配モジュール（２３０）と
を含む、記憶装置アレイ。
【請求項８】
前記再分配モジュール（２３０）の一部として構成され、前記作業負荷情報（２３２）を分析して前記高頻度アクセスデータを予測する、予測アルゴリズム（２３４）を更に含む、請求項７に記載の記憶装置アレイ。
【請求項９】
プロセッサ（２１８，２２０）と、
２つ又は３つ以上の記憶構成要素（２１６）と、
予知情報（３００）を記憶したメモリ（２２４）と、
前記プロセッサ（２１８，２２０）上で実行することが可能な再分配モジュール（２３０）であって、その実行時に、前記メモリ（２２４）にアクセスして、前記予知情報（３００）から、前記２つ又は３つ以上の記憶構成要素（２１６）上のどのデータが高頻度アクセスデータであるかを判定し、該高頻度アクセスデータを前記２つ又は３つ以上の記憶構成要素（２１６）にわたって均等に再分配する、再分配モジュール（２３０）と
を含む、記憶装置アレイ。
【請求項１０】
２つ又は３つ以上のディスク（２１６）と、
該２つ又は３つ以上のディスク（２１６）のうちの１つに記憶された高頻度アクセスデータを判定し、及び該高頻度アクセスデータを該２つ又は３つ以上のディスク（２１６）にわたって均等に再分配するよう構成された、再分配モジュール（２３０）とを含む、独立した複数のディスクの冗長アレイ（ＲＡＩＤ）。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本開示は、アレイ式記憶装置に関し、特に、頻繁にアクセスされるデータをかかるアレイ式記憶装置内のビジーな記憶媒体から一層ビジーでない記憶媒体へと再分配して均等な付加分散を提供する方法に関する。
【０００２】
【従来の技術】
ＲＡＩＤ（ｒｅｄｕｎｄａｎｔ　ａｒｒａｙ　ｏｆ　ｉｎｄｅｐｅｎｄｅｎｔ　ｄｉｓｋｓ）ディスクアレイ等のアレイ式記憶装置は、個々のハードディスク等の単一媒体式記憶装置よりも優れた性能と信頼性を提供するよう設計されたデータ記憶装置である。単一媒体式記憶装置に勝るアレイ式記憶装置の性能上の利点は、多数の読み書き要求を単一ディスク上でシリアルに処理するのではなく、該読み書き要求を多数のディスク（すなわちＲＡＩＤ装置）にわたってパラレルに処理する能力によるものである。概して、ＲＡＩＤ装置は、所定の時間内に単一ディスクが処理できるよりも多くの入出力（Ｉ／Ｏ）を処理することができる。
【０００３】
しかし、アレイ式記憶装置で達成可能な単一媒体式記憶装置よりも優れている性能上の優位性は、アレイ式装置（すなわちＲＡＩＤ装置）内の複数のディスクにわたって入出力が均等に分散されている度合いに直接関係する。したがって、ホストコンピュータの多数の入出力要求の全てが、例えば２０ディスクアレイのうちのディスク＃１に記憶されたデータに向けられる環境では、該２０ディスクアレイは単一媒体式記憶装置に勝る利点を提供するものとはならない。ディスク＃１に記憶されたデータに対する頻繁なアクセスは、該ディスクドライブ＃１においてボトルネックを生じさせ、アレイ式記憶装置を使用する際の単一媒体式記憶装置に勝るホストコンピュータにとっての利点は、該頻繁にアクセスされるデータに関して大幅に低減されることになる。
【０００４】
データストライピングは、アレイが実行できる同時入出力動作の数を最大限にすべくディスクドライブアレイ全体にわたり均等にデータ及び入出力を分散させるためにＲＡＩＤ装置で使用される技術である。データストライピングは、複数のディスクドライブを連結して１つの論理的な記憶装置とし、各ドライブの記憶空間を多数のストライプへと分割する（該ストライプは、１セクタ（５１２バイト）程度の小さいもの又は数メガバイト程度の大きなものとすることが可能である）。かかる多数のストライプは、結合された空間が各ドライブからのストライプで交互に構成されるようにラウンドロビン方式で交互に配置される。大きいデータストライプと小さいデータストライプのどちらがより有益であるかは、用途の環境のタイプによって決まる。入出力の多い環境では、１ストライプを１レコードが収まる程度の大きさにした場合に性能が最適化される。データの多い環境では、長いレコードほどより高速のアクセスが可能となるため、ストライプは小さい方がよい（一般に１セクタが５１２バイト）。
【０００５】
データストライピングは一般に、アレイ式記憶装置に記憶されたデータに一層多くの並列アクセスを提供するものとなるが、これは、特定のデータが頻繁にアクセスされる場合に単一ディスク式ドライブに生じ得るボトルネックの問題を解決するものではない。データストライピングは、データが現在頻繁にアクセスされているか又は将来頻繁にアクセスされることになるかは考慮しない。更に、データが一旦「ストライプ化」されると、該データは、同じディスク上の同じ場所に記憶され続ける。したがって、ホストコンピュータが、特定のデータに関する入出力要求でディスクアレイ内の特定のディスクドライブを攻める環境が生じた場合は、最初にデータを記憶した際にデータストライピングを使用したという事実に関係なく特定のディスクドライブにボトルネックが生じることになる。
【０００６】
【発明が解決しようとする課題】
したがって、頻繁にアクセスされるデータとなる可能性のあるデータがアレイ式記憶装置内に記憶されているか否かを判定し、該データを該アレイ内の複数の記憶構成要素にわたって分散させて、作業負荷を一層均等に分散させ、及び入出力操作が一層パラレルな態様で生じるようにする、方法が必要とされている。
【０００７】
【課題を解決するための手段】
本発明のシステム及び方法は、頻繁にアクセスされるデータとなる可能性のあるデータがアレイ式記憶装置に記憶されているか否かを判定する再分配モジュールを使用する。該再分配モジュールは、アレイ内の１つ又は２つ以上の記憶構成要素上の高頻度アクセスデータを探し、その高頻度アクセスデータを、単一の記憶構成要素が不釣り合いな量の高頻度アクセスデータを含まないようにアレイ内の全ての記憶構成要素に再分配する。
【０００８】
一実施形態では、記憶装置アレイ内の再分配モジュールは、該記憶装置アレイ内の各記憶構成要素の作業負荷レベルを示す作業負荷情報を収集するよう構成される。再分配モジュールは、予測アルゴリズムを実行して作業負荷情報を分析して、記憶構成要素上に記憶された何れかのデータが将来的に頻繁にアクセスされる可能性のある高頻度アクセスデータであるか否かを予測する。次いで、予測アルゴリズムにより高頻度アクセスデータであると見なされたデータを該当する（１つ又は２つ以上の）記憶構成要素上で探し出し、該データを記憶装置アレイ内の全ての記憶構成要素にわたり均等に再分配する。
【０００９】
もう１つの実施形態では、記憶装置アレイ内の再分配モジュールは、以前に該アレイのメモリに入力された予知情報にアクセスするよう構成される。該予知情報は、該アレイに記憶されている特定のデータが将来的に頻繁にアクセスされることになることを示すものである。再分配モジュールは、その高頻度アクセスデータを探し出して記憶装置アレイ内の全ての記憶構成要素にわたり均等に再分配する。
【００１０】
【発明の実施の形態】
以下、図面を参照して本発明のシステム及び方法について解説する。なお、同図における同様の符号は同様の構成要素及び特徴を示している。
【００１１】
本発明のシステム及び方法は、将来的に頻繁にアクセスされるデータとなる可能性のあるデータがアレイ式記憶装置に記憶されているか否かを予測するために再分配モジュールを採用する。該再分配モジュールは、アレイ内の１つ又は２つ以上の記憶構成要素上の高頻度アクセスデータを探し出し、該高頻度アクセスデータを、単一の記憶構成要素が不釣り合いな量の高頻度アクセスデータを含むことがないようにアレイ内の全ての記憶構成要素にわたって均等に再分配する。高頻度アクセスデータを記憶装置アレイ内の全ての記憶構成要素（例えばディスク）にわたって均等に再分配することにより、アレイ内の単一の記憶構成要素に入出力上のボトルネックが生じるのを防ぐことができる。入出力は一層並列的な態様で処理され、これにより記憶装置アレイの全体的な性能が改善される。
・高頻度アクセスデータを予測し、該高頻度アクセスデータをアレイ式記憶装置内の複数の記憶構成要素にわたって均等に再分配するシステム環境の一例
図１は、アレイ式記憶装置１０２に記憶されたどのデータが将来的に頻繁にアクセスされる可能性があるかを予測し、該データをアレイ式装置１０２の全ての記憶構成要素にわたって均等に再分配するのに適したシステム環境１００を示している。本開示全体を通して、「高頻度アクセスデータ」という語句は、アレイ式記憶装置１０２に記憶されているデータのうち、ホスト装置１０４により頻繁にアクセスされる、データ、コード又はその他のかかる情報を示すために使用される。また、「記憶装置アレイ」、「アレイ」、及び「仮想アレイ」等の「アレイ式記憶装置」１０２及びその変形例は、本開示全体を通して、記憶性能を高めるという全般的な目的のために動作可能に結合された複数の記憶構成要素／装置を示すために使用される。記憶性能の目標は、典型的には、大容量記憶、１メガバイトの記憶容量当たりの低いコスト、高い入出力性能、並びに冗長性及び耐故障性による高いデータ可用性を含む。かかるアレイ１０２内に動作可能な状態で結合された複数の記憶構成要素／装置は、磁気ディスクドライブ、テープドライブ、光学式読み出し／書き込みディスクドライブ、固体素子ディスク等を含むことができる。かかる記憶構成要素は、データ記憶技術の分野で周知のものである。
【００１２】
図１のシステム環境１００は、ネットワーク１０６を介して（１つ又は２つ以上の）ホスト装置１０４に動作可能に結合されたアレイ式記憶装置１０２を含む。ネットワーク接続１０６は、例えば、ＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（広域ネットワーク）、イントラネット、インターネット、光ファイバケーブルリンク、直接接続、又はその他の適当な通信リンクを含むことができる。ホスト装置１０４は、例えば、アレイ式記憶装置１０２と通信するよう構成されたパーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、サーバ、ウェブサーバ、及びその他の装置を含む、様々な汎用的な計算処理装置として実施することができる。
【００１３】
本開示は、上記で概略的に説明したように一連の記憶構成要素を使用する様々なタイプのアレイ式記憶装置１０２に適用することが可能である。更に、本書で開示するアレイ式記憶装置１０２は、仮想メモリ機能を含む仮想記憶装置アレイである。このため、本書で示す仮想記憶装置アレイ１０２は、ホスト１０４のアドレスと、該ホスト１０４のデータを仮想記憶装置アレイ１０２内に記憶させる際の実物理アドレスとの間に間接的なアドレスマッピング層（ａ　ｌａｙｅｒ　ｏｆ　ａｄｄｒｅｓｓ　ｍａｐｐｉｎｇ　ｉｎｄｉｒｅｃｔｉｏｎ）を提供する。該間接的なアドレスマッピングは、ホスト１０４に対してトランスペアレントな態様でアレイ１０２内の様々な物理的位置にデータを移動させることを可能にするポインタを使用する。
【００１４】
例えば、ホスト装置１０４は、ホストアドレスＨ５にデータを記憶することが可能であり、この場合、該ホスト１０４は、該アドレスが、仮想記憶装置アレイ１０２上のディスク＃２のセクタ＃５６という物理位置を指しているものと考える。しかし、仮想記憶装置アレイ１０２は、該ホストデータをアレイ１０２内の全く異なる物理位置（例えばディスク＃９のセクタ＃２７）へ移動し、常に該ホストデータを指すようにポインタ（すなわち間接的なアドレスマッピング層）を更新することが可能である。ホスト１０４は、データが仮想記憶装置アレイ１０２内の新たな物理位置に実際に移動されたことを知る必要がなく、引き続き同じホストアドレスＨ５でデータにアクセスすることができる。
【００１５】
例えば、仮想記憶装置アレイは、当業界で既知のものであり、例えば、階層（又はマルチレベル）ＲＡＩＤシステムで現在実施されている。階層ＲＡＩＤシステムは、アレイ内の同じ組のディスク上に共存する２つ又は３つ以上の異なるＲＡＩＤレベルを採用する。一般に、異なるＲＡＩＤレベルは異なる「性能」対「記憶効率」の利益を提供するものとなる。例えば、ＲＡＩＤレベル１は、データの冗長性のためにディスクがミラーリングされるため、記憶効率が低く、ＲＡＩＤレベル５は、多数のディスク上に記憶されたデータの冗長性を提供するパリティ情報を１つのディスク上に作成して記憶することにより、一層高い記憶効率を提供する。しかし、ＲＡＩＤレベル１は、ランダムデータ書き込み時にＲＡＩＤレベル５よりも高速な性能を提供する。これは、ディスクに対してデータが更新される（すなわち書き込まれる）際にパリティ情報を再作成するためにＲＡＩＤレベル５の場合に必要となる多数の読み出し操作をＲＡＩＤレベル１が必要としないからである。
【００１６】
階層ＲＡＩＤシステムは、異なるＲＡＩＤレベルが提供する性能及び記憶効率の利益を最大限にするために、前述のような仮想記憶装置を使用して、マルチレベルアレイ内の異なるＲＡＩＤレベル間のデータの移動（すなわち再配置）を容易化する。したがって、階層ＲＡＩＤアレイ内のディスク上の特定の位置でどのＲＡＩＤレベルが動作しているかに基づいて該特定の位置との間でデータが移動される。更に、階層ＲＡＩＤシステムは、アレイ内のどのデータが最も最近に又は最も旧く書き込まれ又は更新されたデータかに基づいて、ＲＡＩＤレベル間で移動させるデータを決定する。最も旧く書き込まれ又は更新されたデータは低性能で高記憶効率のＲＡＩＤレベルに移動され、最も最近書き込まれ又は更新されたデータは高性能で低記憶効率のＲＡＩＤレベルに移動される。このプロセスは、コンピュータ内でキャッシュ管理システムが動作する態様と類似している。
【００１７】
階層ＲＡＩＤシステムのように、図１のシステム環境１００で開示する（１つ又は２つ以上の）仮想記憶装置アレイ１０２は、仮想記憶という思想を採用して該アレイ１０２内でのデータ移動を容易化する。しかし、特定の実施形態に関して以下で詳述するように、仮想記憶装置アレイ１０２は、記憶構成要素の作業負荷に基づいて、特定のデータをアレイ１０２内の全ての記憶構成要素（例えば、ディスク）にわたって均等に移動する。
・高頻度アクセスデータを予測し、該高頻度アクセスデータをアレイ式記憶装置内の複数の記憶構成要素にわたって均等に再分配するシステムの一実施形態
図２は、図１のシステム環境１００で実施することが可能なホストコンピュータ装置１０４及びアレイ式記憶装置１０２の特定の実施形態を示すブロック図である。図１のアレイ式記憶装置１０２は、仮想ＲＡＩＤ（独立したディスクの冗長アレイ）装置として実施される。ホスト装置１０４は、一般に、ＲＡＩＤ装置１０２と通信するよう構成されたパーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、サーバ、ウェブサーバ、又はその他のコンピュータ装置として実施される。
【００１８】
ホスト装置１０４は典型的には、プロセッサ２００、揮発性メモリ２０２（例えばＲＡＭ）、及び不揮発性メモリ２０４（例えばＲＯＭ、ハードディスク、フロッピーディスク、ＣＤ−ＲＯＭ等）を含む。不揮発性メモリ２０４は、一般に、ホスト装置１０４のためのコンピュータにより読み出すことが可能な命令、データ構造、プログラムモジュール、及びその他のデータを記憶する。ホスト装置１０４は、様々なアプリケーションプログラム２０６を実施することが可能であり、該プログラムは、メモリ２０４に記憶され、及びプロセッサ２００上で実行されて、ＲＡＩＤ装置１０２にデータを記憶させ及びその後に該データを取り出すためにネットワーク接続１０６を介してＲＡＩＤ装置１０２に転送されるべきデータを作成し又は該データにアクセスする。かかるアプリケーション２０６は、例えば、ワードプロセッサ、スプレッドシート、ブラウザ、マルチメディアプレーヤ、イラスト作成ソフト、コンピュータ援用設計ツール等を実施するソフトウェアプログラムを含むことが可能である。したがって、ホスト装置１０４は、仮想ＲＡＩＤ装置１０２により処理されるデータ入出力要求の通常のフローを提供する。
【００１９】
ＲＡＩＤ装置１０２は、一般に、（１つ又は２つ以上の）ホスト装置１０４等のコンピュータ装置のための連続的なデータ記憶及びデータ読み出しを提供し、また発生し得る様々な故障状態にかかわらずかかる動作を提供するよう設計される。このため、ＲＡＩＤ装置１０２は、典型的には、複数のサブシステムのうちの１つが故障中であってもディスクアレイ１０２への継続的なアクセスを可能にする、コントローラ２１０（Ａ），２１０（Ｂ）及び電源／冷却サブシステム２１２（Ａ），２１２（Ｂ）といった冗長サブシステムを含むものとなる。更に、ＲＡＩＤ装置１０２は、典型的には、コントローラ２１０（Ａ），２１０（Ｂ）、電源／冷却サブシステム２１２（Ａ），２１２（Ｂ）、及びディスクアレイ２１４内のディスクドライブ２１６といったアレイ構成要素のホットスワップ機能（すなわち、ＲＡＩＤ装置１０２の稼働中に構成要素を取り外し及び交換する機能）を提供する。
【００２０】
ＲＡＩＤ装置１０２上のコントローラ２１０（Ａ），２１０（Ｂ）は、互いに鏡像をなし（すなわち同様に形成され）、一般に、ディスクドライブ２１６上にデータを冗長的に記憶させ及び該データにアクセスするよう構成される。このため、コントローラ２１０（Ａ），２１０（Ｂ）は、ディスクドライブ２１６にデータを保存する前に該データに妥当性検査タグを付与し、及びホスト装置１０４にデータを送る前にその妥当性検査タグをチェックしてディスクドライブ２１６からのデータの妥当性を保証するといったタスクを実行する。コントローラ２１０（Ａ），２１０（Ｂ）はまた、ディスクドライブ２１６の故障の際に損失し得るデータを再生させることにより、かかる故障を許容するものとなる。
【００２１】
ＲＡＩＤ装置１０２上のコントローラ２１０は、典型的には、ＦＣ（ファイバチャネル）入出力プロセッサ２１８等の（１つ又は２つ以上の）入出力プロセッサ、（１つ又は２つ以上の）メインプロセッサ２２０、不揮発性（ＮＶ）ＲＡＭ２２２、不揮発性メモリ２２４（例えばＲＯＭ）、及びメモリ制御ＡＳＩＣ（特定用途向けＩＣ）２２６等の１つ又は２つ以上のＡＳＩＣを含む。ＮＶ　ＲＡＭ２２２は、典型的には、（１つ又は２つ以上の）コントローラ２１０への電源が断たれた場合にＮＶ　ＲＡＭ２２２内のデータを保持するバッテリバックアップ（図示せず）によりサポートされる。不揮発性メモリ２２４は、一般に、ＲＡＩＤ装置１０２のための、コンピュータにより読み出すことが可能な命令、データ構造、プログラムモジュール、及びその他のデータを記憶する。
【００２２】
したがって、不揮発性メモリ２２４は、ファームウェア２２８、データ再分配モジュール２３０、及び作業負荷情報２３２を含む。ファームウェア２２８は、一般に、プロセッサ２２０上で実行され、及び通常のディスクアレイ１０２の動作をサポートするよう構成される。ファームウェア２２８はまた、典型的には、ＲＡＩＤ装置１０２で起こり得る様々な障害状況を処理するよう構成される。図２の実施形態では、再分配モジュール２３０は、後に詳述するように、プロセッサ２２０上で実行され、作業負荷情報２３２を収集し分析して、高頻度アクセスデータを予測し、該高頻度アクセスデータを複数のディスクドライブ２１６にわたって均等に再分配するよう構成される。
【００２３】
ＦＣ入出力プロセッサ２１８は、ネットワーク接続１０６を介してホスト装置１０４からデータ及びコマンドを受け取る。ＦＣ入出力プロセッサ２１８は、標準的なプロトコル及び割込手順を介してメインプロセッサ２２０と通信して、冗長コントローラ２１０（Ｂ）にデータ及びコマンドを送り、及び一般にＮＶ　ＲＡＭ２２２と様々なディスクドライブ２１６との間でデータを移動させてデータが冗長に記憶されることを保障する。
【００２４】
メモリ制御ＡＳＩＣ２２６は、一般に、データ記憶及び読み出し、データ操作、及び冗長性管理等を、同様に形成されたコントローラ２１０（Ａ），２１０（Ｂ）間の通信を介して制御する。メモリコントローラＡＳＩＣ２２６は、ディスクアレイ２１４内の複数のディスク２１６へとストライピングされるデータセクタのタグ付けを扱い、該複数のディスク２１６にわたりパリティ情報を書き込む。一般に、ＡＳＩＣ２２６により実行される機能は、汎用マイクロプロセッサ上で実行されるファームウェア又はソフトウェアで実行することも可能である。データストライピング及びパリティチェックは当業者に周知のところである。メモリ制御ＡＳＩＣ２２６はまた、典型的には、鏡像をなすメモリの全ての領域が（すなわち鏡像をなすコントローラ２１０（Ａ），２１０（Ｂ）間で）同一であることの比較とＥＣＣ（誤り検出訂正）誤りのチェックを定期的に確実に行うために、メモリ２２４の検査を促進させる内部バッファを含む（図示せず）。メモリ制御ＡＳＩＣ２２６は、検出した上述その他の誤りをプロセッサ２２０に通知する。ファームウェア２２８は、メモリ制御ＡＳＩＣ２２６により検出された誤りを許容性のある態様で管理するよう構成される。かかる管理態様として、冗長サブシステムを介してアレイ１０２のデータ破損を防止し又は検出された誤り／故障に対処して、アレイ１０２のクラッシュを防止することが挙げられる。
【００２５】
上記のように、図２に仮想ＲＡＩＤ装置１０２で示したような仮想記憶装置アレイ１０２の現時点での実施形態は、再分配モジュール２３０及び作業負荷情報２３２を含む。再分配モジュール２３０は、ＲＡＩＤ装置１０２の通常の動作時に幾つかのタスクを実行するよう構成される。再分配モジュール２３０が実行するタスクの１つは、アレイ１０２内のディスクの作業負荷を監視し、該作業負荷に関する状態情報を収集するものである。再分配モジュール２３０は該情報を作業負荷情報２３２として記憶する。作業負荷情報２３２は、一般に、アレイ１０２内のディスク２１６がホスト装置１０４からのデータ入出力要求を処理する頻度を示す情報を含む。作業負荷情報２３２は更に、ホスト装置１０４の入出力要求を処理するためにアクセスされる正確なディスク位置（例えばアドレスやセクタ）に関する情報を含む。
【００２６】
再分配モジュール２３０は、作業負荷情報２３２としてデータを収集し記憶することに加えて、該作業負荷情報２３２を使用して、アレイ１０２内のどのディスク２１６が最も「ビジー」でなくまた最も「ビジー」であるかを判定することができる。更に、再分配モジュール２３０は、将来的な作業負荷要件を予測するために、作業負荷情報２３２に格納されたデータを予測アルゴリズム２３４を介して分析する。該予測アルゴリズム２３４は、再分配モジュール２３０の一構成要素として図２に示されているが、メモリ２２４に記憶され必要に応じて再分配モジュール２３０により呼び出されて作業負荷情報２３２に格納されたデータを分析する別個のモジュールとすることも可能である。予測アルゴリズム２３４は、一般にアレイ１０２の作業負荷に関する過去の状態情報を操作して将来的な作業負荷要件を予測するよう構成されたアルゴリズムを含むことができる。より詳細には、予測アルゴリズム２３４は、作業負荷情報２３２内に収集された情報を操作して、ディスク２１６上のどのデータが将来的に最も頻繁にアクセスされそうかを判定する。予測アルゴリズム２３４の例として、時系列予測（ＴＳＦ：ｔｉｍｅ−ｓｅｒｉｅｓ　ｆｏｒｅｃａｓｔｉｎｇ）アルゴリズムや最頻使用（ＭＦＵ：ｍｏｓｔ−ｆｒｅｑｕｅｎｔｌｙ　ｕｓｅｄ）アルゴリズムが挙げられる。
【００２７】
かかる「高頻度アクセスデータ」が複数のディスク２１６の何れかに存在するか否かを判定した後、再分配モジュール２３０が、該高頻度アクセスデータにアクセスし、該データをアレイ１０２内の全てのディスク２１６にわたり均等に再分配する（すなわち移動させる）。このため、高頻度アクセスデータであるデータに起因してホスト１０４の入出力要求を処理して極めて「ビジー」であったディスク２１６は、該高頻度アクセスデータが将来的にホスト１０４により必要とされた場合の作業負荷が少なくなる。更に、以前にアイドル状態であり又は「ビジー状態のディスク」ほど稼働していなかったディスク２１６は、将来的にかかる高頻度アクセスデータにアクセスするホストにより生成される作業負荷を等分に負担することになる。
【００２８】
再分配は、典型的には、（１つ又は２つ以上の）「ビジーディスク」から高頻度アクセスデータを取得し、該データをあまりビジーでない複数のディスクに移動させることを含む。再分配はまた、移動プロセスの一部として、ビジーディスク上に一定量の高頻度アクセスデータを残すことを含むことが可能である。既知の量のデータを様々な記憶構成要素（例えば複数のディスク）に均等に分散させることができる様々な方法が知られている。
【００２９】
再分配モジュール２３０は、上述のタスクに加えて、高頻度アクセスデータを複数のディスク２１６にわたって均等に移動させるための最小分断時間（ｌｅａｓｔ　ｄｉｓｒｕｐｔｉｖｅ　ｔｉｍｅ）を決定するために、仮想ＲＡＩＤ装置１０２の全体的な利用率を監視する。再分配モジュール２３０は、仮想記憶装置アレイ１０２の利用率を利用して、ホスト１０４の要求の処理に関連するフォアグラウンドタスクを妨げることのないバックグラウンドタスクで高頻度アクセスデータの移動を行う。フォアグラウンドタスクとして実行される場合には、データの移動は、ホスト１０４の入出力要求を処理するための全体的な時間を短縮するという一般的な目的の達成を妨げるものとなる可能性がある。
【００３０】
更に、データの移動は、最小分断時間中に「アイドル」な活動として実行することができるが、高優先順位の要求又はホスト１０４の入出力要求を処理している間に、アレイにより使用されるデータ配置アルゴリズムの一部として実行することもできる。例えば、新しいデータ書き込みがアレイ１０２に送られたとき、該新しいデータ書き込みがシーケンシャルでなくランダムであることをアレイコントローラ２１０が判定することができる。ランダムな入出力の性質は、局所性の原理が時間に関して該当する、といったものである。すなわち、時刻Ｔにおいて新しい書き込みが書き込まれ又はアクセスされる場合には、該時刻Ｔのすぐ後に再び書き込まれ又はアクセスされる可能性が高いことになる。したがって、入出力がランダムであることが判定されると、アレイコントローラ２１０は、本書で上述したように、そのディスクがあまり「ビジー」でないか基づいて、個々のディスク２１６にデータを送ることができる。
【００３１】
仮想ＲＡＩＤ装置１０２の利用率を監視する様々な方法が存在する。例えば、コントローラ２１０をディスクアレイ２１４に結合させるために、典型的には光ファイバチャネル（図示せず）が使用される。光ファイバチャネルは、毎秒１００メガバイトの最大データ転送速度を有することが可能である。光ファイバチャネルの利用率の低下は、一般に、ホスト１０４の入出力要求が減少したこと、及びその結果としてホスト入出力要求に悪影響を与えることなく他のタスクのために使用できる余分な容量が光ファイバチャネル上に残っていることを示す。このため、再分配モジュール２３０は、光ファイバチャネルを監視して、その全容量の特定のパーセントのしきい値よりも利用率が低くなったときを判定し、その時点で、高頻度アクセスデータを複数のディスク２１６にわたって均等に移動させるといったバックグラウンドタスクを開始する。上述のように、仮想ＲＡＩＤ装置１０２の利用率を示すために監視することが可能な他の構成要素が存在する。光ファイバチャネルの使用はその一例にすぎない。
【００３２】
図３は、図１のシステム環境１００において実施することが可能なホストコンピュータ装置１０４及びアレイ式記憶装置１０２のもう１つの特定の実施形態を示すブロック図である。図２の実施形態と同様に、アレイ式記憶装置１０２は仮想ＲＡＩＤ装置として実施され、ホスト装置１０４は一般にコンピュータ装置として実施される。該ホスト装置１０４は、図２の実施形態に関して上述したように構成される。仮想ＲＡＩＤ装置１０２もまた、図２の実施形態に関して上述したように概ね構成されるが、本実施形態の場合には、再分配モジュール２３０は予測アルゴリズム２３４を含まず、また、作業負荷情報モジュール２３２は、メモリ２２４に記憶された予知情報モジュール３００に置換されている。
【００３３】
図３の実施形態では、再分配モジュール２３０は、図２の実施形態で示したものとほぼ同じタスクを実行する。しかし、再分配モジュール２３０は、どのデータが将来的に高頻度アクセスデータになりつつあるかを特定する予知情報３００がＲＡＩＤ装置１０２に入力されたことを認識するよう構成される。特定の環境下では、ユーザは、ＲＡＩＤ装置１０２に記憶されている特定のデータが高頻度アクセスデータになるであろうという予知情報を有することが可能である。かかる情報をアレイ１０２に入力し予知情報３００として記憶することができる。再分配モジュール２３０は、該予知情報３００を認識し、該予知情報３００に応じて、識別された高頻度アクセスデータを探し出し、アレイ１０２の複数のディスク２１６にわたって均等に再分配（移動）するように構成される。このデータ移動プロセスは、図２の実施形態で説明したものと同様である。
・高頻度アクセスデータを予測し、該高頻度アクセスデータをアレイ式記憶装置内の複数の記憶構成要素にわたって均等に再分配する方法の例
次に、図４と図５を主に参照して、アレイ式記憶装置１０２に記憶されているどのデータが将来的に頻繁にアクセスされる可能性があるかを予測し、該データをアレイ式装置１０２の全ての記憶構成要素にわたって均等に再分配するための方法の例を説明する。この方法は、一般に、図１ないし図３に関して上述したようなシステム１００の実施形態に適用される。
【００３４】
図４及び図５は、高頻度アクセスデータとなりそうなデータがアレイ式記憶装置１０２内の１つ又は２つ以上の記憶構成要素に記憶されていることを予測し又は判定する一般的な方法の例を示している。この方法はまた、かかる高頻度アクセスデータを、図２及び図３の仮想ＲＡＩＤ装置１０２といったアレイ式記憶装置１０２内の複数の記憶構成要素（例えばディスク２１６）にわたって如何に均等に分散させるかを示している。
【００３５】
図４のブロック４００で、再分配モジュール２３０が、図２の仮想ＲＡＩＤ装置１０２内のディスク２１６といった、アレイ式記憶装置１０２内の記憶構成要素に関する作業負荷情報２３２を収集する。該作業負荷情報２３２は、アレイ式記憶装置１０２のメモリ２２４に記憶される。ブロック４０２で、再分配モジュール２３０が、収集された作業負荷情報２３２にアクセスする。ブロック４０４で、予測アルゴリズム２３４を実行して作業負荷情報２３２を分析し、アレイ式記憶装置１０２内のどの記憶構成要素上のどのデータが将来的に頻繁にアクセスされそうな高頻度アクセスデータであるかを予測する。
【００３６】
ブロック４０６で、再分配モジュール２３０がアレイ式記憶装置１０２の利用率を監視する。該利用率は、継続的に監視することが可能であり、又は予測アルゴリズム２３４により高頻度アクセスデータが予測された場合に監視することも可能である。図２の実施形態に関して上述したように、該利用率は、一般に、アレイ式記憶装置１０２がホスト１０４の入出力要求を処理している割合を示す。ブロック４０８で、アレイ式記憶装置１０２の全体的な利用率の低下に基づいて最小分断時間に達したことが判定される。最小分断時間中に、再分配モジュール２３０は、ブロック４１０に示すように、アレイ式記憶装置１０２内の記憶構成要素にわたって均等にデータを再分配し又は移動させる。
【００３７】
図５の方法は、ブロック５００で開始して、アレイ式記憶装置１０２のメモリ２２４に予知情報３００を記憶する。該予知情報３００は、ユーザにより入力され、アレイ式記憶装置１０２に記憶されている特定のデータが高頻度アクセスデータになることを示す情報である。ブロック５０２で、再分配モジュール２３０が、該予知情報３００にアクセスして、アレイ式記憶装置１０２に記憶されているどのデータが高頻度アクセスデータであるかを判定する。ブロック５０４で、アレイ式記憶装置１０２の利用率を監視し、ブロック５０６で、アレイ式記憶装置１０２の全体的な利用率の低下によって最小分断時間に達したことを判定する。最小分断時間中に、再分配モジュール２３０は、ブロック５０８に示すように、アレイ式記憶装置１０２内の記憶構成要素にわたって均等にデータを再分配し又は移動させる。
【００３８】
以上の説明は、構造的な特徴及び／又は方法論的な操作に特有の言葉を使用しているが、併記の特許請求の範囲に定義された発明は、示した固有の特徴又は操作に限定されないことを理解されたい。より正確に言うと、この特定の特徴及び操作は、本発明を実現する例示的な形態として開示されている。
【図面の簡単な説明】
【図１】アレイ式記憶装置に高頻度アクセスデータが記憶されているか否かを予測し、及び高頻度アクセスデータをアレイ式装置内の複数の記憶構成要素にわたり均等に再分配するのに適したシステム環境を示す説明図である。
【図２】図１のシステム環境において実施することができるホストコンピュータ装置とアレイ式記憶装置の特定の実施形態をより詳細に示すブロック図である。
【図３】図１のシステム環境において実施することができるホストコンピュータ装置とアレイ式記憶装置のもう１つの実施形態をより詳細に示すブロック図である。
【図４】アレイ式記憶装置に高頻度アクセスデータが記憶されているか否かを予測し、その高頻度アクセスデータをアレイ式装置内の複数の記憶構成要素にわたり均等に再分配する方法の一例を示すフローチャートである。
【図５】アレイ式記憶装置に高頻度アクセスデータが記憶されているか否かを予測し、その高頻度アクセスデータをアレイ式装置内の複数の記憶構成要素にわたり均等に再分配する代替的な方法の一例を示すフローチャートである。
【符号の説明】
１０２　　　　記憶装置アレイ
２１６　　　　記憶構成要素
２１８，２２０プロセッサ
２２４　　　　メモリ
２３０　　　　再分配モジュール
２３２　　　　作業負荷情報
２３４　　　　予測アルゴリズム
３００　　　　予知情報
【図１】
2004005634.tif 000003
【図２】
2004005634.tif 000004
【図３】
2004005634.tif 000005
【図４】
2004005634.tif 000006
【図５】
2004005634.tif 000007