如何发挥Intel傲腾持久内存最大能力?
近期MemVerge中國區研發總監康煒發表了一篇文章,介紹了Intel 傲騰數據中心持久內存的兩種主要模式——Memory Mode(內存模式)和App Direct Mode(應用模式),及各自的優缺點和適用場景。
MemVerge成立于2017年,是大內存計算的先行者,主要產品是基于3D XPoint的新型存儲軟件架構,并擁有領英、騰訊云、海康威視等早期客戶。大內存計算是一項新興技術,任何規模的應用程序都可以放棄傳統存儲,轉而使用豐富、持久和高度可用的內存池。MemVerge 的Memory Machine?軟件通過虛擬化 DRAM 和持久內存來形成企業級內存數據服務平臺,使這一切成為了可能。公司此前已獲得英特爾、思科、NetApp 和 SK hynix 等戰略投資者,高榕資本、光速創投等投資機構投資。
基礎軟件領域是耀途資本投資重點。耀途共參與了MemVerge 兩輪融資:2019年4月A輪融資與2020年5月 1900 萬美元融資。除了MemVerge ,耀途還在中國和以色列投資了Open AI Lab、焱融科技、速石科技、SQream、StorOne 、霧幟智能等多家公司,覆蓋云計算、存儲、大數據、AI 等領域。以下是原文:
Intel 傲騰數據中心持久內存(本文簡稱PMEM)是我們認為一種開拓性的新硬件。通過同時提供遠超內存的容量,和遠超SSD磁盤的性能,彌補了現有數據中心服務器體系架構中DRAM和SSD之間的巨大鴻溝。從而為企業不斷快速增長的海量實時數據分析和處理需求,提供了全新的解決方案。
從硬件特性角度來看,PMEM提供了很多優勢:
- 高性能:相比于硬盤,更加接近內存的訪問性能,特別是數據訪問延遲很低。
- 持久性:數據在PMEM中掉電不會丟失。
- Byte Addressable:數據訪問的粒度和CPU cache line對齊。
但是,PMEM并不是說完全即插即用的,在“正確”的使用它之前,有必要了解一下,PMEM支持的幾種使用模式,以及他們都有哪些優勢和不足,從而選擇和自身需求最匹配的模式,來發揮出PMEM最大的能力。
Memory Mode(內存模式)
PMEM的內存模式,顧名思義,就是使PMEM也作為一種內存來工作。這種模式最早也被稱作2LM(2 Level Memory),在內存模式下,系統的內存被分成兩層,PMEM作為容量層,被操作系統識別為系統內存,正常使用。而DRAM則被作為性能加速緩存,用于加速PMEM的性能。
這種模式的最大優勢是兼容,整個的DRAM cache層是在硬件的MMU中實現的,操作系統自身完全不需要知道自己是運行在什么種類的內存之上的,所以所有的應用都不需要任何修改,就可以享受PMEM帶來的超大系統容量的好處。
Memory Mode的一個典型應用場景就是Redis內存數據庫,因為所有的數據都是駐留在內存中的,所以更大的內存可以使得Redis數據庫保存更多的數據,從而對提升Redis cache命中率有很大的幫助。
但是這種模式的缺點也非常明顯,就是它完全拋棄了PMEM的持久化特性,所有寫入在PMEM的數據,在節點掉電重啟后是不可用的。另一個方面,內存模式使用DRAM作為緩存使用,使得整體系統可用的內存只有PMEM的容量,在容量利用率上也是不足的,舉一個例子,在一個配置512G DRAM和1.5T PMEM的機型上,使用Memory Mode,操作系統就僅能看到1.5T的內存容量,整個系統的內存容量利用率僅有75%,考慮到內存的價格,這個成本浪費還是偏大的。
所以筆者認為,PMEM的內存模式,在最開始PMEM面世的時候,作為一個過渡方案,提供了百分百的兼容性,使得傳統應用可以使用到大內存帶來的優勢,是很有價值的,但是隨著PMEM相關生態的完善,越來越多的應用軟件的支持,內存模式的缺點就會越來越明顯,從而慢慢的減少使用了。
App Direct Mode(AD模式)
相比于內存模式,APP Direct Mode則可以利用PMEM的持久化特性。但是就需要操作系統和軟件的支持了,Linux內核是從4.2版本開始引入了對SNIA NVDIMM的支持,并在后續的版本中不斷的進行了完善。在我們目前常用的CentOS 8.x的發行版中,通常來說操作系統可以將PMEM硬件作為兩種不同的設備來使用,并且各有優缺點。
一種是fsdax mode,在這種模式下,PMEM被配置成類似一塊磁盤設備,用戶可以將其格式化成一個文件系統,然后使用。并且如果使用xfs或者ext4文件系統時,還可以在掛載時使用dax參數,激活文件系統的dax mode,使得應用程序可以跳過kernel page cache來直接讀寫PMEM上的數據。
另一種是devdax mode,在這種模式下,PMEM被驅動為一個字符設備,用戶如果想使用它,則必須自行編寫程序,或者修改自己原有的應用程序,才能訪問到PMEM上面的數據。
綜合這兩種模式,他們都可以保存寫入PMEM的數據,但是在具體的應用場景上還是有區別的。fsdax模式由于提供的是標準的POSIX文件系統接口,所以他的兼容性更好,應用可以在完全不修改的情況下,把PMEM當作一個非常快速的磁盤來使用。但是這樣做,在系統層面上也是有所損失的,因為要使用文件系統的dax模式,也有一系列前置條件,而在沒有激活dax的模式下,所有的IO仍舊要通過kernel page cache來緩沖,對于系統內存是很大的一個浪費。同時因為是要模擬磁盤行為,IO的粒度也是512個字節,對于PMEM這樣在cache line大小的IO中,能提供的超低延遲特性的硬件來說,IO的粒度仍舊太大了。無法真正發揮出PMEM的全部實力。
筆者認為,只有devdax模式,才是真正的可以完全發揮PMEM所有高性能、可持久化、字節尋址能力的最強模式!但是唯一遺憾的就是要想使用devdax模式,必須重寫現有的應用程序,和PMEM設備對接。同時,在非易失性內存上編程,也是和傳統編程有較大的區別,需要考慮很多以前不需要處理的問題。所以對于很多現有的應用來說,雖然devdax模式“看上去很美”,但是卻沒辦法采用。
正是看到這個問題,MemVerge創新性的設計并開發了Memory MachineTM軟件解決方案,底層由MemVerge的軟件根據PMEM特性,使用devdax模式進行編程,實現一整套內存虛擬化解決方案,通過對應用提供池化的虛擬內存,使得應用無需修改,就可以運行在PMEM上,享受大內存帶來的高性能,并且通過熱點數據識別和內存分級技術,為不同應用量身訂制最優內存配比,同時使用MemVerge ZeroIO SnapshotTM技術,為應用軟件的數據提供持久化保護。
轉載于https://www.sohu.com/a/470231256_120945024
總結
以上是生活随笔為你收集整理的如何发挥Intel傲腾持久内存最大能力?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 傲腾持久内存如何为数据赋能,加速应用落地
- 下一篇: 服务器内存系统,服务器内存系统容量