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

一.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去指定权重

 

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

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

相关文章

【简单认识Docker基本管理】

文章目录 一、Docker概述1、定义2.容器化流行的原因3.Docker和虚拟机的区别4.Docker核心概念 二、安装docker三、镜像管理1.搜索镜像2.下载&#xff08;拉取&#xff09;镜像3.查看已下载镜像4.查看镜像详细信息5.修改镜像标签6.删除镜像7.导出镜像文件和拉取本地镜像文件8.上传…

ruoyi-vue-pro yudao 项目报表设计器 积木报表模块启用及相关SQL脚本

目前ruoyi-vue-pro 项目虽然开源&#xff0c;但是report模块被屏蔽了&#xff0c;查看文档却要收费 199元&#xff08;知识星球&#xff09;&#xff0c;价格有点太高了吧。 分享下如何启用 report 模块&#xff0c;顺便贴上sql相关脚本。 一、启用模块 修改根目录 pom.xml …

《安富莱嵌入式周报》第320期:键盘敲击声解码, 军工级boot设计,开源CNC运动控制器,C语言设计笔记,开源GPS车辆跟踪器,一键生成RTOS任务链表

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版&#xff1a; https://www.bilibili.com/video/BV1Cr4y1d7Mp/ 《安富莱嵌入式周报》第320期&#xff1a;键盘敲击…

空洞卷积网络实现

代码中涉及的图片实验数据下载地址&#xff1a;https://download.csdn.net/download/m0_37567738/88235543?spm1001.2014.3001.5501 代码&#xff1a; import torch.nn as nn import numpy as npfrom matplotlib import pyplot as plt import time #from utils import get_ac…

【深入探究人工智能】:常见机器学习算法总结

文章目录 1、前言1.1 机器学习算法的两步骤1.2 机器学习算法分类 2、逻辑回归算法2.1 逻辑函数2.2 逻辑回归可以用于多类分类2.3 逻辑回归中的系数 3、线性回归算法3.1 线性回归的假设3.2 确定线性回归模型的拟合优度3.3线性回归中的异常值处理 4、支持向量机&#xff08;SVM&a…

基于ArcGis提取道路中心线

基于ArcGis提取道路中心线 文章目录 基于ArcGis提取道路中心线前言一、生成缓冲区二、导出栅格数据三、导入栅格数据四、新建中心线要素五、生成中心线总结 前言 最近遇到一个问题&#xff0c;根据道路SHP数据生成模型的时候由于下载的道路数据杂项数据很多&#xff0c;所以导…

链表之第三回

欢迎来到我的&#xff1a;世界 该文章收入栏目&#xff1a;链表 希望作者的文章对你有所帮助&#xff0c;有不足的地方还请指正&#xff0c;大家一起学习交流 ! 目录 前言第一题&#xff1a;判断是否为环形链表第二题&#xff1a;找到两条链表的相交点第三题&#xff1a;返回…

webSocket 开发

1 认识webSocket WebSocket_ohana&#xff01;的博客-CSDN博客 一&#xff0c;什么是websocket WebSocket是HTML5下一种新的协议&#xff08;websocket协议本质上是一个基于tcp的协议&#xff09;它实现了浏览器与服务器全双工通信&#xff0c;能更好的节省服务器资源和带宽…

【机器学习】— 2 图神经网络GNN

一、说明 在本文中&#xff0c;我们探讨了图神经网络&#xff08;GNN&#xff09;在推荐系统中的潜力&#xff0c;强调了它们相对于传统矩阵完成方法的优势。GNN为利用图论来改进推荐系统提供了一个强大的框架。在本文中&#xff0c;我们将在推荐系统的背景下概述图论和图神经网…

回归预测 | MATLAB实现PSO-RBF粒子群优化算法优化径向基函数神经网络多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现PSO-RBF粒子群优化算法优化径向基函数神经网络多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现PSO-RBF粒子群优化算法优化径向基函数神经网络多输入单输出回归预测&#xff08;多指标&#xff0c;多图&a…

matlab使用教程(19)—曲线拟合与一元方程求根

1.多项式曲线拟合 此示例说明如何使用 polyfit 函数将多项式曲线与一组数据点拟合。您可以按照以下语法&#xff0c;使用 polyfit 求出以最小二乘方式与一组数据拟合的多项式的系数 p polyfit(x,y,n), 其中&#xff1a; • x 和 y 是包含数据点的 x 和 y 坐标的向量 …

深入理解SSO原理,项目实践使用一个优秀开源单点登录项目(附源码)

深入理解SSO原理,项目实践使用一个优秀开源单点登录项目(附源码)。 一、简介 单点登录(Single Sign On),简称为 SSO。 它的解释是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 ❝ 所谓一次登录,处处登录。同样一处退出,处处退出。 ❞ 二…

Axios使用CancelToken取消重复请求

处理重复请求&#xff1a;没有响应完成的请求&#xff0c;再去请求一个相同的请求&#xff0c;会把之前的请求取消掉 新增一个cancelRequest.js文件 import axios from "axios" const cancelTokens {}export const addPending (config) > {const requestKey …

时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价)

时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价) 目录 时序预测 | MATLAB实现基于CNN-BiGRU卷积双向门控循环单元的时间序列预测-递归预测未来(多指标评价)预测结果基本介绍程序设计参考资料 预测结果 基本介绍 MATLAB实现基于…

Vs code 使用中的小问题

1.Java在Vs code 中使用单元测试失败或者如何使用单元测试 创建Java项目&#xff0c;或者将要测试的文件夹添加进工作区 要出现lib包&#xff0c;并有两个测试用的jar包 编写测试文件 public class TestUnit{ public static void main(String[] args) {String str "…

Pycharm与Anaconda Python的开发环境搭建

目录 一&#xff1a;下载 二&#xff1a;安装python 三&#xff1a;设置Pycharm 一&#xff1a;下载 下载Anaconda&#xff1a; Anaconda | The World’s Most Popular Data Science Platform 安装好以后&#xff0c;设置一下环境变量&#xff1a; 打开命令行&#xff0c…

OpenCV-Python中的图像处理-图像特征

OpenCV-Python中的图像处理-图像特征 图像特征Harris角点检测亚像素级精度的角点检测Shi-Tomasi角点检测SIFT(Scale-Invariant Feature Transfrom)SURF(Speeded-Up Robust Features)FAST算法BRIEF(Binary Robust Independent Elementary Features)算法ORB (Oriented FAST and R…

aardio简单网站css或js下载练习

import win.ui; /*DSG{{*/ var winform win.form(text"下载网站css或js";right664;bottom290;maxfalse) winform.add( buttonClose{cls"button";text"退出";left348;top204;right498;bottom262;color14120960;fontLOGFONT(h-14);note" &qu…

SQL Injection

SQL Injection 就是通过把恶意的sql命令插入web表单递交给服务器&#xff0c;或者输入域名或页面请求的查询字符串递交到服务器&#xff0c;达到欺骗服务器&#xff0c;让服务器执行这些恶意的sql命令&#xff0c;从而让攻击者&#xff0c;可以绕过一些机制&#xff0c;达到直…

一种新型的4H-SiC超结共模场效应晶体管(UMOSFET),具有异质结二极管,以提高反向恢复特性

标题&#xff1a;A novel 4H-SiC super junction UMOSFET with heterojunction diode for enhanced reverse recovery characteristics 摘要 摘要—本文提出并通过数值模拟研究了一种新型的碳化硅&#xff08;SiC&#xff09;超结共模场效应晶体管&#xff08;UMOSFET&#xf…