5.6 KiB
Changer un disque d’un hyperviseur
Cette fiche a pour vocation de documenter le changement d’un disque pour un hyperviseur.
Disposition actuelle
Actuellement, chaque hyperviseur a deux disques de 1 à 2 To, en redondance. Il faut noter que la redondance boot est gérée par Proxmox, la redondance donnée est quant à elle gérée par ZFS. Ils sont partitionnés comme suit :
-
Partition d’espacement, du secteur 2014 secteurs de 34 à 2047. Parfois de 2048 à 4095. Cette partition ne contient aucune données, elle ne sert que comme espacement avant la première « vraie » partition ???
-
Partition de boot, cette partition s’occupe du démarrage du système, elle est entièremnt gérée par Proxmox. Elle occupe 512 Mo à partir du secteur 2048 /
- C’est une partition EFI.
- Le reste du disque est occupée par la partiton de donnée (par exemple 1 To),
c’est une partiton en miroir gérée par ZFS, elle a le type
Solaris /usr & Apple ZFS. Il est important de noter que ZFS ne s’occupe du miroir que d’une unique partition et non du disque entier.
Cette table de partition est donnée à titre indicative, et peut varier ou être amené à évoluer. En cas de changement de disque, il est préférable de copier le partitionnement de l’autre disque le plus fidélement possible.
Changement physique du disque
Identifier le disque à changer grâce à la LED de statut, et procéder au
changement physique du disque. De nombreux bugs de compatibilité ou physique
peuvent survenir qu’il faudra malheuresement traiter au cas pour cas. Les
conseils de débuggage de la fiche en question s’appliquent, notamment dmesg -T
qui journalise les évènement disques notamment.
Partitionnement du nouveau disque
Cette étape peut se faire sur un ordinateur en amont ou directement sur la
machine si elle fonctionne. Cette étape peut se faire via l’utilitaire fdisk
préinstallé sur les serveurs.
Pour lister les disques actuellement présents et leurs table de partionnement faites :
fdisk -l
Une fois le disque identifié (nous supposerons dans la suite que vous souhaitez repartitionner le disque /dev/sdx), pour commencer l’édition, tapez :
fdisk /dev/sdx
Cela ouvre une interface interractive afin de gérer le partionnement, les changements seront mis en cache, et il faut les valider à la fin.
Tapez p pour afficher la table de partitionnement courante. Et m pour la
liste des commandes.
La première étape est de (re)faire une table de partitionnement. Nous
utiliserons le format GPT. Tapez g pour créer une table vierge.
Il faut maintenat créer les partitions. Nous commençons par la partition
d’espacement. Tapez n pour ajouter une nouvelle partition. Donnez lui
l’identifiant 1. Mettez le premier secteur à 34 ou 2048 en fonction de
ce que permet le disque. Entrez ensuite le dernier secteur 2047 ou 4095.
Il faut ensute changer le type de la partition avec t en BIOS boot (numéro
4). L’auteur de ces lignes se demande si cette partition est vraiment utile ?
Nous allons créer la partition. Créer une partition 2 en tapant n. Faites
la commencer après la premiére (option par défaut). Donnez lui, 512 Mo en tapant
+512M. Puis changer le type via t en EFI System (numéro 1).
Il faut maintenant créer la partition de données. Créer une partition 3 avec
n. Faites la commencer après (défaut). Laissez là prendre toute la fin du
disque (option par défaut) ou faites la correspondre à la taille de l’autre
disque (en donnant +nombre de secteur par exemple). Changer le type en
Solaris /usr & Apple ZFS via t (numéro 163).
La table de partitionnement est maintenant complète, vérifiez-là une dernière
fois avec p avant de l’enregistrer avec w.
Redondance boot
Nous allons configurer la deuxième partition EFI pour le démarrage du système.
Cela nécessite d’utiliser l’utilitaire proxmox-boot-tool. Je suppose dans la
suite que cette partition est /dev/sdx2. La documentation officielle est
https://pve.proxmox.com/wiki/Host_Bootloader.
Pour afficher les disques de démarrage, faites proxmox-boot-tool status. Si
des anciens disques sont toujours présents, il est possible de néttoyer avec
proxmox-boot-tool clean (à vérifier).
Nous allons commencer par formater la partition avec proxmox-boot-tool format /dev/sdx2.
Ensuite nous initialisons le système avec proxmox-boot-tool init /dev/sdx2.
Le disque doit maintenant apparaître dans proxmox-boot-tool status.
Miroir ZFS
Il faut maintenant configurer le miroir zfs de la partition de données que je
supposerais être /dev/sdx3. Je suppose ici que la pool zfs est configuré et
qu’il s’agit d’un simple changement de disque.
Faites zpool status pour voit l’état de la pool. Un des disques doit être dans
l’état REMOVED ou OFFLINE. Notez sont nom, cela peut-être soit l’identifiant
de l’ancien disque ou un numéro quelquonque.
Il faut identifier le nom du nouveau disque, par exemple via ls -l /dev/disk/by-id. Notez le nom de la partition, par exemple
ata-ST2000XX000-xxxxxx_XXXXXXXX-part3. Attention ! Contrairement au disques
de stockage, nous nous intéressons seulement à synchroniser la partition de
données, remarquez le -part3.
Nous pouvons maintenant lancer le remplacement avec zpool replace rpool <ancien disque> <nouveau disque>-part3 où rpool est le nom de la pool où effectuer le
changement (on n’oublie pas le -part3 !). La commande peut prendre quelques
minutes à s’éxécuter.
ZFS va maintenant procéder à la synchronisation du miroir. Cette opération peut prendre quelques heures à une journée.