IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特許7191906リソース割当制御装置、計算機システム、及びリソース割当制御方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-12-09
(45)【発行日】2022-12-19
(54)【発明の名称】リソース割当制御装置、計算機システム、及びリソース割当制御方法
(51)【国際特許分類】
   G06F 11/34 20060101AFI20221212BHJP
   G06F 9/50 20060101ALI20221212BHJP
【FI】
G06F11/34 142
G06F9/50 120A
【請求項の数】 10
(21)【出願番号】P 2020151371
(22)【出願日】2020-09-09
(65)【公開番号】P2022045666
(43)【公開日】2022-03-22
【審査請求日】2021-05-20
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110000279
【氏名又は名称】弁理士法人ウィルフォート国際特許事務所
(72)【発明者】
【氏名】島田 明男
(72)【発明者】
【氏名】早坂 光雄
【審査官】石川 亮
(56)【参考文献】
【文献】特開2020-123848(JP,A)
【文献】特開2013-182502(JP,A)
【文献】米国特許出願公開第2014/0380307(US,A1)
【文献】国際公開第2015/068299(WO,A1)
【文献】米国特許出願公開第2019/0286488(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/34
G06F 9/50
(57)【特許請求の範囲】
【請求項1】
所定のノードで実行されるソフトウェアに割り当てる前記ノードのハードウェアのリソース量を制御するリソース割当制御装置であって、
前記ハードウェアのリソース量と、前記リソース量のハードウェアにより前記ソフトウェアで実現可能な性能と、の対応関係を示す性能リソース量情報を記憶する記憶部と、
前記記憶部に接続されたプロセッサと、を有し、
前記プロセッサは、
前記ソフトウェアによる目標性能を受け付け、
前記性能リソース量情報に基づいて、前記目標性能の実現に必要なハードウェアのリソース量を決定し、
決定した前記リソース量のハードウェアを前記ソフトウェアに割り当てるように設定し、
前記ソフトウェアは、複数のノードのそれぞれで実行され、前記複数のノードでデータを分散して管理する分散データストアを構成するソフトウェアであり、
前記性能リソース量情報は、前記ソフトウェアでのIO操作の種別毎についてのハードウェアのリソース量と、実現可能な性能との対応関係を含む
リソース割当制御装置。
【請求項2】
前記プロセッサは、
前記ソフトウェアに対して割り当てる前記ハードウェアのリソース量を複数のリソース量に変更することにより、前記複数のリソース量のそれぞれを割り当てた際に実現される性能を取得し、
割り当てた前記ハードウェアのリソース量と、実現される前記性能とに基づいて前記性能リソース量情報を作成し、
作成した前記性能リソース量情報を前記記憶部に格納する
請求項1に記載のリソース割当制御装置。
【請求項3】
前記プロセッサは、
前記ノードから決定された前記リソース量のハードウェアが割り当てられた前記ソフトウェアの実行における性能を取得し、
取得した前記性能に基づいて、前記性能リソース量情報を更新し、
更新した性能リソース量情報に基づいて、前記目標性能の実現に必要なハードウェアのリソース量を決定し、
決定した前記リソース量のハードウェアを前記ソフトウェアに割り当てるように設定する
請求項1に記載のリソース割当制御装置。
【請求項4】
前記ハードウェアは、複数種類存在し、
前記性能リソース量情報は、複数のハードウェアの種類のそれぞれについてのリソース量と、前記ソフトウェアで実現可能な性能との対応関係を含み、
前記プロセッサは、
前記性能リソース量情報に基づいて、複数のハードウェアのそれぞれのリソース量を決定する
請求項1に記載のリソース割当制御装置。
【請求項5】
前記性能リソース量情報は、前記ソフトウェアで実現可能な性能から、前記性能を実現可能な前記ハードウェアのリソース量を導出可能な性能モデルである
請求項1に記載のリソース割当制御装置。
【請求項6】
前記プロセッサは、
前記IO操作の種別毎の目標性能を受け付け、
1以上の前記IO操作の種別についての目標性能に基づいて、必要なハードウェアのリソース量を決定する
請求項に記載のリソース割当制御装置。
【請求項7】
前記プロセッサは、
複数の前記IO操作の種別についての目標性能から、前記ソフトウェアでのIO操作の種別のうちの前記ソフトウェアでの実行がない又は少ないI/O操作の種別に対する目標性能を除いた目標性能に基づいて、必要なハードウェアのリソース量を決定する
請求項に記載のリソース割当制御装置。
【請求項8】
ソフトウェアを実行する1以上の実行ノードと、前記ソフトウェアに割り当てる前記実行ノードのハードウェアのリソース量を制御するリソース割当制御装置とを備える計算機システムであって、
前記リソース割当制御装置は、
前記ハードウェアのリソース量と、前記リソース量のハードウェアにより前記ソフトウェアで実現可能な性能と、の対応関係を示す性能リソース量情報を記憶し、
前記ソフトウェアによる目標性能を受け付け、
前記性能リソース量情報に基づいて、前記目標性能の実現に必要なハードウェアのリソース量を決定し、
決定した前記リソース量のハードウェアを前記ソフトウェアに割り当てるように前記実行ノードを設定し、
前記ソフトウェアは、複数のノードのそれぞれで実行され、前記複数のノードでデータを分散して管理する分散データストアを構成するソフトウェアであり、
前記性能リソース量情報は、前記ソフトウェアでのIO操作の種別毎についてのハードウェアのリソース量と、実現可能な性能との対応関係を含む
計算機システム。
【請求項9】
前記性能リソース量情報を作成する作成ノードを更に備え、
前記作成ノードは、
前記ソフトウェアに対して割り当てる前記ハードウェアのリソース量を複数のリソース量に変更することにより、前記複数のリソース量のそれぞれを割り当てた際に実現される性能を取得し、
割り当てた前記ハードウェアのリソース量と、取得した前記性能とに基づいて前記性能リソース量情報を作成し、
作成した前記性能リソース量情報を前記リソース割当制御装置に送信する
請求項に記載の計算機システム。
【請求項10】
所定のノードで実行されるソフトウェアに割り当てる前記ノードのハードウェアのリソース量を制御するリソース割当制御装置によるリソース割当制御方法であって、
前記ハードウェアのリソース量と、前記リソース量のハードウェアにより前記ソフトウェアで実現可能な性能と、の対応関係を示す性能リソース量情報を記憶部に記憶し、
前記ソフトウェアによる目標性能を受け付け、
前記性能リソース量情報に基づいて、前記目標性能の実現に必要なハードウェアのリソース量を決定し、
決定した前記リソース量のハードウェアを前記ソフトウェアに割り当てるように設定し、
前記ソフトウェアは、複数のノードのそれぞれで実行され、前記複数のノードでデータを分散して管理する分散データストアを構成するソフトウェアであり、
前記性能リソース量情報は、前記ソフトウェアでのIO操作の種別毎についてのハードウェアのリソース量と、実現可能な性能との対応関係を含む
リソース割当制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ソフトウェアの実行に対するハードウェア(Hardware)のリソース(HWリソース)の割当制御技術に関する。
【背景技術】
【0002】
AI(Artificial Intelligence)やデータ分析のデータを格納するためのストレージとして、データレイクが広く用いられている。データレイクはマルチプロトコルデータストアであり、主に、Fileストレージ/Objectストレージ/NoSQL等の分散データストアが用いられる。データレイクでは、複数の分散データストアが混在するため、データレイクを構成する各ノードにおいて、分散データストア間のHWリソースの競合が発生し、分散データストアの性能が不安定となる問題がある。このため、このような問題を解決するためのQoS(Quality of Service)制御が求められる。
【0003】
QoS制御に関する技術としては、例えば、Linux(登録商標)のCgroupsや、特許文献1に記載の技術のように、サーバ上のソフトウェアに割り当てるHWリソース量を制御する技術が知られている。このような技術を用いると、データレイク上で実行される各分散データストアに割り当てるHWリソース量をデータレイクの管理者が設定することが可能になる。この結果、競合発生時も各分散データストアが設定量のHWリソースを占有して利用することができ、一定の性能を維持できる。
【先行技術文献】
【特許文献】
【0004】
【文献】米国特許第10,255,217号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記した技術では、分散データストアに割り当てるHWリソース量を管理者が手動で算出するため、各分散データストアの目標性能に応じて過不足なくHWリソースの割当量を設定することが難しい。
【0006】
例えば、分散データストアに対するHWリソース量の割当量が不充分だと、その分散データストアが目標性能を達成できない可能性がある。一方、分散データストアにHWリソース量を過剰に割り当てると、他の分散データストアへ十分なHWリソースを割り当てることができず、他の分散データストアにおいて目標性能を達成できなくなる可能性がある。このため、各分散データストアに対する正確なQoS制御が困難である。
【0007】
また、データレイクの運用中において、データレイクを構成するノード数の増減や分散データストアのプログラムのアップデート、バグなどの影響により、HWリソースの割当量と、性能との関係が変化する可能性がある。当初において、分散データストアに対するHWリソースの割当量を管理者が正確に設定できていたとしても、このようなHWリソースの割当量と性能との関係が変化してしまうと、目標性能の達成が困難になる可能性がある。
【0008】
また、分散データストアでは、実行するオペレーション(IO操作)の種別ごとに必要とするHWリソースの量が異なる。このため、CPU(Central Processingn Unit)を多く消費するオペレーションのために、CPUの割当量を大きくしたが、実際にはそのオペレーションが実行されなかった場合には、CPUのリソースが無駄に消費されてしまう。
【0009】
本発明は、上記事情に鑑みなされたものであり、その目的は、ソフトウェアに対してHWリソースを適切に割り当てることのできる技術を提供することにある。
【課題を解決するための手段】
【0010】
上記目的を達成するため、一観点に係るリソース割当制御装置は、所定のノードで実行されるソフトウェアに割り当てる前記ノードのハードウェアのリソース量を制御するリソース割当制御装置であって、前記ハードウェアのリソース量と、前記リソース量のハードウェアにより前記ソフトウェアで実現可能な性能と、の対応関係を示す性能リソース量情報を記憶する記憶部と、前記記憶部に接続されたプロセッサと、を有し、前記プロセッサは、前記ソフトウェアによる目標性能を受け付け、前記性能リソース量情報に基づいて、前記目標性能の実現に必要なハードウェアのリソース量を決定し、決定した前記リソース量のハードウェアを前記ソフトウェアに割り当てるように設定する。
【発明の効果】
【0011】
本発明によれば、ソフトウェアに対してHWリソースを適切に割り当てることができる。
【図面の簡単な説明】
【0012】
図1図1は、第1実施形態に係る計算機システムの全体構成図である。
図2図2は、第1実施形態に係る性能モデル作成処理に関わる構成要素のハードウェア構成図である。
図3図3は、第1実施形態に係る性能モデル作成処理に関わる構成要素の論理構成図である。
図4図4は、第1実施形態に係る性能モデル作成処理のフローチャートである。
図5図5は、第1実施形態に係る性能モデルの概要を示す図である。
図6図6は、第1実施形態に係る性能モデル管理テーブルの構成図である。
図7図7は、第1実施形態に係るリソース割当設定処理に関わる構成要素のハードウェア構成図である。
図8図8は、第1実施形態に係るリソース割当設定処理に関わる構成要素の論理構成図である。
図9図9は、第1実施形態に係るリソース割当設定処理のフローチャートである。
図10図10は、第1実施形態に係る目標性能入力用GUI(GraphicalUser Interface)画面を示す図である。
図11図11は、第1実施形態に係るリソース割当設定テーブルの構成図である。
図12図12は、第1実施形態に係る性能モデル修正・設定更新処理のフローチャートである。
図13図13は、第1実施形態に係るオペレーションパターン学習処理のフローチャートである。
図14図14は、第1実施形態に係るオペレーションパターン管理テーブルの構成図である。
図15図15は、第1実施形態に係るオペレーションパターンに基づく設定更新処理のフローチャートである。
図16図16は、第1実施形態に係るリソース割当設定テーブルの更新の概要を説明する図である。
図17図17は、第2実施形態に係る計算機システムにおける性能モデル作成処理に関わる構成要素のハードウェア構成図である。
図18図18は、第2実施形態に係る性能モデル作成処理に関わる構成要素の論理構成図である。
図19図19は、第2実施形態に係る性能モデル作成処理のフローチャートである。
図20図20は、第2実施形態に係る性能モデルの概要を示す図である。
図21図21は、第2実施形態に係る性能モデル管理テーブルの構成図である。
図22図22は、第2実施形態に係るリソース割当設定処理に関わる構成要素のハードウェア構成図である。
図23図23は、第2実施形態に係るリソース割当設定処理に関わる構成要素の論理構成図である。
図24図24は、第2実施形態に係るリソース割当設定処理のフローチャートである。
図25図25は、第2実施形態に係る目標性能入力GUI画面を示す図である。
図26図26は、第2実施形態に係るリソース割当設定テーブルの構成図である。
図27図27は、第2実施形態に係る性能モデル修正・設定更新処理のフローチャートである。
【発明を実施するための形態】
【0013】
実施形態について、図面を参照して説明する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また実施形態の中で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0014】
なお、以下の説明では、「プログラム」を動作の主体として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU)によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェースデバイス(例えばNIC(Network Interface Card))を用いながら行うため、処理の主体がプログラムとされてもよい。プログラムを動作の主体として説明された処理は、プロセッサ或いはそのプロセッサを有する計算機が行う処理としてもよい。
【0015】
なた、以下の説明では、「AAAテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「AAAテーブル」を「AAA情報」と呼ぶことができる。
【0016】
図1は、第1実施形態に係る計算機システムの全体構成図である。
【0017】
計算機システム1は、リソース割当制御装置の一例としての管理ノード100と、クライアントノード150,151と、ストレージノード120,130と、管理用クライアントノード160と、性能モデル作成ノード200と、ベンチマーク実行ノード210とを備える。
【0018】
クライアントノード150,151と、ストレージノード120,130とは、例えば、LAN(Local Area Network)171等のネットワークを介して接続されている。また、ストレージノード120,130と、管理ノード100と、管理用クライアントノード160と、性能モデル作成ノード200と、ベンチマーク実行ノード210とは、例えば、LAN170等のネットワークを介して接続されている。
【0019】
クライアントノード150,151は、所定の処理を実行し、処理に伴ってストレージノード120,130上に構成される分散データストアに対するIOリクエスト(リードリクエスト、ライトリクエスト等)を発行する。クライアントノードは、図では2台だが、1台でもよく、3台以上であってもよい。
【0020】
ストレージノード120,130は、実行ノードの一例であり、協調して1以上の分散データストア(分散データストア140(分散データストアA),分散データストア141(分散データストアB))を構成する。図では、ストレージノードは2台だが、3台以上であってもよい。また、図では、複数のストレージノードにより構成される分散データストアは、2つだが、1つ、または3以上の分散データストアが構成されてもよい。
【0021】
ストレージノード120,130が構成する分散データストア140,141は、クライアントノード150,160からのIOリクエストを受領し、IOリクエストに対応するIO処理を実行する。また、ストレージノード120,130は、それぞれリソース割当制御プログラム121,131を格納する。リソース割当制御プログラム121,131は、管理ノード100からのHWリソースの割当量(HWリソース割当量)の設定に基づいて、各分散データストアのプログラム(ソフトウェア)に割り当てるHWリソースの量を制御する。
【0022】
管理用クライアントノード160は、管理者からストレージノード上に構成される各分散データストア140,141における目標性能を受け付け、目標性能を管理ノード100に送信する。
【0023】
管理ノード100は、QoS制御プログラム110を記憶する。QoS制御プログラム110は、性能モデル111を格納する。性能モデル111は、リソース割当量とプログラムの性能との関係を示す性能リソース量情報の一例である。図では、性能モデルは1つだけ示しているが、ストレージノード上に構成された分散データストアの数だけ存在していてもよい。
【0024】
QoS制御プログラム110は、性能モデル111と、管理用クライアントノード160から受領した目標性能とに基づいて、ストレージノード120,130上で構成される分散データストア140,141に対するHWリソース割当量を算出する。また、QoS制御プログラム110は、ストレージノード120のリソース割当制御プログラム121と、ストレージノード130のリソース割当制御プログラム131とに算出したHWリソース割当量を送信する。
【0025】
性能モデル作成ノード200は、作成ノードの一例であり、性能モデル111を作成し、管理ノード100に格納する。ベンチマーク実行ノード210は、ストレージノード120,130におけるプログラム(例えば、分散データストアを構成するプログラム)の性能を測定する。なお、管理ノード100に、性能モデル作成ノード200又はベンチマーク実行ノード210の少なくとも一方を組み込んでもよい。
【0026】
次に、ストレージノード120,130により構成されるデータレイクにおけるQoS制御について説明する。
【0027】
図2は、第1実施形態に係る性能モデル作成処理に関わる構成要素のハードウェア構成図である。
【0028】
本実施形態では、性能モデル作成処理に対しては、計算機システム1の構成要素の中の主に、性能モデル作成ノード200と、ベンチマーク実行ノード210と、ストレージノード120と、ストレージノード130とが関わっている。
【0029】
なお、本実施形態では、性能モデル作成処理においては、クライアントノードに対して最終的に提供される分散データストアを構成するストレージノード120,130を用いているが、本発明はこれに限られず、ストレージノード120,130とは別の同様な複数のストレージノードを用いるようにしてもよい。
【0030】
ストレージノード120は、プロセッサの一例としてのCPU222と、主記憶装置としてのメモリ223と、二次記憶装置としてのディスク装置224と、NIC225,226とを備える。CPU222と、メモリ223と、ディスク装置224と、NIC225,226とは、バス221を介して接続されている。
【0031】
CPU222は、ディスク装置224上に格納されているプログラムをメモリ223上に読み込んで実行することにより、各種処理を実行する。CPU222は、バス221、NIC226を介して、LAN170に接続されている他の装置(ストレージノード130、性能モデル作成ノード200、ベンチマーク実行ノード210等)との間でデータを送受信する。
【0032】
ストレージノード130は、プロセッサの一例としてのCPU232と、主記憶装置としてのメモリ233と、二次記憶装置としてのディスク装置234と、NIC235,236とを備える。CPU232と、メモリ233と、ディスク装置234と、NIC235,236とは、バス231を介して接続されている。
【0033】
CPU232は、ディスク装置234上に格納されているプログラムをメモリ233上に読み込んで実行することにより、各種処理を実行する。CPU232は、バス231、NIC236を介して、LAN170に接続されている他の装置(ストレージノード120、性能モデル作成ノード200、ベンチマーク実行ノード210等)との間でデータを送受信する。
【0034】
性能モデル作成ノード200は、プロセッサの一例としてのCPU202と、主記憶装置としてのメモリ203と、二次記憶装置としてのディスク装置204と、NIC205とを備える。CPU202と、メモリ203と、ディスク装置204と、NIC205とは、バス201を介して接続されている。
【0035】
CPU202は、ディスク装置204上に格納されているプログラムをメモリ203上に読み込んで実行することにより、各種処理を実行する。CPU202は、バス201、NIC205を介して、LAN170に接続されている他の装置(ストレージノード120,130、ベンチマーク実行ノード210等)との間でデータを送受信する。
【0036】
ベンチマーク実行ノード210は、プロセッサの一例としてのCPU212と、主記憶装置としてのメモリ213と、二次記憶装置としてのディスク装置214と、NIC215とを備える。CPU212と、メモリ213と、ディスク装置214と、NIC215とは、バス211を介して接続されている。
【0037】
CPU212は、ディスク装置214上に格納されているプログラムをメモリ213上に読み込んで実行することにより、各種処理を実行する。CPU212は、バス211、NIC215を介して、LAN170に接続されている他の装置(ストレージノード120,130、性能モデル作成ノード200等)との間でデータを送受信する。
【0038】
図3は、第1実施形態に係る性能モデル作成処理に関わる構成要素の論理構成図である。
【0039】
ストレージノード120は、データストアプログラム341(データストアプログラムA)と、データストアプログラム351(データストアプログラムB)と、リソース割当制御プログラム121とを格納する。
【0040】
ストレージノード130は、データストアプログラム342(データストアプログラムA)と、データストアプログラム352(データストアプログラムB)と、リソース割当制御プログラム131とを格納する。
【0041】
ストレージノード120のCPU222によって実行されるデータストアプログラム341と、ストレージノード130のCPU232によって実行されるデータストアプログラム342とは、協調して動作し、分散データストア140(分散データストアA)を構成する。
【0042】
また、ストレージノード120のCPU222によって実行されるデータストアプログラム351と、ストレージノード130のCPU232によって実行されるデータストアプログラム352とは、協調して動作し、分散データストア141(分散データストアB)を構成する。
【0043】
リソース割当制御プログラム121は、CPU222に実行されると、ストレージノード120で実行される各データストアプログラムに割り当てるHWリソースの量(HWリソース割当量)の制御を行う。
【0044】
リソース割当制御プログラム131は、CPU232に実行されると、ストレージノード130で実行される各データストアプログラムに割り当てるHWリソース割当量の制御を行う。
【0045】
性能モデル作成ノード200は、性能モデル作成プログラム300を格納する。性能モデル作成プログラム300は、CPU202に実行されると、ストレージノード120,130上で構成される分散データストア140,141の性能モデルを作成する。
【0046】
ベンチマーク実行ノード210は、ベンチマークプログラム310を格納する。ベンチマークプログラム310は、CPU212に実行されると、ストレージノード120,130上で構成される分散データストア140,141の性能を測定する。
【0047】
次に、性能モデルを作成する性能モデル作成処理400について説明する。
【0048】
図4は、第1実施形態に係る性能モデル作成処理のフローチャートである。
【0049】
本実施形態の性能モデル作成処理では、性能モデルを、分散データストアのオペレーションの種別毎に作成する。ここで、オペレーションとは、データストアに対するIO操作のことをいい、例えば、データストアがFileデータストアであれば、シーケンシャルRead(リード)/Write(ライト)、ランダムRead/Write、メタデータ操作(例えば、ファイル作成/削除、ディレクトリ作成/削除等)であり、データストアがNoSQLデータストアであれば、DB(Data Base)へのデータ挿入、削除、検索等のことをいう。また、本実施形態では、各オペレーションの種別毎の性能モデルを、HWリソースごとに作成する。ここで、HWリソースとは、CPU、メモリ、NIC帯域、ディスク装置のIO帯域等である。この性能モデル作成処理によると、各HWリソースの割当量と、その割当量での分散データストア(厳密には、データストアプログラム)の性能との関係を示す性能モデルがオペレーションの種別ごとに作成される。
【0050】
まず、性能モデル作成ノード200の性能モデル作成プログラム300(厳密には、性能モデル作成プログラム300を実行するCPU202)は、分散データストアの全てのオペレーションの種別についての性能モデルを作成したか否かを確認する(ステップ410)。この結果、全てのオペレーションの種別について性能モデルを作成している場合(ステップ410:Yes)には、性能モデル作成プログラム300は、性能モデル作成処理400を終了する。
【0051】
一方、全てのオペレーションの種別についての性能モデルを作成していない場合(ステップ410:No)には、性能モデル作成プログラム300は、未作成のオペレーションの種別を対象として性能モデルの作成を行う。ここで、対象とするオペレーション種別を対象オペレーション種別という。
【0052】
まず、性能モデル作成プログラム300は、対象オペレーション種別について、性能モデルを作成する対象とするHWリソースの全ての性能モデルを作成したか否かを確認する(ステップ420)。
【0053】
この結果、対象オペレーション種別について、対象とする全てのHWリソースの性能モデルを作成している場合(ステップ420:Yes)には、性能モデル作成プログラム300は、処理をステップ410に進める。
【0054】
一方、対象とする全てのHWリソースの性能モデルを作成していない場合(ステップ420:No)には、性能モデル作成プログラム300は、未作成のHWリソース(対象HWリソースという)の性能モデルの作成を行う。ここで、対象HWリソースの性能モデルを作成する場合には、対象HWリソース以外のHWリソースについては、対象HWリソースの性能のネックとならない割当量とし、対象HWリソースのHWリソース割当量を徐々に変更することにより性能モデルを作成する。
【0055】
まず、性能モデル作成プログラム300は、分散データストアに割り当てるHWリソース量を変更する(ステップ430)。分散データストアにおけるHWリソース割当量の変更は、各ストレージノードのリソース割当制御プログラムと連携することにより行う。具体的には、性能モデル作成プログラム300は、各ストレージノードのリソース割当制御プログラムに、
分散データストアのデータストアプログラムに対するHWリソース割当量を送信する。これにより、リソース割当制御プログラムは、HWリソース割当量を受信し、データストアプログラムに対して受信したHWリソース割当量のHWリソースを割り当てる。ストレージノードにおけるHWリソースの割当は、既存のプログラムやソフトウェアにより実現できる。例えば、Linuxオペレーティングシステムであれば、Cgroupsと呼ぶリソース割当ての機能を用いることができる。このCgroupsを用いると、所望の量のHWリソースをLinuxオペレーティングシステムで動作するプログラムに割り当てることができる。
【0056】
次に、性能モデル作成プログラム300は、ベンチマーク実行ノード210のベンチマークプログラム310に分散データストアの対象オペレーション種別についての性能測定を実行することを指示する(ステップ440)。この結果、ベンチマークプログラム310は、分散データストア(具体的には、分散データストアプログラム)の性能測定を実行し、性能測定の結果を性能モデル作成プログラム300に送信することとなる。
【0057】
次に、性能モデル作成プログラム300は、性能モデルを作成可能か否か、具体的には、性能モデルを作成するために必要な回数の性能測定を行ったか否かを判断する(ステップ450)。
【0058】
この結果、性能モデルの作成に必要な回数の測定を行っていない場合(ステップ450:No)には、性能モデル作成プログラム300は、処理をステップ430に進め、HWリソース割当量の変更と、性能測定の実行を繰り返す。なお、性能モデルを作成するために性能測定を行う回数と、性能測定ごとに変更するHWリソース割当量とは、予め決められている。
【0059】
一方、性能モデルの作成に必要な回数の測定を行っている場合(ステップ450:Yes)には、性能モデル作成プログラム300は、複数の測定結果に基づいて性能モデルを作成し、作成した性能モデルを性能モデル管理テーブル510(図6参照)に登録し(ステップ460)、処理をステップ420に進める。
【0060】
ここで、性能モデルの作成及び性能モデルの登録について説明する。
【0061】
図5は、第1実施形態に係る性能モデルの概要を示す図である。
【0062】
性能モデルの作成は、例えば、図5に示すように、HWリソース量の変化に対する性能のグラフを作成し、グラフの近似曲線の式、y=f(x)を性能モデルとしてもよい。ここで、yは1ノード当たりの分散データストアの性能を示し、xは1ノード当たりのHWリソース量を示す。yは、ベンチマークプログラム310からの性能測定の結果(分散データストアの全体の性能)を、分散データストアのノード数で除算することにより算出することができる。換言すると、yに分散データストアのノード数を乗算すると、分散データストア全体の性能となる。性能モデルの作成におけるグラフの作成及び近似曲線式の導出は、既存の表計算ソフトウェアやプログラム等を用いることにより実現できる。
【0063】
図6は、第1実施形態に係る性能モデル管理テーブルの構成図である。
【0064】
性能モデルの登録は、例えば、性能モデル管理テーブル510に対して行う。性能モデル管理テーブル510の行511は、性能モデル管理テーブル510が登録している性能モデルに対応する分散データストアを示す情報(分散データストア名)を格納する。列512は、性能モデルに対応するオペレーションの種別を格納する。行513は、性能モデルが対象としているHWリソースの種別を格納する。列512の各オペレーションの種別と、行513のHWリソースの種別とに対応するセルには、そのオペレーション種別における、そのHWリソースの種別についての性能モデルが、性能モデル作成プログラム300により格納される。
【0065】
なお、本実施形態では、性能測定結果に基づいて作成された式(性能モデルの一例)を格納するようにしていたが、例えば、HWリソース量と、対応する測定された性能との組を複数記録するようにしてもよい。
【0066】
次に、リソース割当設定処理について説明する。
【0067】
図7は、第1実施形態に係るリソース割当設定処理に関わる構成要素のハードウェア構成図である。
【0068】
本実施形態では、リソース割当設定処理に対しては、計算機システム1の構成要素の中の主に、ストレージノード120,130と、クライアントノード150,151と、管理ノード100と、管理用クライアントノード160とが関わっている。
【0069】
ストレージノード120のCPU222は、バス221、NIC225を介して、LAN171に接続されている他の装置(ストレージノード130、クライアントノード150,151等)との間でデータを送受信する。また、ストレージノード120のCPU222は、バス221、NIC226を介して、LAN170に接続されている他の装置(管理ノード100等)との間でデータを送受信する。
【0070】
ストレージノード130のCPU232は、バス231、NIC235を介して、LAN171に接続されている他の装置(ストレージノード130、クライアントノード150,151等)との間でデータを送受信する。また、ストレージノード130のCPU232は、バス231、NIC236を介して、LAN170に接続されている他の装置(管理ノード100等)との間でデータを送受信する。
【0071】
クライアントノード150およびクライアントノード151は、ストレージノード120,130に構成される分散データストアに対するIOを実行する。各クライアントノード150,151は、図示を省略したが、バスを介して接続されたCPU、メモリ、NIC、及びディスク装置を備える。CPUは、ディスク装置に格納されたプログラムをメモリに呼び出して実行する。クライアントノード150,151は、LAN171を介して、他の装置(ストレージノード120,130等)との間でデータを送受信する。
【0072】
管理用クライアントノード160は、図示を省略したが、バスを介して接続されたCPU、メモリ、NIC、及びディスク装置を備える。CPUは、ディスク装置に格納されたプログラムをメモリに呼び出して実行する。管理用クライアントノード160は、LAN170を介して、他の装置(管理サーバ100等)との間でデータを送受信する。
【0073】
管理ノード100は、プロセッサの一例としてのCPU602と、主記憶装置としてのメモリ603と、二次記憶装置としてのディスク装置604と、NIC605とを備える。CPU602と、メモリ603と、ディスク装置604と、NIC605とは、バス601を介して接続されている。ここで、メモリ603またはディスク装置604の少なくとも一方が記憶部の一例である。
【0074】
CPU602は、ディスク装置604上に格納されているプログラムをメモリ603上に読み込んで実行することにより、各種処理を実行する。CPU602は、バス601、NIC605を介して、LAN170に接続されている他の装置(ストレージノード120,130、管理用クライアントノード160等)との間でデータを送受信する。
【0075】
図8は、第1実施形態に係るリソース割当設定処理に関わる構成要素の論理構成図である。なお、図3に示す構成要素と同一要素には、同一符号を付し、重複する説明を省略する。
【0076】
ストレージノード120は、データストアプログラム341(データストアプログラムA)と、データストアプログラム351(データストアプログラムB)と、QoS制御プログラム720と、リソース割当制御プログラム121とを格納する。
【0077】
ストレージノード130は、データストアプログラム342と(データストアプログラムA)、データストアプログラム352(データストアプログラムB)と、QoS制御プログラム730と、リソース割当制御プログラム131とを格納する。
【0078】
ストレージノード120のQoS制御プログラム720は、IOモニタリング部721と、リソースモニタリング部722とを備え、CPU222に実行されると、データストアプログラム341,351のIO処理とリソース消費とをモニタリングする。
【0079】
ストレージノード130のQoS制御プログラム730は、IOモニタリング部731と、リソースモニタリング部732とを備え、CPU232に実行されると、データストアプログラム342,352のIO処理とリソース消費とをモニタリングする。
【0080】
クライアントノード150は、データ分析プログラム760を格納する。データ分析プログラム760は、クライアントノード150に実行されることにより、ストレージノード120,130で構成される分散データストアに対するIOを実行する。
【0081】
クライアントノード151は、データ分析プログラム770を格納する。データ分析プログラム770は、クライアントノード151に実行されることにより、ストレージノード120,130で構成される分散データストアに対するIOを実行する。
【0082】
管理用クライアントノード160は、Webブラウザ710を格納する。Webブラウザ710は、管理用クライアントノード160に実行されることにより、管理者から、分散データストアの目標性能の設定の入力を受け付け、目標設定を管理ノード100に送信する。
【0083】
管理ノード100は、QoS制御プログラム110を格納する。QoS制御プログラム110は、リソース割当設定部701と、性能モデル管理部702と、オペレーションパターン学習部703と、性能モデル管理テーブル510と、オペレーションパターン管理テーブル704と、リソース割当設定テーブル705とを備える。なお、図では省略したが、QoS制御プログラム110は、ストレージノードで実行される分散データストアの数だけ性能モデル管理テーブル510を備える。
【0084】
リソース割当設定部701は、管理ノード100のCPU602に実行されることにより、Webブラウザ710を介して入力された分散データストアの目標性能を受信し、受信した目標性能と性能モデル管理テーブル510の内容とに基づいて、リソース割当設定テーブル705を更新し、リソース割当量の設定値を各ストレージノード120,130に送信する。
【0085】
性能モデル管理部702は、CPU602に実行されることにより、ストレージノード120,130で実行されるQoS制御プログラム720,730から、データストアプログラム341,342,351,352のIO処理とリソース消費とのモニタリング結果を受領し、モニタリング結果に基づいて性能モデルの修正を行う。また、性能モデル管理部702は、修正した性能モデルに基づいてリソース割当設定テーブル705を更新し、リソース割当量の設定値を各ストレージノード120,130に送信する。
【0086】
オペレーションパターン学習部703は、CPU602に実行されることにより、ストレージノード120,130で実行されるQoS制御プログラム720、730から、データストアプログラム341,342,351,352のIO処理のモニタリング結果を受領し、モニタリング結果に基づいて分散データストアで実行されるオペレーションを学習し、オペレーションパターン管理テーブル704を更新する。また、オペレーションパターン学習部703は、オペレーションパターン管理テーブル704に基づいて、リソース割当設定テーブル705を更新し、リソース割当量の設定値を各ストレージノード120,130に送信する。
【0087】
次に、データストアに対するHWリソースの割当を設定するリソース割当設定処理800について説明する。
【0088】
図9は、第1実施形態に係るリソース割当設定処理のフローチャートである。
【0089】
管理用クライアントノード160のWebブラウザ710は、目標性能入力用GUI画面900(図10参照)を表示し、データレイクの管理者から各分散データストアの目標性能を受け付ける(ステップ810)。
【0090】
ここで、目標性能入力用GUI画面900について説明する。
【0091】
図10は、第1実施形態に係る目標性能入力用GUI画面を示す図である。
【0092】
目標性能入力用GUI画面900は、分散データストアごとの目標性能の入力欄(入力欄901,902)と、送信ボタン903とを有する。なお、図10に示す目標性能入力用GUI画面900は、分散データストアA及び分散データストアBとの2つの分散データストアがある場合の入力欄を示しているが、入力欄は、ストレージノード上に構成される分散データストアの数だけ用意される。入力欄901,902は、分散データストアにおけるオペレーションの種別毎に対する目標性能を入力する入力欄を含む。管理者は、この入力欄に、分散データストアのオペレーションの種別毎の目標性能を入力すればよい。送信ボタン903は、入力欄901,902に入力された目標性能の設定
を管理ノード100に送信する指示を受け付けるボタンである。送信ボタン903が押下されると、管理用クライアントノード160は、入力欄901,902に入力された目標性能の設定を管理ノード100に送信する。
【0093】
図9の説明に戻り、データレイクの管理者によって目標性能入力用GUI画面900の送信ボタン903が押下されると、Webブラウザ710は、入力欄901,902に入力された目標性能の設定(目標性能設定)を管理ノード100に送信する(ステップ811)。
【0094】
次いで、管理ノード100のリソース割当設定部701は、送信された目標性能設定を受領する(ステップ820)。リソース割当設定部701は、受領した目標性能をリソース割当設定テーブル705(図11参照)に登録する。
【0095】
図11は、第1実施形態に係るリソース割当設定テーブルの構成図である。
【0096】
リソース割当設定テーブル705は、ストレージノードに構成される分散データストアごとに設けられ、分散データストアのオペレーション種別毎の目標性能と必要なHWリソース量との関係及び分散データストアへのリソース割当量の設定を管理する。リソース割当設定テーブル705の行1001は、リソース割当設定テーブル705に対応する分散データストアを示す情報(分散データストア名)を格納する。行1002は、分散データストアのオペレーション種別を格納する。行1003は、オペレーションの種別毎の目標性能を格納する。行1004は、各HWリソースについてのオペレーションの種別毎の目標性能に必要なリソース量を格納する。列1005は、分散データストア(分散データストアプログラム)に対するリソース割当量の設定値を格納する。
【0097】
図9の説明に戻り、次に、リソース割当設定部701は、性能モデル管理テーブル510を参照し、分散データストアに実際に割り当てるHWリソース量(リソース割当量)を算出する。ここで、算出されるHWリソース量は、各ストレージノードにおいて、分散データストアのデータストアプログラムに割り当てるHWリソース量である。
【0098】
まず、リソース割当設定部701は、性能モデル管理テーブル510に記録されている性能モデル(式)と、各オペレーションの種別の目標性能とから、この目標性能を達成するためにオペレーションの種別毎に必要なHWリソース量を算出し、リソース割当設定テーブル705の行1004に登録する(ステップ821)。具体的には、リソース割当設定部701は、各オペレーションの種別の目標性能を、分散データストアを構成するストレージノードの数で除算し、その結果を、性能モデルの式(y=f(x))のyに代入し、必要なHWリソース量xを算出する。なお、性能モデルではなく、複数のHWリソース量と測定された性能との組を記録するようにしている場合には、複数の組に基づいて、目標性能に必要なHWリソース量を算出すればよい。
【0099】
次に、リソース割当設定部701は、リソース割当量の算出を行う(ステップ822)。具体的には、リソース割当設定部701は、リソース割当テーブル705の行1004を参照し、オペレーションの種別ごとにそれぞれのHWリソース毎の必要なHWリソース量を確認する。次いで、リソース割当設定部701は、必要なHWリソース量のうちの最大値をリソース割当量と決定し、列1005の対応するHWリソースの欄に登録する。ここで、必要なHWリソース量の最大値をリソース割当量としているのは、分散データストアにおいて、いずれのオペレーションが実行されても目標性能を達成できることを担保するためである。
【0100】
なお、複数の種別のオペレーションが同時に実行され、複数の種別のオペレーションでの目標性能を達成する必要がある場合には、それらの種別のオペレーションに必要なHWリソース量の合計値を、リソース割当量とすればよい。必要なHWリソース量の最大値をリソース割当量とするか、複数の必要なHWリソース量の合計値をリソース割当量とするかは、予め設定されているQoSのポリシーに従って決定すればよい。
【0101】
次に、リソース割当設定部701は、リソース割当設定テーブル705の列1005の内容、すなわち、各HWリソースに対するリソース割当量を、各ストレージノード120,130のリソース割当制御プログラム121,131に送信する(ステップ823)。
【0102】
ストレージノード120,130のリソース割当制御プログラム121,131は、リソース割当設定テーブル705の列1005の内容を受領し(ステップ830)、列1005の各HWリソースに対するリソース割当量に基づいて、分散データストアのデータストアプログラムに、HWリソースを割り当てる設定を行う(ステップ831)。
【0103】
割当設定が完了したら、リソース割当制御プログラム121,131は、設定が完了したことを示す通知(設定完了通知)を管理ノード100のリソース割当設定部701に送信する(ステップ832)。
【0104】
管理ノード100のリソース割当設定部701は、設定完了通知を受信し(ステップ824)、各HWリソースに対するリソース割当量を送信した全てのストレージノードから設定完了通知を受信したか否かを確認する(ステップ825)。リソース割当設定部701は、全てのストレージノードから設定完了通信を受信していない場合(ステップ825:No)には、処理をステップ824に進める一方、全てのストレージノードから設定完了通信を受信した場合(ステップ825:Yes)には、リソース割当設定処理800を終了する。
【0105】
次に、性能モデルを修正し、修正した性能モデルに基づいてリソース割当の再設定を行う性能モデル修正・設定更新処理1100について説明する。
【0106】
図12は、第1実施形態に係る性能モデル修正・設定更新処理のフローチャートである。
【0107】
性能モデル修正・設定更新処理は、例えば、定期的に実行される。まず、各ストレージノード120,130のQoS制御プログラム720,730のIOモニタリング部721,731は、各分散データストアのデータストアプログラムのIO実行ログを取得する(ステップ1110)。ここで、IO実行ログには、データストアプログラム341,342,351,352によって実行されたIOオペレーションの内容、IOオペレーションが実行されたタイミング、処理時間などが記録されている。次いで、リソースモニタリング部722,732は、各分散データストアのデータストアプログラム341,342,351,352が消費したHWリソース量のログ(リソース消費ログ)を取得する(ステップ1111)。リソース消費ログは、OS(オペレーティングシステム)の機能などを用いて取得することができる。
【0108】
次に、QoS制御プログラム720,730は、取得したIO実行ログとリソース消費ログとを、管理ノード100の性能モデル管理部702に送信する(ステップ1112)。
【0109】
管理ノード100の性能モデル管理部702は、各ストレージノード120,130から送信されたIO実行ログとリソース消費ログとを受領する(ステップ1120)。
【0110】
次いで、性能モデル管理部702は、IO実行ログから分散データストアの実際の性能を取得し、実際の性能(実性能)と性能モデルにより推定される性能(推定性能)とを比較し、実性能と推定性能との差が予め設定されている所定の閾値を超えているか否かを判定する(ステップ1121)。この結果、実性能と推定性能との差が所定の閾値を超えていない場合(ステップ1121:No)には、性能モデル管理部702は、処理をステップ1120に進める。一方、実性能と推定性能との差が所定の閾値を超えている場合(ステップ1121:Yes)には、性能モデル管理部702は、性能モデルを修正する処理を行い、性能モデル管理テーブル510の性能モデルを修正した性能モデルに更新する(ステップ1122)。性能モデルを修正する処理は、取得したリソース消費ログと、IO実行ログから取得した性能値とに基づいて、性能モデル作成処理400と同様な処理で実現できる。
【0111】
次いで、性能モデル管理部702は、性能モデル管理テーブル510の更新した性能モデルに基づいて、新たなリソース割当量を算出する処理を行い、リソース割当設定テーブル705を更新する(ステップ1123)。新たなリソース割当量を算出する処理は、リソース割当設定処理800と同様な処理で実現できる。
【0112】
次に、性能モデル管理部702は、リソース割当設定テーブル705の列1005の内容、すなわち、各HWリソースに対するリソース割当量を、各ストレージノード120,130のリソース割当制御プログラム121,131に送信する(ステップ1124)。
【0113】
ストレージノード120,130のリソース割当制御プログラム121,131は、リソース割当設定テーブル705の列1005の内容を受領し(ステップ1113)、列1005の各HWリソースに対するリソース割当量に基づいて、分散データストアのデータストアプログラムに、HWリソースを割り当てる設定を行う(ステップ1114)。
【0114】
割当設定が完了したら、リソース割当制御プログラム121,131は、設定が完了したことを示す通知(設定完了通知)を管理ノード100の性能モデル管理部702に送信する(ステップ1115)。
【0115】
管理ノード100の性能モデル管理部702は、設定完了通知を受信し(ステップ1125)、各HWリソースに対するリソース割当量を送信した全てのストレージノードから設定完了通知を受信したか否かを確認する(ステップ1126)。性能モデル管理部702は、全てのストレージノードから設定完了通信を受信していない場合(ステップ1126:No)には、処理をステップ1125に進める一方、全てのストレージノードから設定完了通信を受信した場合(ステップ1126:Yes)には、性能モデル修正・設定更新処理1100を終了する。
【0116】
この性能モデル修正・設定更新処理1100によると、各ストレージノード120,130のIO処理の実際の状況に応じて適切な性能モデルに更新でき、実際の状況に応じてHWリソースを適切に割り当てることができる。
【0117】
次に、分散データストアにおけるオペレーションの実行パターンを学習するオペレーションパターン学習処理1200について説明する。
【0118】
図13は、第1実施形態に係るオペレーションパターン学習処理のフローチャートである。
【0119】
まず、各ストレージノード120,130のQoS制御プログラム720,730のIOモニタリング部721,731は、各分散データストアのデータストアプログラムのIO実行ログを取得する(ステップ12
10)。次に、QoS制御プログラム720,730は、取得したIO実行ログを、管理ノード100のオペレーションパターン学習部703に送信する(ステップ1211)。
【0120】
管理ノード100のオペレーションパターン学習部703は、各ストレージノード120,130から送信されたIO実行ログを受領する(ステップ1220)。
【0121】
次いで、オペレーションパターン学習部703は、受信したIO実行ログを確認し、学習に十分なデータが揃ったか否かを反転する(ステップ1221)。ここで、学習に十分なデータが揃ったか否かについての判断の基準は、後述するステップ1222で採用する実行パターンの学習方法に依存する。この結果、学習に十分なデータが揃っていない場合(ステップ1221:No)には、オペレーションパターン学習部703は、処理をステップ1220に進める。一方、学習に十分なデータが揃っている場合(ステップ1221:Yes)には、オペレーションパターン学習部703は、オペレーションの実行パターンを学習し、オペレーションパターン管理テーブル704(図14参照)に登録し(ステップ1222)、オペレーションパターン学習処理1200を終了する。
【0122】
図14は、第1実施形態に係るオペレーションパターン管理テーブルの構成図である。
【0123】
オペレーションパターン管理テーブル704は、分散データストアごとに設けられ、その分散データストアについて、各タイミング(曜日、時間等)において、実行されるオペレーションの種別を格納する。オペレーションパターン管理テーブル704の行1301は、オペレーションパターン管理テーブル704に対応する分散データストアを示す情報(分散データストア名)を格納する。列1302には、オペレーションが実行される時間(期間)が格納される。列1303には、対応する時間に実行されるオペレーションの種別が記録される。図14の例では、列1303は、曜日ごとに対応する列を含みに、各曜日に実行されるオペレーションの種別が記録されている。ここで、分散データストアにおいて、各タイミングで実行されるオペレーションの種別の学習方法としては、機械学習などの既存の方法を用いることができる。
【0124】
次に、オペレーションパターンに基づく設定更新処理1400について説明する。
【0125】
図15は、第1実施形態に係るオペレーションパターンに基づく設定更新処理のフローチャートである。図16は、第1実施形態に係るリソース割当設定テーブルの更新の概要を説明する図である。
【0126】
まず、管理ノード100のオペレーションパターン学習部703は、現在時刻を確認する(ステップ1410)。現在時刻の確認は、例えば、OSの機能等を用いることで実現できる。
【0127】
次に、オペレーションパターン学習部703は、現在時刻と、オペレーションパターン管理テーブル704の行1302の内容とを比較し、現在がオペレーションの実行パターンが変わるタイミングであるか否かを確認する(ステップ1411)。この結果、現在がオペレーションの実行パターンが変わるタイミングでない場合(ステップ1411:No)には、オペレーションパターン学習部703は、処理をステップ1410に進める。
【0128】
一方、現在がオペレーションの実行パターンが変わるタイミングである場合(ステップ1411:Yes)には、オペレーションパターン学習部703は、リソース割当設定テーブル705の更新を行う(ステップ1412)。リソース割当設定テーブル705の更新方法としては、次の実行パターンにおいて実行されないオペレーションの種別を除外して、HWリソース割当量の算出を行う。具体的には、図16に示すように、次の実行パターンとして、シーケンシャルリード(Sequential Read)のオペレーション種別のみが実行される場合においては、CPUの割当量として、実行されるオペレーションの種別に必要なHWリソース量である0.5コアと算出し、リソース割当設定テーブル705のセル1500を更新する。
【0129】
次に、オペレーションパターン学習部703は、更新したリソース割当設定テーブル705の内容、すなわち、各HWリソースに対するリソース割当量を、各ストレージノード120,130のリソース割当制御プログラム121,131に送信する(ステップ1413)。
【0130】
ストレージノード120,130のリソース割当制御プログラム121,131は、リソース割当設定テーブル705の列1005の内容を受領し(ステップ1420)、列1005の各HWリソースに対するリソース割当量に基づいて、分散データストアのデータストアプログラムに、HWリソースを割り当てる設定を行う(ステップ1421)。
【0131】
割当設定が完了したら、リソース割当制御プログラム121,131は、設定が完了したことを示す通知(設定完了通知)を管理ノード100のオペレーションパターン学習部703に送信する(ステップ1422)。
【0132】
管理ノード100のオペレーションパターン学習部703は、設定完了通知を受信し(ステップ1414)、各HWリソースに対するリソース割当量を送信した全てのストレージノードから設定完了通知を受信したか否かを確認する(ステップ1415)。オペレーションパターン学習部703は、全てのストレージノードから設定完了通信を受信していない場合(ステップ1415:No)には、処理をステップ1414に進める一方、全てのストレージノードから設定完了通信を受信した場合(ステップ1415:Yes)には、オペレーションパターンに基づく設定更新処理1400を終了する。
【0133】
このオペレーションパターンに基づく設定更新処理1400によると、分散データストアのオペレーション種別の中の実行されないオペレーションの種別が必要とするHWリソースを割り当てずに済み、HWリソースを適切に割り当てることができる。
【0134】
次に、第2実施形態に係る計算機システムについて説明する。
【0135】
第2実施形態に係る計算機システムは、第1実施形態に係る計算機システムでは、分散データストアを構成するデータストアプログラムを対象にHWリソース量を制御するようにしていたものに対して、1又は複数のノードで実行されるプログラム(ソフトウェア)の一例としてのアプリケーション(アプリともいう)を対象にHWリソース量を制御するようにしたものである。
【0136】
第2実施形態に係る計算機システムは、図1に示す第1実施形態に係る計算機システム1において、管理ノード100に代えて管理ノード2000(図23参照)を備え、クライアントノード150,151に代えてクライアントノード2040,2050(図23参照)を備え、ストレージノード120,130に代えて実行ノードの一例としてのアプリ実行ノード1620,1630(図17参照)を備え、管理用クライアントノード160に代えて管理用クライアントノード2010(図23参照)を備え、性能モデル作成ノード200に代えて作成ノードの一例としての性能モデル作成ノード1600(図17参照)を備え、ベンチマーク実行ノード210に代えてベンチマーク実行ノード1610(図17参照)を備える。
【0137】
次に、アプリ実行ノード1620,1630で実行されるアプリに対するQoS制御について説明する。
【0138】
図17は、第2実施形態に係る計算機システムにおける性能モデル作成処理に関わる構成要素のハードウェア構成図である。
【0139】
本実施形態では、性能モデル作成処理に対しては、計算機システムの構成要素の中の主に、性能モデル作成ノード1600と、ベンチマーク実行ノード1610と、アプリ実行ノード1620と、アプリ実行ノード1630とが関わっている。
【0140】
なお、本実施形態では、性能モデル作成処理においては、クライアントノードに対して最終的に提供されるアプリを構成するアプリ実行ノード1620,1630を用いているが、本発明はこれに限られず、アプリ実行ノード1620,1630とは別の同様な複数のアプリ実行ノードを用いるようにしてもよい。
【0141】
アプリ実行ノード1620は、プロセッサの一例としてのCPU1622と、主記憶装置としてのメモリ1623と、二次記憶装置としてのディスク装置1624と、NIC1625,1626とを備える。CPU1622と、メモリ1623と、ディスク装置1624と、NIC1625,1626とは、バス1621を介して接続されている。
【0142】
CPU1622は、ディスク装置1624上に格納されているプログラムをメモリ1623上に読み込んで実行することにより、各種処理を実行する。CPU1622は、バス1621、NIC1626を介して、LAN170に接続されている他の装置(アプリ実行ノード1630、性能モデル作成ノード1600、ベンチマーク実行ノード1610等)との間でデータを送受信する。
【0143】
アプリ実行ノード1630は、プロセッサの一例としてのCPU1632と、主記憶装置としてのメモリ1633と、二次記憶装置としてのディスク装置1634と、NIC1635,1636とを備える。CPU1632と、メモリ1633と、ディスク装置1634と、NIC1635,1636とは、バス1631を介して接続されている。
【0144】
CPU1632は、ディスク装置1634上に格納されているプログラムをメモリ1633上に読み込んで実行することにより、各種処理を実行する。CPU1632は、バス1631、NIC1636を介して、LAN170に接続されている他の装置(アプリ実行ノード1620、性能モデル作成ノード1600、ベンチマーク実行ノード1610等)との間でデータを送受信する。
【0145】
性能モデル作成ノード1600は、プロセッサの一例としてのCPU1602と、主記憶装置としてのメモリ1603と、二次記憶装置としてのディスク装置1604と、NIC1605とを備える。CPU1602と、メモリ1603と、ディスク装置1604と、NIC1605とは、バス1601を介して接続されている。
【0146】
CPU1602は、ディスク装置1604上に格納されているプログラムをメモリ1603上に読み込んで実行することにより、各種処理を実行する。CPU2602は、バス1601、NIC1605を介して、LAN170に接続されている他の装置(アプリ実行ノード1620,1630、ベンチマーク実行ノード1610等)との間でデータを送受信する。
【0147】
ベンチマーク実行ノード1610は、プロセッサの一例としてのCPU1612と、主記憶装置としてのメモリ1613と、二次記憶装置としてのディスク装置1614と、NIC1615とを備える。CPU1612と、メモリ1613と、ディスク装置1614と、NIC1615とは、バス1611を介して接続されている。
【0148】
CPU1612は、ディスク装置1614上に格納されているプログラムをメモリ1613上に読み込んで実行することにより、各種処理を実行する。CPU1612は、バス1611、NIC1615を介して、LAN170に接続されている他の装置(アプリ実行ノード1620,1630、性能モデル作成ノード1600等)との間でデータを送受信する。
【0149】
図18は、第2実施形態に係る性能モデル作成処理に関わる構成要素の論理構成図である。
【0150】
アプリ実行ノード1620は、アプリ用のプログラム1741(プログラムA)と、アプリ用のプログラム1751(プログラムB)と、リソース割当制御プログラム1720とを格納する。
【0151】
アプリ実行ノード1630は、アプリ用のプログラム1742(プログラムA)と、アプリ用のプログラム1752(プログラムB)と、リソース割当制御プログラム1730とを格納する。
【0152】
アプリ実行ノード1620のCPU1622によって実行されるプログラム1741と、アプリ実行ノード1630のCPU1632によって実行されるプログラム1742とは、協調して動作し、アプリケーション1740(アプリA)を構成する。また、アプリ実行ノード1620のCPU1622によって実行されるプログラム1751と、アプリ実行ノード1630のCPU1632によって実行されるプログラム1752とは、協調して動作し、アプリケーション1750(アプリB)を構成する。なお、同図では、アプリを複数のアプリ実行ノードのプログラムが強調して動作する例を示しているが、各アプリ実行ノードのプログラムが単独でアプリを構成してもよい。
【0153】
リソース割当制御プログラム1720は、CPU1622に実行されると、アプリ実行ノード1620で実行される各プログラムに割り当てるHWリソースの量(HWリソース割当量)の制御を行う。
【0154】
リソース割当制御プログラム1730は、CPU1632に実行されると、ストレージノード1630で実行される各プログラムに割り当てるHWリソース割当量の制御を行う。
【0155】
性能モデル作成ノード1600は、性能モデル作成プログラム1700を格納する。性能モデル作成プログラム1700は、CPU1602に実行されると、アプリ実行ノード1620,1630上で構成されるアプリ1740,1750の性能モデルを作成する。
【0156】
ベンチマーク実行ノード1610は、ベンチマークプログラム1710を格納する。ベンチマークプログラム1710は、CPU1612に実行されると、アプリ実行ノード1620,1630上で構成されるアプリ1740,1750の性能を測定する。
【0157】
次に、性能モデルを作成する性能モデル作成処理1800について説明する。
【0158】
図19は、第2実施形態に係る性能モデル作成処理のフローチャートである。
【0159】
本実施形態の性能モデル作成処理では、HWリソース毎の性能モデルを作成する。ここで、HWリソースとは、CPU、メモリ、NIC帯域、ディスク装置のIO帯域等である。この性能モデル作成処理によると、各HWリソースの割当量と、その割当量でのアプリ(厳密には、アプリ用のプログラム)の性能との関係を示す性能モデルがHWリソース毎に作成される。
【0160】
まず、性能モデル作成ノード1600の性能モデル作成プログラム1700(厳密には、性能モデル作成プログラム1700を実行するCPU1602)は、全てのHWリソースについての性能モデルを作成したか否かを確認する(ステップ1810)。この結果、全てのHWリソースについて性能モデルを作成している場合(ステップ1810:Yes)には、性能モデル作成プログラム1700は、性能モデル作成処理1800を終了する。
【0161】
一方、全てのHWリソースについての性能モデルを作成していない場合(ステップ1810:No)には、性能モデル作成プログラム1700は、未作成のHWリソースを対象として性能モデルの作成を行う。ここで、対象とするHWリソースを対象HWリソースという。また、対象HWリソースの性能モデルを作成する場合には、対象HWリソース以外のHWリソースについては、対象HWリソースの性能のネックとならない割当量とし、対象HWリソースのHWリソース割当量を徐々に変更することにより性能モデルを作成する。
【0162】
まず、性能モデル作成プログラム1700は、アプリに割り当てるHWリソース量を設定する(ステップ1820)。アプリにおけるHWリソース割当量の設定は、各アプリ実行ノードのリソース割当制御プログラムと連携することにより行う。具体的には、性能モデル作成プログラム1700は、各アプリ実行ノード1620,1630のリソース割当制御プログラム1720,1730に、このアプリのプログラム1741,1742,1751,1752対するHWリソース割当量を送信する。これにより、リソース割当制御プログラム1720,1730は、HWリソース割当量を受信し、プログラムに対して受信したHWリソース割当量のHWリソースを割り当てる。アプリ実行ノードにおけるHWリソースの割当は、既存のプログラムやソフトウェアにより実現できる。例えば、Linuxオペレーティングシステムであれば、Cgroupsと呼ぶリソース割当ての機能を用いることができる。このCgroupsを用いると、所望の量のHWリソースをLinuxオペレーティングシステムで動作するプログラムに割り当てることができる。
【0163】
次に、性能モデル作成プログラム1700は、ベンチマーク実行ノード1610のベンチマークプログラム1710に対象HWリソースについての性能測定を実行することを指示する(ステップ1830)。この結果、ベンチマークプログラム1710は、アプリ(具体的には、アプリ用のプログラム)の性能測定を実行し、性能測定の結果を性能モデル作成プログラム1700に送信することとなる。
【0164】
次に、性能モデル作成プログラム1700は、性能モデルを作成可能か否か、具体的には、性能モデルを作成するために必要な回数の性能測定を行ったか否かを判断する(ステップ1840)。
【0165】
この結果、性能モデルの作成に必要な回数の測定を行っていない場合(ステップ1840:No)には、性能モデル作成プログラム1700は、処理をステップ1820に進め、HWリソース割当量の変更と、性能測定の実行を繰り返す。なお、性能モデルを作成するために性能測定を行う回数と、性能測定ごとに変更するHWリソース割当量とは、予め決められている。
【0166】
一方、性能モデルの作成に必要な回数の測定を行っている場合(ステップ1840:Yes)には、性能モデル作成プログラム1700は、複数の測定結果に基づいて性能モデルを作成し、作成した性能モデルを性能モデル管理テーブル1910(図21参照)に登録し(ステップ1850)、処理をステップ1810に進める。
【0167】
ここで、性能モデルの作成及び性能モデルの登録について説明する。
【0168】
図20は、第2実施形態に係る性能モデルの概要を示す図である。
【0169】
性能モデルの作成は、例えば、図20に示すように、HWリソース量の変化に対する性能のグラフを作成し、グラフの近似曲線の式、y=f(x)を性能モデルとしてもよい。ここで、yは1ノード当たりのアプリケーションの性能を示し、xは1ノード当たりのHWリソース量を示す。yは、ベンチマークプログラム1710からの性能測定の結果(アプリケーションの全体の性能)を、アプリケーションのノード数で除算することにより算出することができる。換言すると、yにアプリケーションのノード数を乗算すると、アプリケーション全体の性能となる。性能モデルの作成におけるグラフの作成及び近似曲線式の導出は、既存の表計算ソフトウェアやプログラム等を用いることにより実現できる。
【0170】
図21は、第2実施形態に係る性能モデル管理テーブルの構成図である。
【0171】
性能モデルの登録は、例えば、性能モデル管理テーブル1910に対して行う。性能モデル管理テーブル1910の行1911は、性能モデル管理テーブル1910が登録している性能モデルに対応するアプリケーションを示す情報(アプリケーション名)を格納する。列1912は、性能モデルに対応するHWリソースの種別を格納する。行1913は、実行性能に対する各HWリソースについての性能モデルを格納する。行1913のセルには、そのHWリソースの種別についての性能モデルが、性能モデル作成プログラム1700により格納される。
【0172】
なお、本実施形態では、性能測定結果に基づいて作成された式(性能モデル)を格納するようにしていたが、例えば、HWリソース量と測定された性能との組を複数記録するようにしてもよい。
【0173】
次に、リソース割当設定処理について説明する。
【0174】
図22は、第2実施形態に係るリソース割当設定処理に関わる構成要素のハードウェア構成図である。
【0175】
本実施形態では、リソース割当設定処理に対しては、計算機システムの構成要素の中の主に、アプリ実行ノード1620,1630と、クライアントノード2040,2050と、管理ノード2000と、管理用クライアントノード2010とが関わっている。
【0176】
アプリ実行ノード1620のCPU1622は、バス1621、NIC1625を介して、LAN171に接続されている他の装置(アプリ実行ノード1630、クライアントノード2040,2050等)との間でデータを送受信する。また、アプリ実行ノード1620のCPU1622は、バス1621、NIC1626を介して、LAN170に接続されている他の装置(管理ノード2000等)との間でデータを送受信する。
【0177】
アプリ実行ノード1630のCPU1632は、バス1631、NIC1635を介して、LAN171に接続されている他の装置(アプリ実行ノード1630、クライアントノード2040,2050等)との間でデータを送受信する。また、アプリ実行ノード1630のCPU1632は、バス1631、NIC1636を介して、LAN170に接続されている他の装置(管理ノード2000等)との間でデータを送受信する。
【0178】
クライアントノード2040,2050は、アプリ実行ノード1620,1630に構成されるアプリに対するIOを実行する。各クライアントノード2040,2050は、図示を省略したが、バスを介して接続されたCPU、メモリ、NIC、及びディスク装置を備える。CPUは、ディスク装置に格納されたプログラムをメモリに呼び出して実行する。クライアントノード2040,2050は、LAN171を介して、他の装置(アプリ実行ノード1620,1630等)との間でデータを送受信する。
【0179】
管理用クライアントノード2010は、図示を省略したが、バスを介して接続されたCPU、メモリ、NIC、及びディスク装置を備える。CPUは、ディスク装置に格納されたプログラムをメモリに呼び出して実行する。管理用クライアントノード2010は、LAN170を介して、他の装置(管理サーバ2000等)との間でデータを送受信する。
【0180】
管理ノード2000は、プロセッサの一例としてのCPU2002と、主記憶装置としてのメモリ2003と、二次記憶装置としてのディスク装置2004と、NIC2005とを備える。CPU2002と、メモリ2003と、ディスク装置2004と、NIC2005とは、バス2001を介して接続されている。
【0181】
CPU2002は、ディスク装置2004上に格納されているプログラムをメモリ2003上に読み込んで実行することにより、各種処理を実行する。CPU2002は、バス2001、NIC2005を介して、LAN170に接続されている他の装置(アプリ実行ノード1620,1630、管理用クライアントノード2010等)との間でデータを送受信する。
【0182】
図23は、第2実施形態に係るリソース割当設定処理に関わる構成要素の論理構成図である。なお、図18に示す構成要素と同一要素には、同一符号を付し、重複する説明を省略する。
【0183】
アプリ実行ノード1620は、プログラム1741(プログラムA)と、プログラム1751(プログラムB)と、QoS制御プログラム2120と、リソース割当制御プログラム1720とを格納する。
【0184】
アプリ実行ノード1630は、プログラム1742(プログラムA)と、プログラム1752(プログラムB)と、QoS制御プログラム2130と、リソース割当制御プログラム1730とを格納する。
【0185】
アプリ実行ノード1620のQoS制御プログラム2120は、性能モニタリング部2121と、リソースモニタリング部2122とを備え、CPU1622に実行されると、プログラム1741,1751の性能とリソース消費とをモニタリングする。
【0186】
アプリ実行ノード1630のQoS制御プログラム2130は、性能モニタリング部2131と、リソースモニタリング部2132とを備え、CPU1632に実行されると、プログラム1742,1752の性能とリソース消費とをモニタリングする。
【0187】
クライアントノード2040は、クライアントアプリケーション2160を格納する。クライアントアプリケーション2160は、クライアントノード2040に実行されることにより、アプリ実行ノード1620,1630で構成されるアプリに対する処理依頼を送信する。
【0188】
クライアントノード2050は、クライアントアプリケーション2170を格納する。クライアントアプリケーション2170は、クライアントノード2050に実行されることにより、アプリ実行ノード1620,1630で構成されるアプリに対する処理依頼を送信する。
【0189】
管理用クライアントノード2010は、Webブラウザ2110を格納する。Webブラウザ2110は、管理用クライアントノード2010に実行されることにより、管理者から、アプリケーションの目標性能の設定の入力を受け付け、目標設定を管理ノード2000に送信する。
【0190】
管理ノード2000は、QoS制御プログラム2100を格納する。QoS制御プログラム2100は、リソース割当設定部2101と、性能モデル管理部2102と、設定実行部2103と、性能モデル管理テーブル1910と、ソース割当設定テーブル2105とを備える。なお、図では省略したが、QoS制御プログラム2100は、アプリ実行ノードで実行されるアプリケーションの数だけ性能モデル管理テーブル1910を備える。
【0191】
リソース割当設定部2101は、管理ノード2000のCPU2002に実行されることにより、Webブラウザ2110を介して入力されたアプリケーションの目標性能を受信し、受信した目標性能と性能モデル管理テーブル1910の内容とに基づいて、リソース割当設定テーブル2105を更新し、リソース割当量の設定値を各アプリ実行ノード1620,1630に送信する。
【0192】
性能モデル管理部2102は、CPU2002に実行されることにより、アプリ実行ノード1620,1630で実行されるQoS制御プログラム2120,2130から、プログラム1741,1742,1751,1752の性能とリソース消費とのモニタリング結果を受領し、モニタリング結果に基づいて性能モデルの修正を行う。また、性能モデル管理部2102は、修正した性能モデルに基づいてリソース割当設定テーブル2105を更新し、リソース割当量の設定値を各アプリ実行ノード1620,1630に送信する。
【0193】
次に、アプリケーションに対するHWリソースの割当を設定するリソース割当設定処理2200について説明する。
【0194】
図24は、第2実施形態に係るリソース割当設定処理のフローチャートである。
【0195】
管理用クライアントノード2010のWebブラウザ2110は、目標性能入力用GUI画面2300(図25参照)を表示し、アプリケーションの管理者から各アプリケーションの目標性能を受け付ける(ステップ2210)。
【0196】
ここで、目標性能入力用GUI画面2300について説明する。
【0197】
図25は、第2実施形態に係る目標性能入力GUI画面を示す図である。
【0198】
目標性能入力用GUI画面2300は、アプリケーションごとの目標性能の入力欄(入力欄2301,2302)と、送信ボタン2303とを有する。なお、図25に示す目標性能入力用GUI画面2300は、アプリA及びアプリBとの2つのアプリケーションがある場合の入力欄を示しているが、入力欄は、アプリ実行ノード上に構成されるアプリケーションの数だけ用意される。入力欄2301,2302は、アプリケーションに対する目標性能を入力する入力欄である。管理者は、この入力欄に、アプリケーション毎の目標性能を入力すればよい。送信ボタン2303は、入力欄2301,2302に入力された目標性能の設定をアプリ実行ノードに送信する指示を受け付けるボタンである。送信ボタン2303が押下されると、管理用クライアントノード2010は、入力欄2301,2302に入力された目標性能の設定を管理ノード2000に送信する。
【0199】
次いで、管理ノード2000のリソース割当設定部2101は、送信された目標性能設定を受領する(ステップ2220)。リソース割当設定部2101は、受領した目標性能をリソース割当設定テーブル2105(図26参照)に登録する。
【0200】
図26は、第2実施形態に係るリソース割当設定テーブルの構成図である。
【0201】
リソース割当設定テーブル2105は、アプリ実行ノードに構成されるアプリケーションごとに設けられ、アプリケーションの目標性能と必要なHWリソース量との関係を管理する。リソース割当設定テーブル2105の行2401は、リソース割当設定テーブル2105に対応するアプリケーションを示す情報(アプリケーション名)を格納する。行2402は、アプリケーションの目標性能を格納する。行2403は、目標性能に必要なHWリソース毎のリソース量を格納する。
【0202】
図24の説明に戻り、次に、リソース割当設定部2101は、性能モデル管理テーブル1910を参照し、アプリケーションに実際に割り当てるHWリソース量(リソース割当量)を算出する。ここで、算出されるHWリソース量は、各アプリ実行ノードにおいて、アプリケーションのプログラムに割り当てるHWリソース量である。
【0203】
まず、リソース割当設定部2101は、性能モデル管理テーブル1910に記録されている性能モデル(式)と、アプリケーションの目標性能とから、この目標性能を達成するために必要なHWリソース量を算出し、算出したHWリソース量をリソース割当量としてリソース割当設定テーブル2105の行2403に登録する(ステップ2221)。具体的には、リソース割当設定部2101は、アプリケーションの目標性能を、アプリケーションを構成するアプリ実行ノードの数で除算し、その結果を、性能モデルの式(y=f(x))のyに代入し、必要なHWリソース量xを算出する。なお、性能モデルではなく、複数のHWリソース量と測定された性能との組を記録するようにしている場合には、複数の組に基づいて、目標性能に必要なHWリソース量を算出すればよい。
【0204】
次に、リソース割当設定部2101は、リソース割当設定テーブル2105の列2403の内容、すなわち、各HWリソースに対するリソース割当量を、各アプリ実行ノード1620,1630のリソース割当制御プログラム1720,1730に送信する(ステップ2222)。
【0205】
アプリ実行ノード1620,1630のリソース割当制御プログラム1720,1730は、リソース割当設定テーブル2105の行2403の内容を受領し(ステップ2230)、行2403の内容である各HWリソースに対するリソース割当量に基づいて、アプリケーションのプログラムに、HWリソースを割り当てる設定を行う(ステップ2231)。
【0206】
割当設定が完了したら、リソース割当制御プログラム1720,1730は、設定が完了したことを示す通知(設定完了通知)を管理ノード2000のリソース割当設定部2101に送信する(ステップ2232)。
【0207】
管理ノード2000のリソース割当設定部2101は、設定完了通知を受信し(ステップ2223)、各HWリソースに対するリソース割当量を送信した全てのアプリ実行ノードから設定完了通知を受信したか否かを確認する(ステップ2224)。リソース割当設定部2101は、全てのアプリ実行ノードから設定完了通信を受信していない場合(ステップ2224:No)には、処理をステップ2223に進める一方、全てのアプリ実行ノードから設定完了通信を受信した場合(ステップ2224:Yes)には、リソース割当設定処理2200を終了する。
【0208】
次に、性能モデルを修正し、修正した性能モデルに基づいてリソース割当の再設定を行う性能モデル修正・設定更新処理2500について説明する。
【0209】
図27は、第2実施形態に係る性能モデル修正・設定更新処理のフローチャートである。
【0210】
性能モデル修正・設定更新処理は、例えば、定期的に実行される。まず、各アプリ実行ノード1620,1630のQoS制御プログラム2120,2130の性能モニタリング部2121,2131は、各アプリケーションのプログラムの実行ログを取得する(ステップ2510)。ここで、実行ログには、プログラム1741,1742,1751,1752によって実行されたオペレーションの内容、オペレーションが実行されたタイミング、処理時間などが記録されている。次いで、リソースモニタリング部2122,2132は、各アプリケーションのプログラム1741,1742,1751,1752が消費したHWリソース量のログ(リソース消費ログ)を取得する(ステップ2511)。リソース消費ログは、OS(オペレーティングシステム)の機能などを用いて取得することができる。
【0211】
次に、QoS制御プログラム2120,2130は、取得した実行ログとリソース消費ログとを、管理ノード2000の性能モデル管理部2102に送信する(ステップ2512)。
【0212】
管理ノード2000の性能モデル管理部2102は、各アプリ実行ノード1620,1630から送信された実行ログとリソース消費ログとを受領する(ステップ2520)。
【0213】
次いで、性能モデル管理部2102は、実行ログからアプリケーションの実際の性能を取得し、実際の性能(実性能)と性能モデルにより推定される性能(推定性能)とを比較し、実性能と推定性能との差が予め設定されている所定の閾値を超えているか否かを判定する(ステップ2521)。この結果、実性能と推定性能との差が所定の閾値を超えていない場合(ステップ2521:No)には、性能モデル管理部2102は、処理をステップ2520に進める。一方、実性能と推定性能との差が所定の閾値を超えている場合(ステップ2521:Yes)には、性能モデル管理部2102は、性能モデルを修正する処理を行い、性能モデル管理テーブル1910の性能モデルを修正した性能モデルに更新する(ステップ2522)。性能モデルを修正する処理は、取得したリソース消費ログと、実行ログから取得した性能値とに基づいて、性能モデル作成処理1800と同様な処理で実現できる。
【0214】
次いで、性能モデル管理部2102は、性能モデル管理テーブル1910の更新した性能モデルに基づいて、新たなリソース割当量を算出する処理を行い、リソース割当設定テーブル2105を更新する(ステップ2523)。新たなリソース割当量を算出する処理は、リソース割当設定処理2200と同様な処理で実現できる。
【0215】
次に、性能モデル管理部2102は、リソース割当設定テーブル2105の行2403の内容、すなわち、各HWリソースに対するリソース割当量を、各アプリ実行ノード1620,1630のリソース割当制御プログラム1720,1730に送信する(ステップ2524)。
【0216】
アプリ実行ノード1620,1630のリソース割当制御プログラム1720,1730は、リソース割当設定テーブル2105の行2403の内容を受領し(ステップ2513)、行2403の各HWリソースに対するリソース割当量に基づいて、アプリケーションのプログラムに、HWリソースを割り当てる設定を行う(ステップ2514)。
【0217】
割当設定が完了したら、リソース割当制御プログラム1720,1730は、設定が完了したことを示す通知(設定完了通知)を管理ノード2000の性能モデル管理部2102に送信する(ステップ2515)。
【0218】
管理ノード2000の性能モデル管理部2102は、設定完了通知を受信し(ステップ2525)、各HWリソースに対するリソース割当量を送信した全てのアプリ実行ノードから設定完了通知を受信したか否かを確認する(ステップ2526)。性能モデル管理部2102は、全てのアプリ実行ノードから設定完了通信を受信していない場合(ステップ2526:No)には、処理をステップ2525に進める一方、全てのアプリ実行ノードから設定完了通信を受信した場合(ステップ2526:Yes)には、性能モデル修正・設定更新処理2500を終了する。
【0219】
この性能モデル修正・設定更新処理2500によると、各アプリ実行ノード1620,1630の処理の実際の状況に応じて適切な性能モデルに更新でき、実際の状況に応じてHWリソースを適切に割り当てることができる。
【0220】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲で、適宜変形して実施することが可能である。
【0221】
例えば、上記実施形態では、性能モデルとして、数式を用いていたが、本発明はこれに限られず、例えば、機械学習により学習された、性能を入力として、必要なHWリソース量を出力する推論モデルを用いてもよい。
【0222】
また、上記実施形態において、CPUが行っていた処理の一部又は全部を、ハードウェア回路で行うようにしてもよい。また、上記実施形態におけるプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記録メディア(例えば可搬型の不揮発性記録メディア)であってもよい。
【符号の説明】
【0223】
1…計算機システム、100…管理ノード、111…性能モデル、120,130…ストレージノード、140,141…分散データストア、150,151…クライアントノード、160…管理用クライアントノード、200…性能モデル作成ノード、210…ベンチマーク実行ノード、170,171…LAN
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27