[go: up one dir, main page]

JP7177349B2 - スケジュールプログラム、スケジュール装置およびスケジュール方法 - Google Patents

スケジュールプログラム、スケジュール装置およびスケジュール方法 Download PDF

Info

Publication number
JP7177349B2
JP7177349B2 JP2019021387A JP2019021387A JP7177349B2 JP 7177349 B2 JP7177349 B2 JP 7177349B2 JP 2019021387 A JP2019021387 A JP 2019021387A JP 2019021387 A JP2019021387 A JP 2019021387A JP 7177349 B2 JP7177349 B2 JP 7177349B2
Authority
JP
Japan
Prior art keywords
schedule
constraint
time
virtual machine
rescheduling
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
JP2019021387A
Other languages
English (en)
Other versions
JP2020129257A (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 JP2019021387A priority Critical patent/JP7177349B2/ja
Priority to US16/773,249 priority patent/US11256541B2/en
Publication of JP2020129257A publication Critical patent/JP2020129257A/ja
Application granted granted Critical
Publication of JP7177349B2 publication Critical patent/JP7177349B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/485Resource constraint
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/486Scheduler internals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5013Request control
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

本発明はスケジュールプログラム、スケジュール装置およびスケジュール方法に関する。
情報処理の分野では、物理的なコンピュータ(物理マシンや物理ホストと呼ぶことがある)上で、複数の仮想的なコンピュータ(仮想マシンや仮想ホストと呼ぶことがある)を動作させる仮想化技術が利用されている。各仮想マシン上では、OS(Operating System)などのソフトウェアを実行できる。仮想化技術を利用する物理マシンは、複数の仮想マシンを管理するためのソフトウェアを実行する。例えば、ハイパーバイザと呼ばれるソフトウェアが、CPU(Central Processing Unit)の処理能力やRAM(Random Access Memory)の記憶領域を、演算のリソースとして複数の仮想マシンに割り振ることがある。
複数の物理マシンを含むシステムでは、ある物理マシンで実行される仮想マシンを別の物理マシンに移動することがある。こうした仮想マシンの移動は、マイグレーションと呼ばれることがある。例えば、一つの物理的コンピュータシステムから別の物理的コンピュータシステムへの仮想マシンの有意な中断なしでのマイグレーションは、ライブマイグレーション(LM:Live Migration)と呼ばれる。
なお、運用上考慮すべき全ての制約を満足し、かつ、運用コストの安価な実際的な運用計画を自動的に迅速に作成する電力系統の需給計画作成装置が提案されている。
特開2011-8780号公報 特開平11-215702号公報
複数の利用者に仮想マシンの利用環境を提供する情報処理システムが利用されている。当該システムでは、物理マシンのメンテナンスが生じ得る。メンテナンスの際、物理マシンの再起動などを伴うことがあるため、運用者は、事前に、メンテナンスを行う物理マシン上の仮想マシンを別の物理マシンに移動させることがある。ただし、移動処理は、該当の仮想マシンの性能低下や、該当の仮想マシンの一時的な利用中断を招くことがある。そこで、運用者は、メンテナンス日程やそれに伴う仮想マシンの移動スケジュールを作成し、利用者に事前に通知することがある。例えば、移動スケジュールは、物理マシンの性能、物理マシン上の仮想マシンの配置状況、仮想マシンの所要性能、各利用者による仮想マシンの利用予定などの各種制約に応じて決定され得る。
一方、実際の運用では、利用者による仮想マシンの利用予定の変化などに応じて、当初の移動スケジュールに対して変更の要望が発生することがある。ところが、仮想マシンの移動予定の変更は、他の利用者が利用する仮想マシンの決定済の移動予定に影響を及ぼし得る。このため、当初の移動スケジュールを変更することは容易ではない。
例えば、変更対象外の仮想マシンに関する決定済の移動予定に関する制約を満たしつつ、変更対象の仮想マシンに対して変更希望の時間帯を満たすように、移動予定の候補となる時間帯を総当りで探索することで、スケジュール調整することも考えられる。しかし、システムに含まれる物理マシンや仮想マシンの数が多く、移動スケジュールの変更対象の仮想マシンの数が多い程、検討対象となる時間帯の組合せが増し、スケジュール調整に時間がかかってしまう。また、全ての制約を満たす変更後の移動予定が存在する保証はなく、全ての制約を満たす変更後の移動予定を決定できないこともある。
1つの側面では、本発明は、仮想マシンの既存の移動予定への影響を抑えた再スケジューリングを可能にするスケジュールプログラム、スケジュール装置およびスケジュール方法を提供することを目的とする。
1つの態様では、スケジュールプログラムが提供される。スケジュールプログラムは、コンピュータに、複数の物理マシンの間での複数の仮想マシンの移動の時間帯を示す既存スケジュールに対して、仮想マシンの移動の時間帯の変更に関する変更情報を取得し、変更情報と既存スケジュールにおける当該仮想マシン以外の、変更の対象外である他の仮想マシンの移動の時間帯とに応じた制約群を含む制約情報を生成し、制約情報のうち、当該制約群に含まれる制約を1つずつ除外した複数の準制約情報を生成し、生成した複数の準制約情報それぞれに基づいて、複数の仮想マシンの移動の再スケジューリングを行うことで、準制約情報毎に再スケジューリング結果を生成し、複数の再スケジューリング結果のうち、再スケジューリング結果および既存スケジュールにおける上記変更の対象外である他の仮想マシンの移動の予定時刻の差が小さくなる再スケジューリング結果を出力する、処理を実行させる。
また、1つの態様では、スケジュール装置が提供される。
また、1つの態様では、スケジュール方法が提供される。
1つの側面では、仮想マシンの既存の移動予定への影響を抑えた再スケジューリングが可能になる。
第1の実施の形態の情報処理システムの例を示す図である。 第2の実施の形態の情報処理システムの例を示す図である。 管理サーバのハードウェア例を示すブロック図である。 ライブマイグレーションの例を示す図である。 管理サーバの機能例を示す図である。 制約集合に対する極小充足不能コアの例を示す図である。 メンテナンス実施期間情報の例を示す図である。 メンテナンス対象マシン情報の例を示す図である。 物理マシン構成テーブルの例を示す図である。 仮想マシン構成テーブルの例を示す図である。 仮想マシン稼働テーブルの例を示す図である。 依存関係テーブルの例を示す図である。 極小充足不能コア情報の例を示す図である。 優先度テーブルの例を示す図である。 優先度の決定例を示す図である。 メンテナンススケジュールテーブル(変更前)の例を示す図である。 LMスケジュールテーブル(変更前)の例を示す図である。 LM実施日時変更要望情報の例を示す図である。 変更後のスケジュールテーブルの例を示す図である。 制約充足問題における変数の例を示す図である。 変数によるLMの表現の例を示す図である。 管理サーバの処理例を示すフローチャートである。 日程再調整例を示すフローチャートである。 制約充足問題の生成例を示すフローチャートである。 日程変更例を示すフローチャートである。 日程変更例(続き)を示すフローチャートである。 入力データの例(その1)を示す図である。 入力データの例(その2)を示す図である。 入力データの例(その3)を示す図である。 入力データの例(その4)を示す図である。 入力データの例(その5)を示す図である。 入力データの例(その6)を示す図である。 出力データの例(その1)を示す図である。 出力データの例(その2)を示す図である。 LMスケジュールの表示画面の例を示す図である。 LMスケジュールの変更入力画面の例を示す図である。 LMスケジュールの変更の結果表示画面の例を示す図である。 メンテナンススケジュール画面の例を示す図である。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理システムの例を示す図である。
第1の実施の形態の情報処理システムは、スケジュール装置10および物理マシン20,30,40,…を有する。スケジュール装置10および物理マシン20,30,40,…はネットワークN1に接続されている。スケジュール装置10は、物理マシン20,30,40,…における仮想マシンの移動スケジュールを調整する。
物理マシン20,30,40,…それぞれは、CPUやメモリなどの演算リソースを有し、演算リソースを用いて仮想マシンを実行する。例えば、物理マシン20,30,40,…それぞれは、ハイパーバイザを実行し、ハイパーバイザの機能により、仮想マシンに対する演算リソースの割り当てを行う。例えば、物理マシン20は、仮想マシン21を実行する。物理マシン30は、仮想マシン31を実行する。物理マシン40は、仮想マシン41を実行する。物理マシン20,30,40,…それぞれは、2以上の仮想マシンを実行してもよい。なお、「仮想マシン」を「VM」(Virtual Machine)と略記することがある。また、仮想マシン21を識別するための名称(VM名)を「v」とする。仮想マシン31のVM名を「v」とする。仮想マシン41のVM名を「v」とする。
ネットワークN1には、端末装置50も接続されている。端末装置50は、仮想マシンを利用する利用者U1によって利用されるクライアントである。端末装置50は、インターネットなどの他のネットワークを介してネットワークN1に接続されてもよい。
物理マシン20,30,40,…は、自物理マシンで動作する仮想マシンを他の物理マシンに移動させる機能を有する。例えば、物理マシン20,30,40,…はライブマイグレーションと呼ばれる技術を用いて仮想マシンの移動を行う。ライブマイグレーションでは、移動対象の仮想マシンに割り当てられた移動元の物理マシンのCPUリソースやメモリリソースの情報を移動先の物理マシンにコピーすることで、仮想マシンの起動状態を保ったまま仮想マシンを移動させる。あるいは、仮想マシンを移動させる技術として、仮想マシンを停止してから該当の仮想マシンの情報を移動先の物理マシンにコピーするコールドマイグレーションを用いることもできる。
システムの運用では、仮想マシンを実現するための基板(インフラ(infrastructure))である物理マシンに対するセキュリティパッチの適用やOSのアップグレードなどのメンテナンスが行われることがある。物理マシンのメンテナンスには、物理マシンの停止を伴うことがある。物理マシンを停止させる場合、当該物理マシン上の仮想マシンも停止させることになり、仮想マシンを利用できなくなってしまう。
そこで、物理マシンのメンテナンスの前に、メンテナンス対象の物理マシン上の仮想マシンを、物理マシン20,30,40,…のうちの別の仮想マシンに移動させてから、メンテナンス対象の物理マシンのメンテナンスを行うことがある。これにより、利用者の仮想マシン利用に対する、メンテナンスによる影響を軽減し得る。スケジュール装置10は、そのための仮想マシンの移動スケジュールの作成を支援する。
例えば、スケジュール装置10は、物理マシンの性能、物理マシン上の仮想マシンの配置状況、仮想マシンの所要性能、各利用者による仮想マシンの利用予定などの各種制約(制約条件)に応じて、移動スケジュールを作成し、保持する。ただし、当初作成された移動スケジュールを利用者の仮想マシンの利用予定などに応じて変更したいこともある。そこで、スケジュール装置10は、当初作成された移動スケジュールの変更(再スケジューリング)を支援する。
スケジュール装置10は、記憶部11および処理部12を有する。
記憶部11は、RAMなどの揮発性記憶装置でもよいし、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性記憶装置でもよい。処理部12は、CPU、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)などを含み得る。処理部12はプログラムを実行するプロセッサでもよい。プロセッサは、複数のプロセッサの集合(マルチプロセッサ)も含み得る。
記憶部11は、既存スケジュール61を記憶する。既存スケジュール61は、物理マシン20,30,40,…のメンテナンスに伴う仮想マシン21,31,41,…の、作成済みの移動スケジュールを示す情報である。既存スケジュール61は、複数の物理マシンの間での複数の仮想マシンの移動の時間帯を示す。なお、既存スケジュール61は、現在以降に予定されている未実行の移動スケジュールであり、実行済の移動スケジュールを含まない。
例えば、既存スケジュール61には、仮想マシン21,31,41,…のうち、VM名が「v」の仮想マシン21、「v」の仮想マシン31、「v」の仮想マシン41に対する移動予定時間帯が登録されている。既存スケジュール61には、それ以外の仮想マシンに対する移動予定時間帯も登録されるが、それ以外の仮想マシンについては「…」と略記している。仮想マシン21の移動予定時間帯は、「t~t」(時刻t~時刻tの間の時間帯)である。仮想マシン31の移動予定時間帯は、「t~t」(時刻t~時刻tの間の時間帯)である。仮想マシン41の移動予定時間帯は、「t~t」(時刻t~時刻tの間の時間帯)である。
処理部12は、既存スケジュール61に対して、ある仮想マシンの移動の時間帯の変更に関する変更情報62を取得する。変更対象の仮想マシンは1つでもよいし複数でもよい。例えば、変更情報62は、利用者U1による仮想マシン21の利用予定の変化に応じて、利用者U1により端末装置50に入力され、端末装置50からスケジュール装置10に入力される。
変更情報62は、例えば、仮想マシン21のVM名「v」に対して、利用者U1が物理マシン間の移動を希望する時間帯(移動希望時間帯)を「t~t」(時刻t~tの間の時間帯)とすることを示す。なお、変更情報62は、移動希望時間帯に代えて、移動の回避を希望する時間帯(回避時間帯以外の時間帯での移動を希望していることを示す)を含んでもよい。端末装置50は、入力された変更情報62をスケジュール装置10に送信する。スケジュール装置10は、端末装置50により送信された変更情報62を受信することで、変更情報62を取得する。あるいは、システム運用者によって、スケジュール装置10に、変更情報62が入力されてもよい。
処理部12は、変更情報62と既存スケジュール61における変更対象の仮想マシン以外の他の仮想マシン(変更の対象外の他の仮想マシン)の移動の時間帯とに応じた制約群を含む制約情報70を生成する。例えば、処理部12は、変更情報62に含まれる変更対象の仮想マシン21の移動希望時間帯に関する制約c1を生成する。制約c1は、「t≦l(v)≦t」と表される。ここで、変数l(v)は、仮想マシンvの移動実施開始時刻を表す。また、処理部12は、既存スケジュール61に含まれる、仮想マシン31,41,…それぞれの移動予定時間帯に関する制約c2,c3,…を生成する。例えば、制約c2は、「l(v)=t」と表される。制約c3は、「l(v)=t」と表される。
制約情報70は、仮想マシンの移動の時間帯に応じた制約群(制約c1,c2,c3,…)の他にも、既存スケジュール61の作成時に用いられた他の制約(物理マシンの性能、物理マシン上の仮想マシンの現在の配置状況、仮想マシンの所要性能)を含み得る。また、制約情報70は、変更対象の仮想マシン(例えば、仮想マシン21)に対する既存スケジュール61の移動予定時間帯に対する制約を含まない。
処理部12は、制約情報70のうち、仮想マシンの移動の時間帯に応じた制約群に含まれる制約を1つずつ除外した複数の準制約情報を生成する。例えば、処理部12は、制約情報70に基づいて、準制約情報71,72,73,…を生成する。準制約情報71は、制約情報70のうち、制約c1を除外したものである。準制約情報72は、制約情報70のうち、制約c2を除外したものである。準制約情報73は、制約情報70のうち、制約c3を除外したものである。同様に、処理部12は、制約情報70から、仮想マシンの移動の時間帯に応じた制約を1つずつ除外することで、他の準制約情報を生成する。
処理部12は、生成した複数の準制約情報それぞれに基づいて、複数の仮想マシン(仮想マシン21,31,41,…)の移動の再スケジューリングを行うことで、準制約情報毎に再スケジューリング結果の情報を生成する。例えば、処理部12は、作成した準制約情報71,72,73,…それぞれおよびメンテナンスを行う実施予定期間(現在よりも後の期間)の情報を制約充足判定ソルバに入力し、制約充足判定ソルバの機能により、再スケジューリング結果を作成する。再スケジューリング結果は、調整後のスケジュールを示す情報である。例えば、処理部12は、制約充足判定ソルバとして、MILP(Mixed Integer Linear Programming、混合整数線形計画法)ソルバやSAT(SATisfiability problem、充足可能性問題)ソルバなどを用いることができる。ここで、以下では、制約充足判定ソルバを、単にソルバと称することがある。処理部12は、複数の準制約情報に対する複数の再スケジューリング結果を作成する(ソルバの機能により、1つの準制約情報から1つの再スケジューリング結果が作成される)。
処理部12は、複数の再スケジューリング結果のうち、再スケジューリング結果および既存スケジュールにおける変更の対象外の他の仮想マシンの移動の予定時刻の差が小さくなる再スケジューリング結果を出力する。例えば、処理部12は、再スケジューリング結果で示される仮想マシンの移動の予定時刻と、既存スケジュール61で示される仮想マシンの移動の予定時刻との差を、制約を除外した仮想マシン毎に求める。ここで、仮想マシンの移動の予定時刻は、例えば、仮想マシンの移動の開始予定時刻、または、終了予定時刻である。時刻の差は、正の値として求められる。例えば、処理部12は、仮想マシンの移動の予定時刻の差が最小になる再スケジューリング結果を選択する。
処理部12は、選択した再スケジューリング結果を出力する。例えば、処理部12は、再スケジューリング結果を端末装置50に出力し、端末装置50の表示装置に再スケジューリング結果を表示させることで、再スケジューリング結果を利用者U1に通知してもよい。あるいは、処理部12は、スケジュール装置10に接続された表示装置に再スケジューリング結果を表示させることで、再スケジューリング結果を運用者に通知してもよい。
これにより、仮想マシンの既存の移動予定への影響を抑えた再スケジューリングが可能になる。例えば、処理部12は、制約情報70を充足する解を取得できずに再スケジューリングを行えないこともある。一方、準制約情報に基づく充足可能問題をソルバで解くことで、制約情報70では再スケジューリングを行えない場合でも、充足可能な解(すなわち、適切な再スケジューリング結果)を取得できる可能性を高められる。
ただし、準制約情報では、何れかの仮想マシンで、既存の移動予定時間帯に対する制約が除外されている。このため、準制約情報に基づいて得られた再スケジューリング結果では、変更対象外の仮想マシンについて、既存の移動予定時刻が変更されている可能性がある。そこで、処理部12は、各準制約情報に対する再スケジューリング結果で示される移動予定時刻のうち、既存の移動予定時刻との差が小さくなる再スケジューリング結果を選択することで、変更対象外の仮想マシンの移動予定への影響を小さくできる。
なお、処理部12は、準制約情報71,72,73,…を生成する際、各仮想マシンの移動の時間帯についての極小充足不能コア(Minimal Unsatisfiable(UNSAT) Core)に属する制約を、制約情報70からの除外対象として選択することが考えられる。
ここで、充足不能コア(UNSAT Core)は、与えられた制約充足問題が充足不能であるときの、当該制約充足問題の中に存在する充足不能な部分制約集合である。特に、極小充足不能コアは、局所性をもつ充足不能コアである。充足不能な制約充足問題について、極小充足不能コアの中のどれか1つの制約を取り除くと、充足不能な制約充足問題は充足可能な問題に変化する。極小充足不能コアの抽出には、次の文献に記載された手法を用いることができる。
(文献1)A.Nadel,“Boosting Minimal Unsatisfiable Core Extraction,” in Proc. FMCAD’10,pp.221-229,2010.
論理演算によって表現された制約集合の一例として、式(1)で表される制約a1,a2,a3を有する制約集合が考えられる。
Figure 0007177349000001
ここで、p,q,rは論理変数であり、0または1の値をとる。制約a1は、pとqとの排他的論理和である。制約a2は、pとrの否定との論理和である。制約a3は、pとqとの論理和の否定である。制約a1,a2,a3の全てを真にするp,q,rの値の組み合わせは存在せず、当該制約集合は充足不能となる。この制約集合の極小充足不能コアは、制約a1,a3である。すなわち、制約a1,a2,a3を含む制約集合のうち制約a1、または、制約a3の何れか一方の制約を無効にすると、充足可能になる。
例えば、処理部12は、まずは、制約情報70に基づく制約充足問題をソルバにより解くことで再スケジューリングを試みてもよい。そして、処理部12は、当該制約充足問題を充足する解を取得できた場合には、取得した解を再スケジューリング結果とする。一方、処理部12は、制約情報70に基づく制約充足問題が充足不能と判断された場合に、制約情報70から仮想マシンの移動の時間帯に対する極小充足不能コアを抽出し、準制約情報71,72,73,…を生成して、再スケジューリングを行ってもよい。
また、処理部12は、極小充足不能コアに属する全ての制約を1つずつ除外して複数の準制約情報を生成してもよいし、極小充足不能コアに属する一部の制約を1つずつ除外して複数の準制約情報を生成してもよい。後者の方法では、前者の方法よりも再スケジューリングを高速化できる。後者の場合、一部の制約を抽出するために、仮想マシン毎の優先度を用いてもよい。例えば、仮想マシンの利用期間や利用料金に応じて仮想マシン毎の優先度を決め、優先度が低い仮想マシンに関する制約を優先的に除外対象とすることも考えられる。例えば、利用期間が長い、または、利用頻度が高い仮想マシンの優先度を上げ、制約の除外対象になる可能性を小さくすることで、利用者による仮想マシンの利用に対する影響を低減できる。
また、上記ソルバに入力される物理マシンに関するメンテナンスの実施予定期間は、メンテナンス対象の物理マシンに対してメンテナンスを行う候補の期間ということもできる。例えば、処理部12は、物理マシン毎のメンテナンスの所要時間の情報(記憶部11に予め格納される)に基づいて、物理マシン毎のメンテナンス実施期間に関する制約を更に作成してもよい。処理部12は、当該制約に基づいて、仮想マシンの移動の再スケジューリングと共に、当該候補期間のうち物理マシン毎のメンテナンスを行う期間を、ソルバにより決定してもよい。この場合、処理部12は、メンテナンス対象の物理マシン上の仮想マシンを、当該物理マシンのメンテナンスを行う期間よりも前に、他の物理マシンに移動させるように、再スケジューリングを行う。
また、処理部12は、複数の再スケジューリング結果のうちの1つを出力する際、変更対象外の仮想マシンの移動の新規予定時刻と既存予定時刻との差以外にも、変更対象の仮想マシンの移動の希望時間帯と新規予定時間帯との差を考慮してもよい。ここで、希望時間帯T~T(T<T)と新規予定時間帯T~T(T<T)との差ΔTは、例えば、次のように表される。T≦T<TかつT<T≦Tの場合、ΔT=0である。T<TかつT≦Tの場合、ΔT=T-Tである。T≦TかつT<Tの場合、ΔT=T-Tである。T<TかつT<Tの場合、ΔT=(T-T)+(T-T)である。
例えば、処理部12は、複数の再スケジューリング結果のうち、再スケジューリング結果および既存スケジュール61における仮想マシン31,41,…の移動予定時刻の第1の差、または、変更情報62および再スケジューリング結果における仮想マシン21の移動の時間帯の第2の差が小さくなる再スケジューリング結果を出力することも考えられる。一例として、処理部12は、第1の差または第2の差の何れかが最小になる再スケジューリング結果を選択し、選択した再スケジューリング結果を出力してもよい。あるいは、他の例として、処理部12は、第1の差と第2の差との合計が最小になる再スケジューリング結果を選択してもよい。これにより、変更対象の仮想マシンに対する移動希望の時間帯での移動可能性を向上しつつ、それ以外の仮想マシンの既存の移動予定時間帯への影響を小さくすることができる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
第2の実施の形態の情報処理システムは、管理サーバ100および物理マシン200,300,400,…を有する。管理サーバ100および物理マシン200,300,400,…は、ネットワーク81に接続されている。ネットワーク81は、例えば、LAN(Local Area Network)である。ネットワーク81は、ネットワーク82に接続されている。ネットワーク82は、ネットワーク81の外部のネットワークであり、例えば、インターネットやWAN(Wide Area Network)などである。ネットワーク82には、利用者端末500,600が接続されている。また、ネットワーク81には、運用者端末700が接続されている。
ここで、第2の実施の形態の情報処理システムは、クラウドコンピューティングサービスと呼ばれるサービスを提供する。クラウドコンピューティングサービスでは、システムの運用者は、システム上のハードウェア資源をネットワーク経由で複数の利用者(テナント)に提供する。システムの利用者は、提供されるハードウェア資源を用いて、仮想マシンを構築し、当該仮想マシン上で種々の業務アプリケーションを利用する。
第2の実施の形態の情報処理システムでは、サービスの品質を維持するために、インフラ(クラウド基盤)側のメンテナンス(例えば、物理マシン200,300,400,…に対するセキュリティパッチの適用やOSのアップグレードなど)が行われる。そこで、物理マシンに対してメンテナンスを行う前に、該当の物理マシン上で動作中の仮想マシンを別の物理マシンに移動する処理が行われる。物理マシン上の仮想マシンを全て移動させた後に、該当の物理マシンのメンテナンスが行われる。第2の実施の形態の例では、仮想マシンの移動に、ライブマイグレーションの技術が利用される(ただし、仮想マシンの移動に、コールドマイグレーションを用いてもよい)。
管理サーバ100は、物理マシン200,300,400,…における仮想マシンのライブマイグレーションのスケジュールを管理するサーバコンピュータである。管理サーバ100は、メンテナンス対象の物理マシンおよびメンテナンスの実施期間が入力されると、メンテナンス対象の物理マシン上で動作する仮想マシンのライブマイグレーションのスケジュールを作成する。管理サーバ100は、作成したスケジュールを、利用者端末500,600や運用者端末700に送信する。また、管理サーバ100は、作成したスケジュールが確定されると、確定されたスケジュールに従って、メンテナンス対象の物理マシンに仮想マシンのライブマイグレーションを指示する。
また、管理サーバ100は、利用者による仮想マシンの利用予定の変化などに応じて、当初作成されたスケジュールを変更する。管理サーバ100は、スケジュールの変更を行った場合、変更後のスケジュールを、利用者端末500,600や運用者端末700に送信する。また、管理サーバ100は、変更後のスケジュールが確定されると、確定された変更後のスケジュールに従って、メンテナンス対象の物理マシンに仮想マシンのライブマイグレーションを指示する。管理サーバ100は、第1の実施の形態のスケジュール装置10の一例である。
物理マシン200,300,400,…は、それぞれがCPUやメモリなどの演算リソースを有し、演算リソースを用いて仮想マシンを実行するサーバコンピュータである。例えば、物理マシン200,300,400,…それぞれは、ハイパーバイザを実行し、ハイパーバイザの機能により、仮想マシンに対する演算リソースの割り当てを行う。物理マシン200,300,400,…は、第1の実施の形態の物理マシン20,30,40,…の一例である。
利用者端末500,600は、利用者によって利用されるクライアントコンピュータである。利用者端末500,600は、異なる利用者によって利用される。各利用者は、利用者端末500,600を操作して、物理マシン200,300,400,…上の仮想マシンを利用する。利用者端末500の利用者は、利用者端末500を用いて、管理サーバ100により提供されるライブマイグレーション(自身が利用する仮想マシンについてのライブマイグレーション)のスケジュールを確認することもある。利用者端末600の利用者も同様に、利用者端末600を用いて、管理サーバ100により提供されるライブマイグレーションのスケジュールを確認することもある。利用者端末500,600は、第1の実施の形態の端末装置50の一例である。
運用者端末700は、第2の実施の形態の情報処理システムの運用者(システム管理者)によって利用されるクライアントコンピュータである。運用者は、運用者端末700を用いて、管理サーバ100により提供される物理マシンのメンテナンスのスケジュールやメンテナンスに伴うライブマイグレーションのスケジュールを確認する。
図3は、管理サーバのハードウェア例を示すブロック図である。
管理サーバ100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106およびNIC(Network Interface Card)107を有する。なお、CPU101は、第1の実施の形態の処理部12に対応する。RAM102またはHDD103は、第1の実施の形態の記憶部11に対応する。
CPU101は、プログラムの命令を実行するプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを含んでもよい。また、管理サーバ100は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、管理サーバ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OSやミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、管理サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、管理サーバ100に接続されたディスプレイ91に画像を出力する。ディスプレイ91としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなど、任意の種類のディスプレイを用いることができる。
入力信号処理部105は、管理サーバ100に接続された入力デバイス92から入力信号を取得し、CPU101に出力する。入力デバイス92としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、管理サーバ100に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ106は、記録媒体93に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体93として、例えば、磁気ディスク、光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク(FD:Flexible Disk)やHDDが含まれる。光ディスクには、CD(Compact Disc)やDVD(Digital Versatile Disc)が含まれる。
媒体リーダ106は、例えば、記録媒体93から読み取ったプログラムやデータを、RAM102やHDD103などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、CPU101によって実行される。なお、記録媒体93は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体93やHDD103を、コンピュータ読み取り可能な記録媒体と言うことがある。
NIC107は、ネットワーク81に接続され、ネットワーク81を介して他のコンピュータと通信を行うインタフェースである。NIC107は、例えば、ネットワーク81に属するスイッチやルータなどの通信装置とケーブルで接続される。
物理マシン200,300,400,…、利用者端末500,600および運用者端末700も管理サーバ100と同様のハードウェアを用いて実現できる。
図4は、ライブマイグレーションの例を示す図である。
物理マシン200,300,400,…は、ライブマイグレーションにより、物理マシン間で仮想マシンを移動させる。例えば、物理マシン200は、ハイパーバイザ210および仮想マシン211,212を有する。物理マシン300は、ハイパーバイザ310および仮想マシン311を有する。ハイパーバイザ210は、物理マシン200が備えるCPUやメモリといったハードウェアのリソースを仮想マシン211,212に割り当てる。ハイパーバイザ310も同様に、物理マシン300が備えるハードウェアのリソースを仮想マシン311に割り当てる。例えば、物理マシン200から物理マシン300に仮想マシン212を移動する場合を想定すると、ライブマイグレーションにより次のような手順を採ることが考えられる。
(1)物理マシン300上で移動対象の仮想マシン212用のCPU/メモリリソースを予約する。(2)物理マシン200で移動対象の仮想マシン212に割り当てられているメモリリソースのデータを、物理マシン300で当該仮想マシン212用に新たに割り当てたメモリリソースにコピーする。(3)物理マシン200から物理マシン300へ仮想マシン212に割り当てていたCPUリソースの状態をコピーし、物理マシン200で仮想マシン212を停止させる。(4)物理マシン300で仮想マシン212を再開し、物理マシン200で仮想マシン212に割り当てていたリソースを解放する。これにより、物理マシン200上で稼働している仮想マシン212を、物理マシン300に移動させることができる。上記の手順はPre-Copyと呼ばれることもある。ただし、ライブマイグレーションにはPost-Copyなどの他の手順を用いてもよい。
ここで、以下の説明では、ライブマイグレーションを、LMと略記することがある。
図5は、管理サーバの機能例を示す図である。
管理サーバ100は、インフラ管理部110およびスケジューラ120を有する。インフラ管理部110およびスケジューラ120の機能は、CPU101により実現される。例えば、CPU101は、RAM102に記憶されたスケジュールプログラムを実行することで、インフラ管理部110およびスケジューラ120の機能を発揮する。インフラ管理部110およびスケジューラ120は、FPGAやASICなどのハードウェアにより実現されてもよい。
インフラ管理部110は、各物理マシンのハードウェアの構成や各仮想マシンに割り当てられるリソースの構成を管理する。インフラ管理部110は、インフラ構成情報記憶部111、VM性能情報記憶部112およびインフラ管理制御部113を有する。インフラ構成情報記憶部111およびVM性能情報記憶部112は、例えば、RAM102やHDD103の記憶領域を用いて実現される。
インフラ構成情報記憶部111は、インフラ構成情報を記憶する。インフラ構成情報は、各物理マシンのハードウェアの構成や各仮想マシンに割り当てられるリソースの構成に関する情報である。インフラ構成情報は、各仮想マシンのLMの所要時間に関する情報を含む。
VM性能情報記憶部112は、VM性能情報を記憶する。また、VM性能情報は、LMの所要時間の予測結果を得るために用いられた各仮想マシンの負荷の履歴(過去の各時刻における各仮想マシンの負荷の履歴)などを含む。なお、各仮想マシンの負荷の履歴に基づくLMの所要時間の予測は、管理サーバ100により行われてもよい。
インフラ管理制御部113は、スケジューラ120により決定されたLMのスケジュールに従って、各物理マシンに対する仮想マシンのLMを指示する。
スケジューラ120は、物理マシンのメンテナンスを行う際に、メンテナンス対象の物理マシンで動作する仮想マシンのLMのスケジュールを決定する。スケジューラ120は、メンテナンス実施期間やメンテナンス対象の物理マシンの情報を運用者端末700から受け付けると、インフラ構成情報記憶部111(およびVM性能情報記憶部112)に記憶された情報に基づいて、LMのスケジュールを決定する。
また、スケジューラ120は、決定後のLMのスケジュールに対する変更を受け付けることもある。例えば、スケジューラ120は、利用者による仮想マシンの利用予定の変化に応じて、該当の仮想マシンに関して、当初決定されたスケジュールとは異なるLMの実行時間帯の要望を、利用者端末500,600から受け付ける。すると、スケジューラ120は、当初決定したLMのスケジュールを変更する。このスケジュール変更は、変更が要望された仮想マシン以外の他の仮想マシンのLMのスケジュールに影響を及ぼすこともある。
スケジューラ120は、制約条件記憶部121、VM優先度記憶部122、イベント情報記憶部123、制約条件生成部124、ソルバ部125、充足不能コア抽出部126、VM優先度設定部127およびスケジュール変更部128を有する。制約条件記憶部121、VM優先度記憶部122およびイベント情報記憶部123は、例えば、RAM102やHDD103の記憶領域を用いて実現される。
制約条件記憶部121は、制約条件生成部124により生成された制約条件を記憶する。
VM優先度記憶部122は、仮想マシン毎の優先度を記憶する。仮想マシン毎の優先度は、再スケジューリングの際に除外対象とする制約条件を選択するために用いられる。
イベント情報記憶部123は、ソルバ部125により作成された各仮想マシンのLMのスケジュールの情報や各物理マシンのメンテナンスのスケジュールの情報を記憶する。イベント情報記憶部123は、スケジュール変更部128による各仮想マシンの変更後のLMのスケジュールおよび変更後の各物理マシンのメンテナンスのスケジュールの情報を記憶する。
制約条件生成部124は、インフラ構成情報記憶部111に記憶されたインフラ構成情報に基づいて、LMのスケジュールの決定に対する制約条件を生成する。制約条件生成部124は、VM性能情報記憶部112に記憶されたVM性能情報を更に用いて、LMのスケジュールの決定に対する制約条件を生成してもよい。例えば、各仮想マシンについて、当該仮想マシンの負荷が低い時間帯を優先してLMを実施することを制約条件とすることが考えられる。制約条件生成部124は、生成した制約条件を制約条件記憶部121に格納する。
再スケジューリングの場合、制約条件生成部124は、利用者端末500,600から入力されたLMの実行時間帯の要望に関する制約条件も生成する。また、再スケジューリングの場合、制約条件生成部124は、イベント情報記憶部123に記憶された既存のスケジュールの情報に基づいて、当該既存のスケジュールに応じた制約条件も生成する。
ソルバ部125は、制約条件生成部124により生成された制約条件を満足するようにスケジューリングできるかを判定することで、LMのスケジュールの作成を試行する。ソルバ部125は、生成された制約条件を最も良く満足するLMのスケジュールを、イベント情報記憶部123に格納する。ソルバ部125としては、MILPソルバやSATソルバなどを利用することができる。
再スケジューリングの場合も同様に、ソルバ部125は、制約条件生成部124により生成された制約条件を最も良く満足するLMのスケジュールを生成し、イベント情報記憶部123に格納する。再スケジューリングの際、ソルバ部125は、制約条件生成部124により生成された制約条件を全て満足するLMのスケジュールを生成できないこともある。
充足不能コア抽出部126は、再スケジューリングの際に、ソルバ部125がLMのスケジュールを生成できない場合、再スケジューリングに用いられた全制約条件のうちのLMの実行時間帯に関する制約条件から、極小充足不能コアを抽出する。充足不能コア抽出部126は、抽出した極小充足不能コアをスケジュール変更部128に提供する。
VM優先度設定部127は、仮想マシン毎の優先度を決定し、VM優先度記憶部122に格納する。例えば、VM優先度設定部127は、利用者による仮想マシンの利用状況に基づいて、仮想マシン毎の優先度を決定する。
スケジュール変更部128は、極小充足不能コアおよびVM優先度記憶部122に記憶された仮想マシン毎の優先度に基づいて、再スケジューリングに用いられた全制約条件のうち、除外対象とする制約条件を決定する。そして、スケジュール変更部128は、当該全制約条件から、除外対象とする制約条件を1つずつ除外した準制約充足問題を、複数生成する。
スケジュール変更部128は、生成した各準制約充足問題に基づいて、ソルバ部125と同様に、当該準制約充足問題を最も良く満足するLMの再スケジューリング結果を生成する。そして、スケジュール変更部128は、複数の再スケジューリング結果から、所定の目的関数に基づいて、1つの再スケジューリング結果を選択する。例えば、目的関数は、LM時間帯の変更が希望された仮想マシンの希望時間帯と変更後の時間帯との差、および、それ以外の仮想マシンの既存のLM予定時刻と変更後のLM予定時刻との差を表す関数である。この場合、スケジュール変更部128は、目的関数を最小にする再スケジューリング結果を選択し、変更後のスケジュールの情報として、イベント情報記憶部123に格納する。
次に、極小充足不能コアについて説明する。
図6は、制約集合に対する極小充足不能コアの例を示す図である。
例えば、論理演算によって表された制約集合G1を考える。制約集合G1は、制約条件a1,a2,a3を含む。制約条件a1,a2,a3は、論理変数p,q,rを含む。論理変数p,q,rの値は、0または1である。
制約条件a1は、「p XOR q」である。制約条件a2は、「p OR (¬r)」である。ここで、「¬x」は、xの否定を表す。制約条件a3は、「¬(p OR q)」である。
制約条件a1,a2,a3を全て真にするp,q,rの組は存在しない。したがって、制約集合G1は、充足不能である。この場合、制約集合G1から極小充足不能コアC1を抽出することができる。制約集合G1の例では、極小充足不能コアC1は、制約条件a1,a3の組となる。すなわち、制約集合G1のうち、制約条件a1,a3の何れか1つの制約を無効にした制約集合(制約条件a1,a2の集合または制約条件a2,a3の集合)は、充足可能になる。
充足不能コア抽出部126は、例えば、制約集合G1に対し、極小充足不能コアC1として、制約条件a1,a3の組を抽出する。極小充足不能コアの抽出には、前述の文献1“Boosting Minimal Unsatisfiable Core Extraction”の方法を用いることができる。
図7は、メンテナンス実施期間情報の例を示す図である。
メンテナンス実施期間情報131は、運用者端末700により、スケジューラ120に入力される。メンテナンス実施期間情報131は、システムに含まれる複数の物理マシンに関するメンテナンスの実施期間の情報である。メンテナンス実施期間情報131は、開始日時および終了日時の項目を含む。
開始日時の項目には、メンテナンスの実施期間の開始日時が登録される。終了日時の項目には、メンテナンスの実施期間の終了日時が登録される。例えば、メンテナンス実施期間情報131は、開始日時「2018-06-01T12:00:00.000Z」および終了日時「2018-06-30T11:59:00.000Z」という情報を含む。これは、メンテナンス実施期間が2018年6月1日12時00分から2018年6月30日11時59分までであることを示す。再スケジューリングの場合、再スケジューリングの起点となる時刻が、メンテナンス実施期間の開始日時となる。
ここで、1つの物理マシンに対するメンテナンス作業は、メンテナンス実施期間のうちの一部の時間範囲を用いて行われる。管理サーバ100は、各物理マシンのメンテナンス作業が、入力されたメンテナンス実施期間中に完了するようにスケジューリングする。
例えば、管理サーバ100は、第1の物理マシンに対するメンテナンス作業を行う前に、第1の物理マシン上の全ての仮想マシンを第2の物理マシン(移動先の物理マシンは複数でもよい)に移動させて、第1の物理マシンのメンテナンス作業を行えるようにする。
また、その後、第2の物理マシンのメンテナンス作業を行う場合も考えられる。その場合、管理サーバ100、第2の物理マシン上の全ての仮想マシンを第1の物理マシンまたは第3の物理マシン(移動先の物理マシンは複数でもよい)に移動させて、第2の物理マシンのメンテナンス作業を行えるようにする。
図8は、メンテナンス対象マシン情報の例を示す図である。
メンテナンス対象マシン情報132は、運用者端末700により、スケジューラ120に入力される。メンテナンス対象マシン情報132は、物理マシン名およびメンテナンス所要時間の項目を含む。
物理マシン名の項目には、物理マシンの名称が登録される。メンテナンス所要時間の項目には、当該物理マシンのメンテナンスの所要時間が登録される。例えば、メンテナンス対象マシン情報132は、物理マシン名「PM01」(「PM」は、Physical Machineの略)、メンテナンス所要時間「01:00:00.000」という情報を含む。これは、物理マシン名「PM01」で示される物理マシンのメンテナンス作業の所要時間が1時間であることを示す。
メンテナンス対象マシン情報132には、メンテナンス対象の他の物理マシンに対しても、同様に物理マシン名とメンテナンス所要時間が登録される。
図9は、物理マシン構成テーブルの例を示す図である。
物理マシン構成テーブル141は、インフラ構成情報記憶部111に予め格納されている。物理マシン構成テーブル141は、物理マシン名、CPUコア数、メモリ容量およびディスク容量の項目を含む。
物理マシン名の項目には、物理マシンの名称が登録される。CPUコア数の項目には、当該物理マシンが備えるCPUコアの数が登録される。メモリ容量の項目には、当該物理マシンが備えるメモリ(RAM)の容量が登録される。ディスク容量の項目には、当該物理マシンが備えるHDD(あるいは、当該物理マシンに対して外部ストレージに割り当てられた補助記憶領域)の容量が登録される。
例えば、物理マシン構成テーブル141には、物理マシン名が「PM01」、CPUコア数が「64」、メモリ容量が「256GB」、ディスク容量が「32TB」というレコードが登録されている。このレコードは、物理マシン名「PM01」で示される物理マシンが備えるCPUコア数が64個、メモリ容量が256GB、ディスク容量が32TBであることを示す。
物理マシン構成テーブル141には、他の物理マシンに対しても同様に、物理マシン名とCPUコア数とメモリ容量とディスク容量とが登録される。
図10は、仮想マシン構成テーブルの例を示す図である。
仮想マシン構成テーブル142は、インフラ構成情報記憶部111に予め格納されている。仮想マシン構成テーブル142は、仮想マシン名、ユーザID(IDentifier)、CPUコア数、メモリ容量、ディスク容量およびLM所要時間の項目を含む。
仮想マシン名の項目には、仮想マシンの名称が登録される。ユーザIDの項目には、該当の仮想マシンを利用する利用者のIDが登録される。CPUコア数の項目には、当該仮想マシンに割り当てられるCPUコア数が登録される。メモリ容量の項目には、当該仮想マシンに割り当てられるメモリの容量が登録される。ディスク容量の項目には、当該仮想マシンに割り当てられるHDD(あるいは、物理マシンの外部ストレージの補助記憶装置)の容量が登録される。LM所要時間の項目には、当該仮想マシンのLMの所要時間が登録される。
例えば、仮想マシン構成テーブル142には、仮想マシン名が「accounting-db-13」、ユーザIDが「user1」、CPUコア数が「2」、メモリ容量が「32GB」、ディスク容量が「2TB」、LM所要時間が「25分」というレコードが登録されている。このレコードは、仮想マシン名「accounting-db-13」の仮想マシンが、ユーザID「user1」の利用者により利用されることを示す。また、当該仮想マシンに対して所要されるCPUコア数が2個、メモリ容量が32GB、ディスク容量が2TBであり、LM所要時間が25分であることを示す。
仮想マシン構成テーブル142には、他の仮想マシンに対しても同様に、仮想マシン名とCPUコア数とメモリ容量とディスク容量とユーザIDとLM所要時間とが登録される。
図11は、仮想マシン稼働テーブルの例を示す図である。
仮想マシン稼働テーブル143は、インフラ構成情報記憶部111に予め格納されている。仮想マシン稼働テーブル143は、各仮想マシンの初期配置先の物理マシンを示す情報である。再スケジューリングの場合、各仮想マシンの初期配置先は、再スケジューリングの対象期間の開始日時における各仮想マシンの配置先となる。仮想マシン稼働テーブル143は、物理マシン名、仮想マシン名およびユーザIDの項目を含む。
物理マシン名の項目には、物理マシンの名称が登録される。仮想マシン名の項目には、当該物理マシン上で稼働する仮想マシンの名称が登録される。ユーザIDの項目には、当該仮想マシンを利用するユーザのユーザIDが登録される。
例えば、仮想マシン稼働テーブル143には、物理マシン名が「PM01」、仮想マシン名が「server-90」、ユーザIDが「user3」というレコードが登録されている。このレコードは、物理マシン名「PM01」で示される物理マシン上で、仮想マシン名「server-90」で示される仮想マシンが稼働しており、ユーザID「user3」のユーザが当該仮想マシンを利用していることを示す。
仮想マシン稼働テーブル143には、他の仮想マシンに対しても同様に、配置先の物理マシン名と仮想マシン名とユーザIDとが登録される。
図12は、依存関係テーブルの例を示す図である。
依存関係テーブル144は、インフラ構成情報記憶部111に予め格納されている。依存関係テーブル144は、仮想マシンのグループに対する依存関係を示す情報である。依存関係テーブル144は、グループ名、仮想マシン名およびルールの項目を含む。
グループ名の項目には、仮想マシンのグループの名称が登録される。仮想マシン名の項目には、該当のグループに属する仮想マシンの名称の組が登録される。ルールの項目には、該当のグループに属する仮想マシンを同一の物理マシン上で稼働させるか否かを示す情報が登録される。例えば、ルール「affinity」は、同一の物理マシン上で稼働させること(affinityルールと呼ぶ)を示す。また、ルール「anti-affinity」は、同一の物理マシン上で稼働させないこと(anti-affinityルールと呼ぶ)を示す。
例えば、依存関係テーブル144には、グループ名が「G01」、仮想マシン名が「accounting-db-13」および「accounting-db-03」、ルールが「anti-affinity」というレコードが登録されている。このレコードは、グループ名「G01」で示されるグループに、仮想マシン名「accounting-db-13」および「accounting-db-03」の2つの仮想マシンが所属し、これら仮想マシンを同一物理マシン上で稼働させないことを示す。
また、例えば、依存関係テーブル144には、グループ名が「G02」、仮想マシン名が「accounting-db-03」および「accounting-web-03」、ルールが「affinity」というレコードが登録されている。このレコードは、グループ名「G02」で示されるグループに、仮想マシン名「accounting-db-03」および「accounting-web-03」の2つの仮想マシンが所属し、これら仮想マシンを同一物理マシン上で稼働させることを示す。
依存関係テーブル144には、仮想マシンの他のグループに対しても同様に、グループ名と仮想マシン名とルールとが登録される。
図13は、極小充足不能コア情報の例を示す図である。
極小充足不能コア情報145は、充足不能コア抽出部126により生成され、制約条件記憶部121に格納される。充足不能コア抽出部126は、仮想マシン名の項目を含む。仮想マシン名の項目には、極小充足不能コアに属する制約条件に対応する仮想マシンの名称が登録される。
例えば、充足不能コア抽出部126には、仮想マシン名「vm-67」、「server-90」、「accounting-web-03」、…という情報が登録されている。これは、再スケジューリングに用いられている充足不能な制約集合のうち、仮想マシン名「vm-67」、「server-90」、「accounting-web-03」、…の何れか1つの仮想マシンに対するLMの実施時間帯に対する制約条件を除外することで、除外後の制約条件が充足可能になることを示す。ここで、除外対象の仮想マシンが、LM実施時間帯の変更要望があった仮想マシンの場合、「LMの実施時間帯に対する制約条件」は、要望された実施時間帯(あるいは、要望された実施回避時間帯)となる。また、除外対象の仮想マシンが変更要望の対象外の仮想マシンの場合、「LMの実施時間帯に対する制約条件」は、既存のスケジュールにおけるLMの実施予定の時間帯となる。
図14は、優先度テーブルの例を示す図である。
優先度テーブル146は、VM優先度設定部127により生成され、VM優先度記憶部122に格納される。優先度テーブル146は、仮想マシン名および優先度の項目を含む。
仮想マシン名の項目には、仮想マシンの名称が登録される。優先度の項目には、該当の仮想マシンの優先度が登録される。優先度は数値で表され、数値が小さいほど、優先される度合いが高いものとする。
例えば、優先度テーブル146には、仮想マシン名が「accounting-db-13」、優先度が「22」というレコードが登録されている。このレコードは、仮想マシン名「accounting-db-13」の仮想マシンの優先度が「22」である(LM対象の全仮想マシンのうち22番目に優先度が高い)ことを示す。
優先度テーブル146には、他の仮想マシンに対しても同様に、優先度が登録される。
次に、VM優先度設定部127による仮想マシン毎の優先度の決定例を説明する。
図15は、優先度の決定例を示す図である。
VM優先度設定部127は、各仮想マシンの利用情報146aによって、優先度を設定する。例えば、利用情報146aは、仮想マシン名と、当該仮想マシンの利用状況と、LM実施予定時刻とを含む。仮想マシンの利用状況は、各仮想マシンの利用料金や利用者によって利用された期間(利用期間)を含む。VM優先度設定部127は、利用料金が高いほど、該当の仮想マシンの優先度を高くする。また、VM優先度設定部127は、利用期間が長いほど、該当の仮想マシンの優先度を高くする。LM実施予定時刻は、各仮想マシンの既存のLMの実施予定時刻である。VM優先度設定部127は、LM実施予定時刻が再スケジューリングの実施日時に近いほど、該当の仮想マシンの優先度を高くする。直近の予定が変更された場合、利用者による仮想マシンの利用予定に対して与える影響が大きくなるためである。
利用情報146aの例では、VM優先度設定部127は、仮想マシン名「server-42」の仮想マシンを優先度「1」(最高優先度)に設定している。また、VM優先度設定部127は、仮想マシン名「mysql-101」の仮想マシンを優先度「2」に設定している。また、VM優先度設定部127は、仮想マシン名「web-db-251」の仮想マシンを優先度「3」に設定している。他の仮想マシンに対しても、同様に、利用状況やLM実施予定時刻に応じた優先度が設定される。
図16は、メンテナンススケジュールテーブル(変更前)の例を示す図である。
メンテナンススケジュールテーブル151は、ソルバ部125により生成され、イベント情報記憶部123に格納される。メンテナンススケジュールテーブル151は、ソルバ部125によって当初作成されたスケジュールであり、利用者の希望などによるスケジュール変更前の情報である。メンテナンススケジュールテーブル151は、物理マシン名、開始日時および終了日時の項目を含む。
物理マシン名の項目には、メンテナンス対象の物理マシンの名称が登録される。開始日時の項目には、当該物理マシンのメンテナンスの開始日時が登録される。終了日時の項目には、当該物理マシンのメンテナンスの終了日時が登録される。
例えば、メンテナンススケジュールテーブル151には、物理マシン名が「PM01」、開始日時が「2018-06-20T11:30:00.000Z」、終了日時が「2018-06-20T12:29:00.000Z」というレコードが登録されている。このレコードは、物理マシン名「PM01」の物理マシンのメンテナンスを2018年6月20日11時30分~2018年6月20日12時29分まで行う予定であることを示す。
メンテナンススケジュールテーブル151には、メンテナンス対象の他の物理マシンに対しても同様に、物理マシン名と開始日時と終了日時とが登録される。
図17は、LMスケジュールテーブル(変更前)の例を示す図である。
LMスケジュールテーブル152は、ソルバ部125により生成され、イベント情報記憶部123に格納される。LMスケジュールテーブル152は、ソルバ部125によって当初作成されたスケジュールであり、利用者の希望などによるスケジュール変更前の情報である。LMスケジュールテーブル152は、仮想マシン名、開始日時、終了日時、移動元および移動先の項目を含む。
仮想マシン名の項目には、LM対象の仮想マシンの名称が登録される。開始日時の項目には、該当の仮想マシンのLMの開始日時が登録される。終了日時の項目には、該当の仮想マシンのLMの終了日時が登録される。移動元の項目には、LMの移動元の物理マシンの名称(物理マシン名)が登録される。移動先の項目には、LMの移動先の物理マシンの名称(物理マシン名)が登録される。
例えば、LMスケジュールテーブル152には、仮想マシン名が「server-90」、開始日時が「2018-06-20T09:45:00.000Z」、終了日時が「2018-06-20T09:59:00.000Z」、移動元が「PM01」、移動先が「PM02」というレコードが登録されている。
このレコードは、仮想マシン名「server-90」のLMを2018年6月20日9時45分に開始し、2018年6月20日9時59分に終了することを示す。また、当該LMの移動元が物理マシン名「PM01」の物理マシンであり、移動先が物理マシン名「PM02」の物理マシンであることを示す。
LMスケジュールテーブル152には、他の仮想マシンに対しても、仮想マシン名と開始日時と終了日時と移動元と移動先とが登録される。
なお、LMスケジュールテーブル152のうち、仮想マシン名、開始日時および終了日時の項目の内容が利用者に提示される内容である。また、LMスケジュールテーブル152のうち、仮想マシン名、開始日時、終了日時、移動元および移動先の項目が運用者に提示される内容である。
図18は、LM実施日時変更要望情報の例を示す図である。
LM実施日時変更要望情報133は、利用者端末500,600により、スケジューラ120に入力される。
LM実施日時変更要望情報133は、1以上の仮想マシンに関するLMの実施期間の変更内容を示す情報である。LM実施日時変更要望情報は、仮想マシン名、開始時刻、終了時刻および属性の項目を含む。
仮想マシン名の項目は、仮想マシンの名称が登録される。開始時刻の項目には、開始時刻が登録される。終了時刻の項目には終了時刻が登録される。属性の項目には、開始時刻から終了時刻までの期間において、該当の仮想マシンのLMの「回避」または「許容」を示す情報が登録される。「回避」は、該当の期間におけるLMを回避することを示す。「許容」は、該当の期間におけるLMを許容することを示す。
例えば、LM実施日時変更要望情報133は、仮想マシン名が「mysql-67」、開始時刻が「2018-06-20T10:40:00.000Z」、終了時刻が「2018-06-20T12:59:00.000Z」、属性が「回避」という情報を含む。これは、2018年6月20日10時40分から2018年6月20日12時59分までの期間において、仮想マシン名「mysql-67」の仮想マシンのLMを回避するように要望されていることを示す。なお、該当の仮想マシンについて、属性「回避」が設定されている期間以外の期間で、LMが「許容」されていると考えてもよい。
また、LM実施日時変更要望情報133は、仮想マシン名が「accounting-db-13」、開始時刻が「2018-06-22T18:00:00.000Z」、終了時刻が「2018-06-22T20:59:00.000Z」、属性が「許容」という情報を含む。これは、2018年6月22日18時00分から2018年6月22日20時59分までの期間において、仮想マシン名「accounting-db-13」の仮想マシンのLMを行うように要望されていることを示す。なお、該当の仮想マシンについて、属性「許容」が設定されている期間以外の期間で、LMの「回避」が設定されていると考えてもよい。
このように、LM実施日時変更要望情報133は、仮想マシンの移動を許容する時間帯、または、仮想マシンの移動を回避する時間帯を示す情報を含む。
図19は、変更後のスケジュールテーブルの例を示す図である。
メンテナンススケジュールテーブル153は、ソルバ部125およびスケジュール変更部128により生成され、イベント情報記憶部123に格納される。メンテナンススケジュールテーブル153は、メンテナンススケジュールテーブル151に対するスケジュール変更後の情報である。メンテナンススケジュールテーブル153のデータ構造は、メンテナンススケジュールテーブル151のデータ構造と同様であるため、説明を省略する。
LMスケジュールテーブル154は、ソルバ部125およびスケジュール変更部128により生成され、イベント情報記憶部123に格納される。LMスケジュールテーブル154は、LMスケジュールテーブル152に対するスケジュール変更後の情報である。LMスケジュールテーブル154のデータ構造は、LMスケジュールテーブル152のデータ構造と同様であるため、説明を省略する。
図20は、制約充足問題における変数の例を示す図である。
制約条件生成部124は、図7~図12で例示した各情報(再スケジューリングの場合は、更に図17,図18の情報)に含まれる値を制約充足問題の入力とする。ソルバ部125は、制約充足問題を解くことで、図16で例示したメンテナンススケジュールテーブル151および図17で例示したLMスケジュールテーブル152を出力し、イベント情報記憶部123に格納する。再スケジューリングの場合、ソルバ部125およびスケジュール変更部128は、図19で例示したメンテナンススケジュールテーブル153およびLMスケジュールテーブル154を出力し、イベント情報記憶部123に格納する。
例えば、制約充足問題における入力変数には次のものがある。
は、メンテナンス実施期間の開始日時である。前述のように、再スケジューリングの場合、tは、再スケジューリングの対象期間の開始日時を示す。tは、メンテナンス実施期間の終了日時である。T={t,…,t}は、メンテナンス実施期間を分単位に離散化した時刻の集合である。Tにおけるある時刻から、その次の時刻(1分後の時刻)の直前までの期間を1つのタイムスロットと呼ぶ。時刻tおよびtの値は、メンテナンス実施期間情報131から得られる。
Pは、メンテナンス対象の物理マシン(PM)の集合である。maintDurationは、物理マシンp(PMp)のメンテナンス所要時間である。ここで、pは、メンテナンス対象の物理マシンを示す添え字である。PおよびmaintDurationの値は、メンテナンス対象マシン情報132から得られる。
cpuCapは、PMpのCPUコア数である。ramCapは、PMpのメモリ容量である。diskCapは、PMpのディスク容量である。cpuCap、ramCapおよびdiskCapの値は、物理マシン構成テーブル141から得られる。
Vは、LMの日程調整対象の仮想マシン(VM)の集合である。initAccommopvは、仮想マシンv(VMv)の初期配置を示し、VMvの初期配置先がPMpの場合は1、それ以外の場合は0を示す。ここで、vは、LM対象の仮想マシンを示す添え字である。Vは、仮想マシン稼働テーブル143に登録された仮想マシンのうち、メンテナンス対象マシン情報132で指定された物理マシンに対応付けられた仮想マシンの集合となる。initAccommopvの値は、仮想マシン稼働テーブル143から得られる。前述のように、再スケジューリングの場合、各仮想マシンの初期配置先は、再スケジューリングの対象期間の開始日時おける各仮想マシンの配置先となる。
migrationDurationは、VMvのLM所要時間である。migrationDurationの値は、仮想マシン構成テーブル142から得られる。
cpuReqは、VMvのCPUコア数である。ramReqは、VMvのメモリ容量である。diskReqは、VMvのディスク容量である。cpuReq、ramReqおよびdiskReqの値は、仮想マシン構成テーブル142から得られる。
availMigrationTimeSlot(t)は、LM実施許容日時(あるいは、LM実施回避日時)を示し、時刻tにVMvのLMを実施してもよい場合は1、それ以外の場合は0を示す。availMigrationTimeSlot(t)の値のデフォルト値は1である。例えば、当初スケジューリングを行う場合に、ある仮想マシンでLM実施回避日時がある場合には、availMigrationTimeSlot(t)によって、LM実施回避日時を設定することが可能である。
再スケジューリングの場合、変更要望対象の仮想マシンについて、LM実施日時変更要望情報133に基づいてavailMigrationTimeSlot(t)の値が得られる。再スケジューリングの場合、変更要望対象外の仮想マシンについては、後述の変数apv(t),lpv(t)によりLMの実施予定の時間帯が制約として指定されるため、availMigrationTimeSlot(t)の制約を作成しなくてよい。ただし、変更要望対象外の仮想マシンについて、既存のスケジュールテーブル152に応じた値を、availMigrationTimeSlot(t)に設定してもよい。
numGafは、affinityルールが適用されているグループの数である。Gaf={Gaf_1,…,Gaf_numGaf}は、affinityルールが適用されているグループの集合である。numGaaは、anti-affinityルールが適用されているグループの数である。Gaa={Gaa_1,…,Gaa_numGaa}は、anti-affinityルールが適用されているグループの集合である。numGaf、Gaf、numGaa、Gaaの値は、依存関係テーブル144から得られる。
このように、制約充足問題に関する制約情報は、複数の物理マシンのメンテナンスの実施期間、複数の物理マシンおよび複数の仮想マシンの構成情報および物理マシンから他の物理マシンへの仮想マシンの移動の所要時間を示す所要時間に関する制約を含む。
また、例えば、出力変数には次のものがある。
(t)は、PM単位のメンテナンス実施期間を示し、時刻tにPMpがメンテナンス中の場合は1、それ以外の場合は0を示す。m(t)は、メンテナンススケジュールテーブル151(再スケジューリングの場合には、メンテナンススケジュールテーブル153)の作成に用いられる。
pv(t)は、VMの配置先の物理マシンを示し、時刻tにVMvがPMp上で稼働している場合は1、それ以外の場合は0を示す。lpv(t)は、LMによるVMの配置先の切り替わりを示し、VMvについて時刻tにPMpへのLMが完了した場合は1、それ以外の場合は0を示す。apv(t)およびlpv(t)は、LMスケジュールテーブル152(再スケジューリングの場合には、LMスケジュールテーブル154)の作成に用いられる。
また、再スケジューリングの場合、LMの実施日時の変更要望のない仮想マシンについて、apv(t)およびlpv(t)には、既存のLMスケジュールテーブル152に応じた値が設定されて、制約充足問題における入力変数(制約条件)としても用いられる。
ここで、上記の変数migrationDuration、lpv(t)およびapv(t)によるLMの表現を例示する。
図21は、変数によるLMの表現の例を示す図である。
図21(A)は、時刻t,ti+1,…,ti+5における、仮想マシンv1,v2に対するmigrationDurationを例示する。
例えば、migrationDurationv1=2である。これは、各時刻に仮想マシンv1のLMを完了させるためにタイムスロットを2つ要することを示す。
また、migrationDurationv2=3である。これは、各時刻に仮想マシンv2のLMを完了させるためにタイムスロットを3つ要することを示す。
第2の実施の形態の例では、各仮想マシンのLMの所要時間を、各時刻で一定としている。ただし、仮想マシンのLMの所要時間は、該当の仮想マシンの負荷などに応じて変わることも考えられる。その場合、migrationDuration=migrationDuration(t)とし、時刻毎に、LMを完了させるために所要される異なるタイムスロット数を設定することも可能である。
図21(B)は、時刻t,ti+1,…,ti+5における、仮想マシンv1,v2に対するlpv(ただし、p=Cとする)を例示する。
例えば、lpv1(ti+2)=1であり、それ以外の時刻ではlpv1(t)=0である。これは、時刻ti+2に、仮想マシンv1の物理マシンCへのLMが完了したことを示す。ここで、図21(A)によれば、時刻ti+2で仮想マシンv1のLMが完了するには、タイムスロットを2つ要する。したがって、仮想マシンv1のLMの実施期間は、時刻ti+1,ti+2で示される2つのタイムスロットの期間である。
また、lpv2(ti+4)=1であり、それ以外の時刻ではlpv2(t)=0である。これは、時刻ti+4に、仮想マシンv2の物理マシンCへのLMが完了したことを示す。ここで、図21(A)によれば、時刻ti+4で仮想マシンv2のLMが完了するには、タイムスロットを3つ要する。したがって、仮想マシンv2のLMの実施期間は、時刻ti+2,ti+3,ti+4で示される3つのタイムスロットの期間である。
図21(C)は、時刻t,ti+1,…,ti+5において、仮想マシンv1,v2に対し、apv(t)==1となるp(物理マシン)を例示する。
例えば、時刻t,ti+1,ti+2では、apv1(t)==1となるpは、物理マシンA(仮想マシンv1のLMの移動元)である。そして、図21(B)で例示されるように、仮想マシンv1は、時刻ti+2で物理マシンCへのLMが完了する。このため、時刻ti+3以降では、apv1(t)==1となるpは、物理マシンCである。
また、時刻t,ti+1,…,ti+4では、apv2(t)==1となるpは、物理マシンB(仮想マシンv2のLMの移動元)である。そして、図21(B)で例示されるように、仮想マシンv2は、時刻ti+4で物理マシンCへのLMが完了する。このため、時刻ti+5以降では、apv2(t)==1となるpは、物理マシンCである。
以上のように、変数migrationDuration、lpv(t)およびapv(t)により、仮想マシンv1,v2のLMについて、次の内容が表される。
仮想マシンv1について、LM実施期間は時刻[ti+1,ti+2](時刻ti+1から時刻ti+2まで)であり、移動元が物理マシンA、移動先が物理マシンCである。
仮想マシンv2について、LM実施期間は時刻[ti+2,ti+4](時刻ti+2から時刻ti+4まで)であり、移動元が物理マシンA、移動先が物理マシンCである。
制約条件生成部124は、上記に例示した各変数を用いた制約条件を生成する。ソルバ部125は、生成された制約条件に関する制約充足問題を解くことで、メンテナンススケジュールテーブル151およびLMスケジュールテーブル152を作成する。また、再スケジューリングの場合、ソルバ部125およびスケジュール変更部128は、生成された制約条件に関する制約充足問題を解くことで、メンテナンススケジュールテーブル153およびLMスケジュールテーブル154を作成する。
ここで、制約条件生成部124により生成される制約条件の例を示す。
第1の制約条件は、VMvが初期配置先のPMp上で起動することである。第1の制約条件は、式(2)で表される。
Figure 0007177349000002
第2の制約条件は、PMpに対してメンテナンスを一度実施することである。第2の制約条件は、式(3)(4)で表される。特に、式(3)は、PMpに対してmaintDuration以上の連続したメンテナンス期間が確保されることを示す。式(4)は、当該メンテナンス期間の合計がmaintDurationに等しいことを示す。
Figure 0007177349000003
Figure 0007177349000004
第3の制約条件は、一度にメンテナンスを実施できるPM数をC台以下とすることである。ここで、Cは、システムに応じて予め定められる定数である。第3の制約条件は、式(5)で表される。
Figure 0007177349000005
第4の制約条件は、VMvが何れかのPMp上で常に稼働することである。第4の制約条件は、式(6)で表される。
Figure 0007177349000006
第5の制約条件は、PMp上で稼働するVMの要求資源量の合計がPMpの提供資源量以下であり、かつ、PMpのメンテナンス中はPMp上でVMを稼働させないことである。第5の制約条件は、式(7)(8)(9)で表される。特に、式(7)は、CPUコア数に関する制約条件を表す。式(8)は、メモリ容量に関する制約条件を示す。式(9)は、ディスク容量に関する制約条件を表す。
Figure 0007177349000007
Figure 0007177349000008
Figure 0007177349000009
第6の制約条件は、VMvがPMp上で稼働する時間がmigrationDuration+1以上であることである。第6の制約条件は、式(10)で表される。ここで、第6の制約条件は、VMvがLMのためにmigrationDuration+1以上の期間、連続して稼働状態となることを反映している。migrationDurationに“+1”(1を加算)する理由は、LMが完了した直後に別のLMを実施することは考えにくいためである。
Figure 0007177349000010
第7の制約条件は、LMの検出を示す。第7の制約条件は、式(11)で表される。ここで、lpv(t)は、VMvについて時刻tにPMpへのLMが完了した場合は1であり、それ以外の場合は0である。
Figure 0007177349000011
第8の制約条件は、VMvのLMを実施できるのは許可された期間のみであることである。第8の制約条件は、式(12)で表される。ただし、前述のように、再スケジューリングの場合、一部の仮想マシン(LM実施時間帯の変更要望のない仮想マシン)に対して第8の制約条件を作成しないこともある。
Figure 0007177349000012
第9の制約条件は、PMpについてメンテナンス中のLMが禁止されることである。第9の制約条件は、式(13)で表される。
Figure 0007177349000013
第10の制約条件は、一度にLMを行えるVMをC台以下とすることである。ここで、Cは、システムに応じて予め定められる定数である。第10の制約条件は、式(14)で表される。
Figure 0007177349000014
第11の制約条件は、anti-affinityルールが適用されているグループに属する各VMを同じPM上で稼働させることを禁止することである。第11の制約条件は、式(15)で表される。
Figure 0007177349000015
第12の制約条件は、affinityルールが適用されているグループに属する各VMを同じPM上で稼働させることである。第12の制約条件は、式(16)で表される。
Figure 0007177349000016
第13の制約条件は、制約充足問題の目的関数であり、全体のメンテナンスの終了を早めることである。第13の制約条件は、式(17)で表される。例えば、第13の制約条件は、運用者のメンテナンスを早く終わらせたいという要望に応じた制約条件である。
Figure 0007177349000017
次に、管理サーバ100による処理手順を説明する。以下では主に、再スケジューリングの場合を例示する。このため、イベント情報記憶部123には、当初作成されたメンテナンススケジュールテーブル151およびLMスケジュールテーブル152が格納されている状態から、以下に示す手順が開始される。
図22は、管理サーバの処理例を示すフローチャートである。
(S1)スケジューラ120は、利用者端末500,600からLM実施日時の変更要望のメッセージを受信する。当該メッセージは、LM実施日時変更要望情報133を含む。LM実施日時変更要望情報133は、複数の仮想マシンに対する変更要望を含み得る。
(S2)スケジューラ120は、運用者端末700から日程再調整実施のメッセージを受信する。当該メッセージは、メンテナンス実施期間情報131およびメンテナンス対象マシン情報132を含む。再スケジューリングの場合となるので、メンテナンス実施期間情報131で示される開始日時は、再スケジューリングの対象期間の開始日時を示す。
なお、当初のメンテナンス実施開始日時の後に再スケジューリングが行われる場合、一部の物理マシンについては、メンテナンスが実施済みのことがある。この場合、スケジューラ120は、メンテナンス実施済みの物理マシンについては、変数m(t)を計算しない(当該物理マシンについて制約を充足しなくてよい)。
(S3)スケジューラ120は、日程再調整を実行し、再調整結果(再スケジューリング結果)をイベント情報記憶部123に出力する。日程再調整の詳細は後述される。
(S4)スケジューラ120は、利用者端末500,600と運用者端末700に再調整結果を送信する。利用者端末500,600および運用者端末700のそれぞれのディスプレイにより再調整結果が表示される。
(S5)スケジューラ120は、再調整結果を、インフラ管理部110に登録する。これにより、インフラ管理制御部113によって、再調整結果に基づくLMが、各物理マシンに指示される。そして、管理サーバ100の処理が終了する。
図23は、日程再調整例を示すフローチャートである。
日程再調整の処理は、ステップS3に対応する。
(S10)VM優先度設定部127は、仮想マシン(VM)間の優先度を設定する。例えば、VM優先度設定部127は、図15で例示したように、仮想マシン毎の利用情報146aに基づいて、仮想マシンの優先度を決定して優先度テーブル146を生成し、VM優先度記憶部122に格納する。
(S11)制約条件生成部124は、利用者要望に応じたLM実施日時に関する制約を含む制約充足問題を生成する。制約充足問題の生成の詳細は後述される。
(S12)ソルバ部125は、ステップS11で生成された制約充足問題の求解を実行し、再スケジューリングの対象期間の各時刻における各出力変数の値を求める。
(S13)ソルバ部125は、ステップS12によって、制約充足問題に対する充足解を得たか否かを判定する。充足解を得た場合、ステップS14に処理が進む。充足解を得られなかった場合、ステップS15に処理が進む。
(S14)ソルバ部125は、ステップS12で得た充足解を再調整結果(再スケジューリング結果)として、イベント情報記憶部123に出力する。そして、日程再調整の処理が終了する。
(S15)充足不能コア抽出部126およびスケジュール変更部128は、日程変更を実行する。日程変更の詳細は後述される。そして、日程再調整の処理が終了する。
図24は、制約充足問題の生成例を示すフローチャートである。
制約充足問題の生成の処理は、ステップS11に相当する。
(S20)制約条件生成部124は、インフラ構成情報をソルバ部125に対する入力データの形式に変換する。ここで、インフラ構成情報は、物理マシン構成テーブル141、仮想マシン構成テーブル142、仮想マシン稼働テーブル143および依存関係テーブル144を含む。
(S21)制約条件生成部124は、仮想マシン(VM)の依存関係に関する制約条件を生成する。VMの依存関係に関する制約条件は、例えば、前述の第1、第4、第5、第11および第12の制約条件である。制約条件生成部124は、生成した制約条件を制約条件記憶部121に格納する。
(S22)制約条件生成部124は、LMの再スケジューリング対象の全仮想マシンを再スケジューリング候補に設定する。ただし、全仮想マシンのうち、LM実施日時の変更要望が発生していない仮想マシンについては、既存のスケジュールが可能な限り維持されるように、再スケジューリングが行われる。
(S23)制約条件生成部124は、再スケジューリングの対象期間をLM実施の候補日時に設定する。例えば、制約条件生成部124は、メンテナンス実施期間情報131に基づいて、T={t,…,t}を設定する。
(S24)制約条件生成部124は、LM実施時間に関する制約条件を生成する。LM実施時間に関する制約条件は、例えば、前述の第2、第3、第6~第10および第13の制約条件である。ここで、制約条件生成部124は、第8の制約条件について、LM実施日時変更要望情報133に基づいて、LM実施日時の変更対象の仮想マシンに対するavailMigrationTimeSlot(t)の値を設定する。すなわち、LM実施日時変更要望情報133でLM実施が要望されている時間帯(回避希望でない時間帯)でavailMigrationTimeSlot(t)=1、それ以外の時間帯でavailMigrationTimeSlot(t)=0とする。
一方、制約条件生成部124は、LM実施日時の変更対象外の仮想マシンについては第8の制約条件を作成しなくてよい。その代わり、制約条件生成部124は、LM実施日時の変更対象外の仮想マシンについては、既存のLMスケジュールテーブル152に基づいて、既存のLMスケジュールを反映するように、各時刻tにおける変数apv(t)およびlpv(t)の値を設定する。変数apv(t)およびlpv(t)の値が、LM実施日時の変更対象外の仮想マシンに対するLM実施時間帯に関する制約条件となる。
(S25)制約条件生成部124は、ステップS21,S24で生成した制約条件を基に制約充足問題を設定する。そして、制約充足問題の生成の処理が終了する。
図25は、日程変更例を示すフローチャートである。
日程変更の処理は、ステップS15に相当する。
(S30)充足不能コア抽出部126は、ステップS11(ステップS25)で生成された制約充足問題に含まれる制約集合のうち、仮想マシンのLMの実施時刻に関する制約条件から、極小充足不能コアを抽出する。充足不能コア抽出部126は、抽出した極小充足不能コア(C)を、スケジュール変更部128に提供する。
(S31)スケジュール変更部128は、インフラ構成情報および優先度テーブル146を取得するとともに、準制約充足問題生成の制限数kが設定されているか否かを判定する。制限数kが設定されている場合、ステップS33に処理が進む。制限数kが設定されていない場合、ステップS32に処理が進む。ここで、制限数kは、例えば、制約条件記憶部121に予め設定される。
(S32)スケジュール変更部128は、極小充足不能コアの要素数(極小充足不能コアに属する制約条件の数)を制限数kに設定する。すなわち、スケジュール変更部128は、k=|C|とする(|C|は極小充足不能コアCの要素数を示す)。そして、ステップS33に処理が進む。
図26は、日程変更例(続き)を示すフローチャートである。
(S33)スケジュール変更部128は、優先度テーブル146に基づいて、仮想マシン(VM)間の優先度下位k台についてLM実施時刻に関する制約を、該当の制約充足問題から1つ除外した準制約充足問題を生成する。これにより、スケジュール変更部128は、k種類の準制約充足問題を生成する。
例えば、LMの実施日時の変更要望があった仮想マシンに対する制約を除外する場合、当該仮想マシンについて、全ての時刻でavailMigrationTimeSlot(t)=1とする。
また、LMの実施日時の変更要望がなかった仮想マシンに対する制約を除外する場合、当該仮想マシンについて、全ての時刻でavailMigrationTimeSlot(t)=1とする制約を後述する入力データ165に追加する。更に、当該仮想マシンについて、既存スケジュールに対するapv(t)およびlpv(t)の制約を入力データ166から削除する。
(S34)スケジュール変更部128は、準制約充足問題毎に、繰り返し、求解の処理を行う。また、ステップS34~S36の処理は管理サーバ100により並列に実行されてもよい。
(S35)スケジュール変更部128は、該当の準制約充足問題の求解を実行する。スケジュール変更部128は、ソルバ部125を用いて、準制約充足問題の求解を実行してもよい。
(S36)スケジュール変更部128は、k種類の準制約充足問題に関する求解を完了すると、求解の処理の繰り返しを完了する。そして、ステップS37に処理が進む。スケジュール変更部128は、k種類の準制約充足問題に関する求解の実行により、k個の再スケジューリング結果を得る。
(S37)スケジュール変更部128は、k個の再スケジューリング結果のうち、目的関数を最小にする結果を1つ選択する。例えば、目的関数は、次の式(18)(19)で表される。
Figure 0007177349000018
Figure 0007177349000019
ここで、式(18)は、LMの実施日時の変更の要望があった仮想マシンに対する目的関数である。式(19)は、LMの実施日時に変更の要望がない仮想マシンに対する目的関数である。変数l(v)は、再スケジューリング結果における仮想マシンvのLM実施開始時刻(今回の再スケジューリング結果)である。変数l’(v)は、仮想マシンvのLM実施開始予定時刻(前回のスケジューリング結果)である。変数r(v)は、仮想マシンvのLM実施についての要望時刻(LM実施が希望された時刻)である。時間差は、何れも正の値で表される。
式(18)は、LMの実施日時に変更の要望があった仮想マシンについて、要望された希望時間帯と再スケジューリング後の新規予定時間帯の乖離を最小にすることを示す。
ここで、希望時間帯T~T(T<T)と新規予定時間帯T~T(T<T)との差ΔTは、例えば、次のように表される。T≦T<TかつT<T≦Tの場合、ΔT=0である。T<TかつT≦Tの場合、ΔT=T-Tである。T≦TかつT<Tの場合、ΔT=T-Tである。T<TかつT<Tの場合、ΔT=(T-T)+(T-T)である。なお、ある仮想マシンに対してLM実施回避日時が指定された場合など、LM実施が許容される希望時間帯が複数になる(例えば、LM実施回避日時によって分断された複数の時間帯になる)こともある。この場合、スケジュール変更部128は、各希望時間帯と新規予定時間帯との差のうち、最小の差を、該当の仮想マシンに対する希望時間帯と新規予定時間帯との差として用いる。
式(19)は、LMの実施日時に変更の要望がない仮想マシンについて、既存の予定時間帯と再スケジューリング後の新規予定時間帯の乖離(LMの開始時刻の時間差)を最小にすることを示す。
(S38)スケジュール変更部128は、ステップS37で選択した結果を再調整結果(再スケジューリング結果)として、イベント情報記憶部123に出力する。そして、日程変更の処理が終了する。
ステップS37では、スケジュール変更部128は、LMの実施日時の変更の要望があった仮想マシンに対する目的関数(第1の目的関数)の出力値、または、LMの実施日時に変更の要望がない仮想マシンに対する目的関数(第2の目的関数)の出力値の何れかが最小になる再スケジューリング結果を選択する。あるいは、スケジュール変更部128は、第1の目的関数の出力値と第2の目的関数の出力値の合計が最小になる再スケジューリング結果を選択してもよい。
このように、管理サーバ100は、制約充足問題(制約情報)を充足する再スケジューリング結果を得られない場合に、制約充足問題に属するLM実施時間帯に関する制約群から抽出された極小充足不能コアに含まれる制約を除外対象として選択する。これにより、該当の制約充足問題を充足可能な準制約充足問題に変化させることができ、再スケジューリング結果を取得可能になる。このとき、準制約充足問題では、1つの制約が除外対象になるだけなので、既存のスケジュール結果に対する影響を極力抑えた再スケジューリングが可能である。
また、管理サーバ100は、除外対象の制約を選択する際に、極小充足不能コアに含まれる全制約のうちの一部の制約を、複数の仮想マシンそれぞれの優先度に基づいて選択する。このため、極小充足不能コアに含まれる全制約を除外対象として準制約充足問題を作成して、再スケジューリングを行うよりも処理を高速化できる。特に、仮想マシン毎の優先度に従って、比較的優先度が高い仮想マシンの制約を除外対象外とできるので、重要な処理を行う仮想マシンに対する影響を抑えられる。
また、管理サーバ100は、再スケジューリング結果および既存スケジュールにおける変更要望のなかった他の仮想マシンのLM実施時刻の第1の差、または、LMの実施日時の変更要望および再スケジューリング結果における該当の仮想マシンのLM実施時間帯の第2の差が小さくなる再スケジューリング結果を出力する。これにより、既存のLMのスケジュールへの影響を抑えつつ、LMの実施日時の変更要望に沿った再スケジューリングが可能になる。
例えば、目的関数に式(18)を用いることで、LMの実施日時に変更の要望があった仮想マシンについて、可能な限り変更の要望に沿った日時に変更でき、利用者による仮想マシンの利用予定に対する影響を最小限に抑えることができる。また、目的関数に式(19)を用いることで、LMの実施日時に変更の要望がなかった仮想マシンに対する影響を最小限に抑えることができる。
以下では、再スケジューリング時におけるソルバ部125に対する入力データ、および、当該入力データに応じたソルバ部125(およびスケジュール変更部128)の出力データを例示する。
図27は、入力データの例(その1)を示す図である。
入力データ161は、変数t、t、P、maintDuration、cpuCap、ramCapおよびdiskCapを含む。
:=0;およびt:=41759;はメンテナンス実施期間を示す(ここで、“:=”は代入を表し、“;”は当該変数への代入終了を表す)。t:=0は、メンテナンス実施期間(再スケジューリング対象期間)の開始日時である2018年6月1日12時00分を示す。t:=41759は、メンテナンス実施期間(再スケジューリング対象期間)の終了日時である2018年6月30日11時59分を示す。Tは、tを基準にtまでの時刻を分単位に離散化した値の集合となる。
P:=“PM01”、“PM02”、…;は、物理マシン名(PM名)の集合である(図中では各行が物理マシン名となる)。
maintDuration:=(“PM01” 60)、(“PM02” 120)、…;は、物理マシン毎のメンテナンスの所要時間(単位は分)である。1つのレコードは、(物理マシン名(PM名) メンテナンスの所要時間)の組となる。なお、図中では1行が1つのレコードとなる(入力データに含まれる以降の他の変数についても同様である)。
cpuCap:=(“PM01” 64)、(“PM02” 32)、…;は、物理マシン毎のCPUコア数である。1つのレコードは、(PM名 CPUコア数)の組となる。
ramCap:=(“PM01” 256)、(“PM02” 128)、…;は、物理マシン毎のメモリ容量である。1つのレコードは、(PM名 メモリ容量)の組となる。
diskCap:=(“PM01” 32000)、(“PM02” 128000)、…;は、物理マシン毎のディスク容量である。1つのレコードは、(PM名 ディスク容量)の組となる。
図28は、入力データの例(その2)を示す図である。
入力データ162は、変数VおよびinitAccommopvを含む。
V:=“accounting-db-13”、“vm-67”、…;は、仮想マシン名(VM名)の集合である。
initAccommopv:=(…、“PM01” “mysql-67” 1)、(“PM02” “mysql-67” 0)、(“PM01” “accounting-db-03” 1)、(“PM02” “accounting-db-03” 0)、…;は、各仮想マシンの初期配置先の物理マシンを示す。1つのレコードは、(PM名 仮想マシン名(VM名) 0or1)の組となる(最後の値は、該当の物理マシンが該当の仮想マシンの初期配置先であれば“1”、初期配置先でなければ“0”である)。
図29は、入力データの例(その3)を示す図である。
入力データ163は、変数migrationDurationを含む。
migrationDuration:=…、(“server-90” 15)、(“mysql-67” 10)、…、(“accounting-db-03” 20)、(“accounting-web-03” 20)、…;は、仮想マシン毎のLMの所要時間である。1つのレコードは、(VM名 LMの所要時間(分))の組となる。
図30は、入力データの例(その4)を示す図である。
入力データ164は、変数cpuReq、ramReqおよびdiskReqを含む。
cpuReq:=(“accounting-db-13” 2)、(“vm-67” 2)、…;は、仮想マシン毎に割り当てるCPUコア数である。1つのレコードは、(VM名 CPUコア数)の組となる。
ramReq:=(“accounting-db-13” 32)、(“vm-67” 2)、…;は、仮想マシン毎に割り当てるメモリ容量である。1つのレコードは、(VM名 メモリ容量)となる。
diskReq:=(“accounting-db-13” 2)、(“vm-67” 32)、…;は、仮想マシン毎に割り当てるディスク容量である。1つのレコードは、(VM名 ディスク容量)となる。
図31は、入力データの例(その5)を示す図である。
入力データ165は、変数availMigrationTimeSlot(t)、Gaa_1およびGaf_1を含む。
availMigrationTimeSlot(t):=…、(“mysql-67” 27298 1)、(“mysql-67” 27299 1)、(“mysql-67” 27300 0)、(“mysql-67” 27301 0)、…;は、仮想マシンのLMの実施許容期間または実施回避期間を示す。実施許容は“1”であり、実施回避は“0”である。1つのレコードは、(VM名 時刻 0or1)となる。
ここで、図中の時刻“27298”は、2018年6月20日10時58分を示す。時刻“27299”は、2018年6月20日10時59分を示す。時刻“27300”は、2018年6月20日11時00分を示す。時刻“27301”は、2018年6月20日11時01分を示す。
aa_1:=“accounting-db-13”、“accounting-db-03”;は、anti-affinityルールの適用対象の1つ目のグループおよび当該グループに属する仮想マシンを示す。anti-affinityルールの適用対象の2つ目以降のグループも同様に設定される。
af_1:=“accounting-db-03”、“accounting-web-03”;は、affinityルールの適用対象の1つ目のグループおよび当該グループに属する仮想マシンを示す。affinityルールの適用対象の2つ目以降のグループも同様に設定される。
図32は、入力データの例(その6)を示す図である。
入力データ166は、変数apv(t)およびlpv(t)を含む。入力データ166におけるapvおよびlpvは、既存のLMスケジュールテーブル152に基づいて、LMの実施日時の変更要望がない仮想マシンに対する制約として設定される。
pv(t)=…、(“PM01” “server-90” 27238 1)、(“PM01” “server-90” 27239 1)、(“PM01” “server-90” 27240 0)、(“PM01” “server-90” 27241 0)、…;は、各PMで稼働するVMを示す。1つのレコードは、(PM名 VM名 時刻 0or1)の組である(最後の値は、該当のPM上で該当のVMが稼働している場合は“1”、稼働していない場合は“0”である)。
ここで、図中の時刻“27238”は、2018年6月20日9時58分を示す。時刻“27239”は、2018年6月20日9時59分を示す。時刻“27240”は、2018年6月20日10時00分を示す。時刻“27241”は、2018年6月20日10時01分を示す。
pv(t)=(“PM01” “server-90” 27238 0)、(“PM01” “server-90” 27239 0)、…、(“PM02” “server-90” 27238 0)、(“PM02” “server-90” 27239 1)、(“PM02” “server-90” 27240 0)、…;は、各仮想マシンの移動先物理マシンへのLM完了時刻を示す。1つのレコードは、(PM名 VM名 時刻 0or1)の組である(最後の値は、該当のPM上への該当のVMのLMが完了した時刻の場合は“1”、それ以外の場合は“0”である)。
図33は、出力データの例(その1)を示す図である。
ソルバ部125は、制約条件生成部124により設定された制約充足問題を解くことで、出力データ167を出力する。出力データ167は、変数m(t)およびapv(t)を含む。
(t)=…、(“PM01” 27268 0)、(“PM01” 27269 0)、(“PM01” 27270 1)、(“PM01 ” 27271 1)、…;は、物理マシン毎のメンテナンス実施期間を示す。1つのレコードは、(PM名 時刻 0or1)の組である(最後の値は、該当PMが該当時刻にメンテナンス中であれば“1”、メンテナンス中でなければ“0”である)。
ここで、図中の時刻“27268”は、2018年6月20日10時28分を示す。時刻“27269”は、2018年6月20日10時29分を示す。時刻“27270”は、2018年6月20日10時30分を示す。時刻“27271”は、2018年6月20日10時31分を示す。
pv(t)=…、(“PM01” “server-90” 27238 1)、(“PM01” “server-90” 27239 1)、(“PM01” “server-90” 27240 0)、(“PM01” “server-90” 27241 0)、…;は、各PMで稼働するVMを示す。1つのレコードは、(PM名 VM名 時刻 0or1)の組である(最後の値は、該当のPM上で該当のVMが稼働している場合は“1”、稼働していない場合は“0”である)。
ここで、図中の時刻“27238”は、2018年6月20日9時58分を示す。時刻“27239”は、2018年6月20日9時59分を示す。時刻“27240”は、2018年6月20日10時00分を示す。時刻“27241”は、2018年6月20日10時01分を示す。
図34は、出力データの例(その2)を示す図である。
ソルバ部125は、制約条件生成部124により設定された制約充足問題を解くことで、更に、出力データ168を出力する。出力データ168は、変数lpv(t)を含む。
pv(t)=…、(“PM01” “myspl-67” 27248 0)、(“PM01” “myspl-67” 27249 0)、…、(“PM02” “myspl-67” 27248 0)、(“PM02” “myspl-67” 27249 1)、(“PM02” “myspl-67” 27250 0)、…;は、各仮想マシンの移動先物理マシンへのLM完了時刻を示す。1つのレコードは、(PM名 VM名 時刻 0or1)の組である(最後の値は、該当のPM上への該当のVMのLMが完了した時刻の場合は“1”、それ以外の場合は“0”である)。
ここで、図中の時刻“27238”は、2018年6月20日9時58分を示す。時刻“27239”は、2018年6月20日9時59分を示す。時刻“27240”は、2018年6月20日10時00分を示す。時刻“27241”は、2018年6月20日10時01分を示す。時刻“27248”は、2018年6月20日10時08分を示す。時刻“27249”は、2018年6月20日10時09分を示す。時刻“27250”は、2018年6月20日10時10分を示す。時刻“27251”は、2018年6月20日10時11分を示す。
ソルバ部125は、出力データの内容から各仮想マシンに対するLMスケジュールを得る。例えば、lpv(t)の出力結果によれば、“mysql-67”について“PM02”へのLM終了時刻は“27249”である。また、仮想マシン構成テーブル142によれば、仮想マシン名“mysql-67”の仮想マシンのLMの所要時間は10分である。したがって、ソルバ部125は、“mysql-67”に対するLMスケジュールを、時刻“27240”~“27249”の10タイムスロットの期間と決定する。
ソルバ部125は、出力データで示される期間を年月日時分秒の形式に変換し、メンテナンススケジュールテーブル153およびLMスケジュールテーブル154を作成する。また、スケジュール変更部128もソルバ部125と同様に、メンテナンススケジュールテーブル153およびLMスケジュールテーブル154を作成する。ただし、前述のように、スケジュール変更部128は、準制約充足問題の求解や、メンテナンススケジュールテーブル153およびLMスケジュールテーブル154の作成に、ソルバ部125の機能を用いてもよい。
スケジューラ120は、ソルバ部125またはスケジュール変更部128により作成したLMスケジュールを利用者に提示し、利用者による確認を促す。次に、管理サーバ100により利用者端末500に提供される画面の例を説明する。
図35は、LMスケジュールの表示画面の例を示す図である。
画面800は、LMスケジュールテーブル152(既存スケジュール)に基づいて、管理サーバ100から利用者端末500に対して提供される画面の例である。利用者端末500は、画面800に対応する画面情報を管理サーバ100から受信し、当該画面情報に基づいて、利用者端末500に内蔵または接続されたディスプレイ(表示装置)により、画面800を表示する。ここで、利用者端末500は、ユーザID「user3」の利用者によって利用されるものとし、当該利用者のユーザ名を「AAA」とする。
スケジューラ120は、仮想マシン構成テーブル142(または、仮想マシン稼働テーブル143)に基づいて、LMスケジュールテーブル152に登録された各仮想マシンの利用者のユーザIDを特定する。また、ユーザIDに対応する利用者のユーザ名や端末のアドレスの情報は、RAM102またはHDD103に予め格納されている。スケジューラ120は、当該情報を参照することで、ユーザ名や画面情報の送信先を特定する。
画面800は、VMシンボル801,802、LMシンボル803,804およびボタン805,806を有する。
VMシンボル801,802は、該当の利用者が利用する、LM対象の仮想マシンを示す。例えば、VMシンボル801は、仮想マシン名「server-90」の仮想マシンを示す。また、VMシンボル802は、仮想マシン名「mysql-67」の仮想マシンを示す。画面800の例では、VMシンボル801,802それぞれの行の左側から右側へ向かう方向を時系列の正方向として、各仮想マシンのLMスケジュールを示す。
LMシンボル803,804は、各仮想マシンのLMの実施予定の日時を示す。例えば、LMシンボル803は、仮想マシン名「server-90」の仮想マシンに対して、2018年6月20日9時45分~同日9時59分にLMを実施することを示す。また、例えば、LMシンボル804は、仮想マシン名「mysql-67」の仮想マシンに対して、2018年6月20日10時55分~同日11時04分にLMを実施することを示す。
ボタン805は、画面800のLMスケジュールの確定を入力するためのボタンである。利用者端末500は、利用者によるボタン805の入力を受け付けると、画面800に表示された各仮想マシンについて、LMスケジュールの確定メッセージを管理サーバ100に送信する。
ボタン806は、画面800のLMスケジュールを変更するための変更入力画面へ遷移するためのボタンである。
図36は、LMスケジュールの変更入力画面の例を示す図である。
画面810は、画面800のLMスケジュールに対する変更要望の内容を入力するための画面である。画面810は、利用者によるボタン806への入力に応じて、管理サーバ100から利用者端末500に提供される画面である。画面810は、VMシンボル811,812、LMシンボル813,814、LM実施回避日時シンボル815およびボタン816,817を有する。
VMシンボル811は、VMシンボル801に相当する。VMシンボル812は、VMシンボル802に相当する。LMシンボル813は、LMシンボル803に相当する。LMシンボル814は、LMシンボル804に相当する。
LM実施回避日時シンボル815は、利用者によるLM実施回避日時の選択を受け付けるためのシンボルである。例えば、利用者は、利用者端末500に接続されたポインティングデバイスを用いて、所望の仮想マシンの行にLM実施回避日時シンボル815を配置する。そして、利用者は、当該ポインティングデバイスを用いて、LM実施回避日時シンボル815の横方向(行方向)の幅を変えることで、当該仮想マシンに対するLM実施回避日時を選択する。利用者は、LM実施回避日時シンボル815をLMシンボル814に重ねて配置することができる。LM実施回避日時シンボル815の例では、仮想マシン名“mysql-67”の仮想マシンに対するLM実施回避日時として、2018年6月20日10時40分~同日12時59分が選択されている。
ボタン816は、LM実施回避日時シンボル815によるLM実施回避日時の選択を解除するためのボタンである。
ボタン817は、LM実施回避日時シンボル815を用いて選択されたLM実施回避日時を設定するためのボタンである。利用者端末500は、ボタン817に対する入力を受け付けると、選択された仮想マシンのLM実施回避日時を示すLM実施日時変更要望情報133を含むメッセージを管理サーバ100に送信する。
管理サーバ100は、画面810によりLM実施日時変更要望情報133を受け付けると、LM実施時間に関する制約情報を再作成し、LM実施日時変更要望情報133が入力された仮想マシンについてLMスケジュールを更新する。管理サーバ100は、再作成した制約情報に基づいて、当該制約情報を満たすLMスケジュールを作成できない場合、制約情報から準制約情報を生成して、LMスケジュールを更新する。管理サーバ100は、更新したLMスケジュールを利用者に再度提示する。
図37は、LMスケジュールの変更の結果表示画面の例を示す図である。
画面820は、LMスケジュールテーブル154(変更後のスケジュール)に基づいて、管理サーバ100から利用者端末500に対して提供される画面の例である。画面820は、画面810によるLM実施回避日時の選択に応じて再調整されたLMスケジュールを示す。画面820は、VMシンボル821,822、LMシンボル823,824、LM実施回避日時シンボル825およびボタン826を有する。
VMシンボル821は、VMシンボル801に相当する。VMシンボル822は、VMシンボル802に相当する。LMシンボル823は、LMシンボル803に相当する。
LMシンボル824は、仮想マシン名「mysql-67」の仮想マシンに対して、2018年6月20日10時00分~同日10時09分にLMを実施することを示す。
LM実施回避日時シンボル825は、LM実施回避日時シンボル815に相当する。
なお、画面810において、仮想マシン名「server-90」の仮想マシンに対しては、LM実施回避日時が選択されなかったため、仮想マシン名「server-90」の仮想マシンについては最初に決定されたLMスケジュールから更新されていない。ただし、仮想マシン名「server-90」の仮想マシンに対してLM実施日時が変更されることもある。
ボタン826は、仮想マシンのLMスケジュールの確認を終了するためのボタンである。利用者端末500は、ボタン826の入力を受け付けると、画面820を閉じる。
上記の例では、利用者端末500に提供される画面800,810,820を例示したが、利用者端末600にも当該利用者端末600の利用者が利用する仮想マシンに関してLMスケジュールを確認するための画面が提供される。
図38は、メンテナンススケジュール画面の例を示す図である。
画面900は、メンテナンススケジュールテーブル153およびLMスケジュールテーブル154(変更後のスケジュール)に基づいて、管理サーバ100から運用者端末700に対して提供される画面の例である。画面900は、画面820で示される更新後のLMスケジュールテーブル154に対応する物理マシンのメンテナンススケジュールを示す。運用者端末700は、画面900を描画するための画面情報を管理サーバ100から受信し、当該画面情報に基づいて、運用者端末700に内蔵または接続されたディスプレイ(表示装置)により、画面900を表示する。ここで、運用者のユーザ名を「aaa」とする。
画面900は、PMシンボル901,902、VMスケジュールシンボル911,912およびメンテナンスシンボル913を有する。
PMシンボル901,902は、メンテナンス対象の物理マシンを示す。例えば、PMシンボル901は、物理マシン名「PM01」の物理マシンを示す。また、PMシンボル902は、物理マシン名「PM02」の物理マシンを示す。画面900の例では、PMシンボル901,902それぞれの行の左側から右側へ向かう方向を時系列の正方向として、各物理マシン上の仮想マシンの稼働予定、LM予定およびメンテナンススケジュールを示す。
VMスケジュールシンボル911,912は、各仮想マシンの稼働予定およびLM予定を示す。VMスケジュールシンボル911,912は、再スケジューリング後のLMスケジュールテーブル154の内容を反映している。例えば、VMスケジュールシンボル911は、物理マシン名「PM01」上の複数の仮想マシンの稼働予定と、当該複数の仮想マシンのLM予定とを示す。また、VMスケジュールシンボル912は、物理マシン名「PM02」上の複数の仮想マシンの稼働予定と、当該複数の仮想マシンのLM予定とを示す。VMスケジュールシンボル911,912によれば、運用者は、各仮想マシンがLM実施前には物理マシン名「PM01」の物理マシンで稼働し、LM実施後には物理マシン名「PM02」の物理マシンで稼働することを把握できる。
メンテナンスシンボル913は、物理マシンのメンテナンススケジュールを示すシンボルである。メンテナンスシンボル913は、メンテナンススケジュールテーブル153の内容を反映しており、物理マシン名「PM01」の物理マシンに対するメンテナンススケジュールを示す。メンテナンスシンボル913の例では、物理マシン名「PM01」の物理マシンに対して、2018年6月20日10時30分~同日11時29分の期間に、メンテナンスを行うことを示す。
このように、管理サーバ100は、再スケジューリング結果を生成する際、準制約充足問題(準制約情報)と、複数の物理マシンそれぞれのメンテナンスの所要時間とに基づいて、メンテナンスの実施期間のうち、各物理マシンに対してメンテナンスを行う期間を決定する。管理サーバ100は、こうして決定した期間を、運用者端末700に出力することで、再スケジューリング後の各物理マシンのメンテナンスを行うべき期間を運用者に適切に提示することができる。
以上で説明したように、管理サーバ100は、仮想マシンのLMを伴うクラウド基盤のメンテナンスについて、事前に日程調整したLM実施予定時刻を変更する旨の利用者からの要求を受け付ける。管理サーバ100は、要求があった仮想マシンについては希望の時間帯にLMを実施するように制約化し、それ以外については予定を変更しないように制約化して再スケジューリングを行う。このとき、運用側でメンテナンス作業時に守らなければならない要件を満たすことができなければ、管理サーバ100は、LM実施時刻に関する極小充足不能コアを抽出し、その中から下位優先度の仮想マシンについて制約を取り除いて再スケジューリングする。これにより、LMスケジュールの変更箇所を最小限に抑え、仮想マシンの既存の移動予定への影響を抑えた再スケジューリングが可能になる。
ところで、システム運用において、管理サーバ100が当初決定したスケジュールによって、LMおよび物理マシンのメンテナンスが予定通りに実施される保証はない。例えば、上記のように、利用者による仮想マシンの利用予定の変更により、当初スケジューリングされた仮想マシンのLMの時間帯を別の時間帯に変更してほしいという要望が発生することもある。このように、システムの運用では、状況の変化に応じてスケジュールの修正が必要となる。
しかし、制約を充足するようにスケジュールを修正するには、修正要因の箇所以外にも変更が必要になる可能性がある。
再スケジューリングの方法として、動的重み付き制約充足問題による再スケジューリングも考えられる。動的重み付き制約充足問題による再スケジューリングの方法には、例えば、下記の文献2,3が参考になる。
(文献2)特開2005-267591号公報
(文献3)Hattori,Ito,Ozono and Shintani, “A Nurse Scheduling System Based on Dynamic Constraint Satisfaction Problem,” In Proc. IEA/AIE 2005,pp.799-808,2005.
文献2,3の方法における再スケジューリングでは、制約に重みを付加し、違反する制約の重みの合計が最小化されるように解を求める動的な制約充足問題を扱う。しかし、文献2,3の方法では、制約に対する最適な重み値を一意に決めることは容易でない。重みは再スケジューリング問題に依存するからである。このため、文献2,3の方法では、最適な再スケジューリング結果を得るには、問題毎に重みの調整が必要となる。また、再スケジューリング失敗(充足不能)時に、適当な重み調整では充足可能になる保証がなく、大規模な問題での最適な重み探索は非現実的となる。
そこで、管理サーバ100は、LMの再スケジューリング時に与えられた制約充足問題が充足不能であるとき、制約充足問題における制約集合から極小充足不能コアを抽出する。管理サーバ100は、極小充足不能コアに含まれる制約を1つ取り除いた再スケジューリング問題(準制約充足問題)をk種類作成し、k種類の再スケジューリング問題について求解を実行する。このとき、上記のように、管理サーバ100は、既存のLMのスケジュールに対する変更の影響を抑えるために、式(18)(19)などで表される目的関数を用いる。そして、管理サーバ100は、求解した問題の中で変更の影響を最小限に抑えることができる結果を採用する。これにより、変更対象の仮想マシンの変更要望を受け入れつつ、他の仮想マシンの既存のスケジュールへの影響を抑えた再スケジューリングが可能になる。
このとき、極小充足不能コアに属する全ての制約ではなく、そのうちの一部の制約を除外対象とすることで、極小充足不能コアに属する全ての制約を除外対象とするよりも、再スケジューリングの処理を高速化できる。特に、仮想マシンの優先度に応じて、除外対象の制約を選択することで、例えば、重要な処理を実行する仮想マシンの制約が除外対象になる可能性を低減でき、仮想マシンの利用に対する影響を一層抑えられる。
なお、第1の実施の形態の情報処理は、処理部12にプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、CPU101にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体93に記録できる。
例えば、プログラムを記録した記録媒体93を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体93に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAM102やHDD103などの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
10 スケジュール装置
11 記憶部
12 処理部
20,30,40 物理マシン
21,31,41 仮想マシン
50 端末装置
61 既存スケジュール
62 変更情報
70 制約情報
71,72,73 準制約情報
N1 ネットワーク
U1 利用者

Claims (10)

  1. コンピュータに、
    複数の物理マシンの間での複数の仮想マシンの移動の時間帯を示す既存スケジュールに対して、仮想マシンの移動の時間帯の変更に関する変更情報を取得し、
    前記変更情報と前記既存スケジュールにおける前記仮想マシン以外の、前記変更の対象外である他の仮想マシンの移動の時間帯とに応じた制約群を含む制約情報を生成し、
    前記制約情報のうち、前記制約群に含まれる制約を1つずつ除外した複数の準制約情報を生成し、
    生成した複数の準制約情報それぞれに基づいて、前記複数の仮想マシンの移動の再スケジューリングを行うことで、準制約情報毎に再スケジューリング結果を生成し、
    複数の再スケジューリング結果のうち、前記再スケジューリング結果および前記既存スケジュールにおける前記変更の対象外である前記他の仮想マシンの移動の予定時刻の差が小さくなる前記再スケジューリング結果を出力する、
    処理を実行させるスケジュールプログラム。
  2. 前記複数の準制約情報の生成では、前記制約情報を充足する前記再スケジューリング結果を得られない場合に、前記制約群から抽出された極小充足不能コアに含まれる制約を除外対象として選択する、
    請求項1記載のスケジュールプログラム。
  3. 前記除外対象の制約の選択では、前記極小充足不能コアに含まれる全制約のうちの一部の制約を、前記複数の仮想マシンそれぞれの優先度に基づいて選択する、
    請求項2記載のスケジュールプログラム。
  4. 前記再スケジューリング結果の出力では、前記再スケジューリング結果および前記既存スケジュールにおける前記他の仮想マシンの移動の予定時刻の第1の差、または、前記変更情報および前記再スケジューリング結果における前記仮想マシンの移動の時間帯の第2の差が小さくなる前記再スケジューリング結果を出力する、
    請求項1記載のスケジュールプログラム。
  5. 前記再スケジューリング結果の出力では、前記第1の差、または、前記第2の差の何れかが最小である前記再スケジューリング結果を出力する、
    請求項4記載のスケジュールプログラム。
  6. 前記変更情報は、前記仮想マシンの移動を許容する時間帯、または、前記仮想マシンの移動を回避する時間帯を示す情報を含む、
    請求項1乃至5の何れか1項に記載のスケジュールプログラム。
  7. 前記制約情報は、前記複数の物理マシンのメンテナンスの実施期間、前記複数の物理マシンおよび前記複数の仮想マシンの構成情報および物理マシン間の前記仮想マシンの移動の所要時間に関する制約を含む、
    請求項1乃至6の何れか1項に記載のスケジュールプログラム。
  8. 前記再スケジューリング結果の生成では、準制約情報と、前記複数の物理マシンそれぞれのメンテナンスの所要時間とに基づいて、前記メンテナンスの実施期間のうち、前記複数の物理マシンそれぞれに対して前記メンテナンスを行う期間を決定する、
    請求項1乃至7の何れか1項に記載のスケジュールプログラム。
  9. 複数の物理マシンの間での複数の仮想マシンの移動の時間帯を示す既存スケジュールの情報を記憶する記憶部と、
    前記既存スケジュールに対して、仮想マシンの移動の時間帯の変更に関する変更情報を取得し、前記変更情報と前記既存スケジュールにおける前記仮想マシン以外の、前記変更の対象外である他の仮想マシンの移動の時間帯とに応じた制約群を含む制約情報を生成し、前記制約情報のうち、前記制約群に含まれる制約を1つずつ除外した複数の準制約情報を生成し、生成した複数の準制約情報それぞれに基づいて、前記複数の仮想マシンの移動の再スケジューリングを行うことで、準制約情報毎に再スケジューリング結果を生成し、複数の再スケジューリング結果のうち、前記再スケジューリング結果および前記既存スケジュールにおける前記変更の対象外である前記他の仮想マシンの移動の予定時刻の差が小さくなる前記再スケジューリング結果を出力する処理部と、
    を有するスケジュール装置。
  10. コンピュータが、
    複数の物理マシンの間での複数の仮想マシンの移動の時間帯を示す既存スケジュールに対して、仮想マシンの移動の時間帯の変更に関する変更情報を取得し、
    前記変更情報と前記既存スケジュールにおける前記仮想マシン以外の、前記変更の対象外である他の仮想マシンの移動の時間帯とに応じた制約群を含む制約情報を生成し、
    前記制約情報のうち、前記制約群に含まれる制約を1つずつ除外した複数の準制約情報を生成し、
    生成した複数の準制約情報それぞれに基づいて、前記複数の仮想マシンの移動の再スケジューリングを行うことで、準制約情報毎に再スケジューリング結果を生成し、
    複数の再スケジューリング結果のうち、前記再スケジューリング結果および前記既存スケジュールにおける前記変更の対象外である前記他の仮想マシンの移動の予定時刻の差が小さくなる前記再スケジューリング結果を出力する、
    スケジュール方法。
JP2019021387A 2019-02-08 2019-02-08 スケジュールプログラム、スケジュール装置およびスケジュール方法 Active JP7177349B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019021387A JP7177349B2 (ja) 2019-02-08 2019-02-08 スケジュールプログラム、スケジュール装置およびスケジュール方法
US16/773,249 US11256541B2 (en) 2019-02-08 2020-01-27 Rescheduling of virtual machine migrations with less impact on an existing migration schedule

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019021387A JP7177349B2 (ja) 2019-02-08 2019-02-08 スケジュールプログラム、スケジュール装置およびスケジュール方法

Publications (2)

Publication Number Publication Date
JP2020129257A JP2020129257A (ja) 2020-08-27
JP7177349B2 true JP7177349B2 (ja) 2022-11-24

Family

ID=71945237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019021387A Active JP7177349B2 (ja) 2019-02-08 2019-02-08 スケジュールプログラム、スケジュール装置およびスケジュール方法

Country Status (2)

Country Link
US (1) US11256541B2 (ja)
JP (1) JP7177349B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10715403B2 (en) * 2017-04-11 2020-07-14 Nerdio, Inc. Scalable, standardized I.T. deployment platform
US11366650B1 (en) 2020-12-04 2022-06-21 International Business Machines Corporation Automatic generation of affinity and anti-affinity rules
EP4064057B1 (en) 2021-03-24 2023-07-26 Mitsubishi Electric R&D Centre Europe B.V. Method and system for correcting the operation of a target computer system by using timed requirements
US11675518B2 (en) * 2021-05-04 2023-06-13 EMC IP Holding Company LLC Determining migrations between geographically distributed data centers
US20230315515A1 (en) * 2022-03-29 2023-10-05 Google Llc Scheduling And Load-Balancing Replication-Based Migrations of Virtual Machines
US12248795B2 (en) * 2022-06-20 2025-03-11 Google Llc Cloud infrastructure management
US20250080422A1 (en) * 2022-11-18 2025-03-06 Rakuten Symphony, Inc. System and method for change request assisted policy state management
CN117171140B (zh) * 2023-10-25 2024-07-12 勾股科技(北京)有限公司 一种数据迁移方法及装置

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3833807B2 (ja) 1998-01-23 2006-10-18 中部電力株式会社 電力系統の需給計画作成装置
JP2005267591A (ja) 2004-03-19 2005-09-29 Toramatsu Shintani 再スケジューリング可能なナーススケジューリングシステム及び、これに用いるための動的重み付き制約充足問題解決方法
US8806480B2 (en) * 2007-06-29 2014-08-12 Microsoft Corporation Virtual machine smart migration
US20100161922A1 (en) * 2008-12-19 2010-06-24 Richard William Sharp Systems and methods for facilitating migration of virtual machines among a plurality of physical machines
US7975165B2 (en) * 2009-06-25 2011-07-05 Vmware, Inc. Management of information technology risk using virtual infrastructures
US8423646B2 (en) * 2010-07-09 2013-04-16 International Business Machines Corporation Network-aware virtual machine migration in datacenters
JP2013182303A (ja) 2012-02-29 2013-09-12 Nec Corp 仮想マシン管理システム、方法、およびプログラム
WO2013136502A1 (ja) * 2012-03-16 2013-09-19 富士通株式会社 稼働管理装置、稼働管理方法、稼働管理プログラム及び記録媒体
JP6044131B2 (ja) * 2012-06-25 2016-12-14 富士通株式会社 プログラム、管理サーバおよび仮想マシン移動制御方法
EP2808796A4 (en) * 2012-09-03 2016-04-13 Hitachi Ltd ADMINISTRATIVE SYSTEM FOR ADMINISTERING A COMPUTER SYSTEM WITH SEVERAL MONITORING DEVICES
US8850434B1 (en) * 2012-09-14 2014-09-30 Adaptive Computing Enterprises, Inc. System and method of constraining auto live migration of virtual machines using group tags
JP2015011569A (ja) * 2013-06-28 2015-01-19 株式会社東芝 仮想マシン管理装置、仮想マシン管理方法、及び仮想マシン管理プログラム
US9720728B2 (en) * 2013-12-06 2017-08-01 Huawei Technologies Co., Ltd. Migrating a VM when the available migration duration times of a source and destination node are greater than the VM's migration duration time
US10205677B2 (en) * 2015-11-24 2019-02-12 Cisco Technology, Inc. Cloud resource placement optimization and migration execution in federated clouds
JP2018026042A (ja) * 2016-08-12 2018-02-15 富士通株式会社 移動制御プログラム、移動制御装置及び移動制御方法
JP6741941B2 (ja) * 2016-08-16 2020-08-19 富士通株式会社 仮想マシン管理プログラム、仮想マシン管理方法、及び、仮想マシン管理装置
JP6901683B2 (ja) * 2017-09-22 2021-07-14 富士通株式会社 調整プログラム、調整装置および調整方法
US10860367B2 (en) * 2018-03-14 2020-12-08 Microsoft Technology Licensing, Llc Opportunistic virtual machine migration
US11579909B2 (en) * 2018-07-31 2023-02-14 Vmware, Inc. Honoring resource scheduler constraints during maintenances
US10977068B2 (en) * 2018-10-15 2021-04-13 Microsoft Technology Licensing, Llc Minimizing impact of migrating virtual services
JP7197776B2 (ja) * 2018-11-01 2022-12-28 富士通株式会社 スケジューリングプログラム、スケジューリング方法、およびスケジューリング装置

