(57)【要約】  本発明の管理計算機は、仮想演算部の生成と破棄が短期間で繰り返される場合でも、性能劣化の予兆を検知する。管理計算機１は、一つ以上の計算機２と計算機に仮想的に設けられる一つ以上の仮想演算部４とを含む情報システムの性能劣化の予兆を検知して管理する。管理計算機は、仮想演算部の数を自動的に調整するオートスケールの管理単位であるオートスケールグループ５に属する全ての仮想演算部から稼働情報を取得する稼働情報取得部Ｐ１０と、稼働情報取得部の取得した各稼働情報から、オートスケールグループ毎に、性能劣化の予兆を検知するための基準値を生成する基準値生成部Ｐ１１と、基準値生成部の生成した基準値と稼働情報取得部の取得した仮想演算部の稼働情報とから、各仮想演算部の性能劣化の予兆を検知する検知部Ｐ１２と、を備える。
2017168484.tif 000002
【特許請求の範囲】
【請求項１】
一つ以上の計算機と前記計算機に仮想的に設けられる一つ以上の仮想演算部とを含む情報システムの性能劣化の予兆を検知して管理する管理計算機であって、
前記仮想演算部の数を自動的に調整するオートスケールの管理単位であるオートスケールグループに属する全ての仮想演算部から稼働情報を取得する稼働情報取得部と、
前記稼働情報取得部の取得した前記各稼働情報から、オートスケールグループ毎に、性能劣化の予兆を検知するための基準値を生成する基準値生成部と、
前記基準値生成部の生成した前記基準値と前記稼働情報取得部の取得した前記仮想演算部の稼働情報とから、前記各仮想演算部の性能劣化の予兆を検知する検知部と、
を備える管理計算機。
【請求項２】
前記基準値生成部は、前記オートスケールグループ毎に、オートスケールグループに属する全ての仮想演算部の稼働情報の平均に基づいて、前記基準値としての平均基準値を生成する、
請求項１に記載の管理計算機。
【請求項３】
前記検知部は、前記オートスケールグループ毎に、オートスケールグループに属する各仮想演算部の稼働情報と前記平均基準値とをそれぞれ比較して、性能劣化の予兆を検知する、
請求項２に記載の管理計算機。
【請求項４】
予兆の検知された性能劣化へ対処する対処部を備えており、
前記検知部が、前記オートスケールグループ内の全ての仮想演算部のうち稼働情報が前記平均基準値から外れている仮想演算部について性能劣化の予兆を検知したと判定すると、その仮想演算部を再起動する、
請求項３に記載の管理計算機。
【請求項５】
前記基準値生成部は、前記オートスケールグループ毎に、オートスケールグループに属する全ての仮想演算部の稼働情報の総量に基づいて、前記基準値としての総量基準値を生成する、
請求項４に記載の管理計算機。
【請求項６】
前記検知部は、前記オートスケールグループ毎に、オートスケールグループに属する全ての仮想演算部の稼働情報の総量と前記総量基準値とを比較して、性能劣化の予兆を検知する、
請求項５に記載の管理計算機。
【請求項７】
予兆の検知された性能劣化へ対処する対処部を備えており、
前記検知部が、前記稼働情報の総量が前記総量基準値から外れており、性能劣化の予兆を検知した場合に、前記対処部はスケールアウトの実行を指示する、
請求項６に記載の管理計算機。
【請求項８】
前記基準値生成部は、
前記オートスケールグループ毎に、オートスケールグループに属する全ての仮想演算部の稼働情報の総量に基づいて、前記基準値としての総量基準値を生成するか、
または、前記オートスケールグループ毎に、オートスケールグループに属する全ての仮想演算部の稼働情報の平均に基づいて、前記基準値としての平均基準値を生成し、
前記検知部は、
前記オートスケールグループ毎に、オートスケールグループに属する全ての仮想演算部の稼働情報の総量と前記総量基準値とを比較して、性能劣化の予兆を検知するか、
または、前記オートスケールグループ毎に、オートスケールグループに属する各仮想演算部の稼働情報と前記平均基準値とをそれぞれ比較して、性能劣化の予兆を検知し、
予兆の検知された性能劣化へ対処する対処部を備えており、
前記対処部は、
前記検知部が、前記稼働情報の総量が前記総量基準値から外れており、性能劣化の予兆を検知した場合に、スケールアウトの実行を指示し、
前記検知部が、前記オートスケールグループ内の全ての仮想演算部のうち、稼働情報が前記平均基準値から外れている仮想演算部について性能劣化の予兆を検知したと判定すると、その仮想演算部を再起動する、
請求項１に記載の管理計算機。
【請求項９】
前記オートスケールグループ内の前記仮想演算部は、同一の起動用管理情報から生成されている、
請求項１〜８のいずれか一項に記載の管理計算機。
【請求項１０】
前記基準値生成部は、前記オートスケールグループ内に性能の異なる計算機が含まれている場合は、前記オートスケールグループ内において前記計算機の性能毎のグループについて、性能劣化の予兆を検知するための基準値を生成する、
請求項１〜８のいずれか一項に記載の管理計算機。
【請求項１１】
フェイルオーバの開始前に、他サイトの管理計算機に向けて、少なくとも前記基準値を送信する、
請求項１０に記載の管理計算機。
【請求項１２】
一つ以上の計算機と前記計算機に仮想的に設けられる一つ以上の仮想演算部を含む情報システムの性能劣化の予兆を管理計算機により検知して管理する性能劣化方法であって、
前記管理計算機は、
前記仮想演算部の数を自動的に調整するオートスケールの管理単位であるオートスケールグループに属する全ての仮想演算部から稼働情報を取得するステップと、
前記取得した前記各稼働情報から、オートスケールグループ毎に、性能劣化の予兆を検知するための基準値を生成するステップと、
前記生成した前記基準値と前記取得した前記仮想演算部の稼働情報とから、前記各仮想演算部の性能劣化の予兆を検知するステップと、
を実行する性能劣化方法。
【請求項１３】
さらに、予兆の検知された性能劣化へ対処するステップを備える、
請求項１２に記載の性能劣化方法。
【請求項１４】
前記基準値を生成するステップは、前記オートスケールグループ毎に、オートスケールグループに属する全ての仮想演算部の稼働情報の総量に基づいて、前記基準値としての総量基準値を生成し、
前記性能劣化の予兆を検知するステップは、前記オートスケールグループ毎に、オートスケールグループに属する全ての仮想演算部の稼働情報の総量と前記総量基準値とを比較して、性能劣化の予兆を検知し、
前記性能劣化へ対処するステップは、前記稼働情報の総量が前記総量基準値から外れており、性能劣化の予兆が検知された場合に、スケールアウトの実行を指示する、
請求項１３に記載の性能劣化方法。
【請求項１５】
前記基準値を生成するステップは、前記オートスケールグループ毎に、オートスケールグループに属する全ての仮想演算部の稼働情報の平均に基づいて、前記基準値としての平均基準値を生成し、
前記性能劣化の予兆を検知するステップは、前記オートスケールグループ毎に、オートスケールグループに属する各仮想演算部の稼働情報と前記平均基準値とをそれぞれ比較して、性能劣化の予兆を検知し、
前記性能劣化へ対処するステップは、前記オートスケールグループ内の全ての仮想演算部のうち、稼働情報が前記平均基準値から外れている仮想演算部について性能劣化の予兆が検知されると、その仮想演算部を再起動する、
請求項１３に記載の性能劣化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、管理計算機および性能劣化予兆検知方法に関する。
【背景技術】
【０００２】
近年の情報システムでは、負荷の増大に応じて仮想マシンなどを増加させる、いわゆるオートスケーリングが実現されている。さらに、コンテナ技術の普及によって、インスタンスデプロイの時間が短縮されたため、オートスケールの対象はスケールアウトだけでなく、スケールインにも広がっている。このため、短期間にスケールインとスケールアウトを繰り返す運用も行われ始めている。【０００３】
ところで、情報システムの性能は、運用を続けるうちに劣化する場合がある。そこで、情報システムの性能劣化に対応すべく、情報システムの通常状態を学習したベースラインを用いて、性能劣化の予兆を検知する技術が提案されている（特許文献１）。特許文献１では、性能監視のためのしきい値設定が困難であるということから、情報システムの通常時の振る舞いを統計処理することでベースラインを生成する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１６４６３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
情報システムの負荷には周期性があるため、通常、ベースラインを作成するには一週間以上の稼働情報が必要である。しかし、最近のサーバ仮想化技術では、スケールインとスケールアウトが繰り返し発生するため、性能劣化の監視対象であるインスタンスが短期間で破棄される。ベースライン生成に必要な稼働情報（例えば一週間分の稼働情報）を得ることができないため、ベースラインを生成できない。【０００６】
これは、コンテナ技術を用いたオートスケーリングに限った話ではなく、仮想マシンや物理マシンを用いたオートスケーリングでも、頻繁にスケールイン・スケールアウトが繰り返されれば発生する課題である。このように従来技術では、ベースラインを生成できないため、通常の振る舞いと異なることを発見できず、情報システムの性能劣化の予兆を検知できない。【０００７】
本発明は上記の課題に鑑みてなされたもので、その目的は、仮想演算部の生成と破棄が短期間で繰り返される場合でも、性能劣化の予兆を検知できるようにした管理計算機および性能劣化予兆検知方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決すべく、本発明に従う管理計算機は、一つ以上の計算機と計算機に仮想的に設けられる一つ以上の仮想演算部とを含む情報システムの性能劣化の予兆を検知して管理する管理計算機であって、仮想演算部の数を自動的に調整するオートスケールの管理単位であるオートスケールグループに属する全ての仮想演算部から稼働情報を取得する稼働情報取得部と、稼働情報取得部の取得した各稼働情報から、オートスケールグループ毎に、性能劣化の予兆を検知するための基準値を生成する基準値生成部と、基準値生成部の生成した基準値と稼働情報取得部の取得した仮想演算部の稼働情報とから、各仮想演算部の性能劣化の予兆を検知する検知部と、を備える。
【発明の効果】
【０００９】
本発明によれば、オートスケールグループ内の全ての仮想演算部の稼働情報に基づいて性能劣化の予兆を検知するための基準値を生成することができ、この基準値と稼働情報を比較することで性能劣化の予兆があるか検知することができる。この結果、情報システムの信頼性を向上することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態の全体概要を示す説明図である。
【図２】情報システムおよび管理計算機を含む全体システムの構成図である。
【図３】計算機の構成を示す図である。
【図４】複製制御部の構成を示す図である。
【図５】複製制御部が保持する、オートスケールグループを管理するテーブルの構成を示す図である。
【図６】複製制御部で動作する、死活監視プログラムの処理概要を表すフローチャートである。
【図７】複製制御部で動作する、スケール管理プログラムの処理概要を表すフローチャートである。
【図８】管理サーバの構成を示す図である。
【図９】管理サーバが保持する、コンテナ稼働情報を管理するテーブルの構成を示す図である。
【図１０】管理サーバが保持する、総量稼働情報を管理するテーブルの構成を示す図である。
【図１１】管理サーバが保持する、平均稼働情報を管理するテーブルの構成を示す図である。
【図１２】管理サーバが保持する、総量ベースラインを管理するテーブルの構成を示す図である。
【図１３】管理サーバが保持する、平均ベースラインを管理するテーブルの構成を示す図である。
【図１４】管理サーバで動作する、稼働情報取得プログラムの処理概要を表すフローチャートである。
【図１５】管理サーバで動作する、ベースライン生成プログラムの処理概要を表すフローチャートである。
【図１６】管理サーバで動作する、性能劣化予兆プログラムの処理概要を表すフローチャートである。
【図１７】管理サーバで動作する、対処プログラムの処理概要を表すフローチャートである。
【図１８】第２実施例に係る管理サーバの構成を示す図である。
【図１９】管理サーバが保持する、情報システム内の計算機を管理するテーブルの構成を示す図である。
【図２０】管理サーバが保持する、オートスケールグループ内で計算機のグレード別に分けたグループを管理するテーブルの構成を示す図である。
【図２１】管理サーバで動作する、グループ生成プログラムの処理概要を表すフローチャートである。
【図２２】第３実施例に係り、フェイルオーバの関係にある複数の情報システムの全体構成を示す図である。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて、本発明の実施の形態を説明する。以下に述べるように、本実施形態は、スケールインとスケールアウトが頻繁に繰り返されるために、ベースラインを生成する前に監視対象のインスタンスが消滅してしまう環境下において、性能劣化の予兆を検知できるようにする。仮想演算部は、インスタンス（コンテナ）に限らず、仮想マシンでもよい。また、仮想演算部に代えて物理計算機に適用することも可能である。
【００１２】
本実施形態では、同一のオートスケールグループに属する全ての監視対象インスタンスは、疑似的に同一のインスタンスであるとみなす。本実施形態では、同一オートスケールグループ内の全てのインスタンスの稼働情報から、「基準値」としてのベースライン(総量ベースラインと平均ベースライン)を作成する。
【００１３】
本実施形態では、オートスケールグループに属するインスタンスの稼働情報の総量（総量稼働情報）と総量ベースラインとを比較し、総量稼働情報が総量ベースラインを外れた場合は、性能劣化の予兆を検知したと判断する。本実施形態では、情報システムに総量ベースライン違反を発見すると、スケールアウトを指示する。これにより、総量ベースラインに違反したオートスケールグループに属するインスタンスの数が増加するため、性能が向上する。
【００１４】
本実施形態では、オートスケールグループ内の各インスタンスの稼働情報の平均値と平均ベースラインとを比較し、各インスタンスの稼働情報が平均ベースラインを外れた場合も、性能劣化の予兆を検知したと判断する。この場合、平均ベースライン違反を検出されたインスタンスを破棄し、同様のインスタンスを再生成する。これにより、情報システムの性能が回復する。
【００１５】
図１は、本実施形態の全体概要を示す説明図である。図１に示す構成は、本発明の理解および実施に必要な程度で本実施形態の概要を示しており、本発明の範囲は図示の構成に限定されない。
【００１６】
「管理計算機」としての管理サーバ１は、情報システムの性能劣化の予兆を監視し、性能劣化の予兆を検知した場合は対策を実施する。情報システムは、例えば、一つ以上の計算機２と、計算機２に設けられる一つ以上の仮想演算部４と、仮想演算部４の生成および破棄を制御する複製制御装置３とを備える。
【００１７】
仮想演算部４は、例えば、インスタンス、コンテナ、仮想マシンのように構成され、計算機２の物理的コンピュータ資源を用いて演算処理する。仮想演算部４は、例えば、アプリケーションプログラム、ミドルウェア、ライブラリ（またはオペレーティングシステム）などを含んで構成される。仮想演算部４は、インスタンスやコンテナのように計算機２のオペレーティングシステム上で作動してもよいし、ハイパバイザにより管理される仮想マシンのように計算機２のオペレーティングシステムとは異なるオペレーティングシステム上で作動してもよい。仮想演算部４は、仮想サーバと呼び代えてもよい。後述の実施例では、仮想演算部４の例としてコンテナをあげる。
【００１８】
なお、図中では、計算機２、仮想演算部４など複数存在する要素を区別可能とするために符号に括弧付きの数字を添えている。しかし、複数の要素を特に区別する必要が無い場合、括弧付きの数字を省略して表現する。例えば、仮想演算部４（１）〜４（４）は、区別する必要がない場合、仮想演算部４と呼ぶ。
【００１９】
複製制御装置（Relication Controller）３は、情報システム内での仮想演算部４の生成および破棄を制御する。複製制御装置３は、「起動用管理情報」としてのイメージ４０を一つ以上保持しており、同一のイメージ４０から複数の仮想演算部４を生成したり、同一のイメージ４０から生成された複数の仮想演算部４の中からいずれか一つまたは複数を破棄したりする。イメージ４０とは、仮想演算部４を生成（起動）するために用いる管理情報であり、仮想演算部４の構成を定義するテンプレートである。複製制御装置３は、スケール管理部Ｐ３１により、仮想演算部４の数を制御する。
【００２０】
ここで、複製制御装置３は、オートスケールグループ５ごとに、仮想演算部４の生成や破棄を管理する。オートスケールグループ５とは、オートスケールを実行する管理単位である。オートスケールとは、指示に応じて、仮想演算部４の数を自動的に調整する処理である。図１の例では、それぞれ別々の計算機２上に設けられた仮想演算部４から、複数のオートスケールグループ５が形成される様子を示す。オートスケールグループ５内の各仮想演算部４は、同一のイメージ４０から生成される。
【００２１】
図１には、複数のオートスケールグループ５（１），５（２）が示されている。第１のオートスケールグループ５（１）は、計算機２（１）に設けられた仮想演算部４（１）と、他の計算機２（２）に設けられた仮想演算部４（３）とを含んで構成される。第２のオートスケールグループ５（２）は、計算機２（１）に設けられた仮想演算部４（２）と、他の計算機２（２）に設けられた仮想演算部４（３）とを含んで構成される。換言すれば、オートスケールグループ５は、異なる計算機２に設けられた仮想演算部４から構成することができる。
【００２２】
管理サーバ１は、仮想演算部４の稼働する情報システムにおける性能劣化の予兆を検知する。管理サーバ１は、性能劣化の予兆を検知すると、システム管理者などに通知することもできる。さらに管理サーバ１は、性能劣化の予兆を検知すると、所定の指示を複製制御装置３に与えることで、その性能劣化に対処させることもできる。
【００２３】
管理サーバ１の機能構成の例を述べる。管理サーバ１は、例えば、稼働情報取得部Ｐ１０、ベースライン生成部Ｐ１１、性能劣化予兆検知部Ｐ１２、対処部Ｐ１３を備えることができる。これら機能Ｐ１０〜Ｐ１３は、後述のように、管理サーバ１に記憶させたコンピュータプログラムにより実現される。図１では、コンピュータプログラムと機能との対応関係の例を明らかにすべく、対応するコンピュータプログラムと機能に同一の符号を付している。なお、各機能Ｐ１０〜Ｐ１３は、コンピュータプログラムに代えて、またはコンピュータプログラムと共に、ハードウェア回路を用いて実現してもよい。
【００２４】
稼働情報取得部Ｐ１０は、各計算機２から、その計算機２上で稼働する各仮想演算部４の稼働情報を取得する。稼働情報取得部Ｐ１０は、複製制御装置３からオートスケールグループ５の構成に関する情報を取得しており、各計算機２から取得した仮想演算部４の稼働情報をオートスケールグループ毎に分類して管理することができる。複製制御装置３が各計算機２から各仮想演算部４の稼働情報を収集できる場合、稼働情報取得部Ｐ１０は、複製制御装置３を介して各仮想演算部４の稼働情報を取得してもよい。
【００２５】
ベースライン生成部Ｐ１１は、「基準値生成部」の例である。ベースライン生成部Ｐ１１は、稼働情報取得部Ｐ１０の取得した稼働情報に基づいて、オートスケールグループ毎に、ベースラインを生成する。ベースラインとは、仮想演算部４の性能劣化の予兆（情報システムの性能劣化の予兆）を検知するための基準となる値である。ベースラインは、所定の幅（上限値、下限値）を有しており、稼働情報が所定の幅に収まらない場合、性能劣化の予兆であると判定することができる。
【００２６】
ベースラインには、総量ベースラインと、平均ベースラインがある。総量ベースラインとは、オートスケールグループ５内の全ての仮想演算部４の稼働情報の総量（合計値）から算出される基準値であり、オートスケールグループごとに算出される。総量ベースラインは、オートスケールグループ５内の仮想演算部４の稼働情報の総量と比較される。
【００２７】
平均ベースラインとは、オートスケールグループ５内の各仮想演算部４の稼働情報の平均から算出される基準値であり、オートスケールグループごとに算出される。平均ベースラインは、オートスケールグループ５内の各仮想演算部４の稼働情報のそれぞれと比較される。
【００２８】
性能劣化予兆検知部Ｐ１２は、「検知部」の例である。以下、検知部Ｐ１２または予兆検知部Ｐ１２と呼ぶことがある。性能劣化予兆検知部Ｐ１２は、仮想演算部４の稼働情報とベースラインとを比較することで、対象の仮想演算部４に性能劣化の予兆があるか否かを判定する。
【００２９】
詳しくは、予兆検知部Ｐ１２は、オートスケールグループ５毎に、オートスケールグループ５について算出された総量ベースラインと、そのオートスケールグループ５内の全ての仮想演算部４の稼働情報の総量とを比較する。予兆検知部Ｐ１２は、稼働情報の総量が総量ベースラインに収まっている場合、性能劣化の予兆は検知されていないと判定し、稼働情報の総量が総量ベースラインから外れている場合、性能劣化の予兆が検知されたと判定する。
【００３０】
さらに、予兆検知部Ｐ１２は、オートスケールグループ５について算出された平均ベースラインと、そのオートスケールグループ５内の各仮想演算部４の稼働情報とをそれぞれ比較する。予兆検知部Ｐ１２は、仮想演算部４の稼働情報が平均ベースラインに収まっている場合、性能劣化の予兆は検知されていないと判定し、稼働情報が平均ベースラインから外れている場合、性能劣化の予兆が検知されたと判定する。
【００３１】
予兆検知部Ｐ１２は、性能劣化の予兆を検知すると、システム管理者などのユーザの使用する端末６に向けてアラートを送信する。
【００３２】
対処部Ｐ１３は、予兆検知部Ｐ１２が性能劣化の予兆を検知すると、検知された性能劣化の予兆に対処すべく、所定の対策を実施する。
【００３３】
詳しくは、対処部Ｐ１３は、オートスケールグループ５内の各仮想演算部４の稼働情報の総量が総量ベースラインから外れた場合、複製制御装置３に対して、スケールアウトの実施を指示する。
【００３４】
オートスケールグループ５内の稼働情報の総量が総量ベースラインから外れている場合（例えば、稼働情報の総量が総量ベースラインの上限を超えた場合）、そのオートスケールグループ５の担当する処理に割り当てられている仮想演算部４の数が足りないことを意味する。そこで、対処部Ｐ１３は、複製制御装置３に対して、処理能力が不足気味のオートスケールグループ５について、仮想演算部４を所定台数追加するよう指示する。複製制御装置３は、スケールアウト対象のオートスケールグループ５に対応するイメージ４０を用いて仮想演算部４を所定台数生成し、これら所定台数の仮想演算部４をスケールアウト対象のオートスケールグループ５に追加する。
【００３５】
対処部Ｐ１３は、オートスケールグループ５内のいずれかの仮想演算部４の稼働情報が平均ベースラインから外れている場合（稼働情報が平均ベースラインの上限を超えた場合、または平均ベースラインの下限を下回った場合）、仮想演算部４が過負荷状態または停止状態等であると考えられる。そこで、対処部Ｐ１３は、予兆の検知された仮想演算部４が設けられている計算機２に対し、再デプロイを指示する。指示された計算機２は、性能劣化の予兆が検知された仮想演算部４を破棄し、破棄した仮想演算部４と同じイメージ４０から新たに仮想演算部４を生成し、起動させる。
【００３６】
このように構成される本実施形態によれば、オートスケールグループを構成する各仮想演算部４の稼働情報から、ベースラインを生成することができる。この結果、本実施形態では、仮想演算部の生成と破棄が短期間で繰り返される情報システムに対しても、性能劣化の予兆を検知することができる。
【００３７】
本実施形態では、管理サーバ１は、オートスケールの管理単位であるオートスケールグループ５内の各仮想演算部４を擬似的に同一の仮想演算部であるとみなすため、ベースラインの生成に必要な稼働情報を取得することができる。オートスケールグループ５は、共通のイメージ４０から生成される仮想演算部４により構成されるため、オートスケールグループ５内の仮想演算部４を一つの仮想演算部であると考えても不都合はない。
【００３８】
本実施形態では、管理サーバ１は、オートスケールグループ５を構成する全ての仮想演算部４を一つの仮想演算部４とみなすことで、総量ベースラインおよび平均ベースラインをそれぞれ生成することができる。そして、管理サーバ１は、総量ベースラインとオートスケールグループ５内の各仮想演算部４の稼働情報の総量を比較することで、そのオートスケールグループ５に過負荷状態や、処理能力の不足状態が生じつつあるかを事前に検知することができる。
【００３９】
さらに、管理サーバ１は、平均ベースラインとオートスケールグループ５内の各仮想演算部４の稼働情報を比較することで、オートスケールグループ５内において作動停止中または処理能力の低い仮想演算部４を個別に検知することができる。
【００４０】
本実施形態の管理サーバ１は、総量ベースラインと総量稼働情報とを比較することで、同一のイメージ４０から生成されるコンテナ４の管理単位であるオートスケールグループごとに性能劣化の予兆を判定することができる。さらに本実施形態の管理サーバ１は、平均ベースラインと稼働情報とを比較することで、オートスケールグループ５内の各仮想演算部４の性能劣化の予兆を個別に判定することもできる。
【００４１】
本実施形態では、管理サーバ１は、総量ベースラインに違反するオートスケールグループ５については、スケールアウトの実施を指示するため、性能劣化の発生を抑制することができる。さらに、管理サーバ１は、平均ベースラインに違反する仮想演算部４については作り直すため、これによっても性能劣化の発生を抑制できる。総量ベースラインに基づく性能監視とその対処と、平均ベースラインに基づく性能監視とその対処とは、いずれか一方だけを実施してもよいし、両方を同時または異なる時間で実施してもよい。
【実施例１】
【００４２】
図２〜図１７を用いて第１実施例を説明する。図２は、情報システムと情報システムの性能を管理する管理サーバ１とを含む全体システムの構成図である。【００４３】
全体システムは、例えば、少なくとも一つの管理サーバ１と、少なくとも一つの計算機２と、少なくとも一つの複製制御装置と、複数のコンテナ４と、少なくとも一つのオートスケールグループ５を備える。さらに、全体システムは、システム管理者などのユーザが使用する端末６と、ＮＡＳ（Network Attached Storage）のようなストレージシステム７を備えることもできる。図２に示す構成のうち、少なくとも計算機２および複製制御装置３が、管理サーバ１による性能管理対象の情報システムを構成する。各装置１〜３，６，７は、例えばＬＡＮ（Local Area Network）やインターネットなどの通信ネットワークＣＮ１を介して双方向通信可能に接続されている。【００４４】
コンテナ４は、図１で述べた仮想演算部４の一例である。対応関係を明らかにすべく、コンテナと仮想演算部には、同じ符号「４」を付している。コンテナ４は、コンテナ技術を用いて作成される論理的コンテナである。以下の説明では、コンテナ４を、コンテナインスタンス４と呼ぶこともある。【００４５】
図３は、計算機２の構成を示した図である。計算機２は、例えば、ＣＰＵ（Central Processing Unit）２１、メモリ２２、記憶装置２３、通信ポート２４、入力装置２５、出力装置２６を備える。【００４６】
記憶装置２３は、例えばハードディスクドライブまたはフラッシュメモリなどから形成されており、オペレーティングシステム、ライブラリ、アプリケーションプログラムなどを記憶している。ＣＰＵ２１は、記憶装置２３からメモリ２２へ転送させたコンピュータプログラムを実行することで、コンテナ４を作動させたり、コンテナ４のデプロイおよび破棄等を管理する。【００４７】
通信ポート２４は、通信ネットワークＣＮ１を介して管理サーバ１および複製制御装置３と通信するためのものである。入力装置２５は、例えば、キーボードやタッチパネルなどの情報入力装置を含む。出力装置２６は、例えば、ディスプレイなどの情報出力装置を含む。入力装置２５は、情報入力装置以外の他の装置からの信号を受け取る回路を備えてもよい。出力装置２６は、情報出力装置以外の他の装置へ信号を出力する回路を備えてもよい。【００４８】
メモリ２２上では、プロセスの一つとしてコンテナ４が動作する。計算機２は、複製制御装置３や管理サーバ１からの指示を受けると、その指示に基づいて、コンテナ４をデプロイしたり、または破棄したりする。さらに、計算機２は、管理サーバ１からコンテナ４の稼働情報を取得するように指示されると、コンテナ４の稼働情報を取得して管理サーバ１へ応答する。【００４９】
図４は、複製制御装置３の構成を示した図である。複製制御装置３は、例えば、ＣＰＵ３１、メモリ３２、記憶装置３３、通信ポート３４、入力装置３５、出力装置３６を備えることができる。【００５０】
ハードディスクドライブやフラッシュメモリなどから構成される記憶装置３３には、コンピュータプログラムと管理情報が記憶されている。コンピュータプログラムとしては、例えば、死活監視プログラムＰ３０と、スケジュール管理プログラムＰ３１がある。管理情報としては、例えば、オートスケールグループを管理するためのオートスケールグループテーブルＴ３０がある。【００５１】
ＣＰＵ３１は、記憶装置３３に記憶されたコンピュータプログラムをメモリ３２に読み出して実行することで、複製制御装置３としての機能を実現する。通信ポート３４は、通信ネットワークＣＮ１を介して、各計算機２および管理サーバ１と通信するためのものである。入力装置３５はユーザ等からの入力を受け付ける装置であり、出力装置３６はユーザ等へ情報を提供する装置である。【００５２】
図５を用いて、オートスケールグループテーブルＴ３０について説明する。オートスケールグループテーブルＴ３０は、情報システム内のオートスケールグループ５を管理するテーブルである。本テーブルＴ３０を含めて以下に述べる各テーブルは、管理テーブルであるが、単にテーブルと表記する。【００５３】
オートスケールグループテーブルＴ３０は、例えば、オートスケールグループＩＤ  Ｃ３０１、コンテナＩＤ  Ｃ３０２、計算機情報Ｃ３０３、デプロイ時の引数Ｃ３０４を対応付けて管理する。【００５４】
オートスケールグループＩＤ  Ｃ３０１は、各オートスケールグループ５を一意に特定する識別情報の欄である。コンテナＩＤ  Ｃ３０２は、各コンテナ４を一意に特定する識別情報の欄である。計算機情報Ｃ３０３は、各計算機２を一意に特定する識別情報の欄である。デプロイ時の引数Ｃ３０４は、コンテナ４（コンテナインスタンス）をデプロイした際の引数を保持する欄である。オートスケールグループテーブルＴ３０では、コンテナ毎にレコードが作られる。【００５５】
図６は、死活監視プログラムＰ３０の処理を示すフローチャートである。死活監視プログラムＰ３０は、オートスケールグループテーブルＴ３０に保持しているコンテナ４の全てについて、定期的に死活の監視結果を確認する。以下、動作の主体を死活監視プログラムＰ３０として説明するが、これに代えて、死活監視部Ｐ３０または複製制御装置３を動作主体として説明することもできる。【００５６】
死活監視プログラムＰ３０は、オートスケールグループテーブルＴ３０で保持するコンテナ４のうち、死活を確認していないコンテナ４があるか確認する（Ｓ３００）。【００５７】
死活監視プログラムＰ３０は、死活が未確認のコンテナ４があると判定すると（Ｓ３００：ＹＥＳ）、そのコンテナ４の死活を計算機２へ問い合わせる（Ｓ３０１）。詳しくは、死活監視プログラムＰ３０は、オートスケールグループテーブルＴ３０のコンテナＩＤ  ３０２の欄と計算機情報Ｃ３０３の欄とを参照することで、死活を問い合わせるべき計算機２を特定する。死活監視プログラムＰ３０は、その特定した計算機２に対して、コンテナＩＤを明示してポーリングすることで、そのコンテナＩＤを持つコンテナ４の死活を問い合わせる（Ｓ３０１）。【００５８】
死活監視プログラムＰ３０は、死んでいるコンテナ４があるか、すなわち停止中のコンテナ４があるか判定する（Ｓ３０２）。死活監視プログラムＰ３０は、死んでいるコンテナ４を発見すると（Ｓ３０２：ＹＥＳ）、オートスケールグループテーブルＴ３０のデプロイ時の引数Ｃ３０４の欄を参照し、その欄に設定された引数を用いてコンテナをデプロイする（Ｓ３０３）。【００５９】
死活監視プログラムＰ３０は、死んでいるコンテナ４が一つも無い場合（Ｓ３０２：ＮＯ）、ステップＳ３００へ戻り、死活監視の終了していないコンテナ４が残っているか判定する（Ｓ３００）。死活監視プログラムＰ３０は、全てのコンテナ４について死活監視を終了すると（Ｓ３００：ＮＯ）、本処理を終了する。【００６０】
図７は、スケール管理プログラムＰ３１の処理を示すフローチャートである。スケール管理プログラムＰ３１は、管理サーバ１や入力装置３５から入力される指示に従って、オートスケールグループ５の構成を制御する。以下、スケール管理プログラムＰ３１が動作主体であるとして述べるが、これに代えて、スケール管理部Ｐ３１または複製制御装置３を動作主体として説明することもできる。【００６１】
スケール管理プログラムＰ３１は、オートスケールグループＩＤとスケール数（コンテナ数）を含むスケール変更指示を受信する（Ｓ３１０）。スケール管理プログラムＰ３１は、指定されたオートスケールグループ５のスケール数Ｎ１と、指示されたスケール数Ｎ２とを比較する（Ｓ３１１）。詳しくは、スケール管理プログラムＰ３１は、オートスケールグループテーブルＴ３０を参照して、指定されたオートスケールグループ５で動作中のコンテナ４の数を現在のスケール数Ｎ１として把握し、そのスケール数Ｎ１と受信したスケール数Ｎ２とを比較する。【００６２】
スケール管理プログラムＰ３１は、現在のスケール数Ｎ１と受信したスケール数Ｎ２とが異なっているか判定する（Ｓ３０２）。スケール管理プログラムＰ３１は、現在のスケール数Ｎ１と受信したスケール数Ｎ２とが一致する場合（Ｓ３１２：ＮＯ）、スケール数を変化させる必要はないため、本処理を終了する。【００６３】
スケール管理プログラムＰ３１は、現在のスケール数Ｎ１と受信したスケール数Ｎ２が異なっている場合（Ｓ３１２：ＹＥＳ）、現在のスケール数Ｎ１の方が受信したスケール数Ｎ２よりも大きいか判定する（Ｓ３１３）。【００６４】
スケール管理プログラムＰ３１は、現在のスケール数Ｎ１（稼働中のコンテナ数）の方が受信したスケール数Ｎ２（指示されたコンテナ数）よりも大きい場合（Ｓ３１３：ＹＥＳ）、スケールインを実施する（Ｓ３１４）。すなわち、スケール管理プログラムＰ３１は、計算機２に対し、差分（＝Ｎ１−Ｎ２）の個数だけコンテナ４を破棄するように指示する（Ｓ３１４）。スケール管理プログラムＰ３１は、破棄させたコンテナ４に対応するレコードをオートスケールグループテーブルＴ３０から削除する（Ｓ３１４）。【００６５】
スケール管理プログラムＰ３１は、現在のスケール数Ｎ１の方が受信したスケール数Ｎ２よりも小さい場合（Ｓ３１３：ＮＯ）、スケールアウトを実施する（Ｓ３１５）。すなわち、スケール管理プログラムＰ３１は、計算機２に対し、差分（＝Ｎ２−Ｎ１）の個数だけコンテナ４のデプロイを指示し、デプロイしたコンテナ４に該当するレコードをオートスケールグループテーブルＴ３０へ追加する（Ｓ３１５）。【００６６】
図８は、管理サーバ１の構成を示した図である。管理サーバ１は、例えば、ＣＰＵ１１、メモリ１２、記憶装置１３、通信ポート１４、入力装置１５、出力装置１６を備えて構成されている。【００６７】
通信ポート１４は通信ネットワークＣＮ１を介して各計算機２および複製制御装置３と通信するためのものである。入力装置１５は、例えばキーボードやタッチパネル等のように、ユーザからの入力等を受け付ける装置である。出力装置１６は、例えばディスプレイのように、ユーザへ提示する情報を出力する装置である。【００６８】
記憶装置１３には、コンピュータプログラムＰ１１〜Ｐ１３と、管理テーブルＴ１０〜Ｔ１４が記憶されている。コンピュータプログラムとしては、稼働情報取得プログラムＰ１０、ベースライン生成プログラムＰ１１、性能劣化予兆検知プログラムＰ１２、対処プログラムＰ１３がある。管理テーブルとしては、コンテナ稼働情報テーブルＴ１０、総量稼働情報テーブルＴ１１、平均稼働情報テーブルＴ１２、総量ベースラインテーブルＴ１３、平均ベースラインテーブルＴ１４がある。ＣＰＵ１１は、記憶装置１３に記憶されたコンピュータプログラムをメモリ１２に読み出して実行することで、性能管理のための所定の機能を実現する。【００６９】
図９は、コンテナ稼働情報テーブルＴ１０を示す。コンテナ稼働情報テーブルＴ１０は、各コンテナ４の稼働情報を管理するテーブルである。コンテナ稼働情報テーブルＴ１０は、例えば、時刻Ｃ１０１、オートスケールグループＩＤ  Ｃ１０２、コンテナＩＤ  Ｃ１０３、ＣＰＵ利用量Ｃ１０４、メモリ利用量Ｃ１０５、ネットワーク利用量Ｃ１０６、ＩＯ利用量Ｃ１０７を対応付けて管理する。コンテナ稼働情報テーブルＴ１０は、コンテナ毎にレコードが作成される。【００７０】
時刻Ｃ１０１は、稼働情報（ＣＰＵ利用量、メモリ利用量、ネットワーク利用量、ＩＯ利用量）を計測した日時を記憶する欄である。オートスケールグループＩＤ  Ｃ１０２は、計測対象のコンテナ４が属しているオートスケールグループ５を特定する識別情報を記憶する欄である。図中では、オートスケールグループを「ＡＳグループ」と表記する場合がある。コンテナＩＤ  Ｃ１０３は、計測対象のコンテナ４を特定する識別情報を記憶する欄である。【００７１】
ＣＰＵ利用量Ｃ１０４は、コンテナ稼働情報の一種であり、コンテナ４が計算機２のＣＰＵ２１を利用する量（ＧＨｚ）を記憶する欄である。メモリ利用量Ｃ１０５は、コンテナ稼働情報の一例であり、コンテナ４が計算機２のメモリ２２を利用する量（ＭＢ）を記憶する欄である。ネットワーク利用量Ｃ１０６は、コンテナ稼働情報の一種であり、コンテナ４が通信ネットワークＣＮ１（または図示せぬ他の通信ネットワーク）を利用して通信する量（Ｍｂｐｓ）を記憶する欄である。図中では、ネットワークをＮＷと表示する場合がある。ＩＯ利用量Ｃ１０７は、コンテナ稼働情報の一種であり、コンテナ４に入力される情報およびコンテナ４が出力する情報の回数（ＩＯＰＳ）を記憶する欄である。図９に示すコンテナ稼働情報Ｃ１０４〜Ｃ１０７は一例であって、本実施形態では、図示したコンテナ稼働情報に限定しない。図示したコンテナ稼働情報の一部を用いてもよいし、図示せぬ稼働情報を新たに加えてもよい。【００７２】
図１０を用いて、総量稼働情報テーブルＴ１１について説明する。総量稼働情報テーブルＴ１１は、オートスケールグループ５内の全てのコンテナ４の稼働情報の総量を管理するテーブルである。【００７３】
総量稼働情報テーブルＴ１１は、例えば、時刻Ｃ１１１、オートスケールグループＩＤ  Ｃ１１２、ＣＰＵ利用量Ｃ１１３、メモリ利用量Ｃ１１４、ネットワーク利用量Ｃ１１５、ＩＯ利用量Ｃ１１６を対応付けて管理する。総量稼働情報テーブルＴ１１は、計測時刻毎に、かつオートスケールグループ毎に、レコードが作成される。【００７４】
時刻Ｃ１１１は、稼働情報（ＣＰＵ利用量、メモリ利用量、ネットワーク利用量、ＩＯ利用量）の計測日時を記憶する欄である。オートスケールグループＩＤ  Ｃ１１２は、計測対象のオートスケールグループ５を特定する識別情報を記憶する欄である。【００７５】
ＣＰＵ利用量Ｃ１１３は、オートスケールグループ５内の各コンテナ４が計算機２のＣＰＵ２１を利用する総量（ＧＨｚ）を記憶する欄である。メモリ利用量Ｃ１１４は、オートスケールグループ５内の各コンテナ４が計算機２のメモリ２２を利用する総量（ＭＢ）を記憶する欄である。ネットワーク利用量Ｃ１１５は、オートスケールグループ５内の各コンテナ４が通信ネットワークＣＮ１（または図示せぬ他の通信ネットワーク）を利用して通信する総量（Ｍｂｐｓ）を記憶する欄である。ＩＯ利用量Ｃ１１６は、オートスケールグループ５内の各コンテナ４の入力情報および出力情報の回数（ＩＯＰＳ）を記憶する欄である。【００７６】
図１１を用いて、平均稼働情報テーブルＴ１２について説明する。平均稼働情報テーブルＴ１２は、オートスケールグループ５内の各コンテナ４の稼働情報の平均を管理するテーブルである。平均稼働情報テーブルＴ１２は、計測時刻毎に、かつオートスケールグループ毎に、レコードが作成される。【００７７】
平均稼働情報テーブルＴ１２は、例えば、時刻Ｃ１２１、オートスケールグループＩＤ  Ｃ１２２、ＣＰＵ利用量Ｃ１２３、メモリ利用量Ｃ１２４、ネットワーク利用量Ｃ１２５、ＩＯ利用量Ｃ１２６を対応付けて管理する。【００７８】
時刻Ｃ１２１は、稼働情報（ＣＰＵ利用量、メモリ利用量、ネットワーク利用量、ＩＯ利用量）の計測日時を記憶する欄である。オートスケールグループＩＤ  Ｃ１２２は、計測対象のオートスケールグループ５を特定する識別情報を記憶する欄である。【００７９】
ＣＰＵ利用量Ｃ１２３は、オートスケールグループ５内の各コンテナ４が計算機２のＣＰＵ２１を利用する平均値（ＧＨｚ）を記憶する欄である。メモリ利用量Ｃ１２４は、オートスケールグループ５内の各コンテナ４が計算機２のメモリ２２を利用する平均値（ＭＢ）を記憶する欄である。ネットワーク利用量Ｃ１２５は、オートスケールグループ５内の各コンテナ４が通信ネットワークＣＮ１（または図示せぬ他の通信ネットワーク）を利用して通信する平均量（Ｍｂｐｓ）を記憶する欄である。ＩＯ利用量Ｃ１２６は、オートスケールグループ５内の各コンテナ４の入力情報および出力情報の平均回数（ＩＯＰＳ）を記憶する欄である。【００８０】
図１２を用いて、総量ベースラインテーブルＴ１３について説明する。総量ベースラインテーブルＴ１３は、総量稼働情報に基づいて生成される総量ベースラインを管理するテーブルである。【００８１】
総量ベースラインテーブルＴ１３は、例えば、週周期Ｃ１３１、オートスケールグループＩＤ  Ｃ１３２、ＣＰＵ利用量Ｃ１３３、メモリ利用量Ｃ１３４、ネットワーク利用量Ｃ１３５、ＩＯ利用量Ｃ１３６を対応付けて管理する。総量ベースラインテーブルＴ１３は、周期毎に、かつオートスケールグループ毎にレコードが作成される。【００８２】
週周期Ｃ１３１は、ベースラインの週周期を保持する欄である。図１２に示す例では、毎週月曜日に、かつオートスケールグループ毎に、総量ベースラインを作成することがわかる。【００８３】
オートスケールグループＩＤ  Ｃ１３２は、ベースラインの対象となるオートスケールグループ５を特定する識別情報を記憶する欄である。ＣＰＵ利用量Ｃ１３３は、オートスケールグループ５内の各コンテナ４が計算機２のＣＰＵ２１を利用する総量のベースライン（ＧＨｚ）を記憶する欄である。メモリ利用量Ｃ１３４は、オートスケールグループ５内の各コンテナ４が計算機２のメモリ２２を利用する総量のベースライン（ＭＢ）を記憶する欄である。ネットワーク利用量Ｃ１３５は、オートスケールグループ５内の各コンテナ４が通信ネットワークＣＮ１（または図示せぬ他の通信ネットワーク）を利用して通信する総量のベースライン（Ｍｂｐｓ）を記憶する欄である。ＩＯ利用量Ｃ１３６は、オートスケールグループ５内の各コンテナ４の入力情報および出力情報の回数のベースライン（ＩＯＰＳ）を記憶する欄である。【００８４】
図１２を用いて、平均ベースラインテーブルＴ１４について説明する。平均ベースラインテーブルＴ１４は、稼働情報の平均に基づいて生成される平均ベースラインを管理するテーブルである。平均ベースラインテーブルＴ１４は、周期毎に、かつオートスケールグループ毎に、レコードが作成される。【００８５】
平均ベースラインテーブルＴ１４は、例えば、週周期Ｃ１４１、オートスケールグループＩＤ  Ｃ１４２、ＣＰＵ利用量Ｃ１４３、メモリ利用量Ｃ１４４、ネットワーク利用量Ｃ１４５、ＩＯ利用量Ｃ１４６を対応付けて管理する。【００８６】
週周期Ｃ１４１は、平均ベースラインの週周期を保持する欄である。オートスケールグループＩＤ  Ｃ１４２は、ベースラインの対象となるオートスケールグループ５を特定する識別情報を記憶する欄である。ＣＰＵ利用量Ｃ１４３は、オートスケールグループ５内の各コンテナ４が計算機２のＣＰＵ２１を利用する平均ベースライン（ＧＨｚ）を記憶する欄である。メモリ利用量Ｃ１４４は、オートスケールグループ５内の各コンテナ４が計算機２のメモリ２２を利用する平均ベースライン（ＭＢ）を記憶する欄である。ネットワーク利用量Ｃ１４５は、オートスケールグループ５内の各コンテナ４が通信ネットワークＣＮ１（または図示せぬ他の通信ネットワーク）を利用して通信する平均ベースライン（Ｍｂｐｓ）を記憶する欄である。ＩＯ利用量Ｃ１４６は、オートスケールグループ５内の各コンテナ４の入力情報および出力情報の平均ベースライン（ＩＯＰＳ）を記憶する欄である。【００８７】
図１４は、稼働情報取得プログラムＰ１０の処理を示すフローチャートである。稼働情報取得プログラムＰ１０は、毎週一定時刻などのように定期的に、計算機２からコンテナ４の稼働情報を取得する。動作の主体を稼働情報取得プログラムＰ１０として説明するが、これに代えて、稼働情報取得部Ｐ１０または管理サーバ１を動作主体として説明することもできる。【００８８】
稼働情報取得プログラムＰ１０は、複製制御装置３からオートスケールグループテーブルＴ３０の情報を取得する（Ｓ１００）。稼働情報取得プログラムＰ１０は、オートスケールグループテーブルＴ３０に記載された各コンテナ４のうち、稼働情報を取得していないコンテナが存在するか確認する（Ｓ１０１）。【００８９】
稼働情報取得プログラムＰ１０は、稼働情報を取得していないコンテナ４がある場合（Ｓ１０１：ＹＥＳ）、そのコンテナ４の稼働情報を計算機２から取得して、コンテナ稼働情報テーブルＴ１０へ保存し（Ｓ１０２）、ステップＳ１００へ戻る。【００９０】
稼働情報取得プログラムＰ１０は、全てのコンテナ４から稼働情報を取得すると（Ｓ１０１：ＮＯ）、所定の統計処理を実施していないオートスケールグループ５が存在するか確認する（Ｓ１０３）。所定の統計処理とは、ここでは例えば、各稼働情報の総量を算出する処理、および各稼働情報の平均を算出する処理である。【００９１】
稼働情報取得プログラムＰ１０は、未処理のオートスケールグループ５がある場合（Ｓ１０３：ＹＥＳ）、その未処理のオートスケールグループ５に含まれる各コンテナ４の稼働情報の総和を計算し、総量稼働情報テーブルＴ１１に保存する（Ｓ１０４）。さらに、稼働情報取得プログラムＰ１０は、その未処理のオートスケールグループ５に含まれる各コンテナ４の稼働情報の平均を計算し、平均稼働情報テーブルＴ１２に保存する（Ｓ１０５）。その後、稼働情報取得プログラムＰ１０は、ステップＳ１０３へ戻る。【００９２】
図１５は、ベースライン生成プログラムＰ１１の処理を示すフローチャートである。ベースライン生成プログラムＰ１１は、定期的に、オートスケールグループ毎の、総量ベースラインおよび平均ベースラインを生成する。ここでは動作の主体をベースライン生成プログラムＰ１１として説明するが、これに代えて、ベースライン生成部Ｐ１１または管理サーバ１を動作主体として説明することもできる。【００９３】
ベースライン生成プログラムＰ１１は、複製制御装置３からオートスケールグループテーブルＴ３０の情報を取得する（Ｓ１１０）。ベースライン生成プログラムＰ１１は、オートスケールグループ５のうちベースラインを更新していないオートスケールグループ５があるか確認する（Ｓ１１１）。【００９４】
ベースライン生成プログラムＰ１１は、ベースラインを更新していないオートスケールグループ５がある場合（Ｓ１１１：ＹＥＳ）、総量稼働情報テーブルＴ１１に記録された稼働情報を用いて総量ベースラインを生成し、総量ベースラインテーブルＴ１３へ保存する（Ｓ１１２）。【００９５】
ベースライン生成プログラムＰ１１は、平均稼働情報テーブルＴ１２の稼働情報を用いて平均ベースラインを生成し、平均ベースラインテーブルＴ１４に保存し（Ｓ１１３）、ステップＳ１１１へ戻る。【００９６】
ベースライン生成プログラムＰ１１は、全てのオートスケールグループ５について、総量ベースラインおよび平均ベースラインを更新すると（Ｓ１１１：ＮＯ）、本処理を終了する。【００９７】
図１６は、性能劣化予兆検知プログラムＰ１２の処理を示すフローチャートである。性能劣化予兆検知プログラムＰ１２は、稼働情報取得プログラムＰ１０が稼働情報を収集すると、性能劣化（性能障害）の予兆が発生していないか確認する。ここでは動作の主体を性能劣化予兆検知プログラムＰ１２として説明するが、これに代えて、性能劣化予兆検知部Ｐ１２または管理サーバ１を動作主体として説明することもできる。なお、性能劣化予兆検知プログラムＰ１２を、予兆検知プログラムＰ１２と呼ぶ場合がある。【００９８】
性能劣化予兆検知プログラムＰ１２は、複製制御装置３からオートスケールグループテーブルＴ３０の情報を取得する（Ｓ１２０）。予兆検知プログラムＰ１２は、各オートスケールグループ５のうち、性能劣化の予兆を判断していないオートスケールグループ５があるか確認する（Ｓ１２１）。【００９９】
予兆検知プログラムＰ１２は、未判断のオートスケールグループ５がある場合（Ｓ１２１：ＹＥＳ）、総量ベースラインテーブルＴ１３で保持する総量ベースラインと、総量稼働情報テーブルＴ１１で保持する総量稼働情報とを比較する（Ｓ１２２）。なお、図中では、総量稼働情報を「ＤＴ」と、総量ベースラインの中央値を「ＢＬＴ」と略記する場合がある。【０１００】
予兆検知プログラムＰ１２は、オートスケールグループ５の総量稼働情報の値が、総量ベースラインの範囲内に収まっているか確認する（Ｓ１２３）。図１２に示すように、総量ベースラインは、例えば、その中央値に対して±３σの幅を持っている。中央値から３σを差し引いた値が下限値であり、中央値に３σを加えた値が上限値である。【０１０１】
予兆検知プログラムＰ１２は、総量稼働情報の値が総量ベースラインの範囲内に収まっている場合（Ｓ１２３：ＹＥＳ）、ステップＳ１２１へ戻る。予兆検知プログラムＰ１２は、総量稼働情報の値が総量ベースラインの範囲内に収まっていない場合（Ｓ１２３：ＮＯ）、性能劣化の予兆を検知したことを示す総量ベースライン違反のアラートを発行し（Ｓ１２４）、ステップＳ１２１へ戻る。【０１０２】
換言すれば、予兆検知プログラムＰ１２は、総量稼働情報の値が総量ベースラインの範囲外にあるか否かを監視しており（Ｓ１２３）、総量稼働情報の値が総量ベースラインの範囲外にある場合にアラートを出力する（Ｓ１２４）。【０１０３】
予兆検知プログラムＰ１２は、全てのオートスケールグループ５について性能劣化の予兆があるか否かを判定し終えると（Ｓ１２１：ＮＯ）、各コンテナ４のうち、性能劣化の予兆を判断していないコンテナ４があるか確認する（Ｓ１２５）。【０１０４】
予兆検知プログラムＰ１２は、未判断のコンテナ４がある場合（Ｓ１２５：ＹＥＳ）、平均ベースラインテーブルＴ１４で保持する平均ベースラインと、コンテナ稼働情報テーブルＴ１０で保持する稼働情報とを比較する（Ｓ１２６）。図中では、平均稼働情報を「ＤＡ」と、平均ベースラインを「ＢＬＡ」と略記する場合がある。【０１０５】
予兆検知プログラムＰ１２は、コンテナ４の稼働情報の値が、平均ベースラインの範囲内に収まっているか確認する（Ｓ１２７）。図１３に示すように、平均ベースラインは、例えば、その中央値に対して±３σの幅を持っている。中央値から３σを差し引いた値が下限値であり、中央値に３σを加えた値が上限値である。【０１０６】
予兆検知プログラムＰ１２は、稼働情報の値が平均ベースラインの範囲内に収まっている場合（Ｓ１２７：ＹＥＳ）、ステップＳ１２５へ戻る。予兆検知プログラムＰ１２は、稼働情報の値が平均ベースラインの範囲内に収まっていない場合（Ｓ１２７：ＮＯ）、性能劣化の予兆を検知したことを示す平均ベースライン違反のアラートを発行し（Ｓ１２８）、ステップＳ１２５へ戻る。【０１０７】
換言すれば、予兆検知プログラムＰ１２は、稼働情報の値が平均ベースラインの範囲外にあるか否かを監視しており（Ｓ１２７）、稼働情報の値が平均ベースラインの範囲外にある場合にアラートを出力する（Ｓ１２８）。【０１０８】
図１７は、対処プログラムＰ１３の処理を示すフローチャートである。対処プログラムＰ１３は、性能劣化予兆検知プログラムＰ１２が発行したアラートを受け取ると、そのアラートに合致した対策を実施する。ここでは動作の主体を対処プログラムＰ１３として説明するが、これに代えて、対処部Ｐ１３または管理サーバ１を動作主体として説明することもできる。【０１０９】
対処プログラムＰ１３は、性能劣化予兆検知プログラムＰ１２が発行したアラートを受信する（Ｓ１３０）。図中では、総量ベースライン違反のアラート（総量アラートとも呼ぶ）を「ＡＴ」と、平均ベースライン違反のアラート（平均アラートとも呼ぶ）を「ＡＡ」と略記する場合がある。【０１１０】
対処プログラムＰ１３は、受信したアラートの種類が、総量ベースライン違反のアラートと平均ベースライン違反のアラートとの両方であるか判定する（Ｓ１３１）。対処プログラムＰ１３は、総量ベースライン違反のアラートと平均ベースライン違反のアラートとの両方のアラートを同時に受信した場合（Ｓ１３１：ＹＥＳ）、各アラートに対応すべく所定の対策をそれぞれ実施する。【０１１１】
すなわち、対処プログラムＰ１３は、総量ベースライン違反のアラートに対応すべく、複製制御装置３に対し、スケールアウトの指示を出す（Ｓ１３２）。複製制御装置３が、総量ベースライン違反のアラートが発行されたオートスケールグループ５に対してスケールアウトを実行すると、そのオートスケールグループ５にコンテナ４が新たに追加されるため、オートスケールグループとしての処理能力が改善する。【０１１２】
続いて対処プログラムＰ１３は、平均ベースライン違反のアラートに対応すべく、アラートの発行されたコンテナ４が設けられている計算機２に対し、コンテナ４の作り直しを指示する（Ｓ１３３）。【０１１３】
詳しくは、対処プログラムＰ１３は、アラートの発行されたコンテナ４と同じ引数（同一イメージ４０）で、計算機２に新たにコンテナ４を生成させる。そして、対処プログラムＰ１３は、アラートの原因となったコンテナ４を破棄する。【０１１４】
対処プログラムＰ１３は、総量ベースライン違反のアラートと平均ベースライン違反のアラートの両方のアラートを同時に受信していない場合（Ｓ１３１：ＮＯ）、総量ベースライン違反のアラートをステップＳ１３０で受信したか確認する（Ｓ１３４）。【０１１５】
対処プログラムＰ１３は、ステップＳ１３０で受信したアラートが総量ベースライン違反のアラートである場合（Ｓ１３４：ＹＥＳ）、複製制御装置３に対し、スケールアウトを実行するよう指示する（Ｓ１３５）。【０１１６】
対処プログラムＰ１３は、ステップＳ１３０で受信したアラートが総量ベースライン違反のアラートではない場合（Ｓ１３４：ＮＯ）、そのアラートが平均ベースライン違反のアラートであるか確認する（Ｓ１３６）。【０１１７】
対処プログラムＰ１３は、ステップＳ１３０で受信したアラートが平均ベースライン違反のアラートの場合（Ｓ１３６：ＹＥＳ）、計算機２に対し、コンテナ４の作り直しを要求する。すなわち、ステップＳ１３３で述べたと同様に、対処プログラムＰ１３は、平均ベースライン違反のアラートの発生原因となったコンテナと同じ引数でコンテナをデプロイするよう、計算機２に指示する。さらに、対処プログラムＰ１３は、平均ベースライン違反のアラートの発生原因となったコンテナを破棄するよう、計算機２に指示する。【０１１８】
このように構成される本実施例によれば、監視対象のコンテナ４（インスタンス）の生存期間がベースライン生成期間より短い環境の情報システムにおいても、ベースラインを生成でき、そのベースラインを用いて性能劣化の予兆を検出することができ、性能劣化の予兆に対して事前に対応することもできる。【０１１９】
すなわち本実施例では、コンテナ４の寿命がベースライン作成のためには短い環境下であっても、ベースライン作成上、同じオートスケールグループ５に属する各コンテナ４を擬似的に同一のコンテナ４であるとみなすため、性能劣化を予兆するためのベースラインを得ることができる。これにより、情報システムの性能劣化の予兆を検知できるため、信頼性が向上する。【０１２０】
オートスケールグループ５は、同一イメージ４０から生成されるコンテナ４のみから構成されるため、ベースライン作成の観点において、同一オートスケールグループ５内の各コンテナ４を同一コンテナとみなすことができる。【０１２１】
本実施例では、総量ベースラインと総量稼働情報を比較することで、オートスケールグループ単位の性能劣化の予兆を検知することができ、さらに、平均ベースラインと各コンテナ４の稼働情報を比較することで、コンテナ単位の性能劣化の予兆を検知することができる。従って、オートスケールグループ単位またはコンテナ単位の少なくともいずれか一方または両方で、性能劣化の予兆を検知できる。【０１２２】
本実施例では、性能劣化の予兆を検知すると、その予兆に適した対策を自動的に実施できるため、性能の劣化を未然に抑制することができ、信頼性が向上する。【０１２３】
なお、本実施例では、複製制御装置３と管理サーバ１を別々の計算機で構成しているが、これに代えて、同一の計算機において複製制御装置の処理と管理サーバの処理とを実行する構成としてもよい。【０１２４】
また、本実施例では、論理的存在であるコンテナ４を監視対象としているが、監視対象はコンテナ４に限定するものではなく、仮想サーバや物理サーバ（ベアメタル）であってもよい。ここで、物理サーバにおけるデプロイは、ＰＸＥ（Preboot Execution Environment）等のネットワークブートの仕組みを用いて、イメージ管理サーバ上のＯＳイメージを使用して起動する。【０１２５】
また、本実施例では、監視対象の稼働情報をＣＰＵ利用量、メモリ利用量、ネットワーク利用量、ＩＯ利用量としているが、稼働情報の種別はこれらに限定するものではなく、稼働情報として取得できるものであれば、他の種類の稼働情報であってもよい。
【実施例２】
【０１２６】
図１８〜図２１を用いて第２実施例を説明する。本実施例を含む以下の各実施例は第１実施例の変形例に相当するため、第１実施例との相違を中心に述べる。本実施例では、コンテナ４の設けられている各計算機２の性能差を考慮して、ベースラインを作成するためのグループを管理する。【０１２７】
図１８は、本実施例の管理サーバ１Ａの構成例を示す。本実施例の管理サーバ１Ａは、図８で述べた管理サーバ１とほぼ同様の構成を有するが、記憶装置１３に記憶されるコンピュータプログラムＰ１０Ａ，Ｐ１１Ａ，Ｐ１２Ａが第１実施例のコンピュータプログラムＰ１０，Ｐ１１，Ｐ１２と異なる。さらに、本実施例の管理サーバ１Ａは、グループ生成プログラムＰ１４と、計算機テーブルＴ１５およびグレード別グループテーブルＴ１６を記憶装置１３に保持している。【０１２８】
図１９は、情報システム内の各計算機２のグレードを管理する計算機テーブルＴ１５の構成を示す。計算機テーブルＴ１５は、例えば、計算機２を一意に特定する計算機情報を記憶する欄Ｃ１５１と、計算機２の性能を表すグレードを記憶する欄Ｃ１５２とを対応付けて構成される。計算機テーブルＴ１５は、計算機毎にレコードが作られる。【０１２９】
図２０は、同一オートスケールグループ５内の計算機２をそのグレード別に分けて管理するグレード別グループテーブルＴ１６の構成を示す。グレード別グループとは、同一のオートスケールグループ５内に属する計算機２をグレード別に分類することで形成される、仮想的なオートスケールグループである。【０１３０】
グレード別グループテーブルＴ１６は、例えば、グループＩＤ  Ｃ１６１、オートスケールグループＩＤ  Ｃ１６２、コンテナＩＤ  Ｃ１６３、計算機情報Ｃ１６４、デプロイ時の引数Ｃ１６５を対応付けて管理する。【０１３１】
グループＩＤ  Ｃ１６１は、オートスケールグループ５内に存在するグレード別グループを一意に特定する識別情報である。オートスケールグループＩＤ  Ｃ１６２は、オートスケールグループ５を一意に特定する識別情報である。コンテナＩＤ  Ｃ１６３は、コンテナ４を一意に特定する識別情報である。計算機情報Ｃ１６４は、コンテナ４が設けられている計算機２を特定する情報である。デプロイ時の引数Ｃ１６５は、コンテナＩＤ  Ｃ１６３で特定されるコンテナ４を再び作成する場合に使用する管理情報である。グレード別グループテーブルＴ１６は、コンテナ毎にレコードが作られる。【０１３２】
図２１は、グループ生成プログラムＰ１４の処理を示すフローチャートである。ここでは動作の主体をグループ生成プログラムＰ１４として述べるが、これに代えて、グループ生成部Ｐ１４または管理サーバ１Ａを動作主体としてもよい。【０１３３】
グループ生成プログラムＰ１４は、複製制御装置３からオートスケールグループテーブルＴ３０の情報を取得する（Ｓ１４０）。グループ生成プログラムＰ１４は、オートスケールグループ５のうち、グレード別のグループを生成していないオートスケールグループ５があるか確認する（Ｓ１４１）。【０１３４】
グループ生成プログラムＰ１４は、グレード別のグループ生成処理を行っていないオートスケールグループ５がある場合（Ｓ１４１：ＹＥＳ）、そのオートスケールグループ５内に、グレードの異なる計算機２に設けられたコンテナ４が含まれているか確認する（Ｓ１４２）。詳しくは、グループ生成プログラムＰ１４は、オートスケールグループテーブルＴ３０の計算機情報の欄Ｃ３０３と計算機テーブルＴ１５の計算機情報の欄Ｃ１５１とを照合することで、同一オートスケールグループ中に別グレードの計算機を利用するコンテナが存在するか判定する（Ｓ１４２）。【０１３５】
グループ生成プログラムＰ１４は、同一オートスケールグループ中に別グレードの計算機２を利用するコンテナ４が存在する場合（Ｓ１４２：ＹＥＳ）、同一オートスケールグループであって、かつ同一グレードの計算機を利用するコンテナ４からグレード別グループを作成する（Ｓ１４３）。【０１３６】
グループ生成プログラムＰ１４は、同一オートスケールグループ中に別グレードの計算機２を利用するコンテナ４が存在しない場合（Ｓ１４２：ＮＯ）、オートスケールグループに一致するグルーピングでグレード別グループを生成する（Ｓ１４４）。ステップＳ１４４では、形式的にグレード別グループを生成するが、その実態はオートスケールグループと同一である。【０１３７】
グループ生成プログラムＰ１４は、ステップＳ１４１へ戻り、オートスケールグループ５のうちグレード別のグループ生成処理を行っていないものがあるか確認する。グループ生成プログラムＰ１４は、すべてのオートスケールグループ５についてグレード別のグループ生成処理を実施すると（Ｓ１４１：ＮＯ）、処理を終了する。【０１３８】
例えば図１９、図２０の例で説明する。コンテナＩＤ「Ｃｏｎｔ００１」「Ｃｏｎｔ００２」を持つコンテナ４は、オートスケールグループＩＤ「ＡＳ０１」が同一であり、かつ計算機２のグレードも共に「Ｇｏｌｄ」で同一である。したがって、コンテナＩＤ「Ｃｏｎｔ００１」［Ｃｏｎｔ００２］を持つ２つのコンテナ４は、、いずれも、同一のグレード別グループ「ＡＳ０１ａ」に属する。【０１３９】
これに対し、オートスケールグループ「ＡＳ０２」に含まれる２つのコンテナ（Ｃｏｎｔ００３，Ｃｏｎｔ００４）は、それぞれ計算機２のグレードが異なる。一方のコンテナ（Ｃｏｎｔ００３）の設けられた計算機（Ｃ１）のグレードは「Ｇｏｌｄ」であるが、他方のコンテナ（Ｃｏｎｔ００４）の設けられた計算機（Ｃ３）のグレードは「Ｓｉｌｖｅｒ」である。【０１４０】
そこで、オートスケールグループ「ＡＳ０２」は、グレード別のグループ「ＡＳ０２ａ」，「ＡＳ０２ｂ」に仮想的に分割される。ベースラインの生成や性能劣化の予兆検知などは、グレード別に分割されたオートスケールグループ単位で実行される。【０１４１】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。本実施例では、同一のオートスケールグループ内に計算機のグレード別のグループを仮想的に生成し、そのグレード別のオートスケールグループ単位でベースラインなどを生成する。これにより、本実施例によれば、均一な性能の計算機上で動作するコンテナ群から、総量ベースラインと平均ベースラインを生成できる。この結果、本実施例では、不均一な性能の計算機で構成されており、かつ、監視対象のコンテナの生存期間がベースライン生成期間より短い環境の情報システムにおいても、ベースラインを生成して、性能劣化の予兆を検出することができ、性能劣化の予兆に対して事前に対応が可能となる。
【実施例３】
【０１４２】
図２２を用いて第３実施例を説明する。本実施例は、サイト間で稼働情報などを引き継ぐ場合を説明する。【０１４３】
図２２は、複数の情報システムを切り替え可能に接続したフェイルオーバシステムの全体図である。通常時に使用されるプライマリサイトＳＴ１と異常時に使用されるセカンダリサイトＳＴ２とは、サイト間ネットワークＣＮ２を介して接続されている。各サイト内の構成は、基本的に同一であるため、説明を省略する。【０１４４】
何らかの障害が生じた場合、プライマリサイトＳＴ１からセカンダリサイトＳＴ２へ稼働システムが切り替えられる。セカンダリサイトＳＴ２は、プライマリサイトＳＴ１で稼働していたコンテナ群と同一のコンテナ群を、通常時から備えることもできる（ホットスタンバイ）。または、セカンダリサイトＳＴ２は、障害発生時に、プライマリサイトＳＴ１で稼働していたコンテナ群と同一のコンテナ群を起動させることもできる（コールドスタンバイ）。【０１４５】
プライマリサイトＳＴ１からセカンダリサイトＳＴ２へ切り替える場合、プライマリサイトＳＴ１の管理サーバ１からセカンダリサイトＳＴ２の管理サーバ１に、コンテナ稼働情報テーブルＴ１０などを送信する。これにより、セカンダリサイトＳＴ２の管理サーバ１は、稼働実績の無いコンテナ群について速やかにベースラインを生成したり、性能劣化の予兆を検知したりすることができる。【０１４６】
プライマリサイトＳＴ１からセカンダリサイトＳＴ２へ、コンテナ稼働情報テーブルＴ１０に加えて、総量稼働情報テーブルＴ１１、平均稼働情報テーブルＴ１２、総量ベースラインテーブルＴ１３、平均ベースラインテーブルＴ１４も送信すれば、セカンダリサイトＳＴ２の管理サーバ１での演算処理の負荷を軽減できる。【０１４７】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに、本実施例では、フェイルオーバシステムに適用することで、フェイルオーバ時に速やかに性能劣化の予兆の監視を開始することができ、信頼性が向上する。なお、障害が修復されて、セカンダリサイトＳＴ２からプライマリサイトＳＴ１へ切り替える場合（フェイルバック時）、セカンダリサイトＳＴ２の管理サーバ１からプライマリサイトＳＴ１の管理サーバ１に、セカンダリサイトＳＴ２のコンテナ稼働情報テーブルＴ１０などを送信することもできる。これにより、プライマリサイトＳＴ１に切り替わった場合も、早期に性能劣化の予兆検知を開始することができる。【０１４８】
なお、本発明は、上記各実施例に限定されず、様々な変形例を含む。例えば、上記各実施例は本発明を分かりやすく説明したものであり、本発明は実施例で説明した全ての構成を備える必要はない。実施例で述べた構成の少なくとも一部を、他の構成に変更したり、削除したりすることができる。さらに、実施例に新構成を追加することもできる。【０１４９】
実施例で述べた機能や処理などの一部または全部を、ハードウェア回路として実現してもよいし、ソフトウェアとして実現してもよい。コンピュータプログラムや各種データは、計算機内の記憶装置に限らず、計算機外部の記憶装置へ格納してもよい。
【符号の説明】
【０１５０】
１，１Ａ：管理サーバ（管理計算機）、２：計算機、３：複製制御装置、４：コンテナ（仮想演算部）、５：オートスケールグループ、４０：イメージ、Ｐ１０：稼働情報取得部、Ｐ１１：ベースライン生成部、Ｐ１２：性能劣化予兆検知部、Ｐ１３：対処部
【図１】
2017168484.tif 000003
【図２】
2017168484.tif 000004
【図３】
2017168484.tif 000005
【図４】
2017168484.tif 000006
【図５】
2017168484.tif 000007
【図６】
2017168484.tif 000008
【図７】
2017168484.tif 000009
【図８】
2017168484.tif 000010
【図９】
2017168484.tif 000011
【図１０】
2017168484.tif 000012
【図１１】
2017168484.tif 000013
【図１２】
2017168484.tif 000014
【図１３】
2017168484.tif 000015
【図１４】
2017168484.tif 000016
【図１５】
2017168484.tif 000017
【図１６】
2017168484.tif 000018
【図１７】
2017168484.tif 000019
【図１８】
2017168484.tif 000020
【図１９】
2017168484.tif 000021
【図２０】
2017168484.tif 000022
【図２１】
2017168484.tif 000023
【図２２】
2017168484.tif 000024
【国際調査報告】
2017168484.tif 000025
2017168484.tif 000026
2017168484.tif 000027
2017168484.tif 000028