ipvsadm命令用法:iptables 选项-A 创建集群-t 使用tcp协议-s 指定算法(rr,wrr,lc,sh...)(rr轮询,wrr加权轮询,lc最少连接,sh源地址散列...)-D 删除集群-C 清空所有-a 添加real server-r 指定real server IP及端口-d 删除集群下的某个real server-Ln 查看规则-w 指定服务器的权重-m 使用NAT工作模式-g 使用DR工作模式#service ipvsadm save//保存规则#ipvsadm --save > /tmp/ipvs.bak//备份规则#ipvsadm --restore//还原规则案例创建一个web集群,vip为192.168.1.1 ,real server:192.168.2.1,192.168.2.2,使用tcp协议,算法使用轮询或加权轮询,工作模式为NAT)#ipvsadm -A -t 192.168.1.1:80 -s rr #添加集群#ipvsadm -a -t 192.168.1.1:80 -r 192.168.2.1:80 -m #给集群添加realserver#ipvsadm -a -t 192.168.1.1:80 -r 192.168.2.2:80 -m #给集群添加realserver#ipvsadm -Ln #查看集群#ipvsadm -d -t 192.168.1.1:80 -r 192.168.2.2 #删除集群下的某一个realserver#ipvsadm -D -t 192.168.1.1:80 #删除整个集群#ipvsadm -C #清空所有1、IPVSADM的使用ipvsadm是一个工具,同时它也是一条命令,用于管理LVS的策略规则。1.1 命令语法、子命令和选项语法: ipvsadm -A|E -t|u|f [-s ] [-p ] [-M ] [-b ] ipvsadm -D -t|u|f ipvsadm -C ipvsadm -R ipvsadm -S [-n] ipvsadm -a|e -t|u|f -r [选项] ipvsadm -d -t|u|f -r ipvsadm -L|l [options] ipvsadm -Z [-t|u|f ] ipvsadm --set ipvsadm --start-daemon [--mcast-interface ] [--syncid ] ipvsadm --stop-daemon ipvsadm -h子命令: --add-service -A 添加一个集群服务,需要使用选项 --edit-service -E 编辑一个集群服务,需要使用选项 --delete-service -D 删除指定集群服务,需要使用选项 --clear -C 删除所有集群服务,包括真实服务器转发策略规则 --restore -R 从标准输入中恢复策略规则 --save -S 保存策略规则到标准输出 --add-server -a 添加一个真实服务器,需要使用选项 --edit-server -e 编辑一个真实服务器,需要使用选项 --delete-server -d 删除一个真实服务器,需要使用选项 --list -L|-l 查看集群服务列表,包括真实服务器转发策略规则 --zero -Z 计数器清零。清除连接数、包转发等数量统计信息 --set 设置TCP、TCPFIN(TCP关闭连接状态)、UDP连接超时时间,用于 会话保持。一般情况下TCP和UDP超时时间保持默认就好,TCPFIN 可以根据情况设定,指定它则用户请求连接关闭,该连接则会变 为非活跃(InActive)空闲等待状态,在空闲等待时间内,如果 来自同一源IP的请求,则还会转发给后端的同一台真实服务器上 --start-daemon 开启连接同步守护进程。在选项后面指定自己是Master(主)还 是backup(备),主负载调度器会同步所有策略及连接状态到备 负载调度器,当主故障,备可以接替其工作 --stop-daemon 停止连接同步守护进程 --help -h 显示帮助信息选项: --tcp-service -t 允许集群服务使用的传输协议为TCP。 --udp-service -u 允许集群服务使用的传输协议为UDP。 --fwmark-service -f 使用一个整数值来防火墙标识集群服务,而不是地址、 端口和协议使用它,我们可以通过结合IPtables将多 个以调度器为目标的端口定义成一个防火墙标识,由 ipvsdam通过此项关联标识,则可以实现对一个IP多 端口调度,即实现后端服务器可以开放多个服务 --scheduler -s scheduler 指定集群服务使用的调度算法:rr|wrr|lc|wlc|lblc |lblcr|dh|sh|sed|nq,默认为wlc --persistent -p 开启持久化服务,开启它则表示在指定时间内,来自同 一IP的请求都会转发到后端同一台真实服务器上 --netmask -M 使用网络掩码来屏蔽持久化来源IP的地址范围,默认值 为255.255.255.255,即所有来源IP请求都会享受持久 化服务 --real-server -r 指定真实服务器的主机IP与端口 --gatewaying -g 指定真实服务器转发工作模式,使用DR模式,默认 --ipip -i 指定真实服务器转发工作模式,使用TUN模式 --masquerading -m 指定真实服务器转发工作模式,使用NAT模式 --weight -w 指定真实服务器的权重值 --u-threshold -x 设置转发请求的最大上连接阀值,范围为0~65535,当 当连接数超过指定上限时,LVS则不会转发请求 --l-threshold -y 设置转发请求的下连接阀值,范围为0~65535,当连接 数降低至指定值时,LVS则继续提供服务,默认值为0 --mcast-interface interface 设置用于连接同步守护进程的组播接口 --syncid sid 设置连接同步守护进程的SID号,用于标识,范围0~255 --connection -c 显示连接信息,一般与"-l"连用 --timeout 显示TCP、TCPFIN、UDP超时时间信息,一般与"-l"连用 --daemon 显示连接同步守护信息,一般与"-l"连用 --stats 显示统计信息,一般与"-l"连用 --rate 显示转发速率信息,一般与"-l"连用 --exact 显示数据包和字节计数器的确切值,扩大字符长度 --thresholds 显示阀值信息,一般与"-l"连用 --persistent-conn 显示持久化连接信息,一般与"-l"连用 --numeric -n 地址和端口以数字格式显示,一般与"-l"连用 --sched-flags -b 设置调度算法的范围标识,用于SH算法,有两个标识: sh-fallback,如果真实服务器不可用,则将其转发到 其他真实服务器上。 sh-port,将源地址的端口号也添加到散列键=值中1.2 集群服务管理对集群服务条目的增删查改。1.2.1 查看# ipvsadm -lnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn1.2.2 添加一个集群服务# ipvsadm -A -t 192.168.1.100:80 -s rr# ipvsadm -lnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.1.100:80 rr1.2.3 修改一个集群服务修改集群服务的调度算法。# ipvsadm -E -t 192.168.1.100:80 -s wlc# ipvsadm -lnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.1.100:80 wlc1.2.4 删除一个集群服务# ipvsadm -D -t 192.168.1.100:80# ipvsadm -lnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn为空1.2.5 删除所有集群服务# ipvsadm -C1.3 真实服务器管理对要转发的真实服务器条目的增删查改。绑定集群服务、指定LVS转发的工作模式。1.3.1 往集群服务中添加一个真实服务器# ipvsadm -a -t 192.168.1.100:80 -r 172.16.16.2:80 -m -w 1# ipvsadm -a -t 192.168.1.100:80 -r 172.16.16.3:80 -m -w 1# ipvsadm -lnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.1.100:80 wlc -> 172.16.16.2:80 Masq 1 0 0 -> 172.16.16.3:80 Masq 1 0 0 1.3.2 修改集群服务中的一个真实服务器修改集群服务中的一个真实服务器的权重值。# ipvsadm -e -t 192.168.1.100:80 -r 172.16.16.2:80 -m -w 2# ipvsadm -lnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.1.100:80 wlc -> 172.16.16.2:80 Masq 2 0 0 -> 172.16.16.3:80 Masq 1 0 0 1.3.3 删除集群服务中的一个真实服务器# ipvsadm -d -t 192.168.1.100:80 -r 172.16.16.2:80# ipvsadm -lnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.1.100:80 wlc -> 已被删除 -> 172.16.16.3:80 Masq 1 0 0 1.3.4 清空转发请求计数器# ipvsadm -Z1. 查看lvs的连接状态命令: ipvsadm -l --stats#ipvsadm -l --statsIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes -> RemoteAddress:PortTCP 10.6.2.149:ssh 4 6 0 308 0 -> 10.6.2.143:ssh 0 0 0 0 0 -> 10.6.2.146:ssh 4 6 0 308 0TCP 10.6.2.149:http 11 11 0 596 0 -> 10.6.2.143:http 0 0 0 0 0 -> 10.6.2.146:http 11 11 0 596 0TCP 10.6.2.151:ldap 11 60 0 3729 0 -> 10.6.2.147:ldap 5 32 0 1972 0 -> 10.6.2.148:ldap 6 28 0 1757 0TCP 10.6.2.151:mysql 327 7001 0 961447 0 -> 10.6.2.147:mysql 313 6600 0 883068 0 -> 10.6.2.148:mysql 14 401 0 78379 0说明:1. Conns (connections scheduled) 已经转发过的连接数2. InPkts (incoming packets) 入包个数3. OutPkts (outgoing packets) 出包个数4. InBytes (incoming bytes) 入流量(字节) 5. OutBytes (outgoing bytes) 出流量(字节)2. 查看lvs速率 :ipvsadm -l --rate#ipvsadm -l --rateProt LocalAddress:Port CPS InPPS OutPPS InBPS OutBPS -> RemoteAddress:PortTCP 10.6.2.149:ssh 0 0 0 0 0 -> 10.6.2.143:ssh 0 0 0 0 0 -> 10.6.2.146:ssh 0 0 0 0 0TCP 10.6.2.149:http 0 0 0 0 0 -> 10.6.2.143:http 0 0 0 0 0 -> 10.6.2.146:http 0 0 0 0 0TCP 10.6.2.151:ldap 0 0 0 0 0 -> 10.6.2.147:ldap 0 0 0 0 0 -> 10.6.2.148:ldap 0 0 0 0 0TCP 10.6.2.151:mysql 0 0 0 0 0 -> 10.6.2.147:mysql 0 0 0 0 0 -> 10.6.2.148:mysql 0 0 0 0 0说明: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) 每秒入流量(字节)