Clusterizzazione in Proxmox VE

Clusterizzazione in Proxmox VE

Negli articoli precedenti, abbiamo iniziato a discutere cosa sia Proxmox VE e come funziona. Oggi parleremo di come utilizzare la funzione di clusterizzazione e dei vantaggi che offre.

Cos'è un cluster e a cosa serve? Un cluster (dall'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à. Esistono diversi scenari principali per l'utilizzo di un cluster:

  • Garantire l'alta disponibilità (High-availability).
  • Bilanciamento del carico (Bilanciamento del carico).
  • Aumentare le prestazioni (High Performance).
  • Esecuzione di calcoli distribuiti (Distributed computing).

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

Dal momento che abbiamo toccato il tema dei calcoli distribuiti, è importante sottolineare che esiste anche il concetto di sistema grid (dall'inglese grid — griglia, rete). Nonostante la somiglianza generale, non bisogna confondere il sistema grid con un cluster. Una griglia non è un cluster nel senso tradizionale. A differenza di un cluster, i nodi all'interno di una griglia sono solitamente eterogenei e presentano una bassa disponibilità. Questo approccio semplifica la risoluzione di problemi di calcolo distribuito, ma non consente di creare un'unità coesa dai nodi.

Un esempio emblematico di sistema grid è la popolare piattaforma di calcolo BOINC (Berkeley Open Infrastructure for Network Computing). Questa piattaforma è stata originariamente 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 funzionaUn'enorme quantità di dati ricevuti dai radiotelescopi viene suddivisa in numerosi piccoli pezzi e inviati ai nodi del sistema grid (nel progetto SETI@home, i computer dei volontari ricoprono il ruolo di tali nodi). I dati vengono elaborati sui nodi e, al termine dell'elaborazione, vengono inviati al server centrale del progetto SETI. In questo modo, il progetto affronta una complessa sfida globale, senza avere a disposizione le necessarie capacità di calcolo.

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, prima di iniziare a creare un cluster, avere chiara consapevolezza delle limitazioni e dei requisiti di sistema di Proxmox, ovvero:

  • il numero massimo di nodi nel cluster è di 32;
  • tutti i nodi devono avere la stessa versione di Proxmox (ci sono eccezioni, ma non sono consigliate per production);
  • se in futuro si prevede di utilizzare la funzionalità di High Availability, nel cluster devono esserci 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 in rete tra i nodi non deve superare 2 ms.

Creazione del cluster

Importante! La configurazione qui sotto è quella di un test. Non dimenticate di fare riferimento a la documentazione ufficiale Proxmox VE.

Per avviare un cluster di test, abbiamo utilizzato tre server con hypervisor Proxmox installato, tutti con la stessa configurazione (2 nuclei, 2 GB di RAM).

Se desiderate sapere come installare Proxmox, vi consigliamo di leggere il nostro articolo precedente — La magia della virtualizzazione: un'introduzione a Proxmox VE.

Inizialmente, dopo l'installazione del sistema operativo, il server singolo funziona in modalità Standalone.

Clusterizzazione in Proxmox VE
Creiamo un cluster premendo il pulsante Crea Cluster nella sezione corrispondente.

Clusterizzazione in Proxmox VE
Diamo un nome al futuro cluster e selezioniamo la connessione di rete attiva.

Clusterizzazione in Proxmox VE
Facciamo clic sul pulsante Crea. 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 indica il successo dell'operazione. Ora, guardando le informazioni generali sul sistema, si può notare che il server è passato in modalità cluster. Finora il cluster consiste di una sola nodo, il che significa che non ha ancora le funzionalità per cui è necessario un cluster.

Clusterizzazione in Proxmox VE

Collegamento al cluster

Prima di connettersi al cluster creato, dobbiamo ottenere le informazioni necessarie per effettuare la connessione. A tal fine, entreremo nella sezione Cluster e facciamo clic sul pulsante Informazioni di Collegamento.

Clusterizzazione in Proxmox VE
Nella finestra che si apre, ci interessa il contenuto del campo con lo stesso nome. Questo dovremo copiarlo.

Clusterizzazione in Proxmox VE
Qui sono codificati tutti i parametri di connessione necessari: l'indirizzo del server per la connessione e l'impronta digitale. Passiamo al server da includere nel cluster. Clicchiamo sul pulsante Entra nel Cluster e nella finestra che si apre incolliamo il contenuto copiato.

Clusterizzazione in Proxmox VE
Campi Indirizzo Peer e Fingerprint saranno riempiti automaticamente. Inseriamo la password root per il nodo numero 1, scegliamo la connessione di rete e clicchiamo sul pulsante Entra.

Clusterizzazione in Proxmox VE
Durante il processo di connessione al cluster, la pagina web GUI potrebbe smettere di aggiornarsi. È normale, basta ricaricare la pagina. Aggiungiamo un altro nodo nello stesso modo 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 interfaccia grafica.

Clusterizzazione in Proxmox VE

Organizzazione dell'High Availability

Proxmox supporta ‘out of the box’ la funzionalità di organizzazione HA sia per le macchine virtuali che per i contenitori LXC. L'utility ha-manager rileva e gestisce errori e guasti, effettuando il failover da un nodo guasto a uno funzionante. Affinché il meccanismo funzioni correttamente, è necessario che le macchine virtuali e i contenitori condividano uno storage comune.

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

Colleghiamo lo 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 seguire le seguenti operazioni.

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

Clusterizzazione in Proxmox VE
Compilare i campi ID e Server. Dal menu a discesa Esportazione selezioniamo la directory desiderata tra quelle disponibili e nella lista Contenuti — i tipi di dati necessari. Dopo aver premuto il pulsante Add lo storage sarà collegato a tutti i nodi del cluster.

Clusterizzazione in Proxmox VE
Durante la creazione di macchine virtuali e container su uno qualsiasi dei nodi, indichiamo il nostro storage come storage.

Configuriamo HA

Per esempio, creiamo un container con Ubuntu 18.04 e configuriamo per esso la High Availability. Dopo aver creato e avviato il container, accediamo alla sezione Datacenter — HA — Aggiungi. Nel campo aperto, indichiamo 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 azione su di essa.

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

Clusterizzazione in Proxmox VE

Generiamo un guasto

Per vedere come funziona il meccanismo di failover, spegneremo il node1 per mancanza di energia. Osserviamo 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 la continuità del lavoro della VM. Non appena il nodo "è andato giù", il lavoro della VM si ferma temporaneamente fino al riavvio automatico su un altro nodo.

E qui inizia la "magia": il cluster ha automaticamente riassegnato un nodo per eseguire la nostra VM e, entro 120 secondi, il lavoro è stato ripristinato automaticamente.

Clusterizzazione in Proxmox VE
Spegniamo il node2 per mancanza di energia. Vediamo se il cluster reggerà e se la VM torna automaticamente in stato operativo.

Clusterizzazione in Proxmox VE
Purtroppo, come vediamo, abbiamo riscontrato un problema: sull'unico nodo rimasto attivo non c'è più quorum, il che disattiva automaticamente la funzione HA. Diamo il comando di forza per stabilire il quorum nella console.

pvecm si aspettava 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. Si noti che la VM non migra autonomamente su node1, ma può essere trasferita manualmente.

Tiriamo le somme

Vi abbiamo informato su come funziona il meccanismo di clustering in Proxmox e vi abbiamo mostrato come configurare l'HA per macchine virtuali e contenitori. Un uso corretto del clustering e dell'HA aumenta significativamente l'affidabilità dell'infrastruttura e garantisce il ripristino dopo i guasti.

Prima di creare un cluster, è necessario pianificare fin da subito quali obiettivi avrà e quanto dovrà essere scalato in futuro. Inoltre, è importante verificare che l'infrastruttura di rete sia pronta a lavorare con latenze minime, affinché il cluster futuro funzioni senza problemi.

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

Articoli precedenti sul hypervisor 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