हाल ही में हमें कॉहेसिटी टीम के साथ हेलिओस और रेडिस एंटरप्राइज के बीच एकीकरण को सत्यापित करने का अवसर मिला, जो रेडिस टेक्निकल पार्टनर प्रोग्राम में ऑनबोर्डिंग के एक चरण के रूप में था। कॉहेसिटी स्मार्टफाइल्स, एक सेवा जो हेलिओस पर चलती है, असंरचित डेटा का एक सिंगल व्यू और वैश्विक प्रबंधन प्रदान करती है, भले ही डेटा कहीं भी रहता हो। रेडिस एंटरप्राइज के संदर्भ में, स्मार्टफाइल्स डेटाबेस स्नैपशॉट्स का एक सिंगल व्यू प्रदान करती है।
हम पर्सिस्टेंस और बैकअप के साथ क्यों परेशान होते हैं? यह सच है: यदि रेडिस का उपयोग कैश के रूप में किया जाता है और बैकएंड डेटाबेस से न्यूनतम सिस्टम प्रभाव के साथ पुनर्जीवित किया जा सकता है, तो किसी की भी आवश्यकता नहीं है। दूसरी ओर, विचार करें जब रेडिस का उपयोग धीमे डेटा तक तेज़ पहुंच प्रदान करने के लिए ऑपरेशनल डेटाबेस के रूप में किया जाता है (सोचें: ट्रांजैक्शन हिस्ट्री, इन्वेंट्री काउंट, कस्टमर लुकअप)। रेडिस डेटाबेस को हार्डवेयर समस्याओं से जल्दी ठीक होने या किसी अन्य डेटासेंटर में फेलओवर करने की आवश्यकता होती है।
पर्सिस्टेंस
रेडिस डेटाबेस में सभी डेटा विशेष रूप से RAM या RAM + फ्लैश मेमोरी (रेडिस ऑन फ्लैश) में संग्रहीत और प्रबंधित किया जाता है; यह प्रोसेस या सर्वर विफलता पर खो जाने का जोखिम होता है। इस जोखिम को कम करने के लिए कई रणनीतियों का पालन किया जा सकता है: प्राथमिक और द्वितीयक डेटा शार्ड्स के साथ हाई अवेलिबिलिटी (HA) डेटाबेस, जियो-डिस्ट्रिब्यूटेड एक्टिव-एक्टिव डेटाबेस, और निश्चित रूप से डिस्क-आधारित पर्सिस्टेंस। प्रदर्शन के दृष्टिकोण से, प्राथमिक डेटाबेस शार्ड से सिंक्रनाइज़्ड सेकेंडरी डेटाबेस शार्ड पर फेलओवर करना हमेशा पसंद किया जाता है, और इस तरह रेडिस एंटरप्राइज काम करता है; केवल जब प्राथमिक और द्वितीयक शार्ड दोनों खो जाते हैं तो डेटाबेस को डिस्क से पुनर्स्थापित किया जाता है। इसी तरह, डेटासेंटर विफलता के मामले में, किसी अन्य डेटा सेंटर में सिंक्रनाइज़्ड एक्टिव-एक्टिव डेटाबेस पर फेलओवर करना डिस्क से रिकवर करने से तेज़ होगा।
पर्सिस्टेंस के प्रश्न पर, रेडिस बेहतर स्थायित्व के लिए अपेंड-ओनली फाइल्स (AOF) का समर्थन करता है, हालांकि इसके लिए अधिक संसाधनों की आवश्यकता होती है, और स्नैपशॉट्स (RDB), जो कम टिकाऊ होते हुए कम संसाधनों की आवश्यकता होती है। सभी चीजों की तरह, ट्रेडऑफ़ हैं जिन्हें रेडिस एंटरप्राइज डॉक्यूमेंटेशन में आगे खोजा जा सकता है। इस लेख के उद्देश्यों के लिए, हम मान लेंगे कि हम बेहतर स्थायित्व के लिए AOF चाहते हैं।
बैकअप
रेडिस एंटरप्राइज रिकवरी के लिए पर्सिस्टेंस पर निर्भर करता है जब प्राथमिक और द्वितीयक दोनों डेटाबेस शार्ड खो जाते हैं। यदि एक्टिव-एक्टिव का उपयोग नहीं किया जाता है और डेटाबेस को रखने वाले रैक संलग्न स्टोरेज के साथ खो जाते हैं, तो हम बैकअप से पुनर्स्थापित करने के लिए छोड़ दिए जाते हैं। रेडिस एंटरप्राइज के मामले में, एक बैकअप हमेशा एक स्नैपशॉट होता है, जो AOF के साथ पर्सिस्टेंस के लिए युग्मित होने पर, एक लचीला और टिकाऊ डेटा प्लेटफॉर्म बनाता है।
यह वह जगह है जहां कॉहेसिटी स्मार्टफाइल्स खेल में आती है; रेडिस एंटरप्राइज स्मार्टफाइल्स द्वारा प्रदान किए गए S3 संगत एंडपॉइंट का उपयोग क्लाउड्स में प्रबंधित बैकअप के लिए करता है। इसे सेट करने के लिए, हम निम्नलिखित मान्यताओं के साथ रेडिस एंटरप्राइज REST API का उपयोग करते हैं:
$S3_IP को कॉहेसिटी S3 ऑब्जेक्ट स्टोर IP एड्रेस पर सेट किया गया है और $BUCKET को बकेट नाम पर सेट किया गया है- $USER और $PASS को क्रमशः रेडिस एंटरप्राइज एडमिन यूजरनेम और पासवर्ड पर सेट किया गया है
- $ACCESS_KEY और $SECRET_KEY को S3 ऑब्जेक्ट स्टोर एक्सेस की और सीक्रेट की पर सेट किया गया है
डेटाबेस पर्सिस्टेंस सक्षम करें।
curl -s -k -u $USER:$PASS -H content-type:application/json -XPUT https://localhost:9443/v1/bdbs/1 -d '{"data_persistence": "aof"}' क्लस्टर को S3 ऑब्जेक्ट स्टोर का उपयोग करने के लिए S3 URL सेट करके कॉन्फ़िगर करें। ध्यान दें कि बकेट नाम S3 URL में शामिल नहीं है।
curl -s -k -u $USER:$PASS -H content-type:application/json -X PUT https://localhost:9443/v1/cluster -d '{"s3_url": '"$S3_IP"'}' केवल गोपनीयता के लिए क्लस्टर S3 बैकअप कॉन्फ़िगर करें।
curl -s -k -u $USER:$PASS -H content-type:application/json -X PUT https://localhost:9443/v1/cluster -d '{"s3_certificate_verification":false}' बैकअप स्थान मान्य करें। सफलता पर एकमात्र प्रतिक्रिया HTTP 200 OK है।
curl -s -k -u $USER:$PASS -H content-type:application/json -X POST https://localhost:9443/v1/bdbs/actions/validate_backup_location -d '{"backup_location": {"type": "s3", "bucket_name": '"$BUCKET"', "subdir": "","access_key_id": '"$ACCESS_KEY"', "secret_access_key": '"$SECRET_KEY"'}}' बैकअप बनाएं। सफलता पर एकमात्र प्रतिक्रिया HTTP 200 OK है।
curl -s -k -u $USER:$PASS -H content-type:application/json -X POST https://localhost:9443/v1/bdbs/1/actions/export -d '{"export_location": {"type": "s3", "bucket_name": '"$BUCKET"', "subdir": "", "access_key_id": '"$ACCESS_KEY"', "secret_access_key": '"$SECRET_KEY"'}}' हर 30 मिनट में आवर्ती बैकअप कॉन्फ़िगर करें। सफलता पर एकमात्र प्रतिक्रिया HTTP 200 OK है।
curl -s -k -u $USER:$PASS -H content-type:application/json -X PUT https://localhost:9443/v1/bdbs/1 -d '{"backup":true, "backup_interval":1800, "backup_interval_offset":360, "backup_location": {"type": "s3", "bucket_name": '"$BUCKET"', "subdir": "", "access_key_id": '"$ACCESS_KEY"', "secret_access_key": '"$SECRET_KEY"'}}' अंतिम विचार
एक घर्षण रहित दुनिया में, HA और एक्टिव-एक्टिव के साथ कॉन्फ़िगर किया गया रेडिस एंटरप्राइज आपको पर्सिस्टेंस और बैकअप के बारे में चिंता करने से बचाता है। हम एक घर्षण रहित दुनिया में नहीं रहते हैं और जब रेडिस से सिस्टम विफलताओं से उबरने की उम्मीद की जाती है तो हमें HA के साथ-साथ पर्सिस्टेंस और बैकअप दोनों की आवश्यकता होती है। S3 बैकअप एंडपॉइंट देखना आम है जैसा कि डेल EMC, नेटऐप, या प्योर स्टोरेज जैसे उपकरणों की पेशकशों द्वारा देखा जा सकता है। सौभाग्य से, कॉहेसिटी स्मार्टफाइल्स के साथ सत्यापित एकीकरण इस एंडपॉइंट का उपयोग करना आसान बनाता है और ऑपरेशनल रणनीतियों में बैकअप शामिल करता है।