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 - cephuserIl 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-keygenlascia la passphrase vuota/vuota.
Quindi, crea il file di configurazione per la configurazione ssh.
vim ~/.ssh/configIncolla 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 cephuserSalva il file.
Modifica l'autorizzazione del file di configurazione.
chmod 644 ~/.ssh/configOra 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-idDigita 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 firewalldApri 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 --reloadDal nodo ceph-admin, accedi al nodo monitor 'mon1' e avvia firewalld.
ssh mon1
sudo systemctl start firewalld
sudo systemctl enable firewalldAprire una nuova porta sul nodo Ceph monitor e ricaricare il firewall.
sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent
sudo firewall-cmd --reloadInfine, 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 firewalldApri le porte e ricarica il firewall.
sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent
sudo firewall-cmd --reloadLa configurazione del firewall è completata.
Passaggio 4:configurazione dei nodi Ceph OSD
In questo tutorial abbiamo 3 nodi OSD e ogni nodo ha due partizioni.
- /dev/sda per la partizione di root.
- /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 osd3Controlla la partizione con il comando fdisk.
sudo fdisk -l /dev/sdbFormatta 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 -fOra 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 -yAssicurati 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 mon1Il comando genererà il file di configurazione del cluster Ceph 'ceph.conf' nella directory del cluster.
Modifica il file ceph.conf con vim.
vim ceph.confIn blocco [globale], incolla la configurazione di seguito.
# Il tuo indirizzo di rete
rete pubblica =10.0.15.0/24
dimensione predefinita del pool osd =2Salva 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 osd3Il 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-initialIl 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/sdbIl 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/sdbSe 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/sdb1Verificare 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:
- /dev/sdb1 - Dati Ceph
- /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 osd3Modifica l'autorizzazione del file chiave eseguendo il comando seguente su tutti i nodi.
sudo chmod 644 /etc/ceph/ceph.client.admin.keyringIl 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 mon1Esegui il comando di seguito per verificare lo stato del cluster.
sudo ceph saluteOra controlla lo stato del cluster.
sudo ceph -sE 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.