paint-brush
ইকুইনিক্স মেটালে কীভাবে AWS S3 থেকে MinIO-তে স্থানান্তর করবেনদ্বারা@minio
5,852 পড়া
5,852 পড়া

ইকুইনিক্স মেটালে কীভাবে AWS S3 থেকে MinIO-তে স্থানান্তর করবেন

দ্বারা MinIO13m2023/11/16
Read on Terminal Reader

অতিদীর্ঘ; পড়তে

Equinix Metal NVMe SSD-তে MinIO চালানো আপনাকে S3-এর খরচের একটি ভগ্নাংশে একই স্তরের কর্মক্ষমতা, ডেটা স্থায়িত্ব এবং স্থিতিস্থাপকতা দেবে।
featured image - ইকুইনিক্স মেটালে কীভাবে AWS S3 থেকে MinIO-তে স্থানান্তর করবেন
MinIO HackerNoon profile picture
0-item
1-item

MinIO-এর জন্য একটি শক্তিশালী ব্যবহারের ক্ষেত্রে হল যে এটি যে কোনও জায়গায় এবং সবকিছুতে চলতে পারে। যেহেতু শিল্পটি ধীরে ধীরে একটি কোলো বা ডেটা সেন্টারে ডেটা প্রত্যাবর্তনের দিকে সরে যাচ্ছে, আরও বেশি সংখ্যক সংস্থাগুলি পরিকাঠামোর সম্পূর্ণ নিয়ন্ত্রণ সহ ক্লাউডে থাকা একই অবজেক্ট স্টোরেজ ক্ষমতা চায়৷


কেন আপনি বাড়ির কাছাকাছি ডেটা থাকতে চান? অনেক কারণ আছে, কিন্তু প্রথম এবং সর্বাগ্রে খরচ হয়. পাবলিক ক্লাউড খুব ব্যয়বহুল হয়ে উঠেছে। উদাহরণস্বরূপ, কিছু সময় আগে আমার কাছে AWS-এ চলমান একটি ইলাস্টিক সার্চ পরিচালিত ক্লাস্টার ছিল। আমি এই নতুন পরিচালিত পরিষেবাটি ব্যবহার করে দেখতে আগ্রহী ছিলাম, কিন্তু আমি আমার বসের সাথে আমার অবাক করা $30K বিল নিয়ে আলোচনা করতে আগ্রহী ছিলাম না। এটি একটি বেদনাদায়ক, তবুও পরিচিত ওয়েক-আপ কল ছিল কারণ সেই মুহুর্তে আমি বুঝতে পেরেছিলাম যে আমি নিজেকে সেট আপ করতে পারতাম এমন কিছু করার জন্য আমি মাত্র ছয় মাসের ক্লাউড বাজেট দিয়েছি। গল্পের নৈতিকতা হল যে আপনি যদি খুব সতর্ক না হন এবং আপনার ক্লাউডের ব্যয় নিবিড়ভাবে পর্যবেক্ষণ করেন তবে এটি খুব দ্রুত নিয়ন্ত্রণের বাইরে চলে যেতে পারে।


নিরাপত্তার বিষয়টিও আছে। পাবলিক ক্লাউডে আপনার ডেটা যেখানেই থাকুক না কেন, এটি প্রায় সবসময়ই একটি নোড বা স্টোরেজ পুলে থাকে যা আপনার সাথে সম্পূর্ণ সম্পর্কহীন কেউ শেয়ার করে থাকে; এটি ক্লাউডের প্রকৃতি কারণ এটি কীভাবে ভার্চুয়ালাইজেশন কাজ করে। ক্লাউডটি স্বাচ্ছন্দ্যের একটি উষ্ণ অনুভূতি প্রদান করে কারণ এখন অন্য কাউকে নিরাপত্তার চ্যালেঞ্জ মোকাবেলা করতে হবে, কিন্তু যদি নিরাপত্তা-সম্পর্কিত কোনো সমস্যা থাকে, তাহলে সমস্যাটির কোনো অন্তর্দৃষ্টি থাকবে না (যদি কেউ এটি সনাক্ত করতে সক্ষম হয়) এবং কীভাবে এটি সমাধান করা যায় . আপনার ডেটা সুরক্ষিত করার জন্য আপনি যখন অন্য কারো অবকাঠামো সুরক্ষিত করতে আটকে যান তখন আরামের অনুভূতি দ্রুত বাষ্পীভূত হয়। অনেক এন্টারপ্রাইজ তাদের ম্যানেজ করা হার্ডওয়্যারে MinIO-তে প্রত্যাবর্তনের মাধ্যমে প্রদত্ত সম্পূর্ণ নিয়ন্ত্রণে ফিরে আসা উপভোগ করেছে।


আপনার প্রত্যাবাসন প্রচেষ্টার সবচেয়ে বেশি ব্যবহার করতে, MinIO অনেকগুলি এন্টারপ্রাইজ-প্রস্তুত বৈশিষ্ট্য নিয়ে আসে যেমন ডেটা অখণ্ডতা নিশ্চিত করতে বিট্রট সুরক্ষা , কোল্ড স্টোরেজ টিয়ারে ডেটা সিফন অফ করার জন্য টায়ারিং , ইরেজির কোডিং যা ডেটা সংগ্রহ হিসাবে বস্তুগুলিকে সংরক্ষণ করে এবং প্যারিটি ব্লক করে, এবং কোন অতিরিক্ত হার্ডওয়্যার বা সফ্টওয়্যার ছাড়াই ফ্লাইতে তাদের পুনর্গঠন করে। এগুলি ছাড়াও, MinIO বিশ্রামে এবং ট্রানজিট উভয় ক্ষেত্রেই এনক্রিপশন সমর্থন করে৷ এটি নিশ্চিত করে যে কল করার মুহূর্ত থেকে লেনদেনের সমস্ত দিকগুলিতে ডেটা এনক্রিপ্ট করা হয়েছে যতক্ষণ না অবজেক্টটি বালতিতে রাখা হয়, যেখানে এটি IAM S3-স্টাইল নীতি এবং একটি অন্তর্নির্মিত বা বাহ্যিক IDP দ্বারা সুরক্ষিত থাকে, MinIO দেখুন সর্বোত্তম অনুশীলন - আরও তথ্যের জন্য নিরাপত্তা এবং অ্যাক্সেস নিয়ন্ত্রণ


প্রত্যাবাসন পুঙ্খানুপুঙ্খভাবে এবং সাবধানে পরিকল্পনা করা আবশ্যক. আপনি যদি পেটাবাইট ডেটা নিয়ে কাজ করেন তবে সাধারণত আপনার নিজস্ব পরিকাঠামো এবং সার্ভারগুলি চালানোর জন্য এটি আরও সাশ্রয়ী হয়, আপনি এমনকি আপনার নিজের (বা লিজড) হার্ডওয়্যার দিয়ে একটি ব্যক্তিগত ক্লাউড তৈরি করতে পারেন। এছাড়াও, এতে অন্যান্য উপাদানগুলির মধ্যে রিয়েল এস্টেট (কোলো স্পেস), পাওয়ার/ইউপিএস, কুলিং/এইচভিএসি পরিচালনাও অন্তর্ভুক্ত রয়েছে। এগুলি দেখে নিরুৎসাহিত হবেন না কারণ আমরা আপনাকে দেখাব কিভাবে আপনি স্থানান্তর করতে পারেন তবুও সামগ্রিক ROI এখনও পাবলিক ক্লাউডের চেয়ে ভাল।


একটি ব্যক্তিগত মেঘ একটি অ্যাপার্টমেন্টের মতো (যেমন আমাদের সিইও এবি পেরিয়াসামি বলতে পছন্দ করেন)। আপনি এর সাথে সম্পর্কিত খরচ এবং ব্যয়গুলির সম্পূর্ণ নিয়ন্ত্রণে আছেন, আপনি রাতারাতি কিছু রিকার্সিভ লুপ ফাংশনের কারণে সৃষ্ট একটি আশ্চর্য বিলের সতর্কতার জন্য কখনই জেগে উঠবেন না। অবশ্যই, যখন আপনি জিনিসগুলিকে আরও ভাল করার চেষ্টা করছেন তখন নড়াচড়ার কিছু ঘর্ষণ আছে, উদাহরণস্বরূপ, যখন আপনি একটি হাইওয়ে প্রসারিত করার চেষ্টা করছেন তখন আপনাকে অনিবার্যভাবে কিছু লেন বন্ধ করতে হবে যাতে নির্মাণ নিরাপদে এগিয়ে যেতে পারে, কিন্তু একবার এটি হয়ে গেলে আপনি শুধুমাত্র মূল লেনগুলিতেই গাড়ি চালাতে সক্ষম হবেন না কিন্তু নতুন নির্মিতগুলিও ক্ষমতা পরিচালনা করতে পারবেন।


পাবলিক ক্লাউডে আমাদের যে দুটি গুরুত্বপূর্ণ খরচ বিবেচনা করতে হবে তা হল আপনার প্রয়োজনীয় স্টোরেজ স্পেসের পরিমাণ এবং সেই ডেটা অ্যাক্সেস/সরানোর সময় বের হওয়ার খরচ - এগুলি আপনার নিজের হার্ডওয়্যারের তুলনায় যথাক্রমে প্রায় 39% এবং 42% বেশি হতে পারে। আপনার ডেটা সেন্টার বা কোলোকেশন সুবিধায়। এটি ছাড়াও, বিবেচনা করার জন্য অন্যান্য খরচের কারণগুলির মধ্যে কিছু হল সফ্টওয়্যার, হার্ডওয়্যার, নেটওয়ার্কিং/সুইচ, রিয়েল এস্টেট/র্যাক স্পেস/কোলোকেশন ভাড়া, S3-API কল - আপনি যা ভাবতে পারেন এবং আরও অনেক কিছু। দ্য লাইফসাইকেল অফ দ্য ক্লাউডে আপনার নিজের ব্যক্তিগত ক্লাউডে যাওয়ার ফলে সম্ভাব্য সঞ্চয় সম্পর্কে আরও জানুন।


পাবলিক ক্লাউড এবং আপনার ডেটা সেন্টারের মধ্যে একটি মধ্যম স্থল রয়েছে যেখানে আপনি বিনিয়োগের উচ্চ প্রাথমিক খরচ ছাড়াই অবকাঠামো হার্ডওয়্যারের উপর সম্পূর্ণ নিয়ন্ত্রণ রাখতে পারেন। Equinix Metal , নাম অনুসারে, গ্রাহকের অনুরোধকৃত সঠিক স্পেসিফিকেশন সহ বেয়ার মেটাল সার্ভার প্রদান করে। আপনি যদি NVMe SSDs ব্যবহার করতে চান, তাহলে আপনি সেই ডিস্কগুলিকে বেয়ার মেটাল সার্ভারে যুক্ত করতে পারেন। Equinix হার্ডওয়্যার স্থাপনা এবং ক্রিয়াকলাপ সহজ করার জন্য একটি ব্যবস্থাপনা API প্রদান করে। বিকাশকারী/শেষ ব্যবহারকারীর কাছে, এটি ক্লাউডে একটি উদাহরণ চালু করার মতোই সোজা। প্রকৃতপক্ষে, ইকুইনিক্স মেটালের জন্য একটি টেরাফর্ম প্রদানকারীও রয়েছে (যা আমরা আপনাকে পরে দেখাব)।


চল শুরু করি!

অবকাঠামো স্থাপন করুন

যদিও আমরা ম্যানুয়ালি সংস্থানগুলি স্থাপন করতে পারি, আমার মধ্যে DevOps সময় এবং শ্রম বাঁচাতে এই প্রক্রিয়াটির অন্তত কিছু পুনরাবৃত্তিমূলক অংশগুলিকে স্বয়ংক্রিয় করতে চায়, বিশেষত যখন আমরা অন্যান্য জিনিসগুলির মধ্যে সাইট-টু-সাইট প্রতিলিপি করতে চাই।

ইকুইনিক্স মেটাল টেরাফর্ম সেট আপ করুন

ইকুইনিক্স হল কয়েকটি বেয়ার মেটাল প্রদানকারীর মধ্যে একটি যাদের পরিকাঠামো ব্যবস্থাপনা প্রক্রিয়া সম্পূর্ণরূপে স্বয়ংক্রিয় করার জন্য একটি API রয়েছে। তাদের API ব্যবহার করে, আপনি স্বয়ংক্রিয়ভাবে শারীরিক সার্ভার স্থাপন করতে পারেন, সেগুলি বন্ধ করতে পারেন এবং এমনকি শেষ করতে পারেন৷ আপনি আপনার নিজের হার্ডওয়্যার, সুইচ, রাউটার এবং অন্যান্য সংস্থান ব্যবহার না করেই এই সব করতে পারেন। এটি ততটা কাছাকাছি যতটা আপনি পাবলিক-ক্লাউড-লেভেলের অটোমেশনে যেতে পারেন যখন এখনও গ্যারান্টি দেয় যে অন্য কেউ আপনার হার্ডওয়্যার ভাগ করছে না। কারণ ইকুইনিক্স মেটাল অগণিত উদাহরণের ধরন এবং স্টোরেজ বিকল্পগুলিকে সমর্থন করে এবং আন্তঃসংযোগ যেমন SAS বা SATA, এবং SSD, NVMe SSD, বা HDD, বিভিন্ন আকারে। আপনি MinIO যে হার্ডওয়্যারটি আপনার সঠিক স্পেসিফিকেশনে চালান সেটিও কনফিগার করতে পারেন - ঠিক নীচে MinIO পার্টিশনের জন্য সঠিক ধরনের ড্রাইভ পর্যন্ত।


কেউ আশা করে না যে আপনি মেটাল API এর সাথে কথা বলার জন্য পাইথন স্ক্রিপ্ট লিখবেন; ইকুইনিক্স মেটালের একটি টেরাফর্ম প্রদানকারী রয়েছে যা আমাদের এটির সাথে সংযোগ স্থাপন করতে এবং ক্লাস্টার সংস্থান স্থাপনের জন্য প্রয়োজনীয় উচ্চ-স্তরের তথ্য সরবরাহ করার অনুমতি দেয়, যখন নেটওয়ার্কিং, হার্ডওয়্যার, MinIO এবং অন্যান্য অ্যাপ্লিকেশনগুলি সেট আপ করার জন্য প্রয়োজনীয় অভ্যন্তরীণ জাগলারির বিমূর্তকরণ করে।


 provider "metal" { auth_token = var.auth_token }


আপনার যদি ইতিমধ্যেই টেরাফর্ম ইনস্টল না থাকে তবে আপনি এটি তাদের ডাউনলোড পৃষ্ঠা থেকে ডাউনলোড করতে পারেন।


আপনার স্থানীয় ওয়ার্কস্টেশনে গিটহাব রেপো equinix/terraform-metal-distributed-minio ক্লোন করুন।


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


রেপোতে যান এবং Terraform শুরু করুন যাতে এটি আপস্ট্রিম থেকে সমস্ত প্রয়োজনীয় মডিউল এবং প্লাগইন ডাউনলোড করতে পারে।


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


এটি নিশ্চিত করবে যে সমস্ত প্রয়োজনীয় মডিউলগুলি স্বয়ংক্রিয়ভাবে ডাউনলোড হয়েছে। এখন, নিশ্চিত করা যাক যে কয়েকটি বাধ্যতামূলক ভেরিয়েবল সেট করা আছে। আপনি হয় সেগুলিকে এনভায়রনমেন্ট ভেরিয়েবল হিসাবে সেট করতে পারেন বা উপরে ক্লোন করা রেপোতে vars.template নামে একটি ফাইল রয়েছে, যা আপনি cp vars.template terraform.tfvars হিসাবে কপি করতে পারেন।


শেষ পর্যন্ত, আপনি যে পদ্ধতিটি বেছে নিন, আপনাকে নিম্নলিখিত দুটি ভেরিয়েবল সেট করতে হবে

  • auth_token
  • প্রকল্প_আইডি


আপনি API ডক্সে এগুলি সম্পর্কে আরও তথ্য পেতে পারেন৷


আরও বেশ কিছু ভেরিয়েবল আছে যা আপনি terraform.tfvars এ পরিবর্তন করতে পারেন, এবং আমরা যখন সাইট-টু-সাইট প্রতিলিপি করব তখন আমরা নিম্নলিখিত পরিবর্তন করব।



একবার আপনার পছন্দের কনফিগারেশন সেট হয়ে গেলে, Terraform প্ল্যানটি প্রয়োগ করুন। যদি পরিকল্পনাটি ঠিক মনে হয়, 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


এই পুরো শেবাং। যখন আপনি এই আউটপুটটি দেখতে পান, শুধুমাত্র আপনার ফিজিক্যাল সার্ভারের ব্যবস্থা করা হয়নি, কিন্তু MinIOও এই নোডগুলিতে স্থাপন করা হয়েছে, এবং নোডগুলিকে বিতরণ করা স্টোরেজের ক্লাস্টার হিসাবে কনফিগার করা হয়েছে।

MinIO ক্লাস্টার অ্যাক্সেস করুন

আমরা বেশিরভাগ প্রক্রিয়া স্বয়ংক্রিয় করতে Terraform ব্যবহার করেছি, তাই এখন যা বাকি আছে তা হল MinIO ক্লাস্টার অ্যাক্সেস করা। আমাদের প্রস্তাবিত টুল হল 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/


একটি উপনাম তৈরি করুন যা আমরা স্থাপন করেছি MinIO ক্লাস্টারকে নির্দেশ করে


 mc config host add minio1 $MINIO_ENDPOINT $MINIO_ACCESS_KEY $MINIO_SECRET_KEY


টেরাফর্মের মাধ্যমে MinIO ক্লাস্টার চালু করার সময় আপনি যে মানগুলি সেট করেছেন তার সাথে আপনি উপরের ভেরিয়েবলগুলি প্রতিস্থাপন করতে পারেন, তবে উপনামের নামটি minio1 এ সেট করা নিশ্চিত করুন। এটি পরে বোঝা যাবে যখন আমরা আপনাকে দেখাব কিভাবে সাইট-টু-সাইট প্রতিলিপি করতে হয়।


ক্লাস্টার থেকে কিছু মেটাডেটা এনে আপনি সফলভাবে সংযোগ করতে সক্ষম কিনা তা পরীক্ষা করুন


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


আপনি যদি উপরের মত একটি আউটপুট দেখতে পান তাহলে আপনি সফলভাবে mc কমান্ডের মাধ্যমে MinIO ক্লাস্টার অ্যাক্সেস করতে পারবেন। তো এরপর কি? কখন আমাদের S3 থেকে ডেটা স্থানান্তর করা উচিত?

MinIO ক্লাস্টারে ভারসাম্য বজায় রাখা

আমরা S3 থেকে ডেটা স্থানান্তর করতে পারি, বা এমনকি আমাদের নিজস্ব কিছু ডেটা যোগ করতে পারি এবং ক্লাস্টার ব্যবহার শুরু করতে পারি। তবে এর এক ধাপ এগিয়ে নেওয়া যাক। আমরা AWS S3-এর মতো রিডানডেন্সির একই স্তর অর্জন করতে চাই, যার অর্থ যদি একটি সাইট নিচে চলে যায় আমরা নিশ্চিত করতে চাই যে আমাদের ডেটা অন্য সাইটে অ্যাক্সেসযোগ্য। AWS অঞ্চলগুলির সাথে এটি সম্পন্ন করেছে, কিন্তু আমরা কিভাবে MinIO এর সাথে এটি সম্পন্ন করব?


