Cep ist kostenloser und quelloffener verteilter Speicher Lösung, mit der wir Blockspeicher, Objektspeicher und Dateispeicher einfach bereitstellen und verwalten können. Die Ceph-Speicherlösung kann in der traditionellen IT-Infrastruktur zur Bereitstellung des zentralen Speichers verwendet werden, abgesehen davon auch in der privaten Cloud (OpenStack). &Cloudstack ). In Red Hat wird OpenStack Ceph als Cinder-Backend verwendet.
In diesem Artikel zeigen wir, wie Ceph Cluster (Mimic) auf CentOS 7-Servern installiert und konfiguriert wird.
In Ceph Cluster sind dies die Hauptkomponenten:
- Monitore (ceph-mon) :Wie der Name schon sagt, behalten Ceph-Monitor-Knoten den Cluster-Status, die OSD-Karte und die Crush-Karte im Auge
- OSD (Ceph-osd) :Dies sind die Knoten, die Teil des Clusters sind und Datenspeicher-, Datenreplikations- und Wiederherstellungsfunktionen bereitstellen. OSD stellt auch Informationen zur Überwachung von Knoten bereit.
- MDS (Ceph-mds) :Es ist ein Ceph-Metadatenserver und speichert die Metadaten von Ceph-Dateisystemen wie Blockspeicher.
- Ceph-Bereitstellungsknoten :Er wird zur Bereitstellung des Ceph-Clusters verwendet, er wird auch als Ceph-Admin- oder Ceph-Utility-Knoten bezeichnet.
Details zur My Lab-Einrichtung :
- Ceph-Bereitstellungsknoten :(Mindestens CentOS 7, RAM:4 GB, vCPU:2, IP:192.168.1.30, Hostname:ceph-controller)
- OSD oder Ceph Compute 1 :(Mindestens CentOS 7, RAM:10 GB, vCPU:4, IP:192.168.1.31, Hostname:ceph-compute01)
- OSD oder Ceph Compute 2 :(Mindestens CentOS 7, RAM:10 GB, vCPU:4, IP:192.168.1.32, Hostname:ceph-compute02)
- Ceph-Monitor :(Mindestens CentOS 7, RAM:10 GB, vCPU:4, IP:192.168.1.33, Hostname:ceph-monitor)
Hinweis: In allen Knoten haben wir zwei NICs (eth0 ð1) angeschlossen, auf eth0 wird die IP vom VLAN 192.168.1.0/24 zugewiesen. Auf eth1 ist die IP von VLAN 192.168.122.0/24 zugewiesen und stellt den Internetzugang bereit.
Lassen Sie uns zu den Installations- und Konfigurationsschritten springen:
Schritt:1) Aktualisieren Sie die /etc/hosts-Datei, NTP, erstellen Sie einen Benutzer und deaktivieren Sie SELinux auf allen Knoten
Fügen Sie die folgenden Zeilen in die /etc/hosts-Datei aller Knoten ein, damit man auf diese Knoten auch über ihren Hostnamen zugreifen kann.
192.168.1.30 ceph-controller 192.168.1.31 ceph-compute01 192.168.1.32 ceph-compute02 192.168.1.33 ceph-monitor
Konfigurieren Sie alle Ceph-Knoten mit NTP-Server so, dass alle Knoten die gleiche Zeit haben und es keine Zeitverschiebung gibt,
~]# yum install ntp ntpdate ntp-doc -y ~]# ntpdate europe.pool.ntp.org ~]# systemctl start ntpd ~]# systemctl enable ntpd
Erstellen Sie einen Benutzer mit dem Namen „cephadm ” auf allen Knoten und wir werden diesen Benutzer für die Ceph-Bereitstellung und -Konfiguration verwenden
~]# useradd cephadm && echo "[email protected]#" | passwd --stdin cephadm
Weisen Sie nun dem Benutzer cephadm über sudo Administratorrechte zu, führen Sie die folgenden Befehle aus,
~]# echo "cephadm ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/cephadm ~]# chmod 0440 /etc/sudoers.d/cephadm
Deaktivieren Sie SELinux auf allen Knoten mit dem folgenden Befehl sed, sogar die offizielle Ceph-Website empfiehlt, SELinux zu deaktivieren,
~]# sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
Starten Sie jetzt alle Knoten mit dem folgenden Befehl neu,
~]# reboot
Schritt:2 Konfigurieren Sie die passwortlose Authentifizierung von Ceph Admin für alle OSD- und Monitor-Knoten
Vom Ceph-Admin-Knoten aus verwenden wir das Dienstprogramm „ceph-deploy“. “, meldet es sich bei jedem Ceph-Knoten an und installiert das Ceph-Paket und führt alle erforderlichen Konfigurationen durch. Beim Zugriff auf den Ceph-Knoten werden wir nicht aufgefordert, die Anmeldeinformationen der Ceph-Knoten einzugeben. Aus diesem Grund mussten wir die passwortlose oder schlüsselbasierte Authentifizierung vom Ceph-Admin-Knoten für alle Ceph-Knoten konfigurieren.
Führen Sie die folgenden Befehle als cephadm-Benutzer vom Ceph-admin-Knoten (ceph-controller) aus. Lassen Sie die Passphrase leer.
[[email protected] ~]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/cephadm/.ssh/id_rsa): Created directory '/home/cephadm/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/cephadm/.ssh/id_rsa. Your public key has been saved in /home/cephadm/.ssh/id_rsa.pub. The key fingerprint is: 93:01:16:8a:67:34:2d:04:17:20:94:ad:0a:58:4f:8a [email protected] The key's randomart image is: +--[ RSA 2048]----+ |o.=+*o+. | | o.=o+.. | |.oo++. . | |E..o. o | |o S | |. . | | | | | | | +-----------------+ [[email protected] ~]$
Kopieren Sie nun die Schlüssel mit dem Befehl ssh-copy-id
auf alle Ceph-Knoten[[email protected] ~]$ ssh-copy-id [email protected] [[email protected] ~]$ ssh-copy-id [email protected] [[email protected] ~]$ ssh-copy-id [email protected]
Es wird empfohlen, Folgendes in die Datei „~/.ssh/config“
einzufügen[[email protected] ~]$ vi ~/.ssh/config Host ceph-compute01 Hostname ceph-compute01 User cephadm Host ceph-compute02 Hostname ceph-compute02 User cephadm Host ceph-monitor Hostname ceph-monitor User cephadm
Speichern und beenden Sie die Datei.
[email protected] ~]$ chmod 644 ~/.ssh/config [[email protected] ~]$
Hinweis: Ersetzen Sie im obigen Befehl den Benutzernamen und den Hostnamen, der zu Ihrem Setup passt.
Schritt:3) Firewallregeln für OSD konfigurieren und Knoten überwachen
Falls die Betriebssystem-Firewall aktiviert ist und auf allen Ceph-Knoten ausgeführt wird, müssen wir die folgenden Firewall-Regeln konfigurieren. Andernfalls können Sie diesen Schritt überspringen.
Konfigurieren Sie auf dem Ceph-Admin-Knoten die folgenden Firewall-Regeln mit den folgenden Befehlen,
[[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=80/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=2003/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=4505-4506/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$
Melden Sie sich bei den OSD- oder Ceph-Rechenknoten an und konfigurieren Sie die Firewall-Regeln mit dem Befehl firewall-cmd,
[[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$ [[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=6800-7300/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$
Melden Sie sich beim Ceph Monitor-Knoten an und führen Sie den Befehl firewalld aus, um Firewall-Regeln zu konfigurieren,
[[email protected] ~]$ sudo firewall-cmd --zone=public --add-port=6789/tcp --permanent success [[email protected] ~]$ sudo firewall-cmd --reload success [[email protected] ~]$
Schritt:4) Installieren und konfigurieren Sie Ceph Cluster vom Ceph Admin-Knoten
Melden Sie sich als „cephadm“-Benutzer bei Ihrem Ceph-Admin-Knoten an und aktivieren Sie die neueste Version des Ceph Yum-Repositorys. Zum Zeitpunkt der Erstellung dieses Artikels war Mimic die neueste Version von Ceph,
[[email protected] ~]$ sudo rpm -Uvh https://download.ceph.com/rpm-mimic/el7/noarch/ceph-release-1-1.el7.noarch.rpm
Aktivieren Sie auch das EPEL-Repository,
[[email protected] ~]$ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Installieren Sie das Ceph-Deploy-Hilfsprogramm mit dem folgenden yum-Befehl,
[[email protected] ~]$ sudo yum update -y && sudo yum install ceph-deploy python2-pip -y
Erstellen Sie ein Verzeichnis mit dem Namen „ceph_cluster “, enthält dieses Verzeichnis alle Cluster-Konfigurationen
[[email protected] ~]$ mkdir ceph_cluster [[email protected] ~]$ cd ceph_cluster/ [[email protected] ceph_cluster]$
Generieren Sie nun die Clusterkonfiguration, indem Sie das Dienstprogramm ceph-deploy auf dem Knoten ceph-admin ausführen. Wir registrieren den Knoten ceph-monitor als Monitorknoten im ceph-Cluster. Das Ceph-Deploy-Hilfsprogramm generiert auch „ceph.conf ” im aktuellen Arbeitsverzeichnis.
[[email protected] ceph_cluster]$ ceph-deploy new ceph-monitor
Die Ausgabe des obigen Befehls würde in etwa so aussehen:
Aktualisieren Sie die Netzwerkadresse (öffentliches Netzwerk) unter der globalen Anweisung inceph.conf Datei, Hier ist das öffentliche Netzwerk das Netzwerk, in dem Ceph-Knoten miteinander kommunizieren, und externe Clients verwenden dieses Netzwerk auch, um auf den Ceph-Speicher zuzugreifen,
[[email protected] ceph_cluster]$ vi ceph.conf [global] fsid = b1e269f0-03ea-4545-8ffd-4e0f79350900 mon_initial_members = ceph-monitor mon_host = 192.168.1.33 auth_cluster_required = cephx auth_service_required = cephx auth_client_required = cephx public network = 192.168.1.0/24
Speichern und beenden Sie die Datei.
Installieren Sie nun ceph auf allen Knoten vom ceph-admin-Knoten, führen Sie die „ceph-deploy install ” Befehl
[[email protected] ~]$ ceph-deploy install ceph-controller ceph-compute01 ceph-compute02 ceph-monitor
Der obige Befehl installiert Ceph zusammen mit anderen Abhängigkeiten automatisch auf allen Knoten, je nach Internetgeschwindigkeit auf Ceph-Knoten kann es einige Zeit dauern.
Ausgabe von oben „ceph-deploy install ” Die Ausgabe des Befehls würde ungefähr so aussehen:
Führen Sie „ceph-deploy mon create-initial“ aus ”-Befehl vom ceph-admin-Knoten aus, werden die anfänglichen Monitore bereitgestellt und die Schlüssel gesammelt.
[[email protected] ~]$ cd ceph_cluster/ [[email protected] ceph_cluster]$ ceph-deploy mon create-initial
Führen Sie „ceph-deploy admin“ aus ”-Befehl, um die Konfigurationsdatei vom ceph-admin-Knoten auf alle ceph-Knoten zu kopieren, sodass man den ceph cli-Befehl verwenden kann, ohne die Monitoradresse anzugeben.
[[email protected] ceph_cluster]$ ceph-deploy admin ceph-controller ceph-compute01 ceph-compute02 ceph-monitor
Installieren Sie den Manager-Daemon vom Ceph-Admin-Knoten auf Ceph Compute Nodes (OSD) mit dem folgenden Befehl
[[email protected] ceph_cluster]$ ceph-deploy mgr create ceph-compute01 ceph-compute02
Schritt:5) OSD-Festplatten zum Cluster hinzufügen
In meinem Setup habe ich zwei Festplatten /dev/vdb angehängt &/dev/vdc Auf beiden Compute-Knoten werde ich diese vier Datenträger von Compute-Knoten als OSD-Datenträger verwenden.
Lassen Sie uns überprüfen, ob das Dienstprogramm ceph-deploy diese Festplatten sehen kann oder nicht. Führen Sie die „ceph-deploy disk list“ aus ”-Befehl vom ceph-admin-Knoten,
[[email protected] ceph_cluster]$ ceph-deploy disk list ceph-compute01 ceph-compute02
Ausgabe des obigen Befehls:
Hinweis: Stellen Sie sicher, dass diese Datenträger nirgendwo verwendet werden und keine Daten enthalten
Um Daten von Datenträgern zu bereinigen und zu löschen, verwenden Sie die folgenden Befehle,
[[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute01 /dev/vdb [[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute01 /dev/vdc [[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute02 /dev/vdb [[email protected] ceph_cluster]$ ceph-deploy disk zap ceph-compute02 /dev/vdc
Markieren Sie nun diese Festplatten mit den folgenden Befehlen als OSD
[[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdb ceph-compute01 [[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdc ceph-compute01 [[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdb ceph-compute02 [[email protected] ceph_cluster]$ ceph-deploy osd create --data /dev/vdc ceph-compute02
Schritt:6) Überprüfen Sie den Ceph-Cluster-Status
Überprüfen Sie Ihren Ceph-Cluster-Status mit „ceph health “ &„ceph -s “, führen Sie diese Befehle vom Monitorknoten
aus[[email protected] ~]# ceph health HEALTH_OK [[email protected] ~]# [[email protected] ~]# ceph -s cluster: id: 4f41600b-1c5a-4628-a0fc-2d8e7c091aa7 health: HEALTH_OK services: mon: 1 daemons, quorum ceph-monitor mgr: ceph-compute01(active), standbys: ceph-compute02 osd: 4 osds: 4 up, 4 in data: pools: 0 pools, 0 pgs objects: 0 objects, 0 B usage: 4.0 GiB used, 76 GiB / 80 GiB avail pgs: [[email protected] ~]#
Wie wir in der obigen Ausgabe sehen können, ist der Zustand des Ceph-Clusters in Ordnung und wir haben 4 OSDs , alle diese OSDs sind aktiv und aktiv, abgesehen davon können wir sehen, dass in unserem Cluster 80 GB Speicherplatz verfügbar sind.
Bestätigen Sie, dass wir Ceph Cluster erfolgreich auf dem CentOS 7-System installiert und konfiguriert haben. Wenn Ihnen diese Schritte bei der Installation von Ceph in Ihrer Umgebung helfen, teilen Sie uns bitte Ihr Feedback und Ihre Kommentare mit.
Im kommenden Artikel werden wir besprechen, wie den Clients Blockspeicher vom Ceph-Cluster zugewiesen wird, und wir werden sehen, wie Clients auf den Blockspeicher zugreifen können.