बेमानी लोड बैलेंसर्स कैसे बनाएं?


27

मैं समझता हूं कि लोड बैलेन्सर का उद्देश्य आपके सर्वर के बीच लोड को संतुलित करना और उदाहरण के स्वास्थ्य आदि पर नज़र रखना है, लेकिन क्या होगा यदि लोड बैलेंसर विफल हो जाता है? आप निरर्थक लोड बैलेंसर्स कैसे सेट करते हैं? (लोड बैलेंसिंग लोड बैलेंसर्स?)

मैं देख सकता हूं कि DNS स्वास्थ्य जांच कैसे उपयोगी हो सकती है, लेकिन स्पष्ट रूप से प्रमुख विलंबता मुद्दे हैं, है न?

यह मानकर चल रहा है कि आप किसी भी तीसरे पक्ष की सेवाओं जैसे एडब्ल्यूएस ईएलबी या इसी तरह की किसी चीज का उपयोग नहीं कर रहे हैं। यदि आप सिर्फ नगीनेक्स का उपयोग कर रहे हैं तो क्या करें?


आपके आर्किटेक्चर के बहुत ऊपर कोई "लोड बैलेंसिंग लोड बैलेंसर्स" नहीं है , आप बस अपने एलबीएस को अतिरेकपूर्ण बनाते हैं और असफलताओं को संभालने के लिए एक उच्च उपलब्धता समाधान स्थापित करते हैं जैसा कि अधिकांश क्लस्टरिंग टाइपोलॉजी करते हैं।
जेवियर लुकास

जवाबों:


32

लोड बैलेंसर के HA (उच्च उपलब्धता) को प्राप्त करने के कुछ तरीके हैं - या कि किसी भी सेवा के संबंध में। मान लें कि आपके पास दो मशीनें हैं, जिनमें IP पते हैं:

  • 192.168.100.101
  • 192.168.100.102

उपयोगकर्ता एक आईपी से जुड़ते हैं, इसलिए आप जो करना चाहते हैं वह विशिष्ट बॉक्स से अलग आईपी है - जैसे वर्चुअल आईपी बनाएं। वह IP 192.168.100.100 होगा।

अब, आप HA सेवा चुन सकते हैं जो IP पते के स्वचालित विफलता / विफलता का ध्यान रखेगी। यूनिक्स के लिए सबसे सरल सेवाएं (यू) कार्प और रख-रखाव हैं, कुछ अधिक जटिल हैं उदाहरण के लिए रेडहैट क्लस्टर सूट या पेसमेकर।

एक उदाहरण के रूप में रखने की सुविधा देता है - दो रखने की सेवाएं - प्रत्येक अपने स्वयं के बॉक्स पर चल रहा है - और वे एक साथ संवाद करते हैं। उस संचार को अक्सर दिल की धड़कन कहा जाता है।

|   VIP   |                           |         |
|  Box A  | ------v^-----------v^---- |  Box B  |
|   IP1   |                           |   IP2   |

यदि कोई रख-रखाव बंद हो जाता है, तो जवाब देना बंद कर दिया जाता है (या तो सेवा जो भी कारण से नीचे जाती है, या बॉक्स उछलता है या नीचे गिरता है) - दूसरे बॉक्स पर रखा गया याद दिल की धड़कन को नोटिस करेगा, और अन्य नोड को मृत मान लेगा, और विफलता कार्रवाई करेगा। हमारे मामले में यह कार्रवाई फ्लोटिंग आईपी को सामने लाएगी।

                                      |   VIP   |
    ------------------ -------------- |  Box B  |
                                      |   IP2   |

इस मामले में सबसे खराब मामला ग्राहकों के लिए सत्र का नुकसान हो सकता है, लेकिन वे फिर से कनेक्ट करने में सक्षम होंगे। यदि आप इससे बचना चाहते हैं, तो दो लोड बैलेंसरों को उनके बीच सत्र डेटा को सिंक करने में सक्षम होना चाहिए, और यदि वे ऐसा कर सकते हैं, तो उपयोगकर्ता कुछ भी नोटिस नहीं कर सकते हैं सिवाय शायद एक छोटी सी देरी को तोड़े हुए।

इस सेटअप का एक और नुकसान मस्तिष्क है - जब दोनों बॉक्स ऑनलाइन होते हैं, लेकिन लिंक को अलग कर दिया जाता है, और दोनों बॉक्स एक ही आईपी को लाते हैं। यह अक्सर कुछ प्रकार के बाड़ लगाने वाले तंत्र (SCSI आरक्षण, IPMI पुनः आरंभ, स्मार्ट PDU पावर कट, ...), या विषम संख्या में नोड सदस्यों के बहुमत की आवश्यकता होती है, जो सेवा शुरू करने के लिए जीवित रहते हैं।

