(57)【要約】【課題】データ・ストレージ・システムでデータ管理動作を調整するシステム、装置、および手順を提供すること。【解決手段】データ管理動作が、複数のディスク・ドライブにまたがって分散されたデータ・ストライプに対して実行される。本発明の手順態様によれば、タスク・ディレクタが、まず、データ管理動作の第１動作および第２動作を並行する時刻に実行する。第１動作は、第２動作と異なる動作である。第１動作に、タスクの第１組が含まれ、第２動作に、タスクの第２組が含まれる。タスクの第１組および第２組の各タスクの実行が、タスク・ディレクタによって指示される。【選択図】図１
2004513423.tif 000002
【特許請求の範囲】
【請求項１】
データ管理動作の組によって管理されるデータ・ストレージ・システムにおいて、前記データ管理動作を調整する方法であって、
タスク・ディレクタによって、第１データ管理動作および第２データ管理動作を並行に実行し、前記第１動作が、タスクの第１組を有し、前記第２動作が、タスクの第２組を有すること、および、
前記タスク・ディレクタによって、所定の規則の組に基づいて、タスクの前記第１組および前記第２組の各タスクの実行または非実行を制御すること
を含む方法。
【請求項２】
実行する前記ステップで、前記第１動作が、前記第２動作と比較して異なる動作である、請求項１に記載の方法。
【請求項３】
制御する前記ステップで、前記所定の規則が、
前記タスク・ディレクタによって、
（ｉ）タスクの前記第１組の第１タスクがタスクの前記第２組の第２タスクの前に実行される場合に、前記第１動作および前記第２動作を実行するのに必要な時間の総量が減るかどうかと、
（ｉｉ）タスクの前記第１組の第１タスクがタスクの前記第２組の第２タスクの前に実行される場合に、前記タスク・ディレクタによって使用されるリソースの組が減るかどうかと
を判定すること、および、
必要な時間の前記総量が減る場合に、またはリソースの前記組が減る場合に、前記第１動作および前記第２動作を並行に実行する間に、時間の前記総量またはシステム・リソースの前記組の前記タスク・ディレクタによる使用率が減るように、前記タスク・ディレクタによって、前記第２タスクの前に前記第１タスクを実行すること
を含む、請求項１に記載の方法。
【請求項４】
前記データ管理動作が、複数のディスク・ドライブにまたがって分散されるデータ・ストレージ・ボリュームの組に対して実行され、制御する前記ステップで、前記所定の規則が、
前記タスク・ディレクタによって、タスクの前記第１組の第１タスクおよびタスクの前記第２組の第２タスクが、前記複数のディスク・ドライブの共通のリソースに関して競合するかどうかを判定すること、
前記第１タスクおよび前記第２タスクが、前記共通のリソースについて競合する場合に、前記第１タスクおよび前記第２タスクが、めいめいの実行時に結果の共通の組を作るかどうかを識別すること、および、
前記第１タスクおよび前記第２タスクが、結果の前記共通の組を作る場合に、前記第１タスクおよび前記第２タスクの両方が実行されないように、結果の前記共通の組を作る単一のタスクを実行すること
を含む、請求項１に記載の方法。
【請求項５】
前記タスク・ディレクタによって、結果の前記共通の組を前記第１動作および前記第２動作に通信するステップをさらに含む、請求項４に記載の方法。
【請求項６】
前記単一のタスクを実行する前記ステップで、前記単一タスクが、前記第１タスクおよび前記第２タスクの１つである、請求項４に記載の方法。
【請求項７】
前記単一のタスクを実行する前記ステップで、前記単一タスクが、前記第１タスクおよび前記第２タスクの両方と異なるタスクである、請求項５に記載の方法。
【請求項８】
並行に実行する前記ステップで、前記第１データ管理動作および前記第２データ管理動作が、データ整合性検査動作、データ・バックアップ動作、ストレージ・ドライブ再構築動作、ボリューム・セット初期化動作、階層ストレージ管理動作、仮想ストレージ自動リソース割振り動作、システム・リソース割振り閾値報告動作からなる動作の群から選択される、請求項１に記載の方法。
【請求項９】
前記データ管理動作が、複数のディスク・ドライブにまたがって分散されたデータ・ストレージ・ボリューム上のデータ・ストライプに対して実行され、並行に実行する前記ステップで、前記第１動作が、ボリューム・セットのパリティ・データ不整合性を検出するためのデータ整合性検査動作であり、前記第２動作が、データ・バックアップ動作であり、前記第１タスクおよび前記第２タスクが、前記データ・ストレージ・システム内のボリューム・セットのデータ・ストライプの組の複数のセクタを読み取る、請求項８に記載の方法。
【請求項１０】
並行に実行する前記ステップで、前記結果が、パリティ・データ不整合性が検出されたことの表示を含む、請求項９に記載の方法。
【請求項１１】
前記データ管理動作が、複数のディスク・ドライブにまたがって分散されたデータ・ストレージ・ボリュームのデータ・ストライプの組に対して実行され、タスクの前記第１組および前記第２組がデータ・ストライプの前記組の同一のデータ・ストライプに対して実行される場合に、時間の前記総量が増える、請求項１に記載の方法。
【請求項１２】
データ管理動作の調整された管理を提供するデータ・ストレージ・システムであって、
１つまたは複数のデータ・ストレージ・デバイスと、
前記データ・ストレージ・システムに結合された管理装置であって、
第１動作および第２動作を含むデータ管理動作の組を実行するためのコンピュータ・プログラム命令の組を含むタスク・ディレクタおよびデータを記憶するメモリであって、前記第１動作が、前記第２動作と比較して異なる動作であり、前記第１動作が、タスクの第１組を含み、前記第２動作が、タスクの第２組を含む、メモリと、
前記データをフェッチし、かつ
（ａ）前記第１動作が、タスクの第１組を含み、前記第２動作が、タスクの第２組を含む、前記第１動作および前記第２動作を並行に実行し、
（ｂ）所定の規則の組に基づいてタスクの前記第１組および前記第２組の各タスクの実行または非実行を制御する
ために前記タスク・ディレクタを実行するプロセッサと
を含む、管理装置と
を含むシステム。
【請求項１３】
規則の前記所定の組が、
（ａ）タスクの前記第１組の第１タスクがタスクの前記第２組の第２タスクの前に実行される場合に、前記第１動作および前記第２動作を実行するのに必要な時間の総量が増えるかどうかを判定する論理と、
（ｂ）時間の前記総量が増える場合に、時間の前記総量が実質的に減るように、前記第２タスクを前記第１タスクの前に実行する論理と
を含む、請求項１２に記載のシステム。
【請求項１４】
規則の前記所定の組が、
タスクの前記第１組の第１タスクおよびタスクの前記第２組の第２タスクが、前記複数のディスク・ドライブの共通のリソースに関して競合するかどうかを判定する論理と、
前記第１タスクおよび前記第２タスクが、共通のリソースについて競合する場合に、前記第１タスクおよび前記第２タスクが、めいめいの実行時に結果の共通の組を作るかどうかを識別する論理と、
前記第１タスクおよび前記第２タスクが、結果の共通の組を作る場合に、前記第１タスクおよび前記第２タスクの両方が実行されないように、結果の前記共通の組を作る単一のタスクを実行する論理と
を含む、請求項１２に記載のシステム。
【請求項１５】
規則の前記所定の組が、さらに、
結果の前記共通の組を前記第１動作および前記第２動作に通信する論理
を含む、請求項１４に記載のシステム。
【請求項１６】
データ・ストレージ・サブシステム内でデータ管理動作を調整する管理装置であって、
１つまたは複数のデータ・ストレージ・デバイスに結合する１つまたは複数の通信ポートと、
第１動作および第２動作を含む１つまたは複数のデータ管理動作を実行するためのコンピュータ・プログラム命令の組を含むタスク・ディレクタおよびデータを記憶するメモリであって、前記第１動作が、タスクの第１組を含み、前記第２動作が、タスクの第２組を含み、前記第１動作が、前記第２動作と比較して異なる動作である、メモリと、
前記データをフェッチし、かつ、
（ａ）前記第１動作が、タスクの第１組を含み、前記第２動作が、タスクの第２組を含む、前記第１動作および前記第２動作を並行に実行し、
（ｂ）所定の規則の組に基づいてタスクの前記第１組および前記第２組の各タスクの実行または非実行を制御する
ために前記タスク・ディレクタを実行するプロセッサと
を含む、管理装置。
【請求項１７】
規則の前記所定の組が、
タスクの前記第１組の第１タスクおよびタスクの前記第２組の第２タスクが、前記複数のディスク・ドライブの共通のリソースに関して競合するかどうかを判定する論理と、
前記第１タスクおよび前記第２タスクが、共通のリソースについて競合する場合に、前記第１タスクおよび前記第２タスクが、めいめいの実行時に結果の共通の組を作るかどうかを識別する論理と、
前記第１タスクおよび前記第２タスクが、結果の共通の組を作る場合に、前記第１タスクおよび前記第２タスクの両方が実行されないように、結果の前記共通の組を作る単一のタスクを実行する論理と
を含む、請求項１６に記載の管理装置。
【請求項１８】
規則の前記所定の組が、
タスクの前記第１組の第１タスクおよびタスクの前記第２組の第２タスクが、前記複数のディスク・ドライブの共通のリソースに関して競合するかどうかを判定する論理と、
前記第１タスクおよび前記第２タスクが、共通のリソースについて競合する場合に、前記第１タスクおよび前記第２タスクが、めいめいの実行時に結果の共通の組を作るかどうかを識別する論理と、
前記第１タスクおよび前記第２タスクが、結果の共通の組を作る場合に、前記第１タスクおよび前記第２タスクの両方が実行されないように、結果の前記共通の組を作る単一のタスクを実行する論理と
を含む、請求項１６に記載の管理装置。
【請求項１９】
規則の前記所定の組が、結果の前記共通の組を前記第１動作および前記第２動作に通信する論理をさらに含む、請求項１８に記載の管理装置。
【請求項２０】
第１コンピュータ可読記憶媒体およびそれに組み込まれたコンピュータ・プログラム機構を含み、プロセッサと共に使用されるコンピュータ・プログラム製品であって、前記コンピュータ・プログラム機構が、管理装置からの通信に応答し、複数のデータ管理動作を調整するタスク・ディレクタを含み、前記タスク・ディレクタが、
タスク・ディレクタによって、第１データ管理動作および第２データ管理動作を並行に実行する命令であって、前記第１動作が、タスクの第１組を有し、前記第２動作が、タスクの第２組を有する命令と、
前記タスク・ディレクタによって、所定の規則の組に基づいて、タスクの前記第１組および前記第２組の各タスクの実行または非実行を制御する命令と
を含む、コンピュータ・プログラム製品。
【請求項２１】
制御する前記命令で、前記第１動作が、前記第２動作と比較して異なる動作である、請求項２０に記載のコンピュータ・プログラム製品。
【請求項２２】
制御する前記命令で、前記所定の規則が、
前記タスク・ディレクタによって、
（ｉ）タスクの前記第１組の第１タスクがタスクの前記第２組の第２タスクの前に実行される場合に、前記第１動作および前記第２動作を実行するのに必要な時間の総量が減るかどうかと、
（ｉｉ）タスクの前記第１組の第１タスクがタスクの前記第２組の第２タスクの前に実行される場合に、前記タスク・ディレクタによって使用されるリソースの組が減るかどうかと
を判定すること、および
必要な時間の前記総量が減る場合に、またはリソースの前記組が減る場合に、前記第１動作および前記第２動作を並行に実行する間に、時間の前記総量またはシステム・リソースの前記組の前記タスク・ディレクタによる使用率が減るように、前記タスク・ディレクタによって、前記第２タスクの前に前記第１タスクを実行すること
を含む、請求項２０に記載のコンピュータ・プログラム製品。
【請求項２３】
前記データ管理動作が、複数のディスク・ドライブにまたがって分散されるデータ・ストレージ・ボリュームの組に対して実行され、制御する前記命令で、前記所定の規則が、
前記タスク・ディレクタによって、タスクの前記第１組の第１タスクおよびタスクの前記第２組の第２タスクが、前記複数のディスク・ドライブの共通のリソースに関して競合するかどうかを判定すること、
前記第１タスクおよび前記第２タスクが、前記共通のリソースについて競合する場合に、前記第１タスクおよび前記第２タスクが、めいめいの実行時に結果の共通の組を作るかどうかを識別すること、および、
前記第１タスクおよび前記第２タスクが、結果の前記共通の組を作る場合に、前記第１タスクおよび前記第２タスクの両方が実行されないように、結果の前記共通の組を作る単一のタスクを実行すること
を含む、請求項２０に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ・ストレージ・システムに関する。より詳細には、本発明は、並行実行されるデータ管理動作を提供する形でのデータ・ストレージ・サブシステムに対する１つまたは複数のデータ管理動作の実行の調整に関する。
【０００２】
【従来の技術】
既存のデータ・ストレージ管理動作には、ユーザ・データまたはメタデータあるいはこの両方に対して動作する独立の動作が含まれる。そのようなデータ・ストレージ・デバイス・アレイ制御動作には、たとえば、（ａ）パリティ・データ不整合性を検出し、いくつかの場合に訂正するためのデータ整合性検査、（ｂ）アレイ管理されるバックアップ戦略、（ｃ）故障したメンバ・ディスクを有するボリューム・セット内の冗長性の論理ドライブ再構築、（ｄ）ボリューム・セット初期化動作、（ｅ）階層ストレージ管理動作、（ｆ）仮想ストレージ自動リソース・アロケータ動作、（ｇ）システム・リソース使用率に関する閾値に合致したかそれを超えた時の報告の方法、および類似物が含まれる。ボリューム・セットは、ホスト・コンピュータの稼動環境によって見られる時に単一論理ディスクに最もよく似ているディスク・アレイ・オブジェクトである。これらの動作は、通常は、フォアグラウンド・プロセスまたはバックグランド・プロセスのいずれかとして、システム管理者によって直列の形で独立に実行される。そのようなデータ管理動作を実行する手順は、データ・ストレージ・システム管理の分野で既知である。
【０００３】
そのような独立に実行されるディスク・アレイ制御動作は、プロセッサ・リソースおよびデータ・ストレージ・デバイス・リソースについて競合する。たとえば、既知のデータ・ストレージ・デバイス・データ整合性検査では、ボリューム・セットのデータの所与のストライプに関連するすべてのデータ・セクタおよびパリティ・セクタを含むボリューム・セット媒体表面が独立にスキャンされ、通常は、そのストライプについて記憶されたパリティがストライプに記憶されたホスト・データと一致するかどうかを判定するために、これらのセクタ内のすべてのデータ・バイトに対する動作が実行される。同様に、既知のアレイ管理されるバックアップ動作でも、ボリューム・セットに含まれるすべてのデータ・セクタおよびパリティ・セクタを含むボリューム・セット媒体表面が独立にスキャンされ、データに対するある動作が実行される。これらの従来技術の技法は、通常は、データ整合性検査動作およびアレイ・バックアップ動作が並行に実行される場合に、媒体表面の複数の冗長なスキャンおよび関連するデータ動作が、一般に、所与のボリューム・セット内の同一のデータ・セクタおよびパリティ・セクタに対して実行されるという点で、制限されている。
【０００４】
数ギガバイトまたは数テラバイトの範囲であることがめずらしくない今日の構成されたストレージ・プール・サイズと、スキャンし、データに対する一般的な動作または独自の動作あるいはこの両方を実行するのに要する時間に関して、これらの既知の独立の方法は、時間とシステム・リソース全体像の両方から、非常に非効率的である。しばしば、既知の独立にスケジューリングされる動作が、完了に１日を超える時間を要する。
【０００５】
【発明が解決しようとする課題】
動作を実行するのに必要な時間が実質的に減るように、ディスク・アレイ制御動作の実行を調整するシステムおよび方法が必要である。
【０００６】
【課題を解決するための手段】
本発明は、従来技術で不可能な、データ管理動作に必要な時間およびシステム・リソースを実質的に減らす、データ管理動作の調整された管理を提供する。これは、並行実行されるデータ管理動作の要件に基づいてそのような制御動作を条件的に実行するために包括的タスク・ディレクタ（ＣＴＤ）を実施することによって達成される。
【０００７】
本発明の一態様は、データ管理動作の組によって管理されるデータ・ストレージ・サブシステム内で実施される方法である。この方法では、まず、タスク・ディレクタによって、第１データ管理動作および第２データ管理動作を並行に実行することによって、データ管理動作の実行を調整する。第１動作には、タスクの第１組が含まれ、第２動作には、タスクの第２組が含まれる。次に、この方法では、所定の規則の組に基づいて、タスクの第１組および第２組の各タスクの実行または非実行を制御する。
【０００８】
もう１つの態様では、本発明は、データ管理動作の調整された管理を提供するデータ・ストレージ・システムである。このシステムには、管理装置に接続された１つまたは複数のデータ・ストレージ・デバイスが含まれる。管理装置には、タスク・ディレクタがデータ管理動作を実行するためのコンピュータ・プログラム命令およびデータを記憶するメモリが含まれ、このデータ管理動作には、第１動作および第２動作が含まれる。第１動作には、タスクの第１組が含まれ、第２動作には、タスクの第２組が含まれる。
【０００９】
管理装置には、メモリからデータをフェッチし、タスク・ディレクタを実行するプロセッサも含まれる。まず、タスク・ディレクタは、第１動作および第２動作を並行に実行する。第１動作には、タスクの第１組が含まれ、第２動作には、タスクの第２組が含まれる。次に、タスク・ディレクタは、所定の規則の組に基づいて、タスクの第１組および第２組の各タスクの実行または非実行を制御する。
【００１０】
もう１つの態様では、本発明は、データ・ストレージ・サブシステム内でデータ管理動作を調整する管理装置である。管理装置には、１つまたは複数のデータ・ストレージ・デバイスに結合する１つまたは複数の通信ポートと、１つまたは複数のデータ管理動作を実行するためのタスク・ディレクタおよびデータを記憶するメモリが含まれる。データ管理動作には、第１動作および第２動作が含まれる。第１動作には、タスクの第１組が含まれ、第２動作には、タスクの第２組が含まれる。
【００１１】
管理装置には、メモリ内のデータをフェッチし、タスク・ディレクタを実行するプロセッサも含まれ、タスク・ディレクタは、第１動作および第２動作を並行に実行する。次に、管理装置が、所定の規則の組に基づいて、第１動作および第２動作の実行を制御する。
【００１２】
【発明の実施の形態】
本発明は、時間および使用されるシステム・リソースが、従来技術のデータ管理方法と比較して実質的に減らされるように、管理動作の実行を指示する包括的タスク・ディレクタ（ＣＴＤ）を実施することによって、データ・ストレージ・サブシステム内での並行に実行されるデータ管理動作の調整された管理を提供する。本発明の方法を説明する前に、まず、本発明の例示的システムおよび装置の諸態様を説明する。
【００１３】
図１を参照すると、本発明の一実施形態によるＲＡＩＤ（新磁気ディスク制御機構）データ・ストレージ・システム１００の諸態様を示すブロック図がある。ＲＡＩＤでは、容量を増やし、データ転送速度を改善し、より高いシステム信頼性をもたらすために一緒に働く、ディスク・アレイと称する複数の磁気ディスクまたは光ディスクが使用される。下で説明する本発明の規約なしでＲＡＩＤを実施する技法は、当技術分野で既知である。
【００１４】
システム１００には、入出力インターフェース１０４を介してコントローラ１０６に接続されるコンピュータ１０２が含まれる。コンピュータ１０２は、データをフェッチし、メモリに記憶されたコンピュータ・プログラム命令（図示せず）を実行するためにメモリ（図示せず）に結合されたプロセッサを有するすべてのタイプのコンピュータである。そのようなコンピュータ・プログラム命令は、１つまたは複数のディスク・ドライブ１１２−１から１１２−Ｎに関するデータ入出力動作を実行するのに使用される。入出力インターフェース１０４は、たとえばＳｍａｌｌ　Ｃｏｍｐｕｔｅｒ　Ｓｙｓｔｅｍｓ　Ｉｎｔｅｒｆａｃｅ（ＳＣＳＩ）入出力インターフェースなど、どのタイプの入出力インターフェースにもすることができる。ＳＣＳＩ入出力プロトコルは、当技術分野で既知である。
【００１５】
コントローラ１０６は、システム１００で使用される特定のＲＡＩＤレベルに従ってディスク・ドライブ１１２−１から１１２−Ｎとの間でデータをストライピングするディスク・アレイ・コントローラである。さまざまなＲＡＩＤレベルが、ＲＡＩＤデータ・ストレージ・システムを構成する技術の分野で既知である。コントローラ１０６は、入出力インターフェース１１０を介してディスク・ドライブ１１２−１から１１２−Ｎに接続される。入出力インターフェース１１０は、たとえばファイバ・チャネル・インターフェースまたはＳＣＳＩインターフェースなど、どのタイプの入出力インターフェースにもすることができる。ディスク・ドライブ１１２−１から１１２−Ｎは、それ自体のストレージ障害を検出する能力を有する、不揮発性、ランダムアクセス可能、書換可能大容量記憶装置を表す。そのような大容量記憶装置には、回転式の磁気ディスクおよび光ディスクと半導体ディスク、または、たとえばＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭなどの不揮発性電子記憶要素の両方を含めることができる。
【００１６】
コントローラ１０６には、メモリ１０７に記憶されたデータおよびコンピュータ・プログラム命令をフェッチして、上で述べた入出力動作を実行し、ディスク・ドライブ１１２−１から１１２−Ｎにまたがるデータ管理動作を調整するプロセッサ（図示せず）が含まれる。たとえば、タスク・ディレクタ１０８は、コンピュータ・プログラム命令として実施され、コントローラ１０６によって、ディスク・ドライブ１１２−１から１１２−Ｎにまたがるデータ管理動作を調整するのに使用される。そのような動作が通常は独立の直列タスクとして実行される従来技術とは異なって、タスク・ディレクタ１０８は、そのような動作を、直列または並行（並列）のいずれかの形で実行し、そのような動作を実行するのに必要な時間およびシステム・リソースの量が、従来技術と比較して実質的に減らされるようにする。メモリ１０７の例示的コンピュータ・プログラム命令モジュールの諸態様を、下で図２に関して詳細に説明する。
【００１７】
タスク・ディレクタ１０８を、コントローラ１０６のメモリ１０７内で実施されるものとして図示したが、タスク・ディレクタ１０８を、データ・ストレージ・システム１００の１つまたは複数の他の構成要素に結合されたメモリ内で実施することができる。たとえば、タスク・ディレクタ１０８を、ファイバ・チャネル・システム１００内で入出力を切り替えるのに使用されるファイバ・スイッチ（図示せず）のメモリ内で実施することができる。タスク・ディレクタ１０８の例示的手順の諸態様を、下で図３に関して詳細に説明する。
【００１８】
図２を参照すると、本発明の一実施形態による例示的メモリ１０７の諸態様を示すブロック図がある。メモリ１０７には、タスク・ディレクタ１０８および複数のデータ管理動作２０２のコンピュータ・プログラミング命令を含むコンピュータ・プログラム命令およびデータが記憶される。そのようなデータ管理動作２０２には、たとえば、データ整合性検査動作２０２−１、ディスク・ドライブ・バックアップ動作２０２−２、ドライブ初期化動作２０２−３、ストレージ管理動作２０２−４、リソース・アロケータ動作２０２−５、および閾値レポータ動作２０２−Ｍが含まれる。
【００１９】
各データ管理動作２０２に、１つまたは複数のめいめいのタスクが含まれる。たとえば、データ整合性検査動作２０２−１に、データ生成タスクおよびデータ比較タスクが含まれる。さらに、システム管理者が、データ不整合性を訂正しなければならないと判定する場合に、データ整合性検査２０２−１に、データ訂正タスクも含まれる。もう１つの例では、ディスク・ドライブ・バックアップ２０２−２に、あるボリューム・セットのデータをアレイ内の別のボリューム・セットまたはアレイの外部の装置にコピーすることが含まれる。
【００２０】
タスク・ディレクタ１０８は、実行プランに従って、１つまたは複数のデータ管理動作２０２の直列実行または並行実行のいずれかを指示する。実行プランによって、どのデータ管理動作２０２がタスク・ディレクタ１０８によって実行されるかと、それらが実行される順序および時刻が示される。たとえば、一実施形態では、実行プランによって、あるデータ管理動作２０２が、１つまたは複数の他のデータ管理動作２０２と並行に実行されなければならないことが示される。これを示すために、実行プランによって、データ整合性動作２０２−１が、ディスク・ドライブ・バックアップ動作２０２−２と並行に実行されることを示すことができることを検討されたい。
【００２１】
一実施形態では、実行プランが、メモリ１０７内のファイル、たとえば実行プラン２０６として記憶される。もう１つの実施形態では、実行プランが、特定の時にコンピュータ１０２からタスク・ディレクタ１０８に送られるコマンドの組である。そのようなコマンドは、複数の異なるコマンド、たとえば、１つまたは複数のデータ管理動作２０２が実行されることを示すようにベンダ固有データ・フィールドをセットされたＳＣＳＩコマンドとすることができる。
【００２２】
ここで、図３に関してタスク・ディレクタ１０８の例示的手順の諸態様を説明する。図３を参照すると、本発明の一実施形態による、タスク・ディレクタ１０８の例示的タスク手順３００の諸態様を示す流れ図が示されている。手順３００のこの詳細な説明では、ボリューム・セットが、ディスク・ドライブ１１２−１から１１２−Ｎ（図１を参照されたい）にまたがって既に定義されており、コンピュータ１０２が、定義されたボリューム・セットを使用するように構成されると仮定する。ボリューム・セットを定義する手順およびそれを使用するようにコンピュータを構成する手順は、当技術分野で既知である。
【００２３】
ステップ３０２で、手順３００は、少なくとも２つのデータ管理動作２０２（図２を参照されたい）を実行する。ステップ３０４で、手順３００は、並行にまたは並列に実行される少なくとも２つのデータ管理動作２０２があるかどうかを判定する。たとえば、タスク・マネージャ１０８が、ディスク・ドライブ・バックアップ動作２０２−２とデータ整合性検査動作２０２−１を実行し、これらが同時にまたは実質的に同時に実行されつつある場合に、これらを、並行にまたは並列に実行されると言う。２つを超えるデータ管理動作２０２を、タスク・ディレクタ１０８によって並行に実行できることを理解されたい。また、異なる動作２０２が、異なる時間の期間を消費し、その結果、並行の時間が、異なる動作２０２の間でオーバーラップする時間を有する実行を指す場合があることに留意されたい。
【００２４】
データ管理動作２０２が、並行に実行されていない場合に（ステップ３０４）、ステップ３０６で、手順３００が、めいめいのタスクのそれぞれが完了するまで、１つまたは複数のデータ管理動作２０２（ステップ３０２）の処理を継続する。
【００２５】
しかし、１つまたは複数のデータ管理動作２０２が、並行に実行されつつある場合に（ステップ３０４）、ステップ３０８で、手順３００が、少なくとも２つの並行実行される動作２０２に、並行に実行される場合に共通のリソースについて競合する１つまたは複数のめいめいのタスクが含まれるかどうかを判定する。たとえば、データ整合性検査動作２０２−１およびディスク・ドライブ・バックアップ動作２０２−２が、並行に実行され、それぞれが、指定された同一の時間の期間内に所与のボリューム・セット（２つ以上のディスク・ドライブ１１２−１から１１２−Ｎにまたがって分散される。図１を参照されたい）に対する１つまたは複数の動作を実行するようにスケジューリングされる場合に、２つの並行に実行される動作２０２が、共通のリソースについて競合すると言われる。この例では、これらの動作が、所与のボリューム・セットへのアクセスについて競合する。
【００２６】
少なくとも２つのタスクが、共通のリソースについて競合する場合に（ステップ３０８）、ステップ３１０で、手順３００は、競合するタスクが共通の結果を作るかどうかを判定する。たとえば、データ整合性検査動作２０２−１に、所定のボリューム・セット内の所定のデータ・ストライプのすべてのセクタ（データおよびメタデータ）を読み取るタスクが含まれる。同様に、ディスク・ドライブ・バックアップ動作２０２−２に、所定のボリューム・セット内の所定のデータ・ストライプのすべてのセクタ（データおよびメタデータ）を読み取るタスクが含まれる。所定のデータ・ストライプおよび所定のボリューム・セットが、両方の動作２０２について同等である場合に、めいめいのタスクの結果は、同一になる。
【００２７】
競合するタスクが、共通の結果を作ると判定される場合に（ステップ３１０）、ステップ３１２で、手順３００は、共通の結果を作るものとして識別されたタスクのそれぞれを実行せずに、ステップ３１０で識別された共通の結果を作るために、単一のタスクを実行する。ステップ３１４で、手順３００は、共通の結果を作るものとして識別された（ステップ３１０）めいめいのタスクに対応するめいめいのデータ管理動作２０２のそれぞれに、共通の結果（ステップ３１２）を通信する。手順３００は、図４に示されたステップ３１６で継続される。
【００２８】
図４を参照すると、本発明の一実施形態による、タスク・ディレクタ１０８の手順３００の諸態様を示す流れ図がある。ステップ３１６で、手順３００は、第１データ管理動作２０２に対応する第１タスクが、第２データ管理動作２０２の第２タスクが実行される前に実行される場合に、より早く完了するかどうかを判定する。
【００２９】
たとえば、第１動作２０２を、所定のボリューム・セットの所定のデータ・ストライプで見つかったすべてのデータ不整合性を訂正する第１タスクを有するデータ整合性検査動作２０２−１とすることができることを検討されたい。さらに、第２動作を、最後のバックアップ動作２０２−２が実行されて以来、所定のデータ・ストライプが修正されたかどうかを識別する第２タスクを有するディスク・ドライブ・バックアップ動作２０２−２とすることができることを検討されたい。さらに、第２タスクが第１タスクの前に実行されることを検討し、第１タスクが、所定のデータ・ストライプでデータ不整合性を見つけ、訂正することを検討されたい。この例では、修正される所定のデータ・ストライプの最新のバックアップを提供するために、第２タスクを２回実行することが必要である。そのような実行順序は、第１タスクが第２タスクの前に実行されることを必要とする実行時間と比較して、より長い実行時間をもたらす。
【００３０】
少なくとも２つの動作２０２を実行するのに必要な時間の長さが、第１タスクが第２タスクの後で実行される場合に増えると判定される場合に（ステップ３１６）、ステップ３１８で、手順３００は、第２タスクを実行する前に第１タスクを実行して、少なくとも２つの動作２０２を実行するのに必要な時間の長さを減らす。
【００３１】
ステップ３２０で、手順３００は、実行タスクがリソース衝突を引き起こさないように、１つまたは複数の並行に実行される動作２０２（ステップ３０４）に対応する残りのめいめいのタスクのそれぞれの実行を同期化する。リソース衝突は、一般に、あるタスクが、別のタスクがメモリ位置にアクセスするのと実質的に同時にそのメモリ位置にアクセスする時に発生する競争状態を指す。そのようなアクセスは、読取アクセスまたは書込アクセスあるいはその両方とすることができる。競争状態は、既知であり、誤ったデータ結果を作る可能性がある。並行に実行されるコンピュータ・プログラム・アプリケーションの間で特定のメモリ位置への実質的に同時のアクセスを防ぐ手順は、既知である。
【００３２】
一実施形態では、手順３００は、あるタスクがメモリ位置にアクセスする前にそのメモリ位置をロックし、そのタスクがそのメモリ位置へのアクセスを完了した後にメモリ位置をロック解除することによって、そのような競争状態を防ぐ。メモリ位置をロックする際に、ロック・ステップを実行したタスクだけが、そのメモリ位置へのアクセス権を有する。そのようなロック動作は、複数の異なる機構によって実行することができる。たとえば、ＳＣＳＩプロトコルを使用して、ディスク・ドライブ１１２−１から１１２−Ｎ（図１を参照されたい）のメモリ位置をロックすることができる。
【００３３】
本発明のシステム１００（図１を参照）、装置（図２を参照）、および手順（図３および４を参照）の上の説明から理解されるように、データ管理動作２０２の実行は、タスク・ディレクタ１０８が、（ａ）並行に実行されるデータ管理動作２０２の実行を指示する手段を提供し、（ｂ）同一のリソースについて競合する並行に実行される動作２０２がリソース衝突を起こさないようにし、（ｃ）２つ以上のデータ管理動作を実行するのに通常必要である時間の長さを減らすように、タスク・ディレクタ１０８によって指示される。
【００３４】
前述の説明では、説明のために、多数の用語を使用して、本発明の完全な理解を提供した。しかし、当業者には、本発明を実施するために、特定の詳細が不要であることを理解するであろう。他の場合には、基礎となる発明から不必要に注意をそらさないようにするために、周知の回路、装置、ソフトウェア・モジュール、および類似物を、ブロック図の形で示した。したがって、本発明の特定の実施形態の前述の説明は、例示および説明のために提示されたものである。これらは、網羅的であること、または本発明を開示された正確な形態に制限することを意図されておらず、明らかに、上の教示に鑑みて、多数の修正形態および変形形態が可能である。
【００３５】
実施形態は、本発明の原理およびその実用的な応用例を最もよく説明するために選択され、説明され、これによって、当業者が、企図される特定の用途に適するさまざまな修正と共に本発明を最もよく利用できるようにするためのものである。本発明の範囲は、請求項およびその均等物によって定義されることが意図されている。
【図面の簡単な説明】
【図１】
本発明の一実施形態による、データ管理動作を調整するシステムを示すブロック図である。
【図２】
本発明の一実施形態による、データ管理動作を調整する例示的ディスク・アレイ・コントローラ・メモリを示すブロック図である。
【図３】
本発明の一実施形態による、データ管理動作を調整する例示的手順を示す流れ図である。
【図４】
本発明の一実施形態による、データ管理動作を調整する例示的手順を示す流れ図である。
【図１】
2004513423.tif 000003
【図２】
2004513423.tif 000004
【図３】
2004513423.tif 000005
【図４】
2004513423.tif 000006
【国際公開パンフレット】
2004513423.tif 000007
2004513423.tif 000008
2004513423.tif 000009
2004513423.tif 000010
2004513423.tif 000011
2004513423.tif 000012
2004513423.tif 000013
2004513423.tif 000014
2004513423.tif 000015
2004513423.tif 000016
2004513423.tif 000017
2004513423.tif 000018
2004513423.tif 000019
2004513423.tif 000020
2004513423.tif 000021
2004513423.tif 000022
2004513423.tif 000023
2004513423.tif 000024
2004513423.tif 000025
2004513423.tif 000026
2004513423.tif 000027
2004513423.tif 000028
2004513423.tif 000029
2004513423.tif 000030
【国際公開パンフレット（コレクトバージョン）】
2004513423.tif 000031
2004513423.tif 000032
【国際調査報告】
2004513423.tif 000033
2004513423.tif 000034