Impedisci che VRRP Master diventi Master una volta fallito


12

Ho due macchine (A e B, A è Master) con VRPP (da keepalived) per un IP virtuale.

Come posso impedire ad A di diventare nuovamente Maestro se ha fallito e tornare indietro (per qualsiasi motivo)?

Lo sto facendo in modo da avere un singolo failover sulla seconda casella e tornare alla normalità richiederebbe un intervento manuale.


Sono troppo nuovo per creare il tag "VRRP"
MrMagu,

Risposte:


14

Secondo questo thread relativamente vecchio nell'elenco degli sviluppatori keepalived, può essere fatto. Si imposta entrambi i server su uguale priorità (o nessuno) e non si dichiara lo stato per MASTER o BACKUP e si imposta invece lo stato su EQUAL per entrambi.

EDIT (07-dic-2017):

Sembra che EQUAL non sia effettivamente uno stato valido, nonostante sembri fornire l'effetto desiderato al momento della pubblicazione della risposta. Si prega di notare i commenti seguenti, in particolare il collegamento all'elenco dei problemi correnti per keepalived fornito da @cristi.


3
Grazie - Vale anche la pena notare che, usando la configurazione sopra (di uguale priorità e usando "EQUAL") se nessun master ha preso il controllo, l'istanza VRRP con IP più basso diventerà MASTER.
MrMagu,

1
Questo è sbagliato. Vedi questo messaggio dagli sviluppatori: github.com/acassen/keepalived/issues/707
cristi

@cristi: era una soluzione funzionante al momento della sua pubblicazione (2009), che a sua volta si basava su informazioni che ho chiaramente riconosciuto che erano vecchie anche allora (2003). Ho aggiornato il link nella mia risposta a uno funzionante poiché osdir.com non sembra più avere gli archivi keepalived-devel. Immagino che, all'epoca, il software ignorasse silenziosamente la EQUALdirettiva non valida e la trattasse come se non fosse stata stabilita alcuna priorità (cosa che aveva appena avuto l'effetto desiderato).
James Sneeringer,

8

Il modo in cui abbiamo risolto questo è aggiungendo il nopreemptflag al nostro file di configurazione keepalived. Non ho dovuto cambiare nient'altro (ne ho lasciato uno come MASTERe uno come BACKUPe così via). Fondamentalmente questo gli dice di non cambiare master solo perché un nuovo server è diventato online, ma cambia solo quando il master corrente fallisce.


4
da " article.gmane.org/gmane.linux.keepalived.devel/1537 " Se "state" è impostato su MASTER, "nopreempt" viene sostanzialmente ignorato poiché quando la macchina con "state MASTER" ritorna, prenderà semplicemente l'IP da la macchina con "stato BACKUP" senza nemmeno tenere elezioni. Ho dovuto impostare entrambe le mie macchine per dichiarare BACKUP con una con priorità più alta affinché "nopreempt" funzionasse come previsto.
MrMagu,

Priorità e stato eliminati e non aggiunti. Funziona bene per me
Rihard Novozhilov,

-1

A quanto ho capito, quando arriva un nuovo server VRRP, forza le elezioni e il server attuale non ottiene alcun vantaggio, quindi il vecchio maestro verrà e vincerà le elezioni. Dubito che ci sia molto da fare per fermarlo, al di là del piuttosto brutale Shoot The Other Node In The Head. Keepalive potrebbe avere una configurazione per controllare il processo elettorale. Purtroppo non ho tempo di controllare ora, ma proverò a guardare più tardi.


C'è una bandiera di configurazione per fare questo, quindi questa risposta è sbagliata.
davr

La risposta votata è corretta per una distribuzione generale di vrrp in cui non si desidera che un master subentri quando ritorna al servizio. Come dici tu, c'è anche un modo keepalived di fare questo che è probabilmente più corretto quando si eseguono cose HA Linux invece di usare semplicemente vrrp per fornire ridondanza L3 per una route predefinita (il motivo più tradizionale per usare vrrp).
chris,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.