LVS-DR集群(一台LVS,一台CIP,两台web,一台NFS)的构建以及LVS-DR模式工作原理和特点

news2024/11/19 10:47:04

一.LVS-DR工作模式原理和特点

1.工作模式

2.模式特点

二.构建环境

1.五台关闭防火墙,关闭selinux,拥有固定IP,部署有http服务的虚拟机,LVS设备下载ipvsadm工具,NFS 设备需要下载rpcbind和nfs-utils

2.实现功能

3.ipvsadm命令部分参数介绍

三.配置和测试

1.LVS设备

(1)配置VIP,并清除原有的虚拟服务规则

(2)为两台web服务器配置算法和服务规则,并启用保存ipvsadm配置

(3)调整proc响应参数,关闭ICMP重定向并重新读取

2.NFS服务器

(1)配置共享目录并写入html内容

(2)调整NFS共享配置,允许两台web服务器所在网段进行共享

3.web服务器1

(1)绑定VIP并开通到达VIP的路由

(2)屏蔽ARP响应

(3)也可以临时设置

(4)进行NFS共享文件夹挂载,挂载到httpd的页面默认目录

4.web服务器2

(1)绑定VIP并开通到达VIP的路由

(2)屏蔽ARP响应

(3)同上,也可以临时设置

(4)进行NFS共享文件夹挂载,挂载到httpd的页面默认目录

5.CIP上测试


 

 

一.LVS-DR工作模式原理和特点

1.工作模式

用户通过路由器等网络设备访问VIP向负载均衡调度器发出数据请求;VIP将其发送到内核空间中的PREROUTING链,此链判断目标IP是本机以后将包发给INPUT链;此链中的IPVS会将用户请求与自己定义好的集群服务进行对比,匹配成功将会改变数据包的目标mac地址为RS的mac地址,后发给POSTROUTING链;此链确认目标mac地址与RSmac地址匹配后将包发给RS组;RS组处理完直接将结果返还给用户。

badc3670ddef4578bbeacf724aeaa528.png

2.模式特点

(1)所有集群节点RS必须和director server位于同一局域网。

(2)所有客户端入站流量由director server首先接收,再判断是否转发给RS。

(3)集群节点RS最好带有外部IP,为便于将数据包直接返还用户,不使用固定机器作为默认网关。

(4)所有集群节点RS必须以环回(lo)网卡设备上绑定VIP,便于验证。

(5)集群节点RS需要进行ARP抑制来把相应VIP的请求交给LVS director server。

(6)LVS-DR不需要开启调度转发器功能。

(7)LVS-DR可以承受比LVS-NAT更多的并发数据请求和服务器数量。

二.构建环境

1.五台关闭防火墙,关闭selinux,拥有固定IP,部署有http服务的虚拟机,LVS设备下载ipvsadm工具,NFS 设备需要下载rpcbind和nfs-utils

[root@localhost ~]# yum install -y ipvsadm.x86_64


[root@localhost ~]# yum install -y rpcbind nfs-utils

2.实现功能

CIP用户通过网络向LVS集群发出数据请求,LVS经过算法将请求分配给web1或web2,这两台web服务器将从nfs共享到的内容返回给用户

0c34728aeab746c88bb1f965c391fb3a.png

3.ipvsadm命令部分参数介绍

-A添加一条新的虚拟服务
-a在一个虚拟服务中添加一个新的真实服务器
-E编辑虚拟服务
-e编辑某个真实服务器
-D删除虚拟服务
-d删除某个真实服务器
-C清除所有的虚拟服务规则
-c显示IPVS中目前存在的连接,分析调度情况
-R恢复虚拟服务规则
-L显示内核中的虚拟服务规则
-n以数字形式显示IP端口
-Z将转达消息的统计清零
-p配置持久化时间
-t,-u配置tcp或udp协议的虚拟服务
-g,-m,i设置LVS模块为DR,NAT,TUN
-w配置真实服务器的权重
-s配置负载均衡算法,建议使用rr,wrr,lc,wlc等几个常用的算法
--stats

显示历史转发消息累计统计

Conns表示已经转发过的连接数
InPkts表示入包个数
OutPkts表示出包个数
nBytes表示入流量(字节)
OutBytes表示出流量(字节)
--rate

显示转发速率信息,瞬时值

CPS表示每秒连接数
InPPS表示每秒的入包个数
OutPPS表示每秒的出包个数
InBPS表示每秒入流量(字节)
OutBPS表示每秒入流量(字节)

三.配置和测试

1.LVS设备

(1)配置VIP,并清除原有的虚拟服务规则

[root@localhost ~]# ifconfig ens33:188 192.168.2.188 netmask 255.255.255.0 up

[root@localhost ~]# ipvsadm -C

