Amazon OpenSearch सेवा में शार्ड पर अवसंरचना विफलताओं का प्रभाव

Amazon OpenSearch सेवा में शार्ड पर अवसंरचना विफलताओं का प्रभाव

स्रोत नोड: 1783553

अमेज़न ओपन सर्च सर्विस एक प्रबंधित सेवा है जो AWS क्लाउड में बड़े पैमाने पर OpenSearch और लीगेसी Elasticsearch क्लस्टर को सुरक्षित, तैनात और संचालित करना आसान बनाती है। अमेज़ॅन ओपनसर्च सर्विस आपके क्लस्टर के लिए सभी संसाधनों का प्रावधान करती है, इसे लॉन्च करती है, और स्वचालित रूप से विफल नोड्स का पता लगाती है और बदल देती है, स्व-प्रबंधित इन्फ्रास्ट्रक्चर के ओवरहेड को कम करती है। OpenSearch के नवीनतम संस्करण, Elasticsearch के 19 संस्करणों (1.5 से 7.10 संस्करण) के लिए समर्थन, और विज़ुअलाइज़ेशन क्षमताओं द्वारा संचालित यह सेवा आपके लिए इंटरएक्टिव लॉग एनालिटिक्स, रीयल-टाइम एप्लिकेशन मॉनिटरिंग, वेबसाइट खोज, और बहुत कुछ करना आसान बनाती है। ओपनसर्च डैशबोर्ड और किबाना (1.5 से 7.10 संस्करण)।

नवीनतम सेवा सॉफ़्टवेयर रिलीज़ में, हमने शार्क आवंटन तर्क को लोड-जागरूक होने के लिए अद्यतन किया है ताकि जब किसी नोड विफलताओं के मामले में शार्क को पुनर्वितरित किया जाए, तो सेवा जीवित नोड्स को विफल नोड पर पहले से होस्ट किए गए शार्क द्वारा अतिभारित होने से रोक देती है। यह मल्टी-एजेड डोमेन के लिए विशेष रूप से महत्वपूर्ण है ताकि लगातार और अनुमानित क्लस्टर प्रदर्शन प्रदान किया जा सके।

यदि आप सामान्य रूप से शार्क आवंटन तर्क पर अधिक पृष्ठभूमि चाहते हैं, तो कृपया देखें Demystify Elasticsearch ठीकरा आवंटन.

चुनौती

एक Amazon OpenSearch सेवा डोमेन को "संतुलित" कहा जाता है जब नोड्स की संख्या कॉन्फ़िगर किए गए उपलब्धता क्षेत्रों में समान रूप से वितरित की जाती है, और किसी भी एक सूचकांक के शार्क की एकाग्रता के बिना सभी उपलब्ध नोड्स में शार्क की कुल संख्या समान रूप से वितरित की जाती है। नोड। इसके अलावा, ओपनसर्च के पास "ज़ोन अवेयरनेस" नामक एक संपत्ति है, जो सक्षम होने पर यह सुनिश्चित करती है कि प्राथमिक शार्ड और इसकी संबंधित प्रतिकृति अलग-अलग उपलब्धता क्षेत्रों में आवंटित की जाती है। यदि आपके पास डेटा की एक से अधिक प्रति है, तो एकाधिक उपलब्धता क्षेत्र बेहतर दोष सहिष्णुता और उपलब्धता प्रदान करते हैं। घटना में, डोमेन को स्केल आउट या स्केल किया जाता है या नोड की विफलता के दौरान, ओपनसर्च ज़ोन जागरूकता के आधार पर आवंटन नियमों का पालन करते हुए स्वचालित रूप से उपलब्ध नोड्स के बीच शार्क का पुनर्वितरण करता है।

जबकि शार्ड-बैलेंसिंग प्रक्रिया यह सुनिश्चित करती है कि शार्ड्स समान रूप से उपलब्धता क्षेत्रों में वितरित किए जाते हैं, कुछ मामलों में, यदि किसी एक क्षेत्र में अप्रत्याशित विफलता होती है, तो शार्क को जीवित नोड्स में पुनः आवंटित किया जाएगा। इसके परिणामस्वरूप जीवित नोड्स अभिभूत हो सकते हैं, क्लस्टर स्थिरता को प्रभावित कर सकते हैं।

उदाहरण के लिए, यदि तीन-नोड क्लस्टर में एक नोड नीचे चला जाता है, तो OpenSearch अनअसाइन किए गए टुकड़ों को पुनर्वितरित करता है, जैसा कि निम्नलिखित आरेख में दिखाया गया है। यहाँ "P" एक प्राथमिक शार्क कॉपी का प्रतिनिधित्व करता है, जबकि "R" एक प्रतिकृति शार्ड कॉपी का प्रतिनिधित्व करता है।

डोमेन के इस व्यवहार को दो भागों में समझाया जा सकता है - विफलता के दौरान और पुनर्प्राप्ति के दौरान।

असफलता के दौरान

एकाधिक उपलब्धता क्षेत्रों में तैनात एक डोमेन अपने जीवनचक्र के दौरान कई प्रकार की विफलताओं का सामना कर सकता है।

पूर्ण क्षेत्र विफलता

एक क्लस्टर कई कारणों से एक उपलब्धता क्षेत्र और उस क्षेत्र के सभी नोड्स खो सकता है। आज, सेवा खोए हुए नोड्स को शेष स्वस्थ उपलब्धता क्षेत्रों में रखने का प्रयास करती है। सेवा आवंटन नियमों का पालन करते हुए शेष नोड्स में खोए हुए टुकड़ों को फिर से बनाने का भी प्रयास करती है। इसके कुछ अनपेक्षित परिणाम हो सकते हैं।

  • जब प्रभावित क्षेत्र के टुकड़े स्वस्थ क्षेत्रों में पुनः आबंटित हो रहे होते हैं, तो वे शार्क रिकवरी को ट्रिगर करते हैं जो विलंबता को बढ़ा सकता है क्योंकि यह अतिरिक्त सीपीयू चक्र और नेटवर्क बैंडविड्थ का उपभोग करता है।
  • एक n-AZ, n-कॉपी सेटअप, (n>1) के लिए, बचे हुए n-1 उपलब्धता क्षेत्र को nth शार्ड कॉपी के साथ आवंटित किया जाता है, जो अवांछनीय हो सकता है क्योंकि यह शार्ड वितरण में तिरछापन पैदा कर सकता है, जिसके परिणामस्वरूप नोड्स में असंतुलित यातायात। ये नोड अतिभारित हो सकते हैं, जिससे आगे की विफलताएं हो सकती हैं।

आंशिक क्षेत्र विफलता

आंशिक ज़ोन विफलता की स्थिति में या जब डोमेन उपलब्धता क्षेत्र में केवल कुछ नोड्स खो देता है, तो Amazon OpenSearch सेवा विफल नोड्स को जल्द से जल्द बदलने की कोशिश करती है। हालाँकि, यदि नोड्स को बदलने में बहुत अधिक समय लगता है, तो OpenSearch उस ज़ोन के अनिर्दिष्ट टुकड़ों को उपलब्धता क्षेत्र में जीवित नोड्स में आवंटित करने का प्रयास करता है। यदि सेवा प्रभावित उपलब्धता क्षेत्र में नोड्स को प्रतिस्थापित नहीं कर सकती है, तो यह उन्हें अन्य कॉन्फ़िगर किए गए उपलब्धता क्षेत्र में आवंटित कर सकती है, जो ज़ोन के भीतर और भीतर दोनों क्षेत्रों के वितरण को और कम कर सकती है। इसके फिर से अनपेक्षित परिणाम हैं।

  • यदि डोमेन पर नोड्स में अतिरिक्त शार्ड्स को समायोजित करने के लिए पर्याप्त संग्रहण स्थान नहीं है, तो डोमेन को राइट-ब्लॉक किया जा सकता है, जिससे इंडेक्सिंग ऑपरेशन प्रभावित हो सकता है।
  • शार्क के तिरछे वितरण के कारण, डोमेन को नोड्स में तिरछे ट्रैफ़िक का भी अनुभव हो सकता है, जो पढ़ने और लिखने के संचालन के लिए विलंबता या टाइमआउट को और बढ़ा सकता है।

वसूली

आज, डोमेन की वांछित नोड संख्या को बनाए रखने के लिए, अमेज़ॅन ओपनसर्च सर्विस उपरोक्त विफलता अनुभाग में वर्णित परिदृश्यों के समान, शेष स्वस्थ उपलब्धता क्षेत्रों में डेटा नोड्स लॉन्च करती है। ऐसी घटना के बाद सभी उपलब्धता क्षेत्रों में उचित नोड वितरण सुनिश्चित करने के लिए AWS द्वारा मैन्युअल हस्तक्षेप की आवश्यकता थी।

क्या बदल रहा है?

समग्र विफलता से निपटने में सुधार करने और डोमेन स्वास्थ्य और प्रदर्शन पर विफलता के प्रभाव को कम करने के लिए, Amazon OpenSearch सेवा निम्नलिखित परिवर्तन कर रही है:

  • मजबूर क्षेत्र जागरूकता: OpenSearch में पहले से मौजूद शार्ड बैलेंसिंग कॉन्फिगरेशन है जिसे फ़ोर्स्ड अवेयरनेस कहा जाता है जिसका उपयोग उपलब्धता ज़ोन सेट करने के लिए किया जाता है जिसमें शार्ड आवंटित करने की आवश्यकता होती है। उदाहरण के लिए, यदि आपके पास ज़ोन नामक एक जागरूकता विशेषता है और इसमें नोड्स को कॉन्फ़िगर करें zone1 और zone2, यदि केवल एक क्षेत्र उपलब्ध है, तो आप OpenSearch को प्रतिकृतियां आवंटित करने से रोकने के लिए मजबूर जागरूकता का उपयोग कर सकते हैं:
cluster.routing.allocation.awareness.attributes: zone
cluster.routing.allocation.awareness.force.zone.values: zone1,zone2

इस उदाहरण कॉन्फ़िगरेशन के साथ, यदि आप दो नोड्स प्रारंभ करते हैं node.attr.zone करने के लिए सेट zone1 और पाँच शार्क और एक प्रतिकृति के साथ एक इंडेक्स बनाएँ, OpenSearch इंडेक्स बनाता है और पाँच प्राथमिक शार्क आवंटित करता है लेकिन कोई प्रतिकृति नहीं। प्रतिकृतियां केवल एक बार नोड्स के साथ आवंटित की जाती हैं node.attr.zone करने के लिए सेट zone2 उपलब्ध हैं.

Amazon OpenSearch सेवा यह सुनिश्चित करने के लिए Multi-AZ डोमेन पर फ़ोर्स्ड अवेयरनेस कॉन्फ़िगरेशन का उपयोग करेगी कि शार्ड केवल ज़ोन जागरूकता के नियमों के अनुसार आवंटित किए गए हैं। यह स्वस्थ उपलब्धता क्षेत्रों के नोड्स पर भार में अचानक वृद्धि को रोकेगा।

  • लोड-अवेयर शार्ड आवंटन: Amazon OpenSearch सेवा प्रावधानित क्षमता, वास्तविक क्षमता, और कुल शार्क प्रतियों जैसे कारकों पर विचार करेगी, ताकि यह गणना की जा सके कि क्या कोई नोड प्रति नोड अपेक्षित औसत शार्क के आधार पर अधिक शार्क के साथ अतिभारित है। यह शार्ड असाइनमेंट को रोकेगा जब किसी नोड ने एक शार्ड काउंट आवंटित किया है जो इस सीमा से परे जाता है।

नोट कि कोई असाइन नहीं किया गया प्राथमिक क्लस्टर को किसी भी आसन्न डेटा हानि से बचाने के लिए अभी भी अतिभारित नोड पर प्रतिलिपि की अनुमति दी जाएगी।

इसी तरह, मैन्युअल पुनर्प्राप्ति समस्या (जैसा कि ऊपर पुनर्प्राप्ति अनुभाग में वर्णित है) को संबोधित करने के लिए, Amazon OpenSearch सेवा भी अपने आंतरिक स्केलिंग घटक में परिवर्तन कर रही है। नए बदलावों के साथ, अमेज़ॅन ओपनसर्च सेवा शेष उपलब्धता क्षेत्रों में नोड्स लॉन्च नहीं करेगी, भले ही यह पहले वर्णित विफलता परिदृश्य से गुजरती हो।

वर्तमान और नए व्यवहार की कल्पना करना

उदाहरण के लिए, एक Amazon OpenSearch सेवा डोमेन को 3-AZ, 6 डेटा नोड, 12 प्राथमिक शार्ड और 24 रेप्लिका शार्ड के साथ कॉन्फ़िगर किया गया है। डोमेन को AZ-1, AZ-2, और AZ-3 में प्रावधानित किया गया है, प्रत्येक ज़ोन में दो नोड हैं।

वर्तमान ठीकरा आवंटन:
शार्क की कुल संख्या: 12 प्राथमिक + 24 प्रतिकृति = 36 शार्क
उपलब्धता क्षेत्रों की संख्या: 3
प्रति ज़ोन शार्क की संख्या (ज़ोन जागरूकता सही है): 36/3 = 12
उपलब्धता क्षेत्र प्रति नोड्स की संख्या: 2
प्रति नोड शार्क की संख्या: 12/2 = 6

निम्नलिखित आरेख डोमेन सेटअप का एक दृश्य प्रतिनिधित्व प्रदान करता है। वृत्त नोड को आवंटित शार्क की संख्या को दर्शाते हैं। Amazon OpenSearch सेवा प्रति नोड छह शार्क आवंटित करेगी।

आंशिक ज़ोन की विफलता के दौरान, जहाँ AZ-3 में एक नोड विफल हो जाता है, विफल नोड को शेष ज़ोन को सौंपा जाता है, और उपलब्ध नोड्स के आधार पर ज़ोन में शार्क को पुनर्वितरित किया जाता है। ऊपर वर्णित परिवर्तनों के बाद, क्लस्टर एक नया नोड नहीं बनाएगा या नोड की विफलता के बाद शार्क को पुनर्वितरित नहीं करेगा।


उपरोक्त आरेख में, AZ-3 में एक नोड के नुकसान के साथ, Amazon OpenSearch सेवा उसी क्षेत्र में प्रतिस्थापन क्षमता को लॉन्च करने का प्रयास करेगी। हालाँकि, कुछ आउटेज के कारण, ज़ोन ख़राब हो सकता है और प्रतिस्थापन शुरू करने में विफल रहेगा। ऐसी घटना में, सेवा किसी अन्य स्वस्थ क्षेत्र में घाटे की क्षमता को लॉन्च करने की कोशिश करती है, जिससे उपलब्धता क्षेत्रों में क्षेत्र असंतुलन हो सकता है। प्रभावित क्षेत्र के टुकड़े उसी क्षेत्र में बचे हुए नोड पर भर जाते हैं। हालांकि, नए व्यवहार के साथ, सेवा उसी क्षेत्र में लॉन्चिंग क्षमता का प्रयास करने का प्रयास करेगी लेकिन असंतुलन से बचने के लिए अन्य क्षेत्रों में घाटे की क्षमता लॉन्च करने से बचेंगी। शार्प एलोकेटर यह भी सुनिश्चित करेगा कि बचे हुए नोड्स ओवरलोड न हों।


इसी तरह, यदि AZ-3 में सभी नोड्स खो जाते हैं, या AZ-3 ख़राब हो जाता है, तो Amazon OpenSearch सेवा शेष उपलब्धता क्षेत्र में खोए हुए नोड्स को लाती है और नोड्स पर शार्क का पुनर्वितरण भी करती है। हालाँकि, नए परिवर्तनों के बाद, Amazon OpenSearch सेवा न तो शेष ज़ोन को नोड आवंटित करेगी और न ही शेष ज़ोन में खोए हुए हिस्से को फिर से आवंटित करने का प्रयास करेगी। Amazon OpenSearch सेवा पुनर्प्राप्ति होने और डोमेन के पुनर्प्राप्ति के बाद मूल कॉन्फ़िगरेशन पर लौटने की प्रतीक्षा करेगी।

यदि आपके डोमेन को उपलब्धता क्षेत्र के नुकसान का सामना करने के लिए पर्याप्त क्षमता के साथ प्रावधान नहीं किया गया है, तो आप अपने डोमेन के थ्रूपुट में गिरावट का अनुभव कर सकते हैं। इसलिए यह दृढ़ता से अनुशंसा की जाती है कि अपने डोमेन का आकार बदलते समय सर्वोत्तम प्रथाओं का पालन करें, जिसका अर्थ है कि एकल उपलब्धता क्षेत्र की विफलता के नुकसान का सामना करने के लिए पर्याप्त संसाधनों का प्रावधान किया गया है।


वर्तमान में, एक बार डोमेन ठीक हो जाने के बाद, सेवा को उपलब्धता क्षेत्रों में क्षमता को संतुलित करने के लिए मैन्युअल हस्तक्षेप की आवश्यकता होती है, जिसमें शार्ड मूवमेंट भी शामिल होते हैं। हालाँकि, नए व्यवहार के साथ, पुनर्प्राप्ति प्रक्रिया के दौरान किसी हस्तक्षेप की आवश्यकता नहीं है क्योंकि प्रभावित क्षेत्र में क्षमता वापस आ जाती है और शार्क भी स्वचालित रूप से पुनर्प्राप्त नोड्स को आवंटित कर दी जाती हैं। यह सुनिश्चित करता है कि शेष संसाधनों पर कोई प्रतिस्पर्धी प्राथमिकताएं नहीं हैं।

आप क्या उम्मीद कर सकते

आपके द्वारा अपने Amazon OpenSearch सेवा डोमेन को नवीनतम सेवा सॉफ़्टवेयर रिलीज़ में अपडेट करने के बाद, जो डोमेन सर्वोत्तम प्रथाओं के साथ कॉन्फ़िगर किया गया उपलब्धता क्षेत्र में एक या कई डेटा नोड्स खोने के बाद भी अधिक अनुमानित प्रदर्शन होगा। नोड में शार्ड ओवरलोकेशन के मामलों में कमी आएगी। एकल क्षेत्र की विफलता को सहन करने में सक्षम होने के लिए पर्याप्त क्षमता का प्रावधान करना एक अच्छा अभ्यास है

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

इन नए बदलावों को अपने डोमेन पर लागू करने के लिए अपने Amazon OpenSearch सर्विस डोमेन के सर्विस सॉफ़्टवेयर को अपडेट करें। सेवा सॉफ़्टवेयर अद्यतन प्रक्रिया के बारे में अधिक जानकारी में हैं Amazon OpenSearch सेवा दस्तावेज़ीकरण.

निष्कर्ष

इस पोस्ट में हमने देखा कि कैसे Amazon OpenSearch सेवा ने हाल ही में ज़ोनल आउटेज के दौरान उपलब्धता क्षेत्रों में नोड्स और शार्क वितरित करने के लिए तर्क में सुधार किया।

यह परिवर्तन सेवा को नोड या क्षेत्रीय विफलताओं के दौरान अधिक सुसंगत और अनुमानित प्रदर्शन सुनिश्चित करने में मदद करेगा। लिखने और पढ़ने की प्रक्रिया के दौरान डोमेन में कोई बढ़ी हुई लेटेंसी या राइट ब्लॉक नहीं दिखाई देंगे, जो नोड्स पर शार्क के अधिक-आवंटन के कारण पहले सतह पर आते थे।


लेखक के बारे में

बुकतावर खान Amazon OpenSearch सेवा पर कार्यरत एक वरिष्ठ सॉफ़्टवेयर इंजीनियर हैं। वह वितरित और स्वायत्त प्रणालियों में रुचि रखते हैं। OpenSearch में उनका सक्रिय योगदान है।

अंशु अग्रवाल Amazon Web Services पर AWS OpenSearch पर काम कर रहे एक वरिष्ठ सॉफ़्टवेयर इंजीनियर हैं। वह स्केलेबल और अत्यधिक विश्वसनीय सिस्टम के निर्माण से संबंधित समस्याओं को हल करने के प्रति जुनूनी है।

शौर्य दत्ता बिस्वास एक सॉफ्टवेयर इंजीनियर है जो Amazon Web Services पर AWS OpenSearch पर काम कर रहा है। वह अत्यधिक लचीला वितरित सिस्टम बनाने का शौक रखता है।

ऋषभ नाहटा एक सॉफ्टवेयर इंजीनियर है जो Amazon Web Services पर OpenSearch पर काम कर रहा है। वितरित प्रणालियों में समस्याओं को हल करने के बारे में वह रोमांचित हैं। OpenSearch में उनका सक्रिय योगदान है।

रंजीत रामचंद्र Amazon Web Services पर Amazon OpenSearch Service पर कार्यरत एक इंजीनियरिंग प्रबंधक है।

जॉन हैंडलर एक सीनियर प्रिंसिपल सॉल्यूशन आर्किटेक्ट है, जिसे AWS सर्च टेक्नोलॉजी - Amazon CloudSearch, और Amazon OpenSearch सर्विस में विशेषज्ञता हासिल है। पालो अल्टो में स्थित, वह ग्राहकों की एक विस्तृत श्रृंखला को उनकी खोज और लॉग एनालिटिक्स वर्कलोड को सही और अच्छी तरह से काम करने में मदद करता है।

समय टिकट:

से अधिक एडब्ल्यूएस बिग डेटा