Implantar um sistema de expansão SAP HANA com o nó em espera em VMs do Azure usando Azure NetApp Files no Red Hat Enterprise Linux
Este artigo descreve como implantar um sistema SAP HANA altamente disponível em uma configuração de expansão com modo de espera em VMs (máquinas virtuais) Red Hat Enterprise Linux usando o Azure NetApp Files para os volumes de armazenamento compartilhado.
Nos exemplos de configurações, comandos de instalação e assim por diante, a instância do HANA é 03 e a ID do sistema HANA é HN1. Os exemplos são baseados em HANA 2.0 SP4 e Red Hat Enterprise Linux para SAP 7.6.
Observação
Este artigo contém referências a termos que a Microsoft não usa mais. Quando esses termos forem removidos do software, nós os removeremos deste artigo.
Antes de começar, consulte as seguintes notas e documentos do SAP:
- Documentação do Azure NetApp Files
- A Nota do SAP 1928533 inclui:
- Um lista de tamanhos de VMs do Azure compatíveis com a implantação de software SAP
- Informações importantes sobre capacidade para tamanhos de VM do Azure
- Software SAP e combinações de SO (sistema operacional) e banco de dados com suporte
- A versão do kernel do SAP necessária para Windows e Linux no Microsoft Azure
- Nota do SAP 2015553: lista os pré-requisitos para implantações do software SAP com suporte para SAP no Azure
- A Nota do SAP [2002167] recomendou configurações do sistema operacional para Red Hat Enterprise Linux
- Nota SAP 2009879 tem diretrizes SAP HANA para Red Hat Enterprise Linux
- A Nota do SAP 3108302 contém as Diretrizes do SAP HANA para o Red Hat Enterprise Linux 9.x
- Nota SAP 2178632: contém informações detalhadas sobre todas as métricas de monitoramentos relatadas para o SAP no Azure
- Nota do SAP 2191498: contém a versão necessária do SAP Host Agent para Linux no Azure
- Nota SAP 2243692: contém informações sobre o licenciamento do SAP para o Linux no Azure
- Nota SAP 1999351: contém informações de solução de problemas adicionais para a Extensão de Monitoramento Avançado do Azure para SAP
- Nota do SAP 1900823: contém informações sobre os requisitos de armazenamento de SAP HANA
- Wiki da comunidade do SAP: contém todas as notas do 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 Máquinas Virtuais do Azure do DBMS para SAP no Linux
- Documentação geral do RHEL
- Documentação do RHEL específica do Azure:
- Volumes NFS v4.1 no Azure NetApp Files para SAP HANA
Visão geral
Um método para obter alta disponibilidade com o HANA é configurando o failover automático do host. Para configurar o failover automático do host, você adiciona uma ou mais máquinas virtuais ao sistema HANA e as configura como nós em espera. Quando o nó ativo falha, um nó em espera assume automaticamente. Na configuração apresentada com as máquinas virtuais do Azure, você consegue failover automático usando NFS no Azure NetApp Files.
Observação
O nó em espera precisa de acesso a todos os volumes de banco de dados. Os volumes HANA devem ser montados como volumes NFSv4. O mecanismo de bloqueio baseado em concessão de arquivo que foi aprimorado no protocolo NFSv4 é usado para isolamento de I/O
.
Importante
Para criar a configuração com suporte, você deve implantar os volumes de dados e de log do HANA como volumes NFSv4.1 e montá-los usando o protocolo NFSv4.1. A configuração de failover automático do host HANA com o nó em espera não tem suporte no NFSv3.
No diagrama anterior, que segue as recomendações de rede SAP HANA, três sub-redes são representadas em uma rede virtual do Azure:
- Para comunicação com o cliente
- Para comunicação com o sistema de armazenamento
- Para comunicação interna entre nós do HANA
Os volumes do Azure NetApp estão em uma sub-rede separada, delegados ao Azure NetApp Files.
Para esta configuração de exemplo, as sub-redes são:
client
10.9.1.0/26storage
10.9.3.0/26hana
10.9.2.0/26anf
10.9.0.0/26 (sub-rede delegada para o Azure NetApp Files)
Configurar a infraestrutura do Azure NetApp Files
Antes de prosseguir com a configuração da infraestrutura do Azure NetApp Files, familiarize-se com a documentação do Azure NetApp Files.
O Azure NetApp Files está disponível em várias regiões do Azure. Verifique se a região do Azure selecionada oferece o Azure NetApp Files.
Para obter informações sobre a disponibilidade do Azure NetApp Files por região do Azure, consulte Disponibilidade do Azure NetApp Files por região do Azure.
Considerações importantes
Ao criar volumes do Azure NetApp Files para expansão do SAP HANA, esteja ciente das considerações importantes documentadas em Volumes de NFS v4.1 no Azure NetApp Files para SAP HANA.
Dimensionar o banco de dados do HANA no Azure NetApp Files
A taxa de transferência de um volume do Azure NetApp Files é uma função do tamanho de volume e do nível de serviço, conforme documentado no Nível de serviço para Azure NetApp Files.
Ao projetar a infraestrutura do SAP HANA no Azure com Azure NetApp Files, esteja ciente das recomendações em Volumes NFS v4.1 no Azure NetApp Files para SAP HANA.
A configuração neste artigo é apresentada com volumes do Azure NetApp Files simples.
Importante
Para sistemas de produção, em que o desempenho é fundamental, recomendamos avaliar e considerar o uso do grupo de volumes de aplicativos do Azure NetApp Files para SAP HANA.
Implantar recursos do Azure NetApp Files
As instruções a seguir pressupõem que você já tenha implantado a Rede virtual do Azure. Os recursos do Azure NetApp Files e as VMs nas quais os recursos do Azure NetApp Files serão montados precisam ser implantados na mesma rede virtual do Azure ou em redes virtuais do Azure emparelhadas.
Crie uma conta do NetApp na região do Azure selecionada, seguindo as instruções em Criar uma conta do NetApp.
Configure um pool de capacidade do Azure NetApp Files seguindo as instruções em Configurar um pool de capacidade do Azure NetApp Files.
A arquitetura do HANA apresentada neste artigo usa um único pool de capacidade do Azure NetApp Files no nível Ultrasserviço. Para cargas de trabalho do HANA no Azure, é recomendável usar um nível de serviço Ultra ou Premium do Azure NetApp Files.
Delegue uma sub-rede para o Azure NetApp Files, conforme descrito nas instruções em Delegar uma sub-rede ao Azure NetApp Files.
Implante volumes do Azure NetApp Files seguindo as instruções em Criar um volume NFS para o Azure NetApp Files.
Enquanto estiver implantando os volumes, certifique-se de selecionar a versão NFSv4.1. Implante os volumes na sub-rede designada do Azure NetApp Files. Os endereços IP dos volumes do Azure NetApp são atribuídos automaticamente.
Lembre-se de que os recursos do Azure NetApp Files e as VMs do Azure precisam estar na mesma rede virtual do Azure ou em redes virtuais do Azure emparelhadas. Por exemplo, HN1-data-mnt00001, HN1-log-mnt00001 e assim por diante são os nomes de volumes e nfs://10.9.0.4/HN1-data-mnt00001, nfs://10.9.0.4/HN1-log-mnt00001 e assim por diante são os caminhos de arquivos para os volumes de Azure NetApp Files.
- volume HN1-data-mnt00001 (nfs://10.9.0.4/HN1-data-mnt00001)
- volume HN1-data-mnt00002 (nfs://10.9.0.4/HN1-data-mnt00002)
- volume HN1-log-mnt00001 (nfs://10.9.0.4/HN1-log-mnt00001)
- volume HN1-log-mnt00002 (nfs://10.9.0.4/HN1-log-mnt00002)
- volume HN1-shared (nfs://10.9.0.4/HN1-shared)
Neste exemplo, usamos um volume do Azure NetApp Files separado para cada volume de dados e de log do HANA. Para uma configuração com custo mais otimizado em sistemas menores ou não produtivos, é possível colocar todas as montagens de dados em um único volume e todas as montagens de logs em um único volume diferente.
Implantar máquinas virtuais do Linux por meio do portal do Azure
Primeiro, você precisa criar os volumes do Azure NetApp Files. Depois, execute as etapas a seguir:
Crie as Sub-redes da rede virtual do Azure em sua Rede virtual do Azure.
Implante as VMs.
Crie as interfaces de rede adicionais e anexe as interfaces de rede às VMs correspondentes.
Cada máquina virtual tem três interfaces de rede, que correspondem às três sub-redes da rede virtual do Azure (
client
,storage
ehana
).Para obter mais informações, consulte Criar uma máquina virtual Linux no Azure com várias placas de interface de rede.
Importante
Para cargas de trabalho do SAP HANA, baixa latência é fundamental. Para alcançar uma latência baixa, trabalhe com seu representante da Microsoft para garantir que as máquinas virtuais e os volumes do Azure NetApp Files foram implantados bem próximos. Quando estiver integrando o novo sistema SAP HANA que está usando o SAP HANA Azure NetApp Files, envie as informações necessárias.
As próximas instruções pressupõem que você já criou o grupo de recursos, a rede virtual do Azure e as três sub-redes da rede virtual do Azure: client
storage
e hana
. Ao implantar as VMs, selecione a sub-rede do cliente para que a interface de rede do cliente seja a interface principal nas VMs. Você também precisará configurar uma rota explícita para a sub-rede delegada do Azure NetApp Files por meio do gateway da sub-rede de armazenamento.
Importante
Certifique-se de que o sistema operacional que você selecionar tenha certificação SAP para o SAP HANA nos tipos de VM específicos que você está usando. Para obter uma lista de tipos de VMs certificadas do SAP HANA e das versões de sistemas operacionais para esses tipos, acesse o site de Plataformas de IaaS certificadas do SAP HANA. Clique nos detalhes do tipo de VM listado para obter a lista completa de versões do sistema operacional com suporte do SAP HANA para esse tipo de VM.
Crie um conjunto de disponibilidade para o SAP HANA. Certifique-se de definir o domínio de atualização máximo.
Crie três máquinas virtuais (hanadb1, hanadb2 e hanadb3) executando as seguintes etapas:
a. Use uma imagem Red Hat Enterprise Linux na galeria do Azure que tenha suporte para SAP HANA. Neste exemplo, utilizamos uma imagem RHEL-SAP-HA 7.6.
b. Selecione o conjunto de disponibilidade criado anteriormente para o SAP HANA.
c. Selecione a sub-rede da rede virtual cliente do Azure. Selecione Rede Acelerada.
Quando você implanta as máquinas virtuais, o nome da interface de rede é gerado automaticamente. Nestas instruções, para simplificar, vamos nos referir às interfaces de rede geradas automaticamente, que são anexadas à sub-rede da rede virtual cliente do Azure, como hanadb1-client, hanadb2-client e hanadb3-client.
Crie três interfaces de rede, uma para cada máquina virtual, para a sub-rede
storage
da rede virtual (neste exemplo, hanadb1-storage, hanadb2-storagee hanadb3-storage).Crie três adaptadores de rede, uma para cada máquina virtual, para a sub-rede da rede virtual
hana
(neste exemplo, hanadb1-hana, hanadb2-hana e hanadb3-hana).Anexe as interfaces da rede virtual recém-criadas às máquinas virtuais correspondentes executando as seguintes etapas:
a. Acesse a máquina virtual no portal do Azure.
b. No painel esquerdo, selecione Máquinas Virtuais. Filtre o nome da máquina virtual (por exemplo, hanadb1) e, em seguida, selecione a máquina virtual.
c. No painel Visão geral, escolha Parar para desalocar a máquina virtual.
d. Escolha Rede e, em seguida, anexe a interface de rede. Na lista suspensa Anexar interface de rede, selecione as interfaces de rede já criadas para as sub-redes
storage
ehana
.e. Clique em Salvar.
f. Repita as etapas “b” a “e” para as máquinas virtuais restantes (em nosso exemplo, hanadb2 e hanadb3).
g. Deixe as máquinas virtuais no estado parado por enquanto. Em seguida, vamos habilitar a rede acelerada para todas as interfaces de rede recém-anexadas.
Habilite a rede acelerada para as interfaces de rede adicionais das sub-redes
storage
ehana
seguindo estas etapas:a. Abra o Azure Cloud Shell no portal do Azure.
b. Execute os comandos a seguir para habilitar a rede acelerada para as interfaces de rede adicionais, que estão anexadas às sub-redes
storage
ehana
.az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb1-storage --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb2-storage --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb3-storage --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb1-hana --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb2-hana --accelerated-networking true az network nic update --id /subscriptions/your subscription/resourceGroups/your resource group/providers/Microsoft.Network/networkInterfaces/hanadb3-hana --accelerated-networking true
Inicie as máquinas virtuais, executando as seguintes etapas:
a. No painel esquerdo, selecione Máquinas Virtuais. Filtre o nome da máquina virtual (por exemplo, hanadb1) e, em seguida, selecione-a.
b. No painel Visão geral, selecione Iniciar.
Configuração e preparação do sistema operacional
As instruções nas próximas seções têm um dos seguintes prefixos:
- [A] : Aplicável a todos os nós
- [1] : Aplicável somente ao nó 1
- [2] : aplicável somente ao nó 2
- [3] : Aplicável somente ao nó 3
Configure e prepare seu sistema operacional executando as seguintes etapas:
[A] Mantenha os arquivos do host nas máquinas virtuais. Inclua entradas para todas as sub-redes. As entradas a seguir foram adicionadas a
/etc/hosts
para este exemplo.# Storage 10.9.3.4 hanadb1-storage 10.9.3.5 hanadb2-storage 10.9.3.6 hanadb3-storage # Client 10.9.1.5 hanadb1 10.9.1.6 hanadb2 10.9.1.7 hanadb3 # Hana 10.9.2.4 hanadb1-hana 10.9.2.5 hanadb2-hana 10.9.2.6 hanadb3-hana
[A] Adicione uma rota de rede para que a comunicação com o Azure NetApp Files ocorra por meio da interface de rede de armazenamento.
Neste exemplo, será usado o
Networkmanager
para configurar a rota de rede adicional. As instruções a seguir pressupõem que a interface de rede de armazenamento éeth1
.
Primeiro, determine o nome da conexão para o dispositivoeth1
. Neste exemplo, o nome da conexão para o dispositivoeth1
éWired connection 1
.# Execute as root nmcli connection # Result #NAME UUID TYPE DEVICE #System eth0 5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 ethernet eth0 #Wired connection 1 4b0789d1-6146-32eb-83a1-94d61f8d60a7 ethernet eth1
Em seguida, configure a rota adicional para a rede delegada do Azure NetApp Files por meio de
eth1
.# Add the following route # ANFDelegatedSubnet/cidr via StorageSubnetGW dev StorageNetworkInterfaceDevice nmcli connection modify "Wired connection 1" +ipv4.routes "10.9.0.0/26 10.9.3.1"
Reinicialize a VM para ativar as alterações.
[A] Instale o pacote de cliente NFS.
yum install nfs-utils
[A] Prepare o sistema operacional para executar o SAP HANA no Azure NetApp com o NFS, conforme descrito na observação do SAP 3024346 – Configurações do kernel do Linux para NetApp com o NFS. Crie o arquivo de configuração /etc/sysctl.d/91-NetApp-HANA.conf para as definições de configuração do 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_timestamps = 1 net.ipv4.tcp_sack = 1
[A] Crie o arquivo de configuração /etc/sysctl.d/ms-az.conf com configurações de otimização adicionais.
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
Dica
Evite configurar net.ipv4.ip_local_port_range e net.ipv4.ip_local_reserved_ports explicitamente nos arquivos de configuração sysctl para permitir que o Agente de Host do SAP gerencie os intervalos de portas. Para obter mais detalhes, consulte a Nota do SAP 2382421.
[A] Ajuste as configurações de sunrpc, conforme recomendado na observação do SAP 3024346 – Configurações do kernel do Linux para NetApp com o NFS.
vi /etc/modprobe.d/sunrpc.conf # Insert the following line options sunrpc tcp_max_slot_table_entries=128
[A] Configuração do Red Hat para HANA.
Configurar RHEL, conforme descrito na Nota do SAP 2292690, 2455582, 2593824 e na nota do Red Hat 2447641.
Observação
Se estiver instalando o HANA 2.0 SP04, você precisará instalar o pacote
compat-sap-c++-7
conforme descrito na Nota do SAP 2593824, antes de instalar o SAP HANA.
Monte os volumes do Azure NetApp Files
[A] Crie pontos de montagem para os volumes de banco de dados do HANA.
mkdir -p /hana/data/HN1/mnt00001 mkdir -p /hana/data/HN1/mnt00002 mkdir -p /hana/log/HN1/mnt00001 mkdir -p /hana/log/HN1/mnt00002 mkdir -p /hana/shared mkdir -p /usr/sap/HN1
[1] Crie diretórios específicos do nó para /usr/sap em HN1-shared.
# Create a temporary directory to mount HN1-shared mkdir /mnt/tmp # if using NFSv3 for this volume, mount with the following command mount 10.9.0.4:/HN1-shared /mnt/tmp # if using NFSv4.1 for this volume, mount with the following command mount -t nfs -o sec=sys,nfsvers=4.1 10.9.0.4:/HN1-shared /mnt/tmp cd /mnt/tmp mkdir shared usr-sap-hanadb1 usr-sap-hanadb2 usr-sap-hanadb3 # unmount /hana/shared cd umount /mnt/tmp
[A] Verifique a configuração do domínio NFS. Verifique se o domínio está configurado como o domínio do Azure NetApp Files padrão, ou seja,
defaultv4iddomain.com
, e o mapeamento está definido como nobody.Importante
É preciso que você defina o domínio NFS em
/etc/idmapd.conf
na VM para corresponder à configuração de domínio padrão no Azure NetApp Files:defaultv4iddomain.com
. Se houver uma incompatibilidade entre a configuração de domínio no cliente NFS (ou seja, a VM) e o servidor NFS, ou seja, a configuração da Azure NetApp, as permissões para arquivos nos volumes do Azure NetApp que forem montados nas VMs serão exibidas comonobody
.sudo cat /etc/idmapd.conf # Example [General] Domain = defaultv4iddomain.com [Mapping] Nobody-User = nobody Nobody-Group = nobody
[A] Verifique
nfs4_disable_idmapping
. Ele deve ser definido como Y. Para criar a estrutura de diretório em quenfs4_disable_idmapping
está localizado, execute o comando mount. Você não poderá criar o diretório manualmente em /sys/modules, pois o acesso é reservado para o kernel e os drivers.# Check nfs4_disable_idmapping cat /sys/module/nfs/parameters/nfs4_disable_idmapping # If you need to set nfs4_disable_idmapping to Y mkdir /mnt/tmp mount 10.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 detalhes sobre como alterar o parâmetro
nfs4_disable_idmapping
, consulte https://access.redhat.com/solutions/1749883.[A] Monte os volumes do Azure NetApp Files compartilhados.
sudo vi /etc/fstab # Add the following entries 10.9.0.4:/HN1-data-mnt00001 /hana/data/HN1/mnt00001 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 10.9.0.4:/HN1-data-mnt00002 /hana/data/HN1/mnt00002 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 10.9.0.4:/HN1-log-mnt00001 /hana/log/HN1/mnt00001 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 10.9.0.4:/HN1-log-mnt00002 /hana/log/HN1/mnt00002 nfs rw,nfsvers=4.1,hard,timeo=600,rsize=262144,wsize=262144,noatime,lock,_netdev,sec=sys 0 0 10.9.0.4:/HN1-shared/shared /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
Para cargas de trabalho que exigem maior taxa de transferência, considere usar a opção de montagem
nconnect
, conforme a descrição em Volumes NFS v4.1 no Azure NetApp Files para SAP HANA. Verifique senconnect
é compatível com o Azure NetApp Files em sua versão do Linux.[1] Monte os volumes específicos do nó em hanadb1.
sudo vi /etc/fstab # Add the following entries 10.9.0.4:/HN1-shared/usr-sap-hanadb1 /usr/sap/HN1 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
[2] Monte os volumes específicos do nó em hanadb2.
sudo vi /etc/fstab # Add the following entries 10.9.0.4:/HN1-shared/usr-sap-hanadb2 /usr/sap/HN1 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
[3] Monte os volumes específicos do nó em hanadb3.
sudo vi /etc/fstab # Add the following entries 10.9.0.4:/HN1-shared/usr-sap-hanadb3 /usr/sap/HN1 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
[A] Verifique se todos os volumes do HANA estão montados com o protocolo NFS versão NFSv4.
sudo nfsstat -m # Verify that flag vers is set to 4.1 # Example from hanadb1 /hana/data/HN1/mnt00001 from 10.9.0.4:/HN1-data-mnt00001 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.9.3.4,local_lock=none,addr=10.9.0.4 /hana/log/HN1/mnt00002 from 10.9.0.4:/HN1-log-mnt00002 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.9.3.4,local_lock=none,addr=10.9.0.4 /hana/data/HN1/mnt00002 from 10.9.0.4:/HN1-data-mnt00002 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.9.3.4,local_lock=none,addr=10.9.0.4 /hana/log/HN1/mnt00001 from 10.9.0.4:/HN1-log-mnt00001 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.9.3.4,local_lock=none,addr=10.9.0.4 /usr/sap/HN1 from 10.9.0.4:/HN1-shared/usr-sap-hanadb1 Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.9.3.4,local_lock=none,addr=10.9.0.4 /hana/shared from 10.9.0.4:/HN1-shared/shared Flags: rw,noatime,vers=4.1,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.9.3.4,local_lock=none,addr=10.9.0.4
Instalação
Neste exemplo, para implantar o SAP HANA na configuração de expansão com nó em espera com o Azure, usamos o HANA 2.0 SP4.
Preparar para a instalação do HANA
[A] Antes da instalação do HANA, defina a senha raiz. Você pode desabilitar a senha raiz após a conclusão da instalação. Execute como
root
o comandopasswd
.[1] Verifique se você pode fazer logon via SSH em hanadb2 e hanadb3 sem que seja solicitada uma senha.
ssh root@hanadb2 ssh root@hanadb3
[A] Instale pacotes adicionais que são necessários para o HANA 2.0 SP4. Para obter mais informações, consulte a Nota do SAP 2593824.
yum install libgcc_s1 libstdc++6 compat-sap-c++-7 libatomic1
[2], [3] Altere a propriedade dos diretórios
data
elog
do SAP HANA para hn1adm.# Execute as root sudo chown hn1adm:sapsys /hana/data/HN1 sudo chown hn1adm:sapsys /hana/log/HN1
[A] Desabilite o firewall temporariamente, para que ele não interfira na instalação do HANA. Você pode habilitá-lo novamente depois que a instalação do HANA for concluída.
# Execute as root systemctl stop firewalld systemctl disable firewalld
Instalação do HANA
[1] Instale o SAP HANA seguindo as instruções no Guia de instalação e atualização do SAP HANA 2.0. Neste exemplo, instalamos a expansão do SAP HANA com um nó mestre, um nó de trabalho e um nó em espera.
a. Inicie o programa hdblcm a partir do diretório do software de instalação do HANA. Use o parâmetro
internal_network
e passe o espaço de endereço para a sub-rede que é usada para a comunicação interna entre nós do HANA../hdblcm --internal_network=10.9.2.0/26
b. No prompt, insira os valores a seguir:
- Em Escolher uma ação: insira 1 (para instalar)
- Em Componentes adicionais para a instalação: insira 2, 3
- Em caminho de instalação: pressione Enter (o padrão é /hana/shared)
- Em Nome do Host Local: pressione Enter para aceitar o padrão
- Em Você deseja adicionar hosts ao sistema? : digite s
- Em Adicionar nomes de host separados por vírgulas: insira hanadb2, hanadb3
- Em Nome do Usuário Root [root]: pressione Enter para aceitar o padrão
- Em funções para o host hanadb2: insira 1 (de trabalho)
- Em Grupo de Failover de Host para o host hanadb2 [padrão]: pressione Enter para aceitar o padrão
- Em Número de Partição de Armazenamento para o host hanadb2 [<<atribuir automaticamente>>]: pressione Enter para aceitar o padrão
- Em Grupo de Trabalho para o host hanadb2 [padrão]: pressione Enter para aceitar o padrão
- Em Selecionar funções para o host hanadb3: insira 2 (em espera)
- Em Grupo de Failover de Host para o host hanadb3 [padrão]: pressione Enter para aceitar o padrão
- Em Grupo de Trabalho para o host hanadb3 [padrão]: pressione Enter para aceitar o padrão
- Em ID do sistema do SAP HANA: insira HN1
- Em Número de instância [00]: insira 03
- Em Grupo de Trabalho do Host Local [padrão]: pressione Enter para aceitar o padrão
- Em Selecionar Uso do Sistema / Inserir Índice [4] : insira 4 (personalizado)
- Em Local dos Volumes de Dados [/hana/data/HN1]: pressione Enter para aceitar o padrão
- Em Local dos Volumes do Log [/hana/log/HN1]: pressione Enter para aceitar o padrão
- Para restringir a alocação máxima de memória? [n]: insira n
- Em Nome do Host do Certificado para o Host hanadb1 [hanadb1]: pressione Enter para aceitar o padrão
- Em Nome do Host do Certificado para o Host hanadb2 [hanadb2]: pressione Enter para aceitar o padrão
- Em Nome do Host do Certificado para o Host hanadb3 [hanadb3]: pressione Enter para aceitar o padrão
- Em Senha do Administrador do Sistema (hn1adm) : insira a senha
- Em Senha do Usuário do Banco de Dados do Sistema (sistema) : insira a senha do sistema
- Em Confirmar Senha do Usuário do Banco de Dados do Sistema (sistema) : insira a senha do sistema
- Para Reiniciar sistema após a reinicialização do computador? [n]: insira n
- Em Você deseja continuar (s/n) : valide o resumo e, se tudo estiver correto, digite y
[1] Verifique o global.ini
Abra o global.ini e verifique se a configuração da comunicação interna entre nós do SAP HANA está funcionando. Verifique a seção Comunicação. Ele deve ter o espaço de endereço para a sub-rede
hana
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 à sub-redehana
.sudo cat /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini # Example #global.ini last modified 2019-09-10 00:12:45.192808 by hdbnameserve [communication] internal_network = 10.9.2.0/26 listeninterface = .internal [internal_hostname_resolution] 10.9.2.4 = hanadb1 10.9.2.5 = hanadb2 10.9.2.6 = hanadb3
[1] Adicione o mapeamento de host para garantir que os endereços IP do cliente sejam usados para comunicação do cliente. Adicione a seção
public_host_resolution
e adicione os endereços IP correspondentes da sub-rede do cliente.sudo vi /usr/sap/HN1/SYS/global/hdb/custom/config/global.ini #Add the section [public_hostname_resolution] map_hanadb1 = 10.9.1.5 map_hanadb2 = 10.9.1.6 map_hanadb3 = 10.9.1.7
[1] Reinicie o SAP HANA para ativar as alterações.
sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StopSystem HDB sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StartSystem HDB
[1] Verifique se a interface do cliente usará os endereços IP da sub-rede
client
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 "hanadb3","net_publicname","10.9.1.7" "hanadb2","net_publicname","10.9.1.6" "hanadb1","net_publicname","10.9.1.5"
Para obter informações sobre como verificar a configuração, consulte a Nota do SAP 2183363 – Configuração da rede interna do SAP HANA.
[A] Reabilite o firewall.
Parar HANA
sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StopSystem HDB
Reabilitar o firewall
# Execute as root systemctl start firewalld systemctl enable firewalld
Abrir as portas do firewall necessárias
Importante
Crie regras de firewall para permitir a comunicação entre nós do HANA e o tráfego do cliente. As portas necessárias estão listadas em Portas TCP / IP de todos os produtos SAP. Os comandos a seguir são apenas exemplos. Nesse cenário, com o número de sistema usado 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
Iniciar o HANA
sudo -u hn1adm /usr/sap/hostctrl/exe/sapcontrol -nr 03 -function StartSystem HDB
Para otimizar o SAP HANA para o armazenamento subjacente do Azure NetApp Files, defina os seguintes parâmetros do SAP HANA:
max_parallel_io_requests
128async_read_submit
onasync_write_submit_active
onasync_write_submit_blocks
all
Para saber mais, confira a Configuração da pilha de E/S para o SAP HANA.
A partir dos sistemas SAP HANA 2.0, você pode definir os parâmetros no
global.ini
. Para obter mais informações, consulte a Nota do SAP 1999930.Para versões SPS12 ou anteriores do sistema SAP HANA 1.0, esses parâmetros podem ser definidos durante a instalação, conforme descrito na Nota do SAP 2267798.
O armazenamento usado pelo Azure NetApp Files tem uma limitação de tamanho de arquivo de 16 terabytes (TB). O SAP HANA não está ciente implicitamente da limitação de armazenamento e não criará automaticamente um novo arquivo de dados quando o limite de tamanho de arquivo de 16 TB for atingido. Se o SAP HANA tentar aumentar o arquivo para além de 16 TB, essa tentativa resultará em erros e, eventualmente, em uma falha do servidor de índice.
Importante
Para impedir que o SAP HANA tente aumentar os arquivos de dados para além do limite de 16 TB do subsistema de armazenamento, defina os parâmetros a seguir em
global.ini
.
Testar failover do SAP HANA
Simular uma falha de nó em um nó de trabalho do SAP HANA. Faça o seguinte:
a. Antes de simular a falha de nó, execute os seguintes comandos como hn1adm para capturar o status do ambiente:
# Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | ok | | | 1 | 1 | default | default | master 1 | master | worker | master | worker | worker | default | default | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | yes | ignore | | | 0 | 0 | default | default | master 3 | slave | standby | standby | standby | standby | default | - | # Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN
b. Para simular uma falha de nó, execute o seguinte comando como raiz no nó de trabalho, que, neste caso, é hanadb2:
echo b > /proc/sysrq-trigger
c. Monitore o sistema para a conclusão do failover. Quando o failover for concluído, capture o status, que deve ser semelhante ao seguinte:
# Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GRAY hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN # Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | ok | | | 1 | 1 | default | default | master 1 | master | worker | master | worker | worker | default | default | | hanadb2 | no | info | | | 2 | 0 | default | default | master 2 | slave | worker | standby | worker | standby | default | - | | hanadb3 | yes | info | | | 0 | 2 | default | default | master 3 | slave | standby | slave | standby | worker | default | default |
Importante
Quando um nó experimenta um pânico de kernel, evite atrasos com o failover do SAP HANA definindo
kernel.panic
como 20 segundos em todas as máquinas virtuais do HANA. A configuração é feita em/etc/sysctl
. Reinicialize as máquinas virtuais para ativar a alteração. Se essa alteração não for executada, o failover poderá levar 10 ou mais minutos quando um nó estiver experimentando um pânico de kernel.Encerre o servidor de nomes fazendo o seguinte:
a. Antes do teste, verifique o status do ambiente executando os seguintes comandos como hn1adm:
#Landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | ok | | | 1 | 1 | default | default | master 1 | master | worker | master | worker | worker | default | default | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | yes | ignore | | | 0 | 0 | default | default | master 3 | slave | standby | standby | standby | standby | default | - | # Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN
b. Execute os comandos a seguir como hn1adm no nó mestre ativo, que, neste caso, é hanadb1:
hn1adm@hanadb1:/usr/sap/HN1/HDB03> HDB kill
O nó em espera hanadb3 assumirá como nó mestre. Este é o estado do recurso após a conclusão do teste de failover:
# Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GRAY # Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | no | info | | | 1 | 0 | default | default | master 1 | slave | worker | standby | worker | standby | default | - | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | yes | info | | | 0 | 1 | default | default | master 3 | master | standby | master | standby | worker | default | default |
c. Reinicie a instância do HANA no hanadb1 (ou seja, na mesma máquina virtual, na qual o servidor de nomes foi eliminado). O nó hanadb1 se reassociará ao ambiente e manterá sua função em espera.
hn1adm@hanadb1:/usr/sap/HN1/HDB03> HDB start
Depois que o SAP HANA for iniciado em hanadb1, espere o seguinte status:
# Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN # Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | no | info | | | 1 | 0 | default | default | master 1 | slave | worker | standby | worker | standby | default | - | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | yes | info | | | 0 | 1 | default | default | master 3 | master | standby | master | standby | worker | default | default |
d. Novamente, encerre o servidor de nomes no nó mestre ativo no momento (ou seja, no nó hanadb3).
hn1adm@hanadb3:/usr/sap/HN1/HDB03> HDB kill
O nó hanadb1 voltará a exercer função de nó mestre. Após a conclusão do teste de failover, o status terá esta aparência:
# Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GRAY hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN # Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | ok | | | 1 | 1 | default | default | master 1 | master | worker | master | worker | worker | default | default | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | no | ignore | | | 0 | 0 | default | default | master 3 | slave | standby | standby | standby | standby | default | - |
e. Inicie o SAP HANA no hanadb3, que estará pronto para servir como um nó em espera.
hn1adm@hanadb3:/usr/sap/HN1/HDB03> HDB start
Depois que o SAP HANA for iniciado no hanadb3, o status será o seguinte:
# Check the instance status sapcontrol -nr 03 -function GetSystemInstanceList & python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus GetSystemInstanceList OK hostname, instanceNr, httpPort, httpsPort, startPriority, features, dispstatus hanadb2, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN hanadb3, 3, 50313, 50314, 0.3, HDB|HDB_STANDBY, GREEN hanadb1, 3, 50313, 50314, 0.3, HDB|HDB_WORKER, GREEN # Check the landscape status python /usr/sap/HN1/HDB03/exe/python_support/landscapeHostConfiguration.py | Host | Host | Host | Failover | Remove | Storage | Storage | Failover | Failover | NameServer | NameServer | IndexServer | IndexServer | Host | Host | Worker | Worker | | | Active | Status | Status | Status | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | Config | Actual | | | | | | | Partition | Partition | Group | Group | Role | Role | Role | Role | Roles | Roles | Groups | Groups | | ------- | ------ | ------ | -------- | ------ | --------- | --------- | -------- | -------- | ---------- | ---------- | ----------- | ----------- | ------- | ------- | ------- | ------- | | hanadb1 | yes | ok | | | 1 | 1 | default | default | master 1 | master | worker | master | worker | worker | default | default | | hanadb2 | yes | ok | | | 2 | 2 | default | default | master 2 | slave | worker | slave | worker | worker | default | default | | hanadb3 | no | ignore | | | 0 | 0 | default | default | master 3 | slave | standby | standby | standby | standby | default | - |
Próximas etapas
- Planejamento e implementação de Máquinas Virtuais do Azure para o SAP
- Implantação de Máquinas Virtuais do Azure para SAP
- Implantação do DBMS de Máquinas Virtuais do Azure para SAP
- Volumes NFS v4.1 no Azure NetApp Files para SAP HANA
- Para saber como estabelecer a alta disponibilidade e o plano de recuperação de desastre do SAP HANA em VMs do Azure, consulte Alta disponibilidade do SAP HANA em VMs (Máquinas Virtuais) do Azure.