F5 LTM 负载均衡理论

  • A+
所属分类:网络

    F5的默认配置文件是ucs后缀的文件,如果想查看可以把ucs改成rar后缀的压缩文件格式并解压便可以看到     

F5 LTM 负载均衡理论

     在F5 BIG-IP LTM的内部对于数据包的处理方式,存在有两种主要的工作模式,分别针对于四层处理和七层处理,其中四层处理模式命名为Performance L4 ,七层处理模式命名为Standard.    

在Performance L4的情况下,BIG-IP LTM是按照纯四层的处理方式对流量处理,换句话说基本上只看IP和端口部分的内容,然后在对数据包进行转发的时候,对四层信息进行处理,比如替换目的IP、目的端口,然后就直接进行转发了,对其他的TCP参数不进行任何的变动。   

Standard 模式是BIG-IP LTM TMOS 的Full Proxy结构,在这种结构下,BIG-IP LTM对于连接,建立两个TCP堆栈,分别是Client side 和 Server side。   

另外再多说一点Virtual server的类型Forwaiding

它有一种基于Layer 2,VS设置与关联VLAN中的节点共享相同的IP地址,没有pool members;另一种基于IP,同样没有pool members,接受外部VLAN上的所有流量并将其转发到VS中目标IP地址的服务器。     

Virtual Server 执行顺序

  • 指定IP地址和指定端口 10.0.33.199:80
  • 指定IP地址和全端口 10.0.33.199:*
  • IP网段和指定端口 10.0.33.0:433 netmask 255.255.255.0
  • IP网段和全端口 10.0.33.0:* netmask 255.255.255.0
  • 全零网段和指定端口 0.0.0.0:80 netmask 0.0.0.0
  • 全零网段和全端口 0.0.0.0:* netmask 0.0.0.0

应用负载均衡策略静态负载均衡算法:轮询,比率(使用轮询算法时,pool member或node中设置的比率值不生效)
动态负载均衡算法: 最少连接数,最快响应速度,观察方法,Predictive预测法,Dynamic Ratio 动态比率

轮询算法:

F5 LTM 负载均衡理论

轮询算法:顾名思义就是轮换的访问服务器。通常使用在比较简单的情况下。有时,在大流量和大量新建连接时,也采用轮询算法保证服务器接收请求的平均性,避免动态算法的计算间隔带来的单台服务器压力过大的问题。
比率算法:在BIG-IP LTM上给每个服务器分配一个加权值为比例,根椐这个比例,BIG-IP LTM把用户的请求分配到每个服务器。当其中某个服务器发生第二到第7 层的故障,就把其从服务器队列中拿出,不参加下一次的用户请求的分配, 直到其恢复正常。

F5 LTM 负载均衡理论

比率算法通常用于在后台服务器的服务能力不均匀的情况下。可以手工指定每台服务器所接收的请求比率。实现负载的均衡性。

最少连接数
在BIG-IP LTM上对每一台服务器的当前连接数进行统计,当有新的请求进入时,将新的请求分配给当前最少连接处理的服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP LTM就把其从服务器队列中拿出,不参加下一次的用户请求的分配, 直到其恢复正常。

F5 LTM 负载均衡理论

最小连接数为最常用的负载均衡算法之一,在后台服务器处理能力均等的情况下,使用最小连接数可以得到最为平衡的负载均衡效果。

最快响应速度
在BIG-IP LTM上通过观察每台服务器得应用响应速度,当有新的请求进入的时候,将新的请求分配给响应最快的服务器。当其中某个服务器发生第二到第7 层的故障,BIG-IP LTM就把其从服务器队列中拿出,不参加下一次的用户请求的分配,直到其恢复正常。

F5 LTM 负载均衡理论

Note:如果比较有心的小伙伴可以留意到我前面介绍负载方式都是基于member,而关于node方式是不一样的,因为他们的主体不同,一个是以node为主体,一个是以member为主体。

F5 LTM 负载均衡理论

node : 表示服务器的IP地址;pool member : node上运行的一个服务,用IP地址和服务端口的组合表示pool : 一个或多个pool member的逻辑分组,一个pool代表一个应用Virtual server : IP地址和端口组合而成用来监听客户端的请求

F5 LTM 负载均衡理论

会话保持
在大多数后台应用系统的设计中,没有实际考虑到将被应用于负载均衡的环境中,为了保持在用户访问时与单机运行环境的一致,因此,在BIG-IP LTM上必须采用会话保持功能。
连接(connection)与会话(Session)的区别
在开始讨论什么是会话保持之前,必须先清楚一个概念,就是连接和会话的区别。这个也是在很多不同厂商,不同的产品之间一个比较容易混淆的概念。
首先,我们来看什么是一个连接(connection)。在四层负载均衡的概念中,连接是四层负载均衡的最小元素,一个连接包含:
源端口:通常是在客户端的一个随机产生的端口。
源IP:发起请求的源IP地址。
目的端口:通常是四层负载均衡上的虚拟服务端口。
目的IP: 通常是BIG-IP LTM上的虚拟服务地址。

而会话(Session)的概念则要广泛一些,通常情况下,一个会话是由多个连接组成。BIG-IP LTM将一个会话里的多个连接认为是同一个用户发起的,是为同一个用户服务的。在BIG-IP LTM的概念中,一个Session通常就是会话保持表中的一条记录所对应的所有连接。每个命中到这条记录的连接都是属于同一个Session的。比如当我们选择源地址会话保持的时候,会话保持表里面的每个记录对应一个源IP地址,则所有从这个源IP地址发起针对一个VS的连接都认为是一个Session。在现在的互联网时代,session相信不用我多说啥了。

如下图的HTTP请求:

F5 LTM 负载均衡理论

下面说说Virtual server 中的Default Persistence Profile 中三种source_addr、dest_addr、cookie : 

F5 LTM 负载均衡理论

源地址(source_addr) :当我们选择源地址会话保持的时候,会话保持表里面的每个记录对应一个源IP地址,则所有从这个源IP地址发起针对一个VS的连接都认为是一个Session。

目的地址(dest_addr):  一般应用于外面三条链路如:移动、联通、电信,如果你只想走电信的链路,这时可以运用。

cookie : 是一种用在HTTP应用中的一种非常普遍的技术。Cooike 有效的改进了HTTP协议的无状态性。使原本无状态的HTTP协议变成有状态的应用协议。是在浏览器访问WEB服务器的某个资源时,由WEB服务器在HTTP响应消息头中附带传送给浏览器的一片数据,WEB服务器传送给各个客户端浏览器的数据是可以各不相同的。浏览器可以决定是否保存这片数据,一旦WEB浏览器保存了这片数据,那么它在以后每次访问该WEB服务器时,都应在HTTP请求头中将这片数据回传给WEB服务器。显然,Cookie最先是由WEB服务器发出的,是否发送Cookie和发送的Cookie的具体内容,完全是由WEB服务器决定的。

当客户进行第一次请求时,客户HTTP请求(不带cookie)进入BIG-IP LTM, BIG-IP LTM根据负载均衡算法策略选择后端一台服务器,并将请求发送至该服务器,后端服务器进行HTTP回复一个空白的cookie并发回BIG-IP LTM,然后BIG-IP LTM重新在cookie里写入会话保持数值,将HTTP回复返回到客户端。当客户请求再次发生时,客户HTTP请求(带有上次BIG-IP LTM重写的cookie)进入BIG-IP LTM,然后BIG-IP LTM读出cookie里的会话保持数值,将HTTP请求(带有与上面同样的cookie)发到指定的服务器,然后后端服务器进行请求回复,HTTP回复里又将带有空的cookie,恢复流量再次经过进入BIG-IP LTM时,BIG-IP LTM再次写入更新后会话保持数值到该cookie。

Oneconnect

BIG-IP LTM的Oneconnect其实是可以用于TCP层面上的其他协议的。只是当在一个VS上同时关联HTTP Profile和One Connect Profile的时候,BIG-IP LTM就会把所有这个VS的流量按照HTTP协议来进行One Connect处理。
OneConnect运行的首先前提是使用VS Standard模式
One Connect Profile不是必须和HTTP Profile共用,也可以用于其他应用协议,但必须使用iRules编程来调用One Connect。

  • 我的微信
  • 欢迎大家,与我交流,非诚勿扰谢谢
  • weinxin
  • 奕知伴解 微信公众号
  • 扫一扫关注,从此不迷路。
  • weinxin
刘銮奕

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: