GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come creare un cluster di archiviazione Ceph su Ubuntu 16.04

Ceph è una delle tecnologie di archiviazione open source più interessanti uscite negli ultimi anni. Scalabile a exabyte ed estensibile a più data center, gli sviluppatori Ceph hanno semplificato l'implementazione del software da parte degli amministratori di sistema e degli architetti dell'infrastruttura. Questo articolo offrirà una guida dettagliata su come creare un cluster Ceph stroage di base. Questo è stato testato su Ubuntu 16.04. Tieni presente che, se non diversamente indicato, tutti i comandi vengono eseguiti come root. Nota anche che quando questo documento menziona "tutti i nodi Ceph", questo include anche il nodo Admin.

Configurazione generale

Nel nostro esempio creeremo un cluster Ceph di base a tre nodi, ciascuno con due OSD. Utilizzeremo la convenzione del nome host "Storage-x ", dove "x" è un numero da 1 a 3, utilizzato per fare riferimento a nodi specifici. Utilizzeremo un computer esterno (potrebbe essere il tuo computer o laptop) come ceph Admin Node.

Configurazione della rete

Ogni nodo sarà sulla stessa rete privata, con un gateway attraverso il quale sarà possibile accedere a Internet.
Anche il nodo Admin dovrebbe trovarsi sulla stessa rete, ma non è necessario che sia sempre disponibile per la rete. Di conseguenza, il tuo computer di lavoro potrebbe essere il nodo Admin e potrebbe utilizzare una VPN per connettersi alla rete dei nodi Ceph.

Ceph utilizza le porte TCP 6789 per i nodi Ceph Monitor e le porte 6800-7100 per gli OSD Ceph nella zona pubblica. Ad esempio su iptables :

sudo iptables -A INPUT -i {iface} -p tcp -s {ip-address}/{netmask} --dport 6789 -j ACCEPT

Prepara i nodi

Ogni nodo di archiviazione deve essere sincronizzato, quindi installeremo ntp su di esso e ci assicureremo di potervi accedere tramite SSH attraverso la rete.

sudo apt install ntp ssh

Assicurati che il nome host di ciascun nodo Ceph sia risolvibile da tutti i nodi Ceph. Su ciascun nodo Ceph, modifica il file /etc/hosts e aggiungi quanto segue:

[Admin Node IP Address] admin-node
[Storage-1 IP Address] Storage-1
[Storage-2 IP Address] Storage-2
[Storage-3 IP Address] Storage-3

Sostituisci di conseguenza l'indirizzo IP di ogni nodo.
Per verificare se la risoluzione funziona, procedi come segue:

ping admin-node
ping Storage-1
ping Storage-2
ping Storage-3

Assicurati che il nodo amministratore hostname si risolve nell'indirizzo IP della rete esterna del nodo amministratore, non nell'indirizzo IP di loopback (127.0.0.1).

Su ciascun nodo Ceph (ovvero il nodo Admin e tutti i nodi Storage), aggiungeremo il repository del pacchetto Ceph Ubuntu ad apt, quindi aggiorneremo la cache locale con i contenuti del nuovo repository:

wget -q -O- 'https://download.ceph.com/keys/release.asc' | apt-key add -
echo deb http://download.ceph.com/debian-{ceph-stable-release}/ $(lsb_release -sc) main | tee /etc/apt/sources.list.d/ceph.list
apt-get update

Crea un cephadmin utente su tutti i nodi Ceph. Questo utente verrà utilizzato per installare e amministrare Ceph sull'intero cluster di nodi, quindi assicurati di massimizzare la sicurezza per le credenziali di questo utente.

ssh-keygen -t rsa
useradd cephadmin

Configura SSH senza password

Gli script e gli strumenti di installazione di Ceph dal nodo Admin dovranno essere in grado di accedere a tutti i membri del cluster senza password.
Nel nodo admin, passa a cephadmin utente e creare una chiave SSH:

Copia la chiave ssh che hai generato sui tre nodi di archiviazione:

ssh-copy-id Storage-1
ssh-copy-id Storage-2
ssh-copy-id Storage-3

In qualità di utente cephadmin sul tuo nodo Admin, verifica se ssh senza password nei nodi di archiviazione ora funziona correttamente:

ssh Storage-1
ssh Storage-2
ssh Storage-3

Configura Sudo senza password

Ora che l'accesso senza password tramite SSH è impostato, configura sudo senza password per l'utente cephadmin su tutti i nodi Ceph:

visudo

Dovresti vedere quanto segue:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Aggiungi la seguente riga in fondo:

cephadmin ALL=(ALL) NOPASSWD: ALL

Questo dovrebbe ora consentire sudo senza password per cephadmin utente su tutti i nodi Ceph.

Installa ceph-deploy

Ceph-deploy è uno strumento creato dagli sviluppatori Ceph per facilitare le distribuzioni rapide dei cluster Ceph eseguendo lo script dei singoli passaggi necessari per distribuire un nodo. Ne approfitteremo installando lo strumento sul nostro nodo Admin.

apt install ceph-deploy

Nel nodo Admin, passa a cephadmin utente che abbiamo creato nella parte 1 del tutorial, passare alla home directory e creare una sottodirectory che verrà utilizzata per contenere tutti i file necessari per l'implementazione e la gestione del nostro cluster Ceph:

su cephadmin
cd
mkdir my-first-ceph-cluster
cd my-first-ceph-cluster

A questo punto, tutti i comandi di distribuzione da eseguire devono essere eseguiti solo da /home/cephadmin/my-first-ceph-cluster . Anche i comandi di amministrazione devono essere eseguiti all'interno della stessa directory.

Configurazione Ceph

Assegna tutti i nodi di archiviazione come nodi di monitoraggio:

ceph-deploy new Storage-1 Storage-2 Storage-3

All'interno della tua directory di lavoro, dovresti ora vedere che i file sono stati generati da ceph-deploy, inclusi i file keyring e il file di configurazione Ceph.

Aggiungi la seguente riga a ceph.conf file:

osd pool default size = 2

Poiché nel nostro cluster abbiamo solo due OSD per nodo di archiviazione, ciò consentirà a Ceph di accontentarsi di avere solo una singola copia aggiuntiva di tutti i dati archiviati al suo interno.
Aggiungi la seguente riga a ceph.conf anche:

public network = {ip-address}/{netmask}

Dove sostituirai la parte di rete con i valori effettivi. Ad esempio, se i tuoi nodi di archiviazione si trovano sulla rete 192.168.1.0/24, questo dovrebbe essere il valore. Non essere confuso quando menziona "rete pubblica"; si riferisce solo a una rete esterna al cluster Ceph. Le reti di replica interne non sono coperte da questo tutorial.

Distribuisci Ceph

Il software e i file di configurazione verranno ora installati e copiati sui nodi Ceph.

ceph-deploy install admin-node Storage-1 Storage-2 Storage-3

Questo installerà tutti i pacchetti Ceph di base sui nodi.

Installa e configura il software Ceph Monitor sui nodi di archiviazione:

ceph-deploy mon create-initial

OSD Ceph

Sebbene sia possibile utilizzare le directory come OSD, non è consigliabile in un'impostazione di produzione. Supponendo che gli OSD Ceph da utilizzare su ciascuno degli Storage Node siano /dev/sda e /dev/sdb , abbiamo Ceph che prepara i dischi per l'uso.

ATTENZIONE: Il comando seguente distruggerà i dati esistenti sugli OSD specificati, quindi è necessario prestare attenzione che non vi siano errori nell'esecuzione del comando.

ceph-deploy osd prepare Storage-1:/dev/sda
ceph-deploy osd prepare Storage-1:/dev/sdb
ceph-deploy osd prepare Storage-2:/dev/sda
ceph-deploy osd prepare Storage-2:/dev/sdb
ceph-deploy osd prepare Storage-3:/dev/sda
ceph-deploy osd prepare Storage-3:/dev/sdb

Se i comandi precedenti vengono eseguiti senza errori, gli OSD sono pronti e ora possiamo attivarli come risorsa in esecuzione nel cluster:

ceph-deploy osd activate Storage-1:/dev/sda
ceph-deploy osd activate Storage-1:/dev/sdb
ceph-deploy osd activate Storage-2:/dev/sda
ceph-deploy osd activate Storage-2:/dev/sdb
ceph-deploy osd activate Storage-3:/dev/sda
ceph-deploy osd activate Storage-3:/dev/sdb

Finalizzazione

Copia i keyring dell'amministratore su ciascun nodo Ceph in modo che sia possibile l'amministrazione Ceph su ciascun nodo:

ceph-deploy admin admin-node Storage-1 Storage-2 Storage-3

Controlla lo stato di tutti gli OSD su tutti i nodi di archiviazione:

ceph osd tree

Verifica lo stato generale del tuo cluster Ceph:

ceph health

Se ricevi un

HEALTH_OK

significa che il cluster funziona correttamente.

Se desideri visualizzare più statistiche del cluster, il seguente comando dovrebbe fare:

ceph status

Conclusione

Ora abbiamo un cluster Ceph a tre nodi attivo e funzionante. Con questa configurazione, il cluster potrebbe perdere un nodo, non subire perdite di dati e continuare a servire le richieste. Anche i servizi di monitoraggio ad alta disponibilità sono disponibili su ogni nodo di archiviazione. Questa è una configurazione a livello di produzione molto semplice. Se desideri saperne di più, vai alla documentazione ufficiale di Ceph per ulteriori informazioni.


Ubuntu
  1. Come creare Ubuntu Live USB in Windows

  2. Come installare Node.js e NPM su Ubuntu 18.04 e 20.04

  3. Come creare un utente Sudo su Ubuntu

  4. Come installare un cluster MySQL su Ubuntu 16.04

  5. Come installare Node.js su Ubuntu 16.04

Come installare Node.js su Ubuntu 14.04

Come installare Node.js su Ubuntu 16.04

Come installare Node.js su Ubuntu 18.04 LTS

Come installare Node.js su Ubuntu 19.04

Come installare Node.js su Ubuntu 20.04 LTS

Come installare Node.js su Ubuntu 14.04