Also Published As

Publication number Publication date
US20200257554A1 (en) 2020-08-13
JP2020129257A (ja) 2020-08-27
US11256541B2 (en) 2022-02-22

Similar Documents

Publication Publication Date Title
JP7177349B2 (ja) スケジュールプログラム、スケジュール装置およびスケジュール方法
JP6901683B2 (ja) 調整プログラム、調整装置および調整方法
US11425194B1 (en) Dynamically modifying a cluster of computing nodes used for distributed execution of a program
US9826031B2 (en) Managing distributed execution of programs
JP6455035B2 (ja) 負荷分散管理装置、制御方法およびプログラム
US8321558B1 (en) Dynamically monitoring and modifying distributed execution of programs
US9276987B1 (en) Identifying nodes already storing indicated input data to perform distributed execution of an indicated program in a node cluster
US8935404B2 (en) Saving program execution state
US10705873B2 (en) Predictive virtual server scheduling and optimization of dynamic consumable resources to achieve priority-based workload performance objectives
US8260840B1 (en) Dynamic scaling of a cluster of computing nodes used for distributed execution of a program
Cheng et al. Cross-platform resource scheduling for spark and MapReduce on YARN
US20170060707A1 (en) High availability dynamic restart priority calculator
JP7197776B2 (ja) スケジューリングプログラム、スケジューリング方法、およびスケジューリング装置
JP2023509369A (ja) マルチクラウド環境におけるワークロードの実施
US20200065195A1 (en) Space management for snapshots of execution images
US11336518B2 (en) Staging configuration changes with deployment freeze options
US12190165B2 (en) Computing environment pooling
JP2019061359A (ja) プログラム及び情報処理装置
JP5867238B2 (ja) オートスケーリング方法,オートスケーリングプログラムおよびコンピュータノード
Leite et al. Excalibur: An autonomic cloud architecture for executing parallel applications
JP2016167138A (ja) 情報処理装置、ワークフロー生成方法、及びワークフロー生成プログラム
Sun et al. Budget constraint bag-of-task based workflow scheduling in public clouds
JP2013080346A (ja) 情報処理装置、保守作業支援方法および保守作業支援用プログラム
chandra Thota Reduce the Customer’s Complaint Resolution Time in Migration of Oracle Database Servers in Vmware

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211109

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20211111

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20211111

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20220929

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221024

R150 Certificate of patent or registration of utility model

Ref document number: 7177349

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150