- Informazioni su questa guida
- I Presentazione di SUSE Enterprise Storage (SES)
- 1 SES e Ceph
- 2 Requisiti hardware e raccomandazioni
- 2.1 Panoramica sulla rete
- 2.2 Configurazioni ad architettura multipla
- 2.3 Configurazione hardware
- 2.4 Nodi storage oggetto
- 2.5 Nodi monitor
- 2.6 Nodi Object Gateway
- 2.7 Nodi Metadata Server
- 2.8 Nodo admin
- 2.9 Nodi iSCSI Gateway
- 2.10 SES e altri prodotti SUSE
- 2.11 Limitazioni di denominazione
- 2.12 Condivisione di un server da parte di OSD e monitor
- 3 Configurazione ad elevata disponibilità del nodo admin
- II Distribuzione del cluster Ceph
- III Upgrade dalle release precedenti
- 10 Upgrade da SUSE Enterprise Storage 6 a 7.1
- 10.1 Attività preparatorie all'upgrade
- 10.2 Esecuzione dell'upgrade del Salt Master
- 10.3 Esecuzione dell'upgrade dei nodi MON, MGR e OSD
- 10.4 Esecuzione dell'upgrade dei nodi del gateway
- 10.5 Installazione di
ceph-salt
e applicazione della configurazione del cluster - 10.6 Esecuzione dell'upgrade e adozione dello stack di monitoraggio
- 10.7 Ridistribuzione del servizio del gateway
- 10.8 Pulizia successiva all'upgrade
- 11 Upgrade da SUSE Enterprise Storage 7 a 7.1
- 11.1 Attività preparatorie all'upgrade
- 11.2 Migrazione di SUSE Linux Enterprise Server su ciascun nodo del cluster alla versione SUSE Linux Enterprise Server 15 SP3
- 11.3 Aggiornamento dei pacchetti relativi a SUSE Enterprise Storage su ciascun nodo del cluster
- 11.4 Upgrade dei servizi esistenti del cluster Ceph
- 10 Upgrade da SUSE Enterprise Storage 6 a 7.1
- A Aggiornamenti alla manutenzione di Ceph basati sulle release intermedie upstream "Pacific"
- Glossario
- 1.1 Interfacce con l'archivio dati Ceph
- 1.2 Esempio di Ceph su piccola scala
- 2.1 Panoramica sulla rete
- 2.2 Configurazione minima del cluster
- 3.1 Cluster ad elevata disponibilità a 2 nodi per il nodo admin
- 7.1 Distribuzione di un cluster minimo
- 9.1 Cluster Ceph con un singolo iSCSI Gateway
- 9.2 Cluster Ceph con più iSCSI Gateway
Copyright © 2020–2024 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 dei marchi di fabbrica (®, ™, ecc.) indicano i marchi di fabbrica di SUSE e delle sue 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.1 dalla versione precedente.
SUSE Enterprise Storage 7.1 è un'estensione per SUSE Linux Enterprise Server 15 SP3 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.1 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 #
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:
#
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.1 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.1 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 .
- 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
, 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
, 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 <doc-team@suse.com>. 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 fileSEGNAPOSTO: sostituire SEGNAPOSTO con il valore effettivo
PATH
: variabile di ambientels
,--help
: comandi, opzioni e parametriuser
: nome dell'utente o del gruppopackage_name: nome di un pacchetto software
Alt, Alt–F1: tasto da premere o combinazione di tasti. I tasti sono visualizzati in maiuscolo come se fossero sulla tastiera.
AMD/Intel Questo paragrafo si riferisce esclusivamente alle architetture AMD64/Intel 64. Le frecce contrassegnano l'inizio e la fine del blocco di testo.
IBM Z, POWER Questo paragrafo si riferisce esclusivamente alle architetture
IBM Z
ePOWER
. 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 prefissosudo
.#
command
>
sudo
command
Comandi che possono essere eseguiti anche da utenti senza privilegi.
>
command
Avvisi
Avvertimento: avvertenzaInformazioni essenziali che è indispensabile conoscere prima di procedere. Segnala problemi di sicurezza, potenziali perdite di dati, danni hardware o pericoli fisici.
Importante: avviso importanteInformazioni importanti che è consigliabile leggere prima di procedere.
Nota: notaInformazioni aggiuntive, che illustrano ad esempio le differenze tra le varie versioni del software.
Suggerimento: suggerimentoInformazioni utili, come linee guida o consigli pratici.
Avvisi compatti
Informazioni aggiuntive, che illustrano ad esempio le differenze tra le varie versioni del software.
Informazioni utili, come linee guida o consigli pratici.
4 Supporto #
Di seguito sono riportate l'Informativa sul supporto per SUSE Enterprise Storage e informazioni generali sulle anteprime della tecnologia. Per i dettagli sul ciclo di vita del prodotto, vedere il https://www.suse.com/lifecycle.
Se si ha diritto al supporto, ulteriori dettagli su come raccogliere informazioni per un ticket di supporto sono disponibili all'indirizzo https://documentation.suse.com/sles-15/html/SLES-all/cha-adm-support.html.
4.1 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 con nomi che terminano con -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.2 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 presentano le seguenti limitazioni:
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.
SUSE potrebbe rilevare che un'anteprima non soddisfa le esigenze dei clienti o del mercato o che non è confacente agli standard aziendali. Le anteprime della tecnologia possono essere rimosse da un prodotto in qualsiasi momento. SUSE non si impegna a fornire una versione supportata di tali tecnologie in futuro.
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.1.
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
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
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 #
, 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 all'amministrazione e alle operazioni”, 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.1 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.
- Dispositivo di blocco RADOS (RADOS Block Device, RBD)
È 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».
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 co-ubicati 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.
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.
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:
Una piccola partizione denominata BlueFS che implementa funzionalità di tipo file system richieste da RocksDB.
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.
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/pacific/.
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.
NotaSUSE 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.
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-SP3/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.
La configurazione della rete di amministrazione aggiuntiva, che consente ad esempio la separazione delle reti SSH, Salt o DNS, non è né testata né supportata.
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.
Impostare la rete di cluster utilizzando il comando seguente:
#
ceph config set global cluster_network MY_NETWORKRiavviare gli OSD per eseguire l'associazione alla rete di cluster specificata:
#
systemctl restart ceph-*@osd.*.serviceVerificare 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"
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.
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.
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.
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-SP3/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 GBPer ulteriori dettagli su
osd_memory_target
, consultare questo riferimento: Book “Guida all'amministrazione e alle operazioni”, 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.
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 #
Per ulteriori informazioni su BlueStore, consultare Sezione 1.4, «BlueStore».
Si consiglia di riservare 4 GB per il dispositivo WAL. Sebbene la dimensione minima del DB sia 64 GB per i workload solo RBD, quella consigliata per i workload di Object Gateway e CephFS è il 2% della capacità del dispositivo principale (ma almeno 196 GB).
ImportantePer 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 all'amministrazione e alle operazioni”, 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.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.
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-SP3/single-html/SLE-HA-install-quick/#sec-ha-inst-quick-req.
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.
Configurare un cluster HA di base a 2 nodi con storage condiviso come descritto in https://documentation.suse.com/sle-ha/15-SP3/single-html/SLE-HA-install-quick/#art-sleha-install-quick.
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-SP3/single-html/SLES-virtualization/#sec-vt-installation-kvm.Sul primo nodo del cluster, creare una nuova macchina virtuale (VM) KVM utilizzando
libvirt
come descritto in https://documentation.suse.com/sles/15-SP3/single-html/SLES-virtualization/#sec-libvirt-inst-virt-install. Utilizzare lo storage condiviso preconfigurato per memorizzare le immagini del disco della VM.Al termine della configurazione della VM, esportarne la configurazione su un file XML sullo storage condiviso. Usare la seguente sintassi:
#
virsh dumpxml VM_NAME > /path/to/shared/vm_name.xmlCreare una risorsa per la VM del nodo admin. Per informazioni generali sulla creazione di risorse HA, consultare https://documentation.suse.com/sle-ha/15-SP3/single-html/SLE-HA-guide/#cha-conf-hawk2. 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.
Sul guest VM appena creato, distribuire il nodo admin compresi i servizi aggiuntivi necessari. Seguire la procedura pertinente indicata nella Capitolo 6, 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 in sostituzione dei pacchetti RPM. Il processo di distribuzione prevede due passaggi fondamentali:
- 5 Installazione e configurazione di SUSE Linux Enterprise Server
Installare e registrare SUSE Linux Enterprise Server 15 SP3 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:
- 6 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:- 7 Distribuzione del cluster di bootstrap mediante
ceph-salt
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.
- 8 Distribuzione dei rimanenti servizi di base mediante cephadm
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.
- 9 Distribuzione di servizi aggiuntivi
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.1 include una struttura che apre la gestione dello storage Ceph a client eterogene…
4 Introduzione e task comuni #
A partire da SUSE Enterprise Storage 7, i servizi Ceph vengono distribuiti sotto forma di container in sostituzione dei pacchetti RPM. Il processo di distribuzione prevede due passaggi fondamentali:
- Distribuzione del cluster di bootstrap
Questa fase è denominata Distribuzione giorno 1 e include le seguenti attività: installazione del sistema operativo sottostante, configurazione dell'infrastruttura Salt e distribuzione del cluster minimo che consiste in un servizio MON e un servizio MGR.
Installare ed eseguire le attività di configurazione di base del sistema operativo sottostante (SUSE Linux Enterprise Server 15 SP3) su tutti i nodi del cluster.
Distribuire l'infrastruttura Salt su tutti i nodi del cluster per eseguire le preparazioni di distribuzione iniziali tramite
ceph-salt
.Configurare le proprietà di base del cluster tramite
ceph-salt
e distribuirlo.
- Distribuzione di servizi aggiuntivi
Durante la Distribuzione giorno 2, vengono distribuiti servizi Ceph aggiuntivi, sia di base che non fondamentali, ad esempio gateway e stack di monitoraggio.
Tenere presente che nella documentazione della community Ceph viene utilizzato il comando cephadm bootstrap
durante la distribuzione iniziale. ceph-salt
richiama automaticamente il comando cephadm bootstrap
. Il comando cephadm bootstrap
non deve essere eseguito direttamente. Le distribuzioni dei cluster Ceph in cui è utilizzato in modo manuale il comando cephadm bootstrap
non saranno supportate.
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
oppure online all'indirizzo https://www.suse.com/releasenotes/.
5 Installazione e configurazione di SUSE Linux Enterprise Server #
Installare e registrare SUSE Linux Enterprise Server 15 SP3 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-SP3/html/SLES-all/cha-install.html è possibile trovare ulteriori dettagli su come installare SUSE Linux Enterprise Server.
Installare l'estensione SUSE Enterprise Storage 7.1 su ogni nodo del cluster.
Suggerimento: installazione di SUSE Enterprise Storage insieme a SUSE Linux Enterprise ServerÈ possibile installare l'estensione SUSE Enterprise Storage 7.1 separatamente dopo aver installato SUSE Linux Enterprise Server 15 SP3 oppure è possibile aggiungerla durante la procedura di installazione di SUSE Linux Enterprise Server 15 SP3.
All'indirizzo https://documentation.suse.com/sles/15-SP3/html/SLES-all/cha-register-sle.html è possibile trovare ulteriori dettagli su come installare le estensioni.
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-SP3/single-html/SLES-admin/#sec-network-yast. Per ulteriori informazioni sulla configurazione di un server DNS, vedere https://documentation.suse.com/sles/15-SP3/single-html/SLES-admin/#cha-dns.
6 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: 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
.
Installare il
salt-master
sul nodo Salt Master:root@master #
zypper in salt-masterVerificare che il servizio
salt-master
sia abilitato e avviato, se necessario abilitarlo e avviarlo:root@master #
systemctl enable salt-master.serviceroot@master #
systemctl start salt-master.serviceSe 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 per la zona appropriata. Ad esempio,public
.Installare il pacchetto
salt-minion
su tutti i nodi minion.root@minion >
zypper in salt-minionModificare
/etc/salt/minion
e rimuovere i commenti dalla riga seguente:#log_level_logfile: warning
Modificare il livello di log da
warning
ainfo
.Nota:log_level_logfile
elog_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
.NotaAssicurarsi di impostare il livello di log su tutti i nodi del cluster (minion).
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.
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.serviceVerificare che il servizio
salt-minion
sia abilitato e avviato su tutti i nodi. Abilitarlo e avviarlo se necessario:#
systemctl enable salt-minion.service#
systemctl start salt-minion.serviceVerificare ogni impronta digitale del Salt Minion e accettare tutte le chiavi salt sul Salt Master se le impronte digitali corrispondono.
NotaSe 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-allVerificare che le chiavi siano state accettate:
root@master #
salt-key --list-allVerificare se tutti i Salt Minion rispondono:
root@master #
salt-run manage.status
7 Distribuzione del cluster di bootstrap mediante ceph-salt
#
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.
7.1 Installazione 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 precedente installa ceph-salt-formula come dipendenza che modifica la configurazione del Salt Master inserendo 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.serviceroot@master #
salt \* saltutil.sync_all
7.2 Configurazione delle proprietà del cluster #
Utilizzare il comando ceph-salt config
per configurare le proprietà di base del cluster.
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 all'amministrazione e alle operazioni”, Chapter 28 “Configurazione del cluster Ceph”, Section 28.2 “Database di configurazione” per maggiori informazioni.
7.2.1 Utilizzo della shell ceph-salt
#
Se si esegue config
senza alcun percorso o sottocomando, viene creata una shell ceph-salt
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 ceph-salt
ls di , 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]
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 →|.
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.
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
7.2.2 Aggiunta di Salt Minion #
Includere nella configurazione del cluster Ceph tutti o un sottoinsieme di Salt Minion distribuiti e accettati nella Capitolo 6, 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]
7.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 '*'
7.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.
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]
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.
7.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
7.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:
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.
7.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]
7.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 disableSe 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.comIn 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, comepool.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.comroot@master #
ceph-salt config /time_server/external_servers add pool.ntp.orgL'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-SP3/html/SLES-all/cha-ntp.html#sec-ntp-yast sono disponibili ulteriori informazioni sulla configurazione della sincronizzazione dell'orario.
7.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 adminroot@master #
ceph-salt config /cephadm_bootstrap/dashboard/password set PWD
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
7.2.10 Utilizzo del registro del container #
Il cluster Ceph deve avere accesso a un registro del container per poter effettuare il download e la distribuzione dei servizi Ceph in container. Sono previsti due modi per accedere al registro:
Se il cluster può accedere al registro di default all'indirizzo
registry.suse.com
(direttamente o tramite proxy), è possibile puntareceph-salt
direttamente a tale URL senza creare un registro locale. Continuare seguendo i passaggi descritti nella Sezione 7.2.10.2, «Configurazione del percorso alle immagini del container».Se il cluster non può accedere al registro di default, ad esempio per una distribuzione con air gap, è necessario configurare un registro container locale. Dopo che il registro locale è stato creato e configurato, è necessario puntare
ceph-salt
a tale registro.
7.2.10.1 Creazione e configurazione del registro locale (facoltativo) #
Esistono diversi metodi per creare un registro locale. Le istruzioni fornite in questa sezione sono esempi di creazione di registri sicuri e non sicuri. Per informazioni generali sull'esecuzione di un registro delle immagini del container, fare riferimento a https://documentation.suse.com/sles/15-SP3/single-html/SLES-container/#sec-docker-registry-installation.
Distribuire il registro su un computer accessibile da tutti i nodi del cluster. Si consiglia di utilizzare il nodo admin. Per default, il registro resta in ascolto sulla porta 5000.
Sul nodo del registro, utilizzare il seguente comando per assicurarsi che la porta sia libera:
ss -tulpn | grep :5000
Se altri processi (come iscsi-tcmu
) sono già in ascolto sulla porta 5000, individuare un'altra porta libera utilizzabile per mappare la porta 5000 nel container del registro.
Verificare che l'estensione Containers Module sia abilitata:
>
SUSEConnect --list-extensions | grep -A2 "Containers Module" Containers Module 15 SP3 x86_64 (Activated)Verificare che i seguenti pacchetti siano installati: apache2-utils (se si abilita un registro sicuro), cni, cni-plugins, podman, podman-cni-config e skopeo.
Recuperare le seguenti informazioni:
Il nome di dominio completo dell'host del registro (
REG_HOST_FQDN
).Un numero di porta disponibile utilizzabile per mappare la porta 5000 del container del registro (
REG_HOST_PORT
).Se il registro sarà sicuro o non sicuro (
insecure=[true|false]
).
Per avviare un registro non sicuro (senza cifratura SSL), seguire la procedura indicata di seguito:
Configurare
ceph-salt
per il registro non sicuro:cephuser@adm >
ceph-salt config containers/registries_conf enablecephuser@adm >
ceph-salt config containers/registries_conf/registries \ add prefix=REG_HOST_FQDN
insecure=true \ location=REG_HOST_PORT
:5000Avviare il registro non sicuro creando la directory necessaria (ad esempio,
/var/lib/registry
) e avviando il registro con il comandopodman
:#
mkdir -p /var/lib/registry#
podman run --privileged -d --name registry \ -pREG_HOST_PORT
:5000 -v /var/lib/registry:/var/lib/registry \ --restart=always registry:2Per avviare il registro dopo un riavvio, creare un file di unità
systemd
per il registro e abilitarlo:>
sudo
podman generate systemd --files --name registry>
sudo
mv container-registry.service /etc/systemd/system/>
sudo
systemctl enable container-registry.service
Per avviare un registro sicuro, seguire la procedura indicata di seguito:
Creare le directory necessarie:
#
mkdir -p /var/lib/registry/{auth,certs}Generare un certificato SSL:
#
openssl req -newkey rsa:4096 -nodes -sha256 \ -keyout /var/lib/registry/certs/domain.key -x509 -days 365 \ -out /var/lib/registry/certs/domain.crtNotaImpostare il valore di
CN=[value]
sul nome di dominio completo dell'host ([REG_HOST_FQDN
]).Copiare il certificato su tutti i nodi del cluster e aggiornare la cache del certificato:
#
salt-cp '*' /var/lib/registry/certs/domain.crt \ /etc/pki/trust/anchors/#
salt '*' cmd.shell "update-ca-certificates"Generare una combinazione di nome utente e password per l'autenticazione al registro:
#
htpasswd2 -bBc /var/lib/registry/auth/htpasswd \REG_USERNAME
REG_PASSWORD
Avviare il registro sicuro. Utilizzare il flag
REGISTRY_STORAGE_DELETE_ENABLED=true
per poter eliminare in seguito le immagini con il comandoskopeo delete
.podman run --name myregistry -p
REG_HOST_PORT
:5000 \ -v /var/lib/registry:/var/lib/registry \ -v /var/lib/registry/auth:/auth:z \ -e "REGISTRY_AUTH=htpasswd" \ -e "REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm" \ -e REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd \ -v /var/lib/registry/certs:/certs:z \ -e "REGISTRY_HTTP_TLS_CERTIFICATE=/certs/domain.crt" \ -e "REGISTRY_HTTP_TLS_KEY=/certs/domain.key" \ -e REGISTRY_STORAGE_DELETE_ENABLED=true \ -e REGISTRY_COMPATIBILITY_SCHEMA1_ENABLED=true -d registry:2Effettuare un test dell'accesso sicuro al registro:
>
curl https://REG_HOST_FQDN
:REG_HOST_PORT
/v2/_catalog \ -uREG_USERNAME
:REG_PASSWORD
Dopo aver creato il registro locale, è necessario sincronizzare le immagini del container dal registro ufficiale SUSE, disponibile all'indirizzo
registry.suse.com
con quello locale. A tale scopo, è possibile utilizzare il comandoskopeo sync
disponibile nel pacchetto skopeo. Per ulteriori dettagli, fare riferimento alla documentazione (man 1 skopeo-sync
). Si considerino i seguenti esempi:Esempio 7.1: visualizzazione dei file manifest #skopeo inspect docker://registry.suse.com/ses/7.1/ceph/ceph | jq .RepoTags skopeo inspect docker://registry.suse.com/ses/7.1/ceph/grafana | jq .RepoTags skopeo inspect docker://registry.suse.com/ses/7.1/ceph/prometheus-server:2.32.1 | jq .RepoTags skopeo inspect docker://registry.suse.com/ses/7.1/ceph/prometheus-node-exporter:1.1.2 | jq .RepoTags skopeo inspect docker://registry.suse.com/ses/7.1/ceph/prometheus-alertmanager:0.21.0 | jq .RepoTags
Esempio 7.2: sincronizzazione con una directory #Sincronizzare tutte le immagini Ceph:
skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/ceph /root/images/
Sincronizzare solo le immagini più recenti:
skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/ceph:latest /root/images/
Esempio 7.3: sincronizzazione delle immagini Grafana: #skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/grafana /root/images/
Sincronizzare solo le immagini Grafana più recenti:
skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/grafana:latest /root/images/
Esempio 7.4: sincronizzazione delle immagini Prometheus più recenti #skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/prometheus-server:2.32.1 /root/images/ skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/prometheus-node-exporter:1.1.2 /root/images/ skopeo sync --src docker --dest dir registry.suse.com/ses/7.1/ceph/prometheus-alertmanager:0.21.0 /root/images/
Configurare l'URL del registro locale:
cephuser@adm >
ceph-salt config /containers/registry_auth/registry set REG_HOST_URLConfigurare il nome utente e la password per accedere al registro locale:
cephuser@adm >
ceph-salt config /containers/registry_auth/username set REG_USERNAMEcephuser@adm >
ceph-salt config /containers/registry_auth/password set REG_PASSWORD
Per evitare di ripetere la sincronizzazione del registro locale quando sono presenti nuovi container aggiornati, è possibile configurare una cache del registro.
7.2.10.2 Configurazione del percorso alle immagini del container #
Questa sezione consente di configurare il percorso delle immagini del container del cluster di bootstrap (distribuzione della prima coppia Ceph Monitor e Ceph Manager). Il percorso non si applica alle immagini del container di servizi aggiuntivi, ad esempio dello stack di monitoraggio.
Se è necessario utilizzare un proxy per comunicare con il server del registro del container, eseguire la seguente procedura di configurazione su tutti i nodi del cluster:
Copiare il file di configurazione per i container:
>
sudo
cp /usr/share/containers/containers.conf /etc/containers/containers.confModificare il file appena copiato e aggiungere l'impostazione
http_proxy
alla rispettiva sezione[engine]
; ad esempio:>
cat /etc/containers/containers.conf [engine] http_proxy=proxy.example.com [...]
È necessario che cephadm conosca un percorso URI valido per le immagini del container. Verificare l'impostazione di default eseguendo il comando:
root@master #
ceph-salt config /cephadm_bootstrap/ceph_image_path ls
Se non è necessario un registro locale o alternativo, specificare il registro del container SUSE di default:
root@master #
ceph-salt config /cephadm_bootstrap/ceph_image_path set registry.suse.com/ses/7.1/ceph/ceph
Se la distribuzione richiede un percorso specifico, ad esempio un percorso a un registro locale, configurarlo nel modo seguente:
root@master #
ceph-salt config /cephadm_bootstrap/ceph_image_path set LOCAL_REGISTRY_PATH
7.2.11 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).
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"
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 secureroot@master #
ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_service_mode secureroot@master #
ceph-salt config /cephadm_bootstrap/ceph_conf/global set ms_client_mode secure
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
7.2.12 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 globalroot@master #
ceph-salt config /cephadm_bootstrap/ceph_conf/global set cluster_network NETWORK_ADDR
7.2.13 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.1/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]
È 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
7.2.14 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
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
7.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
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
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.
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
7.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)"
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.
7.5 Disabilitazione dei client non sicuri #
Dalla versione v15.2.11 di Pacific, è stato introdotto un nuovo avviso sullo stato di integrità che informa che i client non sicuri possono unirsi al cluster. Per default, questo avviso è attivo. Il Ceph Dashboard mostrerà il cluster nello stato HEALTH_WARN
e una verifica dello stato del cluster dalla riga di comando fornisce le seguenti informazioni:
cephuser@adm >
ceph status
cluster:
id: 3fe8b35a-689f-4970-819d-0e6b11f6707c
health: HEALTH_WARN
mons are allowing insecure global_id reclaim
[...]
L'avviso indica che i Ceph Monitor stanno ancora consentendo ai client meno recenti, e privi di patch, di connettersi al cluster. Questo assicura la possibilità di connessione dei client esistenti durante l'upgrade del cluster, ma segnala la presenza di un problema che deve essere risolto. Dopo aver completato l'upgrade del cluster e di tutti i client all'ultima versione di Ceph, disattivare i client privi di patch mediante il seguente comando:
cephuser@adm >
ceph config set mon auth_allow_insecure_global_id_reclaim false
8 Distribuzione dei rimanenti servizi di base mediante cephadm #
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
).
8.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.
8.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
8.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
[...]
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
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
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 0cephuser@adm >
ceph orch ps --daemon_type mds --daemon_id my_cephfs
8.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.
8.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
orbd-mirror
), di un gateway (nfs
orgw
) o di parte dello stack di monitoraggio (alertmanager
,grafana
,node-exporter
oprometheus
).service_id
Il nome del servizio. Per le specifiche del tipo
mon
,mgr
,alertmanager
,grafana
,node-exporter
eprometheus
non è necessaria la proprietàservice_id
.placement
Specifica quali nodi eseguiranno il servizio. Per ulteriori dettagli, fare riferimento a Sezione 8.2.2, «Creazione della specifica di posizionamento».
spec
Ulteriore specifica pertinente al tipo di servizio.
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 8.3, «Distribuzione dei servizi Ceph».
8.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
[...]
8.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 8.1.1, «Visualizzazione dello stato dell'utilità di coordinamento».
8.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 8.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
---
[...]
È 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
8.3 Distribuzione dei servizi Ceph #
Una volta che il cluster di base è in esecuzione, è possibile distribuire i servizi Ceph su nodi aggiuntivi.
8.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.
Durante la distribuzione dei MON e degli MGR, ricordarsi di includere il primo MON aggiunto durante la configurazione del cluster di base nella Sezione 7.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
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:
Assicurarsi che per ogni distribuzione siano presenti almeno tre Ceph Manager.
service_type: mgr placement: hosts: - ses-min1 - ses-min2 - ses-min3
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
8.3.2 Distribuzione dei Ceph OSD #
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-devicesUtilizzare i DriveGroups (vedere Book “Guida all'amministrazione e alle operazioni”, 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
8.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:
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
8.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 all'amministrazione e alle operazioni”, 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
8.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 all'amministrazione e alle operazioni”, 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-----
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_FILEcephuser@adm >
ceph config-key set rgw/cert/REALM_NAME/ZONE_NAME.key \ -i SSL_KEY_FILE
8.3.4.1.1 Configurazione dell'Object Gateway per l'ascolto su entrambe le porte 443 e 80 #
Per configurare l'Object Gateway per l'ascolto su entrambe le porte 443 (HTTPS) e 80 (HTTP), seguire la procedura indicata di seguito:
I comandi della procedura utilizzano i valori di default
per dominio e zona.
Distribuire l'Object Gateway fornendo un file della specifica. Per ulteriori dettagli sulla specifica dell'Object Gateway, fare riferimento alla Sezione 8.3.4, «Distribuzione degli Object Gateway». Utilizzare il seguente comando:
cephuser@adm >
ceph orch apply -i SPEC_FILESe nel file della specifica non sono forniti i certificati SSL, aggiungerli utilizzando il seguente comando:
cephuser@adm >
ceph config-key set rgw/cert/default/default.crt -i certificate.pemcephuser@adm >
ceph config-key set rgw/cert/default/default.key -i key.pemModificare il valore di default dell'opzione
rgw_frontends
:cephuser@adm >
ceph config set client.rgw.default.default rgw_frontends \ "beast port=80 ssl_port=443"Rimuovere la configurazione specifica creata da cephadm. Identificare per quale destinazione è stata configurata l'opzione
rgw_frontends
eseguendo il comando:cephuser@adm >
ceph config dump | grep rgwAd esempio, la destinazione è
client.rgw.default.default.node4.yiewdu
. Rimuovere lo specifico valorergw_frontends
corrente:cephuser@adm >
ceph config rm client.rgw.default.default.node4.yiewdu rgw_frontendsSuggerimentoAnziché rimuovere un valore per
rgw_frontends
, è possibile specificarlo. Ad esempio:cephuser@adm >
ceph config set client.rgw.default.default.node4.yiewdu \ rgw_frontends "beast port=80 ssl_port=443"Riavviare gli Object Gateway:
cephuser@adm >
ceph orch restart rgw.default.default
8.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
8.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).
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"
Assicurarsi che negli IP elencati per trusted_ip_list
non sia presente uno spazio dopo la virgola di separazione.
8.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 all'amministrazione e alle operazioni”, 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-----
8.3.6 Distribuzione di NFS Ganesha #
NFS Ganesha supporta NFS versione 4.1 e versioni successive. Non supporta NFS versione 3.
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:
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 all'amministrazione e alle operazioni”, 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
).
8.3.7 Distribuzione 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 all'amministrazione e alle operazioni”, 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
8.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.
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 all'amministrazione e alle operazioni”, 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:
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 prometheusNotaAssicurarsi 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 prometheusCreare 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
Applicare i servizi di monitoraggio eseguendo:
cephuser@adm >
ceph orch apply -i monitoring.yamlPer il completamento della distribuzione dei servizi di monitoraggio potrebbero essere necessari alcuni istanti.
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 all'amministrazione e alle operazioni”, Chapter 16 “Monitoraggio e creazione di avvisi”, Section 16.5.4 “Abilitazione del monitoraggio dell'immagine RBD” per maggiori informazioni.
9 Distribuzione di servizi aggiuntivi #
9.1 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.1 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.1. 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.1 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.
9.1.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.
9.1.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.
9.1.1.2 Iniziatori iSCSI #
Questa sezione presenta brevi informazioni sugli iniziatori iSCSI utilizzati su piattaforme Linux, Microsoft Windows e VMware.
9.1.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à.
9.1.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à.
9.1.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à.
9.1.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.
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.
9.1.3 Considerazioni sulla distribuzione #
Una configurazione minima di SUSE Enterprise Storage 7.1 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.1 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 un minimo 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 modulotarget_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.
9.1.4 Installazione e configurazione #
Questa sezione descrive i passaggi per installare e configurare un iSCSI Gateway su SUSE Enterprise Storage.
9.1.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 8.3.5, «Distribuzione di iSCSI Gateway».
9.1.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
9.1.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.
Non è possibile esportare tramite iSCSI le immagini RBD con le proprietà seguenti:
immagini con la funzione di
journaling
abilitataimmagini con un'
unità di striping
inferiore a 4096 byte
Come root
, immettere il container di iSCSI Gateway:
#
cephadm enter --name CONTAINER_NAME
Da root
, avviare l'interfaccia riga di comando di iSCSI Gateway:
#
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-targetsgwcli >
/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/gatewaysgwcli >
/iscsi-target...tvol/gateways> create iscsi1 192.168.124.104gwcli >
/iscsi-target...tvol/gateways> create iscsi2 192.168.124.105
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 /disksgwcli >
/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/disksgwcli >
/iscsi-target...testvol/disks> add iscsi-images/testvol
È possibile utilizzare strumenti di livello inferiore, come targetcli
, per interrogare la configurazione locale, ma non per modificarla.
È 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 9.1.4.4, «Autenticazione e controllo dell'accesso» per ulteriori informazioni sull'autenticazione e il controllo dell'accesso.
9.1.4.4 Autenticazione e controllo dell'accesso #
L'autenticazione iSCSI è flessibile e include diverse possibilità di autenticazione.
9.1.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/hostsgwcli >
/iscsi-target...testvol/hosts> auth disable_acl
9.1.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/hostsgwcli >
/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
9.1.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:e6ca28cc9f20gwcli >
/iscsi-target...:e6ca28cc9f20> auth username=common12 password=pass12345678
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
.
9.1.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-targetsgwcli >
/iscsi-targets> discovery_auth username=du123456 password=dp1234567890
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
9.1.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
.
Se non diversamente specificato, si consiglia di non modificare l'impostazione di default di questi parametri.
9.1.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:testvolgwcli >
/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.
9.1.4.5.2 Visualizzazione delle impostazioni disk #
È possibile visualizzare il valore di tali impostazioni tramite il comando info
:
gwcli >
/> cd /disks/rbd/testvolgwcli >
/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.
SuggerimentoSi consiglia di impostare
backstore_emulate_pr
a0
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'opzionetarget_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.
9.1.5 Esportazione di immagini del dispositivo di blocco RADOS (RADOS Block Device, RBD) con tcmu-runner
#
ceph-iscsi
supporta i backstore rbd
(basati su kernel) e user:rbd
(tcmu-runner), rendendo la gestione invisibile all'utente e indipendente dal backstore.
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
Durante l'uso di tcmu-runner
, sull'immagine RBD esportata deve essere abilitata la funzione exclusive-lock
.
Parte III Upgrade dalle release precedenti #
- 10 Upgrade da SUSE Enterprise Storage 6 a 7.1
Questo capitolo descrive le procedure per eseguire l'upgrade di SUSE Enterprise Storage 6 alla versione 7.1.
- 11 Upgrade da SUSE Enterprise Storage 7 a 7.1
Questo capitolo descrive le procedure per eseguire l'upgrade di SUSE Enterprise Storage 7 alla versione 7.1.
10 Upgrade da SUSE Enterprise Storage 6 a 7.1 #
Questo capitolo descrive le procedure per eseguire l'upgrade di SUSE Enterprise Storage 6 alla versione 7.1.
L'upgrade include i task seguenti:
Esecuzione dell'upgrade da Ceph Nautilus a Pacific.
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.
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.
L'upgrade dalle versioni di SUSE Enterprise Storage precedenti alla 6 non è supportato. Innanzitutto, è necessario eseguire l'upgrade alla versione più recente di SUSE Enterprise Storage 6, quindi seguire le procedure descritte in questo capitolo.
10.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.
La migrazione dell'OSD da FileStore a BlueStore deve avvenire prima dell'aggiornamento poiché FileStore non è supportato in SUSE Enterprise Storage 7.1. Ulteriori dettagli su BlueStore e su come migrare da FileStore sono disponibili all'indirizzo https://documentation.suse.com/ses/6/single-html/ses-deployment/#filestore2bluestore.
Se è in esecuzione una versione precedente del cluster in cui sono ancora utilizzati OSD
ceph-disk
, è necessario passare aceph-volume
prima dell'upgrade. Ulteriori dettagli sono disponibili in https://documentation.suse.com/ses/6/single-html/ses-deployment/#upgrade-osd-deployment.
10.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.
Lettura delle note di rilascio. Nelle note, è 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.
All'indirizzo https://www.suse.com/releasenotes/ è possibile trovare le note di rilascio di SES 7.1.
Inoltre, dopo aver installato il pacchetto release-notes-ses dall'archivio di SES 7.1, individuare localmente le note di rilascio nella directory
/usr/share/doc/release-notes
oppure online all'indirizzo https://www.suse.com/releasenotes/.Leggere la Parte II, «Distribuzione del cluster Ceph» 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, quindi sostituire DeepSea con
ceph-salt
e cephadm. Finché non sarà stato completato l'upgrade di almeno tutti i nodi di Ceph Manager, non sarà possibile iniziare a utilizzare il modulo dell'utilità di coordinamento cephadm.L'aggiornamento dall'utilizzo degli RPM di Nautilus all'utilizzo dei container di Pacific deve avvenire 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
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 SP3 fino alla ridistribuzione dei servizi al termine della procedura di upgrade. È un aspetto particolarmente importante da tenere presente se questi servizi sono in co-location con MON, MGR oppure OSD, poiché potrebbero essere inattivi per tutta la durata dell'upgrade del cluster. Se questo rappresenta un problema, valutare di distribuire separatamente tali servizi su nodi aggiuntivi prima di procedere con l'upgrade, 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 SP3 e nuovamente per breve tempo durante la ridistribuzione di ciascun servizio nella modalità in container.
10.1.2 Backup della configurazione e dei dati del cluster #
Si consiglia vivamente di eseguire il backup completo della configurazione e dei dati del cluster prima di avviare l'upgrade a SUSE Enterprise Storage 7.1. Per istruzioni su come eseguire il backup di tutti i dati, vedere https://documentation.suse.com/ses/6/single-html/ses-admin/#cha-deployment-backup.
10.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
.
10.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:
#
zypper refresh && zypper patch
Per informazioni dettagliate sull'aggiornamento dei nodi del cluster, fare riferimento a https://documentation.suse.com/ses/6/html/ses-all/storage-salt-cluster.html#deepsea-rolling-updates.
Dopo aver applicato gli aggiornamenti, riavviare il Salt Master, sincronizzare i nuovi moduli Salt e controllare l'integrità del cluster:
root@master #
systemctl restart salt-master.serviceroot@master #
salt '*' saltutil.sync_allcephuser@adm >
ceph -s
10.1.4.1 Disabilitazione dei client non sicuri #
Dalla versione v14.2.20 di Nautilus, è stato introdotto un nuovo avviso sullo stato di integrità che informa che i client non sicuri possono unirsi al cluster. Per default, questo avviso è attivo. Il Ceph Dashboard mostrerà il cluster nello stato HEALTH_WARN
. La riga di comando verifica lo stato del cluster nel modo seguente:
cephuser@adm >
ceph status
cluster:
id: 3fe8b35a-689f-4970-819d-0e6b11f6707c
health: HEALTH_WARN
mons are allowing insecure global_id reclaim
[...]
L'avviso indica che i Ceph Monitor stanno ancora consentendo ai client meno recenti, e privi di patch, di connettersi al cluster. Questo assicura la possibilità di connessione dei client esistenti durante l'upgrade del cluster, ma segnala la presenza di un problema che deve essere risolto. Dopo aver completato l'upgrade del cluster e di tutti i client all'ultima versione di Ceph, disattivare i client privi di patch mediante il seguente comando:
cephuser@adm >
ceph config set mon auth_allow_insecure_global_id_reclaim false
10.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 SP3 e SUSE Enterprise Storage 7.1, oltre che al registro delle immagini del container.
10.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 a https://documentation.suse.com/sles/15-SP3/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-SP3
SLE-Module-Basesystem/15-SP3
SLE-Module-Server-Applications/15-SP3
SUSE-Enterprise-Storage-7.1
10.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.1/ceph/ceph
registry.suse.com/ses/7.1/ceph/grafana
registry.suse.com/ses/7.1/ceph/prometheus-server
registry.suse.com/ses/7.1/ceph/prometheus-node-exporter
registry.suse.com/ses/7.1/ceph/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 7.2.10, «Utilizzo del registro del container» per ulteriori dettagli sulla configurazione di un registro delle immagini del container locale.
10.2 Esecuzione dell'upgrade del Salt Master #
Di seguito è descritta la procedura di upgrade del Salt Master:
Eseguire l'upgrade del sistema operativo sottostante a SUSE Linux Enterprise Server 15 SP3:
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 dareboot
.
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_refreshSe 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 utilizzare192.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
Se è necessario specificare le informazioni di autenticazione per il registro, aggiungere il blocco
ses7_container_registry_auth:
; ad esempio:ses7_container_image: 192.168.121.1:5000/my/ceph/image ses7_container_registries: - location: 192.168.121.1:5000 ses7_container_registry_auth: registry: 192.168.121.1:5000 username: USER_NAME password: PASSWORD
Salvare il file e applicare le modifiche:
root@master #
salt '*' saltutil.refresh_pillarAssimilare la configurazione esistente:
cephuser@adm >
ceph config assimilate-conf -i /etc/ceph/ceph.confVerificare 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 16.2.7-640-gceb23c7491b (ceb23c7491bd96ab7956111374219a4cdcf6f8f4) pacific (stable) os: SUSE Linux Enterprise Server 15 SP3 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)
10.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:
Prima di adottare eventuali nodi OSD, effettuare una conversione di formato dei nodi OSD per migliorare la gestione dei dati OMAP. A tale scopo, eseguire il seguente comando sul nodo admin:
cephuser@adm >
ceph config set osd bluestore_fsck_quick_fix_on_mount trueI nodi OSD verranno convertiti automaticamente al termine della relativa adozione.
NotaLa conversione può richiedere un tempo variabile da minuti a ore, a seconda della quantità di dati OMAP contenuti nel relativo disco rigido. Per ulteriori informazioni, fare riferimento al https://docs.ceph.com/en/latest/releases/pacific/#upgrading-non-cephadm-clusters.
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_NAMESostituire 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 sonoses-min1
eses-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 [...]Eseguire l'upgrade del sistema operativo sottostante a SUSE Linux Enterprise Server 15 SP3:
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 dareboot
.
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.adoptSostituire 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.SuggerimentoPer 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 statusroot@master #
ceph versionsroot@master #
salt-run upgrade.statusAl 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
10.4 Esecuzione dell'upgrade dei nodi del gateway #
Successivamente, eseguire l'upgrade dei nodi del gateway separati (gateway Samba, Metadata Server, Object Gateway, NFS Ganesha o iSCSI Gateway). Eseguire l'upgrade del sistema operativo sottostante a SUSE Linux Enterprise Server 15 SP3 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 comandoreboot
.
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
).
Dopo che l'upgrade del sistema operativo è stato eseguito su tutti i nodi del cluster, il passaggio successivo consiste nell'installare il pacchetto ceph-salt e nell'applicare la configurazione del cluster. I servizi del gateway effettivi vengono ridistribuiti nella modalità in container alla fine della procedura di upgrade.
I servizi Metadata Server e Object Gateway non sono disponibili dall'inizio dell'upgrade a SUSE Linux Enterprise Server 15 SP3 fino alla ridistribuzione al termine della procedura di upgrade.
10.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 statusroot@master #
ceph versionsroot@master #
salt-run upgrade.status
Rimuovere i processi cron
rbd_exporter
ergw_exporter
creati da DeepSea. Sul Salt Master con il ruolo diroot
, eseguire il comandocrontab -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
Esportare la configurazione del cluster da DeepSea eseguendo i comandi seguenti:
root@master #
salt-run upgrade.ceph_salt_config > ceph-salt-config.jsonroot@master #
salt-run upgrade.generate_service_specs > specs.yamlDisinstallare DeepSea e installare
ceph-salt
sul Salt Master:root@master #
zypper remove 'deepsea*'root@master #
zypper install ceph-saltRiavviare il Salt Master e sincronizzare i moduli Salt:
root@master #
systemctl restart salt-master.serviceroot@master #
salt \* saltutil.sync_allImportare la configurazione del cluster di DeepSea in
ceph-salt
:root@master #
ceph-salt import ceph-salt-config.jsonGenerare le chiavi SSH per la comunicazione tra i nodi e il cluster:
root@master #
ceph-salt config /ssh generateSuggerimentoVerificare che la configurazione del cluster sia stata importata da DeepSea e specificare le potenziali opzioni ignorate:
root@master #
ceph-salt config lsPer una descrizione completa della configurazione del cluster, fare riferimento alla Sezione 7.2, «Configurazione delle proprietà del cluster».
Applicare la configurazione e abilitare cephadm:
root@master #
ceph-salt applySe è necessario specificare l'URL del registro del container locale e le credenziali di accesso, seguire la procedura descritta nella Sezione 7.2.10, «Utilizzo del registro del container».
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 eseguendoroot@master #
ceph config set global container_image IMAGE_NAMEAd esempio:
root@master #
ceph config set global container_image 192.168.121.1:5000/my/ceph/imageInterrompere 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-crashroot@master #
salt '*' service.disable ceph-crash
10.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 all'amministrazione e alle operazioni”, Chapter 16 “Monitoraggio e creazione di avvisi” per ulteriori dettagli).
Sospendere l'utilità di coordinamento:
cephuser@adm >
ceph orch pauseEseguire 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)SuggerimentoSe non è in esecuzione il registro delle immagini del container di default
registry.suse.com
, è necessario specificare l'immagine da utilizzare per ogni comando, ad esempio:cephuser@adm >
cephadm --image 192.168.121.1:5000/ses/7.1/ceph/prometheus-server:2.32.1 \ adopt --style=legacy --name prometheus.$(hostname)cephuser@adm >
cephadm --image 192.168.121.1:5000/ses/7.1/ceph/prometheus-alertmanager:0.21.0 \ adopt --style=legacy --name alertmanager.$(hostname)cephuser@adm >
cephadm --image 192.168.121.1:5000/ses/7.1/ceph/grafana:7.5.12 \ adopt --style=legacy --name grafana.$(hostname)Le immagini del container richieste e le relative versioni sono elencate in Book “Guida all'amministrazione e alle operazioni”, Chapter 16 “Monitoraggio e creazione di avvisi”, Section 16.1 “Configurazione di immagini personalizzate o locali”.
Rimuovere il node-exporter da tutti i nodi. Non è necessario eseguire la migrazione del node-exporter, che verrà reinstallato come container quando verrà applicato il file
specs.yaml
.>
sudo
zypper rm golang-github-prometheus-node_exporterIn alternativa, è possibile rimuovere il node-exporter contemporaneamente da tutti i nodi usando Salt sul nodo admin:
root@master #
salt '*' pkg.remove golang-github-prometheus-node_exporterApplicare le specifiche del servizio esportate in precedenza da DeepSea:
cephuser@adm >
ceph orch apply -i specs.yamlSuggerimentoSe non è in esecuzione il registro delle immagini del container di default
registry.suse.com
, ma un registro del container locale, prima di distribuire il node-exporter, configurare cephadm in modo che utilizzi l'immagine del container dal registro locale per la distribuzione del node-exporter. Diversamente, è possibile saltare questo passaggio e ignorare l'avviso successivo.cephuser@adm >
ceph config set mgr mgr/cephadm/container_image_node_exporter QUALIFIED_IMAGE_PATHAssicurarsi che tutte le immagini del container per i servizi di monitoraggio puntino al registro locale, non solo a quello per il node-exporter. Il precedente passaggio di verifica è richiesto solo per il node-exporter, ma a questo punto si consiglia di impostare tutte le immagini del container di monitoraggio in cephadm in modo che puntino al registro locale.
In caso contrario, le nuove distribuzioni dei servizi di monitoraggio, nonché le ridistribuzioni, utilizzeranno la configurazione cephadm di default ed è possibile che non si sia in grado di distribuire i servizi (nel caso di distribuzioni con air gap) o che si distribuiscano servizi con versioni miste.
La modalità con cui cephadm deve essere configurato per utilizzare le immagini del container provenienti dal registro locale è descritta nel Book “Guida all'amministrazione e alle operazioni”, Chapter 16 “Monitoraggio e creazione di avvisi”, Section 16.1 “Configurazione di immagini personalizzate o locali”.
Riprendere l'utilità di coordinamento:
cephuser@adm >
ceph orch resume
10.7 Ridistribuzione del servizio del gateway #
10.7.1 Esecuzione dell'upgrade di Object Gateway #
In SUSE Enterprise Storage 7.1, gli Object Gateway sono sempre configurati con un dominio per consentire l'uso della funzionalità multisito (vedere Book “Guida all'amministrazione e alle operazioni”, 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 della zona.
Creare un nuovo dominio:
cephuser@adm >
radosgw-admin realm create --rgw-realm=REALM_NAME --defaultFacoltativamente, rinominare il gruppo di zone e la zona di default.
cephuser@adm >
radosgw-admin zonegroup rename \ --rgw-zonegroup default \ --zonegroup-new-name=ZONEGROUP_NAMEcephuser@adm >
radosgw-admin zone rename \ --rgw-zone default \ --zone-new-name ZONE_NAME \ --rgw-zonegroup=ZONEGROUP_NAMEConfigurare 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 --defaultConfigurare 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'utenteadmin
. Per ottenere la chiave di accesso (ACCESS_KEY) e la chiave segreta (SECRET_KEY), eseguireradosgw-admin user info --uid admin --rgw-zone=ZONE_NAME
.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 --defaultEseguire 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 8.3.4, «Distribuzione degli Object Gateway» e applicarlo.
cephuser@adm >
ceph orch apply -i RGW.yml
10.7.2 Esecuzione dell'upgrade di NFS Ganesha #
NFS Ganesha supporta NFS versione 4.1 e versioni successive. Non supporta NFS versione 3.
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.
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 tentare qualsiasi migrazione, si consiglia vivamente di eseguire una copia degli oggetti di configurazione del daemon e dell'esportazione ubicati nel pool RADOS. Per individuare il pool RADOS configurato, eseguire il seguente comando:
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; donecephuser@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 eventuali servizi NFS Ganesha esistenti e sostituirli con un container gestito da cephadm.
Interrompere e disabilitare il servizio NFS Ganesha esistente:
cephuser@adm >
systemctl stop nfs-ganeshacephuser@adm >
systemctl disable nfs-ganeshaIn 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 Sezione 8.2, «Specifica del servizio e del posizionamento».
Applicare la specifica di posizionamento:
cephuser@adm >
ceph orch apply -i FILENAME.yamlVerificare 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.1/ceph/ceph:latest 8b4be7c42abd c8b75d7c8f0dRipetere 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.
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-')Creare una copia degli oggetti RADOS di ciascun daemon:
cephuser@adm >
for obj in $DAEMON_OBJS; do rados $RADOS_ARGS get $obj $obj; donecephuser@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-node3Ordinare e fondere gli elementi in un singolo elenco di esportazioni:
cephuser@adm >
cat conf-* | sort -u > conf-nfs.SERVICE_IDcephuser@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"Scrivere sul nuovo file di configurazione comune di NFS Ganesha:
cephuser@adm >
rados $RADOS_ARGS put conf-nfs.SERVICE_ID conf-nfs.SERVICE_IDInviare una notifica al daemon NFS Ganesha:
cephuser@adm >
rados $RADOS_ARGS notify conf-nfs.SERVICE_ID conf-nfs.SERVICE_IDNotaTramite questa azione, il daemon ricaricherà la configurazione.
Al termine della migrazione, è possibile rimuovere il servizio NFS Ganesha basato su Nautilus.
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.rpmsaveRimuovere le impostazioni esistenti del cluster dal Ceph Dashboard:
cephuser@adm >
ceph dashboard reset-ganesha-clusters-rados-pool-namespace
10.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.
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 ]Creare un nuovo file della specifica del servizio
mds.yml
, come descritto nella Sezione 8.3.3, «Distribuzione dei Metadata Server», utilizzando il nome del file system comeservice_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
Eseguire il comando
ceph orch apply -i mds.yml
per applicare la specifica del servizio e avviare i daemon MDS.
10.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.
Interrompere e disabilitare i daemon iSCSI esistenti su ciascun nodo iSCSI Gateway:
>
sudo
systemctl stop rbd-target-gw>
sudo
systemctl disable rbd-target-gw>
sudo
systemctl stop rbd-target-api>
sudo
systemctl disable rbd-target-apiCreare una specifica del servizio per l'iSCSI Gateway come descritto nella Sezione 8.3.5, «Distribuzione di iSCSI Gateway». A tale scopo, sono necessarie le impostazioni
pool
,trusted_ip_list
eapi_*
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-----
NotaLe 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 valorissl_cert
essl_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 righessl_cert:
essl_key:
(vedere il contenuto del fileiscsi.yml
riportato sopra).Eseguire il comando
ceph orch apply -i iscsi.yml
per applicare la specifica del servizio e avviare i daemon iSCSI Gateway.Rimuovere il pacchetto ceph-iscsi meno recente da ciascuno dei nodi iSCSI Gateway esistenti:
cephuser@adm >
zypper rm -u ceph-iscsi
10.8 Pulizia successiva all'upgrade #
In seguito all'upgrade, seguire la procedura di pulizia indicata di seguito:
Verificare che l'upgrade del cluster sia riuscito correttamente controllando la versione corrente di Ceph:
cephuser@adm >
ceph versionsAssicurarsi che nessun OSD precedente si unisca al cluster:
cephuser@adm >
ceph osd require-osd-release pacificSe necessario, impostare l'opzione
pg_autoscale_mode
dei pool esistenti:ImportantePer default, in SUSE Enterprise Storage 6, l'opzione
pg_autoscale_mode
era impostata suwarn
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.1, l'opzionepg_autoscale_mode
è impostata suon
per i nuovi pool e i gruppi di posizionamento vengono effettivamente sottoposti a dimensionamento automatico. Il processo di upgrade non modifica automaticamente l'opzionepg_autoscale_mode
dei pool esistenti. Se si desidera modificarla suon
per sfruttare tutti i vantaggi dell'utilità di dimensionamento automatico, vedere le istruzioni nel Book “Guida all'amministrazione e alle operazioni”, 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 all'amministrazione e alle operazioni”, Chapter 17 “Gestione dei dati memorizzati”, Section 17.4.12 “Abilitazione dell'utilità di dimensionamento automatico del gruppo di posizionamento”.
Impedire i client precedenti a Luminous:
cephuser@adm >
ceph osd set-require-min-compat-client luminousAbilitare il modulo dell'utilità di bilanciamento:
cephuser@adm >
ceph balancer mode upmapcephuser@adm >
ceph balancer onUlteriori dettagli sono disponibili nel Book “Guida all'amministrazione e alle operazioni”, Chapter 29 “Moduli di Ceph Manager”, Section 29.1 “Servizio di bilanciamento”.
Facoltativamente, abilitare il modulo di telemetria:
cephuser@adm >
ceph mgr module enable telemetrycephuser@adm >
ceph telemetry onUlteriori dettagli sono disponibili nel Book “Guida all'amministrazione e alle operazioni”, Chapter 29 “Moduli di Ceph Manager”, Section 29.2 “Abilitazione del modulo di telemetria”.
11 Upgrade da SUSE Enterprise Storage 7 a 7.1 #
Questo capitolo descrive le procedure per eseguire l'upgrade di SUSE Enterprise Storage 7 alla versione 7.1.
L'upgrade include i task seguenti:
Esecuzione dell'upgrade del sottostante SUSE Linux Enterprise Server 15 SP2 alla versione SUSE Linux Enterprise Server 15 SP3.
Esecuzione dell'upgrade da Ceph Octopus a Pacific.
11.1 Attività preparatorie all'upgrade #
Prima di avviare l'upgrade, occorre completare i task seguenti. È possibile eseguire l'upgrade da SUSE Enterprise Storage 7 in qualsiasi momento.
11.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.
Lettura delle note di rilascio. Nelle note, è 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.
All'indirizzo https://www.suse.com/releasenotes/ è possibile trovare le note di rilascio di SES 7.1.
Inoltre, dopo aver installato il pacchetto release-notes-ses dall'archivio di SES 7.1, è possibile individuare localmente le note di rilascio nella directory
/usr/share/doc/release-notes
oppure online all'indirizzo https://www.suse.com/releasenotes/.Leggere la Parte II, «Distribuzione del cluster Ceph» per acquisire dimestichezza con
ceph-salt
e con l'utilità di coordinamento Ceph, in particolare con le informazioni sulle specifiche del servizio.
11.1.2 Backup della configurazione e dei dati del cluster #
Si consiglia vivamente di eseguire il backup completo della configurazione e dei dati del cluster prima di avviare l'upgrade. Per istruzioni su come eseguire il backup di tutti i dati, vedere Book “Guida all'amministrazione e alle operazioni”, Chapter 15 “Backup e ripristino”.
11.1.3 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 SP3 e SUSE Enterprise Storage 7.1, oltre che al registro delle immagini del container.
11.1.3.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 a https://documentation.suse.com/sles/15-SP3/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-SP3
SLE-Module-Basesystem/15-SP3
SLE-Module-Server-Applications/15-SP3
SUSE-Enterprise-Storage-7.1
11.1.3.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.1/ceph/ceph
registry.suse.com/ses/7.1/ceph/grafana
registry.suse.com/ses/7.1/ceph/prometheus-server
registry.suse.com/ses/7.1/ceph/prometheus-node-exporter
registry.suse.com/ses/7.1/ceph/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 7.2.10, «Utilizzo del registro del container» per ulteriori dettagli sulla configurazione di un registro delle immagini del container locale.
11.2 Migrazione di SUSE Linux Enterprise Server su ciascun nodo del cluster alla versione SUSE Linux Enterprise Server 15 SP3 #
Se i nodi del cluster sono configurati per l'utilizzo di SUSE Customer Center, è possibile ricorrere al comando zypper migration
.
Se i nodi del cluster dispongono di archivi software configurati manualmente, è necessario aggiornare i nodi manualmente.
Per informazioni dettagliate sull'upgrade di SUSE Linux Enterprise Server mediante zypper
, fare riferimento a https://documentation.suse.com/sles/15-SP3/html/SLES-all/cha-upgrade-online.html#sec-upgrade-online-zypper.
11.3 Aggiornamento dei pacchetti relativi a SUSE Enterprise Storage su ciascun nodo del cluster #
Per aggiornare i pacchetti SUSE Enterprise Storage alla versione più recente, utilizzare il comando ceph-salt update
. Per ulteriori informazioni, fare riferimento al Book “Guida all'amministrazione e alle operazioni”, Chapter 13 “Task operativi”, Section 13.6 “Aggiornamento dei nodi del cluster”.
11.4 Upgrade dei servizi esistenti del cluster Ceph #
Eseguire l'upgrade dell'intero cluster Ceph alla versione Pacific eseguendo il seguente comando dal nodo admin:
cephuser@adm >
ceph orch upgrade start --image registry.suse.com/ses/7.1/ceph/ceph
A Aggiornamenti alla manutenzione di Ceph basati sulle release intermedie upstream "Pacific" #
Molti pacchetti di chiavi di SUSE Enterprise Storage 7.1 si basano sulle serie di release Pacific di Ceph. Quando vengono pubblicate dal progetto Ceph (https://github.com/ceph/ceph) nuove release intermedie nella serie Pacific, SUSE Enterprise Storage 7.1 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.
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.