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 ouverte à Citrix XenServer après que Citrix ait limité les fonctionnalités de la version gratuite. Le projet fournit une plateforme de virtualisation de niveau entreprise complète sans aucune limitation artificielle, prenant en charge la migration en direct, la haute disponibilité, la gestion du stockage et l'intégration avec les systèmes d'orchestration. XCP-ng est distribué sous licence GPLv2 et des licences libres compatibles.

XCP-ng. Fonctionnalités clés

  • Virtualisation : XCP-ng prend en charge l'exécution de 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.
  • Migration en direct : capacité à déplacer des machines virtuelles en cours d'exécution entre les hôtes sans interruption de service, assurant la continuité du service lors de la maintenance du matériel.
  • Haute disponibilité (HA) : redémarrage automatique des machines virtuelles sur d'autres hôtes du pool en cas de panne de serveur.
  • Gestion du stockage : prise en charge de divers types de référentiels de stockage, y compris les disques locaux, NFS, iSCSI, Ceph et autres.
  • Instantanés et sauvegarde : création d'instantanés instantanés des états des machines virtuelles pour une récupération et une sauvegarde rapides.
  • Pools de ressources : combinaison de plusieurs hôtes XCP-ng en un seul pool pour une gestion centralisée et une répartition de la charge.
  • Capacités réseau : prise en charge des VLAN, du liaison d'interfaces réseau, de SR-IOV et des réseaux définis par logiciel.
  • Interfaces de gestion Web : XCP-ng inclut l'interface web XO Lite intégrée 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 de 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://<adresse_IP_du_serveur> ;
  • 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 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 sont effectuées 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é via le bouton Deploy XOA dans l'interface XO Lite ;
  • Support technique officiel de Vates (24h/24 et 7j/7) ;
  • Mises à jour automatiques et garanties SLA ;
  • Plans 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. Le XO Lite intégré est suffisant pour commencer, tandis que des fonctionnalités plus avancées sont disponibles via l'installation du Xen Orchestra complet.

Fonctionnalités de déploiement

ID Nom du SO Alias Actif BM GPU VPS VDS Famille Groupe SO CloudInit Disponible
306 XCP-ng 8.3 - Oui + + + - XCP-ng Autres Non COMMANDER

Configuration minimale du serveur :

  • RAM : 8 Go ;
  • HDD : 60 Go ;
  • Virtualisation : prise en charge de la virtualisation imbriquée.

Premiers pas avec XCP-ng après le déploiement

Après avoir 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 inclura l'adresse IP du VPS et les informations d'identification de connexion. Les clients de notre entreprise gèrent leur équipement via le panneau de gestion des serveurs et l'APIInvapi.

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

  • Identifiant : root ;
  • Mot de passe : Envoyé à votre adresse e-mail après que le serveur est prêt à être utilisé suite au 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 accédez à https://<adresse_IP_du_serveur> :

  • Entrez l'identifiant root et le mot de passe de l'e-mail, puis cliquez sur le bouton Login.

Information

Le navigateur peut afficher un avertissement concernant un certificat non approuvé - c'est normal pour un certificat autosigné. Ajoutez une exception pour continuer.

Connexion via SSH

  • Ouvrez un terminal et connectez-vous au serveur avec la commande :
ssh root@<adresse_IP_du_serveur>
  • Entrez le mot de passe lorsque vous y êtes invité. Après une connexion réussie, vous serez dans l'invite 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.

Utilisation de xsconsole

Lors de la connexion via SSH ou console VNC, vous pouvez utiliser xsconsole - la console de gestion texte 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 de l'état

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

Interface réseau et de gestion

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

Authentification

  • Modification du mot de passe root ;
  • Gestion de l'accès SSH ;
  • Configuration du compte.

Machines virtuelles

  • Affichage de 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 référentiels de stockage

  • Affichage des disques connectés ;
  • Gestion des référentiels de stockage ;
  • Création et suppression de SR.

Configuration du pool de ressources

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

Informations matérielles et BIOS

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

Clavier et fuseau horaire

  • Configuration de la disposition du clavier ;
  • Paramétrage du fuseau horaire système.

Configuration des services distants

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

Sauvegarde, restauration et mise à jour

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

Support technique

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

Shell de commande local

  • Sortie vers l'invite de commande bash standard ;
  • Pour l'exécution de commandes et de scripts arbitraires.

Redémarrage ou arrêt

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

Conseil

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 n'est pas disponible. Pour quitter xsconsole et revenir à l'invite de commande régulière, sélectionnez Local Command Shell.

Travail avec XO Lite

Après l'autorisation dans XO Lite, le panneau de gestion principal (Tableau de bord) 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 : affichage des avertissements et alertes système ;
  • STATS : statistiques de performance et d'utilisation des ressources ;
  • SYSTEM : paramètres système de l'hôte ;
  • NETWORK : gestion des interfaces réseau et des réseaux virtuels ;
  • STORAGE : gestion du stockage de données (référentiels de stockage) ;
  • TASKS : journal des tâches en cours et terminées ;
  • HOSTS : informations sur les hôtes du pool ;
  • VMS : gestion des machines virtuelles.

Gestion réseau

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

Ici, vous pouvez afficher les réseaux à l'échelle 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éation d'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 référentiel de stockage.

Chargement 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 un ISO, vous devez utiliser l'invite de commande :

  1. Connectez-vous au serveur via SSH

        ssh root@<adresse_IP_du_serveur>
    
  2. Si xsconsole s'ouvre après la connexion, quittez vers l'invite de commande régulière en sélectionnant l'élént 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. Accédez au 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 l'ordinateur local (exécutez sur votre PC)

        scp /path/to/file.iso root@<adresse_IP_du_serveur>:/opt/xensource/packages/iso/
    
  6. Rafraîchissez le stockage

        xe sr-scan uuid=<UUID_SR>
    
    <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éation d'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 de système d'exploitation (par exemple, 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 réseau (nécessite un serveur PXE configuré).
    • System : spécifiez le nom de la VM, la description, le type de micrologiciel (BIOS/UEFI) ;
    • Memory : définissez le nombre de vCPU 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 (facultatif).
  • Consultez 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 démarrage à partir de l'image ISO commencera. L'interface XO Lite ouvrira la page Tableau de bord de la VM créée :

La page Tableau de bord affiche :

  • Quick info : informations de base sur la VM (état, 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é du disque ;
  • Change state : menu de gestion de l'état de la VM (démarrer, mettre en pause, redémarrer, arrêter).

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

Conseil

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

Sélection de l'image ISO

Lors de la sélection d'une image ISO, tenez compte du type d'image :

Pour Linux (en utilisant AlmaLinux comme exemple) :

  • DVD/Full ISO (~4-10 Go) - image complète, contient tous les packages, ne nécessite pas d'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 packages
    • 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), en particulier si la VM a une connexion Internet instable ou aucune connexion.

Recommandations de sélection du micrologiciel

  • UEFI - recommandé pour les systèmes d'exploitation modernes :
    • Linux : AlmaLinux 9+, Ubuntu 20.04+, Debian 11+ ;
    • Windows : Windows Server 2016+, Windows 10/11.
  • BIOS - pour la compatibilité :
    • Anciennes versions de systèmes d'exploitation ;
    • En cas de problèmes de démarrage UEFI ;
    • Scénarios spécifiques (applications héritées).

Choix du logiciel

Lors de l'installation de distributions Linux, diverses options d'environnement sont disponibles :

  • Minimal Install - système de base sans interface graphique (~400-600 packages, installation de 5 à 10 minutes)
    • Recommandé pour les serveurs et la production ;
    • Consommation minimale de ressources.
  • Server with GUI - système complet avec interface graphique (~1000-1500 packages, 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, Minimal Install est recommandé.

Installation des outils invités XCP-ng

Après l'installation du système d'exploitation, il est critiquement important d'installer les outils invités XCP-ng pour que la machine virtuelle fonctionne correctement.

Pourquoi les outils invités sont nécessaires

Les outils invités fournissent :

  • Arrêt et redémarrage corrects de la VM (arrêt doux) ;
  • Affichage de l'adresse IP et de l'état de la VM dans l'interface XCP-ng ;
  • Amélioration des performances réseau et disque ;
  • Synchronisation de l'heure entre l'hôte et le système d'exploitation invité ;
  • Prise en charge des instantanés avec mise en pause (instantanés cohérents) ;

Important

Sans les outils invités installés, 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 outils invités

Étape 1 : Finalisation de l'installation du système d'exploitation

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

Important

Ne redémarrez pas la machine virtuelle immédiatement. Tout d'abord, vous devez 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é après le premier démarrage du système installé.

Étape 2 : Remplacement de l'ISO par les outils invités (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="NOM_VM"

Ou obtenez une liste de toutes 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 connecté) :

xe vm-cd-eject uuid=<UUID_VM>

Insérez l'ISO des outils invités :

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

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

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 - c'est le nom du périphérique dans le système invité (dans ce cas xvdd).

Étape 3 : Redémarrage de 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 déjà dans un système en cours d'exécution : Le redémarrage n'est pas requis, passez à l'étape 4.

Étape 4 : Installation des outils invités dans le système d'exploitation 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 des outils invités :

mount /dev/sr0 /mnt/cdrom

Si /dev/sr0 ne fonctionne pas, essayez les options alternatives :

mount /dev/cdrom /mnt/cdrom

ou

mount /dev/xvdd /mnt/cdrom

Vérifiez le contenu :

ls -la /mnt/cdrom/Linux/

Accédez au 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 se bloquer à 100 % pendant 30 à 60 secondes - c'est normal. Si elle se bloque pendant 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 le 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 n'installe que 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 l'état du service :

systemctl status xe-linux-distribution

Démontez l'ISO :

cd ~
umount /mnt/cdrom

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

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 des outils invités :

sudo mount /dev/sr0 /mnt/cdrom

Accédez au répertoire :

cd /mnt/cdrom/Linux

Lancez l'installation :

sudo bash install.sh

Vérifiez l'installation :

dpkg -l | grep xe-guest

Vérifiez l'état 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 référentiel

Si le montage ISO ne fonctionne pas ou si vous souhaitez installer les outils invités via le gestionnaire de packages.

Pour les systèmes basés sur RHEL (AlmaLinux, Rocky, CentOS), installez le référentiel 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 l'état :

sudo systemctl status xe-linux-distribution

Remarque

L'installation via le référentiel nécessite une connexion Internet active dans la VM.

Étape 5 : Vérification du fonctionnement des outils invités

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

Dans le système d'exploitation invité (Linux) vérifiez l'état 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 des informations générales sur 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 Tableau de bord de la VM devrait afficher (mis à jour après 10 à 30 secondes) :

  • IP address : adresse IP de la VM ;
  • Guest tools : version des outils invités installés (par exemple, 7.30.0-12) ;
  • OS name : système d'exploitation détecté (par exemple, AlmaLinux release 9.7) :

Gestion des machines virtuelles

L'onglet VMS affiche une liste de toutes les machines virtuelles avec des 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 instantané d'état ;
  • Export : exporter la VM vers un fichier ;
  • Delete : supprimer la machine virtuelle.

Travail avec le stockage, les ISO et les réseaux

Gestion des référentiels de stockage (SR)

Afficher 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>
Afficher l'utilisation de l'espace disque

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

Travail 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>
Accéder au répertoire ISO (généralement /opt/xensource/packages/iso)

cd /opt/xensource/packages/iso
Afficher les ISO disponibles

ls -lh
Télécharger l'ISO depuis Internet

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

scp /path/to/file.iso root@<adresse_IP_du_serveur>:/opt/xensource/packages/iso/

Attention

Vous devez rafraîchir le SR après l'ajout de l'ISO

xe sr-scan uuid=<UUID_SR>
Vérifier que l'ISO est apparu

xe vdi-list sr-uuid=<UUID_SR>

Gestion du stockage local

Afficher les disques virtuels (VDI) :

xe vdi-list sr-uuid=

Vérifier l'espace libre :

df -h

Afficher la liste des instantanés :

xe snapshot-list | grep snapshot

Supprimer un instantané :

xe snapshot-uninstall snapshot-uuid=

Gestion réseau

Afficher tous les réseaux :

xe network-list

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

xe network-param-list uuid=

Afficher les interfaces physiques (PIF) :

xe pif-list

Détails spécifiques du PIF :

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="Réseau privé VM"

Créer un réseau VLAN :

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

Afficher les interfaces réseau de la VM :

xe vif-list vm-uuid=

Créer une nouvelle interface réseau pour la 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

Seulement 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êt forcé de la VM :

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

Créer un instantané :

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

Lister les instantanés :

xe snapshot-list

Restaurer à partir d'un instantané :

xe snapshot-revert snapshot-uuid=<UUID_instantané>

Supprimer un instantané :

xe snapshot-uninstall snapshot-uuid=<UUID_instantané>

Exporter la VM :

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

Importer la 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_hôte> param-name=memory-free

Utilisation du CPU par les machines virtuelles :

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

Afficher le journal principal de XCP-ng :

tail -f /var/log/xensource.log

Journaux système :

journalctl -xe

Afficher 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/

Gestion des images ISO et des lecteurs CD

Lister les images ISO disponibles :

xe cd-list

Informations détaillées sur l'ISO dans le SR :

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

Attacher l'ISO à la VM :

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

Éjecter l'ISO de la VM :

xe vm-cd-eject uuid=

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

xe vbd-list vm-uuid= type=CD

Accéder au répertoire ISO sur l'hôte :

cd /opt/xensource/packages/iso

Télécharger l'ISO depuis Internet :

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

Rafraîchir le SR après le chargement de l'ISO :

xe sr-scan uuid=

Vérification de l'état des outils invités

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 des informations sur le système d'exploitation 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 des 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 d'urgence/récupération

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 de bloc :

lsblk

Si le problème se trouve dans fstab (par exemple, swap ou disque manquant), modifiez 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 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 BIOS/UEFI.

Causes typiques :

  • Ordre de démarrage incorrect ;
  • ISO toujours connecté comme premier périphérique de démarrage ;
  • Corruption du chargeur de démarrage GRUB ;
  • Incompatibilité UEFI/BIOS.

Solution 1 : Vérifier et modifier 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 du système d'exploitation, définissez le CD en premier :

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

Après l'installation du système d'exploitation, définissez le démarrage uniquement depuis le HDD :

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

Éjectez l'ISO d'installation si toujours connecté :

xe vm-cd-eject uuid=<UUID_VM>

Redémarrez la VM :

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

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

Si vous finissez dans l'invite 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 avec /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 (Ubuntu, Debian) :

sudo update-grub

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

sudo grub2-install /dev/xvda

Solution 3 : Basculer entre UEFI et BIOS

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

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

Basculer vers BIOS (peut nécessiter une réinstallation du système d'exploitation) :

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

Ou définir explicitement 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 n'obtient pas d'adresse IP ;
  • L'interface réseau affiche "déconnecté" ou "pas de porteur" ;
  • Le ping ne fonctionne pas ;
  • L'adresse IP n'est pas affichée dans l'interface XCP-ng ;

Causes typiques :

  • Outils invités 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. Installer les outils invités (voir la section ci-dessus) - cela résoudra 90 % des problèmes réseau

  2. Vérifier l'état de l'interface réseau dans le système d'exploitation invité

    Pour Linux vérifier l'état de l'interface :

    ip link show
    

    Vérifier les adresses IP :

    ip addr show
    

    Pour les systèmes avec NetworkManager :

    nmcli device status
    

    Vérifier les connexions :

    nmcli connection show
    

    Pour les systèmes avec systemd-networkd :

    networkctl status
    

    Vérifier le routage :

    ip route show
    

  3. Activer et configurer l'interface

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

    sudo nmcli device set eth0 managed yes
    

    Activer la connexion :

    sudo nmcli connection up eth0
    

    Ou redémarrer NetworkManager :

    sudo systemctl restart NetworkManager
    

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

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

    Pour Debian/ancien Ubuntu :

    cat /etc/network/interfaces
    

    Activer l'interface :

    sudo ip link set eth0 up
    

    Demander une IP via DHCP :

    sudo dhclient eth0
    

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

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

    xe vif-list vm-uuid=<UUID_VM>
    

    Vérifier les réseaux disponibles :

    xe network-list
    

    Si le VIF est manquant ou incorrect, obtenez l'UUID du réseau :

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

    Créer un nouveau VIF :

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

  5. Vérifier le pare-feu

    Pour Linux (firewalld) vérifier l'état :

    sudo systemctl status firewalld
    

    Désactiver temporairement pour les tests :

    sudo systemctl stop firewalld
    

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

    sudo iptables -L -n
    

    Effacer temporairement les règles pour les tests :

    sudo iptables -F
    

Problème : Installation du système d'exploitation très lente

Symptômes :

  • L'installation prend plusieurs heures au lieu de 15 à 30 minutes ;
  • La copie des packages 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) ;
  • Référentiel de stockage surchargé ;
  • Ressources insuffisantes de la VM (CPU, RAM) ;
  • Problèmes de performance de l'hôte.

Solutions :

  1. Utiliser l'installation minimale pour Linux :

    • Minimal contient ~400-600 packages au lieu de 1000-1500 (Serveur avec interface graphique) ;
    • L'installation prend 5 à 10 minutes au lieu d'heures ;
    • Pour les serveurs de production, l'interface graphique n'est généralement pas nécessaire ;
    • Vous pouvez installer les packages nécessaires après l'installation.
  2. Augmenter temporairement les ressources de la VM

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

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

    Augmentez le vCPU :

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

  3. Vérifier les performances du disque

    Sur l'hôte XCP-ng, vérifiez l'E/S :

    iostat -x 1
    

    Vérifier la charge du disque :

    iotop
    

    Vérifier l'état du SR :

    xe sr-list
    

    Obtenir les détails du SR :

    xe sr-param-list uuid=<UUID_SR>
    

  4. Utiliser un stockage plus rapide :

    • Si plusieurs SR sont disponibles, utilisez un stockage basé sur SSD ;
    • 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érifier les VBD existants (périphériques de bloc virtuels) :

xe vbd-list vm-uuid=<UUID_VM>

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

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 complètement absent, trouvez d'abord l'UUID de l'ISO nécessaire :

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

Créer 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 trouvée

Problème : utilisation de l'UUID du domaine de contrôle au lieu de la VM.

Vérifier la liste des VM correctement (en excluant le domaine de contrôle) :

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"

Devrait être : is-control-domain ( RO): false

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

Vérifier que l'ISO est chargé :

xe cd-list

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

xe sr-list content-type=iso

Accéder au répertoire ISO :

cd /opt/xensource/packages/iso

Vérifier la présence du fichier :

ls -lh

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

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

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

scp /local/path/file.iso root@<IP_hôte>:/opt/xensource/packages/iso/

Rafraîchir le SR :

xe sr-scan uuid=<UUID_SR>

Vérifier à 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 délai d'attente dans les journaux

Causes :

  • Outils invités non installés ou ne fonctionnant pas
  • Le système d'exploitation ne répond pas aux événements ACPI
  • Processus bloqués dans le système d'exploitation invité

Solution :

  1. Installer/vérifier les outils invités (cause principale)

  2. Vérifier l'état des outils invités

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

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

    Vérifier la mise à jour des pilotes :

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

  3. Utiliser les commandes d'arrêt correctes

    Arrêt doux (nécessite les outils invités) :

    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éraux

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

Dans le système d'exploitation invité (Linux) vérifier les événements récents :

journalctl -xe

Vérifier les messages du noyau :

dmesg | tail -50

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

tail -f /var/log/messages

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

tail -f /var/log/syslog

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

tail -f /var/log/xensource.log

Vérifier les messages de l'hyperviseur Xen :

xl dmesg

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

journalctl -xe

Création d'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.

Commande d'un serveur avec XCP-ng via l'API

Pour installer un serveur avec RouterOS à l'aide de l'API, suivez ces instructions.