Sorunum güvenlik duvarında veya Ethernet bağdaştırıcımda değil, kontrol komut dosyasının "ağırlık" ayarlarında olduğu için aynı sorunu yaşadım.
Bu benim yapılandırmamdı:
USTA:
vrrp_instance haproxy {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
DESTEK OLMAK:
vrrp_instance haproxy {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
Check_script:
vrrp_script chk_haproxy {
script "python /root/ha_check.py"
interval 2 # check every 2 seconds
weight 2
rise 2
fall 2
}
Master'ın VIP'yi serbest bırakmayı reddetmesinin nedeni, komut dosyasının başarısız olmasına rağmen, master'ın BACKUP sunucusundan daha yüksek öncelik numarasına sahip olmasıydı. Bunun nedeni, check_script üzerindeki "ağırlık" ayarının öncelik numarası arasındaki "GAP" ı kapsaması için yeterli olmaması, BACKUP sunucusunun öncelik numarasını MASTER Server'ınkinden daha fazla artırmasıdır. Daha fazla açıklayacağım:
Kalıcı kullanım kılavuzuna göre, "ağırlık" ayarındaki pozitif bir sayı, kontrol başarılı olursa bu sayıyı önceliğe ekler.
Kontrol başarısız olursa, negatif bir sayı bu sayıyı öncelik numarasından çıkaracaktır.
Yani, benim yapılandırmaya göre:
Sunucu Öncelikleri Komut dosyasında önceki hata:
MASTER: 152
YEDEK: 100
Yük Devretme_IP: MASTER
Yük Devretme ipi, Ana sunucu Yedekleme sunucusundan daha yüksek önceliğe sahip olduğundan ana sunucu tarafından doğru bir şekilde "yakalanır" (152> 100)
Sunucu Öncelikleri Komut dosyasında hata SONRASI:
MASTER sunucusu: 148
BACKUP sunucusu: 102
Yük devretme_IP: STILL ON MASTER
Yük Devretme ipi hala ana sunucudadır, çünkü Ana Bilgisayar YEDEKLEME'ye (148> 102) göre daha yüksek önceliğe sahiptir. MASTER sunucusu, önceliği diğer sunucudan daha yüksek olduğu için IP'yi ve doğru hakkı vermeyi reddetti.
Durumumdaki çözüm şuydu:
Çözüm -1: Her iki sunucunun öncelik sayısını, çok fazla "GAP" olmaması için değiştirin.
Örneğin:
Ana Öncelik: 150
Yedekleme Önceliği: 149
Check_script ağırlığı: Olduğu gibi (2).
Yukarıdaki yapılandırmada, komut dosyası başarılı olduğunda (her şey
yolundadır ) öncelikler şöyle olur:
Ana: 152
Yedekleme: 149
IP_Location: Master'da (152> 149)
Komut dosyası başarısız olduğunda:
Master: 150
Yedekleme: 151
IP_Location: Yedeklemede (151> 150)
Çözüm - 2: Betiğin ağırlık sayısını 2'den -60'a değiştirin