Aller au contenu

XCP-ng

Dans cet article

Information

XCP-ng (Xen Cloud Platform - New Generation) est un hyperviseur open-source gratuit basé sur le projet Xen. XCP-ng a été créé comme une alternative open-source à Citrix XenServer après que Citrix a limité les fonctionnalités de la version gratuite. Le projet fournit une plateforme de virtualisation complète de niveau entreprise sans aucune limitation artificielle, prenant en charge la migration à chaud (live migration), la haute disponibilité, la gestion du stockage et l'intégration avec des systèmes d'orchestration. XCP-ng est distribué sous licence GPLv2 et des licences libres compatibles.

XCP-ng. Fonctionnalités clés

  • Virtualization : XCP-ng permet de faire fonctionner plusieurs machines virtuelles sur un seul serveur physique avec une isolation complète et une distribution efficace des ressources. Les systèmes d'exploitation invités pris en charge incluent Linux, Windows et d'autres.
  • Live Migration : capacité de déplacer des machines virtuelles en cours d'exécution entre les hôtes sans interruption de service, garantissant la continuité du service pendant la maintenance du matériel.
  • High Availability (HA) : redémarrage automatique des machines virtuelles sur d'autres hôtes du pool en cas de défaillance du serveur.
  • Storage Management : prise en charge de divers types de Storage Repositories, notamment les disques locaux, NFS, iSCSI, Ceph et autres.
  • Snapshots and Backup : création de snapshots instantanés des états des machines virtuelles pour une récupération et une sauvegarde rapides.
  • Resource Pools : combinaison de plusieurs hôtes XCP-ng en un seul pool pour une gestion centralisée et une distribution de la charge.
  • Network Capabilities : prise en charge de VLAN, du bonding d'interfaces réseau, du SR-IOV et des réseaux définis par logiciel (SDN).
  • Web Management Interfaces : XCP-ng inclut l'interface web intégrée XO Lite pour la gestion de base, tandis que Xen Orchestra (XO) complet offre des capacités avancées d'automatisation, de surveillance et de sauvegarde.

Options de gestion XCP-ng

Plusieurs interfaces de gestion sont disponibles pour travailler avec XCP-ng :

XO Lite (intégré, gratuit) :

  • Disponible immédiatement après l'installation de XCP-ng à l'adresse https://<server_IP_address> ;
  • Interface web de base pour créer et gérer des machines virtuelles ;
  • Surveillance des ressources et opérations de base ;
  • Convient aux laboratoires domestiques (home labs) et aux petits projets ;
  • Ne nécessite aucune configuration supplémentaire.

Xen Orchestra from Sources (gratuit, nécessite une installation) :

  • Système de gestion open-source complet ;
  • Sauvegardes automatiques, réplication, surveillance avancée ;
  • Gestion centralisée de plusieurs hôtes ;
  • Nécessite la création d'une machine virtuelle séparée et une installation manuelle (Ubuntu/Debian) ;
  • La maintenance et les mises à jour s'effectuent manuellement ;
  • Support via les forums communautaires.

