在存储系统中为了提高后端设备的吞吐量,往往需要采用多网卡绑定技术。例如,后端存储最大能够提供300MB/s的吞吐量,因此需要采用3块1Gps的网卡并发传输才可以达到峰值性能。那么,从研发的角度来看如何实现多网卡绑定呢?这里对提高吞吐量用途的多网卡绑定技术进行深入分析。
多网卡绑定一方面能够提高网络吞吐量,另一方面也可以增强网络高可用。这里对高可用应用的多网卡绑定技术不做讨论。从软件的角度来看,多网卡绑定实际上只需要提供一个额外的bond驱动程序即可,通过该虚拟网卡驱动程序可以将实际多块网卡屏蔽,对TCP/IP协议层而言只存在一个Bond网卡。在Bond驱动程序中实现网络流量的负载平衡(load balance),将一个网络请求重定位到不同的网卡(NIC)上,以此来提高总体网络的性能。多网卡绑定的软件层次架构如下图所示:
考虑一下,为了绑定多块网卡,其技术难点在于什么地方?网络交换机是通过物理地址进行端口路由的,对于不支持IEEE802.3ab协议的普通交换机而言,其只能连接不同物理地址的网卡,否则交换机将会无法正常工作。每个网络适配器具备一个IP地址,而每个IP地址又通过ARP协议和一个MAC地址绑定在一起。由此分析,在没有交换机的配合下,我们很难实现想象中完美的多网卡绑定通信模型:
如果ARP协议能够支持将一个IP地址映射到多个MAC地址,那么在Bond驱动层我们完全可以实现上图所示的多网卡绑定通信模型。在实际IP网络中,为了达到上述绑定效果,需要交换机的802.3ab协议支持,通过交换机实现round robin方式的网卡绑定,纯软件方法无法做到。基于802.3ab协议的多网卡绑定如下图所示:
时间: 2024-08-30 05:53:16