LVS 负载均衡之 VS/DR 模式
一、LVS/DR 模式简介
- DR模式是通过改写请求报文的目标MAC地址,将请求发给真实服务器的,而真实服务器响应后的处理结果直接返回给客户端用户。同TUN模式一样,DR模式可以极大的提高集群系统的伸缩性。而且DR模式没有IP隧道的开销,对集群中的真实服务器也没有必要必须支持IP隧道协议的要求。但是要求调度器LB与真实服务器RS都有一块网卡连接到同一物理网段上,必须在同一个局域网环境。DR模式是互联网使用比较多的一种模式。
- 特点总结
- 集群节点处于同一个广播域中
- 真是服务器将网关指向真是路由器
- 负载调度器只负责处理入站请求,压力最小
- 不支持端口映射
二、LVS/DR 实验搭建
网络环境说明:
服务器类型 | IP | 说明 |
---|---|---|
lvs_vip | 192.168.137.10 | VIP |
lvs_dip | 192.168.137.100 | DIP |
real_service_1 | 192.168.137.101 | nginx 服务器 |
real_service_2 | 192.168.137.102 | nginx 服务器 |
&:三台服务器均关闭防火墙和selinux
1、负载调度器配置
-
1.1 拷贝 eth0 网卡子接口,充当集群入口接口
cd /etc/sysconfig/network-scripts/
cp ifcfg-eth0 ifcfg-eth0:0
-
1.2 配置网卡子接口 IP 地址为虚拟IP (VIP)
vi ifcfg-eth0:0
-
1.3 开启 eth0:0网卡
ifup eth0:0
-
1.4 安装LVS管理工具 ipvsadm
yum install -y ipvsadm
-
1.5 配置 ipvs 规则
ipvsadm -A -t VIP:80 -s rr (此处采用轮询算法)
ipvsadm -a -t VIP:80 -r RIP1 -g
ipvsadm -a -t VIP:80 -r RIP2 -g
service ipvsadm save // 保存规则
chkconfig ipvsadm on // 设置开机启动
- 1.6 配置vip路由
route add -host 192.168.137.10 dev eth0:0
2、真实服务器配置 (以 real-service-1 为例)
-
2.1 安装 web 服务器 (此处采用 nginx,需要提前下载好Nginx的安装包)
yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel (安装必要依赖)
groupadd nginx
useradd nginx -g nginx -s /sbin/nologin -M
进入 nginx 源码包解压目录
./configure --prefix=/usr/local/nginx --sbin-path=/usr/bin/nginx --user=nginx --group=nginx --without-http_rewrite_module
-
2.2 随便写点内容到服务器默认页面,为了可以看出区别,两台真实服务器的内容不一样
echo "This is Real Service 1" >> index.html
-
2.3 拷贝回环网卡子接口
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0
-
2.4 配置 回环网卡子接口 IP地址为虚拟IP
vi ifcfg-lo:0
-
2.5 启动网卡
ifup lo:0
-
2.6 设置 arp 广播抑制
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.default.arp_ignore = 1
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
-
2.7 让优化的内核参数立即生效
sysctl -p
-
2.8 添加路由记录,当访问 VIP 时,交给 lo:0 网卡接受
route -add host 192.168.137.10 (VIP) dev 1o:0
本作品采用《CC 协议》,转载必须注明作者和本文链接