JP2018160149A - 情報処理システム、オートスケーリング連携装置及びプログラム - Google Patents

情報処理システム、オートスケーリング連携装置及びプログラム Download PDF

Info

Publication number
JP2018160149A
JP2018160149A JP2017057642A JP2017057642A JP2018160149A JP 2018160149 A JP2018160149 A JP 2018160149A JP 2017057642 A JP2017057642 A JP 2017057642A JP 2017057642 A JP2017057642 A JP 2017057642A JP 2018160149 A JP2018160149 A JP 2018160149A
Authority
JP
Japan
Prior art keywords
container
virtual machine
autoscaling
containers
machines
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.)
Pending
Application number
JP2017057642A
Other languages
English (en)
Inventor
裕之 上田
Hiroyuki Ueda
裕之 上田
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co 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 Fuji Xerox Co Ltd filed Critical Fuji Xerox Co Ltd
Priority to JP2017057642A priority Critical patent/JP2018160149A/ja
Priority to US15/688,083 priority patent/US10496430B2/en
Publication of JP2018160149A publication Critical patent/JP2018160149A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage

Abstract

【課題】仮想マシン上にコンテナを稼働させるシステムにおいて、仮想マシン群の負荷状況のみに基づいて仮想マシンのオートスケーリングを行う方式に比べて、コンテナの稼働のために使用されない仮想マシンが無駄に起動される可能性を低減する。【解決手段】オートスケーリング連携装置50は、コンテナオートスケーリング管理装置30が求めた必要コンテナ数に対して、コンテナ14が仮想マシン12のリソースのうちのどの程度の割合を使用するかを示すリソース使用割合を乗じることで、必要マシン数を求める。そして、求めた必要マシン数を、仮想マシンオートスケーリング管理装置20に設定する。仮想マシンオートスケーリング管理装置20は、その必要マシン数を仮想マシン12の数の目標値として仮想マシン12群のオートスケーリングを行う。【選択図】図1

Description

本発明は、情報処理システム、オートスケーリング連携装置及びプログラムに関する。
コンピュータの仮想化方式として広く用いられているハイパーバイザ型仮想化では、物理的なマシンのOS(ホストOS。OSはオペレーティングシステムのこと)上に個々の仮想マシンを構成し、それら個々の仮想マシン上でそれぞれ独立したゲストOS環境を実行する。
一方、近年普及が進んでいるコンテナ型仮想化では、ホストOS上に、個々のユーザ向けのアプリケーション動作環境を個別に構築することで、ユーザ毎のリソースの分離を実現している。コンテナ型仮想化は、ユーザが個別にゲストOSを実行しなくてよい分だけ、ハイパーバイザ型仮想化よりも効率的である。
ハイパーバイザ型仮想化方式のシステムでは、負荷状況に応じて仮想マシンの追加や削除を自動的に行うオートスケーリングが行われる(例えば特許文献1、2)。またコンテナ型のシステムでも、負荷状況に応じたコンテナのオートスケーリングが行われる。
更に近年、ハイパーバイザ型とコンテナ型を組み合わせたハイブリッド方式も提案されている。ハイブリッド方式のシステムでは、仮想マシン上にコンテナを構築する。例えば特許文献3には、そのようなハイブリッド方式が例示されている。
ハイブリッド方式の従来システムでは、仮想マシンレベルのオートスケーリングとコンテナレベルのオートスケーリングとが互いに独立に行われている。すなわち、従来は、仮想マシン群の負荷状況等の状態に応じて仮想マシン群のオートスケーリングが行われ、コンテナ群の負荷状況等の状態に応じてコンテナ群のオートスケーリングが行われていた。
特開2017−41185号公報 特開2015−194958号公報 特開2016−181185号公報
仮想マシンのオートスケーリングで、仮想マシン群の負荷状況のみに基づいて仮想マシンのスケールアウト(仮想マシンの台数を増やすこと)を行うと、それら仮想マシン上で稼働するコンテナ群の負荷状況に問題がない場合、使用されない仮想マシンが増えてしまい、無駄が生じる。
本発明は、仮想マシン上にコンテナを稼働させるシステムにおいて、仮想マシン群の負荷状況のみに基づいて仮想マシンのオートスケーリングを行う方式に比べて、コンテナの稼働のために使用されない仮想マシンが無駄に起動される可能性を低減することを目的とする。
請求項1に係る発明は、1以上の仮想マシンと、前記1以上の仮想マシン上で稼働するコンテナのオートスケーリングを行うコンテナスケーリング装置と、前記仮想マシンの必要数と現在稼働中の前記仮想マシンの数との差に応じて仮想マシンのオートスケーリングを行う仮想マシンスケーリング装置と、前記コンテナスケーリング装置が求めた前記コンテナの必要数から、その必要数の前記コンテナを稼働させるのに必要な仮想マシンの数を計算する計算手段と、前記仮想マシンスケーリング装置が用いる前記必要数に、前記計算手段が計算した数を反映させる手段と、を含む、情報処理システムである。
請求項2に係る発明は、コンテナスケーリング装置が求めたコンテナの必要数から、その必要数の前記コンテナを稼働させるのに必要な仮想マシンの数を計算する計算手段と、前記仮想マシンの必要数と現在稼働中の前記仮想マシンの数との差に応じて仮想マシンのオートスケーリングを行う仮想マシンスケーリング装置が用いる前記必要数に、前記計算手段が計算した数を反映させる手段と、を含むオートスケーリング連携装置である。
請求項3に係る発明は、前記計算手段は、1つの前記コンテナが1つの前記仮想マシンのリソースのうちのどの程度の割合を使用するかを示すリソース使用割合と、前記コンテナの必要数とから、前記必要な仮想マシンの数を計算する、ことを特徴とする請求項2に記載のオートスケーリング連携装置である。
請求項4に係る発明は、前記計算手段は、1つの前記コンテナが1つの前記仮想マシンのリソースのうちのどの程度の割合を使用するかを示すリソース使用割合に前記コンテナの必要数を乗算して得られる数に対して、1より大きいバッファ率を乗算することにより、前記必要な仮想マシンの数を計算する、ことを特徴とする請求項2に記載のオートスケーリング連携装置である。
請求項5に係る発明は、コンピュータを、コンテナスケーリング装置が求めたコンテナの必要数から、その必要数の前記コンテナを稼働させるのに必要な仮想マシンの数を計算する計算手段、前記仮想マシンの必要数と現在稼働中の前記仮想マシンの数との差に応じて仮想マシンのオートスケーリングを行う仮想マシンスケーリング装置が用いる前記必要数に、前記計算手段が計算した数を反映させる手段、として機能させるためのプログラムである。
請求項1、2、3又は5に係る発明によれば、仮想マシン上にコンテナを稼働させるシステムにおいて、仮想マシン群の負荷状況のみに基づいて仮想マシンのオートスケーリングを行う方式に比べて、コンテナの稼働のために使用されない仮想マシンが無駄に起動される可能性を低減することができる。
請求項4に係る発明によれば、推定されたコンテナの必要数よりもコンテナの数が増える場合に、バッファ率を用いない方式よりも迅速に対処することができる。
実施形態のシステム構成の一例を示す図である。 コンテナ起動マシン情報管理部が保持するデータ内容の例を示す図である。 リソース使用割合管理部が保持するデータ内容の例を示す図である。 仮想マシンオートスケーリング管理装置の処理手順の一例を示す図である。 オートスケーリング連携装置の処理手順の一例を示す図である。
図1を参照して、実施形態のクラウドサービスシステムの一例を説明する。
図1のクラウドサービスシステムは、コンテナ用仮想マシン群10と、仮想マシンオートスケーリング管理装置20、コンテナオートスケーリング管理装置30と、コンテナ管理装置40と、オートスケーリング連携装置50とを含む。
コンテナ用仮想マシン群10は、1以上の物理的なコンピュータからなるシステム上で実行されている仮想マシン群である。個々の物理的なコンピュータは、1以上のCPU(中央演算装置)、メモリ(一次記憶装置)、二次記憶装置等のハードウエアリソースを備えている。物理的なコンピュータのOS上でハイパーバイザ型仮想化の仮想マシンが稼働する。コンテナ用仮想マシン群10は、それら仮想マシンのうちコンテナを実行するために用いられる仮想マシン12の集合である。
個々の仮想マシン12上には、コンテナ型仮想化のコンテナ14が稼働しており、コンテナ14内でのアプリケーションが実行される。図示例は、2台の仮想マシン12のうち一方の仮想マシン12でコンテナA、B及びCの3種類のコンテナ14が1つずつ、もう一方の仮想マシン12でコンテナA及びCの2種類のコンテナ14が1つずつ稼働している状態を示している。
仮想マシンオートスケーリング管理装置20は、仮想マシンレベルのオートスケーリングを行う。この仮想マシンレベルのオートスケーリングでは、仮想マシン群をスケールアウト(仮想マシンの台数を増やすこと)したり、スケールイン(仮想マシンの台数を減らすこと)する。仮想マシンオートスケーリング管理装置20は、次に説明するコンテナオートスケーリング管理装置30によるコンテナ14のオートスケーリングで求められるコンテナ14の必要数に連動して、仮想マシンのオートスケーリングを行う。
仮想マシンオートスケーリング管理装置20は、必要マシン数管理部22と、仮想マシンオートスケーリング部24とを含む、必要マシン数管理部22は、現在の状況で必要と判断される仮想マシンの数(必要マシン数と呼ぶ)を管理する。本実施形態では、必要マシン数は、後述するオートスケーリング連携装置50により必要マシン数管理部22に設定される。仮想マシンオートスケーリング部24は、必要マシン数管理部22が管理している必要マシン数と、現在稼働中の仮想マシン12の数(現在のマシン数)との差に応じて、仮想マシン12群のオートスケーリングを行う。
コンテナオートスケーリング管理装置30は、コンテナレベルでのオートスケーリングを行う。すなわち、ある種類のコンテナの負荷が高まれば、そのコンテナをスケールアウトし(すなわち台数を増やし)、負荷が低くなればそのコンテナをスケールインする(台数を減らす)。例えば、コンテナAのアプリケーションについての負荷が上昇すれば、コンテナAをスケールアウト(すなわち新たなコンテナAを起動する)し、その負荷が下降すればコンテナAを減らす(すなわち既存のコンテナAのうち所定の基準から選んだものを終了し、削除する)。
コンテナオートスケーリング管理装置30は、必要コンテナ数管理部32と、コンテナオートスケーリング部34とを含む、必要コンテナ数管理部32は、コンテナ14の種類毎に、現在のその種類のコンテナ14の負荷状況から、必要と判断されるその種類のコンテナ14の数(必要コンテナ数)を管理する。必要コンテナ数管理部32は、例えば、ある種類の1以上のコンテナ14の負荷量の合計から、公知の手法でそれら負荷量を処理するのに必要なコンテナ数(言い換えれば負荷量に見合ったコンテナ数)、すなわち必要コンテナ数を計算する。コンテナ14の負荷量としては、例えばコンテナ14が単位時間に処理した要求の数、あるいはそのコンテナ14に対する要求を保持する待ち行列に貯まっている要求の数等を用いてもよい。コンテナオートスケーリング部34は、必要コンテナ数管理部32が求めた必要コンテナ数と、現在稼働中のコンテナ14の数(現在のコンテナ数)との差に応じて、コンテナ14群のオートスケーリングを行う。
コンテナ管理装置40は、コンテナについての各種情報を管理する装置であり、コンテナ・マシン情報管理部42及びリソース使用割合管理部44を含む。コンテナ・マシン情報管理部42は、各仮想マシン12の上で実行されているコンテナ14の情報を管理する。コンテナ・マシン情報管理部42が管理する情報は、例えば図2に例示するように、各仮想マシン12のID(識別情報)に、その仮想マシン12上で実行されているコンテナ14のIDのリストを対応付けた情報である。コンテナ14のIDからそのコンテナ14の種類が特定可能である。
リソース使用割合管理部44は、図3に例示するように、コンテナ14の種類毎に、その種類のコンテナ14のリソース使用割合を管理する。ある種類のコンテナ14についてのリソース使用割合は、仮想マシン12がコンテナ14群に割り当て可能なリソース量のうち、その種類の1つのコンテナ14がどの程度の割合を使用するかを示す値である。ここで考えるコンテナ14が使用するリソース量は、コンテナ14が実際に稼働しているときの時々刻々変化するリソースの使用量ではなく、そのコンテナ14を適切に稼働させるのに必要な(いわば推奨される)リソース量である。仮想マシン12は、その仮想マシン12を管理している上位のシステムからリソースの割り当てを受け、それら割り当てられたリソースのうちの一部を仮想マシン12自体の処理(例えば仮想マシン12の動作管理)のために用い、他の多くの部分を自機上で実行されるコンテナ14群に割り当てる。
例えばリソースとしてメモリ量に着目する場合、例えば仮想マシン12が自機上のコンテナ群に対して割り当て可能なメモリ量が4GBであり、コンテナAという種類のコンテナが処理を実行するのに必要とするメモリ量が2GBである場合、コンテナAのリソース使用割合は0.5(すなわち50%)である。また例えばリソースとしてCPUコア数に着目する場合、例えば仮想マシン12が自機上のコンテナ群に対して割り当て可能なCPUコア数が8個であり、コンテナAが処理を実行するのに必要とするCPUコア数が2個である場合、コンテナAのリソース使用割合は0.25(すなわち25%)である。また、メモリ量とCPUコアのように複数のリソースに着目する場合は、コンテナのそれら個々のリソースについてのリソース使用割合を総合(例えばそれらリソース使用割合のうち最も大きい値を選ぶ等)したものを、最終的なリソース使用割合とする。
オートスケーリング連携装置50は、仮想マシンレベルのオートスケーリングを、コンテナレベルのオートスケーリングに連携させるための処理を行う。オートスケーリング連携装置50は、必要マシン数計算部52及び必要マシン数設定部54を有する。また更にバッファ率適用部56を有していてもよい。
必要マシン数計算部52は、コンテナオートスケーリング管理装置30が計算した必要コンテナ数を用いて必要マシン数を計算する。コンテナオートスケーリング管理装置30は、コンテナ14の種類毎に必要コンテナ数を計算するので、必要マシン数計算部52もコンテナ14の種類毎にその種類のコンテナ14のための必要マシン数を計算する。そして、必要マシン数計算部52は、コンテナ14の種類毎の必要マシン数を合計することで、システム全体として必要な仮想マシン12の数(全体的な必要マシン数)を計算する。
ある種類のコンテナ14についての必要マシン数は、例えば、その種類のコンテナ14についてのリソース使用割合に、その種類のコンテナ14についての必要コンテナ数を乗算することにより求める。リソース使用割合は、その種類の1台のコンテナ14が仮想マシン12のうちの何割を使用するかを示しているので、これに必要コンテナ数を乗算すれば、その種類のコンテナ14の必要コンテナ数をまかなうのに必要な仮想マシン12の数が見積もられるのである。
必要マシン数設定部54は、必要マシン数計算部52が計算した必要マシン数を仮想マシンオートスケーリング管理装置20の必要マシン数管理部22に設定する。
バッファ率適用部56は、必要マシン数計算部52が計算した必要マシン数にバッファ率を適用する。バッファ率とは、必要マシン数を多めに見積もるための1以上の係数である。例えば、必要マシン数計算部52が計算した必要マシン数に対して1より大きいバッファ率を乗算すれば、必要コンテナ数から直接導かれる必要マシン数(すなわち必要コンテナ数×リソース使用割合)より大きい値が得られる。この値を仮想マシンオートスケーリング管理装置20に設定すれば、必要コンテナ数から直接導かれる必要コンテナ数より大きい値を目標値として仮想マシン12群のオートスケーリングが行われることとなる。このように1より大きいバッファ率を用いれば、システム全体の仮想マシン12の数が、必要コンテナ数に連動しつつも、少し余裕を持った多めの数になる。コンテナ14を新たに起動する際に仮想マシン12の数が足りない場合、その時点から新たな仮想マシン12を用意するには、仮想マシン12のOS等の起動が必要なためある程度の時間がかかる。1より大きいバッファ率を用いてある程度多めの仮想マシン12を前もって用意すれば、仮想マシン12の数が増える分だけ費用はかかるものの、コンテナ数の増加により迅速に対応できる。なお、バッファ率を1とすれば、必要コンテナ数×リソース使用割合で求めた必要マシン数そのものが仮想マシンオートスケーリング管理装置20に設定されることとなる。
オートスケーリング連携装置50には、バッファ率適用部56によるバッファ率の適用を実行するか否かの設定項目や、実行する場合に用いるバッファ率の値の設定項目等があり、システムの管理者はこれらの項目の設定を行う。
次に図4を参照して、仮想マシンオートスケーリング管理装置20(特に仮想マシンオートスケーリング部24)が実行する仮想マシンレベルのオートスケーリングの処理手順を例示する。この例では、仮想マシンオートスケーリング管理装置20は、必要マシン数管理部22が保持する必要マシン数から現在のマシン数(現在稼働中の仮想マシン12の数)を減算した減算結果がプラス(正値)、マイナス(負値)、0(ゼロ)のいずれであるかを判定する(S10)。ここで用いる必要マシン数は、オートスケーリング連携装置50から設定される。
「必要マシン数−現在のマシン数」がプラスの場合、現在の仮想マシン12の数が必要なマシン数に足りていないということなので、仮想マシンオートスケーリング管理装置20は、仮想マシン12群をスケールアウトする(S12)。すなわち、新規の仮想マシン12を起動する。
「必要マシン数−現在のマシン数」が0の場合、現在のマシン数は必要マシン数に一致しており、仮想マシン12の増減は必要ない。この場合、仮想マシンオートスケーリング管理装置20は、処理を終了する。
「必要マシン数−現在のマシン数」がマイナスの場合、現在の仮想マシン12の数が必要なマシン数を上回っているということである。この場合、仮想マシンオートスケーリング管理装置20はスケールインを行う(S14)。すなわち、終了しても問題のない仮想マシン12を探して終了させる。
コンテナオートスケーリング管理装置30が行うコンテナレベルのオートスケーリングの処理手順も、図4に例示した仮想マシンオートスケーリング管理装置20の手順と同様でよい。すなわち、コンテナオートスケーリング管理装置30は、コンテナ14の種類毎に必要コンテナ数と現在のコンテナ数の差を求め、その差がプラスであればスケールアウト(その種類のコンテナ14を追加起動)し、マイナスであればスケールイン(その種類のコンテナ14をいくつか終了させる)し、0であれば現状を維持する。
次に、図5を参照して、オートスケーリング連携装置50の処理手順の一例を説明する。
この手順では、まず必要マシン数計算部52は、コンテナ・マシン情報管理部42から、システム上で現在稼働中のコンテナ14の種類(図1のコンテナA、B、C等)の一覧を取得する(S20)。次に必要マシン数計算部52は、取得した一覧に含まれる個々のコンテナ種類についてS22〜S30の処理を繰り返す。すなわち、まず必要マシン数計算部52は、それらコンテナ種類の一覧の中にS22〜S30の処理をまだ行っていないもの(未処理のもの)があるかどうかを判定し(S22)、未処理のコンテナ種類があればそれを1つ取り出す。次に、取り出したコンテナ種類について、コンテナ管理装置40からリソース使用割合の情報を取得すると共に、コンテナオートスケーリング管理装置30からそのコンテナ種類についての必要コンテナ数を取得する(S24)。次に必要マシン数計算部52は、取得したリソース使用割合と必要コンテナ数を乗算することで、そのコンテナ種類についての必要マシン数を計算する(S26)。そして、計算結果の値を、「システム全体の必要マシン数」(図5の手順の開始時に0に初期化されている)に加算する(S28)。なお、例えばクラウドサービスシステムが各ユーザに対してそれぞれそのユーザのために稼働するコンテナの数や仮想マシンの数のオートスケーリングを行う場合、図4や図5の手順はユーザ毎に行う。この場合、S28における「システム全体の必要マシン数」とはそのユーザにとって必要な仮想マシン数のことである。
S28の後、必要マシン数計算部52は、今回処理したコンテナ種類を処理済みとし(S30)、S22に戻る。
S20で取得した一覧に含まれるすべてのコンテナ種類に対して以上に説明したS22〜S30の処理を行うと、S22の判定結果がNoとなる。この場合、必要マシン数計算部52は、バッファ率適用部56によるバッファ率適用を行う設定となっているか確認し(S32)、バッファ率適用を行う設定の場合は、S22〜S30の繰り返しで求められたシステム全体の必要マシン数にそのバッファ率を乗算する(S34)。そして、乗算結果の値の小数点以下を切り上げることで、最終的な必要マシン数を求める(S36)。バッファ率適用を行わない設定の場合は、S34はスキップし、システム全体の必要マシン数の小数点以下を切り上げて最終的な必要マシン数を求める(S36)。
S36の後、必要マシン数設定部54が、S36で求められた必要マシン数を、仮想マシンオートスケーリング管理装置20の必要マシン数管理部22に設定する(すなわち、必要マシン数管理部22が保持する必要マシン数の値をS36で求められた値に更新する)。
オートスケーリング連携装置50の処理(図5)は、例えば、コンテナオートスケーリング管理装置30が必要コンテナ数を更新したことを契機として実行する。例えば、コンテナオートスケーリング管理装置30が必要コンテナ数を更新したときに、オートスケーリング連携装置50に対してプッシュ方式で通知を行ったり、API(アプリケーションプログラムインタフェース)呼出を行ったりすることで、オートスケーリング連携装置50が処理を実行する。また別の例として、オートスケーリング連携装置50は、図5に例示した処理を定期的に実行するようにしてもよく、この場合コンテナオートスケーリング管理装置30には上述したオートスケーリング連携装置50を動作させるための通知等の仕組みを持たなくてよい。
以上に説明した例では、仮想マシンオートスケーリング管理装置20は、オートスケーリング連携装置50が必要コンテナ数から求めた必要マシン数をそのままオートスケーリングの目標値として用いたが、これは一例に過ぎない。仮想マシンオートスケーリング管理装置20は、オートスケーリング連携装置50が必要コンテナ数から求めた必要マシン数を、例えば仮想マシン12群の負荷に応じて補正(あるいは仮想マシン12群の負荷から求めた必要マシン数と総合)した必要マシン数を目標値としてオートスケーリングを行ってもよい。このように、本実施形態では、仮想マシンオートスケーリング管理装置20がオートスケーリングの目標値として用いる必要マシン数に、オートスケーリング連携装置50が必要コンテナ数から求めた必要マシン数の値を反映させる。
10 コンテナ用仮想マシン群、12 仮想マシン、14 コンテナ、20 仮想マシンオートスケーリング管理装置、22 必要マシン数管理部、24 仮想マシンオートスケーリング部、30 コンテナオートスケーリング管理装置、32 必要コンテナ数管理部、34 コンテナオートスケーリング部、40 コンテナ管理装置、42 コンテナ・マシン情報管理部、44 リソース使用割合管理部、50 オートスケーリング連携装置、52 必要マシン数計算部、54 必要マシン数設定部、56 バッファ率適用部。

