您的位置:首页 > 其它

用轮调算法配置集群LVS-DR

2011-02-17 23:02 281 查看
本实验一共需要用到4台虚拟机,VMWare版本为7.0,如下所示:





Real server 1:
eth0 RIP: 192.168.1.11/24
lo:0 VIP: 192.168.1.1/24
Real server 2:
eht0 RIP: 192.168.1.12/24
lo:0 VIP: 192.168.1.1/24
Director:
eth0 DIP: 192.168.1.13/24
eth0:0 VIP: 192.168.1.1/24
Web server:
eth0: 192.168.1.14/24

注:RIP和VIP可以不在同一网络,但所有RIP必在同一网络,VIP可以用公网地址,RIP用私有地址

配置Real server 1:
保证有WEB服务
# yum install httpd
制作一个简单的主页
# echo "This page is from Real server 1" > /var/www/html/index.html
注:在配置Real sever 2 时可写入不同内容,以增强实验效果,但在实际生产应用中,二者内容必须得保持一致
# service httpd start
# chkconfig httpd on

关闭selinux
# setenforce 0

查看80端口是否开启
# netstat -tnlp

# ifconfig eth0 192.168.1.11/24 RIP 此处不需要网关

隐藏ARP广播
# vim /etc/sysctrl.conf 添加如下内容:
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_announce = 2

注:等号“=”前后必须有空格!!!

上述修改方法永久生效,下面给出一种临时生效的方法:
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

查看是否修改成功
# sysctrl -p
若出现所添加的内空,则说明添加成功

添加VIP
# ifconfig lo:0 192.168.1.1 broadcast 192.168.1.1 netmask 255.255.255.255 up
查看
# ifconfig

添加一个特殊路由,使所有访问VIP(192.168.1.1)请求都从lo:0发出
# route add -host 192.168.1.1 dev lo:0
查看
# route -n
显示Iface结果为lo而不是lo:0,这是正常现象

配置Real server 2:
过程和Real server 1相同!!!
这里不再赘述

配置Director:

添加DIP
# ifconfig eth0 192.168.1.13/25

添加VIP
# ifconfig eth0:0 192.168.1.1 broadcast 192.168.1.1 netmask 255.255.255.255 up

查看
# ifconfig

# route add -host 192.168.1.1 dev eth0:0
查看
#route -n

开启路由功能
# vim /etc/sysctl.conf
修改net.ipv4.ip_forward的值为1,显示为:
net.ipv4.ip_forward = 1

接下来开始定义虚拟服务
之前,最好清空iptables,或直接关闭之

# yum install ipvsadm

清空ipvs信息
# ipvsadm -C
查看
# ipvsadm -L -n

添加新规则
# ipvsadm -A -t 192.168.1.1:80 -s rr
注:此处 -s 为指定算法,如果需要其它算法,可在些处修改
# ipvsadm -a -t 192.168.1.1:80 -r 192.168.1.11 -g -w 5
# ipvsadm -a -t 192.168.1.1:80 -r 192.168.1.12 -g -w 8
保存配置
# serviec ipvsd save
查看保存情况
# ipvsadm -L -n
#

至此,可以客户端的浏览器中访问192.168.1.1
由于本实验采用的是cc(轮调算法),所以每刷新一次访问的页都不同,会在Real server 1和Real server 2两者的页面之间转换

配置Web server

# yum install httpd
# echo "This page is from nfs of the Web server!!!" > /var/www/html/index.html
# service httpd start

关闭selinux
# setenforce 0

# ifconfig eth0 192.168.1.14/24

启用nfs共享
# vim /etc/exports
添加
/var/www 192.168.1.11(ro)
/var/www 192.168.1.12(ro)

注:只允许两台Real server挂载

设置开机自动启动nfs
# chkconfig nfs on

至此,Web server 配置完毕

在Real server挂载nfs之前,它们最好先删去或重命名之前创建的/var/www/html/index.html文件

在两台Real server上分别执行如下命令挂载nfs
# mount 192.168.1.14:/var/www /var/www

再次在客户端上访问192.168.1.14
发现出现的页面一直都是来自web server 的页面
实验成功!!!

注:如果想少开一台虚拟机,可以将Web server省去,在一台Real server上做好web服务,然后用nfs共享,让另一台Real server挂载,可减小物理机的开销!
本文出自 “E-guys” 博客,请务必保留此出处http://eguys.blog.51cto.com/2517622/495727
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: