Un NAS peut rester accessible alors que zpool status commence à signaler des erreurs de lecture ou de checksum. Avant de conclure à un disque mort, lancez un scrub sur le bon pool. Cette vérification lit les blocs du pool et contrôle leurs sommes de contrôle.
Sur un serveur qui héberge des VM, des sauvegardes ou des partages, je choisirais une fenêtre I/O calme. Un scrub mobilise les disques, et ZFS refuse d’en exécuter un en même temps qu’un resilver. L’objectif est de savoir si le pool reste sain, pas de relancer une commande pour faire disparaître une alerte.

Avant le scrub, confirmer le nom du pool
Commencez par lire l’état actuel. N’inventez pas le nom du pool à partir d’un montage ou d’un disque vu dans lsblk. La commande zpool list donne les pools importés, puis zpool status -v affiche leur état et les erreurs connues.
sudo zpool list
sudo zpool status -v tank
Remplacez tank par le nom retourné par votre machine. Dans la sortie, regardez la ligne scan, l’état général du pool et les compteurs READ, WRITE et CKSUM des vdevs. La variante -v peut aussi lister les fichiers concernés lorsque ZFS connaît leur chemin.
Un pool déjà en resilver reconstruit un disque ajouté ou remplacé. Attendez cette opération avant de demander un scrub : OpenZFS n’autorise qu’une opération de ce type à la fois. Si les disques servent une base de données ou des VM très sollicitées, reportez le contrôle plutôt que de créer une saturation I/O en pleine journée.
Lancer le scrub pendant une période calme
La commande suivante démarre un scrub normal sur tank :
sudo zpool scrub tank
Le scrub parcourt les données et vérifie les checksums. Sur un miroir, un RAIDZ ou un dRAID, ZFS peut réparer les blocs endommagés s’il dispose d’une copie valide. Un disque isolé ou une corruption sans réplique reste un incident à traiter avec une sauvegarde ou un remplacement matériel.
La commande revient presque immédiatement. C’est normal : le travail continue en arrière-plan. Si la charge devient gênante, OpenZFS permet de mettre le scrub en pause, puis de le reprendre plus tard avec la même commande.
sudo zpool scrub -p tank
sudo zpool scrub tank
Évitez zpool scrub -a pour un premier contrôle. Cette option lance, met en pause ou arrête l’opération sur tous les pools, et peut charger fortement une machine qui en héberge plusieurs.
Suivre l’avancement et lire les erreurs
Relancez zpool status pendant le scrub :
sudo zpool status tank
sudo zpool status -v tank
La ligne scan indique le début de l’opération, le volume scanné, la progression, le débit et une estimation restante. Une progression supérieure à 100 % peut apparaître sur un pool actif, car les données changent pendant la lecture.
À la fin, relisez les compteurs des disques et la liste détaillée. Un résultat propre ressemble à un scrub terminé avec 0 errors. Des erreurs réparées méritent quand même une vérification de l’historique du disque, des câbles et du contrôleur. Les messages noyau sont souvent utiles à ce stade : le guide dmesg sous Linux montre comment isoler les avertissements de stockage.
- READ ou WRITE qui augmente : contrôlez le disque, le câble et le contrôleur avant une nouvelle opération lourde.
- CKSUM qui augmente : cherchez une erreur de transfert ou de lecture, même si ZFS a réparé les blocs grâce à une copie saine.
- Fichiers listés après le scrub : restaurez-les depuis une sauvegarde vérifiée, puis remplacez le matériel en cause si les erreurs persistent.
Après une erreur permanente, sortir du simple contrôle
Un scrub valide l’intégrité observable du pool à un instant donné. Il ne remplace pas une sauvegarde hors du NAS, et il ne transforme pas un disque instable en disque fiable. Si zpool status -v tank continue à lister des erreurs après la fin du scan, copiez d’abord les données encore lisibles vers une destination saine.
La documentation OpenZFS sur zpool scrub précise que les contrôles de checksum parcourent tous les blocs et que les réparations automatiques demandent une copie redondante valide. Pour un pool sans redondance, la décision raisonnable reste la restauration depuis une sauvegarde et le remplacement du support défaillant.