搜索了下, 发现必须把原有机械硬盘和 ssd 重新格式化为 bcache 格式的 data 和 cache 才行, 再在 bcache 格式的块设备上建立 btrfs 文件系统.
如果直接在机械硬盘上建立 btrfs 文件系统, 利用 btrfs add/replace 工具, 支持新增/替换硬盘, 加上 bcache 后有几个问题:
-
如果要新增, 替换硬盘, 是不是只要把 btrfs add/replace 的命令对象从 /dev/sda 这种机械硬盘块设备换成 /dev/bcache0 就可以了.
-
如果 bcache 使用读缓存模式, 在某天 ssd 坏了后, 是不是取消
echo f0e01318-f4fd-4fab-abbb-d76d870503ec > /sys/block/bcache0/bcache/attach这个绑定缓存的命令, 就能让 bcache 下的 btrfs 机械硬盘继续工作(换句话说, bcache data 是否支持无缓存工作)? -
更换 ssd 后, 是不是重新绑定又能再次启用读缓存? 是否需要修复什么旧数据?
-
如果部分机械硬盘用 bcache 建立 data, 部分还是直接裸盘, 这种混合的 btrfs raid 有没有什么风险?
-
bcache 读缓存模式加速机械硬盘收益如何, 有没有别的坑会导致数据损坏或丢失, 提高了修复难度, 反而得不偿失?
bcache 参考链接: https://wiki.archlinux.org/title/Bcache