(57)【要約】【課題】サーバノードプールにおける、ソフトウェアロードバランサの設定作業の負担を軽減するようにする。【解決手段】仮想ＯＳとして、ソフトウェアロードバランサを指示に応じてロード可能なホストＯＳ及び業務プログラムを実行するゲストＯＳが動作可能な複数のサーバに接続された管理マネージャが、次の処理を行う。即ち、負荷分散させる処理要求の送信元業務プログラムを実行するゲストＯＳが動作するサーバを、ソフトウェアロードバランサの設定対象サーバとする（Ｓ１）。また、負荷分散対象となる処理要求の送信先業務プログラムを実行するゲストＯＳが動作するサーバを負荷分散対象サーバとする（Ｓ２、Ｓ３）。そして、設定対象サーバに対し、ホストＯＳにおいてソフトウェアロードバランサをロードするように指示を送信するとともに（Ｓ４）、送信データの負荷分散に用いる情報を設定するように指示を送信する（Ｓ５）。【選択図】  図７
2010061283.tif 000002
【特許請求の範囲】
【請求項１】
仮想オペレーティングシステムとして、複数の送信先に処理要求を振り分けて送信するソフトウェアロードバランサを指示に応じてロード可能であって他のサーバと仮想ネットワークを用いた通信を直接行うホストオペレーティングシステムと、顧客業務の処理を行う業務プログラムを実行するために起動され、ホストオペレーティングシステムを介してのみ他のサーバとの通信を行うゲストオペレーティングシステムと、が動作可能な仮想マシン環境を有する複数のサーバと接続されたコンピュータに、
負荷分散させる処理要求を送信する送信元業務プログラムが少なくとも指定されたロードバランサ設定指示を受け付けたときに、その送信元業務プログラムを実行するゲストオペレーティングシステムが動作するサーバを、ソフトウェアロードバランサの設定対象サーバとして決定するとともに、前記送信元業務プログラムから送信される処理要求の送信先業務プログラムを実行するゲストオペレーティングシステムが動作するサーバを、負荷分散対象サーバとして決定する決定ステップと、
前記設定対象サーバのホストオペレーティングシステムにソフトウェアロードバランサをロードさせる指示を、前記設定対象サーバに対して送信する第１の指示送信ステップと、
前記送信元業務プログラムからの送信データの負荷分散に用いる情報として少なくとも前記負荷分散対象サーバを前記ソフトウェアロードバランサに設定させる指示を、前記設定対象サーバに対して送信する第２の指示送信ステップと、
を実現させることを特徴とするロードバランサ設定プログラム。
【請求項２】
前記決定ステップは、業務プログラムが実行されるゲストオペレーティングシステムが動作するサーバが設定された第１のテーブルを参照し、前記送信元業務プログラムが実行されるサーバを前記設定対象サーバとして決定するとともに、処理要求の送信元及び送信先となる業務プログラムが関連付けられ、その送信先となる業務プログラムが実行されるゲストオペレーティングシステムが動作するサーバのうち負荷分散させるサーバが設定された第２のテーブルを参照し、前記送信元業務プログラムから送信される処理要求の送信先業務プログラムを実行するゲストオペレーティングシステムが動作するサーバのうち負荷分散させるサーバとして前記第２のテーブルに設定されたサーバを、前記負荷分散対象サーバとして決定することを特徴とする請求項１記載のロードバランサ設定プログラム。
【請求項３】
前記第２のテーブルには、負荷分散させるサーバごとにその負荷分散割合がさらに設定されており、
前記決定ステップは、前記第２のテーブルに設定された負荷分散割合を、前記負荷分散対象サーバに対する負荷分散割合としてさらに決定し、
前記第２の指示送信ステップは、前記負荷分散対象サーバに対する負荷分散割合を前記ソフトウェアロードバランサにさらに設定させる指示を、前記設定対象サーバに対して送信することを特徴とする請求項２記載のロードバランサ設定プログラム。
【請求項４】
仮想オペレーティングシステムとして、複数の送信先に処理要求を振り分けて送信するソフトウェアロードバランサを指示に応じてロード可能であって他のサーバと仮想ネットワークを用いた通信を直接行うホストオペレーティングシステムと、顧客業務の処理を行う業務プログラムを実行するために起動され、ホストオペレーティングシステムを介してのみ他のサーバとの通信を行うゲストオペレーティングシステムと、が動作可能な仮想マシン環境を有する複数のサーバと接続されたコンピュータが、
負荷分散させる処理要求を送信する送信元業務プログラムが少なくとも指定されたロードバランサ設定指示を受け付けたときに、その送信元業務プログラムを実行するゲストオペレーティングシステムが動作するサーバを、ソフトウェアロードバランサの設定対象サーバとして決定するとともに、前記送信元業務プログラムから送信される処理要求の送信先業務プログラムを実行するゲストオペレーティングシステムが動作するサーバを、負荷分散対象サーバとして決定する決定ステップと、
前記設定対象サーバのホストオペレーティングシステムにソフトウェアロードバランサをロードさせる指示を、前記設定対象サーバに対して送信する第１の指示送信ステップと、
前記送信元業務プログラムからの送信データの負荷分散に用いる情報として少なくとも前記負荷分散対象サーバを前記ソフトウェアロードバランサに設定させる指示を、前記設定対象サーバに対して送信する第２の指示送信ステップと、
を実行することを特徴とするロードバランサ設定方法。
【請求項５】
仮想オペレーティングシステムとして、複数の送信先に処理要求を振り分けて送信するソフトウェアロードバランサを指示に応じてロード可能であって他のサーバと仮想ネットワークを用いた通信を直接行うホストオペレーティングシステムと、顧客業務の処理を行う業務プログラムを実行するために起動され、ホストオペレーティングシステムを介してのみ他のサーバとの通信を行うゲストオペレーティングシステムと、が動作可能な仮想マシン環境を有する複数のサーバと接続されたロードバランサ設定装置であって、
負荷分散させる処理要求を送信する送信元業務プログラムが少なくとも指定されたロードバランサ設定指示を受け付けたときに、その送信元業務プログラムを実行するゲストオペレーティングシステムが動作するサーバを、ソフトウェアロードバランサの設定対象サーバとして決定するとともに、前記送信元業務プログラムから送信される処理要求の送信先業務プログラムを実行するゲストオペレーティングシステムが動作するサーバを、負荷分散対象サーバとして決定する決定手段と、
前記設定対象サーバのホストオペレーティングシステムにソフトウェアロードバランサをロードさせる指示を、前記設定対象サーバに対して送信する第１の指示送信手段と、
前記送信元業務プログラムからの送信データの負荷分散に用いる情報として少なくとも前記負荷分散対象サーバを前記ソフトウェアロードバランサに設定させる指示を、前記設定対象サーバに対して送信する第２の指示送信手段と、
を含んで構成されたことを特徴とするロードバランサ設定装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想化技術を適用したサーバに対してロードバランサの自動設定を行う技術に関する。
【背景技術】
【０００２】
近年、企業等の情報処理システムをアウトソーシングする需要が高まり、その市場が拡大してきている。かかるアウトソーシングを一括して請け負うデータセンタでは、複数のサーバで構成されるサーバノードプールを有する。そして、サーバノードプールを構成する複数のサーバに対し、アウトソーシングが委託された顧客業務の処理を行う業務プログラムが、その機能に応じて分散して配置されるとともに、これらのサーバが物理的にネットワーク接続されている。
【０００３】
そして、サーバノードプールでは、複数の顧客に係る業務を夫々分割して管理するべく、各サーバにおいて仮想マシン環境を設定する技術が一般化している。具体的には、各サーバにおいて、仮想オペレーティングシステム（以下、仮想ＯＳ（Operating System）という。他も同様）として、仮想マシン環境における基盤となるホストＯＳを動作させるとともに、業務プログラムを実行する環境としてのゲストＯＳを夫々動作させている。こうすることで、同一サーバ上で複数の顧客の業務プログラムを処理する場合にも、顧客の業務プログラムで処理されるデータが顧客間で混在することを回避することができる。また、サーバノードプールでは、サーバ間の物理ネットワークを複数の顧客間で共有することとなるため、さらに次のような手法が採用されている。即ち、サーバ間における物理ネットワークを、ＶＬＡＮ（Virtual Local Area Network）技術を用いてＬ２（Layer-2）区分で区分したり、ＶＰＮ（Virtual Private Network）を用いて区分したりするなどして仮想的にネットワークを分割し、顧客ごとに仮想イントラネットを構築している。
【０００４】
ここで、サーバノードプールでは、特定のサーバへの処理負荷の集中を回避すべく、負荷分散を行う必要が生じる。そして、一般的に、サーバ間で負荷分散を行う方法としては、ロードバランサに処理要求を一旦集め、ロードバランサから各サーバに処理要求を振り分けるという方法が用いられてきた。しかし、このように処理要求を振り分ける場合、ロードバランサ自体においてトラフィックが集中し、ボトルネックとなってしまうという問題がある。このため、近年では、各サーバにソフトウェアロードバランサを夫々組み込み、このソフトウェアロードバランサの機能により、他のサーバに対して処理要求を振り分けて送信する技術が実用化されている。
【０００５】
しかしながら、サーバノードプールにおいて、かかるソフトウェアロードバランサを適用する場合、次の問題がある。即ち、ソフトウェアロードバランサを組み込む各サーバに対し、負荷分散設定を夫々行う必要がある。しかし、サーバノードプールを構成するサーバ数は多く、ソフトウェアロードバランサを組み込む対象となるサーバ数も当然に多いため、その負荷分散設定作業に要する負担は大きい。また、１つのサーバで複数のゲストＯＳが動作している場合、負荷分散させる処理要求を処理する業務プログラムがどのサーバのゲストＯＳで実行されているかを特定するのが困難であるとともに、その設定内容は複雑となる。さらに、各サーバで動作させるゲストＯＳに変更が生じた場合には、それにあわせてソフトウェアロードバランサの設定を変更する必要があるが、その設定作業の負担の大きさゆえに、サーバ構成の変更に柔軟に対応することも困難である。
【特許文献１】特表２００４−５０３０１１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
以上のような問題点に鑑み、各サーバにソフトウェアロードバランサを組み込むとともに、そのソフトウェアロードバランサで行う負荷分散の設定を一括して自動で行うことで、その設定作業の負担を軽減することを目的とする。
【課題を解決するための手段】
【０００７】
仮想ＯＳとして、ソフトウェアロードバランサを指示に応じてロード可能なホストＯＳ及び業務プログラムを実行するゲストＯＳが動作可能な仮想マシン環境を有する複数のサーバに接続されたコンピュータが、次の処理を行う。即ち、負荷分散対象となる処理要求の送信元業務プログラムを実行するゲストＯＳが動作するサーバを、ソフトウェアロードバランサの設定対象サーバとして決定する。また、負荷分散させる処理要求の送信先業務プログラムを実行するゲストＯＳが動作するサーバを負荷分散対象サーバとする。そして、設定対象サーバに対し、ホストＯＳにおいてソフトウェアロードバランサをロードするように指示を送信する。さらに、そのソフトウェアロードバランサについて、送信元業務プログラムからの送信データの負荷分散に用いる情報として、負荷分散対象サーバを設定するように指示を送信する。
【発明の効果】
【０００８】
設定対象サーバにおいて、ソフトウェアロードバランサがロードされるとともに、送信元業務プログラムからの送信データの負荷分散に用いる情報が設定される。このため、その設定作業の負担が軽減され、設定対象サーバの数が多くても容易に設定作業を行なうことができる。また、このように設定作業が容易になることで、サーバ構成の変更に対しても柔軟に対応することができるようになる。
【発明を実施するための最良の形態】
【０００９】
図１は、ロードバランサ設定機構を具現化したシステムの全体構成を示す。このシステムは、複数の顧客業務を一括処理するデータセンタに設置されたサーバノードプールにおいて構築されたシステムであり、管理マネージャ１０と、顧客業務を処理する複数のサーバ２０と、がネットワーク接続されている。この管理マネージャ１０は、サーバ２０全体を総括して管理するとともに、サーバ２０に対する各種設定を遠隔制御により行う。また、管理マネージャ１０及びサーバ２０は、いずれも、少なくともＣＰＵ（Central Processing Unit）及びメモリを備えたコンピュータで構成される。
【００１０】
サーバノードプールを構成する複数のサーバ２０には、データセンタにアウトソーシングを委託した複数顧客の業務を処理する業務プログラムが配置されている。そして、各サーバ２０では仮想ＯＳを動作させることが可能な仮想マシン環境を備えている。さらに、仮想（私設）ネットワーク（ＶＰＮ：Virtual Private Network）を用いてサーバ２０同士をＰ２Ｐ（Peer to Peer）にＶＰＮ接続し、顧客ごとにシステムを分割して仮想イントラネットを構築している。なお、このように顧客ごとに分割された仮想イントラネットは、顧客の有する個々の自社システムに夫々接続されている。
【００１１】
次に、かかる仮想マシン環境を備えたサーバ２０の構成及びサーバ２０間におけるＶＰＮ接続の仕組みについて、図２を用いて説明する。
サーバ２０では、仮想マシン環境が構築され、ホストＯＳ３０及びゲストＯＳ４０が、仮想ＯＳとして動作している。これらのホストＯＳ３０及びゲストＯＳ４０は、ＯＳの制御プログラムとして機能するハイパーバイザ上において制御されている。
【００１２】
また、サーバ２０は、他のコンピュータとの間で通信を行うための物理ＮＩＣ（Network Interface Card）５０を備える。そして、サーバ２０には、サーバノードプール内において一意に定まる物理ＩＰアドレスが割り振られている。また、サーバ２０内で動作するホストＯＳ３０及びゲストＯＳ４０は、夫々仮想ＮＩＣ６０を備え、この仮想ＮＩＣ６０を用いて同一サーバ内のホストＯＳ３０及びゲストＯＳ４０間において通信を行う。そして、サーバ内で動作するゲストＯＳ４０には、物理ＩＰアドレスとは異なる独自のアドレスである仮想ＩＰアドレスとしての、顧客ＩＰアドレスが割り振られている。
【００１３】
そして、ホストＯＳ３０は、次の要素を含んで構成される。即ち、ゲストＯＳ４０から送信データを受け取ったとき、その送信データをＶＰＮ接続により送信するためのトンネル情報を特定するルーティング部３０Ａを含む。このルーティング部３０Ａは、図３（Ａ）に示すような、送信先の顧客ＩＰアドレス及びその送信先へのＶＰＮ接続において用いるトンネル情報が設定されたルーティング設定テーブルを備える。そして、このルーティング設定テーブルを参照し、送信データに付された顧客ＩＰアドレスから、ＶＰＮ接続に用いるトンネルを特定する。
【００１４】
また、このルーティング部３０Ａには、ゲストＯＳ４０から送信データを受け取ったとき、その送信データを複数の送信先に負荷分散させるソフトウェアロードバランサをロードすることができる。このソフトウェアロードバランサは、後述するロードバランサ設定部４０によりロードされる。なお、かかるソフトウェアロードバランサが組み込まれ、これをロードして機能させることが可能な手段の具体例として、ＬＶＳ（Linux Virtual Server）などが挙げられる。
【００１５】
そして、このソフトウェアロードバランサは、次のように動作する。まず、前提として、ゲストＯＳで実行される業務プログラムから送信される送信データ（処理要求）を負荷分散して複数のサーバに送信する場合、その送信データには、顧客ＩＰアドレスの代わりに、送信先となる業務プログラムの機能によって定められる業務プログラム種別に応じた代表アドレスが付されている。そして、ソフトウェアロードバランサでは、送信データに付された代表アドレスと、その代表アドレスに対応した業務プログラム種別の業務プログラムを実行する負荷分散対象のサーバのゲストＯＳの顧客ＩＰアドレス及びその顧客ＩＰアドレスに送信させる負荷分散割合と、が関連付けられた情報を有している。さらに、ゲストＯＳ４０から負荷分散させる送信データを受け取ったとき、その送信データに付された代表アドレスに基づいて、負荷分散させるサーバのゲストＯＳの顧客ＩＰアドレスを、その負荷分散割合に応じて割り振り、送信データに付す。そして、ルーティング部３０Ａでは、このソフトウェアロードバランサにより割り振られた顧客ＩＰアドレスから、ＶＰＮ接続に用いるトンネルを上述のように特定することとなる。
【００１６】
また、ホストＯＳ３０は、送信データに送信先の物理ＩＰアドレスを付すとともに送信データをカプセル化し、トンネリングを行うトンネリング部３０Ｂを含む。このトンネリング部３０Ｂは、図３（Ｂ）に示すような、トンネル情報と、そのトンネルの送信先となる物理ＩＰアドレスが設定されたトンネリング設定テーブルを備える。そして、トンネリング部３０Ｂでは、このトンネリング設定テーブルに基づいて、トンネル情報から送信先の物理ＩＰアドレスを特定する。
【００１７】
また、ホストＯＳ３０は、送信データを暗号化する暗号化部３０Ｃを含んで構成される。さらに、ホストＯＳ３０は、管理マネージャ１０による指示に応じて、ソフトウェアロードバランサをルーティング部３０Ａの一部としてロードするとともに、ソフトウェアロードバランサで負荷分散を行うのに必要な情報を設定するエージェントとしての機能を果たす、ロードバランサ設定部３０Ｄを含む。
【００１８】
なお、他のサーバ２０からデータを受信したときには、ホストＯＳ３０では、暗号化部３０Ｃにおいて受信データを復号化し、トンネリング部３０Ｂにおいてカプセル化を解除するとともに、ルーティング部３０Ａにより、受信データに付された顧客ＩＰアドレスのゲストＯＳ４０にデータを送信することとなる。
【００１９】
一方、ゲストＯＳ４０は、業務プログラムを実行する顧客業務処理部４０Ａを含んで構成される。なお、かかる図２の例においては、ゲストＯＳが１つのみ動作しているが、複数のゲストＯＳが動作することもできる。
【００２０】
次に、図２の例において、サーバαのゲストＯＳ４０の顧客業務処理部４０Ａにおいて実行される業務プログラムにより、サーバγのゲストＯＳ４０が備える顧客業務処理部４０Ａにおいて実行される業務プログラムに対してデータが送信される流れについて説明する。ここでは、負荷分散を行わず、ルーティング部３０Ａにおいてソフトウェアロードバランサをロードしていない状態の例について初めに説明する。まず、サーバαの顧客業務処理部４０Ａにおいて実行される業務プログラムにより、サーバγのゲストＯＳ４０の顧客ＩＰアドレス（192.167.0.3）を送信先として、データが送信される。このデータは、ゲストＯＳ４０の仮想ＮＩＣ６０（eth0）及びホストＯＳ３０の仮想ＮＩＣ６０（vif0）を介し、ホストＯＳ３０に対して送信される。そして、ホストＯＳ３０では、ルーティング部３０Ａにおいて、ルーティング設定テーブルを参照し、送信先の顧客ＩＰアドレスに対応するトンネル情報（tun0）を取得する。さらに、ホストＯＳ３０では、トンネリング部３０Ｂにおいて、トンネリング設定テーブルを参照し、トンネル情報に対応する送信先サーバの物理ＩＰアドレス（10.0.0.3）を取得する。そして、この物理ＩＰアドレスを送信データに付した上で、カプセル化し、トンネリングを行う。また、暗号化部３０Ｃにおいて、かかるカプセル化された送信データをＩＰｓｅｃ等を適用してさらに暗号化する。これにより、サーバγとのＶＰＮ接続が可能となる。そして、送信データを、ホストＯＳ３０の仮想ＮＩＣ６０（eth0）からサーバαの物理ＮＩＣ５０（eth0）を経て、サーバγに送信する。一方、これを受信したサーバγのホストＯＳ３０では、受信したデータに付された顧客ＩＰアドレスに基づいて、送信先となっている業務プログラムが実行されるゲストＯＳ４０に対し、受信データを送信することとなる。
【００２１】
このような構成を採用することで、業務プログラムにおいて他のサーバ２０との間でデータの送受信を行う場合、ゲストＯＳ４０では、送信先の顧客ＩＰアドレスを送信データに設定するだけでよく、物理ＩＰアドレスの設定及びＶＰＮ接続はホストＯＳ３０が行う。このため、顧客がサーバにアクセスして業務プログラムを実行させる場合であって、他のサーバとの通信を行うときであっても、ホストＯＳ３０を直接制御することなしに、かかる通信が可能となる。従って、ホストＯＳ３０の制御権限を顧客に与えなくても、他のサーバとの通信が可能となり、ホストＯＳ３０の環境設定を顧客が誤って変更する等のトラブルを防ぐことができる。
【００２２】
さらに、図２の例において、サーバαの顧客業務処理部４０Ａで実行される業務プログラムからの送信データを他のサーバであるサーバδ（図示せず）にも負荷分散する場合におけるルーティング部３０Ａの処理について説明する。この場合、サーバαのルーティング部３０Ａには、その一部としてソフトウェアロードバランサがロードされている。なお、サーバαが、顧客ＩＰアドレス「192.167.0.4」が割り振られたゲストＯＳが動作するサーバδと「tun1」を用いてさらにＶＰＮ接続されるように、ルーティング設定テーブルに設定がなされていることを前提として説明する。
【００２３】
ここで、サーバαの顧客業務処理部４０Ａにおいて実行される業務プログラムから送信されるデータには、特定のゲストＯＳの顧客ＩＰアドレスの代わりに、送信データの送信先の業務プログラム種別に応じた代表アドレスが付されている（例えば、「192.167.0.100」とする）。一方、ソフトウェアロードバランサには、代表アドレス「192.167.0.100」が付されたデータを、サーバγで動作するゲストＯＳの顧客ＩＰアドレス「192.167.0.3」に６０パーセント、サーバδで動作するゲストＯＳの顧客ＩＰアドレス「192.167.0.4」に４０パーセントの割合で負荷分散させる設定がなされているとする。そして、ソフトウェアロードバランサにおいて、送信データの割り振り先として、サーバγで動作するゲストＯＳの顧客ＩＰアドレス「192.167.0.3」が決定されれば、上述のように、ルーティング設定テーブルから、送信先の顧客ＩＰアドレスに対応するトンネル情報「tun0」を取得し、サーバγにデータを送信することとなる。また、サーバδで動作するゲストＯＳの顧客ＩＰアドレス「192.167.0.4」が決定されれば、ルーティング設定テーブルに設定された「192.167.0.4」に対応する「tun1」を取得し、サーバδにデータを送信することとなる。
【００２４】
次に、サーバ２０全体を管理する管理マネージャ１０について説明する。
図４は、管理マネージャ１０の構成図である。管理マネージャ１０は、ロードバランサ設定指示受付部１０Ａ，ロードバランサ設定指示部１０Ｂ，負荷分散情報設定指示部１０Ｃ，業務管理テーブル１０Ｄ及び負荷分散情報テーブル１０Ｅを含んで構成される。
【００２５】
ロードバランサ設定指示受付部１０Ａは、オペレータが操作可能な入力装置と接続されている。そして、負荷分散させる送信データ（処理要求）の送信元となる業務プログラムの業務プログラム種別が少なくとも指定されたロードバランサ設定指示を受け付ける。
【００２６】
ロードバランサ設定指示部１０Ｂは、ソフトウェアロードバランサを設定するサーバを決定するとともに、決定したサーバのロードバランサ設定部３０Ｄに対し、ルーティング部３０Ａの一部としてソフトウェアロードバランサをロードさせる指示を送信する。なお、ロードバランサ設定指示部１０Ｂが、決定ステップ，決定手段，第１の指示送信ステップ及び第１の指示送信手段として機能する。
【００２７】
負荷分散情報設定指示部１０Ｃは、負荷分散対象となるサーバ及び負荷分散割合を決定する。そして、設定対象サーバのロードバランサ設定部３０Ｄに対し、ソフトウェアロードバランサに負荷分散対象サーバ及び負荷分散割合を設定するように指示を送信する。なお、負荷分散情報設定指示部１０Ｃが、決定ステップ，決定手段，第２の指示送信ステップ及び第２の指示送信手段として機能する。
【００２８】
業務管理テーブル１０Ｄは、業務プログラム種別ごとに、その種別に属する業務プログラムが実行されているゲストＯＳが動作するサーバを示すテーブルである。そして、図５に示すように、業務プログラム種別，その業務プログラムを実行しているゲストＯＳの顧客ＩＰアドレス及びそのゲストＯＳが動作しているサーバが登録される。
【００２９】
負荷分散情報テーブル１０Ｅは、負荷分散させる処理要求の送信先となる業務プログラムの業務プログラム種別ごとに負荷分散対象サーバ及び負荷分散割合が設定されるシートの集合で構成される。そして、図６に示すように、その各シートは、次の構成を含む。即ち、業務プログラム種別の代表アドレスに対応させて、その業務プログラム種別に属する業務プログラムを実行するゲストＯＳが動作するサーバのうち負荷分散させるサーバ及びそのサーバに対する負荷分散割合が、処理要求の送信元となる業務プログラムの業務プログラム種別に応じて夫々登録される。
【００３０】
なお、管理マネージャ１０は、サーバ２０全体を総括して管理するとともに各サーバに対し各種設定を行うべく、上述の構成要素の他にも、各サーバの物理ＩＰアドレスを管理するテーブル等も含んで構成されている。
【００３１】
図７は、管理マネージャ１０のロードバランサ設定指示部１０Ｂ及び負荷分散情報設定指示部１０Ｃによるロードバランサ設定処理を示す。この処理は、ロードバランサ設定指示受付部１０Ａにおいて、負荷分散対象となる処理要求の送信元となる業務プログラムの業務プログラム種別が少なくとも指定されたロードバランサ設定指示を受け付けたときに実行される。
【００３２】
ステップ１（図ではＳ１と略記する。以下同様）では、業務管理テーブル１０Ｄを参照し、指定された業務プログラム種別の業務プログラムを実行しているサーバを取得する。そして、その取得したサーバを、ソフトウェアロードバランサをホストオペレーティングシステムにロードさせる設定対象サーバとして決定する。
【００３３】
ステップ２では、負荷分散情報テーブル１０Ｅを参照し、指定された業務プログラム種別を送信元とする行に０以外の値が設定されている業務プログラム種別の代表アドレスを、送信先の業務プログラム種別の代表アドレスとして取得する。さらに、その送信先の業務プログラム種別のシートの夫々から、指定された業務プログラム種別を送信元とする負荷分散対象サーバ及び負荷分散割合を取得し、これを負荷分散対象サーバ及び負荷分散割合として決定する。
【００３４】
ステップ３では、業務管理テーブル１０Ｄを参照し、全ての負荷分散対象サーバの顧客ＩＰアドレスを取得する。
ステップ４では、設定対象サーバにおけるホストオペレーティングシステムのロードバランサ設定部３０Ｄに対し、ソフトウェアロードバランサをロードするように指示を送信する。なお、設定対象サーバのロードバランサ設定部３０Ｄでは、この指示に応じて、ルーティング部３０Ａの一部として、ソフトウェアロードバランサをロードする。
【００３５】
ステップ５では、設定対象サーバにおけるホストオペレーティングシステムのロードバランサ設定部３０Ｄに対し、送信先の業務プログラム種別ごとに、ステップ２で決定した負荷分散対象サーバ及び各負荷分散対象サーバへの負荷分散割合を設定させるように指示を送信する。具体的には、送信先の業務プログラム種別の代表アドレスと、負荷分散対象サーバの顧客ＩＰアドレス及び負荷分散割合と、を対応付けた情報を、ソフトウェアロードバランサに設定させるように指示を送信する。なお、設定対象サーバのロードバランサ設定部３０Ｄでは、この指示に応じて、ルーティング部３０Ａの一部としてロードしたソフトウェアロードバランサに対し、これらの情報を設定する。
【００３６】
また、上述の処理における、ソフトウェアロードバランサに設定する負荷分散情報を決定（取得）するステップ２及びステップ３と、ソフトウェアロードバランサをロードする指示を設定対象サーバに送信するステップ４と、は逆の順序で実行してもよい。
【００３７】
ここで、サーバ２０間において負荷分散がどのように行われるかについてについて具体例を用いて説明する。図８は、サーバ２０間のＶＰＮ接続の例であり、サーバα及びサーバβのゲストＯＳが業務プログラム種別Ａ，サーバγ，サーバδ及びサーバεが業務プログラム種別Ｂの業務プログラムを実行している。なお、サーバα，サーバβ，サーバγ，サーバδ及びサーバεで動作するゲストＯＳには、夫々「192.167.0.1」，「192.167.0.2」，「192.167.0.3」，「192.167.0.4」及び「192.167.0.5」の顧客ＩＰアドレスが割り振られている。そして、少なくとも、サーバα及びサーバβを一端とするＶＰＮ接続が、夫々実線及び破線で示すようになされている。なお、図８では便宜上図示を省略しているが、これらのサーバは、管理マネージャ１０に接続されている。そして、管理マネージャ１０の業務管理テーブル１０Ｄ及び負荷分散情報テーブル１０Ｅには、夫々図９（Ａ）及び図９（Ｂ）のようにデータが登録されているものとする。
【００３８】
そして、業務プログラム種別Ａの業務プログラムからの処理要求を負荷分散させる指示を受け付けたとき、次の処理を行う。即ち、管理マネージャ１０では、図９（Ａ）の業務管理テーブル１０Ｄを参照し、業務プログラム種別Ａの業務プログラムを実行するゲストＯＳが動作するサーバα及びサーバβを、ソフトウェアロードバランサの設定対象サーバとして決定する（ステップ１）。さらに、図９（Ｂ）の負荷分散情報テーブル１０Ｅを参照し、業務プログラム種別Ａの業務プログラムを送信元とする行に０以外の値が設定されているシートを特定し、そのシートの業務プログラム種別の代表アドレスを取得する。なお、図９（Ｂ）の例では、業務プログラム種別Ｂの代表アドレス「192.167.0.100」のシートのみが設定されており、このシートにおける業務プログラム種別Ａの業務プログラムを送信元とする行に０以外の値が設定されている。このため、この業務プログラム種別Ｂの代表アドレス「192.167.0.100」を取得する。さらに、この業務プログラム種別Ｂについて設定された、業務プログラム種別Ａを送信元とする「サーバγ」，「サーバδ」及び「サーバε」、並びにこれらのサーバの夫々の負荷分散割合「0.5（50パーセント）」，「0.3（30パーセント）」，「0.2（20パーセント）」を取得し、負荷分散対象サーバ及び負荷分散割合として決定する（ステップ２）。さらに、図９（Ａ）の業務管理テーブル１０Ｄから、サーバγ，サーバδ，サーバεのゲストＯＳの顧客ＩＰアドレス「192.167.0.3」，「192.167.0.4」及び「192.167.0.5」を夫々取得する（ステップ３）。
【００３９】
そして、ソフトウェアロードバランサの設定対象サーバであるサーバα及びサーバβのロードバランサ設定部３０Ｄに対し、ソフトウェアロードバランサをロードするように指示を送信する（ステップ４）。また、代表アドレス「192.167.0.100」への処理要求を、「192.167.0.3」に「0.5」、「192.167.0.4」に「0.3」、「192.167.0.5」に「0.2」の割合で負荷分散させる設定を行うように指示を送信する（ステップ５）。
【００４０】
その結果、業務プログラム種別Ａの業務プログラムを実行するゲストＯＳが動作するサーバα及びサーバβから業務プログラム種別Ｂの業務プログラムに対して送信される処理要求は、図１０に示すように負荷分散される。図１０では、実線矢印がサーバαからの処理要求、破線矢印がサーバβからの処理要求であることを示す。
【００４１】
かかるロードバランサ設定処理によれば、負荷分散させる処理要求の送信元となる業務プログラム種別が指定されれば、ソフトウェアロードバランサの設定対象サーバが決定され、そのホストＯＳにソフトウェアロードバランサがロードされる。そして、ロードされたソフトウェアロードバランサに、負荷分散に必要な情報が自動設定される。このため、多数のサーバから構成されるサーバノードプールにおいて、ソフトウェアロードバランサを適用したとしても、その設定作業に要する負担は大幅に軽減され、サーバ構成の変更等にも柔軟に対応することができる。
【００４２】
なお、上述の実施例では、負荷分散情報テーブル１０Ｅに負荷分散対象サーバ及び負荷分散割合の両方を設定しておき、ソフトウェアロードバランサに対して、負荷分散対象サーバ及び負荷分散割合の両方を設定している。こうすることで、負荷分散対象サーバによって処理能力に差がある場合に、その処理能力に応じた負荷分散割合を設定することができる。しかし、各負荷分散対象サーバの処理能力が同等である場合には、負荷分散情報テーブル１０Ｅに負荷分散対象サーバのみを設定しておき、設定対象サーバのソフトウェアロードバランサに対し、負荷分散対象サーバのみを設定するようにしてもよい。なお、この場合には、ソフトウェアロードバランサにおいて、負荷分散対象サーバに対して均等に負荷分散をすればよい。このようにすれば、負荷分散情報テーブル１０Ｅに対して負荷分散割合を設定しておかなくても負荷分散を実現することができる。
【００４３】
また、負荷分散情報テーブル１０Ｅに対し、負荷分散対象サーバへの負荷分散割合を予め均等に設定しておく場合には、その設定作業（負荷分散情報テーブル１０Ｅへの負荷分散情報の追加作業）を自動化することができる。その処理としては、まず、処理要求の送信元及び送信先となる業務プログラム種別が夫々指定されたときに、その送信先となる業務プログラム種別の業務プログラムを実行するゲストＯＳが動作するサーバを、業務管理テーブル１０Ｄから特定する。また、負荷分散情報テーブル１０Ｅに対し、指定された送信先となる業務プログラム種別の代表アドレスが設定されたシートを追加する。そして、業務管理テーブル１０Ｄから特定したサーバ全てを、負荷分散させるサーバとしてシートに設定するとともに、指定された送信元となる業務プログラム種別からの負荷分散割合を設定する行を追加する。さらに、その追加した行に対し、「１／（負荷分散させるサーバ）」の割合を、負荷分散させるサーバの夫々に対して設定する。このようにすれば、負荷分散情報テーブル１０Ｅに対する負荷分散情報の設定作業を簡略化することができる。
【００４４】
さらに、ロードバランサ設定指示受付部１０Ａで受け付けるロードバランサ設定指示としては、ロードバランサそのものを設定させる指示に限らず、例えば、ゲストＯＳの起動指示を、ロードバランサ設定指示として取り扱ってもよい。具体的には、ゲストＯＳの起動指示が、そのゲストＯＳで実行させる業務プログラムの指定とともになされたときに、この指定された業務プログラムの業務プログラム種別を、負荷分散させる処理要求の送信元としての業務プログラム種別として、上述のロードバランサ設定処理を行ってもよい。このようにすれば、ゲストＯＳの起動指示をするだけでソフトウェアロードバランサの設定もあわせて行われるため、改めてロードバランサの設定指示をする手間を省くことができる。
【００４５】
以上の実施形態に関し、更に以下の付記を開示する。
【００４６】
（付記１）仮想オペレーティングシステムとして、複数の送信先に処理要求を振り分けて送信するソフトウェアロードバランサを指示に応じてロード可能であって他のサーバと仮想ネットワークを用いた通信を直接行うホストオペレーティングシステムと、顧客業務の処理を行う業務プログラムを実行するために起動され、ホストオペレーティングシステムを介してのみ他のサーバとの通信を行うゲストオペレーティングシステムと、が動作可能な仮想マシン環境を有する複数のサーバと接続されたコンピュータに、負荷分散させる処理要求を送信する送信元業務プログラムが少なくとも指定されたロードバランサ設定指示を受け付けたときに、その送信元業務プログラムを実行するゲストオペレーティングシステムが動作するサーバを、ソフトウェアロードバランサの設定対象サーバとして決定するとともに、前記送信元業務プログラムから送信される処理要求の送信先業務プログラムを実行するゲストオペレーティングシステムが動作するサーバを、負荷分散対象サーバとして決定する決定ステップと、前記設定対象サーバのホストオペレーティングシステムにソフトウェアロードバランサをロードさせる指示を、前記設定対象サーバに対して送信する第１の指示送信ステップと、前記送信元業務プログラムからの送信データの負荷分散に用いる情報として少なくとも前記負荷分散対象サーバを前記ソフトウェアロードバランサに設定させる指示を、前記設定対象サーバに対して送信する第２の指示送信ステップと、を実現させることを特徴とするロードバランサ設定プログラム。
【００４７】
（付記２）前記決定ステップは、業務プログラムが実行されるゲストオペレーティングシステムが動作するサーバが設定された第１のテーブルを参照し、前記送信元業務プログラムが実行されるサーバを前記設定対象サーバとして決定するとともに、処理要求の送信元及び送信先となる業務プログラムが関連付けられ、その送信先となる業務プログラムが実行されるゲストオペレーティングシステムが動作するサーバのうち負荷分散させるサーバが設定された第２のテーブルを参照し、前記送信元業務プログラムから送信される処理要求の送信先業務プログラムを実行するゲストオペレーティングシステムが動作するサーバのうち負荷分散させるサーバとして前記第２のテーブルに設定されたサーバを、前記負荷分散対象サーバとして決定することを特徴とする付記１記載のロードバランサ設定プログラム。
【００４８】
（付記３）前記第２のテーブルには、負荷分散させるサーバごとにその負荷分散割合がさらに設定されており、前記決定ステップは、前記第２のテーブルに設定された負荷分散割合を、前記負荷分散対象サーバに対する負荷分散割合としてさらに決定し、前記第２の指示送信ステップは、前記負荷分散対象サーバに対する負荷分散割合を前記ソフトウェアロードバランサにさらに設定させる指示を、前記設定対象サーバに対して送信することを特徴とする付記２記載のロードバランサ設定プログラム。
【００４９】
（付記４）前記第２のテーブルに設定された負荷分散割合は、処理要求の送信元となる業務プログラムに応じた値が設定されており、前記決定ステップは、前記第２のテーブルに設定された負荷分散割合のうち、前記送信元業務プログラムを送信元とする負荷分散割合を、前記負荷分散対象サーバに対する負荷分散割合として決定することを特徴とする付記３記載のロードバランサ設定プログラム。
【００５０】
（付記５）処理要求の送信元及び送信先となる業務プログラムが夫々指定された、前記第２のテーブルに対する負荷分散情報設定指示を受け付けたときに、前記第２のテーブルに対し、送信元となる業務プログラムからの処理要求を負荷分散させるサーバとして、その処理要求の送信先となる業務プログラムが実行されるサーバを設定するとともに、その負荷分散させるサーバに対して均等に負荷分散割合を設定するテーブル設定ステップをさらに実現することを特徴とする付記３又は付記４に記載のロードバランサ設定プログラム。
【００５１】
（付記６）仮想オペレーティングシステムとして、複数の送信先に処理要求を振り分けて送信するソフトウェアロードバランサを指示に応じてロード可能であって他のサーバと仮想ネットワークを用いた通信を直接行うホストオペレーティングシステムと、顧客業務の処理を行う業務プログラムを実行するために起動され、ホストオペレーティングシステムを介してのみ他のサーバとの通信を行うゲストオペレーティングシステムと、が動作可能な仮想マシン環境を有する複数のサーバと接続されたコンピュータが、負荷分散させる処理要求を送信する送信元業務プログラムが少なくとも指定されたロードバランサ設定指示を受け付けたときに、その送信元業務プログラムを実行するゲストオペレーティングシステムが動作するサーバを、ソフトウェアロードバランサの設定対象サーバとして決定するとともに、前記送信元業務プログラムから送信される処理要求の送信先業務プログラムを実行するゲストオペレーティングシステムが動作するサーバを、負荷分散対象サーバとして決定する決定ステップと、前記設定対象サーバのホストオペレーティングシステムにソフトウェアロードバランサをロードさせる指示を、前記設定対象サーバに対して送信する第１の指示送信ステップと、前記送信元業務プログラムからの送信データの負荷分散に用いる情報として少なくとも前記負荷分散対象サーバを前記ソフトウェアロードバランサに設定させる指示を、前記設定対象サーバに対して送信する第２の指示送信ステップと、
を実行することを特徴とするロードバランサ設定方法。
【００５２】
（付記７）仮想オペレーティングシステムとして、複数の送信先に処理要求を振り分けて送信するソフトウェアロードバランサを指示に応じてロード可能であって他のサーバと仮想ネットワークを用いた通信を直接行うホストオペレーティングシステムと、顧客業務の処理を行う業務プログラムを実行するために起動され、ホストオペレーティングシステムを介してのみ他のサーバとの通信を行うゲストオペレーティングシステムと、が動作可能な仮想マシン環境を有する複数のサーバと接続されたロードバランサ設定装置であって、負荷分散させる処理要求を送信する送信元業務プログラムが少なくとも指定されたロードバランサ設定指示を受け付けたときに、その送信元業務プログラムを実行するゲストオペレーティングシステムが動作するサーバを、ソフトウェアロードバランサの設定対象サーバとして決定するとともに、前記送信元業務プログラムから送信される処理要求の送信先業務プログラムを実行するゲストオペレーティングシステムが動作するサーバを、負荷分散対象サーバとして決定する決定手段と、前記設定対象サーバのホストオペレーティングシステムにソフトウェアロードバランサをロードさせる指示を、前記設定対象サーバに対して送信する第１の指示送信手段と、前記送信元業務プログラムからの送信データの負荷分散に用いる情報として少なくとも前記負荷分散対象サーバを前記ソフトウェアロードバランサに設定させる指示を、前記設定対象サーバに対して送信する第２の指示送信手段と、を含んで構成されたことを特徴とするロードバランサ設定装置。
【図面の簡単な説明】
【００５３】
【図１】ロードバランサ設定機構を具現化したシステムの全体構成図である。
【図２】サーバ構成及び２サーバ間におけるデータ転送の仕組みの説明図である。
【図３】ネットワーク設定テーブルの説明図であり、（Ａ）はルーティング部の設定テーブル、（Ｂ）はトンネリング部の設定テーブルである。
【図４】管理マネージャの構成図である。
【図５】業務管理テーブルの説明図である。
【図６】負荷分散情報テーブルの説明図である。
【図７】管理マネージャによるロードバランサ設定処理のフローチャートである。
【図８】ロードバランサ設定処理の具体例におけるＶＰＮ接続の説明図である。
【図９】ロードバランサ設定処理の具体例における、管理マネージャのテーブルの説明図であり、（Ａ）は業務管理テーブル、（Ｂ）は負荷分散情報テーブルである。
【図１０】ロードバランサ設定処理の具体例における負荷分散の説明図である。
【符号の説明】
【００５４】
１０    管理マネージャ
１０Ａ  ロードバランサ設定指示受付部
１０Ｂ  ロードバランサ設定指示部
１０Ｃ  負荷分散情報設定指示部
１０Ｄ  業務管理テーブル
１０Ｅ  負荷分散情報テーブル
２０    サーバ
３０    ホストＯＳ
３０Ａ  ルーティング部
３０Ｂ  トンネリング部
３０Ｃ  暗号化部
３０Ｄ  ロードバランサ設定部
４０    ゲストＯＳ
４０Ａ  顧客業務処理部
５０    物理ＮＩＣ
６０    仮想ＮＩＣ
【図１】
2010061283.tif 000003
【図２】
2010061283.tif 000004
【図３】
2010061283.tif 000005
【図４】
2010061283.tif 000006
【図５】
2010061283.tif 000007
【図６】
2010061283.tif 000008
【図７】
2010061283.tif 000009
【図８】
2010061283.tif 000010
【図９】
2010061283.tif 000011
【図１０】
2010061283.tif 000012