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

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

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

特許7363167コンテナデーモン、情報処理装置、コンテナ型仮想化システム、パケット振り分け方法及びプログラム
<>
  • 特許-コンテナデーモン、情報処理装置、コンテナ型仮想化システム、パケット振り分け方法及びプログラム 図1
  • 特許-コンテナデーモン、情報処理装置、コンテナ型仮想化システム、パケット振り分け方法及びプログラム 図2
  • 特許-コンテナデーモン、情報処理装置、コンテナ型仮想化システム、パケット振り分け方法及びプログラム 図3
  • 特許-コンテナデーモン、情報処理装置、コンテナ型仮想化システム、パケット振り分け方法及びプログラム 図4
  • 特許-コンテナデーモン、情報処理装置、コンテナ型仮想化システム、パケット振り分け方法及びプログラム 図5
  • 特許-コンテナデーモン、情報処理装置、コンテナ型仮想化システム、パケット振り分け方法及びプログラム 図6
  • 特許-コンテナデーモン、情報処理装置、コンテナ型仮想化システム、パケット振り分け方法及びプログラム 図7
  • 特許-コンテナデーモン、情報処理装置、コンテナ型仮想化システム、パケット振り分け方法及びプログラム 図8
  • 特許-コンテナデーモン、情報処理装置、コンテナ型仮想化システム、パケット振り分け方法及びプログラム 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-10
(45)【発行日】2023-10-18
(54)【発明の名称】コンテナデーモン、情報処理装置、コンテナ型仮想化システム、パケット振り分け方法及びプログラム
(51)【国際特許分類】
   H04L 47/2475 20220101AFI20231011BHJP
   H04L 41/0895 20220101ALI20231011BHJP
   H04L 65/00 20220101ALI20231011BHJP
