Btrfs

Come usare Btrfs Scrub?

Come usare Btrfs Scrub?
Il filesystem Btrfs è un filesystem multi-dispositivo che ha il supporto integrato per RAID. In un filesystem Btrfs multi-dispositivo o RAID, i blocchi di dati/metadati possono essere archiviati in uno o più dispositivi di archiviazione. Lo strumento scrub Btrfs leggerà tutti i blocchi di dati/metadati da tutti i dispositivi di archiviazione aggiunti a un filesystem Btrfs o RAID e troverà tutti i blocchi di dati/metadati danneggiati. Una volta trovati i blocchi di dati/metadati corrotti, lo strumento di pulizia Btrfs riparerà automaticamente quei blocchi di dati/metadati corrotti, se possibile.

In un filesystem Btrfs multi-dispositivo o RAID Btrfs, a seconda della configurazione del filesystem, potrebbero esserci più copie dei blocchi di dati/metadati archiviati in posizioni diverse dei dispositivi di archiviazione aggiunti al filesystem Btrfs. Quando lo strumento scrub Btrfs trova un blocco di dati/metadati danneggiato, cerca in tutti i dispositivi di archiviazione aggiunti al filesystem Btrfs copie duplicate di quel blocco di dati/metadati. Una volta trovata una copia duplicata di quel blocco di dati/metadati, il blocco di dati/metadati danneggiato viene sovrascritto con il blocco di dati/metadati corretto. Ecco come lo strumento di pulizia Btrfs ripara i blocchi di dati/metadati danneggiati in un filesystem Btrfs multi-dispositivo o Btrfs RAID.

In questo articolo, ti mostrerò come utilizzare lo strumento di scrubbing Btrfs per trovare e riparare blocchi di dati/metadati danneggiati in un filesystem Btrfs multi-dispositivo o RAID Btrfs. Quindi iniziamo.

Abbreviazioni

RAID - Array ridondante di dischi economici/indipendenti
GB - Gigabyte

Prerequisiti

Per seguire questo articolo, è necessario disporre di un filesystem Btrfs multi-dispositivo funzionante o di un RAID Btrfs.

Ho creato un RAID Btrfs in RAID-1 configurazione (montata sul /dati directory) utilizzando 4 dispositivi di archiviazione sdb, sdc, sdd, e sde, come puoi vedere nello screenshot qui sotto. Userò questo RAID Btrfs per la dimostrazione di scrub Btrfs in questo articolo.

$ sudo btrfs utilizzo del filesystem /data

Se hai bisogno di assistenza per l'installazione del filesystem Btrfs su Ubuntu, controlla il mio articolo Installa e usa Btrfs su Ubuntu 20.04 LTS.

Se hai bisogno di assistenza sull'installazione del filesystem Btrfs su Fedora, controlla il mio articolo Installa e usa Btrfs su Fedora 33.

Se hai bisogno di assistenza nella creazione di un RAID Btrfs, controlla il mio articolo Come configurare Btrfs RAID.

Generazione di file fittizi sul filesystem Btrfs

Per mostrarti come funziona lo strumento scrub Btrfs, abbiamo bisogno di generare alcuni file casuali per riempire il filesystem Btrfs. Creiamo uno script di shell che faccia proprio questo.

Crea un nuovo script di shell genfiles.sh nel /usr/locale/bin/ directory come segue:

$ sudo nano /usr/local/bin/genfiles.sh

Digita le seguenti righe di codici nel genfiles.sh script di shell.

#!/bin/bash
mentre vero
fare
FILENAME=$(uuidgen)
echo "[Creazione] $NOMEFILE"
dd if=/dev/random of=$FILENAME bs=1M count=256 status=progress
echo "[Creato] $FILENAME"
fatto

Quando hai finito, premi + X seguito da e per salvare il genfiles.sh script di shell.

Il genfiles.sh lo script della shell esegue un infinito mentre ciclo continuo.

mentre vero
fare
# altri codici
fatto

La riga seguente genera un UUID utilizzando il uuidgen comando e memorizza l'UUID nel NOME DEL FILE variabile.

La riga seguente stampa un messaggio sulla console prima del file NOME DEL FILE è generato.

La riga seguente genera un nuovo file casuale NOME DEL FILE usando il dd comando. Il file sarà 256 MB in misura.

La riga seguente stampa un messaggio sulla console dopo il file NOME DEL FILE è generato.

Aggiungi il permesso di esecuzione al to genfiles.sh script di shell come segue:

S

Il genfiles.sh lo script della shell dovrebbe ora essere accessibile come qualsiasi altro comando.

$ che genfiles.sh

Generiamo alcuni file casuali nel RAID Btrfs montato nel /dati directory.

Vai a /dati directory in cui è montato il RAID Btrfs come segue:

$ cd /dati

