Redis Sentinel Failover এবং Automatic Recovery হল একটি শক্তিশালী বৈশিষ্ট্য যা Redis-এর উচ্চ প্রাপ্যতা (High Availability) এবং স্বয়ংক্রিয় বিপর্যয় পুনরুদ্ধার (automatic failover) নিশ্চিত করে। Redis Sentinel হলো Redis-এর একটি সিস্টেম যা Redis সার্ভারের পর্যবেক্ষণ, রেপ্লিকেশন ম্যানেজমেন্ট এবং স্বয়ংক্রিয় ফেইলওভার পরিচালনা করে।
Redis Sentinel এর ভূমিকা
Redis Sentinel মূলত তিনটি প্রধান কাজ করে:
- Redis সার্ভারের মনিটরিং (Monitoring): Sentinel সার্ভারগুলির স্বাস্থ্যের পর্যবেক্ষণ করে এবং যদি কোনো সার্ভারের সমস্যা হয়, তবে তা চিহ্নিত করে।
- অল্টারনেটিভ সার্ভারের নির্বাচন (Failover): যখন প্রধান Redis সার্ভার (Master) ডাউন হয়, তখন Sentinel স্বয়ংক্রিয়ভাবে রেপ্লিকা (Slave) সার্ভারকে নতুন Master হিসেবে নির্বাচিত করে এবং Redis সার্ভারের অখণ্ডতা বজায় রাখে।
- কনফিগারেশন পরিবর্তন এবং বিজ্ঞপ্তি (Notification): Sentinel বিভিন্ন ক্লায়েন্ট বা অ্যাডমিনিস্ট্রেটরকে ইভেন্টের জন্য বিজ্ঞপ্তি পাঠাতে পারে, যেমন যদি Master সার্ভার ডাউন হয় বা যদি ফেইলওভার ঘটে।
Redis Sentinel Failover কনফিগারেশন
Redis Sentinel Failover কনফিগারেশন আপনাকে Redis Master-Slave Replication ম্যানেজ করার মাধ্যমে স্বয়ংক্রিয় ফেইলওভার এবং পুনরুদ্ধারের সক্ষমতা প্রদান করে।
Sentinel কনফিগারেশন ফাইল তৈরি করা
Redis Sentinel কনফিগারেশন ফাইলের নাম সাধারণত sentinel.conf হয়। এটি Sentinel সার্ভারের জন্য কনফিগারেশন ফাইল যা রেপ্লিকা সার্ভারকে মূল সার্ভার হিসেবে প্রমোট (promote) করতে, মনিটরিং এবং ফেইলওভার পরিচালনা করতে ব্যবহৃত হয়।
Sentinel কনফিগারেশন ফাইল তৈরি করা: Redis Sentinel কনফিগারেশন ফাইলের মধ্যে নিম্নলিখিত সেটিংস থাকতে পারে:
port 26379 # Master সার্ভারের মনিটরিং শুরু করুন sentinel monitor mymaster 127.0.0.1 6379 2 # স্লেভ সার্ভারগুলোকে মানেজ করার জন্য minimum 2টি Sentinel প্রয়োজন sentinel down-after-milliseconds mymaster 5000 # Failover এর জন্য কতটুকু সময় অপেক্ষা করতে হবে sentinel failover-timeout mymaster 15000 # SLA (স্বয়ংক্রিয়ভাবে অন্য মাষ্টার নির্বাচন) sentinel parallel-syncs mymaster 1- sentinel monitor: এই কমান্ডটি Sentinel কে নির্দেশ দেয়, কোন Redis Master সার্ভার মনিটর করতে হবে এবং সেটির IP, পোর্ট এবং ক্লাস্টারের কমপক্ষে কয়টি Sentinel এই সার্ভারটি পর্যবেক্ষণ করবে।
- sentinel down-after-milliseconds: এই অপশনটি Sentinel কে নির্দেশ দেয় কত মিলিসেকেন্ড পরে সার্ভার ডাউন হিসেবে চিহ্নিত হবে।
- sentinel failover-timeout: এটি failover প্রক্রিয়া কত সময়ের মধ্যে শুরু হবে তা নির্ধারণ করে।
- sentinel parallel-syncs: কিভাবে স্লেভ সার্ভারগুলো নতুন মাস্টারের সাথে সিঙ্ক্রোনাইজ হবে তা নিয়ন্ত্রণ করে।
Redis Sentinel সার্ভিস শুরু করা
Sentinel কনফিগারেশন ফাইল তৈরি করার পর, Sentinel সার্ভিস চালু করতে হবে:
redis-server /path/to/sentinel.conf --sentinel
এটি Redis Sentinel কে কনফিগারেশন ফাইল থেকে কনফিগারেশন গ্রহণ করে সার্ভিস চালু করবে।
Failover প্রক্রিয়া
ফেইলওভার প্রক্রিয়া তখন শুরু হয় যখন Redis Master সার্ভার অকেজো হয়ে যায়। Sentinel এই পরিবর্তনগুলি স্বয়ংক্রিয়ভাবে ম্যানেজ করে।
- Sentinel Failover Trigger:
- Sentinel সার্ভার মূল Redis (Master) সার্ভারটি চেক করে যদি এটি সঠিকভাবে কাজ না করে, তবে Sentinel নিজে থেকেই রেপ্লিকা (Slave) সার্ভারকে নতুন Master হিসেবে প্রমোট করে এবং ডেটা সিঙ্ক্রোনাইজেশন নিশ্চিত করে।
- New Master Election:
- Sentinel সার্ভার নতুন মাস্টার নির্বাচন করে এবং Redis ক্লায়েন্টগুলিকে এই পরিবর্তন সম্পর্কে অবহিত করে। ক্লায়েন্টরা নতুন মাস্টার সার্ভারে সংযোগ করতে শুরু করবে।
- Replication Adjustment:
- Sentinel নতুন Master সার্ভারের সাথে স্লেভ সার্ভারগুলো সিঙ্ক্রোনাইজ করার জন্য সেটিকে কনফিগার করে।
Automatic Recovery (স্বয়ংক্রিয় পুনরুদ্ধার)
Redis Sentinel Failover প্রক্রিয়া শেষে স্বয়ংক্রিয়ভাবে পুনরুদ্ধার ঘটে। নতুন মাস্টার নির্বাচন করার পর, Sentinel সার্ভার নিশ্চিত করে যে রেপ্লিকা সার্ভারগুলো সঠিকভাবে সিঙ্ক্রোনাইজ হয়েছে এবং পুনরায় পুরো সিস্টেমটি কাজ করার অবস্থায় ফিরে এসেছে।
- পুনরুদ্ধার প্রক্রিয়া:
- ফেইলওভার প্রক্রিয়া সম্পন্ন হওয়ার পর, রেপ্লিকা (Slave) সার্ভার গুলি নতুন মাস্টারের সাথে সিঙ্ক্রোনাইজ হয়ে যায় এবং প্রাসঙ্গিক ডেটা আপডেট হয়।
- রেপ্লিকা (Slave) Promoting:
- Sentinel নতুন মাস্টার সার্ভারের সিঙ্ক্রোনাইজেশন পরিচালনা করে এবং সফলভাবে পুনরুদ্ধার নিশ্চিত করে।
- Notification:
- Sentinel সার্ভিস নতুন মাস্টার নির্বাচিত হলে, এই পরিবর্তন সম্পর্কে ক্লায়েন্ট বা অ্যাডমিনিস্ট্রেটরদের বিজ্ঞপ্তি পাঠায়।
Sentinel Failover Monitoring and Recovery
Redis Sentinel Failover প্রক্রিয়ার কার্যকারিতা পরীক্ষা করতে কিছু কমান্ড ব্যবহার করা যেতে পারে:
Failover Status চেক করা: Redis Sentinel এর স্ট্যাটাস দেখতে
sentinel failover-statusকমান্ড ব্যবহার করা যায়:redis-cli -p 26379 sentinel failover-status mymasterRedis Sentinel সার্ভার স্বাস্থ্য পরীক্ষা: Sentinel সার্ভারের অবস্থা দেখতে:
redis-cli -p 26379 sentinel mastersএই কমান্ডটি আপনাকে বর্তমান Redis মাস্টার এবং তার রেপ্লিকা সার্ভারের স্ট্যাটাস দেখাবে।
সারাংশ
Redis Sentinel Failover এবং Automatic Recovery প্রক্রিয়া Redis সার্ভারের উচ্চ প্রাপ্যতা এবং স্বয়ংক্রিয় বিপর্যয় পুনরুদ্ধার নিশ্চিত করতে সাহায্য করে। Sentinel সার্ভার মাস্টার সার্ভারের ডাউন হওয়ার সময় নতুন মাস্টার নির্বাচন করে এবং রেপ্লিকা সার্ভারগুলো সিঙ্ক্রোনাইজ করে, যাতে Redis সার্ভারের ডাউনটাইম কমে এবং সার্ভার দ্রুত পুনরুদ্ধার হতে পারে। Redis Sentinel ব্যবহারে আপনি আপনার Redis ইনফ্রাস্ট্রাকচারকে আরও স্থিতিশীল এবং নির্ভরযোগ্য করতে পারবেন।
Read more