ipvsadm命令詳解
ipvsadm是ipvs的管理器,需要yum安裝。
程序包:ipvsadm Unit File: ipvsadm.rvice
主程序:/usr/sbin/ipvsadm
規(guī)則保存工具:/usr/sbin/ipvsadm-save
規(guī)則重載工具:/usr/sbin/ipvsadm-restore
配置文件:/etc/sysconfig/ipvsadm-config
ipvs調(diào)度規(guī)則文件:/etc/sysconfig/ipvsadm
ipvsadm核心功能:
管理集群服務(wù):增、改、刪 增、修改:
刪除:
管理集群上的RS:增、改、刪 增、改:
刪:
清空定義的所有內(nèi)容:
清空計數(shù)器:
查看:
ipvs規(guī)則:
ipvs連接:
保存:建議保存至/etc/sysconfig/ipvsadm
重載:
防火墻標記
FWM:FireWall Mark MARK target 可用于給特定的報文打標記 --t-mark value 其中:value 可為0xffff格式,表示十六進制數(shù)字 借助于防火墻標記來分類報文,而后基于標記定義集群服務(wù);可將多個不同的應(yīng)用使用同一個集群服務(wù) 進行調(diào)度 實現(xiàn)方法: 在Director主機打標記:
在Director主機基于標記定義集群服務(wù):
范例:
范例:
ssion 綁定:對共享同一組RS的多個集群服務(wù),需要統(tǒng)一進行綁定,lvs sh算法無法實現(xiàn) 持久連接( lvs persistence )模板:實現(xiàn)無論使用任何調(diào)度算法,在一段時間內(nèi)(默認360s ),能夠 實現(xiàn)將來自同一個地址的請求始終發(fā)往同一個RS
ipvsadm -A|E -t|u|f rvice-address [-s scheduler] [-p [timeout]]
持久連接實現(xiàn)方式:
范例:
如何查看ipvsadm表中內(nèi)容
對ipvsadm 的命令參考,并根據(jù)自己使用的經(jīng)驗,進行了一個簡單的翻譯,希望
對ipvsadm 的使用者有一定的幫助。
為了更好的讓大家理解這份命令手冊,將手冊里面用到的幾個術(shù)語先簡單的介紹
一下:
1,virtual-rvice-address:是指虛擬服務(wù)器的ip 地址
2,real-rvice-address:是指真實服務(wù)器的ip 地址
3,scheduler:調(diào)度方法
命令選項解釋:
有兩種命令選項格式,長的和短的,具有相同的意思。在實際使用時,兩種都可
以。
-A --add-rvice 在內(nèi)核的虛擬服務(wù)器表中添加一條新的虛擬服務(wù)器記錄。也
就是增加一臺新的虛擬服務(wù)器。
-E --edit-rvice 編輯內(nèi)核虛擬服務(wù)器表中的一條虛擬服務(wù)器記錄。
-D --delete-rvice 刪除內(nèi)核虛擬服務(wù)器表中的一條虛擬服務(wù)器記錄。
-C --clear 清除內(nèi)核虛擬服務(wù)器表中的所有記錄。
-R --restore 恢復(fù)虛擬服務(wù)器規(guī)則
-S --save 保存虛擬服務(wù)器規(guī)則,輸出為-R 選項可讀的格式
-a --add-rver 在內(nèi)核虛擬服務(wù)器表的一條記錄里添加一條新的真實服務(wù)器
記錄。也就是在一個虛擬服務(wù)器中增加一臺新的真實服務(wù)器
-e --edit-rver 編輯一條虛擬服務(wù)器記錄中的某條真實服務(wù)器記錄
-d --delete-rver 刪除一條虛擬服務(wù)器記錄中的某條真實服務(wù)器記錄
-L|-l --list 顯示內(nèi)核虛擬服務(wù)器表
-Z --zero 虛擬服務(wù)表計數(shù)器清零(清空當前的連接數(shù)量等)
--t tcp tcpfin udp 設(shè)置連接超時值
--start-daemon 啟動同步守護進程。他后面可以是master 或backup,用來說
明LVS Router 是master 或是backup。在這個功能上也可以采用keepalived 的
VRRP 功能。
--stop-daemon 停止同步守護進程
-h --help 顯示幫助信息
其他的選項:
-t --tcp-rvice rvice-address 說明虛擬服務(wù)器提供的是tcp 的服務(wù)
[vip:port] or [real-rver-ip:port]
-u --udp-rvice rvice-address 說明虛擬服務(wù)器提供的是udp 的服務(wù)
[vip:port] or [real-rver-ip:port]
-f --fwmark-rvice fwmark 說明是經(jīng)過iptables 標記過的服務(wù)類型。
-s --scheduler scheduler 使用的調(diào)度算法,有這樣幾個選項
rr|wrr|lc|wlc|lblc|lblcr|dh|sh|d|nq,
默認的調(diào)度算法是: wlc.
-p --persistent [timeout] 持久穩(wěn)固的服務(wù)。這個選項的意思是來自同一個客
戶的多次請求,將被同一臺真實的服務(wù)器處理。timeout 的默認值為300 秒。
-M --netmask netmask persistent granularity mask
-r --real-rver rver-address 真實的服務(wù)器[Real-Server:port]
-g --gatewaying 指定LVS 的工作模式為直接路由模式(也是LVS 默認的模式)
-i --ipip 指定LVS 的工作模式為隧道模式
-m --masquerading 指定LVS 的工作模式為NAT 模式
-w --weight weight 真實服務(wù)器的權(quán)值
--mcast-interface interface 指定組播的同步接口
-c --connection 顯示LVS 目前的連接 如:ipvsadm -L -c
--timeout 顯示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout
--daemon 顯示同步守護進程狀態(tài)
--stats 顯示統(tǒng)計信息
--rate 顯示速率信息
--sort 對虛擬服務(wù)器和真實服務(wù)器排序輸出
--numeric -n 輸出IP 地址和端口的數(shù)字形式。
通過rpm包安裝的ipvsadm怎么設(shè)置
檢查是否支持
# modprobe -l|grep ipvs
或#lsmod |grep ip_vs
如果在/lib/modules/2.6.18-128.el5/kernel/net/ipv4/ipvs下有很多ip_vs*這樣的文件說明,ipvs模塊已經(jīng)加入。
軟件安裝
一、RPM安裝:
1、根據(jù)內(nèi)核安裝相應(yīng)版本的lvs
下載地址http://www.linuxvirtualrver.org/software
我下載的是ipvsadm-1.24-6.src.rpm
2、修改打包文件
#rpmbuild -bb /usr/src/redhat/SPECS/ipvsadm.spec出現(xiàn):
error: Legacy syntax is unsupported: copyright等錯誤信息時,修改ipvsadm.spec,
將其中的Copyright:標簽改成Licen:即可。
3、創(chuàng)建鏈接文件
#ln -s /usr/src/kernels/2.6.18-128.el5-i686 /usr/src/linux
不創(chuàng)建鏈接會出現(xiàn):libipvs.h:14:23: net/ip_vs.h: No such file or directory等編譯錯誤。
4、#rpmbuild -bb /usr/src/redhat/SPECS/ipvsadm.spec
二、TAR安裝:
#下載軟件
#wget http://www.linuxvirtualrver.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.9-42.EL-i686/ /usr/src/linux
#編譯安裝
#make && make install
#確認安裝成功
#whereis ipvsadm
lvs-dr模式:
配置vip rver
#vi /usr/local/vip.sh
#!/bin/bash
# description: start LVS of DirectorServer
GW=192.168.1.250
# website director vip.
SNS_VIP=192.168.1.244
SNS_RIP1=192.168.1.223
SNS_RIP2=192.168.1.224
. /etc/rc.d/init.d/functions
logger $0 called with $1
ca "$1" in
start)
# t squid vip
#/sbin/ipvsadm --t 30 5 60
/sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP netmask 255.255.255.255 up
/sbin/route add -host $SNS_VIP dev eth0:0
/sbin/ipvsadm -C
/sbin/ipvsadm -A -t $SNS_VIP:80 -s wrr -p 1
#/sbin/ipvsadm -A -t $SNS_VIP:80 -s rr
/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1:80 -g -w 1
#/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1 -g
/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2:80 -g -w 1
#/sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2 -g
/sbin/ipvsadm
touch /var/lock/subsys/ipvsadm >/dev/null 2>&1
;;
stop)
/sbin/ipvsadm -C
/sbin/ipvsadm -Z
ifconfig eth0:0 down
ifconfig eth0:1 down
route del $SNS_VIP
#route del $SS_VIP
rm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1
echo "ipvsadm stoped"
;;
status)
if [ ! -e /var/lock/subsys/ipvsadm ];then
echo "ipvsadm stoped"
exit 1
el
echo "ipvsadm OK"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
啟動ipvsadm服務(wù)
#chmod 777 /usr/local/vip.sh
#/usr/local/vip.sh start
出現(xiàn):
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP localhost:http wrr persistent 1
-> localhost:http Route 1 0 0
-> localhost:http Route 1 0 0
表明ipvsadm已經(jīng)啟動并正常工作,用#ipvsadm -L也可查詢ipvsadm狀態(tài)。
配置兩個realrver,配置相同
#vi /usr/local/realrver.sh
#!/bin/bash
# description: Config realrver lo and apply noarp
SNS_VIP=192.168.1.244
. /etc/rc.d/init.d/functions
ca "$1" in
start)
ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP up
/sbin/route add -host $SNS_VIP dev lo:0
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
sysctl -p >/dev/null 2>&1
echo "RealServer Start OK"
;;
stop)
ifconfig lo:0 down
route del $SNS_VIP >/dev/null 2>&1
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "RealServer Stoped"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
exit 0
啟動realrver
#chmod 777 /usr/local/realrver.sh
#/usr/local/realrver.sh start
出現(xiàn):
RealServer Start OK
apache配置:
在兩個realrver服務(wù)器的apache首頁設(shè)置分別為:11111111111、2222222222
測試
用瀏覽器打開:http://192.168.1.244,即可看到1111111111或22222222222
#ipvsadm -lcn
查看負載鏈接狀況,在測試中發(fā)現(xiàn):
設(shè)置tcp超時時間#ipvsadm --t 200 200 20
查看tcp超時時間#ipvsadm -L --timeout
Timeout (tcp tcpfin udp): 200 200 20
但實際在輪叫時,timeout時間總為60秒,一直不明白為什么,郁悶。
--------------------------------------------------------------------------
ipvsadm 的命令參考:
1,virtual-rvice-address:是指虛擬服務(wù)器的ip 地址
2,real-rvice-address:是指真實服務(wù)器的ip 地址
3,scheduler:調(diào)度方法
(lna@networksba.com 翻譯 ipvsadm v1.21 2004 年4 月)
ipvsadm 的用法和格式如下:
ipvsadm -A|E -t|u|f virutal-rvice-address:port [-s scheduler] [-p
[timeout]] [-M netmask]
ipvsadm -D -t|u|f virtual-rvice-address
ipvsadm -C
ipvsadm -R
ipvsadm -S [-n]
ipvsadm -a|e -t|u|f rvice-address:port -r real-rver-address:port
[-g|i|m] [-w weight]
ipvsadm -d -t|u|f rvice-address -r rver-address
ipvsadm -L|l [options]
ipvsadm -Z [-t|u|f rvice-address]
ipvsadm --t tcp tcpfin udp
ipvsadm --start-daemon state [--mcast-interface interface]
ipvsadm --stop-daemon
ipvsadm -h
命令選項解釋:
有兩種命令選項格式,長的和短的,具有相同的意思。在實際使用時,兩種都可
以。
-A --add-rvice 在內(nèi)核的虛擬服務(wù)器表中添加一條新的虛擬服務(wù)器記錄。也
就是增加一臺新的虛擬服務(wù)器。
-E --edit-rvice 編輯內(nèi)核虛擬服務(wù)器表中的一條虛擬服務(wù)器記錄。
-D --delete-rvice 刪除內(nèi)核虛擬服務(wù)器表中的一條虛擬服務(wù)器記錄。
-C --clear 清除內(nèi)核虛擬服務(wù)器表中的所有記錄。
-R --restore 恢復(fù)虛擬服務(wù)器規(guī)則
-S --save 保存虛擬服務(wù)器規(guī)則,輸出為-R 選項可讀的格式
-a --add-rver 在內(nèi)核虛擬服務(wù)器表的一條記錄里添加一條新的真實服務(wù)器
記錄。也就是在一個虛擬服務(wù)器中增加一臺新的真實服務(wù)器
-e --edit-rver 編輯一條虛擬服務(wù)器記錄中的某條真實服務(wù)器記錄
-d --delete-rver 刪除一條虛擬服務(wù)器記錄中的某條真實服務(wù)器記錄
-L|-l --list 顯示內(nèi)核虛擬服務(wù)器表
-Z --zero 虛擬服務(wù)表計數(shù)器清零(清空當前的連接數(shù)量等)
--t tcp tcpfin udp 設(shè)置連接超時值
--start-daemon 啟動同步守護進程。他后面可以是master 或backup,用來說
明LVS Router 是master 或是backup。在這個功能上也可以采用keepalived 的
VRRP 功能。
--stop-daemon 停止同步守護進程
-h --help 顯示幫助信息
其他的選項:
-t --tcp-rvice rvice-address 說明虛擬服務(wù)器提供的是tcp 的服務(wù)
[vip:port] or [real-rver-ip:port]
-u --udp-rvice rvice-address 說明虛擬服務(wù)器提供的是udp 的服務(wù)
[vip:port] or [real-rver-ip:port]
-f --fwmark-rvice fwmark 說明是經(jīng)過iptables 標記過的服務(wù)類型。
-s --scheduler scheduler 使用的調(diào)度算法,有這樣幾個選項
rr|wrr|lc|wlc|lblc|lblcr|dh|sh|d|nq,
默認的調(diào)度算法是: wlc.
-p --persistent [timeout] 持久穩(wěn)固的服務(wù)。這個選項的意思是來自同一個客
戶的多次請求,將被同一臺真實的服務(wù)器處理。timeout 的默認值為300 秒。
-M --netmask netmask persistent granularity mask
-r --real-rver rver-address 真實的服務(wù)器[Real-Server:port]
-g --gatewaying 指定LVS 的工作模式為直接路由模式(也是LVS 默認的模式)
-i --ipip 指定LVS 的工作模式為隧道模式
-m --masquerading 指定LVS 的工作模式為NAT 模式
-w --weight weight 真實服務(wù)器的權(quán)值
--mcast-interface interface 指定組播的同步接口
-c --connection 顯示LVS 目前的連接 如:ipvsadm -L -c
--timeout 顯示tcp tcpfin udp 的timeout 值 如:ipvsadm -L --timeout
--daemon 顯示同步守護進程狀態(tài)
--stats 顯示統(tǒng)計信息
--rate 顯示速率信息
--sort 對虛擬服務(wù)器和真實服務(wù)器排序輸出
--numeric -n 輸出IP 地址和端口的數(shù)字形式
安裝ipvsadm時出現(xiàn)下面所示錯誤,請問該如何解決
在ipvsadm安裝過程中出現(xiàn)以下錯誤,導(dǎo)致一直無法安裝,在網(wǎng)上搜索了很久也沒找到解決方法。
# make
make -C libipvs
make[1]: Entering directory `/var/tmp/ipvsadm-1.24/libipvs'
gcc -Wall -Wunud -Wstrict-prototypes -g -O2 -I/usr/src/linux/include -DHAVE_NET_IP_VS_H -c -o libipvs.c:79: error: dereferencing pointer to incomplete type
。。。
。。。。
libipvs.c:309: error: dereferencing pointer to incomplete type
libipvs.c:315: error: `IP_VS_SO_GET_DAEMON' undeclared (first u in this function)
libipvs.c: At top level:
libipvs.c:33: error: storage size of `ipvs_info' isn't known
libipvs.c:132: error: `IP_VS_SO_SET_DELDEST' undeclared (first u in this function)make[1]: *** [libipvs.o] Error 1make[1]: Leaving directory `/var/tmp/ipvsadm-1.24/libipvs'make: *** [libs] Error 2
最后在官網(wǎng)的wiki上發(fā)現(xiàn)原來是無法在/usr/src/linux下找到內(nèi)核源碼,所以無法安裝。
[root@localhost /]# cd /usr/src
[root@localhost src]# mkdir linux
[root@localhost src]# rpm -ivh kernel-devel-2.6.18-164.el5.i686.rpm #/usr/src目錄下出現(xiàn)kernels目錄
[root@localhost src]# cd kernels
[root@localhost kernels]# ls
2.6.18-164.el5-i686這個目錄就是源碼的位置,下邊做一個鏈接
[root@localhost kernels]# ln -s /usr/src/kernels/2.6.18-164.el5-i686 /usr/src/linux
2. LVS命令使用
ipvsadm核心功能:
集群服務(wù)管理:增、刪、改
集群服務(wù)的RS管理:增、刪、改
查看
ipvsadm工具的使用:
ipvsadm安裝
命令幫助
管理集群服務(wù):增、改、刪
增、修改:
刪除:
管理集群上的RS:增、改、刪
增、改:
刪:
選項:
lvs類型:
-w weight:權(quán)重
創(chuàng)建一個LVS集群
查看集群
向集群添加Real Server
刪除RS
刪除集群
修改集群
保存規(guī)則
清空集群中的規(guī)則
加載保存的ipvsadm規(guī)則
將規(guī)則保存到能開啟服務(wù)自動加載的文件里 /etc/sysconfig/ipvsadm
/etc/sysconfig/ipvsadm默認是不存在的, 因此無法直接啟動服務(wù), 因為ipvsadm的rvice文件, 啟動時會讀取該文件內(nèi)容
因此, 需要手動創(chuàng)建該文件, 并且, 即使該文件內(nèi)容為空, 也無所謂, 只不過是啟動服務(wù)后是沒有任何規(guī)則的
將先前保存到/data/ipvsadm.rule文件中的規(guī)則導(dǎo)入內(nèi)存中
停止ipvsadm服務(wù), 測試加載的規(guī)則會被自動保存到/etc/sysconfig/ipvsadm.rvice文件中
停止服務(wù)后, 內(nèi)存中的規(guī)則也會被清空
注意:
再次啟動ipvsadm, 驗證ipvsadm會從/etc/sysconfig/ipvsadm文件中讀取規(guī)則
驗證服務(wù)開機自動啟動會加載規(guī)則
補充:
加載到內(nèi)存的ipvsadm的規(guī)則會存在 /proc/net/ip_vs 文件里, 以16進制數(shù)字顯示
清空定義的所有內(nèi)容
清空計數(shù)器
查看
centos7如何保存ipvsadm規(guī)則
一、部署環(huán)境
keepalived:10.10.10.30(CentOS 7)
lvs1:10.10.10.140(CentOS 6.4)
lvs2:10.10.10.150(CentOS 6.4)
二、在lvs1:10.10.10.140上配置
[root@LVS1 ~]# yum install -y httpd
[root@LVS1 ~]# /etc/init.d/httpd start
[root@LVS1 ~]# cd /var/www/html/
[root@LVS1 html]# echo "ok" > keep.html
[root@LVS1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:15:B7:DC
TYPE=Ethernet
UUID=93f4695a-8641-4360-9fce-5e3af0e32fc9
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=static
IPADDR=10.10.10.140
NETMASK=255.255.255.0
GATEWAY=10.10.10.30
[root@LVS1 ~]#/etc/init.d/network restart
[root@LVS1 ~]#/sbin/ifconfig eth0:0 10.10.10.140 broadcast 10.10.10.255 netmask 255.255.255.255 up
三、在lvs2:10.10.10.150上配置
[root@LVS2 ~]# yum install -y httpd
[root@LVS2 ~]# /etc/init.d/httpd start
[root@LVS2 ~]# cd /var/www/html/
[root@LVS2 html]# echo "ok" > keep.html
[root@LVS2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:0C:29:0D:33:AC
TYPE=Ethernet
UUID=e04f57dc-ef9d-4563-bfa4-9c8c1e8fc870
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=static
IPADDR=10.10.10.150
NETMASK=255.255.255.0
GATEWAY=10.10.10.30
[root@LVS2 ~]#/etc/init.d/network restart
[root@LVS2 ~]#/sbin/ifconfig eth0:0 10.10.10.140 broadcast 10.10.10.255 netmask 255.255.255.255 up
四、在keepalived:10.10.10.30上配置
[root@KEEP ~]# vim /etc/sysconfig/network-scripts/ifcfg-eno33554984
HWADDR=00:0C:29:DC:FE:1B
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
#IPV6INIT=yes
#IPV6_AUTOCONF=yes
#IPV6_DEFROUTE=yes
#IPV6_PEERDNS=yes
#IPV6_PEERROUTES=yes
#IPV6_FAILURE_FATAL=no
NAME=eno33554984
#UUID=56cae8b8-235f-471d-9051-2508ee149e48
ONBOOT=yes
NM_CONTROLLED=no
IPADDR=10.10.10.30
NETMASK=255.255.255.0
[root@KEEP ~]# /etc/init.d/network restart
[root@KEEP ~]# cd /data/keepalived/
[root@KEEP keepalived]# tar zxvf keepalived-1.2.12.tar.gz
[root@KEEP keepalived]# cd keepalived-1.2.12/
[root@KEEP keepalived-1.2.12]# ./configure --prefix=/usr/local/keepalived
[root@KEEP keepalived-1.2.12]# make
[root@KEEP keepalived-1.2.12]# make install
[root@KEEP keepalived-1.2.2]# ln -s /usr/local/keepalived/etc/keepalived/ /etc/
[root@KEEP keepalived-1.2.2]# ln -s /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
[root@KEEP keepalived-1.2.2]# ln -s /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@KEEP keepalived-1.2.2]# ln -s /usr/local/keepalived/sbin/keepalived /usr/sbin/
[root@KEEP keepalived-1.2.12]# cd
##keepalived健康檢查 HTTP_GET
[root@KEEP ~]# /usr/local/keepalived/bin/genhash -s 10.10.10.140 -p 80 -u /keep.html
MD5SUM = eff5bc1ef8ec9d03e640fc4370f5eacd
[root@KEEP ~]# /usr/local/keepalived/bin/genhash -s 10.10.10.150 -p 80 -u /keep.html
MD5SUM = eff5bc1ef8ec9d03e640fc4370f5eacd
[root@KEEP ~]# vim /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state MASTER
interface eno33554984
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.10.10.250
}
}
virtual_rver 10.10.10.250 80 {
delay_loop 6
lb_algo wrr
lb_kind DR
nat_mask 255.255.255.0
persistence_timeout 50
protocol TCP
real_rver 10.10.10.140 80 {
weight 1
HTTP_GET {
url {
path /keep.html
digest eff5bc1ef8ec9d03e640fc4370f5eacd
}
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
real_rver 10.10.10.150 80 {
weight 1
HTTP_GET {
url {
path /keep.html
digest eff5bc1ef8ec9d03e640fc4370f5eacd
}
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
[root@KEEP ~]# /etc/init.d/keepalived restart
五、在keepalived:10.10.10.30上用ipvsadm 命令測試
[root@KEEP ~]# yum install -y ipvsadm
[root@KEEP ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.10.10.250:80 wrr persistent 50
-> 10.10.10.140:80 Route 1 0 0
-> 10.10.10.150:80 Route 1 0 0
在10.10.10.140執(zhí)行
[root@LVS1 html]# echo "" > keep.html
[root@KEEP ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.10.10.250:80 wrr persistent 50
-> 10.10.10.150:80 Route 1 0 0
再在10.10.10.140執(zhí)行
[root@LVS1 html]# echo "ok" > keep.html
[root@KEEP ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 10.10.10.250:80 wrr persistent 50
-> 10.10.10.140:80 Route 1 0 0
-> 10.10.10.150:80 Route 1 0 0