paint-brush
সর্বোত্তম নেটওয়ার্ক কনফিগারেশন সহ MinIO-এর সর্বাধিক ব্যবহার করুন — কীভাবে তা এখানেদ্বারা@minio
5,290 পড়া
5,290 পড়া

সর্বোত্তম নেটওয়ার্ক কনফিগারেশন সহ MinIO-এর সর্বাধিক ব্যবহার করুন — কীভাবে তা এখানে

দ্বারা MinIO7m2023/11/24
Read on Terminal Reader

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

MinIO একটি বিতরণ পদ্ধতিতে স্থাপন করা যেতে পারে যা একাধিক শারীরিক বা ভার্চুয়াল মেশিনের গণনা এবং স্টোরেজ সংস্থানগুলির সংস্থানগুলির দক্ষ ব্যবহার করে।
featured image - সর্বোত্তম নেটওয়ার্ক কনফিগারেশন সহ MinIO-এর সর্বাধিক ব্যবহার করুন — কীভাবে তা এখানে
MinIO HackerNoon profile picture
0-item
1-item

MinIO একটি বিতরণ পদ্ধতিতে স্থাপন করা যেতে পারে যা একাধিক শারীরিক বা ভার্চুয়াল মেশিনের গণনা এবং স্টোরেজ সংস্থানগুলির সংস্থানগুলির দক্ষ ব্যবহার করে। এটি একটি ব্যক্তিগত বা সর্বজনীন ক্লাউড পরিবেশে চলমান MinIO হতে পারে, যেমন Amazon ওয়েব পরিষেবা, Google ক্লাউড প্ল্যাটফর্ম, Microsoft-এর Azure প্ল্যাটফর্ম এবং আরও অনেকের সাথে। MinIO বিভিন্ন ধরণের টপোলজিতে মোতায়েন করতে পারে - উৎপাদনে আমরা মাল্টি-নোড মাল্টি-ড্রাইভ (MNMD) স্থাপনের সুপারিশ করি। MinIO আপনার একক সাইট স্থাপনার জন্য BC/DR গ্রেড ফেইলওভার এবং পুনরুদ্ধার সমর্থন প্রদান করার জন্য সাইটের প্রতিলিপির সুপারিশ করে, যা আপনি আপনার ব্যবহারের ক্ষেত্রে ডিজাইন এবং অপ্টিমাইজ করতে পারেন।


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


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

সহজ নেটওয়ার্কিং কৌশল

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


সেই দিনগুলি চলে গেছে যখন এন্টারপ্রাইজটি 1 GbE বা 10 GbE NIC নিয়ে যেতে পারত। আধুনিক এন্টারপ্রাইজ কাজের চাপ আদর্শভাবে 100 GbE NIC ব্যবহার করে। TCP প্রোটোকলের জন্য পদার্থবিদ্যা এবং ওভারহেডের সীমাবদ্ধতার পরিপ্রেক্ষিতে, এই NICগুলি উপলব্ধ ব্যান্ডউইথের 80-90%, সাধারণত 100 Gbps NIC-এর জন্য প্রায় 10GB/s, সত্যিই ভাল-সুবিধাযুক্ত নেটওয়ার্কগুলিতে 12GB/s পর্যন্ত সরবরাহ করবে বলে আশা করা হচ্ছে। সমস্ত ব্যান্ডউইথের সুবিধা নিতে MinIO-এর বাক্সের বাইরে কোনও অতিরিক্ত নেটওয়ার্কিং কনফিগারেশনের প্রয়োজন নেই কারণ এটি সমস্ত ইন্টারফেসে শোনে। বাক্সের বাইরে MinIO একাধিক নেটওয়ার্ক ইন্টারফেসে (NICs) শোনা সমর্থন করে।


MinIO নেটওয়ার্কিংয়ের জন্য আপনার অন্য কোনো বিশেষ কনফিগারেশনের প্রয়োজন নেই, তবে ঐচ্ছিকভাবে আমরা আগে আলোচনা করেছি এমন কিছু নেটওয়ার্কিং বেসিক ব্যবহার করে, আপনি একটি নির্দিষ্ট ইন্টারফেসের মাধ্যমে MinIO ট্র্যাফিককে রুট করতে পারেন।


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


আমরা প্রথমে রুট টেবিলের তালিকা দিয়ে শুরু করব


 $ ip route 10.56.98.0/24 dev eth0 proto kernel scope link src 10.56.98.18


আপনি যদি আপনার MinIO সার্ভারগুলিকে 10.56.98.16/28 CIDR সীমার মধ্যে কনফিগার করে থাকেন, তাহলে ধরা যাক MinIO নোডের IP ঠিকানাগুলির মধ্যে একটি হল 10.56.98.21 যা eth0 ইন্টারফেসের মাধ্যমে রুট করা হবে কারণ /28 1056-এর রুট টেবিল এন্ট্রির সাথে মেলে৷ .98.0/24।


কিন্তু আপনি যদি eth0 এর পরিবর্তে eth1 এর মাধ্যমে MinIO ট্র্যাফিককে রুট করতে চান তবে আমাদের MinIO CIDR-এর জন্য একটি নির্দিষ্ট রুট যোগ করতে হবে যাতে সাবনেটের সাথে মেলে এমন কোনো ট্র্যাফিক সেই নির্দিষ্ট নেটওয়ার্ক ইন্টারফেসের মাধ্যমে রুট করা হয়।


 $ ip route add 10.56.98.16/28 dev eth1


একবার রুট যোগ করা হলে, এটি কেমন দেখাচ্ছে তা দেখতে আবার রাউটিং টেবিলের তালিকা করা যাক


 $ ip route 10.56.98.0/24 dev eth0 proto kernel scope link src 10.56.98.33.18 10.56.98.16/28 dev eth1 scope link


এখন আমরা /28 CIDR-এর জন্য একটি রুট দেখতে পাচ্ছি। আপনি যদি MinIO নোড 10.56.98.21 পিং করেন তবে এটি এখন eth1 ইন্টারফেসের মাধ্যমে রুট করা হবে। এর কারণ হল যখন দুটি রুট আছে যেখানে /24 /28 এর সাথে ওভারল্যাপ করে, সাধারণত দীর্ঘতম উপসর্গ সহ রুটটিকে অগ্রাধিকার দেওয়া হয় (এই ক্ষেত্রে /28) এবং ট্র্যাফিক রুট করার সময় অন্য যেকোনো ছোট প্রিফিক্স রুটের চেয়ে অগ্রাধিকার পাবে। একে বলা হয় দীর্ঘতম-মেলা উপসর্গ নিয়ম।


আপনি 10.56.98.16/28 থেকে ট্রাফিক সঠিকভাবে রুট করা হচ্ছে তা যাচাই করতে পারেন যদি আপনি 10.56.98.21 পিং করেন এবং তারপরে নীচের মত tcpdump চেক করেন। আপনি লক্ষ্য করবেন যে উৎস 10.56.98.18 থেকে ট্র্যাফিক eth1 এর মাধ্যমে 10.56.98.21 এ রুট করা হচ্ছে।


 $ tcpdump -n -i eth1 icmp … 15:55:44.410450 IP 10.56.98.18 > 10.56.98.21: ICMP echo request, id 8416, seq 123, length 64 15:55:44.410471 IP 10.56.98.21 > 10.56.98.18: ICMP echo reply, id 8416, seq 123, length 64 15:55:45.434489 IP 10.56.98.18 > 10.56.98.21: ICMP echo request, id 8416, seq 124, length 64 15:55:45.434518 IP 10.56.98.21 > 10.56.98.18: ICMP echo reply, id 8416, seq 124, length 64 15:55:46.458490 IP 10.56.98.18 > 10.56.98.21: ICMP echo request, id 8416, seq 125, length 64 15:55:46.458520 IP 10.56.98.21 > 10.56.98.18: ICMP echo reply, id 8416, seq 125, length 64


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


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


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


প্রতিলিপির কৌশলগুলির মধ্যে একটি হল সাইট-টু-সাইট প্রতিলিপি। এটি আপনাকে একটি একক ক্লাস্টার দিয়ে MinIO শুরু করতে এবং প্রয়োজন বাড়ার সাথে সাথে N নম্বরে প্রসারিত করতে দেয়। ধরে নিন আপনার একটি ETL/ELT অ্যাপ্লিকেশন আছে যা 3টি ভিন্ন সাইটে চলে। সাধারণত, ডেটা শুধুমাত্র একটি অঞ্চলে পাওয়া যায় এবং অন্যান্য অঞ্চলগুলিকে তার প্রক্রিয়াটি চালানোর জন্য অঞ্চল জুড়ে প্রচুর পরিমাণে ডেটা টানতে হবে। বলা বাহুল্য, এটি শুধুমাত্র অত্যন্ত অদক্ষ নয়, এটি নেটওয়ার্কিং অবকাঠামোর উপর প্রচণ্ড চাপ সৃষ্টি করে এবং WAN শেয়ার করে এমন অন্যান্য অ্যাপ্লিকেশনের জন্য সম্ভাব্য বাধা সৃষ্টি করে।


সাইট থেকে সাইট প্রতিলিপি


একটি সাইট-টু-সাইট প্রতিলিপি কনফিগারেশনে, আপনি প্রথম সাইটে শুধুমাত্র MinIO ক্লাস্টারে ডেটা লেখেন। প্রতিলিপি প্রক্রিয়া স্বয়ংক্রিয়ভাবে অন্যান্য সাইটে ডেটা অনুলিপি করবে। ETL/ELT অ্যাপ্লিকেশনে কোনো অতিরিক্ত পরিবর্তন করার প্রয়োজন নেই। আপনি কেবল প্রতিটি সাইটের কাজগুলিকে তাদের নিজ নিজ MinIO ক্লাস্টারে নির্দেশ করুন যা একটি বিপরীত প্রক্সি দ্বারা সমর্থিত যেমন Nginx এবং রিডগুলি নীচে দেখানো অঞ্চল জুড়ে WAN এর চেয়ে অনেক দ্রুত হবে।


সাইট-টু-সাইট প্রতিলিপি কনফিগারেশন


কিন্তু এটি প্রশ্ন তোলে, ট্রাফিককে আরও সূক্ষ্ম সুর করা কি সম্ভব? ধরুন আপনি সাইট 1-এ ডেটা ফাইল যোগ করুন এটি অবিলম্বে এটিকে অন্যান্য সাইটে প্রতিলিপি করবে, দিনের সময় যাই হোক না কেন। এটি শীর্ষের সময় হতে পারে যখন সম্ভবত অন্যান্য ETL/ELT কাজগুলি চলছে এবং একই সাথে নেটওয়ার্ক সংস্থানগুলি ডেটা প্রতিলিপি করার জন্য ব্যবহার করা হচ্ছে যা পরবর্তী ব্যাচটি চালানোর কথা পরের দিন পর্যন্ত ব্যবহার করা যাবে না। সে ক্ষেত্রে কি করা যায়? এখানেই MinIO এর ব্যাচ প্রতিলিপি কাজে আসে। ব্যাচ রেপ্লিকেশন আপনাকে একটি নির্দিষ্ট সময়ে যে ধরনের ডেটা প্রতিলিপি করতে চান তা বাছাই এবং চয়ন করতে দেয়, এটি সম্পূর্ণরূপে কনফিগারযোগ্য। এই ক্ষেত্রে, একটি ব্যাচ প্রতিলিপি কাজ বন্ধ থাকার সময় চালানোর জন্য সেট করা যেতে পারে যখন ট্র্যাফিক সবচেয়ে কম থাকে। যেহেতু অ্যাপ্লিকেশন অ্যাক্সেসের সময় সারা দিন, সপ্তাহ এবং এমনকি মাস জুড়ে পরিবর্তিত হতে পারে, এখানেই MinIO নেটওয়ার্ক ট্র্যাফিক পর্যবেক্ষণ করা কাজে আসে যাতে আপনি সঠিক সময়ে চালানোর জন্য আপনার ব্যাচের কাজটি কনফিগার করতে পারেন। আপনি বিশ্বব্যাপী বিতরণ করা MinIO অবজেক্ট স্টোরে BC/DR বা জিও-লোকাল রিড/রাইট পারফরম্যান্সের মতো ফাংশন সমর্থন করতে বিভিন্ন র্যাক, ডেটা সেন্টার বা ভৌগলিক অঞ্চলে পিয়ার সাইট স্থাপন করতে পারেন।

সর্বশেষ ভাবনা

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


যথারীতি, আপনার যদি MinIO নেটওয়ার্ক কনফিগারেশন বা এটি কীভাবে সেট আপ করতে হয় সে সম্পর্কে কোনও প্রশ্ন থাকে তবে Slack বা আরও ভালভাবে আমাদের সাথে যোগাযোগ করতে ভুলবেন না তবে SUBNET সাবস্ক্রিপশনের জন্য সাইন আপ করুন!


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