1、從ZNS說起
Zone Namespace(ZNS)在2020年開始廣泛討論,2021年在NVMe協議組織基本定稿發布。ZNS對于存儲系統或者云系統,在系統側可控制IO在SSD內的具體寫入位置,通過系統側的主動垃圾回收(Garbage Collection,簡稱GC),將SSD內的GC削減到0。一方面,可以減少系統和SSD兩層GC帶來的寫放大和讀寫沖突,延長盤片使用壽命,也保證系統帶寬和QoS。另一方面,由于SSD內基本不需要GC,可以減少SSD內的冗余空間(Over-Provisioning,簡稱OP),使OP基本減到零,對于SSD內部管理表項也帶來簡化,從而削減企業級SSD的DRAM。
對于系統應用來說,一邊能保性能,一邊能降成本增壽命,這么兩全其美的好處,立即得到了Flash Memory Summit(FMS)、Open Compute Project(OCP)等組織和技術社區熱議。但是,技術上只談好處,不談開銷是不合理的。筆者認為,ZNS主要的開銷是在系統側“做得太多”。
ZNS要求單個Zone之內的LBA地址,必須是嚴格順序追加寫的,與SSD寫Flash的方式相對應。系統應用的管理粒度需要與Zone大小對齊,按Zone粒度進行寫入和回收。這樣,使得系統對SSD的操作方式,與SSD操作NAND的方式相符,SSD將Zone粒度映射到NAND的Block粒度,即可達成零GC的操作。
那么問題來了,嚴格順序追加寫對系統應用帶來的約束太大。如果按ZNS定義的傳統寫方式,系統對單個Zone操作的Queue Depth只能是1,即對一個Zone只能做串行寫,這對系統處理的約束很大。后來ZNS增加Append方式和ZRWA方式作為補充,改善了對追加寫的約束,系統用起來還是會有些別扭。此外,對于SSD寫異常,由于是嚴格順序追加,系統也需要與SSD同步出錯Zone的寫位置,Zone能否繼續追加等信息,才能進行后續的策略處理。
SSD要獲得零GC收益,必須將Zone粒度和NAND的Block粒度對齊。NAND廠家基于工藝和成本考慮,不同廠家、不同代次的NAND Flash,Block大小均不相同。隨著NAND廠家工藝疊層的增加,NAND Block大小持續增大,目前Block大小已基本超過100MB。這已經比系統應用一般的文件或者塊管理粒度要大得多。如果系統應用只通過Zone跟單Block對齊,要跑滿SSD性能,系統應用還需知道Zone和NAND通道、Die的物理拓撲關系,才能用滿NAND并發。如果系統應用希望單Zone能跑滿SSD性能,SSD實現需要將多個通道/Die的Block綁定成一個Zone,這樣單Zone容量都到達GB級別了。此外,SSD盤內的靜態Wear Leveling、NAND Data Retention/Disturb等場景,都需要通知系統進行搬移。
對消費級的單盤系統(如手機、筆記本電腦等),本身存儲性能和QoS要求不高,在系統應用算力有剩余情況下,這些約束都可以接受。譬如蘋果手機通過類ZNS方式獲得了令人驚訝的用戶體驗。但對于企業級或者云場景的多盤存儲系統,情況會更為復雜。存儲系統需要考慮多供應、壞盤替換、利舊等場景,很難保證一個存儲池內都是同NAND廠家同代次的SSD。這樣系統側就會面對多種Zone粒度的管理,對存儲系統進行多備份、EC條帶選擇、垃圾回收等方面設計考慮,都會變得更為困難。
2、由多流演進而來
2021年,Google帶著Flexible Data Placement(FDP)的概念和自研的Smart FTL應用進行宣講,并聯合Meta在2022年逐步把FDP推入到NVMe標準協議。近期,FDP議題在OCP進行了多次演進和討論,逐步得到業界的重視。同樣是為了追求削減SSD GC,降低寫放大為目標。FDP和ZNS走的倒是不同的路線。
ZNS沿著Open Channel的路線演進,Open Channel方式本身是把NAND Flash操作向系統應用呈現,通過系統直接控制NAND Flash操作來極大化利用NAND。這樣的問題是,系統應用需要知道SSD上的NAND具體操作方式和物理拓撲,NAND代次演進和廠家差異,系統應用也需要進行適配。ZNS是在這基礎上進行一層抽象,抽象成Zone粒度和追加寫方式,把NAND Flash具體操作和粒度進行了一層屏蔽。
Multi-Stream多流則是在標準命令接口上,添加數據的冷熱度標識,由SSD對數據進行分類存放和GC,來減少SSD的寫放大,這對系統就容易適配多了。SSD在支持多流情況下,也是需要做GC的,這樣只能一定程度的削減OP,譬如從3DWPD盤改為1DWPD盤就能符合系統應用;另外,系統應用層面的GC和SSD層面GC沖突,會帶來QoS不利影響。后來IO Determinism主要在于通過NVM Set對SSD空間進行劃分和性能隔離,通過Deterministic Window (DTWIN)和Non-Deterministic Window (NDWIN)的機制交互,讓系統應用知道SSD的NVM Set的QoS狀態,系統按一定規則可以得到確定性時延。與Open Channel路線相比,多流路線更看重系統和SSD盤片的解耦,以及系統應用的向下兼容。由此也更容易獲得系統應用的支持和落地。FDP就是在此路線上做進一步精細化演進。
3、FDP是什么
從FDP的操作模型來看,FDP是在IO寫命令上,使用Directive Specific (DSPEC)字段(也是stream標識字段),來標識Reclaim Group和Placement Handle。Placement Handle在SSD內映射到Reclaim Unit Handle。這協議一下子就整了很多名詞,實際上,FDP在SSD內就是圍繞Reclaim Group和Reclaim Unit進行操作。
SSD可以將并發NAND拓撲劃分為多個Reclaim Group,做成Reclaim Group間性能隔離。將SSD內的NAND物理block(或者Super block),劃為Reclaim Unit。那么,Reclaim Unit Handle指向不同的Reclaim Unit,可以理解成寫入不同的NAND物理block的寫指針。從系統應用看來,就是在標準IO寫時,通過DSPEC標識,指定寫入到特定性能隔離區域Reclaim Group里面,放置到按類別(不同業務類型或者冷熱度)區分的Reclaim Unit(即NAND block)。
與ZNS不同,FDP的寫方式并沒有與Reclaim Unit對齊,而且FDP是允許SSD盤內GC的。這樣,SSD盤片在NAND異常處理的主動權就大得多。FPD定義Reclaim Unit Open時間,超過時間會造成Reclaim Unit切換。而且,SSD盤內由于異常處理等原因造成的Reclaim Unit切換都要事件上報。這樣看,FPD就是要求更嚴格的多流或者IOD模式。
但是,FDP通過一些機制,避免與系統應用GC沖突,盡量減少SSD盤內GC。FDP定義Estimated Reclaim Unit Time Limit (ERUTL),用于表示Reclaim Unit寫入后到被SSD盤內主動回收的時間。在未到時間前,系統應用主動回收,就不會觸發SSD盤內GC。事實上,對系統應用中的熱數據或者前臺寫入數據,在一定時間內系統應用進行整理回收。而系統中的冷數據,系統應用不會搬移,SSD內部會根據NAND特性主動進行GC和Wear Leveling。對于SSD應用能力較強的系統,可以通過感知Reclaim Unit粒度,根據Reclaim Unit制定系統GC策略,從而獲得更好的效果。FDP通過與系統間的模糊策略交互,使SSD盤只有弱GC,減少寫放大,降低SSD盤的OP。同時也減少系統和SSD兩層GC沖突,保障系統側的時延和QoS。
OCP的會議觀點中認為,FDP具有比較好的向后兼容能力:1)FDP可以在標準設備中激活;2)應用在不理解FDP的情況下也可獲得收益;3)理解FDP的應用可以獲得更多收益。不修改應用情況下,將不同應用或者不同Namespace分配到不同Reclaim Unit Handle即可獲得收益。
FDP的提案TP4146已經在2022年底通過NVMe正式批準。FDP也在逐步合入Linux Kernel、xNVMe等各大開源平臺中(如下圖),接下來就看應用軟件對接的發展了。
4、結語
西部數據專家Dave Landsman在OCP會議研討中,給出的FDP和ZNS的比較如下:
如何獲得系統最大收益,系統和SSD盤間如何解耦。在系統和SSD盤片垂直整合發展過程中,這兩個問題如何權衡,如何獲得一個更好的平衡點。在技術界會伴隨FDP和ZNS的演進,繼續討論下去。
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
長按識別關注更多憶聯資訊
了解更多:
NAND Flash 原理深度解析(上)
NAND Flash 原理深度解析(下)
原文標題:下一代ZNS?淺談FDP在企業級SSD應用前景
文章出處:【微信公眾號:UnionMemory憶聯】歡迎添加關注!文章轉載請注明出處。
-
存儲
+關注
關注
13文章
4296瀏覽量
85801 -
SSD
+關注
關注
21文章
2857瀏覽量
117371
原文標題:下一代ZNS?淺談FDP在企業級SSD應用前景
文章出處:【微信號:UnionMemory憶聯,微信公眾號:UnionMemory憶聯】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論