JP2010211615A - プログラム、コンピュータ及び制御方法 - Google Patents

プログラム、コンピュータ及び制御方法 Download PDF

Info

Publication number
JP2010211615A
JP2010211615A JP2009058261A JP2009058261A JP2010211615A JP 2010211615 A JP2010211615 A JP 2010211615A JP 2009058261 A JP2009058261 A JP 2009058261A JP 2009058261 A JP2009058261 A JP 2009058261A JP 2010211615 A JP2010211615 A JP 2010211615A
Authority
JP
Japan
Prior art keywords
time
stop
unit
interruption
virtual machine
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
JP2009058261A
Other languages
English (en)
Other versions
JP5359401B2 (ja
Inventor
Yoshiisa Kaku
兆功 郭
Naoki Nishiguchi
直樹 西口
Masatomo Yazaki
昌朋 矢崎
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 JP2009058261A priority Critical patent/JP5359401B2/ja
Priority to US12/721,464 priority patent/US8539483B2/en
Publication of JP2010211615A publication Critical patent/JP2010211615A/ja
Application granted granted Critical
Publication of JP5359401B2 publication Critical patent/JP5359401B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

【課題】消費電力を低減し、またユーザの利便性を向上させることが可能なプログラム、コンピュータ及び制御方法を提供する。
【解決手段】運転中のVMに対する中断命令または停止命令により、仮想マシンを中断または停止するが、継続時間だけVMに対する操作を待つ。継続時間を経過して操作がない場合に、他のVMが全て中断または停止しているか否かを判断する。全ての仮想マシンが中断または停止していると判断した後に、物理マシンの中断命令または停止命令を出力する。その後物理マシンは停止する。
【選択図】図5

Description

本発明は、コンピュータ上で動作する仮想マシンを制御するためのプログラム、コンピュータ及び制御方法に関する。
仮想マシンを動作させるコンピュータの普及に伴い、消費電力を低減するための試みがなされている(例えば特許文献1参照)。従来は、全ての仮想マシンの動作が停止している場合にコンピュータの電源を停止することにより消費電力を低減していた。
特開2005−209198号公報
しかしながら、従来の方法は消費電力の低減とユーザの利便性とを十分に両立させるものではなかった。またコンピュータの停止後すぐに仮想マシンを起動する場合、再度コンピュータ及び仮想マシンの起動処理が必要となり、ユーザに長時間の待機を強いることになっていた。
本発明は斯かる事情に鑑みてなされたものである。その目的は、仮想マシンを中断または停止させる場合でもコンピュータをすぐに中断または停止せずに継続時間の間運転を継続させることにより、ユーザが仮想マシンをすぐに再度使用する場合の利便性を向上させることにある。また、継続時間の間に操作がない場合は、ユーザがすぐに再度使用しないと判断し、コンピュータを停止させることにより、消費電力を低減することにある。
本願に開示するプログラムは、コンピュータ上で動作する仮想マシンを制御するためのプログラムにおいて、コンピュータに、運転中の仮想マシンに対する中断命令または停止命令を受け付ける受け付けステップと、該受け付けステップにより中断命令または停止命令を受け付けた場合、前記仮想マシンを中断または停止する停止ステップと、前記継続時間を経過した後に、前記コンピュータの中断命令または停止命令を出力する出力ステップとを実行させる。
当該装置の一観点によれば、中断命令または停止命令を受け付けた場合でも、コンピュータの運転を継続時間の間継続する。これにより、中断または停止の後に再度ユーザが対象となる仮想マシンの使用を希望する場合でも、早期に使用を再開することが可能となる。また、継続時間経過後はコンピュータが停止することから消費電力の低減をも図ることが可能となる。
制御システムの概要を示す説明図である。 物理マシン及びVMのハードウェア及びソフトウェアを示すブロック図である。 設定ファイルのレコードレイアウトを示す説明図である。 時間ファイルのレコードレイアウトを示す説明図である。 VM及び物理マシンの状態遷移を示す説明図である。 制御処理の手順を示すフローチャートである。 制御処理の手順を示すフローチャートである。 時間ファイルのレコードレイアウトを示す説明図である。 実施の形態2に係る中断または停止処理の手順を示すフローチャートである。 実施の形態2に係る中断または停止処理の手順を示すフローチャートである。 実施の形態2に係る中断または停止処理の手順を示すフローチャートである。 実施の形態3に係る物理マシン及びVMのハードウェア及びソフトウェアを示すブロック図である。 履歴ファイルのレコードレイアウトを示す説明図である。 実施の形態3に係る時間ファイルのレコードレイアウトを示す説明図である。 最適化処理の手順を示すフローチャートである。 実施の形態4に係る物理マシン及びVMのハードウェア及びソフトウェアを示すブロック図である。 予定ファイルのレコードレイアウトを示す説明図である。 制御処理の手順を示すフローチャートである。 制御処理の手順を示すフローチャートである。 制御処理の手順を示すフローチャートである。 制御処理の手順を示すフローチャートである。 制御処理の手順を示すフローチャートである。 制御処理の手順を示すフローチャートである。 実施の形態5に係る物理マシン及びVMのハードウェア及びソフトウェアを示すブロック図である。 VMの中断時間及び停止時間の変化を示す説明図である。 各VMの中断時間及び停止時間、並びに、物理マシンの中断時間及び停止時間の変化を示す説明図である。 VMの予定ファイルの変更処理手順を示すフローチャートである。 VMの予定ファイルの変更処理手順を示すフローチャートである。 VMの予定ファイルの変更処理手順を示すフローチャートである。 物理マシンに係る予定ファイルの変更処理手順を示すフローチャートである。 実施の形態6に係る物理マシン及びVMのハードウェア及びソフトウェアを示すブロック図である。
実施の形態1
以下実施の形態を、図面を参照して説明する。図1は制御システムの概要を示す説明図である。制御システムはコンピュータ1、仮想マシン2及び端末装置3、3、3・・を含む。コンピュータ1は例えばサーバコンピュータであり複数の仮想マシン(以下VM:(Virtual Machine)という)21、22、23、・・(以下、場合により2で代表する)を制御する。端末装置3は例えばパーソナルコンピュータ、または、通信機能、入出力装置及びモニタを有する入出力装置等である。以下では、コンピュータ1を物理マシン1といい、また端末装置3はパーソナルコンピュータ3であるものとして説明する。
パーソナルコンピュータ3と物理マシン1とはUSB(Universal Serial Bus)ケーブル、または、インターネット若しくはLAN(Local Area Network)等の通信網を介して接続されており、所定のプロトコルにて情報を送受信する。本実施の形態においては、パーソナルコンピュータ3は物理マシン1に対しLANにより接続されている例を挙げて説明する。パーソナルコンピュータ3を使用するユーザは物理マシン1を介してVM2を起動する。物理マシン1上では複数のVM21、22、23、・・・が動作している。以下ではVM21乃至23の3台のVM2を物理マシン1が制御する例を挙げて説明するが、この数に限定するものではない。
続いて本実施形態の概要を説明する。運転中のVM21が中断命令または停止命令を受け付けた場合、VM21は「中断状態」または「停止状態」へ移行する。しかし、物理マシン1は直ちに中断または停止することなく、継続時間(例えば3分)の間運転を継続する。そして継続時間が経過した後に停止したVM21を含め、他のVM22、23が「中断状態」または「停止状態」であり、かつ、それぞれのVM2が持つ継続時間が経過した場合に物理マシン1は停止する。以下に詳細を説明する。
図2は物理マシン1及びVM2のハードウェア及びソフトウェアを示すブロック図である。物理マシン1はハードウェアリソース10及びVMカーネル17を含む。ハードウェアリソース10は、CPU(Central Processing Unit)11、RAM(Random Access Memory)12、ハードディスク(以下HD(Hard Disk)15という)、NIC(Network Interface Card)16、時計部18及び電源制御部19等を含む。ハードウェアリソース10は仮想化ソフトウェアであるVMカーネル17の制御下におかれる。CPU11はVMカーネル17及びVMカーネル17上の制御モジュール170の指示に従い、バス(図示せず)を介して接続される各ハードウェアを制御する。
記憶部としてのRAM12は例えばSRAM(Static RAM)、DRAM(Dynamic RAM)、フラッシュメモリ等である。RAM12は、CPU11によるVMカーネル17等各種プログラムの実行時に発生する種々のデータを一時的に記憶する。記憶部としてのHD15はVM2にて作成されたファイル及びVMカーネル17の指示により記憶すべき各種データ等を記憶する。NIC16はイーサーネットカード等であり、パーソナルコンピュータ3または図示しない他のWebサーバ等とHTTP(HyperText Transfer Protocol)等により情報を送受信する。時計部18は内部にタイマ181を備え、時間をCPU11へ出力する。
なお、本実施の形態においては説明を容易にするために年月日の記載を適宜省略するが、時間には年月日を含めても良いことはもちろんである。電源制御部19は物理マシン1への電力の供給または停止制御を行う。VMカーネル17と連携する制御モジュール170はVM21、22、23の構成及び電源管理を含む各種処理を行う。制御モジュール170は、ユーザからの中断または停止命令を受け付ける受け付け部171、物理マシン1を中断または停止せずに継続時間だけ物理マシン1の運転を継続する継続部172、指定されたVM2を中断または停止する停止部173、物理マシン1を中断または停止する出力部174、物理マシン1が中断または停止できるか否かを判断する判断部175、ユーザからの起動命令を待ちVM2に対し起動命令を出力する解除部176、物理マシン1及びVM2を起動する起動部177及びユーザの操作を監視し受け付け部171に対し中断または停止命令を生成する生成部178等を含みRAM12上にロードされて実行される。RAM12またはHD15には設定ファイル151及び時間ファイル152が用意されている。なお、本実施の形態においてはハードウェアリソース10上でVMカーネル17が直接動作するハイパーバイザー型の仮想化ソフトウェアを用いる例を説明するが、これに限るものではない。Windows(登録商標)またはLinux(登録商標)上で仮想化ソフトウェアが動作するホスト型を用いても良いことはもちろんである。
VM21の利用を希望するユーザはパーソナルコンピュータ3により物理マシン1を起動する。パーソナルコンピュータ3は物理マシン1に対し起動命令を出力する。また、パーソナルコンピュータ3は複数のVM2の内、起動を希望するVM2を特定するための識別情報(以下、VMIDという)及びVM2の起動命令を物理マシン1へ出力する。その他、パーソナルコンピュータ3のIPアドレスまたはMACアドレス等のパーソナルコンピュータ3を識別する情報と、起動させるVM2とを物理マシン1において予め関連づけておく。そして、物理マシン1の起動後、物理マシン1に対する起動命令を送信したパーソナルコンピュータ3と関連づけられたVM2(ここではVM21)を起動させてもよい。この場合、起動を希望するVM2の識別情報の出力処理を省略することができる。また、パーソナルコンピュータ3を利用する利用者を識別する情報と、起動させるVM2とを物理マシン1において予め関連づけておき、物理マシン1の起動後、利用者を識別する情報を物理マシン1へ送信しても良い。なお、関連づけの方法は一例であって、これらに限るものではない。
以下、本実施の形態においてはVM21を起動する例を挙げて説明する。NIC16はWake On Lanに対応しており、物理マシン1の起動命令を受けて電源制御部19へ起動命令を出力する。なお、パーソナルコンピュータ3は物理マシン1の電源を投入するためのマジックパケットをNIC16へ出力する。
電源制御部19は図示しない交流電源からの電力を物理マシン1へ供給する。これにより、物理マシン1が起動し、またVMカーネル17及び制御モジュール170も起動する。起動部177はVM21を起動する。VM21はVMカーネル17の制御下で動作し、VM21に対してインストールされたOS(Operating System)211下で各種アプリケーション212を実行する。VM21はNIC16を介してパーソナルコンピュータ3へ画面情報を出力する。同様に他のユーザは他のコンピュータ3を用いてVM22を利用することができる。起動部177はこれを受けてVM22を起動する。
続いてVM21の中断または停止処理について説明する。VM21の中断は、例えばVM21が使用しているRAM12の領域内の情報をHD15へ記憶させVM21をハイバーネーション (もしくは休止)することをいう。この場合、VM21が使用していたRAM12の領域は開放される。ハイバーネーション (もしくは休止)の後、再度VM21を起動した場合、HD15へ記憶させた情報がRAM12の領域に記憶され、中断時の作業内容が復元される。なお、本実施の形態においてはハイバーネーションを「中断状態」であるものとして説明するが、これに限るものではない。
その他VM21の中断は、VM21が使用しているRAM12の領域内の情報を、RAM12内に保持し、電源制御部19によりRAM12に通電し続けるサスペンド (もしくはスリープ、スタンバイ)であっても良い。サスペンド (もしくはスリープ、スタンバイ)の後、再度VM21を起動した場合、VM21は保持されたRAM12の領域内の情報を利用することで、中断時の作業内容が早期に復元される。VM21の停止とは、VM21が使用しているOS211及びアプリケーション212を全て終了し、RAM12の領域内の情報をHD15に記憶することなく開放し、VM21の動作を「停止状態」とすることをいう。
図3は設定ファイル151のレコードレイアウトを示す説明図である。設定ファイル151は各VM2に対応づけて「中断状態」または「停止状態」へ移行する際の移行時間を記憶している。設定ファイル151はVMIDフィールド、移行時間フィールド及び状態フィールドを含む。VMIDフィールドはVM2を識別するための情報を記憶している。なお、図3の例ではVM21のVMIDを「VM21」、VM22のVMIDを「VM22」、VM23のVMIDを「VM23」としている。状態フィールドには、VM2がパーソナルコンピュータ3から一定時間操作命令を受け付けなかった場合に、「運転状態」から移行すべき状態を記憶している。また移行時間フィールドには、操作命令を受け付けなかった場合に、「運転状態」から「中断状態」または「停止状態」へ移行するのに必要とする移行時間を記憶している。
例えばVM21はパーソナルコンピュータ3から30分間操作命令を受け付けなかった場合、「運転状態」から「中断状態」へ移行する。またVM23はパーソナルコンピュータ3から50分間操作命令を受け付けなかった場合に、「運転状態」から「停止状態」へ移行する。なお、この設定ファイル151の記憶内容はパーソナルコンピュータ3から適宜変更することが可能である。
図4は時間ファイル152のレコードレイアウトを示す説明図である。時間ファイル152はVMIDフィールド及び継続時間フィールド等を含む。継続時間フィールドにはVMIDに対応づけて中断命令または停止命令を受け付けた場合に物理マシン1を継続して運転し続ける時間が記憶されている。図4の例では、VM21からの中断命令または停止命令を受け付けた後、物理マシン1の「運転状態」を3分間継続(以下、適宜「継続」を「維持」と読み替える。)する。なお、この時間ファイル152の記憶内容はパーソナルコンピュータ3から適宜変更することが可能である。物理マシン1の運転を維持させるために、VM2の状態を、中断または停止に対する継続時間の間、それぞれ、「中断維持状態」、「停止維持状態」とし、VM2毎に継続時間経過後に「中断状態」または「停止状態」とする。これにより、すべてのVM2が「中断状態」または「停止状態」とならない限り物理マシン1を中断または停止にできなくできる。つまり、各VM2が「中断維持状態」または「停止維持状態」を終了し、「中断状態」または「停止状態」となることで、物理マシン1は中断または停止する。
生成部178はNIC16を介してパーソナルコンピュータ3から出力される操作命令を監視し、操作命令が出力されない時間が設定ファイル151に記憶した移行時間を経過した場合、中断命令または停止命令を受け付け部171に出力する。具体的には生成部178は、監視対象のVM2の移行時間及び状態を読み出し、時計部18からの出力を参照して当該VM2の操作命令が出力されない時間が移行時間を経過した場合に読み出した状態に対応する命令を出力する。例えばVM21に関しては、生成部178は30分の移行時間を経過後、中断命令を受け付け部171へ出力する。
なお、本実施の形態においては中断命令または停止命令の出力例として、VM2に対する無操作状態の経過をトリガとしたがあくまで一例でありこれに限るものではない。例えば、パーソナルコンピュータ3からOS211に対し、中断命令または停止命令が出力された場合に、OS211が受け付け部171に対し、中断命令または停止命令を出力するようにしても良い。
受け付け部171はVM21の中断命令または停止命令を受け付け、VM21のVMIDと共に中断命令または停止命令を停止部173へ出力する。停止部173はVMIDに対応するVM21へ中断命令または停止命令を出力する。VM21は中断命令または停止命令を受けて中断または停止する。停止部173は中断命令または停止命令の出力後、継続部172へ、中断命令または停止命令を出力したVMID、及び、中断命令または停止命令が出力されたことを示す情報を出力する。中断命令であれば、VMカーネル17は、VM21の状態を「中断維持状態」、停止命令であればVM21の状態を「停止維持状態」と記憶する。継続部172は時間ファイル152を参照し、VM21のVMIDに対応する継続時間を読み出す。継続部172は時計部18の出力を参照し、中断命令または停止命令を受け付けてから読み出した継続時間を経過するまでVMIDに対応するVM21への操作としての起動命令を待つ。継続時間に起動命令がなければ、継続部172はVM21の状態を、「中断維持状態」または「停止維持状態」から、「中断状態」または「停止状態」に変更し、VMカーネル17が状態を記憶する。
出力部174は各VM21、VM22、及びVM23が「運転状態」、「中断状態」、「停止状態」、「中断維持状態」、または「停止維持状態」のいずれにあるかをVMカーネル17から取得し、物理マシン1に対する中断命令または停止命令の発行を判断する判断部175を備える。
本例の場合、VMIDが「VM22」のVM22、及びVMIDが「VM23」のVM23が中断または停止しているか否かを判断する。具体的には、判断部175は、各VM2の状態を管理するVMカーネル17に対し状態を要求することで判断する。VM21及びVM22が「中断状態」で、VM23が「停止状態」であるため、出力部174へ、物理マシン1を中断すると判断したことを通知する。
出力部174は判断部の判断結果を受け、VMカーネル17へ物理マシン1の中断命令または停止命令を出力する。VMカーネル17は物理マシン1の中断命令または停止命令を受け付けた場合、実行中のプログラムを終了し、物理マシン1を中断または停止する。
図5はVM2及び物理マシン1の状態遷移を示す説明図である。横軸は時間を示す。図5は、上からVM21、VM22、VM23それぞれの「運転状態」、「中断状態」、「停止状態」、「中断維持状態」及び「停止維持状態」の時間的変化を示し、物理マシン1の「運転状態」、「中断状態」及び「停止状態」の時間的変化を示す。本例の場合、最初にVM22の中断命令が受け付け部171により受け付けられ、停止部173はVM22を中断して、「中断維持状態」とする。継続部172は8分以上経過するまでパーソナルコンピュータ3から起動命令を待つ。8分以上経過しても起動命令を受けなければ、「中断状態」であることを、判断部175へ出力する。判断部175は他のVM21及びVM23が「運転状態」であるため、物理マシン1を中断または停止できないと判断する。この場合、出力部174は物理マシン1の停止命令を出力しないことから、物理マシン1は引き続き「運転状態」である。
次にVM23の停止命令が受け付け部171により受け付けられ、停止部173はVM23を停止して「停止維持状態」とする。継続部172は2分以上経過するまでパーソナルコンピュータ3から起動命令を待つ。2分以上経過しても起動命令を受けなければ、「停止状態」であることを、判断部175へ出力する。判断部175は他のVM21が「中断維持状態」であるため、物理マシン1を中断または停止できないと判断する。この場合、出力部174は物理マシン1の停止命令を出力しないことから、物理マシン1は引き続き「運転状態」である。最後にVM21の中断命令が受け付け部171により受け付けられ、停止部173はVM21を中断して「中断維持状態」とする。継続部172は3分以上経過するまでパーソナルコンピュータ3から起動命令を待つ。3分以上経過しても起動命令を受けなければ、「中断状態」であることを、判断部175へ出力する。判断部175はVM21が「中断状態」、VM22が「停止状態」及びVM23が「中断状態」であるため、物理マシン1を中断できると判断する。出力部174は、判断部175の判断結果を受け、物理マシン1の中断命令を出力する。本実施の形態においては継続時間を経過した後、出力部174が物理マシン1の中断命令を出力する例を一例として挙げたが、これに限るものではない。出力部174が物理マシン1の停止命令を出力し、物理マシン1を停止しても良い。
出力部174の中断命令または停止命令を受けて、物理マシン1は「中断状態」または「停止状態」へ移行する。なお、物理マシン1の「中断状態」は電源制御部19が、HD15にRAM12の情報を記憶するハイバーネーション(もしくは休止)、または、RAM12に通電を継続するサスペンド(もしくはスリープ、スタンバイ)のいずれかであればよい。また「停止状態」はWake On Lan機能を除いて物理マシン1への電力供給を電源制御部19が停止することをいう。
図6及び図7は制御処理の手順を示すフローチャートである。物理マシン1及びVM2の使用を希望するユーザはパーソナルコンピュータ3を用いて、物理マシン1及びVM2を起動する。パーソナルコンピュータ3は物理マシン1の起動命令を含むマジックパケットをNIC16へ出力する。物理マシン1のNIC16は物理マシン1の起動命令を受け付ける(ステップS61)。NIC16は起動命令を電源制御部19へ出力する。電源制御部19は電源をオンとし、物理マシン1を起動する(ステップS62)。CPU11はVMカーネル17及び制御モジュール170をRAM12にロードして、下記に述べる処理を実行する。
パーソナルコンピュータ3は起動を希望するVM2の選択を受け付ける。パーソナルコンピュータ3は選択を受け付けたVM2の起動命令及びVMIDを物理マシン1へ出力する。起動部177はNIC16を介して出力されたVM2の起動命令及びVMIDを受け付ける(ステップS63)。起動部177はVMIDに対応するVM2を起動する(ステップS64)。VMカーネル17は、VM2の「運転状態」、「中断状態」または「停止状態」を記憶する(ステップS65)。ステップS65では起動後であるので、VMIDに対応づけて、「運転状態」を記憶する。
他のVM2についても起動命令がパーソナルコンピュータ3から出力された場合、ステップS63乃至S65と同様の処理を行う。また以下で述べる各処理は、各VM2において並行処理される。生成部178は設定ファイル151からVMIDに対応する移行時間及び状態を読み出す(ステップS66)。生成部178はパーソナルコンピュータ3からNIC16へVM2に対する操作命令が出力されない時間を、時計部18の出力を参照して計時する(ステップS67)。生成部178はパーソナルコンピュータ3から操作命令があったか否かを判断する(ステップS68)。生成部178は操作命令があったと判断した場合(ステップS68でYES)、ステップS67に処理を戻す。生成部178は操作命令がないと判断した場合(ステップS68でNO)、計時した時間が移行時間を経過したか否かを判断する(ステップS69)。生成部178は移行時間を経過していないと判断した場合(ステップS69でNO)、処理をステップS68へ戻す。
一方、生成部178は移行時間を経過したと判断した場合(ステップS69でYES)、中断命令または停止命令を生成する(ステップS610)。生成部178はVMID、及び、生成した中断命令または停止命令を受け付け部171へ出力する(ステップS71)。受け付け部171はVMID、及び、中断命令または停止命令を受け付ける(ステップS72)。なお、パーソナルコンピュータ3からVM2のVMID、及び、中断命令または停止命令が出力された場合、受け付け部171は当該VMID、及び中断命令または停止命令を受け付ける。停止部173は対応するVM2を中断または停止する(ステップS73)。VMカーネル17は、VM2の状態を記憶する(ステップS74)。ステップS74ではVMIDに対応づけて、「中断維持状態」または「停止維持状態」と記憶する。停止部173は受け付けたVMID、及び、中断命令または停止命令を継続部172へ出力する(ステップS75)。
継続部172は時間ファイル152からVMIDに対応する継続時間を読み出す(ステップS76)。解除部176は継続時間内にVMIDに係るVM2に対する起動命令が、NIC16を介してパーソナルコンピュータ3から出力されたか否かを判断する(ステップS77)。解除部176は起動命令が出力されたと判断した場合(ステップS77でYES)、処理を再びステップS64へ戻す。これにより対応するVM2は再度起動し、物理マシン1は運転を継続する。
解除部176は起動命令が出力されていないと判断した場合(ステップS77でNO)、継続部172は読み出した継続時間を経過したか否かを判断する(ステップS78)。継続部172は継続時間を経過していないと判断した場合(ステップS78でNO)、処理をステップS77へ戻す。継続部172は継続時間を経過したと判断した場合(ステップS78でYES)、VMカーネル17は、VM2の状態をVMIDに対応づけて、「中断状態」または「停止状態」と記憶する(ステップS79)。
判断部175は他の全てのVM2が「中断状態」または「停止状態」にあるか否かを判断する(ステップS710)。具体的には、判断部175はVMカーネル17に記憶した各VM2の状態を参照して判断を行う。判断部175は他の全てのVM2が「中断状態」または「停止状態」にないと判断した場合(ステップS710でNO)、処理をステップS63へ戻す。以上の処理を繰り返し、また他のVM2についても並行して同様の処理を行う。
一方、判断部175は他の全てのVM2が、「中断状態」または「停止状態」にあると判断した場合(ステップS710でYES)、出力部174はVMカーネル17に対し物理マシン1の停止命令を出力する(ステップS711)。CPU11はVMカーネル17からの停止命令を受けて物理マシン1を停止する(ステップS712)。これにより、中断命令または停止命令があった場合でも、継続時間の間物理マシン1の「運転状態」が維持される。従って、「運転状態」が維持されている間にユーザが再度VM2の使用を希望する場合でも、物理マシン1及びVM2を起動する場合に比較して、早期に使用を開始することが可能となる。その一方で、継続時間を経過し、また、他のVM2も全て「中断状態」または「停止状態」にある場合には、再開の可能性が低いと判断し物理マシン1を停止することで、ユーザの利便性を図りつつ省電力を計ることが可能となる。
実施の形態2
実施の形態2は中断命令、または、停止命令のいずれかに応じて継続時間を変更する制御に関する。図8は時間ファイル152のレコードレイアウトを示す説明図である。時間ファイル152にはVMIDに対応づけて第1継続時間である中断時継続時間及び第2継続時間である停止時継続時間が記憶されている。時間ファイル152はVMIDフィールドに加えて、中断時継続時間フィールド及び停止時継続時間フィールドを含む。中断時継続時間フィールドには、VMIDに対応づけて、受け付け部171が中断命令を受け付けた場合に、VM2を「中断維持状態」へ移行させると共に物理マシン1を継続する時間を記憶している。また停止時継続時間フィールドには、VMIDに対応づけて、受け付け部171が停止命令を受け付けた場合に、VM2を「停止維持状態」へ移行させると共に物理マシン1を継続する時間を記憶している。
停止時継続時間は同一のVMIDに対応する中断時継続時間よりも短い時間が記憶されている。これは、停止時は中断時と異なり、物理マシン1を短時間で再開させる可能性が低いことから、省電力を優先したものである。図8の例ではVM21の中断時継続時間は3分であり、停止時継続時間はこれよりも短い2分と記憶されている。なお、時間ファイル152の記憶内容はパーソナルコンピュータ3を介して適宜その値を変更することが可能である。また、中断時継続時間、または、停止時継続時間のいずれかを設定しておき、CPU11が設定した中断時継続時間、または、停止時継続時間に、係数を乗ずることで、停止時継続時間、または、中断時継続時間を算出するようにしても良い。例えば、中断時間継続時間が設定により記憶されている場合、CPU11は1よりも小さい係数を乗ずることで停止時継続時間を算出すればよい。
図9乃至図11は実施の形態2に係る中断または停止処理の手順を示すフローチャートである。ステップS71の処理以降以下の処理を行う。受け付け部171はVMID、及び、中断命令または停止命令を受け付ける(ステップS91)。停止部173にVM2の中断命令または停止命令を出力し、停止部173は対応するVM2を中断または停止する(ステップS92)。VMカーネル17は、VM2の状態をVMIDに対応づけて、「中断維持状態」または「停止維持状態」と記憶する(ステップS93)。受け付け部171は受け付けたVMID、及び、中断命令または停止命令を継続部172へ出力する(ステップS94)。継続部172は中断命令が出力されたか否かを判断する(ステップS95)。
継続部172は中断命令が出力されたと判断した場合(ステップS95でYES)、時間ファイル152からVMIDに対応する中断時継続時間を読み出す(ステップS96)。解除部176は中断時継続時間内にVMIDに係るVM2に対する起動命令が、NIC16を介してパーソナルコンピュータ3から出力されたか否かを判断する(ステップS97)。解除部176は起動命令が出力されたと判断した場合(ステップS97でYES)、処理を再びステップS64へ戻す。これにより対応するVM2は再度起動し、物理マシン1は運転を継続する。
解除部176は起動命令が出力されていないと判断した場合(ステップS97でNO)、継続部172は読み出した中断時継続時間を経過したか否かを判断する(ステップS98)。継続部172は中断時継続時間を経過していないと判断した場合(ステップS98でNO)、処理をステップS97へ戻す。継続部172は中断時継続時間を経過したと判断した場合(ステップS98でYES)、VMカーネル17は、VM2の状態をVMIDに対応づけて、「中断状態」と記憶する(ステップS99)。なおステップS99の処理後、後述するステップS111へ処理を移行する。
ステップS95において、継続部172は中断命令が出力されていないと判断した場合(ステップS95でNO)、時間ファイル152からVMIDに対応する停止時継続時間を読み出す(ステップS101)。解除部176は停止時継続時間内にVMIDに係るVM2に対する起動命令が、NIC16を介してパーソナルコンピュータ3から出力されたか否かを判断する(ステップS102)。解除部176は起動命令が出力されたと判断した場合(ステップS102でYES)、処理を再びステップS64へ戻す。これにより対応するVM2は運転を再開し、物理マシン1は運転を継続する。
解除部176は起動命令が出力されていないと判断した場合(ステップS102でNO)、継続部172は読み出した停止時継続時間を経過したか否かを判断する(ステップS103)。継続部172は停止時継続時間を経過していないと判断した場合(ステップS103でNO)、処理をステップS102へ戻す。継続部172は停止時継続時間を経過したと判断した場合(ステップS103でYES)、VMカーネル17は、VM2の状態をVMIDに対応づけて、「停止状態」と記憶する(ステップS104)。なおステップS104の処理後、後述するステップS111へ処理を移行する。
判断部175は他の全てのVM2が「中断状態」または「停止状態」にあるか否かを判断する(ステップS111)。判断部175は他の全てのVM2が「中断状態」または「停止状態」にないと判断した場合(ステップS111でNO)、処理をステップS63へ戻す。以上の処理を繰り返し、また他のVM2についても並行して同様の処理を行う。一方、判断部175は他の全てのVM2が「中断状態」または「停止状態」にあると判断した場合(ステップS111でYES)、出力部174はVMカーネル17に対し物理マシン1の停止命令を出力する(ステップS112)。CPU11はVMカーネル17からの停止命令を受けて物理マシン1を停止する(ステップS113)。これにより、VM2に対し、中断命令があった場合と停止命令があった場合とで継続運転に関する制御を最適化することでよりユーザの利便性を向上させることができると共に、省電力を計ることが可能となる。
本実施の形態2は以上の如きであり、その他は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態3
実施の形態3は時間ファイル152を最適化する形態に関する。図12は実施の形態3に係る物理マシン1及びVM2のハードウェア及びソフトウェアを示すブロック図である。実施の形態1に加えて、VM2の状態の変化が記録されている履歴ファイル153、VM2の状態の変化を履歴ファイルに記録する抽出部179及び履歴ファイル153を使って時間ファイル152の中断時間及び停止時間を最適化する算出部1710が設けられている。図13は履歴ファイル153のレコードレイアウトを示す説明図である。RAM12またはHD15を含む記憶部に記憶される履歴ファイル153は日毎に各VM2の運転時間、中断時間、または停止時間、及び、各VM2の状態の履歴を記憶している。履歴ファイル153はVMIDフィールド、時間フィールド及び状態フィールドを含む。VMIDフィールドにはVMIDが記憶される。時間フィールドには、VMIDに対応づけて運転時間、中断時間、または停止時間が記憶される。
また状態フィールドにはVMIDに対応づけて記憶した時間におけるVM2の状態を記憶している。図13の例は12月15日月曜日におけるVM21、VM22及びVM23の運転時間、中断時間、または停止時間、並びに、VM21、VM22及びVM23の状態の履歴を示している。例えば、VM21は9時から11時の間は「運転状態」にあり、11時から11時10分の間「中断状態」にあり、11時10分から11時30分までの間は「運転状態」にあることが理解できる。なお、説明を容易にするために年及び秒の記載を省略している。また、時計部18からは曜日の情報、及び、平日または祝日のいずれかを特定するための情報がVMカーネル17へ出力されており、VMカーネル17は履歴ファイル153の各レコードに曜日、及び、平日または祝日の情報を記憶する。
ステップS64、S73、S92、S98及びS103で述べた如く、起動部177がVM2を起動した場合、または、停止部173がVM2を中断あるいは停止した場合、VMカーネル17は、運転、中断または停止時間を状態と共に履歴ファイル153に記憶する。具体的にはVMカーネル17は時計部18の出力を参照し、VMIDに対応づけて履歴ファイル153に運転時間、中断時間または停止時間を、「運転状態」、「中断状態」または「停止状態」と共に記憶する。これにより継続時間を考慮した各VM2の履歴が蓄積される。
抽出部179は履歴ファイル153から各VM2の中断時間または停止時間の内、予め定めた閾値以下の中断時間または停止時間を抽出する。なお、本実施の形態においてはこの閾値を10分とするが、一例でありこれに限るものではない。また本実施の形態においては中断時間及び停止時間の双方を抽出して、時間ファイル152の中断時継続時間及び停止時継続時間の双方を最適化する例を説明するが、これに限るものではない。中断時間または停止時間のいずれかを抽出して、時間ファイル152の中断時継続時間または停止時継続時間のいずれかを最適化しても良い。
抽出部179は各VM2の所定日数分の中断時間及び停止時間を履歴ファイル153の時間フィールド及び状態フィールドを参照して抽出する。本実施の形態においては一例として平日の曜日毎に過去10週分の中断時間及び停止時間を抽出する例を挙げて説明する。例えば祝日を除く月曜日の過去10週分の、10分以下の中断時間及び停止時間を抽出する。なお、抽出例はあくまで一例でありこれに限定するものではない。
算出部1710は抽出部179で抽出した中断時間及び停止時間に基づき、中断時間及び停止時間を最適化する。例えば算出部1710は抽出した中断時間及び停止時間の平均中断時間及び平均停止時間を最適化として算出するようにすれば良い。その他、算出部1710は抽出した中断時間の内最も長いまたは短い中断時間を有する中断時間を最適な中断時間としても良い。同様に、算出部1710は抽出した停止時間の内最も長いまたは短い停止時間を有する停止時間を最適な停止時間としても良い。さらに算出部1710は抽出した中断時間を1分台、2分台、3分台の如く時間単位に分類して正規化し、最も数多く分類された時間単位を最適な中断時間としても良い。同様に、算出部1710は抽出した停止時間を1分台、2分台、3分台の如く時間単位に分類して正規化し、最も数多く分類された時間単位を最適な停止時間としても良い。本実施の形態においては、最適化の例として平均中断時間及び平均停止時間を算出する例を挙げて説明する。
図14は実施の形態3に係る時間ファイル152のレコードレイアウトを示す説明図である。時間ファイル152は曜日毎にVMIDに対応する平均中断時継続時間及び平均停止時継続時間を記憶している。また図14に示す如く、曜日内にて平日または祝日を区別して、VMIDに対応する平均中断時継続時間及び平均停止時継続時間を記憶している。図14は平日月曜日の例を示している。算出部1710は算出した平均中断時間を、平均中断時継続時間として時間ファイル152に記憶する。また、算出部1710は算出した平均停止時間を、平均停止時継続時間として時間ファイル152に記憶する。なお、抽出部179による抽出処理及び算出部1710による算出処理は予め設定した時間帯に毎日実行すれば良い。
図15は最適化処理の手順を示すフローチャートである。VMカーネル17は、起動部177及び停止部173の出力を参照し、VM2の状態に変化があったか否かを判断する(ステップS151)。VMカーネル17は、変化がないと判断した場合(ステップS151でNO)、変化があるまで待機する。一方、運転、中断または停止に係るVM2の状態の変化があったと判断した場合(ステップS151でYES)、図13の如くVMIDに対応づけて時間及び状態を履歴ファイル153に記憶する(ステップS152)。なお、本実施の形態においてはVM2毎に、履歴を記憶し、継続時間を最適化しているが、VM2を、ユーザIDを有する複数人が使用する場合は、さらにユーザ別に履歴を記憶し、ユーザ別に継続時間を最適化しても良い。
抽出部179は予めHD15に記憶された最適化を行う時間を読み出す。これは例えば毎日午後3時等と記憶されている。抽出部179は最適化を行う時間に達したか否かを判断する(ステップS153)。抽出部179は最適化を行う時間に達していないと判断した場合(ステップS153でNO)、処理をステップS151に戻し、再び履歴を蓄積する。抽出部179は最適化を行う時間に達したと判断した場合(ステップS153でYES)、HD15に予め記憶した所定日数及び所定時間(閾値)を読み出す(ステップS154)。
抽出部179は読み出した所定日数分の所定時間以下の中断時間及び停止時間を抽出する(ステップS155)。時計部18からは曜日の情報、及び、平日または祝日のいずれかを特定するための情報も出力される。抽出部179は現在の曜日、及び、平日または祝日が一致する過去所定日数分(例えば10日分)の中断時間及び停止時間の内、所定時間(例えば10分)以下の中断時間及び停止時間を抽出する。算出部1710は中断時間の合計値を読み出した数で除し、また停止時間の合計値を読み出した数で除し、平均中断時間及び平均停止時間を算出する(ステップS156)。
算出部1710は算出した平均中断時間を平均中断時継続時間として、及び平均停止時間を平均停止時継続時間として時間ファイル152に記憶する(ステップS157)。この際時間ファイル152には、曜日や、平日または休日・祝日などの属性を示す情報と共にVMIDに対応する平均中断時継続時間及び平均停止時継続時間が記憶される。以上の処理はVM2毎に実行される。そして、ステップS96にて中断時継続時間を読み出す場合は、継続部172は時計部18から出力される曜日及び祝日か否かの情報を参照して、対応する平均中断時継続時間を時間ファイル152から読み出す。同様に、ステップS101にて停止時継続時間を読み出す場合は、継続部172は時計部18から出力される曜日や、平日または休日・祝日などの属性を示す情報を参照して、対応する平均停止時継続時間を時間ファイル152から読み出す。これにより、各VM2の使用実績に応じて継続時間を最適化することができ、より使い勝手が良く、また省電力の向上をも図ることが可能となる。
本実施の形態3は以上の如きであり、その他は実施の形態1及び2と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態4
実施の形態4は予定に応じて中断または停止する形態に関する。図16は実施の形態4に係る物理マシン1及びVM2のハードウェア及びソフトウェアを示すブロック図である。実施の形態4では新たにタイマ設定部1711及び予定ファイル(停止記憶部)154が設けられている。図17は予定ファイル154のレコードレイアウトを示す説明図である。RAM12またはHD15に設けられる予定ファイル154は平日の月曜日〜金曜日、祝日、または土曜日若しくは日曜日別に各VM2及び物理マシン1の運転時間、中断時間または停止時間の予定を記憶している。この予定ファイル154の内容はパーソナルコンピュータ3から適宜修正することが可能である。
図17の例は、平日月曜日の物理マシン1の停止時間及び運転時間、並びに、各VM2の停止時間及び運転時間を含む予定を記憶している。なお、図17に示した予定はあくまで一例であり、曜日の如何にかかわらず毎日同一の予定としても良く、また、平日と、週末土日及び祝日との2つの予定のみとしても良い。図17の例では、物理マシン1は21時から9時00分までは「停止状態」となるよう予定が記憶されている。物理マシン1の停止時は、VM2も同様に停止するよう予定が記憶されている。タイマ設定部1711は物理マシン1を停止する場合、予定ファイル154を参照し、停止時間の終了時まで(図17の例では9時00分)に物理マシン1が起動するようタイマ181を設定する。
時計部18及びタイマ181は物理マシン1が停止時においても動作しており、タイマ181は、停止時間の終了時に達したと判断した場合、CPU11へ起動命令を出力する。なお、本実施の形態においては、説明を容易にするために、停止時間の終了時に達した場合に、物理マシン1が起動を開始する例を挙げて説明するがこれに限るものではない。例えば、停止時間の終了時前に、物理マシン1を予め起動させても良い。この場合、物理マシン1の起動を開始してからVM2の起動を開始できる状態が整うまでの所要時間を用いて、停止時間の終了時から逆算する。これにより、物理マシン1の起動時間を決定することができる。例えば、物理マシン1の起動に5分要する場合、停止時間の終了時5分前に物理マシン1を起動させる。これにより、停止時間の終了時に、物理マシン1が利用可能な状態となる。なお、物理マシン1の起動に要する時間は予め測定しておくか、あるいはパーソナルコンピュータ3から適宜設定することが可能である。CPU11はVMカーネル17及び制御モジュール170を起動することによって物理マシン1を起動する。起動部177は時計部18の出力及び予定ファイル154を参照し、VM2の中断時間または停止時間の終了時に、対応するVM2を起動する。図17の例では9時にVM21及びVM22が起動され、10時にVM23が起動される。なお、本実施の形態においては、説明を容易にするために、停止時間の終了時に達した場合に、物理マシン1が起動し、その後VM2の起動を開始する例を挙げて説明するがこれに限るものではない。例えば、停止時間の終了時前に、VM2を予め起動させても良い。この場合、物理マシン1の起動を開始してからVM2の起動が完了するまでの所要時間を用いて、停止時間の終了時から逆算する。これにより、物理マシン1の起動時間およびVM2の起動時間を決定することができる。例えば、物理マシン1の起動に5分要し、VM2の起動に3分要する場合、停止時間の終了時8分前に物理マシン1を起動させる。その後、停止時間の終了時3分前にVM2を起動する。これにより、停止時間の終了時に、VM2が利用可能な状態となる。なお、VM2の起動に要する時間は予め測定しておくか、あるいはパーソナルコンピュータ3から適宜設定することが可能である。
図18乃至図20は制御処理の手順を示すフローチャートである。物理マシン1が停止中に、タイマ181は時計部18から出力される現在時刻を取得する(ステップS181)。タイマ181は前回の停止時に設定された物理マシン1の停止時間の終了時に現在時刻が達したか否かを判断する(ステップS182)。タイマ181は停止時間の終了時に現在時刻が達していないと判断した場合(ステップS182でNO)、処理をステップS181へ戻す。一方、タイマ181は停止時間の終了時に現在時刻が達したと判断した場合(ステップS182でYES)、物理マシン1を起動する(ステップS183)。具体的にはタイマ181は電源制御部19にオン信号を出力する。電源制御部19は物理マシン1に電力を供給する。
以下に述べるステップS184〜S201はVM21〜VM23が並行して処理を行う。起動部177は予定ファイル154からVM2の中断時間または停止時間の終了時を読み出し(ステップS184)、時計部18から出力される現在時刻が、VM2の中断時間または停止時間の終了時に達したか否かを判断する(ステップS185)。起動部177はVM2の中断時間または停止時間の終了時に達していないと判断した場合(ステップS185でNO)、VM2の中断時間または停止時間に達するまで待機する。一方、起動部177はVM2の中断時間または停止時間の終了時に達したと判断した場合(ステップS185でYES)、対応するVM2を起動する(ステップS186)。VMカーネル17は、VM2の状態をVMIDに対応づけて、「運転状態」と記憶する(ステップS187)。なお、時計部18は時間の他、曜日及び祝日であるか否かの情報をも起動部177へ出力する。起動部177は曜日及び祝日であるか否かの情報を参照して、図17に示す予定ファイル154から対応するVM2の中断時間及び停止時間を読み出す。なお、起動部177は物理マシン1についても、処理を行う日の曜日及び祝日であるか否かの情報に基づき、対応する停止時間を読み出す。
生成部178はVMIDに対応する移行時間及び状態を設定ファイル151から読み出す(ステップS188)。生成部178はVM2に対する操作命令を受け付けていない時間を計時する(ステップS189)。生成部178はパーソナルコンピュータ3からVM2に対する操作命令があったか否かを判断する(ステップS1810)。生成部178はパーソナルコンピュータ3から操作命令があったと判断した場合(ステップS1810でYES)、ステップS189に処理を戻す。生成部178は操作命令がないと判断した場合(ステップS1810でNO)、計時した時間が移行時間を経過したか否かを判断する(ステップS1811)。生成部178は移行時間を経過していないと判断した場合(ステップS1811でNO)、処理をステップS1810へ戻す。
一方、生成部178は移行時間を経過したと判断した場合(ステップS1811でYES)、中断命令または停止命令を生成する(ステップS1812)。生成部178はVMID、及び、生成した中断命令または停止命令を受け付け部171へ出力する(ステップS191)。受け付け部171はVMID、及び、中断命令または停止命令を受け付ける(ステップS192)。なお、実施の形態1で述べた如く、パーソナルコンピュータ3からVM2のVMID、及び、中断命令または停止命令が出力された場合にも生成部178は中断命令または停止命令を生成しても良いことはもちろんである。
停止部173は対応するVM2を中断または停止する(ステップS193)。VMカーネル17は、VM2の状態を記憶する(ステップS194)。ステップS194ではVMIDに対応づけて、「中断維持状態」または「停止維持状態」を記憶する。停止部173は受け付けたVMID、及び、中断命令または停止命令を継続部172へ出力する(ステップS195)。
継続部172は時間ファイル152からVMIDに対応する継続時間を読み出す(ステップS196)。なお、本実施の形態においては説明を容易にするために中断命令または停止命令の種類にかかわらず、VM2毎に時間ファイル152に記憶された継続時間を用いる例を説明する。解除部176は継続時間内にVMIDに係るVM2に対する起動命令が、NIC16を介してパーソナルコンピュータ3から出力されたか否かを判断する(ステップS197)。解除部176は起動命令が出力されたと判断した場合(ステップS197でYES)、処理を再びステップS186へ戻す。これにより対応するVM2は運転を再開し、物理マシン1は運転を継続する。
解除部176は起動命令が出力されていないと判断した場合(ステップS197でNO)、継続部172は読み出した継続時間を経過したか否かを判断する(ステップS198)。継続部172は継続時間を経過していないと判断した場合(ステップS198でNO)、処理をステップS197へ戻す。継続部172は継続時間を経過したと判断した場合(ステップS198でYES)、VMカーネル17は、VM2の状態をVMIDに対応づけて、「中断状態」または「停止状態」と記憶する(ステップS199)。
判断部175は他の全てのVM2が「中断状態」または「停止状態」にあるか否かを判断する(ステップS201)。具体的には、判断部175はVMカーネル17に記憶した各VM2の状態を参照して判断を行う。判断部175は他の全てのVM2が「中断状態」または「停止状態」にないと判断した場合(ステップS201でNO)、処理をステップS184へ戻す。以上の処理を繰り返し、また他のVM2についても並行して同様の処理を行う。
一方、判断部175は他の全てのVM2が「中断状態」または「停止状態」にあると判断した場合(ステップS201でYES)、時計部18から現在時刻を取得する(ステップS202)。判断部175は現在時刻をタイマ設定部1711へ出力する。タイマ設定部1711は現在時刻よりも後の停止時間の終了時間を予定ファイル154から読み出す(ステップS203)。例えば、現在時刻が11時50分のときは、図17より、後の停止時間が12時〜12時30分であるため、その終了時間である12時30分を読み出す。タイマ設定部1711はタイマ181に読み出した終了時間に物理マシン1が起動するよう起動タイマを設定する(ステップS204)。この起動タイマの設定により物理マシン1がステップS181〜S183の処理により起動する。
出力部174はタイマ設定部1711による起動タイマ設定後、VMカーネル17に対し物理マシン1の停止命令を出力する(ステップS205)。CPU11はVMカーネル17からの停止命令を受けて物理マシン1を停止する(ステップS206)。これにより、予定ファイル154に基づき、利用状況に合わせて物理マシン1及びVM2を「運転状態」にすることが可能となる。
図21乃至図23は制御処理の手順を示すフローチャートである。例えば図17に示す予定ファイル154では物理マシン1は早朝5時の段階において、予定が「停止」であるが、ユーザがパーソナルコンピュータ3を通じて、物理マシン1及びVM2を起動したものとする。NIC16はパーソナルコンピュータ3から物理マシン1の起動命令を受け付ける(ステップS211)。NIC16は起動命令を電源制御部19へ出力する。電源制御部19は電力を供給し、物理マシン1を起動する(ステップS212)。
起動部177はNIC16を介してVM2の起動命令及びVMIDを受け付ける(ステップS213)。起動部177は起動対象のVM2を起動する(ステップS214)。VMカーネル17は、VM2の状態をVMIDに対応づけて、「運転状態」と記憶する(ステップS215)。
生成部178はVMIDに対応する移行時間及び状態を設定ファイル151から読み出す(ステップS216)。生成部178はVM2に対する操作命令を受け付けていない時間を計時する(ステップS217)。生成部178はパーソナルコンピュータ3から操作命令があったか否かを判断する(ステップS218)。生成部178は操作命令があったと判断した場合(ステップS218でYES)、ステップS217に処理を戻す。生成部178は操作命令がないと判断した場合(ステップS218でNO)、計時した時間が移行時間を経過したか否かを判断する(ステップS219)。生成部178は移行時間を経過していないと判断した場合(ステップS219でNO)、処理をステップS218へ戻す。
一方、生成部178は移行時間を経過したと判断した場合(ステップS219でYES)、中断命令または停止命令を生成する(ステップS2110)。生成部178はVMID、及び、生成した中断命令または停止命令を受け付け部171へ出力する(ステップS221)。受け付け部171はVMID、及び、中断命令または停止命令を受け付ける(ステップS222)。なお、実施の形態1で述べた如く、パーソナルコンピュータ3からVM2のVMID、及び、中断命令または停止命令が出力された場合にも生成部178は中断命令または停止命令を生成しても良いことはもちろんである。
停止部173は対応するVM2を中断または停止する(ステップS223)。VMカーネル17は、VM2の状態を記憶する(ステップS224)。ステップS224ではVMIDに対応づけて、「中断維持状態」または「停止維持状態」を記憶する。停止部173は受け付けたVMID、及び、中断命令または停止命令を継続部172へ出力する(ステップS225)。継続部172は時間ファイル152からVMIDに対応する継続時間を読み出す(ステップS226)。なお、本実施の形態においては説明を容易にするために中断命令または停止命令の種類にかかわらず、VM2毎に時間ファイル152に記憶された継続時間を用いる例を説明する。解除部176は継続時間内にVMIDに係るVM2に対する起動命令が、NIC16を介してパーソナルコンピュータ3から出力されたか否かを判断する(ステップS227)。解除部176は起動命令が出力されたと判断した場合(ステップS227でYES)、処理を再びステップS214へ戻す。これにより対応するVM2は運転を再開し、物理マシン1は運転を継続する。なお、VM2に対して継続時間の間、操作を待つ例として、パーソナルコンピュータ3からの起動操作に基づくVM2の起動命令を挙げたが一例でありこれに限るものではない。例えば、起動部177が、対象となるVM2に関し、継続時間内に予定ファイル154の中断時間または停止時間の終了時に達したと判断した場合、VM2の起動操作を行っても良い。起動部177は中断維持状態または停止維持状態にあるVM2、及び、解除部176に対し、起動部177の起動操作に伴う起動命令を出力する。解除部176は「中断維持状態」、または、「停止維持状態」を解除すると共に、VM2を再度起動し、物理マシン1は運転を継続する。
解除部176は起動命令が出力されていないと判断した場合(ステップS227でNO)、継続部172は読み出した継続時間を経過したか否かを判断する(ステップS228)。継続部172は継続時間を経過していないと判断した場合(ステップS228でNO)、処理をステップS227へ戻す。継続部172は継続時間を経過したと判断した場合(ステップS228でYES)、VMカーネル17は、VM2の状態をVMIDに対応づけて、「中断状態」または「停止状態」と記憶する(ステップS229)。
判断部175は他の全てのVM2が「中断状態」または「停止状態」にあるか否かを判断する(ステップS231)。具体的には、判断部175はVMカーネル17に記憶した各VM2の状態を参照して判断を行う。判断部175は他の全てのVM2が「中断状態」または「停止状態」にないと判断した場合(ステップS231でNO)、処理をステップS213へ戻す。以上の処理を繰り返し、また他のVM2についても並行して同様の処理を行う。
一方、判断部175は他の全てのVM2が「中断状態」または「停止状態」にあると判断した場合(ステップS231でYES)、時計部18から現在時刻を取得する(ステップS232)。判断部175は現在時刻をタイマ設定部1711へ出力する。タイマ設定部1711は現在時刻よりも後の停止時間の終了時間を予定ファイル154から読み出す(ステップS233)。例えば後の停止時間が12時〜12時30分と記憶されていた場合、終了時間である12時30分を読み出す。タイマ設定部1711はタイマ181に読み出した終了時間に物理マシン1が起動するようタイマ181に起動タイマを設定する(ステップS234)。この起動タイマの設定により物理マシン1がステップS181〜S183の処理により起動する。出力部174はタイマ設定部1711による起動タイマ設定後、VMカーネル17に対し物理マシン1の停止命令を出力する(ステップS235)。CPU11はVMカーネル17からの停止命令を受けて物理マシン1を停止する(ステップS236)。これにより、予定ファイル154において物理マシン1の停止時間において起動した場合でも、VM2の利用状況に応じて再度「停止状態」とすることで省電力を図ることが可能となる。
本実施の形態4は以上の如きであり、その他は実施の形態1乃至3と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態5
実施の形態5は履歴に基づき予定ファイル154を変更する形態に関する。図24は実施の形態5に係る物理マシン1及びVM2のハードウェア及びソフトウェアを示すブロック図である。実施の形態4に加えて変更部1712が設けられている。変更部1712は履歴ファイル153を参照し、予定ファイル154内の各VM2及び物理マシン1の時間を変更する。まずVM2の予定ファイル154内の時間変更について説明する。
変更部1712は一つのVM2の過去の中断時間または停止時間を履歴ファイル153から読み出し、中断時間が相互に重複する時間、または、停止時間が相互に重複する時間を抽出する。変更部1712はこの抽出した時間を中断時間、または、停止時間として予定ファイル154に記憶する。本実施の形態においては一例として過去所定日数分(例えば3日分)の中断時間及び停止時間の双方を用いて変更する例を説明する。
図25はVM2の中断時間及び停止時間の変化を示す説明図である。一例として上から平日月曜日の過去3週分、12月8日月曜日、12月15日月曜日及び12月22日月曜日の中断時間及び停止時間を示している。また一番下に変更後の平日月曜日の中断時間及び停止時間を示している。横軸は時間である。変更部1712は履歴ファイル153を参照し、対象とするVM2の3日分の中断時間及び停止時間を抽出する。変更部1712は12月8日月曜日、12月15日月曜日及び12月22日月曜日の中断時間が相互に重複する時間を変更後の中断時間として抽出する。
変更部1712はこの抽出した変更後の中断時間をVMIDに対応づけて予定ファイル154に記憶する。例えばVM21の中断時間が12時から1時、VM22の中断時間が11時から2時、VM23の中断時間が12時30分から1時10分の場合、12時30分から1時が重複する中断時間として抽出される。同様に、変更部1712は12月8日月曜日、12月15日月曜日及び12月22日月曜日の停止時間が相互に重複する時間を変更後の停止時間として抽出する。変更部1712はこの抽出した変更後の停止時間をVMIDに対応づけて予定ファイル154に記憶する。
また、変更部1712は12月8日月曜日、12月15日月曜日及び12月22日月曜日の中断時間と停止時間とが重複する場合、相互に重複する時間を変更後の中断時間として抽出する。変更部1712はこの抽出した変更後の中断時間をVMIDに対応づけて予定ファイル154に記憶する。例えば、12月8日月曜日が「中断」、12月15日月曜日が「停止」、12月22日月曜日が「中断」として重複している場合、重複する時間を「中断」として予定ファイル154に記憶する。以上述べた処理を変更部1712は平日の各曜日について実行する。また平日以外の土曜日、日曜日及び祝日についても同様の処理を行う。具体的には、過去数週分の土曜日の中断時間(停止時間)が重複する中断時間(停止時間)を抽出する。また祝日については、過去数回分の祝日の中断時間(停止時間)が重複する中断時間(停止時間)を抽出する。
その他、平日の月曜日から金曜日までの5日間の中断時間(停止時間)が重複する中断時間(停止時間)を変更後の中断時間としても良い。さらに、土曜日、日曜日及び祝日の中断時間(停止時間)が重複する中断時間(停止時間)を変更後の中断時間としても良い。以上の処理は各VM2について実行される。これにより図17に示す予定ファイル154は過去の中断または停止履歴に基づき変更される。
続いて物理マシン1の中断時間または停止時間の変更について説明する。変更部1712は全てのVM2の変更後の予定ファイル154に記憶した中断時間または停止時間に基づき、物理マシン1の中断時間または停止時間を変更する。図26は各VM2の中断時間及び停止時間、並びに、物理マシン1の中断時間及び停止時間の変化を示す説明図である。図26には、上からVM21、VM22、及びVM23の変更後の中断時間及び停止時間の変化が示されている。一番下には変更後の物理マシン1の中断時間及び停止時間の変化が示されている。横軸は時間である。変更部1712は予定ファイル154から変更後のVM21、VM22、及びVM23の変更後の中断時間及び停止時間を読み出す。
変更部1712は図26に示す如く、VM21〜VM23相互に重複する中断時間を抽出する。そして変更部1712は抽出した変更後の中断時間を物理マシン1の中断時間として予定ファイル154に記憶する。また変更部1712はVM21〜VM23相互に重複する停止時間を抽出する。そして変更部1712は抽出した変更後の停止時間を物理マシン1の停止時間として予定ファイル154に記憶する。なお、本実施の形態においては、中断時間及び停止時間の双方を変更する例を挙げて説明するがいずれか一方であっても良い。
さらに変更部1712は、変更後の予定ファイル154から、VM21〜VM23の中断時間と停止時間とが相互に重複する時間を抽出する。図26の例では、VM21及びVM23が中断時間であり、VM22が停止時間となる時間が存在する。この場合、変更部1712は抽出した中断時間と停止時間とが重複する時間を、物理マシン1の中断時間として予定ファイル154に記憶する。中断及び停止が重複する場合、早期起動を優先すべく、中断時間として記憶するものとしたものである。
図27乃至図29はVM2の予定ファイル154の変更処理手順を示すフローチャートである。変更部1712は時計部18から出力される時間、日、曜日、及び祝日であるか否かの情報を参照し、物理マシン1の起動が、日付が変わってから第1番目の起動であるか否かを判断する。変更部1712は日付が変わってから第1番目の起動であると判断した場合、前日までのVM2の履歴ファイル153を考慮して予定ファイル154を変更すべく以下の処理を行う。なお、本実施の形態においては一日の初めに変更処理を行う例を挙げて説明するがあくまで一例であり、これに限るものではない。例えば1ヶ月毎、毎週金曜日、または6時間おき等、適宜のタイミングで変更処理を行えばよい。
変更部1712は前日が平日であるか否かを判断する(ステップS271)。変更部1712は前日が平日であると判断した場合(ステップS271でYES)、履歴ファイル153から前日の曜日の所定週分のVM2の中断時間及び停止時間を読み出す(ステップS272)。変更部1712は複数の中断時間が日間で相互に重複する中断時間を抽出する(ステップS273)。変更部1712は、対象となるVMIDに対応づけて、予定ファイル154の平日、前日の曜日に、抽出した中断時間を記憶する(ステップS274)。変更部1712は複数の停止時間が日間で相互に重複する停止時間を抽出する(ステップS275)。変更部1712は、対象となるVMIDに対応づけて、予定ファイル154の平日、前日の曜日に、抽出した停止時間を記憶する(ステップS276)。
変更部1712は中断時間及び停止時間の双方が日間で相互に重複する中断時間及び停止時間を抽出する(ステップS277)。変更部1712は予定ファイル154の平日、前日の曜日に、「中断状態」として抽出した時間を記憶する(ステップS278)。変更部1712は前日が平日でないと判断した場合(ステップS271でNO)、前日は土曜日または日曜日であるか否かを判断する(ステップS279)。変更部1712は前日が土曜日または日曜日であると判断した場合(ステップS279でYES)、履歴ファイル153から前日の曜日の所定週分のVM2の中断時間及び停止時間を読み出す(ステップS281)。変更部1712は複数の中断時間が日間で相互に重複する中断時間を抽出する(ステップS282)。
変更部1712は、対象となるVMIDに対応づけて、予定ファイル154の土曜日または日曜日に、抽出した中断時間を記憶する(ステップS283)。変更部1712は複数の停止時間が日間で相互に重複する停止時間を抽出する(ステップS284)。変更部1712は、対象となるVMIDに対応づけて、予定ファイル154の土曜または日曜日に、抽出した停止時間を記憶する(ステップS285)。変更部1712は中断時間及び停止時間の双方が日間で相互に重複する中断時間及び停止時間を抽出する(ステップS286)。変更部1712は予定ファイル154の土曜日または日曜日に、「中断状態」として抽出した時間を記憶する(ステップS287)。
変更部1712は土曜日または日曜日でないと判断した場合(ステップS279でNO)、祝日であると判断し、履歴ファイル153から前日を含め所定祝日分のVM2の中断時間及び停止時間を、履歴ファイル153から読み出す(ステップS288)。変更部1712は複数の中断時間が祝日間で相互に重複する中断時間を抽出する(ステップS289)。変更部1712は、対象となるVMIDに対応づけて、予定ファイル154の祝日に、抽出した中断時間を記憶する(ステップS291)。変更部1712は複数の停止時間が祝日間で相互に重複する停止時間を抽出する(ステップS292)。変更部1712は、対象となるVMIDに対応づけて、予定ファイル154の祝日に、抽出した停止時間を記憶する(ステップS293)。
変更部1712は中断時間及び停止時間の双方が祝日間で相互に重複する中断時間及び停止時間を抽出する(ステップS294)。変更部1712は予定ファイル154の祝日に、「中断状態」として抽出した時間を記憶する(ステップS295)。ステップS295、S278及びS287の処理の後、変更部1712は全てのVM2について以上述べた処理を終了したか否かを判断する(ステップS296)。変更部1712は全てのVM2について処理を終了していない場合(ステップS296でNO)、処理をステップS271へ戻し、以上の処理を繰り返す。変更部1712は全てのVM2について処理を終了したと判断した場合(ステップS296でYES)、一連の処理を終了する。
図30は物理マシン1に係る予定ファイル154の変更処理手順を示すフローチャートである。ステップS296にて各VM2の変更処理の後、物理マシン1の変更処理を以下のとおり実行する。変更部1712は予定ファイル154から前日の全てのVM2の中断時間及び停止時間を読み出す(ステップS301)。変更部1712は読み出した中断時間が各VM2間で重複する中断時間を抽出する(ステップS302)。変更部1712は予定ファイル154の前日に抽出した物理マシン1の中断時間を記憶する(ステップS303)。変更部1712は読み出した停止時間が各VM2間で重複する停止時間を抽出する(ステップS304)。変更部1712は予定ファイル154の前日に抽出した物理マシン1の停止時間を記憶する(ステップS305)。
変更部1712は読み出した中断時間及び停止時間が各VM2間で重複する中断時間及び停止時間を抽出する(ステップS306)。変更部1712は予定ファイル154の前日に物理マシン1の「中断状態」を記憶し、また抽出した物理マシン1の中断時間を記憶する(ステップS307)。これにより、VM2毎の使用状況に応じた予定ファイル154が構築される。さらに、各VM2の使用状況に応じてこれらを総括する物理マシン1の予定ファイル154についても最適化を図ることが可能となる。また、VM2の使用状況に応じて物理マシン1の予定ファイルを更新するため、平日のみならず土曜日、日曜日あるいは祝日毎の使用状況が反映される。
本実施の形態5は以上の如きであり、その他は実施の形態1乃至4と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態6
図31は実施の形態6に係る物理マシン1及びVM2のハードウェア及びソフトウェアを示すブロック図である。実施の形態1乃至5に係る物理マシン1を動作させるためのプログラムは、本実施の形態6のように、読み取り部(図示せず)にCD−ROM等の可搬型記録媒体1Aを読み取らせてHD15に記憶しても良い。また、当該プログラムは、インターネット等の通信網を介して接続される他のサーバコンピュータ(図示せず)からダウンロードすることも可能である。以下に、その内容を説明する。
図31に示す物理マシン1は、中断命令または停止命令を受け付けさせ、継続時間の間運転を継続させる等のプログラムを、可搬型記録媒体1Aによりまたは通信網を介して他のサーバコンピュータ(図示せず)からダウンロードする。当該プログラムは、制御モジュール170としてインストールされ、RAM12にロードして実行される。これにより、上述した物理マシン1として機能する。
本実施の形態6は以上の如きであり、その他は実施の形態1乃至5と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
以上の実施の形態1乃至6を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
コンピュータ上で動作する仮想マシンを制御するためのプログラムにおいて、
コンピュータに、
運転中の仮想マシンに対する中断命令または停止命令を受け付ける受け付けステップと、
該受け付けステップにより中断命令または停止命令を受け付けた場合、前記仮想マシンを中断または停止する停止ステップと、
前記仮想マシンへの操作を継続時間の間待つ継続ステップと、
前記継続時間を経過した後に、前記コンピュータの中断命令または停止命令を出力する出力ステップと
を実行させるプログラム。
(付記2)
仮想マシンは複数であり、
前記出力ステップは、
前記継続ステップの継続時間を経過した後に、他の仮想マシンの全てが中断または停止しているか否かを判断する判断ステップと、
該判断ステップにより他の仮想マシンの全てが中断または停止していると判断した場合に、前記コンピュータの中断命令または停止命令を出力するステップ
を含む付記1に記載のプログラム。
(付記3)
前記継続ステップにより、前記仮想マシンに対する操作命令を受け付けた場合、前記停止ステップにより、中断または停止した前記仮想マシンを再度起動する解除ステップ
を含む付記2に記載のプログラム。
(付記4)
前記継続ステップは、
前記受け付けステップにより中断命令または停止命令を受け付けた場合、仮想マシン毎に継続時間を記憶した記憶部から対応する仮想マシンの継続時間を読み出すステップと、
前記仮想マシンへの操作を前記読み出した継続時間の間待つ継続ステップと
を含む
付記2に記載のプログラム。
(付記5)
前記継続ステップは、
前記受け付けステップにより中断命令を受け付けた場合、仮想マシン毎に中断命令に対応する第1継続時間を記憶した記憶部から対応する仮想マシンの第1継続時間を読み出すステップと、
前記仮想マシンへの操作を前記第1継続時間の間待つ継続ステップと、
前記受け付けステップにより停止命令を受け付けた場合、仮想マシン毎に停止命令に対応する前記第1継続時間よりも短い第2継続時間を記憶した記憶部から対応する仮想マシンの第2継続時間を読み出すステップと、
前記仮想マシンへの操作を前記第2継続時間の間待つ継続ステップと
を含む
付記2に記載のプログラム。
(付記6)
仮想マシンの中断時間または停止時間の履歴を記憶部に記憶する記憶ステップと、
前記記憶部から仮想マシンの中断時間または停止時間を抽出する抽出ステップと、
該抽出ステップにより抽出した中断時間または停止時間に基づき、前記仮想マシンの継続時間を算出する算出ステップと
を含む付記4に記載のプログラム。
(付記7)
前記抽出ステップは、
前記記憶部から仮想マシンの中断時間または停止時間の内、予め定めた閾値以下の中断時間または停止時間を抽出する
付記6に記載のプログラム。
(付記8)
前記算出ステップにより算出した仮想マシンの継続時間を、仮想マシンに対応づけて記憶部に記憶するステップ
を含む付記7に記載のプログラム。
(付記9)
前記算出ステップは、
前記抽出ステップにより抽出した仮想マシンの中断時間または停止時間の平均値を継続時間として算出する
付記7に記載のプログラム。
(付記10)
コンピュータ上で動作する仮想マシンを制御するためのプログラムにおいて、
コンピュータに、
コンピュータの停止時間の予定を記憶部に記憶する停止記憶ステップと、
前記コンピュータの運転中に時計部から出力される時間が前記停止記憶ステップにより前記記憶部に記憶したコンピュータの停止時間である場合に、複数の仮想マシン全てが中断または停止しているか否かを判断する停止判断ステップと、
該停止判断ステップにより中断または停止していると判断した場合に、前記停止時間の終了時に前記コンピュータを起動させるためのタイマを設定する設定ステップと、
該設定ステップによりタイマを設定した後に前記コンピュータの停止命令を出力する停止出力ステップと
を実行させるプログラム。
(付記11)
仮想マシンの中断時間または停止時間の予定を記憶部に記憶する予定記憶ステップと、
前記コンピュータが起動した場合に、前記記憶部に記憶した前記仮想マシンの中断時間または停止時間の終了時に、仮想マシンを起動するステップ
を含む付記10に記載のプログラム。
(付記12)
仮想マシンの中断時間または停止時間の履歴を記憶部に記憶する履歴記憶ステップと、
該履歴記憶ステップにより記憶した仮想マシンの中断時間または停止時間に基づき、前記予定記憶ステップにより前記記憶部に記憶した中断時間または停止時間の予定を変更する変更ステップ
を含む付記10に記載のプログラム。
(付記13)
前記変更ステップは、
前記履歴記憶ステップにより前記記憶部に記憶した仮想マシンの所定日数分の中断時間または停止時間を読み出すステップと、
読み出した所定日数分の中断時間または停止時間が重複する中断時間または停止時間を抽出するステップと、
抽出した中断時間または停止時間へ、前記予定記憶ステップにより前記記憶部に記憶した中断時間または停止時間の予定を変更するステップと
を含む付記12に記載のプログラム。
(付記14)
前記停止記憶ステップは、
コンピュータの停止時間または中断時間の予定を記憶部に記憶し、
前記変更ステップにより変更した全ての仮想マシンの中断時間または停止時間の予定を読み出すステップと、
読み出した全ての仮想マシンの中断時間または停止時間が重複する中断時間または停止時間を抽出するステップと、
抽出した中断時間または停止時間に、前記停止記憶ステップにより記憶したコンピュータの停止時間または中断時間を変更するステップと
を含む付記12に記載のプログラム。
(付記15)
運転中の仮想マシンに対する中断命令または停止命令を受け付ける受け付けステップと、
該受け付けステップにより中断命令または停止命令を受け付けた場合、前記仮想マシンを中断または停止する停止ステップと、
前記仮想マシンへの操作を継続時間の間待つ継続ステップと、
前記継続時間を経過した後に、他の仮想マシンの全てが中断または停止しているか否かを判断する判断ステップと、
前記コンピュータの運転中に時計部から出力される時間が前記停止記憶ステップにより前記記憶部に記憶したコンピュータの停止時間でない場合であり、かつ、前記判断ステップにより他の仮想マシンの全てが中断または停止している場合に、前記時計部から出力される時間よりも後の停止時間の終了時に前記コンピュータを起動させるためのタイマを設定するステップと、
該ステップによりタイマを設定した後に前記コンピュータの停止命令を出力するステップと
を含む付記10に記載のプログラム。
(付記16)
仮想マシンを動作させるコンピュータにおいて、
運転中の仮想マシンに対する中断命令または停止命令を受け付ける受け付け部と、
該受け付け部により中断命令または停止命令を受け付けた場合、前記仮想マシンを中断または停止する停止部と、
前記仮想マシンへの操作を継続時間の間待つ継続部と、
前記継続時間を経過した後に、前記コンピュータの中断命令または停止命令を出力する出力部と
を備えるコンピュータ。
(付記17)
仮想マシンを動作させるコンピュータにおいて、
コンピュータの停止時間の予定を記憶部に記憶する停止記憶部と、
前記コンピュータの運転中に時計部から出力される時間が前記記憶部に記憶したコンピュータの停止時間である場合に、複数の仮想マシン全てが中断または停止しているか否かを判断する停止判断部と、
該停止判断部により中断または停止していると判断した場合に、前記停止時間の終了時に前記コンピュータを起動させるためのタイマを設定する設定部と、
該設定部によりタイマを設定した後に前記コンピュータの停止命令を出力する停止出力部と
を備えるコンピュータ。
(付記18)
コンピュータ上で動作する仮想マシンを制御するための制御方法において、
運転中の仮想マシンに対する中断命令または停止命令を受け付ける受け付けステップと、
該受け付けステップにより中断命令または停止命令を受け付けた場合、前記仮想マシンを中断または停止する停止ステップと、
前記仮想マシンへの操作を継続時間の間待つ継続ステップと、
前記継続時間を経過した後に、前記コンピュータの中断命令または停止命令を出力する出力ステップと
を含む制御方法。
(付記19)
コンピュータ上で動作する仮想マシンを制御するため制御方法において、
コンピュータの停止時間の予定を記憶部に記憶する停止記憶ステップと、
前記コンピュータの運転中に時計部から出力される時間が前記記憶部に記憶したコンピュータの停止時間である場合に、複数の仮想マシン全てが中断または停止しているか否かを判断する停止判断ステップと、
該停止判断ステップにより中断または停止していると判断した場合に、前記停止時間の終了時に前記コンピュータを起動させるためのタイマを設定する設定ステップと、
該設定ステップによりタイマを設定した後に前記コンピュータの停止命令を出力する停止出力ステップと
を含む制御方法。
1 物理マシン
1A 可搬型記録媒体
2 VM
3 パーソナルコンピュータ
10 ハードウェアリソース
11 CPU
12 RAM
15 HD
16 NIC
17 VMカーネル
18 時計部
19 電源制御部
21、22、23 VM
151 設定ファイル
152 時間ファイル
153 履歴ファイル
154 予定ファイル
171 受け付け部
172 継続部
173 停止部
174 出力部
175 判断部
176 解除部
177 起動部
178 生成部
179 抽出部
181 タイマ
211 OS
212 アプリケーション
1710 算出部
1711 タイマ設定部
1712 変更部

Claims (8)

  1. コンピュータ上で動作する仮想マシンを制御するためのプログラムにおいて、
    コンピュータに、
    運転中の仮想マシンに対する中断命令または停止命令を受け付ける受け付けステップと、
    該受け付けステップにより中断命令または停止命令を受け付けた場合、前記仮想マシンを中断または停止する停止ステップと、
    前記仮想マシンへの操作を継続時間の間待つ継続ステップと、
    前記継続時間を経過した後に、前記コンピュータの中断命令または停止命令を出力する出力ステップと
    を実行させるプログラム。
  2. 仮想マシンは複数であり、
    前記出力ステップは、
    前記継続ステップの継続時間を経過した後に、他の仮想マシンの全てが中断または停止しているか否かを判断する判断ステップと、
    該判断ステップにより他の仮想マシンの全てが中断または停止していると判断した場合に、前記コンピュータの中断命令または停止命令を出力するステップ
    を含む請求項1に記載のプログラム。
  3. 前記継続ステップにより、前記仮想マシンに対する操作命令を受け付けた場合、前記停止ステップにより、中断または停止した前記仮想マシンを再度起動する解除ステップ
    を含む請求項2に記載のプログラム。
  4. 前記継続ステップは、
    前記受け付けステップにより中断命令または停止命令を受け付けた場合、仮想マシン毎に継続時間を記憶した記憶部から対応する仮想マシンの継続時間を読み出すステップと、
    前記仮想マシンへの操作を前記読み出した継続時間の間待つ継続ステップと
    を含む請求項2に記載のプログラム。
  5. 前記継続ステップは、
    前記受け付けステップにより中断命令を受け付けた場合、仮想マシン毎に中断命令に対応する第1継続時間を記憶した記憶部から対応する仮想マシンの第1継続時間を読み出すステップと、
    前記仮想マシンへの操作を前記読み出した第1継続時間の間待つ継続ステップと、
    前記受け付けステップにより停止命令を受け付けた場合、仮想マシン毎に停止命令に対応する前記第1継続時間よりも短い第2継続時間を記憶した記憶部から対応する仮想マシンの第2継続時間を読み出すステップと、
    前記仮想マシンへの操作を前記読み出した第2継続時間の間待つ継続ステップと
    を含む請求項2に記載のプログラム。
  6. コンピュータ上で動作する仮想マシンを制御するためのプログラムにおいて、
    コンピュータに、
    コンピュータの停止時間の予定を記憶部に記憶する停止記憶ステップと、
    前記コンピュータの運転中に時計部から出力される時間が前記停止記憶ステップにより前記記憶部に記憶したコンピュータの停止時間である場合に、複数の仮想マシン全てが中断または停止しているか否かを判断する停止判断ステップと、
    該停止判断ステップにより中断または停止していると判断した場合に、前記停止時間の終了時に前記コンピュータを起動させるためのタイマを設定する設定ステップと、
    該設定ステップによりタイマを設定した後に前記コンピュータの停止命令を出力する停止出力ステップと
    を実行させるプログラム。
  7. 仮想マシンを動作させるコンピュータにおいて、
    運転中の仮想マシンに対する中断命令または停止命令を受け付ける受け付け部と、
    該受け付け部により中断命令または停止命令を受け付けた場合、前記仮想マシンを中断または停止する停止部と、
    前記仮想マシンへの操作を継続時間の間待つ継続部と、
    前記継続時間を経過した後に、前記コンピュータの中断命令または停止命令を出力する出力部と
    を備えるコンピュータ。
  8. コンピュータ上で動作する仮想マシンを制御するための制御方法において、
    運転中の仮想マシンに対する中断命令または停止命令を受け付ける受け付けステップと、
    該受け付けステップにより中断命令または停止命令を受け付けた場合、前記仮想マシンを中断または停止する停止ステップと、
    前記仮想マシンへの操作を継続時間の間待つ継続ステップと、
    前記継続時間を経過した後に、前記コンピュータの中断命令または停止命令を出力する出力ステップと
    を含む制御方法。
JP2009058261A 2009-03-11 2009-03-11 プログラム、コンピュータ及び制御方法 Expired - Fee Related JP5359401B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009058261A JP5359401B2 (ja) 2009-03-11 2009-03-11 プログラム、コンピュータ及び制御方法
US12/721,464 US8539483B2 (en) 2009-03-11 2010-03-10 Computer and control method for interrupting machine operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009058261A JP5359401B2 (ja) 2009-03-11 2009-03-11 プログラム、コンピュータ及び制御方法

Publications (2)

Publication Number Publication Date
JP2010211615A true JP2010211615A (ja) 2010-09-24
JP5359401B2 JP5359401B2 (ja) 2013-12-04

Family

ID=42731602

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009058261A Expired - Fee Related JP5359401B2 (ja) 2009-03-11 2009-03-11 プログラム、コンピュータ及び制御方法

Country Status (2)

Country Link
US (1) US8539483B2 (ja)
JP (1) JP5359401B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012178006A (ja) * 2011-02-25 2012-09-13 Fuji Xerox Co Ltd 省電力制御装置及びプログラム
JPWO2012105241A1 (ja) * 2011-02-03 2014-07-03 Necカシオモバイルコミュニケーションズ株式会社 遠隔操作システム、中継装置、移動体通信装置、端末内サーバ制御方法及び中継処理方法
JPWO2013076913A1 (ja) * 2011-11-24 2015-04-27 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム、仮想計算機システム制御方法、及び仮想計算機システム制御プログラム

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5206750B2 (ja) * 2010-08-09 2013-06-12 サンケン電気株式会社 電源装置およびプログラム
US8468524B2 (en) * 2010-10-13 2013-06-18 Lsi Corporation Inter-virtual machine time profiling of I/O transactions
US9804876B2 (en) * 2012-02-28 2017-10-31 Red Hat Israel, Ltd. Hypervisor-driven hibernation
GB2507779A (en) * 2012-11-09 2014-05-14 Ibm Terminating a virtual machine in response to user inactivity in a cloud computing environment
US9201706B2 (en) * 2013-03-11 2015-12-01 International Business Machines Corporation Minimizing workload migrations during cloud maintenance operations
US9851998B2 (en) * 2014-07-30 2017-12-26 Microsoft Technology Licensing, Llc Hypervisor-hosted virtual machine forensics
GB2529204A (en) 2014-08-13 2016-02-17 Ibm Suspending and resuming virtual machines

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01129315A (ja) * 1987-11-16 1989-05-22 Hitachi Ltd 情報処理装置
JPH08202475A (ja) * 1995-01-23 1996-08-09 Taito Corp 誤操作訂正方法と誤操作訂正付き電子機器
JPH11348379A (ja) * 1998-06-05 1999-12-21 Toshiba Tec Corp プリンタ装置
JP2001290568A (ja) * 2000-04-05 2001-10-19 Nec Software Hokkaido Ltd 消費電力を低減する電源制御方法、情報処理装置、及び記録媒体
JP2007065255A (ja) * 2005-08-31 2007-03-15 Ricoh Co Ltd 画像形成装置、画像形成装置の制御方法、画像形成装置の電力監視システム及び画像形成装置の電力監視システムの制御方法。
WO2007108065A1 (ja) * 2006-03-17 2007-09-27 Fujitsu Limited サーバ管理方法、プログラム及び装置
JP2008129833A (ja) * 2006-11-21 2008-06-05 Lenovo Singapore Pte Ltd 携帯式コンピュータおよび動作モードの制御方法
WO2008149412A1 (ja) * 2007-06-04 2008-12-11 Fujitsu Limited 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07225694A (ja) 1994-02-09 1995-08-22 Hitachi Ltd 仮想計算機システム
US5590342A (en) * 1994-11-29 1996-12-31 Intel Corporation Method and apparatus for reducing power consumption in a computer system using virtual device drivers
JP2001043098A (ja) 1999-07-29 2001-02-16 Matsushita Electric Ind Co Ltd オペレーティングシステムおよび仮想計算機システム
US7225441B2 (en) * 2000-12-27 2007-05-29 Intel Corporation Mechanism for providing power management through virtualization
US7334142B2 (en) 2004-01-22 2008-02-19 International Business Machines Corporation Reducing power consumption in a logically partitioned data processing system with operating system call that indicates a selected processor is unneeded for a period of time
US7543166B2 (en) * 2004-05-12 2009-06-02 Intel Corporation System for managing power states of a virtual machine based on global power management policy and power management command sent by the virtual machine
JP2006113767A (ja) 2004-10-14 2006-04-27 Sony Corp 情報処理システム、および、情報処理方法、並びに、プログラム
US7792026B2 (en) * 2006-02-17 2010-09-07 Alcatel-Lucent Usa Inc. Method of calculating a time period to wait for missing data packets
US8069362B2 (en) * 2008-02-26 2011-11-29 Sap Ag Automated electrical power savings in virtualization environments
US8935692B2 (en) * 2008-05-22 2015-01-13 Red Hat, Inc. Self-management of virtual machines in cloud-based networks
JP5222651B2 (ja) * 2008-07-30 2013-06-26 株式会社日立製作所 仮想計算機システムおよび仮想計算機システムの制御方法
US9026824B2 (en) * 2008-11-04 2015-05-05 Lenovo (Singapore) Pte. Ltd. Establishing power save mode in hypervisor system
WO2010079587A1 (ja) * 2009-01-06 2010-07-15 三菱電機株式会社 管理装置及び管理方法及びプログラム
US8327169B2 (en) * 2009-02-26 2012-12-04 International Business Machines Corporation Power management to maximize reduced power state for virtual machine platforms
JP5469940B2 (ja) * 2009-07-13 2014-04-16 株式会社日立製作所 計算機システム、仮想計算機モニタ及び仮想計算機モニタのスケジューリング方法
US8607082B2 (en) * 2009-08-31 2013-12-10 Red Hat Israel, Ltd. Mechanism for managing power in a virtual machine system
JP5454262B2 (ja) * 2010-03-18 2014-03-26 富士通株式会社 プライバシー保護装置、プライバシー保護方法、プライバシー保護プログラム、及びライフログ管理システム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01129315A (ja) * 1987-11-16 1989-05-22 Hitachi Ltd 情報処理装置
JPH08202475A (ja) * 1995-01-23 1996-08-09 Taito Corp 誤操作訂正方法と誤操作訂正付き電子機器
JPH11348379A (ja) * 1998-06-05 1999-12-21 Toshiba Tec Corp プリンタ装置
JP2001290568A (ja) * 2000-04-05 2001-10-19 Nec Software Hokkaido Ltd 消費電力を低減する電源制御方法、情報処理装置、及び記録媒体
JP2007065255A (ja) * 2005-08-31 2007-03-15 Ricoh Co Ltd 画像形成装置、画像形成装置の制御方法、画像形成装置の電力監視システム及び画像形成装置の電力監視システムの制御方法。
WO2007108065A1 (ja) * 2006-03-17 2007-09-27 Fujitsu Limited サーバ管理方法、プログラム及び装置
JP2008129833A (ja) * 2006-11-21 2008-06-05 Lenovo Singapore Pte Ltd 携帯式コンピュータおよび動作モードの制御方法
WO2008149412A1 (ja) * 2007-06-04 2008-12-11 Fujitsu Limited 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2012105241A1 (ja) * 2011-02-03 2014-07-03 Necカシオモバイルコミュニケーションズ株式会社 遠隔操作システム、中継装置、移動体通信装置、端末内サーバ制御方法及び中継処理方法
US10225738B2 (en) 2011-02-03 2019-03-05 Nec Corporation Remote operation system, relay apparatus, mobile communication apparatus, in-terminal server control method, and relay processing method
JP2012178006A (ja) * 2011-02-25 2012-09-13 Fuji Xerox Co Ltd 省電力制御装置及びプログラム
JPWO2013076913A1 (ja) * 2011-11-24 2015-04-27 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム、仮想計算機システム制御方法、及び仮想計算機システム制御プログラム

Also Published As

Publication number Publication date
US8539483B2 (en) 2013-09-17
JP5359401B2 (ja) 2013-12-04
US20100235557A1 (en) 2010-09-16

Similar Documents

Publication Publication Date Title
JP5359401B2 (ja) プログラム、コンピュータ及び制御方法
US9268384B2 (en) Conserving power using predictive modelling and signaling
US8176341B2 (en) Platform power management based on latency guidance
US7137117B2 (en) Dynamically variable idle time thread scheduling
JP5347648B2 (ja) プログラム、情報処理装置及び状態出力方法
US7849463B2 (en) Dynamically variable idle time thread scheduling
TW200532429A (en) Computer system power policy adjustment in response to an affirmative indication from a user
CN101790721A (zh) 执行顺序决定装置、执行顺序决定程序、执行顺序决定电路及信息处理装置
JP2009076107A (ja) システムパワーを考慮したメディアコンテンツ表示方法
JP2010211526A (ja) プログラム、コンピュータ及び制御方法
KR20060057515A (ko) 보조 컴퓨팅 디바이스용 데이터를 프리페치하기 위한 주컴퓨터 시스템의 웨이킹
TWI274246B (en) Server, client, and method for shutting down power of computers on network
US7296050B2 (en) Distributed computing system and method
Brakmo et al. μSleep: a technique for reducing energy consumption in handheld devices
JP3600556B2 (ja) 情報処理装置
TW201237756A (en) Method for fast resuming computer system and computer system
TWI274245B (en) An electronic system, its method of operation and a data storage device for power conservation
JP5493444B2 (ja) プログラム、コンピュータ、仮想マシン制御方法及び仮想マシン制御システム
JP6928263B2 (ja) 情報処理装置、計算機制御方法、および計算機制御プログラム
JP2005309807A (ja) 情報処理システム、プログラム
TW550451B (en) Programmable power-on system and method for central processing unit
JP2004078358A (ja) 省電力システムおよび省電力装置並びに省電力プログラム
TWI395096B (zh) 電源管理方法及其相關晶片組及電腦系統
JPH1083232A (ja) オートパワーオフ方法、及びこれを用いた情報処理装置
CN117795813A (zh) 电源单元充电模式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130424

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130430

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130528

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130819

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees