[go: up one dir, main page]

JP2017016505A - 起動制御プログラム、起動制御方法及び起動制御装置 - Google Patents

起動制御プログラム、起動制御方法及び起動制御装置 Download PDF

Info

Publication number
JP2017016505A
JP2017016505A JP2015134339A JP2015134339A JP2017016505A JP 2017016505 A JP2017016505 A JP 2017016505A JP 2015134339 A JP2015134339 A JP 2015134339A JP 2015134339 A JP2015134339 A JP 2015134339A JP 2017016505 A JP2017016505 A JP 2017016505A
Authority
JP
Japan
Prior art keywords
virtual machine
memory
started
memory amount
amount
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015134339A
Other languages
English (en)
Other versions
JP6589417B2 (ja
Inventor
宏己 住田
Hiromi Sumita
宏己 住田
安男 吉本
Yasuo Yoshimoto
安男 吉本
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 JP2015134339A priority Critical patent/JP6589417B2/ja
Priority to US15/190,293 priority patent/US10055244B2/en
Publication of JP2017016505A publication Critical patent/JP2017016505A/ja
Application granted granted Critical
Publication of JP6589417B2 publication Critical patent/JP6589417B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/4401Bootstrapping
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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/45575Starting, stopping, suspending or resuming virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】仮想マシンの起動処理の完了と起動スケジュールとのずれを抑止する。【解決手段】仮想マシンを生成可能な情報処理装置上で仮想マシンが起動される際の、情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と起動する仮想マシンに割り当てられるメモリ量の和に基づく第1のメモリ量と、起動する仮想マシンの起動に要した起動処理時間と、を関連付けた起動処理実績データを記憶部に記憶し、新たな仮想マシンを所定の起動タイミングで起動する際に、情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と新たに起動する仮想マシンに割り当てられるメモリ量の和に基づく第2のメモリ量と相関を有する第1のメモリ量に関連付けられた起動処理時間に基づいて、新たな仮想マシンの起動処理を開始するタイミングを決定する起動制御プログラム。【選択図】図16

Description

本発明は,起動制御プログラム、起動制御方法及び起動制御装置に関する。
クラウドコンピューティングは、データセンタ内の物理マシン(情報処理装置)上に仮想化基盤(以下ハイパーバイザ)により複数の仮想マシンを配備し、配備された仮想マシンでサービスシステムを構築する。そして、サービスシステムを利用する利用者の端末装置は、ネットワークを介して仮想マシンにアクセスしサービスシステムを利用する。利用者は、自前で物理マシンを調達せずに、物理マシン上に必要な仮想マシンを配備することで所望のサービスシステムを構築する。
クラウドコンピューティングでは、物理マシン上に特定の仮想マシンを集約するなどにより、物理マシンであるハードウエアを効率的に利用することができ、省エネ、省資源化を図ることができる。
例えば、ハイパーバイザは、CPU資源を複数の仮想マシンで共用させ、またCPUを使用していない仮想マシンからCPUを必要とする仮想マシンにCPUの割当を変更するなどを行う。
また、メモリ資源についても、ハイパーバイザは、メモリ内の不要不急のデータを外部のストレージ装置に移動するなどしてメモリを解放し、メモリを必要とする仮想マシンに割当を変更する制御を行う。
近年、ハイパーバイザは、物理マシンが実装するメモリ容量以上のメモリを仮想マシンに割り当てるメモリオーバコミット状態に制御することが可能になってきている。例えば、ハイパーバイザがメモリ容量以内でメモリを仮想マシンに割り当てる場合、メモリ使用率は比較的高いが、CPU使用率が低くなることがある。したがって、物理マシンの効率化の観点から、メモリオーバコミット状態で仮想マシンにメモリを割り当てることが求められている。
特開平7−28657号公報 特開2013−8322号公報 特開2013−152513号公報
一方、クラウドコンピューティングを利用するクラウドシステムにおいて、予め決められたスケジュールにしたがって、仮想マシンの起動と停止を自動的に制御することが行われる。このような自動起動制御スケジュール管理においては、各仮想マシンがスケジュール通りの時刻に起動及び停止されることが必要である。
しかしながら、前述のメモリオーバコミット状態を許容してできるだけ多くの仮想マシンを配備する状況下で、自動起動制御スケジュール管理により仮想マシンを起動すると、その起動処理時間がメモリ不足により長くなり、スケジュール通りに起動処理が完了しないリスクがある。特に、複数の仮想マシンの起動予定時刻が短時間の間に集中すると、特に深刻な事態に陥るリスクがある。
そこで,第1の側面では,仮想マシンの起動処理の完了と起動スケジュールとのずれを抑止する起動制御プログラム、起動制御方法及び起動制御装置を提供することにある。
実施の形態の第1の態様では,仮想マシンを生成可能な情報処理装置上で仮想マシンが起動される際の、前記情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と起動する仮想マシンに割り当てられるメモリ量の和に基づく第1のメモリ量と、前記起動する仮想マシンの起動に要した起動処理時間と、を関連付けた起動処理実績データを記憶部に記憶し、
新たな仮想マシンを所定の起動タイミングで起動する際に、前記情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と前記新たに起動する仮想マシンに割り当てられるメモリ量の和に基づく第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定すること、を有する処理をコンピュータに実行させる起動制御プログラムである。
第1の側面によれば,仮想マシンの起動処理の完了と起動スケジュールとのずれを抑止することができる。
本実施の形態におけるクラウドコンピューティングによるクラウドシステムを示す図である。 物理マシン群1内の一つの物理マシンPM1の構成を示す図である。 管理用物理マシン内の物理マシンPM0の構成を示す図である。 ハイパーバイザHV1によるメモリ制御の一例を示す図である。 仮想マシンの起動処理の概略を示す図である。 上記の第1の起動制御による起動制御機構4_1(起動制御プログラムBC_PR)による仮想マシンの自動起動制御の処理を示すフローチャート図である。 第2の起動制御による起動制御機構4_1(起動制御プログラムBC_PR)による仮想マシンの自動起動制御の処理を示すフローチャート図である。 図7の起動時刻チューニングプログラムS20の詳細な処理を示すフローチャート図である。 起動処理イベントログの一例を示す図である。 物理マシンPM1に実装されているサービスクオリティコーディネータ(SOC:Service Quality Coordinator、プログラム)が採取したデータ例である。 物理マシンの実装されているメモリ総量のデータ例を示す図である。 自動起動制御スケジュールの一例を示す図である。 仮想マシンに割り当てられる(または割当予定の)メモリ量の例を示す図である。 起動処理時間実績データログの例を示す図である。 見積もり遅延時間の一例を示す図である。 起動制御処理の具体例を示す図である。 起動制御処理の具体例を示す図である。
図1は、本実施の形態におけるクラウドコンピューティングによるクラウドシステムを示す図である。クラウドシステムは、情報処理装置である複数の物理マシンを有する物理マシン群1と、物理マシン群1を管理するシステムが構築される管理用物理マシン2とを有する。
物理マシン群1内のある物理マシンPM1には、ハイパーバイザHV1の仮想化機能により、複数の仮想マシンVMが起動され生成または配備される。図1の例では、3つの仮想マシンVM1〜VM3が起動済みであり、1つの仮想マシンVM4が新たに起動されようとし、2つの仮想マシンVM5,VM6は停止中である。物理マシン群1内の各物理マシンPM1上に生成された仮想マシンVM1〜VM3により種々のサービスシステムが構築される。そして、各サービスシステムを利用する利用者の端末装置5_1〜5_3は、第1のネットワークNET1を介してサービスシステムを構築する仮想マシンVM1〜VM3にアクセスし、それぞれのサービスシステムを利用する。
一方、管理用物理マシン2の物理マシンPM0には、ハイパーバイザHV0の仮想化機能により、管理者ポータルサイト3を構成する仮想マシンVM_aと、物理マシン群1内の複数の仮想マシンを運用管理する管理サーバ4を構成する仮想マシンVM_bとが起動され稼働中である。
クラウドシステムの管理者の端末装置6は、第2のネットワークNET2を介して管理者ポータルサイト3にアクセスし、仮想マシンの登録、仮想マシンの起動(ブート)、停止(シャットダウン)などの要求、仮想マシンの自動起動スケジュールの設定などを行う。
一方、管理サーバ4は、管理者の端末装置6からの要求に基づいて、仮想マシンの起動や停止を、物理マシン群1のハイパーバイザHV1に実行させる。また、管理サーバ4は、物理マシン群1の各種ステータス情報をハイパーバイザHV1などから入手し、管理者による運用管理のために提供する。
さらに、管理サーバ4は、管理者により設定された自動起動スケジュールに基づいて、物理マシン群1上に仮想マシンVMを起動する起動制御を行う起動制御機構4_1を有する。この起動制御機構4_1は、起動予定の仮想マシンの起動処理時間を予測し、自動起動スケジュールの起動タイミングで起動処理を完了できるように、起動処理開始タイミング(起動時刻または起動予定時刻)を調整する。詳細は、後で詳述する。
図2は、物理マシン群1内の一つの物理マシンPM1の構成を示す図である。物理マシンPM1は、通常のコンピュータ(情報処理装置)と同様に、CPU(Central Processing Unit)10と、メインメモリであるメモリ12と、ネットワークNETに接続されるネットワークインターフェース装置(Network Interface Card)16と、ハードディスクのような大容量の記憶装置であるストレージ18と、それらを接続するバス19とを有する。ストレージ18は、入出力装置14を介してバス19に接続される。
ストレージ18内には、ハイパーバイザHV1と、各仮想マシンVMのゲストOS(Operating System)G_OSとが記憶される。ハイパーバイザHV1とゲストOS G_OSは、メモリ12内に展開され、CPU10により実行される。また、ストレージ18には、各仮想マシンが実行するアプリケーションプログラム(図示せず)が記憶される。
さらに、ストレージ18には、メモリ12内の例えば最近使われていないまたは使用頻度が低いデータをコピーしてスワップアウトされたスワップファイルSW_Fが記憶される。
このスワップファイルは、簡単に説明すると次のとおりである。すなわち、ハイパーバイザHV1は、メモリ管理の一つとして、起動済みの仮想マシンに割り当てているメモリ領域のうち、最近使われていないまたは使用頻度が低いなどのメモリ領域のデータを外部ストレージ18内のスワップファイルSW_Fにコピーする。そして、ハイパーバイザは、そのメモリ領域を仮想マシンへの割当から解放し、新たにメモリ領域を要求している仮想マシンに割り当てるスワップ処理を行う。このスワップ処理を行うことで、ハイパーバイザHV1は、実装されているメモリ12の総容量を超えて、仮想マシンにメモリ領域を割り当てることができる。また、ハイパーバイザHV1は、起動済みの仮想マシンに割り当てているメモリ領域のうち、最近使われていないなどのメモリ領域のデータを圧縮して空き領域を確保し、新たにメモリ領域を要求している仮想マシンに割り当てることなども行う。
ハイパーバイザHV1は、仮想マシンの構成を定義する情報に基づいて、起動した仮想マシンにCPU10またはCPU内のコアを割り当て、要求されているメモリ量をメモリから割り当て、要求されているストレージ容量をストレージ18から割り当て、そして、要求されているネットワークの帯域を割り当てる。これらのうち、ハイパーバイザは、仮想マシンへのメモリの割り当てをメモリ管理機能により維持する。
例えば、図2の物理マシンPM1上には、仮想マシンVM2, VM3, VM1, VM4が起動済みであると仮定する。そのため、ハイパーバイザHV1は、4つの仮想マシンVM1〜VM4にそれぞれメモリ12内のメモリ領域MEM_VM1〜MEM_VM4を割り当てる。そして、ハイパーバイザHV1は、仮想マシンVM1〜VM4に、実装されているメモリ12の総容量を越えてメモリ領域を割り当てることもできる。このような実装メモリ量を超えてメモリを割り当てるメモリオーバコミットメント状態では、ハイパーバイザはそのメモリ管理機能により、メモリ内のデータの一部を圧縮し、またはメモリ内のデータをストレージ18内のスワップファイルSW_Fにコピーする。したがって、メモリオーバコミットメントの程度が高くなるほど、ハイパーバイザはそのメモリ管理処理でより忙しい状況に陥る。
図3は、管理用物理マシン内の物理マシンPM0の構成を示す図である。物理マシンPM0は、図2の物理マシンPM1と同様に、CPU20と、メインメモリであるメモリ22と、ネットワークNETに接続されるネットワークインターフェース装置26と、ストレージ28と、ストレージ28の入出力装置24と、それらを接続するバス29とを有する。
ストレージ28には、ハイパーバイザHV0と、各仮想マシンVMのゲストOS G_OSとが記憶される。さらに、ストレージ28には、物理マシン群1に生成される仮想マシンVMを管理する管理プログラムA_PRと、起動制御機構4_1を実現する起動制御プログラムBC_PRとが記憶される。これらのソフトウエアは、メモリ22に展開され、CPU20により実行される。
[メモリオーバコミットメントとメモリ管理]
図1に示されるクラウドシステムでは、ハイパーバイザHV1は、物理マシンPM1上に多数の仮想マシンVMを起動し、仮想マシンVMの稼働を制御する。そして、ハイパーバイザHV1が、仮想マシンVMにメモリの総容量以内でしかメモリ領域を割り当てないで仮想マシンVMを起動及び稼働させる場合、CPU資源はあまり活用されないことが判明した。例えば、物理マシンPM1内のメモリ使用率が80%を越えていても、CPU使用率は20%未満になる場合がある。これは、起動済みの仮想マシンVMが全てアクティブ状態である場合はむしろまれであり、通常、多くの仮想マシンVMがアイドル状態にあるからである。
そこで、本実施の形態において、ハイパーバイザHV1は、複数の仮想マシンVMにメモリの総容量を超えてメモリ領域を割り当てるメモリオーバコミットメント状態で仮想マシンを制御することを許容する。そのようにメモリの割り当てを行うことで、CPUの使用率を上げることができ、ハードウエアの効率的な活用ができる。そして、メモリオーバコミットメント状態を可能にするために、ハイパーバイザHV1は、以下に示すメモリ制御を実行する。
図4は、ハイパーバイザHV1によるメモリ制御の一例を示す図である。ハイパーバイザは、メモリ領域の割り当て要求が発生すると(S1のYES)、空きメモリ量が要求されたメモリ量以上である場合(S2のYES)、空きメモリ領域を要求元に割り当てる(S4)。しかし、空きメモリ量が要求されたメモリ量未満の場合(S2のNO)、ハイパーバイザは、要求されているメモリ量から空きメモリ量を減じたメモリ量を、他の仮想マシンに割り当て中のメモリ領域から奪う処理(または取得する処理。以下同様。)を実行する(S3)。メモリ領域の割り当てを要求するのは、例えば起動済みの仮想マシンや、仮想マシンを起動する際の起動プログラムなどである。
上記の他の仮想マシンに割り当て中のメモリ領域から奪うメモリ量は、メモリ割当要求に応えるのに不足するメモリ量である。そして、この不足するメモリ量を他の仮想マシンに割り当てているメモリから奪う処理は、ハイパーバイザのメモリ管理の処理の一つであり、具体的には、前述の最近使用されていないなどのデータを圧縮してメモリ領域を開放する処理や、最近使用されていないなどのデータをストレージ18内のスワップファイルにコピーしてメモリ領域を開放する処理などである。
このように、ハイパーバイザHV1は、メモリオーバコミットメント状態で、新たな仮想マシンが起動する際にメモリの割り当てが要求される場合に、上記の不足するメモリ量を他の仮想マシンに割り当て中のメモリ領域から奪う処理S3を実行する。また、ハイパーバイザHV1は、メモリオーバコミットメント状態で、起動済みの仮想マシンがアイドル状態からアクティブ状態に復帰しメモリへアクセスする際などでも同様の不足するメモリ量を奪う処理を行う。
[仮想マシンの起動処理]
図5は、仮想マシンの起動処理の概略を示す図である。仮想マシンの起動処理は、ハイパーバイザHV1による仮想マシンのメモリ領域の割り当て(S6)と、割り当てられたメモリ領域内へのゲストOSのロード(S8)と、ゲストOSによる起動処理(S9)を有する。新たな仮想マシンを起動開始するにあたり、ハイパーバイザHV1はまず起動対象の仮想マシンにメモリ領域の割り当てを実行する(S6)。この割り当て処理は、図4のハイパーバイザによるメモリ制御で説明した要求メモリ量を要求元に割り当てる処理である。
したがって、メモリ内の空きメモリ量が要求メモリ量以上あれば、ハイパーバイザは、メモリ領域の割り当て処理を短時間で完了する。しかし、メモリ内の空きメモリ量が要求メモリ量未満の場合は、ハイパーバイザは不足するメモリ量を、起動済みの他の仮想マシンに割り当て中のメモリ領域から奪う処理(図4のS3)を実行する。この不足するメモリ容量を他の仮想マシンから奪う処理に要する時間は、不足するメモリ量のサイズや、ストレージ18のアクセス頻度(例えばIOインターフェース装置14の利用頻度)や、更にハイパーバイザのビジー状態などに応じて、ばらつきがある。
図5において、メモリ領域の割り当てが完了すると(S7のYES)、ハイパーバイザHV1は、割り当てたメモリ領域にストレージ18内のゲストOSをロードし、起動制御をゲストOSに渡す(S8)。その後、CPUがメモリにロードされたゲストOSにアクセスしてゲストOSが起動し、仮想マシンの起動に必要な初期化処理などを含む起動処理を実行する(S9)。
上記のとおり、仮想マシンの起動処理時間BT(Boot Time)は、仮想マシンへのメモリ領域の割り当てに要する時間BT2と、ゲストOSをメモリ領域にロードし(S8)、ゲストOSが仮想マシンの起動処理を完了するまでの時間BT1との合計時間(BT=BT1+BT2)である。そして、メモリ領域割当時間BT2は、メモリオーバコミットメント状態か否かで異なる。
つまり、メモリオーバコミットメント状態でなければ、ハイパーバイザは空きメモリ領域から要求されたメモリ量を割り当てるだけであり、メモリ領域割当時間BT2は非常に短くほとんどゼロといえる。しかし、メモリオーバコミットメント状態の場合、ハイパーバイザは、他の仮想マシンに割り当て中のメモリから不足分のメモリ量を奪うための処理を行うので、メモリ領域割当時間BT2は長くなる。
さらに、メモリオーバコミットメント状態でのメモリ領域割当時間BT2は、新たに起動する仮想マシンにメモリを割り当てるのに不足するメモリ量(他の仮想マシンの割り当て中メモリから奪うメモリ量)の大きさに応じて変動する(不足メモリ量が大きい程長い)。また、メモリ領域割当時間BT2は、メモリオーバコミットメントの程度に応じても長くなる(程度が高いほど長い)。メモリオーバコミットメントの程度が高いと、ハイパーバイザはメモリ管理処理で多忙を極めているからである。また、それ以外の様々な要因、例えばスワップアウト処理時におけるストレージのアクセス頻度や、サービスシステムへのアクセス頻度などによっても異なる。
メモリオーバコミットメント状態の程度は、例えば、仮想マシンへのメモリ割り当て総量を実装メモリ総量で除算したメモリオーバコミットメント率である。または、仮想マシンへのメモリ割り当て総量から実装メモリ総量で減算した超過メモリ量である。メモリオーバコミットメント率や超過メモリ量が大きくなると、ハイパーバイザによる不足するメモリ量を他の仮想マシンから奪う処理に時間がかかることが予想される。
したがって、ハイパーバイザHV1によるメモリオーバコミットメント状態を許容してCPU使用率を高める制御を行うと、自動起動制御スケジュールにしたがって仮想マシンを起動する時の起動処理時間BT(=BT1+BT2)のうち、メモリ割当時間BT2は、第1に、不足するメモリ量に依存して変動する(不足するメモリ量が多いほど長い)。さらに、メモリ割当時間BT2は、不足するメモリ量に加えて、メモリオーバコミットメント状態の程度に応じても変動する(程度が高いほど長い)。このメモリ割当時間BT2による起動処理の遅延時間は、複数の仮想マシンが集中した時間帯に起動するようスケジュールが設定された場合には更に長くなる。そのため、メモリオーバコミットメント状態を許容すると、自動起動制御スケジュールに設定された起動タイミングに仮想マシンの起動処理が完了せず大幅に遅延することが予想される。
[起動制御プログラムによる起動制御]
本実施の形態における管理サーバ4の起動制御機構4_1(起動制御プログラムBC_PR)は、自動起動制御スケジュールに設定されている各仮想マシンの起動時刻(または起動予定時刻)を、起動予定時刻での予測遅延時間分早めるよう調整する。起動予定時刻での予想起動遅延時間は、前述のとおり、主にメモリ割当時間TB2の変動により変動する。または、起動時刻を起動予定時刻での予測起動処理時間分早めるように調整してもよい。但し、起動処理時間TB(=TB1+TB2)のうち、時間TB1はメモリオーバコミットメント状態に依存せずほぼ一定の短い時間であるので、自動起動制御スケジュールは、この時間TB1を想定して設定される場合が多い。したがって、前述のように起動時刻を予測遅延時間分早める調整でもよい。
そこで、第1の起動制御では、管理制御プログラムBC_PRは、起動予定時刻において予測される起動マシンへのメモリ割り当てる際に不足するメモリ量(他の仮想マシンに割当中のメモリから奪うメモリ量)に基づいて、メモリ割当時間TB2による遅延時間を予測し、起動予定時刻を予測起動処理時間TB(=TB1+TB2)(または予測遅延時間TB2)だけ早めるように調整する。さらに、管理制御プログラムは、メモリ割当時間TB2による遅延時間を、不足するメモリ量に加えて、メモリオーバコミットメントの程度にも基づいて予測し、起動予定時刻をその分早めるように調整するのが望ましい。
第1の起動制御では、予め見積もったメモリ割当時間TB2による遅延時間から予測される不足メモリ量に基づいて遅延時間を見積もる。このような遅延時間の予測処理は、仮想マシンの起動実績データが未だ蓄積されてない場合、または参照する起動実績データが存在しない場合に適用するのが望ましい。
一方、第2の起動制御では、管理制御プログラムは、仮想マシンを起動するたびに、不足するメモリ量と、メモリオーバコミットメントの程度と、起動処理時間TBとを関連付けて起動処理時間実績データログとして記憶する。そして、起動予定時刻を調整する際に、調整対象の仮想マシンの実績データログのうち、予測される不足するメモリ量と相関する(一致または近似する)実績データログの起動処理時間TBを抽出し、起動予定時刻を起動処理時間TBに基づいて早めるように調整する。さらに、管理制御プログラムは、予測される不足するメモリ量と相関する実績データログのうち、予測されるメモリオーバコミットメントの程度と相関する実績データログの起動処理時間TBを抽出し、起動予定時刻を起動処理時間TBに基づいて調整するのが望ましい。
上記のように、第2の起動制御では、十分な起動処理時間実績データが蓄積されている場合に、調整対象の仮想マシンの実績データログのうち、不足するメモリ量と相関性のある実績データの起動処理時間を抽出して、起動予定時刻を調整する。但し、不足するメモリ量と相関性のある実績データが存在しない場合は、第1の起動制御と同様に、予め見積もったメモリ割当時間TB2による遅延時間から予測される不足メモリ量に基づいて遅延時間を見積もる。
尚、実績データログ内に調整対象の仮想マシンの実績データがない場合は、異なる仮想マシンであっても不足するメモリ量が相関性がある実績データの起動処理時間を抽出して、起動予定時刻を調整するようにしてもよい。物理マシンが同じであれば、主として不足するメモリ量に依存して起動遅延時間が異なるからである。
なお、新たに仮想マシンを起動際に不足するメモリ量(他の仮想マシンに割り当てられたメモリから奪うメモリ量)は、既に起動した仮想マシンに割り当てたメモリ量と新たに起動しようとする仮想マシンに割り当てるメモリ量の総和と密接な関係または対応する関係にある。たとえば、調整対象の仮想マシンが起動する物理マシンの実装メモリ総量は同じである。したがって、起動済みVMと調整対象VMの割当メモリ量の総量は、実績データのスワップアウトメモリ量と予測されるスワップアウトメモリ量が既知であれば、新たに起動する調整対象の仮想マシンの起動時に予測される不足するメモリ量と一対一になる。但し、空きメモリ量は共にゼロと仮定する。したがって、割当メモリ量の総量は、新たに起動する調整対象の仮想マシンにとって不足するメモリ量と対応する値である。さらに、物理マシンの実装メモリ総量は同じであるので、割当メモリ量の総量は、起動後のメモリオーバコミットメントの程度に対応する値でもある。
したがって、上記の第1、第2の起動制御において、不足するメモリ量(他の仮想メモリに割り当てたメモリから奪うメモリ量)に代えて、既に起動済み仮想マシンに割り当てたメモリ量と新たに起動する仮想マシンに割り当てるメモリ量の総量を実績データログに記憶し、起動時刻の調整時に、予測割当メモリ総量と相関する実績データログの起動処理時間を参照して起動時刻の調整を行うようにしても良い。
[第1の起動制御]
図6は、上記の第1の起動制御による起動制御機構4_1(起動制御プログラムBC_PR)による仮想マシンの自動起動制御の処理を示すフローチャート図である。前提として、クラウドシステムを運用する運用管理者などにより自動起動制御スケジュールが設定される(S10)。
図12は、自動起動制御スケジュールの一例を示す図である。図12のテーブルTBL4は、自動起動制御スケジュールの一例を示す。この例では、図1の物理マシンPM1上に仮想マシンVM1, VM2, VM3, VM4を起動するタイミングと停止するタイミングとが設定される。例えば、スケジュール番号001,002では、物理マシンPM1上に仮想マシンVM1が、1週間の月〜金の時刻08:00に起動(Action ON)し、時刻22:30に停止(Action OFF)するよう設定されている。他の仮想マシンVM2, MV3, MV4も同様である。したがって、この例では、月〜金の時刻07:30に仮想マシンVM2が、時刻07:40に仮想マシンVM3がそれぞれ起動し、その後、時刻08:00に仮想マシンVM1が、時刻08:10に仮想マシンVM4がそれぞれ起動するよう設定されている。
次に、起動制御プログラムは、起動時刻調整タイミングになると(S11のYES)、起動時刻チューニングプログラムを呼び出す(S12)。起動時刻調整タイミングは、例えば、管理者が仮想マシンの自動起動制御スケジュールを設定したタイミング、その設定を変更したタイミングであり、さらに、仮想マシンの起動処理と停止処理のイベントが発生したタイミングである。これらのタイミングで、新たな仮想マシンを起動する時にメモリ割当のために不足するメモリ量と、メモリオーバコミットメント状態の程度が変動し、それに応じて、予測される不足するメモリ量とメモリオーバコミットメント状態の程度が変動するため、起動予定時刻の再調整が必要になる。
そして、起動制御プログラムは、起動時刻(起動予定時刻)のタイミングになると(S13のYES)、起動制御運転を実行して、ハイパーバイザに仮想マシンの起動処理を行うよう指示する(S14)。
一方、起動時刻チューニングプログラムS20は、上記の呼び出しS12に応答して、起動予定時刻で予測される起動処理時間の遅延時間(TB2)を見積もり、起動予定時刻を遅延時間だけ早めて調整し、調整後の起動予定時刻を起動制御プログラムに回答する。
具体的には、起動時刻チューニングプログラムは、自動起動制御スケジュール内のVM毎に起動予定時刻で不足するメモリ量(他の仮想マシンから奪うメモリ量)を予測する(S23)。不足するメモリ量は、前述のとおり、新たに起動する仮想マシンの割当メモリ量から空きメモリ量を減じたメモリ量である。
そして、VM毎に、不足するメモリ量に応じて起動遅延時間(TB2)を見積もり計算により予測し、予測起動処理時間の起動遅延時間を取得する(S24)。
図15は、見積もり遅延時間の一例を示す図である。このテーブルTLB7は、不足するメモリ量(他のVMから奪うメモリ量)に対応する見積もり遅延時間DTを有する。このデータは、例えば、類似するクラウドコンピューティングでの平均値などから設定される。
図15のテーブルTBL7を参照して、不足するメモリ量が4GBの場合は、ハイパーバイザは、予測される起動遅延時間DTを、不足するメモリ量の比率に基づいて以下のように見積もる。
DT=(4GB÷8GB)×DT_8
または、不足するメモリ量が12GBの場合は、予測される起動遅延時間DTは、以下のように補間演算により見積もる。
DT=DT_8+(DT_16−DT_8)×(12GB−8GB)/(16GB−8GB)
そして、起動時刻チューニングプログラムは、VM毎に、自動起動制御スケジュールの起動予定時刻を、上記の見積もり計算で取得した起動遅延時間だけ早めて調整し、調整後の起動予定時刻を起動制御プログラムに応答する(S25)。
上記の見積もりは、望ましくは、さらに、メモリオーバコミットの程度を予測しておき(S23)、不足するメモリ量に加えてメモリオーバコミットの程度に応じて起動遅延時間を計算する(S24)。例えば、メモリオーバコミットの程度が高いほど、起動遅延時間が長くなるように予測する。
最後に、起動制御プログラムは、起動時刻のタイミングになると(S13)、調整された起動予定時刻に仮想マシンの起動処理を開始するよう、ハイパーバイザHV1に要求し、起動処理を行わせる(S14)。
[第2の起動制御]
図7は、第2の起動制御による起動制御機構4_1(起動制御プログラムBC_PR)による仮想マシンの自動起動制御の処理を示すフローチャート図である。まず、クラウドシステムを運用する運用管理者などにより自動起動制御スケジュールが設定される(S10)。そして、起動時刻調整タイミングになると(S11)、起動制御プログラムは、起動時刻チューニングプログラムをコールし、起動予定時刻(起動時刻)の調整を依頼する(S12)。起動時刻調整タイミングは、図6と同様である。
一方、起動時刻チューニングプログラムは、仮想マシンの起動イベントが発生するたびに、起動処理イベントログから起動処理時間を収集し、その仮想マシンが起動する際の、不足するメモリ量(他の仮想マシンから奪うメモリ量)と、望ましくはメモリオーバコミットの程度とを算出し、それらを収集した起動処理時間と関連付けて起動処理時間実績データログに追加する(S21)。起動処理時間実績データログは、例えば、物理マシンPM1のストレージ18内に記憶される。この実績データをログとして記憶することは、第1の起動制御と異なる。
起動時刻チューニングプログラムは、起動する仮想マシン毎の起動処理時間実績データを、ハイパーバイザから入手するデータに基づいて算出する。算出方法は後述するとおりである。
次に、起動時刻チューニングプログラムは、起動制御プログラムからコールされると、自動起動制御スケジュール内のVM毎に起動予定時刻で不足するメモリ量(他の仮想マシンから奪うメモリ量)を予測する(S23)。また、望ましくは、VM毎にメモリオーバコミットの程度を予測する。不足するメモリ量は、新たな仮想マシンへの割当メモリ量(割当予定メモリ量)を空きメモリ量で減じた量である。不足するメモリ量は、割当メモリ総量から実装メモリ総量と予測スワップアウトメモリ量とを減じても算出できる。また、メモリオーバコミットの程度は、割当メモリ総量を実装メモリ総量で除算したメモリオーバコミット率または割当メモリ総量から実装メモリ総量で減じたメモリオーバコミットのオーバ量である。
次に、起動時刻チューニングプログラムは、調整対象の仮想マシンに関する起動処理時間実績データログから、不足するメモリ量と相関する不足するメモリ量に関連付けられた起動処理時間を取得する(S24_B)。また、望ましくは、起動処理時間実績データログから、不足するメモリ量と相関する不足するメモリ量が複数ある場合は、更にメモリオーバコミットの程度と相関するメモリオーバコミットの程度に関連付けられた起動処理時間を取得する。
起動時刻チューニングプログラムは、起動処理時間実績データログから、不足するメモリ量と相関する不足するメモリ量の実績データを抽出できない場合(S24_CのNO)、図6のS24と同様に、不足するメモリ量に応じて起動遅延時間(TB2)を見積もり計算により予測し、予測起動処理時間の遅延時間を取得する(S24_D)。
そして、起動時刻チューニングプログラムは、VM毎に、起動予定時刻を起動処理時間の遅延時間だけ早めて、調整された起動予定時刻を生成し、起動制御プログラムに回答する(S25)。工程S24_Bで実績データから起動処理時間を抽出した場合は、取得した起動処理時間から、不足するメモリ量がゼロの実績データの起動処理時間の平均値を減じることで遅延時間を算出する。不足するメモリ量がゼロの実績データの起動処理時間は、遅延時間BT2がほとんどゼロだからである。
最後に、起動制御プログラムは、起動時刻のタイミングになると(S13)、調整された起動予定時刻に仮想マシンの起動処理を開始するよう、ハイパーバイザHV1に要求し、起動処理を行わせる(S14)。
[第2の起動制御の具体例]
次に、具体例を示しながら、上記の第2の起動制御処理(図7)について説明する。
図16、図17は、起動制御処理の具体例を示す図である。図16では、物理マシンPM1上に既に仮想マシンVM2、VM3が起動済みで稼働中の状態で、新たに仮想メモリVM1が起動予定の例を示す。図17では、更に、物理マシンPM1上に既に仮想マシンVM2, VM3, VM1が起動済みで稼働中の状態で、新たに仮想メモリVM1が起動予定の例を示す。
以下の具体例では、最初に、起動処理時間実績データログが十分に収集されていない状況で図16,図17のように仮想マシンVM1、VM4が起動予定の場合の起動時刻の調整を説明する。次に、起動処理時間実績データログが十分に収集された状況で図16,図17のように仮想マシンVM1、VM4が起動予定の場合の起動時刻の調整を説明する。
図8は、図7の起動時刻チューニングプログラムS20の詳細な処理を示すフローチャート図である。図8のフローチャート図には、各処理での演算式や参照するテーブルなどが示されている。したがって、以下の具体例の説明で、図8を適宜参照することで各処理が容易に理解できる。
[起動処理時間実績データログが未だ十分に収集されていない状況(収集されつつある状況)での図16,図17のように仮想マシンVM1、VM4が起動予定の場合での起動時刻の調整]
図12は、自動起動制御スケジュールの例を示す図である。このテーブルTBL4については、前述したとおりである。
図9は、起動処理イベントログの一例を示す図である。図12の自動起動制御スケジュールによれば、物理マシンPM1上に、仮想マシンVM2, VM3, VM1, VM4が時刻07:30, 07:40, 08:00, 08:10に起動される予定である。そして、図9の起動処理イベントログには、図12のスケジュールにしたがって仮想マシンVM2, VM3, VM1, VM4が起動した場合の起動処理イベントが、起動処理時間BTと共に記憶されているものとする。起動時刻チューニングプログラムは、この起動処理時間の実績データを、ハイパーバイザから取得する。
図10は、物理マシンPM1に実装されているサービスクオリティコーディネータ(SOC:Service Quality Coordinator、プログラム)が採取したデータ例である。このテーブルTLB2には、起動時刻と物理マシンのID PM_idと、空きメモリ量とスワップアウトメモリ量の実績データが含まれる。スワップアウトメモリ量とは、ハイパーバイザのメモリ管理処理により、メモリ内のデータをストレージのスワップファイルに退避してメモリ領域を確保したメモリ量である。
図11は、物理マシンの実装されているメモリ総量のデータ例を示す図である。このテーブルTLB3には、各物理マシンIDに対応して実装されるメモリ総量が含まれる。この情報は、ハイパーバイザから取得できる。
図13は、仮想マシンに割り当てられる(または割当予定の)メモリ量の例を示す図である。このテーブルTBL5は、物理マシンのIDと、仮想マシンのIDと割当メモリ量が示されている。この仮想マシンに割り当てるメモリ量の情報は仮想マシンの構成データに含まれ、ハイパーバイザから取得することができる。
そこで、起動時刻チューニングプログラムは、仮想マシンVM2, VM3, VM1, VM4が起動する前の所定の調整タイミングで、図10のSOCの採取データTLB2と、図11の実装メモリ総量TBL3と、図13の仮想マシンの割当メモリ量TBL5を参照して、起動予定の仮想マシンが起動する際にメモリの割当のために不足するメモリ量(他の仮想マシンから奪うメモリ量)と、オーバコミット率を、以下の式により予測する(図7、8のS23)。
不足するメモリ量=割当メモリ量−(起動前の)空きメモリ量
オーバコミット率=割当メモリ総量(起動後)÷実装メモリ総量
そして、起動時刻チューニングプログラムは、予測した不足するメモリ量と、オーバコミット率とから、起動処理時間の遅延時間BT2を見積もりにより予測し、自動起動プログラムに回答する(図7、8のS24_D)。
次に、起動時刻チューニングプログラムは、仮想マシンVM2, VM3, VM1, VM4が起動する毎に、図9の起動処理イベントログTBL1と、図10のSOCの採取データTLB2と、図11の実装メモリ総量TBL3と、図13の仮想マシンの割当メモリ量TBL5を参照して、起動した仮想マシンの不足するメモリ量(他の仮想マシンから奪うメモリ量)と、オーバコミット率を、以下の式により算出し、起動処理時間実績データログに記憶する(図7、8のS21)。
不足するメモリ量=割当メモリ量−(起動前の)空きメモリ量
オーバコミット率=割当メモリ総量(起動後)÷実装メモリ総量
以下、具体例で説明する。
[仮想マシンVM2の起動]
最初に、仮想マシンVM2が起動される前の起動時刻の調整(図7、8のS22〜S25)について説明する。起動時刻チューニングプログラムは、自動起動制御スケジュールTBL4を入手する(図8のS22)。そして、未だ実績データが蓄積されていない状態であるので、起動時刻チューニングプログラムは、見積もり計算によりVM2の起動予定時刻での遅延時間を予測する(図7のS24_D)。
図10のSOCが採取したデータTBL2のデータ000によれば、空きメモリ量が32GBであり、仮想マシンVM2に割当予定のメモリ量は12GBであるので、仮想マシンVM2が起動される際に予測される不足するメモリ量は0である(図7、8のS23)。したがって、ハイパーバイザは起動に際して仮想マシンへのメモリ割当のために不足するメモリ量を他の仮想マシンから奪う処理をする必要がない。その結果、起動時刻チューニングプログラムは、VM2の起動予定時刻を調整する必要はない(図7、8のS24_D)。
次に、仮想マシンVM2が起動すると、起動時刻チューニングプログラムは、仮想マシンVM2の起動処理時間の起動処理イベントログTBL1をハイパーバイザから取得し、不足するメモリ量とメモリオーバコミットメントの程度を算出し、それらを起動処理時間BTと関連付けて起動処理時間実績データログに蓄積する(S21)。
具体例には、図16において最初に物理マシンPM1上に仮想マシンVM2が起動するとき、物理マシンPM1の実装メモリ総量は32GBであり(図11のTBL3参照)、起動後の空きメモリ量が20GBでスワップアウトメモリ量が0であるので(図10のTBL2参照)、
起動後の割当メモリ総量は
実メモリ総量(32GB)−起動後の空きメモリ量(20GB)+スワップアウトメモリ量(0GB)=12GB
起動後のオーバコミット率は
割当メモリ総量(12GB)÷実装メモリ総量(32GB)=12/32=37.5%
VM2の起動に際して不足するメモリ量は、図10のテーブルTBL2においてVM2の起動前はどの仮想マシンも起動されておらず空きメモリ量が32GBであるので、
割当メモリ量(12GB)−起動前の空きメモリ量(32GB)=0
図14は、起動処理時間実績データログの例を示す図である。このテーブルTLB6には、実績No.=001に、物理マシンPM1上に仮想マシンVM2の起動されたときの、上記の不足するメモリ量(0GB)とオーバコミット率(12/32)とが、起動処理時間BTと関連付けて記憶される(図7,8のS21)。
なお、仮想マシンVM2への割当メモリ量は、テーブルTBL2の空きメモリ量の差分(32GB−20GB=12GB)から取得可能である。
[仮想マシンVM3の起動]
最初に、仮想マシンVM3が起動される前の起動時刻の調整時は、未だ実績データが蓄積されていない状態であるので、起動時刻チューニングプログラムは、見積もり計算によりVM3の起動予定時刻での遅延時間を予測する(図7のS24_D)。
図10のSOCが採取したデータTBL2のデータ001によれば、空きメモリ量が20GBであり、仮想マシンVM3に割当予定のメモリ量は16GBであるので、仮想マシンVM3が起動される際に予測される不足するメモリ量は0である(図7、8のS23)。つまり、ハイパーバイザは起動に際して仮想マシンへのメモリ割当のために不足するメモリ量を他の仮想マシンから奪う処理をする必要がない。したがって、起動時刻チューニングプログラムは、VM3の起動予定時刻を調整する必要はない(図7、8のS24_D)。
次に、仮想マシンVM3が起動すると、起動時刻チューニングプログラムは、仮想マシンVM3の起動処理時間の起動処理イベントログTBL1をハイパーバイザから取得し、不足するメモリ量とメモリオーバコミットメントの程度を算出し、それらを起動処理時間BTと関連付けて起動処理時間実績データログに蓄積する(S21)。
具体的に、物理マシンPM1上に仮想マシンVM3が起動したときは、同様に次のように計算される。
割当メモリ総量は
実メモリ総量(32GB)−空きメモリ量(起動後)(4GB)+スワップアウトメモリ量(0GB)=28GB
オーバコミット率は
割当メモリ総量(28GB)÷実装メモリ総量(32GB)=28/32=87.5%
不足するメモリ量は
割当メモリ量(16GB)−空きメモリ量(起動前)(20GB)=0
図14の実績No.=002に、物理マシンPM1上に仮想マシンVM3が起動されたときの、上記の不足するメモリ量(0GB)とオーバコミット率(28/32)とが、起動処理時間BTと関連付けて記憶される(図7,8のS21)。
なお、仮想マシンVM3への割当メモリ量は、テーブルTBL2の空きメモリ量の差分(20GB−4GB=16GB)から取得可能である。
[仮想マシンVM1の起動]
まず、仮想マシンVM1が起動される前の起動時刻の調整について説明する(図7、8のS22〜S25)。未だ実績データが蓄積されていない状態であるので、起動時刻チューニングプログラムは、見積もりによりVM1の起動予定時刻での遅延時間を予測する(図7、8のS24_D)。
仮想マシンVM1が起動される前の段階では、起動時刻チューニングプログラムは、予測される不足するメモリ量とメモリオーバコミットメントの程度を、以下のとおり算出する(図7、8のS23)。
不足するメモリ量は
割当メモリ量(28GB)−空きメモリ量(起動前)(4GB)=24GB
割当メモリ総量は
実メモリ総量(32GB)−空きメモリ量(起動後)(0GB)+スワップアウトメモリ量(24GB)=56GB
オーバコミット率は
割当メモリ総量(56GB)÷実装メモリ総量(32GB)=56/32=175%
起動時刻チューニングプログラムは、上記の不足するメモリ量24GBに基づいて、図15の見積もり遅延時間DTから、起動処理時間の遅延時間を予測する(図7、8のS24_D)。図15の見積もり遅延時間には、不足するメモリ量が24GBの場合の遅延時間DT_24が登録されているので、この遅延時間DT_24を予測遅延時間とする。もし、不足するメモリ量が24GBの遅延時間DT_24がテーブルTBL7にない場合は、不足するメモリ量が16GBの遅延時間DT_16に基づいて、以下のように予測する。
予測遅延時間TD_24=(DT_16÷16GB)×24GB
そして、起動時刻チューニングプログラムは、仮想マシンVM1の起動予定時刻8:00を、予測遅延時間だけ早めて調整後の起動予定時刻を計算し、起動制御プログラムに回答する(図7、8のS25)。それに基づいて、起動制御プログラムは、仮想マシンVM1を調整後の起動予定時刻8:00-TD_24に起動開始する。
図16に示されるとおり、物理マシンPM1のメモリ12には、既に仮想マシンVM2,VM3へメモリ割当領域MEM_VM2, MEM_VM3が割当済みであり、空きメモリ量はわずか4GBである。そのため、ハイパーバイザは、仮想マシンVM2, VM3から不足するメモリ量24GBを奪い、仮想マシンVM1の起動処理を可能にする。
次に、図16において、物理マシンPM1上に仮想マシンVM1が起動したとき、起動時刻チューニングプログラムは、不足メモリ量とメモリオーバコミットの程度を取得し起動処理時間実績データログ記憶する(図7、8のS21)。前述と同様に、不足するメモリ量とメモリオーバコミットメントの程度を次のように計算する。
割当メモリ総量は
実メモリ総量(32GB)−空きメモリ量(起動後)(0GB)+スワップアウトメモリ量(24GB)=56GB
オーバコミット率は
割当メモリ総量(56GB)÷実装メモリ総量(32GB)=56/32=175%
不足するメモリ量は
割当メモリ量(28GB)−空きメモリ量(起動前)(4GB)=24GB
図14の実績No.=003に、物理マシンPM1上に仮想マシンVM1が起動されたときの、上記の不足するメモリ量(24GB)とオーバコミット率(56/32)とが、起動処理時間BTと関連付けて記憶される(図7,8のS21)。
[仮想マシンVM4の起動]
まず、仮想マシンVM4が起動される前の起動時刻の調整について説明する(図7、8のS22〜S25)。未だ実績データが蓄積されていない状態であるので、起動時刻チューニングプログラムは、見積もりによりVM4の起動予定時刻での遅延時間を予測する(図7、8のS24_D)。
仮想マシンVM1が起動される前の段階では、起動時刻チューニングプログラムは、予測される不足するメモリ量とメモリオーバコミットメントの程度を、以下のとおり算出する(図7、8のS23)。
不足するメモリ量は
割当メモリ量(12GB)−空きメモリ量(起動前)(0GB)=12GB
割当メモリ総量(起動後)は
実メモリ総量(32GB)−空きメモリ量(起動後)(0GB)+スワップアウトメモリ量(36GB)=68GB
オーバコミット率(起動後)は
割当メモリ総量(68GB)÷実装メモリ総量(32GB)=68/32=212.5%
起動時刻チューニングプログラムは、上記の不足するメモリ量24GBに基づいて、図15の見積もり遅延時間DTから、起動処理時間の遅延時間を予測する(図7、8のS24_D)。図15の見積もり遅延時間には、不足するメモリ量が8GBと16GBの場合の遅延時間DT_8, DT_16が登録されているので、以下のように予測することができる。
予測遅延時間TD_12=(DT_8+DT_16)÷2
そして、起動時刻チューニングプログラムは、仮想マシンVM1の起動予定時刻8:10を、予測遅延時間TD_12だけ早めて調整後の起動予定時刻を計算し、起動制御プログラムに回答する(S25)。それに基づいて、起動制御プログラムは、仮想マシンVM1を調整後の起動予定時刻8:10-TD_12に起動開始する。
次に、図17において、物理マシンPM1上に仮想マシンVM4が起動したとき、起動時刻チューニングプログラムは、不足メモリ量とメモリオーバコミットの程度を取得し起動処理時間実績データログ記憶する(図7、8のS21)。前述と同様に、不足するメモリ量とメモリオーバコミットメントの程度を次のように計算する。
割当メモリ総量(起動後)は
実メモリ総量(32GB)−空きメモリ量(起動後)(0GB)+スワップアウトメモリ量(36GB)=68GB
オーバコミット率(起動後)は
割当メモリ総量(68GB)÷実装メモリ総量(32GB)=68/32=212.5%
不足するメモリ量は
割当メモリ量(12GB)−空きメモリ量(起動前)(0GB)=12GB
図14の実績No.=004に、物理マシンPM1上に仮想マシンVM4が起動されたときの、上記の不足するメモリ量とオーバコミット率とが、起動処理時間BTと関連付けて記憶される(図7,8のS21)。
[起動処理時間実績データログが十分収集された状況で図16,図17のように仮想マシンVM1、VM4が起動予定の場合での起動予定時刻の調整]
次に、既に前述の仮想マシンVM1〜VM4の起動処理が行われ、図14の起動処理時間実績データログが蓄積された状態で、再び図16のように仮想マシンVM1が起動予定の場合と、図17のように仮想マシンVM4が起動予定の場合の起動予定時刻の調整について説明する。
[VM1の起動]
起動時刻チューニングプログラムは、自動起動制御スケジュールTBL4を入手する(図8のS22)。それによれば、仮想マシンVM1の起動予定時刻では、既に、仮想マシンVM2,VM3が起動済みである。そこで、起動時刻チューニングプログラムは、仮想マシンVM1の起動予定時刻での予測不足メモリ量と予測オーバコミットの程度を算出する(図7、8のS23)。この算出は、前述の仮想マシンVM1が起動したときと同じであり、次のとおりである。
予測不足メモリ量=割当メモリ量(28GB)−予測空きメモリ量(4GB)=24GB
予測オーバコミット率=割当予定メモリ総量(56GB)÷実装メモリ総量(32GB)=56/32=175%
そこで、起動時刻チューニングプログラムは、図14の起動処理時間実績データログTBL6を検索し、予測した不足メモリ量(24GB)と相関する不足メモリ量と関連付けられた起動処理時間BT003(実績No.003)を抽出する(図7、8のS24_B)。もし、予測不足メモリ量(24GB)と相関するログが複数ある場合は、メモリコミットメントの程度(メモリコミットメント率または量)が相関するログの起動処理時間を抽出する。そして、抽出した起動処理時間BT003から、実績データログ内の予測不足メモリ量=0のログの起動処理時間の平均値を減算して、予測遅延時間DTを算出する(図7、8のS25)。
仮想マシンVM1の起動予定の際には、既に、仮想マシンVM1が起動したときの実績データが十セデータログTBL6に蓄積されているので、起動時刻チューニングプログラムは、その実績データの起動処理時間を参照して、予測遅延時間を取得する。
その後、仮想マシンVM1が起動された時、不足メモリ量とメモリオーバコミットの程度を取得し実績データログに記憶する。
[VM4の起動]
次に、自動起動制御スケジュールTBL4によれば、仮想マシンVM4の起動予定時刻では、既に、仮想マシンVM2,VM3,VM1が起動済みである。そこで、起動時刻チューニングプログラムは、仮想マシンVM4の起動予定時刻での予測不足メモリ量と予測オーバコミットの程度を次のとおり算出する(図8のS23)。
予測不足メモリ量=割当メモリ量(12GB)−予測空きメモリ量(0GB)=12GB
予測オーバコミット率=割当予定メモリ総量(68GB)÷実装メモリ総量(32GB)=68/32=212.5%
そこで、起動時刻チューニングプログラムは、図14の起動処理時間実績データログを検索し、予測した不足メモリ量(12GB)と相関する不足メモリ量と関連付けられた起動処理時間BT004(実績No.004)を抽出する(図7、8のS24_B)。もし、この予測不足メモリ量と相関するログが複数ある場合は、メモリコミットメントの程度(メモリコミットメント率または量)が相関するログの起動処理時間を抽出する。そして、抽出した起動処理時間BT004から、実績データログ内の予測不足メモリ量=0のログの起動処理時間の平均値を減算して、予測遅延時間DTを算出する(図8のS24,25)。
仮想マシンVM4の起動予定の際にも、既に、仮想マシンVM4が起動したときの実績データが十セデータログTBL6に蓄積されているので、起動時刻チューニングプログラムは、その実績データの起動処理時間を参照して、予測遅延時間を取得する。
その後、仮想マシンVM4が起動された時、不足メモリ量とメモリオーバコミットの程度を取得し実績データログに記憶する。
[第1、第2の起動制御の変形例]
複数の仮想マシンの調整された起動時刻が短時間の間に集中する場合、それぞれの調整起動時刻が起動処理時間の間重ならないように、調整起動時刻を再調整するのが好ましい。複数の仮想マシンの起動処理が重なると、必ずしも実績データログと同じ起動処理時間の遅延時間になるとは限らないからである。
または、所定の短時間の間に起動時刻が集中する複数の仮想マシンを一つの仮想マシンにまとめて、実績データログの記録と、起動時刻の調整を行ってもよい。たとえば、前述の例では、仮想マシンVM1,VM4は08:00と08:10と短時間の間に集中している。この場合は、仮想マシンVM1+VM4と見なして、不足するメモリ量の総和と、メモリオーバコミットの程度とを両仮想マシンの起動処理時間と関連付けて実績データログに記録し、起動時刻の調整タイミングでは、その実績データログを参照して、両仮想マシンの起動時刻を調整する。
[起動処理時間実績データを利用するメリット]
上記の実施の形態の第2の起動制御では、起動処理時間実績データを蓄積し、実績データから起動処理時間の遅延時間を参照して起動予定時刻を調整する。実績データを利用するメリットは次のとおりである。
仮想マシンの起動処理時間の遅延時間BT2は、起動時に不足するメモリ量(他のVMから奪うメモリ量)が多ければより長くなる傾向がある。なぜなら、不足するメモリ量が多くなればハイパーバイザが他のVMから奪う処理時間が長くなるからである。ただし、メモリオーバコミット率や量が高ければ、ハイパーバイザがメモリ制御で忙しくなるので遅延時間BT2はより長くなる傾向がある。さらに、ハイパーバイザがスワップアウトにより不足するメモリ量を確保する処理では、外部ストレージへのアクセス頻度に依存して処理時間が変動する。起動済み仮想マシンからのアクセス回数が多ければ新たに起動する仮想マシンのためのスワップアウト処理に時間がかかるからである。また、起動済み仮想マシンによるサービスシステムが多忙か否かによっても、CPUの処理量が変動し、遅延時間が変動する場合がある。
したがって、実験により図15のように予め不足するメモリ量に依存して遅延時間を見積もっていても、実際に稼働している物理マシンや外部ストレージやIO制御装置、そしてサービスシステムなどの様々な要因によって、起動処理時間の遅延時間BT2が変動する。そのような理由から、実績データを蓄積しておき、起動時の状況が相関する実績データの起動処理時間から遅延時間BT2を予測するのが望ましい。
但し、起動予定時刻を調整する場合に、起動時刻チューニングプログラムが、不足するメモリ量に応じて予測遅延時間を計算で見積もり、起動予定時刻を予測遅延時間だけ早めるようにしても、起動処理が完了する時刻が予定起動時刻に近づくという一定の効果は期待できる。
以上のとおり、本実施の形態によれば、仮想マシンの自動起動制御処理のスケジュールの精度を高めることができ、スケジュール通りに仮想マシンの起動処理を完了することができる。
以上の実施の形態をまとめると,次の付記のとおりである。
(付記1)
仮想マシンを生成可能な情報処理装置上で仮想マシンが起動される際の、前記情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と起動する仮想マシンに割り当てられるメモリ量の和に基づく第1のメモリ量と、前記起動する仮想マシンの起動に要した起動処理時間と、を関連付けた起動処理実績データを記憶部に記憶し、
新たな仮想マシンを所定の起動タイミングで起動する際に、前記情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と前記新たに起動する仮想マシンに割り当てられるメモリ量の和に基づく第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定すること、
を含む処理をコンピュータに実行させる起動制御プログラム。
(付記2)
前記第1のメモリ量は、前記起動する仮想マシンの起動の為に起動済みの他の仮想マシンから取得するメモリ量であり、
前記第2のメモリ量は、前記新たな仮想マシンの起動の為に起動済みの他の仮想マシンから取得するメモリ量である、付記1に記載の起動制御プログラム。
(付記3)
前記記憶することは、前記第1のメモリ量に加えて、前記起動する仮想マシンの起動後のメモリの第1のオーバコミットの程度も、前記起動処理時間と関連付けて記憶部に記憶することを有し、
前記決定する処理において、前記第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間のうち、さらに、前記新たな仮想マシンの起動後のメモリの第2のオーバコミットの程度と相関を有する前記第1のオーバコミットの程度に関連付けられる前記起動処理時に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定する、付記1または2に記載の起動制御プログラム。
(付記4)
前記第1のオーバコミットの程度及び前記第2のオーバコミットの程度は、
複数の仮想マシンに割り当てたメモリ総量の、前記情報処理装置が実装するメモリ総量に対する比率である、オーバコミット率である、付記3に記載の起動制御プログラム。
(付記5)
前記第1のオーバコミットの程度及び前記第2のオーバコミットの程度は、
複数の仮想マシンに割り当てたメモリ総量から、前記情報処理装置が実装するメモリ総量を減じたメモリ量である、付記3に記載の起動制御プログラム。
(付記6)
前記決定する処理は、前記起動処理実績データ内に前記第2のメモリ量と相関を有する前記第1のメモリ量が存在しない場合、前記新たな仮想マシンを起動する際に前記他の仮想マシンから取得する第3のメモリ量に対応する見積もり遅延時間から、前記第2のメモリ量と前記第3のメモリ量との比率に応じて前記新たな仮想マシンの起動処理の見積もり遅延時間を決定し、前記決定した見積もり遅延時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定する、付記1に記載の起動制御プログラム。
(付記7)
前記決定する処理は、前記起動タイミングより前記起動処理時間に含まれる遅延時間だけ前の時刻に前記起動処理を開始するタイミングを決定する、付記1に記載の起動制御プログラム。
(付記8)
前記決定する処理は、前記起動タイミングを規定した起動制御スケジュールが変更された後と、前記情報処理装置で仮想マシンの起動処理及び停止処理が行われた後に、行われる、付記1に記載の起動制御プログラム。
(付記9)
前記新たに仮想マシンを起動する際に前記起動済みの他の仮想マシンから取得するメモリ量がゼロの場合、前記新たな仮想マシンの起動処理を開始するタイミングを、前記所定の起動タイミングのまま変更しない、付記2に記載の起動制御プログラム。
(付記10)
仮想マシンを生成可能な情報処理装置上で仮想マシンが起動される際の、前記情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と起動する仮想マシンに割り当てられるメモリ量の和に基づく第1のメモリ量と、前記起動する仮想マシンの起動に要した起動処理時間と、を関連付けた起動処理実績データを記憶部に記憶し、
新たな仮想マシンを所定の起動タイミングで起動する際に、前記情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と前記新たに起動する仮想マシンに割り当てられるメモリ量の和に基づく第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定すること、
をコンピュータが実行する起動制御方法。
(付記11)
仮想マシンを生成可能な情報処理装置上で仮想マシンが起動される際の、前記情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と起動する仮想マシンに割り当てられるメモリ量の和に基づく第1のメモリ量と、前記起動する仮想マシンの起動に要した起動処理時間と、を関連付けた起動処理実績データを記憶する記憶部と、
新たな仮想マシンを所定の起動タイミングで起動する際に、前記情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と前記新たに起動する仮想マシンに割り当てられるメモリ量の和に基づく第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定する起動タイミング決定部と、
を有する起動制御装置。
(付記12)
仮想マシンを生成可能な情報処理装置上で仮想マシンが起動される際の、前記仮想マシンの起動の為に起動済みの他の仮想マシンから取得する第1のメモリ量と、起動する前記仮想マシンの起動に要した起動処理時間と、を関連付けた起動処理実績データを記憶部に記憶すること、
新たな仮想マシンを所定の起動タイミングで起動する際に、前記新たな仮想マシンの起動の為に起動済みの他の仮想マシンから取得する第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定すること、
を含む処理をコンピュータに実行させる起動制御プログラム。
(付記13)
仮想マシンを生成可能な情報処理装置上で仮想マシンが起動される際の、前記仮想マシンの起動の為に起動済みの他の仮想マシンから取得する第1のメモリ量と、起動する前記仮想マシンの起動に要した起動処理時間と、を関連付けた起動処理実績データを記憶部に記憶すること、
新たな仮想マシンを所定の起動タイミングで起動する際に、前記新たな仮想マシンの起動の為に起動済みの他の仮想マシンから取得する第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定すること、
をコンピュータが実行する起動制御方法。
(付記14)
仮想マシンを生成可能な情報処理装置上で仮想マシンが起動される際の、前記仮想マシンの起動の為に起動済みの他の仮想マシンから取得する第1のメモリ量と、起動する前記仮想マシンの起動に要した起動処理時間と、を関連付けた起動処理実績データを記憶する記憶部と、
新たな仮想マシンを所定の起動タイミングで起動する際に、前記新たな仮想マシンの起動の為に起動済みの他の仮想マシンから取得する第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定する起動タイミング決定部と、
を有する起動制御装置。
(付記15)
仮想マシンを生成可能な情報処理装置上で仮想マシンが起動される際の、前記仮想マシンの起動の為に起動済みの他の仮想マシンから取得する第1のメモリ量と、起動する前記仮想マシンの起動に要した起動処理時間と、を関連付けた起動処理実績データを記憶部に記憶すること、
新たな仮想マシンを所定の起動タイミングで起動する際に、前記新たな仮想マシンの起動の為に起動済みの他の仮想マシンから取得する第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定すること、
を有する処理をコンピュータに実行させる起動制御プログラム。
PM:物理マシン、情報処理装置
VM:仮想マシン
HV:ハイパーバイザ、仮想化基盤ソフトウエア
G_OS:ゲストOS
A_PR:管理プログラム
BC_PR:起動制御プログラム、ブートコントロールプログラム
S20:起動時刻チューニングプログラム
10、20:CPU
12、22:メモリ、RAM
14、24:I/O、I/Oスイッチ
18、28:ストレージ、補助記憶装置、HDD
TBL1:起動処理イベントログ
TBL2:仮想メモリ割当総量のデータの例
TBL3:実装メモリ総量のデータの例
TBL4:自動起動制御スケジュールの例
TBL5:VM割当(または割当予定)メモリ量の例
TBL6:起動処理時間データログの例
TBL7:見積もり遅延時間の例

Claims (12)

  1. 仮想マシンを生成可能な情報処理装置上で仮想マシンが起動される際の、前記情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と起動する仮想マシンに割り当てられるメモリ量の和に基づく第1のメモリ量と、前記起動する仮想マシンの起動に要した起動処理時間と、を関連付けた起動処理実績データを記憶部に記憶し、
    新たな仮想マシンを所定の起動タイミングで起動する際に、前記情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と前記新たに起動する仮想マシンに割り当てられるメモリ量の和に基づく第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定すること、
    を含む処理をコンピュータに実行させる起動制御プログラム。
  2. 前記第1のメモリ量は、前記起動する仮想マシンの起動の為に起動済みの他の仮想マシンから取得するメモリ量であり、
    前記第2のメモリ量は、前記新たな仮想マシンの起動の為に起動済みの他の仮想マシンから取得するメモリ量である、請求項1に記載の起動制御プログラム。
  3. 前記記憶することは、前記第1のメモリ量に加えて、前記起動する仮想マシンの起動後のメモリの第1のオーバコミットの程度も、前記起動処理時間と関連付けて記憶部に記憶することを有し、
    前記決定する処理において、前記第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間のうち、さらに、前記新たな仮想マシンの起動後のメモリの第2のオーバコミットの程度と相関を有する前記第1のオーバコミットの程度に関連付けられる前記起動処理時に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定する、請求項1または2に記載の起動制御プログラム。
  4. 前記第1のオーバコミットの程度及び前記第2のオーバコミットの程度は、
    複数の仮想マシンに割り当てたメモリ総量の、前記情報処理装置が実装するメモリ総量に対する比率である、オーバコミット率である、請求項3に記載の起動制御プログラム。
  5. 前記第1のオーバコミットの程度及び前記第2のオーバコミットの程度は、
    複数の仮想マシンに割り当てたメモリ総量から、前記情報処理装置が実装するメモリ総量を減じたメモリ量である、請求項3に記載の起動制御プログラム。
  6. 前記決定する処理は、前記起動処理実績データ内に前記第2のメモリ量と相関を有する前記第1のメモリ量が存在しない場合、前記新たな仮想マシンを起動する際に前記他の仮想マシンから取得する第3のメモリ量に対応する見積もり遅延時間から、前記第2のメモリ量と前記第3のメモリ量との比率に応じて前記新たな仮想マシンの起動処理の見積もり遅延時間を決定し、前記決定した見積もり遅延時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定する、請求項1に記載の起動制御プログラム。
  7. 前記新たに仮想マシンを起動する際に前記起動済みの他の仮想マシンから取得するメモリ量がゼロの場合、前記新たな仮想マシンの起動処理を開始するタイミングを、前記所定の起動タイミングのまま変更しない、請求項2に記載の起動制御プログラム。
  8. 仮想マシンを生成可能な情報処理装置上で仮想マシンが起動される際の、前記情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と起動する仮想マシンに割り当てられるメモリ量の和に基づく第1のメモリ量と、前記起動する仮想マシンの起動に要した起動処理時間と、を関連付けた起動処理実績データを記憶部に記憶し、
    新たな仮想マシンを所定の起動タイミングで起動する際に、前記情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と前記新たに起動する仮想マシンに割り当てられるメモリ量の和に基づく第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定すること、
    をコンピュータが実行する起動制御方法。
  9. 仮想マシンを生成可能な情報処理装置上で仮想マシンが起動される際の、前記情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と起動する仮想マシンに割り当てられるメモリ量の和に基づく第1のメモリ量と、前記起動する仮想マシンの起動に要した起動処理時間と、を関連付けた起動処理実績データを記憶する記憶部と、
    新たな仮想マシンを所定の起動タイミングで起動する際に、前記情報処理装置上に起動済みの仮想マシンに割り当てられたメモリ量と前記新たに起動する仮想マシンに割り当てられるメモリ量の和に基づく第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定する起動タイミング決定部と、
    を有する起動制御装置。
  10. 仮想マシンを生成可能な情報処理装置上で仮想マシンが起動される際の、前記仮想マシンの起動の為に起動済みの他の仮想マシンから取得する第1のメモリ量と、起動する前記仮想マシンの起動に要した起動処理時間と、を関連付けた起動処理実績データを記憶部に記憶すること、
    新たな仮想マシンを所定の起動タイミングで起動する際に、前記新たな仮想マシンの起動の為に起動済みの他の仮想マシンから取得する第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定すること、
    を含む処理をコンピュータに実行させる起動制御プログラム。
  11. 仮想マシンを生成可能な情報処理装置上で仮想マシンが起動される際の、前記仮想マシンの起動の為に起動済みの他の仮想マシンから取得する第1のメモリ量と、起動する前記仮想マシンの起動に要した起動処理時間と、を関連付けた起動処理実績データを記憶部に記憶すること、
    新たな仮想マシンを所定の起動タイミングで起動する際に、前記新たな仮想マシンの起動の為に起動済みの他の仮想マシンから取得する第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定すること、
    をコンピュータが実行する起動制御方法。
  12. 仮想マシンを生成可能な情報処理装置上で仮想マシンが起動される際の、前記仮想マシンの起動の為に起動済みの他の仮想マシンから取得する第1のメモリ量と、起動する前記仮想マシンの起動に要した起動処理時間と、を関連付けた起動処理実績データを記憶する記憶部と、
    新たな仮想マシンを所定の起動タイミングで起動する際に、前記新たな仮想マシンの起動の為に起動済みの他の仮想マシンから取得する第2のメモリ量と相関を有する前記第1のメモリ量に関連付けられた前記起動処理時間に基づいて、前記新たな仮想マシンの起動処理を開始するタイミングを決定する起動タイミング決定部と、
    を有する起動制御装置。
JP2015134339A 2015-07-03 2015-07-03 起動制御プログラム、起動制御方法及び起動制御装置 Expired - Fee Related JP6589417B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015134339A JP6589417B2 (ja) 2015-07-03 2015-07-03 起動制御プログラム、起動制御方法及び起動制御装置
US15/190,293 US10055244B2 (en) 2015-07-03 2016-06-23 Boot control program, boot control method, and boot control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015134339A JP6589417B2 (ja) 2015-07-03 2015-07-03 起動制御プログラム、起動制御方法及び起動制御装置

Publications (2)

Publication Number Publication Date
JP2017016505A true JP2017016505A (ja) 2017-01-19
JP6589417B2 JP6589417B2 (ja) 2019-10-16

Family

ID=57683051

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015134339A Expired - Fee Related JP6589417B2 (ja) 2015-07-03 2015-07-03 起動制御プログラム、起動制御方法及び起動制御装置

Country Status (2)

Country Link
US (1) US10055244B2 (ja)
JP (1) JP6589417B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019217743A (ja) * 2018-06-22 2019-12-26 富士ゼロックス株式会社 情報処理装置、画像形成装置及びプログラム
JP2024078783A (ja) * 2022-11-30 2024-06-11 株式会社日立ビルシステム 情報処理装置及びアプリケーション起動制御方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11336294B2 (en) * 2016-06-10 2022-05-17 Apple Inc. Hybrid, adaptive virtual memory compression
US20180129524A1 (en) * 2016-11-10 2018-05-10 International Business Machines Corporation Managing pre-allocated virtual machine instance pools
US11792307B2 (en) 2018-03-28 2023-10-17 Apple Inc. Methods and apparatus for single entity buffer pool management
JP7067270B2 (ja) * 2018-05-25 2022-05-16 富士通株式会社 情報処理装置,ロードプログラムおよびロード方法
US10846224B2 (en) 2018-08-24 2020-11-24 Apple Inc. Methods and apparatus for control of a jointly shared memory-mapped region
US11558348B2 (en) 2019-09-26 2023-01-17 Apple Inc. Methods and apparatus for emerging use case support in user space networking
US11477123B2 (en) 2019-09-26 2022-10-18 Apple Inc. Methods and apparatus for low latency operation in user space networking
US11829303B2 (en) 2019-09-26 2023-11-28 Apple Inc. Methods and apparatus for device driver operation in non-kernel space
US11748133B2 (en) * 2020-04-23 2023-09-05 Netapp, Inc. Methods and systems for booting virtual machines in the cloud
US11606302B2 (en) 2020-06-12 2023-03-14 Apple Inc. Methods and apparatus for flow-based batching and processing
US11775359B2 (en) 2020-09-11 2023-10-03 Apple Inc. Methods and apparatuses for cross-layer processing
US11954540B2 (en) 2020-09-14 2024-04-09 Apple Inc. Methods and apparatus for thread-level execution in non-kernel space
US11799986B2 (en) 2020-09-22 2023-10-24 Apple Inc. Methods and apparatus for thread level execution in non-kernel space
US11876719B2 (en) 2021-07-26 2024-01-16 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11882051B2 (en) 2021-07-26 2024-01-23 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11966748B2 (en) * 2021-09-30 2024-04-23 Ati Technologies Ulc Dynamic boot configuration
CN114546637B (zh) * 2022-01-16 2024-09-06 华东师范大学 一种类型有限的虚拟机分配方法
US20240220294A1 (en) * 2022-12-28 2024-07-04 Microsoft Technology Licensing, Llc VM Migration Using Memory Pointers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010532034A (ja) * 2007-06-27 2010-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想マシンのメモリを管理するためのシステム、方法、及びコンピュータ・プログラム
JP2013041397A (ja) * 2011-08-15 2013-02-28 Hitachi Systems Ltd 仮想サーバ制御システム及びプログラム
WO2014091580A1 (ja) * 2012-12-12 2014-06-19 株式会社東芝 クラウドシステム管理装置、クラウドシステム、再配置方法、及びプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0728657A (ja) 1993-07-09 1995-01-31 Hitachi Ltd 仮想計算機における無人化システム
US5842226A (en) * 1994-09-09 1998-11-24 International Business Machines Corporation Virtual memory management for a microkernel system with multiple operating systems
DE10133962A1 (de) * 2001-07-17 2003-02-06 Bosch Gmbh Robert Verfahren zur Synchronisation und Vorrichtung
US7284084B2 (en) * 2004-08-30 2007-10-16 International Business Machines Corporation ROM scan memory expander
WO2011002735A1 (en) * 2009-07-01 2011-01-06 Carnegie Mellon University Methods and apparatuses for monitoring energy consumption and related operations
JP5538310B2 (ja) 2011-06-27 2014-07-02 株式会社エヌ・ティ・ティ・データ 仮想化システム、および仮想化方法
JP5632403B2 (ja) 2012-01-24 2014-11-26 日本電信電話株式会社 タスク管理システム、タスク管理サーバ、タスク管理方法、及びタスク管理プログラム
US9569223B2 (en) * 2013-02-13 2017-02-14 Red Hat Israel, Ltd. Mixed shared/non-shared memory transport for virtual machines
US10747563B2 (en) * 2014-03-17 2020-08-18 Vmware, Inc. Optimizing memory sharing in a virtualized computer system with address space layout randomization (ASLR) enabled in guest operating systems wherein said ASLR is enable during initialization of a virtual machine, in a group, when no other virtual machines are active in said group

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010532034A (ja) * 2007-06-27 2010-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーション 仮想マシンのメモリを管理するためのシステム、方法、及びコンピュータ・プログラム
JP2013041397A (ja) * 2011-08-15 2013-02-28 Hitachi Systems Ltd 仮想サーバ制御システム及びプログラム
WO2014091580A1 (ja) * 2012-12-12 2014-06-19 株式会社東芝 クラウドシステム管理装置、クラウドシステム、再配置方法、及びプログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019217743A (ja) * 2018-06-22 2019-12-26 富士ゼロックス株式会社 情報処理装置、画像形成装置及びプログラム
JP7176247B2 (ja) 2018-06-22 2022-11-22 富士フイルムビジネスイノベーション株式会社 情報処理装置、画像形成装置及びプログラム
JP2024078783A (ja) * 2022-11-30 2024-06-11 株式会社日立ビルシステム 情報処理装置及びアプリケーション起動制御方法

Also Published As

Publication number Publication date
US20170003977A1 (en) 2017-01-05
US10055244B2 (en) 2018-08-21
JP6589417B2 (ja) 2019-10-16

Similar Documents

Publication Publication Date Title
JP6589417B2 (ja) 起動制御プログラム、起動制御方法及び起動制御装置
TWI752994B (zh) 應用的擴容方法、裝置和系統
JP5544967B2 (ja) 仮想マシン管理プログラム及び仮想マシン管理装置
US9201695B2 (en) Computer system and control method for acquiring required resources
US9367340B2 (en) Resource management method and apparatus for virtual machine system, and virtual machine system
US20140280956A1 (en) Methods and systems to manage computer resources in elastic multi-tenant cloud computing systems
JP2012094030A (ja) 計算機システム及び処理制御方法
JP2012221273A (ja) 動的にリソースを割り当てる方法、システム及びプログラム
US20160239322A1 (en) Computer system and control method for computer system
WO2011155233A1 (ja) クラスタ構成管理方法、管理装置及びプログラムを格納した記憶媒体
CN107026802A (zh) 一种资源管理方法及设备
US20160196157A1 (en) Information processing system, management device, and method of controlling information processing system
CN110750336B (zh) 一种OpenStack虚拟机内存热扩容方法
CN110750330A (zh) 一种虚拟机创建方法、系统、电子设备及存储介质
JP2015075898A (ja) 処理再開方法、処理再開プログラムおよび情報処理システム
Zhang et al. CloudGC: Recycling idle virtual machines in the cloud
JP7035858B2 (ja) マイグレーション管理プログラム、マイグレーション方法およびマイグレーションシステム
CN110704195B (zh) 一种cpu调整方法、服务器及计算机可读存储介质
JP2014229253A (ja) マシン管理システム、管理サーバ、マシン管理方法、及びプログラム
KR102014246B1 (ko) 리소스 통합관리를 위한 메소스 처리 장치 및 방법
JP7104327B2 (ja) 情報処理装置、仮想マシン管理プログラムおよび仮想マシン管理方法
CN115794305B (zh) 虚拟机内存的调整方法和装置、存储介质及电子装置
JP6168799B2 (ja) 仮想計算機システム
CN118170549A (zh) 资源分配方法、装置及电子设备
CN105868012A (zh) 处理用户请求的方法和装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180413

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190702

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190808

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190902

R150 Certificate of patent or registration of utility model

Ref document number: 6589417

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees