部署 LVS-DR 群集

本章内容:
  • -了解LVS-DR群集的工作原理
  • -会构建LVS-DR负载均衡群集
2.1 LVS-DR 集群
LVS-DR Linux Virtual Server Director Server )工作模式,是生产环境中最常用的一
种工作模式。
2.1.1 LVS-DR 工作原理
LVS-DR 模式, Director Server 作为群集的访问入口,不作为网关使用,节点 Director
Server Real Server 需要在同一个网络中,返回给客户端的数据不需要经过 Director
Server 。为了响应对整个群集的访问, Director Server Real Server 都需要配置 VIP 地址,
工作原理如图 2.1 所示。
2.1 DR 模式工作原理
2.1.2 .数据包流向分析
以下为数据包流向分析步骤。
1. 客户端发送请求到 Director Server, 请求的数据报文(源 IP CIP, 目标 IP VIP
到达内核空间。
2. Director Server Real Server 在同一个网络中,数据通过二层数据链路层来传输。
3. 内核空间判断数据包的目标 IP 是本机 VIP ,此时 IPVS 比对数据包请求的服务是否
是集群服务,是集群服务就重新封装数据包。修改源 MAC 地址为 Director Server MAC
地址,修改目标 MAC 地址为 Real Server MAC 地址,源 IP 地址与目标 IP 地址没有改
变,然后将数据包发送给 Real Server
4. 到达 Real Server 的请求报文的 MAC 地址是自身的 MAC 地址,就接收此报文。数
据包重新封装报文 ( IP 地址为 VIP ,目标 IP CIP) ,将响应报文通过 lo 接口传送给物理
网卡然后向外发出。
5. Real Server 直接将响应报文传送到客户端。
2.1.3 LVS-DR 模式特点
下面是 LVS-DR 模式的特点:
Director Server Real Server 必须在同一个物理网络中。
Real Server 可以使用私有地址,也可以使用公网地址。如果使用公网地址,可以通过
互联网对 RIP 进行直接访问。
所有的请求报文经由 Director Server ,但回复响应报文不能经过 Director Server
Real Server 的网关不允许指向 Director Server IP ,即 不允许数据包经过 Director S
erver
Real Server 上的 lo 接口配置 VIP IP 地址。
2.2 案例:直接路由模式( LVS-DR
2.2.1 .准备案例环境
DR 模式的群集中, LVS 负载调度器作为群集的访问入口,但不作为网关使用;服
务器池中的所有节点都各自接入 Internet ,发送给客户机的 Web 响应数据包不需要经过
LVS 负载调度器,如图 2.2 所示。
这种方式入站、出站访问数据被分别处理,因此 LVS 负载调度器和所有的节点服务器
都需要配置 VIP 地址,以便响应对整个群集的访问。考虑到数据存储的安全性,共享存储
设备会放在内部的专用网络中。
2.2.2 .配置负载调度器
下面是 配置负载调度器的具体步骤。
1. 配置虚拟 IP 地址( VIP
采用虚接口的方式( ens33 0 ),为网卡 ens33 绑定 VIP 地址,以便响应群集访问。
[root@zw ~]# cd /etc/sysconfig/network-scripts/
[root@zw network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0
[root@zw network-scripts]# vim ifcfg-ens33:0
NAME=ens33:0
DEVICE=ens33:0
ONBOOT=yes
IPADDR=192.168.248.100
NETMASK=255.255.255.255
[root@zw network-scripts]# ifup ifcfg-ens33:0
[root@zw network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.248.78  netmask 255.255.255.0  broadcast 192.168.248.255inet6 fe80::3a56:a61b:f0f3:fd09  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:d9:07:16  txqueuelen 1000  (Ethernet)RX packets 1342  bytes 143729 (140.3 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 1055  bytes 126013 (123.0 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.248.100  netmask 255.255.255.255  broadcast 192.168.248.100ether 00:0c:29:d9:07:16  txqueuelen 1000  (Ethernet)lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255ether 52:54:00:24:31:78  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@zw network-scripts]# 
2. 调整/proc响应参数
  • 对于 DR 群集模式来说,由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭 Linux 内核重定向参数响应
  • 服务器不是一台路由器,那么它不会发送重定向,所以可以关闭该功能
[root@zw network-scripts]# vim /etc/sysctl.conf net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0[root@zw network-scripts]# sysctl -p
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@zw network-scripts]#
3. 配置负载分配策略
[root@zw ~]# modprobe ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
[root@zw ~]# yum -y install ipvsadm
[root@zw ~]# ipvsadm -v
ipvsadm v1.27 2008/5/15 (compiled with popt and IPVS v1.2.1)
[root@zw ~]# [root@zw ~]# ipvsadm -C
[root@zw ~]# ipvsadm -a -t 192.168.248.78:80 -r 192.168.248.88:80 -g -w 1
[root@zw ~]# ipvsadm-save > /etc/sysconfig/ipvsadm
[root@zw ~]# cat /etc/sysconfig/ipvsadm
-A -t www.test.com:http -s rr
-a -t www.test.com:http -r 192.168.248.88:http -g -w 1
[root@zw ~]# systemctl start ipvsadm.service
[root@zw ~]# systemctl enable ipvsadm.service
4. 配置存储服务器192.168.248.215
[root@uuu ~]# yum -y install nfs-utils rpcbind
[root@uuu ~]# mkdir -p /opt/wwwroot
[root@uuu ~]# vim /etc/exports
/opt/wwwroot 192.168.248.0/24(rw,sync,no_root_squash)
[root@uuu ~]# systemctl restart rpcbind
[root@uuu ~]# systemctl restart nfs
5. 配置节点服务器192.168.8.88
[root@uuu ~]# yum -y install httpd
[root@uuu ~]# cd /etc/sysconfig/network-scripts/
[root@uuu network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@uuu network-scripts]# vim ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.248.78
NETMASK=255.255.255.255
ONBOOT=yes
[root@uuu ~]# yum install -y httpd
[root@uuu ~]# cd /etc/sysconfig/network-scripts/
[root@uuu network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@uuu network-scripts]# vim ifcfg-lo:0
[root@uuu network-scripts]# ifup lo:0
[root@uuu network-scripts]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.248.88  netmask 255.255.255.0  broadcast 192.168.248.255inet6 fe80::fa3a:33a0:cd48:1429  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:89:c9:b0  txqueuelen 1000  (Ethernet)RX packets 2581  bytes 1205845 (1.1 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 1446  bytes 184056 (179.7 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1000  (Local Loopback)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo:0: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 192.168.248.78  netmask 255.255.255.255loop  txqueuelen 1000  (Local Loopback)virbr0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500inet 192.168.122.1  netmask 255.255.255.0  broadcast 192.168.122.255ether 52:54:00:30:60:00  txqueuelen 1000  (Ethernet)RX packets 0  bytes 0 (0.0 B)RX errors 0  dropped 0  overruns 0  frame 0TX packets 0  bytes 0 (0.0 B)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0[root@uuu network-scripts]# 
[root@uuu network-scripts]# vim /etc/sysctl.conf
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[root@uuu network-scripts]# sysctl -p
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
[root@uuu network-scripts]# 
[root@uuu ~]# showmount -e 192.168.248.215
Export list for 192.168.248.215:
/opt/wwwroot 192.168.248.0/24
[root@uuu ~]# mount 192.168.248.215:/opt/wwwroot /var/www/html
[root@uuu ~]# vim /etc/fstab 
192.168.248.215:/opt/wwwroot           /var/www/html/     nfs   defaults,_netdev 0 0
[root@uuu ~]# systemctl start httpd.service 
[root@uuu ~]# systemctl enable httpd.service

然后就可以测试了

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM运行时数据区(下篇)

紧接上篇&#xff1a;JVM运行时数据区&#xff08;上篇&#xff09;-CSDN博客 堆 一般Java程序中堆内存是空间最大的一块内存区域。创建出来的对象都存在于堆上。 栈上的局部变量表中&#xff0c;可以存放堆上对象的引用。静态变量也可以存放堆对象的引用&#xff0c;通过静态…

记录Qt和opencv 新环境配置过程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、Qt是什么&#xff1f;二、Qt的版本三、安装步骤1.下载Qt2.双击安装包.exe开始安装3. 需要登陆才能继续安装&#xff0c;没有的就用邮箱注册账号4.注意安装路…

linux创建文件

创建文件夹&#xff1a; mkdir folder_name其中&#xff0c;folder_name是想要创建的文件夹的名称。 例如&#xff0c;如果想在当前目录下创建一个名为 "my_folder" 的文件夹&#xff0c;可以运行以下命令&#xff1a; mkdir my_folder如果想在特定路径下创建文件…

element-ui el-table表格勾选框条件禁用,及全勾选按钮禁用, 记录

项目场景&#xff1a; 表格的部分内容是可以被勾选的&#xff0c;部分内容是不可以被勾选的 使用的是 “element-plus”: “^2.2.22”, 以上应该都是兼容的 问题描述 要求el-table表格中&#xff0c;部分内容不可以被勾选&#xff0c;全选框在没有可选内容时&#xff0c;是禁…

RK3566RK3568安卓11隐藏状态栏带接口

文章目录 前言一、创建全局变量二、设置应用添加隐藏导航栏按钮三、添加按钮功能四、动态隐藏还有显示功能五、创建系统导航栏广播接口总结 前言 关于Android系统的状态栏&#xff0c;不同的客户有不同的需求: 有些客户需要永久隐藏状态栏&#xff0c;有些客户需要在设置显示中…

Flask框架小程序后端分离开发学习笔记《1》网络知识

Flask框架小程序后端分离开发学习笔记《1》网络知识 Flask是使用python的后端&#xff0c;由于小程序需要后端开发&#xff0c;遂学习一下后端开发。 一、网址组成介绍 协议&#xff1a;http&#xff0c;https (https是加密的http)主机&#xff1a;g.cn zhihu.com之类的网址…

通义灵码 - 免费的阿里云 VS code Jetbrains AI 编码辅助工具

系列文章目录 前言 通义灵码&#xff0c;是阿里云出品的一款基于通义大模型的智能编码辅助工具&#xff0c;提供行级/函数级实时续写、自然语言生成代码、单元测试生成、代码注释生成、代码解释、研发智能问答、异常报错排查等能力&#xff0c;并针对阿里云 SDK/OpenAPI 的使用…

【Java 设计模式】创建型之建造者模式

文章目录 1. 定义2. 应用场景3. 代码实现4. 应用示例结语 在软件开发中&#xff0c;建造者模式是一种创建型设计模式&#xff0c;它将一个复杂对象的构建与其表示分离&#xff0c;使得同样的构建过程可以创建不同的表示。建造者模式通常包括一个指导者&#xff08;Director&…

如何在 SwiftUI 中实现音频图表

文章目录 前言DataPoint 结构体BarChartView 结构体ContentView 结构体实现协议实现线图总结 前言 在可访问性方面&#xff0c;图表是复杂的事物之一。iOS 15 引入了一项名为“音频图表”的新功能。 下面我们将学习如何通过使用 accessibilityChartDescriptor 视图修饰符为任…

远程开发之vscode端口转发

远程开发之vscode端口转发 涉及的软件forwarded port 通过端口转发&#xff0c;实现在本地电脑上访问远程服务器上的内网的服务。 涉及的软件 vscode、ssh forwarded port 在ports界面中的port字段&#xff0c;填需要转发的IP:PORT&#xff0c;即可转发远程服务器中的内网端…

十、Three场景实现多个物体的合并

Three场景实现多个物体的合并 目的 产品需求是让物体的光柱墙包含一个多边形的区域,二而我的多边形只能使用原型,方向,多边形。那么再研究的时候就需要将这些多边形合并成为一个形状,那么就行实现了。 原先的图形 如上图,是两个mesh组成的。首先寻找mesh合并的方法。 第…

java日志框架总结

一、日志框架简单分类介绍 java常用的日志框架、可以分为两组&#xff1a; 1、JCL、JUL、Log4j&#xff1b; 2、SLF4J、Log4j2、Logback&#xff1b; 其中第一组是比较早期的日志实现框架&#xff0c;JCL并不是具体的日志实现框架&#xff0c;JCL其实是定义了一…

网络安全笔记-SQL注入

文章目录 前言一、数据库1、Information_schema2、相关函数 二、SQL注入分类1、联合查询注入&#xff08;UNION query SQL injection&#xff09;语法 2、报错注入&#xff08;Error-based SQL injection&#xff09;报错注入分类报错函数报错注入原理 3、盲注布尔型盲注&#…

RK3568笔记八: Display子系统

modetest 是由 libdrm 提供的测试程序&#xff0c;可以查询显示设备的特性&#xff0c;进行基本的显示测试&#xff0c;以及设置显示的模式。 我们可以借助该工具来学习 Linux DRM 应用编程&#xff0c;另外为了深入分析 Rockchip DRM driver&#xff0c;有必要先了解一下这个…

1.环境部署

1.虚拟机安装redhat8系统 这个其实很简单&#xff0c;但是有一点小细节需要注意。 因为我的电脑是 16核心的&#xff0c;所以选择内核16&#xff0c;可以最大发挥虚拟机的性能 磁盘选择SATA&#xff0c;便于后期学习 将一些没用的设备移除 选择安装redhat 8 时间选择上海 选择…

逻辑回归(解决分类问题)

定义&#xff1a;逻辑回归是一种用于解决分类问题的统计学习方法。它通过对数据进行建模&#xff0c;预测一个事件发生的概率。逻辑回归通常用于二元分类问题&#xff0c;即将数据分为两个类别。它基于线性回归模型&#xff0c;但使用了逻辑函数&#xff08;也称为S形函数&…

用Python“自动连发消息”

自动连发消息&#xff0c;基本上C和Python的思路都是不停的模拟“击键”操作&#xff0c;还有一种VB的脚本写法&#xff0c;反成每种语言都能写&#xff0c;更厉害的可以用java做出个GUI界面&#xff0c;先上代码。 一 代码 import pyautogui # 鼠标 import p…

C++I/O流——(2)预定义格式的输入/输出(第二节)

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 含泪播种的人一定能含笑收获&#xff…

web前端第二次

第一题&#xff1a; <!DOCTYPE html> <html> <head><title>计算奇数和</title> </head> <body><label for"input">请输入一个正整数&#xff1a;</label><input type"number" id"input&qu…

vue2使用electron以及打包配置

1.创建项目 vue create vue-project 2.安装electron vue add electron-builder会自动安装相关依赖 安装成功后会在src下自动生成一个background.js文件就是相应的electron的配置信息 use strictimport { app, protocol, BrowserWindow } from electron import { createProto…