Apache कैसंड्रा के रखरखाव से जुड़े टास्क

इस सेक्शन में, कैसंड्रा के रखरखाव के टास्क के बारे में बताया गया है.

एंटी-एंट्रॉपी का रखरखाव

Apache Cassandra रिंग नोड के लिए समय-समय पर रखरखाव की ज़रूरत होती है, ताकि सभी नोड में एक जैसा व्यवहार बना रहे. यह रखरखाव करने के लिए, नीचे दिए गए निर्देश का इस्तेमाल करें:

apigee-service apigee-cassandra apigee_repair -pr

इस निर्देश को चलाने के दौरान, Apigee ये सुझाव देता है:

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

    यह देखने के लिए कि किसी नोड का रिपेयर का काम पूरा हुआ है या नहीं, नोड की system.log फ़ाइल देखें और उसमें नए रिपेयर सेशन के यूयूआईडी और "सेशन पूरा हुआ" वाक्यांश वाली एंट्री खोजें. यहां लॉग एंट्री का सैंपल दिया गया है:

    INFO [AntiEntropySessions:1] 2015-03-01 10:02:56,245 RepairSession.java (line 282) [repair #2e7009b0-c03d-11e4-9012-99a64119c9d8] session completed successfully"
    Ref: https://support.datastax.com/hc/en-us/articles/204226329-How-to-check-if-a-scheduled-nodetool-repair-ran-successfully
  • जब वर्कलोड कम हो, तब चलाएं. यह टूल, सिस्टम पर बहुत ज़्यादा लोड डालता है.
  • कैसंड्रा के "मिटाई गई चीज़ें" से जुड़ी समस्याओं को खत्म करने के लिए, कम से कम हर सात दिन में कैंपेन चलाएं.
  • अलग-अलग नोड पर अलग-अलग दिन चलाएं या इसे शेड्यूल करें, ताकि हर नोड पर इसे चलाने के बीच कई घंटे हों.
  • सिर्फ़ नोड की प्राइमरी पार्टीशनर रेंज बताने के लिए, -pr विकल्प (पार्टिशनर रेंज) का इस्तेमाल करें.

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

apigee-service apigee-cassandra apigee_repair -u username -pw password -pr

apigee_repair: के साथ काम करने वाले विकल्पों को देखने के लिए, इस कमांड को भी चलाया जा सकता है

apigee-service apigee-cassandra apigee_repair -h

ध्यान दें: apigee_repair, Cassandra के नोडटूल की मरम्मत के लिए रैपर है. यह कैसंड्रा के डिवाइस को ठीक करने से पहले, अलग से जांच करता है.

ज़्यादा जानकारी के लिए, नीचे दिए गए लेख पढ़ें:

लॉग फ़ाइल का रखरखाव

कैसंड्रा लॉग, हर नोड पर /opt/apigee/var/log/cassandra डायरेक्ट्री में सेव किए जाते हैं. डिफ़ॉल्ट रूप से, ज़्यादा से ज़्यादा 50 लॉग फ़ाइलें बनाई जा सकती हैं. हर फ़ाइल का साइज़ 20 एमबी से ज़्यादा नहीं होना चाहिए. यह सीमा पूरी होने पर, नए लॉग बनाने पर पुराने लॉग मिटा दिए जाते हैं.

अगर आपको पता चलता है कि Cassandra की लॉग फ़ाइलें बहुत ज़्यादा जगह ले रही हैं, तो Log4j की सेटिंग में बदलाव करके, लॉग फ़ाइलों के लिए तय की गई जगह में बदलाव करें.

  1. इन प्रॉपर्टी को सेट करने के लिए, /opt/apigee/customer/application/cassandra.properties में बदलाव करें. अगर वह फ़ाइल मौजूद नहीं है, तो इसे बनाएं:
    conf_logback_maxfilesize=20MB
    # max file size
    conf_logback_maxbackupindex=50 # max open files
  2. नीचे दिए गए निर्देश का इस्तेमाल करके, कैसेंड्रा को रीस्टार्ट करें:
    /opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart

डिस्क की जगह का रखरखाव

आपको कैसांड्रा डिस्क के इस्तेमाल पर नियमित रूप से नज़र रखनी चाहिए, ताकि यह पक्का किया जा सके कि हर डिस्क का कम से कम 50 प्रतिशत हिस्सा खाली हो. अगर डिस्क का इस्तेमाल 50 प्रतिशत से ज़्यादा हो जाता है, तो हमारा सुझाव है कि आप डिस्क की मेमोरी में ज़्यादा जगह जोड़ें, ताकि इस्तेमाल के प्रतिशत को कम किया जा सके.

डिस्क का इस्तेमाल कम करने के लिए, कैसंड्रा अपने-आप नीचे दिए गए काम करती है:

  • टोकन की समयसीमा खत्म होने पर, पुष्टि करने वाले टोकन को मिटाना. हालांकि, आपके कॉन्फ़िगरेशन के हिसाब से, टोकन के लिए इस्तेमाल की जा रही डिस्क के स्टोरेज को खाली करने में कुछ हफ़्ते लग सकते हैं. अगर डिस्क में स्टोरेज के लिए, अपने-आप मिटने की सुविधा काफ़ी नहीं है, तो जगह की जानकारी वापस पाने के लिए टोकन को मैन्युअल तरीके से मिटाने के बारे में जानने के लिए, सहायता टीम से संपर्क करें.
  • डेटा कॉम्पैक्टिशन. हमारा सुझाव है कि कीस्पेस पर कॉम्पैक्ट रणनीति को बदलकर, LeveledCompactionStrategy पर सेट करें. इससे, डिस्क इस्तेमाल करने की बेहतर रणनीतियां, डिफ़ॉल्ट SizeTieredCompactionStrategy से बेहतर बन जाती हैं. बेहतरीन कंपोज़िशन रणनीति देखें.

ध्यान दें: जब कैसंड्रा, डेटा कॉम्पैक्ट करती है, तो उसके लिए काफ़ी सीपीयू साइकल और मेमोरी का इस्तेमाल हो सकता है. हालांकि, कॉम्पेक्शन पूरा होने के बाद, संसाधनों का इस्तेमाल सामान्य तरीके से हो जाना चाहिए. हर नोड पर 'Nodetool compactionstats' कमांड चलाया जा सकता है, ताकि यह पता लगाया जा सके कि कंपाइलेशन चल रहा है या नहीं. compactionstats के आउटपुट से आपको यह पता चलता है कि कोई कॉन्फ़िगरेशन बाकी है या नहीं. साथ ही, उसे पूरा होने का अनुमानित समय भी पता चलता है.