LVS กับ HAProxy ฉันควรเลือกแบบใด


21

ฉันกำลังมองหาโซลูชันในการโหลดบาลานซ์และกลยุทธ์การเฟลโอเวอร์ส่วนใหญ่สำหรับเว็บแอปพลิเคชันขนาดใหญ่ เรามีบริการมากมายที่จะต้องมีความสมดุลเช่นเว็บ, MySQL, และบริการ HTTP หรือ TCP อื่น ๆ อีกมากมาย แต่ฉันไม่แน่ใจว่าข้อดีข้อเสียของพวกเขาคืออะไรและฉันควรเลือกอะไร

คำตอบ:


24

สิ่งที่สำคัญที่สุดที่สร้างความแตกต่างให้กับโซลูชันทั้งสอง (LVS, HAproxy) คือโซลูชันหนึ่งทำงานที่ชั้น 4 (LVS) และอีกโซลูชันหนึ่งที่ชั้น 7 (HAproxy) โปรดทราบว่าการอ้างอิงเลเยอร์มาจากรูปแบบเครือข่าย OSI

หากคุณเข้าใจสิ่งนี้คุณจะสามารถใช้งานได้ในที่ที่เหมาะสม ตัวอย่างเช่น: หากคุณต้องการสร้างความสมดุลตามจำนวนการเชื่อมต่อ (สมมติว่า) โหลดบาลานซ์ของเลเยอร์ 4 ควรเพียงพอ ในทางกลับกันถ้าคุณต้องการโหลดบาลานเซอร์ตามเวลาตอบสนอง HTTP คุณจะต้องใช้เลเยอร์ LB ที่สูงกว่า

ข้อเสียของการใช้ LB ในระดับที่สูงขึ้นคือทรัพยากรที่จำเป็น (สำหรับปริมาณการรับส่งข้อมูลปริมาณเดียวกัน) สิ่งที่เห็นได้ชัดคือคิดว่า "การตรวจสอบระดับแพ็คเก็ต", "การกำหนดเส้นทางของโปรโตคอล" และอื่น ๆ - สิ่งที่ซับซ้อนกว่าการกำหนดเส้นทางแพ็คเก็ตแบบธรรมดา

จุดสุดท้ายที่ฉันต้องการทำคือ HAproxy เป็น userspace (คิดว่า "ง่ายกว่าที่จะปรับแต่ง / บิด" แต่ช้ากว่า (ประสิทธิภาพ)) ในขณะที่ LVS อยู่ในพื้นที่เคอร์เนล (คิดว่า "เร็วเท่ากับนรก" แต่แข็งเหมือนเคอร์เนล ) นอกจากนี้อย่าลืมเกี่ยวกับ "การอัพเกรด LVS อาจหมายถึงการเปลี่ยนแปลงเคอร์เนล - เออร์โกรีบูต" ...

โดยสรุปให้ใช้เครื่องมือที่เหมาะสมสำหรับงานที่เหมาะสม


ฉันชอบที่ผู้คนยังคงใช้เลเยอร์ OSI แม้ว่าพวกเขาจะไม่ได้ใช้งานจริง
kubanczyk

9

คุณควรใช้ทั้งสองอย่าง: HAProxy เป็น load balancer ที่ยอดเยี่ยมและ LVS เป็นวิธีแก้ปัญหาความล้มเหลวและหลีกเลี่ยง Single Point of Failure


1
+1 ยกเว้น HAProxy นั้นใช้สำหรับการใช้งาน HTTP เป็นหลักเพราะมันจะซ่อน IP ต้นทางของคำขอซึ่งอาจเป็นปัญหา (สำหรับ SMTP RBL เช่น)
Antoine Benkemoun

3
ฉันใช้ HAProxy สำหรับเซิร์ฟเวอร์ tcp แท้ๆและทำงานได้ดีมาก Ip ต้นทางที่ซ่อนอยู่มีปัญหาสำหรับตัวโหลดบาลานซ์ทั้งหมด
lg

2
ฉันเชื่อว่า IP ต้นทางที่ซ่อนอยู่เป็นสาเหตุหนึ่งที่ทำให้ loadbalancer ไม่ได้ถูกใช้บ่อยสำหรับบริการ SMTP
Stefan Lasiewski

3
lvs และ ha proxy ทำสิ่งเดียวกัน ฉันชอบ LVS เร็วกว่าจริงๆเพราะมันทำงานบนเคอร์เนล
Diego Woitasen

1
@AntoineBenkemoun คุณสามารถใช้โหมดโปร่งใสของ HAProxy เพื่อแสดง IP ของไคลเอ็นต์
โทมัส Decaux
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.