XPoint——服務器領域中被寄予厚望的未來發展方向
隨著計算能力虛擬化技術的普及,存儲機制在速度上遠遜于內存這一劣勢開始變得愈發凸顯。
這一巨大的訪問速度鴻溝一直是各項存儲技術想要解決的核心難題:紙帶、磁帶、磁盤驅動器乃至閃存記憶體等等,而如今最新一代問題解決方案則成長為由3D XPoint領軍的高速非易失性固態記憶體。
這種幾乎能夠在一定程度上將速度與內存看齊的新型存儲方案將給服務器以及系統硬件與軟件帶來顛覆性的變革。
內存中的內容具備易失性或者說臨時性,意味著電源關閉后其會直接消失。相比之下,存儲設備中的內容即使失去電力支持也依然存在,因此我們將其稱為持久性或者非易失性存儲。
而固態、非易失性記憶體或者說NAND閃存在速度上則要遠遠高于磁盤以及磁帶。
納秒與微秒
內存訪問時長約為200納秒。其速度主要受到CPU緩存訪問速度標準的影響,其中一級緩存訪問約耗時半納秒,二級緩存訪問速度則為7納秒。
磁盤驅動器需要將讀取/寫入磁頭移動到對應的磁道處才能完成讀寫操作,其耗時約在1000萬納秒上下--即10毫秒或者10000微秒。其速度基本要比內存訪問慢上兩個量級。
而固態驅動器(簡稱)的速度則要遠超于此。美光最新推出的9100 SSD是一款NVMe協議PCIe總線卡,其讀取訪問延遲為120微秒,寫入訪問延遲則為30微秒。其至少要比磁盤快上一個量級,但仍較DRAM寫入訪問慢150倍,讀取訪問更要慢上600倍。
為什么讀取與寫入之間存在的延遲時長差異?我們都知道,這是因為寫入內容會被緩存在SSD的DRAM緩沖區內,而讀取則直接接入速度更慢的NAND本身。
盡管NAND的速度要遠高于磁帶,但其仍然無法同內存相比肩,這意味著IO速度依舊制約著代碼編寫方式。具體來講,編程人員需要限制IO強度,而服務器/存儲系統工程師則需要努力利用NAND緩存機制克服磁盤數據延遲,并利用DRAM緩存進一步提升NAND訪問時耗。
多插槽、多核心CPU服務器本身很容易遭遇IO等待問題,這是因為其存儲子系統的運作速度只相當于內存速度的數百分之一。在這種情況下,處理器需要閑置并等待存儲完成操作后方可繼續工作。
訪問時間中的鴻溝
如果我們將一級緩存的訪問時長規定為1秒,而后以此為基礎進行等比計算。因此,磁帶訪問的相對時長將達到6年4個月19小時33分又20秒。而速度更快的美光9100 SSD的相對時長為2天18小時40分鐘。盡管與磁盤相比優勢明顯,但仍然遠遠無法同DRAM訪問速度標準相比--后者僅為6分鐘40秒。
如此巨大的訪問時間鴻溝催生了易失性內存與持久性存儲之間的新事物,即英特爾與美光聯手打造的3D XPoint內存--這是一種新的非易失性固態存儲形式。
XPoint由相變記憶體材料構建而成,其采用硫化物晶體,并能夠根據實際電壓實現狀態變更,從而引發電阻值切換。這種變更能夠逆轉,因此兩種電阻值水平可被分別定義為1與0。該XPoint晶粒分為兩層并采用通孔設計,這也是其3D名稱的由來。
根據有關雙方的說法,其量變機制與其它材料中由無狀態到結晶態間的相變機制有所區別,但目前尚無更多進一步消息可供參考。
英特爾與美光雙方發布的早期市場推廣消息顯示,其速度將達到普通閃存的1000倍,使用壽命亦為1000倍,而使用成本則在普通閃存與DRAM之間。
Objective Analysis公司的Jim Handy繪制了以下XPoint定位圖:
這是一份平面圖表,其中兩條軸分別為每GB使用成本與傳輸帶寬,可以看到3D XPoint的位置處于NAND及DRAM之間。
XPoint細節信息
與NAND不同,XPoint采用字節尋址機制而非塊尋址機制。英特爾方面指出,其將推出Optane品牌的XPoint SSD(即NVMe接入驅動器)與XPoint DIMM,意味著XPoint芯片能夠以DIMM封裝形式直接接入內存總線,而不必經由NVMe XPoint驅動器所采用的速度更慢的PCIe總線。
英特爾公司研究員兼首席3D XPoint存儲架構師Frank Hady在最近于圣迭戈大學召開的2016年第七屆非易失性內存研討會上提供了與Optane相關的部分細節數據。
我們將內容匯總如下:
采用20納米制程;
SLC (單層單元);
7微秒延遲,或者換算為7000納秒;
78500(七比三隨機)讀取/寫入IOPS;
NVMe接口。
XPoint的傳輸帶寬目前尚不明確。
如果我們據此整理出一份涵蓋內存與存儲介質的延遲表格,從一級緩存到磁盤,那么結果將如下所示:
其中延遲為7微秒的XPoint在速度上僅比DRAM慢35倍。這樣的水平要遠遠優于NVMe NAND,其中美光的9100在寫入與讀取兩方面分別較DRAM慢150倍與600倍。
如果我們選取以上表格中的前五條并將其整理為橫向圖,則如下所示:
很明顯,XPoint與內存間的延遲差距要遠小于NAND。XPoint可用于NAND(或者磁盤)的緩存技術方案,不過這種用法并沒有什么顛覆性可言--畢竟緩存就是緩存,沒什么新鮮的。或者,我們可以將其作為一種內存形式,意味著應用程序將能夠直接操作XPoint當中的數據--而非DRAM。
以DIMM形式封裝的XPoint芯片預計將擁有低于7微秒的延遲表現,其可能也正是英特爾方面提到的XPoint存儲級內存(簡稱SCM)。
系統與軟件轉變
配合SCM,應用程序不再需要從持久性存儲當中獲取數據。取而代之的是將數據直接移動至XPoint之內。而這還只是XPoint作為存儲級內存--或者說持久性內存--給系統及軟件帶來的轉變之一。
其它轉變包括:
開發能夠識別持久性內存的文件系統;
支持存儲級內存的操作系統;
設計新的處理器方案以使用混合型DRAM與XPoint內存。
我們也期待看到Linux對XPoint存儲級內存加以支持。
微軟方面目前正著手在Windows當中添加對XPoint存儲級內存的支持能力。其將提供零復制訪問機制并配備Direct Access Storage分卷,即DAX分卷。DAX分卷擁有將文件及應用程序映射至內存中的能力,從而保證無需經由現有IO堆棧即可實現訪問。
基于磁盤驅動器時代的代碼堆棧同樣需要進行調整。過去緩慢的磁盤操作速度令代碼執行效率顯得不那么重要,但考慮到XPoint的個位數微秒級訪問能力,堆棧效率將在未來成為決定最終速度的關鍵。
XPoint影響服務器與存儲
配備XPoint的服務器將在很大程度擺脫由IO帶來的束縛。其緩存機制將更具效率。使用SCM的服務器將能夠在內存當中承載更為龐大的應用程序,而數據寫入時間也將大幅縮短。
另外,XPoint型服務器也應該能夠支持更多虛擬機或者容器,其具體數量將遠高于采用XPoint NVMe SSD的服務器。
存儲陣列將能夠在XPoint緩存的幫助下提升響應速度,且速度水平高于XPoint SSD。預計其將采用遠程直接內存訪問機制配合NVMe鏈路,從而實現共享式XPoint直連存儲。
Fusion-io公司也曾利用其PCIe閃存卡推出過存儲級內存方案,但該公司規模太小,很難在操作系統層面帶來SCM級別的變更。英特爾與美光聯手則擁有足夠的份量,而且兩家公司也都充分意識到XPoint硬件及軟件供應商生態系統的重要意義。
如果XPoint真的能夠實現其做出的全部承諾,那么可以預見,服務器方案的整體執行效率將迎來極為顯著的提升。
考慮到XPoint在初步面世后必然面臨產量不足的問題,因此其它電阻式RAM(即ReRAM)技術可能也將擁有發展空間。根據我們掌握的情況,目前SanDisk與東芝正在協作探索這一領域,但尚拿不出可與XPoint相匹敵的成熟方案。