Outils pour utilisateurs

Outils du site


kb:linux:proxmox:cluster_deux_nœuds_proxmox

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
kb:linux:proxmox:cluster_deux_nœuds_proxmox [2019/09/23 21:03] – créée beukb:linux:proxmox:cluster_deux_nœuds_proxmox [2019/09/27 23:13] (Version actuelle) beu
Ligne 1: Ligne 1:
 ======Cluster deux nœuds Proxmox====== ======Cluster deux nœuds Proxmox======
-FIXME PAGE EN COURS DE RÉDACTION + 
-<code>+:!: Cette solution comporte des risques de [[https://en.wikipedia.org/wiki/Split-brain_(computing)|Split-brain]]. Il faut évidement préférer faire un cluster avec 3 nœuds, ou au pire avec un Qdevice. 
 + 
 +L'objectif est de faire un cluster autonome sans SPOF, sans baies de disques <del>hors de prix</del>
 + 
 +Voici le diagramme réseau qui va être utilisé pour ce topic. 
 + 
 +{{ :kb:linux:proxmox:cluster-2-nodes-proxmox-scheme.png?800 |}} 
 + 
 +Le disque **/dev/sda** est le disque racine comportant les partitions (LVM) créé par l'ISO proxmox, et le disque **/dev/sdb** est le disque utilisé comme volume DRBD entre les nœuds. 
 + 
 +Je pars du principe que les deux serveurs sont configurés et que la configuration réseau est faite. 
 + 
 +====Création du cluster Proxmox ==== 
 + 
 +Comme pour un cluster "classique", dans l'interface de l'un des nœud on va créer un cluster 
 + 
 +{{ :kb:linux:proxmox:cluster-2-nodes-proxmox-create-cluster.png?500 |}} 
 + 
 +Puis avec l'autre nœud, rejoindre le cluster 
 + 
 +{{ :kb:linux:proxmox:cluster-2-nodes-proxmox-join-cluster.png?600 |}} 
 + 
 +Une fois fait, il faut modifier la configuration corosync, pour qu'il fonctionne en mode deux nœuds, en ajoutant les lignes **two_node: 1** et **expected_votes: 1**  dans la section **quorum** du fichier **/etc/pve/cororsync.conf** d'un des 2 nœuds, comme ceci : 
 + 
 +<code file [highlight_lines_extra="24,25"]>
 logging { logging {
   debug: off   debug: off
Ligne 12: Ligne 36:
     quorum_votes: 1     quorum_votes: 1
     ring0_addr: 10.50.0.221     ring0_addr: 10.50.0.221
 +    ring1_addr: 192.168.9.221
   }   }
   node {   node {
Ligne 18: Ligne 43:
     quorum_votes: 1     quorum_votes: 1
     ring0_addr: 10.50.0.222     ring0_addr: 10.50.0.222
 +    ring1_addr: 192.168.9.222
   }   }
 } }
Ligne 24: Ligne 50:
   provider: corosync_votequorum   provider: corosync_votequorum
   two_node: 1   two_node: 1
 +  expected_votes: 1
 } }
  
 totem { totem {
-  cluster_name: pve2node+  cluster_name: pve2nodes
   config_version: 2   config_version: 2
   interface {   interface {
     linknumber: 0     linknumber: 0
 +  }
 +  interface {
 +    linknumber: 1
   }   }
   ip_version: ipv4-6   ip_version: ipv4-6
Ligne 37: Ligne 67:
 } }
 </code> </code>
 +
 +et puis restart le daemon corosync sur les deux nœuds :
 +
 +<code bash>
 +# systemctl restart corosync
 +</code>
 +
 +====Création du volume partagé====
 +
 +Pour que les VM puissent entré en mode "HA", il faut obligatoirement que le disque de celle-ci soit disponible sur chaque nœud, même si le nœud voisin n'est plus joignable.
 +
 +Pour cela, on va créer un volume drbd, sur lequel on va placer un volume LVM.
 +
 +On va donc créer le volume DRBD, en créant le fichier **/etc/drbd.d/pv0.res** :
 +
  
 <code> <code>
-resource vol {+resource pv0 {
   meta-disk internal;   meta-disk internal;
   device /dev/drbd0;   device /dev/drbd0;
Ligne 61: Ligne 106:
 </code> </code>
  
-==== Ajout d'une Raspberry pi en tant que QDevice ====+On va suite initialiser le volume DRBD : 
 + 
 +  * Sur les deux nœuds :<code bash> 
 +# drbdadm create-md pv0 
 +</code><code bash> 
 +# drbdadm up pv0 
 +</code> 
 + 
 +  * puis, sur l'un des deux nœud :<code bash> 
 +# drbdadm -- --overwrite-data-of-peer primary  pv0 
 +</code> 
 + 
 +  * Vérifier l'état de la synchronisation en tapant sur l'un des deux nœuds :<code bash> 
 +# cat /proc/drbd 
 +</code> 
 + 
 +  * Une fois la synchronisation faite, tapez sur le second nœud :<code bash> 
 +# drbdadm primary  pv0 
 +</code> 
 + 
 +Une fois synchronisé, on créer le volume LVM :<code bash> 
 +# vgcreate vg0 /dev/drbd0 
 +</code> 
 + 
 +et on l'ajoute dans l'interface proxmox : 
 + 
 +{{ :kb:linux:proxmox:cluster-2-nodes-proxmox-add-vg.png?500 |}} 
 + 
 +:!: il faut impérativement cocher la case **Shared** 
 + 
 +Il faut ensuite limiter la détection des volumes LVM, afin qu'il évite de "monter" le **vg** avant le DRBD. 
 + 
 +Pour cela on va modifier, dans le fichier **/etc/lvm/lvm.conf**, la variable **global_filter** : 
 + 
 +<code> 
 +global_filter [ "a|/dev/drbd0|", "a|/dev/sda.*|", "r|.*|"
 +</code> 
 + 
 +cette variable fonctionne en expression régulière. Nous autorisons manuellement chaque disques et désactivons tout détection. 
 + 
 +puis il faut mettre a jour l'**initramfs** : 
 + 
 +<code bash> 
 +# update-initramfs -u 
 +</code> 
 + 
 +Maintenant, je vous invite a redémarrer un des noeuds et voir si au redémarrage, les volumes LVM apparaissent bien sur le device **/dev/drbd0** et non **/dev/sdb**. 
kb/linux/proxmox/cluster_deux_nœuds_proxmox.1569272590.txt.gz · Dernière modification : 2019/09/23 21:03 de beu