基于FDP SSD的ROCKSDB寫放大優化
作為SSD的關鍵指標,寫放大(WriteAmplification,WA)始終是SSD領域待攻克的技術難題之一。其本質表現為SSD的實際物理寫入量超過主機原始請求寫入量。這一現象的根本原因在于NAND閃存介質必須以塊(BIoCK)為單位進行擦除,而主機端的寫入請求往往以頁(Page)為單位分散分布于多個塊中。當某塊內有效數據占比低于闊值時,SSD控制器啟動垃圾回收(Garbage Collection,GC)機制,將尚存的有效數據搬運至新擦除的塊中,同時釋放原塊以供復用,這一過程必然產生額外的寫入量。這些額外的寫開銷不僅影響系統整體性能,導致吞吐量下降和延遲升高,還會縮短SSD的使用壽命。
這一挑戰推動了SSD領域的一個重要研究方向一數據放置技術。SSD數據放置技術是通過硬件與軟件的深度協同設計,對主機數據在SSD介質中的物理布局進行優化的技術方案,其核心在于通過降低GC的觸發頻率,從根本上抑制寫放大(Write Amplification,WA)效應的產生機制。
NVMev2.1規范所定義的靈活數據放置(Flexible Data Placement,FDP)技術,既從底層閃存管理層面顯著減少無效GC操作引I發的超額寫入流量,又通過FDP的控制指令集降低了上層存儲棧的適配復雜度。此外,FDP還具有向后兼容能力,能夠復用當前的軟件棧,最終在解決寫放大問題與軟件生態兼容性之間建立了技術平衡點。FDP突破了傳統SSD被動式數據管理的局限,通過向主機公開設備資源信息,并提供數據分類放置接口,使主機能夠根據數據特性(如冷/熱數據)主動將數據分類放置在SSD上不同的存儲單元中。這一機制實現了數據的分流隔離和存儲單元的精細化布局,從根本上解決了不同特性數據混合存儲導致的的余搬移問題。關于FDP技術的實現機制的深度解析,可參考我們發布在ODCC官網上的《FDPSSD技術與應用白皮書》。
Linux虛擬文件系統(VFS)從版本4.13起,定義了文件生命周期的管理機制,分別為SHORT(短周期),MEDIUM(中周期),LONG(長周期)和EXTREME(超長周期)。應用可通過fcntI(2)系統調用對文件顯式的指定上述生命周期等級。此外,VFS還定義了NOT_SET和NONE兩種類型,NOT_SET為VFS默認類型,表示當文件沒有被顯示聲明生命周期時的類型。
NONE表示文件不關聯任何生命周期屬性的配置。該機制與FDP SSD相結合時,可將不同生命周期的文件映射至FDP內部預設數據流中降低寫放大效應。
RocksDB是Meta公司開源的一款高性能嵌入式鍵值對存儲系統,其核心架構基于Log-StructuredMerge-Tree(LSM-Tree)算法設計,采用分層存儲結構進行數據管理,通過追加寫(Append-only)與合并(Compaction)兩大核心機制實現高吞吐與低延遲特性。其中,SSTable(Sorted String Table),是RocksDB持久化存儲的核心文件,以鍵值對有序序列的形式存儲數據,并按層級(Level)進行組織。較新的數據存儲在Levelo中,較老的數據隨著合并(Compaction)過程逐步歸并在編號更高的Level中。
ROCkSDB默認的數據分類策略是將文件的層級特性映射為VFS的文件生命周期標識,具體表現為:預寫日志(WAL)文件被標記為SHORT;LeVelO和LeVel1的SSTable文件被標記為MEDIUM;LeVeI2的SSTable文件被標記為LONG;LeVeI3及更高層級的SSTable文件則被標記為EXTREME;其它文件(包括MANIFEST、CURRENT、檢查點日志等)未進行顯式生命周期標記,默認保留為NOT_SET標識。
通過對ROockSDB的數據分類策略進行系統性分析,我們發現SSTable文件在LSM-Tree層級中的生命周期存在顯著的階段性分布特征:位于LevelO至Level3的SSTable文件具有相對較短的駐留周期,而Level4以及上的文件則展現出最長的存活時間。基于這一觀測結果,本實驗摒棄了RoCkSDB原生的數據分類策略,轉而提出一種優化的分類方案。即WAL文件標記保持不變,將LeVeI03文件標記為MEDIUM,LeVel4文件標記為LONG,LeVeI5及以上文件標記為EXTREME,其余未歸類文件統一標記為NOT_SET。如表1所示:

