由Jake Edge发表于2018年5月18日原文
在2018年的Linux存储,文件系统和内存管理峰会上,Andiry Xu发布了他正试图进入上游内核的NOVA文件系统。与现有的内核文件系统不同,NOVA专门针对非易失性主内存(NVMM),而不是传统的块设备(磁盘或SSD)。实际上,它根本不使用内核的Block层,而是使用直接映射到内核地址空间的持久性内存(persistent memory)。
Xu将NOVA与支持DAX直接访问机制的ext4和XFS文件系统版本进行了比较。有了这些,只有文件系统数据(filesystem data)绕过页面缓存;元数据(metadata)仍然通过页面缓存。另外,这些文件系统对附加(append)操作的延迟要高得多。还有一个写入放大效应(write amplification effect)。所有这些都导致了日志记录的高开销,他说。
[Andiry Xu]除此之外,NVMM上的这些文件系统还存在可扩展性问题。他在高端多核硬件上进行了一些测试,将NOVA和tmpfs与ext4和XFS的DAX模式进行比较。在他的测试中,他用RAM来模拟NVMM,因为在这一时期上很难真正获得NVMM设备。一般而言,只有tmpfs和NOVA可以合理扩展 - 其他文件系统争夺各种锁和信号量 - 尽管如此,NOVA仍有改进空间,因为只有tmpfs可以合理地按比例进行测试。
Xu表示,对于DAX文件系统来说,支持大页面是很困难的。巨大的页面要求物理地址在大页面大小的边界上对齐,并且内存物理连续,但由文件系统分配的内存不一定符合这些要求。Dave Chinner表示XFS有一个inode选项来支持大页面的使用;另一位与会者表示,ext4具有类似的功能,但它只能支持2MB的大页面,而不是1GB。
Xu在2016年NOVA论文[PDF]中向与会者指出了更多信息,但简要介绍了NOVA的一些功能。它是为NVMM设计的日志结构文件系统。它具有只包含元数据更改的每个inode日志记录;该日志指出对实际数据的更改。它使用基数树(radix tree)作为块映射,并写入复制(CoW)其文件数据。
NOVA使用轻量级的日志记录方案,该日志记录方案仅记录日志条目链接列表的头部和尾部指针。这有利于快速垃圾回收,因为当条目不再有效时就从列表中删除。除非无效条目占日志的一半以上,否则不会复制,在这种情况下,会创建一个新的日志以原子地替换旧日志;元数据日志条目仅在该点复制。
他展示了一些比较DAX版本的ext4和XFS与NOVA的性能图表。通常,NOVA在他测试的大多数filebench工作负载上的性能要优于ext4或XFS。“Web服务器”工作负载例外,其中文件系统的执行大致相同。
Xu表示,第三个基于4.16-rc4的RFC 发布是在3月份完成的。这篇文章收到了一些反馈意见,所以他正在研究这些项目,并将很快发布v3。所需的更改包括64位时间戳和更好的巨大页面支持。
Chinner询问了用户空间工具,特别是NOVA是否有<tt>fsck</tt> 。在文件系统可以合并之前这是需要的,因为用户需要能够修复他们的文件系统。徐说,一直以来关注性能,所以没有<tt>fsck</tt> 。Ted Ts'o指出NOVA还需要一个可以验证文件系统映像的工具,这将允许在xfstests上运行更多的测试。
网友评论