(57)【要約】【課題】信頼性を向上させる情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムを提供する。【解決手段】処理割振部３１は、各仮想マシン４０に処理要求を割り振る。高負荷判定部２２は、各仮想マシン４０のうち負荷が閾値を超える高負荷処理実行部が存在するか否かを判定する。オートスケール判定部１１は、高負荷処理実行部が存在する場合、各仮想マシン４０の負荷を基に仮想マシン４０を増やすか否かを判定する。フェイルオーバ判定部１３は、仮想マシン４０を増やさない場合、各仮想マシン４０に割り振られた処理要求の数を基に、高負荷処理実行部が実行する処理を他の仮想マシン４０へ移すか否かを判定する。フェイルオーバ実行部１４は、フェイルオーバ判定部１３により高負荷処理実行部が実行する処理を移すと判定された場合、高負荷処理実行部が実行する処理を他の仮想マシン４０に実行させる。【選択図】図２
2018180591.tif 000002
【特許請求の範囲】
【請求項１】
処理を実行する１つ又は複数の処理実行部と、
各前記処理実行部に処理要求を割り振る処理割振部と、
各前記処理実行部のうち負荷が閾値を超える高負荷処理実行部が存在するか否かを判定する高負荷判定部と、
前記高負荷判定部により前記高負荷処理実行部が存在すると判定された場合、各前記処理実行部の負荷を基に前記処理実行部を増やすか否かを判定する第１判定部と、
前記第１判定部により前記処理実行部を増やさないと判定された場合、各前記処理実行部に割り振られた処理要求の数を基に、前記高負荷処理実行部が実行する処理を他の処理実行部へ移すか否かを判定する第２判定部と、
前記第２判定部により前記高負荷処理実行部が実行する処理を移すと判定された場合、前記高負荷処理実行部が実行する処理を前記他の処理実行部に実行させる切替部と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記第１判定部は、前記高負荷処理実行部を除いた各前記処理実行部の負荷の平均と前記高負荷処理実行部の負荷とを比較して前記処理実行部を増やすか否かを判定することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２判定部は、前記処理割振部により各前記処理実行部に割り振られた前記処理要求の数から前記高負荷処理実行部への割振率を算出し、算出した前記割振率を基に前記高負荷処理実行部が実行する処理を前記他の処理実行部へ移すか否かを判定することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第２判定部は、前記高負荷処理実行部への前記割振率が所定値よりも低い場合、前記高負荷処理実行部が実行する処理を前記他の処理実行部に移すと判定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第２判定部は、前記第１判定部により前記処理実行部を増やさないと判定されてから所定時間待機した後に、前記高負荷処理実行部が実行する処理を前記他の処理実行部に移すか否かを判定することを特徴とする請求項１〜４のいずれか一つに記載の情報処理装置。
【請求項６】
前記切替部は、前記他の処理実行部を新たに生成し、生成した前記他の処理実行部に前記高負荷処理実行部が実行する処理を実行させ、前記高負荷処理実行部を停止することで、前記高負荷処理実行部が実行する処理を他の処理実行部に実行させることを特徴とする請求項１〜５のいずれか一つに記載の情報処理装置。
【請求項７】
業務処理装置、負荷分散装置及び管理制御装置を有する情報処理システムであって、
前記業務処理装置は、
１つ又は複数の処理実行部を備え、
前記負荷分散装置は、
各前記処理実行部に処理要求を割り振る処理割振部を備え、
前記管理制御装置は、
各前記処理実行部のうち負荷が閾値を超える高負荷処理実行部が存在するか否かを判定する高負荷判定部と、
前記高負荷判定部により前記高負荷処理実行部が存在すると判定された場合、各前記処理実行部の負荷を基に前記処理実行部を増やすか否かを判定する第１判定部と、
前記第１判定部により前記処理実行部を増やさないと判定された場合、各前記処理実行部に割り振られた処理要求の数を基に、前記高負荷処理実行部が実行する処理を他の処理実行部に移すか否かを判定する第２判定部と、
前記第２判定部により前記高負荷処理実行部が実行する処理を移すと判定された場合、前記高負荷処理実行部が実行する処理を他の処理実行部に実行させる切替部と
を備えたことを特徴とする情報処理システム。
【請求項８】
１つ又は複数の処理実行装置に処理要求を割り振り、
各前記処理実行装置のうち負荷が閾値を超える高負荷処理実行装置が存在するか否かを判定し、
前記高負荷処理実行装置が存在する場合、各前記処理実行装置の負荷を基に前記処理実行装置を増やすか否かを判定し、
前記処理実行装置を増やさない場合、各前記処理実行装置に割り振られた処理要求の数を基に、前記高負荷処理実行装置が実行する処理を他の処理実行装置へ移すか否かを判定し、
前記高負荷処理実行装置が実行する処理を移す場合、前記高負荷処理実行装置が実行する処理を前記他の処理実行装置に実行させる
ことを特徴とする情報処理方法。
【請求項９】
１つ又は複数の処理実行装置に処理要求を割り振り、
各前記処理実行装置のうち負荷が閾値を超える高負荷処理実行装置が存在するか否かを判定し、
前記高負荷処理実行装置が存在する場合、各前記処理実行装置の負荷を基に前記処理実行装置を増やすか否かを判定し、
前記処理実行装置を増やさない場合、各前記処理実行装置に割り振られた処理要求の数を基に、前記高負荷処理実行装置が実行する処理を他の処理実行装置へ移すか否かを判定し、
前記高負荷処理実行装置が実行する処理を移す場合、前記高負荷処理実行装置が実行する処理を前記他の処理実行装置に実行させる
処理をコンピュータに実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
近年、情報処理装置の性能向上に伴い、複数の仮想マシンを１つの物理マシン上で動作させる仮想化技術の発達が顕著である。仮想化技術では、例えば、仮想化ソフトウェアが、物理マシンを複数の仮想マシンに割り当てて、各仮想マシンによるサービスの提供を行う。仮想マシンの使用方法として、例えば、事業者が仮想マシンやネットワークなどのインフラをネットワーク経由で利用者に提供するクラウドサービスなどがある。
【０００３】
クラウドサービスなどで業務サーバとして複数の仮想マシンを使用する場合、クライアントからのリクエストを各仮想マシンに割り振り負荷分散を行う技術がある。このような負荷分散を行うマシンは、ロードバランサと呼ばれる場合がある。
【０００４】
また、ロードバランサにより負荷分散を行うシステムにおいて、各仮想マシンの負荷が高くなった場合、分散先となる仮想マシンを自動的に複製して追加する技術がある。この技術は、オートスケールと呼ばれる場合がある。オートスケールは、仮想マシンの動作を監視する監視サーバによる監視結果に基づいて、仮想マシンを管理する管理サーバにより実行される。
【０００５】
さらに、ロードバランサにより負荷分散を行うシステムにおいて、業務サーバである仮想マシンがダウンすると、他の物理マシン上で仮想マシンを起動させ、ダウンした仮想マシンが実行中の業務を新たに起動させた仮想マシンに移管する技術がある。この技術はオートフェールオーバと呼ばれる場合がある。オートフェールオーバは、管理サーバにより仮想マシンのダウンの検知及び仮想マシンの起動が実行される。オートフェールオーバが実行されることで、業務サーバが復旧する。
【０００６】
なお、サーバの負荷分散の技術として、所定期間にサーバに入力されたリクエストを解析してサーバ負荷の制御の運用計画を作成し、所定条件を満たした場合に運用計画に基づくサーバ負荷の制御を実施する従来技術がある。また、クラウドサービスにおける障害対処の技術として、サービスの契約内容に基づき対処方法を決定する従来技術がある。さらに、リクエスト数の増加の状態により障害発生の有無を判定する従来技術がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１６−５８００５号公報
【特許文献２】特開２０１６−１３９２３７号公報
【特許文献３】特開２０１５−９５１４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、仮想マシンの負荷を基にオートスケールを実行するシステムにおいて、障害が発生して負荷が下がらない場合、オートスケールを実行しても障害が発生した仮想マシンの負荷は下がらない。その場合、障害発生の検知を行わなければ、生成可能な仮想マシンの最大数までスケールアウトが繰り返されてしまう。
【０００９】
また、例えばＣＰＵ（Central  Processing  Unit）使用率を監視して故障の検知を行う構成の場合、時間による一時的な高負荷の仮想マシンをフェイルオーバさせてしまうおそれがある。
【００１０】
また、作成した運用計画に基づいて負荷分散を行う従来技術を用いても、無駄なスケールアウトの実行や一時的な高負荷の仮想マシンのフェイルオーバを回避することは困難である。これは、サービスの契約内容に基づき対処方法を決定する従来技術を用いた場合も同様である。また、リクエスト数の増加の状態を基に障害発生の有無を判定する従来技術を用いた場合、無駄なスケールアウトの実行を回避することは可能であるが、一時的な高負荷の仮想マシンのフェイルオーバは実行されてしまい、信頼性が低下するおそれがある。
【００１１】
開示の技術は、上記に鑑みてなされたものであって、信頼性を向上させる情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本願の開示する情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムの一つの態様において、処理実行部は、処理を実行する１つ又は複数存在する。処理割振部は、各前記処理実行部に処理要求を割り振る。高負荷判定部は、各前記処理実行部のうち負荷が閾値を超える高負荷処理実行部が存在するか否かを判定する。第１判定部は、前記高負荷判定部により前記高負荷処理実行部が存在すると判定された場合、各前記処理実行部の負荷を基に前記処理実行部を増やすか否かを判定する。第２判定部は、前記第１判定部により前記処理実行部を増やさないと判定された場合、各前記処理実行部に割り振られた処理要求の数を基に、前記高負荷処理実行部が実行する処理を他の処理実行部へ移すか否かを判定する。切替部は、前記第２判定部により前記高負荷処理実行部が実行する処理を移すと判定された場合、前記高負荷処理実行部が実行する処理を前記他の処理実行部に実行させる。
【発明の効果】
【００１３】
１つの側面では、本発明は、信頼性を向上させることができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、情報処理システムのシステム構成図である。
【図２】図２は、実施例に係る情報処理システムのブロック図である。
【図３】図３は、オートスケールが実行される場合のＣＰＵ使用率の一例を表す図である。
【図４】図４は、障害が発生した可能性がある場合のＣＰＵ使用率の一例を表す図である。
【図５】図５は、オートスケールが実行された場合の情報処理システムの状態を表す図である。
【図６】図６は、フェイルオーバが実行されない場合のリクエスト割振数の一例を表す図である。
【図７】図７は、フェイルオーバが実行される場合のリクエスト割振数の一例を表す図である。
【図８】図８は、フェイルオーバが実行された場合の情報処理システムの状態を表す図である。
【図９】図９は、障害発生と判定される仮想マシンの状態を説明するための図である。
【図１０】図１０は、実施例に係る管理サーバによる高負荷時処理の実行のフローチャートである。
【図１１】図１１は、オートスケールの処理のフローチャートである。
【図１２】図１２は、フェイルオーバの処理のフローチャートである。
【図１３】図１３は、情報処理装置のハードウェア構成図である。
【発明を実施するための形態】
【００１５】
以下に、本願の開示する情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、情報処理システム、情報処理方法及び情報処理プログラムが限定されるものではない。
【実施例】
【００１６】
図１は、情報処理システムのシステム構成図である。情報処理システム１００は、図１に示すように、管理サーバ１、監視サーバ２、ロードバランサ３、ＶＭ（Virtual  Machine）ホスト４及び端末装置７を有する。
【００１７】
管理サーバ１、監視サーバ２、ロードバランサ３、ＶＭホスト４は、ＬＡＮ（Local  Area  Network）５を介して互いに接続される。また、ロードバランサ３及び端末装置７は、ネットワーク６に接続される。ネットワーク６は、例えばインターネットである。
【００１８】
ＶＭホスト４は、例えば物理サーバである。そして、ＶＭホスト４は、１つ又は複数の仮想マシン４０を動作させることができる。ここで、図１では、１つのＶＭホスト４の中に仮想マシン４０を最大で２つ記載したが、実際には、１つのＶＭホスト４にいくつ起動されてもよい。また、ＶＭホスト４は、仮想マシン４０を動作させてもよいし、いずれも動作させなくてもよい。図１において仮想マシン４０が記載されていないＶＭホスト４は、仮想マシン４０を動作させていない状態である。ＶＭホスト４は、後述する管理サーバ１からの指示を受けて仮想マシン４０を生成し動作させる。また、ＶＭホスト４は、管理サーバ１からの指示を受けて、自装置で動作する仮想マシン４０を削除する。このＶＭホスト４が、「業務処理装置」の一例にあたる。
【００１９】
各仮想マシン４０は、１つのサービスを提供する業務サーバである。各仮想マシン４０は、端末装置７から送信された処理要求であるリクエストを処理する。各仮想マシン４０は、同じ処理を実行可能であり、端末装置７から送信されたリクエストは、どのＶＭホスト４のどの仮想マシン４０に送られても同じ処理が行われる。この仮想マシン４０が、「処理実行部」及び「処理実行装置」の一例にあたる。
【００２０】
端末装置７は、仮想マシン４０が提供するサービスを受ける情報処理端末である。端末装置７は、仮想マシン４０に対してリクエストをネットワーク６を介して送信する。図１における破線矢印はリクエストの流れを表す。図１では、端末装置７は、３台記載したが、その数に特に制限は無い。
【００２１】
ロードバランサ３は、管理サーバ１からリクエストの割り振り先となる仮想マシン４０の情報を管理サーバ１から受ける。この仮想マシン４０の情報は、仮想マシン４０のアドレスでもよいし、ＤＮＳ（Domain  Name  System）サーバがある場合には仮想マシン４０の名前でもよい。そして、ロードバランサ３は、ネットワーク６を介して端末装置７が出力したリクエストを受信する。そして、ロードバランサ３は、割り振り先の仮想マシン４０のうちのいずれかの仮想マシン４０へリクエストを割り振り、割り振った仮想マシン４０へリクエストを送信する。
【００２２】
ここで、ロードバランサ３によるリクエストの割り振りについて説明する。ロードバランサ３は、各仮想マシン４０に送信したリクエストの数及び内容などのリクエスト情報を記憶する。そして、ロードバランサ３は、新たにリクエストを受信すると、各仮想マシン４０の処理負荷が均一になるように、受信したリクエストを割り振る仮想マシン４０を決定する。例えば、ロードバランサ３は、各仮想マシン４０が処理するリクエストの数が均一になるように、受信したリクエストを割り振る仮想マシン４０を決定する。ただし、リクエストを割り振る仮想マシン４０の決定方法はこれに限らず、処理負荷を均一にできれば他の方法でもよい。例えば、ロードバランサ３は、リクエストの内容などから処理時間を求めて、処理が完了する時間が均一になるように、仮想マシン４０を決定してもよい。
【００２３】
また、ロードバランサ３は、リクエストを割り振った仮想マシン４０の情報を管理サーバ１へ送信する。その後、オートスケールやフェイルオーバが実行された場合、ロードバランサ３は、管理サーバ１から追加又は停止された仮想マシン４０の情報の入力を受ける。そして、ロードバランサ３は、追加された仮想マシン４０をリクエストの割り振り先に加え、停止された仮想マシン４０をリクエストの割り振り先から外して、リクエストの割り振りを行う。このロードバランサ３が、「負荷分散装置」の一例にあたる。
【００２４】
監視サーバ２は、各仮想マシン４０のＣＰＵ使用率を取得する。そして、監視サーバ２は、取得した各仮想マシン４０のＣＰＵ使用率から高負荷となった仮想マシン４０を特定し管理サーバ１へ通知する。
【００２５】
管理サーバ１は、各仮想マシン４０のＣＰＵ使用率及び高負荷となった仮想マシン４０の情報の通知を監視サーバ２から受ける。また、管理サーバ１は、リクエストが送信された仮想マシン４０の情報をロードバランサ３から受信する。次に、管理サーバ１は、送信されたリクエストの数を仮想マシン４０毎にカウントし、各仮想マシン４０に対するリクエストの割り振り率を算出する。そして、管理サーバ１は、ＣＰＵ使用率及びリクエストの割り振り率を用いてオートスケール又はフェイルオーバを実行するか否かを判定する。
【００２６】
オートスケールを実行する場合、管理サーバ１は、仮想マシン４０を起動させるＶＭホスト４を選択し、仮想マシン４０の起動を選択したＶＭホスト４に指示する。さらに、管理サーバ１は、起動させた仮想マシン４０の情報をロードバランサ３へ送信する。
【００２７】
また、フェイルオーバを実行する場合、管理サーバ１は、障害が発生した仮想マシン４０を特定する。次に、管理サーバ１は、仮想マシン４０を起動させるＶＭホスト４を選択し、仮想マシン４０の起動を選択したＶＭホスト４に指示する。次に、管理サーバ１は、起動させた仮想マシン４０の情報をロードバランサ３へ送信する。そして、管理サーバ１は、障害が発生した仮想マシン４０の処理を起動させた仮想マシン４０へ移管させる指示をロードバランサ３へ通知する。その後、管理サーバ１は、障害が発生した仮想マシン４０の停止を、障害が発生した仮想マシン４０を動作させるＶＭホスト４へ指示する。この監視サーバ２及び管理サーバ１が、「管理制御装置」の一例にあたる。
【００２８】
さらに、図２を参照して、管理サーバ１によるオートスケール又はフェイルオーバの実行について詳細に説明する。図２は、実施例に係る情報処理システムのブロック図である。図２では、オートスケール又はフェイルオーバの実行に係わる機能部について記載した。以下では、オートスケール及びフェイルオーバをまとめて「高負荷時処理」という。
【００２９】
監視サーバ２は、ＣＰＵ使用率監視部２１及び高負荷判定部２２を有する。ＣＰＵ使用率監視部２１は、各ＶＭホスト４が動作させる各仮想マシン４０のＣＰＵ使用率を監視し取得する。そして、ＣＰＵ使用率監視部２１は、取得した各仮想マシン４０のＣＰＵ使用率を後述する管理サーバ１の高負荷判定部２２へ送信する。
【００３０】
高負荷判定部２２は、高負荷時処理を実行するか否かを判定するためのＣＰＵ負荷率の高負荷閾値を予め有する。例えば、高負荷判定部２２は、８０％を高負荷閾値として記憶する。
【００３１】
高負荷判定部２２は、各仮想マシン４０のＣＰＵ使用率を監視サーバ２のＣＰＵ使用率監視部２１から受信する。次に、高負荷判定部２２は、各仮想マシン４０のＣＰＵ使用率と高負荷閾値とを比較し、ＣＰＵ使用率が高負荷閾値を超える仮想マシン４０が存在するか否かを判定する。高負荷閾値を超える仮想マシン４０がなければ、高負荷判定部２２は、高負荷時処理を終了し、次の高負荷時処理の実行の判定タイミングまで待機する。高負荷判定部２２は、この判定処理を所定周期で行う。
【００３２】
これに対して、ＣＰＵ使用率が高負荷閾値を超える仮想マシン４０が存在する場合、高負荷判定部２２は、その仮想マシン４０を高負荷仮想マシンとして特定する。この高負荷仮想マシンが、「高負荷処理実行部」の一例にあたる。その後、高負荷判定部２２は、高負荷仮想マシンとして特定した仮想マシン４０の情報を管理サーバ１のオートスケール判定部１１に通知する。さらに、高負荷判定部２２は、各仮想マシン４０のＣＰＵ使用率の情報をオートスケール判定部１１に通知する。
【００３３】
管理サーバ１は、オートスケール判定部１１、オートスケール実行部１２、フェイルオーバ判定部１３及びフェイルオーバ実行部１４を有する。
【００３４】
オートスケール判定部１１は、オートスケールを行うか否かを判定するための基準値である安全係数を予め有する。安全係数は、高負荷仮想マシン以外の仮想マシン４０のＣＰＵ使用率の平均値と高負荷仮想マシンのＣＰＵ使用率との乖離を表す値である。例えば、オートスケール判定部１１は、１．５を安全係数として記憶する。
【００３５】
オートスケール判定部１１は、高負荷仮想マシンとして特定された仮想マシン４０の情報を監視サーバ２の高負荷判定部２２から取得する。また、オートスケール判定部１１は、各仮想マシン４０のＣＰＵ使用率を高負荷判定部２２から取得する。
【００３６】
オートスケール判定部１１は、高負荷仮想マシン以外の仮想マシン４０のＣＰＵ使用率の平均値を算出する。次に、オートスケール判定部１１は、算出した高負荷仮想マシン以外の仮想マシン４０のＣＰＵ使用率の平均値で高負荷仮想マシンのＣＰＵ使用率を除算し、平均値に対する高負荷仮想マシンのＣＰＵ使用率の割合を算出する。そして、オートスケール判定部１１は、平均値に対する高負荷仮想マシンのＣＰＵ使用率の割合が安全係数未満か否かを判定する。
【００３７】
平均値に対する高負荷仮想マシンのＣＰＵ使用率の割合が安全係数未満の場合、オートスケール判定部１１は、仮想マシン４０において全体的な高負荷が発生したと判定する。全体的な高負荷が発生している場合、高負荷仮想マシンにおける障害発生の可能性は低く、仮想マシン４０を増やすことで高負荷が解消される可能性が高い。そこで、オートスケール判定部１１は、オートスケールの実行をオートスケール実行部１２に指示する。
【００３８】
これに対して、平均値に対する高負荷仮想マシンのＣＰＵ使用率の割合が安全係数以上の場合、オートスケール判定部１１は、仮想マシン４０において障害が発生した可能性がある判定する。そこで、オートスケール判定部１１は、高負荷仮想マシンである仮想マシン４０の情報をフェイルオーバ判定部１３へ通知する。このオートスケール判定部１１が、「第１判定部」の一例にあたる。
【００３９】
ここで、図３及び図４を参照して、オートスケール判定部１１による判定の具体例について説明する。図３は、オートスケールが実行される場合のＣＰＵ使用率の一例を表す図である。また、図４は、障害が発生した可能性がある場合のＣＰＵ使用率の一例を表す図である。ここでは、仮想マシン＃１〜＃５という仮想マシン名を有する５台が仮想マシン４０として存在する場合で説明する。また、高負荷閾値が８０％であり、安全係数が１．５である場合で説明する。
【００４０】
仮想マシン＃１〜＃５のそれぞれのＣＰＵ使用率が図３に示す値である場合、ＣＰＵ使用率が８０％以上である仮想マシン＃３が、高負荷仮想マシンとして特定される。そして、オートスケール判定部１１は、仮想マシン＃１，＃２，＃４及び＃５のＣＰＵ使用率の平均を算出する。この場合、仮想マシン＃１，＃２，＃４及び＃５のＣＰＵ使用率の平均は、７２．５％である。次に、オートスケール判定部１１は、仮想マシン＃１，＃２，＃４及び＃５のＣＰＵ使用率の平均に対する仮想マシン＃３のＣＰＵ使用率の割合を算出する。この場合、仮想マシン＃１，＃２，＃４及び＃５のＣＰＵ使用率の平均に対する仮想マシン＃３のＣＰＵ使用率の割合は、およそ１．２４である。次に、オートスケール判定部１１は、仮想マシン＃１，＃２，＃４及び＃５のＣＰＵ使用率の平均に対する仮想マシン＃３のＣＰＵ使用率の割合と安全係数とを比較する。この場合、仮想マシン＃１，＃２，＃４及び＃５のＣＰＵ使用率の平均に対する仮想マシン＃３のＣＰＵ使用率の割合が安全係数未満であるので、オートスケール判定部１１は、オートスケールの実行を決定する。
【００４１】
これに対して、仮想マシン＃１〜＃５のそれぞれのＣＰＵ使用率が図４に示す値である場合、ＣＰＵ使用率が８０％以上である仮想マシン＃３が、高負荷仮想マシンとして特定される。そして、オートスケール判定部１１は、仮想マシン＃１，＃２，＃４及び＃５のＣＰＵ使用率の平均を算出する。この場合、仮想マシン＃１，＃２，＃４及び＃５のＣＰＵ使用率の平均は、３５％である。次に、オートスケール判定部１１は、仮想マシン＃１，＃２，＃４及び＃５のＣＰＵ使用率の平均に対する仮想マシン＃３のＣＰＵ使用率の割合を算出する。この場合、仮想マシン＃１，＃２，＃４及び＃５のＣＰＵ使用率の平均に対する仮想マシン＃３のＣＰＵ使用率の割合は、およそ２．５７である。次に、オートスケール判定部１１は、仮想マシン＃１，＃２，＃４及び＃５のＣＰＵ使用率の平均に対する仮想マシン＃３のＣＰＵ使用率の割合と安全係数とを比較する。この場合、仮想マシン＃１，＃２，＃４及び＃５のＣＰＵ使用率の平均に対する仮想マシン＃３のＣＰＵ使用率の割合が安全係数以上であり、仮想マシン＃３が仮想マシン＃１，＃２，＃４及び＃５に比べて高負荷な状態である。そこで、オートスケール判定部１１は、仮想マシン＃３で障害が発生した可能性があると判定する。
【００４２】
図２に戻って説明を続ける。オートスケール実行部１２は、オートスケールの実行の指示をオートスケール判定部１１から受ける。そして、オートスケール実行部１２は、仮想マシン４０が起動可能なＶＭホスト４を選択する。その後、オートスケール実行部１２は、選択したＶＭホスト４に対して仮想マシン４０の起動を指示する。その後、オートスケール実行部１２は、新たに起動させた仮想マシン４０の情報をロードバランサ３の処理割振部３１へ通知し、オートスケールの処理を完了する。
【００４３】
図５は、オートスケールが実行された場合の情報処理システムの状態を表す図である。図５は、図１の状態にある情報処理システム１００においてオートスケールが実行された場合の状態を表す。図５では、新たに起動された仮想マシン４０を仮想マシン４１と表す。また、図５では、管理サーバ１は、仮想マシン４１を新たに起動させる仮想マシン４０として図中の左から２番目のＶＭホスト４を選択する。そして、管理サーバ１は、新たな仮想マシン４１の起動指示を選択したＶＭホスト４に送信する。そして、起動指示を受けたＶＭホスト４は、新たに仮想マシン４１を起動する。その後、管理サーバ１は、仮想マシン４１の情報をロードバランサ３に通知する。これにより、ロードバランサ３は、既存の仮想マシン４０に仮想マシン４１を加えてリクエストの割り振りを行うようになる。
【００４４】
図２に戻って説明を続ける。フェイルオーバ判定部１３は、各リクエストが送信された仮想マシン４０の情報をロードバランサ３の処理割振部３１から受ける。そして、フェイルオーバ判定部１３は、取得したリクエストの情報を送信先の仮想マシン４０に対応させて記憶する。
【００４５】
フェイルオーバ判定部１３は、オートスケール判定部１１により仮想マシン４０において障害が発生した可能性があると判定された場合、高負荷仮想マシンである仮想マシン４０の情報の通知をオートスケール判定部１１から受ける。ここで、フェイルオーバ判定部１３は、一定時間待機する。これは、瞬間的なＣＰＵ使用率の上昇によるフェイルオーバの発生を回避するためである。フェイルオーバ判定部１３が待機する一定時間は、運用環境に応じてＣＰＵ使用率の瞬間的な上昇が解消される可能性がある時間であればよく、例えば、１分程度である。
【００４６】
その後、フェイルオーバ判定部１３は、そのタイミングから所定時間前の間に送信されたリクエストの数を仮想マシン４０毎に取得する。次に、フェイルオーバ判定部１３は、仮想マシン４０毎に所定時間におけるリクエスト数を求める。そして、フェイルオーバ判定部１３は、高負荷仮想マシンへのリクエスト数を、高負荷仮想マシンと共に負荷分散が行われる仮想マシン４０へのリクエストの総数で除算し、高負荷仮想マシンのリクエスト割振率を算出する。
【００４７】
また、フェイルオーバ判定部１３は、各仮想マシン４０にリクエストが均等に割り振られた場合の高負荷仮想マシンのリクエスト割振率である予測リクエスト割振率を算出する。例えば、フェイルオーバ判定部１３は、高負荷仮想マシンと共に負荷分散が行われる全ての仮想マシン４０の数で１００を除算した値を予測リクエスト割振率として算出する。
【００４８】
ここで、フェイルオーバ判定部１３は、フェイルオーバを実施するか否かを判定するためのリクエスト割振率と予測リクエスト割振率との比率の閾値であるフェイルオーバ閾値を予め有する。このフェイルオーバ閾値が、「所定値」の一例にあたる。
【００４９】
高負荷仮想マシンに一時的な高負荷が発生した場合、ある程度の期間で見ればロードバランスの対象となる仮想マシン４０のそれぞれのリクエスト割振率は似た値になる。これに対して、ロードバランスの対象の全体的な傾向とは別に、障害発生などにより高負荷仮想マシンが継続的に高負荷となっている場合、高負荷仮想マシンへのリクエストの割り振りは抑えられるため、高負荷仮想マシンのリクエスト割振率は低くなる。
【００５０】
そこで、フェイルオーバ判定部１３は、各仮想マシン４０にリクエストが均等に割り振られた場合の高負荷仮想マシンのリクエスト割振率である予測リクエスト割振率を算出する。例えば、フェイルオーバ判定部１３は、業務サーバとしてのロードバランスの対象とする全ての仮想マシン４０の数で１００を除算した値を予測リクエスト割振率として算出する。
【００５１】
そして、フェイルオーバ判定部１３は、予測リクエスト割振率を実際の高負荷仮想マシンのリクエスト割振率で除算し、割振率比率を算出する。次に、フェイルオーバ判定部１３は、算出した割振率比率がフェイルオーバ閾値未満か否かを判定する。割振率比率がリクエストフェイルオーバ閾値以上であれば、フェイルオーバ判定部１３は、高負荷仮想マシンである仮想マシン４０に一時的な高負荷が発生したものであり、障害が未発生であると判定してフェイルオーバの処理を終了する。
【００５２】
これに対して、割振率比率がリクエストフェイルオーバ閾値未満であれば、フェイルオーバ判定部１３は、高負荷仮想マシンである仮想マシン４０に障害が発生したと判定して、フェイルオーバの実行をフェイルオーバ実行部１４に指示する。以下での、障害が発生したと考えられる仮想マシン４０は、高負荷仮想マシンである仮想マシン４０にあたる。このフェイルオーバ判定部１３が、「第２判定部」の一例にあたる。
【００５３】
ここで、図６及び図７を参照して、フェイルオーバ判定部１３による判定の具体例について説明する。図６は、フェイルオーバが実行されない場合のリクエスト割振数の一例を表す図である。また、図７は、フェイルオーバが実行される場合のリクエスト割振数の一例を表す図である。ここでも、仮想マシン＃１〜＃５という仮想マシン名を有する５台が仮想マシン４０として存在する場合で説明する。また、フェイルオーバ閾値が２である場合で説明する。また、仮想マシン＃３が高負荷仮想マシンであるとする。
【００５４】
仮想マシン＃１〜＃５のそれぞれへ送信されたリクエスト数を表すリクエスト割振数が図６に示す値である場合、フェイルオーバ判定部１３は、予測リクエスト割振数を１／５×１００＝２０として算出する。次に、フェイルオーバ判定部１３は、仮想マシン＃３のリクエスト割振数をリクエスト割振数の合計で除算して、実際の仮想マシン＃３のリクエスト割振数を算出する。この場合、実際の仮想マシン＃３のリクエスト割振数は、およそ１５．２６である。次に、フェイルオーバ判定部１３は、実際の仮想マシン＃３のリクエスト割振数を予測リクエスト割振数で除算して割振率比率を算出する。この場合、割振率比率は１．３１である。そして、フェイルオーバ判定部１３は、算出した割振率比率とフェイルオーバ閾値とを比較する。この場合、割振率比率がフェイルオーバ閾値未満であることから仮想マシン＃３が一時的に高負荷であると判定して、フェイルオーバ判定部１３は、フェイルオーバを実行しないことを決定する。
【００５５】
これに対して、仮想マシン＃１〜＃５のそれぞれへ送信されたリクエスト数を表すリクエスト割振数が図７に示す値である場合も、フェイルオーバ判定部１３は、予測リクエスト割振数を１／５×１００＝２０と算出する。次に、フェイルオーバ判定部１３は、仮想マシン＃３のリクエスト割振数をリクエスト割振数の合計で除算して、実際の仮想マシン＃３のリクエスト割振数を算出する。この場合、実際の仮想マシン＃３のリクエスト割振数は、およそ３．６０である。次に、フェイルオーバ判定部１３は、実際の仮想マシン＃３のリクエスト割振数を予測リクエスト割振数で除算して割振率比率を算出する。この場合、割振率比率は５．５６である。そして、フェイルオーバ判定部１３は、算出した割振率比率とフェイルオーバ閾値とを比較する。この場合、割振率比率がフェイルオーバ閾値以上であり仮想マシン＃３で障害が発生した可能性があると判定して、フェイルオーバ判定部１３は、フェイルオーバの実行を決定する。
【００５６】
図２に戻って説明を続ける。フェイルオーバ実行部１４は、フェイルオーバの実行の指示をフェイルオーバ判定部１３から受ける。そして、フェイルオーバ実行部１４は、障害が発生したと考えられる仮想マシン４０を動作させるＶＭホスト４以外のＶＭホスト４を１台選択する。そして、フェイルオーバ実行部１４は、仮想マシン４０の起動を選択したＶＭホスト４に指示する。
【００５７】
次に、フェイルオーバ実行部１４は、障害が発生したと考えられる仮想マシン４０の情報をロードバランサ３の処理割振部３１へ通知する。さらに、フェイルオーバ実行部１４は、新たに起動させた仮想マシン４０の情報を処理割振部３１へ通知する。次に、フェイルオーバ実行部１４は、障害が発生したと考えられる仮想マシン４０に送信されたリクエストの処理を新たに起動させた仮想マシン４０へ移管させる指示を処理割振部３１に通知する。このフェイルオーバ実行部１４が、「切替部」の一例にあたる。
【００５８】
図８は、フェイルオーバが実行された場合の情報処理システムの状態を表す図である。図８は、図１の状態にある情報処理システム１００においてフェイルオーバが実行された場合の状態を表す。図８では、障害が発生したと考えられる仮想マシン４０を仮想マシン４２と表す。また、仮想マシン４２が実行する処理の移管先となる仮想マシン４０を仮想マシン４３と表す。管理サーバ１は、リクエスト割振率を用いて仮想マシン４２に障害が発生したと判定する。そして、管理サーバ１は、仮想マシン４２を動作させるＶＭホスト４以外のＶＭホスト４を選択する。次に、管理サーバ１は、新たな仮想マシン４３の起動指示を選択したＶＭホスト４に送信する。そして、起動指示を受けたＶＭホスト４は、新たに仮想マシン４３を起動する。その後、管理サーバ１は、仮想マシン４３の情報をロードバランサ３に通知する。さらに、管理サーバ１は、仮想マシン４２が実行する処理の仮想マシン４３への移管をロードバランサ３に指示する。これにより、仮想マシン４２が実行する処理は、仮想マシン４３に移管される。さらに、ロードバランサ３は、既存の仮想マシン４０に仮想マシン４１を加えてリクエストの割り振りを行うようになる。その後、管理サーバ１は、故障が発生したと考えられる仮想マシン４２の停止を仮想マシン４２を動作させるＶＭホスト４に指示する。指示を受けたＶＭホスト４は、仮想マシン４２を停止させ、仮想マシン４２を削除する。その後、管理サーバ１は、障害が発生したと考えられる仮想マシン４０の情報をロードバランサ３へ通知する。これにより、図８に示すように、障害が発生したと考えられる仮想マシン４２から新たに起動された仮想マシン４３への切り替えが完了する。
【００５９】
図２に戻って説明を続ける。本実施例では、障害が発生した場合に、情報処理システム１００に故障発生前の業務サーバの状態を維持させるため、新たに仮想マシン４０を起動して、障害が発生した仮想マシン４０が実行する処理を新たに起動した仮想マシン４０に移管した。ただし、ロードバランシングの対象とする仮想マシン４０の台数が減ることが許容できるのであれば、管理サーバ１は、故障が発生した仮想マシン４０以外の既存の仮想マシン４０に、故障が発生した仮想マシン４０が実行する処理を移管してもよい。
【００６０】
図９は、障害発生と判定される仮想マシンの状態を説明するための図である。図９では、仮想マシン＃１〜＃５が存在し、障害が発生した可能性がある仮想マシン４０が仮想マシン＃３である場合を表す。
【００６１】
障害発生の可能性がある仮想マシン＃３は、ＣＰＵ使用率が高く且つ他の仮想マシン＃１，＃２，＃４及び＃５と比べてＣＰＵ使用率が高い仮想マシン４０である。その上で、障害発生の可能性がある仮想マシン＃３は、リクエスト割振率が低い仮想マシン４０である。すなわち、管理サーバ１は、仮想マシン４０の状態が領域２００に入っている場合に、その仮想マシン４０に障害が発生した可能性があると判定する。
【００６２】
ロードバランサ３は、処理割振部３１を有する。処理割振部３１は、端末装置７から送信されたリクエストを、負荷が均一になるように各ＶＭホスト４で動作する各仮想マシン４０に割り振り、各仮想マシン４０に割り振ったリクエストを送信する。図２において一点鎖線で囲われた枠内に含まれるＶＭホスト４で動作する仮想マシン４０がロードバランスの対象となる仮想マシン４０である。すなわち、処理割振部３１は、負荷が均一になるように一点鎖線の枠内の仮想マシン４０へリクエストを送信する。図３において点線矢印はリクエストの流れを表す。さらに、処理割振部３１は、端末装置７から受信したリクエストの割り振り先をフェイルオーバ判定部１３に通知する。
【００６３】
また、オートスケールが行われる場合、処理割振部３１は、新たに起動された仮想マシン４０の情報を管理サーバ１のオートスケール実行部１２から受信する。そして、処理割振部３１は、既存の仮想マシン４０に新たに起動された仮想マシン４０を加えてロードバランシングを実行する。これにより、リクエストを処理する仮想マシン４０が増えるので、各仮想マシン４０の負荷を軽減させることができる。
【００６４】
また、フェイルオーバが行われる場合、処理割振部３１は、新たに起動された仮想マシン４０の情報を管理サーバ１のフェイルオーバ実行部１４から受信する。また、処理割振部３１は、障害が発生したと考えられる仮想マシン４０の情報をフェイルオーバ実行部１４から受信する。さらに、処理割振部３１は、故障が発生したと考えられる仮想マシン４０が実行する処理を新たに起動された仮想マシン４０へ移管する指示をフェイルオーバ実行部１４から受ける。
【００６５】
そして、処理割振部３１は、障害が発生したと考えられる仮想マシン４０に送信したリクエストのうちまだ処理が完了していないリクエストを新たに起動された仮想マシン４０へ再送する。その後、処理割振部３１は、ロードバランシングの対象とする仮想マシン４０の中から障害が発生したと考えられる仮想マシン４０を外し、さらに、新たに起動された仮想マシン４０を加えてロードバランシングを実行する。これにより、リクエストを処理する仮想マシン４０が、障害が発生したと考えられる仮想マシン４０が行う処理が新たに起動された仮想マシン４０へ移管され、リクエストの処理を継続することができる。
【００６６】
次に、図１０を参照して、本実施例に係る管理サーバ１による高負荷時処理の実行の流れについて説明する。図１０は、実施例に係る管理サーバによる高負荷時処理の実行のフローチャートである。
【００６７】
監視サーバ２のＣＰＵ使用率監視部２１は、各ＶＭホスト４で動作する各仮想マシン４０のそれぞれのＣＰＵ使用率を取得する。そして、高負荷判定部２２は、各仮想マシン４０のＣＰＵ使用率をＣＰＵ使用率監視部２１から受信する（ステップＳ１）。
【００６８】
高負荷判定部２２は、ＣＰＵ使用率が高負荷閾値を超える仮想マシン４０が存在するか否かを判定する（ステップＳ２）。ＣＰＵ使用率が高負荷閾値を超える仮想マシン４０が存在しない場合（ステップＳ２：否定）、高負荷判定部２２は、所定周期待機し（ステップＳ３）、ステップＳ１へ戻る。
【００６９】
これに対して、ＣＰＵ使用率が高負荷閾値を超える仮想マシン４０が存在する場合（ステップＳ２：肯定）、高負荷判定部２２は、ＣＰＵ使用率が高負荷閾値を超える仮想マシン４０を高負荷仮想マシンとして特定する（ステップＳ４）。そして、高負荷判定部２２は、高負荷仮想マシンである仮想マシン４０の情報及び各仮想マシン４０のＣＰＵ使用率を管理サーバ１のオートスケール判定部１１へ出力する。
【００７０】
オートスケール判定部１１は、高負荷仮想マシンである仮想マシン４０の情報及び各仮想マシン４０のＣＰＵ使用率の入力を高負荷判定部２２から受ける。そして、オートスケール判定部１１は、高負荷仮想マシン以外の仮想マシン４０のＣＰＵ使用率の平均値に対する高負荷仮想マシンである仮想マシン４０のＣＰＵ使用率の割合を算出する。そして、オートスケール判定部１１は、算出した割合が安全係数未満か否かにより、ロードバランス対象である仮想マシン４０における全体的な高負荷が発生したか否かを判定する（ステップＳ５）。
【００７１】
算出した割合がＣＰＵ使用率未満であり、全体的な高負荷が発生したと判定した場合（ステップＳ５：肯定）、オートスケール判定部１１は、オートスケールの実行をオートスケール実行部１２に指示する。オートスケール実行部１２は、オートスケールの実行の指示を受けて、オートスケールを実行する（ステップＳ６）。
【００７２】
一方、算出した割合がＣＰＵ使用率以上であり、全体的な高負荷が発生していないと判定した場合（ステップＳ５：否定）、オートスケール判定部１１は、高負荷仮想マシンである仮想マシン４０の情報をフェイルオーバ判定部１３に出力する。フェイルオーバ判定部１３は、高負荷仮想マシンである仮想マシン４０の情報の入力をオートスケール判定部１１から受ける。そして、オートスケール判定部１１は、一定時間待機する（ステップＳ７）。
【００７３】
その後、オートスケール判定部１１は、ロードバランサ３の処理割振部３１から取得した各仮想マシン４０へのリクエストの情報を用いて、高負荷仮想マシンである仮想マシン４０へのリクエスト割振率を算出する。そして、高負荷仮想マシンである仮想マシン４０へのリクエスト割振率がフェイルオーバ閾値未満か否かを判定する（ステップＳ８）。高負荷仮想マシンである仮想マシン４０へのリクエスト割振率がフェイルオーバ閾値以上の場合（ステップＳ８：否定）、オートスケール判定部１１は、フェイルオーバの処理を完了する。
【００７４】
これに対して、高負荷仮想マシンである仮想マシン４０へのリクエスト割振率がフェイルオーバ閾値未満の場合（ステップＳ８：肯定）、オートスケール判定部１１は、フェイルオーバを実行する（ステップＳ９）。
【００７５】
次に、図１１を参照して、オートスケールの処理の流れについて説明する。図１１は、オートスケールの処理のフローチャートである。図１１は、図１０のステップＳ６で実行される処理の一例にあたる。
【００７６】
オートスケール実行部１２は、各ＶＭホスト４の負荷率などから、仮想マシン４０を新たに起動させるＶＭホスト４を選択する（ステップＳ１１）。
【００７７】
次に、オートスケール実行部１２は、仮想マシン４０の起動を選択したＶＭホスト４に指示する（ステップＳ１２）。指示を受けたＶＭホスト４は、仮想マシン４０を新たに起動する。
【００７８】
次に、オートスケール実行部１２は、新たに起動させた仮想マシン４０の情報を処理割振部３１に通知する（ステップＳ１３）。例えば、オートスケール実行部１２は、ＤＮＳがある場合には新たに起動させた仮想マシン４０の名前を通知する。
【００７９】
処理割振部３１は、新たに起動された仮想マシン４０の情報をオートスケール実行部１２から受信する。そして、処理割振部３１は、既存の仮想マシン４０に新たに起動された仮想マシン４０を加えてロードバランシングを実行する（ステップＳ１４）。
【００８０】
次に、図１２を参照して、フェイルオーバの処理の流れについて説明する。図１２は、フェイルオーバの処理のフローチャートである。図１２は、図１０のステップＳ９で実行される処理の一例にあたる。
【００８１】
フェイルオーバ実行部１４は、各ＶＭホスト４の負荷率などから、仮想マシン４０を新たに起動させるＶＭホスト４を選択する（ステップＳ２１）。
【００８２】
次に、フェイルオーバ実行部１４は、仮想マシン４０の起動を選択したＶＭホスト４に指示する（ステップＳ２２）。指示を受けたＶＭホスト４は、仮想マシン４０を新たに起動する。
【００８３】
次に、フェイルオーバ実行部１４は、障害が発生したと考えられる仮想マシン４０の停止を障害が発生したと考えられる仮想マシン４０が動作するＶＭホスト４に指示する（ステップＳ２３）。指示を受けたＶＭホスト４は、障害が発生したと考えられる仮想マシン４０を停止する。
【００８４】
次に、フェイルオーバ実行部１４は、故障が発生したと考えられる仮想マシン４０の情報及び新たに起動させた仮想マシン４０の情報を処理割振部３１に通知する（ステップＳ２４）。
【００８５】
さらに、フェイルオーバ実行部１４は、故障が発生したと考えられる仮想マシン４０が実行する処理の新たに起動された仮想マシン４０への移管を処理割振部３１に指示する（ステップＳ２５）。
【００８６】
処理割振部３１は、故障が発生したと考えられる仮想マシン４０の情報及び新たに起動させた仮想マシン４０の情報をフェイルオーバ実行部１４から受信する。さらに、処理割振部３１は、故障が発生した仮想マシン４０が実行する処理の新たに起動された仮想マシン４０への移管指示をフェイルオーバ実行部１４から受ける。そして、処理割振部３１は、障害が発生したと考えられる仮想マシン４０に送信したリクエストのうちまだ処理が完了していないリクエストを新たに起動された仮想マシン４０へ再送する。その後、処理割振部３１は、ロードバランシングの対象とする仮想マシン４０の中から障害が発生した仮想マシン４０を除き、さらに、新たに起動された仮想マシン４０を加えてロードバランシングを実行する（ステップＳ２６）。
【００８７】
以上に説明したように、本実施例に係る管理サーバは、ＣＰＵ使用率を用いてオートスケールの実行を判定し、さらにリクエスト割振率を用いてフェイルオーバの実行を判定する。これにより、障害発生時のオートスケールの実行を回避するとともに、一時的な高負荷によるフェイルオーバの実行を回避することができる。したがって、オートスケールの実行及びフェイルオーバの実行の判定の正確性を向上させることができ、システムの信頼性を向上させることができる。
【００８８】
（ハードウェア構成）
次に、図１３を参照して、管理サーバ１、監視サーバ２及びロードバランサ３のハードウェア構成を説明する。図１３は、情報処理装置のハードウェア構成図である。管理サーバ１、監視サーバ２及びロードバランサ３は、例えば、図１３に示す情報処理装置９０により実現される。
【００８９】
情報処理装置９０は、ＣＰＵ９１、ＲＡＭ（Random  Access  Memory）９２、ＤＳＰ（Digital  Signal  Processor）９３、ハードディスク９４、入出力インタフェース９５及びネットワークインタフェース９６を有する。ＣＰＵ９１は、ＲＡＭ９２、ＤＳＰ９３、ハードディスク９４、入出力インタフェース９５及びネットワークインタフェース９６とバスで接続される。
【００９０】
入出力インタフェース９５は、キーボードやマウスなどの入力装置及びモニタなどの出力装置が接続される。操作者は、入力装置を用いて情報処理装置９０への入力を行う。また、操作者は、出力装置を用いて情報の確認を行う。また、ＤＳＰ９３は、加増表示制御を行う。ＤＳＰ９３は、入出力インタフェース９５を介してモニタなどに画像を表示させる。
【００９１】
ネットワークインタフェース９６は、ＬＡＮ５及びネットワーク６へ接続するためのインタフェースである。管理サーバ１、監視サーバ２及びロードバランサ３は、それぞれ、ネットワークインタフェース９６によりＬＡＮ５に接続され、ＬＡＮ５に接続された他の機器と通信を行う。また、ロードバランサ３は、ネットワークインタフェース９６によりネットワーク６に接続され端末装置７と通信を行う。
【００９２】
ハードディスク９４は、補助記憶装置である。管理サーバ１におけるハードディスク９４は、図２に例示したオートスケール判定部１１、オートスケール実行部１２、フェイルオーバ判定部１３及びフェイルオーバ実行部１４の機能を実現するためのプログラムを含む各種プログラムを格納する。また、監視サーバ２におけるハードディスク９４は、図２に例示したＣＰＵ使用率監視部２１及び高負荷判定部２２の機能を実現するプログラムを含む各種プログラムを格納する。また、ロードバランサ３におけるハードディスク９４は、図２に例示した処理割振部３１の機能を実現するプログラムを含む各種プログラムを格納する。
【００９３】
管理サーバ１におけるＣＰＵ９１は、各種プログラムをハードディスク９４から読み出し、主記憶装置であるＲＡＭ９２上に展開して実行する。これにより、管理サーバ１におけるＣＰＵ９１は、図２に例示したオートスケール判定部１１、オートスケール実行部１２、フェイルオーバ判定部１３及びフェイルオーバ実行部１４の機能を実現する。また、監視サーバ２におけるＣＰＵ９１は、各種プログラムをハードディスク９４から読み出し、主記憶装置であるＲＡＭ９２上に展開して実行する。これにより、監視サーバ２におけるＣＰＵ９１は、図２に例示したＣＰＵ使用率監視部２１及び高負荷判定部２２の機能を実現する。また、ロードバランサ３におけるＣＰＵ９１は、各種プログラムをハードディスク９４から読み出し、主記憶装置であるＲＡＭ９２上に展開して実行する。これにより、ロードバランサ３におけるＣＰＵ９１は、図２に例示した処理割振部３１の機能を実現する。
【符号の説明】
【００９４】
１  管理サーバ
２  監視サーバ
３  ロードバランサ
４  ＶＭホスト
５  ＬＡＮ
６  ネットワーク
７  端末装置
１１  オートスケール判定部
１２  オートスケール実行部
１３  フェイルオーバ判定部
１４  フェイルオーバ実行部
２１  ＣＰＵ使用率監視部
２２  高負荷判定部
３１  処理割振部
４０〜４３  仮想マシン
【図１】
2018180591.tif 000003
【図２】
2018180591.tif 000004
【図３】
2018180591.tif 000005
【図４】
2018180591.tif 000006
【図５】
2018180591.tif 000007
【図６】
2018180591.tif 000008
【図７】
2018180591.tif 000009
【図８】
2018180591.tif 000010
【図９】
2018180591.tif 000011
【図１０】
2018180591.tif 000012
【図１１】
2018180591.tif 000013
【図１２】
2018180591.tif 000014
【図１３】
2018180591.tif 000015