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.

XCP-ng, la solution de virtualisation open-source sous Xen
xcpng xen virtualization opensource

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.

XCP-ng successful Kickstarter campaign
That’s it! Kickstarter campaign is over, and it was a tremendous success!

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.

Vates SAS - Open Source solutions

Si vous voulez en savoir plus sur cette solution, lisez cette traduction d'un post du fondateur sur le forum de lawrencesystems.com.

(Traduction) Xen vs XenServer vs KVM vs Proxmox
Je vous partage ce post très intéressant de Olivier Lambert (CEO et co-fondateur de Vates, créateur de Xen Orchestra et XCP-ng) sur le forum de Lawrence Systems. On y apprend pas mal de choses : * Le fonctionnement de Xen, * Comment Amazon s’est basé sur Xen pour monter son cloud avec AWS,

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.

RunX: next generation secured containers
In this article, you’ll discover a way to give all your containers a new level of isolation and security you can’t have by default. All of this in a transparent manner in your existing container workflows!

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.

Guide du PC sous Intel Xeon
Tutoriel assez spécial aujourd’hui car je vais vous dévoiler comment obtenir un PC bureautique puissant à prix imbattable sous Intel Xeon. La partie 1, 2 et le début de la partie 5 sont les plus intéressantes car inédites. Bonne lecture!!!!! Au sommaire : * Quel PC choisir ? * Quel processeur c…

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.

XCP-ng - XenServer Based, Community Powered

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.

Network Time Protocol (NTP) : définition et fonctionnement
Le protocole de synchronisation NTP (Network Time Protocol) aide de nombreux systèmes informatiques à actualiser l’heure de leur système.

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 :

Proxmox VE - Créer un template avec cloud-init
Aujourd’hui, nous allons voir comment créer un template de machine virtuelle pré-configuré avec cloud-init. Qu’est-ce que Cloud-init ? Cloud-init est un outil conçu par Canonical permettant de gérer l’initialisation d’une machine virtuelle dans le cloud. Au premier démarrage, cloud-init va : *…

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

Release v20.04.01 · xcp-ng/xenadmin
Disclaimer The official graphical client for XCP-ng is Xen Orchestra, which gets support from a team of several developers. On the other hand, XCP-ng Center is maintained by community members on th…

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 :

Xen Orchestra 5.74
It’s back to school time! We’re happy to see you with a new release from Xen Orchestra. This month, we focused on backup and XO Lite, specifically on backup encryption.
Xen Orchestra Lite
Xen Orchestra Lite is an ongoing project around XCP-ng and Xen Orchestra. it doesn’t require you to host any virtual appliance and will allow you to do basic management of your host directly from the browser of your choice. Pierre, the lead developer of t…