|   VIP   |                           |   VIP   |
|  Box A  |                           |  Box B  |
|   IP1   |                           |   IP2   |

अधिक जटिल क्लस्टर प्रबंधन सॉफ्टवेयर (पेसमेकर की तरह) पूरी सेवा को स्थानांतरित कर सकता है (उदाहरण के लिए: इसे एक नोड पर रोकें और इसे दूसरे पर शुरू करें) - और यह उसी तरह है जैसे डेटाबेस के लिए एचए हासिल किया जा सकता है।

एक अन्य संभावित तरीका - यदि आप अपने लोड बैलेंसरों के पास राउटर को नियंत्रित कर रहे हैं, तो ईसीएमपी का उपयोग करना है। यह दृष्टिकोण आपको क्षैतिज रूप से लोड बैलेंसरों को स्केल करने में भी सक्षम बनाता है। यह आपके दो बॉक्सों में से प्रत्येक काम करता है जो आपके राउटर को बीजीपी से बात कर रहा है। प्रत्येक बॉक्स को वर्चुअल आईपी (192.168.100.100) का विज्ञापन करना होगा और राउटर ईसीएमपी के माध्यम से बैलेंस ट्रैफिक को लोड करेगा। यदि कोई मशीन मर जाती है, तो यह वीआईपी को विज्ञापन देना बंद कर देगा, जो बदले में रूटर्स को ट्रैफ़िक भेजने से रोक देगा। केवल इस बात का ध्यान रखना है कि इस सेटअप में विज्ञापन आईपी को रोकना है यदि लोड बैलेंसर की मृत्यु हो जाती है।


3

अपने लोड बैलेंसर के रूप में Nginx का उपयोग करना चाहिए ताकि आप बिना किसी प्रतिक्रिया प्रतिक्रिया का पता लगाने के लिए अपने कॉन्फ़िग को बदलकर इस पोस्ट में पुनर्निर्देशित विस्तृत का पालन कर सकें।

nginx स्वचालित विफलता लोड संतुलन

सिद्धांत रूप में यदि आपके पास एक हा वातावरण है, तो कई लोड बैलेंसर्स क्लस्टर को सेवा को बनाए रखने की अनुमति देनी चाहिए यदि कोई विफल होना था।

उम्मीद है की यह मदद करेगा।


2

हार्डवेयर लोड बैलेन्सर ने वर्षों से "सक्रिय / निष्क्रिय" या "सक्रिय / सक्रिय" सेटअपों का समर्थन किया है, दोनों ही मामलों में वे तब एक परत 1/2 परिप्रेक्ष्य से समानांतर में स्थापित किए जाते हैं ... सक्रिय / निष्क्रिय उपयोग निगरानी / निगरानी तंत्र का वर्णन करते हैं। , सक्रिय / सक्रिय कई तरीकों से लागू किया जा सकता है। सीमांत पर एक एकल आईपी के रूप में प्रकट होने के लिए, दो या दो से अधिक बैलेंसर हो सकते हैं, जब तक वे लाइन पर सभी / दोनों होते हैं, जैसे चीजें करते हैं:

  • जब ग्राहक एक ही नेटवर्क पर होते हैं, तो स्रोत मैक या आईपी पते के आधार पर साझा आईपी के लिए एआरपी अनुरोधों का उत्तर देता है
  • एक दूसरे के बीच बातचीत जो किसी दिए गए नए टीसीपी कनेक्शन के ट्रैफिक को संभालती है
  • डुप्लिकेट या त्रुटिपूर्ण परत को 3-7 ट्रैफ़िक को लापरवाह होने दें और इसे छाँटने के लिए क्लाइंट / राउटर टीसीपी स्टैक्स पर निर्भर रहें

और फिर एक साथी डिवाइस के साथ संचार खो जाने पर सभी या अधिक ट्रैफ़िक को स्वीकार करने के लिए अपनी विधा को बदलें।

बैकेंड की तरफ:

  • प्रत्येक बैलेंसर, सामान्य ऑपरेशन में, केवल दिए गए उप-सर्वरों का उपयोग कर सकता है
  • या, डुप्लिकेट किए गए अनुरोधों को यहां भी उत्पन्न किया जा सकता है ...
  • या, बैलेंसरों के बीच बातचीत हो सकती है
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.