0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用于闪存的多核加速文件系统调研实验及分析

SSDFans 来源:SSDFans 2023-06-19 09:37 次阅读

1. 背景

随着固态硬盘带宽的快速增长,其访问延迟在不断缩小,在CPU核数的不断增长下,我们希望文件系统可以配合这种核数的扩展尽量释放SSD的全速带宽,但是在过去的实践中,传统文件系统只对于传统的HDD等设备具有更好的多核扩展性支持,通过在NVMe SSD上的实验发现,当核数扩展时文件系统的性能表现较差。

2. 调研实验及分析

1) 实验设置

在每个核上运行一个进程,并按照从1到72的规模扩展CPU核数,每个进程运行60秒,并执行创建文件、写操作、同步操作、删除文件等操作内容。在此过程中测试XFS、ext4、SpanFS、F2FS和模拟理想文件系统对于不同类型设备的吞吐量数据。

2) 实验结果

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

实验结果显示,现存文件系统对于NVMe SSD的多核扩展性支持相对较差,而对于传统的HDD和SATA SSD的扩展性具有接近于理想条件下的支持。同时最右边的图表显示,在72核的规模之下,大部分文件系统无法高效利用NVMe SSD的高速带宽。

3) 原因分析

i. 并发控制层的锁缓存争用

对于文件系统中支持并发访问的共享锁,由于锁的计数值需要在各核之间共享,那么就会引入计数器的缓存一致性问题,因此当核数增加时这种维护开销就会更加明显;

ii. 内存数据结构层的顺序化

LFS将内存数据结构分为三个区域:inode表、inode区域和data区域,对于每个区域,F2FS都会用一个radix树的结构进行管理,并且在每一棵树上用读写锁来进行并发控制。随着并发写者数量的增加,访问这三种树时会造成严重的顺序化,进而造成性能的下滑。

iii. 空间分配层的数据化

虽然F2FS采用了多头日志的形式并行化IO请求,但是由于各个温度的数据间的内部依赖,实际的数据持久化请求会被序列化(例如为了保证F2FS的冲突一致性,数据块持久化必须先于inode的持久化,同时文件inode的持久化必须在目录数据块更新之前)。因此,这种多头日志的设计对于扩展IO吞吐量没有很明显的优势。

3. 设计

为了充分利用多核架构和现代NVMe SSD的高带宽特性,我们设计了Max-针对闪存的多核加速文件系统,与F2FS的架构对比图如下:

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

根据实验分析的三个层面的问题,分别给出解决方案:

1) 设置每内核读者信号量,读访问可以并发进行,每个内核维护一个读者计数,各个内核的计数值互不相关,避免了在内核间维护缓存一致性的开销。当有一个写请求出现时,各个内核不再处理新的读请求,把当前正在进行的读请求处理完成后再处理写者的写访问。利用CPU调度器来高效检查每内核计数值,不必引入额外开销。

2) 将内存数据结构的索引划分为多个文件单元,每个文件单元包含单个文件的 inode 表项、inode 页和数据页,利用多棵树的索引实现并行化。

3) 将每种类型的日志区域切分为更小粒度的日志,每个小日志负责自己空间的分配,各小日志之间的空间分配互不干扰。

4. 实验效果

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

实验结果显示,MAX在数据访问和元数据访问带宽都实现了较好的多核可扩展性,与原始的F2FS等文件系统相比具有良好的优化效果。




审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19399

    浏览量

    230727
  • SSD
    SSD
    +关注

    关注

    21

    文章

    2882

    浏览量

    117673
  • 调度器
    +关注

    关注

    0

    文章

    98

    浏览量

    5269

原文标题:用于闪存的多核加速文件系统

