こんにちは、日本マイクロソフト System Center Support Team の益戸です。
"SCVMM の落とし穴 その7 – 「過剰コミット」" について、計算式に一部誤記がありましたので、改めてご紹介します。
「過剰コミット」とは、予め想定している障害の範囲内 (例 : 5 ノードのうち 2 ノードが停止する、等) において、ホスト クラスターを構成するどのノードに障害が発生した場合でも、クラスター全体としてリソースを稼働させ続けられることを保証する為に導入された SCVMM の仕組みです。この仕組みは SCVMM 独自のものであり、SCVMM 上で「過剰コミット」と判定されても、Hyper-V やフェールオーバー クラスターには影響がありません。
さて、その「過剰コミット」の判定方法ですが、SCVMM 2008 および SCVMM 2008 R2 では、具体的には以下の計算で判定しています。
- 過剰コミットの判定方法1. クラスター内の全ての高可用性仮想マシンの中で、最大のメモリサイズが割り当てられた仮想マシンを見つけ、そのサイズにオーバーヘッド分の RAM を足した値を "スロット" のサイズとします。※ オーバーヘッド分の RAM の値は、Hyper-V ホスト クラスターの場合 64MB、Virtual Server 2005 R2 ホスト クラスターの場合は 32 MB が加算されます。VMware ESX ホスト クラスタ の場合は、加算はありません。
2. 各ホストについて、使用済みスロットを計算します。※ "使用済みスロットの計算方法" に詳細を記載しています。
3. 各ホストについて、空きスロットを計算します。※ "空きスロットの計算方法" に詳細を記載しています。
4. クラスター予約の数 R に基づいて、各パラメーター (U 、A1 、A2)を算出します。※ "各パラメーターの計算方法" に詳細を記載しています。
5. U + A1 (総スロットの多いものから R 個の総スロット数) と A1 + A2 (空きスロットの総数) を比較します。※ 実質的には、U と A2 を比較した値となります。
- 使用済みスロットの計算方法使用済みスロットは以下の手順で計算します。※ ここでは、Hyper-V ホスト クラスターを想定して記載おります。Virtual Server 2005 ホスト クラスター、VMware ESX ホスト クラスタ の場合は、オーバーヘッド分の RAM として計算している ”64” の部分を読み替えてください。
1. ノード上の仮想マシンをメモリ サイズの大きい順に配列します。2. 配列した仮想マシンのメモリ サイズをそれぞれ V_1 、V_2 ... V_N として、以下のアルゴリズムに従ってスロット数をカウントします。
-----------------------------------------------------------SlotSize = <スロット サイズ>CurrentSlot = 0SlotCount = 0
V_1 から V_N について以下をループ
If (V_n + 64 + CurrentSlot > SlotSize){ SlotCount += 1 CurrentSlot = V_n + 64}else{ CurrentSlot += V_n + 64}
ループ終了後、さらに SlotCount に 1 を加算-----------------------------------------------------------
3. 算出された SlotCount を使用済みスロットとして利用します。
- 空きスロットの計算方法空きスロットは以下の手順で計算します。
1. ホストのメモリ サイズを M_total とします。2. ホストのメモリ予約を M_reserved とします。3. 各非高可用性仮想マシンのメモリ サイズにそれぞれ 64MB を加算し、それらの総和を M_non_ha_total とします。4. 稼働中の高可用性仮想マシンのメモリ サイズにそれぞれ 64MB を加算し、それらの総和を M_running_ha_totoal とします。5. 稼働中以外の高可用性仮想マシンの数を stopped_ha_total とします。5. スロット サイズを SlotSize とします。6. 以下の式の結果を計算します。
(M_total - M_reserved - M_non_ha_total - M_running_ha_totoal)/SlotSize - stopped_ha_total
7. 手順 6. で計算した結果の小数点以下を切り捨てた数字を空きスロットとして利用します。
- 各パラメーターの計算方法各パラメーター U 、A1 、A2 については、以下の手順で計算します。
1. それぞれのホストの使用済みスロットと空きスロットの和を計算し、和の大きい順にホストを配列します。2. 配列したホストのうち上位 R 個 (ホスト予約数) の使用済みスロットの総和を U とします。3. 配列したホストのうち上位 R 個の空きスロットの総和を A1 とします。4. 配列したホストのうち、R+1 個目以降の空きスロットの総和を A2 とします。
いかがでしょうか?複雑な計算式となっておりますが、スロットという考え方を使って過剰コミットを判定することで、SCVMM が管理するホスト クラスター上のリソースが枯渇しないようにしていることがお分かり頂けるかと思います。