Partilhar via


Alta disponibilidade para SAP NetWeaver em VMs Azure no SUSE Linux Enterprise Server para aplicações SAP

Este artigo descreve como implantar as máquinas virtuais, configurá-las, instalar a estrutura de cluster e instalar um sistema baseado na plataforma SAP NetWeaver ou SAP ABAP altamente disponível. Nas configurações de exemplo, o número de instância ASCS 00, o número de instância ERS 02 e o ID de sistema SAP NW1 são usados.

Para novas implementações no SLES for SAP Applications 15, recomendamos a implantação de alta disponibilidade para SAP ASCS/ERS em configuração de montagem simples. A configuração clássica do Pacemaker, baseada em sistemas de arquivos controlados por cluster para os diretórios de serviços centrais SAP, descrita neste artigo, ainda é suportada.

Leia primeiro as seguintes notas e documentos SAP

  • SAP Note 1928533, que tem:
    • Lista de tamanhos de VMs do Azure suportados para a implementação de software SAP
    • Informação importante de capacidade para tamanhos de VM do Azure
    • Software SAP suportado, sistema operacional (SO) e combinações de banco de dados
    • Versão necessária do kernel SAP para Windows e Linux no Microsoft Azure
  • A Nota SAP 2015553 enumera os pré-requisitos para implementações de software SAP suportado por SAP em Azure.
  • A Nota SAP 2205917 recomenda as definições do sistema operativo para o SUSE Linux Enterprise Server para aplicações SAP
  • A Nota SAP 1944799 tem SAP HANA Diretrizes para o SUSE Linux Enterprise Server para Aplicações SAP
  • A Nota SAP 2178632 tem informações detalhadas sobre todas as métricas de monitorização reportadas para SAP em Azure.
  • A SAP Note 2191498 tem a versão necessária do SAP Host Agent para Linux em Azure.
  • SAP Note 2243692 tem informações sobre licenciamento SAP no Linux em Azure.
  • O SAP Note 1984787 tem informações gerais sobre o SUSE Linux Enterprise Server 12.
  • SAP Note 1999351 tem outras informações de resolução de problemas para a Azure Enhanced Monitoring Extension for SAP.
  • O SAP Community WIKI tem todas as notas SAP necessárias para Linux.
  • Máquinas Virtuais Azure o planeamento e a implementação para SAP em Linux
  • Implementação de Máquinas Virtuais Azure para SAP em Linux
  • Implementação de SGBD em Máquinas Virtuais Azure para SAP no Linux
  • Guias de Melhores Práticas do SUSE SAP HA Os guias contêm toda a informação necessária para configurar Netweaver HA e Replicação do Sistema SAP HANA no local. Use estes guias como uma linha de base geral. Fornecem informações muito mais pormenorizadas.
  • Notas de versão do SUSE High Availability Extension 12 SP3

Visão geral

Para obter alta disponibilidade, o SAP NetWeaver requer um servidor NFS. O servidor NFS está configurado num cluster separado e múltiplos sistemas SAP podem utilizá-lo.

Visão geral da alta disponibilidade do SAP NetWeaver

O servidor NFS, SAP NetWeaver ASCS, SAP NetWeaver SCS, SAP NetWeaver ERS e a base de dados SAP HANA utilizam nomes de host virtuais e endereços IP virtuais. No Azure, é necessário um balanceador de carga para usar um endereço IP virtual. Recomendamos o uso do balanceador de carga padrão. A configuração apresentada mostra um balanceador de carga com:

  • Endereço IP frontend 10.0.0.7 para ASCS
  • Endereço IP frontend 10.0.0.8 para ERS
  • Porta de sonda 62000 para ASCS
  • Porta de sonda 62101 para ERS

Configurando um servidor NFS altamente disponível

Observação

Recomendamos a implementação de um dos serviços NFS de primeira parte do Azure: NFS em Ficheiros do Azure ou volumes NFS ANF para armazenar dados partilhados num sistema SAP altamente disponível. Esteja ciente de que estamos a desvalorizar as arquiteturas de referência SAP, utilizando clusters NFS.
Os guias de configuração SAP para o sistema SAP NW altamente disponível com serviços NFS nativos são:

O SAP NetWeaver requer armazenamento partilhado para o diretório de transporte e de perfis. Leia Alta disponibilidade para NFS em Azure VMs no SUSE Linux Enterprise Server sobre como configurar um servidor NFS para SAP NetWeaver.

Preparar a infraestrutura

O agente de recursos para instância SAP está incluído no SUSE Linux Enterprise Server for SAP Applications. Uma imagem do SUSE Linux Enterprise Server para SAP Applications 12 ou 15 está disponível no Azure Marketplace. Você pode usar a imagem para implantar novas VMs.

Implemente VMs Linux manualmente através do portal Azure

Este documento assume que um grupo de recursos já está implementado, Rede Virtual do Azure e uma subrede.

Instale máquinas virtuais com a imagem SLES for SAP Applications. Escolha uma versão adequada da imagem SLES que seja suportada para o sistema SAP. Você pode implantar a VM em qualquer uma das opções de disponibilidade - conjunto de escala de máquina virtual, zona de disponibilidade ou conjunto de disponibilidade.

Configurar o balanceador de carga do Azure

Durante a configuração da VM, pode criar ou selecionar o balanceador de carga que sai na secção de rede. Siga os passos descritos para configurar um balanceador de carga padrão para a configuração de alta disponibilidade do SAP ASCS e SAP ERS.

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

  1. Configuração de IP Frontend: Crie dois IP frontend, 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 do frontend: Selecione o endereço IP do frontend
    • Pool de backend: Selecionar pool de backend
    • Marque "Portas de alta disponibilidade"
    • Protocolo: TCP
    • Sonda de integridade: crie uma sonda de integridade com os detalhes abaixo (aplica-se tanto para ASCS quanto para ERS)
      • Protocolo: TCP
      • Porta: [por exemplo: 620<Instance-no.> para ASCS, 621<Instance-no.> para ERS]
      • Intervalo: 5
      • Limiar da prova: 2
    • Tempo limite de inatividade (minutos): 30
    • Marque "Ativar IP Flutuante"

Observação

O número da propriedade de configuração da sonda de saúde, também conhecido como "Limite de integridade" no Portal, não é respeitado. Portanto, 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 esta propriedade usando Azure portal, por isso use o comando CLI do Azure ou PowerShell.

Observação

Quando VMs sem endereços IP públicos são colocadas no backend pool de um balanceador de carga Azure Standard interno (sem endereço IP público), não têm conectividade à internet de saída. É necessária uma configuração adicional para permitir o encaminhamento para pontos públicos. Para detalhes sobre como alcançar conectividade de saída, veja conectividade de endpoints públicos para Máquinas Virtuais que utilizam Azure Balanceador de Carga Standard em cenários de alta disponibilidade do SAP.

Importante

  • Não ative carimbos de tempo TCP em VMs do Azure colocados atrás do Balanceador de Carga do Azure. A ativação de timestamps TCP faz com que os testes de integridade falhem. Defina o net.ipv4.tcp_timestamps parâmetro como 0. Para detalhes, consulte Balanceador de Carga sondas de saúde.
  • Para evitar que o saptune altere o valor de net.ipv4.tcp_timestamps definido manualmente de 0 para 1, deve atualizar a versão do saptune para 3.1.1 ou posterior. Para mais informações, consulte saptune 3.1.1 – Preciso de atualizar?

Configurando o (A)SCS

O passo seguinte é preparar e instalar as instâncias SAP ASCS e ERS.

Criar cluster de marcapasso

Para criar um cluster básico do Pacemaker para SAP ASCS, siga os passos em Configurar o Pacemaker no SUSE Linux Enterprise Server em Azure.

Instalação

Os itens a seguir são prefixados com [A] - aplicável a todos os nós, [1] - aplicável apenas ao nó 1 ou [2] - aplicável apenas ao nó 2.

  1. [A] Instalar o SUSE Connector

    sudo zypper install sap-suse-cluster-connector
    

    Observação

    O problema conhecido com o uso de um traço em nomes de host foi corrigido com a versão 3.1.1 do pacote sap-suse-cluster-connector. Certifica-te de que estás a usar pelo menos a versão 3.1.1 do pacote sap-suse-cluster-connector, se usares nós de cluster com dash no nome do host. Caso contrário, o arranque do teu cluster pode falhar.

    Certifique-se de ter instalado a nova versão do conector de cluster SAP SUSE. O antigo chamava-se sap_suse_cluster_connector e o novo chama-se sap-suse-cluster-connector.

    sudo zypper info sap-suse-cluster-connector
    
    Information for package sap-suse-cluster-connector:
    ---------------------------------------------------
    Repository     : SLE-12-SP3-SAP-Updates
    Name           : sap-suse-cluster-connector
    <b>Version        : 3.0.0-2.2</b>
    Arch           : noarch
    Vendor         : SUSE LLC <https://www.suse.com/>
    Support Level  : Level 3
    Installed Size : 41.6 KiB
    <b>Installed      : Yes</b>
    Status         : up-to-date
    Source package : sap-suse-cluster-connector-3.0.0-2.2.src
    Summary        : SUSE High Availability Setup for SAP Products
    
  2. [A] Atualizar agentes de recursos SAP

    Um patch para o pacote de agentes de recursos é necessário para usar a nova configuração descrita neste artigo. Você pode verificar se o patch já está instalado com o seguinte comando

    sudo grep 'parameter name="IS_ERS"' /usr/lib/ocf/resource.d/heartbeat/SAPInstance
    

    A saída deve ser semelhante a

    <parameter name="IS_ERS" unique="0" required="0">
    

    Se o comando grep não encontrar o parâmetro IS_ERS, você precisará instalar o patch listado na página de download do SUSE.

    # example for patch for SLES 12 SP1
    sudo zypper in -t patch SUSE-SLE-HA-12-SP1-2017-885=1
    # example for patch for SLES 12 SP2
    sudo zypper in -t patch SUSE-SLE-HA-12-SP2-2017-886=1
    
  3. [A] Configurar resolução de nomes de host

    Você pode usar um servidor DNS ou modificar o /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
    
    # Insert the following lines to /etc/hosts. Change the IP address and hostname to match your environment
    # IP address of the load balancer frontend configuration for NFS
    10.0.0.4 nw1-nfs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS
    10.0.0.7 nw1-ascs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS ERS
    10.0.0.8 nw1-aers
    # IP address of the load balancer frontend configuration for database
    10.0.0.13 nw1-db
    

Preparar para a instalação do SAP NetWeaver

  1. [A] Criar os diretórios compartilhados

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    sudo mkdir -p /usr/sap/NW1/SYS
    sudo mkdir -p /usr/sap/NW1/ASCS00
    sudo mkdir -p /usr/sap/NW1/ERS02
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    sudo chattr +i /usr/sap/NW1/SYS
    sudo chattr +i /usr/sap/NW1/ASCS00
    sudo chattr +i /usr/sap/NW1/ERS02
    
  2. [A] Configurar autofs

    sudo vi /etc/auto.master
    
    # Add the following line to the file, save and exit
    +auto.master
    /- /etc/auto.direct
    

    Criar um ficheiro com

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/NW1 -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/sapmntsid
    /usr/sap/trans -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/trans
    /usr/sap/NW1/SYS -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/sidsys
    

    Reinicie o autofs para montar as novas partilhas

    sudo systemctl enable autofs
    sudo service autofs restart
    
  3. [A] Configurar arquivo SWAP

    Crie um ficheiro swap conforme definido em Crie um ficheiro SWAP para uma VM Linux Azure

    #!/bin/sh
    
    # Percent of space on the ephemeral disk to dedicate to swap. Here 30% is being used. Modify as appropriate.
    PCT=0.3
    
    # Location of swap file. Modify as appropriate based on location of ephemeral disk.
    LOCATION=/mnt
    
    if [ ! -f ${LOCATION}/swapfile ]
    then
    
        # Get size of the ephemeral disk and multiply it by the percent of space to allocate
        size=$(/bin/df -m --output=target,avail | /usr/bin/awk -v percent="$PCT" -v pattern=${LOCATION} '$0 ~ pattern {SIZE=int($2*percent);print SIZE}')
        echo "$size MB of space allocated to swap file"
    
         # Create an empty file first and set correct permissions
        /bin/dd if=/dev/zero of=${LOCATION}/swapfile bs=1M count=$size
        /bin/chmod 0600 ${LOCATION}/swapfile
    
        # Make the file available to use as swap
        /sbin/mkswap ${LOCATION}/swapfile
    fi
    
    # Enable swap
    /sbin/swapon ${LOCATION}/swapfile
    /sbin/swapon -a
    
    # Display current swap status
    /sbin/swapon -s
    

    Torne o arquivo executável.

    chmod +x /var/lib/cloud/scripts/per-boot/swap.sh
    

    Pare e inicie a VM. Parar e iniciar a VM só é necessário na primeira vez depois de criar o arquivo SWAP.

Instalação do SAP NetWeaver ASCS/ERS

  1. [1] Criar um recurso IP virtual e uma sonda de integridade para a instância ASCS

    Importante

    Testes recentes revelaram situações em que o netcat deixa de responder a pedidos devido ao atraso e à limitação de gerir apenas uma ligação. O recurso netcat deixa de ouvir os pedidos do Azure Load balancer e o IP flutuante torna-se indisponível.
    Para clusters Pacemaker existentes, recomendámos anteriormente a substituição do netcat pelo socat. Atualmente, recomendamos o uso do azure-lb resource agent, que faz parte dos agentes de recursos do pacote, com os seguintes requisitos de versão do pacote:

    • Para SLES 12 SP4/SP5, a versão deve ser pelo menos resource-agents-4.3.018.a7fb5035-3.30.1.
    • Para o SLES 15/15 SP1, a versão deve ser pelo menos resource-agents-4.3.0184.6ee15eb2-4.13.1.

    Esta mudança requer um breve período de inatividade.
    Para clusters Pacemaker existentes, se a configuração já foi alterada para usar socat conforme descrito em Azure Load-Balancer Detection Hardening, não há necessidade de mudar imediatamente para o agente de recursos de azure lb.

    sudo crm node standby nw1-cl-1
    
    sudo crm configure primitive fs_NW1_ASCS Filesystem device='nw1-nfs:/NW1/ASCS' directory='/usr/sap/NW1/ASCS00' fstype='nfs4' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    sudo crm configure primitive vip_NW1_ASCS IPaddr2 \
      params ip=10.0.0.7 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW1_ASCS azure-lb port=62000 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW1_ASCS fs_NW1_ASCS nc_NW1_ASCS vip_NW1_ASCS \
       meta resource-stickiness=3000
    

    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 a ser executados.

    sudo crm_mon -r
    
    # Node nw1-cl-1: standby
    # Online: [ nw1-cl-0 ]
    # 
    # Full list of resources:
    # 
    # stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
    
  2. [1] Instalar o SAP NetWeaver ASCS

    Instale o SAP NetWeaver ASCS como raiz no primeiro nó usando um nome de host virtual que mapeie para o endereço IP da configuração de frontend do balanceador de carga para o ASCS, por exemplo, nw1-ascs, 10.0.0.7 e o número da instância que você usou para a sonda do balanceador de carga, por exemplo 00.

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

    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/NW1/ASCS00, tente definir o proprietário e o grupo da pasta ASCS00 e tente novamente.

    chown nw1adm /usr/sap/NW1/ASCS00
    chgrp sapsys /usr/sap/NW1/ASCS00
    
  3. [1] Criar um recurso IP virtual e uma sonda de integridade para a instância ERS.

    sudo crm node online nw1-cl-1
    sudo crm node standby nw1-cl-0
    
    sudo crm configure primitive fs_NW1_ERS Filesystem device='nw1-nfs:/NW1/ASCSERS' directory='/usr/sap/NW1/ERS02' fstype='nfs4' \
      op start timeout=60s interval=0 \
      op stop timeout=60s interval=0 \
      op monitor interval=20s timeout=40s
    
    sudo crm configure primitive vip_NW1_ERS IPaddr2 \
      params ip=10.0.0.8 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW1_ERS azure-lb port=62102 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW1_ERS fs_NW1_ERS nc_NW1_ERS vip_NW1_ERS
    

    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 a ser executados.

    sudo crm_mon -r
    
    # Node nw1-cl-0: standby
    # Online: [ nw1-cl-1 ]
    # 
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
    #  Resource Group: g-NW1_ASCS
    #      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
    #  Resource Group: g-NW1_ERS
    #      fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
    #      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
    #      vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
    
  4. [2] Instalar o SAP NetWeaver ERS

    Instale o SAP NetWeaver ERS como utilizador root no segundo nó usando um nome de host virtual que mapeia para o endereço IP da configuração de frontend do balanceador de carga para o ERS, por exemplo, nw1-aers, 10.0.0.8, e o número da instância utilizado na verificação do balanceador de carga, por exemplo, 02.

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

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    Observação

    Use SWPM SP 20 PL 05 ou superior. Versões inferiores definem as permissões incorretamente e a instalação falha.

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

    chown nw1adm /usr/sap/NW1/ERS02
    chgrp sapsys /usr/sap/NW1/ERS02
    
  5. [1] Adaptar os perfis das instâncias ASCS/SCS e ERS.

    • Perfil ASCS/SCS

      sudo vi /sapmnt/NW1/profile/NW1_ASCS00_nw1-ascs
      
      # Change the restart command to a start command
      #Restart_Program_01 = local $(_EN) pf=$(_PF)
      Start_Program_01 = local $(_EN) pf=$(_PF)
      
      # Add the following lines
      service/halib = $(DIR_EXECUTABLE)/saphascriptco.so
      service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
      
      # 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/NW1/profile/NW1_ERS02_nw1-aers
      
      # 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)
      
      # Add the following lines
      service/halib = $(DIR_EXECUTABLE)/saphascriptco.so
      service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
      
      # remove Autostart from ERS profile
      # Autostart = 1
      
  6. [A] Configurar a funcionalidade Keep Alive

    A comunicação entre o servidor de aplicativos 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 evitar esta desconexão, precisa de definir um parâmetro no perfil ASCS/SCS do SAP NetWeaver, se estiver a usar ENSA1, e alterar as definições do sistema keepalive Linux em todos os servidores SAP tanto para ENSA1 como para ENSA2. Leia SAP Note 1410736 para obter mais informações.

    # Change the Linux system configuration
    sudo sysctl net.ipv4.tcp_keepalive_time=300
    
  7. [A] Configurar os usuários SAP após a instalação

    # Add sidadm to the haclient group
    sudo usermod -aG haclient nw1adm
    
  8. [1] Adicionar os serviços ASCS e ERS SAP ao ficheiro sapservice.

    Adicione a entrada de serviço ASCS ao segundo nó e copie a entrada de serviço ERS para o primeiro nó.

    cat /usr/sap/sapservices | grep ASCS00 | sudo ssh nw1-cl-1 "cat >>/usr/sap/sapservices"
    sudo ssh nw1-cl-1 "cat /usr/sap/sapservices" | grep ERS02 | sudo tee -a /usr/sap/sapservices
    
  9. [A] Desativar os serviços da instância SAP ASCS e ERS. Este passo só é aplicável se o systemd gerir o framework de arranque SAP conforme a Nota SAP 3115048

    Observação

    Ao gerir instâncias SAP como SAP ASCS e SAP ERS usando a configuração de cluster SLES, é necessário fazer outras modificações para integrar o cluster com a framework SAP start nativa baseada em systemd, garantindo que os procedimentos de manutenção não venham a comprometer a estabilidade do cluster. Após a instalação ou a mudança da estrutura de inicialização do SAP para uma configuração com suporte a systemd, conforme a SAP Note 3115048, deve-se desativar os serviços systemd para as instâncias SAP ASCS e ERS.

    # Stop ASCS and ERS instances using <sid>adm
    sapcontrol -nr 00 -function Stop
    sapcontrol -nr 00 -function StopService
    
    sapcontrol -nr 01 -function Stop
    sapcontrol -nr 01 -function StopService
    
    # Execute below command on VM where you have performed ASCS instance installation (e.g. nw1-cl-0)
    sudo systemctl disable SAPNW1_00
    # Execute below command on VM where you have performed ERS instance installation (e.g. nw1-cl-1)
    sudo systemctl disable SAPNW1_01
    
  10. [1] Criar os recursos do cluster SAP

    Dependendo se estiveres a executar um sistema ENSA1 ou ENSA2, seleciona o respetivo separador para definir os recursos. 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.

    sudo crm configure property maintenance-mode="true"
    
    sudo crm configure primitive rsc_sap_NW1_ASCS00 SAPInstance \
      operations \$id=rsc_sap_NW1_ASCS00-operations \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=NW1_ASCS00_nw1-ascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_nw1-ascs" \
      AUTOMATIC_RECOVER=false \
      meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    sudo crm configure primitive rsc_sap_NW1_ERS02 SAPInstance \
      operations \$id=rsc_sap_NW1_ERS02-operations \
      op monitor interval=11 timeout=60 on-fail=restart \
      params InstanceName=NW1_ERS02_nw1-aers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS02_nw1-aers" AUTOMATIC_RECOVER=false IS_ERS=true \
      meta priority=1000
    
    sudo crm configure modgroup g-NW1_ASCS add rsc_sap_NW1_ASCS00
    sudo crm configure modgroup g-NW1_ERS add rsc_sap_NW1_ERS02
    
    sudo crm configure colocation col_sap_NW1_no_both -5000: g-NW1_ERS g-NW1_ASCS
    sudo crm configure location loc_sap_NW1_failover_to_ers rsc_sap_NW1_ASCS00 rule 2000: runs_ers_NW1 eq 1
    sudo crm configure order ord_sap_NW1_first_start_ascs Optional: rsc_sap_NW1_ASCS00:start rsc_sap_NW1_ERS02:stop symmetrical=false
    
    sudo crm_attribute --delete --name priority-fencing-delay
    
    sudo crm node online nw1-cl-0
    sudo crm configure property maintenance-mode="false"
    

Se estiver a atualizar de uma versão mais antiga e a mudar para o enqueue server 2, consulte a nota SAP 2641019.

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 a ser executados.

sudo crm_mon -r
 
# Online: [ nw1-cl-0 nw1-cl-1 ]
#
# Full list of resources:
#
# stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
#  Resource Group: g-NW1_ASCS
#      fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
#      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
#      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
#      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
#  Resource Group: g-NW1_ERS
#      fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
#      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
#      vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
#      rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0

Observação

O cluster SAP ASCS/ERS pode ser expandido de um cluster de 2 nós para um de 3 nós, com o 3.º nó servindo como nó de reserva para o failover dos serviços ASCS ou ERS.

  • A configuração de 3 nós só pode ser usada em sistemas SAP que utilizam o SAP Enqueue Replication Server 2 (ENSA2).
  • A propriedade priority-fencing-delay do cluster não deve ser usada num cluster de 3 nós.

Preparação do servidor de aplicativos SAP NetWeaver

Alguns bancos de dados exigem que a instalação da instância de banco de dados seja executada em um servidor de aplicativos. Prepare as máquinas virtuais do servidor de aplicações para poderem executar a instalação da base de dados.

Os passos comuns seguintes assumem que instalas o servidor de aplicações num servidor diferente dos servidores ASCS e HANA.

  1. Configurar o sistema operacional

    Reduza o tamanho do cache sujo. Para obter mais informações, consulte Baixo desempenho de gravação em servidores SLES 11/12 com RAM grande.

    sudo vi /etc/sysctl.conf
    
    # Change/set the following settings
    vm.dirty_bytes = 629145600
    vm.dirty_background_bytes = 314572800
    
  2. Configurar a resolução de nomes de host

    Você pode usar um servidor DNS ou modificar o /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 seguintes comandos

    sudo vi /etc/hosts
    

    Insira as seguintes linhas em /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 NFS
    10.0.0.4 nw1-nfs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ASCS/SCS
    10.0.0.7 nw1-ascs
    # IP address of the load balancer frontend configuration for SAP NetWeaver ERS
    10.0.0.8 nw1-aers
    # IP address of the load balancer frontend configuration for database
    10.0.0.13 nw1-db
    # IP address of all application servers
    10.0.0.20 nw1-di-0
    10.0.0.21 nw1-di-1
    
  3. Criar o diretório sapmnt

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
  4. Configurar autofs

    sudo vi /etc/auto.master
    
    # Add the following line to the file, save and exit
    +auto.master
    /- /etc/auto.direct
    

    Crie um novo ficheiro com

    sudo vi /etc/auto.direct
    
    # Add the following lines to the file, save and exit
    /sapmnt/NW1 -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/sapmntsid
    /usr/sap/trans -nfsvers=4,nosymlink,sync nw1-nfs:/NW1/trans
    

    Reinicie o autofs para montar as novas partilhas

    sudo systemctl enable autofs
    sudo service autofs restart
    
  5. Configurar arquivo SWAP

    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 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
    

    Para ativar a alteração, reinicie o agente.

    sudo service waagent restart
    

Instalar banco de dados

Neste exemplo, o SAP NetWeaver está instalado no SAP HANA. Você pode usar todos os bancos de dados suportados para esta instalação. Para mais informações sobre como instalar SAP HANA em Azure, consulte Alta Disponibilidade de SAP HANA em Máquinas Virtuais do Azure (VMs). Para obter uma lista de bancos de dados suportados, consulte SAP Note 1928533.

  1. Executar a instalação da instância do banco de dados SAP

    Instale a instância do banco de dados SAP NetWeaver 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 banco de dados, por exemplo, nw1-db e 10.0.0.13.

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

    sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

Instalação do servidor de aplicativos SAP NetWeaver

Siga estas etapas para instalar um servidor de aplicativos SAP.

  1. Preparar o servidor de aplicativos

    Siga as etapas em Preparação do servidor de aplicativos SAP NetWeaver.

  2. Instalar o servidor de aplicativos SAP NetWeaver

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

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

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

    Atualize o armazenamento seguro do SAP HANA para apontar para o nome virtual da configuração do System Replication SAP HANA.

    Para listar as entradas, execute o seguinte comando:

    hdbuserstore List
    

    O comando deve listar todas as entradas e deve ser semelhante a este exemplo.

    DATA FILE       : /home/nw1adm/.hdb/nw1-di-0/SSFS_HDB.DAT
    KEY FILE        : /home/nw1adm/.hdb/nw1-di-0/SSFS_HDB.KEY
    
    KEY DEFAULT
      ENV : 10.0.0.14:30313
      USER: SAPABAP1
      DATABASE: HN1
    

    Neste exemplo, o endereço IP da entrada padrão aponta para a VM, não para o balanceador de carga. Altere a entrada para apontar para o hostname virtual do balanceador de carga. Certifique-se de usar a mesma porta e o mesmo nome do banco de dados. Por exemplo, 30313 e HN1 na saída da amostra.

    su - nw1adm
    hdbuserstore SET DEFAULT nw1-db:30313@HN1 SAPABAP1 <password of ABAP schema>
    

Testar a configuração do cluster

Os testes a seguir são uma cópia dos casos de teste nos guias de práticas recomendadas da SUSE. Eles são copiados para sua comodidade. Lê sempre também os guias de melhores práticas e realiza todos os testes extra que possam ter sido adicionados.

  1. Teste HAGetFailoverConfig, HACheckConfig e HACheckFailoverConfig

    Execute os seguintes comandos como <sapsid>adm no nó onde a instância ASCS está a ser executada atualmente. Se os comandos falharem com FAIL: Memória insuficiente, isso pode dever-se a traços no seu nome de host. Este erro é um problema conhecido e será corrigido pelo SUSE no pacote sap-suse-cluster-connector.

    nw1-cl-0:nw1adm 54> sapcontrol -nr 00 -function HAGetFailoverConfig
    
    # 15.08.2018 13:50:36
    # HAGetFailoverConfig
    # OK
    # HAActive: TRUE
    # HAProductVersion: Toolchain Module
    # HASAPInterfaceVersion: Toolchain Module (sap_suse_cluster_connector 3.0.1)
    # HADocumentation: https://www.suse.com/products/sles-for-sap/resource-library/sap-best-practices/
    # HAActiveNode:
    # HANodes: nw1-cl-0, nw1-cl-1
    
    nw1-cl-0:nw1adm 55> sapcontrol -nr 00 -function HACheckConfig
    
    # 15.08.2018 14:00:04
    # HACheckConfig
    # OK
    # state, category, description, comment
    # SUCCESS, SAP CONFIGURATION, Redundant ABAP instance configuration, 2 ABAP instances detected
    # SUCCESS, SAP CONFIGURATION, Redundant Java instance configuration, 0 Java instances detected
    # SUCCESS, SAP CONFIGURATION, Enqueue separation, All Enqueue server separated from application server
    # SUCCESS, SAP CONFIGURATION, MessageServer separation, All MessageServer separated from application server
    # SUCCESS, SAP CONFIGURATION, ABAP instances on multiple hosts, ABAP instances on multiple hosts detected
    # SUCCESS, SAP CONFIGURATION, Redundant ABAP SPOOL service configuration, 2 ABAP instances with SPOOL service detected
    # SUCCESS, SAP STATE, Redundant ABAP SPOOL service state, 2 ABAP instances with active SPOOL service detected
    # SUCCESS, SAP STATE, ABAP instances with ABAP SPOOL service on multiple hosts, ABAP instances with active ABAP SPOOL service on multiple hosts detected
    # SUCCESS, SAP CONFIGURATION, Redundant ABAP BATCH service configuration, 2 ABAP instances with BATCH service detected
    # SUCCESS, SAP STATE, Redundant ABAP BATCH service state, 2 ABAP instances with active BATCH service detected
    # SUCCESS, SAP STATE, ABAP instances with ABAP BATCH service on multiple hosts, ABAP instances with active ABAP BATCH service on multiple hosts detected
    # SUCCESS, SAP CONFIGURATION, Redundant ABAP DIALOG service configuration, 2 ABAP instances with DIALOG service detected
    # SUCCESS, SAP STATE, Redundant ABAP DIALOG service state, 2 ABAP instances with active DIALOG service detected
    # SUCCESS, SAP STATE, ABAP instances with ABAP DIALOG service on multiple hosts, ABAP instances with active ABAP DIALOG service on multiple hosts detected
    # SUCCESS, SAP CONFIGURATION, Redundant ABAP UPDATE service configuration, 2 ABAP instances with UPDATE service detected
    # SUCCESS, SAP STATE, Redundant ABAP UPDATE service state, 2 ABAP instances with active UPDATE service detected
    # SUCCESS, SAP STATE, ABAP instances with ABAP UPDATE service on multiple hosts, ABAP instances with active ABAP UPDATE service on multiple hosts detected
    # SUCCESS, SAP STATE, SCS instance running, SCS instance status ok
    # SUCCESS, SAP CONFIGURATION, SAPInstance RA sufficient version (nw1-ascs_NW1_00), SAPInstance includes is-ers patch
    # SUCCESS, SAP CONFIGURATION, Enqueue replication (nw1-ascs_NW1_00), Enqueue replication enabled
    # SUCCESS, SAP STATE, Enqueue replication state (nw1-ascs_NW1_00), Enqueue replication active
    
    nw1-cl-0:nw1adm 56> sapcontrol -nr 00 -function HACheckFailoverConfig
    
    # 15.08.2018 14:04:08
    # HACheckFailoverConfig
    # OK
    # state, category, description, comment
    # SUCCESS, SAP CONFIGURATION, SAPInstance RA sufficient version, SAPInstance includes is-ers patch
    
  2. Migrar manualmente a instância ASCS

    Estado do recurso antes de iniciar o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    

    Execute os seguintes comandos como root para migrar a instância ASCS.

    nw1-cl-0:~ # crm resource migrate rsc_sap_NW1_ASCS00 force
    # INFO: Move constraint created for rsc_sap_NW1_ASCS00
    
    nw1-cl-0:~ # crm resource unmigrate rsc_sap_NW1_ASCS00
    # INFO: Removed migration constraints for rsc_sap_NW1_ASCS00
    
    # Remove failed actions for the ERS that occurred as part of the migration
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    

    Estado do recurso após o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  3. Teste HAFailoverToNode

    Estado do recurso antes de iniciar o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Para migrar a instância ASCS, execute os seguintes comandos como <sapsid>adm.

    nw1-cl-0:nw1adm 55> sapcontrol -nr 00 -host nw1-ascs -user nw1adm <password> -function HAFailoverToNode ""
    
    # run as root
    # Remove failed actions for the ERS that occurred as part of the migration
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    # Remove migration constraints
    nw1-cl-0:~ # crm resource clear rsc_sap_NW1_ASCS00
    #INFO: Removed migration constraints for rsc_sap_NW1_ASCS00
    

    Estado do recurso após o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    
  4. Simular falha de nó

    Estado do recurso antes de iniciar o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-0
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    

    Execute o seguinte comando como root no nó onde a instância ASCS está a executar.

    nw1-cl-0:~ # echo b > /proc/sysrq-trigger
    

    Se usares o SBD, o Pacemaker não deve iniciar automaticamente no nó desativado. O estado após o nó ser reiniciado deve ter esta aparência.

    Online: [ nw1-cl-1 ]
    OFFLINE: [ nw1-cl-0 ]
    
    Full list of resources:
    
    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    
    Failed Actions:
    * rsc_sap_NW1_ERS02_monitor_11000 on nw1-cl-1 'not running' (7): call=219, status=complete, exitreason='none',
        last-rc-change='Wed Aug 15 14:38:38 2018', queued=0ms, exec=0ms
    

    Use os seguintes comandos para iniciar o Pacemaker no nó morto, limpar as mensagens SBD e limpar os recursos com falha.

    # run as root
    # list the SBD device(s)
    nw1-cl-0:~ # cat /etc/sysconfig/sbd | grep SBD_DEVICE=
    # SBD_DEVICE="/dev/disk/by-id/scsi-36001405772fe8401e6240c985857e116;/dev/disk/by-id/scsi-36001405034a84428af24ddd8c3a3e9e1;/dev/disk/by-id/scsi-36001405cdd5ac8d40e548449318510c3"
    
    nw1-cl-0:~ # sbd -d /dev/disk/by-id/scsi-36001405772fe8401e6240c985857e116 -d /dev/disk/by-id/scsi-36001405034a84428af24ddd8c3a3e9e1 -d /dev/disk/by-id/scsi-36001405cdd5ac8d40e548449318510c3 message nw1-cl-0 clear
    
    nw1-cl-0:~ # systemctl start pacemaker
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ASCS00
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    

    Estado do recurso após o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  5. Bloquear a comunicação de rede

    Estado do recurso antes de iniciar o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Execute uma regra de firewall para bloquear a comunicação em um dos nós.

    # Execute iptable rule on nw1-cl-0 (10.0.0.5) to block the incoming and outgoing traffic to nw1-cl-1 (10.0.0.6)
    iptables -A INPUT -s 10.0.0.6 -j DROP; iptables -A OUTPUT -d 10.0.0.6 -j DROP
    

    Quando os nós de cluster não conseguem se comunicar entre si, há um risco de um cenário de cérebro dividido. Nessas situações, os nós do cluster tentam bloquear-se simultaneamente, resultando numa concorrência de bloqueio.

    Ao configurar um dispositivo de vedação, a recomendação é configurar a pcmk_delay_max propriedade. Assim, no caso de cenário de cérebro dividido, o cluster introduz um atraso aleatório até o pcmk_delay_max valor, para a ação de vedação em cada nó. O nó com o atraso mais curto é selecionado para a esgrima.

    Adicionalmente, na configuração ENSA 2, para priorizar o nó que aloja o recurso ASCS em detrimento do outro nó durante um cenário de cérebro dividido, recomenda-se configurar priority-fencing-delay propriedades no cluster. Ativar a propriedade atraso-prioridade permite ao cluster adicionar um atraso extra na ação de isolamento, especificamente no nó que hospeda o recurso ASCS, permitindo que o nó ASCS vença a corrida de isolamento.

    Observação

    A priority-fencing-delay propriedade aplica-se apenas a configurações de cluster de dois nós a correr com ENSA2.

    Execute o comando seguinte para eliminar a regra do firewall.

    # If the iptables rule set on the server gets reset after a reboot, the rules will be cleared out. In case they have not been reset, please proceed to remove the iptables rule using the following command.
    iptables -D INPUT -s 10.0.0.6 -j DROP; iptables -D OUTPUT -d 10.0.0.6 -j DROP
    
  6. Teste de reinicialização manual da instância ASCS

    Estado do recurso antes de iniciar o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Crie um bloqueio de enqueue, por exemplo, ao editar um utilizador na transação su01. Execute os seguintes comandos como <sapsid>adm no nó onde a instância ASCS está sendo executada. O comando pára a instância ASCS e volta a iniciá-la. Se estiver usando a arquitetura do servidor enqueue 1, espera-se que o bloqueio enqueue seja perdido neste teste. Se estiver a usar a arquitetura do Enqueue Server 2, o Enqueue será mantido.

    nw1-cl-1:nw1adm 54> sapcontrol -nr 00 -function StopWait 600 2
    

    A instância ASCS agora deve ser desativada no Pacemaker

    rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Stopped (disabled)
    

    Inicie a instância ASCS novamente no mesmo nó.

    nw1-cl-1:nw1adm 54> sapcontrol -nr 00 -function StartWait 600 2
    

    O bloqueio de fila da transação su01 deve ser removido e espera-se que o back-end tenha sido redefinido. Estado do recurso após o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  7. Matar processo do servidor de mensagens

    Estado do recurso antes de iniciar o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Execute os seguintes comandos como root para identificar o processo do servidor de mensagens e matá-lo.

    nw1-cl-1:~ # pgrep -f ms.sapNW1 | xargs kill -9
    

    Se você matar o servidor de mensagens apenas uma vez, ele será reiniciado pelo sapstart. Se o matares com frequência suficiente, o Pacemaker acaba por mover a instância do ASCS para o outro nó (aplicável ao ENSA1). Corra os seguintes comandos como utilizador root para limpar o estado do recurso da instância ASCS e ERS após o teste.

    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ASCS00
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    

    Estado do recurso após o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    
  8. Terminar processo do servidor de fila

    Estado do recurso antes de iniciar o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
    

    Execute os seguintes comandos como root no nó onde a instância ASCS está a correr para encerrar o servidor de enfileiramento.

    nw1-cl-0:~ # 
    #If using ENSA1
    pgrep -f en.sapNW1 | xargs kill -9
    #If using ENSA2
    pgrep -f enq.sapNW1 | xargs kill -9
    

    A instância ASCS deve imediatamente efetuar o failover para o outro nó (aplicável ao ENSA1). A instância ERS também deve fazer failover depois que a instância ASCS for iniciada. Corra os seguintes comandos como utilizador root para limpar o estado do recurso da instância ASCS e ERS após o teste.

    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ASCS00
    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    

    Estado do recurso após o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  9. Matar o processo do servidor de replicação enqueue

    Estado do recurso antes de iniciar o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Execute o seguinte comando como utilizador root no nó onde a instância do ERS está a ser executada para terminar o processo do servidor de replicação do enqueue.

    nw1-cl-0:~ # pgrep -f er.sapNW1 | xargs kill -9
    

    Se você executar o comando apenas uma vez, o sapstart reiniciará o processo. Se você executá-lo com frequência suficiente, o sapstart não reiniciará o processo e o recurso estará em um estado interrompido. Execute os seguintes comandos como root para limpar o estado do recurso da instância ERS após o teste.

    nw1-cl-0:~ # crm resource cleanup rsc_sap_NW1_ERS02
    

    Estado do recurso após o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    
  10. Encerrar o processo enqueue sapstartsrv

    Estado do recurso antes de iniciar o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

    Execute os seguintes comandos como utilizador root no nó onde o ASCS está a ser executado.

    nw1-cl-1:~ # pgrep -fl ASCS00.*sapstartsrv
    # 59545 sapstartsrv
    
    nw1-cl-1:~ # kill -9 59545
    

    O processo sapstartsrv deve ser sempre reiniciado pelo agente de recursos do Pacemaker. Estado do recurso após o teste:

    stonith-sbd     (stonith:external/sbd): Started nw1-cl-1
     Resource Group: g-NW1_ASCS
         fs_NW1_ASCS        (ocf::heartbeat:Filesystem):    Started nw1-cl-1
         nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started nw1-cl-1
         vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started nw1-cl-1
         rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started nw1-cl-1
     Resource Group: g-NW1_ERS
         fs_NW1_ERS (ocf::heartbeat:Filesystem):    Started nw1-cl-0
         nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started nw1-cl-0
         vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started nw1-cl-0
         rsc_sap_NW1_ERS02  (ocf::heartbeat:SAPInstance):   Started nw1-cl-0
    

Próximos passos