GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So erstellen Sie einen Ceph Distributed Storage Cluster auf CentOS 7

Ceph ist eine weit verbreitete Open-Source-Speicherplattform. Es bietet hohe Leistung, Zuverlässigkeit und Skalierbarkeit. Das kostenlos verteilte Speichersystem von Ceph bietet eine Schnittstelle für die Speicherung auf Objekt-, Block- und Dateiebene. Ceph wurde entwickelt, um ein verteiltes Speichersystem ohne Single Point of Failure bereitzustellen.

In diesem Tutorial leite ich Sie an, einen Ceph-Cluster unter CentOS 7 zu installieren und zu erstellen. Ein Ceph-Cluster erfordert diese Ceph-Komponenten:

  • Ceph-OSDs (ceph-osd) - Behandelt die Datenspeicherung, Datenreplikation und Wiederherstellung. Ein Ceph Cluster benötigt mindestens zwei Ceph OSD Server. Ich werde hier drei CentOS 7 OSD-Server verwenden.
  • Ceph-Monitor (ceph-mon) - Überwacht den Cluster-Status, die OSD-Karte und die CRUSH-Karte. Ich werde einen Server verwenden.
  • Ceph-Metadatenserver (ceph-mds) - Dies wird benötigt, um Ceph als Dateisystem zu verwenden.

Voraussetzungen

  • 6 Serverknoten, alle mit installiertem CentOS 7.
  • Root-Rechte auf allen Knoten.

Die Server in diesem Tutorial verwenden die folgenden Hostnamen und IP-Adressen.

Hostname IP-Adresse

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
client                 10.0.15.15

Alle OSD-Knoten benötigen zwei Partitionen, eine Root-Partition (/) und eine leere Partition, die später als Ceph-Datenspeicher verwendet wird.

Schritt 1 – Alle Knoten konfigurieren

In diesem Schritt konfigurieren wir alle 6 Nodes, um sie für die Installation des Ceph Clusters vorzubereiten. Sie müssen alle folgenden Befehle auf allen Knoten befolgen und ausführen. Und stellen Sie sicher, dass ssh-server auf allen Knoten installiert ist.

Ceph-Benutzer erstellen

Erstellen Sie einen neuen Benutzer namens "cephuser". ' auf allen Knoten.

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

Nachdem wir den neuen Benutzer erstellt haben, müssen wir sudo für „cephuser“ konfigurieren. Er muss in der Lage sein, Befehle als root auszuführen und Root-Privilegien ohne Passwort zu erhalten.

Führen Sie den folgenden Befehl aus, um eine sudoers-Datei für den Benutzer zu erstellen, und bearbeiten Sie die /etc/sudoers-Datei mit sed.

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

NTP installieren und konfigurieren

Installieren Sie NTP, um Datum und Uhrzeit auf allen Knoten zu synchronisieren. Führen Sie den Befehl ntpdate aus, um ein Datum und eine Uhrzeit über das NTP-Protokoll festzulegen. Wir verwenden den US-Pool-NTP-Server. Starten Sie dann den NTP-Server und aktivieren Sie ihn, damit er beim Booten ausgeführt wird.

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

Installieren Sie Open-vm-tools

Wenn Sie alle Knoten innerhalb von VMware ausführen, müssen Sie dieses Virtualisierungsdienstprogramm installieren. Andernfalls überspringen Sie diesen Schritt.

yum install -y open-vm-tools

SELinux deaktivieren

Deaktivieren Sie SELinux auf allen Knoten, indem Sie die SELinux-Konfigurationsdatei mit dem Sed-Stream-Editor bearbeiten.

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

Hosts-Datei konfigurieren

Bearbeiten Sie die /etc/hosts-Datei auf allen Knoten mit dem vim-Editor und fügen Sie Zeilen mit der IP-Adresse und den Hostnamen aller Cluster-Knoten hinzu.

vim /etc/hosts

Fügen Sie die Konfiguration unten ein:

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         osd2
10.0.15.23  .     > osd 3 5. 1    > /pre>

Speichern Sie die Datei und beenden Sie vim.

Jetzt können Sie versuchen, zwischen den Servern mit ihrem Hostnamen zu pingen, um die Netzwerkverbindung zu testen. Beispiel:

ping -c 5 mon1

Schritt 2 – SSH-Server konfigurieren

In diesem Schritt werde ich den ceph-admin-Knoten konfigurieren . Der Admin-Knoten wird zum Konfigurieren des Monitor-Knotens und der OSD-Knoten verwendet. Melden Sie sich beim ceph-admin-Knoten an und werden Sie zum 'cephuser '.

ssh [email protected]
su - cepuser

Der Admin-Knoten wird zum Installieren und Konfigurieren aller Cluster-Knoten verwendet, daher muss der Benutzer auf dem ceph-admin-Knoten die Berechtigung haben, sich ohne Kennwort mit allen Knoten zu verbinden. Wir müssen den passwortlosen SSH-Zugriff für „cephuser“ auf dem Knoten „ceph-admin“ konfigurieren.

Generieren Sie die SSH-Schlüssel für „cephuser“. '.

ssh-keygen

Lassen Sie die Passphrase leer/leer.

Erstellen Sie als Nächstes die Konfigurationsdatei für die SSH-Konfiguration.

vim ~/.ssh/config

Konfiguration unten einfügen:

Host ceph-admin
        Hostname ceph-admin
        Benutzer cephuser

Host mon1
        Hostname mon1
        Benutzer cephuser

Host osd1
        Hostname osd1
        Benutzer cephuser

Host osd2
        Hostname osd2
        Benutzer cephuser

Host osd3
        Hostname osd3
        Benutzer Cephuser

Host Client
        Hostname Client
        Benutzer Cephuser

Speichern Sie die Datei.

Ändern Sie die Berechtigung der Konfigurationsdatei.

chmod 644 ~/.ssh/config

Fügen Sie nun den SSH-Schlüssel mit dem Befehl ssh-copy-id zu allen Knoten hinzu.

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
ssh-copy-id client

Geben Sie Ihr 'Cepuser'-Passwort ein, wenn Sie dazu aufgefordert werden.

Wenn Sie fertig sind, versuchen Sie, vom ceph-admin-Knoten aus auf den osd1-Server zuzugreifen.

ssh osd1

Schritt 3 - Konfigurieren Sie Firewalld

Wir werden Firewalld verwenden, um das System zu schützen. In diesem Schritt aktivieren wir Firewald auf allen Knoten und öffnen dann die Ports, die von ceph-admon, ceph-mon und ceph-osd benötigt werden.

Melden Sie sich beim ceph-admin-Knoten an und starten Sie firewalld.

ssh [email protected]
systemctl start firewalld
systemctl enable firewalld

Öffnen Sie Port 80, 2003 und 4505-4506 und laden Sie dann die Firewall neu.

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

Melden Sie sich vom ceph-admin-Knoten aus beim Monitor-Knoten „mon1“ an und starten Sie firewalld.

ssh mon1
sudo systemctl start firewalld
sudo systemctl enable firewalld

Öffnen Sie einen neuen Port auf dem Ceph-Monitorknoten und laden Sie die Firewall neu.

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

Öffnen Sie schließlich Port 6800–7300 auf jedem der OSD-Knoten – osd1, osd2 und os3.

Melden Sie sich über den ceph-admin-Knoten bei jedem OSD-Knoten an.

ssh osd1
sudo systemctl start firewalld
sudo systemctl enable firewalld

Öffnen Sie die Ports und laden Sie die Firewall neu.

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

Die Konfiguration der Firewall ist abgeschlossen.

Schritt 4 – Konfigurieren Sie die Ceph OSD-Knoten

