how-to-install-and-manage Help

Xen Orchestra

Xen Orchestra est une solution de gestion de serveurs XenServer. Elle permet de gérer les hyperviseurs XCP NG, les serveurs, les pools, les réseaux, les stockages, etc.

Architecture

Nous avons décidé de déployer Xen Orchestra sur un serveur dédié qui sera relié à Netbird pour avoir accès à tous les hyperviseurs de tous les sites. Ensuite, nous avons décidé d'utiliser docker pour déployer Xen Orchestra.

Installation

Cette installation est basée sur un serveur ubuntu 24.04 car le VPS opal à des dépendances qui rendent l'installation de nixos impossible.

Prérequis

Installer docker et docker-compose

sudo apt-get update -y sudo apt-get install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo \ "deb [arch=$(dpkg --print-architecture) \ signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu \ $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt-get update -y sudo apt-get install -y docker-ce docker-ce-cli containerd.io \ docker-buildx-plugin docker-compose-plugin

Installation de Xen Orchestra

Ensuite, il faut rajouter sa session au groupe docker pour ne pas avoir à utiliser sudo à chaque commande docker

sudo usermod -aG docker $USER

Et si on fait un docker ps -a on doit voir les containers qui tournent.

docker-ps.png

Une fois cela, il faut rédiger le docker compose permettant de lancer Xen Orchestra

version: '3.6' services: caddy: image: caddy:cloudflare restart: unless-stopped build: . ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile # Lier le fichier Caddyfile - caddy_data:/data # Stockage des certificats - caddy_config:/config # Configuration interne de Caddy networks: - public xen-orchestra: restart: unless-stopped image: ronivay/xen-orchestra:5.168.1 container_name: xenorchestra stop_grace_period: 1m networks: - public environment: - HTTP_PORT=80 # capabilities are needed for NFS/SMB mount cap_add: - SYS_ADMIN - DAC_READ_SEARCH security_opt: - apparmor:unconfined volumes: - /srv/xo:/var/lib/xo-server - /srv/xo:/var/lib/redis logging: &default_logging driver: "json-file" options: max-size: "1M" max-file: "2" devices: - "/dev/fuse:/dev/fuse" - "/dev/loop-control:/dev/loop-control" - "/dev/loop0:/dev/loop0" networks: public: volumes: caddy_data: caddy_config:

Configuration de Caddy

Il faut ensuite créer le fichier Caddyfile pour avoir le reverse proxy car sur cette machine il y a plusieurs services qui sont exposés.

xo.innovalia.cc:443 { reverse_proxy http://xenorchestra tls { dns cloudflare {env.CF_API_TOKEN} } }

Ensuite il est juste nécessaire de créer les registres dns afin que l'acme se fasse correctement.

cloudflare-a-xo
cloudflare-a-xo-v6

Et ensuite il suffit de lancer le docker-compose

docker-compose up -d

Et de nous rendre sur la page web

xo-landing.png

Ajouter un Host à Xen Orchestra

Pour ajouter un host à Xen Orchestra, il faut ajouter l'host dans la partie Settings puis Server et ensuite Add a new server.

add-hosts-xo.png

Visualisation de l'hosts dans xo :

visual-hosts-xo.png

Donc là, nous pouvons voir que l'host uranium a bien été ajouté à Xen Orchestra. Et qu'Uranium fait partie de la pool uranium.

Nous allons effectuer la même opération pour ne deux autres serveurs.

server-xo.png

Nous pouvons attester que cela fonctionne, car il est possible de visualiser les machines virtuelles de tous les hyperviseurs.

vm-xo.png

Backup

Delta Backup

schéma : Delta Backup

Le Delta Backup est une autre fonctionnalité puissante de Xen Orchestra qui permet de réaliser des sauvegardes incrémentielles des VMs. Contrairement aux sauvegardes complètes, qui copient l'intégralité des données de la VM à chaque sauvegarde, le Delta Backup ne copie que les changements (deltas) effectués depuis la dernière sauvegarde complète ou incrémentielle. Cela réduit considérablement la quantité de données transférées et stockées.

Création

  1. Dans Backup choisir l'onglet New puis le type de Backup souhaité :

choix de backup
  1. Choix du nom et réplication :

nom et type de réplication
  1. Choix du stockage à utiliser pour stocker les machines répliquées :

stockage de réplication
  1. Choix des machines à répliquer :

Nous allons répliquer toutes les machines, peu importe leur statut (allumé, éteinte), qui portent le tag Backup.

Screenshot 2025-07-13 181608.png
  1. Fréquence de sauvegarde :

Dans un premier temps, nous allons nommer notre fréquence de sauvegarde, et lui indiquer combien de machines backupées nous devons garder. Puis, nous allons ensuite configurer la fréquence :

Paramétrage de la fréquence de réplication

Pour être sûr que nous avons paramétré la fréquence voulue, nous avons un aperçu des dates auxquelles les réplications seront faites.

Une fois notre paramétrage terminé, nous obtenons cette ligne qui permet de résumer les actions précédentes :

Fréquence de réplication

Test

Pour tester notre réplication, nous devons aller dans Backup puis Overview. Nous avons la possibilité de tester notre réplication grâce au bouton play :

Screenshot 2025-04-24 152719.png

En descendant plus bas dans la page, nous pouvons suivre grâce aux logs l'avancement de la réplication.

Screenshot 2025-05-25 215433.png

Xen Orchestra Proxy

Xen Orchestra Proxy est un service qui permet de gérer les connexions entre Xen Orchestra et les hyperviseurs XCP-ng. Il est utilisé pour réaliser les backups via le proxy afin d'éviter de surcharger le réseau principal.

Nous avons du l'utiliser car la machine Opal qui est le VPS xen orchestra est bridé à 100mbit/s. Ce qui n'est pas suffisant pour faire des backups de plusieurs machines virtuelles. Pourt palier à ce soucis nous avons décidé d'installer un proxy sur une machine disposant de plus de bande passante.

Installation de Xen Orchestra Proxy

Pour le proxy, nous avons choisi une machine ubuntu car le paquet xen orchestra proxy n'est pas packagé pour nixos.

Pour installer xen orchestra, nous allons utiliser un script d'installation de la communauté qui permet de compiler depuis les sources xen orchestra.

Puis exécuter le script d'installation de xen orchestra proxy.

sudo ./xo-install.sh --install --proxy

Une fois l'installation terminée, il faut copier la chaine json contenant les secrets dans xen orchestra.

Puis dans l'interface de XenOrchestra, on pourra retrouver le proxy de configuré

xo-proxy.png
Last modified: 13 July 2025