
desde que usamos o CentOS 7, mudamos de uma configuração de pulsação normal para o pacemker.
Principalmente, temos recursos IP que estão ativos em um nó e mudam para um segundo nó se ocorrer um failover. Também executamos alguns scripts em caso de failover. Nada especial.
Para que os recursos sempre iniciem no nó primário, eu uso
pcs constraint location Cluster_IP prefers server1=master-server
Eu também uso
pcs resource defaults resource-stickiness=INFINITY
para evitar que os recursos voltem após o failover.
Isso funciona bem para mim, se o mestre falhar (falha de hardware, por exemplo).
Como não é um problema para mim se o failover demorar algum tempo, gostaria de implementar algum tipo de atraso no caso de uma pequena divisão do cérebro.
Antes de fazer qualquer coisa, o escravo deve esperar cerca de 2 minutos, antes de assumir o controle, caso o mestre esteja acessível novamente nestes cerca de 2 minutos.
Eu queria saber, qual seria a melhor maneira de fazer isso?
Responder1
Nunca defini um tempo limite de token no Corosync para algo acima de 10 segundos, mas você pode tentar aumentar/definir o token
valor corosync.conf
para 120000
(120 segundos em milissegundos). token
deve ser definido na totem{}
seção do seu corosync.conf
; man corosync.conf
para mais detalhes.
Isso deve evitar que o Corosync declare um nó morto por 120 segundos quando a rede falhar.
Responder2
Você pode alterar o intervalo de monitoramento do recurso com op monitor interval=Ns
onde N
está o número de segundos e, em seguida, definir migration-threshold
no recurso como 2
. Lembre-se de que com uma configuração 120s
você poderá ver um atraso total de 120-240s, dependendo de quando a falha inicial ocorrer no intervalo de monitoramento.
Há outras advertências quanto a isso, pois o contador de falhas aplicado migration-threshold
não é zerado em caso de sucesso. Para fazer isso, você também precisaria definir failure-timeout
ou intervir manualmente.
Com op monitor interval=120s
, e sua configuração, você precisaria testar para garantir que fornece a funcionalidade esperada e como os contadores de falha se comportam quando o mestre original se recupera migration-threshold=2
. Pode exigir intervenção manual, mas não estou 100% certo dissofailure-timeout=121s
resource-stickiness