Lazy loaded image
给系统盘重新分区做bcache的缓存设备
字数 1693阅读时长 5 分钟
2025-4-2
2025-7-9
type
status
date
slug
summary
tags
category
icon
password
💡做bcache的缓存设备和后端设备数据都会被抹除
bcache是一种在linux上的缓存技术。和常见缓存技术一样,需要一个缓存设备(通常为SSD),和一个后端设备(通常为HDD)。
而在大部分服务器中,经常是一个ssd的系统盘和一个hdd的数据盘。没有额外的ssd来做缓存。这时就会考虑是否可以把系统盘的一部分来作为cache。正好bcache允许整个disk(磁盘)、一个part(分区)或者其他任何的block设备作为缓存或者后端设备。
这里就是把ssd系统盘的一个part作为缓存设备。hdd磁盘做后端设备
 
这里主要就2步:第一步,通过救援系统,给系统盘重新分区。第二步,建立bcache
 
下面是举例的系统基本情况,vda为ssd系统盘,vdb为hdd数据盘。目标是分配40g ssd做缓存

一、系统盘重新分区

1、进入救援系统

为什么要进入救援系统?因为给系统盘重新分区,需要把系统盘分区取消挂载。肯定不能在原系统上操作,救援系统就是通过外部的Linux系统启动服务器,正好可以重新分区
不管使用的是那个服务器,厂商基本都配备了救援系统,进入救援系统并连接

2、系统盘重新分区

进入救援系统后,会有另一个磁盘做系统盘引导,会导致原系统磁盘序号不对应,所有磁盘名字会向后一位。如原vda在这里是vdb,原vdb在这里是vdc

1.检查并缩小文件系统

下面开始输入命令
检查文件系统,如果有报错就选择fix修复
缩小文件系统到 30G

2.修改分区表

对vdb重新分区

会进入如下界面
下面操作都是在fdisk中的
这就对系统盘重新分区了
确保文件系统与新分区大小匹配,这一步一定不要忘记

下面就是退出救援模式,进入正常系统

2、建立bcache

此时系统分区应该如下
下面就是对bcache的操作了

1.安装bcache

内核开启 Bcache 这里是两个命令
安装 bcache-tools

2.建立缓存设备

建立缓存设备的分区
完成分区
此时应该多了一个分区vda2

3.正式建立bcache

建立缓存盘,会输出如下参数,保存其中的Set UUID

建立后端设备,同样会输出一些参数,忽略即可

如果上面的Set UUID忘记保存,可以通过这个命令获取

双引号间就是上面的Set UUID
查看缓存模式,默认输出应该如下
[writethrough] writeback writearound none
改变缓存策略,bcache有3种缓存策略。默认是数据会同时写入缓存磁盘和数据磁盘,其实这种情况下缓存不可控,不如直接全先写入缓存
3种缓存具体如下
  • writeback 回写策略:数据先写入到缓存磁盘,再等待系统将缓存磁盘数据刷到后端磁盘
  • writethrough 写通策略:数据会同时写入缓存磁盘和数据磁盘(默认是该模式)
  • writearound 直达策略:数据直接写入后端磁盘。
允许缓存顺序I/O(非常重要)
查看缓存状态
  • no cache: 这代表你还没有绑定缓存设备到你的后端设备上
  • clean: 这代表一切正常,缓存是clean的
  • dirty: 这代表一切正常,缓存模式被设置成了writeback,缓存是dirty的
  • inconsistent: 这代表问题很大,后端设备与缓存设备没有同步

4.格式化和挂载bcache

格式化混合盘
建立挂载点
挂载
这时分区如图所示

这种挂载在重启后就会失效,所以要写进配置文件
然后点击i进入编辑模式,然后将最下方输入挂载配置。按esc退出编辑模式。输入:wq回车保存退出
notion image
如果使用的FinalShell之类的ssh软件,可以直接在文件区域修改
notion image

参考文献

[1] ArchWiki. Bcache[EB/OL]. 2024-12-21. Available: https://wiki.archlinux.org/title/Bcache.
[2] Arch Linux CN Wiki. Bcache[EB/OL]. 2024-12-18. Available: https://wiki.archlinuxcn.org/wiki/Bcache.
[3] CatCat. Hetzner服务器上使用Bcache优化HDD性能[EB/OL]. 2024-06-07. Available: https://catcat.blog/hetzner-bcache-hdd.html.
[4] EvilPiePirate. Bcache: A Linux block cache[EB/OL]. 2018-03-23. Available: https://bcache.evilpiepirate.org/.
💡
有关安装或者使用上的问题,欢迎您在底部评论区留言,一起交流~
上一篇
PVE8.3简单设置
下一篇
hetzner简单开机配置(含合并Volume)