Come configurare HAProxy con failover?


14

Capisco che, per ottenere il failover su una configurazione di bilanciamento del carico HAProxy, sono necessarie due macchine che eseguono HAproxy (e lo instradano verso diverse istanze di server web). Ma in questo caso, diciamo abcd.com, come possiamo suddividere / indirizzare questo traffico a 2 indirizzi IP anziché a uno? Il DNS di solito risolve i nomi di dominio in un singolo IP. Come possiamo farlo utilizzando strumenti / servizi gratuiti / economici?


Risposte:


20

Se hai così tanto carico che devi bilanciare il carico tra due istanze haproxy, allora il round robin DNS non è una cattiva idea (sarei sorpreso se hai questo carico). Il round robin DNS non fornirà comunque un buon failover.

Stack Overflow usiamo heartbeatper fornire un singolo IP virtuale, questo IP è attivo su un solo host haproxy alla volta (se scende, l'altro prende questo IP). È possibile utilizzare il battito cardiaco per avere un IP su ogni macchina e quindi il round robin DNS tra i due. Se uno dovesse fallire, l'altro avrebbe entrambi questi IP.

HAProxy utilizza circa l'1-5% di CPU sul nostro server fisico per bilanciare il nostro traffico che ne ha una singola Intel(R) Xeon(R) CPU E5504 @ 2.00GHz. Quindi HAProxy può generalmente gestire facilmente molto traffico.


1
No. Sicuramente non ho un traffico del genere. È solo un tentativo di evitare SPOF.
mixdev,

2
@mixdev: in quel caso basta avere il punto DNS sul singolo IP virtuale fornito da HeatBeat e dovresti essere pronto. Lasciate il haproxy in esecuzione su entrambe le macchine. Assicurati di testare il failover del battito cardiaco prima di andare in diretta ovviamente.
Kyle Brandt,

@KyleBrandt: cosa succederebbe se il processo di haproxy dovesse morire? Hai configurato qualcosa che consentirebbe di spostare l'IP virtuale in base a quello?
CarpeNoctem,

@CarpeNoctem: al momento non lo abbiamo coperto. Penso che sia il battito cardiaco che il keepalived possano essere configurati per guardare anche i processi. Se segui questa strada, ti consiglio di impostarlo per richiedere che il processo sia inattivo per un buon periodo di tempo (cioè 1 minuto). Probabilmente non vuoi che il battito del cuore si sbagli su un errore di configurazione. HAProxy controlla la maggior parte di questi con -c, ma potrebbe non catturare cose come un errore di configurazione vincolante.
Kyle Brandt,

5
Per chi se ne frega, a Stack ci siamo trasferiti per mantenerci in vita ben oltre un anno fa
Kyle Brandt,

24

Come dice Kyle, il battito cardiaco può essere usato per fare in modo che due server haproxy fungano da coppia fail-over. Tuttavia, mentre molte persone usano il battito cardiaco per il lavoro, keepalived è suggerito dall'autore di haproxy.

Descrive i dettagli sulla mailing list haproxy: http://www.formilux.org/archives/haproxy/1003/3259.html

In breve, va così:

  • il battito cardiaco è orientato al cluster. Garantisce che solo un server abbia accesso a una risorsa (ad es. Archiviazione SAN)

  • keepalived è orientato alla rete. Assicura che almeno un server abbia l'IP in questione.


-1

1
Si prega di includere l'intero contenuto della ricetta nel tuo post. Non siamo esattamente un servizio di collegamento blog.
Deer Hunter,

1
inoltre i blog spesso scendono o cambiano gli URL e le informazioni vanno perse.
Dennis Nolte,

Votazione negativa perché non è assolutamente correlato alla domanda.
danieljimenez,

@danieljimenez, credo non del tutto estraneo, solo un malinteso. OP ha richiesto Active / Passive per lo stesso HAProxy e user3595100 ha interpretato la domanda come Active / Passive per un backend HAProxy. Tuttavia, pubblicare un link non è una risposta accettabile da solo.
duct_tape_coder
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.