Multi-Server কনফিগারেশন এবং সেটআপ

Multi-Server Management - পিএইচপি মাইএডমিন (PHP MyAdmin) - Database Tutorials

379

Multi-Server কনফিগারেশন একটি পরিবেশে একাধিক সার্ভার ব্যবহারের প্রক্রিয়া, যেখানে বিভিন্ন সার্ভার একে অপরের সাথে সমন্বয় করে কাজ করে। এটি সাধারণত হাই অ্যাভেলিবিলিটি, লোড ব্যালান্সিং, এবং স্কেলেবিলিটি নিশ্চিত করার জন্য ব্যবহৃত হয়। যখন একটি সিস্টেমের ট্রাফিক বৃদ্ধি পায় অথবা একটি সার্ভারের উপর বেশি চাপ পড়ে, তখন Multi-Server কনফিগারেশন একটি কার্যকরী সমাধান হিসেবে কাজে আসে।

Multi-Server কনফিগারেশন বিভিন্ন ধরনের হতে পারে, যেমন:

  • Load Balancing (লোড ব্যালান্সিং): একাধিক সার্ভারের মধ্যে ট্রাফিক বণ্টন করা।
  • Database Replication (ডাটাবেস রিপ্লিকেশন): একাধিক ডাটাবেস সার্ভারের মধ্যে ডেটা সিঙ্ক্রোনাইজ করা।
  • Failover Systems (ফেইলওভার সিস্টেম): যদি এক সার্ভার অচল হয়ে যায়, অন্য সার্ভারটি কাজ চালিয়ে যাবে।

এখানে, MySQL বা MariaDB ডাটাবেসের জন্য Multi-Server কনফিগারেশন কিভাবে করা যায়, সে সম্পর্কে বিস্তারিত আলোচনা করা হবে।


MySQL Multi-Server কনফিগারেশন

MySQL বা MariaDB ডাটাবেসের Multi-Server কনফিগারেশন সাধারণত Replication এবং Load Balancing এর মাধ্যমে করা হয়। এখানে ডাটাবেসের একটি প্রধান সার্ভার (Master) এবং এক বা একাধিক প্রতিলিপি (Replica) সার্ভার থাকবে।

১. Master-Slave Replication সেটআপ করা

Master-Slave Replication হল একটি সিস্টেম যেখানে একটি সার্ভার (Master) সমস্ত ডেটা লেখে এবং একাধিক সার্ভার (Slave) সেই ডেটার কপি রাখে। এটি ডাটাবেসের লোড কমাতে সাহায্য করে এবং ডেটা রিড করার জন্য স্লেভ সার্ভার ব্যবহৃত হয়।

Master Server কনফিগারেশন
  1. my.cnf ফাইল কনফিগার করুন
    my.cnf ফাইলের মধ্যে নিম্নলিখিত সেটিংস যুক্ত করুন:

    [mysqld]
    server-id = 1
    log-bin = /var/log/mysql/mysql-bin.log
    bind-address = 0.0.0.0
    binlog-do-db = your_database_name
    
  2. Replication User তৈরি করুন
    MySQL এ Replication এর জন্য একটি বিশেষ ব্যবহারকারী তৈরি করুন:

    CREATE USER 'replica_user'@'%' IDENTIFIED BY 'password';
    GRANT REPLICATION SLAVE ON *.* TO 'replica_user'@'%';
    FLUSH PRIVILEGES;
    
  3. Master Server Restart করুন
    MySQL সার্ভার রিস্টার্ট করুন:

    sudo systemctl restart mysql
    
Slave Server কনফিগারেশন
  1. my.cnf ফাইল কনফিগার করুন
    Slave সার্ভারে my.cnf ফাইলের মধ্যে নিম্নলিখিত সেটিংস যুক্ত করুন:

    [mysqld]
    server-id = 2
    replicate-do-db = your_database_name
    
  2. Master থেকে স্লেভে ডেটা সিঙ্ক্রোনাইজ করুন
    • Master সার্ভারে SHOW MASTER STATUS; কমান্ড চালিয়ে লগ ফাইলের নাম এবং পজিশন সংগ্রহ করুন।
    • Slave সার্ভারে নিম্নলিখিত কোড চালান:

      CHANGE MASTER TO
      MASTER_HOST='master_server_ip',
      MASTER_USER='replica_user',
      MASTER_PASSWORD='password',
      MASTER_LOG_FILE='mysql-bin.000001',
      MASTER_LOG_POS=  154;
      START SLAVE;
      
  3. Slave সার্ভার রিস্টার্ট করুন

    sudo systemctl restart mysql
    
  4. Replication Status চেক করুন
    Slave সার্ভারে Replication সঠিকভাবে চলছে কিনা তা দেখতে:

    SHOW SLAVE STATUS\G
    

২. Load Balancing সেটআপ করা

লোড ব্যালান্সিং ব্যবহার করে আপনি সার্ভারগুলোর মধ্যে ট্রাফিক ভাগ করে নিতে পারেন। সাধারণত HAProxy বা NGINX ব্যবহার করে লোড ব্যালান্সিং কনফিগার করা হয়।

HAProxy সেটআপ
  1. HAProxy ইনস্টল করুন

    sudo apt-get install haproxy
    
  2. HAProxy কনফিগারেশন ফাইল এডিট করুন
    /etc/haproxy/haproxy.cfg ফাইলটি খুলুন এবং নিম্নলিখিত কনফিগারেশন যুক্ত করুন:

    global
        log /dev/log local0
        maxconn 200
    
    defaults
        log     global
        option  httplog
        option  dontlognull
        timeout connect 5000ms
        timeout client  50000ms
        timeout server  50000ms
    
    frontend mysql_front
        bind *:3306
        default_backend mysql_back
    
    backend mysql_back
        balance roundrobin
        server master 192.168.1.1:3306 check
        server slave1 192.168.1.2:3306 check
        server slave2 192.168.1.3:3306 check
    
  3. HAProxy সার্ভার রিস্টার্ট করুন

    sudo systemctl restart haproxy
    
NGINX সেটআপ
  1. NGINX ইনস্টল করুন

    sudo apt-get install nginx
    
  2. NGINX কনফিগারেশন ফাইল এডিট করুন
    /etc/nginx/nginx.conf ফাইলটি খুলুন এবং নিম্নলিখিত কনফিগারেশন যুক্ত করুন:

    http {
        upstream mysql_cluster {
            server 192.168.1.1:3306;
            server 192.168.1.2:3306;
            server 192.168.1.3:3306;
        }
    
        server {
            listen 3306;
            location / {
                proxy_pass http://mysql_cluster;
            }
        }
    }
    
  3. NGINX সার্ভার রিস্টার্ট করুন

    sudo systemctl restart nginx
    

৩. Failover এবং High Availability (HA)

Failover সিস্টেমের মাধ্যমে আপনি এক সার্ভারের অচল হয়ে যাওয়ার পর অন্য সার্ভার থেকে সেবা চালিয়ে যেতে পারেন। MySQL-এ HA ব্যবস্থাপনা করার জন্য MHA (Master High Availability) বা Galera Cluster ব্যবহার করা হয়।

MHA Failover সেটআপ

  1. MHA ইনস্টল করুন
    MHA ক্লাস্টার ব্যবস্থাপনা টুল হিসেবে ব্যবহৃত হয় যা MySQL-এর জন্য High Availability (HA) সরবরাহ করে।
  2. MHA কনফিগারেশন এবং ম্যানেজার ইনস্টল করুন
    MHA ম্যানেজার এবং Node ইনস্টল করে একটি HA ক্লাস্টার তৈরি করুন।

সারাংশ

Multi-Server কনফিগারেশন এবং সেটআপ একটি শক্তিশালী পদ্ধতি, যা ডাটাবেসের পারফরম্যান্স উন্নত করতে এবং উচ্চ উপলভ্যতা (HA) নিশ্চিত করতে সহায়তা করে। MySQL Replication, Load Balancing, এবং Failover Systems ব্যবহার করে সার্ভারের লোড ভারসাম্য রক্ষা করা এবং সার্ভার ব্যর্থতার পরেও সেবা চালিয়ে যাওয়া সম্ভব। PHPMyAdmin এবং HAProxy বা NGINX ব্যবহার করে এসব কনফিগারেশন বাস্তবায়ন করা যেতে পারে।

Content added By
Promotion

Are you sure to start over?

Loading...