Esegui l'aggiornamento a BeeGFS 8
Segui questi passaggi per aggiornare il tuo cluster BeeGFS HA da BeeGFS 7.4 a BeeGFS 8.
Panoramica
BeeGFS 8 introduce diverse modifiche significative che richiedono una configurazione aggiuntiva prima dell'aggiornamento da BeeGFS 7. Questo documento guida l'utente nella preparazione del cluster per i nuovi requisiti di BeeGFS 8 e quindi nell'aggiornamento a BeeGFS 8.
|
|
Prima di eseguire l'aggiornamento a BeeGFS 8, assicurarsi che il sistema esegua almeno BeeGFS 7.4. Qualsiasi cluster che esegue una versione precedente a BeeGFS 7.4 deve prima "Aggiornamento a BeeGFS 7.4" prima di eseguire l'aggiornamento a BeeGFS 8. |
Principali modifiche in BeeGFS 8
BeeGFS 8 introduce le seguenti importanti modifiche:
-
Applicazione della licenza: BeeGFS 8 richiede una licenza per utilizzare funzionalità premium come pool di archiviazione, destinazioni di archiviazione remota, BeeOND e altro ancora. Acquisisci una licenza valida per il tuo cluster BeeGFS prima di eseguire l'aggiornamento. Se necessario, puoi ottenere una licenza di valutazione temporanea di BeeGFS 8 dal "Portale delle licenze BeeGFS".
-
Migrazione del database del servizio di gestione: Per abilitare la configurazione con il nuovo formato basato su TOML in BeeGFS 8, è necessario migrare manualmente il database del servizio di gestione di BeeGFS 7 al formato aggiornato di BeeGFS 8.
-
Crittografia TLS: BeeGFS 8 introduce TLS per una comunicazione sicura tra i servizi. Sarà necessario generare e distribuire certificati TLS per il servizio di gestione di BeeGFS e per l' `beegfs`utilità da riga di comando come parte dell'aggiornamento.
Per maggiori dettagli e ulteriori modifiche in BeeGFS 8, vedere la "Guida all'aggiornamento di BeeGFS 8.0.0".
|
|
L'aggiornamento a BeeGFS 8 richiede un periodo di inattività del cluster e i client BeeGFS 7 non possono connettersi ai cluster BeeGFS 8. Coordina attentamente i tempi di aggiornamento per ridurre al minimo l'impatto operativo. |
Prepara il tuo cluster BeeGFS per l'aggiornamento
Prima di iniziare l'upgrade, prepara attentamente il tuo ambiente per garantire una transizione fluida e ridurre al minimo i tempi di inattività.
-
Verificare che tutti i server e i client utilizzino "distribuzioni Linux supportate e versioni del kernel supportate" per BeeGFS 8.
-
Assicurati che il tuo cluster sia in uno stato integro, con tutti i servizi BeeGFS in esecuzione sui nodi preferiti. Da un nodo file che esegue i servizi BeeGFS, verifica che tutte le risorse Pacemaker siano in esecuzione sui nodi preferiti:
pcs status -
Registrate ed eseguite il backup della configurazione del cluster. I dati del servizio di gestione BeeGFS verranno salvati in seguito come parte del processo di aggiornamento del database di gestione.
-
Eseguire i seguenti comandi su un client BeeGFS e salvare l'output per riferimento:
beegfs-ctl --getentryinfo --verbose /path/to/beegfs/mountpoint -
Se si utilizza il mirroring, raccogli informazioni dettagliate sullo stato in modo da poter identificare la destinazione primaria originale se entrambi i membri del mirror entrano nello stato "needs-resync":
beegfs-ctl --listtargets --longnodes --state --spaceinfo --mirrorgroups --nodetype=meta beegfs-ctl --listtargets --longnodes --state --spaceinfo --mirrorgroups --nodetype=storage -
Se si utilizza il mirroring, verificare che tutti i buddy group siano in
GOODstato prima di procedere con l'upgrade.
-
-
Arresta il sistema BeeGFS nel seguente ordine:
-
Su ciascun client, smontare il file system BeeGFS e arrestare il
beegfs-clientservizio. Per ciascun client, eseguire:systemctl stop beegfs-client -
Per ogni cluster Pacemaker, disabilita STONITH in modo da poter convalidare l'integrità del cluster dopo l'aggiornamento senza provocare riavvii inutili dei nodi:
pcs property set stonith-enabled=false -
Su tutti i cluster Pacemaker, arresta il cluster:
pcs cluster stop --all
-
Aggiorna il pacchetto di gestione BeeGFS
Su tutti i nodi file del cluster, aggiungi il repository del pacchetto BeeGFS 8 per la tua distribuzione Linux. Le istruzioni per aggiungere il repository ufficiale BeeGFS per la tua distribuzione Linux sono disponibili al "Pagina di download di BeeGFS". In caso contrario, configura di conseguenza il tuo repository mirror locale di BeeGFS.
-
Sui primi due nodi file del tuo cluster, aggiorna solo il pacchetto del demone di gestione BeeGFS a BeeGFS 8:
Per RHEL, dopo aver configurato il repository BeeGFS, eseguire i seguenti comandi:
dnf clean all dnf update beegfs-mgmtd
Aggiornare il database di gestione
Su uno dei nodi file che eseguono il servizio di gestione BeeGFS, seguire questi passaggi per migrare il database di gestione da BeeGFS 7 a BeeGFS 8.
-
Elenca tutti i dispositivi NVMe e identifica il target di gestione:
nvme netapp smdevices | grep mgmt_tgtAnnota il percorso del dispositivo dall'output (ad esempio,
/dev/nvmeXnY).-
Montare il dispositivo di destinazione di gestione sul punto di montaggio della destinazione di gestione esistente (sostituire
/dev/nvmeXnYcon il percorso del dispositivo):mount /dev/nvmeXnY /mnt/mgmt_tgt_mgmt01/
-
-
Eseguire un backup della directory dei dati di gestione:
tar --force-local -cpzf /mnt/mgmt_tgt_mgmt01/data_beegfs_7_backup_$(date +'%F_%T').tar.gz /mnt/mgmt_tgt_mgmt01/data -
Importa i dati di gestione BeeGFS 7 nel nuovo formato di database eseguendo:
/opt/beegfs/sbin/beegfs-mgmtd --import-from-v7=/mnt/mgmt_tgt_mgmt01/data/Output previsto:
Created new database version 3 at "/var/lib/beegfs/mgmtd.sqlite". Successfully imported v7 management data from "/mnt/mgmt_tgt_mgmt01/data/".
L'importazione automatica potrebbe non riuscire in tutti i casi a causa dei requisiti di convalida più rigorosi in BeeGFS 8. Ad esempio, se le destinazioni sono assegnate a pool di archiviazione inesistenti, l'importazione non riesce. Se la migrazione non riesce, non continuare con l'aggiornamento. Contatta il supporto NetApp per assistenza nella risoluzione dei problemi di migrazione del database. Puoi eseguire il downgrade dei pacchetti di gestione BeeGFS 8 e continuare a utilizzare BeeGFS 7 mentre il problema viene risolto.
-
Sposta il file SQLite generato nel mount del servizio di gestione:
mv /var/lib/beegfs/mgmtd.sqlite /mnt/mgmt_tgt_mgmt01/data/ -
Sposta il file generato
beegfs-mgmtd.tomlsul mount del servizio di gestione:mv /etc/beegfs/beegfs-mgmtd.toml /mnt/mgmt_tgt_mgmt01/mgmt_config/Preparerai il
beegfs-mgmtd.tomlfile di configurazione dopo aver completato i passaggi di licenza e configurazione TLS nelle sezioni seguenti.
Aggiorna i pacchetti BeeGFS rimanenti
Dopo aver completato la migrazione del database di gestione, aggiornare i pacchetti BeeGFS rimanenti su tutti i nodi file del cluster. Per RHEL, dopo aver configurato il repository BeeGFS, eseguire i seguenti comandi:
dnf clean all
dnf update beegfs-storage beegfs-meta libbeegfs-ib
Configurare le licenze
-
Installa i pacchetti di licenza di BeeGFS su tutti i nodi che eseguono il servizio di gestione di BeeGFS. In genere si tratta dei primi due nodi file del cluster:
dnf install libbeegfs-license -
Scarica il file di licenza di BeeGFS 8 sui nodi di gestione e posizionalo in:
/etc/beegfs/license.pem
Configura la crittografia TLS
BeeGFS 8 richiede la crittografia TLS per una comunicazione sicura tra i servizi di gestione e lo strumento CLI di BeeGFS (beegfs). Scegli uno dei tre metodi di configurazione: utilizza certificati firmati da una Certificate Authority attendibile, crea la tua CA locale per firmare i certificati per il tuo cluster BeeGFS, oppure disabilita completamente TLS per la risoluzione dei problemi (non raccomandato per la produzione).
Configura la crittografia TLS per i servizi di gestione sui tuoi nodi file utilizzando la guida "Configura la crittografia TLS per BeeGFS 8".
|
|
La configurazione TLS del client verrà completata in seguito, dopo l'aggiornamento dei client BeeGFS. In questa fase, configurare TLS solo per i servizi di gestione e beegfs-tool sui nodi file. |
Aggiorna la configurazione del servizio di gestione
Prepara il file di configurazione del servizio di gestione BeeGFS 8 trasferendo manualmente le impostazioni dal file di configurazione BeeGFS 7 nel file /mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml.
-
Sul nodo di gestione con il management target montato, fai riferimento al
/mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.conffile del servizio di gestione per BeeGFS 7 e trasferisci tutte le impostazioni nel/mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.tomlfile. Per una configurazione di base, il tuobeegfs-mgmtd.tomlpotrebbe apparire come segue:beemsg-port = 8008 grpc-port = 8010 log-level = "info" node-offline-timeout = "900s" quota-enable = false auth-disable = false auth-file = "/etc/beegfs/<mgmt_service_ip>_connAuthFile" db-file = "/mnt/mgmt_tgt_mgmt01/data/mgmtd.sqlite" license-disable = false license-cert-file = "/etc/beegfs/license.pem" tls-disable = false tls-cert-file = "/etc/beegfs/mgmtd_tls_cert.pem" tls-key-file = "/etc/beegfs/mgmtd_tls_key.pem" interfaces = ['i1b:mgmt_1', 'i2b:mgmt_2']Adatta tutti i percorsi secondo necessità in modo che corrispondano al tuo ambiente e alla configurazione TLS.
-
Su ogni file node che esegue servizi di gestione, modifica il file di servizio systemd in modo che punti alla nuova posizione del file di configurazione.
sudo sed -i 's|ExecStart=.*|ExecStart=nice -n -3 /opt/beegfs/sbin/beegfs-mgmtd --config-file /mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml|' /etc/systemd/system/beegfs-mgmtd.service-
Ricarica systemd:
systemctl daemon-reload
-
-
Per ogni file node che esegue servizi di gestione, aprire la porta 8010 per la comunicazione gRPC del servizio di gestione.
-
Aggiungi la porta TCP 8010 alla zona beegfs:
sudo firewall-cmd --zone=beegfs --permanent --add-port=8010/tcp-
Ricarica il firewall per applicare la modifica:
sudo firewall-cmd --reload
-
Aggiorna lo script monitor di BeeGFS
Lo script `beegfs-monitor`Pacemaker Open Cluster Framework (OCF) necessita di aggiornamenti per supportare il nuovo formato di configurazione TOML e la gestione dei servizi systemd. Aggiorna lo script su un nodo del cluster, quindi copia lo script aggiornato su tutti gli altri nodi.
-
Crea un backup dello script corrente:
cp /usr/lib/ocf/resource.d/eseries/beegfs-monitor /usr/lib/ocf/resource.d/eseries/beegfs-monitor.bak.$(date +%F) -
Aggiorna il percorso del file di configurazione di gestione da
.confa.toml:sed -i 's|mgmt_config/beegfs-mgmtd\.conf|mgmt_config/beegfs-mgmtd.toml|' /usr/lib/ocf/resource.d/eseries/beegfs-monitorIn alternativa, individua manualmente il seguente blocco nello script:
case $type in management) conf_path="${configuration_mount}/mgmt_config/beegfs-mgmtd.conf" ;;E sostituiscilo con:
case $type in management) conf_path="${configuration_mount}/mgmt_config/beegfs-mgmtd.toml" ;; -
Aggiorna le funzioni
get_interfaces()eget_subnet_ips()per supportare la configurazione TOML:-
Apri lo script in un editor di testo:
vi /usr/lib/ocf/resource.d/eseries/beegfs-monitor -
Individua le due funzioni:
get_interfaces()eget_subnet_ips(). -
Eliminare entrambe le funzioni intere, iniziando da
get_interfaces()fino alla fine diget_subnet_ips(). -
Copia e incolla le seguenti funzioni aggiornate al loro posto:
# Return network communication interface name(s) from the BeeGFS resource's connInterfaceFile get_interfaces() { # Determine BeeGFS service network IP interfaces. if [ "$type" = "management" ]; then interfaces_line=$(grep "^interfaces =" "$conf_path") interfaces_list=$(echo "$interfaces_line" | sed "s/.*= \[\(.*\)\]/\1/") interfaces=$(echo "$interfaces_list" | tr -d "'" | tr -d " " | tr ',' '\n') for entry in $interfaces; do echo "$entry" | cut -d ':' -f 1 done else connInterfacesFile_path=$(grep "^connInterfacesFile" "$conf_path" | tr -d "[:space:]" | cut -f 2 -d "=") if [ -f "$connInterfacesFile_path" ]; then while read -r entry; do echo "$entry" | cut -f 1 -d ':' done < "$connInterfacesFile_path" fi fi } # Return list containing all the BeeGFS resource's usable IP addresses. *Note that these are filtered by the connNetFilterFile entries. get_subnet_ips() { # Determine all possible BeeGFS service network IP addresses. if [ "$type" != "management" ]; then connNetFilterFile_path=$(grep "^connNetFilterFile" "$conf_path" | tr -d "[:space:]" | cut -f 2 -d "=") filter_ips="" if [ -n "$connNetFilterFile_path" ] && [ -e $connNetFilterFile_path ]; then while read -r filter; do filter_ips="$filter_ips $(get_ipv4_subnet_addresses $filter)" done < $connNetFilterFile_path fi echo "$filter_ips" fi } -
Salva e esci dall'editor di testo.
-
Eseguire il seguente comando per verificare la presenza di errori di sintassi nello script prima di procedere. Se non viene visualizzato alcun output, lo script è sintatticamente corretto.
bash -n /usr/lib/ocf/resource.d/eseries/beegfs-monitor
-
-
Copia lo script
beegfs-monitorOCF aggiornato su tutti gli altri nodi del cluster:scp /usr/lib/ocf/resource.d/eseries/beegfs-monitor user@node:/usr/lib/ocf/resource.d/eseries/beegfs-monitor
Riporta il cluster online
-
Dopo aver completato tutti i passaggi di aggiornamento precedenti, rimetti online il cluster avviando i servizi BeeGFS su tutti i nodi.
pcs cluster start --all -
Verificare che il
beegfs-mgmtdservizio sia stato avviato correttamente:journalctl -xeu beegfs-mgmtdL'output previsto include righe come:
Started Cluster Controlled beegfs-mgmtd. Loaded config file from "/mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml" Successfully initialized certificate verification library. Successfully loaded license certificate: TMP-113489268 Opened database at "/mnt/mgmt_tgt_mgmt01/data/mgmtd.sqlite" Listening for BeeGFS connections on [::]:8008 Serving gRPC requests on [::]:8010
Se nei log di sistema compaiono degli errori, esaminate i percorsi dei file di configurazione di gestione e verificate di aver trasferito correttamente tutti i valori dal file di configurazione BeeGFS 7.
-
Eseguire
pcs statuse verificare che il cluster sia integro e che i servizi siano avviati sui nodi preferiti. -
Una volta verificato che il cluster è integro, riattivare STONITH:
pcs property set stonith-enabled=true -
Procedere alla sezione successiva per aggiornare i client BeeGFS e verificare lo stato del cluster.
Aggiorna i client BeeGFS
Dopo aver aggiornato il cluster a BeeGFS 8, è necessario aggiornare anche tutti i client BeeGFS.
-
Se non hai ancora interrotto il servizio client BeeGFS, fallo ora:
systemctl stop beegfs-client -
Aggiungi il repository del pacchetto BeeGFS 8 per la tua distribuzione Linux. Le istruzioni per aggiungere i repository ufficiali di BeeGFS sono disponibili al "Pagina di download di BeeGFS". In alternativa, configura di conseguenza il tuo repository mirror locale di BeeGFS.
-
Aggiorna i pacchetti client BeeGFS:
Per Ubuntu/Debian:
apt-get update apt-get install --only-upgrade beegfs-client -
Configura TLS per il client. TLS è necessario per utilizzare la CLI di BeeGFS dai nodi client. Fai riferimento alla sezione "Configura TLS per i client BeeGFS 8" nella guida all'implementazione di TLS.
TLS non è richiesto per il servizio
beegfs-clientper montare il file system BeeGFS. TLS è richiesto solo per l'utilizzo degli strumenti CLI di BeeGFS e di altri servizi amministrativi. -
Avvia il servizio client BeeGFS:
systemctl start beegfs-clientSe il montaggio di BeeGFS non riesce, controlla il registro di sistema per errori. Se visualizzi messaggi come "Unable to proceed without a working root metadata node" o "Remote I/O error", l'importazione di BeeGFS 7 potrebbe non essere stata completata correttamente. Contatta il supporto NetApp per assistenza.
-
(Facoltativo) Installare e configurare il nuovo
beegfsCLI tool sui nodi client o su altri sistemi in cui si desidera eseguire i comandi amministrativi di BeeGFS:-
Installa il
beegfs-toolspacchetto:Per Ubuntu/Debian:
apt-get install beegfs-tools-
Configura TLS per lo
beegfsstrumento. TLS è necessario per utilizzare la CLI di BeeGFS da un nodo client. Fai riferimento alla sezione "Configura TLS per i client BeeGFS 8" nella guida all'implementazione di TLS.
-
Verificare l'upgrade
Dopo aver completato l'upgrade a BeeGFS 8, eseguire i seguenti comandi per verificare che l'upgrade sia stato completato con successo.
-
Verificare che l'inode root sia di proprietà dello stesso nodo metadati di prima. Questo dovrebbe avvenire automaticamente se si è utilizzata la
import-from-v7funzionalità nel servizio di gestione:beegfs entry info /mnt/beegfs -
Verificare che tutti i nodi e i target siano online e in uno stato di integrità:
beegfs health checkSe il controllo "Capacità disponibile" avvisa che i target hanno poco spazio libero, è possibile modificare le soglie del "capacity pool" definite nel
beegfs-mgmtd.tomlfile in modo che siano più adatte al proprio ambiente.