flashcache功能分析

http://www.alidba.net/index.php/archives/tag/flash-cache

一、跳过顺序IO

DM层request送往flashcache,并将读写请求按照目标设备的blocksize进行划分,切割成blocksize大小的bio(或者更小,如果从上层传来的bio已经比blocksize小的话)。

flashcache默认blocksize为4K,因此即使是4G的大文件,到flashcache也会被切割成1million个blocksize大小的请求,flashcache没办法容易的就判断它是顺序IO还是随机IO。你可以通过比较块号知道,但是我不知道dm层是否保证请求会按序到达。

这是flashcache的一个劣势。还有另外一个,我们应该知道,在我们使用RAID层时,挂载/dev/mapper/*而不是/dev/[ms]d*。

而现在,flashcache已经能够跳过顺序IO,这个功能默认是关闭。如果要将判定是否顺序的阈值设为256K,可以通过:

sysctl dev.flashcache.<device>.skip_seq_thresh_kb=256

它在wb\wa\wt三种模式下均可以正常工作,那些想要摒弃“慢速”的SSD顺序写(相比较于磁盘顺序I,如RAID等),或者缓存较小的用户,可以从中获益。

 

二、”用户接口“

用户操作接口是映射之后的虚拟设备,即/dev/mapper/*下面的设备,如cachedev,而不是基设备

 

三、flashcache不支持32位平台

 

四、write around,应用在读负载很大,随机读,但同时伴随有大量的顺序写的情况,如HBASE

 

五、块清理的两种策略

       1)当cache set内的脏块数超过阈值,默认20%,脏块被写回磁盘

        2)2-handed时钟算法,写回在最近15分钟没有被访问过的脏块

        当然,都是可配置的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值