LVS是构建高性能、高可用性服务器集群的核心技术,以下是其通用命令行的全面解析:
![图片[1]_Linux LVS (Linux Virtual Server) 通用命令行详解_知途无界](https://zhituwujie.com/wp-content/uploads/2025/04/d2b5ca33bd20250414103502.png)
一、基础管理命令
1. 虚拟服务管理
# 添加TCP虚拟服务ipvsadm -A -t 192.168.1.100:80 -s rr# 添加UDP虚拟服务ipvsadm -A -u 192.168.1.100:53 -s wrr# 删除虚拟服务ipvsadm -D -t 192.168.1.100:80# 添加TCP虚拟服务 ipvsadm -A -t 192.168.1.100:80 -s rr # 添加UDP虚拟服务 ipvsadm -A -u 192.168.1.100:53 -s wrr # 删除虚拟服务 ipvsadm -D -t 192.168.1.100:80# 添加TCP虚拟服务 ipvsadm -A -t 192.168.1.100:80 -s rr # 添加UDP虚拟服务 ipvsadm -A -u 192.168.1.100:53 -s wrr # 删除虚拟服务 ipvsadm -D -t 192.168.1.100:80
参数说明:
-A
:添加虚拟服务-D
:删除虚拟服务-t
:TCP服务-u
:UDP服务-s
:调度算法(rr=轮询, wrr=加权轮询, lc=最少连接等)
2. 真实服务器管理
# 添加真实服务器(-g表示DR模式,-m表示NAT模式)ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -g -w 1ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -m -w 2# 修改真实服务器权重ipvsadm -e -t 192.168.1.100:80 -r 192.168.1.101:80 -g -w 3# 删除真实服务器ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.101:80# 添加真实服务器(-g表示DR模式,-m表示NAT模式) ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -g -w 1 ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -m -w 2 # 修改真实服务器权重 ipvsadm -e -t 192.168.1.100:80 -r 192.168.1.101:80 -g -w 3 # 删除真实服务器 ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.101:80# 添加真实服务器(-g表示DR模式,-m表示NAT模式) ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -g -w 1 ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -m -w 2 # 修改真实服务器权重 ipvsadm -e -t 192.168.1.100:80 -r 192.168.1.101:80 -g -w 3 # 删除真实服务器 ipvsadm -d -t 192.168.1.100:80 -r 192.168.1.101:80
二、查看与监控命令
1. 查看当前配置
# 查看所有虚拟服务和真实服务器ipvsadm -Ln# 带连接数的详细查看ipvsadm -l --stats # 显示统计数据ipvsadm -l --rate # 显示速率信息ipvsadm -l --timeout # 显示超时设置# 查看所有虚拟服务和真实服务器 ipvsadm -Ln # 带连接数的详细查看 ipvsadm -l --stats # 显示统计数据 ipvsadm -l --rate # 显示速率信息 ipvsadm -l --timeout # 显示超时设置# 查看所有虚拟服务和真实服务器 ipvsadm -Ln # 带连接数的详细查看 ipvsadm -l --stats # 显示统计数据 ipvsadm -l --rate # 显示速率信息 ipvsadm -l --timeout # 显示超时设置
典型输出解析:
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.1.100:80 rr-> 192.168.1.101:80 Route 1 5 32-> 192.168.1.102:80 Route 2 3 28Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.1.100:80 rr -> 192.168.1.101:80 Route 1 5 32 -> 192.168.1.102:80 Route 2 3 28Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn TCP 192.168.1.100:80 rr -> 192.168.1.101:80 Route 1 5 32 -> 192.168.1.102:80 Route 2 3 28
2. 连接状态监控
# 实时监控连接状态watch -n 1 ipvsadm -l --stats# 查看持久化服务连接ipvsadm -l --persistent-conn# 实时监控连接状态 watch -n 1 ipvsadm -l --stats # 查看持久化服务连接 ipvsadm -l --persistent-conn# 实时监控连接状态 watch -n 1 ipvsadm -l --stats # 查看持久化服务连接 ipvsadm -l --persistent-conn
三、高级配置命令
1. 超时设置
# 设置TCP连接超时(秒)ipvsadm --set 1800 60 300# 设置TCP连接超时(秒) ipvsadm --set 1800 60 300# 设置TCP连接超时(秒) ipvsadm --set 1800 60 300
三个参数分别表示:
- TCP会话超时
- TCP FIN状态超时
- UDP超时
2. 持久化服务配置
# 设置持久化服务(600秒)ipvsadm -A -t 192.168.1.100:80 -s rr -p 600# 带网络掩码的持久化ipvsadm -A -t 192.168.1.100:80 -s rr -p 600 -M 255.255.255.0# 设置持久化服务(600秒) ipvsadm -A -t 192.168.1.100:80 -s rr -p 600 # 带网络掩码的持久化 ipvsadm -A -t 192.168.1.100:80 -s rr -p 600 -M 255.255.255.0# 设置持久化服务(600秒) ipvsadm -A -t 192.168.1.100:80 -s rr -p 600 # 带网络掩码的持久化 ipvsadm -A -t 192.168.1.100:80 -s rr -p 600 -M 255.255.255.0
3. 调度算法配置
# 使用加权最少连接调度ipvsadm -E -t 192.168.1.100:80 -s wlc# 使用基于局部性的最小连接ipvsadm -E -t 192.168.1.100:80 -s lblc# 使用加权最少连接调度 ipvsadm -E -t 192.168.1.100:80 -s wlc # 使用基于局部性的最小连接 ipvsadm -E -t 192.168.1.100:80 -s lblc# 使用加权最少连接调度 ipvsadm -E -t 192.168.1.100:80 -s wlc # 使用基于局部性的最小连接 ipvsadm -E -t 192.168.1.100:80 -s lblc
四、调试与维护命令
1. 清空所有配置
ipvsadm -Cipvsadm -Cipvsadm -C
2. 保存与恢复配置
# 保存当前配置ipvsadm-save > /etc/sysconfig/ipvsadm# 恢复配置ipvsadm-restore < /etc/sysconfig/ipvsadm# 系统服务方式保存(某些发行版)service ipvsadm save# 保存当前配置 ipvsadm-save > /etc/sysconfig/ipvsadm # 恢复配置 ipvsadm-restore < /etc/sysconfig/ipvsadm # 系统服务方式保存(某些发行版) service ipvsadm save# 保存当前配置 ipvsadm-save > /etc/sysconfig/ipvsadm # 恢复配置 ipvsadm-restore < /etc/sysconfig/ipvsadm # 系统服务方式保存(某些发行版) service ipvsadm save
3. 内核参数调整
# 查看当前连接哈希表大小cat /proc/sys/net/ipv4/vs/conn_tab_bits# 临时调整哈希表大小(18表示2^18个条目)echo 18 > /proc/sys/net/ipv4/vs/conn_tab_bits# 查看当前连接哈希表大小 cat /proc/sys/net/ipv4/vs/conn_tab_bits # 临时调整哈希表大小(18表示2^18个条目) echo 18 > /proc/sys/net/ipv4/vs/conn_tab_bits# 查看当前连接哈希表大小 cat /proc/sys/net/ipv4/vs/conn_tab_bits # 临时调整哈希表大小(18表示2^18个条目) echo 18 > /proc/sys/net/ipv4/vs/conn_tab_bits
五、工作模式详解
1. DR模式配置示例
# 在Director上ipvsadm -A -t 192.168.1.100:80 -s wlcipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -g -w 1ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -g -w 2# 在Real Server上(需配置loopback接口)ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up# 在Director上 ipvsadm -A -t 192.168.1.100:80 -s wlc ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -g -w 1 ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -g -w 2 # 在Real Server上(需配置loopback接口) ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up# 在Director上 ipvsadm -A -t 192.168.1.100:80 -s wlc ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.101:80 -g -w 1 ipvsadm -a -t 192.168.1.100:80 -r 192.168.1.102:80 -g -w 2 # 在Real Server上(需配置loopback接口) ifconfig lo:0 192.168.1.100 netmask 255.255.255.255 up
2. NAT模式配置示例
# 开启IP转发echo 1 > /proc/sys/net/ipv4/ip_forward# 配置LVSipvsadm -A -t 192.168.1.100:80 -s rripvsadm -a -t 192.168.1.100:80 -r 10.0.0.101:80 -m -w 1ipvsadm -a -t 192.168.1.100:80 -r 10.0.0.102:80 -m -w 1# 开启IP转发 echo 1 > /proc/sys/net/ipv4/ip_forward # 配置LVS ipvsadm -A -t 192.168.1.100:80 -s rr ipvsadm -a -t 192.168.1.100:80 -r 10.0.0.101:80 -m -w 1 ipvsadm -a -t 192.168.1.100:80 -r 10.0.0.102:80 -m -w 1# 开启IP转发 echo 1 > /proc/sys/net/ipv4/ip_forward # 配置LVS ipvsadm -A -t 192.168.1.100:80 -s rr ipvsadm -a -t 192.168.1.100:80 -r 10.0.0.101:80 -m -w 1 ipvsadm -a -t 192.168.1.100:80 -r 10.0.0.102:80 -m -w 1
六、常见调度算法比较
算法 | 命令缩写 | 特点 | 适用场景 |
---|---|---|---|
轮询 | rr | 均等分配请求 | 各服务器性能相近 |
加权轮询 | wrr | 按权重分配 | 服务器性能不均 |
最少连接 | lc | 选择当前连接数最少的服务器 | 长连接服务 |
加权最少连接 | wlc | 考虑权重的lc算法 | 性能不均的长连接服务 |
基于局部性的最少连接 | lblc | 考虑局部性原理 | 缓存服务器集群 |
带复制的基于局部性的最少连接 | lblcr | lblc的改进版 | 大型缓存集群 |
七、典型问题排查
1. 查看丢包统计
cat /proc/net/ip_vs_statscat /proc/net/ip_vs_statscat /proc/net/ip_vs_stats
2. 调试模式
# 开启调试日志echo 1 > /proc/sys/net/ipv4/vs/debug_level# 查看调试信息dmesg | grep IPVS# 开启调试日志 echo 1 > /proc/sys/net/ipv4/vs/debug_level # 查看调试信息 dmesg | grep IPVS# 开启调试日志 echo 1 > /proc/sys/net/ipv4/vs/debug_level # 查看调试信息 dmesg | grep IPVS
3. 连接跟踪检查
# 查看当前活动连接cat /proc/net/ip_vs_conn# 查看当前活动连接 cat /proc/net/ip_vs_conn# 查看当前活动连接 cat /proc/net/ip_vs_conn
八、性能优化建议
- 调整哈希表大小:
# 对于高并发场景(建议2^18到2^22)echo 20 > /proc/sys/net/ipv4/vs/conn_tab_bits# 对于高并发场景(建议2^18到2^22) echo 20 > /proc/sys/net/ipv4/vs/conn_tab_bits# 对于高并发场景(建议2^18到2^22) echo 20 > /proc/sys/net/ipv4/vs/conn_tab_bits
- 选择合适的工作模式:
- DR模式:性能最高,但要求同网络
- NAT模式:配置简单,支持跨网络
- TUN模式:适用于地理分布式集群
- 启用SYN Cookie防护:
echo 1 > /proc/sys/net/ipv4/vs/syn_cookieecho 1 > /proc/sys/net/ipv4/vs/syn_cookieecho 1 > /proc/sys/net/ipv4/vs/syn_cookie
通过掌握这些命令,您可以高效地配置和管理LVS集群,构建高性能的负载均衡解决方案。建议结合keepalived实现高可用性,并定期使用ipvsadm -Sn
备份配置。
© 版权声明
文中内容均来源于公开资料,受限于信息的时效性和复杂性,可能存在误差或遗漏。我们已尽力确保内容的准确性,但对于因信息变更或错误导致的任何后果,本站不承担任何责任。如需引用本文内容,请注明出处并尊重原作者的版权。
THE END
暂无评论内容