JP2016519364A - データパス関連プラグインの配備 - Google Patents

データパス関連プラグインの配備 Download PDF

Info

Publication number
JP2016519364A
JP2016519364A JP2016503774A JP2016503774A JP2016519364A JP 2016519364 A JP2016519364 A JP 2016519364A JP 2016503774 A JP2016503774 A JP 2016503774A JP 2016503774 A JP2016503774 A JP 2016503774A JP 2016519364 A JP2016519364 A JP 2016519364A
Authority
JP
Japan
Prior art keywords
data path
plug
data
verification
related plug
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016503774A
Other languages
English (en)
Inventor
ゴードン,ラズ
Original Assignee
ストローン リミテッド
ストローン リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ストローン リミテッド, ストローン リミテッド filed Critical ストローン リミテッド
Publication of JP2016519364A publication Critical patent/JP2016519364A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0823Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)
  • Retry When Errors Occur (AREA)

Abstract

データパス関連プラグインを記憶システムの論理記憶エンティティに対して配備するための方法であって、本方法が、データパス関連プラグインを論理記憶エンティティに対して配備することであって、配備することがプラグイン包含データパス仕様を作成することを含み、プラグイン包含データパス仕様がデータパス関連プラグインの動作を含む、データパス関連プラグインを論理記憶エンティティに対して配備すること;および検証データパス仕様を作成することであって、検証データパス仕様が、データパス関連プラグインの動作を含まず、かつ検証データパス仕様を有する、検証データパス内で実行されるタスクが、プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されているタスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成すること、を含む。【選択図】図8

Description

