(57)【要約】【課題】クラスタシステムのスケールイン／スケールアウトや片寄せ時の移行コストを削減し、消費電力を削減することができるサーバ管理装置を提供する。【解決手段】サーバ管理装置１０１は、仮想サーバ群１０３を稼働する物理サーバ群１０２を管理し、物理サーバ群１０２に配置された複数の仮想サーバを含んでなるクラスタシステムを運用する際に、仮想サーバ群１０３の負荷状態により仮想サーバの配置状態を管理する。スケールイン実行時には、稼働中の仮想サーバ数が最も少ない物理サーバで稼働する仮想サーバを停止対象とする。スケールアウト実行時には、負荷変動を予測し、負荷の変動が類似したクラスタシステムが同じ物理サーバ上に集まるようにクラスタシステムのスケールアウト先を制御する。スケールインの実行タイミングは、予測した負荷変動が上昇傾向なら実行を遅らせ、下降傾向なら実行を早める。【選択図】図１
2011090594.tif 000002
【特許請求の範囲】
【請求項１】
複数の仮想サーバを有する仮想サーバ群を稼働する物理サーバを含んでなる物理サーバ群を管理し、前記物理サーバ群に配置された前記複数の仮想サーバを含んでなるクラスタシステムを運用する際に、前記仮想サーバ群の負荷状態により前記仮想サーバの配置状態を管理するサーバ管理装置であって、
前記クラスタシステムを構成する仮想サーバ群の負荷情報を収集する負荷情報収集部と、
前記仮想サーバ群が前記物理サーバのどの物理サーバに割付けられているかを構成情報として収集する構成情報収集部と、
前記収集した負荷情報からクラスタシステムを構成する仮想サーバ数の削減可否を判断する構成変更判断部と、
前記収集した構成情報から稼働する仮想サーバ数が最も少ない物理サーバを選択する構成変更対象選択部と、
前記選択した物理サーバ上で稼働する仮想サーバを停止する構成変更実行部とを有する
ことを特徴とするサーバ管理装置。
【請求項２】
前記サーバ管理装置は、さらに、
前記停止対象とした仮想サーバを停止する前に、前記停止対象の仮想サーバへのリクエスト割振りを停止しクラスタシステムから削除するスケールインを実行する
ことを特徴とする請求項１に記載のサーバ管理装置。
【請求項３】
前記サーバ管理装置は、さらに、
前記構成変更判断部が、前記収集した負荷情報からクラスタシステムを構成する仮想サーバ数の過不足を判断し、
前記構成変更対象選択部が、クラスタシステムを構成する仮想サーバ数が不足していると判断した場合に、構成情報収集部が収集した構成情報から稼働する仮想サーバ数が最も多い物理サーバを選択し、
前記構成変更実行部が、前記選択した物理サーバ上で仮想サーバを起動する
ことを特徴とする請求項１に記載のサーバ管理装置。
【請求項４】
前記サーバ管理装置は、さらに、
前記起動した仮想サーバをクラスタシステムに追加しリクエストの割振りを開始するスケールアウトを実行する
ことを特徴とする請求項３に記載のサーバ管理装置。
【請求項５】
前記サーバ管理装置は、さらに、
前記負荷情報収集部が過去に収集した負荷情報から複数のクラスタシステム間で負荷変動の類似度を導出する負荷変動類似度計算部を備え、
前記構成変更判断部が、前記収集した負荷情報から仮想サーバを追加するスケールアウトの必要性を判断し、
前記構成変更対象選択部が、前記判断でスケールアウトの必要性があるとき、前記導出した負荷変動の類似度が高いクラスタシステムを構成する仮想サーバがより多く存在する物理サーバを選択し、
前記構成変更実行部が、前記選択した物理サーバをスケールアウト先と判断しスケールアウトを実行する
ことを特徴とする請求項１に記載のサーバ管理装置。
【請求項６】
前記サーバ管理装置は、さらに、
前記構成変更実行部が構成変更した結果、前記物理サーバに対して仮想サーバが存在しないか判断し、仮想サーバが存在しないと判定したとき、物理サーバの電源切断を実行する物理サーバ電源制御部を有する
ことを特徴とする請求項１に記載のサーバ管理装置。
【請求項７】
前記構成変更実行部が、前記スケールインを実行したのちに、
前記構成変更判断部は、稼働中の仮想サーバを移行することで物理サーバの電源を切断することができるか判断し、
前記構成変更対象選択部は、前記切断の判断により物理サーバの電源を切断できるとき、１以上の仮想サーバを物理サーバ間で移行し、
前記構成変更実行部は、移行元の物理サーバで稼働する仮想サーバが存在しないか判断し、
前記物理サーバ電源制御部は、前記仮想サーバの存在の判断により稼働する仮想サーバが存在しないなら物理サーバの電源を切断する
ことを特徴とする請求項６に記載のサーバ管理装置。
【請求項８】
前記サーバ管理装置は、さらに、
前記負荷情報収集部から収集した負荷情報からクラスタシステム毎に現在時刻における負荷が上昇傾向か下降傾向かの負荷変動を判断する負荷変動予測部を備え、
前記負荷変動予測部は、
負荷が下降傾向ならスケールインの可否判断を行う閾値を高く変更し、
負荷が上昇傾向ならスケールインの可否判断を行う閾値を低く変更する
ことを特徴とする請求項２に記載のサーバ管理装置。
【請求項９】
前記構成情報収集部は、さらに、前記物理サーバが保持する未使用のコンピューティングリソース量を前記構成情報として収集し、
前記構成変更判断部は、前記収集した未使用のコンピューティングリソース量に基づいて、仮想サーバに割当てる前記コンピューティングリソース量を増加させるスケールアップの可否を判断し、
前記変更対象選択部は、前記判断によりスケールアップが可能のとき、当該仮想サーバをスケールアップし、
前記構成変更実行部は、クライアントからのリクエストを、クラスタシステムを構成する仮想サーバ群に割振る負荷分散器を管理し、前記負荷分散器を制御することによりスケールアップを実行した仮想サーバへのリクエスト割り振り量をクラスタシステム内の他の仮想サーバより増加させる
ことを特徴とする請求項５に記載のサーバ管理装置。
【請求項１０】
前記サーバ管理装置には、スケールインのときの最小の物理サーバ数を含む運用ポリシを記憶装置に記憶しており、
前記構成変更対象選択部は、スケールインの実行のときに前記最小の物理サーバ数未満とならないように、停止対象の仮想サーバを選択し、
前記停止対象の仮想サーバのスケールインを実行する
ことを特徴とする請求項２に記載のサーバ管理装置。
【請求項１１】
前記構成情報収集部は、さらに、稼働する前記物理サーバの消費電力量を収集して前記構成情報として記憶しており、
前記構成変更対象選択部は、スケールインのときに停止対象とする仮想サーバが稼働する物理サーバの消費電力量を前記構成情報から取得し、
前記取得した消費電力量が多い方の物理サーバ上で稼働する仮想サーバをスケールインのときに停止対象とする仮想サーバと判断する
ことを特徴とする請求項２に記載のサーバ管理装置。
【請求項１２】
前記構成情報収集部は、前記物理サーバが前記サーバ管理装置に登録される際にコンピューティングリソース量を含む前記構成情報を収集して記憶装置に登録し、
前記構成変更判断部は、スケールアウト対象判断のときに、停止中物理サーバの前記コンピューティングリソース量を取得し、停止中物理サーバを含めてスケールアウト先を判断し、
前記構成変更対象選択部は、前記判断により停止中物理サーバをスケールアウト先としたときに、停止中物理サーバをサーバ管理装置が起動し、
前記構成変更実行部は、前記起動をした物理サーバ上で仮想サーバを起動しスケールアウトをする
ことを特徴とする請求項５に記載のサーバ管理装置。
【請求項１３】
前記サーバ管理装置は、
前記１以上の仮想サーバを物理サーバ間で移行する際に、前記クラスタシステムを構成する移行元の物理サーバで稼働する仮想サーバと移行先の物理サーバで停止状態の仮想サーバとの起動／停止操作において、
移行先の物理サーバで停止状態である移行先の仮想サーバに対する起動を移行先の物理サーバに要求し、
クライアントからのリクエストを割振る負荷分散器に、前記移行先の仮想サーバへのリクエストの割り振りの開始を要求し、
前記負荷分散器に、前記移行元の仮想サーバへのリクエストの割り振りの停止を要求し、
前記移行元の物理サーバで稼働する前記移行元の仮想サーバに対する停止を前記移行元の物理サーバに要求する、
ことを特徴とする請求項７に記載のサーバ管理装置。
【請求項１４】
前記負荷変動類似度計算部は、
前記負荷情報収集部から前記収集した負荷情報をクラスタシステム毎に取得し、
前記クラスタシステムの負荷が増加する期間と減少する期間がより長く一致するクラスタシステム同士を、類似度の高いクラスタシステムと判定する
ことを特徴とする請求項５に記載のサーバ管理装置。
【請求項１５】
前記負荷変動類似度計算部は、
前記負荷情報収集部から前記収集した負荷情報に基づく過去の負荷変動のデータとそのときの稼働仮想サーバ数をクラスタシステム毎に取得し、
前記クラスタシステムの稼働中の仮想サーバ数が一致する期間がより長いクラスタシステム同士を、類似度の高いクラスタシステムと判定する
ことを特徴とする請求項１４に記載のサーバ管理装置。
【請求項１６】
前記負荷変動類似度計算部は、
前記クラスタシステムの稼働中の仮想サーバ数が多い期間より少ない期間が一致するクラスタシステム同士を、より類似度が高いと判定する
ことを特徴とする請求項１５に記載のサーバ管理装置。
【請求項１７】
前記負荷変動類似度計算部は、
判定を実施する時間以降でより近い時間帯で稼働中の仮想サーバ数が一致するクラスタシステム同士をより類似していると判定する
ことを特徴とする請求項１５に記載のサーバ管理装置。
【請求項１８】
前記負荷変動類似度計算部は、
抽出作業を実行する時期と同じ時期の負荷情報から負荷変動の類似度を抽出する
ことを特徴とする請求項１５に記載のサーバ管理装置。
【請求項１９】
前記負荷変動類似度計算部は、
より近い過去の負荷変動の類似度がより高いと判断するように所定時間の過去に稼働中であった仮想サーバ数に重み付けする
ことを特徴とする請求項１５に記載のサーバ管理装置。
【請求項２０】
前記負荷変動予測部は、
前記負荷情報収集部から前記収集した負荷情報に基づく負荷変動のデータを一定期間毎に区切ったデータをさらに一定期間毎に区切り、その期間内で上昇傾向か下降傾向かを算出し、
前記算出した上昇傾向と下降傾向の数がともに所定値を上回れば不安定状態と判定する
ことを特徴とする請求項８に記載のサーバ管理装置。
【請求項２１】
前記負荷変動予測部は、
前記負荷情報収集部から前記収集した負荷情報に基づく負荷変動のデータを、より近い過去の負荷変動を大きくするとともに、より遠い過去の負荷変動を小さくするように加重平均する
ことを特徴とする請求項８に記載のサーバ管理装置。
【請求項２２】
前記負荷変動予測部は、
負荷変動傾向の予測を実行する時期と同じ時期の負荷情報から負荷変動傾向を予測する
ことを特徴とする請求項８に記載のサーバ管理装置。
【請求項２３】
複数の仮想サーバを有する仮想サーバ群を稼働する物理サーバを含んでなる物理サーバ群を管理するサーバ管理装置を備え、前記物理サーバ群に配置された前記複数の仮想サーバを含んでなるクラスタシステムを運用する際に、前記仮想サーバ群の負荷状態により前記仮想サーバの配置状態を管理するサーバ管理方法であって、
前記サーバ管理装置は、
前記クラスタシステムを構成する仮想サーバ群の負荷情報を収集し、
前記仮想サーバ群が前記物理サーバのどの物理サーバに割付けられているかを構成情報として収集し、
前記収集した負荷情報から仮想サーバを停止するスケールインの可否を判断し、
前記収集した構成情報から稼働する仮想サーバ数が最も少ない物理サーバを選択し、
前記選択した物理サーバ上で稼働する仮想サーバをスケールイン実行後の停止対象として選択しスケールインを実行する
ことを特徴とするサーバ管理方法。
【請求項２４】
前記サーバ管理装置は、さらに、
前記収集した負荷情報から仮想サーバを追加するスケールアウトの必要性を判断し、
前記判断でスケールアウトの必要性があるとき、前記収集した構成情報から稼働する仮想サーバ数が最も多い物理サーバを選択し、
前記選択した物理サーバ上に仮想サーバを起動しスケールアウトを実行する
ことを特徴とする請求項２３に記載のサーバ管理方法。
【請求項２５】
前記サーバ管理装置は、さらに、
過去に収集した負荷情報から複数のクラスタシステム間で負荷変動の類似度を導出し、
前記収集した負荷情報から仮想サーバを追加するスケールアウトの必要性を判断し、
前記判断でスケールアウトの必要性があるとき、前記導出した負荷変動の類似度が高いクラスタシステムを構成する仮想サーバがより多く存在する物理サーバを選択し、
前記選択した物理サーバをスケールアウト先と判断しスケールアウトを実行する
ことを特徴とする請求項２３に記載のサーバ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１台の物理サーバを独立した１台以上の仮想的なサーバとして動作させるサーバ仮想化技術と、仮想サーバで構築するクラスタシステムの構成を動的に変更し消費電力を低減する技術に関する。
【背景技術】
【０００２】
近年、企業の情報システムである企業情報システム（以下、企業システムという。）への仮想化技術の導入が進んでいる。仮想化技術により、企業システムを構成する物理サーバは仮想サーバへと置き換えられ、サーバ統合（サーバコンソリデーション）による物理サーバ数の削減が進んでいる。物理サーバ数の削減により、企業は物理サーバ導入コストや消費電力が低減するメリットを得ている。
【０００３】
企業システムでは、時間や時期によって負荷が変動する。複数の仮想サーバで構築するクラスタシステムでサービスを提供している企業システムにおいて、負荷のピークに合わせて全ての仮想サーバを起動しておくと、負荷に対して余剰なコンピューティングリソース（例えば、ＣＰＵ（Central Processing Unit）、メモリ）、電力を供給していることとなり無駄が多い。余剰な電力を削減するために、負荷変動に応じた動的なシステム構成変更や片寄せの技術として、特許文献１や非特許文献１がある。
【０００４】
なお、ここでのクラスタシステムとは、同一の計算処理を行う複数の仮想サーバと、クライアントからのリクエストを複数の仮想サーバに対して割振る機能（例えば、負荷分散器）とを含んでなるシステムである。前記計算処理は仮想サーバ上で稼働するプログラムであるアプリケーションサーバが実行する。
【０００５】
特許文献１では、複数の仮想サーバが稼働する物理サーバが複数存在するシステムを対象としている。対象とするシステムにおいて消費電力削減を目的とし、負荷に応じて仮想サーバが稼働する物理サーバを変更する（以下、仮想サーバの移行という。）。具体的には、現在の負荷の状態から必要なコンピューティングリソース量を必要仮想サーバ数として導出し、導出した仮想サーバ数が稼働するのに最低限必要な物理サーバに仮想サーバを移行する（以下、片寄せという。）。その結果、稼働中の仮想サーバがなくなった余剰物理サーバが発生し、その物理サーバの電源を切断することで消費電力を削減する。
【０００６】
非特許文献１では、仮想サーバで構築する複数のクラスタシステムが複数の物理サーバ上で稼働する環境を対象としている。対象とする環境において、消費電力削減を目的とし、負荷に応じてクラスタシステムをスケールイン／スケールアウトする。
【０００７】
スケールインとは、クラスタシステムを構成する１以上の仮想サーバに対するリクエストの割振りを停止し、該仮想サーバをクラスタシステムより削除する処理である。スケールインにより、クラスタシステムが消費するコンピューティングリソース量は減少する。さらに、スケールインを実行した仮想サーバを停止することで稼働中の仮想サーバ数が０（ゼロ）となった物理サーバの電源を切断し消費電力を削減する。
【０００８】
一方、スケールアウトとは、１以上の仮想サーバをクラスタシステムに追加し、追加した仮想サーバにリクエスト割振りを開始する処理である。スケールアウトにより、クラスタシステムが消費するコンピューティングリソース量は増加する。また、スケールアウトを実施する前には、必要に応じて仮想サーバの起動処理を行う。
【０００９】
非特許文献１では、各物理サーバの稼働中の仮想サーバ数に応じた消費電力を消費電力データとして事前に取得している。事前取得した消費電力データを用い、スケールイン時には停止することで最も消費電力を削減する効果の高い仮想サーバをクラスタシステムから削除する処理を行う。クラスタシステムから削除した仮想サーバは停止させる。スケールアウト時には、起動した場合に最も消費電力の上昇が低い仮想サーバをクラスタシステムに追加する処理を行う。この追加処理の前に必要に応じて仮想サーバを起動させる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】ＵＳ２００５／００６０５９０Ａ１号公報
【非特許文献】
【００１１】
【非特許文献１】Dara Kusic, Power and performance management of virtualized computing environments via lookahead control, Cluster Computing, Kluwer Academic Publishers, 2009.3
【発明の概要】
【発明が解決しようとする課題】
【００１２】
特許文献１と非特許文献１の技術を組み合わせることで、負荷に応じてクラスタシステムが必要とするコンピューティングリソース量を最適化することができ、仮想サーバをできる限り少ない数の物理サーバに片寄せすることができると考えられる。その結果、消費電力を削減する効果を高めることができると推測される。しかし、消費電力を削減する効果をより高くするためには、次に示す課題を解決する必要がある。
【００１３】
第１の課題として、片寄せ実行時に仮想サーバの移行回数ができる限り少なくなるようにクラスタシステムのスケールイン／スケールアウト対象を制御することが必要である。特許文献１では、片寄せ実行時に仮想サーバ移行回数が多いと、仮想サーバの移行コストにより消費電力削減効果の低下、応答性能の低下が発生する。
【００１４】
なお、仮想サーバの移行コストとはＣＰＵ負荷、Ｉ／Ｏ負荷、移行時間などである。ＣＰＵ負荷、Ｉ／Ｏ負荷が増大すると消費電力が増加する。また、移行時間が増大することで、物理サーバの電源を切断する時間が短くなり消費電力を削減する効果が低下する。さらに、移行時間の増大は負荷変動への追従を遅らせ、クラスタシステムがユーザ要求の応答性能を出せなくなる。
【００１５】
一方、非特許文献１では、片寄せを前提としていないため、片寄せ実行時に仮想サーバの移行回数をできる限り少なくするようなクラスタシステムの構成変更方法を取ってはいない。そのため、特許文献１と非特許文献１の技術を組み合わせるだけでは、仮想サーバの移行コストによって消費電力を削減する効果が低下する問題や、応答性能が低下する問題が発生する。
【００１６】
第２の課題として、クラスタシステムに余分なコンピューティングリソースを持たせることなく、スケールイン／スケールアウトを交互に繰り返すことによる消費電力の増加を防ぐ制御が必要である。非特許文献１ではクラスタシステムにコンピューティングリソースを余分に与えることでスケールイン／スケールアウトを実行する閾値に十分な余裕を持たせている。これにより、スケールイン／スケールアウトを交互に繰り返すことを防ぎ、短期間に物理サーバの電源ＯＮ／ＯＦＦを繰り返すことによる消費電力の増加防止を実現している。しかし、この方法では、スケールイン／スケールアウトによるシステム構成の変更回数は減少するが、消費電力を削減する効果も減少する問題が存在する。
【００１７】
本発明は、前記の課題を解決するための発明であって、クラスタシステムのスケールイン／スケールアウトや片寄せ時の移行コスト、つまりシステム構成の変更回数をできる限り削減し、消費電力を削減することができるサーバ管理装置およびサーバ管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１８】
前記第１の課題を解決するために、次に示す装置・手段を設ける。
（１−１）仮想サーバの起動／停止による構成変更の対象となる複数のクラスタシステムを管理する装置として、複数の仮想サーバを利用したクラスタシステムであって、そのクラスタシステムを構成する複数の仮想サーバの一部を停止／起動する処理と、停止／起動処理に伴って実行するスケールイン／スケールアウト処理によりクラスタシステムが使用するコンピューティングリソース量を制御するサーバ管理装置（例えば、サーバ管理装置１０１）を設ける。なお、仮想サーバの停止／起動のみでクラスタシステムを構成する仮想サーバ数を変更できるが、クラスタシステムに対するリクエスト割振りの失敗を防ぐためにスケールイン／スケールアウト処理も同時に行うことが一般的である。そこで、スケールイン実行後に仮想サーバの停止処理、スケールアウト実行前に仮想サーバの起動処理を行うものとして以降説明する。
【００１９】
（１−２）スケールイン実行後に停止対象とする仮想サーバを判断する手段として、クラスタシステムの負荷情報を収集する手段（例えば、負荷情報収集部１２４）と、収集した負荷情報からスケールインの可否を判断する手段（例えば、スケールイン判断部１３１）と、前記判断によりスケールインできるなら仮想サーバの物理サーバへの構成情報を収集する手段（例えば、構成情報収集部１２５）と、前記収集した構成情報から稼働する仮想サーバ数が最も少ない物理サーバに存在する仮想サーバをスケールイン実行後の停止対象として選択する手段（例えば、スケールイン対象仮想サーバ選択部１３２）とを設ける。
【００２０】
（１−３）スケールアウト実行前に新たに仮想サーバを稼働する物理サーバを選択する手段として、クラスタシステムの負荷情報を収集する手段が収集した負荷情報からスケールアウトの必要性を判断する手段（例えば、スケールアウト判断部１３４）と、前記判断でスケールアウトの必要性があるとき、前記収集した構成情報から稼働する仮想サーバ数が最も多い物理サーバを選択する手段（例えば、スケールアウト対象物理サーバ選択部１３５）とを設ける。
【００２１】
（１−４）前記スケールアウト実行前に新たに仮想サーバを稼働する物理サーバを選択する手段の代わりに、クラスタシステムの負荷情報を収集する手段が収集した負荷情報からスケールアウトの必要性を判断する手段（例えば、スケールアウト判断部１３４）と、過去に収集した負荷情報から負荷変動の類似度を導出する手段（例えば、負荷変動類似度計算部７０１）と、導出した負荷変動の類似度が高いクラスタシステムを構成する仮想サーバがより多く存在する物理サーバを選択する手段（例えば、スケールアウト対象物理サーバ選択部１３５）とを設けてもよい。
【００２２】
さらに前記第２の課題を解決するために、次に示す手段を設ける。
（２−１）スケールインの実行タイミングを制御するために、過去に収集した負荷情報からクラスタシステム毎に現在の負荷が上昇傾向か下降傾向かを判断し、負荷が下降傾向ならスケールインを積極的に行うようにスケールインの可否判断を行う閾値を変更し、負荷が上昇傾向ならスケールインを消極的に行うようにスケールインの可否判断を行う閾値を変更する手段（例えば、負荷変動予測部１３０１）を設ける。
【００２３】
（２−２）スケールアウトの実行タイミングを制御するために、物理サーバが保持する余剰コンピューティングリソース量の情報を収集する手段（例えば、構成情報収集部１２５）と、収集した余剰コンピューティングリソースを利用して仮想サーバのスケールアップが可能かを判断する手段（例えば、スケールアウト／スケールアップ判断部１６０１）と、前記判断によりスケールアップ可能ならば、クラスタシステムのスケールアウトの代わりに仮想サーバをスケールアップする仮想サーバを選択する手段（例えば、スケールアップ対象仮想サーバ選択部１６０２）と、選択された仮想サーバをスケールアップし、負荷分散器を制御し、負荷分散器を制御することで該仮想サーバで処理するリクエスト量をクラスタシステム内の他仮想サーバより増加させる手段（例えば、スケールアップ実行部１６０３）とを設ける。
【００２４】
なお、スケールアップとは、仮想サーバに割当てるＣＰＵやメモリなどのコンピューティングリソース量を増加させ、リクエスト処理の数や速度を増強することである。このコンピューティングリソースは、スケールアップを実施する仮想サーバが稼働する物理サーバが保持する未使用のコンピューティングリソースを使用する。
【発明の効果】
【００２５】
本発明によれば、クラスタシステムのスケールイン／スケールアウトや片寄せ時の移行コスト、つまり、システム構成の変更回数をできる限り削減し、消費電力を削減することができる。
【図面の簡単な説明】
【００２６】
【図１】実施形態１に係るクラスタシステムを示す図である。
【図２】サーバ管理装置が実行するスケールイン／スケールアウトの処理の流れを示す図である。
【図３】スケールインの実行シーケンスを示す図である。
【図４】スケールアウトの実行シーケンスを示す図である。
【図５】物理サーバ上の仮想サーバ数によりスケールイン／スケールアウト対象を制御した場合の効果例を示す図である。
【図６】スケールイン判断、スケールアウト判断時の閾値を示す図である。
【図７】実施形態２に係るクラスタシステムを示す図である。
【図８】クラスタシステムの負荷類似度計算処理の流れを示す図である。
【図９】負荷変動が類似したクラスタシステムを同一物理サーバにスケールアウトした場合の効果例を示す図である。
【図１０】実施形態３に係るクラスタシステムを示す図である。
【図１１】片寄せ判断と片寄せ実行処理の流れを示す図である。
【図１２】仮想サーバの疑似移行処理の実行シーケンスを示す図である。
【図１３】実施形態４に係るクラスタシステムを示す図である。
【図１４】負荷変動予測からスケールイン／スケールアウトのタイミングを変更する処理の流れを示す図である。
【図１５】負荷変動予測によりスケールイン／スケールアウトのタイミングを変更した場合の効果例を示す図である。
【図１６】実施形態５に係るクラスタシステムを示す図である。
【図１７】スケールアップの判断と実行の流れを示す図である。
【図１８】実施形態６に係るクラスタシステムを示す図である。
【図１９】運用ポリシの例を示す図である。
【図２０】運用ポリシを利用した場合の、構成変更判断部、構成変更対象選択部、構成変更実行部の処理の流れを示す図である。
【図２１】スケールイン対象仮想サーバ選択処理の流れを示す図である。
【図２２】サーバ管理装置が行うスケールイン／スケールアウト、片寄せ時のクラスタシステムの構成例を示す図である。
【発明を実施するための形態】
【００２７】
以下、本発明を実施するための形態を、図面を参照して詳細に説明する。
<<実施形態１>>
図１は、実施形態１に係るクラスタシステムを示す図である。クラスタシステムは、サーバ管理装置１０１、仮想サーバ群１０３を有する管理対象となる物理サーバ群１０２、負荷分散器１０４から構成されており、負荷分散器１０４は、ネットワーク１０５を介してクライアント１０６に接続されている。
【００２８】
サーバ管理装置１０１は、スケールイン／スケールアウトを実行する機能を有し、一般的なコンピュータを用いて実現することができる。サーバ管理装置１０１は、メモリ１１２と、ＣＰＵ１１３と、通信装置１１４と、ハードディスクなどの記憶装置１１１と、入力装置１１５と、表示装置１１６とを備える。サーバ管理装置１０１は、通信装置１１４を介して、管理対象の物理サーバ群１０２、仮想サーバ群１０３、負荷分散器１０４に接続している。
【００２９】
スケールインとは、クラスタシステムを構成する１以上の仮想サーバに対するリクエストの割振りを停止し、該仮想サーバをクラスタシステムより削除する処理である。スケールインにより、クラスタシステムが消費するコンピューティングリソース量は減少する。さらに、スケールインを実行した仮想サーバを停止することで、稼働中の仮想サーバ数が０（ゼロ）となった物理サーバの電源を切断し消費電力を削減することができる。また、スケールアウトとは、１以上の仮想サーバをクラスタシステムに追加し、追加した仮想サーバにリクエスト割振りを開始する処理である。スケールアウトにより、クラスタシステムが消費するコンピューティングリソース量は増加することができる。また、スケールアウトを実施する前には、必要に応じて仮想サーバの起動処理を行う。
【００３０】
入力装置１１５は、キーボードやマウスなどのコンピュータに指示を入力するための装置であり、プログラム起動などの指示を入力する。表示装置１１６は、ディスプレイなどであり、サーバ管理装置１０１による処理の実行状況や実行結果などを表示する。ＣＰＵ１１３は、メモリ１１２に格納される各種プログラムを実行する。通信装置１１４は、ＬＡＮ(Local Area Network)などを介して、他の装置と各種データやコマンドを交換する。記憶装置１１１は、サーバ管理装置１０１が処理を実行するための各種データを保存する。メモリ１１２は、サーバ管理装置１０１が処理を実行する各種プログラムおよび一時的なデータを保持する。
【００３１】
サーバ管理装置１０１は、複数のクラスタシステムを管理しており、クラスタシステムは負荷分散器１０４と仮想サーバ群１０３に含まれる複数の仮想サーバから構成し、ネットワーク１０５を介してクライアント１０６からのリクエストを受け取り処理する。なお、ここでの負荷分散器１０４とは、クライアント１０６からのリクエストを仮想サーバ群１０３内の１以上の仮想サーバに割振る装置のことである。
【００３２】
図１において、負荷分散器１０４は、ネットワーク１０５と物理サーバ群１０２の間に存在するが、物理サーバ群１０２に仮想的な装置として配置してもよいし、仮想サーバ群１０３内の仮想サーバに負荷分散器と同様の機能を持たせてもよい。また、クライアント１０６が負荷分散器１０４と同様の機能を持ちクライアント１０６にてリクエストを割振る処理を行ってもよい。
【００３３】
仮想サーバ群１０３は、物理サーバ群１０２で動作する仮想化ソフトウェア１０７の上で実行される。この仮想サーバ群１０３のうち任意の台数を利用して複数のクラスタシステムを構築する。なお、仮想化ソフトウェアとは、物理サーバが持つコンピューティングリソースを仮想サーバ群１０３で分割、または共有して利用できるよう制御するソフトウェアである。
【００３４】
ＣＰＵ１１３は、記憶装置１１１に格納されたプログラム１５１とデータ１５２をメモリ１１２に読み出して実行する。プログラム１５１は、負荷情報収集部１２４、構成情報収集部１２５、構成変更判断部１２１、負荷情報保存／取得部１４１、構成情報保存／取得部１４２、構成変更対象選択部１２２、構成変更実行部１２３、物理サーバ電源ＯＦＦ可否判断部１２６、物理サーバ電源ＯＦＦ実行部１２７、物理サーバ電源ＯＮ実行部１２８を有する。
【００３５】
例えば、構成変更判断部１２１は、取得（収集）した負荷情報からクラスタシステムを構成する仮想サーバ数の削減可否を判断する。また、構成変更判断部１２１は、負荷情報収集部１２４が収集した負荷情報からクラスタシステムを構成する仮想サーバ数の過不足を判断する。構成変更判断部１２１は、負荷情報収集部１２４が収集した負荷情報からクラスタシステムを構成する仮想サーバ数の過不足を判断し、構成変更対象選択部１２２が、クラスタシステムを構成する仮想サーバ数が不足していると判断した場合に、構成情報収集部１２５が収集した構成情報から稼働する仮想サーバ数が最も多い物理サーバを選択し、構成変更実行部１２３が、選択した物理サーバ上で仮想サーバを起動する。
【００３６】
負荷情報収集部１２４は、クラスタシステムを構成する仮想サーバ群の負荷情報を通信装置１１４により、仮想サーバ群１０３と仮想化ソフトウェア１０７と通信することで受け取る。負荷情報保存／取得部１４１は、負荷情報収集部１２４が収集した負荷情報を記憶装置１１１にデータ１５２として保存するとともに、過去の負荷情報をデータ１５２から取得する。構成変更判断部１２１は、負荷情報保存／取得部１４１で取得した負荷情報からクラスタシステムの構成変更の実行可否や要否を判断する。
【００３７】
なお、図１においては、負荷情報収集部１２４と、負荷情報保存／取得部１４１とを分けて説明しているが、これに限定されるものではない。負荷情報収集部１２４が、クラスタシステムを構成する仮想サーバ群の負荷情報を通信装置１１４により、仮想サーバ群１０３と仮想化ソフトウェア１０７と通信することで受け取り、収集した負荷情報を記憶装置１１１にデータ１５２として保存するとともに、過去の負荷情報をデータ１５２から取得してもよい。この場合、構成変更判断部１２１は、負荷情報収集部１２４で取得した負荷情報からクラスタシステムの構成変更の実行可否や要否を判断する。
【００３８】
構成情報収集部１２５では、仮想サーバ群１０３が物理サーバ群１０２中のどの物理サーバで実行する仮想化ソフトウェア１０７上に割付けられているかの情報と物理サーバが保持する未使用のコンピューティングリソース量を構成情報として通信装置１１４を介して収集する。
【００３９】
構成情報保存／取得部１４２では、構成情報収集部１２５が収集した構成情報を記憶装置１１１にデータ１５２として保存するとともに、過去の構成情報をデータ１５２から取得する。
【００４０】
構成変更対象選択部１２２では、構成変更判断部１２１においてクラスタシステムの構成変更を実行すると判断した場合に、構成情報保存／取得部１４２で取得した情報から片寄せ実行時の仮想サーバ移行回数が削減できるように構成変更の対象となる仮想サーバまたは物理サーバを選択する。構成変更実行部１２３では、構成変更対象選択部１２２で選択した構成変更の対象に対して構成変更を実行する。
【００４１】
物理サーバ電源ＯＦＦ可否判断部１２６では、構成変更の実行の結果、物理サーバ群１０２内の物理サーバに対して電源を切断できるか判断する。物理サーバ電源ＯＦＦ実行部１２７では、物理サーバ電源ＯＦＦ可否判断部１２６において物理サーバの電源が切断できると判断した場合に物理サーバの電源切断を実行する。物理サーバ電源ＯＮ実行部１２８では、構成変更実行時に物理サーバの電源を投入する必要がある場合に電源を投入する。
【００４２】
構成変更判断部１２１は、スケールインの可否を判断するスケールイン判断部１３１と、スケールアウトの必要性を判断するスケールアウト判断部１３４を有する。構成変更対象選択部１２２は、スケールイン実行後に停止対象とする仮想サーバを選択するスケールイン対象仮想サーバ選択部１３２と、スケールアウト実行前に仮想サーバを稼働させる物理サーバを選択するスケールアウト対象物理サーバ選択部１３５を有する。構成変更実行部１２３は、クラスタシステムのスケールインを実行した後にスケールイン対象仮想サーバ選択部１３２で選択した仮想サーバを停止するスケールイン実行部１３３と、スケールアウト対象物理サーバ選択部１３５で選択した物理サーバ上で仮想サーバを稼働させ、スケールアウトを実行するスケールアウト実行部１３６を有する。
【００４３】
サーバ管理装置１０１は、管理する複数のクラスタシステムに対して、スケールイン実行後に停止対象とする仮想サーバ、スケールアウト実行前に仮想サーバを新たに稼働させる物理サーバを選択する。この時、仮想サーバの起動／停止、移行による片寄せといった構成変更にかかる消費電力や時間をも削減する手段について図２２を用いて概要を説明する。
【００４４】
（本実施形態の概要）
図２２は、サーバ管理装置が行うスケールイン／スケールアウト、片寄せ時のクラスタシステムの構成例を示す図である。ここでは、構成情報表２２１１に示されるように、サーバ管理装置１０１がクラスタシステムＡ（２２２１）、クラスタシステムＢ（２２２２）、クラスタシステムＣ（２２２３）を管理する環境を例として説明する。図２２において、クラスタシステムを構成する仮想サーバと物理サーバの対応関係と負荷分散器１０４との関係を仮想／物理サーバの構成２２０１で示す。負荷分散器１０４は、各クラスタシステムを構成する仮想サーバにクライアントからのリクエストを割振る。
【００４５】
図２２において、説明のため仮想／物理サーバの構成２２０１を構成情報表２２１１に示す。構成情報表２２１１では、物理サーバ列にサーバ管理装置１０１が管理する物理サーバ群＃１〜＃３を示す。仮想サーバ群列には、物理サーバ＃１〜＃３上で稼働中の仮想サーバを示す。例えば、物理サーバ＃１では、クラスタシステムＡを構成する仮想サーバＡ１、クラスタシステムＢを構成する仮想サーバＢ１、クラスタシステムＣを構成する仮想サーバＣ１，Ｃ２が稼働する。サーバ管理装置１０１が管理する複数のクラスタシステムに関して、クラスタシステムＡ（２２２１）は、仮想サーバＡ１，Ａ２，Ａ３により構成される。クラスタシステムＢ（２２２２）は、仮想サーバＢ１，Ｂ２，Ｂ３により構成される。クラスタシステムＣ（２２２３）は、仮想サーバＣ１，Ｃ２，Ｃ３により構成される。なお、図２２の構成情報表２２１２〜２２１４は、全て構成情報表２２１１と同様の構成情報表である。
【００４６】
クラスタシステムＢ（２２２２）に対する負荷が低下し、スケールインが可能となった場合には、仮想サーバＢ１，Ｂ２，Ｂ３の中から仮想サーバを選択し停止する。本実施形態では、片寄せを行うことも考慮し、片寄せ時に物理サーバ間で移行する仮想サーバ数が少なくなるようにスケールイン実行後に停止対象とする仮想サーバを選択する。具体的には、クラスタシステムＢ（２２２２）を構成する仮想サーバＢ１，Ｂ２，Ｂ３の中で仮想サーバＢ３を停止対象とすることで、物理サーバ＃３の電源切断に最も近いとサーバ管理装置１０１が判断する。そして、スケールインを実行した結果を構成情報表２２１２に示す。
【００４７】
また、構成情報表２２１２の状態から片寄せにより仮想サーバＡ３を物理サーバ＃２上で稼働するように移行した結果を構成情報表２２１４に示す。片寄せの結果、物理サーバ＃３で稼働する仮想サーバが存在しなくなったため、物理サーバ＃３の電源を切断し消費電力を削減できる。
【００４８】
一方、構成情報表２２１１の状態からクラスタシステムＢ（２２２２）に対する負荷が上昇した場合には、スケールアウトを行う。本実施形態では、スケールアウト後にスケールイン、片寄せといった構成変更を実施した場合に消費電力ができる限り少なくなるようにスケールアウト先となる物理サーバを選択する。具体的には、まずクラスタシステムＢ（２２２２）を構成する仮想サーバを新たに立ち上げる未使用のコンピューティングリソースを保持する物理サーバ＃２，＃３を選択する。次に選択した物理サーバ＃２，＃３のうち、稼働中の仮想サーバ数が最も多い物理サーバ＃２をスケールアウト対象となる仮想サーバとして選択しスケールアウトを実行する。その結果を構成情報表２２１３に示す。
【００４９】
スケールアウト後にクラスタシステムＡ（２２２１）、クラスタシステムＢ（２２２２）をスケールインした場合には、仮想サーバＡ３，Ｂ３を停止し物理サーバ＃３の電源を切断できる。
【００５０】
従来技術では、スケールイン後に片寄せすることや、スケールアウト後にスケールインや片寄せまでを考慮してスケールインの対象とする仮想サーバ、スケールアウトの対象とする物理サーバを選択していない。そのため、本実施形態のようなできる限り少ない仮想サーバの移行回数で片寄せを実行し、消費電力を削減することはできていない。以降では図２２を用いて説明した概要を図２〜図６を用いて詳細に説明する。
【００５１】
図２は、サーバ管理装置が実行するスケールイン／スケールアウトの処理の流れを示す図である。適宜図１を参照する。サーバ管理装置１０１の動作について、図２に示すフロー図に従って説明する。サーバ管理装置１０１は、複数のクラスタシステムに対して次に示す処理を実行する。なお、この処理は複数のクラスタシステムに対して順番に実行してもよいし、同時に実行してもよい。また、ここでは複数のクラスタシステムのうちサーバ管理装置１０１が処理を実行しているクラスタシステムを、対象クラスタシステムと記述する。
【００５２】
サーバ管理装置１０１では、対象クラスタシステムを構成する仮想サーバ群１０３の負荷情報を、通信装置１１４を介して負荷情報収集部１２４が収集する（ステップＳ２０１）。ここでの負荷情報は、仮想サーバと通信して収集してもよいし、各物理サーバで稼働する仮想化ソフトウェア１０７と通信して収集してもよい。
【００５３】
負荷情報収集部１２４が収集した負荷情報を負荷情報保存／取得部１４１が記憶装置１１１に格納する（ステップＳ２０２）。この負荷情報は、コンピューティングリソースとアプリケーションサーバが持つ情報を有する。
【００５４】
なお、本実施形態でのコンピューティングリソースとは、仮想サーバのＣＰＵ使用率（ＣＰＵ）、メモリ使用率（Ｍｅｍｏｒｙ）、ディスク使用率、ネットワーク帯域使用率である。アプリケーションサーバが持つ情報とは、仮想サーバ上で稼働するアプリケーションの処理待ちキュー数（Ｑｕｅｕｅ）、ＤＢとのコネクション数（ＤＢ）、ＦｕｌｌＧＣ（Garbage Collection）の発生頻度（ＦｕｌｌＧＣ）、セッション数（Ｓｅｓｓｉｏｎ）などのクライアントからのリクエストやアプリケーションの実行時間に応じて増減する値である。それぞれの負荷情報には、図６のスケールイン／スケールアウトの判断条件となる閾値表６０１に示すような閾値を事前に設定し記憶装置１１１内のデータ１５２に保持しておく。
【００５５】
図６は、スケールイン判断、スケールアウト判断時の閾値を示す図である。スケールイン／スケールアウトの判断条件となる閾値表６０１は、判断条件列と、閾値とから構成され、判断条件列は判断条件＃１〜＃８から構成されている。判断条件＃１には動作種別であるスケール／スケールアウト／片寄（片寄せ）があり、判断条件＃２には条件であるａｎｄ／ｏｒがあり、判断条件＃３〜＃８には各判断条件の項目がある。具体的には、スケールインの場合には、ａｎｄ条件により、判断条件＃３〜＃８を全て満たせばスケールインを実行することを意味する。スケールアウトの場合には、ｏｒ条件で判断条件＃３〜＃８を１つでも満たせばスケールアウトを実行することを意味する。なお、図中、「＜＝」は以下を、「＝＝」は等しいことを、「＞＝」は以上を、「＞」はより大きいことを意味する。
【００５６】
図２に戻り、スケールイン判断部１３１は、負荷情報保存／取得部１４１が記憶装置１１１から取得した負荷情報を用い、対象クラスタシステムのスケールインが可能か判断する（ステップＳ２０３）。具体的には、取得した負荷情報が対象クラスタシステムに予め設定した閾値α以下かを判断する。前記閾値αは、例えば図６のスケールイン／スケールアウト列であり、判断条件＃３〜＃８に記述の値である。負荷が閾値α以下であれば（ステップＳ２０３，Ｙｅｓ）、スケールイン可能と判断し、ステップＳ２０４に進む。負荷が閾値α以下でなければ（ステップＳ２０３，Ｎｏ）、スケールイン可能でないと判断し、ステップＳ２１０に進む。
【００５７】
ステップＳ２０４において、構成情報収集部１２５が、物理サーバと仮想サーバの構成情報と物理サーバが保持する未使用のコンピューティングリソース量を収集する。続いて、収集した構成情報を構成情報保存／取得部１４２が記憶装置１１１に格納する（ステップＳ２０５）。スケールイン対象仮想サーバ選択部１３２は、収集した構成情報から最適なスケールイン対象の仮想サーバを選択する（ステップＳ２０６）。ステップＳ２０６の詳細（図２１参照）は後述する。
【００５８】
スケールイン実行部１３３は、クラスタシステムをスケールインし、スケールイン実行後に停止対象とした仮想サーバを停止する（ステップＳ２０７）。具体的なスケールインの手順は後述する。その後、物理サーバ電源ＯＦＦ可否判断部１２６がスケールインを実行した物理サーバ上に稼働中の仮想サーバが存在するか判定する（ステップＳ２０８）。稼働中の仮想サーバが存在すれば（ステップＳ２０８，Ｙｅｓ）、物理サーバの電源ＯＦＦを実行できないと判断し、ステップＳ２１０のスケールアウトの要否判断に進む。稼働中の仮想サーバが存在しなければ（ステップＳ２０８，Ｎｏ）、物理サーバ電源ＯＦＦ実行部１２７がスケールインを実行した物理サーバの電源をＯＦＦし（ステップＳ２０９）、ステップＳ２１０に進む。ここでの物理サーバの電源ＯＦＦは、例えば、ＳＳＨ(Secure SHell)、Ｔｅｌｎｅｔ、Ｗｅｂサービスなどを利用して停止対象物理サーバに停止信号を送信する。
【００５９】
前記したステップＳ２０６における、スケールイン対象仮想サーバ選択部１３２が実行する、スケールイン実行後に停止対象とする仮想サーバの選択についての具体的な手順を、図２１を参照しながら説明する。
【００６０】
図２１は、スケールイン対象仮想サーバ選択処理の流れを示す図である。まず、スケールインが可能なクラスタシステムを構成する仮想サーバが稼働する物理サーバ群Ｐを抽出する（ステップＳ２１０１）。次に、物理サーバ群Ｐ内の各物理サーバで稼働する仮想サーバ数ＰＮＵＭを取得する。この仮想サーバ数は他のクラスタシステムを構成する仮想サーバも含める（ステップＳ２１０２）。最後に、前記取得した稼働中の仮想サーバ数ＰＮＵＭが最も少ない物理サーバを選択し、前記選択した仮想サーバをスケールイン実行後に停止対象とする仮想サーバとして選択する（ステップＳ２１０３）。
【００６１】
なお、構成情報収集部１２５は、稼働する前記物理サーバの消費電力量を収集し、構成情報保存／取得部１４２は、記憶装置１１１に格納してもよい。このとき、ステップＳ２０６において、スケールイン対象の仮想サーバを選択するときに、構成変更対象選択部１２２のスケールイン対象仮想サーバ選択部１３２は、さらに、スケールインのときに停止対象とする仮想サーバが稼働する物理サーバの消費電力量を構成情報から取得し、取得した消費電力量が多い方の物理サーバ上で稼働する仮想サーバをスケールインのときに停止対象とする仮想サーバと判断してもよい。
【００６２】
図３は、スケールインの実行シーケンスを示す図である。スケールインの具体的な手順を図３のシーケンス図を参照しながら説明する。まず、負荷分散器１０４に対して停止対象（スケールイン対象）の仮想サーバ３０１に対する閉塞要求を行い（ステップＳ３１１）、負荷分散器１０４では停止対象の仮想サーバへのリクエスト割振りを停止する（ステップＳ３１２）。負荷分散器１０４は、サーバ管理装置１０１に閉塞処理の完了を通知する（ステップＳ３１３）。閉塞処理完了通知を受け取ったサーバ管理装置１０１は、停止対象の仮想サーバ３０１に停止要求を送り（ステップＳ３１４）、停止対象の仮想サーバ３０１で停止処理を実行する（ステップＳ３１５）。最後に、サーバ管理装置１０１は、停止完了通知を受け取る（ステップＳ３１６）。なお、サーバ管理装置１０１は、停止対象とした仮想サーバを停止する前に、ステップＳ３１２において停止対象の仮想サーバへのリクエスト割振りを停止したのち、ステップＳ３１５においてクラスタシステムから削除するのがよい。
【００６３】
図２に戻り、スケールアウト判断部１３４では、負荷情報保存／取得部１４１が記憶装置１１１から負荷情報を収集し、対象クラスタシステムのスケールアウトが必要か判断する（ステップＳ２１０）。スケールアウトが不必要ならば（ステップＳ２１０，Ｎｏ）、ステップＳ２１７に進む。スケールアウトが必要ならば（ステップＳ２１０，Ｙｅｓ）、構成情報収集部１２５が物理サーバと仮想サーバの構成情報と物理サーバが保持する未使用のコンピューティングリソース量を収集する（ステップＳ２１１）。収集した構成情報は、構成情報保存／取得部１４２が記憶装置１１１に格納する（ステップＳ２１２）。
【００６４】
スケールアウト対象物理サーバ選択部１３５は、収集した構成情報から最適なスケールアウト対象の物理サーバを選択する（ステップＳ２１３）。具体的には、まず、対象クラスタシステムがスケールアウトするのに必要な物理リソース量βを取得する。この物理リソース量βは事前に設定しておいてもよい。次に、サーバ管理装置１０１が管理する物理サーバ群１０２のうち未使用のコンピューティングリソース量をβ以上持つ物理サーバ群Ｐを抽出する。なお抽出する物理サーバ群Ｐに停止中の物理サーバを含んでもよい。停止中の物理サーバの構成情報は過去に保存した構成情報を記憶装置１１１から取得する。最後に、物理サーバ群Ｐの中で稼働中の仮想サーバ数が最も多い物理サーバをスケールアウト対象の物理サーバとして選択する。ここまでの処理の結果、スケールアウト対象の物理サーバが存在しない場合は、スケールアウトするためのコンピューティングリソースが不足していると判断しサーバ管理者にリソース不足を通知した後に処理を終了してもよい。
【００６５】
スケールアウト実行部１３６は、スケールアウト先の物理サーバの電源がＯＮか確認する（ステップＳ２１４）。スケールアウト先の物理サーバの電源がＯＦＦならば（ステップＳ２１４，Ｎｏ）、物理サーバ電源ＯＮ実行部１２８がスケールアウト対象物理サーバの電源を投入し（ステップＳ２１５）、ステップＳ２１６に進む。ここでの物理サーバの電源投入は、例えば、「Wake up on Lan」技術を利用し通信装置１１４を介して起動物理サーバのＮＩＣ（Network Interface Card）に起動要求を送信する。スケールアウト先の物理サーバの電源がＯＮならば（ステップＳ２１４，Ｙｅｓ）、ステップＳ２１６に進む。
【００６６】
スケールアウト実行部１３６は、選択した物理サーバに対してスケールアウトを実行する（ステップＳ２１６）。スケールアウト実行後は、サーバ管理装置１０１が管理する複数のクラスタシステムに対してステップＳ２０１〜ステップＳ２１６の処理が完了しているか確認する（ステップＳ２１７）。完了していれば（ステップＳ２１７，Ｙｅｓ）、処理を終了する。完了していなければ（ステップＳ２１７，Ｎｏ）、スケールイン／スケールアウトの判断を行う対象となるクラスタシステムを変更し、ステップＳ２０１を再び実行する。
【００６７】
図４は、スケールアウトの実行シーケンスを示す図である。スケールアウト実行の処理の流れを図４のシーケンス図を参照しながら説明する。スケールアウト対象の物理サーバ４０１の電源がＯＦＦならサーバ管理装置１０１がスケールアウト対象の物理サーバ４０１の電源をＯＮにして起動する（ステップＳ４１１〜ステップＳ４１３）。スケールアウト対象の物理サーバ４０１の電源がＯＮならば、スケールアウト対象の物理サーバ４０１上にスケールアウト対象の仮想サーバ４０２の起動要求を送信する（ステップＳ４１４）。スケールアウト対象の物理サーバ４０１は、スケールアウト対象の仮想サーバ４０２を起動した（ステップＳ４１５，ステップＳ４１６）後に、サーバ管理装置１０１に起動完了通知を行う（ステップＳ４１７）。起動完了通知を受け取ったサーバ管理装置１０１は、負荷分散器１０４にリクエスト割振り開始要求を送信し（ステップＳ４１８）、新たに起動した仮想サーバにリクエスト割振りを開始する（ステップＳ４１９）。最後に、サーバ管理装置１０１はリクエスト割振り開始通知を負荷分散器１０４から受け取る（ステップＳ４２０）。すなわち、スケールアウト実行において、サーバ管理装置１０１は、起動した仮想サーバをクラスタシステムに追加し、リクエストの割振りを開始する。
【００６８】
以上のように、本実施形態では、スケールイン対象を稼働中の仮想サーバ数が少ない物理サーバから選択すると、稼働中の仮想サーバ数が減少する物理サーバを特定の物理サーバに集中することができる。その結果、物理サーバ間で稼働中の仮想サーバ数の偏りができ、従来方式に比べ少ない仮想サーバの回数で片寄せを実現することができる。
【００６９】
さらに、スケールアウト対象を稼働中の仮想サーバ数の多い物理サーバから選択することで、特定の物理サーバ上に仮想サーバを集約することができる。その結果、仮想サーバ数の少ない物理サーバは仮想サーバ数が少ない状態を維持でき、前記のスケールインによる物理サーバの電源切断が、仮想サーバの移行なし、または従来方式に比べて少ない回数で実現することができる。
【００７０】
図５は、物理サーバ上の仮想サーバ数によりスケールイン／スケールアウト対象を制御した場合の効果例を示す図である。図５（ａ）は、スケールインのみした場合であり、図５（ｂ）は、スケールアウトしたのちスケールインをした場合である。図５に示す構成情報表５０１，５２１，５１２、５３１〜５３３，５４１〜５４３は、図２２の構成情報表２２１１と同様に、物理サーバと仮想サーバの構成情報を示す。なお、構成情報表５１１，５３１〜５３３は、本実施形態に係る構成情報表であり、構成情報表５２１，５４１〜５４３は、比較例の構成情報表である。
【００７１】
図５（ａ）に示す構成情報表５０１の状態から本実施形態でのクラスタシステムＢのスケールインを実行すると構成情報表５１１の状態となる。本実施形態では、スケールイン対象を稼働中の仮想サーバ数が少ない物理サーバである物理サーバ＃３が選択されているからである。この場合、片寄せを実行するには＃３の１台の仮想サーバＡ３を物理サーバ＃２に移行すればよいことになる（移行回数は１）。
【００７２】
一方、本実施形態を適用しなかった場合（比較例の場合）には、構成情報表５２１の状態となる場合がある。この場合、片寄せを実行するには、物理サーバ＃３の２台の仮想サーバＡ３，Ｂ３を、物理サーバ＃２に移行する必要がある（移行回数は２）。この例では、本実施形態を適用することで、仮想サーバの移行回数を２から１に削減できる。なお、クラスタシステムの負荷変動は絶えず発生しており、この片寄せが一日で複数回発生する。
【００７３】
次に、クラスタシステムＢの仮想サーバを追加するスケールアウトに関しても本実施形態の効果例を示す。図５（ｂ）に示す構成情報表５０１の状態から本実施形態のスケールアウトを実行した結果が構成情報表５３１である。本実施形態では、スケールアウト対象を、仮想サーバが配置でき、かつ、稼働中の仮想サーバ数の多い物理サーバである物理サーバ＃２が選択されているからである。スケールアウトの対象は物理サーバ＃２の仮想サーバＢ４である。その後、クラスタシステムＢの負荷が低下し、本実施形態の方式でスケールインを実行した結果が構成情報表５３２である。本実施形態では、スケールイン対象を稼働中の仮想サーバ数が少ない物理サーバである物理サーバ＃３が選択されているからである。スケールインの対象は物理サーバ＃３の仮想サーバＢ３である。さらに、クラスタシステムＡの負荷が低下し、本実施形態の方式でスケールインを実行した結果が構成情報表５３３である。本実施形態では、本実施形態では、スケールイン対象を稼働中の仮想サーバ数が少ない物理サーバである物理サーバ＃３が選択されているからである。スケールインの対象は物理サーバ＃３の仮想サーバＡ３である。構成情報表５３３では、片寄せを実行しなくとも（移行回数は０）、物理サーバ＃３の電源を切断できる状態となる。
【００７４】
本実施形態を適用しなかった場合（比較例の場合）には、構成情報表５４１の状態となる場合がある。スケールアウトの対象は、物理サーバ＃３の仮想サーバＢ４である。その後、クラスタシステムＢの負荷が低下し、スケールインを実行した結果が構成情報表５４２である。スケールインの対象は物理サーバ＃１の仮想サーバＢ１である。さらに、クラスタシステムＡの負荷が低下し、スケールインを実行した結果が構成情報表５４３である。スケールインの対象は物理サーバ＃３の仮想サーバＡ３である。構成情報表５４３の状態から物理サーバ＃３の電源を切断するには、物理サーバ＃３の仮想サーバＢ３を物理サーバ＃１に移行するとともに、物理サーバ＃３の仮想サーバＢ４を物理サーバ＃２に移行する必要がある。よって、移行回数は２となる。この例では、本実施形態を適用することで、仮想サーバの移行回数を２から０に削減できる。
【００７５】
以上の２例のように本実施形態によれば、スケールイン対象を稼働中の仮想サーバ数が少ない物理サーバから選択するスケールイン／スケールアウト対象を稼働中の仮想サーバ数の多い物理サーバから選択するスケールアウトを実行することで、仮想サーバの移行回数を低減することができる。
【００７６】
<<実施形態２>>
実施形態２は、実施形態１のサーバ管理装置１０１において、スケールアウト判断時に複数のクラスタシステムの負荷変動類似度を活用してスケールアウト対象の物理サーバを選択する手段を加えたものである。ここでの負荷変動類似度とは、クラスタシステムを構成する仮想サーバ数が増減する期間と一定である期間、さらにその時の仮想サーバ数の増減率が一致する度合いである。負荷変動類似度が一致するクラスタシステムでは、クラスタシステムを構成する仮想サーバ数が同時に少ない、または多い状態に移行する。この負荷変動類似度を導出するためには、クラスタシステムを構成する仮想サーバ数が一定である期間と、その期間での仮想サーバ数の情報をクラスタシステムから取得する。前記取得した情報から、仮想サーバ数が一定である期間以外は、仮想サーバが増減している期間だとわかる。さらに、前記仮想サーバが増減している期間の前後で、仮想サーバ数が一定である期間での仮想サーバ数の差分を増減率と計算できる。
【００７７】
スケールアウト対象物理サーバ選択部１３５は、負荷変動類似度の高いクラスタシステムを構成する仮想サーバが同一物理サーバに集約するようにクラスタシステムのスケールアウト先となる物理サーバを選択する。その結果、負荷変動類似度の高いクラスタシステムを構成する仮想サーバが同一物理サーバ上に存在することとなり、同一物理サーバ上に存在する複数のクラスタシステムでスケールインが同時期に起こり、同一物理サーバ上の仮想サーバを停止できる機会が増加する。つまり、スケールイン実行後の仮想サーバの停止による仮想サーバ数の減少が同一物理サーバに集中しやすくなる。従って、負荷変動類似度の高いクラスタシステムを複数の物理サーバで分散させ、仮想サーバ数の減少を物理サーバ間で分散させる場合に比べて、物理サーバの電源切断をより速く達成できる。このように、負荷変動類似度を活用することで、片寄せによる物理サーバの電源切断を仮想サーバの移行なしに実現できる機会をさらに増加させることができる。
【００７８】
図７は、実施形態２に係るクラスタシステムを示す図である。図７に示すようにサーバ管理装置１０１の記憶装置１１１に、負荷変動類似度計算部７０１のプログラムを実施形態１のサーバ管理装置１０１に追加する。負荷変動類似度計算部７０１では、負荷情報保存／取得部１４１が記憶装置１１１から取得した過去の負荷情報から複数のクラスタシステムの負荷変動類似度を計算し、その結果をスケールアウト対象物理サーバ選択部１３５で利用する。スケールアウト対象物理サーバ選択部１３５では、負荷変動類似度の高いクラスタシステムが同一物理サーバに集約するようにスケールアウト先を選択する。負荷変動類似度計算部７０１で行う処理の具体例を図８のフロー図を参照して説明する。
【００７９】
図８は、クラスタシステムの負荷類似度計算処理の流れを示す図である。クラスタシステムＫとクラスタシステムＬとし、毎日、毎週、毎月の特定の時刻ｔにおけるクラスタシステムＫ、クラスタシステムＬにおいて稼働中であった仮想サーバ数の平均値をＳＫ（ｔ）、ＳＬ（ｔ）とする。図８において、負荷変動類似度計算部７０１は、抽出作業を実行する時期と同じ時期の負荷情報から負荷変動の類似度を抽出する。ここでの時期とは、曜日、月、及び特定日であり、例えば、負荷変動類似度計算部７０１は、毎週金曜日の特定の時刻tにおいて稼働中であった仮想サーバ数の平均値を、金曜日における負荷変動の類似度を抽出するのに利用する。また、負荷情報を取得する曜日、月、及び特定日は単独または組合せでもよい。
【００８０】
任意の時刻ｔ１から任意の時刻ｔ２までの過去に稼働中であった仮想サーバ数の平均値の差分をＤiff（ＳＫ，ＳＬ）とし、全クラスタシステムに対して計算する（ステップＳ８０１）。このＤiff（ＳＫ，ＳＬ）の計算には例えば、積分を用いて次のように計算する。
Ｄiff（ＳＫ，ＳＬ)＝∫［ＳＫ(ｔ)−ＳＬ(ｔ)］ｄｔ（ｔ：ｔ１→ｔ２）
【００８１】
前記Ｄiff（ＳＫ，ＳＬ）を導出するために、より近い過去の結果の影響をより強く受けるように所定時間（例えば、現在の時刻ｔ２より一定時間前のｔ０からｔ２まで）の過去に稼働中であった仮想サーバ数に重み付けを行い導出してもよい。また、現在の時刻ｔ２より一定時間前のｔ０からｔ２までの稼働中であった仮想サーバ数の差分としてもよい。全クラスタシステムに対して計算したＤiffの最大値をＤiff maxとし、類似度を例えば次のように計算する（ステップＳ８０２）。
Ｓim（ＳＫ，ＳＬ)＝（Ｄiff max−Ｄiff(ＳＫ，ＳＬ)）／Ｄiff max
【００８２】
前記Ｓim（ＳＫ，ＳＬ）を導出するために、稼働中であった仮想サーバ数が多い期間より少ない期間がより長く一致するクラスタシステム同士の類似度が高くなるように重みづけを行ってもよいし、Ｄiff（ＳＫ，ＳＬ）を大きい順に並べその番号を類似度として導出してもよい。また、時刻ｔ１→ｔ２の間で ＳＫ(ｔ)−ＳＬ(ｔ）が０となる時刻の総和を、ＴＫＬ（ｔ１→ｔ２）として算出し、ＴＫＬ（ｔ１→ｔ２）をクラスタシステムＫとＬの類似度としてもよい。
【００８３】
以上のようにして導出した負荷類似度をスケールアウト対象の物理サーバを選択する場合に利用する。例えば、各物理サーバＰＮでクラスタシステムＬを構成する仮想サーバ数をＳＬＮとして、クラスタシステムＫに対する類似クラスタシステム集約度ＩＮを次のように計算する（ステップＳ８０３）。
ＩＮ＝ΣＳｉｍ（ＳＫ，ＳＬ）×ＳＬＮ
【００８４】
この類似クラスタシステム集約度ＩＮの高い物理サーバをスケールアウト対象として選択する（ステップＳ８０４）。また、類似クラスタシステム集約度ＩＮが同一の物理サーバが複数存在した場合には、構成情報収集部１２５が物理サーバ群１０２の各物理サーバの消費電力を収集しておき、前記収集した消費電力の少ない物理サーバをスケールアウト対象としてもよい。
【００８５】
以上により、負荷変動が類似したクラスタシステムが同じ物理サーバに集約されるため、クラスタシステムの負荷が低下しスケールインを実行する場合には同一物理サーバ上の仮想サーバが停止対象となる。特定の物理サーバで集中して仮想サーバが停止するため、物理サーバの電源切断の機会が増加する。
【００８６】
本実施形態では、負荷変動の類似度を算出するときには各種方法を適用することができる。負荷変動類似度計算部７０１は、過去の負荷変動のデータとそのときの稼働仮想サーバ数をクラスタシステム毎に取得し、前記クラスタシステムの稼働中の仮想サーバ数が一致する期間がより長いクラスタシステム同士を、類似度の高いクラスタシステムと判定することができる。
【００８７】
負荷変動類似度計算部７０１は、特定期間、例えば１時間ごとに負荷の状態を取得し、終了時刻の負荷と開始時刻の負荷の差分を取り、正なら上昇傾向、負なら下降傾向と判断する。上昇傾向である時間が一致するクラスタシステム同士、下降傾向である時間が一致するクラスタシステム同士を負荷類似度が高いと判定することができる。
【００８８】
負荷変動類似度計算部７０１は、クラスタシステムごとに設定した負荷の最大値に対して何割の負荷で稼働しているかをクラスタシステムの負荷率として取得する。時刻に対する負荷率の変化が似通ったクラスタシステム同士を負荷類似度が高いと判定することができる。ここで、負荷の最大値は過去の負荷状態から取得してもよいし、クラスタシステムが最大構成となった場合に処理できる負荷最大値の論理値でもよいし、運用管理者が設定してもよい。
【００８９】
負荷変動類似度計算部７０１は、運用管理者が設定したクラスタシステム間の負荷類似度を使用してもよい。クラスタシステムを構築する時や、実行中に運用管理者がクラスタシステム間の類似度をサーバ管理装置に入力する。この負荷類似度は、記憶装置にデータとして記憶され、負荷変動類似度計算部７０１が読み出すことで負荷類似度を判定する。
【００９０】
負荷変動類似度計算部７０１は、クラスタシステムの稼働中の仮想サーバ数が多い期間より少ない期間が一致するクラスタシステム同士を、より類似度が高いと判定することができる。
【００９１】
負荷変動類似度計算部７０１は、判定を実施する時間以降でより近い時間帯で稼働中の仮想サーバ数が一致するクラスタシステム同士をより類似していると判定することができる。
【００９２】
負荷変動類似度計算部７０１は、抽出作業を実行する時期と同じ時期の負荷情報から負荷変動の類似度を抽出することができる。
【００９３】
負荷変動類似度計算部７０１は、より近い過去の負荷変動の類似度がより高いと判断するように所定時間の過去に稼働中であった仮想サーバ数に重み付けすることができる。
【００９４】
図９は、負荷変動が類似したクラスタシステムを同一物理サーバにスケールアウトした場合の効果例を示す図である。サーバ管理装置１０１が３台の物理サーバ上でクラスタシステムＡ，Ｂ，Ｃを管理する環境を想定する。クラスタシステムＡ，Ｂ，Ｃはそれぞれ、仮想サーバＡ１〜Ａ２，Ｃ１〜Ｃ４，Ｂ１〜Ｂ６で構成する。負荷変動の合計図９０１にクラスタシステムＡ，Ｂ，Ｃの時間毎の負荷変動と、それら負荷変動の合計を示す。
【００９５】
負荷変動類似度計算部７０１は、クラスタシステムの稼働中の仮想サーバ数が多い期間より少ない期間が一致するクラスタシステム同士を、より類似度が高いと判定する。この例では、クラスタシステムＡとクラスタシステムＣの負荷変動の類似度が高いと判定される。
【００９６】
本実施形態のスケールアウトでは、クラスタシステムＡ，Ｃを構成する仮想サーバを同じ物理サーバにスケールアウトする。従って、負荷が最も高い場合には、構成情報表９１１の状態となる。具体的には、物理サーバ＃１は、クラスタシステムＡに係る仮想サーバＡ１，Ａ２、および、クラスタシステムＣに係る仮想サーバＣ１，Ｃ２が配置されている。
【００９７】
その後、構成情報表９１１の状態からはクラスタシステムＡ，Ｃの負荷が低下し、本実施形態のスケールインを実行すると構成情報表９１２の状態となる。具体的には、クラスタシステムＡの中から仮想サーバＡ２、および、クラスタシステムＣの中から仮想サーバＣ１，Ｃ２，Ｃ４を停止した状態である。この状態から片寄せを実行するには、物理サーバ＃１の仮想サーバＡ１を物理サーバ＃３に移行する（移行回数は１）。
【００９８】
比較例では、例えば、負荷変動の異なるクラスタシステムＡ，Ｂ、クラスタシステムＢ，Ｃを同じ物理サーバにスケールアウトする。従って、負荷が最も高い場合には、構成情報表９２１の状態となる。具体的には、物理サーバ＃１は、クラスタシステムＡに係る仮想サーバＡ１，Ａ２、および、クラスタシステムＢに係る仮想サーバＢ１，Ｂ２が配置されている。また、物理サーバ＃２は、クラスタシステムＣに係る仮想サーバＣ１，Ｃ２、および、クラスタシステムＢに係る仮想サーバＢ３，Ｂ４が配置されている。同様に、物理サーバ＃３は、クラスタシステムＣに係る仮想サーバＣ３，Ｃ４、および、クラスタシステムＢに係る仮想サーバＢ５，Ｂ６が配置されている。
【００９９】
その後、構成情報表９２１の状態からはクラスタシステムＡとＣの負荷が低下し、本実施形態のスケールインを実行すると構成情報表９２２の状態となる。具体的には、クラスタシステムＡの中から仮想サーバＡ２、および、クラスタシステムＣの中から仮想サーバＣ２，Ｃ３，Ｃ４を停止した状態である。この状態から片寄せを実行するには物理サーバ＃３の仮想サーバＢ５を、物理サーバ＃２に移行するとともに、物理サーバ＃３の仮想サーバＢ６を、物理サーバ＃１に移行する（移行回数は２）。
【０１００】
この例では、本実施形態を適用することで、仮想サーバの移行回数を２から１に削減できる。以上のように本実施形態の負荷変動類似度からスケールアウト先を選択することで、片寄せ時の仮想サーバの移行回数を低減することができる。
【０１０１】
<<実施形態３>>
実施形態３は、実施形態１のサーバ管理装置１０１において、スケールイン実行後に仮想サーバの移行を行う手段を加えることで、仮想サーバの片寄せを実行し余剰物理サーバの電源切断を行うことができる。ここでの片寄せは、仮想サーバを移行することで物理サーバの電源が切断できる場合に限り実行し、消費電力削減効果のない片寄せを実行しないよう制御する。
【０１０２】
図１０は、実施形態３に係るクラスタシステムを示す図である。図１０に示すようにサーバ管理装置１０１の記憶装置１１１に、片寄判断部１００１、片寄対象仮想サーバ選択部１００２、片寄実行部１００３の各プログラムを、図１のサーバ管理装置１０１に追加する。片寄判断と片寄実行の詳細な説明を図１１のフロー図を参照して説明する。
【０１０３】
図１１は、片寄せ判断と片寄せ実行処理の流れを示す図である。適宜図１０を参照する。片寄判断部１００１では、複数のクラスタシステムのいずれかでスケールインが発生したかを判断する（ステップＳ１１０１）。スケールインが発生したならば（ステップＳ１１０１，Ｙｅｓ）、片寄判断を実行するためステップＳ１１０２に進む。スケールインが発生していない場合は（ステップＳ１１０１，Ｎｏ）、片寄せを実行しても物理サーバの電源切断はできないと判断し処理を終了する。
【０１０４】
片寄対象仮想サーバ選択部１００２では、スケールイン実行後に停止した仮想サーバが稼働していた物理サーバをＰＮとし、物理サーバＰＮ上の稼働中の仮想サーバ数を取得する（ステップＳ１１０２）。前記取得した稼働中の仮想サーバ数から物理サーバＰＮ上の仮想サーバを他物理サーバに移行する片寄せと、他物理サーバ上で稼働する仮想サーバを物理サーバＰＮに移行する片寄せ、どちらの移行コストが少ないか判断する。そのために次の２つの条件判定を続けて行う（ステップＳ１１０３）。
【０１０５】
（ａ）物理サーバＰＮ上で稼働する全稼働中の仮想サーバを物理サーバＰＮ以外の物理サーバ群ＰＥＸＣ（ＰＮ）に移行できるか？（ステップＳ１１０３）
（ｂ）物理サーバＰＭ（Ｍ≠Ｎ）で稼働する全仮想サーバを物理サーバＰＮに移行できるか？（ステップＳ１１０４（ステップＳ１１０４Ａ、ステップＳ１１０４Ｂ））
【０１０６】
ステップＳ１１０３がＹｅｓおよびステップＳ１１０４Ａ（ステップＳ１１０４）がＹｅｓの場合は、ステップＳ１１０５Ａ（ステップＳ１１０５）に進む。ステップＳ１１０３がＹｅｓおよびステップＳ１１０４ＡがＮｏの場合はステップＳ１１０９に進む。ステップＳ１１０３がＮｏおよびステップＳ１１０４ＢがＹｅｓの場合は、ステップＳ１１０５Ｂ（ステップＳ１１０５）に進む。ステップＳ１１０３がＮｏおよびステップＳ１１０４Ｂ（ステップＳ１１０４）がＮｏの場合は、片寄せを実行しても物理サーバの電源を切断できないと判断して処理を終了する。
【０１０７】
ステップＳ１１０４ＡがＹｅｓの場合は、移行元となる物理サーバの候補が複数存在する場合がある。そこで、仮想サーバの移行回数が最小となる物理サーバを移行元の物理サーバＰＫとして選択し（ステップＳ１１０５Ａ）、ステップＳ１１０６に進む。
【０１０８】
物理サーバＰＫ、物理サーバＰＮを移行元とした場合に、物理サーバＰＫを移行元とした方が仮想サーバの移行回数が少ないならば（ステップＳ１１０６，Ｙｅｓ）、ステップＳ１１０７Ａ（ステップＳ１１０７）に進む。そうでなければ（ステップＳ１１０６，Ｎｏ）、ステップＳ１１０９に進む。ステップＳ１１０７Ａでは、移行元の物理サーバＰＫ上の稼働中の仮想サーバの全てを、物理サーバＰＮに移行する（物理サーバＰＫから物理サーバＰＮへ仮想サーバを移行する）。その後、物理サーバ電源ＯＦＦ実行部１２７が物理サーバの電源ＰＫをＯＦＦする（ステップＳ１１０８Ａ）。一方、ステップＳ１１０９では物理サーバＰＮ上の仮想サーバの移行先をスケールアウト対象物理サーバ選択部１３５と同様の方法で選択し片寄実行部１１０３が仮想サーバの移行を行う。その後、物理サーバ電源ＯＦＦ実行部１２７が物理サーバの電源ＰＮをＯＦＦし（ステップＳ１１１０）、処理を終了する。
【０１０９】
同様に、ステップＳ１１０４ＢがＹｅｓの場合は、移行元となる物理サーバの候補が複数存在する場合がある。そこで、仮想サーバの移行回数が最小となる物理サーバを移行元の物理サーバＰＫとして選択し（ステップＳ１１０５Ｂ）、移行元の物理サーバＰＫ上の稼働中の仮想サーバを全て物理サーバＰＮに移行する（ステップＳ１１０７Ｂ）。その後、物理サーバ電源ＯＦＦ実行部１２７が物理サーバの電源ＰＫをＯＦＦし（ステップＳ１１０８Ｂ）、処理を終了する。
【０１１０】
片寄せを実行する際には稼働中の仮想サーバを移行する必要がある。移行の方法としては、稼働中の仮想サーバを一度停止し、物理サーバへの構成を変更した後に再び稼働させる方法がある。また、仮想サーバを停止しない方法として、稼働中の仮想サーバが持つメモリ内容を移行先にコピーし稼働状態を維持したまま移行を実現するライブマイグレーション技術が存在する。本実施形態が対象とするクラスタシステムでは、クラスタシステムを構成する仮想サーバのいずれでクライアントからのリクエストを処理しても結果は同じである。この性質を利用して、稼働状態を維持した仮想サーバの移行を疑似的に実現することもできる。図１２を参照してその詳細を説明する。
【０１１１】
図１２は、仮想サーバの疑似移行処理の実行シーケンスを示す図である。サーバ管理装置１０１は、移行先の物理サーバ上に存在する停止状態である移行先の仮想サーバ１２０２に対する起動要求を移行先の物理サーバに送付し（ステップＳ１２１１）、移行先の仮想サーバの起動処理を行う（ステップＳ１２１２）。そして、移行先の仮想サーバ１２０２は、起動完了通知を行う（ステップＳ１２１３）。起動完了通知を受けたサーバ管理装置１０１は、負荷分散器１０４に対して、移行先の仮想サーバへのリクエスト割振り要求を送付し（ステップＳ１２１４）、負荷分散器１０４は移行先の仮想サーバへのリクエスト割振りを開始する（ステップＳ１２１５）。そして、負荷分散器１０４は、リクエスト割振り完了通知を行う（ステップＳ１２１６）。
【０１１２】
リクエスト割振り変更であるリクエスト割振り完了通知を受けたサーバ管理装置１０１は、移行元の仮想サーバの閉塞要求を負荷分散器１０４に対して送付し（ステップＳ１２１７）、負荷分散器１０４は移行元の仮想サーバ１２０１へのリクエスト割振りを停止する（ステップＳ１２１８）。そして、負荷分散器１０４は、閉塞完了通知を行う（ステップＳ１２１９）。リクエスト割振り停止である閉塞完了通知を受け取ったサーバ管理装置１０１は、移行元の仮想サーバ１２０１に対して停止要求を送付し（ステップＳ１２２０）、移行元の仮想サーバ１２０１は停止処理を実行する（ステップＳ１２２１）。そして、移行元の仮想サーバ１２０１は停止完了通知を行う（ステップＳ１２２２）。最後に、サーバ管理装置１０１は移行元の仮想サーバ１２０１の停止完了通知を受け取り、移行元の仮想サーバ１２０１から移行先の仮想サーバ１２０２への疑似的な仮想サーバ移行を完了する。
【０１１３】
<<実施形態４>>
実施形態４は、実施形態１のサーバ管理装置１０１において、負荷変動予測から仮想サーバで構成するクラスタシステムのスケールイン／スケールアウトのタイミングを制御する手段を加えることで物理サーバの電源ＯＮ／ＯＦＦ繰り返しによる消費電力増加を抑えることができる。
【０１１４】
図１３は、実施形態４に係るクラスタシステムを示す図である。図１３に示すようにサーバ管理装置１０１の記憶装置１１１に、負荷変動予測部１３０１のプログラムを、図１のサーバ管理装置１０１に追加する。負荷変動を予測しスケールイン／スケールアウトの実行タイミングを変更する詳細な説明を図１４のフロー図を参照して説明する。なお、負荷変動予測部１３０１は、実施形態２，３のサーバ管理装置１０１に加えてもよい。
【０１１５】
図１４は、負荷変動予測からスケールイン／スケールアウトのタイミングを変更する処理の流れを示す図である。適宜図１３を参照する。負荷変動予測部１３０１では、対象クラスタシステムの過去の負荷情報を負荷情報保存／取得部１４１を介して記憶装置１１１から取得する。そして、取得した負荷情報の時刻ｔにおける平均値を平均負荷Ｌ（ｔ）とする（ステップＳ１４０１）。具体的には、現在時刻ｔ１から予測期間Ｔ後、時刻ｔ２までの対象クラスタシステムの平均負荷Ｌ（ｔ）を記憶装置１１１から取得する。なお、ここでの平均負荷Ｌ（ｔ）とは、毎日の同じ時刻でのコンピューティングリソースやアプリケーションが持つ情報をそれぞれ加算平均した値である。また、毎日に限らず毎週、毎月、毎年、特定日の同じ時刻の負荷情報を加算平均してもよい。すなわち、負荷変動予測部１３０１は、負荷変動傾向の予測を実行する時期と同じ時期の負荷情報から負荷変動傾向を予測することになる。ここでの時期とは、曜日、月、及び特定日であり、例えば、負荷変動予測部１３０１は、毎週金曜日の特定の時刻tにおける負荷の平均値を、金曜日における負荷変動を予測するのに利用する。また、負荷情報を取得する曜日、月、及び特定日は単独または組合せでもよい。
【０１１６】
そして、予測期間Ｔ（ｔ２−ｔ１）である時刻ｔ１から時刻ｔ２までの期間内の負荷の変動傾向Ｄ（Ｔ）を、例えば次のように計算する（ステップＳ１４０２）。
Ｄ（Ｔ）＝（Ｌ（ｔ２）-Ｌ（ｔ１））／（ｔ２−ｔ１）
【０１１７】
前記Ｄ（Ｔ）を導出するために、より近い過去の結果の影響をより強く受けるように加重平均した平均負荷Ｌ（ｔ）を計算に使用してもよい。また、平均値を用いずに現在の時刻ｔ１より一定時間前のｔ０における負荷情報との差分を用いて次のように計算してもよい。
Ｄ（Ｔ）＝（Ｌ（ｔ１）-Ｌ（ｔ０））／（ｔ１−ｔ０）
【０１１８】
負荷変動予測部１３０１は、Ｄ（Ｔ）が０より大きいか判断する（ステップＳ１４０３）。Ｄ（Ｔ）が０より大きい場合には（Ｄ（Ｔ）＞０）（ステップＳ１４０３，Ｙｅｓ）、対象クラスタシステムの負荷が対象期間において上昇傾向であると判断し、スケールインを消極的に行うようにスケールイン／スケールアウトの判断条件となる閾値を変更する。具体的には、スケールイン判断部１３１やスケールアウト判断部１３４で利用するスケールイン／スケールアウトの判断条件となる閾値表６０１の閾値列に示す閾値を低くし（ステップＳ１４０４）、処理を終了する。
【０１１９】
一方、Ｄ（Ｔ）が０より大きくない場合には（Ｄ（Ｔ）≦０）（ステップＳ１４０３，Ｙｅｓ）、対象クラスタシステムの負荷が対象期間において下降傾向であると判断し、スケールインを積極的に行うようにスケールイン／スケールアウトの判断条件となる閾値を変更する。具体的には、スケールイン判断部１３１やスケールアウト判断部１３４で利用するスケールイン／スケールアウトの判断条件となる閾値表６０１の閾値列に示す閾値を高くする（ステップＳ１４０５）。
【０１２０】
なお、負荷の変動傾向Ｄ（Ｔ）が十分に小さい場合（ほぼ０に近い場合）には、定常状態と判断しスケールイン／スケールアウトの判断条件となる閾値を変更しないようにしてもよい。具体的には、サーバ管理装置１０１を管理する管理者は、クラスタシステムの負荷が定常状態であると判断する負荷の変動幅の値εを入力装置１１５から入力する。サーバ管理装置は変動幅の値εを記憶装置１１１内のデータ１５２として格納する。ステップＳ１４０３で負荷が上昇傾向か下降傾向か判定する際に、記憶装置１１１に格納されたεを取得する。Ｄ（Ｔ）の絶対値がε以上であり、かつＤ（Ｔ）が０より大きければ上昇傾向と判断する。Ｄ（Ｔ）の絶対値がε以上であり、かつＤ（Ｔ）が０より大きくなければ下降傾向と判断する。Ｄ（Ｔ）の絶対値がεより小さい場合は定常状態と判定し処理を終了する。
【０１２１】
また、負荷変動傾向を導出した期間ＴをさらにＮ分割し、それぞれの期間で負荷変動傾向を導出してもよい。この場合、期間Ｔのうち上昇傾向期間と下降傾向期間がともに一定数（所定値）を超えた場合に不安定状態と判断（判定）し、スケールアウトを積極的に行うようにしてもよい。
【０１２２】
クラスタシステムの運用管理者が業務の負荷が上昇傾向であるか、下降傾向であるか設定してもよい。例えば、8:00〜14:00は業務の負荷が上昇傾向、14:00〜17:00は業務の負荷が下降傾向といった負荷変動傾向データを記憶装置１１１のデータ１５２として運用管理者が事前に入力しておく。負荷変動予測部１３０１は記憶装置１１１から負荷変動傾向データを参照し、負荷変動傾向を判定する。
【０１２３】
以上のように負荷変動が上昇傾向の場合にはスケールインが発生しにくくし、下降傾向の場合にはスケールインが発生しやすいように閾値を変更することで、スケールイン／スケールアウトが交互に繰り返すことを防ぐことができる。
【０１２４】
図１５は、負荷変動予測によりスケールイン／スケールアウトのタイミングを変更した場合の効果例を示す図である。グラフ１５１１には、負荷変動が上昇傾向の場合にスケールイン／スケールアウト閾値を低下させる概要を示しており、閾値変更ありの場合である。比較例として、グラフ１５２１には、スケールイン／スケールアウト閾値を変更しない方式を示しており、閾値変更なしの場合である。
【０１２５】
通常、クラスタシステムの負荷変動が閾値を下回った場合にはスケールインを実行し、超えた場合にスケールアウトを実行する。閾値変更ありのグラフ１５１１では、スケールイン／スケールアウト閾値と負荷変動が２回交差しているので、スケールイン／スケールアウトを２回実行する。一方、閾値変更なしのグラフ１５２１では、スケールイン／スケールアウト閾値と負荷変動が４回交差しているので、スケールイン／スケールアウトを４回実行する。その内、短期間で負荷が上下する部分１５３１でのスケールイン／スケールアウトを２回実行する。
【０１２６】
この例では、本実施形態を適用することで、短期間で負荷が上下する部分１５３１でのスケールイン／スケールアウトを交互に繰り返すことを防ぐことができる。さらに、スケールイン／スケールアウトが物理サーバの電源ＯＮ／ＯＦＦを伴えば、短期間での物理サーバの電源ＯＮ／ＯＦＦ繰り返しによる消費電力増加を防ぐことができる。
【０１２７】
<<実施形態５>>
実施形態５は、実施形態１のサーバ管理装置１０１において、クラスタシステムを構成する仮想サーバをスケールアップして、スケールアウトのタイミングを遅らせる手段を加えている。これにより、クラスタシステムが処理できるリクエスト量を増加させることで、物理サーバの電源ＯＦＦ時間を長くし消費電力を削減する効果を高めることができる。
【０１２８】
スケールアップとは、仮想サーバに割当てるＣＰＵやメモリなどのコンピューティングリソース量を増加させ、リクエスト処理の数や速度を増強することである。このコンピューティングリソースは、スケールアップを実施する仮想サーバが稼働する物理サーバが保持する未使用のコンピューティングリソースを使用する。
【０１２９】
図１６は、実施形態５に係るクラスタシステムを示す図である。図１６に示すようにサーバ管理装置１０１の記憶装置１１１に、スケールアップ対象仮想サーバ選択部１６０２とスケールアップ実行部１６０３の各プログラムを追加する。さらに、スケールアウトかスケールアップのどちらを実行するか判断するために、スケールアウト判断部１３４をスケールアウト／スケールアップ判断部１６０１に変更する。なお、クラスタシステムを構成する仮想サーバをスケールアップして、スケールアウトのタイミングを遅らせる手段は実施形態２〜４のサーバ管理装置１０１に加えてもよい。スケールアップ可否を判断し、スケールアップを実行する詳細な説明を図１７のフロー図を参照して説明する。
【０１３０】
図１７は、スケールアップの判断と実行の流れを示す図である。適宜図１６を参照する。スケールアウト／スケールアップ判断部１６０１では、負荷情報保存／取得部１４１が記憶装置１１１から負荷情報を取得する（ステップＳ１７０１）。取得したクラスタシステムの負荷がクラスタシステムに予め設定しておいた閾値αを超えるかを判断する（ステップＳ１７０２）。クラスタシステムの負荷が閾値αを超える場合（ステップＳ１７０２，Ｙｅｓ）、スケールアウト／スケールアップが必要と判断し、ステップＳ１７０３に進む。クラスタシステムの負荷が閾値αを超えない場合（ステップＳ１７０２，Ｎｏ）、スケールアウト／スケールアップが不必要と判断し処理を終了する。
【０１３１】
スケールアップ対象仮想サーバ選択部１６０２は、負荷が上昇したクラスタシステムを構成する仮想サーバが稼働する物理サーバ群Ｐの中で未使用コンピューティング（物理）リソース量が最も多い物理サーバＰＮを選択する（ステップＳ１７０３）。そして、未使用コンピューティングリソースを持つ物理サーバＰＮが存在するか否かを判定する（ステップＳ１７０４）。未使用コンピューティングリソースを持つ物理サーバＰＮが存在しなければ（ステップＳ１７０４，Ｎｏ）、負荷上昇に対してスケールアウト処理を実行して（ステップＳ１７０５）、処理を終了する。
【０１３２】
物理サーバＰＮが存在すれば（ステップＳ１７０４，Ｙｅｓ）、スケールアップ対象仮想サーバ選択部１６０２は、物理サーバＰＮ上で稼働する対象クラスタシステムの仮想サーバＳＮを選択する（ステップＳ１７０６）。そして、スケールアップ実行部１６０３は、仮想サーバＳＮへのコンピューティングリソース量の割当をＭ倍に増加させ仮想サーバＳＮをスケールアップする（ステップＳ１７０７）。その後、負荷分散器１０４から仮想サーバＳＮへのリクエスト割振り量をＭ倍に増加させる（ステップＳ１７０８）。
【０１３３】
以上のスケールアップ処理により、未使用コンピューティングリソースを利用して、スケールアウト実行のタイミングを遅らせることができる。その結果、次にスケールアウト対象となる物理サーバの電源ＯＦＦ時間を延ばし消費電力を削減する効果を高めることができる。
【０１３４】
具体的な効果として、例えば、クラスタシステムの負荷が一定の期間Ｔの間高くなり、再び負荷が下る場合を想定する。Ｔ時間の間、スケールアップにより新たに物理サーバの電源をＯＮすることなく対応できた場合の削減できる電力量は以下の通りである。
（物理サーバの起動と停止にかかる電力量）＋Ｔ×（物理サーバの消費電力−スケールアップにより増加した消費電力）
【０１３５】
ここで、スケールアップにより増加した消費電力は、物理サーバの消費電力に比べて十分小さいので、消費電力削減効果が得られる。また、スケールアップ後Ｔａ時間でスケールアウトが発生した場合でも、以下の電力量を削減することが可能である。
Ｔａ×（物理サーバの消費電力−スケールアップにより増加した消費電力）
【０１３６】
なお、本実施形態において、構成情報収集部１２５は、物理サーバが保持する未使用のコンピューティングリソース量を構成情報として収集しており、構成変更判断部１２１のスケールアウト／スケールアップ判断部１６０１は、取得した未使用のコンピューティングリソースを利用し仮想サーバのスケールアップ可否を判断し、構成変更対象選択部１２２のスケールアップ対象仮想サーバ選択部１６０２は、前記判断によりスケールアップ可能のとき、クラスタシステムのスケールアウトの代わりに仮想サーバをスケールアップし、構成変更実行部１２３のスケールアップ実行部１６０３は、クライアント１０６からのリクエストを、クラスタシステムを構成する仮想サーバ群１０３に割振る負荷分散器１０４を管理し、負荷分散器１０４を制御することによりスケールアップを実行した仮想サーバへのリクエスト割振り量をクラスタシステム内の他の仮想サーバより増加させることができる。
【０１３７】
<<実施形態６>>
実施形態６は、実施形態１のサーバ管理装置１０１において、構成変更判断部１２１で利用する閾値を、クラスタシステムの運用ポリシに基づいて変更できるようにする手段を追加した。また、構成変更対象選択部１２２において、クラスタシステムの運用ポリシに基づいて構成変更対象を選択できる。
【０１３８】
図１８は、実施形態６に係るクラスタシステムを示す図である。図１８に示すようにサーバ管理装置１０１の記憶装置１１１に、運用ポリシ取得部１８０１のプログラムを、図１のサーバ管理装置１０１に追加する。なお、構成変更判断部１２１で利用する閾値を、クラスタシステムの運用ポリシに基づいて変更できるようにする手段は、実施形態２〜５のサーバ管理装置１０１に加えてもよい。
【０１３９】
図１９は、運用ポリシの例を示す図である。判断条件＃０にポリシ種別を記述し、運用ポリシ表１９０１に示すような運用ポリシを定義する。例として「積極的省電力」、「可用性保持」を挙げる。「積極的省電力」は、コンピューティングリソースの使用率を高め、余剰コンピューティングリソースを削減するポリシである。「可用性保持」は、仮想サーバに割当てるコンピューティングリソースに余裕を持たせ、耐障害性を高め、さらに突発的な負荷上昇に対応するためのポリシである。なお、運用ポリシ表１９０１は記憶装置１１１内のデータと１５２の一部して保持する。
【０１４０】
「積極的省電力」では、判断条件＃３〜＃８に示すスケールイン／スケールアウトの閾値を「可用性保持」に比べ高く設定し、スケールインがより発生しやすいようにする。また、判断条件＃２に示す条件の「ｏｒ」は判断条件＃３〜＃８の判断条件を１つでも満たせばスケールイン／スケールアウトを実行することを意味する。一方、判断条件＃２に示す条件の「ａｎｄ」の場合は判断条件＃３〜＃８の判断条件を全て満たせばスケールイン／スケールアウトを実行することを意味する。「積極的省電力」では、スケールインの条件を「ｏｒ」と設定することでスケールインが発生しやすいようにする。
【０１４１】
判断条件＃９の最大仮想サーバ数とは、クラスタシステムを構成する仮想サーバ数の最大値である。この数値を設定することでスケールアウトの上限を設定し、特定のクラスタシステムがコンピューティングリソースを使いきることのないようにする。なお、この数を無制限にしてもよい。
【０１４２】
クラスタシステムを構成する仮想サーバは、判断条件＃１０の最小物理サーバ数以上の物理サーバ上で常に稼働するようにする。最小物理サーバ数を設定することで、特定の物理サーバに障害が発生した場合もクラスタシステムで実行する処理を中断することなく続行できる。また、スケールイン実行後に停止対象とする仮想サーバを選択する場合に、選択すると最小物理サーバ数の条件を満たさない仮想サーバはスケールイン実行後に停止対象とする仮想サーバとして選択しない。片寄せ対象選択時も同様である。この最小物理サーバ数を設定することで、耐障害性を考慮したクラスタシステムに本実施形態を適用することができる。なお、耐障害性を考慮しなければこの数を０としてもよい。
【０１４３】
判断条件＃１１の仮想サーバ移行数は一度の片寄せで移行する仮想サーバの上限数である。仮想サーバの移行数が増加すると、システム構成変更時間が延び、他のシステム構成変更要求への遅れや、クライアントからのリクエストに対する応答性能の劣化が発生する可能性がある。この影響の許容量をこの仮想サーバ移行で設定する。
【０１４４】
図２０は、運用ポリシを利用した場合の、構成変更判断部、構成変更対象選択部、構成変更実行部の処理の流れを示す図である。適宜図１８を参照する。運用ポリシを利用した場合の、構成変更判断部１２１、構成変更対象選択部１２２、構成変更実行部１２３の処理の流れを、図２０を参照して説明する。
【０１４５】
構成変更判断部１２１および構成変更対象選択部１２２は、運用ポリシ表１９０１（図１９参照）を運用ポリシ取得部１８０１から取得し（ステップＳ２００１）、取得した運用ポリシ表１９０１からポリシ種別を選択する（ステップＳ２００２）。ポリシ種別の選択は、サーバ管理装置１０１の管理者が予めクラスタシステムを構築する場合に、入力装置１１５から通信装置１１４を介して選択しておくとよい。また、クラスタシステムの実行途中で、入力装置１１５から通信装置１１４を介して変更してもよい。
【０１４６】
次に、構成変更判断部１２１は、構成変更判断対象（ａ）スケールイン、（ｂ）スケールアウト、（ｃ）片寄せに対して別の処理を行うため場合分けする（ステップＳ２００３）。
【０１４７】
（ａ）スケールインの場合は、まずスケールイン判断部１３１が運用ポリシ表１９０１の判断条件の行、かつスケールインの列に記述した閾値を取得し負荷情報保存／取得部１４１が記憶装置１１１から取得した負荷情報と比較する（ステップＳ２００５）。前記比較により、スケールインが可能でなければ（ステップＳ２００５，Ｎｏ）、処理を終了する。スケールインが可能であれば（ステップＳ２００５，Ｙｅｓ）、運用ポリシのスケールイン列に記述した最小物理サーバ数を取得する（ステップＳ２００６）。次に、スケールイン対象仮想サーバ選択部１３２がスケールイン実行後に、クラスタシステムを構成する仮想サーバが稼働する物理サーバ数が最小物理サーバ数未満とならないようにスケールイン対象（停止対象）の仮想サーバを選択する（ステップＳ２００７）。最後に、ステップＳ２００７の処理によりスケールイン対象仮想サーバが存在すれば（ステップＳ２００８，Ｙｅｓ）、スケールイン実行部１３３がスケールインを実行し（ステップＳ２００８）、処理を終了する。なお、ステップＳ２００７の処理によりスケールイン対象仮想サーバが存在しなければ（ステップＳ２００８，Ｎｏ）、処理を終了する。
【０１４８】
本実施形態では、最小物理サーバ数を規定しているので、クラスタシステムの物理サーバ障害への耐性を高めるためにクラスタを構成する仮想サーバを複数の物理サーバに分散させて稼働させることができる。また、ステップＳ２００８において、スケールイン実行後に停止すると物理サーバ障害への耐性が低下する仮想サーバをスケールイン実行後に停止対象とする仮想サーバから取り除いてもよい。
【０１４９】
（ｂ）スケールアウトの場合は、まずスケールアウト判断部１３４が運用ポリシ表１９０１の判断条件の行、かつスケールアウトの列に記述した閾値を取得し負荷情報保存／取得部１４１が記憶装置１１１から取得した負荷情報と比較する（ステップＳ２０１０）。前記比較により、スケールアウトが不要であれば（ステップＳ２０１１，Ｎｏ）、処理を終了する。スケールアウトが必要ならば（ステップＳ２０１１，Ｙｅｓ）、運用ポリシのスケールアウトの列に記述した最大仮想サーバ数を取得する（ステップＳ２０１２）。次に、スケールアウト対象物理サーバ選択部１３５がクラスタシステムを構成する仮想サーバ数が最大仮想サーバ数未満か判断する（ステップＳ２０１３）。クラスタシステムを構成する仮想サーバ数が最大仮想サーバ数未満なら（ステップＳ２０１３，Ｙｅｓ）、スケールアウト対象の物理サーバの選択を行い（ステップＳ２０１４）、スケールアウトを実行し（ステップＳ２０１５）、処理を終了する。なお、クラスタシステムを構成する仮想サーバ数が最大仮想サーバ数未満でないなら（ステップＳ２０１３，Ｎｏ）、処理を終了する。
【０１５０】
（ｃ）片寄せの場合は、まず片寄判断部１００１が運用ポリシ表１９０１の片寄せの列に記述した仮想サーバ移行数Ｍを取得する（ステップＳ２０１６）。片寄判断部１００１は片寄せ実行時に必要な仮想サーバ移行数がＭ以下か判断する（ステップＳ２０１７）。
前記判断が偽ならば（ステップＳ２０１７，Ｎｏ）、処理を終了する。前記判断が真ならば（ステップＳ２０１７，Ｙｅｓ）、次に片寄対象仮想サーバ選択部１００２が運用ポリシ表１９０１の片寄せ列に記述した最小物理サーバ数を取得する（ステップＳ２０１８）。片寄せ実行後に、クラスタシステムを構成する仮想サーバが稼働する物理サーバ数が最小物理サーバ数未満とならないように片寄せ時に移行対象（移行元と移行先）となる仮想サーバを選択する（ステップＳ２０１９）。前記選択により移行対象仮想サーバが決定（選択）し（ステップＳ２０１９）、片寄せが実行可能ならば（ステップＳ２０２０，Ｙｅｓ）、片寄実行部１００３が片寄せを実行し（ステップＳ２０２１）、処理を終了する。なお、片寄せが可能でないならば（ステップＳ２０２０，Ｎｏ）、処理を終了する。
【０１５１】
このように、システム構成を動的に変更し、コンピューティングリソース量を最適化するシステムに本実施形態を適用することで、片寄せ実行時に必要な仮想サーバの移行回数を削減し消費電力削減効果を高めることができる。さらに、スケールインの実行タイミングを変更することでスケールイン／スケールアウトの繰り返しによる消費電力の増加を防ぐことができる。また、スケールアウトの実行タイミングを遅らせることで、スケールアウト対象となる物理サーバの電源ＯＦＦ時間を長くし消費電力を削減する効果を高めることができる。
【０１５２】
本実施形態のスケールインの実行で稼働中の仮想サーバ数が多い物理サーバと少ない物理サーバといった、片寄せ実行後の状態に近づけることができる。さらに、スケールインを続けることで、仮想サーバの移行なしに片寄せ状態を実現できる。また、本発明ではスケールインの実行で片寄せ実行後の状態に効率的に近づけるためにスケールアウト実行前に新たに仮想サーバを稼働させる物理サーバの選択も行う。
【０１５３】
本実施形態のスケールアウトにより負荷変動が類似したクラスタシステムを構成する仮想サーバが同じ物理サーバに集約する。そのため、特定のクラスタシステムの負荷が低下する期間は、スケールイン実行後に停止対象となる仮想サーバが特定の物理サーバ上に集中する。
【０１５４】
以上のようにスケールイン／スケールアウトにより、各物理サーバ間で稼働中の仮想サーバを偏らせることで片寄せ実行後の状態に近づける。その結果、本発明を利用せず各物理サーバ間で稼働中の仮想サーバの偏りが少ない状態に比べ、片寄せ実行時に仮想サーバを移行する回数を削減することができる。
【０１５５】
さらに、スケールインの実行タイミングを変更することでスケールイン／スケールアウトの繰り返しによる消費電力の増加を防ぐことができる。また、スケールアウトの実行タイミングを遅らせることで、スケールアウト実行前に稼働対象となる物理サーバの電源ＯＦＦ時間を長くし消費電力を削減する効果を高めることができる。
【０１５６】
本実施形態のサーバ管理装置１０１は、仮想サーバ群１０３を稼働する物理サーバ群１０２を管理し、物理サーバ群１０２に配置された複数の仮想サーバを含んでなるクラスタシステムを運用する際に、仮想サーバ群１０３の負荷状態により仮想サーバの配置状態を管理する。スケールイン実行時には、稼働中の仮想サーバ数が最も少ない物理サーバで稼働する仮想サーバを停止対象とする。スケールアウト実行時には、負荷変動を予測し、負荷の変動が類似したクラスタシステムが同じ物理サーバ上に集まるようにクラスタシステムのスケールアウト先を制御する。スケールインの実行タイミングは、予測した負荷変動が上昇傾向なら実行を遅らせ、下降傾向なら実行を早めることができる。
【符号の説明】
【０１５７】
１０１    サーバ管理装置
１０２    物理サーバ群
１０３    仮想サーバ群
１０４    負荷分散器
１０５    ネットワーク
１０６    クライアント
１０７    仮想化ソフトウェア
１１１    記憶装置
１１２    メモリ
１１３    ＣＰＵ
１１４    通信装置
１１５    入力装置
１１６    表示装置
１２１    構成変更判断部
１２２    構成変更対象選択部
１２３    構成変更実行部
１２４    負荷情報収集部
１２５    構成情報収集部
１２６    物理サーバ電源ＯＦＦ可否判断部
１２７    物理サーバ電源ＯＦＦ実行部
１２８    物理サーバ電源ＯＮ実行部
１３１    スケールイン判断部
１３２    スケールイン対象仮想サーバ選択部
１３３    スケールイン実行部
１３４    スケールアウト判断部
１３５    スケールアウト対象物理サーバ選択部
１３６    スケールアウト実行部
１４１    負荷情報保存／取得部
１４２    構成情報保存／取得部
１５１    プログラム
１５２    データ
３０１    スケールイン対象の仮想サーバ
４０１    スケールアウト対象の物理サーバ
４０２    スケールアウト対象の仮想サーバ
５０１    構成情報表
６０１    スケールイン／スケールアウトの判断条件となる閾値表
７０１    負荷変動類似度計算部
９０１    負荷変動の合計図
１００１    片寄判断部
１００２    片寄対象仮想サーバ選択部
１００３    片寄実行部
１２０１    移行元の仮想サーバ
１２０２    移行先の仮想サーバ
１３０１    負荷変動予測部
１６０１    スケールアウト／スケールアップ判断部
１６０２    スケールアップ対象仮想サーバ選択部
１６０３    スケールアップ実行部
１８０１    運用ポリシ取得部
１９０１    運用ポリシ表
【図１】
2011090594.tif 000003
【図２】
2011090594.tif 000004
【図３】
2011090594.tif 000005
【図４】
2011090594.tif 000006
【図５】
2011090594.tif 000007
【図６】
2011090594.tif 000008
【図７】
2011090594.tif 000009
【図８】
2011090594.tif 000010
【図９】
2011090594.tif 000011
【図１０】
2011090594.tif 000012
【図１１】
2011090594.tif 000013
【図１２】
2011090594.tif 000014
【図１３】
2011090594.tif 000015
【図１４】
2011090594.tif 000016
【図１５】
2011090594.tif 000017
【図１６】
2011090594.tif 000018
【図１７】
2011090594.tif 000019
【図１８】
2011090594.tif 000020
【図１９】
2011090594.tif 000021
【図２０】
2011090594.tif 000022
【図２１】
2011090594.tif 000023
【図２２】
2011090594.tif 000024