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.

Copia

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

Copia

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

URL per accedere al cluster

 

Notiamo che ci viene fornito anche un comando come questo

comando ceph

 

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

Copia

La posizioniamo poi nel file “authorized_keys” del nodo2 e del nodo3

Copia

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

welcome to ceph dashboard

 

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

Coppa

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

ceph expand cluster

Aggiungiamo il nodo 2, con hostname ceph2 e IP 192.168.131.104

ceph add host

Facciamo poi lo stesso con il nodo 3, con hostname ceph3

Dovremmo trovarci questa schermata

ceph add hosts

Procediamo con “Create OSD” —> Advanced Mode —> +Add

Attendere che tutti i dischi vengano visualizzati e selezionare il filtro in modo che siano tutti visualizzati

ceph primary devices

Proseguire con Add

Aggiungiamo ora i servizi, andando su Create Service —> Create e aggiungiamo il servizio mds su tutti i nodi

ceph edit service

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

Copia

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

Copia
Copia

Una volta creati i due pool, pensiamo a creare la CephFS

Copia

Ecco alcuni comandi utili per manipolare CephFS

Copia
Copia

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

Copia

Andiamo a creare la chiave dell’utente admin, usata poi per eseguire il mount dal ceph-client

Copia
Copia

Copia l’output e usalo nel client sul quale vuoi montare la CephFS

4. Ceph Client

Installiamo prima di tutto Ceph Common

Copia

Ci posizioniamo su una macchina che fungerà da ceph client e copiamo la key nel path corretto

Copia

Creiamo poi una cartella sul client, sulla quale andremo a montare la CephFS

Copia
Copia

Nel nostro caso, sarà:

Copia

Montiamo in modo permanente, aggiungendo questa riga nel file /etc/fstab

Copia

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

ceph file systems

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

ceph 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

Copia

Eseguiamo poi:

Copia

Hai trovato utile questo articolo? Invialo a un amico o condividilo sui social!


Articoli correlati