এখন, আমরা আগে Terraform এর সাথে যে সামান্য অটোমেশন করেছি তার সৌন্দর্য দেখতে পাচ্ছি। ইকুইনিক্স মেটালে আরেকটি MinIO অঞ্চল তৈরি করা কতটা সহজ তা আমাকে দেখান।


আমাদের সোর্স রেপোকে আবার 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 রেপোতে যান এবং টেরাফর্ম শুরু করুন যাতে এটি মূল MinIO স্থাপনার মতো আপস্ট্রিম থেকে সমস্ত প্রয়োজনীয় মডিউল এবং প্লাগইন ডাউনলোড করতে পারে।


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


সমস্ত মডিউল ডাউনলোড হয়ে গেলে, cp vars.template terraform.tfvars ফাইলটি কপি করুন এবং দুটি ভেরিয়েবল সেট করুন


  • auth_token
  • প্রকল্প_আইডি


এখন পর্যন্ত প্রক্রিয়াটি আমরা কীভাবে প্রথম ক্লাস্টার চালু করেছি তার অনুরূপ হওয়া উচিত, তবে এখানেই জিনিসগুলি আলাদা হবে।


চলুন প্রথম সাইট থেকে দ্বিতীয় সাইটকে আলাদা করে এমন ভেরিয়েবল সেট করি।


প্রথমে, 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


আপনি দেখতে পাচ্ছেন যে অন্যান্য MinIO স্থাপনায় ডেটা প্রতিলিপি করা প্রায় তাত্ক্ষণিক, যদিও সেগুলি ভৌগলিকভাবে আলাদা।


আসুন একটি দ্রুত পরীক্ষা করে দেখি যে এটি আসলেই যতটা সহজ দেখায়। মনে রাখবেন যে MinIO হল AWS S3-এর একটি ড্রপ-ইন প্রতিস্থাপন, তাই S3-এর সাথে কাজ করার কথা যা কিছু MinIO-এর সাথেও কাজ করবে। এই ক্ষেত্রে, আমরা একটি MinIO বালতিতে একটি বস্তু আপলোড করতে একটি Terraform ব্যবহার করব। টেরাফর্মে এটি AWS প্রদানকারীর মাধ্যমে করা হয় যা মূলত একটি মডিউল যা AWS ইকোসিস্টেমে বিভিন্ন ক্রিয়াকলাপ সম্পাদন করতে AWS API এর সাথে সংযোগ করে, কিন্তু এই ক্ষেত্রে, আমরা MinIO বাকেট অ্যাক্সেস করতে Terraform AWS S3 সংস্থান ব্যবহার করব।


নীচের মত Terraform এ একটি AWS প্রদানকারী তৈরি করুন। নিশ্চিত করুন যে আপনি Equinix Metal 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" } }


terraform 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") }


আপনি উপরে দেখতে পাচ্ছেন, আমরা কোনো MinIO-নির্দিষ্ট Terraform রিসোর্স ব্যবহার করিনি, আমরা AWS প্রদানকারী aws_s3_bucket_object রিসোর্স ব্যবহার করছি। যদিও আমরা বিদ্যমান AWS S3 Terraform রিসোর্স ব্যবহার করছি, অবজেক্ট স্টোরটি সম্পূর্ণরূপে উৎপাদন এন্টারপ্রাইজ-গ্রেড MinIO দ্বারা চালিত।

AWS S3 থেকে ডেটা স্থানান্তর করা হচ্ছে

প্রোডাকশন-গ্রেড অবজেক্ট স্টোরেজ এবং সমগ্র পরিকাঠামোর সম্পূর্ণ নিয়ন্ত্রণের জন্য আমাদের কাছে এখন সমস্ত বিল্ডিং ব্লক প্রস্তুত রয়েছে। এর পরে, আমরা ইতিমধ্যে S3-এ থাকা ডেটা স্থানান্তর করব।


আপনি AWS S3 থেকে MinIO-তে আপনার ডেটা স্থানান্তর করতে পারেন এমন অনেকগুলি উপায় আছে, কিন্তু আমরা যেটি সুপারিশ করি তা হল mc ব্যবহার করা।


mc mirror হল ডেটা সিঙ্ক্রোনাইজেশনের একটি সুইস আর্মি ছুরি। এটি S3 বা S3-API- সামঞ্জস্যপূর্ণ অবজেক্ট স্টোর থেকে অবজেক্ট কপি করতে পারে এবং সেগুলিকে MinIO-তে মিরর করতে পারে। এর একটি জনপ্রিয় ব্যবহারের ক্ষেত্রে একটি Amazon S3 বাকেটকে MinIO-তে মিরর করা হচ্ছে যাতে AWS নয় এমন অ্যাপ্লিকেশন এবং পরিষেবাগুলিতে ডেটা প্রকাশ করা যায়।


একটি অ্যাক্সেস কী এবং গোপন কী সহ একটি নতুন 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 থেকে MinIO তে প্রত্যাবর্তন করা যায়

ধাতুতে প্যাডেল রাখুন

এই ব্লগ পোস্টটি দেখিয়েছে যে MinIO Equinix Metal NVMe SSD-তে চলছে, সাইট-টু-সাইট রেপ্লিকেশন কনফিগারেশনে, আপনাকে S3-এর খরচের একটি ভগ্নাংশে কর্মক্ষমতা, ডেটা স্থায়িত্ব এবং স্থিতিস্থাপকতার একই স্তর দেবে। আপনার মেঘের উপর সম্পূর্ণ নিয়ন্ত্রণ বজায় রাখা।


আপনি কি সমস্ত অবকাঠামোর 100% নিয়ন্ত্রণ করেন? পুরোপুরি না। সুইচ, রাউটার এবং অন্যান্য নেটওয়ার্কিং গিয়ার ইকুইনিক্স দ্বারা পরিচালিত হয়, তবে তাদের নেটওয়ার্কে থাকার সুবিধাগুলি অসুবিধাগুলিকে ছাড়িয়ে যায়। আপনি পয়েন্ট-টু-পয়েন্ট, WAN, বা অন্যান্য উত্সর্গীকৃত সার্কিটগুলিকে কার্যত অন্য যে কোনও সরবরাহকারীর সাথে সংযোগ করতে পারেন। মোটকথা, আপনি একটি প্রাইভেট সার্কিট সরাসরি AWS এর সাথে সংযুক্ত থাকতে পারেন (Equinix Connect এর মাধ্যমে) এবং তারপর আপনি আপনার ডেটা 10 গুণ দ্রুত স্থানান্তর করতে পারেন, সব সময় সুরক্ষিত থাকে কারণ এটি খোলা পাবলিক ইন্টারনেট অতিক্রম করছে না এবং শুধুমাত্র আপনার ডেটা যায়। যে সার্কিট


অধিকন্তু, MinIO বেঞ্চমার্কগুলি বারবার এনক্রিপশন চালু করার সাথে খুব কম (<1%) থ্রুপুট কর্মক্ষমতা অবনতি দেখায়, তাই আমরা সুপারিশ করি যে সমস্ত MinIO স্থাপনা বিশ্রামে এনক্রিপশন ব্যবহার করে এবং সমস্ত MinIO স্থাপনার TLS ব্যবহার করে নেটওয়ার্ক যোগাযোগ সুরক্ষিত করা উচিত। অভিনন্দন, এখন আপনার ডেটা আরও নিরাপদ, তবুও স্বচ্ছ, সিস্টেমে রয়েছে যেখানে আপনার সম্পূর্ণ নিয়ন্ত্রণ এবং জবাবদিহিতা রয়েছে৷


Equinix Metal-এ AWS S3 থেকে MinIO-তে স্থানান্তরিত করার বিষয়ে আপনার কোনো প্রশ্ন থাকলে, Slack- এ আমাদের সাথে যোগাযোগ করতে ভুলবেন না!


এছাড়াও এখানে প্রকাশিত.