基于 CentOS 7 构建 LVS-DR 群集

文章目录

一、LVS-DR集群介绍

1.LVS的基本工作原理

  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上安装配置工具

bash 复制代码
yum install ipvsadm

然后这里选择使用apache工具,在web集群上安装

使用apache和nginx都可以

2.配置LVS

配置vip,即虚拟ip

配置在同一网段的即可

手工执行配置添加LVS服务并增加两台RS

bash 复制代码
 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已经添加上

3.配置RS

在每台RS上配置

bash 复制代码
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的路由

bash 复制代码
route add -host 192.168.45.200 dev lo

然后进行arp抑制

bash 复制代码
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

最后在客户端上面测试

bash 复制代码
for ((i=1;i<=6;i++))
> do
> curl 192.168.45.200
> done

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

相关推荐
2035去旅行8 小时前
bootcmd 详细讲解
linux·嵌入式·arm·soc
陈希1239 小时前
Linux 防火墙配置实战:firewalld、iptables 与云安全组
linux·运维·服务器
女神下凡10 小时前
芯参谋(95):嵌入式文件系统_开发指南
linux·服务器·arm开发·驱动开发·设计规范
且从容.13 小时前
Ubuntu安装flume
linux·ubuntu·flume
承渊政道13 小时前
Linux网络学习【Reactor反应堆模式】
linux·网络·学习·ubuntu·reactor
且从容.16 小时前
ubuntu安装flink
linux·ubuntu·flink
爱和冰阔落18 小时前
【Linux网络】TCP 服务器如何并发处理多个客户端?从 fork、僵尸进程到双重 fork
linux·运维·服务器·网络
程序员沉梦听雨18 小时前
WSL2的安装与使用
linux·wsl
微小的鱼18 小时前
Linux的渲染与显示系统链路
android·java·linux
lisanmengmeng18 小时前
alertmanger 标签 rules 打上分组标签
linux·运维·服务器