首先介紹一下吳非教授所在的華科存儲部,是國內(nèi)首個獲批的存儲領(lǐng)域博士點,在2022年和2023年所在團隊在IO500的10節(jié)點競賽中兩度榮獲世界第一。研究工作涵蓋從存儲介質(zhì)到系統(tǒng)的全方位探索。團隊由謝長生教授領(lǐng)導(dǎo),團隊包含四十多位教師和一百多位學生,研究方向主要集中在AI環(huán)境下對數(shù)據(jù)高效的存儲和計算提出的方法機理和策略。
新興應(yīng)用對存儲提出的需求
大數(shù)據(jù)、物聯(lián)網(wǎng)、5G、AI等應(yīng)用對存儲系統(tǒng)提出了更高的要求,尤其在性能、可靠性和低成本和大容量方面。全球數(shù)據(jù)量的爆發(fā)式增長,預(yù)計到2027年數(shù)據(jù)量可能達到284.30ZB。當前閃存技術(shù)成為主流存儲,但它并非沒有缺陷。與傳統(tǒng)的磁存儲相比,閃存的讀寫粒度更大,且需要異地更新,這導(dǎo)致了垃圾回收的復(fù)雜性。
閃存存儲中的垃圾回收過程會導(dǎo)致寫放大問題,影響SSD性能。這個過程涉及清理和重用空間,但需要額外寫入操作,增加了實際寫入數(shù)據(jù)量。不同類型的SSD在垃圾回收方面表現(xiàn)不同,消費類SSD僅有7%的OP空間用于此過程,而企業(yè)級SSD大概是28%,這部分空間雖不可見,但對維持SSD性能和壽命至關(guān)重要。
此外,隨著SSD容量的增加,維護地址映射表所需的DRAM成本也在增加,這也是個不小的負擔。在系統(tǒng)層面,從應(yīng)用層到系統(tǒng)內(nèi)核層再到塊接口層,存儲系統(tǒng)的層次結(jié)構(gòu)中存在許多功能冗余和重疊。例如,設(shè)備層和文件系統(tǒng)層都有垃圾回收和文件管理,導(dǎo)致IO軟件的開銷增大,系統(tǒng)效率降低。
ZNS SSD的優(yōu)勢
因此,傳統(tǒng)塊接口的盤體系架構(gòu)存在一定局限性,而ZNS(分區(qū)命名空間)接口在2021年已經(jīng)做到了國際標準。分區(qū)盤的主要優(yōu)勢在于它對大容量存儲的支持,尤其適用于QLC閃存。ZNS在傳統(tǒng)塊接口上增加了一層管理,采用大條帶管理方式,這與傳統(tǒng)的基于頁或塊的映射不同,超大容量比如128T所需的千分之一DRAM也是很大的,而這種大的條帶管理方式減少了盤內(nèi)DRAM的需求(千分之一容量會很小),一寫入是一個條帶,IP和OP空間整體也變小了。
之所以用大條帶寫入,是因為它更像一個日志文件系統(tǒng)。數(shù)據(jù)寫入是追加式的,必須按順序?qū)懀错樞虿脸?。這樣單個區(qū)內(nèi)不用垃圾回收,但要在文件系統(tǒng)里完成垃圾回收。ZNS的優(yōu)勢在于它對DRAM的需求很小,幾乎不需要OP空間,寫放大率低,帶來了低成本、高性能和長壽命,滿足AI計算和備份存儲的需求。
不過這種設(shè)計也意味著管理效率低。原本由設(shè)備端處理的任務(wù)轉(zhuǎn)移到了系統(tǒng)端,設(shè)備性能好,但增加了系統(tǒng)管理垃圾回收的復(fù)雜性。當文件系統(tǒng)的實際寫入數(shù)據(jù)小于分區(qū)大小時,就會產(chǎn)生負載多樣性與分區(qū)固定大小之間的矛盾。
因此我們考慮做一個靈活分區(qū)大小的ZNS。
另一個問題是存儲效率低。在分區(qū)盤的size固定分區(qū)情況下,盤類專家認為數(shù)據(jù)壓縮技術(shù)能進一步優(yōu)化存儲空間。雖然在傳統(tǒng)硬盤中有效,但方法移植到分區(qū)盤里就無法工作,因為RAID條帶沒有辦法組織。
因此要考慮將硬盤轉(zhuǎn)變?yōu)橹С滞该鲏嚎s的可計算存儲設(shè)備。
靈活分區(qū)是為了解決ZNS SSD在固定分區(qū)size下遇到的性能和效率問題。我們分析了三家主流廠商的分區(qū)盤,大普將分區(qū)大小做到32GB,而西部數(shù)據(jù)和浪潮則是2GB和4GB。好處是大帶單用時性能很好,但整體并發(fā)性能上并不理想,而且平衡性上,接口性能跑不滿。
大分區(qū)的問題在于訪問粒度不匹配和數(shù)據(jù)放置不靈活。當數(shù)據(jù)分布在大條帶上時,很多數(shù)據(jù)無法完全填滿分區(qū),造成空間浪費。
為什么有分區(qū)大小靈活配置的需求?我們實驗發(fā)現(xiàn),對于不同負載的性能峰值,帶寬不是在最小或最大,而是呈現(xiàn)拋物線形狀。靈活分區(qū)能夠提供更好的性能,同時減少主機端垃圾回收的開銷。因此,分區(qū)盤對分區(qū)大小進行靈活配置是有必要的。
而實現(xiàn)靈活分區(qū)的主要挑戰(zhàn)在于SSD內(nèi)部RAID的復(fù)雜性。在固定大小的分區(qū)中,RAID易于管理,但不固定時,實際可用空間會變化,使得地址對齊和空間利用會很復(fù)雜。用戶數(shù)據(jù)大小未知,如果采用早期壓縮技術(shù)中的空白填充,會造成空間浪費。尤其在大條帶情況下,這種浪費不可接受。
因此,為了提高ZNS硬盤的性能和市場接受度,需要解決靈活分區(qū)帶來的技術(shù)挑戰(zhàn),優(yōu)化存儲空間的利用,同時保持數(shù)據(jù)管理和性能的平衡。
FlexZNS–靈活分區(qū)設(shè)計與實現(xiàn)
我們提出了一個方案,通過四件事來優(yōu)化存儲管理。首先是將用戶空間與舊校驗空間解耦,使得數(shù)據(jù)和校驗區(qū)域可以獨立管理。在盤內(nèi)將空間分為兩個部分,并在上層軟件與ZNS交互時,根據(jù)數(shù)據(jù)特征進行動態(tài)邏輯分區(qū),將大小相似的數(shù)據(jù)聚集在一起,從而優(yōu)化校驗空間的分配。
在不同負載下進行的測試表明,采用靈活分區(qū)的方式可以顯著提升性能。具體來說,靈活分區(qū)能夠?qū)⑼掏铝刻岣咧猎瓉淼?63%,同時將寫放大率降低至61.9%。
多租戶共享環(huán)境中,分區(qū)盤的彈性空間分配能顯著提升性能,帶寬可提高52.9%。這種環(huán)境下,除了性能提升,還可以實現(xiàn)適當?shù)挠布綦x,適應(yīng)多租戶的需求。我們的目標是推動ZNS技術(shù)在實用化方面更進一步,盡管這目前還處于探索階段。
吳非教授還分享了分區(qū)盤采用數(shù)據(jù)壓縮技術(shù)方面的探索。目前,包括三星、Scaleflux等幾家公司正在開發(fā)盤內(nèi)透明壓縮技術(shù),可以提高聚合帶寬和降低成本,但在傳統(tǒng)的塊接口中,壓縮后的數(shù)據(jù)可能因不對齊而浪費空間。而在ZNS硬盤中,由于使用了大的super block映射,壓縮后的數(shù)據(jù)對齊變得可行??紤]到壓縮性的局部性,嘗試采用了槽對齊的數(shù)據(jù)布局,還有Balloon-ZNS SSD設(shè)計(控制器包含一個硬件壓縮引擎,將傳入的數(shù)據(jù)頁壓縮成更小的段)等,并對此進行了針對性地配置、分析和評估。
最后
ZNS硬盤雖然具有大容量、低成本、性能穩(wěn)定和軟件定義等優(yōu)點,但在實際應(yīng)用中可能需要更多的探索和創(chuàng)新。另一種可能更容易落地的技術(shù)是FDP(靈活數(shù)據(jù)路徑),考慮了負載特征和上層語義,將數(shù)據(jù)根據(jù)熱度劃分到不同區(qū)域,不需要將設(shè)備端功能遷移到主機端。