Skip to main content
BeeGFS on NetApp with E-Series Storage
O português é fornecido por meio de tradução automática para sua conveniência. O inglês precede o português em caso de inconsistências.

Atualize para BeeGFS 8

Colaboradores mcwhiteside

Siga estes passos para atualizar seu cluster BeeGFS HA de BeeGFS 7.4 para BeeGFS 8.

Visão geral

O BeeGFS 8 introduz diversas mudanças significativas que exigem configuração adicional antes da atualização do BeeGFS 7. Este documento orienta você na preparação do seu cluster para os novos requisitos do BeeGFS 8 e, em seguida, na atualização para o BeeGFS 8.

Importante Antes de atualizar para o BeeGFS 8, certifique-se de que seu sistema esteja executando pelo menos o BeeGFS 7.4. Qualquer cluster que execute uma versão anterior ao BeeGFS 7.4 deve "Atualize para BeeGFS 7.4" antes de atualizar para o BeeGFS 8.

Principais alterações no BeeGFS 8

BeeGFS 8 introduz as seguintes alterações principais:

  • Aplicação de licença: O BeeGFS 8 requer uma licença para usar recursos premium, como pools de armazenamento, destinos de armazenamento remoto, BeeOND e mais. Obtenha uma licença válida para o seu cluster BeeGFS antes de atualizar. Se necessário, você pode obter uma licença de avaliação temporária do BeeGFS 8 em "Portal de Licenças BeeGFS".

  • Migração de banco de dados do serviço de gerenciamento: para habilitar a configuração com o novo formato baseado em TOML no BeeGFS 8, você deve migrar manualmente o banco de dados do serviço de gerenciamento do BeeGFS 7 para o formato atualizado do BeeGFS 8.

  • Criptografia TLS: O BeeGFS 8 introduz TLS para comunicação segura entre serviços. Você precisará gerar e distribuir certificados TLS para o serviço de gerenciamento do BeeGFS e o beegfs utilitário de linha de comando como parte da atualização.

Para mais detalhes e alterações adicionais no BeeGFS 8, consulte o "Guia de atualização do BeeGFS 8.0.0".

Importante

A atualização para BeeGFS 8 requer a indisponibilidade do cluster e os clientes BeeGFS 7 não podem se conectar a clusters BeeGFS 8. Coordene cuidadosamente o momento da atualização para minimizar o impacto operacional.

Prepare seu cluster BeeGFS para a atualização

Antes de iniciar a atualização, prepare cuidadosamente seu ambiente para garantir uma transição tranquila e minimizar o tempo de inatividade.

  1. Verifique se todos os servidores e clientes estão usando "distribuições Linux e versões do kernel suportadas" para BeeGFS 8.

  2. Certifique-se de que seu cluster esteja em bom estado, com todos os serviços BeeGFS em execução nos nós preferenciais. A partir de um nó de arquivo executando os serviços BeeGFS, verifique se todos os recursos Pacemaker estão em execução nos nós preferenciais:

    pcs status
  3. Registre e faça backup da configuração do seu cluster. Os dados do serviço de gerenciamento BeeGFS serão copiados posteriormente como parte do processo de atualização do banco de dados de gerenciamento.

    1. Execute os seguintes comandos em um cliente BeeGFS e salve a saída para referência:

      beegfs-ctl --getentryinfo --verbose /path/to/beegfs/mountpoint
    2. Se estiver usando espelhamento, colete informações detalhadas sobre o estado para que você possa identificar o alvo primário original caso ambos os membros do espelho entrem no estado "needs-resync":

      beegfs-ctl --listtargets --longnodes --state --spaceinfo --mirrorgroups --nodetype=meta
      beegfs-ctl --listtargets --longnodes --state --spaceinfo --mirrorgroups --nodetype=storage
    3. Se estiver usando espelhamento, verifique se todos os grupos de parceiros estão no GOOD estado antes de prosseguir com a atualização.

  4. Pare o sistema BeeGFS na seguinte ordem:

    1. Em cada cliente, desmonte o sistema de arquivos BeeGFS e pare o beegfs-client serviço. Para cada cliente, execute:

      systemctl stop beegfs-client
    2. Para cada cluster Pacemaker, desative o STONITH para que você possa validar a integridade do cluster após a atualização sem acionar reinicializações desnecessárias dos nós:

      pcs property set stonith-enabled=false
    3. Em todos os clusters Pacemaker, pare o cluster:

      pcs cluster stop --all

Atualize o pacote de gerenciamento BeeGFS

Em todos os nós de arquivos do cluster, adicione o repositório de pacotes BeeGFS 8 para sua distribuição Linux. As instruções para adicionar o repositório oficial BeeGFS para sua distribuição Linux podem ser encontradas em "Página de download do BeeGFS". Caso contrário, configure seu repositório local BeeGFS mirror de acordo.

  1. Nos dois primeiros nós de arquivo do seu cluster, atualize apenas o pacote do daemon de gerenciamento BeeGFS para BeeGFS 8:

    Para RHEL, após configurar seu repositório BeeGFS, execute os seguintes comandos:

    dnf clean all
    dnf update beegfs-mgmtd

Atualize o banco de dados de gerenciamento

Em um dos nós de arquivos que executam o serviço de gerenciamento BeeGFS, siga estas etapas para migrar o banco de dados de gerenciamento do BeeGFS 7 para BeeGFS 8.

  1. Liste todos os dispositivos NVMe e identifique o alvo de gerenciamento:

    nvme netapp smdevices | grep mgmt_tgt

    Observe o caminho do dispositivo na saída (por exemplo, /dev/nvmeXnY).

    1. Monte o dispositivo de destino de gerenciamento no ponto de montagem de destino de gerenciamento existente (substitua /dev/nvmeXnY pelo caminho do seu dispositivo):

      mount /dev/nvmeXnY /mnt/mgmt_tgt_mgmt01/
  2. Execute um backup do diretório de dados de gerenciamento:

    tar --force-local -cpzf /mnt/mgmt_tgt_mgmt01/data_beegfs_7_backup_$(date +'%F_%T').tar.gz /mnt/mgmt_tgt_mgmt01/data
  3. Importe seus dados de gerenciamento do BeeGFS 7 para o novo formato de banco de dados executando:

    /opt/beegfs/sbin/beegfs-mgmtd --import-from-v7=/mnt/mgmt_tgt_mgmt01/data/

    Saída esperada:

    Created new database version 3 at "/var/lib/beegfs/mgmtd.sqlite". Successfully imported v7 management data from "/mnt/mgmt_tgt_mgmt01/data/".
    Importante

    A importação automática pode não ser bem-sucedida em todos os casos devido aos requisitos de validação mais rigorosos no BeeGFS 8. Por exemplo, se os destinos forem atribuídos a pools de armazenamento inexistentes, a importação falha. Se a migração falhar, não continue com a atualização. Entre em contato com o suporte da NetApp para obter assistência na resolução dos problemas de migração de banco de dados. Você pode fazer o downgrade dos pacotes de gerenciamento do BeeGFS 8 e continuar executando o BeeGFS 7 enquanto o problema é resolvido.

  4. Mova o arquivo SQLite gerado para o ponto de montagem do serviço de gerenciamento:

    mv /var/lib/beegfs/mgmtd.sqlite /mnt/mgmt_tgt_mgmt01/data/
  5. Mova o arquivo gerado beegfs-mgmtd.toml para o ponto de montagem do serviço de gerenciamento:

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

    Você preparará o arquivo de configuração beegfs-mgmtd.toml após concluir as etapas de licenciamento e configuração TLS nas seções a seguir.

Atualize os pacotes BeeGFS restantes

Após concluir a migração de banco de dados de gerenciamento, atualize os pacotes BeeGFS restantes em todos os nós de arquivo do cluster. Para RHEL, após configurar seu repositório BeeGFS, execute os seguintes comandos:

dnf clean all
dnf update beegfs-storage beegfs-meta libbeegfs-ib

Configurar licenciamento

  1. Instale os pacotes de licença do BeeGFS em todos os nós que executam o serviço de gerenciamento do BeeGFS. Normalmente, são os dois primeiros nós de arquivos do seu cluster:

    dnf install libbeegfs-license
  2. Faça o download do seu arquivo de licença BeeGFS 8 para os nós de gerenciamento e coloque-o em:

    /etc/beegfs/license.pem

