Ceph è una piattaforma di storage open source, offre elevate prestazioni, affidabilità e scalabilità. È un sistema di archiviazione distribuito gratuito che fornisce un'interfaccia per l'archiviazione a livello di file, blocchi e oggetti senza un singolo punto di errore.
Questa è la terza parte della serie di tutorial Ceph. Nella prima parte, ti ho mostrato come creare un "Cluster Ceph" con più nodi su CentOS7. La seconda parte è una guida che mostra come utilizzare Ceph come dispositivo a blocchi su CentOS 7. In questa terza parte, ti mostrerò come montare Ceph come file system su CentOS 7 come client.
Prerequisiti
- Ceph Cluster - 1 nodo Ceph-admin, 1 nodo Moinitor (ceph-mon), 3 nodi Ceph-osd (vedi parte 1).
- Client2 - Server CentOS 7 (vedi parte 2).
- Privilegi di root
Passaggio 1:configurazione del nodo Client2
In questo primo passaggio, faremo l'installazione di base del client. Questa è la stessa procedura che abbiamo usato sugli altri nodi del cluster. Creeremo un nuovo utente chiamato cephuser sulla scatola, sincronizza l'ora con ntpdate, configura sudo password-less per cephuser ecc. Quindi iniziamo...
Connettiti al nodo client2 con SSH come utente root:
ssh [email protected]
Abbiamo effettuato l'accesso al server con accesso root, ora possiamo creare il nuovo cephuser.
useradd -m -d /home/cephuser cephuser
passwd cephuser
TYPE YOUR NEW PASSWORD
Dopo aver creato il nuovo utente, abilita sudo senza password per l'utente creando un nuovo file di configurazione nella directory sudoers.
echo "cephuser ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephuser
sed -i s'/Defaults requiretty/#Defaults requiretty'/g /etc/sudoers
chmod 0440 /etc/sudoers.d/cephuser
Quindi, installa NTP, lo strumento da riga di comando ntpdate e gli strumenti open-vm. Quindi aggiorna e sincronizza l'ora di sistema con ntpdate.
yum install -y open-vm-tools
yum install -y ntp ntpdate ntp-doc
ntpdate 0.us.pool.ntp.org
hwclock --systohc
systemctl enable ntpd.service
systemctl start ntpd.service
Disabilita SELinux e modifica il file dell'host.
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
vim /etc/hosts
Incolla la configurazione degli host di seguito:
10.0.15.10 ceph-admin
10.0.15.11 mon1
10.0.15.21 osd1
10.0.15.22 osd2
10.0.15.23 osd3
10.0.15.15 client
10.0.15.16 client2
Salva il file hosts ed esci dall'editor. Ora prova a eseguire il ping del nodo ceph-admin per testare la connessione e l'impostazione del nome host.
ping -c 3 ceph-admin
Come risultato dovresti vedere l'indirizzo IP del nodo ceph-admin.
Passaggio 2:installazione di Ceph Common Utilities sul nodo Client2
Il pacchetto ceph-common può essere installato dal repository Ceph. Contiene le utilità Ceph per montare e interagire con Ceph Storage Cluster.
Prima di poter procedere con l'installazione del pacchetto ceph-common, dobbiamo aggiungere l'epel-repository e il repository Ceph.
sudo yum -y install epel-release
sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
Aggiorna il sistema e installa le utilità comuni Ceph.
sudo yum -y update
sudo yum -y install ceph-common
Successivamente, dobbiamo aggiungere la configurazione sul nodo ceph-admin.
Passaggio 3:configurare il nodo Ceph-admin
In questo passaggio configureremo il cluster in modo da poterci connettere da admin al nodo client2 con chiave ssh (senza password).
Collegati al nodo ceph-admin come root, quindi accedi al cephuser con su.
ssh [email protected]
su - cephuser
Modifica il file di configurazione ssh e definisci una nuova sezione di configurazione client2.
vim ~/.ssh/config
Alla fine del file, incolla la configurazione di seguito:
Host client2
Hostname client2
User cephuser
Successivamente, aggiungi la riga di configurazione dell'host per il nodo client al file '/etc/hosts' sul nodo ceph-admin.
sudo vim /etc/hosts
Incolla la configurazione dell'host di seguito alla fine del file.
10.0.15.16 client2
Salva il file hosts ed esci dall'editor.
Ora aggiungi la chiave ssh del nodo ceph-admin al nodo client2.
ssh-keyscan client2 >> ~/.ssh/known_hosts
ssh-copy-id client2
TYPE THE client2 PASSWORD
La chiave ceph-admin è stata aggiunta. Ora possiamo accedere al nodo client2 senza la password dal nodo ceph-admin.
ssh client2
Passaggio 4:crea il server di metadati Ceph
Se vuoi eseguire e montare CephFS, hai bisogno di un server di metadati ceph (Ceph MDS). Ceph MDS è in esecuzione sui nodi OSD. Possiamo installare Ceph MDS sul nodo OSD con il comando ceph-deploy dal nodo ceph-admin.
Accedi al nodo ceph-admin e diventa il cephuser.
ssh [email protected]
su - cephuser
Vai alla directory del cluster ed esegui il comando ceph-deploy per creare un nuovo server di metadati ceph (Ceph MDS). Userò il nodo 'osd1' come server di metadati.
cd cluster/
ceph-deploy mds create osd1
Dopo aver creato il server MDS sul nodo osd1, dobbiamo connetterci al nodo con ssh.
ssh osd1
Quindi, crea nuovi pool per il server MDS, almeno abbiamo bisogno di 2 pool:cephfs_data e cephfs_metadata.
Crea nuovi pool sul nodo 'osd1'.
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
Le nuove piscine sono pronte. Ora possiamo creare il nuovo filesystem utilizzando i pool denominati:cephfs_data e cephfs_metadata.
ceph fs new cephfs cephfs_metadata cephfs_data
cephfs =nome del file system.
Al termine di questo passaggio senza errori, controlla il server MDS con il comando seguente.
Controlla l'elenco dei server MDS:
ceph fs ls
Ora puoi vedere che il nome del filesystem è "cephfs", il pool di metadati è "cephfs_metadata" e il pool di dati è "cephfs_data".
Mostra lo stato MDS:
ceph mds stat
Assicurati che l'MDS sia attivo e attivo prima di procedere.
Fase 5 - Monta CephFS con il driver del kernel
Il server Ceph MDS è stato creato sul nodo 'osd1'. Ora siamo in grado di utilizzare CephFS. In questo passaggio, monteremo CephFS sul nodo client2 come file system con il comando mount.
Prima di iniziare con il passaggio successivo, è necessario installare ceph-fuse dal repository ceph sul nodo client2.
sudo yum -y install ceph-fuse
Al termine dell'installazione, copiare la chiave dell'utente. Nella nostra configurazione predefinita, l'autenticazione cephx è abilitata. L'utente predefinito è 'admin'.
Copia la chiave dal nodo del server MDS 'osd1' al nodo client2 con il comando scp, quindi modifica l'autorizzazione della chiave.
ssh [email protected] 'sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring' > ceph.key
chmod 600 ceph.key
Quindi, crea una nuova directory cephfs e monta CephFS in quella directory.
sudo mkdir -p /mnt/cephfs
sudo mount -t ceph mon1:6789:/ /mnt/cephfs -o name=admin,secretfile=ceph.key
Nota:
Nome utente predefinito =admin
secretfile =ceph.key dal nodo MDS osd1
Vedrai un nuovo filesystem di tipo 'ceph' montato nell'elenco.
sudo df -hT
Per smontare il filesystem, usa l'utility di comando umount.
umount /mnt/cephfs
Fase 6 - Monta CephFS come fusibile
Dopo aver montato correttamente CephFS come filesystem, monteremo CephFS come Fuse (Filesystem in USErspace). Per questa configurazione, dobbiamo copiare il file di configurazione 'ceph.conf' e la chiave dal nodo di monitoraggio 'mon1'.
Crea una nuova directory ceph sul nodo client2 e copia il file di configurazione e la chiave.
sudo mkdir -p /etc/ceph/
sudo scp [email protected]:/etc/ceph/ceph.conf /etc/ceph/ceph.conf
sudo scp [email protected]:/etc/ceph/ceph.client.admin.keyring /etc/ceph/ceph.client.admin.keyring
Modifica i permessi dei file.
sudo chmod 644 /etc/ceph/ceph.conf
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
Quindi, crea una nuova directory fuse e monta CephFS come Fuse nella directory '/mnt/fuse'.
sudo mkdir -p /mnt/fuse
sudo ceph-fuse -m mon1:6789 /mnt/fuse
Assicurati che non ci siano errori e controlla che CephFS sia montato.
sudo df -hT
Per smontare CephFS Fuse, usa il comando kill.
sudo ps -aux | grep ceph-fuse
kill -2 PID
Fase 7 - Monta CephFS usando fstab
In questo passaggio, monteremo permanentemente CephFS con fstab. Modificheremo /etc/fstab e aggiungeremo la configurazione per il montaggio di CephFS con il driver del kernel, usando il comando mount.
Modifica il file fstab.
sudo vim /etc/fstab
Incolla la configurazione di seguito alla fine del file:
mon1:6789:/ /mnt/cephfs ceph name=admin,secretkey=/home/cephuser/ceph.key,_netdev,noatime 0 0
Salva il file ed esci da vim.
Monta tutti i dischi da fstab con il comando mount -a, quindi elenca tutti i dischi disponibili.
sudo mount -a
sudo df -hT
Infine, riavvia il sistema e controlla i dischi disponibili per assicurarti che la configurazione sia sicura per il riavvio.
reboot
sudo df -hT
Vedrai che CephFS è stato montato automaticamente con fstab.