Vai al contenuto
documentation.suse.com / Guida alla distribuzione
SUSE Enterprise Storage 7

Guida alla distribuzione

Autori: Tomáš Bažant, Alexandra Settle, e Liam Proven
Data di pubblicazione: 11 dic 2023

Copyright © 2020–2023 SUSE LLC e collaboratori. Tutti i diritti riservati.

Tranne laddove diversamente specificato, il presente documento è fornito con licenza Creative Commons Attribution-ShareAlike 4.0 International (CC-BY-SA 4.0): https://creativecommons.org/licenses/by-sa/4.0/legalcode

Per i marchi di fabbrica SUSE vedere http://www.suse.com/company/legal/. Tutti i marchi di fabbrica di terze parti appartengono ai rispettivi proprietari. I simboli di marchio di fabbrica (®, ™ e così via) indicano i marchi di fabbrica appartenenti a SUSE e alle rispettive affiliate. Gli asterischi (*) indicano i marchi di fabbrica di terze parti.

Tutte le informazioni presenti nella presente pubblicazione sono state compilate con la massima attenzione ai dettagli. Ciò, tuttavia, non garantisce una precisione assoluta. SUSE LLC, le rispettive affiliate, gli autori e i traduttori non potranno essere ritenuti responsabili di eventuali errori o delle relative conseguenze.

Informazioni su questa guida

Questa guida è incentrata sulla distribuzione di un cluster Ceph di base e di servizi aggiuntivi. Illustra inoltre le procedure da completare per eseguire l'upgrade a SUSE Enterprise Storage 7 dalla versione precedente.

SUSE Enterprise Storage 7 è un'estensione per SUSE Linux Enterprise Server 15 SP2 che combina le funzionalità del progetto di storage Ceph (http://ceph.com/) con il supporto e l'ingegneria aziendale di SUSE. SUSE Enterprise Storage 7 fornisce alle organizzazioni IT la possibilità di installare un'architettura di storage distribuita in grado di supportare numerosi casi di utilizzo mediante piattaforme hardware commodity.

1 Documentazione disponibile

Nota
Nota: documentazione online e ultimi aggiornamenti

La documentazione relativa ai nostri prodotti è disponibile all'indirizzo https://documentation.suse.com, dove sono disponibili anche gli ultimi aggiornamenti ed è possibile sfogliare ed effettuare il download della documentazione in vari formati. Gli ultimi aggiornamenti della documentazione sono disponibili in lingua inglese.

Inoltre, la documentazione dei prodotti è disponibile nel sistema installato in /usr/share/doc/manual. È inclusa in un pacchetto RPM denominato ses-manual_LANG_CODE. Installarlo se non è già presente nel sistema, ad esempio:

root # zypper install ses-manual_en

Per questo prodotto è disponibile la seguente documentazione:

Guida all'installazione

Questa guida è incentrata sulla distribuzione di un cluster Ceph di base e di servizi aggiuntivi. Illustra inoltre le procedure da completare per eseguire l'upgrade a SUSE Enterprise Storage 7 dalla versione precedente.

Guida all'amministrazione e alle operazioni

Questa guida è incentrata sui task di routine che gli amministratori devono completare in seguito alla distribuzione del cluster Ceph di base (operazioni giorno 2). Descrive inoltre tutti i metodi supportati per l'accesso ai dati memorizzati in un cluster Ceph.

Guida alla sicurezza avanzata

Questa guida descrive le procedure per verificare la protezione del cluster.

Guida alla soluzione dei problemi

Questa guida descrive diversi problemi comuni correlati all'esecuzione di SUSE Enterprise Storage 7 e altri problemi relativi ai componenti pertinenti, come Ceph oppure Object Gateway.

Guida di SUSE Enterprise Storage per Windows

Questa guida descrive le procedure di integrazione, installazione e configurazione degli ambienti Microsoft Windows e SUSE Enterprise Storage tramite il driver di Windows.

2 Invio di feedback

Qualsiasi feedback e contributo alla presente documentazione è ben accetto. È possibile lasciare il proprio feedback tramite tanti canali diversi:

Richieste di servizio e supporto

Per verificare i servizi e le opzioni di supporto disponibili per il proprio prodotto, visitare http://www.suse.com/support/.

Per aprire una richiesta di servizio, è necessario l'abbonamento al SUSE Customer Center. Andare a https://scc.suse.com/support/requests, eseguire il login e fare clic su Crea nuovo.

Segnalazioni di bug

Segnalare i problemi relativi alla documentazione all'indirizzo https://bugzilla.suse.com/. Per la segnalazione dei problemi, è necessario un account Bugzilla.

Per semplificare il processo, è possibile utilizzare i collegamenti per la segnalazione dei bug della documentazione, accanto ai titoli nella versione HTML del presente documento, che preselezionano la categoria e il prodotto corretti in Bugzilla e indirizzano alla sezione corrente. È possibile iniziare a digitare subito la segnalazione di bug.

Contributi

Per contribuire alla presente documentazione, utilizzare i collegamenti Modifica sorgente, accanto ai titoli nella versione HTML del documento, che indirizzano al codice sorgente su GitHub, dove è possibile aprire una richiesta pull. Per inviare un contributo, è necessario un account GitHub.

Per ulteriori informazioni sull'ambiente di documentazione utilizzato, vedere il file README dell'archivio all'indirizzo https://github.com/SUSE/doc-ses.

Posta

È inoltre possibile segnalare errori e inviare feedback sulla documentazione scrivendo all'indirizzo <>. Includere il titolo del documento, la versione del prodotto e la data di pubblicazione del documento. Inoltre, includere il titolo e il numero della sezione pertinente (o specificare l'URL) e fornire una breve descrizione del problema.

3 Convenzioni utilizzate nella documentazione

Nel presente documento vengono utilizzati gli avvisi e le convenzioni tipografiche illustrati di seguito:

  • /etc/passwd: nomi di directory e file

  • SEGNAPOSTO: sostituire SEGNAPOSTO con il valore effettivo

  • PATH: variabile di ambiente

  • ls, --help: comandi, opzioni e parametri

  • user: nome dell'utente o del gruppo

  • package_name: nome di un pacchetto software

  • Alt, AltF1: tasto da premere o combinazione di tasti. I tasti sono visualizzati in maiuscolo come se fossero sulla tastiera.

  • File, File › Save As (Salva con nome): voci di menu, pulsanti

  • AMD/Intel Questo paragrafo riguarda solo le architetture Intel 64/AMD64. Le frecce contrassegnano l'inizio e la fine del blocco di testo.

    IBM Z, POWER Questo paragrafo si riferisce esclusivamente alle architetture IBM Z e POWER. Le frecce contrassegnano l'inizio e la fine del blocco di testo.

  • Capitolo 1, «Capitolo di esempio»: riferimento incrociato a un altro capitolo della presente guida.

  • Comandi che devono essere eseguiti con privilegi di root. Per eseguire tali comandi come utente senza privilegi, è spesso possibile anteporvi il prefisso sudo.

    root # command
    tux > sudo command
  • Comandi che possono essere eseguiti anche da utenti senza privilegi.

    tux > command
  • Avvisi

    Avvertimento
    Avvertimento: avvertenza

    Informazioni essenziali che è indispensabile conoscere prima di procedere. Segnala problemi di sicurezza, potenziali perdite di dati, danni hardware o pericoli fisici.

    Importante
    Importante: avviso importante

    Informazioni importanti che è consigliabile leggere prima di procedere.

    Nota
    Nota: nota

    Informazioni aggiuntive, che illustrano ad esempio le differenze tra le varie versioni del software.

    Suggerimento
    Suggerimento: suggerimento

    Informazioni utili, come linee guida o consigli pratici.

  • Avvisi compatti

    Nota

    Informazioni aggiuntive, che illustrano ad esempio le differenze tra le varie versioni del software.

    Suggerimento

    Informazioni utili, come linee guida o consigli pratici.

4 Ciclo di vita del prodotto e supporto

Prodotti SUSE diversi hanno cicli di vita diversi. Per verificare le date esatte del ciclo di vita di SUSE Enterprise Storage, visitare https://www.suse.com/lifecycle/.

4.1 Definizioni del supporto SUSE

Agli indirizzi https://www.suse.com/support/policy.html e https://www.suse.com/support/programs/long-term-service-pack-support.html è possibile trovare informazioni sulle opzioni e la policy di supporto.

4.2 Informativa sul supporto per SUSE Enterprise Storage

Per ricevere supporto, occorre una sottoscrizione idonea a SUSE. Per visualizzare le offerte di supporto specifiche disponibili, andare a https://www.suse.com/support/ e selezionare il prodotto in uso.

Di seguito sono riportate le definizioni dei livelli di supporto:

L1

Individuazione del problema, ovvero supporto tecnico pensato per fornire informazioni di compatibilità, assistenza per l'utilizzo, operazioni di manutenzione, raccolta di informazioni e risoluzione dei problemi di base tramite la documentazione disponibile.

L2

Isolamento del problema, ovvero supporto tecnico pensato per l'analisi dei dati, la riproduzione dei problemi dei clienti, l'isolamento dell'area del problema e la proposta di una risoluzione dei problemi non risolti al livello 1 o la loro preparazione per il livello 3.

L3

Risoluzione del problema, ovvero supporto tecnico pensato per la risoluzione dei difetti del prodotto identificati al livello di supporto 2.

Per i clienti e i partner con contratto, SUSE Enterprise Storage è fornito con supporto L3 per tutti i pacchetti, a eccezione di quanto segue:

  • Anteprime della tecnologia

  • Suoni, grafiche, tipi di carattere e oggetti grafici

  • Pacchetti che richiedono un contratto con il cliente aggiuntivo

  • Alcuni pacchetti rilasciati come parte del modulo Workstation Extension dispongono soltanto del supporto L2.

  • I pacchetti il cui nome termina in -devel (contenenti file di intestazione e simili risorse per sviluppatori) sono supportati soltanto insieme ai relativi pacchetti principali.

SUSE supporterà soltanto l'utilizzo dei pacchetti originali. Vale a dire, i pacchetti non modificati e non ricompilati.

4.3 Anteprime della tecnologia

Le anteprime della tecnologia sono pacchetti, stack o funzioni forniti da SUSE come anticipazioni sulle future innovazioni. Tramite le anteprime della tecnologia, i clienti hanno la possibilità di testare le nuove tecnologie all'interno del proprio ambiente. I feedback degli utenti sono bene accetti. Se si esegue il test di un'anteprima della tecnologia, contattare il proprio rappresentante SUSE per informarlo della propria esperienza utente e dei casi d'uso. I suggerimenti degli utenti sono molto utili per lo sviluppo futuro.

Le anteprime della tecnologia prevedono le limitazioni seguenti:

  • Le anteprime della tecnologia sono ancora in fase di sviluppo. Di conseguenza, potrebbero essere incomplete a livello di funzioni, instabili o in altri modi non adatte per l'utilizzo nell'ambiente di produzione.

  • Le anteprime della tecnologia non dispongono di alcun supporto.

  • Le anteprime della tecnologia potrebbero essere disponibili soltanto per architetture hardware specifiche.

  • I dettagli e le funzionalità delle anteprime della tecnologia sono soggetti a modifica. Di conseguenza, potrebbe non essere possibile eseguire l'upgrade alle successive release di un'anteprima della tecnologia e potrebbe essere necessario eseguire una nuova installazione.

  • È possibile rimuovere le anteprime della tecnologia da un prodotto in qualsiasi momento. SUSE non si impegna a fornire una versione supportata di tali tecnologie in futuro. Ad esempio, ciò potrebbe applicarsi nelle situazioni in cui SUSE rileva che un'anteprima non soddisfa le esigenze dei clienti o del mercato o che non è conforme agli standard aziendali.

Per una panoramica delle anteprime della tecnologia fornite con il prodotto, vedere le note di rilascio all'indirizzo https://www.suse.com/releasenotes/x86_64/SUSE-Enterprise-Storage/7.

5 Collaboratori di Ceph

Il progetto Ceph e la relativa documentazione sono il risultato del lavoro di centinaia di collaboratori e organizzazioni. Per ulteriori dettagli, consultare la pagina all'indirizzo https://ceph.com/contributors/.

6 Comandi e prompt dei comandi utilizzati nella presente guida

Gli amministratori del cluster Ceph si occupano della configurazione e della modifica del comportamento del cluster tramite l'esecuzione di comandi specifici. Saranno necessari diversi tipi di comandi:

6.1 Comandi correlati a Salt

Questi comandi consentono di distribuire i nodi del cluster Ceph, di eseguire comandi contemporaneamente su più (o su tutti i) nodi del cluster e semplificano l'aggiunta o la rimozione dei nodi del cluster. I comandi utilizzati più di frequente sono ceph-salt e ceph-salt config. È necessario eseguire i comandi Salt sul nodo del Salt Master come root. Questi comandi sono introdotti dal prompt seguente:

root@master # 

Esempio:

root@master # ceph-salt config ls

6.2 Comandi correlati a Ceph

Si tratta di comandi di livello inferiore per la configurazione e l'ottimizzazione di tutti gli aspetti del cluster e dei relativi gateway sulla riga di comando, ad esempio ceph, cephadm, rbd o radosgw-admin.

Per eseguire i comandi correlati a Ceph, è necessario disporre dell'accesso in lettura a una chiave Ceph. Le capacità della chiave definiscono i privilegi dell'utente all'interno dell'ambiente Ceph. Un'opzione consiste nell'eseguire i comandi di Ceph come root (o tramite sudo) e utilizzare il portachiavi di default senza restrizioni "ceph.client.admin.key".

L'opzione consigliata e più sicura consiste nel creare una chiave individuale più restrittiva per ogni utente amministratore e inserirla in una directory in cui gli utenti possano leggerla, ad esempio:

~/.ceph/ceph.client.USERNAME.keyring
Suggerimento
Suggerimento: percorso delle chiavi Ceph

Per utilizzare un utente amministratore e un portachiavi personalizzati, è necessario specificare il nome utente e il percorso della chiave ogni volta che si esegue il comando ceph tramite le opzioni -n client.USER_NAME e --keyring PATH/TO/KEYRING.

Per evitarlo, includere queste opzioni nella variabile CEPH_ARGS nei file ~/.bashrc dei singoli utenti.

I comandi correlati a Ceph possono essere eseguiti su qualsiasi nodo del cluster, ma è consigliabile eseguirli sul nodo admin. In questa documentazione, l'utente cephuser esegue i comandi, pertanto questi vengono introdotti dal prompt seguente:

cephuser@adm > 

Esempio:

cephuser@adm > ceph auth list
Suggerimento
Suggerimento: comandi per nodi specifici

Se nella documentazione è indicato di eseguire un comando su un nodo del cluster con un ruolo specifico, questo verrà indirizzato dal prompt. Esempio:

cephuser@mon > 

6.2.1 Esecuzione di ceph-volume

A partire da SUSE Enterprise Storage 7, i servizi Ceph vengono eseguiti in container. Se è necessario eseguire ceph-volume su un nodo OSD, occorre anteporlo con il comando cephadm, ad esempio:

cephuser@adm > cephadm ceph-volume simple scan

6.3 Comandi Linux generali

I comandi Linux non correlati a Ceph, come mount, cat o openssl, sono introdotti con i prompt cephuser@adm > o root # , a seconda dei privilegi richiesti dal comando correlato.

6.4 Informazioni aggiuntive

Per ulteriori informazioni sulla gestione della chiave Ceph, fare riferimento a Book “Guida alle operazioni e all'amministrazione”, Chapter 30 “Autenticazione con cephx”, Section 30.2 “Gestione delle chiavi”.

Parte I Presentazione di SUSE Enterprise Storage (SES)

  • 1 SES e Ceph
  • SUSE Enterprise Storage è un sistema di storage distribuito progettato per scalabilità, affidabilità e prestazioni basato sulla tecnologia Ceph. È possibile eseguire un cluster Ceph su server generici in una rete comune come Ethernet. Il cluster può scalare inoltre fino a migliaia di server (più ava…

  • 2 Requisiti hardware e raccomandazioni
  • I requisiti hardware di Ceph dipendono strettamente dal carico di lavoro degli IO. Tenere presente i seguenti requisiti hardware e raccomandazioni come base di partenza per una pianificazione dettagliata.

  • 3 Configurazione ad elevata disponibilità del nodo admin
  • Il nodo admin è un nodo del cluster Ceph dove è in esecuzione il servizio Salt Master. Gestisce il resto dei nodi del cluster tramite l'invio di interrogazioni e istruzioni ai rispettivi servizi Salt Minion. Comprende in genere anche altri servizi, ad esempio il dashboard Grafana supportato dal kit …

1 SES e Ceph

SUSE Enterprise Storage è un sistema di storage distribuito progettato per scalabilità, affidabilità e prestazioni basato sulla tecnologia Ceph. È possibile eseguire un cluster Ceph su server generici in una rete comune come Ethernet. Il cluster può scalare inoltre fino a migliaia di server (più avanti denominati nodi) e nel campo dei petabyte. Rispetto ai sistemi convenzionali che dispongono di tabelle di allocazione per memorizzare e recuperare i dati, Ceph utilizza un algoritmo deterministico per allocare lo storage per i dati e non dispone di alcuna struttura informativa centralizzata. Ceph suppone che nei cluster di storage l'aggiunta o la rimozione dell'hardware sia la normalità, non l'eccezione. Il cluster Ceph automatizza i task di gestione come distribuzione e ridistribuzione dei dati, replica dei dati, rilevamento e ripristino degli errori. Ceph sfrutta capacità di autoregolazione e autogestione, determinando la riduzione delle spese amministrative e sforamenti di bilancio.

Questo capitolo contiene una panoramica di alto livello di SUSE Enterprise Storage 7 e una breve descrizione dei componenti più importanti.

1.1 Funzioni di Ceph

L'ambiente Ceph presenta le seguenti caratteristiche:

Scalabilità

Ceph è in grado di scalare a migliaia di nodi e gestire lo storage nel campo dei petabyte.

Hardware

Per eseguire il cluster Ceph, non sono richiesti hardware speciali. Per i dettagli, vedere Capitolo 2, Requisiti hardware e raccomandazioni

Autogestione

Il cluster Ceph è in grado di autogestirsi. Quando si aggiungono o rimuovono nodi o in caso di guasto, il cluster ridistribuisce automaticamente i dati. È inoltre in grado di riconoscere i dischi sovraccarichi.

Nessun Single point of failure

Nessun nodo in un cluster memorizza da solo dati importanti. È possibile configurare il numero di ridondanze.

Software open source

Ceph è una soluzione software open source e indipendente da hardware o fornitori specifici.

1.2 Componenti di base di Ceph

Per utilizzare pienamente la potenza di Ceph, è necessario comprendere alcuni dei componenti e concetti di base. Questa sezione presenta alcune parti di Ceph a cui si fa spesso riferimento in altri capitoli.

1.2.1 RADOS

Il componente base di Ceph è denominato RADOS (Reliable Autonomic Distributed Object Store), responsabile per la gestione dei dati memorizzati nel cluster. I dati in Ceph vengono in genere memorizzati come oggetti. Ciascun oggetto consiste di un identificativo e dai dati.

RADOS fornisce i seguenti metodi di accesso agli oggetti memorizzati che riguardano molti casi d'uso:

Object Gateway

Object Gateway è un gateway HTTP REST per lo store di oggetti RADOS che consente l'accesso diretto agli oggetti memorizzati nel cluster Ceph.

RADOS Block Device

È possibile accedere ai RADOS Block Device (RBD) seguendo la stessa procedura degli altri dispositivi di blocco e utilizzarli ad esempio insieme con libvirt per scopi di virtualizzazione.

CephFS

Il file system di Ceph è di tipo POSIX-compatibile.

librados

librados è una libreria utilizzabile con molti linguaggi di programmazione per creare un'applicazione in grado di interagire direttamente con il cluster di storage.

librados è utilizzata da Object Gateway e RBD mentre CephFS si interfaccia direttamente con RADOS Figura 1.1, «Interfacce con l'archivio dati Ceph».

Interfacce con l'archivio dati Ceph
Figura 1.1: Interfacce con l'archivio dati Ceph

1.2.2 CRUSH

Il core del cluster Ceph è l'algoritmo CRUSH. CRUSH è l'acronimo di Controlled Replication Under Scalable Hashing. CRUSH è una funzione che gestisce l'allocazione dello storage e richiede comparabilmente pochi parametri. Ciò significa che è necessaria solo una piccola quantità di dati per calcolare la posizione di storage di un oggetto. I parametri sono una mappa corrente del cluster comprendente lo stato, alcune regole di posizionamento definite dall'amministratore e il nome dell'oggetto che deve essere memorizzato o recuperato. Con questi dati, tutti i nodi nel cluster Ceph sono in grado di calcolare dove si trova un oggetto e le sue repliche. Ciò rende la scrittura o la lettura dei dati molto efficace. CRUSH tenta di distribuire in modo uniforme i dati tra tutti i nodi nel cluster.

La mappa CRUSH contiene tutti i nodi di storage e le regole di posizionamento definite dall'amministratore per la memorizzazione degli oggetti nel cluster e definisce una struttura gerarchica che di solito corrisponde alla struttura fisica del cluster. Ad esempio, i dischi contenenti i dati sono negli host, gli host sono nei rack, i rack in righe e le righe nei data center. È possibile utilizzare questa struttura per definire i domini di guasto. Ceph quindi garantisce che le repliche vengano memorizzate su diverse diramazioni di uno specifico dominio di guasto.

Se il dominio di guasto è configurato su un rack, le repliche degli oggetti sono distribuite su diversi rack. Ciò può ridurre le perdite provocate da un errore di commutazione in un rack. Se un'unità di distribuzione alimentazione alimenta una riga di rack, il dominio di guasto può essere configurato su una riga. In caso di errore dell'unità di distribuzione di alimentazione, i dati replicati sono sempre disponibili su altre righe.

1.2.3 Daemon e nodi Ceph

In Ceph, i nodi sono server che lavorano per il cluster e possono eseguire diversi tipi di daemon. Si consiglia di eseguire solo un tipo di daemon in ogni nodo, tranne per i daemon Ceph Manager che possono essere collocati con i Ceph Monitor. Per ogni cluster sono necessari almeno i daemon Ceph Monitor, Ceph Manager e Ceph OSD:

Nodo admin

Il nodo admin è un nodo del cluster Ceph da cui si eseguono i comandi per la gestione del cluster. Il nodo admin è un punto centrale del cluster Ceph perché gestisce i nodi residui del cluster tramite interrogazione e istruendo i relativi servizi Salt Minion.

Ceph Monitor

I nodi Ceph Monitor (spesso abbreviato con MON) mantengono le informazioni sullo stato del cluster, una mappa di tutti i nodi e regole di distribuzione dati (vedere Sezione 1.2.2, «CRUSH»).

Se si verificano errori o conflitti, i nodi Ceph Monitor nel cluster decidono a maggioranza quali dati sono corretti. Per formare una maggioranza qualificata, si consiglia un numero dispari di nodi Ceph Monitor e almeno tre.

Se si utilizzano più siti, i nodi Ceph Monitor devono essere distribuiti su un numero dispari di siti. Il numero di nodi Ceph Monitor per sito deve essere tale che oltre il 50% dei nodi Ceph Monitor resti funzionale in caso di errore di un sito.

Ceph Manager

Ceph Manager raccoglie le informazioni di stato dall'intero cluster. Il daemon Ceph Manager viene eseguito insieme con i daemon Ceph Monitor, fornisce ulteriore monitoraggio e si interfaccia con i sistemi di gestione e monitoraggio esterni. Include anche altri servizi. Ad esempio, l'interfaccia utente Web del Ceph Dashboard viene eseguita sullo stesso nodo del Ceph Manager.

Per Ceph Manager non è necessaria una configurazione aggiuntiva; è sufficiente verificare che sia in esecuzione.

Ceph OSD

Ceph OSD è un daemon che gestisce gli Object Storage Device che sono unità di storage logiche o fisiche (dischi rigidi o partizioni). Gli Object Storage Device possono essere dischi fisici/partizioni o volumi logici. Il daemon si occupa inoltre della replica dei dati e del ribilanciamento in caso di nodi aggiunti o rimossi.

I daemon Ceph OSD comunicano con i daemon monitor e forniscono loro lo stato degli altri daemon OSD.

Per utilizzare CephFS, Object Gateway, NFS Ganesha o iSCSI Gateway, sono richiesti nodi aggiuntivi:

Metadata Server (MDS)

I metadati di CephFS vengono archiviati sul relativo pool RADOS (vedere la Sezione 1.3.1, «Pool»). I Metadata Server agiscono come strato di memorizzazione nella cache smart per i metadati e serializzano l'accesso quando necessario. In questo modo, è possibile consentire l'accesso simultaneo da diversi client senza sincronizzazione esplicita.

Object Gateway

Object Gateway è un gateway HTTP REST per l'archivio dati RADOS. È compatibile con OpenStack Swift e Amazon S3 e dispone di propria gestione utente.

NFS Ganesha

NFS Ganesha fornisce un accesso NFS all'Object Gateway o a CephFS. Viene eseguito nell'utente invece che nello spazio kernel e interagisce direttamente con l'Object Gateway o CephFS.

iSCSI Gateway

iSCSI è un protocollo di rete di storage che consente ai client di inviare comandi SCSI ai dispositivi di storage SCSI (destinazioni) su server remoti.

Gateway Samba

Il gateway Samba fornisce accesso Samba ai dati memorizzati su CephFS.

1.3 Struttura di memorizzazione di Ceph

1.3.1 Pool

Gli oggetti memorizzati in un cluster Ceph vengono posti nei pool. I pool rappresentano le partizioni logiche del cluster per l'esterno. Per ogni pool è possibile definire un set di regole, ad esempio quante repliche di ogni oggetto devono esistere. La configurazione standard dei pool è denominata pool replicato.

I pool in genere contengono oggetti, ma è possibile configurarli anche per funzionare come RAID 5. In questa configurazione, gli oggetti vengono memorizzati in chunk insieme con i chunk di codifica aggiuntivi. I chunk di codifica contengono i dati ridondanti. Il numero di dati e chunk di codifica può essere definito dall'amministratore. In questa configurazione, i pool sono denominati pool con codice di cancellazione o pool EC.

1.3.2 Gruppi di posizionamento

I gruppi di posizionamento (PG) sono utilizzati per la distribuzione dei dati in un pool. Quando si crea un pool, viene impostato un determinato numero di gruppi di posizionamento. I gruppi di posizionamento sono utilizzati internamente per raggruppare gli oggetti e sono un fattore importante per le prestazioni di un cluster Ceph. Il PG di un oggetto è determinato dal nome dell'oggetto.

1.3.3 Esempio

Questa sezione fornisce un esempio semplificato della gestione dati di Ceph (vedere Figura 1.2, «Esempio di Ceph su piccola scala»). Questo esempio non rappresenta una configurazione consigliata per un cluster Ceph. La configurazione hardware consiste di tre nodi di storage Ceph OSD (Host 1, Host 2, Host 3). Ogni nodo ha tre dischi rigidi utilizzati come OSD (da osd.1 a osd.9). In questo esempio, vengono tralasciati i nodi Ceph Monitor.

Nota
Nota: differenza tra Ceph OSD e OSD

Mentre Ceph OSD o daemon Ceph OSD si riferisce a un daemon eseguito su un nodo, il termine OSD si riferisce al disco logico con cui interagisce il daemon.

Il cluster ha due pool, Pool A e Pool B. Mentre il Pool A replica gli oggetti solo due volte, la resilienza per Pool B è più importante e ha tre repliche per ogni oggetto.

Quando un'applicazione mette un oggetto in un pool, ad esempio tramite la API REST, un Gruppo di posizionamento (da PG1 a PG4) viene selezionato in base a pool e nome oggetto. L'algoritmo CRUSH calcola quindi su quali OSD viene memorizzato l'oggetto, in base al Gruppo di posizionamento contenente l'oggetto.

In questo esempio, il dominio di guasto è impostato sull'host. Ciò garantisce che le repliche degli oggetti siano memorizzate su diversi host. In base al livello di replica impostato per un pool, l'oggetto viene memorizzato su due o tre OSD utilizzati dal Gruppo di posizionamento.

Un'applicazione che scrive un oggetto interagisce solo con un Ceph OSD, il Ceph OSD primario. Il Ceph OSD primario si occupa della replica e conferma il completamento del processo di scrittura dopo che tutti gli altri OSD hanno memorizzato l'oggetto.

In caso di errore di osd.5, tutti gli oggetti in PG1 sono ancora disponibili su osd.1. Non appena il cluster riconosce l'errore di un OSD, un altro OSD lo sostituisce. In questo esempio osd.4 viene utilizzato come sostituzione per osd.5. Gli oggetti memorizzati su osd.1 vengono quindi replicati su osd.4 per ripristinare il livello di replica.

Esempio di Ceph su piccola scala
Figura 1.2: Esempio di Ceph su piccola scala

Se si aggiunge al cluster un nuovo nodo con nuovi OSD, la mappa del cluster cambia. La funzione CRUSH restituisce quindi diverse ubicazioni per gli oggetti. Gli oggetti che ricevono nuove ubicazioni vengono riposizionati. Questo processo determina un uso bilanciato di tutti gli OSD.

1.4 BlueStore

BlueStore è un nuovo back-end di storage di default per Ceph di SES 5. Offre migliori prestazioni di FileStore, check-sum dei dati completo e compressione integrata.

BlueStore gestisce uno, due o tre dispositivi di storage. Nel caso più semplice, BlueStore consuma un singolo dispositivo di storage primario. Il dispositivo di storage è di solito partizionato in due parti:

  1. Una piccola partizione denominata BlueFS che implementa funzionalità di tipo file system richieste da RocksDB.

  2. Il resto del dispositivo è in genere una grande partizione che occupa tutto lo spazio residuo del dispositivo. È gestito direttamente da BlueStore e contiene tutti i dati effettivi. Tale dispositivo primario è in genere identificato da un collegamento simbolico di blocco nella directory dei dati.

È inoltre possibile distribuire BlueStore su due dispositivi aggiuntivi:

Un dispositivo WAL può essere utilizzato per il giornale di registrazione interno di BlueStore o il log di scrittura. È identificato dal collegamento simbolico block.wal nella directory dei dati e serve solo per utilizzare un dispositivo WAL separato se il dispositivo è più veloce del dispositivo primario o del dispositivo DB, ad esempio quando:

  • il dispositivo WAL è un NVMe e il dispositivo DB è una SSD e il dispositivo dati è un'unità SSD o HDD.

  • Entrambi i dispositivi WAL e DB sono SSD separate e il dispositivo dati è un'unità SSD o HDD.

È possibile utilizzare un dispositivo DB per memorizzare i metadati interni di BlueStore. BlueStore (o piuttosto il RocksDB integrato) trasferisce tutti i metadati possibili sul dispositivo DB per migliorare le prestazioni. Di nuovo, è utile solo per il provisioning di un dispositivo DB condiviso se è più veloce del dispositivo primario.

Suggerimento
Suggerimento: pianificazione della dimensione del DB

Pianificarla attentamente per assicurarsi che il dispositivo DB sia delle dimensioni sufficienti. Se il dispositivo DB è pieno, i metadati si riverseranno sul dispositivo primario che degraderà notevolmente le prestazioni dell'OSD.

È possibile verificare se una partizione WAL/DB si sta riempiendo e trasferendo i dati con il comando ceph daemon osd.ID perf dump. Il valore slow_used_bytes mostra la quantità di dati in uscita:

cephuser@adm > ceph daemon osd.ID perf dump | jq '.bluefs'
"db_total_bytes": 1073741824,
"db_used_bytes": 33554432,
"wal_total_bytes": 0,
"wal_used_bytes": 0,
"slow_total_bytes": 554432,
"slow_used_bytes": 554432,

1.5 Informazioni aggiuntive

  • Ceph è un progetto di community che dispone di una propria documentazione completa online. Per argomenti non trovati nel presente manuale, consultare https://docs.ceph.com/en/octopus/.

  • La pubblicazione originale CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data di S.A. Weil, S.A. Brandt, E.L. Miller, C. Maltzahn fornisce spunti utili nelle opere interne di Ceph. Se ne consiglia la lettura soprattutto per la distribuzione di cluster in grande scala. La pubblicazione è disponibile al seguente collegamento http://www.ssrc.ucsc.edu/papers/weil-sc06.pdf.

  • SUSE Enterprise Storage può essere utilizzato con le distribuzioni OpenStack non SUSE. I client Ceph devono trovarsi a un livello compatibile con SUSE Enterprise Storage.

    Nota
    Nota

    SUSE supporta il componente server della distribuzione Ceph, mentre il client è supportato dal fornitore della distribuzione OpenStack.

2 Requisiti hardware e raccomandazioni

I requisiti hardware di Ceph dipendono strettamente dal carico di lavoro degli IO. Tenere presente i seguenti requisiti hardware e raccomandazioni come base di partenza per una pianificazione dettagliata.

In generale, le raccomandazioni date sono riferite a un processo. Se sullo stesso computer sono ubicati più processi, occorre sommare i requisiti di CPU, RAM, disco e rete.

2.1 Panoramica sulla rete

Ceph dispone di diverse reti logiche:

  • Una rete di front-end, la rete pubblica.

  • Una rete interna affidabile, ovvero la rete di back-end o rete di cluster. Si tratta di una procedura opzionale.

  • Una o più reti client per i gateway. Si tratta di reti facoltative che non rientrano nell'ambito del presente capitolo.

La rete pubblica è la rete su cui i daemon Ceph comunicano tra di loro e con i client, ciò significa che tutto il traffico del cluster Ceph passa su questa rete, tranne nel caso in cui sia configurata una rete di cluster.

La rete di cluster è la rete di back-end tra i nodi OSD per la replica, il ribilanciamento e il recupero. Se adeguatamente configurata, questa rete facoltativa può fornire fino al doppio della larghezza di banda della rete pubblica con la replica a tre vie di default, dal momento che viene utilizzata dall'OSD primario per inviare due copie agli altri OSD. La rete pubblica consente a client e gateway di comunicare con monitor, manager, nodi MDS e nodi OSD. È inoltre utilizzata da monitor, manager e nodi MDS per la comunicazione con i nodi OSD.

Panoramica sulla rete
Figura 2.1: Panoramica sulla rete

2.1.1 Raccomandazioni di rete

Si consiglia di utilizzare una singola rete a tolleranza di errore con larghezza di banda sufficiente per soddisfare i propri requisiti. Per l'ambiente di rete pubblica Ceph, si consigliano due interfacce di rete associate da 25 GbE (o più veloci) associate tramite 802.3ad (LACP). Questa è considerata come la configurazione di base di Ceph. Se si utilizza anche una rete di cluster, si consigliano quattro interfacce di rete associate da 25 GbE. L'associazione di due o più interfacce di rete offre migliore velocità effettiva tramite l'aggregazione dei collegamenti e, in caso di collegamenti e switch ridondanti, maggiore tolleranza agli errori e gestibilità.

È possibile inoltre creare VLAN per isolare diversi tipi di traffico su un'associazione. Ad esempio, è possibile creare un'associazione per fornire due interfacce VLAN, una per la rete pubblica e una per la rete di cluster. Tuttavia, ciò non è necessario durante la configurazione delle reti Ceph. All'indirizzo https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-network.html#sec-network-iface-bonding sono disponibili ulteriori dettagli sull'associazione delle interfacce.

Isolando i componenti nei domini di errore, si aumenta la tolleranza agli errori. Per ottenere una maggiore tolleranza agli errori della rete, è possibile associare un'interfaccia a due NIC (Network Interface Card) separate, qualora si verificasse un errore su una. Analogamente, associare due switch diversi fornisce maggiore protezione, nel caso si verificasse un errore su uno. Rivolgersi al fornitore delle apparecchiature di rete per impostare il livello adeguato di tolleranza agli errori.

Importante
Importante: rete di amministrazione non supportata

La configurazione della rete di amministrazione aggiuntiva, che consente ad esempio la separazione delle reti SSH, Salt o DNS, non è né testata né supportata.

Suggerimento
Suggerimento: nodi configurati tramite DHCP

Se i nodi di storage sono configurati tramite DHCP, i timeout default possono non essere sufficienti per configurare correttamente la rete prima dell'avvio dei vari daemon Ceph. Se ciò avviene, i Ceph MON e OSD non si avvieranno in modo corretto (l'esecuzione di systemctl status ceph\* genererà errori di associazione). Per evitare questo problema, si consiglia di aumentare il timeout del client DHCP ad almeno 30 secondi su ciascun nodo nel cluster di memorizzazione. È possibile fare questo modificando le impostazioni seguenti su ogni nodo:

In /etc/sysconfig/network/dhcp, impostare

DHCLIENT_WAIT_AT_BOOT="30"

In /etc/sysconfig/network/config, impostare

WAIT_FOR_INTERFACES="60"

2.1.1.1 Aggiunta di una rete privata a un cluster in esecuzione

Se non si specifica una rete di cluster durante la distribuzione, Ceph presume un ambiente di rete pubblica singola. Mentre Ceph funziona bene con una rete pubblica, le sue prestazioni e sicurezza aumentano quando si imposta una seconda rete di cluster privata. Per supportare due reti, ogni nodo Ceph deve avere almeno due schede di rete.

Occorre applicare le seguenti modifiche a ogni nodo Ceph. È relativamente rapido farlo con un piccolo cluster, ma può essere necessario molto tempo in caso di cluster contenente centinaia o migliaia di nodi.

  1. Impostare la rete di cluster utilizzando il comando seguente:

    root # ceph config set global cluster_network MY_NETWORK

    Riavviare gli OSD per eseguire l'associazione alla rete di cluster specificata:

    root # systemctl restart ceph-*@osd.*.service
  2. Verificare che la rete di cluster privata funzioni come previsto al livello del SO.

2.1.1.2 Nodi di monitoraggio su sottoreti diverse

Se i nodi monitor sono su sottoreti diverse, ad esempio si trovano in stanze diverse e sono serviti da switch differenti, occorre specificare l'indirizzo di rete pubblica nella notazione CIDR:

cephuser@adm > ceph config set mon public_network "MON_NETWORK_1, MON_NETWORK_2, MON_NETWORK_N

Esempio:

cephuser@adm > ceph config set mon public_network "192.168.1.0/24, 10.10.0.0/16"
Avvertimento
Avvertimento

Se si specifica più di un segmento di rete per la rete pubblica (o di cluster) come descritto in questa sezione, ciascuna di queste sottoreti deve essere in grado di eseguire l'instradamento a tutte le altre, altrimenti i MON e gli altri daemon Ceph su segmenti di rete diversi non potranno comunicare e verrà generato un cluster suddiviso. Inoltre, se si utilizza un firewall, assicurarsi di includere ogni indirizzo IP o sottorete nelle iptables e aprire le porte per questi ultimi su tutti i nodi in base alle esigenze.

2.2 Configurazioni ad architettura multipla

SUSE Enterprise Storage supporta le architetture x86 e Arm. Durante la valutazione di ciascuna architettura, è importante osservare che dalla prospettiva dei core per OSD, frequenza e RAM, non esistono reali differenze tra le architetture CPU in termini di ridimensionamento.

Come per i processori x86 (non-server) di dimensioni più piccole, i core basati su Arm a prestazioni ridotte potrebbero non fornire un'esperienza ottimale, soprattutto se utilizzati per i pool con codice di cancellazione.

Nota
Nota

Nella documentazione, SYSTEM-ARCH è utilizzato al posto di x86 o Arm.

2.3 Configurazione hardware

La configurazione del cluster consigliata garantisce la migliore esperienza utente con il prodotto. Per i cluster di test o con requisiti di prestazioni inferiori, è descritta la configurazione minima supportata.

2.3.1 Configurazione minima del cluster

La configurazione minima del cluster è costituita da:

  • Almeno quattro nodi fisici (nodi OSD) con la co-location dei servizi;

  • Ethernet Dual-10 Gb come rete associata;

  • Un nodo admin separato (può essere virtualizzato su un nodo esterno).

La configurazione dettagliata prevede:

  • Nodo admin separato con 4 GB di RAM, quattro core, capacità di memorizzazione di 1 TB. In genere questo è il nodo Salt Master. I servizi e i gateway Ceph, come Ceph Monitor, Metadata Server, Ceph OSD, Object Gateway o NFS Ganesha non sono supportati sul nodo admin poiché quest'ultimo deve coordinare i processi di upgrade e aggiornamento del cluster in modo indipendente.

  • Almeno quattro nodi OSD fisici, con otto dischi OSD ciascuno; vedere la Sezione 2.4.1, «Requisiti minimi» per i requisiti.

    La capacità complessiva del cluster deve essere ridimensionata per fare in modo che, anche nel caso di mancata disponibilità di un nodo, la capacità complessiva in uso (inclusa la ridondanza) non superi l'80%.

  • Tre istanze di Ceph Monitor. Per ragioni di latenza, i monitor devono essere eseguiti dallo storage SSD/NVMe e non da HDD.

  • Monitor, Metadata Server e gateway possono trovarsi in co-location sui nodi OSD; vedere la Sezione 2.12, «Condivisione di un server da parte di OSD e monitor» per informazioni sulla co-location dei monitor. In caso di co-location dei servizi, occorre aggiungere i requisiti di memoria e CPU.

  • iSCSI Gateway, Object Gateway e Metadata Server richiedono almeno 4 GB di RAM incrementale e quattro core.

  • Se si utilizzano CephFS, S3/Swift e iSCSI, per garantire ridondanza e disponibilità sono necessarie almeno due istanze dei rispettivi ruoli (Metadata Server, Object Gateway, iSCSI).

  • I nodi devono essere dedicati a SUSE Enterprise Storage e non devono essere utilizzati per altri workload fisici, in container o virtualizzati.

  • Se i gateway (iSCSI, Object Gateway, NFS Ganesha, Metadata Server ecc.) sono distribuiti all'interno di macchine virtuali, queste ultime non devono essere ospitate sulle macchine fisiche che servono altri ruoli del cluster (ciò non è necessario, poiché sono supportati come servizi in co-location).

  • Se si esegue la distribuzione dei servizi come macchine virtuali su Hypervisor all'esterno del cluster fisico principale, occorre rispettare i domini di errore per assicurare la ridondanza.

    Ad esempio, non distribuire più ruoli dello stesso tipo sullo stesso Hypervisor (come più istanze MDS o MON).

  • Se si esegue la distribuzione all'interno delle macchine virtuali, è particolarmente importante verificare che la connettività di rete dei nodi sia ottimale e che l'orario venga sincronizzato correttamente.

  • I nodi dell'Hypervisor devono avere dimensioni adeguate per evitare interferenze provenienti da altri workload che consumano risorse di CPU, RAM, rete e storage.

Configurazione minima del cluster
Figura 2.2: Configurazione minima del cluster

2.3.2 Configurazione del cluster di produzione consigliata

Con la crescita del cluster, si consiglia di ricollocare i Ceph Monitor, i Metadata Server e i gateway per separare i nodi e ottenere una maggiore tolleranza agli errori.

  • Sette nodi Storage oggetto

    • Nessun singolo nodo eccede ~15% dello storage totale.

    • La capacità complessiva del cluster deve essere ridimensionata per fare in modo che, anche nel caso di mancata disponibilità di un nodo, la capacità complessiva in uso (inclusa la ridondanza) non superi l'80%.

    • Ethernet da 25 Gb o superiore, con associazione per la rete pubblica esterna e di cluster interna.

    • 56+ OSD per cluster di storage.

    • Vedere la Sezione 2.4.1, «Requisiti minimi» per ulteriori raccomandazioni.

  • Nodi infrastruttura fisica dedicata.

    • Tre nodi Ceph Monitor: 4 GB RAM, processore a 4 core, SSD RAID 1 per disco.

      Vedere la Sezione 2.5, «Nodi monitor» per ulteriori raccomandazioni.

    • Nodi Object Gateway: 32 GB RAM, processore 8 core, SSD RAID 1 per disco.

      Vedere la Sezione 2.6, «Nodi Object Gateway» per ulteriori raccomandazioni.

    • Nodi iSCSI Gateway: 16 GB RAM, processore 8 core, SSD RAID 1 per disco.

      Vedere la Sezione 2.9, «Nodi iSCSI Gateway» per ulteriori raccomandazioni.

    • Nodi Metadata Server (uno attivo/uno hot standby): 32 GB RAM, processore 8 core, SSD RAID 1 per disco.

      Vedere la Sezione 2.7, «Nodi Metadata Server» per ulteriori raccomandazioni.

    • Un nodo admin SES: 4 GB di RAM, processore 4 core, SSD RAID 1 per disco.

2.3.3 Configurazione multipath

Se si desidera utilizzare l'hardware multipath, assicurarsi che LVM visualizzi multipath_component_detection = 1 nella sezione devices del file di configurazione. È possibile verificare questa istruzione tramite il comando lvm config.

In alternativa, assicurarsi che LVM filtri i componenti mpath di un dispositivo tramite la configurazione di filtro LVM. Si tratta di un'impostazione specifica per l'host.

Nota
Nota

Questa procedura non è consigliata e deve essere presa in considerazione soltanto se non è possibile impostare multipath_component_detection = 1.

Per ulteriori informazioni sulla configurazione multipath, vedere https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-multipath.html#sec-multipath-lvm.

2.4 Nodi storage oggetto

2.4.1 Requisiti minimi

  • Le seguenti raccomandazioni sulla CPU si applicano ai dispositivi indipendentemente dall'utilizzo di Ceph:

    • 1 thread CPU da 2 GHz per unità a rotazione.

    • 2 thread CPU da 2 GHz per SSD.

    • 4 thread CPU da 2 GHz per NVMe.

  • Reti 10 GbE (pubbliche/client e interne) separate: 4 da 10 GbE obbligatorie, 2 da 25 GbE consigliate.

  • RAM totale richiesta = numero di OSD x (1 GB + osd_memory_target) + 16 GB

    Per ulteriori dettagli su osd_memory_target, consultare questo riferimento: Book “Guida alle operazioni e all'amministrazione”, Chapter 28 “Configurazione del cluster Ceph”, Section 28.4.1 “Configurazione del ridimensionamento automatico della cache”.

  • Dischi OSD nelle configurazioni JBOD o configurazioni RAID-0 individuali.

  • Il giornale di registrazione OSD può risiedere sul disco OSD.

  • I dischi OSD devono essere utilizzati esclusivamente da SUSE Enterprise Storage.

  • SSD e disco dedicato per il sistema operativo, preferibilmente in una configurazione RAID 1.

  • Allocare almeno altri 4 GB di RAM se questo host OSD ospiterà parte di un pool di cache utilizzato per la suddivisione in livelli della cache.

  • Monitor Ceph, gateway e Metadata Server possono risiedere sui nodi storage oggetto.

  • Per motivi legati alle prestazioni del disco, i nodi OSD sono nodi bare metal. Nessun altro workload deve essere eseguito su un nodo OSD a meno che non si tratti di una configurazione minima di Ceph Monitor e Ceph Manager.

  • SSD per giornale di registrazione con rapporto 6:1 tra giornale SSD e OSD.

Nota
Nota

Assicurarsi che i nodi OSD non dispongano di dispositivi di blocco di rete mappati, come immagini iSCSI o dispositivi di blocco RADOS (RADOS Block Device, RBD).

2.4.2 Dimensioni minime del disco

Vi sono due tipi di spazi su disco necessari per l'esecuzione su OSD: lo spazio per il dispositivo WAL/DB e lo spazio primario per i dati memorizzati. Il valore minimo (e di default) per il dispositivo WAL/DB è 6 GB. Lo spazio minimo per i dati è pari a 5 GB, in quanto a partizioni più piccole di 5 GB viene assegnato automaticamente il peso di 0.

Perciò, sebbene lo spazio minimo su disco per un OSD sia 11 GB, si sconsigliano dischi inferiori a 20 GB, anche per scopi di test.

2.4.3 Dimensioni consigliate per il dispositivo DB e WAL di BlueStore

Suggerimento
Suggerimento: ulteriori informazioni

Per ulteriori informazioni su BlueStore, consultare Sezione 1.4, «BlueStore».

  • Si consiglia di prenotare 4 GB per il dispositivo WAL. Le dimensioni consigliate per il dispositivo DB sono 64 GB per la maggior parte dei workload.

    Importante
    Importante

    Per le distribuzioni a carico elevato, soprattutto in caso di elevato utilizzo di RGW o CephFS, si consigliano volumi di database maggiori. Riservare una parte di capacità (slot) per l'installazione di altro hardware per disporre di ulteriore spazio sul database, se necessario.

  • Se si intende mettere il dispositivo WAL e DB sullo stesso disco, si consiglia di utilizzare una singola partizione per entrambi i dispositivi, invece di avere una partizione separata per ciascuno. Ciò consente a Ceph di utilizzare il dispositivo DB anche per il funzionamento di WAL. La gestione dello spazio del disco è quindi più efficace in quanto Ceph utilizza la partizione DB per WAL solo se serve. Un altro vantaggio è che le probabilità che la partizione WAL si riempia sono molto basse e, quando questa non è utilizzata completamente, il suo spazio non viene sprecato ma utilizzato per le operazioni del dispositivo DB.

    Per condividere il dispositivo DB con WAL, non specificare il dispositivo WAL e specificare solo il dispositivo DB.

    Nel Book “Guida alle operazioni e all'amministrazione”, Chapter 13 “Task operativi”, Section 13.4.3 “Aggiunta di OSD tramite la specifica dei DriveGroups” è possibile trovare ulteriori informazioni su come specificare un layout OSD.

2.4.4 SSD per partizioni WAL/DB

Le unità a stato solido (SSD) non hanno parti in movimento. Ciò riduce il tempo di accesso casuale e la latenza di lettura accelerando il throughput dei dati. Poiché il loro prezzo per 1MB è sensibilmente maggiore rispetto al prezzo dei dischi rigidi classici, le SSD sono adatte solo per storage di piccole dimensioni.

Gli OSD possono avere un significativo miglioramento delle prestazioni grazie alla memorizzazione delle relative partizioni WAL/DB su un disco SSD e dei dati oggetto su un disco rigido separato.

Suggerimento
Suggerimento: condivisione di un disco SSD con più partizioni WAL/DB

Dal momento che le partizioni WAL/DB occupano relativamente poco spazio, è possibile condividere un disco SSD con più partizioni WAL/DB. Tenere presente che con ogni partizione WAL/DB, le prestazioni del disco SSD diminuiscono. Si consiglia di non condividere più di sei partizioni WAL/DB sullo stesso disco SSD e 12 sui dischi NVMe.

2.4.5 Numero massimo di dischi consigliato

Il server può contenere tutti i dischi consentiti. Quando si pianifica il numero di dischi per server, vi sono alcuni elementi da tenere presente:

  • Ampiezza della banda di rete. Più dischi sono presenti in un server, più dati occorre trasferire tramite scheda di rete per le operazioni di scrittura sul disco.

  • Memoria. Viene utilizzata una RAM superiore a 2 GB per la cache BlueStore. Con l'opzione osd_memory_target di default di 4 GB, il sistema dispone di dimensioni iniziali della cache ragionevoli per i supporti a rotazione. Se si utilizzano SSD o NVME, prendere in considerazione di aumentare le dimensioni della cache e l'allocazione della RAM per ogni OSD per ottimizzare le prestazioni.

  • Tolleranza agli errori. In caso di guasto del server completo, più dischi sono presenti, più OSD vengono persi temporaneamente dal cluster. Inoltre, per mantenere in esecuzione le regole di replicazione, occorre copiare tutti i dati dal server guasto negli altri nodi nel cluster.

2.5 Nodi monitor

  • Sono richiesti almeno tre nodi MON. Il numero di monitor deve sempre essere dispari (1+2n).

  • 4 GB di RAM.

  • Processore con quattro core logici.

  • Si consiglia un'unità SSD o altro tipo di storage sufficientemente veloce per i monitor, in particolare per il percorso /var/lib/ceph su ogni nodo monitor, in quanto il quorum potrebbe essere instabile con alte latenze del disco. Si consigliano due dischi in configurazione RAID 1 per ridondanza. Si consiglia di utilizzare dischi separati o almeno partizioni del disco separate per i processi monitor per proteggere lo spazio su disco disponibile del monitor da elementi come file di registro che diventano troppo grandi.

  • Deve essere presente solo un processo monitor per nodo.

  • È possibile combinare nodi OSD, MON oppure Object Gateway solo se sono disponibili sufficienti risorse hardware. Ciò significa che si devono sommare i requisiti per tutti i servizi.

  • Due interfacce di rete associate a più switch.

2.6 Nodi Object Gateway

I nodi Object Gateway devono disporre di almeno sei core CPU e 32 GB di RAM. Se nello stesso computer sono co-ubicati altri processi, occorre sommare i loro requisiti.

2.7 Nodi Metadata Server

Il corretto dimensionamento dei nodi Metadata Server dipende dal caso d'uso specifico. In genere, il numero di file aperti che deve gestire il Metadata Server è proporzionale alla quantità di CPU e RAM richiesta. Di seguito sono riportati i requisiti minimi:

  • 4 GB di RAM per ogni daemon del server di metadati.

  • Interfaccia di rete vincolata.

  • CPU da 2,5 GHz con almeno 2 core.

2.8 Nodo admin

Richiesti almeno 4 GB di RAM e una CPU quad-core. Ciò include l'esecuzione del Salt Master sul nodo admin. Per i grandi cluster con centinaia di nodi, consigliati 6 GB di RAM.

2.9 Nodi iSCSI Gateway

I nodi iSCSI Gateway devono disporre di almeno sei core CPU e 16 GB di RAM.

2.10 SES e altri prodotti SUSE

Questa sezione contiene informazioni importanti sull'integrazione di SES con altri prodotti SUSE.

2.10.1 SUSE Manager

SUSE Manager e SUSE Enterprise Storage non sono integrati, perciò SUSE Manager non è in grado attualmente di gestire un cluster SES.

2.11 Limitazioni di denominazione

Ceph non supporta in genere i caratteri non ASCII nei file di configurazione, nei nomi di pool, nomi utente e così via. Quando si configura un cluster Ceph, si consiglia di utilizzare solo caratteri alfanumerici semplici (A-Z, a-z, 0-9) e punteggiatura minima (".", "-", "_") in tutti i nomi di configurazione/oggetto Ceph.

2.12 Condivisione di un server da parte di OSD e monitor

Sebbene sia tecnicamente possibile eseguire OSD e MON sullo stesso server in ambienti di test, si consiglia la presenza di un server separato per ogni nodo monitor in produzione. Il motivo principale sono le prestazioni: più OSD si trovano nel cluster, più operazioni di I/O devono essere eseguite dai nodi MON. Quando un server è condiviso tra un nodo MON e OSD, le operazioni di I/O OSD sono un fattore limitante per il nodo monitor.

Un'altra considerazione è relativa alla condivisione dei dischi tra un OSD, un nodo MON e il sistema operativo sul server. La risposta è semplice: se possibile, dedicare un disco separato all'OSD e un server separato a un nodo monitor.

Sebbene Ceph supporti OSD basati su directory, un OSD deve sempre avere un disco dedicato diverso da quello per il sistema operativo.

Suggerimento
Suggerimento

Se è davvero necessario eseguire il nodo MON e OSD sullo stesso server, eseguire il MON su un disco separato montando il disco sulla directory /var/lib/ceph/mon per prestazioni leggermente migliori.

3 Configurazione ad elevata disponibilità del nodo admin

Il nodo admin è un nodo del cluster Ceph dove è in esecuzione il servizio Salt Master. Gestisce il resto dei nodi del cluster tramite l'invio di interrogazioni e istruzioni ai rispettivi servizi Salt Minion. Comprende in genere anche altri servizi, ad esempio il dashboard Grafana supportato dal kit di strumenti di monitoraggio Prometheus.

In caso di errore del nodo admin, occorre di solito fornire un nuovo hardware funzionante per il nodo e ripristinare lo stack di configurazione cluster completo da un backup recente. Tale metodo richiede tempo e determina l'indisponibilità del cluster.

Per evitare il tempo di fermo delle prestazioni del cluster Ceph provocati dall'errore del nodo admin, si consiglia di utilizzare il cluster ad elevata disponibilità (High Availability, HA) per il nodo admin Ceph.

3.1 Profilo del cluster ad elevata disponibilità per il nodo admin

Il concetto di un cluster HA prevede che in caso di errore di un nodo del cluster, l'altro nodo subentri automaticamente nel ruolo, compreso il nodo admin virtualizzato. In questo modo, gli altri nodi del cluster Ceph non avvertono l'errore del nodo admin Ceph.

La soluzione HA minima per il nodo admin richiede il seguente hardware:

  • Due server bare metal in grado di eseguire SUSE Linux Enterprise con l'estensione High Availability e virtualizzare il nodo admin.

  • Due o più percorsi di comunicazione di rete ridondanti, ad esempio tramite Network Device Bonding.

  • Storage condiviso per ospitare le immagini dei dischi della macchina virtuale del nodo admin. Lo storage condiviso deve essere accessibile da entrambi i server. Può essere ad esempio un'esportazione NFS, una condivisione Samba o una destinazione iSCSI.

Ulteriori dettagli sui requisiti del cluster sono disponibili all'indirizzo https://documentation.suse.com/sle-ha/15-SP2/html/SLE-HA-all/art-sleha-install-quick.html#sec-ha-inst-quick-req.

Cluster ad elevata disponibilità a 2 nodi per il nodo admin
Figura 3.1: Cluster ad elevata disponibilità a 2 nodi per il nodo admin

3.2 Costruzione del cluster ad elevata disponibilità con il nodo admin

La procedura seguente riepiloga i passaggi più importanti di costruzione del cluster HA per virtualizzare il nodo admin. Per i dettagli, consultare i collegamenti indicati.

  1. Configurare un cluster HA di base a 2 nodi con storage condiviso come descritto in https://documentation.suse.com/sle-ha/15-SP2/html/SLE-HA-all/art-sleha-install-quick.html.

  2. Su entrambi i nodi cluster, installare tutti i pacchetti richiesti per eseguire l'ipervisore KVM e il toolkit libvirt come descritto in https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-vt-installation.html#sec-vt-installation-kvm.

  3. Sul primo nodo del cluster, creare una nuova macchina virtuale (VM) KVM utilizzando libvirt come descritto in https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-kvm-inst.html#sec-libvirt-inst-virt-install. Utilizzare lo storage condiviso preconfigurato per memorizzare le immagini del disco della VM.

  4. Al termine della configurazione della VM, esportarne la configurazione su un file XML sullo storage condiviso. Usare la seguente sintassi:

    root # virsh dumpxml VM_NAME > /path/to/shared/vm_name.xml
  5. Creare una risorsa per la VM del nodo admin. Per informazioni generali sulla creazione di risorse HA, consultare https://documentation.suse.com/sle-ha/15-SP2/html/SLE-HA-all/cha-conf-hawk2.html. All'indirizzo http://www.linux-ha.org/wiki/VirtualDomain_%28resource_agent%29 sono disponibili informazioni dettagliate sulla creazione di risorse per una macchina virtuale KVM.

  6. Sul guest VM appena creato, distribuire il nodo admin compresi i servizi aggiuntivi necessari. Seguire la procedura pertinente indicata nella Sezione 5.2, «Distribuzione Salt». Contemporaneamente, distribuire i restanti nodi del cluster Ceph sui server del cluster non HA.

Parte II Distribuzione del cluster Ceph

  • 4 Introduzione e task comuni
  • A partire da SUSE Enterprise Storage 7, i servizi Ceph vengono distribuiti sotto forma di container tramite cephadm in sostituzione dei pacchetti RPM. Ulteriori dettagli sono disponibili nel Capitolo 5, Distribuzione con cephadm.

  • 5 Distribuzione con cephadm
  • SUSE Enterprise Storage 7 utilizza lo strumento basato su Salt ceph-salt per preparare per la distribuzione tramite cephadm il sistema operativo su ogni nodo del cluster partecipante. cephadm distribuisce e gestisce i cluster Ceph connettendosi agli host dal daemon Ceph Manager tramite SSH. cephadm …

4 Introduzione e task comuni

A partire da SUSE Enterprise Storage 7, i servizi Ceph vengono distribuiti sotto forma di container tramite cephadm in sostituzione dei pacchetti RPM. Ulteriori dettagli sono disponibili nel Capitolo 5, Distribuzione con cephadm.

4.1 Lettura delle note di rilascio

Nelle note di rilascio è possibile trovare informazioni aggiuntive sulle modifiche apportate rispetto alla release precedente di SUSE Enterprise Storage. Controllare le note di rilascio per vedere se:

  • l'hardware necessita di considerazioni speciali;

  • i pacchetti software utilizzati hanno subito modifiche significative;

  • è necessario adottare precauzioni speciali per l'installazione.

Le note di rilascio forniscono inoltre informazioni che non si è fatto in tempo a riportare nel manuale. Contengono anche alcune note su problemi noti.

Dopo aver installato il pacchetto release-notes-ses, individuare localmente le note di rilascio nella directory /usr/share/doc/release-notes o online all'indirizzo https://www.suse.com/releasenotes/.

5 Distribuzione con cephadm

SUSE Enterprise Storage 7 utilizza lo strumento basato su Salt ceph-salt per preparare per la distribuzione tramite cephadm il sistema operativo su ogni nodo del cluster partecipante. cephadm distribuisce e gestisce i cluster Ceph connettendosi agli host dal daemon Ceph Manager tramite SSH. cephadm gestisce l'intero ciclo di vita dei cluster Ceph. Come prima cosa, esegue il bootstrap di un cluster di piccole dimensioni su un nodo singolo (un servizio MON e MGR) e usa quindi l'interfaccia di coordinamento per espandere il cluster in modo che includa tutti gli host ed esegua il provisioning di tutti i servizi Ceph. È possibile eseguire questa operazione tramite l'interfaccia riga di comando (CLI) di Ceph o parzialmente tramite il Ceph Dashboard (GUI).

Importante
Importante

Tenere presente che nella documentazione della community Ceph viene utilizzato il comando cephadm bootstrap durante la distribuzione iniziale. Il ceph-salt richiama il comando cephadm bootstrap e non deve essere eseguito direttamente. Le distribuzioni dei cluster Ceph in cui è utilizzato in modo manuale il comando cephadm bootstrap non saranno supportate.

Per distribuire un cluster Ceph tramite cephadm, è necessario completare i task seguenti:

  1. Installare ed eseguire le attività di configurazione di base del sistema operativo sottostante (SUSE Linux Enterprise Server 15 SP2) su tutti i nodi del cluster.

  2. Distribuire l'infrastruttura Salt su tutti i nodi del cluster per eseguire le preparazioni di distribuzione iniziali tramite ceph-salt.

  3. Configurare le proprietà di base del cluster tramite ceph-salt e distribuirlo.

  4. Aggiungere nuovi nodi e ruoli al cluster e distribuire i servizi su questi ultimi tramite cephadm.

5.1 Installazione e configurazione di SUSE Linux Enterprise Server

  1. Installare e registrare SUSE Linux Enterprise Server 15 SP2 su ciascun nodo del cluster. Durante l'installazione di SUSE Enterprise Storage, è necessario eseguire la registrazione poiché l'accesso agli archivi di aggiornamento è obbligatorio. Includere almeno i moduli seguenti:

    • Basesystem Module

    • Server Applications Module

    All'indirizzo https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-install.html è possibile trovare ulteriori dettagli su come installare SUSE Linux Enterprise Server.

  2. Installare l'estensione SUSE Enterprise Storage 7 su ogni nodo del cluster.

    Suggerimento
    Suggerimento: installazione di SUSE Enterprise Storage insieme a SUSE Linux Enterprise Server

    È possibile installare l'estensione SUSE Enterprise Storage 7 separatamente dopo aver installato SUSE Linux Enterprise Server 15 SP2 oppure è possibile aggiungerla durante la procedura di installazione di SUSE Linux Enterprise Server 15 SP2.

    All'indirizzo https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-register-sle.html è possibile trovare ulteriori dettagli su come installare le estensioni.

  3. Configurare le impostazioni di rete compresa la risoluzione del nome DNS corretto su ogni nodo. Per ulteriori informazioni sulla configurazione di una rete, vedere https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-network.html#sec-network-yast. Per ulteriori informazioni sulla configurazione di un server DNS, vedere https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-dns.html.

5.2 Distribuzione Salt

SUSE Enterprise Storage utilizza Salt e ceph-salt per la preparazione iniziale del cluster. Salt consente di configurare ed eseguire contemporaneamente i comandi su più nodi del cluster da un host dedicato denominato Salt Master. Prima della distribuzione Salt, esaminare quanto segue:

  • I Salt Minion sono i nodi controllati da un nodo dedicato denominato Salt Master.

  • Se l'host Salt Master deve fare parte del cluster Ceph, deve eseguire il proprio Salt Minion, anche se non si tratta di un requisito obbligatorio.

    Suggerimento
    Suggerimento: condivisione di più ruoli per server

    È possibile ottenere le prestazioni migliori dal cluster Ceph quando ogni ruolo viene distribuito su un nodo separato. Le installazioni reali, tuttavia, a volte richiedono la condivisione di un nodo per più ruoli. Per evitare problemi di prestazioni e con la procedura di upgrade, non distribuire il ruolo Ceph OSD, del server di metadati o Ceph Monitor sul nodo admin.

  • I Salt Minion devono risolvere correttamente il nome host del Salt Master in rete. Per default, cercano il nome host salt, ma è possibile specificare altri nomi host individuabili in rete nel file /etc/salt/minion.

  1. Installare il salt-master sul nodo Salt Master:

    root@master # zypper in salt-master
  2. Verificare che il servizio salt-master sia abilitato e avviato, se necessario abilitarlo e avviarlo:

    root@master # systemctl enable salt-master.service
    root@master # systemctl start salt-master.service
  3. Se si intende utilizzare il firewall, verificare che il nodo Salt Master abbia le porte 4505 e 4506 aperte per tutti i nodi Salt Minion. Se le porte sono chiuse, è possibile aprirle con il comando yast2 firewall consentendo il servizio salt-master per la zona appropriata. Ad esempio, public.

  4. Installare il pacchetto salt-minion su tutti i nodi minion.

    root@minion > zypper in salt-minion
  5. Modificare /etc/salt/minion e rimuovere i commenti dalla riga seguente:

    #log_level_logfile: warning

    Modificare il livello di log da warning a info.

    Nota
    Nota: log_level_logfile e log_level

    Mentre log_level controlla i messaggi di log che verranno visualizzati sulla schermata, log_level_logfile controlla i messaggi di log che verranno scritti su /var/log/salt/minion.

    Nota
    Nota

    Assicurarsi di impostare il livello di log su tutti i nodi del cluster (minion).

  6. Assicurarsi che il nome di dominio completo di ogni nodo possa essere risolto in un indirizzo IP sulla rete di cluster pubblica da tutti gli altri nodi.

  7. Configurare tutti i minion sulla connessione al master. Se il Salt Master non è raggiungibile dal nome host salt, modificare il file /etc/salt/minion oppure creare un nuovo file /etc/salt/minion.d/master.conf con il contenuto seguente:

    master: host_name_of_salt_master

    Se sono state apportate modifiche ai file di configurazione menzionati sopra, riavviare il servizio Salt su tutti i Salt Minion correlati:

    root@minion > systemctl restart salt-minion.service
  8. Verificare che il servizio salt-minion sia abilitato e avviato su tutti i nodi. Abilitarlo e avviarlo se necessario:

    root # systemctl enable salt-minion.service
    root # systemctl start salt-minion.service
  9. Verificare ogni impronta digitale del Salt Minion e accettare tutte le chiavi salt sul Salt Master se le impronte digitali corrispondono.

    Nota
    Nota

    Se l'impronta digitale del Salt Minion viene restituita vuota, assicurarsi che il Salt Minion disponga di una configurazione Salt Master e che sia in grado di comunicare con quest'ultimo.

    Visualizzare l'impronta di ogni minion:

    root@minion > salt-call --local key.finger
    local:
    3f:a3:2f:3f:b4:d3:d9:24:49:ca:6b:2c:e1:6c:3f:c3:83:37:f0:aa:87:42:e8:ff...

    Dopo aver raccolto le impronte digitali di tutti i Salt Minion, elencare le impronte di tutte le chiavi minion non accettate sul Salt Master:

    root@master # salt-key -F
    [...]
    Unaccepted Keys:
    minion1:
    3f:a3:2f:3f:b4:d3:d9:24:49:ca:6b:2c:e1:6c:3f:c3:83:37:f0:aa:87:42:e8:ff...

    Se le impronte digitali dei minion corrispondono, accettarle:

    root@master # salt-key --accept-all
  10. Verificare che le chiavi siano state accettate:

    root@master # salt-key --list-all
  11. Verificare se tutti i Salt Minion rispondono:

    root@master # salt-run manage.status

5.3 Distribuzione del cluster Ceph

Questa sezione illustra il processo di distribuzione di un cluster Ceph di base. Leggere con attenzione le sottosezioni seguenti ed eseguire i comandi inclusi nell'ordine dato.

5.3.1 Installazione di ceph-salt

ceph-salt fornisce strumenti per la distribuzione dei cluster Ceph gestiti da cephadm. ceph-salt utilizza l'infrastruttura Salt per la gestione del sistema operativo, ad esempio gli aggiornamenti del software o la sincronizzazione dell'orario, e per la definizione dei ruoli dei Salt Minion.

Sul Salt master, installare il pacchetto ceph-salt :

root@master # zypper install ceph-salt

Il comando riportato sopra ha installato ceph-salt-formula come una dipendenza che ha modificato la configurazione del Salt Master tramite l'inserimento di file aggiuntivi nella directory /etc/salt/master.d. Per applicare le modifiche, riavviare salt-master.service e sincronizzare i moduli Salt:

root@master # systemctl restart salt-master.service
root@master # salt \* saltutil.sync_all

5.3.2 Configurazione delle proprietà del cluster

Utilizzare il comando ceph-salt config per configurare le proprietà di base del cluster.

Importante
Importante

Il file /etc/ceph/ceph.conf è gestito da cephadm e gli utenti non devono modificarlo. Impostare i parametri di configurazione Ceph con il nuovo comando ceph config. Consultare Book “Guida alle operazioni e all'amministrazione”, Chapter 28 “Configurazione del cluster Ceph”, Section 28.2 “Database di configurazione” per maggiori informazioni.

5.3.2.1 Utilizzo della shell ceph-salt

Se si esegue ceph-salt config senza alcun percorso o sottocomando, viene creata una shell ceph-salt interattiva. La shell è utile se è necessario configurare contemporaneamente più proprietà o se non si desidera digitare l'intera sintassi del comando.

root@master # ceph-salt config
/> ls
o- / ............................................................... [...]
  o- ceph_cluster .................................................. [...]
  | o- minions .............................................. [no minions]
  | o- roles ....................................................... [...]
  |   o- admin .............................................. [no minions]
  |   o- bootstrap ........................................... [no minion]
  |   o- cephadm ............................................ [no minions]
  |   o- tuned ..................................................... [...]
  |     o- latency .......................................... [no minions]
  |     o- throughput ....................................... [no minions]
  o- cephadm_bootstrap ............................................. [...]
  | o- advanced .................................................... [...]
  | o- ceph_conf ................................................... [...]
  | o- ceph_image_path .................................. [ no image path]
  | o- dashboard ................................................... [...]
  | | o- force_password_update ................................. [enabled]
  | | o- password ................................................ [admin]
  | | o- ssl_certificate ....................................... [not set]
  | | o- ssl_certificate_key ................................... [not set]
  | | o- username ................................................ [admin]
  | o- mon_ip .................................................. [not set]
  o- containers .................................................... [...]
  | o- registries_conf ......................................... [enabled]
  | | o- registries .............................................. [empty]
  | o- registry_auth ............................................... [...]
  |   o- password .............................................. [not set]
  |   o- registry .............................................. [not set]
  |   o- username .............................................. [not set]
  o- ssh ............................................... [no key pair set]
  | o- private_key .................................. [no private key set]
  | o- public_key .................................... [no public key set]
  o- time_server ........................... [enabled, no server host set]
    o- external_servers .......................................... [empty]
    o- servers ................................................... [empty]
    o- subnet .................................................. [not set]

Come è possibile vedere dall'output del comando ls di ceph-salt, la configurazione del cluster presenta una struttura ad albero. Sono disponibili due opzioni per configurare una proprietà specifica del cluster nella shell ceph-salt:

  • Eseguire il comando dalla posizione corrente e immettere il percorso assoluto alla proprietà come primo argomento:

    /> /cephadm_bootstrap/dashboard ls
    o- dashboard ....................................................... [...]
      o- force_password_update ..................................... [enabled]
      o- password .................................................... [admin]
      o- ssl_certificate ........................................... [not set]
      o- ssl_certificate_key ....................................... [not set]
      o- username .................................................... [admin]
    /> /cephadm_bootstrap/dashboard/username set ceph-admin
    Value set.
  • Modificare inserendo il percorso di cui occorre configurare la proprietà ed eseguire il comando:

    /> cd /cephadm_bootstrap/dashboard/
    /ceph_cluster/minions> ls
    o- dashboard ....................................................... [...]
      o- force_password_update ..................................... [enabled]
      o- password .................................................... [admin]
      o- ssl_certificate ........................................... [not set]
      o- ssl_certificate_key ....................................... [not set]
      o- username ................................................[ceph-admin]
Suggerimento
Suggerimento: completamento automatico degli snippet di configurazione

Dalla shell ceph-salt, è possibile utilizzare la funzione di completamento automatico in modo simile a come la si utilizza in una normale shell Linux (Bash). Tale funzione consente di completare i percorsi di configurazione, i sottocomandi o i nomi dei Salt Minion. Durante il completamento automatico di un percorso di configurazione, sono disponibili due opzioni:

  • Per fare in modo che la shell termini un percorso relativo sulla posizione corrente, premere due volte il tasto TAB →|.

  • Per fare in modo che la shell termini un percorso assoluto, immettere / e premere due volte il tasto TAB →|.

Suggerimento
Suggerimento: navigazione con i tasti del cursore

Se si immette cd dalla shell ceph-salt senza specificare alcun percorso, il comando stamperà una struttura ad albero della configurazione del cluster con la riga dell'attuale percorso attivo. È possibile utilizzare i tasti su è giù del cursore per spostarsi tra le singole righe. Dopo aver confermato con Enter, il percorso di configurazione verrà modificato sull'ultimo percorso attivo.

Importante
Importante: convenzione

Per assicurare la coerenza della documentazione, viene utilizzata la sintassi di un singolo comando senza immettere la shell ceph-salt. Ad esempio, è possibile elencare l'albero di configurazione del cluster con il comando seguente:

root@master # ceph-salt config ls

5.3.2.2 Aggiunta di Salt Minion

Includere nella configurazione del cluster Ceph tutti o un sottoinsieme di Salt Minion distribuiti e accettati nella Sezione 5.2, «Distribuzione Salt». È possibile specificare i Salt Minion utilizzando il loro nome intero oppure le espressioni glob "*" e "?" per includere contemporaneamente più Salt Minion. Utilizzare il sottocomando add nel percorso /ceph_cluster/minions. Il comando seguente include tutti i Salt Minion accettati:

root@master # ceph-salt config /ceph_cluster/minions add '*'

Verificare che i Salt Minion specificati siano stati aggiunti:

root@master # ceph-salt config /ceph_cluster/minions ls
o- minions ................................................. [Minions: 5]
  o- ses-master.example.com .................................. [no roles]
  o- ses-min1.example.com .................................... [no roles]
  o- ses-min2.example.com .................................... [no roles]
  o- ses-min3.example.com .................................... [no roles]
  o- ses-min4.example.com .................................... [no roles]

5.3.2.3 Specifica dei Salt Minion gestiti da cephadm

Specificare i nodi che apparterranno al cluster Ceph e che saranno gestiti da cephadm. Includere tutti i nodi che eseguiranno i servizi Ceph, oltre al nodo admin:

root@master # ceph-salt config /ceph_cluster/roles/cephadm add '*'

5.3.2.4 Specifica del nodo admin

Il nodo admin è il nodo in cui sono installati il file di configurazione ceph.conf e il portachiavi di amministrazione Ceph. In genere, i comandi correlati a Ceph vengono eseguiti sul nodo admin.

Suggerimento
Suggerimento: Salt Master e nodo admin sullo stesso nodo

Negli ambienti eterogenei, dove tutti o quasi tutti gli host appartengono a SUSE Enterprise Storage, si consiglia di posizionare il nodo admin sullo stesso host del Salt Master.

Negli ambienti eterogenei dove un'infrastruttura Salt ospita più di un cluster, ad esempio SUSE Enterprise Storage insieme a SUSE Manager, non posizionare il nodo admin sullo stesso host del Salt Master.

Per specificare il nodo admin, eseguire il comando seguente:

root@master # ceph-salt config /ceph_cluster/roles/admin add ses-master.example.com
1 minion added.
root@master # ceph-salt config /ceph_cluster/roles/admin ls
o- admin ................................................... [Minions: 1]
  o- ses-master.example.com ...................... [Other roles: cephadm]
Suggerimento
Suggerimento: installazione di ceph.conf e del portachiavi di amministrazione su più nodi

È possibile installare il file di configurazione e il portachiavi di amministrazione Ceph su più nodi, se richiesto dalla distribuzione. Per motivi di sicurezza, evitare di installarli su tutti i nodi del cluster.

5.3.2.5 Specifica del primo nodo MON/MGR

È necessario specificare quale Salt Minion del cluster eseguirà il bootstrap del cluster. Questo minion diventerà il primo a eseguire i servizi Ceph Monitor e Ceph Manager.

root@master # ceph-salt config /ceph_cluster/roles/bootstrap set ses-min1.example.com
Value set.
root@master # ceph-salt config /ceph_cluster/roles/bootstrap ls
o- bootstrap ..................................... [ses-min1.example.com]

Inoltre, è necessario specificare l'indirizzo IP del MON di bootstrap sulla rete pubblica per assicurarsi che il parametro public_network sia impostato correttamente, ad esempio:

root@master # ceph-salt config /cephadm_bootstrap/mon_ip set 192.168.10.20

5.3.2.6 Specifica dei profili ottimizzati

È necessario specificare quali minion del cluster dispongono di profili ottimizzati attivamente. A questo scopo, aggiungere questi ruoli esplicitamente con i comandi seguenti:

Nota
Nota

Un minion non può ricoprire sia il ruolo latency che il ruolo throughput.

root@master # ceph-salt config /ceph_cluster/roles/tuned/latency add ses-min1.example.com
Adding ses-min1.example.com...
1 minion added.
root@master # ceph-salt config /ceph_cluster/roles/tuned/throughput add ses-min2.example.com
Adding ses-min2.example.com...
1 minion added.

5.3.2.7 Generazione di una coppia di chiavi SSH

cephadm utilizza il protocollo SSH per comunicare con i nodi del cluster. L'account utente denominato cephadm viene creato automaticamente e utilizzato per la comunicazione SSH.

È necessario generare la parte privata e pubblica della coppia di chiavi SSH:

root@master # ceph-salt config /ssh generate
Key pair generated.
root@master # ceph-salt config /ssh ls
o- ssh .................................................. [Key Pair set]
  o- private_key ..... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]
  o- public_key ...... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]

5.3.2.8 Configurazione del server dell'orario

L'orario di tutti i nodi del cluster deve essere sincronizzato con un'origine dell'orario affidabile. Sono previsti diversi scenari di approccio alla sincronizzazione dell'orario:

  • Se tutti i nodi del cluster sono già configurati sulla sincronizzazione dell'orario tramite un servizio NTP preferito, disabilitare del tutto la gestione del server dell'orario:

    root@master # ceph-salt config /time_server disable
  • Se il sito dispone già di un'origine dell'orario singola, specificare il nome host di tale origine:

     root@master # ceph-salt config /time_server/servers add time-server.example.com
  • In alternativa, ceph-salt è in grado di configurare uno dei Salt Minion nel ruolo di server dell'orario per il resto del cluster. In questi casi, si parla di "server dell'orario interno". In questo scenario, ceph-salt configurerà il server dell'orario interno (che deve essere uno dei Salt Minion) sulla sincronizzazione del suo orario con un server dell'orario esterno, come pool.ntp.org, e configurerà tutti gli altri minion per fare in modo che ricavino il proprio orario dal server dell'orario interno. È possibile eseguire questa operazione come segue:

    root@master # ceph-salt config /time_server/servers add ses-master.example.com
    root@master # ceph-salt config /time_server/external_servers add pool.ntp.org

    L'opzione /time_server/subnet specifica la sottorete da cui i client NTP possono accedere al server NTP. Questa opzione è impostata automaticamente se si specifica /time_server/servers. Se è necessario modificarla o specificarla manualmente, eseguire:

    root@master # ceph-salt config /time_server/subnet set 10.20.6.0/24

Verificare le impostazioni del server dell'orario:

root@master # ceph-salt config /time_server ls
o- time_server ................................................ [enabled]
  o- external_servers ............................................... [1]
  | o- pool.ntp.org ............................................... [...]
  o- servers ........................................................ [1]
  | o- ses-master.example.com ..................................... [...]
  o- subnet .............................................. [10.20.6.0/24]

All'indirizzo https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-ntp.html#sec-ntp-yast sono disponibili ulteriori informazioni sulla configurazione della sincronizzazione dell'orario.

5.3.2.9 Configurazione delle credenziali di login del Ceph Dashboard

Il Ceph Dashboard sarà disponibile in seguito alla distribuzione del cluster di base. Per accedervi, è necessario impostare un nome utente e una password validi, ad esempio:

root@master # ceph-salt config /cephadm_bootstrap/dashboard/username set admin
root@master # ceph-salt config /cephadm_bootstrap/dashboard/password set PWD
Suggerimento
Suggerimento: forzatura dell'aggiornamento della password

Per default, il primo utente del dashboard sarà forzato a modificare la password al primo login al dashboard. Per disabilitare questa funzione, eseguire il comando seguente:

root@master # ceph-salt config /cephadm_bootstrap/dashboard/force_password_update disable

5.3.2.10 Configurazione del percorso alle immagini del container

cephadm deve conoscere un percorso URI valido alle immagini del container, che verrà utilizzato durante il passaggio di distribuzione. Verificare se il percorso di default è impostato:

root@master # ceph-salt config /cephadm_bootstrap/ceph_image_path ls

Se il percorso di default non è impostato o se la distribuzione richiede un percorso specifico, aggiungerlo come indicato di seguito:

root@master # ceph-salt config /cephadm_bootstrap/ceph_image_path set registry.suse.com/ses/7/ceph/ceph
Nota
Nota

Per lo stack di monitoraggio, sono necessarie ulteriori immagini del container. Per le distribuzioni Air-gap o per quelle eseguite da un registro locale, è consigliabile recuperare queste immagini già durante questa fase per preparare il registro locale di conseguenza.

Tenere presente che queste immagini del container non saranno utilizzate da ceph-salt per la distribuzione. Si tratta di una preparazione a un passaggio successivo in cui cephadm verrà utilizzato per la distribuzione o la migrazione dei componenti di monitoraggio.

Per ulteriori informazioni sulle immagini utilizzate dallo stack di monitoraggio e sulla loro personalizzazione, visitare la pagina Book “Guida alle operazioni e all'amministrazione”, Chapter 16 “Monitoraggio e creazione di avvisi”, Section 16.1 “Configurazione di immagini personalizzate o locali”.

5.3.2.11 Configurazione del registro del container

Facoltativamente, è possibile impostare un registro del container locale che fungerà da copia speculare del registro registry.suse.com. Ricordare che sarà necessario ripetere la sincronizzazione del registro locale ogni volta che saranno disponibili nuovi container aggiornati in registry.suse.com.

La creazione di un registro locale è utile negli scenari seguenti:

  • Sono presenti molti nodi del cluster e si desidera risparmiare tempo di download e larghezza di banda tramite la creazione di una copia speculare locale delle immagini del container.

  • Il cluster non dispone dell'accesso al registro online (distribuzione Air-gap) e si necessita di una copia speculare locale da cui eseguire il pull delle immagini del container.

  • Se il cluster non riesce ad accedere ai registri remoti tramite un collegamento sicuro a causa di problemi di configurazione o di rete, è necessario disporre di un registro locale non cifrato.

Importante
Importante

Per distribuire le PTF (Program Temporary Fixes) su un sistema supportato, è necessario distribuire un registro del container locale.

Per configurare un URL del registro locale insieme alle credenziali di accesso, procedere come segue:

  1. Configurare l'URL del registro locale:

    cephuser@adm > ceph-salt config /containers/registry_auth/registry set REGISTRY_URL
  2. Configurare il nome utente e la password per accedere al registro locale:

    cephuser@adm > ceph-salt config /containers/registry_auth/username set REGISTRY_USERNAME
    cephuser@adm > ceph-salt config /containers/registry_auth/password set REGISTRY_PASSWORD
  3. Eseguire ceph-salt apply per aggiornare il Salt Pillar su tutti i minion.

Suggerimento
Suggerimento: cache del registro

Per evitare di ripetere la sincronizzazione del registro locale quando sono presenti nuovi container aggiornati, è possibile configurare una cache del registro.

I metodi di sviluppo e rilascio delle applicazioni cloud-native richiedono un registro e un'istanza CI/CD (Continuous Integration/Delivery) per lo sviluppo e la produzione delle immagini del container. In questo caso, è possibile utilizzare un registro privato.

5.3.2.12 Abilitazione della cifratura in esecuzione dei dati (msgr2)

Il protocollo Messenger v2 (MSGR2) è il protocollo cablato di Ceph. Fornisce una modalità di sicurezza che cifra tutti i dati in transito sulla rete, l'incapsulamento dei payload di autenticazione e l'abilitazione dell'integrazione futura delle nuove modalità di autenticazione (come Kerberos).

Importante
Importante

msgr2 non è attualmente supportato dai client Ceph del kernel Linux, come CephFS e il dispositivo di blocco RADOS (RADOS Block Device, RBD).

I daemon Ceph possono eseguire l'associazione a più porte, consentendo ai client Ceph esistenti e ai nuovi client abilitati per v2 di connettersi allo stesso cluster. Per default, i MON eseguono adesso l'associazione alla nuova porta 3300 con assegnazione IANA (CE4h o 0xCE4) per il nuovo protocollo v2, oltre all'associazione alla precedente porta 6789 di default per il protocollo v1 legacy.

Il protocollo v2 (MSGR2) supporta due modalità di connessione:

crc mode

Un'autenticazione iniziale sicura quando viene stabilita la connessione e un controllo dell'integrità CRC32.

secure mode

Un'autenticazione iniziale sicura quando viene stabilita la connessione e una cifratura completa di tutto il traffico post-autenticazione, incluso un controllo dell'integrità crittografico.

Per la maggior parte delle connessioni, sono disponibili opzioni per controllare le modalità da utilizzare:

ms_cluster_mode

La modalità di connessione (o le modalità consentite) utilizzata per la comunicazione interna al cluster tra i daemon Ceph. Se sono elencate più modalità, sono preferite quelle nelle prime posizioni dell'elenco.

ms_service_mode

Un elenco delle modalità consentite che i client possono utilizzare durante la connessione al cluster.

ms_client_mode

Un elenco di modalità di connessione, in ordine di preferenza, che i client possono utilizzare (o consentire) durante la comunicazione con un cluster Ceph.

È presente un insieme di opzioni parallele che si applica specificamente ai monitor e che consente agli amministratori di impostare requisiti diversi (in genere più sicuri) per la comunicazione con i monitor.

ms_mon_cluster_mode

La modalità di connessione (o le modalità consentite) da utilizzare tra i monitor.

ms_mon_service_mode

Un elenco delle modalità consentite che i client o altri daemon Ceph possono utilizzare durante la connessione ai monitor.

ms_mon_client_mode

Un elenco delle modalità di connessione, in ordine di preferenza, che i client o i daemon diversi dai monitor possono utilizzare durante la connessione ai monitor.

Per abilitare la modalità di cifratura MSGR2 durante la distribuzione, è necessario aggiungere delle opzioni di configurazione alla configurazione ceph-salt prima di eseguire ceph-salt apply.

Per utilizzare la modalità secure, eseguire i comandi seguenti.

Aggiungere la sezione globale a ceph_conf nello strumento di configurazione ceph-salt:

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf add global

Impostare le opzioni seguenti:

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_cluster_mode "secure crc"
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_service_mode "secure crc"
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_client_mode "secure crc"
Nota
Nota

Assicurarsi che secure preceda crc.

Per forzare la modalità secure, eseguire i comandi seguenti:

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_cluster_mode secure
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_service_mode secure
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_client_mode secure
Suggerimento
Suggerimento: aggiornamento delle impostazioni

Se si desidera modificare le impostazioni riportate sopra, impostare le modifiche alla configurazione nell'archivio di configurazione del monitor. A questo scopo, utilizzare il comando ceph config set.

root@master # ceph config set global CONNECTION_OPTION CONNECTION_MODE [--force]

Esempio:

root@master # ceph config set global ms_cluster_mode "secure crc"

Se si desidera selezionare il valore attuale, incluso quello di default, eseguire il comando seguente:

root@master # ceph config get CEPH_COMPONENT CONNECTION_OPTION

Ad esempio, per attivare la ms_cluster_mode per gli OSD, eseguire:

root@master # ceph config get osd ms_cluster_mode

5.3.2.13 Configurazione della rete di cluster

Se si esegue una rete di cluster separata, potrebbe essere necessario impostare l'indirizzo IP della rete di cluster seguito dalla porzione della maschera di sottorete dopo il simbolo della barra, ad esempio 192.168.10.22/24.

Eseguire i comandi seguenti per abilitare cluster_network:

root@master # ceph-salt config /cephadm_bootstrap/ceph_conf add global
root@master # ceph-salt config /cephadm_bootstrap/ceph_conf/global set cluster_network NETWORK_ADDR

5.3.2.14 Verifica della configurazione del cluster

La configurazione minima del cluster è stata completata. Analizzarla per individuare errori evidenti:

root@master # ceph-salt config ls
o- / ............................................................... [...]
  o- ceph_cluster .................................................. [...]
  | o- minions .............................................. [Minions: 5]
  | | o- ses-master.example.com .................................. [admin]
  | | o- ses-min1.example.com ......................... [bootstrap, admin]
  | | o- ses-min2.example.com ................................. [no roles]
  | | o- ses-min3.example.com ................................. [no roles]
  | | o- ses-min4.example.com ................................. [no roles]
  | o- roles ....................................................... [...]
  |   o- admin .............................................. [Minions: 2]
  |   | o- ses-master.example.com ....................... [no other roles]
  |   | o- ses-min1.example.com ................. [other roles: bootstrap]
  |   o- bootstrap ................................ [ses-min1.example.com]
  |   o- cephadm ............................................ [Minions: 5]
  |   o- tuned ..................................................... [...]
  |     o- latency .......................................... [no minions]
  |     o- throughput ....................................... [no minions]
  o- cephadm_bootstrap ............................................. [...]
  | o- advanced .................................................... [...]
  | o- ceph_conf ................................................... [...]
  | o- ceph_image_path ............... [registry.suse.com/ses/7/ceph/ceph]
  | o- dashboard ................................................... [...]
  |   o- force_password_update ................................. [enabled]
  |   o- password ................................... [randomly generated]
  |   o- username ................................................ [admin]
  | o- mon_ip ............................................ [192.168.10.20]
  o- containers .................................................... [...]
  | o- registries_conf ......................................... [enabled]
  | | o- registries .............................................. [empty]
  | o- registry_auth ............................................... [...]
  |   o- password .............................................. [not set]
  |   o- registry .............................................. [not set]
  |   o- username .............................................. [not set]
  o- ssh .................................................. [Key Pair set]
  | o- private_key ..... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]
  | o- public_key ...... [53:b1:eb:65:d2:3a:ff:51:6c:e2:1b:ca:84:8e:0e:83]
  o- time_server ............................................... [enabled]
    o- external_servers .............................................. [1]
    | o- 0.pt.pool.ntp.org ......................................... [...]
    o- servers ....................................................... [1]
    | o- ses-master.example.com .................................... [...]
    o- subnet ............................................. [10.20.6.0/24]
Suggerimento
Suggerimento: stato della configurazione del cluster

È possibile verificare la validità della configurazione del cluster eseguendo il comando seguente:

root@master # ceph-salt status
cluster: 5 minions, 0 hosts managed by cephadm
config: OK

5.3.2.15 Esportazione delle configurazioni del cluster

Dopo aver configurato il cluster di base e averne verificato la validità della configurazione, è consigliabile esportare tale configurazione in un file:

root@master # ceph-salt export > cluster.json
Avvertimento
Avvertimento

L'output dell'esportazione ceph-salt export include la chiave privata SSH. In caso di dubbi sulle implicazioni di sicurezza, non eseguire questo comando senza le appropriate precauzioni.

Se si dovesse interrompere la configurazione del cluster e fosse necessario ripristinarla a uno stato di backup precedente, eseguire:

root@master # ceph-salt import cluster.json

5.3.3 Aggiornamento dei nodi e bootstrap del cluster minimo

Prima di distribuire il cluster, aggiornare tutti i pacchetti software su tutti i nodi:

root@master # ceph-salt update

Se durante l'aggiornamento un nodo restituisce il messaggio che informa che è necessario eseguire il riavvio, vuol dire che i pacchetti importanti del sistema operativo (come il kernel) sono stati aggiornati a una versione più recente ed è necessario riavviare il nodo per applicare le modifiche.

Per riavviare tutti i nodi pertinenti, aggiungere l'opzione --reboot

root@master # ceph-salt update --reboot

Oppure, riavviarli in un passaggio separato:

root@master # ceph-salt reboot
Importante
Importante

Il Salt Master non viene mai riavviato dai comandi ceph-salt update --reboot o ceph-salt reboot. Se è necessario riavviare il Salt Master, occorre procedere manualmente.

In seguito all'aggiornamento dei nodi, eseguire il bootstrap del cluster minimo:

root@master # ceph-salt apply
Nota
Nota

Al termine del bootstrap, sul cluster saranno presenti un Ceph Monitor e un Ceph Manager.

Il comando riportato sopra consentirà di aprire un'interfaccia utente interattiva in cui è mostrato l'avanzamento di ogni minion.

Distribuzione di un cluster minimo
Figura 5.1: Distribuzione di un cluster minimo
Suggerimento
Suggerimento: modalità non interattiva

Se è necessario applicare la configurazione da uno script, è disponibile anche una modalità di distribuzione non interattiva, utile anche quando il cluster viene distribuito da un computer remoto, per evitare le distrazioni causate dall'aggiornamento continuo delle informazioni di avanzamento sulla schermata online:

root@master # ceph-salt apply --non-interactive

5.3.4 Revisione dei passaggi finali

Al termine dell'esecuzione del comando ceph-salt apply, dovrebbe essere presente un Ceph Monitor e un Ceph Manager. Dovrebbe essere possibile eseguire correttamente il comando ceph status su uno dei minion a cui è stato assegnato il ruolo admin come root o utente cephadm tramite sudo.

I passaggi successivi riguardano l'uso di cephadm per la distribuzione di Ceph Monitor, Ceph Manager, OSD, stack di monitoraggio e gateway aggiuntivi.

Prima di continuare, rivedere le nuove impostazioni di rete del cluster. A questo punto, l'impostazione public_network è stata popolata in base ai valori immessi per /cephadm_bootstrap/mon_ip nella configurazione ceph-salt. Tuttavia, questa impostazione è stata applicata soltanto a Ceph Monitor. È possibile rivederla con il comando seguente:

root@master # ceph config get mon public_network

Si tratta della configurazione minima richiesta per il funzionamento di Ceph, ma si consiglia di configurare l'impostazione public_network come global, ovvero di applicarla a tutti i tipi di daemon Ceph e non soltanto ai MON:

root@master # ceph config set global public_network "$(ceph config get mon public_network)"
Nota
Nota

Questo passaggio non è obbligatorio. Tuttavia, se si sceglie di non utilizzare questa impostazione, i Ceph OSD e altri daemon (ad eccezione di Ceph Monitor) resteranno in ascolto su tutti gli indirizzi.

Se si desidera che gli OSD comunichino tra di loro su una rete completamente separata, eseguire il comando seguente:

root@master # ceph config set global cluster_network "cluster_network_in_cidr_notation"

Eseguendo questo comando, gli OSD creati nella distribuzione utilizzeranno fin dall'inizio la rete di cluster designata.

Se sono stati impostati nodi dense per il cluster (più di 62 OSD per host), assicurarsi di assegnare un numero sufficiente di porte ai Ceph OSD. L'intervallo di default (6800-7300) attualmente non consente più di 62 OSD per host. Per un cluster con nodi dense, regolare l'impostazione ms_bind_port_max su un valore adeguato. Ogni OSD consumerà otto porte aggiuntive. Ad esempio, per un host impostato sull'esecuzione di 96 OSD, saranno necessarie 768 porte. L'impostazione ms_bind_port_max deve essere configurata su almeno 7568 tramite l'esecuzione del comando seguente:

root@master # ceph config set osd.* ms_bind_port_max 7568

A questo scopo, è necessario regolare le impostazioni del firewall di conseguenza. Consultare Book “Troubleshooting Guide”, Chapter 13 “Hints and tips”, Section 13.7 “Firewall settings for Ceph” per maggiori informazioni.

5.4 Distribuzione di servizi e gateway

In seguito alla distribuzione del cluster Ceph di base, distribuire i servizi di base su altri nodi del cluster. Per rendere i dati del cluster accessibili ai client, distribuire anche dei servizi aggiuntivi.

Attualmente, la distribuzione dei servizi Ceph sulla riga di comando è supportata tramite l'utilità di coordinamento Ceph (sottocomandi ceph orch).

5.4.1 Il comando ceph orch

Il comando ceph orch dell'utilità di coordinamento Ceph, un'interfaccia del modulo cephadm, elenca i componenti del cluster e distribuisce i servizi Ceph sui nuovi nodi del cluster.

5.4.1.1 Visualizzazione dello stato dell'utilità di coordinamento

Il comando seguente mostra lo stato e la modalità correnti dell'utilità di coordinamento Ceph.

cephuser@adm > ceph orch status

5.4.1.2 Elenco di dispositivi, servizi e daemon

Per elencare tutti i dispositivi disco, eseguire quanto riportato di seguito:

cephuser@adm > ceph orch device ls
Hostname   Path      Type  Serial  Size   Health   Ident  Fault  Available
ses-master /dev/vdb  hdd   0d8a... 10.7G  Unknown  N/A    N/A    No
ses-min1   /dev/vdc  hdd   8304... 10.7G  Unknown  N/A    N/A    No
ses-min1   /dev/vdd  hdd   7b81... 10.7G  Unknown  N/A    N/A    No
[...]
Suggerimento
Suggerimento: servizi e daemon

Con il termine generale servizio si indica un servizio Ceph di un tipo specifico, ad esempio Ceph Manager.

Daemon è un'istanza specifica di un servizio, ad esempio un processo mgr.ses-min1.gdlcik in esecuzione su un nodo denominato ses-min1.

Per elencare tutti i servizi noti a cephadm, eseguire:

cephuser@adm > ceph orch ls
NAME  RUNNING  REFRESHED  AGE  PLACEMENT  IMAGE NAME                  IMAGE ID
mgr       1/0  5m ago     -    <no spec>  registry.example.com/[...]  5bf12403d0bd
mon       1/0  5m ago     -    <no spec>  registry.example.com/[...]  5bf12403d0bd
Suggerimento
Suggerimento

Con il parametro facoltativo -–host, è possibile limitare l'elenco ai servizi che si trovano su un determinato nodo, mentre con il parametro facoltativo --service-type, è possibile limitarlo ai servizi di un determinato tipo (i tipi accettabili sono mon, osd, mgr, mds e rgw).

Per elencare tutti i daemon in esecuzione distribuiti da cephadm, eseguire:

cephuser@adm > ceph orch ps
NAME            HOST     STATUS   REFRESHED AGE VERSION    IMAGE ID     CONTAINER ID
mgr.ses-min1.gd ses-min1 running) 8m ago    12d 15.2.0.108 5bf12403d0bd b8104e09814c
mon.ses-min1    ses-min1 running) 8m ago    12d 15.2.0.108 5bf12403d0bd a719e0087369
Suggerimento
Suggerimento

Per interrogare lo stato di un daemon specifico, utilizzare --daemon_type e --daemon_id. Per gli OSD, l'ID corrisponde all'ID numerico dell'OSD: Per MDS, l'ID corrisponde al nome del file system:

cephuser@adm > ceph orch ps --daemon_type osd --daemon_id 0
cephuser@adm > ceph orch ps --daemon_type mds --daemon_id my_cephfs

5.4.2 Specifica del servizio e del posizionamento

Per specificare la distribuzione dei servizi Ceph, si consiglia di creare un file con formattazione YAML contenente la specifica dei servizi da distribuire.

5.4.2.1 Creazione di specifiche del servizio

È possibile creare un file della specifica separato per ogni tipo di servizio, ad esempio:

root@master # cat nfs.yml
service_type: nfs
service_id: EXAMPLE_NFS
placement:
  hosts:
  - ses-min1
  - ses-min2
spec:
  pool: EXAMPLE_POOL
  namespace: EXAMPLE_NAMESPACE

In alternativa, è possibile specificare più tipi di servizi (o tutti) in un file, ad esempio cluster.yml, in cui sono indicati i nodi che eseguiranno i servizi specifici. È necessario separare i singoli tipi di servizi con tre trattini (---):

cephuser@adm > cat cluster.yml
service_type: nfs
service_id: EXAMPLE_NFS
placement:
  hosts:
  - ses-min1
  - ses-min2
spec:
  pool: EXAMPLE_POOL
  namespace: EXAMPLE_NAMESPACE
---
service_type: rgw
service_id: REALM_NAME.ZONE_NAME
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
---
[...]

Le proprietà descritte in precedenza hanno il significato seguente:

service_type

Il tipo di servizio. Può trattarsi di un servizio Ceph (mon, mgr, mds, crash, osd o rbd-mirror), di un gateway (nfs o rgw) o di parte dello stack di monitoraggio (alertmanager, grafana, node-exporter o prometheus).

service_id

Il nome del servizio. Per le specifiche del tipo mon, mgr, alertmanager, grafana, node-exporter e prometheus non è necessaria la proprietà service_id.

placement

Specifica quali nodi eseguiranno il servizio. Per ulteriori dettagli, fare riferimento alla Sezione 5.4.2.2, «Creazione della specifica di posizionamento».

spec

Ulteriore specifica pertinente al tipo di servizio.

Suggerimento
Suggerimento: applicazione di servizi specifici

In genere, i servizi del cluster Ceph dispongono di diverse proprietà specifiche. Per esempi e dettagli delle specifiche dei singoli servizi, fare riferimento alla Sezione 5.4.3, «Distribuzione dei servizi Ceph».

5.4.2.2 Creazione della specifica di posizionamento

Per distribuire i servizi Ceph, cephadm deve sapere su quali nodi agire. Utilizzare la proprietà placement ed elencare i nomi host abbreviati dei nodi a cui si applica il servizio:

cephuser@adm > cat cluster.yml
[...]
placement:
  hosts:
  - host1
  - host2
  - host3
[...]

5.4.2.3 Applicazione della specifica del cluster

Dopo aver creato un file cluster.yml completo con le specifiche di tutti i servizi e il relativo posizionamento, è possibile applicare il cluster eseguendo il comando seguente:

cephuser@adm > ceph orch apply -i cluster.yml

Per visualizzare lo stato del cluster, eseguire il comando ceph orch status. Per ulteriori informazioni, vedere Sezione 5.4.1.1, «Visualizzazione dello stato dell'utilità di coordinamento».

5.4.2.4 Esportazione della specifica di un cluster in esecuzione

Durante il funzionamento, la configurazione del cluster potrebbe differire dalla specifica originale, anche se i servizi sono stati distribuiti sul cluster Ceph utilizzando i file della specifica descritti nella Sezione 5.4.2, «Specifica del servizio e del posizionamento». Inoltre, i file della specifica potrebbero essere stati eliminati per errore.

Per recuperare la specifica completa di un cluster in esecuzione, eseguire:

cephuser@adm > ceph orch ls --export
placement:
  hosts:
  - hostname: ses-min1
    name: ''
    network: ''
service_id: my_cephfs
service_name: mds.my_cephfs
service_type: mds
---
placement:
  count: 2
service_name: mgr
service_type: mgr
---
[...]
Suggerimento
Suggerimento

È possibile aggiungere l'opzione --format per modificare il formato di output yaml di default. È possibile scegliere tra json, json-pretty o yaml. Esempio:

ceph orch ls --export --format json

5.4.3 Distribuzione dei servizi Ceph

Una volta che il cluster di base è in esecuzione, è possibile distribuire i servizi Ceph su nodi aggiuntivi.

5.4.3.1 Distribuzione di Ceph Monitor e Ceph Manager

Il cluster Ceph dispone di tre o cinque MON distribuiti su nodi diversi. Se nel cluster sono presenti cinque o più nodi, si consiglia di distribuire cinque MON. Come buona prassi, distribuire gli MGR sugli stessi nodi dei MON.

Importante
Importante: inclusione del MON di bootstrap

Durante la distribuzione dei MON e degli MGR, ricordarsi di includere il primo MON aggiunto durante la configurazione del cluster di base nella Sezione 5.3.2.5, «Specifica del primo nodo MON/MGR».

Per distribuire i MON, applicare la specifica seguente:

service_type: mon
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
Nota
Nota

Se è necessario aggiungere un altro nodo, aggiungere il nome host allo stesso elenco YAML. Esempio:

service_type: mon
placement:
 hosts:
 - ses-min1
 - ses-min2
 - ses-min3
 - ses-min4

Analogamente, per distribuire gli MGR, applicare la specifica seguente:

Importante
Importante

Assicurarsi che per ogni distribuzione siano presenti almeno tre Ceph Manager.

service_type: mgr
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
Suggerimento
Suggerimento

Se i MON o gli MGR non si trovano sulla stessa sottorete, è necessario aggiungere gli indirizzi delle sottoreti. Esempio:

service_type: mon
placement:
  hosts:
  - ses-min1:10.1.2.0/24
  - ses-min2:10.1.5.0/24
  - ses-min3:10.1.10.0/24

5.4.3.2 Distribuzione dei Ceph OSD

Importante
Importante: se è disponibile un dispositivo di memorizzazione

Un dispositivo di memorizzazione è considerato disponibile se sono rispettate tutte le condizioni seguenti:

  • Il dispositivo non dispone di partizioni.

  • Il dispositivo non dispone di alcuno stato LVM.

  • Il dispositivo non è montato.

  • Il dispositivo non contiene un file system.

  • Il dispositivo non contiene un OSD BlueStore.

  • Il dispositivo ha una capacità maggiore di 5 GB.

Se le condizioni elencate sopra non sono rispettate, Ceph rifiuterà di eseguire il provisioning di questi OSD.

È possibile distribuire gli OSD in due modi:

  • Inviare a Ceph l'istruzione di utilizzare tutti i dispositivi di memorizzazione disponibili e non in uso:

    cephuser@adm > ceph orch apply osd --all-available-devices
  • Utilizzare i DriveGroups (vedere Book “Guida alle operazioni e all'amministrazione”, Chapter 13 “Task operativi”, Section 13.4.3 “Aggiunta di OSD tramite la specifica dei DriveGroups”) per creare una specifica OSD in cui sono descritti i dispositivi che verranno distribuiti in base alle relative proprietà, come il tipo di dispositivo (SSD o HDD), i nomi di modello, le dimensioni o i nodi su cui si trovano tali dispositivi. Quindi, applicare la specifica eseguendo il comando seguente:

    cephuser@adm > ceph orch apply osd -i drive_groups.yml

5.4.3.3 Distribuzione dei Metadata Server

Per CephFS sono necessari uno o più servizi Metadata Server (MDS). Per creare un CephFS, creare innanzitutto dei server MDS applicando la specifica seguente:

Nota
Nota

Assicurarsi di disporre di almeno due pool, uno per i dati e uno per i metadati di CephFS, creati prima dell'applicazione della seguente specifica.

service_type: mds
service_id: CEPHFS_NAME
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3

Una volta che gli MDS saranno in funzione, creare il CephFS:

ceph fs new CEPHFS_NAME metadata_pool data_pool

5.4.3.4 Distribuzione degli Object Gateway

cephadm distribuisce gli Object Gateway sotto forma di raccolta di daemon che gestiscono un dominio e una zona specifici.

È possibile correlare un servizio Object Gateway a un dominio e a una zona già esistenti (fare riferimento a Book “Guida alle operazioni e all'amministrazione”, Chapter 21 “Ceph Object Gateway”, Section 21.13 “Object Gateway multisito” per ulteriori dettagli) oppure specificare un nome per un dominio e una zona non esistenti (REALM_NAME e ZONE_NAME), che verranno creati automaticamente in seguito all'applicazione della configurazione seguente:

service_type: rgw
service_id: REALM_NAME.ZONE_NAME
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
spec:
  rgw_realm: RGW_REALM
  rgw_zone: RGW_ZONE
5.4.3.4.1 Uso dell'accesso SSL sicuro

Per utilizzare una connessione SSL sicura a Object Gateway, è necessaria una coppia di file di chiave e certificato SSL validi (vedere Book “Guida alle operazioni e all'amministrazione”, Chapter 21 “Ceph Object Gateway”, Section 21.7 “Abilitazione di HTTPS/SSL per gli Object Gateway” per ulteriori dettagli). È necessario abilitare SSL, specificare un numero di porta per le connessioni SSL e i file di chiave e certificato SSL.

Per abilitare SSL e specificare il numero di porta, includere quanto segue nella specifica:

spec:
  ssl: true
  rgw_frontend_port: 443

Per specificare la chiave e il certificato SSL, è possibile incollarne i contenuti direttamente nel file della specifica YAML. Il simbolo della barra verticale (|) alla fine della riga indica al parser che il valore sarà una stringa con più righe. Esempio:

spec:
  ssl: true
  rgw_frontend_port: 443
  rgw_frontend_ssl_certificate: |
   -----BEGIN CERTIFICATE-----
   MIIFmjCCA4KgAwIBAgIJAIZ2n35bmwXTMA0GCSqGSIb3DQEBCwUAMGIxCzAJBgNV
   BAYTAkFVMQwwCgYDVQQIDANOU1cxHTAbBgNVBAoMFEV4YW1wbGUgUkdXIFNTTCBp
   [...]
   -----END CERTIFICATE-----
   rgw_frontend_ssl_key: |
   -----BEGIN PRIVATE KEY-----
   MIIJRAIBADANBgkqhkiG9w0BAQEFAASCCS4wggkqAgEAAoICAQDLtFwg6LLl2j4Z
   BDV+iL4AO7VZ9KbmWIt37Ml2W6y2YeKX3Qwf+3eBz7TVHR1dm6iPpCpqpQjXUsT9
   [...]
   -----END PRIVATE KEY-----
Suggerimento
Suggerimento

Invece di incollare il contenuto dei file di chiave e certificato SSL, è possibile omettere le parole chiave rgw_frontend_ssl_certificate: e rgw_frontend_ssl_key: ed effettuarne l'upload nel database di configurazione:

cephuser@adm > ceph config-key set rgw/cert/REALM_NAME/ZONE_NAME.crt \
 -i SSL_CERT_FILE
cephuser@adm > ceph config-key set rgw/cert/REALM_NAME/ZONE_NAME.key \
 -i SSL_KEY_FILE
5.4.3.4.2 Distribuzione con un sottocluster

I sottocluster aiutano a organizzare i nodi nei cluster per isolare i workload e semplificare il ridimensionamento elastico. Per le distribuzioni con un sottocluster, applicare la configurazione seguente:

service_type: rgw
service_id: REALM_NAME.ZONE_NAME.SUBCLUSTER
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
spec:
  rgw_realm: RGW_REALM
  rgw_zone: RGW_ZONE
  subcluster: SUBCLUSTER

5.4.3.5 Distribuzione di iSCSI Gateway

cephadm esegue la distribuzione di iSCSI Gateway, ovvero un protocollo di rete dell'area di memorizzazione (SAN) che consente ai client (denominati iniziatori) di inviare comandi SCSI ai dispositivi di memorizzazione SCSI (destinazioni) su server remoti.

Applicare la configurazione seguente per eseguire la distribuzione. Assicurarsi che trusted_ip_list contenga gli indirizzi IP di tutti i nodi iSCSI Gateway e Ceph Manager (vedere l'output di esempio di seguito).

Nota
Nota

Assicurarsi che il pool sia stato creato prima di applicare la specifica seguente.

service_type: iscsi
service_id: EXAMPLE_ISCSI
placement:
  hosts:
  - ses-min1
  - ses-min2
  - ses-min3
spec:
  pool: EXAMPLE_POOL
  api_user: EXAMPLE_USER
  api_password: EXAMPLE_PASSWORD
  trusted_ip_list: "IP_ADDRESS_1,IP_ADDRESS_2"
Nota
Nota

Assicurarsi che negli IP elencati per trusted_ip_list non sia presente uno spazio dopo la virgola di separazione.

5.4.3.5.1 Configurazione SSL sicura

Per utilizzare una connessione SSL sicura tra il Ceph Dashboard e l'API della destinazione iSCSI, è necessaria una coppia di file di chiave e certificato SSL validi, emessi da un'autorità di certificazione o autofirmati (vedere Book “Guida alle operazioni e all'amministrazione”, Chapter 10 “Configurazione manuale”, Section 10.1.1 “Creazione di certificati autofirmati”). Per abilitare SSL, includere l'impostazione api_secure: true nel file della specifica:

spec:
  api_secure: true

Per specificare la chiave e il certificato SSL, è possibile incollarne i contenuti direttamente nel file della specifica YAML. Il simbolo della barra verticale (|) alla fine della riga indica al parser che il valore sarà una stringa con più righe. Esempio:

spec:
  pool: EXAMPLE_POOL
  api_user: EXAMPLE_USER
  api_password: EXAMPLE_PASSWORD
  trusted_ip_list: "IP_ADDRESS_1,IP_ADDRESS_2"
  api_secure: true
  ssl_cert: |
    -----BEGIN CERTIFICATE-----
    MIIDtTCCAp2gAwIBAgIYMC4xNzc1NDQxNjEzMzc2MjMyXzxvQ7EcMA0GCSqGSIb3
    DQEBCwUAMG0xCzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARVdGFoMRcwFQYDVQQHDA5T
    [...]
    -----END CERTIFICATE-----
  ssl_key: |
    -----BEGIN PRIVATE KEY-----
    MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC5jdYbjtNTAKW4
    /CwQr/7wOiLGzVxChn3mmCIF3DwbL/qvTFTX2d8bDf6LjGwLYloXHscRfxszX/4h
    [...]
    -----END PRIVATE KEY-----

5.4.3.6 Distribuzione di NFS Ganesha

cephadm esegue la distribuzione di NFS Ganesha tramite un pool RADOS predefinito e uno spazio dei nomi facoltativo. Per distribuire NFS Ganesha, applicare la specifica seguente:

Nota
Nota

Se non è presente un pool RADOS predefinito, l'operazione ceph orch apply non andrà a buon fine. Per ulteriori informazioni sulla creazione di un pool, vedere Book “Guida alle operazioni e all'amministrazione”, Chapter 18 “Gestione dei pool di memorizzazione”, Section 18.1 “Creazione di un pool”.

service_type: nfs
service_id: EXAMPLE_NFS
placement:
  hosts:
  - ses-min1
  - ses-min2
spec:
  pool: EXAMPLE_POOL
  namespace: EXAMPLE_NAMESPACE
  • EXAMPLE_NFS con una stringa arbitraria che identifica l'esportazione NFS.

  • EXAMPLE_POOL con il nome del pool in cui verrà archiviato l'oggetto di configurazione RADOS di NFS Ganesha.

  • EXAMPLE_NAMESPACE (facoltativo) con lo spazio dei nomi NFS di Object Gateway desiderato (ad esempio, ganesha).

5.4.3.7 Distribuzione di rbd-mirror

Il servizio rbd-mirror sincronizza le immagini del dispositivo di blocco RADOS (RADOS Block Device, RBD) tra due cluster Ceph (per ulteriori dettagli, vedere Book “Guida alle operazioni e all'amministrazione”, Chapter 20 “Dispositivo di blocco RADOS (RADOS Block Device, RBD)”, Section 20.4 “Copie speculari delle immagini RBD”). Per distribuire rbd-mirror, utilizzare la specifica seguente:

service_type: rbd-mirror
service_id: EXAMPLE_RBD_MIRROR
placement:
  hosts:
  - ses-min3

5.4.3.8 Distribuzione dello stack di monitoraggio

Lo stack di monitoraggio è composto da Prometheus e dalle relative utilità di esportazione, da Prometheus Alertmanager e da Grafana. Il Ceph Dashboard utilizza questi componenti per archiviare e visualizzare metriche dettagliate sull'utilizzo e le prestazioni del cluster.

Suggerimento
Suggerimento

Se per la distribuzione sono necessarie immagini del container personalizzate o fornite in locale dei servizi dello stack di monitoraggio, fare riferimento a Book “Guida alle operazioni e all'amministrazione”, Chapter 16 “Monitoraggio e creazione di avvisi”, Section 16.1 “Configurazione di immagini personalizzate o locali”.

Per distribuire lo stack di monitoraggio, seguire la procedura indicata di seguito:

  1. Abilitare il modulo prometheus nel daemon Ceph Manager. Questa operazione espone le metriche Ceph interne per consentirne la lettura da parte di Prometheus.

    cephuser@adm > ceph mgr module enable prometheus
    Nota
    Nota

    Assicurarsi di eseguire questo comando prima di procedere con la distribuzione di Prometheus. Altrimenti, occorrerà ripetere la distribuzione di Prometheus per aggiornarne la configurazione:

    cephuser@adm > ceph orch redeploy prometheus
  2. Creare un file della specifica (ad esempio monitoring.yaml) con un contenuto simile al seguente:

    service_type: prometheus
    placement:
      hosts:
      - ses-min2
    ---
    service_type: node-exporter
    ---
    service_type: alertmanager
    placement:
      hosts:
      - ses-min4
    ---
    service_type: grafana
    placement:
      hosts:
      - ses-min3
  3. Applicare i servizi di monitoraggio eseguendo:

    cephuser@adm > ceph orch apply -i monitoring.yaml

    Per il completamento della distribuzione dei servizi di monitoraggio potrebbero essere necessari alcuni istanti.

Importante
Importante

Se la distribuzione viene eseguita come descritto sopra, la comunicazione reciproca tra Prometheus, Grafana e il Ceph Dashboard è configurata automaticamente, per un'integrazione Grafana completamente funzionante nel Ceph Dashboard.

L'unica eccezione a questa regola è costituita dal monitoraggio con le immagini RBD. Consultare Book “Guida alle operazioni e all'amministrazione”, Chapter 16 “Monitoraggio e creazione di avvisi”, Section 16.5.4 “Abilitazione del monitoraggio dell'immagine RBD” per maggiori informazioni.

Parte III Installazione di servizi aggiuntivi

  • 6 Installazione di iSCSI Gateway
  • iSCSI è un protocollo di rete dell'area di storage (SAN) che consente ai client (denominati iniziatori) di inviare comandi SCSI ai dispositivi di storage SCSI (destinazioni) su server remoti. SUSE Enterprise Storage 7 include una struttura che apre la gestione dello storage Ceph a client eterogenei,…

6 Installazione di iSCSI Gateway

iSCSI è un protocollo di rete dell'area di storage (SAN) che consente ai client (denominati iniziatori) di inviare comandi SCSI ai dispositivi di storage SCSI (destinazioni) su server remoti. SUSE Enterprise Storage 7 include una struttura che apre la gestione dello storage Ceph a client eterogenei, come Microsoft Windows* e VMware* vSphere, attraverso il protocollo iSCSI. L'accesso iSCSI multipath garantisce disponibilità e scalabilità per questi client e il protocollo iSCSI standardizzato fornisce inoltre un ulteriore livello di isolamento di sicurezza tra i client e il cluster SUSE Enterprise Storage 7. La struttura di configurazione è denominata ceph-iscsi. Con ceph-iscsi, gli amministratori dello storage Ceph possono definire volumi soggetti a thin-provisioning, replicati, a elevata disponibilità che supportano snapshot di sola lettura, cloni di scrittura-lettura e ridimensionamento automatico con il dispositivo di blocco RADOS (RBD) Ceph. Gli amministratori possono quindi esportare i volumi tramite un singolo host gateway ceph-iscsi o tramite più host gateway che supportano il failover multipath. Gli host Linux, Microsoft Windows e VMware possono collegarsi a volumi che utilizzano il protocollo iSCSI, che li rende disponibili come altri dispositivi di blocco SCSI. Questo significa che i clienti di SUSE Enterprise Storage 7 possono efficacemente eseguire un sottosistema completo dell'infrastruttura di storage di blocco su Ceph che fornisce tutte le funzioni e vantaggi di un SAN convenzionale, consentendo la crescita futura.

Questo capitolo presenta informazioni dettagliate per configurare un'infrastruttura del cluster Ceph insieme con un iSCSI Gateway, in modo che gli host client possano utilizzare da remoto i dati memorizzati come dispositivi di storage locale con il protocollo iSCSI.

6.1 Storage di blocco iSCSI

iSCSI è un'implementazione del set di comandi Small Computer System Interface (SCSI) mediante il Protocollo Internet (IP), specificato in RFC 3720. iSCSI è implementato come servizio dove un client (l'iniziatore) parla a un server (la destinazione) tramite una sessione sulla porta TCP 3260. Una porta e un indirizzo IP della destinazione iSCSI sono denominati portale iSCSI, dove una destinazione può essere esposta attraverso uno o più portali. La combinazione di una destinazione e uno o più portali è detta gruppo portale di destinazione (target portal group, TPG).

Il protocollo dello strato collegamento dati sottostante per iSCSI è di solito Ethernet. Più specificamente, le moderne infrastrutture iSCSI utilizzano reti Ethernet 10 GigE o più veloci per una velocità effettiva ottimale. Si consiglia la connettività Ethernet 10 Gigabit tra iSCSI Gateway e il cluster Ceph back-end.

6.1.1 La destinazione iSCSI Kernel Linux

La destinazione iSCSI Kernel Linux era in origine denominata LIO per linux-iscsi.org, il dominio originale e sito Web del progetto. Per qualche tempo, erano disponibili per la piattaforma Linux non meno di quattro implementazioni di destinazione iSCSI in concorrenza, ma LIO alla fine ha prevalso come singola destinazione di riferimento iSCSI. Il codice kernel mainline di LIO utilizza il semplice ma certamente ambiguo nome "destinazione", che distingue tra "core di destinazione" e una varietà di moduli di destinazione front-end e back-end.

Il modulo front-end più comunemente utilizzato è iSCSI. Tuttavia, LIO supporta anche i protocolli Fibre Channel (FC), Fibre Channel over Ethernet (FCoE) e diversi altri protocolli front-end. Attualmente, è supportato da SUSE Enterprise Storage solo il protocollo iSCSI.

Il modulo back-end di destinazione più utilizzato è quello in grado di riesportare semplicemente qualsiasi dispositivo di blocco disponibile sull'host di destinazione. Questo modulo è denominato iblock. Tuttavia, LIO ha anche un modulo back-end specifico RBD che supporta l'accesso I/O multipercorso parallelizzato alle immagini RBD.

6.1.2 Iniziatori iSCSI

Questa sezione presenta brevi informazioni sugli iniziatori iSCSI utilizzati su piattaforme Linux, Microsoft Windows e VMware.

6.1.2.1 Linux

L'iniziatore standard per la piattaforma Linux è open-iscsi. open-iscsi lancia un daemon, iscsid, che l'utente può quindi utilizzare per rilevare destinazioni iSCSI su qualsiasi portale dato, accedere alle destinazioni e mappare volumi iSCSI. iscsid comunica con il livello mediano SCSI per creare dispositivi di blocco nel kernel, che il kernel può quindi trattare come altri dispositivi di blocco SCSI nel sistema. L'iniziatore open-iscsi può essere distribuito insieme con la facility Device Mapper Multipath (dm-multipath) per fornire un dispositivo di blocco iSCSI ad alta disponibilità.

6.1.2.2 Microsoft Windows e Hyper-V

L'iniziatore iSCSI di default per il sistema operativo Microsoft Windows è l'iniziatore Microsoft iSCSI. Il servizio iSCSI può essere configurato tramite un'interfaccia grafica utente (GUI) e supporta I/O multipercorso per alta disponibilità.

6.1.2.3 VMware

L'iniziatore iSCSI di default per VMware vSphere ed ESX è l'iniziatore iSCSI del software VMware ESX, vmkiscsi. Quando abilitato, può essere configurato dal client vSphere o mediante il comando vmkiscsi-tool. È quindi possibile formattare i volumi di storage connessi attraverso l'adattatore di storage vSphere iSCSI con VMFS e utilizzarli come altri dispositivi di storage VM. L'iniziatore VMware supporta anche I/O multipercorso per alta disponibilità.

6.2 Informazioni generali su ceph-iscsi

ceph-iscsi combina i vantaggi dei dispositivi di blocco RADOS con la versatilità diffusa di iSCSI. Impiegando ceph-iscsi su un host di destinazione iSCSI (noto come iSCSI Gateway), qualsiasi applicazione che deve utilizzare uno storage di blocco può trarre vantaggio da Ceph, anche se non utilizza alcun protocollo del client Ceph. Al contrario, gli utenti possono utilizzare iSCSI o un altro protocollo front-end di destinazione per collegarsi a una destinazione LIO che traduce tutti gli I/O di destinazione in operazioni di storage RBD.

Cluster Ceph con un singolo iSCSI Gateway
Figura 6.1: Cluster Ceph con un singolo iSCSI Gateway

ceph-iscsi è intrinsecamente a elevata disponibilità e supporta operazioni multipath. Perciò, gli host iniziatori a valle possono utilizzare più iSCSI Gateway per alta disponibilità e scalabilità. Quando si comunica con una configurazione iSCSI con più gateway, gli iniziatori possono bilanciare il carico delle richieste iSCSI tra più gateway. Nel caso in cui un gateway sia in errore, temporaneamente irraggiungibile o disattivato per manutenzione, gli I/O continueranno in modo trasparente attraverso un altro gateway.

Cluster Ceph con più iSCSI Gateway
Figura 6.2: Cluster Ceph con più iSCSI Gateway

6.3 Considerazioni sulla distribuzione

Una configurazione minima di SUSE Enterprise Storage 7 con ceph-iscsi contiene i componenti seguenti:

  • Un cluster di storage Ceph. Il cluster Ceph consiste di un minimo di quattro server fisici contenenti almeno otto OSD (object storage daemon) ciascuno. In tale configurazione, tre nodi OSD raddoppiano come host monitor (MON).

  • Un server di destinazione iSCSI che esegue la destinazione LIO iSCSI, configurato tramite ceph-iscsi.

  • Un host iniziatore iSCSI, che esegue open-iscsi (Linux), l'iniziatore Microsoft iSCSI (Microsoft Windows) o qualsiasi altra implementazione di iniziatore iSCSI compatibile.

Una configurazione di produzione raccomandata di SUSE Enterprise Storage 7 con ceph-iscsi consiste di:

  • Un cluster di storage Ceph. Un cluster Ceph di produzione consiste di un numero qualsiasi di (in genere oltre 10) nodi OSD, ciascuno che esegue in genere 10-12 OSD (object storage daemon), con non meno di tre host MON dedicati.

  • Diversi server di destinazione iSCSI che eseguono la destinazione LIO iSCSI, configurati tramite ceph-iscsi. Per bilanciamento di carico e failover iSCSI, questi server devono eseguire un kernel che supporti il modulo target_core_rbd. Dal canale di manutenzione SUSE Linux Enterprise Server sono disponibili pacchetti di aggiornamento.

  • Un numero a scelta di host iniziatori iSCSI, che eseguono open-iscsi (Linux), l'iniziatore Microsoft iSCSI (Microsoft Windows) o qualsiasi altra implementazione di iniziatore iSCSI compatibile.

6.4 Installazione e configurazione

Questa sezione descrive i passaggi per installare e configurare un iSCSI Gateway su SUSE Enterprise Storage.

6.4.1 Distribuzione di iSCSI Gateway in un cluster Ceph

Analogamente agli altri servizi Ceph, Ceph iSCSI Gateway viene distribuito tramite cephadm. Per ulteriori informazioni, vedere Sezione 5.4.3.5, «Distribuzione di iSCSI Gateway».

6.4.2 Creazione di immagini RBD

Le immagini RBD vengono create nello store Ceph e quindi esportate in iSCSI. Per questo scopo, si consiglia di utilizzare un pool RADOS dedicato. È possibile creare un volume da qualsiasi host in grado di collegarsi al cluster di storage mediante l'utility della riga di comando Ceph rbd. Ciò richiede che il client abbia almeno un file di configurazione ceph.conf minimo e appropriate credenziali di autenticazione CephX.

Per creare un nuovo volume per la successiva esportazione tramite iSCSI, utilizzare il comando rbd create, specificando la dimensione del volume in megabyte. Ad esempio, per creare un volume da 100 GB denominato testvol nel pool con il nome iscsi-images, eseguire:

cephuser@adm > rbd --pool iscsi-images create --size=102400 testvol

6.4.3 Esportazione di immagini RBD tramite iSCSI

Per esportare le immagini RBD tramite iSCSI, è possibile utilizzare l'interfaccia Web del Ceph Dashboard o l'utility gwcli ceph-iscsi. Questa sezione è incentrata esclusivamente su gwcli e illustra come creare una destinazione iSCSI in grado di esportare un'immagine RBD tramite la riga di comando.

Nota
Nota

Non è possibile esportare tramite iSCSI le immagini RBD con le proprietà seguenti:

  • immagini con la funzione di journaling abilitata

  • immagini con un'unità di striping inferiore a 4096 byte

Come root, immettere il container di iSCSI Gateway:

root # cephadm enter --name CONTAINER_NAME

Da root, avviare l'interfaccia riga di comando di iSCSI Gateway:

root # gwcli

Andare a iscsi-targets e creare una destinazione con il nome iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol:

gwcli >  /> cd /iscsi-targets
gwcli >  /iscsi-targets> create iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol

Creare gli iSCSI Gateway specificando il nome (name) e l'indirizzo ip del gateway:

gwcli >  /iscsi-targets> cd iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/gateways
gwcli >  /iscsi-target...tvol/gateways> create iscsi1 192.168.124.104
gwcli >  /iscsi-target...tvol/gateways> create iscsi2 192.168.124.105
Suggerimento
Suggerimento

Utilizzare il comando help per visualizzare l'elenco dei comandi disponibili nel nodo di configurazione corrente.

Aggiungere l'immagine RBD denominata testvol nel pool iscsi-images:

gwcli >  /iscsi-target...tvol/gateways> cd /disks
gwcli >  /disks> attach iscsi-images/testvol

Mappare l'immagine RBD alla destinazione:

gwcli >  /disks> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/disks
gwcli >  /iscsi-target...testvol/disks> add iscsi-images/testvol
Nota
Nota

È possibile utilizzare strumenti di livello inferiore, come targetcli, per interrogare la configurazione locale, ma non per modificarla.

Suggerimento
Suggerimento

È possibile utilizzare il comando ls per rivedere la configurazione. Alcuni nodi di configurazione supportano inoltre il comando info, che può essere utilizzato per visualizzare altri dettagli.

Tenere presente che, l'autenticazione ACL è abilitata per default, pertanto questa destinazione non è ancora accessibile. Consultare la Sezione 6.4.4, «Autenticazione e controllo dell'accesso» per ulteriori informazioni sull'autenticazione e il controllo dell'accesso.

6.4.4 Autenticazione e controllo dell'accesso

L'autenticazione iSCSI è flessibile e include diverse possibilità di autenticazione.

6.4.4.1 Disabilitazione dell'autenticazione ACL

No Authentication indica che qualsiasi iniziatore potrà accedere ai LUN sulla destinazione corrispondente. È possibile abilitare l'impostazione No Authentication disabilitando l'autenticazione ACL:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/hosts
gwcli >  /iscsi-target...testvol/hosts> auth disable_acl

6.4.4.2 Uso dell'autenticazione ACL

Se si utilizza l'autenticazione ACL basata sul nome di iniziatore, la connessione è consentita soltanto agli iniziatori definiti. È possibile definire un iniziatore come indicato di seguito:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/hosts
gwcli >  /iscsi-target...testvol/hosts> create iqn.1996-04.de.suse:01:e6ca28cc9f20

Gli iniziatori definiti potranno eseguire la connessione, ma disporranno dell'accesso soltanto alle immagini RBD aggiunte esplicitamente all'iniziatore:

gwcli >  /iscsi-target...:e6ca28cc9f20> disk add rbd/testvol

6.4.4.3 Abilitazione dell'autenticazione CHAP

Oltre all'autenticazione ACL, è possibile abilitare l'autenticazione CHAP specificando un nome utente e una password per ciascun iniziatore:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol/hosts/iqn.1996-04.de.suse:01:e6ca28cc9f20
gwcli >  /iscsi-target...:e6ca28cc9f20> auth username=common12 password=pass12345678
Nota
Nota

I nomi utente devono avere una lunghezza compresa tra 8 e 64 caratteri e possono contenere caratteri alfanumerici, ., @, -, _ oppure :.

Le password devono avere una lunghezza compresa tra 12 e 16 caratteri e possono contenere caratteri alfanumerici, @, -, _ o /..

Facoltativamente, è possibile abilitare anche l'autenticazione CHAP reciproca specificando i parametri mutual_username e mutual_password nel comando auth.

6.4.4.4 Configurazione dell'autenticazione rilevazione e dell'autenticazione reciproca

L'autenticazione rilevazione è indipendente dai metodi di autenticazione descritti in precedenza. Richiede le credenziali per la navigazione, è facoltativa e può essere configurata tramite:

gwcli >  /> cd /iscsi-targets
gwcli >  /iscsi-targets> discovery_auth username=du123456 password=dp1234567890
Nota
Nota

I nomi utente devono avere una lunghezza compresa tra 8 e 64 caratteri e possono contenere solo lettere, ., @, -, _ oppure :.

Le password devono avere una lunghezza compresa tra 12 e 16 caratteri e possono contenere solo lettere, @, -, _ oppure /.

Facoltativamente, è possibile specificare anche i parametri mutual_username e mutual_password nel comando discovery_auth.

È possibile disabilitare l'autenticazione rilevazione tramite il comando seguente:

gwcli >  /iscsi-targets> discovery_auth nochap

6.4.5 Configurazione delle impostazioni avanzate

È possibile configurare ceph-iscsi con parametri avanzati che vengono quindi trasmessi alla destinazione di I/O di LIO. Tali parametri sono suddivisi nei parametri target e disk.

Avvertimento
Avvertimento

Se non diversamente specificato, si consiglia di non modificare l'impostazione di default di questi parametri.

6.4.5.1 Visualizzazione delle impostazioni target

È possibile visualizzare il valore di tali impostazioni tramite il comando info:

gwcli >  /> cd /iscsi-targets/iqn.2003-01.org.linux-iscsi.iscsi.SYSTEM-ARCH:testvol
gwcli >  /iscsi-target...i.SYSTEM-ARCH:testvol> info

E modificare un'impostazione con il comando reconfigure:

gwcli >  /iscsi-target...i.SYSTEM-ARCH:testvol> reconfigure login_timeout 20

Le impostazioni target disponibili sono:

default_cmdsn_depth

Profondità di default CmdSN (Command Sequence Number). Limita la quantità di richieste che l'iniziatore iSCSI può avere in sospeso in qualsiasi momento.

default_erl

Livello di ripristino errore di default.

login_timeout

Valore timeout di login in secondi.

netif_timeout

Timeout errore NIC in secondi.

prod_mode_write_protect

Se impostata a 1, impedisce le operazioni di scrittura sui LUN.

6.4.5.2 Visualizzazione delle impostazioni disk

È possibile visualizzare il valore di tali impostazioni tramite il comando info:

gwcli >  /> cd /disks/rbd/testvol
gwcli >  /disks/rbd/testvol> info

E modificare un'impostazione con il comando reconfigure:

gwcli >  /disks/rbd/testvol> reconfigure rbd/testvol emulate_pr 0

Le impostazioni disk disponibili sono:

block_size

Dimensione di blocco del dispositivo sottostante.

emulate_3pc

Se impostata a 1, abilita Third Party Copy.

emulate_caw

Se impostata a 1, abilita Compare e Write.

emulate_dpo

Se impostato a 1, attiva Disable Page Out.

emulate_fua_read

Se impostata a 1, attiva la lettura Force Unit Access.

emulate_fua_write

Se impostata a 1, abilita la scrittura Force Unit Access.

emulate_model_alias

Se impostata a 1, utilizza il nome del dispositivo back-end per l'alias modello.

emulate_pr

Se impostata a 0, il supporto delle prenotazioni SCSI, incluse le Persistent Group Reservation, è disabilitato. Se è disabilitata, l'iSCSI Gateway SES può ignorare lo stato di prenotazione per generare una migliore latenza della richiesta.

Suggerimento
Suggerimento

Si consiglia di impostare backstore_emulate_pr a 0 se gli iniziatori iSCSI non richiedono il supporto della prenotazione SCSI.

emulate_rest_reord

Se impostata a 0, il modificatore algoritmo di coda ha riordinamento limitato.

emulate_tas

Se impostata a 1, abilita Task Aborted Status.

emulate_tpu

Se impostata a 1, abilita Thin Provisioning Unmap.

emulate_tpws

Se impostata a 1, abilita Thin Provisioning Write Same.

emulate_ua_intlck_ctrl

Se impostata a 1, abilita Unit Attention Interlock.

emulate_write_cache

Se impostata a 1, attiva Write Cache Enable.

enforce_pr_isids

Se impostata a 1, applica gli ISID di prenotazione persistenti.

is_nonrot

Se impostata a 1, il backstore è un dispositivo non rotativo.

max_unmap_block_desc_count

Numero massimo di descrittori di blocco per UNMAP.

max_unmap_lba_count:

Numero massimo di LBA per UNMAP.

max_write_same_len

Lunghezza massima per WRITE_SAME.

optimal_sectors

Dimensione richiesta ottimale in settori.

pi_prot_type

Tipo di protezione DIF.

queue_depth

Profondità coda.

unmap_granularity

Granularità UNMAP.

unmap_granularity_alignment

Allineamento granularità UNMAP.

force_pr_aptpl

Se abilitata, LIO scriverà sempre lo stato di prenotazione permanente nello spazio di memorizzazione permanente, a prescindere dal fatto che il client lo abbia richiesto o meno tramite aptpl=1. Ciò non ha effetto sul back-end RBD del kernel per LIO, che manterrà sempre lo stato di prenotazione permanente. Idealmente, l'opzione target_core_rbd dovrebbe forzarla su "1" e generare un errore se qualcuno tenta di disabilitarla tramite la configurazione.

unmap_zeroes_data

Determina se LIO invierà un bit LBPRZ agli iniziatori SCSI, per indicare che gli zero di una determinata area verranno riletti dopo l'esecuzione di un comando UNMAP o WRITE SAME con un bit di annullamento della mappatura.

6.5 Esportazione di immagini del dispositivo di blocco RADOS (RADOS Block Device, RBD) con tcmu-runner

ceph-iscsi supporta i backstore rbd (basati sul kernel) e user:rbd (tcmu-runner), rendendo la gestione invisibile all'utente e indipendente dal backstore.

Avvertimento
Avvertimento: tecnologia in anteprima

Le distribuzioni di iSCSI Gateway basate su tcmu-runner sono attualmente un'anteprima.

A differenza delle distribuzioni iSCSI Gateway basate su kernel, gli iSCSI Gateway basati su tcmu-runner non offrono supporto per Multipath I/O o per le prenotazioni permanenti SCSI.

Per esportare un'immagine del dispositivo di blocco RADOS con tcmu-runner, occorre semplicemente specificare il backstore user:rbd durante il collegamento del disco:

gwcli >  /disks> attach rbd/testvol backstore=user:rbd
Nota
Nota

Durante l'uso di tcmu-runner, sull'immagine RBD esportata deve essere abilitata la funzione exclusive-lock.

Parte IV Upgrade dalle release precedenti

7 Upgrade da una release precedente

Questo capitolo descrive le procedure per eseguire l'upgrade di SUSE Enterprise Storage 6 alla versione 7.

L'upgrade include i task seguenti:

  • Esecuzione dell'upgrade da Ceph Nautilus a Octopus.

  • Passaggio dall'installazione ed esecuzione di Ceph tramite pacchetti RPM all'esecuzione in container.

  • Rimozione completa di DeepSea e sostituzione con ceph-salt e cephadm.

Avvertimento
Avvertimento

Le informazioni sull'upgrade contenute in questo capitolo si applicano soltanto agli upgrade da DeepSea a cephadm. Non seguire queste istruzioni se si desidera distribuire SUSE Enterprise Storage sulla piattaforma SUSE CaaS.

Importante
Importante

L'upgrade dalle versioni di SUSE Enterprise Storage precedenti alla 6 non è supportato. Prima di seguire le procedure descritte in questo capitolo, è necessario eseguire l'upgrade alla versione più recente di SUSE Enterprise Storage 6.

7.1 Attività preparatorie all'upgrade

Prima di avviare l'upgrade, occorre completare i task seguenti. È possibile eseguire l'upgrade da SUSE Enterprise Storage 6 in qualsiasi momento.

7.1.1 Aspetti da considerare

Prima di eseguire l'upgrade, leggere per intero le sezioni seguenti per comprendere tutti i task che devono essere completati.

  • Per altre informazioni sulle modifiche apportate rispetto alla release precedente di SUSE Enterprise Storage, leggere le note di rilascio. Controllare le note di rilascio per vedere se:

    • l'hardware necessita di considerazioni speciali;

    • i pacchetti software utilizzati hanno subito modifiche significative;

    • è necessario adottare precauzioni speciali per l'installazione.

    Le note di rilascio forniscono inoltre informazioni che non si è fatto in tempo a riportare nel manuale. Contengono anche alcune note su problemi noti.

    All'indirizzo https://www.suse.com/releasenotes/ è possibile trovare le note di rilascio di SES 7.

    Inoltre, dopo aver installato il pacchetto release-notes-ses dall'archivio di SES 7, individuare localmente le note di rilascio nella directory /usr/share/doc/release-notes oppure online all'indirizzo https://www.suse.com/releasenotes/.

  • Leggere il Capitolo 5, Distribuzione con cephadm per acquisire dimestichezza con ceph-salt e con l'utilità di coordinamento Ceph, in particolare con le informazioni sulle specifiche del servizio.

  • L'upgrade del cluster può richiedere diverso tempo, circa lo stesso necessario per eseguire l'upgrade di un computer moltiplicato per il numero di nodi del cluster.

  • Eseguire innanzitutto l'upgrade del Salt Master e sostituire DeepSea con ceph-salt, quindi passare a cephadm. Finché non sarà stato completato l'upgrade di almeno tutti i Ceph Manager, non sarà possibile iniziare a utilizzare il modulo dell'utilità di coordinamento cephadm.

  • L'upgrade dai pacchetti RPM Nautilus ai container Octopus deve essere eseguito in un unico passaggio. Pertanto, occorre eseguire l'upgrade di un intero nodo alla volta, e non di un daemon alla volta.

  • I servizi di base (MON, MGR, OSD) vengono aggiornati per ordine e rimangono disponibili durante l'upgrade. Al termine dell'operazione, occorre ripetere la distribuzione dei servizi del gateway (Metadata Server, Object Gateway, NFS Ganesha, iSCSI Gateway). Ciascuno dei servizi riportati di seguito subirà un tempo di fermo:

    • Importante
      Importante

      I Metadata Server e gli Object Gateway sono disattivi dall'inizio dell'upgrade dei nodi da SUSE Linux Enterprise Server 15 SP1 a SUSE Linux Enterprise Server 15 SP2 fino alla ridistribuzione dei servizi al termine della procedura di upgrade. Questo è un aspetto particolarmente importante da tenere presente se questi servizi sono in co-location con MON, MGR oppure OSD, dal momento che in questo caso potrebbero essere inattivi per tutta la durata dell'upgrade del cluster. Se ciò rappresenta un problema, valutare di distribuire separatamente tali servizi su nodi aggiuntivi prima di procedere con l'upgrade per fare in modo che rimangano inattivi per il minor tempo possibile, ovvero per la durata dell'upgrade dei nodi del gateway, e non dell'intero cluster.

    • NFS Ganesha e gli iSCSI Gateway sono inattivi solo per il riavvio dei nodi durante l'upgrade da SUSE Linux Enterprise Server 15 SP1 a SUSE Linux Enterprise Server 15 SP2 e nuovamente per breve tempo durante la ridistribuzione di ciascun servizio nella modalità in container.

7.1.2 Backup della configurazione e dei dati del cluster

Si consiglia di eseguire il backup della configurazione e dei dati del cluster prima di avviare l'upgrade a SUSE Enterprise Storage 7. Per istruzioni su come eseguire il backup di tutti i dati, vedere https://documentation.suse.com/ses/6/html/ses-all/cha-deployment-backup.html.

7.1.3 Verifica dei passaggi dell'upgrade precedente

Se in precedenza è stato eseguito l'upgrade dalla versione 5, verificare che l'upgrade alla versione 6 sia stato completato correttamente:

Controllare se il file /srv/salt/ceph/configuration/files/ceph.conf.import è presente.

Questo file è creato dal processo engulf durante l'upgrade da SUSE Enterprise Storage 5 a 6. L'opzione configuration_init: default-import è impostata in /srv/pillar/ceph/proposals/config/stack/default/ceph/cluster.yml.

Se l'opzione configuration_init è ancora impostata su default-import, come file di configurazione il cluster utilizza ceph.conf.import e non la configurazione ceph.conf di default di DeepSea, compilata dai file in /srv/salt/ceph/configuration/files/ceph.conf.d/.

Pertanto, è necessario analizzare ceph.conf.import per rilevare eventuali configurazioni personalizzate e possibilmente spostare la configurazione in uno dei file in /srv/salt/ceph/configuration/files/ceph.conf.d/.

Quindi, rimuovere la riga configuration_init: default-import da /srv/pillar/ceph/proposals/config/stack/default/ceph/cluster.yml.

7.1.4 Aggiornamento dei nodi del cluster e verifica dell'integrità del cluster

Verificare che tutti gli ultimi aggiornamenti di SUSE Linux Enterprise Server 15 SP1 e SUSE Enterprise Storage 6 siano stati applicati a tutti i nodi del cluster:ulti

root # zypper refresh && zypper patch

Dopodiché, verificare l'integrità del cluster:

cephuser@adm > ceph -s

7.1.5 Verifica dell'accesso agli archivi software e alle immagini del container

Verificare che ogni nodo del cluster disponga dell'accesso agli archivi software di SUSE Linux Enterprise Server 15 SP2 e SUSE Enterprise Storage 7, oltre che al registro delle immagini del container.

7.1.5.1 Archivi software

Se tutti i nodi sono registrati su SCC, sarà possibile eseguire l'upgrade con il comando zypper migration. Per ulteriori dettagli, fare riferimento alla https://documentation.suse.com/sles/15-SP2/html/SLES-all/cha-upgrade-online.html#sec-upgrade-online-zypper.

Se i nodi non sono registrati su SCC, disabilitare tutti gli archivi software esistenti e aggiungere gli archivi Pool e Updates per ciascuna delle estensioni seguenti:

  • SLE-Product-SLES/15-SP2

  • SLE-Module-Basesystem/15-SP2

  • SLE-Module-Server-Applications/15-SP2

  • SUSE-Enterprise-Storage-7

7.1.5.2 Immagini del container

Tutti i nodi del cluster necessitano dell'accesso al registro delle immagini del container. Nella maggior parte dei casi, viene utilizzato il registro SUSE pubblico all'indirizzo registry.suse.com. Sono necessarie le immagini seguenti:

  • registry.suse.com/ses/7/ceph/ceph

  • registry.suse.com/ses/7/ceph/grafana

  • registry.suse.com/caasp/v4.5/prometheus-server

  • registry.suse.com/caasp/v4.5/prometheus-node-exporter

  • registry.suse.com/caasp/v4.5/prometheus-alertmanager

In alternativa, ad esempio per le distribuzioni Air-gap, configurare un registro locale e verificare di disporre dell'insieme di immagini del container corretto. Fare riferimento alla Sezione 5.3.2.11, «Configurazione del registro del container» per ulteriori dettagli sulla configurazione di un registro delle immagini del container locale.

7.2 Esecuzione dell'upgrade del Salt Master

Di seguito è descritta la procedura di upgrade del Salt Master:

  1. Eseguire l'upgrade del sistema operativo sottostante a SUSE Linux Enterprise Server 15 SP2:

    • Per i cluster con i nodi registrati su SCC, eseguire zypper migration.

    • Per i cluster i cui nodi dispongono di archivi software assegnati manualmente, eseguire zypper dup seguito da reboot.

  2. Disabilitare le fasi di DeepSea per evitare usi accidentali. Aggiungere il contenuto seguente a /srv/pillar/ceph/stack/global.yml:

    stage_prep: disabled
    stage_discovery: disabled
    stage_configure: disabled
    stage_deploy: disabled
    stage_services: disabled
    stage_remove: disabled

    Salvare il file e applicare le modifiche:

    root@master # salt '*' saltutil.pillar_refresh
  3. Se le immagini del container in uso non provengono da registry.suse.com, ma dal registro configurato in locale, modificare /srv/pillar/ceph/stack/global.yml per comunicare a DeepSea quale immagine del container e registro Ceph utilizzare. Ad esempio, per utilizzare 192.168.121.1:5000/my/ceph/image aggiungere le righe seguenti:

    ses7_container_image: 192.168.121.1:5000/my/ceph/image
    ses7_container_registries:
      - location: 192.168.121.1:5000

    Salvare il file e applicare le modifiche:

    root@master # salt '*' saltutil.refresh_pillar
  4. Assimilare la configurazione esistente:

    cephuser@adm > ceph config assimilate-conf -i /etc/ceph/ceph.conf
  5. Verificare lo stato dell'upgrade. L'output potrebbe essere diverso a seconda della configurazione del cluster:

    root@master # salt-run upgrade.status
    The newest installed software versions are:
     ceph: ceph version 15.2.2-60-gf5864377ab (f5864377abb5549f843784c93577980aa264b9bc) octopus (stable)
     os: SUSE Linux Enterprise Server 15 SP2
    Nodes running these software versions:
     admin.ceph (assigned roles: master, prometheus, grafana)
    Nodes running older software versions must be upgraded in the following order:
     1: mon1.ceph (assigned roles: admin, mon, mgr)
     2: mon2.ceph (assigned roles: admin, mon, mgr)
     3: mon3.ceph (assigned roles: admin, mon, mgr)
     4: data4.ceph (assigned roles: storage, mds)
     5: data1.ceph (assigned roles: storage)
     6: data2.ceph (assigned roles: storage)
     7: data3.ceph (assigned roles: storage)
     8: data5.ceph (assigned roles: storage, rgw)

7.3 Esecuzione dell'upgrade dei nodi MON, MGR e OSD

Eseguire l'upgrade dei nodi Ceph Monitor, Ceph Manager e OSD uno alla volta. Per ogni servizio, seguire la procedura indicata di seguito:

  1. Durante l'upgrade di un nodo OSD, fare in modo che l'OSD non sia contrassegnato con out eseguendo il comando seguente:

    cephuser@adm > ceph osd add-noout SHORT_NODE_NAME

    Sostituire SHORT_NODE_NAME con il nome abbreviato del nodo così come viene visualizzato nell'output del comando ceph osd tree. Nell'input seguente, i nomi host abbreviati sono ses-min1 e ses-min2.

    root@master # ceph osd tree
    ID   CLASS  WEIGHT   TYPE NAME       STATUS  REWEIGHT  PRI-AFF
     -1         0.60405  root default
    -11         0.11691      host ses-min1
      4    hdd  0.01949          osd.4       up   1.00000  1.00000
      9    hdd  0.01949          osd.9       up   1.00000  1.00000
     13    hdd  0.01949          osd.13      up   1.00000  1.00000
    [...]
     -5         0.11691      host ses-min2
      2    hdd  0.01949          osd.2       up   1.00000  1.00000
      5    hdd  0.01949          osd.5       up   1.00000  1.00000
    [...]
  2. Eseguire l'upgrade del sistema operativo sottostante a SUSE Linux Enterprise Server 15 SP2:

    • Se tutti i nodi del cluster sono registrati su SCC, eseguire zypper migration.

    • Se i nodi del cluster dispongono di archivi software assegnati manualmente, eseguire zypper dup seguito da reboot.

  3. In seguito al riavvio del nodo, inserire in container tutti i daemon MON, MGR e OSD esistenti sul nodo eseguendo il comando seguente sul Salt Master:

    root@master # salt MINION_ID state.apply ceph.upgrade.ses7.adopt

    Sostituire MINION_ID con l'ID del minion di cui si sta eseguendo l'upgrade. È possibile ottenere l'elenco degli ID dei minion eseguendo il comando salt-key -L sul Salt Master.

    Suggerimento
    Suggerimento

    Per vedere lo stato e l'avanzamento del processo di adozione, controllare il Ceph Dashboard o eseguire uno dei comandi seguenti sul Salt Master:

    root@master # ceph status
    root@master # ceph versions
    root@master # salt-run upgrade.status
  4. Al termine dell'adozione, annullare l'impostazione del flag noout se il nodo di cui si sta eseguendo l'upgrade è un nodo OSD:

    cephuser@adm > ceph osd rm-noout SHORT_NODE_NAME

7.4 Esecuzione dell'upgrade dei nodi del gateway

Adesso, eseguire l'upgrade dei nodi del gateway separati (Metadata Server, Object Gateway, NFS Ganesha o iSCSI Gateway). Eseguire l'upgrade del sistema operativo sottostante a SUSE Linux Enterprise Server 15 SP2 per ogni nodo:

  • Se tutti i nodi del cluster sono registrati su SUSE Customer Center, eseguire il comando zypper migration.

  • Se i nodi del cluster dispongono di archivi software assegnati manualmente, eseguire il comando zypper dup seguito dal comando reboot.

Questo passaggio si applica anche ai nodi che fanno parte del cluster, ma a cui non è stato ancora assegnato nessun ruolo (in caso di dubbi, controllare l'elenco degli host sul Salt Master fornito dal comando salt-key -L e confrontarlo con l'output del comando salt-run upgrade.status).

In seguito all'upgrade del sistema operativo su tutti i nodi del cluster, installare il pacchetto ceph-salt e applicare la configurazione del cluster. I servizi del gateway effettivi vengono ridistribuiti nella modalità in container alla fine della procedura di upgrade.

Nota
Nota

I servizi Metadata Server e Object Gateway non sono disponibili dall'inizio dell'upgrade a SUSE Linux Enterprise Server 15 SP2 fino alla ridistribuzione al termine della procedura di upgrade.

7.5 Installazione di ceph-salt e applicazione della configurazione del cluster

Prima di avviare la procedura di installazione di ceph-salt e di applicazione della configurazione del cluster, verificare lo stato del cluster e dell'upgrade eseguendo i comandi seguenti:

root@master # ceph status
root@master # ceph versions
root@master # salt-run upgrade.status
  1. Rimuovere i processi cron rbd_exporter e rgw_exporter creati da DeepSea. Sul Salt Master con il ruolo di root, eseguire il comando crontab -e per modificare la crontab. Eliminare gli elementi seguenti, se presenti:

    # SALT_CRON_IDENTIFIER:deepsea rbd_exporter cron job
    */5 * * * * /var/lib/prometheus/node-exporter/rbd.sh > \
     /var/lib/prometheus/node-exporter/rbd.prom 2> /dev/null
    # SALT_CRON_IDENTIFIER:Prometheus rgw_exporter cron job
    */5 * * * * /var/lib/prometheus/node-exporter/ceph_rgw.py > \
     /var/lib/prometheus/node-exporter/ceph_rgw.prom 2> /dev/null
  2. Esportare la configurazione del cluster da DeepSea eseguendo i comandi seguenti:

    root@master # salt-run upgrade.ceph_salt_config > ceph-salt-config.json
    root@master # salt-run upgrade.generate_service_specs > specs.yaml
  3. Disinstallare DeepSea e installare ceph-salt sul Salt Master:

    root@master # zypper remove 'deepsea*'
    root@master # zypper install ceph-salt
  4. Riavviare il Salt Master e sincronizzare i moduli Salt:

    root@master # systemctl restart salt-master.service
    root@master # salt \* saltutil.sync_all
  5. Importare la configurazione del cluster di DeepSea in ceph-salt:

    root@master # ceph-salt import ceph-salt-config.json
  6. Generare le chiavi SSH per la comunicazione tra i nodi e il cluster:

    root@master # ceph-salt config /ssh generate
    Suggerimento
    Suggerimento

    Verificare che la configurazione del cluster sia stata importata da DeepSea e specificare le potenziali opzioni ignorate:

    root@master # ceph-salt config ls

    Per una descrizione completa della configurazione del cluster, fare riferimento alla Sezione 5.3.2, «Configurazione delle proprietà del cluster».

  7. Applicare la configurazione e abilitare cephadm:

    root@master # ceph-salt apply
  8. Se è necessario specificare l'URL del registro del container locale e le credenziali di accesso, seguire la procedura descritta nella Sezione 5.3.2.11, «Configurazione del registro del container».

  9. Se le immagini del container in uso non provengono da registry.suse.com, ma dal registro configurato in locale, comunicare a Ceph quale immagine del container utilizzare eseguendo

    root@master # ceph config set global container_image IMAGE_NAME

    Esempio:

    root@master # ceph config set global container_image 192.168.121.1:5000/my/ceph/image
  10. Interrompere e disabilitare i daemon ceph-crash di SUSE Enterprise Storage 6. I nuovi moduli in container di tali daemon saranno avviati automaticamente in un secondo momento.

    root@master # salt '*' service.stop ceph-crash
    root@master # salt '*' service.disable ceph-crash

7.6 Esecuzione dell'upgrade e adozione dello stack di monitoraggio

La procedura descritta di seguito adotta tutti i componenti dello stack di monitoraggio (vedere Book “Guida alle operazioni e all'amministrazione”, Chapter 16 “Monitoraggio e creazione di avvisi” per ulteriori dettagli).

  1. Sospendere l'utilità di coordinamento:

    cephuser@adm > ceph orch pause
  2. Eseguire i comandi seguenti su qualsiasi nodo su cui sono in esecuzione Prometheus, Grafana e Alertmanager (il Salt Master di default):

    cephuser@adm > cephadm adopt --style=legacy --name prometheus.$(hostname)
    cephuser@adm > cephadm adopt --style=legacy --name alertmanager.$(hostname)
    cephuser@adm > cephadm adopt --style=legacy --name grafana.$(hostname)
    Suggerimento
    Suggerimento

    Se non è in esecuzione il registro delle immagini del container di default registry.suse.com, è necessario specificare l'immagine da utilizzare, ad esempio:

    cephuser@adm > cephadm --image 192.168.121.1:5000/caasp/v4.5/prometheus-server:2.18.0 \
      adopt --style=legacy --name prometheus.$(hostname)
    cephuser@adm > cephadm --image 192.168.121.1:5000/caasp/v4.5/prometheus-alertmanager:0.16.2 \
      adopt --style=legacy --name alertmanager.$(hostname)
    cephuser@adm > cephadm --image 192.168.121.1:5000/ses/7/ceph/grafana:7.0.3 \
     adopt --style=legacy --name grafana.$(hostname)

    Per ulteriori dettagli sull'uso delle immagini del container personalizzate o locali, fare riferimento a Book “Guida alle operazioni e all'amministrazione”, Chapter 16 “Monitoraggio e creazione di avvisi”, Section 16.1 “Configurazione di immagini personalizzate o locali”.

  3. Rimuovere Node-Exporter. Non è necessario eseguire la migrazione di tale utilità, che verrà reinstallata come container quando verrà applicato il file specs.yaml.

    tux > sudo zypper rm golang-github-prometheus-node_exporter
  4. Applicare le specifiche del servizio esportate in precedenza da DeepSea:

    cephuser@adm > ceph orch apply -i specs.yaml
  5. Riprendere l'utilità di coordinamento:

    cephuser@adm > ceph orch resume

7.7 Ridistribuzione del servizio del gateway

7.7.1 Esecuzione dell'upgrade di Object Gateway

In SUSE Enterprise Storage 7, gli Object Gateway sono sempre configurati con un dominio per consentire l'uso della funzionalità multisito (vedere Book “Guida alle operazioni e all'amministrazione”, Chapter 21 “Ceph Object Gateway”, Section 21.13 “Object Gateway multisito” per ulteriori dettagli) in un secondo momento. Se Object Gateway è stato configurato in modalità sito singolo in SUSE Enterprise Storage 6, seguire la procedura indicata di seguito per aggiungere un dominio. Se non si prevede di utilizzare la funzionalità multisito, è possibile utilizzare il valore default per il nome del dominio, del gruppo di zone e delle zone.

  1. Creare un nuovo dominio:

    cephuser@adm > radosgw-admin realm create --rgw-realm=REALM_NAME --default
  2. Facoltativamente, rinominare il gruppo di zone e la zona di default.

    cephuser@adm > radosgw-admin zonegroup rename \
     --rgw-zonegroup default \
     --zonegroup-new-name=ZONEGROUP_NAME
    cephuser@adm > radosgw-admin zone rename \
     --rgw-zone default \
     --zone-new-name ZONE_NAME \
     --rgw-zonegroup=ZONEGROUP_NAME
  3. Configurare il gruppo di zone master:

    cephuser@adm > radosgw-admin zonegroup modify \
     --rgw-realm=REALM_NAME \
     --rgw-zonegroup=ZONEGROUP_NAME \
     --endpoints http://RGW.EXAMPLE.COM:80 \
     --master --default
  4. Configurare la zona master: A tale scopo, saranno necessarie la chiave di accesso (ACCESS_KEY) e la chiave segreta (SECRET_KEY) dell'utente Object Gateway con il flag system abilitato. In genere, si tratta dell'utente admin. Per ottenere la chiave di accesso (ACCESS_KEY) e la chiave segreta (SECRET_KEY), eseguire radosgw-admin user info --uid admin.

    cephuser@adm > radosgw-admin zone modify \
     --rgw-realm=REALM_NAME \
     --rgw-zonegroup=ZONEGROUP_NAME \
     --rgw-zone=ZONE_NAME \
     --endpoints http://RGW.EXAMPLE.COM:80 \
     --access-key=ACCESS_KEY \
     --secret=SECRET_KEY \
     --master --default
  5. Eseguire il commit della configurazione aggiornata:

    cephuser@adm > radosgw-admin period update --commit

Per inserire il servizio Object Gateway in container, creare il file della specifica corrispondente come descritto nella Sezione 5.4.3.4, «Distribuzione degli Object Gateway» e applicarlo.

cephuser@adm > ceph orch apply -i RGW.yml

7.7.2 Esecuzione dell'upgrade di NFS Ganesha

Di seguito viene mostrato come eseguire la migrazione di un servizio NFS Ganesha esistente su cui è in esecuzione Ceph Nautilus a un container NFS Ganesha su cui è in esecuzione Ceph Octopus.

Avvertimento
Avvertimento

Nella documentazione seguente si presuppone che l'utente abbia già eseguito correttamente l'upgrade dei servizi Ceph di base.

NFS Ganesha memorizza la configurazione aggiuntiva di ogni daemon e la esporta in un pool RADOS. È possibile individuare il pool RADOS configurato nella riga watch_url del blocco RADOS_URLS nel file ganesha.conf. Per default, questo pool sarà denominato ganesha_config.

Prima di provare a eseguire la migrazione, si consiglia di creare una copia dell'esportazione e degli oggetti di configurazione del daemon ubicati nel pool RADOS. Per individuare il pool RADOS configurato, eseguire il comando seguente:

cephuser@adm > grep -A5 RADOS_URLS /etc/ganesha/ganesha.conf

Per elencare i contenuti del pool RADOS:

cephuser@adm > rados --pool ganesha_config --namespace ganesha ls | sort
  conf-node3
  export-1
  export-2
  export-3
  export-4

Per copiare gli oggetti RADOS:

cephuser@adm > RADOS_ARGS="--pool ganesha_config --namespace ganesha"
cephuser@adm > OBJS=$(rados $RADOS_ARGS ls)
cephuser@adm > for obj in $OBJS; do rados $RADOS_ARGS get $obj $obj; done
cephuser@adm > ls -lah
total 40K
drwxr-xr-x 2 root root 4.0K Sep 8 03:30 .
drwx------ 9 root root 4.0K Sep 8 03:23 ..
-rw-r--r-- 1 root root 90 Sep 8 03:30 conf-node2
-rw-r--r-- 1 root root 90 Sep 8 03:30 conf-node3
-rw-r--r-- 1 root root 350 Sep 8 03:30 export-1
-rw-r--r-- 1 root root 350 Sep 8 03:30 export-2
-rw-r--r-- 1 root root 350 Sep 8 03:30 export-3
-rw-r--r-- 1 root root 358 Sep 8 03:30 export-4

Su ogni singolo nodo, occorre interrompere il servizio NFS Ganesha esistente e sostituirlo con un container gestito da cephadm.

  1. Interrompere e disabilitare il servizio NFS Ganesha esistente:

    cephuser@adm > systemctl stop nfs-ganesha
    cephuser@adm > systemctl disable nfs-ganesha
  2. In seguito all'interruzione del servizio NFS Ganesha esistente, è possibile distribuirne uno nuovo in un container tramite cephadm. A tale scopo, è necessario creare una specifica del servizio contenente un service_id che verrà utilizzato per identificare questo nuovo cluster NFS, il nome host del nodo di cui si sta eseguendo la migrazione indicato come host nella specifica di posizionamento e lo spazio dei nomi e il pool RADOS contenente gli oggetti di esportazione NFS configurati. Esempio:

    service_type: nfs
    service_id: SERVICE_ID
    placement:
      hosts:
      - node2
      pool: ganesha_config
      namespace: ganesha

    Per ulteriori informazioni sulla creazione di una specifica di posizionamento, vedere la Sezione 5.4.2, «Specifica del servizio e del posizionamento».

  3. Applicare la specifica di posizionamento:

    cephuser@adm > ceph orch apply -i FILENAME.yaml
  4. Verificare che il daemon NFS Ganesha sia in esecuzione sull'host:

    cephuser@adm > ceph orch ps --daemon_type nfs
    NAME           HOST   STATUS         REFRESHED  AGE  VERSION  IMAGE NAME                                IMAGE ID      CONTAINER ID
    nfs.foo.node2  node2  running (26m)  8m ago     27m  3.3      registry.suse.com/ses/7/ceph/ceph:latest  8b4be7c42abd  c8b75d7c8f0d
  5. Ripetere questi passaggi per ogni nodo NFS Ganesha. Non è necessario creare una specifica del servizio separata per ogni nodo. È sufficiente aggiungere il nome host di ciascun nodo alla specifica del servizio NFS esistente e riapplicarla.

È possibile eseguire la migrazione delle esportazioni esistenti in due modi diversi:

  • Ricrearle manualmente o riassegnarle tramite il Ceph Dashboard.

  • Copiare manualmente i contenuti di ogni oggetto RADOS di ciascun daemon nella configurazione comune di NFS Ganesha appena creata.

Procedura 7.1: Copia manuale delle esportazioni nel file di configurazione comune di NFS Ganesha
  1. Creare l'elenco degli oggetti RADOS di ciascun daemon:

    cephuser@adm > RADOS_ARGS="--pool ganesha_config --namespace ganesha"
    cephuser@adm > DAEMON_OBJS=$(rados $RADOS_ARGS ls | grep 'conf-')
  2. Creare una copia degli oggetti RADOS di ciascun daemon:

    cephuser@adm > for obj in $DAEMON_OBJS; do rados $RADOS_ARGS get $obj $obj; done
    cephuser@adm > ls -lah
    total 20K
    drwxr-xr-x 2 root root 4.0K Sep 8 16:51 .
    drwxr-xr-x 3 root root 4.0K Sep 8 16:47 ..
    -rw-r--r-- 1 root root 90 Sep 8 16:51 conf-nfs.SERVICE_ID
    -rw-r--r-- 1 root root 90 Sep 8 16:51 conf-node2
    -rw-r--r-- 1 root root 90 Sep 8 16:51 conf-node3
  3. Ordinare e fondere gli elementi in un singolo elenco di esportazioni:

    cephuser@adm > cat conf-* | sort -u > conf-nfs.SERVICE_ID
    cephuser@adm > cat conf-nfs.foo
    %url "rados://ganesha_config/ganesha/export-1"
    %url "rados://ganesha_config/ganesha/export-2"
    %url "rados://ganesha_config/ganesha/export-3"
    %url "rados://ganesha_config/ganesha/export-4"
  4. Scrivere sul nuovo file di configurazione comune di NFS Ganesha:

    cephuser@adm > rados $RADOS_ARGS put conf-nfs.SERVICE_ID conf-nfs.SERVICE_ID
  5. Inviare una notifica al daemon NFS Ganesha:

    cephuser@adm > rados $RADOS_ARGS notify conf-nfs.SERVICE_ID conf-nfs.SERVICE_ID
    Nota
    Nota

    Tramite questa azione, il daemon ricaricherà la configurazione.

Al termine della migrazione, è possibile rimuovere il servizio NFS Ganesha basato su Nautilus.

  1. Rimuovere NFS Ganesha:

    cephuser@adm > zypper rm nfs-ganesha
    Reading installed packages...
    Resolving package dependencies...
    The following 5 packages are going to be REMOVED:
      nfs-ganesha nfs-ganesha-ceph nfs-ganesha-rados-grace nfs-ganesha-rados-urls nfs-ganesha-rgw
    5 packages to remove.
    After the operation, 308.9 KiB will be freed.
    Continue? [y/n/v/...? shows all options] (y): y
    (1/5) Removing nfs-ganesha-ceph-2.8.3+git0.d504d374e-3.3.1.x86_64 .................................................................................................................................................................................................................................................................................................[done]
    (2/5) Removing nfs-ganesha-rgw-2.8.3+git0.d504d374e-3.3.1.x86_64 ..................................................................................................................................................................................................................................................................................................[done]
    (3/5) Removing nfs-ganesha-rados-urls-2.8.3+git0.d504d374e-3.3.1.x86_64 ...........................................................................................................................................................................................................................................................................................[done]
    (4/5) Removing nfs-ganesha-rados-grace-2.8.3+git0.d504d374e-3.3.1.x86_64 ..........................................................................................................................................................................................................................................................................................[done]
    (5/5) Removing nfs-ganesha-2.8.3+git0.d504d374e-3.3.1.x86_64 ......................................................................................................................................................................................................................................................................................................[done]
    Additional rpm output:
    warning: /etc/ganesha/ganesha.conf saved as /etc/ganesha/ganesha.conf.rpmsave
  2. Rimuovere le impostazioni esistenti del cluster dal Ceph Dashboard:

    cephuser@adm > ceph dashboard reset-ganesha-clusters-rados-pool-namespace

7.7.3 Esecuzione dell'upgrade del Metadata Server

Diversamente dai servizi MON, MGR e OSD, il Metadata Server non può essere adottato sul posto. Al contrario, è necessario ridistribuirlo in container tramite l'utilità di coordinamento Ceph.

  1. Eseguire il comando ceph fs ls per ottenere il nome del file system, ad esempio:

    cephuser@adm > ceph fs ls
    name: cephfs, metadata pool: cephfs_metadata, data pools: [cephfs_data ]
  2. Creare un nuovo file della specifica del servizio mds.yml, come descritto nella Sezione 5.4.3.3, «Distribuzione dei Metadata Server», utilizzando il nome del file system come service_id e specificando gli host su cui verranno eseguiti i daemon MDS. Esempio:

    service_type: mds
    service_id: cephfs
    placement:
      hosts:
      - ses-min1
      - ses-min2
      - ses-min3
  3. Eseguire il comando ceph orch apply -i mds.yml per applicare la specifica del servizio e avviare i daemon MDS.

7.7.4 Esecuzione dell'upgrade di iSCSI Gateway

Per eseguire l'upgrade di iSCSI Gateway, è necessario ridistribuire tale servizio nei container tramite l'utilità di coordinamento Ceph. Se sono presenti più iSCSI Gateway, occorre ridistribuirli uno per uno per ridurre il tempo di fermo del servizio.

  1. Interrompere e disabilitare i daemon iSCSI esistenti su ciascun nodo iSCSI Gateway:

    tux > sudo systemctl stop rbd-target-gw
    tux > sudo systemctl disable rbd-target-gw
    tux > sudo systemctl stop rbd-target-api
    tux > sudo systemctl disable rbd-target-api
  2. Creare una specifica del servizio per l'iSCSI Gateway come descritto nella Sezione 5.4.3.5, «Distribuzione di iSCSI Gateway». A tale scopo, sono necessarie le impostazioni pool, trusted_ip_list e api_* del file /etc/ceph/iscsi-gateway.cfg esistente. Se il supporto per SSL è abilitato (api_secure = true), sono necessari inoltre il certificato (/etc/ceph/iscsi-gateway.crt) e la chiave (/etc/ceph/iscsi-gateway.key) SSL.

    Ad esempio, se /etc/ceph/iscsi-gateway.cfg contiene quanto segue:

    [config]
    cluster_client_name = client.igw.ses-min5
    pool = iscsi-images
    trusted_ip_list = 10.20.179.203,10.20.179.201,10.20.179.205,10.20.179.202
    api_port = 5000
    api_user = admin
    api_password = admin
    api_secure = true

    È necessario creare il file della specifica del servizio iscsi.yml seguente:

    service_type: iscsi
    service_id: igw
    placement:
      hosts:
      - ses-min5
    spec:
      pool: iscsi-images
      trusted_ip_list: "10.20.179.203,10.20.179.201,10.20.179.205,10.20.179.202"
      api_port: 5000
      api_user: admin
      api_password: admin
      api_secure: true
      ssl_cert: |
        -----BEGIN CERTIFICATE-----
        MIIDtTCCAp2gAwIBAgIYMC4xNzc1NDQxNjEzMzc2MjMyXzxvQ7EcMA0GCSqGSIb3
        DQEBCwUAMG0xCzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARVdGFoMRcwFQYDVQQHDA5T
        [...]
        -----END CERTIFICATE-----
      ssl_key: |
        -----BEGIN PRIVATE KEY-----
        MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC5jdYbjtNTAKW4
        /CwQr/7wOiLGzVxChn3mmCIF3DwbL/qvTFTX2d8bDf6LjGwLYloXHscRfxszX/4h
        [...]
        -----END PRIVATE KEY-----
    Nota
    Nota

    Le impostazioni pool, trusted_ip_list, api_port, api_user, api_password, api_secure sono identiche a quelle del file /etc/ceph/iscsi-gateway.cfg. I valori ssl_cert e ssl_key possono essere copiati dai file di chiave e certificato SSL esistenti. Verificare che il rientro sia corretto e che il carattere della barra verticale | venga visualizzato alla fine delle righe ssl_cert: e ssl_key: (vedere il contenuto del file iscsi.yml riportato sopra).

  3. Eseguire il comando ceph orch apply -i iscsi.yml per applicare la specifica del servizio e avviare i daemon iSCSI Gateway.

  4. Rimuovere il pacchetto ceph-iscsi precedente da ciascuno dei nodi iSCSI Gateway esistenti:

    cephuser@adm > zypper rm -u ceph-iscsi

7.8 Pulizia successiva all'upgrade

In seguito all'upgrade, seguire la procedura di pulizia indicata di seguito:

  1. Verificare che l'upgrade del cluster sia riuscito correttamente controllando la versione corrente di Ceph:

    cephuser@adm > ceph versions
  2. Assicurarsi che nessun OSD precedente si unisca al cluster:

    cephuser@adm > ceph osd require-osd-release octopus
  3. Abilitare il modulo dell'utilità di dimensionamento automatico:

    cephuser@adm > ceph mgr module enable pg_autoscaler
    Importante
    Importante

    Per default, in SUSE Enterprise Storage 6, l'opzione pg_autoscale_mode era impostata su warn per i pool. L'opzione generava un messaggio di avviso se il numero dei gruppi di posizionamento non era ottimale, senza però avviare il dimensionamento automatico. Per default, in SUSE Enterprise Storage 7, l'opzione pg_autoscale_mode è impostata su on per i nuovi pool e i gruppi di posizionamento vengono effettivamente sottoposti a dimensionamento automatico. Il processo di upgrade non modifica automaticamente l'opzione pg_autoscale_mode dei pool esistenti. Se si desidera modificarla su on per sfruttare tutti i vantaggi dell'utilità di dimensionamento automatico, vedere le istruzioni nel Book “Guida alle operazioni e all'amministrazione”, Chapter 17 “Gestione dei dati memorizzati”, Section 17.4.12 “Abilitazione dell'utilità di dimensionamento automatico del gruppo di posizionamento”.

    Ulteriori dettagli sono disponibili nel Book “Guida alle operazioni e all'amministrazione”, Chapter 17 “Gestione dei dati memorizzati”, Section 17.4.12 “Abilitazione dell'utilità di dimensionamento automatico del gruppo di posizionamento”.

  4. Impedire i client precedenti a Luminous:

    cephuser@adm > ceph osd set-require-min-compat-client luminous
  5. Abilitare il modulo dell'utilità di bilanciamento:

    cephuser@adm > ceph balancer mode upmap
    cephuser@adm > ceph balancer on

    Ulteriori dettagli sono disponibili nel Book “Guida alle operazioni e all'amministrazione”, Chapter 29 “Moduli di Ceph Manager”, Section 29.1 “Servizio di bilanciamento”.

  6. Facoltativamente, abilitare il modulo di telemetria:

    cephuser@adm > ceph mgr module enable telemetry
    cephuser@adm > ceph telemetry on

    Ulteriori dettagli sono disponibili nel Book “Guida alle operazioni e all'amministrazione”, Chapter 29 “Moduli di Ceph Manager”, Section 29.2 “Abilitazione del modulo di telemetria”.

A Aggiornamenti alla manutenzione di Ceph basati sulle release intermedie upstream "Octopus"

Molti pacchetti di chiavi di SUSE Enterprise Storage 7 si basano sulle serie di release Octopus di Ceph. Quando vengono pubblicate dal progetto Ceph (https://github.com/ceph/ceph) nuove release intermedie nella serie Octopus, SUSE Enterprise Storage 7 viene aggiornato con le correzioni di bug e i backport delle funzioni upstream più recenti.

Questo capitolo contiene un riepilogo delle modifiche principali presenti in ogni release intermedia upstream che sono state o che verranno incluse nel prodotto.

Release intermedia Octopus 15.2.5

La release intermedia Octopus 15.2.5 comprende le correzioni e altre modifiche seguenti:

  • CephFS: le policy automatiche di partizionamento della sotto-struttura statica possono adesso essere configurate tramite i nuovi attributi estesi di aggiunta temporanea distribuiti e casuali sulle directory. Per ulteriori informazioni consultare la documentazione seguente: https://docs.ceph.com/docs/master/cephfs/multimds/

  • I monitor dispongono adesso dell'opzione di configurazione mon_osd_warn_num_repaired, impostata a 10 per default. Se un OSD ha riparato un numero di errori di I/O nei dati archiviati superiore a quello impostato, viene generato un avviso di integrità OSD_TOO_MANY_REPAIRS.

  • Adesso, se i flag no scrub e/o no deep-scrub sono impostati a livello globale o di pool, le puliture pianificate del tipo disabilitato verranno interrotte. Tutte le puliture avviate dagli utenti NON verranno interrotte.

  • È stato risolto il problema in base al quale osdmap non veniva ottimizzato in un cluster integro.

Release intermedia Octopus 15.2.4

La release intermedia Octopus 15.2.4 comprende le correzioni e altre modifiche seguenti:

  • CVE-2020-10753: rgw: purifica i caratteri di fine riga in ExposeHeader di s3 CORSConfiguration

  • Object Gateway: i sottocomandi radosgw-admin relativi agli orphan-radosgw-admin orphans find, radosgw-admin orphans finish e radosgw-admin orphans list-jobs-sono stati deprecati. Non sono stati mantenuti attivamente e, dal momento che memorizzano risultati intermedi sul cluster, potrebbero potenzialmente riempire un cluster quasi pieno. Sono stati sostituiti da rgw-orphan-list, uno strumento attualmente considerato sperimentale.

  • RBD: il nome dell'oggetto del pool RBD utilizzato per memorizzare la pianificazione dell'eliminazione definitiva del cestino RBD è stato modificato da rbd_trash_trash_purge_schedule a rbd_trash_purge_schedule. Gli utenti che hanno già iniziato a utilizzare la funzionalità di pianificazione dell'eliminazione definitiva del cestino RBD e hanno configurato pianificazioni a livello di pool o spazio dei nomi devono copiare l'oggetto rbd_trash_trash_purge_schedule su rbd_trash_purge_schedule prima di eseguire l'upgrade e rimuovere rbd_trash_purge_schedule utilizzando i comandi seguenti in ogni pool e spazio dei nomi RBD in cui è stata precedentemente configurata una pianificazione dell'eliminazione definitiva del cestino:

    rados -p pool-name [-N namespace] cp rbd_trash_trash_purge_schedule rbd_trash_purge_schedule
    rados -p pool-name [-N namespace] rm rbd_trash_trash_purge_schedule

    In alternativa, utilizzare qualsiasi altro metodo pratico di ripristino della pianificazione in seguito all'upgrade.

Release intermedia Octopus 15.2.3

  • La release intermedia Octopus 15.2.3 era una release di correzione rapida per risolvere il problema in base al quale veniva visualizzato il danneggiamento di WAL se bluefs_preextend_wal_files e bluefs_buffered_io erano abilitati contemporaneamente. La correzione contenuta nella release 15.2.3 è soltanto una misura temporanea (il valore di default di bluefs_preextend_wal_files viene modificato su false). La correzione definitiva, molto probabilmente disponibile con la release intermedia 15.2.6, prevede la rimozione completa dell'opzione bluefs_preextend_wal_files.

Release intermedia Octopus 15.2.2

La release intermedia Octopus 15.2.2 fornisce una patch per una vulnerabilità della sicurezza:

  • CVE-2020-10736: correzione di un bypass di autorizzazione nei MON e nei MGR

Release intermedia Octopus 15.2.1

La release intermedia Octopus 15.2.1 risolve il problema in base al quale l'upgrade rapido da Luminous (SES5.5) a Nautilus (SES6) a Octopus (SES7) causava l'arresto anomalo degli OSD. Inoltre, questa release applica una patch a due vulnerabilità di sicurezza della release iniziale di Octopus (15.2.0):

  • CVE-2020-1759: correzione del riutilizzo nonce nella modalità sicura msgr V2

  • CVE-2020-1760: correzione dell'errore di XSS causato dalla suddivisione dell'intestazione RGW GetObject

B Aggiornamenti della documentazione

Questo capitolo elenca le modifiche dei contenuti della presente documentazione relative alla release di SUSE Enterprise Storage corrente.

  • Il capitolo su Ceph Dashboard (Book “Guida alle operazioni e all'amministrazione”) è stato spostato di un livello nella struttura della guida per consentire la ricerca direttamente nel sommario dei relativi argomenti dettagliati.

  • La struttura di Book “Guida alle operazioni e all'amministrazione” è stata aggiornata per adeguarsi alla serie di guide attuale. Alcuni capitoli sono stati spostati in altre guide (jsc#SES-1397).

Glossario

Desktop

Albero di instradamento

Un termine assegnato a qualsiasi diagramma in cui vengono mostrati i diversi instradamenti che possono essere intrapresi da un ricevitore.

Alertmanager

Binario singolo che gestisce gli avvisi inviati dal server Prometheus e che invia notifiche all'utente finale.

Ceph Dashboard

Un'applicazione di gestione e monitoraggio Ceph integrata e basata sul Web per l'amministrazione di diversi aspetti e oggetti del cluster. Il dashboard viene implementato sotto forma di modulo di Ceph Manager.

Ceph Manager

Ceph Manager o MGR è il software del Ceph Manager che raccoglie tutte le informazioni sullo stato del cluster in un'unica posizione.

Ceph Monitor

Ceph Monitor o MON è il software del Ceph Monitor.

ceph-salt

Fornisce gli strumenti per la distribuzione dei cluster Ceph gestiti da cephdam tramite Salt.

cephadm

cephadm distribuisce e gestisce i cluster Ceph connettendosi agli host del daemon manager tramite SSH per aggiungere, rimuovere o aggiornare i container del daemon Ceph.

CephFS

File system Ceph.

CephX

Protocollo di autenticazione Ceph. Cephx opera come Kerberos, ma non dispone di nessun Single point of failure.

Client Ceph

Raccolta di componenti Ceph che possono accedere ai cluster di memorizzazione Ceph. Sono inclusi Object Gateway, il dispositivo di blocco Ceph, CephFS e le librerie, i moduli del kernel e i client FUSE corrispondenti.

Cluster di memorizzazione Ceph

Set di base del software di memorizzazione in cui vengono memorizzati i dati dell'utente. Tale set è costituito da Ceph monitor e OSD.

Compartimento

Punto in cui vengono aggregati altri nodi in una gerarchia di ubicazioni fisiche.

CRUSH, mappa CRUSH

Acronimo di Controlled Replication Under Scalable Hashing: un algoritmo che determina la modalità di storage e recupero dei dati mediante il calcolo delle ubicazioni di memorizzazione dati. Per CRUSH è richiesta una mappa del cluster per memorizzare e recuperare dati negli OSD in modo pressoché casuale, con una distribuzione uniforme dei dati nel cluster.

Daemon Ceph OSD

Il daemon ceph-osd è il componente di Ceph responsabile della memorizzazione degli oggetti su un file system locale e della fornitura dell'accesso a questi ultimi sulla rete.

Dispositivo di blocco RADOS (RADOS Block Device, RBD)

Componente di storage di blocco di Ceph. Noto anche come dispositivo di blocco Ceph.

DriveGroups

I DriveGroups sono una dichiarazione di uno o più layout OSD che è possibile mappare a unità fisiche. Il layout OSD definisce il modo in cui Ceph alloca fisicamente lo storage OSD sui supporti corrispondenti ai criteri specificati.

Gateway Samba

Il gateway Samba si unisce ad Active Directory nel dominio Windows per l'autenticazione e l'autorizzazione degli utenti.

Grafana

Soluzione di monitoraggio e analisi di database.

Gruppo di zone
Memorizzazione degli oggetti Ceph

"Prodotto", servizio o funzionalità di memorizzazione degli oggetti, costituiti da un cluster di memorizzazione Ceph e da un Ceph Object Gateway.

Metadata Server

Metadata Server o MDS è il software dei metadati Ceph.

Modulo di sincronizzazione degli archivi

Modulo che consente la creazione di una zona di Object Gateway in cui conservare la cronologia delle versioni degli oggetti S3.

Multizona
Nodo

Qualsiasi computer o server in un cluster Ceph.

Nodo admin

L'host dal quale si eseguono i comandi correlati a Ceph per amministrare gli host del cluster.

Nodo OSD

Un nodo del cluster in cui vengono memorizzati i dati, vengono gestiti la replica, il recupero e il ribilanciamento dei dati e vengono fornite alcune informazioni sul monitoraggio nei Ceph monitor mediante la verifica di altri daemon Ceph OSD.

Object Gateway

Il componente gateway S3/Swift per Ceph Object Store. Noto anche come RADOS Gateway (RGW).

OSD

Object Storage Device: unità di memorizzazione fisica o logica.

PAG

Gruppo di posizionamento: una sottodivisione di un pool, utilizzata per il perfezionamento delle prestazioni.

Pool

Partizioni logiche per la memorizzazione di oggetti come immagini disco.

Prometheus

Kit di strumenti per la creazione di avvisi e il monitoraggio del sistema.

Regola CRUSH

Regola di posizionamento dei dati CRUSH che si applica a determinati pool.

Release intermedia

Qualsiasi release ad hoc che include esclusivamente correzioni dei bug o per la sicurezza.

Reliable Autonomic Distributed Object Store (RADOS)

Set di base del software di memorizzazione in cui vengono memorizzati i dati dell'utente (MON+OSD).

Samba

Software di integrazione Windows.

Set di regole

Regole per determinare il posizionamento dei dati per un pool.