Roc*_*mat 5 arch-linux ssd lvm bcache
我有一个 LVM,我想使用 bcache 来缓存它的一个 LV。(是的,我知道我可以使用 lvmcache,但是我在启动时遇到了问题,我放弃了使用它。)
首先,我使用块将 LV 转换为 bcache 支持设备(这似乎确实有效!):
blocks to-bcache /dev/my_vg/my_lv
Run Code Online (Sandbox Code Playgroud)
我在我的 SSD 上创建了一个缓存设备:
make-bcache --block 4k --bucket 2M -C /dev/sdc4
Run Code Online (Sandbox Code Playgroud)
然后我尝试将缓存附加到后备设备:
bcache-super-show /dev/sdc4 | grep cset.uuid
echo 'above_uuid' > /sys/block/bcache0/bcache/attach
Run Code Online (Sandbox Code Playgroud)
然后我重新启动了我的机器(在添加/dev/bcache0到 之后/etc/fstab)并意识到缓存没有运行。
# cat /sys/block/bcache0/bcache/state
no cache
# bcache-super-show /dev/my_vg/my_lv | grep cache_state
dev.data.cache_state 0 [detached]
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?我需要使用另一个命令来启用缓存吗?
为什么 bcache 不喜欢我的缓存设备并且不让我将它附加到我的后备设备?我是否对--blockand使用了错误的值--bucket?
我设法通过在 上重新创建超级块来解决此问题/dev/sdc4。看起来 --block 4k --bucket 2M不正确,这就是缓存设备未连接的原因。
我清除了超级块,然后运行:
make-bcache -C /dev/sdc4
Run Code Online (Sandbox Code Playgroud)
现在当我这样做时:
echo 'uuid' > /sys/block/bcache0/bcache/attach
Run Code Online (Sandbox Code Playgroud)
有效!