GNU/Linux >> Linux Esercitazione >  >> Linux

Come rimuovo il dispositivo cache da bcache?

Ho usato bcache solo in una configurazione write-through, e IIRC anche allora bcache non gli piace affatto se il dispositivo cache svanisce mentre la macchina è in esecuzione. Aspettati il ​​bcache dispositivo per bloccarsi completamente se ciò accade.

Non ho provato a rimuovere il dispositivo cache mentre la macchina è spenta, quindi non posso dire nulla al riguardo. Penso però che bcache è ancora piuttosto permaloso, quindi ti consiglio di provarlo prima con una VM o una macchina di prova fisica.

Per rimuovere in modo sicuro il dispositivo cache, puoi scollegare il set di cache dal dispositivo bcache:

echo <cache-set-uuid> > /sys/block/bcache0/bcache/detach

Per determinare l'UUID del set di cache necessario, guarda in /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

Quindi, ad esempio, in questo caso, esegui:

echo eb99feda-fac7-43dc-b89d-18765e9febb6 > /sys/block/bcache0/bcache/detach

Il state il file dovrebbe contenere no cache dopodiché:

host ~ # cat /sys/block/bcache0/bcache/state
no cache

Supponiamo che tu abbia configurato con successo una bcache, ci stai già lavorando, metti lì molti dati importanti troppo grandi per un semplice backup e ricomincia da capo, quando ti sei reso conto che faresti meglio a sostituire il dispositivo di memorizzazione nella cache. Ecco come puoi farlo. Questa soluzione si basa su prove di VM.

Diciamo che stiamo parlando del dispositivo /dev/bcache0 , il nuovo dispositivo cache è /dev/sdf1 e il dispositivo di supporto è /dev/md1 . Tutti i comandi eseguiti da root.

  1. Assicurati che il dispositivo bcache0 non sia in uso.
  2. Fai in qualsiasi ordine
    1. Rimuovi il dispositivo cache proprio come ha scritto Martin von Wittich, echeggiando setUUID in /sys/block/bcache0/bcache/detach . Se si desidera ripartizionare il dispositivo di memorizzazione nella cache, è necessario riavviare, perché bcache continua a bloccare le partizioni a meno che non venga annullata la registrazione.
    2. format- nuovo dispositivo cache con make-bcache -C /dev/sdf1 e prendi nota del setUUID di quel dispositivo.
  3. Registra il nostro dispositivo di supporto con il nuovo set di cache:

    echo [setUUID of new cache device] >/sys/block/bcache0/bcache/attach

Non è necessario riavviare.


Una riga:

echo $(ls -d /sys/fs/bcache/*-*-* | cut -f5 -d/) > /sys/block/bcache0/bcache/detach

Quindi attendi fino a quando la cache non viene cancellata:

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

Linux
  1. Come rimuovere la Bom da un file Utf-8?

  2. Come rimuovere il dispositivo multipath dopo aver annullato la mappatura della LUN di archiviazione dal server

  3. Come disinstallare aria2 da Ubuntu

  4. Come rimuovo i file dal cestino su Ubuntu?

  5. come rimuovere le virgolette doppie in un csv

Come rimuovere Unity Desktop da Ubuntu 17.10

Come rimuovere l'icona del cestino dal desktop di Ubuntu

Rimuovi directory in Linux - Come eliminare una cartella dalla riga di comando

Come rimuovere un comando dalla cronologia in Linux

Come rimuovere (^M) caratteri da un file in Linux

Come rimuovere Swap Space da Centos 7.x?