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

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

▶ 日本電気株式会社の特許一覧

特開2024-85550計算機システム、処理方法、およびプログラム
<>
  • 特開-計算機システム、処理方法、およびプログラム 図1
  • 特開-計算機システム、処理方法、およびプログラム 図2
  • 特開-計算機システム、処理方法、およびプログラム 図3
  • 特開-計算機システム、処理方法、およびプログラム 図4
  • 特開-計算機システム、処理方法、およびプログラム 図5
  • 特開-計算機システム、処理方法、およびプログラム 図6
  • 特開-計算機システム、処理方法、およびプログラム 図7
  • 特開-計算機システム、処理方法、およびプログラム 図8
  • 特開-計算機システム、処理方法、およびプログラム 図9
  • 特開-計算機システム、処理方法、およびプログラム 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024085550
(43)【公開日】2024-06-27
(54)【発明の名称】計算機システム、処理方法、およびプログラム
(51)【国際特許分類】
   G06F 9/48 20060101AFI20240620BHJP
【FI】
G06F9/48 370
【審査請求】未請求
【請求項の数】7
【出願形態】OL
(21)【出願番号】P 2022200119
(22)【出願日】2022-12-15
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.Linux
【国等の委託研究の成果に係る記載事項】(出願人による申告)令和2年度、国立研究開発法人情報通信研究機構「革新的情報通信技術研究開発委託研究/Beyond5G研究開発促進事業/Beyond5G超大容量無線通信を支える次世代エッジクラウドコンピューティング基盤の研究開発」産業技術力強化法第17条の適用を受ける特許出願
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100181135
【弁理士】
【氏名又は名称】橋本 隆史
(72)【発明者】
【氏名】吉川 隆士
(57)【要約】
【課題】適切にスケールアップやスケールアウトすることのできる計算機システムを提供する。
【解決手段】計算機システムは、制御を行うためのネットワークである制御ネットワークとデータの送受信を行うためのネットワークであるデータネットワークとを介して結合される複数のポッドで提供されるサービスを組み合わせて1つのサービスを実現するアプリケーションプログラムを実施する計算機システムであって、前記複数のポッドの一部として任意のスマートリソース上にポッドを追加する第1処理部を備える。
【選択図】図8
【特許請求の範囲】
【請求項1】
制御を行うためのネットワークである制御ネットワークとデータの送受信を行うためのネットワークであるデータネットワークとを介して結合される複数のポッドで提供されるサービスを組み合わせて1つのサービスを実現するアプリケーションプログラムを実施する計算機システムであって、
前記複数のポッドの一部として任意のスマートリソース上にポッドを追加する第1処理部、
を備える計算機システム。
【請求項2】
前記第1処理部は、
前記制御ネットワークを介した制御に応じて前記任意のスマートリソース上のポッドの追加を実行する、
請求項1に記載の計算機システム。
【請求項3】
追加した前記ポッドが不要となった場合に、不要となった前記ポッドを前記複数のポッドから除外する第2処理部、
を備える請求項1または請求項2に記載の計算機システム。
【請求項4】
前記第2処理部は、
前記制御ネットワークを介した制御に応じて、不要となった前記ポッドの除外を実行する、
請求項3に記載の計算機システム。
【請求項5】
前記任意のスマートリソースは、ストレージ、GPU(Graphics Processing Unit)アクセラレータ、カメラ、またはセンサーであるI/O(Input/Output)デバイスと、メモリと、CPU(Central Processing Unit)とのうちの少なくとも1つを備える、
請求項1に記載の計算機システム。
【請求項6】
制御を行うためのネットワークである制御ネットワークとデータの送受信を行うためのネットワークであるデータネットワークとを介して結合される複数のポッドで提供されるサービスを組み合わせて1つのサービスを実現するアプリケーションプログラムを実施する計算機システムが実行する処理方法であって、
前記複数のポッドの一部として任意のスマートリソース上にポッドを追加すること、
を含む計算機システムが実行する処理方法。
【請求項7】
制御を行うためのネットワークである制御ネットワークとデータの送受信を行うためのネットワークであるデータネットワークとを介して結合される複数のポッドで提供されるサービスを組み合わせて1つのサービスを実現するアプリケーションプログラムを実施する計算機システムに、
前記複数のポッドの一部として任意のスマートリソース上にポッドを追加すること、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、計算機システム、処理方法、およびプログラムに関する。
【背景技術】
【0002】
リソース分離型計算機システムは、リソースを組み替えて再構成することで様々な形態の計算機となることができる。そのため、少ないリソースで多種多様な機能と性能を実現するのに優れている。特許文献1には、関連する技術として、コンテナベースのアプリケーションを調整するための技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2022-538897号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、計算機システムでは、適切にスケールアップやスケールアウトすることのできる技術が求められている。
【0005】
本開示の各態様は、上記の課題を解決することのできる計算機システム、処理方法、およびプログラムを提供することを目的としている。
【課題を解決するための手段】
【0006】
上記目的を達成するために、本開示の一態様によれば、計算機システムは、制御を行うためのネットワークである制御ネットワークとデータの送受信を行うためのネットワークであるデータネットワークとを介して結合される複数のポッドで提供されるサービスを組み合わせて1つのサービスを実現するアプリケーションプログラムを実施する計算機システムであって、前記複数のポッドの一部として任意のスマートリソース上にポッドを追加する第1処理部を備える。
【0007】
上記目的を達成するために、本開示の別の態様によれば、計算機システムが実行する処理方法は、制御を行うためのネットワークである制御ネットワークとデータの送受信を行うためのネットワークであるデータネットワークとを介して結合される複数のポッドで提供されるサービスを組み合わせて1つのサービスを実現するアプリケーションプログラムを実施する計算機システムが実行する処理方法であって、前記複数のポッドの一部として任意のスマートリソース上にポッドを追加すること、を含む。
【0008】
上記目的を達成するために、本開示の別の態様によれば、プログラムは、制御を行うためのネットワークである制御ネットワークとデータの送受信を行うためのネットワークであるデータネットワークとを介して結合される複数のポッドで提供されるサービスを組み合わせて1つのサービスを実現するアプリケーションプログラムを実施する計算機システムに、前記複数のポッドの一部として任意のスマートリソース上にポッドを追加すること、を実行させる。
【発明の効果】
【0009】
本開示の各態様によれば、計算機システムにおいて、適切にスケールアップやスケールアウトすることができる。
【図面の簡単な説明】
【0010】
図1】本開示の一実施形態によるリソース分離型計算機システムの構成の一例を示す図である。
図2】本開示の一実施形態によるリソース分離型計算機システムのアーキテクチャの一例を示す図である。
図3】本開示の一実施形態による1つのスマートリソースに展開されるソフトウェアの構成の一例を示す図である。
図4】本開示の一実施形態によるリソース分離型計算機システムの全体動作の処理フローの一例を示す図である。
図5】本開示の一実施形態によるリソース分離型計算機システムがアプリケーションプログラムを実行した場合の処理フローの一例を示す図である。
図6】比較対象のリソース分離型計算機システムの構成の一例を示す図である。
図7】本開示の実施形態によるリソース分離型計算機システムの性能のスケールと比較対象のリソース分離型計算機システムの性能のスケールの比較の一例を示す図である。
図8】本開示の実施形態による計算機システムの最小構成を示す図である。
図9】本開示の実施形態による最小構成の計算機システムの処理フローの一例を示す図である。
図10】少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【発明を実施するための形態】
【0011】
以下、図面を参照しながら実施形態について詳しく説明する。
<実施形態>
(リソース分離型計算機システムの構成)
本開示の一実施形態によるリソース分離型計算機システム101について図面を参照して説明する。リソース分離型計算機システム101は、リソースを組み替えて再構成することで様々な形態の計算機となることができるシステムである。
【0012】
図1は、本開示の一実施形態によるリソース分離型計算機システム101の構成の一例を示す図である。リソース分離型計算機システム101は、図1に示すように、制御ネットワーク102、スマートリソース103、およびデータネットワーク108を備える。
【0013】
データネットワーク108は、リソース分離型計算機システム101の処理対象となるデータを伝達するためのネットワークである。制御ネットワーク102は、リソース分離型計算機システム101自体の動作にかかわる制御や管理に用いる信号やデータを伝達するネットワークである。
【0014】
スマートリソース103は、CPU(Central Processing Unit)を備え、デバイス機能を用いるソフトウェアをOS(Operating System)上で動作可能なI/O(Input/Output)デバイスである。スマートリソース103は、図1に示すように、制御ネットワーク102とデータネットワーク108との間に複数存在する。スマートリソース103は、制御ネットワーク102とデータネットワーク108とを結合する。
【0015】
スマートリソース103は、図1に示すように、サービス提供機能104、ベースCPU105、機能デバイス106、およびデータ共有機能107を備える。サービス提供機能104およびデータ共有機能107は、ソフトウェアにより実現される機能である。ベースCPUでは、OSが動作する。OSの例としては、LINUXなどが挙げられる。ベースCPU105は、ソフトウェアを実行することにより、サービス提供機能104およびデータ共有機能107の機能を実現する。機能デバイス106の例としては、ストレージ、GPU(Graphics Processing Unit)アクセラレータ、カメラ、センサーなどのI/Oデバイス、メモリ、CPUなどが挙げられる。
【0016】
リソース分離型計算機システム101は、機能デバイス106に加えてベースCPU105を備えるスマートリソース103を、ハードウェアの構成要素として有する。このベースCPU105上にはOSが搭載されており単なるデバイスではなくスマートリソース103単独で動作することができる。
【0017】
スマートリソース103は、他のスマートリソース103とは、制御ネットワーク102、およびデータネットワーク108を介して接続される。ただし、制御ネットワーク102とデータネットワーク108は、ひとつのネットワークで兼用されるものであってもよい。いずれの場合も直接的なメモリ転送であるDirect Memory Access(DMA)ベースの密結合ではなく、データパケット通信ベースの疎結合であるという特徴を有する。具体的には、メモリ間での転送を行う場合にはRDMA(Remote DMA)を用いて、スマートリソース103および他のスマートリソース103におけるメモリアドレスの整合を行う。ただし、データ転送自体は、パケット通信を用いて実行される。
【0018】
図2は、本開示の一実施形態によるリソース分離型計算機システム101のアーキテクチャの一例を示す図である。リソース分離型計算機システム101のアーキテクチャは、図2に示すように、リソース分離型サービス管理層121、リソース分離型データ管理層122、リソース分離型OS層123、リソース分離型基盤ハードウェア層124、リソース分離型ジョブスケジューラ125、リソース分離型オーケストレータ126、およびリソース分離型プロビジョナー127を有する。
【0019】
リソース分離型基盤ハードウェア層124は、多様なリソースを搭載するためのリソース分離の基本構成ハードウェアである。リソース分離型基盤ハードウェア層124では、それぞれがCPUを有するスマートリソース103が、イーサネットやInfinibandなどのインターコネクションネットワークで結合されている。
【0020】
リソース分離型OS層123は、リソース分離型のメモリプールを実現する際に、分離されたリソース上で、メモリ管理、スケジューリング、およびI/O処理などのOSに相当する機能を実行する。
【0021】
リソース分離型データ管理層122は、リソース分離型基盤ハードウェア層124のそれぞれのスマートリソース間で、データの共有を実現する。
【0022】
リソース分離型サービス管理層121は、それぞれのスマートリソースのデバイスを活用したひとつのデータ処理機能を提供する。リソース分離型サービス管理層121は、同様の複数のコンテナでの処理を結合してひとつのアプリケーションプログラムの処理を実施する。
【0023】
リソース分離型オーケストレータ126は、リソース分離型ジョブスケジューラ125にリクエストされた複数のユーザからの複数のジョブに対して、リソース分離型プロビジョナー127が適切なリソースを選択して計算機環境を準備する。その上でリソース分離型オーケストレータ126は、リソース分離型ジョブスケジューラ125がジョブを実行できるように、リソース分離型ジョブスケジューラ125およびリソース分離型プロビジョナー127を制御する。
【0024】
リソース分離型計算機システム101のアーキテクチャで実現される計算機システムは、複数のユーザの複数のサービスを、リソース量と実行性能の観点で最適化して実施する計算機システムである。
【0025】
図3は、本開示の一実施形態による1つのスマートリソース103に展開されるソフトウェア部131の構成の一例を示す図である。図3は、ソフトウェア部131の機能ブロック図を、コンテナを用いて実装した場合の構成を示している。ソフトウェア部131は、ベースCPU105上で動作する。ソフトウェア部131は、図3に示すように、複数のサービスポッド132、マルチコンテナ制御135(第1処理部の一例、第2処理部の一例)、およびコンテナ基盤136を備える。サービスポッド132のそれぞれは、図3に示すように、サービスコンテナ133、およびデータ共有コンテナ134を有する。なお、サービスコンテナ133は、図1に示すサービス提供機能104をコンテナ化したものである。また、データ共有コンテナ134は、図1に示すデータ共有機能107をコンテナ化したものである。
【0026】
サービスコンテナ133は、スマートリソース103の機能を用いてサービスを提供する。データ共有コンテナ134は、サービスコンテナ133が対象とするサービスのデータを他のサービスポッド132と共有可能にする。
【0027】
コンテナ基盤136は、スマートリソース103上に仮想化された計算機環境を複数作ることができる。コンテナ基盤136としては、DockerやSingularityなどが用いられる。
【0028】
マルチコンテナ制御135は、制御ネットワーク102を介した制御に応じて、複数の計算機をまたいでコンテナ基盤を操作してさまざまな設定の複数のコンテナをたてたり、消したりする制御を実行することができる。例えば、マルチコンテナ制御135は、複数のサービスポッド132(ポッドの一例)の一部として任意のスマートリソース103上にサービスポッド132(ポッドの一例)を追加する。また、例えば、マルチコンテナ制御135は、追加したサービスポッドが不要となった場合に、不要となったサービスポッドを複数のサービスポッド132から除外する。マルチコンテナ制御135としては、Kubernetesなどが用いられる。
【0029】
また、マルチコンテナ制御135は、複数のコンテナを組み合わせて1つの機能やサービスを実行するサービスポッド132を単位として、同じスマートリソース103やネットワーク接続された他のスマートリソース103上にサービスポッド132を自由に配置することができる。
【0030】
サービスポッド132は、スマートリソース103に搭載されているデバイスの機能を活用したデータ処理を行う。
【0031】
次に、リソース分離型計算機システム101が行う処理について説明する。図4は、本開示の一実施形態によるリソース分離型計算機システム101の全体動作の処理フローの一例を示す図である。また、図5は、本開示の一実施形態によるリソース分離型計算機システム101がアプリケーションプログラムを実行した場合の処理フローの一例を示す図である。ここでは、リソース分離型計算機システム101が行う処理について、図4および図5を参照して説明する。
【0032】
まず、図4を参照して、リソース分離型計算機システム101の全体動作について説明する。
【0033】
リソース分離型計算機システム101は、リソース分離型サービス管理層121において、1つのアプリケーションプログラムによる処理を、処理の性質、すなわちどのようなデバイスで処理するのが適切であるかによって分離する。そして、リソース分離型計算機システム101は、それぞれの処理を適したスマートリソース103上のサービスポッド132において実行する。
【0034】
アプリケーションプログラムは、処理Aから処理Dの4つの処理に分割される。リソース分離型計算機システム101は、これら4つの処理をスマートリソース103上にサービスポッド132をたてて実行する。
【0035】
図4の(a)の部分は、状態1におけるリソース分離型計算機システム101の処理を示している。図4の(b)の部分は、状態2におけるリソース分離型計算機システム101の処理を示している。図4の(c)の部分は、状態3におけるリソース分離型計算機システム101の処理を示している。
【0036】
状態1では負荷が大きくないため、リソース分離型計算機システム101は、4つの処理を同じデバイスを用いて実行する。処理Aと処理Bについては、実施するサービスポッド132を、同一のスマートリソース103の上にたててリソース分離型計算機システム101が実行しても、処理能力は十分足りている。その後入力が変わり処理Cの負荷だけが増えた場合、リソース分離型計算機システム101では、処理Cを実施するサービスポッド132だけ2つに増やして分散処理を行う状態2に移行する。これにより、リソース分離型計算機システム101は、全体処理のスループットを維持することができる。
【0037】
さらに負荷が増加した状態3の場合、処理Aと処理Bを同一のスマートリソース103に置くことができなくなる。この場合、リソース分離型計算機システム101は、処理Aを行っていたスマートリソース103を新たに利用して処理Bを実施するサービスポッド132をたてる。また、同時に処理Cを実施するサービスポッド132をさらに追加して3つにする。こうすることにより、リソース分離型計算機システム101は、同じ種類のスマートリソース103をシステムに追加してそこに3つ目のサービスポッド132をたてることで、処理Cを実行中の2つのサービスポッド132の動作に影響を与えずに3つ目のサービスポッド132をたてて処理Cを3つのサービスポッド132を使って分散処理することができる。すなわち、状態1から状態3へ必要な性能を処理Aと処理Bに適したスマートリソース103を1つと、処理Cに適したスマートリソース103を1つ追加し、処理Cを実行するサービスポッド132を1つから3つに増やして分散処理を行えるようにリソース分離型計算機システム101を再構成する。この再構成は、マルチコンテナ制御のソフトウェアによりダイナミックに実施可能である。そのため、リソース分離型計算機システム101は、サービスを止めずに負荷に応じてリソースの利用率を高く保つことができる。
【0038】
次に、図5を参照して、リソース分離型計算機システム101がアプリケーションプログラムを実行した場合の処理について説明する。
【0039】
入力に対して処理Aから処理Dの4つの処理を行い結果が出力されるデータ処理アプリケーションプログラムについて、リソース分離型計算機システム101は、処理Aから処理Dを、それぞれ別々のサービスポッド132上で実行する。それぞれのサービスポッド132は、データネットワーク108を介して共有ストレージ151に接続されている。リソース分離型計算機システム101は、各処理において、それぞれの入力データを共有ストレージ151における記憶領域から読み出す。また、リソース分離型計算機システム101は、各処理において、処理結果を共有ストレージ151における記憶領域へ書き込む。リソース分離型計算機システム101は、処理Aの出力を処理Bの入力として受け取り処理Bを実施し、その結果を処理Cの入力として処理Cを実施し、その結果をさらに処理Dの入力として処理Dを実施する。リソース分離型計算機システム101は、このような処理Aから処理Dへの流れにより、入力から4つの処理を行うことにより出力データを生成する。また、各サービスポッド132は、新しいループ番号のデータがある場合に処理を実施して結果を書き込む処理を繰り返す。ループ番号がキーとなって一連の処理が引き継がれるため、各サービスポッド132は、特に制御することなく一連のアプリケーションプログラムによる処理を実施する。なお、アプリケーションプログラムによっては上記のようなデータの流れだけで処理を引き継ぐのではなく、リソース分離型計算機システム101が制御ネットワーク102を介してデータと処理の制御を行ってもよい。
【0040】
(効果)
以上、本開示の一実施形態によるリソース分離型計算機システム101について説明した。リソース分離型計算機システム101(計算機システムの一例)は、制御を行うためのネットワークである制御ネットワーク102とデータの送受信を行うためのネットワークであるデータネットワーク108とを介して結合される複数のサービスポッド132(ポッドの一例)で提供されるサービスを組み合わせて1つのサービスを実現するアプリケーションプログラムを実施する計算機システムであって、前記複数のサービスポッド132の一部として任意のスマートリソース103上にサービスポッド132を追加する。これにより、計算機システムにおいて、適切にスケールアップやスケールアウトすることができる。
【0041】
本開示の一実施形態によるリソース分離型計算機システム101では、サーバ単位ではなく、スマートリソース103単位で多様なリソースを組み合わせて計算機システムを構成することが可能である。そのため、リソース分離型計算機システム101は、絶対量が少ないリソースでも多種多様なサービスを実現することができる。
【0042】
また、リソース分離型計算機システム101では、さらにリソースの機能を活用するサービスポッド132を組み合わせてアプリケーションプログラムを実行することが可能である。そのため、リソース分離型計算機システム101は、サービス実施中に動的に性能をスケールすることができる。その結果、リソース分離型計算機システム101は、必要な性能に対して確保しておくリソースと、実際に利用するリソースとの差を小さくすることができる。すなわちリソース利用率を高くすることができる。
【0043】
ここで、比較対象のリソース分離型計算機システム111について説明する。図6は、比較対象のリソース分離型計算機システム111の構成の一例を示す図である。リソース分離型計算機システム111は、図6に示すように、アプリケーションプログラム112、ミドルウェア/ライブラリ113、OS114、I/Oシステムバス115(図6では、PCIeなどのインターコネクションと記載)、およびデバイスプール116を備える。デバイスプール116は、I/Oデバイス117を備える。リソース分離型計算機システム111は、PCI Expressなどの結合ネットワークにより、CPUとI/Oデバイスとを接続したり外したりすることで構成を変更する。
【0044】
リソース分離型計算機システム111は、I/Oデバイスプールとして、PCIエクスパンダと呼ばれるPCI Expressの拡張スロットを複数備えることが多い。そして、リソース分離型計算機システム111では、それぞれをPCI Expressスイッチで接続する装置が用いられることが多い。なお、PCI Expressを仮想化したシステムバスが用いられる場合には、イーサネットなど他のスイッチを用いることもある。
【0045】
システムマネージャがそれらのスイッチの接点を制御することで、どのI/OデバイスをCPU側に接続するかを定めることにより、リソース分離型計算機システム111を再構成することができる。その際、電源を入れた状態で構成を変更するためには、OSも協調してホットプラグ動作が正常に実行される必要がある。ホットプラグとは、計算機システムを通電したまま、I/Oデバイスを取り付けたり外したりすることである。
【0046】
しかしながら、I/Oデバイスの中にはホットプラグ動作をサポートしていないものも数多くある。ユーザが多いI/OデバイスであるGPUもその1つである。ホットプラグ動作をサポートしていない主な理由は、GPUが要求するメモリ空間が他のデバイスに比べて非常に大きいことであり、あらかじめOSがホットプラグ用に用意しているBAR(Base Address Register)空間に収まらないためである。
【0047】
逆に、デバイス側でホットプラグをサポートするためには、デバイス・ハードウェアおよびデバイスドライバがホットプラグ動作をサポートし、かつ、OSおよびPCI Expressと協調して動作する必要がある。そのため、ホットプラグをサポートしていないデバイスが多い場合、同時にホットプラグをサポートしているデバイスがあっても、そのホットプラグをサポートしているデバイスは、うまく動作しないことがある。
【0048】
ホットプラグをサポートしていないI/Oデバイスを利用するには、リソース分離型計算機システム111をシャットダウンして、I/Oデバイスを取り付けたのちに再起動する必要がある。
【0049】
一方、デバイスを外す場合には、ほぼすべてのデバイスがSudden Removalをサポートしていない(すなわち、デバイスを突然外すことは許されていない)。ほぼすべてのデバイスがSudden Removalをサポートしていない理由は、PCI Expressもサポートしていない場合に、同時に、OS上でデバイスへのアクセスを終了した後にデバイスを取り外さなければ、データが失われたり、アクセス途中でデバイスからの反応を待ち続けてCPUがストールしたりするためである。
【0050】
すなわち、PCIレベルでI/Oデバイスを取り付けたり外したりすることにより、リソース分離型計算機システム111を再構成することができる。しかしながら、一般的に、計算機システムは、I/Oデバイスを取り付けたり外したりするには、OS上でデバイスを管理したりドライバを適用するなどの処理が必要なため時間を要する(例えば、LINUXなどのOSでは、1分弱の時間を要する)。さらにホットプラグをサポートしていない場合には、再起動が必要となり数分を要する。また、これらの動作は、リソース分離型計算機システム111上のすべてのユーザに影響を及ぼす。そのため、リソース分離型計算機システム111は、複数ユーザがシェアするマルチテナントに適していない。
【0051】
また、一般的に、計算機システムは、マルチテナントの実現手法として、計算機が互いに見えないようセキュアに分割してシェアする仮想化が用いられる場合がある。この場合、例えば、ハイパーバイザーがCPUの実行時間を複数に分割してそれぞれを別個のCPUのようにして複数の計算機を仮想的に実現する仮想マシン(Vertual Machine)や、OS上で複数のユーザに実行環境を分割して複数の計算機のようにみせるコンテナが用いられる。
【0052】
一般的に、ハイパーバイザーによる仮想マシンは、各ユーザがOS層から上の層をそのまま持つことになる。そのため、各ユーザは、計算機リソースをまるまる必要とする。その結果、一台の計算機をシェアするユーザ数は、性能的に限られてしまう。多くの場合、コンテキストスイッチを減らすためにCPUのコアごとに一人のユーザを割り当て、コア数=最大ユーザ数という運用が行われる。また、仮想マシンの起動は、OSの起動と同等の数十秒から数分の時間がかかる。
【0053】
一般的に、コンテナが用いられる場合、ホストがOS層を有する。OS層は、アプリケーションプログラムを実行する環境のみをコンテナイメージとして持つ。そのため、OS層が保持するリソース量は少なく、一台の計算機で多くのコンテナを動かすことができる。そのコンテナは、数秒で起動する。プラットフォームの部分は各コンテナに共通である。そのため、一般的に、コンテナを用いた計算機システムは、一人のユーザが大規模なWebサービスを実施するような、均質な計算機環境を数多くコピーして用いるユースケースに適している。また、その一方で、一般的に、コンテナを用いた計算機システムは、ユーザごとに異なる性能や機能を必要とする場合、特に利用するI/Oデバイスが異なる場合には、均質な計算機環境を数多くコピーして用いるユースケースに適さない。
【0054】
図7は、本開示の実施形態によるリソース分離型計算機システム101の性能のスケールと比較対象のリソース分離型計算機システム111の性能のスケールの比較の一例を示す図である。図7の(a)の部分は、リソース分離型計算機システム111の性能のスケールの概念を示している。図7の(b)の部分は、リソース分離型計算機システム101の性能のスケールの概念を示している。比較対象のリソース分離型計算機システム111では、仮想マシンやコンテナを増やしてスケールアウトしていくと、1つのリソースの場合、性能が頭打ちになる。そこで、リソース分離型計算機システム111において、新たなサーバや新たなリソースを追加することが考えられる。この場合、リソース分離型計算機システム111の性能のスケールは、図7の(a)の部分に示す性能のスケールのようになるが、性能が一気に必要以上に上がってしまい、リソース利用率が低くなってしまう。それに対して、リソース分離型計算機システム101では、ボトルネックとなっている処理だけについてサービスポッドを増やせばよい。そのため、図7の(b)の部分に示すように、リソース分離型計算機システム101の性能のスケールは、リソース分離型計算機システム111の性能のスケールに比べて急激な変化が少ない。また、さらに、リソース分離型計算機システム101では、新たにリソースを追加する際にもPCIレベルでデバイスを取り付けたり外したりする必要がない。そのため、リソース分離型計算機システム101は、動作中のサービスに影響を与えることなくスケールアップおよびスケールアウトすることができる。
【0055】
図8は、本開示の実施形態による計算機システム1000の最小構成を示す図である。図8に示す計算機システム1000は、制御を行うためのネットワークである制御ネットワークとデータの送受信を行うためのネットワークであるデータネットワークとを介して結合される複数のポッドで提供されるサービスを組み合わせて1つのサービスを実現するアプリケーションプログラムを実施する計算機システムであって、前記複数のポッドの一部として任意のスマートリソース上にポッドを追加する第1処理部100を備える。第1処理部100は、例えば、図3に例示されているマルチコンテナ制御135が有する機能を用いて実現することができる。
【0056】
図9は、本開示の実施形態による最小構成の計算機システム1000の処理フローの一例を示す図である。次に、本開示の実施形態による最小構成の計算機システム1000の処理について図9を参照して説明する。
【0057】
第1処理部100は、制御を行うためのネットワークである制御ネットワークとデータの送受信を行うためのネットワークであるデータネットワークとを介して結合される複数のポッドで提供されるサービスを組み合わせて1つのサービスを実現するアプリケーションプログラムを実施する計算機システムである。計算機システム1000は、前記複数のポッドの一部として任意のスマートリソース上にポッドを追加する(ステップS101)。
【0058】
以上、本開示の実施形態による最小構成の計算機システム1000について説明した。この計算機システム1000により、計算機システムにおいて、適切にスケールアップやスケールアウトすることができる。
【0059】
なお、本開示の実施形態における処理は、適切な処理が行われる範囲において、処理の順番が入れ替わってもよい。
【0060】
本開示の実施形態について説明したが、上述のリソース分離型計算機システム101、その他の制御装置は内部に、コンピュータシステムを有していてもよい。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。コンピュータの具体例を以下に示す。
【0061】
図10は、少なくとも1つの実施形態に係るコンピュータの構成を示す概略ブロック図である。コンピュータ5は、図10に示すように、CPU6、メインメモリ7、ストレージ8、インターフェース9を備える。
【0062】
例えば、上述のリソース分離型計算機システム101、その他の制御装置のそれぞれは、コンピュータ5に実装される。そして、上述した各処理部の動作は、プログラムの形式でストレージ8に記憶されている。CPU6は、プログラムをストレージ8から読み出してメインメモリ7に展開し、当該プログラムに従って上記処理を実行する。また、CPU6は、プログラムに従って、上述した各記憶部に対応する記憶領域をメインメモリ7に確保する。
【0063】
ストレージ8の例としては、HDD(Hard Disk Drive)、SSD(Solid State Drive)、磁気ディスク、光磁気ディスク、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、半導体メモリ等が挙げられる。ストレージ8は、コンピュータ5のバスに直接接続された内部メディアであってもよいし、インターフェース9または通信回線を介してコンピュータ5に接続される外部メディアであってもよい。また、このプログラムが通信回線によってコンピュータ5に配信される場合、配信を受けたコンピュータ5が当該プログラムをメインメモリ7に展開し、上記処理を実行してもよい。少なくとも1つの実施形態において、ストレージ8は、一時的でない有形の記憶媒体である。
【0064】
また、上記プログラムは、前述した機能の一部を実現してもよい。さらに、上記プログラムは、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるファイル、いわゆる差分ファイル(差分プログラム)であってもよい。
【0065】
本開示のいくつかの実施形態を説明したが、これらの実施形態は、例であり、開示の範囲を限定しない。これらの実施形態は、開示の要旨を逸脱しない範囲で、種々の追加、省略、置き換え、変更を行ってよい。
【0066】
なお、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
【0067】
(付記1)
制御を行うためのネットワークである制御ネットワークとデータの送受信を行うためのネットワークであるデータネットワークとを介して結合される複数のポッドで提供されるサービスを組み合わせて1つのサービスを実現するアプリケーションプログラムを実施する計算機システムであって、
前記複数のポッドの一部として任意のスマートリソース上にポッドを追加する第1処理部、
を備える、
計算機システム。
【0068】
(付記2)
前記第1処理部は、
前記制御ネットワークを介した制御に応じて前記任意のスマートリソース上のポッドの追加を実行する、
付記1に記載の計算機システム。
【0069】
(付記3)
追加した前記ポッドが不要となった場合に、不要となった前記ポッドを前記複数のポッドから除外する第2処理部、
を備える付記1または付記2に記載の計算機システム。
【0070】
(付記4)
前記第2処理部は、
前記制御ネットワークを介した制御に応じて、不要となった前記ポッドの除外を実行する、
付記3に記載の計算機システム。
【0071】
(付記5)
前記任意のスマートリソースは、ストレージ、GPU(Graphics Processing Unit)アクセラレータ、カメラ、またはセンサーであるI/O(Input/Output)デバイスと、メモリと、CPU(Central Processing Unit)とのうちの少なくとも1つを備える、
付記1から付記4の何れか1つに記載の計算機システム。
【0072】
(付記6)
制御を行うためのネットワークである制御ネットワークとデータの送受信を行うためのネットワークであるデータネットワークとを介して結合される複数のポッドで提供されるサービスを組み合わせて1つのサービスを実現するアプリケーションプログラムを実施する計算機システムが実行する処理方法であって、
前記複数のポッドの一部として任意のスマートリソース上にポッドを追加すること、
を含む計算機システムが実行する処理方法。
【0073】
(付記7)
制御を行うためのネットワークである制御ネットワークとデータの送受信を行うためのネットワークであるデータネットワークとを介して結合される複数のポッドで提供されるサービスを組み合わせて1つのサービスを実現するアプリケーションプログラムを実施する計算機システムに、
前記複数のポッドの一部として任意のスマートリソース上にポッドを追加すること、
を実行させるプログラム。
【符号の説明】
【0074】
5・・・コンピュータ
6・・・CPU
7・・・メインメモリ
8・・・ストレージ
9・・・インターフェース
100・・・第1処理部
101、111・・・リソース分離型計算機システム
102・・・制御ネットワーク
103・・・スマートリソース
104・・・サービス提供機能
105・・・ベースCPU(Central Processing Unit)
106・・・機能デバイス
107・・・データ共有機能
108・・・データネットワーク
112・・・アプリケーションプログラム
113・・・ミドルウェア/ライブラリ
114・・・OS(Operating System)
115・・・I/O(Input/Output)システムバス
116・・・デバイスプール
117・・・I/Oデバイス
121・・・リソース分離型サービス管理層
122・・・リソース分離型データ管理層
123・・・リソース分離型OS層
124・・・リソース分離型基盤ハードウェア層
125・・・リソース分離型ジョブスケジューラ
126・・・リソース分離型オーケストレータ
127・・・リソース分離型プロビジョナー
131・・・ソフトウェア部
132・・・サービスポッド
133・・・サービスコンテナ
134・・・データ共有コンテナ
135・・・マルチコンテナ制御
136・・・コンテナ基盤
1000・・・計算機システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10