(2)为两台web服务器配置算法和服务规则,并启用保存ipvsadm配置

[root@localhost ~]# ipvsadm -A -t 192.168.2.188:80 -s rr  #指定使用tcp协议和rr调度算法

[root@localhost ~]# ipvsadm -a -t 192.168.2.188:80 -r 192.168.2.191 -g  #添加真实服务器,指定tcp协议和DR模式

[root@localhost ~]# ipvsadm -a -t 192.168.2.188:80 -r 192.168.2.192 -g

[root@localhost ~]# ipvsadm -Ln
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  192.168.2.188:80 rr
  -> 192.168.2.191:80             Route   1      0          0         
  -> 192.168.2.192:80             Route   1      0          0

[root@localhost ~]# ipvsadm
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
  -> RemoteAddress:Port           Forward Weight ActiveConn InActConn
TCP  localhost.localdomain:http rr
  -> 192.168.2.191:http           Route   1      0          0         
  -> 192.168.2.192:http           Route   1      0          0     
[root@localhost ~]# ipvsadm --save > /etc/sysconfig/ipvsadm      

(3)调整proc响应参数,关闭ICMP重定向并重新读取

[root@localhost ~]# 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
[root@localhost ~]# sysctl -p

2.NFS服务器

(1)配置共享目录并写入html内容

[root@localhost ~]# systemctl start nfs
[root@localhost ~]# systemctl start rpcbind
[root@localhost ~]# mkdir /share/{191,192} -pv
mkdir: created directory ‘/share’
mkdir: created directory ‘/share/191’
mkdir: created directory ‘/share/192’
[root@localhost ~]# cat /share/191/index.html 
share191
[root@localhost ~]# cat /share/192/index.html 
share192
[root@localhost ~]# chmod -R 777 /share/

(2)调整NFS共享配置,允许两台web服务器所在网段进行共享

[root@localhost ~]# vim /etc/exports
/share/191 192.168.2.0/24(rw,sync)
/share/192 192.168.2.0/24(rw,sync)
[root@localhost ~]# exportfs -rv
exporting 192.168.2.0/24:/share/192
exporting 192.168.2.0/24:/share/191

3.web服务器1

(1)绑定VIP并开通到达VIP的路由

[root@localhost ~]# ifconfig lo:188 192.168.2.188 netmask 255.255.255.255 up
[root@localhost ~]# route add -host 192.168.2.188 dev lo:188

(2)屏蔽ARP响应

[root@localhost ~]# vim /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
[root@localhost ~]# sysctl -p
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

(3)也可以临时设置

[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@localhost ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore
[root@localhost ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce
[root@localhost ~]# sysctl -p

arp_ignore——定义对目标地址为本地IP的ARP询问不同的应答模式
0 (默认值):回应任何网络接口上对任何本地IP地址的arp查询请求。
1 只回答目标IP地址是来访网络接口本地地址的ARP查询请求。
2 只回答目标IP地址是来访网络接口本地地址的ARP查询请求,且来访IP必须在该网络接口的子网段内。
3 不回应该网络界面的arp请求,而只对设置的唯一和连接地址做出回应。
4-7 保留未使用。
8 不回应所有(本地地址)的arp查询

arp_announce——对网络接口上,本地IP地址发出的ARP回应,做出相应级别的限制
0 (默认)在任意网络接口(eth0,eth1,lo)上的任何本地地址
1 尽量避免不在该网络接口子网段的本地地址做出arp回应,当发起ARP请求的源IP地址是被设置应该经路由到达此网络接口的时候很有用,此时会检查来访IP是否为所有接口上的子网段内ip之一。如果该来访IP不属于各个网络接口上的子网段内,那么将采用级别2的方式来进行处理。
2 对查询目标是要最适当的本地地址,在此模式下将忽略这个IP数据包的源地址并尝试选择与能与该地址通 信的本地地址。首要是选择所有的网络接口的子网中外出访问子网中包含该目标IP地址的本地地址。如果没有合适的地址被发现,将选择当前的网络发送接口或其他的有可能接受到该ARP回应的网络接口来进行发送。限制了使用本地的vip地址作为优先的网络接口。

(4)进行NFS共享文件夹挂载,挂载到httpd的页面默认目录

[root@localhost ~]# mount 192.168.2.193:/share/191 /var/www/html/
[root@localhost ~]# df -h
Filesystem                Size  Used Avail Use% Mounted on
devtmpfs                  5.1G     0  5.1G   0% /dev
tmpfs                     5.1G     0  5.1G   0% /dev/shm
tmpfs                     5.1G   12M  5.1G   1% /run
tmpfs                     5.1G     0  5.1G   0% /sys/fs/cgroup
/dev/mapper/centos-root    44G  4.9G   40G  11% /
/dev/sda1                1014M  151M  864M  15% /boot
/dev/sr0                  4.4G  4.4G     0 100% /cdrom
tmpfs                     1.1G     0  1.1G   0% /run/user/0
192.168.2.193:/share/191   44G  3.2G   41G   8% /var/www/html


#开机自动挂载
[root@localhost ~]# vim /etc/fstab
192.168.2.193:/share/191 /var/www/html nfs defaults,_netdev 0 0

4.web服务器2

(1)绑定VIP并开通到达VIP的路由

[root@localhost ~]# ifconfig lo:188 192.168.2.188 netmask 255.255.255.255 up
[root@localhost ~]# route add -host 192.168.2.188 dev lo:188

(2)屏蔽ARP响应

[root@localhost ~]# vim /etc/sysctl.conf 
[root@localhost ~]# sysctl -p
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

(3)同上,也可以临时设置

(4)进行NFS共享文件夹挂载,挂载到httpd的页面默认目录

[root@localhost ~]# mount 192.168.2.193:/share/192 /var/www/html/
[root@localhost ~]# df -h
Filesystem                Size  Used Avail Use% Mounted on
devtmpfs                  5.1G     0  5.1G   0% /dev
tmpfs                     5.1G     0  5.1G   0% /dev/shm
tmpfs                     5.1G   12M  5.1G   1% /run
tmpfs                     5.1G     0  5.1G   0% /sys/fs/cgroup
/dev/mapper/centos-root    44G  3.2G   41G   8% /
/dev/sda1                1014M  151M  864M  15% /boot
/dev/sr0                  4.4G  4.4G     0 100% /cdrom
tmpfs                     1.1G     0  1.1G   0% /run/user/0
192.168.2.193:/share/192   44G  3.2G   41G   8% /var/www/html


#开机自动挂载
[root@localhost ~]# vim /etc/fstab
192.168.2.193:/share/192 /var/www/html nfs defaults,_netdev 0 0

5.CIP上测试

[root@localhost ~]# for ((i=1;i<=10;i++));  
> do
> curl 192.168.2.188
> done
share191
share192
share191
share192
share191
share192
share191
share192
share191
share192
#我调度算法设置的是rr,均值轮询也就是服务器一次获得分配任务,交替返回结果,若是需要一些差别,可以设置为wrr权重轮询,那么在添加规则时就要使用-w去指定权重

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/898418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

win11调整屏幕亮度

1.右键打开 2.显示更多选项 3.NVIDIA控制面板 4.调整桌面颜色设置 5.亮度

linux 搭建 nexus maven私服

环境&#xff1a; 必须在 linux 环境下&#xff0c;并且已安装 jdk 下载 访问百度网盘链接: https://pan.baidu.com/s/1fHGmQ2jRUAsXyPom2KL8Mw?pwd0000 提取码: 0000 官网下载 Download Archives - Repository Manager 3 (sonatype.com) 部署 &#xff1a; 进入目录&#…

Echarts:象形柱图实现水塔水位的动画、水球图和液位柱子图

一、象形柱图 1、vue中使用象形柱图 效果图&#xff1a; 2、代码实现 <template><div :class"className" :style"{height:height,width:width}"/></template> <script>import echarts from echarts require(echarts/theme/macar…

论文浅尝 | KRACL-利用图上下文和对比学习的稀疏KG补全

笔记整理&#xff1a;李娟&#xff0c;浙江大学博士&#xff0c;研究方向为知识图谱表示学习 论文链接&#xff1a;https://arxiv.org/pdf/2208.07622.pdf 代码链接&#xff1a;https://github.com/TamSiuhin/KRACL 介绍 知识图谱&#xff08;KG&#xff09;通常是不完整的&…

注意力机制——SENet原理详解及源码解析

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;专栏推荐&#xff1a;深度学习网络原理与实战 &#x1f34a;近期目标&#xff1a;写好专栏的每一篇文章 &#x1f34a;支持小苏&#xff1a;点赞&#x1f44d;&#x1f3fc;、…

【ROS】话题通信--从理论介绍到模型实现(C++)

1.简单介绍 话题通信是ROS中使用频率最高的一种通信模式&#xff0c;话题通信是基于发布订阅模式的&#xff0c;也即:一个节点发布消息&#xff0c;另一个节点订阅该消息。像雷达、摄像头、GPS… 等等一些传感器数据的采集&#xff0c;也都是使用了话题通信&#xff0c;换言之…

windows 配置 Kerberos客户端访问CDH组件

0.背景 想在window机器上访问内网集群的CDH组件(如solr的webui),由于集群配置了Kerberos验证,所以需要配置相关,否则打开webui会有401未授权错误 1. 流程 1.1 windows安装Kerberos客户端 -下载 Windows系统客户端去下面网站按需下载 http://web.mit.edu/kerberos/dist/ 需要…

【力扣】496. 下一个更大元素 I <单调栈、模拟>

【力扣】496. 下一个更大元素 I nums1 中数字 x 的 下一个更大元素 是指 x 在 nums2 中对应位置 右侧 的 第一个 比 x 大的元素。给你两个没有重复元素的数组 nums1 和 nums2 &#xff0c;下标从 0 开始计数&#xff0c;其中nums1 是 nums2 的子集。   对于每个 0 < i <…

喜报 | 擎创再度入围IDC中国FinTech 50榜单

8月16日&#xff0c;2023年度“IDC中国FinTech 50”榜单正式揭晓&#xff0c;擎创科技继2022年入选该榜单后&#xff0c;再次以创新者姿态成功入选&#xff0c;并以技术赋能业务创新&#xff0c;成为中国金融科技领域创新与活力的重要贡献者。 “IDC中国FinTech 50”旨在评选出…

RabbitMq交换机类型介绍

RabbitMq交换机类型介绍 在RabbitMq中&#xff0c;生产者的消息都是通过交换器来接收&#xff0c;然后再从交换器分发到不同的队列&#xff0c;再由消费者从队列获取消息。这种模式也被成为“发布/订阅”。 分发的过程中交换器类型会影响分发的逻辑。 直连交换机&#xff1a…

高校大学生社团管理系统的设计与实现(论文+源码)_kaic

目 录 一、绪论 &#xff08;一&#xff09;选题背景 1、社团管理系统的提出 &#xff08;二&#xff09;系统设计的原则与目标 1、系统设计原则 2、系统设计目标 二、系统关键技术的分析 &#xff08;一&#xff09;JSP技术 &#xff08;二&#xff09;Tomcat简介 1、SERVL…

虚拟机远程连接出现 Connection refused: connect问题(已解决)

如果你也跟我一样出现了这样的问题&#xff0c;并且网上的方法试了都不行&#xff0c;不妨试试我的简单粗暴的方法&#xff0c; 那就是拔网线&#xff0c;我的就是拔网线&#xff0c;重新连接就行了&#xff0c;佛了

Creating a document in Overleaf

1、Uploading a project上传项目 This artcle provides a step-by-step guide showing how to create an Overleaf project by uploading a .zip file containing LaTeX files stored on your local computer 1、Create a .zip file containing your local files (images, bib…

如何优雅的进行接口设计?接口设计的六大原则是什么?

如何优雅的进行接口设计&#xff1f;接口设计的六大原则是什么&#xff1f; 本文关于如何优雅的进行接口设计&#xff1f;接口设计的六大原则是什么&#xff1f; 作为后端开发&#xff0c;不管是什么语言&#xff0c;Java、Go还是C&#xff0c;其背后的后端思想都是类似的。后…

JAVA免杀学习与实验

1 认识Webshell 创建一个JSP文件&#xff1a; <% page import"java.io.InputStream" %> <% page import"java.io.BufferedReader" %> <% page import"java.io.InputStreamReader" %> <% page language"java" p…

【linux基础(四)】对Linux权限的理解

&#x1f493;博主CSDN主页:杭电码农-NEO&#x1f493;   ⏩专栏分类:Linux从入门到开通⏪   &#x1f69a;代码仓库:NEO的学习日记&#x1f69a;   &#x1f339;关注我&#x1faf5;带你学更多操作系统知识   &#x1f51d;&#x1f51d; Linux权限 1. 前言2. shell命…

Linux 进程间通信——共享内存

一、共享内存原理 共享内存为多个进程之间共享和传递数据提供了一种有效的方式。共享内存是先在物理内存上申请一块空间&#xff0c;多个进程可以将其映射到自己的虚拟地址空间中。所有进程都可以访问共享内存中的地址&#xff0c;就好像它们是由malloc分配的一样。如果某个进…

实现一个自动保存高CPU占用现场的简易工具

CPU 使用率在系统监控中是一个非常重要的指标。对于大多数 Web 应用来说&#xff0c;它们往往是 IO 密集型的&#xff0c;因此只会在某些时刻可能会出现 CPU 突然飙升的情况&#xff0c;随后很快就恢复正常。然而&#xff0c;当收到报警并想要排查问题时&#xff0c;CPU 飙升的…

Windows10上VS2022单步调试FFmpeg 4.2源码

之前在 https://blog.csdn.net/fengbingchun/article/details/103735560 介绍过通过VS2017单步调试FFmpeg源码的方法&#xff0c;这里在Windows10上通过VS2022单步调试FFmpeg 4.2的方法&#xff1a;基于GitHub上ShiftMediaProject/FFmpeg项目&#xff0c;下面对编译过程进行说明…