Bagaimana cara mensetup HAProxy dengan failover?

14

Saya mengerti bahwa, untuk mendapatkan failover pada pengaturan penyeimbangan beban HAProxy, Anda memerlukan dua mesin yang menjalankan HAproxy (dan rutekan ke beberapa instance server web). Tetapi dalam kasus ini, katakanlah abcd.com, bagaimana kita membagi / merutekan traffic ini ke 2 alamat IP, bukan satu? DNS biasanya menyelesaikan nama domain menjadi satu IP. Bagaimana kita melakukan ini dalam menggunakan alat / layanan gratis / murah?

mixdev
sumber
Periksa ini juga serverfault.com/questions/238605/…
mixdev

Jawaban:

20

Jika Anda memiliki begitu banyak beban sehingga Anda perlu memuat keseimbangan di dua contoh haproxy maka DNS round robin bukanlah ide yang buruk (saya akan terkejut jika Anda memiliki beban ini). DNS round robin tidak akan menghasilkan failover yang baik.

Di Stack Overflow kami gunakan heartbeatuntuk menyediakan IP virtual tunggal, IP ini aktif hanya pada satu host haproxy pada satu waktu (jika turun, yang lain akan mengambil alih IP ini). Anda bisa menggunakan detak jantung untuk memiliki IP di setiap mesin dan kemudian DNS round robin di antara keduanya. Jika salah satu gagal, maka yang lain akan memiliki kedua IP tersebut.

HAProxy menggunakan sekitar 1-5% CPU di server fisik kami untuk menyeimbangkan lalu lintas kami yang memiliki satu Intel(R) Xeon(R) CPU E5504 @ 2.00GHz. Jadi HAProxy umumnya dapat menangani banyak lalu lintas dengan mudah.

Kyle Brandt
sumber
1
Tidak. Saya benar-benar tidak memiliki jenis lalu lintas SO. Ini hanya upaya untuk menghindari SPOF.
mixdev
2
@mixdev: Dalam hal ini hanya memiliki titik DNS ke IP Virtual tunggal yang disediakan oleh heatbeat dan Anda harus baik untuk pergi. Anda tinggal membiarkan haproxy berjalan di kedua mesin. Pastikan untuk menguji detak jantung sebelum pergi tentu saja.
Kyle Brandt
@KyleBrandt: Bagaimana jika proses haproxy mati? Apakah Anda memiliki sesuatu yang dikonfigurasi yang akan memungkinkan IP virtual untuk dipindahkan berdasarkan itu?
CarpeNoctem
@CarpeNoctem: Kami belum memiliki yang tercakup saat ini. Saya pikir detak jantung dan hati tetap dapat diatur untuk menonton proses juga. Jika Anda pergi dengan rute ini, saya akan merekomendasikan pengaturan untuk mensyaratkan bahwa proses turun untuk jumlah waktu yang baik (yaitu 1 menit). Anda mungkin tidak ingin detak jantung mengepak pada kesalahan konfigurasi. HAProxy memeriksa sebagian besar dari ini -c, tetapi mungkin tidak menangkap hal-hal seperti kesalahan konfigurasi yang mengikat.
Kyle Brandt
5
Bagi siapa pun yang peduli, di Stack kami pindah ke keepalived lebih dari setahun yang lalu
Kyle Brandt
24

Seperti yang dikatakan Kyle, detak jantung dapat digunakan untuk membuat dua server haproxy bertindak sebagai pasangan yang gagal. Namun sementara banyak orang menggunakan detak jantung untuk pekerjaan itu, keepalived yaitu menyarankan penulis haproxy ini.

Dia menguraikan detail pada milis haproxy: http://www.formilux.org/archives/haproxy/1003/3259.html

Singkatnya begini:

  • Detak jantung berorientasi pada klaster. Ini memastikan hanya satu server yang memiliki akses ke sumber daya (mis. Penyimpanan SAN)

  • keepalived berorientasi jaringan. Ini memastikan bahwa setidaknya satu server memiliki IP yang dimaksud.

Koperasi
sumber
-1

Anda mungkin menemukan apa yang Anda cari di sini: http://blog.haproxy.com/2014/01/17/emulating-activepassing-application-clustering-with-haproxy/

pengguna3595100
sumber
1
Harap sertakan konten lengkap resep dalam pos Anda. Kami bukan layanan penghubung blog.
Pemburu Rusa
1
selain itu blog sering turun atau mengubah URL dan kemudian info tersebut hilang.
Dennis Nolte
Tidak memilih karena sama sekali tidak terkait dengan pertanyaan.
danieljimenez
@danieljimenez, Saya kira tidak sepenuhnya tidak berhubungan, hanya kesalahpahaman. OP meminta Aktif / Pasif untuk HAProxy itu sendiri dan user3595100 menafsirkan pertanyaan sebagai Aktif / Pasif untuk backend HAProxy. Meskipun demikian, memposting tautan bukanlah jawaban yang dapat diterima dengan sendirinya.
duct_tape_coder