JP5477047B2 - 情報処理装置、仮想計算機接続方法、プログラム及び記録媒体 - Google Patents

情報処理装置、仮想計算機接続方法、プログラム及び記録媒体 Download PDF

Info

Publication number
JP5477047B2
JP5477047B2 JP2010040708A JP2010040708A JP5477047B2 JP 5477047 B2 JP5477047 B2 JP 5477047B2 JP 2010040708 A JP2010040708 A JP 2010040708A JP 2010040708 A JP2010040708 A JP 2010040708A JP 5477047 B2 JP5477047 B2 JP 5477047B2
Authority
JP
Japan
Prior art keywords
input
unit
connection
output unit
terminal device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2010040708A
Other languages
English (en)
Other versions
JP2011175582A (ja
Inventor
浩一 山崎
一樹 松井
敬史 大野
亮 宮本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010040708A priority Critical patent/JP5477047B2/ja
Priority to US13/032,164 priority patent/US20110209148A1/en
Publication of JP2011175582A publication Critical patent/JP2011175582A/ja
Application granted granted Critical
Publication of JP5477047B2 publication Critical patent/JP5477047B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0712Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2005Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2012Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant and using different communication protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、動作する仮想計算機と外部装置とを接続して、外部装置から仮想計算機を利用できるようにする情報処理装置、仮想計算機接続方法、プログラム及び記録媒体に関する。
1台のサーバ装置上で複数の仮想的なコンピュータ(以下、仮想マシン(VM:Virtual Machine)という)を動作させ、ネットワークを介してサーバ装置に接続される複数の端末装置それぞれにVMを割り当てるシステムがある。このシステムでは、サーバ装置で動作する各VM上でOperating System(OS)が稼働しており、各端末装置のユーザは、自身の端末装置から、割り当てられたVMのOSを利用することができる。すなわち、サーバ装置は、各端末装置のデスクトップコンピュータとして利用される。
各端末装置からは、VMのOSを利用するだけでなく、VM上の環境設定、例えばネットワーク又はファイアウォールの設定等を自由に変更することができる。このため、誤った設定をした場合、端末装置からVMへの接続ができなくなるといった問題が発生する。この場合、端末装置のユーザは、サーバ装置の管理者等に依頼して、ネットワーク又はファイアウォールの設定等、接続できなくなった要因を取り除いてもらう必要がある。このため、ユーザには管理者に依頼するといった手間を要し、管理者は復旧作業を行うといった負担がかかるという問題も発生する。そこで、VMのOSで発生した障害の情報を集約することで、障害の監視を容易に行うことが可能な技術が提案されている(例えば、特許文献1参照)。
特開2009−151509号公報
しかしながら、特許文献1のように、発生した障害の情報を集約することで、ユーザの手間は省くことはできても、結果としてサーバ装置の管理者等が問題を解決することとなるため、管理者の負担を取り除くことはできない。
本発明はかかる事情に鑑みてなされたものであり、その目的とするところは、一の経路に異常が生じた場合であっても、他の経路により外部装置と仮想計算機とを接続して、仮想計算機を利用できるようにする情報処理装置、仮想計算機接続方法、プログラム及び記録媒体を提供することにある。
本願に開示する情報処理装置は、外部装置から利用可能な複数の仮想計算機が動作する情報処理装置において、外部装置が接続される第1及び第2入出力部と、前記第1入出力部及び前記複数の仮想計算機のうちの一の仮想計算機を論理的に接続する第1接続手段と、該第1接続手段が接続した場合、前記外部装置が送信するデータの送信先を前記第1入出力部に設定する手段と、前記第1入出力部と前記一の仮想計算機との接続に異常があるか否かを判定する第1判定手段と、前記第1判定手段が前記一の仮想計算機の接続に異常があると判定した場合、前記第2入出力部が他の仮想計算機と論理的に接続されているか否かを判定する第2判定手段と、前記第2入出力部が前記他の仮想計算機と論理的に接続されていると判定した場合、前記他の仮想計算機の稼働率を取得する稼働率取得手段と、取得した稼働率に基づいて、前記第2入出力部及び前記他の仮想計算機の接続を切断するか否かを判定する切断判定手段と、前記第2入出力部及び前記他の仮想計算機の接続を切断すると判定した場合、前記第2入出力部及び前記一の仮想計算機を論理的に接続する第2接続手段と、該第2接続手段が接続された場合、前記外部装置が送信するデータの送信先を前記第2入出力部に切り替える切替手段とを備える。
本願に開示する情報処理装置の一観点によれば、第1入出力部を介して、外部装置と仮想計算機とが、第1入出力部を介して接続できない場合であっても、第2入出力部を介してそれぞれを接続することができる。これにより、例えば、外部装置のユーザが行った仮想計算機における設定が原因で、第1入出力部を介して接続できなくなった場合、ユーザは、管理者等に接続異常となった原因を排除してもらうよう依頼することなく、自身で原因を排除することができる。その結果、接続異常時の管理者の負担を軽減でき、また、ユーザは管理者に依頼するといった手間を省くことができる。
実施の形態に係るサーバ装置を有する計算機システムを模式的に示す図である。 サーバ装置のVMと端末装置との接続を説明するための模式図である。 サーバ装置及び端末装置のハードウェア構成を示すブロック図である。 サーバ装置が有する機能を示すブロック図である。 VMの利用開始及び終了時におけるサーバ装置が行う処理手順を示すフローチャートである。 VMのネットワーク監視部が行う処理手順を示すフローチャートである。 VMのVM情報収集部が行う処理手順を示すフローチャートである。 VMMのパケット監視部が行う処理手順を示すフローチャートである。 管理OSのVM状態監視部が行う処理手順を示すフローチャートである。 管理OSのVM状態監視部が行う処理手順を示すフローチャートである。 管理OSのVM状態管理部が行う処理手順を示すフローチャートである。 管理OSのVM状態管理部が行う処理手順を示すフローチャートである。 異常をユーザに報知するための画面の一例を示す模式図である。 端末装置が有する機能を模式的に示すブロック図である。 端末装置のネットワーク接続監視部が行う処理手順を示すフローチャートである。 管理OSのVM状態管理部が行う処理手順を示すフローチャートである。 管理OSのVM状態管理部が行う処理手順を示すフローチャートである。 VMのネットワーク監視部が行う処理手順を示すフローチャートである。 リモート接続カードの使用開始時に端末装置のモニタに表示する画面の一例を示す図である。 リモート接続カードの使用終了時に端末装置のモニタに表示する画面の一例を示す図である。 サーバ装置が有する機能を示すブロック図である。 リモート接続カードの使用を開始する際に、サーバ装置で実行される処理手順を示すフローチャートである。 リモート接続カードの使用を終了する際に、サーバ装置で実行される処理手順を示すフローチャートである。 割り当てられたデバイスを一時的に割り当て解放する際に、サーバ装置で実行される処理手順を示すフローチャートである。 サーバ装置が有する機能を示すブロック図である。 VMのVM情報収集部が行う処理手順を示すフローチャートである。 管理OSのVM状態管理部が実行する処理手順を示すフローチャートである。 管理OSの駆除ツール収集部が実行する処理手順を示すフローチャートである。
以下に、本願に開示する情報処理装置、仮想計算機接続方法、プログラム及び記録媒体について、各実施の形態を示す図面に基づいて詳述する。以下では、本願に開示する情報処理装置をサーバ装置として説明するが、キーボード及びモニタなどを備えたパーソナルコンピュータ(以下、PCという)であってもよい。
(実施形態1)
図1は、実施の形態に係るサーバ装置を有する計算機システムを模式的に示す図である。
サーバ装置1は、Local Area Network(LAN)又はWide Area Network(WAN)等のネットワークNを介して複数の端末装置2a,2b,2cが接続されている。本実施の形態では、端末装置2a,2b,2cは、キーボード、マウス及びモニタ等を備えたPCとするが、モニタに接続するセットトップボックス(STB:Set Top Box)、Personal Digital Assistant(PDA)又は携帯電話機等であってもよい。また、ネットワークNの種類は適宜変更可能であり、サーバ装置1と端末装置2a,2b,2cとの接続は、有線又は無線の何れで接続されていてもよい。
サーバ装置1は、Virtual Machine Monitor(VMM)10、及び管理OS20が実行可能としてあり、VMM10が実行することで、複数(図中では三つ)のVM30a,30b,30cが動作可能となっている。VMM10は、例えばCentral Processing Unit(CPU)及びRandom Access Memory(RAM)等、サーバ装置1のリソースを論理的に複数に分割して、管理OS20からの指示に従ってVM30a,30b,30cを起動し、分割したリソースを起動したVM30a,30b,30cに割り当てる。管理OS20は、サーバ装置1を管理するためのOSであって、VMM10に対して、VM30a,30b,30cの起動及び停止を指示する。VM30a,30b,30cは、独自にOS及びアプリケーションを物理コンピュータと同じように実行させる仮想的なコンピュータである。
以下、VM30a,30b,30cで実行されるOSを、ゲストOSという。また、VM30aは端末装置2aが、VM30bは端末装置2bが,VM30cは端末装置2cがそれぞれ割り当てられているものとする。またVM30a,30b,30cをVM30といい、端末装置2a,2b,2cを端末装置2という。
サーバ装置1は、端末装置2から接続要求を受け付けた場合、例えば端末装置2との間でユーザ認証を行い、端末装置2に対応するVM30及びゲストOSを起動させる。これにより、VM30と端末装置2とのネットワーク接続が確立し、VM30は、端末装置2からの利用が開始される。VM30が端末装置2から利用される場合、サーバ装置1は、端末装置2に対して画面情報をパケット転送し、端末装置2のモニタに画面を表示する。また、サーバ装置1は、端末装置2からキーボード及びマウスから入力された操作情報のパケットを受信し、対応するVM30で処理を行い、その結果を端末装置2へ送信する。
本実施の形態では、サーバ装置1のVM30と端末装置2とは、二つの経路により接続されるようになっている。以下、サーバ装置1のVM30と端末装置2とを接続する経路について説明する。図2は、サーバ装置1のVM30と端末装置2との接続を説明するための模式図である。なお図2では、一つのVM30のみ示している。
サーバ装置1は、ネットワークNを介して端末装置2と接続するためのI/Oインターフェースとして、ネットワークインタフェースカード(NIC)1a、リモート接続カード1b及びグラフィックカード1c等を備えている。端末装置2は、NIC(第1入出力部)1a及びリモート接続カード(第2入出力部)1bに接続している。なおサーバ装置1は、図中では一つのみ示しているが、サーバ装置1に接続される端末装置2と同数のNIC1aを備えている。また、サーバ装置1は、リモート接続カード1b及びグラフィックカード1cをそれぞれ一つ以上備えており、複数のVM30がリモート接続カード1b等を共有しているものとする。
サーバ装置1の管理OS20では、NIC1aに対するネットワークドライバ201が実行している。また、VM30では仮想NIC30aが稼動し、VM30で動作するゲストOS40では、仮想NIC30aに対するネットワークドライバ401が実行している。管理OS20のネットワークドライバ201は、VMM10を介して、仮想NIC30aと対応付けられる。サーバ装置1は、端末装置2に対してNIC1aのInternet Protocol(IP)アドレスを通知し、端末装置2は、そのIPアドレス宛にパケットを送信する。この場合、端末装置2から送信されたパケットは、NIC1aから受信され、管理OS20、VMM10及び、VM30の仮想NIC30aを経由してゲストOS40に入力される。また、ゲストOS40が発したパケットは、仮想NIC30aからVMM10及び管理OS20を経由して、NIC1aから端末装置2へ送信される。このNIC1aを介して行う接続としては、例えばRDP接続が挙げられる。
また、VM30のゲストOS40では、リモート接続カード1bに対するリモート接続カードドライバ402、及び、グラフィックカード1cに対するグラフィックカードドライバ403が実行している。リモート接続カード1b及びグラフィックカード1cそれぞれは、所定の条件で、一のVM30に割り当てられ、そのVM30の各ドライバ402,403から動作制御される。サーバ装置1は、端末装置2に対してリモート接続カード1bのIPアドレスを通知し、端末装置2は、そのIPアドレス宛にパケットを送信する。この場合、端末装置2のキーボード及びマウス等の操作情報はIP化され、リモート接続カード1bに入力される。リモート接続カード1bは入力された操作情報をゲストOS40に直接入力する。また、ゲストOS40の画面情報はグラフィックカード1cに出力され、リモート接続カードでIP化した後、端末装置2へ送信される。このリモート接続カード1bを介して行う通信技術としては、例えばPCoIP(PC over IP)技術が挙げられる。
以上のように、VM30と端末装置2とは、NIC1a又はリモート接続カード1bを介して接続している。より具体的には、VM30と端末装置2とは、平時はNIC1aを介して接続するようにしている。VM30では、対応する端末装置2からネットワーク設定が行えるようになっている。ネットワーク設定とは、例えば端末装置2又はVM30のIPアドレスの設定、ゲストOS40で稼動するファイアウォールの設定等である。このネットワーク設定において、設定に誤りがあった場合、VM30と端末装置2とが接続できなくなる場合がある。例えば、ファイアウォール設定において、設定すべきIPアドレスに誤りがあった場合、端末装置2から送信されたパケットは、ファイアウォールにより破棄されることになるため、実質的にゲストOS40と端末装置2とが接続できなくなる。この場合に、サーバ装置1は、リモート接続カード1bを介してVM30と端末装置2とが接続されるように切り替える。これにより、端末装置2は、VM30への接続でき、再びNIC1aを介して接続できるように正しいネットワーク設定を行うことができる。
なお、VM30と端末装置2とがNIC1aを介して接続できるように復旧した場合、一のVM30に対するリモート接続カード1b及びグラフィックカード1cの割り当ては解放される。これにより、他のVM30でリモート接続カード1b等が必要となったときに、他のVM30に対してリモート接続カード1b等を割り当てることができ、サーバ装置1は、多数のリモート接続カード1bを備える必要がなくなる。
以下、サーバ装置1の具体的な構成及び動作について詳述する。
図3は、サーバ装置1及び端末装置2のハードウェア構成を示すブロック図である。
サーバ装置1は、CPU11、Read Only Memory(ROM)12、RAM13、ハードディスク(以下、HDDという)14、ネットワークインタフェースカード(NIC)1a、リモート接続カード1b及びグラフィックカード1c等のハードウェア各部を備えている。これらのハードウェア各部はバスを介して相互に接続されている。
CPU11は、ROM12に予め格納されているプログラム12aを適宜RAM13に読み出して実行すると共に、上述したハードウェア各部の動作を制御する。ROM12は、プログラム12aを格納している。RAM13は、例えばStatic RAM(SRAM)、Dynamic RAM(DRAM)、フラッシュメモリ等である。RAM13は、CPU11によるプログラム12aの実行時に発生する種々のデータを一時的に記憶する。
HDD14は大容量の記憶装置である。HDD14は、VMMプログラム、管理OSプログラム、ゲストOSプログラム、アプリケーションプログラム及び各処理に必要なデータテーブル等を格納している。各プログラムは、CPU11によりRAM13に読み出しされて実行される。なお、プログラム12aは、Compact Disk-ROM(CD−ROM)、Digital Versatile Disc-ROM(DVD−ROM)等の記録媒体3によりHDD14にインストールして、又はネットワークからダウンロードして使用する形態でもよい。
VMMプログラムは、サーバ装置1でVM30の動作を可能にする仮想化技術を実現するためのソフトウェアプログラムである。CPU11は、サーバ装置1の起動後にVMMプログラムを実行することにより、VMM10としての動作を開始する。CPU11がVMM10として動作することにより、サーバ装置1には、複数のVM30が独立して動作可能な仮想環境が提供される。
管理OSプログラムは、VMM10上でVM30を起動及び停止、及びVM30に対してCPU11等のリソースを割り当てて、また割り当てをVMM10に指示するためのソフトウェアプログラムである。CPU11は、サーバ装置1の起動後に管理OSプログラムを実行することにより管理OS20としての動作を開始する。
ゲストOSプログラムは、VM30上でゲストOS40を実行させるソフトウェアプログラムである。ゲストOSプログラムは、VMが起動した後、CPU11がゲストOSプログラムを実行することによりゲストOS40としての動作を開始する。ゲストOS40は、例えばWindows(登録商標)又はLinux(登録商標)等である。ゲストOSは、実行した処理に応じて表示すべきCharacter User Interface(CUI)、Graphic User Interface(GUI)等を含む表示画面を生成し、生成した表示画面は、端末装置2に送られ、端末装置2のモニタに表示される。また、ゲストOS40は、端末装置2のキーボード及びマウスからの制御信号を受け付ける。そして、ゲストOS40は、受け付けた制御信号に応じて各種処理を実行する実行手段として機能する。
アプリケーションプログラムは、ゲストOS40のそれぞれによって実行されるアプリケーションのソフトウェアプログラムである。サーバ装置1は、アプリケーションプログラムが記録された外部メモリからアプリケーションプログラムを読み取ってHDD14に格納してもよい。また、サーバ装置1は、ネットワークを介してアプリケーションプログラムをダウンロードしてHDD14に格納させてもよい。
端末装置2は、CPU21、ROM22、RAM23、HDD24、入出力部25、及びNIC26等のハードウェア各部を備える。これらのハードウェア各部はバスを介して相互に接続されている。入出力部25は、キーボード、マウス及びモニタ等である。NIC26は、ネットワークNへの接続を可能にする。
CPU21は、ROM22に予め格納されているプログラムを適宜RAM23に読み出して実行すると共に、上述したハードウェア各部の動作を制御する。ROM22は、プログラム、及び各種データ等を予め格納している。RAM23は、例えばSRAM、DRAM、フラッシュメモリ等であり、CPU21によるプログラムの実行時に発生する種々のデータを一時的に記憶する。HDD22には、例えばサーバ装置1に接続するためのアプリケーションのプログラム、及び各種のデータ等を格納している。
以下に、サーバ装置1で実現される機能について説明する。図4は、サーバ装置1が有する機能を示すブロック図である。
サーバ装置1に電源が投入され、サーバ装置1のハードウェア各部の起動が完了した場合、CPU11は、まず、VMMプログラムをHDD14から読み出して実行することによりVMM10としての動作を開始する。VMM10としての動作を開始したCPU11は、管理OSプログラムをHDD14から読み出して実行することにより管理OS20としての動作を開始する。VMM10は、管理OS20からの指示により、VMM10上でVM30の起動及び停止を行う。なお図4では、VM30は一つのみ示している。
VM30を起動する場合、管理OS20はユーザ認証を行う。例えばサーバ装置1には、予めユーザID及びパスワードと、ユーザが利用するVM30とを対応付けて登録しておく。管理OS20は、ログイン画面(図示せず)の画面情報を端末装置2へ送信し、端末装置2で表示されたログイン画面に従って入力されたユーザID及びパスワードを端末装置2から受信する。そして、管理OS20は、受信したユーザID及びパスワードが登録されているか否かを判定する。受信したユーザID及びパスワードが登録されている場合、管理OS20はユーザ認証できたと判定し、VMM10が、対応するVM30を起動し、起動したVM30にリソースを割り当てる。起動したVM30では、ゲストOS40の動作が開始される。
VMM10は、VM制御部101及びパケット監視部102等の機能を有している。VM制御部101は、管理OS20からの指示に従い、VM30の起動停止等を行う。パケット監視部102は、管理OS20からの指示に従い、VMM10を経由してVM30と端末装置2との間で送受されるパケットを定期的に監視し、監視結果を管理OS20に通知する。VM30と端末装置2との間で送受されるパケットは、端末装置2からVM30へ送信されるパケット(以下、要求パケットという)と、VM30から端末装置2へ送信されるパケット(以下、応答パケットという)とがある。
管理OS20は、デバイス割当制御部202、VM状態管理部203、VM状態監視部204、デバイス割当情報保存部205、VM管理情報保存部206、及びVM接続情報保存部207等の機能を有している。なお、図4では省略しているが、管理OS20は、上述したネットワークドライバ201の機能を有している。
デバイス割当制御部202は、VM状態管理部203からの指示に従い、起動したVM30へのデバイスの割り当て、及び割り当て解放をVMM10に依頼する。割り当て及び割り当て解放するデバイスは、リモート接続カード1b及びグラフィックカード1c等である。
VM状態管理部203は、VM30の起動時に、VM30に関するVM情報をVM管理情報保存部206に格納し、VM30の停止時に格納されていたVM情報を削除する。VM情報は、例えばVM30のVM名、VMM10がVM30を識別するためのドメインID、仮想NIC30aの名前(以下、インターフェース(I/F)名という)、仮想NIC30aに割り当てられたIPアドレス、ネットワークマスク、ゲートウェイ情報、及び後述するファイアウォールログ等である。またVM情報は、VM30が端末装置2と接続している場合、その接続情報、並びに、VM30に割り当てられているデバイス情報を含む。
また、VM状態管理部203は、VM30と端末装置2との接続に異常があるか否かを判定する。VM30と端末装置2との接続に異常がある場合、VM状態管理部203は、デバイス割当制御部202に対して、対応するVM30にリモート接続カード1bを割り当てるよう依頼する。リモート接続カード1bが割り当てられた場合、VM状態管理部203は、リモート接続カード1bのIPアドレスを端末装置2へ通知して、端末装置2にリモート接続カード1b経由で接続させる。これにより、VM30と端末装置2とはリモート接続カード1bを介して接続するようになる。
また、VM状態管理部203は、監視パケットの送信を端末装置2に依頼する。監視パケットは、VM30にリモート接続カード1bが割り当てられた後、VM30が仮想NIC30aを介して端末装置2と接続できるようになったことを確認するために発行される。監視パケットは、VM30のNIC30aに割り当てられたIPアドレスにInternet Control Message Protocol(icmp)echoを利用しており、icmp reply応答があったときに、VM状態管理部203は、NIC1a経由の接続が可能と判定し、VM30に割り当てたリモート接続カード1bの割り当てを解放する。このとき、VM状態管理部203は、NIC1aのIPアドレスを端末装置2へ通知して、NIC1a経由でVM30と端末装置2とを接続させる。またVM状態管理部203は、監視パケットの停止を端末装置2に依頼する。
VM状態管理部203は、監視パケットの送信依頼を通知した後、VM情報の取得を、VM状態監視部204を介してVM30に指示する。そしてVM情報を受信した場合、VM状態管理部203は、VM管理情報保存部206に格納されているVM情報を更新する。
またVM状態管理部203は、VM30と端末装置2との接続が確立した場合、接続情報をVM30から取得してVM接続情報保存部207へ格納する。接続情報は、例えば、VM30に接続している端末装置2のIPアドレス及びポート番号、並びに、VM30のIPアドレス及びポート番号である。VM状態管理部203は、監視パケットを監視中であるか否かの情報(フラグ)を接続情報に含めてVM接続情報保存部207に格納する。
VM状態監視部204は、VM状態管理部203からの指示に従い、要求及び応答パケットを定期的に監視して、監視結果をVM状態管理部203に通知する。また、VM状態監視部204は、VM状態管理部203からの指示に従い、対象となるVM30が起動しているかを確認し、起動している場合には、VM30にVM情報の取得を指示する。VM状態監視部204は、VM情報を受信した場合、その結果をVM状態管理部203に通知する。
デバイス割当情報保存部205は、起動したVM30に割り当て可能なデバイス、例えば、リモート接続カード1b及びグラフィックカード1cに関するデバイス情報を格納している。デバイス情報は、例えば、デバイスを識別するための識別子、デバイスが接続されている位置(例えば、基板スロットの位置)を特定するためのドメイン番号、バス番号、デバイス番号及びファンクション番号、並びに、デバイスに割り当てられているIPアドレス等である。また、デバイス情報は、デバイスが既にVM30に割り当てられている場合には、デバイスが割り当てられているVM30のVM名等を含む。
VM30は、ネットワーク監視部301及びVM情報収集部302等の機能を有している。ネットワーク監視部301は、VM30が端末装置2との接続を開始した場合、管理OS20のVM状態管理部203に接続情報と共に、接続開始を通知する。ネットワーク監視部301は、要求及び応答パケットを定期的に監視し、監視結果を管理OS20のVM状態管理部203に通知する。さらに、ネットワーク監視部301は、端末装置2とVM30との接続が切断された場合、VM状態管理部203に接続終了を通知し、パケット監視を終了する。
VM情報収集部302は、VM状態管理部203からの指示に従い、ネットワーク状態又はファイアウォールログ等のVM情報を取得する。ネットワーク状態とは、接続に関係するIPアドレス等である。ファイアウォールログとは、処理したパケット又は破棄したパケットのログ等である。VM情報収集部302は、VM30と端末装置2との接続に異常があった場合、取得したネットワーク状態又はファイアウォールログから異常原因を検出し、その検出結果と共に、VM情報をVM状態監視部204へ出力する。
具体的には、VM情報収集部302は、VM管理情報保存部206に格納されたVM情報を管理OS20から取得し、そのVM情報と、自身が取得したネットワーク状態とを対比する。対比した結果、I/F名が異なる場合には、VM情報収集部302は、仮想NIC30aが無効化又は設定変更されたことが異常の原因であるとして、I/F異常と判定する。また対比した結果、IPアドレスが異なる場合には、VM情報収集部302は、IPアドレスが変更されたことが異常の原因として、IPアドレス異常と判定する。またVM情報収集部302は、VM接続情報保存部207から接続情報を取得し、ファイアウォールログにおいて破棄されているパケットが、接続情報に含まれるIPアドレス又はポート番号からのパケットであった場合、ファイアウォール異常と判定する。VM情報収集部302は、何れの異常であるかを判定した結果を、VM状態監視部204を介してVM状態管理部203へ通知する。
次に、上述のサーバ装置1で実行される処理について説明する。
図5は、VM30の利用開始及び終了時におけるサーバ装置1が行う処理手順を示すフローチャートである。なお図5は、正常にVM30が起動及び停止し、VM30と端末装置2との接続に異常が発生しない場合を示している。
サーバ装置1ではVMM10が実行され、VMM10上で管理OS20の動作が開始される。起動した管理OS20が、端末装置2から接続要求を受信したか否かを判定する(S1)。接続要求は、例えば端末装置2で特定のアプリケーションが実行されることで、端末装置2から送信される。接続要求を受信していない場合(S1:NO)、本処理は終了する。接続要求を受信した場合(S1:YES)、管理OS20は、接続要求を行った端末装置2に対応するVM30の起動をVMM10へ依頼し、VMM10がVM30を起動する(S2)。
管理OS20は、起動したVM30で稼動するNIC30aのIPアドレスを端末装置2に送信する(S3)。端末装置2では、送信されたIPアドレス先への接続を開始する。これにより、VM30と端末装置2との接続が確立し、端末装置2からVM30へのリモート接続が開始される。VM30と端末装置2との接続が確立したとき、管理OS20は、起動したVM30から取得したVM情報をVM管理情報保存部206に格納する。
管理OS20は、リモート接続が正常に切断されたか否かを判定する(S4)。リモート接続が正常に切断されていない場合(S4:NO)、管理OS20は、リモート接続が正常に切断されるまで待機する。このとき、端末装置2からVM30へのリモート接続が続行される。リモート接続が正常に切断された場合(S4:YES)、管理OS20は、VMM10にVM30を停止させる(S5)。このとき、VM30は、VM管理情報保存部206に格納したVM情報を削除する。そして、本処理は終了する。
図6は、VM30のネットワーク監視部301が行う処理手順を示すフローチャートである。
ネットワーク監視部301は、VM30と端末装置2との接続が確立したか判定する(S10)。VM30と端末装置2との接続が確立していない場合(S10:NO)、ネットワーク監視部301は、VM30と端末装置2との接続が確立するまで待機する。VM30と端末装置2との接続が確立した場合(S10:YES)、ネットワーク監視部301は、端末装置2のIPアドレス等の接続情報を、VM状態管理部203へ通知する(S11)。次に、ネットワーク監視部301は、パケット監視を開始して、端末装置2からの要求パケットを検出したかを判定する(S12)。
要求パケットを検出した場合(S12:YES)、ネットワーク監視部301は、要求パケットに対するゲストOS40からの応答パケットを検出したか否かを判定する(S13)。応答パケットを検出していない場合(S13:NO)、ネットワーク監視部301は、一定時間経過したか否かを判定する(S14)。一定時間経過していない場合(S14:NO)、ネットワーク監視部301は、再びS13を実行し、応答パケットを検出したか否かを判定する。一定時間経過した場合(S14:YES)、ネットワーク監視部301は、VM30と端末装置2との接続に異常があると判定し、管理OS20のVM状態管理部203へ接続異常を通知する(S15)。要求パケットを検出していない場合(S12:NO)、又は、応答パケットを検出した場合(S13:YES)、ネットワーク監視部301は、S16の処理を実行する。なお、応答パケットを検出した場合には、ネットワーク監視部301は、VM30と端末装置2との接続に異常がないことをVM状態管理部203へ通知するようにしてもよい。
ネットワーク監視部301は、VM30と端末装置2との接続が切断されたか否かを判定する(S16)。VM30と端末装置2との接続が切断されていない場合(S16:NO)、ネットワーク監視部301は、S12の処理を実行し、要求パケットを検出したか否かを判定する。VM30と端末装置2との接続が切断された場合(S16:YES)、ネットワーク監視部301は、パケット監視を停止し、管理OS20へ切断を通知した後(S17)、本処理を終了する。
図7は、VM30のVM情報収集部302が行う処理手順を示すフローチャートである。
VM情報収集部302は、VM情報の取得が指示されたか否かを判定する(S20)。VM情報の取得は、接続異常が通知されたVM状態管理部203から、VM状態監視部204を介して指示される。なお、VM状態管理部203は、VM状態監視部204から指示されるとき、VM管理情報保存部206に記憶されたVM情報、及びVM接続情報保存部207に記憶された接続情報を取得する。VM情報の取得が指示されていない場合(S20:NO)、VM情報収集部302は、VM状態監視部204から指示されるまで待機する。VM情報の取得が指示された場合(S20:YES)、VM情報収集部302は、VM情報を取得し(S21)、取得したVM情報に基づいて、I/F異常であるか否かを判定する(S22)。具体的には、VM情報収集部302は、管理OS20から取得したVM情報に含まれるI/F名を、S21で取得できたか否かを判定する。
I/F異常であると判定した場合(S22:YES)、VM情報収集部302は、I/F異常として管理OS20のVM状態監視部204へ通知し(S23)、本処理を終了する。I/F異常でないと判定した場合(S22:NO)、VM情報収集部302は、IPアドレス異常であるか否かを判定する(S24)。具体的には、VM情報収集部302は、仮想NIC30aに割り当てられているIPアドレスが、管理OS20から取得したVM情報に含まれ、仮想NIC30aに割り当てられているIPアドレスと一致するか否かを判定する。一致しない場合は、IPアドレス異常と判定する。
IPアドレス異常である場合(S24:YES)、VM情報収集部302は、IPアドレス異常として管理OS20のVM状態監視部204へ通知し(S25)、本処理を終了する。IPアドレス異常でない場合(S24:NO)、VM情報収集部302は、ファイアウォール異常であるか否かを判定する(S26)。具体的には、VM情報収集部302は、ファイアウォールログを確認し、破棄されたパケットがあるなど、接続に影響するログがないか確認する。
ファイアウォール異常であると判定された場合(S26:YES)、VM情報収集部302は、ファイアウォール異常として、管理OS20のVM状態監視部204へ通知し(S27)、本処理を終了する。ファイアウォール異常でないと判定された場合(S26:NO)、VM情報収集部302は、異常原因を特定できないことをVM状態監視部204に通知し(S28)、本処理を終了する。
図8は、VMM10のパケット監視部102が行う処理手順を示すフローチャートである。
パケット監視部102は、管理OS20のVM状態監視部204からの指示によりパケット監視を開始するか否かを判定する(S30)。パケット監視を開始しない場合(S30:NO)、パケット監視部102は、本処理を終了する。パケット監視を開始する場合(S30:YES)、パケット監視部102は、端末装置2からの要求パケットを検出したかを判定する(S31)。要求パケットを検出した場合(S31:YES)、パケット監視部102は、要求パケットに対するゲストOS40の応答パケットを検出したか否かを判定する(S32)。応答パケットを検出していない場合(S32:NO)、パケット監視部102は、一定時間経過したか否かを判定する(S33)。
一定時間経過していない場合(S33:NO)、パケット監視部102は、S32を実行する。一定時間経過した場合(S33:YES)、パケット監視部102は、接続異常と判定し、管理OS20のVM状態管理部203へ接続異常を通知する(S34)。要求パケットを検出していない場合(S31:NO)、または、応答パケットを検出した場合(S32:YES)、パケット監視部102は、S35の処理を実行する。なお、応答パケットを検出した場合には、パケット監視部102は、接続が正常であることをVM状態管理部203へ通知するようにしてもよい。
パケット監視部102は、VM状態監視部204からの指示によりパケット監視を停止するか否かを判定する(S35)。停止しない場合(S35:NO)、パケット監視部102は、S31の処理を実行する。停止する場合(S35:YES)、パケット監視部102は、パケット監視を停止した後、本処理を終了する。
図9及び図10は、管理OS20のVM状態監視部204が行う処理手順を示すフローチャートである。
VM状態監視部204は、VM状態管理部203からの指示により、パケット監視を開始するか否かを判定する(S40)。パケット監視を開始しない場合(S40:NO)、VM状態監視部204は、本処理を終了する。パケット監視を開始する場合(S40:YES)、VM状態監視部204は、パケット監視部102へパケット監視の開始を指示する(S41)。このとき、VM状態監視部204は、自身でのパケット監視を開始する。
VM状態監視部204は、端末装置2からの要求パケットを検出したかを判定する(S42)。要求パケットを検出した場合(S42:YES)、VM状態監視部204は、要求パケットに対するゲストOS40の応答パケットを検出したか否かを判定する(S43)。応答パケットを検出していない場合(S43:NO)、VM状態監視部204は、一定時間経過したか否かを判定する(S44)。
一定時間経過していない場合(S44:NO)、VM状態監視部204は、S43の処理を実行する。一定時間経過した場合(S44:YES)、VM状態監視部204は、接続異常と判定し、VM状態管理部203へ接続異常を通知する(S45)。要求パケットを検出していない場合(S42:NO)、または、応答パケットを検出した場合(S43:YES)、パケット監視部102は、S46の処理を実行する。なお、応答パケットを検出した場合には、VM状態監視部204は、接続が正常であることをVM状態管理部203へ通知するようにしてもよい。
VM状態監視部204は、VM情報の取得が指示されたか否かを判定する(S46)。VM情報の取得は、接続異常が通知されたVM状態管理部203から指示される。VM情報の取得が指示されていない場合(S46:NO)、VM状態監視部204は、指示されるまで待機する。VM情報の取得が指示された場合(S46:YES)、VM状態監視部204は、VM30が起動中であるか否かを判定する(S47)。VM30が起動中でない場合(S47:NO)、VM状態監視部204は、VM状態管理部203へVM30が停止状態であることを通知し(S48)、S54の処理を実行する。なお、停止状態と通知されたVM状態管理部203は、端末装置2に対して、VM30が停止していることを通知する。
VM30が起動中の場合(S47:YES)、VM状態監視部204は、VM30のVM情報収集部302へ、VM情報の取得を指示する(S49)。VM状態監視部204は、VM情報収集部302から指示した結果を取得したか否かを判定する(S50)。指示した結果とは、VM情報収集部302が取得したVM情報、及び、VM情報収集部302が判定したI/F異常等の異常原因である。取得していない場合(S50:NO)、VM状態監視部204は、一定時間が経過したか否かを判定する(S51)。
一定時間が経過していない場合(S51:NO)、VM状態監視部204は、S50の処理を実行する。一定時間が経過した場合(S51:YES)、VM状態監視部204は、VM状態管理部203にVM30が異常停止状態であることを通知する(S52)。異常停止状態と通知されたVM状態管理部203は、端末装置2に対して、VM30が異常停止していることを通知する。指示結果を取得した場合(S50:YES)、VM状態監視部204は、VM状態管理部203へ取得した指示結果を通知する(S53)。
次に、VM状態監視部204は、VM状態管理部203からの指示により、パケット監視を停止するか否かを判定する(S54)。パケット監視を停止しない場合(S54:NO)、VM状態監視部204は、S42の処理を実行する。パケット監視を停止する場合(S54:YES)、VM状態監視部204は、パケット監視部102へパケット監視の停止を指示し(S55)、自身のパケット監視を停止した後、本処理を終了する。
図11及び図12は、管理OS20のVM状態管理部203が行う処理手順を示すフローチャートである。
VM状態管理部203は、VM30のネットワーク監視部301から接続情報を受信したか否かを判定する(S60)。接続情報は、VM30と端末装置2との接続が確立したときに、ネットワーク監視部301から送信される。接続情報を受信していない場合(S60:NO)、VM状態管理部203は、本処理を終了する。接続情報を受信した場合(S60:YES)、VM状態管理部203は、受信した接続情報をVM接続情報保存部207に格納する(S61)。
VM状態管理部203は、パケット監視を開始する(S62)。パケット監視を開始した場合、VM状態管理部203は、VM状態監視部204にパケット監視の開始を指示する。パケット監視の開始が指示されたVM状態監視部204は、VMM10のパケット監視部102へ、さらにパケット監視の開始を指示する。
VM状態管理部203は、パケット監視に対する結果を受信したか否かを判定する(S63)。監視結果を受信していない場合(S63:NO)、VM状態管理部203は、受信するまで待機する。監視結果を受信した場合(S63:YES)、VM状態管理部203は、受信した監視結果が接続異常であるか否かを判定する(S64)。パケット監視は、VM状態監視部204、パケット監視部102及びネットワーク監視部301で行われており、全てにおいて接続異常でないと判定された場合には、VM状態管理部203は、接続異常でないと判定する。
監視結果が接続異常でない場合(S64:NO)、VM状態管理部203は、リモート接続カード1bがVM30に割り当てられているか否かを判定する(S65)。リモート接続カード1bがVM30に割り当てられている場合、VM30は、端末装置2からリモート接続カード1b経由で接続している。リモート接続カード1bがVM30に割り当てられている場合(S65:YES)、VM30及び端末装置2間が接続異常から復旧したと判定し、VM状態管理部203は、デバイス割当制御部202にリモート接続カード1bの割り当て解放を指示する(S66)。VM状態管理部203は、NIC1aのIPアドレスを端末装置2へ送信することで、端末装置2にNIC1a経由でVM30に接続するよう指示する(S67)。端末装置2がリモート接続カード1b経由でVM30に接続している場合、端末装置2からは監視パケットが送信されているため、VM状態管理部203は、端末装置2に対して監視パケットの送信停止を要求する(S68)。その後、VM状態管理部203は、S78の処理を実行する。また、リモート接続カード1bがVM30に割り当てられていない場合(S65:NO)、VM状態管理部203は、S78の処理を実行する。
監視結果が接続異常である場合(S64:YES)、VM状態管理部203は、VMM10及び管理OS20間における異常であるか否かを判定する(S69)。具体的には、VM状態監視部204のみが接続異常と判定した場合、VM状態管理部203は、VMM10及び管理OS20間における接続異常であると判定する。VMM10及び管理OS20間における異常であると判定した場合(S69:YES)、VM状態管理部203は、S78の処理を実行する。VMM10及び管理OS20間における異常の場合は、VM30と端末装置2とをリモート接続カード1b経由で接続しても、接続異常を解消することはできないため、VM状態管理部203は、異常原因を端末装置2へ通知するようにしてもよい。
VMM10及び管理OS20間における異常でないと判定した場合(S69:NO)、VM状態管理部203は、リモート接続カード1bがVM30に割り当てられているか否かを判定する(S70)。リモート接続カード1bがVM30に割り当てられている場合(S70:YES)、VM状態管理部203は、S72の処理を実行する。リモート接続カード1bがVM30に割り当てられていない場合(S70:NO)、VM状態管理部203は、デバイス割当制御部202へリモート接続カード1bのVM30への割り当てを指示する(S71)。次に、VM状態管理部203は、割り当てたリモート接続カード1bのIPアドレスを端末装置2へ送信することで、端末装置2にリモート接続カード1b経由でVM30に接続するよう指示する(S72)。また、VM状態管理部203は、端末装置2に対して、仮想NIC30aのIPアドレスを通知して監視パケットの送信を要求する(S73)。
次に、VM状態管理部203は、VM状態監視部204へVM情報の取得を指示し(S74)、指示した結果を受信したか否かを判定する(S75)。指示結果は、上述したように、VM情報収集部302が取得したVM情報、及び、VM情報収集部302が判定したI/F異常等の異常原因である。指示結果を受信していない場合(S75:NO)、VM状態管理部203は、受信するまで待機する。受信した場合(S75:YES)、受信したVM情報をVM管理情報保存部206へ格納し(S76)、異常内容を端末装置2へ通知する(S77)。異常内容が通知された端末装置2では、ユーザに報知するための警告画面が表示される。図13は、異常をユーザに報知するための画面の一例を示す模式図であり、I/F異常の場合に表示される画面の一例である。この場合、ネットワークアダプタ(仮想NIC30a)が無効化されたことが原因として表示される。また対処方法として、ネットワークアダプタ(仮想NIC30a)を有効化にすることが表示される。
VM状態管理部203は、VM30と端末装置2との接続が切断されたか否かを判定する(S78)。切断されていない場合(S78:NO)、VM状態管理部203は、S63の処理を実行する。切断された場合(S78:YES)、VM状態管理部203は、VM管理情報保存部206に格納されたVM情報を削除し(S79)、パケット監視を停止する。このとき、VM状態管理部203は、VM状態監視部204にパケット監視の停止を指示する(S80)。そして、VM状態管理部203は、本処理を終了する。
以上説明したように、本実施の形態では、VM30において、誤ったネットワーク設定を行ったために、NIC1a経由でVM30と端末装置2とが接続できなくなった場合、リモート接続カード1b経由でVM30と端末装置2とを接続する。これにより、端末装置2のユーザは、改めてVM30においてネットワーク設定を行うことができる。この結果、端末装置2のユーザは、管理者等に接続異常となった原因を排除してもらうよう依頼することなく、自身で原因を排除することができるため、接続異常時の管理者の負担を軽減でき、また、ユーザは管理者に依頼するといった手間を省くことができる。
なお、本実施の形態では、監視パケットとしてicmpを使用するようにしていたが、TCP/IPパケット、又は独自のプロトコルを利用するようにしてもよい。TCP/IPパケットを利用する場合、ネットワーク接続で使用するTCPポート番号を宛先ポート番号として、端末装置2へ通知することで、VM30上に新たにモジュールを設置(割り当て)する必要がなくなる。例えば、VM30と端末装置2とを接続するためにRDP接続を利用する場合、監視パケットの宛先TCPポート番号は、一般的なデフォルトポート番号の「3389」とすることができる。
またパケット監視の例として、ネットワーク接続にRDP接続を利用する場合、端末装置2は、宛先IPアドレスとしてVM30の仮想NIC30aに割り当てられたIPアドレス、宛先ポート番号として3389/tcpを指定して、SYNパケットを送信する。VM30で動作するゲストOS40は、SYNパケットを受信した場合、SYNパケットの送信元である端末装置2宛に[SYN,ACK]パケットを応答パケットとして返すため、パケット監視部102等では、要求パケットとして[SYN]パケットが通過しているか確認し、応答パケットとして[SYN, ACK]パケットが通過しているかを確認することでパケット監視を行うことが可能となる。
(実施形態2)
以下に、実施の形態2について説明する。実施の形態1ではパケット監視を随時行っているのに対し、本実施の形態では、VM30と端末装置2との接続に異常があったときにパケット監視を開始する点で、実施の形態1と相違している。以下、相違点について説明する。
図14は、端末装置2が有する機能を模式的に示すブロック図である。端末装置2は、ネットワーク接続監視部201の機能を有している。ネットワーク接続監視部201は、接続されているVM30へ送信される要求パケットを検出した場合、要求パケットに対するVM30からの応答パケットを検出する。応答パケットが検出できなかった場合、ネットワーク接続監視部201は、サーバ装置1に対して、接続異常を通知する。
サーバ装置1は、実施の形態1と同様の機能を有している。本実施の形態に係るVM状態管理部203は、端末装置2のネットワーク接続監視部201から接続異常が通知された場合、パケット監視を開始する。
以下に、サーバ装置1及び端末装置2それぞれで実行される処理について説明する。
図15は、端末装置2のネットワーク接続監視部201が行う処理手順を示すフローチャートである。
ネットワーク接続監視部201は、端末装置2がVM30と接続を開始されたか否かを判定する(S90)。接続が開始されていない場合(S90:NO)、ネットワーク接続監視部201は、本処理を終了する。接続が開始された場合(S90:YES)、ネットワーク接続監視部201は、パケット監視を開始して、端末装置2からVM30に送信される要求パケットを検出したかを判定する(S91)。要求パケットを検出していない場合(S91:NO)、ネットワーク接続監視部201は、S96の処理を実行する。
要求パケットを検出した場合(S91:YES)、ネットワーク接続監視部201は、要求パケットに対するVM30からの応答パケットを検出したか否かを判定する(S92)。応答パケットを検出していない場合(S92:NO)、ネットワーク接続監視部201は、一定時間経過したか否かを判定する(S93)。一定時間経過していない場合(S93:NO)、ネットワーク接続監視部201は、S92を実行する。一定時間経過した場合(S93:YES)、ネットワーク接続監視部201は、VM30との接続異常と判定し、サーバ装置1へ接続異常を通知する(S94)。応答パケットを検出した場合(S92:YES)、ネットワーク接続監視部201は、接続は正常であると判定し、サーバ装置1へ通知する(S95)。なお、正常である場合は、サーバ装置1へ通知しないようにしてもよい。
ネットワーク接続監視部201は、VM30と端末装置2との接続が切断されたか否かを判定する(S96)。VM30と端末装置2との接続が切断されていない場合(S96:NO)、ネットワーク接続監視部201は、S91の処理を実行し、再びパケット監視を実行する。VM30と端末装置2との接続が切断された場合(S96:YES)、ネットワーク接続監視部201は、本処理を終了する。
図16及び図17は、管理OS20のVM状態管理部203が行う処理手順を示すフローチャートである。
VM状態管理部203は、VM30のネットワーク監視部301から接続情報を受信したか否かを判定する(S101)。接続情報を受信していない場合(S101:NO)、VM状態管理部203は、本処理を終了する。接続情報を受信した場合(S101:YES)、VM状態管理部203は、受信した接続情報をVM接続情報保存部207に格納する(S102)。
VM状態管理部203は、端末装置2から接続異常通知を受信したか否かを判定する(S103)。接続異常通知を受信していない場合(S103:NO)、すなわちVM30と端末装置2との接続が正常である場合、VM状態管理部203は、S103の判定処理を繰り返す。
接続異常通知を受信した場合(S103:YES)、VM状態管理部203は、パケット監視を開始する(S106)。パケット監視の開始した場合、VM状態管理部203は、VM状態監視部204及びネットワーク監視部301にパケット監視の開始を指示する。VM状態管理部203は、パケット監視に対する結果を受信したか否かを判定する(S107)。監視結果を受信していない場合(S107:NO)、VM状態管理部203は、受信するまで待機する。監視結果を受信した場合(S107:YES)、VM状態管理部203は、受信した監視結果が接続異常であるか否かを判定する(S108)。
監視結果が接続異常でない場合(S108:NO)、VM状態管理部203は、リモート接続カード1bがVM30に割り当てられているか否かを判定する(S109)。リモート接続カード1bがVM30に割り当てられている場合(S109:YES)、VM状態管理部203は、デバイス割当制御部202にリモート接続カード1bの割り当て解放を指示する(S110)。VM状態管理部203は、NIC1aのIPアドレスを端末装置2へ送信することで、端末装置2にNIC1a経由でVM30に接続するよう指示し(S111)、端末装置2に対して監視パケットの送信停止を要求する(S112)。その後、VM状態管理部203は、S122の処理を実行する。また、リモート接続カード1bがVM30に割り当てられていない場合(S109:NO)、VM状態管理部203は、S122の処理を実行する。
接続異常である場合(S108:YES)、VM状態管理部203は、VMM10及び管理OS20間における異常であるか否かを判定する(S113)。VMM10及び管理OS20間における異常であると判定した場合(S113:YES)、VM状態管理部203は、S122の処理を実行する。VMM10及び管理OS20間における異常でないと判定した場合(S113:NO)、VM状態管理部203は、既にリモート接続カード1bがVM30に割り当てられているか否かを判定する(S114)。
既にリモート接続カード1bがVM30に割り当てられている場合(S114:YES)、VM状態管理部203は、S116の処理を実行する。リモート接続カード1bがVM30に割り当てられていない場合(S114:NO)、VM状態管理部203は、デバイス割当制御部202へ割り当てを指示する(S115)。VM状態管理部203は、リモート接続カード1bのIPアドレスを端末装置2へ送信することで、端末装置2にリモート接続カード1b経由でVM30に接続するよう指示する(S116)。そして、VM状態管理部203は、端末装置2に対して、仮想NIC1aのIPアドレスを通知して監視パケットの送信を要求する(S117)。
次に、VM状態管理部203は、VM状態監視部204へVM情報の取得を指示する(S118)。VM状態管理部203は、指示した結果を受信したか否かを判定する(S119)。指示した結果を受信していない場合(S119:NO)、VM状態管理部203は、指示した結果を受信するまで待機する。指示した結果を受信した場合(S119:YES)、受信したVM情報をVM管理情報保存部206へ格納し(S120)、異常内容を端末装置2へ通知する(S121)。
VM状態管理部203は、VM30と端末装置2との接続が切断されたか否かを判定する(S122)。VM30と端末装置2との接続が切断されていない場合(S122:NO)、VM状態管理部203は、S103の処理を実行する。VM30と端末装置2との接続が切断された場合(S122:YES)、VM状態管理部203は、VM管理情報保存部206に格納されたVM情報を削除し(S123)、本処理を終了する。
図18は、VM30のネットワーク監視部301が行う処理手順を示すフローチャートである。
ネットワーク監視部301は、VM30と端末装置2との接続が確立したか判定する(S130)。確立していない場合(S130:NO)、ネットワーク監視部301は、接続が確立するまで待機する。確立した場合(S130:YES)、ネットワーク監視部301は、端末装置2のIPアドレス等の接続情報を通知する(S131)。
次にネットワーク監視部301は、VM状態管理部203からパケット監視開始通知を受信したか否かを判定する(S132)。パケット監視開始通知を受信していない場合(S132:NO)、ネットワーク監視部301は、S138の処理を実行する。パケット監視開始通知を受信した場合(S132:YES)、ネットワーク監視部301は、端末装置2からの要求パケットを検出したかを判定する(S133)。要求パケットを検出した場合(S133:YES)、ネットワーク監視部301は、要求パケットに対するゲストOS40の応答パケットを検出したか否かを判定する(S134)。
応答パケットを検出していない場合(S134:NO)、ネットワーク監視部301は、一定時間経過したか否かを判定する(S135)。一定時間経過していない場合(S135:NO)、ネットワーク監視部301は、S134を実行する。一定時間経過した場合(S135:YES)、ネットワーク監視部301は、接続異常と判定し、管理OS20のVM状態管理部203へ接続異常を通知する(S136)。なお、要求パケットを検出していない場合(S133:NO)、または、応答パケットを検出した場合(S134:YES)、ネットワーク監視部301は、S137の処理を実行する。
ネットワーク監視部301は、VM状態管理部203からパケット監視停止通知を受信したか否かを判定する(S137)。パケット監視停止通知を受信していない場合(S137:NO)、ネットワーク監視部301は、S133の処理を実行する。パケット監視停止通知を受信した場合(S137:YES)、ネットワーク監視部301は、VM環境と端末装置2との接続が切断されたか否かを判定する(S138)。切断されていない場合(S138:NO)、ネットワーク監視部301は、S132の処理を実行する。接続が切断された場合(S138:YES)、ネットワーク監視部301は、管理OS20へ切断を通知し(S139)、本処理を終了する。
以上説明したように、本実施の形態では、VM30において、誤ったネットワーク設定を行ったために、NIC1a経由でVM30と端末装置2とが接続できなくなった場合、リモート接続カード1b経由でVM30と端末装置2とを接続する。これにより、端末装置2のユーザは、改めてVM30においてネットワーク設定を行うことができる。この結果、端末装置2のユーザは、管理者等に接続異常となった原因を排除してもらうよう依頼することなく、自身で原因を排除することができるため、接続異常時の管理者の負担を軽減でき、また、ユーザは管理者に依頼するといった手間を省くことができる。
また本実施の形態では、端末装置2から接続異常が通知された場合に、サーバ装置1においてパケット監視を開始することで、パケット監視のためにサーバ装置1における処理負荷が高くなることを回避することができる。この結果、サーバ装置1のリソースが、パケット監視の処理に占有され、サーバ装置1における他の処理に影響が及ぶことを防ぐことができる。
なお、本実施の形態では、ネットワーク接続監視部201でネットワーク接続異常を検出することでパケット監視を開始するようにしているが、接続異常をサーバ装置1へ通知する場合、ユーザに通知を選択させるようにしてもよい。
(実施形態3)
以下に、実施の形態3について説明する。本実施の形態では、サーバ装置1は、リモート接続カード1b及びグラフィックカード1cを複数備えているものとする。
本実施の形態では、サーバ装置1は、VM30及び端末装置2間の接続異常の場合だけでなく、ユーザからの要求により、リモート接続カード1b経由でVM30と端末装置2とを接続する。また、本実施の形態では、VM30と端末装置2との接続異常の場合、かつ、VM30に割り当てることができるリモート接続カード1bがない場合、他のVM30に割り当てられているリモート接続カード1bの割り当てを解放する。そして、割り当て解放したリモート接続カード1bを、対応するVM30割り当てる。以下、実施の形態1との相違点について説明する。
端末装置2では、所定のアプリケーションを実行することで、端末装置2をリモート接続カード1b経由でVM30へ接続するための画面が表示される。図19Aは、リモート接続カード1bの使用開始時に端末装置2のモニタに表示する画面の一例を示す図である。図19Aに示す画面では、使用可能なデバイス(リモート接続カード1b及びグラフィックカード1c)の一覧が表示される。使用可能なデバイスとは、サーバ装置1において、何れのVM30に割り当てられていないデバイスである。この画面でユーザがデバイスを選択した場合、端末装置2からサーバ装置1へ、選択したデバイス(デバイス番号)が送信される。図19Bは、リモート接続カード1bの使用終了時に端末装置2のモニタに表示する画面の一例を示す図である。図19Bに示す画面では、使用中のデバイス(リモート接続カード1b及びグラフィックカード1c)が表示され、終了させるか否かをユーザに選択させるボタンが表示される。終了が選択された場合、端末装置2は、サーバ装置1へデバイスの使用終了を通知する。
以下に、サーバ装置1で実現される機能について説明する。図20は、サーバ装置1が有する機能を示すブロック図である。
サーバ装置1は、実施の形態1で説明した機能に加え、利用管理部208の機能をさらに有している。利用管理部208は、管理OS20上で動作し、何れのVM30に割り当てられていないデバイス(リモート接続カード1b及びグラフィックカード1c)の一覧を取得する。また利用管理部208は、端末装置2からリモート接続カード1bの使用要求を受け付けた場合、端末装置2に図19Aの画面情報をパケット送信する。さらに利用管理部208は、端末装置2において選択されたデバイスを受信した場合、そのデバイスについて、VM状態管理部203にVM30への割り当てを指示する。
本実施の形態に係るVM状態管理部203は、デバイス割当情報保存部205に格納されたデバイス情報から、何れのVM30に割り当てられていないデバイスを取得し、利用管理部208へ通知する。またVM状態管理部203は、利用管理部208の指示により、デバイス割当制御部202へリモート接続カード等のデバイスの割り当てを指示する。割り当て完了後、VM状態管理部203は、デバイスを割り当てたVM30におけるリソース(例えばGraphics Processing Unit:GPU)の使用率(稼働率)の取得を、VM状態監視部204を介してVM情報収集部302へ指示する。リソースの使用率は、例えば一定時間内の平均値である。
VM状態管理部203は、VM30と端末装置2とをリモート接続カード経由で接続する際に、割り当てられていないリモート接続カードがない場合、リソースの使用率に基づいて、一時的に割り当て解放するリモート接続カードを特定する。具体的には、リソースの使用率が最も低いVM30に割り当てられたリモート接続カードの割り当てを解放すると決定する。又は、リモート接続カードを長時間占有している利用者のVM30から解放すると決定する。そして、VM状態管理部203は、デバイス割当制御部202に対応するリモート接続カードの割り当て解放を指示する。
以下に、サーバ装置1で実行される処理について説明する。なお、VM30と端末装置2との接続に異常があり、リモート接続カード1b経由で接続する場合の処理は、実施の形態1と同様であるため説明は省略する。
図21は、リモート接続カード1bの使用を開始する際に、サーバ装置1で実行される処理手順を示すフローチャートである。図21では、利用管理部208及びVM状態管理部203が行う処理手順を示している。
利用管理部208は、利用者がデバイス(リモート接続カード1b及びグラフィックカード1c)の利用申請のためのアプリケーションを端末装置2上で実行した場合、デバイスの使用状況の取得をVM状態管理部203へ指示する(S150)。指示されたVM状態管理部203は、デバイス割当情報保存部205から、VM30に割り当てられていないデバイスを取得し、利用管理部208へ通知する(S151)。
利用管理部208は、端末装置2のモニタに、デバイス選択画面(図19A参照)を表示させる(S152)。デバイス選択画面には、S151で取得されたデバイスの一覧が表示される。利用管理部208は、デバイス選択画面において、デバイスが選択されたか否かを判定する(S153)。選択されていない場合(S153:NO)、利用管理部208は、選択されるまで待機する。選択された場合(S153:YES)、利用管理部208は、選択されたデバイスの割り当てをVM状態管理部203へ指示する(S154)。
VM状態管理部203は、デバイス割当制御部202にデバイスの割り当てを指示し(S155)、デバイスを割り当てたVM30のVM情報収集部302へリソース使用率の取得開始を指示する(S156)。指示されたVM情報収集部302は、定期的にリソースの使用率を取得する。VM状態管理部203は、割り当てたリモート接続カード1bのIPアドレスを端末装置2へ送信することにより、リモート接続カード1b経由でVM30に接続するよう端末装置2に指示する(S157)。その後、利用管理部208は、端末装置2にデバイス割り当てが完了したことを通知し(S158)、本処理は終了する。
図22は、リモート接続カード1bの使用を終了する際に、サーバ装置1で実行される処理手順を示すフローチャートである。図22では、利用管理部208及びVM状態管理部203が行う処理手順を示している。
利用管理部208は、利用者がデバイス(リモート接続カード1b及びグラフィックカード1c)の使用終了のためのアプリケーションを端末装置2上で実行した場合、端末装置2が使用するデバイスの取得をVM状態管理部203へ指示する(S160)。指示されたVM状態管理部203は、デバイス割当情報保存部205から、端末装置2が使用中のデバイスを取得し、利用管理部208へ通知する(S161)。
利用管理部208は、端末装置2のモニタに使用終了画面(図19B参照)を表示する(S162)。使用終了画面では、端末装置2が使用中のデバイスが表示される。利用管理部208は、使用終了画面において、使用の終了が選択されたか否かを判定する(S163)。使用の終了が選択されていない場合(S163:NO)、利用管理部208は、選択されるまで待機する。使用の終了が選択された場合(S163:YES)、利用管理部208は、デバイスの割り当て解放をVM状態管理部203へ指示する(S164)。
VM状態管理部203は、デバイス割当制御部202にデバイスの割り当て解放を指示し(S165)、デバイスを割り当てていたVM30のVM情報収集部302へリソース使用率の取得終了を指示する(S166)。VM状態管理部203は、NIC1aのIPアドレスを端末装置2へ通知することで、NIC1a経由でVM30に接続するよう、端末装置2に指示する(S167)。その後、利用管理部208は、端末装置2にデバイスの割り当て解放が完了したことを通知し(S168)、本処理は終了する。
図23は、割り当てられたデバイスを一時的に割り当て解放する際に、サーバ装置1で実行される処理手順を示すフローチャートである。図23に示す処理は、VM状態管理部203により実行される。
VM状態管理部203は、VM30と端末装置2との間に接続異常が発生したために、リモート接続カード1bをVM30に割り当てる必要が生じたか否かを判定する(S170)。割り当てる必要が生じていない場合(S170:NO)、VM状態管理部203は、本処理を終了する。割り当てる必要が生じた場合(S170:YES)、VM状態管理部203は、デバイス割当情報保存部205に格納されたデバイス情報から、デバイスの使用状況を取得する(S171)。
次に、取得した使用状況から、VM状態管理部203は、未使用、すなわち、何れのVM30に割り当てられていないリモート接続カード1bがあるか否かを判定する(S172)。未使用のリモート接続カード1bがある場合(S172:YES)、VM状態管理部203は、未使用のリモート接続カード1bを、対応するVM30に割り当てる(S177)。具体的には、VM状態管理部203は、デバイス割当制御部202へ割り当てを指示する。そして、VM状態管理部203は、割り当てたリモート接続カード1bのIPアドレスを端末装置2へ送信することにより、リモート接続カード1b経由でVM30に接続するよう端末装置2に指示する(S178)。その後、VM状態管理部203は、本処理を終了する。
未使用のリモート接続カード1bがない場合(S172:NO)、VM状態管理部203は、リモート接続カード1bが割り当てられているVM30から、リソースの使用率を取得する(S173)。リモート接続カード1bが割り当てられているVM30は、リソースの使用率の取得を定期的に行っている。VM状態管理部203は、取得したリソースの使用率のなかから、最低の使用率を取得したVM30を特定する(S174)。
VM状態管理部203は、特定したVM30に割り当てられているリモート接続カード1bの割り当て解放をデバイス割当制御部202へ指示する(S175)。このとき、VM状態管理部203は、解放するリモート接続カード1bを使用していた端末装置2に対して、一時的に割り当てを解放することを通知する。次に、VM状態管理部203は、特定したVM30に対して、リソースの使用率の取得終了を指示する(S176)。そして、VM状態管理部203は、リモート接続カード1bを割り当てる必要があるVM30に、解放したリモート接続カード1bを割り当てる(S177)。次に、VM状態管理部203は、割り当てたリモート接続カード1bのIPアドレスを端末装置2へ送信することにより、リモート接続カード1b経由でVM30に接続するよう端末装置2に指示する(S178)。その後、VM状態管理部203は、本処理を終了する。
以上説明したように、本実施の形態では、接続異常時以外でもリモート接続カード1bを使用することができる。NIC1a経由でVM30と端末装置2とを接続している場合、サーバ装置1のリソースの使用率が高くなったときに、VM30と端末装置2との通信速度が低下する場合がある。この場合に、リモート接続カード1b経由でVM30と端末装置2とを直接接続することで、リソースの使用率が高くなったことによる影響を回避することができる。
また、本実施の形態では、未使用のリモート接続カード1bがない場合には、リソースの使用率が最低のVM30に割り当てられているリモート接続カード1bの割り当てを解放する。リソースの使用率、すなわち稼働率が低いVM30からリモート接続カード1bの割り当てを解放することで、強制的にリモート接続カード1bの割り当て解放を行うことの影響を最小限に抑えることができる。
なお、本実施の形態では、リソースの使用率が最低のVM30に対するリモート接続カード1bの割り当てを解放するようにしているが、これに限定されることはない。例えば、上述したように、リモート接続カードを長時間占有している利用者のVM30を特定し、割り当てを解放して、他のVMに割り当てるようにしてもよい。
(実施形態4)
以下に、実施の形態4について説明する。本実施の形態では、VM30のゲストOS40でコンピュータウィルスが検出された場合に、リモート接続カード1b経由でVM30と端末装置2とを接続するようになっている。以下、実施の形態1との相違点について説明する。なお、VM30と端末装置2との接続に異常があり、リモート接続カード1b経由で接続する場合の処理は、実施の形態1と同様である。
図24は、サーバ装置1が有する機能を示すブロック図である。
サーバ装置1は、実施の形態1で説明した機能に加え、駆除ツール収集部209及び駆除ツール保存部210の機能をさらに有している。駆除ツール収集部209は、管理OS20上で動作し、コンピュータウィルスを駆除するための駆除ツール、又はウィルス定義ファイルを定期的に外部から取得し、駆除ツール保存部210に格納する。駆除ツール保存部210に格納される情報は、駆除ツール及びウィルス定義ファイルを識別する識別情報、駆除ツール等が更新された日時、駆除ツール等を保存しているファイルパス等である。
本実施の形態に係るVM状態管理部203は、VM状態監視部204からウィルス検出が通知された場合、端末装置2に対してウィルス検出を通知し、ウィルス対策手順を通知する。通知後、VM状態管理部203は、リモート接続カード1bを、ウィルスが検出されたVM30に割り当て、駆除ツール等を駆除ツール保存部210から取得し、VM状態監視部204を介してVM30へ転送する。VM状態監視部204からウィルス対策完了が通知された場合、VM状態管理部203は、VM30に割り当てていたリモート接続カード1bの割り当てを解放し、端末装置2にNIC1a経由での接続を指示する。
本実施の形態に係るVM状態監視部204は、VM情報収集部302からウィルス検出が通知された場合、VM状態管理部203に通知する。またVM状態監視部204は、VM情報収集部302からウィルス対策(駆除)の完了が通知された場合、VM状態管理部203に通知する。VM状態監視部204は、VM状態管理部203から駆除ツール等を受信し、VM30に転送する。
本実施の形態に係るVM情報収集部302は、ゲストOS40で実行されるアプリケーションによりウィルスが検出された場合、ネットワークアダプタ(仮想NIC30a)を無効化し、VM状態監視部204にウィルス検出を通知する。またVM情報収集部302は、ウィルスが検出されなくなった場合、無効化していたネットワークアダプタを有効化し、VM状態監視部204に対策完了を通知する。
図25は、VM30のVM情報収集部302が行う処理手順を示すフローチャートである。
VM情報収集部302は、ゲストOS40においてウィルスが検出されたか否かを判定する(S180)。ウィルス検出は、例えばゲストOS40で実行される特定のアプリケーションにより行われる。ウィルスが検出されていない場合(S180:NO)、VM情報収集部302は、本処理を終了する。ウィルスが検出された場合(S180:YES)、VM情報収集部302は、VM30が使用する全ネットワークアダプタ、例えば仮想NIC30aを無効化する(S181)。
次に、VM情報収集部302は、VM状態監視部204を介してVM状態管理部203へウィルス検出を通知し(S182)、その結果、VM状態管理部203から送信される駆除ツール及びウィルス定義ファイルを取得する(S183)。
VM情報収集部302は、取得した駆除ツール等により、ウィルス駆除が完了したか否かを判定する(S184)。ウィルス駆除は、端末装置2のユーザにより行われてもよいし、自動で行われてもよい。ウィルス駆除が完了していない場合(S184:NO)、VM情報収集部302は、ウィルス駆除が完了するまで待機する。ウィルス駆除が完了した場合(S184:YES)、VM情報収集部302は、無効化したネットワークアダプタ、例えば仮想NIC30aを有効化する(S185)。そして、VM情報収集部302は、ウィルス駆除が完了したことを、VM状態監視部204を介してVM状態管理部203へ通知する(S186)。その後、VM情報収集部302は、本処理を終了する。
図26は、管理OS20のVM状態管理部203が実行する処理手順を示すフローチャートである。
VM状態管理部203は、VM情報収集部302からウィルス検出通知を受信したか否かを判定する(S190)。ウィルス検出通知を受信していない場合(S190:NO)、VM状態管理部203は、本処理を終了する。ウィルス検出通知を受信した場合(S190:YES)、VM状態管理部203は、ウィルスが検出されたVM30に対応する端末装置2に対してウィルス検出を通知する(S191)。
VM状態管理部203は、ウィルスが検出されたVM30へのリモート接続カード1bの割り当てを、デバイス割当制御部202へ指示する(S192)VM状態管理部203は、割り当てたリモート接続カード1bのIPアドレスを端末装置2へ通知することで、リモート接続カード1b経由でVM30へ接続するよう端末装置2に指示する(S193)。
VM状態管理部203は、駆除ツール保存部210より駆除ツール及びウィルス定義ファイルを取得し、VM状態監視部204を介してVM30へ送信する(S194)。VM状態管理部203は、VM情報収集部302からウィルス駆除完了通知を受信したか否かを判定する(S195)。ウィルス駆除完了通知を受信していない場合(S195:NO)、VM状態管理部203は、ウィルスが駆除されるまで待機する。ウィルス駆除完了通知を受信した場合(S195:YES)、VM状態管理部203は、割り当てていたリモート接続カード1bの割り当ての解放を、デバイス割当制御部202へ指示する(S196)。VM状態管理部203は、NIC1aのIPアドレスを端末装置2へ通知することで、NIC1a経由でVM30へ接続するよう端末装置2に指示する(S197)。そして、VM状態管理部203は、本処理を終了する。
図27は、管理OS20の駆除ツール収集部209が実行する処理手順を示すフローチャートである。
駆除ツール収集部209は、駆除ツール保存部210に格納される駆除ツール等の更新日を確認し(S201)、更新が必要か否かを判定する(S202)。具体的には、駆除ツール収集部209は、外部のサーバ装置等にアクセスして、取得した更新日以降に新たなデータがある場合、更新が必要と判定する。更新が必要でない場合(S202:NO)、駆除ツール収集部209は、本処理を終了する。更新が必要と判定した場合(S202:YES)、駆除ツール収集部209は、ダウンロード等して駆除ツール保存部210に格納された駆除ツール等を更新し(S203)、本処理を終了する。
以上説明したように、本実施の形態では、ウィルスが検出された場合、リモート接続カード1b経由でVM30と端末装置2とを直接接続する。これにより、サーバ装置1のVMM10又は管理OS20等に、ウィルスが影響を及ぼすおそれを回避することができる。また、ウィルス検出時に、VM30と端末装置2とを完全に切断するのではなく、リモート接続カード1b経由で接続することで、端末装置2のユーザが、ウィルスの駆除又は対策を行うことができる。
以上、本発明の実施の形態について、具体的に説明したが、各構成及び動作等は適宜変更可能であって、上述の実施形態に限定されることはない。
以下に、上述の実施形態を含む実施形態に関し、更に付記を開示する。
(付記1)
外部装置から利用可能な仮想計算機が動作する情報処理装置において、
外部装置が接続される第1及び第2入出力部と、
前記第1入出力部及び前記仮想計算機を論理的に接続する第1接続手段と、
該第1接続手段が接続した場合、前記外部装置が送信するデータの送信先を前記第1入出力部に設定する手段と、
前記第1入出力部と前記仮想計算機との接続に異常があるか否かを判定する第1判定手段と、
前記第1判定手段が前記第1入出力部と前記仮想計算機との接続に異常があると判定した場合、前記第2入出力部及び前記仮想計算機を論理的に接続する第2接続手段と、
該第2接続手段が接続された場合、前記外部装置が送信するデータの送信先を前記第2入出力部に切り替える切替手段と
を備える情報処理装置。
(付記2)
前記切替手段により前記外部装置が送信するデータの送信先を前記第2入出力部に切り替えた場合、前記第1入出力部及び前記仮想計算機の接続の異常が解消されたか否かを判定する第2判定手段
をさらに備え、
前記切替手段は、
前記第2判定手段が、前記第1入出力部と前記仮想計算機との接続の異常が解消されたと判定した場合、前記外部装置が送信するデータの送信先を前記第1入出力部に切り替えるようにしてある
付記1に記載の情報処理装置。
(付記3)
前記第2判定手段は、
前記第1入出力部に対して信号を送信するよう、前記外部装置に指示する指示手段
を有し、
前記仮想計算機から、前記信号に応答する信号が出力された場合、前記第1入出力部と前記仮想計算機との接続の異常が解消されたと判定するようにしてある
付記2に記載の情報処理装置。
(付記4)
前記指示手段は、
前記外部装置にICMPパケットデータを送信するよう指示するようにしてある
付記3に記載の情報処理装置。
(付記5)
前記指示手段は、
前記外部装置にTCPパケットデータを送信するよう指示するようにしてある
付記3に記載の情報処理装置。
(付記6)
前記第1判定手段は、
前記外部装置からの信号を受信した場合、判定を行うようにしてある
付記1から5の何れか一つに記載の情報処理装置。
(付記7)
前記第2入出力部の使用要求を受け付ける手段と、
使用要求を受け付けた場合、前記第2入出力部及び前記仮想計算機を論理的に接続する手段と
をさらに備える付記1から6の何れか一つに記載の情報処理装置。
(付記8)
前記仮想計算機以外の他の仮想計算機が動作するようにしてあり、
前記第1判定手段が前記仮想計算機の接続に異常があると判定した場合、前記第2入出力部が前記他の仮想計算機と論理的に接続されているか否かを判定する第3判定手段と、
前記第2入出力部が前記他の仮想計算機と論理的に接続されていると判定した場合、前記他の仮想計算機の稼働率を取得する稼働率取得手段と、
取得した稼働率に基づいて、前記第2入出力部及び前記他の仮想計算機の接続を切断するか否かを判定する切断判定手段と
をさらに備え、
前記第2接続手段は、
前記第2入出力部及び前記他の仮想計算機の接続を切断すると判定した場合、前記第2入出力部及び前記仮想計算機を論理的に接続するようにしてある
付記1から7の何れか一つに記載の情報処理装置。
(付記9)
前記他の仮想計算機が複数動作し、かつ、前記第2入出力部を複数備えている場合、
前記第3判定手段は、
前記第2入出力部の全てが、前記他の仮想計算機と論理的に接続されているか否かを判定し、
前記稼働率取得手段は、
前記第2入出力部が接続されている他の仮想計算機それぞれの稼働率を取得し、
前記切断判定手段は、
前記稼働率取得手段が取得した最低の稼働率に対応する他の仮想計算機、及び前記第2入出力部の接続を切断すると判定するようにしてある
付記8に記載の情報処理装置。
(付記10)
前記仮想計算機にウィルスが検出されたか否かを判定する手段と、
検出された場合、前記第1入出力部及び前記仮想計算機の接続を切断する手段と
をさらに備え、
前記第2接続手段は、
接続が切断された場合、前記第2入出力部及び前記仮想計算機を論理的に接続するようにしてある
付記1から9の何れか一つに記載の情報処理装置。
(付記11)
前記第2接続手段が前記第2入出力部及び前記仮想計算機を接続した場合、前記仮想計算機のウィルスが駆除されたか否かを判定する手段と、
駆除されたと判定した場合、前記第1接続手段に、前記第1入出力部及び前記仮想計算機を接続させる手段と
をさらに備え、
前記切替手段は、
前記第1接続手段に接続させた場合、前記外部装置が送信するデータの送信先を前記第1入出力部に切り替えるようにしてある
付記10に記載の情報処理装置。
(付記12)
外部装置が接続される第1及び第2入出力部を備える情報処理装置で動作する仮想計算機と、前記外部装置とを接続する仮想計算機接続方法において、
前記第1入出力部及び前記仮想計算機を論理的に接続し、
前記第1入出力部及び前記仮想計算機を接続した場合、前記外部装置が送信するデータの送信先を前記第1入出力部に設定し、
前記第1入出力部と前記仮想計算機との接続に異常があるか否かを判定し、
前記第1入出力部と前記仮想計算機との接続に異常があると判定した場合、前記第2入出力部及び前記仮想計算機を論理的に接続し、
前記第2入出力部及び前記仮想計算機を接続した場合、前記外部装置が送信するデータの送信先を前記第2入出力部に切り替える
仮想計算機接続方法。
(付記13)
外部装置が接続される第1及び第2入出力部を備え、仮想計算機が動作するコンピュータで実行されるプログラムにおいて、
コンピュータを、
前記第1入出力部及び前記仮想計算機を論理的に接続する第1接続手段、
該第1接続手段が接続した場合、前記外部装置が送信するデータの送信先を前記第1入出力部に設定する手段、
前記第1入出力部と前記仮想計算機との接続に異常があるか否かを判定する第1判定手段、
前記第1判定手段が、前記第1入出力部と前記仮想計算機との接続に異常があると判定した場合、前記第2入出力部及び前記仮想計算機を論理的に接続する第2接続手段、及び、
該第2接続手段が接続した場合、前記外部装置が送信するデータの送信先を前記第2入出力部に切り替える切替手段
として機能させるプログラム。
(付記14)
付記13に記載のプログラムが記録されており、コンピュータでの読取り可能な記録媒体。
1 サーバ装置(情報処理装置)
1a NIC(第1入出力部)
1b リモート接続カード(第2入出力部)
1c グラフィックカード
2 端末装置
10 VMM
20 管理OS
30 VM
30a 仮想NIC

Claims (7)

  1. 外部装置から利用可能な複数の仮想計算機が動作する情報処理装置において、
    外部装置が接続される第1及び第2入出力部と、
    前記第1入出力部及び前記複数の仮想計算機のうちの一の仮想計算機を論理的に接続する第1接続手段と、
    該第1接続手段が接続した場合、前記外部装置が送信するデータの送信先を前記第1入出力部に設定する手段と、
    前記第1入出力部と前記一の仮想計算機との接続に異常があるか否かを判定する第1判定手段と、
    前記第1判定手段が前記一の仮想計算機の接続に異常があると判定した場合、前記第2入出力部が他の仮想計算機と論理的に接続されているか否かを判定する第2判定手段と、
    前記第2入出力部が前記他の仮想計算機と論理的に接続されていると判定した場合、前記他の仮想計算機の稼働率を取得する稼働率取得手段と、
    取得した稼働率に基づいて、前記第2入出力部及び前記他の仮想計算機の接続を切断するか否かを判定する切断判定手段と、
    前記第2入出力部及び前記他の仮想計算機の接続を切断すると判定した場合、前記第2入出力部及び前記一の仮想計算機を論理的に接続する第2接続手段と、
    該第2接続手段が接続された場合、前記外部装置が送信するデータの送信先を前記第2入出力部に切り替える切替手段と
    を備える情報処理装置。
  2. 前記切替手段により前記外部装置が送信するデータの送信先を前記第2入出力部に切り替えた場合、前記第1入出力部及び前記仮想計算機の接続の異常が解消されたか否かを判定する第判定手段
    をさらに備え、
    前記切替手段は、
    前記第判定手段が、前記第1入出力部と前記仮想計算機との接続の異常が解消されたと判定した場合、前記外部装置が送信するデータの送信先を前記第1入出力部に切り替えるようにしてある
    請求項1に記載の情報処理装置。
  3. 前記第1判定手段は、
    前記外部装置からの任意の信号を受信した場合、判定を行うようにしてある
    請求項1又は2に記載の情報処理装置。
  4. 前記第2入出力部の使用要求を受け付ける手段と、
    使用要求を受け付けた場合、前記第2入出力部及び前記仮想計算機を論理的に接続する手段と
    をさらに備える請求項1から3の何れか一つに記載の情報処理装置。
  5. 外部装置が接続される第1及び第2入出力部を備える情報処理装置で動作する仮想計算機と、前記外部装置とを接続する仮想計算機接続方法において、
    前記第1入出力部及び前記情報処理装置で動作する複数の仮想計算機のうちの一の仮想計算機を論理的に接続し、
    前記第1入出力部及び前記一の仮想計算機を接続した場合、前記外部装置が送信するデータの送信先を前記第1入出力部に設定し、
    前記第1入出力部と前記一の仮想計算機との接続に異常があるか否かを判定し、
    前記第1入出力部と前記一の仮想計算機との接続に異常があると判定した場合、前記第2入出力部が他の仮想計算機と論理的に接続されているか否かを判定し、
    前記第2入出力部が前記他の仮想計算機と論理的に接続されていると判定した場合、前記他の仮想計算機の稼働率を取得し、
    取得した稼働率に基づいて、前記第2入出力部及び前記他の仮想計算機の接続を切断するか否かを判定し、
    前記第2入出力部及び前記他の仮想計算機の接続を切断すると判定した場合、前記第2入出力部及び前記一の仮想計算機を論理的に接続し、
    前記第2入出力部及び前記仮想計算機を接続した場合、前記外部装置が送信するデータの送信先を前記第2入出力部に切り替える
    仮想計算機接続方法。
  6. 外部装置が接続される第1及び第2入出力部を備え、複数の仮想計算機が動作するコンピュータで実行されるプログラムにおいて、
    コンピュータを、
    前記第1入出力部及び前記複数の仮想計算機のうちの一の仮想計算機を論理的に接続する第1接続手段、
    該第1接続手段が接続した場合、前記外部装置が送信するデータの送信先を前記第1入出力部に設定する手段、
    前記第1入出力部と前記一の仮想計算機との接続に異常があるか否かを判定する第1判定手段、
    前記第1判定手段が、前記第1入出力部と前記一の仮想計算機との接続に異常があると判定した場合、前記第2入出力部が他の仮想計算機と論理的に接続されているか否かを判定する第2判定手段、
    前記第2入出力部が前記他の仮想計算機と論理的に接続されていると判定した場合、前記他の仮想計算機の稼働率を取得する稼働率取得手段、
    取得した稼働率に基づいて、前記第2入出力部及び前記他の仮想計算機の接続を切断するか否かを判定する切断判定手段、
    前記第2入出力部及び前記他の仮想計算機の接続を切断すると判定した場合、前記第2入出力部及び前記一の仮想計算機を論理的に接続する第2接続手段、及び、
    該第2接続手段が接続した場合、前記外部装置が送信するデータの送信先を前記第2入出力部に切り替える切替手段
    として機能させるプログラム。
  7. 請求項に記載のプログラムが記録されており、コンピュータでの読取り可能な記録媒体。
JP2010040708A 2010-02-25 2010-02-25 情報処理装置、仮想計算機接続方法、プログラム及び記録媒体 Expired - Fee Related JP5477047B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010040708A JP5477047B2 (ja) 2010-02-25 2010-02-25 情報処理装置、仮想計算機接続方法、プログラム及び記録媒体
US13/032,164 US20110209148A1 (en) 2010-02-25 2011-02-22 Information processing device, virtual machine connection method, program, and recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010040708A JP5477047B2 (ja) 2010-02-25 2010-02-25 情報処理装置、仮想計算機接続方法、プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2011175582A JP2011175582A (ja) 2011-09-08
JP5477047B2 true JP5477047B2 (ja) 2014-04-23

Family

ID=44477563

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010040708A Expired - Fee Related JP5477047B2 (ja) 2010-02-25 2010-02-25 情報処理装置、仮想計算機接続方法、プログラム及び記録媒体

Country Status (2)

Country Link
US (1) US20110209148A1 (ja)
JP (1) JP5477047B2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011198299A (ja) * 2010-03-23 2011-10-06 Fujitsu Ltd プログラム、コンピュータ、通信装置および通信制御システム
JP5719316B2 (ja) * 2012-01-05 2015-05-13 株式会社日立製作所 計算機システム及び障害処理方法
JP5675679B2 (ja) * 2012-03-13 2015-02-25 株式会社東芝 仮想イメージファイル作成システムおよび仮想イメージファイル作成方法
JP6043615B2 (ja) * 2012-12-13 2016-12-14 株式会社エヌ・ティ・ティ・データ 機能利用制御装置、機能利用制御方法、機能利用制御プログラム
JP6303405B2 (ja) * 2013-11-01 2018-04-04 富士通株式会社 情報処理装置、管理装置、監視装置、監視プログラム、及び管理装置の監視方法
JP2015158773A (ja) * 2014-02-24 2015-09-03 富士通株式会社 仮想装置の動作検証装置,仮想装置の動作検証システム及びプログラム
JP2017027385A (ja) * 2015-07-23 2017-02-02 富士ゼロックス株式会社 情報処理システム、端末装置及びプログラム
US9870248B2 (en) * 2015-08-13 2018-01-16 Red Hat Israel, Ltd. Page table based dirty page tracking
MX2019011257A (es) * 2017-03-28 2019-11-01 Cloudjumper Corp Metodos y sistemas para proporcionar acceso de activacion por demanda a los servidores de sesiones.
US10929250B2 (en) * 2018-09-27 2021-02-23 EMC IP Holding Company LLC Method and system for reliably restoring virtual machines
US11418584B2 (en) * 2019-11-14 2022-08-16 Vmware, Inc. Inter-service communications

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173411B1 (en) * 1997-10-21 2001-01-09 The Foxboro Company Method and system for fault-tolerant network connection switchover
FR2808353B1 (fr) * 2000-04-28 2003-12-05 Airsys Atm S A Dispositif de gestion d'entrees/sorties redondant, notamment de routage informatique
US6728780B1 (en) * 2000-06-02 2004-04-27 Sun Microsystems, Inc. High availability networking with warm standby interface failover
CA2415598A1 (en) * 2002-01-11 2003-07-11 Nec Corporation Multiplex communication system and method
JP3957065B2 (ja) * 2002-08-28 2007-08-08 富士通株式会社 ネットワーク計算機システムおよび管理装置
US7307948B2 (en) * 2002-10-21 2007-12-11 Emulex Design & Manufacturing Corporation System with multiple path fail over, fail back and load balancing
FI122373B (fi) * 2002-10-24 2011-12-30 Tellabs Oy Menetelmä, järjestelmä ja verkko-olio yhteysvian havaitsemiseksi
JP4492084B2 (ja) * 2003-10-07 2010-06-30 株式会社日立製作所 ストレージパス制御方法
US7769021B1 (en) * 2004-07-03 2010-08-03 At&T Corp. Multiple media fail-over to alternate media
US7388829B2 (en) * 2005-03-25 2008-06-17 Cisco Technology, Inc. Method and apparatus for detecting and recovering from faults associated with transport protocol connections across network address translators
JP4622835B2 (ja) * 2005-12-07 2011-02-02 株式会社日立製作所 仮想計算機システム及びそのネットワーク通信方法
US8028040B1 (en) * 2005-12-20 2011-09-27 Teradici Corporation Method and apparatus for communications between a virtualized host and remote devices
JP5037016B2 (ja) * 2006-01-17 2012-09-26 株式会社リコー ネットワークコンピューティングシステム、通信方法、画像投影装置、画像入出力装置
US20070174429A1 (en) * 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
JP4709055B2 (ja) * 2006-03-31 2011-06-22 Necインフロンティア株式会社 IPテレフォニーシステム、VoIPサービス提供方法
JP4295783B2 (ja) * 2006-12-13 2009-07-15 株式会社日立製作所 計算機、仮想デバイスの制御方法
US8041987B2 (en) * 2008-11-10 2011-10-18 International Business Machines Corporation Dynamic physical and virtual multipath I/O
US8572609B2 (en) * 2009-07-01 2013-10-29 Riverbed Technology, Inc. Configuring bypass functionality of a network device based on the state of one or more hosted virtual machines
US7937438B1 (en) * 2009-12-07 2011-05-03 Amazon Technologies, Inc. Using virtual networking devices to manage external connections

Also Published As

Publication number Publication date
JP2011175582A (ja) 2011-09-08
US20110209148A1 (en) 2011-08-25

Similar Documents

Publication Publication Date Title
JP5477047B2 (ja) 情報処理装置、仮想計算機接続方法、プログラム及び記録媒体
CN108984266B (zh) 一种虚拟机的管理方法、装置及系统
CN112242923A (zh) 基于拟态防御的统一数据管理网络功能实现系统及方法
JP5708937B2 (ja) 構成情報管理システム、構成情報管理方法、及び構成情報管理用プログラム
US9201675B2 (en) DAAS manager and DAAS client for DAAS system
US8332490B2 (en) Method, apparatus and program product for provisioning a computer system
US20110029971A1 (en) Information processing apparatus, image processing method and computer program
US8065560B1 (en) Method and apparatus for achieving high availability for applications and optimizing power consumption within a datacenter
JP5754440B2 (ja) 構成情報管理サーバ、構成情報管理方法、及び構成情報管理用プログラム
JP5352367B2 (ja) 仮想マシン起動端末および仮想マシン起動プログラム
JP2019101866A (ja) アプリケーションの更新方法およびプログラム
CN113726834A (zh) 消息路由的方法、装置、系统、设备及介质
JP2015158773A (ja) 仮想装置の動作検証装置,仮想装置の動作検証システム及びプログラム
JP5501278B2 (ja) フィルタリング装置、フィルタリング方法、フィルタリングプログラム
US8868750B2 (en) Information processing device, computer system and program
TW201447599A (zh) 保留及執行本機計算裝置的影像寫入之技術
CN110609763B (zh) 管理和执行数据备份作业的方法、电子设备和计算机可读介质
CN108234215B (zh) 一种网关的创建方法、装置、计算机设备及存储介质
JP6515597B2 (ja) 管理プログラム、管理方法、管理装置
JP5736346B2 (ja) 仮想化装置、仮想化制御方法、仮想化装置制御プログラム
JP2017033310A (ja) ネットワーク装置設定方法、情報処理装置及びbiosプログラム
KR20150120607A (ko) 클라우드 컴퓨팅 시스템
JP6380774B1 (ja) コンピュータシステム、サーバ装置、プログラム及び障害検出方法
JP6311282B2 (ja) 起動制御プログラム、装置、及び方法
JP2015103827A (ja) 管理装置、方法及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130108

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140114

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140127

R150 Certificate of patent or registration of utility model

Ref document number: 5477047

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees