当前位置: 首页 > backend >正文

Linux服务之lvs集群与dr模式部署

目录

一.lvs相关概述

1.lvs集群的工作模式

2.lvs调度算法

3.ipvsadm工具

二.DR模式部署


一.lvs相关概述

1.lvs集群的工作模式

  • lvs-nat:修改请求报文的目标IP,多目标IP的DNAT    
  • lvs-dr:操纵封装新的MAC地址(直接路由)
  • lvs-tun:隧道模式
  • lvs-fullnat:修改请求报文的源和目标IP

2.lvs调度算法

根据其调度时是否考虑各RS当前的负载状态分为两种:

静态方法: 不管后端真实服务器的 状态,根据自身  算法进行调度

动态方法: 会根据后端服务器的状态来进行调度

仅根据算法本身进行调度

静态:

1、RR:roundrobin,轮询,较常用 

2、WRR:Weighted RR,加权轮询,较常用 先算总权重再用自己的权重去除以总权重

3、SH:Source Hashing,实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定

4、DH:Destination Hashing;目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的请求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如: Web缓存  

动态:Overhead    一个参考值来确定服务器是否忙这个值越小代表服务器越闲就会优先调度给闲的服务器

主要根据每RS当前的负载状态及调度算法进行调度Overhead=value 较小的RS将被调度 

1、LC:least connections 适用于长连接应用    最小连接数    不考虑权重
Overhead=activeconns*256+inactiveconns

active   活动连接
inactive 非活动连接
 

2、WLC:Weighted LC,默认调度方法,较常用 默认调度加权最小连接数第一轮不合理 
Overhead=(activeconns*256+inactiveconns)/weight
 

3、SED:Shortest Expection Delay,初始连接高权重优先,只检查活动连接,而不考虑非活动连接   权重小的空闲的
Overhead=(activeconns+1)*256/weight
 

4、NQ:Never Queue,第一轮均匀分配,后续SED       

5、LBLC:Locality-Based LC,动态的DH算法,使用场景:根据负载状态实现正向代理,实现Web Cache等    检查 后端服务器忙不忙

6、LBLCR:LBLC with Replication,带复制功能的LBLC,解决LBLC负载不均衡问题,从负载重的复制到负载轻的RS,,实现Web Cache等

3.ipvsadm工具

常用选项及说明:

-A: 添加虚拟服务器
-D: 删除整个虚拟服务器
-s: 指定负载调度算法(轮询: rr、加权轮询: wrr、最少连接: lc、加权最少连接: wlc  默认的 )
-a: 添加真实服务器(节点服务器)
-d: 删除某一个节点
-t: 指定VIP地址及TCP端口
-r: 指定RIP地址及TCP端口
-m: 表示使用NAT群集模式
-g: 表示使用DR模式
-i: 表示使用TUN模式
一w: 设置权重(权重为0时表示暂停节点)
-p 60: 表示保持长连接60秒
-l: 列表查看 LVS虚拟服务器(默认为查看所有)
-n: 以数字形式显示地址、端口等信息,常与"-l“选项组合使用。ipvsadm -ln

二.DR模式部署

调度器   - ubunutu  2204 
apt   update
apt   install     ipvsadm  -y

ifconfig  ens33:0 192.168.91.188/24     #添加虚拟ip

ipvsadm -A -t 192.168.91.188:80 -s rr
ipvsadm -a -t 192.168.91.188:80 -r 192.168.91.100:80 -g
ipvsadm -a -t 192.168.91.188:80 -r 192.168.91.101:80 -g


ipvsadm  -Ln

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


sysctl -p


真实服务器1:
yum install   epel-release   -y
yum  install   nginx  -y
systemctl  start  nginx 
echo  "7-1"   >  /usr/share/nginx/html/index.html
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
sysctl -p


ifconfig  ens33:0 192.168.91.188/24     #添加虚拟ip

真实服务器2:
yum install   epel-release   -y
yum  install   nginx  -y
systemctl  start  nginx 
echo  "7-2"   >  /usr/share/nginx/html/index.html
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
sysctl -p

ifconfig  ens33:0 192.168.91.188/24     #添加虚拟ip


不要再集群内测试 
新打开一台测试 
curl   192.168.91.188

http://www.xdnf.cn/news/6247.html

相关文章:

  • Xsens发布专为生物力学打造的全新人体模型
  • centos6.10在Macbook m芯片上使用
  • Android 设置系统默认通话应用,打不开通话界面
  • VSCode python配置
  • 数据结构第七章(二)-树形查找:二叉排序树与平衡二叉树
  • Virtualized Table 虚拟化表格 el-table-v2 表头分组 多级表头的简单示例
  • 编程的本质, 就是创造工具
  • 【网工第6版】第10章 网络规划和设计②
  • Linux 中 open 函数的本质与细节全解析
  • 【爬虫】DrissionPage-2
  • 《低代码AI革命:技术平权的曙光还是数字封建的陷阱?》
  • 鸿蒙OSUniApp 制作动态加载的瀑布流布局#三方框架 #Uniapp
  • 2025 年主流 Java 框架解析与实践:构建高性能 Web 应用
  • Go语言八股之Mysql基础详解
  • 刷题记录(4)数组元素相关操作
  • 【网络实验】-BGP-EBGP的基本配置
  • 【CTFShow】Web入门-信息搜集
  • Python 接入DeepSeek
  • Redis持久化存储
  • 软件测试--入门
  • unity 鼠标更换指定图标
  • MongoDB 的核心概念(文档、集合、数据库、BSON)是什么?
  • 如何选择合适的企业级商城系统前端状态管理方案?
  • 【NLP 困惑度解析和python实现】
  • 并查集原理及实现:路径压缩,按秩合并
  • 【AAAI 2025】 Local Conditional Controlling for Text-to-Image Diffusion Models
  • 《P2345 [USACO04OPEN] MooFest G》
  • 深度学习Dropout实现
  • Linux 内核 IPv4 协议栈中的协议注册机制解析
  • 在 Angular 中, `if...else if...else`