In dieser Anleitung haben wir 3 OSD-Knoten und jeder Knoten hat zwei Partitionen.

  1. /dev/sda für die Root-Partition.
  2. /dev/sdb ist eine leere Partition - in meinem Fall 30 GB.

Wir werden /dev/sdb verwenden für die Ceph-Disk. Melden Sie sich vom ceph-admin-Knoten aus bei allen OSD-Knoten an und formatieren Sie die /dev/sdb-Partition mit XFS .

ssh-osd1
ssh-osd2
ssh-osd3

Überprüfen Sie die Partition mit dem fdisk-Befehl.

sudo fdisk -l /dev/sdb

Formatieren Sie die /dev/sdb-Partition mit dem XFS-Dateisystem und mit einer GPT-Partitionstabelle, indem Sie den parted-Befehl verwenden.

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

Überprüfen Sie nun die Partition, und Sie erhalten die xfs /dev/sdb-Partition.

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

Schritt 5 – Erstellen Sie den Ceph-Cluster

In diesem Schritt installieren wir Ceph auf allen Knoten vom Knoten ceph-admin.

Melden Sie sich beim ceph-admin-Knoten an.

ssh [email protected]
su - cepuser

Installieren Sie ceph-deploy auf dem ceph-admin-Knoten

Fügen Sie das Ceph-Repository hinzu und installieren Sie das Ceph-Bereitstellungstool 'ceph-deploy ' mit dem yum-Befehl.

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

Stellen Sie sicher, dass alle Knoten aktualisiert sind.

Nachdem das ceph-deploy-Tool installiert wurde, erstellen Sie ein neues Verzeichnis für die ceph-Clusterkonfiguration.

Neue Clusterkonfiguration erstellen

Erstellen Sie das neue Cluster-Verzeichnis.

mkdir-Cluster
cd-Cluster/

Erstellen Sie als Nächstes eine neue Clusterkonfiguration mit der Datei „ceph-deploy ' Befehl, definieren Sie den Monitor-Knoten als 'mon1 '.

ceph-bereitstellen neues mon1

Der Befehl generiert die Ceph-Cluster-Konfigurationsdatei „ceph.conf“ im Cluster-Verzeichnis.

Bearbeiten Sie die Datei ceph.conf mit vim.

vim ceph.conf

Fügen Sie unter [global] Block die Konfiguration unten ein.

# Ihre Netzwerkadresse
öffentliches Netzwerk =10.0.15.0/24
OSD-Pool-Standardgröße =2

Speichern Sie die Datei und beenden Sie vim.

Installieren Sie Ceph auf allen Knoten

Installieren Sie nun Ceph auf allen anderen Knoten vom Knoten ceph-admin. Dies kann mit einem einzigen Befehl erfolgen.

ceph-deploy install ceph-admin mon1 osd1 osd2 osd3

Der Befehl installiert Ceph automatisch auf allen Knoten:mon1, osd1-3 und ceph-admin - Die Installation wird einige Zeit dauern.

Stellen Sie nun das ceph-mon auf dem Knoten mon1 bereit.

ceph-deploy mon create-initial

Der Befehl erstellt den Überwachungsschlüssel, prüft und ruft die Schlüssel mit dem Befehl „ceph“ ab.

ceph-deploy-gatherkeys-mon1

Hinzufügen von OSDS zum Cluster

Wenn Ceph auf allen Knoten installiert wurde, können wir die OSD-Daemons zum Cluster hinzufügen. OSD-Daemons erstellen ihre Daten- und Journalpartition auf der Festplatte /dev/sdb.

Prüfen Sie, ob die /dev/sdb-Partition auf allen OSD-Knoten verfügbar ist.

ceph-deploy disk list osd1 osd2 osd3

Sie sehen das /dev/sdb-Laufwerk im XFS-Format.

Löschen Sie als Nächstes die /dev/sdb-Partitionstabellen auf allen Knoten mit der Option zap.

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

Der Befehl löscht alle Daten auf /dev/sdb auf den Ceph OSD-Knoten.