文章出处:【微信号:SSDFans,微信公众号:SSDFans】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Linux网络文件系统的注册与挂载过程分析

    本文主要对Linux网络文件系统的注册与挂载过程进行分析
    发表于 10-13 16:28 1083次阅读
    Linux网络<b class='flag-5'>文件系统</b>的注册与挂载过程<b class='flag-5'>分析</b>

    串行闪存和MPFS/FAT文件系统不会挂载该怎么办?

    串行闪存任务驱动器中添加一些状态来擦除整个芯片,然后根据MHC选择写入正确的MBR部分。这样做吗?这似乎是最通用的方法,特别是因为用于串行闪存驱动器的文件系统注册是在硬件实例基本上完成
    发表于 08-08 11:09

    Linux文件系统课程

    本章学习目标理解什么是文件系统了解文件系统工作原理理解Fedora Core Linux文件系统的结构掌握Fedora Core Linux文件系统的类型、权限和修改方法掌握如何安装、
    发表于 04-10 17:07 0次下载

    基于μC/OS-II的文件系统设计

    本文提出了基于μC/OS-II 的一个文件系统的设计与实现方法。通过分析文件系统中的 层次结构和功能模块,给出了文件系统的详细设计方案,包括
    发表于 06-17 10:48 10次下载

    NTFS文件系统,NTFS文件系统是什么意思

    NTFS文件系统,NTFS文件系统是什么意思 NTFS是Windows NT以及之后的Windows 2000、Windows XP、Windows Server 2003、Windows Server 2008
    发表于 03-29 10:38 5993次阅读

    XfS文件系统,XfS文件系统是什么意思

    XfS文件系统,XfS文件系统是什么意思 XfS文件系统是SGI开发的高级日志文件系统,XFS极具伸缩性,非常健壮。所幸的是SGI将其移植到了Lin
    发表于 03-29 10:39 4271次阅读

    基于NAND闪存文件系统YAFFS在嵌入式系统中的应用

      目前,针对NOR Flash设计的文件系统JFFS/JFFS2在嵌入式系统中已得到广泛的应用;随着NAND作为大容量存储介质的普及,基于NAND闪存文件系统YAFFS(Yet A
    发表于 09-01 10:10 1249次阅读
    基于NAND<b class='flag-5'>闪存</b>的<b class='flag-5'>文件系统</b>YAFFS在嵌入式<b class='flag-5'>系统</b>中的应用

    28335实用版SD卡文件系统实验

    tms320f28335实用版SD卡文件系统实验
    发表于 06-22 15:01 0次下载

    基于闪存YAFFS文件系统的索引机制的改进_李纪扣

    基于闪存YAFFS文件系统的索引机制的改进_李纪扣
    发表于 03-16 09:33 0次下载

    实验五 基于busybox的根文件系统制作实验-2016

    基于busybox的根文件系统制作实验-2016
    发表于 09-15 08:52 10次下载

    文件系统是什么?浅谈EXT文件系统历史

    在先前关于Linux文件系统的文章中,我很想去深入地讨论更多EXT文件系统的特性的信息。所以,首先让我们来回答这个问题:什么是文件系统?一个文件系统应该遵循以下特点。
    发表于 06-28 09:03 5727次阅读
    <b class='flag-5'>文件系统</b>是什么?浅谈EXT<b class='flag-5'>文件系统</b>历史

    FATFS文件系统详解

    一、文件系统负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。即在磁盘上组织文件
    发表于 11-29 09:51 29次下载
    FATFS<b class='flag-5'>文件系统</b>详解

    Esp8266闪存文件系统LIttleFS

    Esp8266闪存文件系统LIttleFS
    发表于 12-06 17:21 18次下载
    Esp8266<b class='flag-5'>闪存</b><b class='flag-5'>文件系统</b>LIttleFS

    用于Linux的最佳通用文件系统 Linux文件系统的安装

    为您的计算机选择正确的文件系统可能是一个困难的过程。您可能会想知道:为什么文件系统很重要?有没有适用于安装 Linux 的特定文件系统? 事实证明,有两种
    发表于 08-03 10:22 356次阅读
    适<b class='flag-5'>用于</b>Linux的最佳通用<b class='flag-5'>文件系统</b> Linux<b class='flag-5'>文件系统</b>的安装

    Linux的文件系统特点

    Linux的文件系统特点 文件系统要有严格的组织形式,使得文件能够以块为单位进行存储。 文件系统中也要有索引区,用来方便查找一个文件分成的多
    的头像 发表于 11-09 14:48 1238次阅读
    Linux的<b class='flag-5'>文件系统</b>特点