誰在布局ZNS?未來數據中心硬盤的全球新標準協議

是真沒想到啊,網盤圈還能熱鬧起來。阿里雲盤開始會員收費了,單位容量價格還是主要競品的1/4。消息一出,便立刻成為了一則用戶和行業熱議的話題。各個社區也一下子出現了各種算賬黨:

誰在布局ZNS?未來數據中心硬盤的全球新標準協議

誰在布局ZNS?未來數據中心硬盤的全球新標準協議

△ 圖源:微博達人@午後狂睡

誰在布局ZNS?未來數據中心硬盤的全球新標準協議

△ 圖源:B站達人@格物時間

不過在這熱議的背後,一個關鍵的問題便隨之浮現:在百度網盤佔據超過2/3市場的情況下,如果在網盤市場繼續價格戰,真的還有意義嗎?

量子位雖然未能獲得各家詳細成本資料,但通過另一種方式,獨家採訪到全球存儲技術大佬,了解到數據中心存儲技術的前沿儲備。

這也許才是未來個人雲存儲的科技勝負手吧。

“存儲領域的5G標準”

去年5月,就有海龜存儲專家告訴量子位,未來數據中心硬盤的全球新標準協議已經通過。

總結一句話來說就是——

數據中心硬盤和存儲系統溝通的協議,正在發生像移動通信從4G到5G的那種變化。

具體來說,這種NVMe2.0指令集中,關於固態閃存盤(SSD)和疊瓦磁盤(SMR)都可用的新標準ZNS(Zoned Namespace)

當時的一份指令集版本里,可以看到ZNS協議的核心作者(Technical Proposal Author)們經過了四年多時間,才最終與會員達成了最終標準設定。

這時很多友友們又會問了,所以呢?

別急,接下來我們就來講講,這個ZNS標準和存儲性能的關係。

對NVMe這個詞,凡是買過SSD(固態硬盤)的人一定不會陌生。

NVMe代表“非易失性存儲器規範”,最大的特點就是不必實時供電、數據傳輸快。

2011年首次問世以來,NVMe迅速佔領市場,成為高端SSD的代名詞。

從手機(蘋果手機內存使用NVMe規範)、家用硬盤到企業雲存儲都有廣泛應用。

而ZNS指令集標準正是新一代NVMe2.0中針對進一步改善SSD性能和壽命的一種新嘗試。

SSD的速度和使用壽命,都受到一種“寫放大效應”的影響。

在操作系統的視角看來,SSD內部會分成一個個塊(Block),塊裡面再分成頁(Page)。

誰在布局ZNS?未來數據中心硬盤的全球新標準協議

基於SSD的硬件特點,寫入時可以按頁為單位,刪除時卻只能整塊刪除。

如果一個塊里有需要保留的數據,也有需要刪除的數據怎麼辦?

傳統做法,是先把需要保留的數據挪到另一個塊里,再對原來的塊整體刪除。

對於一次寫入操作,比如寫入1個G數據,實際執行的寫入量還要再乘上一個寫放大係數(WAF)。

誰在布局ZNS?未來數據中心硬盤的全球新標準協議

可以看出,寫放大係數越大,對寫入速度的影響也就越大。

並且,SSD的閃存單元有固定的壽命,現在主流的三層單元(TLC)大概在1000次擦寫循環,成本更低但結構更複雜的四層單元(QLC)只有300-500次。

對於QLC單元的SSD來說,寫放大效應更為致命。

誰在布局ZNS?未來數據中心硬盤的全球新標準協議

除了影響速度和使用壽命,寫放大效應也是導致SSD需要一定預留空間的“罪魁禍首”。

如果整塊盤存滿,就沒有空間可以去挪動要保留的數據了,所以一塊SSD里至少有7%左右空間是不能用的,多的時候這種預留空間(over-provisioning)甚至會達到28%。

7%對於家用硬盤一塊兩塊來說倒也不是不可以接受,但如果存儲引擎在軟件層不給力,20%以上可就太浪費了,尤其對於大規模使用的雲存儲行業來說,還是挺肉疼的。

為解決以上問題,需要一個全新的存儲技術標準,就好像通訊技術里的5G標準一樣。

ZNS指令集標準應運而生。

其發起者,是NVMe協會的Matias Bj?rling,一位從20多歲起就死磕存儲技術的工程師老哥。

誰在布局ZNS?未來數據中心硬盤的全球新標準協議

為了能把這項技術講明白,我們發郵件向他詢問了ZNS標準制定過程中的一些細節。

他認為整個想法的來源很簡單,就是ZNS把SSD的管理層一分為二。

其中管理硬件的事留在硬件內部,把數據應該存放到哪這種工作剝離出去,交給軟件和操作系統來做。

最終實現方法是把SSD內部空間劃分成不同區域(Zone),不同應用的數據存儲至特定分區。

對於長期存放的數據,盡量完整的集中放在一些塊里,便可以減少臨時挪動。

誰在布局ZNS?未來數據中心硬盤的全球新標準協議

雖然是很小的改動,收益卻很大。

