(57)【要約】【課題】ホストサーバ上で動作する仮想マシンからクライアント端末に接続された物理デバイスへアクセスするためのサーバ装置、計算機システム、プログラム及び仮想計算機移動方法を提供する。【解決手段】端末管理ＯＳ３２は、クライント端末３に対して物理デバイスの接続を検出した場合、接続通知を管理サーバ２に送信する。管理サーバ２は、クライアント端末３に割り当てられているホストＶＭ１３が当該クライアント端末３に移動が可能であるか否かを判定する。ホスト管理ＯＳ１２は、管理サーバ２により移動が可能であると判定した場合、ホストＶＭ１３をクライアント端末３へネットワーク網Ｎを介して移動させる。クライアント端末３に移動したホストＶＭ１３は、クライアント端末３に接続されている物理デバイスが割り当てられて当該物理デバイスへアクセス可能となる。【選択図】図５
2010237788.tif 000002
【特許請求の範囲】
【請求項１】
物理デバイスが接続された複数の端末装置夫々に対応付けて複数の仮想計算機を動作させるサーバ装置において、
前記複数の端末装置夫々へ、前記複数の仮想計算機夫々の移動が可能であるか否かを判定する判定手段と、
該判定手段により移動が可能であると判定した端末装置へ、該端末装置に対応付けた仮想計算機を移動する移動手段と、
該移動手段により移動した仮想計算機に、該端末装置に接続された物理デバイスを割り当てる割当手段と
を備えるサーバ装置。
【請求項２】
前記複数の端末装置に接続された物理デバイスを検出する検出手段を備え、
前記判定手段は、前記検出手段により検出した物理デバイスが接続された端末装置へ、該端末装置に対応付けた仮想計算機の移動が可能であるか否かを判定する
請求項１に記載のサーバ装置。
【請求項３】
前記複数の端末装置に接続された物理デバイスのうち、少なくとも１つの物理デバイスを選択する選択手段を備え、
前記判定手段は、前記選択手段により選択した物理デバイスが接続された端末装置へ、該端末装置に対応付けた仮想計算機の移動が可能であるか否かを判定する
請求項１又は請求項２に記載のサーバ装置。
【請求項４】
前記判定手段により移動が可能であると判定した端末装置に接続された物理デバイスの一覧を表示する表示手段と、
該表示手段により表示した一覧から、少なくとも１つの物理デバイスを選択する操作を受付ける操作受付手段と
を備え、
前記選択手段は、前記操作受付手段により受け付けた操作に基づいて物理デバイスを選択する
請求項３に記載のサーバ装置。
【請求項５】
前記複数の端末装置に接続された物理デバイス夫々に対するアクセス可否を記憶してある記憶部と、
該記憶部に記憶してあるアクセス可否に基づいて前記割当手段が割り当てた物理デバイスに対するアクセスを許可する許可手段と
を備える請求項１乃至請求項４のいずれか一項に記載のサーバ装置。
【請求項６】
物理デバイスが接続された複数の端末装置と、該複数の端末装置夫々に対応付けて複数の仮想計算機を動作させるサーバ装置とを有する計算機システムにおいて、
前記サーバ装置は、
前記複数の端末装置夫々へ前記複数の仮想計算機夫々の移動が可能であるか否かを判定する判定手段と、
該判定手段により移動が可能であると判定した端末装置へ、該端末装置に対応付けた仮想計算機を移動する移動手段と
を備え、
前記端末装置は、
前記移動手段により移動した仮想計算機に物理デバイスを割り当てる割当手段
を備える計算機システム。
【請求項７】
物理デバイスが接続された複数の端末装置夫々に対応付けて複数の仮想計算機を動作させるサーバ装置に、前記複数の端末装置夫々へ前記仮想計算機を移動させるプログラムにおいて、
前記サーバ装置に
前記複数の端末装置夫々へ前記複数の仮想計算機夫々の移動が可能であるか否かを判定する判定ステップと、
該判定ステップにより移動が可能であると判定した端末装置へ、該端末装置に対応付けた仮想計算機を移動する移動ステップと、
該移動ステップにより移動した仮想計算機に、該端末装置に接続された物理デバイスを割り当てる割当ステップと
を実行させるプログラム。
【請求項８】
物理デバイスが接続された複数の端末装置夫々に対応付けた複数の仮想計算機を前記複数の端末装置へ移動させる仮想計算機移動方法において、
前記複数の端末装置夫々へ前記複数の端末装置夫々の移動が可能であるか否かを判定する判定手順と、
移動が可能であると判定した端末装置へ、該端末装置に対応付けた仮想計算機を移動する移動手順と、
移動した仮想計算機に、該端末装置に接続された物理デバイスを割り当てる割当手順と
含む仮想計算機移動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、サーバ装置で動作する仮想マシンから端末装置に接続された物理デバイスへアクセスするためのサーバ装置、計算機システム、プログラム及び仮想計算機移動方法に関する。
【背景技術】
【０００２】
近年、1台のサーバ上で複数の仮想計算機としての仮想マシンを同時に動作させる仮想化技術が普及してきている。この仮想化技術をクライアントＯＳ（ Operating System ）に適用して、複数のクライアント端末夫々に、ホストサーバ上で動作している複数の仮想マシンを割り当てるシステムがある。各クライアント端末を操作するユーザは、ネットワークを介してホストサーバ上で動作している仮想マシンを利用することが可能となる。また、１台のホストサーバに限るものではなく、複数のホストサーバ上で複数の仮想マシンを動作させることも行われている。この場合、複数のホストサーバ上で各仮想マシンを最適なリソース環境で動作させるべくホストサーバ間で仮想マシンを移動させる技術が知られている（例えば、特許文献１、特許文献２及び特許文献３参照）。
【０００３】
クライアント端末には、ウェブカメラ、ＤＶＤ（ Digital Versatile Disc ）ドライブ及びＵＳＢ（ Universal Serial Bus ）メモリ等の物理デバイスが接続されている。クライアント端末に割り当てられたホストサーバ上の仮想マシンは、例えばＲＤＰ（Remote Desktop Protocol ）等を用い、ネットワークを介してクライアント端末に接続された物理デバイスへアクセスする。物理デバイスとして例えばウェブカメラを利用する場合、仮想マシンは、ネットワークを介してウェブカメラにアクセスし、画像データを随時受信する。また、物理デバイスとして例えばＤＶＤドライブを利用する場合、仮想マシンは、ネットワークを介して記録媒体が挿入されたＤＶＤドライブにアクセスし、ＤＶＤドライブが読み取ったデータを受信する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１３２４８号公報
【特許文献２】特開平１０−１９０９０３号公報
【特許文献３】特開２００６−１５５５７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ネットワークを介して物理デバイスへアクセスするため、仮想化技術による物理デバイスのエミュレーション処理やネットワークの遅延によるスループット低下のために、物理デバイスへのアクセスが遅いという問題があった。
【０００６】
本願は斯かる事情に鑑みてなされたものであり、ユーザにより物理デバイスが接続された端末装置へ仮想計算機を移動させる移動手段を備えることにより、ネットワークを介さずに物理デバイスへアクセスすることで、効率化を可能にするサーバ装置、計算機システム、プログラム及び仮想計算機移動方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本願に開示するサーバ装置は、物理デバイスが接続された複数の端末装置夫々に対応付けて複数の仮想計算機を動作させるサーバ装置において、前記複数の端末装置夫々へ、前記複数の仮想計算機夫々の移動が可能であるか否かを判定する判定手段と、該判定手段により移動が可能であると判定した端末装置へ、該端末装置に対応付けた仮想計算機を移動する移動手段と、該移動手段により移動した仮想計算機に、該端末装置に接続された物理デバイスを割り当てる割当手段とを備える。
【発明の効果】
【０００８】
当該装置の一観点によれば、物理デバイスが接続された端末装置へ仮想計算機を移動させる移動手段を備えることにより、ネットワークを介さずに物理デバイスへアクセス可能にする。
【図面の簡単な説明】
【０００９】
【図１】計算機システムを示す説明図である。
【図２】ホストサーバ及びクライアント端末で実行されるソフトウェアを含む例を示す説明図である。
【図３】ハードウェアの例を示すブロック図である。
【図４】ハードウェアの例を示すブロック図である。
【図５】各ソフトウェアの例を示すブロック図である。
【図６】ローカルリソース情報テーブルのレコードレイアウト例を示す図表である。
【図７】リソース情報テーブルのレコードレイアウト例を示す図表である。
【図８】接続テーブルのレコードレイアウト例を示す図表である。
【図９】各ソフトウェアの例を示すブロック図である。
【図１０】ＶＭ起動処理の手順を示すフローチャートである。
【図１１】リモート接続処理の手順を示すフローチャートである。
【図１２】接続テーブル更新処理の手順を示すフローチャートである。
【図１３】移動要求処理の手順を示すフローチャートである。
【図１４】移動処理の手順を示すフローチャートである。
【図１５】移動判定処理の手順を示すフローチャートである。
【図１６】返還処理の手順を示すフローチャートである。
【図１７】各ソフトウェアの例を示すブロック図である。
【図１８】物理デバイスの選択に係る画面例を示す模式図である。
【図１９】移動先端末の選択に係る画面例を示す模式図である。
【図２０】返還指示を受付けるための画面例を示す模式図である
【図２１】移動先端末選択処理の手順を示すフローチャートである。
【図２２】移動先端末選択処理の手順を示すフローチャートである。
【図２３】一覧作成処理の手順を示すフローチャートである。
【図２４】返還処理の手順を示すフローチャートである。
【図２５】返還処理の手順を示すフローチャートである。
【図２６】各ソフトウェアの例を示すブロック図である。
【図２７】アクセス制限テーブルのレコードレイアウト例を示す図表である。
【図２８】アクセス制限処理の手順を示すフローチャートである。
【図２９】アクセス制限処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００１０】
実施の形態１
以下、実施の形態を図面に基づいて具体的に説明する。図１は、計算機システムを示す説明図である。計算機システムは、サーバ装置としての複数のホストサーバ（コンピュータ）１と、管理装置としての管理サーバ（コンピュータ）２と、端末装置としての複数のクライアント（コンピュータ）端末３とを含む。ホストサーバ１、管理サーバ２及びクライアント端末３夫々は、ネットワーク網Ｎを介して通信可能に接続してある。ホストサーバ１は、仮想化プログラムとしてのＶＭＭ（ Virtual Machine Monitor ）を実行している。
【００１１】
ホストサーバ１は、複数の仮想計算機（仮想マシン）として複数のＶＭ（ Virtual Machine ）をＶＭＭ上で動作させる。以下、ホストサーバ１で実行しているＶＭＭ及び当該ＶＭＭ上で動作しているＶＭ夫々をホストＶＭＭ及びホストＶＭと呼ぶ。ＶＭＭは、例えばＸｅｎ等である。クライアント端末３は、例えばパーソナルコンピュータ、又はホストサーバ１と同様にＶＭＭを実行させる機能及び入出力機能を有する入出力装置等である。ホストサーバ１で動作している各ホストＶＭには、クライアント端末３夫々が割り当てられており、各クライアント端末３からリモート操作するようにしてある。これにより、ホストサーバ１及びクライアント端末３は、例えばシンクライアントシステムのホストサーバ及びシンクライアント端末として機能する。また、ホストサーバ１及びクライアント端末３夫々は、複数である場合に限らず１台であってもよい。
【００１２】
図２は、ホストサーバ１及びクライアント端末３で実行されるソフトウェアを含む例を示す説明図である。図２（ａ）はホストサーバ１を、図２（ｂ）はクライアント端末３を夫々示している。ホストサーバ１は、ハードウェア１０と、ホストＶＭＭ１１と、ホスト管理ＯＳ１２と、複数のホストＶＭ１３とを含む。ホスト管理ＯＳ１２は、複数のホストＶＭ１３と同様にホストＶＭＭ１１上で動作している。ホストＶＭＭ１１は、ハードウェア１０に含まれる物理デバイスを各ホストＶＭ１３に割り当てて、各ＶＭ１３から物理デバイスへアクセス可能にしてある。ホスト管理ＯＳ１２は、各ホストＶＭ１３が使用している計算資源としてのリソース情報を管理しており、当該リソース情報を管理サーバ２に随時送信するようにしてある。
【００１３】
クライアント端末３は、ホストサーバ１と同様にＶＭＭが実行されており、当該ＶＭＭ上でＶＭが動作している。以下、クライアント端末３で実行しているＶＭＭ及び当該ＶＭＭ上で動作しているＶＭ夫々を端末ＶＭＭ及び端末ＶＭと呼ぶ。クライアント端末３は、ハードウェア３０と、端末ＶＭＭ３１と、端末管理ＯＳ３２と、１つの端末ＶＭ３３とを含む。端末管理ＯＳ３２は、端末ＶＭ３３と同様に端末ＶＭＭ３１上で動作している。端末ＶＭＭ３１は、ハードウェア３０に含まれる物理デバイスを端末ＶＭ３３に割り当てて、端末ＶＭ３３から物理デバイスへアクセス可能にする。
【００１４】
端末管理ＯＳ３２は、端末ＶＭ３３が使用している計算資源としてのリソース情報を管理しており、当該リソース情報を管理サーバ２に随時送信するようにしてある。端末ＶＭ３３には、ホストサーバ１で動作している複数のホストＶＭ１３のうち、１つのホストＶＭ１３が対応付けられている。各端末ＶＭ３３は、対応するホストＶＭ１３夫々にリモート接続することにより、各クライアント端末３からホストＶＭ１３夫々をリモート操作するようにしてある。
【００１５】
図３は、ハードウェア３０の例を示すブロック図である。ハードウェア３０は、ＣＰＵ（ Central Processing Unit ）３００、ＲＡＭ（ Random-Access Memory ）３０１及びＨＤＤ（ Hard Disk Drive ）３０２を含む。また、ハードウェア３０は、ＮＩＣ（ Network Interface Card ）３０３、画像処理部３０４、表示部３０５、入出力部３０６及び記録媒体読込部３０９等を含む。ＣＰＵ３００は、記録媒体読込部３０９に挿入された記録媒体３１０からプログラム３１０１を読み出してＨＤＤ３０２に記憶するようにしてある。記録媒体３１０は、ＣＤ（ Compact Disk ）及びＤＶＤ等である。ＣＰＵ３００は、ＨＤＤ３０２に記憶したプログラム３１０１等をＲＡＭ３０１に読み出して実行する。
【００１６】
画像処理部３０４は、ＣＰＵ３００から与えられた画像情報に基づいて画像信号を生成し、表示部３０５に出力して表示させるようにしてある。表示部３０５は、例えば、液晶ディスプレイ等である。ＲＡＭ３０１は、例えばＳＲＡＭ（ Static RAM ）、ＤＲＡＭ（ Dynamic RAM ）及びフラッシュメモリ等である。ＲＡＭ３０１は、ＣＰＵ３００による端末ＶＭＭ３１等の各種プログラムの実行時に発生する種々のデータを一時的に記憶する。入出力部３０６には、ユーザから操作を受付ける基本入力デバイスとしてキーボード３０７ａ及びマウス３０７ｂ等が接続されている。基本入力デバイスは、キーボード等に限るものではなくタッチパネル等であってもよい。
【００１７】
また、入出力部３０６には、ＵＳＢメモリ３０８ａ及びＤＶＤドライブ３０８ｂが接続されている。ＵＳＢメモリ３０８ａ及びＤＶＤドライブ３０８ｂ夫々には、ＵＳＢメモリ及びＤＶＤ等の記録媒体が挿入又は取り外し可能にされている。入出力部３０６は、ＵＳＢメモリ３０８ａ及びＤＶＤドライブ３０８ｂ夫々に記録媒体が挿入された場合、物理デバイスの接続通知をＣＰＵ３００に通知するようにしてある。また、入出力部３０６は、例えばプリンタ、外部の入出力機器が入出力部３０６に接続された場合、当該入出力機器をクライアント端末３に接続された物理デバイスとして通知してもよい。入出力機器としてスキャナ、デジタルカメラ及びマイクロフォン等を含む。ＣＰＵ３００は、プログラム３１０１の指示に従い、接続された物理デバイスを検出し（検出ステップ）、ホスト管理ＯＳ１２に通知するようにしてある（通知ステップ）
【００１８】
図４は、ハードウェア１０の例を示すブロック図である。ハードウェア１０は、ＣＰＵ１００、ＲＡＭ１０１及びＨＤＤ１０２を含む。また、ハードウェア１０は、ＮＩＣ１０３、画像処理部１０４、表示部１０５及び入出力部１０６及び記録媒体読込部１０９等を含む。ＣＰＵ１００は、記録媒体読込部１０９に挿入された記録媒体１１０からプログラム１１０１を読み出してＨＤＤ１０２に記憶するようにしてある。ＣＰＵ１００は、ＨＤＤ１０２に記憶したプログラム１１０１等をＲＡＭ１０１に読み出して実行する。ＲＡＭ１０１は、ＣＰＵ１００によるホストＶＭＭ１１等の各種プログラムの実行時に発生する種々のデータを一時的に記憶する。
【００１９】
入出力部１０６には、基本入出力デバイスとしてキーボード１０７ａ及びマウス１０７ｂ等が接続されている。また、入出力部１０６には、入出力３０６と同様にＵＳＢメモリ、ＤＶＤドライブ及び外部の入出力機器等を接続してもよい。入出力部１０６は、入出力部３０６と同様に接続された物理デバイスをＣＰＵ１００に通知するようにしてある。ＣＰＵ１００は、プログラム１１０１の指示に従い、ホストＶＭ１３を移動し（移動ステップ）、物理デバイスを割り当てるようにしてある（割当ステップ）。
【００２０】
図５は、各ソフトウェアの例を示すブロック図である。ホストＶＭＭ１１は、割当手段としての物理デバイス割当部１１２を含む。物理デバイス割当部１１２は、ホスト管理ＯＳ１２から受け取った割当要求に応じて、ホストＶＭ１３等に物理デバイスを割り当てるようにしてある。物理デバイス割当部１１２により物理デバイスを割り当てられたホストＶＭ１３等は、当該物理デバイスへアクセス可能となる。また、物理デバイス割当部１１２は、ホストＶＭ１３から物理デバイスの割当を解除することにより、解除手段としても機能する。
【００２１】
ホスト管理ＯＳ１２は、検出手段としての物理デバイス接続検出部１１１、ローカルリソース管理部１２１、移動手段としてのＶＭ移動部１２２及び物理デバイス割当要求部１２３を含む。物理デバイス接続検出部１１１は、入出力部１０６に接続又は切断された物理デバイスを検出するようにしてある。ローカルリソース管理部１２１は、ホスト管理ＯＳ１２及びホストＶＭ１３夫々が使用している計算資源としてのリソース情報を管理している。また、ホスト管理ＯＳ１２は、ローカルリソース管理部１２１が管理しているリソース情報を管理サーバ２に送信するようにしてある。ＶＭ移動部１２２は、ホストＶＭ１３をホストサーバ１からクライアント端末３へ移動させる。物理デバイス割当要求部１２３は、物理デバイス割当部１１２に割当要求又は解除要求を送信するようにしてある。
【００２２】
割当要求及び解除要求夫々は、割当又は解除対象の物理デバイスと、割当先又は解除先のホストＶＭ１３とを示す。ホストＶＭ１３は、ネットワーク網Ｎを介して端末ＶＭ３３との間でリモート接続を行うための仮想サーバ１３１を含む。仮想サーバ１３１は、例えばＲＤＰを用いたリモートデスクトップ接続を行うサーバプログラムを実行することで提供される。また、サーバプログラムは、ホストＶＭ１３で動作するＯＳ上で実行するとよい。
【００２３】
端末ＶＭＭ３１は、物理デバイス割当部３１２を含む。物理デバイス割当部３１２は、端末管理ＯＳ３２から受け取った割当要求に応じて端末ＶＭＭ３１上で動作している端末ＶＭ３３等に物理デバイスを割り当てるようにしてある。物理デバイス割当部３１２により物理デバイスを割り当てられた端末ＶＭ３３等は、当該物理デバイスへアクセス可能となる。
【００２４】
端末管理ＯＳ３２は、物理デバイス接続検出部３１１と、ローカルリソース管理部３２１と、移動手段としてのＶＭ移動部３２２と、物理デバイス割当要求部３２３とを含む。ローカルリソース管理部３２１は、端末管理ＯＳ３２及び端末ＶＭ３３夫々が使用する計算資源としてのリソース情報を管理している。端末管理ＯＳ３２は、ローカルリソース管理部３２１が管理しているリソース情報を管理サーバ２に送信するようにしてある。物理デバイス接続検出部３１１は、入出力部３０６に接続又は切断された物理デバイスを検出するようにしてある。ＶＭ移動部３２２は、クライアント端末３に移動してきたホストＶＭ１３を移動元のホストサーバ１に移動させるようにしてある。物理デバイス割当要求部３２３は、物理デバイス割当部３１２に割当要求及び割当の解除要求を送信するようにしてある。割当要求及び解除要求夫々は、割当及び解除対象の物理デバイスと、割当先及び解除先である端末ＶＭ３３等とを示す。
【００２５】
端末ＶＭ３３は、ネットワーク網Ｎを介してホストＶＭ１３との間でリモート接続を行うための仮想クライアント３３１を含む。仮想クライアント３３１は、例えばＲＤＰを用いたリモートデスクトップ接続を行うクライアントプログラムを実行することで提供される。また、クライアントプログラムは、端末ＶＭ３３で動作するＯＳ上で実行するとよい。仮想サーバ１３１及び仮想クライアント３３１間のリモート接続により、クライアント端末３がホストＶＭ１３へリモート接続される。ホスト管理ＯＳ１２又は端末管理ＯＳ３２は、ホストＶＭ１３及び端末ＶＭ３３間をリモート接続した場合、接続情報を管理サーバ２に通知するようにしてある。
【００２６】
管理サーバ２は、リソース管理部２１を含む。リソース管理部２１は、ホスト管理ＯＳ１２及び端末管理ＯＳ３２から送られてくるリソース情報及び接続情報を管理するようにしてある。また、管理サーバ２は、ホストＶＭ１３をホストサーバ１からクライアント端末３へ移動可能であるか否かを判定する判定手段としても機能するようにしてある。仮想クライアント３３１は、クライアント端末３のキーボード３０７ａ及びマウス３０７ｂ等が受付けたユーザによる操作を仮想サーバ１３１に送信するようにしてある。仮想サーバ１３１は、受信した操作に応じた処理を行って、処理結果に応じた画面情報を仮想クライアント３３１に送信するようにしてある。仮想クライアント３３１は、送られてきた画面情報をクライアント端末３が有する表示部３０５に表示するようにしてある。
【００２７】
ローカルリソース管理部１２１は、ローカルリソース情報テーブルをＨＤＤ１０２に記憶してリソース情報を管理するようにしてある。リソース情報は、ＣＰＵ型名、使用コア数、空きメモリ容量、使用メモリ容量及び接続されている物理デバイスを含む。ＣＰＵ型名は、ホスト管理ＯＳ１２及びホストＶＭ１３が動作しているホストサーバ１のＣＰＵ１００の型名等である。使用コア数は、ＣＰＵ１００が有する１つ又は複数のプロセッサコアのうち、ホスト管理ＯＳ１２及びホストＶＭ１３夫々が使用しているプロセッサコアの数である。また、ホスト管理ＯＳ１２は、ＣＰＵ１００が有する全てのプロセッサコアを使用しており、使用コア数がＣＰＵ１００のコア数と同一となる。
【００２８】
使用メモリ容量は、ＲＡＭ１０１が有するメモリ容量のうち、ホスト管理ＯＳ１２又はホストＶＭ１３夫々に割り当てられて使用されているメモリ容量を示す。空きメモリ容量は、ＲＡＭ１０１が有するメモリ容量のうち、使用されていないメモリ容量を示す。ローカルリソース情報テーブルは、ホスト管理ＯＳ１２及びホストＶＭ１３夫々に割り当てられたＩＰアドレスを含む。
【００２９】
また、ローカルリソース情報テーブルは、ホスト管理ＯＳ１２及びホストＶＭ１３夫々が動作しているホストサーバ１を指定する情報を含む。ローカルリソース管理部３２１は、ローカルリソース管理部１２１と同様にローカルリソース情報テーブルをＨＤＤ３０２に記憶してリソース情報を管理するようにしてある。また、端末管理ＯＳ３２は、ホスト管理ＯＳ１２と同様にＣＰＵ３００が有する全てのプロセッサコアを使用しており、使用コア数がＣＰＵ３００のコア数と同一となる。
【００３０】
図６は、ローカルリソース情報テーブルのレコードレイアウト例を示す図表である。図６は、クライアント端末３が有するローカルリソース管理部３２１がＨＤＤ３０２に記憶するローカルリソース情報テーブルの例を示している。図６に示す例では、端末ＶＭ３３が動作しているＣＰＵ型名「Ｅ２７００」及び端末ＶＭ３３が使用しているコア数「１」を含んでいる。また、端末ＶＭ３３のリソース情報の例は、ＲＡＭ３０１の空きメモリ容量「１０２４」及び端末ＶＭ３３が使用しているＲＡＭ３０１のメモリ容量「５１２」を含んでいる。
【００３１】
さらに、クライアント端末３に接続されて検出された物理デバイス「ＤＶＤドライブ，ＵＳＢメモリ」を含んでいる。また、図６に示す空きメモリ容量及び使用メモリ容量の例は、ＭＢ（ Mega Bite ）単位で記憶されている。端末ＶＭ３３に対応付けて端末ＶＭ３３のＩＰアドレス「１０．０．０．２１」と、設置場所「自席」が記憶されている。設置場所「自席」は、端末ＶＭ３３が動作しているクライアント端末３がユーザの居所に設置されていることを示す。
【００３２】
図７は、リソース情報テーブルのレコードレイアウト例を示す図表である。管理サーバ２のリソース管理部２１は、リソース情報テーブルを図示しないＨＤＤ等に記憶してホスト管理ＯＳ１２及び端末管理ＯＳ３２から送られてきたリソース情報を管理するようにしてある。これにより、リソース管理部２１は、ホストサーバ１及びクライアント端末３で動作している全ての管理ＯＳ及びＶＭのリソース情報を管理する。図７に示す例では、図６に示したＨＤＤ３０２に記憶されたローカルリソース情報と、ＨＤ１０２に記憶されたローカルリソース情報とを含んでいる。
【００３３】
図８は、接続テーブルのレコードレイアウト例を示す図表である。リソース管理部２１は、接続テーブルをＨＤＤ等に記憶して接続情報を管理するようにしてある。接続テーブルは、管理ＯＳ及びＶＭ夫々に割り当てられたＩＰアドレスと、管理ＯＳ及びＶＭ夫々が動作している動作装置を示す情報とを含む。図８に示す例では、ホストサーバ１で動作しているホストＶＭ１３のＩＰアドレス「１０．０．０．１１」が含まれている。リソース管理部２１は、接続情報をホスト管理ＯＳ１２から通知された場合、接続情報から端末ＶＭ３３に割り当てられたＩＰアドレスを取得し、接続先のホストＶＭ１３に対応付けて接続テーブルに記憶する。図８に示す例では、端末ＶＭ３３のＩＰアドレス「１０．０．０．２１」が接続元ＩＰアドレスとして取得され、ホストＶＭ１３に対応付けて接続テーブルに記憶されている。
【００３４】
続いて本実施の形態の概要を説明する。クライアント端末３が物理デバイスの接続を検出した場合、当該クライアント端末３に割り当てられているホストＶＭ１３が当該クライアント端末３に移動される。クライアント端末３に移動されたホストＶＭ１３に物理デバイスが割り当てられる。ホストＶＭ１３は、端末ＶＭＭ３１を介してクライアント端末３に接続された物理デバイスへアクセスする。以下に詳細を説明する。
【００３５】
クライアント端末３が有する入出力部３０６は、物理デバイスが接続された場合、端末管理ＯＳ３２が有する物理デバイス接続検出部３１１に通知する。物理デバイス接続検出部３１１は、入出力部３０６からの通知により新たに接続された物理デバイスを検出し、端末管理ＯＳ３２に通知する。物理デバイスの検出を通知された端末管理ＯＳ３２は、接続通知を管理サーバ２に送信する。接続通知を受信した管理サーバ２は、複数のホストサーバ１で動作しているホストＶＭ１３のうち、端末ＶＭ３３がリモート接続しているホストＶＭ１３を特定する。管理サーバ２は、リソース管理部２１が管理しているリソース情報に基づいてホストＶＭ１３がクライアント端末３に移動が可能であるか否かを判定する。
【００３６】
移動が可能であるか否かの判定は、次に述べる第1判定条件から第３判定条件まで満たすか否かで行われる。第１判定条件として管理サーバ２は、ホストサーバ１のＣＰＵ型名がクライアント端末３のＣＰＵ型名と一致するか否かを判定する。第２判定条件として管理サーバ２は、ホストＶＭ１３の使用メモリ容量がクライアント端末３の空きメモリ容量以下であるか否かを判定する。第３判定条件として管理サーバ２は、ホストＶＭ１３の使用コア数がクライアント端末３の使用コア数、すなわち端末管理ＯＳ３２の使用コア数と一致するか否かを判定する。管理サーバ２は、第１判定条件から第３判定条件までの全てが真であると判定した場合、移動可能と判定する。
【００３７】
管理サーバ２は、移動可能と判定した場合、ホストサーバ１にホストＶＭ１３の移動を要求する。移動要求されたホストサーバ１のホスト管理ＯＳ１２は、ホストＶＭ１３が使用しているリソースを他のＶＭ等が使用することを禁止して予約する。ホスト管理ＯＳ１２は、物理デバイス割当要求部１２３によりホストＶＭ１３からの基本入出力デバイスの割当解除をホストＶＭＭ１１に要求する。割当解除の要求を受付けたホストＶＭＭ１１は、物理デバイス割当部１１２によりホストＶＭ１３から基本入出力デバイスの割当を解除する。ホスト管理ＯＳ１２は、割当解除されたホストＶＭ１３をＶＭ移動部１２２によりクライアント端末３に移動させる。
【００３８】
図９は、各ソフトウェアの例を示すブロック図である。図９は、ホストサーバ１からクライアント端末３にホストＶＭ１３が移動された場合の各ソフトウェアの例を示している。図９に示す例では、ホストサーバ１からクライアント端末３に移動されたホストＶＭ１３が端末ＶＭＭ３１上で動作している。ホスト管理ＯＳ１２は、ホストＶＭ１３の移動が完了した場合、端末ＶＭ３３からクライアント端末３の基本入出力デバイスを割当解除するよう端末管理ＯＳ３２に要求する。割当解除を要求された端末管理ＯＳ３２は、物理デバイス割当要求部３２３により端末ＶＭ３３から基本入出力デバイスを割当解除するよう端末ＶＭＭ３１に要求する。
【００３９】
また、端末管理ＯＳ３２は、割当解除した基本入出力デバイス及び新たにクライアント端末３に接続された物理デバイスをホストＶＭ１３へ割り当てるよう割当要求部３２３により端末ＶＭＭ３１に要求する。端末ＶＭＭ３１は、物理デバイス割当部３１２により端末ＶＭ３３から基本入出力デバイスを解除し、新たに接続された物理デバイスをホストＶＭ１３に割り当てる。図９に示す如くホストＶＭ１３は、ネットワーク網Ｎを介さずにクライアント端末３に接続された物理デバイスへアクセス可能となる。次に、クライアント端末３から物理デバイスが切断されてホストＶＭ１３を移動元のホストサーバ１に返還する場合の動作を説明する。
【００４０】
クライアント端末３が有する入出力部３０６は、物理デバイスが切断された場合、端末管理ＯＳ３２が有する物理デバイス接続検出部３１１に通知する。物理デバイス接続検出部３１１は、入出力部３０６からの通知により新たに切断された物理デバイスを検出し、端末管理ＯＳ３２に通知する。物理デバイスの切断を通知された端末管理ＯＳ３２は、物理デバイス割当要求部３２３によりホストＶＭ１３からクライアント端末３の基本入出力デバイス及び物理デバイスを割当解除するよう端末ＶＭＭ３１に要求する。割当解除を要求された端末ＶＭＭ３１は、物理デバイス割当部３１２によりホストＶＭ１３から基本入出力デバイス及び物理デバイスを割当解除する。端末管理ＯＳ３２は、物理デバイス割当要求部３２３により、端末ＶＭ３３へクライアント端末３の基本入出力デバイスを割り当てるよう端末ＶＭＭ３１に要求する。割当を要求された端末ＶＭＭ３１は、端末ＶＭ３３へ基本入出力デバイスを割り当てる。端末管理ＯＳ３２は、ＶＭ移動部３２２により、ホストＶＭ１３を移動元のホストサーバ１に移動させる。
【００４１】
端末管理ＯＳ３２は、ホストＶＭ１３の移動が完了した場合、ホストＶＭ１３へホストサーバ１の基本入出力デバイスを割り当てるようホスト管理ＯＳ１２に要求する。割当を要求されたホスト管理ＯＳ１２は、物理デバイス割当要求部１２３によりホストＶＭ１３へ基本入出力デバイスを割り当てるようホストＶＭＭ１１に要求する。割当を要求されたホストＶＭＭ１１は、物理デバイス割当部１１２によりホストＶＭ１３へホストサーバ１の基本入出力デバイスを割り当てて、ホストＶＭ１３を返還する動作を完了する。
【００４２】
図１０は、ＶＭ起動処理の手順を示すフローチャートである。ＶＭ起動処理は、管理サーバ２にリソース情報を送信すべくホスト管理ＯＳ１２により実行される。また、ＶＭ起動処理は、ホスト管理ＯＳ１２がホストＶＭ１３の起動要求を受信した場合に実行される。ホストＶＭ１３の起動要求は、例えば、ホストサーバ１がユーザによる操作に基づいて要求を受信するようにするとよい。ホスト管理ＯＳ１２は、要求を受信して（ステップＳ１０）、ＶＭの起動要求を受付けたか否かを判定する（ステップＳ１１）。ホスト管理ＯＳ１２は、起動要求を受付けていないと判定した場合（ステップＳ１１でＮＯ）、要求を受信するステップＳ１０に処理を戻す。ホスト管理ＯＳ１２は、起動要求を受付けたと判定した場合（ステップＳ１１でＹＥＳ）、ＶＭを起動する（ステップＳ１２）。
【００４３】
ホスト管理ＯＳ１２は、起動したＶＭのリソース情報を管理サーバ２に送信する（ステップＳ１３）。管理サーバ２は、ホスト管理ＯＳ１２から送られてきた情報を受信して（ステップＳ１６）、リソース情報を受信したか否かを判定する（ステップＳ１７）。管理サーバ２は、リソース情報を受信していないと判定した場合（ステップＳ１７でＮＯ）、情報を受信するステップＳ１６に処理を戻す。管理サーバ２は、リソース情報を受信したと判定した場合（ステップＳ１７でＹＥＳ）、受信したリソース情報を用いてリソース情報テーブルを更新する（ステップＳ１８）。管理サーバ２は、要求を受信して（ステップＳ１９）、シャットダウン等による終了を受付けたか否かを判定する（ステップＳ２０）。管理サーバ２は、終了を受付けていないと判定した場合（ステップＳ２０でＮＯ）、情報を受信するステップＳ１６に処理を戻す。
【００４４】
管理サーバ２は、終了を受付けたと判定した場合（ステップＳ２０でＹＥＳ）、ＶＭ起動処理を終了する。ホスト管理ＯＳ３２は、要求を受信して（ステップＳ１４）、シャットダウン等による終了を受付けたか否かを判定する（ステップＳ１５）。ホスト管理ＯＳ３２は、終了を受付けていないと判定した場合（ステップＳ１５でＮＯ）、要求を受信するステップＳ１０に処理を戻す。ホスト管理ＯＳ３２は、終了を受付けたと判定した場合（ステップＳ１５でＹＥＳ）、ＶＭ起動処理を終了する。また、ＶＭ起動処理は、端末管理ＯＳ３２が端末ＶＭ３３の起動要求を受付けた場合にも、端末管理ＯＳ３２により端末ＶＭ３３を起動すべく実行される。端末管理ＯＳ３２で実行されるＶＭ起動処理は、図１０に示したフローチャートと同様であるので説明を省略する。
【００４５】
図１１は、リモート接続処理の手順を示すフローチャートである。リモート接続処理は、ホストＶＭ１３及び端末ＶＭ３３上で実行される。ホストＶＭ１３は、仮想サーバ１３１を起動する（ステップＳ３０）。端末ＶＭ３３は、要求を受信して（ステップ３１）、リモート接続要求をを受付けたか否かを判定する（ステップＳ３２）。端末ＶＭ３３は、リモート接続要求を受付けていないと判定した場合（ステップＳ３２でＮＯ）、要求を受信するステップＳ３１に処理を戻す。端末ＶＭ３３は、リモート接続要求を受付けたと判定した場合（ステップＳ３２でＹＥＳ）、仮想クライアント３３１を起動する（ステップＳ３３）。
【００４６】
端末ＶＭ３３は、リモート接続要求をホストＶＭ１３に送信する（ステップＳ３４）。端末ＶＭ３３は、接続先のホストＶＭ１３のＩＰアドレス及び接続状態を含む接続情報を管理サーバ２に送信する（ステップＳ３５）。端末ＶＭ３３は、要求を受信して（ステップＳ３６）、仮想クライアント３３１の終了を受付けたか否かを判定する（ステップＳ３７）。端末ＶＭ３３は、仮想クライアント３３１の終了を受付けていないと判定した場合（ステップＳ３７でＮＯ）、要求を受信するステップＳ３６に処理を戻す。端末ＶＭ３３は、仮想クライアント３３１の終了を受付けたと判定した場合（ステップＳ３７でＹＥＳ）、仮想クライアント３３１を終了する（ステップＳ３８）。端末ＶＭ３３は、ホストＶＭ１３のＩＰアドレス及び切断状態を含む接続情報を管理サーバ２に送信して（ステップＳ３９）、リモート接続処理を終了する。
【００４７】
ホストＶＭ１３は、要求を受信して（ステップＳ４０）、端末ＶＭ３３から送らてきたリモート接続要求を受信したか否かを判定する（ステップＳ４１）。ホストＶＭ１３は、リモート接続要求を受信していないと判定した場合（ステップＳ４１でＮＯ）、要求を受信するステップＳ４０に処理を戻す。ホストＶＭ１３は、リモート接続要求を受信したと判定した場合（ステップＳ４１でＹＥＳ）、リモート接続を開始する（ステップＳ４２）。ホストＶＭ１３は、リモート接続の接続状態を確認して（ステップＳ４３）、リモート接続が切断されたか否かを判定する（ステップＳ４４）。ホストＶＭ１３は、リモート接続が切断されていないと判定した場合（ステップＳ４４でＮＯ）、リモート接続の接続状態を確認するステップＳ４３に処理を戻す。ホストＶＭ１３は、リモート接続が切断されたと判定した場合（ステップＳ４４でＹＥＳ）、リモート接続処理を終了する。
【００４８】
図１２は、接続テーブル更新処理の手順を示すフローチャートである。接続テーブル更新処理は、管理サーバ２が接続情報を受信して図示しないＣＰＵにより実行される。管理サーバ２のＣＰＵは、情報を受信して（ステップＳ５０）、接続情報を受信したか否かを判定する（ステップＳ５１）。ＣＰＵは、接続情報を受信していないと判定した場合（ステップＳ５１でＮＯ）、情報を受信するステップＳ５０に処理を戻す。ＣＰＵは、接続情報を受信したと判定した場合（ステップＳ５１でＹＥＳ）、送信元のＩＰアドレスを接続元ＩＰアドレスとして取得する（ステップＳ５２）。ＣＰＵは、接続情報に含まれる接続先ＩＰアドレスを取得し（ステップＳ５３）、接続先ＶＭを特定する（ステップＳ５４）。
【００４９】
ＣＰＵは、リソース情報テーブルを参照して、接続先ＶＭが動作しているホストサーバ１を特定する（ステップＳ５５）。ＣＰＵは、接続元ＩＰアドレス、特定した接続先ＶＭを示す名称、接続先ＩＰアドレス及び特定したホストサーバ１の名称を用いて接続テーブルを更新する（ステップＳ５６）。ＣＰＵは、要求を受信して（ステップＳ５７）、終了を受付けつけたか否かを判定する（ステップＳ５８）。ＣＰＵは、終了を受付けていないと判定した場合（ステップＳ５８でＮＯ）、情報を受信するステップＳ５０に処理を戻す。ＣＰＵは、終了を受付けたと判定した場合（ステップＳ５８でＹＥＳ）、接続テーブル更新処理を終了する。
【００５０】
図１３は、移動要求処理の手順を示すフローチャートである。移動要求処理は、クライアント端末３に新たに接続された物理デバイスを端末管理ＯＳ３２が検出して端末管理ＯＳ３２及び管理サーバ２により実行される。端末管理ＯＳ３２は、物理デバイスの接続状態を確認して（ステップＳ６０）、物理デバイスの接続を検出したか否かを判定する（ステップＳ６１）。端末管理ＯＳ３２は、物理デバイスの接続を検出していないと判定した場合（ステップＳ６１でＮＯ）、物理デバイスの接続状態を確認するステップＳ６０に処理を戻す。端末管理ＯＳ３２は、物理デバイスの接続を検出したと判定した場合（ステップＳ６１でＹＥＳ）、物理デバイスの接続通知を管理サーバ２に送信して（ステップＳ６２）、移動要求処理を終了する。
【００５１】
管理サーバ２のＣＰＵは、通知を受信して（ステップＳ６３）、端末管理ＯＳ３２から送られてきた接続通知を受信したか否かを判定する（ステップＳ６４）。管理サーバ２のＣＰＵは、接続通知を受信していないと判定した場合（ステップＳ６４でＮＯ）、通知を受信するステップＳ６３に処理を戻す。管理サーバ２のＣＰＵは、接続通知を受信したと判定した場合（ステップＳ６４でＹＥＳ）、送信元のＩＰアドレスを取得することでクライアント端末３を移動先端末として特定する（ステップＳ６５）。管理サーバ２のＣＰＵは、リソース情報テーブルを参照し、移動先端末で動作している端末ＶＭ３３を移動先ＶＭとして特定する（ステップＳ６６）。管理サーバ２のＣＰＵは、接続テーブルを参照して移動先ＶＭがリモート接続しているホストＶＭ１３を移動対象ＶＭとして特定する（ステップＳ６７）。
【００５２】
管理サーバ２のＣＰＵは、リソース情報テーブルを参照して移動対象ＶＭが動作しているホストサーバ１を特定する（ステップＳ６８）。管理サーバ２のＣＰＵは、後述の移動判定処理を実行する（ステップＳ６９）。管理サーバ装置２のＣＰＵは、移動判定処理の結果、移動可であるか否かを判定する（ステップＳ７０）。管理サーバ２のＣＰＵは、移動可でないと判定した場合（ステップＳ７０でＮＯ）、移動要求処理を終了する。管理サーバ２のＣＰＵは、移動可であると判定した場合（ステップＳ７０でＹＥＳ）、移動要求をホストサーバ１のホスト管理ＯＳ１２に送信し（ステップＳ７１）、移動要求処理を終了する。
【００５３】
図１４は、移動処理の手順を示すフローチャートである。移動処理は、移動要求処理により送信されてきた移動要求をホスト管理ＯＳ１２が受付けて、ホスト管理ＯＳ１２及び端末管理ＯＳ３２により実行される。ホスト管理ＯＳ１２は、要求を受信して（ステップＳ８０）、移動要求を受信したか否かを判定する（ステップＳ８１）。端末管理ＯＳ３２は、移動要求を受信していないと判定した場合（ステップＳ８１でＮＯ）、要求を受信するステップＳ８０に処理を戻す。ホスト管理ＯＳ１２は、移動要求を受信したと判定した場合（ステップＳ８１でＹＥＳ）、移動対象ＶＭであるホストＶＭ１３から基本入出力デバイスを割当解除する（ステップＳ８２）。ホスト管理ＯＳ１２は、移動対象ＶＭが使用しているリソースを予約する（ステップＳ８３）。
【００５４】
ホスト管理ＯＳ１２は、移動対象ＶＭをホストサーバ１へ移動開始させる（ステップＳ８４）。ホスト管理ＯＳ１２は、移動対象ＶＭの移動状態を確認して（ステップＳ８５）、移動を完了したか否かを判定する（ステップＳ８６）。ホスト管理ＯＳ１２は、移動を完了していないと判定した場合（ステップＳ８６でＮＯ）、移動対象ＶＭの移動状態を確認するステップＳ８５に処理を戻す。ホスト管理ＯＳ１２は、移動を完了したと判定した場合（ステップＳ８６でＹＥＳ）、割当要求を端末管理ＯＳ３２に送信して（ステップＳ８７）、移動処理を終了する。
【００５５】
クライアント端末３の端末管理ＯＳ３２は、要求を受信して（ステップＳ８８）、ホストサーバ１のホスト管理ＯＳ１２から割当要求を受信したか否かを判定する（ステップＳ８９）。端末管理ＯＳ３２は、割当要求を受信していないと判定した場合（ステップＳ８９でＮＯ）、要求を受信するステップＳ８８に処理を戻す。端末管理ＯＳ３２は、割当要求を受信したと判定した場合（ステップＳ８９でＹＥＳ）、移動してきた移動対象ＶＭに基本入出力デバイス及び物理デバイスを割り当てて（ステップＳ９０）、移動処理を終了する。
【００５６】
図１５は、移動判定処理の手順を示すフローチャートである。移動判定処理は、図１３で示したフローチャートのステップＳ６９で管理サーバ２のＣＰＵにより実行される。管理サーバ２のＣＰＵは、リソース情報テーブルから移動対象ＶＭ及び移動先端末のリソース情報を取得する（ステップＳ９１）。ここで、移動先端末のリソース情報は、リソース情報テーブルに含まれる移動先ＶＭのリソース情報を参照することにより、取得される。管理サーバ２のＣＰＵ２は、移動対象ＶＭの使用メモリ容量が移動先端末（クライアント端末３）の空きメモリ容量以下であるか否かを判定する（ステップＳ９２）。
【００５７】
管理サーバ２のＣＰＵは、空きメモリ容量以下でないと判定した場合（ステップＳ９２でＮＯ）、移動不可と判定して（ステップＳ９６）、移動判定処理を終了する。管理サーバ２のＣＰＵは、空きメモリ容量以下であると判定した場合（ステップＳ９２でＹＥＳ）、移動元のホストサーバ１のＣＰＵ型名が移動先端末のＣＰＵ型名と一致するか否かを判定する（ステップＳ９３）。管理サーバ２のＣＰＵは、ＣＰＵ型名が一致しないと判定した場合（ステップＳ９３でＮＯ）、移動不可と判定するステップＳ９６に処理を移す。
【００５８】
管理サーバ２のＣＰＵは、ＣＰＵ型名が一致すると判定した場合（ステップＳ９３でＹＥＳ）、移動対象ＶＭの使用コア数が移動先端末のコア数と一致するか否かを判定する（ステップＳ９４）。管理サーバ２のＣＰＵは、使用コア数が一致しないと判定した場合（ステップＳ９４でＮＯ）、移動不可と判定するステップＳ９６に処理を移す。管理サーバ２のＣＰＵは、使用コア数が一致すると判定した場合（ステップＳ９４でＹＥＳ）、移動可と判定して（ステップＳ９５）、移動判定処理を終了する。
【００５９】
図１６は、返還処理の手順を示すフローチャートである。返還処理は、クライアント端末３から物理デバイスが切断されて、移動対象ＶＭをホストサーバ１に戻すべく実行される。クライアント端末３の端末管理ＯＳ３２は、物理デバイスの接続状態を確認して（ステップＳ１００）、物理デバイスの切断を検出したか否かを判定する（ステップＳ１０１）。端末管理ＯＳ３２は、物理デバイスの切断を検出していないと判定した場合（ステップＳ１０１でＮＯ）、物理デバイスの接続状態を確認するステップＳ１００に処理を戻す。端末管理ＯＳ３２は、検出したと判定した場合（ステップＳ１０１でＹＥＳ）、移動対象ＶＭのホストＶＭ１３から基本入出力デバイス及び物理デバイスを割当解除する（ステップＳ１０２）。
【００６０】
端末管理ＯＳ３２は、移動先ＶＭの端末ＶＭ３３に基本入出力デバイスを割り当てる（ステップＳ１０３）。端末管理ＯＳ３２は、移動対象ＶＭのホストＶＭ１３をホストサーバ１に移動開始する（ステップＳ１０４）。端末管理ＯＳ３２は、移動対象ＶＭの移動状態を確認して（ステップＳ１０５）、移動を完了したか否かを判定する（ステップＳ１０６）。端末管理ＯＳ３２は、完了していないと判定した場合（ステップＳ１０６でＮＯ）、移動対象ＶＭの移動状態を確認するステップＳ１０５に処理を戻す。端末管理ＯＳ３２は、完了したと判定した場合（ステップＳ１０６でＹＥＳ）、デバイスの割当要求をホスト管理ＯＳ１２に送信して（ステップＳ１０７）、返還処理を終了する。
【００６１】
ホストサーバ１のホスト管理ＯＳ１２は、要求を受信して（ステップＳ１０８）、端末管理ＯＳ３２から送られてきた割当要求を受信したか否かを判定する（ステップＳ１０９）。ホスト管理ＯＳ１２は、割当要求を受信していないと判定した場合（ステップＳ１０９でＮＯ）、要求を受信するステップＳ１０８に処理を戻す。ホスト管理ＯＳ１２は、割当要求を受信したと判定した場合（ステップＳ１０９でＹＥＳ）、ホストサーバ１に移動してきた移動対象ＶＭのホストＶＭ１３に基本入出力デバイスを割り当てる（ステップＳ１１０）。ホスト管理ＯＳ１２は、移動対象ＶＭのリソースの予約を解除して（ステップＳ１１１）、返還処理を終了する。
【００６２】
以上より、新たに接続された物理デバイスをホストＶＭ１３が利用する場合、ホストＶＭ１３をクライアント端末３に移動させて、ネットワーク網Ｎを介さずに当該物理デバイスへアクセスすることが可能となる。また、物理デバイスの利用が完了した場合、ホストＶＭ１３を移動元のホストサーバ１に移動させてクライアント端末３からのリモート操作が可能となる。
【００６３】
本実施の形態１においては、クライアント端末３に物理デバイスが新たに接続される場合を示したが、これに限るものではない。例えば、複数のホストサーバ１夫々に物理デバイスが新たに接続された場合に適用してもよい。この場合、クライアント端末３がリモート接続しているホストＶＭ１３を、新たに接続された物理デバイスが検出された他のホストサーバ１に移動するとよい。また、管理サーバ２を備える計算機システムを示したが、これに限るものではない。管理サーバ２の代わりに、例えば複数のホストサーバ１のうち、いずれか１つのホストサーバ１で動作しているホスト管理ＯＳ１２がリソース管理部２１を備えていてもよい。この場合、ホスト管理ＯＳ１２が移動判定処理を実行し、判定部として機能してもよい。
【００６４】
また、図２に示す如くハードウェア上でＶＭＭが動作しており、さらに当該ＶＭＭ上で管理ＯＳ及びＶＭ等の各種プログラムが動作するハイパーバイザー型のＶＭＭを用いる場合を示したが、これに限るものではない。例えば、ハードウェア上でホストＯＳが動作しており、当該ホストＯＳ上で管理ＯＳ及びＶＭＭ等が動作するホストＯＳ型のＶＭＭを用いてもよい。
【００６５】
実施の形態２
図１７は、各ソフトウェアの例を示すブロック図である。実施の形態１は物理デバイスが新たに接続されたクライアント端末へホストＶＭを移動させるのに対して、本実施の形態ではユーザにより選択された物理デバイスを有するクライアント端末に移動させるようにしてある。ホストＶＭ１３は、利用可能な物理デバイスを有するクライアント端末３を物理デバイスと共にＶＭの移動先候補として表示する表示手段としてのＶＭ移動先候補表示部１３２を含む。ＶＭ移動先候補表示部１３２は、例えばホストＶＭ１３で動作するＯＳ上でプログラムを実行することで提供するとよい。ＶＭ移動先候補表示部１３２は、ホストＶＭ１３にリモート接続されている端末ＶＭ３３のユーザに対して移動先候補及び物理デバイスを表示する。ホストＶＭ１３は、移動先候補及び物理デバイスから、移動先端末及び利用する物理デバイスを選択する操作を端末ＶＭ３３から受付けて操作受付手段として機能する。また、ホストＶＭ１３は、受付けた操作に基づいて物理デバイスを選択する選択手段としても機能する。
【００６６】
続いて本実施の形態の概要を説明する。クライアント端末３を介してリモート接続されているホストＶＭ１３は、ユーザによる物理デバイスの利用要求を受け付ける。利用要求を受付けたホストＶＭ１３は、ＶＭ移動先候補表示部１３２により移動可能なクライアント端末３に接続されている物理デバイスの一覧を表示する。ホストＶＭ１３は、１つのクライアント端末３の選択をユーザから受付ける。選択されたクライアント端末３にホストＶＭ１３が移動される。クライアント端末３に移動されたホストＶＭ１３は、端末ＶＭＭ３１を介してクライアント端末３に接続されている物理デバイスへアクセスする。以下に詳細を説明する。
【００６７】
図１８は、物理デバイスの選択に係る画面例を示す模式図である。図１８中（ａ）及び（ｂ）夫々は、一覧ボタン及び選択ウィンドウが表示されたデスクトップ画面を示す。ホストＶＭ１３は、クライアント端末３に表示させているデスクトップ画面に物理デバイス一覧の表示の指示を受付ける一覧ボタンを表示させる。図１８中（ａ）に示す例では、デスクトップ画面の右上に「物理デバイス一覧」と表示された一覧ボタンが表示されている。また、ユーザにより操作されたカーソルが、一覧ボタン上に位置している。
【００６８】
ホストＶＭ１３は、一覧ボタンがクリックされた場合、ＶＭ移動先候補表示部１３２により使用可能な物理デバイスの一覧を管理サーバ２に要求する。管理サーバ２は、ホストＶＭ１３のリソース情報及び各クライアント端末３のリソース情報に基づいて、ホストＶＭ１３の移動が可能である移動先端末を取得する。管理サーバ２は、移動可能な移動先端末に接続してある物理デバイスを利用可能な物理デバイスの一覧として取得する。管理サーバ２は、物理デバイス及び移動可能な移動先端末の一覧を要求元のホストＶＭ１３に送信する。ホストＶＭ１３は、管理サーバ２から取得した一覧に基づいて、１つの物理デバイス及び移動先端末の選択を受付けるための選択ウィンドウをデスクトップ画面に表示する。
【００６９】
図１８中（ｂ）に示す例では、タイトル「使用可能な物理デバイス一覧」を有する選択ウィンドウがデスクトップ画面に表示されている。図１８中（ｂ）の選択ウィンドウには、ＤＶＤドライブ及びＵＳＢメモリ夫々に対応するデバイスボタンと、取消ボタンとが表示されている。ホストＶＭ１３は、取消ボタンがクリックされた場合、選択ウィンドウを閉じる。図１８中（ｂ）の物理デバイスウィンドウには、ユーザにより操作されたカーソルがＤＶＤドライブに対応するデバイスボタン上に位置している。
【００７０】
図１９は、移動先端末の選択に係る画面例を示す模式図である。図１９中（ａ）及び（ｂ）夫々は、デバイスボタン及び移動先ボタンが選択された場合のデスクトップ画面の例を示す。ホストＶＭ１３は、デバイスボタンがクリックされた場合、当該デバイスボタンに対応する物理デバイスが接続されているクライアント端末３を取得する。ホストＶＭ１３は、クライアント端末３に対応する移動先ボタンを選択ウィンドウに表示する。図１９中（ａ）に示す例では、選択されたＤＶＤドライブに対応するデバイスボタンが斜線で示す如く反転表示されている。また、選択されたＤＶＤドライブが接続されているクライアント端末３に対応しており、「クライアント端末」と示された移動先ボタンが表示されている。
【００７１】
さらに、デバイスボタン及び移動先ボタンを結ぶ線が表示されている。これにより、ＤＶＤドライブがクライアント端末３に接続されていることが示されている。また、選択ウィンドウには、各クライアント端末３の設置場所を表示してもよい。各クライアント端末３の設置場所は、管理サーバ２のリソース管理部２１が管理しているリソース情報から取得するとよい。ホストＶＭ１３は、移動先ボタンがクリックされて選択された場合、移動ボタンを選択ウィンドウに表示する。ホストＶＭ１３は、移動ボタンがクリックされた場合、選択されている移動先ボタンに対応するクライアント端末３を移動先端末として取得する。図１９中（ｂ）に示す例では、クライアント端末３に対応する移動先ボタンがクリックされて反転表示され、移動ボタンが表示されている。ホストＶＭ１３は、取得した移動先端末をホスト管理ＯＳ１２に通知する。ホスト管理ＯＳ１２は、ホストＶＭ１３を移動先端末に移動させる。
【００７２】
ホストＶＭ１３を移動先端末に移動させる動作と、移動後に物理デバイスを割当てる動作とは、実施の形態１と同様であるので説明を省略する。ホストＶＭ１３は、移動先端末を取得した場合、ホストＶＭ１３を移動させるか否かを確認するための確認ウィンドウをデスクトップ画面に表示してもよい。この場合、確認ウィンドウには、移動の確認を促すメッセージと共に、確認ボタン及び移動取消ボタンを表示するとよい。ホストＶＭ１３は、確認ボタンがクリックされた場合、ホストＶＭ１３を移動先端末に移動させる。また、ホストＶＭ１３は、移動取消ボタンがクリックされた場合、選択ウィンドウによる移動先端末の選択に処理を戻すとよい。
【００７３】
図２０は、返還指示を受付けるための画面例を示す模式図である。ホストＶＭ１３は、移動先端末に移動した場合、デスクトップ画面にホストＶＭ１３をホストサーバ１に移動する返還指示を受付けるための返還ボタンを表示する。図２０に示す例では、デスクトップ画面の右上に「戻る」と表示された返還ボタンが表示されている。ホストＶＭ１３は、返還ボタンがクリックされた場合、ホストＶＭ１３をホストサーバ１に移動させる移動要求を端末管理ＯＳ３２に通知する。端末管理ＯＳ３２は、ホストＶＭ１３をホストサーバ１に移動開始する。
【００７４】
図２１及び図２２は、移動先端末選択処理の手順を示すフローチャートである。移動先端末選択処理は、一覧ボタンのクリックを受付けて移動先端末の選択を実行する。アイコンホストＶＭ１３は、一覧ボタンが押下されたか否かを判定する（ステップＳ１１２）。ホストＶＭ１３は、一覧ボタンが押下されていないと判定した場合（ステップＳ１１２でＮＯ）、押下されるまで待機する。ホストＶＭ１３は、押下されたと判定した場合（ステップＳ１１２でＹＥＳ）、使用可能な物理デバイスの一覧要求を管理サーバ２に送信する（ステップＳ１１３）。管理サーバ２は、要求を受信して（ステップＳ１１４）、ホストＶＭ１３から送られてきた一覧要求を受付けたか否かを判定する（ステップＳ１１５）。
【００７５】
管理サーバ２は、一覧要求を受付けていないと判定した場合（ステップＳ１１５でＮＯ）、要求を受信するステップＳ１１４に処理を戻す。管理サーバ２は、一覧要求を受付けたと判定した場合（ステップＳ１１５でＹＥＳ）、後述の一覧作成処理を実行する（ステップＳ１１６）。管理サーバ２は、作成した一覧をホストＶＭ１３に送信する（ステップＳ１１７）。ホストＶＭ１３は、情報を受信して（ステップＳ１１８）、管理サーバから送られてきた一覧を受信したか否かを判定する（ステップＳ１１９）。ホストＶＭ１３は、一覧を受信していないと判定した場合（ステップＳ１１９でＮＯ）、情報を受信するステップＳ１１８に処理を戻す。
【００７６】
ホストＶＭ１３は、一覧を受信したと判定した場合（ステップＳ１１９でＹＥＳ）、デスクトップ画面に一覧を含む選択ウィンドウを表示する（Ｓ１２０）。ホストＶＭ１３は、取消ボタンが押下されたか否かを判定する（ステップＳ１２１）。ホストＶＭ１３は、取消ボタンが押下されたと判定した場合（ステップＳ１２１でＹＥＳ）、移動先端末選択処理を終了する。ホストＶＭ１３は、取消ボタンが押下されていないと判定した場合（ステップＳ１２１でＮＯ）、選択ウィンドウから物理デバイスが選択されたか否かを判定する（ステップＳ１２２）。
【００７７】
ホストＶＭ１３は、物理デバイスが選択されていないと判定した場合（ステップＳ１２２でＮＯ）、取消ボタンが押下されたか否かを判定するステップＳ１２１に処理を戻す。ホストＶＭ１３は、物理デバイスが選択されたと判定した場合（ステップＳ１２２でＹＥＳ）、移動先端末を選択ウィンドウに表示する（ステップＳ１２３）。ホストＶＭ１３は、取消ボタンが押下されたか否かを判定する（ステップＳ１２４）。ホストＶＭ１３は、取消ボタンが押下されたと判定した場合（ステップＳ１２４でＹＥＳ）、移動先端末選択処理を終了する。
【００７８】
ホストＶＭ１３は、取消ボタンが押下されていないと判定した場合（ステップＳ１２４でＮＯ）、選択ウィンドウから移動先端末が選択されたか否かを判定する（ステップＳ１２５）。ホストＶＭ１３は、移動先端末が選択されていないと判定した場合（ステップＳ１２５でＮＯ）、取消ボタンが押下されたか否かを判定するステップＳ１２４に処理を戻す。ホストＶＭ１３は、移動先端末が選択されたと判定した場合（ステップＳ１２５でＹＥＳ）、取消ボタンが押下されたか否かを判定する（ステップＳ１２６）。ホストＶＭ１３は、取消ボタンが押下されたと判定した場合（ステップＳ１２６でＹＥＳ）、移動先端末選択処理を終了する。ホストＶＭ１３は、取消ボタンが押下されていないと判定した場合（ステップＳ１２６でＮＯ）、移動ボタンが押下されたか否かを判定する（ステップＳ１２７）。ホストＶＭ１３は、移動ボタンが押下されていないと判定した場合（ステップＳ１２7でＮＯ）、取消ボタンが押下されたか否かを判定するステップＳ１２６に処理を戻す。ホストＶＭ１３は、移動ボタンが押下されたと判定した場合（ステップＳ１２７でＹＥＳ）、移動要求をホスト管理ＯＳ１２に送信して（ステップＳ１２８）、移動先端末選択処理を終了する。
【００７９】
図２３は、一覧作成処理の手順を示すフローチャートである。一覧作成処理は、図２１のステップＳ１１６で管理サーバ２により実行される。管理サーバ２は、リソース管理部によりクライアント端末３からなる移動先候補一覧を取得する（ステップＳ１３１）。管理サーバ２は、一覧要求の要求元のＩＰアドレスに基づいてホストＶＭ１３を移動対象ＶＭとして取得する（ステップＳ１３２）。管理サーバ２は、移動先候補一覧から移動先端末を１つ選択する（ステップＳ１３３）。管理サーバ２は、移動判定処理を実行する（ステップＳ１３４）。
【００８０】
管理サーバ２は、移動判定処理による判定結果に基づいて移動可であるか否かを判定する（ステップＳ１３５）。管理サーバ２は、移動可と判定した場合（ステップＳ１３５でＹＥＳ）、リソース情報を参照して移動先端末に接続されている物理デバイスを取得する（ステップＳ１３６）。管理サーバ２は、取得した物理デバイスを使用可能な物理デバイスの一覧に追加する（ステップＳ１３７）。管理サーバ２は、移動候補一覧に含まれる全ての移動先候補を選択済みであるか否かを判定する（ステップＳ１３８）。
【００８１】
管理サーバ２は、全ての移動先候補を選択済みでないと判定した場合（ステップＳ１３８でＮＯ）、移動先候補一覧から移動先端末として他の１つを選択する（ステップＳ１３９）。管理サーバ２は、移動判定処理を実行するステップＳ１３４に処理を戻す。管理サーバ２は、移動可であるか否かを判定するステップＳ１３５において、移動可でないと判定した場合（ステップＳ１３５でＮＯ）、全ての移動先候補を選択済みであるか否かを判定するステップＳ１３８に処理を移す。管理サーバ２は、全ての移動先候補を選択済みであると判定した場合（ステップＳ１３８でＹＥＳ）、一覧作成処理を終了する。
【００８２】
図２４及び図２５は、返還処理の手順を示すフローチャートである。返還処理は、デスクトップ画面に表示された戻るボタンのクリックを検出して移動対象ＶＭをホストサーバ１に戻すべく実行される。ホストＶＭ１３は、戻るボタンが押下されたか否かを判定する（ステップＳ１７１）。ホストＶＭ１３は、戻るボタンが押下されていないと判定した場合（ステップＳ１７１でＮＯ）、押下されるまで待機する。ホストＶＭ１３は、戻るボタンが押下されたと判定した場合（ステップＳ１７１でＹＥＳ）、返還要求を端末管理ＯＳ３２に送信して（ステップＳ１７２）、返還処理を終了する。端末管理ＯＳ３２は、要求を受信して（ステップＳ１７３）、ホストＶＭ１３から送られてきた返還要求を受信したか否かを判定する（ステップＳ１７４）。端末管理ＯＳ３２は、返還要求を受信していないと判定した場合（ステップＳ１７４でＮＯ）、要求を受信するステップＳ１７３に処理を戻す。
【００８３】
端末管理ＯＳ３２は、返還要求を受信したと判定した場合（ステップＳ１７４でＹＥＳ）、移動対象ＶＭから物理デバイスを割当解除する（ステップＳ１７５）。端末管理ＯＳ３２は、移動先ＶＭに基本入出力デバイスと共に、物理デバイスを割り当てる（ステップＳ１７６）。端末管理ＯＳ３２は、移動対象ＶＭのホストＶＭ１３をホストサーバ１に移動開始する（ステップＳ１７７）。端末管理ＯＳ３２は、移動対象ＶＭの移動状態を確認して（ステップＳ１７８）、移動を完了したか否かを判定する（ステップＳ１７９）。端末管理ＯＳ３２は、完了していないと判定した場合（ステップＳ１７９でＮＯ）、移動対象ＶＭの移動状態を確認するステップＳ１７８に処理を戻す。端末管理ＯＳ３２は、完了したと判定した場合（ステップＳ１７９でＹＥＳ）、デバイスの割当要求をホスト管理ＯＳ１２に送信して（ステップＳ１８０）、返還処理を終了する。
【００８４】
ホストサーバ１のホスト管理ＯＳ１２は、要求を受信して（ステップＳ１８１）、端末管理ＯＳ３２から送られてきた割当要求を受信したか否かを判定する（ステップＳ１８２）。ホスト管理ＯＳ１２は、割当要求を受信していないと判定した場合（ステップＳ１８２でＮＯ）、要求を受信するステップＳ１８１に処理を戻す。ホスト管理ＯＳ１２は、受信したと判定した場合（ステップＳ１８２でＹＥＳ）、ホストサーバ１に移動してきた移動対象ＶＭのホストＶＭ１３に基本入出力デバイスを割り当てる（ステップＳ１８３）。ホスト管理ＯＳ１２は、移動対象ＶＭのリソースの予約を解除して（ステップＳ１８４）、返還処理を終了する。
【００８５】
以上より、利用可能な物理デバイスが選択された場合、ホストＶＭ１３をクライアント端末３に移動させて、ネットワーク網Ｎを介さずに当該物理デバイスへアクセスすることが可能となる。また、ホストＶＭ１３を移動元に返還する操作を受付けた場合、ホストＶＭ１３を移動元のホストサーバ１に移動させてクライアント端末３からのリモート操作が可能となる。
【００８６】
本実施の形態においては、クライアント端末３に接続された物理デバイスの選択を受け付ける場合を示したが、これに限るものではなく、移動可能なクライアント端末３に接続予定の物理デバイスの選択を受け付けてもよい。この場合、ホストサーバ１からクライアント端末３にホストＶＭ１３を移動させた後に、物理デバイスの接続を待機するとよい。また、クライアント端末３が接続された物理デバイスを選択する場合を示したが、これに限るものではない。例えば、複数のホストサーバ１夫々に接続された物理デバイスを選択するようにしてもよい。この場合、クライアント端末３がリモート接続しているホストＶＭ１３を、選択された物理デバイスが接続された他のホストサーバ１に移動するとよい。
【００８７】
管理サーバ２を備える計算機システムを示したが、これに限るものではない。管理サーバ２の代わりに、例えば複数のホストサーバ１のうち、いずれか１つのホストサーバ１で動作しているホスト管理ＯＳ１２がリソース管理部２１を備えていてもよい。また、実施の形態１と同様にハイパーバイザー型のＶＭＭを用いる場合に限るものではなく、例えばホストＯＳ型のＶＭＭを用いてもよい。
【００８８】
本実施の形態は以上の如きであり、その他は実施の形態１と同様であるので対応する部分には同一の符号及び処理名を付してその詳細な説明を省略する。
【００８９】
実施の形態３
図２６は、各ソフトウェアの例を示すブロック図である。本実施の形態は、クライアント端末３に移動したホストＶＭ１３から物理デバイスへのアクセスを制限する。管理サーバ２は、クライアント端末３に接続された物理デバイス夫々に対するアクセス可否を管理するアクセス管理部２２を含む。ホストＶＭ１３は、管理サーバ２のアクセス管理部２２が管理しているアクセス制限情報に基づいてアクセスを制限するアクセス制限部１３３を含む。
【００９０】
続いて本実施の形態の概要を説明する。クライアント端末３に移動されて基本入出力デバイス及び物理デバイスが割り当てられたホストＶＭ１３は、各デバイスへアクセスが可能となる。ここで、ホストＶＭ１３の移動動作及び各デバイスの割当動作は、実施の形態１及び実施の形態２と同様であるので説明を省略する。アクセス制限部１３３は、ホストＶＭ１３が割り当てられた物理デバイス夫々にアクセスする場合、予め設定されたアクセス制限情報に基づいてデバイスへのアクセスを許可することで許可手段として機能する。これにより、クライアント端末３を操作するユーザによる各物理デバイスへのアクセスを制限して、外部への情報の漏洩又は外部から計算機システムへの不正なデータ及びプログラムの進入を防ぐことが可能となる。
【００９１】
また、アクセス制限テーブルは、各物理デバイスの各動作に応じたアクセス可否を含む。アクセス制限部１３３により物理デバイスの動作状態を定期的に監視し、動作状態に応じたアクセス制限を行ってもよい。例えば、アクセス制限情報により書込動作が禁止されているＤＶＤマルチドライブに読込みのみが可能なＤＶＤ−ＲＯＭが挿入された場合は、アクセスを許可するとよい。この場合、ＤＶＤマルチドライブに挿入されたＤＶＤ−ＲＯＭが、書き込み可能なＤＶＤ−ＲＡＭに入れ替えられた場合、当該ＤＶＤ−ＲＯＭへのアクセスが禁止される。以下、詳細を説明する。
【００９２】
図２７は、アクセス制限テーブルのレコードレイアウト例を示す図表である。アクセス管理部２２は、アクセス制限テーブルを記憶部に記憶してアクセス制限情報を管理するようにしてある。アクセス制限テーブルには、各クライアント端末の入出力部３０６に接続してあるＵＳＢメモリ３０８ａ及びＤＶＤ−ＲＯＭドライブ３０８ｂ等の物理デバイス夫々のアクセス制限情報が含まれている。アクセス制限情報は、各物理デバイスのアクセス可否を各動作に対応して示しており、計算機システムの管理者等により予め決定されて記憶されている。図２７に示す例では、クライアント端末３にＵＳＢメモリ３０８ａが接続された場合、書込動作についてはアクセスを許可しないアクセス否が記憶されている。また、ＤＶＤドライブ３０８ｂにＤＶＤが挿入された場合、読込動作についてはアクセスを許可するアクセス可が記憶されている。
【００９３】
図２８及び図２９は、アクセス制限処理の手順を示すフローチャートである。アクセス制限処理は、クライアント端末３に移動してきたホストＶＭ１３への物理デバイスの割当が行われた場合に実行される。ホスト端末１３は、要求を受信して（ステップＳ１９０）、アクセス要求を受付けたか否かを判定する（ステップＳ１９１）。ホストＶＭ１３は、アクセス要求を受付けていないと判定した場合（ステップＳ１９１でＮＯ）、要求を受信するステップＳ１９０に処理を戻す。ホストＶＭ１３は、アクセス要求を受付けたと判定した場合（ステップＳ１９１でＹＥＳ）、アクセスする物理デバイスに対応するアクセス制限情報の要求を管理サーバ２に送信する。管理サーバ２は、要求を受信して（ステップＳ１９３）、ホストＶＭ１３から送られてきたアクセス制限情報の要求を受信したか否かを判定する（ステップＳ１９４）。管理サーバ２は、アクセス制限情報の要求を受信していないと判定した場合（ステップＳ１９４でＮＯ）、要求を受信するステップＳ１９３に処理を戻す。
【００９４】
管理サーバ２は、アクセス制限情報の要求を受信したと判定した場合（ステップＳ１９４でＹＥＳ）、アクセス管理部２２により要求元のクライアント端末３に対応するアクセス制限情報を取得する（ステップＳ１９５）。管理サーバ２は、取得したアクセス制限情報をホストＶＭ１３に送信して （ステップＳ１９６）、アクセス制限処理を終了する。ホストＶＭ１３は、情報を受信して（ステップＳ１９７）、管理サーバ２から送られてきたアクセス制限情報を受信したか否かを判定する（ステップＳ１９８）。ホストＶＭ１３は、アクセス制限情報を受信していないと判定した場合（ステップＳ１９８でＮＯ）、情報を受信するステップＳ１９７に処理を戻す。ホストＶＭ１３は、アクセス制限情報を受信したと判定した場合（ステップＳ１９８でＹＥＳ）、接続してある物理デバイスの一覧を取得する（ステップＳ１９９）。
【００９５】
ホストＶＭ１３は、物理デバイスの一覧から１つの物理デバイスを選択する（ステップＳ２００）。ホストＶＭ１３は、アクセス制限情報に基づいて物理デバイスがアクセス可であるか否かを判定する（ステップＳ２０１）。ホストＶＭ１３は、アクセス可であると判定した場合（ステップＳ２０１でＹＥＳ）、物理デバイスへのアクセスを許可する（ステップＳ２０２）。ホストＶＭ１３は、全ての物理デバイスを選択済みであるか否かを判定する（ステップＳ２０３）。ホストＶＭ１３は、選択済みでないと判定した場合（ステップＳ２０３でＮＯ）、一覧から他の物理デバイスを選択して（ステップＳ２０４）、アクセス可であるか否かを判定するステップＳ２０１に処理を戻す。また、ホストＶＭ１３は、アクセス可であるか否かを判定するステップＳ２０１において、アクセス可でないと判定した場合（ステップＳ２０１でＮＯ）、全ての物理デバイスを選択済みであるか否かを判定するステップＳ２０３に処理を移す。
【００９６】
ホストＶＭ１３は、選択済みであると判定した場合（ステップＳ２０３でＹＥＳ）、メディアが交換されたか否かを判定する（ステップＳ２０５）。ホストＶＭ１３は、メディアが交換されたと判定した場合（ステップＳ２０５でＹＥＳ）、アクセス可であるか否かを判定する（ステップＳ２０６）。ホストＶＭ１３は、アクセス可であると判定した場合（ステップＳ２０６でＹＥＳ）、アクセス許可されているか否かを判定する（ステップＳ２０７）。ホストＶＭ１３は、アクセス許可されていないと判定した場合（ステップＳ２０７でＮＯ）、アクセスを許可する（ステップＳ２０８）。
【００９７】
ホストＶＭ１３は、物理デバイスが割当解除されたか否かを判定する（ステップＳ２０９）。ホストＶＭ１３は、物理デバイスが割当解除されていないと判定した場合（ステップＳ２０９でＮＯ）、メディアが交換されたか否かを判定するステップＳ２０５に処理を戻す。ホストＶＭ１３は、メディアが交換されたか否かを判定するステップＳ２０５において、メディアが交換されていないと判定した場合（ステップＳ２０５でＮＯ）、物理デバイスが割当解除されたか否かを判定するステップＳ２０９に処理を移す。ホストＶＭ１３は、アクセス可であるか否かを判定するステップＳ２０６において、アクセス可でないと判定した場合（ステップＳ２０６でＮＯ）、アクセス許可されているか否かを判定する（ステップＳ２１０）。ホストＶＭ１３は、アクセス許可されていないと判定した場合（ステップＳ２１０でＮＯ）、物理デバイスが割当解除されたか否かを判定するステップＳ２０９に処理を移す。
【００９８】
ホストＶＭ１３は、アクセス許可されていると判定した場合（ステップＳ２１０でＹＥＳ）、アクセス許可を解除して（ステップＳ２１１）、物理デバイスが割当解除されたか否かを判定するステップＳ２０９に処理を移す。ホストＶＭ１３は、アクセス許可されているか否かを判定するステップＳ２０７において、アクセス許可されていると判定した場合（ステップＳ２０７でＹＥＳ）、物理デバイスが割当解除されたか否かを判定するステップＳ２０９に処理を移す。ホストＶＭ１３は、物理デバイスが割当解除されたと判定した場合（ステップＳ２０９でＹＥＳ）、アクセス制限処理を終了する。これにより、ホストＶＭ１３から物理デバイスへのアクセスを事前に設定してあるアクセス制限情報に基づいて制限することが可能となる。
【００９９】
本実施の形態においては、クライアント端末３に移動してきたホストＶＭ１３に基本入出力デバイス及び物理デバイスが割り当てられ、当該物理デバイスへのアクセス制限を行う例を示したが。これに限るものではない。例えば、クライアント端末３に移動してきたホストＶＭ１３に基本入出力デバイスのみを割り当て、アクセス制限情報に基づいてアクセス許可する物理デバイスのみを割り当てるようにしてもよい。この場合、ホストＶＭ１３に割り当てられていない物理デバイスは、ホストＶＭ１３からアクセスできないため、アクセスが禁止される。
【０１００】
本実施の形態においては、管理サーバ２がアクセス管理部２２を備える例を示したが、これに限るものではない。管理サーバ２の代わりに、例えば複数のホストサーバ１のうち、いずれか１つのホストサーバ１で動作しているホスト管理ＯＳ１２がアクセス管理部２２を備えていてもよい。
【０１０１】
本実施の形態３は以上の如きであり、その他は実施の形態１及び２と同様であるので対応する部分には同一の符号及び処理名を付してその詳細な説明を省略する。
【０１０２】
以上の実施の形態１乃至３を含む実施形態に関し、さらに以下の付記を開示する。
【０１０３】
（付記１）
物理デバイスが接続された複数の端末装置夫々に対応付けて複数の仮想計算機を動作させるサーバ装置において、
前記複数の端末装置夫々へ、前記複数の仮想計算機夫々の移動が可能であるか否かを判定する判定手段と、
該判定手段により移動が可能であると判定した端末装置へ、該端末装置に対応付けた仮想計算機を移動する移動手段と、
該移動手段により移動した仮想計算機に、該端末装置に接続された物理デバイスを割り当てる割当手段と
を備えるサーバ装置。
【０１０４】
（付記２）
前記複数の端末装置に接続された物理デバイスを検出する検出手段を備え、
前記判定手段は、前記検出手段により検出した物理デバイスが接続された端末装置へ、該端末装置に対応付けた仮想計算機の移動が可能であるか否かを判定する
付記１に記載のサーバ装置。
【０１０５】
（付記３）
前記複数の端末装置に接続された物理デバイスのうち、少なくとも１つの物理デバイスを選択する選択手段を備え、
前記判定手段は、前記選択手段により選択した物理デバイスが接続された端末装置へ、該端末装置に対応付けた仮想計算機の移動が可能であるか否かを判定する
付記１又は付記２に記載のサーバ装置。
【０１０６】
（付記４）
前記判定手段により移動が可能であると判定した端末装置に接続された物理デバイスの一覧を表示する表示手段と、
該表示手段により表示した一覧から、少なくとも１つの物理デバイスを選択する操作を受付ける操作受付手段と
を備え、
前記選択手段は、前記操作受付手段により受け付けた操作に基づいて物理デバイスを選択する
付記３に記載のサーバ装置。
【０１０７】
（付記５）
前記複数の端末装置に接続された物理デバイス夫々に対するアクセス可否を記憶してある記憶部と、
該記憶部に記憶してあるアクセス可否に基づいて前記割当手段が割り当てた物理デバイスに対するアクセスを許可する許可手段と
を備える付記１乃至付記４のいずれか1つに記載のサーバ装置。
【０１０８】
（付記６）
前記移動手段により移動した仮想計算機に、前記端末装置に接続された物理デバイスを割り当てる割当手段と、
該割当手段により割り当てた物理デバイスの割当を解除する解除手段
とを備え、
前記移動手段は、前記解除手段により物理デバイスの割当を解除した場合、前記端末装置に移動した仮想計算機を移動元に戻す
付記１乃至付記５のいずれか1つに記載のサーバ装置。
【０１０９】
（付記７）
前記判定手段は、前記複数の端末装置夫々が有する計算資源及び前記複数の仮想計算機夫々が使用している計算資源に基づいて判定することを特徴とする付記１乃至付記６に記載のサーバ装置。
【０１１０】
（付記８）
物理デバイスが接続された複数の端末装置と、該複数の端末装置夫々に対応付けて複数の仮想計算機を動作させるサーバ装置とを有する計算機システムにおいて、
前記サーバ装置は、
前記複数の端末装置夫々へ前記複数の仮想計算機夫々の移動が可能であるか否かを判定する判定手段と、
該判定手段により移動が可能であると判定した端末装置へ、該端末装置に対応付けた仮想計算機を移動する移動手段と
を備え、
前記端末装置は、
前記移動手段により移動した仮想計算機に物理デバイスを割り当てる割当手段
を備える計算機システム。
【０１１１】
（付記９）
前記複数の端末装置夫々が有する計算資源及び前記複数の仮想計算機夫々が使用している計算資源を管理する管理装置を備え、
前記判定手段は、前記管理装置により管理している計算資源に基づいて前記複数の端末装置夫々へ前記仮想計算機を移動可能であるか否かを判定する
付記８に記載の計算機システム。
【０１１２】
（付記１０）
前記管理装置は、前記複数の端末装置に接続してある物理デバイス夫々に対するアクセス可否を記憶した記憶部を備え、
前記サーバ装置は、
前記記憶部に記憶してあるアクセス可否に基づいて前記割当手段により割り当てた物理デバイス夫々に対するアクセスを許可する許可手段を備える
ことを特徴とする付記８又は付記９に記載の計算機システム。
【０１１３】
（付記１１）
物理デバイスが接続された複数の端末装置夫々に対応付けて複数の仮想計算機を動作させるサーバ装置に、前記複数の端末装置夫々へ前記仮想計算機を移動させるプログラムにおいて、
前記サーバ装置に
前記複数の端末装置夫々へ前記複数の仮想計算機夫々の移動が可能であるか否かを判定する判定ステップと、
該判定ステップにより移動が可能であると判定した端末装置へ、該端末装置に対応付けた仮想計算機を移動する移動ステップと、
該移動ステップにより移動した仮想計算機に、該端末装置に接続された物理デバイスを割り当てる割当ステップと
を実行させるプログラム。
【０１１４】
（付記１２）
物理デバイスが接続された複数の端末装置夫々に対応付けた複数の仮想計算機を前記複数の端末装置へ移動させる仮想計算機移動方法において、
前記複数の端末装置夫々へ前記複数の端末装置夫々の移動が可能であるか否かを判定する判定手順と、
移動が可能であると判定した端末装置へ、該端末装置に対応付けた仮想計算機を移動する移動手順と、
移動した仮想計算機に、該端末装置に接続された物理デバイスを割り当てる割当手順と
含む仮想計算機移動方法。
【０１１５】
（付記１３）
付記２に記載の複数の端末装置夫々により実行されるプログラムであって、
前記複数の端末装置夫々に接続された物理デバイスを検出する検出ステップと、
該検出ステップにより検出した前記物理デバイスを前記検出手段へ通知する通知ステップと
を実行するプログラム。
【符号の説明】
【０１１６】
１  ホストサーバ
２  管理サーバ
３  クライアント端末
Ｎ  ネットワーク網
１０，３０  ハードウェア
１１  ホストＶＭＭ
１２  ホスト管理ＯＳ
１３  ホストＶＭ
２１  リソース管理部
２２  アクセス管理部
３１  端末ＶＭＭ
３２  端末管理ＯＳ
３３  端末ＶＭ
１００，３００  ＣＰＵ
１００ａ，３００ａ  バス
１０１，３０１  ＲＡＭ
１０２，３０２  ＨＤＤ
１０３，３０３  ＮＩＣ
１０４，３０４  画像処理部
１０５，３０５  表示部
１０６，３０６  入出力部
１０７ａ，３０７ａ  キーボード
１０７ｂ，３０７ｂ  マウス
１０９，３０９  記録媒体読込部
１１０，３１０  記録媒体
３０８ａ  ＵＳＢメモリ
３０８ｂ  ＤＶＤドライブ
１１１，３１１  物理デバイス接続検出部
１１２，３１２  物理デバイス割当部
１２１，３２１  ローカルリソース管理部
１２２，３２２  ＶＭ移動部
１２３，３２３  物理デバイス割当要求部
１３１  仮想サーバ
１３２  ＶＭ移動先候補表示部
１３３  アクセス制限部
３３１  仮想クライアント
１１０１，３１０１  プログラム
【図１】
2010237788.tif 000003
【図２】
2010237788.tif 000004
【図３】
2010237788.tif 000005
【図４】
2010237788.tif 000006
【図５】
2010237788.tif 000007
【図６】
2010237788.tif 000008
【図７】
2010237788.tif 000009
【図８】
2010237788.tif 000010
【図９】
2010237788.tif 000011
【図１０】
2010237788.tif 000012
【図１１】
2010237788.tif 000013
【図１２】
2010237788.tif 000014
【図１３】
2010237788.tif 000015
【図１４】
2010237788.tif 000016
【図１５】
2010237788.tif 000017
【図１６】
2010237788.tif 000018
【図１７】
2010237788.tif 000019
【図１８】
2010237788.tif 000020
【図１９】
2010237788.tif 000021
【図２０】
2010237788.tif 000022
【図２１】
2010237788.tif 000023
【図２２】
2010237788.tif 000024
【図２３】
2010237788.tif 000025
【図２４】
2010237788.tif 000026
【図２５】
2010237788.tif 000027
【図２６】
2010237788.tif 000028
【図２７】
2010237788.tif 000029
【図２８】
2010237788.tif 000030
【図２９】
2010237788.tif 000031
【手続補正書】
【提出日】平成22年3月9日(2010.3.9)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
【特許文献１】特開２００６−２４４４８１号公報
【特許文献２】特開平１０−２８３２１０号公報
【特許文献３】特開２００８−２１７３３２号公報