ZFS : remplacer un disque de données¶
Objectif. Remplacer un disque d'un pool mirror ou RAIDZ et retrouver un pool ONLINE. Pour le pool de démarrage rpool, suivre RB-06.
Avant de toucher la prod
- Le pool a encore sa redondance : un seul disque en défaut par vdev mirror ou RAIDZ1.
- Nouveau disque de taille égale ou supérieure, même type (pas de disque SMR en remplacement).
- Numéro de série du disque à retirer noté, pour ne pas arracher le mauvais.
Étapes¶
-
Identifier le disque en défaut. GUI : nœud → Disks → ZFS → double-clic sur le pool.
-
Mettre le disque hors ligne (s'il est encore vu).
-
Remplacer physiquement le disque, puis repérer le nouveau dans
/dev/disk/by-id/. -
Lancer le remplacement.
-
À la fin du resilver, lancer un scrub de contrôle :
zpool scrub tank.
Vérifications
zpool status tank : state: ONLINE, 0 erreur sur toutes les colonnes, ancien disque absent de la liste.
Rollback
Tant que le resilver n'est pas terminé, l'ancien disque reste référencé (ligne replacing). En cas de problème sur le nouveau disque : zpool detach tank <nouveau> et ticket.
Pièges vus en support
- Ne jamais utiliser
zpool addpour remplacer un disque : la commande ajoute un nouveau vdev sans redondance au pool, et la perte de ce disque détruit tout le pool. - Toujours désigner les disques par
/dev/disk/by-id/, jamais par/dev/sdX, qui peut changer au redémarrage. - Le resilver d'un RAIDZ de gros disques peut durer plus de 24 h ; une seconde panne pendant ce temps est fatale en RAIDZ1.
- Un disque REMOVED qui revient seul peut indiquer un câble ou un fond de panier défectueux plutôt que le disque.
Quand ouvrir un ticket iTop
Plus d'un disque en défaut dans un même vdev, pool SUSPENDED ou UNAVAIL : P1. Resilver qui stagne : P2. Joindre zpool status -v, smartctl -a du disque, journalctl -k | grep -i ata.
Rubrique : ZFS · Architecture : ZFS · Rédigé pour PVE 9.x, PBS 4.x, Ceph 19.2 · Brouillon à valider en lab avant publication · Documentation officielle : PVE · PBS