MariaDB Galera Cluster হল একটি উচ্চ-প্রাপ্যতা এবং স্কেলেবল ডেটাবেস ক্লাস্টারিং প্রযুক্তি, যা MariaDB ডেটাবেসের জন্য তৈরি হয়েছে। এটি সিঙ্ক্রোনাস রিপ্লিকেশন প্রযুক্তি ব্যবহার করে, যার মাধ্যমে একাধিক নোডে ডেটাবেসের কপি সিঙ্ক্রোনাইজড থাকে। Galera Cluster মূলত একটি multi-master replication সিস্টেম, যার ফলে একাধিক সার্ভার (নোড) একসাথে ডেটা গ্রহণ, পরিবর্তন এবং সিঙ্ক্রোনাইজ করার জন্য কাজ করে।
MariaDB Galera Cluster এর বৈশিষ্ট্য
- Multi-Master Replication: Galera Cluster একটি multi-master রিপ্লিকেশন সিস্টেম, যার মানে হল যে একাধিক সার্ভার (নোড) একে অপরের মাস্টার হিসাবে কাজ করে। প্রতিটি নোড ডেটা রাইট (INSERT, UPDATE, DELETE) করতে পারে এবং অন্য নোডে সিঙ্ক্রোনাইজ হয়ে থাকে।
- সিঙ্ক্রোনাস রিপ্লিকেশন: Galera Cluster তে, রাইট অপারেশনগুলিকে সিঙ্ক্রোনাসভাবে সম্পাদন করা হয়। অর্থাৎ, একটি নোডে ডেটা ইনসার্ট, আপডেট বা ডিলিট করার পর তা অন্য সব নোডে একই সময় সিঙ্ক্রোনাইজ হয়ে যায়। এটি নিশ্চিত করে যে সমস্ত নোডে সর্বশেষ ডেটা রয়েছে।
- স্বয়ংক্রিয় ফেইলওভার (Automatic Failover): যদি কোনো নোড ডাউন হয়ে যায়, তবে Galera Cluster স্বয়ংক্রিয়ভাবে অন্য নোডকে প্রধান নোড হিসেবে ব্যবহার করে। এটি ক্লাস্টারের উচ্চ প্রাপ্যতা (High Availability) নিশ্চিত করে এবং সার্ভার ডাউনটাইম কমায়।
- স্কেলিং: Galera Cluster সহজে স্কেল করা যায়। নতুন নোড যোগ করলে, তা স্বয়ংক্রিয়ভাবে ক্লাস্টারে যুক্ত হয়ে যায় এবং অন্যান্য নোডের সঙ্গে ডেটা সিঙ্ক্রোনাইজ করে। এটি ডেটাবেস সিস্টেমের জন্য স্কেলেবিলিটি এবং পারফরম্যান্স বৃদ্ধি করতে সহায়তা করে।
- শান্তিপূর্ণ এবং দ্রুত ডেটা পুনরুদ্ধার: Galera Cluster ডেটা পুনরুদ্ধারের জন্য দ্রুত এবং শান্তিপূর্ণ একটি প্রক্রিয়া প্রস্তাব করে। ডেটার কনসিস্টেন্সি নিশ্চিত করতে এটি প্রয়োজনীয় যেকোনো ডেটা পুনরুদ্ধারের পদক্ষেপ স্বয়ংক্রিয়ভাবে নেয়।
MariaDB Galera Cluster কেন ব্যবহার করা হয়?
- উচ্চ প্রাপ্যতা (High Availability): Galera Cluster এর প্রধান সুবিধা হল এর উচ্চ প্রাপ্যতা। একাধিক নোডে ডেটা সিঙ্ক্রোনাইজ থাকার কারণে যদি একটি নোড ডাউনও হয়ে যায়, অন্য নোডগুলোর মাধ্যমে সিস্টেম চলতে থাকে। এটি ডেটাবেসের ডাউনটাইম কমাতে সাহায্য করে এবং সর্বদা ডেটা অ্যাক্সেসযোগ্য রাখে।
- লোড ব্যালান্সিং (Load Balancing): যেহেতু Galera Cluster একটি multi-master সিস্টেম, তাই আপনি একাধিক সার্ভারে লোড শেয়ার করতে পারেন। রিড এবং রাইট অপারেশন একই সময়ে একাধিক নোডে করা যেতে পারে, যার ফলে ডেটাবেসের পারফরম্যান্স ও স্কেলিবিলিটি বৃদ্ধি পায়।
- ডেটার কনসিস্টেন্সি (Data Consistency): Galera Cluster তে সিঙ্ক্রোনাস রিপ্লিকেশন ব্যবহৃত হওয়ার কারণে, নিশ্চিত হয় যে সমস্ত নোডে ডেটা কনসিস্টেন্ট থাকে। এক নোডে কোনো ডেটা পরিবর্তন হলে, তা দ্রুত অন্যান্য নোডে সিঙ্ক্রোনাইজ হয়ে যায়, যাতে ডেটার কোনো অস্বাভাবিকতা বা ভুল না ঘটে।
- শক্তিশালী ফেইলওভার (Strong Failover): যদি কোনো নোড আচমকাই ডাউন হয়ে যায়, তবে Galera Cluster স্বয়ংক্রিয়ভাবে বাকি নোডগুলোর মধ্যে কার্যক্রম পরিচালনা করতে থাকে। এটি সার্ভারের কার্যক্রম অব্যাহত রাখতে এবং ব্যর্থতা থেকে দ্রুত পুনরুদ্ধারের জন্য গুরুত্বপূর্ণ।
- স্কেলেবিলিটি: যখন ডেটাবেসের লোড বাড়ে, তখন আপনি আরও নোড যুক্ত করতে পারেন, যাতে সিস্টেমের পারফরম্যান্স উন্নত হয়। Galera Cluster এর মাধ্যমে আপনাকে সার্ভারের সংখ্যাও বাড়াতে সাহায্য করে, যা সহজে স্কেল করা যায়।
- সহজ কনফিগারেশন এবং ব্যবস্থাপনা: Galera Cluster এর কনফিগারেশন সাধারণত খুবই সরল। এটি মারিয়া ডিবির সঙ্গে অন্তর্ভুক্ত থাকে এবং কনফিগারেশন ফাইলগুলির মধ্যে সামান্য পরিবর্তন করে সহজেই গ্যালেরা ক্লাস্টার সেটআপ করা যায়।
MariaDB Galera Cluster কনফিগারেশন
MariaDB Galera Cluster কনফিগারেশন কিছু নির্দিষ্ট সেটিংসের মাধ্যমে সম্পন্ন করা হয়। নিচে একটি সাধারন কনফিগারেশন উদাহরণ দেওয়া হলো:
প্রথম নোড কনফিগারেশন:
/etc/mysql/my.cnfফাইলে নিম্নলিখিত কনফিগারেশন যোগ করুন:[mysqld] server-id = 1 wsrep_on = ON wsrep_provider = /usr/lib/galera/libgalera_smm.so wsrep_cluster_address = "gcomm://node1_ip,node2_ip,node3_ip" wsrep_cluster_name = "galera_cluster" wsrep_node_address = "node1_ip" wsrep_node_name = "node1"এখানে:
- server-id: প্রতিটি নোডের একটি আলাদা আইডি থাকতে হবে।
- wsrep_on: Galera ক্লাস্টার সক্রিয় করা হয়।
- wsrep_provider: Galera লাইব্রেরির অবস্থান।
- wsrep_cluster_address: গ্যালেরা ক্লাস্টারের অন্যান্য নোডগুলির আইপি ঠিকানা।
- wsrep_cluster_name: ক্লাস্টারের নাম।
- wsrep_node_address: নোডের আইপি ঠিকানা।
- wsrep_node_name: নোডের নাম।
অন্যান্য নোড কনফিগারেশন:
অন্যান্য নোডে একই কনফিগারেশন যুক্ত করুন, তবে wsrep_node_name এবং wsrep_node_address আলাদা রাখতে হবে।
Galera Cluster সেবা শুরু:
ক্লাস্টার কনফিগারেশনের পর, প্রতিটি নোডে MariaDB সার্ভিস রিস্টার্ট করুন:
sudo systemctl restart mariadbপ্রথম নোডের পরে, অন্যান্য নোডগুলো ক্লাস্টারে যুক্ত হবে এবং ডেটা সিঙ্ক্রোনাইজেশন শুরু হবে।
সারাংশ
MariaDB Galera Cluster হল একটি শক্তিশালী টুল, যা ডেটাবেসের উচ্চ প্রাপ্যতা, লোড ব্যালান্সিং, এবং ডেটার কনসিস্টেন্সি নিশ্চিত করে। এটি multi-master replication এবং সিঙ্ক্রোনাস রিপ্লিকেশন প্রযুক্তি ব্যবহার করে, যার মাধ্যমে একাধিক নোডে একই ডেটাবেস সিঙ্ক্রোনাইজড থাকে। Galera Cluster এর মাধ্যমে আপনি আপনার ডেটাবেস সিস্টেমের পারফরম্যান্স, স্কেলেবিলিটি এবং নির্ভরযোগ্যতা উন্নত করতে পারেন। এটি সহজে কনফিগার করা যায় এবং সার্ভারের ডাউনটাইম কমাতে সাহায্য করে, বিশেষ করে যখন আপনার সিস্টেমের জন্য উচ্চ প্রাপ্যতা প্রয়োজন।
Read more