为了提高吞吐量和冗余性,netapp存储聚合多条网络连接构成单一逻辑端口组向外提供服务。netapp的端口组有3中聚合模式,分别是:
Single mode
Static Multimode
Dynamic Multimode
下面详细介绍3中模式的工作原理以及交换机端的配置范例。
Single mode
在一个single mode的端口组中,不管有多少个端口,只有一个端口是活动状态,其余都是休眠/备用状态,只有激活的端口故障了,存储系统随机从休眠/备用端口激活一个接管通信。
在这个端口组中,所有的网络接口公用一个MAC地址。
整个端口组的状态检测和故障切换全部由存储主机完成,不需要要交换机参与,所以交换机也就无需配置。但是要求同一端口组中链路上联的交换机端口必须在同一个广播域(同一个子网或者VLAN中),而且不能够跨多个交换机(除非交换机进行堆叠)。
Single mode的主要特点:
配置简单,交换机端无需配置
能够提供网络冗余
不能够提升网络吞吐量。
在网络吞吐量不是瓶颈情况下,建议使用该种方式
如上图,2条链路构成的single mode端口组,正常情况下,e0激活,e1备用;如果e0故障,那么e1激活
Static Multimode
Static multimode其实就是兼容link aggregation但是不支持LACP(Link Aggregation Control protocol)网络模式。所有支持EEE 802.1AX-2008 (以前叫 IEEE 802.3ad)的交换机都可以配合data ontap的Static Multimode端口组模式使用。
注意:LACP不是并不是一种链路聚合link aggregation,而是link aggregation中的一个子协议。支持LACP就是dynamic link aggregation,否则就是static link aggregation(static multimode)。有的设备只支持dynamic link aggregation,如cisco UCS fabric interconnect只支持dynamic link aggregation
实现该模式需要满足以下条件:
所有端口在全双工模式
端口组中端口速率相同
所有上联物理端口需要在一个交换机或者在同一个堆叠的交换机上
特点如下:
允许将以太网帧分布到各个物理链路,因此,吞吐量可能超过单个物理链路。但是IEEE没有具体定义分发算法。但是指导原则是:1)对每个具体的会话,数据帧的顺序不能够打乱;2)不能有重复的数据帧。基于以上原则,也就意味着,对于某个具体的会话,所有的数据帧传输是在某一个物理链路上进行。也就是单个会话的传输速度传输速度的上限就是一个物理链路的速度。虽然IEEE没有定义具体算法,但是每个厂商还是开发了多种算法。
同一聚合组中的所有端口都是活动的,并且共享同一个MAC地址。
n个物理链路组成的端口组可以容忍n-1链路故障。当一个链路故障时,故障链路上传输的流量会自动分不到其他健康链路,当故障链路恢复后,流量会自动在所有活动链接上重新分布。
Dynamic Multimode
类似于static multimode,但是支持LACP。同一端口组的所有端口都共享一个MAC地址
注意:data Ontap不支持Cisco的私有协议Port Aggregation Protocol (PAgP)。另外,Data Ontap使用LACP的active模式,所以交换机端可以任意配置LACP active/passive模式
配置Dynamic multimode需要同时配置以下内容:
LACP同样没有定义负载均衡算法。所以同样需要在存储上联的交换机上负载均衡策略。如IP-based、MAC-based、或者round robin。
Static vs Dynamic multimode
2种模式都可以侦测到物理链路的故障。
因为没有LACP控制协议进行协商,前者不能够侦测到配置的逻辑错误。举例,一端配置正确,一端的错误配置可能导致不可预料结果,如MAC地址风暴等。
后者能够侦测到非物理链接丢失类型的一些错误,比如两端参数配置的不一致等。该模式可以提供更加可靠的链路聚合。
如果设备都支持的情况下,建议使用Dynamic multimode
负载均衡算法
Round robin
基于该种策略,数据帧将被均匀的分布到各个活动链接上传输,如数据帧1通过link1发送、数据帧2通过link2,以此类推。但是,可能存在一个风险就是一个会话中的数据帧有可能不是按照顺序到达。比如:数据帧1通过link1发送,数据帧2通过link2发送,正常情况下,数据帧1应该先于数据帧2到达,但是由于link1拥塞,可能会导致数据帧1后于数据帧2到达。这样,应用程序端可能需要重新传送数据帧。
基于源和目的端配对策略
这个是Netapp Multimode使用最多的策略类型。其中又包含:source and destination MAC address、source and destination IP address。这种类型负载均衡方式通过对源和目的端的信息进行XOR运算,然后除以聚合中的物理链路数量,最后计算出来数据帧传输选择的物理链路。算法核心就是每个计算出来的结果会对应一个物理链路。那么,这里就有个概念要澄清,很多人认为4个1Gb链路聚合之后,能够获得的最大带宽就是4Gb。这个其实是错误的,单个传输的最大的带宽其实还是1Gb,因为根据源和目的端算法,该传输始终只使用一个物理链路。
source and destination MAC address
基于源端(如某台PC)和目的端(存储控制器)的MAC地址选择物理链路。如果source端和destination端在同一个子网,那么最终所有流量的不均匀情况不会非常凸显。但是如果source和destination端不在一个子网,相互之间需要跨路由器进行。那么可能存在严重的流量不平衡。比如,在subnet1有100个主机,现在需要subnet2的存储控制器,那么最后100个主机的source MAC地址都将是路由器的MAC,这种情况下,这100台主机和控制器通信全部选择同一个物理链路,很大的可能这个链路会形成拥塞,而其他链路非常空闲。
source and destination IP address
需要了解的是这种计算策略下,取得并不是source 和destination IP的全部,而只是十进制IP地址的最后一位。如host1(10.0.0.100)、host2(10.1.1.100)、控制器C1(10.2.2.1).
那么进行XOR运行时,host1 XOR C1=100 XOR 1;host2 XOR C1=100 XOR 1
二者计算出来的值是一样的。
Cisco Catalyst交换机配置举例
思科的link aggregate技术是etherchannel。
配置2层etherchannel
step1:进入全局配置模式
configure terminal
Step2:指定加入聚合组的物理端口
interface interface-id
Step3:为端口分配VLAN或者配置为trunk
switchport mode {access | trunk}
switchport access vlan vlan-id
Step4:启用端口快速收敛
spanning-tree portfast
Step5:将端口加入指定的聚合组,并指定聚合模式
channel-group channel-group-number mode {auto [non-silent] | desirable [non-silent] | on} | {active | passive}
on:如果Netapp端配置为Static multimode,那么cisco交换机采用该模式
active|passive:如果netapp 端配置为Dynamic multimode,cisco交换机配置为该模式
Step 6:配置负载均衡策略
port-channel load-balance src-dst-ip