Claims (5)

  1. 1以上の仮想マシンと、
    前記1以上の仮想マシン上で稼働するコンテナのオートスケーリングを行うコンテナスケーリング装置と、
    前記仮想マシンの必要数と現在稼働中の前記仮想マシンの数との差に応じて仮想マシンのオートスケーリングを行う仮想マシンスケーリング装置と、
    前記コンテナスケーリング装置が求めた前記コンテナの必要数から、その必要数の前記コンテナを稼働させるのに必要な仮想マシンの数を計算する計算手段と、
    前記仮想マシンスケーリング装置が用いる前記必要数に、前記計算手段が計算した数を反映させる手段と、
    を含む、情報処理システム。
  2. コンテナスケーリング装置が求めたコンテナの必要数から、その必要数の前記コンテナを稼働させるのに必要な仮想マシンの数を計算する計算手段と、
    前記仮想マシンの必要数と現在稼働中の前記仮想マシンの数との差に応じて仮想マシンのオートスケーリングを行う仮想マシンスケーリング装置が用いる前記必要数に、前記計算手段が計算した数を反映させる手段と、
    を含むオートスケーリング連携装置。
  3. 前記計算手段は、1つの前記コンテナが1つの前記仮想マシンのリソースのうちのどの程度の割合を使用するかを示すリソース使用割合と、前記コンテナの必要数とから、前記必要な仮想マシンの数を計算する、ことを特徴とする請求項2に記載のオートスケーリング連携装置。
  4. 前記計算手段は、1つの前記コンテナが1つの前記仮想マシンのリソースのうちのどの程度の割合を使用するかを示すリソース使用割合に前記コンテナの必要数を乗算して得られる数に対して、1より大きいバッファ率を乗算することにより、前記必要な仮想マシンの数を計算する、ことを特徴とする請求項2に記載のオートスケーリング連携装置。
  5. コンピュータを、
    コンテナスケーリング装置が求めたコンテナの必要数から、その必要数の前記コンテナを稼働させるのに必要な仮想マシンの数を計算する計算手段、
    前記仮想マシンの必要数と現在稼働中の前記仮想マシンの数との差に応じて仮想マシンのオートスケーリングを行う仮想マシンスケーリング装置が用いる前記必要数に、前記計算手段が計算した数を反映させる手段、
    として機能させるためのプログラム。
