Proxmox: installare Ceph in pochi passaggi
Ceph è un sistema di archiviazione distribuito che si integra perfettamente in Proxmox e offre una soluzione di archiviazione ad alta disponibilità e a prova di guasto. In questa guida scoprirai come installare un cluster Ceph sul tuo server Proxmox.
Primo passaggio: verifica i prerequisiti
Prima di iniziare con l’installazione di Ceph su Proxmox, dovresti assicurarti che il tuo ambiente soddisfi i requisiti di base. Ceph è un sistema di archiviazione che replica i dati su più server. Per fare in modo che questa ridondanza funzioni in modo affidabile, hai bisogno di almeno tre nodi Proxmox. Il sistema può così continuare a operare anche se un nodo causa un errore.
Assicurati inoltre che l’installazione bare metal di Proxmox sia stata completata su tutti i server e che Proxmox sia aggiornato. Ogni nodo dovrebbe disporre di un disco rigido dedicato e non utilizzato, previsto esclusivamente per gli OSD di Ceph. Queste unità costituiranno in seguito lo spazio di archiviazione vero e proprio del tuo cluster. È altrettanto importante una connessione di rete veloce e stabile tra i nodi, per mantenere bassa la latenza. Inoltre, ti serve l’accesso root su tutti gli host, poiché l’installazione richiede modifiche di sistema.
Verifica con il seguente comando quale versione di Proxmox è attualmente installata sul tuo sistema:
pveversionbashConfronta i numeri di versione su tutti i nodi. Se ci sono differenze o la tua installazione non è più aggiornata, esegui un aggiornamento per portare tutti i sistemi allo stesso stato:
apt update && apt full-upgrade -y
rebootbashDopo che tutti i nodi sono stati aggiornati e sono raggiungibili, il tuo ambiente è pronto per l’installazione di Ceph.
Anche se non si tratta di un requisito obbligatorio, per l’uso produttivo di Ceph su Proxmox dovresti utilizzare SSD. Ceph trae grande vantaggio da accessi di lettura e scrittura rapidi, poiché ogni set di dati viene replicato più volte e distribuito su più nodi.
- Processori all'avanguardia di ultima generazione
- Hardware dedicato ad alte prestazioni
- Data center certificati ISO
Secondo passaggio: attiva il repository Ceph
Per poter installare Ceph comodamente tramite la gestione pacchetti, devi prima attivare il repository appropriato su ciascuno dei tuoi nodi Proxmox. Questo repository contiene tutti i pacchetti Ceph necessari, appositamente adattati e testati da Proxmox. A tal fine, accedi come utente root su ogni host ed esegui il seguente comando:
pveceph installbashQuesto comando configura automaticamente il repository Ceph ufficiale di Proxmox e installa i componenti di base di Ceph. Affinché anche le nuove sorgenti dei pacchetti diventino attive, aggiorna l’elenco dei pacchetti con:
apt updatebashTerzo passaggio: inizializza Ceph sul primo nodo
Nel terzo passaggio viene preparato il vero e proprio cluster Ceph sul tuo primo nodo Proxmox. Definisci la rete su cui avviene la comunicazione del cluster e configuri così il primo cosiddetto monitor. Questo monitor è un componente centrale di Ceph: controlla lo stato del cluster, ne gestisce i membri e garantisce che tutti i componenti abbiano sempre le stesse informazioni.
Avvia l’inizializzazione sul primo host Proxmox con il seguente comando:
pveceph init --network 10.0.0.0/24bashLa sottorete 10.0.0.0/24 è solo un esempio. Usa la rete interna tramite cui i tuoi nodi Proxmox sono collegati direttamente tra loro. Con pveceph init viene creata la configurazione di base di Ceph sul tuo primo nodo. In questo modo Proxmox crea, tra l’altro, il file di configurazione centrale del cluster, il keyring di Ceph necessario per l’autenticazione all’interno del cluster, nonché le directory di sistema necessarie per i servizi Ceph.
Una volta completata l’inizializzazione, puoi configurare il primo servizio di monitor:
pveceph createmonbashQuesto comando avvia il processo monitor e lo registra nel cluster. Da questo momento esiste un nodo Ceph funzionante, ma ancora autonomo. Il monitor inizia a raccogliere informazioni di stato e getta così le basi per la successiva comunicazione con altri nodi.
In un cluster Ceph, in genere, si utilizzano almeno tre monitor. Ciò comporta il vantaggio che il cluster può continuare a funzionare anche se un monitor si guasta. Solo quando sono presenti più monitor, Ceph può raggiungere il cosiddetto stato di quorum. Si tratta di una maggioranza in grado di prendere decisioni sullo stato del cluster.
Quarto passaggio: aggiungi altri nodi al cluster
Per fare in modo che Ceph offra la tolleranza ai guasti desiderata, ora devi aggiungere al cluster Ceph gli altri nodi Proxmox. Ogni nodo aggiuntivo apporta ridondanza e capacità di archiviazione. A tal fine accedi agli altri nodi ed esegui lì, uno dopo l’altro, i seguenti comandi:
pveceph install
pveceph createmonbashIn questo modo configuri anche sugli altri host i monitor. Non appena tutti i monitor sono attivi, puoi verificare lo stato del cluster su qualsiasi nodo utilizzando il seguente comando:
ceph -sbashL’output ti mostra quali monitor e servizi sono attualmente in esecuzione. Se lì sono elencati più monitor, hai integrato correttamente tutti i nodi.
Quinto passaggio: creare gli OSD
Gli OSD (Object Storage Daemon) sono il cuore del tuo cluster Ceph. Ogni disco rigido che utilizzi per Ceph diventa una propria unità OSD. Questi demoni sono responsabili di scrivere i dati sulle unità, replicarli e renderli nuovamente disponibili quando vengono richiesti da un altro nodo o da una macchina virtuale. Più OSD possiede il tuo cluster, maggiore saranno sia la capacità di archiviazione sia le prestazioni. Prima di iniziare la configurazione, dovresti verificare quali unità sono disponibili sul tuo nodo. Puoi farlo con il seguente comando:
lsblkbashL’output ti mostra tutti i dischi rigidi e le partizioni riconosciuti dal sistema. Assicurati di usare per Ceph solo unità non utilizzate. Accedi solo alle unità che non contengono il sistema operativo e non sono montate. Una volta individuata un’unità adatta, nel nostro caso /dev/sdb, puoi inizializzarla come OSD:
pveceph createosd /dev/sdbbashIn questo modo l’unità viene formattata automaticamente e Ceph configura la struttura necessaria. Successivamente il demone OSD viene avviato e integrato nel cluster. Tutti i dati presenti sull’unità selezionata verranno eliminati. Assicurati quindi che il disco sia davvero destinato esclusivamente a Ceph.
Ripeti questa procedura su tutti i nodi e per tutte le unità che desideri integrare nel tuo spazio di archiviazione Ceph su Proxmox. A seconda delle dimensioni del cluster e dell’hardware, potrebbero volerci alcuni minuti prima che tutti gli OSD vengano integrati completamente.
Verifica quindi che gli OSD appena configurati siano stati rilevati correttamente e siano attivi. A tal fine, utilizza il seguente comando:
ceph osd treebashGrazie alla chiara struttura ad albero, puoi vedere facilmente come i tuoi dispositivi di archiviazione sono distribuiti nel cluster e se funzionano senza errori.
Sesto passaggio: attiva Ceph Manager e la dashboard
Per poter monitorare e gestire comodamente il tuo cluster Ceph su Proxmox, installa ora Ceph Manager (in breve, MGR). Questo servizio raccoglie dati sulle prestazioni, monitora tutti i componenti attivi e mette a disposizione funzioni aggiuntive tramite vari moduli. Tra queste funzioni c’è anche la dashboard web integrata. Installa il servizio Manager sul tuo nodo Proxmox con il seguente comando da terminale:
pveceph createmgrbashUna volta che il manager è attivo, puoi attivare il modulo dashboard. Viene fornito automaticamente dal servizio MGR e deve solo essere abilitato:
ceph mgr module enable dashboardbashLa dashboard offre un’interfaccia intuitiva con cui puoi visualizzare lo stato del tuo cluster, monitorare l’utilizzo degli OSD e dei monitor, nonché individuare direttamente gli avvisi. Accedivi tramite il tuo browser e la porta standard 8443:
https://<PROXMOX_IP>:8443Sostituisci PROXMOX_IP con l’indirizzo IP del nodo Proxmox su cui è stato installato Ceph Manager.
Settimo passaggio: crea e testa i pool Ceph
Dopo che il tuo cluster Ceph è stato configurato correttamente e tutti gli OSD sono attivi, puoi creare l’area di archiviazione vera e propria in cui in seguito verranno salvati i tuoi dati. Ceph organizza i dati in pool. Un pool è un’unità logica in cui Ceph memorizza i tuoi file, le immagini disco o i volumi dei container. Ogni pool è composto da numerosi Placement Group, che distribuiscono i dati sui singoli OSD e garantiscono una distribuzione uniforme del carico. Con i pool stabilisci quindi come e dove Ceph salva i tuoi dati. In base alle tue esigenze puoi, ad esempio, creare un pool per le macchine virtuali e un altro per backup o immagini dei container.
Per creare un nuovo pool, esegui il seguente comando su uno dei tuoi nodi Proxmox:
pveceph pool create cephpool --size 3 --min_size 2 --pg_num 128bashNel nostro esempio viene creato un pool con il nome cephpool. I parametri indicano come Ceph deve gestire i tuoi dati:
--size 3significa che ogni file viene replicato tre volte. Questo garantisce tolleranza ai guasti: se un OSD si guasta, sono comunque disponibili due copie.--min_size 2stabilisce che devono essere attive almeno due copie affinché il pool sia considerato funzionante. In questo modo si evita che Ceph lavori con dati incompleti.--pg_num 128definisce il numero di Placement Group, cioè i contenitori logici dei dati in cui Ceph suddivide internamente i tuoi dati. Più OSD hai, più questo valore può essere alto, per distribuire i dati in modo uniforme.
Il numero di Placement Group che definisci durante la creazione di un pool Ceph non può più essere ridotto in un secondo momento. Puoi aumentarlo se il cluster cresce, ma una riduzione non è prevista tecnicamente, perché può comportare una perdita di dati. Per questo, pianifica fin dall’inizio un numero di PG sufficiente. Come regola pratica: 100 PG per OSD nel pool sono un buon valore di partenza per ambienti piccoli o medi.
Dopo aver creato il pool, puoi verificare che tutto funzioni correttamente.
ceph -sbashNell’output vedi lo stato attuale del tuo cluster Ceph. Se compare l’indicazione HEALTH_OK, significa che il pool è stato configurato correttamente e che il tuo cluster Ceph su Proxmox funziona in modo stabile.
Un cluster Ceph garantisce ridondanza, ma non sostituisce i backup. Per un vero backup dei dati in ambienti Proxmox si consiglia un server di backup Proxmox. In questo modo vengono consentiti backup deduplicati e cifrati delle tue VM e dei container, anche se si trovano su spazi di archiviazione Ceph.
Ottavo passaggio: integra lo spazio di archiviazione Ceph su Proxmox
Dopo aver configurato il tuo cluster Ceph e creato il primo pool, come ultimo passaggio devi integrarlo in Proxmox, in modo che le tue macchine virtuali e i container possano utilizzare lo spazio di archiviazione. A questo scopo Proxmox usa il protocollo RBD. L’integrazione è più semplice tramite la relativa interfaccia grafica. Apri quindi l’interfaccia web e nel menu vai a “Datacenter > Storage > Add > RBD (Ceph)”.
Nella seguente finestra di dialogo inserisci i dati di connessione necessari al tuo cluster Ceph su Proxmox.
- In ID inserisci un nome univoco per la nuova destinazione di archiviazione.
- Nella sezione Monitor inserisci gli indirizzi IP dei tuoi Ceph-MON. Si tratta degli indirizzi dei nodi su cui sono in esecuzione i servizi di monitor. Separa più indirizzi con virgole, ad esempio 10.0.0.11,10.0.0.12,10.0.0.13.
- Nel campo Pool indica il nome del pool Ceph creato in precedenza, ad esempio cephpool.
- Come nome utente puoi in genere usare admin.
- Il keyring viene compilato automaticamente, perché Proxmox legge dalla tua configurazione Ceph la chiave di autenticazione necessaria.
Se preferisci lavorare da riga di comando, puoi eseguire la stessa procedura anche con un unico comando:
pvesm add rbd ceph-storage --monhost <mon1,mon2,mon3> --pool cephpool --content imagesbashSostituisci <mon1,mon2,mon3> con gli indirizzi IP dei tuoi nodi monitor.
Una volta aggiunto lo spazio di archiviazione, questo compare nell’interfaccia di Proxmox. Ora puoi selezionarlo direttamente come destinazione per le macchine virtuali. Da questo momento Proxmox usa Ceph come spazio di archiviazione. Ciò significa che tutte le VM che crei su questo spazio di archiviazione beneficiano automaticamente della ridondanza e della tolleranza ai guasti del cluster Ceph.
Se in seguito desideri gestire un cluster Kubernetes su Proxmox, l’integrazione di Ceph su Proxmox risulta particolarmente vantaggiosa. Ceph può infatti essere utilizzato in modo trasparente come spazio di archiviazione persistente per Kubernetes. In questo modo, i tuoi container beneficiano della stessa ridondanza e alta disponibilità delle tue macchine virtuali.