表 1:RocksDB 分類策略對比
我們采用FDPSSD(型號U.2PM9D3a,7.68TB容量),針對優化前后的ROCkSDB分類方案進行了對比測試。通過YCSB基準測試工具對2億條記錄進行數據加載(Load)與更新(Update)操作,全面評估不同分類策略的表現。測試結果表明,RocksDB的原生分類方案在FDPSSD上的WAF相比普通SSD降低了約8%,而優化后的分類方案將WAF顯著降低30%。此外,優化后的分類方案使每秒操作數(OPS)提升了10%,同時p99.9延遲得到了55%的改善。

圖1. RocksDB 在關閉 FDP,開啟 FDP 使用原生分類策略和優化分類策略的 WAF 對比

圖 2. 寫放大和 SSD 容量利用率的相關性

圖3.ROCKSDB在關閉FDP,開啟FDP使用優化分類策略的性能對比
除了在文件系統層面支持FDPSSD外,我們還為ROCKSDB開發了基于FDPSSD的端到端解決方案。ROCKSDB通過抽象封裝API支持多種存儲后端,我們開發了RoCkSDB擴展插件一TorFS。該插件通過深度集成FDP特性,實現了面向FDPSSD的數據分流。在IO調度層,依托xNVMe開源庫實現多路徑IO的支持。為促進生態發展,TorFS提供了標準化IO接口,允許第三方開發者集成定制化的10路徑。

圖 4. TorFS 架構
基于TorFS的端到端方案進行測試,測試結果表明,RocksDB成功實現了對寫放大效應的顯著抑制,其寫放大因子(WAF)值近乎趨近于理論極限的1,同時系統性能指標達到最優水平,展現出低延遲、高吞吐量與穩定持久化的綜合優勢。

圖5.RocksDB使用TorFS端到端解決方案的寫放大和性能
上述實驗證實,通過對數據生命周期管理,FDP技術顯著提升了SSD的性能與壽命指標。我們期待將這項技術及優勢帶給整個超大規模數據中心。我們致力于將這一技術及優勢推廣至超大規模數據中心生態系統,以實現存儲架構中數據布局與底層介質特性的深度適配。
-
Linux
+關注
關注
88文章
11784瀏覽量
219283 -
SSD
+關注
關注
21文章
3132瀏覽量
122354 -
數據庫
+關注
關注
7文章
4059瀏覽量
68441
原文標題:科技之心|優化數據庫寫入:FDP SSD 的新思路
文章出處:【微信號:sdschina_2021,微信公眾號:三星半導體和顯示官方】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
SSD是什么意思,什么是SSD
SSD之優化篇
SSD1289寫寄存器函數
基于全HDD aarch64服務器的Ceph性能調優實踐總結
面向多目標優化的自適應SSD緩存系統
全面優化SSD,浪潮智能全閃存儲G2-F滿足企業關鍵業務需求
怎么使用SSD才能避免越寫越慢?
SSD中有個重要參數,就是寫放大
在 SSD 上使用 btrfs 文件系統的相關優化
FDP4D5N10C N通道屏蔽柵極PowerTrench
FDP8D5N10C N通道屏蔽柵極PowerTrench
讀、寫、擦除是SSD對NAND的三大基本操作
下一代ZNS?淺談FDP在企業級SSD應用前景
基于FDP SSD的ROCKSDB寫放大優化
評論