In questa guida vedremo come installare e configurare un ambiente Ceph Cluster 3 nodi Iperconvergente per poi interfacciarlo, attraverso CephFS con un Ceph Client.
Come creare il cluster iperconvergente con Ceph
Supponiamo di avere a disposizione 3 macchine sulle quali fare l’Installazione (nodo1, nodo2, nodo3)
1. Installazione di CEPHADM per la gestione del cluster
Eseguiamo questi comandi per eseguire l’Installazione di cephadm sul nodo1.
Lasciamo che venga installato cephadmin come un “tool” nel sistema. Questa operazione impiega circa 30” per essere completata.
Ona volta completata l’Installazione, eseguiamo il boostrap di ceph admin, usando l’IP dell’host su cui stiamo operando
Con questa operazione, cephadm scaricherà le immagini dei containers per creare l’infrastruttura cluster Ceph e per mandarlo il running nella nostra network 192.168.131.0/24.
A fine procedura, vediamo che ci viene comunicato la URL per accedere al cluster
Notiamo che ci viene fornito anche un comando come questo
Questo comando ci permetterà di accedere alla shell.
La GUI di ceph è molto potente e permette molte operazioni ma avere accesso alla shell è molto importante, anche in caso di problemi.
Andiamo a prendere la key di ceph in
La posizioniamo poi nel file “authorized_keys” del nodo2 e del nodo3
In questo modo ceph avrà il pieno controllo degli altri due host
Entrare nella GUI con la URL indicata
Eseguire il cambio password come richiesto
Parte poi la procedura di creazione del cluster
Atterriamo così sulla procedura di creazione del Cluster Ceph
Prima di procedere, andiamo ad installare Docker sugli altri nodi.
2. Installazione di Docker
Entrare in SSH sugli altri due nodi ed eseguiamo la procedura di installazione di Docker
Una volta installato Docker su entrambi i nodi2 e nodo3, proseguire con l’installazione dalla GUI.
Clicchiamo su “Expand Cluster” e ci troviamo questa schermata
Aggiungiamo il nodo 2, con hostname ceph2 e IP 192.168.131.104
Facciamo poi lo stesso con il nodo 3, con hostname ceph3
Dovremmo trovarci questa schermata
Procediamo con “Create OSD” —> Advanced Mode —> +Add
Attendere che tutti i dischi vengano visualizzati e selezionare il filtro in modo che siano tutti visualizzati
Proseguire con Add
Aggiungiamo ora i servizi, andando su Create Service —> Create e aggiungiamo il servizio mds su tutti i nodi
Terminare quindi la procedura facendo “Expand Cluster”
Ora Ceph pensarà a creare tutti i servizi su tutti i nodi del cluster e mandarli in running
3. Creazione della CephFS
Ceph File System (CephFS) è un File System compatibile con POSIX che si basa sullo storage Ceph distribuito a oggetti, chiamato RADOS, per fornire uno storage altamente disponibile e performante per diverse applicazioni.
Supporta casi d’uso tradizionali come le directory condivise, lo spazio di lavoro temporaneo per calcolo ad alte prestazioni e lo storage condiviso per flussi di lavoro distribuiti.
CephFS adotta un’architettura unica in cui i metadati dei file vengono memorizzati separatamente dai dati dei file in RADOS. I metadati vengono serviti attraverso un cluster di Server di Metadati (MDS) che possono essere ridimensionati per gestire carichi di lavoro di metadati ad alta velocità.
I client accedono direttamente a RADOS per leggere e scrivere blocchi di dati dei file, consentendo una scalabilità lineare in base alla dimensione dello storage di oggetti RADOS sottostante.
L’accesso ai dati è coordinato dal cluster di MDS, che agisce come autorità per la cache di metadati distribuita mantenuta in collaborazione tra i client e gli MDS stessi.
Le mutazioni dei metadati vengono scritte in modo efficiente su un registro (journal) in RADOS da parte di ciascun MDS, senza memorizzare alcuno stato dei metadati in modo locale.
Questo modello permette una collaborazione coerente e rapida tra i client all’interno di un sistema di file POSIX.
CephFS è un sistema di file distribuito e scalabile che fornisce un accesso in tempo reale e simultaneo a grandi quantità di dati da parte di più nodi di calcolo.
È adatto per una vasta gamma di casi d’utilizzo che richiedono storage distribuito, elaborazione parallela e affidabilità dei dati.
Entriamo nella shell di Cephadm con
Andiamo prima a creare due pool:
Il primo pool sarà quello per i metadati
Il secondo pool sarà quello per i dati veri e propri
Eseguiamo quindi i due comandi per la creazione dei pool
Una volta creati i due pool, pensiamo a creare la CephFS
Ecco alcuni comandi utili per manipolare CephFS
Questo NON eliminerà i dati all’interno del pool, ma solo la CephFS
4. Mount da un Ceph Client
Ora che abbiamo creato la CephFS, vogliamo renderla utilizzabile su una macchina Client (in questo caso una Debian)
Posizioniamoci sulla macchina con cephadm (nodo 1) e entriamo nella shell
Andiamo a creare la chiave dell’utente admin, usata poi per eseguire il mount dal ceph-client
Copia l’output e usalo nel client sul quale vuoi montare la CephFS
4. Ceph Client
Installiamo prima di tutto Ceph Common
Ci posizioniamo su una macchina che fungerà da ceph client e copiamo la key nel path corretto
Creiamo poi una cartella sul client, sulla quale andremo a montare la CephFS
Nel nostro caso, sarà:
Montiamo in modo permanente, aggiungendo questa riga nel file /etc/fstab
Una volta montata la risorsa CephFS, andiamo a verificare sulla dashboard di Ceph.
Sotto File Systems —> ceph_fs —> Clients
Vediamo che è presente il client che abbiamo appena associato
Da questo momento possiamo usare la nostra CephFS come preferiamo (ad esempio come File Server).
6. Restart dei Monitor
È possibile che si debbano riavviare il monitor, ad esempio quando abbiamo latenze che si presentano con questo errore
Questo errore vuol dire che i Monitor non sono sincronizzati.
Un comando utile per fare ripartire i monitor tutti insieme è il seguente:
Posizioniamoci sulla macchina con cephadm (nodo 1) e entriamo nella shell
Eseguiamo poi: