Edge for Private Cloud v. 4.17.01
ZooKeeper के एन्सेम्बल को इस तरह से डिज़ाइन किया गया है कि एक या उससे ज़्यादा ZooKeeper नोड के बंद होने के बावजूद, डेटा को सुरक्षित रखा जा सके. इस सुविधा का इस्तेमाल, सिस्टम के डाउनटाइम के बिना, ZooKeeper नोड का रखरखाव करने के लिए किया जा सकता है.
ZooKeeper और Edge के बारे में जानकारी
Edge में, ZooKeeper नोड में अलग-अलग Edge कॉम्पोनेंट की जगह और कॉन्फ़िगरेशन के बारे में कॉन्फ़िगरेशन डेटा होता है. साथ ही, यह कॉन्फ़िगरेशन में हुए बदलावों के बारे में अलग-अलग कॉम्पोनेंट को सूचना देता है. प्रोडक्शन सिस्टम के लिए इस्तेमाल की जा सकने वाली सभी Edge टोपियां, कम से कम तीन ZooKeeper नोड इस्तेमाल करती हैं.
ZooKeeper नोड की जानकारी देने के लिए, Edge कॉन्फ़िगरेशन फ़ाइल में ZK_HOSTS और ZK_CLIENT_HOSTS प्रॉपर्टी का इस्तेमाल करें. उदाहरण के लिए:
ZK_HOSTS="$IP1 $IP2 $IP3" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
कहां:
- ZK_HOSTS - इससे, ZooKeeper नोड के आईपी पतों की जानकारी मिलती है. सभी ZooKeeper नोड पर, आईपी पते एक ही क्रम में होने चाहिए.
कई डेटा सेंटर वाले एनवायरमेंट में, सभी डेटा सेंटर के सभी ZooKeeper नोड की सूची बनाएं. - ZK_CLIENT_HOSTS -
सिर्फ़ इस डेटा सेंटर में इस्तेमाल किए जाने वाले ZooKeeper नोड के आईपी पते बताता है. आईपी
पतों को डेटा सेंटर के सभी ZooKeeper नोड पर एक ही क्रम में रखा जाना चाहिए.
किसी एक डेटा सेंटर इंस्टॉलेशन में, ये वही नोड होते हैं जो ZK_HOSTS में बताए गए हैं. एक से ज़्यादा डेटा सेंटर वाले एनवायरमेंट में, हर डेटा सेंटर के लिए Edge कॉन्फ़िगरेशन फ़ाइल में सिर्फ़ उस डेटा सेंटर के ZooKeeper नोड की सूची होनी चाहिए
डिफ़ॉल्ट रूप से, सभी ZooKeeper नोड को वोटर नोड के तौर पर सेट किया जाता है. इसका मतलब है कि सभी नोड, ZooKeeper का लीडर चुनने में मदद करते हैं. आप ZK_HOSTS के साथ “:observer” मॉडिफ़ायर शामिल कर सकते हैं. इससे यह पता चलता है कि नोट एक ऑब्ज़र्वर नोड है, न कि मतदाता. ऑब्ज़र्वर नोड, लीडर के चुनाव में हिस्सा नहीं लेता.
आम तौर पर, कई Edge डेटा सेंटर बनाते समय या एक डेटा सेंटर में बड़ी संख्या में ZooKeeper नोड होने पर, आपकी ओर से “:observer” मॉडिफ़ायर तय किया जाता है. उदाहरण के लिए, दो डेटा सेंटर वाले 12-होस्ट वाले Edge इंस्टॉलेशन में, डेटा सेंटर 2 के नोड 9 पर मौजूद ZooKeeper, ऑब्ज़र्वर होता है:
इसके बाद, डेटा सेंटर 1 के लिए अपनी कॉन्फ़िगरेशन फ़ाइल में इन सेटिंग का इस्तेमाल करें:
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP1 $IP2 $IP3"
और डेटा सेंटर के लिए
ZK_HOSTS="$IP1 $IP2 $IP3 $IP7 $IP8 $IP9:observer" ZK_CLIENT_HOSTS="$IP7 $IP8 $IP9"
लीडर, फ़ॉलोअर, मतदाताओं, और ऑब्ज़र्वर के बारे में जानकारी
एक से ज़्यादा नोड वाले ZooKeeper इंस्टॉलेशन में, किसी एक नोड को लीडर के तौर पर चुना जाता है. ZooKeeper के बाकी सभी नोड को फ़ॉलोअर के तौर पर दिखाया जाता है. ZooKeeper के किसी भी नोड से डेटा पढ़ा जा सकता है. हालांकि, डेटा लिखने के सभी अनुरोध, लीडर को भेजे जाते हैं. उदाहरण के लिए, Edge में एक नया मैसेज प्रोसेसर जोड़ा गया है. यह जानकारी, ZooKeeper लीडर को लिखी जाती है. सभी फ़ॉलोअर फिर डेटा को दोहराते हैं.
Edge इंस्टॉल करते समय, हर ZooKeeper नोड को वोटर या ऑब्ज़र्वर के तौर पर तय किया जाता है. इसके बाद, सभी वोटर ZooKeeper नोड, लीडर को चुनते हैं. किसी नेता को चुनने के लिए ज़रूरी है कि ZooKeeper में वोटर नोड की ज़रूरी संख्या कोरूम में भर जाए. क्वोरम का मतलब है कि सभी डेटा सेंटर में, वोटिंग में हिस्सा लेने वाले आधे से ज़्यादा ZooKeeper नोड काम कर रहे हैं.
अगर वोटरों के लिए तय की गई संख्या के हिसाब से कोरीम उपलब्ध नहीं है, तो किसी नेता को नहीं चुना जा सकता. इस स्थिति में, Zookeeper अनुरोधों को पूरा नहीं कर सकता. इसका मतलब है कि कोरम वापस आने तक, Edge मैनेजमेंट सर्वर से अनुरोध नहीं किया जा सकता, मैनेजमेंट एपीआई के अनुरोधों को प्रोसेस नहीं किया जा सकता या Edge यूज़र इंटरफ़ेस (यूआई) में लॉग इन नहीं किया जा सकता.
उदाहरण के लिए, एक डेटा सेंटर इंस्टॉलेशन में:
- आपने तीन ZooKeeper नोड इंस्टॉल किए हैं
- सभी ZooKeeper नोड, मतदाता होते हैं
- कोरम के लिए, दो काम करने वाले वोटर नोड ज़रूरी हैं
- अगर सिर्फ़ एक वोटर नोड उपलब्ध होता है, तो ZooKeeper एन्सेम्बल काम नहीं करता
दो डेटा सेंटर वाले इंस्टॉलेशन में:
- आपने हर डेटा सेंटर के लिए तीन ZooKeeper नोड इंस्टॉल किए हैं, ताकि कुल छह नोड हो जाएं
- डेटा सेंटर 1 में तीन वोटर नोड हैं
- डेटा सेंटर 2 में दो वोटर नोड और एक ऑब्ज़र्वर नोड हैं
- कोरम, दोनों डेटा सेंटर में मौजूद पांच वोटर पर आधारित होता है. इसलिए, इसमें तीन काम करने वाले वोटर नोड होते हैं
- अगर सिर्फ़ दो या उससे कम वोटर नोड उपलब्ध हैं, तो ZooKeeper एन्सेम्बल काम नहीं कर सकता
वोटर या ऑब्ज़र्वर के तौर पर नोड जोड़ना
सिस्टम की ज़रूरतों के लिए, आपको Edge के इंस्टॉलेशन में अतिरिक्त ZooKeeper नोड जोड़ना पड़ सकता है. ZooKeeper नोड जोड़ना दस्तावेज़ में यह जानकारी दी गई है कि Edge में अतिरिक्त ZooKeeper नोड कैसे जोड़ें. ZooKeeper नोड जोड़ते समय, आपको इस बात का ध्यान रखना होगा कि किस तरह के नोड को जोड़ना है: वोटर या ऑब्ज़र्वर.
आपको यह पक्का करना है कि वोटर नोड की संख्या ज़रूरत के मुताबिक हो, ताकि एक या एक से ज़्यादा वोटर नोड काम न कर पाएं. इससे ZooKeeper का ग्रुप काम करता रहेगा. इसका मतलब है कि वोट देने वाले लोगों के लिए, वोटर नोड की संख्या तय है. वोटर नोड जोड़ने से, क्वोरम का साइज़ बढ़ जाता है. इसलिए, ज़्यादा वोटर नोड के बंद होने पर भी, आपके पास लेन-देन की पुष्टि करने का विकल्प होता है.
हालांकि, अतिरिक्त वोटर नोड जोड़ने से, लिखने की परफ़ॉर्मेंस पर बुरा असर पड़ सकता है. ऐसा इसलिए, क्योंकि लिखने के लिए, सभी नोड को लीडर के साथ सहमत होना ज़रूरी है. लीडर की पहचान करने में लगने वाला समय, वोटर नोड की संख्या पर निर्भर करता है. जैसे-जैसे ज़्यादा वोटर नोड जोड़े जाते हैं, यह संख्या बढ़ती जाती है. इसलिए, आपको सभी नोड को वोटर नहीं बनाना है.
वोटर नोड जोड़ने के बजाय, ऑब्ज़र्वर नोड जोड़े जा सकते हैं. ऑब्ज़र्वर नोड जोड़ने से, किसी लीडर को चुनने के ओवरहेड के बिना, पूरे सिस्टम की रीड परफ़ॉर्मेंस बेहतर होती है. ऐसा इसलिए होता है, क्योंकि ऑब्ज़र्वर नोड वोट नहीं करते और क्वोरम के साइज़ पर उनका कोई असर नहीं पड़ता. इसलिए, अगर कोई ऑब्ज़र्वर नोड काम करना बंद कर देता है, तो इससे एन्सेम्बल के लीडर को चुनने की क्षमता पर कोई असर नहीं पड़ता. हालांकि, ऑब्ज़र्वर नोड के बंद होने पर, ZooKeeper एन्सेम्बल की रीड परफ़ॉर्मेंस पर असर पड़ सकता है. इसकी वजह यह है कि डेटा के अनुरोधों को पूरा करने के लिए, कम नोड उपलब्ध होते हैं.
Apigee का सुझाव है कि किसी एक डेटा सेंटर में, पांच से ज़्यादा वोटर न हों. भले ही, ऑब्ज़र्वर नोड की संख्या कितनी भी हो. Apigee का सुझाव है कि दो डेटा सेंटर में, आपके पास नौ से ज़्यादा मतदाता (एक डेटा सेंटर में पांच और दूसरे में चार) न हों. इसके बाद, अपने सिस्टम की ज़रूरतों के हिसाब से, जितने चाहें उतने ऑब्ज़र्वर नोड जोड़े जा सकते हैं.
रखरखाव से जुड़ी बातें
ZooKeeper का रखरखाव, पूरी तरह से काम करने वाले एन्सेंबल पर किया जा सकता है. साथ ही, उस पर कोई डाउनटाइम सेट नहीं किया जा सकता. ऐसा तब किया जा सकता है, जब उसे एक बार में एक ही नोड पर किया जाए. यह पक्का करके कि एक बार में सिर्फ़ एक ZooKeeper नोड बंद है, यह पक्का किया जा सकता है कि कोई नेता चुनने के लिए, वोटर नोड की संख्या हमेशा मौजूद रहे.
एक से ज़्यादा डेटा सेंटर में रखरखाव
एक से ज़्यादा डेटा सेंटर के साथ काम करते समय, ध्यान रखें कि ZooKeeper एन्सेम्बल, डेटा सेंटर के बीच अंतर नहीं करता. ZooKeeper असेंबली, सभी डेटा सेंटर में मौजूद सभी ZooKeeper नोड को एक साथ देखती हैं.
जब ZooKeeper, क्वोरम की गिनती करता है, तो किसी डेटा सेंटर में वोटर नोड की जगह कोई फ़ैक्टर नहीं होती. अलग-अलग नोड, सभी डेटा सेंटर में बंद हो सकते हैं. हालांकि, जब तक पूरे ग्रुप में ज़रूरी संख्या में नोड काम कर रहे हैं, तब तक ZooKeeper काम करता रहेगा.
रखरखाव से जुड़े असर
कई बार, वोटर नोड या ऑब्ज़र्वर नोड के रखरखाव के लिए आपको ZooKeeper नोड बंद करना पड़ता है. उदाहरण के लिए, हो सकता है कि आपको नोड पर Edge के वर्शन को अपग्रेड करना पड़े, ZooKeeper को होस्ट करने वाली मशीन काम न करे या नेटवर्क की गड़बड़ी जैसी किसी और वजह से नोड उपलब्ध न हो.
अगर बंद होने वाला नोड, ऑब्ज़र्वर नोड है, तो नोड के वापस आने तक, ZooKeeper एनसेंबल की परफ़ॉर्मेंस में थोड़ी गिरावट आ सकती है. अगर यह नोड वोटर नोड है, तो यह नेता के चुनाव की प्रक्रिया में हिस्सा लेने वाले नोड के खो जाने की वजह से ZooKeeper के कलेक्शन के काम करने के तरीके पर असर डाल सकता है. वोटर नोड के बंद होने की वजह चाहे जो भी हो, उपलब्ध वोटर नोड का कोरम बनाए रखना ज़रूरी है.
रखरखाव का तरीका
रखरखाव से जुड़ी कोई भी प्रोसेस सिर्फ़ तब की जानी चाहिए, जब यह पक्का हो जाए कि ZooKeeper का ग्रुप ठीक से काम कर रहा है. यह मान लिया जाता है कि ऑब्ज़र्वर नोड काम कर रहे हैं और रखरखाव के दौरान, क्वोरम बनाए रखने के लिए ज़रूरत के मुताबिक वोटर नोड उपलब्ध हैं.
इन शर्तों के पूरा होने पर, किसी भी साइज़ का ZooKeeper एन्सेम्बल, किसी भी समय एक नोड के नुकसान को बर्दाश्त कर सकता है. ऐसा करने पर, डेटा का नुकसान नहीं होता और परफ़ॉर्मेंस पर कोई असर नहीं पड़ता. इसका मतलब है कि आपके पास एक समय में एक नोड पर, एन्सेम्बल के किसी भी नोड को मैनेज करने का विकल्प है.
रखरखाव के दौरान, ZooKeeper नोड (लीडर, वोटर या ऑब्ज़र्वर) का टाइप तय करने के लिए, यह तरीका अपनाएं:
- अगर इसे ZooKeeper नोड पर इंस्टॉल नहीं किया जाता है, तो nc:
> sudo yum install nc इंस्टॉल करें - नोड पर यहां दिया गया NC कमांड चलाएं:
> Eco stat | nc localhost 2181
जहां 2181, ZooKeeper पोर्ट होता है. आपको इस फ़ॉर्म में आउटपुट दिखेगा:
Zookeeper वर्शन: 3.4.5-1392090, इसे 30/09/2012 को 17:52 GMT पर बनाया गया था
क्लाइंट: /a.b.c.d:xxxx[0](queued=0,recved=1,sent=0)
लैन्टेंसी का कम से कम/औसत/ज़्यादा से ज़्यादा समय: 0/0/0
मिला: 1
भेजा गया: 0
कनेक्शन: 1
बाकी है: 0
Zxid: 0xc00000044
मोड: फ़ॉलोअर
नोड की संख्या: 653
नोड के आउटपुट की मोड लाइन में, आपको ऑब्ज़र्वर, लीडर या फ़ॉलोअर (इसका मतलब है कि वोट करने वाला व्यक्ति लीडर नहीं है) दिखेगा. यह नोड कॉन्फ़िगरेशन पर निर्भर करता है.
ध्यान दें: एक ZooKeeper नोड वाले Edge के स्टैंडअलोन इंस्टॉलेशन में, मोड को स्टैंडअलोन पर सेट किया जाता है. - हर ZooKeeper नोड पर पहले और दूसरे चरण को दोहराएं.
खास जानकारी
ZooKeeper के एन्सेम्बल को एक बार में एक नोड पर रखरखाव करने का सबसे अच्छा तरीका है. ध्यान दें:
- रखरखाव के दौरान, आपको वोटर नोड का कोरम बनाए रखना होगा, ताकि यह पक्का किया जा सके कि ZooKeeper के एन्सेम्बल काम करते रहें
- किसी ऑब्ज़र्वर नोड को हटाने से, कोरम या लीडर चुनने की सुविधा पर कोई असर नहीं पड़ता
- क्वोरम का हिसाब, सभी डेटा सेंटर के सभी ZooKeeper नोड के हिसाब से लगाया जाता है
- पहले सर्वर के चालू होने के बाद, अगले सर्वर के रखरखाव की प्रोसेस शुरू करें
- ZooKeeper नोड की जांच करने के लिए, nc कमांड का इस्तेमाल करना