Linux/Ubuntu/Debian使用bcache开启SSD缓存加速
Linux/Ubuntu/Debian使用bcache开启SSD缓存加速

前言
随着磁盘小文件的增多,机械硬盘4K读写速度非常容易遇到瓶颈,考虑到固态硬盘高昂的价格,所以采用固态硬盘作为缓存盘,机械硬盘作为数据盘的方案,使用固态硬盘给机械硬盘加速。
bcache简介
bcache 是一个 Linux 内核块层超速缓存。它允许使用一个或多个高速磁盘驱动器(例如 SSD)作为一个或多个速度低得多的硬盘的超速缓存。bcache 支持直写和写回,不受所用文件系统的约束。
主要功能:
1,可以使用单个超速缓存设备来超速缓存任意数量的后备设备。在运行时可以挂接和分离已装入及使用中的后备设备。
2,在非正常关机后恢复 - 只有在超速缓存与后备设备一致后才完成写入。
3,SSD 拥塞时限制传至 SSD 的流量。
4,高效的写回实施方案。脏数据始终按排序顺序写出。
5,稳定可靠,可在生产环境中使用。
以下教程使用debian演示。
内核开启bcache
安装bcache-tools
绑定SSD和HDD
bcache有两种设备,一个是backing,一个是cache,backing指的就是存放数据的后端磁盘,cache很好理解,就是高速缓存盘SSD。
查看系统中存在的硬盘
清除磁盘的块信息
添加数据盘
添加缓存盘
查看块信息
查看缓存盘的UUID
最后一行的cset.uuid的值就是我们要找的uuid,然后进行attach操作完成添加缓存磁盘:
绑定缓存盘
如提示错误以下,可以尝试重启后继续操作
查看缓存状态
no cache:该backing device没有attach任何caching device
clean:一切正常,缓存是干净的
dirty:一切正常,已启用回写,缓存是脏的
inconsistent:遇到问题,后台设备与缓存设备不同步
更改缓存策略
Bcache有三种缓存策略
(1)writeback回写策略:数据先写入到缓存磁盘,再等待系统将缓存磁盘数据刷到后端磁盘
(2)writethrough写通策略:数据会同时写入缓存磁盘和数据磁盘(默认是该模式)
(3)writearound直达策略:数据直接写入后端磁盘。
为保证性能,改为writeback回写策略。
查看缓存模式
改为回写策略
格式化数据盘
挂载数据盘
临时挂载
开机自动挂载
查看设备UUID
添加到/etc/fstab
重启后验证是否正常挂载。
测试缓存性能
安装测试工具fio
读取测试
无缓存时数据盘
加了缓存的数据盘
写入测试
无缓存时数据盘
加了缓存的数据盘
测试结果
读取IOPS | 读取速度 | 写入IOPS | 写入速度 | |
---|---|---|---|---|
无缓存数据盘 | 9342 | 38.3MB/s | 209 | 859kB/s |
带缓存的数据盘 | 13.1k | 53.7MB/s | 84.1k | 344MB/s |
虽然有提升,但是离预期相差较大,可能跟策略有关,后续再研究优化。