Instalando um cluster básico de três nós de alta disponibilidade
- O QUE É?
Como configurar um cluster básico de três nós de alta disponibilidade com SBD sem disco e um watchdog de software.
- POR QUÊ?
Você pode usar esse cluster para fins de teste ou como uma configuração de cluster mínima que pode ser estendida no futuro.
- DEDICAÇÃO
A configuração de um cluster básico de alta disponibilidade leva cerca de 15 minutos, dependendo da velocidade da sua conexão de rede.
- META
Comece a usar o SUSE Linux Enterprise High Availability de forma rápida e fácil.
1 Cenário de uso #
Este guia descreve a configuração de um cluster mínimo de alta disponibilidade com as seguintes propriedades:
Três nós de cluster com acesso SSH sem senha entre eles. São necessários três nós nessa configuração para o SBD sem disco lidar com os cenários de split brain sem a ajuda do QDevice.
Um endereço IP virtual flutuante para que os clientes se conectem à ferramenta de gerenciamento gráfico Hawk, seja qual for o nó em que o serviço é executado.
Um SBD (STONITH Block Device) sem disco e um watchdog de software usado como mecanismo de fencing de nó para evitar cenários de split brain.
Failover de recursos de um nó para outro em caso de falha no host ativo (configuração de modo ativo/passivo).
Esta é uma configuração de cluster simples com requisitos externos mínimos. Você pode usar esse cluster para fins de teste ou como uma configuração de cluster básica que pode ser estendida para um ambiente de produção no futuro.
2 Visão geral da instalação #
Para instalar o cluster de alta disponibilidade descrito na Seção 1, “Cenário de uso”, você deve executar as seguintes tarefas:
Revise a Seção 3, “Requisitos do sistema” para garantir que você tenha tudo o que precisa.
Instale o SUSE Linux Enterprise High Availability nos nós do cluster seguindo a Seção 4, “Habilitando a extensão de alta disponibilidade”.
Inicialize o cluster no primeiro nó de acordo com a Seção 5, “Configurando o primeiro nó”.
Consulte a Seção 6, “Adicionando o segundo e o terceiro nós” para adicionar outros nós ao cluster.
Faça login na interface da Web do Hawk para monitorar o cluster seguindo a Seção 7, “Fazendo login no Hawk”.
Execute testes básicos para garantir que o cluster funcione conforme o esperado. Consulte a Seção 8, “Testando o cluster”.
Leia a Seção 9, “Próximas etapas” para obter orientação de como expandir o cluster para um ambiente de produção.
3 Requisitos do sistema #
Esta seção descreve os requisitos do sistema para configuração mínima do SUSE Linux Enterprise High Availability.
3.1 Requisitos de hardware #
- Servidores
Três servidores para atuar como nós do cluster.
Os servidores podem ser completamente vazios ou máquinas virtuais. Eles não exigem hardware idêntico (memória, espaço em disco, etc.), mas devem ter a mesma arquitetura. Clusters compatíveis com várias plataformas não são suportados.
Consulte a seção System Requirements em https://www.suse.com/download/sle-ha/ para obter mais detalhes sobre o hardware do servidor.
- Placas de interface de rede (NICs, Network Interface Cards)
Pelo menos duas NICs por nó do cluster. Dessa forma, você pode configurar dois ou mais canais de comunicação para o cluster, usando um dos seguintes métodos:
Combinar as NICs em um vínculo de rede (preferencial). Nesse caso, você deve configurar o dispositivo vinculado em cada nó antes de inicializar o cluster.
Criar um segundo canal de comunicação no Corosync. O script de configuração do cluster pode configurá-lo. Nesse caso, as duas NICs devem estar em sub-redes diferentes.
- STONITH (fencing de nó)
Para serem compatíveis, todos os clusters SUSE Linux Enterprise High Availability devem ter pelo menos um dispositivo de fencing de nó (STONITH) para evitar cenários de split brain. Ele pode ser um dispositivo físico (interruptor) ou um SBD (STONITH Block Device) em combinação com um watchdog. O SBD pode ser usado com armazenamento compartilhado ou no modo sem disco.
A configuração mínima descrita neste guia usa um watchdog de software e um SBD sem disco, portanto, nenhum hardware adicional é necessário. Antes de usar esse cluster em um ambiente de produção, substitua o watchdog de software por um de hardware.
3.2 Requisitos de software #
- Sistema operacional
Todos os nós devem ter o SUSE Linux Enterprise Server instalado e registrado.
- Extensão de alta disponibilidade
A SUSE Linux Enterprise High Availability Extension requer um código de registro adicional.
É possível habilitar essa extensão durante a instalação do SLES, ou posteriormente em um sistema em execução. Este guia explica como habilitar e registrar a extensão em um sistema em execução.
3.3 Requisitos de rede #
- Sincronização de Horário
Todos os sistemas devem ser sincronizados com um servidor NTP fora do cluster. O SUSE Linux Enterprise Server usa o
chronypara NTP. Ao inicializar o cluster, você receberá um aviso caso ochronynão esteja em execução.Mesmo que os nós estejam sincronizados, ainda poderá ser difícil analisar os arquivos de registro e os relatórios do cluster se os nós tiverem fusos horários diferentes configurados.
- Nome de host e endereço IP
Todos os nós do cluster devem conseguir encontrar uns aos outros pelo nome. Use os seguintes métodos para obter uma resolução de nomes confiável:
Use endereços IP estáticos.
Liste todos os nós no arquivo
/etc/hostscom os endereços IP, o FQDN e o nome de host abreviado.
Apenas o endereço IP principal é suportado em cada NIC.
- SSH
Todos os nós do cluster devem ser capazes de acessar uns aos outros por SSH. Algumas operações de cluster também exigem autenticação SSH sem senha. Quando você inicializa o cluster, o script de configuração verifica as chaves SSH existentes e as gera, se não existirem.
Importante: Acesso por SSH derootno SUSE Linux Enterprise 16No SUSE Linux Enterprise 16, o login por SSH de
rootcom senha está desabilitado por padrão.Em cada nó, crie um usuário com privilégios de
sudoou configure a autenticação SSH sem senha para o usuáriorootantes de inicializar o cluster.Se você inicializar o cluster com um usuário
sudo, alguns comandoscrmshtambém precisarão de permissão desudosem senha.
4 Habilitando a extensão de alta disponibilidade #
Este procedimento explica como instalar o SUSE Linux Enterprise High Availability em um SUSE Linux Enterprise Server existente. Você pode ignorar esse procedimento se já tiver instalado a extensão e os pacotes de alta disponibilidade durante a instalação do SLES com o Agama.
O SUSE Linux Enterprise Server é instalado e registrado no SUSE Customer Center.
Você tem um código de registro adicional para o SUSE Linux Enterprise High Availability.
Execute este procedimento em todas as máquinas que pretende usar como nós do cluster:
Faça login como usuário
rootou como usuário com privilégios desudo.Verifique se a extensão de alta disponibilidade já está habilitada:
>sudo SUSEConnect --list-extensionsVerifique se os pacotes de alta disponibilidade já estão instalados:
>zypper search ha_slesHabilite a SUSE Linux Enterprise High Availability Extension:
>sudo SUSEConnect -p sle-ha/16.0/x86_64 -r HA_REGCODEInstale os pacotes de alta disponibilidade:
>sudo zypper install -t pattern ha_sles
5 Configurando o primeiro nó #
O SUSE Linux Enterprise High Availability inclui scripts de configuração para simplificar a instalação do cluster. Para configurar o cluster no primeiro nó, use o script crm cluster init.
5.1 Visão geral do script crm cluster init #
O comando crm cluster init inicia um script que define os parâmetros básicos necessários para comunicação do cluster, resultando em um cluster de um nó em execução.
O script verifica e configura os seguintes componentes:
- NTP
Verifica se o
chronyestá configurado para ser iniciado no momento da inicialização. Do contrário, será exibida uma mensagem.- SSH
Detecta ou gera chaves SSH para login sem senha entre os nós do cluster.
- Firewall
Abre as portas no firewall que são necessárias para a comunicação do cluster.
- Csync2
Configura o Csync2 para replicar os arquivos de configuração para todos os nós em um cluster.
- Corosync
Configura o sistema de comunicação do cluster.
- SBD/watchdog
Verifica se há um watchdog e pergunta se é para configurar o SBD como mecanismo de fencing de nó.
- Administração de cluster do Hawk
Habilita o serviço Hawk e exibe o URL para a interface da Web do Hawk.
- IP flutuante virtual
Pergunta se é para configurar um endereço IP virtual para a interface da Web do Hawk.
- QDevice/QNetd
Pergunta se é para configurar o QDevice e o QNetd para participar das decisões de quorum. Isso é recomendado para clusters com um número par de nós, principalmente para clusters de dois nós.
As opções definidas pelo script crm cluster init podem não ser iguais às configurações padrão do Pacemaker. Você pode verificar as configurações que o script mudou em /var/log/crmsh/crmsh.log. As opções definidas durante o processo de inicialização podem ser modificadas mais tarde com o crmsh.
O script crm cluster init detecta o ambiente do sistema (por exemplo, Microsoft Azure) e ajusta determinadas configurações do cluster com base no perfil desse ambiente. Para obter mais informações, consulte o arquivo /etc/crm/profiles.yml.
5.2 Inicializando o cluster no primeiro nó #
Configure o cluster no primeiro nó com o script crm cluster init. O script solicita informações básicas sobre o cluster e define as configurações e os serviços necessários. Para obter mais informações, execute o comando crm cluster init --help.
O SUSE Linux Enterprise High Availability está instalado e atualizado.
Todos os nós têm pelo menos duas interfaces de rede ou um vínculo de rede, com os endereços IP estáticos listados no arquivo
/etc/hostsjunto com o FQDN e o nome de host abreviado de cada nó.
Execute este procedimento apenas em um nó:
Faça login no primeiro nó como usuário
rootou como usuário com privilégios desudo.Inicie o script
crm cluster init:>sudo crm cluster initO script verifica se o
chronyestá em execução, abre as portas de firewall necessárias, configura o Csync2 e confere as chaves SSH. Se não houver chaves SSH disponíveis, o script vai gerá-las.Configure o Corosync para comunicação com o cluster:
Insira um endereço IP para o primeiro canal de comunicação (
ring0). Por padrão, o script propõe o endereço da primeira interface de rede disponível. Pode ser uma interface individual ou um dispositivo vinculado. Aceite esse endereço ou insira um diferente.Se o script detectar várias interfaces de rede, ele perguntará se você deseja configurar um segundo canal de comunicação (
ring1). Se você configurou o primeiro canal com um dispositivo vinculado, pode recusar comn. Se você precisar configurar um segundo canal, confirme comye insira o endereço IP de outra interface de rede. As duas interfaces devem estar em sub-redes diferentes.
O script configura as portas de firewall padrão para comunicação com o Corosync.
Escolha se deseja configurar o SBD como mecanismo de fencing de nó:
Pressione
ypara confirmar que você deseja usar o SBD.Quando for solicitado o caminho para um dispositivo de blocos, insira
nonepara configurar o SBD sem disco.
O script configura o SBD, incluindo as definições de tempo de espera relevantes. Ao contrário do SBD baseado em disco, o SBD sem disco não exige um recurso de cluster STONITH.
Se não houver um watchdog de hardware disponível, o script vai configurar o watchdog de software
softdog.Configure um endereço IP virtual para administração do cluster com a interface da Web do Hawk:
Pressione
ypara confirmar que você deseja configurar um endereço IP virtual.Insira um endereço IP não usado para definir como o IP de administração do Hawk.
Em vez de fazer login no Hawk em um nó de cluster individual, você pode se conectar ao endereço IP virtual.
Escolha se você deseja configurar o QDevice e o QNetd:
Para a configuração mínima descrita neste documento, insira
npara recusar.
O script inicia os serviços do cluster para colocar o cluster online e habilitar o Hawk. O URL que será usado no Hawk é exibido na tela. Você também pode verificar o status do cluster com o comando crm status.
hacluster
O script crm cluster init cria um usuário e uma senha padrão do cluster. Substitua a senha padrão por uma segura assim que possível:
>sudo passwd hacluster
6 Adicionando o segundo e o terceiro nós #
Adicione outros nós ao cluster com o script crm cluster join. O script precisa apenas de acesso a um nó do cluster existente para concluir a configuração básica na máquina atual automaticamente. Para obter mais informações, execute o comando crm cluster join --help.
O SUSE Linux Enterprise High Availability está instalado e atualizado.
Já existe um cluster executado em pelo menos um nó.
Todos os nós têm pelo menos duas interfaces de rede ou um vínculo de rede, com os endereços IP estáticos listados no arquivo
/etc/hostsjunto com o FQDN e o nome de host abreviado de cada nó.Se você fizer login como usuário
sudo: O mesmo usuário deverá existir em todos os nós. Esse usuário deverá ter permissão desudosem senha.Se você fizer login como usuário
root: A autenticação SSH sem senha deverá ser configurada em todos os nós.
Execute este procedimento em cada nó adicional:
Faça login nesse nó como o mesmo usuário com o qual você configurou o primeiro nó.
Inicie o script
crm cluster join:Se você configurar o primeiro nó como
root, poderá iniciar o script sem parâmetros adicionais:#crm cluster joinSe você configurar o primeiro nó como um usuário
sudo, deverá especificar esse usuário com a opção-c:>sudo crm cluster join -c USER@NODE1
O script verifica se o
chronyestá em execução, abre as portas de firewall necessárias e configura o Csync2.Se você ainda não especificou o primeiro nó com
-c, é solicitado o endereço IP ou o nome de host dele.Se você ainda não configurou a autenticação SSH sem senha entre os nós, são solicitadas as senhas de cada um dos nós existentes.
Configure o Corosync para comunicação com o cluster:
O script propõe um endereço IP para
ring0. Esse endereço IP deve estar na mesma sub-rede que o endereço IP usado pararing0no primeiro nó. Se não estiver, insira o endereço IP correto.Se o cluster tiver dois canais de comunicação do Corosync configurados, o script solicitará um endereço IP para
ring1. Esse endereço IP deve estar na mesma sub-rede que o endereço IP usado pararing1no primeiro nó.
O script copia a configuração do cluster do primeiro nó, ajusta as configurações de tempo de espera para considerar o novo nó e coloca o novo nó online.
Você pode verificar o status do cluster com o comando crm status.
hacluster
O script crm cluster join cria um usuário e uma senha padrão do cluster. Em cada nó, substitua a senha padrão por uma segura assim que possível:
>sudo passwd hacluster
7 Fazendo login no Hawk #
O Hawk permite monitorar e administrar um cluster de alta disponibilidade usando um navegador da Web gráfico. Você também pode configurar um endereço IP virtual que permite aos clientes se conectarem ao Hawk, seja qual for o nó em que ele está em execução.
A máquina cliente deve conseguir se conectar aos nós do cluster.
A máquina cliente deve ter um navegador da Web gráfico com JavaScript e cookies habilitados.
Você pode executar este procedimento em qualquer máquina que tenha conexão com os nós do cluster:
Inicie um navegador da Web e insira este URL:
https://HAWKSERVER:7630/
Substitua HAWKSERVER pelo endereço IP ou nome de host de um nó do cluster, ou pelo endereço IP virtual do Hawk, se foi configurado um.
Nota: Aviso de certificadoSe um aviso de certificado for exibido quando você acessar o URL pela primeira vez, um certificado autoassinado estará em uso. Solicite ao operador do cluster os detalhes do certificado para verificá-lo. Para continuar mesmo assim, você pode adicionar uma exceção ao browser para ignorar o aviso.
Na tela de login do Hawk, insira o e a do usuário
hacluster.Clique em . Por padrão, a interface da Web do Hawk mostra a tela .
8 Testando o cluster #
Os testes a seguir podem ajudar você a identificar problemas básicos na configuração do cluster. No entanto, um teste realista envolve casos de uso e cenários específicos. Antes de usar o cluster em um ambiente de produção, teste-o completamente de acordo com os seus casos de uso.
8.1 Testando o failover de recursos #
Verifique se o cluster move recursos para outro nó caso o nó atual esteja definido como standby. Este procedimento usa nós de exemplo chamados alice e bob, e um recurso IP virtual chamado admin-ip com o endereço IP de exemplo 192.168.1.10.
Abra dois terminais.
No primeiro terminal, faça ping do endereço IP virtual:
>ping 192.168.1.10No segundo terminal, faça login em um dos nós do cluster.
Verifique em qual nó o endereço IP virtual está em execução:
>sudo crm status[..] Node List: * Online: [ alice bob ] Full List of Resources: * admin-ip (ocf:heartbeat:IPaddr2): Started aliceDefina o modo de
alicecomo standby:>sudo crm node standby aliceVerifique o status do cluster novamente. O recurso
admin-ipdeve ter migrado parabob:>sudo crm status[...] Node List: * Node alice: standby * Online: [ bob ] Full List of Resources: * admin-ip (ocf:heartbeat:IPaddr2): Started bobNo primeiro terminal, você deve ver um fluxo contínuo de pings para o endereço IP virtual durante a migração. Isso mostra que a configuração do cluster e o endereço IP flutuante funcionam corretamente.
Cancele o comando
pingcom Ctrl–C.No segundo terminal, coloque
alicenovamente online:>sudo crm node online alice
8.2 Testando falhas do cluster #
O comando crm cluster crash_test simula falhas do cluster e relata os resultados.
O comando suporta as seguintes verificações:
-
--split-brain-iptables Simula um cenário de split brain bloqueando a porta do Corosync e verifica se é possível fazer fencing do nó conforme o esperado. Você deve instalar o pacote iptables antes de executar este teste.
--kill-sbd/--kill-corosync/--kill-pacemakerdEncerra os daemons do SBD, Corosync ou Pacemaker. Após executar um desses testes, você encontrará um relatório no diretório
/var/lib/crmsh/crash_test/. O relatório inclui a descrição de um caso de teste, o registro das ações e uma explicação dos possíveis resultados.-
--fence-node NODE Delimita o nó específico passado pela linha de comando.
Para obter mais informações, execute o comando crm cluster crash_test --help.
O exemplo a seguir usa os nós chamados alice e bob, e testa o fencing de bob. Para observar a mudança de status de bob durante o teste, você pode fazer login no Hawk e navegar até › .
>sudo crm status[...] Node List: * Online: [ alice bob ] Active Resources: * admin-ip (ocf:heartbeat:IPaddr2): Started alice>sudo crm cluster crash_test --fence-node bob============================================== Testcase: Fence node bob Fence action: reboot Fence timeout: 95 !!! WARNING WARNING WARNING !!! THIS CASE MAY LEAD TO NODE BE FENCED. TYPE Yes TO CONTINUE, OTHER INPUTS WILL CANCEL THIS CASE [Yes/No](No):YesINFO: Trying to fence node "bob" INFO: Waiting 71s for node "bob" reboot... INFO: Node "bob" will be fenced by "alice"! INFO: Node "bob" was successfully fenced by "alice"
9 Próximas etapas #
Este guia descreve um cluster básico de alta disponibilidade que pode ser usado para fins de teste. Para expandir esse cluster para uso em ambientes de produção, mais etapas são recomendadas:
- Adicionando mais nós
Adicione outros nós ao cluster usando o script
crm cluster join.- Habilitando um watchdog de hardware
Antes de usar o cluster em um ambiente de produção, substitua
softdogpor um watchdog de hardware.- Adicionando outros dispositivos STONITH
Para cargas de trabalho críticas, é altamente recomendável ter dois ou três dispositivos STONITH, usar dispositivos STONITH físicos ou SBD baseado em disco.
- Configurando o QDevice
O QDevice e o QNetD participam das decisões de quorum. Com a ajuda do arbitrador QNetD, o QDevice fornece um número configurável de votos. Isso permite que os clusters suportem mais falhas de nós do que o permitido pelas regras de quorum padrão. É recomendado implantar o QDevice e o QNetd em clusters com um número par de nós, principalmente em clusters de dois nós.
10 Informações legais #
Copyright© 2006 – 2025 SUSE LLC e colaboradores. Todos os direitos reservados.
Permissão concedida para copiar, distribuir e/ou modificar este documento sob os termos da Licença GNU de Documentação Livre, Versão 1.2 ou (por sua opção) versão 1.3; com a Seção Invariante sendo estas informações de copyright e a licença. Uma cópia da versão 1.2 da licença está incluída na seção intitulada “GNU Free Documentation License” (Licença GNU de Documentação Livre).
Para saber as marcas registradas da SUSE, visite https://www.suse.com/company/legal/. Todas as marcas comerciais de terceiros pertencem a seus respectivos proprietários. Os símbolos de marca registrada (®, ™ etc.) indicam marcas registradas da SUSE e de suas afiliadas. Os asteriscos (*) indicam marcas registradas de terceiros.
Todas as informações deste manual foram compiladas com a maior atenção possível aos detalhes. Entretanto, isso não garante uma precisão absoluta. A SUSE LLC, suas afiliadas, os autores ou tradutores não serão responsáveis por possíveis erros nem pelas consequências resultantes de tais erros.
