14 Betrieb von Ceph-Services #
Sie können Ceph-Services auf Daemon-, Knoten- oder Clusterebene betreiben. Verwenden Sie je nach gewünschtem Ansatz cephadm oder das Kommando systemctl
.
14.1 Betrieb einzelner Services #
Wenn Sie einen individuellen Service betreiben müssen, identifizieren Sie diesen zuerst:
cephuser@adm >
ceph orch ps
NAME HOST STATUS REFRESHED [...]
mds.my_cephfs.ses-min1.oterul ses-min1 running (5d) 8m ago
mgr.ses-min1.gpijpm ses-min1 running (5d) 8m ago
mgr.ses-min2.oopvyh ses-min2 running (5d) 8m ago
mon.ses-min1 ses-min1 running (5d) 8m ago
mon.ses-min2 ses-min2 running (5d) 8m ago
mon.ses-min4 ses-min4 running (5d) 7m ago
osd.0 ses-min2 running (61m) 8m ago
osd.1 ses-min3 running (61m) 7m ago
osd.2 ses-min4 running (61m) 7m ago
rgw.myrealm.myzone.ses-min1.kwwazo ses-min1 running (5d) 8m ago
rgw.myrealm.myzone.ses-min2.jngabw ses-min2 error 8m ago
Führen Sie zum Identifizieren eines Service auf einem bestimmten Knoten folgendes Kommando aus:
ceph orch ps NODE_HOST_NAME
Beispiel:
cephuser@adm >
ceph orch ps ses-min2
NAME HOST STATUS REFRESHED
mgr.ses-min2.oopvyh ses-min2 running (5d) 3m ago
mon.ses-min2 ses-min2 running (5d) 3m ago
osd.0 ses-min2 running (67m) 3m ago
Das Kommando ceph orch ps
unterstützt mehrere Ausgabeformate. Hängen Sie zum Ändern die Option --format FORMAT
an, wobei FORMAT entweder json
, json-pretty
oder yaml
sein kann. Beispiel:
cephuser@adm >
ceph orch ps --format yaml
Sobald Sie den Namen des Service kennen, können Sie ihn starten, neu starten oder stoppen:
ceph orch daemon COMMAND SERVICE_NAME
Führen Sie folgendes Kommando aus, um beispielsweise den OSD-Service mit der ID 0 neu zu starten:
cephuser@adm >
ceph orch daemon restart osd.0
14.2 Betrieb der Servicetypen #
Verwenden Sie folgendes Kommando, wenn Sie einen bestimmten Servicetyp im gesamten Ceph-Cluster betreiben müssen:
ceph orch COMMAND SERVICE_TYPE
Ersetzen Sie COMMAND durch start
, stop
oder restart
.
Mit folgendem Kommando werden beispielsweise alle MONs im Cluster neu gestartet, unabhängig davon, auf welchen Knoten sie tatsächlich ausgeführt werden:
cephuser@adm >
ceph orch restart mon
14.3 Betrieb von Services auf einem einzelnen Knoten #
Mit dem Kommando systemctl
betreiben Sie Ceph-bezogene systemd
-Services und -Ziele auf einem einzelnen Knoten.
14.3.1 Identifizieren von Services und Zielen #
Bevor Sie Ceph-bezogene systemd
-Services und -Ziele betreiben, müssen Sie die Dateinamen der zugehörigen Einheitendateien identifizieren. Die Dateinamen der Services werden nach folgendem Muster erstellt:
ceph-FSID@SERVICE_TYPE.ID.service
Beispiel:
ceph-b4b30c6e-9681-11ea-ac39-525400d7702d@mon.doc-ses-min1.service
ceph-b4b30c6e-9681-11ea-ac39-525400d7702d@rgw.myrealm.myzone.doc-ses-min1.kwwazo.service
- FSID
Eindeutige ID des Ceph-Clusters. Sie finden sie in der Ausgabe des Kommandos
ceph fsid
.- SERVICE_TYPE
Typ des Service, beispielsweise
osd
,mon
oderrgw
.- ID
Identifikationszeichenkette des Service. Bei OSDs ist es die ID-Nummer des Service. Bei anderen Services kann es sich entweder um einen Hostnamen des Knotens oder um zusätzliche für den Servicetyp relevante Zeichenketten handeln.
Der Teil SERVICE_TYPE.ID ist in der Ausgabe des Kommandos ceph orch ps
identisch mit dem Inhalt der Spalte NAME
.
14.3.2 Betrieb aller Services auf einem Knoten #
Mit den systemd
-Zielen von Ceph können Sie entweder alle Services auf einem Knoten oder alle Services, die zu einem durch seine FSID identifizierten Cluster gehören, gleichzeitig betreiben.
Führen Sie folgendes Kommando aus, um beispielsweise alle Ceph-Services auf einem Knoten zu stoppen, unabhängig davon, zu welchem Cluster die Services gehören:
root@minion >
systemctl stop ceph.target
Führen Sie folgendes Kommando aus, um alle Services neu zu starten, die zu einem Ceph-Cluster mit ID b4b30c6e-9681-11ea-ac39-525400d7702d
gehören:
root@minion >
systemctl restart ceph-b4b30c6e-9681-11ea-ac39-525400d7702d.target
14.3.3 Betrieb eines einzelnen Service auf einem Knoten #
Nachdem Sie den Namen eines bestimmten Service identifiziert haben, betreiben Sie ihn auf folgende Weise:
systemctl COMMAND SERVICE_NAME
Führen Sie folgendes Kommando aus, um beispielsweise einen einzelnen OSD-Service mit ID 1 auf einem Cluster mit ID b4b30c6e-9681-11ea-ac39-525400d7702d
neu zu starten:
#
systemctl restart ceph-b4b30c6e-9681-11ea-ac39-525400d7702d@osd.1.service
14.3.4 Abfragen des Servicestatus #
Eine Abfrage mit systemd
ermittelt den Status von Services. Beispiel:
#
systemctl status ceph-b4b30c6e-9681-11ea-ac39-525400d7702d@osd.0.service
14.4 Herunterfahren und Neustarten des gesamten Ceph-Clusters #
Das Herunterfahren und Neustarten des Clusters kann bei einem geplanten Stromausfall erforderlich sein. Führen Sie folgende Schritte aus, um alle Ceph-bezogenen Services zu stoppen und ohne Probleme neu zu starten.
Fahren Sie alle Clients herunter, die auf den Cluster zugreifen, oder trennen Sie deren Verbindung.
Legen Sie den Cluster auf
noout
fest, um zu verhindern, dass CRUSH den Cluster automatisch neu ausbalanciert:cephuser@adm >
ceph osd set nooutStoppen Sie alle Ceph-Services auf allen Cluster-Knoten:
root@master #
ceph-salt stopSchalten Sie alle Cluster-Knoten aus:
root@master #
salt -G 'ceph-salt:member' cmd.run "shutdown -h"
Schalten Sie den Admin-Knoten ein.
Schalten Sie die Ceph Monitor-Knoten ein.
Schalten Sie die Ceph OSD-Knoten ein.
Entfernen Sie das vorher festgelegte Flag
noout
:root@master #
ceph osd unset nooutSchalten Sie alle konfigurierten Gateways ein.
Schalten Sie die Cluster-Clients ein oder verbinden Sie sie.