作者:梁山 IBM
AIX系统中我们在配置或修改etherchannel聚合网卡时,会遇到hash mode的配置问题,那么每种hash mode代表什么含义呢?每种算法是如何工作的呢?
Mode:可以从以下方式中选择:
Hash Mode:可以从以下四种方式中选择,这样将确定使用哪一块网卡作为传输数据的网卡:
对于etherchannel中的网络流量,有以下两种负载平衡方法:
所有网络流量都平稳地散布到etherchannel中的所有适配器。它为AIX系统提供最高的带宽优化。虽然round-robin是平均使用所有链路的理想方式,但还是要注意它可能会使接收系统上出现无序packet。
一般来说,round-robin方式对于运行jumbo frames的背靠背连接是理想的。在该环境下没有介入的交换机,因此对于交换机的处理可能改变packet的传送时间、顺序或适配器路径的可能性是没有的。在该直连网络路径上,packet在发送的同时就能接收到。超大帧(9000字节 MTU)始终比传统的1500字节MTU产生更好的文件传输性能。这些较大的packet花费更长的时间进行发送,因而正在接收的主机不太可能被无序packet中断。
round-robin也可以应用在其他环境下,但在接收系统上会有无序packet增加的风险。当系统很少有长久的streaming TCP连接时,这种风险尤其高。当主机对(host pair)之间有许多此类连接时,来自不同连接的packet可能是混合的,从而增加了同一连接变为无序的packet的机会。可以使用netstat -s命令检查tcp部分中的无序packet统计信息,稳定增加的值表示从etherchannel发送的流中存在潜在的问题。
如果系统里存在无序packet、必须使用传统的以太网MTU和必须通过交换机连接,那么请尝试standard方式中提供的各种hash mode。每种方式都具有特殊的优势,但default方式和 src_dst_port 方式应用比较广泛。
标准算法用于standard和IEEE 802.3ad类型链路聚集。AIX通过etherchannel中的适配器数分割“数值”的最后一个字节并使用余数识别网卡链路。如果余数是零,那么选择etherchannel中的第一个适配器;余数是 1 表示选择第二个适配器,以此类推(适配器以它们在adapter_names属性中列出的顺序被选择)。
HashMode选择确定在计算中使用的数值。缺省情况下,计算使用目标IP地址或MAC地址的最后字节,但也可以使用源和目标TCP或UDP端口值。这些可选项允许您微调etherchannel中真实适配器间网络流量的分发。
在default hash mode方式下,适配器选择算法应用到用于IP流量的目标 IP地址的最后字节。对于ARP和其他非IP流量,同样的公式应用到目标MAC地址的最后字节。除非存在适配器故障导致故障转移,否则使用缺省标准方式的主机对之间的所有流量都通过同一个适配器传输出去。当本地主机与许多不同的 IP 地址建立连接时,default hash mode方式可能是理想的。
但如果本地主机与为数不多的IP地址建立长连接,那么您会注意到,某些适配器将比其他适配器携带更多的负载,因为所有发送到特定目标的流量都通过同一个适配器发送。虽然这样防止了packet呈现无序状态,但它可能不会在所有情况下以最有效的方式使用带宽。基于端口的hashmode方式仍然按顺序发送packet,但它们允许属于不同UDP或TCP连接的packet(即使它们发送到同一目标)通过不同的适配器发送,从而更好地使用所有适配器的带宽。
在 src_dst_port hash mode方式下,添加网络packet的TCP或UDP源和目标端口值,然后将其一分为二。所生成的整数(非十进制)插入到标准算法。TCP或 UDP 流量发送到由标准算法和选定的hash mode方式值所选择的适配器上。非 TCP 或 UDP 流量将后退到default hash mode方式下,意味着目标 IP 地址或 MAC 地址的最后字节。src_dst_port hash mode方式选项考虑源和目标TCP或UDP端口值。在该方式下TCP或UDP连接中的所有packet都通过单一的适配器发送,所以保证它们按顺序到达,但是流量仍然是展开的,因为连接(即使连接到同一主机)可能通过不同的适配器发送。该hash mode方式的结果不会因连接建立方向而变形,因为它既使用源TCP或UDP端口值,又使用目标TCP或UDP端口值。
在 src_port hash mode方式下,使用网络packet的源TCP或UDP端口值。在 dst_port hash mode方式下,使用网络packet的目标TCP或UDP端口值。如果从一个连接到另一个连接的端口值有变化,并且如果 src_dst_port 选项不产生期望的分发,请使用 src_port 或 dst_port hash mode方式选项。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞6
添加新评论0 条评论