Aller au contenu

ZFS : remplacer un disque de données

RB-05ZFS mono-nœud ou répliquéNiveau 220 min + resilverQui : Client guidé / MSP / MSP

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

  1. Identifier le disque en défaut. GUI : nœud → Disks → ZFS → double-clic sur le pool.

    zpool status -v tank
    # repérer la ligne FAULTED / UNAVAIL / REMOVED, ex. ata-WDC_WD80..._VK1ABCD
    ls -l /dev/disk/by-id/ | grep VK1ABCD
    
  2. Mettre le disque hors ligne (s'il est encore vu).

    zpool offline tank ata-WDC_WD80..._VK1ABCD
    
  3. Remplacer physiquement le disque, puis repérer le nouveau dans /dev/disk/by-id/.

  4. Lancer le remplacement.

    zpool replace tank ata-WDC_WD80..._VK1ABCD /dev/disk/by-id/ata-WDC_WD80..._VK9WXYZ
    zpool status tank        # suivre le resilver (% et temps restant)
    
  5. À 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 add pour 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.

Ouvrir un ticket iTop pour RB-05 Que joindre au ticket ?


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