zfs-format-disk : Remplacer un disque ZFS sur Proxmox VE

Proxmox VE fournit un très bon support pour ZFS. Dès l'installation, nous pouvons installer le système d'exploitation sur ZFS. En utilisant l'interface Web, nous pouvons créer un système de fichiers ou un volume à utiliser par la machine virtuelle. Les instantanés de machine virtuelle utilisent l’instantané ZFS. Il prend également en charge certaines fonctionnalités que nous n'avons pas encore testées, comme la réplication entre hôtes physiques.

Au fil du temps, vous ferez face à une défaillance du disque. Les disques durs ne sont pas immortels!

Dans ce scénario, vous devez savoir comment remplacer le disque défaillant par un nouveau sans compromettre l'intégralité du système. Divers guides expliquant comment remplacer un disque dans un pool ZFS ne sont pas applicables pour Proxmox VE. Ils supposent que le disque doit être formaté de manière incompatible avec Proxmox VE. Le wiki Proxmox fournit une bonne procédure pour remplacer le disque, mais il est sujet aux erreurs et vous oblige à exécuter successivement certaines lignes de commande uniquement pour formater correctement le disque.

Pour éviter les erreurs et rendre la procédure transparente, nous avons créé un petit script. zfs-format-disk vous aide à partitionner correctement le disque et à installer grub dessus.

Installer zfs-format-disk

curl http://git.patrikdufresne.com/pdsl/zfs-format-disk/raw/master/zfs-format-disk > /usr/local/sbin/zfs-format-disk
chmod +x /usr/local/sbin/zfs-format-disk

Comment remplacer un disque ZFS?

Voici l'explication "courte". Continuez à lire pour obtenir plus de détails.

sudo zpool status
sudo ledctl locate=/dev/sdf
sudo zfs-format-disk /dev/sdf
sudo zpool replace rpool sdf2

Vérifier le statut du zpool

Tout d’abord, vous devriez vérifier l’état du pool:

sudo zpool status

Il doit être dégradé et l’un des disques doit être hors ligne ou indisponible, en fonction de la panne. Si le disque est hors ligne, vous devez vérifier la raison. dmesg devrait fournir plus de détails. Cela est généralement lié à une erreur SATA. Si le problème ne se reproduit pas, il est assez sûr de réutiliser le même disque et de le remettre en ligne: zpool online rpool sdf2

Identifier le disque physique

Une fois que vous avez identifié le disque, vous devez également identifier le disque physique pour le retirer et insérer le nouveau. Si vous avez un serveur avec un backplane, vous pouvez utiliser ledctl pour allumer un voyant afin de le localiser.

sudo ledctl localiser = /dev/sdf

Remplacer le disque

Une fois le nouveau disque en place, vous êtes prêt à le formater en utilisant zfs-format-disk pour créer la partition et y installer grub.

sudo zfs-format-disk / dev / sdf
sudo zpool remplace rpool sdf2

Vous devrez peut-être forcer le remplacement du disque avec -f s'il a déjà été utilisé dans un pool différent.