Cassandra rack की सहायता जोड़ें

इस सेक्शन में, 'निजी क्लाउड रैक' के लिए Apigee Edge पर कैसांड्रा को जोड़कर, कैसांड्रा के काम करने के तरीके को बढ़ाने के लिए सामान्य दिशा-निर्देश दिए गए हैं.

अपने Cassandra रिंग रैक को जागरूक बनाना क्यों ज़रूरी है, इस बारे में ज़्यादा जानकारी के लिए, ये संसाधन देखें:

रैक क्या है?

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

इस सेक्शन में दिए गए उदाहरणों में तीन कैसंड्रा रैक इस्तेमाल किए गए हैं. ये रैक की वह संख्या है जो प्रोडक्शन की टोपोलॉजी में Apigee की मदद से काम करती है.

Apigee Edge for Private Cloud में, कैसंड्रा को डिफ़ॉल्ट रूप से इंस्टॉल करने के लिए, एक लॉजिकल रैक का इस्तेमाल किया जाता है और सभी नोड को उसके अंदर एक डेटा सेंटर में डाल दिया जाता है. हालांकि, यह कॉन्फ़िगरेशन इंस्टॉल और मैनेज करने में आसान है, लेकिन अगर उनमें से किसी नोड पर कोई कार्रवाई काम नहीं करती, तो हो सकता है कि यह काम न करे.

नीचे दी गई इमेज में कैसंड्रा रिंग का डिफ़ॉल्ट कॉन्फ़िगरेशन दिखाया गया है:

तीन नोड वाली एक रैक
(पहली इमेज) डिफ़ॉल्ट कॉन्फ़िगरेशन: एक ही रैक पर मौजूद सभी नोड

ज़्यादा मज़बूत कॉन्फ़िगरेशन में, हर नोड को एक अलग रैक को असाइन किया जाएगा और हर रैक की कॉपी पर ही कार्रवाइयां की जाएंगी.

नीचे दी गई इमेज में 3-नोड रिंग दिखाया गया है. इस इमेज में दिखाया गया है कि रिंग (घड़ी की सुई की दिशा में) पर किस क्रम में कार्रवाइयां की जाती हैं. साथ ही, इस इमेज में इस बात को हाइलाइट किया गया है कि एक ही रैक पर कोई भी दो नोड नहीं है:

तीन रैक, हर रैक में एक नोड होता है
(इमेज 2) रैक अवेयर कॉन्फ़िगरेशन: तीन नोड, हर रैक पर एक

इस कॉन्फ़िगरेशन में, ऑपरेशन एक नोड पर भेजे जाते हैं, लेकिन अन्य रैक पर मौजूद उस नोड की कॉपी को (घड़ी की सुई की दिशा में) पर भी भेजे जाते हैं.

रैक जागरूकता जोड़ें (तीन नोड)

Apigee Edge for Private Cloud के सभी प्रोडक्शन इंस्टॉलेशन टोपोलॉजी में कम से कम तीन कैसेंड्रा नोड होते हैं. इस सेक्शन में, "IP1", "IP2", और "IP3" को शामिल किया गया है. डिफ़ॉल्ट रूप से, ये नोड एक ही रैक, "ra-1" में होते हैं.

इस सेक्शन में बताया गया है कि कैसंड्रा नोड को अलग-अलग रैक में कैसे असाइन किया जाना चाहिए, ताकि सभी ऑपरेशनल रिंग के अंदर अलग-अलग लॉजिकल ग्रुपिंग में मौजूद प्रतिरूप नोड को भेजे जाएं.

इंस्टॉल करने के दौरान, अलग-अलग रैक के लिए कैसांड्रा नोड असाइन करने के लिए:

  1. इंस्टॉलर को चलाने से पहले, Cassandra नोड में लॉग इन करें और बदलाव करने के लिए, नीचे दी गई साइलेंट कॉन्फ़िगरेशन फ़ाइल खोलें:
    /opt/silent.conf

    अगर फ़ाइल मौजूद नहीं है, तो उसे बनाएं और पक्का करें कि "apigee" उपयोगकर्ता को मालिक बनाया गया हो.

  2. CASS_HOSTS प्रॉपर्टी में बदलाव करें. यह आईपी पतों की ऐसी सूची होती है जिसे स्पेस से अलग किया जाता है, न कि डीएनएस या होस्टनेम की एंट्री, जिसमें यहां दिए गए सिंटैक्स का इस्तेमाल किया जाता है:
    CASS_HOSTS="IP_address:data_center_number,rack_number [...]"

    डिफ़ॉल्ट वैल्यू तीन नोड वाली कैसंड्रा रिंग है. इसमें हर नोड को रैक 1 और डेटा सेंटर 1 को असाइन किया गया है, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:

    CASS_HOSTS="IP1:1,1 IP2:1,1 IP3:1,1"
  3. रैक के असाइनमेंट में बदलाव करें, ताकि नोड 2 को रैक 2 को और नोड 3 को रैक 3 को असाइन किया जा सके, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है:
    CASS_HOSTS="IP1:1,1 IP2:1,2 IP3:1,3"

    रैक के असाइनमेंट को बदलकर, आप कैसंड्रा को दो अतिरिक्त लॉजिकल ग्रुप (रक) बनाने का निर्देश देते हैं. इनके बाद, ऐसे ग्रुप बनाए जाते हैं जिनके लिए पहले नोड से इकट्ठा किए गए सारे डेटा को कॉपी किया जाता है.

    CASS_HOSTS कॉन्फ़िगरेशन प्रॉपर्टी का इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, Edge कॉन्फ़िगरेशन फ़ाइल का रेफ़रंस देखें.

  4. कॉन्फ़िगरेशन फ़ाइल में अपने बदलावों को सेव करें और अपडेट किए गए कॉन्फ़िगरेशन के साथ Cassandra को इंस्टॉल करने के लिए, नीचे दिए गए निर्देश को एक्ज़ीक्यूट करें:
    /opt/apigee/apigee-setup/bin/setup.sh -p c -f path/to/silent/config

    उदाहरण के लिए:

    /opt/apigee/apigee-setup/bin/setup.sh -p c -f /opt/silent.conf
  5. रिंग में हर कैसंड्रा नोड के लिए, इस प्रोसेस को उसी क्रम में दोहराएं जिस क्रम में CASS_HOSTS प्रॉपर्टी में नोड असाइन किए गए हैं. इस मामले में, आपको नीचे बताए गए क्रम में Cassandra इंस्टॉल करना होगा:
    1. नोड 1 (IP1)
    2. नोड 2 (IP2)
    3. नोड 3 (IP3)

इंस्टॉल करने के बाद, आपको Cassandra के कॉन्फ़िगरेशन की जांच करनी चाहिए.

Cassandra के कॉन्फ़िगरेशन की जांच करना

रैक-अवेयर कॉन्फ़िगरेशन को इंस्टॉल करने के बाद, nodetool status कमांड का इस्तेमाल करके यह देखा जा सकता है कि अलग-अलग रैक के लिए नोड असाइन किए गए हैं या नहीं. ऐसा, नीचे दिए गए उदाहरण में दिखाया गया है:

/opt/apigee/apigee-cassandra/bin/nodetool status

(आप इस कमांड को किसी एक कैसंड्रा नोड पर लागू करते हैं.)

नतीजे कुछ तरह से दिखने चाहिए. इसमें रैक कॉलम, हर नोड के लिए अलग-अलग रैक आईडी दिखाता है:

Datacenter: dc-1
========================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
--  Address         Load       Tokens  Owns    Host ID                             Rack
UN  IP1   737 MB  256     ?     554d4498-e683-4a53-b0a5-e37a9731bc5c     ra-1
UN  IP2   744 MB  256     ?     cf8b7abf-5c5c-4361-9c2f-59e988d52da3     ra-2
UN  IP3   723 MB  256     ?     48e0384d-738f-4589-aa3a-08dc5bd5a736     ra-3

अगर आपने Cassandra के लिए JMX की पुष्टि करने की सुविधा चालू की है, तो आपको अपना उपयोगकर्ता नाम और पासवर्ड भी nodetool पर भेजना होगा. ज़्यादा जानकारी के लिए, क्लस्टर नोड को मैनेज करने के लिए nodetool का इस्तेमाल करना देखें.

सिक्स-नोड रिंग इंस्टॉल करें

अतिरिक्त अतिरिक्तता के लिए, कैसंड्रा रिंग को छह नोड तक फैलाएं. इस मामले में, तीनों रैक में से हर एक के लिए दो नोड असाइन किए जाते हैं. इस कॉन्फ़िगरेशन के लिए तीन और नोड की ज़रूरत होती है: नोड 4 (IP4), नोड 5 (IP5), और नोड 6 (IP6).

नीचे दी गई इमेज में वह क्रम दिखाया गया है जिसमें ऑपरेशन को रिंग (घड़ी की सुई की दिशा में) पर दोहराया जाता है. साथ ही, इस बात को हाइलाइट किया गया है कि नकल करने के दौरान, एक ही रैक पर दो पास-पास के नोड नहीं होते हैं:

तीन रैक हैं और हर रैक में दो नोड हैं
(तीसरी इमेज) 6-नोड वाली कैसंड्रा रिंग: तीन रैक में से हर एक पर दो नोड हैं

इस कॉन्फ़िगरेशन में, हर नोड के दो और कॉपी हैं: दूसरे दो रैक में से हर एक में एक कॉपी. उदाहरण के लिए, रैक 1 में नोड 1 की रैक 2 और रैक 3 में एक नकल है. नोड 1 को भेजे गए ऑपरेशन, घड़ी के क्रम में दूसरे रैक में मौजूद प्रतिरूपों को भी भेजे जाते हैं.

तीन नोड वाले कैसंड्रा रिंग को छह नोड वाले कैसंड्रा रिंग तक बढ़ाने के लिए, अपनी साइलेंट कॉन्फ़िगरेशन फ़ाइल में नीचे बताए गए तरीके से नोड कॉन्फ़िगर करें:

CASS_HOSTS="IP1:1,1 IP4:1,3 IP2:1,2 IP5:1,1 IP3:1,3 IP6:1,2"

थ्री-नोड रिंग की तरह, आपको कैसंड्रा को उसी क्रम में इंस्टॉल करना होगा जिस क्रम में CASS_HOSTS प्रॉपर्टी में नोड दिखते हैं:

  1. नोड 1 (IP1)
  2. नोड 4 (IP4)*
  3. नोड 2 (IP2)
  4. नोड 5 (IP5)
  5. नोड 3 (IP3)
  6. नोड 6 (IP6)

* चौथे नोड (कैसांड्रा इंस्टॉलेशन ऑर्डर में दूसरी मशीन) पर सेटअप यूटिलिटी चलाने से पहले, साइलेंट कॉन्फ़िगरेशन फ़ाइल में बदलाव करें.

12 नोड तक बड़ा करें

गड़बड़ी सहने की क्षमता और उपलब्धता को बढ़ाने के लिए, रिंग में कैसंड्रा नोड की संख्या 6 से 12 तक बढ़ाई जा सकती है. इस कॉन्फ़िगरेशन के लिए, छह अतिरिक्त नोड की ज़रूरत होती है. जैसे, IP7 से लेकर IP12 तक.

नीचे दी गई इमेज में वह क्रम दिखाया गया है जिसमें ऑपरेशन को रिंग (घड़ी की सुई की दिशा में) पर दोहराया जाता है. साथ ही, इस बात को हाइलाइट किया गया है कि नकल करने के दौरान, एक ही रैक पर दो पास-पास के नोड नहीं होते हैं:

तीन रैक और हर रैक में चार नोड हैं
(चौथी इमेज) 12-नोड वाली कैसंड्रा रिंग: तीन रैक में से हर एक पर चार नोड

12-नोड रिंग इंस्टॉल करने की प्रक्रिया, तीन या छह नोड रिंग इंस्टॉल करने जैसी ही है: दिए गए वैल्यू के लिए CASS_HOSTS सेट करें और इंस्टॉलर को तय क्रम में चलाएं.

12-नोड वाले कैसेंड्रा रिंग तक पहुंचने के लिए, अपनी साइलेंट कॉन्फ़िगरेशन फ़ाइल में नोड को इस तरह से कॉन्फ़िगर करें:

CASS_HOSTS="IP1:1,1 IP7:1,2 IP4:1,3 IP8:1,1 IP2:1,2 IP9:1,3 IP5:1,1 IP10:1,2 IP3:1,3 IP11:1,1 IP6:1,2 IP12:1,3"

तीन और छह नोड रिंग की तरह ही, आपको नोड पर इंस्टॉलर को उसी क्रम में लागू करना होगा जिस क्रम में नोड कॉन्फ़िगरेशन फ़ाइल में दिखते हैं:

  1. नोड 1 (IP1)
  2. नोड 7 (IP7)*
  3. नोड 4 (IP4)
  4. नोड 8 (IP8)
  5. नोड 2 (IP2)
  6. नोड 9 (IP9)
  7. नोड 5 (IP5)
  8. नोड 10 (IP10)
  9. नोड 3 (IP3)
  10. नोड 11 (IP11)
  11. नोड 6 (IP6)
  12. नोड 12 (IP12)

* आपको सातवें नोड (कैसांड्रा इंस्टॉलेशन ऑर्डर में दूसरी मशीन) पर, Apigee Edge for Private Cloud को इंस्टॉल करने से पहले, ये बदलाव करने होंगे.