paint-brush
इक्विनिक्स मेटल पर AWS S3 से MiniIO में कैसे माइग्रेट करेंद्वारा@minio
5,852 रीडिंग
5,852 रीडिंग

इक्विनिक्स मेटल पर AWS S3 से MiniIO में कैसे माइग्रेट करें

द्वारा MinIO13m2023/11/16
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

इक्विनिक्स मेटल एनवीएमई एसएसडी पर मिनिओ चलाने से आपको एस3 की लागत के एक अंश पर समान स्तर का प्रदर्शन, डेटा स्थायित्व और लचीलापन मिलेगा।
featured image - इक्विनिक्स मेटल पर AWS S3 से MiniIO में कैसे माइग्रेट करें
MinIO HackerNoon profile picture
0-item
1-item

मिनिओ के लिए मजबूत उपयोग के मामलों में से एक यह तथ्य है कि यह कहीं भी और हर चीज पर चल सकता है। जैसे-जैसे उद्योग धीरे-धीरे डेटा को कोलो या डेटा सेंटर में वापस भेजने की ओर बढ़ रहा है, अधिक से अधिक कंपनियां बुनियादी ढांचे के पूर्ण नियंत्रण के साथ वही ऑब्जेक्ट स्टोरेज क्षमताएं चाहती हैं जो उनके पास क्लाउड में थीं।


आप डेटा को घर के नजदीक क्यों रखना चाहेंगे? इसके कई कारण हैं, लेकिन सबसे पहले और सबसे महत्वपूर्ण है लागत। पब्लिक क्लाउड बहुत महंगा हो गया है. उदाहरण के लिए, कुछ समय पहले मेरे पास AWS में एक ElasticSearch प्रबंधित क्लस्टर चल रहा था। मैं इस नई प्रबंधित सेवा को आज़माने के लिए उत्सुक था, लेकिन मैं अपने बॉस के साथ अपने आश्चर्यजनक $30K बिल पर चर्चा करने के लिए उत्सुक नहीं था। यह एक दर्दनाक, फिर भी परिचित चेतावनी थी क्योंकि उस पल मुझे एहसास हुआ कि मैंने कुछ ऐसा करने के लिए AWS के छह महीने के क्लाउड बजट का भुगतान किया था जिसे मैं खुद स्थापित कर सकता था। कहानी का सार यह है कि जब तक आप बहुत सावधान नहीं होंगे और अपने क्लाउड खर्च की बारीकी से निगरानी नहीं करेंगे, यह बहुत तेजी से नियंत्रण से बाहर हो सकता है।


सुरक्षा का भी मामला है. इससे कोई फर्क नहीं पड़ता कि आपका डेटा सार्वजनिक क्लाउड में कहां स्थित है, यह लगभग हमेशा एक नोड या स्टोरेज पूल पर होता है जिसे किसी ऐसे व्यक्ति द्वारा साझा किया जाता है जो आपसे पूरी तरह से असंबंधित है; यह क्लाउड की प्रकृति है क्योंकि वर्चुअलाइजेशन इसी तरह काम करता है। क्लाउड आराम की गर्म अनुभूति प्रदान करता है क्योंकि अब किसी और को सुरक्षा चुनौतियों से निपटना होगा, लेकिन यदि सुरक्षा से संबंधित कोई समस्या है, तो समस्या के बारे में कोई अंतर्दृष्टि नहीं होगी (यदि कोई इसका पता लगाने में सक्षम था) और इसे कैसे हल किया जाए . जब आप अपने डेटा की सुरक्षा के लिए किसी और के बुनियादी ढांचे को सुरक्षित करने में फंस जाते हैं तो आराम की भावना तेजी से लुप्त हो जाती है। कई उद्यमों ने अपने द्वारा प्रबंधित हार्डवेयर को मिनिआईओ को वापस सौंपकर प्रदान किए गए कुल नियंत्रण में वापसी का आनंद लिया है।


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


