Unioning of the Buffer Cache and Journaling Layers

Journaling technology
buffer cache

buffer cache:高速缓冲存储器,在linux读写文件的时候,它用于缓存物理磁盘上的磁盘块,从而加快对磁盘上数据的访问。在linux下,为了更有效地使用物理内存,操作系统自动使用所有空闲内存作为buffer cache使用,当程序需要更多内存时,操作系统会自动减小cache的大小。1
每个缓冲区都有一个缓冲区头部来唯一标识与描述该缓冲区。linux通过buffer_head来定义缓冲区头部。

问题: 日志技术被广泛使用在现代文件系统中,因为它能提供 高的可靠性(一致性)和快速恢复的功能 。但是 日志技术会影响buffer cache的性能优势 ,因为在真实系统环境中,日志写占存储写的一大部分,这样日志写占用了buffer cache的一大部分空间。
解决方案: 文章提出了一种新颖的buffer cache的架构,用非易失的存储做buffer cache,整合buffer cahce和日志的功能。特别是,我们的buffer cache支持 inplace 提交策略 (非易失存储是按字节寻址的,同时它是永久性的,日志写就不用再刷回磁盘中)。新技术既保证了日志技术的一致性,同时不影响buffer cache提供的性能优势,使得一致性和性能得到了双重保证。 !!!! 问题:日志是要经常写的,放在新介质上,它的写寿命怎么解决?2.NVM本身是比DRAM 更慢的,它不用将日志刷回磁盘的那部分性能提升跟NVM做buffer cache,缓存速度的下降导致的性能降级,是不是要考虑下哪个更高?
实验评估: 我们在linux2.3.8上实施我们的策略,测量在不同文件IO bechmark下的吞吐率和策略的执行时间。结果表明,我们的策略与现有linux 上ext4文件系统的buffer cache相比,平均提升76%的IO性能,最高提升240%,。 同时该策略没有可靠性的损失

1.Introduction
    现阶段,非易失存储新介质并不适合完全替代DRAM,由于cost的问题。非易失存储介质是可以作为DRAM的扩展容量的。随着非易失存储被期望能够提供跟DRAM有竞争力的性能,同时保持它的非易失特性,利用非易失存储的双特性,已经成为研究热点。本文一样利用这些新型介质的非易失特性,整合buffer cache 和日志层。将buffer cache和日志层结合在一起,本文是第一个这么实践的。(to the best of our knowledge,that our work is the first to propose such a union)
  单纯使用非易失的存储介质作为buffer cache,看起来似乎足够提供一个高可靠性的文件系统。然而,可靠性的要求是两个方面的:持久性和一致性。非易失的buffer cache能满足持久性的要求,但是无法保证一致性。比如,当一个写既要求元数据又要求数据修改的时候,系统在只更新发生完元数据之后发生crash,就会导致buffer cache中的数据不一致,最终导致文件系统状态不一致。 (问题:1.如果用NVM作为buffer cache,即使断电了,数据也不会丢失,那样不记录日志,只记录最新刷回磁盘的块,当发生crash之后,从上次刷回的位置继续刷回去,是不是就可以解决一致性问题?)
    之前与这相关的研究一样试图采用非易失存储介质去降低journaling的开销。 他们将NVM作为单纯的日志区域。它是与buffer cache分离开来的,我们结合了日志和buffer cache,因此最小化额外的内存拷贝和空间开销。

2.analysis of storage write traffic
    现实情况就是,journaling 写确实会对buffer cache影响到buffer cache的性能优势。图2展示了在不同负载情况下,buffer cache刷回到storage,有journaling和没有journaling情况下写 traffic的数量变化。有日志的情况比没有日志的情况,写数量高了2.7倍。在没有日志情况下,cache写到storage,只有在脏块需要被替换,或者强制sync操作。在有日志的情况下,造成写storage的情况多了两种: 1. 日志被写回到storage   2.检查点。检查点阶段性被触发,当日志区域的free空间低于阈值的时候就会被激活,然后写更新的数据到永久文件系统存储位置中。
    正如我们所见,对所有负载而言,日志写占了大量storage写,因此, 它很可能是性能降级的源头。我们的UBJ策略在实施了journaling的同时,消除了大量的storage writes。


   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值