ゲスト スワップ ファイルの場所の指定、メモリがオーバーコミットされている場合のスワップ スペースの予約、およびスワップ ファイルの削除が可能です。

ESXi ホストは、次のように vmmemctl ドライバが使用できない場合、または反応しない場合、スワップを使用して仮想マシンからメモリを強制的に解放します。

  • インストールされていない。
  • 明示的に無効にされている。
  • 実行されていない (たとえば、ゲスト OS の起動中)。
  • 現在のシステム要求を十分に満たすほど迅速にメモリを解放することが、一時的にできない。
  • 適切に機能しているが、最大バルーン サイズに達している。

標準の要求ページング技法は、仮想マシンにページが必要な場合、ページをスワップ バックします。

スワップ ファイルの場所

デフォルトでは、スワップ ファイルは仮想マシンの構成ファイルと同じ場所(VMFS データストア、vSAN データストア、または VMware vSphere® Virtual VolumesTM データストアのいずれか)に作成されます。vSAN データストアまたは vVol データストアでは、スワップ ファイルは個別の vSAN オブジェクトまたは vVol オブジェクトとして作成されます。

仮想マシンがパワーオンされると、ESXi ホストはスワップ ファイルを作成します。スワップ ファイルを作成できない場合、仮想マシンをパワーオンできません。デフォルトを使用せずに、次のように操作することもできます。

  • 仮想マシンごとの構成オプションを使用して、データストアを別の共有ストレージの場所に変更する。
  • ホストのローカル スワップを使用して、データストアをホスト上にローカルで格納するように指定する。このように指定すると、ホスト レベルでスワップするため、SAN の容量を節約できます。ただし、スワップ元ホスト上のローカル スワップ ファイルへスワップされたページは、ネットワークを介してスワップ先ホストへ転送されるため、vSphere vMotion のパフォーマンスがわずかに低下する場合があります。現在、vSAN データストアおよび vVol データストアをホスト ローカル スワップに指定することはできません。

DRS クラスタでのホストのローカル スワップの有効化

ホストのローカル スワップを使用すると、ホスト上にローカルに格納されているデータストアをスワップ ファイルの場所として指定できます。DRS クラスタで、ホストのローカル スワップを有効にすることができます。

手順

  1. vSphere Clientのクラスタを参照して移動します。
  2. [構成] をクリックします。
  3. [構成][全般] を選択して、スワップ ファイルの場所を表示します。次に、[編集] をクリックしてスワップ ファイルを変更します。
  4. [ホストが指定するデータストア] オプションを選択し、[OK] をクリックします。
  5. vSphere Clientで、クラスタ内のホスト 1 台を参照して移動します。
  6. [構成] をクリックします。
  7. [仮想マシン] で、[スワップ ファイルの場所] を選択します。
  8. [編集] をクリックし、使用するローカル データストアを選択して、[OK] をクリックします。
  9. クラスタ内の各ホストに対して、手順 5 から 手順 8 の手順を繰り返します。

結果

これで、ホストのローカル スワップが DRS クラスタで有効になりました。

スタンドアローン ホストでのホストのローカル スワップの有効化

ホストのローカル スワップを使用すると、ホスト上にローカルに格納されているデータストアをスワップ ファイルの場所として指定できます。スタンドアローン ホストで、ホストのローカル スワップを有効にすることができます。

手順

  1. vSphere Clientで、ホストを参照して移動します。
  2. [構成] をクリックします。
  3. [仮想マシン] で、[スワップ ファイルの場所] を選択します。
  4. [編集] をクリックし、[選択したデータストア] を選択します。
  5. リストからローカル データストアを選択し、[OK] をクリックします。

結果

これで、ホストのローカル スワップがスタンドアローン ホストで有効になりました。

スワップ スペースとメモリのオーバーコミット

仮想マシンごとのスワップ ファイルで、予約されていない仮想マシン メモリ (これは予約されたメモリ サイズと構成済みメモリ サイズの差です) に対して、スワップ スペースを予約する必要があります。

このスワップ予約は、どのような状況下でも ESXi ホストが仮想マシン メモリを維持できるようにするのに必要です。実際には、ホスト レベルのスワップ スペースのごく一部分だけが使用されます。

バルーニングによって生じるゲスト内スワップをサポートするために、ESXi でメモリをオーバーコミットする場合は、必ず、ゲスト OS にも十分なスワップ スペースが存在することを確認してください。このゲスト レベルのスワップ スペースは、仮想マシンの構成済みメモリ サイズと仮想マシンの [予約 ] の差以上である必要があります。

注意: メモリがオーバーコミットされ、ゲスト OS に構成されたスワップ スペースが不十分な場合、仮想マシン内のゲスト OS は起動に失敗します。

仮想マシンの障害を防ぐには、仮想マシン内のスワップ スペースのサイズを拡大します。

  • Windows ゲスト OS: Windows オペレーティング システムでは、スワップ スペースをページング ファイルと呼びます。一部の Windows オペレーティング システムは、十分な空きディスク領域がある場合、ページング ファイルのサイズを自動的に拡大しようとします。

    Microsoft Windows のドキュメントを参照するか、Windows のヘルプ ファイルで 「ページング ファイル」 を検索します。仮想メモリ ページング ファイルのサイズを変更する手順に従ってください。

  • Linux ゲスト OS: Linux オペレーティング システムでは、スワップ スペースをスワップ ファイルと呼びます。スワップ ファイルの拡大については、次の Linux の man ページを参照してください。
    • mkswap: Linux スワップ領域を設定します。
    • swapon: ページングとスワップのためのデバイスとファイルを有効にします。

