Skip to main content
BeeGFS on NetApp with E-Series Storage
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Esegui l'aggiornamento a BeeGFS 8

Collaboratori mcwhiteside

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.

Importante 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".

Importante

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

  1. Verificare che tutti i server e i client utilizzino "distribuzioni Linux supportate e versioni del kernel supportate" per BeeGFS 8.

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

    1. Eseguire i seguenti comandi su un client BeeGFS e salvare l'output per riferimento:

      beegfs-ctl --getentryinfo --verbose /path/to/beegfs/mountpoint
    2. 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
    3. Se si utilizza il mirroring, verificare che tutti i buddy group siano in GOOD stato prima di procedere con l'upgrade.

  4. Arresta il sistema BeeGFS nel seguente ordine:

    1. Su ciascun client, smontare il file system BeeGFS e arrestare il beegfs-client servizio. Per ciascun client, eseguire:

      systemctl stop beegfs-client
    2. 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
    3. 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.

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

  1. Elenca tutti i dispositivi NVMe e identifica il target di gestione:

    nvme netapp smdevices | grep mgmt_tgt

    Annota il percorso del dispositivo dall'output (ad esempio, /dev/nvmeXnY).

    1. Montare il dispositivo di destinazione di gestione sul punto di montaggio della destinazione di gestione esistente (sostituire /dev/nvmeXnY con il percorso del dispositivo):

      mount /dev/nvmeXnY /mnt/mgmt_tgt_mgmt01/
  2. 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
  3. 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/".
    Importante

    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.

  4. Sposta il file SQLite generato nel mount del servizio di gestione:

    mv /var/lib/beegfs/mgmtd.sqlite /mnt/mgmt_tgt_mgmt01/data/
  5. Sposta il file generato beegfs-mgmtd.toml sul mount del servizio di gestione:

    mv /etc/beegfs/beegfs-mgmtd.toml /mnt/mgmt_tgt_mgmt01/mgmt_config/

    Preparerai il beegfs-mgmtd.toml file 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

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

Nota

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.

  1. Sul nodo di gestione con il management target montato, fai riferimento al /mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.conf file del servizio di gestione per BeeGFS 7 e trasferisci tutte le impostazioni nel /mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml file. Per una configurazione di base, il tuo beegfs-mgmtd.toml potrebbe 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.

  2. 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
    1. Ricarica systemd:

      systemctl daemon-reload
  3. Per ogni file node che esegue servizi di gestione, aprire la porta 8010 per la comunicazione gRPC del servizio di gestione.

  4. Aggiungi la porta TCP 8010 alla zona beegfs:

    sudo firewall-cmd --zone=beegfs --permanent --add-port=8010/tcp
    1. 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.

  1. 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)
  2. Aggiorna il percorso del file di configurazione di gestione da .conf a .toml:

    sed -i 's|mgmt_config/beegfs-mgmtd\.conf|mgmt_config/beegfs-mgmtd.toml|' /usr/lib/ocf/resource.d/eseries/beegfs-monitor

    In 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"
        ;;
  3. Aggiorna le funzioni get_interfaces() e get_subnet_ips() per supportare la configurazione TOML:

    1. Apri lo script in un editor di testo:

      vi /usr/lib/ocf/resource.d/eseries/beegfs-monitor
    2. Individua le due funzioni: get_interfaces() e get_subnet_ips().

    3. Eliminare entrambe le funzioni intere, iniziando da get_interfaces() fino alla fine di get_subnet_ips().

    4. 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
      }
    5. Salva e esci dall'editor di testo.

    6. 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
  4. Copia lo script beegfs-monitor OCF 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

  1. 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
  2. Verificare che il beegfs-mgmtd servizio sia stato avviato correttamente:

    journalctl -xeu beegfs-mgmtd

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

    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.

  3. Eseguire pcs status e verificare che il cluster sia integro e che i servizi siano avviati sui nodi preferiti.

  4. Una volta verificato che il cluster è integro, riattivare STONITH:

    pcs property set stonith-enabled=true
  5. 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.

  1. Se non hai ancora interrotto il servizio client BeeGFS, fallo ora:

    systemctl stop beegfs-client
  2. 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.

  3. Aggiorna i pacchetti client BeeGFS:

    Per Ubuntu/Debian:

    apt-get update
    apt-get install --only-upgrade beegfs-client
  4. 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.

    Nota

    TLS non è richiesto per il servizio beegfs-client per montare il file system BeeGFS. TLS è richiesto solo per l'utilizzo degli strumenti CLI di BeeGFS e di altri servizi amministrativi.

  5. Avvia il servizio client BeeGFS:

    systemctl start beegfs-client

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

  6. (Facoltativo) Installare e configurare il nuovo beegfs CLI tool sui nodi client o su altri sistemi in cui si desidera eseguire i comandi amministrativi di BeeGFS:

    1. Installa il beegfs-tools pacchetto:

      Per Ubuntu/Debian:

    apt-get install beegfs-tools
    1. Configura TLS per lo beegfs strumento. 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.

  1. Verificare che l'inode root sia di proprietà dello stesso nodo metadati di prima. Questo dovrebbe avvenire automaticamente se si è utilizzata la import-from-v7 funzionalità nel servizio di gestione:

    beegfs entry info /mnt/beegfs
  2. Verificare che tutti i nodi e i target siano online e in uno stato di integrità:

    beegfs health check
    Nota

    Se il controllo "Capacità disponibile" avvisa che i target hanno poco spazio libero, è possibile modificare le soglie del "capacity pool" definite nel beegfs-mgmtd.toml file in modo che siano più adatte al proprio ambiente.