(57)【特許請求の範囲】
【請求項１】
外部装置から利用可能な複数の仮想計算機が動作する情報処理装置において、
外部装置が接続される第１及び第２入出力部と、
前記第１入出力部及び前記複数の仮想計算機のうちの一の仮想計算機を論理的に接続する第１接続手段と、
該第１接続手段が接続した場合、前記外部装置が送信するデータの送信先を前記第１入出力部に設定する手段と、
前記第１入出力部と前記一の仮想計算機との接続に異常があるか否かを判定する第１判定手段と、
前記第１判定手段が前記一の仮想計算機の接続に異常があると判定した場合、前記第２入出力部が他の仮想計算機と論理的に接続されているか否かを判定する第２判定手段と、
前記第２入出力部が前記他の仮想計算機と論理的に接続されていると判定した場合、前記他の仮想計算機の稼働率を取得する稼働率取得手段と、
取得した稼働率に基づいて、前記第２入出力部及び前記他の仮想計算機の接続を切断するか否かを判定する切断判定手段と、
前記第２入出力部及び前記他の仮想計算機の接続を切断すると判定した場合、前記第２入出力部及び前記一の仮想計算機を論理的に接続する第２接続手段と、
該第２接続手段が接続された場合、前記外部装置が送信するデータの送信先を前記第２入出力部に切り替える切替手段と
を備える情報処理装置。
【請求項２】
前記切替手段により前記外部装置が送信するデータの送信先を前記第２入出力部に切り替えた場合、前記第１入出力部及び前記仮想計算機の接続の異常が解消されたか否かを判定する第３判定手段
をさらに備え、
前記切替手段は、
前記第３判定手段が、前記第１入出力部と前記仮想計算機との接続の異常が解消されたと判定した場合、前記外部装置が送信するデータの送信先を前記第１入出力部に切り替えるようにしてある
請求項１に記載の情報処理装置。
【請求項３】
前記第１判定手段は、
前記外部装置からの任意の信号を受信した場合、判定を行うようにしてある
請求項１又は２に記載の情報処理装置。
【請求項４】
前記第２入出力部の使用要求を受け付ける手段と、
使用要求を受け付けた場合、前記第２入出力部及び前記仮想計算機を論理的に接続する手段と
をさらに備える請求項１から３の何れか一つに記載の情報処理装置。
【請求項５】
外部装置が接続される第１及び第２入出力部を備える情報処理装置で動作する仮想計算機と、前記外部装置とを接続する仮想計算機接続方法において、
前記第１入出力部及び前記情報処理装置で動作する複数の仮想計算機のうちの一の仮想計算機を論理的に接続し、
前記第１入出力部及び前記一の仮想計算機を接続した場合、前記外部装置が送信するデータの送信先を前記第１入出力部に設定し、
前記第１入出力部と前記一の仮想計算機との接続に異常があるか否かを判定し、
前記第１入出力部と前記一の仮想計算機との接続に異常があると判定した場合、前記第２入出力部が他の仮想計算機と論理的に接続されているか否かを判定し、
前記第２入出力部が前記他の仮想計算機と論理的に接続されていると判定した場合、前記他の仮想計算機の稼働率を取得し、
取得した稼働率に基づいて、前記第２入出力部及び前記他の仮想計算機の接続を切断するか否かを判定し、
前記第２入出力部及び前記他の仮想計算機の接続を切断すると判定した場合、前記第２入出力部及び前記一の仮想計算機を論理的に接続し、
前記第２入出力部及び前記仮想計算機を接続した場合、前記外部装置が送信するデータの送信先を前記第２入出力部に切り替える
仮想計算機接続方法。
【請求項６】
外部装置が接続される第１及び第２入出力部を備え、複数の仮想計算機が動作するコンピュータで実行されるプログラムにおいて、
コンピュータを、
前記第１入出力部及び前記複数の仮想計算機のうちの一の仮想計算機を論理的に接続する第１接続手段、
該第１接続手段が接続した場合、前記外部装置が送信するデータの送信先を前記第１入出力部に設定する手段、
前記第１入出力部と前記一の仮想計算機との接続に異常があるか否かを判定する第１判定手段、
前記第１判定手段が、前記第１入出力部と前記一の仮想計算機との接続に異常があると判定した場合、前記第２入出力部が他の仮想計算機と論理的に接続されているか否かを判定する第２判定手段、
前記第２入出力部が前記他の仮想計算機と論理的に接続されていると判定した場合、前記他の仮想計算機の稼働率を取得する稼働率取得手段、
取得した稼働率に基づいて、前記第２入出力部及び前記他の仮想計算機の接続を切断するか否かを判定する切断判定手段、
前記第２入出力部及び前記他の仮想計算機の接続を切断すると判定した場合、前記第２入出力部及び前記一の仮想計算機を論理的に接続する第２接続手段、及び、
該第２接続手段が接続した場合、前記外部装置が送信するデータの送信先を前記第２入出力部に切り替える切替手段
として機能させるプログラム。
【請求項７】
請求項６に記載のプログラムが記録されており、コンピュータでの読取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動作する仮想計算機と外部装置とを接続して、外部装置から仮想計算機を利用できるようにする情報処理装置、仮想計算機接続方法、プログラム及び記録媒体に関する。
【背景技術】
【０００２】
１台のサーバ装置上で複数の仮想的なコンピュータ（以下、仮想マシン（ＶＭ：Virtual Machine）という）を動作させ、ネットワークを介してサーバ装置に接続される複数の端末装置それぞれにＶＭを割り当てるシステムがある。このシステムでは、サーバ装置で動作する各ＶＭ上でOperating System（ＯＳ）が稼働しており、各端末装置のユーザは、自身の端末装置から、割り当てられたＶＭのＯＳを利用することができる。すなわち、サーバ装置は、各端末装置のデスクトップコンピュータとして利用される。
【０００３】
各端末装置からは、ＶＭのＯＳを利用するだけでなく、ＶＭ上の環境設定、例えばネットワーク又はファイアウォールの設定等を自由に変更することができる。このため、誤った設定をした場合、端末装置からＶＭへの接続ができなくなるといった問題が発生する。この場合、端末装置のユーザは、サーバ装置の管理者等に依頼して、ネットワーク又はファイアウォールの設定等、接続できなくなった要因を取り除いてもらう必要がある。このため、ユーザには管理者に依頼するといった手間を要し、管理者は復旧作業を行うといった負担がかかるという問題も発生する。そこで、ＶＭのＯＳで発生した障害の情報を集約することで、障害の監視を容易に行うことが可能な技術が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１５１５０９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、特許文献１のように、発生した障害の情報を集約することで、ユーザの手間は省くことはできても、結果としてサーバ装置の管理者等が問題を解決することとなるため、管理者の負担を取り除くことはできない。
【０００６】
本発明はかかる事情に鑑みてなされたものであり、その目的とするところは、一の経路に異常が生じた場合であっても、他の経路により外部装置と仮想計算機とを接続して、仮想計算機を利用できるようにする情報処理装置、仮想計算機接続方法、プログラム及び記録媒体を提供することにある。
【課題を解決するための手段】
【０００７】
本願に開示する情報処理装置は、外部装置から利用可能な複数の仮想計算機が動作する情報処理装置において、外部装置が接続される第１及び第２入出力部と、前記第１入出力部及び前記複数の仮想計算機のうちの一の仮想計算機を論理的に接続する第１接続手段と、該第１接続手段が接続した場合、前記外部装置が送信するデータの送信先を前記第１入出力部に設定する手段と、前記第１入出力部と前記一の仮想計算機との接続に異常があるか否かを判定する第１判定手段と、前記第１判定手段が前記一の仮想計算機の接続に異常があると判定した場合、前記第２入出力部が他の仮想計算機と論理的に接続されているか否かを判定する第２判定手段と、前記第２入出力部が前記他の仮想計算機と論理的に接続されていると判定した場合、前記他の仮想計算機の稼働率を取得する稼働率取得手段と、取得した稼働率に基づいて、前記第２入出力部及び前記他の仮想計算機の接続を切断するか否かを判定する切断判定手段と、前記第２入出力部及び前記他の仮想計算機の接続を切断すると判定した場合、前記第２入出力部及び前記一の仮想計算機を論理的に接続する第２接続手段と、該第２接続手段が接続された場合、前記外部装置が送信するデータの送信先を前記第２入出力部に切り替える切替手段とを備える。
【発明の効果】
【０００８】
本願に開示する情報処理装置の一観点によれば、第１入出力部を介して、外部装置と仮想計算機とが、第１入出力部を介して接続できない場合であっても、第２入出力部を介してそれぞれを接続することができる。これにより、例えば、外部装置のユーザが行った仮想計算機における設定が原因で、第１入出力部を介して接続できなくなった場合、ユーザは、管理者等に接続異常となった原因を排除してもらうよう依頼することなく、自身で原因を排除することができる。その結果、接続異常時の管理者の負担を軽減でき、また、ユーザは管理者に依頼するといった手間を省くことができる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態に係るサーバ装置を有する計算機システムを模式的に示す図である。
【図２】サーバ装置のＶＭと端末装置との接続を説明するための模式図である。
【図３】サーバ装置及び端末装置のハードウェア構成を示すブロック図である。
【図４】サーバ装置が有する機能を示すブロック図である。
【図５】ＶＭの利用開始及び終了時におけるサーバ装置が行う処理手順を示すフローチャートである。
【図６】ＶＭのネットワーク監視部が行う処理手順を示すフローチャートである。
【図７】ＶＭのＶＭ情報収集部が行う処理手順を示すフローチャートである。
【図８】ＶＭＭのパケット監視部が行う処理手順を示すフローチャートである。
【図９】管理ＯＳのＶＭ状態監視部が行う処理手順を示すフローチャートである。
【図１０】管理ＯＳのＶＭ状態監視部が行う処理手順を示すフローチャートである。
【図１１】管理ＯＳのＶＭ状態管理部が行う処理手順を示すフローチャートである。
【図１２】管理ＯＳのＶＭ状態管理部が行う処理手順を示すフローチャートである。
【図１３】異常をユーザに報知するための画面の一例を示す模式図である。
【図１４】端末装置が有する機能を模式的に示すブロック図である。
【図１５】端末装置のネットワーク接続監視部が行う処理手順を示すフローチャートである。
【図１６】管理ＯＳのＶＭ状態管理部が行う処理手順を示すフローチャートである。
【図１７】管理ＯＳのＶＭ状態管理部が行う処理手順を示すフローチャートである。
【図１８】ＶＭのネットワーク監視部が行う処理手順を示すフローチャートである。
【図１９Ａ】リモート接続カードの使用開始時に端末装置のモニタに表示する画面の一例を示す図である。
【図１９Ｂ】リモート接続カードの使用終了時に端末装置のモニタに表示する画面の一例を示す図である。
【図２０】サーバ装置が有する機能を示すブロック図である。
【図２１】リモート接続カードの使用を開始する際に、サーバ装置で実行される処理手順を示すフローチャートである。
【図２２】リモート接続カードの使用を終了する際に、サーバ装置で実行される処理手順を示すフローチャートである。
【図２３】割り当てられたデバイスを一時的に割り当て解放する際に、サーバ装置で実行される処理手順を示すフローチャートである。
【図２４】サーバ装置が有する機能を示すブロック図である。
【図２５】ＶＭのＶＭ情報収集部が行う処理手順を示すフローチャートである。
【図２６】管理ＯＳのＶＭ状態管理部が実行する処理手順を示すフローチャートである。
【図２７】管理ＯＳの駆除ツール収集部が実行する処理手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、本願に開示する情報処理装置、仮想計算機接続方法、プログラム及び記録媒体について、各実施の形態を示す図面に基づいて詳述する。以下では、本願に開示する情報処理装置をサーバ装置として説明するが、キーボード及びモニタなどを備えたパーソナルコンピュータ（以下、ＰＣという）であってもよい。
【００１１】
（実施形態１）
図１は、実施の形態に係るサーバ装置を有する計算機システムを模式的に示す図である。
【００１２】
サーバ装置１は、Local Area Network（ＬＡＮ）又はWide Area Network（ＷＡＮ）等のネットワークＮを介して複数の端末装置２ａ，２ｂ，２ｃが接続されている。本実施の形態では、端末装置２ａ，２ｂ，２ｃは、キーボード、マウス及びモニタ等を備えたＰＣとするが、モニタに接続するセットトップボックス（ＳＴＢ：Set Top Box）、Personal Digital Assistant（ＰＤＡ）又は携帯電話機等であってもよい。また、ネットワークＮの種類は適宜変更可能であり、サーバ装置１と端末装置２ａ，２ｂ，２ｃとの接続は、有線又は無線の何れで接続されていてもよい。
【００１３】
サーバ装置１は、Virtual Machine Monitor（ＶＭＭ）１０、及び管理ＯＳ２０が実行可能としてあり、ＶＭＭ１０が実行することで、複数（図中では三つ）のＶＭ３０ａ，３０ｂ，３０ｃが動作可能となっている。ＶＭＭ１０は、例えばCentral Processing Unit（ＣＰＵ）及びRandom Access Memory（ＲＡＭ）等、サーバ装置１のリソースを論理的に複数に分割して、管理ＯＳ２０からの指示に従ってＶＭ３０ａ，３０ｂ，３０ｃを起動し、分割したリソースを起動したＶＭ３０ａ，３０ｂ，３０ｃに割り当てる。管理ＯＳ２０は、サーバ装置１を管理するためのＯＳであって、ＶＭＭ１０に対して、ＶＭ３０ａ，３０ｂ，３０ｃの起動及び停止を指示する。ＶＭ３０ａ，３０ｂ，３０ｃは、独自にＯＳ及びアプリケーションを物理コンピュータと同じように実行させる仮想的なコンピュータである。
【００１４】
以下、ＶＭ３０ａ，３０ｂ，３０ｃで実行されるＯＳを、ゲストＯＳという。また、ＶＭ３０ａは端末装置２ａが、ＶＭ３０ｂは端末装置２ｂが，ＶＭ３０ｃは端末装置２ｃがそれぞれ割り当てられているものとする。またＶＭ３０ａ，３０ｂ，３０ｃをＶＭ３０といい、端末装置２ａ，２ｂ，２ｃを端末装置２という。
【００１５】
サーバ装置１は、端末装置２から接続要求を受け付けた場合、例えば端末装置２との間でユーザ認証を行い、端末装置２に対応するＶＭ３０及びゲストＯＳを起動させる。これにより、ＶＭ３０と端末装置２とのネットワーク接続が確立し、ＶＭ３０は、端末装置２からの利用が開始される。ＶＭ３０が端末装置２から利用される場合、サーバ装置１は、端末装置２に対して画面情報をパケット転送し、端末装置２のモニタに画面を表示する。また、サーバ装置１は、端末装置２からキーボード及びマウスから入力された操作情報のパケットを受信し、対応するＶＭ３０で処理を行い、その結果を端末装置２へ送信する。
【００１６】
本実施の形態では、サーバ装置１のＶＭ３０と端末装置２とは、二つの経路により接続されるようになっている。以下、サーバ装置１のＶＭ３０と端末装置２とを接続する経路について説明する。図２は、サーバ装置１のＶＭ３０と端末装置２との接続を説明するための模式図である。なお図２では、一つのＶＭ３０のみ示している。
【００１７】
サーバ装置１は、ネットワークＮを介して端末装置２と接続するためのＩ／Ｏインターフェースとして、ネットワークインタフェースカード（ＮＩＣ）１ａ、リモート接続カード１ｂ及びグラフィックカード１ｃ等を備えている。端末装置２は、ＮＩＣ（第１入出力部）１ａ及びリモート接続カード（第２入出力部）１ｂに接続している。なおサーバ装置１は、図中では一つのみ示しているが、サーバ装置１に接続される端末装置２と同数のＮＩＣ１ａを備えている。また、サーバ装置１は、リモート接続カード１ｂ及びグラフィックカード１ｃをそれぞれ一つ以上備えており、複数のＶＭ３０がリモート接続カード１ｂ等を共有しているものとする。
【００１８】
サーバ装置１の管理ＯＳ２０では、ＮＩＣ１ａに対するネットワークドライバ２０１が実行している。また、ＶＭ３０では仮想ＮＩＣ３０ａが稼動し、ＶＭ３０で動作するゲストＯＳ４０では、仮想ＮＩＣ３０ａに対するネットワークドライバ４０１が実行している。管理ＯＳ２０のネットワークドライバ２０１は、ＶＭＭ１０を介して、仮想ＮＩＣ３０ａと対応付けられる。サーバ装置１は、端末装置２に対してＮＩＣ１ａのInternet Protocol（ＩＰ）アドレスを通知し、端末装置２は、そのＩＰアドレス宛にパケットを送信する。この場合、端末装置２から送信されたパケットは、ＮＩＣ１ａから受信され、管理ＯＳ２０、ＶＭＭ１０及び、ＶＭ３０の仮想ＮＩＣ３０ａを経由してゲストＯＳ４０に入力される。また、ゲストＯＳ４０が発したパケットは、仮想ＮＩＣ３０ａからＶＭＭ１０及び管理ＯＳ２０を経由して、ＮＩＣ１ａから端末装置２へ送信される。このＮＩＣ１ａを介して行う接続としては、例えばＲＤＰ接続が挙げられる。
【００１９】
また、ＶＭ３０のゲストＯＳ４０では、リモート接続カード１ｂに対するリモート接続カードドライバ４０２、及び、グラフィックカード１ｃに対するグラフィックカードドライバ４０３が実行している。リモート接続カード１ｂ及びグラフィックカード１ｃそれぞれは、所定の条件で、一のＶＭ３０に割り当てられ、そのＶＭ３０の各ドライバ４０２，４０３から動作制御される。サーバ装置１は、端末装置２に対してリモート接続カード１ｂのＩＰアドレスを通知し、端末装置２は、そのＩＰアドレス宛にパケットを送信する。この場合、端末装置２のキーボード及びマウス等の操作情報はＩＰ化され、リモート接続カード１ｂに入力される。リモート接続カード１ｂは入力された操作情報をゲストＯＳ４０に直接入力する。また、ゲストＯＳ４０の画面情報はグラフィックカード１ｃに出力され、リモート接続カードでＩＰ化した後、端末装置２へ送信される。このリモート接続カード１ｂを介して行う通信技術としては、例えばＰＣｏＩＰ（PC over IP）技術が挙げられる。
【００２０】
以上のように、ＶＭ３０と端末装置２とは、ＮＩＣ１ａ又はリモート接続カード１ｂを介して接続している。より具体的には、ＶＭ３０と端末装置２とは、平時はＮＩＣ１ａを介して接続するようにしている。ＶＭ３０では、対応する端末装置２からネットワーク設定が行えるようになっている。ネットワーク設定とは、例えば端末装置２又はＶＭ３０のＩＰアドレスの設定、ゲストＯＳ４０で稼動するファイアウォールの設定等である。このネットワーク設定において、設定に誤りがあった場合、ＶＭ３０と端末装置２とが接続できなくなる場合がある。例えば、ファイアウォール設定において、設定すべきＩＰアドレスに誤りがあった場合、端末装置２から送信されたパケットは、ファイアウォールにより破棄されることになるため、実質的にゲストＯＳ４０と端末装置２とが接続できなくなる。この場合に、サーバ装置１は、リモート接続カード１ｂを介してＶＭ３０と端末装置２とが接続されるように切り替える。これにより、端末装置２は、ＶＭ３０への接続でき、再びＮＩＣ１ａを介して接続できるように正しいネットワーク設定を行うことができる。
【００２１】
なお、ＶＭ３０と端末装置２とがＮＩＣ１ａを介して接続できるように復旧した場合、一のＶＭ３０に対するリモート接続カード１ｂ及びグラフィックカード１ｃの割り当ては解放される。これにより、他のＶＭ３０でリモート接続カード１ｂ等が必要となったときに、他のＶＭ３０に対してリモート接続カード１ｂ等を割り当てることができ、サーバ装置１は、多数のリモート接続カード１ｂを備える必要がなくなる。
【００２２】
以下、サーバ装置１の具体的な構成及び動作について詳述する。
【００２３】
図３は、サーバ装置１及び端末装置２のハードウェア構成を示すブロック図である。
【００２４】
サーバ装置１は、ＣＰＵ１１、Read Only Memory（ＲＯＭ）１２、ＲＡＭ１３、ハードディスク（以下、ＨＤＤという）１４、ネットワークインタフェースカード（ＮＩＣ）１ａ、リモート接続カード１ｂ及びグラフィックカード１ｃ等のハードウェア各部を備えている。これらのハードウェア各部はバスを介して相互に接続されている。
【００２５】
ＣＰＵ１１は、ＲＯＭ１２に予め格納されているプログラム１２ａを適宜ＲＡＭ１３に読み出して実行すると共に、上述したハードウェア各部の動作を制御する。ＲＯＭ１２は、プログラム１２ａを格納している。ＲＡＭ１３は、例えばStatic ＲＡＭ（ＳＲＡＭ）、Dynamic ＲＡＭ（ＤＲＡＭ）、フラッシュメモリ等である。ＲＡＭ１３は、ＣＰＵ１１によるプログラム１２ａの実行時に発生する種々のデータを一時的に記憶する。
【００２６】
ＨＤＤ１４は大容量の記憶装置である。ＨＤＤ１４は、ＶＭＭプログラム、管理ＯＳプログラム、ゲストＯＳプログラム、アプリケーションプログラム及び各処理に必要なデータテーブル等を格納している。各プログラムは、ＣＰＵ１１によりＲＡＭ１３に読み出しされて実行される。なお、プログラム１２ａは、Compact Disk-ROM（ＣＤ−ＲＯＭ）、Digital Versatile Disc-ROM（ＤＶＤ−ＲＯＭ）等の記録媒体３によりＨＤＤ１４にインストールして、又はネットワークからダウンロードして使用する形態でもよい。
【００２７】
ＶＭＭプログラムは、サーバ装置１でＶＭ３０の動作を可能にする仮想化技術を実現するためのソフトウェアプログラムである。ＣＰＵ１１は、サーバ装置１の起動後にＶＭＭプログラムを実行することにより、ＶＭＭ１０としての動作を開始する。ＣＰＵ１１がＶＭＭ１０として動作することにより、サーバ装置１には、複数のＶＭ３０が独立して動作可能な仮想環境が提供される。
【００２８】
管理ＯＳプログラムは、ＶＭＭ１０上でＶＭ３０を起動及び停止、及びＶＭ３０に対してＣＰＵ１１等のリソースを割り当てて、また割り当てをＶＭＭ１０に指示するためのソフトウェアプログラムである。ＣＰＵ１１は、サーバ装置１の起動後に管理ＯＳプログラムを実行することにより管理ＯＳ２０としての動作を開始する。
【００２９】
ゲストＯＳプログラムは、ＶＭ３０上でゲストＯＳ４０を実行させるソフトウェアプログラムである。ゲストＯＳプログラムは、ＶＭが起動した後、ＣＰＵ１１がゲストＯＳプログラムを実行することによりゲストＯＳ４０としての動作を開始する。ゲストＯＳ４０は、例えばWindows（登録商標）又はLinux（登録商標）等である。ゲストＯＳは、実行した処理に応じて表示すべきCharacter User Interface（ＣＵＩ）、Graphic User Interface（ＧＵＩ）等を含む表示画面を生成し、生成した表示画面は、端末装置２に送られ、端末装置２のモニタに表示される。また、ゲストＯＳ４０は、端末装置２のキーボード及びマウスからの制御信号を受け付ける。そして、ゲストＯＳ４０は、受け付けた制御信号に応じて各種処理を実行する実行手段として機能する。
【００３０】
アプリケーションプログラムは、ゲストＯＳ４０のそれぞれによって実行されるアプリケーションのソフトウェアプログラムである。サーバ装置１は、アプリケーションプログラムが記録された外部メモリからアプリケーションプログラムを読み取ってＨＤＤ１４に格納してもよい。また、サーバ装置１は、ネットワークを介してアプリケーションプログラムをダウンロードしてＨＤＤ１４に格納させてもよい。
【００３１】
端末装置２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、ＨＤＤ２４、入出力部２５、及びＮＩＣ２６等のハードウェア各部を備える。これらのハードウェア各部はバスを介して相互に接続されている。入出力部２５は、キーボード、マウス及びモニタ等である。ＮＩＣ２６は、ネットワークＮへの接続を可能にする。
【００３２】
ＣＰＵ２１は、ＲＯＭ２２に予め格納されているプログラムを適宜ＲＡＭ２３に読み出して実行すると共に、上述したハードウェア各部の動作を制御する。ＲＯＭ２２は、プログラム、及び各種データ等を予め格納している。ＲＡＭ２３は、例えばＳＲＡＭ、ＤＲＡＭ、フラッシュメモリ等であり、ＣＰＵ２１によるプログラムの実行時に発生する種々のデータを一時的に記憶する。ＨＤＤ２２には、例えばサーバ装置１に接続するためのアプリケーションのプログラム、及び各種のデータ等を格納している。
【００３３】
以下に、サーバ装置１で実現される機能について説明する。図４は、サーバ装置１が有する機能を示すブロック図である。
【００３４】
サーバ装置１に電源が投入され、サーバ装置１のハードウェア各部の起動が完了した場合、ＣＰＵ１１は、まず、ＶＭＭプログラムをＨＤＤ１４から読み出して実行することによりＶＭＭ１０としての動作を開始する。ＶＭＭ１０としての動作を開始したＣＰＵ１１は、管理ＯＳプログラムをＨＤＤ１４から読み出して実行することにより管理ＯＳ２０としての動作を開始する。ＶＭＭ１０は、管理ＯＳ２０からの指示により、ＶＭＭ１０上でＶＭ３０の起動及び停止を行う。なお図４では、ＶＭ３０は一つのみ示している。
【００３５】
ＶＭ３０を起動する場合、管理ＯＳ２０はユーザ認証を行う。例えばサーバ装置１には、予めユーザＩＤ及びパスワードと、ユーザが利用するＶＭ３０とを対応付けて登録しておく。管理ＯＳ２０は、ログイン画面（図示せず）の画面情報を端末装置２へ送信し、端末装置２で表示されたログイン画面に従って入力されたユーザＩＤ及びパスワードを端末装置２から受信する。そして、管理ＯＳ２０は、受信したユーザＩＤ及びパスワードが登録されているか否かを判定する。受信したユーザＩＤ及びパスワードが登録されている場合、管理ＯＳ２０はユーザ認証できたと判定し、ＶＭＭ１０が、対応するＶＭ３０を起動し、起動したＶＭ３０にリソースを割り当てる。起動したＶＭ３０では、ゲストＯＳ４０の動作が開始される。
【００３６】
ＶＭＭ１０は、ＶＭ制御部１０１及びパケット監視部１０２等の機能を有している。ＶＭ制御部１０１は、管理ＯＳ２０からの指示に従い、ＶＭ３０の起動停止等を行う。パケット監視部１０２は、管理ＯＳ２０からの指示に従い、ＶＭＭ１０を経由してＶＭ３０と端末装置２との間で送受されるパケットを定期的に監視し、監視結果を管理ＯＳ２０に通知する。ＶＭ３０と端末装置２との間で送受されるパケットは、端末装置２からＶＭ３０へ送信されるパケット（以下、要求パケットという）と、ＶＭ３０から端末装置２へ送信されるパケット（以下、応答パケットという）とがある。
【００３７】
管理ＯＳ２０は、デバイス割当制御部２０２、ＶＭ状態管理部２０３、ＶＭ状態監視部２０４、デバイス割当情報保存部２０５、ＶＭ管理情報保存部２０６、及びＶＭ接続情報保存部２０７等の機能を有している。なお、図４では省略しているが、管理ＯＳ２０は、上述したネットワークドライバ２０１の機能を有している。
【００３８】
デバイス割当制御部２０２は、ＶＭ状態管理部２０３からの指示に従い、起動したＶＭ３０へのデバイスの割り当て、及び割り当て解放をＶＭＭ１０に依頼する。割り当て及び割り当て解放するデバイスは、リモート接続カード１ｂ及びグラフィックカード１ｃ等である。
【００３９】
ＶＭ状態管理部２０３は、ＶＭ３０の起動時に、ＶＭ３０に関するＶＭ情報をＶＭ管理情報保存部２０６に格納し、ＶＭ３０の停止時に格納されていたＶＭ情報を削除する。ＶＭ情報は、例えばＶＭ３０のＶＭ名、ＶＭＭ１０がＶＭ３０を識別するためのドメインＩＤ、仮想ＮＩＣ３０ａの名前（以下、インターフェース（Ｉ／Ｆ）名という）、仮想ＮＩＣ３０ａに割り当てられたＩＰアドレス、ネットワークマスク、ゲートウェイ情報、及び後述するファイアウォールログ等である。またＶＭ情報は、ＶＭ３０が端末装置２と接続している場合、その接続情報、並びに、ＶＭ３０に割り当てられているデバイス情報を含む。
【００４０】
また、ＶＭ状態管理部２０３は、ＶＭ３０と端末装置２との接続に異常があるか否かを判定する。ＶＭ３０と端末装置２との接続に異常がある場合、ＶＭ状態管理部２０３は、デバイス割当制御部２０２に対して、対応するＶＭ３０にリモート接続カード１ｂを割り当てるよう依頼する。リモート接続カード１ｂが割り当てられた場合、ＶＭ状態管理部２０３は、リモート接続カード１ｂのＩＰアドレスを端末装置２へ通知して、端末装置２にリモート接続カード１ｂ経由で接続させる。これにより、ＶＭ３０と端末装置２とはリモート接続カード１ｂを介して接続するようになる。
【００４１】
また、ＶＭ状態管理部２０３は、監視パケットの送信を端末装置２に依頼する。監視パケットは、ＶＭ３０にリモート接続カード１ｂが割り当てられた後、ＶＭ３０が仮想ＮＩＣ３０ａを介して端末装置２と接続できるようになったことを確認するために発行される。監視パケットは、ＶＭ３０のＮＩＣ３０ａに割り当てられたＩＰアドレスにInternet Control Message Protocol（icmp）echoを利用しており、icmp reply応答があったときに、ＶＭ状態管理部２０３は、ＮＩＣ１ａ経由の接続が可能と判定し、ＶＭ３０に割り当てたリモート接続カード１ｂの割り当てを解放する。このとき、ＶＭ状態管理部２０３は、ＮＩＣ１ａのＩＰアドレスを端末装置２へ通知して、ＮＩＣ１ａ経由でＶＭ３０と端末装置２とを接続させる。またＶＭ状態管理部２０３は、監視パケットの停止を端末装置２に依頼する。
【００４２】
ＶＭ状態管理部２０３は、監視パケットの送信依頼を通知した後、ＶＭ情報の取得を、ＶＭ状態監視部２０４を介してＶＭ３０に指示する。そしてＶＭ情報を受信した場合、ＶＭ状態管理部２０３は、ＶＭ管理情報保存部２０６に格納されているＶＭ情報を更新する。
【００４３】
またＶＭ状態管理部２０３は、ＶＭ３０と端末装置２との接続が確立した場合、接続情報をＶＭ３０から取得してＶＭ接続情報保存部２０７へ格納する。接続情報は、例えば、ＶＭ３０に接続している端末装置２のＩＰアドレス及びポート番号、並びに、ＶＭ３０のＩＰアドレス及びポート番号である。ＶＭ状態管理部２０３は、監視パケットを監視中であるか否かの情報（フラグ）を接続情報に含めてＶＭ接続情報保存部２０７に格納する。
【００４４】
ＶＭ状態監視部２０４は、ＶＭ状態管理部２０３からの指示に従い、要求及び応答パケットを定期的に監視して、監視結果をＶＭ状態管理部２０３に通知する。また、ＶＭ状態監視部２０４は、ＶＭ状態管理部２０３からの指示に従い、対象となるＶＭ３０が起動しているかを確認し、起動している場合には、ＶＭ３０にＶＭ情報の取得を指示する。ＶＭ状態監視部２０４は、ＶＭ情報を受信した場合、その結果をＶＭ状態管理部２０３に通知する。
【００４５】
デバイス割当情報保存部２０５は、起動したＶＭ３０に割り当て可能なデバイス、例えば、リモート接続カード１ｂ及びグラフィックカード１ｃに関するデバイス情報を格納している。デバイス情報は、例えば、デバイスを識別するための識別子、デバイスが接続されている位置（例えば、基板スロットの位置）を特定するためのドメイン番号、バス番号、デバイス番号及びファンクション番号、並びに、デバイスに割り当てられているＩＰアドレス等である。また、デバイス情報は、デバイスが既にＶＭ３０に割り当てられている場合には、デバイスが割り当てられているＶＭ３０のＶＭ名等を含む。
【００４６】
ＶＭ３０は、ネットワーク監視部３０１及びＶＭ情報収集部３０２等の機能を有している。ネットワーク監視部３０１は、ＶＭ３０が端末装置２との接続を開始した場合、管理ＯＳ２０のＶＭ状態管理部２０３に接続情報と共に、接続開始を通知する。ネットワーク監視部３０１は、要求及び応答パケットを定期的に監視し、監視結果を管理ＯＳ２０のＶＭ状態管理部２０３に通知する。さらに、ネットワーク監視部３０１は、端末装置２とＶＭ３０との接続が切断された場合、ＶＭ状態管理部２０３に接続終了を通知し、パケット監視を終了する。
【００４７】
ＶＭ情報収集部３０２は、ＶＭ状態管理部２０３からの指示に従い、ネットワーク状態又はファイアウォールログ等のＶＭ情報を取得する。ネットワーク状態とは、接続に関係するＩＰアドレス等である。ファイアウォールログとは、処理したパケット又は破棄したパケットのログ等である。ＶＭ情報収集部３０２は、ＶＭ３０と端末装置２との接続に異常があった場合、取得したネットワーク状態又はファイアウォールログから異常原因を検出し、その検出結果と共に、ＶＭ情報をＶＭ状態監視部２０４へ出力する。
【００４８】
具体的には、ＶＭ情報収集部３０２は、ＶＭ管理情報保存部２０６に格納されたＶＭ情報を管理ＯＳ２０から取得し、そのＶＭ情報と、自身が取得したネットワーク状態とを対比する。対比した結果、Ｉ／Ｆ名が異なる場合には、ＶＭ情報収集部３０２は、仮想ＮＩＣ３０ａが無効化又は設定変更されたことが異常の原因であるとして、Ｉ／Ｆ異常と判定する。また対比した結果、ＩＰアドレスが異なる場合には、ＶＭ情報収集部３０２は、ＩＰアドレスが変更されたことが異常の原因として、ＩＰアドレス異常と判定する。またＶＭ情報収集部３０２は、ＶＭ接続情報保存部２０７から接続情報を取得し、ファイアウォールログにおいて破棄されているパケットが、接続情報に含まれるＩＰアドレス又はポート番号からのパケットであった場合、ファイアウォール異常と判定する。ＶＭ情報収集部３０２は、何れの異常であるかを判定した結果を、ＶＭ状態監視部２０４を介してＶＭ状態管理部２０３へ通知する。
【００４９】
次に、上述のサーバ装置１で実行される処理について説明する。
【００５０】
図５は、ＶＭ３０の利用開始及び終了時におけるサーバ装置１が行う処理手順を示すフローチャートである。なお図５は、正常にＶＭ３０が起動及び停止し、ＶＭ３０と端末装置２との接続に異常が発生しない場合を示している。
【００５１】
サーバ装置１ではＶＭＭ１０が実行され、ＶＭＭ１０上で管理ＯＳ２０の動作が開始される。起動した管理ＯＳ２０が、端末装置２から接続要求を受信したか否かを判定する（Ｓ１）。接続要求は、例えば端末装置２で特定のアプリケーションが実行されることで、端末装置２から送信される。接続要求を受信していない場合（Ｓ１：ＮＯ）、本処理は終了する。接続要求を受信した場合（Ｓ１：ＹＥＳ）、管理ＯＳ２０は、接続要求を行った端末装置２に対応するＶＭ３０の起動をＶＭＭ１０へ依頼し、ＶＭＭ１０がＶＭ３０を起動する（Ｓ２）。
【００５２】
管理ＯＳ２０は、起動したＶＭ３０で稼動するＮＩＣ３０ａのＩＰアドレスを端末装置２に送信する（Ｓ３）。端末装置２では、送信されたＩＰアドレス先への接続を開始する。これにより、ＶＭ３０と端末装置２との接続が確立し、端末装置２からＶＭ３０へのリモート接続が開始される。ＶＭ３０と端末装置２との接続が確立したとき、管理ＯＳ２０は、起動したＶＭ３０から取得したＶＭ情報をＶＭ管理情報保存部２０６に格納する。
【００５３】
管理ＯＳ２０は、リモート接続が正常に切断されたか否かを判定する（Ｓ４）。リモート接続が正常に切断されていない場合（Ｓ４：ＮＯ）、管理ＯＳ２０は、リモート接続が正常に切断されるまで待機する。このとき、端末装置２からＶＭ３０へのリモート接続が続行される。リモート接続が正常に切断された場合（Ｓ４：ＹＥＳ）、管理ＯＳ２０は、ＶＭＭ１０にＶＭ３０を停止させる（Ｓ５）。このとき、ＶＭ３０は、ＶＭ管理情報保存部２０６に格納したＶＭ情報を削除する。そして、本処理は終了する。
【００５４】
図６は、ＶＭ３０のネットワーク監視部３０１が行う処理手順を示すフローチャートである。
【００５５】
ネットワーク監視部３０１は、ＶＭ３０と端末装置２との接続が確立したか判定する（Ｓ１０）。ＶＭ３０と端末装置２との接続が確立していない場合（Ｓ１０：ＮＯ）、ネットワーク監視部３０１は、ＶＭ３０と端末装置２との接続が確立するまで待機する。ＶＭ３０と端末装置２との接続が確立した場合（Ｓ１０：ＹＥＳ）、ネットワーク監視部３０１は、端末装置２のＩＰアドレス等の接続情報を、ＶＭ状態管理部２０３へ通知する（Ｓ１１）。次に、ネットワーク監視部３０１は、パケット監視を開始して、端末装置２からの要求パケットを検出したかを判定する（Ｓ１２）。
【００５６】
要求パケットを検出した場合（Ｓ１２：ＹＥＳ）、ネットワーク監視部３０１は、要求パケットに対するゲストＯＳ４０からの応答パケットを検出したか否かを判定する（Ｓ１３）。応答パケットを検出していない場合（Ｓ１３：ＮＯ）、ネットワーク監視部３０１は、一定時間経過したか否かを判定する（Ｓ１４）。一定時間経過していない場合（Ｓ１４：ＮＯ）、ネットワーク監視部３０１は、再びＳ１３を実行し、応答パケットを検出したか否かを判定する。一定時間経過した場合（Ｓ１４：ＹＥＳ）、ネットワーク監視部３０１は、ＶＭ３０と端末装置２との接続に異常があると判定し、管理ＯＳ２０のＶＭ状態管理部２０３へ接続異常を通知する（Ｓ１５）。要求パケットを検出していない場合（Ｓ１２：ＮＯ）、又は、応答パケットを検出した場合（Ｓ１３：ＹＥＳ）、ネットワーク監視部３０１は、Ｓ１６の処理を実行する。なお、応答パケットを検出した場合には、ネットワーク監視部３０１は、ＶＭ３０と端末装置２との接続に異常がないことをＶＭ状態管理部２０３へ通知するようにしてもよい。
【００５７】
ネットワーク監視部３０１は、ＶＭ３０と端末装置２との接続が切断されたか否かを判定する（Ｓ１６）。ＶＭ３０と端末装置２との接続が切断されていない場合（Ｓ１６：ＮＯ）、ネットワーク監視部３０１は、Ｓ１２の処理を実行し、要求パケットを検出したか否かを判定する。ＶＭ３０と端末装置２との接続が切断された場合（Ｓ１６：ＹＥＳ）、ネットワーク監視部３０１は、パケット監視を停止し、管理ＯＳ２０へ切断を通知した後（Ｓ１７）、本処理を終了する。
【００５８】
図７は、ＶＭ３０のＶＭ情報収集部３０２が行う処理手順を示すフローチャートである。
【００５９】
ＶＭ情報収集部３０２は、ＶＭ情報の取得が指示されたか否かを判定する（Ｓ２０）。ＶＭ情報の取得は、接続異常が通知されたＶＭ状態管理部２０３から、ＶＭ状態監視部２０４を介して指示される。なお、ＶＭ状態管理部２０３は、ＶＭ状態監視部２０４から指示されるとき、ＶＭ管理情報保存部２０６に記憶されたＶＭ情報、及びＶＭ接続情報保存部２０７に記憶された接続情報を取得する。ＶＭ情報の取得が指示されていない場合（Ｓ２０：ＮＯ）、ＶＭ情報収集部３０２は、ＶＭ状態監視部２０４から指示されるまで待機する。ＶＭ情報の取得が指示された場合（Ｓ２０：ＹＥＳ）、ＶＭ情報収集部３０２は、ＶＭ情報を取得し（Ｓ２１）、取得したＶＭ情報に基づいて、Ｉ／Ｆ異常であるか否かを判定する（Ｓ２２）。具体的には、ＶＭ情報収集部３０２は、管理ＯＳ２０から取得したＶＭ情報に含まれるＩ／Ｆ名を、Ｓ２１で取得できたか否かを判定する。
【００６０】
Ｉ／Ｆ異常であると判定した場合（Ｓ２２：ＹＥＳ）、ＶＭ情報収集部３０２は、Ｉ／Ｆ異常として管理ＯＳ２０のＶＭ状態監視部２０４へ通知し（Ｓ２３）、本処理を終了する。Ｉ／Ｆ異常でないと判定した場合（Ｓ２２：ＮＯ）、ＶＭ情報収集部３０２は、ＩＰアドレス異常であるか否かを判定する（Ｓ２４）。具体的には、ＶＭ情報収集部３０２は、仮想ＮＩＣ３０ａに割り当てられているＩＰアドレスが、管理ＯＳ２０から取得したＶＭ情報に含まれ、仮想ＮＩＣ３０ａに割り当てられているＩＰアドレスと一致するか否かを判定する。一致しない場合は、ＩＰアドレス異常と判定する。
【００６１】
ＩＰアドレス異常である場合（Ｓ２４：ＹＥＳ）、ＶＭ情報収集部３０２は、ＩＰアドレス異常として管理ＯＳ２０のＶＭ状態監視部２０４へ通知し（Ｓ２５）、本処理を終了する。ＩＰアドレス異常でない場合（Ｓ２４：ＮＯ）、ＶＭ情報収集部３０２は、ファイアウォール異常であるか否かを判定する（Ｓ２６）。具体的には、ＶＭ情報収集部３０２は、ファイアウォールログを確認し、破棄されたパケットがあるなど、接続に影響するログがないか確認する。
【００６２】
ファイアウォール異常であると判定された場合（Ｓ２６：ＹＥＳ）、ＶＭ情報収集部３０２は、ファイアウォール異常として、管理ＯＳ２０のＶＭ状態監視部２０４へ通知し（Ｓ２７）、本処理を終了する。ファイアウォール異常でないと判定された場合（Ｓ２６：ＮＯ）、ＶＭ情報収集部３０２は、異常原因を特定できないことをＶＭ状態監視部２０４に通知し（Ｓ２８）、本処理を終了する。
【００６３】
図８は、ＶＭＭ１０のパケット監視部１０２が行う処理手順を示すフローチャートである。
【００６４】
パケット監視部１０２は、管理ＯＳ２０のＶＭ状態監視部２０４からの指示によりパケット監視を開始するか否かを判定する（Ｓ３０）。パケット監視を開始しない場合（Ｓ３０：ＮＯ）、パケット監視部１０２は、本処理を終了する。パケット監視を開始する場合（Ｓ３０：ＹＥＳ）、パケット監視部１０２は、端末装置２からの要求パケットを検出したかを判定する（Ｓ３１）。要求パケットを検出した場合（Ｓ３１：ＹＥＳ）、パケット監視部１０２は、要求パケットに対するゲストＯＳ４０の応答パケットを検出したか否かを判定する（Ｓ３２）。応答パケットを検出していない場合（Ｓ３２：ＮＯ）、パケット監視部１０２は、一定時間経過したか否かを判定する（Ｓ３３）。
【００６５】
一定時間経過していない場合（Ｓ３３：ＮＯ）、パケット監視部１０２は、Ｓ３２を実行する。一定時間経過した場合（Ｓ３３：ＹＥＳ）、パケット監視部１０２は、接続異常と判定し、管理ＯＳ２０のＶＭ状態管理部２０３へ接続異常を通知する（Ｓ３４）。要求パケットを検出していない場合（Ｓ３１：ＮＯ）、または、応答パケットを検出した場合（Ｓ３２：ＹＥＳ）、パケット監視部１０２は、Ｓ３５の処理を実行する。なお、応答パケットを検出した場合には、パケット監視部１０２は、接続が正常であることをＶＭ状態管理部２０３へ通知するようにしてもよい。
【００６６】
パケット監視部１０２は、ＶＭ状態監視部２０４からの指示によりパケット監視を停止するか否かを判定する（Ｓ３５）。停止しない場合（Ｓ３５：ＮＯ）、パケット監視部１０２は、Ｓ３１の処理を実行する。停止する場合（Ｓ３５：ＹＥＳ）、パケット監視部１０２は、パケット監視を停止した後、本処理を終了する。
【００６７】
図９及び図１０は、管理ＯＳ２０のＶＭ状態監視部２０４が行う処理手順を示すフローチャートである。
【００６８】
ＶＭ状態監視部２０４は、ＶＭ状態管理部２０３からの指示により、パケット監視を開始するか否かを判定する（Ｓ４０）。パケット監視を開始しない場合（Ｓ４０：ＮＯ）、ＶＭ状態監視部２０４は、本処理を終了する。パケット監視を開始する場合（Ｓ４０：ＹＥＳ）、ＶＭ状態監視部２０４は、パケット監視部１０２へパケット監視の開始を指示する（Ｓ４１）。このとき、ＶＭ状態監視部２０４は、自身でのパケット監視を開始する。
【００６９】
ＶＭ状態監視部２０４は、端末装置２からの要求パケットを検出したかを判定する（Ｓ４２）。要求パケットを検出した場合（Ｓ４２：ＹＥＳ）、ＶＭ状態監視部２０４は、要求パケットに対するゲストＯＳ４０の応答パケットを検出したか否かを判定する（Ｓ４３）。応答パケットを検出していない場合（Ｓ４３：ＮＯ）、ＶＭ状態監視部２０４は、一定時間経過したか否かを判定する（Ｓ４４）。
【００７０】
一定時間経過していない場合（Ｓ４４：ＮＯ）、ＶＭ状態監視部２０４は、Ｓ４３の処理を実行する。一定時間経過した場合（Ｓ４４：ＹＥＳ）、ＶＭ状態監視部２０４は、接続異常と判定し、ＶＭ状態管理部２０３へ接続異常を通知する（Ｓ４５）。要求パケットを検出していない場合（Ｓ４２：ＮＯ）、または、応答パケットを検出した場合（Ｓ４３：ＹＥＳ）、パケット監視部１０２は、Ｓ４６の処理を実行する。なお、応答パケットを検出した場合には、ＶＭ状態監視部２０４は、接続が正常であることをＶＭ状態管理部２０３へ通知するようにしてもよい。
【００７１】
ＶＭ状態監視部２０４は、ＶＭ情報の取得が指示されたか否かを判定する（Ｓ４６）。ＶＭ情報の取得は、接続異常が通知されたＶＭ状態管理部２０３から指示される。ＶＭ情報の取得が指示されていない場合（Ｓ４６：ＮＯ）、ＶＭ状態監視部２０４は、指示されるまで待機する。ＶＭ情報の取得が指示された場合（Ｓ４６：ＹＥＳ）、ＶＭ状態監視部２０４は、ＶＭ３０が起動中であるか否かを判定する（Ｓ４７）。ＶＭ３０が起動中でない場合（Ｓ４７：ＮＯ）、ＶＭ状態監視部２０４は、ＶＭ状態管理部２０３へＶＭ３０が停止状態であることを通知し（Ｓ４８）、Ｓ５４の処理を実行する。なお、停止状態と通知されたＶＭ状態管理部２０３は、端末装置２に対して、ＶＭ３０が停止していることを通知する。
【００７２】
ＶＭ３０が起動中の場合（Ｓ４７：ＹＥＳ）、ＶＭ状態監視部２０４は、ＶＭ３０のＶＭ情報収集部３０２へ、ＶＭ情報の取得を指示する（Ｓ４９）。ＶＭ状態監視部２０４は、ＶＭ情報収集部３０２から指示した結果を取得したか否かを判定する（Ｓ５０）。指示した結果とは、ＶＭ情報収集部３０２が取得したＶＭ情報、及び、ＶＭ情報収集部３０２が判定したＩ／Ｆ異常等の異常原因である。取得していない場合（Ｓ５０：ＮＯ）、ＶＭ状態監視部２０４は、一定時間が経過したか否かを判定する（Ｓ５１）。
【００７３】
一定時間が経過していない場合（Ｓ５１：ＮＯ）、ＶＭ状態監視部２０４は、Ｓ５０の処理を実行する。一定時間が経過した場合（Ｓ５１：ＹＥＳ）、ＶＭ状態監視部２０４は、ＶＭ状態管理部２０３にＶＭ３０が異常停止状態であることを通知する（Ｓ５２）。異常停止状態と通知されたＶＭ状態管理部２０３は、端末装置２に対して、ＶＭ３０が異常停止していることを通知する。指示結果を取得した場合（Ｓ５０：ＹＥＳ）、ＶＭ状態監視部２０４は、ＶＭ状態管理部２０３へ取得した指示結果を通知する（Ｓ５３）。
【００７４】
次に、ＶＭ状態監視部２０４は、ＶＭ状態管理部２０３からの指示により、パケット監視を停止するか否かを判定する（Ｓ５４）。パケット監視を停止しない場合（Ｓ５４：ＮＯ）、ＶＭ状態監視部２０４は、Ｓ４２の処理を実行する。パケット監視を停止する場合（Ｓ５４：ＹＥＳ）、ＶＭ状態監視部２０４は、パケット監視部１０２へパケット監視の停止を指示し（Ｓ５５）、自身のパケット監視を停止した後、本処理を終了する。
【００７５】
図１１及び図１２は、管理ＯＳ２０のＶＭ状態管理部２０３が行う処理手順を示すフローチャートである。
【００７６】
ＶＭ状態管理部２０３は、ＶＭ３０のネットワーク監視部３０１から接続情報を受信したか否かを判定する（Ｓ６０）。接続情報は、ＶＭ３０と端末装置２との接続が確立したときに、ネットワーク監視部３０１から送信される。接続情報を受信していない場合（Ｓ６０：ＮＯ）、ＶＭ状態管理部２０３は、本処理を終了する。接続情報を受信した場合（Ｓ６０：ＹＥＳ）、ＶＭ状態管理部２０３は、受信した接続情報をＶＭ接続情報保存部２０７に格納する（Ｓ６１）。
【００７７】
ＶＭ状態管理部２０３は、パケット監視を開始する（Ｓ６２）。パケット監視を開始した場合、ＶＭ状態管理部２０３は、ＶＭ状態監視部２０４にパケット監視の開始を指示する。パケット監視の開始が指示されたＶＭ状態監視部２０４は、ＶＭＭ１０のパケット監視部１０２へ、さらにパケット監視の開始を指示する。
【００７８】
ＶＭ状態管理部２０３は、パケット監視に対する結果を受信したか否かを判定する（Ｓ６３）。監視結果を受信していない場合（Ｓ６３：ＮＯ）、ＶＭ状態管理部２０３は、受信するまで待機する。監視結果を受信した場合（Ｓ６３：ＹＥＳ）、ＶＭ状態管理部２０３は、受信した監視結果が接続異常であるか否かを判定する（Ｓ６４）。パケット監視は、ＶＭ状態監視部２０４、パケット監視部１０２及びネットワーク監視部３０１で行われており、全てにおいて接続異常でないと判定された場合には、ＶＭ状態管理部２０３は、接続異常でないと判定する。
【００７９】
監視結果が接続異常でない場合（Ｓ６４：ＮＯ）、ＶＭ状態管理部２０３は、リモート接続カード１ｂがＶＭ３０に割り当てられているか否かを判定する（Ｓ６５）。リモート接続カード１ｂがＶＭ３０に割り当てられている場合、ＶＭ３０は、端末装置２からリモート接続カード１ｂ経由で接続している。リモート接続カード１ｂがＶＭ３０に割り当てられている場合（Ｓ６５：ＹＥＳ）、ＶＭ３０及び端末装置２間が接続異常から復旧したと判定し、ＶＭ状態管理部２０３は、デバイス割当制御部２０２にリモート接続カード１ｂの割り当て解放を指示する（Ｓ６６）。ＶＭ状態管理部２０３は、ＮＩＣ１ａのＩＰアドレスを端末装置２へ送信することで、端末装置２にＮＩＣ１ａ経由でＶＭ３０に接続するよう指示する（Ｓ６７）。端末装置２がリモート接続カード１ｂ経由でＶＭ３０に接続している場合、端末装置２からは監視パケットが送信されているため、ＶＭ状態管理部２０３は、端末装置２に対して監視パケットの送信停止を要求する（Ｓ６８）。その後、ＶＭ状態管理部２０３は、Ｓ７８の処理を実行する。また、リモート接続カード１ｂがＶＭ３０に割り当てられていない場合（Ｓ６５：ＮＯ）、ＶＭ状態管理部２０３は、Ｓ７８の処理を実行する。
【００８０】
監視結果が接続異常である場合（Ｓ６４：ＹＥＳ）、ＶＭ状態管理部２０３は、ＶＭＭ１０及び管理ＯＳ２０間における異常であるか否かを判定する（Ｓ６９）。具体的には、ＶＭ状態監視部２０４のみが接続異常と判定した場合、ＶＭ状態管理部２０３は、ＶＭＭ１０及び管理ＯＳ２０間における接続異常であると判定する。ＶＭＭ１０及び管理ＯＳ２０間における異常であると判定した場合（Ｓ６９：ＹＥＳ）、ＶＭ状態管理部２０３は、Ｓ７８の処理を実行する。ＶＭＭ１０及び管理ＯＳ２０間における異常の場合は、ＶＭ３０と端末装置２とをリモート接続カード１ｂ経由で接続しても、接続異常を解消することはできないため、ＶＭ状態管理部２０３は、異常原因を端末装置２へ通知するようにしてもよい。
【００８１】
ＶＭＭ１０及び管理ＯＳ２０間における異常でないと判定した場合（Ｓ６９：ＮＯ）、ＶＭ状態管理部２０３は、リモート接続カード１ｂがＶＭ３０に割り当てられているか否かを判定する（Ｓ７０）。リモート接続カード１ｂがＶＭ３０に割り当てられている場合（Ｓ７０：ＹＥＳ）、ＶＭ状態管理部２０３は、Ｓ７２の処理を実行する。リモート接続カード１ｂがＶＭ３０に割り当てられていない場合（Ｓ７０：ＮＯ）、ＶＭ状態管理部２０３は、デバイス割当制御部２０２へリモート接続カード１ｂのＶＭ３０への割り当てを指示する（Ｓ７１）。次に、ＶＭ状態管理部２０３は、割り当てたリモート接続カード１ｂのＩＰアドレスを端末装置２へ送信することで、端末装置２にリモート接続カード１ｂ経由でＶＭ３０に接続するよう指示する（Ｓ７２）。また、ＶＭ状態管理部２０３は、端末装置２に対して、仮想ＮＩＣ３０ａのＩＰアドレスを通知して監視パケットの送信を要求する（Ｓ７３）。
【００８２】
次に、ＶＭ状態管理部２０３は、ＶＭ状態監視部２０４へＶＭ情報の取得を指示し（Ｓ７４）、指示した結果を受信したか否かを判定する（Ｓ７５）。指示結果は、上述したように、ＶＭ情報収集部３０２が取得したＶＭ情報、及び、ＶＭ情報収集部３０２が判定したＩ／Ｆ異常等の異常原因である。指示結果を受信していない場合（Ｓ７５：ＮＯ）、ＶＭ状態管理部２０３は、受信するまで待機する。受信した場合（Ｓ７５：ＹＥＳ）、受信したＶＭ情報をＶＭ管理情報保存部２０６へ格納し（Ｓ７６）、異常内容を端末装置２へ通知する（Ｓ７７）。異常内容が通知された端末装置２では、ユーザに報知するための警告画面が表示される。図１３は、異常をユーザに報知するための画面の一例を示す模式図であり、Ｉ／Ｆ異常の場合に表示される画面の一例である。この場合、ネットワークアダプタ（仮想ＮＩＣ３０ａ）が無効化されたことが原因として表示される。また対処方法として、ネットワークアダプタ（仮想ＮＩＣ３０ａ）を有効化にすることが表示される。
【００８３】
ＶＭ状態管理部２０３は、ＶＭ３０と端末装置２との接続が切断されたか否かを判定する（Ｓ７８）。切断されていない場合（Ｓ７８：ＮＯ）、ＶＭ状態管理部２０３は、Ｓ６３の処理を実行する。切断された場合（Ｓ７８：ＹＥＳ）、ＶＭ状態管理部２０３は、ＶＭ管理情報保存部２０６に格納されたＶＭ情報を削除し（Ｓ７９）、パケット監視を停止する。このとき、ＶＭ状態管理部２０３は、ＶＭ状態監視部２０４にパケット監視の停止を指示する（Ｓ８０）。そして、ＶＭ状態管理部２０３は、本処理を終了する。
【００８４】
以上説明したように、本実施の形態では、ＶＭ３０において、誤ったネットワーク設定を行ったために、ＮＩＣ１ａ経由でＶＭ３０と端末装置２とが接続できなくなった場合、リモート接続カード１ｂ経由でＶＭ３０と端末装置２とを接続する。これにより、端末装置２のユーザは、改めてＶＭ３０においてネットワーク設定を行うことができる。この結果、端末装置２のユーザは、管理者等に接続異常となった原因を排除してもらうよう依頼することなく、自身で原因を排除することができるため、接続異常時の管理者の負担を軽減でき、また、ユーザは管理者に依頼するといった手間を省くことができる。
【００８５】
なお、本実施の形態では、監視パケットとしてicmpを使用するようにしていたが、ＴＣＰ／ＩＰパケット、又は独自のプロトコルを利用するようにしてもよい。ＴＣＰ／ＩＰパケットを利用する場合、ネットワーク接続で使用するＴＣＰポート番号を宛先ポート番号として、端末装置２へ通知することで、ＶＭ３０上に新たにモジュールを設置（割り当て）する必要がなくなる。例えば、ＶＭ３０と端末装置２とを接続するためにＲＤＰ接続を利用する場合、監視パケットの宛先ＴＣＰポート番号は、一般的なデフォルトポート番号の「３３８９」とすることができる。
【００８６】
またパケット監視の例として、ネットワーク接続にＲＤＰ接続を利用する場合、端末装置２は、宛先ＩＰアドレスとしてＶＭ３０の仮想ＮＩＣ３０ａに割り当てられたＩＰアドレス、宛先ポート番号として3389/tcpを指定して、SYNパケットを送信する。ＶＭ３０で動作するゲストＯＳ４０は、SYNパケットを受信した場合、SYNパケットの送信元である端末装置２宛に[SYN,ACK]パケットを応答パケットとして返すため、パケット監視部１０２等では、要求パケットとして[SYN]パケットが通過しているか確認し、応答パケットとして[SYN, ACK]パケットが通過しているかを確認することでパケット監視を行うことが可能となる。
【００８７】
（実施形態２）
以下に、実施の形態２について説明する。実施の形態１ではパケット監視を随時行っているのに対し、本実施の形態では、ＶＭ３０と端末装置２との接続に異常があったときにパケット監視を開始する点で、実施の形態１と相違している。以下、相違点について説明する。
【００８８】
図１４は、端末装置２が有する機能を模式的に示すブロック図である。端末装置２は、ネットワーク接続監視部２０１の機能を有している。ネットワーク接続監視部２０１は、接続されているＶＭ３０へ送信される要求パケットを検出した場合、要求パケットに対するＶＭ３０からの応答パケットを検出する。応答パケットが検出できなかった場合、ネットワーク接続監視部２０１は、サーバ装置１に対して、接続異常を通知する。
【００８９】
サーバ装置１は、実施の形態１と同様の機能を有している。本実施の形態に係るＶＭ状態管理部２０３は、端末装置２のネットワーク接続監視部２０１から接続異常が通知された場合、パケット監視を開始する。
【００９０】
以下に、サーバ装置１及び端末装置２それぞれで実行される処理について説明する。
【００９１】
図１５は、端末装置２のネットワーク接続監視部２０１が行う処理手順を示すフローチャートである。
【００９２】
ネットワーク接続監視部２０１は、端末装置２がＶＭ３０と接続を開始されたか否かを判定する（Ｓ９０）。接続が開始されていない場合（Ｓ９０：ＮＯ）、ネットワーク接続監視部２０１は、本処理を終了する。接続が開始された場合（Ｓ９０：ＹＥＳ）、ネットワーク接続監視部２０１は、パケット監視を開始して、端末装置２からＶＭ３０に送信される要求パケットを検出したかを判定する（Ｓ９１）。要求パケットを検出していない場合（Ｓ９１：ＮＯ）、ネットワーク接続監視部２０１は、Ｓ９６の処理を実行する。
【００９３】
要求パケットを検出した場合（Ｓ９１：ＹＥＳ）、ネットワーク接続監視部２０１は、要求パケットに対するＶＭ３０からの応答パケットを検出したか否かを判定する（Ｓ９２）。応答パケットを検出していない場合（Ｓ９２：ＮＯ）、ネットワーク接続監視部２０１は、一定時間経過したか否かを判定する（Ｓ９３）。一定時間経過していない場合（Ｓ９３：ＮＯ）、ネットワーク接続監視部２０１は、Ｓ９２を実行する。一定時間経過した場合（Ｓ９３：ＹＥＳ）、ネットワーク接続監視部２０１は、ＶＭ３０との接続異常と判定し、サーバ装置１へ接続異常を通知する（Ｓ９４）。応答パケットを検出した場合（Ｓ９２：ＹＥＳ）、ネットワーク接続監視部２０１は、接続は正常であると判定し、サーバ装置１へ通知する（Ｓ９５）。なお、正常である場合は、サーバ装置１へ通知しないようにしてもよい。
【００９４】
ネットワーク接続監視部２０１は、ＶＭ３０と端末装置２との接続が切断されたか否かを判定する（Ｓ９６）。ＶＭ３０と端末装置２との接続が切断されていない場合（Ｓ９６：ＮＯ）、ネットワーク接続監視部２０１は、Ｓ９１の処理を実行し、再びパケット監視を実行する。ＶＭ３０と端末装置２との接続が切断された場合（Ｓ９６：ＹＥＳ）、ネットワーク接続監視部２０１は、本処理を終了する。
【００９５】
図１６及び図１７は、管理ＯＳ２０のＶＭ状態管理部２０３が行う処理手順を示すフローチャートである。
【００９６】
ＶＭ状態管理部２０３は、ＶＭ３０のネットワーク監視部３０１から接続情報を受信したか否かを判定する（Ｓ１０１）。接続情報を受信していない場合（Ｓ１０１：ＮＯ）、ＶＭ状態管理部２０３は、本処理を終了する。接続情報を受信した場合（Ｓ１０１：ＹＥＳ）、ＶＭ状態管理部２０３は、受信した接続情報をＶＭ接続情報保存部２０７に格納する（Ｓ１０２）。
【００９７】
ＶＭ状態管理部２０３は、端末装置２から接続異常通知を受信したか否かを判定する（Ｓ１０３）。接続異常通知を受信していない場合（Ｓ１０３：ＮＯ）、すなわちＶＭ３０と端末装置２との接続が正常である場合、ＶＭ状態管理部２０３は、Ｓ１０３の判定処理を繰り返す。
【００９８】
接続異常通知を受信した場合（Ｓ１０３：ＹＥＳ）、ＶＭ状態管理部２０３は、パケット監視を開始する（Ｓ１０６）。パケット監視の開始した場合、ＶＭ状態管理部２０３は、ＶＭ状態監視部２０４及びネットワーク監視部３０１にパケット監視の開始を指示する。ＶＭ状態管理部２０３は、パケット監視に対する結果を受信したか否かを判定する（Ｓ１０７）。監視結果を受信していない場合（Ｓ１０７：ＮＯ）、ＶＭ状態管理部２０３は、受信するまで待機する。監視結果を受信した場合（Ｓ１０７：ＹＥＳ）、ＶＭ状態管理部２０３は、受信した監視結果が接続異常であるか否かを判定する（Ｓ１０８）。
【００９９】
監視結果が接続異常でない場合（Ｓ１０８：ＮＯ）、ＶＭ状態管理部２０３は、リモート接続カード１ｂがＶＭ３０に割り当てられているか否かを判定する（Ｓ１０９）。リモート接続カード１ｂがＶＭ３０に割り当てられている場合（Ｓ１０９：ＹＥＳ）、ＶＭ状態管理部２０３は、デバイス割当制御部２０２にリモート接続カード１ｂの割り当て解放を指示する（Ｓ１１０）。ＶＭ状態管理部２０３は、ＮＩＣ１ａのＩＰアドレスを端末装置２へ送信することで、端末装置２にＮＩＣ１ａ経由でＶＭ３０に接続するよう指示し（Ｓ１１１）、端末装置２に対して監視パケットの送信停止を要求する（Ｓ１１２）。その後、ＶＭ状態管理部２０３は、Ｓ１２２の処理を実行する。また、リモート接続カード１ｂがＶＭ３０に割り当てられていない場合（Ｓ１０９：ＮＯ）、ＶＭ状態管理部２０３は、Ｓ１２２の処理を実行する。
【０１００】
接続異常である場合（Ｓ１０８：ＹＥＳ）、ＶＭ状態管理部２０３は、ＶＭＭ１０及び管理ＯＳ２０間における異常であるか否かを判定する（Ｓ１１３）。ＶＭＭ１０及び管理ＯＳ２０間における異常であると判定した場合（Ｓ１１３：ＹＥＳ）、ＶＭ状態管理部２０３は、Ｓ１２２の処理を実行する。ＶＭＭ１０及び管理ＯＳ２０間における異常でないと判定した場合（Ｓ１１３：ＮＯ）、ＶＭ状態管理部２０３は、既にリモート接続カード１ｂがＶＭ３０に割り当てられているか否かを判定する（Ｓ１１４）。
【０１０１】
既にリモート接続カード１ｂがＶＭ３０に割り当てられている場合（Ｓ１１４：ＹＥＳ）、ＶＭ状態管理部２０３は、Ｓ１１６の処理を実行する。リモート接続カード１ｂがＶＭ３０に割り当てられていない場合（Ｓ１１４：ＮＯ）、ＶＭ状態管理部２０３は、デバイス割当制御部２０２へ割り当てを指示する（Ｓ１１５）。ＶＭ状態管理部２０３は、リモート接続カード１ｂのＩＰアドレスを端末装置２へ送信することで、端末装置２にリモート接続カード１ｂ経由でＶＭ３０に接続するよう指示する（Ｓ１１６）。そして、ＶＭ状態管理部２０３は、端末装置２に対して、仮想ＮＩＣ１ａのＩＰアドレスを通知して監視パケットの送信を要求する（Ｓ１１７）。
【０１０２】
次に、ＶＭ状態管理部２０３は、ＶＭ状態監視部２０４へＶＭ情報の取得を指示する（Ｓ１１８）。ＶＭ状態管理部２０３は、指示した結果を受信したか否かを判定する（Ｓ１１９）。指示した結果を受信していない場合（Ｓ１１９：ＮＯ）、ＶＭ状態管理部２０３は、指示した結果を受信するまで待機する。指示した結果を受信した場合（Ｓ１１９：ＹＥＳ）、受信したＶＭ情報をＶＭ管理情報保存部２０６へ格納し（Ｓ１２０）、異常内容を端末装置２へ通知する（Ｓ１２１）。
【０１０３】
ＶＭ状態管理部２０３は、ＶＭ３０と端末装置２との接続が切断されたか否かを判定する（Ｓ１２２）。ＶＭ３０と端末装置２との接続が切断されていない場合（Ｓ１２２：ＮＯ）、ＶＭ状態管理部２０３は、Ｓ１０３の処理を実行する。ＶＭ３０と端末装置２との接続が切断された場合（Ｓ１２２：ＹＥＳ）、ＶＭ状態管理部２０３は、ＶＭ管理情報保存部２０６に格納されたＶＭ情報を削除し（Ｓ１２３）、本処理を終了する。
【０１０４】
図１８は、ＶＭ３０のネットワーク監視部３０１が行う処理手順を示すフローチャートである。
【０１０５】
ネットワーク監視部３０１は、ＶＭ３０と端末装置２との接続が確立したか判定する（Ｓ１３０）。確立していない場合（Ｓ１３０：ＮＯ）、ネットワーク監視部３０１は、接続が確立するまで待機する。確立した場合（Ｓ１３０：ＹＥＳ）、ネットワーク監視部３０１は、端末装置２のＩＰアドレス等の接続情報を通知する（Ｓ１３１）。
【０１０６】
次にネットワーク監視部３０１は、ＶＭ状態管理部２０３からパケット監視開始通知を受信したか否かを判定する（Ｓ１３２）。パケット監視開始通知を受信していない場合（Ｓ１３２：ＮＯ）、ネットワーク監視部３０１は、Ｓ１３８の処理を実行する。パケット監視開始通知を受信した場合（Ｓ１３２：ＹＥＳ）、ネットワーク監視部３０１は、端末装置２からの要求パケットを検出したかを判定する（Ｓ１３３）。要求パケットを検出した場合（Ｓ１３３：ＹＥＳ）、ネットワーク監視部３０１は、要求パケットに対するゲストＯＳ４０の応答パケットを検出したか否かを判定する（Ｓ１３４）。
【０１０７】
応答パケットを検出していない場合（Ｓ１３４：ＮＯ）、ネットワーク監視部３０１は、一定時間経過したか否かを判定する（Ｓ１３５）。一定時間経過していない場合（Ｓ１３５：ＮＯ）、ネットワーク監視部３０１は、Ｓ１３４を実行する。一定時間経過した場合（Ｓ１３５：ＹＥＳ）、ネットワーク監視部３０１は、接続異常と判定し、管理ＯＳ２０のＶＭ状態管理部２０３へ接続異常を通知する（Ｓ１３６）。なお、要求パケットを検出していない場合（Ｓ１３３：ＮＯ）、または、応答パケットを検出した場合（Ｓ１３４：ＹＥＳ）、ネットワーク監視部３０１は、Ｓ１３７の処理を実行する。
【０１０８】
ネットワーク監視部３０１は、ＶＭ状態管理部２０３からパケット監視停止通知を受信したか否かを判定する（Ｓ１３７）。パケット監視停止通知を受信していない場合（Ｓ１３７：ＮＯ）、ネットワーク監視部３０１は、Ｓ１３３の処理を実行する。パケット監視停止通知を受信した場合（Ｓ１３７：ＹＥＳ）、ネットワーク監視部３０１は、ＶＭ環境と端末装置２との接続が切断されたか否かを判定する（Ｓ１３８）。切断されていない場合（Ｓ１３８：ＮＯ）、ネットワーク監視部３０１は、Ｓ１３２の処理を実行する。接続が切断された場合（Ｓ１３８：ＹＥＳ）、ネットワーク監視部３０１は、管理ＯＳ２０へ切断を通知し（Ｓ１３９）、本処理を終了する。
【０１０９】
以上説明したように、本実施の形態では、ＶＭ３０において、誤ったネットワーク設定を行ったために、ＮＩＣ１ａ経由でＶＭ３０と端末装置２とが接続できなくなった場合、リモート接続カード１ｂ経由でＶＭ３０と端末装置２とを接続する。これにより、端末装置２のユーザは、改めてＶＭ３０においてネットワーク設定を行うことができる。この結果、端末装置２のユーザは、管理者等に接続異常となった原因を排除してもらうよう依頼することなく、自身で原因を排除することができるため、接続異常時の管理者の負担を軽減でき、また、ユーザは管理者に依頼するといった手間を省くことができる。
【０１１０】
また本実施の形態では、端末装置２から接続異常が通知された場合に、サーバ装置１においてパケット監視を開始することで、パケット監視のためにサーバ装置１における処理負荷が高くなることを回避することができる。この結果、サーバ装置１のリソースが、パケット監視の処理に占有され、サーバ装置１における他の処理に影響が及ぶことを防ぐことができる。
【０１１１】
なお、本実施の形態では、ネットワーク接続監視部２０１でネットワーク接続異常を検出することでパケット監視を開始するようにしているが、接続異常をサーバ装置１へ通知する場合、ユーザに通知を選択させるようにしてもよい。
【０１１２】
（実施形態３）
以下に、実施の形態３について説明する。本実施の形態では、サーバ装置１は、リモート接続カード１ｂ及びグラフィックカード１ｃを複数備えているものとする。
【０１１３】
本実施の形態では、サーバ装置１は、ＶＭ３０及び端末装置２間の接続異常の場合だけでなく、ユーザからの要求により、リモート接続カード１ｂ経由でＶＭ３０と端末装置２とを接続する。また、本実施の形態では、ＶＭ３０と端末装置２との接続異常の場合、かつ、ＶＭ３０に割り当てることができるリモート接続カード１ｂがない場合、他のＶＭ３０に割り当てられているリモート接続カード１ｂの割り当てを解放する。そして、割り当て解放したリモート接続カード１ｂを、対応するＶＭ３０割り当てる。以下、実施の形態１との相違点について説明する。
【０１１４】
端末装置２では、所定のアプリケーションを実行することで、端末装置２をリモート接続カード１ｂ経由でＶＭ３０へ接続するための画面が表示される。図１９Ａは、リモート接続カード１ｂの使用開始時に端末装置２のモニタに表示する画面の一例を示す図である。図１９Ａに示す画面では、使用可能なデバイス（リモート接続カード１ｂ及びグラフィックカード１ｃ）の一覧が表示される。使用可能なデバイスとは、サーバ装置１において、何れのＶＭ３０に割り当てられていないデバイスである。この画面でユーザがデバイスを選択した場合、端末装置２からサーバ装置１へ、選択したデバイス（デバイス番号）が送信される。図１９Ｂは、リモート接続カード１ｂの使用終了時に端末装置２のモニタに表示する画面の一例を示す図である。図１９Ｂに示す画面では、使用中のデバイス（リモート接続カード１ｂ及びグラフィックカード１ｃ）が表示され、終了させるか否かをユーザに選択させるボタンが表示される。終了が選択された場合、端末装置２は、サーバ装置１へデバイスの使用終了を通知する。
【０１１５】
以下に、サーバ装置１で実現される機能について説明する。図２０は、サーバ装置１が有する機能を示すブロック図である。
【０１１６】
サーバ装置１は、実施の形態１で説明した機能に加え、利用管理部２０８の機能をさらに有している。利用管理部２０８は、管理ＯＳ２０上で動作し、何れのＶＭ３０に割り当てられていないデバイス（リモート接続カード１ｂ及びグラフィックカード１ｃ）の一覧を取得する。また利用管理部２０８は、端末装置２からリモート接続カード１ｂの使用要求を受け付けた場合、端末装置２に図１９Ａの画面情報をパケット送信する。さらに利用管理部２０８は、端末装置２において選択されたデバイスを受信した場合、そのデバイスについて、ＶＭ状態管理部２０３にＶＭ３０への割り当てを指示する。
【０１１７】
本実施の形態に係るＶＭ状態管理部２０３は、デバイス割当情報保存部２０５に格納されたデバイス情報から、何れのＶＭ３０に割り当てられていないデバイスを取得し、利用管理部２０８へ通知する。またＶＭ状態管理部２０３は、利用管理部２０８の指示により、デバイス割当制御部２０２へリモート接続カード等のデバイスの割り当てを指示する。割り当て完了後、ＶＭ状態管理部２０３は、デバイスを割り当てたＶＭ３０におけるリソース（例えばGraphics Processing Unit：ＧＰＵ）の使用率（稼働率）の取得を、ＶＭ状態監視部２０４を介してＶＭ情報収集部３０２へ指示する。リソースの使用率は、例えば一定時間内の平均値である。
【０１１８】
ＶＭ状態管理部２０３は、ＶＭ３０と端末装置２とをリモート接続カード経由で接続する際に、割り当てられていないリモート接続カードがない場合、リソースの使用率に基づいて、一時的に割り当て解放するリモート接続カードを特定する。具体的には、リソースの使用率が最も低いＶＭ３０に割り当てられたリモート接続カードの割り当てを解放すると決定する。又は、リモート接続カードを長時間占有している利用者のＶＭ３０から解放すると決定する。そして、ＶＭ状態管理部２０３は、デバイス割当制御部２０２に対応するリモート接続カードの割り当て解放を指示する。
【０１１９】
以下に、サーバ装置１で実行される処理について説明する。なお、ＶＭ３０と端末装置２との接続に異常があり、リモート接続カード１ｂ経由で接続する場合の処理は、実施の形態１と同様であるため説明は省略する。
【０１２０】
図２１は、リモート接続カード１ｂの使用を開始する際に、サーバ装置１で実行される処理手順を示すフローチャートである。図２１では、利用管理部２０８及びＶＭ状態管理部２０３が行う処理手順を示している。
【０１２１】
利用管理部２０８は、利用者がデバイス（リモート接続カード１ｂ及びグラフィックカード１ｃ）の利用申請のためのアプリケーションを端末装置２上で実行した場合、デバイスの使用状況の取得をＶＭ状態管理部２０３へ指示する（Ｓ１５０）。指示されたＶＭ状態管理部２０３は、デバイス割当情報保存部２０５から、ＶＭ３０に割り当てられていないデバイスを取得し、利用管理部２０８へ通知する（Ｓ１５１）。
【０１２２】
利用管理部２０８は、端末装置２のモニタに、デバイス選択画面（図１９Ａ参照）を表示させる（Ｓ１５２）。デバイス選択画面には、Ｓ１５１で取得されたデバイスの一覧が表示される。利用管理部２０８は、デバイス選択画面において、デバイスが選択されたか否かを判定する（Ｓ１５３）。選択されていない場合（Ｓ１５３：ＮＯ）、利用管理部２０８は、選択されるまで待機する。選択された場合（Ｓ１５３：ＹＥＳ）、利用管理部２０８は、選択されたデバイスの割り当てをＶＭ状態管理部２０３へ指示する（Ｓ１５４）。
【０１２３】
ＶＭ状態管理部２０３は、デバイス割当制御部２０２にデバイスの割り当てを指示し（Ｓ１５５）、デバイスを割り当てたＶＭ３０のＶＭ情報収集部３０２へリソース使用率の取得開始を指示する（Ｓ１５６）。指示されたＶＭ情報収集部３０２は、定期的にリソースの使用率を取得する。ＶＭ状態管理部２０３は、割り当てたリモート接続カード１ｂのＩＰアドレスを端末装置２へ送信することにより、リモート接続カード１ｂ経由でＶＭ３０に接続するよう端末装置２に指示する（Ｓ１５７）。その後、利用管理部２０８は、端末装置２にデバイス割り当てが完了したことを通知し（Ｓ１５８）、本処理は終了する。
【０１２４】
図２２は、リモート接続カード１ｂの使用を終了する際に、サーバ装置１で実行される処理手順を示すフローチャートである。図２２では、利用管理部２０８及びＶＭ状態管理部２０３が行う処理手順を示している。
【０１２５】
利用管理部２０８は、利用者がデバイス（リモート接続カード１ｂ及びグラフィックカード１ｃ）の使用終了のためのアプリケーションを端末装置２上で実行した場合、端末装置２が使用するデバイスの取得をＶＭ状態管理部２０３へ指示する（Ｓ１６０）。指示されたＶＭ状態管理部２０３は、デバイス割当情報保存部２０５から、端末装置２が使用中のデバイスを取得し、利用管理部２０８へ通知する（Ｓ１６１）。
【０１２６】
利用管理部２０８は、端末装置２のモニタに使用終了画面（図１９Ｂ参照）を表示する（Ｓ１６２）。使用終了画面では、端末装置２が使用中のデバイスが表示される。利用管理部２０８は、使用終了画面において、使用の終了が選択されたか否かを判定する（Ｓ１６３）。使用の終了が選択されていない場合（Ｓ１６３：ＮＯ）、利用管理部２０８は、選択されるまで待機する。使用の終了が選択された場合（Ｓ１６３：ＹＥＳ）、利用管理部２０８は、デバイスの割り当て解放をＶＭ状態管理部２０３へ指示する（Ｓ１６４）。
【０１２７】
ＶＭ状態管理部２０３は、デバイス割当制御部２０２にデバイスの割り当て解放を指示し（Ｓ１６５）、デバイスを割り当てていたＶＭ３０のＶＭ情報収集部３０２へリソース使用率の取得終了を指示する（Ｓ１６６）。ＶＭ状態管理部２０３は、ＮＩＣ１ａのＩＰアドレスを端末装置２へ通知することで、ＮＩＣ１ａ経由でＶＭ３０に接続するよう、端末装置２に指示する（Ｓ１６７）。その後、利用管理部２０８は、端末装置２にデバイスの割り当て解放が完了したことを通知し（Ｓ１６８）、本処理は終了する。
【０１２８】
図２３は、割り当てられたデバイスを一時的に割り当て解放する際に、サーバ装置１で実行される処理手順を示すフローチャートである。図２３に示す処理は、ＶＭ状態管理部２０３により実行される。
【０１２９】
ＶＭ状態管理部２０３は、ＶＭ３０と端末装置２との間に接続異常が発生したために、リモート接続カード１ｂをＶＭ３０に割り当てる必要が生じたか否かを判定する（Ｓ１７０）。割り当てる必要が生じていない場合（Ｓ１７０：ＮＯ）、ＶＭ状態管理部２０３は、本処理を終了する。割り当てる必要が生じた場合（Ｓ１７０：ＹＥＳ）、ＶＭ状態管理部２０３は、デバイス割当情報保存部２０５に格納されたデバイス情報から、デバイスの使用状況を取得する（Ｓ１７１）。
【０１３０】
次に、取得した使用状況から、ＶＭ状態管理部２０３は、未使用、すなわち、何れのＶＭ３０に割り当てられていないリモート接続カード１ｂがあるか否かを判定する（Ｓ１７２）。未使用のリモート接続カード１ｂがある場合（Ｓ１７２：ＹＥＳ）、ＶＭ状態管理部２０３は、未使用のリモート接続カード１ｂを、対応するＶＭ３０に割り当てる（Ｓ１７７）。具体的には、ＶＭ状態管理部２０３は、デバイス割当制御部２０２へ割り当てを指示する。そして、ＶＭ状態管理部２０３は、割り当てたリモート接続カード１ｂのＩＰアドレスを端末装置２へ送信することにより、リモート接続カード１ｂ経由でＶＭ３０に接続するよう端末装置２に指示する（Ｓ１７８）。その後、ＶＭ状態管理部２０３は、本処理を終了する。
【０１３１】
未使用のリモート接続カード１ｂがない場合（Ｓ１７２：ＮＯ）、ＶＭ状態管理部２０３は、リモート接続カード１ｂが割り当てられているＶＭ３０から、リソースの使用率を取得する（Ｓ１７３）。リモート接続カード１ｂが割り当てられているＶＭ３０は、リソースの使用率の取得を定期的に行っている。ＶＭ状態管理部２０３は、取得したリソースの使用率のなかから、最低の使用率を取得したＶＭ３０を特定する（Ｓ１７４）。
【０１３２】
ＶＭ状態管理部２０３は、特定したＶＭ３０に割り当てられているリモート接続カード１ｂの割り当て解放をデバイス割当制御部２０２へ指示する（Ｓ１７５）。このとき、ＶＭ状態管理部２０３は、解放するリモート接続カード１ｂを使用していた端末装置２に対して、一時的に割り当てを解放することを通知する。次に、ＶＭ状態管理部２０３は、特定したＶＭ３０に対して、リソースの使用率の取得終了を指示する（Ｓ１７６）。そして、ＶＭ状態管理部２０３は、リモート接続カード１ｂを割り当てる必要があるＶＭ３０に、解放したリモート接続カード１ｂを割り当てる（Ｓ１７７）。次に、ＶＭ状態管理部２０３は、割り当てたリモート接続カード１ｂのＩＰアドレスを端末装置２へ送信することにより、リモート接続カード１ｂ経由でＶＭ３０に接続するよう端末装置２に指示する（Ｓ１７８）。その後、ＶＭ状態管理部２０３は、本処理を終了する。
【０１３３】
以上説明したように、本実施の形態では、接続異常時以外でもリモート接続カード１ｂを使用することができる。ＮＩＣ１ａ経由でＶＭ３０と端末装置２とを接続している場合、サーバ装置１のリソースの使用率が高くなったときに、ＶＭ３０と端末装置２との通信速度が低下する場合がある。この場合に、リモート接続カード１ｂ経由でＶＭ３０と端末装置２とを直接接続することで、リソースの使用率が高くなったことによる影響を回避することができる。
【０１３４】
また、本実施の形態では、未使用のリモート接続カード１ｂがない場合には、リソースの使用率が最低のＶＭ３０に割り当てられているリモート接続カード１ｂの割り当てを解放する。リソースの使用率、すなわち稼働率が低いＶＭ３０からリモート接続カード１ｂの割り当てを解放することで、強制的にリモート接続カード１ｂの割り当て解放を行うことの影響を最小限に抑えることができる。
【０１３５】
なお、本実施の形態では、リソースの使用率が最低のＶＭ３０に対するリモート接続カード１ｂの割り当てを解放するようにしているが、これに限定されることはない。例えば、上述したように、リモート接続カードを長時間占有している利用者のＶＭ３０を特定し、割り当てを解放して、他のＶＭに割り当てるようにしてもよい。
【０１３６】
（実施形態４）
以下に、実施の形態４について説明する。本実施の形態では、ＶＭ３０のゲストＯＳ４０でコンピュータウィルスが検出された場合に、リモート接続カード１ｂ経由でＶＭ３０と端末装置２とを接続するようになっている。以下、実施の形態１との相違点について説明する。なお、ＶＭ３０と端末装置２との接続に異常があり、リモート接続カード１ｂ経由で接続する場合の処理は、実施の形態１と同様である。
【０１３７】
図２４は、サーバ装置１が有する機能を示すブロック図である。
【０１３８】
サーバ装置１は、実施の形態１で説明した機能に加え、駆除ツール収集部２０９及び駆除ツール保存部２１０の機能をさらに有している。駆除ツール収集部２０９は、管理ＯＳ２０上で動作し、コンピュータウィルスを駆除するための駆除ツール、又はウィルス定義ファイルを定期的に外部から取得し、駆除ツール保存部２１０に格納する。駆除ツール保存部２１０に格納される情報は、駆除ツール及びウィルス定義ファイルを識別する識別情報、駆除ツール等が更新された日時、駆除ツール等を保存しているファイルパス等である。
【０１３９】
本実施の形態に係るＶＭ状態管理部２０３は、ＶＭ状態監視部２０４からウィルス検出が通知された場合、端末装置２に対してウィルス検出を通知し、ウィルス対策手順を通知する。通知後、ＶＭ状態管理部２０３は、リモート接続カード１ｂを、ウィルスが検出されたＶＭ３０に割り当て、駆除ツール等を駆除ツール保存部２１０から取得し、ＶＭ状態監視部２０４を介してＶＭ３０へ転送する。ＶＭ状態監視部２０４からウィルス対策完了が通知された場合、ＶＭ状態管理部２０３は、ＶＭ３０に割り当てていたリモート接続カード１ｂの割り当てを解放し、端末装置２にＮＩＣ１ａ経由での接続を指示する。
【０１４０】
本実施の形態に係るＶＭ状態監視部２０４は、ＶＭ情報収集部３０２からウィルス検出が通知された場合、ＶＭ状態管理部２０３に通知する。またＶＭ状態監視部２０４は、ＶＭ情報収集部３０２からウィルス対策（駆除）の完了が通知された場合、ＶＭ状態管理部２０３に通知する。ＶＭ状態監視部２０４は、ＶＭ状態管理部２０３から駆除ツール等を受信し、ＶＭ３０に転送する。
【０１４１】
本実施の形態に係るＶＭ情報収集部３０２は、ゲストＯＳ４０で実行されるアプリケーションによりウィルスが検出された場合、ネットワークアダプタ（仮想ＮＩＣ３０ａ）を無効化し、ＶＭ状態監視部２０４にウィルス検出を通知する。またＶＭ情報収集部３０２は、ウィルスが検出されなくなった場合、無効化していたネットワークアダプタを有効化し、ＶＭ状態監視部２０４に対策完了を通知する。
【０１４２】
図２５は、ＶＭ３０のＶＭ情報収集部３０２が行う処理手順を示すフローチャートである。
【０１４３】
ＶＭ情報収集部３０２は、ゲストＯＳ４０においてウィルスが検出されたか否かを判定する（Ｓ１８０）。ウィルス検出は、例えばゲストＯＳ４０で実行される特定のアプリケーションにより行われる。ウィルスが検出されていない場合（Ｓ１８０：ＮＯ）、ＶＭ情報収集部３０２は、本処理を終了する。ウィルスが検出された場合（Ｓ１８０：ＹＥＳ）、ＶＭ情報収集部３０２は、ＶＭ３０が使用する全ネットワークアダプタ、例えば仮想ＮＩＣ３０ａを無効化する（Ｓ１８１）。
【０１４４】
次に、ＶＭ情報収集部３０２は、ＶＭ状態監視部２０４を介してＶＭ状態管理部２０３へウィルス検出を通知し（Ｓ１８２）、その結果、ＶＭ状態管理部２０３から送信される駆除ツール及びウィルス定義ファイルを取得する（Ｓ１８３）。
【０１４５】
ＶＭ情報収集部３０２は、取得した駆除ツール等により、ウィルス駆除が完了したか否かを判定する（Ｓ１８４）。ウィルス駆除は、端末装置２のユーザにより行われてもよいし、自動で行われてもよい。ウィルス駆除が完了していない場合（Ｓ１８４：ＮＯ）、ＶＭ情報収集部３０２は、ウィルス駆除が完了するまで待機する。ウィルス駆除が完了した場合（Ｓ１８４：ＹＥＳ）、ＶＭ情報収集部３０２は、無効化したネットワークアダプタ、例えば仮想ＮＩＣ３０ａを有効化する（Ｓ１８５）。そして、ＶＭ情報収集部３０２は、ウィルス駆除が完了したことを、ＶＭ状態監視部２０４を介してＶＭ状態管理部２０３へ通知する（Ｓ１８６）。その後、ＶＭ情報収集部３０２は、本処理を終了する。
【０１４６】
図２６は、管理ＯＳ２０のＶＭ状態管理部２０３が実行する処理手順を示すフローチャートである。
【０１４７】
ＶＭ状態管理部２０３は、ＶＭ情報収集部３０２からウィルス検出通知を受信したか否かを判定する（Ｓ１９０）。ウィルス検出通知を受信していない場合（Ｓ１９０：ＮＯ）、ＶＭ状態管理部２０３は、本処理を終了する。ウィルス検出通知を受信した場合（Ｓ１９０：ＹＥＳ）、ＶＭ状態管理部２０３は、ウィルスが検出されたＶＭ３０に対応する端末装置２に対してウィルス検出を通知する（Ｓ１９１）。
【０１４８】
ＶＭ状態管理部２０３は、ウィルスが検出されたＶＭ３０へのリモート接続カード１ｂの割り当てを、デバイス割当制御部２０２へ指示する（Ｓ１９２）ＶＭ状態管理部２０３は、割り当てたリモート接続カード１ｂのＩＰアドレスを端末装置２へ通知することで、リモート接続カード１ｂ経由でＶＭ３０へ接続するよう端末装置２に指示する（Ｓ１９３）。
【０１４９】
ＶＭ状態管理部２０３は、駆除ツール保存部２１０より駆除ツール及びウィルス定義ファイルを取得し、ＶＭ状態監視部２０４を介してＶＭ３０へ送信する（Ｓ１９４）。ＶＭ状態管理部２０３は、ＶＭ情報収集部３０２からウィルス駆除完了通知を受信したか否かを判定する（Ｓ１９５）。ウィルス駆除完了通知を受信していない場合（Ｓ１９５：ＮＯ）、ＶＭ状態管理部２０３は、ウィルスが駆除されるまで待機する。ウィルス駆除完了通知を受信した場合（Ｓ１９５：ＹＥＳ）、ＶＭ状態管理部２０３は、割り当てていたリモート接続カード１ｂの割り当ての解放を、デバイス割当制御部２０２へ指示する（Ｓ１９６）。ＶＭ状態管理部２０３は、ＮＩＣ１ａのＩＰアドレスを端末装置２へ通知することで、ＮＩＣ１ａ経由でＶＭ３０へ接続するよう端末装置２に指示する（Ｓ１９７）。そして、ＶＭ状態管理部２０３は、本処理を終了する。
【０１５０】
図２７は、管理ＯＳ２０の駆除ツール収集部２０９が実行する処理手順を示すフローチャートである。
【０１５１】
駆除ツール収集部２０９は、駆除ツール保存部２１０に格納される駆除ツール等の更新日を確認し（Ｓ２０１）、更新が必要か否かを判定する（Ｓ２０２）。具体的には、駆除ツール収集部２０９は、外部のサーバ装置等にアクセスして、取得した更新日以降に新たなデータがある場合、更新が必要と判定する。更新が必要でない場合（Ｓ２０２：ＮＯ）、駆除ツール収集部２０９は、本処理を終了する。更新が必要と判定した場合（Ｓ２０２：ＹＥＳ）、駆除ツール収集部２０９は、ダウンロード等して駆除ツール保存部２１０に格納された駆除ツール等を更新し（Ｓ２０３）、本処理を終了する。
【０１５２】
以上説明したように、本実施の形態では、ウィルスが検出された場合、リモート接続カード１ｂ経由でＶＭ３０と端末装置２とを直接接続する。これにより、サーバ装置１のＶＭＭ１０又は管理ＯＳ２０等に、ウィルスが影響を及ぼすおそれを回避することができる。また、ウィルス検出時に、ＶＭ３０と端末装置２とを完全に切断するのではなく、リモート接続カード１ｂ経由で接続することで、端末装置２のユーザが、ウィルスの駆除又は対策を行うことができる。
【０１５３】
以上、本発明の実施の形態について、具体的に説明したが、各構成及び動作等は適宜変更可能であって、上述の実施形態に限定されることはない。
【０１５４】
以下に、上述の実施形態を含む実施形態に関し、更に付記を開示する。
【０１５５】
（付記１）
外部装置から利用可能な仮想計算機が動作する情報処理装置において、
外部装置が接続される第１及び第２入出力部と、
前記第１入出力部及び前記仮想計算機を論理的に接続する第１接続手段と、
該第１接続手段が接続した場合、前記外部装置が送信するデータの送信先を前記第１入出力部に設定する手段と、
前記第１入出力部と前記仮想計算機との接続に異常があるか否かを判定する第１判定手段と、
前記第１判定手段が前記第１入出力部と前記仮想計算機との接続に異常があると判定した場合、前記第２入出力部及び前記仮想計算機を論理的に接続する第２接続手段と、
該第２接続手段が接続された場合、前記外部装置が送信するデータの送信先を前記第２入出力部に切り替える切替手段と
を備える情報処理装置。
【０１５６】
（付記２）
前記切替手段により前記外部装置が送信するデータの送信先を前記第２入出力部に切り替えた場合、前記第１入出力部及び前記仮想計算機の接続の異常が解消されたか否かを判定する第２判定手段
をさらに備え、
前記切替手段は、
前記第２判定手段が、前記第１入出力部と前記仮想計算機との接続の異常が解消されたと判定した場合、前記外部装置が送信するデータの送信先を前記第１入出力部に切り替えるようにしてある
付記１に記載の情報処理装置。
【０１５７】
（付記３）
前記第２判定手段は、
前記第１入出力部に対して信号を送信するよう、前記外部装置に指示する指示手段
を有し、
前記仮想計算機から、前記信号に応答する信号が出力された場合、前記第１入出力部と前記仮想計算機との接続の異常が解消されたと判定するようにしてある
付記２に記載の情報処理装置。
【０１５８】
（付記４）
前記指示手段は、
前記外部装置にＩＣＭＰパケットデータを送信するよう指示するようにしてある
付記３に記載の情報処理装置。
【０１５９】
（付記５）
前記指示手段は、
前記外部装置にＴＣＰパケットデータを送信するよう指示するようにしてある
付記３に記載の情報処理装置。
【０１６０】
（付記６）
前記第１判定手段は、
前記外部装置からの信号を受信した場合、判定を行うようにしてある
付記１から５の何れか一つに記載の情報処理装置。
【０１６１】
（付記７）
前記第２入出力部の使用要求を受け付ける手段と、
使用要求を受け付けた場合、前記第２入出力部及び前記仮想計算機を論理的に接続する手段と
をさらに備える付記１から６の何れか一つに記載の情報処理装置。
【０１６２】
（付記８）
前記仮想計算機以外の他の仮想計算機が動作するようにしてあり、
前記第１判定手段が前記仮想計算機の接続に異常があると判定した場合、前記第２入出力部が前記他の仮想計算機と論理的に接続されているか否かを判定する第３判定手段と、
前記第２入出力部が前記他の仮想計算機と論理的に接続されていると判定した場合、前記他の仮想計算機の稼働率を取得する稼働率取得手段と、
取得した稼働率に基づいて、前記第２入出力部及び前記他の仮想計算機の接続を切断するか否かを判定する切断判定手段と
をさらに備え、
前記第２接続手段は、
前記第２入出力部及び前記他の仮想計算機の接続を切断すると判定した場合、前記第２入出力部及び前記仮想計算機を論理的に接続するようにしてある
付記１から７の何れか一つに記載の情報処理装置。
【０１６３】
（付記９）
前記他の仮想計算機が複数動作し、かつ、前記第２入出力部を複数備えている場合、
前記第３判定手段は、
前記第２入出力部の全てが、前記他の仮想計算機と論理的に接続されているか否かを判定し、
前記稼働率取得手段は、
前記第２入出力部が接続されている他の仮想計算機それぞれの稼働率を取得し、
前記切断判定手段は、
前記稼働率取得手段が取得した最低の稼働率に対応する他の仮想計算機、及び前記第２入出力部の接続を切断すると判定するようにしてある
付記８に記載の情報処理装置。
【０１６４】
（付記１０）
前記仮想計算機にウィルスが検出されたか否かを判定する手段と、
検出された場合、前記第１入出力部及び前記仮想計算機の接続を切断する手段と
をさらに備え、
前記第２接続手段は、
接続が切断された場合、前記第２入出力部及び前記仮想計算機を論理的に接続するようにしてある
付記１から９の何れか一つに記載の情報処理装置。
【０１６５】
（付記１１）
前記第２接続手段が前記第２入出力部及び前記仮想計算機を接続した場合、前記仮想計算機のウィルスが駆除されたか否かを判定する手段と、
駆除されたと判定した場合、前記第１接続手段に、前記第１入出力部及び前記仮想計算機を接続させる手段と
をさらに備え、
前記切替手段は、
前記第１接続手段に接続させた場合、前記外部装置が送信するデータの送信先を前記第１入出力部に切り替えるようにしてある
付記１０に記載の情報処理装置。
【０１６６】
（付記１２）
外部装置が接続される第１及び第２入出力部を備える情報処理装置で動作する仮想計算機と、前記外部装置とを接続する仮想計算機接続方法において、
前記第１入出力部及び前記仮想計算機を論理的に接続し、
前記第１入出力部及び前記仮想計算機を接続した場合、前記外部装置が送信するデータの送信先を前記第１入出力部に設定し、
前記第１入出力部と前記仮想計算機との接続に異常があるか否かを判定し、
前記第１入出力部と前記仮想計算機との接続に異常があると判定した場合、前記第２入出力部及び前記仮想計算機を論理的に接続し、
前記第２入出力部及び前記仮想計算機を接続した場合、前記外部装置が送信するデータの送信先を前記第２入出力部に切り替える
仮想計算機接続方法。
【０１６７】
（付記１３）
外部装置が接続される第１及び第２入出力部を備え、仮想計算機が動作するコンピュータで実行されるプログラムにおいて、
コンピュータを、
前記第１入出力部及び前記仮想計算機を論理的に接続する第１接続手段、
該第１接続手段が接続した場合、前記外部装置が送信するデータの送信先を前記第１入出力部に設定する手段、
前記第１入出力部と前記仮想計算機との接続に異常があるか否かを判定する第１判定手段、
前記第１判定手段が、前記第１入出力部と前記仮想計算機との接続に異常があると判定した場合、前記第２入出力部及び前記仮想計算機を論理的に接続する第２接続手段、及び、
該第２接続手段が接続した場合、前記外部装置が送信するデータの送信先を前記第２入出力部に切り替える切替手段
として機能させるプログラム。
【０１６８】
（付記１４）
付記１３に記載のプログラムが記録されており、コンピュータでの読取り可能な記録媒体。
【符号の説明】
【０１６９】
１  サーバ装置（情報処理装置）
１ａ  ＮＩＣ（第１入出力部）
１ｂ  リモート接続カード（第２入出力部）
１ｃ  グラフィックカード
２  端末装置
１０  ＶＭＭ
２０  管理ＯＳ
３０  ＶＭ
３０ａ  仮想ＮＩＣ
【図１】
0005477047.tif 000002
【図２】
0005477047.tif 000003
【図３】
0005477047.tif 000004
【図４】
0005477047.tif 000005
【図５】
0005477047.tif 000006
【図６】
0005477047.tif 000007
【図７】
0005477047.tif 000008
【図８】
0005477047.tif 000009
【図９】
0005477047.tif 000010
【図１０】
0005477047.tif 000011
【図１１】
0005477047.tif 000012
【図１２】
0005477047.tif 000013
【図１３】
0005477047.tif 000014
【図１４】
0005477047.tif 000015
【図１５】
0005477047.tif 000016
【図１６】
0005477047.tif 000017
【図１７】
0005477047.tif 000018
【図１８】
0005477047.tif 000019
【図１９Ａ】
0005477047.tif 000020
【図１９Ｂ】
0005477047.tif 000021
【図２０】
0005477047.tif 000022
【図２１】
0005477047.tif 000023
【図２２】
0005477047.tif 000024
【図２３】
0005477047.tif 000025
【図２４】
0005477047.tif 000026
【図２５】
0005477047.tif 000027
【図２６】
0005477047.tif 000028
【図２７】
0005477047.tif 000029