(57)【要約】【課題】コンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理のための方法を提供する。【解決手段】コンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理のための、記載される方法。ワークロード・マネージャによってスケジューリングのための入力ワークロードを受信したことに応答して、データ要件エバリュエータ・モジュールによってストレージ・システムから入力のセットが検索される。データ要件エバリュエータ・モジュールは、データ・アクセス検討によって入力ワークロードを行うためにランク付けされたクラスタ・ホストのリストを生成し、クラスタ・ホストのそのランク付けされたリストをスケジューラ・モジュールに提供する。スケジューラ・モジュールは、コンピューティング・クラスタ内の特定のホストに対する入力ワークロードのスケジューリングを生成し、生成されたスケジューリングはデータ・アクセス検討によって最適化されている。【選択図】図６
2021517683.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサによるコンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理のための方法であって、
前記コンピューティング・クラスタ内のワークロード・マネージャがデータ要件エバリュエータ・モジュールおよびスケジューラ・モジュールを含むように構成するステップと、
前記ワークロード・マネージャによってスケジューリングのための入力ワークロードを受信したことに応答して、
前記データ要件エバリュエータ・モジュールによって、ストレージ・システムから入力のセットを検索するステップであって、前記入力の各々は
前記入力ワークロードが新たなデータの入力／出力（Ｉ／Ｏ）に集中しているか、それとも既存データのＩ／Ｏに集中しているかの表示と、
前記入力ワークロードに関連するファイルのセットに対するデータ局在性の割合と、
前記コンピューティング・クラスタ内のホストの各対に対して特定されたデータ・アクセス・コストとのうちの少なくとも１つを含む、前記検索するステップと、
前記データ要件エバリュエータ・モジュールによって、データ・アクセス検討によって前記入力ワークロードを行うためにランク付けされたクラスタ・ホストのリストを生成するステップと、
クラスタ・ホストの前記ランク付けされたリストを前記スケジューラ・モジュールに提供するステップと、
前記スケジューラ・モジュールによって、前記コンピューティング・クラスタ内の特定のホストに対する前記入力ワークロードのスケジューリングを生成するステップであって、前記生成されたスケジューリングは前記データ・アクセス検討によって最適化されている、前記スケジューリングを生成するステップと
を含む、方法。
【請求項２】
前記データ局在性の割合の入力は、前記入力ワークロードに関連する前記ファイルのセットに対して、前記クラスタ・ホストの各々にそれぞれ保存されている前記ファイルのセットの合計データの割合を特定し、
前記データ・アクセス・コストの入力は、各クラスタ・ホストに対して、前記コンピューティング・クラスタ内の任意の他のクラスタ・ホストに保存されたデータにアクセスするコストを特定し、前記データ・アクセス・コストは、前記クラスタ・ホスト間のネットワーク形成待ち時間と、前記クラスタ・ホストの各々内のストレージ・デバイス・アクセス待ち時間とに基づいて計算される、請求項１に記載の方法。
【請求項３】
前記データ要件エバリュエータ・モジュールによって、
前記コンピューティング・クラスタ内のコンピュート・リソースの可用性と、
前記コンピューティング・クラスタ内のストレージ・リソースの可用性と
のうちの少なくとも１つを含むさらなる入力を受信するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記データ要件エバリュエータ・モジュールによって前記所与のワークロードを行うためにランク付けされたクラスタ・ホストの前記リストを前記生成するステップは、
前記入力ワークロードが既存データのＩ／Ｏに集中している場合、前記データ局在性およびデータ・アクセス・コストの入力による好ましいホストの順序付きリストとして前記ランク付けされたリストを生成するステップと、
前記入力ワークロードが新たなデータのＩ／Ｏに集中している場合、利用可能なストレージによる好ましいホストの前記順序付きリストを生成するステップと、
前記入力ワークロードがＩ／Ｏに集中していない場合、好ましいホストの空リストを生成するステップと
をさらに含む、請求項１に記載の方法。
【請求項５】
利用可能なストレージによる好ましいホストの前記順序付きリストを生成するステップは、前記クラスタ・ホストの第１のものに他のクラスタ・ホストと比べてより多くの利用可能なストレージが存在すると判定した場合に、前記クラスタ・ホストの前記第１のもののランクを前記他のクラスタ・ホストと比べて前記順序付きリストにおいてより高くなるように設定するステップに基づく、請求項４に記載の方法。
【請求項６】
前記スケジューラ・モジュールによって前記クラスタ・ホストに対する前記入力ワークロードの前記スケジューリングを前記生成するステップは、
前記入力ワークロードに対するリソース割り当て要求を受信するステップと、
前記データ要件エバリュエータ・モジュールからの前記データ・アクセス検討によって前記所与のワークロードを実行するためにランク付けされた好ましいホストの順序付きリストを受信するステップと、
前記割り当て要求を満たすために、前記リソース割り当て要求および好ましいホストの前記順序付きリストによって前記好ましいホストからコンピュート・リソースを割り当てることを試みるステップと
のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項７】
前記ストレージ・システムは、
ローカル・ストレージ・デバイスにデータを保存するステップであって、各ローカル・ストレージ・デバイスは複数の前記クラスタ・ホストの１つに取り付けられている、前記保存するステップと、
前記クラスタ・ホストからアクセス可能な共有ストレージ・デバイスにデータを保存するステップと、
前記ローカルおよび共有ストレージ・デバイスの組み合わせにデータを保存するステップと
のうちの少なくとも１つを行う、請求項１に記載の方法。
【請求項８】
前記入力ワークロードに関連する前記ファイルのセットのデータの前記クラスタ内の位置は、
前記共有ストレージ・デバイスに対応するホスト名を割り当てるステップと、
前記クラスタ・ホストの各々に前記ローカル・ストレージ・デバイスを取り付けるステップであって、各々の前記クラスタ・ホストにはホスト名が割り当てられている、前記取り付けるステップと、
前記位置を特定する前記ローカルまたは共有ストレージ・デバイス内のストレージ識別（ＩＤ）を用いるステップであって、前記ホスト名およびストレージＩＤは、前記ローカルおよび共有ストレージ・デバイスに対し前記クラスタ内のグローバル・ストレージの位置を提供する、前記用いるステップと
によってローカル・ストレージおよび共有ストレージの両方に対して特定される、請求項７に記載の方法。
【請求項９】
コンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理のためのシステムであって、前記システムは
前記コンピューティング・クラスタ内のワークロード・マネージャを含み、前記ワークロード・マネージャはデータ要件エバリュエータ・モジュールと、スケジューラ・モジュールとを含み、前記システムはさらに、
メモリ・デバイスに保存された命令を実行するプロセッサを含み、前記プロセッサは前記命令を実行する際に、
前記ワークロード・マネージャによってスケジューリングのための入力ワークロードを受信したことに応答して、
前記データ要件エバリュエータ・モジュールによって、ストレージ・システムから入力のセットを検索するステップであって、前記入力の各々は
前記入力ワークロードが新たなデータの入力／出力（Ｉ／Ｏ）に集中しているか、それとも既存データのＩ／Ｏに集中しているかの表示と、
前記入力ワークロードに関連するファイルのセットに対するデータ局在性の割合と、
前記コンピューティング・クラスタ内のホストの各対に対して特定されたデータ・アクセス・コストとのうちの少なくとも１つを含む、前記検索するステップと、
前記データ要件エバリュエータ・モジュールによって、データ・アクセス検討によって前記入力ワークロードを行うためにランク付けされたクラスタ・ホストのリストを生成するステップと、
クラスタ・ホストの前記ランク付けされたリストを前記スケジューラ・モジュールに提供するステップと、
前記スケジューラ・モジュールによって、前記コンピューティング・クラスタ内の特定のホストに対する前記入力ワークロードのスケジューリングを生成するステップであって、前記生成されたスケジューリングは前記データ・アクセス検討によって最適化されている、前記スケジューリングを生成するステップと
を行う、システム。
【請求項１０】
前記データ局在性の割合の入力は、前記入力ワークロードに関連する前記ファイルのセットに対して、前記クラスタ・ホストの各々にそれぞれ保存されている前記ファイルのセットの合計データの割合を特定し、
前記データ・アクセス・コストの入力は、各クラスタ・ホストに対して、前記コンピューティング・クラスタ内の任意の他のクラスタ・ホストに保存されたデータにアクセスするコストを特定し、前記データ・アクセス・コストは、前記クラスタ・ホスト間のネットワーク形成待ち時間と、前記クラスタ・ホストの各々内のストレージ・デバイス・アクセス待ち時間とに基づいて計算される、請求項９に記載のシステム。
【請求項１１】
前記プロセッサは、前記データ要件エバリュエータ・モジュールによって、
前記コンピューティング・クラスタ内のコンピュート・リソースの可用性と、
前記コンピューティング・クラスタ内のストレージ・リソースの可用性と
のうちの少なくとも１つを含むさらなる入力を受信する、請求項９に記載のシステム。
【請求項１２】
前記データ要件エバリュエータ・モジュールによって前記所与のワークロードを行うためにランク付けされたクラスタ・ホストの前記リストを前記生成するステップは、
前記入力ワークロードが既存データのＩ／Ｏに集中している場合、前記データ局在性およびデータ・アクセス・コストの入力による好ましいホストの順序付きリストとして前記ランク付けされたリストを生成するステップと、
前記入力ワークロードが新たなデータのＩ／Ｏに集中している場合、利用可能なストレージによる好ましいホストの前記順序付きリストを生成するステップと、
前記入力ワークロードがＩ／Ｏに集中していない場合、好ましいホストの空リストを生成するステップと
をさらに含む、請求項９に記載のシステム。
【請求項１３】
利用可能なストレージによる好ましいホストの前記順序付きリストを生成するステップは、前記クラスタ・ホストの第１のものに他のクラスタ・ホストと比べてより多くの利用可能なストレージが存在すると判定した場合に、前記クラスタ・ホストの前記第１のもののランクを前記他のクラスタ・ホストと比べて前記順序付きリストにおいてより高くなるように設定するステップに基づく、請求項１２に記載のシステム。
【請求項１４】
前記スケジューラ・モジュールによって前記クラスタ・ホストに対する前記入力ワークロードの前記スケジューリングを前記生成するステップは、
前記入力ワークロードに対するリソース割り当て要求を受信するステップと、
前記データ要件エバリュエータ・モジュールからの前記データ・アクセス検討によって前記所与のワークロードを実行するためにランク付けされた好ましいホストの順序付きリストを受信するステップと、
前記割り当て要求を満たすために、前記リソース割り当て要求および好ましいホストの前記順序付きリストによって前記好ましいホストからコンピュート・リソースを割り当てることを試みるステップと
のうちの少なくとも１つを含む、請求項９に記載のシステム。
【請求項１５】
前記ストレージ・システムは、
ローカル・ストレージ・デバイスにデータを保存するステップであって、各ローカル・ストレージ・デバイスは複数の前記クラスタ・ホストの１つに取り付けられている、前記保存するステップと、
前記クラスタ・ホストからアクセス可能な共有ストレージ・デバイスにデータを保存するステップと、
前記ローカルおよび共有ストレージ・デバイスの組み合わせにデータを保存するステップと
のうちの少なくとも１つを行う、請求項９に記載のシステム。
【請求項１６】
前記入力ワークロードに関連する前記ファイルのセットのデータの前記クラスタ内の位置は、
前記共有ストレージ・デバイスに対応するホスト名を割り当てるステップと、
前記クラスタ・ホストの各々に前記ローカル・ストレージ・デバイスを取り付けるステップであって、各々の前記クラスタ・ホストにはホスト名が割り当てられている、前記取り付けるステップと、
前記位置を特定する前記ローカルまたは共有ストレージ・デバイス内のストレージ識別（ＩＤ）を用いるステップであって、前記ホスト名およびストレージＩＤは、前記ローカルおよび共有ストレージ・デバイスに対し前記クラスタ内のグローバル・ストレージの位置を提供する、前記用いるステップと
によってローカル・ストレージおよび共有ストレージの両方に対して特定される、請求項１５に記載のシステム。
【請求項１７】
プロセッサによるコンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理のためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、中に保存されたコンピュータ可読プログラム・コード部分を有する非一時的コンピュータ可読ストレージ媒体において具現化され、前記コンピュータ可読プログラム・コード部分は、
前記コンピューティング・クラスタ内のワークロード・マネージャがデータ要件エバリュエータ・モジュールおよびスケジューラ・モジュールを含むように構成する実行可能部分と、
前記ワークロード・マネージャによってスケジューリングのための入力ワークロードを受信したことに応答して、
前記データ要件エバリュエータ・モジュールによって、ストレージ・システムから入力のセットを検索するステップであって、各々の前記入力は
前記入力ワークロードが新たなデータの入力／出力（Ｉ／Ｏ）に集中しているか、それとも既存データのＩ／Ｏに集中しているかの表示と、
前記入力ワークロードに関連するファイルのセットに対するデータ局在性の割合と、
前記コンピューティング・クラスタ内のホストの各対に対して特定されたデータ・アクセス・コストとのうちの少なくとも１つを含む、前記検索するステップと、
前記データ要件エバリュエータ・モジュールによって、データ・アクセス検討によって前記入力ワークロードを行うためにランク付けされたクラスタ・ホストのリストを生成するステップと、
クラスタ・ホストの前記ランク付けされたリストを前記スケジューラ・モジュールに提供するステップと、
前記スケジューラ・モジュールによって、前記コンピューティング・クラスタ内の特定のホストに対する前記入力ワークロードのスケジューリングを生成するステップであって、前記生成されたスケジューリングは前記データ・アクセス検討によって最適化されている、前記スケジューリングを生成するステップと
を行う実行可能部分とを含む、コンピュータ・プログラム製品。
【請求項１８】
前記データ局在性の割合の入力は、前記入力ワークロードに関連する前記ファイルのセットに対して、前記クラスタ・ホストの各々にそれぞれ保存されている前記ファイルのセットの合計データの割合を特定し、
前記データ・アクセス・コストの入力は、各クラスタ・ホストに対して、前記コンピューティング・クラスタ内の任意の他のクラスタ・ホストに保存されたデータにアクセスするコストを特定し、前記データ・アクセス・コストは、前記クラスタ・ホスト間のネットワーク形成待ち時間と、前記クラスタ・ホストの各々内のストレージ・デバイス・アクセス待ち時間とに基づいて計算される、請求項１７に記載のコンピュータ・プログラム製品。
【請求項１９】
前記データ要件エバリュエータ・モジュールによって、
前記コンピューティング・クラスタ内のコンピュート・リソースの可用性と、
前記コンピューティング・クラスタ内のストレージ・リソースの可用性と
のうちの少なくとも１つを含むさらなる入力を受信する実行可能部分をさらに含む、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２０】
前記データ要件エバリュエータ・モジュールによって前記所与のワークロードを行うためにランク付けされたクラスタ・ホストの前記リストを前記生成するステップは、
前記入力ワークロードが既存データのＩ／Ｏに集中している場合、前記データ局在性およびデータ・アクセス・コストの入力による好ましいホストの順序付きリストとして前記ランク付けされたリストを生成するステップと、
前記入力ワークロードが新たなデータのＩ／Ｏに集中している場合、利用可能なストレージによる好ましいホストの前記順序付きリストを生成するステップと、
前記入力ワークロードがＩ／Ｏに集中していない場合、好ましいホストの空リストを生成するステップと
をさらに含む、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２１】
利用可能なストレージによる好ましいホストの前記順序付きリストを生成するステップは、前記クラスタ・ホストの第１のものに他のクラスタ・ホストと比べてより多くの利用可能なストレージが存在すると判定した場合に、前記クラスタ・ホストの前記第１のもののランクを前記他のクラスタ・ホストと比べて前記順序付きリストにおいてより高くなるように設定するステップに基づく、請求項２０に記載のコンピュータ・プログラム製品。
【請求項２２】
前記スケジューラ・モジュールによって前記クラスタ・ホストに対する前記入力ワークロードの前記スケジューリングを前記生成するステップは、
前記入力ワークロードに対するリソース割り当て要求を受信するステップと、
前記データ要件エバリュエータ・モジュールからの前記データ・アクセス検討によって前記所与のワークロードを実行するためにランク付けされた好ましいホストの順序付きリストを受信するステップと、
前記割り当て要求を満たすために、前記リソース割り当て要求および好ましいホストの前記順序付きリストによって前記好ましいホストからコンピュート・リソースを割り当てることを試みるステップと
のうちの少なくとも１つを含む、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２３】
前記ストレージ・システムは、
ローカル・ストレージ・デバイスにデータを保存するステップであって、各ローカル・ストレージ・デバイスは複数の前記クラスタ・ホストの１つに取り付けられている、前記保存するステップと、
前記クラスタ・ホストからアクセス可能な共有ストレージ・デバイスにデータを保存するステップと、
前記ローカルおよび共有ストレージ・デバイスの組み合わせにデータを保存するステップと
のうちの少なくとも１つを行う、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２４】
前記入力ワークロードに関連する前記ファイルのセットのデータの前記クラスタ内の位置は、
前記共有ストレージ・デバイスに対応するホスト名を割り当てるステップと、
前記クラスタ・ホストの各々に前記ローカル・ストレージ・デバイスを取り付けるステップであって、各々の前記クラスタ・ホストにはホスト名が割り当てられている、前記取り付けるステップと、
前記位置を特定する前記ローカルまたは共有ストレージ・デバイス内のストレージ識別（ＩＤ）を用いるステップであって、前記ホスト名およびストレージＩＤは、前記ローカルおよび共有ストレージ・デバイスに対し前記クラスタ内のグローバル・ストレージの位置を提供する、前記用いるステップと
によってローカル・ストレージおよび共有ストレージの両方に対して特定される、請求項２３に記載のコンピュータ・プログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的にコンピュータ・システムに関し、より具体的には分散型コンピューティング・コンポーネント内もしくはそれらの間またはその両方におけるワークロード管理およびスケジューリングに対するさまざまな実施形態に関する。
【背景技術】
【０００２】
今日の社会において、コンピュータ・システムはありふれたものである。コンピュータ・システムは職場にも、家庭にも、学校にも見出されるだろう。コンピュータ・システムが次第に依拠され、簡便に、かつポータブルになるにつれて、インターネットが急激に成長した。現在ではこれまで以上に、個人およびビジネスがコンピューティング・サービスを提供し、かつ情報およびデータを保存するために分散型システム（一般的に「クラウド」と呼ばれる）に依拠している。コンピュータ・デバイスに関する技術的進歩の大きな前進が達成されるにつれて、コンピューティング・サービスを提供しかつデータ・コンテンツを保存するバック・エンド・サポート・システム内の成長および発展に対する要求がますます増加している。
【０００３】
コンピューティング・クラスタは短くクラスタと呼ばれ、これはともに接続された複数の協調的コンピュータ（たとえばソフトウェアもしくはハードウェアまたはその両方のリソースなどのコンピューティング・リソースとしても公知である）によってコンピューティング・ジョブを完了させるタイプのコンピュータ・システムである。同じ管理ドメイン内にあるこれらのコンピューティング・リソースは統一管理ポリシーを有し、全体としてユーザにサービスを提供する。クラスタ・システム内の単一のコンピュータは通常、ホストまたはコンピューティング・ノードと呼ばれる。
【０００４】
クラスタ・システムは多くの利点を有する。たとえば、ロード・バランス方式で作業するときのクラスタ・システムは、複数のコンピュータによって同じ作業を行うことによって、より高い効率を達成できる。加えてクラスタ・システムは、高可用性方式で作業してもよい。サーバのグループのマスタ・サーバとして活動しているサーバが故障したとき、そのサーバのグループの別のサーバがマスタ・サーバの役割を担ってマスタ・サーバの代わりにサービスを提供することによって、高いフォールト・トレランスを示し得る。
【０００５】
ジョブをスケジューリングするとき、処理されるべきジョブに対応するコンピューティング・リソースが割り当てられる。このプロセスは、クラスタ環境におけるジョブ・スケジューリングと呼ばれる。ジョブ・スケジューリングとは実際には、スケジューリング・ポリシーに従ってジョブおよびリソースの特徴に基づいて実行のための対応するリソースにジョブをマップするためのプロセスである。
【０００６】
クラスタ・コンピューティングにおいて、データにアクセスして処理するこれらのジョブ（すなわちワークロード）の効率は、ワークロードを処理するクラスタ・ホストと、ワークロードによってアクセスおよび処理されるデータを保存するクラスタ・ホストとの間の、データ・アクセスおよびネットワーク形成待ち時間の点での距離に顕著に依存する。データにアクセスするための距離が短くなる（データ・アクセスおよびネットワーク形成待ち時間がより短いことに関する）ほど、ワークロードの効率が高くなる。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本開示の目的は、ワークロードを自身のデータの近くに配置することによって、ワークロードによるデータのアクセスの待ち時間を低減させることである。具体的に、この開示において対処している課題は、ワークロードを自身の基礎データの近くに配置することによってワークロードおよびコンピュータ・システム全体の効率を増加させるために、ワークロードに関する知識（通常はワークロード管理システムから来る）と、データ・ストレージに関する知識（通常はストレージ・システムから来る）とをいかに効率的かつ自動的なやり方で組み合わせるかを決定することである。
【課題を解決するための手段】
【０００８】
したがって当該技術を改善するために、本明細書においては、プロセッサによるコンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理のためのさまざまな実施形態が開示されている。一実施形態において、単なる例として、方法は、データ要件エバリュエータ・モジュールとスケジューラ・モジュールとを含むようにコンピューティング・クラスタ内のワークロード・マネージャを構成するステップと、ワークロード・マネージャによってスケジューリングのための入力ワークロードを受信したことに応答して、（ａ）データ要件エバリュエータ・モジュールによってストレージ・システムから入力のセットを検索するステップであって、各々の入力は（ｉ）入力ワークロードが新たなデータの入力／出力（Ｉ／Ｏ：Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）に集中しているか、それとも既存データのＩ／Ｏに集中しているかの表示、（ｉｉ）入力ワークロードに関連するファイルのセットに対するデータ局在性の割合、および（ｉｉｉ）コンピューティング・クラスタ内のホストの各対に対して特定されたデータ・アクセス・コストのうちの少なくとも１つを含む、ステップと、（ｂ）データ要件エバリュエータ・モジュールによって、データ・アクセス検討によって入力ワークロードを行うためにランク付けされたクラスタ・ホストのリストを生成するステップと、（ｃ）クラスタ・ホストのランク付けされたリストをスケジューラ・モジュールに提供するステップと、（ｄ）スケジューラ・モジュールによって、コンピューティング・クラスタ内の特定のホストに対する入力ワークロードのスケジューリングを生成するステップであって、生成されたスケジューリングはデータ・アクセス検討によって最適化されている、ステップとを含む。
【０００９】
前述の例示的実施形態に加えて、さまざまなその他のシステムおよびコンピュータ・プログラム製品の実施形態が提供されて、関連する利点を供給する。前述の概要は、以下の「発明を実施するための形態」においてさらに説明される概念の選択を簡略化した形で紹介するために提供されたものである。この概要は、請求される主題の重要な特徴または必須の特徴を識別することは意図されていないし、請求される主題の範囲の決定を助けるものとして用いられることも意図されていない。
【００１０】
この発明の利点が容易に理解されるようにするために、上記で簡単に説明された発明のより特定的な説明が、添付の図面に示された特定の実施形態を参照することによって与えられることとなる。これらの図面は発明の典型的な実施形態のみを示すものであり、したがってその範囲を制限するものとみなされるべきではないことを理解した上で、添付の図面の使用を通じた付加的な特定性および詳細によって、この発明が記載および説明されることとなる。
【図面の簡単な説明】
【００１１】
【図１】本発明の態様が実現され得るコンピュータ・ストレージ環境を示すブロック図である。
【図２】本発明の態様が実現され得るデータ・ストレージ・システムのハードウェア構造を示すブロック図である。
【図３】本発明の実施形態による例示的クラウド・コンピューティング環境を示すブロック図である。
【図４】本発明の実施形態による抽象化モデル・レイヤを示すブロック図である。
【図５】本発明の態様によるコンピューティング・クラスタにおけるジョブ・スケジューリングおよびワークロード管理のためのアーキテクチャを示すブロック図である。
【図６】本発明の態様によるコンピューティング・クラスタにおけるワークロードのデータ要件を評価するための例示的方法を示す流れ図である。
【図７】本発明の態様によるコンピューティング・クラスタ内のワークロードのファイルの所与のセットに対するデータ局在性の割合を示すブロック図である。
【図８】本発明の態様によるコンピューティング・クラスタにおける所与のワークロードに関連するデータ局在性情報を計算するためのアルゴリズムの例示的方法を示す流れ図である。
【図９】本発明の態様が実現され得るコンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理のための例示的方法を示す付加的な流れ図である。
【発明を実施するための形態】
【００１２】
前に言及したとおり、クラスタ・コンピューティングにおいて、データにアクセスして処理するワークロードの効率は、ワークロードを処理するクラスタ・ホストと、ワークロードによってアクセスおよび処理されるデータを保存するクラスタ・ホストとの間の、データ・アクセスおよびネットワーク形成待ち時間の点での距離に顕著に依存する。データにアクセスするための距離が短くなる（データ・アクセスおよびネットワーク形成待ち時間がより短いことに関する）ほど、ワークロードの効率が高くなる。
【００１３】
本開示の目的は、ワークロードを自身のデータの近くに配置することによって、ワークロードによるデータのアクセスの待ち時間を低減させることである。具体的に、この開示において対処している課題は、ワークロードを自身の基礎データの近くに配置することによってワークロードおよびコンピュータ・システム全体の効率を増加させるために、ワークロードに関する知識（通常はワークロード管理システムから来る）と、データ・ストレージに関する知識（通常はストレージ・システムから来る）とをいかに効率的かつ自動的なやり方で組み合わせるかを決定することである。
【００１４】
元々これらの課題のいくつかに対処することを試みた、いくつかの公知のスケジューリング技術が存在する。たとえば、現行の技術におけるラック認識スケジューリング機構は、ＭａｐＲｅｄｕｃｅワークロードに対して、マップ・タスクをそのタスクに必要とされる入力データを保存するホストまたはその近くにスケジューリングする目的で存在する。この機構においては、クラスタ内のホストとネットワーク・グループとのマッピングを表すユーザの定めたトポロジ・スクリプトを用いて、ネットワークのトポロジが提出される。このトポロジは、ホストをラックにグループ分けし、ラックをデータ・センタにグループ分けしたツリーとして表される。このトポロジを用いて、ホスト間のネットワーク距離（待ち時間）が定められる。したがってワークロードをスケジューリングするときは、所与のワークロードに必要とされる入力データに最も近いホストからリソースが割り当てられることが試みられる。
【００１５】
サービス・インスタンスに対するインターフェースおよび外部プラグ・インを用いたデータ認識スケジューリング機構も存在する。この機構を使用して、データ属性を含むユーザが定めた表現が提示され、サービス・インスタンスに対するファイルにアクセスするコスト値を割り当てるための論理がユーザによって入力される。この機構において、コスト値は再びユーザによって定義および実施される論理によって算出され、ファイル粒度を用い、算出においてデータ局在性、データ分布、データ属性、およびネットワーク・コストがどのように使用されるべきかの指定は提供されない。言い換えると、この機構におけるすべての論理は特定されないユーザの実施に依存する。
【００１６】
既存の方法の課題は、これらの機構がデータ・アクセス・コストを提供するためにユーザが実施する論理および手順に依拠することである。このことの例は、ラック認識スケジューリングにおけるネットワーク・トポロジ・スクリプト、およびデータ認識スケジューリングにおけるサービス・インスタンスごとのファイル・アクセス・コストを生成するための論理を含む。さらに、これらの方法はファイル粒度に対するデータ・アクセス・コストを用いており、このファイル粒度をどのように集計してワークロード粒度にするかを定めることはユーザ論理に任されている。データ・アクセス・コストもユーザに入力されるために静的であると考えられ、たとえばラック認識スケジューリングなどの方法はアクセス・コストの定性的測定を用いる。さらに、既存の方法は通常、特定のタイプのワークロードおよびワークロードに対する特定のタイプのＩ／Ｏパターンをサポートしており、広範囲の可能なワークロード・タイプおよびＩ／Ｏパターンをサポートする一般的なものではない。
【００１７】
したがって、本明細書において検討される技術およびアルゴリズムは既存の方法の制限を克服するものであり、クラスタ化コンピューティングにおけるワークロード・スケジューリングおよびデータ局在性に関するより効率的で一般的な解決策を提供する。これらの技術は、ワークロード管理システムから検索されたワークロードに関する知識と、データ・ストレージ管理システムから検索されたデータ・ストレージに関する知識とを組み合わせて、自身のデータに近いワークロードの最適化した配置を生成することを含む。いくつかの実施形態において、関連するワークロードに関する知識は（ａ）ワークロードによってアクセスされるべきデータ、（ｂ）クラスタ内の利用可能なコンピュート・リソースを有するホスト、および（ｃ）クラスタ内のホスト間のネットワーク形成コストを含んでもよい。それに応じて、関連するデータ・ストレージに関する知識は（ａ）ワークロードにアクセスされるデータはクラスタ内のどの物理的位置に保存されているか、（ｂ）クラスタ内の利用可能なストレージ・リソースを有するホスト、および（ｃ）クラスタ内のホスト内およびホスト間のデータ・アクセス・コストを含んでもよい。
【００１８】
検討されるアーキテクチャは、ネットワークと相互接続され、かつ一緒に作業するように調整された１つまたは複数のホストからなるホストのクラスタを含む。クラスタ・ホスト間の協調は、少なくとも（ａ）クラスタ内のホストにおいて実行中のワークロードのスケジューリング、制御、およびモニタを行うワークロード管理システムと、（ｂ）クラスタ内のホストからのデータを保存してそれへのアクセスを提供するデータ・ストレージ管理システムとによって維持される。
【００１９】
検討されるアーキテクチャにおけるいくつかの実施形態において、データ・ストレージ管理システムは、以下の方法の少なくとも１つを用いてデータを保存してもよい。（ａ）データはローカル・ストレージ・デバイスに保存されてもよく、各ローカル・ストレージ・デバイスはクラスタ内の複数のホストの１つに取り付けられており、（ｂ）データはクラスタ内のホストからアクセス可能な共有ストレージ・デバイスに保存されてもよく、かつ（ｃ）データはローカルおよび共有ストレージ・デバイスの組み合わせに保存されてもよい。さらに、所与のワークロードによってアクセスされるべきデータは、その所与のワークロードに関連付けられていてアクセスされることが予期されるデータ・ファイルまたはデータ・オブジェクトのリストとして指定されてもよい。さまざまな実施形態において、ワークロードによってアクセスされるデータのクラスタ内の位置は、ローカル・ストレージおよび共有ストレージの両方に対して指定されてもよく、ここで（ａ）共有ストレージ・デバイスは対応するホスト名を有し、（ｂ）ローカル・ストレージ・デバイスはホスト名が割り当てられたホストに取り付けられ、かつ（ｃ）共有またはローカル・ストレージ・デバイス内の位置はストレージ識別（ＩＤ：ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を用いて指定される。よってこれに基づいて、ホスト名とストレージＩＤとの組み合わせは、両方のタイプのストレージ・デバイスに対しクラスタ内のグローバル・ストレージの位置を提供する。
【００２０】
クラスタ内のホスト内およびホスト間のデータ・アクセス・コストは、ホスト間のネットワーク形成待ち時間と、各ホスト内のストレージ・デバイス・アクセス待ち時間との組み合わせに基づいて算出される。たとえば、本明細書における発明の概念はいくつかの新たな効率的アルゴリズムを開示しており、そのアルゴリズムは（ａ）ホストのクラスタにおけるデータ・アクセス認識によってワークロードをスケジューリングするためのアルゴリズムであって、このアルゴリズムは最適化スケジューリングを算出するためにワークロードの異なるＩ／Ｏパターンを検討する、アルゴリズムと、（ｂ）データ局在性情報およびデータ・アクセス・コストに基づいてホストのクラスタにおけるデータ・アクセス認識によってワークロードをスケジューリングするための好ましいホストの順序付きリストを算出するためのアルゴリズムと、（ｃ）局在性集合の近似値を算出するためにファイルの効率的サブセットを選択し、局在性集合の近似値を更新するための効率的トリガを定めることによって、ホストのクラスタ内のファイルの大きなセットに対する局在性情報を集計するためのアルゴリズムとを含む。
【００２１】
本明細書において検討される新規のアルゴリズムを用いることで、上述の既存の方法の制限が克服され、一方で次のとおりのより効率的かつ一般的な解決策が提供される。（ａ）ユーザが実施する論理を必要とせずにすべての必要なエレメントが自動的に算出され、この自動的算出はデータ局在性、ネットワーク・コスト、全体のデータ・アクセス・コスト、および最適なワークロード配置情報を含み、（ｂ）ワークロードごとのデータ・アクセス・コストが自動的に計算されてクラスタ全体で使用され、（ｃ）クラスタおよびワークロードに変化が起こったときにこれらのデータ・アクセス・コストは自動的かつ動的に更新され、（ｄ）データ・アクセス・コストの定量的測定が使用され（定性的ではなく）、（ｅ）さまざまなタイプのワークロードが検討およびサポートされ、かつ（ｆ）ワークロードに対するさまざまなタイプのＩ／Ｏパターンが検討およびサポートされる（すなわち、既存データのＩ／Ｏ、新たなデータのＩ／Ｏ、およびＩ／Ｏ集中的でないワークロード）。これらの概念を以下にさらに詳細に説明することとする。
【００２２】
ここで図１をみると、開示される発明の実施形態によるデータ処理ストレージ・システム２０の概略的な図面が示されている。図１に示される特定のシステムは、発明の説明を容易にするために提供されるものである。しかし当業者が認識することとなるとおり、たとえば多様なアーキテクチャおよび能力を有する他のストレージ・システムなどの他のコンピューティング環境を用いてこの発明を実行することもできる。
【００２３】
ストレージ・システム２０は、１つ以上のホスト・コンピュータ２２から入力／出力（Ｉ／Ｏ）要求を受信し、この要求は論理ボリュームにおける論理アドレスにおいてデータを読取るかまたは書込むためのコマンドである。任意の数のホスト・コンピュータ２２が、たとえばネットワークを用いるものなどの当該技術分野において公知である任意の手段によって、ストレージ・システム２０に結合される。ここでは例として、ホスト・コンピュータ２２とストレージ・システム２０とは、データ接続２４およびホスト・バス・アダプタ（ＨＢＡ：Ｈｏｓｔ  Ｂｕｓ  Ａｄａｐｔｅｒｓ）２８を組み込んだストレージ・エリア・ネットワーク（ＳＡＮ：Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）２６によって結合されることが想定されている。論理アドレスは論理ボリューム内のデータ・ブロックの範囲を指定し、ここでは例として各ブロックは５１２バイトを含むことが想定されている。たとえば、所与のホスト・コンピュータ２２におけるデータ処理アプリケーションにおいて用いられる１０ＫＢのデータ記録は２０ブロックを必要とすることとなり、その所与のホスト・コンピュータはそれを論理ボリュームのブロック１，０００から１，０１９を含む論理アドレスに保存されるものと指定してもよい。ストレージ・システム２０はＳＡＮシステム内で、またはＳＡＮシステムとして動作してもよい。
【００２４】
ストレージ・システム２０は、ＳＡＮ２６とプライベート・ネットワーク４６との間でそれぞれデータ接続３０および４４を用い、かつそれぞれアダプタ３２および４２を組み込んで結合されたクラスタ化ストレージ・コントローラ３４を含む。いくつかの構成において、アダプタ３２および４２は、ホストＳＡＮアダプタ（ＨＳＡ：ｈｏｓｔ  ＳＡＮ  ａｄａｐｔｅｒｓ）を含んでもよい。クラスタ化ストレージ・コントローラ３４はストレージ・モジュール３６のクラスタを実現し、ストレージ・モジュール３６の各々はインターフェース３８（アダプタ３２および４２の間で通信する）と、キャッシュ４０とを含む。各ストレージ・モジュール３６は、示されるとおりデータ接続４８によっていくつかのストレージ・デバイス５０に対する責を負う。
【００２５】
前述のとおり、各ストレージ・モジュール３６はさらに所与のキャッシュ４０を含む。しかし当然のことながら、ストレージ・システム２０においてクラスタ化ストレージ・コントローラ３４とともに用いられるキャッシュ４０の数は、任意の便利な数であってもよい。ストレージ・システム２０内のすべてのキャッシュ４０は実質的に同じ方式で動作し、実質的に類似のエレメントを含んでいてもよいが、これは必要条件ではない。各々のキャッシュ４０はほぼ等しいサイズであってもよく、例としてディスクを含み得る物理的ストレージ・デバイス５０のセットと１対１対応で結合されることが想定されている。一実施形態において、物理的ストレージ・デバイスはこうしたディスクを含んでもよい。当業者は、本明細書における説明を異なるサイズのキャッシュに適合させることができるだろう。
【００２６】
ストレージ・デバイス５０の各セットは、複数の低速もしくは高速またはその両方のアクセス時間のマス・ストレージ・デバイスを含み、それは以下の本明細書においては複数のハード・ディスクであることが想定されている。図１は、ストレージ・デバイス５０のそれぞれのセットと結合されたキャッシュ４０を示している。いくつかの構成において、ストレージ・デバイス５０のセットは、異なるパフォーマンス特性を有し得る１つ以上のハード・ディスクを含む。Ｉ／Ｏコマンドに応答して、例として所与のキャッシュ４０が、所与のストレージ・デバイス５０のアドレス可能な物理的位置においてデータを読取るかまたは書込んでもよい。図１に示される実施形態において、キャッシュ４０はストレージ・デバイス５０に対する特定の制御機能を行うことができる。これらの制御機能は代替的に、キャッシュ４０にリンクされたたとえばディスク・コントローラ（図示せず）などのハードウェア・デバイスによって実現されてもよい。
【００２７】
各ストレージ・モジュール３６は、関連するキャッシュ４０の状態を含む自身の状態をモニタし、たとえばブロック間隔をもたらす構成変化などの構成情報をストレージ・システム２０の他のコンポーネントに送信するか、または物理的ストレージのセットに対するＩ／Ｏ要求を許容する速度を制限するように動作する。
【００２８】
コマンドおよびデータのＨＢＡ２８からクラスタ化ストレージ・コントローラ３４および各キャッシュ４０へのルーティングは、ネットワークもしくはスイッチまたはその両方を通じて行われてもよい。ここでは例として、ＨＢＡ２８はＳＡＮ２６の少なくとも１つのスイッチ（図示せず）によってストレージ・モジュール３６に結合されてもよく、このスイッチはデジタル交差接続機能を有する任意の公知のタイプであり得る。付加的または代替的に、ＨＢＡ２８はストレージ・モジュール３６に結合されてもよい。
【００２９】
いくつかの実施形態において、連続的な論理アドレスを有するデータが、モジュール３６間および各々のモジュールのストレージ・デバイス内に分散され得る。代替的には、たとえばバイトまたはブロック・インターリービングなどのその他のアルゴリズムを用いてデータが分散され得る。一般的にこれによって、たとえばＳＡＮ内のボリュームまたはネットワークに取り付けられたストレージ内のファイルが一度に２つ以上の所与のストレージ・デバイス５０から読取られるか、またはそこに書込まれることを可能にすることなどによって、帯域幅が増加する。しかし、この技術はさまざまなストレージ・デバイス間の協調を必要とし、実際にはストレージ・デバイスの任意の障害に対する複雑な備えと、たとえば分散データに関するパリティ情報を保存するための技術などの、エラー・チェック情報を取り扱うための戦略とを必要とし得る。実際に、論理ユニット・パーティションが十分に小さい粒度で分散されるとき、単一の論理ユニットに関連するデータはすべてのストレージ・デバイス５０にまたがり得る。
【００３０】
実例を簡単にする目的のために明確に示されていないが、いくつかの実施形態において、クラスタ化ストレージ・コントローラ３４はたとえばラック・マウント・システム、ミッドプレーン、もしくはバックプレーン、またはその組み合わせなどの特定のハードウェアとともに実現されるために適合されてもよいことを当業者は認識するだろう。実際に、一実施形態におけるプライベート・ネットワーク４６は、バックプレーンを用いて実現されてもよい。再び当業者が認識するであろうとおり、たとえば前述のスイッチ、プロセッサ、コントローラ、およびメモリ・デバイスなどの付加的なハードウェアも、クラスタ化ストレージ・コントローラ３４およびストレージ・システム２０内のその他の場所に組み込まれてもよい。さらに、さまざまなソフトウェア・コンポーネント、オペレーティング・システム、およびファームウェアなどが１つのストレージ・システム２０内に統合されてもよい。
【００３１】
図２は、本発明の実施形態によるホスト・コンピュータ・モニタリングを行うように構成された設備６０の概略的な図面である。本明細書の記載において、ホスト・コンピュータ２２、ストレージ・コントローラ３４、およびそれらのそれぞれのコンポーネントは、識別番号に文字を添付することによって区別されることがあり、よって設備６０は、ＳＡＮ２６Ａを介してクラスタ化ストレージ・コントローラ３４Ａに結合された第１のホスト・コンピュータ２２Ａ（本明細書においては一次ホスト・コンピュータとも呼ばれる）と、ＳＡＮ２６Ｂを介してクラスタ化ストレージ・コントローラ３４Ｂに結合された第２のホスト・コンピュータ２２Ｂ（本明細書においては二次ホスト・コンピュータとも呼ばれる）とを含む。図２に示される構成において、ストレージ・コントローラ３４Ａおよび３４Ｂは、設備ＳＡＮ６２を介して結合される。他の実施形態においては、本明細書に記載されることとなるとおり、ＳＡＮ６２と類似のＳＡＮか、仮想化ネットワーク形成接続か、または任意のその他のコンピュータに実現される媒体を介して、第１のホスト・コンピュータ２２Ａはクラスタ化ストレージ・コントローラ３４Ｂに直接接続されてもよく、第２のホスト・コンピュータ２２Ｂはクラスタ化ストレージ・コントローラ３４Ａに直接接続されてもよい。
【００３２】
ホスト・コンピュータ２２Ａはプロセッサ６４Ａと、メモリ６６Ａと、アダプタ６８Ａとを含む。アダプタ６８Ａは、データ接続２４Ａを介してＳＡＮ２６Ａに結合される。
【００３３】
上述したとおり、モジュール３６Ａはデータ接続４８Ａを介してストレージ・デバイス５０Ａに結合されており、かつアダプタ３２Ａおよび４２Ａと、キャッシュ４０Ａと、インターフェース３８Ａとを含む。モジュール３６Ａは、プロセッサ７０Ａおよびメモリ７２Ａも含む。以下の本明細書に詳細に説明されるとおり、プロセッサ７０Ａはホスト・コンピュータ２２Ａの接続状態を示すメトリクス７４を確立して、そのメトリクスをメモリ７２Ａに保存するように構成される。いくつかの実施形態において、プロセッサ７０Ａはメトリクス７４をストレージ・デバイス５０Ａに保存してもよい。
【００３４】
ホスト・コンピュータ２２Ｂはプロセッサ６４Ｂと、メモリ６６Ｂと、アダプタ６８Ｂとを含む。アダプタ６８Ｂは、データ接続２４Ｂを介してＳＡＮ２６Ｂに結合される。
【００３５】
上述したとおり、モジュール３６Ｂはデータ接続４８Ｂを介してストレージ・デバイス５０Ｂに結合されており、かつアダプタ３２Ｂおよび４２Ｂと、キャッシュ４０Ｂと、インターフェース３８Ｂとを含む。モジュール３６Ｂは、プロセッサ７０Ｂおよびメモリ７２Ｂも含む。
【００３６】
プロセッサ６４Ａ、６４Ｂ、７０Ａ、および７０Ｂは通常、本明細書に記載される機能を行うようにソフトウェアにおいてプログラミングされた汎用目的コンピュータを含む。ソフトウェアは、たとえばネットワークを通じて電子的な形でホスト・コンピュータ２２Ａおよび２２Ｂならびにモジュール３６Ａおよび３６Ｂにダウンロードされてもよいし、たとえば光学、磁気、または電子メモリ媒体などの非一時的有形媒体において提供されてもよい。代替的には、プロセッサのいくつかもしくはすべての機能が専用もしくはプログラマブル・デジタル・ハードウェア・コンポーネントによって行われるか、またはハードウェアおよびソフトウェア・エレメントの組み合わせを用いて行われてもよい。
【００３７】
アダプタ３２Ａ、３２Ｂ、４２Ａ、４２Ｂ、６８Ａ、および６８Ｂの例は、たとえばファイバ・チャネル（ＦＣ：Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ）アダプタ、インターネット・スモール・コンピュータ・システム・インターフェース（ｉＳＣＳＩ：Ｉｎｔｅｒｎｅｔ  Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）アダプタ、ファイバ・チャネル・オーバー・イーサネット（Ｒ）（ＦＣｏＥ：Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ（Ｒ））アダプタ、およびＩｎｆｉｎｉｂａｎｄ（ＴＭ）アダプタなどのスイッチド・ファブリック・アダプタを含む。
【００３８】
図２に示される構成は、ＳＡＮ２６Ａおよび２６Ｂを介してストレージ・コントローラ３４Ａおよび３４Ｂに結合されたストレージ・ホスト・コンピュータ２２Ａおよび２２Ｂを示しているが、その他の構成も本発明の範囲内にあるとみなされるべきである。たとえば、ホスト・コンピュータ２２Ａおよび２２Ｂは、単一のＳＡＮ２６を介して単一のストレージ・コントローラ３４に結合され得る。
【００３９】
さらに、この開示は以下にクラウド・コンピューティングに対する詳細な説明を含むが、本明細書に述べられている教示の実現はクラウド・コンピューティング環境に限定されないことが予め理解される。むしろ本発明の実施形態は、現在公知であるかまたは後で開発される任意のその他のタイプのコンピューティング環境とともに実現され得る。
【００４０】
クラウド・コンピューティングは、最小限の管理努力またはサービスのプロバイダとの対話によって迅速にプロビジョニングおよびリリースされ得る構成可能なコンピューティング・リソース（例、ネットワーク、ネットワーク帯域幅、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想機械、およびサービス）の共有プールへの便利なオンデマンド・ネットワーク・アクセスを可能にするためのサービス配信のモデルである。このクラウド・モデルは少なくとも５つの特性と、少なくとも３つのサービス・モデルと、少なくとも４つの配置モデルとを含んでもよい。
【００４１】
特性は次のとおりである。
オンデマンド・セルフサービス。クラウド消費者は、たとえばサーバ時間およびネットワーク・ストレージなどのコンピューティング・ケイパビリティを、必要に応じて自動的に、サービスのプロバイダとの人的対話を必要とせずに一方的にプロビジョニングできる。
広範なネットワーク・アクセス。ケイパビリティはネットワークを通じて利用可能であり、異種シンまたはシック・クライアント・プラットフォーム（例、携帯電話、ラップトップ、およびＰＤＡ）による使用を促進する標準的な機構を通じてアクセスされる。
リソース・プール。マルチテナント・モデルを用いて複数の消費者にサービスするために、プロバイダのコンピューティング・リソースはプールされ、要求に従って異なる物理および仮想リソースが動的に割り当ておよび再割り当てされる。消費者は一般的に、提供されるリソースの正確な場所に対する制御も知識も有さないが、より高い抽象化レベルにおける場所（例、国、州、またはデータセンタ）を特定できてもよいという点で、場所独立性の意味が存在する。
迅速な順応性。ケイパビリティは、素早くスケール・アウトするために場合によっては自動的に、迅速かつ順応的にプロビジョニングされ、かつ素早くスケール・インするために迅速にリリースされ得る。消費者にとって、プロビジョニングのために利用可能なケイパビリティはしばしば無制限にみえ、任意のときに任意の量が購入され得る。
サービスの測定。クラウド・システムは、サービスのタイプ（例、ストレージ、処理、帯域幅、およびアクティブ・ユーザ・アカウント）に対して適切な何らかの抽象化レベルにおいて計測ケイパビリティを利用することによって、リソースの使用を自動的に制御および最適化する。リソースの使用をモニタ、制御、および報告して、使用されるサービスのプロバイダおよび消費者の両方に対する透明性を提供できる。
【００４２】
サービス・モデルは次のとおりである。
サービスとしてのソフトウェア（ＳａａＳ：Ｓｏｆｔｗａｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）。消費者に提供されるケイパビリティは、クラウド・インフラストラクチャにおいて実行されるプロバイダのアプリケーションの使用である。アプリケーションは、さまざまなクライアント・デバイスからたとえばウェブ・ブラウザ（例、ウェブ・ベースのｅメール）などのシン・クライアント・インターフェースを通じてアクセス可能である。消費者はネットワーク、サーバ、オペレーティング・システム、ストレージ、または個々のアプリケーション・ケイパビリティさえも含む基礎的なクラウド・インフラストラクチャを管理または制御することはなく、例外となり得るのは限られたユーザ特有のアプリケーション構成設定である。
サービスとしてのプラットフォーム（ＰａａＳ：Ｐｌａｔｆｏｒｍ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）。消費者に提供されるケイパビリティは、プロバイダによってサポートされるプログラミング言語およびツールを用いて作成された、消費者が作成または取得したアプリケーションのクラウド・インフラストラクチャへの配置である。消費者はネットワーク、サーバ、オペレーティング・システム、またはストレージを含む基礎的なクラウド・インフラストラクチャを管理または制御することはないが、配置されたアプリケーションおよびおそらくはアプリケーション・ホスティング環境構成に対する制御を有する。
サービスとしてのインフラストラクチャ（ＩａａＳ：Ｉｎｆｒａｓｔｒｕｔｕｒｅ  ａｓ  ａ  Ｓｅｒｖｉｃｅ）。消費者に提供されるケイパビリティは、オペレーティング・システムおよびアプリケーションを含み得る、消費者が任意のソフトウェアを配置および実行することが可能な処理、ストレージ、ネットワーク、およびその他の基本的なコンピューティング・リソースのプロビジョニングである。消費者は基礎的なクラウド・インフラストラクチャを管理または制御することはないが、オペレーティング・システム、ストレージ、配置されたアプリケーションに対する制御、およびおそらくはネットワーク形成コンポーネント（例、ホスト・ファイアウォール）の選択に対する限られた制御を有する。
【００４３】
配置モデルは次のとおりである。
プライベート・クラウド。このクラウド・インフラストラクチャは、ある組織に対してのみ動作される。これはその組織または第３者によって管理されてもよく、オンプレミスまたはオフプレミスに存在してもよい。
コミュニティ・クラウド。このクラウド・インフラストラクチャはいくつかの組織によって共有され、共通する関心事項（例、任務、セキュリティ要件、ポリシー、およびコンプライアンスの検討）を有する特定のコミュニティをサポートする。これはそれらの組織または第３者によって管理されてもよく、オンプレミスまたはオフプレミスに存在してもよい。
パブリック・クラウド。このクラウド・インフラストラクチャは、一般人または大規模な産業グループに対して利用可能にされ、クラウド・サービスを販売する組織が所有している。
ハイブリッド・クラウド。このクラウド・インフラストラクチャは２つ以上のクラウド（プライベート、コミュニティ、またはパブリック）の複合体であり、それらのクラウドは一意のエンティティを留めるが、データおよびアプリケーション・ポータビリティを可能にする標準または独自の技術（例、クラウド間のロード・バランシングのためのクラウド・バースティング）によってともに結合される。
【００４４】
クラウド・コンピューティング環境はサービス指向型であり、ステートレス性、低結合性、モジュラリティ、および意味的な相互運用性に焦点を合わせている。クラウド・コンピューティングの中心には、相互接続されたノードおよびストレージ・システム（例、ストレージ・システム２０）のネットワークを含むインフラストラクチャがある。
【００４５】
ここで図３を参照すると、例示的なクラウド・コンピューティング環境５２が示されている。示されるとおり、クラウド・コンピューティング環境５２は１つ以上のストレージ・システム２０およびクラウド・コンピューティング・ノードを含み、たとえばパーソナル・デジタル・アシスタント（ＰＤＡ：ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ）もしくは携帯電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または自動車のコンピュータ・システム５４Ｎ、あるいはその組み合わせなどの、クラウド消費者によって用いられるローカル・コンピュータ・デバイスが、このクラウド・コンピューティング・ノードによって通信してもよい。ストレージ・システム２０とクラウド・ノードとは互いに通信してもよい。それらは、たとえば本明細書に上述したプライベート、コミュニティ、パブリック、もしくはハイブリッド・クラウド、またはその組み合わせなどの１つ以上のネットワークにおいて、物理的または仮想的にグループ化（図示せず）されてもよい。このことは、クラウド・コンピューティング環境５２がインフラストラクチャ、プラットフォーム、もしくはソフトウェア、またはその組み合わせを、クラウド消費者がそれに対するリソースをローカル・コンピュータ・デバイスにおいて維持する必要のないサービスとして提供することを可能にする。図３に示されるコンピュータ・デバイス５４Ａ〜Ｎのタイプは単なる例示であることが意図されており、ストレージ・システム２０、クラウド・コンピューティング・ノード、およびクラウド・コンピューティング環境５２は、任意のタイプのネットワークもしくはネットワーク・アドレス可能接続（例、ウェブ・ブラウザを使用するもの）またはその両方を通じて、任意のタイプのコンピュータ・デバイスと通信できることが理解される。
【００４６】
ここで図４を参照すると、クラウド・コンピューティング環境５２（図３）によって提供される機能抽象化レイヤのセットが示されている。図４に示されるコンポーネント、レイヤ、および機能は単なる例示であることが意図されており、本発明の実施形態はこれに限定されないことが予め理解されるべきである。示されるとおり、以下のレイヤおよび対応する機能が提供される。
【００４７】
ハードウェアおよびソフトウェア・レイヤ８０は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例は、メインフレーム８１、ＲＩＳＣ（縮小命令セット・コンピュータ（Ｒｅｄｕｃｅｄ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｅｔ  Ｃｏｍｐｕｔｅｒ））アーキテクチャ・ベースのサーバ８２、サーバ８３、ブレード・サーバ８４、ストレージ・デバイス８５、ならびにネットワークおよびネットワーク形成コンポーネント８６を含む。いくつかの実施形態において、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア８７およびデータベース・ソフトウェア８８を含む。
【００４８】
仮想化レイヤ９０は抽象化レイヤを提供し、この抽象化レイヤから仮想エンティティの以下の例が提供されてもよい。仮想サーバ９１、仮想ストレージ９２、仮想プライベート・ネットワークを含む仮想ネットワーク９３、仮想アプリケーションおよびオペレーティング・システム９４、ならびに仮想クライアント９５。
【００４９】
一例において、管理レイヤ１００は以下に記載される機能を提供してもよい。リソース・プロビジョニング１０１は、クラウド・コンピューティング環境内でタスクを行うために使用されるコンピューティング・リソースおよびその他のリソースの動的調達を提供する。計測および価格決定１０２は、クラウド・コンピューティング環境内でリソースが使用される際のコスト追跡と、これらのリソースの消費に対する請求書またはインボイスの送付とを提供する。一例において、これらのリソースはアプリケーション・ソフトウェア・ライセンスを含んでもよい。セキュリティは、クラウド消費者およびタスクに対するアイデンティティ検証、ならびにデータおよびその他のリソースの保護を提供する。ユーザ・ポータル１０３は、消費者およびシステム管理者に対するクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル管理１０４は、必要とされるサービス・レベルが満たされるようにクラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル・アグリーメント（ＳＬＡ：Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）計画および実現１０５は、ＳＬＡによって将来の要求が予測されるクラウド・コンピューティング・リソースに対する事前の取り決めおよびその調達を提供する。
【００５０】
ワークロード・レイヤ１１０は、クラウド・コンピューティング環境が使用され得る機能の例を提供する。このレイヤから提供され得るワークロードおよび機能の例は、マッピングおよびナビゲーション１１１、ソフトウェア開発およびライフサイクル管理１１２、仮想教室の教育配信１１３、データ分析処理１１４、トランザクション処理１１５、ならびに本発明の例示される実施形態の状況におけるさまざまなワークロードおよびジョブ・スケジューリング機能１１６を含む。ワークロードおよびジョブ・スケジューリング機能１１６は、本発明の例示される実施形態のさまざまな目的を達成するために、たとえばハードウェアおよびソフトウェア８０、仮想化９０、管理１００、およびその他のワークロード１１０（たとえばデータ分析処理１１４など）におけるものなど、さまざまな抽象化レイヤのその他の部分とともに働いてもよいことを当業者は認識するだろう。
【００５１】
前述のとおり、本明細書に記載される機構の結果として得られる目標は、データ・アクセス認識によって最適化されたクラスタ・ホストに対する所与のワークロードのスケジューリングを生成することによって、ワークロードがアクセスする必要があるデータが他のクラスタ・ホストに比べて最も最適に入手可能または達成可能であるようなクラスタ・ホストにおいてワークロードが行われるようにすることである。この目標を実現するための、コンピューティング・クラスタにおけるワークロード管理およびスケジューリングのためのアーキテクチャ５００が図５に提供されている。
【００５２】
アーキテクチャ５００は前述のストレージ・システム２０を含み、このストレージ・システム２０は複数のモジュールを中に含んだワークロード・マネージャ５０２と通信しており、そのモジュールは少なくともデータ要件エバリュエータ・モジュール５０６と、スケジューラ・モジュール５１０とを含む。なお、当業者が認識するであろうとおり、アーキテクチャ５００内に記載される複数のモジュール（すなわち、データ要件エバリュエータ・モジュール５０６およびスケジューラ・モジュール５１０）は、本明細書において提供される機能を達成するために各々がコンピュータ実行可能コード部分を含んでもよいし、分散型コンピューティング環境内の１つ以上の物理的ハードウェア・モジュール（単数または複数）を含んでもよい。さらに、ワークロード・マネージャ５０２は、現在開示されているもの以外の付加的なモジュールをさらに含んでもよい。
【００５３】
説明されることとなるとおり、さまざまな実施形態において、データ要件エバリュエータ・モジュール５０６は、ストレージ・システム２０およびワークロード・マネージャ５０２内の他のモジュールから少なくとも３つのタイプの入力（ブロック５０４として参照される）を受信する。次いでデータ要件エバリュエータ・モジュール５０６は、それぞれのモジュールから受信した入力に関連するデータ・アクセス検討によって所与のワークロードを実行するためにランク付けされたクラスタ・ホストのリストを生成する。
【００５４】
データ要件エバリュエータ５０６によって受信される第１の入力５０４は、所与のワークロードに関連するファイルのセットに対して生成されたデータ局在性の割合を含んでもよい。このデータ局在性の割合の入力は、所与のワークロードに関連するファイルのセットに対して、クラスタ内の各々のホストに保存されているファイルのセットの合計データの割合を特定する。言い換えると、データ局在性の割合の入力は、ファイルのセットの合計データのうちのどの割合が、基礎データを保存する異なるそれぞれのホストに保存されているかを示す。
【００５５】
データ要件エバリュエータ５０６によって受信される第２の入力５０４は、クラスタ内のホストの各対に対して特定されるデータ・アクセス・コストを含んでもよい。このデータ・アクセス・コストの入力は、クラスタ内の各ホストに対して、クラスタ内の任意の他のホストに保存されたデータにアクセスするための（例、待ち時間およびその他の検討に関する）コストを特定する。
【００５６】
前述の入力に加えて、本明細書によって特定されるデータ要件エバリュエータ・モジュール５０６によって、以下を含むさらなる入力５０４が受信されてもよい。（ａ）現在のワークロードは新たなデータのＩ／Ｏに集中しているか、それとも既存データのＩ／Ｏに集中しているかに関する表示。この表示入力は通常、ワークロード属性に対する特定の情報を追跡するワークロード・マネージャ５０２内の他のモジュール、もしくはワークロードＩ／Ｏパターンに対する情報を追跡し得るストレージ・システム２０、またはその両方から検索され得る。（ｂ）クラスタ内のコンピュート・リソースの可用性。この入力は通常、クラスタ内のコンピュート・リソース可用性を追跡するワークロード・マネージャ５０２内の他のモジュールから検索され得る。加えて（ｃ）クラスタ内のストレージ・リソース（空きストレージ・スペース）の可用性。この入力は通常、ストレージ・システム２０から検索され得る。前に特定された入力を与えられると、データ要件エバリュエータ・モジュール５０６は、次いで各入力に関連する情報を用いて、データ・アクセス検討によって所与のワークロードを実行するためにランク付けされたクラスタ・ホストのリスト５０８を生成する。
【００５７】
さまざまな実施形態において、スケジューラ・モジュール５１０は、データ要件エバリュエータ・モジュール５０６からデータ・アクセス検討によって所与のワークロードを実行するためにランク付けされたクラスタ・ホストのリストを受信し、その後特定のクラスタ・ホストに対する所与のワークロードのスケジューリングを出力５１２として生成し、この出力スケジューリングはデータ・アクセス認識によって最適化されている。
【００５８】
さまざまな実施形態において、ストレージ・システム２０は、所与のワークロードを行うために必要とされる基礎データを保存し、このデータに対するアクセスを提供し、かつワークロード・マネージャ５０２内のさまざまなモジュールに前述の入力を提供する。
【００５９】
図６は、本発明の態様によるコンピューティング・クラスタにおけるワークロードのデータ要件を評価するための例示的方法／アルゴリズム６００を示す流れ図を示している。より具体的には、方法６００はデータ要件エバリュエータ・モジュール５０６によって適用される検討アルゴリズムを特定して、データ・アクセス検討によって所与のワークロードを実行するためにランク付けされたクラスタ・ホストのリストを生成する。データ要件エバリュエータ・モジュール５０６のアルゴリズムは、本明細書によって特定される少なくとも３つの例示的シナリオを取り扱う。
【００６０】
さまざまな実施形態において、方法６００は、特に図１〜４に示される環境のいずれかにおいて本発明によって行われてもよい。当然、本記載を読んだ当業者が理解するであろうとおり、方法６００には図６に特定的に記載されるものよりも多いかまたは少ない動作が含まれてもよい。
【００６１】
方法６００の各々のステップは、動作環境の任意の好適なコンポーネントによって行われてもよい。たとえばさまざまな実施形態において、方法６００は、プロセッサまたは１つ以上のプロセッサを内部に有する何らかのその他のデバイスによって、部分的または全体的に行われてもよい。たとえば処理回路（単数または複数）、チップ（単数または複数）、および／あるいは、ハードウェアもしくはソフトウェアまたはその両方において実現され、好ましくは少なくとも１つのハードウェア・コンポーネントを有するモジュール（単数または複数）などのプロセッサは、方法６００の１つ以上のステップを行うために任意のデバイスにおいて使用されてもよい。例示的なプロセッサは、中央処理ユニット（ＣＰＵ：ｃｅｎｔｒａｌ  ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ）、特定用途向け集積回路（ＡＳＩＣ：ａｐｐｌｉｃａｔｉｏｎ  ｓｐｅｃｉｆｉｃ  ｉｎｔｅｇｒａｔｅｄ  ｃｉｒｃｕｉｔ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙ）など、その組み合わせ、または当該技術分野において公知の任意のその他の好適なコンピュータ・デバイスを含むが、それに限定されない。
【００６２】
第１のシナリオにおいて、ワークロードは既存データのＩ／Ｏに集中している。すなわち、ワークロードは、たとえばストレージ・システム２０などに保存された既存データの使用に集中していると判定される。よって、ブロック６０２において開始し、ブロック６０４において所与のワークロードが確かにＩ／Ｏに集中しているとき、さらにブロック６０６においてワークロードが既存データのＩ／Ｏに集中していると判定されたとき、アルゴリズム６００はブロック６１０において、データ局在性およびデータ・アクセス・コスト情報による好ましいホストの順序付きリストを生成する。次いで、方法６００はブロック６１４において終了する。
【００６３】
第２のシナリオにおいて、ワークロードは新たなデータのＩ／Ｏに集中している。すなわち、ワークロードは、たとえばストレージ・システム２０などに保存されるべき新たなデータの作成に集中していると判定される。よってブロック６０４に戻って、ここで所与のワークロードが確かにＩ／Ｏに集中していると判定され、さらにブロック６０６においてワークロードが新たなデータの作成に集中していると判定されたとき、アルゴリズム６００はブロック６０８において、利用可能なストレージによる好ましいホストの順序付きリストを生成する。具体的には、あるホストがクラスタ内の他のホストと比べてより多くの利用可能なストレージ・スペースに関連付けられているとき、生成されたリストにおいて、このより多くの利用可能なストレージ・スペースを有するホストのランキングは、リストのその他のホストと比べてより高くなる。次いで、方法６００はブロック６１４において終了する。
【００６４】
第３のシナリオにおいて、ワークロードはＩ／Ｏに集中していないと判定される。よってブロック６０４に戻って、ここでワークロードがＩ／Ｏに集中していないと判定されるとき、アルゴリズム６００はブロック６１２において好ましいホストの空リストを生成して、データ・アクセス検討に基づく好ましいホストは存在しないことを示す。次いで、方法６００はブロック６１４において終了する。
【００６５】
以下に、データ局在性およびデータ・アクセス・コスト情報による好ましいホストの順序付きリストを生成するために考慮されるアルゴリズムを規定する。このアルゴリズムは、既存データのＩ／Ｏに集中していると判定されたワークロードのシナリオを取り扱うために、データ要件エバリュエータ・モジュール５０６によって適用される。このアルゴリズムは入力として、データ局在性の割合およびデータ・アクセス・コスト（どちらの入力も以下にさらに詳細に考察される）を受信し、出力として、ストレージ・システム２０に保存された既存データを使用するときのこうしたＩ／Ｏに集中しているワークロードに対して特定的に最適化された好ましいホストの順序付きリストを生成する。
【００６６】
入力：データ局在性の割合
いくつかの実施形態において、データ要件エバリュエータ・モジュール５０６のアルゴリズムによって受信される第１の入力は、所与のワークロードに関連するファイルのセットに対して生成されたデータ局在性の割合である。このデータ局在性の割合の入力は、所与のワークロードに関連するファイルのセットに対して、各々のクラスタ・ホストに保存されているファイルのセットの合計データの割合を特定する。この入力を生成するために、各ファイルに対する局在性情報（すなわち、各々のクラスタ・ホストに保存された各ファイルのデータの割合）が集計されて、ワークロードに関連するファイルのセットのレベルにされる。
【００６７】
この実施形態において、クラスタ内の各ホストに対して、０（そのホストにはファイルのセットのデータが保存されていないことを示す）から１（そのホストにファイルのセットのすべてのデータが保存されていることを示す）の範囲の値が算出される。なお、データのセクションがクラスタ内の複数のホストに保存されることもあり得る。さらに注記しておくと、以後の本明細書におけるＤ［Ｈｉ］の参照は、（以下の第２および第３の入力においてさらに説明されることとなるとおり）ホストＨｉに保存されるワークロードに関連するファイルのセットの合計サイズの割合を示す。
【００６８】
図７は、コンピューティング・クラスタ内のワークロードのファイルの所与のセットに対するデータ局在性の割合の入力７００の例のブロック図を示している。この入力７００の例は、クラスタ内の３つのホスト、すなわちホスト１（ブロック７０２）、ホスト２（ブロック７０４）、およびホスト３（ブロック７０６）を示している。所与のワークロードに関連するファイルのセットの合計サイズは、マークなしのバーと線入りのバーとを含む集計バーとして示されており、ここで集計バーはファイルのセットの合計サイズの１００％を表している。各ホストに保存される所与のワークロードに関連するファイルのセットの合計サイズの割合（パーセンテージとして参照される）は、したがって各マークなしバーの下の線入りバーとして示されており、ホスト１（７０２）またはＤ［Ｈ１］はファイルのセットの合計データの４０％または０．４の値を有し、ホスト２（７０４）はＤ［Ｈ２］としてファイルのセットの合計データの２０％または０．２の値を有し、ホスト３（７０６）はＤ［Ｈ３］としてファイルのセットの合計データの８０％または０．８の値を有することが例示される。なおこの例においては、上記に参照されるとおり、ファイルのセットのデータのセクションがクラスタ内の複数のホストに保存されることがあるため、すべてのホストの合計パーセンテージ（４０％＋２０％＋８０％）は１００％より大きいパーセンテージに等しい。
【００６９】
入力：データ・アクセス・コスト
いくつかの実施形態において、データ要件エバリュエータ・モジュール５０６のアルゴリズムによって受信される第２の入力は、クラスタ内のホストの各対に対して特定されるデータ・アクセス・コストである。この情報はクラスタ全体に対して算出され、言い換えると、クラスタ全体のホストの各対に対してデータ・アクセス・コストが評価される。現在のクラスタ・トポロジに対して、この算出情報は静的であるが、クラスタ内のトポロジ変化の判定が行われるとき（例、クラスタに対するホストの追加／除去）、データ要件エバリュエータ・モジュール５０６内で新たなクラスタ・トポロジに対するデータ・アクセス・コスト情報が更新される。
【００７０】
前述のとおり、クラスタ内のホストの各対に対してデータ・アクセス・コスト情報が算出されて、行列で表されてもよく、その行列表記は次のとおりであってもよい。
Ｃ［Ｈｉ，Ｈｊ］＝ホストＨｉからホストＨｊに保存されたデータにアクセスするコスト
行列内の各セルに対する値の範囲は０から１の範囲であってもよく、ここで０＝ローカル・ホスト・アクセス、および１＝最大ネットワーク・アクセス・コスト（例、予め定められた待ち時間閾値を超える最大ネットワーク・アクセス・コスト）である。さまざまな実施形態において、各ホストにおいて実行される既存の機能を用いて、クラスタ内のその他のホストの各々に対してＩ／Ｏを行い、Ｉ／Ｏの待ち時間を測定し、その統計的メトリクスを計算することによって、データ・アクセス・コストが自動的に算出されてもよい。クラスタに新たなホストが加わるとき、新たなホストに対する待ち時間を測定するために、クラスタ内の既存のホストの各々に加えて新たなホストに対してこの機能が実行されるべきである。それに加えて、さらなるオプションは、クラスタ・ホスト間の進行中のデータに関するネットワーク形成を追跡し、この情報に基づいてデータ・アクセス・コストを推論することを含んでもよい。
【００７１】
以下の表１００は、前に特定した値の範囲を用いたクラスタ内の３つのホストに対するデータ・アクセス・コストの例を示すものである。この例において、ホスト２および３は互いにより近く（すなわち、１未満の値の範囲を有する）、ホスト１は特にホスト３からより遠い（すなわち、１の値の範囲を有する）。
【００７２】
【表１】
2021517683.tif 000003
【００７３】
好ましいホストの順序付きリストを算出する
さまざまな実施形態において、前述の２つの入力を与えられると、次いでデータ要件エバリュエータ・モジュール５０６のアルゴリズムは、所与のワークロードを走らせる（実行する）ための好ましいホストの順序付きリストを生成する。ホストの順序付けは、各ホストＨｉに対する、以下に提案される式によるホストＨｉにおいて実行されるワークロードに対するデータ・アクセスに対する期待コストの計算に基づいて生成される。
【００７４】
【数１】
2021517683.tif 000004
【００７５】
規定された式は、ホストＨｉ以外のホストからデータを検索する期待コストと、このイベントの確率（すなわち、ホストＨｉ以外のホストからデータを検索する確率）とを掛けることによって、ＥＣ［Ｈｉ］として示される、ホストＨｉにおいて実行されるワークロードに対するデータ・アクセスに対する期待コストの計算を可能にする。前に明確にされたとおり、ホストＨｉ（すなわち、ローカル・ホスト）に対するデータ・アクセスのコストは、ネットワーク待ち時間の点ではゼロであることが付加的に想定される。
【００７６】
与えられた式に示されるとおり、ホストＨｉ以外のホストからデータを検索する確率は、ホストＨｉに保存されていない所与のワークロードに関連するファイルの合計サイズの割合によって与えられる。この要素は、前述のデータ局在性の割合の入力に基づいて計算されてもよい。さらに、ホストＨｉ以外のホストからデータを検索する期待コストは、ホストＨｉ以外のクラスタ内のすべてのホストにわたって、ホストＨｉにおいて実行されるワークロードによってホストＨｊからデータを検索するコストと、ホストＨｉにおいて実行されるワークロードによってホストＨｊからデータを検索する確率とを掛けたものを集約することによって与えられる。この確率を算出するために提案される方法は、次の式において特定される。
【００７７】
【数２】
2021517683.tif 000005
【００７８】
確率を計算するためのこの式において、ホストＨｉにおいて実行されるワークロードによってホストＨｊからデータを検索する確率は、ホストＨｊに保存されたデータ部分の割合を、ホストＨｉ以外のクラスタ内のすべてのホストに保存された合計データの割合で割ることによって算出される。既存データのＩ／Ｏに集中したワークロードに対して最適化された好ましいホストの出力順序付きリストを生成するために、ホストは自身の算出されたＥＣ［Ｈｉ］値の昇順に基づいて順序付けされる。すなわち、ホストＨｉのＥＣ［Ｈｉ］値が低いほど、ホストＨｉが所与のワークロードを実行するために選択される優先度が高くなる。
【００７９】
いくつかの実施形態において、ワークロード・マネージャ５０２のスケジューラ・モジュール５１０は、所与の（入力）ワークロードを行うためのリソース割り当て要求を受信し、それにはデータ要件エバリュエータ・モジュール５０６によって計算されたデータ・アクセス検討によって所与のワークロードを実行するためにランク付けされた好ましいホストの順序付きリストが付随する。
【００８０】
次いでスケジューラ・モジュール５１０は、割り当て要求を満たすように、所与のワークロードに関連するリソース割り当て要求および好ましいホストの順序付きリスト（リストが空でないとき）によって、好ましいホストからコンピュート・リソースを割り当てることを試みる。スケジューラ・モジュール５１０の出力は、クラスタ・ホストに対する所与のワークロードのスケジューリングであり、このスケジューリングはデータ・アクセス認識によって最適化されており、クラスタのこれらのホスト内に割り当てられたコンピュート・リソースを用いて、所与のワークロードが行われる。
【００８１】
さまざまな実施形態において、局在性情報をファイル・レベルからファイルのセットのレベルに集計するためのアルゴリズムは、以下によって行われる。
【００８２】
（１）最初に、ストレージ・サイズ・カウンタのセットがリセットされ、ここで各カウンタはクラスタ内のホストに割り当てられている。さらに、クラスタに対する全体のストレージ・サイズ・カウンタが付加的にリセットされる。これらのカウンタは、クラスタの各ホストに保存されたデータの割合のデータ・サイズを特定する。（２）その後、セット内のすべてのファイルがスキャンされ、各ファイルに対して以下が行われる。（ａ）現在のファイルの局在性情報が検索される（すなわち、各々のクラスタ・ホストに保存されたファイルのデータ・サイズ）。この情報は通常、ストレージ・システム２０から得られる。（ｂ）ホストのストレージ・サイズ・カウンタに現在のファイルの局在性情報が加えられる。加えて（ｃ）全体のストレージ・サイズ・カウンタに現在のファイルの合計サイズが加えられる。（３）次いで、全体のストレージ・サイズ・カウンタから各ホストのストレージ・サイズ・カウンタの割合が計算される。
【００８３】
所与のワークロードに関連するファイルのセットが大きい場合は、そのファイルのセットの各個々のファイルの局在性情報のクエリを行うことはパフォーマンスの点から禁じられることがある。こうした大きいファイルのセットの場合（すなわち、セット内のファイルの数が予め定められた閾値を超えているファイルのセット）に対して、以下の最適化が検討される。１つの最適化は、ファイルのセットに対する局在性情報の近似値を計算および維持することを含んでもよい。たとえば、近似値はファイルのセットからのファイルのサブセットのクエリを行うことに基づいていてもよく、ここでファイルのサブセットは以下の基準の任意の組み合わせであり得る。（ａ）ファイルのセットの大きい方からＫのファイル、（ｂ）最高のＩ／Ｏアクセスによって特徴付けられるＬのファイル、もしくは（ｃ）一番最近のＩ／Ｏアクセスを有するＭのファイル、またはその組み合わせ。
【００８４】
この例において、Ｋ、Ｌ、およびＭは、ファイルのセットにおけるファイルの総数よりも小さい予め定められた値である。Ｋ、Ｌ、およびＭの値は、結果として得られる数のファイルの局在性情報のクエリを行うための典型的なコストもしくは時間またはその両方が、許容可能な閾値以下となるように選択されるべきである。ファイルのサイズ、Ｉ／Ｏアクセス・パターン、およびアクセス・リーセンシのメトリクスは経時的に動的であるため、これらのメトリクスは時間の最近のウィンドウに対する統計的な値として算出されてもよい。
【００８５】
いくつかの実施形態においては、たとえば各々の基準に対するファイルのメトリクスに基づいて各ファイルに対する重み付き集計メトリクスを算出することなどによって、記載された基準の組み合わせが計算されてもよい。したがって、検討される技術は所与の基準に基づいてファイルのセットからファイルのサブセットを選択し、ファイルのサブセット内のファイルに対する局在性情報のクエリを行い、この情報を集計し、この情報に基づいてファイルのフル・セットに対する局在性情報の近似値を更新する。この近似値は付加的に維持されて、実行のために提出されるワークロードの特定のインスタンスではなく、ワークロードのタイプ（またはテンプレート）に関連付けられてもよい。
【００８６】
局在性情報のクエリのオーバーヘッドをさらに低減させるために、ファイルのセットに対する局在性情報の近似値を更新するためのトリガを定めるための方法がさらに提案される。局在性情報の近似値を更新するためのトリガを定めるステップは、以下の基準の任意の組み合わせに基づいていてもよく、よってトリガは以下を含んでもよい。（ａ）ワークロードのタイプ（またはテンプレート）の登録、（ｂ）クラスタ内で実行するワークロード・タイプのインスタンスを配置するための要求、もしくは（ｃ）近似値の前回の更新から経過した期間が指定された閾値を超えたことの検出、またはその組み合わせ。したがって、トリガの例はワークロード・タイプのインスタンスを配置するための要求を含んでもよく、この要求は、最新の更新時間との差が指定された閾値以上である時間に提出される。
【００８７】
図８は、前述の概念を例示する、コンピューティング・クラスタにおける所与のワークロードに関連するデータ局在性情報を計算するためのアルゴリズムの例示的方法を示す流れ図を示す。さまざまな実施形態において、方法８００は、特に図１〜４に示される環境のいずれかにおいて本発明によって行われてもよい。当然、本記載を読んだ当業者が理解するであろうとおり、方法８００には図８に特定的に記載されるものよりも多いかまたは少ない動作が含まれてもよい。
【００８８】
方法８００の各々のステップは、動作環境の任意の好適なコンポーネントによって行われてもよい。たとえばさまざまな実施形態において、方法８００は、プロセッサまたは１つ以上のプロセッサを内部に有する何らかのその他のデバイスによって、部分的または全体的に行われてもよい。たとえば処理回路（単数または複数）、チップ（単数または複数）、および／あるいは、ハードウェアもしくはソフトウェアまたはその両方において実現され、好ましくは少なくとも１つのハードウェア・コンポーネントを有するモジュール（単数または複数）などのプロセッサは、方法８００の１つ以上のステップを行うために任意のデバイスにおいて使用されてもよい。例示的なプロセッサは、中央処理ユニット（ＣＰＵ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）など、その組み合わせ、または当該技術分野において公知の任意のその他の好適なコンピュータ・デバイスを含むが、それに限定されない。
【００８９】
方法８００はブロック８０２において開始され、データ局在性近似値を更新するためのトリガ（前に特定された基準に基づく）が起こったかどうかが判定される（ブロック８０４）。トリガが検出されていないとき、方法８００はブロック８１２に進んでトリガを待ち、ブロック８０４に戻る。ブロック８０４においてトリガが検出されたとき、ブロック８０６においてデータ局在性近似値を更新するために、ワークロードに関連するファイルのセット内からファイルのサブセットが選択される。ブロック８０８において、ファイルのサブセット内のこれらのファイルに対する局在性情報のクエリが行われ、この局在性情報がファイル・レベルから集計されてファイルのサブセットのレベルにされる。最後にブロック８１０において、ファイルのサブセットに対する集計された局在性情報を用いて、データ要件エバリュエータ・モジュール５０６内でデータ局在性近似値が更新され、方法８００はブロック８１２に進んで、別のトリガ・イベントを待つ。なお前に特定されたとおり、ブロック８１０Ａに参照されるとおり、データ局在性近似値は実行のために提出されるワークロードの特定のインスタンスではなく、ワークロードのタイプ（またはテンプレート）に関連付けられてもよい。
【００９０】
図９は、本発明の態様が実現され得るコンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理のための例示的方法を示す付加的な流れ図を示す。さまざまな実施形態において、方法９００は、特に図１〜４に示される環境のいずれかにおいて本発明によって行われてもよい。当然、本記載を読んだ当業者が理解するであろうとおり、方法９００には図９に特定的に記載されるものよりも多いかまたは少ない動作が含まれてもよい。
【００９１】
方法９００の各々のステップは、動作環境の任意の好適なコンポーネントによって行われてもよい。たとえばさまざまな実施形態において、方法９００は、プロセッサまたは１つ以上のプロセッサを内部に有する何らかのその他のデバイスによって、部分的または全体的に行われてもよい。たとえば処理回路（単数または複数）、チップ（単数または複数）、および／あるいは、ハードウェアもしくはソフトウェアまたはその両方において実現され、好ましくは少なくとも１つのハードウェア・コンポーネントを有するモジュール（単数または複数）などのプロセッサは、方法９００の１つ以上のステップを行うために任意のデバイスにおいて使用されてもよい。例示的なプロセッサは、中央処理ユニット（ＣＰＵ）、特定用途向け集積回路（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）など、その組み合わせ、または当該技術分野において公知の任意のその他の好適なコンピュータ・デバイスを含むが、それに限定されない。
【００９２】
方法９００はブロック９０２において開始され、ブロック９０４のとおり、コンピューティング・クラスタ内のワークロード・マネージャが、データ要件エバリュエータ・モジュールおよびスケジューラ・モジュールを含むように構成される。ブロック９０６のとおり、ワークロード・マネージャによってスケジューリングのための入力ワークロードを受信したことに応答して、（ａ）データ要件エバリュエータ・モジュールはストレージ・システムから入力のセットを検索し、各々の入力は（ｉ）入力ワークロードが新たなデータの入力／出力（Ｉ／Ｏ）に集中しているか、それとも既存データのＩ／Ｏに集中しているかの表示と、（ｉｉ）入力ワークロードに関連するファイルのセットに対するデータ局在性の割合と、（ｉｉｉ）コンピューティング・クラスタ内のホストの各対に対して特定されたデータ・アクセス・コストとのうちの少なくとも１つ以上を含む。その後ブロック９０８において、データ要件エバリュエータ・モジュールは、データ・アクセス検討によって入力ワークロードを行うためにランク付けされたクラスタ・ホストのリストを生成する。ブロック９１０において、クラスタ・ホストのランク付けされたリストはスケジューラ・モジュールに提供され、ブロック９１２において、スケジューラ・モジュールはデータ・アクセス検討によって最適化されたクラスタ・ホストのランク付けされたリスト内の特定のクラスタ・ホストに対する入力ワークロードのスケジューリングを生成する。方法９００はブロック９１４において終了する。
【００９３】
本発明はシステム、方法、もしくはコンピュータ・プログラム製品、またはその組み合わせであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を行わせるためのコンピュータ可読プログラム命令を有するコンピュータ可読ストレージ媒体（または複数の媒体）を含んでもよい。
【００９４】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持および保存できる有形デバイスであり得る。コンピュータ可読ストレージ媒体は、たとえば電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイス、または前述の任意の好適な組み合わせなどであってもよいが、それに限定されない。コンピュータ可読ストレージ媒体のより具体的な例の非網羅的リストは以下を含む。ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、リード・オンリ・メモリ（ＲＯＭ：ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、消去可能プログラマブル・リード・オンリ・メモリ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：ｓｔａｔｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）、ポータブル・コンパクト・ディスク・リード・オンリ・メモリ（ＣＤ−ＲＯＭ：ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）、デジタル多用途ディスク（ＤＶＤ：ｄｉｇｉｔａｌ  ｖｅｒｓａｔｉｌｅ  ｄｉｓｋ）、メモリ・スティック、フレキシブル・ディスク、機械的にコード化されたデバイス、たとえばパンチ・カードまたは記録された命令を有する溝の中の隆起構造など、および前述の任意の好適な組み合わせ。本明細書において用いられるコンピュータ可読ストレージ媒体は、たとえば電波もしくはその他の自由に伝播する電磁波、導波路もしくはその他の伝送媒体を通じて伝播する電磁波（例、光ファイバ・ケーブルを通過する光パルス）、またはワイヤを通じて伝送される電気信号など、それ自体が一時的信号であると解釈されるべきではない。
【００９５】
本明細書に記載されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピュータ／処理デバイスにダウンロードされ得るか、またはたとえばインターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくはワイヤレス・ネットワーク、またはその組み合わせなどのネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードされ得る。ネットワークは銅伝送ケーブル、光伝送ファイバ、ワイヤレス伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、もしくはエッジ・サーバ、またはその組み合わせを含んでもよい。各コンピュータ／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信して、そのコンピュータ可読プログラム命令をそれぞれのコンピュータ／処理デバイス内のコンピュータ可読ストレージ媒体に記憶するために転送する。
【００９６】
本発明の動作を実行するためのコンピュータ可読プログラム命令はアセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ：ｉｎｓｔｒｕｃｔｉｏｎ−ｓｅｔ−ａｒｃｈｉｔｅｃｔｕｒｅ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または１つ以上のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードであってもよく、このプログラミング言語はオブジェクト指向プログラミング言語、たとえばＳｍａｌｌｔａｌｋ、またはＣ＋＋など、および従来の手続き型プログラミング言語、たとえば「Ｃ」プログラミング言語または類似のプログラミング言語などを含む。コンピュータ可読プログラム命令は、すべてがユーザのコンピュータで実行されてもよいし、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータで実行されてもよいし、一部がユーザのコンピュータで、一部がリモート・コンピュータで実行されてもよいし、すべてがリモート・コンピュータまたはサーバで実行されてもよい。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク（ＬＡＮ：ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ）または広域ネットワーク（ＷＡＮ：ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ）を含む任意のタイプのネットワークを通じてユーザのコンピュータに接続されてもよいし、（たとえば、インターネット・サービス・プロバイダを用いてインターネットを通じて）外部コンピュータへの接続が行われてもよい。いくつかの実施形態において、たとえばプログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：ｆｉｅｌｄ−ｐｒｏｇｒａｍｍａｂｌｅ  ｇａｔｅ  ａｒｒａｙｓ）、またはプログラマブル・ロジック・アレイ（ＰＬＡ：ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ａｒｒａｙｓ）などを含む電子回路は、本発明の態様を行うために電子回路をパーソナライズするためのコンピュータ可読プログラム命令の状態情報を使用することによって、コンピュータ可読プログラム命令を実行してもよい。
【００９７】
本明細書においては、本発明の実施形態による方法、装置（システム）、およびコンピュータ・プログラム製品の流れ図もしくはブロック図またはその両方を参照して、本発明の態様を説明している。流れ図もしくはブロック図またはその両方の各ブロック、および流れ図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実現され得ることが理解されるだろう。
【００９８】
これらのコンピュータ可読プログラム命令は、汎用目的コンピュータ、特定目的コンピュータ、またはマシンを生成するためのその他のプログラマブル・データ処理装置のプロセッサに提供されることによって、そのコンピュータまたはその他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定される機能／動作を実現するための手段を生じてもよい。これらのコンピュータ可読プログラム命令は、コンピュータ、プログラマブル・データ処理装置、もしくはその他のデバイスまたはその組み合わせに特定の方式で機能するように指示できるコンピュータ可読ストレージ媒体にも保存されることによって、命令が保存されたコンピュータ可読ストレージ媒体が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定される機能／動作の態様を実現する命令を含む製造物を含んでもよい。
【００９９】
コンピュータ可読プログラム命令は、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにもロードされて、コンピュータに実現されるプロセスを生成するためにコンピュータ、他のプログラマブル装置、または他のデバイスにおいて一連の動作ステップを行わせることによって、そのコンピュータ、他のプログラマブル装置、または他のデバイスにおいて実行される命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定される機能／動作を実現してもよい。
【０１００】
図面における流れ図およびブロック図は、本発明のさまざまな実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および動作を示すものである。これに関して、流れ図またはブロック図の各ブロックは、指定される論理機能（単数または複数）を実現するための１つ以上の実行可能命令を含むモジュール、セグメント、または命令の一部を表してもよい。いくつかの代替的実施において、ブロック内に示される機能は、図面に示されるものとは異なる順序で起こってもよい。たとえば、連続して示される２つのブロックは、実際には実質的に同時に実行されてもよいし、関与する機能によってはこれらのブロックがときには逆の順序で実行されてもよい。加えて、ブロック図もしくは流れ図またはその両方の各ブロック、およびブロック図もしくは流れ図またはその両方のブロックの組み合わせは、指定された機能または動作を行うか、特定目的のハードウェアおよびコンピュータ命令の組み合わせを実行する特定目的のハードウェア・ベースのシステムによって実現され得ることが注目されるだろう。
【図１】
2021517683.tif 000006
【図２】
2021517683.tif 000007
【図３】
2021517683.tif 000008
【図４】
2021517683.tif 000009
【図５】
2021517683.tif 000010
【図６】
2021517683.tif 000011
【図７】
2021517683.tif 000012
【図８】
2021517683.tif 000013
【図９】
2021517683.tif 000014
【手続補正書】
【提出日】令和3年4月13日(2021.4.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサによるコンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理のための方法であって、
前記コンピューティング・クラスタ内のワークロード・マネージャがデータ要件エバリュエータ・モジュールおよびスケジューラ・モジュールを含むように構成するステップと、
前記ワークロード・マネージャによってスケジューリングのための入力ワークロードを受信したことに応答して、
前記データ要件エバリュエータ・モジュールによって、ストレージ・システムから入力のセットを検索するステップであって、前記入力の各々は
前記入力ワークロードが新たなデータの入力／出力（Ｉ／Ｏ）に集中しているか、それとも既存データのＩ／Ｏに集中しているかの表示と、
前記入力ワークロードに関連するファイルのセットに対するデータ局在性の割合と、
前記コンピューティング・クラスタ内のホストの各対に対して特定されたデータ・アクセス・コストとのうちの少なくとも１つを含む、前記検索するステップと、
前記データ要件エバリュエータ・モジュールによって、データ・アクセス検討によって前記入力ワークロードを行うためにランク付けされたクラスタ・ホストのリストを生成するステップと、
クラスタ・ホストの前記ランク付けされたリストを前記スケジューラ・モジュールに提供するステップと、
前記スケジューラ・モジュールによって、前記コンピューティング・クラスタ内の特定のホストに対する前記入力ワークロードのスケジューリングを生成するステップであって、前記生成されたスケジューリングは前記データ・アクセス検討によって最適化されている、前記スケジューリングを生成するステップと
を含む、方法。
【請求項２】
前記データ局在性の割合の入力は、前記入力ワークロードに関連する前記ファイルのセットに対して、前記クラスタ・ホストの各々にそれぞれ保存されている前記ファイルのセットの合計データの割合を特定し、
前記データ・アクセス・コストの入力は、各クラスタ・ホストに対して、前記コンピューティング・クラスタ内の任意の他のクラスタ・ホストに保存されたデータにアクセスするコストを特定し、前記データ・アクセス・コストは、前記クラスタ・ホスト間のネットワーク形成待ち時間と、前記クラスタ・ホストの各々内のストレージ・デバイス・アクセス待ち時間とに基づいて計算される、請求項１に記載の方法。
【請求項３】
前記データ要件エバリュエータ・モジュールによって、
前記コンピューティング・クラスタ内のコンピュート・リソースの可用性と、
前記コンピューティング・クラスタ内のストレージ・リソースの可用性と
のうちの少なくとも１つを含むさらなる入力を受信するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記データ要件エバリュエータ・モジュールによって前記所与のワークロードを行うためにランク付けされたクラスタ・ホストの前記リストを前記生成するステップは、
前記入力ワークロードが既存データのＩ／Ｏに集中している場合、前記データ局在性およびデータ・アクセス・コストの入力による好ましいホストの順序付きリストとして前記ランク付けされたリストを生成するステップと、
前記入力ワークロードが新たなデータのＩ／Ｏに集中している場合、利用可能なストレージによる好ましいホストの前記順序付きリストを生成するステップと、
前記入力ワークロードがＩ／Ｏに集中していない場合、好ましいホストの空リストを生成するステップと
をさらに含む、請求項１に記載の方法。
【請求項５】
利用可能なストレージによる好ましいホストの前記順序付きリストを生成するステップは、前記クラスタ・ホストの第１のものに他のクラスタ・ホストと比べてより多くの利用可能なストレージが存在すると判定した場合に、前記クラスタ・ホストの前記第１のもののランクを前記他のクラスタ・ホストと比べて前記順序付きリストにおいてより高くなるように設定するステップに基づく、請求項４に記載の方法。
【請求項６】
前記スケジューラ・モジュールによって前記クラスタ・ホストに対する前記入力ワークロードの前記スケジューリングを前記生成するステップは、
前記入力ワークロードに対するリソース割り当て要求を受信するステップと、
前記データ要件エバリュエータ・モジュールからの前記データ・アクセス検討によって前記所与のワークロードを実行するためにランク付けされた好ましいホストの順序付きリストを受信するステップと、
前記割り当て要求を満たすために、前記リソース割り当て要求および好ましいホストの前記順序付きリストによって前記好ましいホストからコンピュート・リソースを割り当てることを試みるステップと
のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項７】
前記ストレージ・システムは、
ローカル・ストレージ・デバイスにデータを保存するステップであって、各ローカル・ストレージ・デバイスは複数の前記クラスタ・ホストの１つに取り付けられている、前記保存するステップと、
前記クラスタ・ホストからアクセス可能な共有ストレージ・デバイスにデータを保存するステップと、
前記ローカルおよび共有ストレージ・デバイスの組み合わせにデータを保存するステップと
のうちの少なくとも１つを行う、請求項１に記載の方法。
【請求項８】
前記入力ワークロードに関連する前記ファイルのセットのデータの前記クラスタ内の位置は、
前記共有ストレージ・デバイスに対応するホスト名を割り当てるステップと、
前記クラスタ・ホストの各々に前記ローカル・ストレージ・デバイスを取り付けるステップであって、各々の前記クラスタ・ホストにはホスト名が割り当てられている、前記取り付けるステップと、
前記位置を特定する前記ローカルまたは共有ストレージ・デバイス内のストレージ識別（ＩＤ）を用いるステップであって、前記ホスト名およびストレージＩＤは、前記ローカルおよび共有ストレージ・デバイスに対し前記クラスタ内のグローバル・ストレージの位置を提供する、前記用いるステップと
によってローカル・ストレージおよび共有ストレージの両方に対して特定される、請求項７に記載の方法。
【請求項９】
コンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理のためのシステムであって、前記システムは
前記コンピューティング・クラスタ内のワークロード・マネージャを含み、前記ワークロード・マネージャはデータ要件エバリュエータ・モジュールと、スケジューラ・モジュールとを含み、前記システムはさらに、
メモリ・デバイスに保存された命令を実行するプロセッサを含み、前記プロセッサは前記命令を実行する際に、
前記ワークロード・マネージャによってスケジューリングのための入力ワークロードを受信したことに応答して、
前記データ要件エバリュエータ・モジュールによって、ストレージ・システムから入力のセットを検索するステップであって、前記入力の各々は
前記入力ワークロードが新たなデータの入力／出力（Ｉ／Ｏ）に集中しているか、それとも既存データのＩ／Ｏに集中しているかの表示と、
前記入力ワークロードに関連するファイルのセットに対するデータ局在性の割合と、
前記コンピューティング・クラスタ内のホストの各対に対して特定されたデータ・アクセス・コストとのうちの少なくとも１つを含む、前記検索するステップと、
前記データ要件エバリュエータ・モジュールによって、データ・アクセス検討によって前記入力ワークロードを行うためにランク付けされたクラスタ・ホストのリストを生成するステップと、
クラスタ・ホストの前記ランク付けされたリストを前記スケジューラ・モジュールに提供するステップと、
前記スケジューラ・モジュールによって、前記コンピューティング・クラスタ内の特定のホストに対する前記入力ワークロードのスケジューリングを生成するステップであって、前記生成されたスケジューリングは前記データ・アクセス検討によって最適化されている、前記スケジューリングを生成するステップと
を行う、システム。
【請求項１０】
前記データ局在性の割合の入力は、前記入力ワークロードに関連する前記ファイルのセットに対して、前記クラスタ・ホストの各々にそれぞれ保存されている前記ファイルのセットの合計データの割合を特定し、
前記データ・アクセス・コストの入力は、各クラスタ・ホストに対して、前記コンピューティング・クラスタ内の任意の他のクラスタ・ホストに保存されたデータにアクセスするコストを特定し、前記データ・アクセス・コストは、前記クラスタ・ホスト間のネットワーク形成待ち時間と、前記クラスタ・ホストの各々内のストレージ・デバイス・アクセス待ち時間とに基づいて計算される、請求項９に記載のシステム。
【請求項１１】
前記プロセッサは、前記データ要件エバリュエータ・モジュールによって、
前記コンピューティング・クラスタ内のコンピュート・リソースの可用性と、
前記コンピューティング・クラスタ内のストレージ・リソースの可用性と
のうちの少なくとも１つを含むさらなる入力を受信する、請求項９に記載のシステム。
【請求項１２】
前記データ要件エバリュエータ・モジュールによって前記所与のワークロードを行うためにランク付けされたクラスタ・ホストの前記リストを前記生成するステップは、
前記入力ワークロードが既存データのＩ／Ｏに集中している場合、前記データ局在性およびデータ・アクセス・コストの入力による好ましいホストの順序付きリストとして前記ランク付けされたリストを生成するステップと、
前記入力ワークロードが新たなデータのＩ／Ｏに集中している場合、利用可能なストレージによる好ましいホストの前記順序付きリストを生成するステップと、
前記入力ワークロードがＩ／Ｏに集中していない場合、好ましいホストの空リストを生成するステップと
をさらに含む、請求項９に記載のシステム。
【請求項１３】
利用可能なストレージによる好ましいホストの前記順序付きリストを生成するステップは、前記クラスタ・ホストの第１のものに他のクラスタ・ホストと比べてより多くの利用可能なストレージが存在すると判定した場合に、前記クラスタ・ホストの前記第１のもののランクを前記他のクラスタ・ホストと比べて前記順序付きリストにおいてより高くなるように設定するステップに基づく、請求項１２に記載のシステム。
【請求項１４】
前記スケジューラ・モジュールによって前記クラスタ・ホストに対する前記入力ワークロードの前記スケジューリングを前記生成するステップは、
前記入力ワークロードに対するリソース割り当て要求を受信するステップと、
前記データ要件エバリュエータ・モジュールからの前記データ・アクセス検討によって前記所与のワークロードを実行するためにランク付けされた好ましいホストの順序付きリストを受信するステップと、
前記割り当て要求を満たすために、前記リソース割り当て要求および好ましいホストの前記順序付きリストによって前記好ましいホストからコンピュート・リソースを割り当てることを試みるステップと
のうちの少なくとも１つを含む、請求項９に記載のシステム。
【請求項１５】
前記ストレージ・システムは、
ローカル・ストレージ・デバイスにデータを保存するステップであって、各ローカル・ストレージ・デバイスは複数の前記クラスタ・ホストの１つに取り付けられている、前記保存するステップと、
前記クラスタ・ホストからアクセス可能な共有ストレージ・デバイスにデータを保存するステップと、
前記ローカルおよび共有ストレージ・デバイスの組み合わせにデータを保存するステップと
のうちの少なくとも１つを行う、請求項９に記載のシステム。
【請求項１６】
前記入力ワークロードに関連する前記ファイルのセットのデータの前記クラスタ内の位置は、
前記共有ストレージ・デバイスに対応するホスト名を割り当てるステップと、
前記クラスタ・ホストの各々に前記ローカル・ストレージ・デバイスを取り付けるステップであって、各々の前記クラスタ・ホストにはホスト名が割り当てられている、前記取り付けるステップと、
前記位置を特定する前記ローカルまたは共有ストレージ・デバイス内のストレージ識別（ＩＤ）を用いるステップであって、前記ホスト名およびストレージＩＤは、前記ローカルおよび共有ストレージ・デバイスに対し前記クラスタ内のグローバル・ストレージの位置を提供する、前記用いるステップと
によってローカル・ストレージおよび共有ストレージの両方に対して特定される、請求項１５に記載のシステム。
【請求項１７】
プロセッサによるコンピューティング・クラスタにおけるデータ・アクセス認識によるワークロード管理のためのコンピュータ・プログラムであって、１以上のプロセッサに、請求項１乃至８のいずれか１項に記載の方法の各ステップを実行させるコンピュータ・プログラム。
【国際調査報告】
2021517683.tif 000015
2021517683.tif 000016