摘要:延遲可以說是存儲系統永遠的痛。沒人愿意等待,至少每一套虛擬機都渴望著能以多線程、多核心、多插槽方式在虛擬服務器中大量訪問數據。然而隨著摩爾定律的逐漸失效,處理器的發展速度已經明顯放緩,這意味著改善IO延遲已經成為讓昂貴的IT方案發揮更大力量的必由之路。
目前已經有兩項新的技術成果得到應用,且二者都能夠立足于兩大主要存儲邊界點實現可觀的延遲降低效果:其一為內存與存儲之間,其二為內部與外部聯網存儲之間。
內部/外部邊界的轉移歸功于NVMe-over-fabric(簡稱NVMeF)訪問機制。那么這種變革為什么會出現?又是如何實現的?
內部:外部存儲邊界
內部存儲通過PCIe總線接受訪問,隨后經由SAS或者SATA硬件適配器與協議堆棧對接磁盤或者固態驅動器(簡稱SSD)。直連NVMe PCIe總線訪問屬于速度最快的內部存儲訪問方法,但目前還沒能完全取代SAS/SATA SSD以及HDD訪問機制。
內存與存儲訪問延遲系譜以及NVMe光纖接入陣列所處位置。
要訪問容量更大的共享式存儲,我們則需要使用聯網外部陣列,其通過光纖通道(塊訪問)或者以太網(iSCSI塊及/或文件訪問)與服務器相對接。在這里我們暫時不討論對象存儲及Hadoop存儲,而將注意力主要集中在通用型服務器的外部存儲狀態身上。
除了存儲介質訪問時間之外,網絡傳輸同樣需要耗費時間。當磁盤驅動器(簡稱HDD)在陣列中充當一級存儲介質時,其會給數據訪問時長添加尋道時間與旋轉延遲等因素,這意味著網絡延遲表現得并不明顯。然而如今的一級外部陣列已經開始向速度更快的SSD轉移,這意味著網絡傳輸時長就變得非常重要。盡管光纖通道傳輸能力已經由過去的每秒8 Gbit提升至每秒16 Gbit,而以太網則由10 GbitE提升至25與40 GbitE,但由于訪問涉及往返兩個部分,因此網絡延遲仍然會加倍。
InfiniBand能夠顯著提升速度表現,但價格同樣令人咋舌,而且與最新技術相比仍然算是比較緩慢。具體來講最新技術將PCIe總線外部化,并在一套以太網體系之內對外部陣列運行NVMe協議(或者其它同類方案)。
NVMeF訪問延遲在200微秒以下。為了讓大家更清楚地理解其含義,我們整理出了下面這份延遲表單,具體排名當然是由快到慢:
雖然看似精確,但其中的數字其實比較粗糙,另外實際接入延遲也要比圖表中所列出的更高。
最右側的一列立足于日常環境,即將一級緩存的訪問時長規定為1秒,而后以此為基礎進行等比計算。因此,二級緩存訪問耗時更長,為一級緩存的14倍--那么其訪問流程則為14秒。DRAM存取時間為一級緩存的400倍,即6分40秒。NVMe PCIe SSD寫入為一級緩存訪問時長的6萬倍,實際時長為3萬納秒--聽起來挺快,但在將一級緩存作為1秒來考慮時,其耗時將達到令人難以置信的40分鐘。
再來看SAN訪問:300毫秒,根據我們的計算條件其相比時長將達到19年5天10小時40分鐘。DAS磁盤訪問時長不到其一半,為100毫秒,而NVMe訪問在寫入時延遲為30微秒、讀取則為100微秒。
經過我們的換算,NVMeF寫入操作的相對時長為16小時40分,讀取則為61小時6分40秒。
目前DSSD D5與Mangstor NX陣列基本能夠達到NVMeF的微秒級讀取/寫入延遲水平。
這種光纖通道或者iSCSI SAN與NVMe-F方案間的訪問延遲差異如此巨大,使得眾多供應商積極投入其中并希望借此徹底摧毀傳統存儲產品。目前新方案中的典型代表包括DSSD、E8、Mangstor以及Mangstor合作伙伴Zstor。
內存:存儲邊界
內存存儲邊界為DRAM(其屬于易失性或者說非持久性存儲介質--即斷電后數據將丟失)同存儲(即持久性或者說非易失性介質--斷電后數據仍能保留)的對接處。
這種對接會造成速度損耗,因為即使是速度最快的非易失性介質--閃存--也要遠慢于內存訪問速度(0.2微秒對30/100微秒,二者分別為NVMe SSD的讀取與寫入延遲)。
要解決這一難題,我們可以直接將閃存接入內存總線,也就是閃存DIMM(簡稱NVDMM-N)技術,這使其延遲能夠達到5微秒水平。Diablo Technology走的正是這條路線,而SanDisk也在這方面拿出了其ULLtraDIMM方案。不過這樣的速度水平仍然只有內存訪問的二十五分之一。
英特爾與美光的3D XPoint技術據稱能夠提供遠高于閃存的非易失性存儲性能。雙方指出,XPoint的速度表現可達SSD的1000倍,雖然仍不及DRAM,但延遲水平已經得到顯著降低。
好了,假設普通SSD(非NVMe)的平均延遲為200微秒,將其除以1000則為200納秒,與DRAM一樣--這顯然是胡說八道。英特爾/美光明顯是將XPoint同某些老古董級的SSD比較才得出了這樣的結論。
那么我們假定XPoint的延遲為500納秒,那么乘以1000則意味著作為其比較對象的SSD延遲為500微秒:好吧,反正我是沒見過這么差的SSD技術。
無論如何,如果XPoint真能達到其宣稱的效果,那么內存:存儲邊界將在系譜圖中向左側移動,而應用程序軟件開發者則將迎來新一輪速度提升--至少是在使用XPoint的設備上。
除了XPoint,可能還存在其它一些類似的新技術,例如旋矩存儲或者惠普旗下的憶阻器方案,而它們的出現將令內存與存儲的邊界再度向右移動。
那么以上設想真能變成現實嗎?
在我們看來,答案應該是肯定的。誠然,相關變革需要相當長的推進時間并面對一系列挑戰。不過面對著夸張的現有數據延遲以及新技術所做出的令人心動的提升承諾,其到來將是不可避免的。