p2Cache: Exploring Tiered Memory for In-Kernel File Systems Caching——论文泛读

ATC 2023 Paper 分布式元数据论文汇总

问题

快速、字节寻址的持久性内存(PM)正在产品中变得越来越现实。然而,使传统的内核文件系统完全支持PM需要大量的工作,面临着在块级访问粒度和字节寻址之间转换的挑战。此外,新的针对PM的文件系统仍然远未达到生产的水平,难以广泛使用。

挑战

随着存储设备变得更快,分层存储堆栈的开销变得更加显著。例如,软件开销在低延迟(3us)NVMe SSD上贡献了50%的读取延迟[45]。随着存储设备变得更快、更接近CPU,软件开销变得更加占主导地位。英特尔的Optane持久内存[10]位于内存总线上,读取延迟低至~170 ns[44]。

本文方法

我们提出了P2CACHE,一种新颖的内核缓存机制,探讨了在快速、字节寻址的PM面前,传统的内核文件系统如何有效演变。

  • 在PM和DRAM的分层内存系统上利用读/写可区分的内存层次结构。利用PM为所有写请求提供即时的数据耐久性和强大的崩溃一致性,使用DRAM为大多数读I/O提供高I/O性能。

  • 引入了一个位于VFS层下方的持久缓存。使用PM来快速同步地持久化/缓冲文件系统的元数据/数据更新,确保即时的数据耐久性和强大的崩溃一致性。然后,缓冲的操作通过现有的I/O接口异步应用于底层的内核文件系统,确保与内核文件系统的兼容性。持久缓存建立在一个轻量级的操作日志之上,该日志捕获来自VFS的文件系统更新,并将它们记录在一个预写式日志中。利用PM的字节寻址能力,将复制操作与写操作解耦来高效地持久化元数据/数据更新,在写操作被同步记录的同时异步执行数据复制。

  • 进一步优化了页面缓存,通过更快但易失性的DRAM为大多数读操作提供服务。利用了设备级并行性让两个缓存协同高效地工作,即持久缓存和页面缓存。我们观察到将数据同时写入PM和DRAM的I/O延迟几乎与仅将数据写入PM的延迟相同,因为对DRAM的(额外)复制的延迟被并行但较慢的PM写隐藏起来。因此我们采用了一个简单而有效的包容式缓存模型,相同数据的多个副本存储在分层内存中,而最顶层(即DRAM)始终包含最新版本。包容式缓存模型简化了两个缓存之间的同步:对于写操作,更新两个缓存;对于读操作,从页面缓存、持久缓存和底层文件系统中顺序搜索,直到首次找到数据。

开源代码:GitHub - YesZhen/P2CACHE

我们的评估表明,P2CACHE可以显著提高传统内核文件系统的性能,例如,在Ext4上对RocksDB的提高达到了200倍,同时为它们提供即时的数据耐久性和强大的崩溃一致性,类似于专为PM设计的文件系统。

实验

实验环境:两个12核Intel Xeon Gold 5317处理器(3.0 GHz,18M Cache)的ASUS RS700-E10-RS12U服务器,每个处理器具有2个NUMA节点,每个节点具有256 GB DRAM。启用turbo boost时禁用了超线程。为每个NUMA节点安装了四个128 GB(总计512 GB)的Intel Optane 200系列持久内存和一个2 TB的Samsung PM883 SSD。

数据集:microbenchmark,Filebench[6],db_bench[1],MinIO[14]

实验对比:每秒操作数(Mops),IOPS

总结

优化利用PM的文件系统,传统方法需要对原始文件系统进行大量修改以支持PM使用,作者提出利用PM和DRAM构建缓存机制,不修改现有文件系统的同时利用PM的优势:高I/O性能、高I/O并发性、即时数据持久性和强一致性。提出在VFS下引入持久缓存,使用PM快速同步持久/缓充文件系统元数据/数据更新,随后异步应用于底层文件系统;利用DRAM和PM构建页面缓存,将数据写入PM的同时更新DRAM,读操作时利用DRAM缓存加速查找。

  • 22
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙BOOK言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值