精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

基于內部區域壓實(IZC)的垃圾回收

SSDFans ? 來源:SSDFans ? 2023-06-30 10:28 ? 次閱讀

? ?

?01 背景

?目前基于閃存的固態硬盤保持著幾十年前的塊層接口,這在容量超額配置、頁面映射表的DRAM、垃圾回收開銷以及試圖減輕垃圾回收的主機軟件復雜性等方面帶來了巨大的代價。塊層接口向其上層展現出來的是一個一維的LBA數組,每個LBA都可以被讀寫,其最初的引用是為了隱藏存儲介質的不同。然而隨著存儲介質的迭代,為flash based存儲設備維護塊層接口語義代價越來越大,如flash based SSDs中FTL的運轉需要大量DRAM,GC需要OP空間,并且設備請求命令延遲被GC干擾后有抖動。NVMe區域命名空間(ZNS)的設定為SSD提供了一種全新的接口模式,ZNS作為一種新的存儲接口正在出現,邏輯地址空間被劃分為固定大小的區域,每個區域必須按順序寫入,以便于閃存訪問。

?02 問題

?1.ZNS的IO棧

一般來說,新的存儲接口需要修改軟件棧。對于ZNS,需要修改兩個主要的IO棧組件,文件系統和IO調度器。首先,原地更新的文件系統,如EXT4,必須被附加記錄的文件系統所取代,如日志結構文件系統(LFS),以消除隨機更新。因為LFS的一個區段是通過追加記錄按順序寫入的,每個區段可以被映射到一個或多個區域。其次,IO調度器必須保證一個區的寫請求的有序交付。例如,可以為每個區使用一個無序的隊列,調度器只需要確定不同區之間的服務順序。ZNS的順序寫要求使得ZNS只能適用于特定需求的應用訪問。

2.增加主機開銷

在LFS的append logging方案下,臟段的過時塊必須通過段壓縮(也稱為段清理或垃圾收集)來回收,它將段中的所有有效數據轉移到其他段,使段變得干凈。壓實會調用大量的復制操作,特別是當文件系統的利用率很高時。必須進行主機端GC,以換取使用無GC的ZNS SSD,盡管可以避免log-on-log下的重復GC。主機端GC的開銷比設備端GC的開銷要高,因為主機級塊復制需要處理IO請求,主機到設備的數據傳輸,以及讀取數據的頁面分配。此外,段壓縮需要修改文件系統元數據以反映數據的重新定位。此外,段壓縮的數據復制操作是批量進行的,因此,許多待寫請求的平均等待時間是相當長的。根據F2FS--廣泛使用的日志結構文件系統之一的實驗,當文件系統利用率為90%時,分段壓縮的性能損失約為20%。因此,可以說目前的ZNS只關注SSD方面的好處,而沒有考慮到主機的復雜性增加。為了簡化SSD的設計,所有復雜的東西都被傳遞給主機。

此外,當我們通過嵌入更多的閃存芯片來增加SSD的帶寬時,ZNS存儲系統將涉及收益遞減。ZNS設備的區域大小將被確定為足夠大,以利用SSD內部閃存芯片的并行性。因此,更高帶寬的ZNS SSD將提供更大的區域大小,而文件系統必須相應地使用更大的段大小。然后,主機遭受到更嚴重的段壓縮開銷,因為開銷通常與段大小成比例增加。為了提高IO性能,克服收益遞減的問題,需要進行主機-設備聯合設計,將段壓縮的每個子任務放在最合適的位置,而不損害原始ZNS的利益,而不是簡單地將GC開銷從SSD轉移到主機。

?03 方法

?為了降低主機端做垃圾回收所帶來的開銷,本文提出三種方法通過協同垃圾回收優化來降低開銷。

1.基于內部區域壓實(IZC)的垃圾回收

傳統的段壓實過程如圖1(a)所示,待回收區域中所有的有效數據都需要讀取到主機端,再寫到目標區域中。這個過程需要大量的讀寫以及元數據更新操作,會占用主機端的資源帶來性能的下降。相比于傳統的段壓實,基于IZC的垃圾回收通過將未修改的有效數據的復制交付給SSD,并且利用SSD的copyback操作進行內部的數據復制,從而降低主機端的資源占用,優化系統性能。圖1(b)是IZC方案下的壓實過程,過程如下:普通段壓實的數據拷貝任務被拷貝卸載(3)所取代,它發送zone_compaction命令來傳輸塊拷貝信息(即源和目標LBA)。因為目標數據沒有被加載到主機頁面緩存中,所以不需要相應的頁面緩存分配。固態硬盤內部控制器可以有效地安排幾個讀和寫操作,同時最大限度地提高閃存芯片的利用率。因此,段壓實的延遲可以大大減少。此外,存儲內的塊復制可以利用copyback操作。更為具體的執行流程建議閱讀原文相關部分。

62ad58f8-16d9-11ee-962d-dac502259ad0.jpg ?

圖1段壓實過程對比圖

2.稀疏的順序重寫,對F2FS的Threaded Logging提供支持

為了消除傳統段壓實的開銷,F2FS提出的Threaded Logging機制為段壓實提供了全新的思路。由于ZNSSSD不支持隨機寫的功能,所以F2FS都是關閉Threaded Logging機制。本文提出了影子映射的方式,使得ZNSSSD對Threaded Logging提供支持,從而優化段壓實的開銷。通過TL_open命令打開的zone會分配一個影子zone,并通過映射表來記錄對應關系,同時維護一個bitmap記錄有效信息。例如,在圖2中,SSD為zone1(1)分配了一個LogFBG,FBG 15。對于TL_opened區,該區的數據塊被分配到兩個FBG中,即原始FBG(FBG6)和LogFBG(FBG 15)。因此,這兩個FBG必須作為該區的映射FBG來維護。為了處理一個讀取請求,SSD通過比較目標LBA和WP來識別最新數據的塊位置。如果目標LBA在WP后面(目標LBA < WP),則訪問LogFBG。否則,原始FBG將被訪問,以滿足讀取請求。當TL_opened區最終被關閉時,LogFBG取代了原來的FBG,它被重新分配以備將來使用。

62c20064-16d9-11ee-962d-dac502259ad0.jpg ?

圖2Threaded Logging支持示意圖

考慮插入順序,有兩種模式:

以LBA為順序插入:如圖2,當SSD收到對第0塊的兩個寫請求時,它從FBG 6讀取A和B的跳過的塊,將它們與主機發送的P和Q的塊合并,并在LogFBG處寫下一個完整的塊。在處理完對第0塊的寫請求后,SSD可以通過檢查該區的有效位圖來感知第1塊將被跳過。為了讓WP提前準備好對第2塊的寫請求,被跳過的那塊必須被復制到LogFBG中。因此,在處理一個寫請求后,如果以下邏輯塊在有效位圖中被標記為有效,ZNS+ SSD在調整WP的同時將它們復制到LogFBG。這種類型的插入被稱為LBA有序插入(LP),每次插入都是在區的當前WP進行,以遵循LBA有序的寫入約束。

以PPA為順序插入:在圖2的例子中,在0號和2號的寫入請求到達之前,3號可以被復制,因為它們使用不同的閃存芯片。如果第1塊已經被復制,即使第2塊和第4塊的寫請求還沒有到達,第5塊也可以被復制。我們稱這種技術為PPA有序插入(PP),它只考慮PPA有序的寫約束。每當一個閃存頁在LogFBG被編程時,PPA-ordered plugging就會檢查對應的閃存塊中映射到下面閃存頁的塊的有效性,并提前發出該閃存塊的所有可能的插入操作。然而,如果發出過多的插入操作,可能會干擾用戶的IO請求處理。為了解決這個問題,當目標閃存芯片處于空閑狀態時,插入操作將在后臺進行處理。如果沒有足夠的空閑時間,當該區的WP必須通過跳過的區塊位置時,它們就會被處理。

3.混合段回收策略

通過上述的兩個策略,目前有兩種垃圾回收的方式。為了權衡在垃圾回收時選取哪種方式,本文提出了兩種垃圾回收策略的cost-benefit計算公式,在垃圾回收時總是選取開銷最小的垃圾回收方式。Npre-inv和Nvalid分別表示pre-invalid塊的數量和有效塊的數量。fplugging(N)是N個區塊的存儲內插入成本。Nnode和Nmeta分別表示修改后的節點塊和元數據塊的數量。fcopy(N)和fwrite(N)分別是N塊的復制成本和寫入成本。Bcold表示預測的未來冷塊遷移的收益。公式中部分值很難計算或者無法計算,本文對這些值采取近似估計。

62d6ce72-16d9-11ee-962d-dac502259ad0.jpg ? 62e20166-16d9-11ee-962d-dac502259ad0.jpg ?

圖3cost-benefit權衡公式

?04 實驗結果

?評估實驗是基于FEMU的SSD仿真器評估了ZNS+ SSD的性能。相關延遲配置如下:

62f1bc1e-16d9-11ee-962d-dac502259ad0.jpg ?

表1實驗平臺設置

?實驗性能對比包含三個方面,分別為段壓實、Threaded Logging和SSD內部芯片利用率。

?段壓實性能:該實驗主要基于IZC的垃圾回收策略效果進行評估。通過將copy操作卸載到SSD內部,并且利用copyback操作,優化垃圾回收過程,降低垃圾回收開銷。實驗結果驗證了IZC策略可以很好的降低垃圾回收開銷。

630e507c-16d9-11ee-962d-dac502259ad0.jpg ?

圖4段壓實實驗結果

Threaded Logging性能:該實驗主要對支持Threaded Logging后垃圾回收的性能評估。ZNS+在所有基準上都優于ZNS和IZC。ZNS+的吞吐量比ZNS高約1.33-2.91倍。與IZC相比,ZNS+將varmail工作負載的節點和元數據寫入流量減少了約48%。在所有的工作負載中,超過85.8%的回收段是由ZNS+的線程記錄處理的,因為定期檢查點方案限制了預無效塊的數量。

6340324a-16d9-11ee-962d-dac502259ad0.jpg ?

圖5支持Threaded Logging實驗結果

SSD內部芯片利用率:該實驗主要對SSD內部芯片利用率進行評估。在所有的工作負載中,IZC和ZNS+的芯片利用率都比ZNS高。ZNS+(LP)可以利用兩個連續的寫請求之間的空閑時間,而ZNS+(PP)可以通過利用空閑的閃存芯片,將插入操作與正常的寫請求處理重疊起來。因此,與ZNS+(PP)相比,ZNS+(LP)顯示出更高的芯片利用率。

634842fa-16d9-11ee-962d-dac502259ad0.jpg ?

圖6ZNSSSDvsStream SSD性能對比實驗結果

05總結

目前的ZNS接口在主機上施加了很高的存儲回收開銷,以簡化SSD。為了優化整體的IO性能,必須將每個存儲管理任務放在最合適的位置,并使主機和SSD合作。為了將塊復制操作卸載到SSD上,本文設計了ZNS+,它支持存儲區內的壓實和Threaded Logging。與傳統的段壓實相比,在性能和SSD內部芯片利用率有很大的改進。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 接口
    +關注

    關注

    33

    文章

    8496

    瀏覽量

    150834
  • 數據傳輸
    +關注

    關注

    9

    文章

    1836

    瀏覽量

    64475
  • 帶寬
    +關注

    關注

    3

    文章

    907

    瀏覽量

    40845

原文標題:如何優化ZNS下的垃圾回收?

