本發(fā)明涉及zns存儲,尤其是涉及一種基于動態(tài)區(qū)域的分區(qū)命名空間固態(tài)盤系統(tǒng)架構(gòu)。
背景技術(shù):
::1、zns?ssd作為一種新型接口的固態(tài)硬盤,將傳統(tǒng)固態(tài)盤的數(shù)據(jù)放置和垃圾回收轉(zhuǎn)交由主機負(fù)責(zé),使得主機可以直接控制設(shè)備,提升了設(shè)備的穩(wěn)定性。在zns的場景下,不同應(yīng)用按照zone配置信息,相應(yīng)存放業(yè)務(wù)數(shù)據(jù)。由于是主機管理數(shù)據(jù)放置,可以最大程度減少垃圾回收,從而降低ssd內(nèi)部的寫放大,提升ssd的壽命。此外,垃圾回收由主機控制,那么原來用于gc優(yōu)化的op空間就不再需要,而且原來頁級映射表所需的gb級dram開銷也減少至zns粗粒度的kb級,這極大地減少了存儲成本。為了保證較高的并行度,一個zone包含多個閃存塊,這樣一來,zns以zone為粒度執(zhí)行reset操作,當(dāng)觸發(fā)垃圾回收時,主機選擇需要回收的zone后,盡管zone中的數(shù)據(jù)只部分失效,仍會擦除整個zone,因此需要遷移其中的有效數(shù)據(jù)至其他可寫的zone中,隨后將原來的zone重置為“空”的可寫狀態(tài)。2、此外,lsmt(log?structured?merge?tree,日志結(jié)構(gòu)合并樹)是一種將寫密集負(fù)載的隨機寫轉(zhuǎn)為順序?qū)懙慕Y(jié)構(gòu),廣泛應(yīng)用于鍵值存儲系統(tǒng)中,lsmt將數(shù)據(jù)存儲在以sstable(sorted?string?table,排序字符串表)為基本單元的樹狀層次結(jié)構(gòu)中,每層包含多個sstable。數(shù)據(jù)首先存儲在內(nèi)存的memtable(memory?table,內(nèi)存表)中,隨著數(shù)據(jù)的持續(xù)寫入,當(dāng)memtable的大小達(dá)到一定的程度,lsmt便會觸發(fā)compaction操作,將上層的sstable合并到下一層,這個過程減少了數(shù)據(jù)的碎片化并提升了查詢的性能。3、在使用lsmt的鍵值存儲系統(tǒng)中,數(shù)據(jù)被分批寫入sstable中,在compaction操作的合并排序過程中,上層的數(shù)據(jù)與下層重疊的鍵值對一起被選中寫入下層。lsmt每層大小逐層增加,越靠近內(nèi)存的層級越小,遠(yuǎn)離內(nèi)存的層級則越大。在合并排序執(zhí)行時,數(shù)據(jù)需要經(jīng)歷多次的讀取與重寫,這會導(dǎo)致所謂的寫放大現(xiàn)象。對于在zns?ssd中采用lsmt的情況,存儲管理是以較大的zone為單位,在垃圾回收期間,可能需要遷移整個區(qū)的數(shù)據(jù)以獲得連續(xù)的可用空間。這個過程同樣會產(chǎn)生額外的寫入活動,從而加劇寫放大的問題。4、另外,當(dāng)前主流的zns平臺采用rocksdb的后端插件zenfs文件系統(tǒng)實現(xiàn)對設(shè)備的控制,但是zenfs默認(rèn)同一層級的sstable壽命類似,所以盡量將同一層級sstable盡量放置到同一個zone中,以確保在觸發(fā)gc時需要遷移的有效數(shù)據(jù)量十分小,減小遷移開銷。但是我們通過實驗分析發(fā)現(xiàn),同一層級的sstable的壽命并不一定近似,這種對于壽命的預(yù)測僅限于較低層級,對于高層級則十分不準(zhǔn)。導(dǎo)致遷移開銷顯著增加。兩者同時作用,將嚴(yán)重影響鍵值存儲應(yīng)用的寫入性能。技術(shù)實現(xiàn)思路1、本發(fā)明的目的是提供一種基于動態(tài)區(qū)域的分區(qū)命名空間固態(tài)盤系統(tǒng)架構(gòu),能顯著減少有效數(shù)據(jù)遷移,充分利用zone的空閑空間,延長zns?ssd的壽命,有效緩解zns平臺的寫放大問題,提升系統(tǒng)整體性能。2、為實現(xiàn)上述目的,本發(fā)明提供了一種基于動態(tài)區(qū)域的分區(qū)命名空間固態(tài)盤系統(tǒng)架構(gòu),預(yù)先設(shè)定好小zone和大zone存儲量的大小和數(shù)據(jù)放置在小zone和大zone的層級界限,在固態(tài)盤中進(jìn)行compaction合并壓縮然后生成sstable,將compaction中重疊的sstable放置到相同的zone中,將不同層級的數(shù)據(jù)放到不同大小的zone中。3、優(yōu)選的,具體步驟為:首先,將低層級相關(guān)的數(shù)據(jù)都放置到小zone中,將高層級相關(guān)的數(shù)據(jù)都則放到跨閃存芯片的大zone中,同時保留小zone和大zone的優(yōu)點;4、當(dāng)觸發(fā)li-li+1之間的compaction時,生成一些新的sstable到li+1中,便將li+2層中與新生成的sstable鍵值范圍重疊的所有zone,按剩余空間排序;5、從排序的zone中選取剩余空間最小的zone寫入新生成的sstable,若空間不足或沒有重疊的zone,則選擇一個新的zone寫入;6、當(dāng)下次觸發(fā)li+1-li+2之間的compaction時,li+1的victim?sstable和li+2中重疊的sstable位于同一個zone中,成為無效數(shù)據(jù)。7、因此,本發(fā)明采用上述一種基于動態(tài)區(qū)域的分區(qū)命名空間固態(tài)盤系統(tǒng)架構(gòu),通過將不同層級的數(shù)據(jù)放置到不同大小的zone中,可以減少zns設(shè)備的有效數(shù)據(jù)遷移,并且將不同層級但重疊的sstable放置到同一zone中,可以減少compaction合并排序操作導(dǎo)致的有效數(shù)據(jù)分散進(jìn)而增加遷移開銷的問題,能顯著減少有效數(shù)據(jù)遷移,充分利用zone的空閑空間,延長zns?ssd的壽命,可以減少了寫入操作次數(shù),有效緩解zns平臺的寫放大問題,提升系統(tǒng)整體性能。8、下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進(jìn)一步的詳細(xì)描述。技術(shù)特征:1.一種基于動態(tài)區(qū)域的分區(qū)命名空間固態(tài)盤系統(tǒng)架構(gòu),其特征在于:預(yù)先設(shè)定好小zone和大zone存儲量的大小和數(shù)據(jù)放置在小zone和大zone的層級界限,在固態(tài)盤中進(jìn)行compaction合并壓縮然后生成sstable,將compaction中重疊的sstable放置到相同的zone中,將不同層級的數(shù)據(jù)放到不同大小的zone中。2.根據(jù)權(quán)利要求1所述的一種基于動態(tài)區(qū)域的分區(qū)命名空間固態(tài)盤系統(tǒng)架構(gòu),其特征在于,具體步驟為:首先,將低層級相關(guān)的數(shù)據(jù)都放置到小zone中,將高層級相關(guān)的數(shù)據(jù)都則放到跨閃存芯片的大zone中,同時保留小zone和大zone的優(yōu)點;技術(shù)總結(jié)本發(fā)明公開了一種基于動態(tài)區(qū)域的分區(qū)命名空間固態(tài)盤系統(tǒng)架構(gòu),屬于ZNS存儲
技術(shù)領(lǐng)域:
:,預(yù)先設(shè)定好小zone和大zone存儲量的大小和數(shù)據(jù)放置在小zone和大zone的層級界限,在固態(tài)盤中進(jìn)行compaction合并壓縮然后生成SSTable,將compaction中重疊的SSTable放置到相同的zone中,將不同層級的數(shù)據(jù)放到不同大小的zone中。本發(fā)明采用上述的一種基于動態(tài)區(qū)域的分區(qū)命名空間固態(tài)盤系統(tǒng)架構(gòu),能顯著減少有效數(shù)據(jù)遷移,充分利用zone的空閑空間,延長ZNS?SSD的壽命,有效緩解ZNS平臺的寫放大問題,提升系統(tǒng)整體性能。技術(shù)研發(fā)人員:杜亞娟,楊振受保護(hù)的技術(shù)使用者:武漢理工大學(xué)深圳研究院技術(shù)研發(fā)日:技術(shù)公布日:2025/1/9