Expansão da alta disponibilidade do SAP HANA com o Azure NetApp Files no SUSE Linux Enterprise

Este artigo descreve como configurar a replicação do sistema do SAP HANA em uma implantação de expansão quando os sistemas de arquivos do HANA são montados por meio do NFS usando o Azure NetApp Files (ANF). Nos exemplos de configurações e comandos de instalação, são usadas a instância número 03 e a ID HN1 do sistema do HANA. A replicação do SAP HANA consiste de um nó primário e pelo menos um nó secundário.

Quando as etapas contidas nesse documento são marcadas com os prefixos a seguir, isso significa que:

  • [A] : A etapa se aplica a todos os nós.
  • [1]: A etapa se aplica apenas ao node1.
  • [2]: A etapa se aplica apenas ao node2.

Primeiro, leia os seguintes documentos e Notas SAP:

Observação

Este artigo contém referências a um termo que a Microsoft não usa mais. Quando o termo for removido do software, também o removeremos deste artigo.

Visão geral

Tradicionalmente, em um ambiente de expansão, todos os sistemas de arquivos para SAP HANA são montados a partir do armazenamento local. A configuração de HA da replicação do sistema do SAP HANA no SUSE Enterprise Linux está publicada em Configurar a replicação de sistema do SAP HANA no SLES.

Para obter a HA do SAP HANA de um sistema de expansão em compartilhamentos do NFS do Azure NetApp Files, precisamos de uma configuração de recursos extra no cluster. Essa configuração é necessária para que os recursos do HANA possam ser recuperados quando um nó perde o acesso aos compartilhamentos do NFS no Azure NetApp Files.

Diagrama que mostra a escala de HA do SAP HANA no Azure NetApp Files.

Os sistemas de arquivos do SAP HANA são montados em compartilhamentos do NFS usando o Azure NetApp Files em cada nó. Os sistemas de arquivos /hana/data, /hana/log e /hana/shared são exclusivos para cada nó.

Montado no node1 (hanadb1):

  • 10.3.1.4:/hanadb1-data-mnt00001 em /hana/data
  • 10.3.1.4:/hanadb1-log-mnt00001 em /hana/log
  • 10.3.1.4:/hanadb1-shared-mnt00001 em /hana/shared

Montado no node2 (hanadb2):

  • 10.3.1.4:/hanadb2-data-mnt00001 em /hana/data
  • 10.3.1.4:/hanadb2-log-mnt00001 em /hana/log
  • 10.3.1.4:/hanadb2-shared-mnt0001 em /hana/shared

Observação

Os sistemas de arquivos /hana/shared, /hana/data e /hana/log não são compartilhados entre os dois nós. Cada nó de cluster tem seus próprios sistemas de arquivos separados.

A configuração da replicação do sistema do SAP HA HANA usa um nome do host virtual dedicado e endereços IP virtuais. No Azure, um balanceador de carga é necessário para usar um endereço IP virtual. A configuração apresentada mostra um balanceador de carga com:

  • Endereço IP de configuração do front-end: 10.3.0.50 para hn1-db
  • Porta de investigação: 62503

Configurar a infraestrutura do Azure NetApp Files

Antes de continuar com a configuração da infraestrutura do Azure NetApp Files, familiarize-se com a documentação do Azure NetApp Files.

O Azure NetApp Files está disponível em várias regiões do Azure. Verifique se a região do Azure selecionada oferece o Azure NetApp Files.

Para obter informações sobre a disponibilidade do Azure NetApp Files por região do Azure, confira Disponibilidade do Azure NetApp Files por região do Azure.

Considerações importantes

Ao criar seu Azure NetApp Files para sistemas de expansão do SAP HANA, esteja ciente das considerações importantes documentadas em Volumes do NFS v4.1 no Azure NetApp Files para SAP HANA.

Dimensionamento do banco de dados do HANA no Azure NetApp Files

A taxa de transferência de um volume do Azure NetApp Files é uma função do tamanho de volume e do nível de serviço, conforme documentado no Nível de serviço para Azure NetApp Files.

Quando você projeta a infraestrutura para o SAP HANA no Azure com o Azure NetApp Files, esteja ciente das recomendações em Volumes do NFS v4.1 no Azure NetApp Files para SAP HANA.

A configuração incluída neste artigo é apresentada com volumes simples do Azure NetApp Files.

Importante

Para sistemas de produção, sempre que o desempenho for fundamental recomendamos avaliar e pensar em usar o grupo de volumes de aplicativos do Azure NetApp Files para SAP HANA.

Todos os comandos para montar o/hana/shared neste artigo são apresentados para volumes do NFSv4.1/hana/shared. Se você implantou os volumes do /hana/shared como volumes NFSv3, não se esqueça de ajustar os comandos de montagem do /hana/shared para NFSv3.

