20260731前提交第一此作业 LVS

发布时间:2026/7/30 20:56:46

20260731前提交第一此作业 LVS 1.什么是集群集群Cluster将多台独立服务器组合成一个整体对外提供服务对外表现为单一服务节点。通过多机协作实现提升并发、扩容能力、故障容错三大目标。核心思想分散压力冗余容灾。2.集群分类Cluster常见的三种类型LBLoadBalancing负载均衡由多个主机组成每个主机只承担一部分访问。HAHigh Availiablity高可用SPOFsingle Point Of failure MTBF:Mean Time Between Failure 平均无故障时间正常时间 MTTR:Mean Time To Restoration repair平均恢复前时间故障时间 AMTBF/MTBFMTTR (0,1)99%, 99.5%, 99.9%, 99.99%, 99.999% SLAService level agreement服务等级协议是在一定开销下为保障服务的性能和可用性服 务提供商与用户间定义的一种双方认可的协定。通常这个开销是驱动提供服务质量的主要因素。在 常规的领域中总是设定所谓的三个9四个9来进行表示当没有达到这种水平的时候就会有一 些列的惩罚措施而运维最主要的目标就是达成这种服务水平。 停机时间又分为两种一种是计划内停机时间一种是计划外停机时间而运维则主要关注计划外 停机时间。HPCHigh-performance computing 将复杂任务拆分并行运算多用于科学计算、大数据。3.lvs的作用工作在传输层TCP/UDP基于 IP 端口转发数据包将客户端请求调度分发到后端多台真实服务器RS支撑高并发转发性能极高内核态远高于用户态 Nginx配合 Keepalived 实现调度器自身高可用消除负载均衡单点故障4.lvs的4种模式及原理lvs-nat 修改请求报文的目标IP,多目标IP的DNAT原理:本质是多目标IP的DNAT通过将请求报文中的目标地址和目标端口修改为某挑出的RS的RIP和 PORT实现转发RIP和DIP应在同一个IP网络且应使用私网地址;RS的网关要指向DIP请求报文和响应报文都必须经由Director转发Director易于成为系统瓶颈支持端口映射可修改请求报文的目标PORT VS必须是Linux系统RS可以是任意OS系统1.客户端发送访问请求请求数据包中含有请求来源cip访问目标地址VIP访问目标端口 9000port2.VS服务器接收到访问请求做DNAT把请求数据包中的目的地由VIP换成RS的RIP和相应端口 3.RS1相应请求发送响应数据包包中的相应保温为数据来源RIP1响应目标CIP相应端口 9000port4.VS服务器接收到响应数据包改变包中的数据来源RIP1--VIP,响应目标端口9000--80 5.VS服务器把修改过报文的响应数据包回传给客户端6.lvs的NAT模式接收和返回客户端数据包时都要经过lvs的调度机所以lvs的调度机容易阻塞客户请求到达vip后进入PREROUTING,在没有ipvs的时候因该进入本机INPUT,当IPVS存在后访问请求在通 过PREROUTING后被ipvs结果并作nat转发因为ipvs的作用点是在PREROUTING和INPUT链之间所以如果在prerouting中设定规则会干扰ipvs的工 作。所以在做lvs时要把iptables的火墙策略全清理掉。lvs-dr 操纵封装新的MAC地址DRDirect Routing直接路由LVS默认模式,应用最广泛,通过为请求报文重新封装一个MAC首部进行 转发源MAC是DIP所在的接口的MAC目标MAC是某挑选出的RS的RIP所在接口的MAC地址源 IP/PORT以及目标IP/PORT均保持不变在DR模式中RS接收到访问请求后不需要回传给VS调度器直接把回传数据发送给client所以RS和vs 上都要有vip1.客户端发送数据帧给vs调度主机帧中内容为客户端IP客户端的MACVIPVIP的MAC2.VS调度主机接收到数据帧后把帧中的VIP的MAC该为RS1的MAC此时帧中的数据为客户端IP客户端 的MACVIPRS1的MAC3.RS1得到2中的数据包做出响应回传数据包数据包中的内容为VIPRS1的MAC客户端IP客户端IP的 MAClvs-tun在原请求IP报文之外新加一个IP首部转发方式不修改请求报文的IP首部源IP为CIP目标IP为VIP而在原IP报文之外再封装一个IP首部 源IP是DIP目标IP是RIP将报文发往挑选出的目标RSRS直接响应给客户端源IP是VIP目标IP 是CIP1.客户端发送请求数据包包内有源IPvipdport2.到达vs调度器后对客户端发送过来的数据包重新封装添加IP报文头新添加的IP报文头中包含 TUNSRCIP(DIP)TUNDESTIP(RSIP1)并发送到RS13.RS收到VS调度器发送过来的数据包做出响应生成的响应报文中包含SRCIP(VIP)DSTIPCIP port响应数据包通过网络直接回传给clientlvs-fullnat 修改请求报文的源和目标IP通过同时修改请求报文的源IP地址和目标IP地址进行转发 CIP -- DIP VIP -- RIP1.VIP是公网地址RIP和DIP是私网地址且通常不在同一IP网络因此RIP的网关一般不会指向DIP2.RS收到的请求报文源地址是DIP因此只需响应给DIP但Director还要将其发往Client3.请求和响应报文都经由Director4.支持端口映射5lvs的13种算法lvs静态调度算法仅根据算法本身进行调度不考虑RS的负载情况1、RRroundrobin 轮询 RS分别被调度当RS配置有差别时不推荐2、WRRWeighted RR加权轮询根据RS的配置进行加权调度性能差的RS被调度的次数少 3、SHSource Hashing实现session sticky源IP地址hash将来自于同一个IP地址的请求始终发往 第一次挑中的RS从而实现会话绑定4、DHDestination Hashing目标地址哈希第一次轮询调度至RS后续将发往同一个目标地址的请 求始终转发至第一次挑中的RS典型使用场景是正向代理缓存场景中的负载均衡如宽带运营商lvs动态调度算法主要根据每RS当前的负载状态及调度算法进行调度Overheadvalue较小的RS将被调度主要根据RS当前的负载状态及调度算法进行调度Overheadvalue较小的RS会被调度1、LCleast connections最少链接发 适用于长连接应用Overhead负载值activeconns活动链接数 x 256inactiveconns非活 动链接数2、WLCWeighted LC权重最少链接 默认调度方法Overhead(activeconns x 256inactiveconns)/weight3、SEDShortest Expection Delay, 初始连接高权重优先Overhead(activeconns1inactiveconns) x 256/weight 但是当node1的权重为1node2的权重为10经过运算前几次的调度都会被node2承接4、NQNever Queue第一轮均匀分配后续SED5、LBLCLocality-Based LC动态的DH算法使用场景根据负载状态实现正向代理6、LBLCRLBLC with Replication带复制功能的LBLC解决LBLC负载不均衡问题从负载重的复制 到负载轻的RS新增调度算法1.FO(Weighted Fai Over)调度算法常用作灰度发布 在此FO算法中遍历虚拟服务所关联的真实服务器链表找到还未过载(未设置IP_VS_DEST_F OVERLOAD标志)的且权重最高的真实服务器进行调度 当服务器承接大量链接我们可以对此服务器进行过载标记IP_VS_DEST_F OVERLOAD那么vs调度 器就不会把链接调度到有过载标记的主机中。2.OVF(Overflow-connection)调度算法基于真实服务器的活动连接数量和权重值实现。将新连接调度到权重值最高的真实服务器直到其活动 连接数量超过权重值之后调度到下一个权重值最高的真实服务器,在此OVF算法中遍历虚拟服务相关 联的真实服务器链表找到权重值最高的可用真实服务器。一个可用的真实服务器需要同时满足以下条 件: 未过载(未设置IP_VS_DEST_F OVERLOAD标志) 真实服务器当前的活动连接数量小于其权重值 其权重值不为零6.lvs的多端口轮询问题解决方案在RS1和RS2中开启https[rootRS1RS2 ~]# dnf install mod_ssl -y[rootRS1RS2 ~]# systemctl restart httpd[rootRS1RS2 ~]# systemctl restart httpd添加轮询策略rootvsnode boot]# ipvsadm-A -t 192.168.0.200:80 -s rr[rootvsnode boot]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.20 -g[rootvsnode boot]# ipvsadm -a -t 192.168.0.200:80 -r 192.168.0.10 -g[rootvsnode boot]# ipvsadm -A -t 192.168.0.200:443 -s rr[rootvsnode boot]# ipvsadm -a -t 192.168.0.200:443 -r 192.168.0.10:443 -g[rootvsnode boot]# ipvsadm -a -t 192.168.0.200:443 -r 192.168.0.20:443 -g使用火墙标记访问vip的80和443的所有数据包设定标记为6666然后对此标记进行负载[rootvsnode boot]# iptables -t mangle -A PREROUTING -d 192.168.0.200 -p tcp -m multiport --dports 80,443 -j MARK --set-mark 6666[rootvsnode boot]# ipvsadm -A -f 6666 -s rr[rootvsnode boot]# ipvsadm -a -f 6666 -r 192.168.0.10 -g[rootvsnode boot]# ipvsadm -a -f 6666 -r 192.168.0.20 -g测试[rootclient ~]# curl 192.168.0.200;curl -k https://192.168.0.200RS2 - 192.168.0.20RS1 - 192.168.0.107.lvs的会话粘滞解决方案默认 LVS 调度器rr 轮询等算法收到客户端新请求时会按照算法轮流分发到不同后端 RealServer。 会话粘滞持久连接加 -p参数同一个客户端 IP在设定的超时时间内所有请求固定调度到同一台后端服务器。俗称绑定客户端不切换后端保证会话不丢失。

相关新闻