320.06.70.037 [email protected]
Seleziona una pagina

Creazione di un cluster a 2 nodi con il Qdevice su Proxmox 8

da | Giu 27, 2024 | Proxmox | 0 commenti

Proxmox è una piattaforma di virtualizzazione open source basata su Debian e KVM che nell’ultimo periodo sta prendendo sempre più piede nelle piccole e medie imprese che decidono di voler rimpiazzare i propri cluster VMware.
Una configurazione tipica di un cluster VMware per una piccola azienda è l’utilizzo di due nodi ESXi con il VCenter virtualizzato.
Su Proxmox non viene utilizzato un server esterno per orchestrare il cluster, come avviene su VMware tramite il VCenter, ma invece sono gli stessi hosts che lo gestiscono tramite il servizio Corosync.
Per far sì che le modifiche al cluster siano valide è necessario che venga raggiunto il quorum, perciò in caso di numero pari di nodi sarebbe possibile il fenomeno denominato “Split Brain”.
Lo “Split Brain” avviene quando metà dei nodi falliscono, poiché i voti dell’altra metà non sono sufficienti al raggiungimento del quorum (essendo i nodi di numero pari).
In caso di “Split Brain” non è possibile effettuare modifiche al cluster, questo implica che non è possibile accendere, spegnere, creare e modificare le virtual machines ed i containers, oltre che essere impossibilitati alla modifica di qualsiasi impostazione del cluster (impostazioni del firewall, aggiungere o rimuovere un nodo…).
Nonostante questa limitazione è comunque possibile creare un cluster a due nodi che grantisca l’alta affidabilità tramite l’utilizzo del Qdevice (Quorum Device).

QUORUM DEVICE

Il Qdevice è un server che partecipa alla votazione del cluster e viene utilizzato nei cluster Proxmox formati da un numero pari di nodi per evitare il fenomeno dello “Split Brain”.
Il Qdevice può essere configurato su qualsiasi distribuzione compatibile con il pacchetto “corosync-qnetd” e non è necessario che il server abbia risorse equivalenti agli hosts di Proxmox.
Ad esempio i test effettuati per la stesura di questo articolo sono stati effettuati con due server HPE ed un mini PC utilizzato come Qdevice.

PRE REQUISITI

Prima di configurare il Qdevice è necessario aver installato e configurato i nodi di Proxmox, aver creato un cluster ed aver aggiunto i nodi a quest’ultimo.
Il cluster deve aver un numero pari di nodi, altrimenti l’utilizzo del Qdevice è sconsigliato.

PREPARAZIONE

Prima di incominciare la configurazione del Qdevice è consigliato disabilitare l’IPv6 se non viene utilizzato:

Inoltre in caso di un mini PC è suggeribile disabilitare la scheda Wi-Fi.

Per farlo è necessario disabilitare il servizio “wpa_supplicant“:

Successivamente è necessario identificare lo slot PCI della scheda di rete:

In questo caso lo slot PCI è b1:00.0.

Eseguire i seguenti comandi per identificare il driver utilizzato per la scheda di rete ed inserirlo nella black list (sostituire “b1:00.0” con lo slot identificato nel precedente step):

Infine ricaricare i servizi e riavviare il Qdevice:

CONFIGURAZIONE DI RETE DEL QDEVICE

Per raggiungere l’alta disponibilità è possible assegnare più IP al Qdevice, se Corosync non dovesse riuscire a contattare i nodi tramite una scheda di rete (un IP), esso ne utilizzerebbe un’altra senza bisogno di intervenire manualmente; altrimenti è possibile configurare un bond (port channel) per raggruppare una o più schede di rete fisiche.

Per configurare più IP è sufficiente aggiungere al file /etc/network/interfaces la configurazione dell’IP statico per ogni interfaccia di rete:

Se invece si volesse effettuare un bond, sarebbe necessario installare il pacchetto ifenslave:

Per configurare un bond active standby con due interfacce di rete aggiungere al file /etc/network/interfaces la seguente configurazione e rimuovere la configurazione delle interfacce fisiche (eg. ethx):

Per effettuare un bond LACP è possibile modificare la bond-mode da ctive-backup a 802.3ad.

Per applicare la configurazione delle schede di rete installare il pacchetto ifupdown2:

Ed infine eseguire:

In alternativa per applicare la configurazione è possibile riavviare il servizio networking:

In caso venga mostrato un errore, ricaricare i servizi ed effettuare nuovamente il riavvio:

ATTENZIONE: Eseguire con cautela la modifica delle configurazione di rete se si è connessi in SSH, perché in caso di errore la connessione al server potrebbe venir definitivamente persa.

INSTALLAZIONE DEL QDEVICE

Sul Qdevice eseguire:

Sui nodi di Proxmox eseguire:

Su un qualsiasi nodo di Proxmox appartenente al cluster:

Se viene visualizzato l’errore Host key verification failed eseguire:

Per verificare il successo dell’operazione eseguire:

L’output mostrato dovrebbe essere simile al seguente:

Lo stato del Qdevice nell’output precedente è composto tipicamente da tre colonne:

  • A / NA (“Alive” oppure “Not Alive”): questa colonna indica se la comunicazione tra il Qdevice e il nodo di Proxmox sta funzionando
  • V / NV (“Vote” oppure “Not Vote”): questa colonna indica se il Qdevice può esprimere il proprio voto al nodo *1
  • MW / NMW (“Master Wins” oppure “Not Master Wins”): questa colonna indica se la modalità “Master Win” è attiva *2
  • NR (“Not Registered”): questa colonna è presente se il Qdevice non è registrato sul nodo

*1

Prendendo in considerazione un cluster con due nodi di Proxmox, supponendo un caso di “Split Brain” in cui i due nodi non riescono a comunicare, però riescono a contattare il Qdevice, allora esso esprimerà il proprio voto solamente ad un nodo.
*2 La modalità “Master Wins”, che di default è disabilitata, prevede che il Qdevice possa imporre il proprio voto ignorando i voti del resto del cluster.

CONSIDERAZIONI SUL QDEVICE

L’utilizzo del Qdevice in un cluster Proxmox con numero dispari di nodi è sconsigliato, tuttavia nella pratica è come se esso non ci fosse (che fallisca o meno non cambia nulla).
Se le due metà equivalenti dei nodi del cluster non riescono a contattarsi tra di loro, ma contattano il Qdevice, allora esso deciderà in modo casuale una metà ed esprimerà il proprio voto solo ad essa.
Prima di aggiungere o rimuovere un nodo dal cluster è necessario rimuovere il Qdevice ed eventualmente aggiungerlo nuovamente in un secondo momento in caso di parità del numero di nodi.

RIMOZIONE DEL QDEVICE

Per rimuovere il Qdevice dal cluster, per esempio per aggiungere o rimuovere un nodo di Proxmox, eseguire su un qualsiasi nodo appartenente al cluster:

Marco Valle

Scritto da Marco Valle

Mi chiamo Marco Valle e da sempre sono appassionato di Cybersicurezza e Linux.
Per lavoro implemento soluzioni open source.

Link – Friends

Infrastrutture IT

English School

Act for Change

Graphic and Web solution

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Translate »