LVS(Linux Virtual Server) 集群
一.概念:
LVS
1.lvs的核心思想是 将客户端请求分发到多台后端真实服务器,从而实现:
- 负载均衡:避免单台服务器过载。
- 高可用性:某台服务器故障时,自动切换到其他服务器。
- 可扩展性:可动态增加服务器以应对高流量。
名词:
VS:Virtual Server
RS:Real Server
CIP:Client IP
VIP: Virtual serve IP VS外网的IP
DIP: Director IP VS内网的IP
RIP: Real server IP
2. LVS有四种工作模式
(1) NAT 模式
- 原理:
客户端请求先到达LVS 负载均衡器。
LVS 修改目标IP并转发给后端服务器。
后端服务器返回数据时LVS 再修改源IP返回给客户端。
- 特点:
所有流量都经过 LVS,可能成为性能瓶颈。
适用于 **小型集群**,Real Server 可以位于私有网络。
- 架构示例:
客户端 → LVS → Real Server → LVS → 客户端
(2) DR 模式
- 原理:
LVS 只修改请求的MAC 地址,直接转发给Real Server。
Real Server直接返回数据给客户端(不经过 LVS)。
- 特点:
高性能,LVS 仅处理入站请求,返回流量不经过它。
Real Server 必须配置VIP并隐藏 ARP 响应。
适用于高并发场景。
- 架构示例:
客户端 → LVS → Real Server
(3) TUN 模式
- 原理:
LVS 将请求封装在IP 隧道 中发送给 Real Server。
Real Server 解封装后直接返回数据给客户端。
- 特点:
Real Server 可以位于不同物理网络。
性能略低于 DR 模式,但比 NAT 模式好。
适用于分布式集群。
- 架构示例:
客户端 → LVS → Real Server
(4)FULLNAT模式
- 原理:
双向地址转换:
入站请求:LVS 同时修改源IP和目标IP。
出站响应:Real Server 返回数据时,LVS 反向修改源I和目标IP。 - 特点: 可在任意网段,无需任何特殊配置。 支持跨网络,机房集群。 - 架构示例:
[Client]
| (CIP → VIP)
[LVS Director] ← 双向NAT(CIP↔LVS_IP, VIP↔RIP)
| (LVS_IP → RIP)
[Real Servers]
集群与分布式
集群
定义:
将多台同构服务器通过高速网络连接,对外表现为单一系统,共同提供服务。
核心特点:
- 统一管理:所有节点运行相同服务,共享存储或配置。
- 高可用性:故障时自动切换(如 LVS + Keepalived)。
- 负载均衡:流量均匀分发(如 Nginx、LVS)。
- 典型架构:
客户端 → [负载均衡器] → [Server1][Server2][Server3](相同服务)
应用场景:
- Web服务器集群
- 数据库主从集群
- 高性能计算
优势:
- 提升系统可靠性和扩展性。
- 运维简单。
分布式
定义:
将系统拆分为多个独立服务,部署在不同节点上,通过网络协作完成任务。
核心特点:
- 异构性:不同节点可能运行不同服务。
- 松耦合:服务通过API/RPC通信。
- 分区容忍性:允许部分节点故障。
- 典型架构:
[客户端] → [服务A] → [服务B] → [数据库分片]
(节点1) (节点2) (节点3)
应用场景:
- 微服务架构
- 大数据处理
- 区块链网络
优势:
- 更强的横向扩展能力。
- 灵活的技术栈选择。
系统性能扩展方式
Scale UP:向上扩展,增强 Scale Out:向外扩展,增加设备,调度分配问题,Cluster
二:lvs部署命令介绍
1.lvs相关软件信息
程序包:ipvsadm
Unit File: ipvsadm.service
主程序:/usr/sbin/ipvsadm
规则保存工具:/usr/sbin/ipvsadm-save
规则重载工具:/usr/sbin/ipvsadm-restore
配置文件:/etc/sysconfig/ipvsadm-config
ipvs调度规则文件:/etc/sysconfig/ipvsadm
2.ipvsadm命令
核心功能:
集群服务管理:增、删、改
集群服务的RS管理:增、删、改
查看
管理集群服务
ipvsadm -A|E -t(tcp)|u(udp)|f(防护墙标签) \service-address(集群地址) \[-s scheduler(调度算法)] \[-p [timeout]] \[-M netmask] \[--pepersistence_engine] \[-b sched-flags]ipvsadm -D -t|u|f service-address 删除
ipvsadm –C 清空
ipvsadm –R 重载
ipvsadm -S [-n] 保存
管理集群中的real serveripvsadm -a|e -t|u|f service-address -r server-address [-g | -i| -m](工作模式) [-w
weight](权重)ipvsadm -d -t|u|f service-address -r server-address 删除RSipvsadm -L|l [options] 查看rs
ipvsadm -Z [-t|u|f service-address] 清楚计数器
3.lvs集群中的增删改
1.管理集群服务中的增删改
ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]]
-A #添加
-E #修改
-t #tcp服务
-u #udp服务
-s #指定调度算法,默认为WLC
-p #设置持久连接超时,持久连接可以理解为在同一个时间段同一个来源的请求调度到同一Realserver
-f #firewall mask 火墙标记,是一个数字
2.管理集群中RealServer的曾增删改
ipvsadm -a|e -t|u|f service-address -r realserver-address [-g|i|m] [-w weight]
-a -e -t -u -f -r -g -i -m -w -Z -C -L -n
-a #添加realserver
-e #更改realserver
-t #tcp协议
-u #udp协议
-f #火墙 标签
-r #realserver地址
-g #直连路由模式
-i #ipip隧道模式
-m #nat模式
-w #设定权重
-Z #清空计数器
-C #清空lvs策略
-L #查看lvs策略
-n #不做解析
--rate :输出速率信息
pvs规则:/proc/net/ip_vs
ipvs连接:/proc/net/ip_vs_conn
部署nat模式集群
实验环境
首先安装ipvsadm:
部署策略及查看策略
保存规则 ipvsadm -Sn
删除规则 ipvsadm -C
重新加载规则 ipvsadm -R < /etc/sysconfig/ipvsadm-config
在rs1和rs2中进行配置并刷新
部署DR模式集群
实验环境
在客户端主机中为nat模式网卡
在在路由主机中设定双网卡,eth0为nat网卡,eth1为仅主机网卡
对于eth0
对于eth1
调度器设定网卡仅主机
RS1设定网卡为仅主机
RS2同理
确保每台主机可以ping通
DR模型中各主机上均需要配置VIP,解决地址冲突的方式有三种:
(1)在前端网关做静态绑定
(2)在各RS使用arptables
(3)在各RS修改内核参数,来限制arp响应和通告的级别
配置详情
1.要点
1.Director服务器采用双IP桥接网络,一个是VPP,一个DIP
2.Web服务器采用和DIP相同的网段和Director连接
3.每个Web服务器配置VIP
4.每个web服务器可以出外网
2.内容:
在lvs,rs1和rs2中设定vip:
rs1和rs2解决响应问题
在lvs中配置策略