Clusterizzazione in Proxmox VE

Clusterizzazione in Proxmox VE

Negli articoli precedenti abbiamo iniziato a parlare di cosa sia Proxmox VE e come funzioni. Oggi parleremo di come sia possibile utilizzare la funzionalità di clustering e mostreremo quali vantaggi offre.

Cos'è quindi un cluster e a cosa serve? Un cluster (dal termine inglese cluster) è un gruppo di server collegati tramite canali di comunicazione ad alta velocità, che lavorano e si presentano all'utente come un'unica entità. Ci sono diversi scenari principali per l'utilizzo di un cluster:

  • Assicurare l'alta disponibilità (High-availability).
  • Il bilanciamento del carico (Bilanciamento del carico).
  • Aumentare le prestazioni (High Performance).
  • Eseguire calcoli distribuiti (Distributed computing).

Ogni scenario presenta i propri requisiti specifici per i componenti del cluster. Ad esempio, per un cluster che esegue calcoli distribuiti, il requisito principale è un'elevata velocità nell'esecuzione delle operazioni in virgola mobile e una bassa latenza di rete. Tali cluster vengono spesso utilizzati per scopi di ricerca scientifica.

Poiché abbiamo toccato il tema dei calcoli distribuiti, vale la pena menzionare un concetto noto come sistema grid (dal termine inglese grid — rete). Pur avendo alcune somiglianze, non bisogna confondere un sistema grid con un cluster. Il grid non è un cluster nel senso tradizionale del termine. A differenza di un cluster, i nodi che compongono un grid sono spesso eterogenei e mostrano una disponibilità ridotta. Questo approccio semplifica la risoluzione dei problemi di calcolo distribuito, ma non consente di creare un'unità coesa dai nodi.

Un esempio evidente di sistema grid è la popolare piattaforma di calcolo BOINC (Berkeley Open Infrastructure for Network Computing). Questa piattaforma è stata inizialmente creata per il progetto SETI@home (Search for Extra-Terrestrial Intelligence at Home), che si occupa della ricerca di intelligenza extraterrestre attraverso l'analisi dei segnali radio.

Come funzionaUna vasta quantità di dati ottenuti dai radiotelescopi viene suddivisa in molti piccoli pezzi, che vengono inviati ai nodi del sistema grid (nel progetto SETI@home, i computer dei volontari svolgono il ruolo di tali nodi). I dati vengono elaborati sui nodi e, al termine dell'elaborazione, inviati al server centrale del progetto SETI. In questo modo, il progetto affronta una complessa sfida globale senza disporre delle potenze di calcolo necessarie.

Ora che abbiamo una chiara comprensione di cosa sia un cluster, vediamo come crearlo e utilizzarlo. Utilizzeremo un sistema di virtualizzazione open source. Proxmox VE.

È particolarmente importante comprendere chiaramente i limiti e i requisiti di sistema di Proxmox prima di iniziare a creare un cluster, e precisamente:

  • il numero massimo di nodi nel cluster è 32;
  • tutti i nodi devono avere la stessa versione di Proxmox (ci sono delle eccezioni, ma non sono raccomandate per la produzione);
  • se si prevede di utilizzare la funzionalità di High Availability, il cluster deve avere almeno 3 nodi;
  • per l'interazione tra i nodi devono essere aperte le porte UDP/5404, UDP/5405 per corosync e TCP/22 per SSH;
  • la latenza nella rete tra i nodi non deve superare 2 ms.

Creazione del cluster

Importante! La configurazione sottostante è solo per test. Non dimenticate di confrontarvi con documentazione ufficiale Proxmox VE.

Per avviare un cluster di test, abbiamo preso tre server con il hypervisor Proxmox installato, tutti identici (2 core, 2 GB di RAM).

Se vuoi sapere come installare Proxmox, ti consigliamo di leggere il nostro articolo precedente — La magia della virtualizzazione: corso introduttivo su Proxmox VE.

Inizialmente, dopo l'installazione del sistema operativo, un server singolo opera in Standalone-mode.

Clusterizzazione in Proxmox VE
Creiamo un cluster facendo clic sul pulsante Create Cluster nella sezione appropriata.

Clusterizzazione in Proxmox VE
Impostiamo il nome del futuro cluster e scegliamo la connessione di rete attiva.

Clusterizzazione in Proxmox VE
Facciamo clic sul pulsante Create. Il server genererà una chiave a 2048 bit e la registrerà insieme ai parametri del nuovo cluster nei file di configurazione.

Clusterizzazione in Proxmox VE
La scritta TASK OK testimonia il successo dell'operazione. Ora, osservando le informazioni generali sul sistema, si può vedere che il server è passato in modalità cluster. Finora, il cluster è composto solo da un nodo, quindi non ha ancora quelle capacità per cui è necessario un cluster.

Clusterizzazione in Proxmox VE

Collegamento al cluster

Prima di connetterci al cluster creato, è necessario ottenere le informazioni per la connessione. Per farlo, andiamo nella sezione Cluster e facciamo clic sul pulsante Join Information.

Clusterizzazione in Proxmox VE
Nella finestra aperta, ci interessa il contenuto del campo omonimo. Dobbiamo copiarlo.

Clusterizzazione in Proxmox VE
Qui sono codificati tutti i parametri necessari per la connessione: l'indirizzo del server da collegare e l'impronta digitale. Andiamo sul server che deve essere incluso nel cluster. Facciamo clic sul pulsante Join Cluster e nella finestra aperta incolliamo il contenuto copiato.

Clusterizzazione in Proxmox VE
Campi Indirizzo Peer e Fingerprint saranno compilati automaticamente. Inseriamo la password root per il nodo numero 1, selezioniamo la connessione di rete e facciamo clic sul pulsante Unisciti.

Clusterizzazione in Proxmox VE
Durante il processo di connessione al cluster, la pagina GUI potrebbe smettere di aggiornarsi. Questo è normale, basta ricaricare la pagina. Allo stesso modo aggiungiamo un altro nodo e alla fine otteniamo un cluster completo di 3 nodi funzionanti.

Clusterizzazione in Proxmox VE
Ora possiamo controllare tutti i nodi del cluster da un'unica GUI.

Clusterizzazione in Proxmox VE

Organizzazione dell'High Availability

Proxmox supporta 'out of the box' la funzionalità di organizzazione HA sia per macchine virtuali che per container LXC. L'utilità ha-manager rileva ed elabora errori e guasti, effettuando il failover dal nodo guasto a quello funzionante. Affinché il meccanismo funzioni correttamente, è necessario che le macchine virtuali e i container abbiano uno storage condiviso.

Dopo l'attivazione della funzionalità di High Availability, il software ha-manager inizierà a monitorare continuamente lo stato di funzionamento della macchina virtuale o del container e interagirà in modo asincrono con gli altri nodi del cluster.

Unire storage condiviso

Per esempio, abbiamo distribuito un piccolo storage NFS all'indirizzo 192.168.88.18. Affinché tutti i nodi del cluster possano utilizzarlo, è necessario eseguire le seguenti operazioni.

Selezioniamo nel menu dell'interfaccia web Datacenter — Storage — Aggiungi — NFS.

Clusterizzazione in Proxmox VE
Compiliamo i campi ID e Server. Nel menu a discesa Export selezioniamo la directory desiderata tra quelle disponibili e nell'elenco Contenuto — i tipi di dati necessari. Dopo aver fatto clic sul pulsante Aggiungi lo storage verrà collegato a tutti i nodi del cluster.

Clusterizzazione in Proxmox VE
Quando creiamo macchine virtuali e container su uno qualsiasi dei nodi, specifichiamo il nostro storage come storage.

Configurare HA

Per esempio, creiamo un container con Ubuntu 18.04 e configuriamo High Availability per esso. Dopo aver creato e avviato il container, accediamo alla sezione Datacenter — HA — Aggiungi. Nel campo aperto specifichiamo l'ID della macchina virtuale/container e il numero massimo di tentativi di riavvio e spostamento tra i nodi.

Se questo numero viene superato, l'hypervisor contrassegnerà la VM come guasta e la porterà in stato di Errore, dopo di che smetterà di eseguire qualsiasi operazione su di essa.

Clusterizzazione in Proxmox VE
Dopo aver premuto il pulsante Aggiungi utility ha-manager notificherà tutti i nodi del cluster che ora la VM con l'ID specificato è controllata e in caso di crash deve essere riavviata su un altro nodo.

Clusterizzazione in Proxmox VE

Creeremo un guasto

Per vedere come funziona il meccanismo di commutazione, spegniamo in modo anomalo node1 per alimentazione. Controlliamo da un altro nodo cosa succede al cluster. Vediamo che il sistema ha registrato il guasto.

Clusterizzazione in Proxmox VE

Il funzionamento del meccanismo HA non implica l'interruzione continua dell'operatività della VM. Non appena il nodo è "caduto", l'operatività della VM si interrompe temporaneamente fino al riavvio automatico su un altro nodo.

E qui inizia la "magia": il cluster ha automaticamente riassegnato il nodo per eseguire la nostra VM e nell'arco di 120 secondi l'operatività è stata ripristinata automaticamente.

Clusterizzazione in Proxmox VE
Spegniamo node2 per alimentazione. Vediamo se il cluster regge e se la VM torna automaticamente in stato operativo.

Clusterizzazione in Proxmox VE
Purtroppo, come vediamo, abbiamo riscontrato un problema: sul l'unico nodo rimasto attivo non c'è più quorum, il che disabilita automaticamente il funzionamento dell'HA. Diamo il comando di forza per l'installazione del quorum sulla console.

pvecm expected 1

Clusterizzazione in Proxmox VE
Dopo 2 minuti, il meccanismo HA ha funzionato correttamente e non trovando node2 ha avviato la nostra VM su node3.

Clusterizzazione in Proxmox VE
Non appena abbiamo riacceso node1 e node2, il funzionamento del cluster è stato completamente ripristinato. Notate che la VM non migra automaticamente su node1, ma questo può essere fatto manualmente.

Riepiloghiamo

Vi abbiamo parlato di come funziona il meccanismo di clustering in Proxmox e abbiamo anche mostrato come configurare l'HA per macchine virtuali e container. Un uso corretto del clustering e dell'HA aumenta notevolmente l'affidabilità dell'infrastruttura e consente il ripristino dopo guasti.

Prima di creare un cluster, è necessario pianificare per quali scopi verrà utilizzato e quanto sarà necessario scalarlo in futuro. È necessario verificare anche l'infrastruttura di rete per la prontezza a lavorare con ritardi minimi, affinché il futuro cluster funzioni senza interruzioni.

Fateci sapere: utilizzate le funzionalità di clustering in Proxmox? Vi aspettiamo nei commenti.

Articoli precedenti sul tema dell'iper-vizore Proxmox VE:

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster