Azure Virtual Machines HA for SAP NetWeaver on RHEL with Azure NetApp Files for SAP applications

Este artigo descreve como implantar máquinas virtuais (VMs), configurar as VMs, instalar a estrutura de cluster e instalar um sistema SAP NetWeaver 7.50 altamente disponível usando os Arquivos NetApp do Azure. Nas configurações de exemplo e comandos de instalação, a instância ASCS é o número 00, a instância do ERS é o número 01, a instância do aplicativo primário (PAS) é 02 e a instância do aplicativo (AAS) é 03. O QAS de ID do sistema SAP é usado.

A camada de banco de dados não é abordada em detalhes neste artigo.

Pré-requisitos

Primeiro, leia os seguintes documentos e Notas SAP:

Visão geral

A alta disponibilidade (HA) para os serviços centrais do SAP NetWeaver requer armazenamento compartilhado. Até agora, para obter HA no Red Hat Linux, era necessário construir um cluster GlusterFS separado e altamente disponível.

Agora é possível obter o SAP NetWeaver HA usando o armazenamento compartilhado implantado no Azure NetApp Files. O uso do Azure NetApp Files para armazenamento compartilhado elimina a necessidade de mais clusters GlusterFS. O marca-passo ainda é necessário para o HA dos serviços centrais do SAP NetWeaver (ASCS/SCS).

Diagram that shows SAP NetWeaver high-availability overview.

O SAP NetWeaver ASCS, o SAP NetWeaver SCS, o SAP NetWeaver ERS e o banco de dados SAP HANA usam o nome do host virtual e os endereços IP virtuais. No Azure, um balanceador de carga é necessário para o uso de um endereço IP virtual. Recomendamos usar o Azure Load Balancer Standard. A configuração aqui mostra um balanceador de carga com um:

  • Endereço IP front-end 192.168.14.9 para ASCS.
  • Endereço IP front-end 192.168.14.10 para ERS.
  • Porta de teste 62000 para ASCS.
  • Porta de sonda 62101 para ERS.

Configurar a infraestrutura do Azure NetApp Files

O SAP NetWeaver requer um armazenamento compartilhado para o diretório de perfil e transporte. Antes de prosseguir com a configuração da infraestrutura do Azure NetApp Files, familiarize-se com a documentação do Azure NetApp Files. Verifique se a região do Azure selecionada oferece o Azure NetApp Files. Para obter a disponibilidade dos Arquivos do Azure NetApp por região do Azure, consulte Disponibilidade dos Arquivos do Azure NetApp por região do Azure.

Os Arquivos NetApp do Azure estão disponíveis em várias regiões do Azure.

Implantar recursos do Azure NetApp Files

As etapas pressupõem que você já implantou a Rede Virtual do Azure. Os recursos do Azure NetApp Files e as VMs, onde os recursos do Azure NetApp Files serão montados, devem ser implantados na mesma rede virtual do Azure ou em redes virtuais do Azure emparelhadas.

  1. Crie a conta do Azure NetApp Files na região do Azure selecionada seguindo as instruções para criar uma conta do Azure NetApp Files.

  2. Configure um pool de capacidade do Azure NetApp Files seguindo as instruções sobre como configurar um pool de capacidade do Azure NetApp Files. A arquitetura do SAP NetWeaver apresentada neste artigo usa apenas um pool de capacidade do Azure NetApp Files, o SKU Premium. Recomendamos a SKU do Azure NetApp Files Premium para a carga de trabalho do aplicativo SAP NetWeaver no Azure.

  3. Delegue uma sub-rede aos Arquivos do Azure NetApp, conforme descrito nas instruções sobre como delegar uma sub-rede aos Arquivos do Azure NetApp.

  4. Implante volumes de Arquivos NetApp do Azure seguindo as instruções para criar um volume para Arquivos NetApp do Azure. Implante os volumes na sub-rede designada do Azure NetApp Files. Os endereços IP dos volumes do Azure NetApp são atribuídos automaticamente. Os recursos do Azure NetApp Files e as VMs do Azure devem estar na mesma rede virtual do Azure ou em redes virtuais do Azure emparelhadas. Neste exemplo, usamos dois volumes do Azure NetApp Files: sapQAS e transSAP. Os caminhos de arquivo montados nos pontos de montagem correspondentes são /usrsap qas/sapmnt QAS e /usrsap qas/usrsapQAS sys.

    1. Volume sapQAS (nfs://192.168.24.5/usrsapqas/sapmntQAS)
    2. Volume sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQAS ascs)
    3. Volume sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQAS sys)
    4. Volume sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQASers)
    5. Volume transSAP (nfs://192.168.24.4/transSAP)
    6. Volume sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQAS pas)
    7. Volume sapQAS (nfs://192.168.24.5/usrsapqas/usrsapQAS aas)

Neste exemplo, usamos os Arquivos do Azure NetApp para todos os sistemas de arquivos SAP NetWeaver para demonstrar como você pode usar os Arquivos do Azure NetApp. Os sistemas de arquivos SAP que não precisam ser montados via NFS também podem ser implantados como Armazenamento em Disco do Azure. Neste exemplo, a-e deve estar nos Arquivos NetApp do Azure e f-g (ou seja, /usr/sap/QAS/D 02 e /usr/sap/QAS/D03) pode ser implantado como armazenamento em disco do Azure.

Considerações importantes

Ao considerar o Azure NetApp Files para o SAP NetWeaver na arquitetura RHEL HA, esteja ciente das seguintes considerações importantes:

  • O pool de capacidade mínima é de 4 TiB. Você pode aumentar o tamanho do pool de capacidade em incrementos de 1 TiB.
  • O volume mínimo é de 100 GiB.
  • Os Arquivos do Azure NetApp e todas as VMs, onde os volumes do Azure NetApp Files serão montados, devem estar na mesma rede virtual do Azure ou em redes virtuais emparelhadas na mesma região. O acesso aos Arquivos NetApp do Azure por emparelhamento de rede virtual na mesma região tem suporte agora. O acesso aos Arquivos NetApp do Azure por emparelhamento global ainda não é suportado.
  • A rede virtual selecionada deve ter uma sub-rede delegada aos Arquivos NetApp do Azure.
  • As características de taxa de transferência e desempenho de um volume do Azure NetApp Files são uma função da cota de volume e do nível de serviço. Para obter mais informações, consulte Nível de serviço para arquivos do Azure NetApp. Ao dimensionar os volumes do SAP Azure NetApp, verifique se a taxa de transferência resultante atende aos requisitos do aplicativo.
  • O Azure NetApp Files oferece política de exportação. Você pode controlar os clientes permitidos e o tipo de acesso (como Leitura/Gravação e Somente Leitura).
  • O recurso Arquivos NetApp do Azure ainda não reconhece a zona. Atualmente, o recurso Azure NetApp Files não é implantado em todas as zonas de disponibilidade em uma região do Azure. Esteja atendo às possíveis implicações de latência em algumas regiões do Azure.
  • Você pode implantar volumes do Azure NetApp Files como volumes NFSv3 ou NFSv4.1. Os dois protocolos são compatíveis com a camada de aplicativo SAP (ASCS/ERS, servidores de aplicativos SAP).

Preparar a infraestrutura

O Azure Marketplace contém imagens qualificadas para SAP com o complemento Alta Disponibilidade, que você pode usar para implantar novas VMs usando várias versões do Red Hat.

Implantar VMs Linux manualmente por meio do portal do Azure

Este documento presume que você já tenha implantado uma Rede Virtual do Azure, uma sub-rede e um grupo de recursos.

Implante VMs para SAP ASCS, ERS e servidores de aplicativos. Escolha uma imagem RHEL adequada que seja compatível com o sistema SAP. Você pode implantar uma VM em qualquer uma das opções de disponibilidade: conjunto de dimensionamento de máquina virtual, zona de disponibilidade ou conjunto de disponibilidade.

Configurar o Azure Load Balancer

Durante a configuração da VM, você tem uma opção para criar ou selecionar o balanceador de carga de saída na seção de rede. Siga as etapas abaixo para configurar um balanceador de carga padrão para a configuração de alta disponibilidade do SAP ASCS e do SAP ERS.

Siga o guia Criar balanceador de carga para configurar um balanceador de carga padrão para um sistema SAP de alta disponibilidade usando o portal do Azure. Durante a configuração do balanceador de carga, considere os seguintes pontos.

  1. Configuração de IP de front-end: Crie dois IP de front-end, um para ASCS e outro para ERS. Selecione a mesma rede virtual e sub-rede que suas máquinas virtuais ASCS/ERS.
  2. Pool de back-end: crie pool de back-end e adicione VMs ASCS e ERS.
  3. Regras de entrada: crie duas regras de balanceamento de carga, uma para ASCS e outra para ERS. Siga as mesmas etapas para ambas as regras de balanceamento de carga.
    • Endereço IP de front-end: Selecione IP de front-end
    • Pool de back-end: selecione o pool de back-end
    • Verifique "Portas de alta disponibilidade"
    • Protocolo: TCP
    • Sonda de integridade: crie uma sonda de integridade com detalhes abaixo (aplica-se a ASCS ou ERS)
      • Protocolo: TCP
      • Porta: [por exemplo: 620<Instance-no. para ASCS, 621<Instance-no.>> para ERS]
      • Intervalo: 5
      • Limite da sonda: 2
    • Tempo limite ocioso (minutos): 30
    • Marque "Ativar IP flutuante"

Observação

A propriedade de configuração Investigação de integridade, também conhecida como "Limite não íntegro" no portal, não é respeitada. Portanto, para controlar o número de testes consecutivos bem-sucedidos ou com falha, defina a propriedade "probeThreshold" como 2. No momento, não é possível definir essa propriedade usando o portal do Azure, portanto, use o comando CLI do Azure ou PowerShell .

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. Para obter mais informações, consulte Limitações do Azure Load Balancer. Se você precisar de mais endereços IP para a VM, implante uma segunda NIC.

Observação

Quando VMs sem endereços IP públicos são colocadas no pool de back-end de um balanceador de carga padrão interno (sem endereço IP público), 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 mais informações sobre como obter conectividade de saída, consulte Conectividade de ponto de extremidade público para VMs usando o Azure Standard Load Balancer em cenários de alta disponibilidade SAP.

Importante

Não habilite carimbos de data/hora de TCP em VMs do Azure posicionadas de forma subjacente em relação ao Azure Load Balancer. A habilitação de carimbos de data/hora TCP pode fazer com que os testes de integridade falhem. Defina o parâmetro net.ipv4.tcp_timestamps para 0. Para saber mais, confira Investigações de integridade do Load Balancer.

Desabilitar mapeamento de ID (se você usar NFSv4.1)

As instruções nesta seção só são aplicáveis se você estiver usando volumes do Azure NetApp Files com o protocolo NFSv4.1. Execute a configuração em todas as VMs em que os volumes NFSv4.1 do Azure NetApp Files serão montados.

  1. Verifique a configuração do domínio NFS. Verifique se o domínio está configurado como o domínio padrão do Azure NetApp Files, ou seja, defaultv4iddomain.come se o mapeamento está definido como ninguém.

    Importante

    É preciso que você defina o domínio NFS em /etc/idmapd.conf na VM para corresponder à configuração de domínio padrão no Azure NetApp Files: defaultv4iddomain.com . Se houver uma incompatibilidade entre a configuração de domínio no cliente NFS (ou seja, a VM) e o servidor NFS (ou seja, a configuração do Azure NetApp), as permissões para arquivos em volumes do Azure NetApp montados nas VMs serão exibidas como nobody.

    sudo cat /etc/idmapd.conf
    
    # Example
    [General]
    Domain = defaultv4iddomain.com
    [Mapping]
    Nobody-User = nobody
    Nobody-Group = nobody
    

O prefixo [A] a seguir se aplica ao PAS e ao AAS.

  1. [A] Verifique nfs4_disable_idmapping. Ele deve ser definido como Y. Para criar a estrutura de diretórios onde nfs4_disable_idmapping está localizada, execute o comando mount. Você não poderá criar manualmente o diretório em /sys/modules porque o acesso é reservado para o kernel e drivers.

    # Check nfs4_disable_idmapping 
    cat /sys/module/nfs/parameters/nfs4_disable_idmapping
    
    # If you need to set nfs4_disable_idmapping to Y
    mkdir /mnt/tmp
    mount 192.168.24.5:/sapQAS
    umount  /mnt/tmp
    echo "Y" > /sys/module/nfs/parameters/nfs4_disable_idmapping
    
    # Make the configuration permanent
    echo "options nfs nfs4_disable_idmapping=Y" >> /etc/modprobe.d/nfs.conf
    

Configurar (A)SCS

Em seguida, você preparará e instalará as instâncias do SAP ASCS e ERS.

Criar um cluster do Pacemaker

Siga as etapas em Configurando o Pacemaker no Red Hat Enterprise Linux no Azure para criar um cluster básico do Pacemaker para esse servidor (A)SCS.

Prepare-se para a instalação do SAP NetWeaver

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
  1. [A] Configurar a resolução de nome do host.

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

    sudo vi /etc/hosts
    

    Insira as seguintes linhas até /etc/hosts. Altere o endereço IP e o nome do host para corresponder ao seu ambiente.

    # IP address of cluster node 1
    192.168.14.5    anftstsapcl1
    # IP address of cluster node 2
    192.168.14.6     anftstsapcl2
    # IP address of the load balancer frontend configuration for SAP Netweaver ASCS
    192.168.14.9    anftstsapvh
    # IP address of the load balancer frontend configuration for SAP Netweaver ERS
    192.168.14.10    anftstsapers
    
  2. [1] Crie diretórios SAP no volume do Azure NetApp Files. Monte o volume Azure NetApp Files temporariamente em uma das VMs e crie os diretórios SAP (caminhos de arquivo).

    # mount temporarily the volume
    sudo mkdir -p /saptmp
    
    # If using NFSv3
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=3,tcp 192.168.24.5:/sapQAS /saptmp
    
    # If using NFSv4.1
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys,tcp 192.168.24.5:/sapQAS /saptmp
    
    # create the SAP directories
    sudo cd /saptmp
    sudo mkdir -p sapmntQAS
    sudo mkdir -p usrsapQASascs
    sudo mkdir -p usrsapQASers
    sudo mkdir -p usrsapQASsys
    sudo mkdir -p usrsapQASpas
    sudo mkdir -p usrsapQASaas
    
    # 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 /sapmnt/QAS
    sudo mkdir -p /usr/sap/trans
    sudo mkdir -p /usr/sap/QAS/SYS
    sudo mkdir -p /usr/sap/QAS/ASCS00
    sudo mkdir -p /usr/sap/QAS/ERS01
    
    sudo chattr +i /sapmnt/QAS
    sudo chattr +i /usr/sap/trans
    sudo chattr +i /usr/sap/QAS/SYS
    sudo chattr +i /usr/sap/QAS/ASCS00
    sudo chattr +i /usr/sap/QAS/ERS01
    
  4. [A] Instalar o cliente NFS e outros requisitos.

    sudo yum -y install nfs-utils resource-agents resource-agents-sap
    
  5. [A] Verificar a versão de resource-agents-sap.

    Verifique se a versão do pacote resource-agents-sap instalado é pelo menos 3.9.5-124.el7.

    sudo yum info resource-agents-sap
    
    # Loaded plugins: langpacks, product-id, search-disabled-repos
    # Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
    # Installed Packages
    # Name        : resource-agents-sap
    # Arch        : x86_64
    # Version     : 3.9.5
    # Release     : 124.el7
    # Size        : 100 k
    # Repo        : installed
    # From repo   : rhel-sap-for-rhel-7-server-rpms
    # Summary     : SAP cluster resource agents and connector script
    # URL         : https://github.com/ClusterLabs/resource-agents
    # License     : GPLv2+
    # Description : The SAP resource agents and connector script interface with
    #          : Pacemaker to allow SAP instances to be managed in a cluster
    #          : environment.
    
  6. [A] Adicionar entradas de montagem.

    Se você usa NFSv3:

    sudo vi /etc/fstab
    
    # Add the following lines to fstab, save and exit
    192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
    192.168.24.5:/sapQAS/usrsapQASsys /usr/sap/QAS/SYS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
    192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
    

    Se você usar o NFSv4.1:

    sudo vi /etc/fstab
    
    # Add the following lines to fstab, save and exit
    192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
    192.168.24.5:/sapQAS/usrsapQASsys /usr/sap/QAS/SYS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
    192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
    

    Observação

    Certifique-se de corresponder à versão do protocolo NFS dos volumes do Azure NetApp Files ao montar os volumes. Se os volumes do Azure NetApp Files forem criados como volumes NFSv3, use a configuração NFSv3 correspondente. Se os volumes de Azure NetApp Files forem criados como volumes NFSv4.1, siga as instruções para desabilitar o mapeamento de ID e use a configuração correspondente do NFSv4.1. Neste exemplo, os volumes do Azure NetApp Files foram criados como volumes NFSv3.

    Monte os novos compartilhamentos.

    sudo mount -a  
    
  7. [A] Configure o arquivo de permuta.

    sudo vi /etc/waagent.conf
    
    # 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 VM 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
    

    Reinicie o agente para ativar a alteração.

    sudo service waagent restart
    
  8. [A] Execute a configuração do RHEL OS.

    Com base na versão do RHEL, execute a configuração mencionada no SAP Note 2002167, 2772999 ou 3108316.

Instalar o ASCS/ERS do SAP NetWeaver

  1. [1] Configurar as propriedades padrão do cluster.

    pcs resource defaults resource-stickiness=1
    pcs resource defaults migration-threshold=3
    
  2. [1] Crie um recurso de IP virtual e uma investigação de integridade para a instância do ASCS.

    sudo pcs node standby anftstsapcl2
    
    # If using NFSv3
    sudo pcs resource create fs_QAS_ASCS Filesystem device='192.168.24.5:/sapQAS/usrsapQASascs' \
      directory='/usr/sap/QAS/ASCS00' 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-QAS_ASCS
    
    # If using NFSv4.1
    sudo pcs resource create fs_QAS_ASCS Filesystem device='192.168.24.5:/sapQAS/usrsapQASascs' \
      directory='/usr/sap/QAS/ASCS00' fstype='nfs' force_unmount=safe options='sec=sys,nfsvers=4.1' \
      op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=105 \
      --group g-QAS_ASCS
    
    sudo pcs resource create vip_QAS_ASCS IPaddr2 \
      ip=192.168.14.9 \
      --group g-QAS_ASCS
    
    sudo pcs resource create nc_QAS_ASCS azure-lb port=62000 \
      --group g-QAS_ASCS
    

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

    sudo pcs status
    
    # Node anftstsapcl2: standby
    # Online: [ anftstsapcl1 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started anftstsapcl1
    #  Resource Group: g-QAS_ASCS
    #      fs_QAS_ASCS        (ocf::heartbeat:Filesystem):    Started anftstsapcl1
    #      nc_QAS_ASCS        (ocf::heartbeat:azure-lb):      Started anftstsapcl1
    #      vip_QAS_ASCS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl1
    
  3. [1] Instale o ASCS do SAP NetWeaver.

    Instale o SAP NetWeaver ASCS como 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 ASCS, por exemplo, anftstsapvh, 192.168.14.9, e o número da instância que você usou para o teste do balanceador de carga, por exemplo, 00.

    Você pode usar o parâmetro sapinstSAPINST_REMOTE_ACCESS_USER para permitir que um usuário não raiz se conecte a 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=<virtual_hostname>
    

    Se a instalação não conseguir criar uma subpasta em /usr/sap/QAS/ASCS00, tente definir o proprietário e o grupo da pasta do ASCS00 e tente novamente.

    sudo chown qasadm /usr/sap/QAS/ASCS00
    sudo chgrp sapsys /usr/sap/QAS/ASCS00
    
  4. [1] Crie um recurso de IP virtual e uma investigação de integridade para a instância do ERS.

    sudo pcs node unstandby anftstsapcl2
    sudo pcs node standby anftstsapcl1
    
    # If using NFSv3
    sudo pcs resource create fs_QAS_AERS Filesystem device='192.168.24.5:/sapQAS/usrsapQASers' \
      directory='/usr/sap/QAS/ERS01' 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-QAS_AERS
    
    # If using NFSv4.1
    sudo pcs resource create fs_QAS_AERS Filesystem device='192.168.24.5:/sapQAS/usrsapQASers' \
      directory='/usr/sap/QAS/ERS01' fstype='nfs' force_unmount=safe options='sec=sys,nfsvers=4.1' \
      op start interval=0 timeout=60 op stop interval=0 timeout=120 op monitor interval=200 timeout=105 \
     --group g-QAS_AERS
    
    sudo pcs resource create vip_QAS_AERS IPaddr2 \
      ip=192.168.14.10 \
     --group g-QAS_AERS
    
    sudo pcs resource create nc_QAS_AERS azure-lb port=62101 \
     --group g-QAS_AERS
    

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

    sudo pcs status
    
    # Node anftstsapcl1: standby
    # Online: [ anftstsapcl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started anftstsapcl2
    #  Resource Group: g-QAS_ASCS
    #      fs_QAS_ASCS        (ocf::heartbeat:Filesystem):    Started anftstsapcl2
    #      nc_QAS_ASCS        (ocf::heartbeat:azure-lb):      Started anftstsapcl2<
    #      vip_QAS_ASCS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl2
    #  Resource Group: g-QAS_AERS
    #      fs_QAS_AERS        (ocf::heartbeat:Filesystem):    Started anftstsapcl2
    #      nc_QAS_AERS        (ocf::heartbeat:azure-lb):      Started anftstsapcl2
    #      vip_QAS_AERS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl2
    
  5. [2] Instale o ERS do SAP NetWeaver.

    Instale o SAP NetWeaver ERS 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 ERS, por exemplo, anftstsapers, 192.168.14.10, e o número da instância que você usou para o teste do balanceador de carga, por exemplo, 01.

    Você pode usar o parâmetro sapinstSAPINST_REMOTE_ACCESS_USER para permitir que um usuário não raiz se conecte a 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=<virtual_hostname>
    

    Se a instalação falhar ao criar uma subpasta em /usr/sap/QAS/ERS01, tente definir o proprietário e o grupo da pasta do ERS01 e tente novamente.

    sudo chown qaadm /usr/sap/QAS/ERS01
    sudo chgrp sapsys /usr/sap/QAS/ERS01
    
  6. [1] Adaptar os perfis de instância do ASCS/SCS e do ERS.

    • Perfil do ASCS/SCS

      sudo vi /sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh
      
      # 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 parâmetros keepalive do sistema operacional estão definidos conforme descrito na nota SAP 1410736.

    • Perfil do ERS

      sudo vi /sapmnt/QAS/profile/QAS_ERS01_anftstsapers
      
      # 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
      
  7. [A] Configurar o Keep Alive.

    A comunicação entre o servidor de aplicativos do SAP NetWeaver e o ASCS/SCS é roteada por meio de um balanceador de carga de software. O balanceador de carga desconecta conexões inativas após um tempo limite configurável. Para impedir essa ação, defina um parâmetro no perfil ASCS/SCS do SAP NetWeaver, se você usar o ENSA1, e altere as configurações do sistema keepalive Linux em todos os servidores SAP para ENSA1/ENSA2. Para saber mais, veja a nota SAP 1410736.

    # Change the Linux system configuration
    sudo sysctl net.ipv4.tcp_keepalive_time=300
    
  8. [A] Atualizar o arquivo /usr/sap/sapservices.

    Para impedir o início das instâncias pelo script de inicialização /usr/sap/sapservices, todas as instâncias gerenciadas pelo Pacemaker devem ser comentadas no arquivo sapinit.

    sudo vi /usr/sap/sapservices
    
    # Depending on whether the SAP Startup framework is integrated with systemd, you will observe one of the two entries on the ASCS node. You should comment out the line(s). 
    # LD_LIBRARY_PATH=/usr/sap/QAS/ASCS00/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/QAS/ASCS00/exe/sapstartsrv pf=/usr/sap/QAS/SYS/profile/QAS_ASCS00_anftstsapvh -D -u qasadm
    # systemctl --no-ask-password start SAPQAS_00 # sapstartsrv pf=/usr/sap/QAS/SYS/profile/QAS_ASCS00_anftstsapvh
    
    # Depending on whether the SAP Startup framework is integrated with systemd, you will observe one of the two entries on the ASCS node. You should comment out the line(s). 
    # LD_LIBRARY_PATH=/usr/sap/QAS/ERS01/exe:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; /usr/sap/QAS/ERS01/exe/sapstartsrv pf=/usr/sap/QAS/ERS01/profile/QAS_ERS01_anftstsapers -D -u qasadm
    # systemctl --no-ask-password start SAPQAS_01 # sapstartsrv pf=/usr/sap/QAS/ERS01/profile/QAS_ERS01_anftstsapers
    

    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.

  9. [1] Crie os recursos de cluster do SAP.

    Dependendo se você estiver executando um sistema ENSA1 ou ENSA2, selecione a respectiva guia para definir os recursos. 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 suporte ENSA2. Confira a nota SAP 2630416 sobre o suporte ao servidor de enfileiramento 2.

    Se estiver usando a arquitetura do servidor de enfileiramento 2 (ENSA2), instale o agente de recurso resource-agents-sap-4.1.1-12.el7.x86_64 ou mais recente e defina os recursos da seguinte maneira:

    sudo pcs property set maintenance-mode=true
    
    # If using NFSv3
    sudo pcs resource create rsc_sap_QAS_ASCS00 SAPInstance \
    InstanceName=QAS_ASCS00_anftstsapvh START_PROFILE="/sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh" \
    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-QAS_ASCS
    
    # If using NFSv4.1
    sudo pcs resource create rsc_sap_QAS_ASCS00 SAPInstance \
    InstanceName=QAS_ASCS00_anftstsapvh START_PROFILE="/sapmnt/QAS/profile/QAS_ASCS00_anftstsapvh" \
    AUTOMATIC_RECOVER=false \
    meta resource-stickiness=5000 migration-threshold=1 failure-timeout=60 \
    op monitor interval=20 on-fail=restart timeout=105 \
    op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-QAS_ASCS
    
    sudo pcs resource meta g-QAS_ASCS resource-stickiness=3000
    
    # If using NFSv3
    sudo pcs resource create rsc_sap_QAS_ERS01 SAPInstance \
    InstanceName=QAS_ERS01_anftstsapers START_PROFILE="/sapmnt/QAS/profile/QAS_ERS01_anftstsapers" \
    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-QAS_AERS
    
    # If using NFSv4.1
    sudo pcs resource create rsc_sap_QAS_ERS01 SAPInstance \
    InstanceName=QAS_ERS01_anftstsapers START_PROFILE="/sapmnt/QAS/profile/QAS_ERS01_anftstsapers" \
    AUTOMATIC_RECOVER=false IS_ERS=true \
    op monitor interval=20 on-fail=restart timeout=105 op start interval=0 timeout=600 op stop interval=0 timeout=600 \
    --group g-QAS_AERS
    
    sudo pcs constraint colocation add g-QAS_AERS with g-QAS_ASCS -5000
    sudo pcs constraint location rsc_sap_QAS_ASCS00 rule score=2000 runs_ers_QAS eq 1
    sudo pcs constraint order start g-QAS_ASCS then stop g-QAS_AERS kind=Optional symmetrical=false
    
    sudo pcs node unstandby anftstsapcl1
    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 2641322.

    Observação

    Os tempos limite mais altos sugeridos quando você usa o NFSv4.1 são necessários devido à pausa específica do protocolo, que está relacionada às renovações de concessão do NFSv4.1. Para obter mais informações, consulte Práticas recomendadas de NFS na NetApp. Os tempos limite na configuração anterior são apenas exemplos e podem ser adaptados à configuração específica do SAP.

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

    sudo pcs status
    
    # Online: [ anftstsapcl1 anftstsapcl2 ]
    #
    # Full list of resources:
    #
    # rsc_st_azure    (stonith:fence_azure_arm):      Started anftstsapcl2
    #  Resource Group: g-QAS_ASCS
    #      fs_QAS_ASCS        (ocf::heartbeat:Filesystem):    Started anftstsapcl2
    #      nc_QAS_ASCS        (ocf::heartbeat:azure-lb):      Started anftstsapcl2
    #      vip_QAS_ASCS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl2
    #      rsc_sap_QAS_ASCS00 (ocf::heartbeat:SAPInstance):   Started anftstsapcl2
    #  Resource Group: g-QAS_AERS
    #      fs_QAS_AERS        (ocf::heartbeat:Filesystem):    Started anftstsapcl1
    #      nc_QAS_AERS        (ocf::heartbeat:azure-lb):      Started anftstsapcl1
    #      vip_QAS_AERS       (ocf::heartbeat:IPaddr2):       Started anftstsapcl1
    #      rsc_sap_QAS_ERS01  (ocf::heartbeat:SAPInstance):   Started anftstsapcl1
    
  10. [1] Execute a etapa a seguir para configurar priority-fencing-delay (aplicável somente a partir do pacemaker-2.0.4-6.el8 ou superior).

    Observação

    Se você tiver um cluster de dois nós, terá a opção de configurar a propriedade priority-fencing-delay do cluster. Essa propriedade introduz mais atraso na vedação de um nó que tem maior prioridade total de recursos quando ocorre um cenário de cérebro dividido. Para obter mais informações, confira O Pacemaker pode isolar o nó de cluster com o menor número de recursos em execução?.

    A propriedade priority-fencing-delay é aplicável para a versão pacemaker-2.0.4-6.el8 ou superior. Se você estiver configurando priority-fencing-delay em um cluster existente, certifique-se de limpar a pcmk_delay_max configuração no dispositivo de vedação.

    sudo pcs resource defaults update priority=1
    sudo pcs resource update rsc_sap_QAS_ASCS00 meta priority=10
    
    sudo pcs property set priority-fencing-delay=15s
    
  11. [A] Adicione regras de firewall ao ASCS e ERS em ambos os nós.

    # Probe Port of ASCS
    sudo firewall-cmd --zone=public --add-port={62000,3200,3600,3900,8100,50013,50014,50016}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62000,3200,3600,3900,8100,50013,50014,50016}/tcp
    # Probe Port of ERS
    sudo firewall-cmd --zone=public --add-port={62101,3201,3301,50113,50114,50116}/tcp --permanent
    sudo firewall-cmd --zone=public --add-port={62101,3201,3301,50113,50114,50116}/tcp
    

Preparação do servidor de aplicativos do SAP NetWeaver

Alguns bancos de dados exigem que a instalação da instância do banco de dados seja executada em um servidor de aplicativos. Prepare as máquinas virtuais do servidor de aplicativos para poder usá-las nesses casos.

As etapas a seguir pressupõem que você instale o servidor de aplicativos em um servidor diferente dos servidores do ASCS/SCS e do HANA. Caso contrário, algumas das etapas (como configurar a resolução de nome de host) não são necessárias.

Os seguintes itens são prefixados com:

  • [A]: aplicável ao PAS e ao AAS
  • [P]: aplicável somente ao PAS
  • [S]: aplicável somente ao AAS
  1. [A] Configurar a resolução de nome do host.

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

    sudo vi /etc/hosts
    

    Insira as seguintes linhas até /etc/hosts. Altere o endereço IP e o nome do host para corresponder ao seu ambiente.

    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS
    192.168.14.9 anftstsapvh
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS ERS
    192.168.14.10 anftstsapers
    192.168.14.7 anftstsapa01
    192.168.14.8 anftstsapa02
    
  2. [A] Criar o diretório sapmnt.

    sudo mkdir -p /sapmnt/QAS
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/QAS
    sudo chattr +i /usr/sap/trans
    
  3. [A] Instalar o cliente NFS e outros requisitos.

    sudo yum -y install nfs-utils uuidd
    
  4. [A] Adicionar entradas de montagem.

    Se você usa NFSv3:

    sudo vi /etc/fstab
    
    # Add the following lines to fstab, save and exit
    192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
    192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
    

    Se você usar o NFSv4.1:

    sudo vi /etc/fstab
    
    # Add the following lines to fstab, save and exit
    192.168.24.5:/sapQAS/sapmntQAS /sapmnt/QAS nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
    192.168.24.4:/transSAP /usr/sap/trans nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
    

    Monte os novos compartilhamentos.

    sudo mount -a
    
  5. [P] Crie e monte o diretório PAS.

    Se você usa NFSv3:

    sudo mkdir -p /usr/sap/QAS/D02
    sudo chattr +i /usr/sap/QAS/D02
    
    sudo vi /etc/fstab
    # Add the following line to fstab
    92.168.24.5:/sapQAS/usrsapQASpas /usr/sap/QAS/D02 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
    
    # Mount
    sudo mount -a
    

    Se você usar o NFSv4.1:

    sudo mkdir -p /usr/sap/QAS/D02
    sudo chattr +i /usr/sap/QAS/D02
    
    sudo vi /etc/fstab
    # Add the following line to fstab
    92.168.24.5:/sapQAS/usrsapQASpas /usr/sap/QAS/D02 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
    
    # Mount
    sudo mount -a
    
  6. [S] Crie e monte o diretório AAS.

    Se você usa NFSv3:

    sudo mkdir -p /usr/sap/QAS/D03
    sudo chattr +i /usr/sap/QAS/D03
    
    sudo vi /etc/fstab
    # Add the following line to fstab
    92.168.24.5:/sapQAS/usrsapQASaas /usr/sap/QAS/D03 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=3
    
    # Mount
    sudo mount -a
    

    Se você usar o NFSv4.1:

    sudo mkdir -p /usr/sap/QAS/D03
    sudo chattr +i /usr/sap/QAS/D03
    
    sudo vi /etc/fstab
    # Add the following line to fstab
    92.168.24.5:/sapQAS/usrsapQASaas /usr/sap/QAS/D03 nfs rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys
    
    # Mount
    sudo mount -a
    
  7. [A] Configure o arquivo de permuta.

    sudo vi /etc/waagent.conf
    
    # 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 VM 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
    

    Reinicie o agente para ativar a alteração.

    sudo service waagent restart
    

Instale o banco de dados

Neste exemplo, o SAP NetWeaver está instalado no SAP HANA. Você pode usar todos os bancos de dados com suporte para esta instalação. Para obter mais informações sobre como instalar o SAP HANA no Azure, confira Alta disponibilidade do SAP HANA em VMs do Azure no Red Hat Enterprise Linux. Para obter uma lista de bancos de dados com suporte, confira Nota SAP 1928533.

  • Execute a instalação da instância do banco de dados SAP.

    Instale a instância do banco de dados SAP NetWeaver como raiz usando um nome de host virtual que mapeia para o endereço IP da configuração front-end do balanceador de carga para o banco de dados.

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

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    

Instalação de servidor de aplicativos do SAP NetWeaver

Siga estas etapas para instalar um servidor de aplicativos SAP.

  1. Prepare o servidor de aplicativos.

    Siga as etapas no capítulo Preparação do servidor de aplicativos do SAP NetWeaver acima para preparar o servidor de aplicativos.

  2. Instale o servidor de aplicativos SAP NetWeaver.

    Instale um servidor de aplicativos do SAP NetWeaver primário ou adicional.

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

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin
    
  3. Atualize o armazenamento seguro do SAP HANA.

    Atualize o repositório seguro do SAP HANA para apontar para o nome virtual do programa de instalação da replicação de sistema do SAP HANA.

    Execute o seguinte comando para listar as entradas como <sapsid>adm.

    hdbuserstore List
    

    Todas as entradas devem ser listadas e semelhantes a:

    DATA FILE       : /home/qasadm/.hdb/anftstsapa01/SSFS_HDB.DAT
    KEY FILE        : /home/qasadm/.hdb/anftstsapa01/SSFS_HDB.KEY
    
    KEY DEFAULT
      ENV : 192.168.14.4:30313
      USER: SAPABAP1
      DATABASE: QAS
    

    A saída mostra que o endereço IP da entrada padrão está apontando para a VM e não para o endereço IP do balanceador de carga. Você precisa alterar essa entrada para apontar para o nome do host virtual do balanceador de carga. Certifique-se de usar a mesma porta (30313 na saída anterior) e o nome do banco de dados (QAS na saída anterior).

    su - qasadm
    hdbuserstore SET DEFAULT qasdb:30313@QAS SAPABAP1 <password of ABAP schema>
    

Testar a configuração do cluster

Teste completamente o cluster do Pacemaker. Para obter mais informações, consulte Executar os testes de failover típicos.

Próximas etapas