(57)【要約】【課題】  エンドユーザのコンピュータ機器の遊休リソースをP2P（Peer to Peer）やグリッドコンピューティング等に有効活用する。その際、エンドユーザのリソースを安全に保護し、かつ、外部コンピュータ機器から要求されたジョブを安全に保護する。【解決手段】  仮想マシンモニタ２が、当該仮想マシンモニタの管理専用に設けられる管理専用仮想マシン３と、外部コンピュータ向けのジョブを実行するサービス用仮想マシン４と、エンドユーザ向けのジョブを実行するエンドユーザ用仮想マシン５とを備える。また、外部コンピュータとの通信を暗号化する通信暗号化機能６，８を備え、かつ、管理専用仮想マシン３は、当該管理専用仮想マシンへのアクセスを許可するノード管理サーバの正当性を当該アクセスを許可する前に確認する機能を備える。【選択図】  図２
2008171076.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンモニタを備えたジョブ実行装置において、
前記仮想マシンモニタが、当該仮想マシンモニタの管理専用に設けられる管理専用仮想マシンと、外部コンピュータ向けのジョブを実行するサービス用仮想マシンと、前記ジョブ実行装置のエンドユーザ向けのジョブを実行するエンドユーザ用仮想マシンとを備え、
前記管理専用仮想マシン及び前記サービス用仮想マシンは、外部コンピュータとの通信を暗号化する通信暗号化機能を備え、
かつ、前記管理専用仮想マシンは、当該管理専用仮想マシンへのアクセスを許可するノード管理サーバの正当性を当該アクセスを許可する前に確認する機能を備えていることを特徴としたジョブ実行装置。
【請求項２】
請求項１記載のジョブ実行装置をノード管理システムから遠隔制御する方法であって、
先ず、前記管理専用仮想マシンに装備されたノード管理クライアントが、前記ノード管理システムに装備されたノード管理サーバにアクセスするステップと、
このアクセスに対し、前記ノード管理サーバが、自己のサーバ証明書を記憶領域から読み出し、前記ノード管理クライアントに送信するステップと、
当該ノード管理クライアントは、ノード管理サーバの発行した前記サーバ証明書を受信し、このサーバ証明書に基づいて前記ノード管理サーバの正当性を確認するステップと、
当該ノード管理サーバの正当性を確認できた場合、ノード管理クライアントが、ノード認証キーを記憶領域から読み出し、ノード管理サーバへ送信するステップと、
当該ノード管理サーバが、ノード管理クライアントから送信されたノード認証キーを受信し、このノード認証キーに基づいてノード管理クライアントの正当性を確認するステップと、
当該ノード管理クライアントの正当性を確認できた後において、前記ノード管理サーバが、前記ノード管理クライアントに対し制御コマンドを発行するステップと、
このコマンドを受信したノード管理クライアントが、当該受信したコマンドに対応する処理を実行し、当該コマンドに対応した制御を前記仮想マシンモニタに対して施すステップと、
を備えたことを特徴とするジョブ実行装置の制御方法。
【請求項３】
請求項１記載のジョブ実行装置において、
請求項２記載のノード認証キーを前記ジョブ実行装置の生産時に記憶領域に書き込むことを特徴としたジョブ実行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、並列処理システムに係り、特に、仮想マシンモニタを利用した並列処理システムに関する。
【背景技術】
【０００２】
1台のコンピュータ上で複数のＯＳ（Operating System）を制御するプログラムとして、仮想マシンモニタが知られている。特に、英国ケンブリッジ大学で開発が進められたXen（商標）やVMware社のVMware（登録商標）等は広く知られた仮想マシンモニタである。
【０００３】
この仮想マシンモニタを用いると、１台のコンピュータが複数の異なるＯＳを制御し、各ＯＳ上で異なるジョブを並列に処理することができる。仮想マシンモニタは、複数の仮想マシンを実行し、各仮想マシンは、互いに異なるＯＳを動作させることができる。
【０００４】
なお、出願人はこの技術に関する公知技術文献の存在を知らない。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本願は、上記仮想マシンモニタを利用し、エンドユーザのジョブと、外部コンピュータ機器から要求されたジョブとを並列に処理し、エンドユーザのコンピュータ機器の遊休リソースをP2P（Peer to Peer）やグリッドコンピューティング等に有効活用する。その際、エンドユーザのリソースを外部コンピュータ機器のアクセスから安全に保護し、かつ、外部コンピュータ機器から要求されたジョブをエンドユーザの操作から安全に保護することを課題とする。
【課題を解決するための手段】
【０００６】
そこで、本願発明のジョブ実行装置では、以下の構成を採用する。即ち、仮想マシンモニタを備えたジョブ実行装置において、仮想マシンモニタが、当該仮想マシンモニタの管理専用に設けられる管理専用仮想マシンと、外部コンピュータ向けのジョブを実行するサービス用仮想マシンと、ジョブ実行装置のエンドユーザ向けのジョブを実行するエンドユーザ用仮想マシンとを備える。このうち、管理専用仮想マシン及びサービス用仮想マシンは、外部コンピュータとの通信を暗号化する通信暗号化機能を備える。かつ、管理専用仮想マシンは、当該管理専用仮想マシンへのアクセスを許可するノード管理サーバの正当性を当該アクセスを許可する前に確認する機能を備える。
【０００７】
また、上記ジョブ実行装置の制御方法は、以下の手順とする。先ず、管理専用仮想マシンに装備されたノード管理クライアントが、ノード管理システムに装備されたノード管理サーバにアクセスする。このアクセスに対し、前記ノード管理サーバが、自己のサーバ証明書を記憶領域から読み出し、ノード管理クライアントに送信する。当該ノード管理クライアントは、ノード管理サーバの発行したサーバ証明書を受信し、このサーバ証明書に基づいてノード管理サーバの正当性を確認する。当該ノード管理サーバの正当性を確認できた場合、ノード管理クライアントが、ノード認証キーを記憶領域から読み出し、ノード管理サーバへ送信する。当該ノード管理サーバが、ノード管理クライアントから送信されたノード認証キーを受信し、このノード認証キーに基づいてノード管理クライアントの正当性を確認する。当該ノード管理クライアントの正当性を確認できた後においては、ノード管理サーバが、ノード管理クライアントに対し制御コマンドを発行する。このコマンドを受信したノード管理クライアントが、当該受信したコマンドに対応する処理を実行し、当該コマンドに対応した制御を仮想マシンモニタに対して施す。
【０００８】
ここで、上記ノード認証キーは、ジョブ実行装置の生産時に記憶領域に書き込むようにしてもよい。
【発明の効果】
【０００９】
以上のように、仮想マシンモニタを採用し、サービス用仮想マシンと、エンドユーザ用仮想マシンとを別々に設けることにより、これらの仮想マシンで実行される各ＯＳは同列のＯＳとなり、各ＯＳ用のメモリ領域はアイソレーション（分離）され、メモリ領域の互いの干渉が不可能になると共に、大容量記憶装置に構築される各ＯＳのファイルシステムもアイソレーションされる。このため、エンドユーザからはサービス用仮想マシンの処理は見えない。また、エンドユーザのジョブがサービス用仮想マシンで取り扱うデータ等にアクセスすることや、逆に、サービス用仮想マシンのジョブがエンドユーザのデータ等にアクセスする事態が防止され、処理の信頼性及び安全性が保たれる。また、サービス用仮想マシンが行う通信は通信暗号化機能によって暗号化できるので、エンドユーザや第三者がサービス用仮想マシンにおける通信を傍受する事態も防止される。
【００１０】
また、上記の制御方法を採用した場合は、管理専用仮想マシンの側に、ネットワークサーバ機能を用意する必要がないため、ネットワーク越しに管理専用仮想マシンへ接続することはできない。このため、エンドユーザや第三者が管理専用仮想マシンにアクセスし、仮想マシンモニタを制御することはできず、仮想マシンモニタ及び各仮想マシンにおけるセキュリティ状態を保護することができる。また、ノード管理クライアントとノード管理サーバとの間の通信は暗号化することができるので、通信の盗聴や改竄のリスクも少ない。
【００１１】
また、ノード認証キーをジョブ実行装置の生産時に記録しておく場合は、管理専用仮想マシンにクライアント証明書を用意しなくても、正当なクライアントであることを確認できる。クライアント証明書を用意する必要がないので、ノードクライアントにかかるコストを比較的安価に抑えることができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の一実施形態を説明する。この実施例では、仮想マシンモニタとして、Xen（商標）を使用している。
【００１３】
図１において、クライアントノードは、パソコンや家庭用ゲーム機等のコンピュータ機器であって、インターネットに接続し通信可能となっている。図１ではクライアントノードＡ，Ｂの２台しか図示していないが、クライアントノードは3台以上の複数が存在してもよい。また、P2Pジョブ管理システム１００と、ノード管理システム２００もまたインターネットに接続され、クライアントノードＡ，Ｂとの通信が可能となっている。クライアントノードＡ，Ｂは、エンドユーザのジョブを処理することに加え、P2Pジョブ管理システム１００の管理下において、クライアントノード相互間のP2P通信を伴ったジョブを実行できるようになっている。ノード管理システム２００は、クライアントノードＡ，Ｂにコマンドを発行し、クライアントノードの動作環境を制御する機能を有する。このため、ノード管理システム２００は、ノードクライアントＡ，Ｂと通信するためのノード管理サーバ２１０を実行する。ノード管理サーバ２１０は、ノードクライアントＡ，Ｂに送付するためのサーバ証明書Ｓを記憶領域に格納している。
【００１４】
クライアントノードＡ，Ｂの構成は、図２に示すようになっている。ハードウェア１は、コンピュータ機器の一般的な要素を備えており、エンドユーザの指示を入力する入力装置、エンドユーザに情報を出力する出力装置、インターネットを介して通信を行う通信装置、処理に伴う情報を記憶する記憶装置及びこれら各装置と連携して処理を実行する処理装置とを具備する。ハードウェア上では仮想マシンモニタ２が実行される。更に、仮想マシンモニタ２は、３つの仮想マシン３，４，５を実行する。
【００１５】
３つの仮想マシン３，４，５は、その一つを仮想マシンモニタ２の管理専用とし（以下、これを管理専用仮想マシン３という）、もう一つはP2Pサービス用とし（以下、これをP2Pサービス用仮想マシン４という）、他の一つはエンドユーザ用とする（以下、これをエンドユーザ用仮想マシン５という）。各仮想マシン３，４，５には、仮想マシンモニタ２が、各仮想マシン３，４，５を識別するための識別子が付与されている。
【００１６】
このうち、管理専用仮想マシン３は、他の仮想マシンを管理する特権を持ち、物理ハードウェアにアクセスするためのデバイス・ドライバや，ほかのドメインを管理するための管理コマンドなどを備えている。管理専用仮想マシン３は、仮想マシンモニタ２を管理するための所定のＯＳを実行する。当該ＯＳ上では、ノード管理サーバ２１０と通信するためのノード管理クライアント７が実行される。また、当該ＯＳ上では、インターネットを通じた通信を必要に応じて暗号化して行うための通信暗号化機能６が提供される。更に、管理専用仮想マシン３には、ノードクライアントの正当性をノード管理サーバに対して示すためのノード認証キーＣが記録されている。管理専用仮想マシン３では、エンドユーザの入力装置による入力やエンドユーザの出力装置への出力を行う手段を持たない。その方法としては、具体的には、エンドユーザ用仮想マシン５からのドライバ類へのアクセス処理依頼に対応するためデバイスのドライバは持つが、当該ＯＳで実行されるプログラムがこれらのエンドユーザ向けのデバイスとの入出力を受け付けないようにすることが考えられる。
【００１７】
また、P2Pサービス用仮想マシン４は、P2Pサービスのジョブの実行を前提とした所定のＯＳを実行し、当該ＯＳ上では、P2Pサービスのジョブを処理するための所定のアプリケーションが実行される。更に、当該ＯＳ上では、管理専用仮想マシン３と同様に、インターネットを通じた通信を必要に応じて暗号化して行うための通信暗号化機能８が提供される。これに加え、大容量記憶装置１１に構築されたファイルシステムに格納するファイルを暗号化するファイル暗号化機能９も備えている。P2Pサービス用仮想マシン４では、エンドユーザの入力装置による入力やエンドユーザの出力装置への出力を行う手段を持たない。その方法としては、具体的には、当該ＯＳの機能としてこれらの手段を提供しないようにする、当該ＯＳで実行されるプログラムがこれらのエンドユーザ向けのデバイスとの入出力を受け付けないようにするといったことが考えられる。
【００１８】
また、エンドユーザ用仮想マシン５は、エンドユーザのジョブの実行を前提とした所定のＯＳを実行し、当該ＯＳ上では、エンドユーザのジョブを処理するための所定のアプリケーションが実行される。必要に応じた通信暗号化もなされる。
仮想マシン４，５が物理ハードウェアを使用する場合は，仮想マシンモニタ経由で仮想マシン３の持つドライバ類にアクセス処理を依頼する。
【００１９】
仮想マシンモニタ２は、上記の複数の仮想マシン３，４，５の動作プライオリティを設定するプライオリティ設定機能２ａを備えている。本実施形態において、プライオリティ設定機能は、エンドユーザ用仮想マシン５の処理が優先されるように設定されている。
【００２０】
続いて、仮想マシンモニタ２の具体例を図３に示す。仮想マシンモニタ２としてＸｅｎ（商標）を採用した場合、各仮想マシン３，４，５の識別子としてＸｅｎ（商標）における仮想マシンの管理単位であるドメインを用い、仮想マシン３をドメイン０、仮想マシン４をドメインＵ１、仮想マシン５をドメインＵ２とする。また、通信暗号化機能６，８としては、ＳＳＬ（Secure Socket Layer）の採用が考えられる。また、ノード認証キーＣの実装方法としては、ノードクライアントの装置の生産時に、秘密の文字列を仮想マシン３が管理する、仮想マシン４，５がアクセスできない記憶領域に書き込むことが考えられる。
【００２１】
また、仮想マシンモニタとしてＶＭＷａｒｅ（商標）を使用するのであれば、Ｘｅｎ（商標）での実施例における仮想マシンモニタ、仮想マシン３の代わりにハードウェアを制御する主ＯＳとしてWｉｎｄｏｗｓ（登録商標）やＬｉｎｕｘ（商標）等のＯＳを導入し、主ＯＳ上で仮想マシンモニタのＶＭＷａｒｅ（商標）を実行するという構成とし、ＶＭＷａｒｅ（商標）上で動作する仮想マシンとして仮想マシン４，５を実行するという構成にしてもよい。
【００２２】
以上のように、仮想マシンモニタ２を採用し、P2Pサービス用仮想マシン４と、エンドユーザ用仮想マシン５とを別々に設けることにより、各仮想マシン４，５で実行される各ＯＳは同列のＯＳとなり、各ＯＳ用のメモリ領域はアイソレーション（分離）され、メモリ領域の互いの干渉が不可能になると共に、大容量記憶装置１１に構築される各ＯＳのファイルシステムもアイソレーションされる。このため、エンドユーザからはP2P処理の内容は見えない。また、エンドユーザのジョブがP2Pサービスのデータ等にアクセスすることや、逆に、P2Pサービスのジョブがエンドユーザのデータ等にアクセスする事態が防止され、処理の信頼性及び安全性が保たれる。また、P2Pサービス用仮想マシン４が行う通信は通信暗号化機能８によって暗号化できるので、エンドユーザや第三者がP2Pサービスに関する通信を傍受する事態も防止される。
【００２３】
しかしながら、エンドユーザや第三者が管理専用仮想マシン３にアクセスし、仮想マシンモニタ２を制御することを許してしまうと、各仮想マシンのセキュリティ状態が崩されるおそれがある。そこで、本発明では、エンドユーザや権限のない第三者が管理専用仮想マシン３にアクセスできないように工夫を取り入れている。その工夫を次に説明する。
【００２４】
まず、管理専用仮想マシン３のＯＳでは、キーボード、マウス、ディスプレイなど、エンドユーザが操作できる入力装置、出力装置との入力、出力の手段を持たせないようにし、管理専用仮想マシン３には、ネットワーク経由でのみアクセスできるようにする。
【００２５】
図４は、管理専用仮想マシン３において実行されるノード管理クライアント７と、ノード管理システム２００との間で行われる通信手順を示している。通信手順は図の上から下に向かって時系列に並んでいる。
【００２６】
まず、ノード管理システム２００がノード管理クライアント７にコマンドを発行するためには、両者の通信を接続する必要がある。両者の接続は、ノード管理クライアント７の側からノード管理システム２００へアクセスすることによって行う（Ｓ１）。このステップは、例えば管理専用仮想マシン３のＯＳが起動したあとに自動的にされるようにする。このアクセスに対し、ノード管理サーバ２１０は、自己のサーバ証明書を記憶領域から読み出し、ノード管理クライアント７に送信する（Ｓ２）。ノード管理クライアント７は、ノード管理サーバ２１０が発行したサーバ証明書を受信し、このサーバ証明書に基づいてノード管理システム２００の正当性を確認する（Ｓ３）。
【００２７】
ノード管理システム２００の正当性を確認できた場合、ノード管理クライアント７は、ノード認証キーＣを記憶領域から読み出し、ノード管理システム２００へ送信する（Ｓ４）。ノード管理システム２００は、ノード管理クライアント７から送信されたノード認証キーＣを受信し、このノード認証キーＣに基づいてノード管理クライアント７の正当性を確認する（Ｓ５）。
【００２８】
ノード管理クライアント７の正当性を確認できた後においては、ノード管理システム２００は、ノード管理クライアント７に対し、必要な時に、必要な制御コマンドを発行する（Ｓ６）。このコマンドを受信したノード管理クライアント７は、当該受信したコマンドに対応する処理を実行し、当該コマンドに対応した制御を仮想マシンモニタ２に対して施す（Ｓ７）。コマンドに対応する処理が完了すると、ノード管理クライアント７は、当該処理の結果をノード管理システム２００に通知する（Ｓ８）。
【００２９】
これにより、ノードクライアントＡ，Ｂの仮想マシンモニタ２は、権限のあるノード管理システム２００によって適切に制御される。そして、当該制御された仮想マシンモニタ２の上で、P2Pサービス用仮想マシン４は、P2Pジョブ管理システム１００の管理の下にP2Pサービスのジョブを実行する。同時に、制御された仮想マシンモニタ２の上で、エンドユーザ用仮想マシン５は、エンドユーザに要求されたジョブを実行する。
【００３０】
また、上記の通信手順によれば、管理専用仮想マシン３に、ネットワークサーバ機能を用意する必要がないため、ネットワーク越しに管理専用仮想マシン３へ接続することはできない。このため、エンドユーザや第三者が管理専用仮想マシン３にアクセスし、仮想マシンモニタ２を制御することはできず、仮想マシンモニタ２及び各仮想マシンにおけるセキュリティ状態を保護することができる。また、ノード管理クライアントとノード管理サーバとの間の通信は暗号化することができるので、通信の盗聴や改竄のリスクも少ない。また、ノード認証キーＣを生産時に記録しておけば、管理専用仮想マシンにクライアント証明書を用意しなくても、正当なクライアントであることを確認できる。クライアント証明書を用意する必要がないので、ノードクライアントにかかるコストを比較的安価に抑えることができる。
【００３１】
ところで、上記の実施形態では、識別子ドメインＵ１の仮想マシン４で行われる処理をP2Pサービスのジョブとして説明したが、P2Pサービスのジョブに限られるものではない。例えば、グリッドコンピューティングのジョブでもよい。具体例としては、ノードクライアントＡのエンドユーザが依頼した高度な情報検索ジョブを、ノードクライアントＡとＢの識別子ドメインＵ１の仮想マシン４に分散し、高度な情報検索のジョブを行わせること等が考えられる。また、各クライアントでのＰ２Ｐサービス用仮想マシン４、エンドユーザ用仮想マシン５の識別子は共通でなくてもよい。管理専用仮想マシン３、Ｐ２Ｐサービス用仮想マシン４では、セキュリティ維持の観点から考えて差し支えのない情報についてはエンドユーザのキーボードなどのクライアント機器からの問合せを受け付けるようにする、モニターなどの出力装置に出力されるようにする等してもよい。エンドユーザがノード認証キーＣをハードディスクの中身を調べて不正に直接知る可能性があるが、これについては、ノード認証キーCはあらかじめ暗号化されて保存されており、ノード管理システム２００との通信時に管理専用仮想マシン３上で復号されて利用されるようにするといった対策が考えられる。管理専用仮想マシン３が持つほかのドメインを管理するための管理コマンドの内容を他のドメインの起動、終了などだけに限定すれば、何らかの方法でノード認証キーがエンドユーザに漏洩してしまったとしても、Ｐ２Ｐサービス用仮想マシンは、Ｐ２Ｐジョブ管理システム１００管理下の作業を、不正に妨害されることなく実行できる。
【図面の簡単な説明】
【００３２】
【図１】本発明の一実施形態を示すブロック図である。
【図２】図１に示すノードクライアントの構成図である。
【図３】図２に示すノードクライアントの具体例を示す構成図である。
【図４】ノード管理クライアントとノード管理サーバとの間の通信手順を示す流れ図である。
【符号の説明】
【００３３】
１  ノードクライアントのハードウェア
２  仮想マシンモニタ
２ａ  プライオリティ設定機能
３  管理専用仮想マシン
４  P2Pサービス用仮想マシン
５  エンドユーザ用仮想マシン
６，８  通信暗号化機能
７  ノード管理クライアント
９  ファイル暗号化機能
１００  P2Pジョブ管理システム
２００  ノード管理システム
２１０  ノード管理サーバ
Ａ，Ｂ  ノードクライアント
Ｃ  ノード認証キー
Ｓ  サーバ証明書
【図１】
2008171076.tif 000003
【図２】
2008171076.tif 000004
【図３】
2008171076.tif 000005
【図４】
2008171076.tif 000006