Bereiten Sie nun alle OSDS-Knoten vor. Stellen Sie sicher, dass die Ergebnisse keine Fehler enthalten.

ceph-bereitstellen osd vorbereiten osd1:/dev/sdb osd2:/dev/sdb osd3:/dev/sdb

Wenn das Ergebnis „osd1-3 ist bereit für OSD-Nutzung“ angezeigt wird, war die Bereitstellung erfolgreich.

Aktivieren Sie die OSDs mit dem folgenden Befehl:

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

Überprüfen Sie die Ausgabe auf Fehler, bevor Sie fortfahren. Jetzt können Sie die SDB-Festplatte auf OSD-Knoten mit dem list-Befehl überprüfen.

ceph-deploy disk list osd1 osd2 osd3

Das Ergebnis ist dass /dev/sdb jetzt zwei Partitionen hat:

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

Oder Sie können dies direkt auf dem OSD-Knoten mit fdisk überprüfen.

ssh osd1
sudo fdisk -l /dev/sdb

Stellen Sie als Nächstes den Verwaltungsschlüssel für alle zugehörigen Knoten bereit.

ceph-deploy admin ceph-admin mon1 osd1 osd2 osd3

Ändern Sie die Berechtigung der Schlüsseldatei, indem Sie den folgenden Befehl auf allen Knoten ausführen.

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

Der Ceph Cluster auf CentOS 7 wurde erstellt.

Schritt 6 – Testen des Ceph-Setups

In Schritt 4 haben wir unseren neuen Ceph-Cluster installiert und erstellt, dann haben wir dem Cluster OSDS-Knoten hinzugefügt. Jetzt können wir den Cluster testen und sicherstellen, dass keine Fehler im Cluster-Setup vorhanden sind.

Melden Sie sich vom ceph-admin-Knoten beim Ceph-Monitor-Server „mon1“ an '.

ssh-mon1

Führen Sie den folgenden Befehl aus, um den Zustand des Clusters zu prüfen.

sudo ceph health

Überprüfen Sie nun den Clusterstatus.

sudo ceph -s

Und Sie sollten die folgenden Ergebnisse sehen:

Stellen Sie sicher, dass der Ceph-Zustand OK ist und es gibt einen Überwachungsknoten 'mon1 ' mit der IP-Adresse '10.0.15.11 '. Es sollte 3 OSD geben Server und alle sollten in Betrieb sein und läuft, und es sollte eine verfügbare Festplatte von etwa 75 GB vorhanden sein - 3 x 25 GB Ceph-Datenpartition.

Herzlichen Glückwunsch, Sie haben erfolgreich einen neuen Ceph Cluster erstellt.

Im nächsten Teil des Ceph-Tutorials zeige ich Ihnen, wie Sie Ceph als Blockgerät verwenden oder als Dateisystem mounten.


Cent OS
  1. Verteilter replizierter Speicher über vier Speicherknoten mit GlusterFS auf CentOS 5.4

  2. Verteilter Speicher auf vier Speicherknoten mit GlusterFS unter CentOS 5.4

  3. Verteilter Speicher auf vier Speicherknoten mit GlusterFS 3.2.x auf CentOS 6.3

  4. Verteilter replizierter Speicher über vier Speicherknoten mit GlusterFS 3.2.x auf CentOS 6.3

  5. So erstellen Sie einen Ceph-Speichercluster unter Ubuntu 16.04

So installieren Sie einen MongoDB Sharded Cluster unter CentOS 7

So installieren Sie einen Kubernetes-Docker-Cluster unter CentOS 7

So erstellen Sie einen Minecraft-Server auf Ihrem CentOS 7

So konfigurieren Sie einen Hochverfügbarkeitscluster unter CentOS 7 / RHEL 7

So richten Sie einen Redis-Cluster in CentOS 8 ein – Teil 3

So installieren Sie Kubernetes-Cluster auf CentOS 8