LVS 集群技术基础

LVS(linux virual server)

LVS集群技术---NAT模式

一.准备四台虚拟机

1.client(eth0=ip:172.254.100)

2.lvs(eth0=ip:172.254.200;eth1=ip:192.168.0.200)

3.rs1(eht0=ip:192.168.0.10)

4.rs2(eth0=ip:192.168.0.20)

二:在rs1和rs2安装httpd功能

dnf/yum install htppd -y

三:在rs1上操作

 [root@RS1 ~]# systemctl disable --now firewalld   #禁用并停止 firewalld 服务
[root@RS1 ~]# echo RS1 - 192.168.0.10 > /var/www/html/index.html #创建并写入内容到 index.html 文件:
[root@RS1 ~]# systemctl enable --now http d     #启用并启动 Apache HTTP 服务

在rs2操作相同

四:在lvs操作

[root@lvs ~]# sysctl  -a | grep ip_forwardnet.ipv4.ip_forward = 0 #net.ipv4.ip_forward = 0:这意味着当前 IPv4 数据包转发功能被禁用了(值为0表示禁用,1表示启用)net.ipv4.ip_forward_update_priority = 1net.ipv4.ip_forward_use_pmtu = 0[root@lvs ~]# echo net.ipv4.ip_forward=1 > /etc/sysctl.conf #这条命令将 net.ipv4.ip_forward=1 写入到了 /etc/sysctl.conf 配置文件中,使得系统在启动时启用 IPv4 转发。[root@lvs ~]# sysctl -p #使用 sysctl -p 使配置立即生效。net.ipv4.ip_forward = 1

五:检查lvs需要的安装包

dnf search lvs

六:在lvs上安装ipvsadm

dnf install ipvsadm -y

七:查看策略调度机制

watch -n1 ipvsadm -Ln

八:配置一个虚拟服务

ipvsadm -A -t

172.25.254.200:80 -s rr #这条命令使用 ipvsadm 工具配置一个虚拟服务 172.25.254.200:80,并使用 轮询(Round Robin) 调度算法(-S rr)来分发流量到后端服务器

[root@lvs ~]# ipvsadm -E -t 172.25.254.200:80 -s wrr #-E表示更改为wrr机制 TCP 172.25.254.200:80 wrr[root@lvs ~]# ipvsadm -E -t 172.25.254.200:80 -s wrr -p 360 #-p设置持久连接超时规定时间内同一来源请求调度到同一realserver-----这里时间设为360TCP 172.25.254.200:80 wrr persistent 360
[root@lvs ~]# ipvsadm -A -f 66 -s rr #设置火墙​TCP  172.25.254.200:80 wrr persistent 360FWM  66 rr

删除机制

 [root@lvs ~]# ipvsadm -D -f 66 #删除火墙-D​[root@lvs ~]# ipvsadm -C          #全部删除

九:模式不能混用

[root@lvs ~]# ipvsadm -A -t 172.25.254.200:80 -s rr[root@lvs ~]# ipvsadm -a -t 172.25.254.200:80 -r 192.168.0.10:80 -g[root@lvs ~]# ipvsadm -a -t 172.25.254.200:80 -r 192.168.0.20:80 -g#-g为直连路由

[root@lvs ~]# ipvsadm -a -t 172.25.254.200:80 -r 192.168.0.20:80 -m[root@lvs ~]# ipvsadm -a -t 172.25.254.200:80 -r 192.168.0.10:80 -m#-m为nat模式

 [root@lvs ~]# ipvsadm -e -t 172.25.254.200:80 -r 192.168.0.20:80 -i[root@lvs ~]# ipvsadm -e -t 172.25.254.200:80 -r 192.168.0.10:80 -i#-e为切换模式 -i为ipip隧道模式

十:设置权重

[root@lvs ~]# ipvsadm -e -t 172.25.254.200:80 -r 192.168.0.10:80 -i -w 2#-w 后面跟数字代表权重这里设置2--权重不是所有模式一定生效

十一:保存策略

[root@lvs ~]# ipvsadm-save -n > /mnt/ipvsadm.rule如果用ipvsadm -C删除后用命令
ipvsadm-restore < /mnt/ipvsadm.rule
恢复策略
永久保存  #开机时加载策略
ipvsadm-save -n > /etc/sysconfig/ipvsadm

