Vue lecture

Proxmox 8 cluster HA + Ceph

Un mémo sur la mise en place d’un cluster en haute disponibilité d’hyperviseurs Proxmox avec un stockage distribuée et redondant Ceph. Cet article traite uniquement de la mise en cluster des noeuds Proxmox ainsi que l’installation et de la configuration de Ceph.

Configuration Réseau des noeuds Proxmox

Chaque réseau sera cablé en topologie MESH et les interfaces réseaux créés dans Proxmox seront des aggrégations en mode Broadcast.
Pour plus d’infos voir cet article : https://memo-linux.com/proxmox-creer-un-cluster-sur-un-reseau-prive-sans-switch/

  • Adresse IP public des noeuds Proxmox :
    • pve01 : 10.x.x.1
    • pve01 : 10.x.x.2
    • pve01 : 10.x.x.3
  • Réseau Corosync (cluster Proxmox) : 192.168.254.0/24
    • pve01 : 192.168.254.1
    • pve02 : 192.168.254.2
    • pve03 : 192.168.254.3
  • Réseau Ceph :
    • Ceph Public 192.168.252.0/24
      • pve01 : 192.168.252.1
      • pve02 : 192.168.252.2
      • pve03 : 192.168.252.3
    • Ceph Cluster 192.168.253.0/24
      • pve01 : 192.168.253.1
      • pve02 : 192.168.253.2
      • pve03 : 192.168.253.3

Mise en cluster des noeuds Proxmox

Avant la mise en cluster, il faut s’assurer absolument que chaque noeud soit à l’heure et synchronisé sur un serveur NTP.

chronyc tracking

  • Initialisation du cluster sur un noeud aux choix :
pvecm create nom_cluster --link0 192.168.254.1
  • Joindre les autres noeuds Proxmox au cluster :
    • Sur pve02 :
    pvecm add 10.x.x.1 --link0 192.168.254.2
  • Sur pve03 :
  • pvecm add 10.x.x.1 --link0 192.168.254.3
  • Via l’interface web, il est possible de voir le statut du cluster ainsi que l’ensemble des noeuds Proxmox :
  • Installation de Ceph

    L’installation et la configuration du Ceph sera réalisée via l’interface web de Proxmox.

    • Sélectionner un noeud, dans le menu cliquer sur Ceph puis cliquer sur « Install Ceph » :
    • Une nouvelle fenêtre s’ouvre, sélectionner la dernière version de Ceph (Reef) et le dépôt No-Subscription puis cliquer sur « Start reef installation » :
    • Répondre « Y » puis la touche « Enter » du clavier :
    • Une fois l’installation terminée, cliquer sur « Next » :
    • Configuration réseau du cluster de Ceph :
    • Sélectionner les adresses IP configurées pour chaque réseau Public et Cluster du Ceph :
    • Installation et configuration du Ceph terminée :

    Cependant, il faut refaire l’étape d’installation du Ceph sur les autres noeuds (sans la partie réseau).

    Mise en place du Ceph sur le cluster Proxmox

    • Sur chaque noeud, créer le Ceph Monitors :
      • Cliquer dans le menu Ceph, puis cliquer sur Monitor :
      • Cliquer cur « Create » :
      • Sélectionner le noeud :
      • Répéter l’opération sur l’autre noeud afin d’avoir l’ensemble des monitors :
    • Sur chaque noeud, créer le Ceph Manager :
      • Toujours dans le menu Monitor, au niveau de Manager cliquer sur « Create » :
      • Sélectioner le noeud :
      • Répéter l’opération sur l’autre noeud afin d’avoir tous les Managers (à savoir, un seul est actif) :
    • Création des OSD :
      • Pré-requis, il faut que les disques soient configurés en NON-RAID et visible dans le menu « Disks » :
      • Opération à réaliser sur chaque noeud, dans le menu Ceph, cliquer sur OSD puis sur « Create: OSD » :
      • Sélectionner le premier disque puis cliquer sur « Create » :
      • Répéter l’opération pour l’ensemble des disques :
    • Création du pool Ceph pour le stockage :
      • Toujours dans le menu Ceph, cliquer sur « Pools » puis sur « Create » :
      • Donner un nom au pool Ceph puis cliquer sur « Create » :
      • Une fois le pool Ceph créé, le stockage est automatiquement créé et partagé aux membres du cluster Proxmox :

    Mise en place de la HA pour les VMs

    nb: Lors de la création d’une machine virtuelle, ne pas oublier de choisir le stockage correspondant au pool Ceph:

    Encore à ce jour pour la gestion HA des machines virtuelles, j’utilise cette méthode -> https://memo-linux.com/proxmox-cluster-ha-repartition-de-charge-des-machines-virtuelles/

    Installer et configurer un VPN Wireguard sur OpenVZ

    Un mémo sur comment installer et configurer un serveur VPN Wireguard sur un VPS OpenVZ sous Debian 12 Bookworm.

    Pré-requis avant installation de Wireguard

    Installation et Configuration de Wireguard sur OpenVZ

    Pour faciliter l’installation et l’utilisation Wireguard sur OpenVZ, il faut passer par la solution boringtun.

    • Mise à jour du référentiel de paquets, installation de curl et de l’utilitaire de package cargo :
    apt update && apt install curl cargo
  • Installer boringtun-cli :
  • cargo install boringtun-cli --locked
  • Rendre accessible au système l’utilitaire boringtun-cli :
  • ln ~/.cargo/bin/boringtun-cli /usr/local/bin/
  • Télécharger le script d’auto installation de Wireguard partagé par notre ami Angristan :
  • curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
  • Désactiver la vérification de la technologie de virtualisation dans le script d’installation :
  • sed -i 's/^\tcheckVirt/#\tcheckVirt/' wireguard-install.sh
  • Rendre exécutable le script :
  • chmod +x wireguard-install.sh
  • Exécuter le script pour installer Wiregard et répondre aux questions:
  • ./wireguard-install.sh
  • Une fois Wireguard installé, faire ces modifications du service wg-quick@.service pour forcer la gestion de l’interface du tunnel wireguard par boringtun-cli :
  • sed -i '19 i Environment=WG_QUICK_USERSPACE_IMPLEMENTATION=boringtun-cli' /lib/systemd/system/wg-quick@.service
  • Modifier les permissions :
  • sed -i '20 i Environment=WG_SUDO=1' /lib/systemd/system/wg-quick@.service
  • Prise en compte des modifications du service par systemd :
  • systemctl daemon-reload
  • Stopper le service wg-quick@wg0 :
  • systemctl stop wg-quick@wg0
  • Démarrer Wireguard :
  • systemctl start wg-quick@wg0
  • Vérifier le statut de Wireguard :
  • systemctl status wg-quick@wg0

    Resources

    corriger le message nginx: [warn] the « listen … http2 » directive is deprecated

    Un petit mémo sur comment corriger le message nginx: [warn] the « listen … http2 » directive is deprecated pour une configuration https d’un server block.

    En effet, si un de des servers block est configuré en https comme ceci: listen 443 ssl http2; Nginx refusera de valider la configuration.

    Pour que la configuration soit valide :

    • changer la ligne :
    listen 443 ssl http2;
  • par :
  • listen 443 ssl;
    http2 on;
    
  • vérifier la configuration :
  • nginx -t
    nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
    nginx: configuration file /etc/nginx/nginx.conf test is successful
    
  • Relancer le service nginx :
  • systemctl restart nginx
    ❌