mysql主従+keepalived高可用性
2869 ワード
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ファイルの内容を書き込む:
上記の構成の簡単な説明:
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モジュールがロードされているかどうかは、次の内容が表示されたら、ロードに成功したことを示します.
/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、ファイアウォールが閉鎖されているかどうかなどを確認してください.
まず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モジュールがロードされているかどうかは、次の内容が表示されたら、ロードに成功したことを示します.
/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、ファイアウォールが閉鎖されているかどうかなどを確認してください.