Alta disponibilidade para SAP NetWeaver em VMs do Azure no Red Hat Enterprise Linux para aplicativos SAP multi-SID

Este artigo descreve como implantar vários sistemas altamente disponíveis do SAP NetWeaver (multi-SID) em um cluster de dois nós em VMs do Azure com o Red Hat Enterprise Linux para aplicativos SAP.

Nas configurações de exemplo, três sistemas SAP NetWeaver 7.50 são implantados em um cluster de alta disponibilidade de dois nós. Os SIDs de sistemas SAP são:

  • NW1: instância número 00 do ASCS e nome do host virtual msnw1ascs. Instância número 02 do ERS e nome do host virtual msnw1ers.
  • NW2: instância número 10 do ASCS e nome do host virtual msnw2ascs. Instância número 12 do ERS e nome do host virtual msnw2ers.
  • NW3: instância número 20 do ASCS e nome do host virtual msnw3ascs. Instância número 22 do ERS e nome do host virtual msnw3ers.

O artigo não aborda a camada de banco de dados e a implantação dos compartilhamentos NFS do SAP.

Os exemplos neste artigo usam o volume sapMSID do Azure NetApp Files para os compartilhamentos NFS, supondo que o volume já esteja implantado. Os exemplos pressupõem que o volume do Azure NetApp Files esteja implantado com o protocolo NFSv3. Eles usam os seguintes caminhos de arquivo para os recursos de cluster para as instâncias do ASCS e do ERS dos sistemas SAP NW1, NW2 eNW3:

  • volume sapMSID (nfs://10.42.0.4/sapmntNW1)
  • volume sapMSID (nfs://10.42.0.4/usrsapNW1ascs)
  • volume sapMSID (nfs://10.42.0.4/usrsapNW1sys)
  • volume sapMSID (nfs://10.42.0.4/usrsapNW1ers)
  • volume sapMSID (nfs://10.42.0.4/sapmntNW2)
  • volume sapMSID (nfs://10.42.0.4/usrsapNW2ascs)
  • volume sapMSID (nfs://10.42.0.4/usrsapNW2sys)
  • volume sapMSID (nfs://10.42.0.4/usrsapNW2ers)
  • volume sapMSID (nfs://10.42.0.4/sapmntNW3)
  • volume sapMSID (nfs://10.42.0.4/usrsapNW3ascs)
  • volume sapMSID (nfs://10.42.0.4/usrsapNW3sys)
  • volume sapMSID (nfs://10.42.0.4/usrsapNW3ers)

Antes de começar, consulte as seguintes Notas e documentos do SAP:

Visão geral

As máquinas virtuais que fazem parte do cluster devem ser dimensionadas de modo a conseguirem executar todos os recursos caso ocorra um failover. Cada SID do SAP pode fazer failover de modo independente uma da outra no cluster de alta disponibilidade de vários SIDs.

Para obter alta disponibilidade, o SAP NetWeaver requer armazenamento compartilhado com alta disponibilidade. Este artigo mostra exemplos com os compartilhamentos do SAP implantados em volumes NFS do Azure NetApp Files. Em vez disso, você pode hospedar os compartilhamentos no cluster GlusterFS de alta disponibilidade, que pode ser usado por vários sistemas SAP.

Diagram shows S A P NetWeaver High Availability overview with Pacemaker cluster and SAP NFS shares.

Importante

O suporte para clustering de vários SIDs do SAP ASCS/ERS com Red Hat Linux como sistema operacional convidado em VMs do Azure é limitado a cinco SIDs do SAP no mesmo cluster. Cada novo SID aumenta a complexidade. A combinação do Servidor de Replicação de Enfileiramento 1 e do Servidor de Replicação de Enfileiramento 2 do SAP no mesmo cluster não é compatível. O clustering de vários SIDs descreve a instalação de várias instâncias do SAP ASCS/ERS com SIDs diferentes em um cluster Pacemaker. Atualmente, o clustering de vários SIDs é compatível somente para ASCS/ERS.

Dica

O clustering de vários SIDs do SAP ASCS/ERS é uma solução com maior complexidade. É mais complexo de implementar. Também envolve um esforço administrativo maior ao executar atividades de manutenção, como a aplicação de patch de SO. Antes de iniciar a implementação real, reserve um tempo para planejar cuidadosamente a implantação e todos os componentes envolvidos, como VMs, montagens de NFS, VIPs, configurações do balanceador de carga e assim por diante.

O SAP NetWeaver ASCS, o SAP NetWeaver SCS e o SAP NetWeaver ERS usam o nome do host virtual e os endereços IP virtuais. No Azure, um balanceador de carga é necessário para usar um endereço IP virtual. É recomendável usar o Standard Load Balancer.

  • Endereços IP de front-end para o ASCS: 10.3.1.50 (NW1), 10.3.1.52 (NW2) e 10.3.1.54 (NW3)
  • Endereços IP de front-end para o ERS: 10.3.1.51 (NW1), 10.3.1.53 (NW2) e 10.3.1.55 (NW3)
  • Porta de investigação 62000 para o NW1 ASCS, 62010 para o NW2 ASCS e 62020 para o NW3 ASCS
  • Porta de investigação 62102 para o NW1 ASCS, 62112 para o NW2 ASCS e 62122 para o NW3 ASCS

Importante

Não há suporte para IP flutuante em uma configuração de IP de adaptador de rede secundário em cenários de balanceamento de carga. Confira Limitações do Azure Load Balancer para mais detalhes. Se você precisar de um endereço IP adicional para a VM, implante um segundo adaptador de rede.

Observação

Quando VMs sem endereços IP públicos forem colocadas no pool de back-end do balanceador de carga Standard do Azure interno (sem endereço IP público), não haverá conectividade de saída com a Internet se não houver configuração adicional para permitir o roteamento para pontos de extremidade públicos. Para obter detalhes sobre como alcançar conectividade de saída, confira Conectividade de ponto de extremidade público para Máquinas Virtuais usando o Azure Standard Load Balancer em cenários de alta disponibilidade do SAP.

Importante

Não habilite carimbos de data/hora de TCP em VMs do Azure posicionadas subjacentemente ao Azure Load Balancer. Habilitar carimbos de data/hora de TCP faz as investigações de integridade falharem. Defina o parâmetro net.ipv4.tcp_timestamps como 0. Para saber mais, confira Investigações de integridade do Load Balancer.

Compartilhamentos SAP

O SAP NetWeaver requer armazenamento compartilhado para o transporte, o diretório de perfil e assim por diante. Para um sistema SAP com alta disponibilidade, é importante ter compartilhamentos altamente disponíveis. Você precisa decidir quanto à arquitetura de seus compartilhamentos do SAP. Uma opção é implantar os compartilhamentos em volumes do Azure NetApp Files NFS. Com o Azure NetApp Files, você tem alta disponibilidade interna para os compartilhamentos NFS do SAP.

Outra opção é criar GlusterFS em VMs do Azure no Red Hat Enterprise Linux para SAP NetWeaver, que pode ser compartilhado entre vários sistemas SAP.

Implantar o primeiro sistema SAP no cluster

Após decidir a arquitetura dos compartilhamentos SAP, implante o primeiro sistema SAP no cluster seguindo a documentação correspondente.

Esses documentos orientam você nas etapas para preparar a infraestrutura necessária, criar o cluster e preparar o sistema operacional para executar o aplicativo SAP.

Dica

Sempre teste a funcionalidade de failover do cluster após o primeiro sistema ser implantado, antes de incluir os SIDs adicionais do SAP ao cluster. Assim, você saberá que o cluster funciona antes de incluir a complexidade de sistemas SAP adicionais ao cluster.

Implantar mais sistemas SAP no cluster

Neste exemplo, presumimos que o sistema NW1 já foi implantado no cluster. Este exemplo mostra como implantar os sistemas SAP NW2 e NW3 no cluster.

Os seguintes itens são prefixados com:

  • [A]: Aplicável a todos os nós
  • [1] Aplicável somente ao nó 1
  • [2] Aplicável somente ao nó 2

Pré-requisitos

Importante

Antes de seguir as instruções para implantar sistemas SAP adicionais no cluster, implante o primeiro sistema SAP no cluster. Há etapas que são necessárias apenas durante a primeira implantação do sistema.

Este artigo supõe que:

  • O cluster Pacemaker já está configurado e em execução.
  • Pelo menos um sistema SAP (instância de ASCS/ERS) já está implantado e está em execução no cluster.
  • A funcionalidade de failover de cluster foi testada.
  • Os compartilhamentos NFS para todos os sistemas SAP estão implantados.

Preparar para a Instalação do SAP NetWeaver

  1. Adicione a configuração para o sistema recém-implantado (ou seja, NW2 e NW3) no Azure Load Balancer existente, seguindo as instruções de Implantar Azure Load Balancer manualmente por meio do portal do Azure. Ajuste os endereços IP, as portas de investigação de integridade e as regras de balanceamento de carga para sua configuração.

  2. [A] Configure a resolução de nomes para os sistemas SAP adicionais. Você pode usar um servidor DNS ou modificar /etc/hosts em todos os nós. Este exemplo mostra como usar o arquivo /etc/hosts. Adapte os endereços IP e os nomes de host ao seu ambiente.

    sudo vi /etc/hosts
    # IP address of the load balancer frontend configuration for NW2 ASCS
    10.3.1.52 msnw2ascs
    # IP address of the load balancer frontend configuration for NW3 ASCS
    10.3.1.54 msnw3ascs
    # IP address of the load balancer frontend configuration for NW2 ERS
    10.3.1.53 msnw2ers
    # IP address of the load balancer frontend configuration for NW3 ERS
    10.3.1.55 msnw3ers
    
  3. [A] Crie os diretórios compartilhados para os sistemas SAP NW2 e NW3 a serem implantados no cluster.

    sudo mkdir -p /sapmnt/NW2
    sudo mkdir -p /usr/sap/NW2/SYS
    sudo mkdir -p /usr/sap/NW2/ASCS10
    sudo mkdir -p /usr/sap/NW2/ERS12
    sudo mkdir -p /sapmnt/NW3
    sudo mkdir -p /usr/sap/NW3/SYS
    sudo mkdir -p /usr/sap/NW3/ASCS20
    sudo mkdir -p /usr/sap/NW3/ERS22
    
    
    sudo chattr +i /sapmnt/NW2
    sudo chattr +i /usr/sap/NW2/SYS
    sudo chattr +i /usr/sap/NW2/ASCS10
    sudo chattr +i /usr/sap/NW2/ERS12
    sudo chattr +i /sapmnt/NW3
    sudo chattr +i /usr/sap/NW3/SYS
    sudo chattr +i /usr/sap/NW3/ASCS20
    sudo chattr +i /usr/sap/NW3/ERS22
    
  4. [A] Adicione as entradas de montagem para os sistemas de arquivos /sapmnt/SID e /usr/sap/SID/SYS para os outros sistemas SAP que você está implantando no cluster. Neste exemplo, são NW2 e NW3.

    Atualize o arquivo /etc/fstab com os sistemas de arquivos para os outros sistemas SAP que você está implantando no cluster.

Instalar o ASCS/ERS

  1. Crie o IP virtual e os recursos do cluster de investigação de integridade para as instâncias do ASCS dos outros sistemas SAP que você está implantando no cluster. O exemplo usa o ASCS NW2 e NW3, usando o NFS em volumes do Azure NetApp Files com o protocolo NFSv3.

    sudo pcs resource create fs_NW2_ASCS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW2ascs' \
    directory='/usr/sap/NW2/ASCS10' fstype='nfs' force_unmount=safe \
    op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
     --group g-NW2_ASCS
    
    sudo pcs resource create vip_NW2_ASCS IPaddr2 \
    ip=10.3.1.52 \
     --group g-NW2_ASCS
    
    sudo pcs resource create nc_NW2_ASCS azure-lb port=62010 \
     --group g-NW2_ASCS
    
    sudo pcs resource create fs_NW3_ASCS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW3ascs' \
    directory='/usr/sap/NW3/ASCS20' fstype='nfs' force_unmount=safe \
    op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
    --group g-NW3_ASCS
    
    sudo pcs resource create vip_NW3_ASCS IPaddr2 \
    ip=10.3.1.54 \
    --group g-NW3_ASCS
    
    sudo pcs resource create nc_NW3_ASCS azure-lb port=62020 \
    --group g-NW3_ASCS
    

    Confira se o status do cluster está como ok e se todos os recursos estão iniciados. Não é importante saber em qual nó os recursos estão sendo executados.

  2. [1] Instale o ASCS do SAP NetWeaver.

    Instale o ASCS do SAP NetWeaver como raiz, usando um nome de host virtual que mapeia para o endereço IP da configuração de front-end do balanceador de carga para o ASCS. Por exemplo, para o sistema NW2, o nome do host virtual é msnw2ascs, 10.3.1.52 e o número da instância que você usou para a investigação do balanceador de carga, por exemplo, 10. Para o sistema NW3, o nome do host virtual é msnw3ascs, 10.3.1.54 e o número da instância que você usou para a investigação do balanceador de carga, por exemplo, 20. Anote em qual nó de cluster você instalou o ASCS para cada SID do SAP.

    Você pode usar o parâmetro SAPINST_REMOTE_ACCESS_USER de sapinst para permitir que um usuário não raiz se conecte à sapinst. Você pode usar o parâmetro SAPINST_USE_HOSTNAME para instalar o SAP usando o nome do host virtual.

    # Allow access to SWPM. This rule is not permanent. If you reboot the machine, you have to run the command again
    sudo firewall-cmd --zone=public --add-port=4237/tcp
    sudo swpm/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    Se a instalação não conseguir criar uma subpasta em /usr/sap/<SID>/ASCS<Instance#>, tente definir o proprietário como <sid>adm e o grupo como sapsys do ASCS<Instance#> e tente novamente.

  3. [1] Crie um IP virtual e os recursos do cluster de investigação de integridade para a instância do ERS do outro sistema SAP que você está implantando no cluster. O exemplo é referente ao ERS NW2 e NW3, usando o NFS em volumes do Azure NetApp Files com o protocolo NFSv3.

    sudo pcs resource create fs_NW2_AERS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW2ers' \
    directory='/usr/sap/NW2/ERS12' fstype='nfs' force_unmount=safe \
    op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
     --group g-NW2_AERS
    
    sudo pcs resource create vip_NW2_AERS IPaddr2 \
    ip=10.3.1.53 \
     --group g-NW2_AERS
    
    sudo pcs resource create nc_NW2_AERS azure-lb port=62112 \
     --group g-NW2_AERS
    
    sudo pcs resource create fs_NW3_AERS Filesystem device='10.42.0.4:/sapMSIDR/usrsapNW3ers' \
    directory='/usr/sap/NW3/ERS22' fstype='nfs' force_unmount=safe \
    op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=40 \
     --group g-NW3_AERS
    
    sudo pcs resource create vip_NW3_AERS IPaddr2 \
    ip=10.3.1.55 \
     --group g-NW3_AERS
    
    sudo pcs resource create nc_NW3_AERS azure-lb port=62122 \
     --group g-NW3_AERS
    

    Confira se o status do cluster está como ok e se todos os recursos estão iniciados.

    Em seguida, confira se os recursos do grupo do ERS recém-criado estão em execução no nó do cluster, oposto ao nó do cluster em que a instância do ASCS do mesmo sistema SAP foi instalada. Por exemplo, se o NW2 do ASCS foi instalado em rhelmsscl1, confira se o grupo NW2 do ERS está em execução em rhelmsscl2. Você pode migrar o grupo NW2 do ERS para rhelmsscl2 executando o seguinte comando em um dos recursos de cluster no grupo:

    pcs resource move fs_NW2_AERS rhelmsscl2
    
  4. [2] Instale o ERS do SAP NetWeaver.

    Instale o ERS do SAP NetWeaver como raiz, usando um nome de host virtual que mapeia para o endereço IP da configuração de front-end do balanceador de carga para o ERS. Por exemplo, para o sistema NW2, o nome do host virtual é msnw2ers, 10.3.1.53 e o número da instância que você usou para a investigação do balanceador de carga, por exemplo, 12. Para o sistema NW3, o nome do host virtual é msnw3ers, 10.3.1.55 e o número da instância que você usou para a investigação do balanceador de carga, por exemplo, 22.

    Você pode usar o parâmetro SAPINST_REMOTE_ACCESS_USER de sapinst para permitir que um usuário não raiz se conecte à sapinst. Você pode usar o parâmetro SAPINST_USE_HOSTNAME para instalar o SAP usando o nome do host virtual.

    # Allow access to SWPM. This rule is not permanent. If you reboot the machine, you have to run the command again
    sudo firewall-cmd --zone=public --add-port=4237/tcp
    sudo swpm/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    Observação

    Use SWPM SP 20 PL 05 ou superior. Versões anteriores não configuram as permissões corretamente e a instalação falha.

    Se a instalação não conseguir criar uma subpasta em /usr/sap/<NW2>/ERS<Instance#>, tente definir o proprietário como <sid>adm e o grupo como sapsys da pasta ERS<Instance#> e tente novamente.

    Se for necessário migrar o grupo ERS do sistema SAP recém-implantado para um nó de cluster diferente, não se esqueça de remover a restrição de local do grupo ERS. Você pode remover a restrição executando o comando a seguir. Este exemplo é dado para os sistemas SAP NW2 e NW3. Não esqueça de remover as restrições temporárias para o mesmo recurso usado no comando para mover o grupo de clusters ERS.

    pcs resource clear fs_NW2_AERS
    pcs resource clear fs_NW3_AERS
    
  5. [1] Adapte os perfis de instância do ASCS/SCS e do ERS para os sistemas SAP recém-instalados. O exemplo mostrado abaixo é referente ao NW2. Você precisa adaptar os perfis do ASCS/SCS e do ERS para todas as instâncias SAP adicionadas ao cluster.

    • Perfil do ASCS/SCS

      sudo vi /sapmnt/NW2/profile/NW2_ASCS10_msnw2ascs
      
      # Change the restart command to a start command
      #Restart_Program_01 = local $(_EN) pf=$(_PF)
      Start_Program_01 = local $(_EN) pf=$(_PF)
      
      # Add the keep alive parameter, if using ENSA1
      enque/encni/set_so_keepalive = true
      

      Para ENSA1 e ENSA2, verifique se os keepaliveparâmetros do sistema operacional estão definidos conforme descrito na nota do SAP 1410736.

    • Perfil do ERS

      sudo vi /sapmnt/NW2/profile/NW2_ERS12_msnw2ers
      
      # Change the restart command to a start command
      #Restart_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID)
      Start_Program_00 = local $(_ER) pf=$(_PFL) NR=$(SCSID)
      
      # remove Autostart from ERS profile
      # Autostart = 1
      
  6. [A] Atualize o arquivo /usr/sap/sapservices.

    Para evitar que as instâncias sejam inicializadas pelo script de inicialização sapinit, todas as instâncias gerenciadas pelo Pacemaker devem ser comentadas no arquivo /usr/sap/sapservices. O exemplo mostrado abaixo é para os sistemas NW2 e NW3 do SAP.

    # Depending on whether the SAP Startup framework is integrated with systemd, you may observe below entries on the node for ASCS instances. You should comment out the line(s). 
    # LD_LIBRARY_PATH=/usr/sap/NW2/ASCS10/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW2/ASCS10/exe/sapstartsrv pf=/usr/sap/NW2/SYS/profile/NW2_ASCS10_msnw2ascs -D -u nw2adm
    # LD_LIBRARY_PATH=/usr/sap/NW3/ASCS20/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW3/ASCS20/exe/sapstartsrv pf=/usr/sap/NW3/SYS/profile/NW3_ASCS20_msnw3ascs -D -u nw3adm
    # systemctl --no-ask-password start SAPNW2_10 # sapstartsrv pf=/usr/sap/NW2/SYS/profile/NW2_ASCS10_msnw2ascs
    # systemctl --no-ask-password start SAPNW3_20 # sapstartsrv pf=/usr/sap/NW3/SYS/profile/NW3_ASCS20_msnw3ascs
    
    # Depending on whether the SAP Startup framework is integrated with systemd, you may observe below entries on the node for ERS instances. You should comment out the line(s). 
    #LD_LIBRARY_PATH=/usr/sap/NW2/ERS12/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW2/ERS12/exe/sapstartsrv pf=/usr/sap/NW2/ERS12/profile/NW2_ERS12_msnw2ers -D -u nw2adm
    #LD_LIBRARY_PATH=/usr/sap/NW3/ERS22/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/NW3/ERS22/exe/sapstartsrv pf=/usr/sap/NW3/ERS22/profile/NW3_ERS22_msnw3ers -D -u nw3adm
    # systemctl --no-ask-password start SAPNW2_12 # sapstartsrv pf=/usr/sap/NW2/ERS12/profile/NW2_ERS12_msnw2ers
    # systemctl --no-ask-password start SAPNW3_22 # sapstartsrv pf=/usr/sap/NW3/ERS22/profile/NW3_ERS22_msnw3ers
    

    Importante

    Com o SAP Startup Framework baseado em sistema, as instâncias do SAP agora podem ser gerenciadas pelo sistema. A versão mínima necessária do Red Hat Enterprise Linux (RHEL) é RHEL 8 para SAP. Conforme descrito na Nota 3115048 do SAP, uma nova instalação de um kernel do SAP com suporte integrado do SAP Startup Framework baseado em sistema sempre resultará em uma instância do SAP controlada pelo sistema. Após uma atualização do kernel do SAP de uma instalação do SAP existente para um kernel que tem suporte do SAP Startup Framework baseado no sistema, no entanto, algumas etapas manuais precisam ser executadas conforme documentado na Nota 3115048 do SAP, para converter o ambiente de inicialização do SAP existente em um que seja controlado pelo sistema.

    Ao utilizar os serviços de HA do Red Hat para SAP (configuração de cluster) para gerenciar instâncias do servidor de aplicativos SAP, como SAP ASCS e SAP ERS, serão necessárias modificações adicionais para garantir a compatibilidade entre o agente de recursos SAPInstance e a nova estrutura de inicialização SAP baseada em sistema. Portanto, depois que as instâncias do servidor de aplicativos SAP tiverem sido instaladas ou alternadas para um Kernel SAP habilitado para sistema, de acordo com a Nota 3115048 do SAP, as etapas mencionadas no Red Hat KBA 6884531 deverão ser concluídas com êxito em todos os nós de cluster.

  7. [1] Crie os recursos de cluster do SAP para o sistema SAP recém-instalado.

    Dependendo se você estiver executando um sistema ENSA1 ou ENSA2, selecione a respectiva guia para definir os recursos para sistemas NW2 SAP e NW3 da seguinte maneira. O SAP introduziu o suporte para ENSA2, incluindo replicação, no SAP NetWeaver 7.52. Da Plataforma ABAP 1809 em diante, o ENSA2 é instalado por padrão. Para obter suporte ao ENSA2, consulte SAP Note 2630416 para suporte ao enqueue server 2.

    Se você usar a arquitetura enqueue server 2 (ENSA2), instale o resource agent resource-agents-sap-4.1.1-12.el7.x86_64 ou mais recente e defina os recursos para sistemas NW2 SAP da NW3 seguinte maneira:

    sudo pcs property set maintenance-mode=true
    
    sudo pcs resource create rsc_sap_NW2_ASCS10 SAPInstance \
    InstanceName=NW2_ASCS10_msnw2ascs START_PROFILE="/sapmnt/NW2/profile/NW2_ASCS10_msnw2ascs" \
    AUTOMATIC_RECOVER=false \
    meta resource-stickiness=5000 migration-threshold=1 failure-timeout=60 \
    op monitor interval=20 on-fail=restart timeout=60 \
    op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-NW2_ASCS
    
    sudo pcs resource meta g-NW2_ASCS resource-stickiness=3000
    
    sudo pcs resource create rsc_sap_NW2_ERS12 SAPInstance \
    InstanceName=NW2_ERS12_msnw2ers START_PROFILE="/sapmnt/NW2/profile/NW2_ERS12_msnw2ers" \
    AUTOMATIC_RECOVER=false IS_ERS=true \
    op monitor interval=20 on-fail=restart timeout=60 op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-NW2_AERS
    
    sudo pcs constraint colocation add g-NW2_AERS with g-NW2_ASCS -5000
    sudo pcs constraint location rsc_sap_NW2_ASCS10 rule score=2000 runs_ers_NW2 eq 1
    sudo pcs constraint order start g-NW2_ASCS then stop g-NW2_AERS kind=Optional symmetrical=false
    
    sudo pcs resource create rsc_sap_NW3_ASCS20 SAPInstance \
    InstanceName=NW3_ASCS20_msnw3ascs START_PROFILE="/sapmnt/NW3/profile/NW3_ASCS20_msnw3ascs" \
    AUTOMATIC_RECOVER=false \
    meta resource-stickiness=5000 migration-threshold=1 failure-timeout=60 \
    op monitor interval=20 on-fail=restart timeout=60 \
    op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-NW3_ASCS
    
    sudo pcs resource meta g-NW3_ASCS resource-stickiness=3000
    
    sudo pcs resource create rsc_sap_NW3_ERS22 SAPInstance \
    InstanceName=NW3_ERS22_msnw3ers START_PROFILE="/sapmnt/NW3/profile/NW2_ERS22_msnw3ers" \
    AUTOMATIC_RECOVER=false IS_ERS=true \
    op monitor interval=20 on-fail=restart timeout=60 op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-NW3_AERS
    
    sudo pcs constraint colocation add g-NW3_AERS with g-NW3_ASCS -5000
    sudo pcs constraint location rsc_sap_NW3_ASCS20 rule score=2000 runs_ers_NW3 eq 1
    sudo pcs constraint order start g-NW3_ASCS then stop g-NW3_AERS kind=Optional symmetrical=false
    
    sudo pcs property set maintenance-mode=false
    

    Se você estiver atualizando de uma versão mais antiga e alternando para o servidor de enfileiramento 2, confira a nota SAP 2641019.

    Observação

    Os tempos limite na configuração acima são apenas exemplos e talvez precisem ser adaptados à configuração específica do SAP.

    Verifique se o status do cluster é ok e se todos os recursos estão iniciados. Não é importante saber em qual nó os recursos estão sendo executados. O exemplo a seguir mostra o status de recursos do cluster depois que os sistemas NW2 e NW3 do SAP foram adicionados ao cluster.

    sudo pcs status
    
    # Online: [ rhelmsscl1 rhelmsscl2 ]
    
    # Full list of resources:
    
    # rsc_st_azure   (stonith:fence_azure_arm):      Started rhelmsscl1
    # Resource Group: g-NW1_ASCS
    #   fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
    #   vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
    #   nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
    #   rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    # Resource Group: g-NW1_AERS
    #   fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
    #   vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
    #   nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
    #   rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    # Resource Group: g-NW2_ASCS
    #   fs_NW2_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
    #   vip_NW2_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
    #   nc_NW2_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
    #   rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    # Resource Group: g-NW2_AERS
    #   fs_NW2_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
    #   vip_NW2_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
    #   nc_NW2_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
    #   rsc_sap_NW2_ERS12  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    # Resource Group: g-NW3_ASCS
    #   fs_NW3_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
    #   vip_NW3_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
    #   nc_NW3_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
    #   rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    # Resource Group: g-NW3_AERS
    #   fs_NW3_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
    #   vip_NW3_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
    #   nc_NW3_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
    #  rsc_sap_NW3_ERS22  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    
  8. [A] Adicione regras de firewall ao ASCS e ERS em ambos os nós. O exemplo a seguir mostra as regras de firewall para os sistemas NW2 e NW3 do SAP.

    # NW1 - ASCS
    sudo firewall-cmd --zone=public --add-port={62010,3210,3610,3910,8110,51013,51014,51016}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62010,3210,3610,3910,8110,51013,51014,51016}/tcp
    # NW2 - ERS
    sudo firewall-cmd --zone=public --add-port={62112,3212,3312,51213,51214,51216}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62112,3212,3312,51213,51214,51216}/tcp
    # NW3 - ASCS
    sudo firewall-cmd --zone=public --add-port={62020,3220,3620,3920,8120,52013,52014,52016}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62020,3220,3620,3920,8120,52013,52014,52016}/tcp
    # NW3 - ERS
    sudo firewall-cmd --zone=public --add-port={62122,3222,3322,52213,52214,52216}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62122,3222,3322,52213,52214,52216}/tcp
    

Continuar com a instalação do SAP

Conclua a instalação do SAP ao:

Testar as configurações dos vários SIDs do cluster

Os testes a seguir são um subconjunto dos casos de teste nos guias de práticas recomendadas do Red Hat. Eles foram incluídos para sua conveniência. Para obter a lista completa dos testes de cluster, consulte a seguinte documentação:

Sempre leia os guias de melhores práticas do Red Hat e execute todos os outros testes que podem ter sido incluídos. Os testes apresentados estão em um cluster de dois nós com vários SIDs e com três sistemas SAP instalados.

  1. Migre manualmente a instância do ASCS. O exemplo mostra a migração da instância ASCS para o sistema NW3 do SAP.

    Estado do recurso antes de iniciar o teste:

    Online: [ rhelmsscl1 rhelmsscl2 ]
    
    Full list of resources:
    
    rsc_st_azure   (stonith:fence_azure_arm):      Started rhelmsscl1
    Resource Group: g-NW1_ASCS
        fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW1_AERS
        fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_ASCS
        fs_NW2_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW2_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW2_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_AERS
        fs_NW2_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW2_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW2_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW2_ERS12  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW3_ASCS
        fs_NW3_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW3_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW3_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW3_AERS
        fs_NW3_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW3_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW3_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW3_ERS22  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    

    Execute os seguintes comandos como raiz para migrar a instância NW3 do ASCS.

    pcs resource move rsc_sap_NW3_ASCS200
    # Clear temporary migration constraints
    pcs resource clear rsc_sap_NW3_ASCS20
    
    # Remove failed actions for the ERS that occurred as part of the migration
    pcs resource cleanup rsc_sap_NW3_ERS22
    

    Estado do recurso após o teste:

    Online: [ rhelmsscl1 rhelmsscl2 ]
    
    Full list of resources:
    
    rsc_st_azure   (stonith:fence_azure_arm):      Started rhelmsscl1
    Resource Group: g-NW1_ASCS
        fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW1_AERS
        fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_ASCS
        fs_NW2_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW2_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW2_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_AERS
        fs_NW2_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW2_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW2_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW2_ERS12  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW3_ASCS
        fs_NW3_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW3_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW3_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW3_AERS
        fs_NW3_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW3_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW3_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW3_ERS22  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    
  2. Simular falhas de nó.

    Estado do recurso antes de iniciar o teste:

    Online: [ rhelmsscl1 rhelmsscl2 ]
    
    Full list of resources:
    
    rsc_st_azure   (stonith:fence_azure_arm):      Started rhelmsscl1
    Resource Group: g-NW1_ASCS
        fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW1_AERS
        fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_ASCS
        fs_NW2_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW2_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW2_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW2_AERS
        fs_NW2_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW2_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW2_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW2_ERS12  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW3_ASCS
        fs_NW3_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW3_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW3_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW3_AERS
        fs_NW3_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW3_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW3_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW3_ERS22  (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    

    Execute o comando a seguir como raiz em um nó em que pelo menos uma instância do ASCS esteja em execução. Este exemplo executa o comando em rhelmsscl1, em que as instâncias do ASCS para NW1, NW2 e NW3 estão em execução.

    echo c > /proc/sysrq-trigger
    

    O status após o teste e após o nó com falha ter sido iniciado novamente deverá ser semelhante a estes resultados:

    Full list of resources:
    
    rsc_st_azure    (stonith:fence_azure_arm):      Started rhelmsscl2
    Resource Group: g-NW1_ASCS
        fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW1_AERS
        fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW2_ASCS
        fs_NW2_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW2_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW2_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW2_ASCS10 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW2_AERS
        fs_NW2_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW2_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW2_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW2_ERS12  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    Resource Group: g-NW3_ASCS
        fs_NW3_ASCS        (ocf::heartbeat:Filesystem):    Started rhelmsscl2
        vip_NW3_ASCS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl2
        nc_NW3_ASCS        (ocf::heartbeat:azure-lb):      Started rhelmsscl2
        rsc_sap_NW3_ASCS20 (ocf::heartbeat:SAPInstance):   Started rhelmsscl2
    Resource Group: g-NW3_AERS
        fs_NW3_AERS        (ocf::heartbeat:Filesystem):    Started rhelmsscl1
        vip_NW3_AERS       (ocf::heartbeat:IPaddr2):       Started rhelmsscl1
        nc_NW3_AERS        (ocf::heartbeat:azure-lb):      Started rhelmsscl1
        rsc_sap_NW3_ERS22  (ocf::heartbeat:SAPInstance):   Started rhelmsscl1
    

    Se houver mensagens para recursos com falha, limpe o status dos recursos com falha. Por exemplo:

    pcs resource cleanup rsc_sap_NW1_ERS02
    

Próximas etapas

Para saber como estabelecer a alta disponibilidade e o plano de recuperação de desastre do SAP HANA em VMs do Azure, consulte Alta disponibilidade do SAP HANA em VMs (Máquinas Virtuais) do Azure.