ipvsadm
ipvsadm工具介绍
从2.4版本开始,linux内核默认支持LVS。要使用LVS的能力,只需安装一个LVS的管理工具:ipvsadm。
LVS的结构主要分为两部分:
以下选项用于list命令:
-c, --connection:列出当前的IPVS连接。
--timeout:列出超时
--daemon: 显示同步守护进程状态
--stats:状态信息
--rate:传输速率
--thresholds:列出阈值
--persistent-conn:坚持连接
--sor:把列表排序。
--nosort:不排序
-n, --numeric:不对ip地址进行dns查询
--exact:单位
查看统计
- 查看当前配置的虚拟服务和各个RS的权重
ipvsadm -Ln
- 查看当前ipvs模块中记录的连接(可用于观察转发情况)
ipvsadm -lnc
- 查看ipvs模块的转发情况统计
ipvsadm -Ln --stats | --rate
--stat选项是统计自该条转发规则生效以来的包
1. Conns (connections scheduled) 已经转发过的连接数
2. InPkts (incoming packets) 入包个数
3. OutPkts (outgoing packets) 出包个数
4. InBytes (incoming bytes) 入流量(字节)
5. OutBytes (outgoing bytes) 出流量(字节)
--rate选项是显示速率信息
1. CPS (current connection rate) 每秒连接数
2. InPPS (current in packet rate) 每秒的入包个数
3. OutPPS (current out packet rate) 每秒的出包个数
4. InBPS (current in byte rate) 每秒入流量(字节)
5. OutBPS (current out byte rate) 每秒入流量(字节)
1.使用NAT模式
添加地址为207.175.44.110:80的虚拟服务,指定调度算法为轮转。
ipvsadm -A -t 207.175.44.110:80 -s rr
添加真实服务器,指定传输模式为NAT
ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.1:80 -m
ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.2:80 -m
ipvsadm -a -t 207.175.44.110:80 -r 192.168.10.3:80 -m
NAT模式是lvs的三种模式中最简单的一种。此种模式下只需要保证调度服务器与真实服务器互通就可以运行。
2.使用DR模式
对于DR模式首先要配置真实服务器:
对于每台真实服务器要进行以下操作:
a、设置真实服务器的lo接口不做ARP应答
echo 1 > /proc/sys/net/ipv4/conf/all/arg_ignore
echo 1 > /proc/sys/net/ipv4/conf/lo/arg_ignore
设置这个选项可以使得各个接口只对本接口上的地址进行响应
还需要设置arp_announce选项为2,设置方法同上
b、在真实服务器上添加虚拟IP
ifconfig lo:0 192.168.10.10 boradcast 207.175.44.110 netmask 255.255.255.255
ip r add 192.168.10.10 dev lo
接着添加ipvs规则:
添加地址为192.168.10.10:80的虚拟服务,指定调度算法为轮转。
ipvsadm -A -t 192.168.10.10:80 -s rr
添加真实服务器,指定传输模式为DR
ipvsadm -a -t 192.168.10.10:80 -r 192.168.10.1:80 -g
ipvsadm -a -t 192.168.10.10:80 -r 192.168.10.2:80 -g
ipvsadm -a -t 192.168.10.10:80 -r 192.168.10.3:80 -g
注意:此处的例子中客户、调度服务器、真实服务器都是位于同一网段的
命令 | |
./ipvsadm -A|E -t|u|q|f service-address [-s scheduler] [-j eanble/disable] [-p [timeout]] [-M netmask] [--pe persistence_engine] |
ipvsadm -A|E -t|u|f <集群服务地址> [-s <调度算法>] [-p <超时时间>] [-M <掩码>] [-b <标志>] |
./ipvsadm -D -t|u|q|f service-address |
ipvsadm -D -t|u|f <集群服务地址> |
./ipvsadm -C |
|
./ipvsadm -R |
|
./ipvsadm -S [-n] |
|
./ipvsadm -P|Q -t|u|q|f service-address -z local-address |
|
./ipvsadm -G -t|u|q|f service-address |
|
./ipvsadm -U|V -t|u|q|f service-address -k blacklist-address |
|
./ipvsadm -a|e -t|u|q|f service-address -r server-address [options] |
ipvsadm -a|e -t|u|f <集群服务地址> -r <真实服务器地址> [选项] |
./ipvsadm -d -t|u|q|f service-address -r server-address |
ipvsadm -d -t|u|f <集群服务地址> -r <真实服务器地址> |
./ipvsadm -L|l [options] |
ipvsadm -L|l [options] |
./ipvsadm -Z [-t|u|q|f service-address] |
ipvsadm -Z [-t|u|f <集群服务地址>] |
./ipvsadm --set tcp tcpfin udp |
ipvsadm --set <超时时间> |
./ipvsadm --start-daemon state [--mcast-interface interface] [--syncid sid] |
ipvsadm --start-daemon <主或备> [--mcast-interface <组播接口>] [--syncid <SID>] |
./ipvsadm --stop-daemon state |
ipvsadm --stop-daemon <主或备> |
./ipvsadm -h |
完整命令 | 缩写命令 | 解释 | 中文解释 |
--add-service |
-A | add virtual service with options | 添加一条新的虚拟服务 |
--edit-service |
-E |
edit virtual service with options |
编辑虚拟服务 |
--delete-service |
-D |
delete virtual service |
删除虚拟服务 |
--clear |
-C |
clear the whole table |
清除所有的虚拟服务规则 |
--restore |
-R |
restore rules from stdin |
从标准输入中恢复策略规则 |
--add-laddr |
-P |
add local address |
|
--del-laddr |
-Q |
del local address |
|
--get-laddr |
-G |
get local address |
|
--add-blklst |
-U |
add blacklist address |
|
--del-blklst |
-V |
del blacklist address |
|
--get-blklst |
-B |
get blacklist address |
|
--save |
-S |
save rules to stdout |
保存策略规则到标准输出 |
--add-server |
-a |
add real server with options |
添加一个真实服务器,需要使用选项 |
--edit-server |
-e |
edit real server with options |
编辑一个真实服务器,需要使用选项 |
--delete-server |
-d |
delete real server |
删除一个真实服务器,需要使用选项 |
--list |
-L|-l |
list the table |
查看集群服务列表,包括真实服务器转发策略规则 |
--zero |
-Z |
zero counters in a service or all services |
计数器清零。清除连接数、包转发等数量统计信息 |
--set tcp tcpfin udp |
set connection timeout values |
设置TCP、TCPFIN(TCP关闭连接状态)、UDP连接超时时间,用于 会话保持。一般情况下TCP和UDP超时时间保持默认就好,TCPFIN 可以根据情况设定,指定它则用户请求连接关闭,该连接则会变 为非活跃(InActive)空闲等待状态,在空闲等待时间内,如果 来自同一源IP的请求,则还会转发给后端的同一台真实服务器上 | |
--start-daemon |
start connection sync daemon |
开启连接同步守护进程。在选项后面指定自己是Master(主)还 是backup(备),主负载调度器会同步所有策略及连接状态到备 负载调度器,当主故障,备可以接替其工作 | |
--stop-daemon |
stop connection sync daemon |
停止连接同步守护进程 | |
--help |
-h |
显示帮助信息 |
--tcp-service -t service-address |
service-address is host[:port] |
<集群服务地址> 允许集群服务使用的传输协议为TCP |
--udp-service -u service-address |
service-address is host[:port] | <集群服务地址> 允许集群服务使用的传输协议为UDP |
--icmp-service -q service-address |
service-address is host[:port] | |
--icmpv6-service -1 service-address |
service-address is host[:port] | |
--fwmark-service -f fwmark |
fwmark is an integer greater than zero |
使用一个整数值来防火墙标识集群服务,而不是地址、 端口和协议使用它,我们可以通过结合IPtables将多 个以调度器为目标的端口定义成一个防火墙标识,由 ipvsdam通过此项关联标识,则可以实现对一个IP多 端口调度,即实现后端服务器可以开放多个服务 |
--ipv6 -6 fwmark |
entry uses IPv6 | |
--scheduler -s scheduler |
one of rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq, the default scheduler is wlc. |
指定集群服务使用的调度算法:rr|wrr|lc|wlc|lblc |lblcr|dh|sh|sed|nq,默认为wlc |
--pe engine |
alternate persistence engine may be sip, not set by default. |
|
--persistent -p [timeout] |
persistent service |
<超时时间> 开启持久化服务,开启它则表示在指定时间内,来自同 一IP的请求都会转发到后端同一台真实服务器上 |
--netmask -M netmask |
persistent granularity mask |
<网络掩码> 使用网络掩码来屏蔽持久化来源IP的地址范围,默认值 为255.255.255.255,即所有来源IP请求都会享受持久 化服务 |
--real-server -r server-address |
server-address is host (and port) | <真实服务器地址> 指定真实服务器的主机IP与端口 |
--gatewaying -g |
gatewaying (direct routing) (default) | 指定真实服务器转发工作模式,使用DR模式,默认 |
--ipip -i |
ipip encapsulation (tunneling) | 指定真实服务器转发工作模式,使用TUN模式 |
--fullnat -b |
fullnat mode | |
--snat -J |
SNAT mode | |
--masquerading -m |
masquerading (NAT) |
指定真实服务器转发工作模式,使用NAT模式 |
--weight -w weight |
capacity of real server |
<权重值> 指定真实服务器的权重值 |
--u-threshold -x uthreshold |
upper threshold of connections | <上阀值> 设置转发请求的最大上连接阀值,范围为0~65535,当 当连接数超过指定上限时,LVS则不会转发请求 |
--l-threshold -y lthreshold |
lower threshold of connections | 设置转发请求的下连接阀值,范围为0~65535,当连接 数降低至指定值时,LVS则继续提供服务,默认值为0 |
--mcast-interface interface |
multicast interface for connection sync |
设置用于连接同步守护进程的组播接口 |
--syncid sid |
syncid for connection sync (default=255) | 设置连接同步守护进程的SID号,用于标识,范围0~255 |
--connection -c |
output of current IPVS connections | 显示连接信息,一般与"-l"连用 |
--timeout |
output of timeout (tcp tcpfin udp) | 显示TCP、TCPFIN、UDP超时时间信息,一般与"-l"连用 |
--daemon |
output of daemon information | 显示连接同步守护信息,一般与"-l"连用 |
--stats |
output of statistics information | 显示统计信息,一般与"-l"连用 |
--rate |
output of rate information | 显示转发速率信息,一般与"-l"连用 |
--exact |
expand numbers (display exact values) | 显示数据包和字节计数器的确切值,扩大字符长度 |
--thresholds |
output of thresholds information | 显示阀值信息,一般与"-l"连用 |
--persistent-conn |
output of persistent connection info | 显示持久化连接信息,一般与"-l"连用 |
--sockpair |
output connection info of specified socket pair (proto:sip:sport:tip:tport) |
相关阅读
用ShellExecute执行Dos cmd命令失败的原因详见第1第二
用ShellExecute执行cmd命令遇到的问题总结 1、如果命令中的路径包含空格,要把路径
上午有同事让我帮他删除数据,因为他用DELETE删除时很慢,就把删除语句发给我了: DELETE FROM cjcl.cj_cj_tbjd where bgq = ‘201309M
find命令格式: find path -option 【 -print 】 【 -exec -ok |xargs |grep 】 【 command {} \; 】
可以尝试使用如下三种组合指令:ctrl-c 向当前进程发送 SIGINT 信号,用于终止一个进程ctrl-z 向当前进程发送 SIGSTOP 信号,用于挂起
>Enable 进入特权模式#Exit 返回上一级操作模式#End 返回到特权模式#write memory 或copy running-config startup-c