วิธีการตั้งค่า HAProxy ด้วย failover


14

ฉันเข้าใจว่าหากต้องการรับการเฟลโอเวอร์ในการตั้งค่าโหลดบาลานซ์ HAProxy คุณต้องใช้สองเครื่องที่ใช้ HAproxy (และกำหนดเส้นทางไปยังอินสแตนซ์ของเว็บเซิร์ฟเวอร์หลายอินสแตนซ์) แต่ในกรณีนี้ให้พูด abcd.com เราจะแยก / กำหนดเส้นทางการรับส่งข้อมูลนี้ไปยังที่อยู่ IP 2 แห่งแทนที่จะเป็นที่อยู่เดียวได้อย่างไร DNS มักจะแก้ไขชื่อโดเมนเป็น IP เดียว เราจะใช้เครื่องมือ / บริการฟรี / ราคาถูกได้อย่างไร


คำตอบ:


20

หากคุณมีภาระมากที่คุณต้องโหลดยอดคงเหลือในสองอินสแตนซ์ haproxy แล้ว DNS round robin ไม่ใช่ความคิดที่ดี (ฉันจะประหลาดใจถ้าคุณมีภาระนี้) DNS round robin จะไม่ให้การล้มเหลวที่ดี

ที่ Stack Overflow เราใช้heartbeatเพื่อจัดเตรียม IP เสมือนเดียว IP นี้ทำงานบนโฮสต์ haproxy ครั้งละหนึ่งเครื่องเท่านั้น คุณสามารถใช้ heartbeat เพื่อมี IP ในแต่ละเครื่องแล้ว DNS ปัด robin ระหว่างสอง หากมีใครที่จะล้มเหลวแล้วอีกคนหนึ่งจะมีทั้ง IP เหล่านั้น

HAProxy ใช้ CPU ประมาณ 1-5% Intel(R) Xeon(R) CPU E5504 @ 2.00GHzบนเซิร์ฟเวอร์ทางกายภาพของเราเพื่อความสมดุลของการเข้าชมของเราซึ่งมีเพียงหนึ่งเดียว ดังนั้นโดยทั่วไป HAProxy สามารถจัดการปริมาณการใช้ข้อมูลได้อย่างง่ายดาย


1
ไม่แน่นอนฉันไม่มีทราฟฟิกแบบนั้น เป็นเพียงความพยายามในการหลีกเลี่ยง SPOF
mixdev

2
@mixdev: ในกรณีนี้เพียงแค่มี DNS ชี้ไปที่ IP เสมือนเดียวที่จัดทำโดย heatbeat และคุณควรจะไป คุณเพิ่งปล่อยให้ haproxy ทำงานกับทั้งสองเครื่อง อย่าลืมทดสอบการเต้นของหัวใจล้มเหลวก่อนจะมีชีวิต
Kyle Brandt

@ KyleBrandt: เกิดอะไรขึ้นถ้ากระบวนการ haproxy ต้องตาย? คุณมีการกำหนดค่าใด ๆ ที่จะอนุญาตให้ย้าย IP เสมือนตามนั้น
CarpeNoctem

@CarpeNoctem: เราไม่ได้ครอบคลุมที่ในขณะนี้ ฉันคิดว่าทั้ง heartbeat และ keepalived สามารถตั้งค่าเพื่อดูกระบวนการได้เช่นกัน หากคุณไปเส้นทางนี้ฉันขอแนะนำให้ตั้งค่าให้ต้องการให้กระบวนการหยุดทำงานเป็นเวลานาน (เช่น 1 นาที) คุณอาจไม่ต้องการให้ heartbeat flapover กับข้อผิดพลาดการกำหนดค่า HAProxy ตรวจสอบสิ่งเหล่านี้ส่วนใหญ่ด้วย-cแต่มันอาจจะไม่จับสิ่งต่าง ๆ เช่นข้อผิดพลาดในการกำหนดค่าการเชื่อมโยง
Kyle Brandt

5
สำหรับทุกคนที่ใส่ใจที่กองเราย้ายไปเก็บไว้ได้ดีกว่าปีที่ผ่านมา
Kyle Brandt

24

ดังที่ Kyle กล่าวว่าการเต้นของหัวใจสามารถใช้เพื่อทำให้เซิร์ฟเวอร์ haproxy สองเครื่องทำหน้าที่เป็นคู่ที่ล้มเหลว อย่างไรก็ตามในขณะที่หลายคนใช้การเต้นของหัวใจสำหรับงานKeepalivedแนะนำโดยผู้เขียน haproxy

เขาสรุปรายละเอียดเกี่ยวกับรายชื่อผู้รับจดหมาย haproxy: http://www.formilux.org/archives/haproxy/1003/3259.html

โดยสังเขปมันจะเป็นดังนี้:

  • heartbeat เป็นแบบคลัสเตอร์ ทำให้แน่ใจว่าเซิร์ฟเวอร์เดียวเท่านั้นที่สามารถเข้าถึงทรัพยากร (เช่นที่เก็บข้อมูล SAN)

  • keepalived เป็นเครือข่ายที่มุ่งเน้น ช่วยให้มั่นใจได้ว่าอย่างน้อยหนึ่งเซิร์ฟเวอร์มี IP ที่เป็นปัญหา


-1

คุณอาจพบสิ่งที่คุณกำลังมองหาที่นี่: http://blog.haproxy.com/2014/01/17/emulating-activepassing-application-clustering-with-haproxy/


1
โปรดรวมเนื้อหาทั้งหมดของสูตรในโพสต์ของคุณ เราไม่ใช่บริการเชื่อมโยงบล็อกอย่างแน่นอน
Deer Hunter

1
นอกจากนี้บล็อกมักจะหยุดทำงานหรือเปลี่ยน URL จากนั้นข้อมูลก็จะสูญหาย
Dennis Nolte

ลงคะแนนเนื่องจากไม่เกี่ยวข้องกับคำถามทั้งหมด
danieljimenez

@danieljimenez ฉันคิดว่าไม่ใช่เรื่องที่ไม่เกี่ยวข้องเลย OP ขอ Active / Passive สำหรับ HAProxy เองและผู้ใช้ 3595100 ตีความคำถามว่าเป็น Active / Passive สำหรับแบ็กเอนด์ HAProxy อย่างไรก็ตามการโพสต์ลิงค์ไม่ใช่คำตอบที่ยอมรับได้ด้วยตัวเอง
duct_tape_coder
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.