cephx
Ceph Services werden entweder mit systemd
oder mit DeepSea ausgeführt.
systemd
#
Mit dem Kommando systemctl
lassen sich alle Services im Umfeld von Ceph ausführen. Sie werden in dem Node ausgeführt, in dem Sie zurzeit angemeldet sind. Zur Durchführung von Vorgängen bezüglich Ceph Services benötigen Sie root
-Berechtigungen.
Zur Vereinfachung des Start-, Stopp- und Neustartvorgangs aller Services eines bestimmten Typs (beispielsweise alle Ceph Services, alle MONs oder alle OSDs) in einem Node bietet Ceph die folgenden Dateien für die systemd
-Einheit:
cephadm@adm >
ls /usr/lib/systemd/system/ceph*.target
ceph.target
ceph-osd.target
ceph-mon.target
ceph-mgr.target
ceph-mds.target
ceph-radosgw.target
ceph-rbd-mirror.target
Führen Sie zum Starten, Stoppen oder Neustarten von Ceph Services folgendes Kommando aus:
root #
systemctl start ceph.targetroot #
systemctl stop ceph.targetroot #
systemctl restart ceph.target
Führen Sie zum Starten, Stoppen oder Neustarten aller OSDs im Node folgendes Kommando aus:
root #
systemctl start ceph-osd.targetroot #
systemctl stop ceph-osd.targetroot #
systemctl restart ceph-osd.target
Die Kommandos für die anderen Targets sind entsprechend.
Einzelne Services führen Sie anhand der folgenden parametrisierten Dateien für die systemd
-Einheit aus:
ceph-osd@.service ceph-mon@.service ceph-mds@.service ceph-mgr@.service ceph-radosgw@.service ceph-rbd-mirror@.service
Für diese Kommandos müssen Sie zunächst den Namen des auszuführenden Service identifizieren. In Abschnitt 5.1.3, „Identifizieren einzelner Services“ erfahren Sie mehr zur Identifizierung von Services.
Führen Sie zum Starten/Stoppen/Neustarten des osd.1
-Service folgendes Kommando aus:
root #
systemctl start ceph-osd@1.serviceroot #
systemctl stop ceph-osd@1.serviceroot #
systemctl restart ceph-osd@1.service
Die Kommandos für die anderen Servicetypen sind entsprechend.
Die Namen/Nummern eines bestimmten Servicetyps lassen sich auf verschiedene Weise ermitteln. Die folgenden Kommandos geben Ergebnisse für ceph*
-Services zurück. Sie können sie auf jedem Knoten im Ceph Cluster ausführen.
Mit folgendem Kommando rufen Sie alle (auch inaktiven) Services des Typs ceph*
ab:
root #
systemctl list-units --all --type=service ceph*
Mit folgendem Kommando rufen Sie lediglich die inaktiven Services ab:
root #
systemctl list-units --all --state=inactive --type=service ceph*
Mit salt
können Sie auch Services auf mehreren Knoten abfragen:
root@master #
salt TARGET cmd.shell \
"systemctl list-units --all --type=service ceph* | sed -e '/^$/,$ d'"
Nur Speicher-Nodes abfragen:
root@master #
salt -I 'roles:storage' cmd.shell \
'systemctl list-units --all --type=service ceph*'
Eine Abfrage mit systemd
ermittelt den Status von Services. Beispiel:
root #
systemctl status ceph-osd@1.serviceroot #
systemctl status ceph-mon@HOSTNAME.service
Ersetzen Sie HOSTNAME durch den Namen des Hosts, auf dem der Daemon ausgeführt wird.
In Abschnitt 5.1.3, „Identifizieren einzelner Services“ finden Sie weitere Informationen, falls Sie den genauen Namen bzw. die Nummer des Service nicht kennen.
Nach einem Update der Cluster Nodes müssen die betroffenen Ceph-spezifischen Services neu gestartet werden. In der Regel werden Neustarts automatisch von DeepSea durchgeführt. In diesem Abschnitt wird erläutert, wie Sie die Services manuell neu starten.
Der Vorgang zum Neustarten des Clusters kann einige Zeit dauern. Sie können die Ereignisse mit dem Salt-Ereignisbus beobachten. Führen Sie dazu folgendes Kommando aus:
root@master #
salt-run state.event pretty=True
Ein weiteres Kommando zur Überwachung aktiver Aufträge:
root@master #
salt-run jobs.active
Wenn Ceph-spezifische Services – insbesondere iSCSI oder NFS Ganesha – als Single-Point-of-Access konfiguriert sind, fallen sie bei einem Neustart aus Sicht der Clients vorübergehend aus.
DeepSea und das Ceph Dashboard unterstützen derzeit keine Samba-Implementierungen. Sie müssen Samba-spezifische Services daher manuell verwalten. Weitere Informationen finden Sie unter Kapitel 20, Exportieren von Ceph-Daten mit Samba.
Führen Sie zum Neustarten aller Services am Cluster das folgende Kommando aus:
root@master #
salt-run state.orch ceph.restart
Bei DeepSea-Versionen, die älter sind als Version 0.8.4 wird ein Neustart der Services Metadata Server, iSCSI Gateway, Object Gateway und NFS Ganesha gleichzeitig ausgeführt.
Bei DeepSea ab Version 0.8.4 werden alle konfigurierten Rollen in der folgenden Reihenfolge neu gestartet: Ceph Monitor, Ceph Manager, Ceph OSD, Metadata Server, Object Gateway, iSCSI Gateway, NFS Ganesha. Nodes werden nacheinander neu gestartet, um die Ausfallzeit so kurz wie möglich zu halten und potenzielle Probleme möglichst früh zu erkennen. Beispielsweise wird nur jeweils ein Monitor Node neu gestartet.
Das Kommando wartet auf die Wiederherstellung des Clusters, wenn sich der Cluster in einem qualitativ schlechten, fehlerhaften Zustand befindet.
Führen Sie zum Neustarten eines bestimmten Service im Cluster folgendes Kommando aus:
root@master #
salt-run state.orch ceph.restart.service_name
Beispiel: Führen Sie zum Neustarten aller Object Gateways folgendes Kommando aus:
root@master #
salt-run state.orch ceph.restart.rgw
Sie können die folgenden Targets verwenden:
root@master #
salt-run state.orch ceph.restart.mon
root@master #
salt-run state.orch ceph.restart.mgr
root@master #
salt-run state.orch ceph.restart.osd
root@master #
salt-run state.orch ceph.restart.mds
root@master #
salt-run state.orch ceph.restart.rgw
root@master #
salt-run state.orch ceph.restart.igw
root@master #
salt-run state.orch ceph.restart.ganesha
Unter bestimmten Umständen müssen alle Ceph-spezifischen Services im Cluster in der empfohlenen Reihenfolge angehalten werden, damit sie später wieder problemlos gestartet werden können. Dies gilt beispielsweise bei einem geplanten Stromausfall.
Zum Herunterfahren des gesamten Ceph Clusters deaktivieren Sie die Sicherheitsmaßnahmen und führen Sie das Ausführungsprogramm ceph.shutdown
aus:
root@master #
salt-run disengage.safetyroot@master #
salt-run state.orch ceph.shutdown
Zum Starten des gesamten Ceph Clusters führen Sie das Ausführungsprogramm ceph.startup
aus:
root@master #
salt-run state.orch ceph.startup