4

Proxmox 5 : cluster 2 nœuds avec un stockage répliqué

Un mémo sur comment mettre en place le nouveau mode de réplication de stockage, disponible depuis la version 5.0 de Proxmox.

Ce mode de réplication permet de synchroniser deux stockages locaux via le réseau de manière asynchrone, sans investir dans des solutions de stockage externe comme le NAS ou le SAN. Cette solution de réplication est judicieuses pour des petites structures ne nécessitant pas de gros moyens, comme un cluster de haute disponibilité avec du Ceph.
La mise en place de la réplication est entièrement configurable via l’interface web d’administration de Proxmox. La réplication permet aussi d’accélérer la migration des VM.

La seule contrainte afin de mettre en place la réplication de stockage, il faut que le système de fichier du stockage local de chaque nœud Proxmox soit en ZFS.

nb : j’ai pour habitude de mettre en cluster les serveurs Proxmox sur un réseau privé, cette façon de faire n’est pas obligatoire.

Ma configuration réseau du cluster :

  • pve-z1 :
    • vmbr0 : 10.75.100.10/21 (LAN entreprise)
    • vmbr1 : 192.168.1.1/24 (LAN privé)
  • pve-z1 :
    • vmbr0 : 10.75.100.11/21 (LAN entreprise)
    • vmbr1 : 192.168.1.2/24 (LAN privé)

Installation de Proxmox2

Voir cet article : https://memo-linux.com/proxmox-5-installation/

Attention : Contrairement à une installation classique de Proxmox où généralement le système de fichier est en EXT4, pour de la réplication il faut un système de fichier ZFS.
Lors du choix de la cible de l’installation du système, choisir ZFS puis choisir le type de RAID suivant votre cas. Pour ce tuto, je choisi de faire un RAID1 sur les premiers disques de disponible :

Préparation des 2 nœuds Proxmox

Pour préparer et configurer les deux serveurs Proxmox, j’utilise mon script de post-installation : https://gitlab.com/freddl/postinstall_pve

Configuration du réseau privé

Afin de mettre en place le cluster et de faire communiquer les nœuds Proxmox sur un réseau privé, ajouter les interfaces vmbr1 :

  • Pour pve-z1 :
  • Pour pve-z2 :

Proxmox : Mise en cluster 2 nœuds

  • Sur tous les nœuds, ajouter ces informations dans /etc/hosts :
    • 192.168.1.1 cluster-z1
    • 192.168.1.2 cluster-z2
  • Sur pve-z1 créer cluster sur le réseau privé :
  • pvecm create kluster -bindnet0_addr 192.168.1.0 -ring0_addr cluster-z1
  • Sur pve-z2, rejoindre le cluster :
  • pvecm add cluster-z1 -ring0_addr cluster-z2

Ajout du stockage ZFS pour le cluster Proxmox

  • Menu Datacenter -> Stockage -> Ajouter -> ZFS :
  • Donner un nom d’ID, indiquer le pool puis cliquer sur Ajouter :
  • Le nouveau stockage ZVF est disponible pour les deux nœuds Proxmox :

Création d’une machine virtuelle sur le stockage ZFS

Lors de la création de la machine virtuelle, bien choisir le stockage ZFS pour le disque dur :

Mettre en place la réplication de la VM

  • Se placer au niveau de la VM, cliquer sur Replication puis Ajouter :
  • Créer le job de réplication :
  • La tâche de réplication est opérationnelle :

Migrer une machive virtuelle d’un nœud Proxmox à l’autre

Malheureusement, il n’est pas encore possible de faire la migration en ligne d’une machine virtuelle d’un nœud à l’autre via l’interface web. Il faut passer par la ligne de commande :

qm migrate ID_VM node --online --with-local-disks

Ce qui donne dans mon cas :

qm migrate 100 pve-z2 --online --with-local-disks

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

4 Comments

  1. Ok, j’ai le même problème pour la migration en ligne d’une machine à l’autre, je me demandais si c’était moi ou pas…

  2. je trouve ça dommage d’être obliger de passer par la ligne de commande, peut être que ça sera corrigé dans une maj ?
    et je n’ai rien trouvé dans la doc/wiki de proxmox (ou alors mal cherché…)

  3. Salut,
    Je suis étudiant et j’ai utilisé proxmox dans mon projet d’étude. Tes articles viennent bien compléter les zones d’ombres que je peux avoir après la lecture de la doc officielle. Merci à toi!

    Dans ton script de configuration, il me semble que tes requêtes read de la forme :
    read -r variable
    variable=$variable

    pourraient se résumer à :
    read -r variable

    Bonne continuation et encore merci pour ton travail!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *