SAP NetWeaver de alta disponibilidade com montagem simples e NFS no SLES para VMs de aplicativos SAP

Este artigo descreve como implantar e configurar VMs (máquinas virtuais) do Azure, instalar a estrutura do cluster e instalar um sistema SAP NetWeaver HA (de alta disponibilidade) com uma estrutura de montagem simples. Você pode implementar a arquitetura apresentada usando um dos seguintes serviços NFS (Sistema de Arquivos de Rede) nativos do Azure:

Espera-se que a configuração de montagem simples seja o padrão para novas implementações no SLES para Aplicativos SAP 15.

Pré-requisitos

Os guias a seguir contêm todas as informações necessárias para configurar um sistema de HA do NetWeaver:

Visão geral

Este artigo descreve a configuração de alta disponibilidade de ASCS com estrutura de montagem simples. Para implantar a camada de aplicativo SAP, você precisa de diretórios compartilhados como /sapmnt/SID, /usr/sap/SID e /usr/sap/trans, que são altamente disponíveis. Você pode implantar esses sistemas de arquivos no NFS em Arquivos do AzureouAzure NetApp Files.

Você ainda precisa de um cluster do Pacemaker para ajudar a proteger componentes de ponto único de falha, como os SCS (Serviços Centrais do SAP) e ASCS.

Em comparação com a configuração clássica do cluster do Pacemaker, com a implantação da montagem simples, o cluster não gerencia os sistemas de arquivos. Essa configuração só tem suporte no SLES para aplicativos SAP 15 e mais recentes. Este artigo não aborda a camada de banco de dados em detalhes.

As configurações e os comandos de instalação de exemplo usam os seguintes números de instância.

Nome da instância Número da instância
ASCS 00
Servidor de Replicação Enfileiramento (ERS) 01
PAS (Servidor de aplicativos primário) 02
AAS (Servidor de aplicativos adicional) 03
Identificador do sistema SAP NW1

Importante

A configuração com estrutura de montagem simples só tem suporte no SLES para Aplicativos SAP 15 e versões posteriores.

Diagram that shows SAP NetWeaver high availability with simple mount and NFS.

Este diagrama mostra uma arquitetura de alta disponibilidade típica do SAP NetWeaver com montagem simples. Os sistemas de arquivos "sapmnt" e "saptrans" são implantados no NFS nativo do Azure: compartilhamentos NFS em volumes de Arquivos do Azure ou NFS no Azure NetApp Files. Um cluster do Pacemaker protege os serviços centrais do SAP. As VMs clusterizadas estão atrás de um balanceador de carga do Azure. O cluster do Pacemaker não gerencia os sistemas de arquivos, em contraste com a configuração clássica do Pacemaker.

Preparar a infraestrutura

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

Implantar VMs do Linux manualmente por meio do portal do Azure

Este documento pressupõe que você já implantou um grupo de recursos, uma Rede Virtual do Azure e uma sub-rede.

Implantar máquinas virtuais com imagem do SLES para Applications SAP. Escolha uma versão adequada da imagem do SLES que seja compatível com o sistema SAP. Você pode implementar a VM em qualquer uma das opções de disponibilidade, conjunto de dimensionamento de máquinas virtuais, zona de disponibilidade ou conjunto de disponibilidade.

Configurar o Azure Load Balancer

Durante a configuração da VM, você tem a opção de criar ou selecionar o balanceador de carga existente 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 instalação do balanceador de carga, considere os pontos a seguir.

  1. Configuração de IP de Front-end: Criar dois protocolos 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: Criar um pool de back-end e adicionar VMs ASCS e ERS.
  3. Regras de Entrada: Criar duas regras de balanceamento de carga, uma para o ASCS e outra para o ERS. Siga as mesmas etapas para ambas as regras de balanceamento de carga.
    • Endereço IP de front-end: Selecionar o IP de front-end
    • Pool de back-end: Selecionar o pool de back-end
    • Verifique "Portas de alta disponibilidade"
    • Protocolo: TCP
    • Investigação de integridade: Criar uma investigação de integridade com os detalhes abaixo (aplica-se tanto ao ASCS quanto ao ERS)
      • Protocolo: TCP
      • Porta: [por exemplo: 620<Instance-no.> para ASCS, 621<Instance-no.> para ERS]
      • Intervalo: 5
      • Limite de Investigação: 2
    • Tempo limite ocioso (minutos): 30
    • Verificar "Habilitar 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 investigações consecutivas bem-sucedidas 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 a CLI do Azure ou o comando do PowerShell.

Importante

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

Observação

Quando as VMs sem endereços IP públicos forem colocadas no pool de back-end de um balanceador de carga Standard interno do Azure (sem endereço IP público), não haverá nenhuma conectividade de saída com a Internet, a menos que você execute configurações adicionais a fim de permitir o roteamento para pontos de extremidade públicos. Para obter detalhes sobre como alcançar conectividade de saída, veja Conectividade de ponto de extremidade público para máquinas virtuais usando um Standard Load Balancer do Azure em cenários de alta disponibilidade do 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. Habilitar carimbos de data/hora de TCP fará com que as investigações de integridade falhem. Defina o parâmetro de net.ipv4.tcp_timestamps a 0. Para obter detalhes, veja Investigações de integridade do Load Balancer.
  • Para evitar que o saptune altere o valor net.ipv4.tcp_timestamps definido manualmente de 0 de volta para 1, você deve atualizar a versão do saptune para 3.1.1 ou superior. Para obter mais detalhes, confira Saptune 3.1.1 - Preciso atualizar?.

Implantar o NFS

Há duas opções para implantar o NFS nativo do Azure para hospedar os diretórios compartilhados do SAP. Você pode implantar um compartilhamento de arquivo NFS nos Arquivos do Azure ou implantar um volume NFS no Azure NetApp Files. O NFS nos Arquivos do Azure dá suporte ao protocolo NFSv4.1. O NFS no Azure NetApp Files dá suporte a NFSv4.1 e NFSv3.

As próximas seções descrevem as etapas para implantar o NFS. Selecione apenas uma das opções.

Implantar uma conta de armazenamento dos Arquivos do Azure e compartilhamentos NFS

O NFS nos Arquivos do Azure é executado sobre o Armazenamento Premium dos Arquivos do Azure. Antes de configurar o NFS nos Arquivos do Azure, confira Como criar um compartilhamento NFS.

Há duas opções de redundância em uma região do Azure:

Verifique se a região do Azure selecionada oferece NFSv4.1 nos Arquivos do Azure com a redundância apropriada. Examine a disponibilidade de Arquivos do Azure por região do Azure em Armazenamento de Arquivos Premium. Se o seu cenário se beneficia com o ZRS, verifique se há suporte para os compartilhamentos de arquivos premium com ZRS na sua região do Azure.

Recomendamos que você acesse a sua conta de armazenamento do Azure por meio de um ponto de extremidade privado do Azure. Não deixe de implantar o ponto de extremidade da conta de armazenamento dos Arquivos do Azure e as VMs em que você precisa montar os compartilhamentos NFS na mesma rede virtual do Azure ou em redes virtuais do Azure emparelhadas.

  1. Implante uma conta de armazenamento dos Arquivos do Azure com o nome sapnfsafs. Este exemplo usa ZRS. Se você não está familiarizado com esse processo, confira Criar uma conta de armazenamento para o portal do Azure.
  2. Na guia Básico, use estas configurações:
    1. Para Nome da conta de armazenamento, insira sapnfsafs.
    2. Para Desempenho, selecione Premium.
    3. Para Tipo de conta Premium, selecione FileStorage.
    4. Para Replicação, selecione ZRS (redundância de zona).
  3. Selecione Avançar.
  4. Na guia Avançado, desmarque Exigir transferência segura para a API REST. Se você não desmarcar essa opção, não poderá montar o compartilhamento NFS na sua VM. A operação de montagem atingirá o tempo limite.
  5. Selecione Avançar.
  6. Na seção Rede, defina estas configurações:
    1. Em Conectividade de rede, para Método de conectividade, selecione Ponto de extremidade privado.
    2. Em Ponto de extremidade privado, selecione Adicionar ponto de extremidade privado.
  7. No painel Criar ponto de extremidade privado, selecione a assinatura, o grupo de recursos e a localização. Então, faça as seleções a seguir:
    1. Para Nome, insira sapnfsafs_pe.
    2. Para Sub-recurso de armazenamento, selecione arquivo.
    3. Em Rede, para Rede virtual, selecione a rede virtual e a sub-rede a serem usadas. Novamente, você pode usar a rede virtual em que as suas VMs do SAP estão ou uma rede virtual emparelhada.
    4. Em Integração do DNS privado, aceite a opção padrão Sim para Integrar com a zona DNS privada. Não deixe de selecionar a sua zona DNS privada.
    5. Selecione OK.
  8. Novamente na guia Rede, selecione Avançar.
  9. Na guia Proteção de dados, mantenha todas as configurações padrão.
  10. Selecione Examinar + criar para validar a configuração.
  11. Aguarde a conclusão da validação. Corrija eventuais problemas antes de continuar.
  12. Na guia Revisar + criar, selecione Criar.

Em seguida, implante os compartilhamentos NFS na conta de armazenamento que você criou. Neste exemplo, há dois compartilhamentos NFS, sapnw1 e saptrans.

  1. Entre no portal do Azure.
  2. Selecione ou pesquise por Contas de armazenamento.
  3. Na página Contas de armazenamento, selecione sapafsnfs.
  4. No menu de recursos de sapafsnfs, selecione Compartilhamentos de arquivo em Armazenamento de dados.
  5. Na página Compartilhamentos de arquivo, selecione Compartilhamento de arquivo, e então:
    1. Para Nome, insira sapnw1, saptrans.
    2. Selecione um tamanho de compartilhamento apropriado. Considere o tamanho dos dados armazenados nos requisitos de compartilhamento, IOPS (E/S por segundo) e taxa de transferência. Para saber mais, confira Destinos de compartilhamento de arquivo do Azure.
    3. Selecione NFS como o protocolo.
    4. Selecione Nenhum squash raiz. Caso contrário, quando montar os compartilhamentos em suas VMs, você não poderá ver o grupo nem o proprietário do arquivo.

Os sistemas de arquivos SAP que não precisam ser montados via NFS também podem ser implantados no Armazenamento em Disco do Azure. Neste exemplo, você pode implantar /usr/sap/NW1/D02 e /usr/sap/NW1/D03 no Armazenamento em Disco do Azure.

Considerações importantes sobre o NFS em compartilhamentos dos Arquivos do Azure

Ao planejar a implantação com o NFS nos Arquivos do Azure, considere os seguintes pontos importantes:

  • O tamanho mínimo do compartilhamento é de 100 GiB (gibibytes). Você paga somente pela capacidade dos compartilhamentos provisionados.
  • Dimensione seus compartilhamentos NFS com base não somente nos requisitos de capacidade, mas também nos requisitos de IOPS e taxa de transferência. Para obter detalhes, confira Destinos de compartilhamento de arquivo do Azure.
  • Teste a carga de trabalho para validar o dimensionamento e garantir que ele atenda às suas metas de desempenho. Para saber como solucionar problemas de desempenho com o NFS nos Arquivos do Azure, confira Solucionar problemas de desempenho de compartilhamento de arquivo do Azure.
  • Para sistemas SAP J2EE, não há suporte para a colocação de /usr/sap/<SID>/J<nr> no NFS nos Arquivos do Azure.
  • Se o sistema SAP tiver uma carga pesada de trabalhos em lotes, você poderá ter milhões de logs de trabalho. Se logs de trabalho em lotes do SAP forem armazenados no sistema de arquivos, preste atenção especial ao dimensionamento do compartilhamento sapmnt. Começando no SAP_BASIS 7.52, o comportamento padrão para os logs de trabalho em lotes é de serem armazenados no banco de dados. Para obter detalhes, confira Log de trabalho no banco de dados.
  • Implante um compartilhamento sapmnt separado para cada sistema SAP.
  • Não use o compartilhamento sapmnt para nenhuma outra atividade, como interfaces.
  • Não use o compartilhamento saptrans para nenhuma outra atividade, como interfaces.
  • Evite consolidar os compartilhamentos de muitos sistemas SAP em uma só conta de armazenamento. Há também metas de escalabilidade e de desempenho para contas de armazenamento. Tenha cuidado para não exceder os limites da conta de armazenamento também.
  • De modo geral, não consolide os compartilhamentos de mais de cinco sistemas SAP em uma só conta de armazenamento. Essa diretriz ajuda a evitar exceder os limites da conta de armazenamento e simplifica a análise de desempenho.
  • Em geral, evite misturar compartilhamentos, sapmnt como de sistemas SAP de não produção e de produção na mesma conta de armazenamento.
  • É recomendável implantar no SLES 15 SP2 ou posterior para aproveitar os aprimoramentos do cliente NFS.
  • Use um ponto de extremidade privado. No caso improvável de uma falha na zona, suas sessões de NFS são redirecionadas automaticamente para uma zona íntegra. Você não precisa montar novamente os compartilhamentos NFS nas VMs.
  • Se você está implantando as suas VMs em zonas de disponibilidade, use uma conta de armazenamento com ZRS nas regiões do Azure com suporte para ZRS.
  • Atualmente, os Arquivos do Azure não dão suporte à replicação automática entre regiões para cenários de recuperação de desastre.

Implantar recursos do Azure NetApp Files

  1. Verifique se o serviço do Azure NetApp Files está disponível na sua região do Azure de escolha.

  2. Crie uma conta do NetApp na região do Azure selecionada. Siga estas instruções.

  3. Configure o pool de capacidade do Azure NetApp Files. Siga estas instruções.

    A arquitetura do SAP NetWeaver apresentada neste artigo usa apenas um pool de capacidade do Azure NetApp Files, o SKU Premium. Recomendamos o SKU Premium do Azure NetApp Files para cargas de trabalho do aplicativo SAP NetWeaver no Azure.

  4. Delegue uma sub-rede para o Azure NetApp Files, conforme descrito nestas instruções.

  5. Implante os volumes do Azure NetApp Files seguindo estas instruções. 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.

    Lembre-se de que os recursos do Azure NetApp Files e as VMs do Azure precisam estar na mesma rede virtual do Azure ou em redes virtuais do Azure emparelhadas. Este exemplo usa dois volumes de Azure NetApp Files: sapnw1 e trans. Os caminhos de arquivo montados nos pontos de montagem correspondentes são:

    • Volume sapnw1 (nfs://10.27.1.5/sapnw1/sapmntNW1)
    • Volume sapnw1 (nfs://10.27.1.5/sapnw1/usrsapNW1)
    • Volume trans (nfs://10.27.1.5/trans)

Os sistemas de arquivos SAP que não precisam ser compartilhados e podem ser implantados no Armazenamento em Disco do Azure. Por exemplo, /usr/sap/NW1/D02 e /usr/sap/NW1/D03 podem ser implantados como armazenamento em disco do Azure.

Considerações importantes sobre o NFS no Azure NetApp Files

Ao considerar o uso do Azure NetApp Files para a arquitetura de alta disponibilidade do SAP NetWeaver, esteja ciente das seguintes considerações importantes:

  • O pool de capacidade mínima é de 4 tebibytes (TiB). Você pode aumentar o tamanho do pool de capacidade em incrementos de 1 TiB.
  • O volume mínimo é de 100 GiB.
  • O Azure NetApp Files e todas as máquinas virtuais em que 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. Há suporte para o acesso do Azure NetApp Files por emparelhamento de rede virtual na mesma região. O acesso do Azure NetApp Files por emparelhamento global ainda não tem suporte.
  • A rede virtual selecionada precisa ter uma sub-rede delegada ao Azure NetApp Files.
  • A taxa de transferência e as características do desempenho de um volume do Azure NetApp Files é uma função da cota de volume e do nível de serviço, conforme documentado no Nível de serviço para o Azure NetApp Files. Ao dimensionar os volumes do Azure NetApp Files para SAP, verifique se a taxa de transferência resultante atende aos requisitos do aplicativo.
  • O Azure NetApp Files oferece uma política de exportação. Você pode controlar os clientes permitidos e o tipo de acesso (por exemplo, leitura/gravação ou somente leitura).
  • O Azure NetApp Files ainda não tem reconhecimento de zona. No momento, o Azure NetApp Files não está 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.
  • Volumes do Azure NetApp Files podem ser implantados 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).

Configurar o ASCS

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

Criar um cluster do Pacemaker

Siga as etapas em Configurar o Pacemaker no SUSE Linux Enterprise Server no Azure para criar um cluster do Pacemaker básico para o SAP ASCS.

Preparar para a instalação

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] Instale a versão mais recente do conector SUSE.

    sudo zypper install sap-suse-cluster-connector
    
  2. [A] Instale o agente de recursos sapstartsrv.

    sudo zypper install sapstartsrv-resource-agents
    
  3. [A] Atualize os agentes de recurso SAP.

    Para usar a configuração que este artigo descreve, você precisa de um patch para o pacote de agentes de recursos. Para verificar se o patch já está instalado, use o comando a seguir.

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

    A saída deve ser semelhante ao exemplo a seguir.

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

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

    Importante

    Você precisa instalar pelo menos sapstartsrv-resource-agents as versões 0.91 e resource-agents 4.x a partir de novembro de 2021.

  4. [A] Configure a resolução de nome do host.

    Use um servidor DNS ou modifique /etc/hosts em todos os nós. Este exemplo mostra como usar o arquivo /etc/hosts.

    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
     10.27.0.6    sap-cl1
     # IP address of cluster node 2
     10.27.0.7     sap-cl2
     # IP address of the load balancer's front-end configuration for SAP NetWeaver ASCS
     10.27.0.9   sapascs
     # IP address of the load balancer's front-end configuration for SAP NetWeaver ERS
     10.27.0.10    sapers
    
  5. [A] Configure o arquivo de permuta.

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

    Reinicie o agente para ativar a alteração.

    sudo service waagent restart
    

Prepare diretórios SAP se você estiver usando o NFS nos Arquivos do Azure

  1. [1] Crie os diretórios do SAP no compartilhamento NFS.

    Monte temporariamente o compartilhamento NFS sapnw1 em uma das VMs e crie os diretórios do SAP que serão usados como pontos de montagem aninhados.

    # Temporarily mount the volume.
    sudo mkdir -p /saptmp
    sudo mount -t nfs sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1 /saptmp -o noresvport,vers=4,minorversion=1,sec=sys
    # Create the SAP directories.
    sudo cd /saptmp
    sudo mkdir -p sapmntNW1
    sudo mkdir -p usrsapNW1
    # Unmount the volume and delete the temporary directory.
    cd ..
    sudo umount /saptmp
    sudo rmdir /saptmp
    
  2. [A] Crie os diretórios compartilhados.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/NW1
    sudo chattr +i /usr/sap/trans   
    
  3. [A] Monte os sistemas de arquivos.

    Com a configuração de montagem simples, o cluster do Pacemaker não controla os sistemas de arquivos.

    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1 nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab
    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1/usrsapNW1/ /usr/sap/NW1 nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab
    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab   
    # Mount the file systems.
    mount -a 
    

Prepare diretórios SAP se você estiver usando o NFS no Azure NetApp Files

As instruções nesta seção só serã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. [A] Desabilitar mapeamento de ID.

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

      sudo cat /etc/idmapd.conf
      # Examplepython-azure-mgmt-compute
      [General]
      Verbosity = 0
      Pipefs-Directory = /var/lib/nfs/rpc_pipefs
      Domain = defaultv4iddomain.com
      [Mapping]
      Nobody-User = nobody
      Nobody-Group = nobody
      
    2. Verificar nfs4_disable_idmapping. Ele deve ser definido como Y.

      Para criar a estrutura de diretório em que nfs4_disable_idmapping está localizado, execute o comando mount. Você não poderá criar o diretório manualmente em /sys/modules, pois o acesso é reservado para o kernel e os 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 10.27.1.5:/sapnw1 /mnt/tmp
      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
      
  2. [1] Monte temporariamente o volume do Azure NetApp Files em uma das VMs e crie os diretórios SAP (caminhos de arquivo).

    # Temporarily mount the volume.
    sudo mkdir -p /saptmp
    # If you're using NFSv3:
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=3,tcp 10.27.1.5:/sapnw1 /saptmp
    # If you're using NFSv4.1:
    sudo mount -t nfs -o rw,hard,rsize=65536,wsize=65536,nfsvers=4.1,sec=sys,tcp 10.27.1.5:/sapnw1 /saptmp
    # Create the SAP directories.
    sudo cd /saptmp
    sudo mkdir -p sapmntNW1
    sudo mkdir -p usrsapNW1
    # 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/NW1
    sudo mkdir -p /usr/sap/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/NW1
    sudo chattr +i /usr/sap/trans
    
  4. [A] Monte os sistemas de arquivos.

    Com a configuração de montagem simples, o cluster do Pacemaker não controla os sistemas de arquivos.

    # If you're using NFSv3:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=3,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/sapnw1/usrsapNW1 /usr/sap/NW1 nfs nfsvers=3,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=3,hard 0 0" >> /etc/fstab
    # If you're using NFSv4.1:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/sapnw1/usrsapNW1 /usr/sap/NW1 nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    # Mount the file systems.
    mount -a 
    

Instalar o ASCS e o ERS do SAP NetWeaver

  1. [1] Crie um recurso de IP virtual e uma investigação de integridade para a instância do ASCS.

    Importante

    Recomendamos o uso do agente de recurso azure-lb, que faz parte do pacote de agentes de recurso com uma versão mínima de resource-agents-4.3.0184.6ee15eb2-4.13.1.

    sudo crm node standby sap-cl2   
    sudo crm configure primitive vip_NW1_ASCS IPaddr2 \
      params ip=10.27.0.9 \
      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 nc_NW1_ASCS vip_NW1_ASCS \
      meta resource-stickiness=3000
    

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

    sudo crm_mon -r
    # Node sap-cl2: standby
    # Online: [ sap-cl1 ]
    #
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): Started sap-cl1
    # Resource Group: g-NW1_ASCS
    #  nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
    #  vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
    
  2. [1] Instale o ASCS do SAP NetWeaver como raiz no primeiro nó.

    Use um nome de host virtual que mapeia para o endereço IP da configuração de front-end do balanceador de carga para ASCS (por exemplo, sapascs, 10.27.0.9) e o número da instância que você usou para a investigação do balanceador de carga (por exemplo, 00).

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

    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/NW1/ASCS00, defina 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] Crie um recurso de IP virtual e uma investigação de integridade para a instância do ERS.

    sudo crm node online sap-cl2
    sudo crm node standby sap-cl1
    
    sudo crm configure primitive vip_NW1_ERS IPaddr2 \
      params ip=10.27.0.10 \
      op monitor interval=10 timeout=20
    
    sudo crm configure primitive nc_NW1_ERS azure-lb port=62101 \
      op monitor timeout=20s interval=10
    
    sudo crm configure group g-NW1_ERS nc_NW1_ERS vip_NW1_ERS
    

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

    sudo crm_mon -r
    
    # Node sap-cl1: standby
    # Online: [ sap-cl2 ]
    # 
    # Full list of resources:
    #
    # stonith-sbd     (stonith:external/sbd): Started sap-cl2
    #  Resource Group: g-NW1_ASCS
    #      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl2
    #  Resource Group: g-NW1_ERS
    #      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started sap-cl2
    #      vip_NW1_ERS  (ocf::heartbeat:IPaddr2):     Started sap-cl2
    
  4. [2] Instale o ERS do SAP NetWeaver como raiz no segundo nó.

    Use um nome do host virtual que mapeia para o endereço IP da configuração de front-end do balanceador de carga para ERS (por exemplo, sapers, 10.27.0.10) e o número da instância que você usou para a investigação do balanceador de carga (por exemplo, 01).

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

    <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin SAPINST_USE_HOSTNAME=virtual_hostname
    

    Observação

    Use SWPM SP 20 PL 05 ou posterior. As versões anteriores não definem as permissões corretamente e fazem com que a instalação falhe.

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

    chown nw1adm /usr/sap/NW1/ERS01
    chgrp sapsys /usr/sap/NW1/ERS01
    
  5. [1] Adapte o perfil da instância do ASCS.

    sudo vi /sapmnt/NW1/profile/NW1_ASCS00_sapascs
    
    # 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_CT_RUN)/saphascriptco.so
    service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
    
    # Add the keepalive parameter, if you're using ENSA1.
    enque/encni/set_so_keepalive = true
    

    Para o Enqueue Server 1 e 2 autônomo (ENSA1 e ENSA2), verifique se os parâmetros do sistema operacional keepalive estão definidos conforme descrito na Nota SAP 1410736.

    Agora adapte o perfil da instância do ERS.

    sudo vi /sapmnt/NW1/profile/NW1_ERS01_sapers
    
    # 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_CT_RUN)/saphascriptco.so
    service/halib_cluster_connector = /usr/bin/sap_suse_cluster_connector
    
    # Remove Autostart from the ERS profile.
    # Autostart = 1
    
  6. [A] Configure keepalive.

    A comunicação entre o servidor de aplicativos do SAP NetWeaver e o ASCS é 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 essa desconexão, você precisará definir um parâmetro no perfil do ASCS do SAP NetWeaver se estiver usando o ENSA1. Altere as configurações keepalive do sistema Linux em todos os servidores do SAP para ENSA1 e ENSA2. Para obter mais informações, leia a Nota SAP 1410736.

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

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

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

    cat /usr/sap/sapservices | grep ASCS00 | sudo ssh sap-cl2 "cat >>/usr/sap/sapservices"
    sudo ssh sap-cl2 "cat /usr/sap/sapservices" | grep ERS01 | sudo tee -a /usr/sap/sapservices
    
  9. [A] Habilite sapping e sappong. O agente sapping é executado antes de sapinit para ocultar o arquivo /usr/sap/sapservices. O agente sappong é executado depois de sapinit para remover o arquivo sapservices durante a inicialização da VM. SAPStartSrv não é iniciado automaticamente para uma instância SAP no momento da inicialização, pois ela é gerenciada pelo cluster do Pacemaker.

    sudo systemctl enable sapping
    sudo systemctl enable sappong
    
  10. [1] Crie os recursos de cluster do SAP.

    Dependendo do fato de estar 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 obter suporte para o ENSA2, confira a Nota SAP 2630416.

    sudo crm configure property maintenance-mode="true"
    
    sudo crm configure primitive rsc_sapstartsrv_NW1_ASCS00 ocf:suse:SAPStartSrv \
     params InstanceName=NW1_ASCS00_sapascs
    
    sudo crm configure primitive rsc_sapstartsrv_NW1_ERS01 ocf:suse:SAPStartSrv \
     params InstanceName=NW1_ERS01_sapers
    
    # If you're using NFS on Azure Files or NFSv3 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ASCS00 SAPInstance \
     op monitor interval=11 timeout=60 on-fail=restart \
     params InstanceName=NW1_ASCS00_sapascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_sapascs" \
     AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \
     meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    # If you're using NFS on Azure Files or NFSv3 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ERS01 SAPInstance \
     op monitor interval=11 timeout=60 on-fail=restart \
     params InstanceName=NW1_ERS01_sapers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS01_sapers" \
     AUTOMATIC_RECOVER=false IS_ERS=true MINIMAL_PROBE=true \
     meta priority=1000
    
    # If you're using NFSv4.1 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ASCS00 SAPInstance \
     op monitor interval=11 timeout=105 on-fail=restart \
     params InstanceName=NW1_ASCS00_sapascs START_PROFILE="/sapmnt/NW1/profile/NW1_ASCS00_sapascs" \
     AUTOMATIC_RECOVER=false MINIMAL_PROBE=true \
     meta resource-stickiness=5000 failure-timeout=60 migration-threshold=1 priority=10
    
    # If you're using NFSv4.1 on Azure NetApp Files:
    sudo crm configure primitive rsc_sap_NW1_ERS01 SAPInstance \
     op monitor interval=11 timeout=105 on-fail=restart \
     params InstanceName=NW1_ERS01_sapers START_PROFILE="/sapmnt/NW1/profile/NW1_ERS01_sapers" \
     AUTOMATIC_RECOVER=false IS_ERS=true MINIMAL_PROBE=true \
     meta priority=1000
    
    sudo crm configure modgroup g-NW1_ASCS add rsc_sapstartsrv_NW1_ASCS00
    sudo crm configure modgroup g-NW1_ASCS add rsc_sap_NW1_ASCS00
    sudo crm configure modgroup g-NW1_ERS add rsc_sapstartsrv_NW1_ERS01
    sudo crm configure modgroup g-NW1_ERS add rsc_sap_NW1_ERS01
    
    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_ERS01:stop symmetrical=false
    
    sudo crm_attribute --delete --name priority-fencing-delay
    
    sudo crm node online sap-cl1
    sudo crm configure property maintenance-mode="false"
    

Se você estiver atualizando de uma versão mais antiga e alternando para o ENSA2, confira a Nota SAP 2641019.

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

sudo crm_mon -r
# Full list of resources:
# 
# stonith-sbd     (stonith:external/sbd): Started sap-cl2
#  Resource Group: g-NW1_ASCS
#      nc_NW1_ASCS        (ocf::heartbeat:azure-lb):      Started sap-cl1
#      vip_NW1_ASCS       (ocf::heartbeat:IPaddr2):       Started sap-cl1
#      rsc_sapstartsrv_NW1_ASCS00 (ocf::suse:SAPStartSrv):        Started sap-cl1
#      rsc_sap_NW1_ASCS00 (ocf::heartbeat:SAPInstance):   Started sap-cl1
#  Resource Group: g-NW1_ERS
#      nc_NW1_ERS (ocf::heartbeat:azure-lb):      Started sap-cl2
#      vip_NW1_ERS        (ocf::heartbeat:IPaddr2):       Started sap-cl2
#      rsc_sapstartsrv_NW1_ERS01  (ocf::suse:SAPStartSrv):        Started sap-cl2
#      rsc_sap_NW1_ERS01  (ocf::heartbeat:SAPInstance):   Started sap-cl1

Preparar o servidor de aplicativos SAP

Alguns bancos de dados exigem que a instalação do banco de dados seja executada em um servidor de aplicativos. Prepare as VMs do servidor de aplicativos para poder executar a instalação do banco de dados.

As etapas comuns abaixo pressupõem que você tenha instalado o servidor de aplicativos em um servidor diferente dos servidores do ASCS e do HANA:

  1. Configure a resolução de nome do host.

    Use um servidor DNS ou modifique /etc/hosts em todos os nós. Este exemplo mostra como usar o arquivo /etc/hosts.

    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.

    10.27.0.6   sap-cl1
    10.27.0.7   sap-cl2
    # IP address of the load balancer's front-end configuration for SAP NetWeaver ASCS
    10.27.0.9   sapascs
    # IP address of the load balancer's front-end configuration for SAP NetWeaver ERS
    10.27.0.10  sapers
    10.27.0.8   sapa01
    10.27.0.12  sapa02
    
  2. Configure o arquivo de permuta.

    sudo vi /etc/waagent.conf
    
    # Set the ResourceDisk.EnableSwap property to y.
    # Create and use the SWAP file on the resource disk.
    ResourceDisk.EnableSwap=y
    
    # Set the size of the SWAP file by using the ResourceDisk.SwapSizeMB property.
    # The free space of the resource disk varies by virtual machine size. Don't set a value that's too big. You can check the SWAP space by using the swapon command.
    ResourceDisk.SwapSizeMB=2000
    

    Reinicie o agente para ativar a alteração.

    sudo service waagent restart
    

Preparar diretórios SAP

Se você estiver usando o NFS nos Arquivos do Azure, use as seguintes instruções para preparar os diretórios SAP nas VMs do servidor de aplicativos SAP:

  1. Crie os pontos de montagem.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
  2. Monte os sistemas de arquivos.

    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/sapnw1/sapmntNW1 /sapmnt/NW1  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab
    echo "sapnfsafs.file.core.windows.net:/sapnfsafs/saptrans /usr/sap/trans  nfs noresvport,vers=4,minorversion=1,sec=sys  0  0" >> /etc/fstab   
    # Mount the file systems.
    mount -a 
    

Se você estiver usando o NFS no Azure NetApp Files, use as seguintes instruções para preparar os diretórios SAP nas VMs do servidor de aplicativos SAP:

  1. Crie os pontos de montagem.

    sudo mkdir -p /sapmnt/NW1
    sudo mkdir -p /usr/sap/trans
    
    sudo chattr +i /sapmnt/NW1
    sudo chattr +i /usr/sap/trans
    
    
  2. Monte os sistemas de arquivos.

    # If you're using NFSv3:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=3,hard 0 0" >> /etc/fstab
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=3, hard 0 0" >> /etc/fstab
    # If you're using NFSv4.1:
    echo "10.27.1.5:/sapnw1/sapmntNW1 /sapmnt/NW1 nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab    
    echo "10.27.1.5:/saptrans /usr/sap/trans nfs nfsvers=4.1,sec=sys,hard 0 0" >> /etc/fstab
    # Mount the file systems.
    mount -a 
    

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 máquinas virtuais do Azure. Para obter uma lista de bancos de dados com suporte, confira a Nota SAP 1928533.

Instale a instância do banco de dados do SAP NetWeaver como raiz usando um nome do host virtual que mapeia para o endereço IP da configuração de front-end do balanceador de carga para o banco de dados. Você pode usar o parâmetro SAPINST_REMOTE_ACCESS_USER para permitir que um usuário não raiz se conecte a sapinst.

sudo <swpm>/sapinst SAPINST_REMOTE_ACCESS_USER=sapadmin

Instalar o servidor de aplicativos do SAP NetWeaver

Siga estas etapas para instalar um servidor de aplicativos do SAP:

  1. [A] Prepare o servidor de aplicativos.

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

  2. [A] Instale um servidor de aplicativos do SAP NetWeaver primário ou adicional.

    Você pode usar o parâmetro SAPINST_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. [A] Atualize o repositório seguro do SAP HANA para apontar para o nome virtual da configuração de replicação do sistema SAP HANA.

    Execute o comando a seguir para listar as entradas.

    hdbuserstore List
    

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

    DATA FILE       : /home/nw1adm/.hdb/sapa01/SSFS_HDB.DAT
    KEY FILE        : /home/nw1adm/.hdb/sapa01/SSFS_HDB.KEY
    
    KEY DEFAULT 
      ENV : 10.27.0.4:30313
      USER: SAPABAP1
      DATABASE: NW1
    

    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 nome do host virtual do balanceador de carga. Use a mesma porta e o mesmo nome do banco de dados. Por exemplo, 30313 e NW1 na saída de exemplo.

    su - nw1adm
    hdbuserstore SET DEFAULT nw1db:30313@NW1 SAPABAP1 <password of ABAP schema>
    

Teste a instalação do seu cluster

Teste completamente o cluster do Pacemaker. Execute os testes de failover típicos.

Próximas etapas