MySQL 高可用:mysql+Lvs+Keepalived 負載均衡及故障轉移
MySQL 高可用:mysql+Lvs+Keepalived 負載均衡及故障轉移 - KK ——專註數據 - 博客頻道 - CSDN.NET
http://blog.csdn.net/kk185800961/article/details/51115264#
系統信息: mysql主庫 192.168.1.152 CentOS 5.6 mysql 5.6.22 mysql從庫 192.168.1.153 CentOS 5.6 mysql 5.6.22 VIP 192.168.1.150
mysql 主主同步都設置 auto-increment-offset,auto-increment-increment ,以避免自增列沖突。
LVS 下載:
http://www.linuxvirtualserver.org/software/
http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz
Keepalived 下載:
http://www.keepalived.org/software/
http://www.keepalived.org/software/keepalived-1.2.19.tar.gz
yum -y install gcc gcc-c++ gcc-g77 ncurses-devel bison libaio-devel cmake libnl* libpopt* popt-static openssl-devel
# LVS 安裝配置:(yum -y install ipvsadm)
cd /usr/local/src wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz tar zxvf ipvsadm-1.24.tar.gz cd ipvsadm-1.24 ln -s /usr/src/kernels/2.6.18-402.el5-i686/ /usr/src/linux #找自己的目錄看看/usr/src/kernels make&& make install
# Keepalived 安裝配置
cd /usr/local/src wget http://www.keepalived.org/software/keepalived-1.2.19.tar.gz tar zxvf keepalived-1.2.19.tar.gz cd keepalived-1.2.19 ./configure --prefix=/usr/local/keepalived --disable-fwmark make && make install cp /usr/local/keepalived/sbin/keepalived /usr/sbin/ cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/ cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/ mkdir -p /etc/keepalived/ cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
#編輯或者新建(主備除兩地方,其他一樣.備庫改為 :state BACKUP ,priority 50)
vi /etc/keepalived/keepalived.conf
! Configuration File for keepalived global_defs { #全局標識模塊 notification_email { #定義郵件通知 test@163.com #目標郵箱 } notification_email_from test@163.com #發送郵箱 smtp_server 127.0.0.1 #發送郵箱的smtp服務器 smtp_connect_timeout 30 #smtp服務器連接超時時間 router_id LVS_DEVEL } vrrp_instance VI_1 { state MASTER #本實例啟動狀態:MASTER/BACKUP interface eth0 #監控的網絡接口 virtual_router_id 51 #vrrp實例(同一個組主備服務器設置一樣) priority 100 #優先級高的為master,不能超過255。(BACKUP可設置為50) advert_int 1 #均衡器檢測間隔1秒(服務器設置都一樣) authentication { #驗證類型及密碼(服務器設置都一樣) auth_type PASS #認證方式,PASS或AH auth_pass 123456 #認證密碼 } virtual_ipaddress { #虛擬ip地址virtual_ipaddress,可以定義多個 192.168.1.150 } } virtual_server 192.168.1.150 3306 { #定義虛擬服務器,與上面的virtual_server一樣 delay_loop 6 #健康檢查時間間隔,6秒 lb_algo rr #負載均衡調度算法:rr|wrr|lc|wlc|sh|dh|lblc lb_kind NAT #負載均衡轉發規則:NAT|DR|TUN nat_mask 255.255.255.0 persistence_timeout 50 #回話保持時間50秒,動態服務建議開啟 protocol TCP #轉發協議protocol,一般有tcp和udp兩種 #後端真實服務器,有幾臺就設置幾個 real_server 192.168.1.152 3306 { weight 1 #權重越大負載分越大,0表示失效 SSL_GET { #健康檢查方式:HTTP_GET|SSL_GET|TCP_CHECK|SMTP_CHECK|MISC_CHECK connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 192.168.1.153 3306 { weight 1 SSL_GET { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } }
#啟動 keepalived 服務 /etc/rc.d/init.d/keepalived start #添加到rc.local自啟動中 echo "/etc/rc.d/init.d/keepalived start" >> /etc/rc.local
#152服務器IP [[email protected] keepalived]# ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000 link/ether 00:0c:29:3b:c4:a5 brd ff:ff:ff:ff:ff:ff inet 192.168.1.152/24 brd 192.168.1.255 scope global eth0 inet 192.168.1.150/32 scope global eth0
#現在在第三臺mysql服務器中連接VIP測試 #ping VIP 正常 ping 192.168.1.150 #連接到 VIP 正常 mysql -umysqlproxy -pmysqlproxy -h192.168.1.150 --port3306 #到 mysql 服務器 152 和 153 查看進程,查看用戶 mysqlproxy 連接到哪臺服務器 mysql> show processlist; #停止 mysqlproxy 所在的服務器keepalived 服務 /etc/rc.d/init.d/keepalived stop 此時在150 連接的mysql切換到另一臺服務器的mysql數據庫了。 /etc/rc.d/init.d/keepalived start
末尾有些測試還沒有規範,僅供參考。
更多參考:
MySQL 高可用:主主復制(雙主復制)
ipvsadm 安裝配置
mysql高可用探究(二)Lvs+Keepalived+Mysql單點寫入主主同步高可用方案
Lvs+keepalived+mysql 雙主
keepalived配置主從備份
Linux下Keepalived 安裝與配置
CentOS 5.9下安裝配置keepalived
keepalived.conf內容說明
MySQL 高可用:mysql+Lvs+Keepalived 負載均衡及故障轉移