如果你没有那么多的机器来做 集群测试或研究的话,可以用vmware来虚拟多台linux做集群
1 软件需求
系统:rh as 3.5 或用cenos 3.5代替
虚拟机:VMwareWorkstation-5.0.0-13124
集群软件: ipvsadm-1.21-9 (在rh claster suite as3 个扩展盘里可以找到)
web配置工具: piranha-0.7.10-2 (rh公开的原码包RHCS中可以找到)
2 安装
vmware和linux系统的安装就不多说了,linux最小化安装即可,已经节省我们的磁盘空间,值得注意的是,如果你要是复制多个linux 的话,网卡要重新添加的,因为复制的mac地址是一样的。
至于修改name.vmx 和对lock 文件的删除这里也不多说了!
3 结构
一般用1台负载均衡服务器做lvs的核心部分,再加上两台节点服务器来做实际的服务器就可以完成负载均衡的测试。
lvs
|
|_________
||
realreal
serverserver
4 网络
以上图名称为标准lvs要双网卡
eth0外网为连接internet 172.168.0.1
eth1连接内网连接两个real server 192.168.0.254
两个real server 一个网卡就够了
eth0 分别是192.168.0.1 192.168.0.2
同时我们把3太服务器/etc/hosts统
127.0.0.1 localhost localhost.localdomain
192.168.0.1 real01
192.168.0.2 raal02
192.168.0.254 lvs
5 lvs上所需要的配置
我们用NAT来实现负载均衡的,所以打开转发
vi /etc/sysctl.conf
net.ipv4.ip_forward = 0(该为1)
sysctl.conf -p 生效
iptables 的规则
iptables -t mangle -A PREROUTING -p tcp -d 172.168.0.1/32 --dport 80 -j MARK --set-mark 80
iptables -t mangle -A PREROUTING -p tcp -d 172.168.0.1/32 --dport 443 -j MARK --set-mark 80
这里值得说明的是 我们不直接用nat 很是用mangle 加了标记 这样就可以把http 和https绑定成一组了,来做多端口的负载均衡(如果没用的化就可以不加443这条规则)
iptables -t nat -A POSTROUTING -s 192.168.70.0/24 -j MASQUERADE
核心部分/etc/sysconfig/ha/lvs.cf
(我们也可以通过piranha来通过web来配置这个文件,由于是图形下的相对比较简单这里就不多说了)
6 运行
shell>lvs
看一下
ps aux
shell>ipvsadm
ipvsadm -l
7测试
现在你可以去访问 http://172.168.0.1 来进行测试
当然你先要在两台real server 上配置并启动apache
在目录用不同内容的index.html 来做测试 刷新浏览器 你就可以看到结果了
8存储
如果同一个网站网页文件怎么做统一呢? 实现方法很多的我会继续写的
1 软件需求
系统:rh as 3.5 或用cenos 3.5代替
虚拟机:VMwareWorkstation-5.0.0-13124
集群软件: ipvsadm-1.21-9 (在rh claster suite as3 个扩展盘里可以找到)
web配置工具: piranha-0.7.10-2 (rh公开的原码包RHCS中可以找到)
2 安装
vmware和linux系统的安装就不多说了,linux最小化安装即可,已经节省我们的磁盘空间,值得注意的是,如果你要是复制多个linux 的话,网卡要重新添加的,因为复制的mac地址是一样的。
至于修改name.vmx 和对lock 文件的删除这里也不多说了!
3 结构
一般用1台负载均衡服务器做lvs的核心部分,再加上两台节点服务器来做实际的服务器就可以完成负载均衡的测试。
lvs
|
|_________
||
realreal
serverserver
4 网络
以上图名称为标准lvs要双网卡
eth0外网为连接internet 172.168.0.1
eth1连接内网连接两个real server 192.168.0.254
两个real server 一个网卡就够了
eth0 分别是192.168.0.1 192.168.0.2
同时我们把3太服务器/etc/hosts统
127.0.0.1 localhost localhost.localdomain
192.168.0.1 real01
192.168.0.2 raal02
192.168.0.254 lvs
5 lvs上所需要的配置
我们用NAT来实现负载均衡的,所以打开转发
vi /etc/sysctl.conf
net.ipv4.ip_forward = 0(该为1)
sysctl.conf -p 生效
iptables 的规则
iptables -t mangle -A PREROUTING -p tcp -d 172.168.0.1/32 --dport 80 -j MARK --set-mark 80
iptables -t mangle -A PREROUTING -p tcp -d 172.168.0.1/32 --dport 443 -j MARK --set-mark 80
这里值得说明的是 我们不直接用nat 很是用mangle 加了标记 这样就可以把http 和https绑定成一组了,来做多端口的负载均衡(如果没用的化就可以不加443这条规则)
iptables -t nat -A POSTROUTING -s 192.168.70.0/24 -j MASQUERADE
核心部分/etc/sysconfig/ha/lvs.cf
代码:
serial_no = 41 primary = 172.168.0.1 primary_private = 192.168.0.254 service = lvs backup_active = 0 backup = 0.0.0.0 heartbeat = 1 heartbeat_port = 539 keepalive = 6 deadtime = 18 network = nat nat_router = 192.168.0.254 eth1 debug_level = NONE virtual [server_lvs] { active = 1 address = 172.168.0.1 eth0 vip_nmask = 255.255.255.0 fwmark = 80 port = 80 send = "GET / HTTP/1.0/r/n/r/n" expect = "HTTP" use_regex = 0 load_monitor = none scheduler = wlc protocol = tcp timeout = 12 reentry = 30 quiesce_server = 0 server [real01] { address = 192.168.0.1 active = 1 weight = 1 } server [real02] { address = 192.168.0.2 active = 1 weight = 1 } }
6 运行
shell>lvs
看一下
ps aux
代码:
root 3294 0.0 0.0 1760 632 ? S Jun29 0:05 /usr/sbin/nanny -c -h 192.168.0.1 -p 80 -f 80 -s GET / HTTP/1.0/r/n/r/n -x HTTP -a 30 -I /sbin/ipvsadm -t 12 -w 1 -V 172.168.0.1 -M m -U none --lvs root 3295 0.0 0.0 1764 632 ? S Jun29 0:05 /usr/sbin/nanny -c -h 192.168.0.1 -p 80 -f 80 -s GET / HTTP/1.0/r/n/r/n -x HTTP -a 30 -I /sbin/ipvsadm -t 12 -w 1 -V 172.168.0.1 -M m -U none --lvs
ipvsadm -l
代码:
IP Virtual Server version 1.0.8 (size=65536) Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn FWM 81 wlc -> 192.168.0.1:0 Masq 1 1 0 -> 192.168.0.2:0 Masq 1 1 0
现在你可以去访问 http://172.168.0.1 来进行测试
当然你先要在两台real server 上配置并启动apache
在目录用不同内容的index.html 来做测试 刷新浏览器 你就可以看到结果了
8存储
如果同一个网站网页文件怎么做统一呢? 实现方法很多的我会继续写的