溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

LVS+keepalived的安裝部署怎么完成mysql的負(fù)載均衡

發(fā)布時間:2021-11-16 14:00:48 來源:億速云 閱讀:203 作者:柒染 欄目:MySQL數(shù)據(jù)庫

LVS+keepalived的安裝部署怎么完成mysql負(fù)載均衡,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

 試驗環(huán)境:

LVS1:192.168.9.27

LVS2:192.168.9.28

keepalived  的VIP:192.168.9.230

要分發(fā)的mysql1: 192.168.9.29

要分發(fā)的mysql2:192.168.9.30

具體安裝步驟:

#下載ipvsadm (也就是LVS程序包)

wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz

#解壓

[root@lvs-a ~]# tar -zxf ipvsadm-1.24.tar.gz

#進(jìn)入該ipvsadm目錄  

[root@lvs-a ~]# cd /usr/local/ipvsadm-1.24

#安裝開發(fā)包及庫文件

[root@lvs-a ipvsadm-1.24]# # yum install zlib-devel gcc gcc-c++ openssl-devel pcre-devel libtool kernel-devel ncurses-devel -y

#創(chuàng)建內(nèi)核連接

[root@lvs-a ipvsadm-1.24]# ln -sv /usr/src/kernels/2.6.18-194.el5-i686/ /usr/src/linux  #2.6.18-194.el5-i686)根據(jù)系統(tǒng)版本修改。

#編譯安裝

[root@lvs-a ipvsadm-1.24]# make;make install

#進(jìn)入目錄

[root@lvs-a ~]# cd  /usr/local/

#下載keepalived

wget http://www.keepalived.org/software/keepalived-1.1.17.tar.gz

#解壓

[root@lvs-a ipvsadm-1.24]# tar -zxf keepalived-1.2.12.tar.gz

#進(jìn)入該keepalived目錄

[root@lvs-a ~]cd keepalived-1.2.12

#編譯安裝

[root@lvs-a keepalived-1.2.12]#./configure --prefix=/usr/local/keepalived  #這里編譯完后面顯示三個yes,說明編譯成功,否則安裝不成功。

#以下為1.2.12版本./configure結(jié)果如下

LVS+keepalived的安裝部署怎么完成mysql的負(fù)載均衡

#如果為1.1.17版本./configure結(jié)果如下

 LVS+keepalived的安裝部署怎么完成mysql的負(fù)載均衡

[root@lvs-a keepalived-1.2.12]#make

[root@lvs-a keepalived-1.2.12]#make install

#復(fù)制啟動文件

[root@lvs-a keepalived-1.2.12]#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived  /etc/init.d/    ##這樣才能用service keepalived 的命令。

#復(fù)制命令文件

[root@lvs-a keepalived-1.2.12]#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

#復(fù)制【配置文件

[root@lvs-a keepalived-1.2.12]#cp /usr/local/keepalived/etc/sysconfig/keepalived  /etc/sysconfig/

#新建主配置文件目錄

[root@lvs-a keepalived-1.2.12]#mkdir -p /etc/keepalived

#編輯配置文件LVS1

[root@lvs-a sysconfig]#vim  /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   router_id lvs
}

vrrp_sync_group http {                            #設(shè)置vrrp組,隨便起名字,
group {
           mysql                                             ###隨便起的名字
         }
}

vrrp_instance apache {                          ###定義一個vrrp實例
    state MASTER                                     #設(shè)置lvs的狀態(tài), MASTERBACKUP兩種,必須大寫,主節(jié)點master,從節(jié)點backup
    interface eth0                                      #設(shè)置對外服務(wù)的接口,也就是/LVS監(jiān)控的網(wǎng)絡(luò)接口
    virtual_router_id 01                             #設(shè)置lvs監(jiān)聽的接口,同一實例下virtual_router_id必須相同 ,隨便起名字
    priority 500                                          # #設(shè)置優(yōu)先級,數(shù)值越大,優(yōu)先級越高 ,也就是主節(jié)點的這個值大
    advert_int 1                                          ## //MASTERBACKUP負(fù)載均衡器之間同步檢查的時間間隔,單位是秒 

    authentication {                                   #設(shè)置驗證類型和密碼
        auth_type PASS                                 
        auth_pass aabb                                ##密碼
    }
    virtual_ipaddress {                          ##設(shè)置keepalived的VIP
        192.168.9.230                           #如果有多個,往下加就行了 

        #192.168.9.231

        #192.168.9.232

   }

}

virtual_server 192.168.9.230 3306 {               ##定義虛擬服務(wù)器 
    delay_loop 6                                              #健康檢查時間,單位是秒。
    lb_algo rr                                                   #負(fù)載調(diào)度算法,這里設(shè)置為rr,即輪詢算法
    lb_kind DR                                                 #LVS實現(xiàn)負(fù)載均衡的機(jī)制,可以有NAT、TUNDR三個模式可選 
    nat_mask 255.255.255.0                             #可以不填寫這個參數(shù),
#    persistence_timeout 50
    protocol TCP

    real_server 192.168.9.29 3306 {                      ##要分發(fā)的目標(biāo)服務(wù)器IP,
        weight 1                                                        #設(shè)置權(quán)重,也就是分發(fā)的次數(shù),這里表示每個分發(fā)一次,
        TCP_CHECK {                                                  #通過tcpcheck判斷RealServer的健康狀態(tài) 
              connect_timeout 3                                     ##連接超時時間 

              #nb_get_retry 3                                           #重連次數(shù) ,有默認(rèn)值
              #delay_before_retry 3                                #
重連間隔時間    有默認(rèn)值                       
              connect_port 3306
            }
        }
    real_server 192.168.9.30 3306 {
        weight 1
        TCP_CHECK {
              connect_timeout 3
              connect_port 3306
            }
        }
}

#配置完成重啟keepalived

[root@lvs-a sysconfig]#service keepalived restart

#添加自己的網(wǎng)關(guān)

[root@lvs-a network-scripts]# route add -host 192.168.9.254  dev eth0


 #安裝keepalivedlvs1相同

 #安裝keepalived后配置LVS2,配置如下:

[root@lvs-b ~]# cat /etc/keepalived/keepalived.conf 

! Configuration File for keepalived

global_defs {
   router_id lvs
}

vrrp_sync_group http {
group {
           mysql
         }
}

vrrp_instance apache {
    state BACKUP 
    interface eth0
    virtual_router_id 01
    priority 400
    advert_int 1
 #  nopreempt
    authentication {
        auth_type PASS
        auth_pass aabb
    }
    virtual_ipaddress {
        192.168.9.230
    }
}

virtual_server 192.168.9.230 3306 {
    delay_loop 6
    lb_algo rr
    lb_kind DR
    nat_mask 255.255.255.0
#    persistence_timeout 50
    protocol TCP

    real_server 192.168.9.29 3306 {
        weight 1
        TCP_CHECK {
              connect_timeout 3
              connect_port 3306
            }
        }
    real_server 192.168.9.30 3306 {
        weight 1
        TCP_CHECK {
              connect_timeout 3
              connect_port 3306
            }
        }
}

       

#配置完成重啟keepalived

service keepalived restart

#添加自己的網(wǎng)關(guān)

route add -host 192.168.9.254  dev eth0

#查看

route -n

#查看分發(fā)結(jié)果

Ipvsadm -ln

#清除分發(fā)

Ipvsadm -C

#查看虛擬ipVIP

Ip addr

#配置 mysql-realserver1  在192.168.9.29上執(zhí)行:

[root@lvs-a ~]# ifconfig lo:0 192.168.9.230 netmask 255.255.255.0  broadcast 192.168.9.230 up       ##設(shè)置的一個臨時的IP

設(shè)置到主機(jī)的路由

[root@lvs-b ~]# route add -host 192.168.9.230 dev lo:0

設(shè)置默認(rèn)路由

[root@lvs-b ~]#route add default gw 192.168.9.137   

保證arp協(xié)議在連接過程中,路由器上,只知道網(wǎng)絡(luò)中192.168.9.230對應(yīng)的是分發(fā)器

[root@lvs-b ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore           

[root@lvs-b ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

#配置 mysql-realserver2  在192.168.9.30上執(zhí)行:

[root@lvs-a ~]# ifconfig lo:0 192.168.9.230 netmask 255.255.255.0  broadcast 192.168.9.230 up 

設(shè)置到主機(jī)的路由

[root@lvs-a ~]#route add -host 192.168.9.230 dev lo:0

設(shè)置默認(rèn)路由

[root@lvs-a ~]#route add default gw 192.168.153.137

保證arp協(xié)議在連接過程中,路由器上,只知道網(wǎng)絡(luò)中192.168.9.230對應(yīng)的是分發(fā)器

[root@lvs-a ~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore           

[root@lvs-a ~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

#兩臺mysql-realserver配置完成后啟動分別mysql

Service mysqld start

LVS分發(fā)測試:

1,在  mysql-realserver1(192.168.9.29)  創(chuàng)建一個名字叫做slave1的數(shù)據(jù)庫:

mysql> create database slave1;

Query OK, 1 row affected (0.00 sec)

2,在mysql-realserver2  (192.168.9.30)上創(chuàng)建一個名字叫做slave2的數(shù)據(jù)庫:

mysql> create database slave2  ; 

Query OK, 1 row affected (0.00 sec)

3,在一臺能ping通mysql-realserver1和mysql-realserver2的機(jī)器上執(zhí)行(注意不要在正在用著的lvs機(jī)器上執(zhí)行,例如我現(xiàn)在lvs用著[root@lvs-a ~]#這個機(jī)器,如果你在這里執(zhí)行他會報錯

[root@lvs-a ~]#  mysql -uroot -pliuwenhe -h292.168.9.230 -e'show databases';
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.9.230' (111)
You have new mail in /var/spool/mail/root

[root@lvs-b ~]# mysql -uroot -pliuwenhe -h292.168.9.230 -e'show databases';

+--------------------+
| Database           |
+--------------------+
| information_schema | 
| he                 | 
| liuwenhe           | 
| mysql              | 
| performance_schema | 
| slave1             | 
| test               | 
+--------------------+
[root@lvs-b ~]# mysql -uroot -pliuwenhe -h292.168.9.230 -e'show databases';
+--------------------+
| Database           |
+--------------------+
| information_schema | 
| he                 | 
| liuwenhe           | 
| mysql              | 
| performance_schema | 
| slave2             | 
| test               | 
+--------------------+

 說明lvs分發(fā)成功。

看完上述內(nèi)容,你們掌握LVS+keepalived的安裝部署怎么完成mysql的負(fù)載均衡的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI