LVS+Keepalived实现负载均衡和双机热备
歡迎跳轉(zhuǎn)到本文的原文鏈接:https://honeypps.com/backend/lvs-keepalived-standby/
?
?1. 說(shuō)明
???????? 在《keepalived實(shí)現(xiàn)Tomcat服務(wù)雙機(jī)熱備》中主要講述如何安裝及配置Keepalived來(lái)實(shí)現(xiàn)雙機(jī)熱備,主要功能是:MASTER和BACKUP兩臺(tái)服務(wù)器處于熱備狀態(tài),對(duì)用戶虛擬一個(gè)IP,屏蔽底層的真實(shí)IP地址,用戶通過(guò)虛擬IP訪問(wèn)當(dāng)前的MASTER服務(wù)器;當(dāng)MASTER服務(wù)器宕機(jī)或者發(fā)生其他故障時(shí),BACKUP自動(dòng)切換為MASTER,這個(gè)過(guò)程對(duì)用戶時(shí)透明的。
???????? 本文主要講述如何安裝ipvsadm、如何配置LVS+Keepalived實(shí)現(xiàn)負(fù)載均衡和雙機(jī)熱備的功能。功能描述:用戶通過(guò)虛擬IP訪問(wèn)時(shí),應(yīng)當(dāng)會(huì)負(fù)載均衡到主備服務(wù)器上;當(dāng)然,當(dāng)MASTER服務(wù)器宕機(jī)或者發(fā)生其他故障時(shí),BACKUP也會(huì)自動(dòng)切換為MASTER。
2. 安裝及配置
2.1 安裝ipvsadm
???????? 首先安裝ipvsadm,本人用的版本是ipvsadm-1.24-6。可以去相關(guān)網(wǎng)站進(jìn)行下載ipvsadm-1.24-6.src.rpm。
???????? 下面安裝ipvsadm:(將ipvsadm-1.24-6.src.rpm放在根目錄下)
?
[~] rpm -ivh ipvsadm-1.24-6.src.rpm [~] cd /usr/src/redhat/SOURCES [SOURCES] tar -zxvf ipvsadm-1.24.tar.gz [SOURCES] uname -r 2.6.18-238.el5 [SOURCES] ln -s/usr/src/kernels/2.6.18.238.el5-X86_64/ /usr/src/linux [SOURCES] cd ipvsadm-1.24 [ipvsadm-1.24] make; make install?
2.2 配置keepalived.conf
???????? 接著配置keepalived.conf:(具體安裝請(qǐng)參考《keepalived實(shí)現(xiàn)Tomcat服務(wù)雙機(jī)熱備》)
MASTER(10.10.195.53)配置:
?
global_defs {router_id LVS_DEVEL_1 } vrrp_script chk_http_port {script "/opt/tomcat.pid"interval 5weight 2 } vrrp_instance VI_1 {state MASTERinterface eth0virtual_router_id 53priority 150advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_http_port}virtual_ipaddress {10.10.195.212 #VIP} } virtual_server 10.10.195.212 8080 {delay_loop 6lb_algo wrrlb_kind DRprotocol TCPreal_server 10.10.195.53 8080 {weight 1TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 8080}}real_server 10.10.195.190 8080 {weight 1TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 8080}} }?
BACKUP(10.10.195.190)配置:
?
lobal_defs {router_id LVS_DEVEL_2 } vrrp_script chk_http_port {script "/opt/tomcat.pid"interval 5weight 2 } vrrp_instance VI_1 {state BACKUPinterface eth0virtual_router_id 53priority 100advert_int 1authentication {auth_type PASSauth_pass 1111}track_script {chk_http_port}virtual_ipaddress {10.10.195.212} } virtual_server 10.10.195.212 8080 {delay_loop 6lb_algo wrrlb_kind DRprotocol TCPreal_server 10.10.195.53 8080 {weight 1TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 8080}}real_server 10.10.195.190 8080 {weight 1TCP_CHECK {connect_timeout 3nb_get_retry 3delay_before_retry 3connect_port 8080}} }?
2.3 ?LVS腳本配置
???????? 兩臺(tái)WEB服務(wù)器安裝http服務(wù)(tomcat)后,創(chuàng)建文件并賦予權(quán)限,配置lvs腳本,腳本作用是一直ARP廣播,將請(qǐng)求包都由負(fù)載均衡lvs服務(wù)分配。
???????? 主備機(jī)的LVS腳本是相同的。虛擬IP(VIP)是10.10.195.212。下面是腳本的代碼:
?
[~] vim /sbin/realdr.sh?
#!/bin/bashVIP=10.10.195.211 /etc/rc.d/init.d/functionscase "$1" in start)echo "start LVS of REALServer"/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up # /sbin/route add -host $VIP dev 1o:0echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "1" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "2" >/proc/sys/net/ipv4/conf/all/arp_announce ;; stop)echo "close LVS REALServer"/sbin/ifconfig lo:0 down # /sbin/route del -host $VIP dev lo:0echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/lo/arp_announceecho "0" >/proc/sys/net/ipv4/conf/all/arp_ignoreecho "0" >/proc/sys/net/ipv4/conf/all/arp_announce ;; status)islothere=`/sbin/ifconfig lo:0 | grep $VIP | wc -l`isrothere=`netstat -rn | grep "lo:0" | grep $VIP | wc -l` # echo $islothere # echo $isrothereif [ $islothere -eq 0 ]thenif [ $isrothere -eq 0 ]thenecho "LVS of REALServer Stoped."elseecho "LVS of REALServer Running."fielseecho "LVS of REALServer Running."fi ;; *)echo "Usage:$0{start|stop}"exit 1 ;; esac?
?
?
?
?
設(shè)置LVS腳本權(quán)限并運(yùn)行:
?
[~] chmod 755 /sbin/realdr.sh [~] /sbin/realdr.sh start?
3. 查看
3.1查看虛擬ip相關(guān)信息
???????? 之后安裝并啟動(dòng)keepalived:service keepalived start.
???????? 可以通過(guò)使用ip addshow命令查看(以MASTER為例):
?
1: lo: <LOOPBACK,UP,LOWER_UP> mtu16436 qdisc noqueuelink/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host loinet 10.10.195.211/32 brd 10.10.195.211 scope global lo:0 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdisc pfifo_fast qlen 1000link/ether 00:0c:29:6b:f2:a8 brd ff:ff:ff:ff:ff:ffinet 10.10.195.53/24 brd 10.10.195.255 scope global eth0inet 10.10.195.211/32 scope global eth0?
???????? 可以看到lo及eth0上都有虛擬IP地址。
3.2 查看負(fù)載均衡狀態(tài)
在終端輸入命令:ipvsadm可以查看。
MASTER(10.10.195.53):
?
IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 10.10.195.212:webcache wrr-> 10.10.195.190:webcache Route 1 0 11-> shr:webcache Local 1 0 0?
BACKUP(10.10.195.190):
?
IP Virtual Server version 1.2.1 (size=4096) Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 10.10.195.211:webcache wrr-> server1:webcache Local 1 0 0-> 10.10.195.53:webcache Route 1 0 11?
4. 測(cè)試
???????? 如果多次打開(kāi)瀏覽器,通過(guò)虛擬IP訪問(wèn)網(wǎng)站,應(yīng)當(dāng)會(huì)負(fù)載均衡到兩臺(tái)服務(wù)器上。第一次打開(kāi)一個(gè)瀏覽器并輸入http://10.10.195.212:8080/,顯示10.10.195.53(190)服務(wù)的內(nèi)容;第二次打開(kāi)一個(gè)瀏覽器并輸入http://10.10.195.212:8080/,顯示10.10.195.190(53)服務(wù)器的內(nèi)容。
?
歡迎跳轉(zhuǎn)到本文的原文鏈接:https://honeypps.com/backend/lvs-keepalived-standby/
歡迎支持筆者新作:《深入理解Kafka:核心設(shè)計(jì)與實(shí)踐原理》和《RabbitMQ實(shí)戰(zhàn)指南》,同時(shí)歡迎關(guān)注筆者的微信公眾號(hào):朱小廝的博客。總結(jié)
以上是生活随笔為你收集整理的LVS+Keepalived实现负载均衡和双机热备的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 修改Keepalived配置文件位置以及
- 下一篇: 使用VMware VSphere Web