应用负载均衡之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
Linux系列文章:https://www.cnblogs.com/f-ck-need-u/p/7048359.html
Shell系列文章:https://www.cnblogs.com/f-ck-need-u/p/7048359.html
网站架构系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html
MySQL/MariaDB系列文章:https://www.cnblogs.com/f-ck-need-u/p/7586194.html
Perl系列:https://www.cnblogs.com/f-ck-need-u/p/9512185.html
Go系列:https://www.cnblogs.com/f-ck-need-u/p/9832538.html
Python系列:https://www.cnblogs.com/f-ck-need-u/p/9832640.html
Ruby系列:https://www.cnblogs.com/f-ck-need-u/p/10805545.html
操作系统系列:https://www.cnblogs.com/f-ck-need-u/p/10481466.html
精通awk系列:https://www.cnblogs.com/f-ck-need-u/p/12688355.html