设为首页 加入收藏

TOP

Linux内核之bcache简介
2014-11-24 01:40:34 来源: 作者: 【 】 浏览:1
Tags:Linux 内核 bcache 简介

bcache是按照SSD特性来设计的,只按擦除桶大小进行分配,使用btree和日志混合方法来跟踪缓存数据,缓存数据可以是桶上的任意一个扇区。bcache最大程度上减少了随机写的代价,它按顺序填充一个桶,重新使用时只需将桶设置为无效。


bcache支持写直达和回写策略。回写默认情况下是关闭的,可以在运行时改变。bcache还在最大程度上保护你的数据,在系统异常关机时数据仍然是可靠的。因为它被设计为只有在数据完全写回存储设备才确认写成功。


回写策略能够缓存绝大多数的写请求,然后再按照索引将脏数据按次序写回到后端存储设备。


SSD的特点就是随机IO速度很快,而对于大块顺序IO的提升却并不大。bcache会检测顺序IO并忽略;还会对每一个任务记录动态的平均IO大小,当平均IO大小超过截止值时该任务后面的IO将会被忽略,这样就可以透传备份或者大文件拷贝。


在flash上发现数据IO错误时,首先会尝试读以恢复数据或者将该缓存项置为无效。对于不可恢复的错误,例如元数据或脏数据,bcache将会自动关闭缓存。如果有脏数据在缓存中,这时会首先关闭回写策略然后再等待脏数据刷回。


从这里开始


首先需要安装bcache-tools,它提供了make-bcache工具。缓存设备和后端磁盘在使用前都需要先初始化:


make-bcache -B /dev/sdb
make-bcache -C /dev/sdc


make-bcache提供了同时初始化多个设备的功能,并自动绑定缓存设备和后端磁盘:


make-bcache -B /dev/sda /dev/sdb -C /dev/sdc


bcache-tools现在已经包含了udev规则文件,bcache设备可以立即被内核感知。如果没有udev规则,需要手动注册设备:


echo /dev/sdb > /sys/fs/bcache/register
echo /dev/sdc > /sys/fs/bcache/register


注册了后端磁盘后,bcache设备会出现在/dev/目录下,现在就可以格式化然后使用了。bcache设备默认是透传模式,因此需要绑定缓存。
bcache显示如下:


/dev/bcache


还有(有udev规则文件时):


/dev/bcache/by-uuid/
/dev/bcache/by-label/


如果要开始使用:


mkfs.ext4 /dev/bcache0
mount /dev/bcache0 /mnt


bcache的sysfs控制项在/sys/block/bcache/bcache。


bcache设备是按集合来管理的,但目前一个集合只支持一个bcache设备,将来会支持多个设备、元数据和脏数据镜像。新cache设备显示为/sys/fs/bcache/


相关阅读


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux内核外部驱动模块编译报错ER.. 下一篇Linux之configfs简介和编程入门

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: