(57)【要約】【課題】情報処理装置、フェールオーバ時間測定方法及びフェールオーバ時間測定プログラムに関し、不要なリソースの使用を防止する。【解決手段】処理が割り当てられた複数の業務サーバ２を監視する情報処理装置１において、フェールオーバテストの実施条件を満たした場合、複数の業務サーバの数と負荷に基づいて、フェールオーバテストにおいてフェールオーバ可能な業務サーバを決定する業務サーバ決定部１０と、決定された業務サーバによるフェールオーバテストのフェールオーバ時間の測定依頼を行う測定依頼部１１とを有する。【選択図】図３
2018106517.tif 000002
【特許請求の範囲】
【請求項１】
処理が割り当てられた複数の業務サーバを監視する情報処理装置において、
フェールオーバテストの実施条件を満たした場合、
前記複数の業務サーバの数と負荷に基づいて、前記フェールオーバテストにおいてフェールオーバ可能な業務サーバを決定する業務サーバ決定部と、
決定された前記業務サーバによる前記フェールオーバテストのフェールオーバ時間の測定依頼を行う測定依頼部とを、
有することを特徴とする情報処理装置。
【請求項２】
前記業務サーバが停止した場合、測定された前記フェールオーバ時間内においてオートスケールの処理を保留する保留部を更に有することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
オートフェールオーバが発動された際、障害が発生した業務サーバの数を判定する判定部と、
判定された前記業務サーバの数と、前記フェールオーバテストのフェールオーバ時間に基づいて、前記オートスケールの処理を保留させる前記フェールオーバ時間を算出する算出部とを更に有し、
前記保留部は、算出された前記フェールオーバ時間内において前記オートスケールの処理を保留することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記フェールオーバテストの実施条件は、
前回のフェールオーバテストから業務サーバの数が変化したこと、又は前回のフェールオーバテストから所定の時間が経過したことの少なくとも一方であることを特徴とする請求項１乃至３のいずれかに記載の情報処理装置。
【請求項５】
処理が割り当てられた複数の業務サーバを監視する情報処理装置によるフェールオーバ時間測定方法おいて、
フェールオーバテストの実施条件を満たした場合、
前記複数の業務サーバの数と負荷に基づいて、前記フェールオーバテストにおいてフェールオーバ可能な業務サーバを決定し、
決定された前記業務サーバによる前記フェールオーバテストのフェールオーバ時間の測定依頼を行う、
ことを特徴とするフェールオーバ時間測定方法。
【請求項６】
処理が割り当てられた複数の業務サーバを監視する情報処理装置によって実行されるフェールオーバ時間測定プログラムおいて、
フェールオーバテストの実施条件を満たした場合、
前記複数の業務サーバの数と負荷に基づいて、前記フェールオーバテストにおいてフェールオーバ可能な業務サーバを決定し、
決定された前記業務サーバによる前記フェールオーバテストのフェールオーバ時間の測定依頼を行う、
処理を前記情報処理装置のコンピュータに実行させることを特徴とするフェールオーバ時間測定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
情報処理装置、フェールオーバ時間測定方法及びフェールオーバ時間測定プログラムに関する。
【背景技術】
【０００２】
ロードバランサ（Load Balancer（ＬＢ））によって負荷分散される業務モデルにおいて、業務サーバの負荷が高くなった場合に自動的に業務の分散先の業務サーバを追加するオートスケール技術が存在する（下記の特許文献１を参照）。
【０００３】
また、ロードバランサによって負荷分散される業務モデルにおいて、業務サーバがダウンするとダウンした業務サーバを他のＶＭホストにおいて再起動させるオートフェールオーバ技術が存在する。
【０００４】
また、上記各技術を組み合わせた処理分散システムも存在する。この場合、オートスケールとオートフェールオーバが同時に実施される場合がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−５８００５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
各技術が同時適用される業務モデルの場合、業務サーバでは、他の業務サーバの状態を認識することができないため、負荷が高くなった理由が、業務量が増加したからなのか、他の業務サーバがダウンしたからなのか判断できない。業務サーバは、負荷が高くなると負荷オーバ通知を行うため、オートスケールを発動させるしかできなかった。
【０００７】
一方、管理サーバでは、業務サーバのダウンを認識できるため、オートフェールオーバの発動は可能である。しかし、業務サーバの動作については直接関与していないため、業務サーバのオートスケール発動を認識することができない。
【０００８】
そのため、オートスケールとオートフェールオーバの発動が重なって、不要な業務サーバが生じてしまう場合があり、不要なリソースの使用や不要な業務サーバの停止処理などが生じてしまうという問題があった。
【０００９】
この問題を解決する方法として、オートフェールオーバの完了の時間を待ってからオートスケールを実施する方法が考えられる。
【００１０】
しかし、この方法では、オートフェールオーバ完了時間は固定値であり、現在（オートフェールオーバ時点）の業務サーバの負荷を考慮していないため、オートフェールオーバに時間がかかると、オートフェールオーバが完了する前にオートスケールが発動されることがある。
【００１１】
そこで、本発明の１つの側面では、不要なリソースの使用を防止することを目的とする。
【課題を解決するための手段】
【００１２】
態様の一例では、処理が割り当てられた複数の業務サーバを監視する情報処理装置において、フェールオーバテストの実施条件を満たした場合、複数の業務サーバの数と負荷に基づいて、フェールオーバテストにおいてフェールオーバ可能な業務サーバを決定する業務サーバ決定部と、決定された業務サーバによる前記フェールオーバテストのフェールオーバ時間の測定依頼を行う測定依頼部とを、有する。
【発明の効果】
【００１３】
不要なリソースの使用を防止することが可能となる。
【図面の簡単な説明】
【００１４】
【図１Ａ】各実施形態の情報処理装置を含む処理分散システムの構成を示す構成図である。
【図１Ｂ】処理分散システムの情報処理装置に接続する業務サーバ及び管理サーバの機能ブロックを示す図である。
【図２】業務サーバ２における負荷通知及びオートスケール依頼の送信処理を示すフローチャートである。
【図３】第１の実施形態の情報処理装置の機能ブロック図である。
【図３Ａ】第１の実施形態の情報処理装置の機能ブロック図である。
【図４】業務サーバ負荷情報テーブルの一例を示す図である。
【図５】フェールオーバテスト情報テーブルの一例を示す図である。
【図６】各実施形態の情報処理装置のフェールオーバテスト依頼を含む処理を示すフローチャートである。
【図７】フェールオーバ終了後にオートスケールしないケースとオートスケールするケースについて説明するための図である。
【図８】第２の実施形態の情報処理装置の機能ブロック図である。
【図９】拡張フェールオーバテスト情報テーブルの一例を示す図である。
【図１０】第２の実施形態の情報処理装置におけるオートスケールを保留する際のフェールオーバ時間の算出の処理を示すフローチャートである。
【図１１】各実施形態における情報処理装置を実現するためのハードウェア構成の一例を示す図である。
【図１２】オートスケール技術について説明するための図である。
【図１３】オートフェールオーバ技術について説明するための図である。
【図１４】各技術を組み合わせた処理分散システムを示す図である。
【発明を実施するための形態】
【００１５】
以下、本発明を実施するための形態について図面を参照しながら説明する。図１Ａは第１の実施形態の情報処理装置１を含む処理分散システムの構成を示す構成図である。図１Ｂは処理分散システムの情報処理装置１に接続する業務サーバ２及び管理サーバ３の機能ブロックを示す図である。
【００１６】
処理分散システムは、図１Ａに示すように、情報処理装置（監視サーバとも言う）１、業務サーバ２（２１、２２、２３、２４）、管理サーバ３、クライアント４（４ａ、４ｂ、４ｃ）、ロードバランサ５、業務サーバ２が配置されたＶＭホスト６（６ａ、６ｂ、６ｃ）から構成されている。なお、業務サーバの数、クライアントの数、ＶＭホストの数は上記に限定されるものではない。クライアント４は、所望の処理のリクエスト（業務とも言う）を業務サーバ２へ送信し、リクエストにより実行された処理結果を業務サーバ２から受信する。このとき、ロードバランサ５は、業務サーバ２の負荷が偏らないように、クライアント４からのリクエストを各業務サーバ２へ分散させる。このようにして、処理分散システムのリソースを効率よく使用している。
【００１７】
第１の実施形態の情報処理装置１の詳細については後述する。
業務サーバ２は、クライアント４からのリクエストを処理するものであり、ＶＭホスト６内に配置されており、図１Ｂに示すように、負荷情報通知部２ａ、オートスケール依頼部２ｂを有する。負荷情報通知部２ａは、図１Ａに示すように、業務サーバ２の負荷情報を含む負荷通知を情報処理装置１へ送信する。このとき、負荷情報通知部２ａは、業務サーバ２を識別するための識別情報を負荷通知に含める。オートスケール依頼部２ｂは、業務サーバ２の負荷が所定の負荷を超えた場合に、新たな業務サーバ２の追加作成をするオートスケールの依頼を情報処理装置１へ送信する。
【００１８】
業務サーバ２における負荷通知及びオートスケール依頼の送信処理のフローについて図２を用いて説明する。負荷情報通知部２ａは、一定時間が経過したか否かを判断し（ステップＳ２０１）、一定時間を経過した場合（ステップＳ２０１でＹｅｓ）、負荷通知を情報処理装置１へ送信する（ステップＳ２０２）。一方、一定時間を経過していない場合（ステップＳ２０１でＮｏ）、ステップＳ２０１へ戻る。オートスケール依頼部２ｂは、業務サーバ２の負荷が所定の負荷を超えたか否かを判断し（ステップＳ２０３）、超えた場合（ステップＳ２０３でＹｅｓ）、オートスケール依頼を情報処理装置１へ送信する（ステップＳ２０４）。一方、所定の負荷を超えない場合（ステップＳ２０３でＮｏ）には、ステップＳ２０１へ戻る。
【００１９】
管理サーバ３は、図１Ａに示すように、業務サーバ２の停止（ダウン）を検知するとフェールオーバを実行するとともに、情報処理装置１からの業務サーバの追加作成の依頼に基づいて業務サーバを追加作成する。フェールオーバとは、業務サーバがダウンするとダウンした業務サーバを他のＶＭホストにおいて再起動させることを言う。すなわち、フェールオーバを実行するとは、管理サーバ３が業務サーバのダウンを検知すると、ダウンした業務サーバを他のＶＭホスト内で復旧させ、起動させることを言う。
【００２０】
管理サーバ３は、図１Ｂに示すように、ダウン検出部３ａ、フェールオーバ実行部３ｂ、業務サーバ追加実行部３ｃを有する。ダウン検出部３ａは、業務サーバ２を監視しており、例えば業務サーバ２の処理負荷の限界を超えるなどして業務サーバ２が停止した場合に業務サーバ２の停止を検出する。フェールオーバ実行部３ｂは、情報処理装置１からのフェールオーバテストの依頼に基づいてフェールオーバテストを実行したり、業務サーバ２のダウン検出によりフェールオーバを実行したりする。フェールオーバテストとは、フェールオーバが開始されて終了するまでにかかる時間、すなわちフェールオーバ時間を事前に測定するために意図的に行うフェールオーバのことを言う。業務サーバ追加実行部３ｃは、情報処理装置１からの業務サーバ追加作成の依頼に基づいて業務サーバを追加作成する。
【００２１】
次に、第１の実施形態の情報処理装置１について図３を用いて説明する。図３は第１の実施形態の情報処理装置１の機能ブロック図である。
【００２２】
第１の実施形態は、複数の業務サーバの負荷を考慮して、事前にフェールオーバ時間を測定させ、測定されたフェールオーバ時間内ではオートスケールを発動させないようにした情報処理装置である。具体的には、フェールオーバテストの実施条件を満たした場合、業務サーバ決定部１０が複数の業務サーバ２の数と負荷に基づいて、フェールオーバテストにおいてフェールオーバ可能な業務サーバを決定し、測定依頼部１１が決定された業務サーバによるフェールオーバテストのフェールオーバ時間の測定依頼を管理サーバ３へ行う情報処理装置である。これにより、無駄に業務サーバが生成されないため、リソースを効率的に使用することが可能となる。なお、フェールオーバ可能な業務サーバとは、フェールオーバテストにおいてダウンさせることが可能な業務サーバのことを言う。
【００２３】
第１の実施形態の情報処理装置１は他の構成要素を更に含み、その構成を図３Ａに示す。
【００２４】
第１の実施形態の情報処理装置１は、負荷情報受信部１２、負荷情報記録部１３、フェールオーバテスト依頼部１４、オートスケール実行判定部１５、オートスケール実行依頼部（保留部とも言う）１６を有する。これらの機能ブロックによる処理は、例えばＣｅｎｔｒａｌ Ｐｒｏｃｅｓｓｏｒ Ｕｎｉｔ（ＣＰＵ、中央演算処理装置）１１１がＨａｒｄ Ｄｉｓｋ Ｄｒｉｖｅ（ＨＤＤ）１１２などに記憶された処理プログラムを実行する処理である。なお、情報処理装置１の構成は上記に限定されるものでなく、他の構成を含むものであってもよい。
【００２５】
負荷情報受信部１２は業務サーバ２からの負荷通知を受信する。負荷通知には業務サーバ２の業務負荷がどの程度であるかを示す負荷情報及び負荷通知を送信した業務サーバ２を識別するための識別情報が含まれている。これにより、負荷通知を送信した業務サーバ２を特定することが可能となる。
【００２６】
また、負荷情報受信部１２は、業務サーバ２の追加作成を依頼するオートスケール依頼を業務サーバ２から受信する。オートスケール依頼にはオートスケール依頼を送信した業務サーバ２を識別するための識別情報が含まれている。これにより、オートスケール依頼をした業務サーバ２を特定することが可能となる。
【００２７】
また、負荷情報受信部１２は、管理サーバ３によるフェールオーバテストの測定結果を管理サーバ３から受信する。これにより、オートスケールを保留する時間の情報を取得することができる。
【００２８】
負荷情報記録部１３は受信した負荷通知に含まれる負荷情報を記録する。具体的には、負荷情報記録部１３は、受信した負荷通知に基づいて、業務サーバ名と負荷情報（負荷値）を図４に示す業務サーバ負荷情報テーブルに記録する。業務サーバ負荷情報テーブルとは、それぞれの業務サーバの負荷値を記録するとともに、情報処理装置１に対して業務サーバ２からオートスケール通知があったか否かを記録するテーブルである。
【００２９】
負荷情報（例えば、許容負荷に対して７０％の負荷がかかっている情報）を含む負荷通知をサーバ１という名称の業務サーバから受信すると、負荷情報記録部１３は、図４に示すように、業務サーバ名にサーバ１を記録し、対応する負荷値の欄に７０％という情報を記録する。他の業務サーバ２から負荷通知を受信した場合も同様にして記録される。
【００３０】
また、負荷情報記録部１３は、業務サーバ２からのオートスケール依頼を負荷情報受信部１２が受信すると、図４に示す業務サーバ負荷情報テーブルのオートスケール通知及びオートスケール依頼受理時間の欄に記録する。例えば、オートスケール依頼をサーバ２という名称の業務サーバから１２：１０：００に受信すると、負荷情報記録部１３は、業務サーバ名がサーバ２のオートスケール通知の欄にｏｎを記録し、オートスケール依頼受理時間の欄に１２：１０：００を記録する。なお、オートスケール依頼を受信していない場合には、オートスケール通知の欄はｏｆｆのままで、オートスケール依頼受理時間の欄は０のままである。
【００３１】
また、負荷情報記録部１３は、フェールオーバテスト依頼部１４によって管理サーバ３に対して行われるフェールオーバテスト依頼に基づくフェールオーバテストの測定結果を図５に示すフェールオーバテスト情報テーブルに記録する。フェールオーバテスト情報テーブルには、フェールオーバテスト開始時間、フェールオーバテスト終了時間、現業務サーバ数、前回フェールオーバテスト実施サーバ数の項目がある。フェールオーバテスト開始時間はフェールオーバテストが開始された時間であり、フェールオーバテスト終了時間はフェールオーバテストが終了した時間である。現業務サーバ数は、フェールオーバテスト開始時点で分散処理システムに存在する業務サーバの数であり、前回フェールオーバテスト実施サーバ数は前回のフェールオーバテストを行う際にダウンさせた業務サーバの数、すなわちフェールオーバさせた業務サーバの数である。
【００３２】
フェールオーバテスト依頼部１４は、業務サーバ決定部１０と測定依頼部１１を有し、測定依頼部１１はフェールオーバテストを実施するための実施条件を満たすと判断した場合に、フェールオーバ時間の測定をさせるためにフェールオーバテスト依頼を管理サーバ３へ送信する。以下でフェールオーバテスト依頼を実施するための実施条件について説明する。
【００３３】
前回のフェールオーバから環境が変わらない場合にフェールオーバテストを実施してもフェールオーバ時間の精度の向上は見込めない。そのため、例えば以下の２つの条件のうち、少なくとも一方を満たす場合にフェールオーバテスト依頼を実施する。なお、実施条件はこれに限られるものではなく、他の条件を加えるようにしてもよい。
【００３４】
１つ目は、前回のフェールオーバテストから業務サーバ２の数が変化している場合である。具体的には、図５に示すフェールオーバテスト情報テーブルの直近の現業務サーバ数の値がフェールオーバテストを実施しようとする際に存在する業務サーバの数と異なる場合である。業務サーバ数の変化は業務量の変化とみなすことができるためである。
【００３５】
２つ目は、前回のフェールオーバテストから長時間が経過している場合、例えば５日を経過している場合である。具体的には、図５に示すフェールオーバテスト情報テーブルの直近のフェールオーバテスト終了時間に記載された時間から所定の時間が経過している場合である。業務サーバ数が変化しなくても周辺環境が変化している可能性があるためである。
【００３６】
なお、上記条件を満たす場合であっても、測定依頼部１１は、フェールオーバテスト依頼を実施する際に決定するダウンさせる業務サーバの数が１つもない場合にはフェールオーバテスト依頼を管理サーバ３へ送信しない。
【００３７】
ここで、フェールオーバテスト依頼を実施する際にフェールオーバテストでダウンさせる業務サーバ数の決定方法について説明する。
【００３８】
ダウンさせる（フェールオーバさせる）業務サーバを決定するのは、フェールオーバにかかる時間をあらかじめ測定するフェールオーバテストを実施するためである。なお、フェールオーバテストを実施する際、より多くの業務サーバを同時にダウンさせたほうが、実際のフェールオーバにかかる時間の測定精度は向上する。
【００３９】
しかし、同時に複数の業務サーバ２をダウンさせると、生存する業務サーバ２の負荷が高くなりすぎてしまうため、適切な数の業務サーバ２をダウンさせる必要がある。そのため、負荷上昇率を加味した業務サーバ数を算出してフェールオーバテスト依頼を実施する。以下に具体的な業務サーバ数の決定方法について説明する。
【００４０】
例えば、オートスケールを発動した場合の負荷上昇率（オートスケール発動負荷）が１００％であり、フェールオーバテストを発動した場合の負荷上昇率（フェールオーバ実施負荷）が８０％であるとする。なお、フェールオーバ実施負荷は、ＣＰＵの使用率、クライアント４からのリクエスト数をリクエスト受付可能数で割った値などに基づいて算出される。
【００４１】
この場合、フェールオーバテストを実施する際の業務サーバ数は、
業務サーバ数−（（業務サーバ平均負荷×業務サーバ数）／フェールオーバ実施負荷）
によって業務サーバ決定部１０により算出される。なお、業務サーバ平均負荷も、業務サーバ２から受信する負荷情報に基づいて業務サーバ決定部１０によって算出される。
【００４２】
例えば、フェールオーバ実施負荷が８０％、業務サーバ平均負荷が６０％、業務サーバ数が５の場合、上記式に当てはめると、フェールオーバテストを実施する業務サーバの数は１台となる。また、例えば、フェールオーバ実施負荷が８０％、業務サーバ平均負荷が４０％、業務サーバ数が８の場合、上記式に当てはめると、フェールオーバテストを実施する業務サーバの数は４台となる。上記２つの例では、フェールオーバテストを実施する業務サーバ数が１台以上であったが０台という場合もある。この場合には、測定依頼部１１はフェールオーバテスト依頼を管理サーバ３へ送信しない。
【００４３】
上記方法により、フェールオーバテストの際にダウンさせる業務サーバ数を決定しているが、決定方法は上記方法に限られるものではなく、他の方法で決定するようにしてもよい。
【００４４】
情報処理装置１の構成の説明に戻る。
オートスケール実行判定部１５は、業務サーバ２からオートスケール依頼があったか否かを判断し、オートスケール依頼があった場合、所定の条件を満たすか否かを判断する。所定の条件とは、今回のオートスケール依頼をした業務サーバ２によって最初にされたオートスケール依頼から今回のオートスケール依頼までの時間（継続時間）があらかじめフェールオーバテストによって測定された時間αを超えていないという条件である。
【００４５】
オートスケール実行依頼部１６は、オートスケール実行判定部１５によってオートスケール依頼があって所定の条件を満たさない、すなわち継続時間が時間αを超えていると判断された場合、管理サーバ３に対して業務サーバの追加作成のための追加作成依頼を行う。
【００４６】
一方、オートスケール実行判定部１５によって所定の条件を満たしている、すなわち継続時間が時間αを超えていないと判断された場合、オートスケール実行依頼部１６は、オートスケールによる業務サーバ２の追加作成の依頼を管理サーバ３に送信することを保留する。
【００４７】
次に、第１の実施形態の情報処理装置１のフェールオーバテスト依頼を含む処理フローについて図６を用いて説明する。この処理は例えば、ＣＰＵ１１１がＨＤＤ１１２などに記憶された処理プログラムを実行する処理である。
【００４８】
負荷情報受信部１２は、負荷通知やオートスケール依頼を業務サーバ２から受信する（ステップＳ６０１）。負荷情報受信部１２が負荷通知を受信した場合には、負荷情報記録部１３は、負荷通知に含まれる業務サーバ２の識別情報を業務サーバ負荷情報テーブルの業務サーバ名の欄に、負荷通知に含まれる負荷情報を負荷値の欄にそれぞれ記録する（ステップＳ６０２）。
【００４９】
オートスケール実行判定部１５は、業務サーバ２からオートスケール依頼があったか否かを判断する（ステップＳ６０３）。オートスケール依頼があった場合（ステップＳ６０３でＹｅｓ）、オートスケール実行依頼部１６は、継続時間があらかじめフェールオーバテストによって測定された時間αを超えていないか否かを判断する（ステップＳ６０４）。継続時間が時間αを超えていない場合（ステップＳ６０４でＹｅｓ）、すなわちオートスケールを保留する場合、オートスケール実行依頼部１６はオートスケール依頼をせずに処理を終了させる。
【００５０】
一方、継続時間が時間αを超えている場合（ステップＳ６０４でＮｏ）、オートスケール実行依頼部１６は、オートスケールによる業務サーバ２を追加作成するためにオートスケール依頼を管理サーバ３へ送信し（ステップＳ６０５）、処理を終了させる。
【００５１】
一方、ステップＳ６０３において、オートスケール依頼がないと判断された場合（ステップＳ６０３でＮｏ）、フェールオーバテスト依頼部１４は、現時点における業務サーバ数がフェールオーバテスト情報テーブルの現業務サーバ数の値から変化しているか否かを判断する（ステップＳ６０６）。変化していないと判断された場合（ステップＳ６０６でＮｏ）、フェールオーバテスト依頼部１４は、フェールオーバテスト情報テーブルの直近のフェールオーバテスト終了時間に記載された時間から長時間（例えば、５日）を経過しているか否かを判断する（ステップＳ６０７）。長時間を経過していない場合（ステップＳ６０７でＮｏ）、すなわち前回のフェールオーバテストから環境が変わらない場合には、フェールオーバテスト依頼をせずに処理を終了させる。一方、長時間を経過している場合（ステップＳ６０７でＹｅｓ）、ステップＳ６０８へ進む。なお、ステップＳ６０６とステップＳ６０７の処理は、順番を入れ替えて行うようにしてもよい。
【００５２】
ステップＳ６０６において、現時点における業務サーバ数が前回から変化していると判断された場合（ステップＳ６０６でＹｅｓ）、フェールオーバテスト情報テーブルに新たな記録欄を設け、現時点における業務サーバ数を現業務サーバ数の欄に記録する（ステップＳ６０８）。
【００５３】
フェールオーバテスト依頼部１４は、フェールオーバテストを実施する際にダウンさせる業務サーバ数を算出し、算出した業務サーバ数を上記新たに記録された現業務サーバ数に対応する前回フェールオーバテスト実施サーバ数の欄に記録する（ステップＳ６０９）。なお、ダウンさせる業務サーバ数を算出する際に用いられる業務サーバ平均負荷についても、ステップＳ６０９においてフェールオーバテスト依頼部１４によって算出される。
【００５４】
フェールオーバテスト依頼部１４は、算出されたダウンさせる業務サーバ数が０より多いか否かを判断する（ステップＳ６１０）。ダウンさせる業務サーバ数がない場合（ステップＳ６１０でＮｏ）、フェールオーバテストができないため、処理を終了させる。
【００５５】
一方、ダウンさせる業務サーバ数が０より多い場合（ステップＳ６１０でＹｅｓ）、フェールオーバテスト依頼部１４は、フェールオーバテストの開始時間を上記新たに記録された現業務サーバ数に対応するフェールオーバテスト開始時間の欄に記録し、カウントを開始する（ステップＳ６１１）。フェールオーバテスト依頼部１４は、業務サーバ２の停止依頼と同時にフェールオーバテストの依頼、すなわちフェールオーバテストによるフェールオーバ時間の測定依頼を管理サーバ３へ送信する（ステップＳ６１２）。
【００５６】
フェールオーバテスト依頼部１４は、フェールオーバテスト依頼に基づいて管理サーバ３によって行われたフェールオーバ時間（時間α）の測定の結果を管理サーバ３から受信し、ダウンさせた業務サーバの起動依頼を管理サーバ３に対して送信する（ステップＳ６１３）。フェールオーバテスト依頼部１４は、測定結果の受信に基づいてフェールオーバテストの時間のカウントを停止し、停止時の時間を上記フェールオーバテスト開始時間に対応するフェールオーバテスト終了時間の欄に記録し（ステップＳ６１４）、処理を終了させる。
【００５７】
次に、フェールオーバ終了後にオートスケールしないケースとオートスケールするケースについて図７を用いて説明する。ここでは、管理サーバ３がフェールオーバテストを実施した際に測定されたフェールオーバ時間が時間αであるとする。また、フェールオーバテストが開始される時点において業務サーバ数が３台であり、フェールオーバテストが実施される際にダウンさせる業務サーバ数が１台であるとする。すなわち、フェールオーバテストが実施されている間は２台の業務サーバ２が稼働している。フェールオーバテストが終了すると、ダウンしていた業務サーバが起動されるため、フェールオーバテスト終了後には業務サーバはフェールオーバテスト前の３台の稼働となる。
【００５８】
この状況において、フェールオーバ終了後にオートスケールしないケース（ケース１）について説明する。情報処理装置１は、あらかじめ測定されたフェールオーバ時間α内ではオートスケール依頼を受信してもオートスケールの実施を保留する。フェールオーバ時間αが経過した後、情報処理装置１はオートスケール依頼を業務サーバ２から受信しないため、情報処理装置１はフェールオーバ発生前の業務サーバ数３台で業務処理を行うことができると判断する。そのため、フェールオーバ終了後にオートスケールする必要はなく、フェールオーバ発生前の業務サーバ数３台が適切な業務サーバ数となる。
【００５９】
一方、フェールオーバ終了後にオートスケールするケース（ケース２）について説明する。情報処理装置１は、ケース１同様、あらかじめ測定されたフェールオーバ時間α内ではオートスケール依頼を受信してもオートスケールの実施を保留する。しかし、フェールオーバ時間αを経過した後も、情報処理装置１がオートスケール依頼を業務サーバ２から受信するため、情報処理装置１はフェールオーバ発生前の業務サーバ数３台では業務処理を行うことができないと判断する。そのため、フェールオーバ終了後にオートスケールする必要があり、フェールオーバ発生前の業務サーバ数３台から１台追加させる依頼を管理サーバ３へ送信する。これにより、業務サーバが新たに追加され、適切な業務サーバ数は４台となる。
【００６０】
次に、第２の実施形態における情報処理装置について説明する。第２の実施形態における情報処理装置８０は、図８に示すように、第１の実施形態の情報処理装置１と同様の構成要素を有するとともに、判定部１７及び算出部１８を更に有する。
【００６１】
第２の実施形態の情報処理装置８０は、判定部１７がフェールオーバが発動している間にダウンした業務サーバの台数を判定し、算出部１８が判定した値に基づいてフェールオーバ時間を算出する。具体的には、第２の実施形態の情報処理装置８０の算出部１８が、ダウンした業務サーバ数と、図５に示すフェールオーバテスト情報テーブルを拡張した図９に示す拡張フェールオーバテスト情報テーブルとを用いてフェールオーバ時間を算出する。算出されたフェールオーバ時間内において、オートスケール実行依頼部１６はオートスケールの実施を保留する。
【００６２】
拡張フェールオーバテスト情報テーブルについて図９を用いて説明する。拡張フェールオーバテスト情報テーブルは、図５に示すフェールオーバテスト情報テーブルの内容に、１ＶＭ当たりのフェールオーバ時間の項目が付加されたテーブルである。なお、図５に示すテーブルの内容は図９に示すテーブルに包含されるため、１つのテーブルにまとめてもよい。
【００６３】
例えば、フェールオーバテスト開始時間が１１：００：００のフェールオーバテストでは、フェールオーバテスト終了時間が１１：１０：００であるため、フェールオーバ時間は差分の１０：００となる。このフェールオーバテストでは、フェールオーバテスト実施のためにダウンさせた業務サーバ数（前回フェールオーバテスト実施サーバ数）は１台である。よって、１ＶＭ当たりのフェールオーバ時間は、フェールオーバ時間１０：００を前回フェールオーバテスト実施サーバ数１台で割ることで求められ、１０：００となる。
【００６４】
また、例えば、フェールオーバテスト開始時間が１４：００：００のフェールオーバテストでは、フェールオーバテスト終了時間が１４：２５：００であるため、フェールオーバ時間は差分の２５：００となる。このフェールオーバテストでは、フェールオーバテスト実施のためにダウンさせた業務サーバ数（前回フェールオーバテスト実施サーバ数）は５台である。よって、１ＶＭ当たりのフェールオーバ時間は、フェールオーバ時間２５：００を前回フェールオーバテスト実施サーバ数５台で割ることで求められ、５：００となる。
【００６５】
第２の実施形態の情報処理装置８０による拡張フェールオーバテスト情報テーブルを用いたフェールオーバ時間の算出について具体的に説明する。第２の実施形態の情報処理装置８０は、フェールオーバが発動している間にダウンした業務サーバの台数を判定し、判定された台数と、拡張フェールオーバテスト情報テーブルの前回フェールオーバテスト実施サーバ数の各値とを比較する。
【００６６】
比較した結果、フェールオーバが発動している間にダウンした業務サーバの台数（例えば、２台）と一致する値がある場合、該当するフェールオーバテストのフェールオーバ時間を利用する。この例では、拡張フェールオーバテスト情報テーブルの上から２段目のフェールオーバテストの結果を利用できるため、フェールオーバ時間は１６：００となる。
【００６７】
また、比較した結果、フェールオーバが発動している間にダウンした業務サーバの台数（例えば、４台）と一致する値はないが、ダウンした業務サーバ数が前回フェールオーバテスト実施サーバ数の範囲（このテーブル例では、１から５台の範囲）内にある場合がある。その場合には、フェールオーバテストのフェールオーバ時間の平均値を利用する。この例では、ダウンした業務サーバの台数が４台であるが、前回フェールオーバテスト実施サーバ数が３台と５台のフェールオーバテストの結果しかない。そのため、３台の場合の１ＶＭ当たりのフェールオーバ時間７：００と、５台の場合の１ＶＭ当たりのフェールオーバ時間５：００との平均をとる。すなわち、平均値は６：００となり、この平均値にダウンした業務サーバの台数４を掛け合わせた２４：００をフェールオーバ時間とする。
【００６８】
また、比較した結果、フェールオーバが発動している間にダウンした業務サーバの台数（例えば、６台）と一致する値はなく、更にダウンした業務サーバ数が前回フェールオーバテスト実施サーバ数の範囲（このテーブル例では、１から５台の範囲）外にある場合がある。その場合には、フェールオーバテストのフェールオーバ時間の最大値を元に算出する。この例では、ダウンした業務サーバの台数が６台であるが、前回フェールオーバテスト実施サーバ数の最大は５台であるため範囲外となる。そのため、フェールオーバ時間が最大のフェールオーバテストの結果、すなわち前回フェールオーバテスト実施サーバ数が５台の場合の１ＶＭ当たりのフェールオーバ時間５：００を利用する。この場合、フェールオーバ時間５：００にダウンした業務サーバの台数６を掛け合わせた３０：００をフェールオーバ時間とする。
【００６９】
次に、第２の実施形態の情報処理装置８０におけるオートスケールを保留するフェールオーバ時間の算出の処理フローについて図１０を用いて説明する。この処理は例えば、ＣＰＵ１１１がＨＤＤ１１２などに記憶された処理プログラムを実行する処理である。
【００７０】
フェールオーバテスト依頼部１４は、管理サーバ３によってフェールオーバの発動が認識されると、フェールオーバした業務サーバ数、すなわちダウンした業務サーバ数を判定する（ステップＳ１００１）。フェールオーバテスト依頼部１４は、判定された業務サーバ数に一致するフェールオーバテスト実施サーバ数が過去に行われたフェールオーバテストの結果にあるか否かを判断する（ステップＳ１００２）。一致するフェールオーバテストの結果がある場合（ステップＳ１００２でＹｅｓ）、フェールオーバテスト依頼部１４は、一致するフェールオーバテスト結果のフェールオーバテスト時間を抽出し、抽出したフェールオーバテスト時間をフェールオーバ時間とする（ステップＳ１００３）。
【００７１】
一方、一致するフェールオーバテストの結果がない場合（ステップＳ１００２でＮｏ）、フェールオーバテスト依頼部１４は、判定された業務サーバ数が、過去に行われたフェールオーバテストのフェールオーバテスト実施サーバ数の範囲内であるか否かを判断する（ステップＳ１００４）。範囲内である場合（ステップＳ１００４でＹｅｓ）、フェールオーバテスト依頼部１４は、範囲内のテスト結果のフェールオーバテスト時間を用いて平均値を算出し、算出された平均値を用いてフェールオーバ時間を算出する（ステップＳ１００５）。
【００７２】
一方、範囲内でない場合（ステップＳ１００４でＮｏ）、フェールオーバテスト依頼部１４は、フェールオーバテスト時間の最大値を元にフェールオーバ時間を算出する（ステップＳ１００６）。フェールオーバテスト依頼部１４は、算出されたフェールオーバ時間内においてオートスケールの発動を保留（中止）する（ステップＳ１００７）。
【００７３】
次に、各実施形態における情報処理装置を実現するためのハードウェア構成の一例について図１１を用いて説明する。ハードウェア構成は、例えば、ＣＰＵ１１１、ＨＤＤ１１２、Ｒａｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ（ＲＡＭ）１１３、グラフィック処理装置１１４、入力Ｉｎｔｅｒｆａｃｅ（Ｉ／Ｆ）１１５、書き込み／読み取り部１１６、ＬＡＮ Ｉ／Ｆ１１７、バス１１８を備えている。ＣＰＵ１１１、ＨＤＤ１１２、ＲＡＭ１１３、グラフィック処理装置１１４、入力Ｉ／Ｆ１１５、書き込み／読み取り部１１６、ＬＡＮ Ｉ／Ｆ１１７は、バス１１８を介して互いに接続されている。
【００７４】
ＣＰＵ１１１は、バス１１８を介して、ＨＤＤ１１２などに格納される情報処理装置の各種処理を行うためのプログラム（例えば、情報処理プログラムなど）を読み込む。ＣＰＵ１１１、読み込んだプログラムをＲＡＭ１１３に一時的に格納し、そのプログラムにしたがって各種処理を行う。
【００７５】
ＨＤＤ１１２には、情報処理装置の各種処理を行うためのアプリケーションプログラムや、情報処理装置の処理に必要なデータなどが格納される。
【００７６】
ＲＡＭ１１３は、揮発性メモリであって、ＣＰＵ１１１に実行させるためのＯｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ（ＯＳ）プログラムやアプリケーションプログラムの一部が一時的に格納される。また、ＲＡＭ１１３には、ＣＰＵ１１１による処理に必要な各種データが格納される。
【００７７】
グラフィック処理装置１１４は、モニタなどと接続可能であって、モニタに表示させる情報を生成するものである。
【００７８】
入力Ｉ／Ｆ１１５は、マウスやキーボードなどを介して入力される情報を受け付けるものである。
【００７９】
書き込み／読み取り部１１６は、Ｕｎｉｖｅｒｓａｌ Ｓｅｒｉａｌ Ｂｕｓ（ＵＳＢ）メモリなどの可搬型記憶媒体に情報を書き込んだり、可搬型記憶媒体から情報と読み取ったりするものである。
【００８０】
ＬＡＮ Ｉ／Ｆ１１７は、外部（例えば、Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙ  ｏｆ    Ｉｎｅｘｐｅｎｓｉｖｅ Ｄｉｓｋｓ（ＲＡＩＤ）装置など）とネットワークを介して
データの送受信を行うものである。
バス１１８は、各装置間の制御信号、データ信号などの授受を媒介する経路である。
【００８１】
上述した実施形態では、情報処理装置の主な処理をＣＰＵによるソフトウェア処理によって実行するものとして説明したが、この処理の全部又は一部をハードウェアによって実現するようにしてもよい。
【００８２】
上述したように、上記実施形態では、特許文献１に記載されているオートスケール技術と、オートフェールオーバ技術を組み合わせた処理分散システムにおける課題を解決することができる。すなわち、オートスケールとオートフェールオーバの発動が重なって、不要な業務サーバが生じてしまう場合があり、不要なリソースの使用や不要な業務サーバの停止処理などが生じてしまうという課題を解決することができる。
【００８３】
オートスケール技術について説明する。図１２に示すように、業務モデルにおいては、複数のクライアント（例えば、クライアント１から３）からのリクエストをロードバランサ２００が受け付ける。リクエストを受け付けたロードバランサ２００は、Ｖｉｒｔｕａｌ Ｍａｃｈｉｎｅ（ＶＭ）ホスト２０１（２０１ａ、２０１ｂ）内の仮想マシン２０２（２０２ａ、２０２ｂ、２０２ｃ）上で起動する業務サーバ２０３（２０３ａ、２０３ｂ、２０３ｃ）の負荷が高くならないように処理するリクエストを複数の業務サーバに分散させている。なお、仮想マシン２０２は管理サーバ２０５によって管理される概念であり、業務サーバ２０３は監視サーバ２０４によって監視される対象である。
【００８４】
しかし、クライアントｎ−１及びクライアントｎが業務モデルに新たに加わり、リクエストが増え、ロードバランサ２００によるリクエストの割り振りによっても業務サーバ２０３の負荷が高くなる場合がある。その場合、業務サーバ２０３ａから２０３ｃは負荷がオーバしていることを通知するための負荷オーバ通知を監視サーバ２０４へ送信する。負荷オーバ通知を受信した監視サーバ２０４は、管理サーバ２０５に対して業務サーバの追加を依頼する。管理サーバ２０５は、依頼に基づいて新たな業務サーバをＶＭホスト２０１（例えば、ＶＭホスト２０１ｂ）内に追加する。このように、負荷に応じて業務サーバを新たに追加するものがオートスケール技術である。これにより、業務サーバの負荷が分散され、業務サーバの負荷を軽減させることができる。
【００８５】
オートフェールオーバ技術について説明する。図１３に示すように、業務モデルにおいては、複数のクライアント（例えば、クライアント１から３）からのリクエストをロードバランサ２１０が受け付ける。リクエストを受け付けたロードバランサ２１０は、ＶＭホスト２１１内の仮想マシン２１２上で起動する業務サーバ２１３の負荷が高くならないように処理するリクエストを複数の業務サーバに分散させている。
【００８６】
しかし、例えばＶＭホスト２１１ｂ内の仮想マシン２１２ｃ上で起動する業務サーバ２１３ｃがダウンした場合、ロードバランサ２１０は業務サーバ２１３ｃと音信不通となる。管理サーバ２１５は、業務サーバ２１３ｃのダウンにより、例えばＶＭホスト２１１ｃ内においてダウンした業務サーバ２１３ｃを再起動させる。このように、業務サーバがダウンした場合に、ダウンした業務サーバを他のＶＭホストにおいて業務サーバを再起動させるものがオートフェールオーバ技術である。これにより、業務サーバがダウンしても業務サーバにおける負荷を分散させることが可能となる。
【００８７】
上記各技術を組み合わせた処理分散システムについて説明する。この場合、オートスケールとオートフェールオーバが同時に実施される場合がある。図１４に示すように、業務モデルにおいて、例えば業務サーバ２２３ｃがダウンした場合、ロードバランサ２２０は業務サーバ２２３ｃと音信不通となる。業務サーバ２２３ｃがダウンしたことにより、業務サーバにおける負荷が増大する。業務サーバ２２３ａや業務サーバ２２３ｂは、負荷が高くなり、負荷オーバ通知を監視サーバ２２４へ送信する。負荷オーバ通知を受信した監視サーバ２２４は、管理サーバ２２５に対して業務サーバの追加を依頼する。管理サーバ２２５は、依頼に基づいて新たな業務サーバ２２３ｄをＶＭホスト２２１ｃに追加する。
【００８８】
一方、業務サーバ２２３ｃのダウンにより、ロードバランサ２２０は業務サーバ２２３ｃと音信不通になるため、管理サーバ２２５は業務サーバ２２３ｃのダウンにより、ＶＭホスト２２１ｃにおいて業務サーバ２２３ｃを再起動させる。
【００８９】
各実施形態の情報処理装置の１つの側面によれば、業務量変化に応じて自律的な業務サーバの運用が可能なオートスケールと、信頼性の高い業務サーバの運用が可能なフェールオーバを簡単に同時適用が可能である。また、不要なオートスケールを抑止できるため、クラウドの月額課金などの運用コストの削減が実現可能である。
【００９０】
以上の実施形態に関して、更に以下の付記を開示する。
（付記１）処理が割り当てられた複数の業務サーバを監視する情報処理装置によるフェールオーバ時間測定方法おいて、
フェールオーバテストの実施条件を満たした場合、
前記複数の業務サーバの数と負荷に基づいて、前記フェールオーバテストにおいてフェールオーバ可能な業務サーバを決定し、
決定された前記業務サーバによる前記フェールオーバテストのフェールオーバ時間の測定依頼を行う、
ことを特徴とするフェールオーバ時間測定方法。
（付記２）前記業務サーバが停止した場合、測定された前記フェールオーバ時間内においてオートスケールの処理を保留することを特徴とする付記１に記載のフェールオーバ時間測定方法。
（付記３）オートフェールオーバが発動された際、障害が発生した業務サーバの数を判定し、
判定された前記業務サーバの数と、前記フェールオーバテストのフェールオーバ時間に基づいて、前記オートスケールの処理を保留させる前記フェールオーバ時間を算出し、
算出された前記フェールオーバ時間内において前記オートスケールの処理を保留することを特徴とする付記２に記載のフェールオーバ時間測定方法。
（付記４）前記フェールオーバテストの実施条件は、
前回のフェールオーバテストから業務サーバの数が変化したこと、又は前回のフェールオーバテストから所定の時間が経過したことの少なくとも一方であることを特徴とする付記１乃至３のいずれかに記載のフェールオーバ時間測定方法。
（付記５）処理が割り当てられた複数の業務サーバを監視する情報処理装置によって実行されるフェールオーバ時間測定プログラムおいて、
フェールオーバテストの実施条件を満たした場合、
前記複数の業務サーバの数と負荷に基づいて、前記フェールオーバテストにおいてフェールオーバ可能な業務サーバを決定し、
決定された前記業務サーバによる前記フェールオーバテストのフェールオーバ時間の測定依頼を行う、
処理を前記情報処理装置のコンピュータに実行させることを特徴とするフェールオーバ時間測定プログラム。
（付記６）前記業務サーバが停止した場合、測定された前記フェールオーバ時間内においてオートスケールの処理を保留することを特徴とする付記５に記載のフェールオーバ時間測定プログラム。
（付記７）オートフェールオーバが発動された際、障害が発生した業務サーバの数を判定し、
判定された前記業務サーバの数と、前記フェールオーバテストのフェールオーバ時間に基づいて、前記オートスケールの処理を保留させる前記フェールオーバ時間を算出し、
算出された前記フェールオーバ時間内において前記オートスケールの処理を保留することを特徴とする付記６に記載のフェールオーバ時間測定プログラム。
（付記８）前記フェールオーバテストの実施条件は、
前回のフェールオーバテストから業務サーバの数が変化したこと、又は前回のフェールオーバテストから所定の時間が経過したことの少なくとも一方であることを特徴とする付記５乃至７のいずれかに記載のフェールオーバ時間測定プログラム。
【符号の説明】
【００９１】
１、８０  情報処理装置
１０  業務サーバ決定部
１１  測定依頼部
１２  負荷情報受信部
１３  負荷情報記録部
１４  フェールオーバテスト依頼部
１５  オートスケール実行判定部
１６  オートスケール実行依頼部
２（２１、２２、２３、２４）  業務サーバ
２ａ  負荷情報通知部
２ｂ  オートスケール依頼部
３  管理サーバ
３ａ  ダウン検出部
３ｂ  フェールオーバ実行部
３ｃ  業務サーバ追加実行部
４（４ａ、４ｂ、４ｃ）  クライアント
５  ロードバランサ
６（６ａ、６ｂ、６ｃ）  ＶＭホスト
１１１  ＣＰＵ
１１２  ＨＤＤ
１１３  ＲＡＭ
１１４  グラフィック処理装置
１１５  入力Ｉ／Ｆ
１１６  書き込み／読み取り部
１１７  ＬＡＮ Ｉ／Ｆ
１１８  バス
【図１Ａ】
2018106517.tif 000003
【図１Ｂ】
2018106517.tif 000004
【図２】
2018106517.tif 000005
【図３】
2018106517.tif 000006
【図３Ａ】
2018106517.tif 000007
【図４】
2018106517.tif 000008
【図５】
2018106517.tif 000009
【図６】
2018106517.tif 000010
【図７】
2018106517.tif 000011
【図８】
2018106517.tif 000012
【図９】
2018106517.tif 000013
【図１０】
2018106517.tif 000014
【図１１】
2018106517.tif 000015
【図１２】
2018106517.tif 000016
【図１３】
2018106517.tif 000017
【図１４】
2018106517.tif 000018