部署 LVS-DR 群集

本章内容:

  • 了解 LVS-DR 群集的工作原理
  • 会构建LVS-DR 负载均衡群集

1.1 LVS-DR 群集

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

1.1.1 LVS-DR工作原理

        LVS-DR 模式, Director Server 作为群集的访问入口,不作为网关使用,节点 Director Server 与 Real Server 需要在同一个网络中,返回给客户端的数据不需要经过 Director Server。为了响应对整个群集的访问, Director Server Real Server 都需要配置 VIP 地址,工作原理如图 2.1 所示。

1.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 直接将响应报文传送到客户端。

1.1.3 LVS-DR 模式特点

下面是 LVS-DR 模式的特点:

  • Director Server 和 Real Server 必须在同一个物理网络中
  • Real Server 可以使用私有地址,也可以使用公网地址,如果使用公网地址,可以通过互联网对 RIP 进行直接访问
  • 所有的请求报文经由 Director Server,但恢复响应报文不能经过 Director Server。
  • Real Server 的网关不允许指向 Director Server IP ,即 不允许数据包经过 Director Server。
  • Real Server 上的 lo 接口配置 VIP IP 地址。

2.1 案例:直接路由模式(LVS-DR)

2.1.1 准备案例环境

        在 DR 模式的群集中, LVS 负载调度器作为群集的访问入口,但不作为网关使用;服务器池中的所有节点都各自接入 Internet ,发送给客户机的 Web 响应数据包不需要经过 LVS 负载调度器,如图 2.2 所示。
        这种方式入站、出站访问数据被分别处理,因此 LVS 负载调度器和所有的节点服务器都需要配置 VIP 地址,以便响应对整个群集的访问。考虑到数据存储的安全性,共享存储设备会放在内部的专用网络中。

2.1.2 配置负载调度器

下面是配置负载调度器的具体步骤

服务器如下

1.配置虚拟IP地址(VIP)
        采用虚接口的方式(ens33 0 ),为网卡 ens33 绑定 VIP 地址,以便响应群集访问。配置结果为 ens33 192.168.182.100/24 ens33 0 192.168.182.11/24
[root@LVS network-scripts]# cd
[root@LVS ~]# cd /etc/sysconfig/network-scripts/
[root@LVS network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0
[root@LVS network-scripts]# cat ifcfg-ens33:0
NAME="ens33:0"
DEVICE="ens33:0"
ONBOOT="yes"
IPADDR="192.168.182.11"
NETMASK=255.255.255.255
[root@LVS network-scripts]# ifup ens33:0
[root@LVS network-scripts]# ifconfig ens33:0
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.182.11  netmask 255.255.255.255  broadcast 192.168.182.11
        ether 00:0c:29:e8:c0:2b  txqueuelen 1000  (Ethernet)

[root@LVS network-scripts]# 
2.调整 proc 响应参数
        对于 DR 群集模式来说,由于 LVS 负载调度器和各节点需要共用 VIP 地址,应该关闭Linux 内核的重定向参数响应。
[root@LVS network-scripts]# vim /etc/sysctl.conf 
[root@LVS 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@LVS network-scripts]# cat /etc/sysctl.conf | grep net
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.ens33.send_redirects = 0
[root@LVS network-scripts]# 
3.配置负载分配策略
[root@LVS ~]# yum -y install ipvsadm
[root@LVS ~]# ipvsadm -C    //清除原有策略
[root@LVS ~]# ipvsadm -A -t 192.168.182.11:80 -s rr
[root@LVS ~]# ipvsadm -a -t 192.168.182.11:80 -r 192.168.182.101 -g -w 1
[root@LVS ~]# ipvsadm -a -t 192.168.182.11:80 -r 192.168.182.102 -g -w 1
[root@LVS ~]# ipvsadm-save > /etc/sysconfig/ipvsadm    //保存策略
[root@LVS ~]# systemctl enable ipvsadm.service 

2.1.3 配置节点服务器

        使用 DR 模式时,节点服务器也需要配置 VIP 地址,并调整内核的 ARP 响应参数以阻止更新 VIP MAC 地址,避免发生冲突。除此以外, Web 服务的配置与 NAT 方式类似。

1.配置虚拟IP地址(VIP)
        在每个节点服务器,同样需要具有 VIP 地址 172.16.16.172 ,但此地址仅用作发送 Web 响应数据包的源地址,并不需要监听客户机的访问请求(改由调度器监听并分发)。因此使用虚接口 lo 0 来承载 VIP 地址,并为本机添加一条路由记录,将访问 VIP 的数据限制在本地,以避免通信紊乱。
[root@node01 ~]# cd /etc/sysconfig/network-scripts/
[root@node01 network-scripts]# cp ifcfg-lo ifcfg-lo:0
[root@node01 network-scripts]# vim ifcfg-lo:0
[root@node01 network-scripts]# cat ifcfg-lo:0
DEVICE=lo:0
IPADDR=192.168.182.11
NETMASK=255.255.255.255    //注意:子网掩码必须全为1
ONBOOT=yes
[root@node01 network-scripts]# ifup lo:0
[root@node01 network-scripts]# ifconfig lo:0
lo:0: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 192.168.182.11  netmask 255.255.255.255
        loop  txqueuelen 1000  (Local Loopback)

[root@node01 network-scripts]# vim /etc/rc.local     //添加本地 VIP 访问路由
/sbin/route add -host 192.168.182.11 dev lo:0
[root@node01 network-scripts]# route add -host 192.168.182.11 dev lo:0

2.调整 proc 响应参数

调整 proc 响应参数命令如下:

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

3.1 配置NFS共享存储

        NFS 服务的实现依赖于 RPC(Remote Process Call,远端过程调用)机制,以完成远程到本地的映射过程。在 CentOS 7 系统中,需要安装 nfs-utils、rpcbind 软件包来提供 NFS 共享服务,前者用于 NFS 共享发布和访问,后者用于 RPC 支持。

1)安装 nfs-utils,rpcbind 软件包

        提供 RPC 支持的服务为 rpcbind,提供 NFS 共享的服务为 nfs,完成安装以后建议调整这两个服务的自启动状态,以便每次开机后自动启用。手动加载 NFS 共享服务时,应该先启动 rpcbind,再启动 nfs。

[root@NFS ~]# yum -y install nfs-utils rpcbind
[root@NFS ~]# systemctl enable nfs
[root@NFS ~]# systemctl enable rpcbind
2)设置共享目录

        NFS 的配置文件为/etc/exports,文件内容默认为空(无任何共享)。在 exports 文件中设置共享资源时,记录格式为“目录位置客户机地址(权限选项)”。例如,若要将文件夹/opt/wwwroot 共享给 192.168.182.0/24 网段使用,允许读写操作,具体配置如下所示
 

[root@NFS ~]# mkdir /aaa
[root@NFS ~]# vim /etc/exports
[root@NFS ~]# cat /etc/exports
/aaa 192.168.182.0/24(rw,sync,no_root_squash)
[root@NFS ~]#
3)启动 NFS 服务程序
[root@NFS ~]# systemctl start rpcbind
[root@NFS ~]# systemctl start nfs
[root@NFS ~]# netstat -anpt | grep rpc
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      64110/rpcbind       
tcp        0      0 0.0.0.0:20048           0.0.0.0:*               LISTEN      64297/rpc.mountd    
tcp        0      0 0.0.0.0:51284           0.0.0.0:*               LISTEN      64293/rpc.statd     
tcp6       0      0 :::111                  :::*                    LISTEN      64110/rpcbind       
tcp6       0      0 :::20048                :::*                    LISTEN      64297/rpc.mountd    
tcp6       0      0 :::54240                :::*                    LISTEN      64293/rpc.statd     
[root@NFS ~]# 
4)查看本机发布的 NFS 共享目录
[root@NFS ~]# showmount -e
Export list for NFS:
/aaa 192.168.182.0/24
[root@NFS ~]# 

3.2在客户机中访问 NFS 共享资源

        NFS 协议的目标是提供一种网络文件系统,因此对 NFS 共享的访问也使用 mount 命令来进行挂载,对应的文件系统类型为 nfs。既可以手动挂载,也可以加入/etc/fstab 配置文件来实现开机自动挂载。考虑到群集系统中的网络稳定性,NFS 服务器与客户机之间最好使用专有网络进行连接。

1)安装 rpcbind 软件包,并启动 rpcbind 服务

        若要正常访问 NFS 共享资源,客户机中也需要安装 rpcbind 软件包,并启动 rpcbind 系统服务。另外,为了使用 showmount 查询工具,建议将 nfs-utils 软件包也一并装上

[root@node01 ~]# yum -y install rpcbind nfs-utils
[root@node01 ~]# systemctl enable rpcbind
[root@node01 ~]# systemctl start rpcbind


[root@node02 ~]# yum -y install rpcbind nfs-utils
[root@node02 ~]# systemctl enable rpcbind
[root@node02 ~]# systemctl start rpcbind

        如果已经安装了 nfs-utils 软件包,则客户机也可以使用 showmount 查看 NFS 服务器端共享了哪些目录,查询格式为“showmount -e 服务器地址”

[root@node01 ~]# showmount -e 192.168.182.105
Export list for 192.168.182.105:
/aaa 192.168.182.0/24
[root@node01 ~]# 

3.3 安装 httpd 创建测试网页

1)安装 httpd,创建测试网页的命令如下:

