CentOS 8 - পার্ট 3 - এ কিভাবে রেডিস ক্লাস্টার সেটআপ করবেন


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

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

রেডিস ক্লাস্টার ডকুমেন্টেশন অনুসারে, "ন্যূনতম ক্লাস্টার" যা প্রত্যাশা অনুযায়ী কাজ করে তার জন্য কমপক্ষে 3 মাস্টার নোড থাকতে হবে। তবে উচ্চ প্রাপ্যতার জন্য সর্বাধিক উপযুক্ত সেটআপটিতে কমপক্ষে 6 টি নোড থাকতে হবে যেখানে তিনটি মাস্টার এবং তিনটি ক্রীতদাস থাকবেন, প্রতিটি মাস্টার দাস থাকবেন।

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

এই নিবন্ধটি দেখায় যে কীভাবে রেডিস ক্লাস্টার সেটআপ করতে হবে (ক্লাস্টার-মোড অক্ষম সহ) সেন্টোস ৮-এ, এটি কীভাবে রেডিস ইনস্টল করতে হবে, ক্লাস্টার নোডগুলি কনফিগার করতে হবে, একটি ক্লাস্টার তৈরি করতে হবে এবং ক্লাস্টার ফেলওভার পরীক্ষা করবে।

দ্রষ্টব্য: এই গাইডের জন্য, আমরা ক্লাস্টার মোডটি চালানোর জন্য তাজা/খালি রেডিস উদাহরণগুলি ব্যবহার করব। ক্লাস্টার মোডটি আমাদের রেডিস সিরিজের প্রথম দুটি গাইডে করা কিছু কনফিগারেশনের সাথে কাজ করবে না, বিশেষত প্যারামিটারের অনুলিপি ব্যবহার করার সময় এটি কাজ করে না।

  1. CentOS 8 ইনস্টলেশন সহ সার্ভারগুলি

Redis Master1: 10.42.0.247
Redis Master2: 10.42.0.197
Redis Master3: 10.42.0.132

Redis Slave1: 10.42.0.200
Redis Slave2: 10.42.0.21
Redis Slave3: 10.42.0.34

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

পদক্ষেপ 1: সমস্ত নোডে রেডিস ইনস্টল করা

১. এসএসএইচ এর মাধ্যমে সমস্ত দৃষ্টান্তে লগইন করুন, তারপরে যেমন দেখানো হয়েছে তেমন ডিএনএফ প্যাকেজ ম্যানেজার ব্যবহার করে রেডিস মডিউলটি ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান।

# dnf module install redis

২. এরপরে, রেডিস পরিষেবাটি চালু করুন, এটি সিস্টেম বুট-এ স্বয়ংক্রিয়ভাবে শুরু করতে সক্ষম করুন এবং এটি চলছে কিনা তা যাচাই করতে তার অবস্থানটি পরীক্ষা করুন (সমস্ত 6 বারের মধ্যে পরিষেবাটি যাচাই করুন):

# systemctl start redis
# systemctl enable redis
# systemctl status redis

পদক্ষেপ 2: সমস্ত নোডে রেডিস ইনস্ট্যান্স কনফিগার করা

৩. এই বিভাগটি রেডিস ক্লাস্টার নোডগুলি কীভাবে কনফিগার করতে হবে তা বর্ণনা করে। এখানে সমস্ত নোডে কনফিগারেশনগুলি সম্পাদন করতে ভুলবেন না।

রেডিস সার্ভারটি কনফিগার করতে /etc/redis.conf কনফিগারেশন ফাইলটি ব্যবহার করুন। প্রস্তাবিত অনুশীলন হিসাবে, আপনার পছন্দসই কমান্ড-লাইন পাঠ্য সম্পাদক ব্যবহার করে আসল ফাইলটি সম্পাদনা করার আগে একটি ব্যাকআপ তৈরি করুন।

# cp /etc/redis.conf /etc/redis.conf.orig
# vi /etc/redis.conf

৪. এরপরে, নিম্নলিখিত কনফিগারেশন প্যারামিটারগুলি সন্ধান করুন এবং তাদের মানগুলি প্রদর্শিত হিসাবে সম্পাদনা করুন। বাইন্ড প্যারামিটার সেট করে রেডিস সার্ভারের ইন্টারফেসটি শুনবে, উদাহরণটি ল্যান আইপিতে সেট করে। 127.0.0.1 মুছে ফেলুন কারণ আমরা বুঝতে পেরেছি যে এটি এখানে রেখে দিলে ক্লাস্টার তৈরির প্রক্রিয়াটি বিশেষত ক্লাস্টারে যোগদানের পর্যায়ে ধীর হয়ে যায়।

bind  10.42.0.247

তারপরে গুচ্ছের অন্যান্য দৃষ্টান্ত থেকে সংযোগের অনুমতি দেওয়ার জন্য সুরক্ষিত মোডটি তে সেট করুন।

protected-mode no

পোর্ট প্যারামিটারটি পোর্টটি সংজ্ঞায়িত করে রেডিস সার্ভার সংযোগগুলির জন্য শুনবে, ডিফল্টটি 6379 clients ক্লায়েন্টের সাথে যোগাযোগের জন্য এটি ডেটা পোর্ট।

port 6379

৫. পরবর্তী প্যারামিটারগুলি ক্লাস্টার মোড সক্ষম করবে এবং এর কিছু দরকারী বৈশিষ্ট্য সেট করবে। ক্লাস্টার-সক্ষম প্যারামিটার, হ্যা এ সেট করা হলে, ক্লাস্টার মোডটি সক্রিয় করে।

cluster-enabled yes

এর পরে, ক্লাস্টার-কনফিগারেশন-ফাইল পরামিতি একটি ক্লাস্টার নোডের ক্লাস্টার কনফিগারেশন ফাইলের নাম নির্ধারণ করে (উদাঃ নোডস-637979৯.কনফ)। ফাইলটি কার্যনির্বাহী ডিরেক্টরিতে তৈরি করা হয়েছে (ডিআর প্যারামিটার ব্যবহার করে ডিফল্টরূপে/var/lib/redis সংজ্ঞায়িত করা হয়) এবং এটি ব্যবহারকারী সম্পাদনযোগ্য নয়।

cluster-config-file nodes-6379.conf

পরবর্তী দরকারী ক্লাস্টার বিকল্পটি হ'ল ক্লাস্টার-নোড-টাইমআউট, এটি ব্যর্থতার অবস্থায় বিবেচনা করার জন্য উদাহরণটি অনুপলব্ধ হতে পারে মিলসেকেন্ডে সর্বাধিক পরিমাণ নির্ধারণ করতে ব্যবহৃত হয়। 15000 এর মান 15 সেকেন্ডের সমান।

cluster-node-timeout 15000

We. আমাদের ডিস্কে রেডিস অধ্যবসায় সক্ষম করতে হবে। আমরা দৃ one়তা মোডগুলির মধ্যে একটি ব্যবহার করতে পারি, এটি হ'ল অ্যাপেন্ড ওলি ফাইল (এওএফ): এটি সার্ভারের দ্বারা প্রাপ্ত প্রতিটি লেখার ক্রিয়াকলাপটি সাফল্যের সাথে প্রাপ্ত প্রতিটি লিখন অপারেশন (ওয়ার্কিং ডিরেক্টরিের অধীনে তৈরি ফাইল অ্যাপেন্ডোনালি.এফ) এ লগ করে। মূল ডেটাसेट পুনর্নির্মাণের জন্য সার্ভার শুরুর সময় ডেটা প্লে হবে।

এটি সক্ষম করতে অ্যাপোডোনলি প্যারামিটারটি হ্যা এ সেট করুন।

appendonly yes

All. সমস্ত পরিবর্তন করার পরে, সাম্প্রতিক পরিবর্তনগুলি প্রয়োগ করতে সমস্ত নোডে রেডিস পরিষেবাটি পুনরায় চালু করুন।

# systemctl restart redis

৮. এই মুহুর্তে, প্রতিটি ক্লাস্টার নোডের এখন একটি আইডি থাকা উচিত। আপনি এটি /var/log/redis/redis.log এ অবস্থিত লগফাইলে পরীক্ষা করতে পারেন।

# cat /var/log/redis/redis.log

9. এর পরে, সমস্ত দৃষ্টিতে open৩৯7 এবং ১ 163737৯ পোর্ট খুলুন। পরবর্তী পোর্টটি ক্লাস্টার বাসের জন্য ব্যবহৃত হয় (বাইনারি প্রোটোকল ব্যবহার করে নোড-টু-নোড যোগাযোগ চ্যানেল)। এটি রেডিস ক্লাস্টার টিসিপি সংযোগগুলির জন্য একটি প্রাথমিক প্রয়োজন।

# firewall-cmd --zone=public --permanent --add-port=6379/tcp 
# firewall-cmd --zone=public --permanent --add-port=16379/tcp 
# firewall-cmd --reload

পদক্ষেপ 3: রেডিস ক্লাস্টার তৈরি করা

ক্লাস্টারটি তৈরি করতে, redis-cli কমান্ড-লাইন ক্লায়েন্টটি নিম্নরূপ ব্যবহার করুন। - ক্লাস্টার তৈরি ক্লাস্টার সৃষ্টি সক্ষম করে এবং --ক্লাস্টার-প্রতিলিপি 1 মানে মাস্টার প্রতি একটি প্রতিলিপি তৈরি করুন।

আমাদের সেটআপের জন্য যার 6 টি নোড রয়েছে, আমরা 3 জন মাস্টার এবং 3 ক্রীতদাস থাকব।

মনে রাখবেন যে প্রথম n টি নোডকে মাস্টার্স (এম) হিসাবে বিবেচনা করা হবে এবং পরবর্তী তিনটি দাস হিসাবে বিবেচিত হবে (এস) । প্রথম ক্রীতদাস 10.32.0.200:6379 প্রথম মাস্টারকে প্রতিলিপি করে অর্থাৎ 10.42.0.247:6379, দ্বিতীয় দাস সেই আদেশ অনুসারে দ্বিতীয় মাস্টারকে প্রতিলিপি করে।

নিম্নলিখিত কমান্ডটি এমনভাবে ফর্ম্যাট করা হয়েছে যাতে ফলাফলটি আমাদের উপরের লজিকাল সেটআপটিকে উপস্থাপন করে।

# redis-cli --cluster create 10.42.0.247:6379 10.42.0.197:6379 10.42.0.132:6379 10.42.0.200:6379 10.42.0.21:6379 10.42.0.34:6379 --cluster-replicas 1

১১. ক্লাস্টার নির্মাণ সফল হয়ে গেলে, সমস্ত ক্লাস্টার নোডের তালিকা তৈরি করতে যে কোনও হোস্টের নীচে নিম্নলিখিত কমান্ডটি চালান ( -h পতাকা ব্যবহার করে তার আইপি ঠিকানা নির্দিষ্ট করুন)।

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes

নিম্নোক্ত স্ক্রিনশটটিতে যেমন দেখানো হয়েছে তেমন দাসরা তাদের মাস্টারদের নির্দেশ করে সমস্ত ক্লাস্টার নোড দেখতে সক্ষম হবেন।

বিভিন্ন ক্ষেত্রগুলি এই ক্রমে: নোড আইডি, আইপি ঠিকানা: পোর্ট, পতাকা, সর্বশেষ পিং পাঠানো, শেষ পং প্রাপ্ত, কনফিগারেশন যুগ, লিঙ্ক-স্টেট, স্লট (মাস্টারদের জন্য)।

পদক্ষেপ 4: রেডিস ক্লাস্টার ব্যর্থতার পরীক্ষা করা

12. এই বিভাগে, আমরা একটি ক্লাস্টার ফেলওভার পরীক্ষা করার পদ্ধতিটি প্রদর্শন করব। প্রথমে আসুন মাস্টার্সের নোটটি নেওয়া যাক।

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

এছাড়াও, রেডিস ক্রীতদাসদের নোট করুন।

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

১৩. এর পরে, মাস্টার নোডগুলির মধ্যে একটিতে রেডিস পরিষেবাটি বন্ধ করা যাক যেমন 10.42.0.197 এবং ক্লাস্টারে সমস্ত মাস্টার নোডগুলি পরীক্ষা করুন।

# systemctl stop redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes | grep master

নিম্নলিখিত স্ক্রিনশট থেকে আপনি দেখতে পাবেন যে নোড 10.42.0.197:6367 ব্যর্থ অবস্থায় রয়েছে এবং এর দাস 10.42.0.21:6379 মাস্টার স্ট্যাটাসে উন্নীত হয়েছে।

14. এবার ব্যর্থ নোডে আবারও রেডিস পরিষেবাটি শুরু করা যাক এবং ক্লাস্টারের সমস্ত মাস্টারগুলি পরীক্ষা করুন।

# systemctl start redis
# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep master

এছাড়াও, ব্যর্থ মাস্টার এখন ক্রীতদাস হয়ে গেছে তা নিশ্চিত করতে ক্লাস্টার ক্রীতদাসগুলি পরীক্ষা করুন।

# redis-cli -h 10.42.0.247 -p 6379 cluster nodes  | grep slave

পদক্ষেপ 5: রেডিস ক্লাস্টার জুড়ে ডেটা প্রতিলিপি পরীক্ষা করা

15. এই শেষ বিভাগটি ব্যাখ্যা করে যে কীভাবে ক্লাস্টার ডেটার প্রতিলিপিটি যাচাই করা যায়। আমরা মাস্টারগুলির মধ্যে একটিতে একটি কী এবং মান তৈরি করব, তারপরে নীচের মতো সমস্ত ক্লাস্টার নোড থেকে এটি পড়ার চেষ্টা করব। রেডিস-ক্লাইপ ইউটিলিটির অধীনে ক্লাস্টার সমর্থন সক্ষম করতে এবং ক্লাস্টার মোডে ডেটা অ্যাক্সেস করতে -c স্যুইচটি ব্যবহার করুন।

# redis-cli -c -h 10.42.0.247 -p 6379 set name 'TecMint.com'
# redis-cli -c -h 10.42.0.247 -p 6379 get name
# redis-cli -c -h 10.42.0.21 -p 6379 get name
# redis-cli -c -h 10.42.0.132 -p 6379 get name
# redis-cli -c -h 10.42.0.200 -p 6379 get name
# redis-cli -c -h 10.42.0.197 -p 6379 get name
# redis-cli -c -h 10.42.0.34 -p 6379 get name

নীচের লাইনটি হ'ল রেডিস ক্লাস্টারটি স্বয়ংক্রিয়ভাবে শার্পিং, প্রতিলিপি এবং উচ্চতর উপলভ্যতা অর্জনের পছন্দসই উপায়। /Etc/redis.conf ফাইলের বাকী অন্যান্য অনেকগুলি ডকুমেন্টেড কনফিগারেশন প্যারামিটার রয়েছে, আপনি অফিসিয়াল ডকুমেন্টেশনে আরও তথ্য পেতে পারেন: রেডিস ক্লাস্টার টিউটোরিয়াল এবং রেডিস ক্লাস্টার স্পেসিফিকেশন।

এটি আমাদের তিন-ভাগ রেডিস টিউটোরিয়াল সিরিজের শেষে নিয়ে আসে। নীচের মতামত ফর্ম প্রশ্ন বা মন্তব্য পোস্ট করতে ব্যবহার করা যেতে পারে।