JP2017057642A 2017-03-23 2017-03-23 情報処理システム、オートスケーリング連携装置及びプログラム Pending JP2018160149A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017057642A JP2018160149A (ja) 2017-03-23 2017-03-23 情報処理システム、オートスケーリング連携装置及びプログラム
US15/688,083 US10496430B2 (en) 2017-03-23 2017-08-28 Information processing system, autoscaling association apparatus, and non-transitory computer readable medium for determining a necessary number of virtual machines

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017057642A JP2018160149A (ja) 2017-03-23 2017-03-23 情報処理システム、オートスケーリング連携装置及びプログラム

Publications (1)

Publication Number Publication Date
JP2018160149A true JP2018160149A (ja) 2018-10-11

Family

ID=63582653

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017057642A Pending JP2018160149A (ja) 2017-03-23 2017-03-23 情報処理システム、オートスケーリング連携装置及びプログラム

Country Status (2)

Country Link
US (1) US10496430B2 (ja)
JP (1) JP2018160149A (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10831555B2 (en) * 2018-04-20 2020-11-10 Vmware, Inc. Methods and apparatus to improve workload domain management in virtualized server systems
KR102042431B1 (ko) * 2018-05-24 2019-11-08 주식회사 티맥스소프트 클라우드 환경에서 웹 캐싱을 위한 메타 정보 저장 방법 및 이를 사용한 웹 서버
US11726758B2 (en) * 2019-02-07 2023-08-15 Microsoft Technology Licensing, Llc Efficient scaling of a container-based application in a distributed computing system
JP2021149129A (ja) * 2020-03-16 2021-09-27 富士通株式会社 料金算出プログラム、及び料金算出方法
CN115904635B (zh) * 2023-02-16 2023-06-06 江西联创精密机电有限公司 一种基于服务器的虚拟机管理方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6277827B2 (ja) 2014-03-31 2018-02-14 富士通株式会社 情報処理装置、スケール管理方法およびプログラム
JP6394455B2 (ja) 2015-03-24 2018-09-26 富士通株式会社 情報処理システム、管理装置およびプログラム
US10353739B2 (en) * 2015-06-27 2019-07-16 Vmware, Inc. Virtual resource scheduling for containers without migration
JP6387330B2 (ja) 2015-08-21 2018-09-05 日本電信電話株式会社 管理サーバ装置及び管理プログラム

Also Published As

Publication number Publication date
US10496430B2 (en) 2019-12-03
US20180276021A1 (en) 2018-09-27

Similar Documents

Publication Publication Date Title
US10635664B2 (en) Map-reduce job virtualization
JP2018160149A (ja) 情報処理システム、オートスケーリング連携装置及びプログラム
US9940162B2 (en) Realtime optimization of compute infrastructure in a virtualized environment
US10284637B2 (en) Minimizing service restart by optimally resizing service pools
US9619263B2 (en) Using cooperative greedy ballooning to reduce second level paging activity
KR102062945B1 (ko) 정보 처리 장치 및 그의 제어 방법, 및 프로그램
US20180102982A1 (en) Equitable Sharing of System Resources in Workflow Execution
US20170353541A1 (en) Non-transitory recording medium, information processing method, management node and information processing system
WO2018107945A1 (zh) 一种实现硬件资源分配的方法、装置及存储介质
JP7331407B2 (ja) コンテナ起動ホスト選択装置、コンテナ起動ホスト選択システム、コンテナ起動ホスト選択方法及びプログラム
US9037703B1 (en) System and methods for managing system resources on distributed servers
JP5445739B2 (ja) リソース割当装置、リソース割当方法、及びプログラム
US10241822B2 (en) Information processing apparatus for moving virtual machine and method of moving virtual machine
JP2019061359A (ja) プログラム及び情報処理装置
US11513856B2 (en) Method, devices and computer program products for resource usage
Wu et al. Abp scheduler: Speeding up service spread in docker swarm
CN109189581B (zh) 一种作业调度方法和装置
US9537742B2 (en) Automatic adjustment of application launch endpoints
CN108616576B (zh) 一种调度应用服务器的方法和装置
US20220237024A1 (en) Diagonal autoscaling of serverless computing processes for reduced downtime
KR20190109638A (ko) 분산 파일 시스템을 기반으로 하는 빅데이터 처리 플랫폼의 태스크 스케줄링 방법, 이를 위한 컴퓨터 프로그램 및 컴퓨터 판독 가능 기록 매체
Sekaran et al. SIQ algorithm for efficient load balancing in cloud
CN109739649B (zh) 资源管理方法、装置、设备及计算机可读存储介质
CN110750330A (zh) 一种虚拟机创建方法、系统、电子设备及存储介质
CN110069470B (zh) 实例迁移的方法和装置