ฉันต้องการจัดโครงสร้างเซิร์ฟเวอร์คลัสเตอร์ที่มีความพร้อมใช้งานสูง ตอนนี้ฉันต้องการทราบรายละเอียดเกี่ยวกับ keepalive และ heartbeat ความแตกต่างระหว่างทั้งสองคืออะไรและวิธีเลือกอย่างใดอย่างหนึ่ง
ฉันต้องการจัดโครงสร้างเซิร์ฟเวอร์คลัสเตอร์ที่มีความพร้อมใช้งานสูง ตอนนี้ฉันต้องการทราบรายละเอียดเกี่ยวกับ keepalive และ heartbeat ความแตกต่างระหว่างทั้งสองคืออะไรและวิธีเลือกอย่างใดอย่างหนึ่ง
คำตอบ:
เชื่อว่าคำถามที่ได้รับการตอบรับอย่างแม่นยำมากโดยวิลลี่ Tarreau, ผู้เขียนของ HAProxy ในhttp://www.formilux.org/archives/haproxy/1003/3259.html
การอ้างอิงจากลิงค์ด้านบน
Heartbeat ไม่ใช่เครื่องมือที่ดีที่สุดในการติดตั้ง haproxy ซ้ำซ้อนมันถูกออกแบบมาเพื่อสร้างกลุ่มซึ่งแตกต่างจากการมีอุปกรณ์เครือข่ายไร้สายซ้ำซ้อนสองตัว เครื่องมือที่เน้นเครือข่ายเช่น keepalived หรือ ucarp นั้นเหมาะสมที่สุดสำหรับงานนั้น
ความแตกต่างระหว่างสองครอบครัวนั้นง่ายมาก
- ผลิตภัณฑ์ที่เน้นคลัสเตอร์เช่นการเต้นของหัวใจจะช่วยให้มั่นใจได้ว่าทรัพยากรที่ใช้ร่วมกันจะมีอยู่ในที่เดียว สิ่งนี้สำคัญมากสำหรับระบบไฟล์ที่ใช้ร่วมกันดิสก์ ฯลฯ ... มันถูกออกแบบมาเพื่อให้บริการลงบนโหนดหนึ่งและอีกหนึ่งโหนดในระหว่างการเปลี่ยนแปลง ด้วยวิธีนี้ทรัพยากรที่ใช้ร่วมกันอาจไม่สามารถเข้าถึงได้พร้อมกัน นี่เป็นงานที่ยากมากที่จะประสบความสำเร็จและทำได้ดี
- สินค้าที่มีเครือข่ายที่มุ่งเน้นเช่นkeepalivedจะให้แน่ใจว่าที่อยู่ IP ที่ใช้ร่วมกันจะนำเสนอที่อย่างน้อยหนึ่งในสถานที่ โปรดทราบว่าฉันไม่ได้พูดถึงบริการหรือทรัพยากรอีกต่อไปมันแค่เล่นกับที่อยู่ IP มันจะไม่พยายามดาวน์หรืออัพบริการใด ๆ แต่จะพิจารณาเกณฑ์จำนวนหนึ่งเพื่อตัดสินว่าโหนดใดเหมาะสมที่สุดที่จะให้บริการ แต่บริการจะต้องขึ้นอยู่กับทั้งสองโหนด ดังนั้นจึงเหมาะอย่างยิ่งสำหรับเราเตอร์ซ้ำซ้อนไฟร์วอลล์และพร็อกซี่ แต่ไม่เหมาะสำหรับดิสก์อาร์เรย์หรือระบบไฟล์
(ใช่ฉันรู้ว่ามันเป็นคำถามเก่า แต่สำหรับการอ้างอิงในอนาคต)
ไม่มีความแตกต่างที่ชัดเจนและสอดคล้องกัน บางครั้งคำเหล่านั้นใช้มากหรือน้อยสลับกันได้
มีผู้ใช้ทั่วไป deamon สำหรับการตั้งค่าความพร้อมใช้งานสูงที่เรียกว่าKeepalivedและโครงการ Linux HA เคยใช้ชื่อ deamon ชื่อ Heartbeat ซึ่งตอนนี้เปลี่ยนเป็นPacemakerแล้ว (ฉันเชื่อว่าคุณไม่ได้ขอภาพรวมที่สมบูรณ์ของทั้งสองระบบและความแตกต่างทั้งหมดคือ IMHO ที่จะถูกปิดหัวข้อ)
ในการใช้ข้อกำหนดรายวันฉันจะบอกว่าการใช้งานบ่อยที่สุดคือ:
"Keepalive" หมายถึงระบบที่ให้บริการอย่างมาก
"Heartbeat" หมายถึงโปรโตคอลการสื่อสารโดยเฉพาะอย่างยิ่งที่สมาชิกหรือมากกว่าของการตั้งค่าความพร้อมใช้งานสูงส่งเป็นระยะ "ใช่ฉันยังมีชีวิตอยู่!" ข้อความ เพื่อนร่วมงานของพวกเขาจะดำเนินการหากพวกเขาไม่เห็นข้อความ "ใช่ฉันยังมีชีวิตอยู่" ก่อนเวลาที่กำหนด (เช่นโฮสต์อื่น ๆ ได้ลงไป) นี่เป็นความรู้สึกที่คล้ายกับชีพจรดังนั้นชื่อ