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

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

▶ 富士通株式会社の特許一覧 ▶ 日本電信電話株式会社の特許一覧

特開2025-60013リソース割当て装置、リソース割当て方法、およびリソース割当てプログラム
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2025060013
(43)【公開日】2025-04-10
(54)【発明の名称】リソース割当て装置、リソース割当て方法、およびリソース割当てプログラム
(51)【国際特許分類】
   G06F 9/50 20060101AFI20250403BHJP
【FI】
G06F9/50 120Z
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023170484
(22)【出願日】2023-09-29
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(71)【出願人】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110002918
【氏名又は名称】弁理士法人扶桑国際特許事務所
(72)【発明者】
【氏名】園田 雅崇
(72)【発明者】
【氏名】鈴木 和宏
(72)【発明者】
【氏名】石崎 晃朗
(72)【発明者】
【氏名】プリヤンカラ サンパト
(72)【発明者】
【氏名】山部 芳朗
(72)【発明者】
【氏名】有川 勇輝
(72)【発明者】
【氏名】三浦 直樹
(57)【要約】
【課題】複数の機能を利用する一連の処理の円滑化を図る。
【解決手段】リソース割当て装置10は、他のデバイスとバス接続された複数のデバイスを有するコンピュータシステム2に実行させる処理に利用する複数の機能と、複数の機能間の通信に要求される性能とが示された処理情報1に基づいて、通信に要求される性能の順で複数の機能それぞれを選択する。次にリソース割当て装置10は、選択した第1の機能を実現可能なデバイス6a~6dそれぞれについての、第1の機能の通信相手の第2の機能を実現する第2のデバイスとの間のバス経由の通信経路の距離に基づいて、選択した第1の機能を実現する第1のデバイスを決定する。
【選択図】図1
【特許請求の範囲】
【請求項1】
他のデバイスとバス接続された複数のデバイスを有するコンピュータシステムに実行させる処理に利用する複数の機能と、前記複数の機能間の通信に要求される性能とが示された処理情報に基づいて、通信に要求される性能の順で前記複数の機能それぞれを選択し、選択した第1の機能を実現可能なデバイスそれぞれについての、前記第1の機能の通信相手の第2の機能を実現する第2のデバイスとの間のバス経由の通信経路の距離に基づいて、選択した前記第1の機能を実現する第1のデバイスを決定する処理部、
を有するリソース割当て装置。
【請求項2】
前記処理部は、通信で許容可能な遅延時間が短い通信を行う機能から順に、前記複数の機能それぞれを選択する、
請求項1記載のリソース割当て装置。
【請求項3】
前記処理部は、前記第2のデバイスとのバス経由の通信経路上のスイッチの数が他より少ないデバイスを前記第1のデバイスに決定する、
請求項1記載のリソース割当て装置。
【請求項4】
前記処理部は、前記第1の機能を実行可能なデバイスのなかに前記第2のデバイスにバス接続されたデバイスがない場合、前記第2のデバイスとネットワーク接続されたデバイスを前記第1のデバイスに決定する、
請求項1記載のリソース割当て装置。
【請求項5】
前記処理部は、前記複数の機能間の通信に要求される性能と、前記複数の機能それぞれを実行するデバイス間を接続するバスの通信経路上のスイッチ数、またはバス経由の通信とネットワーク経由の通信それぞれの通信性能とに基づいて、通信を行う機能の組ごとに、通信に使用する通信経路として、バスを介した第1の通信経路とネットワークを介した第2の通信経路とのいずれかを選択する、
請求項1記載のリソース割当て装置。
【請求項6】
前記処理部は、バス経由の通信が1つのスイッチのみを経由した通信の場合、通信に使用する通信経路として前記第1の通信経路を選択する、
請求項5記載のリソース割当て装置。
【請求項7】
前記処理部は、バス経由の通信とネットワーク経由の通信との両方で、前記複数の機能間の通信に要求される性能が満たされる場合、通信に使用する通信経路として前記第2の通信経路を選択する、
請求項5記載のリソース割当て装置。
【請求項8】
前記処理部は、バス経由の通信とネットワーク経由の通信との両方で、前記複数の機能間の通信に要求される性能が満たされない場合、通信に使用する通信経路として前記第2の通信経路を選択する、
請求項5記載のリソース割当て装置。
【請求項9】
他のデバイスとバス接続された複数のデバイスを有するコンピュータシステムに実行させる処理に利用する複数の機能と、前記複数の機能間の通信に要求される性能とが示された処理情報に基づいて、通信に要求される性能の順で前記複数の機能それぞれを選択し、
選択した第1の機能を実現可能なデバイスそれぞれについての、前記第1の機能の通信相手の第2の機能を実現する第2のデバイスとの間のバス経由の通信経路の距離に基づいて、選択した前記第1の機能を実現する第1のデバイスを決定する、
処理をコンピュータが実行するリソース割当て方法。
【請求項10】
他のデバイスとバス接続された複数のデバイスを有するコンピュータシステムに実行させる処理に利用する複数の機能と、前記複数の機能間の通信に要求される性能とが示された処理情報に基づいて、通信に要求される性能の順で前記複数の機能それぞれを選択し、
選択した第1の機能を実現可能なデバイスそれぞれについての、前記第1の機能の通信相手の第2の機能を実現する第2のデバイスとの間のバス経由の通信経路の距離に基づいて、選択した前記第1の機能を実現する第1のデバイスを決定する、
処理をコンピュータに実行させるリソース割当てプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、リソース割当て装置、リソース割当て方法、およびリソース割当てプログラムに関する。
【背景技術】
【0002】
コンピュータシステム(以下、単に「システム」と呼ぶ)で実行されるアプリケーションソフトウェアの多様化かつ不規則な負荷変動により、システム内のどの種類のリソースがいつ、どの程度利用されるのかの見積もりが困難となっている。リソースの使用量の予測が不正確であるため、リソースの使用効率が低くなりがちである。他方、低エネルギー型で高効率なシステムに対する要求が高まっている。
【0003】
上記背景に対するアプローチとしてディスアグリゲーション(Disaggregation)と呼ばれる技術がある。ディスアグリゲーションでは、筐体(サーバ)セントリックをベースとしたリソース切出し(VM(Virtual Machine)、コンテナなど)とは異なり、コンピュート(CPU(Central Processing Unit)など)やデバイス(アクセラレータなど)単位でリソースが分離される。そしてディスアグリゲーションでは、要件に応じてリソースを組み上げて、仮想的なコンピュータが構築される。
【0004】
要件は、例えばデータフロー(DF:Data Flow)で表される。DFには、例えばサービスの実現のために使用する機能(ファンクション)が定義されている。ディスアグリゲーションによって構築されるコンピュータは、LSN(Logical Service Node)と呼ばれる。ディスアグリゲーション技術を用いることで、各リソースの利用率の向上、それに伴う消費電力の削減などが期待できる。
【0005】
システムの構築に関する技術としては、例えば仮想コンピュータとボリュームとを、仮想コンピュータのI/O性能を低下させることなく、クラスタに配置できる計算機システムが提案されている。またコンテナの移動に伴う通信遅延時間の増加を抑える移動対象コンテナ決定方法も提案されている。さらに非集約型計算システムを実現する手法も提案されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2021-149299号公報
【特許文献2】特開2021-150876号公報
【特許文献3】特表2019-511051号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
DFに従ってシステムにLSNを新規配備する際、単純に空いているデバイスを各機能に割り当てるとDFの実行性能に大きな支障をきたすことがある。例えば互いに通信する2つの機能それぞれに対して物理的に離れた(例えば経由するスイッチ数の多い)デバイスが割り当てられる場合がある。この場合、デバイス間の通信遅延が大きくなるため、LSNで実行するサービスの処理の遅延時間が増加し、DFの円滑な処理が阻害される。また複数のDFの処理を実行するとき、それぞれのDFの機能に割り当てたデバイスの距離が離れていると、通信経路の重複が発生しやすくなり、一方のDFの処理における通信量の増大が、他方のDFの処理の円滑化を阻害する要因となる。
【0008】
1つの側面では、本発明は、複数の機能を利用する一連の処理の円滑化を図ることを目的とする。
【課題を解決するための手段】
【0009】
1つの案では、以下のような処理部を有するリソース割当て装置が提供される。
処理部は、他のデバイスとバス接続された複数のデバイスを有するコンピュータシステムに実行させる処理に利用する複数の機能と、複数の機能間の通信に要求される性能とが示された処理情報に基づいて、通信に要求される性能の順で複数の機能それぞれを選択する。そして処理部は、選択した第1の機能を実現可能なデバイスそれぞれについての、第1の機能の通信相手の第2の機能を実現する第2のデバイスとの間のバス経由の通信経路の距離に基づいて、選択した第1の機能を実現する第1のデバイスを決定する。
【発明の効果】
【0010】
1態様によれば、複数の機能を利用する一連の処理の円滑化を図ることができる。
【図面の簡単な説明】
【0011】
図1】第1の実施の形態に係るリソース割当て方法の一例を示す図である。
図2】第2の実施の形態のシステム構成の一例を示す図である。
図3】管理コンピュータのハードウェアの一例を示す図である。
図4】インフラシステムのハードウェア構成の一例を示す図である。
図5】LSNで運用されるサーバの一例を示す図である。
図6】デバイス間通信の一例を示す図である。
図7】イーサネットを利用したデバイス間通信の一例を示す図である。
図8】サーバの異なるデバイス間の通信の一例を示す図である。
図9】LSNの構成の管理方法の一例を示す図である。
図10】ファンクションへのデバイス割当ての一例を示す図である。
図11】通信経路が長いことによる通信遅延増加の一例を示す図である。
図12】他のサーバの通信の影響による通信遅延増加の一例を示す図である。
図13】管理コンピュータが有する機能の一例を示すブロック図である。
図14】物理構成情報の一例を示す図である。
図15】デバイス情報の一例を示す図である。
図16】ネットワーク状態情報の一例を示す図である。
図17】LSN構成情報の一例を示す図である。
図18】デバイス割当て情報の一例を示す図である。
図19】経路情報の一例を示す図である。
図20】サーバ構成情報の一例を示す図である。
図21】リソース配備スケジューラの入出力データの一例を示す図である。
図22】管理コンピュータにおけるデータの流れを示す図である。
図23】リソース配備スケジューラによるリソース配備処理の手順の一例を示すフローチャートである。
図24】デバイス選択の一例を示す図である。
図25】第1段階で完了するデバイス選択の一例を示す図である。
図26】第2段階で完了するデバイス選択の一例を示す図である。
図27】第3段階で完了するデバイス選択の一例を示す図である。
図28】デバイス選択処理の手順の一例を示す図(1/4)である。
図29】デバイス選択処理の手順の一例を示す図(2/4)である。
図30】デバイス選択処理の手順の一例を示す図(3/4)である。
図31】デバイス選択処理の手順の一例を示す図(4/4)である。
図32】経路選択の一例を示す図である。
図33】経路選択処理の手順の一例を示すフローチャートである。
図34】サーバ構成選択の一例を示す図である。
図35】サーバ構成決定処理の手順の一例を示すフローチャートである。
図36】リソース配備の第1の例を示す図(1/4)である。
図37】リソース配備の第1の例を示す図(2/4)である。
図38】リソース配備の第1の例を示す図(3/4)である。
図39】リソース配備の第1の例を示す図(4/4)である。
図40】リソース配備の第2の例を示す図(1/7)である。
図41】リソース配備の第2の例を示す図(2/7)である。
図42】リソース配備の第2の例を示す図(3/7)である。
図43】リソース配備の第2の例を示す図(4/7)である。
図44】リソース配備の第2の例を示す図(5/7)である。
図45】リソース配備の第2の例を示す図(6/7)である。
図46】リソース配備の第2の例を示す図(7/7)である。
【発明を実施するための形態】
【0012】
以下、本実施の形態について図面を参照して説明する。なお各実施の形態は、矛盾のない範囲で複数の実施の形態を組み合わせて実施することができる。
〔第1の実施の形態〕
第1の実施の形態は、複数の機能を利用する処理を実行するサーバへのリソースの割当てを行う際に、処理の性能低下を抑止した割当てを行うことができるリソース割当て方法である。
【0013】
図1は、第1の実施の形態に係るリソース割当て方法の一例を示す図である。図1には、リソース割当て方法を実施するリソース割当て装置10が示されている。リソース割当て装置10は、例えばリソース割当てプログラムを実行することにより、リソース割当て方法を実施することができる。
【0014】
リソース割当て装置10は、コンピュータシステム2内のリソースを、処理情報1で示される処理の実行に利用するサーバ9a,9bに割り当てる。割当て対象のリソースとしては、CPU、メモリ、アクセラレータなどの複数のデバイスがある。CPUとメモリは、コンピュートユニット3a,3b,3cに含まれる。例えばコンピュートユニット3aには、CPU4aとメモリ4cとが含まれている。またコンピュートユニット3cには、CPU4bとメモリ4dとが含まれている。デバイスは、デバイス搭載用のBOX5a,5b,5cに含まれている。例えばBOX5aにはデバイス6a,6bが含まれている。BOX5bにはデバイス6cが含まれている。BOX5cにはデバイス6dが含まれている。
【0015】
リソース間は、バス用のスイッチ7a~7eを介してバス接続されている。例えばコンピュートユニット3a内のCPU4aは、スイッチ7aに接続されている。スイッチ7aには、さらにBOX5a内のスイッチ7cとBOX5b内のスイッチ7dとが接続されている。BOX5a内のデバイス6a,6bは、スイッチ7cに接続されている。BOX5b内のデバイス6cは、スイッチ7dに接続されている。コンピュートユニット3c内のCPU4bは、スイッチ7bに接続されている。スイッチ7bには、さらにBOX5c内のスイッチ7eが接続されている。BOX5c内のデバイス6dは、スイッチ7eに接続されている。このように複数のデバイスそれぞれは、他のデバイスの少なくとも一部とバス接続されている。
【0016】
またデバイス間はネットワーク経由でも接続されている。例えばBOX5a内のデバイス6a,6b、BOX5b内のデバイス6c、BOX5c内のデバイス6dは、ネットワークスイッチ8に接続されており、ネットワークスイッチ8経由で通信可能である。
【0017】
リソース割当て装置10は、記憶部11と処理部12とを有する。記憶部11は、例えばリソース割当て装置10が有するメモリまたはストレージ装置である。処理部12は、例えばリソース割当て装置10が有するプロセッサまたは演算回路である。
【0018】
リソース割当て装置10は、処理情報1に基づいてリソース割当てを行う。処理情報1は、コンピュータシステム2に実行させる複数の機能と、複数の機能間の通信に要求される性能とを示している。例えば処理情報1には、処理の実行に利用する複数の機能それぞれを示す機能情報1a~1dが含まれる。
【0019】
リソース割当て装置10は、処理情報1に示される複数の機能それぞれについて、その機能を実現するデバイスを決定する。
記憶部11は、コンピュータシステム2のハードウェア構成などを示すシステム情報11aを記憶する。システム情報11aには、コンピュータシステム2に含まれるリソース、およびリソース間の接続関係が示されている。
【0020】
処理部12は、システム情報11aに基づいてシステムの構成を把握し、処理の性能低下を抑止したリソースの割当てを行う。具体的には、処理部12は以下の処理を実行する。
【0021】
処理部12は、処理情報1に基づいて、通信に要求される性能の順で複数の機能それぞれを選択する。例えば処理部12は、通信に要求される性能が高い機能から順に、各機能を選択する。
【0022】
例えば機能情報1aで示される機能を「f1」、機能情報1bで示される機能を「f2」、機能情報1cで示される機能を「f3」、機能情報1dで示される機能を「f4」とする。機能「f1」と機能「f2」との間の通信を「c1」とする。機能「f2」と機能「f3」との間の通信を「c2」とする。機能「f3」と機能「f4」との間の通信を「c3」とする。
【0023】
図1の例では、各通信に要求される性能が、許容可能な遅延時間で示されている。通信「c1」に許容される遅延時間は「100μs」未満であり、通信「c2」に許容される遅延時間は「300μs」未満であり、通信「c3」に許容される遅延時間は「500μs」未満である。許容可能な遅延時間で性能を表した場合、その遅延時間が短いほど、要求される性能が高いことを意味する。したがって処理部12は、例えば許容可能な遅延時間が短い通信を行う機能から順に選択する。図1の例では、選択順は、1番目が「f1」と「f2」であり、2番目が「f3」であり、3番目が「f4」となる。
【0024】
次に処理部12は、選択した機能(第1の機能)を実現可能なデバイス6a~6d(実現する機能が決定されていない空きデバイス)のうちから、選択した第1の機能を実行させる第1のデバイスを決定する。例えば処理部12は、第1の機能を実現可能なデバイス6a~6dそれぞれの、第1の機能の通信相手の機能(第2の機能)を実現する第2のデバイスとの間のバス経由の通信経路の距離に基づいて、第1の機能を実現する第1のデバイスを決定する。
【0025】
バス経由の通信経路の距離は、例えばバス経由の通信経路上のスイッチ7a~7eの数である。通信経路上のスイッチ数を距離とした場合、例えば処理部12は、第2のデバイスとのバス経由の通信経路上のスイッチ7a~7eの数が他より少ないデバイスを第1のデバイスに決定する。
【0026】
また処理部12は、第1の機能を実行可能なデバイス6a~6dのなかに第2のデバイスにバス接続されたデバイスがない場合、第2のデバイスとネットワーク接続されたデバイスを第1のデバイスに決定する。
【0027】
なお、機能を実現するデバイスを決定することは、その機能に対して、その機能を実現するデバイスを割り当てると言い換えることもできる。
例えば機能情報1a~1dに示される各機能は、デバイス6a~6dのいずれでも実行可能であるものとする。この場合、処理部12は、最初に機能「f1」と機能「f2」とを選択し、これらの機能を実行するデバイスを決定する。図1の例では、BOX5a内のデバイス6a,6b間のバス経由の通信経路の距離が最も短い。そこで処理部12は、例えばデバイス6aを機能「f1」に割り当て、デバイス6bを機能「f2」に割り当てる。
【0028】
なお、処理部12は、機能「f1」と機能「f2」とを順番に選択した場合、例えば機能「f1」を選択したときに、最も多くの空きデバイスを有するBOX5a内のデバイス6aを機能「f1」に割り当てる。次に処理部12が機能「f2」を選択し、デバイス6aとの間のバス経由の通信経路の距離が最も短いデバイス6bを、機能「f2」に割り当てる。
【0029】
次に処理部12は、機能「f3」を選択する。機能「f3」と通信する機能「f2」にはデバイス6bが割り当てられている。現在の空きデバイスは、デバイス6cとデバイス6dである。デバイス6cは、3つのスイッチ7d,7a,7cを介して機能「f2」に割り当てられたデバイス6bにバス経由で接続されている。デバイス6dは、機能「f2」に割り当てられたデバイス6bに対して、バス経由では接続されておらず、ネットワークスイッチ8経由でネットワーク接続されているのみである。この場合、処理部12は、バス接続されているデバイス6cを、機能「f3」に割り当てる。
【0030】
最後に処理部12は、機能「f4」を選択する。機能「f4」と通信する機能「f3」にはデバイス6cが割り当てられている。デバイス6cとバス経由で通信可能な空きデバイスはない。そのため処理部12は、デバイス6cにネットワーク経由で接続されているデバイス6dを機能「f4」に割り当てる。
【0031】
このように処理部12は、要求される通信性能が高い機能から順に、通信相手の機能に割り当てられたデバイスとバス経由の距離が近いデバイスを割り当てていく。これにより、要求される通信性能が高い通信の両端の機能ほど通信相手とのデバイス間の距離が短くなり、通信遅延の増大が抑止される。しかも要求される通信性能が高い通信の両端の機能それぞれに割り当てられたデバイス間の距離が短いことで、他の処理を実行するデバイス間の通信との通信経路の重複を減らすことができる。すなわち、高い通信性能が要求される通信について、他の処理と通信経路が分離され、他の処理の通信の影響で通信が遅延することが抑止される。その結果、複数のデバイスで分散して実現される複数の機能を利用する処理が円滑化される。
【0032】
さらに処理部12は、機能間の通信について、バス経由とネットワーク経由とのどちらで通信するのかを適切に選択することもできる。例えば処理部12は、複数の機能間の通信に要求される性能と、複数の機能それぞれを実現するデバイス間を接続するバスの通信経路上のスイッチ数、またはバス経由の通信とネットワーク経由の通信それぞれの通信性能とを比較する。処理部12は、比較結果に基づいて、通信を行う機能の組ごとに、通信に使用する通信経路として、バスを介した通信経路(第1の通信経路)とネットワークを介した通信経路(第2の通信経路)とのいずれかを選択する。例えば処理部12は、要求される性能を満足する通信経路を、通信に使用する経路として選択する。これにより、機能間での通信が、要求される性能を満たさなくなることが抑止される。
【0033】
例えば処理部12は、バス経由の通信が1つのスイッチのみを経由した通信の場合、通信に使用する通信経路として、バスを介した第1の通信経路を選択する。例えば通信を行う2つの機能に対して同じBOX内のデバイスが割り当てられている場合、それらのデバイスは1つのスイッチのみを経由してバス接続されている。スイッチ間の通信が発生しなければ、スイッチ間を接続する経路での輻輳の影響を受けないため、バスを介した通信経路でも他の処理の影響を受けずに済む。そのため、バス経由の効率的な通信が可能となる。
【0034】
また処理部12は、バス経由の通信とネットワーク経由の通信との両方で、複数の機能間の通信に要求される性能が満たされる場合、通信に使用する通信経路として、ネットワークを介した第2の通信経路を選択してもよい。要求される性能が満たされるのであればネットワーク経由の通信を行うことで、バス経由の通信のデータ量を削減できる。その結果、処理情報1に示される処理の実行によって発生する通信が他の処理に及ぼす影響を低下させることができる。
【0035】
また処理部12は、例えばバス経由の通信とネットワーク経由の通信との両方で、複数の機能間の通信に要求される性能が満たされない場合、通信に使用する通信経路としてネットワークを介した第2の通信経路を選択する。通信経路の性能に差異がない場合にはネットワーク経由で通信を行わせることで、バス経由の通信量が低減する。その結果、バス経由の通信経路上で複数のDFの通信が重複し、輻輳が発生することが抑止される。
【0036】
〔第2の実施の形態〕
第2の実施の形態は、ネットワークを介して収集したデータを解析するためのサーバを、インフラストラクチャシステム(以下、「インフラシステム」と呼ぶ)内に構築するシステムである。
【0037】
図2は、第2の実施の形態のシステム構成の一例を示す図である。図2に示すシステムでは、ネットワーク20に、インフラシステム200、管理コンピュータ100、端末30、複数のカメラ31,32,・・・が接続されている。またインフラシステム200と管理コンピュータ100とは直接ケーブル接続されている。
【0038】
インフラシステム200は、カメラ31,32,・・・などのエッジデバイス群から収集したデータを解析するサーバを構築可能な、ディスアグリゲーション環境のコンピュータシステムである。例えばインフラシステム200内には、複数のコンピュートユニットとデバイスとがPCI(Peripheral Component Interconnect) Expressで接続されている。以下、PCI Expressを、PCIeと呼ぶ。コンピュートユニットには、CPUとメモリとが含まれる。デバイスは、例えばFPGA(Field Programmable Gate Array)などのアクセラレータである。
【0039】
管理コンピュータ100は、DF定義情報に応じてインフラシステム200にサーバを構築するコンピュータである。端末30は、ユーザからの指示に従ってDF定義情報を管理コンピュータ100に送信するコンピュータである。
【0040】
図3は、管理コンピュータのハードウェアの一例を示す図である。管理コンピュータ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス100aを介してメモリ102と複数の周辺機器が接続されている。バス100aは、例えばPCIeである。
【0041】
プロセッサ101は、マルチプロセッサであってもよい。プロセッサ101は、例えばCPU、MPU(Micro Processing Unit)、またはDSP(Digital Signal Processor)である。プロセッサ101がプログラムを実行することで実現する機能の少なくとも一部を、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)などの電子回路で実現してもよい。
【0042】
メモリ102は、管理コンピュータ100の主記憶装置として使用される。メモリ102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、メモリ102には、プロセッサ101による処理に利用する各種データが格納される。メモリ102としては、例えばRAM(Random Access Memory)などの揮発性の半導体記憶装置が使用される。
【0043】
バス100aに接続されている周辺機器としては、ストレージ装置103、GPU(Graphics Processing Unit)104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107、ネットワークインタフェース108、およびケーブルアダプタ109がある。
【0044】
ストレージ装置103は、内蔵した記録媒体に対して、電気的または磁気的にデータの書き込みおよび読み出しを行う。ストレージ装置103は、管理コンピュータ100の補助記憶装置として使用される。ストレージ装置103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、ストレージ装置103としては、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)を使用することができる。
【0045】
GPU104は画像処理を行う演算装置であり、グラフィックコントローラとも呼ばれる。GPU104には、モニタ21が接続されている。GPU104は、プロセッサ101からの命令に従って、画像をモニタ21の画面に表示させる。モニタ21としては、有機EL(Electro Luminescence)を用いた表示装置や液晶表示装置などがある。
【0046】
入力インタフェース105には、キーボード22とマウス23とが接続されている。入力インタフェース105は、キーボード22やマウス23から送られてくる信号をプロセッサ101に送信する。なお、マウス23は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0047】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク24に記録されたデータの読み取り、または光ディスク24へのデータの書き込みを行う。光ディスク24は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク24には、DVD(Digital Versatile Disc)、DVD-RAM、CD-ROM(Compact Disc Read Only Memory)、CD-R(Recordable)/RW(ReWritable)などがある。
【0048】
機器接続インタフェース107は、管理コンピュータ100に周辺機器を接続するための通信インタフェースである。例えば機器接続インタフェース107には、メモリ装置25やメモリリーダライタ26を接続することができる。メモリ装置25は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ26は、メモリカード27へのデータの書き込み、またはメモリカード27からのデータの読み出しを行う装置である。メモリカード27は、カード型の記録媒体である。
【0049】
ネットワークインタフェース108は、ネットワーク20に接続されている。ネットワークインタフェース108は、ネットワーク20を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。ネットワークインタフェース108は、例えばスイッチやルータなどの有線通信装置にケーブルで接続されている有線通信インタフェースである。またネットワークインタフェース108は、基地局やアクセスポイントなどの無線通信装置に電波によって通信接続される無線通信インタフェースであってもよい。
【0050】
ケーブルアダプタ109は、外部の機器とケーブルを介してPCIeで接続するためのアダプタカードである。このようなアダプタカードは、Host Interface Boardとも呼ばれる。ケーブルアダプタ109は、PCIeケーブルによってインフラシステム200と接続されている。
【0051】
管理コンピュータ100は、以上のようなハードウェアによって、第2の実施の形態の処理機能を実現することができる。なお、第1の実施の形態に示した装置も、図3に示した管理コンピュータ100と同様のハードウェアにより実現することができる。
【0052】
管理コンピュータ100は、例えばコンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、第2の実施の形態の処理機能を実現する。管理コンピュータ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことができる。例えば、管理コンピュータ100に実行させるプログラムをストレージ装置103に格納しておくことができる。プロセッサ101は、ストレージ装置103内のプログラムの少なくとも一部をメモリ102にロードし、プログラムを実行する。また管理コンピュータ100に実行させるプログラムを、光ディスク24、メモリ装置25、メモリカード27などの可搬型記録媒体に記録しておくこともできる。可搬型記録媒体に格納されたプログラムは、例えばプロセッサ101からの制御により、ストレージ装置103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することもできる。
【0053】
次にインフラシステムのハードウェア構成について説明する。
図4は、インフラシステムのハードウェア構成の一例を示す図である。インフラシステム200には、コンピュートユニット211,212,・・・、PCIeスイッチ220、PCIeBOX230,240,・・・、およびイーサネットスイッチ250が含まれている。
【0054】
コンピュートユニット211は、CPU211a,211b、メモリ211c,211d、およびケーブルアダプタ211e,211fを有する。メモリ211cはCPU211aに接続されている。メモリ211dはCPU211bに接続されている。CPU211a,211bは、LSNに組み込まれたときに、そのLSNに含まれる他のリソースを管理する。ケーブルアダプタ211e,211fは、PCIeに外部機器をケーブル接続させるためのアダプタである。
【0055】
コンピュートユニット212は、CPU212a,212b、メモリ212c,212d、およびケーブルアダプタ212e,212fを有する。メモリ212cはCPU212aに接続されている。メモリ212dはCPU212bに接続されている。CPU212a,212bは、LSNに組み込まれたときに、そのLSNに含まれる他のリソースを管理する。ケーブルアダプタ212e,212fは、PCIeに外部機器をケーブル接続させるための、PCIeスロットに挿入可能なアダプタカードである。
【0056】
PCIeスイッチ220は、PCIeケーブルを接続可能な複数のポートを有している。PCIeスイッチのポートには、コンピュートユニット211,212,・・・、PCIeBOX230,240,・・・、管理コンピュータ100などが接続されている。PCIeスイッチ220は、各ポートに接続されたPCIeケーブルを介して入力されたデータを、そのデータの宛先のデバイスが接続されたポートへ出力する。
【0057】
PCIeスイッチ220とコンピュートユニット211,212,・・・それぞれとの間は、使用するレーン数分のPCIeケーブルで接続されている。同様にPCIeスイッチ220とPCIeBOX230,240,・・・それぞれとの間は、使用するレーン数分のPCIeケーブルで接続されている。
【0058】
PCIeBOX230は、PCIeスイッチ231とFPGA232~235とを有している。FPGA232~235は、PCIeスイッチ231とイーサネットスイッチ250とに接続されている。例えばFPGA232~235はカード型のモジュールであり、PCIeスイッチ231のスロットに差し込まれている。またFPGA232~235は、イーサネット用の接続ポートを有しており、その接続ポートに、イーサネットスイッチ250に繋がったケーブルが接続されている。
【0059】
PCIeBOX240は、PCIeスイッチ241とFPGA242~245とを有している。FPGA242~245は、PCIeスイッチ241とイーサネットスイッチ250とに接続されている。例えばFPGA242~245はカード型のモジュールであり、PCIeスイッチ241のスロットに差し込まれている。またFPGA242~245は、イーサネット用の接続ポートを有しており、その接続ポートに、イーサネットスイッチ250に繋がったケーブルが接続されている。
【0060】
イーサネットスイッチ250は、PCIeBOX230,240内のFPGA232~235,242~245、およびネットワーク20に接続されている。イーサネットスイッチ250は、FPGA232~235,242~245間のデータ通信を中継すると共に、ネットワーク20を介して接続されたカメラ31,32,・・・から送られるデータをFPGA232~235,242~245に送信する。
【0061】
図2図4に示したシステムにより、ディスアグリゲーションによるLSNの構築が行われる。LSNを構築する場合、そのLSNに含めるデバイスの選択が不適切だと、LSNを用いて運用されるサーバの処理効率が低下する。以下、図5図12を参照し、サーバの処理効率が低下する要因について説明する。
【0062】
図5は、LSNで運用されるサーバの一例を示す図である。サーバ41は、名称「LSN1」のLSNを用いて運用されている。「LSN1」には、CPU211a、メモリ211c、およびFPGA232,233が含まれる。サーバ41を運用するための「LSN1」の性能が不足した場合には、例えばFPGA234が「LSN1」に追加される。
【0063】
このように、ディスアグリゲーション環境では、FPGA232~235,242~245などのアクセラレータがデバイスレベルで分離してプール化される。コンピュート(CPU+メモリ)とデバイスを組み合わせてLSNが構築される。そして構築されたLSNでサーバ41が運用される。LSNへのデバイスの追加により、サーバ41の性能の増強も可能である。
【0064】
また、インフラシステム200に含まれるデバイス間には、PCIe経由のインターコネクト通信とイーサネット経由のネットワーク通信との2系統の通信経路がある。
図6は、デバイス間通信の一例を示す図である。同一のサーバ41に含まれるFPGA232,233間は、PCIe経由でのDMA(Direct Memory Access)転送により、データの受け渡しが行われる。例えばFPGA232は、送信するデータをメモリ211cにDMAで送信する。次にFPGA233は、受信するデータをメモリ211cからDMAで受信する。
【0065】
サーバ41のFPGA232,233は、同じPCIeBOX230内にあるが、異なるPCIeBOXのデバイスを組み合わせてLSNが構築される場合もある。例えばサーバ42の運用に用いられているLSNは、PCIeBOX230内のFPGA235とPCIeBOX240内のFPGA242とを含んでいる。FPGA235とFPGA242とは、サーバ42のメモリ211dを介したDMA転送によってデータの受け渡しが可能である。
【0066】
図6に示したようなDMA転送によるデータ通信は、PCIe経由であるため高速のデータ転送が可能である。しかもDMA転送であることから、CPUに負荷をかけずに済む。ただしPCIe経由のDMA転送は、同じサーバ内のデバイス間の通信にしか適用できない。そこでインフラシステム200には、汎用的に利用可能なイーサネットが用意されている。
【0067】
図7は、イーサネットを利用したデバイス間通信の一例を示す図である。図7に示すように、サーバ41内のFPGA232,233間は、PCIe経由での通信に加え、イーサネットスイッチ250経由でも通信が可能である。同様にサーバ42内のFPGA235,242間は、PCIe経由での通信に加え、イーサネットスイッチ250経由でも通信が可能である。イーサネットスイッチ250経由の通信は、例えばTCP(Transmission Control Protocol)によるパケット通信である。イーサネットはPCIeに比べると低帯域かつ高遅延だがサーバ内、サーバ間どちらにも適用可能である。
【0068】
図8は、サーバの異なるデバイス間の通信の一例を示す図である。図8の例では、サーバ41内のFPGA232とサーバ43内のFPGA242とが、イーサネットスイッチ250経由でネットワーク通信を行っている。またサーバ44内のFPGA244とサーバ45内のFPGA245とが、イーサネットスイッチ250経由でネットワーク通信を行っている。このように、異なるサーバ間のデバイス間通信は、ネットワーク通信に限定される。
【0069】
なおデバイス間の通信速度は、通信を行うデバイスがPCIe経由のインターコネクト通信が可能なのか否かに依存する。またインターコネクト通信の場合、経由するPCIeスイッチの数が少ないほど効率の良いデータ転送が可能である。
【0070】
サーバの運用に用いるLSNの構成は、管理コンピュータ100が有するインフラシステムマネージャで管理される。
図9は、LSNの構成の管理方法の一例を示す図である。例えば管理コンピュータ100は、インフラシステム200内のリソース(CPU、デバイス)と、リソース間の接続関係とを示す物理構成情報50を有する。例えば物理構成情報50には、PCIeスイッチ220を根とした木構造で、リソース間の接続関係が示されている。木構造では、PCIeスイッチ220の名称「pcie-sw0」の子として、PCIeスイッチ220のポートの識別子が設定される。ポートの識別子の子として、そのポートに接続されているリソースまたはPCIeスイッチの名称が設定される。ポートにPCIeスイッチが接続されている場合、そのPCIeスイッチの名称の子として、そのPCIeスイッチのポートの識別子が設定される。PCIeスイッチのポートに他のリソースまたはPCIeスイッチが接続されていれば、そのポートの識別子の子として、接続されたリソースまたはPCIeスイッチの識別子が設定される。
【0071】
LSN構成情報50aには、構築されたLSNごとに、そのLSNに含まれるリソースが示される。図9の例では、LSN構成情報50aには、2つのサーバ46,47に対応するLSNの構成が示されている。LSNの構成としては、物理構成情報50に示される要素のうちの、そのLSNに含まれる要素が示される。
【0072】
なお、管理コンピュータ100では、物理構成情報50、LSN構成情報50a以外にも、各デバイスのスペック、状態などの情報が管理される。デバイスの状態の情報は、例えばLSNの構成要素として使用されているか否かの情報である。
【0073】
LSNの構築は、サーバに実行させる一連の処理の手順を示すDFに基づいて行われる。DFには、複数のファンクションが示される。そしてDFに含まれるファンクションに対して、そのファンクションを実行するデバイスが割り当てられる。
【0074】
図10は、ファンクションへのデバイス割当ての一例を示す図である。図10には、動画AI(Artificial Intelligence)解析を行うDF51の例が示されている。DF51には複数のファンクションが含まれる。ファンクション「func0」は、カメラ31,32,・・・で撮影された画像データを受信し、その画像データをデコードする。ファンクション「func1-0」、「func1-1」は、画像のリサイズ(拡大または縮小)を行う。ファンクション「func2」は、リサイズ後の画像を用いてAIにおける推論(例えば街中の監視カメラで写った画像に基づく危険の有無の判断)を行う。DFに応じた処理の結果、推論結果51aが出力される。
【0075】
このようなDF51に対応する処理をサーバ46,47に実行させるものとする。その場合、管理コンピュータ100は、大量データ解析や動画・画像処理を対象とするため、各ファンクションに高速演算可能なデバイスを活用する。例えばFPGA232がファンクション「func0」に割り当てられる。FPGA233がファンクション「func1-0」に割り当てられる。FPGA234がファンクション「func1-1」に割り当てられる。FPGA242がファンクション「func2」に割り当てられる。
【0076】
ファンクション間の通信高速化のため、通信速度だけを考慮すると、デバイス間の通信手段としては、CPUを介さず通信を行うことができることが望ましい。そのため、PCIe経由とイーサネット経由との2つの通信経路があるデバイス(FPGA232~234)間では、PCIe経由の通信が行われる。他方、異なるサーバ46,47間の通信となるデバイス間(FPGA233とFPGA242との通信、およびFPGA234とFPGA242との通信)では、イーサネットスイッチ250経由の通信が行われる。
【0077】
以上のようなファンクションへのデバイスの割当てを行う際、管理コンピュータ100が、単純に空いているデバイスを各ファンクションに割り当てると性能に大きな支障をきたすことがある。
【0078】
図11は、通信経路が長いことによる通信遅延増加の一例を示す図である。サーバ48は、PCIeBOX230内のFPGA232~234とPCIeBOX240内のFPGA242とを含む。このサーバ48に図10に示したDF51の処理を実行させる場合、DF51の各ファンクションにサーバ48内のいずれかのデバイスが割り当てられる。図11の例では、FPGA232はファンクション「func0」に割り当てられている。FPGA233はファンクション「func1-0」に割り当てられている。FPGA234はファンクション「func1-1」に割り当てられている。FPGA242はファンクション「func2」に割り当てられている。
【0079】
このときFPGA233,234それぞれは、ファンクションの実行結果をFPGA242に送信することとなる。その場合、通信経路としては、PCIeスイッチ220,231,241経由の通信経路とイーサネットスイッチ250経由の通信経路とがある。一般には、PCIeスイッチ220,231,241経由の通信経路の方が高速である。そのため、FPGA233,234は、PCIeスイッチ220,231,241経由の通信経路でデータ送信することとなる。しかし、この通信経路は経由するPCIeスイッチの数が多く、同一のPCIeBOX内でのデバイス間通信に比べて通信遅延が大きい。その結果、DF51に応じた処理の遅延も増加してしまう。
【0080】
LSNの構築およびファンクションへのデバイスの割当てにおいて、単に空きデバイスをファンクションに割り当てると、図11に示したような割当となる可能性がある。すなわち、DF51において隣接する(通信する)ファンクションに対して物理的に離れた(経由するPCIeスイッチ数の多い)デバイスが割り当てられる可能性がある。その結果、デバイス間遅延が大きくなり、DF51に応じた処理遅延が増加する。
【0081】
また、配備するサーバで使用するデバイス間の通信速度は、他のサーバの通信状況にも依存する。
図12は、他のサーバの通信の影響による通信遅延増加の一例を示す図である。図12の例では、サーバ48の配備前から他のサーバ49が配備されている。サーバ49は、PCIeBOX240内のFPGA243~245を含む。この場合、サーバ49は、CPU212bとFPGA243~245との間で、PCIeスイッチ220,241を経由した通信が発生する。またFPGA243~245間通信がメモリ212dを介したDMA転送で行われる場合にも、PCIeスイッチ220,241を経由した通信が発生する。
【0082】
このような状況において新たなサーバ48を配備すると、サーバ49の通信の影響で、PCIeスイッチ220を介したサーバ48内のデバイス間通信のために、十分な通信帯域を確保できない可能性がある。その結果、通信の遅延時間が、サーバ48で実行する一連の処理に許容できる時間を超える可能性がある。
【0083】
図12の例では、配備するサーバ48以外のサーバ49は1つだけであるが、他に多くのサーバが既に配備されている場合もある。その場合、サーバ48を新たに配備する際、他の多くのサーバが使用している経路と同じ経路を選択する可能性がある。すると、輻輳によりデバイス間の通信が要求性能(帯域、通信遅延)を満たせなくなる可能性が高くなる。
【0084】
特にデバイス間の通信は高速性が求められることが多い。そのため、他のサーバの通信経路を考慮せずに通信経路が設定されると、PCIe経由の通信経路に通信が集中する。通信経路での輻輳が発生すると、配備対象のサーバ48だけでなく、経路を共有する全てのサーバで通信性能の劣化が起こる。
【0085】
そこで管理コンピュータ100は、DFを新規配備する際に、通信の遅延を低減するように各ファンクションのデバイスとデバイス間の経路を選択して、サーバを作成する。具体的には以下の通りである。
【0086】
[デバイス選択]
管理コンピュータ100は、配備対象のファンクションに対して、可能な限り近くのデバイスを割り当てる。例えば管理コンピュータ100は、まずPCIeBOX単位で割り当てるデバイスを選択する。すなわち管理コンピュータ100は、1つのDF内の複数のファンクションそれぞれに対して、できるだけ少ないPCIeBOX内のデバイスを割り当てる。その際、管理コンピュータ100は、要求性能が高い(低遅延を要求する)通信の周辺のファンクションには優先的に同一PCIeBOX内のデバイスを割り当てる。換言すると、管理コンピュータ100は、複数のPCIeBOXに分散配備せざるを得ない場合、遅くてもよい通信を行うファンクションの対については、異なるPCIeBOX内のデバイスを割り当てる。PCIeBOX内はデバイス間距離が最小なので、同一PCIeBOX内のデバイスを割り当てたファンクション間は高速に通信が可能となる。
【0087】
[通信経路選択]
管理コンピュータ100は、PCIeスイッチ経由の通信の輻輳を避けるように、ファンクション間の通信経路を選択する。例えば管理コンピュータ100は、イーサネット経由でも要求性能を満たせる通信についてイーサネット経由で通信するように、ファンクション間の通信経路を決定する。また管理コンピュータ100は、PCIe経由が求められる通信でも、PCIe経路が集中(空き帯域が不足)する場合にはイーサネット経由の通信経路を選択する。
【0088】
[サーバ構成決定]
管理コンピュータ100は、PCIeスイッチで接続不可能な2つのデバイスのそれぞれが割り当てられた、DF上で隣接する2つのファンクションは、属するサーバを分ける。PCIeスイッチで接続不可能な2つのデバイスとは、それらのデバイス間にPCIeスイッチを介した通信経路がなく、イーサネットスイッチ250でしか接続されていないデバイスである。
【0089】
次に、適切なデバイス選択、通信経路選択、およびサーバ構成決定を行うための管理コンピュータ100の機能について説明する。
図13は、管理コンピュータが有する機能の一例を示すブロック図である。管理コンピュータ100は、リソース配備スケジューラ110、インフラシステムマネージャ120、およびリソース管理マネージャ130を有する。
【0090】
リソース配備スケジューラ110は、DFに対して、ファンクションに割り当てるデバイス選択、ファンクション間の通信経路選択、およびファンクションを実行するサーバ構成決定を行う。リソース配備スケジューラ110は、DF情報記憶部111、DF配備要求受付部112、デバイス選択部113、経路選択部114、サーバ構成決定部115、サーバ作成指示部116、およびDF配備先通知部117を有する。
【0091】
DF情報記憶部111は、インフラシステム200で実行させるDFに関する情報を記憶する。例えばDF情報記憶部111には、デバイス割当て情報111a、経路情報111b、サーバ構成情報111cなどが記憶される。デバイス割当て情報111aは、各ファクションに割り当てたデバイスを示す情報である。経路情報111bは、ファンクション間の通信に使用する通信経路を示す情報である。サーバ構成情報111cは、サーバの構成を示す情報である。
【0092】
DF配備要求受付部112は、端末30からDF配備要求を受け付ける。DF配備要求には、DF定義情報が含まれる。DF定義情報には、DFに含まれるファンクションの構成、およびファンクション間の接続関係、および接続されたファンクション間の通信に要求される要求性能などが示される。
【0093】
デバイス選択部113は、DF配備要求に含まれるDF定義情報に基づいて、DFに含まれるファンクションに割り当てるデバイスを選択する。デバイス選択部113は、ファンクションに対して割り当てたデバイスをデバイス割当て情報111aに設定する。
【0094】
経路選択部114は、ファンクション間の通信に使用する通信経路を選択する。経路選択部114は、選択した通信経路を示す情報を経路情報111bに設定する。
サーバ構成決定部115は、DF内の各ファンクションを実行するサーバの構成を決定する。サーバ構成決定部115は、決定したサーバの構成を示す情報を、サーバ構成情報111cに設定する。
【0095】
サーバ作成指示部116は、インフラシステムマネージャ120に対して、サーバの作成を指示する。
DF配備先通知部117は、リソース管理マネージャ130に対して、DFに含まれるファンクションの配備先と、ファンクション間の通信経路とを通知する。
【0096】
インフラシステムマネージャ120は、インフラシステム200に対してLSNを配備する。インフラシステムマネージャ120は、インフラ情報記憶部121、デバイス管理部122、およびLSN配備制御部123を有する。
【0097】
インフラ情報記憶部121は、インフラシステム200に関する情報を記憶する。インフラ情報記憶部121は、第1の実施の形態に示したシステム情報11a(図1参照)の一例である。例えばインフラ情報記憶部121には、物理構成情報121a、デバイス情報121b、ネットワーク状態情報121c、およびLSN構成情報121dが記憶される。物理構成情報121aは、インフラシステム内のハードウェア構成を示す情報である。デバイス情報121bは、デバイスの種別、状態などを示す情報である。ネットワーク状態情報121cは、PCIeまたはイーサネットのネットワークの通信状態を示す情報である。LSN構成情報121dは、構築されたLSNの構成を示す情報である。
【0098】
デバイス管理部122は、インフラシステム200内のデバイスの運用状況を管理する。例えばデバイス管理部122は、インフラシステム200からデバイス間のデータ通信状況を示す情報を取得する。例えばインフラシステム200に構築されているLSN290は計測部291を有する。計測部291は、デバイス間のデータ通信量をデバイス管理部122に送信する。そしてデバイス管理部122は、取得したデータ通信量に基づいて、ネットワーク状態情報121cを更新する。
【0099】
LSN配備制御部123は、リソース配備スケジューラ110からのサーバ作成指示に従って、インフラシステム200にLSNを配備し、そのLSNでサーバを動作させる。
リソース管理マネージャ130は、DF配備先通知部117からの配備先通知に従ってインフラシステム200内のデバイスに対してファンクションを配備する。リソース管理マネージャ130は、配備先解釈部131と配備実行部132とを有する。
【0100】
配備先解釈部131は、DF配備先通知部117から通知されたDF配備に関する情報を解釈する。配備実行部132は、解釈結果に基づいて、DFのファンクションをインフラシステムのデバイスに配備する。なおファンクションを配備するとは、デバイスにそのファンクションの実行機能を実装し、運用状態とすることである。
【0101】
なお、図13に示した各要素間を接続する線は通信経路の一部を示すものであり、図示した通信経路以外の通信経路も設定可能である。また、図13に示した各要素の機能は、例えば、その要素に対応するプログラムモジュールをコンピュータに実行させることで実現することができる。
【0102】
以下、図14図20を参照し、DFの配備に利用するデータについて具体的に説明する。
図14は、物理構成情報の一例を示す図である。物理構成情報121aには、PCIeスイッチ、PCIeスイッチのポート、FPGAそれぞれに対応するレコードが含まれる。各レコードには、位置、上流(親)位置、デバイスid、およびデバイスタイプのデータが設定されている。
【0103】
位置のデータは、デバイスのハードウェア構成上の位置を示す識別子である。上流(親)位置のデータは、該当デバイスの上流(親)のデバイスの位置を示すデータである。ポートの親は、そのポートを有するスイッチである。PCIeスイッチの親は、そのPCIeスイッチが接続された上流側のPCIeスイッチのポートである。FPGAの親は、そのFPGAが接続されたPCIeスイッチのポートである。デバイスidのデータは、デバイスの識別子である。デバイスタイプのデータは、デバイスの種別である。デバイスタイプのデータには、PCIeスイッチを示す「pcie sw」、PCIeスイッチのポートを示す「port」、FPGAを示す「fpga」がある。
【0104】
図15は、デバイス情報の一例を示す図である。デバイス情報121bには、CPU、FPGAそれぞれに対応するレコードが含まれる。各レコードには、デバイスid、デバイス名、デバイスタイプ、モデル、位置、筐体id、および状態のデータが設定されている。
【0105】
デバイスidのデータは、デバイスの識別子である。デバイス名のデータは、デバイスの名称である。デバイスタイプのデータは、デバイスの種別である。デバイスタイプを示すデータには、CPUを示す「cpu」、FPGAを示す「fpga」がある。モデルのデータは、デバイスのモデル名である。位置のデータは、デバイスのハードウェア構成上の位置を示す識別子である。筐体idのデータは、デバイスが搭載されているコンピュートユニットまたはPCIeBOXの識別子である。状態のデータは、デバイスがLSNに割り当てられているか否かを示すデータである。LSNに割り当てられているデバイスの状態のデータは、「allocated」である。LSNに未割り当てのデバイスの状態のデータは、「available」である。
【0106】
図16は、ネットワーク状態情報の一例を示す図である。ネットワーク状態情報121cには、PCIeスイッチおよびイーサネットスイッチそれぞれに対応するレコードが含まれる。各レコードには、デバイスid、スイッチ名、デバイスタイプ、位置、遅延、総帯域、使用帯域、および空き帯域のデータが設定されている。
【0107】
デバイスidのデータは、デバイスの識別子である。スイッチ名のデータは、PCIeスイッチまたはイーサネットスイッチの名称である。デバイスタイプのデータは、デバイスの種別を示すデータである。PCIeスイッチのデバイスタイプのデータは「pcie sw」である。イーサネットスイッチのデバイスタイプのデータは「ethernet sw」である。位置のデータは、デバイスのハードウェア構成上の位置を示す識別子である。
【0108】
遅延のデータは、対応するデバイスを経由した通信の遅延時間を示すデータである。総帯域のデータは、対応するデバイスの総帯域(最大の通信量)をGbpsで示すデータである。使用帯域のデータは、対応するデバイスで使用されている通信量をGbpsで示すデータである。空き帯域のデータは、対応するデバイスの総帯域と使用帯域との差分をGbpsで示すデータである。
【0109】
図17は、LSN構成情報の一例を示す図である。LSN構成情報121dには、LSNごとのレコードが含まれる。各レコードには、LSNid、LSN名、およびデバイスidのデータが設定されている。
【0110】
LSNidのデータは、LSNの識別子である。LSN名のデータは、LSNの名称である。デバイスidのデータは、LSNに含まれるデバイスの識別子である。
図18は、デバイス割当て情報の一例を示す図である。デバイス割当て情報111aには、DF内のファンクションごとのレコードが含まれる。各レコードには、func id、デバイスid、デバイス名、位置、デバイスタイプ、および搭載PCIeBOXのデータが設定されている。
【0111】
func idのデータは、ファンクションの識別子である。デバイスidのデータは、ファンクションに割り当てられたデバイスの識別子である。デバイス名のデータは、ファンクションに割り当てられたデバイスの名称である。位置のデータは、ファンクションに割り当てられたデバイスのハードウェア構成上の位置を示すデータである。デバイスタイプのデータは、ファンクションに割り当てられたデバイスの種別を示すデータである。搭載PCIeBOXのデータは、ファンクションに割り当てられたデバイスが搭載されたPCIeBOXを示すデータである。
【0112】
図19は、経路情報の一例を示す図である。経路情報111bには、DF上で隣接するファンクションの対の間の通信経路ごとのレコードが含まれる。各レコードには、func間通信名、経路タイプ、パス(経由SW)のデータが設定されている。
【0113】
func間通信名のデータは、通信経路の名称である。経路タイプのデータは、通信経路の種別を示すデータである。PCIeスイッチ経由の通信経路であれば、経路タイプは「pcie経由」となる。イーサネットスイッチ経由の通信経路であれば、経路タイプは「ethernet経由」となる。パス(経由SW)のデータは、通信経路上のデバイスの接続関係を示すデータである。
【0114】
図20は、サーバ構成情報の一例を示す図である。サーバ構成情報111cには、サーバごとのレコードが含まれる。各レコードには、サーバ名、搭載デバイス、CPU数、搭載CPU、および搭載メモリ量のデータが含まれる。
【0115】
サーバ名のデータは、サーバの名称である。搭載デバイスのデータは、サーバに搭載されたアクセラレータのデバイスのデバイス名のリストである。CPU数のデータは、サーバに搭載されているCPUの数である。搭載CPUのデータは、サーバに搭載されているCPUのCPU名のリストである。搭載メモリ量のデータは、サーバに主記憶装置として搭載されているメモリの記憶容量である。
【0116】
図14図20に示したデータに基づいて、リソース配備スケジューラ110によりDF内のファンクションへの適切なデバイス割当てが行われる。例えばリソース配備スケジューラ110は、DF定義情報に基づいて、サーバ構成情報とDF配備情報とを生成する。
【0117】
図21は、リソース配備スケジューラの入出力データの一例を示す図である。リソース配備スケジューラ110に入力されるDF定義情報52には、ファンクション情報52a,52b,52cが含まれる。ファンクション情報52a,52b,52cには、DFにおいて実行するファンクションの識別子「Id」、そのファンクションの実行に利用するFPGAの数が設定されている。またDF定義情報52では、通信を行うファンクション(隣接するファンクション)のファンクション情報間が関連付けられている(図21では線で接続)。
【0118】
隣接するファンクション間の通信経路には、Func間通信情報52d,52eが設定されている。Func間通信情報52d,52eには、要求性能が含まれる。要求性能には、例えばDFの配備を指示したユーザが希望する最大の遅延時間と、そのユーザが希望する最小の帯域幅とが設定されている。
【0119】
リソース配備スケジューラ110は、DF定義情報52が入力されると、DFを実行するサーバを示すサーバ構成情報53a,53bと、サーバへのDFの配備内容を示すDF配備情報54とを生成する。サーバ構成情報53a,53bには、DF用に構築するサーバの構成(CPU数、メモリ量、搭載するデバイスの情報)が示される。DF配備情報54には、DF定義情報52に示される各ファンクションに割り当てるデバイスの情報(例えばデバイス名)と、各Func間通信として選択した通信経路の種別(経路タイプ)が示される。
【0120】
リソース配備スケジューラ110は、生成したサーバ構成情報53a,53bをインフラシステムマネージャ120に送信する。するとインフラシステムマネージャ120がサーバ構成情報53a,53bに基づいて、インフラシステム200内にLSNを構築し、構築したLSNをサーバとして機能させる。
【0121】
またリソース配備スケジューラ110は、生成したDF配備情報54をリソース管理マネージャ130に送信する。するとリソース管理マネージャ130は、DF配備情報54に基づいて、インフラシステム200内のサーバにDFを配備する。
【0122】
図22は、管理コンピュータにおけるデータの流れを示す図である。リソース配備スケジューラ110に入力されたDF定義情報52は、DF配備要求受付部112で取得される。DF配備要求受付部112は、取得したDF定義情報52をデバイス選択部113に送信する。デバイス選択部113は、物理構成情報121aとデバイス情報121bとを参照し、DF定義情報52に示されるファンクションに割り当てるデバイスを決定する。そしてデバイス選択部113は、デバイス割当て情報111aを更新する。
【0123】
経路選択部114は、DF定義情報52に応じたデバイス割当てが完了すると、ネットワーク状態情報121cを参照し、ファンクション間の通信経路を選択する。経路選択部114は、通信経路の選択結果に基づいて、経路情報111bを更新する。通信経路の選択が完了すると、サーバ構成決定部115は、DFの処理を実行するサーバの構成を決定する。サーバ構成決定部115は、決定したサーバ構成に基づいて、サーバ構成情報111cを更新する。
【0124】
サーバ作成指示部116は、サーバ構成情報111cを参照し、DF定義情報52に応じて決定されたサーバ構成を示すサーバ構成情報53a,53bを含むサーバ作成指示を、インフラシステムマネージャ120に送信する。サーバ構成情報53a,53bはインフラシステムマネージャ120内のLSN配備制御部123で受信される。LSN配備制御部123は、サーバ構成情報53a,53bに従って、インフラシステム200にサーバを構築する。例えばLSN配備制御部123は、インフラシステム200内にLSN201を構築する。LSN201は、インフラシステム200が有するコンピュートユニット群200a内のCPUと、インフラシステム200が有するデバイス群200b内のいずれかのデバイス(ストレージ、GPU、FPGAなど)を組み合わせて構築される。
【0125】
そしてLSN配備制御部123は、構築したLSN201にOS201bをインストールする。さらにLSN配備制御部123は、LSN201をサーバとして動作させる。またLSN配備制御部123は、OS201b上で計測部201aを実行させる。LSN配備制御部123は、LSN201を構築後、LSN構成情報121dを更新する。
【0126】
DF配備先通知部117は、デバイス割当て情報111aと経路情報111bとに基づいてDF配備情報54を生成し、DF配備情報54を含むDF配備通知をリソース管理マネージャ130に送信する。
【0127】
リソース管理マネージャ130では、配備先解釈部131がDF配備情報54を受信する。配備先解釈部131は、DF配備情報54に基づいて、DF内のファンクションに割り当てるデバイスと、ファンクション間の通信経路とを解釈する。配備実行部132は、配備先解釈部131が解釈した結果に従って、LSN201を構成するデバイスに、ファンクションを実行させる。また配備実行部132は、配備先解釈部131が解釈した結果に従って、各ファンクションに対して、他のファンクションとの通信経路を設定する。
【0128】
LSN201によりDFの各ファンクションの処理の実行が開始されると、計測部201aによって通信経路ごとの通信負荷(例えば使用帯域)が計測される。インフラシステムマネージャ120のデバイス管理部122は、計測部201aが計測した通信負荷の情報を取得し、ネットワーク状態情報121cを更新する。
【0129】
次に、リソース配備スケジューラ110が実行するリソース配備処理について詳細に説明する。
図23は、リソース配備スケジューラによるリソース配備処理の手順の一例を示すフローチャートである。以下、図23に示す処理をステップ番号に沿って説明する。
【0130】
[ステップS101]DF配備要求受付部112は、端末30からDF定義情報を含むDF配備要求を受信する。DF配備要求受付部112は、受信したDF配備要求に含まれるDF定義情報をデバイス選択部113に送信する。
【0131】
[ステップS102]デバイス選択部113は、デバイス選択処理を行う。デバイス選択処理により、DF定義情報に示されるファンクションそれぞれに割り当てるデバイスが選択される。デバイス選択処理の詳細な処理手順は後述する(図28図31参照)。
【0132】
[ステップS103]経路選択部114は、経路選択処理を行う。経路選択処理の詳細な処理手順は後述する(図33参照)。
[ステップS104]サーバ構成決定部115は、サーバ構成決定処理を行う。サーバ構成決定処理の詳細な処理手順は後述する(図35参照)。
【0133】
[ステップS105]サーバ作成指示部116は、インフラシステムマネージャ120に対してサーバ作成指示を送信する。
[ステップS106]DF配備先通知部117は、リソース管理マネージャ130にDF配備先を通知する。
【0134】
このような手順でリソース配備処理が行われる。以下、デバイス選択処理、経路選択処理、およびサーバ構成決定処理それぞれについて、詳細に説明する。
まず、デバイス選択処理について詳細に説明する。
【0135】
図24は、デバイス選択の一例を示す図である。例えばDF定義情報55がリソース配備スケジューラ110に入力されたものとする。DF定義情報55には、5つのファンクションそれぞれのファンクション情報55a~55fが含まれる。ファンクション情報55aはファンクション「m1」を示す。ファンクション情報55bはファンクション「m10」を示す。ファンクション情報55cはファンクション「m11」を示す。ファンクション情報55dはファンクション「m2」を示す。ファンクション情報55eはファンクション「m3」を示す。ファンクション情報55fはファンクション「m4」を示す。
【0136】
DF定義情報55によれば、ファンクション「m1」は、ファンクション「m10」とファンクション「m11」とにデータを送信する。ファンクション「m1」とファンクション「m10」との間の通信経路の要求性能は、遅延時間が「200μs」未満であること、および帯域幅が「10GB/s」より広いことである。ファンクション「m1」とファンクション「m11」との間の通信経路の要求性能は、遅延時間が「300μs」未満であること、および帯域幅が「10GB/s」より広いことである。
【0137】
ファンクション「m10」とファンクション「m11」とは、ともにファンクション「m2」にデータを送信する。ファンクション「m10」とファンクション「m2」との間の通信経路の要求性能は、遅延時間が「100μs」未満であること、および帯域幅が「10GB/s」より広いことである。ファンクション「m11」とファンクション「m2」との間の通信経路の要求性能は、遅延時間が「150μs」未満であること、および帯域幅が「10GB/s」より広いことである。
【0138】
ファンクション「m2」は、ファンクション「m3」にデータを送信する。ファンクション「m2」とファンクション「m3」との間の通信経路の要求性能は、遅延時間が「500μs」未満であること、および帯域幅が「10GB/s」より広いことである。ファンクション「m3」は、ファンクション「m4」にデータを送信する。ファンクション「m3」とファンクション「m4」との間の通信経路の要求性能は、遅延時間が「400μs」未満であること、および帯域幅が「10GB/s」より広いことである。
【0139】
このようなDF定義情報55が入力されたとき、デバイス選択部113は、まず要求性能における遅延時間が最小のファンクション間通信の両端のファンクションに対して割り当てるデバイスを選択する。DF定義情報55の例では、ファンクション「m10」とファンクション「m2」との間の遅延時間が最小である。そのためファンクション「m10」とファンクション「m2」が選択順「1」となり、これらのファンクションに割り当てるデバイスが最初に選択される。
【0140】
次にデバイス選択部113は、割り当てるデバイスを最初に選択したファンクションに対して隣接するファンクションに割り当てるデバイスを選択する。隣接するファンクションが複数存在する場合、デバイス選択部113は、要求性能における遅延時間が短いファンクション間通信によって通信を行うファンクションから順番に割り当てるデバイスを選択する。DF定義情報55では、ファンクション「m10」またはファンクション「m2」に隣接するファンクションは、ファンクション「m1」、ファンクション「m11」、ファンクション「m3」の3つである。これらのファンクションを遅延時間の短い順に並べると、ファンクション「m11」、ファンクション「m1」、ファンクション「m3」の順となる。デバイス選択部113は、この順番で各ファンクションに対して割り当てるデバイスを選択する。
【0141】
デバイス選択部113は、以後、割り当てるデバイスが選択されたファンクションに隣接するファンクションに対し、要求性能の遅延時間が短いものから順に、割り当てるデバイスを選択する。この処理が、割り当てるデバイスが未選択のファンクションがなくなるまで繰り返される。これによりファンクション「m4」へ割り当てるデバイスの選択が行われる。
【0142】
このようにしてDF定義情報55の例であれば、割り当てるデバイスを選択するファンクションの順番は、1番目「m10,m2」、2番目「m11」、3番目「m1」、4番目「m3」、5番目「m4」となる。
【0143】
ファンクションに割り当てるデバイス選択の基準は以下の通りである。
[第1段階]デバイス選択部113は、1つのPCIeBOXの中から、すべてのファンクションそれぞれに割り当てるデバイスを選択する。デバイス選択部113は、すべてのファンクションについてデバイスを選択できた場合は処理を完了する。もし割当て可能なPCIeBOXが複数見つかった場合は、デバイス選択部113は、PCIeBOX内のPCIeスイッチの使用帯域が最小のPCIeBOX内のデバイスを選択する。
【0144】
[第2段階]デバイス選択部113は、PCIeスイッチでつながっているPCIeBOXの中からデバイスを選択する。デバイス選択部113は、すべてのファンクションそれぞれに割り当てるデバイスを選択できた場合は処理を完了する。例えばデバイス選択部113は、空きデバイス数が最大のPCIeBOXを起点として、起点のPCIeBOXからの距離(経由PCIeスイッチ数)が少ないPCIeBOX内の順番で、各PCIeBOX内のデバイスを選択する。
【0145】
[第3段階]デバイス選択部113は、イーサネットスイッチでのみ繋がっているPCIeBOXの中からデバイスを選択する。デバイス選択部113は、すべてのファンクションそれぞれに割り当てるデバイスを選択できた場合は処理を完了する。
【0146】
[第4段階]デバイス選択部113は、選択できるデバイスがないため、選択不可能として処理を終了する。
図25は、第1段階で完了するデバイス選択の一例を示す図である。例えばDF定義情報56がリソース配備スケジューラ110に入力されたものとする。DF定義情報56には、4つのファンクションそれぞれのファンクション情報56a~56dが含まれる。ファンクション情報56aはファンクション「n1」を示す。ファンクション情報56bはファンクション「n2」を示す。ファンクション情報56cはファンクション「n3」を示す。ファンクション情報56dはファンクション「n4」を示す。ファンクション「n1」、「n2」、「n4」に割り当てるデバイス(FPGA)の数は「1」である。ファンクション「n3」に割り当てるデバイス(FPGA)の数は「2」である。
【0147】
DF定義情報56によれば、ファンクション「n1」は、ファンクション「n2」にデータを送信する。ファンクション「n1」とファンクション「n2」との間の通信経路の要求性能は、遅延時間が「100μs」未満であること、および帯域幅が「25Mbps」より広いことである。ファンクション「n2」は、ファンクション「n3」にデータを送信する。ファンクション「n2」とファンクション「n3」との間の通信経路の要求性能は、遅延時間が「300μs」未満であること、および帯域幅が「25Mbps」より広いことである。ファンクション「n3」は、ファンクション「n4」にデータを送信する。ファンクション「n3」とファンクション「n4」との間の通信経路の要求性能は、遅延時間が「500μs」未満であること、および帯域幅が「25Mbps」より広いことである。
【0148】
DF定義情報56に示されるファンクションについて、割り当てるデバイスの選択を行う順番は、1番目がファンクション「n1」とファンクション「n2」、2番目がファンクション「n3」、3番目がファンクション「n4」である。
【0149】
インフラシステム200には、互いに接続されていない2つのPCIeスイッチ220,260が含まれている。
PCIeスイッチ220にはコンピュートユニット211,212とPCIeBOX230,240とが接続されている。コンピュートユニット211は、CPU211a,211bとメモリ211c,211dとを有する。コンピュートユニット212は、CPU212a,212bとメモリ212c,212dとを有する。PCIeBOX230は、PCIeスイッチ231とFPGA232~236とを有する。PCIeBOX240は、PCIeスイッチ241とFPGA242~246とを有する。PCIeBOX230,240それぞれのFPGA232~236,242~246は、イーサネットスイッチ250に接続されている。
【0150】
PCIeスイッチ260にはコンピュートユニット213とPCIeBOX270とが接続されている。コンピュートユニット213は、CPU213a,213bとメモリ213c,213dとを有する。PCIeBOX270は、PCIeスイッチ271とFPGA272~276とを有する。PCIeBOX270のFPGA272~276は、イーサネットスイッチ250に接続されている。
【0151】
図25において、既存のLSNに含まれているデバイスは網掛けで示されている(図26図27についても同様)。PCIeBOX230は、すべてのFPGA232~236が空きの状態である。PCIeBOX240は、2つのFPGA243,244が空きの状態である。PCIeBOX270は、FPGA272のみが空きの状態である。
【0152】
図25の例では、DF内のすべてのファンクションに割り当てるデバイスの総数は「5」である。PCIeBOX230には、5個のFPGA232~236に空きがある。そのため、すべてのファンクションに割り当てるデバイスとしてPCIeBOX230内のデバイスから選択することができる。例えばFPGA232がファンクション「n1」に割り当てられ、FPGA233がファンクション「n2」に割り当てられ、FPGA234,235がファンクション「n3」に割り当てられ、FPGA236がファンクション「n4」に割り当てられる。このようにして、第1段階でデバイス選択が完了する。
【0153】
図26は、第2段階で完了するデバイス選択の一例を示す図である。図26の例では、PCIeBOX230は、4つのFPGA232~235が空きの状態である。PCIeBOX240は、2つのFPGA242,243が空きの状態である。PCIeBOX270は、FPGA272のみが空きの状態である。
【0154】
図26の例では、5個以上の空きのFPGAを有するPCIeBOXはない。そのため第1段階のデバイス選択は適用できない。そこで第2段階のデバイス選択が行われる。第2段階のデバイス選択では、空きデバイス数が最大のPCIeBOX230が起点(最初のデバイス選択元)となる。そしてPCIeBOX230内の空きのFPGA232~235が、ファンクションに割り当てられる。次にPCIeBOX230からのPCIeスイッチ経由での距離が近いPCIeBOX240から割り当てるデバイスが選択される。例えばFPGA232がファンクション「n1」に割り当てられ、FPGA233がファンクション「n2」に割り当てられ、FPGA234,235がファンクション「n3」に割り当てられ、FPGA242がファンクション「n4」に割り当てられる。このようにして、第2段階でデバイス選択が完了する。
【0155】
図27は、第3段階で完了するデバイス選択の一例を示す図である。図27の例では、PCIeBOX230は、2つのFPGA235,236が空きの状態である。PCIeBOX240は、2つのFPGA243,244が空きの状態である。PCIeBOX270は、FPGA272のみが空きの状態である。
【0156】
図27の例では、5個以上の空きのFPGAを有するPCIeBOXはない。そのため第1段階のデバイス選択は適用できない。そこでまず第2段階のデバイス選択が行われる。第2段階のデバイス選択では、空きデバイス数が最大のPCIeBOX230,240のいずれかが起点となる。図27の例ではPCIeBOX230が起点となっている。そしてPCIeBOX230内の空きのFPGA235,236が、ファンクションに割り当てられる。次にPCIeBOX230からのPCIeスイッチ経由での距離が近いPCIeBOX240から割り当てるデバイスが選択される。
【0157】
図27の例では、PCIeBOX230とPCIeBOX240だけでは、空きのFPGAが不足する。そこで第3段階のデバイス選択が行われる。第3段階のデバイス選択では、イーサネットスイッチ250経由で接続されているPCIeBOX270からもデバイス選択が行われる。その結果、4つのファンクションに割り当てる5つのデバイス選択が完了する。例えばFPGA235がファンクション「n1」に割り当てられ、FPGA236がファンクション「n2」に割り当てられ、FPGA243,244がファンクション「n3」に割り当てられ、FPGA272がファンクション「n4」に割り当てられる。このようにして、第3段階でデバイス選択が完了する。第3段階でのデバイス選択でも割当て可能なデバイスが見つからない場合には、選択不可能と判定され、処理が終了する(第4段階)。
【0158】
以下、デバイス選択処理の手順について、図28図31を参照して詳細に説明する。
図28は、デバイス選択処理の手順の一例を示す図(1/4)である。以下、図28に示す処理をステップ番号に沿って説明する。
【0159】
[ステップS201]デバイス選択部113は、デバイス情報121bを参照し、DF定義情報に示される全てのファンクションにデバイス割当てが可能なPCIeBOXを検索する。全てのファンクションにデバイス割当てが可能なPCIeBOXとは、DFの全てのファンクションに割り当てるデバイスの合計以上の空きデバイスを有するPCIeBOXである。
【0160】
[ステップS202]デバイス選択部113は、全てのファンクションにデバイス割当てが可能なPCIeBOXを検出できたか否かを判断する。デバイス選択部113は、該当するPCIeBOXがあれば処理をステップS203に進める。またデバイス選択部113は、該当するPCIeBOXがなければ処理をステップS211(図29参照)に進める。
【0161】
[ステップS203]デバイス選択部113は、ネットワーク状態情報121cを参照し、検出されたPCIeBOXのうち空き帯域が最大のPCIeBOXを選択する。なおデバイス選択部113は、使用帯域が最小のPCIeBOXを選択するようにしてもよい。
【0162】
[ステップS204]デバイス選択部113は、DF内のすべてのファンクションに、選択したPCIeBOX内のデバイスを割り当てる。その後、デバイス選択部113は、デバイス選択処理を終了する(図31参照)。
【0163】
図29は、デバイス選択処理の手順の一例を示す図(2/4)である。以下、図29に示す処理をステップ番号に沿って説明する。
[ステップS211]デバイス選択部113は、すべてのファンクション間通信を着目通信に設定する。
【0164】
[ステップS212]デバイス選択部113は、着目通信の中から、要求性能に示される遅延時間が最小のファンクション間通信を選択する。要求される遅延時間が最小のファンクション間通信が複数ある場合、デバイス選択部113は、そのうちの1つを選択する。
【0165】
[ステップS213]デバイス選択部113は、選択したファンクション間通信の両端のファンクションについて、共にデバイスが割り当てられていないか否かを判断する。デバイス選択部113は、共にデバイスが割り当てられていない場合、処理をステップS216に進める。またデバイス選択部113は、少なくとも一端のファンクションについてデバイスが割り当てられている場合、処理をステップS214に進める。
【0166】
[ステップS214]デバイス選択部113は、選択したファンクション間通信の一端のファンクションについてデバイスが割り当てられていないか否かを判断する。デバイス選択部113は、一端のファンクションについてデバイスが割り当てられていない場合、処理をステップS231に進める(図30参照)。またデバイス選択部113は、両端のファンクションについてデバイスが割当て済みの場合、処理をステップS215に進める。
【0167】
[ステップS215]デバイス選択部113は、選択したファンクション間通信を着目通信から除外して、処理をステップS212に進める。
[ステップS216]デバイス選択部113は、デバイス情報121bを参照し、選択したファンクション間通信の両端のファンクションにデバイスを割当て可能なPCIeBOXを検索する。両端のファンクションにデバイスを割当て可能なPCIeBOXとは、空きのデバイスが2つ以上あるPCIeBOXである。
【0168】
[ステップS217]デバイス選択部113は、選択したファンクション間通信の両端のファンクションにデバイスを割当て可能なPCIeBOXが検出できたか否かを判断する。デバイス選択部113は、該当のPCIeBOXがある場合、処理をステップS218に進める。またデバイス選択部113は、該当のPCIeBOXがない場合、処理をステップS219に進める。
【0169】
[ステップS218]デバイス選択部113は、選択したファンクション間通信の両端のファンクションにデバイスを割当て可能なPCIeBOXのうち、空きデバイス数が最大のPCIeBOXのデバイスを、選択したファンクション間通信の両端のファンクションに割り当てる。デバイス選択部113は、その後、処理をステップS251(図31参照)に進める。
【0170】
[ステップS219]デバイス選択部113は、デバイス情報121bを参照し、選択したファンクション間通信の両端のファンクションにデバイスを割当て可能なPCIeBOXの組み合わせを検索する。両端のファンクションにデバイスを割り当て可能なPCIeBOXの組み合わせとは、少なくとも1つの空きデバイスを有する2つのPCIeBOXの組み合わせである。
【0171】
[ステップS220]デバイス選択部113は、両端のファンクションにデバイスを割り当て可能なPCIeBOXの組み合わせが見つかったか否かを判断する。デバイス選択部113は、該当するPCIeBOXの組み合わせが少なくとも1つある場合、処理をステップS220に進める。またデバイス選択部113は、該当するPCIeBOXの組み合わせが見つからない場合、処理をステップS237(図30参照)に進める。
【0172】
[ステップS221]デバイス選択部113は、選択したファンクション間通信の両端のファンクションにデバイスを割当て可能なPCIeBOXの組み合わせのうち、距離が最小のPCIeBOXの組み合わせを特定する。そしてデバイス選択部113は、特定したPCIeBOXの組み合わせそれぞれのデバイスを、選択したファンクション間通信の両端のファンクションに割り当てる。
【0173】
デバイス選択部113は、経由するPCIeスイッチの数を、PCIeスイッチ経由の通信についてのPCIeBOXの組み合わせの距離とする。またデバイス選択部113は、PCIeスイッチ経由の通信とイーサネット経由の通信とでは、PCIeスイッチ経由の通信の方が距離は短いと判断する。
【0174】
デバイス選択部113は、その後、処理をステップS251(図31参照)に進める。
図30は、デバイス選択処理の手順の一例を示す図(3/4)である。以下、図30に示す処理をステップ番号に沿って説明する。
【0175】
[ステップS231]デバイス選択部113は、選択したファンクション間通信の一端のファンクションにデバイスを割当て済みのPCIeBOXを選択する。
[ステップS232]デバイス選択部113は、選択したPCIeBOXのデバイスを、選択したファンクション間通信の他方の端点のファンクションに割当て可能か否かを判断する。デバイス選択部113は、割当て可能であれば処理をステップS233に進める。またデバイス選択部113は、割当てが不可能であれば処理をステップS234に進める。
【0176】
[ステップS233]デバイス選択部113は、選択したPCIeBOXのデバイスを、選択したファンクション間通信におけるデバイス未割当てのファンクションに割り当てる。デバイス選択部113は、その後、処理をステップS251(図31参照)に進める。
【0177】
[ステップS234]デバイス選択部113は、選択したファンクション間通信におけるデバイス未割当てのファンクションにデバイスを割当て可能なPCIeBOXを検索する。
【0178】
[ステップS235]デバイス選択部113は、デバイスを割当て可能なPCIeBOXが見つかったか否かを判断する。デバイス選択部113は、該当するPCIeBOXがある場合、処理をステップS236に進める。またデバイス選択部113は、該当するPCIeBOXがない場合、処理をステップS237に進める。
【0179】
[ステップS236]デバイス選択部113は、選択したファンクション間通信における通信相手との距離が最小のPCIeBOXのデバイスを、選択したファンクション間通信におけるデバイス未割当てのファンクションに割り当てる。デバイス選択部113は、その後、処理をステップS251(図31参照)に進める。
【0180】
[ステップS237]デバイス選択部113は、ファンクションに割り当てるデバイスの選択が不可能であると判定し、デバイス選択処理をエラー終了する(図31参照)。
図31は、デバイス選択処理の手順の一例を示す図(4/4)である。以下、図31に示す処理をステップ番号に沿って説明する。
【0181】
[ステップS251]デバイス選択部113は、一端のファンクションに対してのみデバイス割当て済みのファンクション間通信があるか否かを判断する。デバイス選択部113は、該当するファンクション間通信がある場合、処理をステップS252に進める。またデバイス選択部113は、該当するファンクション間通信がなければ、処理をステップS253に進める。
【0182】
[ステップS252]デバイス選択部113は、一端のファンクションに対してのみデバイス割当て済みのファンクション間通信を着目通信に設定する。例えばデバイス選択部113は、前回のステップS252の処理で着目通信に設定したファンクション間通信が残っている場合、そのファンクション間通信の後に、新たに着目通信とするファンクション間通信を追加する。デバイス選択部113は、その後、処理をステップS212(図29参照)に進める。
【0183】
[ステップS253]デバイス選択部113は、DF定義情報に示されるすべてのファンクション間通信について処理済みとなっているか否かを判断する。処理済みのファンクション間通信とは、両端のファンクションについてのデバイスの割当てが完了しているファンクション間通信である。デバイス選択部113は、すべてのファンクション間通信が処理済みであれば、デバイス選択処理を終了する。またデバイス選択部113は、未処理のファンクション間通信があれば、処理をステップS254に進める。
【0184】
[ステップS254]デバイス選択部113は、未処理のファンクション間通信を着目通信に設定する。デバイス選択部113は、その後、処理をステップS212(図29参照)に進める。
【0185】
以上のようにして、DF内のファンクションそれぞれに対するデバイス割当てが行われる。デバイスの割当て結果は、デバイス割当て情報111aに設定される。デバイス選択処理が完了すると、次に経路選択部114により経路選択処理が実行される。
【0186】
図32は、経路選択の一例を示す図である。経路選択部114は、要求性能の遅延時間が短いファンクション間通信から順番に、通信経路を以下の基準で選択する。
[経路選択基準1]経路選択部114は、PCIe通信が不可能な場合には、イーサネットスイッチ経由の通信経路を選択する。
【0187】
[経路選択基準2]経路選択部114は、PCIe通信が可能で経路が単一のPCIeBOX内の場合、PCIeスイッチ経由の通信経路を選択する。
[経路選択基準3]経路選択部114は、PCIe通信が可能であり、経路が複数PCIeBOXにまたがる通信の場合、以下の基準により経路を選択する。
【0188】
経路選択部114は、イーサネット経由でも遅延時間と帯域とのいずれの要求性能も満たす場合、イーサネットスイッチ経由の通信経路を選択する。また経路選択部114は、PCIe通信でも、遅延時間もしくは帯域のどちらかの要求性能を満たせない場合にもイーサネットスイッチ経由の通信経路を選択する。経路選択部114は、イーサネット通信では要求性能を満たせないが、PCIe通信であれば要求性能を満たせる場合、PCIeスイッチ経由の通信を選択する。
【0189】
なお、複数のPCIeスイッチを経由する通信経路の遅延時間は、経由するPCIeスイッチそれぞれの遅延時間の総和である。複数のPCIeスイッチを経由する通信経路の帯域幅は、通信経路上のPCIeスイッチ間のパスごとの空き帯域の最小値である。
【0190】
図32には、DF定義情報57に示されるDFを配備する際のファンクション間の通信経路の選択例が示されている。DF定義情報57には、5つのファンクションそれぞれのファンクション情報57a~57eが含まれる。ファンクション情報57aはファンクション「m1」を示す。ファンクション情報57bはファンクション「m2」を示す。ファンクション情報57cはファンクション「m3」を示す。ファンクション情報57dはファンクション「m4」を示す。ファンクション情報57eはファンクション「m5」を示す。ファンクション「m1」、「m2」、「m3」、「m4」、「m5」それぞれに割り当てるデバイス(FPGA)の数は「1」ずつである。
【0191】
DF定義情報57によれば、ファンクション「m1」は、ファンクション「m2」にデータを送信する。ファンクション「m1」とファンクション「m2」との間のファンクション間通信「c01」の要求性能は、遅延時間が「100μs」未満であること、および帯域幅が「25Gbps」より広いことである。ファンクション「m2」は、ファンクション「m3」にデータを送信する。ファンクション「m2」とファンクション「m3」との間のファンクション間通信「c02」の要求性能は、遅延時間が「1μs」未満であること、および帯域幅が「50Gbps」より広いことである。ファンクション「m3」は、ファンクション「m4」にデータを送信する。ファンクション「m3」とファンクション「m4」との間のファンクション間通信「c03」の要求性能は、遅延時間が「1μs」未満であること、および帯域幅が「25Gbps」より広いことである。ファンクション「m4」は、ファンクション「m5」にデータを送信する。ファンクション「m4」とファンクション「m5」との間のファンクション間通信「c04」の要求性能は、遅延時間が「1.5μs」未満であること、および帯域幅が「25Gbps」より広いことである。
【0192】
図32に示すインフラシステム200には、図25に示された構成に加えてコンピュートユニット214とPCIeBOX280とが含まれている。コンピュートユニット214は、CPU214a,214bとメモリ214c,214dを有する。PCIeBOX280は、PCIeスイッチ281と複数のFPGA282,・・・を有する。
【0193】
DF定義情報57に示される各ファンクションには、既にデバイスの割当てが完了している。ファンクション「m1」には、PCIeBOX230内のFPGA233が割り当てられている。ファンクション「m2」には、PCIeBOX230内のFPGA234が割り当てられている。ファンクション「m3」には、PCIeBOX240内のFPGA243が割り当てられている。ファンクション「m4」には、PCIeBOX270内のFPGA272が割り当てられている。ファンクション「m5」には、PCIeBOX280内のFPGA282が割り当てられている。
【0194】
PCIeスイッチ220の遅延時間は「50ns」である。PCIeスイッチ231の遅延時間は「50ns」である。PCIeスイッチ241の遅延時間は「50ns」である。PCIeスイッチ271の遅延時間は「50ns」である。PCIeスイッチ281の遅延時間は「50ns」である。PCIeスイッチ220とPCIeスイッチ231との間の空き帯域は「64Gbps」である。PCIeスイッチ220とPCIeスイッチ241との間の空き帯域は「32Gbps」である。PCIeスイッチ260とPCIeスイッチ271との間の空き帯域は「48Gbps」である。PCIeスイッチ260とPCIeスイッチ281との間の空き帯域は「110Gbps」である。イーサネットスイッチ250の遅延時間は「2μs」である。イーサネットスイッチ250の空き帯域は96Gbpsである。
【0195】
このような状態のインフラシステム200における経路選択は以下の通りとなる。
ファンクション「m1」とファンクション「m2」とには、同じPCIeBOX230のデバイスが割り当てられている。そのため、ファンクション「m1」とファンクション「m2」の間のファンクション間通信「c01」の通信経路は、PCIeスイッチ231を経由する経路に決定される。
【0196】
ファンクション「m2」とファンクション「m3」とには、それぞれ異なるPCIeBOX230,240のデバイスが割り当てられている。これらのPCIeBOX230,240間のPCIe通信において空き帯域が最も少ないのはPCIeスイッチ220とPCIeスイッチ241との間であり、その空き帯域は「32Gbps」である。するとファンクション「m2」とファンクション「m3」とのファンクション間通信「c02」の要求性能に示される最低限の帯域幅「50Gbps」よりも空き帯域が少ない。そのため、ファンクション「m2」とファンクション「m3」の間のファンクション間通信「c02」の通信経路は、イーサネットスイッチ250を経由する経路に決定される。
【0197】
ファンクション「m3」とファンクション「m4」とには、それぞれ異なるPCIeBOX240,270のデバイスが割り当てられている。これらのPCIeBOX240,270間にはPCIeスイッチ経由の通信経路は存在しない。そのため、ファンクション「m3」とファンクション「m4」の間のファンクション間通信「c03」の通信経路は、イーサネットスイッチ250を経由する経路に決定される。
【0198】
ファンクション「m4」とファンクション「m5」とには、それぞれ異なるPCIeBOX270,280のデバイスが割り当てられている。これらのPCIeBOX270,280間のPCIe通信において空き帯域が最も少ないのはPCIeスイッチ260とPCIeスイッチ271との間であり、その空き帯域は「48Gbps」である。するとファンクション「m4」とファンクション「m5」とのファンクション間通信「c04」の要求性能に示される最低限の帯域幅「25Gbps」よりも空き帯域が多い。そのため、ファンクション「m4」とファンクション「m5」の間のファンクション間通信「c04」の通信経路は、PCIeスイッチ260,271,281を経由する経路に決定される。
【0199】
次に、経路選択処理の手順について詳細に説明する。
図33は、経路選択処理の手順の一例を示すフローチャートである。以下、図33に示す処理をステップ番号に沿って説明する。
【0200】
[ステップS301]経路選択部114は、未処理のファンクション間通信のうちから、要求性能に示される遅延時間が小さい順に未処理のファンクション間通信を1つずつ選択する。
【0201】
[ステップS302]経路選択部114は、選択したファンクション間通信の通信可能な通信経路を特定する。
[ステップS303]経路選択部114は、特定した通信経路の遅延時間と帯域幅を算出する。
【0202】
[ステップS304]経路選択部114は、特定した通信経路にPCIe通信の通信経路があるか否かを判断する。経路選択部114は、PCIe通信の通信経路がある場合、処理をステップS305に進める。また経路選択部114は、PCIe通信の通信経路がない場合、処理をステップS309に進める。
【0203】
[ステップS305]経路選択部114は、PCIe経由の通信経路が、同一のPCIeBOX内の通信経路か否かを判断する。経路選択部114は、PCIeBOX内の通信経路であれば、処理をステップS308に進める。また経路選択部114は、PCIeBOX内の通信経路でなければ、処理をステップS306に進める。
【0204】
[ステップS306]経路選択部114は、選択したファンクション間通信の要求性能がイーサネット通信の通信経路で満足するか否かを判断する。経路選択部114は、要求性能が満足する場合、処理をステップS309に進める。また経路選択部114は、要求性能が満足しない場合、処理をステップS307に進める。
【0205】
[ステップS307]経路選択部114は、選択したファンクション間通信の要求性能がPCIe通信で満足するか否かを判断する。経路選択部114は、PCIe通信で要求性能が満足する場合、処理をステップS308に進める。また経路選択部114は、PCIe通信で要求性能が満足しない場合、処理をステップS309に進める。
【0206】
[ステップS308]経路選択部114は、PCIeスイッチ経由の通信経路(PCIe通信)を、選択したファンクション間通信の通信経路として選択する。経路選択部114は、その後、処理をステップS310に進める。
【0207】
[ステップS309]経路選択部114は、イーサネットスイッチ経由の通信経路(イーサネット通信)を、選択したファンクション間通信の通信経路として選択する。
[ステップS310]経路選択部114は、選択した通信経路における帯域幅を更新する。例えば経路選択部114は、選択した通信経路の空き帯域から、通信経路の選択が行われたファンクション間通信の要求性能における帯域幅を減算する。
【0208】
[ステップS311]経路選択部114は、通信経路の選択処理が未処理のファンクション間通信があるか否かを判断する。経路選択部114は、未処理のファンクション間通信があれば、処理をステップS301に進める。また経路選択部114は、すべてのファンクション間通信について通信経路が選択されている場合、経路選択処理を終了する。
【0209】
以上のようにしてファンクション間通信それぞれの通信経路が選択される。通信経路の選択が完了すると、サーバ構成決定部115によりサーバ構成決定処理が行われる。
図34は、サーバ構成選択の一例を示す図である。サーバ構成決定部115は、以下の基準に基づいてサーバの構成を選択する。
【0210】
[サーバ構成決定基準1]サーバ構成決定部115は、PCIeスイッチ経由で接続可能なファンクションは1つのサーバに構成する。
[サーバ構成決定基準2]サーバ構成決定部115は、PCIeスイッチで接続不可能(イーサネットスイッチ経由でのみ接続可能)なファンクション同士はサーバを分ける。
【0211】
[サーバ構成決定基準3]サーバ構成決定部115は、各サーバに対して、管理用のCPUとメモリを搭載する。CPUとメモリとの搭載数量は、例えば事前にサーバ構成決定部115に与えられる。図34の例では、サーバ1台につき、CPUを1つ、メモリを16GB搭載することが事前に設定されているものとする。
【0212】
例えばDFのファンクションに対して、PCIeBOX230内の2つのFPGA233,234、PCIeBOX240内の2つのFPGA243,244、PCIeBOX270内のFPGA272が割り当てられているものとする。このとき、PCIeBOX230とPCIeBOX240とは、PCIeスイッチ220経由で接続されている。そのため、これらのPCIeBOX230,240内のFPGA233,234,243,244が割り当てられたファンクションは、1つのサーバ71内に構成される。PCIeBOX270は、ファンクション間通信の相手となるPCIeBOX240との間でPCIeスイッチ経由での通信経路を有していない。そのためPCIeBOX270内のFPGA272を割り当てたファンクションは別のサーバ72内に構成される。
【0213】
サーバ71には、CPU211bとメモリ211dとが含められている。またサーバ72には、CPU213bとメモリ213dとが含められている。
サーバ構成決定部115は、サーバ構成を選択すると、サーバごとのサーバ構成情報を生成する。図34の例では2つのサーバ71,72それぞれのサーバ構成情報58,59が生成されている。
【0214】
図35は、サーバ構成決定処理の手順の一例を示すフローチャートである。以下、図35に示す処理をステップ番号に沿って説明する。
[ステップS401]サーバ構成決定部115は、割り当てられたデバイスを含むサーバを示すサーバ構成情報が未作成のファンクションの1つを選択する。
【0215】
[ステップS402]サーバ構成決定部115は、選択したファンクションに割り当てるデバイスと、そのデバイスを搭載するPCIeBOXを特定する。
[ステップS403]サーバ構成決定部115は、特定したPCIeBOXとPCIe通信で接続可能な他のPCIeBOXのリストを取得する。
【0216】
[ステップS404]サーバ構成決定部115は、取得したリストに示される他のPCIeBOX内のデバイスのうち、選択したファンクションと同一DFのファンクションに割り当てられたデバイスを特定する。
【0217】
[ステップS405]サーバ構成決定部115は、ステップS401とステップS405とのそれぞれで特定したデバイス、所定の数のCPU、および所定の容量のメモリを含むサーバのサーバ構成情報を作成する。
【0218】
[ステップS406]サーバ構成決定部115は、割り当てられたデバイスを含むサーバを示すサーバ構成情報が未作成のファンクションがあるか否かを判断する。サーバ構成決定部115は、該当するファンクションがある場合、処理をステップS401に進める。またサーバ構成決定部115は、すべてのファンクションについて、割り当てられたデバイスを含むサーバのサーバ構成情報が作成済みの場合、サーバ構成決定処理を終了する。
【0219】
このようにしてサーバ構成が決定される。そして、決定されたサーバ構成を示すサーバ構成情報にもとづいて、インフラシステムにLSNが構築され、そのLSNにサーバが実装される。さらに実装されたサーバに含まれるデバイスにより、そのデバイスを割り当てたファンクションが実現される。
【0220】
以下、図36図46を参照し、リソース配備の具体例について説明する。
図36は、リソース配備の第1の例を示す図(1/4)である。図36の例では、DF定義情報61に基づいてリソース配備処理が行われる。DF定義情報61には、4つのファンクションそれぞれのファンクション情報61a~61dが含まれる。ファンクション情報61aはファンクション「n1」を示す。ファンクション情報61bはファンクション「n2」を示す。ファンクション情報61cはファンクション「n3」を示す。ファンクション情報61dはファンクション「n4」を示す。ファンクション「n1」、「n2」、「n3」、「n4」それぞれに割り当てるデバイス(FPGA)の数は「1」ずつである。
【0221】
DF定義情報61によれば、ファンクション「n1」は、ファンクション「n2」にデータを送信する。ファンクション「n1」とファンクション「n2」との間のファンクション間通信「c01」の要求性能は、遅延時間が「300μs」未満であること、および帯域幅が「10Gbps」より広いことである。ファンクション「n2」は、ファンクション「n3」にデータを送信する。ファンクション「n2」とファンクション「n3」との間のファンクション間通信「c02」の要求性能は、遅延時間が「400μs」未満であること、および帯域幅が「10Gbps」より広いことである。ファンクション「n3」は、ファンクション「n4」にデータを送信する。ファンクション「n3」とファンクション「n4」との間のファンクション間通信「c03」の要求性能は、遅延時間が「500μs」未満であること、および帯域幅が「5Gbps」より広いことである。
【0222】
PCIeスイッチ220の遅延時間は「50ns」である。PCIeスイッチ231の遅延時間は「50ns」である。PCIeスイッチ241の遅延時間は「50ns」である。PCIeスイッチ271の遅延時間は「50ns」である。PCIeスイッチ281の遅延時間は「50ns」である。PCIeスイッチ220とPCIeスイッチ231との間の空き帯域は「64Gbps」である。PCIeスイッチ220とPCIeスイッチ241との間の空き帯域は「72Gbps」である。PCIeスイッチ260とPCIeスイッチ271との間の空き帯域は「48Gbps」である。PCIeスイッチ260とPCIeスイッチ281との間の空き帯域は「110Gbps」である。イーサネットスイッチ250の遅延時間は「2μs」である。イーサネットスイッチ250の空き帯域は「96Gbps」である。
【0223】
PCIeBOX230は、3個の空きデバイスを有している。PCIeBOX240は、5個の空きデバイスを有している。PCIeBOX270は、2個の空きデバイスを有している。PCIeBOX280は、7個の空きデバイスを有している。
【0224】
このようなインフラシステム200においてDF定義情報61に基づくリソース配備を行う場合、まずデバイス選択部113は、DF定義情報61に基づいて、DFの配備に要求される要求デバイス数(FPGA×4)を認識する。次にデバイス選択部113は、要求デバイス数と各PCIeBOXの空きデバイス数を比較し、要求デバイス数以上の空きデバイスを持つPCIeBOXを特定する。図36の例では、PCIeBOX240とPCIeBOX280とが、要求デバイス数以上の空きデバイスを有している。
【0225】
デバイス選択部113は、抽出したPCIeBOXが複数あるため、PCIeBOX240とPCIeBOX280それぞれについて、内部のPCIeスイッチ241,281と上位のPCIeスイッチとの空き帯域を比較する。図36の例では、PCIeBOX280の方が空き帯域が大きい。そこでデバイス選択部113は、空き帯域が最大のPCIeBOX280をファンクションの配備先(割り当てるデバイスの選択元)とする。そしてデバイス選択部113は、各ファンクションに割り当てるデバイスを、PCIeBOX280内の4つの空きデバイスから選択する。
【0226】
図37は、リソース配備の第1の例を示す図(2/4)である。図37には、割り当てるデバイスを選択した後の状況を示している。図37において、PCIeBOX280内のファンクションに割り当てられたデバイス283~286には、割り当て先のファンクションの識別子(n1~n4)が示されている。
【0227】
デバイス選択が完了すると、経路選択部114が経路選択処理を開始する。
図38は、リソース配備の第1の例を示す図(3/4)である。図38には、ファンクション間通信ごとに選択された通信経路を、デバイス間を接続する太線の矢印で示している。
【0228】
まず経路選択部114は、要求性能における遅延時間が最小のファンクション間通信「c01」を選択する。次に経路選択部114は、選択したファンクション間通信「c01」の通信経路を特定する。ファンクション間通信「c01」の両端のファンクション「n1」、「n2」には、共にPCIeBOX280内のデバイス283,284が割り当てられている。そのためファンクション間通信「c01」として選択可能な通信経路としては、PCIeスイッチ281経由のPCIe通信とイーサネットスイッチ250経由のイーサネット通信とがある。PCIe通信はPCIeBOX280内のPCIeスイッチ281のみを経由する通信である。そのため、経路選択部114は、ファンクション間通信「c01」の通信経路としてPCIe通信を選択する。
【0229】
次に経路選択部114は、要求性能における遅延時間が次に短いファンクション間通信「c02」を選択する。ファンクション間通信「c02」の両端のファンクションには、共にPCIeBOX280内のデバイス284,285が割り当てられている。従って経路選択部114は、ファンクション間通信「c02」の通信経路としてPCIe通信を選択する。経路選択部114は、ファンクション間通信「c03」についても同様に、通信経路としてPCIe通信を選択する。
【0230】
図38の例では、選択された通信経路は、すべて1つのPCIeBOX内のPCIe通信である。この場合、複数のPCIeスイッチを跨がった通信は発生しない。そのため、経路選択処理に伴う空き帯域の更新は行われない。
【0231】
経路選択処理が完了すると、サーバ構成決定部115によりサーバ構成が決定される。
図39は、リソース配備の第1の例を示す図(4/4)である。図39は、構成が決定されたサーバ73に含まれるデバイスを示している。
【0232】
サーバ構成決定部115は、例えばファンクション「n1」を選択し、割り当てるデバイス283と、デバイス283を搭載するPCIeBOX280を特定する。次にサーバ構成決定部115は、当該のPCIeBOX280とPCIeスイッチ経由で接続可能なPCIeBOXのリストを取得する。該当のリストには、PCIeBOX270が含まれる。
【0233】
サーバ構成決定部115は、PCIeBOX270とPCIeBOX280のデバイスのうちのファンクションに割り当てるデバイス283~286と、指定された数のCPUと、指定された容量のメモリとを、サーバ73の構成要素とする。図39の例では、CPU数は「2」、メモリ容量は「520MB」が指定されているものとする。例えばサーバ73には、PCIeBOX280内のファンクションに割り当てられた4個のデバイス283~286、コンピュートユニット214内の2個のCPU214a,214b、および2個のメモリ214c,214dが含まれる。
【0234】
このようにして、ファンクションに割り当てるデバイスが、1つのPCIeBOX280から選択される。これによりサーバ73は、すべてのファンクション間通信をPCIeBOX内のPCIe通信で行うことができる。その結果、サーバ73は、効率的にDFを実行することができる。
【0235】
図40は、リソース配備の第2の例を示す図(1/7)である。図40の例では、DF定義情報62に基づいてリソース配備処理が行われる。DF定義情報62には、5つのファンクションそれぞれのファンクション情報62a~62eが含まれる。ファンクション情報62aはファンクション「m1」を示す。ファンクション情報62bはファンクション「m2」を示す。ファンクション情報62cはファンクション「m3」を示す。ファンクション情報62dはファンクション「m4」を示す。ファンクション情報62eはファンクション「m5」を示す。ファンクション「m1」、「m2」、「m3」、「m4」、「m5」それぞれに割り当てるデバイス(FPGA)の数は「1」ずつである。
【0236】
DF定義情報62によれば、ファンクション「m1」は、ファンクション「m2」とファンクション「m3」にデータを送信する。ファンクション「m1」とファンクション「m2」との間のファンクション間通信「c01」の要求性能は、遅延時間が「200ns」未満であること、および帯域幅が「10Gbps」より広いことである。ファンクション「m1」とファンクション「m3」との間のファンクション間通信「c02」の要求性能は、遅延時間が「300ns」未満であること、および帯域幅が「10Gbps」より広いことである。ファンクション「m2」は、ファンクション「m4」にデータを送信する。ファンクション「m2」とファンクション「m4」との間のファンクション間通信「c03」の要求性能は、遅延時間が「50ns」未満であること、および帯域幅が「30Gbps」より広いことである。ファンクション「m3」は、ファンクション「m4」にデータを送信する。ファンクション「m3」とファンクション「m4」との間のファンクション間通信「c04」の要求性能は、遅延時間が「75ns」未満であること、および帯域幅が「20Gbps」より広いことである。ファンクション「m4」は、ファンクション「m5」にデータを送信する。ファンクション「m4」とファンクション「m5」との間のファンクション間通信「c05」の要求性能は、遅延時間が「500ns」未満であること、および帯域幅が「5Gbps」より広いことである。
【0237】
図41は、リソース配備の第2の例を示す図(2/7)である。図41には、インフラシステム200の使用状況を示している。
PCIeスイッチ220の遅延時間は「50ns」である。PCIeスイッチ231の遅延時間は「50ns」である。PCIeスイッチ241の遅延時間は「50ns」である。PCIeスイッチ260の遅延時間は「50ns」である。PCIeスイッチ271の遅延時間は「50ns」である。PCIeスイッチ281の遅延時間は「50ns」である。PCIeスイッチ220とPCIeスイッチ231との間の空き帯域は「96Gbps」である。PCIeスイッチ220とPCIeスイッチ241との間の空き帯域は「64Gbps」である。PCIeスイッチ260とPCIeスイッチ271との間の空き帯域は「48Gbps」である。PCIeスイッチ260とPCIeスイッチ281との間の空き帯域は「48Gbps」である。イーサネットスイッチ250の遅延時間は「2μs」である。イーサネットスイッチ250の空き帯域は「96Gbps」である。
【0238】
PCIeBOX230は、3個の空きデバイスを有している。PCIeBOX240は、1個の空きデバイスを有している。PCIeBOX270は、2個の空きデバイスを有している。PCIeBOX280は、空きデバイスを有していない。
【0239】
このようなインフラシステム200においてDF定義情報62に基づくリソース配備を行う場合、まずデバイス選択部113は、DF定義情報62に基づいて、DFの配備に要求される要求デバイス数(FPGA×5)を認識する。次にデバイス選択部113は、要求デバイス数と各PCIeBOXの空きデバイス数を比較し、要求デバイス数以上の空きデバイスを持つPCIeBOXを特定する。図41の例では、該当するPCIeBOXが存在しない。
【0240】
そこでデバイス選択部113は、すべてのファンクション間通信に着目し、要求性能の遅延時間が最も短いファンクション間通信「c03」を選択する。ファンクション間通信「c03」の両端のファンクション「m2」、「m4」は、共にデバイスを未割当であるため、デバイス選択部113は、ファンクション「m2」、「m4」にデバイスを割当て可能なPCIeBOXを検索する。図41の例では、PCIeBOX230,270が該当する。デバイス選択部113は、該当するPCIeBOX230,270の中で空きデバイス数が最大となるPCIeBOX230を選択する。デバイス選択部113は、選択したPCIeBOX230のデバイスを、選択したファンクション間通信「c03」の両端のファンクション「m2」、「m4」に割り当てる。
【0241】
次にデバイス選択部113は、今回割り当てたファンクション「m2」、「m4」が端点となる他のファンクション間通信「c01」、「c04」、「c05」に着目する。デバイス選択部113は、着目しているファンクション間通信「c01」、「c04」、「c05」の中で要求性能の遅延時間が最も短いファンクション間通信「c04」を選択する。
【0242】
選択したファンクション間通信「c04」の一端のファンクション「m4」には、デバイスを割当て済みである。そこでデバイス選択部113は、デバイスを割当て済みのファンクション「m4」に割り当てたデバイスを有するPCIeBOX230を選択する。デバイス選択部113は、選択したPCIeBOX230のデバイスを、選択したファンクション間通信「c04」のデバイス未割当て側のファンクション「m3」にも割当て可能かを判断する。図41の例では、割当て可能なので、選択したPCIeBOX230内の空きデバイスがファンクション「m3」に割り当てられる。
【0243】
図42は、リソース配備の第2の例を示す図(3/7)である。図42には、ファンクション「m2」、「m3」、「m4」に対してデバイスを割り当てた状態が示されている。ファンクション「m2」には、PCIeBOX230内のデバイス237が割り当てられている。ファンクション「m3」には、PCIeBOX230内のデバイス239が割り当てられている。ファンクション「m4」には、PCIeBOX230内のデバイス238が割り当てられている。
【0244】
デバイス選択部113は、前回の着目通信の残り(ファンクション間通信「c01」、「c05」)に加え、今回割り当てたファンクション「m3」を端点とするファンクション間通信「c02」を着目通信に追加する。そしてデバイス選択部113は、着目通信の中で要求性能の遅延時間が最も短いファンクション間通信「c01」を選択する。
【0245】
選択したファンクション間通信「c01」の一端のファンクション「m2」には、デバイスを割当て済みである。そこでデバイス選択部113は、デバイスを割当て済みのファンクション「m2」に割り当てたデバイスを有するPCIeBOX230を選択する。デバイス選択部113は、選択したPCIeBOX230のデバイスを、選択したファンクション間通信「c01」のデバイス未割当て側のファンクション「m1」にも割当て可能かを判断する。
【0246】
図42の例では割当て不可能なので、デバイス選択部113は、ファンクション「m1」にデバイスを割当て可能なPCIeBOXを検索する。図42の例では、PCIeBOX240,270が該当する。デバイス選択部113は、これらのPCIeBOXの中から、選択しているPCIeBOX230との距離が最小となるPCIeBOX240に、選択先を変更する。そしてデバイス選択部113は、選択したPCIeBOX240の空きデバイスをファンクション「m1」に割り当てる。
【0247】
図43は、リソース配備の第2の例を示す図(4/7)である。図43には、ファンクション「m1」、「m2」、「m3」、「m4」に対してデバイスを割り当てた状態が示されている。新たにデバイス割当てが行われたファンクション「m1」には、PCIeBOX240内のデバイス249が割り当てられている。
【0248】
デバイス選択部113は、前回の着目通信の残り(ファンクション間通信「c05」、「c02」)を、着目通信として維持する。今回割り当てたファンクション「m1」を端点とするファンクション間通信「c01」、「c02」のうち、ファンクション間通信「01」は既に両端のファンクションにデバイスを割当て済みであり、ファンクション間通信「c02」はすでに着目通信である。そのため追加される着目通信はない。
【0249】
デバイス選択部113は、着目通信(ファンクション間通信「c05」、「c02」)の中で要求性能の遅延時間が最も短いファンクション間通信「c02」を選択する。選択したファンクション間通信「c02」の両端のファンクション「m1」、「m3」はともに割当て済みなので、デバイス選択部113は、ファンクション間通信「c02」を着目通信から除外する。そしてデバイス選択部113は、ファンクション間通信「c05」を選択する。
【0250】
選択したファンクション間通信「c05」の一端のファンクション「m4」には、デバイスを割当て済みである。そこでデバイス選択部113は、デバイスを割当て済みのファンクション「m4」に割り当てたデバイスを有するPCIeBOX230を選択する。デバイス選択部113は、選択したPCIeBOX230のデバイスを、選択したファンクション間通信「c05」のデバイス未割当て側のファンクション「m5」にも割当て可能かを判断する。
【0251】
図43の例では割当て不可能なので、デバイス選択部113は、ファンクション「m5」にデバイスを割当て可能なPCIeBOXを検索する。図43の例では、PCIeBOX270が該当する。そこでデバイス選択部113は、PCIeBOX270に、選択先を変更する。そしてデバイス選択部113は、選択したPCIeBOX270の空きデバイスをファンクション「m5」に割り当てる。
【0252】
図44は、リソース配備の第2の例を示す図(5/7)である。図44には、すべてのファンクションに対してデバイスを割り当てた状態が示されている。新たにデバイス割当てが行われたファンクション「m5」には、PCIeBOX270内のデバイス279が割り当てられている。
【0253】
デバイス選択が完了すると、経路選択部114が経路選択処理を開始する。
図45は、リソース配備の第2の例を示す図(6/7)である。図45には、ファンクション間通信ごとに選択された通信経路を、デバイス間を接続する太線の矢印で示している。
【0254】
経路選択部114は、要求性能における遅延時間が最小となるファンクション間通信「c03」を選択する。次に経路選択部114は、選択したファンクション間通信「c03」の通信経路を特定する。ファンクション間通信「c03」の両端のファンクション「m2」、「m4」には、共にPCIeBOX230内のデバイス237,238が割り当てられている。そのためファンクション間通信「c03」として選択可能な通信経路としては、PCIeスイッチ231経由のPCIe通信とイーサネットスイッチ250経由のイーサネット通信とがある。PCIe通信はPCIeBOX230内のPCIeスイッチ231のみを経由する通信である。そのため、経路選択部114は、ファンクション間通信「c03」の通信経路としてPCIe通信を選択する。
【0255】
次に経路選択部114は、要求性能における遅延時間が次に短いファンクション間通信「c04」を選択する。ファンクション間通信「c04」の両端のファンクション「m3」、「m4」には、共にPCIeBOX230内のデバイス239,238が割り当てられている。従って経路選択部114は、ファンクション間通信「c04」の通信経路としてPCIe通信を選択する。
【0256】
次に経路選択部114は、要求性能における遅延時間が次に短いファンクション間通信「c01」を選択する。次に経路選択部114は、選択したファンクション間通信「c01」の通信経路を特定する。ファンクション間通信「c01」の一端のファンクション「m1」には、PCIeBOX240内のデバイス249が割り当てられ、他端のファンクション「m2」には、PCIeBOX230内のデバイス237が割り当てられている。この場合、PCIe通信の通信経路は、PCIeスイッチ241、PCIeスイッチ220、およびPCIeスイッチ231を経由する。イーサネット通信の通信経路は、イーサネットスイッチ250を経由する。
【0257】
経路選択部114は、特定した通信経路の遅延時間と空き帯域を取得する。PCIe通信の遅延時間は「150ns」、空き帯域は「64Gbps」である。イーサネット通信の遅延時間は「2μs」、空き帯域は「96Gbps」である。この場合、イーサネット通信ではファンクション間通信「c01」の要求性能(遅延時間<200ns、帯域幅>10Gbps)を満たせないが、PCIe通信であれば要求性能を満たせる。そのため経路選択部114は、ファンクション間通信「c01」の通信経路として、PCIe通信を選択する。
【0258】
経路選択部114は、選択した通信経路の空き帯域から、ファンクション間通信「c01」の要求性能の帯域幅の値を減算する。その結果、PCIeスイッチ231とPCIeスイッチ220との間の空き帯域は「96Gbps」から「86Gbps」に更新される。またPCIeスイッチ241とPCIeスイッチ220との間の空き帯域は「64Gbps」から「54Gbps」に更新される。
【0259】
次に経路選択部114は、要求性能における遅延時間が次に短いファンクション間通信「c02」を選択する。次に経路選択部114は、選択したファンクション間通信「c02」の通信経路を特定する。ファンクション間通信「c02」の一端のファンクション「m1」には、PCIeBOX240内のデバイス249が割り当てられ、他端のファンクション「m3」には、PCIeBOX230内のデバイス239が割り当てられている。この場合、PCIe通信の通信経路は、PCIeスイッチ241、PCIeスイッチ220、およびPCIeスイッチ231を経由する。イーサネット通信の通信経路は、イーサネットスイッチ250を経由する。
【0260】
経路選択部114は、特定した通信経路の遅延時間と空き帯域を取得する。PCIe通信の遅延時間は「150ns」、空き帯域は「54Gbps」である。イーサネット通信の遅延時間は「2μs」、空き帯域は「96Gbps」である。この場合、イーサネット通信ではファンクション間通信「c02」の要求性能(遅延時間<300ns、帯域幅>10Gbps)を満たせないが、PCIe通信であれば要求性能を満たせる。そのため経路選択部114は、ファンクション間通信「c02」の通信経路として、PCIe通信を選択する。
【0261】
経路選択部114は、選択した通信経路の空き帯域から、ファンクション間通信「c02」の要求性能の帯域幅の値を減算する。その結果、PCIeスイッチ231とPCIeスイッチ220との間の空き帯域は「86Gbps」から「76Gbps」に更新される。またPCIeスイッチ241とPCIeスイッチ220との間の空き帯域は「54Gbps」から「44Gbps」に更新される。
【0262】
次に経路選択部114は、要求性能における遅延時間が次に短いファンクション間通信「c05」を選択する。次に経路選択部114は、選択したファンクション間通信「c05」の通信経路を特定する。ファンクション間通信「c05」の一端のファンクション「m4」には、PCIeBOX230内のデバイス238が割り当てられ、他端のファンクション「m5」には、PCIeBOX270内のデバイス279が割り当てられている。この場合、PCIe通信の通信経路は存在しない。イーサネット通信の通信経路は、イーサネットスイッチ250を経由する。経路選択部114は、イーサネット通信の通信経路しか存在しないため、ファンクション間通信「c05」の通信経路として、イーサネット通信を選択する。
【0263】
経路選択部114は、選択した通信経路の空き帯域から、ファンクション間通信「c05」の要求性能の帯域幅の値を減算する。その結果、イーサネットスイッチ250の空き帯域は「96Gbps」から「86Gbps」に更新される。
【0264】
経路選択処理が完了すると、サーバ構成決定部115によりサーバ構成が決定される。
図46は、リソース配備の第2の例を示す図(7/7)である。図46は、構成が決定されたサーバ74,75に含まれるデバイスを示している。
【0265】
サーバ構成決定部115は、例えばファンクション「m1」を選択し、割り当てたデバイス249と、そのデバイス249を搭載するPCIeBOX240を特定する。次にサーバ構成決定部115は、当該のPCIeBOX240とPCIeスイッチ経由で接続可能なPCIeBOXのリストを取得する。該当のリストには、PCIeBOX230が含まれる。
【0266】
サーバ構成決定部115は、PCIeBOX230とPCIeBOX240のデバイスのうちのファンクションに割り当てるデバイス237~239,249と、指定された数のCPUと、指定された容量のメモリとを、サーバ74の構成要素とする。図46の例では、CPU数は「2」、メモリ容量は「520MB」が指定されているものとする。例えばサーバ74には、PCIeBOX230、240内のファンクションに割り当てられた4個のデバイス237~239,249、コンピュートユニット211内の2個のCPU211a,211b、および2個のメモリ211c,211dが含まれる。
【0267】
サーバ構成決定部115は、サーバ74に含まれるデバイスが割り当てられるファンクションを、対応するサーバ構成情報作成済みとする。そしてサーバ構成情報未作成のファンクション「m5」を選択し、デバイス279と、そのデバイス279を搭載するPCIeBOX270を特定する。次にサーバ構成決定部115は、当該のPCIeBOX270とPCIeスイッチ経由で接続可能なPCIeBOXのリストを取得する。該当のリストには、PCIeBOX280が含まれる。
【0268】
サーバ構成決定部115は、PCIeBOX270とPCIeBOX280のデバイスのうちのファンクションに割り当てるデバイス279と、指定された数のCPU、指定された容量のメモリとを、サーバ75の構成要素とする。図46の例では、CPU数は「1」、メモリ容量は「520MB」が指定されているものとする。例えばサーバ74には、PCIeBOX270内のファンクションに割り当てられた1個のデバイス279、コンピュートユニット213内のCPU213b、およびメモリ213dが含まれる。
【0269】
サーバ構成決定部115は、サーバ75に含まれるデバイスが割り当てられるファンクションを、対応するサーバ構成情報作成済みとする。サーバ構成決定部115は、サーバ構成情報未作成のファンクションがなくなったため、サーバ構成決定処理を終了する。
【0270】
このようにファンクションに割り当てるデバイスを適切に選択してサーバ74,75を構成することで、生成したサーバ74,75によってDFの処理を効率的に実行することが可能となる。
【0271】
〔その他の実施の形態〕
第2の実施の形態では、リソース配備スケジューラ110、インフラシステムマネージャ120、およびリソース管理マネージャ130を1つの管理コンピュータ100で実行しているが、これらの機能の一部を他のコンピュータで実行してもよい。またリソース配備スケジューラ110、インフラシステムマネージャ120、およびリソース管理マネージャ130を1つの管理コンピュータ100のうちの少なくとも一部を、インフラシステム200内に構築済みのLSNに実行させることもできる。
【0272】
第2の実施の形態では、ファンクションに割り当てるデバイスとしてFPGAの例を示したが、CPUまたはGPUなどを搭載したモジュールをデバイスとすることもできる。
以上、実施の形態を例示したが、実施の形態で示した各部の構成は同様の機能を有する他のものに置換することができる。また、他の任意の構成物や工程が付加されてもよい。さらに、前述した実施の形態のうちの任意の2以上の構成(特徴)を組み合わせたものであってもよい。
【符号の説明】
【0273】
1 処理情報
1a,1b,1c,1d 機能情報
2 コンピュータシステム
3a,3b,3c コンピュートユニット
4a,4b CPU
4c,4d メモリ
5a,5b,5c BOX
6a,6b,6c,6d デバイス
7a,7b,7c,7d,7e スイッチ
8 ネットワークスイッチ
9a,9b サーバ
10 リソース割当て装置
11 記憶部
11a システム情報
12 処理部
図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
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45
図46