傲騰記憶體簡介

最近,VMware 宣佈了 vSphere 對於 Intel 傲騰記憶體的支援,傲騰記憶體的全名是 Intel Optane DC Persistent Memory(DCPMM,代號“Apache Pass”)。它是一種非易失性記憶體 (NVDIMM – No-volatile DRAM),採用跟 Optane SSD 同樣的 3DXpoint 技術,以 DIMM 的形式插在主機板的記憶體插槽上,由 CPU 的記憶體控制器來訪問,它的存取速度雖然比 DRAM 慢一些,但是要遠遠快於 SSD。

Intel 傲騰記憶體提供了 128GB、256GB 和 512GB 三種容量,目前最大容量的單條 DDR4 記憶體條是 128GB,所以傲騰記憶體可以提供遠超現有 DDR4 的記憶體容量,使伺服器的記憶體總量輕易超過 TB 級別。在提供更大容量的優勢下,傲騰記憶體還比傳統的 DDR4 記憶體更便宜,並且是非易失性的,遇到斷電或系統重啟的情況也不會丟失資料。有了傲騰記憶體,伺服器可以大幅度減少對於傳統存放裝置 (SSD 和硬碟) 的依賴,把大部分的操作放在系統記憶體中完成,從而提高系統整體性能。

 

Intel 為傲騰記憶體準備了“Memory”和“AppDirect”兩種訪問模式,分別適用于不同的應用場景。

 

Memory Mode

在這種模式下,傲騰記憶體需要跟 DRAM 記憶體配合使用,DRAM 記憶體作為傲騰記憶體的快取記憶體;系統記憶體的容量由傲騰記憶體 (DCPMM) 的容量所決定,而不包括 DRAM 那部分記憶體。當 CPU 訪問記憶體資料時,記憶體控制器首先檢查 DRAM 緩存,如果要訪問的資料存在,訪問延遲就跟 DRAM 的速度一樣;如果要訪問的資料不在緩存中,則需要從傲騰記憶體讀取,這會造成一點小小的延遲。對於持續的記憶體資料訪問,記憶體控制器會通過應用模式預測來提高緩存的命中率,從而使整體訪問性能接近于全 DRAM 的配置;對於大量的隨機記憶體訪問,系統性能跟 DRAM 相比會有一點損失。另外,在這種模式下,存放在傲騰記憶體中的資料是易失性的,掉電的情況下不會持續保存。

Memory 模式為傳統應用提供了低成本、大容量的記憶體配置,適用於虛擬化的資料庫系統、大資料分析這一類應用;這種訪問模式對於上層的作業系統和應用是透明的,它們不需要知道非易失性記憶體的存在,應用不需要任何修改就可以直接享受傲騰記憶體所帶來的性能提升。

 

AppDirect Mode

在這種模式下,作業系統和應用都需要明確地知道系統中有兩種不同類型的記憶體,清楚地知道應該向 DRAM 和傲騰記憶體中寫入不同類型的資料。不需要持久性存儲但是要求低延遲的資料操作需要在 DRAM 上執行;需要持久性存儲的資料應該被保存到傲騰記憶體中。AppDirect 是使用傲騰記憶體非易失性功能的唯一模式。在這一模式下,系統記憶體的容量是由 DRAM 和傲騰記憶體的總和決定的,這跟 Memory 模式有區別。舉個例子,一台伺服器配有 1.536 TB 傲騰記憶體和 192 GB DRAM,採用 AppDirect 模式的話,系統記憶體總量為 1.728 TB;但是採用 Memory 模式的話,系統記憶體就只有 1.536 TB,因為那 192GB DRAM 只是被用作了快取記憶體。

AppDirect 模式適用於記憶體中資料庫等需要超高速資料存儲的應用,可以把所有的資料都放在記憶體中來處理,傲騰記憶體能有效提升這類應用的性能。但是,這種模式對於作業系統和應用都不是透明的,需要針對非易失性記憶體進行優化,才能夠發揮傲騰記憶體所帶來的優勢。現在已經有不少針對非易失性記憶體優化的應用,稱之為 PMEM-aware 應用,如連線交易資料庫 SQL Server 和記憶體中資料庫 Redis 等,它們能夠充分利用傲騰記憶體的特點發揮出最大的性能優勢。

 

vSphere 對於傲騰記憶體的支援

支援傲騰記憶體需要 vSphere 企業增強版以上的版本。

  • Memory 模式:從 vSphere 6.5EP13 (ESXi650-201903001) 和 vSphere 6.7EP05 (ESXi670-201811001) 開始支援,這種模式目前僅支援有限的用例,使用者要使用這種模式的話請跟 VMware 銷售代表聯繫一下。
  • AppDirect 模式:從 vSphere 6.7EP05 開始支持,VMware 鼓勵使用者多使用這種模式。

使用者可以通過 VMware 相容性指南 VMware Compatibility Guide (VCG) 查找支援傲騰記憶體的伺服器硬體。vSphere 在2路伺服器上最多支援 6TB 傲騰記憶體,在4路伺服器上最多支援 12TB 傲騰記憶體。

 

vSphere 中的虛機可以通過兩種方法來使用傲騰記憶體:

  1. vPMEMDisk (Virtual Persistent Memory Disk):傲騰記憶體被映射成為一塊虛擬硬碟提供給虛機使用,這種模式下虛機裡的作業系統和應用都不需要知道非易失性記憶體,傳統的作業系統和應用都可以正常使用這種模式。
  2. vPMEM (Virtual Persistent Memory):傲騰記憶體被映射成為虛機中的非易失性記憶體 (NVDIMM),這種情況下要求虛機中的作業系統能夠支援 NVDIMM (例如 Windows Server 2016 和 RHEL 7.4),然後把它映射成為存放裝置提供給上層應用;如果是 PMEM-aware 應用的話,也可以在虛機裡直接訪問 vPMEM。

 

VMware 針對 vSphere 在傲騰記憶體上的性能提升已經做了很多測試,大家可以參見 VMware 技術白皮書 “Persistent Memory Performance in vSphere 6.7 with Intel Optane DC persistent memory”。在白皮書中,我們可以看到傲騰記憶體對於提升應用性能還是很有説明的,把傲騰記憶體當作存儲來用也已經比 SSD 有很大的性能提升;如果是 PMEM-aware 應用,通過針對非易失性記憶體的優化,性能提升更多。以下是白皮書中的兩個例子,一個是利用 IO 測試工具 FIO 測試 4KB 讀寫,另一個是記憶體中資料庫 Redis 在不同配置下的輸送量比較。

 

 

延伸閱讀

將 VMware vSphere / vSAN 軟體與 Intel 的最新硬體平臺技術相結合,可以為用戶交付最佳的超融合架構平臺,幫助用戶簡化資料中心管理,降低採購和運維成本,輕鬆應對企業在數位化轉型中面對的各種挑戰。

  • VMware vSAN 是最佳的存儲方案平臺,具有管理簡便、高性能、低成本、易擴展的特點,在 vSAN 平臺上可以支援任何類型的應用。
  • Intel 至強處理器提供最強計算能力,基於傲騰 (Optane) 和 3D NAND 技術的固態盤是理想的快取記憶體,乙太網融合網卡提供穩定的網路頻寬和低網路延遲。