【FI】
H04L47/2475
H04L41/0895
H04L65/00
【請求項の数】 10
(21)【出願番号】P 2019141338
(22)【出願日】2019-07-31
(65)【公開番号】P2021027398
(43)【公開日】2021-02-22
【審査請求日】2022-06-07
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100106909
【弁理士】
【氏名又は名称】棚井 澄雄
(74)【代理人】
【識別番号】100134544
【弁理士】
【氏名又は名称】森 隆一郎
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100162868
【弁理士】
【氏名又は名称】伊藤 英輔
(72)【発明者】
【氏名】金海 好彦
【審査官】鈴木 香苗
(56)【参考文献】
【文献】特開2019-033351(JP,A)
【文献】特表2013-535711(JP,A)
【文献】特開2018-087917(JP,A)
【文献】特開2008-312094(JP,A)
【文献】特表2017-538987(JP,A)
【文献】米国特許出願公開第2018/0322299(US,A1)
【文献】米国特許出願公開第2006/0245358(US,A1)
【文献】中国特許出願公開第108881425(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 47/2475
H04L 41/0895
H04L 65/00
(57)【特許請求の範囲】
【請求項1】
情報処理装置が備えるコンテナデーモンであって、
コンテナから配信されるパケットの振り分け先の設定情報に基づいて、前記パケットを、前記コンテナが稼働する前記情報処理装置のOS又は前記OSに導入されたパケット高速処理層へ出力するパケット振分部、
を備えるコンテナデーモン。
【請求項2】
前記パケット高速処理層の前記OSへの導入の有無と、前記コンテナ別のパケット処理の優先度とに基づく前記振り分け先の設定情報を備える、
請求項1に記載のコンテナデーモン。
【請求項3】
請求項1または請求項2に記載のコンテナデーモンと、
OSと、
前記OSに導入されたパケット高速処理層と、
を備える情報処理装置。
【請求項4】
前記コンテナデーモンが、所定の優先度よりも高い優先度を有する前記パケットを前記パケット高速処理層へ出力し、
前記所定の優先度よりも低い優先度を有する前記パケットを前記OSへ出力する、
請求項3に記載の情報処理装置。
【請求項5】
前記パケット高速処理層が、前記パケットの処理について優先制御を行う機能を有する、
請求項3または請求項4に記載の情報処理装置。
【請求項6】
請求項1または請求項2に記載のコンテナデーモンと、
前記パケットの処理について優先制御を行う機能を有するOSと、
を備える情報処理装置。
【請求項7】
1台または複数台の請求項3から請求項6の何れか1項に記載の情報処理装置と、
前記情報処理装置にて動作するコンテナの制御を行うコンテナオーケストレータと、
を備え、
前記コンテナオーケストレータが、前記情報処理装置のコンテナデーモンに対して、前記パケットの振り分け先の設定を行う、
コンテナ型仮想化システム。
【請求項8】
前記コンテナオーケストレータが、前記情報処理装置ごとにパケット高速処理層が導入済みか否かの情報を記憶し、
パケットの高速化が必要なサービスを実行するコンテナを起動する場合、前記パケット高速処理層が導入済みの前記情報処理装置を選択して、選択した前記情報処理装置にて前記コンテナを起動する、
請求項7に記載のコンテナ型仮想化システム。
【請求項9】
情報処理装置が備えるコンテナデーモンが、
コンテナから配信されるパケットの振り分け先の設定情報に基づいて、前記パケットを、前記コンテナが稼働する前記情報処理装置のOS又は前記OSに導入されたパケット高速処理層へ出力する、
パケット振り分け方法。
【請求項10】
情報処理装置のコンピュータに、
コンテナから配信されるパケットの振り分け先の設定情報に基づいて、前記パケットを、前記コンテナが稼働する前記情報処理装置のOS又は前記OSに導入されたパケット高速処理層へ出力する処理、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、コンテナデーモン、情報処理装置、コンテナ型仮想化システム、パケット振り分け方法及びプログラムに関する。
【背景技術】
【0002】
1台の物理ホスト上のOS(Operating System)の仮想化を提供するコンテナ型仮想化と呼ばれる技術が知られている。コンテナ型仮想化では、1台の物理ホスト上で複数のコンテナを動作させることができる。例えば、音声通話を行うアプリケーションのコンテナと、映像を配信するアプリケーションのコンテナと、ドキュメント資料を配信するアプリケーションのコンテナとが動作する1台の物理ホストによって、テレビ会議サービスを提供することができる。快適なテレビ会議サービスを提供するためには、各コンテナの通信トラフィックに対して、配信コンテンツの特性に応じたQoS(Quality of Service)要件(例:遅延時間、ジッタ、帯域)を適用することが好ましい。つまり、コンテナ単位で異なるQoS要件を適用できる必要がある。
【0003】
コンテナ型仮想化環境に適用可能なQoS改善に関する技術の一例として、DPDK(Data Plane Development Kit)等のツールが提供されている。例えば、DPDKをコンテナに導入すると、そのコンテナの通信トラフィックが高速化される。さらに、DPDK QoS(Quality of Service)フレームワークをコンテナに導入すると、通信トラフィックの高速化だけでなく、コンテナ間でのパケット処理の優先度を調整できるようになる。例えば、上記のテレビ会議サービスの場合、音声通話のコンテナの通信トラフィックに関する優先度を他のコンテナ(映像、資料)よりも高く設定し、会議中の音声の遅延などを防ぐことが可能である。
【0004】
なお、特許文献1には、コンテナ仮想化技術に関し、自動的にコンテナを生成する技術について開示されている。例えば、特許文献1には、SLA(Service Level Agreement)に従った特性を持つコンテナを生成する例が開示されている。
また、特許文献2には、コンテナからの通信に関するパケットの処理を、ルックアップテーブルの設定に基づいて、CPU(Central Processing Unit)又はアクセラレータで行う技術が開示されている。特許文献2には、パケットフローの帯域に応じてルックアップテーブルに割り当てるリソースの容量を変更することが開示されている。例えば、ルックアップテーブルに割り当てるリソースの容量を少なくすれば、その分、通信処理にリソースを割り当てることができる。
また、特許文献3には、サービスレベルに応じた中継装置を利用してコンテンツデータの伝送を行う伝送管理システムが開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特表2019-503535号公報
【文献】特開2019-33351号公報
【文献】特開2017-38251号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、DPDKのようなパケット高速処理機能を全てのコンテナに対して導入することは現実的ではない。また、ハードウェア制限等の理由で、コンテナ環境内のすべての装置にパケット高速処理機能が導入できるとは限らない。コンテナ仮想化環境において、コンテナに手を加えることなく、ネットワークの高速化やQoS制御を実現する方法が求められている。特許文献1、3には、このような課題を解決する方法は開示されていない。また、特許文献2の技術は、アクセラレータの存在が前提となっており、また、ルックアップテーブル容量の割り当て処理に負荷を要する。
【0007】
そこでこの発明は、上述の課題を解決するコンテナデーモン、情報処理装置、コンテナ型仮想化システム、パケット振り分け方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【0008】
本発明の一態様によれば、情報処理装置が備えるコンテナデーモンであって、コンテナデーモンは、コンテナから配信されるパケットの振り分け先の設定情報に基づいて、前記パケットを、前記コンテナが稼働する前記情報処理装置のOS又は前記OSに導入されたパケット高速処理層へ出力するパケット振分部、を備える。
【0009】
また、本発明の他の一態様によれば、情報処理装置は、上記のコンテナデーモンと、OSと、前記OSに導入されたパケット高速処理層と、を備える。
【0010】
また、本発明の他の一態様によれば、情報処理装置は、上記のコンテナデーモンと、前記パケットの処理について優先制御を行う機能を有するOSと、を備える。
【0011】
また、本発明の他の一態様によれば、コンテナ型仮想化システムは、1台または複数台の上記の情報処理装置と、前記情報処理装置にて動作するコンテナの制御を行うコンテナオーケストレータと、を備え、前記コンテナオーケストレータが、前記情報処理装置のコンテナデーモンに対して、前記パケットの振り分け先の設定を行う。
【0012】
また、本発明の他の一態様によれば、パケット振り分け方法は、情報処理装置が備えるコンテナデーモンが、コンテナから配信されるパケットの振り分け先の設定情報に基づいて、前記パケットを、前記コンテナが稼働する前記情報処理装置のOS又は前記OSに導入されたパケット高速処理層へ出力する。
【0013】
また、本発明の他の一態様によれば、プログラムは、情報処理装置のコンピュータに、コンテナから配信されるパケットの振り分け先の設定情報に基づいて、前記パケットを、前記コンテナが稼働する前記情報処理装置のOS又は前記OSに導入されたパケット高速処理層へ出力する処理、を実行させる。
【発明の効果】
【0014】
本発明によれば、コンテナ型仮想化環境において、コンテナ側に手を加えることなく、SLAに応じたネットワークのQoS制御を実現することができる。
【図面の簡単な説明】
【0015】
図1】本発明の一実施形態によるコンテナ型仮想化システムの構成例を示す第1の図である。
図2】本発明の一実施形態によるコンテナ型仮想化システムの構成例を示す第2の図である。
図3】本発明の一実施形態による処理の一例を示す第1のフローチャートである。
図4】本発明の一実施形態による処理の一例を示す第2のフローチャートである。
図5】本発明の一実施形態によるパケット振り分けの設定例を示す図である。
図6】本発明の一実施形態によるコンテナ型仮想化システムの適用例を示す第1の図である。
図7】本発明の一実施形態によるコンテナ型仮想化システムの適用例を示す第2の図である。
図8】本発明の一実施形態によるコンテナデーモンの最小構成を示す図である。
図9】本発明の一実施形態におけるコンテナ型仮想化システムのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0016】
以下、一実施形態に係るコンテナ型仮想化システムについて図1図9を参照して説明する。
(構成の説明)
図1は、本発明の一実施形態によるコンテナ型仮想化システムの構成例を示す第1の図である。
図1に示すようにコンテナ型仮想化システム1は、コンテナオーケストレータ10と、コンテナ動作装置20,20a,20b,20cと、中継装置30とを含む。
コンテナオーケストレータ10は、Kubernetesのマスタ機能等のソフトウェアがインストールされたコンピュータである。コンテナ動作装置20~20cは、Kubernetesのノード機能やDocker等のソフトウェアがインストールされたコンピュータである。コンテナオーケストレータ10はマスタ、コンテナ動作装置20~20cはノードである。コンテナ動作装置20~20cでは、コンテナが動作する。中継装置30は、例えば、HAproxy等のソフトウェアがインストールされたコンピュータである。コンテナオーケストレータ10とコンテナ動作装置20~20cのそれぞれとはメッセージパスNW1(マネジメントプレイン)で通信可能に接続されている。コンテナオーケストレータ10と中継装置30とはメッセージパスNW0(マネジメントプレイン)で通信可能に接続されている。メッセージパスNW0、NW1には制御情報が流れる。また、コンテナ動作装置20~20cと中継装置30とは、ネットワークNW2(データプレイン)で通信可能に接続されている。また、中継装置30は、外部ネットワークNW3と接続されている。例えば、外部ネットワークNW3に接続されたPC、タブレット、スマートフォンなどの各種デバイスからコンテナ動作装置20等で稼働するコンテナへアクセスすると中継装置30は、そのアクセスを仲介し、コンテナ動作装置20等で稼働するコンテナとの通信を実現にする。
【0017】
コンテナオーケストレータ10は、指示部11と、選択部12と、記憶部13と、を備える。指示部11は、コンテナ動作装置20~20cへ、パケットの振り分けに関する指示を行う。選択部12は、利用者から要求されたサービスを提供するコンテナを起動するコンテナ動作装置を、コンテナ動作装置20~20cの中から選択する。記憶部13は、コンテナ動作装置20~20cのそれぞれについて、パケット高速処理機能が導入されているか否かの情報を記憶している。例えば、記憶部13には、コンテナ動作装置20にはパケット高速処理機能が導入済みであり、コンテナ動作装置20a~20cにはパケット高速処理機能が未導入であるとの情報が格納されている。
【0018】
コンテナ動作装置20は、コンテナ群21-1,21-2,21-3と、コンテナデーモン22と、パケット高速処理層24と、OS25と、NIC(Network Interface Card)28と、指定NIC29と、を備える。
コンテナ群21-1~21-3は、それぞれ1つ又は複数のコンテナである。例えば、コンテナ群21-1ではアプリケーション211、コンテナ群21-2ではアプリケーション212、コンテナ群21-3ではアプリケーション213が動作する。
コンテナデーモン22は、コンテナ動作装置20上で動作するコンテナ群21-1~21-3を管理する。例えば、コンテナデーモン22は、コンテナ群21-1~21-3に対する各種コマンドを受け付け、コンテナ群21-1~21-3の起動や停止などを行う。また、コンテナデーモン22は、パケット振分部23を備える。パケット振分部23は、コンテナオーケストレータ10の指示部11による指示に従って、コンテナ群21-1~21-3が配信するパケットを、OS25かパケット高速処理層24の何れかに振り分ける。例えば、アプリケーション211、212が提供するサービスが、アプリケーション213が提供するサービスよりも優先的である場合、パケット振分部23は、コンテナ群21-1,21-2が配信するパケットをパケット高速処理層24へ振り分け、コンテナ群21-3が配信するパケットをOS25へ振り分ける。
【0019】
パケット高速処理層24は、DPDK等のパケット処理を高速化するソフトウェアである。本実施形態では、一例としてQoS制御が可能なソフトウェア(例えば、DPDK QoSフレームワーク)がコンテナ動作装置20にインストールされているとする。パケット高速処理層24は、OS25が提供するオーバーヘッドの大きいパケット処理をバイパスして直接指定NIC29にアクセスして通信を行う。この為、ネットワークの高速化が図れる。また、パケット高速処理層24は、QoS制御機能241を備えている。例えば、コンテナ群21-1の通信トラフィックの優先度が、コンテナ群21-2の通信トラフィックよりも優先度が高ければ、QoS制御機能241は、コンテナ群21-1が配信するパケットを、コンテナ群21-2が配信するパケットよりも優先して処理する。指定NIC29は、パケット高速処理層24用に搭載されており、パケット高速処理層24は、指定NIC29を占有する。
【0020】
OS25は、OVS26と、カーネル27とを備える。OVS26は、仮想スイッチである。カーネル27は、一般的なパケット処理を行う。コンテナデーモン22からOS25へ振り分けられたパケットは、カーネル27で処理されてNIC28を介して配信される。カーネル27によるパケット処理は、パケット高速処理層24よる処理よりも高負荷で時間が掛かる。なお、カーネル27は、パケットヘッダのDSCP(Differentiated Services Code Point)やIP Precedenceの値を変更する機能(カラーリング機能)を備えていてもよい。DSCPやIP Precedenceの値を変更することにより、パケット処理の優先度を変更することができるため、OS25を介してパケット処理を行う場合でもQoS制御が可能である。
【0021】
図2は、本発明の一実施形態によるコンテナ型仮想化システムの構成例を示す第2の図である。図1では、パケット高速処理層24を備えるコンテナ動作装置20の構成について説明した。次に図2を参照して、パケット高速処理層24が未導入のコンテナ動作装置20aの構成について説明する。
【0022】
コンテナ動作装置20aは、コンテナ群21-1a,21-2a,21-3aと、コンテナデーモン22aと、OS25aと、NIC28aと、を備える。コンテナデーモン22aはパケット振分部23aを備え、OS25aはOVS26a、カーネル27aを備えている。コンテナ動作装置20aは、図1のパケット高速処理層24および指定NIC29に相当する構成を備えていない。
実際のコンテナ型仮想化環境では、ハードウェアの制約やコストなどの様々な理由によってパケット高速処理層24が導入できない、又は、導入の予定があっても未だ導入していない場合がある。コンテナ動作装置20aは、そのような場合のコンテナホストの構成例である。
【0023】
コンテナ群21-1a~21-3a、コンテナデーモン22a、パケット振分部23a、OS25a、OVS26a、カーネル27a、NIC28aは、それぞれ、図1で説明したコンテナ群21-1~21-3、コンテナデーモン22、パケット振分部23、OS25、OVS26、カーネル27、NIC28と同様の機能を有している。
図2の構成の場合、例えば、アプリケーション211aが提供するサービスの優先度が最も高く、次にアプリケーション212aの優先度が高く、次にアプリケーション213aの優先度が高い場合、コンテナオーケストレータ10の指示部11は、コンテナ群21-1a~21-3aが配信するパケットを全てOS25aへ振り分けることと、上記の優先度でコンテナ群21-1a~21-3aが配信するパケットを処理することをコンテナデーモン22aへ指示する。
【0024】
パケット振分部23aは、指示部11による指示に従って、コンテナ群21-1a~21-3aが配信するパケットを、OS25aに振り分ける。また、OS25aでは、カーネル27aが指示部11による指示に従って、コンテナ群21-1aが配信するパケットが最優先、コンテナ群21-2aが配信するパケットが2番目の優先、コンテナ群21-3aが配信するパケットが3番目に優先的に処理されるようパケットのヘッダを書き換える。これにより、パケット高速処理層24が導入されていないコンテナ動作装置についても、通信トラフィックのQoS制御が可能になる。
【0025】
(動作)
次に図3図5を参照してコンテナ型仮想化システム1の動作について説明する。
図3は、本発明の一実施形態による処理の一例を示す第1のフローチャートである。
図5は、本発明の一実施形態によるパケット振り分けの設定例を示す図である。
まず、中継装置30が利用者トラフィックを受信する(ステップS1)。利用者トラフィックには、利用者が要求するアプリケーションの種類が含まれている。例えば、アプリケーション211、アプリケーション212、アプリケーション213が要求されたとする。中継装置30は、利用者から受信した情報を、メッセージパスNW0を通じてコンテナオーケストレータ10へ通知する(ステップS2)。
【0026】
(例1)
コンテナオーケストレータ10の記憶部13には、予めアプリケーション毎に通信トラフィックの優先度が設定された情報が登録されている。例えば、アプリケーション211、アプリケーション212、アプリケーション213には、それぞれ優先度1、2、3が設定されている(優先度1が最も優先度が高い)。
また、記憶部13には、コンテナ動作装置20~20cごとにパケット高速処理層24の導入の有無が登録されている。例えば、コンテナ動作装置20はパケット高速処理層24が導入済みで、他は未導入であることが登録されている。
また、記憶部13には、優先度1、2のアプリケーションの通信トラフィックについては、パケット高速処理層24で処理させるようにするとの設定が登録されている。
これらの設定は、予め管理者がコンテナオーケストレータ10へ登録したものである。
【0027】
コンテナオーケストレータ10の選択部12は、これらの設定に基づいて、コンテナ動作装置20~20cの中から、アプリケーション211~213の優先度の要件に合うコンテナ動作装置20を特定する(ステップS3)。
【0028】
次にコンテナオーケストレータ10は、特定したコンテナ動作装置20にアプリケーション211が動作するコンテナ群21-1、アプリケーション212が動作するコンテナ群21-2、アプリケーション213が動作するコンテナ群21-3をデプロイする(ステップS4)。このとき、指示部11は、コンテナデーモン22へ、コンテナ群21-1~21-3が配信するパケットの振り分け方法およびQoS制御について指示する設定を行う。図5(a)に設定内容を例示する。この例の場合、(1)コンテナ群21-1およびコンテナ群21-2が配信するパケットをパケット高速処理層24へ出力すること、(2)コンテナ群21-1が配信するパケットの処理に優先度1を設定し、コンテナ群21-2が配信するパケットの処理に優先度2を設定すること、(3)コンテナ群21-3が配信するパケットをOS25へ出力すること、を指示する設定を行う。この設定は、例えば、コンテナデーモン22が参照する設定ファイルとして、コンテナ動作装置20に保存される。
なお、指示部11は、コンテナ群21-3が配信するパケットについても、パケット高速処理層24へ出力するよう指示してもよい。
【0029】
(例2)
また、他の動作例として、ステップS1にて利用者からアプリケーション211a~213aが要求され、コンテナオーケストレータ10の記憶部13には、アプリケーション211a、アプリケーション212a、アプリケーション213aには、それぞれ優先度4、5、6が設定されているとする(優先度4が最も優先度が高い)。この場合、優先度1,2が設定されたアプリケーションが要求されていないことから、パケット高速処理層24が導入されていないコンテナ動作装置20a~20cの選択が可能である。コンテナオーケストレータ10の選択部12は、コンテナ動作装置20~20cの中から、例えば、コンテナ動作装置20aを特定する(ステップS3)。
【0030】
次にコンテナオーケストレータ10は、特定したコンテナ動作装置20aにアプリケーション211aが動作するコンテナ群21-1a、アプリケーション212aが動作するコンテナ群21-2a、アプリケーション213aが動作するコンテナ群21-3aをデプロイする(ステップS4)。このとき、指示部11は、コンテナデーモン22aへ、コンテナ群21-1a~21-3aが配信するパケットの振り分け方法およびQoS制御について指示する設定を行う。図5(b)に設定内容を例示する。この例の場合、(1)コンテナ群21-1a~21-3aが配信するパケットをOS25aへ出力すること、(2)コンテナ群21-1aが配信するパケットの処理に優先度4を設定し、コンテナ群21-2aが配信するパケットの処理に優先度5を設定し、コンテナ群21-3aが配信するパケットの処理に優先度6を設定すること、を指示する設定を行う。この設定は、例えば、コンテナデーモン22が参照する設定ファイルとしてコンテナ動作装置20に保存される。
【0031】
次に実際にコンテナ群21-1等からパケットが配信される場面でのパケットの振り分け処理について、図4を参照して説明する。
図4は、本発明の一実施形態による処理の一例を示す第2のフローチャートである。
(例1の場合)
まず、コンテナ群21-1~21-3からそれぞれ独立してパケットが配信される。コンテナデーモン22は、配信されたパケットを取得する(ステップS11)。
次にコンテナデーモン22のパケット振分部23は、パケット高速処理層24の有無によって動作する(ステップS12)。パケット高速処理層24ありの場合、パケット振分部23は、指示部11の設定に基づいて、パケット高速処理層24に振り分けるか、OS25へ振り分けるかの調整を行う(ステップS13)。
【0032】
上記の例1の場合、パケット振分部23は、コンテナ群21-1から配信されたパケットには優先度1を付し、コンテナ群21-2から配信されたパケットには優先度2を付して、パケット高速処理層24へ出力する。パケット高速処理層24では、QoS制御機能241が優先制御を行う(ステップS14)。QoS制御機能241は、優先度1が付されたパケットをより優先的に処理する。パケット高速処理層24は、設定された優先度に応じて指定NIC29を通じて、コンテナから配信されたパケットを利用者側へ配信する(ステップS15)。
【0033】
また、例えば、パケット振分部23は、コンテナ群21-3から配信されたパケットを、OS25へ出力する。OS25では、カーネル27が、所定のパケット処理を行って、NIC28を通じて、コンテナから配信されたパケットを利用者側へ配信する(ステップS16)。
【0034】
(例2の場合)
コンテナデーモン22aは、コンテナ群21a-1~21-3aから配信されたパケットを取得する(ステップS11)。
次にコンテナデーモン22aのパケット振分部23aは、パケット高速処理層の有無によって動作する(ステップS12)。パケット高速処理層が無い場合、パケット振分部23aは、指示部11からの設定に基づいてパケットをOS25へ振り分けるよう調整する(ステップS17)。例えば、上記の例2の場合、パケット振分部23aは、コンテナ群21-1aから配信されたパケットには優先度4を付し、コンテナ群21-2aから配信されたパケットには優先度5を付し、コンテナ群21-3aから配信されたパケットには優先度6を付してOS25aへ出力する。OS25aでは、カーネル27aが所定のパケット処理を行う。また、カーネル27aは優先制御を行う(ステップS18)。例えば、カーネル27aは、コンテナデーモン22aから指示された優先度に従って、パケットヘッダのIP Precedence又はDSCPの値を書き換えて、パケットの優先度を変更する。カーネル27aは、優先制御後のパケットを、NIC28を通じて利用者側へ配信する(ステップS19)。
【0035】
本実施形態によれば、コンテナ動作装置20のコンテナ群21-1等に手を加えることなく、コンテナオーケストレータ10に必要な設定を行い、コンテナデーモン22を導入するだけで、コンテナから配信されるパケットの高速化やQoS制御が可能になる。
例えば、パケット高速処理層24が導入されたコンテナ動作装置20の場合、コンテナ動作装置20で動作する所望のコンテナ群21-1等について、パケット高速処理層24への振り分けを設定するだけで、通信トラフィックを高速化することができる。さらに優先度の設定を行うことで、コンテナ間の優先度を調整することができる。
【0036】
また、パケット高速処理層24を導入していないコンテナ動作装置20aの場合、コンテナ群21-1a等についてOS25aへ振り分けるよう設定し、コンテナ群21-1a~21-3aの優先度の設定を行うことで、コンテナ間の通信トラフィックの優先度を調整することができる。
【0037】
これにより、パケット高速処理層24の導入の有無にかかわらず、コンテナ型仮想化システム1内で動作するコンテナの通信トラフィックについてSLAに応じたQoS制御を行うことができる。また、アプリケーションの開発者は、パケット高速処理層24をコンテナへ導入することを考慮せずにアプリケーションの開発に専念できる。また、アプリケーションの開発から提供までを迅速に行うことができる。
【0038】
(実施例1)
図6は、本発明の一実施形態によるコンテナ型仮想化システムの適用例を示す第1の図である。
図6に、音声通話を行うためのアプリケーション211が動作するコンテナ群21-1、映像配信を行うアプリケーション212が動作するコンテナ群21-2、資料の配信を行うアプリケーション213が動作するコンテナ群21-3を含むコンテナ動作装置20によって、テレビ会議サービスを提供する実施例を示す。
アプリケーション211にはGold、アプリケーション212にはSilver、アプリケーション213にはBronzeの各SLAレベルが設定されている。例えば、コンテナオーケストレータ10は、図5(a)に例示するような設定をコンテナデーモン22に対して行う。コンテナ群21-1から配信される音声データと、コンテナ群21-2から配信される映像データは、パケット高速処理層24を経由して利用者側へ配信される。コンテナ群21-3から配信される資料のデータは、OS25を経由して利用者側へ配信される。
会議では音声データを確実に配信するために、音声データを最優先(Gold)として処理し低ジッタ・低遅延の配信を実現する。映像ストリーミングを中間の優先度(Silver)とし、音声と映像の優先順位をパケット高速処理層24のQoS制御機能241で差別化するが、音声データは映像ストリーミングよりも高優先とする。資料共有の品質の劣化は、会議への影響が小さいため、優先度低(Bronze)とする。
【0039】
(実施例2)
図7は、本発明の一実施形態によるコンテナ型仮想化システムの適用例を示す第2の図である。
図7に、IOT(Internet of Things)データの処理、加工サービスへの適用例を示す。
人命にかかわる処理や加工速度の低下が許容されない医療用データの処理を行うアプリケーション211にはGold、タイムラグが発生しても問題にはならないが、例えば、GPSが提供する移動中の移動体の位置データの処理など、ある程度のリアルタイム性が求められるアプリケーション212にはSilver、気象データ等のある程度時間が経った後のデータを処理するアプリケーション213にはBronzeの各SLAレベルが設定されている。
この場合も、コンテナオーケストレータ10は、図5(a)に例示するような設定をコンテナデーモン22に対して行う。コンテナ群21-1から配信される医療用データと、コンテナ群21-2から配信される位置データは、パケット高速処理層24を経由して利用者側へ配信される。コンテナ群21-3から配信される気象データは、OS25を経由して利用者側へ配信される。
この例のように独立したサービスを各コンテナのアプリケーションから提供する場合であっても、各アプリケーションのサービスレベルに応じて、コンテナ単位での通信トラフィックの優先制御を行うことが可能である。
【0040】
アプリケーションのマイクロサービス化により、アプリケーションの開発から提供までが迅速になってきている。しかし、アプリケーションの開発と提供に主眼が置かれており、ネットワークと関連付けたSLAの提供は後回しになっている。本実施形態によれば、迅速なアプリケーション開発と迅速なサービス提供というコンテナ型仮想化の利点を損なわず、SLAを満たすサービスの提供も同時に実現できる。また、コンテナ環境内のパケット高速処理層の有無に関わらず、パケット処理を優先制御することでSLAを満たすサービスを提供することができる。また、コンテナ環境内にパケット高速処理層を適用する際に発生する手間や煩雑な運用管理を省くことができる。
【0041】
図8は、本発明の一実施形態によるコンテナデーモンの最小構成を示す図である。
図8に示すようにコンテナデーモン22は、少なくともパケット振分部23を備える。
パケット振分部23は、コンテナから配信されるパケットについての振り分け先の設定に基づいて、前記パケットを、前記コンテナが稼働するOS又はパケット高速処理層へ出力する。コンテナデーモン22は、パケット高速処理層の有無と、コンテナ別のパケット処理の優先度とに基づくパケットの振り分け先の設定情報を備えていてもよい。
【0042】
図9は、本発明の一実施形態におけるコンテナ型仮想化システムのハードウェア構成の一例を示す図である。
コンピュータ900は、CPU901、主記憶装置902、補助記憶装置903、入出力インタフェース904、通信インタフェース905を備える。上述のコンテナ動作装置20,20a~20cは、コンピュータ900に実装される。そして、上述した各機能部の動作は、プログラムの形式で補助記憶装置903に記憶されている。CPU901は、プログラムを補助記憶装置903から読み出して主記憶装置902に展開し、当該プログラムに従って上記処理を実行する。また、CPU901は、プログラムに従って、記憶領域を主記憶装置902に確保する。また、CPU901は、プログラムに従って、処理中のデータを記憶する記憶領域を補助記憶装置903に確保する。
【0043】
なお、少なくとも1つの実施形態において、補助記憶装置903は、一時的でない有形の媒体の一例である。一時的でない有形の媒体の他の例としては、入出力インタフェース904を介して接続される磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリ等が挙げられる。また、このプログラムが通信回線によってコンピュータ900に配信される場合、配信を受けたコンピュータ900が当該プログラムを主記憶装置902に展開し、上記処理を実行しても良い。また、当該プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、当該プログラムは、前述した機能を補助記憶装置903に既に記憶されている他のプログラムとの組み合わせで実現するもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0044】
その他、本発明の趣旨を逸脱しない範囲で、上記した実施の形態における構成要素を周知の構成要素に置き換えることは適宜可能である。また、この発明の技術範囲は上記の実施形態に限られるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【符号の説明】
【0045】
1・・・コンテナ型仮想化システム
10・・・コンテナオーケストレータ
11・・・指示部
12・・・選択部
13・・・記憶部
20,20a,20b,20c・・・コンテナ動作装置
21-1,21-2,21-3、21-1a,21-2a,21-3a・・・コンテナ群
22、22a・・・コンテナデーモン
23、23a・・・パケット振分部
24・・・パケット高速処理層
241・・・QoS制御機能
25、25a・・・OS
26、26a・・・OVS
27、27a・・・カーネル
28、28a・・・NIC
29・・・指定NIC
30・・・中継装置
NW0、NW1・・・メッセージパス
NW2・・・ネットワーク
NW3・・・外部ネットワーク
900・・・コンピュータ
901・・・CPU
902・・・主記憶装置
903・・・補助記憶装置
904・・・入出力インタフェース
905・・・通信インタフェース
図1
図2
図3
図4
図5
図6
図7
図8
図9