Elevada disponibilidade para o sistema de escalamento horizontal SAP HANA com HSR no SUSE Linux Enterprise Server
Este artigo descreve como implantar um sistema SAP HANA altamente disponível em uma configuração de expansão com replicação de sistema HANA (HSR) e Pacemaker em máquinas virtuais (VMs) do Azure SUSE Linux Enterprise Server. 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.
Nas configurações de exemplo, comandos de instalação e assim por diante, a instância HANA é 03 e o ID do sistema HANA é HN1.
Antes de começar, consulte as seguintes notas e documentos do SAP:
- Documentação dos Arquivos NetApp do Azure
- Documentação do Azure Files
- O SAP Note 1928533 inclui:
- Uma lista de tamanhos de VM do Azure com suporte para a implantação do software SAP
- Informações de capacidade importantes para tamanhos de VM do Azure
- Software SAP suportado, sistema operacional (SO) e combinações de banco de dados
- A versão necessária do kernel SAP para Windows e Linux no Microsoft Azure
- SAP Nota 2015553: Lista os pré-requisitos para implantações de software SAP suportadas pelo SAP no Azure
- SAP Nota 2205917: Contém as configurações recomendadas do sistema operacional para o SUSE Linux Enterprise Server for SAP Applications
- SAP Note 1944799: Contém diretrizes SAP para aplicativos SUSE Linux Enterprise Server for SAP
- SAP Nota 2178632: Contém informações detalhadas sobre todas as métricas de monitoramento relatadas para SAP no Azure
- SAP Nota 2191498: Contém a versão necessária do SAP Host Agent para Linux no Azure
- SAP Nota 2243692: Contém informações sobre o licenciamento SAP no Linux no Azure
- SAP Nota 1984787: Contém informações gerais sobre o SUSE Linux Enterprise Server 12
- SAP Nota 1999351: Contém informações adicionais de solução de problemas para a Extensão de Monitoramento Avançado do Azure para SAP
- SAP Note 1900823: Contém informações sobre os requisitos de armazenamento do SAP HANA
- SAP Community Wiki: Contém todas as notas SAP necessárias para Linux
- Planejamento e implementação de Máquinas Virtuais do Azure para SAP no Linux
- Implantação de Máquinas Virtuais do Azure para SAP no Linux
- Implantação de DBMS de Máquinas Virtuais do Azure para SAP no Linux
- Guias de práticas recomendadas do SUSE SAP HA: Contém todas as informações necessárias para configurar o NetWeaver High Availability e o SAP HANA System Replication no local (para ser usado como uma linha de base geral; eles fornecem informações muito mais detalhadas)
- Notas de versão do SUSE High Availability Extension 12 SP5
- Tratamento de compartilhamento NFS com falha no cluster SUSE HA para replicação do sistema HANA
- Volumes NFS v4.1 no Azure NetApp Files para SAP HANA
Descrição geral
Um método para obter alta disponibilidade do HANA para instalações de expansão do HANA é configurar a replicação do sistema HANA e proteger a solução com o cluster Pacemaker para permitir failover automático. Quando um nó ativo falha, o cluster faz failover dos recursos HANA para o outro site.
A configuração apresentada mostra três nós HANA em cada local, além do nó de fabricante majoritário para evitar o cenário de cérebro dividido. As instruções podem ser adaptadas para incluir mais VMs como nós de banco de dados HANA.
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.
Aviso
Não há suporte para implantação /hana/data
e /hana/log
em NFS em Arquivos do Azure.
No diagrama anterior, três sub-redes são 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 entre nós HANA -
inter
10.23.1.128/26 - para replicação do sistema HANA -
hsr
10.23.1.192/26
Como /hana/data
e /hana/log
são implantados em discos locais, não é necessário implantar sub-rede separada 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.
Preparar 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
Implante as VMs do Azure.
Para a configuração apresentada neste documento, 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 SAP HANA Hardware. Ao implantar os nós de banco de dados HANA, certifique-se de que Rede acelerada esteja selecionado.
Para o nó maker majoritário, você pode implantar uma VM pequena, pois essa VM não executa nenhum dos recursos do SAP HANA. A VM do criador majoritário é usada na configuração do cluster para obter 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. Nestas instruções para simplificar, consultaremos as interfaces de rede primárias geradas automaticamente, que são anexadas àclient
sub-rede de rede virtual do Azure como hana-s1-db1-client, hana-s1-db2-client, hana-s1-db3-client e assim por diante.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, acesse o site de plataformas IaaS certificadas pelo SAP HANA. Clique nos detalhes do tipo de VM listado para obter a lista completa das versões do sistema operacional suportadas pelo SAP HANA para esse tipo.
- Se você optar por implantar
/hana/shared
em NFS nos Arquivos do Azure, recomendamos implantar no SLES 15 SP2 e superior.
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-inter
inter
).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-hsr
hsr
).Anexe as interfaces de rede virtual recém-criadas às máquinas virtuais correspondentes:
- Vá para a máquina virtual no portal do Azure.
- 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.
- No painel Visão geral, selecione Parar para desalocar a máquina virtual.
- 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
hsr
e sub-redes. - Selecione Guardar.
- 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).
- Deixe as máquinas virtuais no estado interrompido por enquanto. Em seguida, habilitaremos a rede acelerada para todas as interfaces de rede recém-conectadas.
Habilite a rede acelerada para as interfaces de rede adicionais para as
inter
sub-redes ehsr
executando as seguintes etapas:Abra o Azure Cloud Shell no portal do Azure.
Execute os seguintes comandos para habilitar a rede acelerada para as interfaces de rede adicionais, que estão conectadas às
inter
sub-redes ehsr
.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
Iniciar 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:
- 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.
- Pool de back-end: crie um pool de back-end e adicione VMs de banco de dados.
- 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 numberOfProbes
de 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
Quando VMs sem endereços IP públicos são colocadas no pool de back-end do balanceador de carga interno (sem endereço IP público) Standard do Azure, não haverá conectividade de saída com a Internet, a menos que uma configuração adicional seja executada para permitir o roteamento para pontos finais públicos. Para obter detalhes sobre como obter conectividade de saída, 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. Habilitar carimbos de data/hora TCP fará com que as sondas de integridade falhem. Defina o parâmetro
net.ipv4.tcp_timestamps
como0
. Para obter detalhes, consulte Sondas de integridade do balanceador de carga e Nota 2382421 SAP. - Para evitar que o saptune altere o valor definido
net.ipv4.tcp_timestamps
manualmente de0
volta para1
, atualize a versão do saptune para 3.1.1 ou superior. Para obter mais detalhes, consulte saptune 3.1.1 – Preciso atualizar?.
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 volumes de Arquivos NetApp do Azure para o /hana/shared
sistema de arquivos. Você precisará 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, os seguintes volumes de Arquivos NetApp do Azure foram usados:
- 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, incluindo o criador da maioria
- [AH]: Aplicável a todos os nós de banco de dados HANA
- [M]: Aplicável apenas 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 executando as seguintes etapas:
[A] Mantenha os arquivos host nas máquinas virtuais. Inclua entradas para todas as sub-redes. As seguintes entradas foram adicionadas para
/etc/hosts
este exemplo.# Client subnet 10.23.0.19 hana-s1-db1 10.23.0.20 hana-s1-db2 10.23.0.21 hana-s1-db3 10.23.0.22 hana-s2-db1 10.23.0.23 hana-s2-db2 10.23.0.24 hana-s2-db3 10.23.0.25 hana-s-mm # Internode subnet 10.23.1.132 hana-s1-db1-inter 10.23.1.133 hana-s1-db2-inter 10.23.1.134 hana-s1-db3-inter 10.23.1.135 hana-s2-db1-inter 10.23.1.136 hana-s2-db2-inter 10.23.1.137 hana-s2-db3-inter # HSR subnet 10.23.1.196 hana-s1-db1-hsr 10.23.1.197 hana-s1-db2-hsr 10.23.1.198 hana-s1-db3-hsr 10.23.1.199 hana-s2-db1-hsr 10.23.1.200 hana-s2-db2-hsr 10.23.1.201 hana-s2-db3-hsr
[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 configuração do sysctl para permitir que o SAP Host Agent gerencie os intervalos de portas. Para obter mais informações, consulte SAP note 2382421.
[R] A SUSE fornece agentes de recursos especiais para SAP HANA e, por padrão, agentes para scale-up do SAP HANA são instalados. Desinstale os pacotes para scale-up, se instalados, e instale os pacotes para o cenário de scale-out do SAP HANA. A etapa precisa ser executada em todas as VMs de cluster, incluindo o fabricante majoritário.
Nota
SAPHanaSR-ScaleOut versão 0.181 ou superior deve ser instalado.
# Uninstall scale-up packages and patterns sudo zypper remove patterns-sap-hana sudo zypper remove SAPHanaSR SAPHanaSR-doc yast2-sap-ha # Install the scale-out packages and patterns sudo zypper in SAPHanaSR-ScaleOut SAPHanaSR-ScaleOut-doc sudo zypper in -t pattern ha_sles
[AH] Prepare as VMs - aplique as configurações recomendadas por 2205917 de observação SAP para o SUSE Linux Enterprise Server for SAP Applications.
Preparar os sistemas de arquivos
Você optou por implantar os diretórios compartilhados SAP 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.
[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
[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
[AH] Crie pontos de montagem para os volumes do banco de dados HANA.
mkdir -p /hana/shared
[AH] Verifique a configuração de domínio NFS. Verifique se o domínio está configurado como o domínio padrão dos Arquivos NetApp do Azure, ou seja,
defaultv4iddomain.com
e se o mapeamento está definido como ninguém.
Esta etapa só é necessária se estiver usando o Azure NetAppFiles NFSv4.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 (ou seja, a VM) e o servidor NFS, ou seja, a configuração do Azure NetApp, as permissões para arquivos nos volumes NetApp do Azure montados nas VMs serão exibidas comonobody
.sudo cat /etc/idmapd.conf # Example [General] Domain = defaultv4iddomain.com [Mapping] Nobody-User = nobody Nobody-Group = nobody
[AH] Verificar
nfs4_disable_idmapping
. Deve ser definido como Y. Para criar a estrutura de diretórios ondenfs4_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 / 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.23.1.7:/HN1-share-s1 /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
[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 10.23.1.7:/HN1-shared-s1 /hana/shared nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 # Mount all volumes sudo mount -a
[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 entry 10.23.1.7:/HN1-shared-s2 /hana/shared nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 # Mount the volume sudo mount -a
[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 # 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.19,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.22,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.
[AH] Crie pontos de montagem para os volumes do banco de dados HANA.
mkdir -p /hana/shared
[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
[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
[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, os sistemas /hana/data
de arquivos e /hana/log
são implantados em disco gerenciado e são conectados localmente a cada HANA DB VM.
Você precisará executar as etapas 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 anexados, que são usados para criar dois volumes.
[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
[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
[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
[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 e 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 documento, 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 é de 256 KiB. Um volume físico é usado para o volume de log, portanto, nenhum-i
ou-I
switches são explicitamente usados 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 usar mais de um volume físico para cada volume de dados ou de log. Use a-I
opção para especificar o tamanho da faixa ao criar um volume listrado.
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
[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
[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
Criar um cluster de marcapasso
Siga as etapas em Configurando o Pacemaker no SUSE Linux Enterprise Server no Azure para criar um cluster Pacemaker básico para este servidor HANA. Inclua todas as máquinas virtuais, incluindo o criador majoritário no cluster.
Importante
Não defina quorum expected-votes
como 2, pois 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.
Instalação
Neste exemplo para implantar o SAP HANA na configuração de expansão com HSR em VMs do Azure, usamos o HANA 2.0 SP5.
Preparar para a instalação do HANA
[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. Executar como
root
comandopasswd
.[1,2] Alterar as permissões em
/hana/shared
chmod 775 /hana/shared
[1] Verifique se você pode fazer login via SSH para as VMs de banco de dados HANA neste site hana-s1-db2 e hana-s1-db3, sem ser solicitada uma senha. Se esse não for o caso, troque chaves ssh conforme descrito em Habilitar acesso SSH via chave pública.
ssh root@hana-s1-db2 ssh root@hana-s1-db3
[2] Verifique se você pode fazer login via SSH para as VMs HANA DB neste site hana-s2-db2 e hana-s2-db3, sem ser solicitada uma senha.
Se não for esse o caso, troque as chaves ssh.ssh root@hana-s2-db2 ssh root@hana-s2-db3
[AH] Instale pacotes adicionais, que são necessários para o HANA 2.0 SP4 e superior. Para obter mais informações, consulte SAP Note 2593824 para sua versão do SLES.
# In this example, using SLES12 SP5 sudo zypper install libgcc_s1 libstdc++6 libatomic1
Instalação do HANA no primeiro nó em cada local
[1] Instale o SAP HANA seguindo as instruções no guia de instalação e atualização do SAP HANA 2.0. Nas instruções a seguir, mostramos a instalação do SAP HANA no primeiro nó do SITE 1.
a. Inicie o programa hdblcm a
root
partir do diretório do software de instalação HANA. Use ointernal_network
parâmetro e passe o espaço de endereço para a sub-rede, que é usado para a comunicação interna entre nós HANA../hdblcm --internal_network=10.23.1.128/26
b. No prompt, insira os seguintes valores:
- Para 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 Nome do Host Local: pressione Enter para aceitar o padrão
- Para Deseja adicionar hosts ao sistema?: digite n
- Para SAP HANA System ID: insira HN1
- Para o 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 de 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
- Para 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) Senha: digite a senha
- Para Confirmar senha do usuário do SAP Host Agent (sapadm): digite a senha
- Para a palavra-passe do administrador do sistema (hn1adm): introduza a palavra-passe
- Para o diretório inicial do administrador do sistema [/usr/sap/HN1/home]: pressione Enter para aceitar o padrão
- Para o Shell de Login do Administrador do Sistema [/bin/sh]: pressione Enter para aceitar o padrão
- Para o ID de usuário do administrador do sistema [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
- Para Deseja continuar (s/n): valide o resumo e, se tudo parecer bom, digite y
[2] Repita a etapa anterior para instalar o SAP HANA no primeiro nó do SITE 2.
[1,2] Verificar global.ini
Exiba global.ini e verifique se a configuração para a comunicação interna entre nós do SAP HANA está em vigor. Verifique a seção de comunicação . Ele deve ter o espaço de endereço para a
inter
sub-rede elisteninterface
deve ser definido como.internal
. Verifique a seção internal_hostname_resolution . 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.132 = hana-s1-db1 10.23.1.133 = hana-s1-db2 10.23.1.134 = hana-s1-db3
[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
[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
[1,2] Verifique se a interface do cliente utilizará 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.22"
Para obter informações sobre como verificar a configuração, consulte SAP Note 2183363 - Configuration of SAP HANA internal network.
[AH] Altere as permissões nos diretórios de dados e log para evitar erros de instalação do HANA.
sudo chmod o+w -R /hana/data /hana/log
[1] Instale os nós HANA secundários. As instruções de exemplo nesta etapa são para o SITE 1.
a. Inicie o programa hdblcm residente como
root
.cd /hana/shared/HN1/hdblcm ./hdblcm
b. No prompt, insira os seguintes valores:
- Para Escolha uma ação: digite 2 (para adicionar hosts)
- Para inserir nomes de host separados por vírgulas para adicionar: hana-s1-db2, hana-s1-db3
- Para componentes adicionais para instalação: insira 2, 3
- Para Enter Root Root User Name [root]: pressione Enter para aceitar o padrão
- Para funções selecionadas para host 'hana-s1-db2' [1]: 1 (para trabalhador)
- Para Enter Host Failover Group for host 'hana-s1-db2' [default]: pressione Enter para aceitar o padrão
- Para inserir o número da partição de armazenamento para o host 'hana-s1-db2' [<<atribuir automaticamente>>]: 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 funções selecionadas para host 'hana-s1-db3' [1]: 1 (para trabalhador)
- Para Enter Host Failover Group for host 'hana-s1-db3' [default]: pressione Enter para aceitar o padrão
- Para Digite o número da partição de armazenamento para o host 'hana-s1-db3' [<<atribuir automaticamente>>]: pressione Enter para aceitar o padrão
- Para Enter Worker Group para host 'hana-s1-db3' [default]: pressione Enter para aceitar o padrão
- Para a 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
- Para Deseja continuar (s/n): valide o resumo e, se tudo parecer bom, digite y
[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
[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] Configurar 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
[1] Verificar o estado da replicação
Verifique o status da replicação e aguarde até que todos os bancos de dados estejam sincronizados.
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
[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.
Pare o HANA em ambos os sites
sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StopSystem HDB
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.196 = hana-s1-db1 10.23.1.197 = hana-s1-db2 10.23.1.198 = hana-s1-db3 10.23.1.199 = hana-s2-db1 10.23.1.200 = hana-s2-db2 10.23.1.201 = hana-s2-db3
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 nome de host para replicação do sistema.
Criar recursos do sistema de arquivos
Crie um recurso de cluster de sistema de arquivos fictício, que monitorará e relatará falhas, caso haja um problema para acessar o sistema /hana/shared
de arquivos montado no NFS. Isso permite que o cluster acione o failover, caso haja um problema para acessar /hana/shared
o . Para obter mais informações, consulte Manipulando compartilhamento NFS com falha no cluster SUSE HA para replicação do sistema HANA
[1] Coloque o pacemaker em modo de manutenção, em preparação para a criação dos recursos do cluster HANA.
crm configure property maintenance-mode=true
[1,2] Crie o diretório no sistema de arquivos montado no NFS /hana/shared, que será usado no recurso especial de monitoramento do sistema de arquivos. Os diretórios precisam ser criados em ambos os sites.
mkdir -p /hana/shared/HN1/check
[AH] Crie o diretório, que será usado para montar o recurso especial de monitoramento do sistema de arquivos. O diretório precisa ser criado em todos os nós de cluster HANA.
mkdir -p /hana/check
[1] Crie os recursos de cluster do sistema de ficheiros.
crm configure primitive fs_HN1_HDB03_fscheck Filesystem \ params device="/hana/shared/HN1/check" \ directory="/hana/check" fstype=nfs4 \ options="bind,defaults,rw,hard,proto=tcp,noatime,nfsvers=4.1,lock" \ 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 crm configure clone cln_fs_HN1_HDB03_fscheck fs_HN1_HDB03_fscheck \ meta clone-node-max=1 interleave=true crm configure location loc_cln_fs_HN1_HDB03_fscheck_not_on_mm \ cln_fs_HN1_HDB03_fscheck -inf: hana-s-mm
OCF_CHECK_LEVEL=20
é 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.on-fail=fence
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.
Implementar ganchos HANA HA SAPHanaSrMultiTarget e susChkSrv
Esta etapa importante é otimizar a integração com o cluster e a deteção quando um failover de cluster é possível. É altamente recomendável configurar o gancho Python SAPHanaSrMultiTarget. Para HANA 2.0 SP5 e superior, recomenda-se a implementação de ganchos SAPHanaSrMultiTarget e susChkSrv.
Nota
O provedor de HA SAPHanaSrMultiTarget substitui o SAPHanaSR para expansão HANA. O SAPHanaSR foi descrito na versão anterior deste documento.
Consulte a postagem do blog da SUSE sobre as alterações com o novo gancho HANA HA.
As etapas fornecidas para o gancho SAPHanaSrMultiTarget são para uma nova instalação. A atualização de um ambiente existente do SAPHanaSR para o provedor SAPHanaSrMultiTarget requer várias alterações e NÃO são descritas neste documento. Se o ambiente existente não usar um terceiro local para recuperação de desastres e a replicação do sistema HANA de vários destinos não for usada, o provedor de HA SAPHanaSR poderá permanecer em uso.
O SusChkSrv estende a funcionalidade do principal provedor de HA SAPHanaSrMultiTarget. Ele atua na situação em que o processo HANA hdbindexserver falha. Se um único processo falhar, normalmente o HANA tenta reiniciá-lo. Reiniciar o processo do servidor de indexação pode levar muito tempo, durante o qual o banco de dados HANA não responde. Com susChkSrv implementado, uma ação imediata e configurável é executada, em vez de esperar no processo hdbindexserver para reiniciar no mesmo nó. Na expansão do HANA, o susChkSrv atua para cada VM HANA de forma independente. A ação configurada matará o HANA ou cercará a VM afetada, o que dispara um failover no período de tempo limite configurado.
O SUSE SLES 15 SP1 ou superior é necessário para a operação de ambos os ganchos HA HANA. A tabela a seguir mostra outras dependências.
Gancho SAP HANA HA | Versão HANA necessária | SAPHanaSR-ScaleOut necessário |
---|---|---|
SAPHanaSrMultiTarget | HANA 2.0 SPS4 ou superior | 0,180 ou superior |
susChkSrv | HANA 2.0 SPS5 ou superior | 0.184.1 ou superior |
Etapas para implementar ambos os ganchos:
[1,2] Pare o HANA em ambos os locais de replicação do sistema. Executar como <sid>adm:
sapcontrol -nr 03 -function StopSystem
[1,2] Ajuste
global.ini
em cada local de cluster. Se os pré-requisitos para o gancho susChkSrv não forem atendidos, todo o bloco[ha_dr_provider_suschksrv]
não deverá ser configurado.
Você pode ajustar o comportamento do susChkSrv com o parâmetro action_on_lost. Os valores válidos são[ ignore | stop | kill | fence ]
.# add to global.ini on both sites. Do not copy global.ini between sites. [ha_dr_provider_saphanasrmultitarget] provider = SAPHanaSrMultiTarget path = /usr/share/SAPHanaSR-ScaleOut execution_order = 1 [ha_dr_provider_suschksrv] provider = susChkSrv path = /usr/share/SAPHanaSR-ScaleOut execution_order = 3 action_on_lost = kill [trace] ha_dr_saphanasrmultitarget = info
O local padrão dos ganchos HA conforme fornecidos pela SUSE é /usr/share/SAPHanaSR-ScaleOut. Usar o local padrão traz um benefício, que o código de gancho python é atualizado automaticamente através de atualizações do sistema operacional ou do pacote e é usado pelo HANA na próxima reinicialização. Com um caminho próprio opcional, como /hana/shared/myHooks, você pode desacoplar as atualizações do sistema operacional da versão de gancho usada.
[AH] O cluster requer configuração de sudoers nos nós do cluster para <sid>adm. Neste exemplo, isso é conseguido criando um novo arquivo. Execute os comandos como
root
adaptar os valores de hn1 com SID minúsculo correto.cat << EOF > /etc/sudoers.d/20-saphana # SAPHanaSR-ScaleOut needs for HA/DR hook scripts so1adm ALL=(ALL) NOPASSWD: /usr/sbin/crm_attribute -n hana_hn1_site_srHook_* so1adm ALL=(ALL) NOPASSWD: /usr/sbin/crm_attribute -n hana_hn1_gsh * so1adm ALL=(ALL) NOPASSWD: /usr/sbin/SAPHanaSR-hookHelper --sid=hn1 * EOF
[1,2] Inicie o SAP HANA em ambos os locais de replicação. Execute como <sid>adm.
sapcontrol -nr 03 -function StartSystem
[A] Verifique se a instalação do gancho está ativa em todos os nós do cluster. Execute como <sid>adm.
cdtrace grep HADR.*load.*SAPHanaSrMultiTarget nameserver_*.trc | tail -3 # Example output # nameserver_hana-s1-db1.31001.000.trc:[14162]{-1}[-1/-1] 2023-01-26 12:53:55.728027 i ha_dr_provider HADRProviderManager.cpp(00083) : loading HA/DR Provider 'SAPHanaSrMultiTarget' from /usr/share/SAPHanaSR-ScaleOut/ grep SAPHanaSr.*init nameserver_*.trc | tail -3 # Example output # nameserver_hana-s1-db1.31001.000.trc:[17636]{-1}[-1/-1] 2023-01-26 16:30:19.256705 i ha_dr_SAPHanaSrM SAPHanaSrMultiTarget.py(00080) : SAPHanaSrMultiTarget.init() CALLING CRM: <sudo /usr/sbin/crm_attribute -n hana_hn1_gsh -v 2.2 -l reboot> rc=0 # nameserver_hana-s1-db1.31001.000.trc:[17636]{-1}[-1/-1] 2023-01-26 16:30:19.256739 i ha_dr_SAPHanaSrM SAPHanaSrMultiTarget.py(00081) : SAPHanaSrMultiTarget.init() Running srHookGeneration 2.2, see attribute hana_hn1_gsh too
Verifique a instalação do gancho susChkSrv. Execute como <sid>adm.
cdtrace egrep '(LOST:|STOP:|START:|DOWN:|init|load|fail)' nameserver_suschksrv.trc # Example output # 2023-01-19 08:23:10.581529 [1674116590-10005] susChkSrv.init() version 0.7.7, parameter info: action_on_lost=fence stop_timeout=20 kill_signal=9 # 2023-01-19 08:23:31.553566 [1674116611-14022] START: indexserver event looks like graceful tenant start # 2023-01-19 08:23:52.834813 [1674116632-15235] START: indexserver event looks like graceful tenant start (indexserver started)
Criar recursos de cluster do SAP HANA
[1] Crie os recursos do cluster HANA. Execute os seguintes comandos como
root
.Verifique se o cluster já está no modo de manutenção.
Em seguida, crie o recurso de topologia HANA.
sudo crm configure primitive rsc_SAPHanaTopology_HN1_HDB03 ocf:suse:SAPHanaTopology \ op monitor interval="10" timeout="600" \ op start interval="0" timeout="600" \ op stop interval="0" timeout="300" \ params SID="HN1" InstanceNumber="03" sudo crm configure clone cln_SAPHanaTopology_HN1_HDB03 rsc_SAPHanaTopology_HN1_HDB03 \ meta clone-node-max="1" target-role="Started" interleave="true"
Em seguida, crie o recurso de instância HANA.
Nota
Este artigo contém referências a termos que a Microsoft já não utiliza. Quando estes termos forem removidos do software, iremos removê-los deste artigo.
sudo crm configure primitive rsc_SAPHana_HN1_HDB03 ocf:suse:SAPHanaController \ 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" \ params SID="HN1" InstanceNumber="03" PREFER_SITE_TAKEOVER="true" \ DUPLICATE_PRIMARY_TIMEOUT="7200" AUTOMATED_REGISTER="false" sudo crm configure ms msl_SAPHana_HN1_HDB03 rsc_SAPHana_HN1_HDB03 \ meta clone-node-max="1" master-max="1" interleave="true"
Importante
Recomendamos como prática recomendada que você defina apenas AUTOMATED_REGISTER como não, ao executar testes de failover completos, para evitar que a instância primária com falha se registre automaticamente como secundária. Depois que os testes de failover forem concluídos com êxito, defina AUTOMATED_REGISTER como sim, para que, após a aquisição, a replicação do sistema possa ser retomada automaticamente.
Crie IP virtual e recursos associados.
sudo crm configure primitive rsc_ip_HN1_HDB03 ocf:heartbeat:IPaddr2 \ op monitor interval="10s" timeout="20s" \ params ip="10.23.0.27" sudo crm configure primitive rsc_nc_HN1_HDB03 azure-lb port=62503 \ op monitor timeout=20s interval=10 \ meta resource-stickiness=0 sudo crm configure group g_ip_HN1_HDB03 rsc_ip_HN1_HDB03 rsc_nc_HN1_HDB03
Criar as restrições de cluster
# Colocate the IP with HANA master sudo crm configure colocation col_saphana_ip_HN1_HDB03 4000: g_ip_HN1_HDB03:Started \ msl_SAPHana_HN1_HDB03:Master # Start HANA Topology before HANA instance sudo crm configure order ord_SAPHana_HN1_HDB03 Optional: cln_SAPHanaTopology_HN1_HDB03 \ msl_SAPHana_HN1_HDB03 # HANA resources don't run on the majority maker node sudo crm configure location loc_SAPHanaCon_not_on_majority_maker msl_SAPHana_HN1_HDB03 -inf: hana-s-mm sudo crm configure location loc_SAPHanaTop_not_on_majority_maker cln_SAPHanaTopology_HN1_HDB03 -inf: hana-s-mm
[1] Configurar propriedades de cluster adicionais
sudo crm configure rsc_defaults resource-stickiness=1000 sudo crm configure rsc_defaults migration-threshold=50
[1] Coloque o cluster fora do modo de manutenção. Verifique se o status do cluster está ok e se todos os recursos foram iniciados.
# Cleanup any failed resources - the following command is example crm resource cleanup rsc_SAPHana_HN1_HDB03 # Place the cluster out of maintenance mode sudo crm configure property maintenance-mode=false
[1] Verifique a comunicação entre o gancho HANA HA e o cluster, mostrando o status SOK para SID e ambos os locais de replicação com status P(rimary) ou S(econdary).
sudo /usr/sbin/SAPHanaSR-showAttr # Expected result # Global cib-time maintenance prim sec sync_state upd # --------------------------------------------------------------------- # HN1 Fri Jan 27 10:38:46 2023 false HANA_S1 - SOK ok # # Sites lpt lss mns srHook srr # ----------------------------------------------- # HANA_S1 1674815869 4 hana-s1-db1 PRIM P # HANA_S2 30 4 hana-s2-db1 SWAIT S
Nota
Os tempos limite na configuração acima são apenas exemplos e podem precisar ser adaptados à configuração específica do HANA. Por exemplo, pode ser necessário aumentar o tempo limite de início, se demorar mais para iniciar o banco de dados do SAP HANA.
Testar failover do SAP HANA
Nota
Este artigo contém referências a termos que a Microsoft já não utiliza. Quando estes termos forem removidos do software, iremos removê-los deste artigo.
Antes de iniciar um teste, verifique o status de replicação do cluster e do sistema SAP HANA.
a. Verifique se não há ações de cluster com falha
#Verify that there are no failed cluster actions crm status # Example #7 nodes configured #24 resource instances configured # #Online: [ hana-s-mm hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # #Full list of resources: # # stonith-sbd (stonith:external/sbd): Started hana-s-mm # Clone Set: cln_fs_HN1_HDB03_fscheck [fs_HN1_HDB03_fscheck] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Stopped: [ hana-s-mm ] # Clone Set: cln_SAPHanaTopology_HN1_HDB03 [rsc_SAPHanaTopology_HN1_HDB03] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Stopped: [ hana-s-mm ] # Master/Slave Set: msl_SAPHana_HN1_HDB03 [rsc_SAPHana_HN1_HDB03] # Masters: [ hana-s1-db1 ] # Slaves: [ hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Stopped: [ hana-s-mm ] # Resource Group: g_ip_HN1_HDB03 # rsc_ip_HN1_HDB03 (ocf::heartbeat:IPaddr2): Started hana-s1-db1 # rsc_nc_HN1_HDB03 (ocf::heartbeat:azure-lb): Started hana-s1-db1
b. 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 | #| -------- | ------------ | ----- | ------------ | --------- | ------- | --------- | ------------ | --------- | --------- | --------- | ------------- | ----------- | ----------- | -------------- | #| 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-db3 | 30303 | indexserver | 4 | 1 | HANA_S1 | hana-s2-db3 | 30303 | 2 | HANA_S2 | YES | SYNC | ACTIVE | | #| HN1 | hana-s1-db2 | 30303 | indexserver | 5 | 1 | HANA_S1 | hana-s2-db2 | 30303 | 2 | 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
Recomendamos validar completamente a configuração do cluster SAP HANA, executando os testes, documentados em HA para SAP HANA em VMs do Azure no SLES e no Cenário de Desempenho Otimizado de Replicação do SLES.
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 para
/hana/shared
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
oucrm status
. Estado do recurso antes de iniciar o teste:# Output of crm_mon #7 nodes configured #24 resource instances 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: # #stonith-sbd (stonith:external/sbd): Started hana-s-mm # Clone Set: cln_fs_HN1_HDB03_fscheck [fs_HN1_HDB03_fscheck] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Clone Set: cln_SAPHanaTopology_HN1_HDB03 [rsc_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 [rsc_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_HDB03 # rsc_ip_HN1_HDB03 (ocf::heartbeat:IPaddr2): Started hana-s2-db1 # rsc_nc_HN1_HDB03 (ocf::heartbeat:azure-lb): Started hana-s2-db1
Para simular falhas para
/hana/shared
:- Se estiver usando NFS nos Arquivos NetApp do Azure, primeiro confirme o endereço IP do
/hana/shared
volume Arquivos NetApp do Azure no site primário. Você pode fazer isso executandodf -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 no volume
/hana/shared
hana-s1-db1 for Azure NetApp Files.iptables -A INPUT -s 10.23.1.7 -j DROP; iptables -A OUTPUT -d 10.23.1.7 -j DROP
Os recursos do cluster serão migrados para o outro local de replicação do sistema HANA.
Se você definir AUTOMATED_REGISTER="false", 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 cleanup failed resources crm resource cleanup SAPHana_HN1_HDB03
O estado dos recursos, após o teste:
# Output of crm_mon #7 nodes configured #24 resource instances 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: # #stonith-sbd (stonith:external/sbd): Started hana-s-mm # Clone Set: cln_fs_HN1_HDB03_fscheck [fs_HN1_HDB03_fscheck] # Started: [ hana-s1-db1 hana-s1-db2 hana-s1-db3 hana-s2-db1 hana-s2-db2 hana-s2-db3 ] # Clone Set: cln_SAPHanaTopology_HN1_HDB03 [rsc_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 [rsc_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_HDB03 # rsc_ip_HN1_HDB03 (ocf::heartbeat:IPaddr2): Started hana-s2-db1 # rsc_nc_HN1_HDB03 (ocf::heartbeat:azure-lb): Started hana-s2-db1
- Se estiver usando NFS nos Arquivos NetApp do Azure, primeiro confirme o endereço IP do
Próximos passos
- Planejamento e implementação de Máquinas Virtuais do Azure para SAP
- Implantação de Máquinas Virtuais do Azure para SAP
- Implantação de DBMS de Máquinas Virtuais do Azure para SAP
- Volumes NFS v4.1 no Azure NetApp Files para SAP HANA
- Para saber como estabelecer alta disponibilidade e planejar a recuperação de desastres do SAP HANA em VMs do Azure, consulte Alta disponibilidade do SAP HANA em máquinas virtuais (VMs) do Azure.