kb:linux:proxmox:cluster_deux_nœuds_proxmox
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
kb:linux:proxmox:cluster_deux_nœuds_proxmox [2019/09/23 21:33] – beu | kb:linux:proxmox:cluster_deux_nœuds_proxmox [2019/09/27 23:10] – beu | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
======Cluster deux nœuds Proxmox====== | ======Cluster deux nœuds Proxmox====== | ||
- | FIXME PAGE EN COURS DE RÉDACTION | ||
- | < | + | :!: 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. |
- | global_filter = [ "a|/dev/drbd.*|", " | + | |
- | </code> | + | L' |
- | < | + | |
+ | Voici le diagramme réseau qui va être utilisé pour ce topic. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 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 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Puis avec l' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 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: | ||
+ | |||
+ | < | ||
logging { | logging { | ||
debug: off | debug: off | ||
Ligne 16: | Ligne 36: | ||
quorum_votes: | quorum_votes: | ||
ring0_addr: 10.50.0.221 | ring0_addr: 10.50.0.221 | ||
+ | ring1_addr: 192.168.9.221 | ||
} | } | ||
node { | node { | ||
Ligne 22: | Ligne 43: | ||
quorum_votes: | quorum_votes: | ||
ring0_addr: 10.50.0.222 | ring0_addr: 10.50.0.222 | ||
+ | ring1_addr: 192.168.9.222 | ||
} | } | ||
} | } | ||
Ligne 28: | Ligne 50: | ||
provider: corosync_votequorum | provider: corosync_votequorum | ||
two_node: 1 | two_node: 1 | ||
+ | expected_votes: | ||
} | } | ||
totem { | totem { | ||
- | cluster_name: | + | cluster_name: |
config_version: | config_version: | ||
interface { | interface { | ||
linknumber: 0 | linknumber: 0 | ||
+ | } | ||
+ | interface { | ||
+ | linknumber: 1 | ||
} | } | ||
ip_version: ipv4-6 | ip_version: ipv4-6 | ||
Ligne 41: | Ligne 67: | ||
} | } | ||
</ | </ | ||
+ | |||
+ | et puis restart le daemon corosync sur les deux nœuds : | ||
+ | |||
+ | <code bash> | ||
+ | # systemctl restart corosync | ||
+ | </ | ||
+ | |||
+ | ====Création du volume partagé==== | ||
+ | |||
+ | Pour que les VM puissent entré en mode " | ||
+ | |||
+ | 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 **/ | ||
+ | |||
< | < | ||
- | resource | + | resource |
meta-disk internal; | meta-disk internal; | ||
device /dev/drbd0; | device /dev/drbd0; | ||
Ligne 65: | Ligne 106: | ||
</ | </ | ||
- | ==== 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 | ||
+ | </ | ||
+ | # drbdadm up pv0 | ||
+ | </ | ||
+ | |||
+ | * puis, sur l'un des deux nœud :<code bash> | ||
+ | # drbdadm -- --overwrite-data-of-peer primary | ||
+ | </ | ||
+ | |||
+ | * Vérifier l' | ||
+ | # cat / | ||
+ | </ | ||
+ | |||
+ | * Une fois la synchronisation faite, tapez sur le second nœud :<code bash> | ||
+ | # drbdadm primary | ||
+ | </ | ||
+ | |||
+ | Une fois synchronisé, | ||
+ | # vgcreate vg0 / | ||
+ | </ | ||
+ | |||
+ | et on l' | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | :!: il faut impérativement cocher la case **Shared** | ||
+ | |||
+ | Il faut ensuite limiter la détection des volumes LVM, afin qu'il évite de " | ||
+ | |||
+ | Pour cela on va modifier, dans le fichier **/ | ||
+ | |||
+ | < | ||
+ | global_filter | ||
+ | </ | ||
+ | |||
+ | cette variable fonctionne en expression régulière. Nous autorisons manuellement chaques disques et désactivons tout détection. | ||
+ | |||
+ | puis il faut mettre a jour l' | ||
+ | |||
+ | <code bash> | ||
+ | # update-initramfs -u | ||
+ | </ |
kb/linux/proxmox/cluster_deux_nœuds_proxmox.txt · Dernière modification : 2019/09/27 23:13 de beu