Implantar recursos do Azure NetApp Files

As instruções a seguir pressupõem que você já tenha implantado a Rede Virtual do Azure. Os recursos do Azure NetApp Files e as VMs nas quais os recursos do Azure NetApp Files são montados precisam ser implantados na mesma rede virtual do Azure ou em redes virtuais do Azure emparelhadas.

  1. Crie uma conta do NetApp na região do Azure selecionada, seguindo as instruções em Criar uma conta do NetApp.

  2. Configure um pool de capacidade do Azure NetApp Files seguindo as instruções em Configurar um pool de capacidade do Azure NetApp Files.

    A arquitetura do HANA apresentada neste artigo usa um único pool de capacidade do Azure NetApp Files no nível de serviço Ultra. Para cargas de trabalho do HANA no Azure, recomendamos usar um nível de serviço Ultra ou Premium do Azure NetApp Files.

  3. Delegue uma sub-rede para o Azure NetApp Files, conforme descrito nas instruções em Delegar uma sub-rede ao Azure NetApp Files.

  4. Implante volumes do Azure NetApp Files seguindo as instruções em Criar um volume NFS para o Azure NetApp Files.

    Ao implantar os volumes, certifique-se de selecionar a versão NFSv4.1. Implante os volumes na sub-rede designada do Azure NetApp Files. Os endereços IP dos volumes do Azure NetApp Files são atribuídos automaticamente.

    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 com peering. Por exemplo, os nomes de volume são hanadb1-data-mnt00001, hanadb1-log-mnt00001 e assim por diante, e os caminhos de arquivo para os volumes do Azure NetApp Files são nfs://10.3.1.4/hanadb1-data-mnt00001, nfs://10.3.1.4/hanadb1-log-mnt00001 e assim por diante.

    No hanadb1:

    • Volume hanadb1-data-mnt00001 (nfs://10.3.1.4:/hanadb1-data-mnt00001)
    • Volume hanadb1-log-mnt00001 (nfs://10.3.1.4:/hanadb1-log-mnt00001)
    • Volume hanadb1-shared-mnt00001 (nfs://10.3.1.4:/hanadb1-shared-mnt00001)

    No hanadb2:

    • Volume hanadb2-data-mnt00001 (nfs://10.3.1.4:/hanadb2-data-mnt00001)
    • Volume hanadb2-log-mnt00001 (nfs://10.3.1.4:/hanadb2-log-mnt00001)
    • Volume hanadb2-shared-mnt00001 (nfs://10.3.1.4:/hanadb2-shared-mnt00001)

Preparar a infraestrutura

O agente de recursos para HANA SAP está incluído no SUSE Linux Enterprise Server for SAP Applications. Uma imagem do SUSE Linux Enterprise Server para aplicativos 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

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

Implantar VMs para o SAP HANA. Escolha uma imagem do SLES adequada que tenha suporte para o sistema HANA. Você pode implantar uma VM em qualquer uma das opções de disponibilidade: conjunto de dimensionamento de máquinas virtuais, zona de disponibilidade ou conjunto de disponibilidade.

Importante

Certifique-se de que o sistema operacional selecionado conte com a certificação SAP para o SAP HANA para os tipos de VM específicas que você planeja usar em sua implantação. Você pode pesquisar tipos de VM certificadas pelo SAP HANA e suas versões do sistema operacional nas Plataformas de IaaS Certificadas do SAP HANA. Certifique-se de clicar nos detalhes do tipo de VM para obter a lista completa de versões do sistema operacional com suporte do SAP HANA para o tipo de VM específico.

Configurar o Azure Load Balancer

Durante a configuração de VMs, você tem a opção de criar ou selecionar o balanceador de carga existente na seção de rede. Siga as próximas etapas para configurar um balanceador de carga padrão para a configuração de HA do banco de dados do HANA.

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

  1. Configuração de IP front-end: Crie um IP front-end. Selecione a mesma rede virtual e nome de sub-rede das máquinas virtuais de banco de dados.
  2. Pool de back-end: Crie um pool de back-end e adicione VMs de banco de dados.
  3. Regras de entrada: Crie uma regra de balanceamento de carga. Siga as mesmas etapas para ambas as regras de balanceamento de carga.
    • Endereço IP de front-end: Selecione um IP de front-end.
    • Pool de back-end: selecione um pool de back-end.
    • Portas de alta disponibilidade: selecione essa opção.
    • Protocolo: selecione TCP.
    • Sonda de integridade: crie uma sonda de integridade com os seguintes detalhes:
      • Protocolo: selecione TCP.
      • Porta: Por exemplo, 625<instância-não.>.
      • Intervalo: Inserir 5.
      • Limite de investigação: insira 2.
    • Tempo limite de inatividade (minutos): Inserir 30.
    • Habilitar IP Flutuante: Selecione essa opção.

Observação

A propriedade de configuração da investigação de integridade numberOfProbes, também conhecida como Limite não íntegro no portal, não é respeitada. Para controlar o número de análises consecutivas bem-sucedidas ou com falha, configure a propriedade probeThreshold para 2. Atualmente não é possível definir essa propriedade utilizando o portal do Azure, por isso utilize o CLI do Azure ou o comando PowerShell.

Para obter mais informações sobre as portas necessárias para o SAP HANA, leia o capítulo Conexões aos bancos de dados de locatário no guia Bancos de dados de locatário do SAP HANA ou Nota SAP 2388694.

Quando as VMs sem endereços IP públicos forem colocadas no pool de back-end do Standard Load Balancer do Azure interno (sem endereço IP público), não haverá nenhuma conectividade de saída para a internet se não houver uma configuração adicional para permitir o roteamento para pontos de extremidade públicos. Para obter mais informações sobre como obter conectividade de saída, confira Conectividade de ponto de extremidade público para VMs usando o 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 faz as investigações de integridade falharem. Defina o parâmetro net.ipv4.tcp_timestampscomo 0. Para saber mais, confira Investigações de integridade do Load Balancer e Nota do SAP 2382421.
  • Para evitar que o saptune altere o valor net.ipv4.tcp_timestamps definido manualmente voltando de 0 para 1, atualize a versão do saptune para 3.1.1 ou superior. Para obter mais informações, confira Saptune 3.1.1: preciso atualizar?.

Montar o volume de Azure NetApp Files

  1. [A] Crie pontos de montagem para os volumes de banco de dados do HANA.

    sudo mkdir -p /hana/data/HN1/mnt00001
    sudo mkdir -p /hana/log/HN1/mnt00001
    sudo mkdir -p /hana/shared/HN1
    
  2. [A] Verifique a configuração do domínio NFS. Certifique-se de que o domínio esteja configurado como o domínio padrão do Azure NetApp Files, ou seja, defaultv4iddomain.com e de que o mapeamento esteja definido como nobody.

    sudo cat /etc/idmapd.conf
    

    Exemplo de saída:

    [General]
    Domain = defaultv4iddomain.com
    [Mapping]
    Nobody-User = nobody
    Nobody-Group = nobody
    

    Importante

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

  3. [A] Edite /etc/fstab em ambos os nós para montar os volumes relevantes para cada nó permanentemente. O exemplo a seguir mostra como montar os volumes permanentemente.

    sudo vi /etc/fstab
    

    Adicione as entradas a seguir em /etc/fstab em ambos os nós.

    Exemplo para o hanadb1:

    10.3.1.4:/hanadb1-data-mnt00001 /hana/data/HN1/mnt00001  nfs   rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys  0  0
    10.3.1.4:/hanadb1-log-mnt00001 /hana/log/HN1/mnt00001  nfs   rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys  0  0
    10.3.1.4:/hanadb1-shared-mnt00001 /hana/shared/HN1  nfs   rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys  0  0
    

    Exemplo para o hanadb2:

    10.3.1.4:/hanadb2-data-mnt00001 /hana/data/HN1/mnt00001  nfs   rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys  0  0
    10.3.1.4:/hanadb2-log-mnt00001 /hana/log/HN1/mnt00001  nfs   rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys  0  0
    10.3.1.4:/hanadb2-shared-mnt00001 /hana/shared/HN1  nfs   rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys  0  0
    

    Monte todos os volumes.

    sudo mount -a
    

    Para cargas de trabalho que requerem taxa de transferência mais alta, pense em usar a opção de montagem nconnect, conforme descrita em Volumes do NFS v4.1 no Azure NetApp Files para SAP HANA. Verifique se nconnect é compatível com o Azure NetApp Files em sua versão do Linux.

  4. [A] Verifique se todos os volumes do HANA estão montados com o protocolo NFS versão NFSv4.

    sudo nfsstat -m
    

    Verifique se o sinalizador vers está configurado como 4.1.

    Exemplo do hanadb1:

    /hana/log/HN1/mnt00001 from 10.3.1.4:/hanadb1-log-mnt00001
    Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.3.0.4,local_lock=none,addr=10.3.1.4
    /hana/data/HN1/mnt00001 from 10.3.1.4:/hanadb1-data-mnt00001
    Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.3.0.4,local_lock=none,addr=10.3.1.4
    /hana/shared/HN1 from 10.3.1.4:/hanadb1-shared-mnt00001
    Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.3.0.4,local_lock=none,addr=10.3.1.4
    
  5. [A] Verifique nfs4_disable_idmapping. Ele deve ser definido como Y. Para criar a estrutura de diretório na qual o nfs4_disable_idmapping está localizado, execute o comando de montagem. Você não conseguirá criar o diretório manualmente em /sys/modules porque o acesso é reservado para o kernel/drivers.

    #Check nfs4_disable_idmapping
    sudo cat /sys/module/nfs/parameters/nfs4_disable_idmapping
    
    #If you need to set nfs4_disable_idmapping to Y
    sudo echo "Y" > /sys/module/nfs/parameters/nfs4_disable_idmapping
    
    #Make the configuration permanent
    sudo echo "options nfs nfs4_disable_idmapping=Y" >> /etc/modprobe.d/nfs.conf
    

Instalação do SAP HANA

  1. [A] Configure a resolução do nome do host para todos os hosts.

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

    sudo vi /etc/hosts
    

    Insira as linhas a seguir no arquivo /etc/hosts. Altere o endereço IP e o nome do host para corresponder ao seu ambiente.

    10.3.0.4   hanadb1
    10.3.0.5   hanadb2
    
  2. [A] Prepare o sistema operacional para executar o SAP HANA no Azure NetApp com NFS, conforme descrito na Nota do SAP 3024346 — Configurações do kernel do Linux para o NetApp NFS. Crie o arquivo de configuração /etc/sysctl.d/91-NetApp-HANA.conf para definir as configurações do NetApp.

    sudo vi /etc/sysctl.d/91-NetApp-HANA.conf
    

    Adicione as seguintes entradas no arquivo de configuração:

    net.core.rmem_max = 16777216
    net.core.wmem_max = 16777216
    net.ipv4.tcp_rmem = 4096 131072 16777216
    net.ipv4.tcp_wmem = 4096 16384 16777216
    net.core.netdev_max_backlog = 300000
    net.ipv4.tcp_slow_start_after_idle=0
    net.ipv4.tcp_no_metrics_save = 1
    net.ipv4.tcp_moderate_rcvbuf = 1
    net.ipv4.tcp_window_scaling = 1
    net.ipv4.tcp_sack = 1
    
  3. [A] Crie o arquivo de configuração /etc/sysctl.d/ms-az.conf com mais configurações de otimização.

    sudo vi /etc/sysctl.d/ms-az.conf
    

    Adicione as seguintes entradas no arquivo de configuração:

    net.ipv6.conf.all.disable_ipv6 = 1
    net.ipv4.tcp_max_syn_backlog = 16348
    net.ipv4.conf.all.rp_filter = 0
    sunrpc.tcp_slot_table_entries = 128
    vm.swappiness=10
    

    Dica

    Evite configurar net.ipv4.ip_local_port_range e net.ipv4.ip_local_reserved_ports explicitamente nos arquivos de configuração sysctl para permitir que o Agente de Host do SAP gerencie os intervalos de portas. Para saber mais, confira a Nota do SAP 2382421.

  4. [A] Ajuste as configurações de sunrpc, conforme recomendado na Nota do SAP 3024346 — Configurações do Kernel do Linux para o NetApp NFS.

    sudo vi /etc/modprobe.d/sunrpc.conf
    

    Insira a seguinte linha:

    options sunrpc tcp_max_slot_table_entries=128
    
  5. [A] Configurar o SLES para HANA.

    Configure o SLES conforme descrito nas seguintes Notas do SAP com base na sua versão do SLES:

  6. [A] Instale o SAP HANA.

    A partir do HANA 2.0 SPS 01, os Contêineres de Banco de Dados Multilocatário (MDC) são a opção padrão. Quando você instala o sistema HANA, um SYSTEMDB e um locatário com o mesmo SID são criados ao mesmo tempo. Em alguns casos, você não deseja o locatário padrão. Se não quiser criar o locatário inicial junto com a instalação, siga as instruções na Nota do SAP 2629711.

    1. Inicie o programa hdblcm a partir do diretório do software de instalação do HANA.

      ./hdblcm
      
    2. No prompt, insira os valores a seguir:

      • Para Escolher a instalação: insira 1 (para instalar).
      • Para Selecionar componentes adicionais para a instalação: insira 1.
      • Para Inserir o caminho de instalação [/hana/shared]: pressione Enter para aceitar o padrão.
      • Para Inserir o nome do host local [..]: pressione Enter para aceitar o padrão.
      • Em Deseja adicionar outros hosts ao sistema? (s/n) [n]: Selecione n.
      • Para Inserir a ID do sistema SAP HANA: insira HN1.
      • Para Inserir o número da instância [00]: insira 03.
      • Para Selecionar o modo de banco de dados/inserir o índice [1]: pressione Enter para aceitar o padrão.
      • Para Selecionar Uso do Sistema/Inserir Índice [4]: insira 4 (para personalizado).
      • Para Inserir o local dos Volumes de Dados [/hana/data]: pressione Enter para aceitar o padrão.
      • Para Inserir o local dos Volumes de Log [/hana/log]: pressione Enter para aceitar o padrão.
      • Para Restringir a alocação máxima de memória? [n]: pressione Enter para aceitar o padrão.
      • Para Inserir o nome do host do certificado para o host "..." [...]: pressione Enter para aceitar o padrão.
      • Para Inserir a senha de usuário do agente do host do SAP (sapadm): insira a senha de usuário do agente do host.
      • Para Confirmar a senha de usuário do agente do host do SAP (sapadm): insira a senha de usuário do agente do host novamente para confirmar.
      • Para Inserir a senha do administrador do sistema (hn1adm): insira a senha do administrador do sistema.
      • Para Confirmar a senha do administrador do sistema (hn1adm): insira a senha do administrador do sistema novamente para confirmar.
      • Para Inserir o diretório base do administrador do sistema [/usr/sap/HN1/home]: pressione Enter para aceitar o padrão.
      • Para Inserir o shell de login do administrador do sistema [/bin/sh]: pressione Enter para aceitar o padrão.
      • Para Inserir a ID de usuário do administrador do sistema [1001]: pressione Enter para aceitar o padrão.
      • Para Inserir a ID do grupo de usuários (sapsys) [79]: pressione ENTER para aceitar o padrão.
      • Para Inserir a senha de usuário do banco de dados (SYSTEM): insira a senha do usuário do banco de dados.
      • Para Confirmar a senha do usuário do banco de dados (SYSTEM): insira a senha do usuário do banco de dados novamente para confirmar.
      • Para Reiniciar o sistema após a reinicialização do computador? [n]: pressione Enter para aceitar o padrão.
      • Para Quer prosseguir? (s/n): valide o resumo. Insira y para continuar.
  7. [A] Atualize o Agente de Host do SAP.

    Baixe o último arquivo do Agente de Host do SAP no Centro de Software do SAP e execute o comando a seguir para atualizar o agente. Substitua o caminho do arquivo para apontar para o arquivo que você baixou.

    sudo /usr/sap/hostctrl/exe/saphostexec -upgrade -archive <path to SAP Host Agent SAR>
    

Configurar a replicação do sistema do SAP HANA

Siga as etapas em Replicação do sistema SAP HANA para configurar a replicação do sistema SAP HANA.

Configuração do cluster

Essa seção descreve as etapas necessárias exigidas para que o cluster opere de forma integrada quando o SAP HANA é instalado em compartilhamentos do NFS usando o Azure NetApp Files.

Criar um cluster do Pacemaker

Siga as etapas em Como configurar o Pacemaker no SUSE Enterprise Linux no Azure para criar um cluster básico do Pacemaker para o servidor HANA em questão.

Implementar os ganchos do HANA SAPHanaSR e susChkSrv

Essa importante etapa otimiza a integração com o cluster e aprimora a detecção quando um failover de cluster é necessário. Recomendamos fortemente que você configure tanto os ganchos SAPHanaSR quanto os susChkSrv do Python. Siga as etapas em Implementar os ganchos de replicação do sistema Python SAPHanaSR/SAPHanaSR-angi e susChkSrv.

Configurar os recursos de cluster do SAP HANA

Essa seção descreve as etapas necessárias exigidas para configurar os recursos de cluster do SAP HANA.

Crie os recursos de cluster do SAP HANA

Siga as etapas em Como criar recursos de cluster do SAP HANA para criar os recursos de cluster para o servidor do HANA. Após os recursos terem sido criados, você deverá ver o status do cluster com o comando abaixo:

sudo crm_mon -r

Exemplo de saída:

# Online: [ hn1-db-0 hn1-db-1 ]
# Full list of resources:
# stonith-sbd     (stonith:external/sbd): Started hn1-db-0
# Clone Set: cln_SAPHanaTopology_HN1_HDB03 [rsc_SAPHanaTopology_HN1_HDB03]
#     Started: [ hn1-db-0 hn1-db-1 ]
# Master/Slave Set: msl_SAPHana_HN1_HDB03 [rsc_SAPHana_HN1_HDB03]
#     Masters: [ hn1-db-0 ]
#     Slaves: [ hn1-db-1 ]
# Resource Group: g_ip_HN1_HDB03
#     rsc_ip_HN1_HDB03   (ocf::heartbeat:IPaddr2):       Started hn1-db-0
#     rsc_nc_HN1_HDB03   (ocf::heartbeat:azure-lb):      Started hn1-db-0

Criar os recursos do sistema de arquivos

O sistema de arquivos /hana/shared/SID é necessário para a operação do HANA e também para ações de monitoramento do Pacemaker que determinam o estado do HANA. Implemente agentes de recursos para monitorar e agir em caso de falhas. A seção contém duas opções, uma para SAPHanaSR e outra para SAPHanaSR-angi.

Crie um recurso fictício de cluster do sistema de arquivos. O recurso irá monitorar e relatar falhas se houver algum problema para acessar o sistema de arquivos montado no NFS /hana/shared. Isso permite que o cluster acione o failover se houver um problema para acessar /hana/shared. Para obter mais detalhes, confira Falha no tratamento do compartilhamento de NFS no cluster de alta disponibilidade do SUSE para replicação do sistema HANA

  1. [A] Crie a estrutura de diretórios em ambos os nós.

    sudo mkdir -p /hana/shared/HN1/check
    sudo mkdir -p /hana/shared/check
    
  2. [1] Configure o cluster para adicionar a estrutura de diretório para monitoramento.

    sudo crm configure primitive rsc_fs_check_HN1_HDB03 Filesystem params \
        device="/hana/shared/HN1/check/" \
        directory="/hana/shared/check/" fstype=nfs  \
        options="bind,defaults,rw,hard,rsize=262144,wsize=262144,proto=tcp,noatime,_netdev,nfsvers=4.1,lock,sec=sys" \
        op monitor interval=120 timeout=120 on-fail=fence \
        op_params OCF_CHECK_LEVEL=20 \
        op start interval=0 timeout=120 \
        op stop interval=0 timeout=120
    
  3. [1] Clone e verifique o volume recentemente configurado no cluster.

    sudo crm configure clone cln_fs_check_HN1_HDB03 rsc_fs_check_HN1_HDB03 meta clone-node-max=1 interleave=true
    

    Exemplo de saída:

    sudo crm status
    
    # Cluster Summary:
    # Stack: corosync
    # Current DC: hanadb1 (version 2.0.5+20201202.ba59be712-4.9.1-2.0.5+20201202.ba59be712) - partition with quorum
    # Last updated: Tue Nov  2 17:57:39 2021
    # Last change:  Tue Nov  2 17:57:38 2021 by root via crm_attribute on hanadb1
    # 2 nodes configured
    # 11 resource instances configured
    
    # Node List:
    # Online: [ hanadb1 hanadb2 ]
    
    # Full List of Resources:
    # Clone Set: cln_azure-events [rsc_azure-events]:
    #  Started: [ hanadb1 hanadb2 ]
    # Clone Set: cln_SAPHanaTopology_HN1_HDB03 [rsc_SAPHanaTopology_HN1_HDB03]:
    #  rsc_SAPHanaTopology_HN1_HDB03     (ocf::suse:SAPHanaTopology):     Started hanadb1 (Monitoring)
    #  rsc_SAPHanaTopology_HN1_HDB03     (ocf::suse:SAPHanaTopology):     Started hanadb2 (Monitoring)
    # Clone Set: msl_SAPHana_HN1_HDB03 [rsc_SAPHana_HN1_HDB03] (promotable):
    #  rsc_SAPHana_HN1_HDB03     (ocf::suse:SAPHana):     Master hanadb1 (Monitoring)
    #  Slaves: [ hanadb2 ]
    # Resource Group: g_ip_HN1_HDB03:
    #  rsc_ip_HN1_HDB03  (ocf::heartbeat:IPaddr2):        Started hanadb1
    #  rsc_nc_HN1_HDB03  (ocf::heartbeat:azure-lb):       Started hanadb1
    # rsc_st_azure        (stonith:fence_azure_arm):       Started hanadb2
    # Clone Set: cln_fs_check_HN1_HDB03 [rsc_fs_check_HN1_HDB03]:
    #  Started: [ hanadb1 hanadb2 ]
    

    O atributo OCF_CHECK_LEVEL=20 é adicionado à operação de monitoramento para que as operações de monitoramento executem um teste de leitura/gravação no sistema de arquivos. Sem esse atributo, a operação de monitoramento só verifica se o sistema de arquivos está montado. Isso pode ser um problema pois, quando a conectividade é perdida, o sistema de arquivos pode permanecer montado, apesar de estar inacessível.

    O atributo on-fail=fence também é adicionado à operação de monitoramento. Com essa opção, se a operação de monitoramento falhar em um nó, esse nó será imediatamente isolado.

Importante

Os tempos-limite na configuração acima podem precisar ser adaptados para o HANA específico configurado para evitar ações de isolamento desnecessárias. Não defina valores de tempo-limite muito baixos. Lembre-se de que o monitor do sistema de arquivos não é relacionado à replicação do sistema HANA. Para obter mais informações, confira a Documentação do SUSE.

Testar a configuração do cluster

Esta seção descreve como é possível testar a configuração.

  1. Antes de começar um teste, certifique-se de que o Pacemaker não tem nenhuma ação com falha (por meio do status do crm) e nenhuma restrição de local inesperada (por exemplo, restos de um teste de migração). Além disso, certifique-se de que a replicação do sistema HANA esteja em estado de sincronização, por exemplo, com systemReplicationStatus.

    sudo su - hn1adm -c "python /usr/sap/HN1/HDB03/exe/python_support/systemReplicationStatus.py"
    
  2. Verifique o status dos recursos do HANA usando esse comando:

    SAPHanaSR-showAttr
    
    # You should see something like below
    # hanadb1:~ SAPHanaSR-showAttr
    # Global cib-time                 maintenance
    # --------------------------------------------
    # global Mon Nov  8 22:50:30 2021 false
    # Sites srHook
    # -------------
    # SITE1 PRIM
    # SITE2 SOK
    # Site2 SOK
    # Hosts   clone_state lpa_hn1_lpt node_state op_mode   remoteHost roles                            score site  srmode sync_state version                vhost
    # --------------------------------------------------------------------------------------------------------------------------------------------------------------
    # hanadb1 PROMOTED    1636411810  online     logreplay hanadb2    4:P:master1:master:worker:master 150   SITE1 sync   PRIM       2.00.058.00.1634122452 hanadb1
    # hanadb2 DEMOTED     30          online     logreplay hanadb1    4:S:master1:master:worker:master 100   SITE2 sync   SOK        2.00.058.00.1634122452 hanadb2
    
  3. Verifique a configuração do cluster para um cenário de falha quando um nó é desligado. O exemplo a seguir mostra como desligar o nó 1:

    sudo crm status
    sudo crm resource move msl_SAPHana_HN1_HDB03 hanadb2 force
    sudo crm resource cleanup
    

    Exemplo de saída:

    sudo crm status
    
    #Cluster Summary:
    # Stack: corosync
    # Current DC: hanadb2 (version 2.0.5+20201202.ba59be712-4.9.1-2.0.5+20201202.ba59be712) - partition with quorum
    # Last updated: Mon Nov  8 23:25:36 2021
    # Last change:  Mon Nov  8 23:25:19 2021 by root via crm_attribute on hanadb2
    # 2 nodes configured
    # 11 resource instances configured
    
    # Node List:
    # Online: [ hanadb1 hanadb2 ]
    # Full List of Resources:
    # Clone Set: cln_azure-events [rsc_azure-events]:
    #  Started: [ hanadb1 hanadb2 ]
    # Clone Set: cln_SAPHanaTopology_HN1_HDB03 [rsc_SAPHanaTopology_HN1_HDB03]:
    #  Started: [ hanadb1 hanadb2 ]
    # Clone Set: msl_SAPHana_HN1_HDB03 [rsc_SAPHana_HN1_HDB03] (promotable):
    #  Masters: [ hanadb2 ]
    #  Stopped: [ hanadb1 ]
    # Resource Group: g_ip_HN1_HDB03:
    #  rsc_ip_HN1_HDB03  (ocf::heartbeat:IPaddr2):        Started hanadb2
    #  rsc_nc_HN1_HDB03  (ocf::heartbeat:azure-lb):       Started hanadb2
    # rsc_st_azure        (stonith:fence_azure_arm):       Started hanadb2
    # Clone Set: cln_fs_check_HN1_HDB03 [rsc_fs_check_HN1_HDB03]:
    #  Started: [ hanadb1 hanadb2 ]
    

    Pare o HANA no Node1:

    sudo su - hn1adm
    sapcontrol -nr 03 -function StopWait 600 10
    

    Registre o nó 1 como o nó secundário e verifique o status:

    hdbnsutil -sr_register --remoteHost=hanadb2 --remoteInstance=03 --replicationMode=sync --name=SITE1 --operationMode=logreplay
    

    Exemplo de saída:

    #adding site ...
    #nameserver hanadb1:30301 not responding.
    #collecting information ...
    #updating local ini files ...
    #done.
    
    sudo crm status
    
    sudo SAPHanaSR-showAttr
    
  4. Verifique a configuração do cluster para um cenário de falha quando um nó perde o acesso ao compartilhamento do NFS (/hana/shared).

    Os agentes de recurso do SAP HANA dependem dos binários armazenados em /hana/shared para executar operações durante o failover. O sistema de arquivos /hana/shared é montado por meio do NFS no cenário apresentado.

    É difícil simular uma falha, em que um dos servidores perde o acesso ao compartilhamento NFS. À guisa de teste, você pode remontar o sistema de arquivos como somente leitura. Essa abordagem valida que o cluster será capaz de realizar o failover se o acesso ao /hana/shared for perdido no nó ativo.

    Resultado esperado: ao tornar o /hana/shared um sistema de arquivos somente leitura, o atributo OCF_CHECK_LEVEL do recurso hana_shared1, que executa operações de leitura/gravação no sistema de arquivos, irá falhar. Irá falhar porque não pode gravar nada no sistema de arquivos e executa um failover de recurso do HANA. O mesmo resultado é esperado quando o nó do HANA perde o acesso aos compartilhamentos NFS.

    Estado do recurso antes de iniciar o teste:

    sudo crm  status
    
    #Cluster Summary:
     # Stack: corosync
     # Current DC: hanadb2 (version 2.0.5+20201202.ba59be712-4.9.1-2.0.5+20201202.ba59be712) - partition with quorum
     # Last updated: Mon Nov  8 23:01:27 2021
     # Last change:  Mon Nov  8 23:00:46 2021 by root via crm_attribute on hanadb1
     # 2 nodes configured
     # 11 resource instances configured
    
     #Node List:
     # Online: [ hanadb1 hanadb2 ]
    
     #Full List of Resources:
     # Clone Set: cln_azure-events [rsc_azure-events]:
       # Started: [ hanadb1 hanadb2 ]
     # Clone Set: cln_SAPHanaTopology_HN1_HDB03 [rsc_SAPHanaTopology_HN1_HDB03]:
       # Started: [ hanadb1 hanadb2 ]
     # Clone Set: msl_SAPHana_HN1_HDB03 [rsc_SAPHana_HN1_HDB03] (promotable):
       # Masters: [ hanadb1 ]
       # Slaves: [ hanadb2 ]
     # Resource Group: g_ip_HN1_HDB03:
       # rsc_ip_HN1_HDB03  (ocf::heartbeat:IPaddr2):        Started hanadb1
       # rsc_nc_HN1_HDB03  (ocf::heartbeat:azure-lb):       Started hanadb1
     # rsc_st_azure        (stonith:fence_azure_arm):       Started hanadb2
     # Clone Set: cln_fs_check_HN1_HDB03 [rsc_fs_check_HN1_HDB03]:
       # Started: [ hanadb1 hanadb2 ]
    

    Você pode colocar o /hana/shared no modo somente leitura no nó do cluster ativo usando esse comando:

    sudo mount -o ro 10.3.1.4:/hanadb1-shared-mnt00001 /hana/sharedb
    

    O servidor hanadb1 é reinicializado ou desligado com base no conjunto de ações. Após o servidor hanadb1 se tornar inativo, o recurso do HANA será movido para hanadb2. Você pode verificar o status do cluster no hanadb2.

    sudo crm status
    
    #Cluster Summary:
     # Stack: corosync
     # Current DC: hanadb2 (version 2.0.5+20201202.ba59be712-4.9.1-2.0.5+20201202.ba59be712) - partition with quorum
     # Last updated: Wed Nov 10 22:00:27 2021
     # Last change:  Wed Nov 10 21:59:47 2021 by root via crm_attribute on hanadb2
     # 2 nodes configured
     # 11 resource instances configured
    
     #Node List:
     # Online: [ hanadb1 hanadb2 ]
    
     #Full List of Resources:
     # Clone Set: cln_azure-events [rsc_azure-events]:
       # Started: [ hanadb1 hanadb2 ]
     # Clone Set: cln_SAPHanaTopology_HN1_HDB03 [rsc_SAPHanaTopology_HN1_HDB03]:
       # Started: [ hanadb1 hanadb2 ]
     # Clone Set: msl_SAPHana_HN1_HDB03 [rsc_SAPHana_HN1_HDB03] (promotable):
       # Masters: [ hanadb2 ]
       # Stopped: [ hanadb1 ]
     # Resource Group: g_ip_HN1_HDB03:
          # rsc_ip_HN1_HDB03  (ocf::heartbeat:IPaddr2):        Started hanadb2
       # rsc_nc_HN1_HDB03  (ocf::heartbeat:azure-lb):       Started hanadb2
     # rsc_st_azure        (stonith:fence_azure_arm):       Started hanadb2
     # Clone Set: cln_fs_check_HN1_HDB03 [rsc_fs_check_HN1_HDB03]:
       # Started: [ hanadb1 hanadb2 ]
    

    Recomendamos testar a configuração do cluster do SAP HANA minuciosamente fazendo também os testes descritos em Replicação do sistema do SAP HANA.

Próximas etapas