理想情況下,使用ZNS標準的SSD可以把寫放大係數做到接近於1,寫入速度提高的同時大大延長了使用壽命,也解放了不少預留空間。

Matias告訴量子位,這種做法的好處顯而易見,不過也需要付出一定代價。

從軟件、數據庫方案到操作系統,都需要針對性的做出適配,才能最大程度發揮ZNS的價值。

於是,整個標準的制定,就需要硬盤生產方、雲計算系統開發方、應用方共同參與才能完成。

誰在布局ZNS?

若是搜索一下與ZNS相關的消息,其實不難發現,全球已經有許多硬盤製造商布局於此。

例如西部數據早在2020年10月便推出了全球首個ZNS SSD——Ultrastar DC ZN540。

誰在布局ZNS?未來數據中心硬盤的全球新標準協議

據悉,與傳統SSD相比,西部數據的這款ZNS SSD吞吐量提高4倍,QoS改善2.5倍。

僅時隔半年,另一個“硬盤大玩家”三星,緊隨其後推出了基於ZNS企業服務器的SSD——PM731a系列。

誰在布局ZNS?未來數據中心硬盤的全球新標準協議

據三星方面表示,這款ZNS SSD在容量方面提供2TB和4TB兩種規格,最大的亮點,便是能夠“延長4倍的數據壽命”。

但除了上述這兩家廠商之外,若是查看NVMe的規範文檔,我們可以發現全球有許多大玩家也在追隨着ZNS SSD的腳步,並為推動它的發展發揮着各自的作用:

NAND製造商:出了剛才提到的三星,還包括Intel、Micron、SK Hynix、Kioxia。

控制器廠商:Microchip。

超標量雲計算提供商:微軟、阿里巴巴。

還有一些知名公司包括Seagate、Oracle和NetApp等。

從受到全球產業鏈巨頭們的熱捧這一層面來看,也可以一定程度上反映出ZNS SSD發展的正確性。

而在眾多貢獻者之中,雲計算廠商的位置非常關鍵,就像前面所說,ZNS硬盤要真的發揮高性能,需要在存儲系統層面進行聯動。

目前主流雲計算廠商的分佈式存儲系統,也確實是不同介質、不同協議的存儲硬件,都要進行接入適配的自主架構。

如果能深入到硬件層面去影響全球標準,這無疑是所有軟件系統商核心能力的呈現。

為此,我們特意向Matias做了求證——雲計算廠商為NVMe社區和ZNS相關工作做了哪些貢獻?

他在郵件中的回復如下:

在ZNS前一代探索性的協議OpenChannel中,雲廠商是首個大規模的數據中心集成應用實踐者,推動了整個Open-Channel標準最終可用,這些實踐支撐了ZNS標準的確立。

他們的工作對整體軟件和部署複雜性有重大影響,他們降低了軟件開銷,提出了同時保證存儲介質可靠、損耗均衡的關鍵意見,現在在採用ZNS時,可以顯著簡化一系列複雜性,能讓ZNS更容易被使用。

誰在布局ZNS?未來數據中心硬盤的全球新標準協議

……

不過就目前來看,雖說ZNS SSD是一種大勢所趨不假,但其主要應用的場景還是聚焦在可以高度訂製、更新換代較快的數據中心硬盤。正如Matias告訴量子位:

“如果希望將(ZNS)這種新的存儲標準接口(Interface)在業界推廣,人們一定會問,為什麼要暴露這麼多接口,或者會說,我們不願意這樣改變。這個過程經過了非常多的爭論,隨着獲得的反饋越來越多,標準也逐漸成熟。當雲計算廠商開始部署這項技術,它就將會有非常高速的發展。”

目前業內的研究顯示,無論是高性能塊存儲EBS,還是通過SMR磁盤支持的如對象存儲OSS(網盤的主要存儲類型),都有可能在未來受益於ZNS協議體系。

Matias甚至認為,由於ZNS本身也能很好支持SMR HDD硬盤,所以此前的存儲開源軟件體系也幾乎可以很快復用,無論是標準的文件系統(f2fs,btrfs),或者是開源數據庫軟件(RocksDB, Percona MySQL等),都已經發布了支持ZNS版本。

Matias還告訴我們:“ZNS目前還加速獲得手機廠商的興趣,新的閃存盤可能會讓平板和智能手機的電池續航更久、單元存儲的價格更低。”

或許在不久的將來,ZNS就會應用到個人存儲的方方面面。

參考鏈接:

[1]https://nvmexpress.org/everything-you-need-to-know-about-the-nvme-2-0-specifications-and-new-technical-proposals/

[2]http://118.31.189.123/2021/05/06/the-next-step-in-ssd-nvme-zns/

[3]https://hardware.slashdot.org/story/20/11/11/2155246/western-digitals-ultrastar-dc-zn540-is-the-worlds-first-zns-ssd?utm_source=rss1.0mainlinkanon&utm_medium=feed

[4]https://news.samsung.com/global/samsung-introduces-its-first-zns-ssd-with-maximized-user-capacity-and-enhanced-lifespan?utm_source=nr_twitter&utm_medium=social