目录
基本概念
一、核心概念与架构
二、核心作用与价值
三、典型部署模式
负载调度算法
一、LVS内核级调度(四层)
二、Nginx高级调度(七层)
三、云原生架构
四、数据库中间件
IPVSADM管理工具
一、环境部署与安装
1. 依赖安装
2. 安装方式
二、基础使用命令
1. 虚拟服务管理
2. 真实服务器管理
三、高级配置实践
1. DR模式优化
2. 会话保持设置
四、维护与监控
1. 规则持久化
2. 性能监控
五、典型场景示例
1. Web集群配置
2. 动态权重调整
六、故障排查要点
NFS共享存储服务
一、核心架构与原理
二、服务端部署
三、客户端配置
四、高级配置(可选)
五、故障排查命令
基本概念
一、核心概念与架构
LVS(Linux Virtual Server)是工作在四层的负载均衡技术,通过虚拟IP(VIP)将客户端请求分发到后端真实服务器群集,形成单一高性能虚拟服务入口。其架构包含:
-
负载调度器(Director):运行IPVS内核模块,负责流量分发
-
服务器池(Real Server):实际处理请求的节点集群
-
共享存储:保证后端服务器的数据一致性
二、核心作用与价值
-
高并发处理:通过轮询、加权轮询等算法(如wrr、lc)实现请求分流,单集群可支持数万并发连接
-
高可用保障:健康检查机制自动隔离故障节点,会话保持技术确保业务连续性
-
透明扩展:支持热添加服务器节点,客户端无感知扩容
-
成本优化:用廉价服务器构建高性能集群,替代高端专用设备
三、典型部署模式
-
NAT模式
-
调度器修改数据包目标/源地址,适合小规模集群
-
需配置DNAT/SNAT规则,存在单点瓶颈风险
-
-
DR模式(Direct Routing)
-
真实服务器直接响应客户端,调度器仅处理请求分发
-
要求服务器与调度器同网段,性能最优
-
-
TUN模式
-
通过IP隧道跨网络分发请求,适用于地理分布式集群
-
需要服务器支持隧道协议
-
负载调度算法
一、LVS内核级调度(四层)
-
动态算法实现原理
- WLC算法公式:
(active_conn*256 + inactive_conn)/weight
- 内核优化:通过红黑树管理连接数,查找复杂度O(log n)
- WLC算法公式:
-
DR模式特殊配置
# 真实服务器ARP抑制 echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
二、Nginx高级调度(七层)
-
一致性哈希优化
- 虚拟节点数建议:每个真实节点200-500个虚拟节点
- 内存占用:每万次请求约增加12MB内存
-
最少连接算法增强
upstream backend {least_conn;server 192.168.1.2 weight=5 active_conn_threshold=100;server 192.168.1.3 weight=3; }
三、云原生架构
-
K8s Service调度
- iptables模式:随机选择+会话保持
- IPVS模式:支持8种LVS原生算法
-
Istio高级策略
trafficPolicy:loadBalancer:localityLbSetting:enabled: truesimple: LEAST_CONN
四、数据库中间件
-
MyCAT分片算法
- 范围分片:适用于时序数据
- 哈希取模:数据均匀但扩容困难
-
Redis Cluster重定向
- MOVED重定向:客户端缓存槽位映射
- ASK重定向:迁移过程中的特殊处理
IPVSADM管理工具
一、环境部署与安装
1. 依赖安装
- 内核要求:需确认Linux内核版本≥2.4,并启用
IPVS
模块 - 安装依赖包:包含开发工具和内核头文件
yum install -y openssl-devel popt-devel kernel-devel gcc make libnl3-devel
2. 安装方式
-
YUM安装(推荐):
yum install -y ipvsadm
-
源码编译(需自定义功能时使用):
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz tar zxf ipvsadm-1.26.tar.gz && cd ipvsadm-1.26 make && make install
二、基础使用命令
1. 虚拟服务管理
-
添加TCP虚拟服务(VIP: 192.168.1.100:80,调度算法为轮询)
ipvsadm -A -t 192.168.1.100:80 -s rr
-
修改调度算法(改为加权最小连接)
ipvsadm -E -t 192.168.1.100:80 -s wlc
2. 真实服务器管理
-
添加后端服务器(DR模式,权重为5)
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2:80 -g -w 5
-
查看当前配置(带连接数统计)
ipvsadm -ln --stats
三、高级配置实践
1. DR模式优化
- ARP抑制配置(防止后端服务器响应VIP请求)
# 所有接口生效 echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
2. 会话保持设置
- 持久化连接(保持客户端会话120秒)
ipvsadm -A -t 192.168.1.100:80 -s rr -p 120
四、维护与监控
1. 规则持久化
- 保存配置(防止重启丢失)
ipvsadm-save > /etc/sysconfig/ipvsadm systemctl enable ipvsadm
2. 性能监控
- 实时监控(每秒刷新连接状态)
watch -n1 "ipvsadm -ln --rate"
五、典型场景示例
1. Web集群配置
# 创建虚拟服务
ipvsadm -A -t 192.168.1.100:80 -s wlc # 添加真实服务器
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.2:80 -g -w 3
ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.3:80 -g -w 2
2. 动态权重调整
# 调整服务器权重(节点192.168.1.2权重设为10):ml-citation{ref="4,7" data="citationList"}
ipvsadm -e -t 192.168.1.100:80 -r 192.168.1.2:80 -w 10
六、故障排查要点
-
连接不均衡
- 检查调度算法是否匹配场景需求(如WLC需考虑后端性能差异)
- 验证
weight
值配置是否合理
-
VIP不可达
- 确认DR模式下后端服务器的VIP绑定与ARP抑制生效
- 检查防火墙是否放行VIP对应端口
NFS共享存储服务
一、核心架构与原理
-
协议基础
- 基于RPC机制实现远程文件访问,通过TCP/UDP协议传输数据
- 典型组件包含
nfs-utils
(服务主程序)和rpcbind
(端口映射服务)
-
工作流程
graph TDA[客户端RPC请求] --> B[服务端111端口]B --> C[获取NFS端口]C --> D[建立数据连接]
二、服务端部署
-
安装依赖包
yum install -y nfs-utils rpcbind # CentOS/RHEL:ml-citation{ref="3,5" data="citationList"} apt-get install nfs-kernel-server rpcbind # Ubuntu/Debian:ml-citation{ref="8" data="citationList"}
-
创建共享目录并设置权限
mkdir -p /data/share chmod 777 /data/share # 根据实际需求调整权限:ml-citation{ref="3,6" data="citationList"}
-
配置共享规则(编辑
/etc/exports
)/data/share 192.168.1.0/24(rw,sync,no_root_squash) # 允许读写、同步写入、保留root权限:ml-citation{ref="3,5" data="citationList"}
-
启动服务
systemctl start rpcbind nfs-server # 必须按顺序启动:ml-citation{ref="4,5" data="citationList"} systemctl enable rpcbind nfs-server
-
验证共享
exportfs -v # 查看生效的共享规则:ml-citation{ref="5" data="citationList"} showmount -e localhost # 检查共享目录可见性:ml-citation{ref="5,6" data="citationList"}
三、客户端配置
-
安装客户端工具
yum install -y nfs-utils # CentOS/RHEL:ml-citation{ref="3" data="citationList"}
-
创建本地挂载点
mkdir /mnt/nfs_share
-
挂载远程目录
mount -t nfs 192.168.1.100:/data/share /mnt/nfs_share # 替换为服务端IP:ml-citation{ref="3,6" data="citationList"}
-
验证挂载
df -hT | grep nfs # 查看挂载状态:ml-citation{ref="6" data="citationList"} touch /mnt/nfs_share/test.txt # 测试写入权限:ml-citation{ref="5" data="citationList"}
四、高级配置(可选)
-
开机自动挂载
编辑/etc/fstab
添加:192.168.1.100:/data/share /mnt/nfs_share nfs defaults 0 0:ml-citation{ref="6" data="citationList"}
-
防火墙放行
firewall-cmd --add-service=nfs --permanent firewall-cmd --reload:ml-citation{ref="3,8" data="citationList"}
-
性能优化挂载
mount -t nfs -o noatime,nodiratime,rsize=32768,wsize=32768 192.168.1.100:/data/share /mnt/nfs_share:ml-citation{ref="6,8" data="citationList"}
五、故障排查命令
- 服务端端口检查:
rpcinfo -p
确认111/2049端口状态 - 连接测试:
telnet 192.168.1.100 2049
验证网络连通性 - 日志查看:
tail -f /var/log/messages
监控NFS错误信息