JP6962138B2 - 情報処理装置、情報処理システム及びプログラム - Google Patents

情報処理装置、情報処理システム及びプログラム Download PDF

Info

Publication number
JP6962138B2
JP6962138B2 JP2017213713A JP2017213713A JP6962138B2 JP 6962138 B2 JP6962138 B2 JP 6962138B2 JP 2017213713 A JP2017213713 A JP 2017213713A JP 2017213713 A JP2017213713 A JP 2017213713A JP 6962138 B2 JP6962138 B2 JP 6962138B2
Authority
JP
Japan
Prior art keywords
time
information processing
deployment
scale
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.)
Active
Application number
JP2017213713A
Other languages
English (en)
Other versions
JP2019086949A (ja
Inventor
健一郎 下川
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017213713A priority Critical patent/JP6962138B2/ja
Priority to US16/177,487 priority patent/US10838757B2/en
Publication of JP2019086949A publication Critical patent/JP2019086949A/ja
Application granted granted Critical
Publication of JP6962138B2 publication Critical patent/JP6962138B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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]
    • 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
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/5083Techniques for rebalancing the load in a distributed system
    • 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/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、仮想マシンの管理技術に関する。
クラウド上に構築されたシステムにおいては仮想マシンが稼働し、クラウドサービスの利用者は事業や個人的な目的等のために仮想マシンを使用する。このようなシステムにおいては、利用者による使用の状況に応じてオートスケールが実行される。オートスケールとは、仮想マシンの負荷に応じて仮想マシンの増設および減設を実行する技術である。
例えば、仮想マシンの処理の量が増加したことにより仮想マシンの負荷が基準を超えた場合、処理性能の劣化の防止のために仮想マシンの数が増やされる。これはスケールアウトと呼ばれる。一方、例えば仮想マシンの負荷が基準を下回った場合、システムにおけるリソースの使用量の減少のために仮想マシンの数が減らされる。これはスケールインと呼ばれる。或る特許文献は、このようなオートスケールに関する技術を開示する。
スケールアウトは、仮想マシンを配備する処理(以下、デプロイと呼ぶ)の実行後に仮想マシンの稼働を開始させることで完了する。デプロイは仮想マシンのイメージファイルを物理ディスク装置に書き込む処理を含み、デプロイが原因でスケールアウトに時間がかかるという問題がある。スケールアウトに時間がかかると仮想マシンの負荷が基準を超えた状態が長時間続くことになるため好ましくない。しかし、上記の特許文献に開示の技術によってはこのような問題を解決することはできない。
国際公開第2015/133125号
本発明の目的は、1つの側面では、仮想マシンが不足する場合に迅速にスケールアウトを完了するための技術を提供することである。
一態様に係る情報処理装置は、1又は複数の仮想マシンが稼働する他の情報処理装置において実行されたオートスケールの履歴データに基づき、他の情報処理装置においてスケールアウトが開始される予測時刻を特定する第1特定部と、他の情報処理装置において実行されたデプロイの開始時刻および終了時刻のデータに基づき、デプロイの所要時間を特定する第2特定部と、特定された予測時刻と所要時間とに基づき、他の情報処理装置がデプロイを開始する開始時刻を決定する決定部と、他の情報処理装置においてデプロイが開始されることを要求する第1の要求を、開始時刻において他の情報処理装置に送信するデプロイ部とを有する。
1つの側面では、仮想マシンが不足する場合に迅速にスケールアウトを完了できるようになる。
図1は、本実施の形態の方法を使用しない場合のオートスケールの一例を示す図である。 図2は、本実施の形態のオートスケールの一例を示す図である。 図3は、本実施の形態のシステムの概要を示す図である。 図4は、管理装置のハードウエア構成図である。 図5は、管理装置の機能ブロック図である。 図6は、グループデータ格納部に格納されるデータの一例を示す図である。 図7は、グループデータ格納部に格納されるデータの一例を示す図である。 図8は、ホスト装置のハードウエア構成図である。 図9は、オートスケールの実行を制御する処理の処理フローを示す図である。 図10は、負荷データ格納部に格納されるデータの一例を示す図である。 図11は、オートスケール履歴格納部に格納されるデータの一例を示す図である。 図12は、オートスケールの実行を制御する処理の処理フローを示す図である。 図13は、事前にデプロイされたVMの数nのデータ形式の一例を示す図である。 図14は、デプロイ処理の処理フローを示す図である。 図15は、デプロイデータ格納部に格納されるデータの一例を示す図である。 図16は、第2継続時間格納部に格納されるデータの一例を示す図である。 図17は、第1継続時間格納部に格納されるデータの一例を示す図である。 図18は、第1の実施の形態において事前デプロイ処理の実行を制御する処理の処理フローを示す図である。 図19は、第1タイマ設定処理の処理フローを示す図である。 図20は、デプロイの開始時刻の決定について説明するための図である。 図21は、事前デプロイ処理の処理フローを示す図である。 図22は、事前デプロイ処理の処理フローを示す図である。 図23は、第1の実施の形態における削除処理の処理フローを示す図である。 図24は、第1の実施の形態において事前デプロイ処理の実行を制御する処理の処理フローを示す図である。 図25は、第2の実施の形態における事前デプロイ処理の処理フローを示す図である。 図26は、事前デプロイ処理によりデプロイが実行された回数Nのデータ形式の一例を示す図である。 図27は、第2の実施の形態における削除処理の処理フローを示す図である。 図28は、事前デプロイ処理によりデプロイされたVMが削除された回数Mのデータ形式の一例を示す図である。 図29は、グループデータ格納部に格納されるデータの一例を示す図である。 図30は、第3の実施の形態におけるデプロイデータ格納部に格納されるデータの一例を示す図である。 図31は、第4の実施の形態におけるホスト装置の機能ブロック図である。
はじめに、本実施の形態の概要を説明する。
図1は、本実施の形態の方法を利用しない場合のオートスケールの一例を示す図である。図1において、縦軸はVM(Virtual Machine)数を表し、横軸は時間を表す。ti(iは自然数)はVMが不足しスケールアウトが必要となった時刻を表す。「dept」はデプロイに要する時間(以下、デプロイ時間と呼ぶ)を表す。
図1の例においては、初期のVM数は1である。最大のVM数は4である。VM数が1である状態においてスケールアウトが実行されてVM数が2になり、VM数が2である状態においてスケールアウトが実行されてVM数が3になり、VM数が3である状態においてスケールアウトが実行されてVM数が4になる。VM数が4である状態においてスケールインが実行されてVM数が3になり、VM数が3である状態においてスケールインが実行されてVM数が2になる。VM数が2である状態においてスケールアウトが実行されてVM数が3になり、VM数が3である状態においてスケールアウトが実行されてVM数が4になる。そして、VM数が4である状態においてスケールインが実行されてVM数が3になり、VM数が3である状態においてスケールインが実行されてVM数が2になり、VM数が2である状態においてスケールインが実行されてVM数が1になる。
図1の例においては、デプロイは5回実行される。VMの負荷が実際に不足してからデプロイが開始されているため、デプロイ時間が長いことが原因となり、VM数が不足した状態が長く続くことになる。
図2は、本実施の形態のオートスケールの一例を示す図である。図2において、縦軸はVM数を表し、横軸は時間を表す。図2の例においても、初期のVM数は1であり、最大のVM数は4である。また、VM数は図1の例と同様に変化する。
本実施の形態においては、最初のデプロイを除き、VMの負荷が高いことが実際に検出される前にデプロイが開始される。具体的には、デプロイpd1、デプロイpd2及びデプロイpd3は、VMの負荷が高いことが実際に検出される前に実行されている。このように、オートスケールの処理のうちデプロイを予め実行しておけば、VMの負荷が高いことが実際に検出された後にVMの稼働を開始すればスケールアウトが完了するので、VMの負荷が高い状態が長く続くことを防げる。つまり、VMが不足する場合に迅速にスケールアウトを完了することができる。
また、図2の例においてはスケールインによってVM数が3から2に減少した後にスケールアウトによってVM数が2から3に増加しているが、図1の例と異なりデプロイは実行されておらず、全体として4回デプロイが実行される。このように、デプロイされたVMを削除せず後でVMが必要になった時に再利用することで、全体の処理時間を短縮することができ、また、VMのデプロイによって発生する処理負荷を減らすことができる。
[実施の形態1]
図3は、本実施の形態のシステムの概要を示す図である。本実施の形態のシステムは例えばクラウドシステムであり、データセンタ等において構築される。本実施の形態のシステムは、VMを稼働させるホスト装置3a乃至3cと、VMの稼働を管理する管理装置1とを有する。管理装置1は、例えばLAN(Local Area Network)等のネットワークを介してホスト装置3a乃至3cに接続される。ホスト装置3aにおいてはVM301a及びVM302aが稼働し、ホスト装置3bにおいてはVM301b及びVM302bが稼働し、ホスト装置3cにおいてはVM301c及びVM302cが稼働する。図3の例においては各ホスト装置において2台のVMが稼働しているが、3台以上のVMが稼働してもよい。また、ホスト装置の数が4以上であってもよい。
図4は、管理装置1のハードウエア構成図である。管理装置1は、CPU(Central Processing Unit)11と、例えばDRAM(Dynamic Random Access Memory)であるメモリ12と、HDD(Hard Disk Drive)13と、NIC(Network Interface Card)14とを有する。各ハードウエアコンポーネントはバス15に接続される。
図5は、管理装置1の機能ブロック図である。管理装置1は、負荷データ受信部101と、オートスケール制御部103と、事前デプロイ制御部105と、第1デプロイ部107と、第2デプロイ部109と、VM管理部111と、第1タイマ設定部113と、第2タイマ設定部115と、負荷データ格納部121と、オートスケール履歴格納部123と、グループデータ格納部125と、デプロイデータ格納部127と、第1継続時間格納部129と、第2継続時間格納部131とを含む。第1タイマ設定部113は、第1設定部1131と、第2設定部1132と、第3設定部1133とを含む。
本実施の形態の処理を実行するためのプログラムは、例えばHDD13に格納されており、メモリ12にロードされてCPU11に実行されることで、負荷データ受信部101と、オートスケール制御部103と、事前デプロイ制御部105と、第1デプロイ部107と、第2デプロイ部109と、VM管理部111と、第1タイマ設定部113と、第2タイマ設定部115とを実現する。負荷データ格納部121と、オートスケール履歴格納部123と、グループデータ格納部125と、デプロイデータ格納部127と、第1継続時間格納部129と、第2継続時間格納部131とは、例えばメモリ12又はHDD13に設けられる。
負荷データ受信部101は、ホスト装置3a乃至3cから受信した負荷データを負荷データ格納部121に格納する。オートスケール制御部103は、負荷データ格納部121に格納されているデータ及びグループデータ格納部125に格納されているデータに基づき処理を実行し、処理結果をオートスケール履歴格納部123、第1継続時間格納部129及び第2継続時間格納部131に格納する。事前デプロイ制御部105は、オートスケール履歴格納部123に格納されているデータ、グループデータ格納部125に格納されているデータ、第1継続時間格納部129に格納されているデータ及び第2継続時間格納部131に格納されているデータに基づき、後述の事前デプロイ処理の実行を制御する。第1デプロイ部107は、後述のデプロイ処理を実行し、処理結果をデプロイデータ格納部127に格納する。第2デプロイ部109は、後述の事前デプロイ処理を実行し、処理結果に基づきデプロイデータ格納部127に格納されているデータを更新する。VM管理部111は、VMの削除の要求及びVMの動作の開始の要求をホスト装置3a乃至3cに送信する。第1設定部1131、第2設定部1132及び第3設定部1133を含む第1タイマ設定部113は、オートスケール履歴格納部123に格納されているデータ、デプロイデータ格納部127に格納されているデータ及び第1継続時間格納部129に格納されているデータに基づき、VMのデプロイを開始する時刻を決定する。第2タイマ設定部115は、デプロイデータ格納部127に格納されているデータに基づき、事前デプロイ処理によりデプロイされたVMを削除する時刻を決定する。
図6は、グループデータ格納部125に格納される第1グループデータの一例を示す図である。図6の例では、利用者の識別情報に対応付けて、当該利用者に対して割り当てられたVMが属するグループの識別情報が格納される。本実施の形態においては、1の利用者に対して1のグループが対応付けられる。
図7は、グループデータ格納部125に格納される第2グループデータの一例を示す図である。図7の例では、グループの識別情報に対応付けて、当該グループに属するVMの最大数の情報が格納される。
図8は、ホスト装置3a乃至3cのハードウエア構成図である。ホスト装置3a乃至3cは、1又は複数のCPU31と、1又は複数のメモリ32と、1又は複数のHDD33と、1又は複数のNIC34とを有する。各ハードウエアコンポーネントはバス35に接続される。
本実施の形態においては、例えばハイパバイザ(仮想化ソフトウエアとも呼ばれる)のプログラムがHDD33に格納されており、当該プログラムがメモリ32にロードされてCPU31により実行されることでハイパバイザが動作する。ハイパバイザ上ではVM301a及び302a、VM301b及び302b、並びにVM301c及び302cが動作する。
次に、管理装置1が実行する処理の詳細を説明する。
図9は、オートスケールの実行を制御する処理の処理フローを示す図である。本処理は、グループ毎に実行される(例えば、複数のスレッドの各々が1のグループについて本処理を実行する)。
負荷データ受信部101は、CPU負荷(例えばCPU使用率)のデータをホスト装置3a乃至3cにおいて動作する各VMから受信する(図9:ステップS1)。負荷データ受信部101は、受信したCPU負荷のデータを負荷データ格納部121に格納する。
図10は、負荷データ格納部121に格納されるデータの一例を示す図である。図10の例では、各時刻について、VMに割り当てられたCPU31のCPU負荷のデータが格納される。図10に示すようなデータは各VMについて用意される。
オートスケール制御部103は、負荷データ格納部121に格納されているCPU負荷のデータに基づき、オートスケールを開始すべきか判定する(ステップS3)。例えば、直近のCPU負荷が閾値(例えば70%)以上であるVMが有る場合、又は、対象のグループに属するVMの直近のCPU負荷の平均値が閾値(例えば70%)以上である場合、スケールアウトを開始すべきと判定される。一方、直近のCPU負荷が閾値未満(例えば40%)であるVMが有る場合、又は、対象のグループに属するVMの直近のCPU負荷の平均値が閾値(例えば40%)未満である場合、スケールインを開始すべきと判定される。スケールアウト及びスケールインのいずれも開始されない場合、オートスケールは開始されない。
オートスケールを開始すべきではないと判定された場合(ステップS3:Noルート)、処理はステップS1に戻る。一方、オートスケールを開始すべきと判定された場合(ステップS3:Yesルート)、オートスケール制御部103は、以下の処理を実行する。具体的には、オートスケール制御部103は、開始すべきオートスケールに関する情報をオートスケール履歴格納部123に格納する(ステップS5)。また、オートスケール制御部103は、オートスケールの開始と、開始されるオートスケールがスケールインとスケールアウトのいずれであるかを示す情報とを事前デプロイ制御部105に通知する。
図11は、オートスケール履歴格納部123に格納されるデータの一例を示す図である。図11の例では、レコードの番号と、オートスケールにより達する状態を示す情報(以下、状態情報と呼ぶ)と、状態の開始時刻と、状態の終了時刻と、状態の継続時間と、オートスケールがスケールアウトとスケールインのいずれであるかを示す情報(以下、オートスケール情報と呼ぶ)とが格納される。但し、ステップS5の処理時点においては、レコードの番号と、状態情報と、オートスケールの開始時刻と、オートスケール情報とが格納される。オートスケールの終了時刻及び状態の継続時間は、後の処理で格納される。或るレコードの開始時刻は、1つ前のレコードの終了時刻と同じである。
オートスケール制御部103は、開始すべきオートスケールがスケールアウトであるか判定する(ステップS7)。
開始すべきオートスケールがスケールアウトではない場合(ステップS7:Noルート)、オートスケール制御部103は、スケールインのための処理を実行する(ステップS8)。具体的には、VM管理部111に、VMの稼働の停止の要求をホスト装置3a乃至3cのうちいずれかのホスト装置に送信する処理を実行させる。当該要求を受信したホスト装置は1台のVMの稼働を停止する。なお、今回のスケールインの前に実行されたオートスケール(すなわち、前回のオートスケール)がスケールインである場合には、ステップS8の処理の後、前回のスケールインによって稼働が停止されたVMのイメージファイルをHDD33から削除してもよい。この場合、ステップS8の処理が終了した時刻を、今回のスケールインのレコードの直前のレコードについての終了時刻とみなすことができるので、オートスケール制御部103は、ステップS8の処理が終了した時刻を状態の終了時刻としてオートスケール履歴格納部123に格納する。また、オートスケール制御部103は、状態の開始時刻から状態の終了時刻までの時間である継続時間をオートスケール履歴格納部123に格納する。
一方、開始すべきオートスケールがスケールアウトである場合(ステップS7:Yesルート)、処理は端子Aを介して図12のステップS9に移行する。
図12の説明に移行し、オートスケール制御部103は、事前にデプロイされたVMの数nが1以上であるか判定する(ステップS9)。nは、例えば図13に示すような形式でメモリ12又はHDD13に格納されている。
事前にデプロイされたVMの数nが1以上である場合(ステップS9:Yesルート)、事前にデプロイされたVMをオートスケールに利用できるので、デプロイを実行することなく処理はステップS13に移行する。
一方、事前にデプロイされたVMの数nが0である場合(ステップS9:Noルート)、オートスケール制御部103は、第1デプロイ部107を呼び出す。これに応じ、第1デプロイ部107は、VMをデプロイするための処理であるデプロイ処理を実行する(ステップS11)。
図14は、デプロイ処理の処理フローを示す図である。
第1デプロイ部107は、デプロイの開始時刻(例えば、ステップS31の処理時点の時刻)の情報を例えばOS(Operating System)から取得する(図14:ステップS31)。
第1デプロイ部107は、ホスト装置3a乃至3cのうちいずれかのホスト装置にデプロイを実行させる(ステップS33)。具体的には、第1デプロイ部107は、ホスト装置3a乃至3cのうちいずれかのホスト装置に対して、対象のグループに属するVM1台についてデプロイの実行の要求を送信する。当該要求を受け取ったホスト装置は、例えばネットワーク上の装置からダウンロードされたイメージファイルをHDD33に書き込むことを開始する。イメージファイルはVMを生成するためのファイルであって、VMのOSがインストールされた状態のファイルである。イメージファイルは、例えば、OSの種別毎に用意される。
デプロイが終了したことを示す通知をホスト装置から受信すると、第1デプロイ部107は、デプロイの終了時刻(例えば、ステップS35の処理時点の時刻)の情報を例えばOSから取得する(ステップS35)。
第1デプロイ部107は、デプロイ回数、総デプロイ時間及び平均デプロイ時間をデプロイデータ格納部127に格納する(ステップS37)。さらに、第1デプロイ部107は、nを1インクリメントする(ステップS39)。そして処理は呼び出し元に戻る。但し、既にデプロイ回数、総デプロイ時間及び平均デプロイ時間がデプロイデータ格納部127に格納されている場合には、更新が実行される。
図15は、デプロイデータ格納部127に格納されるデータの一例を示す図である。図15の例では、デプロイ回数と、総デプロイ時間と、平均デプロイ時間とが格納される。デプロイ回数は、ステップS37の処理時点までに実行されたデプロイの回数である。総デプロイ時間は、実行されたデプロイにかかった総時間である。平均デプロイ時間は、総デプロイ時間をデプロイ回数で割ることで算出される。
図12の説明に戻り、VM管理部111は、事前にデプロイされたVM又はステップS11においてデプロイされたVMの動作を開始させる(ステップS13)。具体的には、VM管理部111は、動作の開始の要求を当該VMがデプロイされたホスト装置に送信する。なお、ステップS13の処理が終了した時刻を、今回のスケールアウトのレコードの直前のレコードについての終了時刻とみなすことができるので、オートスケール制御部103は、ステップS13の処理が終了した時刻を状態の終了時刻としてオートスケール履歴格納部123に格納する。また、オートスケール制御部103は、状態の開始時刻から状態の終了時刻までの時間である継続時間をオートスケール履歴格納部123に格納する。
オートスケール制御部103は、nを1デクリメントする(ステップS15)。
オートスケール制御部103は、オートスケール履歴格納部123に格納されている、今回のスケールアウトのレコードの直前のレコードに含まれるオートスケール情報が「スケールイン」であるか否かに基づき、今回のスケールアウトはスケールイン後のスケールアウトであるか判定する(ステップS17)。
今回のスケールアウトはスケールイン後のスケールアウトである場合(ステップS17:Yesルート)、オートスケール制御部103は、以下の処理を実行する。具体的には、オートスケール制御部103は、オートスケール履歴格納部123に格納されている継続時間(ここでは、直前のステップS13の後にオートスケール履歴格納部123に格納された継続時間)に基づき、第2継続時間格納部131に格納されているデータを更新する(ステップS19)。そして処理は端子Bを介して図9のステップS1に戻る。ステップS19において更新に使用される継続時間は、スケールイン後にスケールアウトが開始されるまでの時間、つまり、スケールインにより減ったVM数がスケールアウトにより元に戻るまでの時間である。
図16は、第2継続時間格納部131に格納されるデータの一例を示す図である。図16の例では、状態情報と、総継続時間と、発生回数と、平均継続時間とが格納される。例えばスケールインによってVM数が2に減り且つ今回のスケールアウトによってVM数が3に増えた場合、1番目のレコードにおいて、直前のステップS13の処理後にオートスケール履歴格納部123に格納された継続時間が総継続時間に加算され且つ発生回数が1インクリメントされ、総継続時間及び発生回数に基づき平均継続時間が更新される。
一方、今回のスケールアウトはスケールイン後のスケールアウトではない場合(ステップS17:Noルート)、オートスケール制御部103は、以下の処理を実行する。具体的には、オートスケール制御部103は、オートスケール履歴格納部123に格納されている継続時間(ここでは、直前のステップS13の後にオートスケール履歴格納部123に格納された継続時間)に基づき、第1継続時間格納部129に格納されているデータを更新する(ステップS21)。
図17は、第1継続時間格納部129に格納されるデータの一例を示す図である。図17の例では、状態情報と、総継続時間と、発生回数と、平均継続時間とが格納される。例えば今回のスケールアウトによってVM数が3から4に増えた場合、2番目のレコードにおいて、直前のステップS13の処理後にオートスケール履歴格納部123に格納された継続時間が総継続時間に加算され且つ発生回数が1インクリメントされ、総継続時間及び発生回数に基づき平均継続時間が更新される。
図18は、第1の実施の形態において事前デプロイ処理の実行を制御する処理の処理フローを示す図である。本処理は、グループ毎に実行される(例えば、複数のスレッドの各々が1のグループについて本処理を実行する)。
事前デプロイ制御部105は、オートスケール制御部103からの通知を受け取ったか否かに基づき、オートスケールが開始されるか判定する(図18:ステップS43)。
オートスケールが開始されない場合(ステップS43:Noルート)、処理はステップS43に戻る。一方、オートスケールが開始される場合(ステップS43:Yesルート)、事前デプロイ制御部105は、オートスケール制御部103からの通知に基づき、開始されるオートスケールがスケールアウトであるか判定する(ステップS45)。
開始されるオートスケールがスケールアウトである場合(ステップS45:Yesルート)、事前デプロイ制御部105は、以下の処理を実行する。具体的には、事前デプロイ制御部105は、現在のVM数(すなわち、ホスト装置において現在稼働中のVMの数)について、スケールアウトが開始されるまでの時間(ここでは、スケールアウトが実行されるまでの状態の平均継続時間)のデータが第1継続時間格納部129に有るか判定する(ステップS49)。
現在のVM数について、スケールアウトが実行されるまでの時間のデータが第1継続時間格納部129にない場合(ステップS49:Noルート)、処理はステップS43に戻る。一方、現在のVM数について、スケールアウトが開始されるまでの時間のデータが第1継続時間格納部129に有る場合(ステップS49:Yesルート)、事前デプロイ制御部105は、第1タイマ設定部113を呼び出す。これに応じ、第1タイマ設定部113は、事前デプロイ処理の実行を開始する時刻についてタイマを設定する処理である第1タイマ設定処理を実行する(ステップS50)。
図19は、第1タイマ設定処理の処理フローを示す図である。
第1設定部1131は、オートスケール履歴格納部123から最新のレコードに含まれる開始時刻を読み出し、現在のVM数に対応する平均継続時間を第1継続時間格納部129から読み出す。そして、第1設定部1131は、開始時刻から平均継続時間後の時刻を、次のスケールアウトが開始される予測時刻として算出する(図19:ステップS51)。
第2設定部1132は、デプロイデータ格納部127に格納されている平均デプロイ時間を読み出す(ステップS52)。
第3設定部1133は、ステップS51において算出された予測時刻から、ステップS52において読み出された平均デプロイ時間を差し引くことで、デプロイの開始時刻を決定する。そして、第3設定部1133は、決定された開始時刻にタイムアウトするようにタイマを設定する(ステップS53)。そして処理は呼び出し元に戻る。
図20は、デプロイの開始時刻の決定について説明するための図である。図20に示すように、デプロイの開始時刻は、スケールアウトが開始される予測時刻よりも平均デプロイ時間だけ前になるように決定される。このようにすることで、スケールアウトが開始する前にデプロイが完了し、スケールアウトの開始後迅速にVMを稼働させることができるので、スケールアウトが完了するまでの時間を短縮することができる。なお、ステップS53においては、予測時刻から平均デプロイ時間以上前の時刻をデプロイの開始時刻としてもよい。
図18の説明に戻り、事前デプロイ制御部105は、ステップS53において設定されたタイマがタイムアウトした場合、第2デプロイ部109を呼び出す。そして、第2デプロイ部109は、事前デプロイ処理を実行する(ステップS54)。事前デプロイ処理が終了すると、処理はステップS43に戻る。
図21は、事前デプロイ処理の処理フローを示す図である。
第2デプロイ部109は、デプロイの開始時刻(例えば、ステップS71の処理時点の時刻)の情報を例えばOSから取得する(図21:ステップS71)。
第2デプロイ部109は、ホスト装置3a乃至3cのうちいずれかのホスト装置にデプロイを実行させる(ステップS73)。具体的には、第2デプロイ部109は、ホスト装置3a乃至3cのうちいずれかのホスト装置に対して、対象のグループに属するVM1台についてのデプロイの実行の要求を送信する。当該要求を受け取ったホスト装置は、例えばネットワーク上の装置からダウンロードされたイメージファイルのHDD33への書き込みを開始する。
デプロイが終了したことを示す通知をホスト装置から受信すると、第2デプロイ部109は、デプロイの終了時刻(例えば、ステップS75の処理時点の時刻)の情報を例えばOSから取得する(ステップS75)。
第2デプロイ部109は、デプロイデータ格納部127に格納されているデプロイ回数、総デプロイ時間及び平均デプロイ時間を更新する(ステップS77)。
第2デプロイ部109は、nを1インクリメントする(ステップS79)。そして処理は端子Eを介して図22のステップS81に移行する。
図22の説明に移行し、第2デプロイ部109は、第2タイマ設定部115を呼び出す。そして、第2タイマ設定部115は、第2タイマ設定処理を実行する(図22:ステップS81)。第2タイマ設定処理は、スケールアウトが開始される時刻から所定時間(例えば5分)後にタイムアウトするようにタイマを設定する処理である。
ステップS81において設定されたタイマがタイムアウトする前にスケールアウトが開始された場合、第2タイマ設定部115は当該タイマの設定を破棄する。一方、ステップS81において設定されたタイマがタイムアウトした場合、第2タイマ設定部115は、VM管理部111を呼び出す。そして、VM管理部111は、事前にデプロイされたVMを削除する処理である削除処理を実行する(ステップS83)。
図23は、第1の実施の形態における削除処理の処理フローを示す図である。
VM管理部111は、ステップS73の処理によりデプロイされたVMの削除の要求を、ステップS73において送信された要求に応じてVMをデプロイしたホスト装置に対して送信する(図23:ステップS91)。VMの削除の要求を受信したホスト装置は、ステップS73の処理によりデプロイされたVMのイメージファイルを削除する。
VM管理部111は、nを1デクリメントする(ステップS93)。そして処理は呼び出し元に戻る。
図22の説明に戻り、第2デプロイ部109は、現在のVM数について、スケールアウトが開始されるまでの時間のデータを第1継続時間格納部129から読み出す(ステップS85)。ステップS85においては、現在のVM数に対応する平均継続時間が第1継続時間格納部129から読み出される。
第2デプロイ部109は、現在の状態の開始時刻をオートスケール履歴格納部123から読み出す。そして、第2デプロイ部109は、次のスケールアウトが開始される時刻を、読み出された開始時刻にステップS85において読み出された時間を加算することで算出する。そして、第2デプロイ部109は、現在時刻は次のスケールアウトが開始される時刻より後であるか判定する(ステップS87)。
現在時刻は次のスケールアウトが開始される時刻より後である場合(ステップS87:Yesルート)、処理は端子Fを介して図21のステップS71の処理に戻る。一方、現在時刻は次のスケールアウトが開始される時刻より後ではない場合(ステップS87:Noルート)、処理は呼び出し元に戻る。
図18の説明に戻り、開始されるオートスケールがスケールアウトではない場合(ステップS45:Noルート)、事前デプロイ制御部105は、以下の処理を実行する。具体的には、事前デプロイ制御部105は、現在のVM数について、スケールイン後にスケールアウトが開始されるまでの時間(ここでは、スケールイン後の状態の平均継続時間)のデータが第2継続時間格納部131に有るか判定する(ステップS47)。
現在のVM数について、スケールイン後にスケールアウトが開始されるまでの時間のデータが第2継続時間格納部131にない場合(ステップS47:Noルート)、処理はステップS43に戻る。一方、現在のVM数について、スケールイン後にスケールアウトが開始されるまでの時間のデータが第2継続時間格納部131に有る場合(ステップS47:Yesルート)、処理は端子Cを介して図24のステップS55に移行する。
図24の説明に移行し、事前デプロイ制御部105は、スケールイン後にスケールアウトが開始されるまでの時間のデータを第2継続時間格納部131から読み出す(図24:ステップS55)。
事前デプロイ制御部105は、平均デプロイ時間をデプロイデータ格納部127から読み出す。そして、事前デプロイ制御部105は、ステップS55において読み出した時間は平均デプロイ時間より長いか判定する(ステップS57)。
ステップS55において読み出した時間は平均デプロイ時間より長い場合(ステップS57:Yesルート)、事前デプロイ制御部105は、VM管理部111を呼び出す。そして、VM管理部111は、スケールインにより稼働を停止したVMの削除の要求を、当該VMを稼働させるホスト装置に送信する(ステップS59)。当該要求を受信したホスト装置は、スケールインにより稼働を停止したVMのイメージファイルをHDD33から削除する。
事前デプロイ制御部105は、第1タイマ設定部113を呼び出す。これに応じ、第1タイマ設定部113は、事前デプロイ処理の実行を開始する時刻についてタイマを設定する処理である第1タイマ設定処理を実行する(ステップS61)。第1タイマ設定処理については上で説明したとおりであるので、ここでは説明を省略する。
事前デプロイ制御部105は、ステップS61において設定されたタイマがタイムアウトした場合、第2デプロイ部109を呼び出す。そして、第2デプロイ部109は、事前デプロイ処理を実行する(ステップS63)。事前デプロイ処理については上で説明したとおりであるので、ここでは説明を省略する。事前デプロイ処理が終了すると、処理は端子Dを介して図18のステップS43に戻る。
一方、ステップS55において読み出した時間は平均デプロイ時間より長くない場合(ステップS57:Noルート)、事前デプロイ制御部105は、nを1インクリメントする(ステップS65)。そして処理は端子Dを介して図18のステップS43に戻る。
以上のような処理を実行すれば、VMが不足する場合に迅速にスケールアウトを完了することができる。また、予めデプロイされたVMが稼働しない場合にはVMが削除されるので、ホスト装置の記憶装置が無駄に消費されることを抑制することができる。さらに、スケールインが実行された場合には、スケールイン後にスケールアウトが開始されるまでの時間がデプロイ時間より長い場合に限りVMの削除及びデプロイが実行されるので、不要な削除及びデプロイを実行することを抑制できるようになる。
[実施の形態2]
VMの使用の状況は時間の経過に伴って変化するため、オートスケールの古い履歴データを使用すると、平均デプロイ時間が適切に算出されなくなる可能性がある。そこで第2の実施の形態においては、以下のような処理が実行される。
図25は、第2の実施の形態において事前デプロイ処理の実行を制御する処理の処理フローを示す図である。
第2デプロイ部109は、デプロイの開始時刻(例えば、ステップS101の処理時点の時刻)の情報を例えばOSから取得する(図25:ステップS101)。
第2デプロイ部109は、ホスト装置3a乃至3cのうちいずれかのホスト装置にデプロイを実行させる(ステップS103)。具体的には、第2デプロイ部109は、ホスト装置3a乃至3cのうちいずれかのホスト装置に対して、対象のグループに属するVM1台についてのデプロイの実行の要求を送信する。当該要求を受け取ったホスト装置は、例えばネットワーク上の装置からダウンロードされたイメージファイルのHDD33への書き込みを開始する。
デプロイが終了したことを示す通知をホスト装置から受信すると、第2デプロイ部109は、デプロイの終了時刻(例えば、ステップS105の処理時点の時刻)の情報を例えばOSから取得する(ステップS105)。
第2デプロイ部109は、デプロイデータ格納部127に格納されているデプロイ回数、総デプロイ時間及び平均デプロイ時間を更新する(ステップS107)。
第2デプロイ部109は、事前デプロイ処理によりデプロイが実行された回数Nを1インクリメントする(ステップS109)。Nは、例えば図26に示すような形式でメモリ12又はHDD13に格納されている。
第2デプロイ部109は、nを1インクリメントする(ステップS111)。そして処理は端子Eを介して図22のステップS81に移行する。端子E以降の処理については上で説明したとおりであるので、説明を省略する。
図27は、第2の実施の形態における削除処理の処理フローを示す図である。
VM管理部111は、ステップS103の処理によりデプロイされたVMの削除の要求を、ステップS103において送信された要求に応じてVMをデプロイしたホスト装置に対して送信する(図27:ステップS121)。VMの削除の要求を受信したホスト装置は、ステップS103の処理によりデプロイされたVMのイメージファイルを削除する。
VM管理部111は、nを1デクリメントする(ステップS123)。
VM管理部111は、事前デプロイ処理によりデプロイされたVMが削除された回数Mを1インクリメントする(ステップS125)。Mは、例えば図28に示すような形式でメモリ12又はHDD13に格納されている。
VM管理部111は、MをNで割った値が第1の閾値(例えば0.4)以上であるか判定する(ステップS127)。
MをNで割った値が第1の閾値以上ではない場合(ステップS127:Noルート)、処理は呼び出し元に戻る。
一方、MをNで割った値が第1の閾値以上である場合(ステップS127:Yesルート)、VM管理部111は、Nが第2の閾値(例えば200)以上であるか判定する(ステップS129)。
Nが第2の閾値以上ではない場合(ステップS129:Noルート)、処理は呼び出し元に戻る。
一方、Nが第2の閾値以上である場合(ステップS129:Yesルート)、VM管理部111は、オートスケール履歴格納部123に格納されているデータのうち所定時点(例えば、現在時刻より所定時間(例えば1週間)前の時点)より前のデータを削除する(ステップS131)。
VM管理部111は、オートスケール履歴格納部123に格納されているデータに基づき、第1継続時間格納部129に格納されているデータを更新する(ステップS133)。
VM管理部111は、オートスケール履歴格納部123に格納されているデータに基づき、第2継続時間格納部131に格納されているデータを更新する(ステップS135)。そして処理は呼び出し元に戻る。
以上のような処理を実行すれば、例えば利用者による使用の状況が変わったことにより状態の継続時間が変わるような場合においても、適切な時刻にデプロイを開始することができるようになる。
[実施の形態3]
イメージファイルをHDD33に書き込むのに要する時間は、イメージファイルの種類によって大きく異なる場合がある。例えば、或る種類のイメージファイルをHDD33に書き込むのに要する時間は約3時間であるのに対し、別の種類のイメージファイルをHDD33に書き込むのに要する時間は約6時間であるといった場合がある。このような場合には、イメージファイル毎にデプロイ時間を算出することが好ましい。
そのため、第3の実施の形態においては、例えば図29に示すような第1グループデータがグループデータ格納部125に格納される。図29の例では、利用者の識別情報と、当該利用者に割り当てられたグループの識別情報と、当該グループに属するVMを生成するためのイメージファイルの識別情報とが格納される。
そして、第3の実施の形態においては、デプロイ時間はイメージファイル毎に算出される。図30は、第3の実施の形態におけるデプロイデータ格納部127に格納されるデータの一例を示す図である。図30の例では、イメージファイルの識別情報と、デプロイ回数と、総デプロイ時間と、平均デプロイ時間とが格納される。
以上のような構成であれば、イメージファイルの種類によってデプロイ時間が大きく異なる場合においても、適切な時刻にデプロイを開始することができるようになる。
[実施の形態4]
第1乃至第3の実施の形態においてはホスト装置とは別に管理装置1が設けられるが、ホスト装置が管理装置1の機能を持つようにしてもよい。図31は、第4の実施の形態におけるホスト装置3aの機能ブロック図である。ホスト装置3aにおいてはVM301a及びVM302aが稼働し、ホスト装置3aは管理部30を有する。管理部30は、第1乃至第3の実施の形態における管理装置1の機能を有する。図31の例においてはホスト装置3aにおいて2台のVMが稼働しているが、3台以上のVMが稼働してもよい。ホスト装置3b及び3cの機能ブロック図はホスト装置3aの機能ブロック図と同様である。
以上のような構成であれば、ホスト装置3a乃至3cとは別に管理装置1を用意しなくても運用を実施できるようになる。
以上本発明の一実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上で説明した管理装置1の機能ブロック構成は実際のプログラムモジュール構成に一致しない場合もある。
また、上で説明した各テーブルの構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
また、本実施の形態においてはVMの生成にイメージファイルが利用されるが、スナップショットを利用してVMを生成してもよい。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態の第1の態様に係る情報処理装置は、(A)1又は複数の仮想マシンが稼働する他の情報処理装置において実行されたオートスケールの履歴データに基づき、他の情報処理装置においてスケールアウトが開始される予測時刻を特定する第1特定部(実施の形態における第1設定部1131は上記第1特定部の一例である)と、(B)他の情報処理装置において実行されたデプロイの開始時刻および終了時刻のデータに基づき、デプロイの所要時間を特定する第2特定部(実施の形態における第2設定部1132は上記第2特定部の一例である)と、(C)特定された予測時刻と所要時間とに基づき、他の情報処理装置がデプロイを開始する開始時刻を決定する決定部(実施の形態における第3設定部1133は上記決定部の一例である)と、(D)他の情報処理装置においてデプロイが開始されることを要求する第1の要求を、開始時刻において他の情報処理装置に送信するデプロイ部(実施の形態における第2デプロイ部109は上記デプロイ部の一例である)とを有する。
時間がかかるデプロイを、他の情報処理装置においてスケールアウトが開始される前に開始できるので、仮想マシンが不足する場合に迅速にスケールアウトを完了することができるようになる。
また、本情報処理装置は、(E)予測時刻から所定時間の経過後に他の情報処理装置においてスケールアウトが開始されない場合、第1の要求に応じてデプロイされた仮想マシンを削除することを要求する第2の要求を、他の情報処理装置に送信する削除部(実施の形態におけるVM管理部111は上記削除部の一例である)をさらに有してもよい。
デプロイされた仮想マシン用のリソース(例えば記憶装置)を他の用途に使用することができるようになる。
また、上記削除部は、(e1)第1の要求に応じてデプロイされた仮想マシンの数に対する第2の要求に応じて削除された仮想マシンの数の割合が所定値以上である場合、履歴データのうち所定時刻より前の部分を削除してもよい。
スケールアウトの実行タイミング等の変化に追従できるようになる。
また、本情報処理装置は、(F)履歴データに基づき、仮想マシンにおいてスケールインが実行された後スケールアウトが開始されるまでの時間を算出する算出部(実施の形態におけるオートスケール制御部103は上記算出部の一例である)をさらに有してもよい。そして、上記削除部は、(e2)他の情報処理装置においてスケールインが開始され且つ算出部により算出された時間が所要時間より長い場合、他の情報処理装置においてデプロイされた仮想マシンを削除することを要求する第3の要求を送信してもよい。
仮想マシンを無駄に削除することを抑制できるようになる。
また、上記第1特定部は、(a1)オートスケールが完了してから次のオートスケールが開始されるまでの平均時間に基づき、予測時刻を特定してもよい。
また、開始時刻は、予測時刻から所要時間以上前の時刻であってもよい。
デプロイが完了した時点でスケールアウトが開始される可能性が高くなる。
また、上記第2特定部は、(b1)デプロイされる仮想マシンの種類毎に所要時間を特定してもよい。
より適切な所要時間を特定できるようになる。
本実施の形態の第2の態様に係る情報処理システムは、(G)1又は複数の仮想マシンが稼働する第1の情報処理装置と、(H)第2の情報処理装置とを有する。そして、上記第2の情報処理装置は、(h1)第1の情報処理装置において実行されたオートスケールの履歴データに基づき、第1の情報処理装置においてスケールアウトが開始される予測時刻を特定する第1特定部(実施の形態における第1設定部1131は上記第1特定部の一例である)と、(h2)第1の情報処理装置において実行されたデプロイの開始時刻および終了時刻のデータに基づき、デプロイの所要時間を特定する第2特定部(実施の形態における第2設定部1132は上記第2特定部の一例である)と、(h3)特定された予測時刻と所要時間とに基づき、第1の報処理装置においてデプロイが開始される開始時刻を決定する決定部(実施の形態における第3設定部1133は上記決定部の一例である)と、(h4)第1の情報処理装置がデプロイを開始することを要求する第1の要求を、開始時刻において第1の情報処理装置に送信するデプロイ部(実施の形態における第2デプロイ部109は上記デプロイ部の一例である)とを有するする。
本実施の形態の第3の態様に係る情報処理方法は、(I)1又は複数の仮想マシンが稼働する情報処理装置において実行されたオートスケールの履歴データに基づき、情報処理装置においてスケールアウトが開始される予測時刻を特定し、(J)情報処理装置において実行されたデプロイの開始時刻および終了時刻のデータに基づき、デプロイの所要時間を特定し、(K)特定された予測時刻と所要時間とに基づき、情報処理装置においてデプロイが開始される開始時刻を決定し、(L)情報処理装置がデプロイを開始することを要求する第1の要求を、開始時刻において情報処理装置に送信する処理を含む。
なお、上記方法による処理をプロセッサに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
情報処理装置であって、
1又は複数の仮想マシンが稼働する他の情報処理装置において実行されたオートスケールの履歴データに基づき、前記他の情報処理装置においてスケールアウトが開始される予測時刻を特定する第1特定部と、
前記他の情報処理装置において実行されたデプロイの開始時刻および終了時刻のデータに基づき、前記デプロイの所要時間を特定する第2特定部と、
特定された前記予測時刻と前記所要時間とに基づき、前記他の情報処理装置において前記デプロイが開始される開始時刻を決定する決定部と、
前記他の情報処理装置が前記デプロイを開始することを要求する第1の要求を、前記開始時刻において前記他の情報処理装置に送信するデプロイ部と、
を有する情報処理装置。
(付記2)
前記予測時刻から所定時間の経過後に前記他の情報処理装置においてスケールアウトが開始されない場合、前記第1の要求に応じてデプロイされた仮想マシンを削除することを要求する第2の要求を、前記他の情報処理装置に送信する削除部
をさらに有する付記1記載の情報処理装置。
(付記3)
前記削除部は、
前記第1の要求に応じてデプロイされた仮想マシンの数に対する前記第2の要求に応じて削除された仮想マシンの数の割合が所定値以上である場合、前記履歴データのうち所定時刻より前の部分を削除する、
付記2記載の情報処理装置。
(付記4)
前記情報処理装置は、
前記履歴データに基づき、前記仮想マシンにおいてスケールインが実行された後スケールアウトが開始されるまでの時間を算出する算出部
をさらに有し、
前記削除部は、
前記他の情報処理装置においてスケールインが開始され且つ前記算出部により算出された時間が前記所要時間より長い場合、前記他の情報処理装置においてデプロイされた仮想マシンを削除することを要求する第3の要求を送信する、
付記2又は3記載の情報処理装置。
(付記5)
前記第1特定部は、
オートスケールが完了してから次のオートスケールが開始されるまでの平均時間に基づき、前記予測時刻を特定する、
付記1乃至4のいずれか1つ記載の情報処理装置。
(付記6)
前記開始時刻は、前記予測時刻から前記所要時間以上前の時刻である、
付記1乃至5のいずれか1つ記載の情報処理装置。
(付記7)
前記第2特定部は、
デプロイされる仮想マシンの種類毎に前記所要時間を特定する、
付記1記載の情報処理装置。
(付記8)
1又は複数の仮想マシンが稼働する第1の情報処理装置と、
第2の情報処理装置と、
を有し、
前記第2の情報処理装置は、
前記第1の情報処理装置において実行されたオートスケールの履歴データに基づき、前記第1の情報処理装置においてスケールアウトが開始される予測時刻を特定する第1特定部と、
前記第1の情報処理装置において実行されたデプロイの開始時刻および終了時刻のデータに基づき、前記デプロイの所要時間を特定する第2特定部と、
特定された前記予測時刻と前記所要時間とに基づき、前記第1の報処理装置においてデプロイが開始される開始時刻を決定する決定部と、
前記第1の情報処理装置がデプロイを開始することを要求する第1の要求を、前記開始時刻において前記第1の情報処理装置に送信するデプロイ部と、
とを有する情報処理システム。
(付記9)
コンピュータに、
1又は複数の仮想マシンが稼働する情報処理装置において実行されたオートスケールの履歴データに基づき、前記情報処理装置においてスケールアウトが開始される予測時刻を特定し、
前記情報処理装置において実行されたデプロイの開始時刻および終了時刻のデータに基づき、前記デプロイの所要時間を特定し、
特定された前記予測時刻と前記所要時間とに基づき、前記情報処理装置において前記デプロイが開始される開始時刻を決定し、
前記情報処理装置が前記デプロイを開始することを要求する第1の要求を、前記開始時刻において前記情報処理装置に送信する、
処理を実行させるプログラム。
1 管理装置 3a,3b,3c ホスト装置
11,31 CPU 12,32 メモリ
13,33 HDD 14,34 NIC
15,35 バス
101 負荷データ受信部 103 オートスケール制御部
105 事前デプロイ制御部 107 第1デプロイ部
109 第2デプロイ部 111 VM管理部
113 第1タイマ設定部 115 第2タイマ設定部
121 負荷データ格納部 123 オートスケール履歴格納部
125 グループデータ格納部 127 デプロイデータ格納部
129 第1継続時間格納部 131 第2継続時間格納部
1131 第1設定部 1132 第2設定部
1133 第3設定部 30 管理部
301a,301b,301c,302a,302b,302c VM

Claims (6)

  1. 情報処理装置であって、
    1又は複数の仮想マシンが稼働する他の情報処理装置において実行されたオートスケールの履歴データに基づき、前記他の情報処理装置においてスケールアウトが開始される予測時刻を特定する第1特定部と、
    前記他の情報処理装置において実行されたデプロイの開始時刻および終了時刻のデータに基づき、前記デプロイの所要時間を特定する第2特定部と、
    特定された前記予測時刻と前記所要時間とに基づき、前記他の情報処理装置において前記デプロイが開始される開始時刻を決定する決定部と、
    前記他の情報処理装置が前記デプロイを開始することを要求する第1の要求を、前記開始時刻において前記他の情報処理装置に送信するデプロイ部と、
    前記予測時刻から所定時間の経過後に前記他の情報処理装置においてスケールアウトが開始されない場合、前記第1の要求に応じてデプロイされた仮想マシンを削除することを要求する第2の要求を、前記他の情報処理装置に送信する削除部と、
    を有し、
    前記削除部は、
    前記第1の要求に応じてデプロイされた仮想マシンの数に対する前記第2の要求に応じて削除された仮想マシンの数の割合が所定値以上である場合、前記履歴データのうち所定時刻より前の部分を削除する、
    情報処理装置。
  2. 前記情報処理装置は、
    前記履歴データに基づき、前記仮想マシンにおいてスケールインが実行された後スケールアウトが開始されるまでの時間を算出する算出部
    をさらに有し、
    前記削除部は、
    前記他の情報処理装置においてスケールインが開始され且つ前記算出部により算出された時間が前記所要時間より長い場合、前記他の情報処理装置においてデプロイされた仮想マシンを削除することを要求する第3の要求を送信する、
    請求項記載の情報処理装置。
  3. 前記第1特定部は、
    オートスケールが完了してから次のオートスケールが開始されるまでの平均時間に基づき、前記予測時刻を特定する、
    請求項1又は2記載の情報処理装置。
  4. 前記開始時刻は、前記予測時刻から前記所要時間以上前の時刻である、
    請求項1乃至のいずれか1つ記載の情報処理装置。
  5. 1又は複数の仮想マシンが稼働する第1の情報処理装置と、
    第2の情報処理装置と、
    を有し、
    前記第2の情報処理装置は、
    前記第1の情報処理装置において実行されたオートスケールの履歴データに基づき、前記第1の情報処理装置においてスケールアウトが開始される予測時刻を特定する第1特定部と、
    前記第1の情報処理装置において実行されたデプロイの開始時刻および終了時刻のデータに基づき、前記デプロイの所要時間を特定する第2特定部と、
    特定された前記予測時刻と前記所要時間とに基づき、前記第1の報処理装置においてデプロイが開始される開始時刻を決定する決定部と、
    前記第1の情報処理装置がデプロイを開始することを要求する第1の要求を、前記開始時刻において前記第1の情報処理装置に送信するデプロイ部と、
    前記予測時刻から所定時間の経過後に前記第1の情報処理装置においてスケールアウトが開始されない場合、前記第1の要求に応じてデプロイされた仮想マシンを削除することを要求する第2の要求を、前記第1の情報処理装置に送信する削除部と、
    を有し、
    前記削除部は、
    前記第1の要求に応じてデプロイされた仮想マシンの数に対する前記第2の要求に応じて削除された仮想マシンの数の割合が所定値以上である場合、前記履歴データのうち所定時刻より前の部分を削除する、
    情報処理システム。
  6. コンピュータに、
    1又は複数の仮想マシンが稼働する情報処理装置において実行されたオートスケールの履歴データに基づき、前記情報処理装置においてスケールアウトが開始される予測時刻を特定し、
    前記情報処理装置において実行されたデプロイの開始時刻および終了時刻のデータに基づき、前記デプロイの所要時間を特定し、
    特定された前記予測時刻と前記所要時間とに基づき、前記情報処理装置において前記デプロイが開始される開始時刻を決定し、
    前記情報処理装置が前記デプロイを開始することを要求する第1の要求を、前記開始時刻において前記情報処理装置に送信し、
    前記予測時刻から所定時間の経過後に前記情報処理装置においてスケールアウトが開始されない場合、前記第1の要求に応じてデプロイされた仮想マシンを削除することを要求する第2の要求を、前記情報処理装置に送信し、
    前記第1の要求に応じてデプロイされた仮想マシンの数に対する前記第2の要求に応じて削除された仮想マシンの数の割合が所定値以上である場合、前記履歴データのうち所定時刻より前の部分を削除する、
    処理を実行させるプログラム。
JP2017213713A 2017-11-06 2017-11-06 情報処理装置、情報処理システム及びプログラム Active JP6962138B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017213713A JP6962138B2 (ja) 2017-11-06 2017-11-06 情報処理装置、情報処理システム及びプログラム
US16/177,487 US10838757B2 (en) 2017-11-06 2018-11-01 Management apparatus and information processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017213713A JP6962138B2 (ja) 2017-11-06 2017-11-06 情報処理装置、情報処理システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2019086949A JP2019086949A (ja) 2019-06-06
JP6962138B2 true JP6962138B2 (ja) 2021-11-05

Family

ID=66327357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017213713A Active JP6962138B2 (ja) 2017-11-06 2017-11-06 情報処理装置、情報処理システム及びプログラム

Country Status (2)

Country Link
US (1) US10838757B2 (ja)
JP (1) JP6962138B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11030009B2 (en) 2019-03-28 2021-06-08 Atlassian Pty Ltd. Systems and methods for automatically scaling compute resources based on demand
US11550635B1 (en) * 2019-03-28 2023-01-10 Amazon Technologies, Inc. Using delayed autocorrelation to improve the predictive scaling of computing resources
CN110321226A (zh) * 2019-07-09 2019-10-11 西安点告网络科技有限公司 主机的自动扩缩容方法、装置、主机及存储介质
US11861362B1 (en) * 2021-03-24 2024-01-02 Amazon Technologies, Inc. Application migration and modernization action completion time forecasting

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5454135B2 (ja) 2009-12-25 2014-03-26 富士通株式会社 仮想マシン移動制御装置、仮想マシン移動制御方法および仮想マシン移動制御プログラム
US9317337B2 (en) * 2012-04-13 2016-04-19 International Business Machines Corporation Utilizing software component metadata to provision virtual machines in a networked computing environment
JP6207193B2 (ja) 2013-03-26 2017-10-04 株式会社日立システムズ サーバ数調整システムおよび方法ならびにプログラム
JP2015011569A (ja) * 2013-06-28 2015-01-19 株式会社東芝 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理プログラム
CN104516767B (zh) * 2013-09-27 2018-01-02 国际商业机器公司 设置虚拟机迁移过程中应用客户端的重传时间的方法和系统
JP6248560B2 (ja) 2013-11-13 2017-12-20 富士通株式会社 管理プログラム、管理方法、および管理装置
US20170075732A1 (en) 2014-03-04 2017-03-16 Nec Corporation Server, control apparatus, operation method, and control method
US9842039B2 (en) * 2014-03-31 2017-12-12 Microsoft Technology Licensing, Llc Predictive load scaling for services
US20160366246A1 (en) * 2015-06-11 2016-12-15 Microsoft Technology Licensing, Llc Computing resource deployment system
US10467040B2 (en) * 2017-09-29 2019-11-05 Nec Corporation Intelligent self-configuring decision method for the cloud resources management and orchestration