Come puoi vedere, al momento non ci sono file disponibili nel mio RAID Btrfs.

$ ls -lh

Per generare alcuni file casuali nella directory di lavoro corrente (/dati directory in questo caso), eseguire il genfiles.sh script di shell come segue:

$ sudo genfiles.sh

Il genfiles.sh lo script della shell dovrebbe iniziare a generare file casuali nel /dati directory.

Il genfiles.sh lo script sta generando file casuali. Lascia che lo script venga eseguito per un paio di minuti, in modo che riempia circa 2-3 GB di spazio su disco del RAID Btrfs.

Quando vuoi fermare il genfiles.sh script di shell, premere + C.

Come puoi vedere, alcuni file casuali vengono generati nel RAID Btrfs.

$ ls -lh

Ho generato circa 13 GB di file casuali nel RAID Btrfs montato nel /dati directory, come puoi vedere nello screenshot qui sotto.

$ sudo du -sh /data

Lavorare con lo strumento Scrub Btrfs

In questa sezione, ti mostrerò come utilizzare lo strumento scrub Btrfs. Iniziamo.

Puoi avviare il processo di scrubbing sul filesystem Btrfs montato su /dati directory con il seguente comando:

$ sudo btrfs scrub start /data

Un processo di pulizia Btrfs dovrebbe essere avviato sul filesystem Btrfs montato sul /dati directory.

Puoi vedere lo stato del processo di scrubbing Btrfs in esecuzione sul filesystem Btrfs montato sul /dati directory come segue:

$ sudo btrfs scrub status /data

Come puoi vedere, il processo di scrub Btrfs è ancora in esecuzione.

Lo scrubbing di un filesystem Btrfs o di un RAID Btrfs che contiene molti file richiederà molto tempo per il completamento.

Una volta completato il processo di pulizia di Btrfs, lo stato dovrebbe essere cambiato in finito, come puoi vedere nello screenshot qui sotto.

$ sudo btrfs scrub status /data

Puoi anche vedere lo stato di scrub di Btrfs per ciascuno dei dispositivi di archiviazione aggiunti al filesystem Btrfs (montato nel /dati directory) separatamente come segue:

$ sudo btrfs scrub status -d /data

Ti ho detto che il processo di scrubbing Btrfs richiede molto tempo per essere completato su un grande filesystem Btrfs. Un grande vantaggio dello strumento scrub Btrfs è che il suo processo può essere messo in pausa e ripreso in qualsiasi momento.

Vediamo come mettere in pausa e riprendere un processo di scrub Btrfs.

Innanzitutto, avvia un nuovo processo di scrubbing Btrfs sul filesystem Btrfs montato nella directory /data come segue:

$ sudo btrfs scrub start /data

Per annullare o mettere in pausa il processo di scrubbing Btrfs attualmente in esecuzione sul filesystem Btrfs montato sul /dati directory, eseguire il seguente comando:

$ sudo btrfs scrub cancel /data

Il processo di pulizia Btrfs in esecuzione dovrebbe essere annullato o messo in pausa.

Come puoi vedere, lo stato di scrub di Btrfs è abortito. Quindi, il processo di pulizia di Btrfs non è più in esecuzione.

$ sudo btrfs scrub status /data

Per riprendere il processo di pulizia Btrfs che hai annullato o messo in pausa, esegui il seguente comando:

$ sudo btrfs scrub resume /data

Il processo di pulizia di Btrfs dovrebbe essere ripreso.

Come puoi vedere, lo stato di scrub di Btrfs è ora in esecuzione. Quindi, il processo di scrub Btrfs è ripreso.

$ sudo btrfs scrub status /data

Dopo che il processo di scrubbing Btrfs è completo, lo stato di scrub Btrfs dovrebbe essere cambiato in finito.

$ sudo btrfs scrub status /data

Conclusione

In questo articolo, ti ho mostrato come lavorare con lo strumento scrub Btrfs per trovare e riparare blocchi di dati/metadati corrotti di un filesystem multi-dispositivo Btrfs o RAID. Ti ho mostrato come annullare/mettere in pausa e riprendere anche un processo di scrubbing Btrfs una volta avviato.

I 10 migliori giochi da giocare su Ubuntu
La piattaforma Windows è stata una delle piattaforme dominanti per i giochi a causa dell'enorme percentuale di giochi che si stanno sviluppando oggi p...
I 5 migliori giochi arcade per Linux
Al giorno d'oggi, i computer sono macchine serie utilizzate per i giochi. Se non riesci a ottenere il nuovo punteggio più alto, saprai cosa intendo. I...
Battaglia per Wesnoth 1.13.6 Sviluppo rilasciato
Battaglia per Wesnoth 1.13.6 rilasciato il mese scorso, è la sesta versione di sviluppo nella 1.13.x e offre una serie di miglioramenti, in particolar...