2016-09-28 13 views
5

से कैसंड्रा संस्करण अपग्रेड हम अपने क्लस्टर को अपग्रेड करने की योजना बना रहे हैं जो वर्तमान में 2.0.9 से 2.2.6 पर चलता है। प्रलेखन के अनुसार और कुछ ब्लॉग लोग कैसंड्रा इनप्लेस को अपग्रेड करते हैं यानी रिंग से नोड को हटा दें और इसे दोबारा जोड़ें। हम इस दृष्टिकोण का पालन करने पर संदेह कर रहे हैं क्योंकि चीजें गलत हो सकती हैं (यह क्यूपीएस की अच्छी संख्या वाला एक उच्च लेनदेन डेटाबेस है)।2.0.9 से 2.2

तो हम क्लस्टर में एक नया डेटासेंटर जोड़ने की योजना बना रहे थे, जिसने कैसंड्रा संस्करण (2.2) को अपग्रेड किया होगा। तो सेटअप में दो डेटासेंटर एक पुराना (2.0.9) होगा और दूसरा नया (2.2.6)

यह डेटासेंटर केवल एक बैकअप है। जब डेटासेंटर स्थिर हो जाता है तो हम क्लाइंट कनेक्शन को इस डेटासेंटर में बदल देंगे और यदि यह अच्छी तरह से खेलता है तो हम इस डेटासेंटर के साथ जाएंगे और पुराने डेटासेंटर को बंद कर देंगे या अन्यथा हम पुराने डेटासेंटर पर वापस आ सकते हैं और गलत हो सकते हैं।

क्या यह प्रक्रिया पर्याप्त व्यवहार्य है या क्या हमें जगह अपग्रेड के लिए जाना चाहिए?

दो कैसंड्रा संस्करण (2.0 और 2.2) डेटासेंटर में मौजूद हो सकते हैं।

क्या इस दृष्टिकोण में कोई गिरावट आई है?

उत्तर

3

दो कैसंड्रा संस्करण (2.0 और 2.2) डेटासेंटर में मौजूद हो सकते हैं।

नहीं, वे नहीं कर सकते हैं।

क्या यह प्रक्रिया पर्याप्त व्यवहार्य है या क्या हमें जगह अपग्रेड के लिए जाना चाहिए?

आपको इन-प्लेस अपग्रेड करने की आवश्यकता होगी। ऐसा इसलिए है क्योंकि कैसंद्रा संस्करणों में स्ट्रीम नहीं कर सकता है। इन-प्लेस अपग्रेड करने से नए संस्करण को पुराने संस्करण से एसएसटीबल्स को पढ़ने की अनुमति मिलती है।

क्या इस दृष्टिकोण में कोई गिरावट आई है?

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

आपके पास अन्य समस्या यह है कि 2.2.6 2.0.9 के साथ "संगत अपग्रेड" नहीं है। इस डेटास्टैक्स दस्तावेज़ से: Apache Cassandra versions requiring intermediate upgrades ...

अपाचे कैसेंड्रा 2.2.x प्रतिबंध

  • कैसेंड्रा से 2.1 संस्करण बाद में नवीनीकरण या सीधे कैसेंड्रा 2.2.x. के लिए 2.1.9 के बराबर
  • कैसंड्रा 2.0 और पुराने संस्करणों से प्रत्यक्ष अपग्रेड समर्थित नहीं है।

आप पहले को अपने पूरे क्लस्टर को कैसंड्रा 2.1 में अपग्रेड करना होगा। एक बार 2.1 तक अपग्रेड पूरा हो जाने पर, फिर आप अपने नोड्स को 2.2.6 पर अपग्रेड कर सकते हैं।

+0

हाय @ एरॉन, धन्यवाद। यह बहुत अजीब बात है कि क्यों दो कैसंड्रा संस्करण डेटासेंटर में मौजूद नहीं हो सकते हैं लेकिन एक ही डेटासेंटर (क्लस्टर) में मौजूद हो सकते हैं। क्या इसके लिए कोई विशेष कारण है? यदि कैसंड्रा विभिन्न संस्करणों के साथ डेटासेंटर में डेटा स्ट्रीम नहीं कर सकता है .. क्या मेरे पास पहले नए डेटासेंटर में एक ही संस्करण हो सकता है और उसके बाद बूटस्ट्रैपिंग, पुनर्निर्माण और मरम्मत के बाद मैं नए डेटासेंटर में संस्करण को अपग्रेड कर सकता हूं और अपग्रेड के बाद क्लाइंट कनेक्शन बदल सकता हूं? क्या यह व्यवहार्य है? ... मुझे इस दृष्टिकोण में भी पता है कि दो डेटासेंटर दो अलग-अलग संस्करणों में हैं। यह काम करेगा? धन्यवाद। – johri21

+1

@ johri21 हां। * वह * काम करना चाहिए। – Aaron

1

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

यदि आप वास्तव में रोलिंग अपग्रेड नहीं करना चाहते हैं, तो मैं सुझाव दूंगा कि दूसरा डीसी अलग क्लस्टर के रूप में सेट करें, बैकअप आयात करें और कुछ (लोड) परीक्षण करें। दोनों क्लस्टर में लिखने के लिए अपना कोड भी बदलें और अंत में संतुष्ट होने पर अंततः नए पर स्विच करें। यदि आप इतना प्रयास नहीं करना चाहते हैं, तो बस रोलिंग अपग्रेड करें।

+0

हाय स्टीफन, पहला प्रलोभन मेरे पास एक 2.0 नोड क्लस्टर है जिसमें 2.0.9 कैसंड्रा संस्करण चल रहा है। अब मैं 2.2 कैसंड्रा संस्करण के साथ अलग डीसी स्थापित करने की योजना बना रहा हूं। यह पुराने डीसी (2.0.9) से बूटस्ट्रैप किया जाएगा। मुझे पता है कि इसमें कुछ समय लगेगा (बूटस्टैपिंग)। लाभ यह है कि मेरे आवेदन से पढ़ने और लिखने को 2.0.9 से परोसा जाएगा जो पूरी तरह से काम कर रहा है और यह सब पढ़ता है और लिखने को नई डीसी (एसिंक) में सिंक किया जाएगा। फिर दुबला अवधि (जब यातायात कम होता है) में मैं केवल संपर्क बिंदु को अपने नए डीसी (2.2) में बदल दूंगा। सबकुछ ठीक काम करने के बाद मैं पुराना डीसी बंद कर दूंगा। – johri21

संबंधित मुद्दे