সেন্টোস 8 - পার্ট 2 - এ সেন্টিনেলের সাথে উচ্চ প্রাপ্যতার জন্য পুনরায় সেটআপ করার পদ্ধতি


রেডিস রেডিস সেন্টিনেল বিতরণ সিস্টেমের মাধ্যমে উচ্চ প্রাপ্যতা সরবরাহ করে। সেন্টিনেল রেডিসের উদাহরণগুলি নিরীক্ষণ করতে, ব্যর্থতাগুলি সনাক্ত করতে এবং স্বয়ংক্রিয়ভাবে ভূমিকা পরিবর্তন করতে সহায়তা করবে যাতে কোনও ধরণের ব্যর্থতা প্রতিরোধ করতে রেডিস মোতায়েনকে সক্ষম করে।

এটি রেডিস উদাহরণগুলি (মাস্টার এবং প্রতিলিপি) পর্যবেক্ষণ বৈশিষ্ট্যযুক্ত, অন্যান্য পরিষেবা/প্রসেসের বিজ্ঞপ্তি সমর্থন করে বা একটি স্ক্রিপ্টের মাধ্যমে সিস্টেম অ্যাডমিনিস্ট্রেটর, মাস্টার নিচে যাওয়ার পরে একটি রেপ্লিকা প্রচার করতে স্বয়ংক্রিয় ব্যর্থতা এবং ক্লায়েন্টদের বর্তমান আবিষ্কারের জন্য কনফিগারেশন সরবরাহ করে মাস্টার একটি নির্দিষ্ট পরিষেবা প্রদান।

এই নিবন্ধটি সেন্টোস 8 এ রেডিস সেন্টিনেলের সাথে উচ্চ প্রাপ্যতার জন্য কীভাবে রেডিস সেট আপ করতে হবে তা প্রেরণ করে, সেন্ডিনেলগুলি কনফিগার করা, সেটআপের স্থিতি পরীক্ষা করা এবং একটি সেন্টিনেল ফেলওভার পরীক্ষা করা testing

  1. CentOS 8 - পার্ট 1 এ পুনরায় প্রতিলিপি (ক্লাস্টার-মোড অক্ষম সহ) সেটআপ করার পদ্ধতি

Master Server and Sentinel1: 10.42.0.247
Redis Replica1 and Sentinel2: 10.42.0.21
Redis Replica2 and Sentinel3: 10.42.0.34

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

পদক্ষেপ 1: রেডিস সেন্টিনেল পরিষেবা শুরু এবং সক্ষম করা

1. সেন্টোস 8-এ, রেডিস সেন্টিনেল পরিষেবাটি রেডিস সার্ভারের পাশাপাশি ইনস্টল করা হয়েছে (যা আমরা ইতিমধ্যে রেডিস রেপ্লিকেশন সেটআপে করেছি)।

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

# systemctl start redis-sentinel
# systemctl enable redis-sentinel
# systemctl status redis-sentinel

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

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

প্রথমে মূল ফাইলটির একটি ব্যাকআপ তৈরি করুন এবং সম্পাদনার জন্য এটি খুলুন।

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

৩. ডিফল্টরূপে সেন্টিনেল পোর্ট ২373737৯ শোনেন, সমস্ত দৃষ্টান্তে এটি যাচাই করুন। নোট করুন যে আপনাকে বাইন্ড প্যারামিটার মন্তব্য করতে হবে (বা 0.0.0.0 এ সেট করা আছে)।

port 26379

৪. এরপরে, সেন্টিনেলকে আমাদের মাস্টারকে পর্যবেক্ষণ করতে বলুন, এবং কমপক্ষে 2 কোরামের সেন্ডিনেল রাজি হলেই এটি "অবজেক্টিভ ডাউন" অবস্থায় বিবেচনা করুন। আপনি একটি কাস্টম নামের সাথে "মাইমাস্টার" প্রতিস্থাপন করতে পারেন।

#On Master Server and Sentinel1
sentinel monitor mymaster 127.0.0.1 6379 2

#On Replica1 and Sentinel2
sentinel monitor mymaster 10.42.0.247 6379 2

#On Replica1 and Sentinel3
sentinel monitor mymaster 10.42.0.247 6379 2

গুরুত্বপূর্ণ: ত্রুটি এড়ানোর জন্য সেন্ডিনেল মনিটরের স্টেটমেন্টটি সেন্ডিনেল লেখক-পাসের স্টেটমেন্টের আগে রাখা উচিত "নির্দিষ্ট নাম সহ এমন কোনও মাস্টার নেই” " সেন্ডিনেল পরিষেবা পুনরায় চালু করার সময়।

৫. যদি নিরীক্ষণের জন্য রেডিস মাস্টারের একটি পাসওয়ার্ড সেট থাকে (আমাদের ক্ষেত্রে মাস্টারের রয়েছে), পাসওয়ার্ডটি সরবরাহ করুন যাতে সেন্টিনেল উদাহরণটি সুরক্ষিত উদাহরণ সহ প্রমাণ করতে পারে।

 
sentinel auth-pass mymaster [email 

Then. তারপরে মাস্টার (বা কোনও সংযুক্ত প্রতিলিপি বা সেন্ডিনেল) এর সংখ্যাটিকে "সাবজেক্টিভালি ডাউন" অবস্থায় বিবেচনা করার জন্য অ্যাক্সেসযোগ্য হওয়া উচিত set

নিম্নলিখিত কনফিগারেশনটির অর্থ হ'ল মাস্টারটি ব্যর্থ হিসাবে বিবেচিত হবে যত তাড়াতাড়ি আমরা 5 সেকেন্ডের মধ্যে আমাদের পিংগুলি থেকে কোনও উত্তর না পেয়ে (1 সেকেন্ডটি 1000 মিলিসেকেন্ডের সমান)।

sentinel down-after-milliseconds mymaster 5000

Next. এরপরে, মিলিসেকেন্ডগুলিতে ফেলওভার সময়সীমা নির্ধারণ করুন যা অনেকগুলি সংজ্ঞা দেয় (কনফিগারেশন ফাইলের প্যারামিটারের ডকুমেন্টেশন পড়ুন)।

sentinel failover-timeout mymaster 180000

৮. একই সাথে একটি ব্যর্থতার পরে নতুন মাস্টারটি ব্যবহার করতে পুনরায় কনফিগার করা যায় এমন প্রতিরূপের সংখ্যা সেট করুন। যেহেতু আমাদের দুটি প্রতিলিপি রয়েছে, আমরা একটি প্রতিলিপি সেট করব কারণ অন্যটি নতুন মাস্টারে পদোন্নতি হবে।

sentinel parallel-syncs mymaster 1

নোট করুন যে রেডিস রেপ্লিকা 1 এবং সেন্টিনেল 2, এবং রেডডিস রেপ্লিকা 1 এবং সেন্টিনেল 2 এর কনফিগারেশন ফাইলগুলি অভিন্ন হওয়া উচিত।

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

# systemctl restart redis-sentinel

10. এরপরে, সেন্টিনেল দৃষ্টান্তগুলি কথা বলা শুরু করতে, ফায়ারওয়াল-সিএমডি ব্যবহার করে, অন্যান্য সেন্টিনেল দৃষ্টান্তের সাথে সংযোগ গ্রহণের জন্য সমস্ত নোডের ফায়ারওয়ালে 26379 পোর্ট খুলুন।

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

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

উদাহরণস্বরূপ, আপনি যখন মাস্টারের কনফিগারেশন ফাইলটির শেষের দিকে তাকান, আপনার নীচের স্ক্রিনশটটিতে প্রদর্শিত হিসাবে জানা-প্রেরণকৃত এবং পরিচিত-প্রতিরূপ বিবৃতি দেখতে হবে।

প্রতিলিপি 1 এবং প্রতিলিপি 2 এ এটি একই ক্ষেত্রে হওয়া উচিত।

নোট করুন যে সেন্টিনেল কনফিগারেশনটি প্রতিবার একটি প্রতিস্থাপনকে একটি ব্যর্থতার সময় মাস্টার স্ট্যাটাসে উন্নীত করা হয় এবং প্রতিবার সেটআপে একটি নতুন সেন্টিনেল সন্ধান করা হয় তখনও এটি পুনরায় লেখা/আপডেট করা হয়।

পদক্ষেপ 3: রেডিস সেন্টিনেল সেটআপ স্থিতি পরীক্ষা করুন

12. নিম্নলিখিত হিসাবে তথ্য সেন্ডিনেল কমান্ডটি ব্যবহার করে মাস্টারের উপর সেন্টিনেলের স্থিতি/তথ্য পরীক্ষা করুন।

# redis-cli -p 26379 info sentinel

কমান্ডের আউটপুট থেকে নিম্নলিখিত স্ক্রিনশটে দেখা গেছে, আমাদের কাছে দুটি প্রতিরূপ/ক্রীতদাস এবং তিনটি সেন্ডিনেল রয়েছে।

১৩. মাস্টার সম্পর্কে বিস্তারিত তথ্য প্রদর্শন করতে (যাকে বলা হয় মাইমাস্টার), সেন্ডিনেল মাস্টার কমান্ডটি ব্যবহার করুন।

# redis-cli -p 26379 sentinel master mymaster

১৪. দাস এবং সেন্ডিনেলদের সম্পর্কে বিশদ তথ্য প্রদর্শন করতে, যথাক্রমে সেন্ডিনেল ক্রীতদাস কমান্ড এবং সেন্ডিনেল সেন্ডিনেলস কমান্ডটি ব্যবহার করুন।

# redis-cli -p 26379 sentinel slaves mymaster
# redis-cli -p 26379 sentinel sentinels mymaster

15. এরপরে, সেন্ডিনেল গেট-মাস্টার-অ্যাড্রেসার-নাম-আদেশ কমান্ডটি ব্যবহার করে স্লেভ দৃষ্টান্ত থেকে নামটির সাথে মাস্টারের ঠিকানা জিজ্ঞাসা করুন।

আউটপুটটি বর্তমান মাস্টার উদাহরণের আইপি ঠিকানা এবং পোর্ট হওয়া উচিত:

# redis-cli -p 26379 sentinel get-master-addr-by-name mymaster

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

16. সবশেষে, আসুন আমরা আমাদের সেন্টিনেল সেটআপে স্বয়ংক্রিয় ব্যর্থতা পরীক্ষা করি। রেডিস/সেন্টিনেল মাস্টারে, 60 সেকেন্ডের জন্য ঘুমানোর জন্য রেডিস মাস্টারকে (63 6379৯ বন্দরে চলমান) তৈরি করুন। তারপরে নিম্নে প্রতিরূপ/ক্রীতদাসদের সাথে বর্তমান মাস্টারের ঠিকানাটি জিজ্ঞাসা করুন।

# redis-cli -p 6379
127.0.0.1:6379> AUTH [email 
127.0.0.1:6379>  debug sleep 60
# redis-cli -p 26379 sentinel get-master-addr-by-name mymaster
# redis-cli -p 26379 sentinel get-master-addr-by-name mymaster

ক্যোয়ারির আউটপুট থেকে, নতুন মাস্টারটি এখন নীচের স্ক্রিনশটটিতে দেখা হিসাবে 10.42.0.34 IP ঠিকানার সাথে প্রতিলিপি/স্লেভ 2 রয়েছে।

আপনি রেডিস সেন্টিনেল ডকুমেন্টেশন থেকে আরও তথ্য পেতে পারেন। তবে যদি আপনার ভাগ করে নেওয়ার বা কোয়েরি করার কোনও চিন্তা থাকে তবে নীচের প্রতিক্রিয়া ফর্মটি আমাদের কাছে আপনার প্রবেশদ্বার।

এই সিরিজের পরবর্তী এবং শেষ অংশে, আমরা সেন্টোস ৮-এ একটি রেডিস ক্লাস্টার কীভাবে সেটআপ করব তা দেখব এটি প্রথম দুটি থেকে একটি স্বাধীন নিবন্ধ হবে।