负载均衡
KEEPALIVED安装与使用
keepalived配置说明
keepalived检测方式
keepalived LVS配置
LVS
LVS-NAT集群的搭建
LVS-DR集群的搭建
KEEPALIVED+LVS
HAproxy
HAProxy配置说明
HAproxy算法
HAProxy管理页
HAProxy保持
HAProxyACL规则
NGINX
NGINX负载均衡
NGINX负载示例二
负载转发路径问题
缓冲缓存参数详解
限制代理ip方法
负载参数详解
nginx_upstream_check_module
正向代理(HTTP)
本文档使用MrDoc发布
返回首页
-
+
LVS
2020年2月14日 16:35
admin
#安装ipvsadm yum install ipvsadm or apt-get install ipvsadm #启停ipvsadm systemctl status ipvsadm systemctl stop ipvsadm systemctl start ipvsadm ####启动报错: >/etc/sysconfig/ipvsadm: 没有那个文件或目录 解决办法: #ipvsadm --save > /etc/sysconfig/ipvsadm #操作 >####虚拟服务 #ipvsadm 选项 服务器地址 -s 算法 >####真实服务器 #ipvsadm 选项 服务器地址 -r 真实服务器地址 [工作模式] [权重] >####参数列表: -A #添加一条新的虚拟服务 -E #编辑虚拟服务 -D #删除虚拟服务 -C #清除所有的虚拟服务规则 -Z --zero 将转发消息的统计清零 -R #恢复虚拟服务规则 -S #保存虚拟服务规则至标准输出,输出规则可用-R导入还原(一般与-n连用) -n #以数字形式显示IP端口 -a #在一个虚拟服务中添加一个新的真实服务器 -e #编辑某个真实服务器 -d #删除某个真实服务器 -L | -l #显示内核中的虚拟服务规则 -c #显示ipvs中目前存在的连接,也可以用于分析调度情况 -s #配置负载均衡算法,如:rr, wrr, lc等 -r #设置真实服务器的IP地址与端口信息 -t | -u #TCP/UDP协议的虚拟服务 -g | -m | -i #LVS模式为:DR | NAT | TUN -w #配置真实服务器的权重 --timeout #显示配置的tcp/tcpfin/udp超时时间 --stats #显示历史转发消息统计(累加值) --rate #显示转发速率信息(瞬时值) --- #调度算法 >####轮叫调度(Round-Robin Scheduling) ----rr 轮叫调度(Round Robin Scheduling)算法就是以轮叫的方式依次将请求调度不同的服务器,即每次调度执行i = (i + 1) mod n,并选出第i台服务器。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。 >####加权轮叫调度(Weighted Round-Robin Scheduling) ----wrr 加权轮叫调度(Weighted Round-Robin Scheduling)算法可以解决服务器间性能不一的情况,它用相应的权值表示服务器的处理性能,服务器的缺省权值为1。假设服务器A的权值为1,B的权值为2,则表示服务器B的处理性能是A的两倍。加权轮叫调度算法是按权值的高低和轮叫方式分配请求到各服务器。权值高的服务器先收到的连接,权值高的服务器比权值低的服务器处理更多的连接,相同权值的服务器处理相同数目的连接数。 >####最小连接调度(Least-Connection Scheduling) ---lc 最小连接调度(Least-Connection Scheduling)算法是把新的连接请求分配到当前连接数最小的服务器。最小连接调度是一种动态调度算法,它通过服务器当前所活跃的连接数来估计服务器的负载情况。调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1;当连接中止或超时,其连接数减一。 >####加权最小连接调度(Weighted Least-Connection Scheduling)---wlc 加权最小连接调度(Weighted Least-Connection Scheduling)算法是最小连接调度的超集,各个服务器用相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权值。加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。 >####基于局部性的最少链接(Locality-Based Least Connections Scheduling) --lblc 基于局部性的最少链接调度(Locality-Based Least Connections Scheduling,以下简称为LBLC)算法是针对请求报文的目标IP地址的负载均衡调度,目前主要用于Cache集群系统,因为在Cache集群中客户请求报文的目标IP地址是变化的。这里假设任何后端服务器都可以处理任一请求,算法的设计目标是在服务器的负载基本平衡情况下,将相同目标IP地址的请求调度到同一台服务器,来提高各台服务器的访问局部性和主存Cache命中率,从而整个集群系统的处理能力。LBLC调度算法先根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于其一半的工作负载,则用“最少链接”的原则选出一个可用的服务器,将请求发送到该服务器。 >####带复制的基于局部性最少链接(Locality-Based Least Connections with Replication Scheduling)--lblcr 带复制的基于局部性最少链接调度(Locality-Based Least Connections with Replication Scheduling,以下简称为LBLCR)算法也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。对于一个“热门”站点的服务请求,一台Cache 服务器可能会忙不过来处理这些请求。这时,LBLC调度算法会从所有的Cache服务器中按“最小连接”原则选出一台Cache服务器,映射该“热门”站点到这台Cache服务器,很快这台Cache服务器也会超载,就会重复上述过程选出新的Cache服务器。这样,可能会导致该“热门”站点的映像会出现在所有的Cache服务器上,降低了Cache服务器的使用效率。LBLCR调度算法将“热门”站点映射到一组Cache服务器(服务器集合),当该“热门”站点的请求负载增加时,会增加集合里的Cache服务器,来处理不断增长的负载;当该“热门”站点的请求负载降低时,会减少集合里的Cache服务器数目。这样,该“热门”站点的映像不太可能出现在所有的Cache服务器上,从而提供Cache集群系统的使用效率。LBLCR算法先根据请求的目标IP地址找出该目标IP地址对应的服务器组;按“最小连接”原则从该服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载;则按“最小连接”原则从整个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。 >####目标地址散列调度(Destination Hashing Scheduling) ---dh 目标地址散列调度(Destination Hashing Scheduling)算法也是针对目标IP地址的负载均衡,但它是一种静态映射算法,通过一个散列(Hash)函数将一个目标IP地址映射到一台服务器。目标地址散列调度算法先根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。 >####源地址散列调度(Source Hashing Scheduling)---sh 源地址散列调度(Source Hashing Scheduling)算法正好与目标地址散列调度算法相反,它根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。它采用的散列函数与目标地址散列调度算法的相同。它的算法流程与目标地址散列调度算法的基本相似,除了将请求的目标IP地址换成请求的源IP地址,所以这里不一一叙述。在实际应用中,源地址散列调度和目标地址散列调度可以结合使用在防火墙集群中,它们可以保证整个系统的唯一出入口。 --- #常用命令 ipvsadm -Ln #查看LVS规则表 ipvsadm -Lnc #查看调度状态 ipvsadm -Ln --stats #显示历史转发消息统计(累加值) ipvsadm -Ln --rate #显示转发速率信息(瞬时值) ------------------------------------------------------------ ipvsadm -A -t 192.168.31.88:80 -s rr #添加虚拟服务 ipvsadm -E -t 192.168.31.88:80 -s wrr #修改虚拟服务的调度算发为加权轮询 ipvsadm -D -t 192.168.31.88:80 #删除虚拟服务 ipvsadm -a -t 192.168.31.88:80 -r 192.168.31.146:80 -m -w 5 #添加真实服务器 ipvsadm -d -t 192.168.31.88:80 -r 192.168.31.38:80 #删除真实服务器 --- #备份与还原 >##清空 ipvsadm -C >##备份 ipvsadm -Sn > ip_vs.bak >##还原 ipvsadm -R < ip_vs.bak
分享到: