0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

用于閃存的多核加速文件系統(tǒng)調(diào)研實(shí)驗(yàn)及分析

SSDFans ? 來(lái)源:SSDFans ? 2023-06-19 09:37 ? 次閱讀

1. 背景

隨著固態(tài)硬盤(pán)帶寬的快速增長(zhǎng),其訪問(wèn)延遲在不斷縮小,在CPU核數(shù)的不斷增長(zhǎng)下,我們希望文件系統(tǒng)可以配合這種核數(shù)的擴(kuò)展盡量釋放SSD的全速帶寬,但是在過(guò)去的實(shí)踐中,傳統(tǒng)文件系統(tǒng)只對(duì)于傳統(tǒng)的HDD等設(shè)備具有更好的多核擴(kuò)展性支持,通過(guò)在NVMe SSD上的實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)核數(shù)擴(kuò)展時(shí)文件系統(tǒng)的性能表現(xiàn)較差。

2. 調(diào)研實(shí)驗(yàn)及分析

1) 實(shí)驗(yàn)設(shè)置

在每個(gè)核上運(yùn)行一個(gè)進(jìn)程,并按照從1到72的規(guī)模擴(kuò)展CPU核數(shù),每個(gè)進(jìn)程運(yùn)行60秒,并執(zhí)行創(chuàng)建文件、寫(xiě)操作、同步操作、刪除文件等操作內(nèi)容。在此過(guò)程中測(cè)試XFS、ext4、SpanFS、F2FS和模擬理想文件系統(tǒng)對(duì)于不同類(lèi)型設(shè)備的吞吐量數(shù)據(jù)。

2) 實(shí)驗(yàn)結(jié)果

16b17fa4-0e2f-11ee-962d-dac502259ad0.png

實(shí)驗(yàn)結(jié)果顯示,現(xiàn)存文件系統(tǒng)對(duì)于NVMe SSD的多核擴(kuò)展性支持相對(duì)較差,而對(duì)于傳統(tǒng)的HDD和SATA SSD的擴(kuò)展性具有接近于理想條件下的支持。同時(shí)最右邊的圖表顯示,在72核的規(guī)模之下,大部分文件系統(tǒng)無(wú)法高效利用NVMe SSD的高速帶寬。

3) 原因分析

i. 并發(fā)控制層的鎖緩存爭(zhēng)用

對(duì)于文件系統(tǒng)中支持并發(fā)訪問(wèn)的共享鎖,由于鎖的計(jì)數(shù)值需要在各核之間共享,那么就會(huì)引入計(jì)數(shù)器的緩存一致性問(wèn)題,因此當(dāng)核數(shù)增加時(shí)這種維護(hù)開(kāi)銷(xiāo)就會(huì)更加明顯;

ii. 內(nèi)存數(shù)據(jù)結(jié)構(gòu)層的順序化

LFS將內(nèi)存數(shù)據(jù)結(jié)構(gòu)分為三個(gè)區(qū)域:inode表、inode區(qū)域和data區(qū)域,對(duì)于每個(gè)區(qū)域,F(xiàn)2FS都會(huì)用一個(gè)radix樹(shù)的結(jié)構(gòu)進(jìn)行管理,并且在每一棵樹(shù)上用讀寫(xiě)鎖來(lái)進(jìn)行并發(fā)控制。隨著并發(fā)寫(xiě)者數(shù)量的增加,訪問(wèn)這三種樹(shù)時(shí)會(huì)造成嚴(yán)重的順序化,進(jìn)而造成性能的下滑。

iii. 空間分配層的數(shù)據(jù)化

雖然F2FS采用了多頭日志的形式并行化IO請(qǐng)求,但是由于各個(gè)溫度的數(shù)據(jù)間的內(nèi)部依賴,實(shí)際的數(shù)據(jù)持久化請(qǐng)求會(huì)被序列化(例如為了保證F2FS的沖突一致性,數(shù)據(jù)塊持久化必須先于inode的持久化,同時(shí)文件inode的持久化必須在目錄數(shù)據(jù)塊更新之前)。因此,這種多頭日志的設(shè)計(jì)對(duì)于擴(kuò)展IO吞吐量沒(méi)有很明顯的優(yōu)勢(shì)。

3. 設(shè)計(jì)

為了充分利用多核架構(gòu)和現(xiàn)代NVMe SSD的高帶寬特性,我們?cè)O(shè)計(jì)了Max-針對(duì)閃存的多核加速文件系統(tǒng),與F2FS的架構(gòu)對(duì)比圖如下:

16c0f128-0e2f-11ee-962d-dac502259ad0.png

根據(jù)實(shí)驗(yàn)分析的三個(gè)層面的問(wèn)題,分別給出解決方案:

1) 設(shè)置每?jī)?nèi)核讀者信號(hào)量,讀訪問(wèn)可以并發(fā)進(jìn)行,每個(gè)內(nèi)核維護(hù)一個(gè)讀者計(jì)數(shù),各個(gè)內(nèi)核的計(jì)數(shù)值互不相關(guān),避免了在內(nèi)核間維護(hù)緩存一致性的開(kāi)銷(xiāo)。當(dāng)有一個(gè)寫(xiě)請(qǐng)求出現(xiàn)時(shí),各個(gè)內(nèi)核不再處理新的讀請(qǐng)求,把當(dāng)前正在進(jìn)行的讀請(qǐng)求處理完成后再處理寫(xiě)者的寫(xiě)訪問(wèn)。利用CPU調(diào)度器來(lái)高效檢查每?jī)?nèi)核計(jì)數(shù)值,不必引入額外開(kāi)銷(xiāo)。

2) 將內(nèi)存數(shù)據(jù)結(jié)構(gòu)的索引劃分為多個(gè)文件單元,每個(gè)文件單元包含單個(gè)文件的 inode 表項(xiàng)、inode 頁(yè)和數(shù)據(jù)頁(yè),利用多棵樹(shù)的索引實(shí)現(xiàn)并行化。

3) 將每種類(lèi)型的日志區(qū)域切分為更小粒度的日志,每個(gè)小日志負(fù)責(zé)自己空間的分配,各小日志之間的空間分配互不干擾。

4. 實(shí)驗(yàn)效果

16d80c5a-0e2f-11ee-962d-dac502259ad0.png

實(shí)驗(yàn)結(jié)果顯示,MAX在數(shù)據(jù)訪問(wèn)和元數(shù)據(jù)訪問(wèn)帶寬都實(shí)現(xiàn)了較好的多核可擴(kuò)展性,與原始的F2FS等文件系統(tǒng)相比具有良好的優(yōu)化效果。




審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19376

    瀏覽量

    230441
  • SSD
    SSD
    +關(guān)注

    關(guān)注

    21

    文章

    2870

    瀏覽量

    117577
  • 調(diào)度器
    +關(guān)注

    關(guān)注

    0

    文章

    98

    瀏覽量

    5262

原文標(biāo)題:用于閃存的多核加速文件系統(tǒng)

文章出處:【微信號(hào):SSDFans,微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux網(wǎng)絡(luò)文件系統(tǒng)的注冊(cè)與掛載過(guò)程分析

    本文主要對(duì)Linux網(wǎng)絡(luò)文件系統(tǒng)的注冊(cè)與掛載過(guò)程進(jìn)行分析
    發(fā)表于 10-13 16:28 ?1076次閱讀
    Linux網(wǎng)絡(luò)<b class='flag-5'>文件系統(tǒng)</b>的注冊(cè)與掛載過(guò)程<b class='flag-5'>分析</b>

    串行閃存和MPFS/FAT文件系統(tǒng)不會(huì)掛載該怎么辦?

    串行閃存任務(wù)驅(qū)動(dòng)器中添加一些狀態(tài)來(lái)擦除整個(gè)芯片,然后根據(jù)MHC選擇寫(xiě)入正確的MBR部分。這樣做嗎?這似乎是最通用的方法,特別是因?yàn)?b class='flag-5'>用于串行閃存驅(qū)動(dòng)器的文件系統(tǒng)注冊(cè)是在硬件實(shí)例基本上完成
    發(fā)表于 08-08 11:09

    Linux文件系統(tǒng)課程

    本章學(xué)習(xí)目標(biāo)理解什么是文件系統(tǒng)了解文件系統(tǒng)工作原理理解Fedora Core Linux文件系統(tǒng)的結(jié)構(gòu)掌握Fedora Core Linux文件系統(tǒng)的類(lèi)型、權(quán)限和修改方法掌握如何安裝、
    發(fā)表于 04-10 17:07 ?0次下載

    基于μC/OS-II的文件系統(tǒng)設(shè)計(jì)

    本文提出了基于μC/OS-II 的一個(gè)文件系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)方法。通過(guò)分析文件系統(tǒng)中的 層次結(jié)構(gòu)和功能模塊,給出了文件系統(tǒng)的詳細(xì)設(shè)計(jì)方案,包括
    發(fā)表于 06-17 10:48 ?10次下載

    NTFS文件系統(tǒng),NTFS文件系統(tǒng)是什么意思

    NTFS文件系統(tǒng),NTFS文件系統(tǒng)是什么意思 NTFS是Windows NT以及之后的Windows 2000、Windows XP、Windows Server 2003、Windows Server 2008
    發(fā)表于 03-29 10:38 ?5985次閱讀

    XfS文件系統(tǒng),XfS文件系統(tǒng)是什么意思

    XfS文件系統(tǒng),XfS文件系統(tǒng)是什么意思 XfS文件系統(tǒng)是SGI開(kāi)發(fā)的高級(jí)日志文件系統(tǒng),XFS極具伸縮性,非常健壯。所幸的是SGI將其移植到了Lin
    發(fā)表于 03-29 10:39 ?4270次閱讀

    基于NAND閃存文件系統(tǒng)YAFFS在嵌入式系統(tǒng)中的應(yīng)用

      目前,針對(duì)NOR Flash設(shè)計(jì)的文件系統(tǒng)JFFS/JFFS2在嵌入式系統(tǒng)中已得到廣泛的應(yīng)用;隨著NAND作為大容量存儲(chǔ)介質(zhì)的普及,基于NAND閃存文件系統(tǒng)YAFFS(Yet A
    發(fā)表于 09-01 10:10 ?1244次閱讀
    基于NAND<b class='flag-5'>閃存</b>的<b class='flag-5'>文件系統(tǒng)</b>YAFFS在嵌入式<b class='flag-5'>系統(tǒng)</b>中的應(yīng)用

    28335實(shí)用版SD卡文件系統(tǒng)實(shí)驗(yàn)

    tms320f28335實(shí)用版SD卡文件系統(tǒng)實(shí)驗(yàn)
    發(fā)表于 06-22 15:01 ?0次下載

    基于閃存YAFFS文件系統(tǒng)的索引機(jī)制的改進(jìn)_李紀(jì)扣

    基于閃存YAFFS文件系統(tǒng)的索引機(jī)制的改進(jìn)_李紀(jì)扣
    發(fā)表于 03-16 09:33 ?0次下載

    實(shí)驗(yàn)五 基于busybox的根文件系統(tǒng)制作實(shí)驗(yàn)-2016

    基于busybox的根文件系統(tǒng)制作實(shí)驗(yàn)-2016
    發(fā)表于 09-15 08:52 ?10次下載

    文件系統(tǒng)是什么?淺談EXT文件系統(tǒng)歷史

    在先前關(guān)于Linux文件系統(tǒng)的文章中,我很想去深入地討論更多EXT文件系統(tǒng)的特性的信息。所以,首先讓我們來(lái)回答這個(gè)問(wèn)題:什么是文件系統(tǒng)?一個(gè)文件系統(tǒng)應(yīng)該遵循以下特點(diǎn)。
    發(fā)表于 06-28 09:03 ?5722次閱讀
    <b class='flag-5'>文件系統(tǒng)</b>是什么?淺談EXT<b class='flag-5'>文件系統(tǒng)</b>歷史

    FATFS文件系統(tǒng)詳解

    一、文件系統(tǒng)負(fù)責(zé)管理和存儲(chǔ)文件信息的軟件機(jī)構(gòu)稱為文件管理系統(tǒng),簡(jiǎn)稱文件系統(tǒng)。即在磁盤(pán)上組織文件
    發(fā)表于 11-29 09:51 ?29次下載
    FATFS<b class='flag-5'>文件系統(tǒng)</b>詳解

    Esp8266閃存文件系統(tǒng)LIttleFS

    Esp8266閃存文件系統(tǒng)LIttleFS
    發(fā)表于 12-06 17:21 ?17次下載
    Esp8266<b class='flag-5'>閃存</b><b class='flag-5'>文件系統(tǒng)</b>LIttleFS

    用于Linux的最佳通用文件系統(tǒng) Linux文件系統(tǒng)的安裝

    為您的計(jì)算機(jī)選擇正確的文件系統(tǒng)可能是一個(gè)困難的過(guò)程。您可能會(huì)想知道:為什么文件系統(tǒng)很重要?有沒(méi)有適用于安裝 Linux 的特定文件系統(tǒng)? 事實(shí)證明,有兩種
    發(fā)表于 08-03 10:22 ?354次閱讀
    適<b class='flag-5'>用于</b>Linux的最佳通用<b class='flag-5'>文件系統(tǒng)</b> Linux<b class='flag-5'>文件系統(tǒng)</b>的安裝

    Linux的文件系統(tǒng)特點(diǎn)

    Linux的文件系統(tǒng)特點(diǎn) 文件系統(tǒng)要有嚴(yán)格的組織形式,使得文件能夠以塊為單位進(jìn)行存儲(chǔ)。 文件系統(tǒng)中也要有索引區(qū),用來(lái)方便查找一個(gè)文件分成的多
    的頭像 發(fā)表于 11-09 14:48 ?1228次閱讀
    Linux的<b class='flag-5'>文件系統(tǒng)</b>特點(diǎn)