Also Published As

Publication number Publication date
US20190138338A1 (en) 2019-05-09
US10838757B2 (en) 2020-11-17
JP2019086949A (ja) 2019-06-06

Similar Documents

Publication Publication Date Title
JP6962138B2 (ja) 情報処理装置、情報処理システム及びプログラム
TWI598744B (zh) 雲端資源之管理系統及其管理方法
JP6589417B2 (ja) 起動制御プログラム、起動制御方法及び起動制御装置
US9367340B2 (en) Resource management method and apparatus for virtual machine system, and virtual machine system
KR20140101358A (ko) 상태 보존형 애플리케이션의 가용성 증가 기법
JP2010541105A (ja) ファームウェアイメージの更新および管理
US20210216353A1 (en) Host Upgrade Method and Device
US8850023B2 (en) Method for changing placement of virtual machine and apparatus for changing placement of virtual machine
JP2015075898A (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
KR20180122593A (ko) 클라우드 컴퓨팅 환경에서 클라우드 호스트를 삭제하는 방법, 장치, 서버 및 저장 매체
JP6227841B1 (ja) データ処理システム及びデータ処理方法
JP7125601B2 (ja) ライブマイグレーション制御プログラム及びライブマイグレーション制御方法
US9524189B2 (en) Information processing device, information processing method, and computer program product
JP6488910B2 (ja) 制御方法、制御プログラム、及び情報処理装置
CN112631994A (zh) 数据迁移方法及系统
JP7176633B2 (ja) 仮想化基盤制御装置、仮想化基盤制御方法および仮想化基盤制御プログラム
CN111917588A (zh) 边缘设备管理方法、装置、边缘网关设备和存储介质
WO2017000586A1 (zh) 虚拟网元的升级方法、装置和计算机存储介质
WO2018192475A1 (zh) 虚机规格调整方法及装置
JP6070282B2 (ja) 仮想マシン管理装置、方法及びプログラム
US20210173698A1 (en) Hosting virtual machines on a secondary storage system
CN115033337A (zh) 虚拟机内存迁移方法、装置、设备及存储介质
WO2016041202A1 (zh) 一种基于云环境系统的部署方法和装置
JP6495872B2 (ja) 移行システム、移行方法および移行プログラム
JP2020154392A (ja) コンテナ管理装置、方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210730

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210830

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: 20210914

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210927

R150 Certificate of patent or registration of utility model

Ref document number: 6962138

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150