Partilhar via


Configuração de alta disponibilidade no SUSE usando o dispositivo de vedação

Neste artigo, passaremos pelas etapas para configurar a alta disponibilidade (HA) em instâncias grandes do HANA no sistema operacional SUSE usando o dispositivo de esgrima.

Observação

Este guia é derivado do teste bem-sucedido da instalação no ambiente de instâncias grandes do Microsoft HANA. A equipe do Microsoft Service Management para instâncias grandes do HANA não oferece suporte ao sistema operacional. Para solução de problemas ou esclarecimentos sobre a camada do sistema operacional, entre em contato com a SUSE.

A equipe de gerenciamento de serviços da Microsoft configura e oferece suporte total ao dispositivo de esgrima. Ele pode ajudar a solucionar problemas de dispositivo de cercamento.

Pré-requisitos

Para configurar a alta disponibilidade usando o cluster SUSE, você precisa:

  • Disponibilizar Instâncias Grandes do HANA.
  • Instale e registre o sistema operacional com os patches mais recentes.
  • Conecte os servidores HANA Large Instance ao servidor SMT para obter patches e pacotes.
  • Configure o Network Time Protocol (servidor de tempo NTP).
  • Leia e compreenda a documentação mais recente do SUSE sobre a configuração do HA.

Detalhes da configuração

Este guia usa a seguinte configuração:

  • Sistema operacional: SLES 12 SP1 for SAP
  • Instâncias grandes do HANA: 2xS192 (quatro soquetes, 2 TB)
  • Versão HANA: HANA 2.0 SP1
  • Nomes de servidores: sapprdhdb95 (node1) e sapprdhdb96 (node2)
  • Dispositivo de esgrima: baseado em iSCSI
  • NTP em um dos nós do HANA Large Instance

Ao configurar instâncias grandes do HANA com a replicação do sistema HANA, pode-se solicitar que a equipa de Gestão de Serviços da Microsoft configure o dispositivo de proteção. Faça isso no momento do provisionamento.

Se já for um cliente com grandes instâncias do HANA já provisionadas, ainda poderá configurar o dispositivo de proteção. Forneça as seguintes informações à equipe do Microsoft Service Management no formulário de solicitação de serviço (SRF). Você pode obter o SRF por meio do Gerente Técnico de Conta ou do seu contato da Microsoft para a integração da HANA Large Instance.

  • Nome do servidor e endereço IP do servidor (por exemplo, myhanaserver1 e 10.35.0.1)
  • Localização (por exemplo, Leste dos EUA)
  • Nome do cliente (por exemplo, Microsoft)
  • Identificador do sistema HANA (SID) (por exemplo, H11)

Depois que o dispositivo de vedação for configurado, a equipe de gerenciamento de serviços da Microsoft fornecerá o nome SBD e o endereço IP do armazenamento iSCSI. Você pode usar essas informações para configurar a configuração da esgrima.

Siga os passos nas seções a seguir para configurar o HA utilizando o dispositivo de proteção.

Identificar o dispositivo SBD

Observação

Esta secção aplica-se apenas a clientes existentes. Se você for um novo cliente, a equipe de Gerenciamento de Serviços da Microsoft fornecerá o nome do dispositivo SBD, portanto, ignore esta seção.

  1. Modifique /etc/iscsi/initiatorname.isci para:

    iqn.1996-04.de.suse:01:<Tenant><Location><SID><NodeNumber> 
    

    O Microsoft Service Management fornece essa cadeia de caracteres. Modifique o arquivo em ambos os nós. No entanto, o número do nó é diferente em cada nó.

    Captura de ecrã que mostra um ficheiro initiatorname com valores InitiatorName para um nó.

  2. Modifique /etc/iscsi/iscsid.conf definindo node.session.timeo.replacement_timeout=5 e node.startup = automatic. Modifique o arquivo em ambos os nós.

  3. Execute o seguinte comando de descoberta em ambos os nós.

    iscsiadm -m discovery -t st -p <IP address provided by Service Management>:3260
    

    Os resultados mostram quatro sessões.

    Captura de tela que mostra uma janela do console com os resultados do comando discovery.

  4. Execute o seguinte comando em ambos os nós para entrar no dispositivo iSCSI.

    iscsiadm -m node -l
    

    Os resultados mostram quatro sessões.

    Captura de tela que mostra uma janela do console com os resultados do comando node.

  5. Utilize o seguinte comando para executar o script de nova verificação rescan-scsi-bus.sh. Este script mostra os novos discos criados para você. Execute-o em ambos os nós.

    rescan-scsi-bus.sh
    

    Os resultados devem mostrar um número de LUN maior que zero (por exemplo: 1, 2 e assim por diante).

    Captura de tela que mostra uma janela do console com os resultados do script.

  6. Para obter o nome do dispositivo, execute o seguinte comando em ambos os nós.

      fdisk –l
    

    Nos resultados, escolha o dispositivo com o tamanho de 178 MiB.

    Captura de tela que mostra uma janela do console com os resultados do comando f disk.

Inicializar o dispositivo SBD

  1. Utilize o seguinte comando para inicializar o dispositivo SBD em ambos os nós.

    sbd -d <SBD Device Name> create
    

    Captura de tela que mostra uma janela do console com o resultado do comando s b d create.

  2. Use o seguinte comando em ambos os nós para verificar o que foi gravado no dispositivo.

    sbd -d <SBD Device Name> dump
    

Configurar o cluster SUSE HA

  1. Use o comando a seguir para verificar se os padrões ha_sles e SAPHanaSR-doc estão instalados em ambos os nós. Se não estiverem instalados, instale-os.

    zypper in -t pattern ha_sles
    zypper in SAPHanaSR SAPHanaSR-doc
    

    Captura de tela que mostra uma janela do console com o resultado do comando pattern.

    Captura de tela que mostra uma janela do console com o resultado do comando SAPHanaSR-doc.

  2. Configure o cluster usando o ha-cluster-init comando ou o assistente yast2. Neste exemplo, estamos usando o assistente yast2. Faça este passo somente no nó primário.

    1. Vá para yast2>High Availability>Cluster.

      Captura de tela que mostra o Centro de Controle do YaST com Alta Disponibilidade e Cluster selecionados.

    2. Na caixa de diálogo que aparece sobre a instalação do pacote hawk, selecione Cancelar porque o pacote halk2 já está instalado.

      Captura de tela que mostra uma caixa de diálogo com as opções Instalar e Cancelar.

    3. Na caixa de diálogo exibida sobre continuar, selecione Continuar.

      Captura de tela que mostra uma mensagem sobre como continuar sem instalar os pacotes necessários.

    4. O valor esperado é o número de nós implantados (neste caso, 2). Selecione Seguinte.

    5. Adicione os nomes dos nós e, em seguida, selecione Adicionar arquivos sugeridos.

      Captura de ecrã que mostra a janela Configurar Cluster com as listas Sincronizar Anfitrião e Sincronizar Ficheiros.

    6. Selecione Ativar csync2.

    7. Selecione Gerar chaves pré-compartilhadas.

    8. Na mensagem pop-up exibida, selecione OK.

      Captura de ecrã que mostra uma mensagem a informar que a sua chave foi gerada.

    9. A autenticação é realizada usando os endereços IP e chaves pré-compartilhadas em Csync2. O arquivo de chave é gerado com csync2 -k /etc/csync2/key_hagroup.

      Copie manualmente o arquivo key_hagroup para todos os membros do cluster depois que ele for criado. Certifique-se de copiar o arquivo de node1 para node2. Em seguida, selecione Seguinte.

      Captura de tela que mostra uma caixa de diálogo Configurar Cluster com as opções necessárias para copiar a chave para todos os membros do cluster.

    10. Na opção padrão, a inicialização estava desativada. Mude-o para Ativado, para que o serviço de marcapasso seja iniciado na inicialização. Você pode fazer a escolha com base em seus requisitos de configuração.

      Captura de ecrã que mostra a janela do Serviço de Cluster com o Arranque ativado.

    11. Selecione Avançar e a configuração do cluster será concluída.

