スロット ポリシー オプションの場合、vSphere HA アドミッション コントロールにより、指定された数のホストで障害が発生しても、それらのホストからすべての仮想マシンにフェイルオーバーするのに十分なリソースがクラスタ内に残ります。

スロット ポリシーを使用する場合、vSphere HA は、次のようにアドミッション コントロールを実行します。

  1. スロット サイズを計算します。

    スロットは、メモリおよび CPU リソースの論理的な表現方法です。デフォルトで、クラスタ内でパワーオンされている仮想マシンの要件を満たすよう、サイズが調整されます。

  2. クラスタ内の各ホストが保持できるスロットの数を決定します。
  3. クラスタの現在のフェイルオーバー キャパシティを決定します。

    これは障害が発生し、パワーオン状態のすべての仮想マシンの要件を満たす十分なスロットが残っている可能性があるホストの数です。

  4. 現在のフェイルオーバー キャパシティが、(ユーザーが定義した) 構成済みフェイルオーバー キャパシティよりも少ないかどうか判断します。

    少ない場合、アドミッション コントロールにより操作が禁止されます。

注: vSphere Clientの vSphere HA 設定のアドミッション コントロールのセクションで、CPU とメモリの両方について具体的なスロット サイズを設定できます。

スロット サイズの計算

スロット サイズは、CPU とメモリの 2 つのコンポーネントで構成されます。

  • vSphere HA では、パワーオン状態の各仮想マシンの CPU 予約を取得し、最も大きな値を選択することによって、CPU コンポーネントを計算します。仮想マシンの CPU 予約を指定していない場合、デフォルト値である 32MHz が割り当てられます。das.vmcpuminmhzという詳細オプションで、この値を変更できます。
  • vSphere HA では、パワーオン状態の各仮想マシンのメモリ予約 (にメモリ オーバーヘッドを加えた値) を取得し、最も大きな値を選択することによって、メモリ コンポーネントを計算します。メモリ予約には、デフォルト値はありません。

クラスタの中に、ほかよりもかなり多い予約が割り当てられている仮想マシンが含まれている場合は、スロット サイズの計算が正確になりません。このような問題を回避するために、das.slotcpuinmhzまたは das.slotmeminmb の詳細オプションを使用して、スロット サイズの CPU コンポーネントまたはメモリ コンポーネントに対する上限をそれぞれ指定できます。vSphere HA の詳細オプションを参照してください。

また、複数のスロットを必要とする仮想マシンの数を表示することで、クラスタ内のリソースの断片化のリスクを判断することもできます。これは、vSphere Client の vSphere HA 設定のアドミッション コントロールのセクションで計算できます。詳細オプションを使用して固定のスロット サイズや最大のスロット サイズを指定している場合、仮想マシンで複数のスロットが必要になる場合があります。

スロットを使用した現在のフェイルオーバー キャパシティの計算

スロット サイズが計算されると、vSphere HA は、仮想マシンで使用できる各ホストの CPU とメモリのリソースを決定します。これらの量は、ホストの物理リソースの合計ではなく、ホストのルート リソース プールに含まれています。vSphere HA で使用されるホストのリソース データは、vSphere Client のホストの [サマリ] タブにあります。クラスタ内のホストがすべて同一の場合、このデータは、クラスタレベルの数字をホスト数で割れば得られます。仮想化のために使用中のリソースは除外されます。接続されていてメンテナンス モードでなく、vSphere HA エラーがないホストのみが考慮されます。

次に、各ホストがサポートできるスロットの最大数が決定されます。そのためには、ホスト CPU のリソース量をスロット サイズの CPU コンポーネントで割り、結果を切り捨てます。ホストのメモリ リソース量に対して、同じ計算が行われます。これらの 2 つの値が比較され、小さい方が、ホストがサポートできるスロット数になります。

現在のフェイルオーバー キャパシティは、何台のホスト (最も大きいものから開始) で障害が発生する可能性があるか、およびパワーオン状態のすべての仮想マシンの要件を満たす十分なスロットが残っているかを判定することによって計算されます。

スロット ポリシーを使用したアドミッション コントロール

この例では、スロット サイズがどのように計算され、このアドミッション コントロール ポリシーでどのように使用されるかを示します。クラスタについて次のように仮定します。

  • クラスタは 3 台のホストで構成されており、それぞれ異なる量の、使用可能な CPU リソースとメモリ リソースがあります。最初のホスト (H1) は、使用可能な 9GHz の CPU リソースと 9GB のメモリがありますが、ホスト 2 (H2) には、9GHz の CPU リソースと 6GB のメモリ、ホスト 3 (H3) には 6GHz の CPU リソースと 6GB のメモリがあります。
  • クラスタ内には、パワーオン状態の仮想マシンが 5 台あり、それぞれに異なる CPU 要件とメモリ要件があります。VM1 は 2GHz の CPU リソースと 1GB のメモリが必要ですが、VM2 は 2GHz の CPU リソースと 1GB のメモリ、VM3 は 1GHz の CPU リソースと 2GB のメモリ、VM4 は 1GHz の CPU リソースと 1GB のメモリ、VM5 は 1GHz の CPU リソースと 1GB のメモリが必要です。
  • クラスタで許容するホスト障害は 1 に設定されます。
図 1. クラスタで許容するホスト障害ポリシーによるアドミッション コントロールの例
クラスタで許容するホスト障害ポリシーによるアドミッション コントロールの例を示します。
  1. 仮想マシンの CPU 要件とメモリ要件の両方で比較を行なって最大の値を選択することにより、スロット サイズが計算されます。

    最大の CPU 要件は 2GHz (VM1 と VM2 で共通) で、最大のメモリ要件は 2GB (VM3 の) です。これらの値に基づいて、スロット サイズは 2GHz CPU および 2GB メモリになります。

  2. 各ホストでサポートできるスロットの最大数を決定します。

    H1 は 4 つのスロットをサポートできます。H2 は 3 スロット (9GHz/2GHz および 6GB/2GB の小さい方)、H3 も 3 スロットをサポートできます。

  3. 現在のフェイルオーバー キャパシティを計算します。

    最も大きいホストは H1 で、H1 で障害が発生しても、クラスタでは 6 つのスロットを使用できます。これは、パワーオン状態の 5 台の仮想マシンすべてに対して十分なスロットです。H1 と H2 の両方で障害が発生すると、3 つのスロットしか使用できなくなり、これでは不十分です。したがって、現在のフェイルオーバー キャパシティは 1 になります。

クラスタには、使用できるスロットが 1 つあります (H2 と H3 の 6 つのスロットから、使用済みの 5 つのスロットを減算する)。