Redis Sentinel এবং Failover Management রেডিসের উচ্চ উপলব্ধতা এবং সার্ভারের ব্যর্থতার সময়ে ডেটার ধারাবাহিকতা বজায় রাখতে গুরুত্বপূর্ণ ভূমিকা পালন করে। রেডিস Sentinel এমন একটি সিস্টেম যা Failover Management নিশ্চিত করতে সাহায্য করে এবং এটি মূলত ইনস্ট্যান্ট ফেইলওভার এবং ক্লাস্টারের সুস্থতা পর্যবেক্ষণ করতে ব্যবহৃত হয়। চলুন বিস্তারিতভাবে দেখে নেওয়া যাক কীভাবে Redis Sentinel এবং Failover Management কাজ করে।
Redis Sentinel Overview
Redis Sentinel হলো রেডিসের একটি অটোমেটিক ফেইলওভার এবং মনিটরিং সিস্টেম যা রেডিস সার্ভারের কার্যকারিতা এবং উচ্চ উপলব্ধতা নিশ্চিত করে। এটি একাধিক রেডিস সার্ভারের স্বাস্থ্যের পর্যবেক্ষণ করে এবং যখনই কোনও সার্ভার ব্যর্থ হয়, তখন এটি ফেইলওভার প্রক্রিয়া শুরু করে এবং স্লেভ সার্ভারকে মাষ্টার হিসেবে প্রমোট করে।
Sentinel এর কাজের মধ্যে রয়েছে:
- মনিটরিং (Monitoring): রেডিস সার্ভারগুলির স্বাস্থ্যের পর্যবেক্ষণ করে, অর্থাৎ এটি প্রতিনিয়ত মাষ্টার এবং স্লেভ সার্ভারগুলির অবস্থার অবলোকন করে।
- ফেইলওভার (Failover): যদি মাষ্টার সার্ভার ব্যর্থ হয়, তখন Sentinel একটি স্লেভ সার্ভারকে প্রমোট করে নতুন মাষ্টার হিসেবে সেট করে।
- কনফিগারেশন প্রোভাইডার (Configuration Provider): ক্লায়েন্টদের ক্লাস্টারের বর্তমান কনফিগারেশন জানিয়ে দেয় যাতে তারা সঠিক মাষ্টার সার্ভারে সংযোগ করতে পারে।
- নোটিফিকেশন (Notification): যদি কোনো সার্ভারের স্থিতি পরিবর্তন হয় বা ব্যর্থ হয়, Sentinel সিস্টেম অ্যাডমিনকে নোটিফাই করে।
Redis Sentinel কাজ করার পদ্ধতি
১. Sentinel Configuration
Redis Sentinel চালু করার জন্য আপনাকে sentinel.conf কনফিগারেশন ফাইল তৈরি করতে হবে। এই ফাইলের মধ্যে আপনি Sentinel সার্ভারের জন্য বিভিন্ন সেটিংস কনফিগার করতে পারবেন। একটি সাধারণ কনফিগারেশন উদাহরণ নিচে দেওয়া হলো:
port 26379 # Sentinel সার্ভারের পোর্ট
sentinel monitor mymaster 127.0.0.1 6379 2 # মাষ্টার সার্ভারকে মনিটর করুন
sentinel down-after-milliseconds mymaster 5000 # 5 সেকেন্ডের মধ্যে যদি মাষ্টার সাড়া না দেয়, তাহলে এটি ব্যর্থ হিসেবে চিহ্নিত হবে
sentinel failover-timeout mymaster 10000 # ফেইলওভার চলাকালীন সময় 10 সেকেন্ড হবে
sentinel parallel-syncs mymaster 1 # ফেইলওভার চলাকালীন একাধিক স্লেভ একসাথে সিঙ্ক্রোনাইজ হবে না
২. Sentinel-এ সার্ভার মনিটরিং
Redis Sentinel সার্ভারের অবস্থান এবং তার সাথে যুক্ত স্লেভদের সম্পর্কে মনিটরিং করে থাকে। উদাহরণস্বরূপ:
sentinel monitor mymaster 127.0.0.1 6379 2
এখানে:
mymasterহলো মাষ্টার সার্ভারের নাম।127.0.0.1হলো মাষ্টার সার্ভারের IP ঠিকানা।6379হলো মাষ্টার সার্ভারের পোর্ট নম্বর।2হলো Sentinel সার্ভারগুলোর সংখ্যার একাধিক কপি মাষ্টারের সাথে যোগাযোগ করে নির্ভরযোগ্য ফেইলওভার পরিচালনার জন্য।
৩. Sentinel Failover Mechanism
যদি Sentinel মাষ্টার সার্ভারের অবস্থা পর্যবেক্ষণ করার পর জানায় যে সার্ভারটি ব্যর্থ হয়েছে, তাহলে Failover প্রক্রিয়া শুরু হয়। Failover প্রক্রিয়াটি স্লেভ সার্ভারকে নতুন মাষ্টার সার্ভার হিসেবে প্রমোট করার মাধ্যমে সম্পন্ন হয়।
এটি বাস্তবায়ন করা হয় নিম্নলিখিত উপায়ে:
- মাস্টার ব্যর্থ হলে: Sentinel নতুন মাষ্টার নির্বাচনের জন্য স্লেভ সার্ভার নির্বাচন করবে।
- স্লেভ সার্ভার প্রমোশন: স্লেভ সার্ভারটি নতুন মাষ্টার হিসেবে নির্বাচন হবে এবং তার কাছে সমস্ত মাষ্টার সার্ভারের ডেটা সিঙ্ক্রোনাইজ করা হবে।
- Sentinel Notification: ক্লায়েন্টদের বর্তমান মাষ্টার সার্ভারের তথ্য দিয়ে তাদের অবগত করা হবে।
৪. Sentinel ক্লায়েন্টকে নোটিফাই করা
Sentinel মাষ্টারের পরিবর্তন সত্ত্বেও ক্লায়েন্টদের অবগত রাখতে পারে, তাই ক্লায়েন্টরা সর্বদা সঠিক মাষ্টার সার্ভারের সাথে সংযুক্ত থাকতে পারে। ক্লায়েন্টরা Sentinel এর সাথে সংযুক্ত থাকলে, Sentinel স্বয়ংক্রিয়ভাবে তাদের নতুন মাষ্টার সার্ভারের তথ্য প্রদান করবে।
Redis Failover Management
Failover Management হল একটি প্রক্রিয়া যার মাধ্যমে সার্ভার ব্যর্থ হলে অন্য একটি সার্ভার স্বয়ংক্রিয়ভাবে কার্যক্রম গ্রহণ করে। Redis-এর Failover Management মূলত Sentinel ব্যবস্থার অংশ, এবং এটি মাষ্টার সার্ভারের ব্যর্থতার পরেও সিস্টেমের অ্যাভেইলেবিলিটি নিশ্চিত করতে সাহায্য করে।
Failover Management প্রক্রিয়া:
- মাস্টার ব্যর্থতা: যখন মাষ্টার সার্ভার কাজ করা বন্ধ করে দেয় বা ব্যর্থ হয়, Sentinel তা সনাক্ত করে।
- স্লেভ সার্ভার নির্বাচন: Sentinel একটি স্লেভ সার্ভার নির্বাচন করে, যা নতুন মাষ্টার হিসেবে প্রমোট হবে।
- স্লেভ প্রমোশন: নির্বাচিত স্লেভ সার্ভারটি নতুন মাষ্টার হিসেবে প্রমোট করা হয় এবং সেটি মাষ্টার সার্ভারের ডেটা সিঙ্ক্রোনাইজ করে।
- নতুন মাষ্টার সার্ভারে ডেটা রাইটিং: নতুন মাষ্টার সার্ভারে ডেটা লেখা শুরু হয় এবং সিস্টেম কার্যকর থাকে।
- ক্লায়েন্টদের অবহিত করা: Sentinel ক্লায়েন্টদের নতুন মাষ্টার সার্ভারের তথ্য জানায়।
Redis Failover এবং High Availability-এ Redis Sentinel এর ভূমিকা
- Redis Sentinel ব্যর্থ সার্ভারের জন্য স্বয়ংক্রিয় ফেইলওভার পরিচালনা করে, যা High Availability নিশ্চিত করে। যখনই কোনও মাষ্টার ব্যর্থ হয়, Sentinel একটি নতুন মাষ্টার নির্বাচন করে এবং সিস্টেমের পারফরম্যান্স বজায় রাখে।
- High Availability নিশ্চিত করার জন্য, Redis Sentinel এ ক্লায়েন্টদের অবহিত করতে পারে এবং সিস্টেমের মধ্যে পরিবর্তন স্বয়ংক্রিয়ভাবে ঘটাতে পারে।
সারাংশ
- Redis Sentinel একটি Failover Management সিস্টেম, যা রেডিস ক্লাস্টারে উচ্চ উপলব্ধতা এবং অটোমেটিক ফেইলওভার সক্ষম করে।
- এটি মাস্টার সার্ভার ব্যর্থ হলে স্লেভ সার্ভার প্রমোট করে এবং রেডিস সার্ভারগুলির কার্যক্রম সচল রাখে।
- Sentinel রেডিস ক্লায়েন্টদের সঠিক মাস্টার সার্ভার জানাতে সাহায্য করে, যাতে ডেটা সঠিকভাবে অ্যাক্সেস করা যায় এবং সার্ভার অব্যাহত থাকে।
Redis Sentinel একটি উচ্চমাত্রার অভ্যন্তরীণ সিস্টেম ম্যানেজমেন্ট টুল, যা Redis ক্লাস্টার বা সিস্টেমের উচ্চতা নির্ভরযোগ্যতা এবং উপলব্ধতা (high availability and monitoring) নিশ্চিত করতে ব্যবহৃত হয়। এটি মূলত Redis replication এবং failover management এর সাথে সম্পর্কিত। Redis Sentinel একটি সিস্টেমের মধ্যে একাধিক Redis ইনস্ট্যান্সের অবস্থা মনিটর করে এবং যখন কোনো মাস্টার ইনস্ট্যান্স অপ্রাপ্য বা অপ্রত্যাশিতভাবে ডাউন হয়, তখন তা failover পরিচালনা করে এবং নতুন মাস্টার নির্বাচন করে।
Redis Sentinel মূলত তিনটি প্রধান কাজ করে:
- Monitors Redis Servers: এটি Redis সিস্টেমের মাস্টার এবং স্লেভ সার্ভারগুলির অবস্থা মনিটর করে।
- Automatic Failover: যদি মাস্টার সার্ভার ডাউন হয়ে যায়, তাহলে এটি একটি স্লেভ সার্ভারকে নতুন মাস্টার হিসেবে নির্বাচন করে।
- Notification and Alerts: Sentinel ডাউনটাইম বা কোনো সমস্যা হলে সিস্টেম অ্যাডমিন বা ব্যবস্থাপককে নোটিফিকেশন পাঠায়।
Redis Sentinel কেন প্রয়োজন, তা বিস্তারিতভাবে আলোচনা করা হলো:
Redis Sentinel এর প্রয়োজনীয়তা
1. High Availability (উচ্চ উপলব্ধতা)
Redis সিস্টেমে High Availability বা HA খুব গুরুত্বপূর্ণ, কারণ Redis অনেক ওয়েব অ্যাপ্লিকেশন এবং ডেটাবেস সিস্টেমের জন্য ডেটা স্টোরেজ হিসেবে ব্যবহৃত হয়, যা খুব দ্রুত ডেটা রিটার্ন করতে সক্ষম। একটি Redis মাস্টার সার্ভারের ডাউন হওয়া সিস্টেমের পুরো কার্যক্ষমতা থামিয়ে দিতে পারে। Redis Sentinel নিশ্চিত করে যে, কোনো Redis মাস্টার ডাউন হলে, সিস্টেমের কোনো প্রভাব না পড়ে, কারণ এটি স্বয়ংক্রিয়ভাবে একটি স্লেভ সার্ভারকে নতুন মাস্টার হিসেবে নির্বাচন করবে।
2. Automatic Failover (স্বয়ংক্রিয় ফেইলওভার)
Redis Sentinel স্বয়ংক্রিয়ভাবে ফেইলওভার পরিচালনা করে। এর মানে হলো, যখন Redis মাস্টার সার্ভার কোনো কারণে অপ্রত্যাশিতভাবে ডাউন হয়ে যায়, তখন Sentinel একটি স্লেভ সার্ভারকে নতুন মাস্টার হিসেবে নির্বাচন করবে। এটি ডেটা অখণ্ডতা এবং সিস্টেমের কার্যক্ষমতা বজায় রাখতে সাহায্য করে।
- Sentinel তার পর্যবেক্ষণ সিস্টেমের মাধ্যমে মাস্টার ইনস্ট্যান্সের স্বাস্থ্য পরীক্ষা করে এবং যদি সেটি ডাউন হয়, তাহলে একটি স্লেভ ইনস্ট্যান্সকে নির্বাচন করে।
3. Monitoring and Alerting (মনিটরিং এবং এলার্টিং)
Redis Sentinel ইনস্ট্যান্সগুলির স্বাস্থ্য এবং পারফরম্যান্স মনিটর করে। এটি ডাউন সার্ভার বা সিস্টেমের অবস্থা সম্পর্কে আগেই সতর্কতা পাঠাতে পারে। Sentinel কোনও Redis সার্ভারের অবস্থা পরিবর্তিত হলে এটি রেডিস অ্যাডমিন বা ইউজারকে নোটিফিকেশন পাঠানোর মাধ্যমে সতর্ক করে।
4. Scalability (স্কেলেবিলিটি)
Redis Sentinel ক্লাস্টারের একাধিক Redis সার্ভার পরিচালনা করতে সহায়তা করে। যখন আপনার Redis ক্লাস্টার বৃদ্ধি পায় বা আপনি একাধিক Redis ইনস্ট্যান্স ব্যবহার করেন, তখন Sentinel সেই সার্ভারগুলির মধ্যে সমন্বয় বজায় রাখে এবং উপযুক্ত ফেইলওভার সিস্টেম তৈরি করে। এটি সিস্টেমের স্কেলেবিলিটি এবং লোড ব্যালেন্সিং নিশ্চিত করে।
5. Simplified Redis Cluster Management (Redis ক্লাস্টার ব্যবস্থাপনা সহজ করা)
Redis Sentinel আপনার Redis ক্লাস্টার বা ইনস্ট্যান্সের কার্যক্রম পরিচালনা এবং কনফিগারেশন সহজ করে দেয়। এটি মাস্টার এবং স্লেভ সার্ভারগুলির মধ্যে ট্রাফিক রাউটিং, ডেটা সিঙ্ক্রোনাইজেশন এবং ফেইলওভার পদ্ধতি আরও সহজ করে দেয়।
6. Data Integrity (ডেটা অখণ্ডতা)
Redis Sentinel ডেটা অখণ্ডতা বজায় রাখতে সাহায্য করে, কারণ এটি একটি ডাউন মাস্টার সার্ভার পুনরুদ্ধার করার সময় শুধুমাত্র অখণ্ড এবং সিঙ্ক্রোনাইজড ডেটা সহ স্লেভ সার্ভারকে নতুন মাস্টার হিসেবে নির্বাচন করে। এইভাবে, ডেটা হারানোর সম্ভাবনা কমে যায়।
Redis Sentinel কনফিগারেশন
Redis Sentinel কনফিগারেশনের জন্য একটি কনফিগারেশন ফাইল ব্যবহার করা হয়, যেমন sentinel.conf। এই ফাইলের মাধ্যমে আপনি Sentinel কে আপনার মাস্টার এবং স্লেভ সার্ভার কনফিগার করতে বলবেন এবং failover এর কনফিগারেশন সেট করতে পারবেন।
Sentinel.conf উদাহরণ
port 26379 # Sentinel এর পোর্ট
sentinel monitor mymaster 127.0.0.1 6379 2 # মনিটর করতে বলুন (Master IP এবং পোর্ট, quorum)
sentinel down-after-milliseconds mymaster 5000 # যদি মাস্টার 5 সেকেন্ডের জন্য ডাউন থাকে, তাহলে failover হবে
sentinel parallel-syncs mymaster 1 # 1টি স্লেভ থেকে সিঙ্ক্রোনাইজেশন হবে
sentinel failover-timeout mymaster 10000 # Failover Timeout (10 সেকেন্ড)
এটি Redis Sentinel কনফিগারেশনে একটি মাস্টার সার্ভারের নির্দিষ্ট IP এবং পোর্ট মনিটর করে এবং failover পরিচালনা করতে সাহায্য করে।
Redis Sentinel এর মূল বৈশিষ্ট্য
- Master-Slave Monitoring: Redis Sentinel মাস্টার এবং স্লেভ সার্ভারের অবস্থা পর্যবেক্ষণ করে।
- Automatic Failover: একটি ডাউন মাস্টার সার্ভারকে স্বয়ংক্রিয়ভাবে স্লেভ সার্ভার দ্বারা প্রতিস্থাপন করা।
- Sentinel Clustering: একাধিক Sentinel ইন্সট্যান্সের মাধ্যমে Redis ক্লাস্টার ম্যানেজমেন্ট।
- Notification and Alerts: Sentinel অবস্থা পরিবর্তন হলে নোটিফিকেশন প্রদান করে।
- Client Reconfiguration: Redis ক্লায়েন্টগুলি নতুন মাস্টার সার্ভারের সাথে পুনঃসংযোগ করে।
সারাংশ
Redis Sentinel একটি অত্যন্ত গুরুত্বপূর্ণ টুল, যা High Availability নিশ্চিত করতে ব্যবহৃত হয়। এটি Redis মাস্টার এবং স্লেভ সার্ভারের অবস্থা মনিটর করে এবং মাস্টার সার্ভার ডাউন হয়ে গেলে একটি স্লেভ সার্ভারকে নতুন মাস্টার হিসেবে নির্বাচিত করে। Sentinel ব্যবহার করার মাধ্যমে আপনি Redis সার্ভারের সিস্টেমের স্থিতিশীলতা এবং পারফরম্যান্স বৃদ্ধি করতে পারেন, এবং তা পুরোপুরি স্বয়ংক্রিয়ভাবে পরিচালনা করতে পারেন।
Redis Sentinel হলো একটি সিস্টেম যা Redis-এ High Availability (HA) এবং Automatic Failover প্রদান করে। এটি Redis ক্লাস্টার বা একাধিক Redis সার্ভারের মধ্যে পর্যবেক্ষণ, ব্যাকআপ এবং পুনরুদ্ধারের কাজ করে। Redis Sentinel আপনাকে master-slave replication সেটআপে automatic failover এবং monitoring সুবিধা প্রদান করে।
Redis Sentinel কনফিগারেশন
Redis Sentinel কনফিগারেশন মূলত একটি বিশেষ কনফিগারেশন ফাইলের মাধ্যমে পরিচালিত হয়, যেখানে Sentinel সার্ভার কনফিগার করা হয় এবং কোন Master সার্ভার পর্যবেক্ষণ করবে তা নির্ধারণ করা হয়। এছাড়া, Sentinel failover প্রক্রিয়া নিয়ন্ত্রণ করে, যখন Master সার্ভার কাজ না করে তখন এটি স্বয়ংক্রিয়ভাবে একটি নতুন Master নির্বাচিত করে।
Sentinel কনফিগারেশন ফাইল তৈরি করা
Sentinel কনফিগারেশন ফাইল তৈরি করুন: Redis Sentinel কনফিগারেশন ফাইলটি সাধারনত
sentinel.confনামে থাকে। প্রথমেsentinel.confফাইল তৈরি করুন:sudo nano /etc/redis/sentinel.confSentinel কনফিগারেশন সেট করা:
এখানে কিছু গুরুত্বপূর্ণ কনফিগারেশন অপশন যা Sentinel ফাইলে যোগ করা হয়:
monitor: Sentinel-কে কোন Master সার্ভার পর্যবেক্ষণ করতে হবে তা নির্দেশ করে। এটি Master সার্ভারের নাম, IP এবং পোর্ট, এবং কনফিগারেশন প্যারামিটার হিসেবে quorum (যতগুলো Sentinel প্রয়োজন, নতুন Master নির্বাচন করতে) উল্লেখ করা হয়।
sentinel monitor mymaster 127.0.0.1 6379 2এই উদাহরণে:
mymaster: মূল Redis সার্ভারের নাম।127.0.0.1: মাস্টার Redis সার্ভারের IP ঠিকানা।6379: মাস্টার Redis সার্ভারের পোর্ট নম্বর।2: Quorum। এখানে, যেহেতু এটি 2 সেট করা, Sentinel 2 জন Sentinel সার্ভারের নিশ্চিতকরণে স্বয়ংক্রিয়ভাবে failover শুরু করবে।
down-after-milliseconds: এই প্যারামিটারটি নির্ধারণ করে যে কত মিলিসেকেন্ড পর Sentinel Master সার্ভারকে ডাউন হিসেবে চিহ্নিত করবে।
sentinel down-after-milliseconds mymaster 30000failover-timeout: এটি নির্ধারণ করে failover প্রক্রিয়া কত সময়ের মধ্যে সম্পন্ন হবে।
sentinel failover-timeout mymaster 180000notification-script: Sentinel যদি কোন Master সার্ভার ডাউন হিসেবে চিহ্নিত করে, তবে একটি স্ক্রিপ্ট চালাতে এটি কনফিগার করা যায়, যা আপনাকে নোটিফিকেশন পাঠাতে সাহায্য করবে।
sentinel notification-script mymaster /path/to/your/script.sh- client-reconfig-script: এটি failover প্রক্রিয়া শেষে রেপ্লিকা সার্ভারকে ক্লায়েন্ট কনফিগার করার জন্য ব্যবহার করা হয়।
auth-pass: যদি আপনার Redis সার্ভারে পাসওয়ার্ড থাকে, তবে এটি সেট করতে পারেন:
sentinel auth-pass mymaster yourpassword
Sentinel সার্ভার চালু করা: কনফিগারেশন ফাইল তৈরি এবং সংরক্ষণ করার পর, Sentinel সার্ভার চালু করতে:
redis-server /etc/redis/sentinel.conf --sentinelএই কমান্ডটি Redis Sentinel সার্ভিস চালু করবে, যা আপনার Master সার্ভার পর্যবেক্ষণ করবে এবং প্রয়োজনীয় অবস্থায় failover পরিচালনা করবে।
Redis Sentinel Monitoring
Redis Sentinel একটি পর্যবেক্ষণ (monitoring) সিস্টেম সরবরাহ করে যা Redis ক্লাস্টারের সমস্ত সার্ভারের স্বাস্থ্যের অবস্থা চেক করে। Sentinel সার্ভারগুলোর মধ্যে সমন্বয় করে এবং Master সার্ভার ডাউন হলে, একটি নতুন Master নির্বাচন করে।
Sentinel মনিটরিং পরিচালনা করা
Sentinel ক্লায়েন্টের মাধ্যমে মনিটরিং: Sentinel ক্লায়েন্ট ব্যবহার করে আপনি Redis Sentinel সার্ভিসের অবস্থা এবং Master-Slave সম্পর্ক মনিটর করতে পারেন।
redis-cli -p 26379 sentinel mastersএই কমান্ডটি আপনাকে Sentinel দ্বারা পর্যবেক্ষণ করা সকল Masters এর তালিকা দেখাবে।
Sentinel থেকে Master সার্ভারের অবস্থা দেখা: Sentinel সার্ভারের অবস্থা দেখতে:
redis-cli -p 26379 sentinel sentinel mymasterএটি
mymasterসার্ভারের অবস্থা এবং তথ্য দেখাবে, যেমন এই সার্ভারটি কাজ করছে, failover বা কোন সমস্যা আছে কিনা।Sentinel থেকে Quorum এবং Failover তথ্য দেখা: Sentinel সার্ভারের স্ট্যাটাস সম্পর্কে আরও বিস্তারিত তথ্য দেখতে:
redis-cli -p 26379 sentinel failover-timeout mymasterএটি failover timeout এর বিস্তারিত দেখাবে।
Sentinel লগ ফাইল পরীক্ষা করা: Sentinel এর লগ ফাইল থেকে, আপনি failover, Master এবং Slave সার্ভারের অবস্থাসহ অন্যান্য কার্যকলাপ দেখতে পারবেন।
Redis Sentinel এর লগ ফাইলটি সাধারণত
/var/log/redis/sentinel.logবা যেখানে আপনি কনফিগার করেছেন সেখানে পাওয়া যাবে।
Failover প্রক্রিয়া এবং Recovery
Redis Sentinel এর মূল কাজ হল automatic failover। যখন একটি Master সার্ভার ডাউন হয়ে যায়, Sentinel স্বয়ংক্রিয়ভাবে একটি Replica সার্ভারকে Master হিসেবে নির্বাচিত করে। Failover প্রক্রিয়া শেষ হওয়ার পরে, নতুন Master সার্ভারটি ডেটা পুনরুদ্ধার করবে এবং পুরানো Master (যদি পুনরুদ্ধার করা যায়) একে রেপ্লিকা হিসেবে পুনরায় কনফিগার হবে।
Failover Process:
- Sentinel প্রথমে মূল Redis সার্ভার (Master) এর স্বাস্থ্য পরীক্ষা করে।
- যদি Redis Master সার্ভার কাজ না করে, Sentinel রেপ্লিকা সার্ভার থেকে একটি নতুন Master নির্বাচন করে।
- নতুন Master নির্বাচন হওয়ার পর, এটি ডেটা লিখন শুরু করে এবং পুরানো Master আবার রেপ্লিকা হিসেবে কনফিগার হয়।
- Sentinel failover প্রক্রিয়া সম্পন্ন হওয়া পর্যন্ত লোড ব্যালান্সিং এবং ক্লায়েন্ট অ্যাক্সেস চালিয়ে যায়।
সারাংশ
Redis Sentinel একটি অত্যন্ত কার্যকরী উপাদান যা Redis সার্ভারের জন্য High Availability এবং Automatic Failover নিশ্চিত করে। এটি সার্ভার মনিটরিং, failover প্রক্রিয়া, এবং ডেটাবেস সিস্টেমের স্থিতিশীলতা নিশ্চিত করার জন্য ব্যবহৃত হয়। Sentinel কনফিগারেশন এবং Monitoring এর মাধ্যমে আপনি আপনার Redis ক্লাস্টারকে আরও দক্ষভাবে পরিচালনা করতে পারবেন এবং প্রয়োজনীয় সময় ডেটার নিরাপত্তা নিশ্চিত করতে পারবেন।
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 ইনফ্রাস্ট্রাকচারকে আরও স্থিতিশীল এবং নির্ভরযোগ্য করতে পারবেন।
রেডিস সেন্টিনেল (Redis Sentinel) একটি অত্যন্ত গুরুত্বপূর্ণ এবং শক্তিশালী টুল যা রেডিস ক্লাস্টার পরিচালনা এবং তার সুরক্ষা নিশ্চিত করতে ব্যবহৃত হয়। এটি হাই অ্যাভেইলেবিলিটি (High Availability) এবং ফেইলওভার (Failover) এর জন্য ব্যবহৃত হয়, এবং রেডিসের সার্ভিসের পারফরম্যান্স ও স্থিতিশীলতা বজায় রাখতে সহায়তা করে। রেডিস সেন্টিনেল মূলত মাস্টার-স্লেভ রেপ্লিকেশন (Master-Slave Replication) ব্যবস্থার সাথে কাজ করে, এবং একটি সমস্যা হলে এটি অটোমেটিক্যালি মাস্টার নোডের রেপ্লিকা হিসেবে অন্য একটি নোডকে উত্থাপন করে।
Redis Sentinel ব্যবহারের উদ্দেশ্য
- হাই অ্যাভেইলেবিলিটি: রেডিস ক্লাস্টারের উচ্চ আপটাইম নিশ্চিত করতে সাহায্য করে। যদি মাস্টার নোড ডাউন হয়ে যায়, সেন্টিনেল অন্য স্লেভ নোডকে নতুন মাস্টার হিসেবে নির্বাচন করবে।
- অটোমেটিক ফেইলওভার: মাস্টার নোডে কোনো সমস্যা হলে, সেন্টিনেল অটোমেটিক্যালি স্লেভ নোডকে মাস্টার হিসেবে প্রমোট করে এবং সিস্টেমের কার্যক্ষমতা বজায় রাখে।
- মনিটরিং: সেন্টিনেল সার্ভারের স্বাস্থ্য এবং কার্যক্ষমতা মনিটর করে। এটি মাস্টার এবং স্লেভ নোডগুলোর স্টেটাস ট্র্যাক করে।
- কনফিগারেশন পরিবর্তন: সেন্টিনেল ক্লাস্টারের কনফিগারেশন পরিবর্তন করার জন্য ব্যবহৃত হতে পারে, যেমন নতুন নোড যোগ করা বা পুরনো নোড বাদ দেওয়া।
Redis Sentinel স্থাপন (Setup)
Redis Sentinel সেটআপ করতে আপনাকে প্রথমে Redis Cluster তৈরি করতে হবে, যেখানে কয়েকটি রেডিস সার্ভার থাকবে (এটি Master এবং Slave নোডের সাথে কাজ করবে)। এরপর, Redis Sentinel ইনস্টল এবং কনফিগার করতে হবে।
১. Redis Sentinel ইনস্টলেশন
Redis Sentinel রেডিসের অংশ হিসেবে আসে, তাই আপনাকে রেডিস ইনস্টল করতে হবে। তবে, সেন্টিনেল এর কনফিগারেশন আলাদা। নিচে রেডিস এবং সেন্টিনেল ইনস্টল করার নির্দেশিকা দেওয়া হলো:
Redis ইনস্টলেশন:
sudo apt-get update sudo apt-get install redis-server- Sentinel কনফিগারেশন ফাইল তৈরি: রেডিসের sentinel.conf কনফিগারেশন ফাইলটি আলাদা থাকবে। এই ফাইলে সেন্টিনেলের জন্য বিভিন্ন সেটিংস কনফিগার করা হবে।
২. Redis Sentinel কনফিগারেশন
Redis Sentinel কনফিগারেশন ফাইল (sentinel.conf) এ কিছু গুরুত্বপূর্ণ সেটিংস রয়েছে, যা আপনাকে রেডিস ক্লাস্টার পরিচালনা করতে সাহায্য করবে। নিচে কিছু গুরুত্বপূর্ণ কনফিগারেশন প্যারামিটার উল্লেখ করা হলো:
1. sentinel monitor:
এটি সেন্টিনেলকে একটি মাস্টার নোড মনিটর করার নির্দেশ দেয়। এখানে মাস্টারের আইপি, পোর্ট, এবং সংখ্যাগত কনফিগারেশন উল্লেখ করতে হবে।
sentinel monitor mymaster 127.0.0.1 6379 2
এর মানে:
mymaster: মাস্টার নোডের নাম127.0.0.1: মাস্টার নোডের আইপি6379: মাস্টার নোডের পোর্ট2: কুইরামের (quorum) সংখ্যা, যার মানে হলো কমপক্ষে 2 সেন্টিনেল সিস্টেমকে মাস্টার হিসাবে নির্বাচিত করতে হবে।
2. sentinel down-after-milliseconds:
এই প্যারামিটারটি সেন্টিনেলকে নির্দেশ দেয়, মাস্টার নোড ডাউন হলে কত সময় পরে ফেইলওভার শুরু করবে।
sentinel down-after-milliseconds mymaster 10000
এর মানে হলো, 10 সেকেন্ড (10000 মিলিসেকেন্ড) পরে যদি মাস্টার নোডের কোনো উত্তর না পাওয়া যায়, তবে সেন্টিনেল ফেইলওভার শুরু করবে।
3. sentinel failover-timeout:
এটি নির্ধারণ করে যে ফেইলওভারের সময়কাল কত হতে হবে। যদি সেন্টিনেল নতুন মাস্টার নির্বাচন করতে 30 সেকেন্ড সময় নেয়, তবে:
sentinel failover-timeout mymaster 30000
4. sentinel parallel-syncs:
এটি নির্ধারণ করে কতগুলো স্লেভ একযোগে নতুন মাস্টারের সাথে সিঙ্ক্রোনাইজ হবে।
sentinel parallel-syncs mymaster 1
৩. Redis Sentinel চালানো
সেন্টিনেল কনফিগারেশন ফাইল তৈরি করার পর, সেন্টিনেল সার্ভারটি চালু করতে হবে। এই কমান্ডটি ব্যবহার করুন:
redis-server /path/to/sentinel.conf --sentinel
এটি সেন্টিনেলকে চালু করবে এবং এটি মনিটর করতে শুরু করবে।
৪. Redis Sentinel failover প্রক্রিয়া
যখন কোনো মাস্টার নোড ডাউন হয়ে যায় এবং সেন্টিনেল সেটিকে সঠিকভাবে চিনতে পারে, তখন এটি একটি নতুন মাস্টার নির্বাচিত করবে এবং স্লেভ নোডগুলিকে সেই নতুন মাস্টারের সাথে সিঙ্ক্রোনাইজ করবে। এই প্রক্রিয়াটি অটোমেটিক ফেইলওভার (Automatic Failover) নামে পরিচিত।
- নতুন মাস্টার নির্বাচিত হওয়া: সেন্টিনেল একটি স্লেভ নোডকে নতুন মাস্টার হিসেবে নির্বাচন করবে।
- স্লেভ সিঙ্ক্রোনাইজেশন: সেন্টিনেল স্লেভ নোডগুলিকে নতুন মাস্টারের সাথে সিঙ্ক্রোনাইজ করতে বলবে।
- ক্লায়েন্ট রিডাইরেকশন: ক্লায়েন্টদের নতুন মাস্টার নোডের দিকে রিডাইরেক্ট করা হবে।
৫. Sentinel ব্যবস্থাপনা এবং মনিটরিং
রেডিস সেন্টিনেল ক্লাস্টারকে মনিটর করতে, আপনি redis-cli ব্যবহার করে SENTINEL কমান্ডগুলো চালাতে পারেন।
SENTINEL masters: মাস্টার নোডের তালিকা দেখুন।
SENTINEL mastersSENTINEL slaves: একটি নির্দিষ্ট মাস্টারের স্লেভ নোডগুলোর তালিকা দেখুন।
SENTINEL slaves mymasterSENTINEL failover: ম্যানুয়ালি ফেইলওভার শুরু করতে:
SENTINEL failover mymaster
সারাংশ
- Redis Sentinel হল একটি অত্যন্ত গুরুত্বপূর্ণ উপাদান যা রেডিস ক্লাস্টারের হাই অ্যাভেইলেবিলিটি এবং ফেইলওভার পরিচালনা করে।
- সেন্টিনেল একটি মাস্টার নোডের কার্যক্রম মনিটর করে এবং যদি মাস্টার নোড ডাউন হয়, এটি একটি নতুন মাস্টার নির্বাচিত করে এবং সিস্টেমের পারফরম্যান্স বজায় রাখে।
- সেন্টিনেল কনফিগারেশন ফাইলে বিভিন্ন সেটিংস (যেমন
sentinel monitor,sentinel down-after-milliseconds,sentinel failover-timeout) ব্যবহার করে আপনি আপনার রেডিস ক্লাস্টারের কার্যক্রম কাস্টমাইজ করতে পারেন।
Read more