最近项目中需要使用F5做负载均衡,将相关资料记录下来。
以下是F5变更申请中的相关参数说明,我们就以此顺藤摸瓜,我们挑几个重要参数去学习吧。
服务器实际地址与端口 | 提供服务的真实服务器IP地址与提供服务的端口。 | |||||||
对外服务地址与端口 | F5设备向外提供服务的IP地址与端口,此选项可向网络处申请。 | |||||||
负载均衡算法 | F5设备向服务器下发请求的分发方式。F5设备默认的是轮询,(例如:有两个提供服务的真实服务器,F5会把两个请求分别分配给服务器1和服务器2) | |||||||
会话保持类型 | 会话保持可以将一个客户的持续请求落在一台服务器上。常用的会话保持类型有cookie与源地址方式。F5设备默认无会话保持。 | |||||||
会话保持时间 | 可以自定义需要保持的会话在多长时间内有效,或者只基于浏览器创建的一个会话。 | |||||||
长连接 | 保持一个连接的有效性。客户向提供服务的真实服务器先建立起通讯的连接,连接建立后并不断开(是否断开由长连接的时间决定),然后再进行报文的传输。 | |||||||
长连接时间 | 允许一个连接空闲的时间有多长,F5设备默认的是5分钟,也就是在5分钟内F5设备不会中断此连接。 | |||||||
互访关系 | 提供服务的服务器与服务器之间是否存在互访关系。 | |||||||
透传源地址 | 业务层面是否需要对客户的真实地址做了解,如果需要,F5设备将配置透传客户的源地址信息给后端提供服务的服务器。 | |||||||
探测类型 | 要求F5设备使用哪种类型做提供服务的服务器健康检查(健康检查就是F5设备检查提供服务的真实服务器是否可用的代名词)。在行内常用到的有HTTP与TELNET,(例如,F5配置了Telnet的类型后,F5设备就会定期对提供服务的真实服务器发送telnet的探测包,如果在定义的时间内没有返回信息给F5,F5便会停止此真实服务器对外提供服务。但F5会一直按照规定发送Telnet探测包至服务器,直到服务器给予正确的回应后,F5便恢复此服务器。) | |||||||
检查条件 | 根据在检查类型中定义的类型,来填写检查条件,(例如“检查类型”填写的是ICMP,“检查条件”应填写192.168.1.1) | |||||||
成功返回值 | 如果检查类型填写的是HTTP或者其他自定义的类型,那么在成功返回值中应该填写真实服务器正确返回给F5的是什么信息,F5即认为服务器是可用的。 | |||||||
探测包发送间隔 | 第一次探测与第二次探测的间隔时间。F5设备默认的间隔时间是5秒钟。即F5设备会每隔5秒钟对真实服务器发送一次探测包,来探测真实服务器是否正常。 | |||||||
探测包重传次数 | 连续探测多少次服务器。F5设备默认的次数是3次。即F5设备会每隔5秒钟对真实服务器做状态探测,如果连续3次没有返回给F5正确的信息后,F5便会将此真实服务器从提供服务的服务组里面摘除,直到其变为可用服务器后在放回提供服务的服务组里面。 | |||||||
服务器最大响应时间 | 提供服务的真实服务器在停止多长时间没有给F5正确的探测回应,F5便可以把此服务器从提供服务的服务组里面摘除。F5设备默认的是:间隔时间×重传次数+1=最大响应时间。(例如:F5设备默认的发送间隔是5秒钟,重传次数是3次,那么最大响应时间应该是5×3+1=16秒) |
一、负载均衡算法
随机 (Random)—— 随机分发
轮询(Round Robin)
—— 将请求依次顺序循环地分发给服务器,从1到N然后重新开始。此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求相对均衡的情况。
权重(Weighted Round Robin)——
根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。。此种均衡算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。
动态比率(Dynamic
Round Robin)——类似于权重,不过权重值是随着对服务器持续的监控而变化的。这是一个动态的负载均衡算法,基于对服务器性能的实时分析,如连接数或响应时间。
最快模式(Fastest)——传递连接给那些响应速度最快的服务器。这种算法可能对于服务器处于不同的逻辑网络中的情况特别有用。均衡器记录着每个服务器的响应时间并选择最快的那一个。这非常直接了当,但是可能会导致拥塞,因为当前的响应时间并不一定真的还是1s或是2s了。
最小连接数(Least
Connections)——最少连接数均衡算法对内部中需负载的每一台服务器都有一个数据记录,记录当前该服务器正在处理的连接数量,当有新的服务连接请求时,将把当前请求分配给连接数最少的服务器,使均衡更加符合实际情况,负载更加均衡。此种均衡算法适合长时处理的请求服务,如FTP。
观察模式(Observed)——
以连接数和响应时间这两项的最佳平衡为依据来为新的请求选择服务器。
预测模式(Predictive)——预测模式使用和观察模式一样的评选方法,只不过BIGIP会利用收集到的服务器当前的性能指标(连接数和响应时间),进行预测分析,选择一台服务器在下一个时间片内,其性能将达到最佳的服务器来响应用户的请求。预测模式试图修复在观察模式中的一个问题,如果服务器的响应时间已经开始下滑,那么它是不太可能接受下一个请求的。
参考链接:https://devcentral.f5.com/articles/intro-to-load-balancing-for-developers-ndash-the-algorithms
二、会话保持
将同一会话的后续连接分发到同一服务器上。
1、简单会话保持(基于源地址的会话保持)。负载均衡器在作负载均衡时是根据访问请求的源地址作为判断关连会话的依据。对来自同一IP地址的所有访问请求在作负载均时都会被保持到一台服务器上去。
实现起来简单。
问题:容易出现负载失衡。
a、当多个客户是通过代理或地址转换的方式来访问服务器时,由于都分配到同一台服务器上,会导致服务器之间的负载严重失衡。
b、客户机数量很少,但每个客户机都会产生多个并发访问,对这些必发访问也要求通过负均均衡器分配到多个服器上,这时基于客户端源地址的会话保持方法也会导致负载均衡失效。
2、基于Cookie的会话保持