Použil jsem bcache
pouze v konfiguraci pro zápis a IIRC i tehdy bcache
vůbec se mu nelíbí, když zařízení mezipaměti zmizí, když je počítač spuštěn. Očekávejte bcache
zařízení se úplně zastaví, pokud k tomu dojde.
Nepokoušel jsem se odstranit zařízení mezipaměti, když je počítač vypnutý, takže k tomu nemohu nic říct. Myslím si však, že bcache
je stále dost citlivá, takže bych vám doporučil, abyste to nejprve zkusili na virtuálním počítači nebo na fyzickém testovacím stroji.
Chcete-li bezpečně odebrat zařízení mezipaměti, můžete odpojit sadu mezipaměti od zařízení bcache:
echo <cache-set-uuid> > /sys/block/bcache0/bcache/detach
Chcete-li zjistit potřebné UUID sady mezipaměti, podívejte se do /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
Takže například v tomto případě spusťte:
echo eb99feda-fac7-43dc-b89d-18765e9febb6 > /sys/block/bcache0/bcache/detach
state
soubor by měl říkat no cache
poté:
host ~ # cat /sys/block/bcache0/bcache/state
no cache
Předpokládejme, že jste úspěšně nastavili bcache, již na ní pracujete, vložte do ní spoustu důležitých dat příliš velkých na to, abyste je mohli jednoduše zálohovat, a začněte znovu, když jste si uvědomili, že je lepší vyměnit mezipaměť. Takto to můžete udělat. Toto řešení je založeno na zkušebních VM.
Řekněme, že mluvíme o zařízení /dev/bcache0
, nové zařízení mezipaměti je /dev/sdf1
a podpůrné zařízení je /dev/md1
. Všechny příkazy provádí root.
- Ujistěte se, že toto zařízení bcache0 nic nepoužívá.
- Proveďte v libovolném pořadí
- Odstraňte zařízení mezipaměti, jak napsal Martin von Wittich, ozvěnou setUUID do
/sys/block/bcache0/bcache/detach
. Pokud chcete znovu rozdělit mezipaměťové zařízení, musíte restartovat, protože bcache stále zamyká oddíly, pokud jej nezrušíte. - formát – nová mezipaměť zařízení s
make-bcache -C /dev/sdf1
a poznamenejte si setUUID tohoto zařízení.
- Odstraňte zařízení mezipaměti, jak napsal Martin von Wittich, ozvěnou setUUID do
-
Zaregistrujte naše podpůrné zařízení s novou sadou mezipaměti:
echo [setUUID of new cache device] >/sys/block/bcache0/bcache/attach
Není třeba restartovat.
One-liner:
echo $(ls -d /sys/fs/bcache/*-*-* | cut -f5 -d/) > /sys/block/bcache0/bcache/detach
Poté počkejte, dokud se mezipaměť nevymaže:
while true; do if [[ $(cat /sys/block/bcache0/bcache/state) != "dirty" ]];
then echo "DONE"; break;
else cat /sys/block/bcache0/bcache/dirty_data; sleep 30; fi; done