1、從ZNS說起
Zone Namespace(ZNS)在2020年開始廣泛討論,2021年在NVMe協(xié)議組織基本定稿發(fā)布。ZNS對于存儲系統(tǒng)或者云系統(tǒng),在系統(tǒng)側可控制IO在SSD內(nèi)的具體寫入位置,通過系統(tǒng)側的主動垃圾回收(Garbage Collection,簡稱GC),將SSD內(nèi)的GC削減到0。一方面,可以減少系統(tǒng)和SSD兩層GC帶來的寫放大和讀寫沖突,延長盤片使用壽命,也保證系統(tǒng)帶寬和QoS。另一方面,由于SSD內(nèi)基本不需要GC,可以減少SSD內(nèi)的冗余空間(Over-Provisioning,簡稱OP),使OP基本減到零,對于SSD內(nèi)部管理表項也帶來簡化,從而削減企業(yè)級SSD的DRAM。
對于系統(tǒng)應用來說,一邊能保性能,一邊能降成本增壽命,這么兩全其美的好處,立即得到了Flash Memory Summit(FMS)、Open Compute Project(OCP)等組織和技術社區(qū)熱議。但是,技術上只談好處,不談開銷是不合理的。筆者認為,ZNS主要的開銷是在系統(tǒng)側“做得太多”。

ZNS要求單個Zone之內(nèi)的LBA地址,必須是嚴格順序追加寫的,與SSD寫Flash的方式相對應。系統(tǒng)應用的管理粒度需要與Zone大小對齊,按Zone粒度進行寫入和回收。這樣,使得系統(tǒng)對SSD的操作方式,與SSD操作NAND的方式相符,SSD將Zone粒度映射到NAND的Block粒度,即可達成零GC的操作。
那么問題來了,嚴格順序追加寫對系統(tǒng)應用帶來的約束太大。如果按ZNS定義的傳統(tǒng)寫方式,系統(tǒng)對單個Zone操作的Queue Depth只能是1,即對一個Zone只能做串行寫,這對系統(tǒng)處理的約束很大。后來ZNS增加Append方式和ZRWA方式作為補充,改善了對追加寫的約束,系統(tǒng)用起來還是會有些別扭。此外,對于SSD寫異常,由于是嚴格順序追加,系統(tǒng)也需要與SSD同步出錯Zone的寫位置,Zone能否繼續(xù)追加等信息,才能進行后續(xù)的策略處理。
SSD要獲得零GC收益,必須將Zone粒度和NAND的Block粒度對齊。NAND廠家基于工藝和成本考慮,不同廠家、不同代次的NAND Flash,Block大小均不相同。隨著NAND廠家工藝疊層的增加,NAND Block大小持續(xù)增大,目前Block大小已基本超過100MB。這已經(jīng)比系統(tǒng)應用一般的文件或者塊管理粒度要大得多。如果系統(tǒng)應用只通過Zone跟單Block對齊,要跑滿SSD性能,系統(tǒng)應用還需知道Zone和NAND通道、Die的物理拓撲關系,才能用滿NAND并發(fā)。如果系統(tǒng)應用希望單Zone能跑滿SSD性能,SSD實現(xiàn)需要將多個通道/Die的Block綁定成一個Zone,這樣單Zone容量都到達GB級別了。此外,SSD盤內(nèi)的靜態(tài)Wear Leveling、NAND Data Retention/Disturb等場景,都需要通知系統(tǒng)進行搬移。
對消費級的單盤系統(tǒng)(如手機、筆記本電腦等),本身存儲性能和QoS要求不高,在系統(tǒng)應用算力有剩余情況下,這些約束都可以接受。譬如蘋果手機通過類ZNS方式獲得了令人驚訝的用戶體驗。但對于企業(yè)級或者云場景的多盤存儲系統(tǒng),情況會更為復雜。存儲系統(tǒng)需要考慮多供應、壞盤替換、利舊等場景,很難保證一個存儲池內(nèi)都是同NAND廠家同代次的SSD。這樣系統(tǒng)側就會面對多種Zone粒度的管理,對存儲系統(tǒng)進行多備份、EC條帶選擇、垃圾回收等方面設計考慮,都會變得更為困難。
2、由多流演進而來
2021年,Google帶著Flexible Data Placement(FDP)的概念和自研的Smart FTL應用進行宣講,并聯(lián)合Meta在2022年逐步把FDP推入到NVMe標準協(xié)議。近期,F(xiàn)DP議題在OCP進行了多次演進和討論,逐步得到業(yè)界的重視。同樣是為了追求削減SSD GC,降低寫放大為目標。FDP和ZNS走的倒是不同的路線。

