KVM Hosts and Ceph Storage

Installation des noeuds KVM sous Rocky Linux 9

🛠️ 1. Préparer le nœud KVM

Installer Rocky Linux 8/9 (ou équivalent EL8/EL9).

Synchroniser l’heure (chrony/ntpd), mets à jour, et s'assurer que SELinux est en enforcing.

Installation minimale nécessaire :

mkdir /etc/yum.repos.d/cloudstack.repo 
cat <<EOF >>/etc/yum.repos.d/cloudstack.repo
[cloudstack]
name=cloudstack
baseurl=http://download.cloudstack.org/centos/\$releasever/4.20/
enabled=1
gpgcheck=0
EOF

sudo dnf install -y epel-release
sudo dnf install -y centos-release-ceph-squid.noarch cloudstack-agent cloudstack-common wget vim bash-completion chrony libvirt libvirt-daemon libvirt-daemon-driver-storage-rbd libvirt-daemon-driver-network libvirt-daemon-config-network qemu-kvm virt-install bridge-utils ceph

Cela inclut librbd de Ceph et l’agent CloudStack (Ceph Documentationarrow-up-right, Apache CloudStack Documentationarrow-up-right).

Configurer SELinux

🌐 2. Configuration des bridges réseau

CloudStack nécessite au minimum deux bridges pour une zone advanced Core et au minimum 1 pour une zone Basic : cloudbr0 (public/management) et cloudbr1 (privé/VLAN) (ShapeBluearrow-up-right).

Explication des traffic types

Type de trafic

Description

Gestion (Management)

Trafic utilisé pour la communication interne entre les composants CloudStack : hôtes, serveurs de gestion, VM système (VR, SSVM). Généralement, ce réseau doit être séparé pour garantir la sécurité et la stabilité.

Invité (Guest)

Trafic généré par les instances utilisateur (VM invitées). C’est le réseau par lequel les VMs communiquent entre elles, en mode isolé ou partagé. C’est aussi celui qui peut éventuellement donner accès au réseau local des clients ou à Internet. Infoarrow-up-right

Public

Trafic entre les instances et l’extérieur (Internet). Permet d’attribuer des adresses IP publiques aux VMs et d’exposer leurs services au réseau public. Ce trafic n’existe que dans certains modes réseau (zones avancées). Infoarrow-up-right

Stockage (Storage)

Trafic dédié entre les hôtes et le stockage secondaire ou principal. Il est possible de dédier un réseau séparé pour améliorer les performances d’accès aux volumes disque et iso

circle-exclamation

Ici nous partons sur une zone basique

Config bridge via /etc/sysconfig/network-scripts

/etc/sysconfig/network-scripts/ifcfg-eth0

/etc/sysconfig/network-scripts/ifcfg-br0

⚠️ Redémarrer ou recharger NetworkManager (nmcli connection reloadou sudo systemctl restart NetworkManager

🔄 3. Configuration de libvirt/QEMU pour CloudStack

  • Activer libvirtd en mode écoute pour migration et l’agent :

Redémarrer : sudo systemctl restart libvirtd cloudstack-agent (Yonyou Cloud Documentationarrow-up-right).


☁️ 4. Intégration avec Ceph comme stockage primaire

Configurer CEPH au préalable : voir CEPH DOC

circle-exclamation

Création de la clé d'authentification pour client.cloudstack

Une fois CEPH installé, on créera un keyring pour le client client.cloudstack. Ce keyring permet à CloudStack d'interagir avec Ceph, notamment pour le stockage des volumes, des images et autres objets dans le cluster Ceph. Il s'agira donc de créer un client Ceph spécifique à CloudStack (client.cloudstack) avec les bonnes permissions pour interagir avec le cluster Ceph. Cela se fait à l'aide de la commande suivante :

circle-check

Déploiement du keyring sur tous les nœuds CEPH :

Ce fichier doit être disponible sur tous les nœuds hyperviseurs et éventuellement les nodes utilisant CloudStack (ex : pour les agents KVM, s'ils font noeuds ceph également). On le place donc dans /etc/ceph/.

✅ 5. Vérification

  • Vérifie que les bridges cloudbr0 et cloudbr1 sont actifs (ip a show cloudbr*).

  • Vérifie que librbd fonctionne (rpm -q ceph-common).

  • Ajoute le nœud via l’UI CloudStack sous Infrastructure → Hosts, en sélectionnant bridging, Ceph, etc.

🧩 Résumé

Élément
Commentaire

Bridges (br0, br1, votre bridge)

Cruciaux, noms codés en dur, config réseau via ifcfg ou NetworkManager (Apache CloudStack Documentationarrow-up-right, Ceph Documentationarrow-up-right, OpenMetal IaaSarrow-up-right)

libvirtd

Doit écouter en TCP (--listen) pour l’agent CloudStack (Yonyou Cloud Documentationarrow-up-right, Apache CloudStack Documentationarrow-up-right)

Ceph

via ceph-common, ceph.conf, clef, et pool RBD ; intégration automatique (Ceph Documentationarrow-up-right, ShapeBluearrow-up-right)

Agent CloudStack

Installe, actif, écoute 16059/tcp

Last updated