Configure o cão de guarda softdog

  1. Adicione a seguinte linha a /etc/init.d/boot.local em ambos os nós.

    modprobe softdog
    

    Captura de tela que mostra um arquivo de inicialização com a linha softdog adicionada.

  2. Use o comando a seguir para atualizar o arquivo /etc/sysconfig/sbd em ambos os nós.

    SBD_DEVICE="<SBD Device Name>"
    

    Captura de ecrã que mostra o arquivo s b d com o valor S B D_DEVICE adicionado.

  3. Carregue o módulo do kernel em ambos os nós executando o seguinte comando.

    modprobe softdog
    

    Captura de tela que mostra parte de uma janela do console com o comando modprobe softdog.

  4. Use o comando a seguir para garantir que o softdog esteja sendo executado em ambos os nós.

    lsmod | grep dog
    

    Captura de tela que mostra parte de uma janela do console com o resultado da execução do comando l s mod.

  5. Utilize o seguinte comando para iniciar o dispositivo SBD em ambos os nós.

    /usr/share/sbd/sbd.sh start
    

    Captura de tela que mostra parte de uma janela do console com o comando iniciar.

  6. Use o seguinte comando para testar o daemon SBD em ambos os nós.

    sbd -d <SBD Device Name> list
    

    Os resultados mostram duas entradas após a configuração em ambos os nós.

    Captura de tela que mostra parte de uma janela do console exibindo duas entradas.

  7. Envie a seguinte mensagem de teste para um dos seus nós.

    sbd  -d <SBD Device Name> message <node2> <message>
    
  8. No segundo nó (nó2), use o seguinte comando para verificar o estado da mensagem.

    sbd  -d <SBD Device Name> list
    

    Captura de tela que mostra parte de uma janela do console com um dos membros exibindo um valor de teste para o outro membro.

  9. Para adotar a configuração SBD, atualize o arquivo /etc/sysconfig/sbd da seguinte forma em ambos os nós.

    SBD_DEVICE=" <SBD Device Name>" 
    SBD_WATCHDOG="yes" 
    SBD_PACEMAKER="yes" 
    SBD_STARTMODE="clean" 
    SBD_OPTS=""
    
  10. Use o seguinte comando para iniciar o serviço de marcapasso no nó primário (nó1).

    systemctl start pacemaker
    

    Captura de ecrã que mostra uma janela de consola a exibir o estado após o início do Pacemaker.

    Se o serviço de marcapasso falhar, consulte a secção Cenário 5: O serviço de pacemaker falha mais adiante neste artigo.

Unir o nó ao cluster

Execute o seguinte comando no node2 para permitir que esse nó ingresse no cluster.

ha-cluster-join

Se receber um erro durante a junção ao cluster, consulte a seção Cenário 6: O nó2 não pode ingressar no cluster mais adiante deste artigo.

Validar o agrupamento

  1. Utilize os comandos a seguir para verificar e, opcionalmente, iniciar o cluster pela primeira vez em ambos os nós.

    systemctl status pacemaker
    systemctl start pacemaker
    

    Captura de ecrã que mostra uma janela da consola com o estado do pacemaker.

  2. Execute o seguinte comando para garantir que ambos os nós estejam online. Você pode executá-lo em qualquer um dos nós do cluster.

    crm_mon
    

    Captura de tela que mostra uma janela do console com os resultados do comando c r m_mon.

    Você também pode entrar no hawk para verificar o status do cluster: https://\<node IP>:7630. O usuário padrão é hacluster e a senha é linux. Se necessário, você pode alterar a senha usando o passwd comando.

Configurar propriedades e recursos do cluster

Esta seção descreve as etapas para configurar os recursos de cluster. Neste exemplo, você configura os seguintes recursos. Você pode configurar o restante (se necessário) fazendo referência ao guia SUSE HA.

  • Bootstrap de cluster
  • Dispositivo de vedação
  • Endereço IP virtual

Faça a configuração somente no nó primário .

  1. Crie o arquivo de inicialização do cluster e configure-o adicionando o texto a seguir.

    sapprdhdb95:~ # vi crm-bs.txt
    # enter the following to crm-bs.txt
    property $id="cib-bootstrap-options" \
    no-quorum-policy="ignore" \
    stonith-enabled="true" \
    stonith-action="reboot" \
    stonith-timeout="150s"
    rsc_defaults $id="rsc-options" \
    resource-stickiness="1000" \
    migration-threshold="5000"
    op_defaults $id="op-options" \
    timeout="600"
    
  2. Use o comando a seguir para adicionar a configuração ao cluster.

    crm configure load update crm-bs.txt
    

    Captura de tela que mostra parte de uma janela do console executando o comando c r m.

  3. Configure o dispositivo de vedação adicionando o recurso, criando o arquivo e adicionando texto da seguinte maneira.

    # vi crm-sbd.txt
    # enter the following to crm-sbd.txt
    primitive stonith-sbd stonith:external/sbd \
    params pcmk_delay_max="15"
    

    Use o comando a seguir para adicionar a configuração ao cluster.

    crm configure load update crm-sbd.txt
    
  4. Adicione o endereço IP virtual para o recurso criando o arquivo e adicionando o texto a seguir.

    # vi crm-vip.txt
    primitive rsc_ip_HA1_HDB10 ocf:heartbeat:IPaddr2 \
    operations $id="rsc_ip_HA1_HDB10-operations" \
    op monitor interval="10s" timeout="20s" \
    params ip="10.35.0.197"
    

    Use o comando a seguir para adicionar a configuração ao cluster.

    crm configure load update crm-vip.txt
    
  5. Use o crm_mon comando para validar os recursos.

    Os resultados mostram os dois recursos.

    Captura de tela que mostra uma janela do console com dois recursos.

    Você também pode verificar o status em https://<endereço IP do nó>:7630/cib/live/state.

    Captura de tela que mostra o status dos dois recursos.

Testar o processo de comutação automática

  1. Para testar o processo de failover, use o seguinte comando para parar o serviço de marcapasso no nó1.

    Service pacemaker stop
    

    Os recursos falham para o nó2.

  2. Interrompa o serviço de pacemaker no nó 2 e execute o failover de recursos para o nó 1.

    Aqui está o status antes do failover:
    Captura de tela que mostra o status dos dois recursos antes do failover.

    Aqui está o status após o failover:
    Captura de tela que mostra o status dos dois recursos após o failover.

    Captura de tela que mostra uma janela do console com o status dos recursos após o failover.

Solução de problemas

Esta seção descreve cenários de falha que você pode encontrar durante a instalação.

Cenário 1: O nó do cluster não está online

Se algum dos nós não aparecer online no Gerenciador de Clusters, você poderá tentar este procedimento para colocá-lo online.

  1. Use o seguinte comando para iniciar o serviço iSCSI.

    service iscsid start
    
  2. Utilize o seguinte comando para aceder a esse nó iSCSI.

    iscsiadm -m node -l
    

    A saída esperada se parece com:

    sapprdhdb45:~ # iscsiadm -m node -l
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.11,3260] (multiple)
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.12,3260] (multiple)
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.22,3260] (multiple)
    Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.21,3260] (multiple)
    Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.11,3260] successful.
    Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.12,3260] successful.
    Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.22,3260] successful.
    Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.21,3260] successful.
    

Cenário 2: Yast2 não mostra interface gráfica

A tela gráfica yast2 é usada para configurar o cluster de alta disponibilidade neste artigo. Se o yast2 não abrir com a janela gráfica como mostrado e gerar um erro Qt, siga as etapas a seguir para instalar os pacotes necessários. Caso o programa abra com a janela gráfica, você pode ignorar os passos.

Aqui está um exemplo do erro Qt:

Captura de ecrã que mostra parte de uma janela da consola com uma mensagem de erro.

Aqui está um exemplo da saída esperada:

Captura de tela que mostra o Centro de Controle do YaST com Alta Disponibilidade e Cluster realçados.

  1. Certifique-se de que você está conectado como usuário "root" e tem o SMT configurado para baixar e instalar os pacotes.

  2. Vá para yast>Software>Gestão>Dependências e selecione Instalar pacotes recomendados.

    Observação

    Execute as etapas em ambos os nós, para que você possa acessar a visualização gráfica yast2 de ambos os nós.

    A captura de tela a seguir mostra a tela esperada.

    Captura de tela que mostra uma janela do console exibindo a Central de Controle do YaST.

  3. Em Dependências, selecione Instalar pacotes recomendados.

    Captura de ecrã que mostra uma janela da consola com a opção Instalar Pacotes Recomendados selecionada.

  4. Reveja as alterações e selecione OK.

    Captura de tela que mostra uma janela do console com uma lista de pacotes que foram selecionados para instalação.

    A instalação do pacote prossegue.

    Captura de tela que mostra uma janela do console exibindo o progresso da instalação.

  5. Selecione Seguinte.

  6. Quando a tela Instalação concluída com êxito for exibida, selecione Concluir.

    Captura de tela que mostra uma janela do console com uma mensagem de sucesso.

  7. Use os seguintes comandos para instalar os pacotes libqt4 e libyui-qt.

    zypper -n install libqt4
    

    Captura de tela que mostra uma janela do console instalando o primeiro pacote.

    zypper -n install libyui-qt
    

    Captura de tela que mostra uma janela do console instalando o segundo pacote.

    Captura de ecrã que mostra uma janela do console a instalar o segundo pacote, em continuação.

    Yast2 agora pode abrir a visualização gráfica.

    Captura de tela que mostra o Centro de Controle do YaST com Software e Atualização Online selecionados.

Cenário 3: Yast2 não mostra a opção de alta disponibilidade

Para que a opção de alta disponibilidade fique visível no centro de controle yast2, você precisa instalar os outros pacotes.

  1. Vá para Yast2>Software>Software Management. Em seguida, selecione AtualizaçãoOnline de>.

    Captura de tela que mostra o Centro de Controle do YaST com Software e Atualização Online selecionados.

  2. Selecione padrões para os seguintes itens. Em seguida, selecione Aceitar.

    • Base do servidor SAP HANA
    • Compilador e ferramentas C/C++
    • Alta disponibilidade
    • Base do servidor de aplicativos SAP

    Captura de tela que mostra a seleção do primeiro padrão no item para compilador e ferramentas.

    Captura de tela que mostra a seleção do segundo padrão no item para compilador e ferramentas.

  3. Na lista de pacotes que foram alterados para resolver dependências, selecione Continuar.

    Captura de tela que mostra a caixa de diálogo Pacotes alterados com pacotes alterados para resolver dependências.

  4. Na página Status da instalação em execução , selecione Avançar.

    Captura de tela que mostra a página Status da instalação em execução.

  5. Quando a instalação estiver concluída, um relatório de instalação será exibido. Selecione Concluir.

    Captura de tela que mostra o relatório de instalação.

Cenário 4: A instalação do HANA falha com erro de assemblies gcc

Se a instalação do HANA falhar, você pode obter o seguinte erro.

Captura de tela que mostra uma mensagem de erro informando que o sistema operacional não está pronto para executar assemblies g c c 5.

Para corrigir o problema, instale as bibliotecas libgcc_sl e libstdc++6, conforme mostrado na captura de tela a seguir.

Captura de tela que mostra uma janela do console instalando as bibliotecas necessárias.

Cenário 5: Falha no serviço de marcapasso

As informações a seguir serão exibidas se o serviço de marcapasso não puder ser iniciado.

