菜鸟科技网

LVS命令有哪些核心参数及使用场景?

LVS(Linux Virtual Server)是一个高性能、高可用的服务器负载均衡解决方案,通过IP层负载均衡技术将请求分发到后端真实服务器(Real Server,RS),从而实现系统扩展性和可靠性,LVS的核心组件包括Director(调度器)、Real Server(真实服务器)和Client(客户端),其工作模式主要分为NAT(网络地址转换)、DR(直接路由)和TUN(隧道)三种,掌握LVS命令是管理和优化负载均衡的关键,以下从命令分类、参数详解及实际应用场景展开说明。

LVS命令有哪些核心参数及使用场景?-图1
(图片来源网络,侵删)

LVS管理命令基础

LVS的管理主要通过ipvsadm工具实现,该工具是Linux内核中IPVS模块的管理接口,安装后,可通过ipvsadm -h查看帮助信息,其基本语法结构为ipvsadm [选项] [命令] [参数],常用选项包括-A(添加虚拟服务)、-D(删除虚拟服务)、-E(修改虚拟服务)、-L-l(列表显示)、-C(清空规则)等。

虚拟服务管理命令

虚拟服务(Virtual Service)是LVS的核心概念,定义了客户端访问的IP地址、端口及调度算法。

  1. 添加虚拟服务
    命令格式:ipvsadm -A|E -t|u|f service-address [-s scheduler] [-p [timeout]] [-r server-address] [-g|i|m] [-w weight]

    • -t:TCP协议服务,格式为VIP:Port
    • -u:UDP协议服务,格式同上
    • -f:Firewall Mark,基于防火墙标记的调度
    • -s:调度算法,如rr(轮询)、wrr(加权轮询)、lc(最少连接)、wlc(加权最少连接)等
    • -p:持久化服务,timeout单位为秒
    • -w:设置Real Server的权重,影响调度分配比例

    示例:添加一个基于TCP的虚拟服务,VIP为192.168.1.100,端口80,使用加权轮询算法,持久化时间为300秒:
    ipvsadm -A -t 192.168.1.100:80 -s wrr -p 300

    LVS命令有哪些核心参数及使用场景?-图2
    (图片来源网络,侵删)
  2. 修改和删除虚拟服务
    修改已存在的虚拟服务:ipvsadm -E -t 192.168.1.100:80 -s lc
    删除虚拟服务:ipvsadm -D -t 192.168.1.100:80

Real Server管理命令

Real Server是后端提供实际服务的服务器,需通过ipvsadm添加到虚拟服务中。

  1. 添加Real Server
    命令格式:ipvsadm -a|e -t|u|f service-address -r server-address [-g|i|m] [-w weight]

    • -g:DR模式(直接路由)
    • -i:TUN模式(隧道)
    • -m:NAT模式(默认)

    示例:在NAT模式下添加两个Real Server,IP分别为192.168.2.10和192.168.2.11,权重分别为1和2:
    ipvsadm -a -t 192.168.1.100:80 -r 192.168.2.10:80 -m -w 1
    ipvsadm -a -t 192.168.1.100:80 -r 192.168.2.11:80 -m -w 2

    LVS命令有哪些核心参数及使用场景?-图3
    (图片来源网络,侵删)
  2. 删除Real Server
    ipvsadm -d -t 192.168.1.100:80 -r 192.168.2.10:80

状态查看与统计

  1. 查看规则列表
    ipvsadm -L -n:以数字形式显示所有规则,包括虚拟服务、Real Server及连接数。
    ipvsadm -L -c:显示当前实时连接状态。
    ipvsadm -L --stats:显示详细统计信息,如连接数、数据包数等。

  2. 保存与恢复规则
    保存规则到文件:ipvsadm -S > /etc/ipvs/rules
    从文件恢复规则:ipvsadm -R < /etc/ipvs/rules

调度算法详解

LVS支持的调度算法主要分为静态和动态两类,以下为常用算法对比:

调度算法 类型 特点 适用场景
rr(轮询) 静态 按顺序分配请求,不考虑服务器负载 服务器性能相近
wrr(加权轮询) 静态 根据权重分配请求,权重高的服务器接收更多请求 服务器性能差异较大
lc(最少连接) 动态 将请求分配给当前连接数最少的服务器 请求持续时间长且不均衡
wlc(加权最少连接) 动态 结合权重和连接数分配,默认算法 通用场景,兼顾性能与负载
lblc(本地最少连接) 动态 基于本地性的最少连接,适用于缓存服务器 需要保持会话一致性的场景

实际应用示例

假设一个Web服务集群,VIP为192.168.1.100:80,后端有3台Real Server(192.168.2.10-12),使用DR模式,调度算法为wlc,操作步骤如下:

  1. 添加虚拟服务:ipvsadm -A -t 192.168.1.100:80 -s wlc -p 600
  2. 添加Real Server:
    ipvsadm -a -t 192.168.1.100:80 -r 192.168.2.10:80 -g -w 1
    ipvsadm -a -t 192.168.1.100:80 -r 192.168.2.11:80 -g -w 2
    ipvsadm -a -t 192.168.1.100:80 -r 192.168.2.12:80 -g -w 3
  3. 查看规则:ipvsadm -L -n

相关问答FAQs

Q1: LVS的NAT、DR、TUN三种模式有什么区别?如何选择?
A1: NAT模式通过Director修改请求和响应的IP地址,Real Server需与Director在同一网段,配置简单但可能成为性能瓶颈;DR模式Real Server直接响应客户端,需绑定VIP,适合大规模部署;TUN模式通过隧道传输,Real Server可分布在不同地域,但需额外支持隧道协议,选择时,若服务器在同一局域网且对性能要求高,优先DR模式;若需跨地域部署,选择TUN模式;简单场景可用NAT模式。

Q2: 如何监控LVS集群的健康状态?
A2: 可通过ipvsadm -L --stats查看Real Server的连接数和错误数,结合keepalived实现健康检查,自动剔除故障节点,使用ipvsadm -L -c可实时监控连接状态,或通过/proc/net/ip_vs_stats文件获取详细统计信息,结合Zabbix等监控工具实现可视化告警。

分享:
扫描分享到社交APP
上一篇
下一篇