Eu usei bcache
apenas em uma configuração de gravação, e o IIRC ainda bcache
não gosta se o dispositivo de cache desaparecer enquanto a máquina estiver em execução. Espere que o bcache
dispositivo pare completamente se isso acontecer.
Não tentei remover o dispositivo de cache enquanto a máquina estiver desligada, por isso não posso dizer nada sobre isso. Eu acho que, embora isso bcache
ainda seja bastante delicado, recomendo que você tente isso primeiro com uma VM ou uma máquina de teste físico.
Para remover com segurança o dispositivo de cache, você pode desanexar o conjunto de cache do dispositivo bcache:
echo <cache-set-uuid> > /sys/block/bcache0/bcache/detach
Para determinar o UUID do conjunto de cache necessário, consulte /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
Então, por exemplo, neste caso, execute:
echo eb99feda-fac7-43dc-b89d-18765e9febb6 > /sys/block/bcache0/bcache/detach
O state
arquivo deve dizer no cache
depois disso:
host ~ # cat /sys/block/bcache0/bcache/state
no cache
Suponha que você configurou com êxito um bcache, você já está trabalhando nele, coloque muitos dados importantes grandes demais para simplesmente fazer backup e reiniciar, quando você perceber, que é melhor substituir o dispositivo de cache. É assim que você pode fazer. Esta solução é baseada em avaliações de VM.
Digamos que estamos falando sobre o dispositivo
/dev/bcache0
, o novo dispositivo de cache/dev/sdf1
e o dispositivo de suporte/dev/md1
. Todos os comandos feitos pelo root./sys/block/bcache0/bcache/detach
. Se você deseja reparticionar o dispositivo de armazenamento em cache, é necessário reiniciar, porque o bcache ainda bloqueia as partições, a menos que você o cancele o registro.make-bcache -C /dev/sdf1
e anote o setUUID desse dispositivo.Registre nosso dispositivo de suporte com o novo conjunto de cache:
echo [setUUID of new cache device] >/sys/block/bcache0/bcache/attach
Não há necessidade de reiniciar.
fonte
Uma linha:
Aguarde até que o cache seja limpo:
fonte