GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come creare un cluster di archiviazione distribuito Ceph su CentOS 7

Ceph è una piattaforma di archiviazione open source ampiamente utilizzata. Fornisce prestazioni elevate, affidabilità e scalabilità. Il sistema di archiviazione distribuito gratuito Ceph fornisce un'interfaccia per l'archiviazione a livello di oggetti, blocchi e file. Ceph è progettato per fornire un sistema di storage distribuito senza un singolo punto di errore.

In questo tutorial, ti guiderò a installare e creare un cluster Ceph su CentOS 7. Un cluster Ceph richiede questi componenti Ceph:

  • OSD Ceph (ceph-osd) - Gestisce l'archivio dati, la replica e il ripristino dei dati. Un cluster Ceph necessita di almeno due server OSD Ceph. Userò tre server OSD CentOS 7 qui.
  • Monitor Ceph (ceph-mon) - Monitora lo stato del cluster, la mappa OSD e la mappa CRUSH. Userò un server.
  • Server di metadati Ceph (ceph-mds) - Questo è necessario per utilizzare Ceph come File System.

Prerequisiti

  • 6 nodi server, tutti con CentOS 7 installato.
  • Privilegi di root su tutti i nodi.

I server in questo tutorial utilizzeranno i seguenti nomi host e indirizzi IP.

nome host Indirizzo IP

Ceph-Admin 10.0.15.10
MON1 10.0.15.11
OSD1 10.0.15.21
OSD2 10.0.15.22
OSD3 10.0.15.23
cliente                 15.10.15

Tutti i nodi OSD necessitano di due partizioni, una partizione root (/) e una partizione vuota che verrà utilizzata come archivio dati Ceph in seguito.

Passaggio 1 - Configura tutti i nodi

In questo passaggio configureremo tutti e 6 i nodi per prepararli all'installazione del Ceph Cluster. Devi seguire ed eseguire tutti i comandi seguenti su tutti i nodi. E assicurati che ssh-server sia installato su tutti i nodi.

Crea un utente Ceph

Crea un nuovo utente chiamato 'cephuser ' su tutti i nodi.

useradd -d /home/cephuser -m cephuser
passwd cephuser

Dopo aver creato il nuovo utente, è necessario configurare sudo per 'cephuser'. Deve essere in grado di eseguire comandi come root e di ottenere i privilegi di root senza una password.

Eseguire il comando seguente per creare un file sudoers per l'utente e modificare il file /etc/sudoers con sed.

echo "cephuser ALL =(radice) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
chmod 0440 /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers

Installa e configura NTP

Installa NTP per sincronizzare data e ora su tutti i nodi. Esegui il comando ntpdate per impostare una data e un'ora tramite il protocollo NTP, utilizzeremo il server NTP del pool di us. Quindi avvia e abilita l'esecuzione del server NTP all'avvio.

yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntpd.service
systemctl start ntpd .servizio

Installa Open-vm-tools

Se stai eseguendo tutti i nodi all'interno di VMware, devi installare questa utilità di virtualizzazione. Altrimenti salta questo passaggio.

yum install -y open-vm-tools

Disabilita SELinux

Disabilita SELinux su tutti i nodi modificando il file di configurazione di SELinux con sed stream editor.

sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

Configura file host

Modifica il file /etc/hosts su tutti i nodi con l'editor vim e aggiungi righe con l'indirizzo IP e i nomi host di tutti i nodi del cluster.

vim /etc/hosts

Incolla la configurazione di seguito:

10.0.15.10        ceph-admin
10.0.15.11        lun1
10.0.15.21        osd1
10.0.15.22        osd2
10.0.15.23         osd 0. 5.    0 0. 5.    0 0. 5 /pre>

Salva il file ed esci da vim.

Ora puoi provare a eseguire il ping tra i server con il loro nome host per testare la connettività di rete. Esempio:

ping -c 5 mon1

Passaggio 2:configurazione del server SSH

In questo passaggio, configurerò il nodo ceph-admin . Il nodo admin viene utilizzato per configurare il nodo monitor e i nodi OSD. Accedi al nodo ceph-admin e diventa il 'cephuser '.

ssh [email protected]
su - cephuser

Il nodo admin viene utilizzato per installare e configurare tutti i nodi del cluster, quindi l'utente sul nodo ceph-admin deve disporre dei privilegi per connettersi a tutti i nodi senza una password. Dobbiamo configurare l'accesso SSH senza password per 'cephuser' sul nodo 'ceph-admin'.

Genera le chiavi ssh per 'cephuser '.

ssh-keygen

lascia la passphrase vuota/vuota.

Quindi, crea il file di configurazione per la configurazione ssh.

vim ~/.ssh/config

Incolla la configurazione di seguito:

Host ceph-admin
        Nome host ceph-admin
        User cephuser

Host mon1
        Hostname mon1
        User cephuser

Host osd1
        Hostname osd1
        User cephuser

Host osd2
        Hostname osd2
        User cephuser

Host osd3
        Hostname osd3
        User cephuser

Host client
        Hostname client
        User cephuser

Salva il file.

Modifica l'autorizzazione del file di configurazione.

chmod 644 ~/.ssh/config

Ora aggiungi la chiave SSH a tutti i nodi con il comando ssh-copy-id.

ssh-keyscan osd1 osd2 osd3 mon1 client>> ~/.ssh/known_hosts
ssh-copy-id osd1
ssh-copy-id osd2
ssh-copy-id osd3
ssh-copy-id mon1
client ssh-copy-id

Digita la tua password "cehuser" quando richiesto.

Quando hai finito, prova ad accedere al server osd1 dal nodo ceph-admin.

ssh osd1

Passaggio 3 - Configura Firewalld

Useremo Firewalld per proteggere il sistema. In questo passaggio, abiliteremo firewald su tutti i nodi, quindi apriremo le porte necessarie per ceph-admon, ceph-mon e ceph-osd.

Accedi al nodo ceph-admin e avvia firewalld.

ssh [email protected]
systemctl start firewalld
systemctl enable firewalld

Apri la porta 80, 2003 e 4505-4506, quindi ricarica il firewall.

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --zone=public --add-port=2003/tcp --permanent
sudo firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent
sudo firewall-cmd --reload

Dal nodo ceph-admin, accedi al nodo monitor 'mon1' e avvia firewalld.

ssh mon1
sudo systemctl start firewalld
sudo systemctl enable firewalld

Aprire una nuova porta sul nodo Ceph monitor e ricaricare il firewall.

sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent
sudo firewall-cmd --reload

Infine, apri la porta 6800-7300 su ciascuno dei nodi osd:osd1, osd2 e os3.

Accedi a ciascun nodo OSD dal nodo ceph-admin.

ssh osd1
sudo systemctl start firewalld
sudo systemctl enable firewalld

Apri le porte e ricarica il firewall.

sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
sudo firewall-cmd --reload

La configurazione del firewall è completata.

Passaggio 4:configurazione dei nodi Ceph OSD

In questo tutorial abbiamo 3 nodi OSD e ogni nodo ha due partizioni.

  1. /dev/sda per la partizione di root.
  2. /dev/sdb è una partizione vuota - 30 GB nel mio caso.

Useremo /dev/sdb per il disco Ceph. Dal nodo ceph-admin, accedi a tutti i nodi OSD e formatta la partizione /dev/sdb con XFS .

ssh osd1
ssh osd2
ssh osd3

Controlla la partizione con il comando fdisk.

sudo fdisk -l /dev/sdb

Formatta la partizione /dev/sdb con il filesystem XFS e con una tabella delle partizioni GPT usando il comando parted.

sudo parted -s /dev/sdb mklabel gpt mkpart primary xfs 0% 100%
sudo mkfs.xfs /dev/sdb -f

Ora controlla la partizione e otterrai la partizione xfs /dev/sdb.

sudo blkid -o valore -s TYPE /dev/sdb

Fase 5:costruisci il cluster Ceph

In questo passaggio, installeremo Ceph su tutti i nodi dal nodo ceph-admin.

Accedi al nodo ceph-admin.

ssh [email protected]
su - cephuser

Installa ceph-deploy sul nodo ceph-admin

Aggiungi il repository Ceph e installa lo strumento di distribuzione Ceph 'ceph-deploy ' con il comando yum.

sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
sudo yum update -y &&sudo yum install ceph-deploy -y

Assicurati che tutti i nodi siano aggiornati.

Dopo aver installato lo strumento ceph-deploy, crea una nuova directory per la configurazione del cluster ceph.

Crea nuova configurazione cluster

Crea la nuova directory del cluster.

cluster mkdir
cluster cd/

Quindi, crea una nuova configurazione del cluster con 'ceph-deploy comando ', definisci il nodo monitor come 'mon1 '.

ceph-deploy new mon1

Il comando genererà il file di configurazione del cluster Ceph 'ceph.conf' nella directory del cluster.

Modifica il file ceph.conf con vim.

vim ceph.conf

In blocco [globale], incolla la configurazione di seguito.

# Il tuo indirizzo di rete
rete pubblica =10.0.15.0/24
dimensione predefinita del pool osd =2

Salva il file ed esci da vim.

Installa Ceph su tutti i nodi

Ora installa Ceph su tutti gli altri nodi dal nodo ceph-admin. Questo può essere fatto con un singolo comando.

ceph-deploy install ceph-admin mon1 osd1 osd2 osd3

Il comando installerà automaticamente Ceph su tutti i nodi:mon1, osd1-3 e ceph-admin - L'installazione richiederà del tempo.

Ora distribuisci ceph-mon sul nodo mon1.

ceph-deploy mon create-initial

Il comando creerà la chiave monitor, verificherà e otterrà le chiavi con il comando 'ceph'.

ceph-deploy collectkeys mon1

Aggiunta di OSDS al cluster

Quando Ceph è stato installato su tutti i nodi, possiamo aggiungere i daemon OSD al cluster. I demoni OSD creeranno i loro dati e la partizione del journal sul disco /dev/sdb.

Verifica che la partizione /dev/sdb sia disponibile su tutti i nodi OSD.

ceph-deploy disk list osd1 osd2 osd3

Vedrai il disco /dev/sdb con formato XFS.

Quindi, elimina le tabelle delle partizioni /dev/sdb su tutti i nodi con l'opzione zap.

ceph-deploy disk zap osd1:/dev/sdb osd2:/dev/sdb osd3:/dev/sdb

Il comando cancellerà tutti i dati su /dev/sdb sui nodi Ceph OSD.

Ora prepara tutti i nodi OSDS. Assicurati che non ci siano errori nei risultati.

ceph-deploy osd prepare osd1:/dev/sdb osd2:/dev/sdb osd3:/dev/sdb

Se vedi che osd1-3 è pronto per l'utilizzo del risultato OSD, la distribuzione è avvenuta correttamente.

Attiva gli OSD con il comando seguente:

ceph-deploy osd attiva osd1:/dev/sdb1 osd2:/dev/sdb1 osd3:/dev/sdb1

Verificare la presenza di errori nell'output prima di procedere. Ora puoi controllare il disco sdb sui nodi OSD con il comando list.

ceph-deploy disk list osd1 osd2 osd3

Il risultato è che /dev/sdb ora ha due partizioni:

  1. /dev/sdb1 - Dati Ceph
  2. /dev/sdb2 - Ceph Journal

Oppure puoi verificarlo direttamente sul nodo OSD con fdisk.

ssh osd1
sudo fdisk -l /dev/sdb

Quindi, distribuisci la chiave di gestione a tutti i nodi associati.

ceph-deploy admin ceph-admin mon1 osd1 osd2 osd3

Modifica l'autorizzazione del file chiave eseguendo il comando seguente su tutti i nodi.

sudo chmod 644 /etc/ceph/ceph.client.admin.keyring

Il cluster Ceph su CentOS 7 è stato creato.

Fase 6:verifica dell'impostazione Ceph

Nel passaggio 4, abbiamo installato e creato il nostro nuovo cluster Ceph, quindi abbiamo aggiunto i nodi OSDS al cluster. Ora possiamo testare il cluster e assicurarci che non ci siano errori nella configurazione del cluster.

Dal nodo ceph-admin, accedi al server ceph monitor 'mon1 '.

ssh mon1

Esegui il comando di seguito per verificare lo stato del cluster.

sudo ceph salute

Ora controlla lo stato del cluster.

sudo ceph -s

E dovresti vedere i risultati qui sotto:

Assicurati che lo stato di Ceph sia OK ed è presente un nodo di monitoraggio 'mon1 ' con indirizzo IP '10.0.15.11 '. Dovrebbero esserci 3 OSD i server e tutti dovrebbero essere attivi e in esecuzione e dovrebbe esserci un disco disponibile di circa 75 GB - Partizione dati Ceph 3x25GB.

Congratulazioni, hai creato con successo un nuovo cluster Ceph.

Nella parte successiva del tutorial su Ceph, ti mostrerò come utilizzare Ceph come dispositivo a blocchi o come montarlo come FileSystem.


Cent OS
  1. Archiviazione replicata distribuita su quattro nodi di archiviazione con GlusterFS su CentOS 5.4

  2. Archiviazione distribuita su quattro nodi di archiviazione con GlusterFS su CentOS 5.4

  3. Archiviazione distribuita su quattro nodi di archiviazione con GlusterFS 3.2.x su CentOS 6.3

  4. Archiviazione replicata distribuita su quattro nodi di archiviazione con GlusterFS 3.2.x su CentOS 6.3

  5. Come creare un cluster di archiviazione Ceph su Ubuntu 16.04

Come installare un cluster frammentato MongoDB su CentOS 7

Come installare un cluster Docker Kubernetes su CentOS 7

Come creare un server Minecraft sul tuo CentOS 7

Come configurare il cluster ad alta disponibilità su CentOS 7 / RHEL 7

Come configurare un cluster Redis in CentOS 8 – Parte 3

Come installare il cluster Kubernetes su CentOS 8