Soluzione 1:
Secondo questo thread relativamente vecchio nell'elenco degli sviluppatori keepalived, si può fare. Imposta entrambi i server in modo che abbiano la stessa priorità (o nessuna) e non dichiari lo stato per MASTER o BACKUP, impostando invece lo stato su EQUAL per entrambi.
MODIFICA (07-dic-2017):
Sembra che EQUAL non sia in realtà uno stato valido, nonostante sembri fornire l'effetto desiderato al momento della pubblicazione di questa risposta. Si prega di notare i commenti di seguito, in particolare il collegamento all'elenco dei problemi correnti per keepalived fornito da @cristi.
Soluzione 2:
Il modo in cui abbiamo risolto questo problema è aggiungendo nopreempt
flag al nostro file di configurazione keepalive. Non ho dovuto cambiare nient'altro (ne ho lasciato uno come MASTER
e uno come BACKUP
e così via). Fondamentalmente questo gli dice di non cambiare master solo perché un nuovo server è online, cambia solo quando il master attuale fallisce.