ป้องกัน VRRP Master จากการเป็น Master เมื่อล้มเหลว


12

ฉันมีสองเครื่อง (A และ B, A เป็น Master) ที่ใช้งาน VRPP (จากที่เก็บไว้) สำหรับ IP เสมือน

ฉันจะป้องกันไม่ให้การเป็นอาจารย์อีกครั้งได้อย่างไรถ้ามันล้มเหลวและกลับมา (ด้วยเหตุผลอะไรก็ตาม)?

ฉันกำลังทำสิ่งนี้เพื่อให้เรามีการล้มเหลวเพียงครั้งเดียวไปยังกล่องที่สองและการกลับมาเป็นปกติจะต้องมีการแทรกแซงด้วยตนเอง


ฉันใหม่เกินไปที่จะสร้างแท็ก "VRRP"
MrMagu

คำตอบ:


14

ตามนี้ด้ายค่อนข้างเก่าในรายการนักพัฒนา keepalived ก็สามารถทำได้ คุณตั้งค่าเซิร์ฟเวอร์ทั้งสองให้มีลำดับความสำคัญเท่ากัน (หรือไม่มีเลย) และอย่าประกาศสถานะเป็น MASTER หรือ BACKUP และแทนที่จะตั้งค่าสถานะเป็นเท่ากับสำหรับทั้งสอง

แก้ไข (07 ธันวาคม 2017):

ดูเหมือนว่า EQUAL ไม่ใช่สถานะที่ถูกต้องจริง ๆ แม้ว่ามันจะให้ผลตามที่ต้องการในเวลาที่คำตอบนี้โพสต์ โปรดทราบความคิดเห็นด้านล่างโดยเฉพาะการเชื่อมโยงไปยังรายการปัญหาในปัจจุบันสำหรับเก็บไว้โดย @cristi


3
ขอบคุณ - นอกจากนี้ยังควรทราบด้วยการใช้การกำหนดค่าด้านบน (ที่มีลำดับความสำคัญเท่ากันและใช้ "เท่ากัน") หากไม่มีผู้ควบคุมหลักอินสแตนซ์ VRRP ที่มี IP ต่ำสุดจะกลายเป็น MASTER
MrMagu

1
นี่เป็นสิ่งที่ผิด ดูข้อความนี้จากนักพัฒนาซอฟต์แวร์: github.com/acassen/keepalived/issues/707
cristi

@ Cristi - มันเป็นวิธีการแก้ปัญหาการทำงานในเวลาที่โพสต์ (2009) ซึ่งในที่สุดก็ขึ้นอยู่กับข้อมูลที่ฉันได้รับการยอมรับอย่างชัดเจนว่าเก่าแม้แล้ว (2003) ฉันได้อัปเดตลิงก์ในคำตอบของฉันไปยังลิงก์ที่ใช้งานได้เนื่องจาก osdir.com ดูเหมือนว่าจะไม่ได้มีคลังเก็บ keepalived-devel อีกต่อไป ฉันเดาว่าในเวลานั้นซอฟต์แวร์จะเพิกเฉยต่อEQUALคำสั่งที่ไม่ถูกต้องในทันทีและจัดการกับมันราวกับว่าไม่มีการจัดลำดับความสำคัญเลย (ซึ่งเพิ่งเกิดขึ้นเพื่อให้ได้ผลตามที่ต้องการ)
James Sneeringer

8

วิธีที่เราแก้ไขปัญหานี้คือการเพิ่มการnopreemptตั้งค่าสถานะลงในไฟล์ config แบบ keepalived ไม่จำเป็นต้องเปลี่ยนสิ่งอื่นใด (ยังเหลืออันใดอันหนึ่งMASTERและอีกอันBACKUP) โดยพื้นฐานแล้วสิ่งนี้บอกให้ไม่สลับโทเพียงเพราะเซิร์ฟเวอร์ใหม่มาออนไลน์เท่านั้นสลับเมื่อต้นแบบปัจจุบันล้มเหลว


4
จาก " article.gmane.org/gmane.linux.keepalived.devel/1537 " หาก "state" ถูกตั้งค่าเป็น MASTER "nopreempt" จะถูกละเว้นโดยทั่วไปเนื่องจากเมื่อเครื่องที่มี "state MASTER" ส่งคืนก็จะคว้า IP จาก เครื่องที่มี "state BACKUP" โดยไม่ต้องถือการเลือกตั้ง ฉันต้องตั้งค่าเครื่องทั้งสองของฉันให้ระบุว่ามีการสำรองข้อมูลโดยที่มีลำดับความสำคัญสูงกว่าเพื่อให้ "nopreempt" ทำงานตามที่ต้องการ
MrMagu

ลบลำดับความสำคัญและสถานะแล้วเพิ่ม nopreempt ใช้งานได้ดีสำหรับฉัน
Rihard Novozhilov

-1

ตามที่ฉันเข้าใจแล้วเมื่อเซิร์ฟเวอร์ VRRP ใหม่เกิดขึ้นมันบังคับให้มีการเลือกตั้งและเซิร์ฟเวอร์ปัจจุบันจะไม่ได้รับประโยชน์ใด ๆ ดังนั้นเจ้านายเก่าจะเข้ามาและชนะการเลือกตั้ง ฉันสงสัยว่ามีหลายสิ่งที่คุณสามารถทำได้เพื่อหยุดยั้งสิ่งนี้นอกเหนือจากการยิงอย่างโหดร้ายที่โหนดอื่น ๆ ในหัว Keepalive อาจมีการกำหนดค่าบางอย่างเพื่อควบคุมกระบวนการเลือกตั้ง น่าเศร้าที่ฉันไม่มีเวลาตรวจสอบตอนนี้ แต่ฉันจะพยายามดูในภายหลัง


มีการตั้งค่าสถานะการทำเช่นนี้ดังนั้นคำตอบนี้ไม่ถูกต้อง
davr

คำตอบที่โหวตแล้วนั้นถูกต้องสำหรับการปรับใช้ทั่วไปของ vrrp ซึ่งคุณไม่ต้องการให้เจ้านายนำไปใช้เมื่อกลับสู่บริการ อย่างที่คุณบอกว่ามีวิธีการทำสิ่งนี้อย่างต่อเนื่องซึ่งอาจจะถูกต้องมากกว่าสำหรับการทำสิ่งต่างๆของ linux HA แทนที่จะใช้ vrrp เพื่อจัดเตรียม L3 ซ้ำซ้อนสำหรับเส้นทางเริ่มต้น (เหตุผลดั้งเดิมสำหรับการใช้ vrrp)
chris
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.