(57)【要約】【課題】  仮想環境制御機能を利用し、稼動する仮想マシン間のネットワーク処理におけるCPU使用率の低減を図るため、通信経路の多重度を仮想マシン間の所在情報を活用し、動的に制御する技術を提供することを目的とする。【解決手段】  仮想マシンと、その仮想マシンが稼動する実マシンの対情報を関連させて、仮想マシンと、仮想マシン環境制御機能の共有メモリ区画に記録する技術、及び、上記の記録された情報より、通信相手の仮想マシンが、通信元の仮想マシンと同一の実マシンに存在するか判断する技術、その判断によって多重度の変更を行う技術。更に、仮想マシンが別の実マシンに移動した時に、上記の記録された情報を書き換える技術を提供する。【選択図】図1
2008278478.tif 000002
【特許請求の範囲】
【請求項１】
それぞれネットワークで接続された複数の物理計算機と、前記物理計算機上で稼動する複数の仮想計算機備えた計算機システムにおいて、
前記仮想計算機のアドレスと、前記アドレスの多重度を示す多重度ペア識別子と、前記仮想計算機が稼動している物理計算機の識別子と、を記憶した仮想計算機・物理計算機対情報と、
前記仮想計算機・物理計算機対情報及び前記仮想計算機から送信される送信情報に基づいて、前記仮想計算機間の通信の多重度を制御する多重度制御部とを有していることを特徴とする計算機システム。
【請求項２】
請求項１記載の計算機システムにおいて、
前記多重度制御部は、前記仮想計算機から送信される送信情報に記載された送信先の仮想計算機が送信元の前記仮想計算機と同じ前記物理計算機上で稼動しているかどうかを、前記仮想計算機・物理計算機対情報に基づいて判断し、
送信元及び送信先の仮想計算機が同じ物理計算機上で稼動している場合には、前記多重度制御部は、多重化をせずに送信し、異なる計算機上で稼動している場合には、多重化して送信を行うことを特徴とする計算機システム。
【請求項３】
請求項１記載の計算機システムにおいて、
前記仮想計算機は、それぞれ複数のアドレスを有し、
前記仮想計算機・物理計算機対情報では、同一の前記仮想計算機に対するアドレスには同一の多重度ペア識別子が対応付けられており、
送信元及び送信先の仮想計算機が同一の物理計算機上で稼動している場合には、前記多重度制御部は、前記送信情報が示すアドレスにのみに送信を行い、異なる物理計算機上で稼動している場合には、前記送信情報が示すアドレス及び当該アドレスと同一の前記多重度識別子に対応付けられたアドレスに送信することを特徴とする計算機システム。
【請求項４】
請求項１記載の計算機システムにおいて、
前記仮想計算機・物理計算機対情報を書き換える仮想計算機・物理計算機対情報書換部を備え、
前記仮想計算機が前記物理計算機から他の物理計算機に移動した場合に、前記仮想計算機・物理計算機対情報書換部は前記仮想計算機・物理計算機対情報を書き換え、
前記多重制御部は、前記書き換えられた仮想計算機・物理計算機対情報に基づいて前記仮想計算機間の通信の多重度を制御することを特徴とする計算機システム。
【請求項５】
請求項１記載の計算機システムにおいて、
前記仮想計算機間の利用可能な通信経路数を調査する仮想化環境制御処理部を備え、
前記仮想計算機・物理計算機対情報書換部は、前記調査に基づき前記仮想計算機・物理計算機対情報の多重度ペア識別子を書き換え、
前記多重制御部は、前記書き換えられた仮想計算機・物理計算機対情報に基づいて前記仮想計算機間の通信の多重度を制御する
ことを特徴とする計算機システム。
【請求項６】
ネットワークでそれぞれ接続された複数の物理計算機上で稼動する複数の仮想計算機間の通信を制御する通信制御方法において、
多重度制御部が、
仮想計算機から送信された送信情報から送信先の仮想計算機を判別する判別ステップと、
前記仮想計算機のアドレスと、前記アドレスの多重度を示す多重度ペア識別子と、前記仮想計算機が稼動している物理計算機の識別子と、を記憶した仮想計算機・物理計算機対情報を参照し、前記送信先の仮想計算機に応じて通信の多重度を制御する多重度制御ステップとを有することを特徴とする方法。
【請求項７】
請求項６記載の通信制御方法において、
前記多重度制御ステップでは、
前記多重度制御部は、前記仮想計算機・物理計算機対情報に基づいて前記送信先の仮想化計算機が送信元の仮想化計算機と同一の物理計算機上で稼動しているか判別し、
送信元及び送信先の仮想計算機が同じ物理計算機上で稼動している場合には、前記多重度制御部は、多重化をせずに送信し、異なる計算機上で稼動している場合には、多重化して送信を行うことを特徴とする通信制御方法。
【請求項８】
請求項６記載の通信制御方法において、
前記仮想計算機は、それぞれ複数のアドレスを有し、
前記仮想計算機・物理計算機対情報では、同一の前記仮想計算機に対するアドレスには同一の多重度ペア識別子が対応付けられており、
前記多重度制御ステップでは、前記多重度制御部は、送信元及び送信先の仮想計算機が同一の物理計算機上で稼動している場合には、前記送信情報が示すアドレスにのみに送信を行い、異なる物理計算機上で稼動している場合には、前記送信情報が示すアドレス及び当該アドレスと同一の前記多重度識別子に対応付けられたアドレスに送信する通信制御方法。
【請求項９】
請求項６記載の通信制御方法において、
仮想計算機・物理計算機対情報書換部が、前記仮想計算機が前記物理計算機から他の物理計算機に移動した場合に、前記仮想計算機・物理計算機対情報書換部は前記仮想計算機・物理計算機対情報を書き換える書換ステップを有し、
前記多重度制御ステップでは、前記多重制御部は、前記書き換えられた仮想計算機・物理計算機対情報に基づいて前記仮想計算機間の通信の多重度を制御することを特徴とする通信制御方法。
【請求項１０】
請求項６記載の通信制御方法において、
仮想化環境制御処理部が、前記仮想計算機間の利用可能な通信経路数を調査する通信経路調査ステップと、
前記仮想計算機・物理計算機対情報書換部が、調査した前記利用可能な通信経路数に応じて、前記仮想計算機・物理計算機対情報の多重化ペア識別子を書き換える書換ステップとを行い、
前記多重度制御ステップでは、前記多重度制御部は、前記書き換えられた仮想計算機・物理計算機対情報に基づいて前記仮想計算機間の通信の多重度を制御することを特徴とする通信制御方法。
【請求項１１】
それぞれネットワークで接続された複数の物理計算機と、前記物理計算機上で稼動する複数の仮想計算機備えた計算機システムにおいて、
前記仮想計算機の識別子と、前記仮想計算機が稼動している物理計算機の識別子と、を記憶した仮想計算機・物理計算機対情報と、
前記仮想計算機・物理計算機対情報及び前記仮想計算機から送信される送信情報に基づいて、前記仮想計算機間の通信の多重度を制御する多重度制御部とを
有していることを特徴とする計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想環境制御機能を利用し稼動するクライアント、及びサーバの仮想マシン間における通信経路を制御する手段に関するものである。
【背景技術】
【０００２】
従来、クライアントやサーバは実マシンに各々構築され、実マシン間は実ネットワークによって通信経路を確立しており、通信の信頼性向上のため、チーミング等、通信経路を二重化する技術が盛んに開発されてきた。現在では、仮想環境制御技術により実マシン上に仮想マシンを設けることができ、さらに同一の実マシンに複数の仮想マシン環境を設け、クライアント及びサーバを構築する事が可能となった。
【０００３】
また、実マシン環境を仮想環境制御機能において忠実に再現するため、仮想デバイス技術や、仮想ネットワーク技術等があり、これによって仮想サーバにて実サーバと同様の処理を実行するように仮想マシンを稼動させる事が出来るようになってきている。
【０００４】
同一実マシンにおける仮想マシン間の通信は、ソフトウェアで構成される仮想ネットワークにより通信が行われている。この仮想ネットワークには、ネットワーク制御に関するハードウェア、電気信号を伝達する通信ケーブル及び、ケーブルを接続する接点は存在せず、通信は送信元、送信先、双方より読み書きが出来る共有メモリ区画を利用して、ソフトウェアによって通信トラフィックが制御管理されている。
【０００５】
【非特許文献１】Scale Up Network Availability and Performance with Multi-port Gigabit Adapters 、Intel. [online]、[平成19年3月30日検索]http://www.intel.com/network/connectivity/resources/doc_library/tech_brief/maximizing_gig.pdf
【非特許文献２】Improving IT Management with Multi-Port NICs and Virtual Infrastructure 、Intel. [online]、[平成19年3月30日検索]http://www.intel.com/network/connectivity/resources/doc_library/white_papers/intel_vmware_wp.pdf
【発明の開示】
【発明が解決しようとする課題】
【０００６】
仮想環境制御機能を利用し、仮想マシンを構築できるようになった事により、実マシン上に多数の仮想マシンを構築する事が出来るようになった。また、仮想環境制御機能により、仮想マシンを、仮想環境制御機能を実行している別の実マシンに転送し、別の実マシン上で同一の仮想マシンを稼動する事も可能となっている。しかし、移動前と移動後のネットワーク構成は忠実に復元されるようになっているため通信経路は固定化されており、通信先の仮想マシンと通信元の仮想マシンの位置関係を考慮して通信経路を動的に変更し、信頼性、及びCPU負担低減を実現することは行っていない。
【０００７】
また、近年、仮想環境制御機能の実用を視野に入れたシステム構築が行われるにつれ、仮想ネットワークを処理するソフトウェアによるCPU使用率の低減を求める要望が出てきた。しかし、仮想ネットワークは、メモリを使用した情報転送によって実ネットワークを再現する技術として盛んに開発が行われているが、通信信頼性を考慮し通信先の仮想サーバの所在に留意した通信経路の制御は行っていない。
【０００８】
本発明の目的は、稼動する仮想マシン間のネットワーク処理におけるCPU使用率の低減を図り、通信経路の多重度を動的に制御する技術を提供することを目的とする。
【０００９】
また、本発明の別の目的は、物理的な通信経路も含め、通信経路上での情報の喪失などを防ぐ信頼性の確保を目的とする。
【００１０】
なお、本発明において、多重度とは、通信経路の経路数を指し、多重化された通信経路とは、少なくとも2つ以上の通信経路を持つ通信経路のことを指す。
【課題を解決するための手段】
【００１１】
本発明では、上記課題の少なくとも1つを解決するために、仮想マシンと、その仮想マシンが稼動する実マシンとの対応関係を示す対情報を用いて、仮想マシンと仮想環境制御機能の両方から参照可能共有メモリ区画に記録する技術を提供する。
【００１２】
また、本発明では、上記課題の少なくとも1つを解決するために、上記の記録された情報より、通信相手の仮想マシンが通信元の仮想マシンと同一の実マシンに存在するか判断する技術、その判断によって多重度を変更する技術を提供する。
【００１３】
また、本発明では、上記課題の少なくとも1つを解決するために、仮想マシンが別の実マシンに移動した時に、上記の記録された情報を書き換える技術を提供する。
【００１４】
例えば、本発明は、実マシンのメモリ内に仮想マシン・実マシン対情報のテーブルを持っている。実マシン内の仮想マシンで稼動するアプリケーションが通信の依頼を行う場合、アプリケーションは仮想マシンに存在する多重度制御機能に通信を依頼する。多重度制御機能は、上記仮想マシン・実マシン対情報のテーブルを参照し、通信相手の仮想マシンが、同一の実マシン上にあるか判断する。同一実マシンに存在する場合は、通信経路の多重度を下げる事によって、ネットワーク処理に必要とする実マシンのCPU使用率を低減する。
【００１５】
また、仮想マシンが別の実マシンに移動した時、仮想マシン移動元の実マシンに存在する仮想環境制御処理部は、仮想マシン・実マシン対情報テーブルを書き換えると共に、少なくとも、仮想マシン移動先の実マシンに存在する仮想環境制御機能に、仮想マシン・実マシン対情報テーブルの更新を依頼する。依頼を受けた仮想マシン転送先の仮想環境制御処理部は、上記テーブルを書き換える。上記の手段を用い、課題の解決を動的に行う。
【発明の効果】
【００１６】
本発明によれば、通信の信頼性の確保とネットワーク処理に使用するCPUの使用率を低減する事が可能となる。
【００１７】
また、本発明によれば、情報の喪失などを防ぐことができ、信頼性の確保を臨むことができる。
【発明を実施するための最良の形態】
【００１８】
以下、本発明を、図を用いて説明する。
【００１９】
なお、以下の実施例において、同一の構造部を持ち、同一の符号を付した部分は、原則として同一の動作を行うため、重複する説明を省略した。
【実施例１】
【００２０】
以下、第1の実施例について、図1乃至5を用いて説明する。
【００２１】
図1は、本実施例における実施形態である。通信経路制御システム600は、第1の実マシン100と、第2の実マシン200を備えており、これらはLAN400及び500により連結され、2重の多重度を実現している。
【００２２】
第1の実マシン100は、仮想マシンを稼動させる実マシンの構成の一例である。第1の実マシン100は、プロセッサ180と、メモリ110と、通信インターフェース150、及び160と、ディスクインターフェース170を有している。これらの装置は通信路190で接続されている。ここでは具体的にバスを説明に用いる。
【００２３】
第1の実マシン100は、マシン外部に、仮想マシン・実マシン対情報テーブル初期値を記録しているディスク300を有している。また、多重化に用いるネットワークケーブル400、及び500が、それぞれ通信インターフェース150、及び160に接続されており、2重化構成により他の実マシン200に接続されている。
【００２４】
第1のマシン100のメモリ110には、仮想サーバを稼動させるために必要な、仮想環境制御部140と、仮想マシン・実マシン対情報テーブル書き換え処理部144と、多重度制御部122A用の仮想NIC(Network Interface Card)141A、142Aと、多重化制御部122B用の仮想NIC141B、142Bと、仮想マシン・仮想環境制御用共有メモリ区画130がある。
【００２５】
仮想マシン用論理区画120Aには、多重度制御部122Aが、第2の仮想マシンとして仮想マシン用論理区画120Bに多重度制御部122Bがある。これら制御部による制御をプロセッサ180で実行する事で、多重度制御部122A、及び122Bと、仮想マシン・実マシン対情報テーブル書き換え処理部144、仮想化環境制御部140の各処理を行う。
【００２６】
仮想マシン・仮想環境制御用メモリ区画130には、どの仮想マシンがどの実マシン上にあるかということの対応関係を示す仮想マシン・実マシン対情報テーブル131を有する。本テーブルは、後述する図2の各項目により対応関係が示される。
【００２７】
第1の実マシン100のメモリに格納された、仮想マシン121A・121Bと、仮想環境制御部140と、仮想マシン・実マシン対情報テーブル書き換え処理部144と、多重度制御部122A用の仮想NIC141A、142Aと、多重度制御部122B用の仮想NIC141B、142Bと、多重度制御部122A・122Bなどの各処理は、プロセッサ180で実行する事により実現できるが、これらは、各処理を行う処理部として集積回路化するなどしてハードウェアで実現する事もできる。
【００２８】
以下、説明を簡単にするために、第1の実マシンについては、各制御部及び処理部の処理はメモリ上に展開されるプログラムによって実現するが、これらは各プログラムをプロセッサ180が実行する事で実現される各処理部を処理の主体として説明する。
【００２９】
第2の実マシンについても第1の実マシン同様の構造であるため説明を省略する。
【００３０】
なお、第2の実マシン上には仮想マシン用論理区画120B’と仮想NIC141B’・142B’が記載されているが、本実施例では用いない。
【００３１】
図2は、仮想マシン・実マシン対情報テーブル初期値300を表す図の一例である。
【００３２】
仮想マシン・実マシン対情報テーブル131、及び231に読み込まれる初期情報であり、仮想マシン情報として、仮想マシンの仮想NICのMACアドレス310、仮想マシンが通信経路を多重度を変更する場合の仮想NICを識別する多重度ペア識別子320、マシン名称など実マシンをシステム内で一意に特定できる識別子である実マシン識別子330が格納されている。また、この対情報は、仮想マシンの使用するIPアドレスと実マシンの識別子の対応関係で表しても良い。
【００３３】
図3は、本実施例の実施形態である、通信経路制御システム600の起動動作フローをあらわす図の一例である。通信経路制御システム600は、システムの構成をなす、実マシン100の起動（ステップ601）の後、仮想環境制御部140の起動（ステップ602）及び、実マシン200の起動（ステップ603）の後、仮想環境制御部240の起動（ステップ604）をすることにより通信経路多重化制御システムを起動する。
【００３４】
図4は、実マシン100における、仮想環境制御部140の起動動作フローを表す図の一例である。仮想環境制御部140は、仮想マシン・仮想環境制御用共有メモリ区画130をメモリ110上に確保する（ステップ701）。
【００３５】
仮想環境制御部140は、仮想マシン・実マシン対情報テーブル131の作成を行う（ステップ702）。
【００３６】
仮想環境制御部140は、第1の仮想マシンを立ち上げるための事前準備として、多重度制御処理部122A用仮想NIC141A・142A処理部の起動を行う（ステップ703）。仮想環境制御部140は、仮想NIC141A処理部と、通信インターフェース150、及び仮想NIC142A処理部と、通信インターフェース160の関連付け設定を行い、LAN400及び、LAN500への通信経路の多重度の設定を行う（ステップ704）。仮想環境制御部140は、仮想マシン用論理区画120Aの起動を行う（ステップ705）。
【００３７】
仮想環境制御部140は、第2の仮想マシンを立ち上げるための事前準備として、多重度制御部122B用仮想NIC141B・142B処理部の起動を行う（ステップ706）。仮想環境制御部140は、仮想NIC141B処理部と、通信インターフェース150、及び仮想NIC142B処理部と、通信インターフェース160の関連付け設定を行い、LAN400及び、LAN500への通信経路の多重度の設定を行う（ステップ707）。仮想環境制御部140は、仮想マシン用論理区画120Bの起動を行う（ステップ708）。
【００３８】
仮想環境制御部140は、仮想マシン・実マシン対テーブル書き換え部144へ、仮想マシン・実マシン対情報テーブル初期値を、仮想マシン・実マシン対情報テーブル131に書込むよう指示する。（ステップ709）。
【００３９】
実マシン200の起動も同等のため説明を省略する。
【００４０】
図5は、実マシン100の多重度制御部122Aの多重度制御フローを表す図である。多重度処理部はデータリンク層における多重化を担う。
【００４１】
多重度制御処理部122Aは、仮想マシン121Aより送信情報を受け取る（ステップ711）。多重度制御処理部122Aは、送信情報がどのMACアドレス宛かの解決を行う（ステップ712）。多重度制御処理部122Aは、送信先MACアドレス情報を元に、仮想マシン・実マシン対情報テーブル131を検索する（ステップ713）。多重度制御処理部122Aは、送信先の仮想マシンが同一マシン上に存在するか判断する（ステップ714）。送信先の仮想マシンが同一実マシン100上に存在する場合は、多重度制御部122Aは、仮想NIC処理部141Aのみに送信情報を受け渡す（ステップ715）。送信先の仮想マシンが同一実マシン100上に存在しない場合は、多重度制御部122Aは、仮想マシン・実マシン対情報テーブル131を検索し、多重度ペア識別子320より、多重度用送信先MACアドレスを取得し（ステップ716）、仮想NIC処理部141A、仮想NIC処理部142Aに各々対応する送信情報を受け渡す（ステップ717）。
【００４２】
データリンク層より上のプロトコルには影響されないため、上位プロトコルついての説明は省略する。
【００４３】
以上によって、同一の実マシンで実行する仮想マシン間の通信は1経路で実施し、異なる実マシンで実行する仮想マシン間の通信を二重化できる。これによって、同一実マシン内での仮想マシン間の通信処理に伴うCPUオーバーヘッドを低減でき、また別の実マシンにおける仮想マシン間の通信処理においては、信頼性の確保ができる。
【実施例２】
【００４４】
以下、第2の実施例について、図1及び図6乃至8を用いて説明する。
【００４５】
本実施例は、仮想マシン用論理区画120Bが実マシン100から実マシン200に移動する場合の通信経路の多重化を示す。
【００４６】
図1において、実マシン100のメモリ110上にあった仮想マシン用論理区画120Bは、実マシン200上のメモリ210上に移動する(仮想マシン用論理区画120B’)。また、仮想NIC処理部141B・142Bは、実マシン100から移動前と同一の処理部として仮想環境処理部240上に存在する(141B’、142B’)。
【００４７】
なお、本実施例では図1の実マシン200上の仮想マシン用論理区画220Cは用いない。
【００４８】
図6は、実施例2における仮想マシンが実マシン間を移動する場合の、仮想マシン用論理区画120Bを実マシン100から、実マシン200に移動する前の、仮想マシン・実マシン対情報テーブル131、及び231を示す一例である。
【００４９】
図7は、実施例2における仮想マシンが実マシン間を移動する場合の、仮想マシン用論理区画120Bを実マシン100から、実マシン200に移動した後の、仮想マシン・実マシン対情報テーブル131、及び231を示す一例である。
【００５０】
図8は、実施例2における仮想マシンが実マシン間を移動する場合の、仮想マシン用理区画120Bを実マシン100から、実マシン200に移動する場合の、通信経路制御システム600の動作フローである。
【００５１】
仮想マシンを移動する際、仮想環境制御部140は、仮想マシン区画120Bのスケジューリングを停止する（ステップ611）。仮想環境制御処理部140は、仮想環境制御処理部240へ仮想マシン用論理区画120B、及び仮想NIC処理部141B・142B設定情報、プロセッサ180上の情報を転送する（ステップ612）。仮想環境制御部240は、転送された情報を元に、仮想マシン用論理区画120B、及び仮想NIC処理部141B・142B設定情報・プロセッサ180上の情報を復元する（ステップ613）。仮想環境制御部240は、仮想マシン・実マシン対情報テーブルの書き換え処理部に、受信した内容にしたがって仮想マシン・実マシン対情報テーブル231を更新するよう指示する（ステップ614）。その後，仮想環境制御部240は、仮想環境制御部140へ仮想マシン・実マシン対情報テーブル131の更新を指示する（ステップ615）。仮想環境制御部140は、仮想環境制御部240へ仮想マシン・実マシン対情報テーブル131の更新完了を通知する（ステップ616）。仮想環境制御部240は、メモリ210上に存在する仮想マシン論理区画120B’内のスケジューリングを開始し、仮想マシンの実行を開始する（ステップ617）。
【００５２】
移動完了後の通信処理は、第1の実施形態に示したのと同様の方法で実施する。なお、以上の発明は、プログラムなどの媒体を通じたり、あるいはネットワークなどの通信手段を用いたりして導入する方法を取っても良い。
【００５３】
以上によって、仮想マシン移動の際に、仮想マシン・実マシン対情報テーブルを仮想マシンの移動元と移動先で更新することで、仮想マシンを実マシン間で移動しても適切な通信経路の多重度において、処理を継続させることが可能となる。
【実施例３】
【００５４】
以下、第3の実施例について、図9乃至13を用いて説明する。
【００５５】
図9は、本実施例における実施形態である。通信経路制御システム600は、第1の実マシン100と、第2の実マシン200を備えており、これらはLAN400により連結され、1重の通信経路を実現している。
【００５６】
第1の実マシン100は、仮想マシンを稼動させる実マシンの構成の一例である。第1の実マシン100は、プロセッサ180と、メモリ110と、通信インターフェース150、及び160と、ディスクインターフェース170を有している。これらの装置は通信路190で接続されている。ここでは具体的にバスを説明に用いる。
【００５７】
第1の実マシン100は、仮想マシン・実マシン対情報テーブル初期値を記録しているディスク300を通信可能に接続されている。本テーブルは、後述する図10の各項目により対応関係が示される。また、多重化に用いるネットワークケーブルは、400のみが通信インターフェース150に接続されており、1重化構成により他の実マシン200に接続されている。
【００５８】
第1の実マシン100は、多重化に用いることが可能な通信インターフェース150、及び160を備えているが、通信インターフェース160にはネットワークケーブルが接続されていないため、多重化に必要な環境を有していないとされる。
【００５９】
第1のマシン100のメモリ110には、仮想サーバを稼動させるために必要な、仮想環境制御部140と、仮想マシン・実マシン対情報テーブル書き換え処理部144と、多重度制御部122A用の仮想NIC(Network Interface Card)141A、142Aと、多重化制御部122B用の仮想NIC141B、142Bと、仮想マシン・仮想環境制御用共有メモリ区画130がある。仮想NIC141A、142AはNIC以外の、通信インターフェースを模倣する仮想通信インターフェースでも構わない。
【００６０】
仮想マシン用論理区画120Aには多重度制御部122Aがあり、第2の仮想マシンを有する仮想マシン用論理区画120Bには多重度制御部122Bがある。これら多重度制御部122A、及び122Bと、仮想マシン・実マシン対情報テーブル書き換え処理部144、仮想化環境制御部140をプロセッサ180で制御し各処理を行う。
【００６１】
仮想マシン・仮想環境制御用メモリ区画130は、どの仮想マシンがどの実マシン上にて稼動しているかという対応関係を示す仮想マシン・実マシン対情報テーブル131を有する。本テーブルは、後述する図11の各項目により対応関係が示される。
【００６２】
第1の実マシン100のメモリに格納された、仮想マシン121A・121Bと、仮想環境制御部140と、仮想マシン・実マシン対情報テーブル書き換え処理部144と、多重度制御部122A用の仮想NIC141A、142Aと、多重度制御部122B用の仮想NIC141B、142Bと、多重度制御部122A・122Bなどの各処理は、プロセッサ180で実行する事により実現できるが、これらは、各処理を行う処理部として集積回路化するなどしてハードウェアで実現する事もできる。
【００６３】
以下、説明を簡単にするために、第1の実マシンについては、各制御部及び処理部の処理はメモリ上に展開されるプログラムによって実現するが、これらは各プログラムをプロセッサ180が実行する事で実現される各処理部を処理の主体として説明する。
【００６４】
第2の実マシン200についても第1の実マシン100同様の構造であるため説明を省略する。
【００６５】
なお、第2の実マシン上には仮想マシン用論理区画120B’と仮想NIC141B’・142B’が記載されているが、本実施例では用いない。
【００６６】
図10は、仮想マシン・実マシン対情報テーブル初期値300を表す図の一例である。
【００６７】
仮想マシン・実マシン対情報テーブル131、及び231に読み込まれる初期情報であり、仮想マシン情報として、仮想マシンの仮想NICのMACアドレス310、多重度制御部122が通信経路の多重度を変更する場合の仮想NICを識別する多重度ペア識別子320、マシン名称など実マシンをシステム内で一意に特定できる識別子である実マシン識別子330が格納されている。また、本実施例ではMACアドレスを使用したが、代わりに仮想マシンの使用するIPアドレスなどたのアドレスで表しても良い。
【００６８】
なお、ここで仮想NIC141A は、通信インターフェース150に対応付けられ、仮想NIC142Aは、通信インターフェース160に対応付けられているものとし、多重度ペア識別子320により、多重度が示されているものとする。
【００６９】
図11は、本実施例において初期値から書き換えられた後の仮想マシン・実マシン対情報テーブル131を表す図の一例である。
【００７０】
図11は、仮想マシン・実マシン対情報テーブル書き換え部により、メモリ上に展開されるテーブルであり、仮想マシン情報として、仮想マシンの仮想NICのMACアドレス310、仮想マシンが通信経路の多重度を変更する場合の仮想NICを識別する多重度ペア識別子320、マシン名称など実マシンをシステム内で一意に特定できる識別子である実マシン識別子330が格納されている。また、この対情報は、仮想マシンの使用するIPアドレスと実マシンの識別子の対応関係で表しても良い。
【００７１】
初期値である図10において仮想NIC142Aは、通信インターフェース160に対応付けられ、多重度ペア識別子320が付与されているが、通信インターフェース160は、通信経路多重化において使用できないため、図11における多重度ペア識別子として無効であることを示す識別子であるNULLが付与されている。
【００７２】
通信経路制御システム600の起動動作は図3と同様なので省略する。
【００７３】
図12は、実マシン100における、仮想環境制御処理部140の起動動作フローをあらわす図の一例である。仮想環境制御処理部140は、仮想マシン・仮想環境制御用共有メモリ区画130をメモリ110上に確保する（ステップ710）。
【００７４】
仮想環境制御処理部140は、仮想マシン・実マシン対情報テーブル131の作成を行う（ステップ711）。
【００７５】
仮想環境制御部140は、第1の仮想マシンを立ち上げるための事前準備として、多重度制御処理部122A用仮想NIC141A・142A処理部の起動を行い（ステップ712）、通信インターフェース150・160が両方とも通信に使用できる状態か確認を行う（ステップ713）。仮想環境制御処理部140は、仮想NIC141A処理部と、通信インターフェース150、及び仮想NIC142A処理部と、通信インターフェース160の関連付け設定を行い、LAN400への通信経路の多重度の設定を行う（ステップ714）。ここで、仮想環境制御処理部140は、通信インターフェース160がネットワークに接続されておらず、通信が不可能であることを検知する。仮想環境制御処理部140は、仮想マシン用論理区画120Aの起動を行う（ステップ715）。
【００７６】
仮想環境制御処理部140は、第2の仮想マシンを立ち上げるための事前準備として、多重度制御処理部122B用仮想NIC141B・142B処理部の起動を行う（ステップ716）。仮想環境制御処理部140は、仮想NIC141B処理部と、通信インターフェース150、及び仮想NIC142B処理部と、通信インターフェース160の関連付け設定を行い、LAN400への通信経路の多重度の設定を行う（ステップ717）。ここで、仮想環境制御処理部240は、通信インターフェース250がネットワークに接続されておらず、通信が不可能であることを検知する。仮想環境制御処理部140は、仮想マシン用論理区画120Bの起動を行う（ステップ718）。
【００７７】
仮想環境制御部140は、仮想マシン・実マシン対テーブル書き換え処理部144へ、仮想マシン・実マシン対情報テーブルのうち、通信インターフェース160に対応する仮想NIC142Aの多重度ペア識別子に無効であることを示す識別子であるNULLを書込み、自らの実マシン100のうち多重設定を1重設定。（ステップ719）。
【００７８】
実マシン200の起動も同等のため説明を省略する。
【００７９】
この場合において、多重度制御部122Aは、仮想マシン121Aが送信した情報の宛先が、異なる実マシン200上で稼動する仮想計算機120B’のMACアドレスであっても、当該MACアドレスに対応する仮想NIC141Bと同じ多重度識別子122Bを、仮想NIC142Bは持っていないため、多重度制御部122Aは仮想NIC141Bのみに宛てて情報を送信する。すなわち、無駄な多重化を行わないため、CPUのオーバーヘッド上昇を抑えることができる。本実施例では、仮想マシンが仮想NIC、通信インターフェースを２つずつ有し、多重度を最大２まで設定できる実マシンを説明に用いたが、多重度を３以上設定できる実マシンに適用し、ネットワークが利用できない状態に多重度を下げるように仮想マシン・実マシン対情報テーブルを書き換えて多重度を制御してもよい。
【００８０】
以上によって、物理ネットワークが1経路である環境における、仮想マシン間の通信は1経路で実施しできる。これによって、仮想マシンの通信処理に伴うCPUオーバーヘッドを低減できる。なお、データリンク層より上のプロトコルには影響されないため、上位プロトコルついての説明は省略してある。
【実施例４】
【００８１】
以下、第4の実施例について、図1、図9、乃至11、及び図13を用いて説明する。
【００８２】
図1は、実施例１と同様のため説明を省略する。
【００８３】
図9は、図１のうち、ネットワークケーブル500が断線等により通信できない状態を示す。
【００８４】
図10は、ネットワークケーブル500が断線する前における、仮想マシン・実マシン対情報テーブル131を表す図の一例である。
【００８５】
図10は、仮想マシン・実マシン対情報テーブル131、及び231に読み込まれる初期情報であり、仮想マシン情報として、仮想マシンの仮想NICのMACアドレス310、仮想マシンが通信経路の多重度を変更する場合の仮想NICを識別する多重度ペア識別子320、マシン名称など実マシンをシステム内で一意に特定できる識別子である実マシン識別子330が格納されている。また、この対情報は、仮想マシンの使用するIPアドレスと実マシンの識別子の対応関係で表しても良い。
【００８６】
仮想NIC141A は、通信インターフェース150に対応付けられ、仮想NIC142Aは、通信インターフェース160に対応付けられているものとし、多重度ペア識別子320により、多重度が示されているものとする。
【００８７】
図11は、ネットワークケーブル500が断線し、仮想マシン・実マシン対情報テーブル書き換え部によって書き換えられた、仮想マシン・実マシン対情報テーブル131を表す図の一例である。
【００８８】
図13は、実マシン100における、ネットワークケーブル500が断線時における、仮想環境制御処理部140の動作フローをあらわす図の一例である。仮想環境制御処理部140は、通信インターフェース160より経路障害通知の割り込み通知を受信(ステップ723)。実マシン100における多重度ペア識別子320を、図10から図11に更新する様に、仮想マシン・実マシン対情報テーブル書き換え部に指示を出し一重化を行う(ステップ724)。
【００８９】
以上によって、物理ネットワークが障害により、1経路となった場合に仮想マシン間の通信を1経路にて実施しできる。これによって、仮想マシンの通信処理に伴うCPUオーバーヘッドを低減できる。
【図面の簡単な説明】
【００９０】
【図１】通信経路制御システム600の概略図。
【図２】仮想マシン・実マシン対情報テーブル初期値300を表す概略図。
【図３】通信経路制御システム600の起動動作を示すフローチャート。
【図４】実マシン100における、仮想環境制御処理部140の起動動作を示すフローチャート。
【図５】実マシン100における、多重化制御部122Aの多重度制御を示すフローチャート。
【図６】仮想マシンが実マシン間を移動する場合の、仮想マシン用論理区画120Bを実マシン100から、実マシン200に移動する前の、仮想マシン・実マシン対情報テーブル131、及び231を示す概略図。
【図７】仮想マシンが実マシン間を移動する場合の、仮想マシン用論理区画120Bを実マシン100から、実マシン200に移動した後の、仮想マシン・実マシン対情報テーブル131、及び231を示す概略図。
【図８】仮想マシンが実マシン間を移動する場合の、仮想マシン用論理区画120Bを実マシン100から、実マシン200に移動するときの、通信経路制御システム600の動作を示すフローチャート。
【図９】実マシン間の通信経路が1重化である、通信経路制御システム600の概略図。
【図１０】仮想マシン・実マシン対情報テーブル書き換え部144が、書き換えを行う前の仮想マシン・実マシン対情報テーブル300、及び131を示す概略図。
【図１１】仮想マシン・実マシン対情報テーブル書き換え部144が書き換えを行った後の、仮想マシン・実マシン対情報テーブル131を示す概略図。
【図１２】実マシン間の通信経路が1重化である場合の、実マシン100における、仮想環境制御処理部140の起動動作を示すフローチャート。
【図１３】実マシン100が保持する通信インターフェース160と、実マシン200が保持する通信インターフェース250間の経路が断線したときの、仮想環境制御部140の動作を示すフローチャート
【符号の説明】
【００９１】
600：通信経路制御システム
100、200：実マシン
110、210：メモリ
180、280：プロセッサ
170、270：ディスクインターフェース
150、160、250、260：通信インターフェース
190、290：通信路(バス)
300：仮想マシン・実マシン対情報テーブル初期値格納記録媒体
400、500：LAN
140、240：仮想環境制御処理部
144、244：仮想マシン・実マシン対情報テーブル書き換え処理部
141、142、241、242：仮想NIC処理部
130、230：仮想マシン・仮想環境制御用共有メモリ区画
131、231、：仮想マシン・実マシン対情報テーブル
120、220：仮想マシン用論理区画
121、221：仮想マシン
122、222：多重度制御処理部
【図１】
2008278478.tif 000003
【図２】
2008278478.tif 000004
【図３】
2008278478.tif 000005
【図４】
2008278478.tif 000006
【図５】
2008278478.tif 000007
【図６】
2008278478.tif 000008
【図７】
2008278478.tif 000009
【図８】
2008278478.tif 000010
【図９】
2008278478.tif 000011
【図１０】
2008278478.tif 000012
【図１１】
2008278478.tif 000013
【図１２】
2008278478.tif 000014
【図１３】
2008278478.tif 000015