不揮発性メモリ (NVM) とも呼ばれる永続的なメモリ (PMEM) は、電源が停止した後でもデータを保持することができます。PMEM は、ダウンタイムの影響を受けやすく高いパフォーマンスが必要なアプリケーションで使用できます。

仮想マシンは、スタンドアローン ホスト上またはクラスタ内で PMEM を使用するように構成できます。PMEM は、ローカル データストアとして扱われます。永続的なメモリは、ストレージの遅延を大幅に軽減します。ESXi では、PMEM で構成されている仮想マシンを作成することができ、これらの仮想マシン内のアプリケーションはこの高速化を利用できます。仮想マシンが最初にパワーオンされたときに、仮想マシンがパワーオンされているかパワーオフされているかに関係なく、PMEM が仮想マシン用に予約されます。この PMEM は、仮想マシンが移行または削除されるまで予約済みのままです。

永続的なメモリは、2 つの異なるモードで仮想マシンによって使用できます。レガシーのゲスト OS では、仮想永続的なメモリ ディスクの機能も利用できます。

  • [仮想永続的なメモリ (vPMem)]
    vPMem を使用すると、メモリは仮想 NVDIMM としてゲスト OS に公開されます。これにより、ゲスト OS は PMEM をバイト アドレスが指定可能なランダム モードで使用することができます。
    注: 仮想マシン ハードウェア バージョン 14 と NVM テクノロジーをサポートするゲスト OS を使用する必要があります。
    注: PMEM 仮想マシン用に vSphere HA を構成する場合は、仮想マシン ハードウェア バージョン 19 を使用する必要があります。詳細については、『 PMEM 仮想マシンに対する vSphere HA の構成』を参照してください。
  • [仮想永続的なメモリ ディスク (vPMemDisk)]

    vPMemDisk を使用すると、ゲスト OS は仮想 SCSI デバイスとしてメモリにアクセスできますが、仮想ディスクは PMEM データストアに格納されます。

PMEM で仮想マシンを作成すると、ハード ディスクの作成時にメモリが仮想マシン用に予約されます。アドミッション コントロールもハード ディスクの作成時に実行されます。詳細については、『vSphere HA アドミッション コントロールの PMEM 予約』を参照してください。

クラスタでは、各仮想マシンに PMEM 用の一部の容量があります。PMEM の合計量は、クラスタで使用可能な合計量以下にする必要があります。PMEM の使用量には、パワーオン状態の仮想マシンとパワーオフ状態の仮想マシンの両方が含まれます。仮想マシンが PMEM を使用するように構成されており、DRS を使用しない場合は、仮想マシンを配置するのに十分な PMEM があるホストを手動で選択する必要があります。

[NVDIMM と従来のストレージ]

NVDIMM はメモリとしてアクセスされます。従来のストレージを使用すると、アプリケーションとストレージ デバイスの間にソフトウェアが配置されるため、処理時間が遅延することがあります。PMEM を使用すると、アプリケーションはストレージを直接使用します。つまり、PMEM のパフォーマンスは従来のストレージよりも優れています。ストレージがホストに対してローカルです。ただし、システム ソフトウェアは変更を追跡できないため、バックアップなどのソリューションは現在 PMEM では動作しません。

非 PMEM データストアへのライトスルー以外のモードで vPMEM を使用する場合、vSphere HA などのソリューションの範囲は制限されます。フェイルオーバーが有効な vPMEM 仮想マシンに対して vSphere HA を有効にすると、仮想マシンを別のホストにフェイルオーバーできます。この場合、仮想マシンは新しいホストの PMEM リソースを使用します。古いホストのリソースを解放するために、ガベージ コレクタはこのようなリソースを定期的に特定して解放し、他の仮想マシンが使用できるようにします。

[名前空間]

PMEM の名前空間は、ESXi が起動する前に構成されます。名前空間は、システム上のディスクと似ています。ESXi は名前空間を読み取り、GPT ヘッダーを書き込むことで複数の名前空間を 1 つの論理ボリュームにまとめます。以前にこれを設定していない場合、デフォルトで自動的にフォーマットされます。すでにフォーマットされている場合は、ESXi は PMEM をマウントします。

[GPT テーブル]

PMEM ストレージ内のデータが破損していると、ESXi が動作しなくなることがあります。これを回避するため、ESXi は PMEM のマウント時にメタデータのエラーをチェックします。

[PMEM 領域]

PMEM 領域とは、単一の vNVDimm または vPMemDisk を表す連続したバイト ストリームです。各 PMEM ボリュームは 1 台のホストに属しています。これは、管理者が多数のホストを持つクラスタ内の各ホストを管理する必要がある場合には、管理が難しいことがあります。ただし、個々のデータストアを管理する必要はありません。代わりに、クラスタ内の PMEM 容量全体を 1 つのデータストアと見なすことができます。

