LVS vs HAProxy, mana yang harus saya pilih?

21

Saya mencari solusi untuk load balancing dan strategi failover, terutama untuk aplikasi web besar. Kami memiliki banyak layanan yang seimbang, seperti web, MySQL, dan banyak layanan berbasis HTTP atau TCP lainnya. Tetapi saya tidak yakin apa pro dan kontra mereka, dan mana yang harus saya pilih.

Mickey Shine
sumber

Jawaban:

24

Yang paling penting yang membedakan dua solusi (LVS, HAproxy) adalah satu bekerja pada layer 4 (LVS) dan yang lainnya pada layer 7 (HAproxy). Perhatikan bahwa referensi lapisan berasal dari model jaringan OSI.

Jika Anda memahami ini, Anda akan dapat menggunakannya di tempat yang tepat. Sebagai contoh: jika Anda perlu menyeimbangkan hanya berdasarkan jumlah koneksi (misalkan), penyeimbang beban lapisan 4 sudah cukup; di sisi lain, jika Anda ingin memuat-penyeimbang berdasarkan waktu respons HTTP, Anda akan membutuhkan jenis lapisan LB yang lebih tinggi.

Kelemahan dari menggunakan LB tingkat yang lebih tinggi adalah sumber daya yang dibutuhkan (untuk jumlah yang sama, katakanlah lalu lintas). Kelebihannya jelas - pikirkan "inspeksi tingkat paket", "protokol routing", dll - hal-hal yang jauh lebih rumit daripada "packet routing" sederhana.

Poin terakhir yang ingin saya sampaikan adalah bahwa HAproxy adalah userspace (pikirkan "jauh lebih mudah untuk dikustomisasi / tweak", tetapi lebih lambat (kinerja)), sementara LVS ada dalam ruang kernel (pikirkan "cepat sekali", tetapi kaku seperti kernel ). Juga, jangan lupa tentang "meningkatkan LVS mungkin berarti perubahan kernel - ergo, reboot" ...

Kesimpulannya, gunakan alat yang tepat untuk pekerjaan yang tepat.

Raven007
sumber
Saya suka bagaimana orang masih menggunakan lapisan OSI, meskipun mereka tidak pernah diimplementasikan dalam kenyataan.
kubanczyk
9

Anda harus menggunakan keduanya: HAProxy adalah penyeimbang beban yang hebat dan LVS adalah solusi untuk failover dan menghindari Titik Kegagalan Tunggal.

lg.
sumber
1
+1, kecuali HAProxy terutama untuk penggunaan HTTP karena selain itu menyembunyikan sumber IP permintaan yang dapat menjadi masalah (misalnya untuk SMTP RBL)
Antoine Benkemoun
3
Saya menggunakan HAProxy untuk server tcp murni dan bekerja dengan sangat baik. Sumber Ip hidden adalah masalah untuk semua penyeimbang beban.
lg.
2
Saya percaya IP sumber tersembunyi adalah salah satu alasan mengapa loadbalancers tidak sering digunakan untuk layanan SMTP.
Stefan Lasiewski
3
Lvs dan ha proxy melakukan hal yang sama. Saya lebih suka LVS, sangat cepat karena berjalan di kernel.
Diego Woitasen
1
@AntoineBenkemoun Anda dapat menggunakan mode transparan HAProxy untuk menampilkan IP klien.
Thomas Decaux