Configurar criptografia TLS

O BeeGFS 8 requer criptografia TLS para comunicação segura entre os serviços de gerenciamento e a ferramenta BeeGFS CLI (beegfs). Escolha um dos três métodos de configuração: use certificados assinados por uma Autoridade Certificadora confiável, crie sua própria CA local para assinar certificados para seu cluster BeeGFS ou desative o TLS completamente para solução de problemas (não recomendado para produção).

Configure a criptografia TLS para os serviços de gerenciamento em seus nós de arquivos usando o "Configurar criptografia TLS para BeeGFS 8" guia.

Observação

A configuração TLS do cliente será concluída posteriormente, após a atualização dos clientes BeeGFS. Nesta etapa, configure o TLS apenas para os serviços de gerenciamento e para o beegfs-tool nos nós de arquivo.

Atualizar a configuração do serviço de gerenciamento

Prepare o arquivo de configuração do serviço de gerenciamento do BeeGFS 8 transferindo manualmente as configurações do seu arquivo de configuração do BeeGFS 7 para o arquivo /mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml.

  1. No nó de gerenciamento com o alvo de gerenciamento montado, faça referência ao /mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.conf arquivo de serviço de gerenciamento do BeeGFS 7 e transfira todas as configurações para o /mnt/mgmt_tgt_mgmt01/mgmt_config/beegfs-mgmtd.toml arquivo. Para uma configuração básica, seu beegfs-mgmtd.toml pode ser semelhante ao seguinte:

    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']

    Ajuste todos os caminhos conforme necessário para corresponder ao seu ambiente e à configuração TLS.

  2. Em cada nó de arquivo que executa serviços de gerenciamento, modifique o arquivo de serviço do systemd para apontar para o novo local do arquivo de configuração.

    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. Recarregar systemd:

      systemctl daemon-reload
  3. Para cada nó de arquivo que executa serviços de gerenciamento, abra a porta 8010 para a comunicação gRPC do serviço de gerenciamento.

  4. Adicione a porta TCP 8010 à zona beegfs:

    sudo firewall-cmd --zone=beegfs --permanent --add-port=8010/tcp
    1. Recarregue o firewall para aplicar a alteração:

      sudo firewall-cmd --reload

Atualize o script de monitor do BeeGFS

O script `beegfs-monitor`Pacemaker Open Cluster Framework (OCF) requer atualizações para suportar o novo formato de configuração TOML e o gerenciamento de serviços systemd. Atualize o script em um nó do cluster, depois copie o script atualizado para todos os outros nós.

  1. Crie um backup do script atual:

    cp /usr/lib/ocf/resource.d/eseries/beegfs-monitor /usr/lib/ocf/resource.d/eseries/beegfs-monitor.bak.$(date +%F)
  2. Atualize o caminho do arquivo de configuração de gerenciamento de .conf para .toml:

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

    Alternativamente, localize manualmente o seguinte bloco no script:

    case $type in
      management)
        conf_path="${configuration_mount}/mgmt_config/beegfs-mgmtd.conf"
        ;;

    E substitua por:

    case $type in
      management)
        conf_path="${configuration_mount}/mgmt_config/beegfs-mgmtd.toml"
        ;;
  3. Atualize as get_interfaces() e get_subnet_ips() funções para suportar a configuração TOML:

    1. Abra o script em um editor de texto:

      vi /usr/lib/ocf/resource.d/eseries/beegfs-monitor
    2. Localize as duas funções: get_interfaces() e get_subnet_ips().

    3. Exclua ambas as funções inteiras, começando em get_interfaces() até o final de get_subnet_ips().

    4. Copie e cole as seguintes funções atualizadas em seus respectivos lugares:

      # 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. Salve e saia do editor de texto.

    6. Execute o seguinte comando para verificar se há erros de sintaxe no script antes de prosseguir. Se nenhuma saída for exibida, o script está sintaticamente correto.

      bash -n /usr/lib/ocf/resource.d/eseries/beegfs-monitor
  4. Copie o script OCF atualizado beegfs-monitor para todos os outros nós do cluster:

    scp /usr/lib/ocf/resource.d/eseries/beegfs-monitor user@node:/usr/lib/ocf/resource.d/eseries/beegfs-monitor

