LVS集群技术

LVS(Linux Virtual Server)是一种基于Linux内核的高性能、高可用性服务器集群技术,它通过负载均衡将客户端请求分发到多台后端真实服务器,实现 scalability 和 fault tolerance。LVS工作在传输层(OSI Layer 4),支持TCP/UDP协议。

LVS核心组件

  • 负载均衡器(Director):接收客户端请求并根据调度算法分发到后端服务器。
  • 真实服务器群(Real Server Pool):实际处理请求的服务器集群。
  • 共享存储(可选):为真实服务器提供数据一致性支持。

LVS工作模式

NAT模式(Network Address Translation) 负载均衡器修改请求和响应的IP地址,进出流量均经过Director。适合小型集群,但Director可能成为性能瓶颈。

TUN模式(IP Tunneling) 真实服务器直接响应客户端,通过IP隧道传输请求数据。Director仅处理入站流量,适合跨网络环境。

DR模式(Direct Routing) 真实服务器通过修改MAC地址直接响应客户端, Director仅处理入站流量。高性能首选模式,要求真实服务器与Director在同一局域网。

LVS调度算法

  • 轮询(Round Robin):均等分发请求。
  • 加权轮询(Weighted RR):根据服务器权重分配流量。
  • 最少连接(Least Connections):优先选择当前连接数最少的服务器。
  • 加权最少连接(Weighted LC):结合权重和连接数。
  • 源地址哈希(Source Hashing):保持同一客户端的请求定向到同一服务器。

LVS特别适合需要高性能负载均衡的场景,如Web服务、数据库读写分离等。实际部署时应根据网络环境和业务需求选择合适的工作模式。

二.LVS(linux virual server)

四台虚拟机

LVS集群技术

1.client eth0= IP:172.25.254.100
2.lvs image-20250714200324604 eth0=ip :172.25.254.200; eth1=ip:192.168.0.200
rs1 eth0=ip:192.168.0.10
re2 eth0=ip:192.168.0.20
网络配好在rs1和rs2安装httpd功能所用命令dnf/yum install httpd -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_forward
 net.ipv4.ip_forward = 0 #net.ipv4.ip_forward = 0:这意味着当前 IPv4 数据包转发功能被禁用了(值为0表示禁用,1表示启用)
 net.ipv4.ip_forward_update_priority = 1
 net.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

用命令安装[root@lvs ~]# dnf/yum install ipvsadm -y

用命令watch -n1 ipvsadm -Ln 查看策略调度机制
输入命令[root@lvs ~]# 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-----这里时间设为360 TCP 172.25.254.200:80 wrr persistent 360 ```  [root@lvs ~]# ipvsadm -A -f 66 -s rr #设置火墙  ​  TCP  172.25.254.200:80 wrr persistent 360  FWM  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为直连路由 ``` ![](https://i-blog.csdnimg.cn/direct/09ca8aad31fc4a62ab29e045d93b2073.png) ```  [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模式 ``` ![](https://i-blog.csdnimg.cn/direct/02f8b3784e9f42ef96c8db39d7a054cb.png) ```  [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隧道模式 ``` ![](https://i-blog.csdnimg.cn/direct/5e90bb65e9cb477d83698995093c4a79.png) ##### 设置权重 ```  [root@lvs ~]# ipvsadm -e -t 172.25.254.200:80 -r 192.168.0.10:80 -i -w 2  #-w 后面跟数字代表权重这里设置2--权重不是所有模式一定生效 ``` ![](https://i-blog.csdnimg.cn/direct/57cd3838ef9d4b398959d13905f8856b.png) 计数器\[root@lvs \~\]# watch -n1 ipvsadm -Ln --rate #后面加--tate -Z清楚计数器 ![](https://i-blog.csdnimg.cn/direct/c0d47b57898e4e08ba3c673292aeb985.png) ##### 保存策略 ```  [root@lvs ~]# ipvsadm-save -n > /mnt/ipvsadm.rule  ​  如果用ipvsadm -C删除后  ​  用命令  ipvsadm-restore < /mnt/ipvsadm.rule  恢复策略  永久保存 #开机时加载策略  ipvsadm-save -n > /etc/sysconfig/ipvsadm ```

相关推荐
努力搬砖的咸鱼12 分钟前
部署你的第一个应用到 K8s
微服务·云原生·容器·kubernetes
舰长1151 小时前
使用 kubeadm搭建生产环境的单 master 节点 K8S 集群(一)
云原生·容器·kubernetes
lynnlovemin2 小时前
云原生提速秘籍:Spring Boot转Spring Native实战指南
spring boot·spring·云原生·spring native
hwj运维之路2 小时前
Docker面试题汇总系列
运维·docker·云原生·容器
蜡笔小炘2 小时前
LVS -- 部署NAT模式集群案例
linux·运维·服务器·lvs
Gold Steps.2 小时前
Longhorn分布式云原生块存储系统
分布式·云原生
hwj运维之路3 小时前
超详细ubuntu22.04部署k8s1.28高可用(一)【多master+keepalived+nginx实现负载均衡】
运维·云原生·kubernetes·负载均衡
VermiliEiz3 小时前
使用二进制方式部署k8s(6)
云原生·容器·kubernetes
牛奶咖啡133 小时前
Prometheus+Grafana构建云原生分布式监控系统(十四)_Prometheus中PromQL使用(一)
云原生·prometheus·promql·计算一个时间范围内的平均值·将相同数据整合查看整体趋势·计算时间范围内的最大最小比率·向量标量的算术运算
汪碧康4 小时前
一文讲解kubernetes的gateway Api的功能、架构、部署、管理及使用
云原生·容器·架构·kubernetes·gateway·kubelet·xkube