mysql主従+keepalived高可用性


2台のマシン、1台は192.168.223.143がメインで、1台は192.168.223.144がメインで、今実現する需要は2台のマシンがメインで+高可用性で、VIPはここで192.168.223.100に設定します
まず2台の機械にmysqlを入れて、主従のコピーをして、
リファレンスhttp://pc1990.blog.51cto.com/10541224/1687171
 
二、2台の機械にkeepalivedを取り付ける
tar  �Czxvf  keepalived-1.2.7.tar.gz
cd keepalived-1.2.7
yum install  kernel-devel  openssl-devel popt-devel  -y
./configure --prefix=/usr/local/keepalived  --with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.i686/
make &&   make  install
 
コピー起動スクリプト等
cd /usr/local/keepalived
cp  etc/rc.d/init.d/keepalived  /etc/init.d/
cp  etc/sysconfig/keepalived /etc/sysconfig/
cp  sbin/keepalived /usr/sbin/
mkdir /etc/keepalived
 
143マスターで/etc/keepalived/keepalivedを編集する.confファイルの内容を書き込む:
 
!Configuration File forkeepalived
global_defs{ 
   notification_email { 
      [email protected] 
   } 
   smtp_server 127.0.0.1 
   smtp_connect_timeout 30 
   router_id LVS_DEVEL 
} 
#VIP1 
vrrp_instance VI_1 { 
    state  BACKUP    
    interface eth0 
    lvs_sync_daemon_inteface eth0 
   virtual_router_id 151 
    priority 100  
    advert_int 5 
    nopreempt 
    authentication { 
        auth_type PASS 
        auth_pass 2222 
    } 
    virtual_ipaddress { 
        192.168.223.100 
    } 
} 
virtual_server  192.168.223.100 3306 { 
    delay_loop 6    
    lb_algo wrr    
    lb_kind DR   
    persistence_timeout 60    
    protocol TCP         
    real_server 192.168.223.143 3306 { 
        weight 100        
        notify_down /data/sh/mysql.sh 
        TCP_CHECK { 
        connect_timeout 10 
        nb_get_retry 3 
        delay_before_retry 3 
        connect_port  3306 
        } 
    } 
}

 
上記の構成の簡単な説明:
state BACKUPはスタンバイモードとして表され、nopreemptはプリエンプトせず、双方ともスタンバイモードとして配置され、プリエンプトせず、「脳裂」の問題を回避することができ、priority 100は重みであり、数字が高いほど重みが高くなり、双方がBACKUPモードとして配置され、nopreemptが配置されると、keepalivedはこの数字で誰がメインで、誰がスタンバイであるかを判断する
/data/sh/mysqlを作成します.shスクリプト
mkdir/data/sh
vim /data/sh/mysql.shは以下の内容を加える.
#!/bin/bash
/etc/init.d/keepalived  stop
 
chmod  755 /data/sh/mysql.sh
modprobe  ip_vs#ip_のロードvsモジュール仮想IP使用
lsmod |  grep  ip_vs ip_の表示vsモジュールがロードされているかどうかは、次の内容が表示されたら、ロードに成功したことを示します.
wKiom1XeudPgZdzbAAClYuORnE4599.jpg
/etc/init.d/mysqld start#mysqlを起動
/etc/init.d/keepalive start#keepalivedを起動
144での操作は143と同じでkeepalived.confプロファイルでpriority 100をpriority 90に変更
 
real_server 192.168.223.143をreal_に変更server 192.168.223.144、その他は変わらない.
 
VIP状況表示コマンド:ip addr list
 
これでmysqlの主従高はできます.143でmysqlサービスをテストして、vipが144にドリフトするかどうかを見てみましょう.一般的には問題ありません.問題があれば、構成をチェックしてください.手順が間違っているかどうか、selinux、ファイアウォールが閉鎖されているかどうかなどを確認してください.