Answers:
我bcache
仅在直写配置中使用,即使bcache
计算机运行时高速缓存设备消失,IIRC 也不喜欢。bcache
如果发生这种情况,期望设备完全停止。
在计算机关闭电源时,我没有尝试删除缓存设备,因此我对此一无所知。我确实认为这bcache
仍然很棘手,所以我建议您首先使用VM或物理测试机进行尝试。
为了安全地删除缓存设备,可以将缓存集与bcache设备分离:
echo <cache-set-uuid> > /sys/block/bcache0/bcache/detach
要确定必要的缓存集UUID,请查看/sys/fs/bcache/
:
host ~ # ll /sys/fs/bcache/
total 0
drwxr-xr-x 7 root root 0 Feb 19 00:11 eb99feda-fac7-43dc-b89d-18765e9febb6
--w------- 1 root root 4096 Feb 19 00:11 register
--w------- 1 root root 4096 Feb 7 07:17 register_quiet
因此,例如在这种情况下,运行:
echo eb99feda-fac7-43dc-b89d-18765e9febb6 > /sys/block/bcache0/bcache/detach
该state
文件应该说no cache
:
host ~ # cat /sys/block/bcache0/bcache/state
no cache
假设您已经成功设置了一个bcache,您已经在对其进行处理,那么将许多重要数据放置得太大而无法简单地备份并重新开始,那么当您意识到最好更换缓存设备时。这就是您可以做到的。该解决方案基于VM试用。
可以说我们正在谈论该设备/dev/bcache0
,新的缓存设备是/dev/sdf1
,后备设备是/dev/md1
。所有命令均由root执行。
/sys/block/bcache0/bcache/detach
。如果要重新分区缓存设备,则需要重新启动,因为bcache仍会锁定分区,除非您取消注册。make-bcache -C /dev/sdf1
并记下该设备的setUUID。使用新的缓存集注册我们的后备设备:
echo [setUUID of new cache device] >/sys/block/bcache0/bcache/attach
无需重启。