本発明は、記憶システムのデータパス関連プラグインに関し、詳細には、かかるデータパス関連プラグインを配備するためのシステムおよび方法に関する。
分散記憶システムは、過去10年間にわたり、ネットワークが容量および速度において増大するにつれて、急速に発展してきた。ネットワークがローカルエリアネットワーク(LAN)からグローバルなワイドエリアネットワーク(WAN)に拡大するとともに、ビジネスがよりグローバルに分散されてきて、遠く離れた地理的位置にわたってデータ記憶およびアクセスを提供するために、分散記憶システムに対する要求が生じている。ある場合には、様々な実体が、様々な分散記憶システムのデータパス関連プラグインを開発して、かかるデータパス関連プラグインを分散記憶システム内に組み込むための機能を探し求める。しかし、かかるデータパス関連プラグインを分散記憶システムに組み込むことは、予期しないか、または望ましくない動作、例えば、データの破損、性能の低下などを引き起こし得る。従って、データパス関連プラグインを分散データ記憶システムに組み込むための新しい方法およびシステムに対する、当技術分野における必要性がある。
背景として本開示の主題に関連すると考えられる従来技術の参照を、以下にリストする。本明細書での参照の確認は、これらが、本開示の主題の特許性と何らかの関係があることを意味すると解釈されるものではない。
米国特許公開第2009/0070337号「Apparatus and Method for a Distributed Storage Global Database」は、「所与のデータ要素に対する要求が地理的慣性を招く、データ要素の分散を管理するための地理的に分散された記憶システム。地理的に分散された記憶システムは、地理的に分散されたサイトを含み、各々は、データ要素およびそのデータ要素の1つに関連する要求を受信するためのローカルアクセスポイントを含む、グローバルに首尾一貫した分散データベースの一部をローカルに格納するためのサイト記憶装置を含む。地理的に分散された記憶システムは、少なくとも1つの要求されたデータ要素を、要求が受信される、第1の地理的に分散されたサイトにおけるローカルアクセスポイントに転送し、少なくとも1つの要求されたデータ要素を第1のサイトにおいて格納し、それにより、分散データベースのグローバルな首尾一貫性を維持しながら、第1のサイトからの将来の要求のためにデータ要素に対するローカルのアクセス可能性を提供するためのデータ管理モジュールを含む。」ことに関する。
米国特許第5987505号、「Remote Access and Geographically Distributed Computers in a Globally Addressable Storage Environment」は、「コンピュータシステムは、データが、コンピュータハードディスクおよび他の従来の非アドレス可能なデータ記憶装置などの、永続記憶装置上に格納されている場合にさえ、複数のネットワークコンピュータがアドレス指定によってデータにアクセスするのを可能にする、グローバルなアドレス可能記憶環境を採用する。コンピュータは、単一のコンピュータネットワーク上、またはワイドエリアネットワーク(WAN)によって結合された2つのローカルエリアネットワーク(LAN)などの、複数の相互接続されたコンピュータネットワーク上に配置できる。グローバルにアドレス可能な記憶環境は、複数のネットワーク上の様々なコンピュータによって、かつそれらの間で、データがアクセスおよび共有されるのを可能にする。」ことに関する。
Ms.S.V.Patilらによる、International Journal of Computer Applications 2010(0975−8887),Volume 1−No.22,「Unified Virtual Storage:Virtualization of Distributed Storage in a Network」は、「ネットワークを通じて接続されたデスクトップマシン上の空きディスク空間を効率的に利用するための方法。今日の多くのネットワークでは、クライアントノードのローカルディスクは、散発的にのみ使用される。これは、ネットワーク内のデータ記憶を効率的に管理して、LAN内のデスクトップマシン上のディスク空間を共有するためのソフトウェアサポートを提供する試みである。現在の状況では、従来のサーバー上でのストレージ拡張は、最大拡張制約、費用のかかる問題のような制約を有し、また、ハードウェアの交換、アップグレードの場合には、データの手動による移転が面倒になる。UVS(Unified Virtual Storage:統一仮想記憶)は、ネットワークを通じて接続されたデスクトップマシン上の自由に利用可能なディスク空間を効率的に利用するための試みである。その目的は、ネットワークサーバー上のデータトラフィックの負荷を軽減して、クライアントノード上の空間を効率的に利用し、それにより、空間の浪費を防ぐことである。それはまた、ストレージ拡張に対するハードウェア制約を取り除いて、データストアの位置透過性を提供する。UVSの主要な利点は、それが既存のインフラストラクチャ(ローカルエリアネットワークシステム)にシームレスに組み込むことができることである。仮想記憶は、実質的に無限の、サポートする拡張可能なアーキテクチャである。クライアントノードは、統一仮想ドライブを、異なるサーバーにわたって分散されたストレージに対するシングルポイントアクセスとして使用でき、それにより、サーバーの個々のアドレス指定を取り除く。ネットワークおよび性能によって接続されたUVSサーバー上で実装されたプロトタイプの性能は、集中型システムより良く、フレームワークのオーバーヘッドは、高負荷中にさえ適度である。」と記述している。
米国特許公開第2011/0153770号、「Dynamic Structural Management of a Distributed Caching Infrastructure」は、「n階層の分散キャッシングインフラストラクチャの動的構造管理ための方法、システムおよびコンピュータプログラム製品。本発明の実施形態では、n階層の分散キャッシングインフラストラクチャの動的構造管理の方法は、n階層のキャッシュ内のそれぞれの階層ノード(tier node)に配置された複数のキャッシュサーバーへの通信接続を確立すること、n階層のキャッシュのそれぞれの階層ノード内のキャッシュサーバーの各々に対する性能測定基準を収集すること、閾値を超えるn階層の階層ノードの対応する1つ内の特定のキャッシュ資源の特性を識別すること、および識別された特性の原因となる特定のキャッシュ資源を含む、キャッシュ資源のセットを動的に構造化すること、を含む。」ことに関する。
本開示の主題の第1の態様によれば、データパス関連プラグインを記憶システムの論理記憶エンティティに対して配備するための方法が提供され、本方法は:前記データパス関連プラグインを前記論理記憶エンティティに対して配備することであって、前記配備することがプラグイン包含データパス仕様を作成することを含み、前記プラグイン包含データパス仕様がデータパス関連プラグインの動作を含む、前記データパス関連プラグインを前記論理記憶エンティティに対して配備すること;および検証データパス仕様を作成することであって、前記検証データパス仕様がデータパス関連プラグインの動作を含まず、かつ前記検証データパス仕様を有する、検証データパス内で実行されるタスクが、前記プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されている前記タスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成すること、を含む。
ある場合には、データパス関連プラグインが、記憶システムと関連付けられたプラグインプール内に格納されたデータパス関連プラグインのリストから選択される。
ある場合には、本方法は、前記配備が、論理記憶エンティティと関連付けられたサービス水準仕様(SLS)の違反とならないかをチェックすることをさらに含み、前記チェックが、前記配備が前記SLSの違反とならないことを示した場合に、前記配備および前記作成が実行される。
ある場合には、本方法は、所与のタスクを前記プラグイン包含データパス上および前記検証データパス上で実行すること;前記所与のデータを、前記検証データを使用して検証すること;ならびに第1の実行結果と第2の実行結果との間に不一致が存在する場合、1つ以上の失敗時の動作の実行すること、をさらに含む。
ある場合には、前記検証データが、前記所与のデータに含まれている情報と同一の情報を含む場合、前記検証は成功である。
ある場合には、前記検証データおよび前記所与のデータが同一である場合、前記検証は成功である。
ある場合には、前記1つ以上の失敗時の動作は、以下の動作の1つ以上を含む:
(a)前記検証されていないデータパス関連プラグインを論理記憶エンティティから取り除くこと;
(b)検証されていないデータパス関連プラグインを論理記憶エンティティに対して無効にすること;
(c)検証データを、所与のデータを訂正するために利用すること;
(d)失敗を示す通知を論理記憶エンティティのユーザーに対して発行すること;
(e)以前のバージョンが存在する場合、検証されていないデータパス関連プラグインの以前のバージョンに戻すこと;
(f)検証されていないデータパス関連プラグインと関連付けられたグレードを下げること。
ある場合には、本方法は、検証されていないデータパス関連プラグインの検証が完了する場合、検証データパスを除去して、1つ以上の検証動作を実行することをさらに含む。
ある場合には、前記検証動作は、以下の動作の1つ以上を含む:
(a)検証されていないデータパス関連プラグインと関連付けられたグレードを上げること;
(b)検証が完了することを示す通知を論理記憶エンティティのユーザーに対して発行すること。
ある場合には、前記記憶システムが、分散記憶システムであり、前記チェックが、前記配備が前記SLSの違反となることを示した場合、本方法は:分散記憶システムの動的挙動に関する動的挙動パラメータデータを受信すること;前記少なくとも1つのSLS、前記分散記憶システムのインフラストラクチャ層に接続されたストレージ関連資源に関するストレージ関連資源パラメータ、および動的挙動パラメータに少なくとも、基づき、分散記憶システムに対する再構成を計算すること;ならびに、計算された再構成に従って、前記ストレージ関連資源の1つの少なくとも一部を自動的に割り当てること、をさらに含む。
本開示の主題の第2の態様によれば、統一分散記憶プラットフォーム(UDSP)エージェントを実行するように構成された少なくとも1つの処理資源を含むコンピュータノードが提供され、前記UDSPエージェントが:前記論理記憶エンティティに対して前記データパス関連プラグインを配備することであって、前記配備が、プラグイン包含データパス仕様を作成することを含み、前記プラグイン包含データパス仕様が、データパス関連プラグインの動作を含む、前記論理記憶エンティティに対して前記データパス関連プラグインを配備すること;および検証データパス仕様を作成することであって、前記検証データパス仕様が、データパス関連プラグインの動作を含まず、かつ前記検証データパス仕様を有する、検証データパス内で実行されるタスクが、前記プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されている前記タスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成すること、を行うように構成されている。
ある場合には、データパス関連プラグインが、記憶システムと関連付けられたプラグインプール内に格納されたデータパス関連プラグインのリストから選択される。
ある場合には、前記UDSPエージェントが、前記配備が論理記憶エンティティと関連付けられたサービス水準仕様(SLS)の違反とならないかをチェックするようにさらに構成され、前記チェックが、前記配備が前記SLSの違反とならないことを示した場合に、前記配備および前記作成が実行される。
ある場合には、前記UDSPエージェントが:所与のタスクを前記プラグイン包含データパス上および前記検証データパス上で実行すること;前記所与のデータを、前記検証データを使用して検証すること;ならびに第1の実行結果と第2の実行結果との間に不一致が存在する場合、1つ以上の失敗時の動作の実行すること、を行うようにさらに構成されている。
ある場合には、前記検証データが、前記所与のデータに含まれている情報と同一の情報を含む場合、前記検証は成功である。
ある場合には、前記検証データおよび前記所与のデータが同一である場合、前記検証は成功である。
ある場合には、前記1つ以上の失敗時の動作は、以下の動作の1つ以上を含む:
(a)前記検証されていないデータパス関連プラグインを論理記憶エンティティから取り除く;
(b)検証されていないデータパス関連プラグインを論理記憶エンティティに対して無効にする;
(c)検証データを、所与のデータを訂正するために利用する;
(d)失敗を示す通知を論理記憶エンティティのユーザーに対して発行する;
(e)以前のバージョンが存在する場合、検証されていないデータパス関連プラグインの以前のバージョンに戻す;
(f)検証されていないデータパス関連プラグインと関連付けられたグレードを下げる。
ある場合には、検証されていないデータパス関連プラグインの検証が完了する場合、前記UDSPエージェントは、検証データパスを除去して、1つ以上の検証動作を実行するようにさらに構成される。
ある場合には、前記検証動作は、以下の動作の1つ以上を含む:
(a)検証されていないデータパス関連プラグインと関連付けられたグレードを上げる;
(b)検証が完了することを示す通知を論理記憶エンティティのユーザーに対して発行する。
ある場合には、前記記憶システムが、分散記憶システムであり、前記チェックが、前記配備が前記SLSの違反となることを示した場合、前記UDSPエージェントが:分散記憶システムの動的挙動に関する動的挙動パラメータデータを受信すること;前記少なくとも1つのSLS、前記分散記憶システムのインフラストラクチャ層に接続されたストレージ関連資源に関するストレージ関連資源パラメータデータ、および動的挙動パラメータデータに、少なくとも基づき、分散記憶システムに対する再構成を計算すること;ならびに、計算された再構成に従って、前記ストレージ関連資源の1つの少なくとも一部を自動的に割り当てること、を行うようにさらに構成されている。
第3の態様によれば、記憶システムの論理記憶エンティティに対してデータパス関連プラグインを配備するための方法を実行するためにマシンによって実行可能な命令のプログラムを有形的に具現化する、マシンによって可読なプログラム記憶装置が提供され:前記データパス関連プラグインを前記論理記憶エンティティに対して配備することであって、前記配備することがプラグイン包含データパス仕様を作成することを含み、前記プラグイン包含データパス仕様がデータパス関連プラグインの動作を含む、前記データパス関連プラグインを前記論理記憶エンティティに対して配備すること;および検証データパス仕様を作成することであって、前記検証データパス仕様がデータパス関連プラグインの動作を含まず、かつ前記検証データパス仕様を有する、検証データパス内で実行されるタスクが、前記プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されている前記タスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成すること、を行うステップを含む。
本開示の主題を理解するため、およびそれが実際にはどのように実行され得るかを確認するために、主題がここで、限定されない例として、添付の図を参照して、説明される。
本発明の例示的な実施形態に従って、インフラストラクチャ層を含む、分散記憶システムの最上位アーキテクチャを概略的に示す。 本開示の主題に従って、分散記憶システムを構成するための簡略化した例示的なシステムを概略的に示す。 本開示の主題に従い、目的指向型管理システム(objective−based management system)によって実行される最適化プロセスの簡略化した例示的なフロー図を概略的に示す。 本開示の主題に従い、目的指向型管理システムによって実行される構成プロセスの例示的な操作アルゴリズムの簡略化したフロー図を概略的に示す。 本開示の主題のある例に従い、分散記憶システムに接続された例示的なコンピュータノードを概略的に示すブロック図である。 本開示の主題に従って、新しいデータパス関連プラグインを分散記憶システムのプラグイン層に導入するために実行される一連の動作の一例を示す流れ図である。 本開示の主題に従って、検証されていないデータパス関連プラグインを分散記憶システム上に配備するために実行される一連の動作の一例を示す流れ図である。 本開示の主題に従って、データパス関連プラグインに関するタスクを遂行するために実行される一連の動作の一例を示す流れ図である。 本開示の主題に従って、分散記憶システムの再構成を管理するために実行される一連の動作の一例を示す流れ図である。 本開示の主題に従って、データパス関連プラグインを検証するために実行される一連の動作の一例を示す流れ図である。
図および記載される記述において、同一の参照番号は、異なる実施形態または構成に共通する構成要素を示す。
特に指定のない限り、以下の説明から明らかなように、本明細書を通して、「作成する」、「受信する」、「コピーする」、「更新する」、「削除する」または同様のものなどの、用語を使用する説明は、データを操作し、かつ/または他のデータに変換するコンピュータの動作および/またはプロセスを含み、前記データは、例えば、電子量などの、物理量として表され、かつ/または前記データは、物理オブジェクトを表すことを理解されたい。用語「コンピュータ」は、データ処理機能をもつ任意の種類の電子装置を包含すると拡張的に解釈されるべきであり、限定されない例として、パーソナルコンピュータ、サーバー、コンピューティングシステム、通信装置、プロセッサ(例えば、デジタル信号プロセッサ(DSP)、マイクロコントローラ、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)など)、任意の他の電子計算機、およびまたはそれらの任意の組合せを含む。
本明細書の教示に従った動作は、所望の目的に対して特別に構築されたコンピュータによって、またはコンピュータ可読記憶媒体内に格納されたコンピュータプログラムにより所望の目的に対して特別に構成された汎用コンピュータによって、実行され得る。
本明細書では、句「例えば(for example)」、「などの(such as)」、「例えば(for instance)」およびそれらの変形は、本開示の主題の限定されない実施形態を記述する。本明細書における「1つの場合」、「ある場合」、「他の場合」またはそれらの変形の参照は、実施形態(複数可)に関連して記述される特定の特徴、構造または特性が、本開示の主題の少なくとも1つの実施形態に含まれることを意味する。従って、句「1つの場合」、「ある場合」、「他の場合」またはそれらの変形の出現は、必ずしも同じ実施形態(複数可)を参照しない。
明確にするために、別個の実施形態のコンテキストで説明される、本開示の主題のある特徴が、単一の実施形態に組み合わせても提供され得ることを理解されたい。逆に言えば、簡潔さのために、単一の実施形態のコンテキストで説明される、本開示の主題の様々な特徴が、別々に、または任意の適切な部分的組合せでも提供され得る。
本開示の主題の実施形態では、図2〜図4および図6〜図10に示されるものより少ない、多い、および/または異なる段階が、実行され得る。本開示の主題の実施形態では、図2〜図4および図6〜図10に例示する1つ以上の段階が、異なる順序で実行され得、かつ/または段階の1つ以上のグループが同時に実行され得る。図1および図5は、本開示の主題の実施形態に従った、システムアーキテクチャの概略図を示す。図1および図5における各モジュールは、本明細書で定義して説明する通りに機能を実行するソフトウェア、ハードウェア、および/またはファームウェアの任意の組合せで構成できる。図1および図5におけるモジュールは、1つの位置に集中され得るか、または2つ以上の位置にわたって分散され得る。本開示の主題の他の実施形態では、システムは、図1および図5に示すよりも少ない、多い、および/または異なるモジュールを含み得る。
これを念頭に置いて、図1に注目すると、図1は、本開示の主題に従って、インフラストラクチャ層を含む、分散記憶システムの最上位アーキテクチャを概略的に示している。本開示の主題の例によれば、分散記憶システム(DSS)200は、次の層:インフラストラクチャ層201、統一分散記憶プラットフォーム(UDSP)層202、およびAPI/フレームワーク層203、の1つ以上を含むことができる。
本開示の主題のいくつかの例によれば、インフラストラクチャ層201は、1つ以上の相互接続されたコンピュータノード205(例えば、とりわけ、1つ以上の処理装置などの1つ以上の処理資源、メモリなどの1つ以上のメモリ資源、および1つ以上のネットワークインタフェースを含む、任意のタイプのコンピュータ)、および、ある場合には、2つ以上の相互接続されたコンピュータノード205を含み得、これについては、とりわけ、図5を参照して、本明細書でさらに詳細な説明が提供される。インフラストラクチャ層201は、以下のストレージ関連資源:(a)データ記憶資源(例えば、データ記憶装置204、RAID(独立ディスクの冗長アレイ)206、DAS(ダイレクトアタッチトストレージ)208、JBOD(just a bunch of drives:単なる多数のドライブ)210、ネットワークストレージアプライアンス207(例えば、SAN、NASなど)、SSD 213など);(b)揮発性および/もしくは不揮発性の、メモリ資源(例えば、RAM、DRAMなど)などのキャッシュ資源212、ならびに/または、ある場合には、キャッシュ資源の追加もしくは代替として使用できる、データ記憶資源(例えば、SSD 213);(c)ネットワーク資源214;ならびに(d)DDS 200にさらなる機能を提供し、かつ/またはその性能を強化する追加の資源(圧縮アクセラレータ、暗号化アクセラレータ209、SAN資源との通信を可能にするホストバスアダプタ(HBA)など)、の1つ以上をさらに含み得る。
ある場合には、資源は、2つ以上の同じタイプの装置、および/または2つ以上の異なるタイプの装置を含み得る。資源のいくつかのさらに詳細な説明が、本明細書で以下に続く。
本開示の主題のいくつかの例によれば、コンピュータノード205は、ネットワーク(例えば、汎用ネットワーク)によって相互接続できる。
ある場合には、インフラストラクチャ層201の資源の1つ以上が、1つ以上のコンピュータノード205に直接接続できる。ある場合には、インフラストラクチャ層201の資源の1つ以上は、コンピュータノード205内に含まれて、その一部を形成することができる。ある場合には、インフラストラクチャ層201の資源の1つ以上は、ネットワーク(例えば、汎用ネットワーク)によって、コンピュータノード205の1つ以上に(例えば、iSCSI 222などの論理結合などにより)接続できる。
任意選択で、ネットワークは、汎用ネットワークにできる。任意選択で、ネットワークは、WANを含むことができる。任意選択で、WANは、例えば、インターネットなどの、グローバルWANにできる。任意選択で、ネットワーク資源は、IPネットワークインフラストラクチャを使用して相互接続できる。任意選択で、ネットワークは、ストレージエリアネットワーク(SAN)であり得る。任意選択で、ネットワークは、ストレージ仮想化を含むことができる。任意選択で、ネットワークは、LANを含むことができる。任意選択で、ネットワークインフラストラクチャは、イーサネット(登録商標)、インフィニバンド、FC(ファイバーチャンネル)217、FCoE(ファイバーチャネルオーバーイーサネット)など、または2つ以上のネットワークインフラストラクチャの任意の組合せを含むことができる。任意選択で、ネットワークは、汎用ネットワークおよび/またはストレージネットワークを含む、当技術分野で既知の任意のタイプのネットワークにできる。任意選択で、ネットワークは、本明細書でさらに説明するように、ネットワーク内の資源の割当ておよび管理のために、目的指向型管理システムの適用に適した任意のネットワークにできる。任意選択で、ネットワークは、(とりわけ、本明細書で開示するネットワークタイプを含む)任意の2つ以上のネットワークタイプの組合せにできる。
本開示の主題のいくつかの例によれば、インフラストラクチャ層201の少なくとも1つの資源(とりわけ、コンピュータノード205、データ記憶資源、キャッシュ資源、ネットワーク資源、コンピュータノード205に接続された追加の資源、または任意の他の資源を含む)は、ネットワークおよび/または1つ以上のコンピュータノード205に接続された、目的をもって構築された資源ではない、市販の商品であり得る。かかる資源は、例えば、製造業者、サイズ、計算能力、容量などの資源特性に関わらず、本明細書で詳述するように、相互接続できることに留意されたい。従って、コンピュータノード205と通信できる、任意の資源(とりわけ、コンピュータノード205を含む)は、その製造業者に関わらず、本明細書でさらに詳述するように、インフラストラクチャ層201に接続されて、DDS 200によって利用できる。ある場合には、任意の数の資源(とりわけ、コンピュータノード205を含む)が、ネットワークおよび/または1つ以上のコンピュータノード205に接続されて、DSS 200によって利用でき、従って、DSS 200の拡張性を可能にする。ある場合には、任意の数のコンピュータノード205がネットワークに接続でき、また任意の数の資源が1つ以上のコンピュータノード205に接続されて、DSS 200によって利用でき、従って、DSS 200の拡張性を可能にする。新しい資源(とりわけ、コンピュータノード205を含む)をDSS 200に接続するプロセスに関するより詳細な説明が、とりわけ、図5に関して、本明細書でさらに詳述されることに留意されたい。
UDSP層202を参照すると、本開示の主題のいくつかの例によれば、それは、コンピュータノード205の1つ以上の上にインストールする(または、別の方法でそれと関連付けるか、もしくはその中に含む)ことができる、1つ以上のUDSPエージェント220を含むことができる。ある場合には、UDSPエージェント220は、コンピュータノード205の各々上にインストールする(または、別の方法でそれと関連付ける)ことができる。ある場合には、UDSPエージェント220は、(とりわけ、本明細書でさらに詳述するように、プロトコル変換器として動作できる)ゲートウェイ資源216の1つ以上の上に、また、ある場合には、ゲートウェイ資源216の各々の上に、追加としてインストールする(または、別の方法でそれと関連付ける)ことができる。ある場合には、UDSPエージェント220は、クライアントサーバー218(例えば、クライアントとしてDSS 200に接続されたサーバーおよび/または他の装置)の1つ以上の上に、また、ある場合には、クライアントサーバー218の各々の上に、追加としてインストールする(または、別の方法でそれと関連付ける)ことができる。ある場合には、クライアントサーバー218は、任意選択である、任意のゲートウェイ資源216を必要とすることなく、DSS 200と直接やり取りできることに留意されたい。ある場合には、そのインストレーション位置またはその関連付けに従い、UDSPエージェント220に差(例えば、その機能および/またはその能力における差など)があり得る(例えば、コンピュータノード205上にインストールされたか、または別の方法でそれと関連付けられた、UDSPエージェント220、ゲートウェイ資源216上にインストールされたか、または別の方法でそれと関連付けられた、UDSPエージェント220、クライアントサーバー218上にインストールされたか、または別の方法でそれと関連付けられた、UDSPエージェント220、など、の間に差があり得る)ことにさらに留意されたい。
UDSPエージェント220の詳細な説明が本明細書で、とりわけ、図5に関して、提供されることに留意されたい。それでもやはり、本開示の主題のいくつかの例によれば、UDSPエージェント220は、DSS 200の様々な動作(とりわけ、インフラストラクチャ層201の資源の自動的な割当ておよび管理、データパス動作の処理などを含む)を制御および管理するように構成できることに留意されたい。ある場合には、UDSPエージェント220は、新しいコンピュータノード205の、DSS 200のインフラストラクチャ層201への接続を管理するように構成できる。ある場合には、UDSPエージェント220は、それらがインストールされているコンピュータノード205に接続された資源を検出して、かかる資源を管理するように構成できる。前述の通り、UDSPエージェント220のより詳細な説明が、本明細書で、とりわけ、図5に関して、提供される。
ある場合には、UDSP層202は、DSS 200に対する管理システムを含むUDSP 225を含み得る。任意選択で、管理システム処理は、インフラストラクチャ層201内のコンピュータノード205上にインストールされた1つ以上のUDSPエージェント220を通して、またはゲートウェイ資源216上、もしくは(例えば、直接および/またはゲートウェイ資源216を通じて)DSS 200へのアクセスを有するクライアントサーバー218上にインストールされた1つ以上のUDSPエージェント220を通して、またはそれらの任意の組合せで、実装できる。
管理システムは、ユーザーが、サービス水準仕様(SLS)と関連けることができる新しい論理記憶エンティティ(論理ユニット、オブジェクトストア、ファイルシステムインスタンスなど)の作成(ある場合には、各論理記憶エンティティが単一のSLSと関連付けられる)、論理記憶エンティティの更新、論理記憶エンティティのゲートウェイ資源216および/またはクライアントサーバー218へのアクセス許可の供与、スナップショットの作成、バックアップの作成、リモートサイトへのフェイルオーバー、プライマリサイトへのフェイルバック、DSS 200の動的挙動の監視、SLS順守の監視、DSS 200の異なる範囲(例えば、DSS 200全体、あるサイト、例えば、あるSLS、ある資源向けなどの、あるタイプの使用のレゾリューションで、など)を参照する、様々な(例えば、事前に定義された、および/またはユーザーが定義した)報告書(例えば、性能報告、資源可用性報告、在庫報告、コンピュータノード205と他の資源との間の関係を示す関係性報告、傾向報告、および主要業績評価指標を含む様々なパラメータの予測報告など)の生成、DSS 200によって提供された様々なアラートの管理(例えば、故障したハードウェアのアラートなど)などの、DSS 200に関する様々な管理タスク(とりわけ、監視および報告のタスクを含む)を実行するのを可能できる。前述の管理タスクは、限定されない例としてのみ提供されることに留意されたい。ある場合には、論理記憶エンティティが、本明細書でさらに詳述されるように、DSS 200によりSLSに従って自動的に作成できることに留意されたい。論理記憶エンティティの各々が、1つ以上のデータ記憶資源と関連付けられ得ることに留意されたい。
本明細書を通して、ユーザーが参照される場合、これは、システム管理者などの人間のオペレータ、または任意のタイプの補助エンティティを指し得ることに留意されたい。補助エンティティは、例えば、いかなる人間の介入も必要としない補助エンティティを含め、外部管理システムなどの、外部アプリケーションを指し得る。
ある場合には、管理システムは、ユーザーがDSS 200に満足することを要求する様々な要件を指定する、サービス水準仕様(SLS)を定義するユーザー定義のストレージ要件をもつ、DSS 200を、ユーザーが提供するのを可能にできる。ある場合には、SLSは、論理記憶エンティティと関連付けられ得る。任意選択で、SLSは、例えば、データが格納され、かつ/または処理される、1つ以上の地理的位置の指定;可用性、保持、復旧パラメータ(例えば、RPO−目標復旧時点、RTO−目標復旧時間)を定義するローカル保護レベル;情報を保持すべき期間を定義するバックアップ保持ポリシー;様々な災害シナリオ下で、指定された可用性、保持および復旧の目標を達成するために1つ以上のリモートの地理的位置を定義する災害復旧(DR)に対するリモート保護レベル;ローカルおよび/またはリモート複製ポリシー;IOPS(秒あたりの入力/出力動作)、応答時間、およびスループットなどの測定基準を使用して定義される(任意選択で、コミットされる)性能レベル;暗号化要件;重複排除要件;圧縮要件;記憶方法(物理的容量、シン容量/プロビジョニング)などの情報を含み得る。
ある場合には、管理システムは、様々なサービス水準グループ(SLG)の管理(作成、更新および削除を含む)を可能にできる。SLGは、複数の論理記憶エンティティ間で共有できるテンプレートSLSである。SLGは、(増強を必要とする)部分的なSLSであり、かつ/または上書きできる設定を含み得る。従って、例えば、SLGは、その各々がSLSパラメータを追加し、かつ/または上書きできる、様々なSLSによって継承できる、様々な復旧パラメータのみを定義できる。
本開示の主題のいくつかの例によれば、UDSP 225は、DSS 200内の資源を割り当て、資源を管理するための自動管理システムを含み得る。任意選択で、自動管理システムは、とりわけ、図2および図5に関して、本明細書でさらに詳述されるように、ネットワーク内の資源を、とりわけ、1つ以上のサービス水準仕様(SLS)によって定義されるユーザー定義要件、コンピュータノード205および/またはそれに接続された資源に関する様々なパラメータのデータ、DSS 200またはその一部を参照する様々なパラメータのデータ(例えば、最大限許容されるサイトレベルのオーバーコミット、最大限許容される全体的なオーバーコミット、様々なセキュリティパラメータなど)ならびにDSS 200および環境(例えば、クライアントサーバー218、ゲートウェイ資源216など)の動的挙動を参照する様々なパラメータのデータ、のうちのいずれか1つ、もしくはそれらの任意の組合せに基づき、割り当てて管理するように構成できる、目的指向型管理システム(OBMS)100である。任意選択で、OBMS 100処理は、インフラストラクチャ層201内のコンピュータノード205の1つ以上の上にインストールされた1つ以上のUDSPエージェント220を通して、またはゲートウェイ資源216上、もしくは(例えば、直接またはゲートウェイ資源216を通じて)DSS 200へのアクセスを有するクライアントサーバー218上にインストールされた1つ以上のUDSPエージェント220を通して、またはそれらの任意の組合せで、実装できる。
本開示の主題のいくつかの例によれば、API/フレームワーク層203は、DSS 200へのソフトウェア拡張(プラグイン)の追加を容易にするプラグイン層を含む。かかるプラグインは、例えば、プロセスのデータへの適用、新しい機能および特徴のDSS 200への導入、DSS 200の特定のアプリケーションとのインタフェース接続およびアプリケーション固有タスク(例えば、ストレージ関連タスクなど)の実装、様々な資源固有ドライバの実装、(例えば、プラグイン機能および/または目標に関する)新しいSLSパラメータおよび/またはパラメータグループ(複数可)の導入、管理機能の導入など、のために、利用できる。ある場合には、プラグイン層は、様々なハードウェア構成要素(例えば、暗号化カードなど)と関連付けられたドライバも含み得る。
ある場合には、プラグインは、1つ以上のUDSPエージェント220上に配備できる。ある場合には、プラグインは、例えば、プラグイン仕様に従って(例えば、ソフトウェア暗号化プラグインが任意のUDSPエージェント220上にインストールできる)、その上にUDSPエージェント220がインストールされるコンピュータノード205および/もしくはゲートウェイ資源216および/もしくはクライアントサーバー218に接続された様々な資源に従って(例えば、ハードウェアアクセラレータプラグインが、かかるハードウェアアクセラレータと関連付けられたコンピュータノード205と関連付けられた各UDSPエージェント220上に自動的に配備できる)、自動管理システム(例えば、OBMS 100)の判断に従って、またはシステム管理者の選択に従ってなど、1つ以上のUDSPエージェント220上に配備できる。ある場合には、プラグインは、例えば、自動管理システム(例えば、OBMS 100)により、および/またはコンピュータノード205により、自動的に配備できる。任意選択で、ソフトウェア拡張は、例えば、DDS 200上に格納されたデータの、例えば、重複排除を可能にするデータ重複排除プラグイン、DSS 200上に格納されたデータの、例えば、暗号化/復号を可能にするデータ暗号化プラグイン、DSS 200上に格納されたデータの、例えば、圧縮/解凍を可能にするデータ圧縮プラグインなどの、データ処理プラグイン226を含むことができる。任意選択で、ソフトウェア拡張は、例えば、DDS 200上に格納されたデータの、例えば、インデックス付けを可能にするコンテンツインデックス付けプラグイン、DDS 200上に格納されたデータのスナップショットの管理を可能にするスナップショット管理プラグイン、DDS 200上に格納されたデータの、例えば、階層化を可能にする階層化管理プラグイン、例えば、災害復旧に関連したプロセス、ポリシーおよび手続きの管理を可能にする災害復旧プラグイン、DDS 200上に格納されたデータの、例えば、連続した、またはリアルタイムのバックアップの管理を可能にする連続データ保護プラグインなどの、ストレージ機能プラグイン228を含むことができる。任意選択で、ソフトウェア拡張は、例えば、クエリー処理の加速を可能にするデータベースプラグイン、例えば、様々なDSS 200管理タスクの実行ならびにユーザー、クライアントサーバー218、およびDSS 200に接続された他のエンティティとの他のやり取りを可能にする管理プラグイン233、ならびに他の適切なアプリケーションプラグインなどの、アプリケーションプラグイン230を含むことができる。あるプラグインは、上で定義した様々なプラグインの2つ以上の機能を実装できることに留意されたい。
本明細書に示すように、ある場合には、プラグインは、(例えば、プラグイン機能および/または目標に関する)新しいSLSパラメータおよび/またはパラメータグループ(複数可)を導入できる。かかる場合には、プラグイン機能に従って、それぞれのSLSパラメータおよび/またはパラメータグループ(複数可)がDSS 200に導入できる。かかる導入されたSLSパラメータは、例えば、ユーザーによって、および/または自動管理システム(例えば、OBMS 100)によって自動的に、など、プラグイン関連要件を設定するために使用できる。
ある場合には、ソフトウェア拡張は、コンピュータノード205の1つに格納できるか、または2つ以上のコンピュータノード205上に分散できる。ある場合には、ソフトウェア拡張は、1つ以上のコンピュータノード205に接続された1つ以上のデータ記憶資源上に格納できる。ある場合には、ソフトウェア拡張は、UDSPエージェント220によって共有できる仮想ソフトウェア拡張ライブラリ内に格納できる。
ある場合には、ソフトウェア拡張は、自動的に、および/または(例えば、システム管理者によって)手動で、管理できる。かかる管理は、時々、管理プラグイン233を利用することにより実行できる。かかる場合、管理プラグイン233は、ソフトウェア拡張のDSS 200への追加/DSS 200からの除去、様々なソフトウェア拡張の1つ以上のUDSPエージェント220への追加/1つ以上のUDSPエージェント220からの除去、などを可能にできる。
DSS 200の最上位アーキテクチャの記述に続いて、目的指向型管理システム(OBMS)100によって実行できるDSS 200構成プロセスの詳細な記述がここで提供される。この目的のために、ここで図2に注目すると、本開示の主題に従って、分散記憶システム200を構成するための簡略化した例示的なシステムが示されている。この目的のため、OBMS 100は、とりわけ、インフラストラクチャ層201内の資源を自動的に割り当てて管理するように構成できる。OBMS 100は、入力モジュール102、1つ以上のプロセッサ104、および出力モジュール106を含み得る。
ある場合には、入力モジュール102が、入力データを受信するように構成できる。かかる入力データは、とりわけ、1つ以上のサービス水準仕様(SLS)によって定義されるユーザー定義のストレージ要件、1つ以上の論理記憶エンティティの定義、コンピュータノード205および/またはそれに接続された資源(ストレージ関連資源データとも呼ばれる、ストレージ関連資源を含む)に関する様々なパラメータのデータ、DSS 200またはその一部を参照する様々なパラメータのデータ(例えば、最大限許容されるサイトレベルのオーバーコミット、最大限許容される全体的なオーバーコミット、様々なセキュリティパラメータなど)、DSS 200および環境(例えば、クライアントサーバー218、ゲートウェイ資源216など)の動的挙動(動的挙動パラメータデータ)に関する様々なパラメータのデータなど、のうちの任意の1つ、またはそれらの任意の組合せを含み得る。
ある場合には、ユーザー定義の要件は、一人以上のユーザーが、DSS 200および/または1つ以上の論理記憶エンティティが満足するのを要求する、様々な要件を指定する1つ以上のサービス水準仕様(SLS)を定義できる。
ある場合には、DSS 200および環境の動的挙動に関する様々なパラメータのデータ(動的挙動パラメータデータ)は、DSS 200構成要素(コンピュータノード205およびそれに接続された資源を含む)の1つ以上の現在の状態を示す様々なパラメータデータを含み得る。かかるデータは、1つ以上コンピュータノード205、1つ以上のゲートウェイ資源216、1つ以上クライアントサーバー218などに関するデータを含む、資源の1つ以上に関する、存在および/もしくは負荷および/もしくは可用性および/もしくは障害および/もしくは機能および/もしくは応答時間(複数可)および/もしくは接続性および/もしくは費用(複数可)(例えば、ネットワークリンク、異なるタイプのデータ記憶資源の費用)のデータならびに/または任意の他のデータを含み得る。ある場合には、かかるデータは、とりわけ、様々な統計データを含み得る。
ある場合には、コンピュータノード205および/またはそれに接続された資源(ストレージ関連資源データとも呼ばれる、ストレージ関連資源を含む)に関する様々なパラメータのデータは、ストレージ関連資源を含む、ハードウェア資源を含む、DSS 200の資源を示す様々なパラメータのデータを含み得、例えば、以下などである:
a.データ記憶資源に関するパラメータ(例えば、そのハードウェアドライブの各々に対して)
1.ハードドライブカテゴリパラメータ(例えば、ハードドライブサイズ、インタフェース(例えば、SAS、SATA、FC、Ultra−SCSIなど)、キャッシュサイズ、特殊機能(例えば、オンドライブ暗号化など)など);
2.ハードドライブ性能パラメータ(例えば、応答時間、平均待ち時間、ランダムシーク時間、データ転送速度など);
3.ハードドライブ電力消費;
4.ハードドライブ信頼性パラメータ(例えば、平均故障間隔(MTBF)、年間平均故障率(AFR)など)。
b.コンピュータノード205パラメータ:
1.CPUおよびCPU当たりのコアの数。
2.周波数、L2およびL3キャッシュサイズなどの、各CPUおよび/またはコアの性能パラメータ。
3.アーキテクチャ(例えば、CPUおよび/またはコアが64ビットコンピューティングをサポートするか、それはリトルエンディアンかビッグエンディアンか)
4.ある命令セットに対するサポート(例えば、AES−NI、AES暗号化を加速するための新しい命令セット)。
5.利用可能なハードドライブスロットの数;
6.利用可能な記憶インタフェース(SATA、SASなど);
7.メモリの最大容量;
8.サポートされるメモリ構成;
c.キャッシュ資源パラメータ:
1.キャッシュ資源のタイプ(例えば、DRAM、SSD)、サイズおよび性能。
2.キャッシュされた記憶空間がローカルかリモートか。
3.NUMAパラメータ。
d.ゲートウェイ資源パラメータ:
1.CPUおよびCPU当たりのコアの数。
2.周波数、L2およびL3キャッシュサイズなどの、各CPUおよび/またはコアの性能パラメータ。
3.アーキテクチャ(例えば、CPUおよび/またはコアが64ビットコンピューティングをサポートするか、それはリトルエンディアンかビッグエンディアンか)
4.ある命令セットに対するサポート(例えば、AES−NI、AES暗号化を加速するための新しい命令セット)。
5.筐体内で利用可能なハードドライブスロットの数;
6.利用可能な記憶インタフェース(SATA、SASなど);
7.メモリの最大容量;
8.サポートされるメモリ構成;
9.ゲートウェイに関するネットワークパラメータ(ポートの数、各ポートの速度およびタイプなど)
e.ネットワーク資源パラメータ:
1.スイッチングおよびルーティング機能;
2.ネットワークタイプ;
3.セキュリティパラメータ。
これらは例に過ぎず、追加および/または代替の様々なパラメータが使用できることに留意されたい。
ある場合には、DSS 200および環境の動的挙動に関するデータ(動的挙動パラメータデータ)は、ハードウェア資源を含む、DSS 200の資源を示す様々なパラメータを含み得、例えば、以下のとおりである:
a. データ記憶資源に関するパラメータ(例えば、そのハードドライブの各々に対して):
1.ハードドライブ空き容量。
2.ハードドライブのS.M.A.R.T.パラメータ。
3.ハードドライブの電力状態(電源オフ、スピンアップフェーズ、作動可能など)
4.ハードドライブ上の最近および現在の負荷
5.既存の割当ておよび予約。
b.コンピュータノード205パラメータ:
1.各コアに対する最近および現在の負荷統計。
2.既存の割当ておよび予約。
3.メモリの現在の容量。
c.キャッシュ資源パラメータ:
1.利用可能なサイズ。
2.キャッシュの占有レベル。
3.最近および現在のスワッピング/ページフォールト統計。
4.既存の割当ておよび予約。
d.ゲートウェイ資源パラメータ:
1.最近および現在のネットワーク接続統計。
2.最近および現在のノード負荷統計。
3.最近および現在の待ち時間統計。
4.(ゲートウェイによってDSS内にルーティングされるコマンドに対する)最近および現在のルーティング費用統計。
5.既存の割当ておよび予約。
e.ネットワーク資源パラメータ:
1.ネットワークセグメントの最近および現在の負荷。
2.ネットワークセグメントの最近および現在の信頼性および品質パラメータ。
3.既存の割当ておよび予約。
これらは例に過ぎず、追加および/または代替の様々なパラメータが使用できることに留意されたい。
ある場合には、入力モジュール102は、入力データを1つ以上のプロセッサ104に転送するように構成できる。図のように、OBMS 100処理は、(例えば、とりわけ、図5を参照して本明細書でさらに詳述されるように、目的指向型構成モジュール380を利用しながら)1つ以上のUDSPエージェント220を通して、例えば、インフラストラクチャ層201内のコンピュータノード205の1つ以上にインストールされたUDSPエージェント220を通して、または1つ以上のゲートウェイ資源216上にインストールされたUDSPエージェント220を通して、または(例えば、直接またはゲートウェイ資源216を通じて)DSS 200へのアクセスを有する1つ以上のクライアントサーバー218上にインストールされたUDSPエージェント220を通して、またはそれらの任意の組合せで、実装できる。かかる場合、1つ以上のプロセッサ104は、かかるUDSPエージェント220と関連付けられた1つ以上の処理資源(例えば、処理装置)であり得る(例えば、処理が、コンピュータノード205上にインストールされたUDSPエージェント220を通して実装される場合、プロセッサはそのコンピュータノード205の処理装置であり得る、など)。例えば、並列処理および/または分散処理の場合には、2つ以上処理資源(例えば、処理装置)が使用できることに留意されたい。
1つ以上のプロセッサ104が、入力モジュール102から入力を受信して、DSS 200の一人以上のユーザーによって提供されるユーザー定義のストレージ要件(例えば、SLS)の全てを満足する構成要件を、とりわけ、それらが影響を及ぼすエンティティ(かかるSLSと関連付けられた論理記憶エンティティなど)に関して、判断するために、その入力データに基づき最適化プロセスを実行するように構成できる。最適化プロセスおよび判断された構成要件のより詳細な説明が、とりわけ、図3に関連して本明細書で提供される。
構成要件が、出力モジュール106に転送され得、出力モジュール106は、ある場合には、現在のDSS 200資源が判断された構成要件を満足するのに十分であるかを判断できる。それに応じて、出力モジュール106は、ソリューション駆動型動作を実行するように構成され得、ソリューション駆動型動作は、構成要件がシステムによって満足できる場合には、資源の割当て、予約、コミットもしくはオーバーコミット(例えば、インフラストラクチャ層201内で利用可能な実際の資源よりも多い資源を仮想的に割り当てること)、または資源の追加および/もしくはプラグインの追加および/もしくはシステムが構成要件を満足するのを可能にするための任意の他の推奨を含み得る、ユーザーによって実行されるべき改善のための推奨を発行することを含む。かかる改善のための推奨は、例えば、1つ以上の資源を追加すること、1つ以上のプラグインを追加もしくはアップグレードすること、インフラストラクチャを追加の、および/もしくは(ローカルおよび/もしくはリモートの)異なる位置にわたって広げることなど、の推奨を含み得る。
ある場合には、構成プロセス、またはその一部は、DSS 200および/もしくは1つ以上の論理記憶エンティティを最初に配備する際に、ならびに/またはDSS 200および/もしくは1つ以上の論理記憶エンティティに適用された1つ以上の変更(例えば、事前定義された変更)(例えば、コンピュータノード205、キャッシュ資源、データ記憶資源、ネットワーク資源、プラグインまたはDSS 200に対する任意の他の資源などの資源の追加/除去;1つ以上のユーザー定義のストレージ要件における変更;など)に続いて、ならびに/またはDSS 200の動的挙動(とりわけ、図5および図9に関して、以下でさらに詳述される)に従って、ならびに/または1つ以上の新しいプラグインの導入に続いて、ならびに/または0以上の既存のプラグインの更新に続いてなど、開始できることに留意されたい。追加または代替として、構成プロセス、またはその一部は、半連続的な方法で(例えば、所定の時間間隔で、など)開始できる。追加または代替として、構成プロセス、またはその一部は、連続して実行できる。
図2を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または2、3のブロックに分解でき、かつ/または他のブロックが追加され得ることにさらに留意されたい。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
ここで図3に注目すると、本開示の主題に従い、目的指向型ストレージ管理システムによって実行される最適化プロセスの簡略化した例示的なフロー図が概略的に示されている。ある場合には、1つ以上のプロセッサ104が、入力データを(例えば、入力モジュール102から)受信し、ある場合には、受信した入力データを、最適化エンジンによる処理に適したフォーマットに(例えば、最適化問題表現に)変換するように構成され得る(ブロック112)。
1つ以上のプロセッサ104と関連付けられた最適化エンジンは、(とりわけ、図2に関して、本明細書でさらに詳述されるように)入力データによって定義されたような要件を満足する必要な構成に達するために、元の、および/または変換された入力データに基づいて、最適化プロセスを実行するように構成され得る(ブロック114)。ある場合には、最適化プロセスは、それが見つけた第1の有効なソリューションを返すように指示され得るが、他方、他の場合には、最適化プロセスは、計算された有効なソリューションのセットから最適なソリューションを検索するように指示され得ることに留意されたい。任意選択で、最適化プロセスで使用される最適化技術は、線形計画法、焼き鈍し法、遺伝的アルゴリズム、または当技術分野で既知の任意の他の適切な最適化技術のいずれか1つ、またはその任意の組合せを含み得る。任意選択で、最適化技術は、発見的問題解決法および/または近似値を利用できる。任意選択で、最適化判断は、部分的な、および/または最新ではない情報に基づいて、行うことができる。
ある場合には、最適化エンジンの出力は、1つ以上のプロセッサ104により、最適化ソリューション表現から構成要件表現に変換できる(ブロック116)。
ある場合には、構成要件は、1つ以上のプロセッサ104により、以下のいずれか1つ、またはその任意の組合せとして、出力される:位置要件(例えば、少なくとも1つの追加のサイトの可用性、追加のサイト(複数可)内のある容量の記憶空間の可用性、サイト間の最大限の待ち時間、例えば、災害復旧目的でのサイト間の最小限の地理的距離など)、キャッシュ資源要件(例えば、必要なキャッシュサイズ、必要なキャッシュタイプ、必要なキャッシュ位置、必要なキャッシュ性能パラメータなど)、ゲートウェイ資源要件(例えば、必要なファイバーチャネル帯域幅、必要な処理性能パラメータなど)、ネットワーク資源要件(例えば、必要なネットワーク帯域幅、必要なネットワークタイプなど)、コンピューティング資源要件(例えば、コンピュータノードの処理性能パラメータ、コンピュータノードのCPUコア数など)、データ記憶資源要件(例えば、必要な記憶容量、必要な記憶装置タイプなど)、追加の資源要件(例えば、必要な圧縮性能、必要な暗号化性能など)、プラグイン要件(例えば、必要なデータベースプラグインなど)、環境要件(例えば、必要な物理的セキュリティレベルなど)など(ブロック117)。
図3を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または2、3のブロックに分解でき、かつ/または他のブロックが追加され得ることに留意されたい。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
図4を参照すると、本開示の主題に従い、目的指向型管理システムによって実行される構成プロセスの例示的な操作アルゴリズムの簡略化したフロー図を概略図が示されている。ある場合には、前述のように、入力モジュール102が入力データを受信し、そのデータを1つ以上のプロセッサ104に転送できる(ブロック110)。さらに前述されているように、1つ以上のプロセッサ104は、ある場合には、入力データを、最適化エンジンによる処理に適したフォーマットに(例えば、最適化問題表現に)変換できる(ブロック112)。
1つ以上のプロセッサ104と関連付けられた最適化エンジンは、(とりわけ、図2に関して、本明細書でさらに詳述されるように)入力データによって定義されたような要件を満足する必要な構成に達するために、元の、および/または変換された入力データに基づいて、最適化プロセスを実行するように構成できる(ブロック114)。ある場合には、最適化エンジンの出力は、1つ以上のプロセッサ104により、最適化ソリューション表現から構成要件表現に変換できる(ブロック116)。
ある場合には、出力モジュールは、DDS 200が必要な構成を満足できるかを判断するために、必要な構成を、DDS 200資源(例えば、コンピュータノード205、ストレージ関連資源など)の実際のデータおよび/または環境と比較できる(ブロック118)。ある場合には、実際のDSS 200資源は、現在利用可能なDSS 200資源の部分を参照し得ることに留意されたい。実際のDSS 200資源および/または環境が必要な構成を満足できる場合、OBMS 100は、その必要な構成に従って資源を予約し、かつ/または割り当てるように構成できる(ブロック126)。ある場合には、OBMS 100は、DSS 200構成を設定し、かつ/または任意の誘起された配備動作を実行するように構成できる(ブロック128)。ある場合には、設定および/または配備動作は、とりわけ、SLSと関連付けられた新しい論理記憶エンティティ(論理ユニット、オブジェクトストア、ファイルシステムインスタンスなど)を自動的に作成することを含み得る。ある場合には、各論理記憶エンティティは、単一のSLSと関連付けられる。ある場合には、配備動作は、1つ以上のプラグインの1つ以上のUDSPエージェント220上への配備(例えば、インストレーション)を含み得る。
ストレージ構成の設定および/または任意の誘起された配備動作の実行の一部として、関連した設定および/または配備動作要求がUDSPエージェント205に送信でき;ある場合には、かかる要求が、要求された設定および/または配備動作に適したストレージ関連資源と関連付けられたUDSPエージェント205に送信される。ある場合には、かかる要求を受信するUDSPエージェント205は、とりわけ、図5に関連して以下でさらに詳述されるように、DSS 200によって使用されるように要求された設定および/または配備に関して、それと関連付けられたデータリポジトリを更新するように構成できる。ある場合には、配備に続いて、DSS 200を配備するプロセスが無事に終了する(ブロック130)。
実際のDSS 200資源および/または環境が必要な構成を満足できない場合、OBMS 100は、メッセージをユーザー(例えば、システム管理者)に送信して、失敗通知および/または必要なインフラストラクチャ構成の実装を可能にするためにユーザーによって取られるべき是正動作に関する推奨をユーザーに提供するように構成できる(ブロック120)。任意選択で、動作は、構成のうまくいく計算を可能にするインフラストラクチャ資源を追加することを含み得る。任意選択で、動作は、適切なプラグインを追加することを含み得る。任意選択で、動作は、インフラストラクチャ資源を追加および/または代替の位置にわたって広げることを含み得る。本明細書で開示する推奨は例に過ぎず、他の推奨が追加または代替としてユーザーに発行できることに留意されたい。ある場合には、OBMS 100は、必要なインフラストラクチャ構成が、任意選択で、ある間隔/遅延の後に、再評価されるべきか、否かに関して、判断を行うように構成できる(ブロック122)。yesの場合、OBMS 100は、ブロック112に戻るように構成できる。任意選択で、連続モードに設定された場合、出力モジュール106は、任意選択で、ある間隔/遅延の後に、自動的に112に進む。任意選択で、再試行するか否かの判断は、再試行命令のユーザー入力に基づく。noの場合、DSS 200を配備するプロセスは失敗した。ある場合には、OBMS 100は、失敗を報告するように構成できる。
図4を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または2、3のブロックに分解でき、かつ/または他のブロックが追加され得ることに留意されたい。さらに、ある場合には、ブロックは、本明細書で説明される順序とは異なる順序で実行できる。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
図5〜図10の説明を始める前に、図5〜図8および図10に関して開示される主題は、例示のみ目的を目的として、分散記憶システムを参照して説明されることに留意されたい。図5〜図8および図10に関して開示される主題は、決して、分散記憶システムに制限されず、変更すべきところは変更して、当技術分野で既知の記憶システムを含む、任意のタイプの記憶システム上で実装できることが強調される。
ここで図5に注目すると、本開示の主題のある例に従い、分散記憶システムに接続された例示的なコンピュータノードを概略的に示すブロック図が示されている。
本開示の主題のいくつかの例によれば、コンピュータノード205は、1つ以上の処理資源310を含み得る。1つ以上の処理資源310は、処理装置、マイクロプロセッサ、マイクロコントローラ、または、複数の、および/もしくは並列および/もしくは分散処理装置を含む、任意の他のコンピューティング装置もしくはモジュールであり得、それらは、関連したコンピュータノード205資源および/またはコンピュータノード205に接続されたストレージ関連資源を制御するため、ならびにコンピュータノード205資源および/またはコンピュータノード205に接続されたストレージ関連資源に関連した動作を可能にするために、独立して、または協調してデータを処理するように適合される。
コンピュータノード205は、コンピュータノード205が、とりわけ、他のコンピュータノードおよび/またはDSS 200に接続された他の資源と通信するのを可能にするために、1つ以上のネットワークインタフェース320(例えば、ネットワークインタフェースカード、または任意の他の適切な装置)をさらに含むことができる。
本開示の主題のいくつかの例によれば、コンピュータノード205は、とりわけ、SLSを定義する様々なユーザー定義のストレージ要件のデータ、ならびに/または各SLSと関連付けられた論理記憶エンティティのデータ、ならびに/またはコンピュータノード205および/もしくはそれに接続されたストレージ関連資源に関する様々なパラメータのデータ、ならびに/またはDSS 200もしくはその一部を参照する様々なパラメータに関するデータ、ならびに/またはDSS 200および環境(例えば、クライアントサーバー218、ゲートウェイ資源216など)の動的挙動に関するデータ、ならびに/またはDSS 200の設定および/もしくは配備に関するデータ、ならびに/または任意の他のデータを含む、データを格納するように構成された、UDSPデータリポジトリ330と関連付けられ得る。ある場合には、UDSPデータリポジトリ330は、格納されたデータの取得、更新および削除を可能にするようにさらに構成できる。ある場合には、UDSPデータリポジトリ330は、コンピュータノード205上にローカルに、コンピュータノード205に接続されたストレージ関連資源(例えば、データ記憶資源、キャッシュ資源、または任意の他の適切な資源)上、クライアントサーバー218上、ゲートウェイ資源216上、または任意の他の適切な位置に配置できることに留意されたい。ある場合には、UDSPデータリポジトリ330は、2つ以上の位置の間で分散できる。ある場合には、UDSPデータリポジトリ330は、追加または代替として、DSS 200内の1つ以上の論理記憶エンティティ上に格納できる。ある場合には、追加または代替として、UDSPデータリポジトリ330は、複数のコンピュータノード間で共有できる。
本開示の主題のいくつかの例によれば、コンピュータノード205は、例えば、1つ以上の処理資源310によって実行できるUDSPエージェント220をさらに含み得る。前述のように、UDSPエージェント220は、とりわけ、コンピュータノード205および/またはDSS 200の様々な動作を制御および管理するように構成できる。UDSPエージェント220は、次のモジュール:タスク管理モジュール335、プラグイン管理モジュール340、SLS監視モジュール345および目的指向型構成モジュール390、の1つ以上を含むことができる。
本開示の主題のいくつかの例によれば、タスク管理モジュール335は、とりわけ、図8に関して、さらに詳述するように、データパス動作(例えば、読取り/書込み動作)などの、受信したタスクを管理するように構成できる。
本開示の主題のいくつかの例によれば、プラグイン管理モジュール340は、とりわけ、図6〜図7に関して、本明細書でさらに詳述するように、新しいプラグインのDSS 200への導入およびかかるプラグインの配備を可能にするように構成できる。ある場合には、プラグイン管理モジュール340は、とりわけ、図10に関して、本明細書でさらに詳述するように、プラグインを有効にするようにさらに構成できる。
本開示の主題のいくつかの例によれば、目的指向型構成モジュール390は、とりわけ、図9に関して詳述するように、DSS 200を構成および/または再構成するように構成できる。
1つ以上の処理資源310は、UDSPエージェント220およびその中に含まれるモジュールのいずれかを実行するように構成できることに留意されたい。
本開示の主題のいくつかの例によれば、UDSPエージェント220モジュールの一部または全部が結合されて、単一のモジュールとして提供できるか、または例として、それらのうちの少なくとも1つが、2つ以上のモジュールの形で実現できることに留意されたい。ある場合には、UDSPエージェント220は、追加または代替として、1つ以上のゲートウェイ資源216および/またはクライアントサーバー218上などにインストールできることにさらに留意されたい。ある場合には、UDSPエージェント220の一部または修正されたバージョンが、1つ以上のゲートウェイ資源216および/またはクライアントサーバー218などにインストールでき、かつ/またはそれによって使用できる。
図6に注目すると、本開示の主題に従って、新しいデータパス関連プラグインを分散記憶システムのプラグイン層に導入するために実行される一連の動作の一例を示す流れ図が示されている。
本開示の主題のいくつかの例によれば、UDSPエージェント220が(例えば、プラグイン管理モジュール340を利用して)、新しいデータパス関連プラグイン導入プロセス400を実行するように構成できる。この目的のため、UDSPエージェント220は、DSS 200に導入される新しいデータパス関連プラグインを受信するように構成できる(ブロック410)。ある場合には、かかる新しいデータパス関連プラグインは、任意のエンティティによって開発された任意のソフトウェア拡張であり得ることに留意されたい。ある場合には、かかる新しいデータパス関連プラグインが、とりわけ、DSS 200に対するソフトウェア拡張を開発するために特別に設計された専用のアプリケーションプログラミングインタフェース(API)を使用して開発できることにさらに留意されたい。
データパスは、論理記憶エンティティと関連付けられたデータおよび/またはメタデータに関連した動作を実行する場合に行われる1つ以上の動作の集合であることに留意されたい。1つ以上の動作の集合(例えば、圧縮、重複排除、暗号化など)は、データパス仕様によって定義できる。
ある場合には、UDSPエージェント220は、DSS 200によって使用できる1つ以上のプラグインを含むプラグインプールに、新しいデータパス関連プラグインを導入するようにさらに構成できる(ブロック420)。
任意選択で、ある場合には、新しいデータパス関連プラグインをプラグインプールに導入する前に、UDSPエージェント220は、そのプラグインがある要件を満足すること(例えば、それが、認可されたエンティティによって開発されたこと、その目的が認可されること、プラグインの独自の要件(例えば、UDSPエージェント220上でのある資源の存在)が、それをそれぞれの論理記憶エンティティに対して配備した後に満足されること、など)を検証するように構成できることに留意されたい。
図6を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または2、3のブロックに分解でき、かつ/または他のブロックが追加され得ることに留意されたい。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
図7は、本開示の主題に従って、検証されていないデータパス関連プラグインを分散記憶システム上に配備するために実行される一連の動作の一例を示す流れ図である。
本開示の主題のいくつかの例によれば、UDSPエージェント220は(例えば、プラグイン管理モジュール340を利用して)、論理記憶エンティティに対する検証されていないデータパス関連プラグインの配備プロセス500を実行するように構成できる。この目的のために、UDSPエージェント220は、1つ以上の論理記憶エンティティに対して配備される検証されていないデータパス関連プラグインの指示を受信するように構成できる(ブロック510)。
ある場合には、指示は、プラグインプール内の利用可能なプラグインのリストからの所望の検証されていないデータパス関連プラグインのユーザー(例えば、システム管理者など)選択を通して受信できることに留意されたい。ある場合には、ユーザー(例えば、システム管理者など)が選択できるリストは、(例えば、論理記憶エンティティと関連付けられたSLSに従って、DSS 200内の利用可能な資源に従って、選択するユーザーのある分類に従って、など)各論理記憶エンティティに対して配備できるプラグインのみを含むようにフィルタ処理できる。
UDSPエージェント220は、任意選択で、それが配備される各論理記憶エンティティに対して、それに対して指示されたプラグインの配備が、それぞれの論理記憶エンティティと関連付けられたそれぞれのSLSの違反を引き起こす(または、例えば、事前に定義された閾値などに従って、かかる違反に近い)かどうかをチェックするようにさらに構成できる(ブロック520)。
ある場合には、UDSPエージェント220は、(ある論理記憶装置に対して)プラグインを配備することの、その1つ以上のSLS関連パラメータへの予測される影響に関するデータを利用するように構成できることに留意されたい。ある場合には、かかるデータは、それぞれのプラグインの以前の配備から導出された知識に基づき、様々な既知の統計的方法および技術(例えば、統計的仮定など)を使用して計算できる。
論理記憶エンティティのいずれかに対して指示されたプラグインの配備が、それぞれの論理記憶エンティティと関連付けられたそれぞれのSLSの違反を引き起こす(または、例えば、事前に定義された閾値などに従って、かかる違反に近い)場合、UDSPエージェント220は、それぞれの論理記憶装置が関連付けられるユーザー(例えば、システム管理者など)に適切な通知を提供するように構成できる(ブロック530)。
任意選択で、UDSPエージェント220は、追加または代替として、DSS 200の再構成が、それぞれの論理記憶エンティティと関連付けられたそれぞれのSLSに違反する(または、例えば、事前に定義された閾値などに従って、かかる違反をしそうになる)ことなく、プラグインの配備を可能にできるように構成できる。この目的のため、UDSPエージェント220は、とりわけ、図9に関連して、本明細書でさらに詳述される、再構成プロセス700を、変更すべきところは変更して(例えば、現在の構成を利用する代わりに、プラグインの配備から生じた構成を利用できる)、実行するように構成できる。
論理記憶エンティティのいずれかに対して指示されたプラグインの配備が、それぞれの論理記憶エンティティと関連付けられたそれぞれのSLSの違反(または、例えば、事前に定義した閾値などに従って、かかる違反に近い)とならない場合、UDSPエージェント220は、それぞれの論理記憶エンティティに対して指示されたプラグインを配備して(例えば、指示されたプラグインを、それぞれの論理記憶エンティティと関連付けられた少なくとも1つのUDSPエージェント220を有する少なくとも1つのコンピュータノード205上に配備して)、データパス関連プラグインの動作(および、任意選択で、追加の動作)を定義するプラグイン包含データパス仕様を生成するように構成できる(ブロック540)。
しかし、指示されたプラグインが検証されていないデータパス関連プラグインのままである(または、検証されていないデータパス関連プラグインになる)間に、UDSPエージェント220は、データパス関連プラグインの動作を定義しない並列検証データパス仕様を構築する(または維持する)ように構成できる(ブロック550)。結果として、データパス関連プラグインが検証されない限り、あらゆる動作(例えば、読取り/書込み)、またはある場合には、(例えば、図8に関してさらに詳述するように)かかるプラグインに関連した動作(例えば、プラグインを使用する)の少なくとも一部が、図8に関してさらに詳述されるように、2つの並列データパス−プラグイン動作を含む1つ(プラグイン包含データパス仕様によって定義される動作を含むプラグイン包含データパス)および含まない1つ(検証データパス仕様によって定義される動作を含む検証データパス)−を使用して実行されるであろう。検証データパスは、プラグイン包含データパスによって生成されるデータの検証を可能にする検証データを生成するために必要であることに留意されたい。ある場合には、共通のタスクの実行に続いて、両方のデータパスが(たとえ、データパスの1つ以上によって生成されるデータが暗号化されるか、重複排除されるか、圧縮されるか、または別の方法で操作されても)、同じ情報を含むデータを生成すると予期され、また、ある場合には、それらは、同一のデータを生成すると予期される。ある場合には、限定されない例として、データパスの1つ以上によって生成されるデータが暗号化されるか、重複排除されるか、圧縮されるか、または別の方法で操作される場合、必要であれば、比較可能なデータを抽出するために、逆方向の操作が実行できることが理解され得る。
両方のデータパスが同一のデータを生成すると予期される場合、両方のデータパスが、(それぞれのデータパス仕様に従い)データに関して共通の動作および/または操作を実行する必要があり得ることに留意されたい。従って、プラグイン包含データパス内でデータに関してある動作および/または操作(例えば、圧縮、重複排除など)を実行するために検証されていないデータパス関連プラグインが必要な場合、検証データパスは、データに関して、検証されていないデータパス関連プラグインによって実行される、同じ動作および/または操作を実行する、検証済みプラグインを含むであろう。
ある場合には、検証データは、例えば、検証が失敗した場合に、プラグイン包含データパスによって生成されたデータの修正をさらに可能にすることにさらに留意されたい。
図7を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または2、3のブロックに分解でき、かつ/または他のブロックが追加され得ることに留意されたい。その上、ある場合には、ブロックは、本明細書で説明される順序とは異なる順序で実行できる(例えば、ブロック550は、ブロック540の前に実行できる、など)。ブロックのいくつかは任意選択であることにさらに留意されたい(例えば、ブロック520および530)。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
図8は、本開示の主題に従って、データパス関連プラグインに関するタスクを遂行するために実行される一連の動作の一例を示す流れ図である。
本開示の主題のいくつかの例によれば、UDSPエージェント220は(例えば、タスク管理モジュール335を利用して)、タスク実行プロセス600を実行するように構成できる。この目的のため、UDSPエージェント220は、検証されていないデータパス関連プラグインに関するタスク(例えば、検証されていないデータパス関連プラグインを使用する)を受信するように構成できる(ブロック610)。
ある場合には、UDSPエージェント220は、検証されていないデータパス関連プラグインが動作するプラグイン包含データパス上で、および検証されていないデータパス関連プラグインが動作しない、並列検証データパス上で、タスクを実行するように構成できる(ブロック620)。
プラグイン包含データパス上および検証データパス上での受信したタスクの実行に続いて、UDSPエージェント220は、検証データを利用して、プラグイン包含データパスによって生成されたデータを検証できる(ブロック630)。データが有効な場合、プロセスは終了する(ブロック640)。ある場合には、両方の並列データパス上でのタスクの実行に続く、データの有効性の表示が、例えば、かかる成功したタスク実行(成功したタスク実行は、プラグイン包含データパス上でのタスクの実行から生じたデータが、検証データパス上でのタスクの実行から生じた検証データを使用して検証される実行である)の数を示すカウンタ内に、保持される。かかるカウンタは、検証されていないデータパス関連プラグインの格付けのために後に使用できる(例えば、かかる成功したタスク実行がある数に達すると―検証されていないデータパス関連プラグインのグレードが高まり得る)。
しかし、データが無効であると分かった場合、UDSPエージェント220は、1つ以上の失敗時の動作を実行するように構成できる(ブロック650)。ある場合には、失敗時の動作は、検証されていないデータパス関連プラグインの、DSS 200全体からの、およびある場合には、その上、他のDSS 200からの(例えば、かかるDSS 200の集合をサポートする中央サービスを利用して)、即時の除去または無効化を含み得る。ある場合には、失敗時の動作は、タスク実行が実行されたそれぞれの論理記憶エンティティからの、検証されていないデータパスの即時の除去または無効化を含み得る。追加または代替として、失敗時の動作は、無効なデータを訂正するために、検証データを利用することを含み得る。追加または代替として、失敗時の動作は、タスク実行が実行されたそれぞれの論理記憶エンティティのユーザー(例えば、システム管理者)に(例えば、失敗を示す)通知を発行することを含み得る。追加または代替として、失敗時の動作は、検証されていないデータパス関連プラグインが配備される任意の論理記憶エンティティの全てのユーザー(例えば、システム管理者)に(例えば、失敗を示す)通知を発行することを含み得る。追加または代替として、失敗時の動作は、(例えば、失敗を示す)通知を、他のDSS 200に(例えば、かかるDSS 200の集合をサポートする中央サービスを通して)発行することを含み得る。追加または代替として、失敗時の動作は、以前のバージョンが存在する場合、検証されていないデータパス関連プラグインのかかる以前のバージョンに戻すことを含み得る。追加または代替として、失敗時の動作は、検証されていないデータパス関連プラグインのグレードを下げることを含み得る。他および/または追加の失敗時の動作が行われ得ることに留意されたい。ある場合には、どの失敗時の動作を実行すべきかの判断が、それぞれのプラグインおよび/またはその開発者に関する様々な履歴データによって決まり得る(例えば、ある場合には、その成功した動作を示す、より多くの履歴データと関連付けられたプラグインが、その成功した動作を示す、少ない履歴データしか有していないプラグインよりも寛容に扱われ得、より多くの検証済みプラグインを開発した開発者によって開発されたプラグインが、少ない検証済みプラグインしか開発していない開発者によって開発されたプラグインよりも寛容に扱われ得る、など)ことにさらに留意されたい。
ある場合には、検証されていないデータパス関連プラグインのグレードは、とりわけ、あらゆる所定の時間窓および/またはあらゆる所定数の成功したタスク実行および/または別の方法で高められ得る。
任意選択で、ある場合には、例えば、検証されていないデータパス関連プラグインのグレードに従って、検証されていないデータパス関連プラグインに関する全てではないタスクが、両方の並列データパス上で実行されることに留意されたい。ある場合には、かかるタスクの一部のみが、両方の並列データパス上で実行される。ある場合には、検証されていないデータパス関連プラグインのグレードが高いほど、両方の並列データパス上で実行されるタスクの数が少ない。ある場合には、タスクは、所定数の実行ごとに(例えば、2つの実行につき1回、10回の実行につき1回、または他の所定数の実行につき1回)のみ、両方の並列データパス上で実行される。ある場合には、タスクは、例えば、外部のエンティティによって判断および制御される通り、ある時間間隔ごとに両方の並列データパス上で実行される。
図8を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または2、3のブロックに分解でき、かつ/または他のブロックが追加され得ることに留意されたい。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
図9は、本開示の主題に従って、分散記憶システムの再構成を管理するために実行される一連の動作の一例を示す流れ図である。
本開示の主題のいくつかの例によれば、ある場合には、DSS 200の再構成が必要であるかをチェックする再構成プロセス900が実行できる。ある場合には、かかるチェックは、定期的に(例えば、所定の時間間隔、例えば、毎分、5分毎、毎時、または任意の他の所定の時間間隔、に従って)、連続して(例えば、繰返しループ内で、など)、トリガー事象(例えば、監視されるパラメータが事前に定義されたか、または計算された閾値を超える、とりわけ、図10に関して詳述するように、コンピュータノード205と関連付けられたUDSPエージェント220からの推奨の受信、など)に続いて、など、実行できる。
本明細書に示すように、ある場合には、コンピュータノード205と関連付けられた各UDSPエージェント220は、例えば、目的指向型構成モジュール390を利用している間に、再構成プロセス700を実行するように構成できる。ある場合には、1つ以上のコンピュータノード205(例えば、専用コンピュータノード)と関連付けられたUDSPエージェント220は、例えば、目的指向型構成モジュール390を利用している間に、再構成プロセス700を実行する責任を負い得る。
ある場合には、目的指向型構成モジュール390は、DSS 200内の1つ以上の論理記憶エンティティと関連付けられたSLS、DSS 200およびその資源および環境の動的挙動を示すデータ、DSS 200の現在の構成を示すデータ、DSS 200に関連した統計データおよび履歴データなど、のうちの任意の1つ、またはそれらの任意の組合せを受信するように構成できる(ブロック710)。ある場合には、データの全部または一部が、追加または代替として、再構成プロセス900が実行されるコンピュータノード205と関連付けられたUDSPデータリポジトリ330から取得できることに留意されたい。
ある場合には、目的指向型構成モジュール390は、受信したデータを利用して、SLSのいずれかに違反していないか(または、例えば、事前に定義された閾値などに従って、違反に近いか)、および/またはDSS 200の再構成を実行する何らかの他の理由(例えば、SLSに関わらず、1つ以上の割当てが実行できなかったこと、など)があるか、をチェックするように構成できる(ブロック720)。
ある場合には、SLSに違反するたびに(SLSの違反は、時々、例えば、事前に定義された閾値などに従って、かかる違反に近いことを含み得ることに留意すべきである)、DSS 200の再構成が開始できることに留意されたい。他の場合には、DSS 200のかかる再構成は、何らかの事前に定義された基準の満足に応じて開始できる。かかる基準は、例えば、事前に定義された時間フレーム内または時間に関わらずのいずれかで、満足する必要のある検出されたSLS違反の事前に定義された数など、であり得る。従って、例えば、例示的な基準は、3回のSLS違反の検出、または1日のうちでの3回のSLS違反の検出など、であり得る。ある場合には、違反の重要性が、追加または代替として、基準として考慮され得る。この目的のため、目的指向型構成モジュール390は、DSS 200に関連した統計データおよび履歴データを利用するように構成できる。
DSS 200を再構成する必要がある場合、目的指向型構成モジュール390は、とりわけ、図2〜図4に関して、前述したように、DSS 200構成プロセスを実行するために目的指向型管理システム(OBMS)100を起動するように構成できる(ブロック730)。本明細書に示すように、DSS 200を再構成する場合、OBMS 100は、再構成プロセスに対する入力の一部として、DSS 200の現在の構成を受信して、DSS 200を再構成する際に、それを考慮に入れる得ることに留意されたい。ある場合には、かかる再構成中に、OBMS 100は、資源の全部または一部の予約および/または割当ておよび/または再割当ておよび/または解放を行うように構成できる。
ある場合には、DSS 200の再構成に対する追加または代替として、目的指向型構成モジュール390は、1つ以上のSLS関連是正動作を実行するように構成できることに留意されたい。ある場合には、SLS関連是正動作は、検証されていないデータパス関連プラグインの、DSS 200全体(それが配備される任意の論理記憶エンティティを含む)からの、およびある場合には、その上、他のDSS 200からの(例えば、かかるDSS 200の集合をサポートする中央サービスを利用して)、即時の除去を含み得る。ある場合には、SLS関連是正動作は、タスク実行が実行されたそれぞれの論理記憶エンティティからの、検証されていないデータパスの即時の除去を含み得る。追加または代替として、SLS関連是正動作は、それぞれの論理記憶エンティティのユーザー(例えば、システム管理者)に(例えば、違反または違反に近いことを示す)通知を発行することを含み得る。追加または代替として、SLS関連是正動作は、検証されていないデータパス関連プラグインが配備される任意の論理記憶エンティティの全てのユーザー(例えば、システム管理者)に(例えば、違反または違反に近いことを示す)通知を発行することを含み得る。追加または代替として、SLS関連是正動作は、(例えば、失敗を示す)通知を、他のDSS 200に(例えば、かかるDSS 200の集合をサポートする中央サービスを通して)発行することを含み得る。追加または代替として、SLS関連是正動作は、以前のバージョンが存在する場合、検証されていないデータパス関連プラグインのかかる以前のバージョンに戻すことを含み得る。追加または代替として、SLS関連是正動作は、検証されていないデータパス関連プラグインのグレードを下げることを含み得る。他および/または追加のSLS関連是正動作が行われ得ることに留意されたい。ある場合には、どのSLS関連是正動作を実行すべきかの判断が、それぞれのプラグインおよび/またはその開発者に関する様々な履歴データによって決まり得る(例えば、ある場合には、その成功した動作を示す、より多くの履歴データと関連付けられたプラグインが、その成功した動作を示す、少ない履歴データしか有していないプラグインよりも寛容に扱われ得、より多くの検証済みプラグインを開発した開発者によって開発されたプラグインが、少ない検証済みプラグインしか開発していない開発者によって開発されたプラグインよりも寛容に扱われ得る、など)ことにさらに留意されたい。
図9を再度参照すると、SLSの違反がなく(または違反に近くなく)、再構成を実行する他の理由、またはDSS 200の再構成の次の開始がない場合、再構成プロセス900が終了する(ブロック740)。
図9を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または2、3のブロックに分解でき、かつ/または他のブロックが追加され得ることに留意されたい。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
図10は、本開示の主題に従って、データパス関連プラグインを検証するために実行される一連の動作の一例を示す流れ図である。
本開示の主題のいくつかの例によれば、UDSPエージェント220は(例えば、タスク管理モジュール335を利用して)、検証されていないデータパス関連プラグインに対して検証プロセス800を実行するように構成できる。この目的のため、UDSPエージェント220は、検証されていないデータパス関連プラグインの検証が完了するかをチェックするように構成され得る(ブロック810)。ある場合には、かかるチェックは、定期的に(例えば、所定の時間間隔、例えば、毎分、5分毎、毎時、または任意の他の事前に定義された時間間隔、に従って)、連続して(例えば、繰返しループ内で、など)、トリガー事象に続いて(例えば、タスクの成功した実行に続いて、検証されていないデータパス関連プラグインのグレードにおける上昇に続いて、など)、など、実行できる。
ある場合には、それぞれのプラグインに関する所定の数の成功したタスク実行の後、プラグイン検証が完了する。代替または追加として、検証されていないデータパスを使用して生成された、ある(例えば、所定の)量のデータが、うまく検証された後に、プラグイン検証が完了する。代替または追加として、ユーザー(例えば、システム管理者)による承認の後、プラグイン検証が完了する。ある場合には、検証が完了するかを判断するために、他のパラメータおよび/または基準が使用できることに留意されたい。
検証が完了しない場合、プロセスが終了する(ブロック850)。しかし、検証が完了して、データパス関連プラグインが検証される場合、UDSPエージェント220は、検証データパス仕様をそれぞれの論理記憶エンティティから除去して(ブロック830)、1つ以上の検証動作を実行する(ブロック840)ように構成され得る。ある場合には、検証動作は、現在検証されたデータパス関連プラグインのグレードを上げることを含み得る。ある場合には、検証動作は、追加または代替として、現在検証されたデータパス関連プラグインに関する任意の検証データパス仕様を、DSS 200全体(それが配備される任意の論理記憶エンティティを含む)から、およびある場合には、その上、他のDSS 200から(例えば、かかるDSS 200の集合をサポートする中央サービスを利用して)、除去することを含み得る。追加または代替として、検証動作は、タスク実行が実行された、それぞれの論理記憶エンティティのユーザー(例えば、システム管理者)に(プラグインの検証を示す)通知を発行することを含み得る。追加または代替として、検証動作は、現在検証されたデータパス関連プラグインが配備される任意の論理記憶エンティティの全てのユーザー(例えば、システム管理者)に(プラグインの検証を示す)通知を発行することを含み得る。追加または代替として、検証動作は、(例えば、失敗を示す)通知を、他のDSS 200に(例えば、かかるDSS 200の集合をサポートする中央サービスを通して)発行することを含み得る。
図10を参照すると、ブロックのいくつかが、連結ブロックに統合できるか、または2、3のブロックに分解でき、かつ/または他のブロックが追加され得ることに留意されたい。その上、ある場合には、ブロックは、本明細書で説明される順序とは異なる順序で実行できる(例えば、ブロック840は、ブロック830の前に実行できる、など)。フロー図は、それらを実現するシステム要素に関しても説明されるが、これには拘束力はなく、ブロックは、本明細書で説明される以外の要素によって実行できることも留意されるべきである。
本開示の主題は、本明細書に含まれるか、または図に示された説明に記載された詳細への適用に制限されないことを理解されたい。本開示の主題は、他の実施形態ならびに様々な方法で実施および実行されるのが可能である。それ故、本明細書で採用される表現および用語は、説明のためであり、制限と見なされるべきでないことを理解されたい。そのため、当業者は、本開示が基づく概念は、本開示の主題のいくつかの目的を実行するための他の構造、方法、およびシステムを設計するための基礎として容易に利用され得ることを理解するであろう。
本開示の主題に従ったシステムは、適切にプログラムされたコンピュータとして、少なくとも一部、実装され得ることも理解されよう。同様に、本開示の主題は、開示される方法を実行するために、コンピュータによって可読なコンピュータプログラムを考える。本開示の主題は、開示される方法を実行するために、マシンによって実行可能な命令のプログラムを有形的に具現化するマシン可読メモリをさらに考える。

Claims (21)

  1. 記憶システムの論理記憶エンティティに対してデータパス関連プラグインを配備するための方法であって、前記方法が、
    前記データパス関連プラグインを前記論理記憶エンティティに対して配備することであって、前記配備することがプラグイン包含データパス仕様を作成することを含み、かつ前記プラグイン包含データパス仕様が前記データパス関連プラグインの動作を含む、前記データパス関連プラグインを前記論理記憶エンティティに対して配備することと、
    検証データパス仕様を作成することであって、前記検証データパス仕様が、前記データパス関連プラグインの動作を含まず、かつ前記検証データパス仕様を有する、検証データパス内で実行されるタスクが、前記プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されている前記タスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成することと
    を含む、記憶システムの論理記憶エンティティに対してデータパス関連プラグインを配備するための方法。
  2. 前記データパス関連プラグインが、前記記憶システムと関連付けられたプラグインプール内に格納されたデータパス関連プラグインのリストから選択される、請求項1に記載の方法。
  3. 前記配備することが、前記論理記憶エンティティと関連付けられたサービス水準仕様(SLS)の違反とならないかをチェックすることをさらに含み、かつ前記チェックすることが、前記配備することが前記SLSの違反とならないことを示した場合に、前記配備することおよび前記作成することが実行される、請求項1に記載の方法。
  4. 所与のタスクを、前記プラグイン包含データパス上および前記検証データパス上で実行することと、
    前記所与のデータを、前記検証データを使用して検証することと、
    前記第1の実行結果と前記第2の実行結果との間に不一致が存在する場合、1つ以上の失敗時の動作の実行することと
    をさらに含む、請求項1に記載の方法。
  5. 前記検証データが、前記所与のデータに含まれている情報と同一の情報を含む場合、前記検証することが成功である、請求項4に記載の方法。
  6. 前記検証データおよび前記所与のデータが同一である場合、前記検証することが成功である、請求項5に記載の方法。
  7. 前記1つ以上の失敗時の動作が、以下の動作:
    (a)前記検証されていないデータパス関連プラグインを前記論理記憶エンティティから取り除くこと;
    (b)前記検証されていないデータパス関連プラグインを前記論理記憶エンティティに対して無効にすること;
    (c)前記所与のデータを訂正するために前記検証データを利用すること;
    (d)失敗を示す通知を前記論理記憶エンティティのユーザーに対して発行すること;
    (e)以前のバージョンが存在する場合、前記検証されていないデータパス関連プラグインの以前のバージョンに戻すこと;
    (f)前記検証されていないデータパス関連プラグインと関連付けられたグレードを下げること;
    の1つ以上を含む、請求項4に記載の方法。
  8. 検証されていないデータパス関連プラグインの検証が完了する場合、前記検証データパスを除去することと、1つ以上の検証動作を実行することとをさらに含む、請求項1に記載の方法。
  9. 前記検証動作が、以下の動作:
    (a)前記検証されていないデータパス関連プラグインと関連付けられたグレードを上げること;
    (b)前記検証が完了することを示す通知を前記論理記憶エンティティのユーザーに対して発行すること;
    の1つ以上を含む、請求項8に記載の方法。
  10. 前記記憶システムが、分散記憶システムであり、かつ前記チェックが、前記配備することが前記SLSの違反となることを示した場合、前記方法が、
    前記分散記憶システムの動的挙動に関する動的挙動パラメータデータを受信することと、
    前記少なくとも1つのSLS、前記分散記憶システムのインフラストラクチャ層に接続されたストレージ関連資源に関するストレージ関連資源パラメータデータ、および動的挙動パラメータデータに、少なくとも基づき、前記分散記憶システムに対する再構成を計算することと、
    前記計算された再構成に従って、前記ストレージ関連資源の1つの少なくとも一部を自動的に割り当てることと
    をさらに含む、請求項1に記載の方法。
  11. 統一分散記憶プラットフォーム(UDSP)エージェントを実行するように構成された少なくとも1つの処理資源を含むコンピュータノードであって、前記UDSPエージェントが、
    前記データパス関連プラグインを前記論理記憶エンティティに対して配備することであって、前記配備が、プラグイン包含データパス仕様を作成することを含み、かつ前記プラグイン包含データパス仕様が、前記データパス関連プラグインの動作を含む、前記データパス関連プラグインを前記論理記憶エンティティに対して配備することと、
    検証データパス仕様を作成することであって、前記検証データパス仕様が、前記データパス関連プラグインの動作を含まず、かつ前記検証データパス仕様を有する、検証データパス内で実行されるタスクが、前記プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されている前記タスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成することと
    を行うように構成されている、コンピュータノード。
  12. 前記データパス関連プラグインが、前記記憶システムと関連付けられたプラグインプール内に格納されたデータパス関連プラグインのリストから選択される、請求項11に記載のシステム。
  13. 前記UDSPエージェントが、前記配備が前記論理記憶エンティティと関連付けられたサービス水準仕様(SLS)の違反とならないかをチェックするようにさらに構成され、前記チェックが、前記配備が前記SLSの違反とならないことを示した場合に、前記配備および前記作成が実行される、請求項11に記載のシステム。
  14. 前記UDSPエージェントが、
    所与のタスクを、前記プラグイン包含データパス上および前記検証データパス上で実行することと、
    前記所与のデータを、前記検証データを使用して検証することと、
    前記第1の実行結果と前記第2の実行結果との間に不一致が存在する場合、1つ以上の失敗時の動作の実行することと
    を行うようにさらに構成されている、請求項11に記載のシステム。
  15. 前記検証データが、前記所与のデータに含まれている情報と同一の情報を含む場合、前記検証が成功である、請求項14に記載のシステム。
  16. 前記検証データおよび前記所与のデータが同一である場合、前記検証が成功である、請求項15に記載のシステム。
  17. 前記1つ以上の失敗時の動作が、以下の動作:
    (a)前記検証されていないデータパス関連プラグインを前記論理記憶エンティティから取り除くこと;
    (b)前記検証されていないデータパス関連プラグインを前記論理記憶エンティティに対して無効にすること;
    (c)前記検証データを、前記所与のデータを訂正するために利用すること;
    (d)失敗を示す通知を前記論理記憶エンティティのユーザーに対して発行すること;
    (e)以前のバージョンが存在する場合、前記検証されていないデータパス関連プラグインの以前のバージョンに戻すこと;
    (f)前記検証されていないデータパス関連プラグインと関連付けられたグレードを下げること;
    の1つ以上を含む、請求項14に記載のシステム。
  18. 検証されていないデータパス関連プラグインの検証が完了する場合、前記UDSPエージェントが、前記検証データパスを除去して、1つ以上の検証動作を実行するようにさらに構成されている、請求項11に記載のシステム。
  19. 前記検証動作が、以下の動作:
    (a)前記検証されていないデータパス関連プラグインと関連付けられたグレードを上げること;
    (b)前記検証が完了することを示す通知を前記論理記憶エンティティのユーザーに対して発行すること;
    の1つ以上を含む、請求項18に記載のシステム。
  20. 前記記憶システムが、分散記憶システムであり、かつ前記チェックが、前記配備が前記SLSの違反となることを示した場合、前記UDSPエージェントが、
    前記分散記憶システムの動的挙動に関する動的挙動パラメータデータを受信することと、
    前記少なくとも1つのSLS、前記分散記憶システムのインフラストラクチャ層に接続されたストレージ関連資源に関するストレージ関連資源パラメータデータ、および動的挙動パラメータデータに、少なくとも基づき、前記分散記憶システムに対する再構成を計算することと、
    前記計算された再構成に従って、前記ストレージ関連資源の1つの少なくとも一部を自動的に割り当てることと
    を行うようにさらに構成されている、請求項11に記載のシステム。
  21. マシンによって可読なプログラム記憶装置であって、データパス関連プラグインを記憶システムの論理記憶エンティティに対して配備するための方法を実行するために前記マシンによって実行可能な命令のプログラムを有形的に具現化し、
    前記データパス関連プラグインを前記論理記憶エンティティに対して配備するステップであって、前記配備することが、プラグイン包含データパス仕様を作成することを含み、かつ前記プラグイン包含データパス仕様が前記データパス関連プラグインの動作を含む、前記データパス関連プラグインを前記論理記憶エンティティに対して配備するステップと、
    検証データパス仕様を作成するステップであって、前記検証データパス仕様が前記データパス関連プラグインの動作を含まず、かつ前記検証データパス仕様を有する、検証データパス内で実行されるタスクが、前記プラグイン包含データパス仕様を有するプラグイン包含データパス内で実行されている前記タスクによって生成される所与のデータの検証を可能にする検証データを生成する、検証データパス仕様を作成するステップと
    を含む、マシンによって可読なプログラム記憶装置。
