LVS调度器(DR模式配置,yum安装和源码安装)(主DR)
方式1:yum安装lvs
lvs(DR)机器上:eth0:192.168.231.128 (nat公网) eth0:0 192.168.231.5
[root@localhost network-scripts]# cat ifcfg-eth0 (nat公网)
DEVICE=eth0
HWADDR=00:0C:29:E6:85:D2
TYPE=Ethernet
UUID=b4d37e32-10a3-4e78-ae62-c716e0cd012d
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
[root@localhost network-scripts]# cat ifcfg-eth0:0 (虚拟ip配置)
DEVICE=eth0:0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.231.5
NETMASK=255.255.255.0
[root@localhost network-scripts]# /etc/init.d/network restart
[root@localhost network-scripts]# cd
[root@localhost ~]# ifconfig eth0 |head -2
eth0 Link encap:Ethernet HWaddr 00:0C:29:E6:85:D2
inet addr:192.168.231.128 Bcast:192.168.231.255 Mask:255.255.255.0
[root@localhost ~]# ifconfig eth0:0 |head -2
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:E6:85:D2
inet addr:192.168.231.5 Bcast:192.168.231.255 Mask:255.255.255.0
[root@localhost ~]# yum -y install ipvsadm
[root@localhost ~]# /etc/init.d/ipvsadm start
[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@localhost ~]# ipvsadm -A -t 192.168.231.5:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.231.5:80 -r 192.168.231.129:80 -g
[root@localhost ~]# ipvsadm -a -t 192.168.231.5:80 -r 192.168.231.130:80 -g
[root@localhost ~]# /etc/init.d/ipvsadm save
[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.231.5:80 rr
-> 192.168.231.129:80 Route 1 0 0
-> 192.168.231.130:80 Route 1 0 0
后端两web配置:
1)web1机器(192.168.231.129(nat公网)配置:
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo web1 > /var/www/html/index.html
[root@localhost ~]# /etc/init.d/httpd restart
[root@localhost ~]# vim /etc/sysctl.conf #防止arp冲突配置
…….最后添加下面内容:
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
[root@localhost ~]# sysctl -p
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0 #配置集群的vip(虚拟IP)
IPADDR=192.168.231.5
NETMASK=255.255.255.255 #注意是4个255
ONBOOT=yes
[root@localhost ~]# /etc/init.d/network restart
[root@localhost ~]# ifconfig eth0 |head -2
eth0 Link encap:Ethernet HWaddr 00:0C:29:06:81:24
inet addr:192.168.231.129 Bcast:192.168.231.255 Mask:255.255.255.0
[root@localhost ~]# ifconfig lo:0 |head -2
lo:0 Link encap:Local Loopback
inet addr:192.168.231.5 Mask:255.255.255.255
2)web2机器(192.168.231.130(nat公网))配置:
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo web2 > /var/www/html/index.html
[root@localhost ~]# /etc/init.d/httpd restart
[root@localhost ~]# vim /etc/sysctl.conf #防止arp冲突配置
…….最后添加下面内容:
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
[root@localhost ~]# sysctl -p
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0 #配置集群的vip(虚拟IP)
IPADDR=192.168.231.5
NETMASK=255.255.255.255 #注意是4个255
ONBOOT=yes
[root@localhost ~]# /etc/init.d/network restart
[root@localhost ~]# ifconfig eth0 |head -2
eth0 Link encap:Ethernet HWaddr 00:0C:29:4C:CF:B4
inet addr:192.168.231.130 Bcast:192.168.231.255 Mask:255.255.255.0
[root@localhost ~]# ifconfig lo:0 |head -2
lo:0 Link encap:Local Loopback
inet addr:192.168.231.5 Mask:255.255.255.255
客户端:(192.168.231.131(nat公网))访问lvs调度器(虚拟IP):
[root@localhost ~]# curl http://192.168.231.5
web1
[root@localhost ~]# curl http://192.168.231.5
web2
[root@localhost ~]# curl http://192.168.231.5
web1
[root@localhost ~]# curl http://192.168.231.5
web2
方式2:源码安装lvs
lvs(DR)机器上:eth0:192.168.231.128 (nat公网) eth0:0 192.168.231.5
[root@localhost network-scripts]# cat ifcfg-eth0 (nat公网)
DEVICE=eth0
HWADDR=00:0C:29:E6:85:D2
TYPE=Ethernet
UUID=b4d37e32-10a3-4e78-ae62-c716e0cd012d
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=dhcp
[root@localhost network-scripts]# cat ifcfg-eth0:0 (虚拟ip配置)
DEVICE=eth0:0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.231.5
NETMASK=255.255.255.0
[root@localhost network-scripts]# /etc/init.d/network restart
[root@localhost network-scripts]# cd
[root@localhost ~]# ifconfig eth0 |head -2
eth0 Link encap:Ethernet HWaddr 00:0C:29:E6:85:D2
inet addr:192.168.231.128 Bcast:192.168.231.255 Mask:255.255.255.0
[root@localhost ~]# ifconfig eth0:0 |head -2
eth0:0 Link encap:Ethernet HWaddr 00:0C:29:E6:85:D2
inet addr:192.168.231.5 Bcast:192.168.231.255 Mask:255.255.255.0
[root@localhost ~]# mkdir /ipvsadm
上传源码包和依赖包
[root@localhost ~]# ls /ipvsadm/
ipvsadm-1.26.tar.gz popt-static-1.13-7.el6.x86_64.rpm
[root@localhost ~]# yum -y install gcc gcc-c++
[root@localhost ~]# yum -y install libnl* popt* #安装依赖包
#安装popt-static:否则会报错
[root@localhost ~]# cd /ipvsadm/
[root@localhost ipvsadm]# ls
ipvsadm-1.26.tar.gz popt-static-1.13-7.el6.x86_64.rpm
[root@localhost ipvsadm]# rpm -ivh popt-static-1.13-7.el6.x86_64.rpm
Preparing... ########################################### [100%]
package popt-static-1.13-7.el6.x86_64 is already installed
[root@localhost ipvsadm]# tar -zxf ipvsadm-1.26.tar.gz #源码安装lvs
[root@localhost ipvsadm]# ls
ipvsadm-1.26 ipvsadm-1.26.tar.gz popt-static-1.13-7.el6.x86_64.rpm
[root@localhost ipvsadm]# cd ipvsadm-1.26
[root@localhost ipvsadm-1.26]# ls
config_stream.c debian ipvsadm.8 ipvsadm-restore.8 ipvsadm.sh libipvs README
config_stream.h dynamic_array.c ipvsadm.c ipvsadm-save ipvsadm.spec Makefile SCHEDULERS
contrib dynamic_array.h ipvsadm-restore ipvsadm-save.8 ipvsadm.spec.in PERSISTENCE_ENGINES VERSION
[root@localhost ipvsadm-1.26]# make #直接make,没有./configure这步
[root@localhost ipvsadm-1.26]# make install #安装后直接就安装到了/etc/init.d/ipvsadm
…………
[ -d /etc/rc.d/init.d ] || mkdir -p /etc/rc.d/init.d
install -m 0755 ipvsadm.sh /etc/rc.d/init.d/ipvsadm
[root@localhost ipvsadm-1.26]# cd
[root@localhost ~]# lsmod |grep ip_vs
空 #说明ip_vs模块没有被加载,需要执行下面命令加载
[root@localhost ~]# modprobe ip_vs #或者/sbin/ipvsadm //加载命令,把命令放到内核里
[root@localhost ~]# lsmod |grep ip_vs
ip_vs 125694 0
libcrc32c 1246 1 ip_vs
ipv6 334932 139 ip_vs
[root@localhost ~]# /etc/init.d/ipvsadm status
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@localhost ~]# ipvsadm -A -t 192.168.231.5:80 -s rr
[root@localhost ~]# ipvsadm -a -t 192.168.231.5:80 -r 192.168.231.129:80 -g
[root@localhost ~]# ipvsadm -a -t 192.168.231.5:80 -r 192.168.231.130:80 -g
[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.231.5:80 rr
-> 192.168.231.129:80 Route 1 0 0
-> 192.168.231.130:80 Route 1 0 0
[root@localhost ~]# /etc/init.d/ipvsadm save
[root@localhost ~]# /etc/init.d/ipvsadm stop
[root@localhost ~]# /etc/init.d/ipvsadm start
[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.231.5:80 rr
-> 192.168.231.129:80 Route 1 0 2
-> 192.168.231.130:80 Route 1 0 3
后端两web配置:
1)web1机器(192.168.231.129(nat公网)配置:
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo web1 > /var/www/html/index.html
[root@localhost ~]# /etc/init.d/httpd restart
[root@localhost ~]# vim /etc/sysctl.conf #防止arp冲突配置
…….最后添加下面内容:
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
[root@localhost ~]# sysctl -p
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0 #配置集群的vip(虚拟IP)
IPADDR=192.168.231.5
NETMASK=255.255.255.255 #注意是4个255
ONBOOT=yes
[root@localhost ~]# /etc/init.d/network restart
[root@localhost ~]# ifconfig eth0 |head -2
eth0 Link encap:Ethernet HWaddr 00:0C:29:06:81:24
inet addr:192.168.231.129 Bcast:192.168.231.255 Mask:255.255.255.0
[root@localhost ~]# ifconfig lo:0 |head -2
lo:0 Link encap:Local Loopback
inet addr:192.168.231.5 Mask:255.255.255.255
2)web2机器(192.168.231.130(nat公网))配置:
[root@localhost ~]# yum -y install httpd
[root@localhost ~]# echo web2 > /var/www/html/index.html
[root@localhost ~]# /etc/init.d/httpd restart
[root@localhost ~]# vim /etc/sysctl.conf #防止arp冲突配置
…….最后添加下面内容:
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.lo.arp_announce=2
[root@localhost ~]# sysctl -p
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-lo:0 #配置集群的vip(虚拟IP)
IPADDR=192.168.231.5
NETMASK=255.255.255.255 #注意是4个255
ONBOOT=yes
[root@localhost ~]# /etc/init.d/network restart
[root@localhost ~]# ifconfig eth0 |head -2
eth0 Link encap:Ethernet HWaddr 00:0C:29:4C:CF:B4
inet addr:192.168.231.130 Bcast:192.168.231.255 Mask:255.255.255.0
[root@localhost ~]# ifconfig lo:0 |head -2
lo:0 Link encap:Local Loopback
inet addr:192.168.231.5 Mask:255.255.255.255
客户端:(192.168.231.131(nat公网))访问lvs调度器(虚拟IP):
[root@localhost ~]# curl http://192.168.231.5
web1
[root@localhost ~]# curl http://192.168.231.5
web2
[root@localhost ~]# curl http://192.168.231.5
web1
[root@localhost ~]# curl http://192.168.231.5
web2