文章出處:【微信號:SSDFans,微信公眾號:SSDFans】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    固態硬盤垃圾回收方法

    由于NAND閃存的固有限制,寫前擦除和擦除粒度較大,基于NAND Flash的固態硬盤(SSD)需要執行垃圾回收以重用失效頁。然而垃圾回收帶來的高開銷會顯著降低SSD的性能,也會直接影
    發表于 12-03 10:50 ?2次下載
    固態硬盤<b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>方法

    基于邏輯區間熱度的垃圾回收算法

    針對現有的NAND閃存垃圾回收算法中回收性能不高,磨損均衡效果差,并且算法內存開銷大的問題,提出了一種基于邏輯區間熱度的垃圾回收算法。該算法
    發表于 12-05 18:27 ?0次下載
    基于邏輯區間熱度的<b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>算法

    電子垃圾回收產業的隱秘世界

    如今的電腦和手機等電子設備換代頻繁、淘汰迅速,因此電子垃圾回收利用也成了一個在全球蓬勃發展的產業。
    發表于 01-22 19:20 ?1.1w次閱讀

    Jvm垃圾回收機制及性能調優實戰

    JVM中自動檢測并移除不再使用的數據對象的這種機制稱為:垃圾回收,簡稱GC。JVM通過使用垃圾收集器及使用相應的垃圾回收算法將內存中不再被使
    發表于 04-03 14:31 ?2次下載

    交大發布可回收垃圾分揀機器人,實現助力全國垃圾分類回收工作

    6月4日消息,交大中英國際低碳學院可回收垃圾分揀機器人,更是打破國外技術壟斷,可實現每小時分揀垃圾5400次,并在大量垃圾中精準識別可回收
    的頭像 發表于 06-04 14:31 ?2949次閱讀

    智能垃圾回收機器人的應用優勢是什么

    為什么需要垃圾回收機器人? 首先,垃圾分類回收是實現地球資源循環利用至關重要的一環,對于可持續發展有重大意義。垃圾分類也是對付
    發表于 07-22 09:26 ?2041次閱讀

    智能垃圾回收機器人的應用優勢有哪些

    為什么需要垃圾回收機器人? 首先,垃圾分類回收是實現地球資源循環利用至關重要的一環,對于可持續發展有重大意義。垃圾分類也是對付
    發表于 08-17 16:08 ?4205次閱讀

    生活垃圾數據化分類回收方法及其回收系統(機械部分)

    一種生活垃圾數據化分類回收方法及其回收系統(機械部分)(1).doc 上傳完成 刪除 標題一種生活垃圾數據化分類回收方法及其
    發表于 11-05 18:18 ?0次下載

    詳解JVM的垃圾回收算法和垃圾回收

    JVM 垃圾回收機制是對堆中沒有使用的對象進行回收,那么判斷對象是否“存活”就至關重要。在判斷對象是否“存活”的方法中,我們會介紹引用計數算法和可達性分析法。
    的頭像 發表于 03-29 13:55 ?1474次閱讀
    詳解JVM的<b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>算法和<b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>器

    Kubernetes容器垃圾回收的策略

    Kubernetes的垃圾回收由kubelet進行管理,每分鐘會查詢清理一次容器,每五分鐘查詢清理一次鏡像。在kubelet剛啟動時并不會立即進行GC,即第一次進行容器回收為kubelet啟動一分鐘后,第一次進行鏡像
    的頭像 發表于 08-15 09:16 ?1480次閱讀

    JVM入門之垃圾回收算法

    根據如何判定對象是垃圾垃圾回收算法分為兩類:1、 「引用計數式垃圾收集」 (判定垃圾是通過引用計數器)別名:直接
    的頭像 發表于 02-10 11:40 ?777次閱讀
    JVM入門之<b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>算法

    使用圖像識別來識別可回收和不可回收垃圾

    電子發燒友網站提供《使用圖像識別來識別可回收和不可回收垃圾.zip》資料免費下載
    發表于 06-20 09:17 ?0次下載
    使用圖像識別來識別可<b class='flag-5'>回收</b>和不可<b class='flag-5'>回收</b>的<b class='flag-5'>垃圾</b>

    智能垃圾回收箱及其控制系統

    智能高效遠程控制智能垃圾回收箱本文設計了基于機械傳動、嵌入式系統和物聯網技術的智能垃圾回收箱及控制系統,包括結構、硬件和軟件設計,以及基于機智云后臺服務器的操作系統,實現了用戶信息識
    的頭像 發表于 04-13 08:10 ?1105次閱讀
    智能<b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>箱及其控制系統

    智能垃圾回收箱控制系統硬件設計

    智能高效遠程控制智能垃圾回收箱控制系統硬件部分的選型與設計是整個產品的基礎,所有功能的實現都要圍繞其進行開發。本章對智能垃圾回收箱控制系統的硬件進行詳細設計。智能
    的頭像 發表于 04-13 08:10 ?779次閱讀
    智能<b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>箱控制系統硬件設計

    智能垃圾回收箱功能實驗

    需要系統地介紹智能垃圾回收箱軟件硬件設計完成后的設備運行狀況,包括正常工作和問題調試。同時,也要描述當所有設備正常工作時智能垃圾回收箱的操作流程。01硬件模塊的試驗在智能
    的頭像 發表于 05-24 08:10 ?414次閱讀
    智能<b class='flag-5'>垃圾</b><b class='flag-5'>回收</b>箱功能實驗