LVS-DR 负载均衡模型实例
VS/DR通过改写请求报文的MAC地址,将请求发送到真实服务器,而真实服务器将响应直接返回给客户。同VS/TUN技术一样,VS/DR技术可极大地 提高集群系统的伸缩性。这种方法没有IP隧道的开销, 对集群中的真实服务器也没有必须支持IP隧道协议的要求,但是要求调度器与真实服务器都有一块网卡连 在同一物理网段上。
ipvsadm 定义管理集群服务的命令行工具。可用于管理集群服务,集群服务中的rs,查看集群配置信息等。
ipvsadm 使用规则和参数说明:
管理集群服务,添加、修改、删除等...
- 管理集群服务:
- 格式:-A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
- -A 添加
- -A -t|u|f ip:端口 [-s 算法]
- -t tcp 协议集群
- -u udp 协议集群
- -p 持久时长
- -s 指定算法
- -f 防火墙标记
- -E 修改
- -D 删除
- 格式:ipvsadm -D -t|u|f service-address
管理realserver,包括添加、删除、修改等...
- 管理realserver
- 格式:ipvsadm -a -t|u|f service_address -r service-address [-g|i|m] [-w weight]
- -a 添加
- -t|u|f service-address: 事先定义好的某集群服务
- -r service-address :某rs 地址 在 nat 模型中可以用ip:port
- -g 表示dr模型
- -i 表示tun模型
- -m 表示nat模型
- -w 表示权重
- -e 修改
- -d 删除
- 格式:ipvsadm -d -t|u|f service-address -r server-address
查看配置信息,查看配置信息,连接状态,清空规则等...
- 查看:
- -L|l
- -n 数字形式显示ip地址和端口
- --stats 统计数据
- --timeout 输出tcp/udp/tcpfin超时时间值
- --sort 对查看的内容进行排序,默认是升序
- -c 显示当前ipvs连接状况
- --rate 显示速率
- -C 清空ipvs规则
- -S 保存规则
- ipvsadm -S > /xxx/xxx/xxxx
- -R 载入此前的规则
- ipvsadm -R < /xxx/xxx/xxxx
- service ipvsadm restart
- service ipvsadm save
使用三台主机作为测试环境:
系统环境RedHat5.8
虚拟机:VMware9
Director:
eth0: dip 192.168.106.100
ech0:0 vip 192.168.106.101
RealServer: 配置过程中简称RS1和RS2
rs1 eth0: 192.168.106.10
lo vip 192.168.106.101
rs2 eth0: 192.168.106.11
lo vip 192.168.106.101
注意事项:
在给RealServer上必须先设置arp_announce 和 arp_ignore
集群节点跟director必须在同一个物理网络中
RIP 可以是用公网ip 实现更快捷的远程连接控制
director仅负责处理入站请求,响应报文则有realserver直接发往客户端
realserver 不能将网关指向 director
不支持端口映射
配置过程:
1,配置ip,集群节点跟director必须在同一个物理网络中,配置dip192.168.106.100
setup-->Network configuration-->Edit Devices -->eth0 (eth0)
配置 eth0:0 192.168.106.101
2,分别配置另外两台realserver ip 192.168.106.10 和 192.168.106.11,步骤同上
3,调整 RS1 的 arp_announce 和 arp_ignore 值,让在接受到ARP 请求时不回应
- # echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
- # echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
- # echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
- # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
4,调整两台 RS2 的 arp_announce 和 arp_ignore 值,让在接受到ARP 请求时不回应
- # echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
- # echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_ignore
- # echo 2 > /proc/sys/net/ipv4/conf/eth0/arp_announce
- # echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
5,配置RS1 和 RS2 上配置 vip 和 路由信息, 在lo:0 上配置
- # ifconfig lo:0 192.168.106.101 broadcast 192.168.106.101 netmask 255.255.255.255 up
- # route add -host 192.168.106.101 dev lo:0 目标地址是vip 一定要通过lo:0 进来和出去
6,在 Director 上配置路由信息
- # route add -host 192.168.106.101 dev eth0:0
7,在RS1 上安装web 服务,创建web 页面提供测试。
- # yum install -y httpd
- # service httpd start
- # vim /var/www/html/index.html
- 这里web提供测试随便输入一些信息 即可
- 如 AAAAAAAAAAAAA
- # service httpd restart
- # curl http://loacalhost
8,在RS2 安装web服务并提供页面测试
- # yum install -y httpd
- # service httpd start
- # vim /var/www/html/index.html
- 这里web提供测试随便输入一些信息 即可
- 如 BBBBBBBBBBBBB
- # service httpd restart
- # curl http://loacalhost
9,在Director 上测试 两个RS 服务器的WEB网页是否有效
- # curl http://192.168.106.10
- # curl http://192.168.106.11
10,DIRECTOR 配置lvs-dr服务
- # ipvsadm -A -t 192.168.106.101:80 -s wlc
- # ipvsadm -a -t 192.168.106.101:80 -r 192.168.106.10 -g -w 2
- # ipvsadm -a -t 192.168.106.101:80 -r 192.168.106.11 -g -w 3
- # ipvsadm -L -n
- # service ipvsadm save
配置结束!! 在浏览器中输入vip 测试lvs-dr负载均衡,多刷新几次页面。
配置成功 到此结束!!!