SIGMABLADE+SigmaSystemCenterによる仮想マシンの自律運用システム
最後に負荷変動に応じて仮想マシンの配置が最適化されるようにします。下は先ほども登場した省電力版ポリシーの「監視イベント」タブです。省電力版ポリシーには仮想マシンの配置ルールが2つ用意されています。1つは「高負荷検出(SysmonPerf)」イベントに対応する「負荷分散」アクションで、もう1つは「低負荷検出(SysmonPerf)」イベントに対応する「省電力」アクションです。前者は、ある物理サーバが高負荷状態になったときにより低負荷な物理サーバに仮想マシンを移動させて負荷分散を図るルールで、通常版のポリシーにも登録されています。後者は物理サーバの負荷が低くなった際に仮想マシンを集約して稼働状態の物理サーバを減少させるルールで、こちらは省電力版ポリシーのみに登録されています。
まずは「高負荷検出(SysmonPerf)」イベントの詳細設定を見てみましょう。下の画面のように「通報元」に「SystemMonitorPerf」が設定されています。これはSigmaSystemCenter(SSC)に付属する「SystemMonitor性能監視」(SystemMonitor)ツールのことです。SSCはこのSystemMonitorから高負荷検出イベントを受け取ると、仮想マシンの移動による負荷分散を図ります。
次は「低負荷検出(SysmonPerf)」イベントの詳細設定です。こちらでもSystemMonitorから低負荷検出イベントを受け取ると、SSCが仮想マシンの集約と余剰物理サーバの電源オフを実行するようになっています。
上記のように標準ポリシーには仮想マシンの配置を最適化するルールが組み込まれていますが、これらのルールを有効に機能させるには2つほど追加の設定を施す必要があります。1つは、どの程度のCPU使用率で低負荷あるいは高負荷と判断するのかその閾値の設定です。そしてもう1つは、仮想マシンの移動を実行するタイミングの設定です。
閾値は、物理サーバのハードウェアスペックに依存するのでモデルのプロパティで設定します。運用ビューのツリービューで物理サーバのグループ(ESX)を選択し、「設定」メニューの「プロパティ」をクリックしてグループプロパティ設定画面が開きます。「モデル」タブをクリックするとモデル一覧が表示されるので、対象モデル(ここでは「120Bb-6」)の「プロパティ」アイコンをクリックしてください。
モデルプロパティ設定画面が開いたら、「VM最適配置」タブに移動します。ここでは、「VM最適配置を有効にする」をチェックし、「高負荷境界」、「稼働目標域」、「低負荷境界」のそれぞれのフィールドに閾値となるCPU使用率を設定します。ここではそれぞれのフィールドを以下のように変更しました。
「VM最適配置」タブには、もう1つ重要な項目があります。画面の下にある「マシン台数」のドロップダウンリストで、その上の説明書きにあるように、ここには電源を落とさずに待機させておく余剰物理サーバの台数を設定します。たとえば、3台の物理サーバが存在するシステムで「低負荷検出(SysmonPerf)」イベントの発生によりすべての仮想マシンが1台の物理サーバに集約されたとします。このとき余剰物理サーバは2台になりますが、2台とも電源を落としてしまうと急激に負荷が上昇した際にスムーズな負荷分散が行えません。そこで、電源を落とさずに待機させておく物理サーバを確保しておくわけです。待機物理サーバの数を減らせば消費電力を削減できますが、その分、急激な負荷変動に追従できないおそれが出てきます。そのため、待機物理サーバの数は、システム規模(物理サーバの台数)や仮想マシンの稼働パターンを考慮して決めるようにしてください。
上で説明したように、SSCはSystemMonitorからサーバの負荷情報を取得します。そこで次にSystemMonitorの設定を行います。スタートメニューから「すべてのプログラム」→「SigmaSystemCenter」→「SystemMonitor管理コンソール」を選択して、SystemMonitorを起動してください。SystemMonitorを最初に起動した際には、下のログオン画面が表示されます。ここには、管理サーバにログオンするためのユーザ名とパスワードを入力して「OK」をクリックします。
SystemMonitorのメインウィンドウが表示されたら、ツリービューの右クリックメニューから「グループ設定」を選択して、監視対象グループを設定する画面を表示します。この画面の「全般」タブでは、「グループ名」にSSCの運用ビューで設定したカテゴリ名(ここでは「生産システム」)を入力します。さらに、「SystemProvisioningのグループ/モデルから構成を反映する」をチェックし、その下の「パス」欄に監視対象サーバのモデル情報へのパスを「カテゴリ名\グループ名\モデル名」の形式で入力します(ここでは「生産システム\ESX\120Bb-6」)。最後に「構成反映時にIPアドレス情報を配下のマシンに反映する」をチェックします。
「全般」タブの設定が済んだら、次に「接続」タブを開きます。「接続」タブでは監視対象サーバにアクセスするための情報を設定します。「アカウント」には「root」を、「パスワード/パスフレーズ」にはrootのパスワードを入力します。なお、「プロトコル」には「Telnet」を選択すれば良いでしょう。設定が済んだら、「OK」をクリックします。
SystemMonitorのメイン画面が表示されたら、「ツール」メニューから「SystemProvisioning 構成一括反映」を選択します。これにより、SSC本体から管理対象ホストと閾値の情報がインポートされて、ツリー上にグループ名とその配下の物理サーバが表示されます。このグループ名を右クリックし、表示されたメニューで「閾値監視設定」を選択すると下の画面が表示されます。ここでは、右上の「閾値定義」にある「高負荷閾値監視定義」を選択して「変更」をクリックします。
閾値定義設定画面が開くので「通報設定」タブを開いてください。この「通報設定」タブではどのタイミングで高負荷検出イベントをSSC本体に通報するのかを設定します。サーバを運用していると、負荷のが瞬間的に上昇してすぐに下降する“スパイク”現象が観測されることがよくありますが、こうしたスパイクが発生するたびに高負荷検出イベントを通報すると無駄な仮想マシン移動が行われることになります。そこで高負荷状態が継続している場合にのみ、高負荷検出イベントを通報するようにするわけです。デフォルトでは、10回のチェックで10回、閾値超過が確認された場合に通報が行われるようになっています。また、その下の「閾値超過状態から回復しない場合、[ ]回毎に再通報を行う」をチェックすると、高負荷検出イベントを再通報する際のインターバルが設定できます。どれくらいのタイミングで最初の通報を行うかインターバルをどれくらい取るのかは、システムの負荷変動パターンに併せて調整する必要があります。基本的な考え方としては、短期間で収束する負荷変動を無視するために最初の通報までのチェック回数を多めに取って、インターバルのチェック回数は少なめにするとよいでしょう。「OK」をクリックすると、閾値監視設定画面に戻るので、同様の手順で「低負荷閾値監視定義」の通報タイミングの設定も行います。
通報タイミングを設定したことで、SystemMonitorとSSCが連携できる状態になりました。ただし、このままではサーバの負荷状況が把握しにくいので、負荷状況をグラフ化する設定も行います。SystemMonitorの「グラフ」メニューから「グラフ」→「新規作成」を選択すると、下のグラフ設定画面が開きます。この「表示対象」タブでは、監視するサーバや性能情報、グラフ化する際の統計計算方法を設定します。性能情報と統計計算方法はデフォルト(CPU使用率の平均値をプロット)のままで十分なので、「ノード」セクションにある「追加」をクリックして監視対象サーバを登録します。
「ノード」セクションの「追加」をクリックすると別ウィンドウで「ノード参照」画面が開きます。ここでは、監視対象とする物理サーバ(esx1とesx2)をチェックして「OK」をクリックします。
グラフ設定画面に戻ったら、「時間軸」タブに移動します。ここでは、グラフの時間軸に関する設定を行います。ここでは、グラフの種類を「リアルタイムグラフ」とし、過去15分間のグラフを1秒間隔で更新するようにしました。今回は動作テストの時間を考慮して表示期間を短くしましたが、実際の運用では15分間は短すぎると思われますので適宜調整してください。
「時間軸」タブの次は「閾値表示」タブに移動します。このタブでは、低負荷および高負荷の閾値をグラフ上に表示する設定を行います。「閾値領域をグラフに表示する」をチェックし、「閾値定義を参照」をクリックします。これでSSCからインポートした閾値が下の各フィールドに反映されます。ここまでの設定が済んだら、「OK」をクリックしてグラフ設定画面を閉じます。
以上でグラフの設定は完了です。下はグラフ設定後のSystemMonitorの画面です。