Linux中的dax特性

在Linux中由于块设备一般属于低速设备,访问成本很高,为了减少访问块设备的次数内核一般会将访问磁盘的内容缓存起来,等下次访问时直接从内存中获得结果,这大大提高了系统的性能。所以说缓存是个好东西。

但是随着技术进步,一些类似于内存的块设备出现了,主要的有Intel的nvdimm设备,它是一种既可以当磁盘又可以当内存使用的存储设备,它的名字是非易失性内存,速度可以比肩内存,而又不会掉电丢数据。如果这种设备来当块设备使用,缓存就会变得多余,本来访问nvdimm就很快何必要缓存呢,这时候缓存就是累赘。可以说成也缓存败也缓存。

这时候dax(direct access)就出来帮忙了,既然缓存无用那就绕过缓存直达块设备,这会提高访问效率,这就是dax存在的意义。

除了像类内存的块设备,对于虚拟机内部dax也有很多用武之地。对于某些虚拟机和主机共享文件的情况比如新进kernel的virtio-fs,因为访问共享文件就会在虚机内部和主机上产生两份缓存,于是dax又可以大显身手,在虚机内部使用dax,不适用缓存,这样其实访问的文件内容就会由主机缓存提供,少了一层缓存的复制。

对于传统的mmap映射的页面都会有相应的page结构,但是对于dax设备,mmap一般是没有page结构的,对于那些跟随传统mmap的某些需要page结构的操作使用dax后就需要小心了,很可能会出现意想不到的bug。

 

参考:

https://www.kernel.org/doc/Documentation/filesystems/dax.txt

https://virtio-fs.gitlab.io/design.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值