14 Funzionamento dei servizi Ceph #
È possibile utilizzare i servizi Ceph a livello di daemon, nodo o cluster. A seconda dell'approccio richiesto, utilizzare cephadm o il comando systemctl
.
14.1 Attivazione dei servizi singoli #
Se è necessario utilizzare un singolo servizio, per prima cosa individuarlo:
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
Per identificare un servizio su un nodo specifico, eseguire:
ceph orch ps NODE_HOST_NAME
Esempio:
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
Il comando ceph orch ps
supporta diversi formati di output. Per modificare il formato, aggiungere l'opzione --format FORMAT
, dove FORMAT indica uno tra i formati json
, json-pretty
o yaml
. Esempio:
cephuser@adm >
ceph orch ps --format yaml
Una volta individuato il nome del servizio, è possibile avviarlo, riavviarlo o interromperlo:
ceph orch daemon COMMAND SERVICE_NAME
Ad esempio, per riavviare il servizio OSD con l'ID 0, eseguire:
cephuser@adm >
ceph orch daemon restart osd.0
14.2 Attivazione dei tipi di servizio #
Se è necessario utilizzare un tipo di servizio specifico nell'intero cluster Ceph, immettere il comando seguente:
ceph orch COMMAND SERVICE_TYPE
Sostituire COMMAND con start
, stop
o restart
.
Ad esempio, il comando seguente riavvia tutti i MON nel cluster, a prescindere dai nodi su cui sono effettivamente in esecuzione:
cephuser@adm >
ceph orch restart mon
14.3 Attivazione dei servizi su un singolo nodo #
Tramite il comando systemctl
, è possibile utilizzare le destinazioni e i servizi systemd
correlati a Ceph su un singolo nodo.
14.3.1 Identificazione di servizi e destinazioni #
Prima di utilizzare le destinazioni e i servizi systemd
correlati a Ceph, individuare i nomi di file dei relativi file di unità. I nomi di file dei servizi seguono il modello seguente:
ceph-FSID@SERVICE_TYPE.ID.service
Esempio:
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
ID univoco del cluster Ceph. È possibile trovarlo nell'output del comando
ceph fsid
.- SERVICE_TYPE
Tipo di servizio, ad esempio
osd
,mon
orgw
.- ID
Stringa identificativa del servizio. Per gli OSD, si tratta del numero di ID del servizio. Per gli altri servizi, può corrispondere al nome host del nodo o a stringhe aggiuntive rilevanti per il tipo di servizio.
La porzione SERVICE_TYPE.ID è identica al contenuto della colonna NAME
nell'output del comando ceph orch ps
.
14.3.2 Attivazione di tutti i servizi su un nodo #
Tramite le destinazioni systemd
di Ceph, è possibile utilizzare contemporaneamente tutti i servizi su un nodo oppure tutti i servizi appartenenti a un cluster identificato dal relativo FSID.
Ad esempio, per interrompere tutti i servizi Ceph su un nodo a prescindere dal cluster a cui appartengono, eseguire:
root@minion >
systemctl stop ceph.target
Per riavviare tutti i servizi appartenenti a un cluster Ceph con ID b4b30c6e-9681-11ea-ac39-525400d7702d
, eseguire:
root@minion >
systemctl restart ceph-b4b30c6e-9681-11ea-ac39-525400d7702d.target
14.3.3 Attivazione di un singolo servizio su un nodo #
Dopo aver identificato il nome di un servizio specifico, attivarlo come segue:
systemctl COMMAND SERVICE_NAME
Ad esempio, per riavviare un singolo servizio OSD con ID 1 su un cluster con ID b4b30c6e-9681-11ea-ac39-525400d7702d
, eseguire:
root #
systemctl restart ceph-b4b30c6e-9681-11ea-ac39-525400d7702d@osd.1.service
14.3.4 Interrogazione dello stato del servizio #
È possibile interrogare systemd
per lo stato dei servizi. Esempio:
root #
systemctl status ceph-b4b30c6e-9681-11ea-ac39-525400d7702d@osd.0.service
14.4 Spegnimento e riavvio dell'intero cluster Ceph #
Se è in programma un'interruzione di corrente, potrebbe essere necessario spegnere e riavviare il cluster. Per interrompere e riavviare senza problemi tutti i servizi correlati a Ceph, seguire la procedura indicata di seguito:
Spegnere o disconnettere i client con accesso al cluster.
Per impedire il ribilanciamento automatico del cluster da parte di CRUSH, impostare il cluster su
noout
:cephuser@adm >
ceph osd set nooutInterrompere tutti i servizi Ceph su tutti i nodi del cluster:
root@master #
ceph-salt stopDisattivare tutti i nodi del cluster:
root@master #
salt -G 'ceph-salt:member' cmd.run "shutdown -h"
Attivare il nodo admin.
Attivare i nodi Ceph Monitor.
Attivare i nodi Ceph OSD.
Annullare l'impostazione del flag
noout
configurata in precedenza:root@master #
ceph osd unset nooutAttivare tutti i gateway configurati.
Attivare o connettere i client del cluster.