延遲可以說是儲存系統永遠的痛。沒人願意等待,至少每一套虛擬機器都渴望著能以多執行緒、多核心、多插槽方式在虛擬伺服器中大量訪問資料。然而隨著摩爾定律的逐漸失效,處理器的發展速度已經明顯放緩,這意味著改善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(其屬於易失性或者說非永續性儲存介質--即斷電後資料將丟失)同儲存(即永續性或者說非易失性介質--斷電後資料仍能保留)的對接處。
nvdimm-b屬於利用快閃儲存器作為備份手段的記憶體dimm,因此其擁有記憶體級別的訪問速度。
這種對接會造成速度損耗,因為即使是速度最快的非易失性介質--快閃儲存器--也要遠慢於記憶體訪問速度(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比較才得出了這樣的結論。
新增了3d xpoint與非nvme ssd訪問速度的新版延遲圖表。
那麼我們假定xpoint的延遲為500納秒,那麼乘以1000則意味著作為其比較物件的ssd延遲為500微秒:好吧,反正我是沒見過這麼差的ssd技術。
無論如何,如果xpoint真能達到其宣稱的效果,那麼記憶體:儲存邊界將在系譜圖中向左側移動,而應用程式軟體開發者則將迎來新一輪速度提公升--至少是在使用xpoint的裝置上。
除了xpoint,可能還存在其它一些類似的新技術,例如旋矩儲存或者惠普旗下的憶阻器方案,而它們的出現將令記憶體與儲存的邊界再度向右移動。
那麼以上設想真能變成現實嗎?
在我們看來,答案應該是肯定的。誠然,相關變革需要相當長的推進時間並面對一系列挑戰。不過面對著誇張的現有資料延遲以及新技術所做出的令人心動的提公升承諾,其到來將是不可避免的。
原文發布時間為:
2023年04月05日
記憶體之虛擬儲存器
所謂虛擬儲存器,是指具有請求調入功能和置換功能,能從邏輯上對記憶體容量加以擴充的一種儲存器系統。基於區域性性原理,應用程式在執行之前,沒有必要全部裝入記憶體,僅需將那些當前需要的執行的少數頁面或段先裝入記憶體便可執行,其餘部分暫留在盤上 程式在執行時,如果它要訪問的頁已調入記憶體,便可繼續執行下去,...
delphi integer 記憶體儲存與位元組轉換
一直不是很明白delphi中 integer 在記憶體中儲存方式。經實驗總結如下 integer記憶體儲存方式 高位元組在前,低位元組在後。如 12 34 56 78 在記憶體中為 78 56 34 12 即 3 78 120 2 56 86 1 34 52 0 12 18 此儲存方式為主機位元組儲...
模糊的邊界 記憶體和儲存以全新方式融合
軟體定義的儲存剛剛開始形成,然而系統演進的步伐已經使得未來技術的創新越來越受到關注。我們並非要在文中 磁碟儲存池,也不是要討論固態驅動器。儲存的未來在於其與記憶體的融合。隨著非線性雙列直插式儲存器模組 nonvolatile dual in line memory modules,nvdimm 的引...