Traga o cluster de volta à ativa

  1. Após concluir todas as etapas de upgrade anteriores, coloque o cluster online novamente iniciando os serviços BeeGFS em todos os nós.

    pcs cluster start --all
  2. Verifique se o beegfs-mgmtd serviço foi iniciado com sucesso:

    journalctl -xeu beegfs-mgmtd

    O resultado esperado inclui linhas como:

    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
    Observação

    Se erros aparecerem nos registros do diário, revise os caminhos do arquivo de configuração de gerenciamento e verifique se você transferiu todos os valores corretamente do arquivo de configuração do BeeGFS 7.

  3. Execute pcs status e verifique se o cluster está íntegro e se os serviços foram iniciados nos nós preferenciais.

  4. Depois que o cluster for verificado como íntegro, reative o STONITH:

    pcs property set stonith-enabled=true
  5. Prossiga para a próxima seção para atualizar os clientes BeeGFS e verificar a integridade do cluster.

Atualizar clientes BeeGFS

Após atualizar seu cluster para BeeGFS 8, você também deve atualizar todos os clientes BeeGFS.

  1. Se você ainda não interrompeu o serviço do cliente BeeGFS, interrompa-o agora:

    systemctl stop beegfs-client
  2. Adicione o repositório de pacotes BeeGFS 8 para sua distribuição Linux. As instruções para adicionar os repositórios oficiais BeeGFS podem ser encontradas em "Página de download do BeeGFS". Caso contrário, configure seu repositório local BeeGFS de acordo.

  3. Atualize os pacotes do cliente BeeGFS:

    Para Ubuntu/Debian:

    apt-get update
    apt-get install --only-upgrade beegfs-client
  4. Configure o TLS para o cliente. O TLS é necessário para usar a CLI do BeeGFS a partir dos nós clientes. Consulte a seção "Configurar TLS para clientes BeeGFS 8" no guia de implantação do TLS.

    Observação

    O TLS não é necessário para que o beegfs-client serviço monte o sistema de arquivos BeeGFS. O TLS é necessário apenas para usar as ferramentas de linha de comando do BeeGFS e outros serviços administrativos.

  5. Inicie o serviço cliente BeeGFS:

    systemctl start beegfs-client

    Se a montagem do BeeGFS falhar, verifique o registro do sistema em busca de erros. Se você vir mensagens como "Não foi possível prosseguir sem um nó de metadados raiz funcional" ou "Erro de E/S remota", a importação do BeeGFS 7 pode não ter sido concluída com sucesso. Entre em contato com o suporte da NetApp para obter assistência.

  6. (Opcional) Instale e configure a nova beegfs ferramenta de linha de comando (CLI) nos nós cliente ou em outros sistemas onde você deseja executar comandos administrativos do BeeGFS:

    1. Instale o beegfs-tools pacote:

      Para Ubuntu/Debian:

    apt-get install beegfs-tools
    1. Configure o TLS para a beegfs ferramenta. O TLS é necessário para usar a CLI do BeeGFS a partir de um nó cliente. Consulte a seção "Configurar TLS para clientes BeeGFS 8" no guia de implantação do TLS.

Verifique a atualização

Após concluir a atualização para BeeGFS 8, execute os seguintes comandos para verificar se a atualização foi bem-sucedida.

  1. Verifique se o inode raiz pertence ao mesmo nó de metadados de antes. Isso deve acontecer automaticamente se você utilizou a funcionalidade import-from-v7 no serviço de gerenciamento:

    beegfs entry info /mnt/beegfs
  2. Verifique se todos os nós e alvos estão online e em um estado saudável:

    beegfs health check
    Observação

    Se a verificação de "Capacidade Disponível" alertar que os destinos têm pouco espaço livre, você pode ajustar os limites do "pool de capacidade" definidos no arquivo beegfs-mgmtd.toml para que se adequem melhor ao seu ambiente.