【VMware ESXi】把硬碟當記憶體用?VMware 記憶體分層(Memory Tiering),你值得擁有!

JUNIOR_MU發表於2024-08-07

VMware vSphere 8.0 U3 釋出了一個非常有意義的功能叫記憶體分層(Memory Tiering),以利用基於 PCIe 的 NVMe 裝置充當第二層(輔助)記憶體,從而使 ESXi 主機的可用實體記憶體(RAM)增加。從本質上講,記憶體分層就是利用較便宜的 NVMe 裝置充當實體記憶體,以此增加記憶體的總容量和工作負載的可用量,同時降低總體擁有成本(TCO)。

【VMware ESXi】把硬碟當記憶體用?VMware 記憶體分層(Memory Tiering),你值得擁有!

為什麼會需要記憶體分層?會不會有很大效能瓶頸?原因有很多,比如記憶體成本,如今對於記憶體容量及效能的需求與 CPU 的需求其實是不平衡的,這可能會因記憶體原因導致許多環境出現諸多限制。對於效能的影響肯定是會有的,但是隨著技術的發展,慢慢的也會得到控制。記憶體分層對應用程式來說是完全透明的,可以用於所有不同型別的工作負載。虛擬機器管理程式負責記憶體管理,因此它知道哪些頁面是熱的,哪些頁面是冷的,也就是說,它可以確定哪些頁面用於哪個層並同時保持效能。

當前對於記憶體分層的配置,VMware 建議 NVMe 儲存容量與實體記憶體容量的分配比率為 1:4,也就是 25%。意思就是,如果實體記憶體為 100 GB,那用於記憶體分層的 NVMe 儲存建議為 25 GB,合在一起可以使用的記憶體容量為 125 GB,這樣既可以增加實體記憶體的容量,也能減少因記憶體分層所帶來的效能影響。當然這個比率只是官方推薦的也是預設的,這個值可以修改,你可以使用 1~400 的值來設定實體記憶體與 NVMe 儲存的百分比。更多內容和細節請檢視 VMware KB 95944 知識庫文章底部的記憶體分層技術指南文件。

現在,記憶體分層(Memory Tiering)技術還只是預覽版,可以在實驗室或者測試環境評估該功能,只能透過 ESXCLI 或者 PowerCLI 命令列進行配置,不過在未來的發行版本中,也許可以直接在 UI 管理介面進行應用。下面來看看具體的配置過程。

首先,ESXi 主機必須安裝 8.0 U3 及以上版本來支援記憶體分層功能,請記住這裡現在的實體記憶體“容量”。

【VMware ESXi】把硬碟當記憶體用?VMware 記憶體分層(Memory Tiering),你值得擁有!

然後,使用了一塊 Samsung 970 EVO 250 GB 的 NVMe 硬碟進行測試,請記住這裡的“路徑”以及“容量”。

【VMware ESXi】把硬碟當記憶體用?VMware 記憶體分層(Memory Tiering),你值得擁有!

1.SSH 登入到 ESXi 主機。

ssh z4g4.mulab.local

2.執行 ESXCLI 命令啟用記憶體分層功能。

esxcli system settings kernel set -s MemoryTiering -v TRUE

3.建立特定 NVMe 裝置以用於記憶體分層。

esxcli system tierdevice create -d /vmfs/devices/disks/t10.NVMe____Samsung_SSD_970_EV0_250GB_______________5C71B5815A382500

4.檢視用於記憶體分層的 NVMe 裝置。

esxcli system tierdevice list

5.配置用於記憶體分層的 NVMe 裝置與實體記憶體的百分比。

esxcli system settings advanced set -o /Mem/TierNvmePct -i 100

6.ESXi 主機記憶體分層功能配置過程。

【VMware ESXi】把硬碟當記憶體用?VMware 記憶體分層(Memory Tiering),你值得擁有!

7.完成配置後,重新啟動 ESXi 主機使配置生效,再次檢視 ESXi 主機的記憶體!當前記憶體容量=實體記憶體容量+NVMe 儲存容量。

【VMware ESXi】把硬碟當記憶體用?VMware 記憶體分層(Memory Tiering),你值得擁有!

是不是很神奇?你的下一代記憶體何必是記憶體?還不趕緊用起來?記憶體分層都來了,記憶體池化還遠嗎?!

相關文章