Dans un système de fichiers Btrfs multi-périphériques ou RAID Btrfs, selon la configuration du système de fichiers, il peut y avoir plusieurs copies des blocs de données/métadonnées stockées dans différents emplacements des périphériques de stockage ajoutés au système de fichiers Btrfs. Lorsque l'outil de nettoyage Btrfs trouve un bloc de données/métadonnées corrompu, il recherche tous les périphériques de stockage ajoutés au système de fichiers Btrfs pour des copies en double de ce bloc de données/métadonnées. Une fois qu'une copie en double de ce bloc de données/métadonnées est trouvée, le bloc de données/métadonnées corrompu est écrasé par le bloc de données/métadonnées correct. C'est ainsi que l'outil de nettoyage Btrfs répare les blocs de données/métadonnées corrompus dans un système de fichiers Btrfs multi-périphériques ou Btrfs RAID.
Dans cet article, je vais vous montrer comment utiliser l'outil de nettoyage Btrfs pour rechercher et réparer les blocs de données/métadonnées corrompus dans un système de fichiers Btrfs multi-périphériques ou Btrfs RAID. Alors, commençons.
Abréviations
RAID - Matrice redondante de disques peu coûteux/indépendants
FR - Gigaoctet
Conditions préalables
Pour suivre cet article, vous devez disposer d'un système de fichiers Btrfs multi-périphériques fonctionnel ou d'un RAID Btrfs.
J'ai créé un RAID Btrfs dans RAID-1 configuration (monté sur le /Les données répertoire) à l'aide de 4 périphériques de stockage sdb, sdc, sdd, et sde, comme vous pouvez le voir dans la capture d'écran ci-dessous. J'utiliserai ce RAID Btrfs pour la démonstration de gommage Btrfs dans cet article.
$ sudo btrfs utilisation du système de fichiers / données
Si vous avez besoin d'aide pour installer le système de fichiers Btrfs sur Ubuntu, consultez mon article Installer et utiliser Btrfs sur Ubuntu 20.04 LTS.
Si vous avez besoin d'aide pour installer le système de fichiers Btrfs sur Fedora, consultez mon article Installer et utiliser Btrfs sur Fedora 33.
Si vous avez besoin d'aide pour créer un RAID Btrfs, consultez mon article Comment configurer Btrfs RAID.
Génération de fichiers factices sur le système de fichiers Btrfs
Pour vous montrer comment fonctionne l'outil de nettoyage Btrfs, nous devons générer des fichiers aléatoires pour remplir le système de fichiers Btrfs. Créons un script shell qui fait exactement cela.
Créer un nouveau script shell fichiers gen.sh dans le /usr/local/bin/ répertoire comme suit :
$ sudo nano /usr/local/bin/genfiles.sh
Tapez les lignes de codes suivantes dans le fichiers gen.sh script shell.
#!/bin/bashbien que vrai
fais
FILENAME=$(uuidgen)
echo "[Création] $FILENAME"
dd if=/dev/random of=$FILENAME bs=1M count=256 status=progress
echo "[Créé] $FILENAME"
Fini
Une fois que vous avez terminé, appuyez sur
le fichiers gen.sh le script shell exécute un infini tandis que boucle.
bien que vraifais
# autres codes
Fini
La ligne suivante génère un UUID en utilisant le uuidgen commande et stocke l'UUID dans le NOM DE FICHIER variable.
La ligne suivante imprime un message sur la console avant le fichier NOM DE FICHIER est généré.
La ligne suivante génère un nouveau fichier aléatoire NOM DE FICHIER en utilisant le jj commander. Le fichier sera 256 Mo en taille.
La ligne suivante imprime un message sur la console après le fichier NOM DE FICHIER est généré.
Ajouter l'autorisation d'exécution au fichiers gen.sh script shell comme suit :
s
le fichiers gen.sh le script shell devrait maintenant être accessible comme toutes les autres commandes.
$ quels genfiles.sh
Générons des fichiers aléatoires dans le Btrfs RAID monté dans le /Les données annuaire.
Naviguez vers le /Les données répertoire où le Btrfs RAID est monté comme suit :
$ cd /données
Comme vous pouvez le voir, il n'y a aucun fichier disponible dans mon Btrfs RAID pour le moment.
$ ls -lh
Pour générer des fichiers aléatoires dans le répertoire de travail courant (/Les données dans ce cas), exécutez le fichiers gen.sh script shell comme suit :
$ sudo genfiles.sh
le fichiers gen.sh le script shell devrait commencer à générer des fichiers aléatoires dans le /Les données annuaire.
le fichiers gen.sh le script génère des fichiers aléatoires. Laissez le script s'exécuter pendant quelques minutes pour qu'il remplisse environ 2-3 Go d'espace disque du RAID Btrfs.
Lorsque vous voulez arrêter le fichiers gen.sh script shell, appuyez sur
Comme vous pouvez le voir, certains fichiers aléatoires sont générés dans le RAID Btrfs.
$ ls -lh
J'ai généré environ 13 Go de fichiers aléatoires dans le RAID Btrfs monté dans le /Les données répertoire, comme vous pouvez le voir dans la capture d'écran ci-dessous.
$ sudo du -sh /données
Utilisation de l'outil de nettoyage Btrfs
Dans cette section, je vais vous montrer comment utiliser l'outil de gommage Btrfs. Commençons.
Vous pouvez démarrer le processus de nettoyage sur le système de fichiers Btrfs monté sur le /Les données répertoire avec la commande suivante :
$ sudo btrfs scrub start /data
Un processus de nettoyage Btrfs doit être lancé sur le système de fichiers Btrfs monté sur le /Les données annuaire.
Vous pouvez voir l'état du processus de nettoyage Btrfs en cours d'exécution sur le système de fichiers Btrfs monté sur le /Les données répertoire comme suit :
$ sudo btrfs scrub status /data
Comme vous pouvez le voir, le processus de nettoyage Btrfs est toujours fonctionnement.
Le nettoyage d'un système de fichiers Btrfs ou d'un RAID Btrfs contenant beaucoup de fichiers prendra beaucoup de temps.
Une fois le processus de nettoyage Btrfs terminé, le statut doit être modifié en fini, comme vous pouvez le voir dans la capture d'écran ci-dessous.
$ sudo btrfs scrub status /data
Vous pouvez également voir l'état de nettoyage Btrfs pour chacun des périphériques de stockage ajoutés au système de fichiers Btrfs (monté dans le /Les données répertoire) séparément comme suit :
$ sudo btrfs scrub status -d /data
Je vous ai dit que le processus de nettoyage Btrfs prend beaucoup de temps sur un gros système de fichiers Btrfs. Un grand avantage de l'outil de nettoyage Btrfs est que son processus peut être interrompu et repris à tout moment.
Voyons comment mettre en pause et reprendre un processus de nettoyage Btrfs.
Tout d'abord, démarrez un nouveau processus de nettoyage Btrfs sur le système de fichiers Btrfs monté dans le répertoire /data comme suit :
$ sudo btrfs scrub start /data
Pour annuler ou suspendre le processus de nettoyage Btrfs en cours d'exécution sur le système de fichiers Btrfs monté sur le /Les données répertoire, exécutez la commande suivante :
$ sudo btrfs scrub annuler /données
Le processus de nettoyage Btrfs en cours doit être annulé ou suspendu.
Comme vous pouvez le voir, le statut de scrub de Btrfs est avorté. Ainsi, le processus de nettoyage Btrfs ne s'exécute plus.
$ sudo btrfs scrub status /data
Pour reprendre le processus de nettoyage Btrfs que vous avez annulé ou suspendu, exécutez la commande suivante :
$ sudo btrfs scrub CV/data
Le processus de nettoyage Btrfs doit être repris.
Comme vous pouvez le voir, le statut de scrub de Btrfs est maintenant fonctionnement. Ainsi, le processus de nettoyage Btrfs est repris.
$ sudo btrfs scrub status /data
Une fois le processus de nettoyage Btrfs terminé, l'état de nettoyage Btrfs doit être modifié en fini.
$ sudo btrfs scrub status /data
Conclusion
Dans cet article, je vous ai montré comment utiliser l'outil de nettoyage Btrfs pour rechercher et réparer les blocs de données/métadonnées corrompus d'un système de fichiers multi-périphériques Btrfs ou RAID. Je vous ai montré comment annuler/mettre en pause et reprendre un processus de nettoyage Btrfs une fois qu'il a également démarré.