मेरे पास वास्तव में एक ही मुद्दा था, हालांकि मेरी समस्या फ़ायरवॉल में नहीं थी और न ही मेरे ईथरनेट एडॉप्टर में, लेकिन चेक स्क्रिप्ट की "वेट" सेटिंग्स में थी।
यह मेरा कॉन्फ़िगरेशन था:
गुरुजी:
vrrp_instance haproxy {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
बैकअप:
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
}
मास्टर द्वारा वीआईपी को जारी करने से इनकार करने का कारण यह था क्योंकि इस तथ्य के बावजूद कि स्क्रिप्ट विफल हो गई थी, मास्टर अभी भी बैकप सर्वर से उच्च प्राथमिकता संख्या वाले थे। ऐसा इसलिए हुआ क्योंकि Check_script पर "भार" सेटिंग प्राथमिकता संख्या के बीच "GAP" को कवर करने के लिए पर्याप्त नहीं थी, जिसका अर्थ है कि मास्टर सर्वर के एक से अधिक BACKUP सर्वर की प्राथमिकता संख्या बढ़ाना। मैं आगे बताऊंगा:
रखने की नियमावली के अनुसार, "वजन" सेटिंग पर एक सकारात्मक संख्या उस संख्या को प्राथमिकता में जोड़ देगी यदि चेक सफल होता है।
यदि चेक विफल हो जाता है तो एक ऋणात्मक संख्या उस संख्या को प्राथमिकता संख्या से घटा देगी।
तो, मेरे विन्यास के अनुसार:
सर्वर प्राथमिकताएँ स्क्रिप्ट की पूर्व विफलता:
मास्टर: 152
बैकअप: 100
फ़ेलओवर_आईपी: मास्टर
मास्टर सर्वर द्वारा फेलओवर आईपी को सही ढंग से "पकड़ा" गया क्योंकि मास्टर की बैकअप सर्वर (152> 100) की तुलना में उच्च प्राथमिकता है।
सर्वर प्राथमिकताएँ स्क्रिप्ट की विफलता के बाद:
मास्टर सर्वर: 148
बैकअप सर्वर: 102
विफलता_आईपी: मास्टर पर क्लिक करें
फ़ेलओवर आईपी अभी भी मास्टर सर्वर पर है क्योंकि मास्टर ने BACKUP (148> 102) की तुलना में फिर से उच्च प्राथमिकता दी है। MASTER सर्वर IP को जारी करने से इनकार कर रहा था और उसकी प्राथमिकता अन्य सर्वर की तुलना में अधिक होने के बाद से उसने सही किया था।
मेरी स्थिति पर समाधान था:
समाधान -1: दोनों सर्वरों की प्राथमिकता संख्या बदलें ताकि उनके पास ज्यादा "गैप" न हो।
उदाहरण के लिए:
मास्टर प्राथमिकता: 150
बैकअप प्राथमिकता: 149
चेक_स्क्रिप्ट वजन: जैसा कि यह है (2)।
उपरोक्त कॉन्फ़िगरेशन के साथ, जब स्क्रिप्ट सफल हो जाती है (मतलब सब ठीक है) प्राथमिकताएं होंगी:
मास्टर: 152
बैकअप: 149
IP_Location: मास्टर पर (152> 149)
जब स्क्रिप्ट विफल हो जाती है:
मास्टर: 150
बैकअप: 151
IP_Location: बैकअप पर (151> 150)
समाधान - 2: स्क्रिप्ट का भार संख्या 2 से, -60 तक बदलें