使用可能なリソース キャパシティがリソース消費者の要求(および仮想化オーバーヘッド)を満たしていない場合、管理者は、vSphereの仮想マシンまたはリソース プールに割り当てられるリソースの量をカスタマイズする必要がある場合があります。

リソース割り当て設定 (シェア、予約、制限) は、仮想マシンに提供する CPU、メモリ、およびストレージ リソースの量を決定するために使用します。特に、システム管理者にはリソース割り当てのオプションがいくつかあります。

  • ホストまたはクラスタの物理リソースを予約する。
  • 仮想マシンに割り当てることができるリソースの上限を設定する。
  • 特定の仮想マシンに、常にほかの仮想マシンより高い割合の物理リソースが割り当てられることを保証する。
注: この章では、「メモリ」は物理 RAM を指します。

リソース割り当てのシェア

シェアは、仮想マシン (またはリソース プール) の相対的な重要度を指定します。ある仮想マシンのリソースのシェアが別の仮想マシンの 2 倍である場合、その仮想マシンは、別の仮想マシンの 2 倍のリソースを消費できます (2 台の仮想マシンがリソースを獲得するために競合する場合)。

シェアは、通常、[高][標準]、または [低] で指定され、これらの値によって、それぞれのシェア値が 4:2:1 の割合で指定されます。特定のシェア数 (比重を表す) を各仮想マシンに割り当てる場合は、[カスタム] を選択することもできます。

シェアの指定が意味を持つのは、同レベルの仮想マシンまたはリソース プール (つまり、リソース プール階層内で親が同じである仮想マシンまたはリソース プール) に関してだけです。同レベルの場合、予約および制限によって制限される、相対的なシェア値に応じてリソースを共有します。仮想マシンにシェアを割り当てる場合は、その仮想マシンの、パワーオンされたそれ以外の仮想マシンに対する相対的な優先順位を常に指定します。

次の表は、仮想マシンについて、CPU とメモリのデフォルトのシェア値を示しています。リソース プールの場合、CPU とメモリのデフォルトのシェア値は同じですが、そのリソース プールを、4 つの仮想 CPU と 16 GB のメモリを備えた 1 台の仮想マシンと見なして乗算する必要があります。

表 1. シェア値
設定 CPU シェア値 メモリ シェア値
仮想 CPU あたり 2000 シェア 構成された仮想マシン メモリ 1MB あたり 20 シェア
標準 仮想 CPU あたり 1,000 シェア 構成された仮想マシン メモリ 1 MB あたり 10 シェア
仮想 CPU あたり 500 シェア 構成された仮想マシン メモリ 1 MB あたり 5 シェア

たとえば、2 つの仮想 CPU と 1GB の RAM を持ち、CPU とメモリのシェアが [標準] に設定されている SMP 仮想マシンは、2 × 1,000 = 2,000 シェアの CPU と、10 × 1,024 = 10,240 シェアのメモリを持ちます。

複数の仮想 CPU を持つ仮想マシンを、SMP (対称型マルチプロセシング) 仮想マシンと呼びます。

各シェアによって表される相対的な優先順位は、新しい仮想マシンがパワーオンされると変化します。これは、同じリソース プールのすべての仮想マシンに影響を与えます。すべての仮想マシンは、同じ数の仮想 CPU を持ちます。次の例について考えます。

  • 2 台の CPU バインドの仮想マシンが、全体の CPU 容量が 8GHz であるホスト上で稼働しています。CPU シェアは [標準] に設定されていて、それぞれ 4GHz を獲得します。
  • 3 台目の CPU バインドの仮想マシンがパワーオンされます。その仮想マシンの CPU シェア値は [高] に設定されています。これは、その仮想マシンが、[標準] に設定されているマシンの 2 倍のシェアを持つことを意味します。この新しい仮想マシンは 4GHz を獲得し、ほかの 2 台のマシンはそれぞれ 2GHz だけを獲得します。ユーザーが 3 台目の仮想マシンで、カスタム シェア値を 2,000 に指定した場合も、同じ結果になります。

リソース割り当ての予約

予約は、仮想マシンに保証される最小割り当てを指定します。

vCenter Server または ESXi では、仮想マシンの予約を達成するのに十分な未予約リソースが存在する場合にのみ、仮想マシンをパワーオンできます。サーバは、物理サーバの負荷が大きくても、その量を保証します。予約は、具体的な単位 (メガヘルツまたはメガバイト) で表されます。

たとえば、2GHz が使用可能であり、VM1 に 1GHz の予約を指定し、VM2 に 1GHz の予約を指定するとします。これで、必要な場合に各仮想マシンが 1GHz を獲得できることが保証されます。ただし、VM1 が 500MHz しか使用していない場合、VM2 は 1.5GHz を使用できます。

予約は、デフォルトでは 0 です。仮想マシンが最低限必要な CPU またはメモリを常に使用できるようにする必要がある場合に予約を指定してください。

リソース割り当て制限

制限は、仮想マシンに割り当てることができる CPU、メモリ、またはストレージ I/O リソースの上限を指定します。

サーバは、予約より多くの量を仮想マシンに割り当てることができますが、システムに未使用のリソースがあっても、制限を超える割り当ては行いません。制限は、具体的な単位 (メガヘルツ、メガバイト、または 1 秒あたりの I/O 処理数) で表されます。

CPU、メモリ、およびストレージ I/O リソースの制限は、デフォルトでは制限なしです。メモリの制限が制限なしのときは、仮想マシンを作成するときに構成されたメモリの量が事実上の制限になります。

ほとんどの場合、制限を指定する必要はありません。制限には、メリットとデメリットがあります。

  • メリット: 少数の仮想マシンから使用をはじめて、ユーザーの要望に対応する場合に、制限を割り当てると役立ちます。仮想マシンを追加するごとに、パフォーマンスは低下します。制限を指定することによって、使用可能なリソースが少なくなることをシミュレートできます。
  • デメリット: 制限を指定すると、アイドル リソースが無駄になることがあります。システムが活用されていない状態で、アイドル リソースが使用可能な場合でも、システムは、制限以上のリソースを仮想マシンが使用することを許可しません。適切な理由がある場合にのみ制限を指定します。

リソース割り当て設定の推奨事項

使用する ESXi 環境に適切なリソース割り当て設定(予約、制限、シェア)を選択します。

次のガイドラインは、仮想マシンのパフォーマンスを向上させるのに役立ちます。

  • [予約] では、ユーザーが使用可能にしたい量ではなく、条件に合った最小の CPU またはメモリの量を指定します。予約によって表される具体的なリソースの量は、仮想マシンの追加や削除など、環境を変更しても変化しません。ホストは、仮想マシンの制限、シェア数、および需要予測数に基づいて、使用可能な追加のリソースを割り当てます。
  • 仮想マシンの予約を指定する場合、すべてのリソースをコミットしないでください (10% 以上を未予約にしてください)。システム内のすべての容量が完全に予約された状態に近づくほど、アドミッション コントロールに違反せずに予約とリソース プール階層に変更を加えることが困難になっていきます。DRS の有効なクラスタでは、クラスタの容量またはクラスタ内の個々のホストの容量を完全にコミットする予約によって、DRS が仮想マシンをホスト間で移行できなくなることがあります。
  • 合計使用可能リソースが頻繁に変化することが予想される場合は、[シェア] を使用して、仮想マシン間で適正にリソースを割り当てます。[シェア] を使用していて、ホストをアップグレードする場合、各シェアがより多くのメモリ、CPU、またはストレージ I/O リソースを表していても、各仮想マシンの優先順位は変わりません (同じシェア数のままです)。

vSphere での設定の編集

[設定の編集] ダイアログ ボックスを使用して、メモリおよび CPU リソースの割り当てを変更します。

手順

  1. vSphere Client で、仮想マシンを参照して移動します。
  2. 右クリックして [設定の編集] を選択します。
  3. CPU リソースを編集します。
    オプション 説明
    シェア 親の合計リソースに対するこのリソース プールの CPU シェア。兄弟のリソース プールは、予約と制限の範囲内で、相対的シェア値に従ってリソースを共有します。[低][標準]、または [高] を選択します。これらの値はそれぞれ 1:2:4 の割合でシェア値を指定します。各仮想マシンに対して、比重に見合う特定のシェア値を指定するには、[カスタム] を選択します。
    予約 このリソース プールで確保されている CPU の割り当て。
    制限 このリソース プールに割り当てる CPU の上限。上限を指定しない場合は、[制限なし] を選択します。
  4. メモリ リソースを編集します。
    オプション 説明
    シェア 親の合計リソースに対するこのリソース プールのメモリ シェア。兄弟のリソース プールは、予約と制限の範囲内で、相対的シェア値に従ってリソースを共有します。[低][標準]、または [高] を選択します。これらの値はそれぞれ 1:2:4 の割合でシェア値を指定します。各仮想マシンに対して、比重に見合う特定のシェア値を指定するには、[カスタム] を選択します。
    予約 このリソース プール用に確保されているメモリの割り当て。
    制限 このリソース プールに割り当てるメモリの上限。制限を指定しない場合は、[制限なし] を選択します。
  5. [OK] をクリックします。

リソース割り当て設定の変更: 例

次の例は、リソース割り当て設定を変更して、仮想マシンのパフォーマンスを向上させる方法を示しています。

ESXiホストで、2 台の新しい仮想マシンを作成したとします。この 2 台はそれぞれ、QA (VM-QA) 部門とマーケティング (VM- マーケティング) 部門用です。

図 1. 2 台の仮想マシンを持つ単一ホスト

この例では、単一ホストが 2 台の仮想マシンを持っています。

次の例では、VM-QA が多くのメモリを必要とし、そのために 2 台の仮想マシンのリソース割り当て設定を変更して、次のことを行うものとします。

  • システム メモリがオーバーコミットされる場合に、VM-QA が VM- マーケティングの 2 倍の CPU リソースと メモリ リソースを使用できるように指定する。VM-QA の CPU シェアとメモリ シェアを [高] に設定し、VM- マーケティングでは [標準] に設定する。
  • VM- マーケティングが、一定量の保証された CPU リソースを所有するようにする。これは、予約設定を使用して実行できます。

手順

  1. vSphere Clientで、仮想マシンを参照して移動します。
  2. [VM-QA] (シェアを変更する仮想マシン) を右クリックして、[設定の編集] を選択します。
  3. [仮想ハードウェア] で、[CPU] を展開し、[シェア] ドロップダウン メニューから [高] を選択します。
  4. [仮想ハードウェア] で、[メモリ] を展開し、[シェア] ドロップダウン メニューから [高] を選択します。
  5. [OK] をクリックします。
  6. マーケティング仮想マシン ([VM- マーケティング]) を右クリックし、[設定の編集] を選択します。
  7. [仮想ハードウェア] で、[CPU] を展開し、[予約] の値を目的の数値に変更します。
  8. [OK] をクリックします。

vSphere のアドミッション コントロール

仮想マシンをパワーオンすると、まだ予約されていない CPU リソースとメモリ リソースの量をシステムが確認します。システムは、未予約の使用可能なリソースに基づいて、仮想マシンが構成されている予約を保証できるかどうかを判定します (予約がある場合)。このプロセスをアドミッション コントロールと呼びます。

未予約の CPU とメモリが十分に使用可能な場合、または予約がない場合、仮想マシンはパワーオンされます。それ以外の場合は、リソース不足です という警告が表示されます。

注: ユーザー指定のメモリ予約のほかに、仮想マシンごとにオーバーヘッド メモリがあります。この余分なメモリ コミットは、アドミッション コントロールの計算に含まれます。

vSphere DPM 機能が有効になっている場合、電力の消費を減らすために、ホストがスタンバイ モード (パワーオフ状態) になることがあります。これらのホストが提供する未予約のリソースは、アドミッション コントロールに使用できると見なされます。これらのリソースがないと仮想マシンをパワーオンできない場合、十分なスタンバイ ホストをパワーオンする推奨が作成されます。詳細については、『電力リソースの管理』を参照してください。