ZNS沿著Open Channel的路線演進,Open Channel方式本身是把NAND Flash操作向系統(tǒng)應用呈現(xiàn),通過系統(tǒng)直接控制NAND Flash操作來極大化利用NAND。這樣的問題是,系統(tǒng)應用需要知道SSD上的NAND具體操作方式和物理拓撲,NAND代次演進和廠家差異,系統(tǒng)應用也需要進行適配。ZNS是在這基礎上進行一層抽象,抽象成Zone粒度和追加寫方式,把NAND Flash具體操作和粒度進行了一層屏蔽。
Multi-Stream多流則是在標準命令接口上,添加數(shù)據(jù)的冷熱度標識,由SSD對數(shù)據(jù)進行分類存放和GC,來減少SSD的寫放大,這對系統(tǒng)就容易適配多了。SSD在支持多流情況下,也是需要做GC的,這樣只能一定程度的削減OP,譬如從3DWPD盤改為1DWPD盤就能符合系統(tǒng)應用;另外,系統(tǒng)應用層面的GC和SSD層面GC沖突,會帶來QoS不利影響。后來IO Determinism主要在于通過NVM Set對SSD空間進行劃分和性能隔離,通過Deterministic Window (DTWIN)和Non-Deterministic Window (NDWIN)的機制交互,讓系統(tǒng)應用知道SSD的NVM Set的QoS狀態(tài),系統(tǒng)按一定規(guī)則可以得到確定性時延。與Open Channel路線相比,多流路線更看重系統(tǒng)和SSD盤片的解耦,以及系統(tǒng)應用的向下兼容。由此也更容易獲得系統(tǒng)應用的支持和落地。FDP就是在此路線上做進一步精細化演進。
3、FDP是什么

從FDP的操作模型來看,F(xiàn)DP是在IO寫命令上,使用Directive Specific (DSPEC)字段(也是stream標識字段),來標識Reclaim Group和Placement Handle。Placement Handle在SSD內(nèi)映射到Reclaim Unit Handle。這協(xié)議一下子就整了很多名詞,實際上,F(xiàn)DP在SSD內(nèi)就是圍繞Reclaim Group和Reclaim Unit進行操作。
SSD可以將并發(fā)NAND拓撲劃分為多個Reclaim Group,做成Reclaim Group間性能隔離。將SSD內(nèi)的NAND物理block(或者Super block),劃為Reclaim Unit。那么,Reclaim Unit Handle指向不同的Reclaim Unit,可以理解成寫入不同的NAND物理block的寫指針。從系統(tǒng)應用看來,就是在標準IO寫時,通過DSPEC標識,指定寫入到特定性能隔離區(qū)域Reclaim Group里面,放置到按類別(不同業(yè)務類型或者冷熱度)區(qū)分的Reclaim Unit(即NAND block)。
與ZNS不同,F(xiàn)DP的寫方式并沒有與Reclaim Unit對齊,而且FDP是允許SSD盤內(nèi)GC的。這樣,SSD盤片在NAND異常處理的主動權就大得多。FPD定義Reclaim Unit Open時間,超過時間會造成Reclaim Unit切換。而且,SSD盤內(nèi)由于異常處理等原因造成的Reclaim Unit切換都要事件上報。這樣看,F(xiàn)PD就是要求更嚴格的多流或者IOD模式。
但是,F(xiàn)DP通過一些機制,避免與系統(tǒng)應用GC沖突,盡量減少SSD盤內(nèi)GC。FDP定義Estimated Reclaim Unit Time Limit (ERUTL),用于表示Reclaim Unit寫入后到被SSD盤內(nèi)主動回收的時間。在未到時間前,系統(tǒng)應用主動回收,就不會觸發(fā)SSD盤內(nèi)GC。事實上,對系統(tǒng)應用中的熱數(shù)據(jù)或者前臺寫入數(shù)據(jù),在一定時間內(nèi)系統(tǒng)應用進行整理回收。而系統(tǒng)中的冷數(shù)據(jù),系統(tǒng)應用不會搬移,SSD內(nèi)部會根據(jù)NAND特性主動進行GC和Wear Leveling。對于SSD應用能力較強的系統(tǒng),可以通過感知Reclaim Unit粒度,根據(jù)Reclaim Unit制定系統(tǒng)GC策略,從而獲得更好的效果。FDP通過與系統(tǒng)間的模糊策略交互,使SSD盤只有弱GC,減少寫放大,降低SSD盤的OP。同時也減少系統(tǒng)和SSD兩層GC沖突,保障系統(tǒng)側的時延和QoS。
OCP的會議觀點中認為,F(xiàn)DP具有比較好的向后兼容能力:1)FDP可以在標準設備中激活;2)應用在不理解FDP的情況下也可獲得收益;3)理解FDP的應用可以獲得更多收益。不修改應用情況下,將不同應用或者不同Namespace分配到不同Reclaim Unit Handle即可獲得收益。

FDP的提案TP4146已經(jīng)在2022年底通過NVMe正式批準。FDP也在逐步合入Linux Kernel、xNVMe等各大開源平臺中(如下圖),接下來就看應用軟件對接的發(fā)展了。

4、結語
西部數(shù)據(jù)專家Dave Landsman在OCP會議研討中,給出的FDP和ZNS的比較如下:

如何獲得系統(tǒng)最大收益,系統(tǒng)和SSD盤間如何解耦。在系統(tǒng)和SSD盤片垂直整合發(fā)展過程中,這兩個問題如何權衡,如何獲得一個更好的平衡點。在技術界會伴隨FDP和ZNS的演進,繼續(xù)討論下去。
5、參考文獻
-
TP4146a Flexible Data Placement, NVMe
-
NVM Express Zoned Namespace Command Set Specification, NVMe
-
SmartFTL SSDs, OCP Global Summit 2021
-
Flash Innovation: Flexible Data Placement, OCP Global Summit 2022
-
Flexible Data Placement using NVM Express Implementation Perspective, OCP Global Summit 2022
-
Flexible Data Placement from the NVM Express Perspective, OCP Global Summit 2022
-
Flexible Data Placement, 2023 OCP Storage Tech Talks

長按識別關注更多憶聯(lián)資訊
了解更多:
NAND Flash 原理深度解析(上)
NAND Flash 原理深度解析(下)
新盤入手必讀|四款主流固態(tài)硬盤檢測工具科普
原文標題:下一代ZNS?淺談FDP在企業(yè)級SSD應用前景
文章出處:【微信公眾號:UnionMemory憶聯(lián)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
-
存儲
+關注
關注
13文章
4870瀏覽量
90227 -
SSD
+關注
關注
21文章
3146瀏覽量
122543
原文標題:下一代ZNS?淺談FDP在企業(yè)級SSD應用前景
文章出處:【微信號:UnionMemory憶聯(lián),微信公眾號:UnionMemory憶聯(lián)】歡迎添加關注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
國內(nèi)企業(yè)級SSD廠商加速崛起
深演智能發(fā)布新一代企業(yè)級AI智能體平臺DeepAgent 3.0版本
LitePoint與高通合作加速下一代Wi-Fi 8創(chuàng)新
設計下一代AI SSD,如何選對PLP電容?
映翰通發(fā)布新一代企業(yè)級路由器 ER615,以穩(wěn)馭速,AI 煥新連接
Telechips與Arm合作開發(fā)下一代IVI芯片Dolphin7
容量可達245.76TB,鎧俠企業(yè)級與數(shù)據(jù)中心級SSD迎來全面升級
適用于下一代 GGE 和 HSPA 手機的多模/多頻段 PAM skyworksinc
容量可達245.76TB,鎧俠企業(yè)級與數(shù)據(jù)中心級SSD迎來全面升級
企業(yè)級智能體是什么?有什么作用?
企業(yè)級SSD的核心技術與市場趨勢
國內(nèi)排名第四,這家企業(yè)級SSD廠商創(chuàng)業(yè)板IPO!
?紫光閃芯新一代企業(yè)級SATA SSD E1200產(chǎn)品系列發(fā)布
誰說高性能必須高能耗?揭秘企業(yè)級SSD功耗管理“黑科技”
下一代ZNS?淺談FDP在企業(yè)級SSD應用前景
評論