XCP-ng, la solution de virtualisation open-source sous Xen
Guide d'installation de la solution de virtualisation open-source XCP-ng basé sur l'hyperviseur Xen.
Au sommaire :
- 1-Qu'est-ce que XCP-ng ?
- 2-Caractéristiques
- 3-Prérequis
- 4-Installer XCP-ng
- 5-Installer Xen Orchestra
- 6-Installer Xen Orchestra Lite
- 7-Installer XCP-ng Center (Windows)
- 8-Quelques détails supplémentaires
1-Qu'est-ce que XCP-ng ?
XCP-ng (Xen Cloud Platform - next generation) est une solution de virtualisation de type 1 basé sur l'hyperviseur open-source Xen et un fork de la solution Citrix XenServer (Citrix Hypervisor aujourd'hui).
Parlons en de l'hyperviseur Xen.
Sortis pour la première fois en 2003, Xen est l'un des deux hyperviseurs historique de la famille Linux avec KVM.
Pour mieux vous situer Xen, c'est avant tout l'hyperviseur principal du n°1 du cloud AWS.
L'histoire de cet hyperviseur, c'est un peu Dallas (et son monde impitoyable), si on devait résumer :
- Développement de Xen à l'université de Cambridge en Angleterre par Ian Pratt et Keir Fraser
- Première version mis en ligne en 2003 avec une version stable en 2004
- Fondation peu après de la société XenSource
- Rachat de XenSource par Citrix en 2007
- Création de XCP en 2010 en tant que version open-source de Citrix XenServer
- Le projet Xen passe sous le contrôle de la Linux Foundation en 2013
Et vient l'année 2017 lorsque Citrix impose des restrictions sur XenServer Free Edition. Les options retirés ou limités sont :
- La mémoire dynamique
- Les migrations en direct
- Les serveurs illimités par pool (seulement 3 par pool désormais)
Mais c'était sans compter sur Olivier Lambert, fondateur de la solution Xen Orchestra qui lance alors une collecte de fonds sur Kickstarter en janvier 2018 pour financer la solution XCP-ng.
Le projet a rencontré un grand succès en étant financé à 437% au bout de 5 jours et à 650% à la fin. Plus de 35.000 euros ont été récoltés via Kickstarter et plus de 50.000 euros avec diverses donations.
XCP-ng est sorti le 31 mars 2018 et se base sur les sources de XenServer 7.4.
La société Grenobloise Vates s'occupe de maintenir et faire évoluer la solution et depuis janvier 2020, XCP-ng fais partis du projet Xen au sein de la Linux Foundation.
Si vous voulez en savoir plus sur cette solution, lisez cette traduction d'un post du fondateur sur le forum de lawrencesystems.com.
2-Caractéristiques
Voici ce que j'ai pu réunir comme informations en épluchant les différents articles du blog XCP-ng :
- Système d’exploitation basé sur CentOS
- Modèle de facturation par hôte et non par socket ou cœur.
- Outils de migration disponible de XenServer vers XCP-ng mais également pour d'autres solutions comme ESXi et Proxmox VE
- Dépôt RPM pour mettre à jour le système depuis la 7.4.1
- Support du système de fichiers ZFS
- Amélioration du support de Ceph
- USB Passthrough
- SR-IOV
- Supporte jusqu'à 64 nœuds depuis la version 7.5
- Support du RAID1 logiciel et netinstall
- Compatible avec Cloudstack
- Compression en Zstandard (v5.31)
Contrairement à Citrix XenServer, toutes les options sont déverrouillés sauf la migration en direct de vGPU qui n'est pas Open Source (abonnement obligatoire à XenServer Enterprise).
En plus de gérer les machines virtuelles, XCP-ng peut également manipuler des conteneurs avec le projet Runx Containers.
3-Prérequis
Un serveur avec minimum 4 à 8 Go de mémoire vive, un SSD et les instructions de virtualisation assissté par le matériel (AMD-V/Intel-vt-x) son requis.
Si vous souhaitez obtenir un serveur puissant et à bas coût, suivez mon guide de référence dans le domaine.
4-Installer XCP-NG
Téléchargez l'ISO de XCP-ng à partir du lien ci-dessous et flashez votre clé USB avec Rufus ou Balena Etcher.
Démarrez votre serveur puis démarrez sur la clé USB et au chargement du menu, appuyez sur "Entrée" à l'écran d'accueil.
Choisissez "[azerty] fr".
Choisissez "Ok" pour continuer l'installation.
Acceptez les CGU.
Sélectionnez votre disque et validez avec "Ok". Je préfère LVM (volume logique) mais pouvez choisir EXT si vous le souhaitez. On est dans un homelab, n'oubliez pas.
Indiquez que vous installer XCP-ng à partir d'un support local (le DVD monté dans la machine virtuelle) mais vous pouvez aussi l'installer à travers les protocoles NFS, HTTP ou FTP (testez lors d'une prochaine installation histoire de vous faire la main).
Vérifiez l'image ou esquivez cette étape.
Choisissez votre mot de passe et validez.
Ajoutez une adresse IP statique ainsi que le sous masque et la passerelle par défaut puis validez.
Ajoutez un nom d'hôte. Pour ma part, je compte créer un cluster de 3 serveurs donc je le nomme "xcpng01.lan" pour commencer. Indiquez un DNS puis validez.
Choisissez votre zone géographique et la capitale (Europe/Paris).
Choisissez votre serveur NTP pour synchroniser l'horloge locale.
Enfin, installez XCP-ng.
Validez par "No".
Validez par "Ok".
XCP-ng est enfin installé, mes félicitations "kid".
5-Installer Xen Orchestra
Xen orchestra est une interface de management conçue et maintenue par la société Vates qui vous permet de gérer vos serveurs XCP-ng.
Il a la particularité d'être "stand-alone", c'est à dire que contrairement à Proxmox VE ou ESXi, l'interface n'est pas installé dans le système hôte de chaque serveur mais à l'extérieur (votre poste client ou une machine virtuelle par exemple).
Vous pouvez installer Xen Orchestra à partir du site officiel mais je vous conseille plutôt la version communautaire qui n'est pas limité en fonctionnalités.
Car oui, autant XCP-ng est open-source et sans aucune limitation, autant Xen Orchestra est disponible à différents niveaux de tarification.
Créez une machine virtuelle Ubuntu à partir de cloud-init comme indiqué dans un de mes tutoriaux :
Lorsque votre machine virtuelle est prête :
- Connectez vous en SSH,
- Mettez à jour les paquets,
- Installez le paquet "git" puis cloner le dépôt du script,
- Enfin, exécutez le script pour installer Xen Orchestra CE (Community Edition),
xenorchestra@xo-community:~$ sudo git clone https://github.com/ronivay/XenOrchestraInstallerUpdater.git
Cloning into 'XenOrchestraInstallerUpdater'...
remote: Enumerating objects: 1202, done.
remote: Counting objects: 100% (350/350), done.
remote: Compressing objects: 100% (104/104), done.
remote: Total 1202 (delta 268), reused 255 (delta 246), pack-reused 852
Receiving objects: 100% (1202/1202), 269.69 KiB | 1.60 MiB/s, done.
Resolving deltas: 100% (733/733), done.
xenorchestra@xo-community:~$ cd XenOrchestraInstallerUpdater
xenorchestra@xo-community:~/XenOrchestraInstallerUpdater$ sudo ./xo-install.sh
WARNING: you have less than 3GB of RAM in your system. Installation might run out of memory
continue anyway? y/N: y
-----------------------------------------
Welcome to automated Xen Orchestra install
Following options will be used for installation:
OS: Ubuntu 22
Basedir: /opt/xo
User: root
Port: 80
HTTPS: false
Git Branch for source: master
Following plugins will be installed: all
Number of previous installations to preserve: 3
Node.js and yarn auto update: true
Errorlog is stored to /home/xenorchestra/XenOrchestraInstallerUpdater/logs/xo-install.log-202206101824 for debug purposes
Depending on which installation is chosen:
Xen Orchestra configuration will be stored to /root/.config/xo-server/config.toml, if you don't want it to be replaced with every update, set CONFIGUPDATE to false in xo-install.cfg
Xen Orchestra Proxy configuration will be stored to /root/.config/xo-proxy/config.toml. Config won't be overwritten during update, ever
-----------------------------------------
1. Install
2. Update
3. Rollback
4. Install proxy
5. Update proxy
6. Exit
: 1
[ok] OS Ubuntu so making sure universe repository is enabled
[ok] Running apt-get update
[ok] Installing build dependencies, redis server, python, git, libvhdi-utils, lvm2, nfs-common, cifs-utils, curl, ntfs-3g, libxml2-utils
[ok] Installing apt-transport-https and ca-certificates packages to support https repos
[ok] Installing node.js
[ok] Installing yarn
[ok] Enabling and starting redis service
[ok] Enabling and starting rpcbind service
[info] Creating missing basedir to /opt/xo
[info] Creating missing xo-builds directory to /opt/xo/xo-builds
[info] Fetching Xen Orchestra source code
[info] Creating install directory: /opt/xo/xo-builds/xen-orchestra-202206101824
[info] Installing Xen Orchestra from branch: master - commit: 7387ac241
[info] No 3rd party plugins to install
[info] xo-server and xo-web build takes quite a while. Grab a cup of coffee and lay back
[ok] Running installation
[ok] Installing plugins
[info] Fixing binary path in systemd service configuration file
[info] Adding WorkingDirectory parameter to systemd service configuration file
[info] Replacing systemd service configuration file
[info] Reloading systemd configuration
[info] Fixing relative path to xo-web installation in xo-server configuration file
[info] Activating modified configuration file
[info] Symlinking fresh xo-server install/update to /opt/xo/xo-server
[info] Symlinking fresh xo-web install/update to /opt/xo/xo-web
[info] Starting xo-server...
waiting for port to be open
WebUI started in port 80. Make sure you have firewall rules in place to allow access.
Default username: admin@admin.net password: admin
[info] Installation successful. Enabling xo-server service to start on reboot
xenorchestra@xo-community:~/XenOrchestraInstallerUpdater$
Authentifiez-vous :
- User : admin@admin.net
- Password : admin
Cliquez sur "Add server".
Activez l'option "Unauthorized Certificates" et cliquez sur "Enabled" pour supprimer le panneau rouge.
Votre serveur est enfin prêt!!!!
C'est une interface graphique qui va ravir les administrateurs Windows (sarcasme). C'est sûr qu'en comparaison de Proxmox VE, il n'y a pas photo. Après les goûts et les couleurs.
6-Installer Xen Orchestra Lite (optionnel)
XO Lite est une version allégé de Xen Orchestra qui s'installe directement dans votre serveur.
L'avantage c'est qu'il permet d'afficher de multiples informations sans avoir à y accéder via le CLI.
L'inconvénient c'est qu'il est pour l'instant limité en fonctionnalités et en cours de développement.
Pour l'installer, tapez la commande suivante dans le terminal qui va récupérer le serveur web et le renommer par la suite.
wget https://lite.xen-orchestra.com/dist/ -O /opt/xensource/www/xolite.html
Puis tapez l'adresse suivante dans votre navigateur.
https://<host_IP_address>/xolite.html
Authentifiez vous.
Et vous avez accès aux informations de votre serveur.
7-Installer XCP-ng Center (Windows)
XO Orchestra est l'interface web officielle de XCP-ng qui est maintenue par plusieurs développeurs mais vous avez également pour les systèmes Windows le logiciel XCP-ng Center qui est lui maintenue par la communauté.
N'ayant pas de poste sous Windows, je ne pourrait vous en faire une revue détaillé de ce dernier mais c'est sur le même principe que XO Orchestra, c'est à dire manipuler vos serveurs à distance sans stocker l'outil de gestion au cœur même de ces derniers.
7-Quelques détails supplémentaires
Contrairement à Proxmox VE, XO Orchestra propose des paramètres prédéfinis selon le système choisi, ce qui peux aider les débutants.
Pour la partie réseau, XCP-ng propose OVS comme SDN (Software Defined Network) donc pas de Linux Bridge par défaut.
Pour le stockage, ZFS, GlusterFS et Ceph sont supportés mais pas mis en avant officiellement.
Ensuite pour les pilotes de paravirtualisation. Comme avec les pilotes VirtIO sur KVM, les pilotes Xen sont reconnus nativement par Linux (ils sont intégrés au noyau) mais nécessite une installation sur une machine virtuelle Windows.
Contrairement aux pilotes VirtIO, nul besoin de charger une ISO, les pilotes Xen sont disponibles sur Windows Update. Dans les paramètres de la machine virtuelle, Il suffit de cliquer sur "Windows Update tools" pour que ce dernier vous propose les pilotes.
Lorsque vous aurez crée une machine virtuelle, dans les paramètres, activez l'option "Manage Citrix PV drivers via Windows Update"
Cliquez sur "OK"
Démarrez la machine virtuelle et un message devrait apparaître vous demandant de redémarrer le système pour installer les pilotes.
Après le redémarrage, allez dans les services et vous verrez l'agent et le pilote de para-virtualisation activé en en cours de fonctionnement.
Source :