Configuração de alta disponibilidade no SUSE usando o dispositivo de isolamento
Neste artigo, veremos as etapas necessárias para configurar a HA (alta disponibilidade) no HANA em Instâncias Grandes no sistema operacional SUSE usando o dispositivo de isolamento.
Observação
Este guia deriva do teste bem-sucedido da configuração no ambiente Microsoft HANA em Instâncias Grandes. A equipe de gerenciamento de serviços da Microsoft para instâncias grandes do HANA não dá suporte ao sistema operacional. Para solução de problemas ou esclarecimento sobre a camada do sistema operacional, contate o SUSE.
A equipe de Gerenciamento de Serviços da Microsoft configura e dá suporte completo ao dispositivo de isolamento. Isso pode ajudar a solucionar problemas do dispositivo de isolamento.
Pré-requisitos
Para configurar a alta disponibilidade usando o clustering SUSE, você precisa:
- Provisionar o HANA em Instâncias Grandes.
- Instalar e registrar o sistema operacional com os patches mais recentes.
- Conectar servidores de Instância Grande do HANA para o servidor SMT para obter patches e pacotes.
- Configurar o protocolo NTP (servidor de horário NTP).
- Leia e compreenda a documentação mais recente do SUSE na configuração de HA.
Detalhes de configuração
Este guia usa as seguintes configurações:
- Sistema operacional: SLES 12 SP1 para SAP
- HANA em Instâncias Grandes: 2xS192 (quatro soquetes, 2 TB)
- Versão do HANA: HANA 2.0 SP1
- Nomes do servidor: sapprdhdb95 (node1) e sapprdhdb96 (node2)
- Dispositivo de isolamento: baseado em iSCSI
- NTP em um dos nós do HANA em Instâncias Grandes
Ao configurar o HANA em Instâncias Grandes com a replicação de sistema HANA, você pode solicitar que a equipe de Gerenciamento de Serviços da Microsoft configure o dispositivo de isolamento. Faça isso no momento do provisionamento.
Mesmo que você seja um cliente com o HANA em Instâncias Grandes já provisionado, ainda poderá configurar o dispositivo de isolamento. Forneça as informações a seguir para a equipe de Gerenciamento de Serviços da Microsoft no SRF (formulário de solicitação de serviço). Você pode obter o formulário SRF pelo gerente técnico de contas ou pelo seu contato da Microsoft para a integração do HANA em Instância Grande.
- Nome e endereço IP do servidor (por exemplo, myhanaserver1 e 10.35.0.1)
- Local (por exemplo, Leste dos EUA)
- Nome do cliente (por exemplo, Microsoft)
- Identificador do sistema HANA (SID) (por exemplo, H11)
Depois que o dispositivo de isolamento estiver configurado, a equipe de Gerenciamento de Serviços da Microsoft fornecerá o nome do SBD e o endereço IP do armazenamento iSCSI. Você pode usar essas informações para configurar a instalação do isolamento.
Siga as etapas descritas nas seções a seguir para configurar a HA usando o dispositivo de isolamento.
Identificar o dispositivo SBD
Observação
Esta seção se aplica somente a clientes existentes. Se você for um novo cliente, a equipe de Gerenciamento de Serviços da Microsoft fornecerá o nome do dispositivo SBD, portanto ignore esta seção.
Modifique /etc/iscsi/initiatorname.isci para:
iqn.1996-04.de.suse:01:<Tenant><Location><SID><NodeNumber>
O Gerenciamento de Serviços da Microsoft fornece essa cadeia de caracteres. Modifique o arquivo em ambos os nós. No entanto, o número do nó é diferente para cada nó.
Modifique /etc/iscsi/iscsid.conf configurando
node.session.timeo.replacement_timeout=5
enode.startup = automatic
. Modifique o arquivo em ambos os nós.Execute o comando a seguir nos dois nós.
iscsiadm -m discovery -t st -p <IP address provided by Service Management>:3260
Os resultados mostram quatro sessões.
Execute o comando a seguir nos dois nós para entrar no dispositivo iSCSI.
iscsiadm -m node -l
Os resultados mostram quatro sessões.
Use o comando a seguir para executar o script de novo exame do rescan-scsi-bus.sh. Esse script mostra os novos discos criados para você. Execute-o em ambos os nós.
rescan-scsi-bus.sh
Os resultados deverão mostrar um número LUN maior que zero (por exemplo: 1, 2 e assim por diante).
Para obter o nome do dispositivo, execute o comando a seguir nos dois nós.
fdisk –l
Nos resultados, escolha o dispositivo com o tamanho de 178 MiB.
Inicializar o dispositivo SBD
Use o comando a seguir para inicializar o dispositivo SBD nos dois nós.
sbd -d <SBD Device Name> create
Use o comando a seguir nos dois nós para verificar o que foi gravado no dispositivo.
sbd -d <SBD Device Name> dump
Configurar o cluster SUSE HA
Use o seguinte comando para verificar se os padrões ha_sles e SAPHanaSR-doc estão instalados nos dois nós. Se não estiverem instalados, instale-os.
zypper in -t pattern ha_sles zypper in SAPHanaSR SAPHanaSR-doc
Configure o cluster usando o comando
ha-cluster-init
ou o assistente do yast2. Neste exemplo, usamos o assistente do yast2. Execute esta etapa somente no nó primário.Acesse yast2>Alta Disponibilidade>Cluster.
Na caixa de diálogo que aparece sobre a instalação do pacote Hawk, selecione Cancelar porque o pacote halk2 já está instalado.
Na caixa de diálogo que aparece sobre continuar, selecione Continuar.
O valor esperado é o número dos nós implantados (neste caso, 2). Selecione Avançar.
Adicione nomes de nós e selecione Adicionar arquivos sugeridos.
Clique em Ligar csync2.
Selecione Gerar Chave Pré-Compartilhada.
Na mensagem pop-up que aparece, selecione OK.
A autenticação é realizada usando os endereços IP e as chaves pré-compartilhadas em Csync2. O arquivo de chave é gerado com
csync2 -k /etc/csync2/key_hagroup
.Copie manualmente o arquivo key_hagroup a todos os membros do cluster depois de ele ser criado. Cerifique-se de copiar o arquivo de node1 para node2. Em seguida, selecione Avançar.
Na opção padrão, a Inicialização estava Desativada. Altere-a para Ativada para que o pacemaker seja iniciado durante a inicialização. Você pode fazer a escolha de acordo com os requisitos de instalação.
Selecione Avançar para concluir a configuração do cluster.
Configure o watchdog softdog
Adicione a seguinte linha a /etc/init.d/boot.local nos dois nós.
modprobe softdog
Use o comando a seguirr para atualizar o arquivo /etc/sysconfig/sbd nos dois nós.
SBD_DEVICE="<SBD Device Name>"
Carregue o módulo kernel nos dois nós executando o seguinte comando.
modprobe softdog
Use o comando a seguir para garantir que o softdog está executando nos dois nós.
lsmod | grep dog
Use o comando a seguir para iniciar o dispositivo SBD nos dois nós.
/usr/share/sbd/sbd.sh start
Use o comando a seguir para testar o daemon SBD nos dois nós.
sbd -d <SBD Device Name> list
Os resultados mostram duas entradas após a configuração nos dois nós.
Envie a seguinte mensagem de teste para um dos nós.
sbd -d <SBD Device Name> message <node2> <message>
No segundo nó (node2), use o comando a seguir para verificar o status da mensagem.
sbd -d <SBD Device Name> list
Para adotar a configuração SBD, atualize o arquivo /etc/sysconfig/sbd desta forma nos dois nós.
SBD_DEVICE=" <SBD Device Name>" SBD_WATCHDOG="yes" SBD_PACEMAKER="yes" SBD_STARTMODE="clean" SBD_OPTS=""
Use o comando a seguir para iniciar o serviço pacemaker no nó primário (node1).
systemctl start pacemaker
Se o serviço pacemaker falhar, consulte a seção Cenário 5: o serviço pacemaker falhará mais tarde neste artigo.
Unir o nó ao cluster
Execute o comando a seguir no node2 para permitir que o node esteja ingressado no cluster.
ha-cluster-join
Se você receber um erro durante a ingressão do cluster, consulte a seção Cenário 6: Node2 não pode ingressar no cluster mais adiante neste artigo.
Validar o cluster
Use os comandos a seguir para verificar e, opcionalmente, iniciar o cluster pela primeira vez nos dois nós.
systemctl status pacemaker systemctl start pacemaker
Execute o comando a seguir para garantir que os dois nós estão online. Você pode executá-lo em qualquer nó do cluster.
crm_mon
Você também pode entrar no Hawk para verificar o status do cluster:
https://\<node IP>:7630
. O usuário padrão hacluster e a senha é linux. Se necessário, altere a senha usando o comandopasswd
.
Configure as propriedades e os recursos do cluster
Esta seção descreve as etapas para configurar os recursos do cluster. Neste exemplo, você configura usa os recursos a seguir. Você pode configurar o REST (se necessário) referenciando o guia de HA do SUSE.
- Inicialização do cluster
- Dispositivo de isolamento
- Endereço IP virtual
Faça a configuração somente no nó primário.
Crie o arquivo de inicialização do cluster e configure-o adicionando o texto a seguir.
sapprdhdb95:~ # vi crm-bs.txt # enter the following to crm-bs.txt property $id="cib-bootstrap-options" \ no-quorum-policy="ignore" \ stonith-enabled="true" \ stonith-action="reboot" \ stonith-timeout="150s" rsc_defaults $id="rsc-options" \ resource-stickiness="1000" \ migration-threshold="5000" op_defaults $id="op-options" \ timeout="600"
Use o comando a seguir para adicionar a configuração ao cluster.
crm configure load update crm-bs.txt
Configure o dispositivo de isolamento adicionando o recurso, criando o arquivo e adicionando o texto conforme mostrado a seguir.
# vi crm-sbd.txt # enter the following to crm-sbd.txt primitive stonith-sbd stonith:external/sbd \ params pcmk_delay_max="15"
Use o comando a seguir para adicionar a configuração ao cluster.
crm configure load update crm-sbd.txt
Adicione o endereço IP virtual para o recurso criando o arquivo e adicionando o texto a seguir.
# vi crm-vip.txt primitive rsc_ip_HA1_HDB10 ocf:heartbeat:IPaddr2 \ operations $id="rsc_ip_HA1_HDB10-operations" \ op monitor interval="10s" timeout="20s" \ params ip="10.35.0.197"
Use o comando a seguir para adicionar a configuração ao cluster.
crm configure load update crm-vip.txt
Use o comando
crm_mon
para validar os recursos.Os resultados mostram os dois recursos.
Você pode verificar o status em https://<endereço IP do nó>:7630/cib/live/state.
Testar o processo de failover
Para testar o processo de failover, use o comando a seguir para interromper o serviço pacemaker no node1.
Service pacemaker stop
Os recursos fazem failover para node2.
Pare o serviço pacemaker no node2 e os recursos farão failover no node1.
Aqui está o status antes do failover:
Aqui está o status depois do failover:
Solução de problemas
Esta seção descreve os cenários de falha que você pode encontrar durante a instalação.
Cenário 1: o nó do cluster não está online
Se algum dos nós não aparecer online no Gerenciador de Cluster, você pode tentar esse procedimento para colocá-lo online.
Use o comando a seguir para iniciar o serviço iSCSI.
service iscsid start
Use o comando a seguir para entrar nesse nó iSCSI.
iscsiadm -m node -l
A saída esperada terá essa aparência:
sapprdhdb45:~ # iscsiadm -m node -l Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.11,3260] (multiple) Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.12,3260] (multiple) Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.22,3260] (multiple) Logging in to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.21,3260] (multiple) Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.11,3260] successful. Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.12,3260] successful. Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.22,3260] successful. Login to [iface: default, target: iqn.1992-08.com.netapp:hanadc11:1:t020, portal: 10.250.22.21,3260] successful.
Cenário 2: o yast2 não mostra a exibição gráfica
A tela gráfica do yast2 é usada para configurar o cluster de alta disponibilidade neste artigo. Se o yast2 não abrir com a janela gráfica como mostrado, e gerar um erro Qt, faça as etapas a seguir para instalar os pacotes necessários. Se ele abre com a janela gráfica, você pode ignorar estas etapas.
Aqui está um exemplo de erro Qt:
Aqui está um exemplo da saída esperada:
Certifique-se de estar conectado como usuário “raiz” e ter o SMT configurado para baixar e instalar os pacotes.
Acesse o Software>yast>Software de gerenciamento>Dependências e selecione Instalar pacotes recomendados.
Observação
Execute os dois nós para poder acessar o modo de exibição gráfico do yast2 em ambos os nós.
A captura de tela a seguir mostra a tela esperada.
Em Dependências, selecione Instalar Pacotes Recomendados.
Examine as alterações e selecione OK.
A instalação do pacote continua.
Selecione Avançar.
Quando a tela Instalação concluída com êxito for exibida, selecione Concluir.
Use os comandos a seguir para instalar os pacotes libqt4 and libyui-qt.
zypper -n install libqt4
zypper -n install libyui-qt
Agora o Yast2 deverá ser capaz de abrir a exibição gráfica.
Cenário 3: o yast2 não mostra a opção de alta disponibilidade
Para a opção de alta disponibilidade ficar visível no centro de controle do yast2, você precisará instalar os outros pacotes.
Vá para software>yast2>Gerenciamento de software. Em seguida, selecione Atualização Online>do Software.
Selecione padrões para os itens a seguir. Em seguida, selecione Aceitar.
- Base do servidor do SAP HANA
- Compilador e ferramentas C/C++
- Alta disponibilidade
- Base do servidor de aplicativos SAP
Na lista de pacotes que foram alterados para resolver dependências, selecione Continuar.
Na página de status Executando a Instalação, selecione Avançar.
Quando a instalação for concluída, um relatório de instalação será exibido. Selecione Concluir.
Cenário 4: a instalação do HANA falha com erro de assemblies gcc
Se a instalação do HANA falhar, você poderá receber o erro a seguir.
Para corrigir o problema, instale as bibliotecas libgcc_sl e libstdc++6, conforme mostrado na captura de tela a seguir.
Cenário 5: falha do serviço Pacemaker
As informações a seguir aparecerão se o serviço pacemaker não puder iniciar.
sapprdhdb95:/ # systemctl start pacemaker
A dependency job for pacemaker.service failed. See 'journalctl -xn' for details.
sapprdhdb95:/ # journalctl -xn
-- Logs begin at Thu 2017-09-28 09:28:14 EDT, end at Thu 2017-09-28 21:48:27 EDT. --
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV ] Service engine unloaded: corosync configuration map
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [QB ] withdrawing server sockets
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV ] Service engine unloaded: corosync configuration ser
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [QB ] withdrawing server sockets
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV ] Service engine unloaded: corosync cluster closed pr
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [QB ] withdrawing server sockets
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV ] Service engine unloaded: corosync cluster quorum se
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [SERV ] Service engine unloaded: corosync profile loading s
Sep 28 21:48:27 sapprdhdb95 corosync[68812]: [MAIN ] Corosync Cluster Engine exiting normally
Sep 28 21:48:27 sapprdhdb95 systemd[1]: Dependency failed for Pacemaker High Availability Cluster Manager
-- Subject: Unit pacemaker.service has failed
-- Defined-By: systemd
-- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Unit pacemaker.service has failed.
--
-- The result is dependency.
sapprdhdb95:/ # tail -f /var/log/messages
2017-09-28T18:44:29.675814-04:00 sapprdhdb95 corosync[57600]: [QB ] withdrawing server sockets
2017-09-28T18:44:29.676023-04:00 sapprdhdb95 corosync[57600]: [SERV ] Service engine unloaded: corosync cluster closed process group service v1.01
2017-09-28T18:44:29.725885-04:00 sapprdhdb95 corosync[57600]: [QB ] withdrawing server sockets
2017-09-28T18:44:29.726069-04:00 sapprdhdb95 corosync[57600]: [SERV ] Service engine unloaded: corosync cluster quorum service v0.1
2017-09-28T18:44:29.726164-04:00 sapprdhdb95 corosync[57600]: [SERV ] Service engine unloaded: corosync profile loading service
2017-09-28T18:44:29.776349-04:00 sapprdhdb95 corosync[57600]: [MAIN ] Corosync Cluster Engine exiting normally
2017-09-28T18:44:29.778177-04:00 sapprdhdb95 systemd[1]: Dependency failed for Pacemaker High Availability Cluster Manager.
2017-09-28T18:44:40.141030-04:00 sapprdhdb95 systemd[1]: [/usr/lib/systemd/system/fstrim.timer:8] Unknown lvalue 'Persistent' in section 'Timer'
2017-09-28T18:45:01.275038-04:00 sapprdhdb95 cron[57995]: pam_unix(crond:session): session opened for user root by (uid=0)
2017-09-28T18:45:01.308066-04:00 sapprdhdb95 CRON[57995]: pam_unix(crond:session): session closed for user root
Para corrigi-lo, exclua a linha a seguir do arquivo /usr/lib/systemd/system/fstrim.timer:
Persistent=true
Cenário 6: o node2 não pode ingressar no cluster
O erro a seguir será exibido se houver um problema com a junção do node2 ao cluster existente por meio do comando ha-cluster-join.
ERROR: Can’t retrieve SSH keys from <Primary Node>
Para corrigir isso:
Execute os comandos a seguir nos dois nós.
ssh-keygen -q -f /root/.ssh/id_rsa -C 'Cluster Internal' -N '' cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
Confirme se node2 foi adicionado ao cluster.
Próximas etapas
Você pode encontrar mais informações sobre a configuração de HA do SUSE nos seguintes artigos:
- Cenário otimizado para desempenho da SR SAP HANA (site SUSE)
- Isolamento e dispositivos de isolamento (site do SUSE)
- Esteja preparado para usar o cluster do pacemaker para SAP HANA – Parte 1: Noções básicas (blog do SAP)
- Esteja preparado para usar o cluster do pacemaker para SAP HANA – Parte 2: Falha nos dois nós (blog do SAP)
- Backup e restauração de SO