Eu tenho duas máquinas (A e B, A é mestre) executando VRPP (de keepalived) para um IP virtual.
Como posso impedir que A se torne mestre novamente se falhar e retornar (por qualquer motivo)?
Estou fazendo isso para que tenhamos um único failover na segunda caixa e voltar ao normal exigiria intervenção manual.
linux
keepalived
vrrp
MrMagu
fonte
fonte
Respostas:
De acordo com esse segmento relativamente antigo da lista de desenvolvedores mantidos vivos, isso pode ser feito. Você define os dois servidores para ter a mesma prioridade (ou nenhum) e não declara o estado como MASTER ou BACKUP e, em vez disso, define o estado como EQUAL para ambos.
EDIT (07-Dez-2017):
Parece que EQUAL não é realmente um estado válido, apesar de parecer fornecer o efeito desejado no momento em que esta resposta foi postada. Observe os comentários abaixo, em particular o link para a lista de problemas atuais para manutenção fornecida por @cristi.
fonte
EQUAL
diretiva inválida e a tratou como se nenhuma prioridade fosse definida (o que aconteceu com o efeito desejado).A maneira como resolvemos isso foi adicionando a
nopreempt
flag ao nosso arquivo de configuração keepalived. Não precisava mudar mais nada (ainda deixava um comoMASTER
e um comoBACKUP
e assim por diante). Basicamente, isso diz para ele não trocar de mestre apenas porque um novo servidor ficou online, somente alterna quando o mestre atual falhar.fonte
Pelo que entendi, quando um novo servidor VRRP é lançado, ele força uma eleição, e o servidor atual não obtém nenhum benefício, então o velho mestre aparece e vence a eleição. Duvido que haja muito que você possa fazer para impedir isso, além do bastante brutal Shoot The Other Node In The Head. Keepalive pode ter alguma configuração para controlar o processo eleitoral. Infelizmente não tenho tempo para verificar agora, mas vou tentar olhar mais tarde.
fonte