Elevada disponibilidade do SAP HANA no sistema do escalamento horizontal no Red Hat Enterprise Linux

Este artigo descreve como implantar um sistema SAP HANA altamente disponível em uma configuração de expansão. Especificamente, a configuração usa a replicação do sistema HANA (HSR) e o Pacemaker nas máquinas virtuais (VMs) do Azure Red Hat Enterprise Linux. Os sistemas de arquivos compartilhados na arquitetura apresentada são montados em NFS e são fornecidos pelos Arquivos NetApp do Azure ou pelo compartilhamento NFS nos Arquivos do Azure.

Nos exemplos de configurações e comandos de instalação, a instância HANA é 03 e o ID do sistema HANA é HN1.

Pré-requisitos

Alguns leitores se beneficiarão da consulta de uma variedade de notas e recursos SAP antes de prosseguir com os tópicos deste artigo:

Descrição geral

Para obter alta disponibilidade do HANA para instalações de expansão do HANA, você pode configurar a replicação do sistema HANA e proteger a solução com um cluster Pacemaker para permitir failover automático. Quando um nó ativo falha, o cluster faz failover dos recursos HANA para o outro site.

No diagrama a seguir, há três nós HANA em cada site e um nó criador majoritário para evitar um cenário de "cérebro dividido". As instruções podem ser adaptadas para incluir mais VMs como nós HANA DB.

O sistema /hana/shared de arquivos compartilhados HANA na arquitetura apresentada pode ser fornecido pelos Arquivos NetApp do Azure ou pelo compartilhamento NFS nos Arquivos do Azure. O sistema de arquivos compartilhado HANA é montado em NFS em cada nó HANA no mesmo local de replicação do sistema HANA. /hana/data Sistemas de arquivos e /hana/log são sistemas de arquivos locais e não são compartilhados entre os nós de banco de dados HANA. O SAP HANA será instalado no modo não compartilhado.

Para obter as configurações de armazenamento recomendadas do SAP HANA, consulte Configurações de armazenamento do SAP HANA Azure VMs.

Importante

Se estiver implantando todos os sistemas de arquivos HANA nos Arquivos NetApp do Azure, para sistemas de produção, onde o desempenho é uma chave, recomendamos avaliar e considerar o uso do grupo de volumes de aplicativos Arquivos NetApp do Azure para SAP HANA.

Diagrama de scale-out do SAP HANA com cluster HSR e Pacemaker.

O diagrama anterior mostra três sub-redes representadas em uma rede virtual do Azure, seguindo as recomendações de rede do SAP HANA:

  • Para comunicação com o cliente: client 10.23.0.0/24
  • Para comunicação interna HANA: inter 10.23.1.128/26
  • Para replicação do sistema HANA: hsr 10.23.1.192/26

Como /hana/data são /hana/log implantados em discos locais, não é necessário implantar sub-redes separadas e placas de rede virtual separadas para comunicação com o armazenamento.

Se você estiver usando Arquivos NetApp do Azure, os volumes NFS para /hana/shared, serão implantados em uma sub-rede separada, delegada aos Arquivos NetApp do Azure: anf 10.23.1.0/26.

Configurar a infraestrutura

Nas instruções a seguir, assumimos que você já criou o grupo de recursos, a rede virtual do Azure com três sub-redes de rede do Azure: client, inter e hsr.

Implantar máquinas virtuais Linux por meio do portal do Azure

  1. Implante as VMs do Azure. Para essa configuração, implante sete máquinas virtuais:

    • Três máquinas virtuais para servir como nós de banco de dados HANA para o local de replicação HANA 1: hana-s1-db1, hana-s1-db2 e hana-s1-db3.
    • Três máquinas virtuais para servir como nós de banco de dados HANA para o local de replicação HANA 2: hana-s2-db1, hana-s2-db2 e hana-s2-db3.
    • Uma pequena máquina virtual para servir como fabricante majoritário: hana-s-mm.

    As VMs implantadas como nós SAP DB HANA devem ser certificadas pelo SAP for HANA, conforme publicado no diretório de hardware do SAP HANA. Ao implantar os nós de banco de dados HANA, certifique-se de selecionar rede acelerada.

    Para o nó criador majoritário, você pode implantar uma VM pequena, porque essa VM não executa nenhum dos recursos do SAP HANA. A VM do criador majoritário é usada na configuração do cluster para atingir um número ímpar de nós de cluster em um cenário de cérebro dividido. Neste exemplo, a VM do criador majoritário só precisa de uma interface de client rede virtual na sub-rede.

    Implante discos gerenciados locais para /hana/data e /hana/log. A configuração de armazenamento mínima recomendada para /hana/data e /hana/log é descrita em Configurações de armazenamento de VMs do Azure SAP HANA.

    Implante a interface de rede primária para cada VM na client sub-rede de rede virtual. Quando a VM é implantada por meio do portal do Azure, o nome da interface de rede é gerado automaticamente. Neste artigo, nos referiremos às interfaces de rede primárias geradas automaticamente como hana-s1-db1-client, hana-s1-db2-client, hana-s1-db3-client e assim por diante. Essas interfaces de rede são anexadas à sub-rede de rede virtual do client Azure.

    Importante

    Certifique-se de que o sistema operacional selecionado é certificado SAP para SAP HANA nos tipos específicos de VM que você está usando. Para obter uma lista dos tipos de VM certificados pelo SAP HANA e das versões do sistema operacional para esses tipos, consulte Plataformas IaaS certificadas pelo SAP HANA. Analise detalhadamente os detalhes do tipo de VM listado para obter a lista completa das versões do sistema operacional suportadas pelo SAP HANA para esse tipo.

  2. Crie seis interfaces de rede, uma para cada máquina virtual de banco de dados HANA, na sub-rede de rede virtual (neste exemplo, hana-s1-db1-inter, hana-s1-db2-inter, hana-s1-db3-inter, hana-s2-db1-inter, hana-s2-db2-inter e hana-s2-db3-interinter).

  3. Crie seis interfaces de rede, uma para cada máquina virtual HANA DB, na sub-rede de rede virtual (neste exemplo, hana-s1-db1-hsr, hana-s1-db2-hsr, hana-s1-db3-hsr, hana-s2-db1-hsr, hana-s2-db2-hsr e hana-s2-db3-hsrhsr).

  4. Anexe as interfaces de rede virtual recém-criadas às máquinas virtuais correspondentes:

    1. Vá para a máquina virtual no portal do Azure.
    2. No painel esquerdo, selecione Máquinas Virtuais. Filtre o nome da máquina virtual (por exemplo, hana-s1-db1) e selecione a máquina virtual.
    3. No painel Visão geral, selecione Parar para desalocar a máquina virtual.
    4. Selecione Rede e anexe a interface de rede. Na lista suspensa Anexar interface de rede, selecione as interfaces de rede já criadas para as inter sub-redes e hsr .
    5. Selecione Guardar.
    6. Repita as etapas b a e para as máquinas virtuais restantes (em nosso exemplo, hana-s1-db2, hana-s1-db3, hana-s2-db1, hana-s2-db2 e hana-s2-db3)
    7. Deixe as máquinas virtuais no estado interrompido por enquanto.
  5. Habilite a rede acelerada para as interfaces de rede adicionais para as sub-redes e hsr fazendo o inter seguinte:

    1. Abra o Azure Cloud Shell no portal do Azure.

    2. Execute os comandos a seguir para habilitar a rede acelerada para as interfaces de rede adicionais, que estão conectadas às inter sub-redes e hsr .

      az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db1-inter --accelerated-networking true
      az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db2-inter --accelerated-networking true
      az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db3-inter --accelerated-networking true
      az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db1-inter --accelerated-networking true
      az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db2-inter --accelerated-networking true
      az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db3-inter --accelerated-networking true
      
      az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db1-hsr --accelerated-networking true
      az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db2-hsr --accelerated-networking true
      az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s1-db3-hsr --accelerated-networking true
      az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db1-hsr --accelerated-networking true
      az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db2-hsr --accelerated-networking true
      az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hana-s2-db3-hsr --accelerated-networking true
      
  6. Inicie as máquinas virtuais HANA DB.

Configurar o balanceador de carga do Azure

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

Nota

  • Para expansão do HANA, selecione a NIC para a client sub-rede ao adicionar as máquinas virtuais no pool de back-end.
  • O conjunto completo de comandos na CLI do Azure e no PowerShell adiciona as VMs com NIC primária no pool de back-end.

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 Frontend: Crie um IP front-end. Selecione a mesma rede virtual e o mesmo nome de sub-rede que suas 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 frontend: Selecione um IP front-end.
    • Pool de back-end: selecione um pool de back-end.
    • Portas de alta disponibilidade: selecione esta 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: Digite 5.
      • Limite da sonda: Digite 2.
    • Tempo limite de inatividade (minutos): Digite 30.
    • Ativar IP flutuante: selecione esta opção.

Nota

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

Nota

Ao usar o balanceador de carga padrão, você deve estar ciente da seguinte limitação. Quando você coloca VMs sem endereços IP públicos no pool de back-end de um balanceador de carga interno, não há conectividade de saída com a Internet. Para permitir o roteamento para pontos finais públicos, você precisa executar configurações adicionais. Para obter mais informações, consulte Conectividade de ponto de extremidade público para máquinas virtuais usando o Azure Standard Load Balancer em cenários de alta disponibilidade SAP.

Importante

Não habilite carimbos de data/hora TCP em VMs do Azure colocadas atrás do Balanceador de Carga do Azure. A ativação de carimbos de data/hora TCP faz com que os testes de integridade falhem. Defina o parâmetro net.ipv4.tcp_timestamps como 0. Para obter detalhes, consulte Sondas de integridade do balanceador de carga e 2382421 de notas SAP.

Implantar NFS

Há duas opções para implantar o Azure NFS nativo para /hana/shared. Você pode implantar o volume NFS nos Arquivos NetApp do Azure ou o compartilhamento NFS nos Arquivos do Azure. Os ficheiros do Azure suportam o protocolo NFSv4.1, o NFS nos ficheiros NetApp do Azure suporta NFSv4.1 e NFSv3.

As próximas seções descrevem as etapas para implantar o NFS - você precisará selecionar apenas uma das opções.

Gorjeta

Você optou por implantar /hana/shared no compartilhamento NFS nos Arquivos do Azure ou no volume NFS nos Arquivos NetApp do Azure.

Implantar a infraestrutura de Arquivos NetApp do Azure

Implante os volumes do Azure NetApp Files para o /hana/shared sistema de arquivos. Você precisa de um volume separado /hana/shared para cada local de replicação do sistema HANA. Para obter mais informações, consulte Configurar a infraestrutura do Azure NetApp Files.

