記憶體虛擬化類型有兩種:以軟體為基礎的和硬體輔助的記憶體虛擬化。

因為虛擬化引入了額外層級的記憶體對應,所以 ESXi 可以在所有虛擬機器之間有效管理記憶體。虛擬機器的一些實體記憶體可能對應到共用分頁,或對應到未對應或換出的分頁。

主機執行虛擬記憶體管理時無需瞭解客體作業系統,也不會干擾客體作業系統自己的記憶體管理子系統。

每個虛擬機器的 VMM 用於維持從客體作業系統的實體記憶體分頁到基礎電腦上實體記憶體分頁的對應。(VMware 將基礎主機實體分頁稱為「電腦」分頁,將客體作業系統的實體分頁稱為「實體」分頁。)

每個虛擬機器均有連續的、從零開始的可定址實體記憶體空間。每台虛擬機器使用的伺服器上的基礎機器記憶體不一定是連續的。

針對以軟體為基礎的和硬體輔助的記憶體虛擬化,客體虛擬至客體實體的位址均由客體作業系統管理。Hypervisor 僅負責將客體實體位址轉譯為機器位址。以軟體為基礎的記憶體虛擬化,在軟體中結合客體的虛擬至機器位址,並將其儲存在由 Hypervisor 管理的陰影分頁表中。硬體輔助的記憶體虛擬化,將利用硬體設施生成與 Hypervisor 維護的客體分頁表和巢狀分頁表結合的對應。

該圖說明 ESXi 如何實作記憶體虛擬化。

圖表 1. ESXi 記憶體對應


此圖說明如何實作記憶體虛擬化。

  • 方塊代表分頁,而箭頭代表不同的記憶體對應。

  • 從客體虛擬記憶體到客體實體記憶體的箭頭表示客體作業系統中的分頁表所維護的對應。(未顯示 x86 架構處理器從虛擬記憶體到線性記憶體的對應。)

  • 從客體實體記憶體到機器記憶體的箭頭表示由 VMM 維護的對應。

  • 虛線箭頭表示從客體虛擬記憶體到機器記憶體的對應,該對應也由 VMM 維護。執行虛擬機器的基礎處理器使用陰影分頁表對應。