负载均衡集群ipvsadm命令及基本用法
Posted kn-zheng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了负载均衡集群ipvsadm命令及基本用法相关的知识,希望对你有一定的参考价值。
ipvsadm是LVS在应用层的管理命令,我们可以通过这个命令去管理LVS的配置。需要使用yum单独安装。
基本用法:
-c, --connection:列出当前的IPVS连接。--timeout:列出超时--daemon:--stats:状态信息--rate:传输速率--thresholds:列出阈值--persistent-conn:坚持连接--sor:把列表排序。--nosort:不排序-n, --numeric:不对ip地址进行dns查询--exact:单位
添加地址为207.175.44.110:80的虚拟服务,指定调度算法为轮转。ipvsadm -A -t 207.175.44.110:80 -s rr添加真实服务器,指定传输模式为NATipvsadm -a -t 207.175.44.110:80 -r 192.168.10.1:80 -mipvsadm -a -t 207.175.44.110:80 -r 192.168.10.2:80 -mipvsadm -a -t 207.175.44.110:80 -r 192.168.10.3:80 -mNAT模式是lvs的三种模式中最简单的一种。此种模式下只需要保证调度服务器与真实服务器互通就可以运行。
对于DR模式首先要配置真实服务器:对于每台真实服务器要进行以下操作:1、设置真实服务器的lo接口不做ARP应答
echo 1 > /proc/sys/net/ipv4/conf/all/arg_ignoreecho 1 > /proc/sys/net/ipv4/conf/lo/arg_ignore设置这个选项可以使得各个接口只对本接口上的地址进行响应还需要设置arp_announce选项为2,设置方法同上
2、在真实服务器上添加虚拟IP
ifconfig lo:0 192.168.10.10 boradcast 207.175.44.110 netmask 255.255.255.255ip r add 192.168.10.10 dev lo
接着添加ipvs规则:添加地址为192.168.10.10:80的虚拟服务,指定调度算法为轮转。ipvsadm -A -t 192.168.10.10:80 -s rr添加真实服务器,指定传输模式为DRipvsadm -a -t 192.168.10.10:80 -r 192.168.10.1:80 -gipvsadm -a -t 192.168.10.10:80 -r 192.168.10.2:80 -gipvsadm -a -t 192.168.10.10:80 -r 192.168.10.3:80 -g注意:此处的例子中客户、调度服务器、真实服务器都是位于同一网段的固定调度
rr:论调wrr:加权论调
weight,加权sh:source hash ,源地址hash
动态调度
lc:最少链接
active*256+inactive
wlc:加权最少链接
(active*256+inactive)/weight
sed:最短期望延迟
(active+1)*256/weight
nq:never queue (永不排队)LBLC:基于本地的最少链接
LBLCR:基于本地的带复制功能的最少链接————
lvsipvsadm:管理集群服务的命令行工具
管理集群服务
添加:-A -t|u|f service-address[-s sheduler ]
-t:TCP协议集群
-u:UDP协议集群 service-address: IP:PORT(套接字)
-f:FWM:防火墙标记
service-address : Mark Number
修改: -E
删除: -D -t|u|f service-address
管理机器服务中心的RS
添加:-a -t|u|f service-address -r server-address [-g|i|m] [-w weight ]
-t|u|f service-address:事前定义好的某集群服务
-r server-address :某RS的地址,在NAT模型中;可使用IP:PORT实现端口映射:
[-g|i|m]:lvs类型
-g:DR
-i:TUN
-m:NAT
[-w weight ]:定义权重
修改:-e
删除:-d -t|u|f serrvice address -r service-add
# ipvsadm -a -t xx.xx.xx.xx:80 -r xx.xx.xx.xx -m查看
-L|l
-n:数字格式显示IP地址和端口号
--stats:统计信息
--rate:速率
--timeout:显示TCP/TCPFIN/UDP的会话超时时长
--sort:排序
-c:显示当前IPVS的链接状态
-Z:清空计数器
-C:清空ipvs规则
-S:使用输出重定向进行规则保存
# ipvsadm -S > /../..
-R:使用输入重定向载入规则
# ipvsadm -R < /../..
1. 查看lvs的连接状态命令: ipvsadm -l --stats
说明:
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
说明:
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) 每秒入流量(字节)
由于LVS像iptable一样是工作在内核层,所以只需要安装模块ip_vs就可以了,并没有后台进程在跑。对应lvs主机三种方式分别用参数-m, -i, -g来实现。以下列举几种链接方式的配置方法:
1.NAT方式:
NAT配置方式最简单,只需要在LVS主机上配置就可以了,如下例子:
设置VIP主机:
ipvsadm -A -t 202.103.106.5:80 -s wlc
ipvsadm -A -t 202.103.106.5:21 -s wrr
ipvsadm -a -t 202.103.106.5:80 -r 172.16.0.2:80 -m
ipvsadm -a -t 202.103.106.5:80 -r 172.16.0.3:8000 -m -w 2
ipvsadm -a -t 202.103.106.5:21 -r 172.16.0.2:21 -m
2.TUN方式:
对LVS主机设置:
设置VIP主机:
ipvsadm -A -t 172.26.20.110:23 -s wlc ipvsadm -a -t 172.26.20.110:23 -r 172.26.20.112 -i
对每台real主机的设置:
echo 1 > /proc/sys/net/ipv4/ip_forward #加载ipip模块 modprobe ipip ifconfig tunl0 0.0.0.0 up echo 1 > /proc/sys/net/ipv4/conf/all/hidden echo 1 > /proc/sys/net/ipv4/conf/tunl0/hidden ifconfig tunl0 172.26.20.110 netmask 255.255.255.255 broadcast 172.26.20.110 up
LVS集群十种调度算法及负载均衡理论
一、LVS概念
- LVS(Linux Virtual Server):Linux 虚拟server;
- LVS是个负载均衡设备。它不提供不论什么服务。用户请求到这里的时候。它是将客户需求转发至后端真正提供服务的服务。所以说后端的服务称作real server;
- LVS分为两段,前一段称为ipvsadm(管理集群服务的命令行工具),后面一段叫做ipvs(内核模块);
- 【提示】LVS和iptables不能同一时候使用;
二、LVS类型
- LB(Load Balancing):负载均衡集群
特性:为了添加能力能力 - HA(High Availability):高可用集群
特性:提供服务的可用性(一年在线时间达到99.999%才行)
计算方法:在线时间/(在线时间/故障处理时间) - HP([HPC]High Performance):高性能集群
特性:提供服务的性能
三、LVS组成结构(负载均衡实现方案)
- 基于DNS域名轮流解析的方法
- 基于client调度訪问的方法
- 基于应用层系统负载的调度方法
- 基于IP地址的调度方法
当中基于IP的负载调度算法中。IP负载均衡技术是运行效率最高的
四、LVS十种调度算法
1、静态调度:
①rr(Round Robin): 轮询调度,轮叫调度
轮询调度算法的原理是每一次把来自用户的请求轮流分配给内部中的server,从1開始。直到N(内部server个数)。然后又一次開始循环。
算法的长处是其简洁性,它无需记录当前全部连接的状态,所以它是一种无状态调度。
【提示:这里是不考虑每台server的处理能力】
②wrr:weight,加权(以权重之间的比例实如今各主机之间进行调度)
由于每台server的配置、安装的业务应用等不同,其处理能力会不一样。所以。我们依据server的不同处理能力。给每一个server分配不同的权值,使其能够接受相应权值数的服务请求。
③sh: source hashing,源地址散列
主要实现会话绑定,能够将此前建立的session信息保留了
源地址散列调度算法正好与目标地址散列调度算法相反,它依据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出相应的server。若该server是可用的而且没有超负荷,将请求发送到该server,否则返回空。
它採用的散列函数与目标地址散列调度算法的同样。它的算法流程与目标地址散列调度算法的基本类似,除了将请求的目标IP地址换成请求的源IP地址,所以这里不一个一个叙述。
④Dh: Destination hashing:目标地址散列
把同一个IP地址的请求,发送给同一个server。
目标地址散列调度算法也是针对目标IP地址的负载均衡,它是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台server。
目标地址散列调度算法先依据请求的目标IP地址。作为散列键(Hash Key)从静态分配的散列表找出相应的server,若该server是可用的且未超载,将请求发送到该server,否则返回空。
2、动态调度
①lc(Least-Connection):最少连接
最少连接调度算法是把新的连接请求分配到当前连接数最小的server,最小连接调度是一种动态调度短算法,它通过server当前所活跃的连接数来预计server的负载均衡,调度器须要记录各个server已建立连接的数目。当一个请求被调度到某台server,其连接数加1,当连接中止或超时,其连接数减一。在系统实现时。我们也引入当server的权值为0时。表示该server不可用而不被调度。
简单算法:active*256+inactive(谁的小。挑谁)
②wlc(Weighted Least-Connection Scheduling):加权最少连接
加权最小连接调度算法是最小连接调度的超集。各个server用相应的权值表示其处理性能。server的缺省权值为1,系统管理员能够动态地设置server的权限,加权最小连接调度在调度新连接时尽可能使server的已建立连接数和其权值成比例。
简单算法:(active*256+inactive)/weight【(活动的连接数+1)/除以权重】(谁的小,挑谁)
③sed(Shortest Expected Delay):最短期望延迟
基于wlc算法
简单算法:(active+1)*256/weight 【(活动的连接数+1)*256/除以权重】
④nq(never queue):永不排队(改进的sed)
无需队列,如果有台realserver的连接数=0就直接分配过去,不须要在进行sed运算。
⑤LBLC(Locality-Based Least Connection):基于局部性的最少连接
基于局部性的最少连接算法是针对请求报文的目标IP地址的负载均衡调度,不签主要用于Cache集群系统,由于Cache集群中客户请求报文的布标IP地址是变化的。这里如果不论什么后端server都能够处理不论什么请求。算法的设计目标在server的负载基本平衡的情况下,将同样的目标IP地址的请求调度到同一个台server,来提高个太server的訪问局部性和主存Cache命中率,从而调整整个集群系统的处理能力。
基于局部性的最少连接调度算法依据请求的目标IP地址找出该目标IP地址近期使用的RealServer。若该Real Server是可用的且没有超载。将请求发送到该server;若server不存在,或者该server超载且有server处于一半的工作负载,则用“最少链接”的原则选出一个可用的server。将请求发送到该server。
⑥LBLCR(Locality-Based Least Connections withReplication):带复制的基于局部性最少链接
带复制的基于局部性最少链接调度算法也是针对目标IP地址的负载均衡,该算法依据请求的目标IP地址找出该目标IP地址相应的server组,按“最小连接”原则从server组中选出一台server,若server没有超载。将请求发送到该server。若server超载。则按“最小连接”原则从这个集群中选出一台server,将该server加入到server组中。将请求发送到该server。同一时候,当该server组有一段时间没有被改动。将最忙的server从server组中删除。以减少复制的程度。
五、IPVS实现负载均衡的方法
NAT:地址转换(类似于DNAT)
1、集群点跟director必须工作在同一个IP的网络中
2、RIP一般是私有地址。仅用于各集群节点间的的通信
3、director位于client和real server之间。并负责处理进出的全部通道。
4、realserver必须将网关运行DIP
5、director支持port映射
6、realserver能够使用不论什么类型的操作系统(os)
7、较大规模应用场景中,director易成为系统瓶颈
DR:直接路由(及用于作为源地址)
1、各集群节点跟director必须在同一个物理网络中;
2、RIP能够使用公网地址,实现便携的远程管理和监控。
3、director仅负责处理入站请求,形影报文则有realserver直接发往client
4、realserver不能将网关指向DIP,而是直接指向前端网关;
5、director不支持port映射
6、大多数操作系统能够用在realserver
TUN:隧道
1、集群节点能够跨越Internet
2、RIP必须是公网地址
3、director仅负责处理入站请求,形影报文则有realserver直接发往client
4、realserver网关不能指向director
5、仅仅有咫尺隧道功能的OS才干用于realserver
6、不支持port映射
六、ipvsadm经常使用命令
1、管理集群服务
加入:-A -t|u|f service-address [-sscheduler]
-t:tcp 协议的集群服务
-u:udp 协议的集群
-f:FWM 防火墙标记
改动:-E
删除:-D
-D -t|u|f service-address
比如:# ipvsadm -A -t 172.16.100.1:80 -s rr
2、管理集群服务中的RS
加入:-a -t|u|f service-address -rserver-address [-g|i|m] *[-w weight]*
-t|u|f service-address: 事先定义好的某集群服务
-r server-address: RS的地址,在NAT模型中,能够使用port映射
[ -g | i | m ] LVS类型
-g: DR
-I: TUN
-m: NAT
[-w weight] 定义server权重
3、改动:-e
4、删除:-d -t|u|f service-address -r server-address
比如:#ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.8 -m
比如:#ipvsadm -a -t 172.16.100.1:80 -r 192.168.10.9 -m
5、查看
-L|l[options]
-n:数字格式显示主机地址和port号
--stats:统计信息
--rate:速率
--timeout:显示tcp、tcpfin和udp会话的超时时间值
--daemon
--sort:跟协议、地址、port进行排序,默觉得升序
-c:显示当前ipvs连接状况
6、删除全部集群服务:
-C:清空ipvs规则
7、保存规则
-S:(用输出重定向进行保存)
格式:`#ipvsadm -s >/path/to/somefile`
8、加载此前的规则:
-R
格式:`#ipvsadm -R </path/to/somefile`
原创作品,同意转载,转载时请务必以超链接形式标明文章原始出处及作者信息和本声明。否则将追究法律责任。
以上是关于负载均衡集群ipvsadm命令及基本用法的主要内容,如果未能解决你的问题,请参考以下文章