13 Task operativi #
13.1 Modifica della configurazione del cluster #
Per modificare la configurazione di un cluster Ceph esistente, seguire la procedura indicata di seguito:
Esportare la configurazione attuale del cluster in un file:
cephuser@adm >
ceph orch ls --export --format yaml > cluster.yamlModificare il file con la configurazione e aggiornare le righe pertinenti. In Sezione 5.4, «Distribuzione di servizi e gateway» e nella Sezione 13.4.3, «Aggiunta di OSD tramite la specifica dei DriveGroups» sono disponibili esempi sulle specifiche.
Applicare la nuova configurazione:
cephuser@adm >
ceph orch apply -i cluster.yaml
13.2 Aggiunta di nodi #
Per aggiungere un nuovo nodo a un cluster Ceph, seguire la procedura indicata di seguito:
Installare SUSE Linux Enterprise Server e SUSE Enterprise Storage sul nuovo host. Per ulteriori informazioni consultare Sezione 5.1, «Installazione e configurazione di SUSE Linux Enterprise Server».
Configurare l'host come Salt Minion di un Salt Master già esistente. Per ulteriori informazioni consultare Sezione 5.2, «Distribuzione Salt».
Aggiungere il nuovo host a
ceph-salt
e renderlo riconoscibile da cephadm, ad esempio:root@master #
ceph-salt config /ceph_cluster/minions add ses-min5.example.comroot@master #
ceph-salt config /ceph_cluster/roles/cephadm add ses-min5.example.comPer ulteriori informazioni consultare Sezione 5.3.2.2, «Aggiunta di Salt Minion».
Verificare che il nodo sia stato aggiunto a
ceph-salt
:root@master #
ceph-salt config /ceph_cluster/minions ls o- minions ................................................. [Minions: 5] [...] o- ses-min5.example.com .................................... [no roles]Applicare la configurazione al nuovo host del cluster:
root@master #
ceph-salt apply ses-min5.example.comVerificare che l'host appena aggiunto appartenga all'ambiente cephadm:
cephuser@adm >
ceph orch host ls HOST ADDR LABELS STATUS [...] ses-min5.example.com ses-min5.example.com
13.3 Rimozione di nodi #
Se sul nodo da rimuovere sono in esecuzione degli OSD, rimuovere innanzitutto questi ultimi dal nodo e verificare che non ne siano rimasti altri in esecuzione. Per ulteriori dettagli sulla rimozione degli OSD, fare riferimento alla Sezione 13.4.4, «Rimozione degli OSD».
Per rimuovere un nodo da un cluster, procedere come segue:
Per tutti i tipi di servizio Ceph, ad eccezione di
node-exporter
ecrash
, rimuovere il nome host del nodo dal file della specifica del posizionamento del cluster (ad esempiocluster.yml
). Per ulteriori dettagli, fare riferimento al Sezione 5.4.2, «Specifica del servizio e del posizionamento». Ad esempio, se si sta rimuovendo l'host denominatoses-min2
, rimuovere tutte le occorrenze dises-min-2
da tutte le sezioniplacement:
:Aggiornare
service_type: rgw service_id: EXAMPLE_NFS placement: hosts: - ses-min2 - ses-min3
in
service_type: rgw service_id: EXAMPLE_NFS placement: hosts: - ses-min3
Applicare le modifiche al file di configurazione:
cephuser@adm >
ceph orch apply -i rgw-example.yamlRimuovere il nodo dall'ambiente cephadm:
cephuser@adm >
ceph orch host rm ses-min2Se sul nodo sono in esecuzione i servizi
crash.osd.1
ecrash.osd.2
, rimuoverli eseguendo il comando seguente sull'host:root@minion >
cephadm rm-daemon --fsid CLUSTER_ID --name SERVICE_NAMEEsempio:
root@minion >
cephadm rm-daemon --fsid b4b30c6e... --name crash.osd.1root@minion >
cephadm rm-daemon --fsid b4b30c6e... --name crash.osd.2Rimuovere tutti i ruoli dal minion che si desidera eliminare:
cephuser@adm >
ceph-salt config /ceph_cluster/roles/tuned/throughput remove ses-min2cephuser@adm >
ceph-salt config /ceph_cluster/roles/tuned/latency remove ses-min2cephuser@adm >
ceph-salt config /ceph_cluster/roles/cephadm remove ses-min2cephuser@adm >
ceph-salt config /ceph_cluster/roles/admin remove ses-min2Se il minion che si desidera rimuovere è il minion di bootstrap, è necessario rimuovere anche il ruolo di bootstrap:
cephuser@adm >
ceph-salt config /ceph_cluster/roles/bootstrap resetIn seguito alla rimozione di tutti gli OSD su un singolo host, rimuovere l'host dalla mappa CRUSH:
cephuser@adm >
ceph osd crush remove bucket-nameNotaIl nome del compartimento deve coincidere con il nome host.
Adesso, è possibile rimuovere il minion dal cluster:
cephuser@adm >
ceph-salt config /ceph_cluster/minions remove ses-min2
In caso di errore e se il minion che si sta tentando di rimuovere è nello stato di disattivazione permanente, sarà necessario rimuovere il nodo dal Salt Master:
root@master #
salt-key -d minion_id
Quindi, rimuovere manualmente il nodo da pillar_root/ceph-salt.sls
. In genere, questo si trova in /srv/pillar/ceph-salt.sls
.
13.4 Gestione degli OSD #
Questa sezione descrive come aggiungere, cancellare o rimuovere gli OSD in un cluster Ceph.
13.4.1 Elenco dei dispositivi disco #
Per identificare i dispositivi disco utilizzati e non utilizzati su tutti i nodi del cluster, elencarli eseguendo il comando seguente:
cephuser@adm >
ceph orch device ls
HOST PATH TYPE SIZE DEVICE AVAIL REJECT REASONS
ses-master /dev/vda hdd 42.0G False locked
ses-min1 /dev/vda hdd 42.0G False locked
ses-min1 /dev/vdb hdd 8192M 387836 False locked, LVM detected, Insufficient space (<5GB) on vgs
ses-min2 /dev/vdc hdd 8192M 450575 True
13.4.2 Cancellazione dei dispositivi disco #
Per riutilizzare un dispositivo disco, è necessario innanzitutto cancellarlo (o rimuoverlo con zap):
ceph orch device zap HOST_NAME DISK_DEVICE
Esempio:
cephuser@adm >
ceph orch device zap ses-min2 /dev/vdc
Se in precedenza l'utente ha distribuito gli OSD tramite i DriveGroups o l'opzione --all-available-devices
mentre il flag unmanaged
non era impostato, cephadm distribuirà automaticamente questi OSD in seguito alla loro cancellazione.
13.4.3 Aggiunta di OSD tramite la specifica dei DriveGroups #
I DriveGroups specificano i layout degli OSD nel cluster Ceph. Questi ultimi vengono definiti in un singolo file YAML. In questa sezione, verrà utilizzato drive_groups.yml
come esempio.
L'amministratore deve specificare manualmente un gruppo di OSD correlati tra di loro (OSD ibridi distribuiti su unità HDD e SDD) o condividere le stesse opzioni di distribuzione (ad esempio lo stesso archivio dati, la stessa opzione di cifratura, gli stessi OSD stand-alone). Per evitare di elencare esplicitamente i dispositivi, i DriveGroups utilizzano un elenco di elementi di filtro che corrispondono ad alcuni campi selezionati dei rapporti di archivio di ceph-volume
. In cephadm è fornito un codice che traduce tali DriveGroups in elenchi di dispositivi effettivi che l'utente potrà esaminare.
Il comando da eseguire per applicare la specifica OSD al cluster è:
cephuser@adm >
ceph orch apply osd -idrive_groups.yml
Per visualizzare un'anteprima delle azioni e testare l'applicazione, è possibile utilizzare l'opzione --dry-run
insieme al comando ceph orch apply osd
. Esempio:
cephuser@adm >
ceph orch apply osd -idrive_groups.yml
--dry-run ... +---------+------+------+----------+----+-----+ |SERVICE |NAME |HOST |DATA |DB |WAL | +---------+------+------+----------+----+-----+ |osd |test |mgr0 |/dev/sda |- |- | |osd |test |mgr0 |/dev/sdb |- |- | +---------+------+------+----------+----+-----+
Se l'output di --dry-run
soddisfa le aspettative, eseguire nuovamente il comando senza l'opzione --dry-run
.
13.4.3.1 OSD non gestiti #
Tutti i dispositivi disco puliti disponibili corrispondenti alla specifica dei DriveGroups verranno utilizzati automaticamente come OSD dopo essere stati aggiunti al cluster. Per descrivere questo comportamento si parla di modalità gestita.
Per disabilitare la modalità gestita, aggiungere la riga unmanaged: true
alle specifiche pertinenti, ad esempio:
service_type: osd service_id: example_drvgrp_name placement: hosts: - ses-min2 - ses-min3 encrypted: true unmanaged: true
Per modificare gli OSD già distribuiti dalla modalità gestita a quella non gestita, aggiungere le righe unmanaged: true
dove applicabile durante la procedura descritta nella Sezione 13.1, «Modifica della configurazione del cluster».
13.4.3.2 Specifica dei DriveGroups #
Di seguito è riportato un file della specifica dei DriveGroups di esempio:
service_type: osd service_id: example_drvgrp_name placement: host_pattern: '*' data_devices: drive_spec: DEVICE_SPECIFICATION db_devices: drive_spec: DEVICE_SPECIFICATION wal_devices: drive_spec: DEVICE_SPECIFICATION block_wal_size: '5G' # (optional, unit suffixes permitted) block_db_size: '5G' # (optional, unit suffixes permitted) encrypted: true # 'True' or 'False' (defaults to 'False')
L'opzione precedentemente chiamata "encryption" in DeepSea adesso si chiama "encrypted". Quando si applicano i DriveGroups in SUSE Enterprise Storage 7, assicurarsi di utilizzare questa nuova terminologia nella specifica del servizio, altrimenti ceph orch apply
genererà un errore.
13.4.3.3 Creazione di corrispondenze dei dispositivi disco #
È possibile descrivere la specifica tramite i filtri seguenti:
In base al modello di disco:
model: DISK_MODEL_STRING
In base al produttore del disco:
vendor: DISK_VENDOR_STRING
SuggerimentoUtilizzare sempre caratteri minuscoli quando si immette il valore DISK_VENDOR_STRING.
Per ottenere dettagli sul produttore e il modello del disco, esaminare l'output del comando seguente:
cephuser@adm >
ceph orch device ls HOST PATH TYPE SIZE DEVICE_ID MODEL VENDOR ses-min1 /dev/sdb ssd 29.8G SATA_SSD_AF34075704240015 SATA SSD ATA ses-min2 /dev/sda ssd 223G Micron_5200_MTFDDAK240TDN Micron_5200_MTFD ATA [...]Per indicare se si tratta di un disco rotativo o meno. Le unità SSD e NVME non sono rotative.
rotational: 0
Per distribuire un nodo utilizzando tutte le unità disponibili per gli OSD:
data_devices: all: true
Inoltre, tramite la limitazione del numero di dischi corrispondenti:
limit: 10
13.4.3.4 Aggiunta di filtri ai dispositivi in base alle dimensioni #
È possibile filtrare i dispositivi disco in base alle dimensioni (valore esatto o intervallo di dimensioni). Il parametro size:
accetta gli argomenti nel formato seguente:
"10G" - include i dischi di dimensioni esatte.
"10G:40G" - include i dischi di dimensioni comprese nell'intervallo.
":10G" - include i dischi di dimensioni inferiori o uguali a 10 GB.
"40G" - include i dischi di dimensioni uguali o superiori a 40 GB.
service_type: osd service_id: example_drvgrp_name placement: host_pattern: '*' data_devices: size: '40TB:' db_devices: size: ':2TB'
Quando si utilizza il delimitatore ":", occorre racchiudere le dimensioni tra virgolette altrimenti il simbolo ":" verrà interpretato come un nuovo hash di configurazione.
Al posto di Gigabyte (G), è possibile specificare le dimensioni in Megabyte (M) o Terabyte (T).
13.4.3.5 Esempi di DriveGroups #
Questa sezione include esempi di diverse configurazioni OSD.
Questo esempio descrive due nodi con la stessa configurazione:
20 HDD
Produttore: Intel
Modello: SSD-123-foo
Dimensioni: 4 TB
2 SSD
Produttore: Micron
Modello: MC-55-44-ZX
Dimensioni: 512 GB
Il file drive_groups.yml
corrispondente avrà l'aspetto seguente:
service_type: osd service_id: example_drvgrp_name placement: host_pattern: '*' data_devices: model: SSD-123-foo db_devices: model: MC-55-44-XZ
Tale configurazione è semplice e valida. Tuttavia, in futuro un amministratore può aggiungere dischi di altri produttori che non verranno inclusi. È possibile ovviare a questo problema riducendo i filtri sulle proprietà di base delle unità:
service_type: osd service_id: example_drvgrp_name placement: host_pattern: '*' data_devices: rotational: 1 db_devices: rotational: 0
Nell'esempio precedente, viene forzata la dichiarazione di tutti i dispositivi a rotazione come "dispositivi di dati" e tutti i dispositivi non a rotazione verranno utilizzati come "dispositivi condivisi" (wal, db).
Presupponendo che le unità di più di 2 TB saranno sempre i dispositivi di dati più lenti, è possibile applicare dei filtri in base alle dimensioni:
service_type: osd service_id: example_drvgrp_name placement: host_pattern: '*' data_devices: size: '2TB:' db_devices: size: ':2TB'
Questo esempio descrive due configurazioni diverse: 20 HDD devono condividere 2 SSD, mentre 10 SSD devono condividere 2 NVMe.
20 HDD
Produttore: Intel
Modello: SSD-123-foo
Dimensioni: 4 TB
12 SSD
Produttore: Micron
Modello: MC-55-44-ZX
Dimensioni: 512 GB
2 NVMe
Produttore: Samsung
Modello: NVME-QQQQ-987
Dimensioni: 256 GB
È possibile definire tale configurazione con due layout come segue:
service_type: osd service_id: example_drvgrp_name placement: host_pattern: '*' data_devices: rotational: 0 db_devices: model: MC-55-44-XZ
service_type: osd service_id: example_drvgrp_name2 placement: host_pattern: '*' data_devices: model: MC-55-44-XZ db_devices: vendor: samsung size: 256GB
Gli esempi precedenti sono basati sul presupposto che tutti i nodi dispongano delle stesse unità. Tuttavia, non è sempre questo il caso:
Nodi da 1 a 5:
20 HDD
Produttore: Intel
Modello: SSD-123-foo
Dimensioni: 4 TB
2 SSD
Produttore: Micron
Modello: MC-55-44-ZX
Dimensioni: 512 GB
Nodi da 6 a 10:
5 NVMe
Produttore: Intel
Modello: SSD-123-foo
Dimensioni: 4 TB
20 SSD
Produttore: Micron
Modello: MC-55-44-ZX
Dimensioni: 512 GB
È possibile utilizzare la chiave "target" nel layout per indirizzare nodi specifici. La notazione della destinazione Salt consente di non complicare la configurazione:
service_type: osd service_id: example_drvgrp_one2five placement: host_pattern: 'node[1-5]' data_devices: rotational: 1 db_devices: rotational: 0
seguito da
service_type: osd service_id: example_drvgrp_rest placement: host_pattern: 'node[6-10]' data_devices: model: MC-55-44-XZ db_devices: model: SSD-123-foo
In tutti i casi descritti in precedenza si presupponeva che i WAL e i DB utilizzassero lo stesso dispositivo. È tuttavia possibile anche distribuire i WAL su un dispositivo dedicato:
20 HDD
Produttore: Intel
Modello: SSD-123-foo
Dimensioni: 4 TB
2 SSD
Produttore: Micron
Modello: MC-55-44-ZX
Dimensioni: 512 GB
2 NVMe
Produttore: Samsung
Modello: NVME-QQQQ-987
Dimensioni: 256 GB
service_type: osd service_id: example_drvgrp_name placement: host_pattern: '*' data_devices: model: MC-55-44-XZ db_devices: model: SSD-123-foo wal_devices: model: NVME-QQQQ-987
Nella configurazione seguente, si tenterà di definire:
20 HDD supportati da 1 NVMe
2 HDD supportati da 1 SSD (db) e 1 NVMe (wal)
8 SSD supportati da 1 NVMe
2 SSD stand-alone (cifrati)
1 HDD è di riserva e non deve essere distribuito.
Di seguito è riportato il riepilogo delle unità utilizzate:
23 HDD
Produttore: Intel
Modello: SSD-123-foo
Dimensioni: 4 TB
10 SSD
Produttore: Micron
Modello: MC-55-44-ZX
Dimensioni: 512 GB
1 NVMe
Produttore: Samsung
Modello: NVME-QQQQ-987
Dimensioni: 256 GB
La definizione dei DriveGroups sarà la seguente:
service_type: osd service_id: example_drvgrp_hdd_nvme placement: host_pattern: '*' data_devices: rotational: 0 db_devices: model: NVME-QQQQ-987
service_type: osd service_id: example_drvgrp_hdd_ssd_nvme placement: host_pattern: '*' data_devices: rotational: 0 db_devices: model: MC-55-44-XZ wal_devices: model: NVME-QQQQ-987
service_type: osd service_id: example_drvgrp_ssd_nvme placement: host_pattern: '*' data_devices: model: SSD-123-foo db_devices: model: NVME-QQQQ-987
service_type: osd service_id: example_drvgrp_standalone_encrypted placement: host_pattern: '*' data_devices: model: SSD-123-foo encrypted: True
Rimarrà un'unità HDD, poiché il file viene analizzato dall'alto verso il basso.
13.4.4 Rimozione degli OSD #
Prima di rimuovere un nodo OSD dal cluster, verificare che lo spazio su disco disponibile sul cluster sia maggiore del disco OSD che verrà rimosso. Tenere presente che la rimozione di un OSD comporta il ribilanciamento dell'intero cluster.
Identificare l'OSD da rimuovere recuperandone l'ID:
cephuser@adm >
ceph orch ps --daemon_type osd NAME HOST STATUS REFRESHED AGE VERSION osd.0 target-ses-090 running (3h) 7m ago 3h 15.2.7.689 ... osd.1 target-ses-090 running (3h) 7m ago 3h 15.2.7.689 ... osd.2 target-ses-090 running (3h) 7m ago 3h 15.2.7.689 ... osd.3 target-ses-090 running (3h) 7m ago 3h 15.2.7.689 ...Rimuovere uno o più OSD dal cluster:
cephuser@adm >
ceph orch osd rm OSD1_ID OSD2_ID ...Esempio:
cephuser@adm >
ceph orch osd rm 1 2È possibile interrogare lo stato dell'operazione di rimozione:
cephuser@adm >
ceph orch osd rm status OSD_ID HOST STATE PG_COUNT REPLACE FORCE STARTED_AT 2 cephadm-dev done, waiting for purge 0 True False 2020-07-17 13:01:43.147684 3 cephadm-dev draining 17 False True 2020-07-17 13:01:45.162158 4 cephadm-dev started 42 False True 2020-07-17 13:01:45.162158
13.4.4.1 Interruzione della rimozione dell'OSD #
Se necessario, è possibile interrompere la rimozione di OSD dopo averla pianificata. Il comando seguente reimposterà lo stato iniziale dell'OSD e lo rimuoverà dalla coda:
cephuser@adm >
ceph orch osd rm stop OSD_SERVICE_ID
13.4.5 Sostituzione degli OSD #
Per sostituire un OSD conservandone l'ID, eseguire:
cephuser@adm >
ceph orch osd rm OSD_SERVICE_ID --replace
Esempio:
cephuser@adm >
ceph orch osd rm 4 --replace
La procedura per la sostituzione di un OSD è identica a quella per la rimozione (vedere la Sezione 13.4.4, «Rimozione degli OSD» per ulteriori dettagli) con l'eccezione che l'OSD non viene rimosso definitivamente dalla gerarchia CRUSH e gli viene invece assegnato un flag destroyed
.
Il flag destroyed
è utilizzato per determinare gli ID degli OSD che verranno riutilizzati durante la successiva distribuzione degli OSD. Ai dischi appena aggiunti corrispondenti alla specifica dei DriveGroups (vedere la Sezione 13.4.3, «Aggiunta di OSD tramite la specifica dei DriveGroups» per ulteriori dettagli) verranno assegnati gli ID degli OSD della controparte corrispondente sostituita.
Aggiungendo l'opzione --dry-run
, non verrà eseguita la sostituzione effettiva, ma verrà visualizzata in anteprima la procedura prevista.
13.5 Trasferimento del Salt Master a un nuovo nodo #
Se è necessario sostituire l'host del Salt Master con uno nuovo, seguire la procedura indicata di seguito:
Esportare la configurazione del cluster ed eseguire il backup del file JSON esportato. Ulteriori dettagli sono disponibili nel Sezione 5.3.2.15, «Esportazione delle configurazioni del cluster».
Se il Salt Master precedente è anche l'unico nodo di amministrazione nel cluster, spostare manualmente
/etc/ceph/ceph.client.admin.keyring
e/etc/ceph/ceph.conf
nel nuovo Salt Master.Interrompere e disabilitare il servizio
systemd
del Salt Master sul nodo del Salt Master precedente:root@master #
systemctl stop salt-master.serviceroot@master #
systemctl disable salt-master.serviceSe il nodo del Salt Master precedente non è più presente nel cluster, interrompere e disabilitare anche il servizio
systemd
del Salt Minion:root@master #
systemctl stop salt-minion.serviceroot@master #
systemctl disable salt-minion.serviceAvvertimentoNon interrompere o disabilitare
salt-minion.service
se sul nodo del Salt Master precedente sono presenti daemon Ceph (MON, MGR, OSD, MDS, gateway, monitoraggio) in esecuzione.Installare SUSE Linux Enterprise Server 15 SP2 sul nuovo Salt Master seguendo la procedura descritta in Sezione 5.1, «Installazione e configurazione di SUSE Linux Enterprise Server».
Suggerimento: transizione del Salt MinionPer semplificare la transizione dei Salt Minion sul nuovo Salt Master, rimuovere la chiave pubblica originale del Salt Master da ciascuno di questi:
root@minion >
rm /etc/salt/pki/minion/minion_master.pubroot@minion >
systemctl restart salt-minion.serviceInstallare il pacchetto salt-master e, se applicabile, il pacchetto salt-minion sul nuovo Salt Master.
Installare
ceph-salt
sul nuovo nodo del Salt Master:root@master #
zypper install ceph-saltroot@master #
systemctl restart salt-master.serviceroot@master #
salt '*' saltutil.sync_allImportanteAssicurarsi di eseguire tutti i tre comandi prima di continuare. I comandi sono idempotenti; non importa se vengono ripetuti.
Includere il nuovo Salt Master nel cluster come descritto in Sezione 5.3.1, «Installazione di
ceph-salt
», Sezione 5.3.2.2, «Aggiunta di Salt Minion» e Sezione 5.3.2.4, «Specifica del nodo admin».Importare la configurazione del cluster sottoposta a backup e applicarla:
root@master #
ceph-salt import CLUSTER_CONFIG.jsonroot@master #
ceph-salt applyImportanteRinominare il
minion id
del Salt Master nel fileCLUSTER_CONFIG.json
esportato prima di importarlo.
13.6 Aggiornamento dei nodi del cluster #
Mantenere i nodi del cluster Ceph aggiornati applicando regolarmente gli aggiornamenti in sequenza.
13.6.1 Archivi software #
Prima di applicare le patch al cluster con i pacchetti software più recenti, verificare che tutti i nodi del cluster dispongano dell'accesso agli archivi pertinenti. Per un elenco completo degli archivi obbligatori, consultare questo riferimento: Sezione 7.1.5.1, «Archivi software».
13.6.2 Gestione provvisoria dell'archivio #
Se si utilizza uno strumento di gestione provvisoria, ad esempio SUSE Manager, Repository Management Tool o RMT, tramite cui implementare gli archivi software sui nodi del cluster, verificare che le fasi degli archivi "Updates" di SUSE Linux Enterprise Server e SUSE Enterprise Storage vengano create nello stesso momento.
Si consiglia di utilizzare uno strumento di gestione temporanea per l'applicazione di patch con livelli di patch frozen
o staged
. In questo modo, sarà possibile assicurarsi che i nuovi nodi uniti al cluster dispongano dello stesso livello di patch dei nodi già in esecuzione al suo interno. Questo evita di dover applicare le patch più recenti a tutti i nodi del cluster prima che i nuovi nodi possano unirsi a quest'ultimo.
13.6.3 Tempo di fermo dei servizi Ceph #
A seconda della configurazione, i nodi del cluster potrebbero essere riavviati durante l'aggiornamento. Se è presente un single point of failure per servizi come Object Gateway, gateway Samba, NFS Ganesha o iSCSI, i computer del client potrebbero essere temporaneamente disconnessi dai servizi i cui nodi sono in corso di riavvio.
13.6.4 Esecuzione dell'aggiornamento #
Per aggiornare i pacchetti software su tutti i nodi del cluster alla versione più recente, eseguire il comando seguente:
root@master #
ceph-salt update
13.7 Aggiornamento di Ceph #
È possibile inviare a cephadm l'istruzione di aggiornare Ceph da una release di correzione di bug all'altra. L'aggiornamento automatico dei servizi Ceph rispetta l'ordine consigliato: inizia con i Ceph Manager, i Ceph Monitor e quindi continua sugli altri servizi, come Ceph OSD, Metadata Server e Object Gateway. Ogni daemon viene riavviato solo dopo che Ceph indica che il cluster resterà disponibile.
Nel processo di aggiornamento riportato di seguito è utilizzato il comando ceph orch upgrade
. Tenere presente che le istruzioni seguenti illustrano come aggiornare il cluster Ceph con una versione del prodotto (ad esempio, un aggiornamento di manutenzione) e non spiegano come eseguire l'upgrade del cluster da una versione del prodotto all'altra.
13.7.1 Avvio dell'aggiornamento #
Prima di avviare l'aggiornamento, verificare che tutti i nodi siano online e che il cluster sia integro:
cephuser@adm >
cephadm shell -- ceph -s
Per eseguire l'aggiornamento a una release Ceph specifica:
cephuser@adm >
ceph orch upgrade start --image REGISTRY_URL
Esempio:
cephuser@adm >
ceph orch upgrade start --image registry.suse.com/ses/7/ceph/ceph:latest
Eseguire l'upgrade dei pacchetti sugli host:
cephuser@adm >
ceph-salt update
13.7.2 Monitoraggio dell'aggiornamento #
Eseguire il comando seguente per determinare se è in corso un aggiornamento:
cephuser@adm >
ceph orch upgrade status
Mentre l'aggiornamento è in corso, nell'output dello stato di Ceph verrà visualizzata una barra di avanzamento:
cephuser@adm >
ceph -s
[...]
progress:
Upgrade to registry.suse.com/ses/7/ceph/ceph:latest (00h 20m 12s)
[=======.....................] (time remaining: 01h 43m 31s)
È inoltre possibile visualizzare il log cephadm:
cephuser@adm >
ceph -W cephadm
13.7.3 Annullamento dell'aggiornamento #
È possibile interrompere il processo di aggiornamento in qualsiasi momento:
cephuser@adm >
ceph orch upgrade stop
13.8 Interruzione o riavvio del cluster #
In alcuni casi può essere necessario interrompere o riavviare l'intero cluster. Si consiglia di verificare attentamente le dipendenze dei servizi in esecuzione. Nei passaggi successivi è descritto come interrompere e avviare il cluster:
Indicare al cluster Ceph di impostare il flag noout:
cephuser@adm >
ceph
osd set nooutInterrompere daemon e nodi nel seguente ordine:
Client di memorizzazione
Gateway, ad esempio NFS Ganesha o Object Gateway
Metadata Server
Ceph OSD
Ceph Manager
Ceph Monitor
Se necessario, eseguire task di manutenzione.
Avviare nodi e server in ordine inverso rispetto al processo di spegnimento:
Ceph Monitor
Ceph Manager
Ceph OSD
Metadata Server
Gateway, ad esempio NFS Ganesha o Object Gateway
Client di memorizzazione
Rimuovere il flag noout:
cephuser@adm >
ceph
osd unset noout
13.9 Rimozione dell'intero cluster Ceph #
Il comando ceph-salt purge
consente di rimuovere l'intero cluster Ceph. Se sono stati distribuiti altri cluster Ceph, viene eliminato definitivamente quello segnalato da ceph -s
. In questo modo è possibile pulire l'ambiente del cluster durante il test di diverse configurazioni.
Per evitare eliminazioni involontarie, lo strumento di coordinamento controlla se le misure di sicurezza sono disattivate. È possibile disattivare le misure di sicurezza e rimuovere il cluster Ceph eseguendo:
root@master #
ceph-salt disengage-safetyroot@master #
ceph-salt purge