Galera Cluster হল একটি মাল্টি-নোড ক্লাস্টারিং প্রযুক্তি যা MariaDB বা MySQL এর জন্য ব্যবহার করা হয়। এটি ডেটাবেস ক্লাস্টারিংয়ের জন্য ** synchronous replication** সমর্থন করে, যার মানে হল যে সমস্ত নোডের মধ্যে ডেটা পরিবর্তন সিঙ্ক্রোনাইজ করা হয়। Galera Cluster এর মাধ্যমে ডেটাবেসের উচ্চ স্থায়ীত্ব (high availability) এবং স্কেলেবিলিটি নিশ্চিত করা সম্ভব।
Galera Cluster ইনস্টল ও কনফিগারেশন খুবই গুরুত্বপূর্ণ, কারণ এটি ডেটাবেসের পারফরম্যান্স এবং স্থিতিশীলতা প্রভাবিত করতে পারে। নিচে Galera Cluster ইনস্টল এবং কনফিগার করার বিস্তারিত প্রক্রিয়া দেওয়া হলো।
১. Galera Cluster ইনস্টলেশন
Galera Cluster ইনস্টল করতে আপনাকে একাধিক সার্ভার (নোড) সেটআপ করতে হবে। সাধারণত, কমপক্ষে তিনটি নোডের ক্লাস্টার তৈরি করা হয়, যাতে কোনো একটি নোড ডাউন হলে অন্য নোডগুলোর মাধ্যমে সার্ভিস চালু থাকে।
১.১. প্রারম্ভিক প্রস্তুতি
প্রথমে নিশ্চিত করুন যে আপনার সার্ভারগুলিতে MariaDB ইনস্টল করা আছে এবং সকল সার্ভার একে অপরের সাথে যোগাযোগ করতে পারবে।
আপনি যদি Linux (উদাহরণস্বরূপ, Ubuntu) ব্যবহার করেন, তবে MariaDB ও Galera ইনস্টল করার জন্য নিচের পদক্ষেপ অনুসরণ করুন:
১.২. MariaDB এবং Galera ইনস্টল করা
MariaDB এবং Galera প্যাকেজ যোগ করুন:
MariaDB এর জন্য অফিসিয়াল রিপোজিটরি ব্যবহার করুন।
sudo apt-get install software-properties-common sudo add-apt-repository ppa:mariadb/mariadb-10.5 sudo apt updateGalera ইনস্টল করুন:
MariaDB 10.1 বা তার পরবর্তী সংস্করণের সাথে Galera Cluster ইনস্টল করা যাবে। Galera প্যাকেজটি MariaDB-র সাথে যুক্ত থাকে, কিন্তু আপনাকে এক্সপ্লিসিটভাবে Galera ইনস্টল করতে হবে।
sudo apt-get install mariadb-server galera-4 mariadb-client- সমস্ত নোডে একই MariaDB সংস্করণ ইনস্টল করা উচিত, তাই নিশ্চিত করুন যে আপনার ক্লাস্টারে সকল সার্ভারে একই সংস্করণ আছে।
২. Galera Cluster কনফিগারেশন
২.১. MariaDB কনফিগ ফাইল কনফিগারেশন
প্রত্যেক নোডের /etc/mysql/my.cnf বা /etc/my.cnf ফাইল খুলে নিচের কনফিগারেশনগুলো যোগ করুন। এটি সমস্ত নোডে কনফিগার করতে হবে।
[mysqld]
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so
wsrep_cluster_address="gcomm://IP_of_Node1,IP_of_Node2,IP_of_Node3"
wsrep_cluster_name="my_galera_cluster"
wsrep_node_address="IP_of_this_node"
wsrep_node_name="node1" # প্রতিটি নোডের জন্য আলাদা নাম দিন
wsrep_sst_method=rsync
wsrep_sst_auth="sstuser:password" # SST (State Snapshot Transfer) এর জন্য ব্যবহারকারী এবং পাসওয়ার্ড
binlog_format=row
innodb_flush_log_at_trx_commit=2
innodb_doublewrite=1
innodb_autoinc_lock_mode=2
কনফিগারেশন বর্ণনা:
wsrep_on=ON: Galera replication সক্রিয় করার জন্য।wsrep_provider: Galera-র প্রোভাইডার লাইব্রেরির পাথ।wsrep_cluster_address: ক্লাস্টারের সমস্ত নোডের IP ঠিকানা।wsrep_cluster_name: ক্লাস্টারের নাম।wsrep_node_address: নির্দিষ্ট নোডের IP ঠিকানা।wsrep_node_name: নোডের নাম।wsrep_sst_method: State Snapshot Transfer (SST) পদ্ধতি, এখানেrsyncব্যবহার করা হয়েছে।wsrep_sst_auth: SST-র জন্য প্রয়োজনীয় ব্যবহারকারী এবং পাসওয়ার্ড।binlog_format=row: Row-based binary logging।innodb_flush_log_at_trx_commit=2: ইননোডব লগ ফ্লাশিং কনফিগারেশন।
২.২. SST ব্যবহারকারী তৈরি করা
SST (State Snapshot Transfer) হল ক্লাস্টারের মধ্যে ডেটা সিঙ্ক্রোনাইজেশন প্রক্রিয়া। SST ব্যবহারকারী তৈরি করতে, আপনি Master নোডে নিচের কুয়েরি চালাতে পারেন:
CREATE USER 'sstuser'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'sstuser'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;
এটি SST প্রক্রিয়ার জন্য একটি ব্যবহারকারী তৈরি করবে এবং অন্যান্য নোডগুলোকে সিঙ্ক্রোনাইজেশনের জন্য অনুমতি দেবে।
৩. Galera Cluster শুরু করা
৩.১. প্রথম নোড শুরু করা (Bootstrap)
প্রথম নোড (Master) শুরু করার জন্য, আপনি --wsrep-new-cluster ফ্ল্যাগ ব্যবহার করবেন, যা Galera ক্লাস্টারকে বুটস্ট্র্যাপ করে শুরু করবে।
sudo systemctl start mariadb --wsrep-new-cluster
এটি প্রথম নোডের জন্য Galera ক্লাস্টার শুরু করবে। এখন থেকে অন্যান্য নোডগুলি ক্লাস্টারের অংশ হিসেবে যোগ করতে পারবেন।
৩.২. পরবর্তী নোডগুলো যোগ করা
অন্য নোডগুলোর জন্য systemctl start mariadb কমান্ড ব্যবহার করতে হবে, কোনো অতিরিক্ত ফ্ল্যাগ ছাড়াই। এটি স্বয়ংক্রিয়ভাবে প্রথম নোডে সংযুক্ত হবে এবং ক্লাস্টার সমন্বয়ের জন্য গালেরা কনফিগারেশন ব্যবহার করবে।
sudo systemctl start mariadb
৪. Galera Cluster-এর স্ট্যাটাস চেক করা
ক্লাস্টার সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করতে, আপনি SHOW STATUS কুয়েরি ব্যবহার করতে পারেন।
SHOW STATUS LIKE 'wsrep%';
এটি গালেরা সম্পর্কিত সমস্ত স্ট্যাটাস তথ্য প্রদর্শন করবে, যেমন:
wsrep_cluster_size: ক্লাস্টারে মোট নোডের সংখ্যা।wsrep_cluster_status: ক্লাস্টারের স্ট্যাটাস (Primary, Non-primary, etc.)wsrep_ready: গালেরা ক্লাস্টার প্রস্তুত কিনা।
৫. Galera Cluster মনিটরিং এবং ট্রাবলশ্যুটিং
- Replication Lag: ক্লাস্টার ব্যবস্থাপনায় replication lag হতে পারে, বিশেষ করে বড় ট্রানজেকশন বা বড় ডেটা পরিবর্তনের সময়। আপনি
SHOW SLAVE STATUSএবংSHOW STATUS LIKE 'wsrep%'কুয়েরি ব্যবহার করে ল্যাগ চেক করতে পারেন। - Cluster Partitioning: ক্লাস্টার পার্টিশনিং হতে পারে, যেখানে নোডগুলোর মধ্যে যোগাযোগ বিঘ্নিত হয়। এটি সাধারণত নেটওয়ার্ক সমস্যা অথবা সার্ভারের ভারি লোডের কারণে হতে পারে।
- Node Recovery: যদি কোনো নোড ক্লাস্টার থেকে বিচ্ছিন্ন হয়ে যায়, তবে আপনি
wsrep_cluster_sizeএবংwsrep_node_incoming_addressকুয়েরি ব্যবহার করে নোড রিকভারি করতে পারেন।
সারাংশ
MariaDB Galera Cluster একটি শক্তিশালী সিঙ্ক্রোনাস রিপ্লিকেশন সলিউশন, যা উচ্চ স্থায়ীত্ব, স্কেলেবিলিটি এবং ডেটাবেস রেডান্ডেন্সি নিশ্চিত করে। এটি বিশেষভাবে উপকারী যখন আপনি উচ্চ লোড এবং ডাউনটাইম-মুক্ত সার্ভিস চান। Galera Cluster ইনস্টল এবং কনফিগার করার জন্য সঠিক নোড কনফিগারেশন, SST ব্যবহারকারী তৈরি এবং নেটওয়ার্ক সেটআপ অত্যন্ত গুরুত্বপূর্ণ। wsrep এবং systemctl এর মাধ্যমে কনফিগারেশন এবং মনিটরিং করা যেতে পারে।
Read more