仮想計算機、遠隔起動プログラム、遠隔起動方法及び仮想計算機システム
【課題】仮想計算機環境におけるゲストOSをネットワーク経由で不正に起動されることを防止する。
【解決手段】仮想計算機1は、ホストOSによって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成部11と、生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶部12と、ゲストOSの停止中に、識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を識別情報記憶部12により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、ホストOSを介して起動するゲストOS起動部13とを備える。
【解決手段】仮想計算機1は、ホストOSによって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成部11と、生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶部12と、ゲストOSの停止中に、識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を識別情報記憶部12により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、ホストOSを介して起動するゲストOS起動部13とを備える。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想計算機、遠隔起動プログラム、遠隔起動方法及び仮想計算機システムに関する。
【背景技術】
【0002】
従来、パーソナルコンピュータやサーバ等を遠隔操作する機能として、WOL(Wake on LAN)がある。WOLは、LAN(Local Area Network)に接続されたコンピュータの電源が切断されているときに、このコンピュータを同じくLANに接続された他のコンピュータから電源が切断されているコンピュータの電源を起動させる技術である。WOLを用いることにより、例えばネットワーク管理者は、コンピュータのメンテナンスを夜間や休日に一斉に実施する場合に、現場に行かなくても身近にあるコンピュータを操作し、遠隔地のコンピュータの電源を起動することが可能となる。
【0003】
このようなWOLを実行するためには、起動されるコンピュータのLANカード、マザーボード、BIOS(Basic Input/Output System)、及びOS等がWOLに対応している必要がある。
【0004】
ここで、クライアントサーバシステムの実マシン環境におけるWOLのしくみについて、図13を参照しながら説明する(非特許文献1を参照)。図13は、実マシン環境のWOLを説明する図である。図13に示すように、WOLクライアントは、電源が切断中の管理対象パソコンの電源起動を遠隔操作する。具体的には、WOLクライアントは、電源切断中の管理対象パソコンのMACアドレスを連続して16個含むWOLパケット(マジックパケット)を送信する。そして、WOLに対応したLANアダプタ(LANカード)がマジックパケットを認識し、マジックパケットに含まれたMACアドレスに対応する管理対象パソコンの電源を起動する。
【0005】
また、複数の異なるノードを2以上のパーティションに区分編成した実マシン環境が提案されている。このような実マシン環境では、パーティション管理ソフトウェアが、パーティション内のノードに含まれる各NIC(Network Interface Card)のWOLフィルタを構成する。そして、パーティション管理ソフトウェアは、NICへ向けられたマジックパケットを認識し、NICに対するノードの電源を起動する。
【0006】
ところで、近年、1つのコンピュータ上で複数のOSを動作させる仮想計算機(VM:Virtual Machine)が注目されている。仮想計算機では、コンピュータの電源を投入した際に最初に起動されるホストOSと、ホストOS上で動作するゲストOSとを同時に動作させることが可能である。
【0007】
このような仮想計算機に対して上記のWOLを適用する場合には、通常、コンピュータの電源の投入に応じて、ホストOSが起動される。そして、ホストOSがゲストOSの電源を起動する。ここで、仮想計算機環境におけるWOLのしくみについて、図14を参照しながら説明する。図14は、仮想計算機環境のWOLを説明する図である。図14に示すように、例えば管理用パソコンが、電源が切断中のゲストOSの電源起動を遠隔操作する。具体的には、管理用パソコンは、ホストOSへのログインを実行する。そして、管理用パソコンがホストOSへのログインに成功した場合には、管理用パソコンがホストOSに対し、電源切断中のゲストOSの電源起動を指示する。そして、ホストOSは、指示されたゲストOSの電源を起動する。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2004−171412号公報
【特許文献2】特開2005−20728号公報
【非特許文献】
【0009】
【非特許文献1】http://itpro.nikkeibp.co.jp/article/Keyword/20070222/262829/ ITpro、2006.09.15
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、仮想計算機環境における従来のWOL技術では、第三者であっても仮想計算機が備えるゲストOSをネットワーク経由で不正に起動できてしまうという問題がある。すなわち、ネットワーク管理者等の遠隔操作者は、管理用パソコンを操作し、ホストOSにログインできれば、ホストOSを介して、全てのゲストOSに対してアクセスできる。そのため、ホストOSにログインするために必要なユーザ名及びパスワードが漏洩すると、これらを知った第三者が、ホストOSにログインし、ゲストOSをネットワーク経由で不正に起動できてしまうことになる。
【0011】
開示の技術は、上記に鑑みてなされたものであって、仮想計算機環境におけるゲストOSをネットワーク経由で不正に起動されることを防止できるセキュアな仮想計算機、遠隔起動プログラム、遠隔起動方法及び仮想計算機システムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本願の開示する仮想計算機は、一つの態様において、ホストOS(Operating System)によって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成部と、前記識別情報生成部によって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶部と、ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を前記識別情報記憶部により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動部とを備える。
【発明の効果】
【0013】
本願の開示する仮想計算機の一つの態様によれば、仮想計算機が備えるゲストOSに対するネットワーク経由の不正な起動を確実に防止できるという効果を奏する。
【図面の簡単な説明】
【0014】
【図1】図1は、実施例1に係る仮想計算機の構成を示す機能ブロック図である。
【図2】図2は、仮想計算機の全体構成の一例を示す図である。
【図3】図3は、実施例2に係る仮想計算機システムの構成を示す機能ブロック図である。
【図4】図4は、マジックパケットキー管理記憶部のデータ構造の一例を示す図である。
【図5】図5は、マジックパケットキー記憶部のデータ構造の一例を示す図である。
【図6】図6は、マジックパケットキー生成処理の動作を示すフローチャートである。
【図7】図7は、ゲストOS起動処理の動作を示すフローチャートである。
【図8】図8は、実施例2に係る仮想計算機システムの動作を示すシーケンス図である。
【図9】図9は、実施例3に係る仮想計算機システムの構成を示す機能ブロック図である。
【図10】図10は、ゲストOS起動処理の動作を示すフローチャートである。
【図11】図11は、実施例3に係る仮想計算機システムの動作を示すシーケンス図である。
【図12】図12は、遠隔起動プログラムを実行するコンピュータを示す図である。
【図13】図13は、実マシン環境のWOLを説明する図である。
【図14】図14は、仮想計算機環境のWOLを説明する図である。
【発明を実施するための形態】
【0015】
以下に、本願の開示する仮想計算機、遠隔起動プログラム、遠隔起動方法及び仮想計算機システムの実施例を図面に基づいて詳細に説明する。なお、本実施例によりこの発明が限定されるものではない。
【実施例1】
【0016】
図1は、本実施例1に係る仮想計算機の構成を示す機能ブロック図である。図1に示すように、仮想計算機1は、ネットワークと接続し、ホストOS10及びゲストOS20−1〜20−nを有する。また、ホストOS10は、識別情報生成部11、識別情報記憶部12及びゲストOS起動部13を有する。
【0017】
ゲストOS(Operating System)20−1〜20−nの起動は、ホストOS10により制御される。そして、識別情報生成部11が、ゲストOS20−1〜20−nの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する。
【0018】
識別情報記憶部12は、識別情報生成部11によって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する。ゲストOS起動部13は、ゲストOSの停止中に、識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得する。この場合に、ゲストOS起動部13は、当該識別情報を識別情報記憶部12により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、ホストOS10を介して起動する。
【0019】
ここで、ホストOS10及びゲストOS20−1〜20−n(例えばnを「3」とする)を含む仮想計算機1の全体構成を、図2を参照しながら説明する。図2(a)は、仮想計算機1の全体構成図を示し、図2(b)は、入出力(IO:Input/Output)処理の実行図を示す。図2(a)に示すように、仮想計算機1は、ホストOS10、ゲストOS20−1〜20−3のほか、ハイパーバイザ30及びハードウェア40を有する。
【0020】
ホストOS10は、仮想計算機1の動作の根幹となる基本ソフトウェアであり、ゲストOS20−1〜20−3の起動や停止等全ての制御を行う。また、ホストOS10は、CPU(Central Processing Unit)、メモリ及びIO等の資源をゲストOS20−1〜20−3に割り当てる。さらに、ホストOS10は、ゲストOS20−1〜20−3が実行した仮想的な入出力処理を行って、実装された入出力装置に反映させる。例えば、図2(b)に示すように、ホストOS10は、ゲストOS20−1が実行した仮想的な入出力処理の処理結果を、HDD(Hard Disk Drive)装置に記憶する。また、ホストOS10は、ゲストOS20−2が実行した仮想的な入出力処理の処理結果を、ネットワークに送信する。
【0021】
ゲストOS20−1〜20−3は、ホストOS10と同様に基本ソフトウェアであり、ホストOS10上では動作しないアプリケーション等を動作させることができる。また、ゲストOS20−1〜20−3は、ホストOS10にて割り当てられた資源を用いて、仮想的に入出力処理を実行し、入出力処理の処理結果をホストOS10を介して入出力装置に反映する。さらに、ゲストOS20−1〜20−3は、自OSが停止中にホストOS10によって起動される。
【0022】
ハイパーバイザ30は、ホストOS10及びゲストOS20−1〜20−3がコンピュータのハードウェア40を利用可能なように、ハードウェア40を仮想化する。そして、ホストOS10及びゲストOS20−1〜20−3は、ハイパーバイザ30上で動作する。なお、ハイパーバイザ30は、仮想計算機1に電源を投入すると、最初に動作し、ホストOS10を起動する。
【0023】
ハードウェア40は、ネットワークと接続するLAN(Local Area Network)カード等を指し、LANカードを含む周辺デバイスへの基本的な入出力の環境を提供するBIOS(Basic Input/Output System)によって制御される。
【0024】
ハードウェア40は、例えばゲストOS20−1の起動に使用する新たな識別情報の生成要求をネットワークから取得した場合、当該生成要求を、ハイパーバイザ30を介して識別情報生成部11に伝達する。そして、識別情報生成部11は、ゲストOS20−1の起動に使用する新たな識別情報を生成する。また、識別情報記憶部12は、識別情報生成部11にて生成された識別情報を、当該識別情報を使用して起動するゲストOS20−1に対応付けて記憶する。さらに、ゲストOS20−1の停止中に、ハードウェア40は、識別情報を使用してゲストOS20−1を起動する起動要求をネットワークから取得した場合、当該起動要求を、ハイパーバイザ30を介してゲストOS起動部13に伝達する。そして、ゲストOS起動部13は、伝達された識別情報を識別情報記憶部12により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOS20−1を起動する。
【0025】
このようにして、仮想計算機1は、ゲストOSの起動に使用する新たな識別情報の生成要求がされる度に、新たな識別情報を生成し、最新の生成要求の際に生成された新たな識別情報を当該ゲストOSに対応付ける。このため、仮想計算機1は、ネットワーク経由で識別情報を使用したゲストOSの起動要求がされると、当該ゲストOSに対応付けられた最新の新たな識別情報で、起動要求の際使用された識別情報の正当性を確認できる。その結果、仮想計算機1は、ゲストOSに対する不正な起動を確実に防止でき、当該ゲストOSの起動をセキュアにできる。すなわち、仮想計算機1は、ゲストOSの起動要求の際に用いられる識別情報が漏洩した場合であっても、漏洩した識別情報を用いてのゲストOSの起動を防止できる。
【実施例2】
【0026】
[実施例2に係る仮想計算機の構成]
図3は、実施例2に係る仮想計算機2を用いた仮想計算機システム9の構成を示す機能ブロック図である。仮想計算機システム9は、仮想計算機2及びクライアント側計算機3を有する。仮想計算機2は、ホストOS及びゲストOSを制御するホストOS制御部50と、記憶部60と、各ゲストOSを制御するゲストOS制御部70−1〜70−nとを有する。また、ホストOS制御部50は、マジックパケットキー生成部51、ゲストOS起動部52及びマジックパケットキー破棄部53を有する。また、記憶部60には、マジックパケットキー管理記憶部61が含まれる。さらに、ゲストOS制御部70−1〜70−nは、異なるゲストOSにそれぞれ備えられ、マジックパケットキー要求部71及びマジックパケットキー送信部72をそれぞれ有する。
【0027】
なお、ホストOS制御部50及びゲストOS制御部70−1〜70−nは、例えばASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路である。また、ホストOS制御部50及びゲストOS制御部70−1〜70−nは、これに限定されるものではなく、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路であっても良い。また、記憶部60は、例えば、RAM(Random Access Memory)、フラッシュメモリ(flash memory)等の半導体メモリ素子、又は、HDD、光ディスク等の記憶装置である。
【0028】
マジックパケットキー生成部51は、各ゲストOSのいずれかのOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得すると、当該識別情報を生成する。具体的には、マジックパケットキー生成部51は、ゲストOS制御部70−1〜70−nのマジックパケットキー要求部71から新たな識別情報の生成要求を取得すると、ゲストOSに対応付けられる識別情報を生成する。
【0029】
例えば、マジックパケットキー生成部51は、各ゲストOSに対応付けられる識別情報を、UUID(Universally Unique IDentifier)を用いて生成する。また、マジックパケットキー生成部51は、識別情報をMACアドレスと同一形式で生成するものとしても良い。具体的には、マジックパケットキー生成部51は、識別情報をMACアドレスと同様に、16進文字を12個連続した文字列、例えば「0xAABBCCDDEEFF」で生成する。さらに、マジックパケットキー生成部51は、UUIDを用いて生成するものとして説明したが、これに限定されず、各ゲストOSに対して一意に定められる識別情報であれば良い。なお、本実施例では、かかる識別情報を、「マジックパケットキー」というものとする。
【0030】
また、マジックパケットキー生成部51は、生成したマジックパケットキーを、当該マジックパケットキーを使用して起動するゲストOSに対応付けて、マジックパケットキー管理記憶部61に格納する。ここで、マジックパケットキー管理記憶部61について、図4を参照しながら説明する。図4は、マジックパケットキー管理記憶部61に記憶されるデータのデータ構造の一例を示す図である。図4に示すように、マジックパケットキー管理記憶部61は、複数のゲストOS毎に、エントリ番号61a、ゲストOS名61b及びマジックパケットキー61cを対応付けて記憶する。
【0031】
エントリ番号61aは、ゲストOSに一意に対応付けられる番号であり、例えば「1」から昇順に連番で付けられる。ゲストOS名61bは、ゲストOSにあらかじめ定められている識別子である。マジックパケットキー61cは、ゲストOS名61bに対応付けられたマジックパケットキーである。このマジックパケットキー61cは、ゲストOS名61bに対して1対1に対応付けられるものであっても良い。すなわち、複数のクライアント側計算機3が同一のゲストOSを起動する場合、各クライアント側計算機3が使用するマジックパケットキー61cは、当該ゲストOSに対して一意に対応付けられるものであっても良い。
【0032】
また、マジックパケットキー61cは、ゲストOS名61bに対して1対n(n>1)に対応付けられるものであっても良い。すなわち、複数のクライアント側計算機3が同一のゲストOSを起動する場合、各クライアント側計算機3が使用するマジックパケットキー61cは、当該ゲストOSに対して、クライアント側計算機3毎に対応付けられるものであっても良い。例えば、図4の例では、マジックパケットキー61cは、ゲストOS名61b「Guest1」に対して、クライアント側計算機3毎に対応付けられる。一方は「AA−BB−CC−DD−EE−FF」であり、他方は「GG−HH−II−JJ−KK−LL」である。なお、前述したとおり、マジックパケットキー61cは、MACアドレスと同一形式であっても良い。
【0033】
図3の説明に戻ると、マジックパケットキー生成部51は、生成したマジックパケットキーを、マジックパケットキーの要求元のゲストOS制御部70−1〜70−nに送信する。
【0034】
ゲストOS起動部52は、ゲストOSの停止中に、マジックパケットキーを使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得する。この場合に、ゲストOS起動部52は、当該マジックパケットキーをマジックパケットキー管理記憶部61により記憶されたマジックパケットキー61cと照合し、照合結果に基づいて、起動要求がされたゲストOSを、ホストOSを介して起動する。さらに、ゲストOS起動部52は、起動判定部52a及び起動部52bを有する。
【0035】
起動判定部52aは、ゲストOSの停止中に、マジックパケットキーを使用して当該ゲストOSを起動する起動要求をクライアント側計算機3からネットワーク経由で取得すると、当該マジックパケットキーに対応付けられたゲストOSを起動するか否かを判定する。具体的には、起動判定部52aは、ゲストOSの起動要求であってマジックパケットキーが付加された起動要求をゲストOS起動要求部83から取得すると、取得した起動要求から付加されたマジックパケットキーを抽出する。そして、起動判定部52aは、抽出したマジックパケットキーとマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cとを照合する。そして、起動判定部52aは、当該マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたいずれかのマジックパケットキー61cと一致した場合には、一致したマジックパケットキーに対応付けられたゲストOSを起動するものと判定する。一方、起動判定部52aは、当該マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたいずれのマジックパケットキー61cとも一致しない場合には、ゲストOSを起動しないものと判定する。
【0036】
起動部52bは、ゲストOSを起動するものと判定し、且つ当該ゲストOSが停止中である場合、停止中の当該ゲストOSを起動する。また、起動部52bは、ゲストOSを起動した起動結果を、ゲストOSの起動要求元のクライアント側計算機3に送信する。
【0037】
マジックパケットキー破棄部53は、マジックパケットキー管理記憶部61によって記憶されるマジックパケットキーを使用してゲストOSが起動された場合、当該マジックパケットキーをマジックパケットキー管理記憶部61から破棄する。例えば、マジックパケットキー破棄部53は、マジックパケットキーが1回使用されると、このマジックパケットキーを「無効キー」と判断するものとする。すなわち、マジックパケットキー破棄部53は、起動部52bによりマジックパケットキーを使用してゲストOSが起動されると、当該マジックパケットキーを「無効キー」と判断する。そして、マジックパケットキー破棄部53は、当該マジックパケットキーをマジックパケットキー管理記憶部61から削除する。なお、上記では、マジックパケットキー破棄部53は、マジックパケットキーが1回使用されると当該マジックパケットキーを「無効キー」と判断する場合を説明したが、これに限定されるものではない。例えば、マジックパケットキー破棄部53は、同一のマジックパケットキーが所定回数使用されると、当該マジックパケットキーを「無効キー」と判断しても良い。さらに、マジックパケットキー破棄部53は、マジックパケットキー毎に定められる有効期限又は有効期間が経過した場合、当該マジックパケットキーを「無効キー」と判断しても良い。
【0038】
マジックパケットキー要求部71は、自ゲストOSの起動に使用される新たなマジックパケットキーの生成要求をクライアント側計算機3からネットワーク経由で取得する。すると、マジックパケットキー要求部71は、当該マジックパケットキーの生成要求をマジックパケットキー生成部51に出力する。また、マジックパケットキー要求部71は、マジックパケットキー生成部51から、生成された新たなマジックパケットキーを取得する。
【0039】
マジックパケットキー送信部72は、マジックパケットキー要求部71にて取得された新たなマジックパケットキーを、マジックパケットキーの要求元のゲストOSマジックパケットキー要求部81に送信する。
【0040】
ゲストOSマジックパケットキー要求部81は、ゲストOSの起動に使用する新たなマジックパケットキーの生成要求を、当該ゲストOSを備える仮想計算機2のマジックパケットキー要求部71に、ネットワーク経由で出力する。また、ゲストOSマジックパケットキー要求部81は、マジックパケット要求部71から新たなマジックパケットキーを取得すると、マジックパケットキー記憶部82に格納する。
【0041】
ここで、マジックパケットキー記憶部82について、図5を参照しながら説明する。図5は、マジックパケットキー記憶部82に記憶されるデータのデータ構造の一例を示す図である。図5に示すように、マジックパケットキー記憶部82は、マジックパケットキー82a等を記憶する。マジックパケットキー82aは、クライアント側計算機3によって起動されるゲストOSに対応付けられたマジックパケットキーである。例えば、図5の例では、ゲストOSに対応付けられたマジックパケットキー82aは、「AA−BB−CC−DD−EE−FF」である。
【0042】
ゲストOS起動要求部83は、ゲストOSの停止中に、マジックパケットキー記憶部82に記憶されているマジックパケットキーを使用して当該ゲストOSを起動する起動要求を、ネットワークを経由してゲストOS起動部52に出力する。また、ゲストOS起動要求部83は、ゲストOSの起動結果を、ゲストOS起動部52から取得する。そして、ゲストOS起動要求部83は、取得した起動結果からゲストOSの起動が成功したか否かを判断する。
【0043】
[実施例2に係るマジックパケットキー生成処理の動作]
次に、実施例2に係るマジックパケットキー生成処理を、図6を参照して説明する。図6は、マジックパケットキー生成処理の動作を示すフローチャートである。以下に示すフローチャートのうち、ステップS11及びステップS18は、クライアント側計算機3の動作である。また、ステップS12及びステップS17は、ゲストOS制御部70−1〜70−nの動作である。さらに、ステップS13〜16は、ホストOS制御部50の動作であるものとする。なお、本動作の説明では、ゲストOS制御部70−1を有するゲストOSのマジックパケットキーが生成される場合を例として説明する。
【0044】
まず、クライアント側計算機3のゲストOSマジックパケット要求部81は、ゲストOS制御部70−1を有するゲストOSに接続する。そして、ゲストOSマジックパケット要求部81は、接続したゲストOSの起動に使用する新たなマジックパケットキーの生成要求を、ネットワーク経由で当該ゲストOSのマジックパケットキー要求部71に送信する(ステップS11)。
【0045】
続いて、マジックパケットキー要求部71は、ゲストOSマジックパケット要求部81から新たなマジックパケットキーの生成要求をネットワーク経由で取得すると、マジックパケットキー生成部51に新たなマジックパケットキーの割り当て要求を送信する(ステップS12)。
【0046】
続いて、ホスト制御部50のマジックパケットキー生成部51は、マジックパケットキー要求部71から新たなマジックパケットキーの割り当て要求を取得すると、依頼元のゲストOSに対応付けられる新たなマジックパケットキーを生成する(ステップS13)。
【0047】
そして、マジックパケットキー生成部51は、生成したマジックパケットキーが他のゲストOSのマジックパケットキーに割り当てられているか否かを判定する(ステップS14)。そして、マジックパケットキーが他のゲストOSのマジックパケットキーに割り当てられていると判定された場合には(ステップS14、Yes)、マジックパケットキーを再生成するために、ステップS13に移行する。
【0048】
一方、マジックパケットキーが他のゲストOSのマジックパケットキーに割り当てられていないと判定された場合には(ステップS14、No)、マジックパケットキーを割り当て依頼がされたゲストOSに対応付けて、マジックパケットキー管理記憶部61に格納する(ステップS15)。
【0049】
そして、マジックパケットキー生成部51は、生成したマジックパケットキーを、依頼元のゲストOS制御部70−1に送信する(ステップS16)。
【0050】
続いて、ゲストOS制御部70−1のマジックパケットキー送信部72は、マジックパケットキー生成部51によって生成された新たなマジックパケットキーを、マジックパケットキーの生成要求元のゲストOSマジックパケットキー要求部81に送信する(ステップS17)。
【0051】
続いて、クライアント側計算機3のゲストOSマジックパケットキー要求部81は、マジックパケット要求部71からマジックパケットキーを取得すると、このマジックパケットキーをマジックパケットキー記憶部82に格納する(ステップS18)。
【0052】
[実施例2に係るゲストOS起動処理の動作]
次に、実施例2に係るゲストOS起動処理を、図7を参照して説明する。図7は、ゲストOS起動処理の動作を示すフローチャートである。以下に示すフローチャートのうち、ステップS21は、クライアント側計算機3の動作である。また、ステップS22〜31は、ホストOS制御部50の動作であるものとする。なお、本動作の説明では、ゲストOS制御部70−1を有するゲストOSが停止中にネットワーク経由で起動される場合を例として説明する。
【0053】
まず、クライアント側計算機3のゲストOS起動要求部83は、停止中のゲストOSを起動する起動要求であってマジックパケットキーが付加された起動要求を、ネットワーク経由でゲストOS起動部52に送信する(ステップS21)。
【0054】
続いて、ホストOS制御部50の起動判定部52aは、ゲストOS起動要求部83からゲストOSを起動する起動要求を取得すると、取得した起動要求からマジックパケットキーを抽出する。そして、起動判定部52aは、抽出したマジックパケットキーが、マジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致するか否かを判定する(ステップS22)。そして、マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致しないと判定された場合には(ステップS22、No)、起動判定部52は、マジックパケットキーが不一致である旨の起動結果を、起動要求元に送信する(ステップS23)。
【0055】
一方、マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致すると判定された場合には(ステップS22、Yes)、起動判定部52は、マジックパケットキーに対応付けられたゲストOSが未起動か否かを判定する(ステップS24)。そして、ゲストOSが未起動でない、すなわちゲストOSが起動済みであると判定された場合には(ステップS24、No)、マジックパケットキー破棄部53は、マジックパケットキーを「無効キー」であると判断して、当該マジックパケットキーをマジックパケットキー管理記憶部61から破棄する(ステップS25)。そして、起動判定部52aは、マジックパケットキーに対応付けられたゲストOSが起動済みである旨の起動結果を、起動要求元に送信する(ステップS26)。
【0056】
一方、ゲストOSが未起動であると判定された場合には(ステップS24、Yes)、起動部52bは、マジックパケットキーに対応付けられたゲストOSを起動する(ステップS27)。続いて、起動部52bは、ゲストOSの起動が成功したか否かを判定する(ステップS28)。そして、ゲストOSの起動が成功しなかったと判定された場合には(ステップS28、No)、起動判定部52aは、ゲストOSの起動の失敗原因を示す起動結果を、起動要求元に送信する(ステップS29)。
【0057】
一方、ゲストOSの起動が成功したと判定された場合は(ステップS28、Yes)、マジックパケットキー破棄部53は、マジックパケットキーを「無効キー」であると判断し、当該マジックパケットキーをマジックパケットキー管理記憶部61から破棄する(ステップS30)。そして、起動部52bは、ゲストOSの起動が成功した旨の起動結果を、起動要求元に送信する(ステップS31)。
【0058】
[実施例2に係る仮想計算機システムの動作]
次に、実施例2に係る仮想計算機システム9の動作を、データの受け渡しの観点から説明する。図8は、実施例2に係る仮想計算機システム9の処理動作を示すシーケンス図である。なお、本動作の説明では、ゲストOS制御部70−1を機能させるゲストOSが、ネットワーク経由で起動される場合を例として説明する。
【0059】
クライアント側計算機3は、ゲストOSの起動に使用する新たなマジックパケットキーの生成要求を、ゲストOS制御部70−1へ送信する(ステップS41〜42)。そして、ゲストOS制御部70−1は、当該生成要求を、ホストOS制御部50へ送信する(ステップS43〜44)。
【0060】
続いて、ホストOS制御部50は、ゲストOSの新たなマジックパケットキーを生成する(ステップS45)。そして、ホストOS制御部50は、生成したマジックパケットキーを、当該マジックパケットキーを使用して起動するゲストOSに対応付けてマジックパケットキー管理記憶部61に格納する。そして、ホストOS制御部50は、生成した新たなマジックパケットキーを要求元のゲストOS制御部70−1を介してクライアント側計算機3へ送信する(ステップS46〜S47)。そして、クライアント側計算機3は、当該マジックパケットキーをマジックパケットキー記憶部82に格納する。
【0061】
その後、ゲストOS制御部70−1を機能させるゲストOSが停止したとする。この場合、クライアント側計算機3は、マジックパケットキー記憶部82に記憶されているマジックパケットキーを使用して停止中のゲストOSを起動する起動要求をホストOS制御部50へ送信する(ステップS48〜S49)。
【0062】
続いて、ホストOS制御部50は、マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致するか否かを判定し、一致する場合には、マジックパケットキーに対応付けられたゲストOSを起動する(ステップS50)。ここでは、一致したマジックパケットキーがゲストOS制御部70−1を機能させるゲストOSに対応付けられたマジックパケットキーであるものとすると、ホストOS制御部50は、当該マジックパケットキーに対応付けられたゲストOSを起動する(ステップS51〜52)。
【0063】
そして、ホストOS制御部50は、ゲストOSの起動結果を取得すると(ステップS53)、取得した起動結果をクライアント側計算機3に送信する(ステップS54)。
【0064】
[実施例2の効果]
上記実施例2によれば、ホストOS制御部50は、ゲストOSの起動に使用する新たなマジックパケットキーの生成要求をネットワーク経由でクライアント側計算機3から取得する。すると、ホストOS制御部50は、当該マジックパケットキーを生成し、生成したマジックパケットキーを、当該マジックパケットキーを使用して起動するゲストOSに対応付けてマジックパケットキー管理記憶部61に記憶する。そして、ホストOS制御部50は、ゲストOSの停止中に、マジックパケットキーを使用して当該ゲストOSを起動する起動要求をネットワーク経由でクライアント側計算機3から取得する。すると、ホストOS制御部50は、当該マジックパケットキーをマジックパケットキー管理記憶部61により記憶されたマジックパケットキーと照合し、照合結果に基づいて、起動要求がされたゲストOSを、ホストOSを介して起動する。
【0065】
かかる構成によれば、ホストOS制御部50は、ゲストOSの起動に使用する新たなマジックパケットキーの生成要求がされる度に、新たなマジックパケットキーを生成し、最新の生成要求の際に生成された新たなマジックパケットキーを当該ゲストOSに対応付ける。このため、ホストOS制御部50は、ネットワーク経由でマジックパケットキーを使用したゲストOSの起動要求がされると、当該ゲストOSに対応付けられた最新の新たなマジックパケットキーで、起動要求の際使用されたマジックパケットキーの正当性を確認できる。その結果、ホストOS制御部50は、ゲストOSに対する不正な起動を確実に防止でき、当該ゲストOSの起動をセキュアにできる。すなわち、ホストOS制御部50は、ゲストOSの起動要求の際に用いられるマジックパケットキーが漏洩した場合であっても、漏洩したマジックパケットキーを用いてのゲストOSの起動を防止できる。また、ホストOS制御部50が、クライアント側計算機3の起動要求に応じて停止中のゲストOSを起動しているので、LANカードやBIOSにWOL(Wake on LAN)機能が搭載されていなくてもWOLを簡易に実現することができる。さらに、ホストOS制御部50が、ゲストOSの起動を制御しているので、クライアント側計算機3がホストOSにログインしてゲストOSを起動する場合と比べ、操作によるミスを回避できるとともに、セキュリティ面での安全性を確保できる。
【0066】
また、実施例2によれば、ゲストOS起動部52が、マジックパケットキー管理記憶部61によって記憶されるマジックパケットキーを使用して、当該マジックパケットキーに対応付けられたゲストOSを起動する。この場合、マジックパケットキー破棄部53は、当該マジックパケットキーをマジックパケットキー管理記憶部61から破棄するようにした。これにより、ホストOS制御部50は、常時同一のマジックパケットキーを用いる場合と比較して、セキュリティ面での安全性を確保できる。
【0067】
また、実施例2によれば、マジックパケットキー破棄部53が、ゲストOS起動部52によってマジックパケットキーを使用して当該ゲストOSを所定回数起動した場合、当該マジックパケットキーをマジックパケットキー管理記憶部61から破棄するようにした。仮に、ゲストOS上で動作するアプリケーションが終了すると、このゲストOSが停止するとする。この場合、マジックパケットキー破棄部53が、ゲストOS用のマジックパケットキーの起動成功毎に起動に使用したマジックパケットキーを破棄するようにすれば、セキュリティ面での安全性をさらに確保できる。
【0068】
また、実施例2によれば、マジックパケットキー破棄部53が、ゲストOSに対応付けられたマジックパケットキーの有効期限が経過した場合、当該マジックパケットキーをマジックパケットキー管理記憶部61から破棄するようにした。これにより、ゲストOS起動部52は、クライアント側計算機3に記憶されたマジックパケットキーを何度も使用することを防止でき、セキュリティ面での安全性を確保できる。
【0069】
また、実施例2によれば、マジックパケットキー生成部51は、マジックパケットキーをMACアドレスと同一形式で生成する場合であっても良い。これにより、現存するWOL機能を備えるソフトウェアを流用できるので、ゲストOS起動処理の開発工程を大幅に削減できる。
【実施例3】
【0070】
ところで、実施例2に係る仮想計算機システム9では、クライアント側計算機5がネットワーク経由でホストOS制御部50に対してゲストOSの起動要求を行う場合を説明した。仮想計算機システム9は、これに限定されるものではなく、クライアント側計算機5がネットワーク経由でホストOS制御部50に対してゲストOSの起動要求を行い、起動要求に基づき起動されたゲストOSの起動結果を表示しても良い。
【0071】
そこで、実施例3では、仮想計算機システム99が、クライアント側計算機5がネットワーク経由でホストOS制御部50に対してゲストOSの起動要求を行い、起動要求に基づき起動されたゲストOSの起動結果を表示する場合を説明する。
【0072】
[実施例3に係る仮想計算機の構成]
図9は、実施例3に係る仮想計算機4を用いた仮想計算機システム99の構成を示す機能ブロック図である。図9は、実施例3に係る仮想計算機システム99の構成を示す機能ブロック図である。なお、図3に示す仮想計算機システム9と同一の構成については同一符号を示すことで、その重複する構成及び動作の説明については省略する。実施例2と実施例3とが異なるところは、クライアント側計算機5に起動結果表示部84を追加した点にある。
【0073】
ホストOS制御部50の起動部52bは、ゲストOSの起動要求に対する起動結果を当該ゲストOSから取得し、取得した起動結果をゲストOSの起動要求元であるクライアント側計算機5の起動結果表示部84に送信する。例えば、ホストOSがUNIX(登録商標)である場合には、起動部52bは、電源起動に関するシステムコールやライブラリ関数のリターンコードを、起動を要求したゲストOSから取得する。そして、起動部52bは、取得したリターンコードを、クライアント側計算機5に送信する。
【0074】
クライアント側計算機5の起動結果表示部84は、ホストOS制御部50の起動部52bから送信されたゲストOSの起動結果を出力する。具体的には、起動結果表示部84は、起動部52bから送信された情報、すなわちゲストOSの起動が成功した起動結果又はゲストOSの起動が失敗した原因を示す起動結果を、例えばモニタに表示する。このゲストOSの起動が失敗した原因とは、メモリ容量不足やCPU不足等がある。なお、起動結果表示部84は、ホストOS制御部50の起動判定部52aから送信された起動結果、すなわちマジックパケットキーが不一致である旨又はゲストOSが起動済みである旨の起動結果を出力しても良い。
【0075】
[実施例3に係るマジックパケットキー生成処理の動作]
次に、実施例3に係るマジックパケットキー生成処理は、実施例2(図6)と同様であるので、その説明については省略する。
【0076】
[実施例3に係るゲストOS起動処理の動作]
次に、実施例3に係るゲストOS起動処理を、図10を参照して説明する。図10は、ゲストOS起動処理の動作を示すフローチャートである。以下に示すフローチャートのうち、ステップS21及びステップS61は、クライアント側計算機5の動作である。また、ステップS22〜31は、ホストOS制御部50の動作であるものとする。なお、本動作の説明では、ゲストOS制御部70−1を有するゲストOSがネットワーク経由で起動される場合を例として説明する。また、マジックパケットキー破棄部53は、マジックパケットキーが1回使用されると、このマジックパケットキーを「無効キー」と判断するものとする。さらに、図7に示すゲストOS起動処理の動作を示すフローチャートと同一の動作については同一符号を示すことで、その重複する動作の説明については簡略する。
【0077】
まず、クライアント側計算機5のゲストOS起動要求部83は、停止中のゲストOSを起動する起動要求であってマジックパケットキーが付加された起動要求を、ネットワーク経由でゲストOS起動部52に送信する(ステップS21)。続いて、ホストOS制御部50の起動判定部52は、取得したマジックパケットキーがマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致するか否かを判定する(ステップS22)。そして、マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致しないと判定された場合には(ステップS22、No)、起動判定部52aはマジックパケットキーが不一致である旨の起動結果を起動要求元に送信する(ステップS23)。
【0078】
一方、マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致すると判定された場合には(ステップS22、Yes)、起動判定部52は、マジックパケットキーに対応付けられたゲストOSが未起動か否かを判定する(ステップS24)。そして、ゲストOSが未起動でない、すなわちゲストOSが起動済みであると判定された場合には(ステップS24、No)、マジックパケットキー破棄部53は、マジックパケットキーを「無効キー」であると判断して、当該マジックパケットキーをマジックパケットキー管理記憶部61から破棄する(ステップS25)。そして、起動判定部52aは、ゲストOSが起動済みである旨の起動結果を、起動要求元に送信する(ステップS26)。
【0079】
一方、ゲストOSが未起動であると判定された場合には(ステップS24、Yes)、起動部52bは、マジックパケットキーに対応付けられたゲストOSを起動する(ステップS27)。続いて、起動部52bは、ゲストOSの起動が成功したか否かを判定する(ステップS28)。そして、ゲストOSの起動が成功しなかったと判定された場合には(ステップS28、No)、起動部52bは、ゲストOSの起動の失敗原因を示す起動結果を、起動要求元に送信する(ステップS29)。例えば、ホストOSがUNIX(登録商標)である場合には、起動部52bは、電源起動に関するシステムコールやライブラリ関数のリターンコードを起動要求元に送信する。
【0080】
一方、ゲストOSの起動が成功したと判定された場合には(ステップS28、Yes)、マジックパケットキー破棄部53は、マジックパケットキーを「無効キー」であると判断し、当該マジックパケットキーを破棄する(ステップS30)。そして、起動部52bは、ゲストOSの起動が成功した旨の起動結果を、起動要求元に送信する(ステップS31)。
【0081】
そして、起動要求元のクライアント側計算機5の起動結果表示部84は、起動判定部52a又は起動部52bからゲストOSの起動結果を取得すると、取得した起動結果を、例えばモニタに表示する(ステップS61)。
【0082】
[実施例3に係る仮想計算機システムの動作]
次に、実施例3に係る仮想計算機システム99の動作を、データの受け渡しの観点から説明する。図11は、実施例3に係る仮想計算機システム99の処理動作を示すシーケンス図である。なお、本動作の説明では、ゲストOS制御部70−1を機能させるゲストOSが、ネットワーク経由で起動される場合を例として説明する。また、図8に示す仮想計算機システムの処理動作を示すシーケンスと同一の処理動作については同一符号を示すことで、その重複する動作の説明については簡略する。
【0083】
クライアント側計算機5は、ゲストOSの起動に使用する新たなマジックパケットキーの生成要求を、ゲストOS制御部70−1へ送信する(ステップS41〜42)。そして、ゲストOS制御部70−1は、当該生成要求をホストOS制御部50へ送信する(ステップS43〜44)。
【0084】
続いて、ホストOS制御部50は、ゲストOSの新たなマジックパケットキーを生成し(ステップS45)、生成したマジックパケットキーを、当該マジックパケットキーを使用して起動するゲストOSに対応付けてマジックパケットキー管理記憶部61に格納する。そして、ホストOS制御部50は、新たなマジックパケットキーを要求元のゲストOS制御部70−1を介してクライアント側計算機5へ送信する(ステップS46〜S47)。そして、クライアント側計算機5は、当該マジックパケットキーをマジックパケットキー記憶部82に格納する。
【0085】
その後、ゲストOS制御部70−1を機能させるゲストOSが停止したとする。この場合、クライアント側計算機5は、マジックパケットキー記憶部82に記憶されているマジックパケットキーを使用して停止中のゲストOSを起動する起動要求を、ホストOS制御部50へ送信する(ステップS48〜S49)。
【0086】
続いて、ホストOS制御部50は、マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致するか否かを判定し、一致する場合には、マジックパケットキーに対応付けられたゲストOSを起動する(ステップS50)。ここでは、一致したマジックパケットキーがゲストOS制御部70−1を機能させるゲストOSに対応付けられたマジックパケットキーであるものとすると、ホストOS制御部50は、当該マジックパケットキーに対応付けられたゲストOSを起動する(ステップS51〜52)。
【0087】
続いて、ホストOS制御部50は、ゲストOSの起動結果を取得すると(ステップS53)、取得した起動結果をクライアント側計算機5に送信する(ステップS54)。そして、クライアント側計算機5は、ゲストOSの起動結果を、例えばモニタに表示する(ステップS71)。
【0088】
[実施例3の効果]
上記実施例3によれば、ホストOS制御部50のゲストOS起動部52は、ゲストOSの起動結果を、ゲストOSの起動要求元のクライアント側計算機5に送信し、クライアント側計算機5は、送信された起動結果を出力するようにした。これにより、クライアント側計算機5では、仮にゲストOSの起動結果が失敗であっても、起動結果からその失敗原因を認識できるので、失敗原因に応じた措置を遠隔からネットワーク管理者に行わせることができる。
【0089】
[その他]
なお、仮想計算機2、4は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記したホストOS制御部50、マジックパケットキー管理記憶部61及びゲストOS制御部70−1〜70−nの各機能を搭載することによって実現することができる。
【0090】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、ゲストOS起動部52とマジックパケットキー破棄部53とを1つの部として統合しても良い。一方、マジックパケットキー生成部51を、マジックパケットキーを生成する生成部と、生成したマジックパケットキーをマジックパケットキー管理記憶部61に格納する格納部とに分散しても良い。また、記憶部60を仮想計算機2、4の外部装置としてネットワーク経由で接続するようにしても良い。
【0091】
[プログラム]
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図12を用いて、図3に示した仮想計算機2と同様の機能を有する遠隔起動プログラムを実行するコンピュータの一例を説明する。
【0092】
図12は、遠隔起動プログラムを実行するコンピュータを示す図である。図12に示すように、コンピュータ1000は、RAM(Random Access Memory)1010、キャッシュ1020、HDD1030、ROM(Read Only Memory)1040、CPU(Central Processing Unit)1050及びバス1060を有する。RAM1010、キャッシュ1020、HDD1030、ROM1040及びCPU1050は、それぞれバス1060によって接続されている。また、CPU1050は、ホストOS1051及びゲストOS1052−1〜1052−nを含む。
【0093】
ROM1040には、図3に示した仮想計算機2と同様の機能を発揮する遠隔起動プログラムが予め記憶されている。具体的には、ROM1040には、マジックパケットキー生成プログラム1041、ゲストOS起動プログラム1042、マジックパケットキー要求プログラム1043及びマジックパケットキー送信プログラム1044が記憶されている。
【0094】
そして、CPU1050のホストOS1051は、マジックパケットキー生成プログラム1041及びゲストOS起動プログラム1042を読み出して実行する。CPU1050のゲストOS1052−1〜1052−nは、マジックパケットキー要求プログラム1043及びマジックパケットキー送信プログラム1044を読み出して実行する。これにより、図12に示すように、マジックパケットキー生成プログラム1041の実行により、マジックパケットキー生成プロセス1051aが生成され、ゲストOS起動プログラム1042の実行により、ゲストOS起動プロセス1051bが生成される。また、マジックパケットキー要求プログラム1043は、マジックパケットキー要求プロセス1052aになり、マジックパケットキー送信プログラム1044は、マジックパケットキー送信プロセス1052bになる。
【0095】
なお、マジックパケットキー生成プロセス1051aは、図3に示したマジックパケットキー生成部51に対応し、ゲストOS起動プロセス1051bは、図3に示したゲストOS起動部52に対応する。また、マジックパケットキー要求プロセス1052aは、図3に示したマジックパケットキー要求部71に対応し、マジックパケットキー送信プロセス1052bは、図3に示したマジックパケットキー送信部72に対応する。
【0096】
また、HDD1030には、図12に示すようにマジックパケットキー管理情報1031が設けられる。マジックパケットキー管理情報1031は、例えば、図3に示した記憶部60に記憶されるマジックパケットキー管理記憶部61等の各種データに対応する。
【0097】
なお、上記した各プログラム1041〜1044については、必ずしもROM1040に記憶させなくても良い。例えば、コンピュータ1000に挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカード等の「可搬用の物理媒体」にプログラム1041〜1044を記憶させても良い。又は、コンピュータ1000の内外に備えられるハードディスクドライブ(HDD)等の「固定用の物理媒体」にプログラム1041〜1044を記憶させても良い。又は、公衆回線、インターネット、LAN、WAN等を介してコンピュータ1000に接続される「他のコンピュータ(又はサーバ)」にプログラム1041〜1044を記憶させても良い。そして、コンピュータ1000は、上記したフレキシブルディスク等から各プログラムを読み出して実行するようにしても良い。
【0098】
以上の実施例に係る実施形態に関し、さらに以下の付記を開示する。
【0099】
(付記1)ホストOS(Operating System)によって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成部と、
前記識別情報生成部によって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶部と、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を前記識別情報記憶部により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動部と
を有することを特徴とする仮想計算機。
【0100】
(付記2)前記識別情報記憶部によって記憶される識別情報を使用して、当該識別情報に対応付けられたゲストOSが起動された場合、当該識別情報を前記識別情報記憶部から破棄する識別情報破棄部を有することを特徴とする付記1に記載の仮想計算機。
【0101】
(付記3)前記識別情報破棄部は、
前記ゲストOSに対応付けられた識別情報を使用して、前記ゲストOS起動部によって当該ゲストOSが所定回数起動された場合、当該識別情報を前記識別情報記憶部から破棄することを特徴とする付記2に記載の仮想計算機。
【0102】
(付記4)前記識別情報破棄部は、
前記ゲストOSに対応付けられた識別情報の有効期限が経過した場合、当該識別情報を前記識別情報記憶部から破棄することを特徴とする付記2に記載の仮想計算機。
【0103】
(付記5)前記識別情報生成部は、
前記識別情報をMAC(Media Access Control address)アドレスと同一形式で生成することを特徴とする付記1から付記4のいずれか1つに記載の仮想計算機。
【0104】
(付記6)前記ゲストOS起動部は、
前記ゲストOSの起動結果を、当該ゲストOSの起動要求元に送信することを特徴とする付記1から付記5のいずれか1つに記載の仮想計算機。
【0105】
(付記7)ホストOS(Operating System)によって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成手順と、
前記識別情報生成手順によって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶手順と、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を前記識別情報記憶手順により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動手順と
をコンピュータに実行させることを特徴とする遠隔起動プログラム。
【0106】
(付記8)ホストOS(Operating System)によって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成ステップと、
前記識別情報生成ステップによって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶ステップと、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を前記識別情報記憶ステップにより記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動ステップと
を含むことを特徴とする遠隔起動方法。
【0107】
(付記9)ホストOS及び前記ホストOSによって制御されるゲストOSを備える仮想計算機と、前記仮想計算機とネットワークを介して接続される遠隔計算機とを有する仮想計算機システムであって、
前記仮想計算機は、
前記ゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で前記遠隔計算機から取得した場合に、当該識別情報を生成する識別情報生成部と、
前記識別情報生成部にて生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶部と、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で前記遠隔計算機から取得した場合に、当該識別情報を前記識別情報記憶部により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動部と
を有することを特徴とする仮想計算機システム。
【0108】
(付記10)前記ゲストOS起動部は、
前記ゲストOSの起動結果を、前記ゲストOSの起動要求元の遠隔計算機に送信し、
前記遠隔計算機は、
前記ゲストOS起動部から送信された、前記ゲストOSの起動結果を出力部に出力する起動結果出力部を有することを特徴とする付記9に記載の仮想計算機システム。
【符号の説明】
【0109】
1、2、4 仮想計算機
3、5 クライアント側計算機
10 ホストOS
11 識別情報生成部
12 識別情報記憶部
13 ゲストOS起動部
20−1〜n ゲストOS
30 ハイパーバイザ
40 ハードウェア
50 ホストOS制御部
51 マジックパケットキー生成部
52 ゲストOS起動部
52a 起動判定部
52b 起動部
53 マジックパケットキー破棄部
60 記憶部
61 マジックパケットキー管理記憶部
70−1〜n ゲストOS制御部
71 マジックパケットキー要求部
72 マジックパケットキー送信部
81 ゲストOSマジックパケットキー要求部
82 マジックパケットキー記憶部
83 ゲストOS起動要求部
84 起動結果表示部
9、99 仮想計算機システム
【技術分野】
【0001】
本発明は、仮想計算機、遠隔起動プログラム、遠隔起動方法及び仮想計算機システムに関する。
【背景技術】
【0002】
従来、パーソナルコンピュータやサーバ等を遠隔操作する機能として、WOL(Wake on LAN)がある。WOLは、LAN(Local Area Network)に接続されたコンピュータの電源が切断されているときに、このコンピュータを同じくLANに接続された他のコンピュータから電源が切断されているコンピュータの電源を起動させる技術である。WOLを用いることにより、例えばネットワーク管理者は、コンピュータのメンテナンスを夜間や休日に一斉に実施する場合に、現場に行かなくても身近にあるコンピュータを操作し、遠隔地のコンピュータの電源を起動することが可能となる。
【0003】
このようなWOLを実行するためには、起動されるコンピュータのLANカード、マザーボード、BIOS(Basic Input/Output System)、及びOS等がWOLに対応している必要がある。
【0004】
ここで、クライアントサーバシステムの実マシン環境におけるWOLのしくみについて、図13を参照しながら説明する(非特許文献1を参照)。図13は、実マシン環境のWOLを説明する図である。図13に示すように、WOLクライアントは、電源が切断中の管理対象パソコンの電源起動を遠隔操作する。具体的には、WOLクライアントは、電源切断中の管理対象パソコンのMACアドレスを連続して16個含むWOLパケット(マジックパケット)を送信する。そして、WOLに対応したLANアダプタ(LANカード)がマジックパケットを認識し、マジックパケットに含まれたMACアドレスに対応する管理対象パソコンの電源を起動する。
【0005】
また、複数の異なるノードを2以上のパーティションに区分編成した実マシン環境が提案されている。このような実マシン環境では、パーティション管理ソフトウェアが、パーティション内のノードに含まれる各NIC(Network Interface Card)のWOLフィルタを構成する。そして、パーティション管理ソフトウェアは、NICへ向けられたマジックパケットを認識し、NICに対するノードの電源を起動する。
【0006】
ところで、近年、1つのコンピュータ上で複数のOSを動作させる仮想計算機(VM:Virtual Machine)が注目されている。仮想計算機では、コンピュータの電源を投入した際に最初に起動されるホストOSと、ホストOS上で動作するゲストOSとを同時に動作させることが可能である。
【0007】
このような仮想計算機に対して上記のWOLを適用する場合には、通常、コンピュータの電源の投入に応じて、ホストOSが起動される。そして、ホストOSがゲストOSの電源を起動する。ここで、仮想計算機環境におけるWOLのしくみについて、図14を参照しながら説明する。図14は、仮想計算機環境のWOLを説明する図である。図14に示すように、例えば管理用パソコンが、電源が切断中のゲストOSの電源起動を遠隔操作する。具体的には、管理用パソコンは、ホストOSへのログインを実行する。そして、管理用パソコンがホストOSへのログインに成功した場合には、管理用パソコンがホストOSに対し、電源切断中のゲストOSの電源起動を指示する。そして、ホストOSは、指示されたゲストOSの電源を起動する。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2004−171412号公報
【特許文献2】特開2005−20728号公報
【非特許文献】
【0009】
【非特許文献1】http://itpro.nikkeibp.co.jp/article/Keyword/20070222/262829/ ITpro、2006.09.15
【発明の概要】
【発明が解決しようとする課題】
【0010】
しかしながら、仮想計算機環境における従来のWOL技術では、第三者であっても仮想計算機が備えるゲストOSをネットワーク経由で不正に起動できてしまうという問題がある。すなわち、ネットワーク管理者等の遠隔操作者は、管理用パソコンを操作し、ホストOSにログインできれば、ホストOSを介して、全てのゲストOSに対してアクセスできる。そのため、ホストOSにログインするために必要なユーザ名及びパスワードが漏洩すると、これらを知った第三者が、ホストOSにログインし、ゲストOSをネットワーク経由で不正に起動できてしまうことになる。
【0011】
開示の技術は、上記に鑑みてなされたものであって、仮想計算機環境におけるゲストOSをネットワーク経由で不正に起動されることを防止できるセキュアな仮想計算機、遠隔起動プログラム、遠隔起動方法及び仮想計算機システムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本願の開示する仮想計算機は、一つの態様において、ホストOS(Operating System)によって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成部と、前記識別情報生成部によって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶部と、ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を前記識別情報記憶部により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動部とを備える。
【発明の効果】
【0013】
本願の開示する仮想計算機の一つの態様によれば、仮想計算機が備えるゲストOSに対するネットワーク経由の不正な起動を確実に防止できるという効果を奏する。
【図面の簡単な説明】
【0014】
【図1】図1は、実施例1に係る仮想計算機の構成を示す機能ブロック図である。
【図2】図2は、仮想計算機の全体構成の一例を示す図である。
【図3】図3は、実施例2に係る仮想計算機システムの構成を示す機能ブロック図である。
【図4】図4は、マジックパケットキー管理記憶部のデータ構造の一例を示す図である。
【図5】図5は、マジックパケットキー記憶部のデータ構造の一例を示す図である。
【図6】図6は、マジックパケットキー生成処理の動作を示すフローチャートである。
【図7】図7は、ゲストOS起動処理の動作を示すフローチャートである。
【図8】図8は、実施例2に係る仮想計算機システムの動作を示すシーケンス図である。
【図9】図9は、実施例3に係る仮想計算機システムの構成を示す機能ブロック図である。
【図10】図10は、ゲストOS起動処理の動作を示すフローチャートである。
【図11】図11は、実施例3に係る仮想計算機システムの動作を示すシーケンス図である。
【図12】図12は、遠隔起動プログラムを実行するコンピュータを示す図である。
【図13】図13は、実マシン環境のWOLを説明する図である。
【図14】図14は、仮想計算機環境のWOLを説明する図である。
【発明を実施するための形態】
【0015】
以下に、本願の開示する仮想計算機、遠隔起動プログラム、遠隔起動方法及び仮想計算機システムの実施例を図面に基づいて詳細に説明する。なお、本実施例によりこの発明が限定されるものではない。
【実施例1】
【0016】
図1は、本実施例1に係る仮想計算機の構成を示す機能ブロック図である。図1に示すように、仮想計算機1は、ネットワークと接続し、ホストOS10及びゲストOS20−1〜20−nを有する。また、ホストOS10は、識別情報生成部11、識別情報記憶部12及びゲストOS起動部13を有する。
【0017】
ゲストOS(Operating System)20−1〜20−nの起動は、ホストOS10により制御される。そして、識別情報生成部11が、ゲストOS20−1〜20−nの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する。
【0018】
識別情報記憶部12は、識別情報生成部11によって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する。ゲストOS起動部13は、ゲストOSの停止中に、識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得する。この場合に、ゲストOS起動部13は、当該識別情報を識別情報記憶部12により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、ホストOS10を介して起動する。
【0019】
ここで、ホストOS10及びゲストOS20−1〜20−n(例えばnを「3」とする)を含む仮想計算機1の全体構成を、図2を参照しながら説明する。図2(a)は、仮想計算機1の全体構成図を示し、図2(b)は、入出力(IO:Input/Output)処理の実行図を示す。図2(a)に示すように、仮想計算機1は、ホストOS10、ゲストOS20−1〜20−3のほか、ハイパーバイザ30及びハードウェア40を有する。
【0020】
ホストOS10は、仮想計算機1の動作の根幹となる基本ソフトウェアであり、ゲストOS20−1〜20−3の起動や停止等全ての制御を行う。また、ホストOS10は、CPU(Central Processing Unit)、メモリ及びIO等の資源をゲストOS20−1〜20−3に割り当てる。さらに、ホストOS10は、ゲストOS20−1〜20−3が実行した仮想的な入出力処理を行って、実装された入出力装置に反映させる。例えば、図2(b)に示すように、ホストOS10は、ゲストOS20−1が実行した仮想的な入出力処理の処理結果を、HDD(Hard Disk Drive)装置に記憶する。また、ホストOS10は、ゲストOS20−2が実行した仮想的な入出力処理の処理結果を、ネットワークに送信する。
【0021】
ゲストOS20−1〜20−3は、ホストOS10と同様に基本ソフトウェアであり、ホストOS10上では動作しないアプリケーション等を動作させることができる。また、ゲストOS20−1〜20−3は、ホストOS10にて割り当てられた資源を用いて、仮想的に入出力処理を実行し、入出力処理の処理結果をホストOS10を介して入出力装置に反映する。さらに、ゲストOS20−1〜20−3は、自OSが停止中にホストOS10によって起動される。
【0022】
ハイパーバイザ30は、ホストOS10及びゲストOS20−1〜20−3がコンピュータのハードウェア40を利用可能なように、ハードウェア40を仮想化する。そして、ホストOS10及びゲストOS20−1〜20−3は、ハイパーバイザ30上で動作する。なお、ハイパーバイザ30は、仮想計算機1に電源を投入すると、最初に動作し、ホストOS10を起動する。
【0023】
ハードウェア40は、ネットワークと接続するLAN(Local Area Network)カード等を指し、LANカードを含む周辺デバイスへの基本的な入出力の環境を提供するBIOS(Basic Input/Output System)によって制御される。
【0024】
ハードウェア40は、例えばゲストOS20−1の起動に使用する新たな識別情報の生成要求をネットワークから取得した場合、当該生成要求を、ハイパーバイザ30を介して識別情報生成部11に伝達する。そして、識別情報生成部11は、ゲストOS20−1の起動に使用する新たな識別情報を生成する。また、識別情報記憶部12は、識別情報生成部11にて生成された識別情報を、当該識別情報を使用して起動するゲストOS20−1に対応付けて記憶する。さらに、ゲストOS20−1の停止中に、ハードウェア40は、識別情報を使用してゲストOS20−1を起動する起動要求をネットワークから取得した場合、当該起動要求を、ハイパーバイザ30を介してゲストOS起動部13に伝達する。そして、ゲストOS起動部13は、伝達された識別情報を識別情報記憶部12により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOS20−1を起動する。
【0025】
このようにして、仮想計算機1は、ゲストOSの起動に使用する新たな識別情報の生成要求がされる度に、新たな識別情報を生成し、最新の生成要求の際に生成された新たな識別情報を当該ゲストOSに対応付ける。このため、仮想計算機1は、ネットワーク経由で識別情報を使用したゲストOSの起動要求がされると、当該ゲストOSに対応付けられた最新の新たな識別情報で、起動要求の際使用された識別情報の正当性を確認できる。その結果、仮想計算機1は、ゲストOSに対する不正な起動を確実に防止でき、当該ゲストOSの起動をセキュアにできる。すなわち、仮想計算機1は、ゲストOSの起動要求の際に用いられる識別情報が漏洩した場合であっても、漏洩した識別情報を用いてのゲストOSの起動を防止できる。
【実施例2】
【0026】
[実施例2に係る仮想計算機の構成]
図3は、実施例2に係る仮想計算機2を用いた仮想計算機システム9の構成を示す機能ブロック図である。仮想計算機システム9は、仮想計算機2及びクライアント側計算機3を有する。仮想計算機2は、ホストOS及びゲストOSを制御するホストOS制御部50と、記憶部60と、各ゲストOSを制御するゲストOS制御部70−1〜70−nとを有する。また、ホストOS制御部50は、マジックパケットキー生成部51、ゲストOS起動部52及びマジックパケットキー破棄部53を有する。また、記憶部60には、マジックパケットキー管理記憶部61が含まれる。さらに、ゲストOS制御部70−1〜70−nは、異なるゲストOSにそれぞれ備えられ、マジックパケットキー要求部71及びマジックパケットキー送信部72をそれぞれ有する。
【0027】
なお、ホストOS制御部50及びゲストOS制御部70−1〜70−nは、例えばASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路である。また、ホストOS制御部50及びゲストOS制御部70−1〜70−nは、これに限定されるものではなく、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等の電子回路であっても良い。また、記憶部60は、例えば、RAM(Random Access Memory)、フラッシュメモリ(flash memory)等の半導体メモリ素子、又は、HDD、光ディスク等の記憶装置である。
【0028】
マジックパケットキー生成部51は、各ゲストOSのいずれかのOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得すると、当該識別情報を生成する。具体的には、マジックパケットキー生成部51は、ゲストOS制御部70−1〜70−nのマジックパケットキー要求部71から新たな識別情報の生成要求を取得すると、ゲストOSに対応付けられる識別情報を生成する。
【0029】
例えば、マジックパケットキー生成部51は、各ゲストOSに対応付けられる識別情報を、UUID(Universally Unique IDentifier)を用いて生成する。また、マジックパケットキー生成部51は、識別情報をMACアドレスと同一形式で生成するものとしても良い。具体的には、マジックパケットキー生成部51は、識別情報をMACアドレスと同様に、16進文字を12個連続した文字列、例えば「0xAABBCCDDEEFF」で生成する。さらに、マジックパケットキー生成部51は、UUIDを用いて生成するものとして説明したが、これに限定されず、各ゲストOSに対して一意に定められる識別情報であれば良い。なお、本実施例では、かかる識別情報を、「マジックパケットキー」というものとする。
【0030】
また、マジックパケットキー生成部51は、生成したマジックパケットキーを、当該マジックパケットキーを使用して起動するゲストOSに対応付けて、マジックパケットキー管理記憶部61に格納する。ここで、マジックパケットキー管理記憶部61について、図4を参照しながら説明する。図4は、マジックパケットキー管理記憶部61に記憶されるデータのデータ構造の一例を示す図である。図4に示すように、マジックパケットキー管理記憶部61は、複数のゲストOS毎に、エントリ番号61a、ゲストOS名61b及びマジックパケットキー61cを対応付けて記憶する。
【0031】
エントリ番号61aは、ゲストOSに一意に対応付けられる番号であり、例えば「1」から昇順に連番で付けられる。ゲストOS名61bは、ゲストOSにあらかじめ定められている識別子である。マジックパケットキー61cは、ゲストOS名61bに対応付けられたマジックパケットキーである。このマジックパケットキー61cは、ゲストOS名61bに対して1対1に対応付けられるものであっても良い。すなわち、複数のクライアント側計算機3が同一のゲストOSを起動する場合、各クライアント側計算機3が使用するマジックパケットキー61cは、当該ゲストOSに対して一意に対応付けられるものであっても良い。
【0032】
また、マジックパケットキー61cは、ゲストOS名61bに対して1対n(n>1)に対応付けられるものであっても良い。すなわち、複数のクライアント側計算機3が同一のゲストOSを起動する場合、各クライアント側計算機3が使用するマジックパケットキー61cは、当該ゲストOSに対して、クライアント側計算機3毎に対応付けられるものであっても良い。例えば、図4の例では、マジックパケットキー61cは、ゲストOS名61b「Guest1」に対して、クライアント側計算機3毎に対応付けられる。一方は「AA−BB−CC−DD−EE−FF」であり、他方は「GG−HH−II−JJ−KK−LL」である。なお、前述したとおり、マジックパケットキー61cは、MACアドレスと同一形式であっても良い。
【0033】
図3の説明に戻ると、マジックパケットキー生成部51は、生成したマジックパケットキーを、マジックパケットキーの要求元のゲストOS制御部70−1〜70−nに送信する。
【0034】
ゲストOS起動部52は、ゲストOSの停止中に、マジックパケットキーを使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得する。この場合に、ゲストOS起動部52は、当該マジックパケットキーをマジックパケットキー管理記憶部61により記憶されたマジックパケットキー61cと照合し、照合結果に基づいて、起動要求がされたゲストOSを、ホストOSを介して起動する。さらに、ゲストOS起動部52は、起動判定部52a及び起動部52bを有する。
【0035】
起動判定部52aは、ゲストOSの停止中に、マジックパケットキーを使用して当該ゲストOSを起動する起動要求をクライアント側計算機3からネットワーク経由で取得すると、当該マジックパケットキーに対応付けられたゲストOSを起動するか否かを判定する。具体的には、起動判定部52aは、ゲストOSの起動要求であってマジックパケットキーが付加された起動要求をゲストOS起動要求部83から取得すると、取得した起動要求から付加されたマジックパケットキーを抽出する。そして、起動判定部52aは、抽出したマジックパケットキーとマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cとを照合する。そして、起動判定部52aは、当該マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたいずれかのマジックパケットキー61cと一致した場合には、一致したマジックパケットキーに対応付けられたゲストOSを起動するものと判定する。一方、起動判定部52aは、当該マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたいずれのマジックパケットキー61cとも一致しない場合には、ゲストOSを起動しないものと判定する。
【0036】
起動部52bは、ゲストOSを起動するものと判定し、且つ当該ゲストOSが停止中である場合、停止中の当該ゲストOSを起動する。また、起動部52bは、ゲストOSを起動した起動結果を、ゲストOSの起動要求元のクライアント側計算機3に送信する。
【0037】
マジックパケットキー破棄部53は、マジックパケットキー管理記憶部61によって記憶されるマジックパケットキーを使用してゲストOSが起動された場合、当該マジックパケットキーをマジックパケットキー管理記憶部61から破棄する。例えば、マジックパケットキー破棄部53は、マジックパケットキーが1回使用されると、このマジックパケットキーを「無効キー」と判断するものとする。すなわち、マジックパケットキー破棄部53は、起動部52bによりマジックパケットキーを使用してゲストOSが起動されると、当該マジックパケットキーを「無効キー」と判断する。そして、マジックパケットキー破棄部53は、当該マジックパケットキーをマジックパケットキー管理記憶部61から削除する。なお、上記では、マジックパケットキー破棄部53は、マジックパケットキーが1回使用されると当該マジックパケットキーを「無効キー」と判断する場合を説明したが、これに限定されるものではない。例えば、マジックパケットキー破棄部53は、同一のマジックパケットキーが所定回数使用されると、当該マジックパケットキーを「無効キー」と判断しても良い。さらに、マジックパケットキー破棄部53は、マジックパケットキー毎に定められる有効期限又は有効期間が経過した場合、当該マジックパケットキーを「無効キー」と判断しても良い。
【0038】
マジックパケットキー要求部71は、自ゲストOSの起動に使用される新たなマジックパケットキーの生成要求をクライアント側計算機3からネットワーク経由で取得する。すると、マジックパケットキー要求部71は、当該マジックパケットキーの生成要求をマジックパケットキー生成部51に出力する。また、マジックパケットキー要求部71は、マジックパケットキー生成部51から、生成された新たなマジックパケットキーを取得する。
【0039】
マジックパケットキー送信部72は、マジックパケットキー要求部71にて取得された新たなマジックパケットキーを、マジックパケットキーの要求元のゲストOSマジックパケットキー要求部81に送信する。
【0040】
ゲストOSマジックパケットキー要求部81は、ゲストOSの起動に使用する新たなマジックパケットキーの生成要求を、当該ゲストOSを備える仮想計算機2のマジックパケットキー要求部71に、ネットワーク経由で出力する。また、ゲストOSマジックパケットキー要求部81は、マジックパケット要求部71から新たなマジックパケットキーを取得すると、マジックパケットキー記憶部82に格納する。
【0041】
ここで、マジックパケットキー記憶部82について、図5を参照しながら説明する。図5は、マジックパケットキー記憶部82に記憶されるデータのデータ構造の一例を示す図である。図5に示すように、マジックパケットキー記憶部82は、マジックパケットキー82a等を記憶する。マジックパケットキー82aは、クライアント側計算機3によって起動されるゲストOSに対応付けられたマジックパケットキーである。例えば、図5の例では、ゲストOSに対応付けられたマジックパケットキー82aは、「AA−BB−CC−DD−EE−FF」である。
【0042】
ゲストOS起動要求部83は、ゲストOSの停止中に、マジックパケットキー記憶部82に記憶されているマジックパケットキーを使用して当該ゲストOSを起動する起動要求を、ネットワークを経由してゲストOS起動部52に出力する。また、ゲストOS起動要求部83は、ゲストOSの起動結果を、ゲストOS起動部52から取得する。そして、ゲストOS起動要求部83は、取得した起動結果からゲストOSの起動が成功したか否かを判断する。
【0043】
[実施例2に係るマジックパケットキー生成処理の動作]
次に、実施例2に係るマジックパケットキー生成処理を、図6を参照して説明する。図6は、マジックパケットキー生成処理の動作を示すフローチャートである。以下に示すフローチャートのうち、ステップS11及びステップS18は、クライアント側計算機3の動作である。また、ステップS12及びステップS17は、ゲストOS制御部70−1〜70−nの動作である。さらに、ステップS13〜16は、ホストOS制御部50の動作であるものとする。なお、本動作の説明では、ゲストOS制御部70−1を有するゲストOSのマジックパケットキーが生成される場合を例として説明する。
【0044】
まず、クライアント側計算機3のゲストOSマジックパケット要求部81は、ゲストOS制御部70−1を有するゲストOSに接続する。そして、ゲストOSマジックパケット要求部81は、接続したゲストOSの起動に使用する新たなマジックパケットキーの生成要求を、ネットワーク経由で当該ゲストOSのマジックパケットキー要求部71に送信する(ステップS11)。
【0045】
続いて、マジックパケットキー要求部71は、ゲストOSマジックパケット要求部81から新たなマジックパケットキーの生成要求をネットワーク経由で取得すると、マジックパケットキー生成部51に新たなマジックパケットキーの割り当て要求を送信する(ステップS12)。
【0046】
続いて、ホスト制御部50のマジックパケットキー生成部51は、マジックパケットキー要求部71から新たなマジックパケットキーの割り当て要求を取得すると、依頼元のゲストOSに対応付けられる新たなマジックパケットキーを生成する(ステップS13)。
【0047】
そして、マジックパケットキー生成部51は、生成したマジックパケットキーが他のゲストOSのマジックパケットキーに割り当てられているか否かを判定する(ステップS14)。そして、マジックパケットキーが他のゲストOSのマジックパケットキーに割り当てられていると判定された場合には(ステップS14、Yes)、マジックパケットキーを再生成するために、ステップS13に移行する。
【0048】
一方、マジックパケットキーが他のゲストOSのマジックパケットキーに割り当てられていないと判定された場合には(ステップS14、No)、マジックパケットキーを割り当て依頼がされたゲストOSに対応付けて、マジックパケットキー管理記憶部61に格納する(ステップS15)。
【0049】
そして、マジックパケットキー生成部51は、生成したマジックパケットキーを、依頼元のゲストOS制御部70−1に送信する(ステップS16)。
【0050】
続いて、ゲストOS制御部70−1のマジックパケットキー送信部72は、マジックパケットキー生成部51によって生成された新たなマジックパケットキーを、マジックパケットキーの生成要求元のゲストOSマジックパケットキー要求部81に送信する(ステップS17)。
【0051】
続いて、クライアント側計算機3のゲストOSマジックパケットキー要求部81は、マジックパケット要求部71からマジックパケットキーを取得すると、このマジックパケットキーをマジックパケットキー記憶部82に格納する(ステップS18)。
【0052】
[実施例2に係るゲストOS起動処理の動作]
次に、実施例2に係るゲストOS起動処理を、図7を参照して説明する。図7は、ゲストOS起動処理の動作を示すフローチャートである。以下に示すフローチャートのうち、ステップS21は、クライアント側計算機3の動作である。また、ステップS22〜31は、ホストOS制御部50の動作であるものとする。なお、本動作の説明では、ゲストOS制御部70−1を有するゲストOSが停止中にネットワーク経由で起動される場合を例として説明する。
【0053】
まず、クライアント側計算機3のゲストOS起動要求部83は、停止中のゲストOSを起動する起動要求であってマジックパケットキーが付加された起動要求を、ネットワーク経由でゲストOS起動部52に送信する(ステップS21)。
【0054】
続いて、ホストOS制御部50の起動判定部52aは、ゲストOS起動要求部83からゲストOSを起動する起動要求を取得すると、取得した起動要求からマジックパケットキーを抽出する。そして、起動判定部52aは、抽出したマジックパケットキーが、マジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致するか否かを判定する(ステップS22)。そして、マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致しないと判定された場合には(ステップS22、No)、起動判定部52は、マジックパケットキーが不一致である旨の起動結果を、起動要求元に送信する(ステップS23)。
【0055】
一方、マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致すると判定された場合には(ステップS22、Yes)、起動判定部52は、マジックパケットキーに対応付けられたゲストOSが未起動か否かを判定する(ステップS24)。そして、ゲストOSが未起動でない、すなわちゲストOSが起動済みであると判定された場合には(ステップS24、No)、マジックパケットキー破棄部53は、マジックパケットキーを「無効キー」であると判断して、当該マジックパケットキーをマジックパケットキー管理記憶部61から破棄する(ステップS25)。そして、起動判定部52aは、マジックパケットキーに対応付けられたゲストOSが起動済みである旨の起動結果を、起動要求元に送信する(ステップS26)。
【0056】
一方、ゲストOSが未起動であると判定された場合には(ステップS24、Yes)、起動部52bは、マジックパケットキーに対応付けられたゲストOSを起動する(ステップS27)。続いて、起動部52bは、ゲストOSの起動が成功したか否かを判定する(ステップS28)。そして、ゲストOSの起動が成功しなかったと判定された場合には(ステップS28、No)、起動判定部52aは、ゲストOSの起動の失敗原因を示す起動結果を、起動要求元に送信する(ステップS29)。
【0057】
一方、ゲストOSの起動が成功したと判定された場合は(ステップS28、Yes)、マジックパケットキー破棄部53は、マジックパケットキーを「無効キー」であると判断し、当該マジックパケットキーをマジックパケットキー管理記憶部61から破棄する(ステップS30)。そして、起動部52bは、ゲストOSの起動が成功した旨の起動結果を、起動要求元に送信する(ステップS31)。
【0058】
[実施例2に係る仮想計算機システムの動作]
次に、実施例2に係る仮想計算機システム9の動作を、データの受け渡しの観点から説明する。図8は、実施例2に係る仮想計算機システム9の処理動作を示すシーケンス図である。なお、本動作の説明では、ゲストOS制御部70−1を機能させるゲストOSが、ネットワーク経由で起動される場合を例として説明する。
【0059】
クライアント側計算機3は、ゲストOSの起動に使用する新たなマジックパケットキーの生成要求を、ゲストOS制御部70−1へ送信する(ステップS41〜42)。そして、ゲストOS制御部70−1は、当該生成要求を、ホストOS制御部50へ送信する(ステップS43〜44)。
【0060】
続いて、ホストOS制御部50は、ゲストOSの新たなマジックパケットキーを生成する(ステップS45)。そして、ホストOS制御部50は、生成したマジックパケットキーを、当該マジックパケットキーを使用して起動するゲストOSに対応付けてマジックパケットキー管理記憶部61に格納する。そして、ホストOS制御部50は、生成した新たなマジックパケットキーを要求元のゲストOS制御部70−1を介してクライアント側計算機3へ送信する(ステップS46〜S47)。そして、クライアント側計算機3は、当該マジックパケットキーをマジックパケットキー記憶部82に格納する。
【0061】
その後、ゲストOS制御部70−1を機能させるゲストOSが停止したとする。この場合、クライアント側計算機3は、マジックパケットキー記憶部82に記憶されているマジックパケットキーを使用して停止中のゲストOSを起動する起動要求をホストOS制御部50へ送信する(ステップS48〜S49)。
【0062】
続いて、ホストOS制御部50は、マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致するか否かを判定し、一致する場合には、マジックパケットキーに対応付けられたゲストOSを起動する(ステップS50)。ここでは、一致したマジックパケットキーがゲストOS制御部70−1を機能させるゲストOSに対応付けられたマジックパケットキーであるものとすると、ホストOS制御部50は、当該マジックパケットキーに対応付けられたゲストOSを起動する(ステップS51〜52)。
【0063】
そして、ホストOS制御部50は、ゲストOSの起動結果を取得すると(ステップS53)、取得した起動結果をクライアント側計算機3に送信する(ステップS54)。
【0064】
[実施例2の効果]
上記実施例2によれば、ホストOS制御部50は、ゲストOSの起動に使用する新たなマジックパケットキーの生成要求をネットワーク経由でクライアント側計算機3から取得する。すると、ホストOS制御部50は、当該マジックパケットキーを生成し、生成したマジックパケットキーを、当該マジックパケットキーを使用して起動するゲストOSに対応付けてマジックパケットキー管理記憶部61に記憶する。そして、ホストOS制御部50は、ゲストOSの停止中に、マジックパケットキーを使用して当該ゲストOSを起動する起動要求をネットワーク経由でクライアント側計算機3から取得する。すると、ホストOS制御部50は、当該マジックパケットキーをマジックパケットキー管理記憶部61により記憶されたマジックパケットキーと照合し、照合結果に基づいて、起動要求がされたゲストOSを、ホストOSを介して起動する。
【0065】
かかる構成によれば、ホストOS制御部50は、ゲストOSの起動に使用する新たなマジックパケットキーの生成要求がされる度に、新たなマジックパケットキーを生成し、最新の生成要求の際に生成された新たなマジックパケットキーを当該ゲストOSに対応付ける。このため、ホストOS制御部50は、ネットワーク経由でマジックパケットキーを使用したゲストOSの起動要求がされると、当該ゲストOSに対応付けられた最新の新たなマジックパケットキーで、起動要求の際使用されたマジックパケットキーの正当性を確認できる。その結果、ホストOS制御部50は、ゲストOSに対する不正な起動を確実に防止でき、当該ゲストOSの起動をセキュアにできる。すなわち、ホストOS制御部50は、ゲストOSの起動要求の際に用いられるマジックパケットキーが漏洩した場合であっても、漏洩したマジックパケットキーを用いてのゲストOSの起動を防止できる。また、ホストOS制御部50が、クライアント側計算機3の起動要求に応じて停止中のゲストOSを起動しているので、LANカードやBIOSにWOL(Wake on LAN)機能が搭載されていなくてもWOLを簡易に実現することができる。さらに、ホストOS制御部50が、ゲストOSの起動を制御しているので、クライアント側計算機3がホストOSにログインしてゲストOSを起動する場合と比べ、操作によるミスを回避できるとともに、セキュリティ面での安全性を確保できる。
【0066】
また、実施例2によれば、ゲストOS起動部52が、マジックパケットキー管理記憶部61によって記憶されるマジックパケットキーを使用して、当該マジックパケットキーに対応付けられたゲストOSを起動する。この場合、マジックパケットキー破棄部53は、当該マジックパケットキーをマジックパケットキー管理記憶部61から破棄するようにした。これにより、ホストOS制御部50は、常時同一のマジックパケットキーを用いる場合と比較して、セキュリティ面での安全性を確保できる。
【0067】
また、実施例2によれば、マジックパケットキー破棄部53が、ゲストOS起動部52によってマジックパケットキーを使用して当該ゲストOSを所定回数起動した場合、当該マジックパケットキーをマジックパケットキー管理記憶部61から破棄するようにした。仮に、ゲストOS上で動作するアプリケーションが終了すると、このゲストOSが停止するとする。この場合、マジックパケットキー破棄部53が、ゲストOS用のマジックパケットキーの起動成功毎に起動に使用したマジックパケットキーを破棄するようにすれば、セキュリティ面での安全性をさらに確保できる。
【0068】
また、実施例2によれば、マジックパケットキー破棄部53が、ゲストOSに対応付けられたマジックパケットキーの有効期限が経過した場合、当該マジックパケットキーをマジックパケットキー管理記憶部61から破棄するようにした。これにより、ゲストOS起動部52は、クライアント側計算機3に記憶されたマジックパケットキーを何度も使用することを防止でき、セキュリティ面での安全性を確保できる。
【0069】
また、実施例2によれば、マジックパケットキー生成部51は、マジックパケットキーをMACアドレスと同一形式で生成する場合であっても良い。これにより、現存するWOL機能を備えるソフトウェアを流用できるので、ゲストOS起動処理の開発工程を大幅に削減できる。
【実施例3】
【0070】
ところで、実施例2に係る仮想計算機システム9では、クライアント側計算機5がネットワーク経由でホストOS制御部50に対してゲストOSの起動要求を行う場合を説明した。仮想計算機システム9は、これに限定されるものではなく、クライアント側計算機5がネットワーク経由でホストOS制御部50に対してゲストOSの起動要求を行い、起動要求に基づき起動されたゲストOSの起動結果を表示しても良い。
【0071】
そこで、実施例3では、仮想計算機システム99が、クライアント側計算機5がネットワーク経由でホストOS制御部50に対してゲストOSの起動要求を行い、起動要求に基づき起動されたゲストOSの起動結果を表示する場合を説明する。
【0072】
[実施例3に係る仮想計算機の構成]
図9は、実施例3に係る仮想計算機4を用いた仮想計算機システム99の構成を示す機能ブロック図である。図9は、実施例3に係る仮想計算機システム99の構成を示す機能ブロック図である。なお、図3に示す仮想計算機システム9と同一の構成については同一符号を示すことで、その重複する構成及び動作の説明については省略する。実施例2と実施例3とが異なるところは、クライアント側計算機5に起動結果表示部84を追加した点にある。
【0073】
ホストOS制御部50の起動部52bは、ゲストOSの起動要求に対する起動結果を当該ゲストOSから取得し、取得した起動結果をゲストOSの起動要求元であるクライアント側計算機5の起動結果表示部84に送信する。例えば、ホストOSがUNIX(登録商標)である場合には、起動部52bは、電源起動に関するシステムコールやライブラリ関数のリターンコードを、起動を要求したゲストOSから取得する。そして、起動部52bは、取得したリターンコードを、クライアント側計算機5に送信する。
【0074】
クライアント側計算機5の起動結果表示部84は、ホストOS制御部50の起動部52bから送信されたゲストOSの起動結果を出力する。具体的には、起動結果表示部84は、起動部52bから送信された情報、すなわちゲストOSの起動が成功した起動結果又はゲストOSの起動が失敗した原因を示す起動結果を、例えばモニタに表示する。このゲストOSの起動が失敗した原因とは、メモリ容量不足やCPU不足等がある。なお、起動結果表示部84は、ホストOS制御部50の起動判定部52aから送信された起動結果、すなわちマジックパケットキーが不一致である旨又はゲストOSが起動済みである旨の起動結果を出力しても良い。
【0075】
[実施例3に係るマジックパケットキー生成処理の動作]
次に、実施例3に係るマジックパケットキー生成処理は、実施例2(図6)と同様であるので、その説明については省略する。
【0076】
[実施例3に係るゲストOS起動処理の動作]
次に、実施例3に係るゲストOS起動処理を、図10を参照して説明する。図10は、ゲストOS起動処理の動作を示すフローチャートである。以下に示すフローチャートのうち、ステップS21及びステップS61は、クライアント側計算機5の動作である。また、ステップS22〜31は、ホストOS制御部50の動作であるものとする。なお、本動作の説明では、ゲストOS制御部70−1を有するゲストOSがネットワーク経由で起動される場合を例として説明する。また、マジックパケットキー破棄部53は、マジックパケットキーが1回使用されると、このマジックパケットキーを「無効キー」と判断するものとする。さらに、図7に示すゲストOS起動処理の動作を示すフローチャートと同一の動作については同一符号を示すことで、その重複する動作の説明については簡略する。
【0077】
まず、クライアント側計算機5のゲストOS起動要求部83は、停止中のゲストOSを起動する起動要求であってマジックパケットキーが付加された起動要求を、ネットワーク経由でゲストOS起動部52に送信する(ステップS21)。続いて、ホストOS制御部50の起動判定部52は、取得したマジックパケットキーがマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致するか否かを判定する(ステップS22)。そして、マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致しないと判定された場合には(ステップS22、No)、起動判定部52aはマジックパケットキーが不一致である旨の起動結果を起動要求元に送信する(ステップS23)。
【0078】
一方、マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致すると判定された場合には(ステップS22、Yes)、起動判定部52は、マジックパケットキーに対応付けられたゲストOSが未起動か否かを判定する(ステップS24)。そして、ゲストOSが未起動でない、すなわちゲストOSが起動済みであると判定された場合には(ステップS24、No)、マジックパケットキー破棄部53は、マジックパケットキーを「無効キー」であると判断して、当該マジックパケットキーをマジックパケットキー管理記憶部61から破棄する(ステップS25)。そして、起動判定部52aは、ゲストOSが起動済みである旨の起動結果を、起動要求元に送信する(ステップS26)。
【0079】
一方、ゲストOSが未起動であると判定された場合には(ステップS24、Yes)、起動部52bは、マジックパケットキーに対応付けられたゲストOSを起動する(ステップS27)。続いて、起動部52bは、ゲストOSの起動が成功したか否かを判定する(ステップS28)。そして、ゲストOSの起動が成功しなかったと判定された場合には(ステップS28、No)、起動部52bは、ゲストOSの起動の失敗原因を示す起動結果を、起動要求元に送信する(ステップS29)。例えば、ホストOSがUNIX(登録商標)である場合には、起動部52bは、電源起動に関するシステムコールやライブラリ関数のリターンコードを起動要求元に送信する。
【0080】
一方、ゲストOSの起動が成功したと判定された場合には(ステップS28、Yes)、マジックパケットキー破棄部53は、マジックパケットキーを「無効キー」であると判断し、当該マジックパケットキーを破棄する(ステップS30)。そして、起動部52bは、ゲストOSの起動が成功した旨の起動結果を、起動要求元に送信する(ステップS31)。
【0081】
そして、起動要求元のクライアント側計算機5の起動結果表示部84は、起動判定部52a又は起動部52bからゲストOSの起動結果を取得すると、取得した起動結果を、例えばモニタに表示する(ステップS61)。
【0082】
[実施例3に係る仮想計算機システムの動作]
次に、実施例3に係る仮想計算機システム99の動作を、データの受け渡しの観点から説明する。図11は、実施例3に係る仮想計算機システム99の処理動作を示すシーケンス図である。なお、本動作の説明では、ゲストOS制御部70−1を機能させるゲストOSが、ネットワーク経由で起動される場合を例として説明する。また、図8に示す仮想計算機システムの処理動作を示すシーケンスと同一の処理動作については同一符号を示すことで、その重複する動作の説明については簡略する。
【0083】
クライアント側計算機5は、ゲストOSの起動に使用する新たなマジックパケットキーの生成要求を、ゲストOS制御部70−1へ送信する(ステップS41〜42)。そして、ゲストOS制御部70−1は、当該生成要求をホストOS制御部50へ送信する(ステップS43〜44)。
【0084】
続いて、ホストOS制御部50は、ゲストOSの新たなマジックパケットキーを生成し(ステップS45)、生成したマジックパケットキーを、当該マジックパケットキーを使用して起動するゲストOSに対応付けてマジックパケットキー管理記憶部61に格納する。そして、ホストOS制御部50は、新たなマジックパケットキーを要求元のゲストOS制御部70−1を介してクライアント側計算機5へ送信する(ステップS46〜S47)。そして、クライアント側計算機5は、当該マジックパケットキーをマジックパケットキー記憶部82に格納する。
【0085】
その後、ゲストOS制御部70−1を機能させるゲストOSが停止したとする。この場合、クライアント側計算機5は、マジックパケットキー記憶部82に記憶されているマジックパケットキーを使用して停止中のゲストOSを起動する起動要求を、ホストOS制御部50へ送信する(ステップS48〜S49)。
【0086】
続いて、ホストOS制御部50は、マジックパケットキーがマジックパケットキー管理記憶部61に記憶されたマジックパケットキー61cと一致するか否かを判定し、一致する場合には、マジックパケットキーに対応付けられたゲストOSを起動する(ステップS50)。ここでは、一致したマジックパケットキーがゲストOS制御部70−1を機能させるゲストOSに対応付けられたマジックパケットキーであるものとすると、ホストOS制御部50は、当該マジックパケットキーに対応付けられたゲストOSを起動する(ステップS51〜52)。
【0087】
続いて、ホストOS制御部50は、ゲストOSの起動結果を取得すると(ステップS53)、取得した起動結果をクライアント側計算機5に送信する(ステップS54)。そして、クライアント側計算機5は、ゲストOSの起動結果を、例えばモニタに表示する(ステップS71)。
【0088】
[実施例3の効果]
上記実施例3によれば、ホストOS制御部50のゲストOS起動部52は、ゲストOSの起動結果を、ゲストOSの起動要求元のクライアント側計算機5に送信し、クライアント側計算機5は、送信された起動結果を出力するようにした。これにより、クライアント側計算機5では、仮にゲストOSの起動結果が失敗であっても、起動結果からその失敗原因を認識できるので、失敗原因に応じた措置を遠隔からネットワーク管理者に行わせることができる。
【0089】
[その他]
なお、仮想計算機2、4は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記したホストOS制御部50、マジックパケットキー管理記憶部61及びゲストOS制御部70−1〜70−nの各機能を搭載することによって実現することができる。
【0090】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、ゲストOS起動部52とマジックパケットキー破棄部53とを1つの部として統合しても良い。一方、マジックパケットキー生成部51を、マジックパケットキーを生成する生成部と、生成したマジックパケットキーをマジックパケットキー管理記憶部61に格納する格納部とに分散しても良い。また、記憶部60を仮想計算機2、4の外部装置としてネットワーク経由で接続するようにしても良い。
【0091】
[プログラム]
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図12を用いて、図3に示した仮想計算機2と同様の機能を有する遠隔起動プログラムを実行するコンピュータの一例を説明する。
【0092】
図12は、遠隔起動プログラムを実行するコンピュータを示す図である。図12に示すように、コンピュータ1000は、RAM(Random Access Memory)1010、キャッシュ1020、HDD1030、ROM(Read Only Memory)1040、CPU(Central Processing Unit)1050及びバス1060を有する。RAM1010、キャッシュ1020、HDD1030、ROM1040及びCPU1050は、それぞれバス1060によって接続されている。また、CPU1050は、ホストOS1051及びゲストOS1052−1〜1052−nを含む。
【0093】
ROM1040には、図3に示した仮想計算機2と同様の機能を発揮する遠隔起動プログラムが予め記憶されている。具体的には、ROM1040には、マジックパケットキー生成プログラム1041、ゲストOS起動プログラム1042、マジックパケットキー要求プログラム1043及びマジックパケットキー送信プログラム1044が記憶されている。
【0094】
そして、CPU1050のホストOS1051は、マジックパケットキー生成プログラム1041及びゲストOS起動プログラム1042を読み出して実行する。CPU1050のゲストOS1052−1〜1052−nは、マジックパケットキー要求プログラム1043及びマジックパケットキー送信プログラム1044を読み出して実行する。これにより、図12に示すように、マジックパケットキー生成プログラム1041の実行により、マジックパケットキー生成プロセス1051aが生成され、ゲストOS起動プログラム1042の実行により、ゲストOS起動プロセス1051bが生成される。また、マジックパケットキー要求プログラム1043は、マジックパケットキー要求プロセス1052aになり、マジックパケットキー送信プログラム1044は、マジックパケットキー送信プロセス1052bになる。
【0095】
なお、マジックパケットキー生成プロセス1051aは、図3に示したマジックパケットキー生成部51に対応し、ゲストOS起動プロセス1051bは、図3に示したゲストOS起動部52に対応する。また、マジックパケットキー要求プロセス1052aは、図3に示したマジックパケットキー要求部71に対応し、マジックパケットキー送信プロセス1052bは、図3に示したマジックパケットキー送信部72に対応する。
【0096】
また、HDD1030には、図12に示すようにマジックパケットキー管理情報1031が設けられる。マジックパケットキー管理情報1031は、例えば、図3に示した記憶部60に記憶されるマジックパケットキー管理記憶部61等の各種データに対応する。
【0097】
なお、上記した各プログラム1041〜1044については、必ずしもROM1040に記憶させなくても良い。例えば、コンピュータ1000に挿入されるフレキシブルディスク(FD)、CD−ROM、MOディスク、DVDディスク、光磁気ディスク、ICカード等の「可搬用の物理媒体」にプログラム1041〜1044を記憶させても良い。又は、コンピュータ1000の内外に備えられるハードディスクドライブ(HDD)等の「固定用の物理媒体」にプログラム1041〜1044を記憶させても良い。又は、公衆回線、インターネット、LAN、WAN等を介してコンピュータ1000に接続される「他のコンピュータ(又はサーバ)」にプログラム1041〜1044を記憶させても良い。そして、コンピュータ1000は、上記したフレキシブルディスク等から各プログラムを読み出して実行するようにしても良い。
【0098】
以上の実施例に係る実施形態に関し、さらに以下の付記を開示する。
【0099】
(付記1)ホストOS(Operating System)によって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成部と、
前記識別情報生成部によって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶部と、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を前記識別情報記憶部により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動部と
を有することを特徴とする仮想計算機。
【0100】
(付記2)前記識別情報記憶部によって記憶される識別情報を使用して、当該識別情報に対応付けられたゲストOSが起動された場合、当該識別情報を前記識別情報記憶部から破棄する識別情報破棄部を有することを特徴とする付記1に記載の仮想計算機。
【0101】
(付記3)前記識別情報破棄部は、
前記ゲストOSに対応付けられた識別情報を使用して、前記ゲストOS起動部によって当該ゲストOSが所定回数起動された場合、当該識別情報を前記識別情報記憶部から破棄することを特徴とする付記2に記載の仮想計算機。
【0102】
(付記4)前記識別情報破棄部は、
前記ゲストOSに対応付けられた識別情報の有効期限が経過した場合、当該識別情報を前記識別情報記憶部から破棄することを特徴とする付記2に記載の仮想計算機。
【0103】
(付記5)前記識別情報生成部は、
前記識別情報をMAC(Media Access Control address)アドレスと同一形式で生成することを特徴とする付記1から付記4のいずれか1つに記載の仮想計算機。
【0104】
(付記6)前記ゲストOS起動部は、
前記ゲストOSの起動結果を、当該ゲストOSの起動要求元に送信することを特徴とする付記1から付記5のいずれか1つに記載の仮想計算機。
【0105】
(付記7)ホストOS(Operating System)によって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成手順と、
前記識別情報生成手順によって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶手順と、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を前記識別情報記憶手順により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動手順と
をコンピュータに実行させることを特徴とする遠隔起動プログラム。
【0106】
(付記8)ホストOS(Operating System)によって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成ステップと、
前記識別情報生成ステップによって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶ステップと、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を前記識別情報記憶ステップにより記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動ステップと
を含むことを特徴とする遠隔起動方法。
【0107】
(付記9)ホストOS及び前記ホストOSによって制御されるゲストOSを備える仮想計算機と、前記仮想計算機とネットワークを介して接続される遠隔計算機とを有する仮想計算機システムであって、
前記仮想計算機は、
前記ゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で前記遠隔計算機から取得した場合に、当該識別情報を生成する識別情報生成部と、
前記識別情報生成部にて生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶部と、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で前記遠隔計算機から取得した場合に、当該識別情報を前記識別情報記憶部により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動部と
を有することを特徴とする仮想計算機システム。
【0108】
(付記10)前記ゲストOS起動部は、
前記ゲストOSの起動結果を、前記ゲストOSの起動要求元の遠隔計算機に送信し、
前記遠隔計算機は、
前記ゲストOS起動部から送信された、前記ゲストOSの起動結果を出力部に出力する起動結果出力部を有することを特徴とする付記9に記載の仮想計算機システム。
【符号の説明】
【0109】
1、2、4 仮想計算機
3、5 クライアント側計算機
10 ホストOS
11 識別情報生成部
12 識別情報記憶部
13 ゲストOS起動部
20−1〜n ゲストOS
30 ハイパーバイザ
40 ハードウェア
50 ホストOS制御部
51 マジックパケットキー生成部
52 ゲストOS起動部
52a 起動判定部
52b 起動部
53 マジックパケットキー破棄部
60 記憶部
61 マジックパケットキー管理記憶部
70−1〜n ゲストOS制御部
71 マジックパケットキー要求部
72 マジックパケットキー送信部
81 ゲストOSマジックパケットキー要求部
82 マジックパケットキー記憶部
83 ゲストOS起動要求部
84 起動結果表示部
9、99 仮想計算機システム
【特許請求の範囲】
【請求項1】
ホストOS(Operating System)によって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成部と、
前記識別情報生成部によって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶部と、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を前記識別情報記憶部により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動部と
を有することを特徴とする仮想計算機。
【請求項2】
前記識別情報記憶部によって記憶される識別情報を使用して、当該識別情報に対応付けられたゲストOSが起動された場合、当該識別情報を前記識別情報記憶部から破棄する識別情報破棄部を有することを特徴とする請求項1に記載の仮想計算機。
【請求項3】
前記識別情報生成部は、
前記識別情報をMAC(Media Access Control address)アドレスと同一形式で生成することを特徴とする請求項1又は請求項2に記載の仮想計算機。
【請求項4】
前記ゲストOS起動部は、
前記ゲストOSの起動結果を、当該ゲストOSの起動要求元に送信することを特徴とする請求項1から請求項3のいずれか1つに記載の仮想計算機。
【請求項5】
ホストOS(Operating System)によって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成手順と、
前記識別情報生成手順によって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶手順と、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を前記識別情報記憶手順により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動手順と
をコンピュータに実行させることを特徴とする遠隔起動プログラム。
【請求項6】
ホストOS(Operating System)によって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成ステップと、
前記識別情報生成ステップによって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶ステップと、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を前記識別情報記憶ステップにより記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動ステップと
を含むことを特徴とする遠隔起動方法。
【請求項7】
ホストOS及び前記ホストOSによって制御されるゲストOSを備える仮想計算機と、前記仮想計算機とネットワークを介して接続される遠隔計算機とを有する仮想計算機システムであって、
前記仮想計算機は、
前記ゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で前記遠隔計算機から取得した場合に、当該識別情報を生成する識別情報生成部と、
前記識別情報生成部にて生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶部と、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で前記遠隔計算機から取得した場合に、当該識別情報を前記識別情報記憶部により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動部と
を有することを特徴とする仮想計算機システム。
【請求項8】
前記ゲストOS起動部は、
前記ゲストOSの起動結果を、前記ゲストOSの起動要求元の遠隔計算機に送信し、
前記遠隔計算機は、
前記ゲストOS起動部から送信された、前記ゲストOSの起動結果を出力部に出力する起動結果出力部を有することを特徴とする請求項7に記載の仮想計算機システム。
【請求項1】
ホストOS(Operating System)によって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成部と、
前記識別情報生成部によって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶部と、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を前記識別情報記憶部により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動部と
を有することを特徴とする仮想計算機。
【請求項2】
前記識別情報記憶部によって記憶される識別情報を使用して、当該識別情報に対応付けられたゲストOSが起動された場合、当該識別情報を前記識別情報記憶部から破棄する識別情報破棄部を有することを特徴とする請求項1に記載の仮想計算機。
【請求項3】
前記識別情報生成部は、
前記識別情報をMAC(Media Access Control address)アドレスと同一形式で生成することを特徴とする請求項1又は請求項2に記載の仮想計算機。
【請求項4】
前記ゲストOS起動部は、
前記ゲストOSの起動結果を、当該ゲストOSの起動要求元に送信することを特徴とする請求項1から請求項3のいずれか1つに記載の仮想計算機。
【請求項5】
ホストOS(Operating System)によって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成手順と、
前記識別情報生成手順によって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶手順と、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を前記識別情報記憶手順により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動手順と
をコンピュータに実行させることを特徴とする遠隔起動プログラム。
【請求項6】
ホストOS(Operating System)によって制御されるゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で取得した場合に、当該識別情報を生成する識別情報生成ステップと、
前記識別情報生成ステップによって生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶ステップと、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で取得した場合に、当該識別情報を前記識別情報記憶ステップにより記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動ステップと
を含むことを特徴とする遠隔起動方法。
【請求項7】
ホストOS及び前記ホストOSによって制御されるゲストOSを備える仮想計算機と、前記仮想計算機とネットワークを介して接続される遠隔計算機とを有する仮想計算機システムであって、
前記仮想計算機は、
前記ゲストOSの起動に使用する新たな識別情報の生成要求をネットワーク経由で前記遠隔計算機から取得した場合に、当該識別情報を生成する識別情報生成部と、
前記識別情報生成部にて生成された識別情報を、当該識別情報を使用して起動するゲストOSに対応付けて記憶する識別情報記憶部と、
ゲストOSの停止中に、前記識別情報を使用して当該ゲストOSを起動する起動要求をネットワーク経由で前記遠隔計算機から取得した場合に、当該識別情報を前記識別情報記憶部により記憶された識別情報と照合し、照合結果に基づいて、起動要求がされたゲストOSを、前記ホストOSを介して起動するゲストOS起動部と
を有することを特徴とする仮想計算機システム。
【請求項8】
前記ゲストOS起動部は、
前記ゲストOSの起動結果を、前記ゲストOSの起動要求元の遠隔計算機に送信し、
前記遠隔計算機は、
前記ゲストOS起動部から送信された、前記ゲストOSの起動結果を出力部に出力する起動結果出力部を有することを特徴とする請求項7に記載の仮想計算機システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2011−145776(P2011−145776A)
【公開日】平成23年7月28日(2011.7.28)
【国際特許分類】
【出願番号】特願2010−4409(P2010−4409)
【出願日】平成22年1月12日(2010.1.12)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成19年度、経済産業省、「セキュア・プラットフォームプロジェクト」委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
【公開日】平成23年7月28日(2011.7.28)
【国際特許分類】
【出願日】平成22年1月12日(2010.1.12)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成19年度、経済産業省、「セキュア・プラットフォームプロジェクト」委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】
[ Back to top ]