(1)确定本机ip_vs模块是否加载,也就是是否支持lvs,2.4.2后都支持了;然后安装ipvsadm 用户操作命令
[root@LVS ~]
# grep -i "ip_vs" /boot/config-2.6.32-358.el6.x86_64
CONFIG_IP_VS=m
#将ipvs定义成模块
CONFIG_IP_VS_IPV6=y
# CONFIG_IP_VS_DEBUG is not set
CONFIG_IP_VS_TAB_BITS=12
CONFIG_IP_VS_PROTO_TCP=y
#IPVS支持哪些集群服务
CONFIG_IP_VS_PROTO_UDP=y
CONFIG_IP_VS_PROTO_AH_ESP=y
CONFIG_IP_VS_PROTO_ESP=y
CONFIG_IP_VS_PROTO_AH=y
CONFIG_IP_VS_PROTO_SCTP=y
CONFIG_IP_VS_RR=m
#ipvs支持的十种调度算法
CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
CONFIG_IP_VS_FTP=m
#支持代理ftp协议的
(2)安装ipvsadm
[root@LVS ~]
# yum -y install ipvsadm
(3)添加集群服务
[root@LVS ~]
# ipvsadm -A -t 192.168.0.200:80 -s rr #定义一个集群服务
[root@LVS ~]
# ipvsadm -a -t 192.168.0.200:80 -r 172.16.100.10 -m #添加RealServer并指派调度算法为NAT
[root@LVS ~]
# ipvsadm -a -t 192.168.0.200:80 -r 172.16.100.11 -m #添加RealServer并指派调度算法为NAT
[root@LVS ~]
# ipvsadm -L -n #查看ipvs定义的规则列表
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.200:80 rr
-> 172.16.100.10:80 Masq 1 0 0
-> 172.16.100.11:80 Masq 1 0 0
[root@LVS ~]
# cat /proc/sys/net/ipv4/ip_forward #查看Linux是否开启路由转发功能
0
[root@LVS ~]
# echo 1 > /proc/sys/net/ipv4/ip_forward #启动Linux的路由转发功能
[root@LVS ~]
# cat /proc/sys/net/ipv4/ip_forward
1
(4)测试访问http页面
[root@LVS ~]
# curl http://192.168.0.200/index.html
RS2-web2 Allentuns.com
#第一次是web2
[root@LVS ~]
# curl http://192.168.0.200/index.html
RS1-web1 Allentuns.com
#第二次是web1
[root@LVS ~]
# curl http://192.168.0.200/index.html
RS2-web2 Allentuns.com
#第三次是web1
[root@LVS ~]
# curl http://192.168.0.200/index.html
RS1-web1 Allentuns.com
#第四次是web2
(5)更改LVS的调度算并压力测试,查看结果
[root@LVS ~]
# ipvsadm -E -t 192.168.0.200:80 -s wrr
[root@LVS ~]
# ipvsadm -e -t 192.168.0.200:80 -r 172.16.100.10 -m -w 3
[root@LVS ~]
# ipvsadm -e -t 192.168.0.200:80 -r 172.16.100.11 -m -w 1
[root@LVS ~]
# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.200:80 wrr
-> 172.16.100.10:80 Masq 3 0 2
-> 172.16.100.11:80 Masq 1 0 2
[root@LVS ~]
# curl http://192.168.0.200/index.html
RS1-web1 Allentuns.com
[root@LVS ~]
# curl http://192.168.0.200/index.html
RS1-web1 Allentuns.com
[root@LVS ~]
# curl http://192.168.0.200/index.html
RS1-web1 Allentuns.com
[root@LVS ~]
# curl http://192.168.0.200/index.html
RS2-web2 Allentuns.com
[root@LVS ~]
# curl http://192.168.0.200/index.html
RS1-web1 Allentuns.com
(6)永久保存LVS规则并恢复
第一种方法:
[root@LVS ~]
# service ipvsadm save
ipvsadm: Saving IPVS table to
/etc/sysconfig/ipvsadm
: [确定]
第二种方法:
[root@LVS ~]
# ipvsadm -S > /etc/sysconfig/ipvsadm.s1
模拟清空ipvsadm规则来恢复
[root@LVS ~]
# ipvsadm -C
[root@LVS ~]
# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@LVS ~]
# ipvsadm -R < /etc/sysconfig/ipvsadm.s1
[root@LVS ~]
# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.0.200:80 wrr
-> 172.16.100.10:80 Masq 3 0 0
-> 172.16.100.11:80 Masq 1 0 0