(57)【特許請求の範囲】
【請求項１】
物理ドライブが使用可能な仮想マシンの割当状態を含む物理資源情報と、仮想マシンの仮想ドライブに対する物理ドライブの割当状態および前記仮想ドライブのステータスを含む仮想資源情報と、を記憶するデータベースと、前記物理ドライブと、にアクセス可能なコンピュータに、
前記データベースを参照して、前記物理ドライブが使用可能な仮想マシンの割当状態と前記仮想ドライブに対する物理ドライブの割当状態とを取得し、
前記物理ドライブが使用可能な仮想マシンが未割当であり、かつ、前記仮想ドライブに対する物理ドライブが未割当であるかを判断し、
いずれも未割当である場合、前記物理ドライブが使用可能な仮想マシンの割当状態を、前記仮想マシンが割り当てられたことを示す情報に変更するとともに、前記仮想ドライブに対する物理ドライブの割当状態を、前記物理ドライブが割り当てられたことを示す情報に変更する、
処理を、前記物理ドライブを制御する第１のプログラムで実行させるとともに、
前記データベースの仮想資源情報を参照して、前記仮想ドライブに対する物理ドライブの割当状態が、前記物理ドライブが割り当てられたことを示す情報に変更されたことを検出し、
前記物理ドライブが割り当てられたことを示す情報に変更されたことを検出した場合、前記物理ドライブを前記仮想マシンに割り当てる、
処理を、前記仮想マシンを制御する第２のプログラムで実行させることを特徴とする管理プログラム。
【請求項２】
前記物理ドライブにメディアが挿入されたことを検出し、
前記物理ドライブへの前記メディアの挿入を検出した場合、前記仮想ドライブのステータスを挿入状態に変更する、
処理を、前記第１のプログラムで実行させるとともに、
前記データベースの仮想資源情報を参照して、前記仮想ドライブのステータスが挿入状態に変更されたことを検出し、
前記仮想ドライブのステータスが挿入状態に変更されたことを検出した場合、前記物理ドライブが前記メディアを挿入したことを前記仮想マシンが前記仮想ドライブにより挿入したこととして前記仮想マシンに認識させる、
処理を、前記第２のプログラムで実行させることを特徴とする請求項１に記載の管理プログラム。
【請求項３】
前記物理ドライブからメディアが排出されたことを検出し、
前記物理ドライブからの前記メディアの排出を検出した場合、前記仮想ドライブのステータスを排出状態に変更する、
処理を、前記第１のプログラムで実行させるとともに、
前記データベースの仮想資源情報を参照して、前記仮想ドライブのステータスが排出状態に変更されたことを検出し、
前記仮想ドライブのステータスが排出状態に変更されたことを検出した場合、前記物理ドライブが前記メディアを排出したことを前記仮想マシンが前記仮想ドライブにより排出したこととして前記仮想マシンに認識させる、
処理を、前記第２のプログラムで実行させることを特徴とする請求項１または２に記載の管理プログラム。
【請求項４】
物理ドライブが使用可能な仮想マシンの割当状態を含む物理資源情報と、仮想マシンの仮想ドライブに対する物理ドライブの割当状態および前記仮想ドライブのステータスを含む仮想資源情報と、を記憶するデータベースと、前記物理ドライブと、にアクセス可能なコンピュータに、
前記データベースを参照して、前記物理ドライブが使用可能な仮想マシンの割当状態と前記仮想ドライブに対する物理ドライブの割当状態とを取得し、
各割当状態を未割当に変更する、
処理を、前記物理ドライブを制御する第１のプログラムで実行させるとともに、
前記データベースの仮想資源情報を参照して、前記仮想ドライブに対する物理ドライブの割当状態が、未割当に変更されたことを検出し、
未割当に変更されたことを検出した場合、前記物理ドライブが解放されたことを前記仮想マシンが前記仮想ドライブを解放したこととして前記仮想マシンに認識させる、
処理を、前記仮想マシンを制御する第２のプログラムで実行させることを特徴とする管理プログラム。
【請求項５】
物理ドライブが使用可能な仮想マシンの割当状態を含む物理資源情報と、仮想マシンの仮想ドライブに対する物理ドライブの割当状態および前記仮想ドライブのステータスを含む仮想資源情報と、を記憶するデータベースと、前記物理ドライブと、にアクセス可能な第１の管理部と、前記データベースにアクセス可能な第２の管理部と、を有する管理装置であって、
前記第１の管理部は、
前記データベースを参照して、前記物理ドライブが使用可能な仮想マシンの割当状態と前記仮想ドライブに対する物理ドライブの割当状態とを取得し、
前記物理ドライブが使用可能な仮想マシンが未割当であり、かつ、前記仮想ドライブに対する物理ドライブが未割当であるかを判断し、
いずれも未割当である場合、前記物理ドライブが使用可能な仮想マシンの割当状態を、前記仮想マシンが割り当てられたことを示す情報に変更するとともに、前記仮想ドライブに対する物理ドライブの割当状態を、前記物理ドライブが割り当てられたことを示す情報に変更する、処理を実行し、
前記第２の管理部は、
前記データベースの仮想資源情報を参照して、前記仮想ドライブに対する物理ドライブの割当状態が、前記物理ドライブが割り当てられたことを示す情報に変更されたことを検出し、
前記物理ドライブが割り当てられたことを示す情報に変更されたことを検出した場合、前記物理ドライブを前記仮想マシンに割り当てる、処理を実行することを特徴とする管理装置。
【請求項６】
物理ドライブが使用可能な仮想マシンの割当状態を含む物理資源情報と、仮想マシンの仮想ドライブに対する物理ドライブの割当状態および前記仮想ドライブのステータスを含む仮想資源情報と、を記憶するデータベースと、前記物理ドライブと、にアクセス可能な第１の管理部と、前記データベースにアクセス可能な第２の管理部と、を有する管理装置であって、
前記第１の管理部は、
前記データベースを参照して、前記物理ドライブが使用可能な仮想マシンの割当状態と前記仮想ドライブに対する物理ドライブの割当状態とを取得し、
各割当状態を未割当に変更する、処理を実行し、
前記第２の管理部は、
前記データベースの仮想資源情報を参照して、前記仮想ドライブに対する物理ドライブの割当状態が、未割当に変更されたことを検出し、
未割当に変更されたことを検出した場合、前記物理ドライブが解放されたことを前記仮想マシンが前記仮想ドライブを解放したこととして前記仮想マシンに認識させる、処理を実行することを特徴とする管理装置。
【請求項７】
物理ドライブが使用可能な仮想マシンの割当状態を含む物理資源情報と、仮想マシンの仮想ドライブに対する物理ドライブの割当状態および前記仮想ドライブのステータスを含む仮想資源情報と、を記憶するデータベースと、前記物理ドライブと、にアクセス可能なコンピュータが、
前記データベースを参照して、前記物理ドライブが使用可能な仮想マシンの割当状態と前記仮想ドライブに対する物理ドライブの割当状態とを取得し、
前記物理ドライブが使用可能な仮想マシンが未割当であり、かつ、前記仮想ドライブに対する物理ドライブが未割当であるかを判断し、
いずれも未割当である場合、前記物理ドライブが使用可能な仮想マシンの割当状態を、前記仮想マシンが割り当てられたことを示す情報に変更するとともに、前記仮想ドライブに対する物理ドライブの割当状態を、前記物理ドライブが割り当てられたことを示す情報に変更する、
処理を、前記物理ドライブを制御する第１のプログラムで実行するとともに、
前記データベースの仮想資源情報を参照して、前記仮想ドライブに対する物理ドライブの割当状態が、前記物理ドライブが割り当てられたことを示す情報に変更されたことを検出し、
前記物理ドライブが割り当てられたことを示す情報に変更されたことを検出した場合、前記物理ドライブを前記仮想マシンに割り当てる、
処理を、前記仮想マシンを制御する第２のプログラムで実行することを特徴とする管理方法。
【請求項８】
物理ドライブが使用可能な仮想マシンの割当状態を含む物理資源情報と、仮想マシンの仮想ドライブに対する物理ドライブの割当状態および前記仮想ドライブのステータスを含む仮想資源情報と、を記憶するデータベースと、前記物理ドライブと、にアクセス可能なコンピュータが、
前記データベースを参照して、前記物理ドライブが使用可能な仮想マシンの割当状態と前記仮想ドライブに対する物理ドライブの割当状態とを取得し、
各割当状態を未割当に変更する、
処理を、前記物理ドライブを制御する第１のプログラムで実行するとともに、
前記データベースの仮想資源情報を参照して、前記仮想ドライブに対する物理ドライブの割当状態が、未割当に変更されたことを検出し、
未割当に変更されたことを検出した場合、前記物理ドライブが解放されたことを前記仮想マシンが前記仮想ドライブを解放したこととして前記仮想マシンに認識させる、
処理を、第２のプログラムで実行することを特徴とする管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、物理マシンに構築された複数の仮想マシンを管理する仮想マシン管理プログラム、仮想マシン管理装置、および仮想マシン管理方法に関する。
【背景技術】
【０００２】
下記特許文献１には、メディアの挿入を検知すると、仮想ＣＤ−ＲＯＭ領域に格納されたアプリケーションプログラムが自動実行され、仮想ＣＤ−ＲＯＭ領域の設定情報や設定内容を変更するリムーバブルメディア装置が記載されている。
【０００３】
【特許文献１】特開２００５−１９００７５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記特許文献１とは目的も構成も異なるが、従来から、一台の物理マシン（サーバやパーソナル・コンピュータ）に複数のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）をインストールしておくことにより、一台の物理マシンで各ＯＳを動かすことができる仮想マシンを構築する仮想化技術が普及している。仮想マシン上でＣＤやＤＶＤ、ＦＤなどのメディアの交換をおこなう場合、以下の手順によりおこなわれる。
【０００５】
図１９は、従来の仮想マシンによるメディア排出の一例を示す説明図である。図１９において、仮想マシン上では、（Ａ）仮想マシン上でのメディア排出操作をおこなう。すなわち、仮想マシン画面において、仮想ドライブを示すＧＵＩアイコンが表示されている。このＧＵＩアイコンは、仮想ドライブ上で“ＫＡＳＯＵ＿ＣＤ０１”というメディアが、物理ドライブに挿入されていることを認識している状態であることを示している。オペレータは、仮想ドライブのＧＵＩアイコンをクリック操作することで、仮想マシン上でのメディア排出操作がおこなわれる。
【０００６】
つぎに、（Ｂ）物理マシン上でのメディア排出操作をおこなう。すなわち、仮想マシンにより仮想的に特定される仮想ドライブと物理マシン上の物理ドライブとの間にはエミュレータが介在しているため、（Ａ）仮想マシン上でのメディア排出操作だけでは、物理ドライブのトレーは開かない。
【０００７】
したがって、オペレータは、物理ドライブのイジェクトボタンを押下することで、物理マシン上でのメディア排出操作がおこなわれる。そして、（Ｂ）物理マシン上でのメディア排出操作により、物理ドライブのトレーが開くため、物理ドライブからメディアが排出される。このあと、メディア挿入操作をおこなう。
【０００８】
図２０は、従来の仮想マシンによるメディア挿入を示す説明図である。図２０において、（Ａ）仮想マシン画面では、図１９の（Ａ）で仮想ドライブのＧＵＩアイコンをクリックしたことで、メディアの排出済みを示すＧＵＩアイコンに変更（“ＮＯ  ＤＩＳＫ”と表示）されている。この状態において、トレーから排出されたメディアと他のメディアとを交換し、（Ｂ）物理マシン上でのメディア挿入操作をおこなう。すなわち、物理ドライブの挿入ボタンを押下することで、他のメディアを物理ドライブに挿入する。
【０００９】
この段階では、仮想マシンは他のメディアの挿入を認識していないため、エミュレータでは、物理ドライブに他のメディアが挿入されたことを仮想マシンに認識させる必要がある。したがって、（Ｃ）エミュレータによる再読込指示操作をおこなう。すなわち、オペレータは、エミュレータに対しメディア再読込指示の操作をおこなう。仮想マシンではエミュレータからの再読込指示を受けることで、（Ｄ）その仮想ドライブにおいて、他のメディアが読み込まれたことを認識する（ＧＵＩアイコンで“ＫＡＳＯＵ＿ＣＤ０２”と表示）。
【００１０】
したがって、このようなメディア交換では、メディア排出時に仮想マシン、物理マシン、エミュレータでそれぞれ仮想ドライブまたは物理ドライブに対して、オペレータによるメディア排出操作が必要である。また、メディア交換後、エミュレータに再読み込み指示を出す場合も、オペレータによる操作が必要である。このため、メディア交換の際の手順が煩雑であるという問題があった。
【００１１】
この発明は、上述した従来技術による問題点を解消するため、オペレータの作業負担軽減を図ることができるプログラム、装置、および方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するための第１のプログラム、装置、および方法は、複数の仮想マシンの中から選ばれた特定の仮想マシン上の仮想ドライブの状態がメディア挿入状態に変更された場合に、前記特定の仮想マシンのエミュレータにより、前記特定の仮想マシンに前記仮想ドライブとして割り当てられた物理ドライブにメディアが挿入されたことを認識させるためのプログラム、装置、および方法であって、前記物理ドライブに前記メディアの挿入イベントが発生したことを検出し、前記挿入イベントが発生したことが検出された場合、前記仮想ドライブの状態を、前記メディア挿入状態に変更することを要件とする。
【００１３】
この第１のプログラム、装置、および方法によれば、仮想ドライブとして割り当てられている物理ドライブに対するメディア挿入操作だけで、その仮想ドライブを使用する仮想マシンがメディア挿入を自動認識することができる。
【００１４】
また、上記第１のプログラム、装置、および方法において、前記仮想ドライブの状態が書き込まれている前記エミュレータが参照可能なテーブルを記憶しておき、前記挿入イベントが発生したことが検出された場合、記憶されたテーブルにおける前記仮想ドライブの状態を、前記メディア挿入状態に書き換えることとしてもよい。
【００１５】
この第１のプログラム、装置、および方法によれば、テーブルをエミュレータと共有することができ、一連のメディア挿入処理をエミュレータと連携しておこなうことができる。
【００１６】
また、第２のプログラム、装置、および方法は、複数の仮想マシンの中から選ばれた特定の仮想マシンのエミュレータにより、前記特定の仮想マシンの仮想ドライブがメディア排出状態に変更されたことを検出し、前記仮想ドライブがメディア排出状態に変更されたことが検出された場合、前記特定の仮想マシンに前記仮想ドライブとして割り当てられている物理ドライブから当該物理ドライブに挿入されているメディアを排出するように制御することを要件とする。
【００１７】
この第２のプログラム、装置、および方法によれば、仮想ドライブを動作する仮想マシンからメディア排出イベントを受けるだけで、その仮想マシンに仮想ドライブとして割り当てられている物理ドライブからメディアを自動排出することができる。
【００１８】
また、上記第２のプログラム、装置、および方法において、前記仮想ドライブの状態が書き込まれている前記エミュレータが書き込み可能なテーブルを記憶しておき、前記エミュレータが前記仮想ドライブの状態をメディア挿入状態から前記メディア排出状態に書き換えたことを検出することとしてもよい。
【００１９】
この第２のプログラム、装置、および方法によれば、テーブルをエミュレータと共有することができ、一連のメディア排出処理をエミュレータと連携しておこなうことができる。
【００２０】
また、上記第２のプログラム、装置、および方法において、前記物理ドライブに前記メディアの挿入イベントが発生したことを検出し、前記挿入イベントが発生したことが検出された場合、前記仮想ドライブの状態を、前記メディア挿入状態に変更することとしてもよい。
【００２１】
この第２のプログラム、装置、および方法によれば、オペレータが、自動排出されたメディアから他のメディアへの交換作業および仮想ドライブとして割り当てられている物理ドライブに対するメディア挿入操作だけで、その仮想ドライブを使用する仮想マシンがメディア交換を自動認識することができる。
【００２２】
また、上記第２のプログラム、装置、および方法において、前記物理ドライブに前記メディアの挿入イベントが発生したことを検出し、前記挿入イベントが発生したことが検出された場合、記憶されたテーブルにおける前記仮想ドライブの状態を、前記メディア排出状態から前記メディア挿入状態に書き換えることとしてもよい。
【００２３】
この第２のプログラム、装置、および方法によれば、テーブルをエミュレータと共有することができ、一連のメディア交換処理をエミュレータと連携しておこなうことができる。
【発明の効果】
【００２４】
本発明にかかる仮想マシン管理プログラム、仮想マシン管理装置、および仮想マシン管理方法によれば、オペレータの作業負担軽減を図ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２５】
以下に添付図面を参照して、この発明にかかる仮想マシン管理プログラム、仮想マシン管理装置、および仮想マシン管理方法の好適な実施の形態を詳細に説明する。
【００２６】
（物理マシンのハードウェア構成）
まず、この発明の実施の形態にかかる物理マシン（仮想マシン管理装置）のハードウェア構成について説明する。図１は、物理マシンのハードウェア構成を示す説明図である。
【００２７】
図１において、物理マシン１００は、コンピュータ本体１１０と、入力装置１２０と、出力装置１３０と、から構成されており、不図示のルータやモデムを介してＬＡＮ，ＷＡＮやインターネットなどのネットワーク１４０に接続可能である。
【００２８】
コンピュータ本体１１０は、ＣＰＵ，記憶装置，インターフェースを有する。ＣＰＵは、物理マシン１００の全体の制御を司る。記憶装置は、ＲＯＭ，ＲＡＭ，ＨＤ，光ディスク１１１，フラッシュメモリから構成される。ＲＡＭはＣＰＵのワークエリアとして使用される。
【００２９】
また、記憶装置には仮想マシンとなる複数のＯＳ，当該ＯＳごとのエミュレータ、管理デーモンなど各種プログラムが格納されており、ＣＰＵからの命令に応じてロードされる。ＨＤおよび光ディスク１１１はディスクドライブによりデータのリード／ライトが制御される。また、光ディスク１１１およびフラッシュメモリはコンピュータ本体１１０に対し着脱自在である。インターフェースは、入力装置１２０からの入力、出力装置１３０への出力、ネットワーク１４０に対する送受信の制御をおこなう。
【００３０】
また、入力装置１２０としては、キーボード１２１、マウス１２２、スキャナ１２３などがある。キーボード１２１は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式であってもよい。マウス１２２は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。スキャナ１２３は、画像を光学的に読み取る。読み取られた画像は画像データとして取り込まれ、コンピュータ本体１１０内の記憶装置に格納される。なお、スキャナ１２３にＯＣＲ機能を持たせてもよい。
【００３１】
また、出力装置１３０としては、ディスプレイ１３１、プリンタ１３２、スピーカ１３３などがある。ディスプレイ１３１は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。また、プリンタ１３２は、画像データや文書データを印刷する。またスピーカ１３３は、効果音や読み上げ音などの音声を出力する。
【００３２】
（物理マシンの内部構成）
つぎに、図１に示した物理マシンの内部構成について説明する。図２は、図１に示した物理マシン１００の内部構成を示すブロック図である。図２において、物理マシン１００は、ＣＤ，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ，ＤＶＤ，ＤＶＤ±Ｒ，ＤＶＤ±ＲＷ，ブルーレイＤＶＤ，ＨＤＤＶＤなどの光ディスクをリード／ライトする光ディスクドライブやＦＤをリード／ライトするＦＤドライブ、ＭＯディスクをリード／ライトするＭＯドライブなどの物理ドライブを備えている。
【００３３】
図２では、物理マシン１００は、例として、物理ドライブＤ１としてＣＤ−ＲＯＭドライブ、物理ドライブＤ２としてＦＤドライブ、物理ドライブＤ３としてＭＯドライブを備えている。以降、任意の物理ドライブをＤと称す。
【００３４】
また、物理マシン１００には、複数（図２では例として３種類）の仮想マシンＶＭ１〜ＶＭ３が構築されている。以降、任意の仮想マシンをＶＭと称す。各仮想マシンＶＭ１〜ＶＭ３は、各々仮想ドライブＶＤ１〜ＶＤ３を構築することができる。図２では、仮想マシンＶＭ１には仮想ドライブＶＤ１として物理ドライブＤ１が割り当てられている。仮想ドライブ種は、物理ドライブＤ１と同種のＣＤ−ＲＯＭドライブである。
【００３５】
また、仮想マシンＶＭ２には仮想ドライブＶＤ２として物理ドライブＤ２が割り当てられている。仮想ドライブ種は、物理ドライブＤ２と同種のＦＤドライブである。また、仮想マシンＶＭ３には仮想ドライブＶＤ３として物理ドライブＤ３が割り当てられている。仮想ドライブ種は、物理ドライブＤ３と同種のＭＯドライブである。
【００３６】
なお、他の仮想マシンと競合しない限り、各仮想マシンＶＭ１〜ＶＭ３には複数の物理ドライブをそれぞれ仮想ドライブＶＤ１〜ＶＤ３として割り当てることもできる。たとえば、仮想マシンＶＭ１に物理ドライブＤ１，Ｄ２が割り当てられた場合、仮想マシンＶＭ１には、仮想ドライブＶＤ１（ＣＤ−ＲＯＭドライブ），仮想ドライブＶＤ２（ＦＤドライブ）が構築される。なお、仮想マシンからはその仮想マシンが構築された仮想ドライブに対してアクセスすることとなり、物理ドライブに対して直接アクセスすることができない。
【００３７】
また、物理マシン１００には、仮想マシンＶＭ１〜ＶＭ３ごとにエミュレータＥ１〜Ｅ３が存在する。以降、任意のエミュレータをＥと称す。エミュレータＥ１〜Ｅ３とは、物理マシン１００のＯＳ上で動作し、リソースの仮想化をおこなうプログラムである。エミュレータＥ１〜Ｅ３は、共有ＤＢ２００から情報を読み出して、仮想ドライブに対しメディア読込指示をおこなったり、仮想ドライブからの指示により共有ＤＢ２００に情報の書き込みをおこなう。たとえば、仮想マシンＶＤ１上でＣＤ−ＲＯＭ取り出し操作が行われた場合、共有ＤＢ２００に情報を書き込む。また、共有ＤＢ２００にＣＤ−ＲＯＭ入替えイベントが書き込まれた場合、ＣＤ−ＲＯＭの再読み込みを自動的に行う。
【００３８】
また、管理デーモン２１０は、物理マシン１００のＯＳ上で動作し、仮想マシンＶＭ１〜ＶＭ３の管理をおこなう常駐プログラムである。管理デーモン２１０は、物理ドライブからの指示を受けて共有ＤＢ２００に書き込みをおこなったり、共有ＤＢ２００から情報を読み出して、読み出した情報に応じた指示を物理ドライブに対しておこなう。管理デーモン２１０は、共有ＤＢ２００にＣＤ−ＲＯＭ取り出しイベントが書き込まれた場合、ＣＤ−ＲＯＭの取り出し処理を自動的に行う。また、新しいＣＤ−ＲＯＭが物理ドライブＤ１に挿入された場合、共有ＤＢ２００に情報を書き込む。
【００３９】
このように、管理デーモン２１０はエミュレータＥと協働して、仮想マシン監視処理、ドライブ割当処理、メディア排出処理、メディア挿入処理を実行する。メディア交換処理は、メディア排出処理とメディア挿入処理との組み合わせで実現することができる。
【００４０】
ここで、仮想マシン監視処理とは、各種イベントを監視する処理である。イベントとは、たとえば、仮想ドライブのステータス変更やオペレータによる物理ドライブへのメディアの挿入操作、オペレータによる仮想マシンからのメディア排出指示、ドライブ割当コマンド、ドライブ解放コマンドなどがある。
【００４１】
また、ドライブ割当処理とは、物理ドライブＤをある仮想マシンＶＭに割り当てる処理である。また、ドライブ解放処理とは、すでに割り当てられた物理ドライブＤをその仮想マシンＶＭから解放する処理である。また、メディア挿入処理とは、仮想ドライブＶＤ（として割り当てられた物理ドライブＤ）にメディアを挿入して、その仮想マシンＶＭに対して仮想ドライブＶＤにメディアが挿入されたことを認識させて、メディアを読み込む処理である。また、メディア排出処理とは、仮想マシンＶＭからのメディア排出指示により、その仮想ドライブＶＤ（として割り当てられた物理ドライブＤ）からメディアを排出する処理である。
【００４２】
また、共有ＤＢ２００は、各エミュレータＥ１〜Ｅ３と管理デーモン２１０とで共有する資源管理テーブルを記憶するデータベースである。共有ＤＢ２００は、各エミュレータＥ１〜Ｅ３と管理デーモン２１０とからそれぞれアクセス（リード／ライト）可能である。共有ＤＢ２００は、物理マシン１００に搭載されているメモリやＨＤにより構成される。
【００４３】
（共有ＤＢ２００の記憶内容）
つぎに、図２に示した共有ＤＢ２００の記憶内容について説明する。図３は、共有ＤＢ２００の記憶内容を示す説明図である。図３において、共有ＤＢ２００には、資源管理テーブル３００が格納されている。資源管理テーブル３００は、物理資源である物理ドライブＤの設定情報を記憶する物理資源テーブル３０１と、仮想資源である仮想マシンＶＭの設定情報を記憶する仮想資源テーブル３０２とから構成されている。
【００４４】
まず、物理資源テーブル３０１は、設定情報として、物理ドライブ項目、その種類項目、および使用仮想マシン項目を記憶する。たとえば、物理ドライブＤ１は、ＣＤ−ＲＯＭドライブであるため、その種類はＣＤ−ＲＯＭドライブを示す“ｃｄｒｏｍ”である。また、使用仮想マシンが“ＶＭ１”であるため、物理ドライブＤ１は仮想マシンＶＭ１に割り当てられていることがわかる。なお、物理ドライブＤ２，Ｄ３のように、どの仮想マシンＶＭにも割り当てられていない場合、使用仮想マシン項目は“未割当”となる。
【００４５】
また、仮想資源テーブル３０２は、設定情報として、仮想マシン項目、仮想ドライブ種項目、割当対象物理ドライブ項目、ステータスを記憶する。仮想ドライブ種項目には、仮想ドライブ種が記憶される。仮想ドライブ種は、割当対象物理ドライブのドライブ種と一致する。
【００４６】
割当対象物理ドライブ項目には、仮想マシンに割り当てられた物理ドライブ名が記憶される。たとえば、仮想マシンＶＭ１には物理ドライブＤ１が割り当てられていることがわかる。この仮想ドライブ種項目と割当対象物理ドライブ項目により、仮想マシンＶＭから認識される仮想ドライブＶＤが特定される。たとえば、図３では、仮想マシンＶＭ１から見ると、仮想ドライブ種：ＣＤ−ＲＯＭでかつ割当対象物理ドライブ：Ｄ１であるため、図２に示した仮想ドライブＶＤ１は、ＣＤ−ＲＯＭドライブであることがわかり、実際に動作させる物理ドライブＤ１と一致する。
【００４７】
また、ステータスとは、仮想ドライブＶＤ（として割り当てられる物理ドライブＤ）の状態をあらわしており、「ｉｎｓｅｒｔ」（挿入）または「ｅｊｅｃｔ」（排出）のいずれかをとる。上述の例では、仮想ドライブＶＤ１（仮想ドライブ種：ＣＤ−ＲＯＭ、割当対象物理ドライブ：Ｄ１）のステータスは“ｉｎｓｅｒｔ”となっているため、仮想マシンＶＭ１では、物理ドライブＤ１に挿入されたＣＤ−ＲＯＭを認識していることがわかる。
【００４８】
（仮想マシン管理装置の機能的構成）
つぎに、仮想マシン管理装置の機能的構成について説明する。図４は、仮想マシン管理装置の機能的構成を示すブロック図である。図４において、仮想マシン管理装置は、管理デーモン２１０と仮想マシン数に対応したエミュレータＥを有する。まず、管理デーモン２１０は、第１の制御部４００と、第１の検出部４０１と、第１の変更部４０２と、第１のメモリ４０３を備えている。
【００４９】
まず、第１の制御部４００は、物理ドライブＤを制御する機能を有する。具体的には、メディアを排出する際には、物理ドライブＤにメディア排出指示を通知する。物理ドライブＤはメディア排出指示を受け取ると、内部機構により、挿入されているメディアを排出する。
【００５０】
また、第１の制御部４００は、メディア挿入処理の際には、物理ドライブＤからのメディア挿入操作を検出する。具体的には、たとえば、オペレータの操作により物理ドライブＤ１にＣＤ−ＲＯＭが挿入されると、メディア挿入イベントを第１の変更部４０２に与える。また、メディア排出処理の際には、挿入されているメディアの排出指示を物理ドライブＤ１に与える。具体的には、たとえば、第１の検出部４０１から物理ドライブＤ１に関するメディア排出イベントの検出信号が与えられると、ＣＤ−ＲＯＭの排出指示を物理ドライブＤ１に与える。
【００５１】
また、第１の検出部４０１は、ドライブ割当コマンドや、ドライブ解放コマンド、仮想ドライブＶＤの状態を検出する機能を有する。具体的には、たとえば、ドライブ割当処理の際には、仮想ドライブＶＤを使用したい仮想マシンＶＭとその仮想マシンＶＭに仮想ドライブＶＤとして割り当てたい物理ドライブＤを特定する。また、ドライブ解放処理の際には、仮想ドライブＶＤを使用可能な仮想マシンＶＭとその仮想マシンＶＭに仮想ドライブＶＤとして割り当てられた物理ドライブＤを特定する。
【００５２】
また、メディア挿入処理の際には、第１の制御部４００からのメディア挿入イベントを検出する。また、メディア排出処理の際には、共有ＤＢ２００を参照して、仮想ドライブＶＤのステータス変更（“ｉｎｓｅｒｔ”→“ｅｊｅｃｔ”）を検出する。
【００５３】
また、第１の変更部４０２は、共有ＤＢ２００の内容を変更（書換）する機能を有する。具体的には、たとえば、ドライブ割当処理の際には、物理資源テーブル３０１を参照して、物理ドライブＤを割り当てたい仮想マシンＶＭのステータスを確認し、ステータスが“未割当”である場合には、そのステータスを“未割当”から割り当てたい仮想マシン名（たとえば、“ＶＭ１”）に書き換える。また、仮想資源テーブル３０２を参照して、割当対象物理ドライブ名を確認し、“未割当”である場合には、割当対象物理ドライブ名を“未割当”から割り当てたい物理ドライブ名（たとえば、“Ｄ１”）に書き換える。
【００５４】
また、メディア挿入処理の際には、第１の検出部４０１によりメディア挿入イベントが検出されると、仮想資源テーブル３０２上においてメディア挿入の対象となった仮想ドライブＶＤ（として割り当てられている物理ドライブ）のステータスを、“ｅｊｅｃｔ”から“ｉｎｓｅｒｔ”に書き換える。
【００５５】
また、管理デーモン２１０は、仮想資源テーブル３０２から割当対象物理ドライブ項目を除いたテーブルを第１のメモリ４０３に保持しており、仮想マシン項目、仮想ドライブ種項目およびステータスを記憶している。ステータスは、仮想資源テーブル３０２のステータスが書き換わることにより、第１の変更部４０２により同一の値に書き換えられる。
【００５６】
つぎに、エミュレータＥの機能的構成について説明する。エミュレータＥは、第２の制御部４１０と、第２の検出部４１１と、第２の変更部４１２と、第２のメモリ４１３と、を備えている。
【００５７】
まず、第２の制御部４１０は、仮想マシンＶＭを制御する機能を有する。具体的には、物理ドライブＤを仮想マシンＶＭに割り当てるドライブ割当処理の際には、仮想マシンＶＭ上の仮想ドライブＶＤを構築する。具体的には、仮想ドライブＶＤを構成する割当対象物理ドライブＤと仮想ドライブ種を仮想マシンＶＭに通知することで、仮想マシンＶＭは仮想ドライブＶＤを認識することができる。
【００５８】
また、ドライブ解放処理の際には、構築された仮想ドライブＶＤの解放指示を仮想マシンに与える。このあと、仮想マシンＶＭからは仮想ドライブＶＤが認識できなくなり、仮想ドライブＶＤのＧＵＩアイコンも消失する。
【００５９】
また、第２の制御部４１０は、メディア挿入処理の際には、仮想資源テーブル３０２において仮想ドライブＶＤのステータスが“ｅｊｅｃｔ”から“ｉｎｓｅｒｔ”に変更されると、エミュレータＥから直接、割当対象物理ドライブＤにアクセスして挿入されているメディアを読み込む。
【００６０】
また、メディア排出処理の際には、仮想マシンＶＭからのメディア排出操作を受け付ける。具体的には、たとえば、オペレータの操作により仮想マシンＶＭ１上で物理ドライブＤ１からのＣＤ−ＲＯＭの排出指示（たとえば、仮想ドライブＶＤ１のＧＵＩアイコンをクリック）があると、そのメディア排出イベントを第２の検出部４１１に与える。
【００６１】
また、第２の検出部４１１は、各種イベントを検出する機能を有する。具体的には、たとえば、ドライブ割当処理の際には、仮想資源テーブル３０２における割当対象物理ドライブが、“未割当”から仮想マシンＶＭ１に仮想ドライブＶＤ１として割り当てたい物理ドライブ名（“Ｄ１”）に書き換えられたことを検出する。
【００６２】
また、ドライブ解放処理の際には、逆に、仮想資源テーブル３０２における割当対象物理ドライブ項目が、仮想マシンＶＭ１に仮想ドライブとして割り当てられた物理ドライブ名（“Ｄ１”）から“未割当”に書き換えられたことを検出する。
【００６３】
また、メディア挿入処理の際には、仮想資源テーブル３０２において、仮想ドライブＶＤのステータスが“ｅｊｅｃｔ”から“ｉｎｓｅｒｔ”に書き換えられたことを検出する。また、メディア排出処理の際には、第２の制御部４１０からのメディア排出イベントを検出する。
【００６４】
また、第２の変更部４１２は、共有ＤＢ２００の内容を変更（書換）する機能を有する。具体的には、たとえば、メディア排出処理の際には、仮想資源テーブル３０２を参照して、メディア排出対象の仮想ドライブＶＤのステータスを、“ｉｎｓｅｒｔ”から“ｅｊｅｃｔ”に書き換える。
【００６５】
また、各エミュレータＥ１〜Ｅ３は、仮想資源テーブル３０２から仮想マシン項目を除いたテーブルをその第２のメモリ４１３に保持しており、仮想ドライブ種項目、割当対象物理ドライブ項目およびステータスを記憶している。ステータスは、仮想資源テーブル３０２のステータスが書き換わることにより、第２の変更部４１２により同一の値に書き換えられる。
【００６６】
（仮想マシン監視処理）
つぎに、仮想マシン監視処理について説明する。管理デーモン２１０とエミュレータＥとはそれぞれ独立にこの仮想マシン監視処理を実行するが、共有ＤＢ２００にはそれぞれアクセスするため、管理デーモン２１０とエミュレータＥとに分けて説明する。
【００６７】
図５は、管理デーモン２１０による仮想マシンの監視処理手順を示すフローチャートであり、図６は、仮想マシン監視処理における仮想資源テーブル３０２および管理デーモン２１０上の第１のメモリを示す説明図である。
【００６８】
図５において、管理デーモン２１０は、まず、未処理の仮想マシンＶＭがあるか否かをチェックする（ステップＳ５０１）。このチェックは、管理デーモン２１０上の第１のメモリ４０３に監視フラグ（不図示）をたてておき、この監視フラグの有無によりチェックするか否かを判断すればよい。この場合、監視フラグは一定時間経過後、リセットすることにより、次回の監視処理においてもすべての仮想マシンＶＭ１〜ＶＭ３をチェックすることができる。
【００６９】
そして、未処理の仮想マシンＶＭがある場合（ステップＳ５０１：Ｙｅｓ）、その未処理の仮想マシンＶＭを選択する（ステップＳ５０２）。つぎに、選択された仮想マシンＶＭ中に、未処理の仮想ドライブＶＤがあるか否かを判断する（ステップＳ５０３）。未処理の仮想ドライブＶＤがない場合（ステップＳ５０３：Ｎｏ）、ステップＳ５０１に戻る。
【００７０】
一方、未処理の仮想ドライブＶＤがある場合（ステップＳ５０３：Ｙｅｓ）、選択仮想ドライブのステータスを読み込む（ステップＳ５０４）。たとえば、仮想マシンＶＭ１の仮想ドライブＶＤ１（仮想ドライブ種：ＣＤ−ＲＯＭ、割当対象物理ドライブ：Ｄ１）を選択した場合、そのステータス：ｉｎｓｅｒｔを読み込む。
【００７１】
そして、読み込んだステータスと管理デーモン２１０上の第１のメモリ４０３における対応するステータスとの一致判定をおこなう（ステップＳ５０５）。一致する場合（ステップＳ５０５：Ｙｅｓ）、仮想資源テーブル３０２と管理デーモン２１０上の第１のメモリ４０３とで整合性がとれているため、ステップＳ５０３に戻る。一方、不一致である場合（ステップＳ５０５：Ｎｏ）、ステータス変更イベント検出をおこなう（ステップＳ５０６）。
【００７２】
ここで、ステータス変更イベントとは、仮想資源テーブル３０２のステータスが、“ｉｎｓｅｒｔ”→“ｅｊｅｃｔ”への変更または“ｅｊｅｃｔ”→“ｉｎｓｅｒｔ”への変更を検出することである。このステータス変更イベント検出により、各種処理を実行することとなる。
【００７３】
このあと、管理デーモン２１０の第１のメモリ４０３上のステータスを、仮想資源テーブル３０２のステータスと同一のステータスに書き換える（ステップＳ５０７）。そして、ステップＳ５０３に戻る。また、ステップＳ５０１において、未処理の仮想マシンＶＭがない場合（ステップＳ５０１：Ｎｏ）、管理デーモン２１０による一連の監視処理を終了する。
【００７４】
つぎに、エミュレータＥによる仮想マシンＶＭに割り当てられた仮想ドライブＶＤの監視処理について説明する。図７は、エミュレータＥによる仮想ドライブＶＤの監視処理手順を示すフローチャートであり、図８は、仮想ドライブＶＤの監視処理における仮想資源テーブル３０２およびエミュレータＥ上の第２のメモリ４１３を示す説明図である。
【００７５】
図７において、エミュレータＥは、まず、未処理の仮想ドライブＶＤがあるか否かをチェックする（ステップＳ７０１）。このチェックは、エミュレータＥ上の第２のメモリ４１３に監視フラグ（不図示）をたてておき、この監視フラグの有無によりチェックするか否かを判断すればよい。この場合、監視フラグは一定時間経過後、リセットすることにより、次回の監視処理においてもすべての仮想マシンＶＭをチェックすることができる。
【００７６】
未処理の仮想ドライブＶＤがある場合（ステップＳ７０１：Ｙｅｓ）、仮想資源テーブル３０２中、その仮想ドライブＶＤに割り当てられた割当対象物理ドライブおよび仮想ドライブＶＤのステータスを読み込む（ステップＳ７０２）。たとえば、仮想マシンＶＭ１の仮想ドライブＶＤ１（仮想ドライブ種：ＣＤ−ＲＯＭ）を選択した場合、その割当対象物理ドライブ：Ｄ１、および、ステータス：ｉｎｓｅｒｔを読み込む。
【００７７】
そして、読み込んだ割当対象物理ドライブ、および、ステータスとエミュレータＥ上の第２のメモリ４１３における対応する割当対象物理ドライブ、および、ステータスとの一致判定をおこなう（ステップＳ７０３）。一致する場合（ステップＳ７０３：Ｙｅｓ）、仮想資源テーブル３０２とエミュレータＥ上のメモリとで整合性がとれているため、ステップＳ７０１に戻る。一方、不一致である場合（ステップＳ７０３：Ｎｏ）、イベント検出をおこなう（ステップＳ７０４）。具体的には、割当対象物理ドライブ名が不一致である場合、物理ドライブ名変更イベントを検出し、ステータスが不一致である場合、ステータス変更イベントを検出する。
【００７８】
物理ドライブ名変更イベントとは、仮想資源テーブル３０２の割当対象物理ドライブ名が、“取得物理ドライブ名”→“未割当”へ変更、または、“未割当”→“取得物理ドライブ名”へ変更することである。この割当対象物理ドライブ名変更イベント検出により、各種処理を実行することとなる。また、ステータス変更イベントとは、仮想資源テーブル３０２のスタータスが、“ｉｎｓｅｒｔ”→“ｅｊｅｃｔ”へ変更または“ｅｊｅｃｔ”→“ｉｎｓｅｒｔ”へ変更することである。このステータス変更イベント検出により、各種処理を実行することとなる。
【００７９】
このあと、エミュレータＥ上の第２のメモリ４１３の該当箇所（割当対象物理ドライブまたは／およびステータス）を、仮想資源テーブル３０２と同一内容に書き換える（ステップＳ７０５）。そして、ステップＳ７０２に戻る。図８では、ステータスのみが不一致であるので、ステータスを“ｅｊｅｃｔ”から“ｉｎｓｅｒｔ”に書き換えている。また、ステップＳ７０１において、未処理の仮想ドライブＶＤがない場合（ステップＳ７０１：Ｎｏ）、エミュレータＥによる一連の監視処理を終了する。
【００８０】
（ドライブ割当処理）
つぎに、ドライブ割当処理について説明する。管理デーモン２１０とエミュレータＥとはそれぞれ独立にこのドライブ割当処理を実行するが、共有ＤＢ２００にはそれぞれアクセスするため、管理デーモン２１０とエミュレータＥとに分けて説明する。
【００８１】
図９は、管理デーモン２１０によるドライブ割当処理手順を示すフローチャートである。割当前においては、管理デーモン２１０上の第１のメモリ４０３では、仮想マシンＶＭ１のすべての仮想ドライブ種のステータスは“ｅｊｅｃｔ”に設定されているものとする。また、資源管理テーブル３００では、物理ドライブＤには、使用仮想マシン項目が“未割当”に設定されているものとする。
【００８２】
図９において、管理デーモン２１０は仮想マシン名および物理ドライブ名を取得する（ステップＳ９０１）。具体的には、たとえば、ある物理ドライブＤをある仮想マシンＶＭに割り当てるドライブ割当コマンドが実行されると、その仮想マシン名：ＶＭおよび物理ドライブ名：Ｄが管理デーモン２１０に通知される。これにより、管理デーモン２１０は仮想マシン名：ＶＭおよび物理ドライブ名：Ｄを取得することができる。以下の説明では、取得仮想マシン名：ＶＭ１、取得物理ドライブ名：Ｄ１を例に挙げて説明する。
【００８３】
つぎに、管理デーモン２１０は物理資源テーブル３０１を参照して、取得物理ドライブ名により特定される物理ドライブＤに仮想マシンＶＭが割り当てられているか否かを判断する（ステップＳ９０２）。たとえば、上記の例では、物理資源テーブル３０１の使用仮想マシン項目が“ＶＭ１”ではなく“未割当”となっているため、書換前の資源管理テーブル３００では、物理ドライブＤ１は仮想マシンＶＭ１に割り当てられていないことがわかる。
【００８４】
このステップＳ９０２において、他の仮想マシンＶＭが割り当てられている場合（ステップＳ９０２：Ｎｏ）には、取得物理ドライブＤ１に取得仮想マシンＶＭ１を割り当てることができないため、割当不可メッセージを出力して（ステップＳ９０９）、ドライブ割当処理を終了する。割当不可メッセージには、たとえば、すでに割り当てられている他の仮想マシン名を表示することとしてもよい。
【００８５】
一方、未割当である場合（ステップＳ９０２：Ｙｅｓ）、取得物理ドライブＤの使用仮想マシン項目を“未割当”から“取得仮想マシン名”に書き換える（ステップＳ９０３）。たとえば、上記の例では“ＶＭ１”に書き換えられる（図９中、右下の書換後の物理資源テーブル３０１を参照。）。
【００８６】
また、同様に、仮想資源テーブル３０２の割当対象物理ドライブ項目を、“未割当”から“取得仮想マシン名に書き換えられた物理ドライブ名”に書き換える（ステップＳ９０４）。上記の例では、“Ｄ１”に書き換えられる（図９中、右下の書換後の仮想資源テーブル３０２を参照。）。これにより、仮想資源テーブル３０２上では、取得仮想マシンＶＭ１に対して取得物理ドライブＤ１が割り当てられることとなる。
【００８７】
つぎに、仮想マシンＶＭに割り当てられた物理ドライブＤに対するメディア挿入を確認する（ステップＳ９０５）。具体的には、たとえば、割り当てられた物理ドライブＤからのメディア挿入イベントの有無により判断する。メディア挿入イベントとは、オペレータによる物理ドライブＤの挿入操作によりメディアを挿入する処理である。物理ドライブＤにメディアが挿入されると、その旨の信号が管理デーモン２１０に通知される。この信号の有無によりメディア挿入を確認する。
【００８８】
メディア挿入が確認されなかった場合（ステップＳ９０５：Ｎｏ）、ステップＳ９０８に移行する。この場合、管理デーモン２１０上の第１のメモリ４０３は、図９の左上の状態のままであり、同様に、資源管理テーブル３００も図９の右下の状態のまま（書換後を参照）である。これにより、メディア未挿入の物理ドライブＤが仮想マシンＶＭに割り当てられることとなる。上記の例では、メディア未挿入の物理ドライブＤ１が仮想マシンＶＭ１に割り当てられることとなる。
【００８９】
一方、メディア挿入が確認された場合（ステップＳ９０５：Ｙｅｓ）、そのステータスを“ｅｊｅｃｔ”から“ｉｎｓｅｒｔ”に書き換える（ステップＳ９０６）。同様に、メモリ上のステータスも“ｅｊｅｃｔ”から“ｉｎｓｅｒｔ”に書き換える（ステップＳ９０７）。これにより、メディア挿入された物理ドライブＤが仮想マシンＶＭに割り当てられることとなる。上記の例では、メディア挿入された物理ドライブＤ１が仮想マシンＶＭ１に割り当てられることとなる。
【００９０】
これにより、物理ドライブＤは、取得仮想マシンＶＭに構築された仮想ドライブＶＤとして使用されることとなる。上記の例では、物理ドライブＤ１は、仮想マシンＶＭ１の仮想ドライブＶＤ１として使用される。
【００９１】
つぎに、エミュレータＥによるドライブ割当処理について説明する。図１０は、エミュレータＥによるドライブ割当処理手順を示すフローチャートである。図１０において、左上の資源管理テーブル３００は、図９に示したステップＳ９０４，Ｓ９０６のステータス書換前の状態を示しており、左下の資源管理テーブル３００は、図９に示したステップＳ９０４，Ｓ９０６のステータス書換後の状態を示している。
【００９２】
エミュレータＥは、まず、物理ドライブ名変更イベントが検出されたか否かを判断する。物理ドライブ名変更イベントとは、図９に示したステップＳ９０４による割当対象物理ドライブ項目書換処理のことであり、具体的には、“未割当”から“取得物理ドライブ名”への変更が検出されたか否かを判断する。上記の例では、仮想マシンＶＭ１について“未割当”から“Ｄ１”に変更されている。この物理ドライブ名変更イベントが検出されていない場合（ステップＳ１００１：Ｎｏ）、一連の処理を終了する。
【００９３】
一方、物理ドライブ名変更イベントが検出された場合（ステップＳ１００１：Ｙｅｓ）、ドライブ割当処理を実行する（ステップＳ１００２）。ドライブ割当処理では、対象となる仮想マシンＶＭに対して割り当てられた物理ドライブＤを通知する。これにより、仮想マシンＶＭでは、物理ドライブ種と同種の仮想ドライブＶＤが認識され、画面上にはその仮想ドライブＶＤのＧＵＩアイコンが表示される。上記の例では、物理ドライブＤ１はＣＤ−ＲＯＭドライブであるため、仮想ドライブＶＤ１のＧＵＩアイコン（ＣＤ−ＲＯＭドライブのＧＵＩアイコン）が表示される。
【００９４】
また、ドライブ割当処理では、仮想マシンＶＭのエミュレータＥ上の第２のメモリ４１３において、対応する仮想ドライブ種の割当対象物理ドライブ項目を“未割当”から“取得物理ドライブ名”に書き換える。上記の例では、仮想ドライブ種“ＣＤ−ＲＯＭ”の物理ドライブ項目が、“未割当”から“Ｄ１”に書き換えられる。
【００９５】
また、ステップＳ１００３において、ステータス変更イベントが検出されたか否かを判断する。このステータス変更イベントとは、仮想資源テーブル３０２において対象となる仮想ドライブＶＤのステータスが“ｅｊｅｃｔ”から“ｉｎｓｅｒｔ”に書き換えられた処理（ステップＳ９０６）である。上記の例では、仮想マシンＶＭ１に割り当てられた物理ドライブＤ１のステータスが“ｅｊｅｃｔ”から“ｉｎｓｅｒｔ”に書き換えられたため、ステータス変更イベントが検出されたこととなる。
【００９６】
そして、ステータス変更イベントが検出されなかった場合（ステップＳ１００３：Ｎｏ）、一連の処理を終了する。一方、検出された場合（ステップＳ１００３：Ｙｅｓ）、メディア読み込み処理を実行して（ステップＳ１００４）、一連の処理を終了する。
【００９７】
ここで、メディア読み込み処理とは、対象となる仮想マシンＶＭのエミュレータＥがステータス変更イベントの検出により、その仮想マシンＶＭに割り当てられた物理ドライブＤに挿入されているメディアを自動的に読み込み、その仮想マシンＶＭにメディア挿入を認識させる処理である。上記の例の場合、仮想マシンＶＭ１のエミュレータＥ１が、ステータス変更イベントの検出により、物理ドライブＤ１に挿入されているメディアの読み込み処理を行なう。
【００９８】
この場合、仮想マシンＶＭ上では、メディア挿入認識表示をおこなう。たとえば、仮想ドライブＶＤ１のＧＵＩアイコンがクリックされると、“ＮＯ  ＤＩＳＫ”と表記されているＧＵＩアイコンをメディア名（たとえば、“ＫＡＳＯＵ＿ＣＤ０１”）に変換する。また、メディア読み込み処理では、エミュレータＥ上の第２のメモリ４１３の対象となる仮想ドライブ種のステータスを、“ｅｊｅｃｔ”から“ｉｎｓｅｒｔ”に書き換える（図１０中、右下のメモリを参照。）。これにより、仮想マシンＶＭでは仮想ドライブＶＤにメディアが挿入されていることが認識される。
【００９９】
このように、オペレータよってドライブ割当コマンドが実行されると、そのコマンドにしたがって、仮想マシンＶＭに物理ドライブＤが割り当てられる（既に割り当てられた場合を除く。）。これにより、割当時に物理ドライブＤにメディアがすでに挿入されている場合や、その後に、割り当てられた物理ドライブＤにメディアが挿入された場合、管理デーモン２１０が仲介することで、仮想マシンＶＭのエミュレータＥが自動的に（オペレータの操作の必要なく）メディアの読み込み処理をおこなうことができる（メディア挿入処理）。
【０１００】
また、物理ドライブＤからメディアを排出したい場合には、オペレータは仮想ドライブＶＤのＧＵＩアイコンをクリックするだけで、エミュレータＥと管理デーモン２１０が連携して自動的に物理ドライブＤからメディアを排出させることができる（メディア排出処理）。
【０１０１】
（メディア挿入処理）
つぎに、メディア挿入処理について説明する。管理デーモン２１０とエミュレータＥとはそれぞれ独立にこのメディア挿入処理を実行するが、共有ＤＢ２００にはそれぞれアクセスするため、管理デーモン２１０とエミュレータＥとに分けて説明する。
【０１０２】
図１１は、管理デーモン２１０によるメディア挿入処理手順を示すフローチャートである。なお、メディア挿入前においては、管理デーモン２１０上の第１のメモリ４０３では、仮想マシンＶＭ１のすべての仮想ドライブ種のステータスは“ｅｊｅｃｔ”に設定されているものとする。また、資源管理テーブル３００では、物理ドライブＤ１には、使用仮想マシンが“ＶＭ１”に設定されているものとする。
【０１０３】
図１１において、管理デーモン２１０は、まず、メディア挿入イベントが検出されたか否かを判断する（ステップＳ１１０１）。メディア挿入イベントとは、オペレータによる物理ドライブの挿入操作によりメディアを挿入する行為である。物理ドライブＤにメディアが挿入されると、その旨の信号が管理デーモン２１０に通知される。この信号の有無によりメディア挿入を検出する。検出されなかった場合（ステップＳ１１０１：Ｎｏ）、一連の処理を終了する。
【０１０４】
一方、検出された場合（ステップＳ１１０１：Ｙｅｓ）、物理資源テーブル３０１を読み込み（ステップＳ１１０２）、メディア挿入された物理ドライブＤを使用する仮想マシン（使用仮想マシン）ＶＭが未割当か否かを判断する（ステップＳ１１０３）。上記の例の場合、物理資源テーブル３０１を参照すると、物理ドライブＤ１の使用仮想マシン項目が“ＶＭ１”であるため、仮想マシンＶＭ１が割り当てられていると判断される。
【０１０５】
そして、“未割当”である場合（ステップＳ１１０３：Ｙｅｓ）、一連の処理を終了する。一方、仮想マシンＶＭが割り当てられている場合（ステップＳ１１０３：Ｎｏ）、仮想資源テーブル３０２のステータス書換をおこなう（ステップＳ１１０４）。具体的には、対象となる仮想マシンに割り当てられた物理ドライブのステータスを“ｅｊｅｃｔ”から“ｉｎｓｅｒｔ”に書き換える。上記の例では、仮想マシンＶＭ１の物理ドライブＤ１のステータスを“ｅｊｅｃｔ”から“ｉｎｓｅｒｔ”に書き換える（図１１中、右下の資源管理テーブル３００を参照。）。
【０１０６】
このあと、管理デーモン２１０上の第１のメモリ４０３のステータス書換をおこない（ステップＳ１１０５）一連の処理を終了する。具体的には、対象となる仮想マシンＶＭに割り当てられた物理ドライブＤのステータスを“ｅｊｅｃｔ”から“ｉｎｓｅｒｔ”に書き換える。上記の例では、仮想マシンＶＭ１の物理ドライブＤ１のステータスを“ｅｊｅｃｔ”から“ｉｎｓｅｒｔ”に書き換える（図１１中、左下のメモリを参照。）。
【０１０７】
つぎに、エミュレータＥによるメディア挿入処理について説明する。図１２は、エミュレータＥによるメディア挿入処理手順を示すフローチャートである。図１２において、左上の資源管理テーブル３００は、図１１に示したステップＳ１１０４のステータス書換前の状態を示しており、左下の資源管理テーブル３００は、図１１に示したステップＳ１１０４のステータス書換後の状態を示している。
【０１０８】
エミュレータＥでは、まず、ステータス変更イベントが検出されたか否かを判断する（ステップＳ１２０１）。このステータス変更イベントは、仮想資源テーブル３０２において対象となる仮想ドライブのステータスが“ｅｊｅｃｔ”から“ｉｎｓｅｒｔ”に書き換えられた処理である。検出されなかった場合（ステップＳ１２０１：Ｎｏ）、一連の処理を終了する。一方、検出された場合（ステップＳ１２０１：Ｙｅｓ）、メディア読み込み処理を実行する（ステップＳ１２０２）。
【０１０９】
ここで、メディア読み込み処理とは、対象となる仮想マシンＶＭのエミュレータＥがステータス変更イベントの検出により、その仮想マシンＶＭに割り当てられた物理ドライブＤに挿入されているメディアを自動的に読み込み、その仮想マシンＶＭにメディア挿入を認識させる処理である。上記の例の場合、仮想マシンＶＭ１のエミュレータＥ１が、ステータス変更イベントの検出により、物理ドライブＤ１に挿入されているメディアを自動的に読み込む。
【０１１０】
この場合、仮想マシンＶＭ上では、メディア挿入認識表示をおこなう。たとえば、仮想ドライブＶＤ１のＧＵＩアイコンがクリックされると、“ＮＯ  ＤＩＳＫ”と表記されているＧＵＩアイコンをメディア名に変換する。また、メディア読み込み処理では、仮想マシン上のメモリの対象となる仮想ドライブ種のステータスを、“ｅｊｅｃｔ”から“ｉｎｓｅｒｔ”に書き換える（図１２中、右下のメモリを参照。）。これにより、仮想マシンＶＭ１では仮想ドライブＶＤ１（仮想ドライブ種：ＶＤ１、物理ドライブ：Ｄ１）にメディアが挿入されていることが認識される。
【０１１１】
ここで、上記の例におけるメディア挿入時の仮想マシンＶＭ１の画面例について説明する。図１３は、仮想マシンＶＭ１のメディア挿入時の表示画面例を示す説明図である。（Ａ）では、仮想ドライブＶＤ１のＧＵＩアイコン１３００の文字列が“ＮＯ  ＤＩＳＫ”と表示されている。これは、仮想マシンＶＭ１には物理ドライブＤ１が割り当てられているが、対応する仮想ドライブＶＤ１では物理ドライブＤ１のメディア挿入を認識していないことをあらわしている。
【０１１２】
（Ｂ）において、オペレータが物理ドライブＤ１に対しメディア挿入をおこなうと、メディア挿入イベントが発生する。このメディア挿入イベントを管理デーモン２１０が検出して上述したメディア挿入処理（図１１を参照）をおこなうことにより、資源管理テーブル３００が図１１の右下の状態に書き換わる。この書換前後の資源管理テーブル３００のステータス変更をエミュレータＥが検出することで、上述したメディア挿入処理（図１２を参照）をおこなうと、仮想マシンの表示画面上では、（Ｃ）仮想ドライブＶＤ１のＧＵＩアイコン１３０１の表示文字列がメディア名（たとえば、“ＫＡＳＯＵ＿ＣＤ０１”）に変換される。
【０１１３】
（メディア排出処理）
つぎに、メディア排出処理について説明する。管理デーモン２１０とエミュレータとはそれぞれ独立にこのメディア排出処理を実行するが、共有ＤＢ２００にはそれぞれアクセスするため、エミュレータと管理デーモン２１０とに分けて説明する。
【０１１４】
図１４は、エミュレータによるメディア排出処理手順を示すフローチャートである。なお、メディア排出前においては、資源管理テーブル３００（図１４中、左上）では、物理ドライブＤ１には、使用仮想マシン項目が“ＶＭ１”に設定されており、仮想マシンＶＭ１における物理ドライブと同種の仮想ドライブ種のステータスは“ｉｎｓｅｒｔ”に設定されているものとする。エミュレータＥ上の第２のメモリ４１３（図１４中、右上）では、仮想マシンＶＭ１における物理ドライブＤ１のステータスは“ｉｎｓｅｒｔ”に設定されているものとする。
【０１１５】
エミュレータＥでは、まず、メディア排出イベントが検出されたか否かを判断する（ステップＳ１４０１）。具体的には、オペレータが仮想マシンＶＭ上でメディア排出イベントを発生させる。たとえば、図１３の（Ｃ）に示した仮想ドライブＶＤ１のＧＵＩアイコンをクリックして、メディア排出指示をエミュレータＥに通知することで、メディア排出イベントが発生することとなる。この通知を受けることにより、メディア排出イベントを検出することとなる。
【０１１６】
メディア排出イベントが検出されなかった場合（ステップＳ１４０１：Ｎｏ）、一連の処理を終了する。一方、メディア排出イベントが検出された場合（ステップＳ１４０１：Ｙｅｓ）、ステータス書換をおこなう（ステップＳ１４０２）。具体的には、割当対象となる仮想マシンＶＭに割り当てられた物理ドライブＤのステータスを“ｉｎｓｅｒｔ”から“ｅｊｅｃｔ”に書き換える。上記の例では、仮想マシンＶＭ１に割り当てられた物理ドライブＤ１のステータスを“ｉｎｓｅｒｔ”から“ｅｊｅｃｔ”に書き換える（図１４中、左下の資源管理テーブル３００を参照。）。
【０１１７】
この場合、仮想マシンＶＭ上では、メディア排出認識表示をおこなう。たとえば、仮想ドライブＶＤ１のＧＵＩアイコンがクリックされると（コマンド実行でもよい）、ＧＵＩアイコンの表記文字列を挿入メディア名から“ＮＯ  ＤＩＳＫ”に変換する。
【０１１８】
このあと、エミュレータＥ上の第２のメモリ４１３のステータス書換をおこない（ステップＳ１４０３）、一連の処理を終了する。具体的には、対象となる仮想マシンＶＭに割り当てられた物理ドライブＤのステータスを“ｉｎｓｅｒｔ”から“ｅｊｅｃｔ”に書き換える。上記の例では、仮想マシンＶＭ１に割り当てられた物理ドライブＤ１のステータスを“ｉｎｓｅｒｔ”から“ｅｊｅｃｔ”に書き換える（図１４中、右下のメモリを参照。）。これにより、仮想マシンＶＭでは仮想ドライブＶＤよりメディアが排出されたことが認識される。
【０１１９】
つぎに、管理デーモン２１０によるメディア排出処理について説明する。図１５は、管理デーモン２１０によるメディア排出処理手順を示すフローチャートである。図１５において、右上の資源管理テーブル３００は、図１４に示したステップＳ１４０２のステータス書換前の状態を示しており、右下の資源管理テーブル３００は、図１４に示したステップＳ１４０２のステータス書換後の状態を示している。
【０１２０】
管理デーモン２１０では、まず、ステータス変更イベントが検出されたか否かを判断する（ステップＳ１５０１）。このステータス変更イベントは、仮想資源テーブル３０２において割当対象となる物理ドライブＶＤのステータスが“ｉｎｓｅｒｔ”から“ｅｊｅｃｔ”に書き換えられた処理（ステップＳ１４０２）である。検出されなかった場合（ステップＳ１５０１：Ｎｏ）、一連の処理を終了する。一方、検出された場合（ステップＳ１５０１：Ｙｅｓ）、メディア排出処理を実行する（ステップＳ１５０２）。
【０１２１】
ここで、メディア排出処理とは、管理デーモン２１０が対象となる仮想マシンＶＭに割り当てられている物理ドライブＤに、メディア排出指示を通知する処理である。物理ドライブＤは、このメディア排出通知を受けると、内部機構により、挿入されているメディアを排出する。上記の例では、仮想マシンＶＭ１に割り当てられている物理ドライブＤ１のトレーが自動的に開き、メディア（ＣＤ−ＲＯＭ）を取り出すことができる。
【０１２２】
メディア排出処理では、このあと、管理デーモン２１０上の第１のメモリ４０３のステータス書換をおこない、一連の処理を終了する。具体的には、対象となる仮想マシンＶＭに割り当てられた物理ドライブＤのステータスを“ｉｎｓｅｒｔ”から“ｅｊｅｃｔ”に書き換える。上記の例では、仮想マシンＶＭ１に割り当てられた物理ドライブＤ１のステータスを“ｉｎｓｅｒｔ”から“ｅｊｅｃｔ”に書き換える（図１５中、左下のメモリを参照。）。これにより、仮想マシンＶＭ１ではメディアが排出されていることが認識される。
【０１２３】
ここで、上記の例におけるメディア排出時の仮想マシンＶＭ１の画面例について説明する。図１６は、仮想マシンＶＭ１のメディア排出時の表示画面例を示す説明図である。（Ａ）では、仮想ドライブＶＤ１のＧＵＩアイコンの文字列が“ＫＡＳＯＵ＿ＣＤ０１”というメディア名で表示されている。これは、仮想マシンＶＭ１には物理ドライブＤ１が割り当てられており、かつ、対応する仮想ドライブＶＤ１では物理ドライブＤ１のメディア挿入を認識していることをあらわしている。
【０１２４】
（Ｂ）において、オペレータが仮想マシンＶＭ１上で仮想ドライブＶＤ１に対してメディア排出イベントを発生させる。このメディア排出イベントをエミュレータＥが検出して上述したメディア排出処理（図１４を参照）をおこなうことにより、資源管理テーブル３００が図１４の左下の状態に書き換わる。
【０１２５】
この書換前後の資源管理テーブル３００のステータス変更を管理デーモン２１０が検出することで、上述したメディア排出処理（図１５を参照）をおこなうと、物理ドライブＤ１からＣＤ−ＲＯＭ（“ＫＡＳＯＵ＿ＣＤ０１”）が自動排出される。そして、（Ｃ）において、仮想マシンＶＭ１の表示画面上では、仮想ドライブＶＤ１のＧＵＩアイコンの表示文字列が“ＮＯ  ＤＩＳＫ”）に変換される。
【０１２６】
（ドライブ解放処理）
つぎに、ドライブ解放処理について説明する。管理デーモン２１０とエミュレータＥとはそれぞれ独立にこのドライブ解放処理を実行するが、共有ＤＢ２００にはそれぞれアクセスするため、管理デーモン２１０とエミュレータＥとにわけて説明する。
【０１２７】
図１７は、管理デーモン２１０によるドライブ解放処理手順を示すフローチャートである。ドライブ解放前においては、資源管理テーブル３００では、物理ドライブＤ１の使用仮想マシン項目が“ＶＭ１”に設定されているものとする。
【０１２８】
図１７において、管理デーモン２１０は仮想マシン名および物理ドライブ名を取得する（ステップＳ１７０１）。具体的には、たとえば、オペレータが仮想マシンＶＭに解放コマンドを実行させると、管理デーモン２１０はその仮想マシン名および割り当てられている物理ドライブ名を取得する。上記の例では、仮想マシン名：ＶＭ１、物理ドライブ名：Ｄ１を取得する。
【０１２９】
つぎに、管理デーモン２１０は、仮想資源テーブル３０２を参照して、取得仮想マシン名および取得物理ドライブ名により特定される仮想ドライブのステータスが“ｅｊｅｃｔ”であるか否かを判断する（ステップＳ１７０２）。たとえば、上記の例では、仮想マシンＶＭ１の割当対象物理ドライブ項目：Ｄ１のステータスが“ｉｎｓｅｒｔ”に設定されている。
【０１３０】
このステップＳ１７０２において、“ｅｊｅｃｔ”である場合（ステップＳ１７０２：Ｙｅｓ）、ステップＳ１７０５に移行する。一方、“ｅｊｅｃｔ”でない場合（ステップＳ１７０３：Ｎｏ）、仮想資源テーブル３０２を参照して、取得物理ドライブ名および取得仮想マシン名により特定される仮想ドライブのステータスを、“ｉｎｓｅｒｔ”から“ｅｊｅｃｔ”に書き換える（ステップＳ１７０３）。上記の例では、仮想マシンＶＭ１に仮想ドライブＶＤ１として割り当てられた物理ドライブＤ１のステータスを、“ｉｎｓｅｒｔ”から“ｅｊｅｃｔ”に書き換えている（図１７中、右中の資源管理テーブル３００を参照。）。
【０１３１】
このあと、管理デーモン２１０上の第１のメモリ４１３のステータス書換をおこなう（ステップＳ１７０４）。具体的には、対象となる仮想マシンＶＭに仮想ドライブＶＤとして割り当てられた物理ドライブＤのステータスを“ｉｎｓｅｒｔ”から“ｅｊｅｃｔ”に書き換える。上記の例では、仮想マシンＶＭ１の仮想ドライブ種：ＣＤ−ＲＯＭである仮想ドライブＶＤ１のステータスを、“ｉｎｓｅｒｔ”から“ｅｊｅｃｔ”に書き換えている（図１７中、左下のメモリを参照。）。
【０１３２】
つぎに、取得仮想マシンＶＭが使用する割当対象物理ドライブ項目を“未割当”に書き換える（ステップＳ１７０５）。上記の例では、取得仮想マシンＶＭ１が使用する割当対象物理ドライブ項目を、“Ｄ１”から“未割当”に書き換えている（図１７中、右下の資源管理テーブル３００を参照。）。同様に、取得仮想マシン名が書き込まれた使用仮想マシン項目を“未割当”に書き換える（ステップＳ１７０６）。上記の例では、物理ドライブＤ１の使用仮想マシン項目を“ＶＭ１”から“未割当”に書き換えている（図１７中、右下の資源管理テーブル３００を参照。）。
【０１３３】
このように、上記の例では、物理ドライブＤ１は仮想マシンＶＭ１の専有から解放されるため、物理ドライブＤ１は、特定の仮想マシンＶＭ１に専有されず、どの仮想マシンＶＭにも割り当てることができる。
【０１３４】
つぎに、エミュレータＥによるドライブ解放処理について説明する。図１８は、エミュレータＥによるドライブ解放処理手順を示すフローチャートである。図１８において、左上の資源管理テーブル３００は、図１７に示したステップＳ１７０３，Ｓ１７０４のステータス書換前の状態を示しており、左中の資源管理テーブル３００は、図１７に示したステップＳ１７０３，Ｓ１７０４のステータス書換後の状態を示しており、左下の資源管理テーブル３００は、図１７に示したステップＳ１７０５，Ｓ１７０６の書換後の状態を示している。
【０１３５】
エミュレータＥは、まず、ステータス変更イベントが検出されたか否かを判断する（ステップＳ１８０１）。このステータス変更イベントとは、仮想資源テーブル３０２において対象となる物理ドライブＤのステータスが“ｉｎｓｅｒｔ”から“ｅｊｅｃｔ”に書き換えられた処理（ステップＳ１７０３）である。上記の例では、仮想マシンＶＭ１に割り当てられた物理ドライブＤ１のステータスが“ｉｎｓｅｒｔ”から“ｅｊｅｃｔ”に書き換えられたため、ステータス変更イベントが検出されたこととなる。
【０１３６】
そして、ステータス変更イベントが検出されなかった場合（ステップＳ１８０１：Ｎｏ）、ステップＳ１８０３に移行する。一方、検出された場合（ステップＳ１８０１：Ｙｅｓ）、メディア排出処理を実行する（ステップＳ１８０２）。
【０１３７】
ここで、メディア排出処理とは、対象となる仮想マシンＶＭのエミュレータＥが、ステータス変更イベントの検出により、その仮想マシンＶＭにメディア排出を認識させる処理である。上記の例の場合、仮想マシンＶＭ１のエミュレータＥ１が、ステータス変更イベントの検出により、メディア排出指示を通知する。
【０１３８】
この場合、仮想マシンＶＭ上では、メディア排出認識表示をおこなう。たとえば、仮想ドライブＶＤ１のＧＵＩアイコンの表記文字列を、メディア名（たとえば、“ＫＡＳＯＵ＿ＣＤ０１”）から“ＮＯ  ＤＩＳＫ”に変換する。また、メディア排出処理では、エミュレータＥ上の第２のメモリ４１３の対象となる仮想ドライブ種のステータスを、“ｉｎｓｅｒｔ”から“ｅｊｅｃｔ”に書き換える（図１８中、右中のメモリを参照。）。これにより、仮想マシンＶＭでは仮想ドライブＶＤからメディアが排出されたと認識される。
【０１３９】
また、ステップＳ１８０３において、エミュレータＥは、物理ドライブ名変更イベントが検出されたか否かを判断する。物理ドライブ名変更イベントとは、図１８に示したステップＳ１８０３による物理ドライブ名書換処理のことであり、具体的には、“取得物理ドライブ名”から“未割当”への変更が検出されたか否かを判断する。上記の例では、仮想マシンＶＭ１について“Ｄ１”から“未割当”に変更されているため、物理ドライブ名変更イベントが検出される。この物理ドライブ名変更イベントが検出されていない場合（ステップＳ１８０３：Ｎｏ）、一連の処理を終了する。この場合、ドライブ解放はされていないこととなる。
【０１４０】
一方、物理ドライブ名変更イベントが検出された場合（ステップＳ１８０３：Ｙｅｓ）、ドライブ解放処理を実行して（ステップＳ１８０４）、一連の処理を終了する。ドライブ解放処理では、対象となる仮想マシンＶＭとその仮想ドライブＶＤを通知する。これにより、仮想マシンＶＭでは、その仮想ドライブＶＤのＧＵＩアイコンを消去する。上記の例では、仮想ドライブＶＤ１のＧＵＩアイコン（ＣＤ−ＲＯＭドライブのＧＵＩアイコン）を画面上から消去する。
【０１４１】
また、ドライブ解放処理では、仮想マシンＶＭのエミュレータＥ上の第２のメモリ４１３において、仮想ドライブ種の物理ドライブ項目を“取得物理ドライブ名”から“未割当”に書き換える。上記の例では、仮想ドライブ種“ＣＤ−ＲＯＭ”の物理ドライブ項目が、“Ｄ１”から“未割当”に書き換えられる。
【０１４２】
このように、オペレータよってドライブ解放コマンドが実行されると、まず、メディア挿入されている場合にはメディア排出をおこなう。そして、メディア排出がされた後に、仮想マシンに割り当てられた物理ドライブＤを未割当にすることで、その物理ドライブＤは仮想マシンＶＭの専有から解放される。このように、オペレータは物理マシン１００上からドライブ解放コマンドを実行するだけで、自動的にドライブ解放をおこなうことができる。
【０１４３】
以上説明したように、仮想マシン管理プログラム、仮想マシン管理装置、および仮想マシン管理方法によれば、共有ＤＢ２００を介して、エミュレータＥと管理デーモン２１０とで仮想ドライブＶＤに関する情報を共有することで、エミュレータＥが管理する仮想マシンＶＭの仮想ドライブＶＤと管理デーモン２１０が管理する物理マシン１００の物理ドライブＤを連動させる。
【０１４４】
このように、仮想ドライブＶＤと物理ドライブＤが連動することで、オペレータは、仮想ドライブＶＤを、物理ドライブＤを使用する感覚で使用できるようになる。したがって、オペレータによる操作が減少するため、オペレータの作業負担の軽減を図ることができる。
【０１４５】
なお、本実施の形態で説明した仮想マシン管理方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することとしてもよい。
【０１４６】
（付記１）複数の仮想マシンの中から選ばれた特定の仮想マシン上の仮想ドライブの状態がメディア挿入状態に変更された場合に、前記特定の仮想マシンのエミュレータにより、前記特定の仮想マシンに前記仮想ドライブとして割り当てられた物理ドライブにメディアが挿入されたことを認識させるための仮想マシン管理プログラムであって、
前記複数の仮想マシンが動作するコンピュータを、
前記物理ドライブに前記メディアの挿入イベントが発生したことを検出する検出手段、
前記検出手段によって前記挿入イベントが発生したことが検出された場合、前記仮想ドライブの状態を、前記メディア挿入状態に変更する変更手段、
として機能させることを特徴とする仮想マシン管理プログラム。
【０１４７】
（付記２）前記コンピュータを、
前記仮想ドライブの状態が書き込まれている前記エミュレータが参照可能なテーブルを記憶する記憶手段として機能させ、
前記変更手段は、
前記挿入イベントが発生したことが検出された場合、前記記憶手段に記憶されたテーブルにおける前記仮想ドライブの状態を、前記メディア挿入状態に書き換えることを特徴とする付記１に記載の仮想マシン管理プログラム。
【０１４８】
（付記３）複数の仮想マシンが動作するコンピュータを、
前記複数の仮想マシンの中から選ばれた特定の仮想マシンのエミュレータにより、前記特定の仮想マシンの仮想ドライブがメディア排出状態に変更されたことを検出する検出手段、
前記検出手段によって前記仮想ドライブがメディア排出状態に変更されたことが検出された場合、前記特定の仮想マシンに前記仮想ドライブとして割り当てられている物理ドライブから当該物理ドライブに挿入されているメディアを排出するように制御する排出制御手段、
として機能させることを特徴とする仮想マシン管理プログラム。
【０１４９】
（付記４）前記コンピュータを、
前記仮想ドライブの状態が書き込まれている前記エミュレータが書き込み可能なテーブルを記憶する記憶手段として機能させ、
前記検出手段は、
前記エミュレータが前記仮想ドライブの状態をメディア挿入状態から前記メディア排出状態に書き換えたことを検出することを特徴とする付記３に記載の仮想マシン管理プログラム。
【０１５０】
（付記５）前記検出手段は、
前記物理ドライブに前記メディアの挿入イベントが発生したことを検出し、
前記変更手段は、
前記検出手段によって前記挿入イベントが発生したことが検出された場合、前記仮想ドライブの状態を、前記メディア挿入状態に変更することを特徴とする付記３に記載の仮想マシン管理プログラム。
【０１５１】
（付記６）前記検出手段は、
前記物理ドライブに前記メディアの挿入イベントが発生したことを検出し、
前記変更手段は、
前記検出手段によって前記挿入イベントが発生したことが検出された場合、前記記憶手段に記憶されたテーブルにおける前記仮想ドライブの状態を、前記メディア排出状態から前記メディア挿入状態に書き換えることを特徴とする付記４に記載の仮想マシン管理プログラム。
【０１５２】
（付記７）付記１〜６のいずれか一つに記載の仮想マシン管理プログラムが記録された前記コンピュータに読み取り可能な記録媒体。
【０１５３】
（付記８）複数の仮想マシンが動作可能であり、当該複数の仮想マシンの中から選ばれた特定の仮想マシン上の仮想ドライブの状態がメディア挿入状態に変更された場合に、前記特定の仮想マシンのエミュレータにより、前記特定の仮想マシンに前記仮想ドライブとして割り当てられた物理ドライブにメディアが挿入されたことを認識させる仮想マシン管理装置であって、
前記物理ドライブに前記メディアの挿入イベントが発生したことを検出する検出手段と、
前記検出手段によって前記挿入イベントが発生したことが検出された場合、前記仮想ドライブの状態を、前記メディア挿入状態に変更する変更手段と、
を備えることを特徴とする仮想マシン管理装置。
【０１５４】
（付記９）複数の仮想マシンが動作可能な仮想マシン管理装置であって、
前記複数の仮想マシンの中から選ばれた特定の仮想マシンに仮想ドライブとして割り当てられた物理ドライブにメディアの挿入イベントが発生したことを検出する第１の検出手段と、
前記第１の検出手段によって前記挿入イベントが発生したことが検出された場合、前記仮想ドライブの状態を、前記メディア挿入状態に変更する変更手段と、
前記変更手段によって前記メディア挿入状態に変更されたことを検出する第２の検出手段と、
前記特定の仮想マシンに前記仮想ドライブとして割り当てられた物理ドライブにメディアが挿入されたことを認識させる挿入制御手段と、
を備えることを特徴とする仮想マシン管理装置。
【０１５５】
（付記１０）複数の仮想マシンが動作可能な仮想マシン管理装置であって、
前記複数の仮想マシンの中から選ばれた特定の仮想マシンの仮想ドライブがメディア排出状態に変更されたことを検出する検出手段と、
前記検出手段によって前記仮想ドライブがメディア排出状態に変更されたことが検出された場合、前記特定の仮想マシンに前記仮想ドライブとして割り当てられている物理ドライブから当該物理ドライブに挿入されているメディアを排出するように制御する排出制御手段と、
を備えることを特徴とする仮想マシン管理装置。
【０１５６】
（付記１１）複数の仮想マシンが動作可能な仮想マシン管理装置であって、
前記複数の仮想マシンの中から選ばれた特定の仮想マシンから当該特定の仮想マシンの仮想ドライブに対するメディア排出イベントが発生したことを検出する第１の検出手段と、
前記第１の検出手段によって前記メディア排出イベントが発生したことが検出された場合、前記仮想ドライブの状態を、前記メディア挿入状態からメディア排出状態に変更する変更手段と、
前記変更手段によって前記仮想ドライブが前記メディア排出状態に変更されたことを検出する第２の検出手段と、
前記第２の検出手段によって前記仮想ドライブがメディア排出状態に変更されたことが検出された場合、前記特定の仮想マシンに前記仮想ドライブとして割り当てられている物理ドライブから当該物理ドライブに挿入されているメディアを排出するように制御する排出制御手段と、
を備えることを特徴とする仮想マシン管理装置。
【０１５７】
（付記１２）複数の仮想マシンの中から選ばれた特定の仮想マシン上の仮想ドライブの状態がメディア挿入状態に変更された場合に、前記特定の仮想マシンのエミュレータにより、前記特定の仮想マシンに前記仮想ドライブとして割り当てられた物理ドライブにメディアが挿入されたことを認識させるための仮想マシン管理方法であって、
前記物理ドライブに前記メディアの挿入イベントが発生したことを検出する検出工程と、
前記検出工程によって前記挿入イベントが発生したことが検出された場合、前記仮想ドライブの状態を、前記メディア挿入状態に変更する変更工程と、
を含んだことを特徴とする仮想マシン管理方法。
【０１５８】
（付記１３）複数の仮想マシンの中から選ばれた特定の仮想マシンのエミュレータにより、前記特定の仮想マシンの仮想ドライブがメディア排出状態に変更されたことを検出する検出工程と、
前記検出工程によって前記仮想ドライブがメディア排出状態に変更されたことが検出された場合、前記特定の仮想マシンに前記仮想ドライブとして割り当てられている物理ドライブから当該物理ドライブに挿入されているメディアを排出する排出工程と、
を含んだことを特徴とする仮想マシン管理方法。
【産業上の利用可能性】
【０１５９】
以上のように、仮想マシン管理プログラム、仮想マシン管理装置、および仮想マシン管理方法は、複数のＯＳをそれぞれ仮想マシンとして利用可能な物理マシンに有用であり、たとえば、あらたなＯＳのインストールやアプリケーションのインストール作業に適している。
【図面の簡単な説明】
【０１６０】
【図１】物理マシンのハードウェア構成を示す説明図である。
【図２】図１に示した物理マシンの内部構成を示すブロック図である。
【図３】共有ＤＢの記憶内容を示す説明図である。
【図４】仮想マシン管理装置の機能的構成を示すブロック図である。
【図５】管理デーモンによる仮想マシンの監視処理手順を示すフローチャートである。
【図６】仮想マシン監視処理における仮想資源テーブルおよび管理デーモン上の第１のメモリを示す説明図である。
【図７】エミュレータによる仮想ドライブの監視処理手順を示すフローチャートである。
【図８】仮想ドライブの監視処理における仮想資源テーブルおよびエミュレータ上の第２のメモリを示す説明図である。
【図９】管理デーモンによるドライブ割当処理手順を示すフローチャートである。
【図１０】エミュレータによるドライブ割当処理手順を示すフローチャートである。
【図１１】管理デーモンによるメディア挿入処理手順を示すフローチャートである。
【図１２】エミュレータによるメディア挿入処理手順を示すフローチャートである。
【図１３】仮想マシンのメディア挿入時の表示画面例を示す説明図である。
【図１４】エミュレータによるメディア排出処理手順を示すフローチャートである。
【図１５】管理デーモンによるメディア排出処理手順を示すフローチャートである。
【図１６】仮想マシンのメディア排出時の表示画面例を示す説明図である。
【図１７】管理デーモンによるドライブ解放処理手順を示すフローチャートである。
【図１８】エミュレータによるドライブ解放処理手順を示すフローチャートである。
【図１９】従来の仮想マシンによるメディア排出を示す説明図である。
【図２０】従来の仮想マシンによるメディア挿入を示す説明図である。
【符号の説明】
【０１６１】
１００  物理マシン
２１０  管理デーモン
３００  資源管理テーブル
４００  第１の制御部
４０１  第１の検出部
４０２  第１の変更部
４０３  第１のメモリ
４１０  第２の制御部
４１１  第２の検出部
４１２  第２の変更部
４１３  第２のメモリ
Ｄ  物理ドライブ
Ｅ  エミュレータ
ＶＤ  仮想ドライブ
ＶＭ  仮想マシン
【図１】
0005056334.tif 000002
【図２】
0005056334.tif 000003
【図３】
0005056334.tif 000004
【図４】
0005056334.tif 000005
【図５】
0005056334.tif 000006
【図６】
0005056334.tif 000007
【図７】
0005056334.tif 000008
【図８】
0005056334.tif 000009
【図９】
0005056334.tif 000010
【図１０】
0005056334.tif 000011
【図１１】
0005056334.tif 000012
【図１２】
0005056334.tif 000013
【図１３】
0005056334.tif 000014
【図１４】
0005056334.tif 000015
【図１５】
0005056334.tif 000016
【図１６】
0005056334.tif 000017
【図１７】
0005056334.tif 000018
【図１８】
0005056334.tif 000019
【図１９】
0005056334.tif 000020
【図２０】
0005056334.tif 000021