Vai al contenutoNaviga tra le pagine: pagina precedente [tasto di scelta p]/pagina successiva [tasto di scelta n]
documentation.suse.com / Documentazione di SUSE Enterprise Storage 7.1 / Guida all'amministrazione e alle operazioni / Funzionamento del cluster / Task operativi
Si applica a SUSE Enterprise Storage 7.1

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:

  1. Esportare la configurazione attuale del cluster in un file:

    cephuser@adm > ceph orch ls --export --format yaml > cluster.yaml
  2. Modificare il file con la configurazione e aggiornare le righe pertinenti. In Capitolo 8, Distribuzione dei rimanenti servizi di base mediante cephadm e nella Sezione 13.4.3, «Aggiunta di OSD tramite la specifica dei DriveGroups» sono disponibili esempi sulle specifiche.

  3. 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:

  1. Installare SUSE Linux Enterprise Server e SUSE Enterprise Storage sul nuovo host. Per ulteriori informazioni consultare Capitolo 5, Installazione e configurazione di SUSE Linux Enterprise Server.

  2. Configurare l'host come Salt Minion di un Salt Master già esistente. Per ulteriori informazioni consultare Capitolo 6, Distribuzione Salt.

  3. 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.com
    root@master # ceph-salt config /ceph_cluster/roles/cephadm add ses-min5.example.com

    Per ulteriori informazioni consultare Sezione 7.2.2, «Aggiunta di Salt Minion».

  4. 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]
  5. Applicare la configurazione al nuovo host del cluster:

    root@master # ceph-salt apply ses-min5.example.com
  6. Verificare 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

Suggerimento
Suggerimento: rimozione degli OSD

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:

  1. Per tutti i tipi di servizio Ceph, ad eccezione di node-exporter e crash, rimuovere il nome host del nodo dal file della specifica del posizionamento del cluster (ad esempio cluster.yml). Per ulteriori dettagli, fare riferimento a Sezione 8.2, «Specifica del servizio e del posizionamento». Ad esempio, se si sta rimuovendo l'host denominato ses-min2, rimuovere tutte le occorrenze di ses-min-2 da tutte le sezioni placement::

    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.yaml
  2. Rimuovere il nodo dall'ambiente cephadm:

    cephuser@adm > ceph orch host rm ses-min2
  3. Se sul nodo sono in esecuzione i servizi crash.osd.1 e crash.osd.2, rimuoverli eseguendo il comando seguente sull'host:

    root@minion > cephadm rm-daemon --fsid CLUSTER_ID --name SERVICE_NAME

    Esempio:

    root@minion > cephadm rm-daemon --fsid b4b30c6e... --name crash.osd.1
    root@minion > cephadm rm-daemon --fsid b4b30c6e... --name crash.osd.2
  4. Rimuovere tutti i ruoli dal minion che si desidera eliminare:

    cephuser@adm > ceph-salt config /ceph_cluster/roles/tuned/throughput remove ses-min2
    cephuser@adm > ceph-salt config /ceph_cluster/roles/tuned/latency remove ses-min2
    cephuser@adm > ceph-salt config /ceph_cluster/roles/cephadm remove ses-min2
    cephuser@adm > ceph-salt config /ceph_cluster/roles/admin remove ses-min2

    Se 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 reset
  5. In seguito alla rimozione di tutti gli OSD su un singolo host, rimuovere l'host dalla mappa CRUSH:

    cephuser@adm > ceph osd crush remove bucket-name
    Nota
    Nota

    Il nome del compartimento deve coincidere con il nome host.

  6. Adesso, è possibile rimuovere il minion dal cluster:

    cephuser@adm > ceph-salt config /ceph_cluster/minions remove ses-min2
Importante
Importante

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
Nota
Nota

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 -i drive_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 -i drive_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
Suggerimento
Suggerimento

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')
Nota
Nota

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
    Suggerimento
    Suggerimento

    Utilizzare 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.

Esempio 13.1: Corrispondenza in base alle dimensioni del disco
service_type: osd
service_id: example_drvgrp_name
placement:
  host_pattern: '*'
data_devices:
  size: '40TB:'
db_devices:
  size: ':2TB'
Nota
Nota: virgolette obbligatorie

Quando si utilizza il delimitatore ":", occorre racchiudere le dimensioni tra virgolette altrimenti il simbolo ":" verrà interpretato come un nuovo hash di configurazione.

Suggerimento
Suggerimento: scorciatoie di unità

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.

Esempio 13.2: Configurazione semplice

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'
Esempio 13.3: Configurazione avanzata

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
Esempio 13.4: Configurazione avanzata con nodi non uniformi

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
Esempio 13.5: Configurazione esperta

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
Esempio 13.6: Configurazione complessa (e improbabile)

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.

  1. 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 ...
  2. 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
  3. È 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

Potrebbe essere necessario sostituire un disco OSD per diverse ragioni. Ad esempio:

  • Si sono verificati o si verificheranno a breve errori sul disco OSD in base alle informazioni SMART e il disco non può più essere utilizzato per memorizzare i dati in modo sicuro.

  • È necessario eseguire l'upgrade del disco OSD, ad esempio per aumentarne le dimensioni.

  • È necessario modificare il layout del disco OSD.

  • Si prevede di passare da un layout non LVM a un layout basato su LVM.

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.

Suggerimento
Suggerimento

Aggiungendo l'opzione --dry-run, non verrà eseguita la sostituzione effettiva, ma verrà visualizzata in anteprima la procedura prevista.

Nota
Nota

In caso di sostituzione di un OSD dopo un errore, si consiglia vivamente di attivare una pulitura approfondita dei gruppi di posizionamento. Per ulteriori dettagli, vedere la Sezione 17.6, «Pulitura dei gruppi di posizionamento».

Per avviare una pulitura approfondita, eseguire il seguente comando:

cephuser@adm > ceph osd deep-scrub osd.OSD_NUMBER
Importante
Importante: errore di un dispositivo condiviso

In caso di errore di un dispositivo condiviso per DB/WAL, eseguire la procedura di sostituzione per tutti gli OSD che condividono il dispositivo in errore.

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:

  1. Esportare la configurazione del cluster ed eseguire il backup del file JSON esportato. Ulteriori dettagli sono disponibili nel Sezione 7.2.14, «Esportazione delle configurazioni del cluster».

  2. 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.

  3. Interrompere e disabilitare il servizio systemd del Salt Master sul nodo del Salt Master precedente:

    root@master # systemctl stop salt-master.service
    root@master # systemctl disable salt-master.service
  4. Se 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.service
    root@master # systemctl disable salt-minion.service
    Avvertimento
    Avvertimento

    Non 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.

  5. Installare SUSE Linux Enterprise Server 15 SP3 sul nuovo Salt Master seguendo la procedura descritta in Capitolo 5, Installazione e configurazione di SUSE Linux Enterprise Server.

    Suggerimento
    Suggerimento: transizione del Salt Minion

    Per 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.pub
    root@minion > systemctl restart salt-minion.service
  6. Installare il pacchetto salt-master ed eventualmente il pacchetto salt-minion sul nuovo Salt Master.

  7. Installare ceph-salt sul nuovo nodo del Salt Master:

    root@master # zypper install ceph-salt
    root@master # systemctl restart salt-master.service
    root@master # salt '*' saltutil.sync_all
    Importante
    Importante

    Assicurarsi di eseguire tutti i tre comandi prima di continuare. I comandi sono idempotenti; non importa se vengono ripetuti.

  8. Includere il nuovo Salt Master nel cluster come descritto in Sezione 7.1, «Installazione ceph-salt», Sezione 7.2.2, «Aggiunta di Salt Minion» e Sezione 7.2.4, «Specifica del nodo admin».

  9. Importare la configurazione del cluster sottoposta a backup e applicarla:

    root@master # ceph-salt import CLUSTER_CONFIG.json
    root@master # ceph-salt apply
    Importante
    Importante

    Rinominare il minion id del Salt Master nel file CLUSTER_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 10.1.5.1, «Archivi software».

13.6.2 Gestione provvisoria dell'archivio

Se si utilizza uno strumento di gestione provvisoria, ad esempio SUSE Manager, Subscription 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.

Nota
Nota

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.1/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.1/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:

  1. Indicare al cluster Ceph di impostare il flag noout:

    cephuser@adm > ceph osd set noout
  2. Interrompere daemon e nodi nel seguente ordine:

    1. Client di memorizzazione

    2. Gateway, ad esempio NFS Ganesha o Object Gateway

    3. Metadata Server

    4. Ceph OSD

    5. Ceph Manager

    6. Ceph Monitor

  3. Se necessario, eseguire task di manutenzione.

  4. Avviare nodi e server in ordine inverso rispetto al processo di spegnimento:

    1. Ceph Monitor

    2. Ceph Manager

    3. Ceph OSD

    4. Metadata Server

    5. Gateway, ad esempio NFS Ganesha o Object Gateway

    6. Client di memorizzazione

  5. 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-safety
root@master # ceph-salt purge