ESXi は、特別なレベルのアドレス変換を追加することによってゲスト物理メモリを仮想化します。

  • 各仮想マシンの VMM は、ゲスト OS の物理メモリ ページから、基盤となるマシン上の物理メモリ ページへのマッピングを保持します(VMware は、基盤となるホスト物理ページを 「マシン」 ページとして参照し、ゲスト OS の物理ページを 「物理」 ページとして参照します)。

    各仮想マシンは、ゼロ ベースの連続したアドレス可能物理メモリ スペースを参照します。各仮想マシンによって使用される、サーバの基盤となるマシン メモリは、必ずしも連続しません。

  • VMM は、プロセッサ上の実際の MMU (メモリ管理ユニット) が仮想マシンによって直接更新されないように、ゲスト OS のメモリ管理構造を操作する仮想マシン命令を妨害します。

  • ESXi ホストは、(VMM によって保持される) 物理からマシンへのページ マッピングを使用して最新に保たれるシャドウ ページ テーブルに、仮想とマシンとのページ マッピングを保持します。

  • シャドウ ページ テーブルがプロセッサのページング ハードウェアによって直接使用されます。

このアドレス変換方法により、シャドウ ページ テーブルが設定されたあと、アドレス変換オーバーヘッドが追加されることなく、仮想マシン内での通常のメモリ アクセスが実行可能になります。プロセッサ上の TLB (変換索引バッファ) は、シャドウ ページ テーブルから読み取られた仮想とマシンとの直接マッピングをキャッシュするので、VMM によってオーバーヘッドが追加されることなく、メモリにアクセスできます。

パフォーマンスについての考慮事項

2 つのページ テーブルを使用した場合、次のようなパフォーマンスへの影響があります。

  • 通常のゲスト メモリ アクセスの場合、オーバーヘッドはありません。

  • 仮想マシン内のメモリをマッピングする追加の時間が必要です。これは、次のことを意味する場合があります。

    • 仮想マシン オペレーティング システムが、仮想アドレスと物理アドレスとのマッピングを設定または更新している。

    • 仮想マシン オペレーティング システムが、アドレス スペース間で切り替えを行なっている (コンテキスト スイッチ)。

  • CPU の仮想化と同様に、メモリの仮想化オーバーヘッドはワークロードに依存します。