स्वदेश वापसी की योजना पूरी तरह और सावधानी से बनाई जानी चाहिए। यदि आप पेटाबाइट डेटा के साथ काम कर रहे हैं तो आम तौर पर अपना स्वयं का बुनियादी ढांचा और सर्वर चलाना अधिक लागत प्रभावी होता है, आप अपने स्वयं के (या पट्टे पर) हार्डवेयर के साथ एक निजी क्लाउड भी बना सकते हैं। इसके अलावा, इसमें अन्य घटकों के अलावा रियल एस्टेट (कोलो स्पेस), पावर/यूपीएस, कूलिंग/एचवीएसी का प्रबंधन भी शामिल है। इनसे निराश न हों क्योंकि हम आपको दिखाएंगे कि आप कैसे माइग्रेट कर सकते हैं फिर भी समग्र आरओआई सार्वजनिक क्लाउड की तुलना में बेहतर है।


एक निजी क्लाउड एक अपार्टमेंट की तरह है (जैसा कि हमारे सीईओ एबी पेरियासामी कहना पसंद करते हैं)। आप इससे जुड़ी लागतों और खर्चों पर पूर्ण नियंत्रण रखते हैं, आप रात भर चलने वाले कुछ पुनरावर्ती लूप फ़ंक्शन के कारण होने वाले आश्चर्यजनक बिल की चेतावनी के प्रति कभी नहीं जागते हैं। बेशक, जब आप चीजों को बेहतर बनाने की कोशिश कर रहे हों तो आगे बढ़ने में कुछ घर्षण होता है, उदाहरण के लिए, जब आप किसी राजमार्ग का विस्तार करने की कोशिश कर रहे होते हैं तो आपको अनिवार्य रूप से कुछ लेन बंद करनी पड़ती हैं ताकि निर्माण सुरक्षित रूप से आगे बढ़ सके, लेकिन एक बार यह पूरा हो जाने के बाद आप ऐसा करेंगे न केवल मूल लेन पर बल्कि नवनिर्मित लेन पर भी क्षमता को संभालने में सक्षम होंगे।


दो सबसे महत्वपूर्ण लागत विचार जो हमें सार्वजनिक क्लाउड में करने की आवश्यकता है, वे हैं आपके लिए आवश्यक भंडारण स्थान की मात्रा और उस डेटा तक पहुंचने/स्थानांतरित करते समय निकास लागत - ये आपके अपने हार्डवेयर की तुलना में क्रमशः लगभग 39% और 42% अधिक हो सकते हैं। आपके डेटा सेंटर या कोलोकेशन सुविधा में। इसके अलावा, विचार करने योग्य कुछ अन्य लागत कारक हैं सॉफ्टवेयर, हार्डवेयर, नेटवर्किंग/स्विच, रियल एस्टेट/रैक स्पेस/कोलोकेशन रेंटल, एस3-एपीआई कॉल - वह सब कुछ जिसके बारे में आप सोच सकते हैं और भी बहुत कुछ। क्लाउड के जीवनचक्र में अपने निजी क्लाउड पर जाने से होने वाली संभावित बचत के बारे में और जानें।


सार्वजनिक क्लाउड और आपके डेटा सेंटर के बीच एक मध्य मार्ग मौजूद है जहां आप निवेश की उच्च प्रारंभिक लागत के बिना बुनियादी ढांचे के हार्डवेयर पर पूर्ण नियंत्रण रख सकते हैं। इक्विनिक्स मेटल , जैसा कि नाम से पता चलता है, ग्राहक द्वारा अनुरोधित सटीक विशिष्टताओं के साथ बेयर मेटल सर्वर प्रदान करता है। यदि आप NVMe SSDs का उपयोग करना चाहते हैं, तो आप उन डिस्क को बेअर मेटल सर्वर में जोड़ सकते हैं। इक्विनिक्स हार्डवेयर परिनियोजन और संचालन को सरल बनाने के लिए एक प्रबंधन एपीआई प्रदान करता है। डेवलपर/अंतिम उपयोगकर्ता के लिए, यह क्लाउड में एक इंस्टेंस लॉन्च करने जितना ही सीधा है। वास्तव में, इक्विनिक्स मेटल के लिए एक टेराफॉर्म प्रदाता भी है (जिसे हम आपको बाद में दिखाएंगे)।


आएँ शुरू करें!

बुनियादी ढांचे को तैनात करें

जबकि हम संसाधनों को मैन्युअल रूप से तैनात कर सकते हैं, मेरे अंदर का DevOps समय और प्रयास को बचाने के लिए इस प्रक्रिया के कम से कम कुछ दोहराव वाले हिस्सों को स्वचालित करना चाहता है, खासकर जब हम अन्य चीजों के बीच साइट-टू-साइट प्रतिकृति करना चाहते हैं।

इक्विनिक्स मेटल टेराफॉर्म सेट करें

इक्विनिक्स उन कुछ नंगे धातु प्रदाताओं में से एक है जिनके पास बुनियादी ढांचे प्रबंधन प्रक्रिया को पूरी तरह से स्वचालित करने के लिए एपीआई है। उनके एपीआई का उपयोग करके, आप भौतिक सर्वरों की तैनाती को स्वचालित कर सकते हैं, उन्हें बंद कर सकते हैं और यहां तक कि उन्हें समाप्त भी कर सकते हैं। आप यह सब अपने हार्डवेयर, स्विच, राउटर और अन्य संसाधनों का उपयोग किए बिना कर सकते हैं। यह उतना करीब है जितना आप सार्वजनिक-क्लाउड-स्तरीय स्वचालन तक पहुंच सकते हैं, साथ ही यह गारंटी भी देते हैं कि कोई और आपके हार्डवेयर को साझा नहीं कर रहा है। क्योंकि इक्विनिक्स मेटल विभिन्न आकारों में असंख्य उदाहरण प्रकारों और भंडारण विकल्पों और एसएएस या एसएटीए, और एसएसडी, एनवीएमई एसएसडी, या एचडीडी जैसे इंटरकनेक्ट का समर्थन करता है। आप उस हार्डवेयर को भी कॉन्फ़िगर कर सकते हैं जिस पर मिनिओ आपके सटीक विनिर्देशों पर चलता है - मिनिओ विभाजन को रखने के लिए सटीक प्रकार की ड्राइव तक।


कोई भी आपसे मेटल एपीआई पर बात करने के लिए पायथन स्क्रिप्ट लिखने की अपेक्षा नहीं करता है; इक्विनिक्स मेटल में एक टेराफॉर्म प्रदाता है जो हमें इससे जुड़ने और क्लस्टर संसाधनों को तैनात करने के लिए आवश्यक उच्च-स्तरीय जानकारी प्रदान करने की अनुमति देता है, जबकि नेटवर्किंग, हार्डवेयर, मिनिओ और अन्य अनुप्रयोगों को स्थापित करने के लिए आवश्यक आंतरिक बाजीगरी का सार निकालता है।


 provider "metal" { auth_token = var.auth_token }


यदि आपके पास पहले से टेराफॉर्म स्थापित नहीं है, तो आप इसे उनके डाउनलोड पृष्ठ से डाउनलोड कर सकते हैं।


GitHub रेपो equinix/terraform-metal-distributed-minio अपने स्थानीय वर्कस्टेशन पर क्लोन करें।


git clone https://github.com/equinix/terraform-metal-distributed-minio.git


रेपो में जाएं और टेराफॉर्म को इनिशियलाइज़ करें ताकि यह अपस्ट्रीम से सभी आवश्यक मॉड्यूल और प्लगइन्स डाउनलोड कर सके।


 $ cd terraform-metal-distributed-minio $ terraform init


यह सुनिश्चित करेगा कि सभी आवश्यक मॉड्यूल स्वचालित रूप से डाउनलोड हो जाएं। अब, आइए सुनिश्चित करें कि कुछ अनिवार्य चर सेट किए गए हैं। आप या तो उन्हें पर्यावरण चर के रूप में सेट कर सकते हैं या ऊपर क्लोन किए गए रेपो में एक फ़ाइल है जिसे vars.template कहा जाता है, जिसे आप cp vars.template terraform.tfvars के रूप में कॉपी कर सकते हैं।


अंततः, आप जो भी विधि चुनें, आपको निम्नलिखित दो चर सेट करने होंगे

  • auth_टोकन
  • प्रोजेक्ट_आईडी


आप एपीआई दस्तावेज़ों में इनके बारे में अधिक जानकारी पा सकते हैं।


ऐसे कई अन्य चर हैं जिन्हें आप terraform.tfvars में संशोधित कर सकते हैं, और जब हम साइट-टू-साइट प्रतिकृति करेंगे तो हम निम्नलिखित को बाद में संशोधित करेंगे।



एक बार जब आपका पसंदीदा कॉन्फ़िगरेशन सेट हो जाए, तो टेराफ़ॉर्म योजना लागू करें। यदि योजना ठीक लगती है, तो approve आदेश चलाएँ।


 $ terraform plan $ terraform apply --auto-approve


यदि संसाधनों को सही कॉन्फ़िगरेशन के साथ ठीक से लागू किया गया है तो परिणामी आउटपुट कुछ इस तरह दिखना चाहिए


 Apply complete! Resources: 10 added, 0 changed, 0 destroyed. Outputs: minio_access_key = Xe245QheQ7Nwi20dxsuF minio_access_secret = 9g4LKJlXqpe7Us4MIwTPluNyTUJv4A5T9xVwwcZh minio_endpoints = [ "minio-storage-node1 minio endpoint is http://147.75.65.29:9000", "minio-storage-node2 minio endpoint is http://147.75.39.227:9000", "minio-storage-node3 minio endpoint is http://147.75.66.53:9000", "minio-storage-node4 minio endpoint is http://147.75.194.101:9000", ] minio_region_name = us-east-1


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

मिनियो क्लस्टर तक पहुंचें

हमने अधिकांश प्रक्रिया को स्वचालित करने के लिए टेराफॉर्म का उपयोग किया, इसलिए अब जो कुछ बचा है वह मिनियो क्लस्टर तक पहुंचना है। हमारा अनुशंसित उपकरण mc का उपयोग करना है। बाइनरी डाउनलोड करने के लिए निम्न कमांड का उपयोग करें


 curl https://dl.min.io/client/mc/release/linux-amd64/mc \ --create-dirs \ -o $HOME/minio-binaries/mc chmod +x $HOME/minio-binaries/mc export PATH=$PATH:$HOME/minio-binaries/


एक उपनाम बनाएं जो हमारे द्वारा तैनात किए गए मिनिओ क्लस्टर को इंगित करता है


 mc config host add minio1 $MINIO_ENDPOINT $MINIO_ACCESS_KEY $MINIO_SECRET_KEY


आप ऊपर दिए गए वेरिएबल को उन मानों से बदल सकते हैं जो आपने टेराफॉर्म के माध्यम से मिनिओ क्लस्टर लॉन्च करते समय सेट किए थे, लेकिन उपनाम नाम को minio1 पर सेट करना सुनिश्चित करें। यह बाद में समझ में आएगा जब हम आपको दिखाएंगे कि साइट-टू-साइट प्रतिकृति कैसे करें।


यह देखने के लिए जांचें कि क्या आप क्लस्टर से कुछ मेटाडेटा लाकर सफलतापूर्वक कनेक्ट करने में सक्षम हैं


 $ mc admin info minio1 --json | jq .info.backend { "backendType": "Erasure", "onlineDisks": 48, "rrSCData": 6, "rrSCParity": 2, "standardSCData": 6, "standardSCParity": 2 }


यदि आपको उपरोक्त के समान आउटपुट दिखाई देता है तो आप mc कमांड के माध्यम से मिनिओ क्लस्टर तक सफलतापूर्वक पहुंचने में सक्षम हैं। अब अगला क्या होगा? हमें S3 से डेटा कब माइग्रेट करना चाहिए?

मिनियो क्लस्टर को लोड संतुलित करना

हम S3 से डेटा माइग्रेट कर सकते हैं, या अपना कुछ डेटा भी जोड़ सकते हैं, और क्लस्टर का उपयोग शुरू कर सकते हैं। लेकिन आइए इसे एक कदम आगे बढ़ाएं। हम AWS S3 के समान अतिरेक स्तर प्राप्त करना चाहते हैं, जिसका अर्थ है कि यदि एक साइट बंद हो जाती है तो हम यह सुनिश्चित करना चाहते हैं कि हमारा डेटा दूसरी साइट पर पहुंच योग्य हो। AWS ने इसे क्षेत्रों के साथ पूरा किया, लेकिन हम इसे MiniIO के साथ कैसे पूरा करेंगे?


अब, हम उस छोटे स्वचालन की सुंदरता देख सकते हैं जो हमने पहले टेराफॉर्म के साथ किया था। आइए मैं आपको दिखाता हूं कि इक्विनिक्स मेटल में एक और मिनिओ क्षेत्र प्राप्त करना कितना आसान है।


आइए git clone , लेकिन इस बार एक नई निर्देशिका terraform-metal-distributed-minio-site-2 में


git clone https://github.com/equinix/terraform-metal-distributed-minio.git terraform-metal-distributed-minio-site-2


terraform-metal-distributed-minio-site-2 रेपो में जाएं और टेराफॉर्म को इनिशियलाइज़ करें ताकि यह मूल मिनिओ परिनियोजन के समान अपस्ट्रीम से सभी आवश्यक मॉड्यूल और प्लगइन्स डाउनलोड कर सके।


 $ cd terraform-metal-distributed-minio-site-2 $ terraform init


एक बार सभी मॉड्यूल डाउनलोड हो जाने के बाद, वेरिएबल फ़ाइल cp vars.template terraform.tfvars कॉपी करें और दो वेरिएबल सेट करें


  • auth_टोकन
  • प्रोजेक्ट_आईडी


अब तक की प्रक्रिया बिल्कुल वैसी ही दिखनी चाहिए जैसे हमने पहला क्लस्टर लॉन्च किया था, लेकिन यहीं चीजें अलग होंगी।


आइए वे वेरिएबल सेट करें जो दूसरी साइट को पहली साइट से अलग करते हैं।


सबसे पहले, आइए facility sv16 पर सेट करें या सुविधाओं की इस सूची में से किसी एक को चुनें। इसके बाद minio_region_name को us-west-1 या कुछ भी सेट करें जो इसे अन्य क्लस्टर से अलग करता हो।


यह सुनिश्चित करने के लिए योजना चलाएँ कि आपके द्वारा किए गए परिवर्तन आउटपुट में दिखाई दें।


 $ terraform plan $ terraform apply --auto-approve


यदि संसाधनों को सही कॉन्फ़िगरेशन के साथ ठीक से लागू किया गया है, तो परिणामी आउटपुट कुछ इस तरह दिखना चाहिए


 Apply complete! Resources: 10 added, 0 changed, 0 destroyed. Outputs: minio_access_key = Xe245QheQ7Nwi20dxsuF minio_access_secret = 9g4LKJlXqpe7Us4MIwTPluNyTUJv4A5T9xVwwcZh minio_endpoints = [ "minio-storage-node1 minio endpoint is http://144.45.65.29:9000", "minio-storage-node2 minio endpoint is http://144.45.39.227:9000", "minio-storage-node3 minio endpoint is http://144.45.66.53:9000", "minio-storage-node4 minio endpoint is http://144.45.194.101:9000", ] minio_region_name = us-west-1


यदि आप minio_region_name us-west-1 के रूप में देखते हैं तो आपने दूसरा क्लस्टर सफलतापूर्वक लॉन्च कर दिया है। आइए इसे mc में जोड़ दें।


 mc config host add minio2 $MINIO_ENDPOINT $MINIO_ACCESS_KEY $MINIO_SECRET_KEY


उपनाम नाम को minio2 पर सेट करें और जांचें कि क्या आप क्लस्टर से कुछ मेटाडेटा लाकर सफलतापूर्वक कनेक्ट करने में सक्षम हैं


 $ mc admin info minio2 --json | jq .info.backend { "backendType": "Erasure", "onlineDisks": 48, "rrSCData": 6, "rrSCParity": 2, "standardSCData": 6, "standardSCParity": 2 }


इस बिंदु पर, आपके पास 2 साइटें होनी चाहिए: minio1 और minio2


आइए दोनों समूहों में प्रतिकृति स्थापित करें


 $ mc admin replicate add minio1 minio2 Requested sites were configured for replication successfully.


सत्यापित करें कि दोनों साइटें सही ढंग से कॉन्फ़िगर की गई हैं


 mc admin replicate info minio1 SiteReplication enabled for: Deployment ID | Site Name | Endpoint f96a6675-ddc3-4c6e-907d-edccd9eae7a4 | minio1 | http://<site1_public_ip> 0dfce53f-e85b-48d0-91de-4d7564d5456f | minio2 | http://<site2_public_ip>


यह सुनिश्चित करने के लिए जांचें कि प्रतिकृति ठीक से काम कर रही है


 mc admin replicate status minio1 Bucket replication status: No Buckets present Policy replication status: ● 5/5 Policies in sync User replication status: No Users present Group replication status: No Groups present


minio1 में एक बकेट बनाकर परीक्षण करें


/opt/minio-binaries/mc mb minio1/testbucket


बाल्टी में कोई वस्तु जोड़ें


/opt/minio-binaries/mc cp my_object minio1/testbucket


अन्य साइटों में वस्तुओं को सूचीबद्ध करें, इस मामले में minio2 पर


 /opt/minio-binaries/mc ls minio2/testbucket [2023-07-20 18:52:09 UTC] 3.0KiB STANDARD my_object


जैसा कि आप देख सकते हैं, डेटा को अन्य MiniIO परिनियोजन में दोहराना लगभग तात्कालिक है, भले ही वे भौगोलिक रूप से भिन्न हों।


आइए यह देखने के लिए एक त्वरित परीक्षण करें कि क्या यह वास्तव में उतना ही सरल है जितना दिखता है। याद रखें कि MinIO AWS S3 का ड्रॉप-इन प्रतिस्थापन है, इसलिए S3 के साथ काम करने वाली हर चीज़ MiniIO के साथ भी काम करेगी। इस मामले में, हम किसी ऑब्जेक्ट को मिनिओ बकेट में अपलोड करने के लिए टेराफॉर्म का उपयोग करेंगे। टेराफॉर्म में यह AWS प्रदाता के माध्यम से किया जाता है जो अनिवार्य रूप से एक मॉड्यूल है जो AWS पारिस्थितिकी तंत्र में विभिन्न संचालन करने के लिए AWS API से जुड़ता है, लेकिन इस मामले में, हम MiniIO बकेट तक पहुंचने के लिए टेराफॉर्म AWS S3 संसाधन का उपयोग करेंगे।


नीचे की तरह टेराफॉर्म में एक AWS प्रदाता बनाएं। सुनिश्चित करें कि आपने हमारे द्वारा अभी-अभी तैनात किए गए इक्विनिक्स मेटल minio1 क्लस्टर से मिलान करने के लिए विवरण अपडेट किया है।


 provider "aws" { region = "us-east-1" access_key = "Xe245QheQ7Nwi20dxsuF" secret_key = "9g4LKJlXqpe7Us4MIwTPluNyTUJv4A5T9xVwwcZh" skip_credentials_validation = true skip_metadata_api_check = true skip_requesting_account_id = true s3_force_path_style = true endpoints { s3 = "http://147.75.65.29:9000" } }


टेराफॉर्म aws_s3_bucket_object संसाधन का उपयोग करके एक फ़ाइल अपलोड करें


 resource "aws_s3_bucket_object" "object" { bucket = "public" key = "my_file_name.txt" source = "path/to/my_file_name.txt" etag = filemd5("path/to/my_file_name.txt") }


जैसा कि आप ऊपर देख सकते हैं, हमने किसी मिनिओ-विशिष्ट टेराफ़ॉर्म संसाधन का उपयोग नहीं किया है, हम AWS प्रदाता aws_s3_bucket_object संसाधन का उपयोग कर रहे हैं। भले ही हम मौजूदा AWS S3 टेराफ़ॉर्म संसाधन का उपयोग कर रहे हैं, ऑब्जेक्ट स्टोर पूरी तरह से उत्पादन एंटरप्राइज़-ग्रेड MiniIO द्वारा संचालित है।

AWS S3 से डेटा माइग्रेट करना

अब हमारे पास आपके लिए उत्पादन-ग्रेड ऑब्जेक्ट भंडारण और संपूर्ण बुनियादी ढांचे के पूर्ण नियंत्रण के लिए सभी बिल्डिंग ब्लॉक तैयार हैं। इसके बाद, हम उस डेटा को माइग्रेट करेंगे जो पहले से ही S3 में है।


ऐसे कई तरीके हैं जिनसे आप अपने डेटा को AWS S3 से MiniIO में स्थानांतरित कर सकते हैं, लेकिन हम जो अनुशंसा करते हैं वह mc का उपयोग करना है।


mc mirror डेटा सिंक्रोनाइज़ेशन का एक स्विस आर्मी चाकू है। यह S3 या S3-API-संगत ऑब्जेक्ट स्टोर से ऑब्जेक्ट की प्रतिलिपि बना सकता है और उन्हें MiniIO पर मिरर कर सकता है। इसके अधिक लोकप्रिय उपयोग मामलों में से एक गैर-एडब्ल्यूएस अनुप्रयोगों और सेवाओं के लिए डेटा को उजागर करने के लिए अमेज़ॅन एस 3 बाल्टी को मिनिओ में मिरर करना है।


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


 /opt/minio-binaries/mc alias set s3 https://s3.amazonaws.com BKIKJAA5BMMU2RHO6IBB V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12 --api S3v4


S3 से MinIO में डेटा कॉपी करने के लिए mc मिरर का उपयोग करें


mc mirror s3/mybucket minio1/testbucket


डेटा की मात्रा, नेटवर्क गति और उस क्षेत्र से भौतिक दूरी के आधार पर जहां बकेट डेटा संग्रहीत है, आपको सभी डेटा को मिरर करने में कुछ मिनट या उससे अधिक समय लग सकता है। जब mc सभी ऑब्जेक्ट की प्रतिलिपि बना लेगा तो आपको एक संदेश दिखाई देगा।


एक बार डेटा कॉपी हो जाने के बाद या जब डेटा कॉपी किया जा रहा हो, तो बकेट की सामग्री को minio2 साइट में सूचीबद्ध करें। आप देखेंगे कि कुछ डेटा पहले से ही minio1 से मौजूद है।


 /opt/minio-binaries/mc ls minio2/testbucket [2022-12-19 18:52:09 UTC] 3.0KiB STANDARD all_object s


अंततः वह लैपटॉप जहां से आप mc mirror चला रहे हैं, एक बाधा है क्योंकि डेटा को उस सिस्टम से गुजरना पड़ता है जहां mc mirror कमांड निष्पादित होता है। यह डेटा के कई पेटाबाइट हो सकते हैं जिन्हें नेटवर्क गति के आधार पर स्थानांतरित होने में सप्ताह नहीं तो कई दिन लग सकते हैं। डेटा को S3 से MinIO में स्थानांतरित करने के लिए, बैच प्रतिकृति नामक एक अधिक कुशल विधि है, कृपया बैच प्रतिकृति और अन्य माइग्रेशन सर्वोत्तम प्रथाओं के बारे में अधिक जानने के लिए AWS S3 से MiniIO में कैसे प्रत्यावर्तित करें देखें।

पेडल को धातु पर रखें

इस ब्लॉग पोस्ट ने प्रदर्शित किया कि साइट-टू-साइट प्रतिकृति कॉन्फ़िगरेशन में इक्विनिक्स मेटल एनवीएमई एसएसडी पर चलने वाला मिनिओ आपको एस3 की लागत के एक अंश पर प्रदर्शन, डेटा स्थायित्व और लचीलेपन का, यदि अधिक नहीं तो समान स्तर प्रदान करेगा। अपने क्लाउड पर पूर्ण नियंत्रण बनाए रखना।


क्या आपके पास सभी बुनियादी ढांचे पर 100% नियंत्रण है? काफी नहीं। स्विच, राउटर और अन्य नेटवर्किंग गियर को इक्विनिक्स द्वारा प्रबंधित किया जाता है, लेकिन उनके नेटवर्क पर होने के फायदे नुकसान से अधिक हैं। आप वस्तुतः किसी अन्य प्रदाता से जुड़ने के लिए पॉइंट-टू-पॉइंट, WAN, या अन्य समर्पित सर्किट प्राप्त कर सकते हैं। संक्षेप में, आपके पास एक निजी सर्किट सीधे AWS (इक्विनिक्स कनेक्ट के माध्यम से) से जुड़ा हो सकता है और फिर आप अपने डेटा को 10 गुना तेजी से स्थानांतरित कर सकते हैं, यह सब सुरक्षित रहते हुए क्योंकि यह खुले सार्वजनिक इंटरनेट का पता नहीं लगाता है, और केवल आपका डेटा ही गुजरता है वह सर्किट.


इसके अलावा, मिनियो बेंचमार्क बार-बार एन्क्रिप्शन चालू होने पर बहुत कम (<1%) थ्रूपुट प्रदर्शन में गिरावट दिखाते हैं, इसलिए हम अनुशंसा करते हैं कि सभी मिनियो तैनाती बाकी समय एन्क्रिप्शन का उपयोग करें और सभी मिनियो तैनाती को टीएलएस का उपयोग करके नेटवर्क संचार भी सुरक्षित करना चाहिए। बधाई हो, अब आपका डेटा अधिक सुरक्षित, फिर भी पारदर्शी प्रणाली पर है जहां आपका पूर्ण नियंत्रण और जवाबदेही है।


यदि आपके पास इक्विनिक्स मेटल पर AWS S3 से MiniIO में माइग्रेट करने के बारे में कोई प्रश्न है, तो स्लैक पर हमसे संपर्क करना सुनिश्चित करें!


यहाँ भी प्रकाशित किया गया है.