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 (vários SID) em um cluster de dois nós em VMs do Azure com aplicativos Red Hat Enterprise Linux for SAP.

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

  • NW1: número de instância ASCS 00 e nome msnw1ascsdo host virtual. Número da instância ERS 02 e nome msnw1ersdo host virtual .
  • NW2: ASCS instância número 10 e nome msnw2ascsde host virtual . Instância ERS número 12 e nome msnw2ersdo host virtual .
  • NW3: ASCS instância número 20 e nome msnw3ascsdo host virtual. Número de instância ERS 22 e nome msnw3ersdo host virtual .

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

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

  • volume sapMSID (nfs://10.42.0.4/sapmntNW1)
  • volume sapMSID (nfs://10.42.0.4/usrsapNW1ascs)
  • volume sapMSID (nfs://10.42.0.4/usrsapsistema NW1)
  • 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/usrsapsistema NW2)
  • 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/usrsapsistema NW3)
  • volume sapMSID (nfs://10.42.0.4/usrsapNW3ers)

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

Descrição geral

As máquinas virtuais que participam do cluster devem ser dimensionadas para poder executar todos os recursos caso ocorra failover. Cada SID SAP pode fazer failover independentemente um do outro no cluster de alta disponibilidade multi-SID.

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

O diagrama mostra uma visão geral da alta disponibilidade do S A P NetWeaver com cluster Pacemaker e compartilhamentos SAP NFS.

Importante

O suporte para clustering multi-SID de SAP ASCS/ERS com Red Hat Linux como sistema operacional convidado em VMs do Azure é limitado a cinco SIDs SAP no mesmo cluster. Cada novo SID aumenta a complexidade. Não há suporte para uma combinação de SAP Enqueue Replication Server 1 e Enqueue Replication Server 2 no mesmo cluster. O clustering Multi-SID descreve a instalação de várias instâncias SAP ASCS/ERS com SIDs diferentes em um cluster Pacemaker. Atualmente, o clustering multi-SID só é suportado para ASCS/ERS.

Gorjeta

O clustering multi-SID do SAP ASCS/ERS é uma solução com maior complexidade. É mais complexo de implementar. Também envolve maior esforço administrativo, ao executar atividades de manutenção, como patches 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 NFS, VIPs, configurações de balanceador de carga e assim por diante.

SAP NetWeaver ASCS, SAP NetWeaver SCS e SAP NetWeaver ERS usam nome de host virtual e endereços IP virtuais. No Azure, um balanceador de carga é necessário para usar um endereço IP virtual. Recomendamos o uso do balanceador de carga padrão.

  • Endereços IP frontend para ASCS: 10.3.1.50 (NW1), 10.3.1.52 (NW2) e 10.3.1.54 (NW3)
  • Endereços IP frontend para ERS: 10.3.1.51 (NW1), 10.3.1.53 (NW2) e 10.3.1.55 (NW3)
  • Porta de sonda 62000 para NW1 ASCS, 62010 para NW2 ASCS e 62020 para NW3 ASCS
  • Porta de sonda 62102 para NW1 ASCS, 62112 para NW2 ASCS e 62122 para NW3 ASCS

Nota

Quando VMs sem endereços IP públicos são colocadas no pool de back-end do balanceador de carga interno (sem endereço IP público) Standard do Azure, não há conectividade de saída com a Internet, a menos que uma configuração adicional seja executada para permitir o roteamento para pontos finais públicos. Para obter detalhes sobre como obter conectividade de saída, consulte Conectividade de ponto de extremidade público para máquinas virtuais usando o Azure Standard Load Balancer em cenários de alta disponibilidade SAP.

Importante

Não habilite carimbos de data/hora TCP em VMs do Azure colocadas atrás do Balanceador de Carga do Azure. A ativação de carimbos de data/hora TCP faz com que os testes de integridade falhem. Defina o parâmetro net.ipv4.tcp_timestamps como 0. Para obter mais informações, consulte Sondas de integridade do balanceador de carga.

Ações SAP

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

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

Implantar o primeiro sistema SAP no cluster

Depois de decidir sobre a arquitetura para os compartilhamentos SAP, implante o primeiro sistema SAP no cluster, seguindo a documentação correspondente.

Estes artigos guiam você pelas etapas para preparar a infraestrutura necessária, criar o cluster, preparar o sistema operacional para executar o aplicativo SAP.

Gorjeta

Sempre teste a funcionalidade de failover do cluster após a implantação do primeiro sistema, antes de adicionar os SIDs SAP adicionais ao cluster. Dessa forma, você sabe que a funcionalidade de cluster funciona, antes de adicionar a complexidade de sistemas SAP adicionais ao cluster.

Implantar mais sistemas SAP no cluster

Este exemplo pressupõe que o sistema NW1 já foi implantado no cluster. Este exemplo mostra como implantar sistemas NW2 SAP e NW3 no cluster.

Os seguintes itens são prefixados com:

  • [A] Aplicável a todos os nós
  • [1] Aplicável apenas ao nó 1
  • [2] Aplicável apenas 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. Existem etapas que só são necessárias durante a primeira implantação do sistema.

Este artigo parte do princípio de que:

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

Preparar para a instalação do SAP NetWeaver

  1. Adicione configuração para o sistema recém-implantado (ou seja, NW2 e NW3) ao Balanceador de Carga do Azure existente, seguindo as instruções Implantar o 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 mais sistemas SAP. Você pode usar o 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 NW2 sistemas e NW3 SAP 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, é 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 ASCS / ERS

  1. Crie os recursos de cluster de sonda de integridade e IP virtual para as instâncias ASCS dos outros sistemas SAP que você está implantando no cluster. Este exemplo usa NW2 e NW3 ASCS, usando NFS em volumes de arquivos NetApp do Azure 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
    

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

  2. [1] Instale o SAP NetWeaver ASCS.

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

    Você pode usar o sapinst parâmetro SAPINST_REMOTE_ACCESS_USER para permitir que um usuário não-root se conecte ao 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 group para sapsys da Instância ASCS<#> e tente novamente.

  3. [1] Crie um IP virtual e recursos de cluster de sonda de integridade para a instância ERS do outro sistema SAP que você está implantando no cluster. Este exemplo é para NW2 e NW3 ERS, usando 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
    

    Verifique se o status do cluster está ok e se todos os recursos foram iniciados.

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

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

    Instale o SAP NetWeaver ERS como raiz no outro nó, 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.53e o número da instância que você usou para a sonda do balanceador de carga, por exemplo 12. Para system NW3, o nome msnw3ersdo host virtual , 10.3.1.55e o número da instância que você usou para a sonda do balanceador de carga, por exemplo 22.

    Você pode usar o sapinst parâmetro SAPINST_REMOTE_ACCESS_USER para permitir que um usuário não-root se conecte ao 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
    

    Nota

    Use SWPM SP 20 PL 05 ou superior. Versões inferiores não definem 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 configurar o proprietário para <sid>adm e o grupo para sapsys da pasta ERS<Instance#> e tente novamente.

    Se foi 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 para o grupo ERS. Você pode remover a restrição executando o seguinte comando. Este exemplo é dado para sistemas NW2 SAP e NW3. Certifique-se 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] Adaptar os perfis de instância ASCS/SCS e ERS aos sistemas SAP recém-instalados. O exemplo mostrado abaixo é para NW2. Você precisa adaptar os perfis ASCS/SCS e ERS para todas as instâncias SAP adicionadas ao cluster.

    • Perfil 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, certifique-se de que os parâmetros do keepalive SO estão definidos conforme descrito na nota 1410736 SAP.

    • Perfil da 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 impedir o início das instâncias pelo script de inicialização sapinit , todas as instâncias gerenciadas pelo Pacemaker devem ser comentadas a partir do arquivo /usr/sap/sapservices . O exemplo mostrado abaixo é para sistemas NW2 SAP e NW3.

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

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

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

    Dependendo se você estiver executando um sistema ENSA1 ou ENSA2, selecione a respetiva guia para definir os recursos para sistemas NW2 SAP e NW3 da seguinte forma. A SAP introduziu o suporte para ENSA2, incluindo replicação, no SAP NetWeaver 7.52. A partir da plataforma ABAP 1809, o ENSA2 é instalado por padrão. Para obter suporte a ENSA2, consulte SAP Note 2630416 para suporte ao servidor enqueue 2.

    Se você usar a arquitetura enqueue server 2 (ENSA2), instale o agente de recursos 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 fila 2, consulte a nota 2641019 SAP.

    Nota

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

    Verifique se o status do cluster está ok e se todos os recursos foram iniciados. Não é importante em qual nó os recursos estão sendo executados. O exemplo a seguir mostra o status dos recursos do cluster, depois que os sistemas NW2 SAP foram NW3 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 para ASCS e ERS em ambos os nós. O exemplo abaixo mostra as regras de firewall para sistemas NW2 SAP e NW3.

    # 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
    

Prossiga com a instalação do SAP

Conclua a instalação do SAP da seguinte forma:

Testar a configuração do cluster multi-SID

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

Leia sempre os guias de práticas recomendadas da Red Hat e execute todos os outros testes que possam ter sido adicionados. Os testes apresentados estão em um cluster multi-SID de dois nós com três sistemas SAP instalados.

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

    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 root para migrar a instância NW3 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. Simule a falha do 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 seguinte comando como root em um nó onde pelo menos uma instância ASCS está em execução. Este exemplo executa o comando em rhelmsscl1, onde as instâncias ASCS para NW1, NW2e NW3 estão em execução.

    echo c > /proc/sysrq-trigger
    

    O status após o teste e depois que o nó que foi travado foi iniciado novamente, deve 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óximos passos

Para saber como estabelecer alta disponibilidade e planejar a recuperação de desastres do SAP HANA em VMs do Azure, consulte Alta disponibilidade do SAP HANA em máquinas virtuais (VMs) do Azure.