Migration d’un serveur Cockpit (VM KVM) vers XCP-NG 8.3
Dans le cadre de la migration de mon infrastructure depuis AlmaLinux avec Cockpit vers l’hyperviseur XCP-NG (version 8.3.0), il est nécessaire d’adapter le format des disques des machines virtuelles.
Voici la configuration du mini PC hébergeant mes machines virtuelles :
Composant | Spécifications |
---|---|
Nom | SUKOTOP Mini PC |
Processeur | Alder Lake N95 (jusqu'à 3.4 GHz, 15W) |
Mémoire RAM | 16 Go LPDDR5 |
Stockage | 512 Go |
Wi-Fi | 2.4/5 GHz |
Réseau | 2 × RJ45 Gigabit Ethernet |
Aaperçu rapide de l’état de mon hyperviseur et de mes machines virtuelles, j’utilise Cockpit.
Aperçu simplifié de l’architecture avant et après la migration. Ce schéma illustre le déplacement des machines virtuelles vers leur nouvel environnement.
Sur votre hôte AlmaLinux, commencez par vous déplacer dans le répertoire où sont stockés les disques de vos machines virtuelles. Ensuite, vous pouvez convertir vos machines à l'aide de la commande qemu-img :
Note : Pensez à arrêter la machine avant de procéder à la conversion du disque pour assurer une meilleure cohérence des données.
sudo qemu-img convert -O vpc NOM_DE_VOTRE_VM.qcow2 NOM_DE_VOTRE_VM.vhd"
La durée de la conversion dépend de la taille du disque et peut varier. Une fois la conversion terminée, transférez le nouveau disque vers votre hôte XCP-NG à l'aide du protocole SCP :
sudo scp NOM_DE_VOTRE_VM.vhd {UTILISATEUR}@IP:/run/sr-mount/Storage Repository
Info : Storage_Repository correspond à l’espace de stockage local sur votre hôte XCP-NG. Pour identifier son point de montage, utilisez la commande suivante :
df -Th
Une fois votre disque transféré sur votre hôte XCP-NG, vous devez le renommer en utilisant son UUID. Cela permet à l’hyperviseur de l’identifier correctement et de l’intégrer proprement à son système de gestion du stockage.
Pour ce faire, déplacez-vous dans le répertoire où se trouve le disque, puis exécutez la commande suivante :
sudo mv VOTRE_VM.vhd "$(vhd-util read -p -n VOTRE_VM.vhd | awk '/UUID/ {print $3; exit}').vhd"
Pourquoi cette étape est-elle nécessaire ?
XCP-NG utilise des UUIDs uniques pour gérer les disques dans ses Storage Repositories (SR). Si le fichier ne porte pas son UUID en tant que nom, l’hyperviseur risque de ne pas le reconnaître correctement ou de rencontrer des conflits avec d’autres disques.
En renommant le fichier avec son UUID, vous assurez une intégration fluide et évitez les erreurs lors de son importation dans XCP-NG.
Depuis Xen Orchestra, accédez à Home → Storage, puis cochez la case à gauche de votre stockage local : "Local storage (Default SR)". Ensuite, cliquez sur l’icône "Rescan all disks" en haut à droite.
Une fois l’analyse terminée, cliquez sur votre espace de stockage, puis accédez à l’onglet "Disks".
Vous verrez un disque sans nom apparaître dans la liste, identifié par la mention "Click to edit" sous les colonnes Name et Description. Il ne vous reste plus qu’à l’éditer et l’associer à une machine virtuelle.
Ah oui, pensez à ne pas oublier de supprimer l'agent invité QEMU de vos machines et d'installer ceux de Xen ! Vous pouvez le faire soit via l'ISO fourni avec l'hôte XCP-NG, soit directement depuis les dépôts.
Si vos machines tournent sous Alpine :
sudo apk add xe-guest-utilities
Petite info en passant : Si vous passez en mode console via Xen Orchestra, préparez-vous… votre clavier sera en QWERTY !