Ceph ist eine Open-Source-Speicherplattform, die hohe Leistung, Zuverlässigkeit und Skalierbarkeit bietet. Es ist ein kostenloses verteiltes Speichersystem, das eine Schnittstelle zu Objekt-, Block- und Dateispeicherung ohne einen einzigen Fehlerpunkt bereitstellt.
Dies ist der dritte Teil der Ceph-Tutorial-Reihe. Im ersten Teil habe ich Ihnen gezeigt, wie Sie einen 'Ceph Cluster' mit mehreren Knoten auf CentOS7 aufbauen. Der zweite Teil ist eine Anleitung, die zeigt, wie Ceph als Blockgerät auf CentOS 7 verwendet wird. In diesem dritten Teil zeige ich Ihnen, wie Sie Ceph als Dateisystem auf CentOS 7 als Client bereitstellen.
Voraussetzungen
- Ceph-Cluster – 1 Ceph-Admin-Knoten, 1 Moinitor-Knoten (ceph-mon), 3 Ceph-osd-Knoten (siehe Teil 1).
- Client2 – CentOS 7-Server (siehe Teil 2).
- Root-Rechte
Schritt 1 – Client2-Knoten konfigurieren
In diesem ersten Schritt werden wir die Basisinstallation des Clients vornehmen. Dies ist das gleiche Verfahren, das wir auf den anderen Cluster-Knoten verwendet haben. Wir erstellen einen neuen Benutzer namens cephuser auf der Box die Zeit mit ntpdate synchronisieren, sudo passwortlos für cephuser konfigurieren etc. Also los geht's...
Verbinden Sie sich mit SSH als Root-Benutzer mit dem client2-Knoten:
ssh [email protected]
Wir haben uns mit Root-Zugriff beim Server angemeldet, jetzt können wir den neuen Cephuser erstellen.
useradd -m -d /home/cephuser cephuser
passwd cephuser
TYPE YOUR NEW PASSWORD
Nachdem der neue Benutzer erstellt wurde, aktivieren Sie sudo passwortlos für den Benutzer, indem Sie eine neue Konfigurationsdatei im sudoers-Verzeichnis erstellen.
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
Installieren Sie als Nächstes NTP, das Befehlszeilentool ntpdate und die Open-VM-Tools. Aktualisieren und synchronisieren Sie dann die Systemzeit mit 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
Deaktivieren Sie SELinux und bearbeiten Sie die Datei des Hosts.
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
vim /etc/hosts
Hostkonfiguration unten einfügen:
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
Speichern Sie die Hosts-Datei und beenden Sie den Editor. Versuchen Sie nun, den ceph-admin-Knoten zu pingen, um die Verbindung und die Einrichtung des Hostnamens zu testen.
ping -c 3 ceph-admin
Sie sollten die IP-Adresse des ceph-admin-Knotens als Ergebnis sehen.
Schritt 2 – Ceph Common Utilities auf Client2-Knoten installieren
Das Paket ceph-common kann aus dem Ceph-Repository installiert werden. Es enthält die Ceph-Dienstprogramme zum Mounten und Interagieren mit dem Ceph Storage Cluster.
Bevor wir mit der Installation des ceph-common-Pakets fortfahren können, müssen wir das epel-repository und das Ceph-Repository hinzufügen.
sudo yum -y install epel-release
sudo rpm -Uhv http://download.ceph.com/rpm-jewel/el7/noarch/ceph-release-1-1.el7.noarch.rpm
Aktualisieren Sie das System und installieren Sie die allgemeinen Ceph-Dienstprogramme.
sudo yum -y update
sudo yum -y install ceph-common
Als nächstes müssen wir die Konfiguration auf dem ceph-admin-Knoten hinzufügen.
Schritt 3 – Konfigurieren Sie den Ceph-admin-Knoten
In diesem Schritt konfigurieren wir den Cluster so, dass wir mit dem ssh-Schlüssel (ohne Passwort) eine Verbindung von admin zum client2-Knoten herstellen können.
Stellen Sie als Root eine Verbindung mit dem ceph-admin-Knoten her und melden Sie sich dann mit su beim cephuser an.
ssh [email protected]
su - cephuser
Bearbeiten Sie die ssh-Konfigurationsdatei und definieren Sie einen neuen client2-Konfigurationsabschnitt.
vim ~/.ssh/config
Fügen Sie am Ende der Datei die folgende Konfiguration ein:
Host client2
Hostname client2
User cephuser
Fügen Sie als Nächstes die Hostkonfigurationszeile für den Clientknoten zur Datei „/etc/hosts“ auf dem ceph-admin-Knoten hinzu.
sudo vim /etc/hosts
Fügen Sie die Hostkonfiguration unten am Ende der Datei ein.
10.0.15.16 client2
Speichern Sie die Hosts-Datei und verlassen Sie den Editor.
Fügen Sie nun den ssh-Schlüssel des ceph-admin-Knotens zum client2-Knoten hinzu.
ssh-keyscan client2 >> ~/.ssh/known_hosts
ssh-copy-id client2
TYPE THE client2 PASSWORD
Der ceph-admin-Schlüssel wurde hinzugefügt. Jetzt können wir ohne das Passwort vom ceph-admin-Knoten auf den Client2-Knoten zugreifen.
ssh client2
Schritt 4 – Erstellen Sie den Ceph MetaData Server
Wenn Sie CephFS ausführen und bereitstellen möchten, benötigen Sie einen Ceph-Metadatenserver (Ceph MDS). Ceph MDS wird auf den OSD-Knoten ausgeführt. Wir können Ceph MDS mit dem Befehl ceph-deploy vom Knoten ceph-admin auf dem OSD-Knoten installieren.
Melden Sie sich beim ceph-admin-Knoten an und werden Sie Cepuser.
ssh [email protected]
su - cephuser
Gehen Sie zum Clusterverzeichnis und führen Sie den Befehl ceph-deploy aus, um einen neuen Ceph-Metadatenserver (Ceph MDS) zu erstellen. Ich werde den 'osd1'-Knoten als Metadatenserver verwenden.
cd cluster/
ceph-deploy mds create osd1
Nachdem wir den MDS-Server auf dem Knoten osd1 erstellt haben, müssen wir uns mit ssh mit dem Knoten verbinden.
ssh osd1
Als nächstes erstellen Sie neue Pools für den MDS-Server, wir brauchen mindestens 2 Pools - cephfs_data und cephfs_metadata.
Erstellen Sie neue Pools auf dem Knoten „osd1“.
ceph osd pool create cephfs_data 128
ceph osd pool create cephfs_metadata 128
Die neuen Becken sind fertig. Jetzt können wir das neue Dateisystem erstellen, indem wir die benannten Pools verwenden:cephfs_data und cephfs_metadata.
ceph fs new cephfs cephfs_metadata cephfs_data
cephfs =Name des Dateisystems.
Wenn Sie diesen Schritt ohne Fehler abgeschlossen haben, überprüfen Sie den MDS-Server mit dem folgenden Befehl.
Überprüfen Sie die Liste der MDS-Server:
ceph fs ls
Jetzt können Sie sehen, dass der Dateisystemname „cephfs“, der Metadatenpool „cephfs_metadata“ und der Datenpool „cephfs_data“ ist.
MDB-Status anzeigen:
ceph mds stat
Stellen Sie sicher, dass das MDS hochgefahren und aktiv ist, bevor Sie fortfahren.
Schritt 5 – Mounten Sie CephFS mit dem Kernel-Treiber
Der Ceph MDS-Server wurde auf dem Knoten „osd1“ erstellt. Jetzt können wir CephFS verwenden. In diesem Schritt mounten wir CephFS auf dem client2-Knoten als Dateisystem mit dem Befehl mount.
Bevor wir mit dem nächsten Schritt beginnen, müssen wir ceph-fuse aus dem ceph-Repository auf dem Client2-Knoten installieren.
sudo yum -y install ceph-fuse
Wenn die Installation abgeschlossen ist, kopieren Sie den Schlüssel des Benutzers. In unserer Standardkonfiguration ist die cephx-Authentifizierung aktiviert. Der Standardbenutzer ist „admin“.
Kopieren Sie den Schlüssel vom MDS-Serverknoten „osd1“ auf den Client2-Knoten mit dem scp-Befehl und ändern Sie dann die Berechtigung des Schlüssels.
ssh [email protected] 'sudo ceph-authtool -p /etc/ceph/ceph.client.admin.keyring' > ceph.key
chmod 600 ceph.key
Erstellen Sie als Nächstes ein neues cephfs-Verzeichnis und hängen Sie das CephFS in dieses Verzeichnis ein.
sudo mkdir -p /mnt/cephfs
sudo mount -t ceph mon1:6789:/ /mnt/cephfs -o name=admin,secretfile=ceph.key
Hinweis:
Standardbenutzername =admin
secretfile =ceph.key vom MDS-Knoten osd1
Sie sehen ein neues Dateisystem vom Typ „ceph“, das in der Liste gemountet ist.
sudo df -hT
Verwenden Sie zum Aushängen des Dateisystems das Befehlsdienstprogramm umount.
umount /mnt/cephfs
Schritt 6 – Mounten Sie CephFS als Sicherung
Nachdem wir CephFS erfolgreich als Dateisystem gemountet haben, werden wir CephFS als Fuse (Dateisystem in USErspace) mounten. Für dieses Setup müssen wir die Konfigurationsdatei „ceph.conf“ und den Schlüssel vom Überwachungsknoten „mon1“ kopieren.
Erstellen Sie ein neues ceph-Verzeichnis auf dem Client2-Knoten und kopieren Sie die Konfigurationsdatei und den Schlüssel.
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
Ändern Sie die Berechtigungen der Dateien.
sudo chmod 644 /etc/ceph/ceph.conf
sudo chmod 644 /etc/ceph/ceph.client.admin.keyring
Erstellen Sie als Nächstes ein neues Sicherungsverzeichnis und hängen Sie CephFS als Fuse in das Verzeichnis „/mnt/fuse“ ein.
sudo mkdir -p /mnt/fuse
sudo ceph-fuse -m mon1:6789 /mnt/fuse
Stellen Sie sicher, dass kein Fehler vorliegt, und prüfen Sie, ob das CephFS gemountet ist.
sudo df -hT
Um die CephFS-Sicherung zu entfernen, verwenden Sie den Kill-Befehl.
sudo ps -aux | grep ceph-fuse
kill -2 PID
Schritt 7 – Mounten Sie CephFS mit fstab
In diesem Schritt werden wir CephFS dauerhaft mit fstab mounten. Wir bearbeiten /etc/fstab und fügen die Konfiguration zum Mounten von CephFS mit dem Kernel-Treiber hinzu, indem wir den Befehl mount verwenden.
Bearbeiten Sie die fstab-Datei.
sudo vim /etc/fstab
Fügen Sie die folgende Konfiguration am Ende der Datei ein:
mon1:6789:/ /mnt/cephfs ceph name=admin,secretkey=/home/cephuser/ceph.key,_netdev,noatime 0 0
Speichern Sie die Datei und beenden Sie vim.
Mounten Sie alle Festplatten aus der fstab mit dem Befehl mount -a und listen Sie dann alle verfügbaren Festplatten auf.
sudo mount -a
sudo df -hT
Starten Sie abschließend das System neu und überprüfen Sie die verfügbaren Festplatten, um sicherzustellen, dass die Konfiguration neustartsicher ist.
reboot
sudo df -hT
Sie werden sehen, dass CephFS automatisch mit fstab gemountet wurde.