基于 CentOS 7 构建 LVS-DR 群集

文章目录

  • 一、LVS-DR集群介绍
    • 1.LVS的基本工作原理
    • 2. LVS-DR模式工作原理
  • 二、 LVS-DR模式应用特点
  • 三、LVS – DR 模式集群构建
    • 1.前期环境准备
    • 2.配置LVS
    • 3.配置RS

一、LVS-DR集群介绍

1.LVS的基本工作原理

基于 CentOS 7 构建 LVS-DR 群集_第1张图片

  1. 当用户向负载均衡调度器(Director Server)发起请求,调度器将请求发往至内核空间
  2. PREROUTING链首先会接收到用户请求,判断目标IP确定是本机IP,将数据包发往INPUT链
  3. IPVS是工作在INPUT链上的,当用户请求到达INPUT时,IPVS会将用户请求和自己已定义好的集群
    服务进行比对,如果用户请求的就是定义的集群服务,那么此时IPVS会强行修改数据包里的目标IP
    地址及端口,并将新的数据包发往POSTROUTING链
  4. POSTROUTING链接收数据包后发现目标IP地址刚好是自己的后端服务器,那么此时通过选路,将
    数据包最终发送给后端的服务器

2. LVS-DR模式工作原理

首先,来自客户端计算机CIP的请求被发送到Director的VIP。然后Director使用相同的VIP目的IP地址将
请求发送到集群节点或真实服务器。然后,集群某个节点将回复该数据包,并将该数据包直接发送到客
户端计算机(不经过director),并且以此回复数据包使用的目的VIP 地址作为源IP地址。因此,实际上
是客户计算机被“欺骗”了,客户计算机始终认为它正与同一台计算机对话,而实际上它正在发送请求数
据包给一台计算机(LB),并从另一台计算机(RS)接收回复的数据包。

二、 LVS-DR模式应用特点

1.所有集群节点RS必须和Director在相同的物理网段(即同一个局域网中);
2.所有客户端入站(而不是出站)请求由Director首先接收,并转发给集群节点RS;
3.集群节点RS通常来说最好带外部IP,而不使用Director及某固定机器作为默认网关,以便将数据包直
接回复给客户端计算机,且不会产生回包的瓶颈;
4.所有集群节点RS上必须在lo网卡上绑定VIP地址,以便验证通过目的IP非RS的数据包;
5.由于所有集群节点RS上必须在lo网卡上绑定VIP地址,因此,带来arp问题,即集群节点RS默认会相
应发往Director VIP的数据包。因此要对所有集群节点RS做ARP抑制处理,把响应VIP的请求交给LVS
Director;
6.很多操作系统都可以用在集群内部的RS真实服务器上只要该操作系统能够实现ARP隐藏,如:
Windows,linux,unix;
7.LVS/DR模式不需要开启调度器转发功能,这点和LVS/NAT模式是不同的。
8.LVS/DR Director(服务器数量100台)可以比LVS-NAT Director(服务器数量10-20台)承受更多的
并发请求和转发更多的服务器数量。

三、LVS – DR 模式集群构建

1.前期环境准备

这里我准备了四台主机,一台充当lvs,两台充当web集群,还有一台客户端

在这里插入图片描述

在lvs上安装配置工具

yum install ipvsadm

然后这里选择使用apache工具,在web集群上安装
使用apache和nginx都可以
基于 CentOS 7 构建 LVS-DR 群集_第2张图片

2.配置LVS

配置vip,即虚拟ip
配置在同一网段的即可
基于 CentOS 7 构建 LVS-DR 群集_第3张图片
手工执行配置添加LVS服务并增加两台RS

 ipvsadm -C #清除lvs配置
 ipvsadm -A -t 192.168.45.200:80 -s rr
 ipvsadm -a -t 192.168.45.200:80 -r 192.168.45.141:80 -g
 ipvsadm -a -t 192.168.45.200:80 -r 192.168.45.142:80 -g

这里采用比较简单的做法,没有添加条件,方便快速测试
去查看lvs配置,可以看见两台RS已经添加上
基于 CentOS 7 构建 LVS-DR 群集_第4张图片

3.配置RS

在每台RS上配置

ifconfig lo:200 192.168.45.200 netmask 255.255.255.255 
echo "web test page , ip is 'hostname -I'." > /var/www/html/index.html #用于客户端测试

添加本机访问VIP的路由

route add -host 192.168.45.200 dev lo

然后进行arp抑制

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/ens33/arp_ignore
echo "2" > /proc/sys/net/ipv4/conf/ens33/arp_announce

最后在客户端上面测试

for ((i=1;i<=6;i++))
> do
> curl 192.168.45.200
> done

如果交替出现说明配置成功

你可能感兴趣的:(centos,lvs,linux)