自学内容网 自学内容网

Linux-LVS集群模式

https://i-blog.csdnimg.cn/blog_migrate/58966ddd9b29aabe8841f5ec34f0d31c.gif

🏡作者主页:点击!

🤖Linux专栏:点击!

⏰️创作时间:2024年11月25日13点10分

在这里插入图片描述

LVS的调度算法

静态算法

  • RR:轮询调度
    调度器将收到的请求按顺序轮流分配到集群中的RS,均匀地分配请求,不考虑服务器连接数和负载情况
  • WRR:加权轮询
    根据RS的处理能力给予不同的权重,为性能好的服务器分配更多的请求,性能一般的分配较少的请求
  • SH:源地址哈希
    根据请求源IP地址作为哈希键从静态分配的哈希表中找出对应的服务器,同一个IP地址的请求始终发往第一次调度的Real Server 实现会话绑定
  • DH:目标地址哈希
    根据请求目标IP地址作为哈希值从静态分配的哈希表中找出对应的服务器,发往同一个目标地址的请求始终转发到第一次调度的Real Server ,用于实现正向代理缓存场景中的负载均衡

动态算法

LVS的动态调度算法一共八种

  • LC:最小连接
    动态地将网络请求调度到连接数最少的RS上,集群中的服务器性能相近时,这种算法可以进行较好的负载均衡。适用于长链接应用。负载计算公式为:overhead = 活动连接数*256+非活动连接数
  • WLC:加权最小连接
    相当于 LC,当集群中服务器性能有差异时,建议使用,可以使性能较好的服务器承接较大比例的活动连接,此算法是LVS的默认调度算法,负载公式为:overhead = (活动连接数 * 256 + 非活动连接数) / 权重值
  • SED:最短期望延迟
    当使用WLC时,如果RS的连接数和权重比例正好一样,下个请求将可能分配给任意一个RS,而不是性能最好的RS,SED可避免这种情况,保证了高权重优先
  • NQ:永不排队
    第一轮请求会均匀的分配给RS,后续使用SED算法,这样避免某些服务器可能用于得不到处理请求的机会
  • LBLC:基于局部性的最少连接
    根据请求的目标IP找该IP最近使用的服务器,若该服务器可用且没超载,就将请求发给它,若服务器不存在或者超载,且有空闲服务器时,则用最少连接原则发送给一个服务器,针对目标IP地址的负载均衡算法,可用看作动态的DH算法,根据负载情况实现正向代理、Web缓存
  • LBLCR:带权重的基于局部性的最少连接
    维护从一个目标IP地址到一组服务器的映射,lblc维护的是一个目标地址到一台服务器的映射,根据请求的目标IP地址找出该目标 IP 对应的服务器组,按最少连接原则从组内选出一台没有超载的服务器,将请求发给它,若该服务器超载,则最少连接原则从该集群种选出一台服务器加入到服务器组中,将请求发给该服务器,如果服务器在一段时间没有修改,将最忙的服务器从组内删除,降低复制程度
    这个算法也是针对目标IP地址的负载均衡算法,解决LBLC负载不均衡的问题,从负载重的RS复制到负载轻的RS,根据负载情况实现正向代理、Web缓存等
  • FO:遍历LVS关联RS链表,找到未过载且权重最高的RS进行调度
  • OVF:基于RS活动数和权重值来实现,将新连接调度到权重值最高的RS,直到其活动连接数超过它权重值,之后调度到下一个权重最高的RS,遍历LVS关联的RS链表,找到权重最高的可用RS。
    ==可用RS需要满足以下条件:==LBLCR:加权最少连接算法
    未过载
    RS当前活动连接数小于其权重值
    权重值不为 0

NAT模式配置

配置

yum install -y ipvsadm*

nano /etc/sysctl.conf
net.ipv4.ip_forward=1    #开启路由转发

sysctl -p | grep net.ipv4.ip_forward    #sysctl -p 使得配置迅速生效
sysctl -a | grep net.ipv4.ip_forward    #查看转发功能是否实现

ipvsadm -A -t 192.168.1.10:80 -s rr    #增加一个集群

ipvsadm -a -t 192.168.1.10:80 -r 10.0.0.2 -m
ipvsadm -a -t 192.168.1.10:80 -r 10.0.0.3 -m    #添加后端Real Server,-m表示采用NAT模式

ipvsadm -ln    #配置好检查配置后状态

DR模式配置

配置

DR要求所有的服务器包括客户机要在同一网段内

yum install -y ipvsadm*

nano /etc/sysctl.conf
net.ipv4.ip_forward=0    #关闭路由转发(关闭数据包转发功能)
net.ipv4.conf.all.send_redirects = 0    #禁止系统发送ICMP重定向消息,只发送真实IP
net.ipv4.conf.default.send_rediects = 0    #禁止默认网络接口发送ICMP重定向消息
net.ipv4.conf.ens33.send.rediects = 0    #禁止ens33发送ICMP重定向消息


sysctl -p    #使得配迅速生效

ipvsadm -C    #清除所有配置

ipvsadm -A -t 192.168.1.10:80 -s rr    #增加一个集群

ipvsadm -a -t 192.168.1.10:80 -r 192.168.1.2 -g
ipvsadm -a -t 192.168.1.10:80 -r 192.168.1.3 -g    #添加后端Real Server,-m表示采用NAT模式

ipvsadm -ln    #配置好检查配置后状态

#两台服务器配置
nano /etc/sysctl.conf
net.ipv4.conf.lo.arp_ignore = 1    #设置环回接口忽略来自任何接口的ARP请求
net.ipv4.conf.lo.arp_announce = 2    #设置环回接口仅仅公告本地的IP地址,但是不响应ARP请求
net.ipv4.conf.all.arp_ignore = 1    #设置所有接口忽略来自任何接口的ARP请求
net.ipv4.conf.all.arp_announce = 2    #设置所有接口仅仅公告本地的IP地址,但是不响应ARP请求

原文地址:https://blog.csdn.net/Jerry_BLOG/article/details/144024990

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!