हाइब्रिड क्लाउड में गैलेरा क्लस्टर चलाने में कम से कम दो अलग-अलग भौगोलिक साइटें होनी चाहिए, जो ऑन-प्रिमाइसेस या निजी क्लाउड में होस्ट को सार्वजनिक क्लाउड से कनेक्ट करती हैं। चाहे आप अटूट निजी क्लाउड या सार्वजनिक क्लाउड प्लेटफॉर्म का उपयोग करें, डिजास्टर रिकवरी (DR) वास्तव में एक प्रमुख मुद्दा है। यह आपके डेटा को एक बैकअप साइट पर कॉपी करने और इसे पुनर्स्थापित करने में सक्षम होने के बारे में नहीं है, यह व्यवसाय निरंतरता के बारे में है और आपदा आने पर आप कितनी तेजी से सेवाओं को पुनर्प्राप्त कर सकते हैं।
इस ब्लॉग पोस्ट में, हम हाइब्रिड क्लाउड वातावरण में दोष सहिष्णुता के लिए आपके गैलेरा क्लस्टर्स को डिजाइन करने के विभिन्न तरीकों पर गौर करेंगे।
सक्रिय-सक्रिय सेटअप
गैलेरा क्लस्टर को एक क्लस्टर में विषम संख्या में नोड्स के साथ चलना चाहिए, और आमतौर पर 3 नोड्स से शुरू होता है। ऐसा इसलिए है क्योंकि गैलेरा क्लस्टर प्राथमिक घटक को स्वचालित रूप से निर्धारित करने के लिए कोरम का उपयोग करता है, जहां क्लस्टर विभाजन होने की स्थिति में अधिकांश कनेक्टेड नोड्स एक समय में क्लस्टर की सेवा करने में सक्षम होना चाहिए।
एक सक्रिय-सक्रिय सेटअप हाइब्रिड क्लाउड सेटअप के लिए, गैलेरा को WAN पर एक गैलेरा क्लस्टर बनाने के लिए कम से कम 3 अलग-अलग साइटों की आवश्यकता होती है। आम तौर पर, आपको मध्यस्थ के रूप में कार्य करने, कोरम के लिए मतदान करने और "प्राथमिक घटक" को संरक्षित करने के लिए एक तीसरी साइट की आवश्यकता होगी यदि कोई भी साइट पहुंच से बाहर है। इसे निम्न आरेख के समान 3 अलग-अलग साइटों (प्रति साइट 1 नोड) पर न्यूनतम 3-नोड क्लस्टर के रूप में स्थापित किया जा सकता है:
हालांकि, प्रदर्शन और विश्वसनीयता उद्देश्यों के लिए, यह अनुशंसा की जाती है कि 7 -नोड क्लस्टर, जैसा कि निम्नलिखित आरेख में दिखाया गया है:
सक्रिय-सक्रिय सेटअप का समर्थन करने के लिए इसे सबसे अच्छा टोपोलॉजी माना जाता है, जहां डीआर साइट बिना किसी हस्तक्षेप के लगभग तुरंत उपलब्ध होनी चाहिए। दोनों साइटें किसी भी समय रीड/राइट प्राप्त कर सकती हैं बशर्ते क्लस्टर कोरम में हो।
हालांकि, 3 साइटें और 7 डेटाबेस नोड्स होना बहुत महंगा है (7वें नोड को गारबड से बदला जा सकता है क्योंकि क्लाइंट/एप्लिकेशन को डेटा देने के लिए इसका उपयोग करने की बहुत संभावना नहीं है)। भारी अग्रिम लागत और नेटवर्क विलंबता के लिए गैलेरा समूह संचार और प्रतिकृति के प्रति संवेदनशील होने के कारण यह आमतौर पर परियोजना की शुरुआत में एक लोकप्रिय तैनाती नहीं है।
सक्रिय-निष्क्रिय सेटअप
एक सक्रिय-निष्क्रिय कॉन्फ़िगरेशन में, कम से कम 2 साइटों की आवश्यकता होती है और एक समय में केवल एक साइट सक्रिय होती है, जिसे प्राथमिक साइट के रूप में जाना जाता है और द्वितीयक साइट पर नोड्स केवल प्राथमिक से आने वाले डेटा को दोहराते हैं सर्वर / क्लस्टर। गैलेरा क्लस्टर के लिए, हम या तो MySQL एसिंक्रोनस प्रतिकृति (मास्टर-स्लेव प्रतिकृति) का उपयोग कर सकते हैं या हम एसिंक्रोनस प्रतिकृति के रूप में कार्य करने के लिए इसके राइटसेट प्रतिकृति को टोन करने के लिए कुछ ट्यूनिंग के साथ गैलेरा की वर्चुअल-सिंक्रोनस प्रतिकृति का भी उपयोग कर सकते हैं।
माध्यमिक साइट को केवल-पढ़ने के लिए ध्वज, एप्लिकेशन फ़ायरवॉल, रिवर्स प्रॉक्सी या किसी अन्य माध्यम का उपयोग करके आकस्मिक लेखन के खिलाफ संरक्षित किया जाना चाहिए क्योंकि डेटा प्रवाह हमेशा प्राथमिक से द्वितीयक साइट तक आ रहा है जब तक कि एक विफलता ने द्वितीयक साइट को प्राथमिक के रूप में आरंभ और बढ़ावा दिया है।
एसिंक्रोनस प्रतिकृति का उपयोग करना
एसिंक्रोनस प्रतिकृति के बारे में एक अच्छी बात यह है कि प्रतिकृति स्रोत सर्वर/क्लस्टर को प्रभावित नहीं करती है, लेकिन इसे मास्टर से पिछड़ने की अनुमति है। यह सेटअप प्राथमिक और DR साइट को एक दूसरे से स्वतंत्र बना देगा, अतुल्यकालिक प्रतिकृति के साथ शिथिल रूप से जुड़ा होगा। इसे निम्न आरेख के समान 2 अलग-अलग साइटों पर न्यूनतम 4-नोड क्लस्टर के रूप में स्थापित किया जा सकता है:
डीआर साइट में गैलेरा नोड्स में से एक गुलाम होगा, जो प्राथमिक साइट में गैलेरा नोड्स (मास्टर) में से एक से प्रतिकृति करता है। दोनों साइटों को GTID के साथ बाइनरी लॉग का उत्पादन करना है और log_slave_updates सक्षम हैं - एसिंक्रोनस प्रतिकृति स्ट्रीम से आने वाले अपडेट क्लस्टर में अन्य नोड्स पर लागू होंगे। हालांकि, उत्पादन के उपयोग के लिए, हम अनुशंसा करते हैं कि दोनों साइट पर क्लस्टर के दो सेट हों, जैसा कि निम्नलिखित आरेख में दिखाया गया है:
दो अलग-अलग क्लस्टर होने से, वे शिथिल रूप से युग्मित हो जाएंगे और एक दूसरे को प्रभावित नहीं करेंगे, उदा। प्राथमिक साइट पर क्लस्टर विफलता DR साइट को प्रभावित नहीं करेगी। प्रदर्शन-वार, WAN विलंबता सक्रिय क्लस्टर पर अद्यतनों को प्रभावित नहीं करेगी। इन्हें एसिंक्रोनस रूप से बैकअप साइट पर भेज दिया जाता है। DR क्लस्टर संभावित रूप से सार्वजनिक क्लाउड वातावरण में छोटे उदाहरणों पर चल सकता है, जब तक कि वे प्राथमिक क्लस्टर के साथ बने रह सकते हैं। यदि आवश्यक हो तो उदाहरणों को अपग्रेड किया जा सकता है। अनुप्रयोगों को प्राथमिक साइट पर लिखना चाहिए, और द्वितीयक साइट को केवल-पढ़ने के लिए मोड में चलाने के लिए सेट किया जाना चाहिए। डिजास्टर रिकवरी साइट का उपयोग अन्य उद्देश्यों जैसे डेटाबेस बैकअप, बाइनरी लॉग बैकअप और रिपोर्टिंग या विश्लेषणात्मक प्रश्नों को संसाधित करने (OLAP) के लिए किया जा सकता है।
नकारात्मक पक्ष पर, फेलओवर/फॉलबैक के दौरान डेटा हानि की संभावना होती है यदि दास पिछड़ रहा था। इसलिए, डेटा हानि के जोखिम को कम करने के लिए सेमी-सिंक्रोनस प्रतिकृति को सक्षम करने की अनुशंसा की जाती है। ध्यान दें कि गैलेरा की वर्चुअल-सिंक्रोनस प्रतिकृति की तुलना में सेमी-सिंक्रोनस प्रतिकृति का उपयोग अभी भी डेटा हानि के खिलाफ मजबूत गारंटी प्रदान नहीं करता है। इस MySQL मैनुअल को ध्यान से पढ़ें, उदाहरण के लिए, ये वाक्य:
"अर्द्धतुल्यकालिक प्रतिकृति के साथ, यदि स्रोत क्रैश हो जाता है और प्रतिकृति के लिए एक विफलता की जाती है, तो विफल स्रोत को प्रतिकृति स्रोत के रूप में पुन:उपयोग नहीं किया जाना चाहिए, और इसे छोड़ दिया जाना चाहिए। इसमें ऐसे लेनदेन हो सकते हैं जो थे किसी भी प्रतिकृति द्वारा स्वीकार नहीं किया गया, जो इसलिए विफलता से पहले प्रतिबद्ध नहीं थे।"
विफलता प्रक्रिया बहुत सीधी है। आपदा पुनर्प्राप्ति साइट को बढ़ावा देने के लिए, केवल-पढ़ने के लिए ध्वज को बंद करें और एप्लिकेशन को DR साइट में डेटाबेस नोड्स पर निर्देशित करना प्रारंभ करें। फ़ॉलबैक रणनीति हालांकि थोड़ी मुश्किल है, और इसके लिए दोनों साइटों पर डेटा को व्यवस्थित करने, क्लस्टर की मास्टर/स्लेव भूमिका को बदलने और दास प्रतिकृति प्रवाह को विपरीत तरीके से पुनर्निर्देशित करने में कुछ विशेषज्ञता की आवश्यकता होती है।
गैलेरा प्रतिकृति का उपयोग करना
सक्रिय-निष्क्रिय सेटअप के लिए, हम प्राथमिक साइट में स्थित अधिकांश नोड्स को रख सकते हैं जबकि आपदा पुनर्प्राप्ति साइट में स्थित नोड्स के अल्पसंख्यक, जैसा कि निम्नलिखित स्क्रीनशॉट में 3- के लिए दिखाया गया है नोड गैलेरा क्लस्टर:
यदि प्राथमिक साइट डाउन है, तो क्लस्टर विफल हो जाएगा क्योंकि यह कोरम से बाहर है। डिजास्टर रिकवरी साइट (db3-dr) पर गैलेरा नोड को एकल नोड प्राथमिक घटक के रूप में मैन्युअल रूप से बूटस्ट्रैप करने की आवश्यकता होगी। एक बार जब प्राथमिक साइट वापस आ जाती है, तो प्राथमिक साइट (db1-prod और db2-prod) पर दोनों नोड्स को सिंक करने के लिए galera3 से फिर से जुड़ने की आवश्यकता होती है। बहुत बड़ा gcache होने से WAN पर SST के जोखिम को कम करने में मदद मिलनी चाहिए। यह आर्किटेक्चर स्थापित करना और प्रशासन करना आसान है और बहुत ही लागत प्रभावी है।
विफलता मैनुअल है, क्योंकि व्यवस्थापक को प्राथमिक घटक के रूप में एकल नोड को बढ़ावा देने की आवश्यकता है (बूटस्ट्रैप db3-dr या wsrep_provider_options पैरामीटर में सेट pc.bootstrap=1 का उपयोग करें। इस बीच डाउनटाइम होगा। प्रदर्शन एक मुद्दा हो सकता है, क्योंकि डीआर साइट सभी लोड को चलाने के लिए कम संख्या में नोड्स (चूंकि डीआर साइट हमेशा अल्पसंख्यक है) के साथ चल रही होगी। स्विच करने के बाद अधिक नोड्स के साथ स्केल करना संभव हो सकता है DR साइट लेकिन अतिरिक्त भार से सावधान रहें।
ध्यान दें कि गैलेरा क्लस्टर नेटवर्क के प्रति संवेदनशील है क्योंकि इसकी वस्तुतः समकालिक प्रकृति है। गैलेरा नोड्स किसी दिए गए क्लस्टर में जितने दूर होते हैं, उतनी ही उच्च विलंबता और राइटसेट को वितरित और प्रमाणित करने की इसकी लेखन क्षमता होती है। साथ ही, यदि कनेक्टिविटी स्थिर नहीं है, तो क्लस्टर विभाजन आसानी से हो सकता है, जो जॉइनर नोड्स पर क्लस्टर सिंक्रनाइज़ेशन को ट्रिगर कर सकता है। कुछ मामलों में, यह क्लस्टर में अस्थिरता ला सकता है। इसके लिए गैलेरा मापदंडों पर थोड़ी ट्यूनिंग की आवश्यकता है, जैसा कि इस ब्लॉग पोस्ट में दिखाया गया है, Percona XtraDB क्लस्टर के लिए एक हाइब्रिड इंफ्रास्ट्रक्चर पर्यावरण की तैनाती।
अंतिम विचार
गैलेरा क्लस्टर एक बेहतरीन तकनीक है जिसे विभिन्न तरीकों से तैनात किया जा सकता है - एक क्लस्टर कई साइटों पर फैला हुआ है, कई क्लस्टर एसिंक्रोनस प्रतिकृति के माध्यम से सिंक में रखे गए हैं, सिंक्रोनस और एसिंक्रोनस प्रतिकृति का मिश्रण, और इसी तरह। वास्तविक समाधान WAN विलंबता, अंतिम बनाम मजबूत डेटा स्थिरता और बजट जैसे कारकों द्वारा निर्धारित किया जाएगा।