JP2018060378A - 起動制御プログラム、起動制御方法及び起動制御装置 - Google Patents
起動制御プログラム、起動制御方法及び起動制御装置 Download PDFInfo
- Publication number
- JP2018060378A JP2018060378A JP2016197582A JP2016197582A JP2018060378A JP 2018060378 A JP2018060378 A JP 2018060378A JP 2016197582 A JP2016197582 A JP 2016197582A JP 2016197582 A JP2016197582 A JP 2016197582A JP 2018060378 A JP2018060378 A JP 2018060378A
- Authority
- JP
- Japan
- Prior art keywords
- virtual machine
- activation
- day
- virtual machines
- point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 38
- 230000004913 activation Effects 0.000 claims description 152
- 238000012545 processing Methods 0.000 claims description 40
- 230000008569 process Effects 0.000 claims description 24
- 238000001514 detection method Methods 0.000 abstract 1
- 238000004364 calculation method Methods 0.000 description 38
- 230000010365 information processing Effects 0.000 description 36
- 238000010586 diagram Methods 0.000 description 14
- 238000004891 communication Methods 0.000 description 12
- 238000012544 monitoring process Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 10
- 230000001788 irregular Effects 0.000 description 6
- 230000003442 weekly effect Effects 0.000 description 5
- 235000019580 granularity Nutrition 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000010454 slate Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30079—Pipeline control instructions, e.g. multicycle NOP
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
Abstract
【課題】仮想マシンの起動待ち時間を低減すること。
【解決手段】起動制御装置10は、複数の仮想マシンの稼働実績情報を参照して、複数の仮想マシンそれぞれの起動後、該仮想マシンに対する特定のアクセスが検知されるまでの時間を特定し、特定した時間に基づき、仮想マシンの起動順序を決定し、決定した起動順序にしたがって、複数の仮想マシンの起動を制御する。
【選択図】図2
【解決手段】起動制御装置10は、複数の仮想マシンの稼働実績情報を参照して、複数の仮想マシンそれぞれの起動後、該仮想マシンに対する特定のアクセスが検知されるまでの時間を特定し、特定した時間に基づき、仮想マシンの起動順序を決定し、決定した起動順序にしたがって、複数の仮想マシンの起動を制御する。
【選択図】図2
Description
本発明は、起動制御プログラム、起動制御方法及び起動制御装置に関する。
クラウドサービスの一形態として、プライベートクラウドと呼ばれるものがある。例えば、プライベートクラウドでは、企業に所属する関係者等のユーザのデスクトップ環境等が仮想マシンにより実現される場合がある。
ところが、プライベートクラウドでは、コンピュータリソースの割り当てが企業内に閉じられるので、仮想マシンが起動される時間が特定の時間、例えば始業時間等に集中する場合がある。
このような負荷に対応するために、一例として、起動停止の傾向を参照して負荷が上昇しにくいホストに仮想マシンを配備したり、あるいは起動時に負荷が小さいホストに仮想マシンを移動してから起動したりすることが提案されている。
しかしながら、上記の技術では、仮想マシンが起動するまでの待ち時間が発生する場合がある。
すなわち、上記の従来技術では、同一のホストに対する仮想マシンの起動命令が同一の時間に重なるのを抑制しようとするものであるが、これを完全に抑制するのは現実的に困難な場合がある。そして、同一のホストに対する仮想マシンの起動命令が同一の時間に重なる場合、複数の仮想マシンの間には起動される順序に差が生じる。例えば、起動された段階では直ちにユーザにより使用されない仮想マシンが先に起動されたり、あるいは起動された段階でユーザにより使用される仮想マシンが後に起動されたりするケースが起こり得る。このように仮想マシンの起動命令が行われた時間から仮想マシンが起動されるまでに待ち時間が発生する場合がある。
1つの側面では、本発明は、仮想マシンの起動待ち時間を低減できる起動制御プログラム、起動制御方法及び起動制御装置を提供することを目的とする。
一態様では、複数の仮想マシンの稼働実績情報を参照して、前記複数の仮想マシンそれぞれの起動後、該仮想マシンに対する特定のアクセスが検知されるまでの時間を特定し、特定した前記時間に基づき、前記仮想マシンの起動順序を決定し、決定した前記起動順序にしたがって、前記複数の仮想マシンの起動を制御する処理と、をコンピュータに実行させる。
仮想マシンの起動待ち時間を低減できる。
以下に添付図面を参照して本願に係る起動制御プログラム、起動制御方法及び起動制御装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システム構成]
図1は、実施例1に係るクラウドシステムの構成例を示す図である。図1に示すクラウドシステム1は、クライアント端末30A〜30Cに対し、情報処理装置20が実行するサーバの仮想化を通じてIaaS(Infrastructure as a Service)などのクラウドサービス、いわゆるプライベートクラウドを提供するものである。
図1は、実施例1に係るクラウドシステムの構成例を示す図である。図1に示すクラウドシステム1は、クライアント端末30A〜30Cに対し、情報処理装置20が実行するサーバの仮想化を通じてIaaS(Infrastructure as a Service)などのクラウドサービス、いわゆるプライベートクラウドを提供するものである。
図1に示すクラウドシステム1には、起動制御装置10と、情報処理装置20と、クライアント端末30A〜30Cとが収容される。なお、図1には、説明の便宜上、3つのクライアント端末を図示したが、これはあくまで例示であり、クラウドシステム1が任意の数のクライアント端末を収容できるのは言うまでもない。なお、以下では、クライアント端末30A〜30Cの各装置を総称する場合には「クライアント端末30」と記載する場合がある。
これら起動制御装置10及びクライアント端末30の間は、ネットワークNWを介して相互に通信可能に接続される。このネットワークNWには、有線または無線を問わず、インターネット(Internet)を始め、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網を採用できる。
クライアント端末30は、ユーザによって使用される端末装置である。ここで言う「ユーザ」とは、クラウドシステム1を運用する企業等の組織に所属する関係者全般を指し、例えば、サーバの仮想化によって実現される仮想マシンが提供する機能、例えばデスクトップ環境等を利用する者が挙げられる。
一実施形態として、クライアント端末30には、パーソナルコンピュータを採用できる他、各種の携帯端末装置をクライアント端末30として採用することもできる。例えば、携帯端末装置には、スマートフォン、携帯電話機やPHS(Personal Handyphone System)などの移動体通信端末、さらには、PDA(Personal Digital Assistants)などのスレート端末などがその範疇に含まれる。このように任意の種類の情報処理装置を採用できるクライアント端末30は、一例として、シンクライアントやゼロクライアントとして実装される。
情報処理装置20は、クライアント端末30にIaaS等のサービスを提供するコンピュータである。
一実施形態として、情報処理装置20は、1つ以上のホストマシンを含んで構築される。さらに、情報処理装置20には、コンピュータの仮想化を実現する仮想化ソフトウェア、例えばハイパーバイザ等のソフトウェアが実装される。このような実装の下、情報処理装置20は、起動制御装置10から仮想マシンの起動命令を受け付けた場合、当該仮想マシンに対し、ICT(Information and Communication Technology)リソースがプール化されたリソースプールから各種のリソースを割り当てる。例えば、情報処理装置20は、起動命令が受け付けられた仮想マシンに設定されたテンプレート、例えばCPU(Central Processing Unit)の性能やディスクの容量などのタイプに対応するCPU、メモリやディスクの使用率を割り当てる。この他、情報処理装置20は、上記の仮想マシンにネットワークのリソース、例えばNIC(Network Interface Card)を割り当てる。これらリソースの割り当ての後、情報処理装置20は、仮想マシンのディスクイメージを作成し、当該ディスクイメージを用いて仮想マシンを起動する。
起動制御装置10は、上記のプライベートクラウドの一環として、クライアント端末30が利用する仮想マシンを手動または自動により起動させる起動制御サービスを提供するコンピュータである。
一実施形態として、起動制御装置10は、パッケージソフトウェア又はオンラインソフトウェアとして、上記の起動制御サービスに関する機能を実現する起動制御プログラムを所望のコンピュータにインストールさせることによって実装できる。ここでは、図1には、説明の便宜上、上記の起動制御サービスに関する機能が抜粋された起動制御装置10が情報処理装置20とは別に実装される場合を例示するが、当該機能が情報処理装置20に実装されることとしてもかまわない。その場合、一例として、情報処理装置20上で仮想化ソフトウェアのゲストOS(Operating System)の1つとして実行されるIaaS管理用のソフトウェアに上記の起動制御サービスに関する機能をアドオンさせることができる。
なお、クラウドシステム1は、インフラ2が企業等の当事者により運営されるオンプレミス型として実装されることとしてもよいし、また、インフラ2がクラウド事業者等の第三者により運営されるホステッド型として実装されることとしてもかまわない。
[起動制御装置10の構成]
図2は、実施例1に係る起動制御装置10の機能的構成の一例を示すブロック図である。図2に示すように、起動制御装置10は、通信I/F(InterFace)部11と、記憶部13と、制御部15とを有する。なお、図2には、データの授受の関係を表す実線が示されているが、図2には、説明の便宜上、最小限の部分が示されているに過ぎない。すなわち、各処理部に対するデータの入出力は、図示の例に限定されず、図示以外のデータの入出力、例えば処理部及び処理部の間、処理部及びデータの間、並びに、処理部及び外部装置の間のデータの入出力が行われることを妨げない。
図2は、実施例1に係る起動制御装置10の機能的構成の一例を示すブロック図である。図2に示すように、起動制御装置10は、通信I/F(InterFace)部11と、記憶部13と、制御部15とを有する。なお、図2には、データの授受の関係を表す実線が示されているが、図2には、説明の便宜上、最小限の部分が示されているに過ぎない。すなわち、各処理部に対するデータの入出力は、図示の例に限定されず、図示以外のデータの入出力、例えば処理部及び処理部の間、処理部及びデータの間、並びに、処理部及び外部装置の間のデータの入出力が行われることを妨げない。
通信I/F部11は、他の装置、例えば情報処理装置20やクライアント端末30との間で通信制御を行うインタフェースである。
一実施形態として、通信I/F部11には、LANカードなどのネットワークインタフェースカードを採用できる。例えば、通信I/F部11は、クライアント端末30から各種の指示入力を受け付けることができる。このような入力の一例として、仮想マシンの起動要求の他、情報処理装置20上で動作する仮想マシンに対する各種の操作などが挙げられる。また、通信I/F部11は、情報処理装置20上で動作する仮想マシンの出力をクライアント端末30に出力することができる。このような出力の一例として、クライアント端末30からの指示入力または仮想マシンが実行中であるアプリケーションプログラム等にしたがって更新されるデスクトップ画面の表示データもしくは更新前後の差分の表示データなどが挙げられる。
記憶部13は、制御部15で実行されるOSを始め、上記の起動制御サービスに関する機能を実現するアプリケーションプログラムなどの各種プログラムに用いられるデータを記憶する記憶デバイスである。
一実施形態として、記憶部13は、起動制御装置10における補助記憶装置として実装することができる。例えば、記憶部13には、HDD(Hard Disk Drive)、光ディスクやSSD(Solid State Drive)などを採用できる。なお、記憶部13は、必ずしも補助記憶装置として実装されずともよく、起動制御装置10における主記憶装置として実装することもできる。この場合、記憶部13には、各種の半導体メモリ素子、例えばRAM(Random Access Memory)やフラッシュメモリを採用できる。
記憶部13は、制御部15で実行されるプログラムに用いられるデータの一例として、起動設定データ13aと、起動履歴データ13bと、起動優先度データ13cとを記憶する。これらのデータ以外にも、次のようなデータを記憶することもできる。例えば、記憶部13は、ユーザに付与されたアカウント情報やクライアント端末30のネットワークアドレスなどの情報も併せて記憶することもできる。
起動設定データ13aは、仮想マシンを起動する設定に関するデータである。
一実施形態として、起動設定データ13aには、仮想マシンごとに仮想マシンを自動的に起動する設定時刻が対応付けられたデータを採用できる。図3は、起動設定データ13aの一例を示す図である。図3には、User001〜User003の仮想マシン名で識別される仮想マシンに関する3つのレコードが抜粋して示されている。図3に示すように、3つの仮想マシンは、いずれも土曜日および日曜日を休日とし、起動が自動的に行われない設定が行われている点は共通する。これら3つのレコードのうち、上から1番目に示す仮想マシン「User001」のレコードは、月曜日から金曜日までの平日のいずれの曜日においても、仮想マシンが9時00分に自動起動される設定がなされていることを意味する。また、上から2番目に示す仮想マシン「User002」のレコードは、火曜日および木曜日には自動起動が設定されていない一方で、月曜日、水曜日および金曜日には仮想マシンが8時30分に自動起動される設定がなされていることを意味する。さらに、上から3番目に示す仮想マシン「User003」のレコードは、水曜日および木曜日に自動起動が設定されていない一方で、月曜日および火曜日には仮想マシンが9時00分に自動起動され、金曜日には仮想マシンが10時00分に自動起動される設定がなされていることを意味する。なお、ここでは、曜日ごとに仮想マシンの自動起動が設定される場合を例示したが、仮想マシンの自動起動が設定される単位は必ずしも曜日や週次に限定されない。例えば、1つの設定時刻が日ごとに繰り返し用いられることとしてもよいし、日付ごとに設定時刻を記憶することとしてもよいし、第1週、第2週・・・などの週ごとに設定時刻を記憶することもできるし、1月、2月・・・などの月ごとに設定時刻を記憶することもできるし、2015年、2016年などの年ごとに設定時刻を記憶することとしてもかまわない。
起動履歴データ13bは、仮想マシンが起動された履歴に関するデータである。起動履歴データは、起動実績情報の一例である。
一実施形態として、起動履歴データ13bには、仮想マシンごとに仮想マシンが起動された時刻および仮想マシンに対するアクセスが開始された時刻が対応付けられたデータを採用できる。図4は、起動履歴データ13bの一例を示す図である。図4には、User001及びUser002の仮想マシン名で識別される仮想マシンに関する2つのレコードが抜粋して示されている。例えば、上から1番目のレコードは、仮想マシン「User001」が2016年1月4日の8時00分に起動された後、2016年1月4日の8時10分に最初のアクセス、例えばログイン操作等を始めとするユーザ操作が行われたことを意味する。このようなレコードが履歴として保存されることにより、コンピュータは、起動時刻とアクセス開始時刻の時間差が10分間であることを識別することができる。また、上から2番目のレコードは、仮想マシン「User002」が2016年1月4日の9時00分に起動された後、2016年1月4日の12時00分に最初のアクセスが行われたことを意味する。このようなレコードが履歴として保存されることにより、コンピュータは、起動時刻とアクセス開始時刻の時間差が3時間であることを識別することができる。
ここで、図4には、説明の便宜上、1つの仮想マシンにつき1つの起動時刻およびアクセス開始時刻の履歴を示したが、履歴の保存方法はこれに限定されない。例えば、記憶部13は、起動履歴データ13bとして、日、週、月および曜日ごとに各仮想マシンの履歴を記憶することもできるし、日、週、月および曜日ごとの履歴を複数の世代にわたって累積して記憶することもできるし、また、起動時刻およびアクセス開始時刻の代わりに両者の時間差を記憶することもできる。
なお、図3及び図4には、起動設定データ13a及び起動履歴データ13bがテーブル形式で記憶部13に格納される場合を例示したが、これに限定されない。例えば、起動設定データ13aは、XML(Extensible Markup Language)などのマークアップ言語によりタグ形式で記述されるデータであってもよいし、CSV(Comma-Separated Values)などのようにカンマや改行により記述されるデータであってもかまわない。
起動優先度データ13cは、仮想マシンを起動させる優先度に関するデータである。
ここで言う「優先度」とは、仮想マシンの起動が優先される度合いを指し、例えば、ポイントの多寡により表現することができる。例えば、ポイントは、起動時刻およびアクセス開始時刻の時間差によって日、週、月および曜日などのカレンダ属性ごとに定めることができる。詳細は後述するが、ポイントの算出式には、下記の式(1)を用いることができる。下記の式(1)における「加算値」は、起動時刻およびアクセス開始時刻の時間差の多寡により定まる値であり、例えば、時間差が短いほど大きい値を設定し、時間差が長いほど小さい値を設定することができる。このようにポイントの算出に1つ前のポイントを反映するのは、1つの時間断面で優先度を定めるのではなく、履歴の推移により優先度を定めるためである。なお、下記の式(1)における「重み」は、1つ前のポイントに乗算される係数であり、例えば、0よりも大きくかつ1以下となる定数を設定しておくことができる。
最新のポイント=1つ前のポイント*重み+加算値・・・(1)
一実施形態として、起動優先度データ13cには、仮想マシンごとに優先度、例えば上記のポイントが対応付けられたデータを採用できる。ここで、ポイントが日、週、月および曜日などの異なる粒度で算出される場合、記憶部13には、日ポイント、週ポイント、月ポイント、曜日ポイントおよびこれらの総合ポイントが仮想マシンごとに対応付けられたデータが起動優先度データ13cとして記憶される。ここで言う「総合ポイント」とは、日ポイント、週ポイント、月ポイントおよび曜日ポイントに所定の統計処理、例えば合計、相加平均や加重平均などが行われることにより1つに総合されたポイントを指す。なお、ここでは、ポイントが日、週、月および曜日などの異なる粒度で算出される場合を説明したが、必ずしも複数の粒度でポイントが算出されずともよく、日ポイント、週ポイント、月ポイント及び曜日ポイントのうち少なくとも1つを記憶することとしてもかまわない。
制御部15は、各種のプログラムや制御データを格納する内部メモリを有し、これらによって各種の処理を実行するものである。
一実施形態として、制御部15は、中央処理装置、いわゆるCPUとして実装される。なお、制御部15は、必ずしも中央処理装置として実装されずともよく、MPU(Micro Processing Unit)として実装されることとしてもよい。また、制御部15は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
制御部15は、図示しない主記憶装置として実装されるDRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などのRAMのワークエリア上に、上記の起動制御プログラムをプロセスとして展開することにより、下記の処理部を仮想的に実現する。
例えば、制御部15は、図2に示すように、監視部15aと、登録部15bと、算出部15cと、更新部15dと、起動開始部15eと、起動制御部15fとを有する。
監視部15aは、仮想マシンに対するアクセスを監視する処理部である。
一実施形態として、監視部15aは、後述の起動制御部15fの起動命令にしたがって情報処理装置20上で仮想マシンが自動起動された場合、当該仮想マシンに対するクライアント端末30のアクセスの監視を開始する。ここでは、あくまで一例として、仮想マシンを通じてデスクトップ環境がクライアント端末30に提供される場合を想定する。この場合、監視部15aは、ネットワークNWに収容されるネットワーク機器、例えばルータやスイッチなどから、RDP(Remote Desktop Protocol)、SSH(Secure SHell)、VNC(Virtual Network Computing)などのプロトコルで行われる通信のアクセスログを収集する。このアクセスログを用いて、監視部15aは、クライアント端末30及び仮想マシンの間で通信が行われたか否かを監視する。
登録部15bは、仮想マシンに関する起動履歴を登録する処理部である。
一実施形態として、登録部15bは、後述の起動制御部15fの起動命令にしたがって情報処理装置20上で仮想マシンが自動起動された場合、次のような処理を実行する。すなわち、登録部15bは、図示しないOS等から起動時刻を取得する。その後、監視部15aにより当該仮想マシンに対するアクセスが検知された場合、登録部15bは、OS等からアクセス開始時刻を取得する。その上で、登録部15bは、記憶部13に記憶された起動履歴データ13bに新規エントリを作成し、当該新規エントリに仮想マシン、起動時刻およびアクセス開始時刻を対応付けて登録する。なお、ここでは、起動履歴データ13bに対する起動履歴の登録について説明したが、古くなった起動履歴の削除を併せて行うこともできる。
算出部15cは、上記の優先度を算出する処理部である。ここでは、一例として、日ポイントの算出方法について説明し、週ポイント、月ポイント、曜日ポイントの算出方法については図6を用いて後述する。なお、算出部15cは、特定部の一例である。
一側面として、算出部15cは、記憶部13に記憶された起動履歴データ13bを監視する。そして、算出部15cは、起動履歴データ13bに新規エントリが追加される度に、当該新規エントリが追加された日付の翌日の起動順序制御に用いる日ポイントの算出を開始する。以下では、説明の便宜上、日ポイントの算出が実行される本日の日付を「d」と表記し、その前日の日付を「d−1」と表記する一方で、その翌日の日付を「d+1」と表記する場合がある。すなわち、算出部15cは、上記の起動履歴データ13bの新規エントリに含まれる起動時刻およびアクセス開始時刻の時間差を算出する。続いて、算出部15cは、起動時刻およびアクセス開始時刻の時間差から上記の式(1)における加算値、ここでは「日加算値」を導出する。このように日加算値が導出される場合、一例として、図5に示す時間差と日加算値の対応関係を利用することができる。
図5は、時間差と日加算値の対応関係の一例を示す図である。例えば、時間差が10分以内である場合、日加算値は「10」と導出される。また、時間差が10分以降20分以内である場合、日加算値は「6」と導出される。このように時間差が長くなるにしたがって小さい値が日加算値として導出される。そして、時間差が50分以降60分以内である場合、日加算値は「0」と導出される。これを境界に時間差が60分以降に拡大すると、日加算値には負の値が導出される。例えば、時間差が60分以降120分以内である場合、日加算値は「−1」と導出される。そして、時間差が360分以降480以内まで拡大すると、日加算値として導出される値は「−6」まで小さくなる。
このように日加算値が導出された後、算出部15cは、上記の式(1)にしたがって翌日「d+1」の起動順序制御に用いる日ポイントを算出する。すなわち、算出部15cは、先に導出された日加算値を上記の式(1)に記載の「加算値」の項に代入する。さらに、算出部15cは、起動優先度データ13cのエントリに含まれる日ポイントのうち、起動履歴データ13bに新規エントリが追加された仮想マシンと同一の仮想マシンに対応付けられた日ポイントを抽出する。このようにして起動優先度データ13cから抽出される日ポイントは、前日「d−1」に算出されていた日ポイントであって本日「d」の起動順序制御に用いられた日ポイントに対応し、これが上記の式(1)に記載の「1つ前のポイント」の項に代入される。これら日加算値および本日「d」の起動順序制御に用いられた日ポイントが上記の式(1)に代入されることにより、翌日「d+1」の起動順序制御に用いる日ポイントが算出されることになる。
他の側面として、算出部15cは、OS等から参照されたカレンダ時刻の日付が変わる度に、起動設定データ13aを参照して、日付が変わった本日の曜日において自動起動が設定されていない仮想マシンを識別する。その上で、算出部15cは、先に識別された仮想マシンごとに、上記の式(1)に記載の「加算値」の項に代入する日加算値の値をゼロとし、これ以外は上述と同様にして翌日「d+1」の起動順序制御に用いる日ポイントを算出する。このように、算出部15cは、仮想マシンに自動起動が設定されていない日にも日ポイントの算出を行う。
更新部15dは、仮想マシンの起動に関する優先度を更新する処理部である。なお、更新部15dは、決定部の一例である。
一実施形態として、更新部15dは、算出部15cにより翌日「d+1」の起動順序制御に用いる日ポイントが算出された場合、次のような処理を実行する。すなわち、更新部15dは、記憶部13に記憶された起動優先度データ13cのエントリのうち、算出部15cにより日ポイントの算出が行われた仮想マシンに対応するエントリ内の日ポイントを本日「d」の日ポイントから翌日「d+1」の日ポイントへ上書き更新する。なお、ここでは、起動優先度データ13cの日ポイントを上書き更新する場合を例示したが、仮想マシン及び日ポイントに日付をさらに対応付けて保存することにより、古くなった日ポイントを削除せずに保存しておくこともできる。
起動開始部15eは、仮想マシンの起動を開始する処理部である。
一実施形態として、起動開始部15eは、記憶部13に記憶された起動設定データ13aを監視する。すなわち、起動開始部15eは、起動設定データ13aのエントリの中にOS等により計測されるカレンダ時刻と一致する設定時刻を持つエントリが存在するか否かを所定の周期で監視する。ここで、OS等により計測されるカレンダ時刻と一致する設定時刻を持つエントリが存在する場合、当該エントリに含まれる仮想マシンを自動起動するタイミングであることが判別できる。この場合、自動起動が設定された仮想マシンの起動が開始される。
起動制御部15fは、仮想マシンの起動を制御する処理部である。
一実施形態として、起動制御部15fは、仮想マシンの自動起動が開始された場合、自動起動が設定された仮想マシンが複数であるか否かを判定する。このとき、自動起動が設定された仮想マシンが複数でない場合、起動制御部15fは、自動起動が設定された仮想マシンの起動命令を情報処理装置20へ送信する。一方、自動起動が設定された仮想マシンが複数である場合、起動制御部15fは、複数の仮想マシンの中に情報処理装置20内の同一のホストで起動される仮想マシンが存在するか否かをさらに判定する。
このとき、複数の仮想マシンが情報処理装置20内の同一のホストで起動されない場合、複数の仮想マシンが異なるホストで起動されるので、ホストマシンで仮想マシンの起動の多重度が上昇しないことを判別できる。この場合、起動制御部15fは、各仮想マシンの起動命令を情報処理装置20へ送信する。
ここで、複数の仮想マシンが情報処理装置20内の同一のホストで起動される場合、当該ホストで仮想マシンの起動の多重度が上昇することがわかる。この場合、起動制御部15fは、記憶部13に記憶された起動優先度データ13cを参照して、複数の仮想マシンごとに日ポイントを読み出す。そして、起動制御部15fは、複数の仮想マシンを所定のポイント、例えば日ポイントや総合ポイントなどの各種ポイントのうちいずれかのポイントが高いものから降順にソートすることにより、各仮想マシンの起動順序を設定する。その上で、起動制御部15fは、起動順序にしたがって各仮想マシンの起動命令を情報処理装置20へ送信する。
[具体例]
次に、図6を用いて、ポイントの算出方法および仮想マシンの起動制御の具体例について説明する。図6は、ポイントの算出結果の一例を示す図である。図6には、仮想マシンA、仮想マシンB、仮想マシンCの3つの仮想マシンに関する日ポイント、週ポイント、月ポイント、曜日ポイント、総合ポイント、日加算値、週加算値、月加算値および曜日加算値の推移が11月1日(日)〜11月15日(日)の15日間にわたって示されている。さらに、図6には、図5に示した時間差および日加算値の対応関係にしたがって日加算値が導出されると共に上記の式(1)に記載の「重み」の一例として0.8が設定されている条件の下で算出されるポイントが示されている。
次に、図6を用いて、ポイントの算出方法および仮想マシンの起動制御の具体例について説明する。図6は、ポイントの算出結果の一例を示す図である。図6には、仮想マシンA、仮想マシンB、仮想マシンCの3つの仮想マシンに関する日ポイント、週ポイント、月ポイント、曜日ポイント、総合ポイント、日加算値、週加算値、月加算値および曜日加算値の推移が11月1日(日)〜11月15日(日)の15日間にわたって示されている。さらに、図6には、図5に示した時間差および日加算値の対応関係にしたがって日加算値が導出されると共に上記の式(1)に記載の「重み」の一例として0.8が設定されている条件の下で算出されるポイントが示されている。
ここで、ポイントの算出方法は、いずれの日付であっても同様であるので、以下では、11月1日(日)〜11月15日(日)の15日間を代表して11月9日(月)における仮想マシンAのポイントが日、週、月および曜日のカレンダ属性ごとに算出される場合を例示する。
(1)日ポイント
例えば、11月9日(月)における仮想マシンAの日ポイントは、OS等から取得されるカレンダ時刻が11月8日(日)に変わった段階で算出される。すなわち、11月8日(日)には、仮想マシンAの自動起動は設定されていない。それ故、上記の式(1)に記載の「加算値」の項には、日加算値としてゼロが代入される。これと共に、上記の式(1)に記載の「1つ前のポイント」の項には、11月7日(土)に算出されていた日ポイントであって11月8日(日)の日ポイント「28.23498」が代入される。このため、上記の式(1)により「28.23498*0.8+0」の計算が行われる結果、11月9日(月)における仮想マシンAの日ポイントは、「22.58798」と算出される。
例えば、11月9日(月)における仮想マシンAの日ポイントは、OS等から取得されるカレンダ時刻が11月8日(日)に変わった段階で算出される。すなわち、11月8日(日)には、仮想マシンAの自動起動は設定されていない。それ故、上記の式(1)に記載の「加算値」の項には、日加算値としてゼロが代入される。これと共に、上記の式(1)に記載の「1つ前のポイント」の項には、11月7日(土)に算出されていた日ポイントであって11月8日(日)の日ポイント「28.23498」が代入される。このため、上記の式(1)により「28.23498*0.8+0」の計算が行われる結果、11月9日(月)における仮想マシンAの日ポイントは、「22.58798」と算出される。
また、11月10日(火)における仮想マシンAの日ポイントは、起動履歴データ13bに11月9日(月)における仮想マシンAの起動時刻及びアクセス開始時刻のエントリが登録された段階で算出される。図6には、上述の通り、仮想マシンAは休暇などの理由により起動されなかった例が示されているので、起動時刻およびアクセス開始時刻の時間差が480分以上となり、最小値である「-6」が日加算値として導出される。この場合、上記の式(1)に記載の「加算値」の項には、日加算値として「-6」が代入される。これと共に、上記の式(1)に記載の「1つ前のポイント」の項には、11月8日(日)に算出されていた日ポイントであって11月9日(月)の日ポイント「22.58798」が代入される。このため、上記の式(1)により「22.58798*0.8+(-6)」の計算が行われる結果、11月10日(火)における仮想マシンAの日ポイントは、「12.07039」と算出される。なお、ここでは、仮想マシンAの日ポイントの算出方法について説明したが、仮想マシンB及び仮想マシンCについても同様にして日ポイントを算出することができる。
(2)週ポイント
例えば、11月8日(日)〜11月14日(土)の1週間における仮想マシンAの週ポイントは、その前の週、すなわち11月1日(日)〜11月7日(土)の1週間が経過して日加算値が確定した段階で算出される。このように11月1日(日)〜11月7日(土)の1週間における日加算値が確定すると、各日加算値に所定の統計処理、例えば平均値の算出、最頻値の抽出などが行われることにより、11月1日(日)〜11月7日(土)の1週間における週加算値が算出される。例えば、上記の統計処理の一例として各日加算値の平均値が算出されるとしたとき、11月1日(日)〜11月7日(土)の1週間における週加算値は、「(10+10+10+10+10)/5」の計算により「10」と導出される。その後、上記の式(1)に記載の「加算値」の項には、週加算値として「10」が代入される。これと共に、上記の式(1)に記載の「1つ前のポイント」の項には、10月25日(日)〜10月31日(土)の週が経過した段階で算出されていた週ポイントであって11月1日(日)〜11月7日(土)の1週間の週ポイント「10」が代入される。このため、上記の式(1)により「10*0.8+10」の計算が行われる結果、11月1日(日)〜11月7日(土)における仮想マシンAの週ポイントは「18」と算出される。なお、ここでは、仮想マシンAの週ポイントの算出方法について説明したが、仮想マシンB及び仮想マシンCについても同様にして週ポイントを算出することができる。
例えば、11月8日(日)〜11月14日(土)の1週間における仮想マシンAの週ポイントは、その前の週、すなわち11月1日(日)〜11月7日(土)の1週間が経過して日加算値が確定した段階で算出される。このように11月1日(日)〜11月7日(土)の1週間における日加算値が確定すると、各日加算値に所定の統計処理、例えば平均値の算出、最頻値の抽出などが行われることにより、11月1日(日)〜11月7日(土)の1週間における週加算値が算出される。例えば、上記の統計処理の一例として各日加算値の平均値が算出されるとしたとき、11月1日(日)〜11月7日(土)の1週間における週加算値は、「(10+10+10+10+10)/5」の計算により「10」と導出される。その後、上記の式(1)に記載の「加算値」の項には、週加算値として「10」が代入される。これと共に、上記の式(1)に記載の「1つ前のポイント」の項には、10月25日(日)〜10月31日(土)の週が経過した段階で算出されていた週ポイントであって11月1日(日)〜11月7日(土)の1週間の週ポイント「10」が代入される。このため、上記の式(1)により「10*0.8+10」の計算が行われる結果、11月1日(日)〜11月7日(土)における仮想マシンAの週ポイントは「18」と算出される。なお、ここでは、仮想マシンAの週ポイントの算出方法について説明したが、仮想マシンB及び仮想マシンCについても同様にして週ポイントを算出することができる。
(3)月ポイント
例えば、11月における仮想マシンAの月ポイントは、その前の月、すなわち10月の1ヶ月間が経過して日加算値が確定した段階で算出される。このように10月の1ヶ月間における日加算値が確定すると、各日加算値に所定の統計処理、例えば平均値の算出、最頻値の抽出などが行われることにより、10月の1ヶ月間における月加算値が算出される。例えば、上記の統計処理の一例として各日加算値の平均値が算出されるとしたとき、10月の1ヶ月間における月加算値が「10」であれば(不図示)、上記の式(1)に記載の「加算値」の項には、月加算値として「10」が代入される。これと共に、上記の式(1)に記載の「1つ前のポイント」の項には、9月の月が経過した段階で算出されていた月ポイントであって10月の1ヶ月間の月ポイントが「12.5」であれば(不図示)、その月ポイント「12.5」が代入される。このため、上記の式(1)により「12.5*0.8+10」の計算が行われる結果、11月における仮想マシンAの月ポイントは「10」と算出される。なお、ここでは、仮想マシンAの月ポイントの算出方法について説明したが、仮想マシンB及び仮想マシンCについても同様にして月ポイントを算出することができる。
例えば、11月における仮想マシンAの月ポイントは、その前の月、すなわち10月の1ヶ月間が経過して日加算値が確定した段階で算出される。このように10月の1ヶ月間における日加算値が確定すると、各日加算値に所定の統計処理、例えば平均値の算出、最頻値の抽出などが行われることにより、10月の1ヶ月間における月加算値が算出される。例えば、上記の統計処理の一例として各日加算値の平均値が算出されるとしたとき、10月の1ヶ月間における月加算値が「10」であれば(不図示)、上記の式(1)に記載の「加算値」の項には、月加算値として「10」が代入される。これと共に、上記の式(1)に記載の「1つ前のポイント」の項には、9月の月が経過した段階で算出されていた月ポイントであって10月の1ヶ月間の月ポイントが「12.5」であれば(不図示)、その月ポイント「12.5」が代入される。このため、上記の式(1)により「12.5*0.8+10」の計算が行われる結果、11月における仮想マシンAの月ポイントは「10」と算出される。なお、ここでは、仮想マシンAの月ポイントの算出方法について説明したが、仮想マシンB及び仮想マシンCについても同様にして月ポイントを算出することができる。
(4)曜日ポイント
例えば、11月9日(月)における仮想マシンAの曜日ポイントは、起動履歴データ13bに11月9日(月)の1週間前である11月2日(月)における仮想マシンAの起動時刻及びアクセス開始時刻のエントリが登録された段階で算出される。すなわち、図6に示すように、11月2日(月)における仮想マシンAの起動時刻及びアクセス開始時刻の時間差から導出された最高値である「10」が曜日加算値として導出される。この場合、上記の式(1)に記載の「加算値」の項には、曜日加算値として「10」が代入される。これと共に、上記の式(1)に記載の「1つ前のポイント」の項には、10月26日(月)に算出されていた曜日ポイントであって11月2日(月)の曜日ポイント「10」が代入される。このため、上記の式(1)により「10*0.8+10」の計算が行われる結果、11月9日(月)における仮想マシンAの曜日ポイントは、「18」と算出される。なお、ここでは、仮想マシンAの曜日ポイントの算出方法について説明したが、仮想マシンB及び仮想マシンCについても同様にして曜日ポイントを算出することができる。
例えば、11月9日(月)における仮想マシンAの曜日ポイントは、起動履歴データ13bに11月9日(月)の1週間前である11月2日(月)における仮想マシンAの起動時刻及びアクセス開始時刻のエントリが登録された段階で算出される。すなわち、図6に示すように、11月2日(月)における仮想マシンAの起動時刻及びアクセス開始時刻の時間差から導出された最高値である「10」が曜日加算値として導出される。この場合、上記の式(1)に記載の「加算値」の項には、曜日加算値として「10」が代入される。これと共に、上記の式(1)に記載の「1つ前のポイント」の項には、10月26日(月)に算出されていた曜日ポイントであって11月2日(月)の曜日ポイント「10」が代入される。このため、上記の式(1)により「10*0.8+10」の計算が行われる結果、11月9日(月)における仮想マシンAの曜日ポイントは、「18」と算出される。なお、ここでは、仮想マシンAの曜日ポイントの算出方法について説明したが、仮想マシンB及び仮想マシンCについても同様にして曜日ポイントを算出することができる。
(5)総合ポイント
総合ポイントは、カレンダ属性の中で最も粒度が細かい日ポイントが算出された段階で算出される。例えば、11月9日(月)における仮想マシンAの総合ポイントは、11月9日(月)における仮想マシンAの日ポイントが算出された段階で算出できる。すなわち、11月9日(月)における仮想マシンAの日ポイント、週ポイント、月ポイント及び曜日ポイントに所定の統計処理、例えば合計、相加平均や加重平均などの処理を行うことにより算出される。例えば、合計により総合ポイントが算出されるとしたとき、総計ポイントは、「22.58798+18+10+18」の計算により「68.58798」と算出される。なお、ここでは、仮想マシンAの総合ポイントの算出方法について説明したが、仮想マシンB及び仮想マシンCについても同様にして総合ポイントを算出することができる。
総合ポイントは、カレンダ属性の中で最も粒度が細かい日ポイントが算出された段階で算出される。例えば、11月9日(月)における仮想マシンAの総合ポイントは、11月9日(月)における仮想マシンAの日ポイントが算出された段階で算出できる。すなわち、11月9日(月)における仮想マシンAの日ポイント、週ポイント、月ポイント及び曜日ポイントに所定の統計処理、例えば合計、相加平均や加重平均などの処理を行うことにより算出される。例えば、合計により総合ポイントが算出されるとしたとき、総計ポイントは、「22.58798+18+10+18」の計算により「68.58798」と算出される。なお、ここでは、仮想マシンAの総合ポイントの算出方法について説明したが、仮想マシンB及び仮想マシンCについても同様にして総合ポイントを算出することができる。
(6)仮想マシンの起動制御
ここでは、以下の条件の下、11月9日、11月10日および11月11日における仮想マシンA、仮想マシンB及び仮想マシンCの起動順序制御について説明する。すなわち、仮想マシンA、仮想マシンB及び仮想マシンCの間で土曜日および日曜日の休日以外の営業日における自動起動の設定時刻が同一であり、かつ仮想マシンA、仮想マシンB及び仮想マシンCが起動されるホストも同一である場合を想定する。
ここでは、以下の条件の下、11月9日、11月10日および11月11日における仮想マシンA、仮想マシンB及び仮想マシンCの起動順序制御について説明する。すなわち、仮想マシンA、仮想マシンB及び仮想マシンCの間で土曜日および日曜日の休日以外の営業日における自動起動の設定時刻が同一であり、かつ仮想マシンA、仮想マシンB及び仮想マシンCが起動されるホストも同一である場合を想定する。
さらに、仮想マシンAのユーザ、仮想マシンBのユーザ及び仮想マシンCのユーザの利用傾向が次の通りであることとする。すなわち、図6に示すように、仮想マシンAのユーザは、普段は起動後すぐに利用し(傾向1)、仮想マシンBのユーザは、仮想マシンAのユーザよりも起動後の利用は遅く(傾向2)、仮想マシンCのユーザは、月曜日および水曜日だけ起動後の利用が仮想マシンBのユーザよりも早い(傾向3)。
これらの傾向がある場合、傾向から外れる多少のイレギュラーがあったとしても、傾向1〜傾向3にしたがって月曜日及び水曜日は仮想マシンA→仮想マシンC→仮想マシンBの順に起動し、それ以外は仮想マシンA→仮想マシンB→仮想マシンCの順に起動する起動順序を設定する再現性を高める方がイレギュラーに過敏に反応するよりも、仮想マシンA、仮想マシンB及び仮想マシンCの起動待ち時間をトータルで低減できることが期待できる。
ここで、図6に示す通り、次のようなイレギュラーが発生する場合を想定する。例えば、仮想マシンAのユーザが11月9日および11月10日の2日間にわたって休暇などの理由により仮想マシンAを利用しなかった場合(イレギュラー1)、さらに、仮想マシンBのユーザが11月10日だけ利用傾向が違った場合(イレギュラー2)を想定する。
例えば、11月9日(月)では、日ポイントまたは総合ポイントが降順となるように仮想マシンA、仮想マシンB及び仮想マシンCをソートすることにより、上記のイレギュラー1が発生しても、月曜日に相応しい起動順序「仮想マシンA→仮想マシンC→仮想マシンB」を設定できる。また、11月10日(火)では、日ポイントまたは総合ポイントが降順となるように仮想マシンA、仮想マシンB及び仮想マシンCをソートすることにより、上記のイレギュラー1及びイレギュラー2が発生しても、月曜日及び水曜日以外に相応しい起動順序「仮想マシンA→仮想マシンB→仮想マシンC」を設定できる。さらに、11月11日(水)では、日ポイントまたは総合ポイントが降順となるように仮想マシンA、仮想マシンB及び仮想マシンCをソートすることにより、上記のイレギュラー1の影響により仮想マシンAの起動順序は遅くなっているが、仮想マシンBよりも水曜日の利用が早い仮想マシンCの起動が優先された起動順序「仮想マシンC→仮想マシンB→仮想マシンA」を設定できる。
[処理の流れ]
次に、本実施例に係る起動制御装置10の処理の流れについて説明する。なお、以下では、起動制御装置10により実行される(1)履歴登録処理、(2)優先度更新処理、(3)起動制御処理の順に説明することとする。
次に、本実施例に係る起動制御装置10の処理の流れについて説明する。なお、以下では、起動制御装置10により実行される(1)履歴登録処理、(2)優先度更新処理、(3)起動制御処理の順に説明することとする。
(1)履歴登録処理
図7は、実施例1に係る履歴登録処理の手順を示すフローチャートである。この処理は、一例として、情報処理装置20上で自動起動された仮想マシンごとに並列して実行される。図7に示すように、情報処理装置20上で仮想マシンが自動起動された場合(ステップS101Yes)、登録部15bは、OS等から起動時刻を取得する(ステップS102)。
図7は、実施例1に係る履歴登録処理の手順を示すフローチャートである。この処理は、一例として、情報処理装置20上で自動起動された仮想マシンごとに並列して実行される。図7に示すように、情報処理装置20上で仮想マシンが自動起動された場合(ステップS101Yes)、登録部15bは、OS等から起動時刻を取得する(ステップS102)。
その後、監視部15aは、当該仮想マシンに対するクライアント端末30のアクセスを監視する(ステップS103)。そして、当該仮想マシンに対するアクセスが検知された場合(ステップS104Yes)、登録部15bは、OS等からアクセス開始時刻を取得した上で記憶部13に記憶された起動履歴データ13bに新規エントリを作成し、当該新規エントリに仮想マシン、起動時刻およびアクセス開始時刻を対応付けて登録し(ステップS105)、処理を終了する。
(2)優先度更新処理
図8は、実施例1に係る優先度更新処理の手順を示すフローチャートである。この処理は、一例として、起動履歴データ13bに新規エントリが追加される度に繰り返し実行される。図8に示すように、起動履歴データ13bに新規エントリが追加された場合(ステップS301Yes)、算出部15cは、上記の起動履歴データ13bの新規エントリに含まれる起動時刻およびアクセス開始時刻の時間差を算出する(ステップS302)。
図8は、実施例1に係る優先度更新処理の手順を示すフローチャートである。この処理は、一例として、起動履歴データ13bに新規エントリが追加される度に繰り返し実行される。図8に示すように、起動履歴データ13bに新規エントリが追加された場合(ステップS301Yes)、算出部15cは、上記の起動履歴データ13bの新規エントリに含まれる起動時刻およびアクセス開始時刻の時間差を算出する(ステップS302)。
続いて、算出部15cは、起動時刻およびアクセス開始時刻の時間差から上記の式(1)にしたがって起動履歴データ13bに新規エントリが追加された仮想マシンのポイントを算出する(ステップS303)。
その後、更新部15dは、記憶部13に記憶された起動優先度データ13cのエントリのうち、ステップS303の算出が行われた仮想マシンに対応するエントリ内の日ポイントをステップS303で算出されたポイントへ上書き更新し(ステップS304)、ステップS301の処理へ戻る。
(3)起動制御処理
図9は、実施例1に係る起動制御処理の手順を示すフローチャートである。図9に示すように、起動設定データ13aのエントリの中にOS等により計測されるカレンダ時刻と一致する設定時刻を持つエントリが存在する場合(ステップS501Yes)に自動起動が設定された仮想マシンの起動が開始される。この場合、起動制御部15fは、自動起動が設定された仮想マシンが複数であるか否かを判定する(ステップS502)。
図9は、実施例1に係る起動制御処理の手順を示すフローチャートである。図9に示すように、起動設定データ13aのエントリの中にOS等により計測されるカレンダ時刻と一致する設定時刻を持つエントリが存在する場合(ステップS501Yes)に自動起動が設定された仮想マシンの起動が開始される。この場合、起動制御部15fは、自動起動が設定された仮想マシンが複数であるか否かを判定する(ステップS502)。
このとき、自動起動が設定された仮想マシンが複数である場合(ステップS502Yes)、起動制御部15fは、複数の仮想マシンの中に情報処理装置20内の同一のホストで起動される仮想マシンが存在するか否かをさらに判定する(ステップS503)。
ここで、複数の仮想マシンが情報処理装置20内の同一のホストで起動される場合(ステップS503Yes)、当該ホストで仮想マシンの起動の多重度が上昇することがわかる。この場合、起動制御部15fは、記憶部13に記憶された起動優先度データ13cを参照して、複数の仮想マシンごとに日ポイントを読み出す(ステップS504)。なお、ここでは、あくまで一例として、日ポイントを用いて起動順序を設定する場合を例示するが、この他の種類のポイント、週ポイント、月ポイント、曜日ポイントおよびこれらの総合ポイントを用いて起動順序を設定することとしてもかまわない。
そして、起動制御部15fは、複数の仮想マシンを日ポイントが高いものから降順にソートすることにより、各仮想マシンの起動順序を設定する(ステップS505)。その上で、起動制御部15fは、起動順序にしたがって各仮想マシンの起動命令を情報処理装置20へ送信し(ステップS506)、処理を終了する。
一方、複数の仮想マシンが情報処理装置20内の同一のホストで起動されない場合(ステップS503No)、複数の仮想マシンが異なるホストで起動されるので、ホストマシンで仮想マシンの起動の多重度が上昇しないことを判別できる。この場合、起動制御部15fは、各仮想マシンの起動命令を情報処理装置20へ送信し(ステップS507)、処理を終了する。
なお、自動起動が設定された仮想マシンが複数でない場合(ステップS502No)、起動制御部15fは、自動起動が設定された仮想マシンの起動命令を情報処理装置20へ送信し(ステップS508)、処理を終了する。
[効果の一側面]
上述してきたように、本実施例に係る起動制御装置10は、仮想マシンが起動されてからアクセスが開始されるまでの時間差に基づいて設定された仮想マシンの起動順序にしたがって複数の仮想マシンの起動を制御する。このため、起動された段階では直ちにユーザにより使用されない仮想マシンが先に起動されたり、あるいは起動された段階でユーザにより使用される仮想マシンが後に起動されたりるケースを低減できる。したがって、本実施例によれば、仮想マシンの起動待ち時間を低減できる。
上述してきたように、本実施例に係る起動制御装置10は、仮想マシンが起動されてからアクセスが開始されるまでの時間差に基づいて設定された仮想マシンの起動順序にしたがって複数の仮想マシンの起動を制御する。このため、起動された段階では直ちにユーザにより使用されない仮想マシンが先に起動されたり、あるいは起動された段階でユーザにより使用される仮想マシンが後に起動されたりるケースを低減できる。したがって、本実施例によれば、仮想マシンの起動待ち時間を低減できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[起動の手動設定]
上記の実施例1では、仮想マシンが自動起動される場合について説明を行ったが、仮想マシンが手動起動される場合にも、起動優先度を更新することができる。例えば、仮想マシンの手動起動が行われた場合、日ポイント、週ポイント、月ポイント、曜日ポイント及び総合ポイントのうち負の値であるものが存在する場合、負の値をとるポイントを「0」に設定することもできる。
上記の実施例1では、仮想マシンが自動起動される場合について説明を行ったが、仮想マシンが手動起動される場合にも、起動優先度を更新することができる。例えば、仮想マシンの手動起動が行われた場合、日ポイント、週ポイント、月ポイント、曜日ポイント及び総合ポイントのうち負の値であるものが存在する場合、負の値をとるポイントを「0」に設定することもできる。
[仮想マシンの応用例]
上記の実施例1では、デスクトップ環境を提供する仮想マシンを例示したが、これ以外の仮想マシンが情報処理装置20上で起動される場合にも適用できる。例えば、Webサーバの機能を提供する仮想マシンが情報処理装置20上で起動される場合、HTTP(HyperText Transfer Protocol)のプロトコルの通信を監視することにより、Webサーバが起動されてからWebサーバが提供するサービスが利用されるまでの時間差を算出することができる。
上記の実施例1では、デスクトップ環境を提供する仮想マシンを例示したが、これ以外の仮想マシンが情報処理装置20上で起動される場合にも適用できる。例えば、Webサーバの機能を提供する仮想マシンが情報処理装置20上で起動される場合、HTTP(HyperText Transfer Protocol)のプロトコルの通信を監視することにより、Webサーバが起動されてからWebサーバが提供するサービスが利用されるまでの時間差を算出することができる。
[起動制御プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図10を用いて、上記の実施例と同様の機能を有する起動制御プログラムを実行するコンピュータの一例について説明する。
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図10を用いて、上記の実施例と同様の機能を有する起動制御プログラムを実行するコンピュータの一例について説明する。
図10は、実施例1及び実施例2に係る起動制御プログラムを実行するコンピュータのハードウェア構成例を示す図である。図10に示すように、コンピュータ100は、操作部110aと、スピーカ110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110〜180の各部はバス140を介して接続される。
HDD170には、図10に示すように、上記の実施例1で示した監視部15a、登録部15b、算出部15c、更新部15d、起動開始部15e及び起動制御部15fと同様の機能を発揮する起動制御プログラム170aが記憶される。この起動制御プログラム170aは、図2に示した監視部15a、登録部15b、算出部15c、更新部15d、起動開始部15e及び起動制御部15fの各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
このような環境の下、CPU150は、HDD170から起動制御プログラム170aを読み出した上でRAM180へ展開する。この結果、起動制御プログラム170aは、図10に示すように、起動制御プロセス180aとして機能する。この起動制御プロセス180aは、RAM180が有する記憶領域のうち起動制御プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、起動制御プロセス180aが実行する処理の一例として、図7〜図9に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
なお、上記の起動制御プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に起動制御プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から起動制御プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに起動制御プログラム170aを記憶させておき、コンピュータ100がこれらから起動制御プログラム170aを取得して実行するようにしてもよい。
1 クラウドシステム
10 起動制御装置
11 通信I/F部
13 記憶部
13a 起動設定データ
13b 起動履歴データ
13c 起動優先度データ
15 制御部
15a 監視部
15b 登録部
15c 算出部
15d 更新部
15e 起動開始部
15f 起動制御部
20 情報処理装置
30A,30B,30C クライアント端末
10 起動制御装置
11 通信I/F部
13 記憶部
13a 起動設定データ
13b 起動履歴データ
13c 起動優先度データ
15 制御部
15a 監視部
15b 登録部
15c 算出部
15d 更新部
15e 起動開始部
15f 起動制御部
20 情報処理装置
30A,30B,30C クライアント端末
Claims (5)
- 複数の仮想マシンの稼働実績情報を参照して、前記複数の仮想マシンそれぞれの起動後、該仮想マシンに対する特定のアクセスが検知されるまでの時間を特定し、
特定した前記時間に基づき、前記仮想マシンの起動順序を決定し、
決定した前記起動順序にしたがって、前記複数の仮想マシンの起動を制御する処理と、
をコンピュータに実行させることを特徴とする起動制御プログラム。 - 前記決定する処理は、特定した前記時間が短くなるにしたがって高い起動順序を決定することを特徴とする請求項1に記載の起動制御プログラム。
- 前記決定する処理は、日、週、月または曜日ごとに前記仮想マシンの起動順序を決定することを特徴とする請求項1に記載の起動制御プログラム。
- 複数の仮想マシンの稼働実績情報を参照して、前記複数の仮想マシンそれぞれの起動後、該仮想マシンに対する特定のアクセスが検知されるまでの時間を特定し、
特定した前記時間に基づき、前記仮想マシンの起動順序を決定し、
決定した前記起動順序にしたがって、前記複数の仮想マシンの起動を制御する
処理をコンピュータが実行することを特徴とする起動制御方法。 - 複数の仮想マシンの稼働実績情報を参照して、前記複数の仮想マシンそれぞれの起動後、該仮想マシンに対する特定のアクセスが検知されるまでの時間を特定する特定部と、
特定した前記時間に基づき、前記仮想マシンの起動順序を決定する決定部と、
決定した前記起動順序にしたがって、前記複数の仮想マシンの起動を制御する起動制御部と、
を有することを特徴とする起動制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016197582A JP2018060378A (ja) | 2016-10-05 | 2016-10-05 | 起動制御プログラム、起動制御方法及び起動制御装置 |
US15/720,579 US20180095440A1 (en) | 2016-10-05 | 2017-09-29 | Non-transitory computer-readable storage medium, activation control method, and activation control device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016197582A JP2018060378A (ja) | 2016-10-05 | 2016-10-05 | 起動制御プログラム、起動制御方法及び起動制御装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018060378A true JP2018060378A (ja) | 2018-04-12 |
Family
ID=61757965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016197582A Pending JP2018060378A (ja) | 2016-10-05 | 2016-10-05 | 起動制御プログラム、起動制御方法及び起動制御装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20180095440A1 (ja) |
JP (1) | JP2018060378A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022040375A (ja) * | 2019-11-29 | 2022-03-10 | オムロン株式会社 | 情報処理装置、管理プログラム、管理方法、および、情報処理システム |
JP2022118084A (ja) * | 2022-01-20 | 2022-08-12 | オムロン株式会社 | 情報処理システム、情報処理装置、管理プログラム、および、管理方法 |
JP2022126713A (ja) * | 2022-01-20 | 2022-08-30 | オムロン株式会社 | 情報処理装置、管理プログラム、管理方法、および、情報処理システム |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5412599B2 (ja) * | 2011-03-03 | 2014-02-12 | 株式会社日立製作所 | 計算機システム、および、計算機システムにおける仮想計算機の最適配置方法 |
US20180107503A1 (en) * | 2015-05-07 | 2018-04-19 | Nec Corporation | Computer procurement predicting device, computer procurement predicting method, and recording medium |
-
2016
- 2016-10-05 JP JP2016197582A patent/JP2018060378A/ja active Pending
-
2017
- 2017-09-29 US US15/720,579 patent/US20180095440A1/en not_active Abandoned
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022040375A (ja) * | 2019-11-29 | 2022-03-10 | オムロン株式会社 | 情報処理装置、管理プログラム、管理方法、および、情報処理システム |
JP7276526B2 (ja) | 2019-11-29 | 2023-05-18 | オムロン株式会社 | 情報処理装置、管理プログラム、管理方法、および、情報処理システム |
JP2022118084A (ja) * | 2022-01-20 | 2022-08-12 | オムロン株式会社 | 情報処理システム、情報処理装置、管理プログラム、および、管理方法 |
JP2022126713A (ja) * | 2022-01-20 | 2022-08-30 | オムロン株式会社 | 情報処理装置、管理プログラム、管理方法、および、情報処理システム |
JP7207595B2 (ja) | 2022-01-20 | 2023-01-18 | オムロン株式会社 | 情報処理装置、管理プログラム、管理方法、および、情報処理システム |
JP7276566B2 (ja) | 2022-01-20 | 2023-05-18 | オムロン株式会社 | 情報処理システム、情報処理装置、管理プログラム、および、管理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20180095440A1 (en) | 2018-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11842208B2 (en) | Virtual provisioning with implementation resource boundary awareness | |
CN106164864B (zh) | 服务的预测负载伸缩 | |
US10275270B2 (en) | Method and apparatus to scale application deployments in cloud computing environments using virtual machine pools | |
US8196137B2 (en) | Remote auto provisioning and publication of applications | |
US11922182B2 (en) | Managing multi-single-tenant SaaS services | |
CN108287708B (zh) | 一种数据处理方法、装置、服务器及计算机可读存储介质 | |
CN109688191B (zh) | 流量调度方法及通信装置 | |
JP2018060378A (ja) | 起動制御プログラム、起動制御方法及び起動制御装置 | |
US20140201371A1 (en) | Balancing the allocation of virtual machines in cloud systems | |
US20220027201A1 (en) | Resource and operation management on a cloud platform | |
CN109445911B (zh) | Cvm实例的调整方法、装置、云平台和服务器 | |
CN109286617B (zh) | 一种数据处理方法及相关设备 | |
TWI608377B (zh) | 監控管理系統及方法 | |
CN104700255B (zh) | 多进程处理方法、装置和系统 | |
US9195515B1 (en) | Method and system for process load balancing | |
CN110569114B (zh) | 一种业务处理方法、装置、设备及存储介质 | |
US20160378536A1 (en) | Control method and information processing device | |
CN111949442A (zh) | 用于可扩展备份服务的系统和方法 | |
US9798571B1 (en) | System and method for optimizing provisioning time by dynamically customizing a shared virtual machine | |
US11323389B2 (en) | Logic scaling sets for cloud-like elasticity of legacy enterprise applications | |
US11632319B2 (en) | Processing device and moving method | |
US20240111564A1 (en) | Information processing apparatus, information processing method, and computer-readable recording medium | |
US20240179053A1 (en) | Continuous scheduling for automated suspension and resumption of cloud resources | |
US20240111516A1 (en) | Information processing apparatus, information processing method, and computer-readable recording medium | |
JP6638819B2 (ja) | ネットワーク管理プログラム、ネットワーク管理方法及びネットワーク管理装置 |