最初由Kent Overstreet开发,现在由Coly Li积极维护,被合并到内核主线中(Linux 3.0以上的内核中)。Bcache不使用设备映射器,它是一个单独的虚拟设备,由三个设备组成:
- 后端设备:慢速缓存的设备,通常容量大,但性能相对一般;
- 缓存设备:SSD、高速NVMe等高性能设备;
- bcache设备:最终为应用程序提供使用的虚拟设备盘
bcache部署
- 安装bcache内核包和tools包
天翼云bcache将bcache模块编译为rpm包,使用rpm可直接安装,并添加版本号,便于版本追踪和问题定位;
- 查看版本号与大包版本号一致
Bcache使用
- 创建Bcache前端磁盘
- 创建Bcache后端磁盘
- 关联缓存盘和后端盘
一块缓存盘关联一块后端盘
此时可以看到bcache和nvme有关系
- 查看bcache盘状态
- no cache:该backing device没有attach任何caching device
- clean:一切正常,缓存是干净的
- dirty:一切正常,已启用回写,缓存是脏的
- inconsistent:遇到问题,后台设备与缓存设备不同步
- active:表示前端缓存盘正常
- 查看bcache缓存策略
Bcache支持三种缓存策略,分别是:writeback、writethrough、writearoud,天翼云默认使用writeback。
- writeback 回写策略:回写策略默认是关闭的,如果开启此策略,则所有的数据将先写入缓存盘,然后等待系统将数据回写入后端数据盘中。
- writethrough 写通策略:默认的就是写通策略,此模式下,数据将会同时写入缓存盘和后端数据盘。
- writearoud :选择此策略,数据将直接写入后端磁盘。