EuroSys 2024 Paper?論文閱讀筆記整理
問題
云本地磁盤以其實惠的價格和高性能而極具吸引力。在云本地磁盤中,物理存儲設備直接連接到計算服務器,并作為塊設備虛擬化到虛擬機(VM)。在這種設置下,計算節點受其有限的計算和存儲資源的限制,只能提供有限數量的VM(也稱為ECS實例)。
隨著CPU的性能的快速增長,促使進一步復用資源,為每臺服務器提供更多實例。然而,這種想法受到存儲設備發展的限制。一方面,硬盤驅動器擁有高密度,但帶寬仍在每個驅動器250MB/s左右,從而阻止本地磁盤在實現相同服務級別目標(SLO)的同時增加容量。另一方面,高性能存儲類內存(SCM)固態硬盤,提供了有競爭力的性能,但存儲容量有限,成本高得多[22]。
一種新方法是采用新興的QLC SSD[26,32,39,40,50]作為本地磁盤。QLC固態硬盤的高密度(比SLC高4倍)和低成本(不到SLC的1/4)提供了可接受的大容量。
本文方法
本文探討了利用基于QLC的高容量固態硬盤制作云本地磁盤的可能性。并進行了三次初步的嘗試:部署QLC SSD作為替代品,使用高性能SSD(HP-SSD)構建分層系統(即OpenCAS[8]),使用dm分區(內核設備映射器)[4]。但QLC固態硬盤不能簡單地作為替代品,原因有兩點:
-
QLC SSD采用粗粒度的邏輯到物理(L2P)映射(例如,Intel P5316 QLC SSD中的64KB間接單元[21,26,28,51])。64KB比傳統NVMe SSD中的4KB L2P條目大得多,從而導致高設備級寫入放大(即,4KB邏輯寫入變為64KB NAND寫入)。
-
使用閃存轉換層(FTL)管理QLC內部的地址映射,導致垃圾收集的嚴重NAND級寫入放大,因為具有不同壽命的數據混合在一起[17]。
基于以上經驗教訓,本文提出了CSAL,即阿里云的下一代云本地磁盤。CSAL需要大約3GB的DRAM用于內存數據結構,管理HP-SSD作為寫緩沖區,并使用大容量分區命名空間(ZNS)QLC SSD進行持久性。
-
設計了兩級L2P表,以實現細粒度(4KB)數據訪問,從而減輕設備級寫放大。
-
周期性執行壓縮,將冷數據聚合為對底層ZNS QLC SSD的大順序寫入來回收寫入緩沖區空間。壓縮是由用戶(即VM)進行的,因此可以盡最大努力減少NAND級別的寫入放大。
開源代碼:https://github.com/spdk/spdk
實驗結果表明,CSAL始終以優異的性能占據優勢,在微觀、應用和部署基準方面,與排名第二的方法相比,CSAL分別可以實現2.22倍、1.82倍和2.03倍的加速。
總結
本文針對云本地磁盤,探討利用QLC SSD的可能性,通過三次初步實驗分析了主要的性能瓶頸:(1)QLC SSD采用粗粒度的邏輯到物理(L2P)映射(64KB),比傳統NVMe SSD中的4KB L2P條目大得多,導致高設備級寫入放大。(2)使用閃存轉換層(FTL)管理QLC內部的地址映射,導致垃圾收集的NAND級寫放大,因為不同壽命的數據混合在一起。本文提出CSAL,使用大約3GB的DRAM用于內存數據結構,使用HP-SSD作為寫緩沖區,使用大容量分區命名空間(ZNS)QLC SSD進行持久化。包括兩個技術:(1)兩級L2P表,以實現細粒度(4KB)數據訪問,減輕設備級寫放大。(2)周期性執行壓縮,將冷數據聚合為對底層ZNS QLC SSD的大順序寫入來回收寫入緩沖區空間,減少NAND級別的寫入放大。