Implante instâncias de diálogo SAP com VMs de alta disponibilidade SAP ASCS/SCS no RHEL

Este artigo descreve como instalar e configurar instâncias de diálogo do Primary Application Server (PAS) e do Additional Application Server (AAS) no mesmo cluster de alta disponibilidade ABAP SAP Central Services (ASCS)/SAP Central Services (SCS) em execução no Red Hat Enterprise Linux (RHEL).

Referências

Descrição geral

Este artigo descreve o cenário de otimização de custos em que você implanta instâncias de diálogo PAS e AAS com instâncias SAP ASCS/SCS e Enqueue Replication Server (ERS) em uma configuração de alta disponibilidade. Para minimizar o número de VMs para um único sistema SAP, você deseja instalar o PAS e o AAS no mesmo host em que o SAP ASCS/SCS e o SAP ERS estão em execução. Com o SAP ASCS/SCS sendo configurado em uma configuração de cluster de alta disponibilidade, você deseja que o PAS e o AAS também sejam gerenciados por cluster. A configuração é basicamente uma adição a uma configuração de cluster SAP ASCS/SCS já configurada. Nessa configuração, o PAS e o AAS são instalados em um nome de host virtual e seu diretório de instância é gerenciado pelo cluster.

Para essa configuração, o PAS e o AAS exigem um diretório de instância altamente disponível (/usr/sap/<SID>/D<nr>). Você pode colocar o sistema de arquivos de diretório de instância no mesmo armazenamento de alta disponibilidade usado para a configuração de instâncias ASCS e ERS. A arquitetura apresentada apresenta NFS em Arquivos do Azure ou Arquivos NetApp do Azure para um diretório de instância altamente disponível para a instalação.

O exemplo mostrado neste artigo para descrever a implantação usa as seguintes informações do sistema:

Nome da instância Número da instância Nome do host virtual IP virtual (porta de sonda)
ABAP SAP Serviços Centrais (ASCS) 00 Sapascs 10.90.90.10 (62000)
Enqueue Replication Server (ERS) 01 sapers 10.90.90.9 (62001)
Servidor de aplicativos primário (PAS) 02 Sappas 10.90.90.30 (62002)
Servidor de aplicativos adicional (AAS) 03 sapers 10.90.90.31 (62003)
Identificador do sistema SAP NW1 --- ---

Nota

Instale mais instâncias de aplicativos SAP em VMs separadas se quiser expandir para fora.

Diagram that shows the architecture of dialog instance installation with an SAP ASCS/SCS cluster.

Considerações importantes para a solução de otimização de custos

  • Apenas duas instâncias de diálogo, PAS e uma AAS, podem ser implantadas com uma configuração de cluster SAP ASCS/SCS.
  • Se quiser expandir seu sistema SAP com mais servidores de aplicativos (como sapa03 e sapa04), você pode instalá-los em VMs separadas. Com o PAS e o AAS sendo instalados em nomes de host virtual, você pode instalar mais servidores de aplicativos usando um nome de host físico ou virtual em VMs separadas. Para saber mais sobre como atribuir um nome de host virtual a uma VM, consulte o blog Usar nomes de host virtual SAP com Linux no Azure.
  • Com uma implantação de PAS e AAS com uma configuração de cluster SAP ASCS/SCS, os números de instância de ASCS, ERS, PAS e AAS devem ser diferentes.
  • Considere dimensionar suas SKUs de VM adequadamente com base nas diretrizes de dimensionamento. Você deve considerar o comportamento do cluster em que várias instâncias SAP (ASCS, ERS, PAS e AAS) podem ser executadas em uma única VM quando outra VM no cluster não está disponível.
  • As instâncias de diálogo (PAS e AAS) em execução com uma configuração de cluster SAP ASCS/SCS devem ser instaladas usando um nome de host virtual.
  • Você também deve usar a mesma solução de armazenamento da configuração do cluster SAP ASCS/SCS para implantar instâncias PAS e AAS. Por exemplo, se você configurou um cluster SAP ASCS/SCS usando NFS no Azure Files, a mesma solução de armazenamento deverá ser usada para implantar PAS e AAS.
  • O diretório /usr/sap/<SID>/D<nr> de instância do PAS e do AAS deve ser montado em um sistema de arquivos NFS e é gerenciado como um recurso pelo cluster.

    Nota

    Para sistemas SAP J2EE, não há suporte para colocar /usr/sap/<SID>/J<nr> NFS em Arquivos do Azure.

  • Para instalar mais servidores de aplicativos em VMs separadas, você pode usar compartilhamentos NFS ou um disco gerenciado local para um sistema de arquivos de diretório de instância. Se você estiver instalando mais servidores de aplicativos para um sistema SAP J2EE, /usr/sap/<SID>/J<nr> não há suporte para NFS nos Arquivos do Azure.
  • Em uma configuração tradicional de alta disponibilidade do SAP ASCS/SCS, as instâncias do servidor de aplicativos executadas em VMs separadas não são afetadas quando há qualquer efeito nos nós de cluster SAP ASCS e ERS. Mas com a configuração de otimização de custos, a instância PAS ou AAS é reiniciada quando há um efeito em um dos nós no cluster.
  • Consulte Considerações sobre NFS em Arquivos do Azure e Considerações sobre Arquivos NetApp do Azure porque as mesmas considerações se aplicam a essa configuração.

Pré-requisitos

A configuração descrita neste artigo é uma adição à configuração do cluster SAP ASCS/SCS já configurada. Nessa configuração, o PAS e o AAS são instalados em um nome de host virtual e seu diretório de instância é gerenciado pelo cluster. Com base no armazenamento, use as etapas descritas nos artigos a seguir para configurar o SAPInstance recurso para a instância SAP ASCS e SAP ERS no cluster.

Depois de instalar a instância ASCS, ERS e Database usando o Software Provisioning Manager (SWPM), siga as próximas etapas para instalar as instâncias PAS e AAS.

Configurar o Azure Load Balancer para PAS e AAS

Este artigo pressupõe que você já configurou o balanceador de carga para a configuração do cluster SAP ASCS/SCS, conforme descrito em Configurar o Balanceador de Carga do Azure. Na mesma instância do Balanceador de Carga do Azure, siga estas etapas para criar mais IPs front-end e regras de balanceamento de carga para PAS e AAS.

  1. Abra o balanceador de carga interno que foi criado para a configuração do cluster SAP ASCS/SCS.
  2. Configuração de IP Frontend: Crie dois IPs front-end, um para PAS e outro para AAS (por exemplo, 10.90.90.30 e 10.90.90.31).
  3. Pool de back-end: esse pool permanece o mesmo porque estamos implantando PAS e AAS no mesmo pool de back-end.
  4. Regras de entrada: crie duas regras de balanceamento de carga, uma para PAS e outra para AAS. Siga as mesmas etapas para ambas as regras de balanceamento de carga.
  5. Endereço IP frontend: Selecione o IP front-end.
    1. Pool de back-end: selecione o pool de back-end.
    2. Portas de alta disponibilidade: selecione esta opção.
    3. Protocolo: Selecione TCP.
    4. Sonda de integridade: crie uma sonda de integridade com os seguintes detalhes (aplica-se a PAS e AAS):
      1. Protocolo: Selecione TCP.
      2. Porta: Por exemplo, 620<Instance-no.> para PAS e 620<Instance-no.> para AAS.
      3. Intervalo: Digite 5.
      4. Limite da sonda: Digite 2.
    5. Tempo limite de inatividade (minutos): Digite 30.
    6. Ativar IP flutuante: selecione esta opção.

A propriedade numberOfProbesde configuração da sonda de integridade, também conhecida como Limite não íntegro no portal do Azure, não é respeitada. Para controlar o número de testes consecutivos bem-sucedidos ou com falha, defina a propriedade probeThreshold como 2. Atualmente, não é possível definir essa propriedade usando o portal do Azure. Use a CLI do Azure ou o comando PowerShell.

Importante

O IP flutuante não é suportado em uma configuração de IP secundário da NIC em cenários de balanceamento de carga. Para obter mais informações, consulte Limitações do Balanceador de Carga do Azure. Se você precisar de mais endereços IP para as VMs, implante uma segunda NIC.

Quando VMs sem endereços IP públicos são colocadas no pool de back-end de uma instância interna (sem endereço IP público) do Balanceador de Carga do Azure Padrão, não há conectividade de saída com a Internet, a menos que mais configuração seja executada para permitir o roteamento para pontos de extremidade públicos. Para obter etapas 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.

Preparar servidores para instalação de PAS e AAS

Quando as etapas neste documento são marcadas com os seguintes prefixos, elas significam:

  • [A]: Aplicável a todos os nós.
  • [1]: Aplicável apenas ao nó 1.
  • [2]: Aplicável apenas ao nó 2.
  1. [A] Configure a resolução de nomes de host.

    Você pode usar um servidor DNS ou modificar /etc/hosts em todos os nós. Este exemplo mostra como usar o /etc/hosts arquivo. Substitua o endereço IP e o nome do host nos seguintes comandos:

    sudo vi /etc/hosts
    
    # IP address of cluster node 1
    10.90.90.7    sap-cl1
    # IP address of cluster node 2
    10.90.90.8     sap-cl2
    # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
    10.90.90.10   sapascs
    # IP address of the load balancer frontend configuration for SAP Netweaver ERS
    10.90.90.9    sapers
    # IP address of the load balancer frontend configuration for SAP Netweaver PAS
    10.90.90.30   sappas
    # IP address of the load balancer frontend configuration for SAP Netweaver AAS
    10.90.90.31   sapaas
    
  2. [1] Crie os diretórios SAP no compartilhamento NFS. Monte o compartilhamento NFS sapnw1 temporariamente em uma das VMs e crie os diretórios SAP para serem usados como pontos de montagem aninhados.

    1. Se você estiver usando NFS em Arquivos do Azure:

      # mount temporarily the volume
      sudo mkdir -p /saptmp
      sudo mount -t nfs sapnfs.file.core.windows.net:/sapnfsafs/sapnw1 /saptmp -o noresvport,vers=4,minorversion=1,sec=sys
      
      # create the SAP directories
      sudo cd /saptmp
      sudo mkdir -p usrsapNW1D02
      sudo mkdir -p usrsapNW1D03
      
      # unmount the volume and delete the temporary directory
      cd ..
      sudo umount /saptmp
      sudo rmdir /saptmp
      
    2. Se você estiver usando os Arquivos NetApp do Azure:

      # mount temporarily the volume
      sudo mkdir -p /saptmp
      
      # If using NFSv3
      sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=3,tcp 10.90.91.5:/sapnw1 /saptmp
      # If using NFSv4.1
      sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,vers=4.1,sec=sys,tcp 10.90.91.5:/sapnw1 /saptmp
      
      # create the SAP directories
      sudo cd /saptmp
      sudo mkdir -p usrsapNW1D02
      sudo mkdir -p usrsapNW1D03
      
      # unmount the volume and delete the temporary directory
      sudo cd ..
      sudo umount /saptmp
      sudo rmdir /saptmp
      
  3. [A] Crie os diretórios compartilhados.

    sudo mkdir -p /usr/sap/NW1/D02
    sudo mkdir -p /usr/sap/NW1/D03
    
    sudo chattr +i /usr/sap/NW1/D02
    sudo chattr +i /usr/sap/NW1/D03
    
  4. [A] Configure o espaço de permuta. Ao instalar uma instância de diálogo com serviços centrais, você deve configurar mais espaço de permuta.

    sudo vi /etc/waagent.conf
    
    # Check if property ResourceDisk.Format is already set to y and if not, set it
    ResourceDisk.Format=y
    
    # Set the property ResourceDisk.EnableSwap to y
    # Create and use swapfile on resource disk.
    ResourceDisk.EnableSwap=y
    
    # Set the size of the SWAP file with property ResourceDisk.SwapSizeMB
    # The free space of resource disk varies by virtual machine size. Make sure that you do not set a value that is too big. You can check the SWAP space with command swapon
    # Size of the swapfile.
    #ResourceDisk.SwapSizeMB=2000
    ResourceDisk.SwapSizeMB=10480
    

    Reinicie o agente para ativar a alteração.

    sudo service waagent restart
    
  5. [A] Adicione regras de firewall para PAS e AAS.

    # Probe and gateway port for PAS and AAS
    sudo firewall-cmd --zone=public --add-port={62002,62003,3302,3303}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62002,62003,3303,3303}/tcp
    

Instalar uma instância do SAP Netweaver PAS

  1. [1] Verifique o estado do cluster. Antes de configurar um recurso PAS para instalação, verifique se os recursos ASCS e ERS estão configurados e iniciados.

    sudo pcs status
    
    # Online: [ sap-cl1 sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl2
    
  2. [1] Crie recursos de sistema de ficheiros, IP virtual e teste de estado de funcionamento para a instância PAS.

    sudo pcs node standby sap-cl2
    sudo pcs resource create vip_NW1_PAS IPaddr2 ip=10.90.90.30 --group g-NW1_PAS
    sudo pcs resource create nc_NW1_PAS azure-lb port=62002 --group g-NW1_PAS
    
    # If using NFS on Azure files
    sudo pcs resource create fs_NW1_PAS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1D02' \
      directory='/usr/sap/NW1/D02' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=40 \
      --group g-NW1_PAS
    
    # If using NFsv3 on Azure NetApp Files
    sudo pcs resource create fs_NW1_PAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D02' \
      directory='/usr/sap/NW1/D02' 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-NW1_PAS
    
    # If using NFSv4.1 on Azure NetApp Files
    sudo pcs resource create fs_NW1_PAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D02' \
      directory='/usr/sap/NW1/D02' fstype='nfs' force_unmount=safe options='sec=sys,vers=4.1' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=105 \
      --group g-NW1_PAS
    

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

    sudo pcs status
    
    # Node List:
    #   Node sap-cl2: standby
    #   Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    
  3. [1] Altere a /usr/sap/SID/D02 propriedade da pasta após a montagem do sistema de ficheiros.

    sudo chown nw1adm:sapsys /usr/sap/NW1/D02
    
  4. [1] Instale o SAP Netweaver PAS.

    Instale o SAP NetWeaver PAS como uma raiz no primeiro nó usando um nome de host virtual que mapeia para o endereço IP da configuração front-end do balanceador de carga para o PAS. Por exemplo, use sappas, 10.90.90.30 e o número da instância que você usou para a sonda do balanceador de carga, por exemplo 02.

    Você pode usar o parâmetro SAPINST_REMOTE_ACCESS_USER sapinst para permitir que um usuário não raiz se conecte ao sapinst.

    # 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=<pas_virtual_hostname>
    
  5. Atualize o /usr/sap/sapservices arquivo.

    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 /usr/sap/sapservices arquivo.

    sudo vi /usr/sap/sapservices
    
    # On the node where PAS is installed, comment out the following lines. 
    # LD_LIBRARY_PATH=/usr/sap/NW1/D02/exe:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH;/usr/sap/NW1/D02/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_D02_sappas -D -u nw1adm
    
  6. [1] Crie o recurso de cluster PAS.

    # If using NFS on Azure Files or NFSv3 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_PAS02 SAPInstance InstanceName="NW1_D02_sappas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D02_sappas \
     op monitor interval=20 timeout=60 \
     --group g-NW1_PAS
    
    # If using NFSv4.1 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_PAS02 SAPInstance InstanceName="NW1_D02_sappas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D02_sappas \
     op monitor interval=20 timeout=105 \
     --group g-NW1_PAS
    

    Verifique o status do cluster.

    sudo pcs status
    
    # Node List:
    #   Node sap-cl2: standby
    #   Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    
  7. Configure uma restrição para iniciar o grupo de recursos do PAS somente depois que a instância ASCS for iniciada.

    sudo pcs constraint order g-NW1_ASCS then g-NW1_PAS kind=Optional symmetrical=false
    

Instalar uma instância do SAP Netweaver AAS

  1. [2] Verifique o estado do cluster. Antes de configurar um recurso AAS para instalação, verifique se os recursos ASCS, ERS e PAS foram iniciados.

    sudo pcs status
    
    # Node List:
    #   Node sap-cl2: standby
    #   Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    
  2. [2] Crie recursos de sistema de arquivos, IP virtual e teste de integridade para a instância do AAS.

    sudo pcs node unstandby sap-cl2
    # Disable PAS resource as it will fail on sap-cl2 due to missing environment variables like hdbuserstore. 
    sudo pcs resource disable g-NW1_PAS
    sudo pcs node standby sap-cl1
    # Execute below command to cleanup resource, if required
    pcs resource cleanup rsc_sap_NW1_ERS01
    
    sudo pcs resource create vip_NW1_AAS IPaddr2 ip=10.90.90.31 --group g-NW1_AAS
    sudo pcs resource create nc_NW1_AAS azure-lb port=62003 --group g-NW1_AAS
    
    # If using NFS on Azure files
    sudo pcs resource create fs_NW1_AAS Filesystem device='sapnfs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1D03' \
      directory='/usr/sap/NW1/D03' fstype='nfs' force_unmount=safe options='noresvport,vers=4,minorversion=1,sec=sys' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=40 \
      --group g-NW1_AAS
    
    # If using NFsv3 on Azure NetApp Files
    sudo pcs resource create fs_NW1_AAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D03' \
      directory='/usr/sap/NW1/D03' 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-NW1_AAS
    
    # If using NFSv4.1 on Azure NetApp Files
    sudo pcs resource create fs_NW1_AAS Filesystem device='10.90.91.5:/sapnw1/usrsapNW1D03' \
      directory='/usr/sap/NW1/D03' fstype='nfs' force_unmount=safe options='sec=sys,vers=4.1' \
      op start interval=0 timeout=60 \
      op stop interval=0 timeout=120 \
      op monitor interval=200 timeout=105 \
      --group g-NW1_AAS
    

    Verifique se o status do cluster está correto e se todos os recursos foram iniciados. Não é importante em qual nó os recursos estão sendo executados. Como o grupo de recursos g-NW1_PAS é interrompido, todos os recursos do PAS são interrompidos no estado (desabilitado).

    sudo pcs status
    
    # Node List:
    #   Node sap-cl1: standby
    #   Online: [ sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Stopped (disabled)
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Stopped (disabled)
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Stopped (disabled)
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Stopped (disabled)
    #  Resource Group: g-NW1_AAS:
    #      vip_NW1_AAS       (ocf::heartbeat:IPaddr2):        Started sap-cl2
    #      nc_NW1_AAS        (ocf::heartbeat:azure-lb):       Started sap-cl2
    #      fs_NW1_AAS        (ocf::heartbeat:Filesystem):     Started sap-cl2
    
  3. [2] Altere a /usr/sap/SID/D03 propriedade da pasta após a montagem do sistema de ficheiros.

    sudo chown nw1adm:sapsys /usr/sap/NW1/D03
    
  4. [2] Instale um SAP Netweaver AAS.

    Instale um SAP NetWeaver AAS como raiz no segundo nó usando um nome de host virtual que mapeia para o endereço IP da configuração front-end do balanceador de carga para o PAS. Por exemplo, use sapaas, 10.90.90.31 e o número da instância que você usou para a sonda do balanceador de carga, por exemplo, 03.

    Você pode usar o parâmetro SAPINST_REMOTE_ACCESS_USER sapinst para permitir que um usuário não raiz se conecte ao sapinst.

    # 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=<aas_virtual_hostname>
    
  5. Atualize o /usr/sap/sapservices arquivo.

    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 /usr/sap/sapservices arquivo.

    sudo vi /usr/sap/sapservices
    
    # On the node where AAS is installed, comment out the following lines. 
    #LD_LIBRARY_PATH=/usr/sap/NW1/D03/exe:$LD_LIBRARY_PATH;export LD_LIBRARY_PATH;/usr/sap/NW1/D03/exe/sapstartsrv pf=/usr/sap/NW1/SYS/profile/NW1_D03_sapaas -D -u nw1adm
    
  6. [2] Crie um recurso de cluster AAS.

    # If using NFS on Azure Files or NFSv3 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_AAS03 SAPInstance InstanceName="NW1_D03_sapaas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D03_sapaas \
     op monitor interval=120 timeout=60 \
     --group g-NW1_AAS
    
    # If using NFSv4.1 on Azure NetApp Files
    pcs resource create rsc_sap_NW1_AAS03 SAPInstance InstanceName="NW1_D03_sapaas" \
     START_PROFILE=/sapmnt/NW1/profile/NW1_D03_sapaas \
     op monitor interval=120 timeout=105 \
     --group g-NW1_AAS
    

    Verifique o status do cluster.

    sudo pcs status
    
    # Node List:
    #   Node sap-cl1: standby
    #   Online: [ sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Stopped (disabled)
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Stopped (disabled)
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Stopped (disabled)
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Stopped (disabled)
    #  Resource Group: g-NW1_AAS:
    #      vip_NW1_AAS       (ocf::heartbeat:IPaddr2):        Started sap-cl2
    #      nc_NW1_AAS        (ocf::heartbeat:azure-lb):       Started sap-cl2
    #      fs_NW1_AAS        (ocf::heartbeat:Filesystem):     Started sap-cl2
    #      rsc_sap_NW1_AAS03 (ocf::heartbeat:SAPInstance):    Started sap-cl2
    
  7. Configure uma restrição para iniciar o grupo de recursos AAS somente depois que a instância ASCS for iniciada.

    sudo pcs constraint order g-NW1_ASCS then g-NW1_AAS kind=Optional symmetrical=false
    

Pós-configuração para instâncias PAS e AAS

  1. [1] Para que o PAS e o AAS sejam executados em qualquer nó de cluster (sap-cl1 ou sap-cl2), o conteúdo $HOME/.hdb de <sid>adm ambos os nós de cluster precisa ser copiado.

    # Check current content of /home/nw1adm/.hdb on sap-cl1
    sap-cl1:nw1adm > ls -ltr $HOME/.hdb
    drwx------. 2 nw1adm sapsys 66 Aug  8 19:11 sappas
    drwx------. 2 nw1adm sapsys 84 Aug  8 19:12 sap-cl1
    # Check current content of /home/nw1adm/.hdb on sap-cl2
    sap-cl2:nw1adm > ls -ltr $HOME/.hdb
    total 0
    drwx------. 2 nw1adm sapsys 64 Aug  8 20:25 sap-cl2
    drwx------. 2 nw1adm sapsys 66 Aug  8 20:26 sapaas
    
    # As PAS and AAS is installed using virtual hostname, you need to copy virtual hostname directory in /home/nw1adm/.hdb
    # Copy sappas directory from sap-cl1 to sap-cl2
    sap-cl1:nw1adm > scp -r sappas nw1adm@sap-cl2:/home/nw1adm/.hdb
    # Copy sapaas directory from sap-cl2 to sap-cl1. Execute the command from the same sap-cl1 host. 
    sap-cl1:nw1adm > scp -r nw1adm@sap-cl2:/home/nw1adm/.hdb/sapaas . 
    
  2. [1] Para garantir que as instâncias PAS e AAS não sejam executadas nos mesmos nós sempre que ambos os nós estiverem em execução, adicione uma restrição de colocation negativa com o seguinte comando:

    sudo pcs constraint colocation add g-NW1_AAS with g-NW1_PAS score=-1000
    sudo pcs node unstandby sap-cl1
    sudo pcs resource enable g-NW1_PAS
    

    A pontuação de -1000 garante que, se apenas um nó estiver disponível, ambas as instâncias continuarão a ser executadas no outro nó. Se você quiser manter a instância do AAS inativa em tal situação, poderá usar score=-INFINITY para impor essa condição.

  3. Verifique o status do cluster.

    sudo pcs status
    
    # Node List:
    #   Online: [ sap-cl1 sap-cl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started sap-cl2
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl2
    #  Resource Group: g-NW1_AERS
    #      fs_NW1_AERS        (ocf::heartbeat:Filesystem):    Started sap-cl1
    #      nc_NW1_AERS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #      vip_NW1_AERS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    #      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1
    #  Resource Group: g-NW1_PAS:
    #      vip_NW1_PAS       (ocf::heartbeat:IPaddr2):        Started sap-cl1
    #      nc_NW1_PAS        (ocf::heartbeat:azure-lb):       Started sap-cl1
    #      fs_NW1_PAS        (ocf::heartbeat:Filesystem):     Started sap-cl1
    #      rsc_sap_NW1_PAS02 (ocf::heartbeat:SAPInstance):    Started sap-cl1
    #  Resource Group: g-NW1_AAS:
    #      vip_NW1_AAS       (ocf::heartbeat:IPaddr2):        Started sap-cl2
    #      nc_NW1_AAS        (ocf::heartbeat:azure-lb):       Started sap-cl2
    #      fs_NW1_AAS        (ocf::heartbeat:Filesystem):     Started sap-cl2
    #      rsc_sap_NW1_AAS03 (ocf::heartbeat:SAPInstance):    Started sap-cl2
    

Testar a configuração do cluster

Teste completamente seu cluster de marcapasso executando os testes de failover típicos.