(57)【要約】データパス関連プラグインを記憶システムの論理記憶エンティティに対して配備するための方法であって、本方法が、データパス関連プラグインを論理記憶エンティティに対して配備することであって、配備することがプラグイン包含データパス仕様を作成することを含み、プラグイン包含データパス仕様がデータパス関連プラグインの動作を含む、データパス関連プラグインを論理記憶エンティティに対して配備すること；および検証データパス仕様を作成することであって、検証データパス仕様が、データパス関連プラグインの動作を含まず、かつ検証データパス仕様を有する、検証データパス内で実行されるタスクが、プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されているタスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成すること、を含む。【選択図】図８
2016519364.tif 000002
【特許請求の範囲】
【請求項１】
記憶システムの論理記憶エンティティに対してデータパス関連プラグインを配備するための方法であって、前記方法が、
前記データパス関連プラグインを前記論理記憶エンティティに対して配備することであって、前記配備することがプラグイン包含データパス仕様を作成することを含み、かつ前記プラグイン包含データパス仕様が前記データパス関連プラグインの動作を含む、前記データパス関連プラグインを前記論理記憶エンティティに対して配備することと、
検証データパス仕様を作成することであって、前記検証データパス仕様が、前記データパス関連プラグインの動作を含まず、かつ前記検証データパス仕様を有する、検証データパス内で実行されるタスクが、前記プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されている前記タスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成することと
を含む、記憶システムの論理記憶エンティティに対してデータパス関連プラグインを配備するための方法。
【請求項２】
前記データパス関連プラグインが、前記記憶システムと関連付けられたプラグインプール内に格納されたデータパス関連プラグインのリストから選択される、請求項１に記載の方法。
【請求項３】
前記配備することが、前記論理記憶エンティティと関連付けられたサービス水準仕様（ＳＬＳ）の違反とならないかをチェックすることをさらに含み、かつ前記チェックすることが、前記配備することが前記ＳＬＳの違反とならないことを示した場合に、前記配備することおよび前記作成することが実行される、請求項１に記載の方法。
【請求項４】
所与のタスクを、前記プラグイン包含データパス上および前記検証データパス上で実行することと、
前記所与のデータを、前記検証データを使用して検証することと、
前記第１の実行結果と前記第２の実行結果との間に不一致が存在する場合、１つ以上の失敗時の動作の実行することと
をさらに含む、請求項１に記載の方法。
【請求項５】
前記検証データが、前記所与のデータに含まれている情報と同一の情報を含む場合、前記検証することが成功である、請求項４に記載の方法。
【請求項６】
前記検証データおよび前記所与のデータが同一である場合、前記検証することが成功である、請求項５に記載の方法。
【請求項７】
前記１つ以上の失敗時の動作が、以下の動作：
（ａ）前記検証されていないデータパス関連プラグインを前記論理記憶エンティティから取り除くこと；
（ｂ）前記検証されていないデータパス関連プラグインを前記論理記憶エンティティに対して無効にすること；
（ｃ）前記所与のデータを訂正するために前記検証データを利用すること；
（ｄ）失敗を示す通知を前記論理記憶エンティティのユーザーに対して発行すること；
（ｅ）以前のバージョンが存在する場合、前記検証されていないデータパス関連プラグインの以前のバージョンに戻すこと；
（ｆ）前記検証されていないデータパス関連プラグインと関連付けられたグレードを下げること；
の１つ以上を含む、請求項４に記載の方法。
【請求項８】
検証されていないデータパス関連プラグインの検証が完了する場合、前記検証データパスを除去することと、１つ以上の検証動作を実行することとをさらに含む、請求項１に記載の方法。
【請求項９】
前記検証動作が、以下の動作：
（ａ）前記検証されていないデータパス関連プラグインと関連付けられたグレードを上げること；
（ｂ）前記検証が完了することを示す通知を前記論理記憶エンティティのユーザーに対して発行すること；
の１つ以上を含む、請求項８に記載の方法。
【請求項１０】
前記記憶システムが、分散記憶システムであり、かつ前記チェックが、前記配備することが前記ＳＬＳの違反となることを示した場合、前記方法が、
前記分散記憶システムの動的挙動に関する動的挙動パラメータデータを受信することと、
前記少なくとも１つのＳＬＳ、前記分散記憶システムのインフラストラクチャ層に接続されたストレージ関連資源に関するストレージ関連資源パラメータデータ、および動的挙動パラメータデータに、少なくとも基づき、前記分散記憶システムに対する再構成を計算することと、
前記計算された再構成に従って、前記ストレージ関連資源の１つの少なくとも一部を自動的に割り当てることと
をさらに含む、請求項１に記載の方法。
【請求項１１】
統一分散記憶プラットフォーム（ＵＤＳＰ）エージェントを実行するように構成された少なくとも１つの処理資源を含むコンピュータノードであって、前記ＵＤＳＰエージェントが、
前記データパス関連プラグインを前記論理記憶エンティティに対して配備することであって、前記配備が、プラグイン包含データパス仕様を作成することを含み、かつ前記プラグイン包含データパス仕様が、前記データパス関連プラグインの動作を含む、前記データパス関連プラグインを前記論理記憶エンティティに対して配備することと、
検証データパス仕様を作成することであって、前記検証データパス仕様が、前記データパス関連プラグインの動作を含まず、かつ前記検証データパス仕様を有する、検証データパス内で実行されるタスクが、前記プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されている前記タスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成することと
を行うように構成されている、コンピュータノード。
【請求項１２】
前記データパス関連プラグインが、前記記憶システムと関連付けられたプラグインプール内に格納されたデータパス関連プラグインのリストから選択される、請求項１１に記載のシステム。
【請求項１３】
前記ＵＤＳＰエージェントが、前記配備が前記論理記憶エンティティと関連付けられたサービス水準仕様（ＳＬＳ）の違反とならないかをチェックするようにさらに構成され、前記チェックが、前記配備が前記ＳＬＳの違反とならないことを示した場合に、前記配備および前記作成が実行される、請求項１１に記載のシステム。
【請求項１４】
前記ＵＤＳＰエージェントが、
所与のタスクを、前記プラグイン包含データパス上および前記検証データパス上で実行することと、
前記所与のデータを、前記検証データを使用して検証することと、
前記第１の実行結果と前記第２の実行結果との間に不一致が存在する場合、１つ以上の失敗時の動作の実行することと
を行うようにさらに構成されている、請求項１１に記載のシステム。
【請求項１５】
前記検証データが、前記所与のデータに含まれている情報と同一の情報を含む場合、前記検証が成功である、請求項１４に記載のシステム。
【請求項１６】
前記検証データおよび前記所与のデータが同一である場合、前記検証が成功である、請求項１５に記載のシステム。
【請求項１７】
前記１つ以上の失敗時の動作が、以下の動作：
（ａ）前記検証されていないデータパス関連プラグインを前記論理記憶エンティティから取り除くこと；
（ｂ）前記検証されていないデータパス関連プラグインを前記論理記憶エンティティに対して無効にすること；
（ｃ）前記検証データを、前記所与のデータを訂正するために利用すること；
（ｄ）失敗を示す通知を前記論理記憶エンティティのユーザーに対して発行すること；
（ｅ）以前のバージョンが存在する場合、前記検証されていないデータパス関連プラグインの以前のバージョンに戻すこと；
（ｆ）前記検証されていないデータパス関連プラグインと関連付けられたグレードを下げること；
の１つ以上を含む、請求項１４に記載のシステム。
【請求項１８】
検証されていないデータパス関連プラグインの検証が完了する場合、前記ＵＤＳＰエージェントが、前記検証データパスを除去して、１つ以上の検証動作を実行するようにさらに構成されている、請求項１１に記載のシステム。
【請求項１９】
前記検証動作が、以下の動作：
（ａ）前記検証されていないデータパス関連プラグインと関連付けられたグレードを上げること；
（ｂ）前記検証が完了することを示す通知を前記論理記憶エンティティのユーザーに対して発行すること；
の１つ以上を含む、請求項１８に記載のシステム。
【請求項２０】
前記記憶システムが、分散記憶システムであり、かつ前記チェックが、前記配備が前記ＳＬＳの違反となることを示した場合、前記ＵＤＳＰエージェントが、
前記分散記憶システムの動的挙動に関する動的挙動パラメータデータを受信することと、
前記少なくとも１つのＳＬＳ、前記分散記憶システムのインフラストラクチャ層に接続されたストレージ関連資源に関するストレージ関連資源パラメータデータ、および動的挙動パラメータデータに、少なくとも基づき、前記分散記憶システムに対する再構成を計算することと、
前記計算された再構成に従って、前記ストレージ関連資源の１つの少なくとも一部を自動的に割り当てることと
を行うようにさらに構成されている、請求項１１に記載のシステム。
【請求項２１】
マシンによって可読なプログラム記憶装置であって、データパス関連プラグインを記憶システムの論理記憶エンティティに対して配備するための方法を実行するために前記マシンによって実行可能な命令のプログラムを有形的に具現化し、
前記データパス関連プラグインを前記論理記憶エンティティに対して配備するステップであって、前記配備することが、プラグイン包含データパス仕様を作成することを含み、かつ前記プラグイン包含データパス仕様が前記データパス関連プラグインの動作を含む、前記データパス関連プラグインを前記論理記憶エンティティに対して配備するステップと、
検証データパス仕様を作成するステップであって、前記検証データパス仕様が前記データパス関連プラグインの動作を含まず、かつ前記検証データパス仕様を有する、検証データパス内で実行されるタスクが、前記プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されている前記タスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成するステップと
を含む、マシンによって可読なプログラム記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶システムのデータパス関連プラグインに関し、詳細には、かかるデータパス関連プラグインを配備するためのシステムおよび方法に関する。
【背景技術】
【０００２】
分散記憶システムは、過去１０年間にわたり、ネットワークが容量および速度において増大するにつれて、急速に発展してきた。ネットワークがローカルエリアネットワーク（ＬＡＮ）からグローバルなワイドエリアネットワーク（ＷＡＮ）に拡大するとともに、ビジネスがよりグローバルに分散されてきて、遠く離れた地理的位置にわたってデータ記憶およびアクセスを提供するために、分散記憶システムに対する要求が生じている。ある場合には、様々な実体が、様々な分散記憶システムのデータパス関連プラグインを開発して、かかるデータパス関連プラグインを分散記憶システム内に組み込むための機能を探し求める。しかし、かかるデータパス関連プラグインを分散記憶システムに組み込むことは、予期しないか、または望ましくない動作、例えば、データの破損、性能の低下などを引き起こし得る。従って、データパス関連プラグインを分散データ記憶システムに組み込むための新しい方法およびシステムに対する、当技術分野における必要性がある。
【０００３】
背景として本開示の主題に関連すると考えられる従来技術の参照を、以下にリストする。本明細書での参照の確認は、これらが、本開示の主題の特許性と何らかの関係があることを意味すると解釈されるものではない。
【０００４】
米国特許公開第２００９／００７０３３７号「Ａｐｐａｒａｔｕｓ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  ａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｓｔｏｒａｇｅ  Ｇｌｏｂａｌ  Ｄａｔａｂａｓｅ」は、「所与のデータ要素に対する要求が地理的慣性を招く、データ要素の分散を管理するための地理的に分散された記憶システム。地理的に分散された記憶システムは、地理的に分散されたサイトを含み、各々は、データ要素およびそのデータ要素の１つに関連する要求を受信するためのローカルアクセスポイントを含む、グローバルに首尾一貫した分散データベースの一部をローカルに格納するためのサイト記憶装置を含む。地理的に分散された記憶システムは、少なくとも１つの要求されたデータ要素を、要求が受信される、第１の地理的に分散されたサイトにおけるローカルアクセスポイントに転送し、少なくとも１つの要求されたデータ要素を第１のサイトにおいて格納し、それにより、分散データベースのグローバルな首尾一貫性を維持しながら、第１のサイトからの将来の要求のためにデータ要素に対するローカルのアクセス可能性を提供するためのデータ管理モジュールを含む。」ことに関する。
【０００５】
米国特許第５９８７５０５号、「Ｒｅｍｏｔｅ  Ａｃｃｅｓｓ  ａｎｄ  Ｇｅｏｇｒａｐｈｉｃａｌｌｙ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃｏｍｐｕｔｅｒｓ  ｉｎ  ａ  Ｇｌｏｂａｌｌｙ  Ａｄｄｒｅｓｓａｂｌｅ  Ｓｔｏｒａｇｅ  Ｅｎｖｉｒｏｎｍｅｎｔ」は、「コンピュータシステムは、データが、コンピュータハードディスクおよび他の従来の非アドレス可能なデータ記憶装置などの、永続記憶装置上に格納されている場合にさえ、複数のネットワークコンピュータがアドレス指定によってデータにアクセスするのを可能にする、グローバルなアドレス可能記憶環境を採用する。コンピュータは、単一のコンピュータネットワーク上、またはワイドエリアネットワーク（ＷＡＮ）によって結合された２つのローカルエリアネットワーク（ＬＡＮ）などの、複数の相互接続されたコンピュータネットワーク上に配置できる。グローバルにアドレス可能な記憶環境は、複数のネットワーク上の様々なコンピュータによって、かつそれらの間で、データがアクセスおよび共有されるのを可能にする。」ことに関する。
【０００６】
Ｍｓ．Ｓ．Ｖ．Ｐａｔｉｌらによる、Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｕｒｎａｌ  ｏｆ  Ｃｏｍｐｕｔｅｒ  Ａｐｐｌｉｃａｔｉｏｎｓ  ２０１０（０９７５−８８８７），Ｖｏｌｕｍｅ  １−Ｎｏ．２２，「Ｕｎｉｆｉｅｄ  Ｖｉｒｔｕａｌ  Ｓｔｏｒａｇｅ：Ｖｉｒｔｕａｌｉｚａｔｉｏｎ  ｏｆ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｓｔｏｒａｇｅ  ｉｎ  ａ  Ｎｅｔｗｏｒｋ」は、「ネットワークを通じて接続されたデスクトップマシン上の空きディスク空間を効率的に利用するための方法。今日の多くのネットワークでは、クライアントノードのローカルディスクは、散発的にのみ使用される。これは、ネットワーク内のデータ記憶を効率的に管理して、ＬＡＮ内のデスクトップマシン上のディスク空間を共有するためのソフトウェアサポートを提供する試みである。現在の状況では、従来のサーバー上でのストレージ拡張は、最大拡張制約、費用のかかる問題のような制約を有し、また、ハードウェアの交換、アップグレードの場合には、データの手動による移転が面倒になる。ＵＶＳ（Ｕｎｉｆｉｅｄ  Ｖｉｒｔｕａｌ  Ｓｔｏｒａｇｅ：統一仮想記憶）は、ネットワークを通じて接続されたデスクトップマシン上の自由に利用可能なディスク空間を効率的に利用するための試みである。その目的は、ネットワークサーバー上のデータトラフィックの負荷を軽減して、クライアントノード上の空間を効率的に利用し、それにより、空間の浪費を防ぐことである。それはまた、ストレージ拡張に対するハードウェア制約を取り除いて、データストアの位置透過性を提供する。ＵＶＳの主要な利点は、それが既存のインフラストラクチャ（ローカルエリアネットワークシステム）にシームレスに組み込むことができることである。仮想記憶は、実質的に無限の、サポートする拡張可能なアーキテクチャである。クライアントノードは、統一仮想ドライブを、異なるサーバーにわたって分散されたストレージに対するシングルポイントアクセスとして使用でき、それにより、サーバーの個々のアドレス指定を取り除く。ネットワークおよび性能によって接続されたＵＶＳサーバー上で実装されたプロトタイプの性能は、集中型システムより良く、フレームワークのオーバーヘッドは、高負荷中にさえ適度である。」と記述している。
【０００７】
米国特許公開第２０１１／０１５３７７０号、「Ｄｙｎａｍｉｃ  Ｓｔｒｕｃｔｕｒａｌ  Ｍａｎａｇｅｍｅｎｔ  ｏｆ  ａ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｃａｃｈｉｎｇ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ」は、「ｎ階層の分散キャッシングインフラストラクチャの動的構造管理ための方法、システムおよびコンピュータプログラム製品。本発明の実施形態では、ｎ階層の分散キャッシングインフラストラクチャの動的構造管理の方法は、ｎ階層のキャッシュ内のそれぞれの階層ノード（ｔｉｅｒ  ｎｏｄｅ）に配置された複数のキャッシュサーバーへの通信接続を確立すること、ｎ階層のキャッシュのそれぞれの階層ノード内のキャッシュサーバーの各々に対する性能測定基準を収集すること、閾値を超えるｎ階層の階層ノードの対応する１つ内の特定のキャッシュ資源の特性を識別すること、および識別された特性の原因となる特定のキャッシュ資源を含む、キャッシュ資源のセットを動的に構造化すること、を含む。」ことに関する。
【発明の概要】
【課題を解決するための手段】
【０００８】
本開示の主題の第１の態様によれば、データパス関連プラグインを記憶システムの論理記憶エンティティに対して配備するための方法が提供され、本方法は：前記データパス関連プラグインを前記論理記憶エンティティに対して配備することであって、前記配備することがプラグイン包含データパス仕様を作成することを含み、前記プラグイン包含データパス仕様がデータパス関連プラグインの動作を含む、前記データパス関連プラグインを前記論理記憶エンティティに対して配備すること；および検証データパス仕様を作成することであって、前記検証データパス仕様がデータパス関連プラグインの動作を含まず、かつ前記検証データパス仕様を有する、検証データパス内で実行されるタスクが、前記プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されている前記タスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成すること、を含む。
【０００９】
ある場合には、データパス関連プラグインが、記憶システムと関連付けられたプラグインプール内に格納されたデータパス関連プラグインのリストから選択される。
【００１０】
ある場合には、本方法は、前記配備が、論理記憶エンティティと関連付けられたサービス水準仕様（ＳＬＳ）の違反とならないかをチェックすることをさらに含み、前記チェックが、前記配備が前記ＳＬＳの違反とならないことを示した場合に、前記配備および前記作成が実行される。
【００１１】
ある場合には、本方法は、所与のタスクを前記プラグイン包含データパス上および前記検証データパス上で実行すること；前記所与のデータを、前記検証データを使用して検証すること；ならびに第１の実行結果と第２の実行結果との間に不一致が存在する場合、１つ以上の失敗時の動作の実行すること、をさらに含む。
【００１２】
ある場合には、前記検証データが、前記所与のデータに含まれている情報と同一の情報を含む場合、前記検証は成功である。
【００１３】
ある場合には、前記検証データおよび前記所与のデータが同一である場合、前記検証は成功である。
【００１４】
ある場合には、前記１つ以上の失敗時の動作は、以下の動作の１つ以上を含む：
（ａ）前記検証されていないデータパス関連プラグインを論理記憶エンティティから取り除くこと；
（ｂ）検証されていないデータパス関連プラグインを論理記憶エンティティに対して無効にすること；
（ｃ）検証データを、所与のデータを訂正するために利用すること；
（ｄ）失敗を示す通知を論理記憶エンティティのユーザーに対して発行すること；
（ｅ）以前のバージョンが存在する場合、検証されていないデータパス関連プラグインの以前のバージョンに戻すこと；
（ｆ）検証されていないデータパス関連プラグインと関連付けられたグレードを下げること。
【００１５】
ある場合には、本方法は、検証されていないデータパス関連プラグインの検証が完了する場合、検証データパスを除去して、１つ以上の検証動作を実行することをさらに含む。
【００１６】
ある場合には、前記検証動作は、以下の動作の１つ以上を含む：
（ａ）検証されていないデータパス関連プラグインと関連付けられたグレードを上げること；
（ｂ）検証が完了することを示す通知を論理記憶エンティティのユーザーに対して発行すること。
【００１７】
ある場合には、前記記憶システムが、分散記憶システムであり、前記チェックが、前記配備が前記ＳＬＳの違反となることを示した場合、本方法は：分散記憶システムの動的挙動に関する動的挙動パラメータデータを受信すること；前記少なくとも１つのＳＬＳ、前記分散記憶システムのインフラストラクチャ層に接続されたストレージ関連資源に関するストレージ関連資源パラメータ、および動的挙動パラメータに少なくとも、基づき、分散記憶システムに対する再構成を計算すること；ならびに、計算された再構成に従って、前記ストレージ関連資源の１つの少なくとも一部を自動的に割り当てること、をさらに含む。
【００１８】
本開示の主題の第２の態様によれば、統一分散記憶プラットフォーム（ＵＤＳＰ）エージェントを実行するように構成された少なくとも１つの処理資源を含むコンピュータノードが提供され、前記ＵＤＳＰエージェントが：前記論理記憶エンティティに対して前記データパス関連プラグインを配備することであって、前記配備が、プラグイン包含データパス仕様を作成することを含み、前記プラグイン包含データパス仕様が、データパス関連プラグインの動作を含む、前記論理記憶エンティティに対して前記データパス関連プラグインを配備すること；および検証データパス仕様を作成することであって、前記検証データパス仕様が、データパス関連プラグインの動作を含まず、かつ前記検証データパス仕様を有する、検証データパス内で実行されるタスクが、前記プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されている前記タスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成すること、を行うように構成されている。
【００１９】
ある場合には、データパス関連プラグインが、記憶システムと関連付けられたプラグインプール内に格納されたデータパス関連プラグインのリストから選択される。
【００２０】
ある場合には、前記ＵＤＳＰエージェントが、前記配備が論理記憶エンティティと関連付けられたサービス水準仕様（ＳＬＳ）の違反とならないかをチェックするようにさらに構成され、前記チェックが、前記配備が前記ＳＬＳの違反とならないことを示した場合に、前記配備および前記作成が実行される。
【００２１】
ある場合には、前記ＵＤＳＰエージェントが：所与のタスクを前記プラグイン包含データパス上および前記検証データパス上で実行すること；前記所与のデータを、前記検証データを使用して検証すること；ならびに第１の実行結果と第２の実行結果との間に不一致が存在する場合、１つ以上の失敗時の動作の実行すること、を行うようにさらに構成されている。
【００２２】
ある場合には、前記検証データが、前記所与のデータに含まれている情報と同一の情報を含む場合、前記検証は成功である。
【００２３】
ある場合には、前記検証データおよび前記所与のデータが同一である場合、前記検証は成功である。
【００２４】
ある場合には、前記１つ以上の失敗時の動作は、以下の動作の１つ以上を含む：
（ａ）前記検証されていないデータパス関連プラグインを論理記憶エンティティから取り除く；
（ｂ）検証されていないデータパス関連プラグインを論理記憶エンティティに対して無効にする；
（ｃ）検証データを、所与のデータを訂正するために利用する；
（ｄ）失敗を示す通知を論理記憶エンティティのユーザーに対して発行する；
（ｅ）以前のバージョンが存在する場合、検証されていないデータパス関連プラグインの以前のバージョンに戻す；
（ｆ）検証されていないデータパス関連プラグインと関連付けられたグレードを下げる。
【００２５】
ある場合には、検証されていないデータパス関連プラグインの検証が完了する場合、前記ＵＤＳＰエージェントは、検証データパスを除去して、１つ以上の検証動作を実行するようにさらに構成される。
【００２６】
ある場合には、前記検証動作は、以下の動作の１つ以上を含む：
（ａ）検証されていないデータパス関連プラグインと関連付けられたグレードを上げる；
（ｂ）検証が完了することを示す通知を論理記憶エンティティのユーザーに対して発行する。
【００２７】
ある場合には、前記記憶システムが、分散記憶システムであり、前記チェックが、前記配備が前記ＳＬＳの違反となることを示した場合、前記ＵＤＳＰエージェントが：分散記憶システムの動的挙動に関する動的挙動パラメータデータを受信すること；前記少なくとも１つのＳＬＳ、前記分散記憶システムのインフラストラクチャ層に接続されたストレージ関連資源に関するストレージ関連資源パラメータデータ、および動的挙動パラメータデータに、少なくとも基づき、分散記憶システムに対する再構成を計算すること；ならびに、計算された再構成に従って、前記ストレージ関連資源の１つの少なくとも一部を自動的に割り当てること、を行うようにさらに構成されている。
【００２８】
第３の態様によれば、記憶システムの論理記憶エンティティに対してデータパス関連プラグインを配備するための方法を実行するためにマシンによって実行可能な命令のプログラムを有形的に具現化する、マシンによって可読なプログラム記憶装置が提供され：前記データパス関連プラグインを前記論理記憶エンティティに対して配備することであって、前記配備することがプラグイン包含データパス仕様を作成することを含み、前記プラグイン包含データパス仕様がデータパス関連プラグインの動作を含む、前記データパス関連プラグインを前記論理記憶エンティティに対して配備すること；および検証データパス仕様を作成することであって、前記検証データパス仕様がデータパス関連プラグインの動作を含まず、かつ前記検証データパス仕様を有する、検証データパス内で実行されるタスクが、前記プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されている前記タスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成すること、を行うステップを含む。
【００２９】
本開示の主題を理解するため、およびそれが実際にはどのように実行され得るかを確認するために、主題がここで、限定されない例として、添付の図を参照して、説明される。
【図面の簡単な説明】
【００３０】
【図１】本発明の例示的な実施形態に従って、インフラストラクチャ層を含む、分散記憶システムの最上位アーキテクチャを概略的に示す。
【図２】本開示の主題に従って、分散記憶システムを構成するための簡略化した例示的なシステムを概略的に示す。
【図３】本開示の主題に従い、目的指向型管理システム（ｏｂｊｅｃｔｉｖｅ−ｂａｓｅｄ  ｍａｎａｇｅｍｅｎｔ  ｓｙｓｔｅｍ）によって実行される最適化プロセスの簡略化した例示的なフロー図を概略的に示す。
【図４】本開示の主題に従い、目的指向型管理システムによって実行される構成プロセスの例示的な操作アルゴリズムの簡略化したフロー図を概略的に示す。
【図５】本開示の主題のある例に従い、分散記憶システムに接続された例示的なコンピュータノードを概略的に示すブロック図である。
【図６】本開示の主題に従って、新しいデータパス関連プラグインを分散記憶システムのプラグイン層に導入するために実行される一連の動作の一例を示す流れ図である。
【図７】本開示の主題に従って、検証されていないデータパス関連プラグインを分散記憶システム上に配備するために実行される一連の動作の一例を示す流れ図である。
【図８】本開示の主題に従って、データパス関連プラグインに関するタスクを遂行するために実行される一連の動作の一例を示す流れ図である。
【図９】本開示の主題に従って、分散記憶システムの再構成を管理するために実行される一連の動作の一例を示す流れ図である。
【図１０】本開示の主題に従って、データパス関連プラグインを検証するために実行される一連の動作の一例を示す流れ図である。
【発明を実施するための形態】
【００３１】
図および記載される記述において、同一の参照番号は、異なる実施形態または構成に共通する構成要素を示す。
【００３２】
特に指定のない限り、以下の説明から明らかなように、本明細書を通して、「作成する」、「受信する」、「コピーする」、「更新する」、「削除する」または同様のものなどの、用語を使用する説明は、データを操作し、かつ／または他のデータに変換するコンピュータの動作および／またはプロセスを含み、前記データは、例えば、電子量などの、物理量として表され、かつ／または前記データは、物理オブジェクトを表すことを理解されたい。用語「コンピュータ」は、データ処理機能をもつ任意の種類の電子装置を包含すると拡張的に解釈されるべきであり、限定されない例として、パーソナルコンピュータ、サーバー、コンピューティングシステム、通信装置、プロセッサ（例えば、デジタル信号プロセッサ（ＤＳＰ）、マイクロコントローラ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）など）、任意の他の電子計算機、およびまたはそれらの任意の組合せを含む。
【００３３】
本明細書の教示に従った動作は、所望の目的に対して特別に構築されたコンピュータによって、またはコンピュータ可読記憶媒体内に格納されたコンピュータプログラムにより所望の目的に対して特別に構成された汎用コンピュータによって、実行され得る。
【００３４】
本明細書では、句「例えば（ｆｏｒ  ｅｘａｍｐｌｅ）」、「などの（ｓｕｃｈ  ａｓ）」、「例えば（ｆｏｒ  ｉｎｓｔａｎｃｅ）」およびそれらの変形は、本開示の主題の限定されない実施形態を記述する。本明細書における「１つの場合」、「ある場合」、「他の場合」またはそれらの変形の参照は、実施形態（複数可）に関連して記述される特定の特徴、構造または特性が、本開示の主題の少なくとも１つの実施形態に含まれることを意味する。従って、句「１つの場合」、「ある場合」、「他の場合」またはそれらの変形の出現は、必ずしも同じ実施形態（複数可）を参照しない。
【００３５】
明確にするために、別個の実施形態のコンテキストで説明される、本開示の主題のある特徴が、単一の実施形態に組み合わせても提供され得ることを理解されたい。逆に言えば、簡潔さのために、単一の実施形態のコンテキストで説明される、本開示の主題の様々な特徴が、別々に、または任意の適切な部分的組合せでも提供され得る。
【００３６】
本開示の主題の実施形態では、図２〜図４および図６〜図１０に示されるものより少ない、多い、および／または異なる段階が、実行され得る。本開示の主題の実施形態では、図２〜図４および図６〜図１０に例示する１つ以上の段階が、異なる順序で実行され得、かつ／または段階の１つ以上のグループが同時に実行され得る。図１および図５は、本開示の主題の実施形態に従った、システムアーキテクチャの概略図を示す。図１および図５における各モジュールは、本明細書で定義して説明する通りに機能を実行するソフトウェア、ハードウェア、および／またはファームウェアの任意の組合せで構成できる。図１および図５におけるモジュールは、１つの位置に集中され得るか、または２つ以上の位置にわたって分散され得る。本開示の主題の他の実施形態では、システムは、図１および図５に示すよりも少ない、多い、および／または異なるモジュールを含み得る。
【００３７】
これを念頭に置いて、図１に注目すると、図１は、本開示の主題に従って、インフラストラクチャ層を含む、分散記憶システムの最上位アーキテクチャを概略的に示している。本開示の主題の例によれば、分散記憶システム（ＤＳＳ）２００は、次の層：インフラストラクチャ層２０１、統一分散記憶プラットフォーム（ＵＤＳＰ）層２０２、およびＡＰＩ／フレームワーク層２０３、の１つ以上を含むことができる。
【００３８】
本開示の主題のいくつかの例によれば、インフラストラクチャ層２０１は、１つ以上の相互接続されたコンピュータノード２０５（例えば、とりわけ、１つ以上の処理装置などの１つ以上の処理資源、メモリなどの１つ以上のメモリ資源、および１つ以上のネットワークインタフェースを含む、任意のタイプのコンピュータ）、および、ある場合には、２つ以上の相互接続されたコンピュータノード２０５を含み得、これについては、とりわけ、図５を参照して、本明細書でさらに詳細な説明が提供される。インフラストラクチャ層２０１は、以下のストレージ関連資源：（ａ）データ記憶資源（例えば、データ記憶装置２０４、ＲＡＩＤ（独立ディスクの冗長アレイ）２０６、ＤＡＳ（ダイレクトアタッチトストレージ）２０８、ＪＢＯＤ（ｊｕｓｔ  ａ  ｂｕｎｃｈ  ｏｆ  ｄｒｉｖｅｓ：単なる多数のドライブ）２１０、ネットワークストレージアプライアンス２０７（例えば、ＳＡＮ、ＮＡＳなど）、ＳＳＤ  ２１３など）；（ｂ）揮発性および／もしくは不揮発性の、メモリ資源（例えば、ＲＡＭ、ＤＲＡＭなど）などのキャッシュ資源２１２、ならびに／または、ある場合には、キャッシュ資源の追加もしくは代替として使用できる、データ記憶資源（例えば、ＳＳＤ  ２１３）；（ｃ）ネットワーク資源２１４；ならびに（ｄ）ＤＤＳ  ２００にさらなる機能を提供し、かつ／またはその性能を強化する追加の資源（圧縮アクセラレータ、暗号化アクセラレータ２０９、ＳＡＮ資源との通信を可能にするホストバスアダプタ（ＨＢＡ）など）、の１つ以上をさらに含み得る。
【００３９】
ある場合には、資源は、２つ以上の同じタイプの装置、および／または２つ以上の異なるタイプの装置を含み得る。資源のいくつかのさらに詳細な説明が、本明細書で以下に続く。
【００４０】
本開示の主題のいくつかの例によれば、コンピュータノード２０５は、ネットワーク（例えば、汎用ネットワーク）によって相互接続できる。
【００４１】
ある場合には、インフラストラクチャ層２０１の資源の１つ以上が、１つ以上のコンピュータノード２０５に直接接続できる。ある場合には、インフラストラクチャ層２０１の資源の１つ以上は、コンピュータノード２０５内に含まれて、その一部を形成することができる。ある場合には、インフラストラクチャ層２０１の資源の１つ以上は、ネットワーク（例えば、汎用ネットワーク）によって、コンピュータノード２０５の１つ以上に（例えば、ｉＳＣＳＩ  ２２２などの論理結合などにより）接続できる。
【００４２】
任意選択で、ネットワークは、汎用ネットワークにできる。任意選択で、ネットワークは、ＷＡＮを含むことができる。任意選択で、ＷＡＮは、例えば、インターネットなどの、グローバルＷＡＮにできる。任意選択で、ネットワーク資源は、ＩＰネットワークインフラストラクチャを使用して相互接続できる。任意選択で、ネットワークは、ストレージエリアネットワーク（ＳＡＮ）であり得る。任意選択で、ネットワークは、ストレージ仮想化を含むことができる。任意選択で、ネットワークは、ＬＡＮを含むことができる。任意選択で、ネットワークインフラストラクチャは、イーサネット(登録商標)、インフィニバンド、ＦＣ（ファイバーチャンネル）２１７、ＦＣｏＥ（ファイバーチャネルオーバーイーサネット）など、または２つ以上のネットワークインフラストラクチャの任意の組合せを含むことができる。任意選択で、ネットワークは、汎用ネットワークおよび／またはストレージネットワークを含む、当技術分野で既知の任意のタイプのネットワークにできる。任意選択で、ネットワークは、本明細書でさらに説明するように、ネットワーク内の資源の割当ておよび管理のために、目的指向型管理システムの適用に適した任意のネットワークにできる。任意選択で、ネットワークは、（とりわけ、本明細書で開示するネットワークタイプを含む）任意の２つ以上のネットワークタイプの組合せにできる。
【００４３】
本開示の主題のいくつかの例によれば、インフラストラクチャ層２０１の少なくとも１つの資源（とりわけ、コンピュータノード２０５、データ記憶資源、キャッシュ資源、ネットワーク資源、コンピュータノード２０５に接続された追加の資源、または任意の他の資源を含む）は、ネットワークおよび／または１つ以上のコンピュータノード２０５に接続された、目的をもって構築された資源ではない、市販の商品であり得る。かかる資源は、例えば、製造業者、サイズ、計算能力、容量などの資源特性に関わらず、本明細書で詳述するように、相互接続できることに留意されたい。従って、コンピュータノード２０５と通信できる、任意の資源（とりわけ、コンピュータノード２０５を含む）は、その製造業者に関わらず、本明細書でさらに詳述するように、インフラストラクチャ層２０１に接続されて、ＤＤＳ  ２００によって利用できる。ある場合には、任意の数の資源（とりわけ、コンピュータノード２０５を含む）が、ネットワークおよび／または１つ以上のコンピュータノード２０５に接続されて、ＤＳＳ  ２００によって利用でき、従って、ＤＳＳ  ２００の拡張性を可能にする。ある場合には、任意の数のコンピュータノード２０５がネットワークに接続でき、また任意の数の資源が１つ以上のコンピュータノード２０５に接続されて、ＤＳＳ  ２００によって利用でき、従って、ＤＳＳ  ２００の拡張性を可能にする。新しい資源（とりわけ、コンピュータノード２０５を含む）をＤＳＳ  ２００に接続するプロセスに関するより詳細な説明が、とりわけ、図５に関して、本明細書でさらに詳述されることに留意されたい。
【００４４】
ＵＤＳＰ層２０２を参照すると、本開示の主題のいくつかの例によれば、それは、コンピュータノード２０５の１つ以上の上にインストールする（または、別の方法でそれと関連付けるか、もしくはその中に含む）ことができる、１つ以上のＵＤＳＰエージェント２２０を含むことができる。ある場合には、ＵＤＳＰエージェント２２０は、コンピュータノード２０５の各々上にインストールする（または、別の方法でそれと関連付ける）ことができる。ある場合には、ＵＤＳＰエージェント２２０は、（とりわけ、本明細書でさらに詳述するように、プロトコル変換器として動作できる）ゲートウェイ資源２１６の１つ以上の上に、また、ある場合には、ゲートウェイ資源２１６の各々の上に、追加としてインストールする（または、別の方法でそれと関連付ける）ことができる。ある場合には、ＵＤＳＰエージェント２２０は、クライアントサーバー２１８（例えば、クライアントとしてＤＳＳ  ２００に接続されたサーバーおよび／または他の装置）の１つ以上の上に、また、ある場合には、クライアントサーバー２１８の各々の上に、追加としてインストールする（または、別の方法でそれと関連付ける）ことができる。ある場合には、クライアントサーバー２１８は、任意選択である、任意のゲートウェイ資源２１６を必要とすることなく、ＤＳＳ  ２００と直接やり取りできることに留意されたい。ある場合には、そのインストレーション位置またはその関連付けに従い、ＵＤＳＰエージェント２２０に差（例えば、その機能および／またはその能力における差など）があり得る（例えば、コンピュータノード２０５上にインストールされたか、または別の方法でそれと関連付けられた、ＵＤＳＰエージェント２２０、ゲートウェイ資源２１６上にインストールされたか、または別の方法でそれと関連付けられた、ＵＤＳＰエージェント２２０、クライアントサーバー２１８上にインストールされたか、または別の方法でそれと関連付けられた、ＵＤＳＰエージェント２２０、など、の間に差があり得る）ことにさらに留意されたい。
【００４５】
ＵＤＳＰエージェント２２０の詳細な説明が本明細書で、とりわけ、図５に関して、提供されることに留意されたい。それでもやはり、本開示の主題のいくつかの例によれば、ＵＤＳＰエージェント２２０は、ＤＳＳ  ２００の様々な動作（とりわけ、インフラストラクチャ層２０１の資源の自動的な割当ておよび管理、データパス動作の処理などを含む）を制御および管理するように構成できることに留意されたい。ある場合には、ＵＤＳＰエージェント２２０は、新しいコンピュータノード２０５の、ＤＳＳ  ２００のインフラストラクチャ層２０１への接続を管理するように構成できる。ある場合には、ＵＤＳＰエージェント２２０は、それらがインストールされているコンピュータノード２０５に接続された資源を検出して、かかる資源を管理するように構成できる。前述の通り、ＵＤＳＰエージェント２２０のより詳細な説明が、本明細書で、とりわけ、図５に関して、提供される。
【００４６】
ある場合には、ＵＤＳＰ層２０２は、ＤＳＳ  ２００に対する管理システムを含むＵＤＳＰ  ２２５を含み得る。任意選択で、管理システム処理は、インフラストラクチャ層２０１内のコンピュータノード２０５上にインストールされた１つ以上のＵＤＳＰエージェント２２０を通して、またはゲートウェイ資源２１６上、もしくは（例えば、直接および／またはゲートウェイ資源２１６を通じて）ＤＳＳ  ２００へのアクセスを有するクライアントサーバー２１８上にインストールされた１つ以上のＵＤＳＰエージェント２２０を通して、またはそれらの任意の組合せで、実装できる。
【００４７】
管理システムは、ユーザーが、サービス水準仕様（ＳＬＳ）と関連けることができる新しい論理記憶エンティティ（論理ユニット、オブジェクトストア、ファイルシステムインスタンスなど）の作成（ある場合には、各論理記憶エンティティが単一のＳＬＳと関連付けられる）、論理記憶エンティティの更新、論理記憶エンティティのゲートウェイ資源２１６および／またはクライアントサーバー２１８へのアクセス許可の供与、スナップショットの作成、バックアップの作成、リモートサイトへのフェイルオーバー、プライマリサイトへのフェイルバック、ＤＳＳ  ２００の動的挙動の監視、ＳＬＳ順守の監視、ＤＳＳ  ２００の異なる範囲（例えば、ＤＳＳ  ２００全体、あるサイト、例えば、あるＳＬＳ、ある資源向けなどの、あるタイプの使用のレゾリューションで、など）を参照する、様々な（例えば、事前に定義された、および／またはユーザーが定義した）報告書（例えば、性能報告、資源可用性報告、在庫報告、コンピュータノード２０５と他の資源との間の関係を示す関係性報告、傾向報告、および主要業績評価指標を含む様々なパラメータの予測報告など）の生成、ＤＳＳ  ２００によって提供された様々なアラートの管理（例えば、故障したハードウェアのアラートなど）などの、ＤＳＳ  ２００に関する様々な管理タスク（とりわけ、監視および報告のタスクを含む）を実行するのを可能できる。前述の管理タスクは、限定されない例としてのみ提供されることに留意されたい。ある場合には、論理記憶エンティティが、本明細書でさらに詳述されるように、ＤＳＳ  ２００によりＳＬＳに従って自動的に作成できることに留意されたい。論理記憶エンティティの各々が、１つ以上のデータ記憶資源と関連付けられ得ることに留意されたい。
【００４８】
本明細書を通して、ユーザーが参照される場合、これは、システム管理者などの人間のオペレータ、または任意のタイプの補助エンティティを指し得ることに留意されたい。補助エンティティは、例えば、いかなる人間の介入も必要としない補助エンティティを含め、外部管理システムなどの、外部アプリケーションを指し得る。
【００４９】
ある場合には、管理システムは、ユーザーがＤＳＳ  ２００に満足することを要求する様々な要件を指定する、サービス水準仕様（ＳＬＳ）を定義するユーザー定義のストレージ要件をもつ、ＤＳＳ  ２００を、ユーザーが提供するのを可能にできる。ある場合には、ＳＬＳは、論理記憶エンティティと関連付けられ得る。任意選択で、ＳＬＳは、例えば、データが格納され、かつ／または処理される、１つ以上の地理的位置の指定；可用性、保持、復旧パラメータ（例えば、ＲＰＯ−目標復旧時点、ＲＴＯ−目標復旧時間）を定義するローカル保護レベル；情報を保持すべき期間を定義するバックアップ保持ポリシー；様々な災害シナリオ下で、指定された可用性、保持および復旧の目標を達成するために１つ以上のリモートの地理的位置を定義する災害復旧（ＤＲ）に対するリモート保護レベル；ローカルおよび／またはリモート複製ポリシー；ＩＯＰＳ（秒あたりの入力／出力動作）、応答時間、およびスループットなどの測定基準を使用して定義される（任意選択で、コミットされる）性能レベル；暗号化要件；重複排除要件；圧縮要件；記憶方法（物理的容量、シン容量／プロビジョニング）などの情報を含み得る。
【００５０】
ある場合には、管理システムは、様々なサービス水準グループ（ＳＬＧ）の管理（作成、更新および削除を含む）を可能にできる。ＳＬＧは、複数の論理記憶エンティティ間で共有できるテンプレートＳＬＳである。ＳＬＧは、（増強を必要とする）部分的なＳＬＳであり、かつ／または上書きできる設定を含み得る。従って、例えば、ＳＬＧは、その各々がＳＬＳパラメータを追加し、かつ／または上書きできる、様々なＳＬＳによって継承できる、様々な復旧パラメータのみを定義できる。
【００５１】
本開示の主題のいくつかの例によれば、ＵＤＳＰ  ２２５は、ＤＳＳ  ２００内の資源を割り当て、資源を管理するための自動管理システムを含み得る。任意選択で、自動管理システムは、とりわけ、図２および図５に関して、本明細書でさらに詳述されるように、ネットワーク内の資源を、とりわけ、１つ以上のサービス水準仕様（ＳＬＳ）によって定義されるユーザー定義要件、コンピュータノード２０５および／またはそれに接続された資源に関する様々なパラメータのデータ、ＤＳＳ  ２００またはその一部を参照する様々なパラメータのデータ（例えば、最大限許容されるサイトレベルのオーバーコミット、最大限許容される全体的なオーバーコミット、様々なセキュリティパラメータなど）ならびにＤＳＳ  ２００および環境（例えば、クライアントサーバー２１８、ゲートウェイ資源２１６など）の動的挙動を参照する様々なパラメータのデータ、のうちのいずれか１つ、もしくはそれらの任意の組合せに基づき、割り当てて管理するように構成できる、目的指向型管理システム（ＯＢＭＳ）１００である。任意選択で、ＯＢＭＳ  １００処理は、インフラストラクチャ層２０１内のコンピュータノード２０５の１つ以上の上にインストールされた１つ以上のＵＤＳＰエージェント２２０を通して、またはゲートウェイ資源２１６上、もしくは（例えば、直接またはゲートウェイ資源２１６を通じて）ＤＳＳ  ２００へのアクセスを有するクライアントサーバー２１８上にインストールされた１つ以上のＵＤＳＰエージェント２２０を通して、またはそれらの任意の組合せで、実装できる。
【００５２】
本開示の主題のいくつかの例によれば、ＡＰＩ／フレームワーク層２０３は、ＤＳＳ  ２００へのソフトウェア拡張（プラグイン）の追加を容易にするプラグイン層を含む。かかるプラグインは、例えば、プロセスのデータへの適用、新しい機能および特徴のＤＳＳ  ２００への導入、ＤＳＳ  ２００の特定のアプリケーションとのインタフェース接続およびアプリケーション固有タスク（例えば、ストレージ関連タスクなど）の実装、様々な資源固有ドライバの実装、（例えば、プラグイン機能および／または目標に関する）新しいＳＬＳパラメータおよび／またはパラメータグループ（複数可）の導入、管理機能の導入など、のために、利用できる。ある場合には、プラグイン層は、様々なハードウェア構成要素（例えば、暗号化カードなど）と関連付けられたドライバも含み得る。
【００５３】
ある場合には、プラグインは、１つ以上のＵＤＳＰエージェント２２０上に配備できる。ある場合には、プラグインは、例えば、プラグイン仕様に従って（例えば、ソフトウェア暗号化プラグインが任意のＵＤＳＰエージェント２２０上にインストールできる）、その上にＵＤＳＰエージェント２２０がインストールされるコンピュータノード２０５および／もしくはゲートウェイ資源２１６および／もしくはクライアントサーバー２１８に接続された様々な資源に従って（例えば、ハードウェアアクセラレータプラグインが、かかるハードウェアアクセラレータと関連付けられたコンピュータノード２０５と関連付けられた各ＵＤＳＰエージェント２２０上に自動的に配備できる）、自動管理システム（例えば、ＯＢＭＳ  １００）の判断に従って、またはシステム管理者の選択に従ってなど、１つ以上のＵＤＳＰエージェント２２０上に配備できる。ある場合には、プラグインは、例えば、自動管理システム（例えば、ＯＢＭＳ  １００）により、および／またはコンピュータノード２０５により、自動的に配備できる。任意選択で、ソフトウェア拡張は、例えば、ＤＤＳ  ２００上に格納されたデータの、例えば、重複排除を可能にするデータ重複排除プラグイン、ＤＳＳ  ２００上に格納されたデータの、例えば、暗号化／復号を可能にするデータ暗号化プラグイン、ＤＳＳ  ２００上に格納されたデータの、例えば、圧縮／解凍を可能にするデータ圧縮プラグインなどの、データ処理プラグイン２２６を含むことができる。任意選択で、ソフトウェア拡張は、例えば、ＤＤＳ  ２００上に格納されたデータの、例えば、インデックス付けを可能にするコンテンツインデックス付けプラグイン、ＤＤＳ  ２００上に格納されたデータのスナップショットの管理を可能にするスナップショット管理プラグイン、ＤＤＳ  ２００上に格納されたデータの、例えば、階層化を可能にする階層化管理プラグイン、例えば、災害復旧に関連したプロセス、ポリシーおよび手続きの管理を可能にする災害復旧プラグイン、ＤＤＳ  ２００上に格納されたデータの、例えば、連続した、またはリアルタイムのバックアップの管理を可能にする連続データ保護プラグインなどの、ストレージ機能プラグイン２２８を含むことができる。任意選択で、ソフトウェア拡張は、例えば、クエリー処理の加速を可能にするデータベースプラグイン、例えば、様々なＤＳＳ  ２００管理タスクの実行ならびにユーザー、クライアントサーバー２１８、およびＤＳＳ  ２００に接続された他のエンティティとの他のやり取りを可能にする管理プラグイン２３３、ならびに他の適切なアプリケーションプラグインなどの、アプリケーションプラグイン２３０を含むことができる。あるプラグインは、上で定義した様々なプラグインの２つ以上の機能を実装できることに留意されたい。
【００５４】
本明細書に示すように、ある場合には、プラグインは、（例えば、プラグイン機能および／または目標に関する）新しいＳＬＳパラメータおよび／またはパラメータグループ（複数可）を導入できる。かかる場合には、プラグイン機能に従って、それぞれのＳＬＳパラメータおよび／またはパラメータグループ（複数可）がＤＳＳ  ２００に導入できる。かかる導入されたＳＬＳパラメータは、例えば、ユーザーによって、および／または自動管理システム（例えば、ＯＢＭＳ  １００）によって自動的に、など、プラグイン関連要件を設定するために使用できる。
【００５５】
ある場合には、ソフトウェア拡張は、コンピュータノード２０５の１つに格納できるか、または２つ以上のコンピュータノード２０５上に分散できる。ある場合には、ソフトウェア拡張は、１つ以上のコンピュータノード２０５に接続された１つ以上のデータ記憶資源上に格納できる。ある場合には、ソフトウェア拡張は、ＵＤＳＰエージェント２２０によって共有できる仮想ソフトウェア拡張ライブラリ内に格納できる。
【００５６】
ある場合には、ソフトウェア拡張は、自動的に、および／または（例えば、システム管理者によって）手動で、管理できる。かかる管理は、時々、管理プラグイン２３３を利用することにより実行できる。かかる場合、管理プラグイン２３３は、ソフトウェア拡張のＤＳＳ  ２００への追加／ＤＳＳ  ２００からの除去、様々なソフトウェア拡張の１つ以上のＵＤＳＰエージェント２２０への追加／１つ以上のＵＤＳＰエージェント２２０からの除去、などを可能にできる。
【００５７】
ＤＳＳ  ２００の最上位アーキテクチャの記述に続いて、目的指向型管理システム（ＯＢＭＳ）１００によって実行できるＤＳＳ  ２００構成プロセスの詳細な記述がここで提供される。この目的のために、ここで図２に注目すると、本開示の主題に従って、分散記憶システム２００を構成するための簡略化した例示的なシステムが示されている。この目的のため、ＯＢＭＳ  １００は、とりわけ、インフラストラクチャ層２０１内の資源を自動的に割り当てて管理するように構成できる。ＯＢＭＳ  １００は、入力モジュール１０２、１つ以上のプロセッサ１０４、および出力モジュール１０６を含み得る。
【００５８】
ある場合には、入力モジュール１０２が、入力データを受信するように構成できる。かかる入力データは、とりわけ、１つ以上のサービス水準仕様（ＳＬＳ）によって定義されるユーザー定義のストレージ要件、１つ以上の論理記憶エンティティの定義、コンピュータノード２０５および／またはそれに接続された資源（ストレージ関連資源データとも呼ばれる、ストレージ関連資源を含む）に関する様々なパラメータのデータ、ＤＳＳ  ２００またはその一部を参照する様々なパラメータのデータ（例えば、最大限許容されるサイトレベルのオーバーコミット、最大限許容される全体的なオーバーコミット、様々なセキュリティパラメータなど）、ＤＳＳ  ２００および環境（例えば、クライアントサーバー２１８、ゲートウェイ資源２１６など）の動的挙動（動的挙動パラメータデータ）に関する様々なパラメータのデータなど、のうちの任意の１つ、またはそれらの任意の組合せを含み得る。
【００５９】
ある場合には、ユーザー定義の要件は、一人以上のユーザーが、ＤＳＳ  ２００および／または１つ以上の論理記憶エンティティが満足するのを要求する、様々な要件を指定する１つ以上のサービス水準仕様（ＳＬＳ）を定義できる。
【００６０】
ある場合には、ＤＳＳ  ２００および環境の動的挙動に関する様々なパラメータのデータ（動的挙動パラメータデータ）は、ＤＳＳ  ２００構成要素（コンピュータノード２０５およびそれに接続された資源を含む）の１つ以上の現在の状態を示す様々なパラメータデータを含み得る。かかるデータは、１つ以上コンピュータノード２０５、１つ以上のゲートウェイ資源２１６、１つ以上クライアントサーバー２１８などに関するデータを含む、資源の１つ以上に関する、存在および／もしくは負荷および／もしくは可用性および／もしくは障害および／もしくは機能および／もしくは応答時間（複数可）および／もしくは接続性および／もしくは費用（複数可）（例えば、ネットワークリンク、異なるタイプのデータ記憶資源の費用）のデータならびに／または任意の他のデータを含み得る。ある場合には、かかるデータは、とりわけ、様々な統計データを含み得る。
【００６１】
ある場合には、コンピュータノード２０５および／またはそれに接続された資源（ストレージ関連資源データとも呼ばれる、ストレージ関連資源を含む）に関する様々なパラメータのデータは、ストレージ関連資源を含む、ハードウェア資源を含む、ＤＳＳ  ２００の資源を示す様々なパラメータのデータを含み得、例えば、以下などである：
ａ．データ記憶資源に関するパラメータ（例えば、そのハードウェアドライブの各々に対して）
１．ハードドライブカテゴリパラメータ（例えば、ハードドライブサイズ、インタフェース（例えば、ＳＡＳ、ＳＡＴＡ、ＦＣ、Ｕｌｔｒａ−ＳＣＳＩなど）、キャッシュサイズ、特殊機能（例えば、オンドライブ暗号化など）など）；
２．ハードドライブ性能パラメータ（例えば、応答時間、平均待ち時間、ランダムシーク時間、データ転送速度など）；
３．ハードドライブ電力消費；
４．ハードドライブ信頼性パラメータ（例えば、平均故障間隔（ＭＴＢＦ）、年間平均故障率（ＡＦＲ）など）。
ｂ．コンピュータノード２０５パラメータ：
１．ＣＰＵおよびＣＰＵ当たりのコアの数。
２．周波数、Ｌ２およびＬ３キャッシュサイズなどの、各ＣＰＵおよび／またはコアの性能パラメータ。
３．アーキテクチャ（例えば、ＣＰＵおよび／またはコアが６４ビットコンピューティングをサポートするか、それはリトルエンディアンかビッグエンディアンか）
４．ある命令セットに対するサポート（例えば、ＡＥＳ−ＮＩ、ＡＥＳ暗号化を加速するための新しい命令セット）。
５．利用可能なハードドライブスロットの数；
６．利用可能な記憶インタフェース（ＳＡＴＡ、ＳＡＳなど）；
７．メモリの最大容量；
８．サポートされるメモリ構成；
ｃ．キャッシュ資源パラメータ：
１．キャッシュ資源のタイプ（例えば、ＤＲＡＭ、ＳＳＤ）、サイズおよび性能。
２．キャッシュされた記憶空間がローカルかリモートか。
３．ＮＵＭＡパラメータ。
ｄ．ゲートウェイ資源パラメータ：
１．ＣＰＵおよびＣＰＵ当たりのコアの数。
２．周波数、Ｌ２およびＬ３キャッシュサイズなどの、各ＣＰＵおよび／またはコアの性能パラメータ。
３．アーキテクチャ（例えば、ＣＰＵおよび／またはコアが６４ビットコンピューティングをサポートするか、それはリトルエンディアンかビッグエンディアンか）
４．ある命令セットに対するサポート（例えば、ＡＥＳ−ＮＩ、ＡＥＳ暗号化を加速するための新しい命令セット）。
５．筐体内で利用可能なハードドライブスロットの数；
６．利用可能な記憶インタフェース（ＳＡＴＡ、ＳＡＳなど）；
７．メモリの最大容量；
８．サポートされるメモリ構成；
９．ゲートウェイに関するネットワークパラメータ（ポートの数、各ポートの速度およびタイプなど）
ｅ．ネットワーク資源パラメータ：
１．スイッチングおよびルーティング機能；
２．ネットワークタイプ；
３．セキュリティパラメータ。
【００６２】
これらは例に過ぎず、追加および／または代替の様々なパラメータが使用できることに留意されたい。
【００６３】
ある場合には、ＤＳＳ  ２００および環境の動的挙動に関するデータ（動的挙動パラメータデータ）は、ハードウェア資源を含む、ＤＳＳ  ２００の資源を示す様々なパラメータを含み得、例えば、以下のとおりである：
ａ． データ記憶資源に関するパラメータ（例えば、そのハードドライブの各々に対して）：
１．ハードドライブ空き容量。
２．ハードドライブのＳ．Ｍ．Ａ．Ｒ．Ｔ．パラメータ。
３．ハードドライブの電力状態（電源オフ、スピンアップフェーズ、作動可能など）
４．ハードドライブ上の最近および現在の負荷
５．既存の割当ておよび予約。
ｂ．コンピュータノード２０５パラメータ：
１．各コアに対する最近および現在の負荷統計。
２．既存の割当ておよび予約。
３．メモリの現在の容量。
ｃ．キャッシュ資源パラメータ：
１．利用可能なサイズ。
２．キャッシュの占有レベル。
３．最近および現在のスワッピング／ページフォールト統計。
４．既存の割当ておよび予約。
ｄ．ゲートウェイ資源パラメータ：
１．最近および現在のネットワーク接続統計。
２．最近および現在のノード負荷統計。
３．最近および現在の待ち時間統計。
４．（ゲートウェイによってＤＳＳ内にルーティングされるコマンドに対する）最近および現在のルーティング費用統計。
５．既存の割当ておよび予約。
ｅ．ネットワーク資源パラメータ：
１．ネットワークセグメントの最近および現在の負荷。
２．ネットワークセグメントの最近および現在の信頼性および品質パラメータ。
３．既存の割当ておよび予約。
【００６４】
これらは例に過ぎず、追加および／または代替の様々なパラメータが使用できることに留意されたい。
【００６５】
ある場合には、入力モジュール１０２は、入力データを１つ以上のプロセッサ１０４に転送するように構成できる。図のように、ＯＢＭＳ  １００処理は、（例えば、とりわけ、図５を参照して本明細書でさらに詳述されるように、目的指向型構成モジュール３８０を利用しながら）１つ以上のＵＤＳＰエージェント２２０を通して、例えば、インフラストラクチャ層２０１内のコンピュータノード２０５の１つ以上にインストールされたＵＤＳＰエージェント２２０を通して、または１つ以上のゲートウェイ資源２１６上にインストールされたＵＤＳＰエージェント２２０を通して、または（例えば、直接またはゲートウェイ資源２１６を通じて）ＤＳＳ  ２００へのアクセスを有する１つ以上のクライアントサーバー２１８上にインストールされたＵＤＳＰエージェント２２０を通して、またはそれらの任意の組合せで、実装できる。かかる場合、１つ以上のプロセッサ１０４は、かかるＵＤＳＰエージェント２２０と関連付けられた１つ以上の処理資源（例えば、処理装置）であり得る（例えば、処理が、コンピュータノード２０５上にインストールされたＵＤＳＰエージェント２２０を通して実装される場合、プロセッサはそのコンピュータノード２０５の処理装置であり得る、など）。例えば、並列処理および／または分散処理の場合には、２つ以上処理資源（例えば、処理装置）が使用できることに留意されたい。
【００６６】
１つ以上のプロセッサ１０４が、入力モジュール１０２から入力を受信して、ＤＳＳ  ２００の一人以上のユーザーによって提供されるユーザー定義のストレージ要件（例えば、ＳＬＳ）の全てを満足する構成要件を、とりわけ、それらが影響を及ぼすエンティティ（かかるＳＬＳと関連付けられた論理記憶エンティティなど）に関して、判断するために、その入力データに基づき最適化プロセスを実行するように構成できる。最適化プロセスおよび判断された構成要件のより詳細な説明が、とりわけ、図３に関連して本明細書で提供される。
【００６７】
構成要件が、出力モジュール１０６に転送され得、出力モジュール１０６は、ある場合には、現在のＤＳＳ  ２００資源が判断された構成要件を満足するのに十分であるかを判断できる。それに応じて、出力モジュール１０６は、ソリューション駆動型動作を実行するように構成され得、ソリューション駆動型動作は、構成要件がシステムによって満足できる場合には、資源の割当て、予約、コミットもしくはオーバーコミット（例えば、インフラストラクチャ層２０１内で利用可能な実際の資源よりも多い資源を仮想的に割り当てること）、または資源の追加および／もしくはプラグインの追加および／もしくはシステムが構成要件を満足するのを可能にするための任意の他の推奨を含み得る、ユーザーによって実行されるべき改善のための推奨を発行することを含む。かかる改善のための推奨は、例えば、１つ以上の資源を追加すること、１つ以上のプラグインを追加もしくはアップグレードすること、インフラストラクチャを追加の、および／もしくは（ローカルおよび／もしくはリモートの）異なる位置にわたって広げることなど、の推奨を含み得る。
【００６８】
ある場合には、構成プロセス、またはその一部は、ＤＳＳ  ２００および／もしくは１つ以上の論理記憶エンティティを最初に配備する際に、ならびに／またはＤＳＳ  ２００および／もしくは１つ以上の論理記憶エンティティに適用された１つ以上の変更（例えば、事前定義された変更）（例えば、コンピュータノード２０５、キャッシュ資源、データ記憶資源、ネットワーク資源、プラグインまたはＤＳＳ  ２００に対する任意の他の資源などの資源の追加／除去；１つ以上のユーザー定義のストレージ要件における変更；など）に続いて、ならびに／またはＤＳＳ  ２００の動的挙動（とりわけ、図５および図９に関して、以下でさらに詳述される）に従って、ならびに／または１つ以上の新しいプラグインの導入に続いて、ならびに／または０以上の既存のプラグインの更新に続いてなど、開始できることに留意されたい。追加または代替として、構成プロセス、またはその一部は、半連続的な方法で（例えば、所定の時間間隔で、など）開始できる。追加または代替として、構成プロセス、またはその一部は、連続して実行できる。
【００６９】
図２を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または２、３のブロックに分解でき、かつ／または他のブロックが追加され得ることにさらに留意されたい。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
【００７０】
ここで図３に注目すると、本開示の主題に従い、目的指向型ストレージ管理システムによって実行される最適化プロセスの簡略化した例示的なフロー図が概略的に示されている。ある場合には、１つ以上のプロセッサ１０４が、入力データを（例えば、入力モジュール１０２から）受信し、ある場合には、受信した入力データを、最適化エンジンによる処理に適したフォーマットに（例えば、最適化問題表現に）変換するように構成され得る（ブロック１１２）。
【００７１】
１つ以上のプロセッサ１０４と関連付けられた最適化エンジンは、（とりわけ、図２に関して、本明細書でさらに詳述されるように）入力データによって定義されたような要件を満足する必要な構成に達するために、元の、および／または変換された入力データに基づいて、最適化プロセスを実行するように構成され得る（ブロック１１４）。ある場合には、最適化プロセスは、それが見つけた第１の有効なソリューションを返すように指示され得るが、他方、他の場合には、最適化プロセスは、計算された有効なソリューションのセットから最適なソリューションを検索するように指示され得ることに留意されたい。任意選択で、最適化プロセスで使用される最適化技術は、線形計画法、焼き鈍し法、遺伝的アルゴリズム、または当技術分野で既知の任意の他の適切な最適化技術のいずれか１つ、またはその任意の組合せを含み得る。任意選択で、最適化技術は、発見的問題解決法および／または近似値を利用できる。任意選択で、最適化判断は、部分的な、および／または最新ではない情報に基づいて、行うことができる。
【００７２】
ある場合には、最適化エンジンの出力は、１つ以上のプロセッサ１０４により、最適化ソリューション表現から構成要件表現に変換できる（ブロック１１６）。
【００７３】
ある場合には、構成要件は、１つ以上のプロセッサ１０４により、以下のいずれか１つ、またはその任意の組合せとして、出力される：位置要件（例えば、少なくとも１つの追加のサイトの可用性、追加のサイト（複数可）内のある容量の記憶空間の可用性、サイト間の最大限の待ち時間、例えば、災害復旧目的でのサイト間の最小限の地理的距離など）、キャッシュ資源要件（例えば、必要なキャッシュサイズ、必要なキャッシュタイプ、必要なキャッシュ位置、必要なキャッシュ性能パラメータなど）、ゲートウェイ資源要件（例えば、必要なファイバーチャネル帯域幅、必要な処理性能パラメータなど）、ネットワーク資源要件（例えば、必要なネットワーク帯域幅、必要なネットワークタイプなど）、コンピューティング資源要件（例えば、コンピュータノードの処理性能パラメータ、コンピュータノードのＣＰＵコア数など）、データ記憶資源要件（例えば、必要な記憶容量、必要な記憶装置タイプなど）、追加の資源要件（例えば、必要な圧縮性能、必要な暗号化性能など）、プラグイン要件（例えば、必要なデータベースプラグインなど）、環境要件（例えば、必要な物理的セキュリティレベルなど）など（ブロック１１７）。
【００７４】
図３を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または２、３のブロックに分解でき、かつ／または他のブロックが追加され得ることに留意されたい。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
【００７５】
図４を参照すると、本開示の主題に従い、目的指向型管理システムによって実行される構成プロセスの例示的な操作アルゴリズムの簡略化したフロー図を概略図が示されている。ある場合には、前述のように、入力モジュール１０２が入力データを受信し、そのデータを１つ以上のプロセッサ１０４に転送できる（ブロック１１０）。さらに前述されているように、１つ以上のプロセッサ１０４は、ある場合には、入力データを、最適化エンジンによる処理に適したフォーマットに（例えば、最適化問題表現に）変換できる（ブロック１１２）。
【００７６】
１つ以上のプロセッサ１０４と関連付けられた最適化エンジンは、（とりわけ、図２に関して、本明細書でさらに詳述されるように）入力データによって定義されたような要件を満足する必要な構成に達するために、元の、および／または変換された入力データに基づいて、最適化プロセスを実行するように構成できる（ブロック１１４）。ある場合には、最適化エンジンの出力は、１つ以上のプロセッサ１０４により、最適化ソリューション表現から構成要件表現に変換できる（ブロック１１６）。
【００７７】
ある場合には、出力モジュールは、ＤＤＳ  ２００が必要な構成を満足できるかを判断するために、必要な構成を、ＤＤＳ  ２００資源（例えば、コンピュータノード２０５、ストレージ関連資源など）の実際のデータおよび／または環境と比較できる（ブロック１１８）。ある場合には、実際のＤＳＳ  ２００資源は、現在利用可能なＤＳＳ  ２００資源の部分を参照し得ることに留意されたい。実際のＤＳＳ  ２００資源および／または環境が必要な構成を満足できる場合、ＯＢＭＳ  １００は、その必要な構成に従って資源を予約し、かつ／または割り当てるように構成できる（ブロック１２６）。ある場合には、ＯＢＭＳ  １００は、ＤＳＳ  ２００構成を設定し、かつ／または任意の誘起された配備動作を実行するように構成できる（ブロック１２８）。ある場合には、設定および／または配備動作は、とりわけ、ＳＬＳと関連付けられた新しい論理記憶エンティティ（論理ユニット、オブジェクトストア、ファイルシステムインスタンスなど）を自動的に作成することを含み得る。ある場合には、各論理記憶エンティティは、単一のＳＬＳと関連付けられる。ある場合には、配備動作は、１つ以上のプラグインの１つ以上のＵＤＳＰエージェント２２０上への配備（例えば、インストレーション）を含み得る。
【００７８】
ストレージ構成の設定および／または任意の誘起された配備動作の実行の一部として、関連した設定および／または配備動作要求がＵＤＳＰエージェント２０５に送信でき；ある場合には、かかる要求が、要求された設定および／または配備動作に適したストレージ関連資源と関連付けられたＵＤＳＰエージェント２０５に送信される。ある場合には、かかる要求を受信するＵＤＳＰエージェント２０５は、とりわけ、図５に関連して以下でさらに詳述されるように、ＤＳＳ  ２００によって使用されるように要求された設定および／または配備に関して、それと関連付けられたデータリポジトリを更新するように構成できる。ある場合には、配備に続いて、ＤＳＳ  ２００を配備するプロセスが無事に終了する（ブロック１３０）。
【００７９】
実際のＤＳＳ  ２００資源および／または環境が必要な構成を満足できない場合、ＯＢＭＳ  １００は、メッセージをユーザー（例えば、システム管理者）に送信して、失敗通知および／または必要なインフラストラクチャ構成の実装を可能にするためにユーザーによって取られるべき是正動作に関する推奨をユーザーに提供するように構成できる（ブロック１２０）。任意選択で、動作は、構成のうまくいく計算を可能にするインフラストラクチャ資源を追加することを含み得る。任意選択で、動作は、適切なプラグインを追加することを含み得る。任意選択で、動作は、インフラストラクチャ資源を追加および／または代替の位置にわたって広げることを含み得る。本明細書で開示する推奨は例に過ぎず、他の推奨が追加または代替としてユーザーに発行できることに留意されたい。ある場合には、ＯＢＭＳ  １００は、必要なインフラストラクチャ構成が、任意選択で、ある間隔／遅延の後に、再評価されるべきか、否かに関して、判断を行うように構成できる（ブロック１２２）。ｙｅｓの場合、ＯＢＭＳ  １００は、ブロック１１２に戻るように構成できる。任意選択で、連続モードに設定された場合、出力モジュール１０６は、任意選択で、ある間隔／遅延の後に、自動的に１１２に進む。任意選択で、再試行するか否かの判断は、再試行命令のユーザー入力に基づく。ｎｏの場合、ＤＳＳ  ２００を配備するプロセスは失敗した。ある場合には、ＯＢＭＳ  １００は、失敗を報告するように構成できる。
【００８０】
図４を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または２、３のブロックに分解でき、かつ／または他のブロックが追加され得ることに留意されたい。さらに、ある場合には、ブロックは、本明細書で説明される順序とは異なる順序で実行できる。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
【００８１】
図５〜図１０の説明を始める前に、図５〜図８および図１０に関して開示される主題は、例示のみ目的を目的として、分散記憶システムを参照して説明されることに留意されたい。図５〜図８および図１０に関して開示される主題は、決して、分散記憶システムに制限されず、変更すべきところは変更して、当技術分野で既知の記憶システムを含む、任意のタイプの記憶システム上で実装できることが強調される。
【００８２】
ここで図５に注目すると、本開示の主題のある例に従い、分散記憶システムに接続された例示的なコンピュータノードを概略的に示すブロック図が示されている。
【００８３】
本開示の主題のいくつかの例によれば、コンピュータノード２０５は、１つ以上の処理資源３１０を含み得る。１つ以上の処理資源３１０は、処理装置、マイクロプロセッサ、マイクロコントローラ、または、複数の、および／もしくは並列および／もしくは分散処理装置を含む、任意の他のコンピューティング装置もしくはモジュールであり得、それらは、関連したコンピュータノード２０５資源および／またはコンピュータノード２０５に接続されたストレージ関連資源を制御するため、ならびにコンピュータノード２０５資源および／またはコンピュータノード２０５に接続されたストレージ関連資源に関連した動作を可能にするために、独立して、または協調してデータを処理するように適合される。
【００８４】
コンピュータノード２０５は、コンピュータノード２０５が、とりわけ、他のコンピュータノードおよび／またはＤＳＳ  ２００に接続された他の資源と通信するのを可能にするために、１つ以上のネットワークインタフェース３２０（例えば、ネットワークインタフェースカード、または任意の他の適切な装置）をさらに含むことができる。
【００８５】
本開示の主題のいくつかの例によれば、コンピュータノード２０５は、とりわけ、ＳＬＳを定義する様々なユーザー定義のストレージ要件のデータ、ならびに／または各ＳＬＳと関連付けられた論理記憶エンティティのデータ、ならびに／またはコンピュータノード２０５および／もしくはそれに接続されたストレージ関連資源に関する様々なパラメータのデータ、ならびに／またはＤＳＳ  ２００もしくはその一部を参照する様々なパラメータに関するデータ、ならびに／またはＤＳＳ  ２００および環境（例えば、クライアントサーバー２１８、ゲートウェイ資源２１６など）の動的挙動に関するデータ、ならびに／またはＤＳＳ  ２００の設定および／もしくは配備に関するデータ、ならびに／または任意の他のデータを含む、データを格納するように構成された、ＵＤＳＰデータリポジトリ３３０と関連付けられ得る。ある場合には、ＵＤＳＰデータリポジトリ３３０は、格納されたデータの取得、更新および削除を可能にするようにさらに構成できる。ある場合には、ＵＤＳＰデータリポジトリ３３０は、コンピュータノード２０５上にローカルに、コンピュータノード２０５に接続されたストレージ関連資源（例えば、データ記憶資源、キャッシュ資源、または任意の他の適切な資源）上、クライアントサーバー２１８上、ゲートウェイ資源２１６上、または任意の他の適切な位置に配置できることに留意されたい。ある場合には、ＵＤＳＰデータリポジトリ３３０は、２つ以上の位置の間で分散できる。ある場合には、ＵＤＳＰデータリポジトリ３３０は、追加または代替として、ＤＳＳ  ２００内の１つ以上の論理記憶エンティティ上に格納できる。ある場合には、追加または代替として、ＵＤＳＰデータリポジトリ３３０は、複数のコンピュータノード間で共有できる。
【００８６】
本開示の主題のいくつかの例によれば、コンピュータノード２０５は、例えば、１つ以上の処理資源３１０によって実行できるＵＤＳＰエージェント２２０をさらに含み得る。前述のように、ＵＤＳＰエージェント２２０は、とりわけ、コンピュータノード２０５および／またはＤＳＳ  ２００の様々な動作を制御および管理するように構成できる。ＵＤＳＰエージェント２２０は、次のモジュール：タスク管理モジュール３３５、プラグイン管理モジュール３４０、ＳＬＳ監視モジュール３４５および目的指向型構成モジュール３９０、の１つ以上を含むことができる。
【００８７】
本開示の主題のいくつかの例によれば、タスク管理モジュール３３５は、とりわけ、図８に関して、さらに詳述するように、データパス動作（例えば、読取り／書込み動作）などの、受信したタスクを管理するように構成できる。
【００８８】
本開示の主題のいくつかの例によれば、プラグイン管理モジュール３４０は、とりわけ、図６〜図７に関して、本明細書でさらに詳述するように、新しいプラグインのＤＳＳ  ２００への導入およびかかるプラグインの配備を可能にするように構成できる。ある場合には、プラグイン管理モジュール３４０は、とりわけ、図１０に関して、本明細書でさらに詳述するように、プラグインを有効にするようにさらに構成できる。
【００８９】
本開示の主題のいくつかの例によれば、目的指向型構成モジュール３９０は、とりわけ、図９に関して詳述するように、ＤＳＳ  ２００を構成および／または再構成するように構成できる。
【００９０】
１つ以上の処理資源３１０は、ＵＤＳＰエージェント２２０およびその中に含まれるモジュールのいずれかを実行するように構成できることに留意されたい。
【００９１】
本開示の主題のいくつかの例によれば、ＵＤＳＰエージェント２２０モジュールの一部または全部が結合されて、単一のモジュールとして提供できるか、または例として、それらのうちの少なくとも１つが、２つ以上のモジュールの形で実現できることに留意されたい。ある場合には、ＵＤＳＰエージェント２２０は、追加または代替として、１つ以上のゲートウェイ資源２１６および／またはクライアントサーバー２１８上などにインストールできることにさらに留意されたい。ある場合には、ＵＤＳＰエージェント２２０の一部または修正されたバージョンが、１つ以上のゲートウェイ資源２１６および／またはクライアントサーバー２１８などにインストールでき、かつ／またはそれによって使用できる。
【００９２】
図６に注目すると、本開示の主題に従って、新しいデータパス関連プラグインを分散記憶システムのプラグイン層に導入するために実行される一連の動作の一例を示す流れ図が示されている。
【００９３】
本開示の主題のいくつかの例によれば、ＵＤＳＰエージェント２２０が（例えば、プラグイン管理モジュール３４０を利用して）、新しいデータパス関連プラグイン導入プロセス４００を実行するように構成できる。この目的のため、ＵＤＳＰエージェント２２０は、ＤＳＳ  ２００に導入される新しいデータパス関連プラグインを受信するように構成できる（ブロック４１０）。ある場合には、かかる新しいデータパス関連プラグインは、任意のエンティティによって開発された任意のソフトウェア拡張であり得ることに留意されたい。ある場合には、かかる新しいデータパス関連プラグインが、とりわけ、ＤＳＳ  ２００に対するソフトウェア拡張を開発するために特別に設計された専用のアプリケーションプログラミングインタフェース（ＡＰＩ）を使用して開発できることにさらに留意されたい。
【００９４】
データパスは、論理記憶エンティティと関連付けられたデータおよび／またはメタデータに関連した動作を実行する場合に行われる１つ以上の動作の集合であることに留意されたい。１つ以上の動作の集合（例えば、圧縮、重複排除、暗号化など）は、データパス仕様によって定義できる。
【００９５】
ある場合には、ＵＤＳＰエージェント２２０は、ＤＳＳ  ２００によって使用できる１つ以上のプラグインを含むプラグインプールに、新しいデータパス関連プラグインを導入するようにさらに構成できる（ブロック４２０）。
【００９６】
任意選択で、ある場合には、新しいデータパス関連プラグインをプラグインプールに導入する前に、ＵＤＳＰエージェント２２０は、そのプラグインがある要件を満足すること（例えば、それが、認可されたエンティティによって開発されたこと、その目的が認可されること、プラグインの独自の要件（例えば、ＵＤＳＰエージェント２２０上でのある資源の存在）が、それをそれぞれの論理記憶エンティティに対して配備した後に満足されること、など）を検証するように構成できることに留意されたい。
【００９７】
図６を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または２、３のブロックに分解でき、かつ／または他のブロックが追加され得ることに留意されたい。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
【００９８】
図７は、本開示の主題に従って、検証されていないデータパス関連プラグインを分散記憶システム上に配備するために実行される一連の動作の一例を示す流れ図である。
【００９９】
本開示の主題のいくつかの例によれば、ＵＤＳＰエージェント２２０は（例えば、プラグイン管理モジュール３４０を利用して）、論理記憶エンティティに対する検証されていないデータパス関連プラグインの配備プロセス５００を実行するように構成できる。この目的のために、ＵＤＳＰエージェント２２０は、１つ以上の論理記憶エンティティに対して配備される検証されていないデータパス関連プラグインの指示を受信するように構成できる（ブロック５１０）。
【０１００】
ある場合には、指示は、プラグインプール内の利用可能なプラグインのリストからの所望の検証されていないデータパス関連プラグインのユーザー（例えば、システム管理者など）選択を通して受信できることに留意されたい。ある場合には、ユーザー（例えば、システム管理者など）が選択できるリストは、（例えば、論理記憶エンティティと関連付けられたＳＬＳに従って、ＤＳＳ  ２００内の利用可能な資源に従って、選択するユーザーのある分類に従って、など）各論理記憶エンティティに対して配備できるプラグインのみを含むようにフィルタ処理できる。
【０１０１】
ＵＤＳＰエージェント２２０は、任意選択で、それが配備される各論理記憶エンティティに対して、それに対して指示されたプラグインの配備が、それぞれの論理記憶エンティティと関連付けられたそれぞれのＳＬＳの違反を引き起こす（または、例えば、事前に定義された閾値などに従って、かかる違反に近い）かどうかをチェックするようにさらに構成できる（ブロック５２０）。
【０１０２】
ある場合には、ＵＤＳＰエージェント２２０は、（ある論理記憶装置に対して）プラグインを配備することの、その１つ以上のＳＬＳ関連パラメータへの予測される影響に関するデータを利用するように構成できることに留意されたい。ある場合には、かかるデータは、それぞれのプラグインの以前の配備から導出された知識に基づき、様々な既知の統計的方法および技術（例えば、統計的仮定など）を使用して計算できる。
【０１０３】
論理記憶エンティティのいずれかに対して指示されたプラグインの配備が、それぞれの論理記憶エンティティと関連付けられたそれぞれのＳＬＳの違反を引き起こす（または、例えば、事前に定義された閾値などに従って、かかる違反に近い）場合、ＵＤＳＰエージェント２２０は、それぞれの論理記憶装置が関連付けられるユーザー（例えば、システム管理者など）に適切な通知を提供するように構成できる（ブロック５３０）。
【０１０４】
任意選択で、ＵＤＳＰエージェント２２０は、追加または代替として、ＤＳＳ  ２００の再構成が、それぞれの論理記憶エンティティと関連付けられたそれぞれのＳＬＳに違反する（または、例えば、事前に定義された閾値などに従って、かかる違反をしそうになる）ことなく、プラグインの配備を可能にできるように構成できる。この目的のため、ＵＤＳＰエージェント２２０は、とりわけ、図９に関連して、本明細書でさらに詳述される、再構成プロセス７００を、変更すべきところは変更して（例えば、現在の構成を利用する代わりに、プラグインの配備から生じた構成を利用できる）、実行するように構成できる。
【０１０５】
論理記憶エンティティのいずれかに対して指示されたプラグインの配備が、それぞれの論理記憶エンティティと関連付けられたそれぞれのＳＬＳの違反（または、例えば、事前に定義した閾値などに従って、かかる違反に近い）とならない場合、ＵＤＳＰエージェント２２０は、それぞれの論理記憶エンティティに対して指示されたプラグインを配備して（例えば、指示されたプラグインを、それぞれの論理記憶エンティティと関連付けられた少なくとも１つのＵＤＳＰエージェント２２０を有する少なくとも１つのコンピュータノード２０５上に配備して）、データパス関連プラグインの動作（および、任意選択で、追加の動作）を定義するプラグイン包含データパス仕様を生成するように構成できる（ブロック５４０）。
【０１０６】
しかし、指示されたプラグインが検証されていないデータパス関連プラグインのままである（または、検証されていないデータパス関連プラグインになる）間に、ＵＤＳＰエージェント２２０は、データパス関連プラグインの動作を定義しない並列検証データパス仕様を構築する（または維持する）ように構成できる（ブロック５５０）。結果として、データパス関連プラグインが検証されない限り、あらゆる動作（例えば、読取り／書込み）、またはある場合には、（例えば、図８に関してさらに詳述するように）かかるプラグインに関連した動作（例えば、プラグインを使用する）の少なくとも一部が、図８に関してさらに詳述されるように、２つの並列データパス−プラグイン動作を含む１つ（プラグイン包含データパス仕様によって定義される動作を含むプラグイン包含データパス）および含まない１つ（検証データパス仕様によって定義される動作を含む検証データパス）−を使用して実行されるであろう。検証データパスは、プラグイン包含データパスによって生成されるデータの検証を可能にする検証データを生成するために必要であることに留意されたい。ある場合には、共通のタスクの実行に続いて、両方のデータパスが（たとえ、データパスの１つ以上によって生成されるデータが暗号化されるか、重複排除されるか、圧縮されるか、または別の方法で操作されても）、同じ情報を含むデータを生成すると予期され、また、ある場合には、それらは、同一のデータを生成すると予期される。ある場合には、限定されない例として、データパスの１つ以上によって生成されるデータが暗号化されるか、重複排除されるか、圧縮されるか、または別の方法で操作される場合、必要であれば、比較可能なデータを抽出するために、逆方向の操作が実行できることが理解され得る。
【０１０７】
両方のデータパスが同一のデータを生成すると予期される場合、両方のデータパスが、（それぞれのデータパス仕様に従い）データに関して共通の動作および／または操作を実行する必要があり得ることに留意されたい。従って、プラグイン包含データパス内でデータに関してある動作および／または操作（例えば、圧縮、重複排除など）を実行するために検証されていないデータパス関連プラグインが必要な場合、検証データパスは、データに関して、検証されていないデータパス関連プラグインによって実行される、同じ動作および／または操作を実行する、検証済みプラグインを含むであろう。
【０１０８】
ある場合には、検証データは、例えば、検証が失敗した場合に、プラグイン包含データパスによって生成されたデータの修正をさらに可能にすることにさらに留意されたい。
【０１０９】
図７を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または２、３のブロックに分解でき、かつ／または他のブロックが追加され得ることに留意されたい。その上、ある場合には、ブロックは、本明細書で説明される順序とは異なる順序で実行できる（例えば、ブロック５５０は、ブロック５４０の前に実行できる、など）。ブロックのいくつかは任意選択であることにさらに留意されたい（例えば、ブロック５２０および５３０）。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
【０１１０】
図８は、本開示の主題に従って、データパス関連プラグインに関するタスクを遂行するために実行される一連の動作の一例を示す流れ図である。
【０１１１】
本開示の主題のいくつかの例によれば、ＵＤＳＰエージェント２２０は（例えば、タスク管理モジュール３３５を利用して）、タスク実行プロセス６００を実行するように構成できる。この目的のため、ＵＤＳＰエージェント２２０は、検証されていないデータパス関連プラグインに関するタスク（例えば、検証されていないデータパス関連プラグインを使用する）を受信するように構成できる（ブロック６１０）。
【０１１２】
ある場合には、ＵＤＳＰエージェント２２０は、検証されていないデータパス関連プラグインが動作するプラグイン包含データパス上で、および検証されていないデータパス関連プラグインが動作しない、並列検証データパス上で、タスクを実行するように構成できる（ブロック６２０）。
【０１１３】
プラグイン包含データパス上および検証データパス上での受信したタスクの実行に続いて、ＵＤＳＰエージェント２２０は、検証データを利用して、プラグイン包含データパスによって生成されたデータを検証できる（ブロック６３０）。データが有効な場合、プロセスは終了する（ブロック６４０）。ある場合には、両方の並列データパス上でのタスクの実行に続く、データの有効性の表示が、例えば、かかる成功したタスク実行（成功したタスク実行は、プラグイン包含データパス上でのタスクの実行から生じたデータが、検証データパス上でのタスクの実行から生じた検証データを使用して検証される実行である）の数を示すカウンタ内に、保持される。かかるカウンタは、検証されていないデータパス関連プラグインの格付けのために後に使用できる（例えば、かかる成功したタスク実行がある数に達すると―検証されていないデータパス関連プラグインのグレードが高まり得る）。
【０１１４】
しかし、データが無効であると分かった場合、ＵＤＳＰエージェント２２０は、１つ以上の失敗時の動作を実行するように構成できる（ブロック６５０）。ある場合には、失敗時の動作は、検証されていないデータパス関連プラグインの、ＤＳＳ  ２００全体からの、およびある場合には、その上、他のＤＳＳ  ２００からの（例えば、かかるＤＳＳ  ２００の集合をサポートする中央サービスを利用して）、即時の除去または無効化を含み得る。ある場合には、失敗時の動作は、タスク実行が実行されたそれぞれの論理記憶エンティティからの、検証されていないデータパスの即時の除去または無効化を含み得る。追加または代替として、失敗時の動作は、無効なデータを訂正するために、検証データを利用することを含み得る。追加または代替として、失敗時の動作は、タスク実行が実行されたそれぞれの論理記憶エンティティのユーザー（例えば、システム管理者）に（例えば、失敗を示す）通知を発行することを含み得る。追加または代替として、失敗時の動作は、検証されていないデータパス関連プラグインが配備される任意の論理記憶エンティティの全てのユーザー（例えば、システム管理者）に（例えば、失敗を示す）通知を発行することを含み得る。追加または代替として、失敗時の動作は、（例えば、失敗を示す）通知を、他のＤＳＳ  ２００に（例えば、かかるＤＳＳ  ２００の集合をサポートする中央サービスを通して）発行することを含み得る。追加または代替として、失敗時の動作は、以前のバージョンが存在する場合、検証されていないデータパス関連プラグインのかかる以前のバージョンに戻すことを含み得る。追加または代替として、失敗時の動作は、検証されていないデータパス関連プラグインのグレードを下げることを含み得る。他および／または追加の失敗時の動作が行われ得ることに留意されたい。ある場合には、どの失敗時の動作を実行すべきかの判断が、それぞれのプラグインおよび／またはその開発者に関する様々な履歴データによって決まり得る（例えば、ある場合には、その成功した動作を示す、より多くの履歴データと関連付けられたプラグインが、その成功した動作を示す、少ない履歴データしか有していないプラグインよりも寛容に扱われ得、より多くの検証済みプラグインを開発した開発者によって開発されたプラグインが、少ない検証済みプラグインしか開発していない開発者によって開発されたプラグインよりも寛容に扱われ得る、など）ことにさらに留意されたい。
【０１１５】
ある場合には、検証されていないデータパス関連プラグインのグレードは、とりわけ、あらゆる所定の時間窓および／またはあらゆる所定数の成功したタスク実行および／または別の方法で高められ得る。
【０１１６】
任意選択で、ある場合には、例えば、検証されていないデータパス関連プラグインのグレードに従って、検証されていないデータパス関連プラグインに関する全てではないタスクが、両方の並列データパス上で実行されることに留意されたい。ある場合には、かかるタスクの一部のみが、両方の並列データパス上で実行される。ある場合には、検証されていないデータパス関連プラグインのグレードが高いほど、両方の並列データパス上で実行されるタスクの数が少ない。ある場合には、タスクは、所定数の実行ごとに（例えば、２つの実行につき１回、１０回の実行につき１回、または他の所定数の実行につき１回）のみ、両方の並列データパス上で実行される。ある場合には、タスクは、例えば、外部のエンティティによって判断および制御される通り、ある時間間隔ごとに両方の並列データパス上で実行される。
【０１１７】
図８を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または２、３のブロックに分解でき、かつ／または他のブロックが追加され得ることに留意されたい。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
【０１１８】
図９は、本開示の主題に従って、分散記憶システムの再構成を管理するために実行される一連の動作の一例を示す流れ図である。
【０１１９】
本開示の主題のいくつかの例によれば、ある場合には、ＤＳＳ  ２００の再構成が必要であるかをチェックする再構成プロセス９００が実行できる。ある場合には、かかるチェックは、定期的に（例えば、所定の時間間隔、例えば、毎分、５分毎、毎時、または任意の他の所定の時間間隔、に従って）、連続して（例えば、繰返しループ内で、など）、トリガー事象（例えば、監視されるパラメータが事前に定義されたか、または計算された閾値を超える、とりわけ、図１０に関して詳述するように、コンピュータノード２０５と関連付けられたＵＤＳＰエージェント２２０からの推奨の受信、など）に続いて、など、実行できる。
【０１２０】
本明細書に示すように、ある場合には、コンピュータノード２０５と関連付けられた各ＵＤＳＰエージェント２２０は、例えば、目的指向型構成モジュール３９０を利用している間に、再構成プロセス７００を実行するように構成できる。ある場合には、１つ以上のコンピュータノード２０５（例えば、専用コンピュータノード）と関連付けられたＵＤＳＰエージェント２２０は、例えば、目的指向型構成モジュール３９０を利用している間に、再構成プロセス７００を実行する責任を負い得る。
【０１２１】
ある場合には、目的指向型構成モジュール３９０は、ＤＳＳ  ２００内の１つ以上の論理記憶エンティティと関連付けられたＳＬＳ、ＤＳＳ  ２００およびその資源および環境の動的挙動を示すデータ、ＤＳＳ  ２００の現在の構成を示すデータ、ＤＳＳ  ２００に関連した統計データおよび履歴データなど、のうちの任意の１つ、またはそれらの任意の組合せを受信するように構成できる（ブロック７１０）。ある場合には、データの全部または一部が、追加または代替として、再構成プロセス９００が実行されるコンピュータノード２０５と関連付けられたＵＤＳＰデータリポジトリ３３０から取得できることに留意されたい。
【０１２２】
ある場合には、目的指向型構成モジュール３９０は、受信したデータを利用して、ＳＬＳのいずれかに違反していないか（または、例えば、事前に定義された閾値などに従って、違反に近いか）、および／またはＤＳＳ  ２００の再構成を実行する何らかの他の理由（例えば、ＳＬＳに関わらず、１つ以上の割当てが実行できなかったこと、など）があるか、をチェックするように構成できる（ブロック７２０）。
【０１２３】
ある場合には、ＳＬＳに違反するたびに（ＳＬＳの違反は、時々、例えば、事前に定義された閾値などに従って、かかる違反に近いことを含み得ることに留意すべきである）、ＤＳＳ  ２００の再構成が開始できることに留意されたい。他の場合には、ＤＳＳ  ２００のかかる再構成は、何らかの事前に定義された基準の満足に応じて開始できる。かかる基準は、例えば、事前に定義された時間フレーム内または時間に関わらずのいずれかで、満足する必要のある検出されたＳＬＳ違反の事前に定義された数など、であり得る。従って、例えば、例示的な基準は、３回のＳＬＳ違反の検出、または１日のうちでの３回のＳＬＳ違反の検出など、であり得る。ある場合には、違反の重要性が、追加または代替として、基準として考慮され得る。この目的のため、目的指向型構成モジュール３９０は、ＤＳＳ  ２００に関連した統計データおよび履歴データを利用するように構成できる。
【０１２４】
ＤＳＳ  ２００を再構成する必要がある場合、目的指向型構成モジュール３９０は、とりわけ、図２〜図４に関して、前述したように、ＤＳＳ  ２００構成プロセスを実行するために目的指向型管理システム（ＯＢＭＳ）１００を起動するように構成できる（ブロック７３０）。本明細書に示すように、ＤＳＳ  ２００を再構成する場合、ＯＢＭＳ  １００は、再構成プロセスに対する入力の一部として、ＤＳＳ  ２００の現在の構成を受信して、ＤＳＳ  ２００を再構成する際に、それを考慮に入れる得ることに留意されたい。ある場合には、かかる再構成中に、ＯＢＭＳ  １００は、資源の全部または一部の予約および／または割当ておよび／または再割当ておよび／または解放を行うように構成できる。
【０１２５】
ある場合には、ＤＳＳ  ２００の再構成に対する追加または代替として、目的指向型構成モジュール３９０は、１つ以上のＳＬＳ関連是正動作を実行するように構成できることに留意されたい。ある場合には、ＳＬＳ関連是正動作は、検証されていないデータパス関連プラグインの、ＤＳＳ  ２００全体（それが配備される任意の論理記憶エンティティを含む）からの、およびある場合には、その上、他のＤＳＳ  ２００からの（例えば、かかるＤＳＳ  ２００の集合をサポートする中央サービスを利用して）、即時の除去を含み得る。ある場合には、ＳＬＳ関連是正動作は、タスク実行が実行されたそれぞれの論理記憶エンティティからの、検証されていないデータパスの即時の除去を含み得る。追加または代替として、ＳＬＳ関連是正動作は、それぞれの論理記憶エンティティのユーザー（例えば、システム管理者）に（例えば、違反または違反に近いことを示す）通知を発行することを含み得る。追加または代替として、ＳＬＳ関連是正動作は、検証されていないデータパス関連プラグインが配備される任意の論理記憶エンティティの全てのユーザー（例えば、システム管理者）に（例えば、違反または違反に近いことを示す）通知を発行することを含み得る。追加または代替として、ＳＬＳ関連是正動作は、（例えば、失敗を示す）通知を、他のＤＳＳ  ２００に（例えば、かかるＤＳＳ  ２００の集合をサポートする中央サービスを通して）発行することを含み得る。追加または代替として、ＳＬＳ関連是正動作は、以前のバージョンが存在する場合、検証されていないデータパス関連プラグインのかかる以前のバージョンに戻すことを含み得る。追加または代替として、ＳＬＳ関連是正動作は、検証されていないデータパス関連プラグインのグレードを下げることを含み得る。他および／または追加のＳＬＳ関連是正動作が行われ得ることに留意されたい。ある場合には、どのＳＬＳ関連是正動作を実行すべきかの判断が、それぞれのプラグインおよび／またはその開発者に関する様々な履歴データによって決まり得る（例えば、ある場合には、その成功した動作を示す、より多くの履歴データと関連付けられたプラグインが、その成功した動作を示す、少ない履歴データしか有していないプラグインよりも寛容に扱われ得、より多くの検証済みプラグインを開発した開発者によって開発されたプラグインが、少ない検証済みプラグインしか開発していない開発者によって開発されたプラグインよりも寛容に扱われ得る、など）ことにさらに留意されたい。
【０１２６】
図９を再度参照すると、ＳＬＳの違反がなく（または違反に近くなく）、再構成を実行する他の理由、またはＤＳＳ  ２００の再構成の次の開始がない場合、再構成プロセス９００が終了する（ブロック７４０）。
【０１２７】
図９を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または２、３のブロックに分解でき、かつ／または他のブロックが追加され得ることに留意されたい。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
【０１２８】
図１０は、本開示の主題に従って、データパス関連プラグインを検証するために実行される一連の動作の一例を示す流れ図である。
【０１２９】
本開示の主題のいくつかの例によれば、ＵＤＳＰエージェント２２０は（例えば、タスク管理モジュール３３５を利用して）、検証されていないデータパス関連プラグインに対して検証プロセス８００を実行するように構成できる。この目的のため、ＵＤＳＰエージェント２２０は、検証されていないデータパス関連プラグインの検証が完了するかをチェックするように構成され得る（ブロック８１０）。ある場合には、かかるチェックは、定期的に（例えば、所定の時間間隔、例えば、毎分、５分毎、毎時、または任意の他の事前に定義された時間間隔、に従って）、連続して（例えば、繰返しループ内で、など）、トリガー事象に続いて（例えば、タスクの成功した実行に続いて、検証されていないデータパス関連プラグインのグレードにおける上昇に続いて、など）、など、実行できる。
【０１３０】
ある場合には、それぞれのプラグインに関する所定の数の成功したタスク実行の後、プラグイン検証が完了する。代替または追加として、検証されていないデータパスを使用して生成された、ある（例えば、所定の）量のデータが、うまく検証された後に、プラグイン検証が完了する。代替または追加として、ユーザー（例えば、システム管理者）による承認の後、プラグイン検証が完了する。ある場合には、検証が完了するかを判断するために、他のパラメータおよび／または基準が使用できることに留意されたい。
【０１３１】
検証が完了しない場合、プロセスが終了する（ブロック８５０）。しかし、検証が完了して、データパス関連プラグインが検証される場合、ＵＤＳＰエージェント２２０は、検証データパス仕様をそれぞれの論理記憶エンティティから除去して（ブロック８３０）、１つ以上の検証動作を実行する（ブロック８４０）ように構成され得る。ある場合には、検証動作は、現在検証されたデータパス関連プラグインのグレードを上げることを含み得る。ある場合には、検証動作は、追加または代替として、現在検証されたデータパス関連プラグインに関する任意の検証データパス仕様を、ＤＳＳ  ２００全体（それが配備される任意の論理記憶エンティティを含む）から、およびある場合には、その上、他のＤＳＳ  ２００から（例えば、かかるＤＳＳ  ２００の集合をサポートする中央サービスを利用して）、除去することを含み得る。追加または代替として、検証動作は、タスク実行が実行された、それぞれの論理記憶エンティティのユーザー（例えば、システム管理者）に（プラグインの検証を示す）通知を発行することを含み得る。追加または代替として、検証動作は、現在検証されたデータパス関連プラグインが配備される任意の論理記憶エンティティの全てのユーザー（例えば、システム管理者）に（プラグインの検証を示す）通知を発行することを含み得る。追加または代替として、検証動作は、（例えば、失敗を示す）通知を、他のＤＳＳ  ２００に（例えば、かかるＤＳＳ  ２００の集合をサポートする中央サービスを通して）発行することを含み得る。
【０１３２】
図１０を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または２、３のブロックに分解でき、かつ／または他のブロックが追加され得ることに留意されたい。その上、ある場合には、ブロックは、本明細書で説明される順序とは異なる順序で実行できる（例えば、ブロック８４０は、ブロック８３０の前に実行できる、など）。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
【０１３３】
本開示の主題は、本明細書に含まれるか、または図に示された説明に記載された詳細への適用に制限されないことを理解されたい。本開示の主題は、他の実施形態ならびに様々な方法で実施および実行されるのが可能である。それ故、本明細書で採用される表現および用語は、説明のためであり、制限と見なされるべきでないことを理解されたい。そのため、当業者は、本開示が基づく概念は、本開示の主題のいくつかの目的を実行するための他の構造、方法、およびシステムを設計するための基礎として容易に利用され得ることを理解するであろう。
【０１３４】
本開示の主題に従ったシステムは、適切にプログラムされたコンピュータとして、少なくとも一部、実装され得ることも理解されよう。同様に、本開示の主題は、開示される方法を実行するために、コンピュータによって可読なコンピュータプログラムを考える。本開示の主題は、開示される方法を実行するために、マシンによって実行可能な命令のプログラムを有形的に具現化するマシン可読メモリをさらに考える。
【図１】
2016519364.tif 000003
【図２】
2016519364.tif 000004
【図３】
2016519364.tif 000005
【図４】
2016519364.tif 000006
【図５】
2016519364.tif 000007
【図６】
2016519364.tif 000008
【図７】
2016519364.tif 000009
【図８】
2016519364.tif 000010
【図９】
2016519364.tif 000011
【図１０】
2016519364.tif 000012
【手続補正書】
【提出日】平成26年10月21日(2014.10.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
記憶システムの論理記憶エンティティに対してデータパス関連プラグインを配備するための方法であって、前記方法が、
前記データパス関連プラグインを前記論理記憶エンティティに対して配備することであって、前記配備することがプラグイン包含データパス仕様を作成することを含み、かつ前記プラグイン包含データパス仕様が前記データパス関連プラグインの動作を含む、前記データパス関連プラグインを前記論理記憶エンティティに対して配備することと、
検証データパス仕様を作成することであって、前記検証データパス仕様が、前記データパス関連プラグインの動作を含まず、かつ前記検証データパス仕様を有する、検証データパス内で実行されるタスクが、前記プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されている前記タスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成することと
を含む、記憶システムの論理記憶エンティティに対してデータパス関連プラグインを配備するための方法。
【請求項２】
前記データパス関連プラグインが、前記記憶システムと関連付けられたプラグインプール内に格納されたデータパス関連プラグインのリストから選択される、請求項１に記載の方法。
【請求項３】
前記配備することが、前記論理記憶エンティティと関連付けられたサービス水準仕様（ＳＬＳ）の違反とならないかをチェックすることをさらに含み、かつ前記チェックすることが、前記配備することが前記ＳＬＳの違反とならないことを示した場合に、前記配備することおよび前記作成することが実行される、請求項１に記載の方法。
【請求項４】
所与のタスクを、前記プラグイン包含データパス上および前記検証データパス上で実行して、前記所与のデータおよび前記検証データを生み出すことと、
前記所与のデータを、前記検証データを使用して検証することと、
前記検証することが失敗する場合に、１つ以上の失敗時の動作の実行することと
をさらに含む、請求項１に記載の方法。
【請求項５】
前記検証データが、前記所与のデータに含まれている情報と同一の情報を含む場合、前記検証することが成功である、請求項４に記載の方法。
【請求項６】
前記検証データおよび前記所与のデータが同一である場合、前記検証することが成功である、請求項５に記載の方法。
【請求項７】
前記１つ以上の失敗時の動作が、以下の動作：
（ａ）前記検証されていないデータパス関連プラグインを前記論理記憶エンティティから取り除くこと；
（ｂ）前記検証されていないデータパス関連プラグインを前記論理記憶エンティティに対して無効にすること；
（ｃ）前記所与のデータを訂正するために前記検証データを利用すること；
（ｄ）失敗を示す通知を前記論理記憶エンティティのユーザーに対して発行すること；
（ｅ）以前のバージョンが存在する場合、前記検証されていないデータパス関連プラグインの以前のバージョンに戻すこと；
（ｆ）前記検証されていないデータパス関連プラグインと関連付けられたグレードを下げること；
の１つ以上を含む、請求項４に記載の方法。
【請求項８】
検証されていないデータパス関連プラグインの検証が完了する場合、前記検証データパスを除去することと、１つ以上の検証動作を実行することとをさらに含む、請求項１に記載の方法。
【請求項９】
前記検証動作が、以下の動作：
（ａ）前記検証されていないデータパス関連プラグインと関連付けられたグレードを上げること；
（ｂ）前記検証が完了することを示す通知を前記論理記憶エンティティのユーザーに対して発行すること；
の１つ以上を含む、請求項８に記載の方法。
【請求項１０】
前記記憶システムが、分散記憶システムであり、かつ前記チェックが、前記配備することが前記ＳＬＳの違反となることを示した場合、前記方法が、
前記分散記憶システムの動的挙動に関する動的挙動パラメータデータを受信することと、
前記少なくとも１つのＳＬＳ、前記分散記憶システムのインフラストラクチャ層に接続されたストレージ関連資源に関するストレージ関連資源パラメータデータ、および動的挙動パラメータデータに、少なくとも基づき、前記分散記憶システムに対する再構成を計算することと、
前記計算された再構成に従って、前記ストレージ関連資源の１つの少なくとも一部を自動的に割り当てることと
をさらに含む、請求項３に記載の方法。
【請求項１１】
統一分散記憶プラットフォーム（ＵＤＳＰ）エージェントを実行するように構成された少なくとも１つの処理資源を含むコンピュータノードであって、前記ＵＤＳＰエージェントが、
データパス関連プラグインを論理記憶エンティティに対して配備することであって、前記配備することが、プラグイン包含データパス仕様を作成することを含み、かつ前記プラグイン包含データパス仕様が、前記データパス関連プラグインの動作を含む、データパス関連プラグインを論理記憶エンティティに対して配備することと、
検証データパス仕様を作成することであって、前記検証データパス仕様が、前記データパス関連プラグインの動作を含まず、かつ前記検証データパス仕様を有する、検証データパス内で実行されるタスクが、前記プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されている前記タスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成することと
を行うように構成されている、コンピュータノード。
【請求項１２】
前記データパス関連プラグインが、前記記憶システムと関連付けられたプラグインプール内に格納されたデータパス関連プラグインのリストから選択される、請求項１１に記載のシステム。
【請求項１３】
前記ＵＤＳＰエージェントが、前記配備することが前記論理記憶エンティティと関連付けられたサービス水準仕様（ＳＬＳ）の違反とならないかをチェックするようにさらに構成され、前記チェックが、前記配備することが前記ＳＬＳの違反とならないことを示した場合に、前記配備することおよび前記作成することが実行される、請求項１１に記載のシステム。
【請求項１４】
前記ＵＤＳＰエージェントが、
所与のタスクを、前記プラグイン包含データパス上および前記検証データパス上で実行することと、
前記所与のデータを、前記検証データを使用して検証することと、
前記検証することが失敗する場合に、１つ以上の失敗時の動作の実行することと
を行うようにさらに構成されている、請求項１１に記載のシステム。
【請求項１５】
前記検証データが、前記所与のデータに含まれている情報と同一の情報を含む場合、前記検証することが成功である、請求項１４に記載のシステム。
【請求項１６】
前記検証データおよび前記所与のデータが同一である場合、前記検証することが成功である、請求項１５に記載のシステム。
【請求項１７】
前記１つ以上の失敗時の動作が、以下の動作：
（ａ）前記検証されていないデータパス関連プラグインを前記論理記憶エンティティから取り除くこと；
（ｂ）前記検証されていないデータパス関連プラグインを前記論理記憶エンティティに対して無効にすること；
（ｃ）前記検証データを、前記所与のデータを訂正するために利用すること；
（ｄ）失敗を示す通知を前記論理記憶エンティティのユーザーに対して発行すること；
（ｅ）以前のバージョンが存在する場合、前記検証されていないデータパス関連プラグインの以前のバージョンに戻すこと；
（ｆ）前記検証されていないデータパス関連プラグインと関連付けられたグレードを下げること；
の１つ以上を含む、請求項１４に記載のシステム。
【請求項１８】
検証されていないデータパス関連プラグインの検証が完了する場合、前記ＵＤＳＰエージェントが、前記検証データパスを除去して、１つ以上の検証動作を実行するようにさらに構成されている、請求項１１に記載のシステム。
【請求項１９】
前記検証動作が、以下の動作：
（ａ）前記検証されていないデータパス関連プラグインと関連付けられたグレードを上げること；
（ｂ）前記検証が完了することを示す通知を前記論理記憶エンティティのユーザーに対して発行すること；
の１つ以上を含む、請求項１８に記載のシステム。
【請求項２０】
前記記憶システムが、分散記憶システムであり、かつ前記チェックすることが、前記配備することが前記ＳＬＳの違反となることを示した場合、前記ＵＤＳＰエージェントが、
前記分散記憶システムの動的挙動に関する動的挙動パラメータデータを受信することと、
前記少なくとも１つのＳＬＳ、前記分散記憶システムのインフラストラクチャ層に接続されたストレージ関連資源に関するストレージ関連資源パラメータデータ、および動的挙動パラメータデータに、少なくとも基づき、前記分散記憶システムに対する再構成を計算することと、
前記計算された再構成に従って、前記ストレージ関連資源の１つの少なくとも一部を自動的に割り当てることと
を行うようにさらに構成されている、請求項１３に記載のシステム。
【請求項２１】
マシンによって可読なプログラム記憶装置であって、データパス関連プラグインを記憶システムの論理記憶エンティティに対して配備するための方法を実行するために前記マシンによって実行可能な命令のプログラムを有形的に具現化し、
前記データパス関連プラグインを前記論理記憶エンティティに対して配備することであって、前記配備することが、プラグイン包含データパス仕様を作成することを含み、かつ前記プラグイン包含データパス仕様が前記データパス関連プラグインの動作を含む、前記データパス関連プラグインを前記論理記憶エンティティに対して配備することと、
検証データパス仕様を作成することであって、前記検証データパス仕様が前記データパス関連プラグインの動作を含まず、かつ前記検証データパス仕様を有する、検証データパス内で実行されるタスクが、前記プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されている前記タスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成することと
を行うステップを含む、マシンによって可読なプログラム記憶装置。
【国際調査報告】
2016519364.tif 000013