应用负载均衡之LVS:ipvsadm命令

Posted 骏马金龙

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了应用负载均衡之LVS:ipvsadm命令相关的知识,希望对你有一定的参考价值。

LVS系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html


1.使用ipvsadm

ipvsadm是ipvs的命令行管理工具,可以定义、删除、查看virtual service和Real Server的属性。

1.1 安装ipvsadm

可以直接yum安装。以下是编译安装ipvsadm的过程,对于内核版本2.6.xx,需要安装的ipvsadm版本要大于1.24。

# 下载ipvsadm
wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz -P /tmp
cd /tmp
# 安装依赖包
yum -y install libnl* popt*
# 安装ipvsadm,注意不需要./configure
tar xf ipvsadm-1.26.tar.gz 
cd ipvsadm-1.26
make && make install

编译安装完之后,会在/etc/init.d/ (CentOS6)或/usr/lib/systemd/system/ (CentOS7)目录下自动生成ipvsadm服务管理脚本,这和一般的编译不一样,比较人性化。

安装ipvsadm后,生成以下文件。

[root@xuexi ~]# rpm -ql ipvsadm
/etc/sysconfig/ipvsadm-config
/usr/lib/systemd/system/ipvsadm.service
/usr/sbin/ipvsadm            # ipvs规则管理工具
/usr/sbin/ipvsadm-restore    # ipvs规则恢复工具
/usr/sbin/ipvsadm-save       # ipvs规则保存工具
/usr/share/doc/ipvsadm-1.27
/usr/share/doc/ipvsadm-1.27/README
/usr/share/man/man8/ipvsadm-restore.8.gz
/usr/share/man/man8/ipvsadm-save.8.gz
/usr/share/man/man8/ipvsadm.8.gz

1.2 ipvsadm语法

使用ipvsadm --help可以查看使用方法。ipvs的更多功能以及ipvsadm的更详细用法,请man ipvsadm

ipvsadm的选项中,大写选项管理虚拟服务virtual service,小写选项管理关联了虚拟服务的真实服务器RealServer,"-L""-l"除外,它们同义。

(1).管理virtual services:
    添加:-A  -t|u|f service-address [-s scheduler]
            -t:tcp协议的集群
            -u:udp协议的集群
                service-address格式为IP:PORT
            -f:firewall-mark防火墙标记
                service-address:a num for mark
            -s:调度算法
    修改:-E -t|u|f service-address [-s scheduler]     和-A使用方法一样
    删除:-D -t|u|f service-address
示例:
# ipvsadm -A -t 172.16.10.20:80 -s rr   (对外的地址,也就是VIP)

(2).管理virtual service中的RealServer:
    添加:-a  -t|u|f service-address -r server-address [-g|i|m] [-w weight]
        -t|u|f service-address:指定Real server所绑定的virtual service
        -r server-address:某RS地址,在NAT模型中,可IP:PORT实现端口映射,即端口无需等于VIP对应的port
        -g|i|m:指定lvs的类型,有三种:
            -g:gataway即DR类型(默认的模型)
            -i:--ipip,即TUN类型
            -m:masquerade地址伪装即NAT
        -w:指定权重(需要调度算法支持权重)
    修改:-e-a用法一样
    删除:-d  -t|u|f service-address -r server-address表示从哪个virtual service中删除哪个realserver
示例:
# ipvsadm -a -t 172.16.10.20:80 -r 192.168.100.9 -m
# ipvsadm -a -t 172.16.10.20:80 -r 192.168.100.10 -m 

(3).查看:  
    -L或者-l:列出状态信息,配合以下选项用于显示更精确数据
        -n:只显示数字格式,不反解IP地址和端口
        --stats:显示统计信息
        --rate:显示速率信息(每秒的值)
        --timeout:显示tcp/tcpfin/udp的会话超时时间长度
        --daemon:显示进程状态和多播端口(不太用)
        --sort:对-n列出来的进行排序(按协议、IP、端口号升序排序)
        -c:显示当前ipvs的连接状况(不能和stats选项同用)

(4).其他项:
-Z:清空统计数据
-C:删除一个或所有virtual service,连同与之绑定的real server也删除
-S:保存规则  ipvsadm -S > /path/to/somefile 或者使用ipvsadm-save > /path/to/somefile
-R:载入规则  ipvsadm -R < /path/to/somefile 或者使用ipvsadm-restore < /path/to/somefile
    service ipvsadm save
    service ipvsadm restore

以上是关于应用负载均衡之LVS:ipvsadm命令的主要内容,如果未能解决你的问题,请参考以下文章

应用负载均衡之LVS:使用ipvsadm以及详细分析VS/DR模式

负载均衡集群ipvsadm命令及基本用法

负载均衡集群ipvsadm命令及基本用法

Linux集群之高可用负载均衡lvs+keepalived

lvs+ipvsadm负载均衡

LVS负载均衡群集部署之——NAT模式的介绍及搭建步骤