Linux LVS (Linux Virtual Server) 通用命令行详解

LVS是构建高性能、高可用性服务器集群的核心技术,以下是其通用命令行的全面解析:

图片[1]_Linux LVS (Linux Virtual Server) 通用命令行详解_知途无界

一、基础管理命令

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

参数说明

  • -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 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    # 显示超时设置

典型输出解析

Prot 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

三、高级配置命令

1. 超时设置

# 设置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

3. 调度算法配置

# 使用加权最少连接调度
ipvsadm -E -t 192.168.1.100:80 -s wlc

# 使用基于局部性的最小连接
ipvsadm -E -t 192.168.1.100:80 -s lblc

四、调试与维护命令

1. 清空所有配置

ipvsadm -C

2. 保存与恢复配置

# 保存当前配置
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

五、工作模式详解

1. DR模式配置示例

# 在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

# 配置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考虑局部性原理缓存服务器集群
带复制的基于局部性的最少连接lblcrlblc的改进版大型缓存集群

七、典型问题排查

1. 查看丢包统计

cat /proc/net/ip_vs_stats

2. 调试模式

# 开启调试日志
echo 1 > /proc/sys/net/ipv4/vs/debug_level

# 查看调试信息
dmesg | grep IPVS

3. 连接跟踪检查

# 查看当前活动连接
cat /proc/net/ip_vs_conn

八、性能优化建议

  1. 调整哈希表大小
   # 对于高并发场景(建议2^18到2^22)
   echo 20 > /proc/sys/net/ipv4/vs/conn_tab_bits
  1. 选择合适的工作模式
  • DR模式:性能最高,但要求同网络
  • NAT模式:配置简单,支持跨网络
  • TUN模式:适用于地理分布式集群
  1. 启用SYN Cookie防护
   echo 1 > /proc/sys/net/ipv4/vs/syn_cookie

通过掌握这些命令,您可以高效地配置和管理LVS集群,构建高性能的负载均衡解决方案。建议结合keepalived实现高可用性,并定期使用ipvsadm -Sn备份配置。

© 版权声明
THE END
喜欢就点个赞,支持一下吧!
点赞29 分享
评论 抢沙发
头像
欢迎您留下评论!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容