首页 > 其他分享 >部署LVS-DR群集

部署LVS-DR群集

时间:2022-11-28 09:11:07浏览次数:40  
标签:LVS 群集 ip 192.168 Server MAC conf lo DR

 

 

 

 

 

 

 

 

一、LVS-DR工作原理

LVS-DR(Linux Virtual Server Director Server)工作模式,是生产环境中最常用的一种工作模式

LVS-DR模式,Director Server 作为群集的访问入口,不作为网关使用。

节点Director Server 与Real Server 需要在同一个网络中,返回给客户端的数据不需要经过Director Server。

为了对整个群集的访问,Dreector Server和Real Server都需要配置VIP地址

1 LVS-DR数据包流向分析

 Clinent向目标VIP发出请求,Director(负载均衡器)接收

源ip:客户端ip,目标ip:虚拟ip,源MAC:客户端MAC地址,目标MAC:负载均衡器的MAC地址

 Director根据负载均衡算法选择RealServer_1(真实服务器),不修改也不封装IP报文,而是将数据帧的MAC地址改为RealServer_1的MAC地址,然后在局域网上发送。

源ip:虚拟ip,目标ip:真实虚拟ip,源MAC:负载均衡器MAC,目标MAC:真实服务器MAC

 RealServer_1收到这个帧,解封装后发现目标IP与本机匹配(RealSERVERS事先绑定了VIP),于是处理这个报文,随后重新封装报文,发送到局域网。

源ip:虚拟ip,目标ip:客户机ip,源MAC:真实ens33网卡MAC,目标MAC:客户端MAC

注意:如果跨网段,则报文通过路由器经由internet返回给用户

 

Client将收到回复报文,Client认为得到正常的服务,而不会知道是那一台服务器处理的。

 

详细流程分析

客户端通过路由器将访问请求发送到内网当中,需要通过APR将源地址解析为MAC地址进行访问,但是由于内网中DS(负载调度器)和RS(真实服务器)都配置了VIP,他们都可收到APR请求,并返回自己的MAC,这时候客户端的数据不知道往哪个上面发送,那就需要通过在真实服务器上配置  “路由紧固” + “只响应目标为本机ens33网卡信息的请求参数” ,因为DR上配置的是虚拟子接口,可以接收到信息,而RS,配置的是环回地址,无法收到ARP请求,那么这样就只有DS收到请求。收到请求后,客户端通过封装DS的MAC地址,进行二层转发。

DS收到请求后,通过调度算法选择需要转发的RS站点,因为都在局域网内此时转发只是二层的转发,那怎么发给RS站点呢?二层转发是局域MAC地址转发的,通过ARP获得RS的MAC地址,将获得的MAC地址封装为目标MAC地址,进行数据转发。

RS收到请求后,它可以直接请请求返回给客户端,不需要再经过DS,因为,它获取到数据包后,把数据包交个自己的ens33网卡,由ens33网卡将数据包转发出去,ens33进行APR广播,这里为了不修改ARP表的内容,在进行ARP广播,使用的源ip为RS的ens33接口ip。广播得到了客户机的MAC地址,再进行将数据转发,转发时,使用的源ip为:环回ip,源MAC为:ens33MAC,目标地址为:客户机地址,目标MAC为客户机MAC。

客户机收到数据包后,发现数据包的源地址为VIP,并不知道是哪一台服务器处理的,下次再发出请求时,直接根据ARP中的表项将数据再次转发到DS

 

 

 

 

 

 2 DR模式的特点

(1)Director Server(调度器) 和 Real Server(节点服务器) 必须在同一个物理网络中。

(2)Real Server可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过互联网对RIP进行直接访问。

(3)Director Server作为群集的访问入口,但不作为网关使用。

(4)所有的请求报文经由Director Server, 但回复响应报文不能经过Director Server。

(5) Real Server 的网关不允许指向Director Server IP, 即Real Server发送的数据包不允许经过Director Server。(RS的网关地址只能指定真实的路由器网关)

(6) Real Server 上的 lo 接口配置VIP的IP地址。

 

LVS单网段DR模式部署

五台虚拟机(两台web服务虚拟机,一台DR负载均衡调度器,一台客户机,一台NFS共享服务机),具体IP配置如下:

 DR 服务器:192.168.73.105

Web 服务器1:192.168.73.106

Web 服务器2:192.168.73.107

NFS共享服务机:192.168.73.108

客户端:192.168.73.109

vip:192.168.73.66

 

 

配置DR

systemctl stop firewalld
setenforce 0
vim /etc/selinux/config
SELINUX=disabled
modprobe ip_vs
cat /proc/net/ip_vs
yum -y install ipvsadm
 
 

配置虚拟IP

cd /etc/sysconfig/network-scripts/
cp ifcfg-ens33 ifcfg-ens33:0                #若隧道模式,复制为ifcfg-tunl0
vim ifcfg-ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.73.66
NETMASK=255.255.255.255
 
ifup ens33:0
ifconfig ens33:0

调整相应参数

#由于 LVS 负载调度器和各节点需要共用 VIP 地址,需要关闭 icmp 的重定向,不充当路由器。
vim /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
 
sysctl -p

配置负载分配

ipvsadm-save > /etc/sysconfig/ipvsadm
systemctl start ipvsadm
 
ipvsadm -C
ipvsadm -A -t 192.168.73.66:80 -s rr
ipvsadm -a -t 192.168.73.66:80 -r 192.168.73.106:80 -g            #若隧道模式,-g替换为-i
ipvsadm -a -t 192.168.73.66:80 -r 192.168.73.107:80 -g
ipvsadm
 
ipvsadm -ln                    #查看节点状态,Route代表 DR模式

 

 

部署共享存储NFS

systemctl stop firewalld.service
setenforce 0
 
yum -y install nfs-utils rpcbind
mkdir /opt/web1 /opt/web2
chmod 777 /opt/web1 /opt/web2
 
vim /etc/exports
/usr/share *(ro,sync)
/opt/web1 192.168.73.0/24(rw,sync)
/opt/web2 192.168.73.0/24(rw,sync)
 
systemctl start rpcbind.service
systemctl start nfs.service

 

 配置节点服务器

配置虚拟IP

#此地址仅用作发送 Web响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器监听并分发)。因此使用虚接口 lo∶0 来承载 VIP 地址,并为本机添加一条路由记录,将访问 VIP 的数据限制在本地,以避免通信紊乱。
cd /etc/sysconfig/network-scripts/
cp ifcfg-lo ifcfg-lo:0        
vim ifcfg-lo:0
DEVICE=lo:0
ONBOOT=yes
IPADDR=192.168.73.66
NETMASK=255.255.255.255                        #注意:子网掩码必须全为 1
 
ifup lo:0
ifconfig lo:0
route add -host 192.168.73.66 dev lo:0
 
vim /etc/rc.local
/sbin/route add -host 192.168.73.66 dev lo:0
 
chmod +x /etc/rc.d/rc.local

调整内核ARP,防止IP地址与MAC地址冲突

vim /etc/sysctl.conf
 
 
net.ipv4.conf.lo.arp_ignore = 1            #系统只响应目的IP为本地IP的ARP请求
net.ipv4.conf.lo.arp_announce = 2        #系统不使用IP包的源地址来设置ARP请求的源地址,而选择发送接口的IP地址
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
sysctl -p
 
或者
(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/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
 
sysctl -p)
 
yum -y install nfs-utils rpcbind httpd
systemctl start rpcbind
systemctl start httpd

web1网页测试

 
mount.nfs 192.168.73.108:/opt/web1 /var/www/html
echo '<h1>this is  web1 test !</h1>' > /var/www/html/index.html

 

 web2网页测试

mount.nfs 192.168.73.108:/opt/benet /var/www/html
echo '<h1>this is web2 test!</h1>' > /var/www/html/index.html

 

 关掉主配置保持连接

vim  /etc/httpd/conf/httpd.conf
 
KeepAlive off

 

 客户机访问VIP地址

 

 

 

 

总结

LVS-DR模式部署总结

NFS服务器的设置

(1)安装nfs-utils、rpcbind软件包

(2)新建共享目录,并创建站点文件

(3)修改共享配置文件,设置共享策略

(4)启动两个服务,查看本机的NFS共享信息

调度器设置:

(1)加载 ip_vs 模块,安装ipvsadm工具

(2)配置虚拟网卡(ens33:0)IP地址(VIP)

(3)条件proc参数,并且关闭路由转发功能

(4)使用ipvsadm工具配置负载均衡策略(配置时注意,该转发设置基于VIP设置,而非调度器本身的IP)

节点服务器配置

 (1)安装httpd服务,并且创建各自的测试网页(真实环境是多个节点服务器挂同一个NFS共享机,并且内容网页相同。)

(2)添加虚拟网卡,与调度器不同,节点服务器设置的虚拟网卡为回环的虚拟网卡(lo:0),用于承载VIP,做自身数据处理

  (3)调整内核(/etc/sysctl.conf)的参数设置,以阻止更新 VIP 的 MAC 地址,避免发生冲突。

  (4)添加路由,指定设备为回环的虚拟网卡(也是承载VIP的虚拟网卡)

 

标签:LVS,群集,ip,192.168,Server,MAC,conf,lo,DR
From: https://www.cnblogs.com/123456789SI/p/16909128.html

相关文章

  • 龙哥量化:通达信DRAWICON的图标副图显示效果(鸡肋,可以不看)
    新建一个副图指标,复制粘贴源码,先看一下效果图  DRAWTEXT_FIX(1,0.01,0.01,0,'通达信中DRAWICON的图标,方便大家折腾指标'),COLORMAGENTA;A:=CURRBARSCOUNT;A1:=8;A......
  • DRF组件--2
    DRF组件--权限功能自己定义一个权限类,其中必须包含has_permission方法classMyPermission(object):#创建一个权限类。里面写具体的权限划分defhas_permissio......
  • 关于为什么ip addr ,yum无法安装,防火墙失效的原因
    今天找了两个小时,  如图,有些配置配置完成之后命令丢失进不去,ping不通,多半是配置环境变量的时候直接写到最底下去了!,记得写到unset-fpathmunge下面,否则就......
  • DRF组件--认证
    DRF---认证功能自己定义一个认证类,其中类中必定要有authenticate方法classMyAuthentication():defauthenticate(self,request):token=request._reque......
  • 微软应用植入联想和Moto的Android机
    微软目前的Windows机型已经很久没有了消息,不过其旗下的软件却在更广泛的布局当中,目前三星等手机当中都内置了微软Office等软件,同时,微软似乎在试图将自家软件登陆在更多品牌......
  • DRF序列化
    DRF序列化目录DRF序列化序列化组件序列化序列化类的字段类型序列化类型的选项参数反序列化put反序列化需要实现序列器类父类的update方法反序列化校验read_only和write_on......
  • DRF前置及初识
    DRF前置及初识目录DRF前置及初识WEB应用(开发)模式API接口postman的使用Restful规范drf安装和使用CBV源码View源码APIView源码新request对象nullWEB应用(开发)模式API接口#......
  • DRF路由、认证、权限、频率
    DRF路由、认证、权限、频率目录DRF路由、认证、权限、频率路由原来直接在urls.py中直接.as_view()即可现在继承了ModelViewSet的视图类action的使用认证源码写认证类认证......
  • DRF过滤、排序、异常处理、自定义Response、分页
    DRF过滤、排序、异常处理、自定义Response、分页目录DRF过滤、排序、异常处理、自定义Response、分页过滤局部过滤排序异常处理封装Response对象分页三种分页方式PageNumb......
  • Numerical integration/Gauss-Legendre Quadrature 高斯勒让德积分
    https://rosettacode.org/wiki/Numerical_integration/Gauss-Legendre_Quadrature#Fortran ==============Gauss积分部分fromnumpy.polynomial.legendreimportleg......