JP2017107274A - 仮想マシン増設方法、情報処理装置および仮想マシン増設システム - Google Patents
仮想マシン増設方法、情報処理装置および仮想マシン増設システム Download PDFInfo
- Publication number
- JP2017107274A JP2017107274A JP2015238358A JP2015238358A JP2017107274A JP 2017107274 A JP2017107274 A JP 2017107274A JP 2015238358 A JP2015238358 A JP 2015238358A JP 2015238358 A JP2015238358 A JP 2015238358A JP 2017107274 A JP2017107274 A JP 2017107274A
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- service
- priority
- predicted
- load
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
【課題】仮想マシンを追加対象とするサービスを適切に判断すること。【解決手段】情報処理装置1は、記憶部1aと演算部1bとを有する。記憶部1aは、仮想マシンが提供するサービスとサービスの重要度との対応関係を示す設定情報2を記憶する。演算部1bは、サービスを提供している複数の仮想マシンのうち、負荷が閾値を超えた仮想マシンX1,X2を検出し、設定情報2を参照して、仮想マシンX1の所定時間後の負荷の予測値である第1の予測負荷値と重要度Z1とに基づいて、仮想マシンX1が提供するサービスY1に対する仮想マシン増築の優先度を決め、仮想マシンX2の所定時間後の負荷の予測値である第2の予測負荷値と、重要度Z2とに基づいて、仮想マシンX2が提供するサービスY2に対する仮想マシン増築の優先度を決め、優先度が高い方に対するサービスY2を提供する仮想マシンを、優先的に構築すると決定する。【選択図】図1
Description
本発明は仮想マシン増設方法、情報処理装置および仮想マシン増設システムに関する。
情報処理装置が有するリソースを割当てられた仮想マシンが様々なサービスをユーザに提供する場合がある。仮想マシンで提供されるサービスとしては、例えば、音声サービスやメールサービスなどがある。このようなサービスを提供していると仮想マシンでは、例えばサービスに対する要求の増加により、負荷が過大となる場合がある。この場合、仮想マシンを新たに追加して、仮想マシンの数を増やすことで負荷を分散させることができる。このように、仮想マシンの数を増やすことをスケールアウトと呼ぶ。
なお、仮想マシンに関する技術としては、例えば仮想マシンの移行に関する技術が提案されている。仮想マシン管理装置は、移行元サーバおよび移行先サーバの負荷情報に基づいて、移行対象仮想マシンの移行を実行するか否かを決定する。また、仮想マシンの配置先を決定する方法に関する技術が提案されている。制御装置は、仮想マシン毎の負荷情報と物理サーバ毎の優先順位と物理サーバ毎の制約条件情報とに基づいて仮想マシンを配置する先の物理サーバを決定する。
ところで、所定のサービスを提供するための仮想マシンを構築し、起動するまでには時間がかかる。そのため、新たに追加する仮想マシンの構築中に、当該仮想マシンが提供するサービスよりも重要度の高いサービスを提供する仮想マシンの負荷が過大になるときがある。このとき新たな仮想マシンを構築できるだけの空きリソースがないこともあり得る。空きリソースが不足する場合、例えば、構築中の仮想マシンの構築を停止してリソースを解放させ、重要度の高いサービスを提供する仮想マシンにリソースを振り分けることが考えられる。
しかし、重要度が高いサービスを提供する仮想マシンの負荷が過大となっても、そのサービスのスケールアウトの緊急性が、その時点で最も高いとは限らない。例えば、重要度が高いサービスに対する負荷の増加が一時的なものである場合、負荷が過大となった他のサービスの方が、スケールアウトの緊急性が高くなる。この場合、重要度の高いサービスを提供する仮想マシンを優先的にスケールアウトすると、より緊急性が高いサービスを提供する仮想マシンを、リソース不足によりスケールアウトできなくなる可能性がある。このように、サービスを提供する仮想マシンの負荷は常に変化しており、単に重要度が高いサービスについて優先的にスケールアウトしたのでは、システム全体の運用効率上不適切な場合がある。
1つの側面では、本発明は、仮想マシンを追加対象とするサービスを適切に判断できるようにすることを目的とする。
1つの態様では、仮想マシン増設方法が提供される。この仮想マシン増設方法は、コンピュータが、サービスを提供している複数の仮想マシンのうち、負荷が閾値を超えた第1および第2の仮想マシンを検出し、第1の仮想マシンの所定時間後の負荷の予測値である第1の予測負荷値と、第1の仮想マシンが提供している第1のサービスの重要度とに基づいて、第1のサービスに対する仮想マシン増築の第1の優先度を決め、第2の仮想マシンの所定時間後の負荷の予測値である第2の予測負荷値と、第2の仮想マシンが提供している第2のサービスの重要度とに基づいて、第2のサービスに対する仮想マシン増築の第2の優先度を決め、第1の優先度と、第2の優先度のうちの優先度が高い方に対するサービスを提供する仮想マシンを、優先的に構築すると決定する。
1つの側面では、仮想マシンを追加対象とするサービスを適切に判断できる。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の仮想マシン増設システムを示す図である。仮想マシン増設システムは、情報処理装置1および情報処理装置3を含む。情報処理装置1および情報処理装置3は、ネットワークを介して接続されている。
[第1の実施の形態]
図1は、第1の実施の形態の仮想マシン増設システムを示す図である。仮想マシン増設システムは、情報処理装置1および情報処理装置3を含む。情報処理装置1および情報処理装置3は、ネットワークを介して接続されている。
情報処理装置3は、複数の仮想マシンを動作させる。例えば、情報処理装置3は、仮想マシンX1,X2を動作させる。仮想マシンX1,X2は、情報処理装置3が有するハイパーバイザによって情報処理装置3のリソースを割当てられることで動作する。情報処理装置3は、クライアント4にネットワークを介して接続されている。クライアント4は、ユーザが使用する装置である。クライアント4は、情報処理装置3で動作する仮想マシンX1,X2が提供するサービスを受付ける。
情報処理装置1は、記憶部1aおよび演算部1bを有する。記憶部1aは、RAM(Random Access Memory)などの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。演算部1bは、例えば、プロセッサである。プロセッサには、CPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。また、演算部1bは、マルチプロセッサであってもよい。
記憶部1aは、情報処理装置3で動作する複数の仮想マシンが提供するサービスとサービスの重要度との対応関係を示す設定情報2を記憶する。例えば、設定情報2は、仮想マシンX1が提供するサービスY1の重要度がZ1であることを示す。また、設定情報2は、仮想マシンX2が提供するサービスY2の重要度がZ2であることを示す。なお、記憶部1aは、仮想マシンX1がサービスY1、仮想マシンX2がサービスY2を提供していることを示す情報を記憶する。
演算部1bは、情報処理装置3で動作する複数の仮想マシンの負荷を監視する。例えば、演算部1bは、クライアント4からの仮想マシンX1,X2に対する要求が増加することにより、仮想マシンX1,X2の負荷が高まるのを検出する。そして、演算部1bは、仮想マシンX1,X2の負荷が閾値を超えたか否かを判定する。
負荷が閾値を超えた仮想マシンがある場合、演算部1bは、負荷が閾値を超えた仮想マシンの所定時間後の負荷の予測値である予測負荷値と、各仮想マシンが提供しているサービスの重要度とに基づいて、サービスに対する仮想マシン増築の優先度を決める。
例えば、演算部1bは、仮想マシンX1の負荷が閾値を超えた場合、仮想マシンX1の予測負荷値と、仮想マシンX1が提供しているサービスY1の重要度Z1とに基づいて、サービスY1に対する仮想マシン増築の優先度を決める。また、演算部1bは、仮想マシンX2の負荷が閾値を超えた場合、仮想マシンX2の予測負荷値と、仮想マシンX2が提供しているサービスY2の重要度Z2とに基づいて、サービスY2に対する仮想マシン増築の優先度を決める。
なお、予測負荷値は、例えば、現時点から仮想マシンが構築済みになる時点までに増加すると予測される負荷値に基づいて計算される。また、サービスの優先度は、そのサービスの重要度が高いほど高い値になると共に、そのサービスを提供している仮想マシンの予測負荷値が高いほど高い値になる。
演算部1bは、優先度のうち、優先度が高い方に対するサービスを提供する仮想マシンを、優先的に構築すると決定する。例えばサービスY2の方がサービスY1よりも優先度が高い場合、演算部1bは、サービスY2を適用する仮想マシンX3を、優先的に構築すると決定する。そして、演算部1bは、情報処理装置3に、サービスY2を提供する仮想マシンX3を構築するように指示をする。
第1の実施の形態によれば、サービスの重要度と緊急性を考慮して優先度が算出される。そして、優先度に基づいて、仮想マシンを追加対象とするサービスを適切に判断できる。
すなわち、予測負荷値から仮想マシンに対する今後の負荷を予測できるため、予測負荷値からスケールアウトの対象にする緊急性を判断できる。そして、予測負荷値とサービスの重要度とに基づいて優先度が計算される。これにより、サービスの重要度と緊急性を考慮して優先度が計算される。そして、仮想マシンを追加対象とするサービスが複数存在する場合に、優先度に基づいて、仮想マシンを追加対象とするサービスが決定される。すなわち、サービスの重要度と緊急性を考慮して、仮想マシンを追加対象とするサービスを適切に判断できる。
サービスの重要度に加え、緊急性を考慮して、スケールアウト対象のサービスを決定することで、例えば、重要度が高いサービスを提供する仮想マシンが過負荷であっても、緊急性が低ければ、スケールアウトの緊急性が高い他のサービスを優先してスケールアウトすることもできる。これにより、システム全体としてリソースを有効利用し、サービスの質を向上させることができる。
なお、演算部1bは、例えば、仮想マシンの負荷が閾値を超えたことを検出したとき、その仮想マシンと同じサービスを提供する仮想マシンの増築処理を開始することもできる。すなわち、演算部1bは、情報処理装置3に対して、仮想マシンのイメージデータを送信すると共に、そのイメージデータに基づく仮想マシンの起動を指示する。この場合、演算部1bは、各サービスに対する優先度の計算を、そのサービス提供用の仮想マシンの起動までの残り時間に基づいて、仮想マシンの構築処理を実施している間に繰り返し行うことができる。優先度を繰り返し計算する場合、演算部1bは、各サービスに対する優先度の計算が行われる度に優先的に構築する仮想マシンの決定処理を実施し、優先的に構築する仮想マシンの決定結果を更新する。これにより、動的に変化する予測負荷値に基づいて、仮想マシンの増築対象のサービスを適切に判断することができる。
仮想マシンの負荷が閾値を超えたときに、同じサービスを提供する仮想マシンの増築処理を開始するようにすると、優先度が高い方のサービス提供用の仮想マシンよりも先に、優先度が低い方のサービス提供用の仮想マシンの起動が完了する場合がある。この場合、演算部1bは、例えば、優先度が低い方のサービス提供用の仮想マシンの状態をストレージ装置に退避させることで、リソースを解放させる。仮想マシンの状態をストレージ装置に退避させる処理は、例えば、ハイバネーションと呼ばれる処理である。すなわち、演算部1bは、情報処理装置3に対して、優先度が低い方のサービス提供用の仮想マシンのハイバネーションを指示する。
優先度が低い方のサービス提供用の仮想マシンにリソースを解放させることで、優先度が高い方のサービス提供用の仮想マシンに割当てるリソースが確保しやすくなる。そこで演算部1bは、優先度が高い方のサービス提供用の仮想マシンにリソースを割当て、情報処理装置3に対してその仮想マシンの起動を指示する。
これにより、優先度が低いサービス提供用の仮想マシンが先に起動完了しても、優先度が高いサービス提供用の仮想マシンを、遅延無く起動させることができる。また、優先度が低いサービス提供用の仮想マシンの状態はストレージ装置に退避されている。そのため、優先度が高いサービス提供用の仮想マシンの起動後に、優先度が低いサービス提供用の仮想マシンに割当てる空きリソースが残っていれば、その仮想マシンを迅速に再起動できる。
なお、仮想マシンの増築処理には時間がかかるため、予測負荷値を計算した結果、予測負荷値が閾値未満となる場合があり得る。この場合、演算部1bは、仮想マシンの構築処理を中止する。これにより、無駄な仮想マシンの増築を抑止することができる。
[第2の実施の形態]
図2は、第2の実施の形態の仮想マシン増設システムを示す図である。第2の実施の形態の仮想マシン増設システムは、データセンター100内で構築される。データセンター100は、管理サーバ200および業務サーバ300,300a,300b,・・・を含む。管理サーバ200および業務サーバ300,300a,300b,・・・は、互いにネットワーク400を介して接続されている。例えば、ネットワーク400は、LAN(Local Area Network)である。データセンター100およびクライアント500は、ネットワーク600を介して接続されている。例えば、ネットワーク600は、WAN(Wide Area Network)やインターネットなどの広域ネットワークでもよい。クライアント500は、ネットワーク600を介して管理サーバ200および業務サーバ300,300a,300b,・・・にアクセスすることができる。
図2は、第2の実施の形態の仮想マシン増設システムを示す図である。第2の実施の形態の仮想マシン増設システムは、データセンター100内で構築される。データセンター100は、管理サーバ200および業務サーバ300,300a,300b,・・・を含む。管理サーバ200および業務サーバ300,300a,300b,・・・は、互いにネットワーク400を介して接続されている。例えば、ネットワーク400は、LAN(Local Area Network)である。データセンター100およびクライアント500は、ネットワーク600を介して接続されている。例えば、ネットワーク600は、WAN(Wide Area Network)やインターネットなどの広域ネットワークでもよい。クライアント500は、ネットワーク600を介して管理サーバ200および業務サーバ300,300a,300b,・・・にアクセスすることができる。
管理サーバ200および業務サーバ300,300a,300b,・・・は、サーバコンピュータである。管理サーバ200は、業務サーバ300,300a,300b,・・・で動作する仮想マシン(VM:Virtual Machine)をスケールアウトさせることができる。
クライアント500は、ユーザが利用するクライアントコンピュータである。図2では、クライアント500のみを図示しているが、複数のクライアントが存在してもよい。クライアント500は、業務サーバ300,300a,300b,・・・で動作するVMが提供するサービスを受付ける。すなわち、クライアント500は、クラウドコンピューティングを利用したサービスの提供を受ける。
図3は、第2の実施の形態の仮想マシン増設システムで動作する仮想マシンの例を示す図である。仮想マシン増設システムでは、業務サーバ300,300a,300b,・・・でVMが動作する。図3では、業務サーバ300で動作するVMを例として説明する。
業務サーバ300は、自装置内でVMとしてサービスノード310,310a,310b,・・・を動作させる。サービスノード310,310a,310b,・・・は、業務サーバ300が有するハイパーバイザによって業務サーバ300のリソースを割当てられることで動作する。サービスノード310,310a,310b,・・・は、クライアント500にサービスを提供する。例えば、サービスノード310,310a,310b,・・・は、音声サービスやメールサービスなどをクライアント500に提供する。
図4は、管理サーバのハードウェア例を示す図である。管理サーバ200は、プロセッサ201、RAM202、HDD203、画像信号処理部204、入力信号処理部205、読み取り装置206および通信インタフェース207を有する。各ユニットが管理サーバ200のバスに接続されている。
プロセッサ201は、管理サーバ200全体を制御する。プロセッサ201は、複数のプロセッシング要素を含むマルチプロセッサであってもよい。プロセッサ201は、例えばCPU(Central Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)またはFPGA(Field Programmable Gate Array)などである。また、プロセッサ201は、CPU、DSP、ASIC、FPGAなどのうちの2以上の要素の組み合わせであってもよい。
RAM(Random Access Memory)202は、管理サーバ200の主記憶装置である。RAM202は、プロセッサ201に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、RAM202は、プロセッサ201による処理に用いる各種データを記憶する。
HDD(Hard Disk Drive)203は、管理サーバ200の補助記憶装置である。HDD203は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD203には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。管理サーバ200は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
画像信号処理部204は、プロセッサ201からの命令に従って、管理サーバ200に接続されたディスプレイ11に画像を出力する。ディスプレイ11としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、有機EL(Electro-Luminescence)ディスプレイなど各種のディスプレイを用いることができる。
入力信号処理部205は、管理サーバ200に接続された入力デバイス12から入力信号を取得し、プロセッサ201に出力する。入力デバイス12としては、マウスやタッチパネルなどのポインティングデバイスやキーボードなどの各種の入力デバイスを用いることができる。管理サーバ200には、複数の種類の入力デバイスが接続されてもよい。
読み取り装置206は、記録媒体13に記録されたプログラムやデータを読み取る装置である。記録媒体13として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体13として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置206は、例えば、プロセッサ201からの命令に従って、記録媒体13から読み取ったプログラムやデータをRAM202またはHDD203に格納する。
通信インタフェース207は、ネットワーク400を介して、業務サーバ300,300a,300b,・・・と通信を行う。
なお、業務サーバ300,300a,300b,・・・も管理サーバ200と同様のハードウェアにより実現できる。
なお、業務サーバ300,300a,300b,・・・も管理サーバ200と同様のハードウェアにより実現できる。
以上のようなハードウェアによって、VMを用いて、クライアント500を使用するユーザに対して、様々なサービスが提供される。そして、サービスを提供するVMの負荷が過大となると、そのサービスを提供するVMのスケールアウトが行われる。サービスの状態は、スケールアウト処理の進行に伴って変化する。
図5は、サービスの状態遷移図を示す図である。図5では、サービスを提供するVMをスケールアウトするまでに遷移する状態を示している。サービスは、状態T1〜T6を経て、VMをスケールアウトさせた状態となる。また、後述するようにある状態でVMの負荷が閾値未満になった場合、スケールアウトを中止することもある。以下、各状態について説明する。
状態T1は、安定サービス中である。ここで、VMが提供するサービスには、トラフィック量の閾値が設定されている。トラフィック量の単位は、“req/sec”である。例えば、クライアント500からの要求が増加することでトラフィック量が増加する。そして、サービスに対するトラフィック量が増加することで、VMの負荷も高くなる。すなわち、サービスに対するトラフィック量とVMの負荷は相関関係にある。そのため、第2の実施の形態では、サービスに対するトラフィック量の増減からVMの負荷を検出する。
トラフィック量が閾値未満の場合、VMは、サービスを安定して提供する。
状態T2は、VM構築用のイメージ転送中である。トラフィック量が増加して閾値以上になった場合、VMの負荷が過大になっていると考えられる。そこで、負荷を分散させるためにスケールアウトの処理が開始される。状態T2は、追加するVMを構築する業務サーバにイメージファイルを転送中の状態である。また、状態T2の時点で、今後トラフィック量が閾値未満になると予測される場合、状態T2は、状態T1に遷移する。
状態T2は、VM構築用のイメージ転送中である。トラフィック量が増加して閾値以上になった場合、VMの負荷が過大になっていると考えられる。そこで、負荷を分散させるためにスケールアウトの処理が開始される。状態T2は、追加するVMを構築する業務サーバにイメージファイルを転送中の状態である。また、状態T2の時点で、今後トラフィック量が閾値未満になると予測される場合、状態T2は、状態T1に遷移する。
状態T3は、VM起動待機中である。状態T3は、イメージファイルの転送が完了した状態である。また、状態T3の時点で、今後トラフィック量が閾値未満になると予測される場合、状態T3は、状態T1に遷移する。
状態T4は、VM起動中である。状態T4は、スケールアウトされたVMの立ち上げ処理を実行中の状態である。
状態T5は、一時停止中である。状態T5は、スケールアウトされたVMを構築した業務サーバが有するハイパーバイザの一時停止機能により、スケールアウトされたVMが一時停止になった状態である。ハイパーバイザの一時停止機能には、VMを対象としたハイバネーション機能が含まれる。そのため、状態T5に遷移した際に、スケールアウトされたVMが読み込まれたメモリ内の情報が、当該VMを構築した業務サーバが有するHDDに一時的に退避される。そして、スケールアウトされたVMに割当てられていたリソース(プロセッサおよびメモリ)が解放される。また、状態T5の時点で、今後トラフィック量が閾値未満になると予測される場合、状態T5は、状態T1に遷移する。
状態T5は、一時停止中である。状態T5は、スケールアウトされたVMを構築した業務サーバが有するハイパーバイザの一時停止機能により、スケールアウトされたVMが一時停止になった状態である。ハイパーバイザの一時停止機能には、VMを対象としたハイバネーション機能が含まれる。そのため、状態T5に遷移した際に、スケールアウトされたVMが読み込まれたメモリ内の情報が、当該VMを構築した業務サーバが有するHDDに一時的に退避される。そして、スケールアウトされたVMに割当てられていたリソース(プロセッサおよびメモリ)が解放される。また、状態T5の時点で、今後トラフィック量が閾値未満になると予測される場合、状態T5は、状態T1に遷移する。
状態T6は、スケールアウトサービス中である。状態T6は、スケールアウトされたVMが一時停止状態から起動した状態であり、再度、当該VMにリソースが割当てられてスケールアウトの処理が完了する状態である。以下、この状態をVM起動完了という場合がある。また、状態T6の時点で、トラフィック量が低下し、スケールアウトされたVMが撤去された場合、状態T6は、状態T1に遷移する。
次に、スケールアウトを実現するために管理サーバ200が有する機能について説明する。
図6は、管理サーバの機能例を示す図である。管理サーバ200は、記憶部210、監視部220、予測部230およびVM管理部240を有する。
図6は、管理サーバの機能例を示す図である。管理サーバ200は、記憶部210、監視部220、予測部230およびVM管理部240を有する。
記憶部210は、各サービスのスケールアウトの要否判断に利用する情報を記憶する。記憶部210は、例えば、RAM202またはHDD203に確保した記憶領域として実装される。記憶部210に記憶される情報には、総リソース管理テーブル211、状態管理テーブル212、利用リソーステーブル213、履歴テーブル214、予約リソーステーブル215、設定ファイル216がある。
総リソース管理テーブル211には、業務サーバ300,300a,300b,・・・が有するリソース量の合計を示す情報が登録される。状態管理テーブル212には、図5で説明した状態を示す情報が登録される。利用リソーステーブル213には、業務サーバ300,300a,300b,・・・で動作するVMに割当てられているリソース量を示す情報が登録される。履歴テーブル214には、過去のある時点のサービスに対するトラフィック量を示す情報が登録される。予約リソーステーブル215には、スケールアウトで新規追加されるVMに割当てるリソース量を示す情報が登録される。設定ファイル216には、サービスの重要度などを示す情報が登録される。
監視部220、予測部230およびVM管理部240は、例えば、プロセッサ201が実行するプログラムのモジュールとして実装される。
監視部220は、周期的に業務サーバ300,300a,300b,・・・で動作するVMからサービスに対するトラフィック量を取得する。監視部220は、取得したトラフィック量を履歴テーブル214に登録する。また、監視部220は、取得したトラフィック量に基づいて、サービス毎に、サービスに対するトラフィック量が閾値を超えるか否かを監視する。そして、監視部220は、トラフィック量が閾値を超えたサービスを提供するVMをスケールアウトの対象に決定する。
監視部220は、周期的に業務サーバ300,300a,300b,・・・で動作するVMからサービスに対するトラフィック量を取得する。監視部220は、取得したトラフィック量を履歴テーブル214に登録する。また、監視部220は、取得したトラフィック量に基づいて、サービス毎に、サービスに対するトラフィック量が閾値を超えるか否かを監視する。そして、監視部220は、トラフィック量が閾値を超えたサービスを提供するVMをスケールアウトの対象に決定する。
予測部230は、VM起動完了時点における、スケールアウト対象のVMが提供するサービスに対するトラフィック量(予測トラフィック量)を予測して算出する。さらに予測部230は、予測トラフィック量を処理可能なリソース量(予約リソース量)を算出し、予約リソース量を予約リソーステーブル215に登録する。
VM管理部240は、サービスの重要度と緊急性を考慮して優先度を算出する。緊急性は、予測トラフィック量に基づいて判断できる。例えば、VM管理部240は、予測トラフィック量が多いほど、スケールアウトの対象にする緊急性が高いと判断する。詳細には、VM管理部240は、予測トラフィック量が閾値に対して超過するトラフィック量の比率(トラフィック超過比率)から緊急性を判断する。トラフィック超過比率は、次の式(1)により算出される。
トラフィック超過比率=((予測トラフィック量−閾値)/予測トラフィック量)×100・・・(1)
VM管理部240は、トラフィック超過比率とサービスの重要度とに基づいて優先度を算出する。優先度は、次の式(2)に従って算出される。
VM管理部240は、トラフィック超過比率とサービスの重要度とに基づいて優先度を算出する。優先度は、次の式(2)に従って算出される。
優先度=(トラフィック超過比率/100)×重要度・・・(2)
VM管理部240は、優先度に基づいて、VMを追加対象とするサービスを決定する。VM管理部240は、VMを追加するサービスを決定すると、スケールアウトで新規追加するVMを構築する業務サーバにイメージファイルを送信する。そして、VM管理部240は、当該業務サーバにVM起動指示を行う。
VM管理部240は、優先度に基づいて、VMを追加対象とするサービスを決定する。VM管理部240は、VMを追加するサービスを決定すると、スケールアウトで新規追加するVMを構築する業務サーバにイメージファイルを送信する。そして、VM管理部240は、当該業務サーバにVM起動指示を行う。
以上のような機能により、サービスの重要度と、そのサービスのトラフィック超過比率とに基づいて、予測トラフィック量が閾値を超えたサービスについてのスケールアウトの優先度が決定される。そして、優先度が高いサービスを提供するVMに対して優先的にリソースが割当てられ、スケールアウトが実施される。
図7は、トラフィック超過比率と重要度の相関関係を示す図である。縦軸は、サービスの重要度を示している。縦軸の上方向の位置ほど重要度が高く、縦軸の下方向の位置ほど重要度が低いことを示している。横軸は、トラフィック超過比率を示している。横軸の右方向の位置ほどトラフィック超過比率が高く、横軸の左方向の位置ほどトラフィック超過比率が低いことを示している。
優先度は、式(2)に基づいて、トラフィック超過比率とサービスの重要度とに基づいて算出される。例えば、図7は、トラフィック超過比率が高くなるほど緊急性が高くなり、サービスの重要度が高いのであれば、優先的にVMを追加対象にするために優先度が高くなることを示している。また、図7は、トラフィック超過比率が低くなるほど緊急性が低くなり、サービスの重要度が低いのであれば、VMを追加対象にしなくてもよいので優先度が低くなることを示している。
次に、記憶部210に格納される情報について詳細に説明する。
図8は、総リソース管理テーブルの例を示す図である。総リソース管理テーブル211は、記憶部210に格納される。総リソース管理テーブル211は、CPUコア数、メモリ量およびディスク量の項目を含む。
図8は、総リソース管理テーブルの例を示す図である。総リソース管理テーブル211は、記憶部210に格納される。総リソース管理テーブル211は、CPUコア数、メモリ量およびディスク量の項目を含む。
CPUコア数の項目には、業務サーバ300,300a,300bが有するCPUコアの合計数が登録される。メモリ量の項目には、業務サーバ300,300a,300bが有するRAMの合計容量が登録される。ディスク量の項目には、業務サーバ300,300a,300bが有するHDDの合計容量が登録される。
例えば、総リソース管理テーブル211には、CPUコア数が“10core”、メモリ量が“10GB”およびディスク量が“2000GB”という情報が登録される。
これは、業務サーバ300,300a,300bが有するCPUコアの合計数が“10core”、RAMの合計容量が“10GB”、HDDの合計容量が“2000GB”であることを示す。
これは、業務サーバ300,300a,300bが有するCPUコアの合計数が“10core”、RAMの合計容量が“10GB”、HDDの合計容量が“2000GB”であることを示す。
図9は、状態管理テーブルの例を示す図である。状態管理テーブル212は、記憶部210に格納される。状態管理テーブル212は、サービスID(Identifier)およびステータスの項目を含む。
サービスIDの項目には、サービスを識別する情報が登録される。ステータスの項目には、ステータスを示す情報が登録される。
例えば、状態管理テーブル212には、サービスIDが“SA”、ステータスが“VM起動待機中”という情報が登録される。これは、サービスID“SA”を提供するVMのスケールアウトの処理が開始され、追加するVMを構築する業務サーバにイメージファイルの転送が完了した状態(“VM起動待機中”)であることを示す。
例えば、状態管理テーブル212には、サービスIDが“SA”、ステータスが“VM起動待機中”という情報が登録される。これは、サービスID“SA”を提供するVMのスケールアウトの処理が開始され、追加するVMを構築する業務サーバにイメージファイルの転送が完了した状態(“VM起動待機中”)であることを示す。
図10は、利用リソーステーブルの例を示す図である。利用リソーステーブル213は、記憶部210に格納される。利用リソーステーブル213は、仮想マシン、サービスID、CPUコア数、メモリ量およびディスク量の項目を含む。
仮想マシンの項目には、仮想マシンを示す情報が登録される。サービスIDの項目には、サービスを識別する情報が登録される。CPUコア数の項目には、現在動作しているVMに割当てられているCPUコア数を示す情報が登録される。メモリ量の項目には、現在動作しているVMに割当てられているメモリ量を示す情報が登録される。ディスク量の項目には、現在動作しているVMに割当てられているディスク量を示す情報が登録される。
例えば、利用リソーステーブル213の項目には、仮想マシンが“サービスノード1”、サービスIDが“SA”、CPUコア数が“4core”、メモリ量が“4GB”およびディスク量が“400GB”という情報が登録される。
これは、サービスID“SA”を提供している仮想マシン“サービスノード1”に割当てられているCPUコア数が“4core”、メモリ量が“4GB”、ディスク量が“400GB”であることを示す。
図11は、履歴テーブルの例を示す図である。履歴テーブル214は、記憶部210に格納される。履歴テーブル214は、サービスID、計測時刻およびトラフィック量の項目を含む。
サービスIDの項目には、サービスを識別する情報が登録される。計測時刻の項目には、時刻を示す情報が登録される。トラフィック量の項目には、トラフィック量を示す情報が登録される。
例えば、履歴テーブル214には、サービスIDが“SA”、計測時刻が“hms1”およびトラフィック量が“TR11”という情報が登録される。
これは、計測時刻“hms1”におけるサービスID“SA”に対するトラフィック量が“TR11”であることを示す。
これは、計測時刻“hms1”におけるサービスID“SA”に対するトラフィック量が“TR11”であることを示す。
図12は、予約リソーステーブルの例を示す図である。予約リソーステーブル215は、記憶部210に格納される。予約リソーステーブル215は、サービスID、CPUコア数、メモリ量およびディスク量の項目を含む。
サービスIDの項目には、サービスを識別する情報が登録される。CPUコア数の項目には、スケールアウトで追加するVMに割当てるCPUコア数を示す情報が登録される。メモリ量の項目には、スケールアウトで追加するVMに割当てるメモリ量を示す情報が登録される。ディスク量の項目には、スケールアウトで追加するVMに割当てるディスク量を示す情報が登録される。
例えば、予約リソーステーブル215の項目には、サービスIDが“SA”、CPUコア数が“2core”、メモリ量が“2GB”およびディスク量が“200GB”という情報が登録される。
これは、サービスID“SA”を提供するVMをスケールアウトで追加するVMに割当てるリソースとして、CPUコア数“2core”、メモリ量“2GB”、ディスク量“200GB”が予約されていることを示す。
図13は、設定ファイルの例を示す図である。設定ファイル216は、記憶部210に格納される。設定ファイル216は、サービスID、閾値および重要度の項目を含む。
サービスIDの項目には、サービスを識別する情報が登録される。閾値の項目には、トラフィック量の閾値を示す情報が登録される。重要度の項目には、サービスの重要度を示す情報が登録される。
サービスIDの項目には、サービスを識別する情報が登録される。閾値の項目には、トラフィック量の閾値を示す情報が登録される。重要度の項目には、サービスの重要度を示す情報が登録される。
例えば、設定ファイル216には、サービスIDが“SA”、閾値が“TR1”、重要度が“50”という情報が登録される。これは、サービスID“SA”に対する閾値が“TR1”であることを示す。また、サービスID“SA”の重要度が“50”であることを示す。
以上のような情報を用いることで、サービス毎に、スケールアウトの優先度が適切に判定できる。そして、優先度が高いサービスから優先的にスケールアウトが実施される。スケールアウトの対象となったサービスは、図5に示すような状態遷移を経て、スケールアウトした状態でのサービスが開始される。以下、図5に示した各状態から他の状態に遷移するかどうかの判定処理について、詳細に説明する。
図14は、状態遷移の処理例(その1)を示すフローチャートである。図14は、状態T1から状態T2に遷移する場合である。以下、図14に示す処理をステップ番号に沿って説明する。
(S11)監視部220は、業務サーバ300,300a,300bを周期的に監視し、あるサービスに対するトラフィック量が閾値を超えたことを検出する。例えば、監視部220は、サービスID“SA”に対するトラフィック量が閾値を超えたことを検出する。なお、閾値は、設定ファイル216の閾値が用いられる。
監視部220は、トラフィック量が閾値を超えたサービスを提供するVMをスケールアウトの対象に決定する。以下の処理は、トラフィック量が閾値を超えたサービスに対して実行される。
(S12)予測部230は、VM起動完了時点における、スケールアウト対象のVMが提供するサービスに対するトラフィック量の予測値(予測トラフィック量T)を算出する。予測トラフィック量Tは、次の式(3)に従って算出される。なお、現在時刻をt0、現在時刻のトラフィック量をf0、前回トラフィック量の履歴を取得した時刻をt1、前回履歴を取得したときのトラフィック量をf1、現在時刻からVM起動完了時点までの時間をtaとする。予測部230は、ステップS11で検出したトラフィック量をトラフィック量f0としてもよい。予測部230は、履歴テーブル214を参照して、時刻t1、トラフィック量f1を取得する。時間taは、過去に計測されたVM起動完了時点までの時間に基づいて決められる。
(S13)予測部230は、サービスに対する予測トラフィック量を処理可能な予約リソース量を算出する。例えば、予測部230は、過去の履歴に基づいて、予測トラフィック量のうちの閾値を超過した分について処理可能なVMを動作させることができるリソース量を、予測リソース量として算出する。
予測部230は、スケールアウトで新規追加するVMを構築する業務サーバを決定する。例えば、予測部230は、予約リソース量に相当する空きリソースを有する業務サーバのうちの1台を、VMを構築する業務サーバに決定する。
(S14)予測部230は、予約リソース量を予約リソーステーブル215に登録する。
(S15)VM管理部240は、状態管理テーブル212のステータスの項目を安定サービス中からイメージ転送中に更新する。
(S15)VM管理部240は、状態管理テーブル212のステータスの項目を安定サービス中からイメージ転送中に更新する。
(S16)VM管理部240は、スケールアウトで新規追加するVMを構築する業務サーバに、トラフィック量が閾値を超えたサービスを提供するVM構築用のイメージファイルを転送する。そして、処理を終了する。
ここで、予約リソース量の算出に関して説明する。
図15は、予約リソース量を説明するための図である。図15で示すグラフの左の縦軸は、トラフィック量を示している。右の縦軸は、リソース量を示している。横軸は、時間を示している。
図15は、予約リソース量を説明するための図である。図15で示すグラフの左の縦軸は、トラフィック量を示している。右の縦軸は、リソース量を示している。横軸は、時間を示している。
グラフ線M1は、あるサービスに対するトラフィック量が閾値を超え、トラフィック量が予測開始時刻からVM起動完了時点まで増加されると予測される状態を示している。
幅N1は、VM起動完了時点の予測トラフィック量を示している。幅N2は、閾値を超えた時点からVM起動完了時点までに増加するトラフィック量を示している。
幅N1は、VM起動完了時点の予測トラフィック量を示している。幅N2は、閾値を超えた時点からVM起動完了時点までに増加するトラフィック量を示している。
予測部230は、図15に示すように、VM起動完了時点までに増加するトラフィック量を処理できるリソース量を少なくとも新規追加するVMに割当てるように、予約リソース量を算出する。
次に、状態T2から状態T3に遷移する場合を説明する。
図16は、状態遷移の処理例(その2)を示すフローチャートである。図16は、状態T2から状態T3に遷移する場合であり、イメージファイルを転送した場合に実行される処理である。以下、図16に示す処理をステップ番号に沿って説明する。
図16は、状態遷移の処理例(その2)を示すフローチャートである。図16は、状態T2から状態T3に遷移する場合であり、イメージファイルを転送した場合に実行される処理である。以下、図16に示す処理をステップ番号に沿って説明する。
(S21)VM管理部240は、状態T2となっているサービスについてのイメージファイルの転送を完了する。
(S22)予測部230は、状態T2となっているサービスについて、VM起動完了時点における予測トラフィック量を算出する。予測トラフィック量は、式(3)に従って、算出される。
(S22)予測部230は、状態T2となっているサービスについて、VM起動完了時点における予測トラフィック量を算出する。予測トラフィック量は、式(3)に従って、算出される。
(S23)予測部230は、予測トラフィック量を処理可能な予約リソース量を算出する。
(S24)予測部230は、予約リソース量を予約リソーステーブル215に登録する。
(S24)予測部230は、予約リソース量を予約リソーステーブル215に登録する。
(S25)VM管理部240は、状態T2となっているサービスについて、状態管理テーブル212のステータスの項目をイメージ転送中からVM起動待機中に更新する。そして、処理を終了する。
図17は、状態遷移の処理例(その3)を示すフローチャートである。図17は、状態T2,T3,T4,T5のいずれかの場合に実行される。また、図17の処理は、周期的に実行される。以下、図17に示す処理をステップ番号に沿って説明する。
(S31)予測部230は、状態管理テーブル212を参照し、ステータスの項目がイメージ転送中、VM起動待機中、VM起動中、一時停止中のいずれかに対応するサービスIDを特定する。予測部230は、特定したサービスID毎に、VM起動完了時点における予測トラフィック量を算出する。予測トラフィック量は、式(3)に従って、算出される。
(S32)予測部230は、設定ファイル216のサービスIDと閾値を参照し、サービスID毎に、予測トラフィック量が閾値未満であるか否かを判定する。閾値未満のサービスIDについては、処理をステップS51に進める。閾値以上のサービスIDについては、処理をステップS33に進める。
(S33)VM管理部240は、設定ファイル216のサービスIDと閾値を参照し、閾値以上のサービスID毎に、トラフィック超過比率を算出する。トラフィック超過比率は、式(1)に従って算出される。
(S34)VM管理部240は、設定ファイル216のサービスIDと重要度を参照し、閾値以上のサービスID毎に、優先度を算出する。優先度は、式(2)に従って算出される。
(S35)VM管理部240は、サービスIDに優先度を対応付けて、優先度の高い順にソートする。
(S36)VM管理部240は、残リソース量を算出する。具体的には、VM管理部240は、総リソース管理テーブル211に登録されているリソース量を利用リソーステーブル213に登録されている全てのリソース量で減算して、残リソース量を算出する。
(S36)VM管理部240は、残リソース量を算出する。具体的には、VM管理部240は、総リソース管理テーブル211に登録されているリソース量を利用リソーステーブル213に登録されている全てのリソース量で減算して、残リソース量を算出する。
(S37)VM管理部240は、ソートされた全てのサービスについて処理済みであるか否かを判定する。処理済みの場合、処理を終了する。処理済みでない場合、処理をステップS38に進める。
(S38)VM管理部240は、ソートした順番にサービスを1つ選択する。
(S39)VM管理部240は、予約リソーステーブル215に登録されている予約リソース量を残リソース量に割当て可能であるか否かを判定する。割当て可能な場合、VM管理部240は、スケールアウトで新規追加するVMを構築する業務サーバにVM起動指示を送信する。そして、処理をステップS40に進める。割当て可能でない場合、処理を終了する。
(S39)VM管理部240は、予約リソーステーブル215に登録されている予約リソース量を残リソース量に割当て可能であるか否かを判定する。割当て可能な場合、VM管理部240は、スケールアウトで新規追加するVMを構築する業務サーバにVM起動指示を送信する。そして、処理をステップS40に進める。割当て可能でない場合、処理を終了する。
また、VM管理部240は、本処理の2回目以降、残リソース量を前回の判定で利用した予約リソース量で減算する。そして、VM管理部240は、減算された残リソース量を用いて、予約リソース量を割当て可能であるか否かを判定する。
(S40)VM管理部240は、状態管理テーブル212を参照し、ステップS38で選択したサービスに対応するステータスの項目がVM起動待機中であるか否かを判定する。VM起動待機中の場合、処理をステップS41に進める。VM起動待機中でない場合、処理をステップS61に進める。
(S41)VM管理部240は、状態管理テーブル212のステータスの項目をVM起動待機中からVM起動中に更新する。
(S42)VM管理部240は、利用リソーステーブル213に予約リソース量を加算する。そして、処理をステップS37に進める。
(S42)VM管理部240は、利用リソーステーブル213に予約リソース量を加算する。そして、処理をステップS37に進める。
図18は、予測トラフィック量が閾値未満になった場合の処理の例を示すフローチャートである。以下、図18に示す処理をステップ番号に沿って説明する。
(S51)VM管理部240は、状態管理テーブル212のステータスの項目がイメージ転送中またはVM起動待機中であるか否かを判定する。イメージ転送中またはVM起動待機中の場合、処理をステップS53に進める。イメージ転送中またはVM起動待機中でない場合、処理をステップS52に進める。
(S51)VM管理部240は、状態管理テーブル212のステータスの項目がイメージ転送中またはVM起動待機中であるか否かを判定する。イメージ転送中またはVM起動待機中の場合、処理をステップS53に進める。イメージ転送中またはVM起動待機中でない場合、処理をステップS52に進める。
(S52)VM管理部240は、イメージファイルを転送した先の業務サーバにVMインスタンスの削除を指示する。
(S53)VM管理部240は、イメージファイルを転送した先の業務サーバにイメージファイルの削除を指示する。
(S53)VM管理部240は、イメージファイルを転送した先の業務サーバにイメージファイルの削除を指示する。
(S54)VM管理部240は、状態管理テーブル212のステータスの項目を安定サービス中に更新する。
(S55)VM管理部240は、イメージファイルを転送した先の業務サーバに、予約していたリソースの解放を指示する。
(S55)VM管理部240は、イメージファイルを転送した先の業務サーバに、予約していたリソースの解放を指示する。
(S56)VM管理部240は、予約リソーステーブル215からスケールアウトを解除されるVMが提供するサービスIDのレコードを削除する。そして、処理を終了する。
また、図18の処理において、VM起動中の場合、VM管理部240は、スケールアウトで新規追加するVMの構築を待って、VMインスタンスとイメージファイルを削除し、安定サービス中に遷移させてもよい。そして、VM管理部240は、予約していたリソースの解放を指示し、予約リソーステーブル215からレコードを削除する。
また、図18の処理において、VM起動中の場合、VM管理部240は、スケールアウトで新規追加するVMの構築を待って、VMインスタンスとイメージファイルを削除し、安定サービス中に遷移させてもよい。そして、VM管理部240は、予約していたリソースの解放を指示し、予約リソーステーブル215からレコードを削除する。
図19は、VM起動待機中でない状態で予約リソース量を割当て可能な場合の処理の例を示すフローチャートである。以下、図19に示す処理をステップ番号に沿って説明する。
(S61)VM管理部240は、状態管理テーブル212を参照し、ステップS38で選択したサービスに対応するステータスの項目が一時停止中であるか否かを判定する。一時停止中の場合、処理をステップS62に進める。一時停止中でない場合、処理をステップS37に進める。
(S62)VM管理部240は、スケールアウトで新規追加するVMを構築した業務サーバに一時停止の解除指示を送信する。
(S63)VM管理部240は、状態管理テーブル212のステータスの項目を一時停止中からスケールアウトサービス中に更新する。
(S63)VM管理部240は、状態管理テーブル212のステータスの項目を一時停止中からスケールアウトサービス中に更新する。
(S64)VM管理部240は、利用リソーステーブル213に予約リソース量を加算する。そして、処理をステップS37に進める。
図17〜図19では、仮想マシンの構築処理が実施されている間に繰り返し行われる。優先度の計算が繰り返し実行されることで、動的に変化する予測負荷値に基づいて、仮想マシンの増築対象のサービスを適切に判断することができる。
図17〜図19では、仮想マシンの構築処理が実施されている間に繰り返し行われる。優先度の計算が繰り返し実行されることで、動的に変化する予測負荷値に基づいて、仮想マシンの増築対象のサービスを適切に判断することができる。
図20は、状態遷移の処理例(その4)を示すフローチャートである。図20は、状態T4から状態T5に遷移する場合である。以下、図20に示す処理をステップ番号に沿って説明する。
(S71)VM管理部240は、スケールアウトで新規追加するVMを構築した業務サーバが有するハイパーバイザの一時停止機能により、当該VMが一時停止になった旨を当該業務サーバから受信する。
(S72)VM管理部240は、状態管理テーブル212のステータスの項目をVM起動中から一時停止中に更新する。
(S73)VM管理部240は、利用リソーステーブル213から予約リソーステーブル215に登録されている予約リソース量を減算する。そして、処理を終了する。
(S73)VM管理部240は、利用リソーステーブル213から予約リソーステーブル215に登録されている予約リソース量を減算する。そして、処理を終了する。
ステップS71では、VM管理部240がハイパーバイザの一時停止機能により、一時停止になった旨を受信している。受信した時点では、ハイパーバイザの一時停止機能により、新規追加されたVMに割当てられたリソースが解放されている。ここで、ハイパーバイザの一時停止機能にハイバネーション機能が含まれていない場合、VM管理部240が当該ハイパーバイザを有する業務サーバにリソースの解放を指示してもよい。これにより、優先度が低いサービスのVMに対して、先に割当てられていたリソースが解放されるため、後に、優先度が高いサービスのVMをスケールアウトしたい場合、リソースの確保がしやすくできる。
図21は、状態遷移の処理例(その5)を示すフローチャートである。図21は、状態T6から状態T1に遷移する場合である。以下、図21に示す処理をステップ番号に沿って説明する。
(S81)監視部220は、業務サーバ300,300a,300bを周期的に監視し、スケールアウトしたVMが提供するサービスに対するトラフィック量が低下したことを検出する。
(S82)VM管理部240は、イメージファイルを転送した先の業務サーバにVMインスタンスの削除を指示する。
(S83)VM管理部240は、イメージファイルを転送した先の業務サーバに、イメージファイルの削除を指示する。
(S83)VM管理部240は、イメージファイルを転送した先の業務サーバに、イメージファイルの削除を指示する。
(S84)VM管理部240は、状態管理テーブル212のステータスの項目をスケールアウトサービス中から安定サービス中に更新する。
(S85)VM管理部240は、イメージファイルを転送した先の業務サーバに、リソースの解放を指示する。そして、処理を終了する。
(S85)VM管理部240は、イメージファイルを転送した先の業務サーバに、リソースの解放を指示する。そして、処理を終了する。
以上のような処理によって、スケールアップまでの段階毎に優先度が算出され、その都度、適切な優先度判定が行われる。その結果、トラフィック量の動的変化に伴って、各サービスのスケールアップの緊急性が変化すると、その緊急性の変化に合わせて、適切なサービスに対してスケールアップを実施することができる。なお、第2の実施の形態では、繰り返し優先度を計算することになるが、例えばステップS32で予測トラフィック量が閾値未満の場合、優先度の算出をせずに、スケールアップ用のVMインスタンスの削除処理に移行している。これにより、無駄な仮想マシンの増築を抑止すると共に、優先度の算出処理負担を軽減できる。
次に、スケールアウト処理の具体例を示して説明する。
図22は、スケールアウト処理の具体例(その1)を示す図である。以下の具体例では、サービスノード310が、サービスID“SA”を提供しているものとする。また、サービスノード310aが、サービスID“SB”を提供しているものとする。
図22は、スケールアウト処理の具体例(その1)を示す図である。以下の具体例では、サービスノード310が、サービスID“SA”を提供しているものとする。また、サービスノード310aが、サービスID“SB”を提供しているものとする。
図22では、クライアント500からのアクセスの増加により、サービスID“SA”に対するトラフィック量が閾値を超過したことを示している。
図23は、スケールアウト処理の具体例(その2)を示す図である。図23の上部には、サービスID“SA”,“SB”に対するトラフィック量と時間との関係を示すグラフが示されている。グラフの縦軸はトラフィック量を示している。グラフの横軸は、時間を示している。グラフ線321は、サービスID“SA”に対するトラフィック量を示している。グラフ線322は、サービスID“SB”に対するトラフィック量を示している。図23では、時刻T1におけるサービスID“SA”,“SB”に対するトラフィック量について示している。ここで、サービスID“SA”,“SB”に対するトラフィック量の閾値は同じであるものとする。時刻T1では、サービスID“SA”に対するトラフィック量が閾値に達している。すなわち、図22の状態である。一方、時刻T1では、サービスID“SB”に対するトラフィック量が閾値に達していない。
図23は、スケールアウト処理の具体例(その2)を示す図である。図23の上部には、サービスID“SA”,“SB”に対するトラフィック量と時間との関係を示すグラフが示されている。グラフの縦軸はトラフィック量を示している。グラフの横軸は、時間を示している。グラフ線321は、サービスID“SA”に対するトラフィック量を示している。グラフ線322は、サービスID“SB”に対するトラフィック量を示している。図23では、時刻T1におけるサービスID“SA”,“SB”に対するトラフィック量について示している。ここで、サービスID“SA”,“SB”に対するトラフィック量の閾値は同じであるものとする。時刻T1では、サービスID“SA”に対するトラフィック量が閾値に達している。すなわち、図22の状態である。一方、時刻T1では、サービスID“SB”に対するトラフィック量が閾値に達していない。
監視部220は、周期的な監視により、サービスID“SA”に対するトラフィック量が閾値を超えたことを検出する。予測部230は、サービスID“SA”に対するVM起動完了時点の予測トラフィック量を算出し、予測トラフィック量を処理可能な予約リソース量を算出する。予測部230は、予約リソース量を予約リソーステーブル215に登録する。VM管理部240は、サービスID“SA”に対応する状態管理テーブル212のステータスの項目を安定サービス中からイメージ転送中に更新する。VM管理部240は、スケールアウトで新規追加するVMを構築する業務サーバにイメージファイルを転送する。
図24は、スケールアウト処理の具体例(その3)を示す図である。図24では、クライアント500からのアクセスの増加により、サービスID“SB”に対するトラフィック量が閾値を超過したことを示している。
図25は、スケールアウト処理の具体例(その4)を示す図である。図25では、時刻T2におけるサービスID“SA”,“SB”に対するトラフィック量について示している。時刻T2では、サービスID“SB”に対するトラフィック量が閾値に達している。すなわち、図24の状態である。
監視部220は、周期的な監視により、サービスID“SB”に対するトラフィック量が閾値を超えたことを検出する。予測部230は、サービスID“SB”に対するVM起動完了時点の予測トラフィック量を算出し、予測トラフィック量を処理可能な予約リソース量を算出する。予測部230は、予約リソース量を予約リソーステーブル215に登録する。VM管理部240は、サービスID“SB”に対応する状態管理テーブル212のステータスの項目を安定サービス中からイメージ転送中に更新する。VM管理部240は、スケールアウトで新規追加するVMを構築する業務サーバにイメージファイルを転送する。
図26は、スケールアウト処理の具体例(その5)を示す図である。図26では、時刻T3におけるサービスID“SA”,“SB”に対するトラフィック量について示している。
予測部230は、イメージファイルの転送を完了すると再度、サービスID“SA”に対するVM起動完了時点の予測トラフィック量を算出し、予測トラフィック量を処理可能な予約リソース量を算出する。予測部230は、予約リソース量を予約リソーステーブル215に登録する。VM管理部240は、サービスID“SA”に対応する状態管理テーブル212のステータスの項目をVM起動待機中に更新する。
図27は、スケールアウト処理の具体例(その6)を示す図である。図27では、時刻T4におけるサービスID“SA”,“SB”に対するトラフィック量について示している。
予測部230は、サービスID“SA”,“SB”に対するVM起動完了時点の予約トラフィック量を算出する。VM管理部240は、予約トラフィック量が閾値以上であるサービスID“SA”,“SB”について優先度を算出する。VM管理部240は、サービスID“SA”のために新規追加するVMに割当てるリソース量が残っていると判定する。VM管理部240は、新規追加するVMを構築する業務サーバにVM起動指示を送信する。VM管理部240は、サービスID“SA”に対応する状態管理テーブル212のステータスの項目をVM起動中に更新する。VM管理部240は、サービスID“SA”に対応する利用リソーステーブル213に予約リソース量を加算する。
図28は、スケールアウト処理の具体例(その7)を示す図である。図28では、時刻T5におけるサービスID“SA”,“SB”に対するトラフィック量について示している。
予測部230は、イメージファイルの転送を完了すると再度、サービスID“SB”に対するVM起動完了時点の予測トラフィック量を算出し、予測トラフィック量を処理可能な予約リソース量を算出する。予測部230は、予約リソース量を予約リソーステーブル215に登録する。VM管理部240は、サービスID“SB”に対応する状態管理テーブル212のステータスの項目をVM起動待機中に更新する。
図29は、スケールアウト処理の具体例(その8)を示す図である。図29では、時刻T6におけるサービスID“SA”,“SB”に対するトラフィック量について示している。
VM管理部240は、サービスID“SA”のために新規追加するVMを構築する業務サーバから、当該VMが一時停止になった旨を当該業務サーバから受信する。VM管理部240は、サービスID“SA”に対応する状態管理テーブル212のステータスの項目を一時停止中に更新する。VM管理部240は、サービスID“SA”に対応する利用リソーステーブル213から予約リソース量を減算する。
図30は、スケールアウト処理の具体例(その9)を示す図である。図30では、時刻T7におけるサービスID“SA”,“SB”に対するトラフィック量について示している。
予測部230は、サービスID“SA”,“SB”に対するVM起動完了時点の予約トラフィック量を算出する。VM管理部240は、予約トラフィック量が閾値以上であるサービスID“SA”,“SB”について優先度を算出する。ここで、優先度は、サービスID“SB”の方がサービスID“SA”よりも高いものとする。VM管理部240は、サービスID“SB”のために新規追加するVMに割当てるリソース量が残っていると判定する。VM管理部240は、サービスID“SA”のために新規追加するVMに割当てるリソース量が残っていないと判定する。VM管理部240は、サービスID“SB”のために新規追加するVMを構築する業務サーバにVM起動指示を送信する。VM管理部240は、サービスID“SB”に対応する状態管理テーブル212のステータスの項目をVM起動中に更新する。VM管理部240は、サービスID“SB”に対応する利用リソーステーブル213に予約リソース量を加算する。
図31は、スケールアウト処理の具体例(その10)を示す図である。図31では、時刻T8におけるサービスID“SA”,“SB”に対するトラフィック量について示している。
VM管理部240は、サービスID“SB”のために新規追加するVMを構築する業務サーバから、当該VMが一時停止になった旨を当該業務サーバから受信する。VM管理部240は、サービスID“SB”に対応する状態管理テーブル212のステータスの項目を一時停止中に更新する。VM管理部240は、サービスID“SB”に対応する利用リソーステーブル213から予約リソース量を減算する。
図32は、スケールアウト処理の具体例(その11)を示す図である。図32では、時刻T9におけるサービスID“SA”,“SB”に対するトラフィック量について示している。
予測部230は、サービスID“SA”,“SB”に対するVM起動完了時点の予約トラフィック量を算出する。VM管理部240は、予約トラフィック量が閾値以上であるサービスID“SA”,“SB”について優先度を算出する。ここで、優先度は、サービスID“SB”の方がサービスID“SA”よりも高いものとする。VM管理部240は、サービスID“SB”のために新規追加するVMに割当てるリソース量が残っていると判定する。VM管理部240は、サービスID“SA”のために新規追加するVMに割当てるリソース量が残っていないと判定する。
VM管理部240は、サービスID“SB”のために新規追加するVMを構築する業務サーバに一時停止の解除を指示する。VM管理部240は、サービスID“SB”に対応する状態管理テーブル212のステータスの項目をスケールアウトサービス中に更新する。VM管理部240は、サービスID“SB”に対応する利用リソーステーブル213に予約リソース量を加算する。
これにより、サービスID“SB”を提供するVMがスケールアウトされる。
図33は、スケールアウト処理の具体例(その12)を示す図である。図33は、サービスID“SB”を提供するサービスノード320が新規追加されたことを示している。
図33は、スケールアウト処理の具体例(その12)を示す図である。図33は、サービスID“SB”を提供するサービスノード320が新規追加されたことを示している。
第2の実施の形態によれば、サービスの重要度と緊急性を考慮して優先度が算出される。そして、VMを追加対象とするサービスID“SA”,“SB”が存在する場合に、優先度に基づいてVMを追加対象とするサービスID“SB”を適切に判断できる。すなわち、サービスの重要度と緊急性を考慮して、VMを追加対象とするサービスを適切に判断できる。
なお、第1の実施の形態の情報処理は、演算部1bとして用いられるプロセッサに、プログラムを実行させることで実現できる。第2の実施の形態の情報処理は、プロセッサ201にプログラムを実行させることで実現できる。プログラムは、コンピュータで読み取り可能な記録媒体に記録できる。
例えば、プログラムを記録した記録媒体を配布することで、プログラムを流通させることができる。また、監視部220、予測部230、VM管理部240に相当する機能を実現するプログラムを別個のプログラムとし、各プログラムを別個に配布してもよい。監視部220、予測部230、VM管理部240の機能が別個のコンピュータにより実現されてもよい。コンピュータは、例えば、記録媒体に記録されたプログラムを、RAM202やHDD203に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
1,3 情報処理装置
1a 記憶部
1b 演算部
2 設定情報
4 クライアント
X1,X2,X3 仮想マシン
1a 記憶部
1b 演算部
2 設定情報
4 クライアント
X1,X2,X3 仮想マシン
Claims (7)
- コンピュータが、
サービスを提供している複数の仮想マシンのうち、負荷が閾値を超えた第1および第2の仮想マシンを検出し、
前記第1の仮想マシンの所定時間後の負荷の予測値である第1の予測負荷値と、前記第1の仮想マシンが提供している第1のサービスの重要度とに基づいて、前記第1のサービスに対する仮想マシン増築の第1の優先度を決め、
前記第2の仮想マシンの所定時間後の負荷の予測値である第2の予測負荷値と、前記第2の仮想マシンが提供している第2のサービスの重要度とに基づいて、前記第2のサービスに対する仮想マシン増築の第2の優先度を決め、
前記第1の優先度と、前記第2の優先度のうちの優先度が高い方に対するサービスを提供する仮想マシンを、優先的に構築すると決定する、
仮想マシン増設方法。 - 前記第1の予測負荷値は、現在から、前記第1のサービス提供用に増築する仮想マシンの起動までに要する時間経過後の、前記第1の仮想マシンの負荷の予測値であり、
前記第2の予測負荷値は、現在から、前記第2のサービス提供用に増築する仮想マシンの起動までに要する時間経過後の、前記第2の仮想マシンの負荷の予測値である、
請求項1記載の仮想マシン増設方法。 - 前記コンピュータが、さらに、
前記第1の仮想マシンの負荷が前記閾値を超えたことを検出したとき、前記第1のサービス提供用の仮想マシンの増築処理を開始し、
前記第2の仮想マシンの負荷が前記閾値を超えたことを検出したとき、前記第2のサービス提供用の仮想マシンの増築処理を開始し、
前記第1の優先度を決める処理を、前記第1のサービス提供用の仮想マシンの起動までの残り時間に基づいて、該仮想マシンの構築処理を実施している間に繰り返し行い、
前記第2の優先度を決める処理を、前記第2のサービス提供用の仮想マシンの起動までの残り時間に基づいて、該仮想マシンの構築処理を実施している間に繰り返し行い、
優先的に構築する仮想マシンの決定を、前記第1および第2の優先度の計算が行われる毎に実施し、優先的に構築する仮想マシンの決定結果を更新する、
請求項2記載の仮想マシン増設方法。 - 前記コンピュータが、さらに、
優先度が高い方のサービス提供用の仮想マシンよりも先に、優先度が低い方のサービス提供用の仮想マシンの起動が完了したとき、該仮想マシンの状態をストレージ装置に退避させることで、リソースを解放させ、
優先度が高い方のサービス提供用の仮想マシンにリソースを割当て、該仮想マシンを起動する、
請求項3記載の仮想マシン増設方法。 - 前記コンピュータが、さらに、
前記第1の予測負荷値が前記閾値未満になった場合、前記第1のサービス提供用の仮想マシンの構築処理を中止する、
前記第2の予測負荷値が前記閾値未満になった場合、前記第2のサービス提供用の仮想マシンの構築処理を中止する、
請求項3または4記載の仮想マシン増設方法。 - 仮想マシンが提供するサービスとサービスの重要度との対応関係を示す設定情報を記憶する記憶部と、
サービスを提供している複数の仮想マシンのうち、負荷が閾値を超えた第1および第2の仮想マシンを検出し、前記設定情報を参照して、前記第1の仮想マシンの所定時間後の負荷の予測値である第1の予測負荷値と、前記第1の仮想マシンが提供している第1のサービスの重要度とに基づいて、前記第1のサービスに対する仮想マシン増築の第1の優先度を決め、前記第2の仮想マシンの所定時間後の負荷の予測値である第2の予測負荷値と、前記第2の仮想マシンが提供している第2のサービスの重要度とに基づいて、前記第2のサービスに対する仮想マシン増築の第2の優先度を決め、前記第1の優先度と、前記第2の優先度のうちの優先度が高い方に対するサービスを提供する仮想マシンを、優先的に構築すると決定する演算部と、
を有する情報処理装置。 - サービスを提供している複数の仮想マシンを動作させる、複数の情報処理装置と、
前記複数の仮想マシンのうち、負荷が閾値を超えた第1および第2の仮想マシンを検出し、前記第1の仮想マシンの所定時間後の負荷の予測値である第1の予測負荷値と、前記第1の仮想マシンが提供している第1のサービスの重要度とに基づいて、前記第1のサービスに対する仮想マシン増築の第1の優先度を決め、前記第2の仮想マシンの所定時間後の負荷の予測値である第2の予測負荷値と、前記第2の仮想マシンが提供している第2のサービスの重要度とに基づいて、前記第2のサービスに対する仮想マシン増築の第2の優先度を決め、前記第1の優先度と、前記第2の優先度のうちの優先度が高い方に対するサービスを提供する仮想マシンを、優先的に構築すると決定する、管理装置と、
を有する仮想マシン増設システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015238358A JP2017107274A (ja) | 2015-12-07 | 2015-12-07 | 仮想マシン増設方法、情報処理装置および仮想マシン増設システム |
US15/358,500 US20170161117A1 (en) | 2015-12-07 | 2016-11-22 | Apparatus and method to determine a service to be scaled out based on a predicted virtual-machine load and service importance |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015238358A JP2017107274A (ja) | 2015-12-07 | 2015-12-07 | 仮想マシン増設方法、情報処理装置および仮想マシン増設システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017107274A true JP2017107274A (ja) | 2017-06-15 |
Family
ID=58798305
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015238358A Pending JP2017107274A (ja) | 2015-12-07 | 2015-12-07 | 仮想マシン増設方法、情報処理装置および仮想マシン増設システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170161117A1 (ja) |
JP (1) | JP2017107274A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020154392A (ja) * | 2019-03-18 | 2020-09-24 | 日本電気株式会社 | コンテナ管理装置、方法およびプログラム |
JP7485590B2 (ja) | 2020-11-27 | 2024-05-16 | Kddi株式会社 | 制御装置、情報処理システム、制御方法及びコンピュータプログラム |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8826271B2 (en) | 2010-04-28 | 2014-09-02 | Cavium, Inc. | Method and apparatus for a virtual system on chip |
US10235211B2 (en) * | 2016-04-22 | 2019-03-19 | Cavium, Llc | Method and apparatus for dynamic virtual system on chip |
US20180262563A1 (en) * | 2017-03-07 | 2018-09-13 | Microsoft Technology Licensing, Llc | Availability management operations in a distributed computing system |
US10270711B2 (en) * | 2017-03-16 | 2019-04-23 | Red Hat, Inc. | Efficient cloud service capacity scaling |
US11562288B2 (en) | 2018-09-28 | 2023-01-24 | Amazon Technologies, Inc. | Pre-warming scheme to load machine learning models |
US11436524B2 (en) * | 2018-09-28 | 2022-09-06 | Amazon Technologies, Inc. | Hosting machine learning models |
CN110196756B (zh) * | 2019-05-31 | 2020-07-10 | 东北大学 | 一种支持能耗优化的虚拟机模式转移方法 |
US11656912B1 (en) * | 2020-02-10 | 2023-05-23 | Amazon Technologies, Inc. | Enabling conditional computing resource terminations based on forecasted capacity availability |
CN111611074A (zh) * | 2020-05-14 | 2020-09-01 | 北京达佳互联信息技术有限公司 | 一种集群资源的调度方法及装置 |
CN117234742B (zh) * | 2023-11-14 | 2024-02-09 | 苏州元脑智能科技有限公司 | 一种处理器核心分配方法、装置、设备及存储介质 |
-
2015
- 2015-12-07 JP JP2015238358A patent/JP2017107274A/ja active Pending
-
2016
- 2016-11-22 US US15/358,500 patent/US20170161117A1/en not_active Abandoned
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2020154392A (ja) * | 2019-03-18 | 2020-09-24 | 日本電気株式会社 | コンテナ管理装置、方法およびプログラム |
JP7230603B2 (ja) | 2019-03-18 | 2023-03-01 | 日本電気株式会社 | コンテナ管理装置、方法およびプログラム |
JP7485590B2 (ja) | 2020-11-27 | 2024-05-16 | Kddi株式会社 | 制御装置、情報処理システム、制御方法及びコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20170161117A1 (en) | 2017-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017107274A (ja) | 仮想マシン増設方法、情報処理装置および仮想マシン増設システム | |
US9588789B2 (en) | Management apparatus and workload distribution management method | |
US11216310B2 (en) | Capacity expansion method and apparatus | |
US9405572B2 (en) | Optimized resource allocation and management in a virtualized computing environment | |
US10554575B2 (en) | Equitable sharing of system resources in workflow execution | |
JP6075226B2 (ja) | プログラム、仮想マシン管理方法および情報処理装置 | |
KR20170029263A (ko) | 부하 분산 장치 및 방법 | |
US10705872B2 (en) | Predictive virtual server scheduling and optimization of dynamic consumable resources to achieve priority-based workload performance objectives | |
JP2015194958A (ja) | 情報処理装置、スケール管理方法およびプログラム | |
US10841369B2 (en) | Determining allocatable host system resources to remove from a cluster and return to a host service provider | |
JP6631710B2 (ja) | 仮想化管理プログラム、仮想化管理装置および仮想化管理方法 | |
JP2018063470A (ja) | 制御装置および制御方法 | |
JP2012198724A (ja) | 情報処理プログラム及び方法、転送処理装置 | |
US20220329651A1 (en) | Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same | |
JP2019079334A (ja) | 情報処理装置、情報処理システムおよび情報処理方法 | |
Babu et al. | Interference aware prediction mechanism for auto scaling in cloud | |
US9594596B2 (en) | Dynamically tuning server placement | |
WO2013171944A1 (ja) | 仮想マシン管理システム、仮想マシン管理方法およびプログラム | |
US20140136659A1 (en) | Timeout Value Adaptation | |
JP2011192049A (ja) | 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム | |
Gadhavi et al. | Efficient resource provisioning through workload prediction in the cloud system | |
US20220237024A1 (en) | Diagonal autoscaling of serverless computing processes for reduced downtime | |
JP2014206805A (ja) | 制御装置 | |
JP6374059B2 (ja) | コンピュータ資源配分決定方法、コンピュータ資源配分決定方法プログラムおよび制御用コンピュータ | |
Xu et al. | Virtual machine migration strategy in federated cloud |