Neste exemplo, você usa os seguintes volumes do Azure NetApp Files:

  • volume HN1-shared-s1 (nfs://10.23.1.7/ HN1-shared-s1)
  • volume HN1-shared-s2 (nfs://10.23.1.7/ HN1-shared-s2)

Implantar o NFS na infraestrutura do Azure Files

Implante compartilhamentos NFS de Arquivos do Azure para o /hana/shared sistema de arquivos. Você precisará de um compartilhamento NFS do Azure Files separado /hana/shared para cada site de replicação do sistema HANA. Para obter mais informações, consulte Como criar um compartilhamento NFS.

Neste exemplo, os seguintes compartilhamentos NFS do Azure Files foram usados:

  • Compartilhar HN1-Shared-S1 (sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1)
  • compartilhar hn1-shared-s2 (sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2)

Configuração e preparação do sistema operacional

As instruções nas secções seguintes são precedidas de uma das seguintes abreviaturas:

  • [A]: Aplicável a todos os nós
  • [AH]: Aplicável a todos os nós de banco de dados HANA
  • [M]: Aplicável ao nó do criador majoritário
  • [AH1]: Aplicável a todos os nós de banco de dados HANA no SITE 1
  • [AH2]: Aplicável a todos os nós de banco de dados HANA no SITE 2
  • [1]: Aplicável apenas ao nó 1 do HANA DB, SITE 1
  • [2]: Aplicável apenas ao nó 1 do HANA DB, SITE 2

Configure e prepare seu sistema operacional fazendo o seguinte:

  1. [A] Mantenha os arquivos host nas máquinas virtuais. Inclua entradas para todas as sub-redes. As entradas a seguir são adicionadas para /etc/hosts este exemplo.

    # Client subnet
    10.23.0.11 hana-s1-db1
    10.23.0.12 hana-s1-db1
    10.23.0.13 hana-s1-db2
    10.23.0.14 hana-s2-db1
    10.23.0.15 hana-s2-db2
    10.23.0.16 hana-s2-db3
    10.23.0.17 hana-s-mm
    # Internode subnet
    10.23.1.138 hana-s1-db1-inter
    10.23.1.139 hana-s1-db2-inter
    10.23.1.140 hana-s1-db3-inter
    10.23.1.141 hana-s2-db1-inter
    10.23.1.142 hana-s2-db2-inter
    10.23.1.143 hana-s2-db3-inter
    # HSR subnet
    10.23.1.202 hana-s1-db1-hsr
    10.23.1.203 hana-s1-db2-hsr
    10.23.1.204 hana-s1-db3-hsr
    10.23.1.205 hana-s2-db1-hsr
    10.23.1.206 hana-s2-db2-hsr
    10.23.1.207 hana-s2-db3-hsr
    
  2. [A] Crie o arquivo de configuração /etc/sysctl.d/ms-az.conf com a Microsoft para definições de configuração do Azure.

    vi /etc/sysctl.d/ms-az.conf
    
    # Add the following entries in the configuration file
    
    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
    

    Gorjeta

    Evite definir net.ipv4.ip_local_port_range e net.ipv4.ip_local_reserved_ports explicitamente nos arquivos de sysctl configuração, para permitir que o agente host SAP gerencie os intervalos de portas. Para obter mais detalhes, consulte a nota SAP 2382421.

  3. [A] Instale o pacote do cliente NFS.

    yum install nfs-utils
    
  4. [AH] Configuração do Red Hat para HANA.

    Configure o RHEL, conforme descrito no portal do cliente Red Hat e nas seguintes notas do SAP:

Preparar os sistemas de arquivos

As seções a seguir fornecem etapas para a preparação de seus sistemas de arquivos. Você optou por implantar /hana/shared' no compartilhamento NFS nos Arquivos do Azure ou no volume NFS nos Arquivos NetApp do Azure.

Monte os sistemas de arquivos compartilhados (Azure NetApp Files NFS)

Neste exemplo, os sistemas de arquivos HANA compartilhados são implantados nos Arquivos NetApp do Azure e montados sobre NFSv4.1. Siga as etapas nesta seção, somente se estiver usando NFS nos Arquivos NetApp do Azure.

  1. [AH] Prepare o sistema operacional para executar o SAP HANA em sistemas NetApp com NFS, conforme descrito na nota 3024346 SAP - Configurações do kernel Linux para NFS NetApp. Crie o arquivo de configuração /etc/sysctl.d/91-NetApp-HANA.conf para as definições de configuração da NetApp.

    vi /etc/sysctl.d/91-NetApp-HANA.conf
    
    # Add the following entries in the configuration file
    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
    
  2. [AH] Ajuste as configurações sunrpc, conforme recomendado na nota 3024346 SAP - Configurações do kernel Linux para NetApp NFS.

    vi /etc/modprobe.d/sunrpc.conf
    
    # Insert the following line
    options sunrpc tcp_max_slot_table_entries=128
    
  3. [AH] Crie pontos de montagem para os volumes do banco de dados HANA.

    mkdir -p /hana/shared
    
  4. [AH] Verifique a configuração de domínio NFS. Certifique-se de que o domínio está configurado como o domínio padrão do Azure NetApp Files: defaultv4iddomain.com. Verifique se o mapeamento está definido como nobody.
    (Esta etapa só é necessária se você estiver usando o Azure NetAppFiles NFS v4.1.)

    Importante

    Certifique-se de definir o domínio NFS na /etc/idmapd.conf VM para corresponder à configuração de domínio padrão nos Arquivos NetApp do Azure: defaultv4iddomain.com. Se houver uma incompatibilidade entre a configuração de domínio no cliente NFS e o servidor NFS, as permissões para arquivos nos volumes NetApp do Azure montados nas VMs serão exibidas como nobody.

    sudo cat /etc/idmapd.conf
    # Example
    [General]
    Domain = defaultv4iddomain.com
    [Mapping]
    Nobody-User = nobody
    Nobody-Group = nobody
    
  5. [AH] Verificar nfs4_disable_idmapping. Deve ser definido como Y. Para criar a estrutura de diretórios onde nfs4_disable_idmapping está localizado, execute o comando mount. Você não poderá criar manualmente o diretório em /sys/modules, porque o acesso é reservado para o kernel ou drivers.
    Esta etapa só é necessária se estiver usando o Azure NetAppFiles NFSv4.1.

    # 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.9.0.4:/HN1-shared /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
    

    Para obter mais informações sobre como alterar o nfs4_disable_idmapping parâmetro, consulte o portal do cliente Red Hat.

  6. [AH1] Monte os volumes compartilhados dos Arquivos NetApp do Azure nas VMs de banco de dados HANA SITE1.

    sudo mount -o rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 10.23.1.7:/HN1-shared-s1 /hana/shared
    
  7. [AH2] Monte os volumes compartilhados dos Arquivos NetApp do Azure nas VMs de banco de dados HANA do SITE2.

    sudo mount -o rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 10.23.1.7:/HN1-shared-s2 /hana/shared
    
  8. [AH] Verifique se os sistemas de arquivos correspondentes /hana/shared/ estão montados em todas as VMs HANA DB, com a versão NFSv4 do protocolo NFSv4.

    sudo nfsstat -m
    # Verify that flag vers is set to 4.1 
    # Example from SITE 1, hana-s1-db1
    /hana/shared from 10.23.1.7:/HN1-shared-s1
     Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.11,local_lock=none,addr=10.23.1.7
    # Example from SITE 2, hana-s2-db1
    /hana/shared from 10.23.1.7:/HN1-shared-s2
     Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.14,local_lock=none,addr=10.23.1.7
    

Monte os sistemas de arquivos compartilhados (Azure Files NFS)

Neste exemplo, os sistemas de arquivos HANA compartilhados são implantados em NFS nos Arquivos do Azure. Siga as etapas nesta seção, somente se estiver usando NFS nos Arquivos do Azure.

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

    mkdir -p /hana/shared
    
  2. [AH1] Monte os volumes compartilhados dos Arquivos NetApp do Azure nas VMs de banco de dados HANA SITE1.

    sudo vi /etc/fstab
    # Add the following entry
    sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1 /hana/shared  nfs nfsvers=4.1,sec=sys  0  0
    # Mount all volumes
    sudo mount -a 
    
  3. [AH2] Monte os volumes compartilhados dos Arquivos NetApp do Azure nas VMs de banco de dados HANA do SITE2.

    sudo vi /etc/fstab
    # Add the following entries
    sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2 /hana/shared  nfs nfsvers=4.1,sec=sys  0  0
    # Mount the volume
    sudo mount -a 
    
  4. [AH] Verifique se os sistemas de arquivos correspondentes /hana/shared/ estão montados em todas as VMs de banco de dados HANA com a versão do protocolo NFS NFSv4.1.

    sudo nfsstat -m
    # Example from SITE 1, hana-s1-db1
    sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1
     Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.19,local_lock=none,addr=10.23.0.35
    # Example from SITE 2, hana-s2-db1
    sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2
     Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.22,local_lock=none,addr=10.23.0.35
    

Preparar os dados e registrar sistemas de arquivos locais

Na configuração apresentada, você implanta sistemas /hana/data de arquivos e /hana/log em um disco gerenciado e anexa esses sistemas de arquivos localmente a cada HANA DB VM. Execute as etapas a seguir para criar os volumes de dados e logs locais em cada máquina virtual de banco de dados HANA.

Configure o layout do disco com o LVM (Logical Volume Manager). O exemplo a seguir pressupõe que cada máquina virtual HANA tenha três discos de dados conectados e que esses discos sejam usados para criar dois volumes.

  1. [AH] Liste todos os discos disponíveis:

    ls /dev/disk/azure/scsi1/lun*
    

    Saída de exemplo:

    /dev/disk/azure/scsi1/lun0  /dev/disk/azure/scsi1/lun1  /dev/disk/azure/scsi1/lun2 
    
  2. [AH] Crie volumes físicos para todos os discos que você deseja usar:

    sudo pvcreate /dev/disk/azure/scsi1/lun0
    sudo pvcreate /dev/disk/azure/scsi1/lun1
    sudo pvcreate /dev/disk/azure/scsi1/lun2
    
  3. [AH] Crie um grupo de volumes para os arquivos de dados. Use um grupo de volumes para os arquivos de log e outro para o diretório compartilhado do SAP HANA:

    sudo vgcreate vg_hana_data_HN1 /dev/disk/azure/scsi1/lun0 /dev/disk/azure/scsi1/lun1
    sudo vgcreate vg_hana_log_HN1 /dev/disk/azure/scsi1/lun2
    
  4. [AH] Crie os volumes lógicos. Um volume linear é criado quando você usa lvcreate sem o -i switch. Sugerimos que você crie um volume distribuído para um melhor desempenho de E/S. Alinhe os tamanhos de distribuição aos valores documentados nas configurações de armazenamento SAP HANA VM. O -i argumento deve ser o número dos volumes físicos subjacentes e o -I argumento é o tamanho da faixa. Neste artigo, dois volumes físicos são usados para o volume de dados, portanto, o -i argumento switch é definido como 2. O tamanho da faixa para o volume de dados é 256 KiB. Um volume físico é usado para o volume de log, portanto, você não precisa usar explícitos -i ou -I opções para os comandos de volume de log.

    Importante

    Use o -i switch e defina-o como o número do volume físico subjacente, quando você usar mais de um volume físico para cada volume de dados ou log. Use a -I opção para especificar o tamanho da faixa ao criar um volume distribuído. Consulte Configurações de armazenamento SAP HANA VM para obter as configurações de armazenamento recomendadas, incluindo tamanhos de distribuição e número de discos.

    sudo lvcreate -i 2 -I 256 -l 100%FREE -n hana_data vg_hana_data_HN1
    sudo lvcreate -l 100%FREE -n hana_log vg_hana_log_HN1
    sudo mkfs.xfs /dev/vg_hana_data_HN1/hana_data
    sudo mkfs.xfs /dev/vg_hana_log_HN1/hana_log
    
  5. [AH] Crie os diretórios de montagem e copie o UUID de todos os volumes lógicos:

    sudo mkdir -p /hana/data/HN1
    sudo mkdir -p /hana/log/HN1
    # Write down the ID of /dev/vg_hana_data_HN1/hana_data and /dev/vg_hana_log_HN1/hana_log
    sudo blkid
    
  6. [AH] Crie fstab entradas para os volumes lógicos e monte:

    sudo vi /etc/fstab
    

    Insira a seguinte linha no /etc/fstab ficheiro:

    /dev/disk/by-uuid/UUID of /dev/mapper/vg_hana_data_HN1-hana_data /hana/data/HN1 xfs  defaults,nofail  0  2
    /dev/disk/by-uuid/UUID of /dev/mapper/vg_hana_log_HN1-hana_log /hana/log/HN1 xfs  defaults,nofail  0  2
    

    Monte os novos volumes:

    sudo mount -a
    

Instalação

Neste exemplo para implantar o SAP HANA em uma configuração de expansão com HSR em VMs do Azure, você está usando o HANA 2.0 SP4.

Preparar para a instalação do HANA

  1. [AH] Antes da instalação do HANA, defina a senha de root. Você pode desativar a senha de root após a conclusão da instalação. Execute como root comando passwd para definir a senha.

  2. [1,2] Altere as permissões em /hana/shared.

    chmod 775 /hana/shared
    
  3. [1] Verifique se você pode entrar em hana-s1-db2 e hana-s1-db3 via secure shell (SSH), sem ser solicitada uma senha. Se esse não for o caso, troque ssh chaves, conforme documentado em Usando autenticação baseada em chave.

    ssh root@hana-s1-db2
    ssh root@hana-s1-db3
    
  4. [2] Verifique se você pode entrar em hana-s2-db2 e hana-s2-db3 via SSH, sem ser solicitada uma senha. Se esse não for o caso, troque ssh chaves, conforme documentado em Usando autenticação baseada em chave.

    ssh root@hana-s2-db2
    ssh root@hana-s2-db3
    
  5. [AH] Instale pacotes adicionais, que são necessários para o HANA 2.0 SP4. Para obter mais informações, consulte SAP Note 2593824 for RHEL 7.

    # If using RHEL 7
    yum install libgcc_s1 libstdc++6 compat-sap-c++-7 libatomic1
    # If using RHEL 8
    yum install libatomic libtool-ltdl.x86_64
    
  6. [A] Desative o firewall temporariamente, para que ele não interfira com a instalação do HANA. Você pode reativá-lo após a conclusão da instalação do HANA.

    # Execute as root
    systemctl stop firewalld
    systemctl disable firewalld
    

Instalação do HANA no primeiro nó em cada local

  1. [1] Instale o SAP HANA seguindo as instruções no guia de instalação e atualização do SAP HANA 2.0. As instruções a seguir mostram a instalação do SAP HANA no primeiro nó do SITE 1.

    1. Inicie o hdblcm programa a root partir do diretório do software de instalação do HANA. Use o internal_network parâmetro e passe o espaço de endereço para a sub-rede, que é usado para a comunicação interna do HANA.

      ./hdblcm --internal_network=10.23.1.128/26
      
    2. No prompt, insira os seguintes valores:

      • Em Escolha uma ação, digite 1 (para instalar).
      • Para Componentes adicionais para instalação, insira 2, 3.
      • Para o caminho de instalação, pressione Enter (o padrão é /hana/shared).
      • Para Local Host Name, pressione Enter para aceitar o padrão.
      • Em Deseja adicionar hosts ao sistema?, digite n.
      • Para SAP HANA System ID, insira HN1.
      • Para Número da instância [00], digite 03.
      • Para Grupo de Trabalho de Host Local [padrão], pressione Enter para aceitar o padrão.
      • Para Selecionar Uso do Sistema / Inserir índice [4], digite 4 (para personalizado).
      • Para Localização dos volumes de dados [/hana/data/HN1], pressione Enter para aceitar o padrão.
      • Para Localização dos Volumes de Log [/hana/log/HN1], pressione Enter para aceitar o padrão.
      • Em Restringir alocação máxima de memória? [n], digite n.
      • Para Nome do Host do Certificado Para Host hana-s1-db1 [hana-s1-db1], pressione Enter para aceitar o padrão.
      • Para SAP Host Agent User (sapadm) Password, digite a senha.
      • Para Confirmar senha do usuário do SAP Host Agent (sapadm), digite a senha.
      • Para Palavra-passe do Administrador do Sistema (hn1adm), introduza a palavra-passe.
      • Para System Administrator Home Directory [/usr/sap/HN1/home], pressione Enter para aceitar o padrão.
      • Para System Administrator Login Shell [/bin/sh], pressione Enter para aceitar o padrão.
      • Para System Administrator User ID [1001], pressione Enter para aceitar o padrão.
      • Para Enter ID of User Group (sapsys) [79], pressione Enter para aceitar o padrão.
      • Para Senha do Usuário do Banco de Dados do Sistema (sistema), digite a senha do sistema.
      • Para Confirmar Senha do Usuário do Banco de Dados do Sistema (sistema), digite a senha do sistema.
      • Para Reiniciar o sistema após a reinicialização da máquina? [n], digite n.
      • Em Deseja continuar (s/n), valide o resumo e, se tudo estiver bem, digite y.
  2. [2] Repita a etapa anterior para instalar o SAP HANA no primeiro nó do SITE 2.

  3. [1,2] Verifique global.ini.

    Exiba global.ini e verifique se a configuração para a comunicação interna do SAP HANA está em vigor. Verifique a communication seção. Ele deve ter o espaço de endereço para a inter sub-rede e listeninterface deve ser definido como .internal. Verifique a internal_hostname_resolution seção. Ele deve ter os endereços IP para as máquinas virtuais HANA que pertencem à inter sub-rede.

      sudo cat /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini
      # Example from SITE1 
      [communication]
      internal_network = 10.23.1.128/26
      listeninterface = .internal
      [internal_hostname_resolution]
      10.23.1.138 = hana-s1-db1
      10.23.1.139 = hana-s1-db2
      10.23.1.140 = hana-s1-db3
    
  4. [1,2] Preparar global.ini para instalação em ambiente não compartilhado, conforme descrito na nota 2080991 da SAP.

     sudo vi /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini
     [persistence]
     basepath_shared = no
    
  5. [1,2] Reinicie o SAP HANA para ativar as alterações.

     sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StopSystem
     sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StartSystem
    
  6. [1,2] Verifique se a interface do cliente utiliza os endereços IP da client sub-rede para comunicação.

    # Execute as hn1adm
    /usr/sap/HN1/HDB03/exe/hdbsql -u SYSTEM -p "password" -i 03 -d SYSTEMDB 'select * from SYS.M_HOST_INFORMATION'|grep net_publicname
    # Expected result - example from SITE 2
    "hana-s2-db1","net_publicname","10.23.0.14"
    

    Para obter informações sobre como verificar a configuração, consulte SAP note 2183363 - Configuration of SAP HANA internal network.

  7. [AH] Altere as permissões nos diretórios de dados e log para evitar um erro de instalação do HANA.

     sudo chmod o+w -R /hana/data /hana/log
    
  8. [1] Instale os nós HANA secundários. As instruções de exemplo nesta etapa são para o SITE 1.

    1. Inicie o programa residente hdblcm como root.

       cd /hana/shared/HN1/hdblcm
       ./hdblcm 
      
    2. No prompt, insira os seguintes valores:

      • Em Escolha uma ação, digite 2 (para adicionar hosts).
      • Para Inserir nomes de host separados por vírgulas para adicionar, digite hana-s1-db2, hana-s1-db3.
      • Para Componentes adicionais para instalação, insira 2, 3.
      • Para Enter Root User Name [root], pressione Enter para aceitar o padrão.
      • Para Select roles for host 'hana-s1-db2' [1], selecione 1 (for worker).
      • Para Enter Host Failover Group for host 'hana-s1-db2' [default], pressione Enter para aceitar o padrão.
      • Para Enter Storage Partition Number for host 'hana-s1-db2' [<<assign automatically>>], pressione Enter para aceitar o padrão.
      • Para Enter Worker Group para host 'hana-s1-db2' [default], pressione Enter para aceitar o padrão.
      • Para Select roles for host 'hana-s1-db3' [1], selecione 1 (para trabalhador).
      • Para Enter Host Failover Group for host 'hana-s1-db3' [default], pressione Enter para aceitar o padrão.
      • Para Enter Storage Partition Number for host 'hana-s1-db3' [<<assign automatically>>], pressione Enter para aceitar o padrão.
      • Para Enter Worker Group for host 'hana-s1-db3' [default], pressione Enter para aceitar o padrão.
      • Para Palavra-passe do Administrador do Sistema (hn1adm), introduza a palavra-passe.
      • Para Enter SAP Host Agent User (sapadm) Password, digite a senha.
      • Para Confirmar senha do usuário do SAP Host Agent (sapadm), digite a senha.
      • Para Nome do Host do Certificado Para Host hana-s1-db2 [hana-s1-db2], pressione Enter para aceitar o padrão.
      • Para Nome do Host do Certificado Para Host hana-s1-db3 [hana-s1-db3], pressione Enter para aceitar o padrão.
      • Em Deseja continuar (s/n), valide o resumo e, se tudo estiver bem, digite y.
  9. [2] Repita a etapa anterior para instalar os nós secundários do SAP HANA no SITE 2.

Configurar a replicação do sistema SAP HANA 2.0

As etapas a seguir ajudam você a configurar para a replicação do sistema:

  1. [1] Configurar a replicação do sistema no SITE 1:

    Faça backup dos bancos de dados como hn1adm:

    hdbsql -d SYSTEMDB -u SYSTEM -p "passwd" -i 03 "BACKUP DATA USING FILE ('initialbackupSYS')"
    hdbsql -d HN1 -u SYSTEM -p "passwd" -i 03 "BACKUP DATA USING FILE ('initialbackupHN1')"
    

    Copie os arquivos PKI do sistema para o site secundário:

    scp /usr/sap/HN1/SYS/global/security/rsecssfs/data/SSFS_HN1.DAT hana-s2-db1:/usr/sap/HN1/SYS/global/security/rsecssfs/data/
    scp /usr/sap/HN1/SYS/global/security/rsecssfs/key/SSFS_HN1.KEY  hana-s2-db1:/usr/sap/HN1/SYS/global/security/rsecssfs/key/
    

    Crie o site principal:

    hdbnsutil -sr_enable --name=HANA_S1
    
  2. [2] Configure a replicação do sistema no SITE 2:

    Registre o segundo site para iniciar a replicação do sistema. Execute o seguinte comando como <hanasid>adm:

    sapcontrol -nr 03 -function StopWait 600 10
    hdbnsutil -sr_register --remoteHost=hana-s1-db1 --remoteInstance=03 --replicationMode=sync --name=HANA_S2
    sapcontrol -nr 03 -function StartSystem
    
  3. [1] Verifique o estado da replicação e aguarde até que todas as bases de dados estejam sincronizadas.

    sudo su - hn1adm -c "python /usr/sap/HN1/HDB03/exe/python_support/systemReplicationStatus.py"
    
    # | Database | Host          | Port  | Service Name | Volume ID | Site ID | Site Name | Secondary     | Secondary | Secondary | Secondary | Secondary     | Replication | Replication | Replication    |
    # |          |               |       |              |           |         |           | Host          | Port      | Site ID   | Site Name | Active Status | Mode        | Status      | Status Details |
    # | -------- | ------------- | ----- | ------------ | --------- | ------- | --------- | ------------- | --------- | --------- | --------- | ------------- | ----------- | ----------- | -------------- |
    # | HN1      | hana-s1-db3   | 30303 | indexserver  |         5 |       1 | HANA_S1   | hana-s2-db3   |     30303 |         2 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
    # | SYSTEMDB | hana-s1-db1   | 30301 | nameserver   |         1 |       1 | HANA_S1   | hana-s2-db1   |     30301 |         2 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
    # | HN1      | hana-s1-db1   | 30307 | xsengine     |         2 |       1 | HANA_S1   | hana-s2-db1   |     30307 |         2 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
    # | HN1      | hana-s1-db1   | 30303 | indexserver  |         3 |       1 | HANA_S1   | hana-s2-db1   |     30303 |         2 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
    # | HN1      | hana-s1-db2   | 30303 | indexserver  |         4 |       1 | HANA_S1   | hana-s2-db2   |     30303 |         2 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
    #
    # status system replication site "2": ACTIVE
    # overall system replication status: ACTIVE
    #
    # Local System Replication State
    #
    # mode: PRIMARY
    # site id: 1
    # site name: HANA_S1
    
  4. [1,2] Altere a configuração do HANA para que a comunicação para a replicação do sistema HANA seja direcionada através das interfaces de rede virtual de replicação do sistema HANA.

    1. Pare o HANA em ambos os sites.

      sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StopSystem HDB
      
    2. Edite global.ini para adicionar o mapeamento de host para replicação do sistema HANA. Use os endereços IP da hsr sub-rede.

      sudo vi /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini
      #Add the section
      [system_replication_hostname_resolution]
      10.23.1.202 = hana-s1-db1
      10.23.1.203 = hana-s1-db2
      10.23.1.204 = hana-s1-db3
      10.23.1.205 = hana-s2-db1
      10.23.1.206 = hana-s2-db2
      10.23.1.207 = hana-s2-db3
      
    3. Inicie o HANA em ambos os sites.

       sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StartSystem HDB
      

    Para obter mais informações, consulte Resolução de nomes de host para replicação do sistema.

  5. [AH] Reative o firewall e abra as portas necessárias.

    1. Reative o firewall.

      # Execute as root
      systemctl start firewalld
      systemctl enable firewalld
      
    2. Abra as portas de firewall necessárias. Você precisará ajustar as portas para seu número de instância HANA.

      Importante

      Crie regras de firewall para permitir a comunicação interna do HANA e o tráfego do cliente. As portas necessárias estão listadas nas portas TCP/IP de todos os produtos SAP. Os comandos a seguir são apenas um exemplo. Nesse cenário, você usa o número do sistema 03.

       # Execute as root
       sudo firewall-cmd --zone=public --add-port={30301,30303,30306,30307,30313,30315,30317,30340,30341,30342,1128,1129,40302,40301,40307,40303,40340,50313,50314,30310,30302}/tcp --permanent
       sudo firewall-cmd --zone=public --add-port={30301,30303,30306,30307,30313,30315,30317,30340,30341,30342,1128,1129,40302,40301,40307,40303,40340,50313,50314,30310,30302}/tcp
      

Criar um cluster de marcapasso

Para criar um cluster básico do Pacemaker, siga as etapas em Configurando o Pacemaker no Red Hat Enterprise Linux no Azure. Inclua todas as máquinas virtuais, incluindo o criador majoritário no cluster.

Importante

Não defina quorum expected-votes como 2. Este não é um cluster de dois nós. Verifique se a propriedade concurrent-fencing do cluster está habilitada, para que a vedação do nó seja desserializada.

Criar recursos do sistema de arquivos

Para a próxima parte desse processo, você precisa criar recursos do sistema de arquivos. Saiba como:

  1. [1,2] Pare o SAP HANA em ambos os locais de replicação. Executar como <sid>adm.

    sapcontrol -nr 03 -function StopSystem
    
  2. [AH] Desmonte o sistema /hana/sharedde arquivos , que foi montado temporariamente para a instalação em todas as VMs de banco de dados HANA. Antes de desmontá-lo, você precisa parar todos os processos e sessões que estão usando o sistema de arquivos.

    umount /hana/shared 
    
  3. [1] Crie os recursos de cluster do sistema de ficheiros para /hana/shared no estado desativado. Você usa --disabled porque precisa definir as restrições de local antes que as montagens sejam habilitadas.
    Você optou por implantar /hana/shared' no compartilhamento NFS nos Arquivos do Azure ou no volume NFS nos Arquivos NetApp do Azure.

    • Neste exemplo, o sistema de arquivos '/hana/shared' é implantado nos Arquivos NetApp do Azure e montado sobre NFSv4.1. Siga as etapas nesta seção, somente se estiver usando NFS nos Arquivos NetApp do Azure.

      # /hana/shared file system for site 1
      pcs resource create fs_hana_shared_s1 --disabled ocf:heartbeat:Filesystem device=10.23.1.7:/HN1-shared-s1  directory=/hana/shared \
      fstype=nfs options='defaults,rw,hard,timeo=600,rsize=262144,wsize=262144,proto=tcp,noatime,sec=sys,nfsvers=4.1,lock,_netdev' op monitor interval=20s on-fail=fence timeout=120s OCF_CHECK_LEVEL=20 \
      op start interval=0 timeout=120 op stop interval=0 timeout=120
      
      # /hana/shared file system for site 2
      pcs resource create fs_hana_shared_s2 --disabled ocf:heartbeat:Filesystem device=10.23.1.7:/HN1-shared-s1 directory=/hana/shared \
      fstype=nfs options='defaults,rw,hard,timeo=600,rsize=262144,wsize=262144,proto=tcp,noatime,sec=sys,nfsvers=4.1,lock,_netdev' op monitor interval=20s on-fail=fence timeout=120s OCF_CHECK_LEVEL=20 \
      op start interval=0 timeout=120 op stop interval=0 timeout=120
      
      # clone the /hana/shared file system resources for both site1 and site2
      pcs resource clone fs_hana_shared_s1 meta clone-node-max=1 interleave=true
      pcs resource clone fs_hana_shared_s2 meta clone-node-max=1 interleave=true
      
      

    Os valores de tempo limite sugeridos permitem que os recursos do cluster suportem uma pausa específica do protocolo, relacionada às renovações de concessão NFSv4.1 nos Arquivos NetApp do Azure. Para obter mais informações, consulte NFS em NetApp Best practice.

    • Neste exemplo, o sistema de arquivos '/hana/shared' é implantado em NFS nos Arquivos do Azure. Siga as etapas nesta seção, somente se estiver usando NFS nos Arquivos do Azure.

      # /hana/shared file system for site 1
      pcs resource create fs_hana_shared_s1 --disabled ocf:heartbeat:Filesystem device=sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1  directory=/hana/shared \
      fstype=nfs options='defaults,rw,hard,proto=tcp,noatime,nfsvers=4.1,lock' op monitor interval=20s on-fail=fence timeout=120s OCF_CHECK_LEVEL=20 \
      op start interval=0 timeout=120 op stop interval=0 timeout=120
      
      # /hana/shared file system for site 2
      pcs resource create fs_hana_shared_s2 --disabled ocf:heartbeat:Filesystem device=sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2 directory=/hana/shared \
      fstype=nfs options='defaults,rw,hard,proto=tcp,noatime,nfsvers=4.1,lock' op monitor interval=20s on-fail=fence timeout=120s OCF_CHECK_LEVEL=20 \
      op start interval=0 timeout=120 op stop interval=0 timeout=120
      
      # clone the /hana/shared file system resources for both site1 and site2
      pcs resource clone fs_hana_shared_s1 meta clone-node-max=1 interleave=true
      pcs resource clone fs_hana_shared_s2 meta clone-node-max=1 interleave=true
      

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

      O on-fail=fence atributo também é adicionado à operação do monitor. Com essa opção, se a operação do monitor falhar em um nó, esse nó será imediatamente cercado. Sem essa opção, o comportamento padrão é parar todos os recursos que dependem do recurso com falha, reiniciar o recurso com falha e iniciar todos os recursos que dependem do recurso com falha. Esse comportamento não só pode levar muito tempo quando um recurso do SAP HANA depende do recurso com falha, mas também pode falhar completamente. O recurso SAP HANA não pode parar com êxito se o compartilhamento NFS que contém os binários HANA estiver inacessível.

      Os tempos limite nas configurações acima podem precisar ser adaptados à configuração específica do SAP.

  4. [1] Configure e verifique os atributos do nó. Todos os nós SAP HANA DB no local de replicação 1 recebem atributo S1atribuído e todos os nós SAP HANA DB no local de replicação 2 são atribuídos atributo S2.

    # HANA replication site 1
    pcs node attribute hana-s1-db1 NFS_SID_SITE=S1
    pcs node attribute hana-s1-db2 NFS_SID_SITE=S1
    pcs node attribute hana-s1-db3 NFS_SID_SITE=S1
    # HANA replication site 2
    pcs node attribute hana-s2-db1 NFS_SID_SITE=S2
    pcs node attribute hana-s2-db2 NFS_SID_SITE=S2
    pcs node attribute hana-s2-db3 NFS_SID_SITE=S2
    # To verify the attribute assignment to nodes execute
    pcs node attribute
    
  5. [1] Configure as restrições que determinam onde os sistemas de ficheiros NFS serão montados e habilite os recursos do sistema de ficheiros.

    # Configure the constraints
    pcs constraint location fs_hana_shared_s1-clone rule resource-discovery=never score=-INFINITY NFS_SID_SITE ne S1
    pcs constraint location fs_hana_shared_s2-clone rule resource-discovery=never score=-INFINITY NFS_SID_SITE ne S2
    # Enable the file system resources
    pcs resource enable fs_hana_shared_s1
    pcs resource enable fs_hana_shared_s2
    

    Quando você habilita os recursos do sistema de arquivos, o cluster monta os /hana/shared sistemas de arquivos.

  6. [AH] Verifique se os volumes dos Arquivos NetApp do Azure estão montados em /hana/shared, em todas as VMs de banco de dados HANA em ambos os sites.

    • Exemplo, se estiver usando Arquivos NetApp do Azure:

      sudo nfsstat -m
      # Verify that flag vers is set to 4.1 
      # Example from SITE 1, hana-s1-db1
      /hana/shared from 10.23.1.7:/HN1-shared-s1
       Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.11,local_lock=none,addr=10.23.1.7
      # Example from SITE 2, hana-s2-db1
      /hana/shared from 10.23.1.7:/HN1-shared-s2
       Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.14,local_lock=none,addr=10.23.1.7
      
    • Exemplo, se estiver usando o Azure Files NFS:

      sudo nfsstat -m
      # Example from SITE 1, hana-s1-db1
      sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s1
       Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.19,local_lock=none,addr=10.23.0.35
      # Example from SITE 2, hana-s2-db1
      sapnfsafs.file.core.windows.net:/sapnfsafs/hn1-shared-s2
       Flags: rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.23.0.22,local_lock=none,addr=10.23.0.35
      
  7. [1] Configure e clone os recursos de atributos, e configure as restrições, da seguinte forma:

    # Configure the attribute resources
    pcs resource create hana_nfs_s1_active ocf:pacemaker:attribute active_value=true inactive_value=false name=hana_nfs_s1_active
    pcs resource create hana_nfs_s2_active ocf:pacemaker:attribute active_value=true inactive_value=false name=hana_nfs_s2_active
    # Clone the attribute resources
    pcs resource clone hana_nfs_s1_active meta clone-node-max=1 interleave=true
    pcs resource clone hana_nfs_s2_active meta clone-node-max=1 interleave=true
    # Configure the constraints, which will set the attribute values
    pcs constraint order fs_hana_shared_s1-clone then hana_nfs_s1_active-clone
    pcs constraint order fs_hana_shared_s2-clone then hana_nfs_s2_active-clone
    

    Gorjeta

    Se sua configuração incluir sistemas de arquivos diferentes de /hana/shared, e esses sistemas de arquivos forem montados em NFS, inclua a sequential=false opção. Essa opção garante que não haja dependências de ordenação entre os sistemas de arquivos. Todos os sistemas de arquivos montados no NFS devem ser iniciados antes do recurso de atributo correspondente, mas não precisam ser iniciados em nenhuma ordem em relação uns aos outros. Para obter mais informações, consulte Como configurar o HSR de expansão do SAP HANA em um cluster Pacemaker quando os sistemas de arquivos HANA são compartilhamentos NFS.

  8. [1] Coloque o Pacemaker no modo de manutenção, em preparação para a criação dos recursos do cluster HANA.

    pcs property set maintenance-mode=true
    

Criar recursos de cluster do SAP HANA

Agora você está pronto para criar os recursos de cluster:

  1. [A] Instale o agente de recursos de expansão HANA em todos os nós do cluster, incluindo o criador majoritário.

    yum install -y resource-agents-sap-hana-scaleout 
    

    Nota

    Para obter a versão mínima suportada do pacote resource-agents-sap-hana-scaleout para a versão do seu sistema operacional, consulte Políticas de suporte para clusters RHEL HA - Gerenciamento do SAP HANA em um cluster .

  2. [1,2] Instale o gancho de replicação do sistema HANA em um nó de banco de dados HANA em cada local de replicação do sistema. O SAP HANA ainda deve estar inativo.

    1. Prepare o gancho como root.

      mkdir -p /hana/shared/myHooks
      cp /usr/share/SAPHanaSR-ScaleOut/SAPHanaSR.py /hana/shared/myHooks
      chown -R hn1adm:sapsys /hana/shared/myHooks
      
    2. Ajuste global.ini.

      # add to global.ini
      [ha_dr_provider_SAPHanaSR]
      provider = SAPHanaSR
      path = /hana/shared/myHooks
      execution_order = 1
      
      [trace]
      ha_dr_saphanasr = info
      
  3. [AH] O cluster requer configuração de sudoers no nó do cluster para <sid>adm. Neste exemplo, você consegue isso criando um novo arquivo. Execute os comandos como root.

    sudo visudo -f /etc/sudoers.d/20-saphana
    # Insert the following lines and then save
    Cmnd_Alias SOK = /usr/sbin/crm_attribute -n hana_hn1_glob_srHook -v SOK -t crm_config -s SAPHanaSR
    Cmnd_Alias SFAIL = /usr/sbin/crm_attribute -n hana_hn1_glob_srHook -v SFAIL -t crm_config -s SAPHanaSR
    hn1adm ALL=(ALL) NOPASSWD: SOK, SFAIL
    Defaults!SOK, SFAIL !requiretty
    
  4. [1,2] Inicie o SAP HANA em ambos os locais de replicação. Executar como <sid>adm.

    sapcontrol -nr 03 -function StartSystem 
    
  5. [1] Verifique a instalação do gancho. Execute como <sid>adm no site de replicação do sistema HANA ativo.

    cdtrace
     awk '/ha_dr_SAPHanaSR.*crm_attribute/ \
     { printf "%s %s %s %s\n",$2,$3,$5,$16 }' nameserver_*
    
     # Example entries
     # 2020-07-21 22:04:32.364379 ha_dr_SAPHanaSR SFAIL
     # 2020-07-21 22:04:46.905661 ha_dr_SAPHanaSR SFAIL
     # 2020-07-21 22:04:52.092016 ha_dr_SAPHanaSR SFAIL
     # 2020-07-21 22:04:52.782774 ha_dr_SAPHanaSR SFAIL
     # 2020-07-21 22:04:53.117492 ha_dr_SAPHanaSR SFAIL
     # 2020-07-21 22:06:35.599324 ha_dr_SAPHanaSR SOK
    
  6. [1] Crie os recursos do cluster HANA. Execute os seguintes comandos como root.

    1. Verifique se o cluster já está no modo de manutenção.

    2. Em seguida, crie o recurso de topologia HANA.
      Se você estiver criando um cluster RHEL 7.x , use os seguintes comandos:

      pcs resource create SAPHanaTopology_HN1_HDB03 SAPHanaTopologyScaleOut \
       SID=HN1 InstanceNumber=03 \
       op start timeout=600 op stop timeout=300 op monitor interval=10 timeout=600
      
      pcs resource clone SAPHanaTopology_HN1_HDB03 meta clone-node-max=1 interleave=true
      

      Se você estiver criando um cluster RHEL >= 8.x , use os seguintes comandos:

      pcs resource create SAPHanaTopology_HN1_HDB03 SAPHanaTopology \
       SID=HN1 InstanceNumber=03 meta clone-node-max=1 interleave=true \
       op methods interval=0s timeout=5 \
       op start timeout=600 op stop timeout=300 op monitor interval=10 timeout=600
      
      pcs resource clone SAPHanaTopology_HN1_HDB03 meta clone-node-max=1 interleave=true
      
    3. Crie o recurso de instância HANA.

      Nota

      Este artigo contém referências a um termo que a Microsoft já não utiliza. Quando o termo for removido do software, iremos removê-lo deste artigo.

      Se você estiver criando um cluster RHEL 7.x , use os seguintes comandos:

      pcs resource create SAPHana_HN1_HDB03 SAPHanaController \
       SID=HN1 InstanceNumber=03 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=false \
       op start interval=0 timeout=3600 op stop interval=0 timeout=3600 op promote interval=0 timeout=3600 \
       op monitor interval=60 role="Master" timeout=700 op monitor interval=61 role="Slave" timeout=700
      
      pcs resource master msl_SAPHana_HN1_HDB03 SAPHana_HN1_HDB03 \
       meta master-max="1" clone-node-max=1 interleave=true
      

      Se você estiver criando um cluster RHEL >= 8.x , use os seguintes comandos:

      pcs resource create SAPHana_HN1_HDB03 SAPHanaController \
       SID=HN1 InstanceNumber=03 PREFER_SITE_TAKEOVER=true DUPLICATE_PRIMARY_TIMEOUT=7200 AUTOMATED_REGISTER=false \
       op demote interval=0s timeout=320 op methods interval=0s timeout=5 \
       op start interval=0 timeout=3600 op stop interval=0 timeout=3600 op promote interval=0 timeout=3600 \
       op monitor interval=60 role="Master" timeout=700 op monitor interval=61 role="Slave" timeout=700
      
      pcs resource promotable SAPHana_HN1_HDB03 \
       meta master-max="1" clone-node-max=1 interleave=true
      

      Importante

      É uma boa ideia definir AUTOMATED_REGISTER como false, enquanto você está executando testes de failover, para evitar que uma instância primária com falha se registre automaticamente como secundária. Após o teste, como prática recomendada, defina AUTOMATED_REGISTER como , para trueque, após a aquisição, a replicação do sistema possa ser retomada automaticamente.

    4. Crie o IP virtual e os recursos associados.

      pcs resource create vip_HN1_03 ocf:heartbeat:IPaddr2 ip=10.23.0.18 op monitor interval="10s" timeout="20s"
      sudo pcs resource create nc_HN1_03 azure-lb port=62503
      sudo pcs resource group add g_ip_HN1_03 nc_HN1_03 vip_HN1_03
      
    5. Crie as restrições de cluster.

      Se você estiver criando um cluster RHEL 7.x , use os seguintes comandos:

      #Start HANA topology, before the HANA instance
      pcs constraint order SAPHanaTopology_HN1_HDB03-clone then msl_SAPHana_HN1_HDB03
      
      pcs constraint colocation add g_ip_HN1_03 with master msl_SAPHana_HN1_HDB03 4000
      #HANA resources are only allowed to run on a node, if the node's NFS file systems are mounted. The constraint also avoids the majority maker node
      pcs constraint location SAPHanaTopology_HN1_HDB03-clone rule resource-discovery=never score=-INFINITY hana_nfs_s1_active ne true and hana_nfs_s2_active ne true
      

      Se você estiver criando um cluster RHEL >= 8.x , use os seguintes comandos:

      #Start HANA topology, before the HANA instance
      pcs constraint order SAPHanaTopology_HN1_HDB03-clone then SAPHana_HN1_HDB03-clone
      
      pcs constraint colocation add g_ip_HN1_03 with master SAPHana_HN1_HDB03-clone 4000
      #HANA resources are only allowed to run on a node, if the node's NFS file systems are mounted. The constraint also avoids the majority maker node
      pcs constraint location SAPHanaTopology_HN1_HDB03-clone rule resource-discovery=never score=-INFINITY hana_nfs_s1_active ne true and hana_nfs_s2_active ne true
      
  7. [1] Coloque o cluster fora do modo de manutenção. Verifique se o status do cluster é ok, e se todos os recursos foram iniciados.

    sudo pcs property set maintenance-mode=false
    #If there are failed cluster resources, you may need to run the next command
    pcs resource cleanup
    

    Nota

    Os tempos limite na configuração anterior são apenas exemplos e podem precisar ser adaptados à configuração específica do HANA. Por exemplo, talvez seja necessário aumentar o tempo limite de inicialização, se demorar mais para iniciar o banco de dados do SAP HANA.

Configurar a replicação do sistema ativa/habilitada para leitura do HANA

A partir do SAP HANA 2.0 SPS 01, o SAP permite configurações ativas/habilitadas para leitura para replicação do sistema SAP HANA. Com esse recurso, você pode usar ativamente os sistemas secundários de replicação do sistema SAP HANA para cargas de trabalho de leitura intensiva. Para suportar essa configuração em um cluster, você precisa de um segundo endereço IP virtual, que permita que os clientes acessem o banco de dados secundário SAP HANA habilitado para leitura. Para garantir que o local de replicação secundária ainda possa ser acessado após a ocorrência de uma aquisição, o cluster precisa mover o endereço IP virtual com o secundário do recurso SAP HANA.

Esta seção descreve as etapas adicionais que você deve executar para gerenciar esse tipo de replicação do sistema em um cluster de alta disponibilidade Red Hat, com um segundo endereço IP virtual.

Antes de prosseguir, certifique-se de ter configurado totalmente um cluster de alta disponibilidade Red Hat, gerenciando um banco de dados SAP HANA, conforme descrito anteriormente neste artigo.

Alta disponibilidade escalável do SAP HANA com secundário habilitado para leitura

Configuração adicional no Azure Load Balancer para configuração ativa/habilitada para leitura

Para continuar com o provisionamento de seu segundo IP virtual, verifique se você configurou o Azure Load Balancer conforme descrito em Configurar o Azure Load Balancer.

Para o balanceador de carga padrão , siga estas etapas adicionais no mesmo balanceador de carga que você criou na seção anterior.

  1. Crie um segundo pool de IP front-end:

    1. Abra o balanceador de carga, selecione pool de IP frontend e selecione Adicionar.
    2. Digite o nome do segundo pool de IP front-end (por exemplo, hana-secondaryIP).
    3. Defina a Atribuição como Estática e insira o endereço IP (por exemplo, 10.23.0.19).
    4. Selecione OK.
    5. Depois que o novo pool de IP front-end for criado, observe o endereço IP do pool.
  2. Em seguida, crie uma sonda de integridade:

    1. Abra o balanceador de carga, selecione testes de integridade e selecione Adicionar.
    2. Digite o nome da nova sonda de integridade (por exemplo, hana-secondaryhp).
    3. Selecione TCP como o protocolo e a porta 62603. Mantenha o valor Interval definido como 5 e o valor do limite Não íntegro definido como 2.
    4. Selecione OK.
  3. Em seguida, crie as regras de balanceamento de carga:

    1. Abra o balanceador de carga, selecione regras de balanceamento de carga e selecione Adicionar.
    2. Insira o nome da nova regra do balanceador de carga (por exemplo, hana-secondarylb).
    3. Selecione o endereço IP front-end, o pool de back-end e a sonda de integridade que você criou anteriormente (por exemplo, hana-secondaryIP, hana-backend e hana-secondaryhp).
    4. Selecione Portas HA.
    5. Certifique-se de ativar o IP flutuante.
    6. Selecione OK.

Configurar a replicação do sistema ativa/habilitada para leitura do HANA

As etapas para configurar a replicação do sistema HANA são descritas na seção Configurar a replicação do sistema SAP HANA 2.0. Se você estiver implantando um cenário secundário habilitado para leitura, enquanto estiver configurando a replicação do sistema no segundo nó, execute o seguinte comando como hanasidadm:

sapcontrol -nr 03 -function StopWait 600 10 

hdbnsutil -sr_register --remoteHost=hana-s1-db1 --remoteInstance=03 --replicationMode=sync --name=HANA_S2 --operationMode=logreplay_readaccess 

Adicionar um recurso de endereço IP virtual secundário para uma configuração ativa/habilitada para leitura

Você pode configurar o segundo IP virtual e as restrições adicionais com os seguintes comandos. Se a instância secundária estiver inativa, o IP virtual secundário será alternado para o principal.

pcs property set maintenance-mode=true

pcs resource create secvip_HN1_03 ocf:heartbeat:IPaddr2 ip="10.23.0.19"
pcs resource create secnc_HN1_03 ocf:heartbeat:azure-lb port=62603
pcs resource group add g_secip_HN1_03 secnc_HN1_03 secvip_HN1_03

# RHEL 8.x: 
pcs constraint location g_ip_HN1_03 rule score=500 role=master hana_hn1_roles eq "master1:master:worker:master" and hana_hn1_clone_state eq PROMOTED
pcs constraint location g_secip_HN1_03 rule score=50  hana_hn1_roles eq 'master1:master:worker:master'
pcs constraint order promote  SAPHana_HN1_HDB03-clone then start g_ip_HN1_03
pcs constraint order start g_ip_HN1_03 then start g_secip_HN1_03
pcs constraint colocation add g_secip_HN1_03 with Slave SAPHana_HN1_HDB03-clone 5

# RHEL 7.x:
pcs constraint location g_ip_HN1_03 rule score=500 role=master hana_hn1_roles eq "master1:master:worker:master" and hana_hn1_clone_state eq PROMOTED
pcs constraint location g_secip_HN1_03 rule score=50  hana_hn1_roles eq 'master1:master:worker:master'
pcs constraint order promote  msl_SAPHana_HN1_HDB03 then start g_ip_HN1_03
pcs constraint order start g_ip_HN1_03 then start g_secip_HN1_03
pcs constraint colocation add g_secip_HN1_03 with Slave msl_SAPHana_HN1_HDB03 5

pcs property set maintenance-mode=false

Verifique se o status do cluster é ok, e se todos os recursos foram iniciados. O segundo IP virtual será executado no site secundário juntamente com o recurso secundário do SAP HANA.

# Example output from crm_mon
#Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
#
#Active resources:
#
#rsc_st_azure    (stonith:fence_azure_arm):      Started hana-s-mm
#Clone Set: fs_hana_shared_s1-clone [fs_hana_shared_s1]
#    Started: [ hana--s1-db1 hana-s1-db2 hana-s1-db3 ]
#Clone Set: fs_hana_shared_s2-clone [fs_hana_shared_s2]
#    Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
#Clone Set: hana_nfs_s1_active-clone [hana_nfs_s1_active]
#    Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ]
#Clone Set: hana_nfs_s2_active-clone [hana_nfs_s2_active]
#    Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
#Clone Set: SAPHanaTopology_HN1_HDB03-clone [SAPHanaTopology_HN1_HDB03]
#    Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
#Master/Slave Set: msl_SAPHana_HN1_HDB03 [SAPHana_HN1_HDB03]
#    Masters: [ hana-s1-db1 ]
#    Slaves: [ hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
#Resource Group: g_ip_HN1_03
#    nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hana-s1-db1
#    vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hana-s1-db1
#Resource Group: g_secip_HN1_03
#    secnc_HN1_03       (ocf::heartbeat:azure-lb):      Started hana-s2-db1
#    secvip_HN1_03      (ocf::heartbeat:IPaddr2):       Started hana-s2-db1

Na próxima seção, você pode encontrar o conjunto típico de testes de failover a serem executados.

Ao testar um cluster HANA configurado com um secundário habilitado para leitura, esteja ciente do seguinte comportamento do segundo IP virtual:

  • Quando o recurso de cluster SAPHana_HN1_HDB03 for movido para o site secundário (S2), o segundo IP virtual será movido para o outro site, hana-s1-db1. Se você configurou AUTOMATED_REGISTER="false"o , e a replicação do sistema HANA não é registrada automaticamente, o segundo IP virtual será executado no hana-s2-db1.

  • Quando você está testando a falha do servidor, os segundos recursos IP virtuais (secvip_HN1_03) e o recurso de porta do Balanceador de Carga do Azure (secnc_HN1_03) são executados no servidor primário, juntamente com os recursos IP virtuais primários. Enquanto o servidor secundário estiver inativo, os aplicativos conectados ao banco de dados HANA habilitado para leitura se conectarão ao banco de dados HANA primário. Este comportamento é esperado. Ele permite que os aplicativos conectados ao banco de dados HANA habilitado para leitura operem enquanto um servidor secundário não estiver disponível.

  • Durante failover e fallback, as conexões existentes para aplicativos que estão usando o segundo IP virtual para se conectar ao banco de dados HANA podem ser interrompidas.

Testar failover do SAP HANA

  1. Antes de iniciar um teste, verifique o status de replicação do cluster e do sistema SAP HANA.

    1. Verifique se não há ações de cluster com falha.

      #Verify that there are no failed cluster actions
      pcs status
      # Example
      #Stack: corosync
      #Current DC: hana-s-mm (version 1.1.19-8.el7_6.5-c3c624ea3d) - partition with quorum
      #Last updated: Thu Sep 24 06:00:20 2020
      #Last change: Thu Sep 24 05:59:17 2020 by root via crm_attribute on hana-s1-db1
      #
      #7 nodes configured
      #45 resources configured
      #
      #Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
      #
      #Active resources:
      #
      #rsc_st_azure    (stonith:fence_azure_arm):      Started hana-s-mm
      #Clone Set: fs_hana_shared_s1-clone [fs_hana_shared_s1]
      #    Started: [ hana--s1-db1 hana-s1-db2 hana-s1-db3 ]
      #Clone Set: fs_hana_shared_s2-clone [fs_hana_shared_s2]
      #    Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
      #Clone Set: hana_nfs_s1_active-clone [hana_nfs_s1_active]
      #    Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ]
      #Clone Set: hana_nfs_s2_active-clone [hana_nfs_s2_active]
      #    Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
      #Clone Set: SAPHanaTopology_HN1_HDB03-clone [SAPHanaTopology_HN1_HDB03]
      #    Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
      #Master/Slave Set: msl_SAPHana_HN1_HDB03 [SAPHana_HN1_HDB03]
      #    Masters: [ hana-s1-db1 ]
      #    Slaves: [ hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
      #Resource Group: g_ip_HN1_03
      #    nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hana-s1-db1
      #    vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hana-s1-db1
      
    2. Verifique se a replicação do sistema SAP HANA está sincronizada.

      # Verify HANA HSR is in sync
      sudo su - hn1adm -c "python /usr/sap/HN1/HDB03/exe/python_support/systemReplicationStatus.py"
      #| Database | Host        | Port  | Service Name | Volume ID | Site ID | Site Name | Secondary     | Secondary| Secondary | Secondary | Secondary     | Replication | Replication | Replication    |
      #|          |             |       |              |           |         |           | Host          | Port     | Site ID   | Site Name | Active Status | Mode        | Status      | Status Details |
      #| -------- | ----------- | ----- | ------------ | --------- | ------- | --------- | ------------- | -------- | --------- | --------- | ------------- | ----------- | ----------- | -------------- |
      #| HN1      | hana-s1-db3 | 30303 | indexserver  |         5 |       2 | HANA_S1   | hana-s2-db3 |     30303  |         1 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
      #| HN1      | hana-s1-db2 | 30303 | indexserver  |         4 |       2 | HANA_S1   | hana-s2-db2 |     30303  |         1 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |  
      #| SYSTEMDB | hana-s1-db1 | 30301 | nameserver   |         1 |       2 | HANA_S1   | hana-s2-db1 |     30301  |         1 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
      #| HN1      | hana-s1-db1 | 30307 | xsengine     |         2 |       2 | HANA_S1   | hana-s2-db1 |     30307  |         1 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
      #| HN1      | hana-s1-db1 | 30303 | indexserver  |         3 |       2 | HANA_S1   | hana-s2-db1 |     30303  |         1 | HANA_S2   | YES           | SYNC        | ACTIVE      |                |
      
      #status system replication site "1": ACTIVE
      #overall system replication status: ACTIVE
      
      #Local System Replication State
      #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      
      #mode: PRIMARY
      #site id: 1
      #site name: HANA_S1
      
  2. Verifique a configuração do cluster para um cenário de falha, quando um nó perde o acesso ao compartilhamento NFS (/hana/shared).

    Os agentes de recursos do SAP HANA dependem de binários, armazenados em /hana/shared, para executar operações durante o failover. O sistema /hana/shared de arquivos é montado sobre NFS na configuração apresentada. Um teste que pode ser executado é criar uma regra de firewall temporária para bloquear o acesso ao sistema de arquivos montado no /hana/shared NFS em uma das VMs do site primário. Essa abordagem valida que o cluster fará failover se o acesso a /hana/shared for perdido no site de replicação do sistema ativo.

    Resultado esperado: Quando você bloqueia o acesso ao /hana/shared sistema de arquivos montado no NFS em uma das VMs do site primário, a operação de monitoramento que executa a operação de leitura/gravação no sistema de arquivos falhará, pois não é possível acessar o sistema de arquivos e acionará o failover de recursos HANA. O mesmo resultado é esperado quando o nó HANA perde o acesso ao compartilhamento NFS.

    Você pode verificar o estado dos recursos do cluster executando crm_mon ou pcs status. Estado do recurso antes de iniciar o teste:

    # Output of crm_mon
    #7 nodes configured
    #45 resources configured
    
    #Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    #
    #Active resources:
    
    #rsc_st_azure    (stonith:fence_azure_arm):      Started hana-s-mm
    # Clone Set: fs_hana_shared_s1-clone [fs_hana_shared_s1]
    #    Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ]
    # Clone Set: fs_hana_shared_s2-clone [fs_hana_shared_s2]
    #     Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Clone Set: hana_nfs_s1_active-clone [hana_nfs_s1_active]
    #     Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ]
    # Clone Set: hana_nfs_s2_active-clone [hana_nfs_s2_active]
    #     Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Clone Set: SAPHanaTopology_HN1_HDB03-clone [SAPHanaTopology_HN1_HDB03]
    #     Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Master/Slave Set: msl_SAPHana_HN1_HDB03 [SAPHana_HN1_HDB03]
    #     Masters: [ hana-s1-db1 ]
    #     Slaves: [ hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Resource Group: g_ip_HN1_03
    #     nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hana-s1-db1
    #     vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hana-s1-db1
    

    Para simular falhas para /hana/shared:

    • Se estiver usando NFS no ANF, primeiro confirme o endereço IP do /hana/shared volume ANF no site primário. Você pode fazer isso executando df -kh|grep /hana/shared.
    • Se estiver usando NFS nos Arquivos do Azure, primeiro determine o endereço IP do ponto de extremidade privado da sua conta de armazenamento.

    Em seguida, configure uma regra de firewall temporária para bloquear o acesso ao endereço IP do sistema de /hana/shared arquivos NFS executando o seguinte comando em uma das VMs primárias do site de replicação do sistema HANA.

    Neste exemplo, o comando foi executado em hana-s1-db1 para o volume /hana/sharedANF.

    iptables -A INPUT -s 10.23.1.7 -j DROP; iptables -A OUTPUT -d 10.23.1.7 -j DROP
    

    A VM HANA à qual perdeu o acesso /hana/shared deve reiniciar ou parar, dependendo da configuração do cluster. Os recursos do cluster são migrados para o outro site de replicação do sistema HANA.

    Se o cluster não tiver sido iniciado na VM que foi reiniciada, inicie o cluster executando o seguinte:

    # Start the cluster 
    pcs cluster start
    

    Quando o cluster é iniciado, o sistema /hana/shared de arquivos é montado automaticamente. Se você definir AUTOMATED_REGISTER="false"o , precisará configurar a replicação do sistema SAP HANA no local secundário. Nesse caso, você pode executar esses comandos para reconfigurar o SAP HANA como secundário.

    # Execute on the secondary 
    su - hn1adm
    # Make sure HANA is not running on the secondary site. If it is started, stop HANA
    sapcontrol -nr 03 -function StopWait 600 10
    # Register the HANA secondary site
    hdbnsutil -sr_register --name=HANA_S1 --remoteHost=hana-s2-db1 --remoteInstance=03 --replicationMode=sync
    # Switch back to root and clean up failed resources
    pcs resource cleanup SAPHana_HN1_HDB03
    

    O estado dos recursos, após o teste:

    # Output of crm_mon
    #7 nodes configured
    #45 resources configured
    
    #Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    
    #Active resources:
    
    #rsc_st_azure    (stonith:fence_azure_arm):      Started hana-s-mm
    # Clone Set: fs_hana_shared_s1-clone [fs_hana_shared_s1]
    #    Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ]
    # Clone Set: fs_hana_shared_s2-clone [fs_hana_shared_s2]
    #     Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Clone Set: hana_nfs_s1_active-clone [hana_nfs_s1_active]
    #     Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 ]
    # Clone Set: hana_nfs_s2_active-clone [hana_nfs_s2_active]
    #     Started: [ hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Clone Set: SAPHanaTopology_HN1_HDB03-clone [SAPHanaTopology_HN1_HDB03]
    #     Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ]
    # Master/Slave Set: msl_SAPHana_HN1_HDB03 [SAPHana_HN1_HDB03]
    #     Masters: [ hana-s2-db1 ]
    #     Slaves: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db2 hana-s2-db3 ]
    # Resource Group: g_ip_HN1_03
    #     nc_HN1_03  (ocf::heartbeat:azure-lb):      Started hana-s2-db1
    #     vip_HN1_03 (ocf::heartbeat:IPaddr2):       Started hana-s2-db1
    

É uma boa ideia testar completamente a configuração do cluster SAP HANA, executando também os testes documentados em HA for SAP HANA em VMs do Azure no RHEL.

Próximos passos