vCenter Server および DRS は PMEM データストアの初期配置を自動化します。仮想マシンを作成したとき、またはデバイスを仮想マシンに追加したときに、ローカルの PMEM ストレージ プロファイルを選択します。残りの設定は自動化されています。ESXi では仮想マシン ホームを PMEM データストアに配置することができないという制限があります。これは、仮想マシン ログと統計情報ファイルを保存するのに貴重な容量を必要とするためです。これらの領域は、仮想マシン データを表すために使用され、バイト アドレス指定可能な nvDimms または VpMem ディスクとして公開できます。

[移行]

PMEM はローカル データストアであるため、仮想マシンを移動する場合は Storage vMotion を使用する必要があります。vPMem を持つ仮想マシンは、PMEM リソースを持つ ESX ホストにのみ移行することができます。vPMemDisk を持つ仮想マシンは、PMEM リソースなしで ESX ホストに移行できます。

[エラー処理と NVDimm の管理]

ホスト障害により、ライトスルー モードではない vPMEM 仮想マシンの可用性が失われる可能性があります。致命的なエラーが発生した場合は、すべてのデータが失われる可能性があるため、手動で PMEM を再フォーマットする必要があります。

vSphere Client での vSphere の永続的なメモリ

永続的なメモリの簡単な概要については、以下を参照してください。

vSphere Client と PMEM の併用に対する機能向上

PMEM と併用する際の HTML5 ベース vSphere Client の機能向上の概要については、以下を参照してください:

PMEM を使用した vSphere Client での仮想マシンの移行およびクローン作成

PMem を使用する仮想マシンの移行およびクローン作成の詳細については、以下を参照してください:

PMEM 仮想マシンに対する vSphere HA の構成

vSphere HA を PMEM 仮想マシンに対しライトスルー モードで構成できます。これにより、ホストで障害が発生した場合に仮想マシンを機能している別のホストでリストアできるようになります。

前提条件

  • ハードウェア バージョン 19 を選択する必要があります。
  • vPMemDisks を持つ PMEM 仮想マシンはサポートされていません。

手順

  1. [新規仮想マシン] ウィザードで新しい仮想マシンを作成する場合は、[ハードウェアのカスタマイズ] を選択します。
    1. [新規デバイスを追加] をクリックし、ドロップダウン メニューから [NVDIMM を追加] を選択します。
    2. チェックボックス [すべての NVDIMM デバイスに対し別のホストでのフェイルオーバーを許可] をクリックします。
    3. [次へ] をクリックし、[新規仮想マシン] ウィザードを完了します。
      ホスト障害が発生した場合、NVDIMM PMEM データはリカバリできません。デフォルトでは、HA でこの仮想マシンは別のホストで再起動されません。ホスト障害が発生した場合に HA で仮想マシンのフェイルオーバーを許可すると、新しい空の NVDIMM が搭載されている別のホストで仮想マシンが再起動されます。
  2. 既存の仮想マシンで HA を有効にするには、仮想マシンを参照します。
    1. [仮想マシンのハードウェア] で、[編集] をクリックします。
    2. NVDIMM を選択します。
    3. チェックボックス [すべての NVDIMM デバイスに対し別のホストでのフェイルオーバーを許可] をクリックします。
    4. [OK] をクリックします。
      ホスト障害が発生した場合、HA は新しい空の NVDIMM が搭載されている別のホスト上でこの仮想マシンを再起動します。

vSphere HA アドミッション コントロールの PMEM 予約

アドミッション コントロールは vSphere HA が使用するポリシーです。これにより、クラスタ内のフェイルオーバーのキャパシティが確保されます。

許容されるホスト障害の数を増やすと、可用性の制約や予約キャパシティが増えます。ホストのフェイルオーバー キャパシティ用に一定割合の永続的なメモリを予約できます。これはブロックされる実際のストレージ容量であり、ホストのパワーオフを考慮する必要があります。

[クラスタ設定の編集][アドミッション コントロール] を選択して、ホストで許容する障害の数を指定できます。

次で定義された CPU/メモリ予約を選択した場合について以下に示します。

  • [クラスタ リソースの割合 (%)]。クラスタ内の仮想マシンで永続的なメモリを使用していない場合でも、クラスタ内の永続的なメモリ容量の一部はフェイルオーバー専用となります。この割合は、オーバーライドで指定できるほか、[許容するホスト障害] 設定に従って自動的に計算されます。PMEM アドミッション コントロールを有効にすると、PMEM をディスクとして使用している仮想マシンがある場合でも、PMEM キャパシティがクラスタ全体で予約されます。
  • [スロット ポリシー(パワーオン状態の仮想マシン)]。永続的なメモリのアドミッション コントロールでは、永続的なメモリ リソースに対してのみ、クラスタ リソースの割合 (%) ポリシーを使用してスロット ポリシーをオーバーライドします。割合の値は、[クラスタで許容するホスト障害] 設定から自動的に計算され、オーバーライドすることはできません。
  • [専用フェイルオーバー ホスト]。専用のフェイルオーバー ホスト上の永続的なメモリはフェイルオーバー専用であり、これらのホスト上に永続的なメモリを持つ仮想マシンをプロビジョニングすることはできません。
注: アドミッション コントロール ポリシーを選択した後、 [永続的なメモリのフェイルオーバー キャパシティの予約] チェックボックスをクリックして PMEM アドミッション コントロールを有効にする必要もあります。

vSphere メモリの監視と修正

vMMR では、アプリケーションのワークロードがメモリ モードが原因で回帰されるかどうかを判断できるよう、データが収集され、パフォーマンス統計が表示されます。

Intel Optane パーシステント メモリ は、アプリケーション直接モードまたはメモリ モードで BIOS 設定で構成できます。アプリケーション直接モードでは、パーシステント メモリに DRAM とともにバイト アドレスが指定可能なパーシステント メモリとしてアクセス可能です。メモリ モードでは、DRAM がハードウェア キャッシュになり、より大きな PMEM が揮発性になり、システム メモリとして表示されます。

メモリ モードは、仮想マシンに認識されず、透過的です。メモリ モードでシステムを構成すると、システムは DRAM が搭載された従来のシステムとして表示されます。クラスタには、構成が異なるホストを混在させることができます。vSphere では、メモリ モードになっているシステムに関する追加情報が表示されます。ESXi では、ホスト レベルと仮想マシン レベルの統計に関する情報を収集するパフォーマンス カウンタがプログラムされます。これらのパフォーマンス統計は、アラームの作成に使用されます。統計情報は、パフォーマンス チャートでも追跡されます。

システムがメモリ モードになっているかどうかは、ホストの [サマリ] タブの [メモリ階層化: ハードウェアおよび追加詳細] で確認できます。

このスクリーンショットは、[メモリ階層化: ハードウェアおよび追加詳細] のホストの [サマリ] タブに表示された、メモリ モードのシステムを示しています。

DRAM と PMEM のサイズを [構成] > [ハードウェア] > [概要] > [メモリ] で表示することもできます。

このスクリーンショットは、[構成] > [ハードウェア] > [概要] > [メモリ] の順に進んで表示される DRAM と PMEM のサイズを示しています。

ESXi では、次の 2 種類のメモリ統計情報が収集および公開されます。

  • ホスト レベルの統計情報:メモリのサブコンポーネントでは、パフォーマンス カウンタのプログラムによって DRAM と PMEM のパフォーマンスが測定されます。ホスト レベルの統計情報は、さまざまなメモリ タイプ(DRAM、PMEM)の合計、読み取り/書き込みのバンド幅、読み取り/書き込み遅延、およびミス率です。
  • 仮想マシン レベルの統計情報:vSphere では、パフォーマンス カウンタが監視され、仮想マシンの DRAM および PMEM 読み取りバンド幅に関するデータが取得されます。

ホストと仮想マシンの両方には、[パフォーマンス チャート] の下に新しい [メモリ] ペインがあります。ここに、メモリ使用率やメモリの解放などのメモリ詳細が新しい統計情報とともに表示されます。ESXi ホスト レベルでは、メモリのバンド幅とメモリの ミス率のチャートを監視できます。仮想マシン レベルでは、PMEM と DRAM の読み取りバンド幅を表示できます。

ESXi ホストの [仮想マシン] タブで、ホストに配置されているすべての仮想マシンに関するパフォーマンス情報を含むリストを表示できます。仮想マシンに対するメモリ モードの影響に関する情報を表示するには、列表示(列表示アイコン)アイコンをクリックして、アクティブなメモリ、DRAM 読み取りバンド幅、および PMEM 読み取りバンド幅のメトリックを選択します。

事前構成済みのデフォルト アラームは 2 つあります。ホスト レベル(メモリ モードのホストのアクティブな DRAM の使用率が高い)と仮想マシン レベル(仮想マシンの PMEM バンド幅の使用率が高い)のアラームです。アラーム条件が満たされると、イベントが発行され、対応するアラームがトリガされます。パフォーマンス メトリックに基づき、カスタム アラームを作成することもできます。vMMR アラームは、メモリ モードで構成されたホストでのみ機能します。

DRS がクラスタで有効で、完全自動化されている場合、ホストのアクティブなメモリの使用率が DRAM キャッシュのサイズの一定割合を超えると、負荷をより適切に分散させるために、DRS で一部の仮想マシンがホスト外に移動されることがあります。

詳細については、『vSphere の監視とパフォーマンス』を参照してください。

注: vMMR は、Intel Broadwell、Skylake、Cascade Lake、Ice Lake プラットフォームでサポートされています。ホスト レベルの DRAM 統計情報は、これらのプラットフォームで使用できます。ホスト レベルおよび仮想マシン レベルの PMEM 統計情報は、メモリ モードで構成された Cascade Lake ホストおよび Ice Lake ホストでのみ使用できます。