Xen Orchestra Appliance (XOA) (abonnement payant, nécessite un déploiement) :

  • Machine virtuelle prête à l'emploi avec Xen Orchestra préinstallé ;
  • Déployée via le bouton Deploy XOA dans l'interface XO Lite ;
  • Support technique officiel de Vates (24/7) ;
  • Mises à jour automatiques et garanties SLA ;
  • Forfaits pour petites entreprises : 2 000 €/an (ESSENTIAL, jusqu'à 3 hôtes) ou 4 000 €/an (ESSENTIAL+, accès complet) – détails ;
  • Recommandé pour les environnements de production avec des exigences de support.

Le choix de l'option dépend de l'échelle de l'infrastructure et des exigences de support technique. La version intégrée XO Lite est suffisante pour débuter, tandis que des fonctionnalités plus avancées sont disponibles en installant la version complète de Xen Orchestra.

Fonctionnalités de déploiement

ID OS Name Alias Active BM GPU VPS VDS Family OS Group CloudInit Avilible
306 XCP-ng 8.3 - Yes + + + - XCP-ng Others No ORDER

Configuration minimale du serveur :

  • RAM : 8 Go ;
  • HDD : 60 Go ;
  • Virtualization : prise en charge de la virtualisation imbriquée (nested virtualization).

Prise en main de XCP-ng après le déploiement

Une fois que vous avez payé votre commande, vous recevrez une notification par e-mail à l'adresse fournie lors de l'inscription, indiquant que votre serveur est prêt. Cet e-mail contiendra l'adresse IP du VPS et les identifiants de connexion. Les clients de notre entreprise gèrent leur équipement via le panneau de gestion du serveur et l'API — Invapi.

Vous pouvez trouver les détails d'autorisation soit dans la section Configuration >> Tags du panneau de gestion du serveur, soit dans l'e-mail que vous avez reçu :

  • Login : root;
  • Password : Envoyé à votre adresse e-mail une fois que le serveur est prêt à l'emploi après le déploiement du logiciel.

Autorisation

Deux méthodes sont disponibles pour accéder au serveur XCP-ng : via l'interface web XO Lite et via SSH.

Connexion via XO Lite

XO Lite est une interface web intégrée pour la gestion de XCP-ng, accessible directement depuis l'hôte.

  • Ouvrez un navigateur et naviguez vers https://<server_IP_address> :

  • Entrez le login root et le mot de passe reçu par e-mail, puis cliquez sur le bouton Login.

Information

Le navigateur peut afficher un avertissement concernant un certificat non approuvé - cela est normal pour un certificat auto-signé. Ajoutez une exception pour continuer.

Connexion via SSH

  • Ouvrez un terminal et connectez-vous au serveur avec la commande :
ssh root@<server_IP_address>
  • Entrez le mot de passe lorsque cela est demandé. Après une connexion réussie, vous serez sur la ligne de commande XCP-ng.

Connexion via la console native

Vous pouvez également utiliser la console native dans le panneau de contrôle Invapi pour accéder à la console de l'hôte :

La console fournit un menu de configuration qui vous permet de configurer les paramètres réseau, l'authentification, la gestion des machines virtuelles et d'autres paramètres système.

Travailler avec xsconsole

Lors d'une connexion via SSH ou console VNC, vous pouvez utiliser xsconsole - la console de gestion textuelle intégrée pour la configuration de XCP-ng et l'administration de l'hôte.

Pour lancer xsconsole, entrez la commande :

xsconsole

Après le lancement, le menu de gestion du système s'ouvrira :

Sections principales de xsconsole

Affichage du statut (Status Display)

  • Surveillance de l'état de l'hôte (CPU, mémoire, réseau, stockage) ;
  • Voir les machines virtuelles en cours d'exécution ;
  • Informations générales sur le système.

Interface réseau et de gestion (Network and Management Interface)

  • Configuration de l'interface réseau ;
  • Configuration de l'adresse IP (statique/DHCP) ;
  • Configuration de la passerelle et du serveur DNS.

Authentification (Authentication)

  • Changement du mot de passe root ;
  • Gestion de l'accès SSH ;
  • Configuration des comptes.

Machines virtuelles (Virtual Machines)

  • Voir la liste des machines virtuelles ;
  • Gestion de base des VM (démarrer, arrêter) ;
  • Contrôle de l'état du système invité.

Disques et dépôts de stockage (Disks and Storage Repositories)

  • Voir les disques connectés ;
  • Gestion du Storage Repository ;
  • Création et suppression de SR.

Configuration du pool de ressources (Resource Pool Configuration)

  • Création d'un pool à partir de plusieurs hôtes ;
  • Rejoindre un pool existant ;
  • Gestion du cluster de serveurs.

Informations sur le matériel et le BIOS (Hardware and BIOS Information)

  • Informations sur le processeur et la mémoire ;
  • Données de la carte réseau ;
  • Versions du BIOS et du firmware.

Clavier et fuseau horaire (Keyboard and Timezone)

  • Configuration de la disposition du clavier ;
  • Réglage du fuseau horaire du système.

Configuration du service distant (Remote Service Configuration)

  • Configuration de l'accès distant ;
  • Configuration SSH ;
  • Gestion des certificats SSL.

Sauvegarde, restauration et mise à jour (Backup, Restore and Update)

  • Sauvegarde de la configuration de l'hôte ;
  • Restauration des paramètres ;
  • Vérification et installation des mises à jour du système.

Support technique (Technical Support)

  • Générer un rapport de support technique (rapport de bug) ;
  • Collecte des journaux système ;
  • Informations de diagnostic.

Shell de commande locale (Local Command Shell)

  • Sortir vers la ligne de commande bash standard ;
  • Pour l'exécution de commandes et scripts arbitraires.

Redémarrage ou arrêt (Reboot or Shutdown)

  • Redémarrage de l'hôte ;
  • Arrêt propre du système.
  • Enter - sélectionner un élément de menu/confirmer une action ;
  • ↑/↓ - naviguer entre les éléments du menu ;
  • Tab - basculer entre les éléments d'un formulaire ;
  • Esc ou q - revenir au menu précédent/quitter.

Astuce

xsconsole est particulièrement utile pour la configuration initiale du serveur, la récupération d'accès d'urgence ou la configuration réseau lorsque l'interface web XO Lite est indisponible. Pour quitter xsconsole et revenir à la ligne de commande régulière, sélectionnez Local Command Shell.

Travailler avec XO Lite

Après l'autorisation dans XO Lite, le panneau de gestion principal (Dashboard) s'ouvre :

L'interface XO Lite contient les sections suivantes :

  • DASHBOARD : vue d'ensemble générale de l'état de l'hôte, de l'état des machines virtuelles, de l'utilisation du stockage et des notifications ;
  • ALARMS : voir les avertissements et alertes du système ;
  • STATS : statistiques de performance et d'utilisation des ressources ;
  • SYSTEM : paramètres du système de l'hôte ;
  • NETWORK : gestion de l'interface réseau et du réseau virtuel ;
  • STORAGE : gestion du stockage des données (Storage Repositories) ;
  • TASKS : journal des tâches en cours et terminées ;
  • HOSTS : informations sur les hôtes dans le pool ;
  • VMS : gestion des machines virtuelles.

Gestion du réseau

L'onglet NETWORK affiche les réseaux disponibles et leurs paramètres :

Ici, vous pouvez voir les réseaux de l'ensemble du Pool (disponibles pour tous les hôtes du pool) et les réseaux internes de l'hôte, ainsi que créer de nouvelles connexions réseau.

Créer une machine virtuelle

Préparation : Chargement d'une image ISO

Avant de créer une machine virtuelle, vous devez charger une image ISO du système d'exploitation dans le Storage Repository.

Chargement de l'ISO via SSH

XO Lite ne prend pas en charge le téléchargement d'images ISO via l'interface web. Pour télécharger une ISO, vous devez utiliser la ligne de commande :

  1. Connectez-vous au serveur via SSH

        ssh root@<server_IP_address>
    
  2. Si xsconsole s'ouvre après la connexion, quittez vers la ligne de commande régulière en sélectionnant l'élément de menu Local Command Shell ou en appuyant sur Ctrl+C.

  3. Trouvez l'UUID du stockage ISO

        xe sr-list content-type=iso
    
    Copiez l'UUID du stockage nommé "XCP-ng Tools".

  4. Naviguez vers le répertoire de stockage ISO

        cd /opt/xensource/packages/iso
    
  5. Téléchargez l'image ISO

    Téléchargement depuis Internet :

        wget https://repo.almalinux.org/almalinux/9/isos/x86_64/AlmaLinux-9-latest-x86_64-boot.iso
    

    Ou téléchargez depuis votre ordinateur local (exécutez sur votre PC)

        scp /chemin/vers/fichier.iso root@<IP-serveur>:/opt/xensource/packages/iso/
    
  6. Scannez le stockage

        xe sr-scan uuid=<UUID_SR>
    
    Où <UUID_SR> est l'UUID obtenu à l'étape 3.

    Après cela, l'image ISO apparaîtra dans la liste des images disponibles lors de la création d'une machine virtuelle.

Créer une VM via XO Lite

  • Cliquez sur le bouton New VM dans le coin supérieur droit de l'interface.

  • Dans la fenêtre qui s'ouvre, remplissez les paramètres de la machine virtuelle :

    • Template : sélectionnez le modèle du système d'exploitation (ex: AlmaLinux 9) ;
    • Install settings : choisissez la méthode d'installation :
      • ISO/DVD : installation à partir d'une image ISO (recommandé) - sélectionnez l'ISO chargé dans la liste ;
      • PXE : installation par le réseau (nécessite un serveur PXE configuré).
    • System : spécifiez le nom de la VM, la description, le type de firmware (BIOS/UEFI) ;
    • Memory : définissez le nombre de vCPUs et la quantité de RAM.
  • Configurez les connexions réseau et le stockage :

    • Network : sélectionnez l'interface réseau pour la connexion de la VM ;
    • Storage : sélectionnez le stockage et spécifiez la taille du disque ;
    • Settings : activez le démarrage automatique de la VM au démarrage (optionnel).
  • Vérifiez la configuration finale dans la section Summary et cliquez sur le bouton Create.

Après la création, la machine virtuelle démarrera automatiquement et le le démarrage à partir de l'image ISO commencera. L'interface XO Lite ouvrira la page Dashboard de la VM créée :

La page Dashboard affiche :

  • Quick info : informations de base de la VM (statut, UUID, hôte, ressources) ;
  • CPU usage : graphique d'utilisation du processeur ;
  • RAM usage : graphique d'utilisation de la mémoire ;
  • Network throughput : graphique d'activité réseau ;
  • VDI throughput : graphique d'activité disque ;
  • Change state : menu de gestion de l'état de la VM (start, pause, reboot, shutdown).

Pour accéder à la console de la machine virtuelle et commencer l'installation du système d'exploitation, allez sur l'onglet CONSOLE.

Astuce

Pour l'installation par le réseau (Boot ISO), assurez-vous que la machine virtuelle a un accès Internet via le réseau configuré, car les paquets d'installation seront téléchargés depuis le dépôt.

Attention

Lors de la sélection d'une image ISO, considérez le type d'image :

Pour Linux (en utilisant AlmaLinux comme exemple) :

  • DVD/Full ISO (~4-10 Go) - image complète, contient tous les paquets, ne nécessite pas Internet
    • AlmaLinux-9-latest-x86_64-dvd.iso ;
    • Ubuntu-22.04-server.iso.
  • Boot/Minimal ISO (~1 Go) - image minimale, nécessite une connexion Internet active pour télécharger les paquets
    • AlmaLinux-9-latest-x86_64-boot.iso ;
    • Ubuntu-22.04-live-server.iso.

Recommandation : Pour une installation fiable, utilisez des images ISO complètes (DVD/Full), surtout si la VM a une connexion Internet instable ou inexistante.

Recommandations de sélection du firmware

  • UEFI - recommandé pour les OS modernes :
    • Linux : AlmaLinux 9+, Ubuntu 20.04+, Debian 11+ ;
    • Windows : Windows Server 2016+, Windows 10/11.
  • BIOS - pour la compatibilité :
    • Versions d'OS plus anciennes ;
    • En cas de problèmes de démarrage UEFI ;
    • Scénarios spécifiques (applications legacy).

Choix de la sélection logicielle

Lors de l'installation de distributions Linux dans XCP-ng, plusieurs options d'environnement sont disponibles :

  • Minimal Install - système de base sans GUI (~400-600 paquets, installation de 5-10 minutes)
    • Recommandé pour les serveurs et la production ;
    • Consommation de ressources minimale.
  • Server with GUI - système complet avec interface graphique (~1000-1500 paquets, installation de 15-30 minutes)
    • Pratique pour l'apprentissage et les tests ;
    • Nécessite plus de ressources (RAM, CPU, disque).

Pour les serveurs de production dans XCP-ng, l'Minimal Install est recommandé.

Installer les XCP-ng Guest Tools

Après l'installation du système d'exploitation, il est crucial d'installer les XCP-ng Guest Tools pour que la machine virtuelle fonctionne correctement.

Pourquoi les Guest Tools sont nécessaires

Les Guest Tools permettent :

  • Un arrêt et un redémarrage corrects de la VM (arrêt propre/soft shutdown) ;
  • L'affichage de l'adresse IP et de l'état de la VM dans l'interface XCP-ng ;
  • Des performances réseau et disque améliorées ;
  • La synchronisation de l'heure entre l'hôte et l'OS invité ;
  • La prise en charge des snapshots avec quiesce (snapshots cohérents).

Attention

Sans l'installation des Guest Tools, la machine virtuelle peut fonctionner de manière instable, en particulier concernant les connexions réseau et la gestion de l'état.

Séquence d'installation des Guest Tools

Étape 1 : Terminer l'installation de l'OS

Après l'installation du système d'exploitation, lorsqu'un message de fin d'installation apparaît ou qu'une invite de redémarrage est affichée :

Attention

Ne redémarrez pas la machine virtuelle immédiatement. Vous devez d'abord remplacer l'ISO d'installation par guest-tools.iso.

Exception : Si vous avez déjà redémarré la VM, ce n'est pas grave - l'ISO peut être connectée après le premier démarrage du système installé.

Étape 2 : Remplacer l'ISO par les Guest Tools (sur l'hôte XCP-ng)

Connectez-vous à l'hôte XCP-ng via SSH et exécutez les commandes.

Trouvez l'UUID de votre VM :

xe vm-list name-label="VM_NAME"

Ou obtenez la liste de toutes les les VM en cours d'exécution :

xe vm-list power-state=running

Exemple de sortie :

uuid ( RO)           : 0218d2ca-bfb7-fdfb-0c78-7a115a69ecdc
     name-label ( RW): AlmaLinux 9
    power-state ( RO): running

Éjectez l'ISO d'installation (si elle est connectée) :

xe vm-cd-eject uuid=<UUID_VM>

Insérez l'ISO guest-tools :

xe vm-cd-insert uuid=<UUID_VM> cd-name="guest-tools.iso"

Vérifiez que l'ISO a été remplacée :

xe vbd-list vm-uuid=<UUID_VM> type=CD

Exemple de sortie :

uuid ( RO)             : 5f644369-7b28-a39d-6bc0-2221ec2b92d3
          vm-uuid ( RO): 0218d2ca-bfb7-fdfb-0c78-7a115a69ecdc
    vm-name-label ( RO): AlmaLinux 9
         vdi-uuid ( RO): dd994bfa-83a6-482a-a2c4-f952a5d8ab81
            empty ( RO): false
           device ( RO): xvdd
Notez le paramètre device - il s'agit du nom du périphérique dans le système invité (dans ce cas xvdd).

Étape 3 : Redémarrer la VM

  • Si vous n'avez pas encore redémarré après l'installation : Dans la console de la VM, appuyez sur "Reboot System" ou exécutez la commande reboot ;
  • Si vous êtes déjà dans un système en cours d'exécution : Le redémarrage n'est est pas nécessaire, passez à l'étape 4.

Étape 4 : Installer les Guest Tools dans l'OS invité

La procédure d'installation dépend du système d'exploitation :

Pour Linux (basé sur RHEL : AlmaLinux, Rocky, CentOS, RHEL)

Connectez-vous au système en tant que root et exécutez les commandes.

Créez un point de montage :

mkdir -p /mnt/cdrom

Montez l'ISO guest-tools :

mount /dev/sr0 /mnt/cdrom

Si /dev/sr0 ne fonctionne pas, essayez d'autres options :

mount /dev/cdrom /mnt/cdrom

ou

mount /dev/xvdd /mnt/cdrom

Vérifiez le contenu :

ls -la /mnt/cdrom/Linux/

Naviguez vers le répertoire :

cd /mnt/cdrom/Linux

Lancez l'installation :

bash install.sh

Exemple de sortie :

Detected 'AlmaLinux release 9.7 (Moss Jungle Cat)' (almalinux version 9).

The following changes will be made to this Virtual Machine:
 * update arp_notify sysctl
 * packages to be installed/upgraded:
   - xe-guest-utilities-7.30.0-12.x86_64.rpm

Continue? [y/n] y

Appuyez sur y et attendez la fin de l'installation.

Remarque

L'installation peut rester bloquée à 100 % pendant 30 à 60 secondes - c'est normal. Si elle reste bloquée plus de 2 minutes, appuyez sur Ctrl+C et vérifiez le résultat.

Vérifiez l'installation :

rpm -qa | grep xe-guest
Devrait afficher quelque chose comme :
xe-guest-utilities-7.30.0-12.legacy.x86_64

Vérifiez la présence du script init.d :

ls /etc/init.d/ | grep xe

Devrait afficher :

xe-linux-distribution

Important pour AlmaLinux 9 / RHEL 9 / Rocky 9 :

Problème systemd dans les distributions modernes

Le script install.sh installe uniquement le script init.d, mais ne crée pas de fichier d'unité systemd. Cela signifie que les commandes systemctl status xe-linux-distribution et chkconfig ne fonctionneront pas.

Symptômes :

systemctl status xe-linux-distribution
Unit xe-linux-distribution.service could not be found.

chkconfig xe-linux-distribution on
bash: chkconfig: command not found...

Solution : Créez le fichier d'unité systemd manuellement. Exemple de création du fichier :

cat > /etc/systemd/system/xe-linux-distribution.service << 'EOF'
[Unit]
Description=XCP-ng Guest Utilities
After=network.target

[Service]
Type=oneshot
ExecStart=/etc/init.d/xe-linux-distribution start
ExecStop=/etc/init.d/xe-linux-distribution stop
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
EOF
Activez et démarrez le service :

systemctl daemon-reload
systemctl enable xe-linux-distribution
systemctl start xe-linux-distribution

Vérifiez le statut du service :

systemctl status xe-linux-distribution

Démontez l'ISO :

cd ~
umount /mnt/cdrom

Redémarrez le système pour appliquer les changements :

reboot

Pour Linux (basé sur Debian : Ubuntu, Debian)

Connectez-vous au système en tant que root ou utilisez sudo.

Créez un point de montage :

sudo mkdir -p /mnt/cdrom

Montez l'ISO guest-tools :

sudo mount /dev/sr0 /mnt/cdrom

Naviguez vers le répertoire :

cd /mnt/cdrom/Linux

Lancez l'installation :

sudo bash install.sh

Vérifiez l'installation :

dpkg -l | grep xe-guest

Vérifiez le statut du service :

sudo systemctl status xe-linux-distribution

Démontez l'ISO :

cd ~
sudo umount /mnt/cdrom

Redémarrez le système :

sudo reboot

Méthode alternative pour Linux : Installation via le dépôt

Si le montage de l'ISO ne fonctionne pas ou si vous souhaitez installer les Guest Tools via le gestionnaire de paquets.

Pour les systèmes basés sur RHEL (AlmaLinux, Rocky, CentOS), installez le dépôt EPEL :

sudo dnf install -y epel-release

Installez xe-guest-utilities :

sudo dnf install -y xe-guest-utilities

Activez le service :

sudo systemctl enable xe-linux-distribution

Démarrez le service :

sudo systemctl start xe-linux-distribution

Vérifiez le statut :

sudo systemctl status xe-linux-distribution

Remarque

L'installation via le dépôt nécessite une connexion Internet active dans la VM.

Étape 5 : Vérification du fonctionnement des Guest Tools

Après le redémarrage et l'installation des Guest Tools, vérifiez leur fonctionnement.

Dans l'OS invité (Linux), vérifiez le statut du service :

systemctl status xe-linux-distribution

Ou via init.d :

/etc/init.d/xe-linux-distribution status

Exemple de sortie correcte :

os_distro="almalinux"
os_majorver="9"
os_minorver="7"
os_uname="5.14.0-611.5.1.el9_7.x86_64"
os_name="AlmaLinux release 9.7 (Moss Jungle Cat)"

Sur l'hôte XCP-ng, vérifiez l'affichage des informations réseau :

xe vm-param-get uuid=<UUID_VM> param-name=networks

Vérifiez l'état des pilotes PV :

xe vm-param-get uuid=<UUID_VM> param-name=PV-drivers-version

Obtenez les informations générales de la VM :

xe vm-param-list uuid=<UUID_VM> | grep -E "PV-drivers|networks"
Dans l'interface XO Lite

Après le démarrage du service xe-linux-distribution, le Dashboard de la VM devrait afficher (mis à jour après 10-30 secondes) :

  • IP address : l'adresse IP de la VM ;
  • Guest tools : la version des Guest Tools installés (ex: 7.30.0-12) ;
  • OS name : le système d'exploitation détecté (ex: AlmaLinux release 9.7) :

Gestion des machines virtuelles

L'onglet VMS affiche une liste de toutes les machines virtuelles avec les capacités de gestion :

Actions disponibles :

  • Change state : démarrer, arrêter, redémarrer la VM ;
  • Migrate : migrer la VM vers un autre hôte ;
  • Copy : créer une copie de la machine virtuelle ;
  • Edit config : modifier la configuration de la VM ;
  • Snapshot : créer un snapshot d'état ;
  • Export : exporter la VM vers un fichier ;
  • Delete : supprimer la machine virtuelle.

Travailler avec le stockage, l'ISO et les réseaux

Gérer les Storage Repositories (SR)

Voir tout le stockage :

Lister tous les SR :

xe sr-list
Informations détaillées sur un SR spécifique :

xe sr-param-list uuid=<UUID_SR>
Voir l'utilisation de l'espace disque :

xe sr-list params=name-label,physical-size,physical-utilisation,uuid

Travailler avec le stockage ISO :

Trouver le SR ISO :

xe sr-list content-type=iso
Obtenir le chemin vers le SR ISO :

xe pbd-list sr-uuid=<UUID_SR>
Naviguez vers le répertoire ISO (généralement /opt/xensource/packages/iso) :

cd /opt/xensource/packages/iso
Voir les ISO disponibles :

ls -lh
Télécharger une ISO depuis Internet :

wget https://example.com/os.iso
Télécharger une ISO depuis votre ordinateur local :

scp /chemin/vers/fichier.iso root@<IP-serveur>:/opt/xensource/packages/iso/

Attention

Vous devez scanner le SR après avoir ajouté une ISO

xe sr-scan uuid=<UUID_SR>
Vérifiez que l'ISO est apparue :

xe vdi-list sr-uuid=<UUID_SR>

Gérer le stockage local

Voir les disques virtuels (VDI) :

xe vdi-list sr-uuid=

Vérifier l'espace libre :

df -h

Voir la liste des snapshots :

xe snapshot-list | grep snapshot

Supprimer un snapshot :

xe snapshot-uninstall snapshot-uuid=

Gestion du réseau

Voir tous les réseaux :

xe network-list

Informations détaillées sur le réseau :

xe network-param-list uuid=

Voir les interfaces physiques (PIF) :

xe pif-list

Détails d'une PIF spécifique :

xe pif-param-list uuid=

Vérifier l'adresse IP de l'hôte :

ip addr show

Créer un réseau interne :

xe network-create name-label="Internal Network" name-description="Private VM network"

Créer un réseau VLAN :

xe network-create name-label="VLAN100" name-description="VLAN 100" vlan=100 pif-uuid=

Voir les interfaces réseau de la VM :

xe vif-list vm-uuid=

Créer une nouvelle interface réseau pour une VM :

xe vif-create vm-uuid= network-uuid= device=0

Commandes CLI de base

Gestion des machines virtuelles

Lister toutes les VM :

xe vm-list

Uniquement les VM en cours d'exécution :

xe vm-list power-state=running

Informations détaillées sur la VM :

xe vm-param-list uuid=<UUID_VM>

Démarrer la VM :

xe vm-start uuid=<UUID_VM>

Arrêter la VM :

xe vm-shutdown uuid=<UUID_VM>

Redémarrer la VM :

xe vm-reboot uuid=<UUID_VM>

Suspendre la VM :

xe vm-suspend uuid=<UUID_VM>

Arrêter de force la VM :

xe vm-shutdown uuid=<UUID_VM> force=true

Créer un snapshot :

xe vm-snapshot uuid=<UUID_VM> new-name-label="backup-$(date +%Y%m%d)"

Lister les snapshots :

xe snapshot-list

Restaurer à partir d'un snapshot :

xe snapshot-revert snapshot-uuid=<UUID_snapshot>

Supprimer un snapshot :

xe snapshot-uninstall snapshot-uuid=<UUID_snapshot>

Exporter une VM :

xe vm-export uuid=<UUID_VM> filename=/path/to/backup.xva

Importer une VM :

xe vm-import filename=/path/to/backup.xva

Surveillance et diagnostic

Informations sur l'hôte :

xe host-list params=all

Surveillance des processus :

top

Surveillance avancée des processus :

htop

Vérifier l'utilisation de la mémoire :

free -h

Mémoire libre de l'hôte :

xe host-param-get uuid=<UUID_host> param-name=memory-free

Utilisation CPU par machine virtuelle :

xe vm-list params=name-label,power-state,VCPUs-utilisation

Voir le journal principal de XCP-ng :

tail -f /var/log/xensource.log

Journaux système :

journalctl -xe

Voir les messages système :

tail -f /var/log/messages

Journaux Xen :

xl dmesg

Créer un rapport de bug (contient toutes les informations de diagnostic) :

xen-bugtool -y

Emplacement du rapport

Le résultat sera enregistré dans /var/opt/xen/bug-report/

Gérer les images ISO et les lecteurs CD

Lister les images ISO disponibles :

xe cd-list

Informations détaillées sur une ISO dans un SR :

xe vdi-list sr-uuid= content-type=iso

Attacher une ISO à une VM :

xe vm-cd-insert uuid= cd-name=".iso"

Éjecter une ISO d'une VM :

xe vm-cd-eject uuid=

Vérifier le CD/ISO connecté à une VM :

xe vbd-list vm-uuid= type=CD

Naviguer vers le répertoire ISO sur l'hôte :

cd /opt/xensource/packages/iso

Télécharger une ISO depuis Internet :

wget https://example.com/os.iso

Scanner le SR après avoir chargé une ISO :

xe sr-scan uuid=

Vérifier à nouveau :

xe cd-list

Vérifier l'état des Guest Tools

Vérifier la version des pilotes PV :

xe vm-param-get uuid= param-name=PV-drivers-version

Vérifier si les pilotes PV sont à jour :

xe vm-param-get uuid= param-name=PV-drivers-up-to-date

Obtenir les informations sur l'OS invité :

xe vm-param-get uuid= param-name=os-version

Vérifier la détection des pilotes PV :

xe vm-param-get uuid= param-name=PV-drivers-detected

Obtenir les informations réseau de la VM :

xe vm-param-get uuid= param-name=networks

Problèmes courants et solutions

Problème : La VM démarre en mode Emergency/Recovery

Symptômes :

Le message "You are in emergency mode" ou "Welcome to emergency mode" apparaît ;

Causes typiques :

  • Erreurs de configuration de démarrage (fstab pour Linux) ;
  • Corruption du système de fichiers ;
  • Problèmes de virtualisation ;
  • Arrêt incorrect de la VM.

Solution pour Linux :

Connectez-vous au système avec le mot de passe root (ou appuyez sur Ctrl+D pour continuer).

Vérifiez les journaux système :

journalctl -xb | grep -i error

Vérifiez les messages du noyau :

dmesg | grep -i error

Vérifiez le système de fichiers :

cat /etc/fstab

Vérifiez l'utilisation du disque :

df -h

Vérifiez les périphériques blocs :

lsblk

Si le problème vient de fstab (ex: swap ou disque manquant), éditez le fichier :

nano /etc/fstab

Commentez la ligne problématique en ajoutant # au début. Exemple :

# /dev/mapper/almalinux-swap none swap defaults 0 0

Si vous devez vérifier le système de fichiers, démontez d'abord la partition :

umount /dev/xvda2

Vérifiez et réparez le système de fichiers :

fsck -y /dev/xvda2

Redémarrez le système :

systemctl reboot

Problème : GRUB ne se charge pas ou se bloque

Symptômes :

  • La VM se bloque sur l'écran TianoCore (UEFI) ;
  • "Welcome to GRUB" apparaît et rien ne se passe ;
  • Écran noir avec curseur après le BIOS/UEFI.

Causes typiques :

  • Ordre de démarrage (boot order) incorrect ;
  • L'ISO est toujours connectée comme premier périphérique de démarrage ;
  • Corruption du chargeur de démarrage GRUB ;
  • Incompatibilité UEFI/BIOS.

Solution 1 : Vérifier et changer l'ordre de démarrage

Sur l'hôte XCP-ng, vérifiez l'ordre de démarrage actuel :

xe vm-param-get uuid=<UUID_VM> param-name=HVM-boot-params

Valeurs d'ordre possibles : - cdn - HDD ©, CD (d), Réseau (n) - dcn - CD (d), HDD ©, Réseau (n) - c - HDD uniquement

Pour l'installation de l'OS, réglez le CD en premier :

xe vm-param-set uuid=<UUID_VM> HVM-boot-params:order=dcn

Après l'installation de l'OS, réglez le démarrage sur HDD uniquement :

xe vm-param-set uuid=<UUID_VM> HVM-boot-params:order=c

Éjectez l'ISO d'installation si elle est encore connectée :

xe vm-cd-eject uuid=<UUID_VM>

Redémarrez la VM :

xe vm-reboot uuid=<UUID_VM> --force

Solution 2 : Démarrer via GRUB Rescue (pour Linux)

Si vous vous retrouvez sur la ligne de commande GRUB (l'invite grub> apparaît), exécutez les commandes suivantes.

Trouvez les partitions disponibles :

ls
La sortie sera quelque chose comme : (hd0) (hd0,msdos2) (hd0,msdos1)

Trouvez la partition contenant /boot (généralement msdos1 ou gpt1) :

ls (hd0,msdos1)/

Vérifiez le contenu de boot :

ls (hd0,msdos1)/boot/

Vous devriez voir les fichiers vmlinuz, initramfs et le dossier grub2.

Pour les systèmes BIOS, exécutez :

set root=(hd0,msdos1)
set prefix=(hd0,msdos1)/grub2
insmod normal
normal

Pour les systèmes UEFI, exécutez :

set root=(hd0,gpt1)
set prefix=(hd0,gpt1)/boot/grub2
insmod normal
normal

Après le démarrage du système, restaurez GRUB.

Pour les systèmes basés sur RHEL (AlmaLinux, Rocky, CentOS) :

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

Pour les systèmes UEFI :

sudo grub2-mkconfig -o /boot/efi/EFI/almalinux/grub.cfg

Pour les systèmes basés sur Debian :

sudo update-grub

Réinstallez GRUB si nécessaire (pour BIOS) :

sudo grub2-install /dev/xvda

Solution 3 : Passer de l'UEFI au BIOS

Si les problèmes persistent, vérifiez le mode actuel sur l'hôte XCP-ng :

xe vm-param-get uuid=<UUID_VM> param-name=HVM-boot-params

Passez en mode BIOS (peut nécessiter une réinstallation de l'OS) :

xe vm-param-remove uuid=<UUID_VM> param-name=HVM-boot-params param-key=firmware

Ou réglez explicitement le BIOS :

xe vm-param-set uuid=<UUID_VM> HVM-boot-params:firmware=bios

Problème : Le réseau ne fonctionne pas après l'installation

Symptômes :

  • La VM ne reçoit pas d'adresse IP ;
  • L'interface réseau affiche "disconnected" ou "no carrier" ;
  • Le ping ne fonctionne pas ;
  • L'adresse IP ne s'affiche pas dans l'interface XCP-ng ;

Causes typiques :

  • Guest Tools non installés (cause principale) ;
  • Configuration réseau incorrecte dans la VM ;
  • Problèmes d'adaptateur réseau virtuel ;
  • Pare-feu bloquant la connexion.

Solution :

  1. Installez les Guest Tools (voir la section ci-dessus) - cela résoudra 90 % des problèmes réseau.

  2. Vérifiez l'état de l'interface réseau dans l'OS invité

    Pour Linux, vérifiez l'état de l'interface :

    ip link show
    

    Vérifiez les adresses IP :

    ip addr show
    

    Pour les systèmes avec NetworkManager :

    nmcli device status
    

    Vérifiez les connexions :

    nmcli connection show
    

    Pour les systèmes avec systemd-networkd :

    networkctl status
    

    Vérifiez le routage :

    ip route show
    

  3. Activez et configurez l'interface

    Pour les systèmes basés sur RHEL avec NetworkManager, activez l'interface :

    sudo nmcli device set eth0 managed yes
    

    Activez la connexion :

    sudo nmcli connection up eth0
    

    Ou redémarrez NetworkManager :

    sudo systemctl restart NetworkManager
    

    Pour les systèmes basés sur Debian vérifiez la configuration (Ubuntu 18.04+) :

    cat /etc/netplan/00-installer-config.yaml
    

    Pour Debian/ancien Ubuntu :

    cat /etc/network/interfaces
    

    Activez l'interface :

    sudo ip link set eth0 up
    

    Demandez une IP via DHCP :

    sudo dhclient eth0
    

  4. Vérifiez les paramètres XCP-ng

    Sur l'hôte XCP-ng, vérifiez les interfaces réseau virtuelles de la VM :

    xe vif-list vm-uuid=<UUID_VM>
    

    Vérifiez les réseaux disponibles :

    xe network-list
    

    Si la VIF est manquante ou incorrecte, obtenez l'UUID du réseau :

    xe network-list name-label="Pool-wide network associated with eth0"
    

    Créez une nouvelle VIF :

    xe vif-create vm-uuid=<UUID_VM> network-uuid=<UUID_NETWORK> device=0
    

  5. Vérifiez le pare-feu

    Pour Linux (firewalld), vérifiez le statut :

    sudo systemctl status firewalld
    

    Désactivez temporairement pour tester :

    sudo systemctl stop firewalld
    

    Pour Linux (iptables), vérifiez les règles :

    sudo iptables -L -n
    

    Effacez temporairement les règles pour tester :

    sudo iptables -F
    

Problème : Installation de l'OS très lente

Symptômes :

  • L'installation prend plusieurs heures au lieu de 15-30 minutes ;
  • La copie des paquets est très lente ;
  • La VM se bloque à l'étape "Installing packages" ou "Configuring".

Causes typiques :

  • Sous-système de disque de l'hôte lent (HDD au lieu de SSD) ;
  • Storage Repository surchargé ;
  • Ressources de la VM insuffisantes (CPU, RAM) ;
  • Problèmes de performance de l'hôte.

Solutions :

  1. Utilisez l'installation minimale pour Linux :

    • La version minimale contient environ 400-600 paquets au lieu de 1000-1500 (Server with GUI) ;
    • L'installation prend 5-10 minutes au lieu de plusieurs heures ;
    • Pour les serveurs de production, l'interface graphique n'est généralement pas nécessaire ;
    • Vous pouvez installer les paquets nécessaires après l'installation.
  2. Augmentez temporairement les ressources de la VM

    Sur l'hôte XCP-ng (avant de démarrer ou pendant l'installation), augmentez la RAM :

    xe vm-param-set uuid=<UUID_VM> memory-static-max=8GiB memory-dynamic-max=8GiB
    

    Augmentez les vCPU :

    xe vm-param-set uuid=<UUID_VM> VCPUs-max=4 VCPUs-at-startup=4
    

  3. Vérifiez les performances du disque

    Sur l'hôte XCP-ng, vérifiez les E/S (I/O) :

    iostat -x 1
    

    Vérifiez la charge du disque :

    iotop
    

    Vérifiez l'état du SR :

    xe sr-list
    

    Obtenez les détails du SR :

    xe sr-param-list uuid=<UUID_SR>
    

  4. Utilisez un stockage plus rapide :

    • Si plusieurs SR sont disponibles, utilisez un SSD-based storage ;
    • Envisagez de migrer vers un autre SR.

Problème : Impossible de connecter l'ISO

Symptômes :

  • Erreur "The VM has no empty CD drive (VBD)" ;
  • Erreur "No matching VMs found" ;
  • L'ISO n'apparaît pas dans la liste disponible.

Solution 1 : La VM n'a pas de lecteur CD vide

Vérifiez les VBD (Virtual Block Devices) existants :

xe vbd-list vm-uuid=<UUID_VM>

Si le lecteur CD est occupé par une autre ISO, éjectez-la :

xe vm-cd-eject uuid=<UUID_VM>

Maintenant, insérez l'ISO nécessaire :

xe vm-cd-insert uuid=<UUID_VM> cd-name="guest-tools.iso"

Si le lecteur CD est totalement absent, trouvez d'abord l'UUID de l'ISO nécessaire :

xe cd-list name-label="guest-tools.iso"

Créez le VBD manuellement :

xe vbd-create vm-uuid=<UUID_VM> vdi-uuid=<UUID_ISO> device=3 bootable=false mode=RO type=CD

Solution 2 : Aucune VM correspondante n'a été trouvée

Problème : utilisation de l'UUID du Control Domain au lieu de celui de la VM.

Vérifiez correctement la liste des VM (en excluant le Control Domain) :

xe vm-list is-control-domain=false

Assurez-vous d'utiliser le bon UUID en vérifiant :

xe vm-param-list uuid=<UUID_VM> | grep "is-control-domain"

Cela devrait être : is-control-domain ( RO): false

Solution 3 : L'ISO n'apparaît pas dans la liste

Vérifiez que l'ISO est bien chargée :

xe cd-list

Si l'ISO n'est pas dans la liste, trouvez le SR pour l'ISO :

xe sr-list content-type=iso

Naviguez vers le répertoire ISO :

cd /opt/xensource/packages/iso

Vérifiez la présence du fichier :

ls -lh

Si le fichier est manquant, téléchargez-le depuis Internet :

wget https://example.com/your-iso.iso

Ou depuis votre ordinateur local (exécutez sur votre PC) :

scp /chemin/local/fichier.iso root@<IP-serveur>:/opt/xensource/packages/iso/

Scannez le SR :

xe sr-scan uuid=<UUID_SR>

Vérifiez à nouveau :

xe cd-list

Problème : La VM ne s'arrête pas correctement

Symptômes :

  • xe vm-shutdown ne fonctionne pas ou se bloque ;
  • La VM ne peut être arrêtée que via --force ;
  • Erreurs de timeout dans les journaux.

Causes :

  • Guest Tools non installés ou ne fonctionnant pas ;
  • L'OS ne répond pas aux événements ACPI ;
  • Processus bloqués dans l'OS invité.

Solution :

  1. Installez/vérifiez les Guest Tools (cause principale)

  2. Vérifiez l'état des Guest Tools

    Sur l'hôte XCP-ng, vérifiez la version des pilotes PV :

    xe vm-param-get uuid=<UUID_VM> param-name=PV-drivers-version
    

    Vérifiez la mise à jour des pilotes :

    xe vm-param-get uuid=<UUID_VM> param-name=PV-drivers-up-to-date
    

  3. Utilisez les commandes d'arrêt correctes

    Arrêt propre (nécessite les Guest Tools) :

    xe vm-shutdown uuid=<UUID_VM>
    

    Arrêt forcé (équivalent à appuyer sur le bouton d'alimentation) :

    xe vm-shutdown uuid=<UUID_VM> --force
    

Arrêt brutal (équivalent à débrancher le cordon d'alimentation, à utiliser uniquement en dernier recours) :

xe vm-destroy uuid=<UUID_VM>

Conseils de diagnostic général

Lorsque des problèmes surviennent, vérifiez toujours les journaux.

Dans l'OS invité (Linux), vérifiez les événements récents :

journalctl -xe

Vérifiez les messages du noyau :

dmesg | tail -50

Consultez le journal système (basé sur RHEL) :

tail -f /var/log/messages

Consultez le journal système (basé sur Debian) :

tail -f /var/log/syslog

Sur l'hôte XCP-ng, consultez le journal principal :

tail -f /var/log/xensource.log

Vérifiez les messages de l'hyperviseur Xen :

xl dmesg

Vérifiez les événements système :

journalctl -xe

Générer un rapport de diagnostic sur l'hôte XCP-ng :

xen-bugtool -y

Le résultat sera enregistré dans /var/opt/xen/bug-report/

Remarque

Des informations détaillées sur la configuration et l'administration de XCP-ng sont disponibles dans la documentation officielle.

Remarque

Forum XCP-ng - forum communautaire pour obtenir de l'aide.

Commander un serveur avec XCP-ng via l'API

Pour installer un serveur avec RouterOS en utilisant l'API, suivez ces instructions.