メモリが大量にあり、仮想ディスクが小さいゲスト OS (たとえば、8GB の RAM と 2GB の仮想ディスクを持つ仮想マシン) は、スワップ スペースが不十分な場合の影響を受けやすくなります。

注: スワップ ファイルは、シン プロビジョニングされた LUN 上に保存しないでください。シン プロビジョニングされた LUN 上に保存されたスワップ ファイルを使用する仮想マシンを実行した場合、スワップ ファイルの増大にエラーが起きる可能性があり、仮想マシンが終了する恐れがあります。

大きなスワップ ファイルを作成する場合 (100GB を超える場合など)、仮想マシンのパワーオンに要する時間が大幅に長くなる可能性があります。これを回避するには、大規模な仮想マシン用に予約を増やして設定します。

また、ホストのローカルのスワップ ファイルを使用することで、コストの低いストレージにスワップ ファイルを配置することもできます。

ホストの仮想マシン スワップファイル プロパティの設定

ホストでスワップ ファイルの場所を構成し、vSphere Client内で仮想マシン スワップ ファイルのデフォルトの場所を指定します。

デフォルトで仮想マシンのスワップファイルは、データストア上のほかの仮想マシン ファイルを含むフォルダにあります。ただし、他のデータストアに仮想マシンのスワップ ファイルを配置するように、ホストを設定できます。

この方法で、低コストまたは高パフォーマンスのストレージに仮想マシンのスワップ ファイルを配置することができます。このホスト レベルの設定は、各仮想マシンにオーバーライドできます。

スワップファイルにデフォルトとは異なる配置場所を設定すると、vMotion での移行時間がより長くなる可能性があります。vMotion のパフォーマンスを高めるには、仮想マシンを仮想マシンのスワップ ファイルと同じディレクトリではなく、ローカル データストアに格納してください。仮想マシンがローカル データストアに格納されている場合は、その他の仮想マシン ファイルとともにスワップ ファイルを格納しても、vMotion のパフォーマンスは向上しません。

前提条件

必要な権限:ホスト マシン.構成.ストレージ パーティション構成

手順

  1. vSphere Clientで、ホストを参照して移動します。
  2. [構成] をクリックします。
  3. [仮想マシン][スワップ ファイルの場所] をクリックします。

    選択したスワップ ファイルの場所が表示されます。選択したホストでスワップ ファイルの場所を構成する機能がサポートされていない場合は、このタブにそそのように表示されます。

    ホストがクラスタに属しており、クラスタ設定でスワップファイルを仮想マシンと同じディレクトリに格納するように指定されている場合は、ホストの [構成] タブではスワップファイルの場所を編集できません。この場合、ホストのスワップ ファイルの場所を変更するには、クラスタ設定を編集します。

  4. [編集] をクリックします。
  5. スワップ ファイルを格納する場所を選択します。
    オプション 説明
    仮想マシン ディレクトリ 仮想マシン構成ファイルと同じディレクトリにスワップファイルを格納します。
    特定のデータストアを使用する 指定した場所にスワップ ファイルを格納します。

    ホストが指定するデータストアにスワップファイルを格納できない場合、スワップファイルは仮想マシンと同じフォルダに格納されます。

  6. (オプション) [特定のデータストアを使用] を選択した場合は、データストアをリストから選択します。
  7. [OK] をクリックします。

結果

仮想マシンのスワップ ファイルが、選択された場所に格納されます。

クラスタ用の仮想マシンのスワップ ファイルのための場所の設定

デフォルトで仮想マシンのスワップ ファイルは、データストア上のほかの仮想マシン ファイルを含むフォルダにあります。ただし、代わりにクラスタでホストを構成し、別のデータストアを選択して仮想マシンのスワップ ファイルを配置することもできます。

低コストまたは高パフォーマンスのストレージに仮想マシンのスワップ ファイルを配置するため、必要に応じて別のスワップ ファイルの場所を設定できます。

前提条件

クラスタで仮想マシンのスワップ ファイルの場所を設定する前に、ホストの仮想マシン スワップファイル プロパティの設定に記載されているように、クラスタ内のホストで仮想マシンのスワップ ファイルの場所を設定する必要があります。

手順

  1. vSphere Clientのクラスタを参照して移動します。
  2. [構成] をクリックします。
  3. [構成] > [全般] を選択します。
  4. スワップ ファイル ロケーションの横にある [編集] をクリックします。
  5. スワップ ファイルを格納する場所を選択します。
    オプション 説明
    仮想マシン ディレクトリ 仮想マシン構成ファイルと同じディレクトリにスワップ ファイルを格納します。
    ホストが指定するデータストア ホストの設定で指定された場所にスワップ ファイルを格納します。

    ホストが指定するデータストアにスワップ ファイルを格納できない場合、スワップ ファイルは仮想マシンと同じフォルダに格納されます。

  6. [OK] をクリックします。

スワップ ファイルの削除

ホストに障害が起きた場合、そのホストにスワップ ファイルを使用している実行中の仮想マシンがあるとスワップ ファイルは存在し続け、ディスク スペースを何ギガバイトも消費します。スワップ ファイルを削除すると、この問題を解消できます。

手順

  1. 障害のあったホスト上の仮想マシンを再起動します。
  2. 仮想マシンを停止します。

結果

仮想マシンのスワップ ファイルが削除されます。