4、Mycat高可用

基於HA機制的Mycat高可用

  在實際項目中,Mycat 服務也需要考慮高可用性,如果 Mycat 所在服務器出現宕機,或 Mycat 服務故障,需要有備機提供服務,需要考慮 Mycat 集羣。

1.高可用方案

  使用 HAProxy + Keepalived 配合兩臺 Mycat 搭起 Mycat 集羣,實現高可用性。HAProxy 實現了 MyCat 多節點的集羣高可用和負載均衡,而 HAProxy 自身的高可用則可以通過 Keepalived 來實現。

  

編號

角色

IP地址

機器名

1

Mycat1

192.168.188.188

host79.pluto

2

Mycat2

192.168.188.189

host80.pluto

3

HAProxy(master)

192.168.188.190

host81.pluto

4

Keepalived(master)

192.168.188.190

host81.pluto

5

HAProxy(backup)

192.168.188.191

host82.pluto

6

Keepalived(backup)

192.168.188.191

host82.pluto

2.安裝配置HAProxy

#1、準備好HAProxy安裝包,傳到/opt目錄下

 

#2、解壓到/usr/local/src

tar -zxvf haproxy-1.5.18.tar.gz -C /usr/local/src

 

#3、進入解壓後的目錄,查看內核版本,進行編譯

cd /usr/local/src/haproxy-1.5.18

uname -r

make TARGET=linux310 PREFIX=/usr/local/haproxy ARCH=x86_64

# ARGET=linux310,內核版本,使用uname -r查看內核,如:3.10.0-514.el7,此時該參數就爲linux310#ARCH=x86_64,系統位數;

#PREFIX=/usr/local/haprpxy #/usr/local/haprpxy,爲haprpxy安裝路徑。

 

#4、編譯完成後,進行安裝

make install PREFIX=/usr/local/haproxy

 

#5、安裝完成後,創建目錄、創建HAProxy配置文件

mkdir -p /usr/data/haproxy/

vim /usr/local/haproxy/haproxy.conf

 

#6向配置文件中插入以下配置信息,並保存

[1].安裝HAProxy

(1).準備好HAProxy安裝包,傳到/opt目錄下

http://www.haproxy.org/download/1.5/src/

[root@host81 /]# cp /mnt/hgfs/VMShare/haproxy-1.5.18.tar.gz /opt/

(2).解壓到/usr/local/src

[root@host81 opt]# tar -zxvf haproxy-1.5.18.tar.gz -C /usr/local/src/

(3).進入解壓的目錄,查看內核版本,進行編譯

[root@host81 ~]# cd /usr/local/src/haproxy-1.5.18/

[root@host81 haproxy-1.5.18]# uname -r

2.6.32-642.el6.x86_64

[root@host81 haproxy-1.5.18]# make TARGET=linux26 PREFIX=/usr/local/haproxy ARCH=x86_64

# ARGET=linux26,內核版本,使用uname -r查看內核,如:2.6.32-642.el6.x86_64

,此時該參數就爲linux26#ARCH=x86_64,系統位數;

#PREFIX=/usr/local/haprpxy #/usr/local/haprpxy,爲haprpxy安裝路徑。

(4).編譯完成後,進行安裝

[root@host81 haproxy-1.5.18]# make install PREFIX=/usr/local/haproxy

(5).安裝完成後,創建目錄、創建HAProxy配置文件

[root@host81 haproxy-1.5.18]# mkdir -p /usr/data/haproxy/

[root@host81 haproxy-1.5.18]# vim /usr/local/haproxy/haproxy.conf

global

  log 127.0.0.1 local0

  #log 127.0.0.1 local1 notice

  #log loghost local0 info

  maxconn 4096

  chroot /usr/local/haproxy

  pidfile /usr/data/haproxy/haproxy.pid

  uid 99

  gid 99

  daemon

  #debug

  #quiet

 

defaults

  log global

  modetcp

  option abortonclose

  option redispatch

  retries 3

  maxconn 2000

  timeout connect 5000

  timeout client 50000

  timeout server 50000

 

listen proxy_status 

  bind :48066

  mode tcp

  balance roundrobin

  server mycat_1 192.168.140.188:8066 check inter 10s

  server mycat_2 192.168.140.189:8066 check inter 10s

 

frontend admin_stats 

  bind :7777

  mode http

  stats enable

  option httplog

  maxconn 10

  stats refresh 30s

  stats uri /admin

  stats auth admin:123456

  stats hide-version

  stats admin if TRUE

[2].啓動驗證

(1).啓動HAProxy

[root@host82 haproxy]# /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.conf

(2).查看HAProxy進程

[root@host82 haproxy]# ps -ef | grep haproxy

nobody    18545      1  0 15:13 ?        00:00:00 /usr/local/haproxy/sbin/haproxy -f /usr/local/haproxy/haproxy.conf

root      18547  16893  0 15:13 pts/0    00:00:00 grep haproxy

(3).打開瀏覽器訪問

http://192.168.188.191:7777/admin

#在彈出框輸入用戶名:admin密碼:123456

#如果Mycat主備機未啓動,則可以看到如下圖

 

(4).驗證負載均衡

 

3.安裝配置Keepalived

[1].安裝Keepalived

(1).準備好Keepalived安裝包,傳到/opt目錄下

https://www.keepalived.org/download.html

(2).解壓到/usr/local/src

tar -zxvf keepalived-1.4.2.tar.gz -C /usr/local/src

(3).安裝依賴插件

yum install -y gcc openssl-devel popt-deve

(4).進入解壓後的目錄,進行配置,進行編譯安裝

cd /usr/local/src/keepalived-1.4.2

./configure --prefix=/usr/local/keepalived

make && make install

(5).運行前配置

cp /usr/local/src/keepalived-1.4.2/keepalived/etc/init.d/keepalived /etc/init.d/

mkdir /etc/keepalived

cp /usr/local/keepalive/etc/keepalived/keepalived.conf /etc/keepalived/

cp /usr/local/src/keepalived-1.4.2/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

cp /usr/local/keepalive/sbin/keepalived /usr/sbin/

(6).配置文件修改

vim /etc/keepalived/keepalived.conf

 

#修改內容如下

! Configuration File for keepalived

global_defs {

  notification_email {

    [email protected]

  }

  notification_email_from [email protected]

  smtp_server 127.0.0.1

  smtp_connect_timeout 30

  router_id LVS_DEVEL

  vrrp_skip_check_adv_addr

  vrrp_garp_interval 0

  vrrp_gna_interval 0

}

vrrp_instance VI_1 {

  #主機配MASTER,備機配BACKUP

  state MASTER

  #所在機器網卡

  interface eth1

  virtual_router_id 51

  #數值越大優先級越高

  priority 100

  advert_int 1

  authentication {

    auth_type PASS

    auth_pass 1111

  }

  virtual_ipaddress {

    #虛擬IP

    192.168.188.200

  } 

}

virtual_server 192.168.188.200 48066 {

  elay_loop 6

  lb_algo rr

  lb_kind NAT

  persistence_timeout 50

  protocol TCP

  real_server 192.168.188.190 48066 {

    weight 1

    TCP_CHECK {

      connect_timeout 3

      retry 3

      delay_before_retry 3

    } 

  }

  real_server 192.168.188.191 48600 {

    weight 1

    TCP_CHECK {

        connect_timeout 3

        nb_get_retry 3

        delay_before_retry 3

    }

  } 

 

}

 

[2].啓動驗證

#1啓動Keepalived

service keepalived start

 

#2登錄驗證

mysql -umycat -p123456 -h 192.168.140.200 -P 48066

4.測試高可用

#1關閉mycat

#2通過虛擬ip查詢數據

mysql -umycat -p123456 -h 192.168.140.200 -P 48066

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章