摘 要: 为了使InfiniBand(简称IB)网络和万兆以太网这两种高速互连网络相互融合,实现它们之间的数据通信,本文对10GE-InfiniBand网关进行了研究设计,采用Ethernet-over-InfiniBand(EoIB)协议并结合管道网关的设计思想,将万兆以太网的数据帧封装成IB数据报文以达到在IB网络中传输以太网数据帧的目的,实现两种网络之间的无缝融合。
0 引言
IB(InfiniBand)网络由于其低延迟、高带宽以及低处理开销的特点得到越来越多的认可,采用IB技术进行互连的高性能计算系统所占的比例逐年上升。万兆以太网比千兆以太网具有更大的带宽和更快的数据传输速度。随着高速传输技术得到越来越广泛的应用,人们开始考虑将这两种高速互连网络融合在一起,结合它们的优点设计一个性能优越的I/O网络系统。但是由于异构网络运行在不同的协议之上,数据格式不同,不能直接进行传输,因此如何完成数据交换就成为无法回避的问题。本文针对IB网络和万兆以太网的数据格式的特点,对10GE-InfiniBand网关平台进行了研究和设计,使IB网络数据报文和万兆以太网的数据帧可以相互转换,从而将两种网络结合起来。
1 万兆以太网和IB网络简介
1.1 IB网络
IB规范定义了用于服务器、储存设备和嵌入式系统互连的输入/输出架构,具有高带宽、低时延的特点,广泛应用于数据中心、高性能计算集群以及不同规模的嵌入式应用中,目前已经成为主流的高速互连网络技术[1]。图1是IB网络的体系架构。
由图1可知,IB网络的体系架构主要由交换机(Switch)、主机信道适配器(Host Channel Adapters,HCA)、目标信道适配器(Target Channel Adapters,TCA)和路由器(Router)构成,这些设备一起完成系统通信的功能[2]。
(1)HCA和TCA可以提供一个端到端的可靠连接。
(2)交换机是将数据包从一个链路转发到同一个子网的另一个链路中的设备。
(3)路由器用于连接IB子网,在子网间传输数据包。
1.2 万兆以太网
万兆以太网是最新的以太网技术,可以提供高达10 Gbit/s的传输速度,传输距离增大到40 km,适用范围大大拓宽。它基本继承了原有的以太网模型,保留了802.3的以太网帧结构。不同于以往的以太网标准,万兆以太网仅仅定义了点到点的全双工链路,并且没有前几代以太网标准中的带有冲突检测的载波侦听多路访问协议(CSMA/CD)机制[3]。
虽然万兆以太网是最新的以太网技术,具有最快的以太网速度,延迟也比较低,但是并不能满足网格计算和集群系统对延迟的要求。IB网络低延迟和高带宽的优势使其广泛应用于高速系统互连领域[4]。
2 EoIB的实现原理
该网关平台采用了管道的设计思想。管道是异构网络融合中的一种常用技术。一种网络的数据包要在另一种网络上传输,需要将该数据包封装到可以被另一种网络设备所能理解的数据包中,传输到接收端后,主机进行解封装,将数据分组恢复成原来的格式。在Ethernet-over-InfiniBand(EoIB)的网关设计中,由于IB网络无法识别万兆以太网的数据格式,根据管道网关的设计思想,为了实现以太网数据包在IB网络上传输,应先将以太网帧封装成IB数据报文,以IB报文的形式在IB网络中传输,在接收端将IB报文恢复成以太网数据帧,从而高效地将万兆以太网的数据包和IB的数据包进行相互转换,实现网络融合。
EoIB协议是虚拟协议互连(Virtual Protocol Interconnect,VPI)技术的一部分,VPI技术可以实现以太网网络、IB网络、光纤通道(Fiber Channel,FC)网络的融合,使得在单一网络上运行多种协议成为可能。EoIB协议的实现原理是:为了在IB链路上传输以太网数据帧,需要在IB网络的端口将IB网卡虚拟成万兆以太网卡,将整个以太网二层数据包和有效负载封装到IB数据包中,这样就绕过了TCP/IP协议,利用IB的高带宽优势在IB的网卡上运行标准的以太网协议[5]。
根据EoIB协议设计的EoIB网关在IB网络和万兆以太网之间搭建起一座桥梁,实现了这两种异构网络之间的数据交换。如图2所示。
2.1 EoIB局域网模型
EoIB局域网模型如图3所示。
此局域网中包含两种异构网络:IB网络和万兆以太网[6]。为了实现这两种格式的数据分组之间的交换,需要两个主要组件。
(1)EoIB网关。EoIB网关的主要作用是完成数据包在异构网络之间的转发,实现不同协议之间的交互通信,管理控制整个EoIB体系结构。EoIB网关分别连接着IB网络和万兆以太网,因此网关有两种端口:连接IB网络的IB端口以及连接万兆以太网的以太网端口。EoIB网关将从以太网端口到达的以太网数据帧封装成IB数据报文,而对从IB端口到达的IB数据报文解封装,还原成以太网的数据帧。
(2)EoIB主机驱动。在IB网络端口之上是虚拟万兆以太网端口(虚拟端口,vPort),并为主机的上层应用提供标准的以太网应用接口(虚拟网络接口卡,vNic),以便在IB链路上承载万兆以太网的数据分组。每一台主机可以具有多个虚拟端口(vPort),虚拟网络接口卡(vNic)直接连接到虚拟端口上。这样,遵循以太网协议的软件能够在EoIB驱动上正常运行。
EoIB将以太网数据帧封装成可以被IB网络理解的IB数据报文,从而实现了以太网数据分组在不兼容的网络区域中进行传输[7]。数据的封装与解封装示意图如图4所示。
2.2 EoIB地址映射机制
每一种网络都有自己的编址方案和数据帧格式,异构网络的数据包是无法直接进行传输的。因此在EoIB机制中就存在一个地址映射的问题。万兆以太网的2层数据帧由MAC地址(48 bit)标识,而IB网络的2层数据包由本地ID(Local Identifier,LID)标识,为了让IB网络理解万兆以太网的编址方式,需要将以太网地址转换为IB网络所能理解的数据链路层地址。为此,可以将以太网帧封装到IB链路层地址的帧中,以IB报文的形式在IB网络中传输。一种EoIB地址映射方案是在IB主机和网关中各存储一张地址转换表,表中记录IB地址和MAC地址之间的对应关系[8]。EoIB地址映射表如图5所示。
由图5可以看出,EoIB地址映射处理机制包含两张关系映射表:ARP表存储MAC地址和IP地址之间的映射关系;转换表存储IB主机的LID地址和虚拟MAC地址之间的映射关系。
通过ARP表可以将协议地址(IP地址)解析成硬件地址(MAC地址)。地址转换表包括三个部分:IB主机的虚拟以太网2层地址和对应的LID地址,网关LID地址,以及IB广播地址。
EoIB网关上只保留了转换表,用于处理虚拟MAC地址和IB主机的LID地址之间的映射。但IB主机同时保留ARP表和转换表,完成两种映射关系的处理。当IB主机需要和另一台主机通信时,首先查找ARP表,根据目标IP地址得到目标MAC地址,然后再查找转换表,根据MAC地址得到IB主机的LID地址。这个过程对应了IB主机上数据帧的封装过程。
2.3 EoIB的管理控制协议
通过以上的分析可知,转换表是实现万兆以太网和IB网络交互的关键因素,它的生成和维护是局域网的主要工作。当网关启动之后,由网关创建一张转换表用来记录EoIB的地址映射信息。创建完成后将转换表复制到该局域网内的所有主机。当有新的主机加入局域网或者有主机退出局域网时,网关要负责更新转换表,之后发送广播消息,通知局域网内的主机更新最新的转换表。转换表的生成和维护依赖于EoIB网关和主机的交互过程[9],如图6所示。
主机与EoIB网点交互的具体过程如下:(1)新的主机请求加入局域网。(2)EoIB网关接收请求并向主机返回一个确认字符ACK。(3)网关为新加入的主机生成一个虚拟的MAC地址。(4)网关更新转换表,把新加入主机对应的映射信息加入到转换表中。(5)转换表更新完成以后,网关向局域网中的主机广播更新信息。(6)新加入的主机向网关请求完整的转换表。(7)EoIB网关向局域网内的所有主机广播更新后的转换表。(8)为了使转换表得到及时更新,所有主机应周期性地发送状态信息给网关。这样就完成了主机与网关的交互。
3 结束语
本文基于EoIB协议,根据管道网关的设计思想从理论上设计研究了10GE-InfiniBand网关,分析了在网关设计过程中需要解决的几个问题,对实际的设计具有指导意义。10GE-InfiniBand网关可以实现系统外部10GE以太网和内部IB网络之间的数据交换,并且由于端口虚拟化技术使得无需对应用进行更改,从而将两种高速系统连接技术融合在一起,提升了系统的I/O性能。
参考文献
[1] 司马聪.InfiniBand的现状和发展趋势[R].北京:存储在线,2007.
[2] 谢向辉,彭龙根,吴志兵,等.基于InfiniBand的高性能计算机技术研究[J].计算机研究与发展,2005,42(6):905-912.
[3] 敖志刚.万兆位以太网及其实用技术[M].北京:电子工业出版社,2007.
[4] 刘伟,郭丽,闫晋锋.高速互联技术探索与发展[J].科技信息,2007(32):93,164.
[5] 张向阳,冯超敏,赵书贵,等.EoIB和IPoIB协议在地震资料处理中的对比分析[J].信息系统工程,2013(10):97-98.
[6] 吕高锋,孙志刚,黄杰,等.基于IB统一交换技术的存储系统研究与实现[J].计算机应用与软件,2011,28(11):140-144.
[7] IBTA.Ethernet over IB(EoIB) for Linux README [EB/OL].(2010-10-04)[2015-02-02].http://www.mellanox.com/related-docs/prod_ gateway_systems/EoIB_README-1.5.1-1.3.6.txt.
[8] 林雨弦.支持路由器服务扩展的统一交换技术[D].长沙:国防科学技术大学,2011.
[9] 朱启伟,文玲.实现EoIB技术的一种实例[J].信息系统工程,2012(11):44-46.
,