先來看看西數(shù)的黑科技


Ultrastar DC ME200是一款基于Ultrastar SN200 SSD改進的SSD,采用的是15nm MLC NAND,用的時候也需要軟件協(xié)助,來組成這套黑科技系統(tǒng)。

這套技術提供一套類似于內存管理單元(MMU)的功能,而且將SSD和DRAM虛擬化成一個虛擬內存池。

 

Ultastar_DC_ME200,既有2.5寸U.2盤,也有半高半長的卡

內存管理單元(MMU)是干什么的呢?

內存管理單元有時也稱作分頁內存管理單元(英語:paged memory management unit,縮寫為PMMU)。它是一種負責處理中央處理器(CPU)的內存訪問請求的計算機硬件。它的功能包括虛擬地址到物理地址的轉換(即虛擬內存管理)、內存保護、中央處理器高速緩存的控制,在較為簡單的計算機體系結構中,負責總線的仲裁以及存儲體切換。

簡單而言,MMU就是將虛擬內存地址轉換到物理內存地址,虛擬地址空間比實際可用的DRAM要大,所需的塊(block)和頁(page)數(shù)據(jù)從SSD或者磁盤傳到內存里。

所以,相比之下,當請求的數(shù)據(jù)恰巧在DRAM里的話,CPU很快拿到數(shù)據(jù),延遲會低一點,西數(shù)軟件實現(xiàn)的MMU能被用來擴展DRAM內存。

Ultrastar DC ME200對應的軟件非常底層,在裸金屬之上的hypervisor層,無需應用軟件做任何修改就能用到虛擬內存池。

在西數(shù)虛擬內存技術的幫助下,應用程序在虛擬內存中執(zhí)行,這比單單用DRAM內存,從SSD或者磁盤中讀取數(shù)據(jù)效果要好的多。通過比較好的預測算法,可以得到近似于DRAM的性能表現(xiàn)。

比如:

跑在DRAM下的Memcached的性能與(4-8倍于DRAM容量的)ME200擴展內存的性能相當(相當于前者的85%-91%);

跑在DRAM下的Redis數(shù)據(jù)庫的性能與(4倍于DRAM容量的)的擴展內存的性能相當(相當于前者的86%-94%);

跑在DRAM下的MySQL的性能與(4-8倍于DRAM容量的)擴展內存性能相當(相當于前者的93%);

西部數(shù)據(jù)的一位專家表示,用了ME200之后,1U或者2U的服務器能將內存從原來的1.5TB擴展到12TB(DRAM+NAND),內存容量相當于原來的8U服務器。實際情況可能會因人而異,不過,DRAM和NAND 1:8的配比應該還不錯。

西數(shù)的這一產品叫ME200,其中ME是Memory Expansion的縮寫,ME200的容量有三個規(guī)格1TiB,2TiB和4TiB。(注意內存里計算的是TiB不是TB,1TB大約等于953GiB)


西數(shù)虛擬內存 vs. 英特爾傲騰持久內存


說到這里實在忍不住想說,西數(shù)的這個黑科技做的事兒跟英特爾傲騰太像了,西數(shù)的ME200的目標應用是Redis,Memcached,Apache Spark以及一些大規(guī)模的數(shù)據(jù)庫等等占內存的應用。

西數(shù)表示,與傲騰相比,西數(shù)的產品的容量比基于3D Xpoint的傲騰要高三倍。西數(shù)的這位專家表示,還沒有看到傲騰特別明顯的性能優(yōu)勢。

中立觀點

有第三方分析人士指出,西數(shù)的新技術是否會取得市場上的成功還有待觀察。并且指出兩大關鍵點:一個是軟件的集成程度,在實際應用中可能會帶來的復雜性和可用性問題,另一個則是阿姆達爾定律(阿姆達爾定律指的是系統(tǒng)一個部分優(yōu)化之后獲得的性能提升的效果,如果系統(tǒng)某部分的性能沒有提升,則主要受制于系統(tǒng)沒改進的部分)。

前者是所有系統(tǒng)軟件(驅動、補丁之類的)產品都要解決的問題,后者是所有緩存產品都面臨的問題。

從技術的角度來看,利用非易失性存儲的密度和經濟性是提升直接內存訪問性能的最好的辦法,另外,同時增加每個插槽通道的數(shù)量也可改善內存的訪問性能。

從市場發(fā)展來看,西部數(shù)據(jù)在NVMe SSD市場的表現(xiàn)已經明顯落后于三星和英特爾,希望用NVMMe SSD來挽回一些局面。

譯者看法

無論是傲騰的持久內存存儲還是西數(shù)基于ME200的SSD虛擬內存技術,都是在NAND SSD(或者說磁盤)和DRAM之間加了一個存儲層,它比DRAM要慢,比SSD NAND(或者說磁盤)要快,將內存可能會用到的數(shù)據(jù)緩存到這里,以供內存使用,而不是讓內存直接讀SSD(磁盤)里的數(shù)據(jù),以此降低延遲,提升性能,提升內存密集型應用的體驗,用相對廉價的SSD替代真正的昂貴的內存。

比較有挑戰(zhàn)性的是決定數(shù)據(jù)放到哪兒的這套算法。就像操作系統(tǒng)和編程語言的內存管理系統(tǒng)一樣,有的編程語言提供了自動化的內存處理比如Java,垃圾回收機制決定內存什么時候被回收,而介于內存和硬盤之間的這一層決定什么數(shù)據(jù)放在內存,什么數(shù)據(jù)放在兩者之間。

在做法上,這其實跟Linux的swap分區(qū),Windows的虛擬內存的定位也有些相似,都是因為內存不夠用,用硬盤來頂。Linux為了提高讀寫效率,用swap去緩存內存中放不下的數(shù)據(jù),Windows也是類似的道理,這一部分就是swap區(qū)。

不得不說,實現(xiàn)原理上無論是西數(shù)的黑科技還是英特爾的傲騰,都有幾分類似,英特爾的持久內存存儲插在內存條上的,西數(shù)的實現(xiàn)則是走NVMe協(xié)議,英特爾基于獨有(美光也有類似)的3D Xpoint技術的實現(xiàn)對原有硬件架構的顛覆性更大,相對而言,西數(shù)的實現(xiàn)更平滑,基于MLC的實現(xiàn)總歸比DRAM要便宜。

從實現(xiàn)路徑來看,一個在SSD側下手,一個在內存槽側下手,殊途同歸,究竟是處理器霸主能獲得更多支持,還是硬盤巨頭能建立生態(tài)呢?抑或兩者共存?

其實,相對而言,西數(shù)的實現(xiàn)更容易獲得支持,沒有門檻和壁壘,相比之下,英特爾自成一派的做法能否成功還有待觀察。

分享到

zhupb

相關推薦