47.2. Aprendendo a configurar o failover
Este procedimento fornece uma introdução à criação de um agrupamento de Pacemaker executando um serviço que irá falhar de um nó para outro quando o nó no qual o serviço está sendo executado se tornar indisponível. Trabalhando através deste procedimento, você pode aprender como criar um serviço em um cluster de dois nós e então você pode observar o que acontece com esse serviço quando ele falha no nó em que está rodando.
Este procedimento de exemplo configura um cluster de dois nós Pacemaker rodando um servidor Apache HTTP. Você pode então parar o serviço Apache em um nó para ver como o serviço permanece disponível.
Este procedimento requer como pré-requisito que você tenha dois nós rodando o Red Hat Enterprise Linux 8 que possam se comunicar um com o outro, e requer um endereço IP flutuante que resida na mesma rede que um dos endereços IP atribuídos estaticamente a um dos nós.
-
Os nós utilizados neste exemplo são
z1.example.com
ez2.example.com
. - O endereço IP flutuante usado neste exemplo é 192.168.122.120.
Certifique-se de que os nomes dos nós que você está usando estão no arquivo /etc/hosts
em cada nó.
Em ambos os nós, instalar os pacotes de software Red Hat High Availability Add-On do canal High Availability, e iniciar e habilitar o serviço
pcsd
.yum install pcs pacemaker fence-agents-all systemctl start pcsd.service systemctl enable pcsd.service
# yum install pcs pacemaker fence-agents-all ... # systemctl start pcsd.service # systemctl enable pcsd.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Se você estiver rodando o daemon
firewalld
, em ambos os nós habilite as portas que são exigidas pelo Add-On de Alta Disponibilidade da Red Hat.firewall-cmd --permanent --add-service=high-availability firewall-cmd --reload
# firewall-cmd --permanent --add-service=high-availability # firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Em ambos os nós do cluster, defina uma senha para o usuário
hacluster
.passwd hacluster
# passwd hacluster
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Autentique o usuário
hacluster
para cada nó do cluster no nó a partir do qual você estará executando os comandospcs
.pcs host auth z1.example.com z2.example.com
# pcs host auth z1.example.com z2.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Criar um cluster chamado
my_cluster
com ambos os nós como membros do cluster. Este comando cria e inicia o agrupamento em uma única etapa. Você só precisa executar isto a partir de um nó no cluster porque os comandos de configuraçãopcs
entram em vigor para o cluster inteiro.Em um nó em cluster, execute o seguinte comando.
pcs cluster setup my_cluster --start z1.example.com z2.example.com
# pcs cluster setup my_cluster --start z1.example.com z2.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Um aglomerado Red Hat High Availability requer que você configure a vedação para o aglomerado. As razões para esta exigência estão descritas em Esgrima em um Aglomerado de Alta Disponibilidade da Red Hat. Para esta introdução, porém, para mostrar apenas como funciona o failover nesta configuração, desabilite a vedação definindo a opção de cluster
stonith-enabled
parafalse
AtençãoO uso do
stonith-enabled=false
é completamente inadequado para um cluster de produção. Ele diz ao aglomerado para simplesmente fingir que os nós falhados estão cercados com segurança.pcs property set stonith-enabled=false
# pcs property set stonith-enabled=false
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Após criar um agrupamento e desativar a vedação, verifique o status do agrupamento.
NotaQuando você executa o comando
pcs cluster status
, ele pode mostrar uma saída que difere temporariamente dos exemplos à medida que os componentes do sistema são iniciados.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Em ambos os nós, configure um navegador web e crie uma página web para exibir uma mensagem de texto simples. Se você estiver executando o daemon
firewalld
, habilite as portas que são exigidas porhttpd
.NotaNão utilize
systemctl enable
para permitir que quaisquer serviços que serão gerenciados pelo cluster comecem na inicialização do sistema.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Para que o agente de recursos Apache obtenha o status do Apache, em cada nó do cluster crie a seguinte adição à configuração existente para habilitar a URL do servidor de status.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Crie recursos para o cluster
IPaddr2
eapache
para gerenciá-lo. O recurso 'IPaddr2' é um endereço IP flutuante que não deve ser um já associado a um nó físico. Se o dispositivo NIC do recurso 'IPaddr2' não for especificado, o IP flutuante deve residir na mesma rede que o endereço IP estaticamente atribuído usado pelo nó.Você pode exibir uma lista de todos os tipos de recursos disponíveis com o comando
pcs resource list
. Você pode usar o comandopcs resource describe resourcetype
para exibir os parâmetros que você pode definir para o tipo de recurso especificado. Por exemplo, o seguinte comando exibe os parâmetros que você pode definir para um recurso do tipoapache
:pcs resource describe apache
# pcs resource describe apache ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Neste exemplo, o recurso de endereço IP e o recurso apache são ambos configurados como parte de um grupo chamado
apachegroup
, o que garante que os recursos sejam mantidos juntos para funcionar no mesmo nó.Execute os seguintes comandos a partir de um nó no aglomerado:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Note que, neste caso, o serviço
apachegroup
está rodando no nó z1.example.com.Acesse o site que você criou, pare o serviço no nó em que ele está funcionando e observe como o serviço falha até o segundo nó.
- Aponte um navegador para o site que você criou usando o endereço IP flutuante que você configurou. Isto deve exibir a mensagem de texto que você definiu, exibindo o nome do nó no qual o site está rodando.
Pare o serviço web apache. O uso do
killall -9
simula uma falha no nível de aplicação.killall -9 httpd
# killall -9 httpd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verifique o status do agrupamento. Você deve ver que parar o serviço web causou uma ação falhada, mas que o software de cluster reiniciou o serviço no nó no qual ele estava rodando e você ainda deve ser capaz de acessar o navegador web.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Limpar o status de falha uma vez que o serviço esteja funcionando novamente.
pcs resource cleanup WebSite
# pcs resource cleanup WebSite
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Coloque o nó sobre o qual o serviço está funcionando em modo de espera. Observe que, como desativamos a vedação, não podemos efetivamente simular uma falha no nível do aceno (como puxar um cabo de força) porque a vedação é necessária para que o aglomerado se recupere de tais situações.
pcs node standby z1.example.com
# pcs node standby z1.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Verifique o status do grupo e anote onde o serviço está funcionando agora.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Acesse o site. Não deve haver perda de serviço, embora a mensagem de exibição deva indicar o nó em que o serviço está agora em execução.
Para restaurar os serviços de agrupamento para o primeiro nó, tire o nó do modo de espera. Isto não irá necessariamente mover o serviço de volta para aquele nó.
pcs node unstandby z1.example.com
# pcs node unstandby z1.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Para a limpeza final, pare os serviços de agrupamento em ambos os nós.
pcs cluster stop --all
# pcs cluster stop --all
Copy to Clipboard Copied! Toggle word wrap Toggle overflow