cephx
Per attivare i servizi Ceph è possibile utilizzare systemd
o DeepSea.
systemd
#
Utilizzare il comando systemctl
per attivare tutti i servizi correlati a Ceph. Tali servizi vengono messi in funzione nel nodo al quale si è attualmente eseguito il login. Per poter operare sui servizi Ceph è necessario disporre dei privilegi radice
.
Per semplificare l'avvio, l'interruzione e il riavvio di tutti i servizi di un determinato tipo (ad esempio tutti i servizi Ceph o tutti i MON o OSD) in un nodo, in Ceph sono disponibili i seguenti file di unità systemd
:
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
Per avviare/interrompere/riavviare tutti i servizi Ceph sul nodo, eseguire:
root #
systemctl start ceph.targetroot #
systemctl stop ceph.targetroot #
systemctl restart ceph.target
Per avviare/interrompere/riavviare tutti gli OSD sul nodo, eseguire:
root #
systemctl start ceph-osd.targetroot #
systemctl stop ceph-osd.targetroot #
systemctl restart ceph-osd.target
I comandi per le altre destinazioni sono analoghi.
È possibile attivare servizi individuali utilizzando i seguenti file di unità systemd
on parametri:
ceph-osd@.service ceph-mon@.service ceph-mds@.service ceph-mgr@.service ceph-radosgw@.service ceph-rbd-mirror@.service
Per utilizzare questi comandi, è prima necessario identificare il nome del servizio da attivare. Per ulteriori informazioni sull'identificazione dei servizi, vedere Sezione 5.1.3, «Identificazione di servizi individuali».
Per avviare/interrompere/riavviare il servizio osd.1
, eseguire:
root #
systemctl start ceph-osd@1.serviceroot #
systemctl stop ceph-osd@1.serviceroot #
systemctl restart ceph-osd@1.service
I comandi per gli altri tipi di servizi sono analoghi.
È possibile individuare i nomi/numeri di un particolare tipo di servizio in molti modi. I comandi seguenti consentono di ottenere risultati per i servizi ceph*
. È possibile eseguirli in un nodo qualsiasi del cluster Ceph.
Per visualizzare un elenco di tutti i servizi (anche quelli inattivi) del tipo ceph*
, eseguire:
root #
systemctl list-units --all --type=service ceph*
Per visualizzare un elenco composto soltanto dai servizi inattivi, eseguire:
root #
systemctl list-units --all --state=inactive --type=service ceph*
È inoltre possibile utilizzare salt
per interrogare i servizi tra più nodi:
root@master #
salt TARGET cmd.shell \
"systemctl list-units --all --type=service ceph* | sed -e '/^$/,$ d'"
Per interrogare soltanto i nodi di storage:
root@master #
salt -I 'roles:storage' cmd.shell \
'systemctl list-units --all --type=service ceph*'
È possibile interrogare systemd
per lo stato dei servizi. Ad esempio:
root #
systemctl status ceph-osd@1.serviceroot #
systemctl status ceph-mon@HOSTNAME.service
Sostituire HOSTNAME con il nome host sul quale è in esecuzione il daemon.
Se non si conosce il nome/numero esatto del servizio, vedere Sezione 5.1.3, «Identificazione di servizi individuali».
Dopo aver applicato gli aggiornamenti ai nodi del cluster, è necessario riavviare i servizi correlati a Ceph interessati. Di norma, DeepSea effettua automaticamente il riavvio di tali servizi. Questa sezione descrive come riavviarli manualmente.
Il processo di riavvio del cluster può richiedere tempo. È possibile osservare gli eventi utilizzando il bus di eventi Salt eseguendo:
root@master #
salt-run state.event pretty=True
Un altro comando per il monitoraggio dei lavori attivi è
root@master #
salt-run jobs.active
Se i servizi correlati a Ceph, specificamente iSCSI o NFS Ganesha, sono configurati come singoli punti di accesso senza nessuna configurazione a elevata disponibilità, il loro riavvio comporterà un'interruzione temporanea sul lato client.
Poiché al momento DeepSea e il Ceph Dashboard non supportano le distribuzioni Samba, è necessario gestire manualmente i servizi correlati a Samba. Per ulteriori informazioni, vedere Capitolo 20, Esportazione dei dati Ceph tramite Samba.
Per riavviare tutti i servizi sul cluster, eseguire il seguente comando:
root@master #
salt-run state.orch ceph.restart
Per le versioni precedenti a DeepSea 0.8.4, i servizi Metadata Server, iSCSI Gateway, Object Gateway e NFS Ganesha vengono riavviati parallelamente.
Per DeepSea 0.8.4 e versioni successive, tutti i ruoli configurati vengono riavviati nel seguente ordine: Ceph Monitor, Ceph Manager, Ceph OSD, Metadata Server, Object Gateway, iSCSI Gateway, NFS Ganesha. Per mantenere basso il tempo di inattività e trovare potenziali problemi il prima possibile, i nodi vengono riavviati in ordine sequenziale. Ad esempio, viene avviato un solo nodo di monitoraggio alla volta.
Il comando attende il recupero del cluster se questo si trova in uno stato danneggiato o non integro.
Per riavviare un servizio specifico sul cluster, eseguire:
root@master #
salt-run state.orch ceph.restart.service_name
Ad esempio, per riavviare tutti gli Object Gateway, eseguire:
root@master #
salt-run state.orch ceph.restart.rgw
È possibile utilizzare le destinazioni seguenti:
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
In alcune occasioni è necessario interrompere tutti i servizi correlati a Ceph nel cluster seguendo l'ordine consigliato e quindi riavviarli, ad esempio nel caso di un'interruzione pianificata della corrente.
Per spegnere l'intero cluster Ceph, disabilitare le misure di sicurezza ed eseguire lo strumento di esecuzione ceph.shutdown
:
root@master #
salt-run disengage.safetyroot@master #
salt-run state.orch ceph.shutdown
Per avviare l'intero cluster Ceph, usare lo strumento di esecuzione ceph.startup
:
root@master #
salt-run state.orch ceph.startup