SSD 從形式到實質之改變

2021-06-22 04:21:52 字數 2422 閱讀 5356

ssd的物理尺寸之混戰正在進行當中。資料中心的硬體架構師因為要規劃下一代伺服器的機械設計,還要制定

jbod的設計規範,想必面臨不少困惑。要是選擇的機械尺寸到了部署時成了非主流,勢必造成採購困難、成本增高等一系列問題。搞不好要重新訂**務器

jbod,代價可謂不小,不得不多費些心思,擦亮眼睛,看看未來。

軟體架構師是否可以指指樓下的硬體採購部門——那是他們的事,就此高枕無憂呢?

答案是:如果你選擇做螞蟻般的一維動物,那就可以繼續春眠不覺,如果想進化**一樣的二維(2.5維)動物,那就必須要聞雞起舞了。額外再多些努力,說不定還有機會如飛鳥般在三維空間中翱翔一番。

據法布林《昆蟲記》所述,螞蟻雖有六條腿,在二維的平面上完全有自由行動的能力,但是為了找到回家的路,他們除了在覓食時會自由行動,在搬運食物回家或集體行動時,都是嚴格地遵照留在地面上的氣味指引,循著一條固定的路線在行走。哪怕路線被風吹來的樹葉或是被水流所阻隔,它們也不惜以生命為代價,一定要回到既定的路線上去。

這就是程式設計師所熟悉的檔案外存的訪問方式。在記憶體中自由覓食時,程式之資料結構可以在記憶體中任意擺放、自由訪問,但一旦要搬東西回家(資料要存放到安全可靠的不易失外存時),一切都要序列化(serialization)地存放到一維的檔案中去。計算機的儲存從紙帶、磁芯、磁鼓、軟盤、硬碟進化到ssd,其變化程度可與單細胞浮游生物到人類的變化相媲美。但是外存的訪問模式,仍保留了紙帶時代的相同概念。因此多年前已有先賢提出了memory wall並推廣到i/o wall的概念和定律。

memory wall——當計算速度提公升到極限時,程式的執行時間由記憶體訪問的時間所決定(即記憶體的速度決定了程式執行的時間)。

i/o wall——當記憶體訪問速度也提公升到極限時,程式的執行時間由程式產生的i/o訪問時間所決定(即i/o速度決定了計算機的速度)。

memory wall和i/o wall似乎是一道更高過另一道的銅牆鐵壁。既已成了定律,是否就不可超越呢?are we doomed by these walls?

幸運的是早有智慧型的前人發明了cache的概念。cache成了翻越這些高牆之樓梯,其出發點在於:

利用資料和程式在時間上(temporal)和空間上(spatial)的區域性相關性(locality)來減少到記憶體和外存的訪問。這已是cpu構架的核心概念,此處不復贅述。

但資料要存放到檔案中去,已是軟體工程師的思維定式。這個定式,在ssd的時代可能要被打破了。

回到開篇所講的ssd機械尺寸的混戰,我們來看看form factor到底意味著什麼?

(1)安裝的方式——是否可熱插拔?能否在某種某種機箱內容納?

(2)儲存容量——超大的碟片能放置更多nand晶元。

(3)效能——nand通道數越多(越大的盤),可並行操作的nand晶元也越多,因此iops、頻寬也越高。

(4)連線的匯流排和協議,還有匯流排的延遲、頻寬特性也不同。

(5)可擴充套件性——外部匯流排能支援的傳輸距離長,具有可以擴充套件到多個ssd連線的能力,而ddr記憶體匯流排是基本不可擴充套件的,傳輸佈線距離短,必須緊挨在cpu的邊上。

(6)程式設計模式——是以特殊的記憶體方式來訪問,還是以外存的i/o塊裝置方式來訪問?

目前,ssd form factor層面的主要競爭格式: a)

pcie card(standard/custom)

b)2.5 inch(也許是3.5 inch)

c)m.2 d)

ultra-dimm or nv-dimm?

而協議則有 i)

sata

ii)sas

iii)

nvme

iv)ddr ?

前面所述的a)->b)->c)以及i)->ii)->iii)基本上只是個量變的過程,本質上還是個塊裝置。nvme協議在協議棧上比傳統的scsi等協議棧作了優化,故而效能可得到提公升,延遲也有大的精減。

但是以ddr方式訪問的dimm格式的ssd(當然也有在pcie上實現的類似方案)就有了質的變化。因為程式或os對其訪問的方式可以不再是一種塊裝置,而可以轉變為一種「有點特殊」的記憶體,而這些記憶體的「特殊性」體現在可以通過對os虛存管理的修改來實現對應用的相對透明。當這件事發生之後,i/owall就不再明顯,即應用程式不再需要把資料進行序列化,再寫入到檔案中去,資料結構可以自由擺放在特殊的記憶體空間內自由訪問,而且不會擔心掉電造成的丟失。

這可以說實現了從螞蟻到人的一維到二維進化,但如何實現象鳥兒一樣在三維空間中飛起來呢?

我們來看看,在scale-out的cluster中,即便對單機外存之訪問變成了「特殊不易失記憶體」的方式,但結點之間要交換共享的資料結構,還是不能負除序列化之苦(資料結構要序列化後打包成訊息才能通過網路介面傳送到另一結點),就好像人要出差到另乙個城市要買機票、過安檢然後才能乘坐飛機一樣的不便利。

設想一下,如果上述以記憶體方式訪問的ssd,經過解耦合(disaggregation),再能在機群內的多結點之間直接共享資料結構的直接訪問,那就不再有網路序列化之開銷。這樣程式設計師就能像鳥兒一樣自由地翱翔。

SSD 從形式到實質之改變

ssd的物理尺寸之混戰正在進行其中。資料中心的硬體架構師由於要規劃下一代server的機械設計。還要制定jbod的設計規範,想必面臨不少困惑。要是選擇的機械尺寸到了部署時成了非主流。勢必造成採購困難 成本增高等一系列問題。搞不好要又一次訂製serverjbod。代價可謂不小,不得不多費些心思,擦亮眼...

程式設計改變人生 從出租司機到SAP CTO

我們根據網上更多資料,還原christian gheorghe的人生故事。gheorghe是羅馬尼亞人,1966年出生。1984年就讀於布加勒斯特大學機械工程系,獲得了碩士學位。他在校期間還輔修了電腦科學。所以他並不完全算自學成才,也不是什麼典型的屌絲。1 當然,他的程式設計是高中時從玩同學sinc...

幻燈片形式設計 從方法到技巧

幻燈片形式設計 從方法到技巧 此段文字節選自 演說之禪 職場必知的幻燈片秘笈 一書 我在住友電氣工業株式會社工作期間發現,日本的商業人士經常採用一種 具體問題具體分析 的方法討論未來的方案或策略,為此我感到十分的迷惑和不解。因為換了我會迅速地給出具體而絕對的方案,而不會 具體問題具體分析 但後來我也...