JP2017037403A - 計算機システム及びコンテナ管理方法 - Google Patents

計算機システム及びコンテナ管理方法 Download PDF

Info

Publication number
JP2017037403A
JP2017037403A JP2015157244A JP2015157244A JP2017037403A JP 2017037403 A JP2017037403 A JP 2017037403A JP 2015157244 A JP2015157244 A JP 2015157244A JP 2015157244 A JP2015157244 A JP 2015157244A JP 2017037403 A JP2017037403 A JP 2017037403A
Authority
JP
Japan
Prior art keywords
container
physical server
resource amount
new
control unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015157244A
Other languages
English (en)
Other versions
JP6374845B2 (ja
Inventor
敦行 乾
Atsuyuki Inui
敦行 乾
良一 植田
Ryoichi Ueda
良一 植田
智也 太田
Tomoya Ota
智也 太田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2015157244A priority Critical patent/JP6374845B2/ja
Publication of JP2017037403A publication Critical patent/JP2017037403A/ja
Application granted granted Critical
Publication of JP6374845B2 publication Critical patent/JP6374845B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】一つの物理サーバのコンテナの集約度を高める。
【解決手段】管理サーバ101及び複数の仮想計算機150が稼動する物理サーバ102を備えるシステムであって、物理サーバ102はOS160が実行する仮想計算機150を生成する仮想化管理部140を有する。OS160は、コンテナ170を生成するコンテナ実行部161を含む。管理サーバ101はコンテナの配置を制御するコンテナ制御部120を有する。コンテナ制御部120は、OSの種別及び要求リソース量を含む新規コンテナの追加要求を受け付け、追加要求に含まれるOSの種類と同一種類のOSを実行する候補VMを特定する。候補VMに要求リソース量分の空きリソースが存在しない場合、当該候補VMが稼動する対象物理サーバを特定し、対象物理サーバ上の複数のVMの各々に割り当てられる計算機リソース量を調整するリソース調整処理を実行し、候補VMに新規コンテナを追加する。
【選択図】図1

Description

本発明は、仮想化環境において性能保証型のコンテナ及びベストエフォート型のコンテナを配置する計算機システムに関する。
コンテナ技術は、コンテナ及びホストOSがカーネルを共有することによってオーバーヘッドを少ない軽量な仮想化環境を実現する。コンテナはホストOSとカーネルを共有するため、コンテナにはホストOSと同じOS環境が提供される。その結果、ホストOS上には同一のOS種別の環境のみで構成される。
一般的には、OSの種別の数だけ物理サーバが必要となる。そのため、コストが高く、また耐障害性についても問題がある。そのため、仮想化されたサーバ環境を適用して必要な物理サーバの数を削減する方法が考えられる(例えば、特許文献1を参照)。
特開2011−128967号公報
複数のOS種別のコンテナを配備するためには、一つの物理サーバ上に、OS種別ごとに仮想マシンを稼働させ、各仮想マシン上にコンテナを配備する。前述したシステム環境では、計算機リソースが各仮想マシンに分割して割り当てられるため、あるOS種別の仮想マシンのリソース量が不足し、別のOS種別の仮想マシンのリソース量に余剰が生じる場合がある。特に、性能を保証する性能保証型のコンテナを配備する場合に、前述したような計算機リソース量の問題が顕著になる。
性能保証型のコンテナ及びベストエフォート型のコンテナが混在するシステムにおいて、可能な限り少ない物理サーバを用いて多くのコンテナを配置する必要がある。すなわち、本発明は、異なるOS上で稼働する複数のコンテナの高密度な配置を実現することを目的とする。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、管理サーバ、及び複数の仮想計算機が稼動する少なくとも一つの物理サーバを備える計算機システムであって、前記管理サーバは、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、前記第1のプロセッサに接続される第1のネットワークインタフェースを有し、前記少なくとも一つの物理サーバは、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、前記第2のプロセッサに接続される第2のネットワークインタフェースを有し、前記少なくとも一つの物理サーバは、当該物理サーバが有する計算機リソースを分割することによって、オペレーティングシステムを実行する仮想計算機を少なくとも一つ生成する仮想化管理部を有し、前記オペレーティングシステムは、ユーザ空間を分割することによって生成されたアプリケーション環境であるコンテナを少なくとも一つ生成するコンテナ実行部を含み、前記管理サーバは、前記計算機システムに新たに追加する前記コンテナの配置を制御するコンテナ制御部を有し、前記コンテナ制御部は、オペレーティングシステムの種別及び新規コンテナに割り当てる計算機リソース量である第1の要求リソース量を含む新規コンテナの追加要求を受け付け、前記新規コンテナの追加要求に含まれる前記オペレーティングシステムの種類と同一種類のオペレーティングシステムを実行する候補仮想計算機を特定し、前記候補仮想計算機に前記第1の要求リソース量分の空きリソースが存在するか否かを判定し、前記候補仮想計算機に前記第1の要求リソース量分の空きリソースが存在しない場合、当該候補仮想計算機が稼動する物理サーバである対象物理サーバを特定し、前記対象物理サーバ上の前記複数の仮想計算機の各々に割り当てられる計算機リソース量を調整するリソース調整処理を実行し、前記候補仮想計算機に前記新規コンテナを追加することを特徴とする。
本発明によれば、新規コンテナを追加する場合、新たな物理サーバを追加することなく、既存の物理サーバ上に新規コンテナを追加できる。すなわち、異なるOS上で稼働する複数のコンテナの高密度な配置を実現できる。前述した以外の課題、構成及び効果は、以下の実施例の説明によって明らかにされる。
実施例1のコンテナ管理システムの構成例を示す図である。 実施例1の物理サーバ管理テーブルの構成例を示す図である。 実施例1の仮想マシン管理テーブルの構成例を示す図である。 実施例1のコンテナ管理テーブルの構成例を示す図である。 実施例1のコンテナ制御部が実行する処理を説明するフローチャートである。 実施例1のコンテナ制御部が実行するリソース調整処理の一例を示すフローチャートである。 実施例1のコンテナ制御部が実行する物理サーバの追加処理の一例を示すフローチャートである。 実施例1のリソース調整処理を伴う新規コンテナの追加処理が実行された後の仮想マシン管理テーブルの一例を示す図である。 実施例1の物理サーバの追加処理を伴う新規コンテナの追加処理が実行された後の仮想マシン管理テーブルの一例を示す図である。
本発明の実施例を図面に基づいて説明する。
図1は、実施例1のコンテナ管理システムの構成例を示す図である。
実施例1のコンテナ管理システムは、管理サーバ101、一つ以上の物理サーバ102、及びクライアント端末103から構成される。管理サーバ101及び一つ以上の物理サーバ102は、ネットワークを介して互いに接続され、また、管理サーバ101及びクライアント端末103は、ネットワークを介して互いに接続される。なお、物理サーバ102及びクライアント端末103は、直接管理サーバ101と接続されてもよい。
物理サーバ102上では、ハイパバイザ140によって管理される一つ以上の仮想マシン(VM)150が稼働し、さらに、一つのVM150が実行するOS160上に一つ以上のコンテナ170が稼働する。
管理サーバ101は、コンテナ170の配置を管理する。管理サーバ101は、CPU110、メモリ111、記憶装置112、及びNIC113を備える。
CPU110は、メモリ111に格納されるプログラムを実行する。CPU110がプログラムを実行することによって、管理サーバ101の機能を実現できる。以下では、プログラムを主体に処理を説明する場合、当該プログラムがCPU110によって実行されていることを示す。
メモリ111は、CPU110によって実行されるプログラム及び当該プログラムの実行に必要な情報を格納する。また、メモリ111は、プログラムが実行する処理に使用するワークエリアを含む。本実施例のメモリ111は、コンテナ制御部120及び物理サーバ追加部121を実現するプログラムを格納する。また、メモリ111は、物理サーバ管理テーブル122、仮想マシン管理テーブル123、及びコンテナ管理テーブル124を格納する。
コンテナ制御部120は、新たに追加されるコンテナ170の配置を制御する。コンテナ制御部120が実行する処理の詳細は、図5、図6、及び図7を用いて説明する。物理サーバ追加部121は、新たなコンテナ170を配置する物理サーバ102の追加処理を制御する。
物理サーバ管理テーブル122は、物理サーバ102の計算機リソース量等を管理する情報である。物理サーバ管理テーブル122の詳細は図2を用いて説明する。仮想マシン管理テーブル123は、各物理サーバ102上のVM150を管理する情報である。仮想マシン管理テーブル123の詳細は図3を用いて説明する。コンテナ管理テーブル124は、コンテナ170を管理する情報である。コンテナ管理テーブル124の詳細は図4を用いて説明する。
記憶装置132は、各種情報を格納する記憶媒体であり、例えば、HDD(Hard Disk Drive)及びSSD(Solid State Drive)等が考えられる。なお、メモリ111に格納されるプログラム及び情報は、記憶装置132に格納されてもよい。この場合、CPU110は、必要に応じて記憶装置112からプログラム及び情報を読み出し、メモリ111上にロードする。NIC113は、ネットワークを介して他の装置と通信するためのインタフェースである。
物理サーバ102は、一つ以上のコンテナ170が稼働する計算機である。物理サーバ102は、計算機リソースとしてCPU130、メモリ131、記憶装置132、及びNIC133を備える。CPU130、メモリ131、記憶装置132、及びNIC133は、CPU110、メモリ111、記憶装置112、及びNIC113と同一のものである。
物理サーバ102のメモリ131には、ハイパバイザ140、OS160、及びコンテナ170を実現するプログラムが格納される。
ハイパバイザ140は、物理サーバ102の計算機リソースを論理的に分割することによって、一つ以上のVM150を生成する。ハイパバイザ140は、図示しないVM150の管理情報を保持する。当該情報は、VM150の識別子、VM150に割り当てられる計算機リソース量、及び稼働状態等の情報を含む。管理サーバ101は、周期的又は新規コンテナ170の追加時等、所定のタイミングでハイパバイザ140と通信することによって、仮想マシン管理テーブル123を更新する。
VM150は、仮想的な計算機であり、ハイパバイザ140によって起動が指示された場合、OS160を実行する。OS160上では一つ以上のコンテナ170が実行される。
コンテナ170は、アプリケーションを実行するユーザ空間を分割等することによって生成されたアプリケーション環境である。各コンテナ170には、プロセス管理情報、ファイルシステム、ネットワーク設定、計算機リソースが独立に与えられる。コンテナ170内では一つ以上のアプリケーションが実行される。一つのコンテナ170内で実行されるアプリケーションと、他のコンテナ170内で実行されるアプリケーションとは、互いに干渉しない。一方、各コンテナ170は、OS160のカーネル空間を共有する。
実施例1のOS160は、コンテナ実行部161を含む。なお、OS160は、図示しない他の機能部を含んでもよいし、また、図示しない情報を保持してもよい。
コンテナ実行部161は、コンテナ170を管理する。コンテナ実行部161は、図示しないコンテナ170の管理情報を保持する。当該情報には、コンテナ170の識別子、コンテナ170の種別、及びコンテナ170の稼働状態等の情報を含む。管理サーバ101は、周期的に又は新規コンテナ170の追加時等、所定のタイミングでハイパバイザ140を介してコンテナ実行部161と通信することによって、コンテナ管理テーブル124を更新する。
本実施例では、性能保証型及びベストエフォート型の二つの種類のコンテナ170を設定することができる。
コンテナ実行部161は、要求される性能を維持できるように性能保証型のコンテナ170に対する計算機リソースの割り当てを制御する。すなわち、性能保証型のコンテナ170には常に一定以上の計算機リソースが割り当てられる。一方、コンテナ実行部161は、ベストエフォート型のコンテナ170に対しては性能を維持するための計算機リソースの割り当ての制御は行わない。コンテナ実行部161は、図示しない管理情報に基づいて、コンテナ170に対する計算機リソースの割り当てを制御する。
実施例1では、コンテナ170に割り当てる計算機リソースとしてCPU130のコア数を例に説明する。なお、CPU130の周波数、メモリ131の容量、IO性能、及びネットワーク性能等の指標、並びに、これらを組み合わせた指標を用いても同様の効果を得ることができる。
図2は、実施例1の物理サーバ管理テーブル122の構成例を示す図である。
物理サーバ管理テーブル122は、物理サーバID201及びリソース202を含む。物理サーバID201は、コンテナ管理システムに配置された物理サーバ102を一意に識別するための識別子である。リソース202は、コンテナ170に割り当て可能な計算機リソースの総量である。
図3は、実施例1の仮想マシン管理テーブル123の構成例を示す図である。
仮想マシン管理テーブル123は、物理サーバID301、仮想マシンID302、OS種別303、仮想リソース304、最小リソース305、及び割当リソース306を含む。
物理サーバID301は物理サーバID201と同一のものである。仮想マシンID302は、一つの物理サーバ102上で稼働するVM150を一意に識別するための識別子である。なお、異なる物理サーバ102上のVM150の識別子は重複してもよい。OS種別303は、VM150上で実行されるOS160の種別を示す。
仮想リソース304は、VM150に対して割り当てられる計算機リソース量を示す。最小リソース305は、VM150に対して割当が保証される計算機リソース量を示す。
本実施例では、ハイパバイザ140は、性能保証型のコンテナ170に追加する計算機リソース量を確保するために、計算機リソース量をVM150に余剰に割り当てる。そのため、全てのVM150の仮想リソース304の合計値は、物理サーバ102が有する計算機リソース量より大きくなる。したがって、仮想リソース304に設定された計算機リソース量を必ずしも確保できない場合がある。前述したような場合であっても、最大限確保できる計算機リソース量が最小リソース305に設定される。
例えば、図3に示す例では、物理サーバID301が「1」の物理サーバ102上では二つのVM150が稼働し、仮想マシンID302が「1」のVM150には「16」のコアが割り当てられ、仮想マシンID302が「2」のVM150には「20」のコアが割り当てられる。すなわち、それぞれのVM150に計算機リソースがオーバーコミットされる。このとき、仮想リソース304の合計値は「36」となる。そのため、仮想マシンID302が「2」のVM150が全てのコアを使用している場合に確保可能なコアの数は「12」となり、また、仮想マシンID302が「1」のVM150が全てのコアを使用している場合に確保可能なコアの数は「18」となる。すなわち、最小リソース305に設定される値は下式(1)に基づいて算出される。
Figure 2017037403
ここで、vRiminは、仮想マシンID302が「i」であるVM150の最小リソース305を示す。また、vRjは、仮想マシンID302が「j」であるVM150の仮想リソース304を示す。また、Rは、仮想マシンID302が「i」であるVM150が稼働する物理サーバ102のリソース202を示す。
割当リソース306は、一つのVM150上で稼働する各コンテナ170に割り当てられる計算機リソース量の合計値を示す。本実施例では、下式(2)に基づいて算出された値が割当リソース306に設定される。
Figure 2017037403
ここで、vRalは、割当リソース306の値である。rp(i)は、仮想マシンID302が「i」であるVM150の性能保証型のコンテナ170の要求リソース量であり、後述する性能保証403に設定される数値に対応する。Nは、ベストエフォート型のコンテナ170の総数である。αは、ベストエフォート型のコンテナ170の最小性能値である。αは、システム運用者によって設定される。本実施例ではαは0.1であるものとする。
図4は、実施例1のコンテナ管理テーブル124の構成例を示す図である。
コンテナ管理テーブル124は、仮想マシンID401、コンテナID402、及び性能保証403を含む。
仮想マシンID401は、仮想マシンID302と同一のものである。コンテナID402は、物理サーバ102内のコンテナ170を一意に識別するための識別子である。なお、異なるOS160上のコンテナ170の識別子は重複してもよい。性能保証403は、コンテナ170の性能保証に関する情報である。性能保証403には、保証すべきリソース量を示す数値、又は文字情報「ベストエフォート」のいずれかが設定される。
図4に示す例では、仮想マシンID401が「1」のVM150の割当リソース306は、式(2)を用いて下式(3)のように算出される。また、仮想マシンID401が「2」のVM150の割当リソース306は、式(2)を用いて下式(4)のように算出される。
Figure 2017037403
Figure 2017037403
図5は、実施例1のコンテナ制御部120が実行する処理を説明するフローチャートである。
管理サーバ101は、クライアント端末103から新たなコンテナ170の追加要求を受信した場合、コンテナ制御部120を呼び出す。コンテナ170の追加要求には、コンテナ170を制御するOS160の種別、及びコンテナ170の性能保証に関する情報が含まれる。また、コンテナ170が性能保証型のコンテナ170である場合、追加要求にはコンテナ170に割り当てる計算機リソース量が含まれる。以下の説明では、コンテナ170の追加要求に基づいてコンテナ管理システムに追加されるコンテナ170を新規コンテナ170とも記載する。また、新規コンテナ170の追加に必要な計算機リソース量を要求リソース量とも記載する。
コンテナ制御部120は、VM150の最小リソース305が割当リソース306を上回るように計算機リソース量の割り当てを制御する。具体的には、コンテナ制御部120は、四つのステップにしたがって、コンテナ170を配置する。
第1のステップでは、コンテナ制御部120が、物理サーバ102にVM150を追加することなくコンテナ170を配置できるか否かを判定する。前述の条件を満たす場合、コンテナ制御部120は、所定のVM150にコンテナ170を追加する。前述した条件を満たさない場合、コンテナ制御部120は、第2のステップに移行する。
第2のステップでは、コンテナ制御部120が、コンテナ170を追加する予定のVM150とは異なる他のVM150の計算機リソースの割当量を変更することによって、コンテナ170を配置できるか否かを判定する。前述した条件を満たす場合、コンテナ制御部120は、他のVM150の計算機リソースの割当量を調整し、所定のVM150にコンテナ170を追加する。前述した条件を満たさない場合、コンテナ制御部120は、第3のステップに移行する。
第3のステップでは、コンテナ制御部120が、コンテナ170の追加に必要な計算機リソースを有する物理サーバ102が存在するか否かを判定する。前述した条件を満たす場合、コンテナ制御部120は、条件を満たす物理サーバ102にVM150を追加し、さらに、当該VM150にコンテナ170を追加する。前述した条件を満たさない場合、コンテナ制御部120は、第4のステップに移行する。
第4のステップでは、コンテナ制御部120は、コンテナ管理システムに新たに物理サーバ102を追加し、当該物理サーバ102にVM150を追加する。さらに、コンテナ制御部120は、追加されたVM150にコンテナ170を追加する。
以下、各ステップの詳細な内容について説明する。まず、コンテナ制御部120は、VMのループ処理を開始する(ステップS501)。
具体的には、コンテナ制御部120は、仮想マシン管理テーブル123を参照して、対象のエントリ(VM150)を一つ選択する。本実施例では、上のエントリから順に選択されるものとする。なお、本発明は選択する順番に依存しない。
コンテナ制御部120は、選択されたVM150が新規コンテナ170を追加可能なVM150であるか否かを判定する(ステップS502)。以下の説明では、新規コンテナ170を追加可能なVM150を候補VM150とも記載する。
具体的には、コンテナ制御部120は、仮想マシン管理テーブル123を参照して、選択されたVM150に対応するエントリのOS種別303が追加要求に含まれるOS160の種別と一致するか否かを判定する。OS種別303が追加要求に含まれるOS160の種別と一致する場合、コンテナ制御部120は、選択されたVM150が候補VM150であると判定する。
選択されたVM150が候補VM150でないと判定された場合、コンテナ制御部120はステップS506に進む。
選択されたVM150が候補VM150であると判定された場合、コンテナ制御部120は、候補VM150に要求リソース量分の空きリソースが存在するか否かを判定する(ステップS503)。具体的には、以下のような処理が実行される。
コンテナ制御部120は、追加要求に含まれる情報に基づいて、新規コンテナ170が性能保証型のコンテナ170であるか否かを判定する。新規コンテナ170がベストエフォート型のコンテナ170であると判定された場合、コンテナ制御部120は、候補VM150に要求リソース量分の空きリソースが存在すると判定する。
新規コンテナ170が性能保証型のコンテナ170であると判定された場合、コンテナ制御部120は、候補VM150に対応するエントリの仮想リソース304から割当リソース306を減算して、候補VM150の空きリソース量を算出する。さらに、コンテナ制御部120は、候補VM150の空きリソース量が要求リソース量以上であるか否かを判定する。
候補VM150の空きリソース量が要求リソース量以上である場合、コンテナ制御部120は、候補VM150に要求リソース量分の空きリソースが存在すると判定する。以上がステップS503の処理の説明である。
候補VM150に要求リソース量分の空きリソースが存在すると判定された場合、コンテナ制御部120は、候補VM150に新規コンテナ170を追加する(ステップS511)。コンテナ制御部120は、仮想マシン管理テーブル123及びコンテナ管理テーブル124を更新する(ステップS512)。その後、コンテナ制御部120は、処理を終了する。
具体的には、コンテナ制御部120は、ハイパバイザ140を介してコンテナ実行部161に新規コンテナ170の追加を指示する。コンテナ制御部120は、仮想マシン管理テーブル123を参照し、候補VM150に対応するエントリの割当リソース306に要求リソース量を加算する。また、コンテナ制御部120は、コンテナ管理テーブル124にエントリを追加し、追加されたエントリの仮想マシンID401に候補VM150の識別子を設定し、また、当該エントリの性能保証403に要求リソース量を設定する。さらに、コンテナ制御部120は、追加されたエントリのコンテナID402に新規コンテナ170の識別子を設定する。なお、新規コンテナ170がベストエフォート型のコンテナの場合、性能保証403には「ベストエフォート」が設定される。
ステップS503において、候補VM150に要求リソース量分の空きリソースが存在しないと判定された場合、コンテナ制御部120は、候補VM150が稼働する物理サーバ102に要求リソース量分の空きリソースが存在するか否かを判定する(ステップS504)。以下の説明では候補VM150が稼働する物理サーバ102を対象物理サーバ102とも記載する。具体的には、以下のような処理が実行される。
コンテナ制御部120は、候補VM150に対応するエントリの物理サーバID301から対象物理サーバ102の識別子を取得する。コンテナ制御部120は、対象物理サーバ102の識別子に基づいて物理サーバ管理テーブル122を参照して、対象物理サーバ102に一致するエントリを検索する。コンテナ制御部120は、検索されたエントリのリソース202の値を取得する。
コンテナ制御部120は、対象物理サーバ102の識別子に基づいて仮想マシン管理テーブル123を参照して、対象物理サーバ上で稼働する全てのVM150のエントリを検索する。コンテナ制御部120は、検索された各エントリの割当リソース306の合計値を算出する。コンテナ制御部120は、算出された合計値に要求リソース量を加算して、予測リソース量を算出する。コンテナ制御部120は、リソース202の値から予測リソース量を減算して、対象物理サーバ102の空きリソース量を算出する。
コンテナ制御部120は、対象物理サーバ102の空きリソース量が要求リソース量以上であるか否かを判定する。対象物理サーバ102の空きリソース量が要求リソース量以上である場合、コンテナ制御部120は、対象物理サーバ102に要求リソース量分の空きリソースが存在すると判定する。以上がステップS504の処理の説明である。
対象物理サーバ102に要求リソース量分の空きリソースが存在すると判定された場合、コンテナ制御部120は、リソース調整処理を実行する(ステップS505)、リソース調整処理の詳細は図6を用いて説明する。
コンテナ制御部120は、リソース調整処理が終了した後、候補VM150に新規コンテナ170を追加する(ステップS511)。コンテナ制御部120は、仮想マシン管理テーブル123及びコンテナ管理テーブル124を更新する(ステップS512)。その後、コンテナ制御部120は、処理を終了する。
具体的には、コンテナ制御部120は、ハイパバイザ140を介してコンテナ実行部161に新規コンテナ170の追加を指示する。コンテナ制御部120は、仮想マシン管理テーブル123を参照し、候補VM150に対応するエントリの割当リソース306に要求リソース量を加算する。また、コンテナ制御部120は、コンテナ管理テーブル124にエントリを追加し、追加されたエントリの仮想マシンID401に候補VM150の識別子を設定し、また、当該エントリの性能保証403に要求リソース量を設定する。さらに、コンテナ制御部120は、追加されたエントリのコンテナID402に新規コンテナ170の識別子を設定する。
ステップS504において、対象物理サーバ102に要求リソース量分の空きリソースが存在しないと判定された場合、コンテナ制御部120は、ステップS506に進む。
ステップS502又はステップS504の判定結果がNOである場合、コンテナ制御部120は、全てのVM150について処理が完了したか否かを判定する(ステップS506)。
全てのVM150について処理が完了していないと判定された場合、コンテナ制御部120は、ステップS501に戻り、新たにVM150を選択する。
全てのVM150について処理が完了していると判定された場合、コンテナ制御部120は、物理サーバ102のループ処理を開始する(ステップS507)。
具体的には、コンテナ制御部120は、物理サーバ管理テーブル122を参照して、対象のエントリ(物理サーバ102)を一つ選択する。
コンテナ制御部120は、選択された物理サーバ102に要求リソース量分の空きリソースが存在するか否かを判定する(ステップS508)。具体的には、以下のような処理が実行される。
コンテナ制御部120は、物理サーバ管理テーブル122を参照して、物理サーバID201が選択された物理サーバ102の識別子に一致するエントリを検索する。コンテナ制御部120は、検索されたエントリのリソース202の値を取得する。
コンテナ制御部120は、仮想マシン管理テーブル123を参照し、物理サーバID301が選択された物理サーバ102の識別子に一致するエントリを抽出する。コンテナ制御部120は、抽出されたエントリの最小リソース305の合計値を算出する。
コンテナ制御部120は、リソース202から最小リソース305の合計値を減算し、算出された値が要求リソース量以上であるか否かを判定する。算出された値が要求リソース量以上である場合、コンテナ制御部120は、選択された物理サーバ102に要求リソース量分の空きリソースが存在すると判定する。以上がステップS508の処理の説明である。
選択された物理サーバ102に要求リソース量分の空きリソースが存在しないと判定された場合、コンテナ制御部120は、全ての物理サーバ102について処理が完了したか否かを判定する(ステップS513)。
全ての物理サーバ102について処理が完了していないと判定された場合、コンテナ制御部120は、ステップS507に戻り、新たな物理サーバ102を選択する。
全ての物理サーバ102について処理が完了したと判定された場合、コンテナ制御部120は、物理サーバ102の追加処理を実行し(ステップS514)、その後、処理を終了する。物理サーバ102に追加処理(デプロイ処理)の詳細は図7を用いて説明する。
ステップS508において、選択された物理サーバ102に要求リソース量分の空きリソースが存在すると判定された場合、コンテナ制御部120は、追加要求に含まれるOS160の種別に基づいて、要求された種類のOS160を稼働させるVM150を追加する(ステップS509)。VM150の追加方法は公知であるため詳細な説明は省略する。コンテナ制御部120は、仮想マシン管理テーブル123を更新する(ステップS510)。
具体的には、コンテナ制御部120は、仮想マシン管理テーブル123に追加されたVM150のエントリを追加する。また、コンテナ制御部120は、仮想マシンID302に所定の識別子を設定し、物理サーバID301に選択された物理サーバ102の識別子を設定し、また、OS種別303に追加要求に含まれるOS160の種別を設定する。仮想リソース304及び割当リソース306には、物理サーバ102のリソースの空きに応じて、全ての空きリソース、又は、一定の割合のリソースが設定される。
次に、コンテナ制御部120は、追加されたVM150に新規コンテナ170を追加する(ステップS511)。コンテナ制御部120は、仮想マシン管理テーブル123及びコンテナ管理テーブル124を更新する(ステップS512)。その後、コンテナ制御部120は、処理を終了する。
具体的には、コンテナ制御部120は、ハイパバイザ140を介して、コンテナ実行部161に新規コンテナ170の追加を指示する。コンテナ制御部120は、仮想マシン管理テーブル123を参照し、追加されたVM150に対応するエントリの仮想リソース304、及び最小リソース305に初期値を設定し、また、割当リソース306に要求リソース量を設定する。また、コンテナ制御部120は、コンテナ管理テーブル124にエントリを追加し、追加されたエントリの仮想マシンID401に追加されたVM150の識別子を設定し、また、当該エントリの性能保証403に要求リソース量を設定する。さらに、コンテナ制御部120は、追加されたエントリのコンテナID402に新規コンテナ170の識別子を設定する。
なお、仮想リソース304及び最小リソース305に設定する初期値は、予め設定された計算機式に基づいて算出された値を設定してもよいし、管理者によって入力された値を設定してもよい。
図6は、実施例1のコンテナ制御部120が実行するリソース調整処理の一例を示すフローチャートである。リソース調整処理には入力としてステップS504において選択された物理サーバ102の識別子が入力される。
コンテナ制御部120は、対象物理サーバ102上のベストエフォート型のコンテナ170に割り当てるリソース量を算出する(ステップS601)。
本実施例では、対象物理サーバ102のリソース量から性能保証型のコンテナ170に割り当てられたリソース量の合計値を減算することによって算出されるリソース量がベストエフォート型のコンテナ170にオーバーコミットされるものとする。この場合、下式(5)を用いてベストエフォート型のコンテナ170に割り当てるリソース量が算出される。なお、Tkは下式(6)で与えられる。なお、添え字kは、対象物理サーバ102上で稼働するVM150の識別子に対応する。
Figure 2017037403
Figure 2017037403
ここで、rbはベストエフォート型のコンテナ170に割り当てるリソース量である。Tkは、識別子が「k」であるVM150上の性能保証型のコンテナ170に割り当てられたリソース量の合計値である。rpnewは、要求リソース量である。
次に、コンテナ制御部120は、対象物理サーバ102上の各VM150に割り当てるリソース量を調整するために、対象物理サーバ102上のVM150のループ処理を開始する(ステップS602)。
具体的には、コンテナ制御部120は、仮想マシン管理テーブル123を参照して、物理サーバID301が対象物理サーバ102の識別子と一致するエントリを検索する。コンテナ制御部120は、検索されたエントリの中から対象のエントリ(VM150)を選択する。本実施例では、仮想マシンID302が小さい順にエントリが選択されるものとする。なお、本発明は選択するエントリの順番に依存しない。
次に、コンテナ制御部120は、選択されたVM150に新たに割り当てる新リソース量を算出する(ステップS603)。本実施例では、コンテナ制御部120は、下式(7)を用いて選択されたVM150の新リソース量を算出する。
Figure 2017037403
ここで、vRjnewは識別子が「j」である対象物理サーバ102の新リソース量である。
次に、コンテナ制御部120は、新リソース量が選択されたVM150に現在割り当てられるリソース量より大きいか否かを判定する(ステップS604)。
具体的には、コンテナ制御部120は、仮想マシン管理テーブル123を参照し、選択されたVM150に対応するエントリの仮想リソース304の値を取得する。コンテナ制御部120は、新リソース量が仮想リソース304の値より大きいか否か判定する。
新リソース量が選択されたVM150に現在割り当てられるリソース量より大きいと判定された場合、コンテナ制御部120は、当該VM150に割り当てるリソース量を追加し(ステップS605)、その後、ステップS607に進む。
具体的には、コンテナ制御部120は、新リソース量と現在のリソース量との差を算出し、算出された差の分だけ計算機リソース量を追加する。また、コンテナ制御部120は、選択されたVM150に対応するエントリの仮想リソース304に新リソース量を設定する。
新リソース量が選択されたVM150に現在割り当てられるリソース量以下であると判定された場合、コンテナ制御部120は、当該VM150に割り当てるリソース量を削減し(ステップS606)、その後、ステップS607に進む。
具体的には、コンテナ制御部120は、新リソース量と現在のリソース量との差を算出し、算出された差の分だけ計算機リソース量を削減する。また、コンテナ制御部120は、選択されたVM150に対応するエントリの仮想リソース304に新リソース量を設定する。
ステップS605又はステップS606の処理が完了した後、コンテナ制御部120は、対象物理サーバ102上で稼働する全てのVM150について処理が完了したか否かを判定する(ステップS607)。
対象物理サーバ102上で稼働する全てのVM150について処理が完了していないと判定された場合、コンテナ制御部120は、ステップS602に戻り、新たにVM150を選択する。対象物理サーバ102上で稼働する全てのVM150について処理が完了したと判定された場合、コンテナ制御部120は、処理を終了する。
以上の処理によって、対象VM150以外のVM150のうち、少なくとも一つのVM150の計算機リソース量が削減される。一方、対象VM150の計算機リソース量は追加される。
図7は、実施例1のコンテナ制御部120が実行する物理サーバ102の追加処理の一例を示すフローチャートである。
コンテナ制御部120は、物理サーバ追加部121に新規物理サーバ102の追加を指示し(ステップS701)、物理サーバ管理テーブル122を更新する(ステップS702)。
具体的には、コンテナ制御部120は、物理サーバ管理テーブル122に新たなエントリを追加し、物理サーバID201に新規物理サーバ102の識別子を設定し、また、リソース202に新規物理サーバ102のリソース量を設定する。
次に、コンテナ制御部120は、新規物理サーバ102に新規コンテナ170を追加するためのVM150を生成するか否かを判定する(ステップS703)。
例えば、コンテナ制御部120は、新規物理サーバ102にVM150を生成するか否かを選択する画面を表示し、管理者からの操作を受け付ける方法が考えられる。また、コンテナ制御部120がオートスケール等の自動制御を行っている場合には、自動制御の種類に応じたポリシを設定し、当該制御ポリシに基づいて判定する方法も考えられる。なお、オートスケールとは、コンテナ170の数を自動的に増加又は削減する処理を示す。
新規物理サーバ102にVM150を生成しない場合、コンテナ制御部120は、既存のVM150を新規物理サーバ102に移動し、当該VM150上に新規コンテナ170を追加する。
新規物理サーバ102にVM150を生成しないと判定された場合、コンテナ制御部120は、移動させるVM150を選択し(ステップS704)、選択されたVM150を新規物理サーバ102に移動する(ステップS705)。
本実施例では、コンテナ制御部120は、各物理サーバ102についてステップS503と同一の処理を実行することによって新規コンテナ170に要求されるOS160の種別と同一の種別のOS160が稼働するVM150を検索する。コンテナ制御部120は、検索されたVM150のうち、移動コストが最も小さいVM150を選択する。
移動コストは、VM150が使用するリソース量、及び稼働状況に基づいて算出される。例えば、メモリ使用量が少ない場合、CPU使用率が低い場合、メモリへの書込頻度が低い場合、又はIOトラフィック量が低い場合には、移動コストは小さい。
なお、移動させるVM150の選択方法は、既存のマイグレーション処理等で用いられる方法を用いてもよい。
次に、コンテナ制御部120は、仮想マシン管理テーブル123を更新する(ステップS706)。
具体的には、コンテナ制御部120は、仮想マシン管理テーブル123を参照し、移動したVM150に対応するエントリの物理サーバID301に新規物理サーバ102の識別子を設定する。
コンテナ制御部120は、新規物理サーバ102に移動したVM150にコンテナ170を追加する(ステップS707)。
具体的には、コンテナ制御部120は、ハイパバイザ140を介して、新規コンテナ170の追加をコンテナ実行部161に指示する。
次に、コンテナ制御部120は、仮想マシン管理テーブル123及びコンテナ管理テーブル124を更新し(ステップS708)、処理を終了する。具体的には、以下のような処理が実行される。
コンテナ制御部120は、仮想マシン管理テーブル123を参照し、新規コンテナ170が追加されたVM150に対応するエントリの仮想リソース304、最小リソース305、及び割当リソース306を更新する。例えば、コンテナ制御部120は、仮想リソース304、最小リソース305、及び割当リソース306のそれぞれに要求リソース量を加算する。
なお、仮想リソース304、最小リソース305、及び割当リソース306の更新方法は前述した方法に限定されない。例えば、物理サーバ102の全リソース量を予め割り当てる方法、一定量を割り当てる方法などが考えられる。
また、コンテナ制御部120は、コンテナ管理テーブル124にエントリを追加し、追加されたエントリの仮想マシンID401に移動したVM150の識別子を設定し、また、当該エントリの性能保証403に要求リソース量を設定する。さらに、コンテナ制御部120は、追加されたエントリのコンテナID402に新規コンテナ170の識別子を設定する。以上がステップS708の処理の説明である。
ステップS703において、新規物理サーバ102にVM150を生成すると判定された場合、コンテナ制御部120は、新規物理サーバ102に新規VM150を追加し(ステップS709)、仮想マシン管理テーブル123を更新する(ステップS710)。VM150の追加方法は公知であるため詳細な説明を省略する。
具体的には、コンテナ制御部120は、仮想マシン管理テーブル123にエントリを追加し、追加されたエントリの物理サーバID301に新規物理サーバ102の識別子、仮想マシンID302に新規VM150の識別子、OS種別303に追加要求に含まれるOS160の識別子を設定する。
コンテナ制御部120は、新規物理サーバ102に追加された新規VM150にコンテナ170を追加する(ステップS707)。コンテナ制御部120は、仮想マシン管理テーブル123及びコンテナ管理テーブル124を更新し(ステップS708)、処理を終了する。具体的には、以下のような処理が実行される。
コンテナ制御部120は、ハイパバイザ140を介して、コンテナ実行部161に新規コンテナ170の追加を指示する。コンテナ制御部120は、仮想マシン管理テーブル123を参照し、新規VM150に対応するエントリの仮想リソース304、及び最小リソース305に初期値を設定し、また、割当リソース306に要求リソース量を設定する。また、コンテナ制御部120は、コンテナ管理テーブル124にエントリを追加し、追加されたエントリの仮想マシンID401に新規VM150の識別子を設定し、また、当該エントリの性能保証403に要求リソース量を設定する。さらに、コンテナ制御部120は、追加されたエントリのコンテナID402に新規コンテナ170の識別子を設定する。
なお、仮想リソース304及び最小リソース305に設定する初期値は、予め設定された計算機式に基づいて算出された値を設定してもよいし、管理者によって入力された値を設定してもよい。
ここで、図8及び図9を用いてコンテナ制御部120が実行する処理の具体例について説明する。なお、以下の説明では、物理サーバ管理テーブル122、仮想マシン管理テーブル123、及びコンテナ管理テーブル124は、図2、図3、及び図4に示すような状態であるものとする。
まず、リソース調整処理を伴う新規コンテナ170の追加処理の一例を説明する。図8は、実施例1のリソース調整処理を伴う新規コンテナ170の追加処理が実行された後の仮想マシン管理テーブル123の一例を示す図である。ここでは、コンテナ制御部120は、OS160の種別が「OS2」、要求リソース量が「2」の新規コンテナ170の生成が指示されてものとする。
ステップS502において、コンテナ制御部120は、仮想マシンID302が「2」であるVM150を、候補VM150として特定する。候補VM150の仮想リソース304は「20」、割当リソース306は「18.2」である。この場合、候補VM150の空きリソース量は「1.8」であり、要求リソース量より小さい。したがって、ステップS503の判定結果はNOとなる。
ステップS504では、コンテナ制御部120は、物理サーバ管理テーブル122の物理サーバID201が「1」のエントリを参照し、リソース202の値「32」を取得する。識別子が「1」である物理サーバ102上で稼働するコンテナ170の割当リソース306の合計値「28.4」であり、当該物理サーバ102の空きリソース量は「3.6」となる。したがって、ステップS504の判定結果はYESとなり、リソース調整処理が実行される。
ステップS601において、識別子が「1」のVM150のTkは「10」、識別子が「2」のVM150のTkは「18」と算出される。要求リソース量は「2」であるため、式(5)からベストエフォート型のコンテナ170に割り当てるリソース量は「2」となる。
識別子が「1」のVM150については、ステップS603において、新リソース量は式(7)より「14」と算出される。また、当該VM150の仮想リソース304は「16」である。したがって、ステップS604の判定結果はNOとなる。そのため、ステップS606において、コンテナ制御部120は、識別子が「1」のVM150のリソース量を「16」から「14」まで削減する。
識別子が「2」のVM150については、ステップS603において、新リソース量は式(7)より「22」と算出される。また、当該VM150の仮想リソース304は「20」である。したがって、ステップS604の判定結果はYESとなる。そのため、ステップS605において、コンテナ制御部120は、識別子が「2」のVM150のリソース量を「20」から「22」まで追加する。
リソース調整処理が終了した後、ステップS511において、コンテナ制御部120は、候補VM150に新規コンテナ170を追加する。
ステップS512において、コンテナ制御部120は、仮想マシンID302が「1」であるエントリの仮想リソース304を「14」に更新し、また、仮想マシンID302が「2」であるエントリの仮想リソース304を「22」に更新する。また、コンテナ制御部120は、式(1)に基づいて各VM150のvRiminを算出し、それぞれのエントリの最小リソース305にvRiminを設定する。さらに、コンテナ制御部120は、仮想マシンID302が「2」であるエントリの割当リソース306に要求リソース量「2」を追加する。
以上の処理によって、図3に示す仮想マシン管理テーブル123は図8に示すように更新される。
次に、物理サーバ102の追加処理を伴う新規コンテナ170の追加処理の一例を説明する。図9は、実施例1の物理サーバ102の追加処理を伴う新規コンテナ170の追加処理が実行された後の仮想マシン管理テーブル123の一例を示す図である。ここでは、コンテナ制御部120は、OS160の種別が「OS1」、要求リソース量が「6」の新規コンテナ170の生成が指示されてものとする。
ステップS502において、コンテナ制御部120は、仮想マシンID302が「1」であるVM150を、候補VM150として特定する。候補VM150の仮想リソース304は「16」、割当リソース306は「10.2」である。この場合、候補VM150の空きリソース量は「5.8」であり、要求リソース量より小さい。したがって、ステップS503の判定結果はNOとなる。
ステップS504では、コンテナ制御部120は、物理サーバ管理テーブル122の物理サーバID201が「1」のエントリを参照し、リソース202の値「32」を取得する。識別子が「1」である物理サーバ102上で稼働するコンテナ170の割当リソース306の合計値「28.4」であり、当該物理サーバ102の空きリソース量は「3.6」となる。したがって、ステップS504の判定結果はNOとなる。
ステップS508では、識別子が「1」である物理サーバ102上のVM150の最小リソース305の合計値は「28」であり、リソース202との差は「4」となる。また、識別子が「2」である物理サーバ102上のVM150の最小リソース305の合計値は「30」であり、リソース202との差は「2」となる。したがって、ステップS508の判定結果はNOとなり、物理サーバ102の追加処理が実行される。ここでは、移動指示を受け付けているものとする。
ステップS701では、コンテナ制御部120が、新規物理サーバ102を追加する。ここでは、新規物理サーバ102の識別子は「3」であるものとする。ステップS703の判定結果はNOであるため、コンテナ制御部120は、ステップS704において移動させるVM150を選択する。本実施例では、識別子が「1」であるVM150が選択される。
ステップS705では、コンテナ制御部120は、新規物理サーバ102に識別子が「1」であるVM150を移動する。ステップS706において、コンテナ制御部120は、仮想マシンID302が「1」であるエントリの物理サーバID301に「3」を設定する。ステップ707において、コンテナ制御部120は、識別子が「1」であるVM150に新規コンテナ170を追加する。
ステップS708では、コンテナ制御部120は、仮想マシンID302が「1」であるエントリの仮想リソース304及び最小リソース305に「6」を加算し、割当リソース306に「6」を設定する。コンテナ制御部120は、コンテナ管理テーブル124にエントリを生成し、コンテナID402に所定の識別子を設定する。さらに、コンテナ制御部120は、生成されたエントリの仮想マシンID401に「1」を設定し、性能保証403に「6」を設定する。
以上の処理によって、図3に示す仮想マシン管理テーブル123は図9に示すように更新される。
本発明によれば、コンテナ制御部120は、既存の物理サーバ102におけるVM150への計算機リソースの割当量を調整する。すなわち、コンテナ制御部120は、候補VM150とは異なるVM150の計算機リソース量を削減し、候補VM150に計算機リソース量を追加する。これによって、可能な限りコンテナ管理システムに新たな物理サーバ102を追加することなく、新規コンテナ170を配置することができる。すなわち、少数の物理サーバ102上にOS160の種別が異なる複数のコンテナ170を高密度に配置できる。
また、本発明では、ステップS601に示すように、一つのVM150上に性能保証型のコンテナ170及びベストエフォート型のコンテナ170が混在する場合、コンテナ制御部120は、VM150に計算機リソースをオーバーコミットする。これによって、性能保証型のコンテナ170及びベストエフォート型のコンテナ170が混在するシステムにも柔軟に対応することができる。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。また、例えば、上記した実施例は本発明を分かりやすく説明するために構成を詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、各実施例の構成の一部について、他の構成に追加、削除、置換することが可能である。
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、本発明は、実施例の機能を実現するソフトウェアのプログラムコードによっても実現できる。この場合、プログラムコードを記録した記憶媒体をコンピュータに提供し、そのコンピュータが備えるCPUが記憶媒体に格納されたプログラムコードを読み出す。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、そのプログラムコード自体、及びそれを記憶した記憶媒体は本発明を構成することになる。このようなプログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、CD−ROM、DVD−ROM、ハードディスク、SSD(Solid State Drive)、光ディスク、光磁気ディスク、CD−R、磁気テープ、不揮発性のメモリカード、ROMなどが用いられる。
また、本実施例に記載の機能を実現するプログラムコードは、例えば、アセンブラ、C/C++、perl、Shell、PHP、Java(登録商標)等の広範囲のプログラム又はスクリプト言語で実装できる。
さらに、実施例の機能を実現するソフトウェアのプログラムコードを、ネットワークを介して配信することによって、それをコンピュータのハードディスクやメモリ等の記憶手段又はCD−RW、CD−R等の記憶媒体に格納し、コンピュータが備えるCPUが当該記憶手段や当該記憶媒体に格納されたプログラムコードを読み出して実行するようにしてもよい。
上述の実施例において、制御線や情報線は、説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。全ての構成が相互に接続されていてもよい。
101 管理サーバ
102 物理サーバ
103 クライアント端末
120 コンテナ制御部
121 物理サーバ追加部
122 物理サーバ管理テーブル
123 仮想マシン管理テーブル
124 コンテナ管理テーブル
140 ハイパバイザ
150 VM
160 OS
161 コンテナ実行部
170 コンテナ

Claims (10)

  1. 管理サーバ、及び複数の仮想計算機が稼動する少なくとも一つの物理サーバを備える計算機システムであって、
    前記管理サーバは、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、前記第1のプロセッサに接続される第1のネットワークインタフェースを有し、
    前記少なくとも一つの物理サーバは、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、前記第2のプロセッサに接続される第2のネットワークインタフェースを有し、
    前記少なくとも一つの物理サーバは、当該物理サーバが有する計算機リソースを分割することによって、オペレーティングシステムを実行する仮想計算機を少なくとも一つ生成する仮想化管理部を有し、
    前記オペレーティングシステムは、ユーザ空間を分割することによって生成されたアプリケーション環境であるコンテナを少なくとも一つ生成するコンテナ実行部を含み、
    前記管理サーバは、前記計算機システムに新たに追加する前記コンテナの配置を制御するコンテナ制御部を有し、
    前記コンテナ制御部は、
    オペレーティングシステムの種別、及び新規コンテナに割り当てる計算機リソース量である第1の要求リソース量を含む新規コンテナの追加要求を受け付け、
    前記新規コンテナの追加要求に含まれる前記オペレーティングシステムの種類と同一種類のオペレーティングシステムを実行する候補仮想計算機を特定し、
    前記候補仮想計算機に前記第1の要求リソース量分の空きリソースが存在するか否かを判定し、
    前記候補仮想計算機に前記第1の要求リソース量分の空きリソースが存在しない場合、当該候補仮想計算機が稼動する物理サーバである対象物理サーバを特定し、
    前記対象物理サーバ上の前記複数の仮想計算機の各々に割り当てられる計算機リソース量を調整するリソース調整処理を実行し、
    前記候補仮想計算機に前記新規コンテナを追加することを特徴とする計算機システム。
  2. 請求項1に記載の計算機システムであって、
    前記リソース調整処理では、
    前記第1の要求リソース量に基づいて、前記対象物理サーバ上の前記複数の仮想計算機の各々に新たに割り当てる計算機リソース量である新リソース量を算出し、
    前記対象物理サーバ上の前記複数の仮想計算機の各々の現在の計算機リソース量と前記新リソース量とを比較し、
    前記仮想計算機の現在の計算機リソース量が前記新リソース量より大きい場合、当該仮想計算機の現在の計算機リソース量を前記新リソース量まで追加し、
    前記仮想計算機の現在の計算機リソース量が前記新リソース量以下の場合、当該仮想計算機の現在の計算機リソース量を前記新リソース量まで削減することを特徴とする計算機システム。
  3. 請求項2に記載の計算機システムであって、
    前記コンテナは、性能保証型のコンテナ及びベストエフォート型のコンテナを含み、
    前記少なくとも一つの物理サーバが有する計算機リソース量を管理する物理サーバ管理情報と、
    前記複数の仮想計算機の各々に割り当てられる計算機リソース量を管理する仮想計算機管理情報と、
    前記コンテナが配置された仮想計算機、及び前記コンテナに要求される計算機リソース量である第2の要求リソース量を管理するコンテナ管理情報と、を管理し、
    前記リソース調整処理では、
    前記コンテナ制御部は、
    前記新リソース量が算出される前に、前記物理サーバ管理情報から前記対象物理サーバのリソース量を取得し、
    前記仮想計算機管理情報及び前記コンテナ管理情報を参照して、前記対象物理サーバ上の全ての仮想計算機の前記性能保証型のコンテナの前記第2の要求リソース量の合計値を算出し、
    前記第1の要求リソース量、前記対象物理サーバの計算機リソース量、及び前記合計値に基づいて、前記ベストエフォート型のコンテナに割り当てる計算機リソース量を算出することを特徴とする計算機システム。
  4. 請求項2に記載の計算機システムであって、
    前記管理サーバは、前記計算機システムに前記物理サーバを追加する物理サーバ追加部を有し、
    前記コンテナ制御部は、
    前記第1の要求リソース量を確保可能な物理サーバが存在しない場合、前記物理サーバ追加部と連携して、前記計算機システムに新規物理サーバを追加する物理サーバの追加処理を実行し、
    前記新規物理サーバ上に前記新規コンテナを追加することを特徴とする計算機システム。
  5. 請求項4に記載の計算機システムであって、
    前記物理サーバの追加処理では、
    前記コンテナ制御部は、
    前記物理サーバ追加部に前記新規物理サーバの追加を指示し、
    前記候補仮想計算機を前記新規物理サーバに移動させる必要があるか否かを判定し、
    前記候補仮想計算機を前記新規物理サーバに移動させる必要があると判定された場合、前記候補仮想計算機を前記新規物理サーバに移動し、前記新規物理サーバに移動した前記候補仮想計算機に前記新規コンテナを追加し、
    前記候補仮想計算機を前記新規物理サーバに移動させる必要がないと判定された場合、前記新規物理サーバに新規仮想計算機を追加し、前記新規仮想計算機に前記新規コンテナを追加することを特徴とする計算機システム。
  6. 管理サーバ、及び複数の仮想計算機が稼動する少なくとも一つの物理サーバを備える計算機システムにおけるコンテナ管理方法であって、
    前記管理サーバは、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、前記第1のプロセッサに接続される第1のネットワークインタフェースを有し、
    前記少なくとも一つの物理サーバは、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、前記第2のプロセッサに接続される第2のネットワークインタフェースを有し、
    前記少なくとも一つの物理サーバは、当該物理サーバが有する計算機リソースを分割することによって、オペレーティングシステムを実行する仮想計算機を少なくとも一つ生成する仮想化管理部を有し、
    前記オペレーティングシステムは、ユーザ空間を分割することによって生成されたアプリケーション環境であるコンテナを少なくとも一つ生成するコンテナ実行部を含み、
    前記管理サーバは、前記計算機システムに新たに追加する前記コンテナの配置を制御するコンテナ制御部を有し、
    前記コンテナ管理方法は、
    前記コンテナ制御部が、オペレーティングシステムの種別、及び新規コンテナに割り当てる計算機リソース量である第1の要求リソース量を含む新規コンテナの追加要求を受け付ける第1のステップと、
    前記コンテナ制御部が、前記新規コンテナの追加要求に含まれる前記オペレーティングシステムの種類と同一種類のオペレーティングシステムを実行する候補仮想計算機を特定する第2のステップと、
    前記コンテナ制御部が、前記候補仮想計算機に前記第1の要求リソース量分の空きリソースが存在するか否かを判定する第3のステップと、
    前記コンテナ制御部が、前記候補仮想計算機に前記第1の要求リソース量分の空きリソースが存在しない場合、当該候補仮想計算機が稼動する物理サーバである対象物理サーバを特定する第4のステップと、
    前記コンテナ制御部が、前記対象物理サーバ上の前記複数の仮想計算機の各々に割り当てられる計算機リソース量を調整するリソース調整処理を実行する第5のステップと、
    前記コンテナ制御部が、前記候補仮想計算機に前記新規コンテナを追加する第6のステップと、を含むことを特徴とするコンテナ管理方法。
  7. 請求項6に記載のコンテナ管理方法であって、
    前記第5のステップは、
    前記コンテナ制御部が、前記第1の要求リソース量に基づいて、前記対象物理サーバ上の前記複数の仮想計算機の各々に新たに割り当てる計算機リソース量である新リソース量を算出するステップと、
    前記コンテナ制御部が、前記対象物理サーバ上の前記複数の仮想計算機の各々の現在の計算機リソース量と前記新リソース量とを比較するステップと、
    前記コンテナ制御部が、前記仮想計算機の現在の計算機リソース量が前記新リソース量より大きい場合、当該仮想計算機の現在の計算機リソース量を前記新リソース量まで追加するステップと、
    前記コンテナ制御部が、前記仮想計算機の現在の計算機リソース量が前記新リソース量以下の場合、当該仮想計算機の現在の計算機リソース量を前記新リソース量まで削減するステップと、を含むことを特徴とするコンテナ管理方法。
  8. 請求項7に記載のコンテナ管理方法であって、
    前記コンテナは、性能保証型のコンテナ及びベストエフォート型のコンテナを含み、
    前記少なくとも一つの物理サーバが有する計算機リソース量を管理する物理サーバ管理情報と、
    前記複数の仮想計算機の各々に割り当てられる計算機リソース量を管理する仮想計算機管理情報と、
    前記コンテナが配置された仮想計算機、及び前記コンテナに要求される計算機リソース量である第2の要求リソース量を管理するコンテナ管理情報と、を管理し、
    前記第5のステップは、
    前記コンテナ制御部が、前記新リソース量が算出される前に、前記物理サーバ管理情報から前記対象物理サーバのリソース量を取得するステップと、
    前記コンテナ制御部が、前記仮想計算機管理情報及び前記コンテナ管理情報を参照して、前記対象物理サーバ上の全ての仮想計算機の前記性能保証型のコンテナの前記第2の要求リソース量の合計値を算出するステップと、
    前記コンテナ制御部が、前記第1の要求リソース量、前記対象物理サーバの計算機リソース量、及び前記合計値に基づいて、前記ベストエフォート型のコンテナに割り当てる計算機リソース量を算出するステップと、を含むことを特徴とするコンテナ管理方法。
  9. 請求項7に記載のコンテナ管理方法であって、
    前記管理サーバは、前記計算機システムに前記物理サーバを追加する物理サーバ追加部を有し、
    前記コンテナ管理方法は、
    前記コンテナ制御部が、前記第1の要求リソース量を確保可能な物理サーバが存在しない場合、前記物理サーバ追加部と連携して、前記計算機システムに新規物理サーバを追加する物理サーバの追加処理を実行する第7のステップと、
    前記新規物理サーバ上に前記新規コンテナを追加する第8のステップと、を含むことを特徴とするコンテナ管理方法。
  10. 請求項9に記載のコンテナ管理方法であって、
    前記第7のステップは、
    前記コンテナ制御部が、前記物理サーバ追加部に前記新規物理サーバの追加を指示するステップと、
    前記コンテナ制御部が、前記候補仮想計算機を前記新規物理サーバに移動させる必要があるか否かを判定するステップと、
    前記コンテナ制御部が、前記候補仮想計算機を前記新規物理サーバに移動させる必要があると判定された場合、前記候補仮想計算機を前記新規物理サーバに移動し、前記新規物理サーバに移動した前記候補仮想計算機に前記新規コンテナを追加するステップと、
    前記コンテナ制御部が、前記候補仮想計算機を前記新規物理サーバに移動させる必要がないと判定された場合、前記新規物理サーバに新規仮想計算機を追加し、前記新規仮想計算機に前記新規コンテナを追加するステップと、を含むことを特徴とするコンテナ管理方法。
JP2015157244A 2015-08-07 2015-08-07 計算機システム及びコンテナ管理方法 Active JP6374845B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015157244A JP6374845B2 (ja) 2015-08-07 2015-08-07 計算機システム及びコンテナ管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015157244A JP6374845B2 (ja) 2015-08-07 2015-08-07 計算機システム及びコンテナ管理方法

Publications (2)

Publication Number Publication Date
JP2017037403A true JP2017037403A (ja) 2017-02-16
JP6374845B2 JP6374845B2 (ja) 2018-08-15

Family

ID=58049593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015157244A Active JP6374845B2 (ja) 2015-08-07 2015-08-07 計算機システム及びコンテナ管理方法

Country Status (1)

Country Link
JP (1) JP6374845B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019021185A (ja) * 2017-07-20 2019-02-07 富士通株式会社 情報処理装置、情報処理システム、情報処理装置制御方法及び情報処理装置制御プログラム
CN111124660A (zh) * 2018-11-01 2020-05-08 百度在线网络技术(北京)有限公司 虚拟机中闲置资源的分配方法和装置
JP2020154392A (ja) * 2019-03-18 2020-09-24 日本電気株式会社 コンテナ管理装置、方法およびプログラム
JP2020536319A (ja) * 2017-09-30 2020-12-10 オラクル・インターナショナル・コーポレイション コンテナのグループの動的マイグレーション
WO2023238224A1 (ja) * 2022-06-07 2023-12-14 日本電信電話株式会社 仮想計算リソース配備装置、プログラムおよび仮想計算リソース配備方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11740921B2 (en) 2020-11-23 2023-08-29 Google Llc Coordinated container scheduling for improved resource allocation in virtual computing environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277581A (ja) * 2009-04-27 2010-12-09 Hitachi Ltd 資源管理方法、資源管理プログラム、および、資源管理装置
JP2014115905A (ja) * 2012-12-11 2014-06-26 Canon Marketing Japan Inc 情報処理装置、情報処理方法、およびプログラム
WO2015049789A1 (ja) * 2013-10-04 2015-04-09 株式会社日立製作所 リソース管理システムおよびリソース管理方法
US20150142878A1 (en) * 2013-11-17 2015-05-21 Nimbix, Inc. Dynamic creation and execution of containerized applications in cloud computing

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277581A (ja) * 2009-04-27 2010-12-09 Hitachi Ltd 資源管理方法、資源管理プログラム、および、資源管理装置
JP2014115905A (ja) * 2012-12-11 2014-06-26 Canon Marketing Japan Inc 情報処理装置、情報処理方法、およびプログラム
WO2015049789A1 (ja) * 2013-10-04 2015-04-09 株式会社日立製作所 リソース管理システムおよびリソース管理方法
US20150142878A1 (en) * 2013-11-17 2015-05-21 Nimbix, Inc. Dynamic creation and execution of containerized applications in cloud computing

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019021185A (ja) * 2017-07-20 2019-02-07 富士通株式会社 情報処理装置、情報処理システム、情報処理装置制御方法及び情報処理装置制御プログラム
JP2020536319A (ja) * 2017-09-30 2020-12-10 オラクル・インターナショナル・コーポレイション コンテナのグループの動的マイグレーション
US11681573B2 (en) 2017-09-30 2023-06-20 Oracle International Corporation API registry in a container platform providing property-based API functionality
US11755393B2 (en) 2017-09-30 2023-09-12 Oracle International Corporation API registry in a container platform for automatically generating client code libraries
CN111124660A (zh) * 2018-11-01 2020-05-08 百度在线网络技术(北京)有限公司 虚拟机中闲置资源的分配方法和装置
CN111124660B (zh) * 2018-11-01 2024-01-05 百度在线网络技术(北京)有限公司 虚拟机中闲置资源的分配方法和装置
JP2020154392A (ja) * 2019-03-18 2020-09-24 日本電気株式会社 コンテナ管理装置、方法およびプログラム
JP7230603B2 (ja) 2019-03-18 2023-03-01 日本電気株式会社 コンテナ管理装置、方法およびプログラム
WO2023238224A1 (ja) * 2022-06-07 2023-12-14 日本電信電話株式会社 仮想計算リソース配備装置、プログラムおよび仮想計算リソース配備方法

Also Published As

Publication number Publication date
JP6374845B2 (ja) 2018-08-15

Similar Documents

Publication Publication Date Title
JP6374845B2 (ja) 計算機システム及びコンテナ管理方法
US9588789B2 (en) Management apparatus and workload distribution management method
JP5544967B2 (ja) 仮想マシン管理プログラム及び仮想マシン管理装置
US9183016B2 (en) Adaptive task scheduling of Hadoop in a virtualized environment
US8782235B2 (en) Resource migration system and resource migration method
US10248460B2 (en) Storage management computer
US20160196157A1 (en) Information processing system, management device, and method of controlling information processing system
JP6293683B2 (ja) 計算機システム及び計算機システムの性能障害の対処方法
JP6741941B2 (ja) 仮想マシン管理プログラム、仮想マシン管理方法、及び、仮想マシン管理装置
Raj et al. Enhancement of hadoop clusters with virtualization using the capacity scheduler
US9965308B2 (en) Automatic creation of affinity-type rules for resources in distributed computer systems
US20160004553A1 (en) Information processing system and method for relocating application
JP2016115065A (ja) 情報処理装置、情報処理システム、タスク処理方法、及び、プログラム
JP5640844B2 (ja) 仮想計算機制御プログラム、計算機、及び仮想計算機制御方法
JP6511025B2 (ja) リソース割当装置、リソース割当方法およびリソース割当プログラム
JP7176633B2 (ja) 仮想化基盤制御装置、仮想化基盤制御方法および仮想化基盤制御プログラム
KR20160043706A (ko) 가상 머신 스케일링 장치 및 그 방법
JP2015103094A (ja) 仮想リソース管理装置、選択方法及び選択プログラム
JP6157719B2 (ja) 計算機
US20210334145A1 (en) Resource allocation device, resource management system, and resource allocation program
US10942758B2 (en) Migrating virtual host bus adaptors between sets of host bus adaptors of a target device in order to reallocate bandwidth to enable virtual machine migration
JP6102302B2 (ja) システム自動構成装置、情報処理システム、システム自動構成方法及びシステム自動構成プログラム
US11119815B2 (en) Management apparatus, control method of calculation resources, and storage medium
JP6241215B2 (ja) 処理振分け方法及び処理振分けプログラム並びに処理振分けシステム
WO2016092667A1 (ja) 計算機及び割込み制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170927

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180625

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180720

R150 Certificate of patent or registration of utility model

Ref document number: 6374845

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150