JP2016503774A 2013-03-21 2014-01-19 データパス関連プラグインの配備 Pending JP2016519364A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361803868P 2013-03-21 2013-03-21
US61/803,868 2013-03-21
PCT/IL2014/050063 WO2014147607A1 (en) 2013-03-21 2014-01-19 Deploying data-path-related plugins

Publications (1)

Publication Number Publication Date
JP2016519364A true JP2016519364A (ja) 2016-06-30

Family

ID=51579384

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016503774A Pending JP2016519364A (ja) 2013-03-21 2014-01-19 データパス関連プラグインの配備

Country Status (7)

Country Link
US (2) US9612851B2 (ja)
EP (1) EP2976711A4 (ja)
JP (1) JP2016519364A (ja)
CN (1) CN105074660B (ja)
AU (2) AU2014101656A4 (ja)
SG (1) SG11201507645XA (ja)
WO (1) WO2014147607A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9705751B1 (en) * 2016-03-31 2017-07-11 Sas Institute Inc. System for calibrating and validating parameters for optimization
US10599559B2 (en) 2016-11-22 2020-03-24 International Business Machines Corporation Validating a software defined storage solution based on field data
US11163626B2 (en) 2016-11-22 2021-11-02 International Business Machines Corporation Deploying a validated data storage deployment
US10169019B2 (en) 2016-11-22 2019-01-01 International Business Machines Corporation Calculating a deployment risk for a software defined storage solution
US10599524B2 (en) * 2017-04-28 2020-03-24 Veritas Technologies Llc Backup performance after backup failure
US10558556B2 (en) * 2017-06-19 2020-02-11 Cisco Technology, Inc. Introspective fault and workload injection for service assurance
CN113986254A (zh) * 2020-07-27 2022-01-28 阿里巴巴集团控股有限公司 微前端系统、生成方法及服务器系统

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396635A (en) 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US5987505A (en) 1995-04-28 1999-11-16 Fry; Shawn C. Method for emulation of terminal-resident GUI application by transmitting macros having information and command instructing the terminal how to process the information
US6538669B1 (en) 1999-07-15 2003-03-25 Dell Products L.P. Graphical user interface for configuration of a storage system
US7463648B1 (en) 1999-08-23 2008-12-09 Sun Microsystems, Inc. Approach for allocating resources to an apparatus based on optional resource requirements
US7020697B1 (en) * 1999-10-01 2006-03-28 Accenture Llp Architectures for netcentric computing systems
US20030074207A1 (en) * 2000-09-01 2003-04-17 Pace Charles P. Method and system for deploying an asset over a multi-tiered network
US20030084134A1 (en) * 2000-09-01 2003-05-01 Pace Charles P. System and method for bridging assets to network nodes on multi-tiered networks
US7685577B2 (en) * 2000-09-01 2010-03-23 Op40, Inc. System and method for translating an asset for distribution over multi-tiered networks
US6977927B1 (en) 2000-09-18 2005-12-20 Hewlett-Packard Development Company, L.P. Method and system of allocating storage resources in a storage area network
US6804819B1 (en) 2000-09-18 2004-10-12 Hewlett-Packard Development Company, L.P. Method, system, and computer program product for a data propagation platform and applications of same
JP2002182859A (ja) 2000-12-12 2002-06-28 Hitachi Ltd ストレージシステムおよびその利用方法
US6606690B2 (en) 2001-02-20 2003-08-12 Hewlett-Packard Development Company, L.P. System and method for accessing a storage area network as network attached storage
JP4083997B2 (ja) 2001-04-16 2008-04-30 株式会社日立製作所 レンタルストレージのサービス方法、および、レンタルストレージシステム
EP1306754A1 (en) * 2001-10-23 2003-05-02 Telefonaktiebolaget L M Ericsson (Publ) Device and method for software maintenance
JP4434543B2 (ja) 2002-01-10 2010-03-17 株式会社日立製作所 分散ストレージシステム、ストレージ装置、およびデータのコピー方法
US20030135609A1 (en) 2002-01-16 2003-07-17 Sun Microsystems, Inc. Method, system, and program for determining a modification of a system resource configuration
US6907501B2 (en) 2002-01-25 2005-06-14 Ntt Docomo Inc. System for management of cacheable streaming content in a packet based communication network with mobile hosts
JP2003296039A (ja) 2002-04-02 2003-10-17 Hitachi Ltd クラスタ構成記憶システム及び制御方法
US20030217358A1 (en) * 2002-05-17 2003-11-20 Sun Microsystems, Inc. Method, system, and article of manufacture for firmware downloads
US7475107B2 (en) 2002-07-08 2009-01-06 Electronic Evidence Discovery, Inc. System and method for managing distributed computer processes
US7020758B2 (en) 2002-09-18 2006-03-28 Ortera Inc. Context sensitive storage management
US7240115B2 (en) 2002-12-10 2007-07-03 International Business Machines Corporation Programmatically allocating memory among competing services in a distributed computing environment
US7159093B2 (en) 2002-12-20 2007-01-02 Veritas Operating Corporation Development of a detailed logical volume configuration from high-level user requirements
US7594002B1 (en) 2003-02-14 2009-09-22 Istor Networks, Inc. Hardware-accelerated high availability integrated networked storage system
US20040230753A1 (en) 2003-05-16 2004-11-18 International Business Machines Corporation Methods and apparatus for providing service differentiation in a shared storage environment
JP4418286B2 (ja) 2003-07-14 2010-02-17 富士通株式会社 分散型ストレージシステム
US20050027938A1 (en) 2003-07-29 2005-02-03 Xiotech Corporation Method, apparatus and program storage device for dynamically resizing mirrored virtual disks in a RAID storage system
JP2005050007A (ja) 2003-07-31 2005-02-24 Hitachi Ltd ストレージシステムおよびその利用方法
US7577806B2 (en) 2003-09-23 2009-08-18 Symantec Operating Corporation Systems and methods for time dependent data storage and recovery
US20050081086A1 (en) 2003-10-10 2005-04-14 Xiotech Corporation Method, apparatus and program storage device for optimizing storage device distribution within a RAID to provide fault tolerance for the RAID
GB0401246D0 (en) 2004-01-21 2004-02-25 Ibm Method and apparatus for controlling access to logical units
US7702757B2 (en) 2004-04-07 2010-04-20 Xiotech Corporation Method, apparatus and program storage device for providing control to a networked storage architecture
WO2005107204A1 (en) 2004-05-04 2005-11-10 Telecom Italia S.P.A. Method and system for access control in distributed object-oriented systems
US7580959B2 (en) 2004-06-14 2009-08-25 International Business Machines Corporation Apparatus, system, and method for providing efficient disaster recovery storage of data using differencing
US20050283682A1 (en) * 2004-06-18 2005-12-22 Hitachi, Ltd. Method for data protection in disk array systems
US7526534B2 (en) * 2004-07-16 2009-04-28 Cassatt Corporation Unified system services layer for a distributed processing system
GB0426309D0 (en) 2004-11-30 2004-12-29 Ibm Method and system for error strategy in a storage system
US20060236061A1 (en) 2005-04-18 2006-10-19 Creek Path Systems Systems and methods for adaptively deriving storage policy and configuration rules
US7844968B1 (en) 2005-05-13 2010-11-30 Oracle America, Inc. System for predicting earliest completion time and using static priority having initial priority and static urgency for job scheduling
US7525957B2 (en) 2005-09-01 2009-04-28 Emulex Design & Manufacturing Corporation Input/output router for storage networks
US20070240134A1 (en) * 2006-02-28 2007-10-11 Joydeep Buragohain Software packaging model supporting multiple entity types
US20070234118A1 (en) 2006-03-30 2007-10-04 Sardella Steven D Managing communications paths
US7434002B1 (en) 2006-04-24 2008-10-07 Vmware, Inc. Utilizing cache information to manage memory access and cache utilization
US7487383B2 (en) 2006-06-29 2009-02-03 Dssdr, Llc Data transfer and recovery process
US7890463B2 (en) 2006-09-28 2011-02-15 Xeround Systems Ltd. Apparatus and method for a distributed storage global database
US8782277B2 (en) 2006-10-12 2014-07-15 Siemens Product Lifecycle Management Software Inc. System and method for time-sensitive URI mapping
CN101188569B (zh) 2006-11-16 2011-05-04 饶大平 在网络上构建数据量子空间的方法及分布式文件存储系统
US8302087B2 (en) * 2007-01-05 2012-10-30 International Business Machines Corporation Quality assurance in software systems through autonomic reliability, availability and serviceability code generation
US7873805B2 (en) 2007-02-23 2011-01-18 Lewis, Rice & Fingersh, L.C. Data recovery systems and methods
US8276167B2 (en) * 2007-03-21 2012-09-25 International Business Machines Corporation Distributed pluggable middleware services
US7861111B2 (en) 2007-06-15 2010-12-28 Savvis, Inc. Shared data center disaster recovery systems and methods
DE602007006932D1 (de) * 2007-06-22 2010-07-15 Software Ag Datenbanksystem und Verfahren zur externen Datensicherung
JP2009020568A (ja) 2007-07-10 2009-01-29 Hitachi Ltd ストレージシステム及びディザスタリカバリ構成の設計方法
US20090055689A1 (en) 2007-08-21 2009-02-26 International Business Machines Corporation Systems, methods, and computer products for coordinated disaster recovery
US9652210B2 (en) * 2007-08-28 2017-05-16 Red Hat, Inc. Provisioning a device with multiple bit-size versions of a software component
WO2009032710A2 (en) 2007-08-29 2009-03-12 Nirvanix, Inc. Filing system and method for data files stored in a distributed communications network
US8325680B2 (en) 2007-11-21 2012-12-04 Apple Inc. Support for continuity of tunnel communications for mobile nodes having multiple care of addressing
US8127307B1 (en) * 2007-12-31 2012-02-28 Emc Corporation Methods and apparatus for storage virtualization system having switch level event processing
US8103775B2 (en) 2008-03-13 2012-01-24 Harris Corporation System and method for distributing a client load from a failed server among remaining servers in a storage area network (SAN)
US8261354B2 (en) * 2008-09-17 2012-09-04 International Business Machines Corporation System, method and program product for dynamically performing an audit and security compliance validation in an operating environment
US8413139B2 (en) * 2009-03-11 2013-04-02 Microsoft Corporation Programming model for application and data access and synchronization within virtual environments
US7992031B2 (en) 2009-07-24 2011-08-02 International Business Machines Corporation Automated disaster recovery planning
US9767031B2 (en) 2009-10-23 2017-09-19 International Business Machines Corporation Dynamic structural management of a distributed caching infrastructure
US8194339B2 (en) 2010-07-29 2012-06-05 Lsi Corporation Write performance monitor in a storage device
CA2812986C (en) 2010-09-20 2015-12-08 Security First Corp. Systems and methods for secure data sharing
US20120117041A1 (en) * 2010-11-08 2012-05-10 Verisign, Inc. Debugging a stored procedure in a database
AU2012206295B2 (en) * 2011-01-10 2016-07-07 Storone Ltd. Large scale storage system
US9128773B2 (en) * 2011-02-25 2015-09-08 International Business Machines Corporation Data processing environment event correlation
US9015823B2 (en) * 2011-11-15 2015-04-21 Nicira, Inc. Firewalls in logical networks
US9336251B2 (en) * 2011-11-23 2016-05-10 Nec Corporation System and method for SLA-aware database consolidation using per-tenant memory size configuration
US9319274B1 (en) * 2012-03-29 2016-04-19 Emc Corporation Method and system for dynamic provisioning using server dormant mode for virtual server dormancy
US9158499B2 (en) * 2012-04-30 2015-10-13 Freescale Semiconductor, Inc Cryptographic processing with random number generator checking
US9003395B2 (en) * 2012-08-10 2015-04-07 Adobe Systems Incorporated Directing plug-in updates for a software application to a target audience using manifest parameters
US9471436B2 (en) * 2013-04-23 2016-10-18 Facebook, Inc. Use of incremental checkpoints to restore user data stream processes
US20150127995A1 (en) * 2013-11-01 2015-05-07 Commvault Systems, Inc. Systems and methods for differential health checking of an information management system
US9659108B2 (en) * 2013-12-02 2017-05-23 Qbase, LLC Pluggable architecture for embedding analytics in clustered in-memory databases
WO2015092920A1 (ja) * 2013-12-20 2015-06-25 株式会社日立製作所 性能予測方法、性能予測システム及びプログラム
US9900215B2 (en) * 2014-11-13 2018-02-20 Microsoft Technology Licensing, Llc Automatically recommending point of presence centers

Also Published As

Publication number Publication date
EP2976711A4 (en) 2016-09-14
AU2014233753A1 (en) 2015-10-01
AU2014101656A4 (en) 2019-08-01
SG11201507645XA (en) 2015-10-29
US9612851B2 (en) 2017-04-04
CN105074660A (zh) 2015-11-18
WO2014147607A1 (en) 2014-09-25
EP2976711A1 (en) 2016-01-27
CN105074660B (zh) 2017-12-15
US20170161045A1 (en) 2017-06-08
US20160026481A1 (en) 2016-01-28
US10169021B2 (en) 2019-01-01

Similar Documents

Publication Publication Date Title
US10169021B2 (en) System and method for deploying a data-path-related plug-in for a logical storage entity of a storage system
US9729666B2 (en) Large scale storage system and method of operating thereof
US9697091B2 (en) System and method for datacenters disaster recovery
US20140025909A1 (en) Large scale storage system
US20110040935A1 (en) Management computer for managing storage system capacity and storage system capacity management method
WO2021226344A1 (en) Providing data management as-a-service
WO2016151584A2 (en) Distributed large scale storage system
US11262934B2 (en) Deletion of stored data
US11650975B2 (en) Online file system consistency check for container data on a clustered filesystem
Bhartia MongoDB on AWS
IL227415A (en) Large-scale storage system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170119

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170119

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170127

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170221

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20171003