lvs原理及常见问题解决方案
一、集群的定义:由多个独立的服务器/电脑组成的单个系统对外提供服务统一调度。前端与后端互不认识前端只知道调度器信息集群能够接收更多流量、后端有故障机也不会影响前端访问。二、集群分类:集群常见类型有三种分别是LB(负载均衡)HA(高可用)HPC(高性能)1.LB由多个主机组成后端主机共同承接大量用户流量实现流量均分。2.HA在服务器、服务、硬件故障时可自动将业务转到备用节点不用人工干预保障业务对外服务稳定可用。3.HPC高性能计算国家战略资源。三、lvs的作用:lvs用于四层流量负载分发在传输层工作(TCP/IP),只识别IP和端口不对报文内容进行解析。按照算法分配给后端RS分摊服务器压力提升服务器并发上限还能持续探测后端RS存活状态可保障服务可用性能承接大量流量也可配合keepalived实现调度器高可用。四、lvs的四种模式及原理1.nat模式通过将请求报文中的目标地址和目标端口修改为后端某个RS的RIP和PORT实现转发。核心是进行网络地址转换在入站时进行DNAT(目的地址转换)将目标IP(VIP)转为RIP在出站时进行SNAT(源地址转换)将从RS来的数据包的源IP从RIP转为VIP2.DR模式直连路由模式应用最广泛。通过为请求报文重新封装一个MAC首部进行转发源MAC是DIP所在接口的MAC目标MAC是某个RS的RIP所在接口的MAC源IP/PORT、目标IP/PORT不变。RS接到请求后不传回调度器直接发给client所以在VS和RS上都有VIP3.TUN模式不修改报文IP首部在原IP报文之外再封装一个IP首部将报文发给RSRS直接响应给client。4.fullnet模式同时修改报文的源IP和目标IP(CIP--DIP VIP--RIP),此类型kernel默认不支持。五.lvs的13种算法1.静态算法(1)RRroundrobin轮询默认无权重服务器均分请求适合硬件配置一样的服务器。(2)WRR设置权重权重越高分到的请求越多性能更好的机器应给更高权重承接更多流量。(3)SH源地址哈希对客户端CIP哈希一个用户IP永远固定到同一台RS可实现简易会话保持但当被哈希的RS宕机时用户无法直接访问。(4)DH目标地址哈希对被访问的VIP做哈希用同一个VIP固定分配到一台RS保证多个VIP业务流量固定到一台后端但容易导致那台后端RS负载过高其他RS空闲。2.动态算法(1)LC负载值活动链接数*256非活动链接数优先把新请求发给当前活跃链接数最少的所有节点权重一致但不能区分服务器性能容易导致高性能节点被打满。(2)WLC负载值LC/权重能兼顾服务器性能和实时负载比值越小越空闲的优先分配。(3)SED(LC1)/权重数值越小优先分配与WLC相比更精准。(4)NQ第一轮均匀分配后续按照SED。(5)LBLC动态的DH算法根据负载情况实现正向代理优先将流量分给历史绑定IP的RS节点超载则切换到最少链接的RS。(6)LBLCR带复制功能的LBLC当某个RS超载时会复制到负载轻的RS。3.扩展算法(1)FO遍历后端RS列表只选择为被标记过载、权重最高的RS只有当RS宕机或过载才切换到下一个权重最高的RS。(2)OVF将新连接调度到权重值最高的真实服务器直到其活动连接数量超过权重值之后调度到下一个权重值最高的真实服务器。(3)TWOS加权随机双选随机选取两个RS对比归一化后的连接数选择负载更低的RS。六.lvs的多端口轮询问题解决方案1.先配置环境如表设定路由的双网卡IP调度器的单网卡dip两个rs主机的eth0网卡的IP设置client的NAT单网卡IP为172.25.254.992.然后再RS1和2中安装web服务并开机自启设定访问的数据可在vs主机中用curl测试然后再rs1和2中在lo上设定vip并写入arp禁止响应3.在vs主机中安装lvs dnf install ipvsadm-1.31-6.el9.x86_64 -y然后设置vs的lo的vip4.然后开启路由器的内核路由功能然后写数据转发策略5.设置client的网关为172.25.254.1006.在rs主机中开启httpsdnf install mod_ssl -y然后重启httpd服务7.在vs主机中添加https策略在客户端测试轮询错误解决问题使用火墙标记访问vip的80和443的所有数据包设定标记为6666然后对此标记进行负载然后编写策略最后在客户端测试七.lvs的会话粘滞解决方案先设定ipvs调度策略在后面加-p开启会话保持为了效果设定保持1分钟因为策略存在所有用-E修改然后在client上测试最后在vs上 “watch -n 1 ipvsadm -Lnc” 用观察