(57)【特許請求の範囲】
【請求項１】
仮想管理サーバによって制御される仮想マシンをエミュレートする仮想ホストコンピュータに、電力を供給する電源装置であって、
当該電源装置が電力を供給する仮想ホストコンピュータの識別子を含む仮想ホスト一覧データを記憶する記憶装置と、
前記仮想ホスト一覧データの各仮想ホストコンピュータに、当該仮想ホストコンピュータがエミュレートする仮想マシンの情報の取得リクエストを送信し、各仮想ホストコンピュータから、当該仮想ホストコンピュータがエミュレートする仮想マシンの情報を取得し、前記仮想ホストコンピュータの識別子、前記仮想マシンの識別子および取得した仮想マシンの情報を対応づけた仮想マシン管理データを生成する仮想マシン状態取得手段と、
前記仮想マシン管理データを読み出して、前記仮想マシンの仮想電源に関するコマンドを入力する仮想マシン管理手段と、
を備え、
前記仮想ホスト一覧データが、第１の仮想ホストコンピュータの識別子と第２の仮想ホストコンピュータの識別子を含む場合、
前記仮想マシン状態取得手段は、前記第１の仮想ホストコンピュータがエミュレートする仮想マシンの情報を、当該第１の仮想ホストコンピュータから取得する第１のスレッドと、前記第２の仮想ホストコンピュータがエミュレートする仮想マシンの情報を、当該第２の仮想ホストコンピュータから取得する第２のスレッドを生成し、
前記第１のスレッドにおいて、前記第１の仮想ホストコンピュータがエミュレートする仮想マシンの情報を取得するとともに、前記第２のスレッドにおいて、前記第２の仮想ホストコンピュータがエミュレートする仮想マシンの情報を取得した後に、前記仮想マシン管理データを生成することを特徴とする電源装置。
【請求項２】
前記仮想マシン状態取得手段は、所定のサイクルで仮想マシン管理データを生成する
ことを特徴とする請求項１に記載の電源装置。
【請求項３】
仮想管理サーバによって制御される仮想マシンをエミュレートする仮想ホストコンピュータに、電力を供給する電源装置に用いられるプログラムであって、
電力を供給する仮想ホストコンピュータの識別子を含む仮想ホスト一覧データの各仮想ホストコンピュータに、当該仮想ホストコンピュータがエミュレートする仮想マシンの情報の取得リクエストを送信するステップと、
各仮想ホストコンピュータから、当該仮想ホストコンピュータがエミュレートする仮想マシンの情報を取得し、前記仮想ホストコンピュータの識別子、前記仮想マシンの識別子および取得した仮想マシンの情報を対応づけた仮想マシン管理データを生成するステップと、
前記仮想マシン管理データを読み出して、前記仮想マシンの仮想電源に関するコマンドを入力するステップとを、
前記電源装置が内蔵するコンピュータに実行させ、
前記仮想ホスト一覧データが、第１の仮想ホストコンピュータの識別子と第２の仮想ホストコンピュータの識別子を含む場合、
前記取得リクエストを送信するステップは、
前記第１の仮想ホストコンピュータがエミュレートする仮想マシンの情報を、当該第１の仮想ホストコンピュータから取得する第１のスレッドと、前記第２の仮想ホストコンピュータがエミュレートする仮想マシンの情報を、当該第２の仮想ホストコンピュータから取得する第２のスレッドを生成し、
前記仮想マシン管理データを生成するステップは、
前記第１のスレッドにおいて、前記第１の仮想ホストコンピュータがエミュレートする仮想マシンの情報を取得するとともに、前記第２のスレッドにおいて、前記第２の仮想ホストコンピュータがエミュレートする仮想マシンの情報を取得した後に、前記仮想マシン管理データを生成することを特徴とするプログラム。
【請求項４】
前記仮想マシン管理データを生成するステップは、所定のサイクルで実行される
ことを特徴とする請求項３に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想管理サーバによって制御される仮想マシンをエミュレートする仮想ホストコンピュータに、電力を供給する電源装置およびプログラムに関する。
【背景技術】
【０００２】
一般的に、物理コンピュータのリソースを有効に活用するため、仮想管理が用いられている。仮想管理では、物理コンピュータを仮想ホストとして適用し、仮想ホスト上で、複数の仮想マシンをエミュレートする。仮想管理において、仮想マシンの稼働状況に応じて、仮想マシンが、他の仮想ホストに移行する場合もある。仮想マシンを自由自在に任意の仮想ホストに移行する仕組みを用いることにより、物理コンピュータのリソースを有効に活用することができる。
【０００３】
また、物理コンピュータの消費電力を削減するために、電力制御装置を用いる方法もある（例えば、特許文献１参照。）。この特許文献１に記載の方法では、電力制御装置が、システムの負荷状況を収集して、その負荷状況に基づいてシステムを任意の物理コンピュータに移行させるとともに、選択されなかった物理コンピュータの電源をオフする。このように電力制御装置が、仮想管理とともに電源を管理することにより、物理コンピュータの消費電力を削減することが期待されている。
【０００４】
しかしながら、特許文献１に記載の方法において、電力制御装置に電力を供給する電源装置に電力障害があった場合、この電力制御装置は、電源管理のみならず、仮想管理もできなくなってしまう問題がある。
【０００５】
このような状況に鑑み、仮想マシンの仮想管理と、仮想マシンおよび仮想ホストに対する電源管理を担う電源装置が提案されている（例えば、特許文献２参照。）。特許文献２に記載の方法によれば、電源装置が仮想システムを管理することにより、予め定められたスケジュールデータによって、仮想管理と電力供給とを連動させ、安定してシステムを運営することができる。
【０００６】
また一般的な仮想システムにおいて、電源制御するために、ＰＣＮＳ（PowerChute Network Shutdown）などを用いた仕組みがある（例えば、非特許文献１参照。）。停電によりＵＰＳへの電源供給が停止すると、ＵＰＳのバッテリーで電力供給されている間に、このＵＰＳが電源を供給するコンピュータをシャットダウンする必要がある。そこで非特許文献１に記載の方法では、停電によりＵＰＳへの電源供給が停止すると、電源装置は、電源供給が停止されたことを、仮想システムのサービスコンソール上のＰＣＮＳに通知する。これにより、仮想ホストコンピュータは、シャットダウンを開始するために、仮想マシンのゲストＯＳをシャットダウンする。ゲストＯＳのシャットダウンが完了すると、仮想ホストコンピュータは、シャットダウンする。このようなＰＣＮＳは、仮想マシン上にインストールされ実行される場合もある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−２６９２４９号公報
【特許文献２】特開２０１２−０３８１５７号公報
【非特許文献】
【０００８】
【非特許文献１】日本アイ・ビー・エム株式会社、”VMware ESX / ESXi 4.x 環境におけるIBM UPS管理について”の第５ページ“PowerChute Network Shutdown （PCNS） とは”、［online］、平成２３年、日本アイ・ビー・エム株式会社、［平成２４年５月１７日検索］、インターネット＜http://www-06.ibm.com/jp/domino04/pc/support/Sylphd07.nsf/1e97b730bd4fa8f249256a840020d047/c73c9977ac705ccb4925787700436807/$FILE/VMware_esx4_UPS_mgmt.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献２に記載の発明や、非特許文献１に記載の技術によっても、仮想マシンを適切に稼働できない場合がある。
【００１０】
一般的な電源装置は、停電が発生すると、その旨を各情報機器に通知する。情報機器は停電が発生した旨を受けると、データを保護するためにシャットダウンする。
【００１１】
この方法は、仮想システムにおいても適用されており、電源装置が仮想ホストコンピュータに停電が発生した旨を通知し、仮想ホストコンピュータをシャットダウンする場合がある。このとき、仮想管理サーバが仮想管理するシステムのコンピュータに電源を供給する場合や、非特許文献１に記載するようにＰＣＮＳを用いる場合、仮想管理サーバやＰＣＮＳが、仮想マシンをシャットダウンする。従って、電源装置の稼働と、仮想管理またはＰＣＮＳのシャットダウンとのコマンドを実行するタイミングの連携をとることができない問題がある。
【００１２】
特に、ＰＣＮＳは、仮想マシン上で実行されるので、ＰＣＮＳを実行する仮想マシンの停止、再起動、移行などにより、正常に稼働していない場合が考えられる。この場合、ＰＣＮＳが、仮想マシンを正常にシャットダウンできない場合があり、仮想マシンをシャットダウンするまでの過程も複雑である。また、ＰＣＳＮのための仮想マシンを稼働させる必要があるので、このようなシステムは、リソースを有効に活用できていない場合がある。
【００１３】
そこで、電源装置が仮想マシンのシャットダウンを制御する技術の開発が期待されている。しかしながら、仮想マシンの移行や稼働は、仮想管理サーバが制御しているので、電源装置がその情報を取得できず、仮想マシンの安定した稼働を実現できていない問題がある。
【００１４】
このような状況を鑑み、仮想管理の信頼性を高める技術の開発が期待されている。
【００１５】
従って本発明の目的は、仮想管理の信頼性を高めることのできる電源装置およびプログラムを提供することである。
【課題を解決するための手段】
【００１６】
上記課題を解決するために、本発明の第１の特徴は、仮想管理サーバによって制御される仮想マシンをエミュレートする仮想ホストコンピュータに、電力を供給する電源装置に関する。即ち本発明の第1の特徴に係る電源装置は、当該電源装置が電力を供給する仮想ホストコンピュータの識別子を含む仮想ホスト一覧データを記憶する記憶装置と、仮想ホスト一覧データの各仮想ホストコンピュータに、当該仮想ホストコンピュータがエミュレートする仮想マシンの情報の取得リクエストを送信し、各仮想ホストコンピュータから、当該仮想ホストコンピュータがエミュレートする仮想マシンの情報を取得し、仮想ホストコンピュータの識別子、仮想マシンの識別子および取得した仮想マシンの情報を対応づけた仮想マシン管理データを生成する仮想マシン状態取得手段と、仮想マシン管理データを読み出して、仮想マシンの仮想電源に関するコマンドを入力する仮想マシン管理手段と、を備える。
【００１７】
ここで、仮想マシン状態取得手段は、所定のサイクルで仮想マシン管理データを生成することが好ましい。
【００１８】
また仮想ホスト一覧データが、第１の仮想ホストコンピュータの識別子と第２の仮想ホストコンピュータの識別子を含んでも良い。この場合、仮想マシン状態取得手段は、第１の仮想ホストコンピュータがエミュレートする仮想マシンの情報を、当該第１の仮想ホストコンピュータから取得する第１のスレッドと、第２の仮想ホストコンピュータがエミュレートする仮想マシンの情報を、当該第２の仮想ホストコンピュータから取得する第２のスレッドを生成する。仮想マシン状態取得手段は、第１のスレッドにおいて、第１の仮想ホストコンピュータがエミュレートする仮想マシンの情報を取得するとともに、第２のスレッドにおいて、第２の仮想ホストコンピュータがエミュレートする仮想マシンの情報を取得した後に、仮想マシン管理データを生成する。
【００１９】
本発明の第２の特徴は、仮想管理サーバによって制御される仮想マシンをエミュレートする仮想ホストコンピュータに、電力を供給する電源装置に用いられるプログラムに関する。即ち本発明の第２の特徴に係るプログラムは、電力を供給する仮想ホストコンピュータの識別子を含む仮想ホスト一覧データの仮想ホストコンピュータがエミュレートする仮想マシンの情報の取得リクエストを送信するステップと、各仮想ホストコンピュータから、当該仮想ホストコンピュータがエミュレートする仮想マシンの情報を取得し、仮想ホストコンピュータの識別子、仮想マシンの識別子および取得した仮想マシンの情報を対応づけた仮想マシン管理データを生成するステップと、仮想マシン管理データを読み出して、仮想マシンの仮想電源に関するコマンドを入力するステップとを、電源装置が内蔵するコンピュータに実行させる。
【００２０】
ここで、記仮想マシン管理データを生成するステップは、所定のサイクルで実行されることが好ましい。
【００２１】
また仮想ホスト一覧データが、第１の仮想ホストコンピュータの識別子と第２の仮想ホストコンピュータの識別子を含んでも良い。この場合、取得リクエストを送信するステップは、第１の仮想ホストコンピュータがエミュレートする仮想マシンの情報を、当該第１の仮想ホストコンピュータから取得する第１のスレッドと、第２の仮想ホストコンピュータがエミュレートする仮想マシンの情報を、当該第２の仮想ホストコンピュータから取得する第２のスレッドを生成する。仮想マシン管理データを生成するステップは、
第１のスレッドにおいて、第１の仮想ホストコンピュータがエミュレートする仮想マシンの情報を取得するとともに、第２のスレッドにおいて、第２の仮想ホストコンピュータがエミュレートする仮想マシンの情報を取得した後に、仮想マシン管理データを生成する。
【発明の効果】
【００２２】
本発明によれば、仮想管理の信頼性を高めることのできる電源装置およびプログラムを提供することができる。
【図面の簡単な説明】
【００２３】
【図１】図１は、本発明の実施の形態に係る仮想システムのシステム構成を説明する図である。
【図２】図２は、本発明の実施の形態に係る仮想ホストコンピュータの機能ブロックを説明する図である。
【図３】図３は、本発明の実施の形態に係る電源装置のハードウェア構成と機能ブロックを説明する図である。
【図４】図４は、本発明の実施の形態に係る電源装置における仮想マシン管理データのデータ構造とデータの一例を説明する図である。
【図５】図５は、本発明の実施の形態に係る電源装置における仮想ホスト一覧データのデータ構造とデータの一例を説明する図である。
【図６】図６は、本発明の実施の形態に係る電源装置において、仮想ホストを登録する画面の一例である。
【図７】図７は、本発明の実施の形態に係る電源装置のポーリングの１サイクルを説明する図である。
【図８】図８は、本発明の実施の形態に係る電源装置において、仮想マシン状態取得手段の処理を説明するフローチャートである。
【図９】図９は、本発明の実施の形態に係る電源装置において、仮想マシン状態取得手段が生成するスレッドの処理を説明するフローチャートである。
【発明を実施するための形態】
【００２４】
次に、図面を参照して、本発明の実施の形態を説明する。以下の図面の記載において、同一または類似の部分には同一または類似の符号を付している。
【００２５】
まず、本発明の実施の形態において、「物理コンピュータ」は、中央処理制御装置（ＣＰＵ：Central Processing Unit）および記憶装置などを備えた一般的なコンピュータである。「物理コンピュータ」は、具体的には、パーソナルコンピュータ、サーバ、ブレード型サーバなどのコンピュータである。また「仮想ホストコンピュータ（仮想ホスト）」は、物理コンピュータ上でホストＯＳを実行することにより物理コンピュータに実装される。１台の仮想ホストは、１台以上の仮想マシンを動かすことができる。「仮想マシン」は、１台の仮想ホスト上で、別のコンピュータをソフトウェア的にエミュレートされた仮想的なコンピュータである。
【００２６】
「仮想システム」は、物理コンピュータ、物理ストレージ、物理スイッチ、物理ネットワークなどで構成され、仮想システム全体で１台以上の仮想マシン、仮想ストレージの役割を担う。「仮想管理」とは、仮想システムを構成する仮想インフラを管理するとともに、１台以上の仮想マシンの稼働を制御する。
【００２７】
仮想ホストに対するコマンドとして、「シャットダウン」、「再起動」、「パワーオン」、「パワーオフ」などがある。「シャットダウン」とは、物理コンピュータで稼働している仮想ホストＯＳを所定の手順で、電源供給を停止可能な状態に遷移することである。「再起動」とは、物理コンピュータで稼働している仮想ホストＯＳを再度所定の手順で、シャットダウンし、再び起動することである。「パワーオン」とは、仮想ホストを稼働している物理コンピュータに電源を投入し、仮想ホストＯＳを稼働することである。
【００２８】
仮想マシンに対するコマンドとして、「シャットダウン」、「再起動」、「パワーオン」、「パワーオフ」などがある。「シャットダウン」とは、仮想マシンにインストールされたゲストＯＳを、所定の手順で、仮想マシンに割り当てられたＣＰＵ、メモリなどのリソースを、解放可能な状態に遷移することである。「再起動」とは、仮想マシンをシャットダウンし、再び起動することである。「パワーオン」とは、仮想マシンに割り当てられたＣＰＵ、メモリなどのリソースを、この仮想マシンの稼動のために利用することである。「パワーオフ」とは、仮想マシンに割り当てられたＣＰＵ、メモリなどのリソースを開放することである。また、仮想マシンのシャットダウンが正常に終了しない場合、「パワーオフ」して、強制終了する場合もある。
【００２９】
「電源装置」とは、仮想インフラに電力を供給したり、測定したり、切断する装置である。具体的には「電源装置」とは、交流（ＡＣ：Alternating Current）電源、直流（ＤＣ：Direct Current）電源、無停電電源装置（ＵＰＳ：Uninterruptible Power Supply）、電力分配器（ＰＤＵ：Power Distribution Unit）などである。
【００３０】
「仮想電源」とは、仮想ホストコンピュータにおいて、仮想マシンを稼動するために必要なＣＰＵやメモリなどに要する電力の電源である。仮想電源は、物理電源が仮想ホストに供給する電力のうち、所定の仮想マシンが使用する電力を供給する供給源である。
【００３１】
「電源管理」とは、インフラに、安定して電源を供給するための制御のことである。本発明の実施の形態において電源管理とは、例えば、電源設備の点検時や電源障害時に、電源が、コンピュータなどのインフラを自動的にシャットダウンして、コンピュータのサービスおよびデータを保護する機能である。
【００３２】
（仮想システム）
図１（ａ）を参照して、本発明の実施の形態に係る仮想システム９を説明する。仮想システム９は、第１の電源装置１ａ、第２の電源装置１ｂ、第１の仮想ホストコンピュータ２ａ、第２の仮想ホストコンピュータ２ｂ、第３の仮想ホストコンピュータ２ｃ、第１の仮想マシン３ａ、第２の仮想マシン３ｂ、第３の仮想マシン３ｃ、第４の仮想マシン３ｄ、第５の仮想マシン３ｅ、第６の仮想マシン３ｆ、仮想管理サーバ４および電源管理装置５を備える。第１の電源装置１ａ、第２の電源装置１ｂ、第１の仮想ホストコンピュータ２ａ、第２の仮想ホストコンピュータ２ｂ、第３の仮想ホストコンピュータ２ｃ、第１の仮想マシン３ａ、第２の仮想マシン３ｂ、第３の仮想マシン３ｃ、第４の仮想マシン３ｄ、第５の仮想マシン３ｅ、第６の仮想マシン３ｆおよび仮想管理サーバ４は、通信ネットワーク６を介して、相互に通信可能に接続されている。図１（ａ）に示す例において電源管理装置５は、第１の電源装置１ａおよび第２の電源装置１ｂと相互に通信可能に接続する場合を説明するが、通信ネットワーク６を介して、他の機器とも通信可能に接続しても良い。
【００３３】
本実施の形態において、第１の仮想ホストコンピュータ２ａ、第２の仮想ホストコンピュータ２ｂおよび第３の仮想ホストコンピュータ２ｃを区別しない場合、単に仮想ホストコンピュータ２と記載する場合がある。また、仮想ホストコンピュータ２を、単に仮想ホスト２と記載する場合がある。第１の仮想マシン３ａ、第２の仮想マシン３ｂ、第３の仮想マシン３ｃ、第４の仮想マシン３ｄ、第５の仮想マシン３ｅおよび第６の仮想マシン３ｆを区別しない場合、単に仮想マシン３と記載する場合がある。図１に示す電源装置１、仮想ホストコンピュータ２および仮想マシン３などの数は一例であり、これに限ることはない。
【００３４】
図１（ａ）に示す仮想システム９は、複数の仮想ホストコンピュータ２を備えており、これらの仮想ホストコンピュータ２おいて、１または複数の仮想マシン３がエミュレートされている。ここで、仮想ホストコンピュータ２は、物理インフラを構成する物理コンピュータである。仮想マシン３は、仮想ホストコンピュータ２がエミュレートする、仮想インフラを構成する仮想コンピュータである。
【００３５】
仮想ホスト２は、一般的な物理コンピュータに所定のプログラムがインストールされることにより実現される。仮想ホスト２は、仮想マシン３をエミュレートする。図１（ａ）において、第１の仮想ホスト２ａは、第１の仮想マシン３ａ、第２の仮想マシン３ｂおよび第３の仮想マシン３ｃをエミュレートする。第２の仮想ホスト２ｂは、第４の仮想マシン３ｄをエミュレートする。第３の仮想ホスト２ｃは、第５の仮想マシン３ｅおよび第６の仮想マシン３ｆをエミュレートする。
【００３６】
図１（ａ）に示す仮想システム９において、電源装置１は、仮想管理サーバ４によって制御される仮想マシン３をエミュレートする仮想ホストコンピュータ２に電力を供給する。さらに電源装置１は、これらの仮想ホスト２がエミュレートする仮想マシン３の仮想電源を管理する。第１の電源装置１ａが電力を供給する対象は、第１の仮想ホスト２ａおよび第２の仮想ホスト２ｂであるので、第１の電源装置１ａは、第１の仮想マシン３ａ、第２の仮想マシン３ｂ、第３の仮想マシン３ｃおよび第４の仮想マシン３ｄの仮想電源を管理する。第２の電源装置１ｂが電力を供給する対象は、第３の仮想ホスト２ｃであるので、第２の電源装置１ｂは、第５の仮想マシン３ｅおよび第６の仮想マシン３ｆの仮想電源を管理する。
【００３７】
電源管理装置５は、電源装置１を操作するためのコンピュータである。電源管理装置５は、一般的なコンピュータが、所定のプログラムを実行することにより実現される。電源管理装置５は、電源装置１にコマンドを入力したり、電源装置１の情報を表示したりするとともに、コマンドおよび情報の入出力に伴うデータの処理を担う。
【００３８】
仮想管理サーバ４は、図１（ａ）に示す仮想マシン３について、移行やリソースの割り当てなどの仮想管理を実行する。ここで、本発明の実施の形態において仮想マシンの起動およびシャットダウンに関する仮想電源を、仮想管理サーバ４でなく、電源装置１が制御する。
【００３９】
仮想管理サーバ４によって、仮想マシン３が移行された後の仮想システム９を説明する。図１（ｂ）に示す仮想システム９において、第３の仮想マシン３ｃおよび第５の仮想マシン３ｅが移行している。第３の仮想マシン３ｃは、図１（ａ）において第１の仮想ホスト２ａによってエミュレートされていたところ、図１（ｂ）において第２の仮想ホスト２ｂによってエミュレートされる。第５の仮想マシン３ｅは、図１（ａ）において第３の仮想ホスト２ｃによってエミュレートされていたところ、図１（ｂ）において第１の仮想ホスト２ａによってエミュレートされる。本発明の実施の形態は、仮想管理サーバ４が、これらの仮想マシン３の移行を指示する場合を想定する。
【００４０】
本発明の実施の形態に係る電源装置１は、このような電源装置１以外の制御による仮想マシン３の移行を検知する。電源装置１は、仮想マシン３と仮想ホスト２との対応づけに基づいて、仮想マシン３の仮想電源と、仮想ホスト２の物理電源を、連携して制御することにより、仮想管理の信頼性の向上に寄与する。
【００４１】
（仮想ホストコンピュータ）
図２を参照して、本発明の実施の形態に係る仮想ホストコンピュータ２を説明する。仮想ホストコンピュータ２は、中央処理制御装置２１０、記憶装置２２０および通信制御装置２３０を備える一般的なコンピュータである。仮想マシンを制御するためのホストＯＳが、仮想ホストコンピュータ２にインストールされている。記憶装置２２０は、複数の記憶装置によって構成されても良く、同様に中央処理制御装置２１０も、複数の中央処理制御装置によって構成されても良い。また、記憶装置２２０は、複数の仮想ホストコンピュータが接続可能な、共有ディスクであっても良い。
【００４２】
記憶装置２２０は、中央処理制御装置２１０における処理に関するデータを記憶する記憶媒体であって、例えばハードディスクである。通信制御装置２３０は、他のコンピュータ、電源装置、共有ディスクなどと通信するための装置であって、例えばＬＡＮアダプタ、ＦＣ−ＳＡＮ（fibre-channel SAN）である。
【００４３】
ホストＯＳのインストールなどにより、中央処理制御装置２１０は、仮想マシン制御手段２１１および移行手段２１２を実装する。
【００４４】
仮想マシン制御手段２１１は、仮想ホストコンピュータ２がエミュレートする仮想マシン３を制御する手段である。仮想マシン制御手段２１１は、例えば、各仮想マシン３へのリソースの割り当てなど、各仮想マシン３を制御する。本発明の実施の形態においては特に、仮想管理サーバ４の指示により、仮想マシン３の移行を制御する。
【００４５】
移行手段２１２は、仮想マシン３を他の仮想ホストコンピュータ２に移行する手段である。本発明の実施の形態においては、仮想管理サーバ４から入力された移行リクエストに基づいて仮想マシン３を移行する。本発明の実施の形態において、仮想マシン３の制御や移行の具体的手段については、特に問わない。
【００４６】
（電源装置）
図３を参照して、本発明の実施の形態に係る電源装置１を説明する。電源装置１は、メモリ１０、コントローラ２０、電力供給部３０および通信制御装置４０を備える。
【００４７】
電力供給部３０は、電源装置１に接続された仮想ホストコンピュータ２に、電力を供給する。電力供給部３０は、複数のアウトレットを備え、複数の仮想ホストコンピュータ２に電力を供給することができる。図１（ａ）に示す例では、第１の電源装置１ａは少なくとも２つのアウトレットを備え、第２の電源装置１ｂは少なくとも１つのアウトレットを備える。
【００４８】
通信制御装置４０は、他の電源装置や情報機器と通信するための装置であって、例えばＬＡＮアダプタである。図１（ａ）に示す例において通信制御装置４０は、通信ネットワーク６を介して、仮想ホスト２と、相互に通信するとともに、電源管理装置５と相互に通信することができる。
【００４９】
メモリ１０は、電源装置１で実行するファームウェアプログラムなどのプログラムデータ、およびコントローラ２０で処理されるデータなどを蓄積する記憶装置である。メモリ１０は、プログラムデータの記憶領域を備えるとともに、電源管理データ１１、仮想マシン管理データ１２および仮想ホスト一覧データ１３を記憶する。本発明の実施の形態において、電源装置１のメモリ１０が、各データを記憶する場合について説明するが、これらのデータは、電源装置１に内蔵されたメモリ１０に記憶されている必要はない。例えば、電源装置１が読み出し可能なコンピュータのハードディスクや、半導体メモリなど、外部の記憶手段において記憶されていても良い。
【００５０】
電源管理データ１１は、仮想ホスト２に供給する電力の設定情報を記憶したデータである。電源管理データ１１は、アウトレット識別子と、そのアウトレットによる電力供給先である仮想ホスト２の識別子と、その電力供給のための設定情報と、を対応づける。ここで電力供給のための設定情報とは、電力供給のタイプ、入力電圧、入力周波数、出力電圧および出力周波などであるが、これは一例で、そのほかの情報が含まれても良い。
【００５１】
仮想マシン管理データ１２は、電源装置１が電力供給する仮想ホスト２がエミュレートする仮想マシンに関するデータである。仮想マシン管理データ１２は、後述する仮想マシン状態取得手段２３によって、各仮想ホスト２または各仮想マシン３から取得するデータである。
【００５２】
仮想マシン管理データ１２は、例えば、図４に示すデータである。図４に示す仮想マシン管理データ１２は、仮想ホスト識別子と、この仮想ホストがエミュレートする仮想マシン識別子と、この仮想マシンに関する仮想マシン情報を対応づけたデータである。
【００５３】
仮想ホスト識別子は、仮想ホスト２のマシン名、ＩＰアドレスなどである。仮想マシン識別子は、仮想マシン３のマシン名、ＩＰアドレス、ＵＵＩＤなどである。
【００５４】
仮想マシン情報は、仮想マシン３のマシン名、ＩＰアドレス、稼働中またはシャットダウンなどの稼働状態、この仮想マシン３に割り当てられたＣＰＵ数、メモリ容量、この仮想マシンのＯＳ名などの情報を対応づけたデータである。仮想マシン管理データ１２は、後述する仮想マシン管理手段２２で参照される情報である。
【００５５】
図１（ａ）に示す例において、第１の電源装置１ａは、第１の仮想ホスト２ａおよび第２の仮想ホスト２ｂに電力を供給する。第１の仮想ホスト２ａは、第１の仮想マシン３ａ、第２の仮想マシン３ｂおよび第３の仮想マシン３ｃをエミュレートする。従って、仮想マシン管理データ１２は、第１の仮想ホスト２ａの識別子に、第１の仮想マシン３ａ、第２の仮想マシン３ｂおよび第３の仮想マシン３ｃの識別子を対応づけるとともに、各仮想マシン３の仮想マシン情報が対応づけられる。さらに、仮想マシン管理データ１２は、第２の仮想ホスト２ｂの識別子に、第４の仮想マシン３ｄの識別子を対応づけるとともに、第４の仮想マシン３ｄの仮想マシン情報を対応づける。
【００５６】
仮想ホスト一覧データ１３は、電源装置１が電力を供給する仮想ホストコンピュータ２の識別子を含むデータである。仮想ホスト一覧データ１３は、図５に示すように、仮想ホスト識別子に、この仮想ホスト２のＩＰアドレス、バージョン情報およびホストＯＳ情報などを対応づけたデータである。仮想ホスト一覧データ１３は、さらに、各仮想ホスト２にアクセスするためのユーザ名およびパスワードを対応づけても良い。
【００５７】
仮想ホスト一覧データ１３のうち、仮想ホスト識別子およびＩＰアドレスは、例えば、図６に示す画面などにより、ユーザによって予め入力されても良い。図６は、電源装置１が電力供給する各仮想ホスト２の情報を、ユーザが入力する画面である。図６に示す画面は、電源装置１の表示装置に表示されても良いし、電源装置１に接続される電源管理装置５の表示装置に表示されても良い。
【００５８】
ユーザは、図６に示す画面に、仮想ホスト２のＩＰアドレス、ユーザ名およびパスワードを入力する。電源装置１は、図６に示す画面に入力された情報を取得して、仮想ホスト一覧データ１３を生成する。ここで、仮想ホスト２のユーザ名およびパスワードは、仮想ホスト２にログインして、仮想マシンを制御したり、仮想マシンの情報を取得するために、必要に応じて設定される。
【００５９】
コントローラ２０は、電源管理手段２１、仮想マシン管理手段２２、仮想マシン状態取得手段２３および仮想マシン状態送信手段２４を備える。コントローラ２０は、これらの各手段の処理を制御する。コントローラ２０は、いわゆる組み込みコンピュータであって、一般的なコンピュータで用いられるＣＰＵとは異なる。
【００６０】
電源管理手段２１は、電源管理データ１１に基づいて電力供給部３０に指示し、各仮想ホスト２への電力供給を制御する。電源管理手段２１は、各アウトレットに予め定められた条件で、電力を供給する。また、電源管理手段２１は、通常時には外部電源から電力供給を受けて蓄電池に蓄電するとともに、各アウトレットに電力を供給する。停電が発生すると電源管理手段２１は、蓄電池から各アウトレットに電力を供給する。
【００６１】
仮想マシン管理手段２２は、仮想マシン管理データ１２に基づいて、電源装置１が電力を供給する仮想ホスト２がエミュレートする仮想マシン３を管理する。図１（ａ）において、第１の電源装置１ａの場合、仮想マシン管理手段２２の管理対象は、第１の仮想ホスト２ａがエミュレートする第１の仮想マシン３ａ、第２の仮想マシン３ｂおよび第３の仮想マシン３ｃと、第２の仮想ホスト２ｂがエミュレートする第４の仮想マシン３ｄである。
【００６２】
本発明の実施の形態に係る仮想マシン管理手段２２は特に、仮想マシン３の仮想電源に関するコマンドを入力する。「仮想マシン３の仮想電源に関するコマンド」は、仮想マシン３の稼働の開始または終了のコマンドであって、具体的には、起動、再起動、シャットダウン、パワーオン、またはパワーオフなど、仮想マシンの稼動に必要な電力に関するコマンドである。
【００６３】
例えば、仮想マシン管理手段２２は、停電が発生したことを検知すると、管理対象の仮想マシン３にシャットダウンする命令を出力する。これにより、仮想マシン３におけるＣＰＵやメモリなどのリソースは開放され、仮想マシンの稼動に必要な仮想的な電力はゼロとなり、仮想ホスト２をシャットダウンする準備が整う。
【００６４】
仮想マシン状態取得手段２３は、電源装置１が電力を供給する仮想ホスト２について、仮想ホスト２に接続して、当該仮想ホスト２がエミュレートする仮想マシン３の情報を取得して、図４に示す仮想マシン管理データ１２を生成する。図１（ａ）に示す例において、第１の電源装置１ａが電力を供給する仮想ホスト２は、第１の仮想ホスト２ａおよび第２の仮想ホスト２ｂである。
【００６５】
仮想マシン状態取得手段２３は、仮想ホスト一覧データ１３の各仮想ホストコンピュータ２に、仮想ホストコンピュータ２がエミュレートする仮想マシン３の情報の取得リクエストを送信する。仮想マシン状態取得手段２３は、各仮想ホストコンピュータ２から、当該仮想ホストコンピュータ２がエミュレートする仮想マシン３の情報を取得する。仮想マシン状態取得手段２３は、仮想ホストコンピュータ２の識別子、仮想マシン３の識別子および取得した仮想マシン３の情報を対応づけた仮想マシン管理データ１２を生成し、メモリ１０に記憶する。
【００６６】
ここで、仮想マシン状態取得手段２３は、所定のサイクルで仮想マシン管理データ１２を生成することが好ましい。例えば、仮想マシン状態取得手段２３は、仮想マシン管理データ１２を生成し、所定時間が経過した後に、仮想ホスト２に、仮想マシン３の情報の取得リクエストを送信しても良い。
【００６７】
ここで、仮想マシン状態取得手段２３は、仮想ホスト２のそれぞれに、仮想マシン３の情報の取得リクエストを送信して、仮想マシン３の情報を取得するスレッドを設けても良い。
【００６８】
例えば、仮想ホスト一覧データ１３が、第１の仮想ホストコンピュータ２ａの識別子と第２の仮想ホストコンピュータ２ｂの識別子を含む場合を考える。
【００６９】
この場合仮想マシン状態取得手段２３は、第１のスレッドと、第２のスレッドを生成する。第１のスレッドは、第１の仮想ホストコンピュータ２ａがエミュレートする仮想マシンの情報を、第１の仮想ホストコンピュータ２ａから取得するスレッドである。第２のスレッドは、第２の仮想ホストコンピュータ２ｂがエミュレートする仮想マシンの情報を、当該第２の仮想ホストコンピュータ２ｂから取得するスレッドである。
【００７０】
仮想マシン状態取得手段２３は、第１のスレッドにおいて、第１の仮想ホストコンピュータ２ａがエミュレートする仮想マシンの情報を取得する。さらに仮想マシン状態取得手段２３は、第２のスレッドにおいて、第２の仮想ホストコンピュータ２ｂがエミュレートする仮想マシンの情報を取得する。その後、この仮想マシン状態取得手段２３は、仮想マシン管理データ１２を生成する。
【００７１】
図７を参照して、仮想マシン状態取得手段２３が仮想マシン３の情報を取得するサイクルを説明する。図７に示す例では、周期的にポーリングして仮想マシンの情報を取得する場合を説明するが、この例に限られない。例えば、停電が発生したなど、所定の条件と満たした際、仮想マシン状態取得手段２３は、図７に示す１サイクルの処理を実行しても良い。
【００７２】
図７（ａ）は、ポーリングの１サイクルを説明する。仮想マシン状態取得手段２３は、直近で仮想マシン管理データ１２を生成してから、Ｗ１において、所定時間ｔのスリープタイムを設ける。所定時間ｔの経過後、仮想マシン状態取得手段２３は、第1の仮想ホスト２ａに関する第１のスレッドＴ１と、第２の仮想ホスト２ｂに第２のスレッドＴ２を生成する。仮想マシン状態取得手段２３は、第１のスレッドＴ１および第２のスレッドＴ２の処理が終了するまでの間、Ｗ２において、スレッド終了を待機する。
【００７３】
第１のスレッドＴ１は、まず、Ｗ２１において、第１の仮想ホスト２ａから、仮想マシン一覧を取得し、その後、Ｗ２２において、Ｗ２１で取得した仮想マシン一覧の各仮想マシンにアクセスして、仮想マシン情報を取得する。第２のスレッドＴ２も同様に、まず、Ｗ２３において、第２の仮想ホスト２ｂから、仮想マシン一覧を取得し、その後、Ｗ２４において、Ｗ２３で取得した仮想マシン一覧の各仮想マシン３にアクセスして、仮想マシン情報を取得する。
【００７４】
図７（ｂ）を参照して、Ｗ２１において、第１の仮想ホスト２ａから仮想マシン一覧を取得する処理を説明する。第１のスレッドＴ１は、まず、Ｗ２１１において、仮想ホスト一覧データ１３から第１の仮想ホスト２ａのＩＰアドレスを取得し、https://<ＩＰアドレス>/mobにアクセスし、第１の仮想ホスト２ａのバージョン情報、ホストＯＳ情報などを取得する。取得した情報は、仮想ホスト一覧データ１３に更新されても良い。次にＷ２１２において、所定時間のスリープの後、Ｗ２１３において、仮想マシン状態取得手段２３は、https://<ＩＰアドレス>/mob?moid/ha-folder-vmにアクセスし、第１の仮想ホスト２ａがエミュレートする仮想マシンの識別子を取得する。
【００７５】
図７（ｃ）を参照して、第１の仮想ホスト２ａがエミュレートする仮想マシンの情報を取得する処理を説明する。第１のスレッドＴ１は、Ｗ２１３で取得した各仮想マシン３に接続して、各仮想マシンの情報を取得する。ここで、Ｗ２１３で取得した仮想マシンは、Ｎ個であるとする。第１のスレッドＴ１は、Ｗ２２１において、仮想マシン一覧の第１の仮想マシンの識別子に基づいて、https://<ＩＰアドレス>/mob?moid=<仮想マシンの識別子>&doPath=summaryにアクセスする。第１のスレッドＴ１は、第１の仮想マシンの仮想マシン名、ＩＰアドレス、稼働状態、ＣＰＵ数、メモリ容量、ＯＳ名などの第１の仮想マシンの情報を取得する。次にＷ２２２において、所定時間のスリープの後、第１のスレッドＴ１は、Ｗ２２３において、仮想マシン一覧の第２の仮想マシンの識別子に基づいて、https://<ＩＰアドレス>/mob?moid=<仮想マシンの識別子>&doPath=summaryにアクセスする。第１のスレッドＴ１は、第２の仮想マシンの仮想マシン名、ＩＰアドレス、稼働状態、ＣＰＵ数、メモリ容量、ＯＳ名などの第２の仮想マシンの情報を取得する。このようにＷ２１３において取得した仮想マシン一覧の各仮想マシンについて、仮想マシンの情報を取得すると、このスレッドの処理を終了する。
【００７６】
第２のスレッドＴ２においても、図７（ｂ）および図７（ｃ）と同様に、第２の仮想ホスト２ｂがエミュレートする仮想マシンの情報を取得する。
【００７７】
なお、ここでは、ＨＴＴＰＳを用いて仮想マシン情報を取得する場合を説明したが、これに限られない。例えばＨＴＴＰ、ＳＯＡＰ、ＳＳＨなど、どのようなプロトコルを用いても良い。
【００７８】
第１のスレッドＴ１および第２のスレッドＴ２の処理が終了すると、仮想マシン状態取得手段２３は、Ｗ３において終了処理をする。具体的には、第１のスレッドＴ１および第２のスレッドＴ２によって取得された仮想マシンの情報に基づいて、仮想マシン管理データ１２を生成し、メモリ１０に記憶する。またこの後、所定時間ｔのスリープタイムの経過後、仮想マシン状態取得手段２３は、各仮想ホスト２の仮想マシンの情報を取得する。
【００７９】
図８および図９を参照して、本発明の実施の形態に係る仮想マシン状態取得手段２３による仮想マシン状態取得処理を説明する。
【００８０】
まずステップＳ１において仮想マシン状態取得手段２３は、ポーリングのタイミングであるか否かを判定する。具体的には、前回仮想マシン管理データ１２を生成してから、所定時間ｔが経過したか否かを判定する。経過していない場合、仮想マシン状態取得手段２３は、所定時間ｔの経過を待機する。また仮想マシン状態取得手段２３は、停電が発生した際にポーリングしても良い。
【００８１】
経過した場合、仮想ホスト一覧データ１３の各仮想ホストについて、ステップＳ２およびステップＳ３の処理を繰り返す。仮想マシン状態取得手段２３は、ステップＳ２において、仮想ホスト２の仮想マシン情報を取得するスレッドを生成し、ステップＳ３において、ステップＳ２で生成したスレッドで、処理を開始する。
【００８２】
仮想ホスト一覧データ１３の各仮想ホストについて、ステップＳ２およびステップＳ３の処理が終了すると、ステップＳ４において仮想マシン状態取得手段２３は、全てのスレッドの処理が終了したか判定する。全てのスレッドの処理が終了していない場合、待機する。全てのスレッドの処理が終了すると、ステップＳ５において仮想マシン状態取得手段２３は、仮想マシン管理データ１２を生成し、メモリ１０に記憶する。
【００８３】
図９を参照して、ステップＳ２で生成したスレッドの処理を説明する。
【００８４】
まずステップＳ１１において仮想マシン状態取得手段２３は、仮想ホスト２に、この仮想ホスト２がエミュレートする仮想マシン識別子の取得リクエストを送信し、ステップＳ１２において、仮想マシン識別子を受信する。
【００８５】
仮想マシン状態取得手段２３は、ステップＳ１２で受信した各仮想マシン識別子について、ステップＳ１３およびステップＳ１４の処理を繰り返す。ステップＳ１３において仮想マシン状態取得手段２３は、この仮想マシン３に、仮想マシン情報の取得リクエストを送信し、ステップＳ１４において、仮想マシン情報を受信する。
【００８６】
ステップＳ１２で取得した各仮想マシン識別子について、ステップＳ１３およびステップＳ１４の処理が終了すると、仮想マシン状態取得手段２３は、このスレッドの処理を終了する。
【００８７】
仮想マシン状態送信手段２４は、仮想マシン管理データ１２を、電源管理装置５等の外部の端末に送信する。電源管理装置５は、仮想マシン管理データ１２を受信することにより、仮想システム９における仮想マシンの最新の情報を把握し、ユーザに表示したり、ユーザによる仮想マシン３に対するコマンドの入力を受けることができる。
【００８８】
このように本発明の実施の形態に係る電源装置１は、仮想ホスト２に周期的に、あるいは所定の条件を満たしたタイミングで、ポーリングし、仮想ホスト２がエミュレートする仮想マシンの情報を把握することができる。これにより、仮想管理サーバ４が仮想システム９を制御している場合でも、電源装置１は、仮想マシン３の情報を取得することができる。
【００８９】
具体的には、電源装置１は、緊急な停電が発生しても、仮想マシン３の仮想電源をシャットダウンするコマンドを送信した後、この仮想マシンをエミュレートする仮想ホスト２の物理電源をシャットダウンするコマンドを送信することができる。これにより、緊急な停電が発生した場合でも、電源装置１から仮想マシン３および仮想ホスト２にシャットダウンのコマンドを送信することにより、仮想マシン３および仮想ホスト２のデータを保護し、簡易かつ安全に、シャットダウンすることができる。
【００９０】
また、電源装置１が、仮想ホスト２および仮想マシン３のデータを保有することにより、電源装置１の管理者が、電源供給に関して管理するべき機器を、一元管理することができる。このような電源装置１は、システム構築、システム運用および保守を容易に実現することができる。
【００９１】
（その他の実施の形態）
上記のように、本発明の実施の形態によって記載したが、この開示の一部をなす論述および図面はこの発明を限定するものであると理解すべきではない。この開示から当業者には様々な代替実施の形態、実施例および運用技術が明らかとなる。
【００９２】
例えば、実施の形態で示す処理の順序は、一例であって、矛盾が生じない限り変更されても良い。
【００９３】
また、本発明の実施の形態において、電源管理装置５は、一般的なコンピュータに所定のプログラムをインストールしたものであると説明したがこれに限られない。電源管理装置５は、いわゆる電源管理ボックスなどの、１または複数の電源装置１の管理の専用のコンピュータであっても良い。
【００９４】
本発明はここでは記載していない様々な実施の形態等を含むことは勿論である。従って、本発明の技術的範囲は上記の説明から妥当な特許請求の範囲に係る発明特定事項によってのみ定められるものである。
【符号の説明】
【００９５】
１  電源装置
２  仮想ホストコンピュータ（仮想ホスト）
３  仮想マシン
４  仮想管理サーバ
５  電源管理装置
６  通信ネットワーク
９  仮想システム
１０  メモリ
１１  電源管理データ
１２  仮想マシン管理データ
１３  仮想ホスト一覧データ
２０  コントローラ
２１  電源管理手段
２２  仮想マシン管理手段
２３  仮想マシン状態取得手段
２４  仮想マシン状態送信手段
３０  電力供給部
４０  通信制御装置
２１０  中央処理制御装置
２１１  仮想マシン制御手段
２１２  移行手段
２２０  記憶装置
２３０  通信制御装置
【図１】
0006003256.tif 000002
【図２】
0006003256.tif 000003
【図３】
0006003256.tif 000004
【図４】
0006003256.tif 000005
【図５】
0006003256.tif 000006
【図６】
0006003256.tif 000007
【図７】
0006003256.tif 000008
【図８】
0006003256.tif 000009
【図９】
0006003256.tif 000010