十二:测试

LVS---DR模式

一:实验环境

client    eth0=ip 172.25.254.111
路由器    eth0=ip 172.25.254.100 eth1=ip192.168.0.100
DR-LVS    eth0=ip 192.168.0.200
RS1    eth0=ip192.168.0.10
RS2    eth0=ip 192.168.0.20

二:客户端 clent网络设置

[connection]
id=eth0
type=ethernet
interface-name=eth0[ipv4]
method=manual
address1=172.25.254.111/24,172.25.254.100
dns=8.8.8.8

三:路由器网络设置

(1) eth0 配置

[connection]
id=eth0
type=ethernet
interface-name=eth0[ipv4]
method=manual
address1=172.25.254.100/24

(2) eth1 配置

[connection]
id=eth1
type=ethernet
interface-name=eth1[ipv4]
method=manual
address1=192.168.0.100/24

(3) 激活网口

nmcli connection reload
nmcli connection up eth0
nmcli connection up eth1

(4) 开启路由转发功能

[root@luyou ~] vim /etc/sysctl.conf  #编辑文件开启内核路由功能net.ipv4.ip_forward=1开启内核路由功能[root@luyou ~] sysctl -p  #激活

[root@luyou system-connections] firewall-cmd --permanent  --add-masquerade
Warning: ALREADY_ENABLED: masquerade
success

四:lvs主机设置

网口eth0.nmconnection
[root@dr-lvs system-connections] cat eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0[ipv4]
method=manual
address1=192.168.0.200/24,192.168.0.100
address2=192.168.0.220/24
dns=8.8.8.8[root@dr-lvs system-connections]# nmcli connection reload   #重启
[root@dr-lvs system-connections]# nmcli connection up eth0 #激活
[root@dr-lvs system-connections] cat lo.nmconnection
[connection]
id=lo
type=loopback
interface-name=lo[ipv4]
pmethod=manual#静态
address1=127.0.0.1/8
address2=192.168.0.220/32不对外相应32
[root@dr-lvs system-connections]# nmcli connection reload   #重启
[root@dr-lvs system-connections]# nmcli connection up lo #激活

五:RS1和RS2设置

1.RS1设置

[root@RS1 system-connections]# cat eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0[ipv4]
method=manual
address1=192.168.0.10/24,192.168.0.100
dns=8.8.8.8
[root@RS1 system-connections]# cat lo.nmconnection
[connection]
id=lo
type=loopback
interface-name=lo[ipv4]
method=manual
address1=127.0.0.1/8
address2=192.168.0.220/32

设置相应管控

[root@RS1 ~] sysctl -a | grep arp  #搜索arp相关设置[root@RS1 ~] echo net.ipv4.conf.lo.arp_ignore =1 >> /etc/sysctl.conf[root@RS1 ~] echo net.ipv4.conf.lo.arp_announce = 2 >> /etc/sysctl.conf[root@RS1 ~] echo net.ipv4.conf.all.arp_ignore = 1 >> /etc/sysctl.conf[root@RS1 ~] echo net.ipv4.conf.all.arp_announce = 2 >> /etc/sysctl.conf[root@RS1 ~] sysctl  -p  #生效
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
vnet.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

2.RS2设置

[root@RS2 system-connections]# cat eth0.nmconnection
[connection]
id=eth0
type=ethernet
interface-name=eth0[ipv4]
method=manual
address1=192.168.0.20/24,192.168.0.100
dns=8.8.8.8
[root@RS2 system-connections]# cat lo.nmconnection
[connection]
id=lo
type=loopback
interface-name=lo[ipv4]
method=manual
address1=127.0.0.1/8
address2=192.168.0.220/32
[root@RS2 ~] sysctl -a | grep arp  #搜索arp相关设置[root@RS2 ~] echo net.ipv4.conf.lo.arp_ignore =1 >> /etc/sysctl.conf[root@RS2 ~] echo net.ipv4.conf.lo.arp_announce = 2 >> /etc/sysctl.conf[root@RS2 ~] echo net.ipv4.conf.all.arp_ignore = 1 >> /etc/sysctl.conf[root@RS2 ~] echo net.ipv4.conf.all.arp_announce = 2 >> /etc/sysctl.conf[root@RS2 ~] sysctl  -p  #生效
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.lo.arp_announce = 2
vnet.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2

六:测试

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

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

相关文章

Oracle RU19.28补丁发布,一键升级稳

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 作者&#xff1a;IT邦德 中国DBA联盟(ACDU)成员&#xff0c;15年DBA工作经验 Oracle、PostgreSQL ACE CSDN博客专家及B站知名UP主&#xff0c;全网粉丝15万 擅长主流Oracle、MySQL、PG、高斯及…

lvs 集群技术

LVS概念LVS&#xff1a;Linux Virtual Server&#xff0c;负载调度器&#xff0c;是一种基于Linux操作系统内核的高性能、高可用网络服务负载均衡解决方案。LVS工作原理基于网络层&#xff08;四层&#xff0c;传输层&#xff09;的负载均衡技术&#xff0c;它通过内核级别的IP…

AR巡检和传统巡检的区别

随着工业4.0时代的到来&#xff0c;数字化转型逐渐成为各行各业提升效率、保障安全和降低成本的关键。而在这一转型过程中&#xff0c;巡检工作作为确保设备稳定运行的重要环节&#xff0c;逐步从传统方式走向智能化、数字化。尤其是增强现实&#xff08;AR&#xff09;技术的引…

Axure设计设备外壳 - AxureMost 落葵网

在UI设计中&#xff0c;设备外壳&#xff08;硬件外壳与界面中的“虚拟外壳”&#xff09;和背景是构成视觉体验的核心元素&#xff0c;它们不仅影响美观&#xff0c;更直接关联用户对功能的理解和操作效率。以下从设计角度详细解析其作用与使用逻辑&#xff1a; 一、设备外壳&…

基于深度学习的电信号分类识别与混淆矩阵分析

基于深度学习的电信号分类识别与混淆矩阵分析 1. 引言 1.1 研究背景与意义 电信号分类识别是信号处理领域的重要研究方向,在医疗诊断、工业检测、通信系统等多个领域有着广泛的应用。传统的电信号分类方法主要依赖于手工提取特征和浅层机器学习模型,但这些方法往往难以捕捉…

Git 和Gitee远程连接 上传和克隆

第一步创建远程库第二步初始化本地库创建链接删掉.idea 和target(这两个没用运行就自动生成了)右键空白处选择Git Bash Here 初始化本地库git init建立远程连接建立连接这里是我的地址&#xff0c;后面拼接你的地址git remote add origin https://gitee.com/liu-qing_liang/git…

零基础100天CNN实战计划:用Python从入门到图像识别高手

一、为什么你需要这份100天CNN学习计划&#xff1f; 在人工智能领域&#xff0c;卷积神经网络&#xff08;CNN&#xff09; 是计算机视觉的基石技术。无论是人脸识别、医学影像分析还是自动驾驶&#xff0c;CNN都扮演着核心角色。但对于初学者来说&#xff0c;面对复杂的数学公…

Python Matplotlib中的fontdict参数说明

文章目录 1 fontdict 参数的常用属性 1.1 使用示例 1.2 其他注意事项 1.3 结合其他参数 各位老板好, 在 Python 的 Matplotlib 库中,fontdict 参数用于定义文本属性的字典。这些属性包括字体大小、颜色、样式等,主要用于控制标题、标签和其他文本元素的显示效果。通过将 font…

25数据库三级备考自整理笔记

备考策略&#xff1a;博主是边做题边学习知识点的&#xff0c;从每个章节->每套真题的流程&#xff0c;知识点清晰详细&#xff0c;喜欢的请点个关注和收藏&#xff0c;祝大家考试顺利&#xff0c;必过必过必过&#xff01;一、数据库应用系统开发方法1.数据库的三级模式&am…

文娱投资的逆势突破:博派资本的文化旅游综合体战略

在多数资本因“变现难、政策风险、退出缓慢”等问题纷纷撤离文娱赛道时&#xff0c;博派资本创始人郑兰却选择逆势而上&#xff0c;聚焦线下文化消费&#xff0c;并推出了全新的文化旅游综合体战略。郑兰深刻认为&#xff0c;2025年将成为区域经济和文化产业复苏的关键节点。她…

「日拱一码」033 机器学习——严格划分

目录 简单随机划分&#xff08;train_test_split&#xff09; 分组划分&#xff08;Group Splitting&#xff09; 简单分组划分 (Group Splitting) 分层分组划分 (Stratified Group Splitting) 交叉验证法&#xff08;Cross-Validation&#xff09; 分组K 折交叉验证&…

ASP.NET Core Web API 中集成 DeveloperSharp.RabbitMQ

文章目录前言一、核心特性与设计理念极简API设计二、使用步骤1.配置 RabbitMQ 连接&#xff08;配置文件设置&#xff09;2.发送消息&#xff08;在 Controller 中&#xff09;3.消费消息&#xff08;后台服务&#xff09;4.注册托管服务三、消息生命周期控制四、高级用法延时队…

解决Flutter运行android提示Deprecated imperative apply of Flutter‘s Gradle plugins

文章目录 出现场景 解决方案 编辑android/settings.gradle 编辑android/build.gradle 重新定义库变量 编辑android/app/build.gradle 删除fluttetRoot和plugin字段 添加plugins块 修改dependencies 出现场景 ado@adodeMacBook-Air app_demo % flutter run --profile Launching…

音视频重回顾及nat内网穿透相关再整理笔记

以前系统得粗略对音视频有过技术栈基类&#xff0c;现在重新回顾。 除此之外&#xff0c;最近刚好实现一个双网卡加入内网的测试方案&#xff0c;涉及内网穿透的知识&#xff0c;刚好对内网穿透逻辑进行整理。 1&#xff1a;明确相关基础知识&#xff0c;解惑体系架构。2&#…

深入理解 SemaphoreSlim 在.NET Core API 开发中的应用

目录 什么是 SemaphoreSlim SemaphoreSlim 的核心方法 构造函数 等待方法 释放方法 基本使用模式 同步使用模式 异步使用模式&#xff08;推荐在 API 中使用&#xff09; 在 Web 开发中的常见用途 1. 限制 API 接口的并发请求数 2. 保护共享资源的并发访问 3. 控制…

板凳-------Mysql cookbook学习 (十二--------4)

11.0 概述 386 11.1 使用LOAD DATA和mysqlimport导入数据 390 首先创建 mytbl_3 表&#xff08;结构与 mytbl 相同&#xff09;&#xff1a;sql CREATE TABLE mytbl_3 LIKE mytbl;用文本编辑器&#xff08;如 Notepad&#xff09;打开 mytbl.txt&#xff0c;确保格式转换成wind…

【Git#6】多人协作 企业级开发模型

一、多人协作 1. 同一分支下的协作 目前&#xff0c;我们所完成的工作如下&#xff1a; 基本完成 Git 的所有本地库的相关操作&#xff0c;git基本操作&#xff0c;分支理解&#xff0c;版本回退&#xff0c;冲突解决等等申请码云账号&#xff0c;将远端信息clone到本地&…

C# 中的强大运算符

C# 中鲜为人知的强大运算符 C# 还提供了一些"冷门"但功能强大的运算符&#xff0c;这些运算符在特定场景下能极大简化代码并提高效率。 1. 空合并赋值运算符 ?? // 传统写法 if (variable null) {variable defaultValue; }// 使用 ?? variable ?? defaultVal…

用window字体替换zabbix 默认的字体

我们先需要在windows系统下的C:\Windows\Fonts目录&#xff0c;找到一个喜欢的字体&#xff0c;我选择的是微软雅黑。复制到其它路径下&#xff0c;选取一个msyh.ttc。到服务器上。要把msyh.ttc改为msyh.ttf才可以。不然最后中英文都不显示[roothadoop105.yinzhengjie.com ~]# …

MySQL 17 如何正确地显示随机消息?

假设有一个场景&#xff0c;一个英语学习APP首页有一个随机显示单词的功能&#xff0c;用户每次访问首页的时候&#xff0c;都会随机滚动显示三个单词。 已知表里有10000条记录&#xff0c;来看看随机选择3个单词有什么方法&#xff0c;又存在什么问题。 建表语句&#xff1a…