(57)【要約】【課題】仮想マシンの配置が変化した場合にもクライアントからの処理リクエストを正常に振り分けることが可能な負荷分散システムを得ること。【解決手段】本発明は、仮想マシンを動作させることが可能な物理サーバを複数備えるとともに、クライアント端末からの処理リクエストを物理サーバに振り分ける負荷分散装置を備える負荷分散システムであって、物理サーバ１２，１４は、自サーバ上で稼動している仮想マシンを他の物理サーバへ移動させる機能を有し、仮想マシンを他の物理サーバへ移動させる場合には移動先の物理サーバの情報を負荷分散装置１へ送信し、負荷分散装置１は、処理リクエストの振り分け先決定処理で使用する情報が登録された振り分けテーブル１０３を保持し、仮想マシンを稼動させる物理サーバに変更が生じた場合、物理サーバから取得した移動先の物理サーバの情報に基づいて振り分けテーブル１０３を更新する。【選択図】図３
2013003982.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンを動作させることが可能な物理サーバを複数備えるとともに、クライアント端末からの処理リクエストを物理サーバに振り分ける負荷分散装置を備える負荷分散システムであって、
前記物理サーバは、自サーバ上で稼動している仮想マシンを他の物理サーバへ移動させる機能を有し、仮想マシンを他の物理サーバへ移動させる場合には移動先の物理サーバの情報を前記負荷分散装置へ送信し、
前記負荷分散装置は、前記処理リクエストの振り分け先決定処理で使用する情報が登録されたテーブルを保持し、仮想マシンを稼動させる物理サーバに変更が生じた場合、物理サーバから取得した移動先の物理サーバの情報に基づいて前記テーブルを更新する
ことを特徴とする負荷分散システム。
【請求項２】
仮想マシンを動作させることが可能な物理サーバを複数備えるとともに、クライアント端末からの処理リクエストを物理サーバに振り分ける負荷分散装置を備える負荷分散システムであって、
前記負荷分散装置は、前記処理リクエストの振り分け先決定処理で使用する情報が登録されたテーブルを保持し、
前記物理サーバは、自サーバ上で稼動している仮想マシンを他の物理サーバへ移動させる機能を有し、仮想マシンを他の物理サーバへ移動させる場合、前記負荷分散装置から前記テーブルを取得し、さらに、当該テーブルを前記他の物理サーバの情報に基づいて更新し、当該更新後のテーブルを前記負荷分散装置へ送信するとともに、当該更新後のテーブルを使用して前記処理リクエストの振り分け先を決定するよう指示する
ことを特徴とする負荷分散システム。
【請求項３】
前記物理サーバは、フェイルオーバにより他の物理サーバ上で稼動していた仮想マシンを自サーバ上に移行させた場合、当該仮想マシンが提供するサービスの情報、自サーバの情報、および当該仮想マシンの移行元の物理サーバの情報を含んだメッセージを負荷分散装置へ送信し、
前記負荷分散装置は、前記メッセージを受信した場合、当該メッセージに含まれる情報に基づいて前記テーブルを更新する
ことを特徴とする請求項１または２に記載の負荷分散システム。
【請求項４】
仮想マシンを動作させることが可能で、なおかつ、自装置上の仮想マシンを他の装置へ移動させることが可能な物理サーバを複数備えるとともに、クライアント端末からの処理リクエストを物理サーバに振り分ける負荷分散装置を備える負荷分散システムの前記負荷分散装置であって、
前記処理リクエストの振り分け先決定処理で使用する情報が登録されたテーブルを保持し、仮想マシンを稼動させる物理サーバに変更が生じた場合、変更内容に関する情報を、変更前に仮想マシンを稼動させていた物理サーバから取得し、さらに、当該取得した情報に基づいて前記テーブルを更新する
ことを特徴とする負荷分散装置。
【請求項５】
仮想マシンを動作させることが可能なサーバ装置を複数備えるとともに、クライアント端末からの処理リクエストをサーバ装置に振り分ける負荷分散装置を備え、前記サーバ装置は自装置上で稼動している仮想マシンを他のサーバ装置へ移動させる機能を有し、前記負荷分散装置は前記処理リクエストの振り分け先決定処理で使用する情報が登録されたテーブルを保持している負荷分散システムの前記サーバ装置であって、
仮想マシンを他のサーバ装置へ移動させる場合、前記負荷分散装置から前記テーブルを取得し、さらに、当該テーブルを前記他のサーバ装置の情報に基づいて更新し、当該更新後のテーブルを前記負荷分散装置へ送信するとともに、当該更新後のテーブルを使用して前記処理リクエストの振り分け先を決定するよう指示する
ことを特徴とするサーバ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアントから要求された処理を物理サーバ上に構築された複数の仮想マシンで分担して行う負荷分散システムに関する。
【背景技術】
【０００２】
近年、１台の物理サーバで複数の仮想的なサーバ（仮想マシン）を運用する仮想化サーバ技術が普及してきている。また、仮想化サーバ技術の普及により、より柔軟なシステム構成を作れるようになった。一つの例として、稼働中のシステムを止めずに短時間で仮想マシンを他の物理サーバへ移動させるライブマイグレーション技術が、メンテナンスや負荷分散のために使われている。例えば、メンテナンス対象の物理サーバ上の仮想マシンをライブマイグレーションによって他の物理サーバに移動させておけば、システムを止めずにハードウェアのメンテナンスが可能となる。また、特許文献１には物理資源に余裕が無い物理サーバで稼動している高負荷な仮想マシンを、物理資源に余裕のある他の物理サーバにライブマイグレーションさせ、所望の性能が得られるよう適切な資源を割り当てる技術が記載されている。この技術により、システム全体としての資源利用の最適化（効率的な資源利用）が実現される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２４４４８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一方、サーバの負荷上昇はクライアントからの膨大な処理リクエストがシステムに入力されて発生することもある。このため、入力された処理リクエストを分散させるための負荷分散装置をシステム内に設置して各サーバの処理負荷を抑える（平均化する）手法も広く知られている。しかし、この手法と特許文献１などで示した手法を単に組み合わせると、高負荷の仮想マシンを他の物理サーバ上に移動させた場合、負荷分散装置は振り分け先の物理サーバ上の仮想マシンが移動したことを認識しないので、仮想マシンの移動が完了した後も引き続きクライアント端末からの処理リクエストを同じ振り分け先（物理サーバ）へ振り分けようとする。すなわち、ライブマイグレーションを実施すると、負荷分散装置による処理リクエストの振り分けが正常に行われなくなるという問題があった。
【０００５】
本発明は、上記に鑑みてなされたものであって、仮想化システムにおける物理サーバの各種状態変化（高負荷、メンテナンス）によって仮想マシンの配置が動的に変化した場合にもクライアントからの処理リクエストを正常に振り分けることが可能な負荷分散システム、負荷分散装置およびサーバ装置を得ることを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明は、仮想マシンを動作させることが可能な物理サーバを複数備えるとともに、クライアント端末からの処理リクエストを物理サーバに振り分ける負荷分散装置を備える負荷分散システムであって、前記物理サーバは、自サーバ上で稼動している仮想マシンを他の物理サーバへ移動させる機能を有し、仮想マシンを他の物理サーバへ移動させる場合には移動先の物理サーバの情報を前記負荷分散装置へ送信し、前記負荷分散装置は、前記処理リクエストの振り分け先決定処理で使用する情報が登録されたテーブルを保持し、仮想マシンを稼動させる物理サーバに変更が生じた場合、物理サーバから取得した移動先の物理サーバの情報に基づいて前記テーブルを更新することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、仮想マシンが稼動する物理サーバが動的に変化しても、負荷分散装置は自動的にこの変化に追随しながら振り分け先を変更するため、クライアントからの処理リクエストを正常かつ柔軟に振り分けることができる、という効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、本発明にかかる負荷分散システムの構成例を示す図である。
【図２】図２は、物理サーバの構成例を示す図である。
【図３】図３は、負荷分散装置の構成例を示す図である。
【図４】図４は、振り分け管理テーブルの一例を示す図である。
【図５】図５は、サービス振り分けテーブルの一例を示す図である。
【図６】図６は、サービス振り分けテーブルの一例を示す図である。
【図７】図７は、実施の形態１の負荷分散システムにおけるマイグレーション制御手順の一例を示す図である。
【図８】図８は、マイグレーション制御実施後のサービス振り分けテーブルの一例を示す図である。
【図９】図９は、実施の形態２の負荷分散システムにおけるマイグレーション制御手順の一例を示す図である。
【図１０】図１０は、実施の形態３の負荷分散システムにおいて仮想マシンを移動させる動作の一例を示す図である。
【図１１】図１１は、フェイルオーバメッセージの構成例を示す図である。
【図１２】図１２は、サービス振り分けテーブルの更新手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００９】
以下に、本発明にかかる負荷分散システムの実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１０】
実施の形態１．
（負荷分散システムの全体構成）
まず、負荷分散システムの全体構成について説明する。図１は、本発明にかかる負荷分散システムの構成例を示す図である。図示したように、負荷分散システムは、クライアント端末３０１からのリクエストを振り分ける負荷分散装置１と、負荷分散装置１により振り分けられたリクエストを処理する物理サーバ１１〜１５とを備え、負荷分散装置１および各物理サーバはルータ２００を介して接続されている。また、負荷分散措置１とクライアント端末３０１はネットワーク３００を介して接続されている。
【００１１】
（物理サーバの構成）
次に、物理サーバ１１〜１５の構成について説明する。各物理サーバの基本構成は同一であるため、ここでは、物理サーバ１２および１４の構成について説明する。図２は、物理サーバの構成例を示す図である。物理サーバ１２は、内部で稼動する仮想マシン２２と、仮想マシン２２の動作を制御する仮想マシン制御部３２と、仮想マシン制御部３２の動作を管理する管理部７２とを備える。また、仮想マシン制御部３２は、各仮想マシン２２を動作させるのに必要なリソースプール４２と、仮想マシン２２のリソースを制御するためのリソース制御部５２と、リソースの状態変化を定期的に監視するリソース監視部６２とにより構成されている。物理サーバ１４は、物理サーバ１２が備えている仮想マシン制御部３２と同様の仮想マシン制御部３４、および管理部７２と同様の管理部７４を備える。物理サーバ１４にも仮想マシン２２と同様の仮想マシンを構築することが可能であるが、図２では仮想マシンが構築されていない状態の物理サーバ１４を示している。
【００１２】
また、図２において、物理サーバ１２で稼動している仮想マシン２２は、管理部７２からの指示によって他の物理サーバへ無停止で移動することができる。管理部７２からの指示のきっかけとしては、例えば管理者から明示的に他の物理サーバへ移動させる、または物理サーバで稼動している負荷の高い仮想マシンを、負荷の低い物理サーバへ移動させる等があげられる。図２において仮想マシン２２を物理サーバ１４へ移動させる場合、管理部７２は、リソース制御部５２に対して、仮想マシン２２を物理サーバ１４へ移動させるよう通知する。リソース制御部５２は、管理部７２から通知を受けると、移動先となる物理サーバ１４のリソース制御部５４に仮想マシン２２の移動を通知し、リソースプール４２にある仮想マシン２２のメモリを物理サーバ１４のリソースプール４４へコピーしていき、コピーが完了すると物理サーバ１２で稼動していた仮想マシン２２の動作を停止する。また、物理サーバ１４において、仮想マシン２２のコピーが完了後、遅延無く仮想マシン２２を起動することで、仮想マシン２２の移動が完了する。
【００１３】
なお、図２では、説明の簡単化のため、物理サーバ１２および１４において単一の仮想マシン２２のみが稼動している場合の例を示したが、各物理サーバにおいては複数の仮想マシンを稼動させることも可能である。
【００１４】
（負荷分散装置の構成）
次に、負荷分散装置１の構成について説明する。図３は、負荷分散装置１の構成例を示す図である。負荷分散装置１は、クライアント端末３０１からネットワーク３００経由で受信する処理要求メッセージ（リクエスト）の振り分けを行うパケット振分部１０１と、処理要求メッセージの振り分けに必要な規則を管理する振り分けテーブル１０３と、各物理サーバや仮想マシンの状態変化を検出する状態管理部１０２とを備える。
【００１５】
ここで、振り分けテーブル１０３の詳細について説明する。振り分けテーブル１０３は、例えば、図４〜図６に示したような複数種類のテーブル、すなわち、振り分け管理テーブル（図４）とサービス振り分けテーブル（図５，図６）とを含んで構成されている。振り分け管理テーブルは、クライアント端末３０１から受け取った処理要求メッセージの種類とサービス振り分けテーブルの対応関係を示す。なお、同じサービスを要求する処理要求メッセージを同一種類として扱う。サービス振り分けテーブルは、処理要求メッセージの種類ごとに、その処理要求メッセージをどのような配分で、処理可能な複数の物理サーバへ振り分けるかを示す。図５に示したサービス振り分けテーブル１０３−２は、サービスＡを要求する処理要求メッセージを振り分ける際に使用するテーブル、図６に示したサービス振り分けテーブル１０３−３は、サービスＢを要求する処理要求メッセージを振り分ける際に使用するテーブルである。各サービス振り分けテーブルに示した「重み」とは、テーブルに示した各物理サーバに対してどのような配分で処理要求メッセージを振り分けるかを示す情報である。
【００１６】
負荷分散装置１のパケット振分部１０１は、例えば、サービスＡを要求する処理要求メッセージを受信した場合、まず、振り分け管理テーブル１０３−１（図４）を確認し、受信した処理要求メッセージの振り分け処理でサービス振り分けテーブル１０３−２（図５）を使用することを把握する。そして、サービス振り分けテーブル１０３−２および過去に受信した同一メッセージ（サービスＡを要求する処理要求メッセージ）の振り分け実績に基づいて、物理サーバ１１，１２，１３に振り分けられた処理要求メッセージの数の比が「１：１：２」となるように、処理要求メッセージを振り分ける。パケット振分部１０１により振り分けられた処理要求メッセージを受信した物理サーバにおいては、仮想マシンが、受信した処理要求メッセージの内容に応じた処理を実施する。
【００１７】
（負荷分散システムの動作説明）
次に、実施の形態１の負荷分散システムにおける特徴的な動作、具体的には、ある物理サーバで稼働中している仮想マシンを他の物理サーバに移動させる場合の動作について、図７を用いて説明する。なお、図７は、実施の形態１の負荷分散システムにおけるマイグレーション制御手順の一例を示す図である。本実施の形態では、物理サーバ１２で稼動している仮想マシン２２を物理サーバ１４に移動させる場合の手順について説明する。
【００１８】
本実施の形態の負荷分散システムにおいて、物理サーバ１２の管理部７２は、仮想マシン２２の物理サーバ１４への移動指示を外部から受けた場合や、自サーバの処理負荷が高い状態であることを検出し仮想マシン２２を物理サーバ１４へ移動させることに決定した場合、リソース制御部５２に対してマイグレートの実行を指示するとともに、マイグレート先の物理サーバを通知する（ステップＳ１１，Ｓ１２）。指示を受けたリソース制御部５２は、リソース監視部６２に対して、マイグレート先の物理サーバが物理サーバ１４であることを通知してマイグレート実行を指示する（ステップＳ１３）。指示を受けたリソース監視部６２は、負荷分散装置１の状態管理部１０２に対して、マイグレート先の物理サーバが物理サーバ１４であることを通知してマイグレート実行を通知する（ステップＳ１４）。また、リソース制御部５２は、上記ステップＳ１３を実行後、仮想マシン２２の物理サーバ１４への移行動作を実施する（ステップＳ１５）。
【００１９】
状態管理部１０２は、物理サーバ１２で稼働中の仮想マシン２２が物理サーバ１４に移動すること把握すると、一旦移動元の物理サーバ１２と移動先の物理サーバ１４を記憶する（ステップＳ１６）。負荷分散装置１は、仮想マシン２２の移動が完了するまでは、物理サーバ１２への処理要求メッセージ振り分けを継続する。そして、仮想マシン２２の物理サーバ１２から物理サーバ１４への移動が完了すると、物理サーバ１２のリソース制御部５２はリソース監視部６２に対してマイグレートの終了を通知する（ステップＳ１７）。リソース監視部６２はマイグレートが終了した旨の通知を受けると、負荷分散装置１の状態管理部１０２に対してマイグレートの終了を通知する（ステップＳ１８）。状態管理部１０２は、マイグレートの終了通知を受けると、振り分けテーブル１０３に含まれているサービス振り分けテーブルのうち、振り分け先として移動元の物理サーバ１２が登録されているサービス振り分けテーブルを更新する（ステップＳ１９）。すなわち、振り分け先が「物理サーバ１２」となっている部分を移動先（マイグレート先）の物理サーバを示す「物理サーバ１４」に更新する。この結果、図５に示したサービス振り分けテーブル１０３−２は図８に示した内容のものに変更され、以降、クライアント端末３０１からの処理要求メッセージ（この例ではサービスＡを要求する処理要求メッセージ）は、物理サーバ１２ではなく物理サーバ１４に振り分けられるようになる。
【００２０】
なお、上記のステップＳ１６において、状態管理部１０２は、振り分け先をマイグレート先の物理サーバに変更したサービス振り分けテーブルを新たに作成しておき、ステップＳ１９では、ステップＳ１６で新たに作成しておいたテーブルとそれまで使用していたテーブルを差し替えるようにしてもよい。これにより、マイグレート終了の通知を受けた後、遅延無くサービス振り分けテーブルを更新することができ、処理要求メッセージをマイグレート先の物理サーバに確実に振り分けることができる。
【００２１】
また、図７に示した制御手順では、仮想マシンの移行動作（ステップＳ１５）を実行する前にマイグレート先のサーバ情報を負荷分散装置１の状態管理部１０２へ通知することとしたが、振り分けテーブル１０３内の各サービス振り分けテーブルに登録されている情報量が少なく、上記ステップＳ１９におけるテーブル更新の所要時間が十分に小さい場合には、マイグレート終了を通知する際にマイグレート先の物理サーバも併せて通知するようにしてもよい。この場合、上記ステップＳ１３〜Ｓ１６が不要となり処理負荷を低減できる。
【００２２】
このように、本実施の形態の負荷分散システムでは、仮想マシンをある物理サーバから他の物理サーバへ移動させる場合、移動元の物理サーバが、移動先の物理サーバの情報を負荷分散装置に対して通知し、負荷分散装置は、移動元の物理サーバからの通知内容に従い、サービス振り分けテーブルを更新し、仮想マシンの移動が完了した後には更新後のサービス振り分けテーブルを使用して処理要求メッセージを振り分けることとした。これにより、物理サーバの状態変化（高負荷，メンテナンスなど）によって仮想マシンの配置（仮想マシンが稼動する物理サーバ）が動的に変化しても、負荷分散装置は自動的にこの変化に追随しながら振り分け先を変更するため、クライアントからの処理要求メッセージ（処理リクエスト）を正常かつ柔軟に振り分けることができる。
【００２３】
実施の形態２．
実施の形態２の負荷分散システムについて説明する。なお、システムおよび各装置の構成、負荷分散装置１が保持している各種振り分けテーブルの内容は実施の形態１と同様（図１〜図６参照）であるものとして説明を行う。本実施の形態では、実施の形態１と共通の部分については説明を省略する。
【００２４】
本実施の形態の負荷分散システムにおいては、図９に示した手順でマイグレーション制御を行う。なお、図９において、図７に示したマイグレーション制御手順と同じ処理には同じステップ番号を付している。そのため、図７と同じステップ番号を付した処理については説明を省略する。
【００２５】
本実施の形態のマイグレーション制御において、物理サーバ１２のリソース監視部６２は、ステップＳ１３でマイグレート先の物理サーバが通知されると、状態管理部１０２が保持している全てのサービス振り分けテーブルを取得する（ステップＳ２１，Ｓ２２）。そして、取得したサービス振り分けテーブルをマイグレート先の物理サーバの情報に基づいて更新する。具体的には、取得したサービス振り分けテーブルのうち、振り分け先として自物理サーバ（移動元の物理サーバ１２）が登録されているサービス振り分けテーブルについて、振り分け先が「物理サーバ１２」となっている部分を、移動先の物理サーバを示す「物理サーバ１４」に更新する。
【００２６】
その後、ステップＳ１７でマイグレートの終了通知を受けると、上記更新後のサービス振り分けテーブルをマイグレート後の振り分けテーブルとして状態管理部１０２へ送信し（ステップＳ２３）。
【００２７】
ステップＳ２３で送信されたテーブルを受信した状態管理部１０２は、受信したテーブルを振り分けテーブル１０３に上書きして振り分けテーブル１０３（より詳細にはサービス振り分けテーブル１０３−２）を更新する（ステップＳ２４）。
【００２８】
このように、本実施の形態の負荷分散システムでは、仮想マシンをある物理サーバから他の物理サーバへ移動させる場合、移動元の物理サーバは、負荷分散装置が保持しているサービス振り分けテーブルを取得し、取得したテーブルを移動先の物理サーバの情報に基づいて更新し、仮想マシンの移動が完了した後に、更新後のテーブルを分散負荷装置へ送信し、この更新後のテーブルを使用して処理要求メッセージを振り分けさせることとした。これにより、実施の形態１と同様に、物理サーバの状態変化によって仮想マシンの配置が動的に変化しても、負荷分散装置は自動的にこの変化に追随しながら振り分け先を変更するため、クライアントからの処理要求メッセージを正常かつ柔軟に振り分けることができる。
【００２９】
実施の形態３．
実施の形態３の負荷分散システムについて説明する。なお、システムおよび各装置の構成、負荷分散装置１が保持している各種振り分けテーブルの内容は実施の形態１，２と同様（図１〜図６参照）であるものとして説明を行う。本実施の形態では、実施の形態１，２と共通の部分については説明を省略する。
【００３０】
本実施の形態では、移動元の物理サーバが負荷分散装置１に対して仮想マシン移行を直接通知できない場合の仮想マシン移行動作について説明する。
【００３１】
図１０は、実施の形態３の負荷分散システムにおいて仮想マシンを物理サーバ間で移動させる動作の一例を示す図である。図１０では、フェイルオーバにより仮想マシンを移動させる場合の制御手順を示している。
【００３２】
仮想マシン２２が稼働中の物理サーバ１２（移動元の物理サーバ）において、障害や明示的なサービス停止などが発生した場合、リソース監視部６２はこの状態変化を検出し、移行先の物理サーバ１４に対して、フェイルオーバ発生メッセージ８１（稼動していた仮想マシンを他の物理サーバへ移動させるためのメッセージ）を通知する（ステップＳ３１，Ｓ３２）。
【００３３】
図１１は、フェイルオーバメッセージの構成例を示す図であり、図示したように、フェイルオーバ発生メッセージ８１には、「送信元」，「発生元」，「停止するサービス」，「停止する仮想マシン」の情報が含まれる。「送信元」はメッセージ送信元の物理サーバを示す。「発生元」は、障害など、フェイルオーバ発生メッセージ８１を送信する要因となる現象が発生した物理サーバを示す。「停止するサービス」は、「発生元」の物理サーバで停止するサービスを示す。「停止する仮想マシン」は、「発生元」の物理サーバ上で動作していた仮想マシンのうち、動作を停止する仮想マシンを示す。
【００３４】
上記ステップＳ３２でリソース監視部６２が送信するフェイルオーバメッセージにおいて、送信元および発生元には物理サーバ１２の情報が設定され、停止するサービスには物理サーバ１２で停止するサービス名またはポート番号の情報が設定される。また、停止する仮想マシンには仮想マシン１２の情報が設定される。なお、リソース監視部６２は、仮想マシンで障害が発生した場合には、この仮想マシンで処理していた全てのサービス名（またはポート番号）を「停止するサービス」に設定する。仮想マシンで処理していた一部のサービスを停止する場合は、停止するサービス名（またはポート番号）を「停止サービス」に設定する。
【００３５】
物理サーバ１４のリソース監視部６４は、上記ステップＳ３２で送信されたフェイルオーバ発生メッセージ８１を受信すると、「停止する仮想マシン」を確認し、停止する仮想マシンが仮想マシン２２であることを把握する。そして、仮想マシン２２を起動するよう、リソース制御部５４に通知する。その後、リソース制御部５４によって仮想マシン２２が起動されると（ステップＳ３３）、リソース監視部６４は、ステップＳ３２で受信したフェイルオーバ発生メッセージ８１の「送信元」を自物理サーバ（物理サーバ１４）の情報に書き換えた上、負荷分散装置１の状態管理部１０２へ送信する（ステップＳ３４）。
【００３６】
状態管理部１０２は、リソース監視部６４からフェイルオーバ発生メッセージ８１を受信すると、図１２に示す手順で振り分けテーブル１０３内のサービス振り分けテーブル（図５，図６など参照）を更新する（ステップＳ３５）。
【００３７】
ステップＳ３５におけるサービス振り分けテーブル更新動作について、図１２を用いて説明する。
【００３８】
フェイルオーバ発生メッセージ８１を受信した場合、状態管理部１０２は、まず、受信したフェイルオーバ発生メッセージ８１の内容に基づいて、振り分けテーブル１０３において更新の必要なサービス振り分けテーブルを特定する（ステップＳ４１）。具体的には、「停止サービス」が示すサービスに対応するサービス振り分けテーブルを更新の必要なものと把握する。次に、特定したサービス振り分けテーブルの「振り分け先」に障害が発生した物理サーバがあるかどうか、すなわち、「発生元」が示す物理サーバがサービス振り分けテーブルの「振り分け先」に登録されているかどうかを確認する（ステップＳ４２）。そして、「発生元」が示す物理サーバがサービス振り分けテーブルの「振り分け先」に登録されている場合（ステップＳ４３：Ｙｅｓ）、「振り分け先」をフェイルオーバ先の物理サーバ、すなわち、フェイルオーバ発生メッセージ８１の「送信元」が示す物理サーバに変更する（ステップＳ４４）。本実施の形態では、上記ステップＳ４１で特定した振り分けテーブルの「振り分け先」が「物理サーバ１２」となっている部分を「物理サーバ１４」に変更する。
【００３９】
この結果、図５に示したサービス振り分けテーブル１０３−２は図８に示した内容のものに変更され、以降、クライアント端末３０１からの処理要求メッセージ（サービスＡを要求する処理要求メッセージ）は、物理サーバ１２ではなく物理サーバ１４に振り分けられるようになる。
【００４０】
このように、本実施の形態の負荷分散システムにおいて、物理サーバに障害が発生した場合やサービス提供が停止された場合、それを検出したリソース監視部は、フェイルオーバ発生メッセージを他の物理サーバ（リソース監視部）へ送信し、フェイルオーバ発生メッセージを受信した他のサーバでは、メッセージ送信元の物理サーバで稼動していた仮想マシンを起動するとともに、フェイルオーバ発生メッセージを負荷分散装置に転送することとした。また、転送されたフェイルオーバ発生メッセージを受信した負荷分散装置は、メッセージの内容に基づいて、保持しているサービス振り分けテーブルを更新することとした。これにより、実施の形態１や２と同様に、物理サーバの状態変化によって仮想マシンの配置が動的に変化しても、負荷分散装置は自動的にこの変化に追随しながら振り分け先を変更するため、クライアントからの処理要求メッセージを正常かつ柔軟に振り分けることができる。
【産業上の利用可能性】
【００４１】
以上のように、本発明にかかる負荷分散システムは、物理サーバ上に構築された複数の仮想マシンを使用し、クライアントからの要求に応じた処理を分散して行う場合に有用である。
【符号の説明】
【００４２】
１  負荷分散装置
１１，１２，１３，１４，１５  物理サーバ
２２  仮想マシン
３２，３４  仮想マシン制御部
４２，４４  リソースプール
５２，５４  リソース制御部
６２，６４  リソース監視部
７２，７４  管理部
８１  フェイルオーバ発生メッセージ
１０１  パケット振分部
１０２  状態管理部
１０３  振り分けテーブル
１０３−１  振り分け管理テーブル
１０３−２，１０３−３  サービス振り分けテーブル
２００  ルータ
３００  ネットワーク
３０１  クライアント端末
【図１】
2013003982.tif 000003
【図２】
2013003982.tif 000004
【図３】
2013003982.tif 000005
【図４】
2013003982.tif 000006
【図５】
2013003982.tif 000007
【図６】
2013003982.tif 000008
【図７】
2013003982.tif 000009
【図８】
2013003982.tif 000010
【図９】
2013003982.tif 000011
【図１０】
2013003982.tif 000012
【図１１】
2013003982.tif 000013
【図１２】
2013003982.tif 000014