sapprdhdb95:/ # systemctl start pacemaker
A dependency job for pacemaker.service failed. See 'journalctl -xn' for details.
sapprdhdb95:/ # journalctl -xn
-- Logs begin at Thu 2017-09-28 09:28:14 EDT, end at Thu 2017-09-28 21:48:27 EDT. --
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV  ] Service engine unloaded: corosync configuration map
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [QB    ] withdrawing server sockets
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV  ] Service engine unloaded: corosync configuration ser
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [QB    ] withdrawing server sockets
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV  ] Service engine unloaded: corosync cluster closed pr
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [QB    ] withdrawing server sockets
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV  ] Service engine unloaded: corosync cluster quorum se
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV  ] Service engine unloaded: corosync profile loading s
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [MAIN  ] Corosync Cluster Engine exiting normally
Sep 28 21:48:27 sapprdhdb95 systemd[1]: Dependency failed for Pacemaker High Availability Cluster Manager
-- Subject: Unit pacemaker.service has failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit pacemaker.service has failed.
--
-- The result is dependency.
sapprdhdb95:/ # tail -f /var/log/messages
2017-09-28T18:44:29.675814-04:00 sapprdhdb95 corosync[57600]:   [QB    ] withdrawing server sockets
2017-09-28T18:44:29.676023-04:00 sapprdhdb95 corosync[57600]:   [SERV  ] Service engine unloaded: corosync cluster closed process group service v1.01
2017-09-28T18:44:29.725885-04:00 sapprdhdb95 corosync[57600]:   [QB    ] withdrawing server sockets
2017-09-28T18:44:29.726069-04:00 sapprdhdb95 corosync[57600]:   [SERV  ] Service engine unloaded: corosync cluster quorum service v0.1
2017-09-28T18:44:29.726164-04:00 sapprdhdb95 corosync[57600]:   [SERV  ] Service engine unloaded: corosync profile loading service
2017-09-28T18:44:29.776349-04:00 sapprdhdb95 corosync[57600]:   [MAIN  ] Corosync Cluster Engine exiting normally
2017-09-28T18:44:29.778177-04:00 sapprdhdb95 systemd[1]: Dependency failed for Pacemaker High Availability Cluster Manager.
2017-09-28T18:44:40.141030-04:00 sapprdhdb95 systemd[1]: [/usr/lib/systemd/system/fstrim.timer:8] Unknown lvalue 'Persistent' in section 'Timer'
2017-09-28T18:45:01.275038-04:00 sapprdhdb95 cron[57995]: pam_unix(crond:session): session opened for user root by (uid=0)
2017-09-28T18:45:01.308066-04:00 sapprdhdb95 CRON[57995]: pam_unix(crond:session): session closed for user root

Para corrigi-lo, exclua a seguinte linha do arquivo /usr/lib/systemd/system/fstrim.timer:

Persistent=true

Captura de tela que mostra o arquivo f s trim com o valor de Persistent=true a ser excluído.

Cenário 6: O Node2 não pode ingressar no cluster

O seguinte erro aparece se houver um problema com a ligação do nó2 ao cluster existente por meio do comando ha-cluster-join .

ERROR: Can’t retrieve SSH keys from <Primary Node>

Captura de tela que mostra uma janela do console com uma mensagem de erro que diz que as teclas S S H não podem ser recuperadas de um determinado endereço IP.

Para corrigi-lo:

  1. Execute os seguintes comandos em ambos os nós.

    ssh-keygen -q -f /root/.ssh/id_rsa -C 'Cluster Internal' -N ''
    cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
    

    Captura de tela que mostra parte de uma janela do console executando o comando no primeiro nó.

    Captura de tela que mostra parte de uma janela do console executando o comando no segundo nó.

  2. Confirme que o nó 2 foi adicionado ao cluster.

    Captura de tela que mostra uma janela do console com um comando de junção bem-sucedido.

Próximos passos

Você pode encontrar mais informações sobre a configuração do SUSE HA nos seguintes artigos: