Load Balancing এবং Failover Management হলো উচ্চ উপলব্ধতা (High Availability) এবং দক্ষ ডেটাবেস ব্যবস্থাপনার জন্য গুরুত্বপূর্ণ কৌশল। MariaDB-তে এই দুটি কৌশল ব্যবহার করা হয় যাতে সার্ভারের লোড সমানভাবে বিতরণ করা যায় এবং সার্ভারের কোনো সমস্যা হলে অন্য সার্ভারটি স্বয়ংক্রিয়ভাবে চালু হয়, ফলে ডাউনটাইম কমে যায় এবং সিস্টেমের স্থিতিশীলতা বৃদ্ধি পায়।
1. Load Balancing (লোড ব্যালান্সিং)
লোড ব্যালান্সিং এর মাধ্যমে MariaDB ক্লাস্টারে একাধিক সার্ভারের মধ্যে ট্রাফিক বা কুয়েরি সমানভাবে বিতরণ করা হয়। এটি ডেটাবেসের পারফরম্যান্স বাড়াতে সহায়ক, কারণ একক সার্ভারে অতিরিক্ত লোড না দিয়ে এটি সার্ভারের মধ্যে ব্যালান্স করতে সাহায্য করে।
লোড ব্যালান্সিংয়ের জন্য সাধারণ কৌশল
- ডাটাবেস রেপ্লিকেশন: ডেটাবেস রেপ্লিকেশন ব্যবহার করে একাধিক রিড (read) সার্ভার তৈরি করা হয়, যেখানে একাধিক সার্ভার শুধুমাত্র পড়া (read) কুয়েরি পরিচালনা করবে। রাইট (write) কুয়েরি শুধুমাত্র প্রধান (Master) সার্ভারে যাবে। এই কৌশলটি লোডের ভারসাম্য বজায় রাখতে সহায়ক।
ProxySQL ব্যবহার করা: ProxySQL একটি MariaDB এবং MySQL ক্লাস্টারের জন্য উন্নত লোড ব্যালান্সিং এবং রুটিং সিস্টেম। এটি ক্লায়েন্ট কুয়েরিগুলোকে রাইট এবং রিড সার্ভারে সঠিকভাবে বিতরণ করতে সাহায্য করে।
- ProxySQL ব্যবহার করে, আপনি রাইট এবং রিড সার্ভারগুলোর জন্য আলাদা কনফিগারেশন করতে পারবেন, যার মাধ্যমে রাইট কুয়েরি শুধুমাত্র মাস্টার সার্ভারে যাবে এবং রিড কুয়েরি রেপ্লিকা সার্ভারে যাবে।
উদাহরণ
ProxySQL কনফিগারেশন করতে নিচের পদক্ষেপ অনুসরণ করুন:
ProxySQL ইনস্টলেশন:
sudo apt-get install proxysql- ProxySQL কনফিগার করা: MariaDB-র মাস্টার এবং রেপ্লিকা সার্ভারগুলো যোগ করুন এবং কুয়েরি রাউটিং কনফিগার করুন।
2. Failover Management (ফেলওভার ম্যানেজমেন্ট)
Failover হলো এমন একটি প্রক্রিয়া, যেখানে একটি সার্ভার যদি অপ্রত্যাশিতভাবে ডাউন হয়ে যায়, তাহলে অন্য একটি সার্ভার স্বয়ংক্রিয়ভাবে তার কার্যক্রম চালু করতে থাকে। MariaDB-তে Failover সেটআপ সাধারণত রেপ্লিকেশন সিস্টেমের সাথে সম্পন্ন করা হয়, যেখানে মাস্টার সার্ভার ডাউন হলে একটি রেপ্লিকা সার্ভারকে নতুন মাস্টার হিসেবে স্বয়ংক্রিয়ভাবে প্রোমোট (promote) করা হয়।
Failover এর জন্য সাধারণ কৌশল
MHA (Master High Availability) এর ব্যবহার: MHA (Master High Availability) একটি জনপ্রিয় টুল যা MariaDB (MySQL)-এর জন্য উচ্চ উপলব্ধতা এবং স্বয়ংক্রিয় ফেলওভার সলিউশন প্রদান করে। এটি মাস্টার সার্ভার ডাউন হলে একটি রেপ্লিকা সার্ভারকে নতুন মাস্টার হিসেবে প্রোমোট করে এবং ক্লাস্টারটি পুনরুদ্ধার করে।
- MHA ব্যবহারে আপনি সহজেই MariaDB-এর মাস্টার সার্ভারের ব্যর্থতার পর রেপ্লিকাকে নতুন মাস্টার হিসেবে প্রোমোট করতে পারবেন।
MHA কনফিগারেশন উদাহরণ:
MHA ইনস্টল করা:
sudo apt-get install mha4mysql-node- MHA কনফিগারেশন ফাইল তৈরি: MHA কনফিগারেশন ফাইলে সার্ভারগুলোর আইপি এবং অন্যান্য তথ্য নির্দিষ্ট করুন।
Galera Cluster ব্যবহার করা: Galera Cluster একটি শক্তিশালী সমন্বিত ক্লাস্টারিং প্রযুক্তি, যা MariaDB-র জন্য স্বয়ংক্রিয় ফেলওভার এবং সমান্তরাল রেপ্লিকেশন নিশ্চিত করে। এটি একাধিক সার্ভারে ডেটার সিঙ্ক্রোনাইজেশন তৈরি করে এবং সার্ভারের ব্যর্থতা ঘটলে অন্য সার্ভারটি স্বয়ংক্রিয়ভাবে মাস্টার হিসেবে প্রোমোট হয়।
Galera Cluster কনফিগারেশন:
Galera Cluster ইনস্টল করা: MariaDB-তে Galera Cluster ইনস্টল করতে নিম্নলিখিত কমান্ড ব্যবহার করুন:
sudo apt-get install mariadb-server galera-4Galera কনফিগারেশন ফাইল (my.cnf):
[mysqld] wsrep_on=ON wsrep_cluster_address="gcomm://node1_ip,node2_ip,node3_ip" wsrep_cluster_name="my_galera_cluster" wsrep_node_address="node_ip" wsrep_node_name="node_name"Cluster চালু করা:
systemctl restart mariadb
Galera Cluster ক্লাস্টারে একটি সার্ভার ডাউন হলে, অন্য সার্ভারটি একই ডেটা দিয়ে কাজ চালিয়ে যেতে পারে এবং ব্যর্থতার সময় ডেটা হারানো এড়ানো যায়।
3. Automating Failover
Failover স্বয়ংক্রিয়ভাবে পরিচালনার জন্য আপনাকে কিছু টুল এবং স্ক্রিপ্ট ব্যবহার করতে হতে পারে যা সার্ভারের স্বাস্থ্য মনিটর করে এবং ব্যর্থ হলে অটোমেটিক্যালি ফেলওভার প্রক্রিয়া শুরু করে। নিচে দুটি জনপ্রিয় টুলের উদাহরণ দেওয়া হলো:
- Keepalived: Keepalived একটি সিস্টেম যে সার্ভারের স্বাস্থ্য মনিটর করে এবং ব্যর্থতার ক্ষেত্রে একটি ভার্চুয়াল আইপি (VIP) অন্য সার্ভারে স্থানান্তরিত করে। এটি failover পরিচালনা করতে সহায়ক।
Keepalived ইনস্টল করুন:
sudo apt-get install keepalivedKeepalived কনফিগারেশন ফাইল (keepalived.conf):
vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 101 advert_int 1 virtual_ipaddress { 192.168.1.100 } }
- Corosync/Pacemaker: Corosync এবং Pacemaker হল ক্লাস্টার রিসোর্স ম্যানেজার, যা MariaDB ক্লাস্টারে স্বয়ংক্রিয় ফেলওভার পরিচালনা করতে পারে। এগুলো সাধারণত উচ্চ উপলব্ধতার (HA) কনফিগারেশনের জন্য ব্যবহৃত হয়।
সারাংশ
Load Balancing এবং Failover Management MariaDB-তে উচ্চ উপলব্ধতা এবং পারফরম্যান্স নিশ্চিত করার জন্য অত্যন্ত গুরুত্বপূর্ণ। লোড ব্যালান্সিং মাধ্যমে বিভিন্ন সার্ভারে কুয়েরি বিতরণ করা হয় এবং ফেলওভার ম্যানেজমেন্ট মাধ্যমে একটি সার্ভার ব্যর্থ হলে অন্য সার্ভারটি স্বয়ংক্রিয়ভাবে সিস্টেমের কার্যক্রম চালিয়ে যায়। ProxySQL, MHA, Galera Cluster, এবং Keepalived এর মতো টুলস ব্যবহারের মাধ্যমে এই দুটি কৌশল কার্যকরভাবে বাস্তবায়ন করা যায়।
Read more