[root@node01 ~]# yum -y install httpd
[root@node01 ~]# mount 192.168.182.105:/aaa /var/www/html/
[root@node01 ~]# vim /var/www/html/index.html
[root@node01 ~]# cat /var/www/html/index.html 
<h1>Hello Word</h1>
[root@node01 ~]# 

[root@node02 ~]# mount 192.168.182.105:/aaa /var/www/html

2)启用 httpd服务程序

[root@node01 ~]# systemctl start httpd
[root@node01 ~]# systemctl enable httpd

[root@node02 ~]# systemctl start httpd
[root@node02 ~]# systemctl enable httpd

4.1 测试 LVS 群集

        安排多台测试机,从 Internet 中直接访问 http://192.168.182.11/ ,将能够看到由真实服务器提供的网页内容。如果各节点的网页不同,则不同客户机看到的网页可能也不一样(可以多刷新几次)。
        在 LVS 负载调度器中,通过查看节点状态可以观察当前的负载分配情况,对于轮询算法来说,每个节点所获得的连接负载应大致相当。

查看那些用户访问了那台机器 

[root@LVS ~]# ipvsadm -lnc
IPVS connection entries
pro expire state       source             virtual            destination
TCP 01:20  FIN_WAIT    192.168.182.1:63834 192.168.182.11:80  192.168.182.102:80
TCP 01:56  FIN_WAIT    192.168.182.1:63835 192.168.182.11:80  192.168.182.101:80
[root@LVS ~]# 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL高可用解决方案演进:从主从复制到InnoDB Cluster架构

目录 前言 1. 主从复制 主从复制的基本配置示例&#xff1a; 2. 主从复制的限制 3. InnoDB Cluster架构 InnoDB Cluster配置步骤示例&#xff1a; 4. InnoDB Cluster的优势 总结 ⭐️ 好书推荐 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&…

力扣|2023华为秋招冲刺

文章目录 第一关&#xff1a;2023 年 7 月面试题挑战第二关&#xff1a;2023 年 6 月面试题挑战第三关&#xff1a;2023 年 5 月面试题挑战 第一关&#xff1a;2023 年 7 月面试题挑战 class Solution { public:void reverseWord(vector<char>& s,int l,int r){for(i…

【算法分析与设计】最短路径和

题目&#xff1a; 给定一个包含非负整数的 m x n 网格 grid &#xff0c;请找出一条从左上角到右下角的路径&#xff0c;使得路径上的数字总和为最小。 说明&#xff1a;每次只能向下或者向右移动一步。 示例&#xff1a; 示例 1&#xff1a; 输入&#xff1a;grid [[1,3,1],…

极兔单号查快递,极兔快递单号查询,筛选出途经指定城市的单号

随着电商的繁荣&#xff0c;快递单号已经成为我们生活中的一部分。然而&#xff0c;面对海量的快递信息&#xff0c;如何快速、准确地筛选出我们需要的单号&#xff0c;变成了许多人的痛点。今天&#xff0c;我要为你介绍一款强大的工具——快递批量查询高手&#xff0c;让你的…

44 ext4 文件系统

前言 在 linux 中常见的文件系统 有很多, 如下 基于磁盘的文件系统, ext2, ext3, ext4, xfs, btrfs, jfs, ntfs 内存文件系统, procfs, sysfs, tmpfs, squashfs, debugfs 闪存文件系统, ubifs, jffs2, yaffs 文件系统这一套体系在 linux 有一层 vfs 抽象, 用户程序不用…

代码随想录算法训练营第24天 | 理论基础 77. 组合

目录 理论基础 什么是回溯法 回溯法的效率 回溯法解决的问题 如何理解回溯法 回溯法模板 77. 组合 &#x1f4a1;解题思路 &#x1f4bb;实现代码 理论基础 什么是回溯法 回溯法也可以叫做回溯搜索法&#xff0c;它是一种搜索的方式。 回溯法的效率 虽然回溯法很难&#xff…

前端安全专题

xss (Cross Site Scripting) 跨站脚本攻击 原理 通常指黑客通过"HTML注入"篡改了网页&#xff0c;插入了恶意的脚本&#xff0c;从而在用户浏览网页时&#xff0c;控制用户浏览器的一种攻击。 常见攻击类型 存储型XSS 攻击者将恶意的 JavaScript 脚本存储在网站…

C程序训练:阶乘与溢出

已知n是整数&#xff0c;计算12!3!...n!&#xff0c;并给出最大能够计算的n值是多少&#xff1f; 1. 假设n是int类型&#xff0c;系统用32位表示int类型。代码如下&#xff1a; #include <stdio.h> int main() {int n,sum1,sum1,fact1;int step;for(n2; n<100; n) {…

【Win11】电脑正常联网浏览器却打不开???

今天本来打算打开B站开始今天的学习之旅&#xff0c;一打开却发现。。。 我还以为电脑没联网但是微信可以聊天发消息然后我在dos窗口测了下网络是正常联通的 然后我开始慌了&#xff0c;这阳光明媚的一天不看B站学习怎么行&#xff0c;然后我就开始在百度上冲浪找解决方案&…

探索设计模式的魅力:简单工厂模式

简单工厂模式&#xff08;Simple Factory Pattern&#xff09;是一种创建型设计模式&#xff0c;其主要目的是用于创建对象的实例。这种模式通过封装创建对象的代码来降低客户代码与具体类之间的耦合度。简单工厂不是GoF&#xff08;四人帮&#xff09;设计模式之一&#xff0c…

WAMP apache 无法启动(端口 80 未使用)

这段时间系统重装后&#xff0c;安装WAMP Server&#xff0c;装好后点击启动绿了下然后又变成了黄色&#xff0c;托盘图标无论是左键点击还是右键点击都没有反应&#xff0c;wampapache64服务也启动不起来&#xff0c;提示“windows不能在本地计算机启动wampapache”&#xff0…

软件系统部署方案书(Word)

一、 引言 &#xff08;一&#xff09; 编写目的 二、 外部设计 &#xff08;一&#xff09; 标识符和状态 &#xff08;二&#xff09; 约定 1&#xff0e; 数据库涉及字符规范 2&#xff0e; 字段命名规范 &#xff08;三&#xff09; 专门指导 &#xff08;四&#…

基于JAVA开发的数字化智慧工地管理平台源码,可私有化部署、带可视化大屏

智能工地应用价值 智慧工地现场构建了基于物联网的智能化数据传感器通用的管理平台。利用计算机、人工智能、无线通信&#xff0c;全天候现场监视、施工检查、质量管理、服务&#xff0c;提高数字化管理、安全、绿色、施工等现场管理能力&#xff0c;标志着现场管理进入信息化时…

小程序基础学习(插槽)

一&#xff0c;新建一个组件文件 二&#xff0c;设置插槽 三&#xff0c;微信小程序里面插槽没有默认值需要用wxss来设置&#xff0c;检查插槽这个标签是否为空&#xff0c;如果为空则默认值的view显示 四&#xff0c;写入页面 五&#xff0c;插槽代码 <!--components/my-…

bootloader学习笔记及SD卡启动盘制作

Bootloader介绍 在操作系统运行之前运行的一小段代码&#xff0c;用于将软硬件环境初始化到一个合适的状态&#xff0c;为操作系统的加载和运行做准备&#xff08;其本身不是操作系统&#xff09; Bootloader基本功能 1、初始化软硬件环境 2、引导加载linux内核 3、给linux…

磁盘直通卡/阵列卡讲解

服务器SAS卡 ① 华为SR120 (LSI 2308 6Gb SAS直通卡),适合数据安全等级不高或 更换简单 硬盘即插即用 ② 华为SR320 (LSI 2208 6Gb SAS阵列卡 带512M缓存),适合对数据安全等级要求高或追求磁盘性能的客户 推荐上阵列卡 ③ 华为SR130 (LSI 3008 12Gb SAS直通卡),适合数据安全等…

DAY6--learning english

一、积累 1.sip She took a small sip of the hot tea to savor its delicate flavor. 她小口抿了一口热茶&#xff0c;细细品味其中的淡雅滋味。 2.vacuum Expreience the amazing cleaning power of vaccum cleaner. 体验真空吸尘器惊人的清洁能力。 3.stray Stray kitte…

基于JAVA的用户画像活动推荐系统 开源项目

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 兴趣标签模块2.3 活动档案模块2.4 活动报名模块2.5 活动留言模块 三、系统设计3.1 用例设计3.2 业务流程设计3.3 数据流程设计3.4 E-R图设计 四、系统展示五、核心代码5.1 查询兴趣标签5.2 查询活动推荐…

中霖教育:CPA注册会计师报考注意事项有哪些?

在报考注册会计师时&#xff0c;以下这些注意事项你一定要了解! 1.CPA报考的条件 考生需要具备完全民事行为能力;具有高等专科以上学校毕业学历&#xff0c;或者具有会计或者相关专业中级以上技术职称。 2.专业阶段考试科目为&#xff1a; 《会计》、《审计》、《税法》、《…

ElasticSearch 学习9 spring-boot ,elasticsearch7.16.1实现中文拼音分词搜索

一、elasticsearch官网下载&#xff1a;Elasticsearch 7.16.1 | Elastic 二、拼音、ik、繁简体转换插件安装 ik分词&#xff1a;GitHub - medcl/elasticsearch-analysis-ik: The IK Analysis plugin integrates Lucene IK analyzer into elasticsearch, support customized d…