• 美文
  • 文章
  • 散文
  • 日记
  • 诗歌
  • 小说
  • 故事
  • 句子
  • 作文
  • 签名
  • 祝福语
  • 情书
  • 范文
  • 读后感
  • 文学百科
  • 当前位置: 柠檬阅读网 > 范文 > 正文

    Overlay网络下的超算中心间广域网流量调度研究

    时间:2022-12-02 13:55:05 来源:柠檬阅读网 本文已影响 柠檬阅读网手机站

    王浩辰,张焕杰,李 京,

    1(中国科学技术大学计算机科学与技术学院,合肥 230026)

    2(中国科学技术大学网络信息中心,合肥 230026 )

    E-mail:whc1996@mail.ustc.edu.cn

    我国国家高性能计算环境结点通常都是独立建设,各结点所在网络环境差异较大,通常具有不同运营商网络出口,其中部分结点网络条件比较好,具备多家网络出口.由于我国国情原因,运营商之间的网络互连互通带宽相比网内带宽差很多,数据在这种复杂的网络条件下的传输速率会大打折扣而且不可控,不能满足国家高性能计算环境结点间数据高速传输的需求,制约了国家高性能计算环境的进一步发展.而专线价格随着带宽需求的增加成本越来越高,因此现阶段国家高性能计算环境迫切需要构建一个可控的低延迟结点互联网络环境.

    我国拥有多个网络运营商,常用的网络出口有中国移动、中国电信、中国联通、教育网、科技网等IPv4/IPv6网.各网络运营商在网络规模、用户数量和各地的网络资源差别很大,中国电信和中国联通分别在南方21个省市区和北方10个省市区居主导地位.由于各地区的互联网跨运营商在当地往往没有互联,所有的跨网流量都要经过3个NAP(network access point 网络接入点)中转,导致了两大问题的.一方面,由于网上信息源分布在不同的运营商网络里,一个用户如果要访问本地的一个非本地运营单位的网站就需要绕道北京、上海或广州,存在互联网间互通的绕道问题,其网络服务速度可想而知,互通也只是概念上的互通,很大程度降低了网络服务的质量.另一方面,大量的流量绕走国家互联网交换中心,占用大量的网络带宽,导致资源浪费.

    由于广域互联网网络条件复杂,流量调度不可控,所以需要在物理网络之上构建一个自己的虚拟网络,流量调度完全可控.因此本文基于Overlay网络在互联网上构建一个虚拟的SD-WAN(software defined wide area netwo-rk)网络,使用隧道和三层路由调度方案,以达到降低跨运营商网络延迟,提高网络传输带宽的目标.

    国家高性能计算环境(中国国家网格cnGrid)目前包括19个节点.其节点分布非常广泛,地理跨度南起香港,北到吉林,东起上海,西到甘肃.由于物理专线价格昂贵,各个节点之间的数据交换通常在广域网上进行.

    广域互联网上运营商内部数据传输效率远远大于各个运营商之间数据的互联互通速率.因此可以把节点按照出口运营商进行分类,形成多个节点集合,每个集合内的网络节点具有同一出口运营商,它们之间的传输速度快,网络条件好,如图1所示.我们定义了一类特殊的节点,称为超级节点.超级节点有多个网络运营商出口,在抽象模型中就是集合交集中的节点.当不同集合内的节点相互通信的时候,可以利用超级结点进行转发.例如处于联通网的上海节点和和处于电信网的北京节点进行通信,由于跨运营商通信,它们之间直接通讯的速率会相对较慢,此时利用两个集合交集中的合肥节点作为超级节点,控制流量先从上海传输到合肥,再从合肥转发到北京以达到预期的目标.因此,本文给出的解决方案:普通节点之间通过超级节点进行通信,而超级节点既进行节点之间的通信,同时转发数据.

    图1 网络抽象模型Fig.1 Network abstraction model

    为了提高国家超算环境各节点间传输带宽和减小传输延迟,本文研究构建一个网络流量可调可控的overlay网络.Overlay网络模型定义如图2所示,是一个两层的网络拓扑.节点分为普通节点和超级节点普通节点用于数据的发送和接收,普通节点之间不直接进行流量传输;
    超级节点拥有多个网络出口,既可以用于自身数据的传输,也可以用于流量转发.图中的每条边都有代价C,我们称之为距离,可以由这条边上实时带宽、延迟等因素决定,两节点之间链路带宽越大、延迟越小,节点之间的距离C越小.假设网络中有m个普通节点N1,N2,…,Nm,k个超级节点S1,S2,…,Sk,我们的目标就是找到所有非转发节点之间的最优流量调度路径.对于其中所求的任意两个普通节点之间的流量调度,两节点之间的距离可以用公式(1)和公式(2)表示

    =min(dist(Ni,Nj),dist(Ni,Sr)+C(Sr,Nj)r∈[1,k])

    (1)

    ∀Nii∈[1,m]dist(Ni,Sr)r∈[1,k]

    =min(dist(Ni,Sr),dist(Ni,Sq)+C(Sq,Sr)q∈[1,k])

    (2)

    图2 问题定义模型Fig.2 Problem definition model

    Overlay网络[1,2]的设计目标是提供增强的或自定义的功能,以满足某些不能使用原始Internet基础结构实现的目标,例如有效的资源共享和网络隔离,往往需要通过使用数据包封装技术在基础网络之上创建逻辑层来实现它们.传统上,Overlay网络已分为结构化和非结构化网络.结构化网络中的节点是根据定义明确的全局拓扑策略组织的,并遵循基于标识符的技术的某些变体来路由消息.结构化网络在网络维护开销之间进行权衡,以实现覆盖图中任何一对节点之间的有效O(log N)跃点路由.结构化覆盖网络的著名示例是Chord[3]和Kadmelia[4].非结构化覆盖网络没有用于拓扑管理的结构化全局策略.由于缺乏明确定义的结构,非结构化网络中的路由技术依赖于启发式算法,例如扩展环搜索或随机行走进行路径发现.这种方法可能导致泛洪,从而限制了可伸缩性.著名的非结构化网络包括Gnutella[5]和Freenet[6].

    对于逻辑网络通道的建立,OneSwarm[7]利用社交网络上的公共密钥交换来创建具有强大隐私保障的内容共享覆盖.SocialVPN[8]利用OSN(Online Social Network )进行引导,对等点发现和交换ICE端点,以创建可通过虚拟网络接口访问以覆盖端点的NAT穿越隧道.本文采用隧道的方式,根据上节网络抽象模型所确定的网络拓扑,在各个节点处安装隧道传输设备,使用支持AES-NI指令扩展的CPU,在广域网络上搭建Overlay虚拟网络链路,使得网络中流量的调度完全可控.

    基于overlay网络的流量调度比较简单的做法是建立L2VPN,即通过VPN隧道将以太网数据包经过加密后利用Internet网络传递,从而完成双发的通信.部分国外企业利用UDP[9]协议作为覆盖网络的隧道通信协议,以获得更快的传输速率(如wire guard[10]、nebula[11]),2019年底Linux网络堆栈维护者David Miller 已将WireGuard VPN项目提交到Linux“net-next”源代码树中.使用这种先进的SW-WAN技术可以满足国外企业在不同区域内的数据传输需要,但是由于中国大部分地区的运营商都会针对UDP协议进行QoS限速或者丢包,导致UDP在国内网络环境下效率低下,速度往往会比正常使用TCP协议还慢很多.

    本文对常见的L2VPN或能实现类似的L2隧道功能的程序(VxLAN[12],VTun[13],Tinc[14],OpenVPN[15])进行了研究和对比,如表1所示.

    VxLAN主要用于数据中心内部解决VLAN扩展性问题,OpenVPN用于远程用户的连接,不适合用来建立隧道扩展网络,Tinc和VTun在公网连接不稳定时会无法避免的形成短时的环路,引起网络广播风暴,这对以太网是致命的.流量调度需要的是一个足够安全、稳定、有效率的VPN隧道程序.

    本文采用了我们自主实现的Ethernet over UDP[16](简称EthUDP)协议,该协议支持使用IPv4和IPv6建立隧道,支持一方使用动态地址或NAT环境后的连接,并可以验证对方IP地址.为了适应高速网络,EthUDP可选使用LZ4[17]高速算法对发送数据包进行压缩,在高带宽环境下尽量少影响性能.启用压缩后,EthUDP在每个数据包后增加一个字节作为是否压缩的标志.当原始数据包使用LZ4压缩无效(压缩后的长度没有减少)时,该标志为0xaa;
    有效压缩时为0xff.通过这样的机制,一个数据包即便无法有效压缩,也仅仅多传输1个字节.EthUDP可选使用openssl[18]提供的AES CBC算法对发送数据包进行简单加密.加密处理中使用openssl标准填充方式填充,每个数据包加密后可能会增加1-16字节.

    目前,国内一些研究构建的软件定义广域网(software defined-wide area networking,SD-WAN)网络使用了基于OpenFlow[19]的SDN技术,用于降低互联成本,提升业务部署灵活性.但考虑到其一旦出现控制器故障,将会导致网络中断,因此并不适用于本文的应用场景.由于发生故障的链接可以在发生故障后立即删除,因此许多研究人员专注于广域网中设备(控制器和交换机)的可靠性,并提供了许多解决方案.HyperFlow[20]就是一个代表性的故障转移系统.当HyperFlow发现控制器故障后,它将重新配置受影响的交换机,并将其重定向到附近的另一个控制器实体.考虑到项目中节点分布区域广、物理跨度大,配置多个控制器也不是最好的选择.而SD-WAN[21]三层流量调度方案,就可以避免上述问题.

    三层路由调度方案拥有强大的路由传输、带宽分配、多媒体传输和安全控制功能,能够根据不同的通信业务系统划分不同的用户群体,实现电业业务的高效传输.除了优秀的性能之外,三层路由还具有一些传统的二层交换机没有的特性,这些特性可以给本文的网络建设带来许多好处.比如说1)高可扩展性:三层路由在连接多个子网时,子网只是与第三层交换模块建立逻辑连接,不像传统外接路由器那样需要增加端口,从而保证了用户对局域网的投资,并满足超算中心3到5年网络应用快速增长的需要.2)高性价比:三层路由方式具有连接大型网络的能力,功能基本上可以取代某些传统路由器,但是价格却接近二层交换机.三层路由方式可以与普通路由器一样,具有访问列表的功能,可以实现不同VLAN间的单向或双向通讯.如果在访问列表中进行设置,可以限制用户访问特定的IP地址.访问列表不仅可以用于禁止内部用户访问某些站点,也可以用于防止局域网外部的非法用户访问校局域网内部的网络资源,从而提高网络的安全.3)三层路由方式具有QoS(quality of service)的控制功能,可以给不同的应用程序分配不同的带宽.

    通过SD-WAN三层流量调度方案可以实现的功能有:链路可视、流量自动或人工调度、优化传输.目前,已经实现了基于三层路由的流量调度方案.

    基于图2的网络抽象模型,我们把各超算中心看作是节点,其中有作为超级节点的节点和作为普通节点的节点.超级节点和普通节点之间有连线,表示站点间建立加密隧道链路,用于安全、高速地传输信息,连线的粗细表示这条链路上传输数据花费的权重,可人工或自动生成.我们的软件拥有一个控制器,各隧道链路带宽、丢包、延迟等运行状态汇集到控制器,同时在GUI管理界面上对其进行控制管理,控制器指令各个站点修改路由表,实现流量的按需调度.

    网络中的路由信息包括节点和链路信息,路由信息更新的状态机包括3个状态:采集状态、计算路由和更新路由.控制器先采集状态,再根据采集到的状态进行路由计算,最后更新路由器中的信息.完整的3层路由流量调度由网络更新信息的4个步骤组成,如图3所示.第1步定时根据节点、链路信息等有路由算法生成路由表,路由表有唯一的版本号(时间戳),此时路由表存在服务器数据库中,然后由路由表更新服务将路由表下发给各个网络节点,网络中的每个节点会根据接收到的路由信息更新本地的路由表,并将最新的路由表版本号回传给服务器.这种流量调度方式保证了控制器端故障时,各个路由节点中存储着某一个版本号的路由表,网络是通畅的,尽管可能不是最优的.

    图3 3层路由流量调度系统架构Fig.3 Three-tier routing traffic scheduling system architecture

    本节介绍本文提出的数据中心广域网流量调度方案的核心路由算法,流量调度问题转化为无向图中求解顶点之间的最短路径.网络拓扑示意图为有向图.节点信息包括标识、内部IP地址、描述、服务进程、路由表版本.标识表示为节点的实际名字;
    内部IP地址表示为节点的IP地址;
    描述表示为节点补充描述信息;
    服务进程表示为节点上服务的进程号;
    路由表版本表示为路由表的版本号.图中每一个节点有唯一的IP地址.链路信息包含标识、子网、代价、IP地址、节点、端口.标识表示为link-A-B,代表从节点A到节点B的链路;
    子网表示为×××.×××.×××.×××/××,代表链路的子网以及子网掩码;
    代价表示为具体数值C,由这条链路上实时带宽、延迟等因素决定,链路带宽越大、延迟越小,代价C越小;
    IP地址表示为IPA/IPB,分别代表链路两端节点的IP地址;
    节点表示为A/B,分别代表链路两端节点的实际名字;
    端口表示为A/B,分别表示链路两端节点所使用的端口号.我们使用时间戳(精确到毫秒)标示一组路由,将节点信息和链路信息存放在数据库路由信息route表中.根据问题求解模型,我们的算法改进了求解源点到其他顶点的最短路径算法--迪杰斯特拉算法[22],算法分为两阶段计算,第1阶段先计算出超级节点间的最短路径,第2阶段再根据已经得到的信息求出普通节点到其他节点的最短路径,并据此生成路由表.

    为了将节点信息和链路信息全部存储到服务器中,构建了存储路由信息的数据结构,所有对应表项的信息已经在表2中写明.

    表2 存储路由信息的数据结构Table 2 Data structure for storing node information

    当读入所有节点数据后进行改进的路由算法即可得到路由表所需的流量调度信息.我们将节点分为两个集合:普通节点集合和超级节点集合,利用只有超级节点才可以进行数据转发的特点.该算法的具体表述如算法1所示.

    算法1.网络中流量调度路由算法

    输入:网络的路由信息,普通节点集合(N1,N2,…,Nk),超级节点集合(S1,S2,…,Sm)

    输出:图中节点间的最短路径

    1.//第1阶段:

    2.fori=1 tom//对于每一个超级节点i,求它到其他超级节点的最短路径

    3. 初始化距离集合dist(i,j),标志是否遍历过的集合visited

    4. visited[i]=True

    5.forno_use=1 tom-1//依次处理剩下m+k-1个节点

    6.min=MAX

    7.forv=1 tom

    8.ifnot visited[v] and dist(i,v)

    9.min=dist(i,v)

    10.temp=v

    11. end if

    12. visited[temp]=True

    13.forv=1 tom//更新节点i到其他未选中超级节点的权值

    14.ifnot visited[v] andmin+C(temp,v)

    15. dist(i,v)=min+C(temp,v)

    16. path(i,v)=temp//记录通过最短路径到达节点v的上一条路由temp

    17. end if

    18.//第2阶段

    19.fori=1 ton//对于每个普通节点i,求它到其他超级节点的最短距离

    20. 初始化距离集合dist

    21.forj=1 tom

    22.fort=1 tom

    23.ifdist(i,j)>dist(i,t)+dist(t,j)

    24. dist(i,j)=dist(i,t)+dist(t,j)

    25. end if

    26.fori=1 ton//对于每个普通节点i,求它到其他普通节点的最短距离

    27.forj=1 ton

    28.ifi!=j

    29.fort=1 tom

    30.ifdist(i,j)>dist(i,t)+dist(t,j)

    31. dist(i,j)=dist(i,t)+dist(t,j)

    32. end if

    33. end if

    算法说明:算法的第一阶段使用公式3求出所有超级节点之间的最短路径.

    =min(dist(Si,Sj),dist(Si,Sr)+C(Sr,Sj)r∈[1,m])

    (3)

    算法的第2阶段分为两步,第1步使用公式(4)求出任一普通节点到其他所有超级节点之间的最短路径

    ∀Nii∈[1,k]dist(Ni,Sj)j∈[1,m]

    (4)

    第2步使用公式(5)求出任一普通节点到其他所有普通节点之间的最短路径.

    (5)

    算法时间复杂度分析:图中有m个超级节点和k个普通节点,一共有m+k个节点,其中普通节点的个数一般远多于超级节点的个数,即k≫m.使用传统的Dijkstra算法的时间复杂度为O((m+k)3),约等于O(k3).本文使用的算法第1阶段使用Dijkstra算法算出超级节点集合间的最短路径,时间复杂度为O(m3),第2阶段计算普通节点到超级节点之间的最短路径时间复杂度为O(k×m2),计算普通节点到其他普通节点之间的最短路径的时间复杂度为O(k2×m),总复杂度为O(m3)+ O(k×m2)+ O(k2×m)约等于O(k2).因此,本文采取的算法相对于传统的Dijkstra算法在时间复杂度上有较明显的优化.

    根据路由算法1我们得到了网络的路由信息,并将路由信息写回数据库中.路由表中的表项为当前节点到其余各节点的下一跳路由.当数据包到达路由器时,路由器将根据路由表中的信息对数据包进行转发.

    本文设计了如图4所示的绕行测试拓扑结构,图中合肥节点和上海节点为两个普通节点,合肥节点只有教育网出口,上海节点只有电信网出口,合肥路由节点为超级节点,其拥有教育网以及电信网出口.当合肥节点与上海节点之间通过公网传输数据的时候,数据包会进行跨运营商的调度,由于公网环境复杂,期间会存在互联网运营商之间数据互通的绕道问题,导致数据传输延迟较高.使用本文中提出的方法,在公网上构建一个Overlay网络使得网络流量可控,并通过超级节点进行流量调度.数据包通过教育网从合肥节点传输到超级节点,再由超级节点的电信网出口通过电信网传输到上海节点.本文实验通过这种方式避免了数据包的跨运营商传输,传输带宽仅和选定的两条传输链路有关,理论上通过本文所提出的流量调度模型可以获得更低的传输延迟和更高的传输带宽.本文分别使用ping和iperf3测试合肥和上海之间使用公网直接通信以及隧道优化通信的延迟和tcp通信带宽.

    图4 绕行测试拓扑结构Fig.4 Detour test topology

    6.1 实验环境

    本文实验在真实的超算环境中进行,在实验中分别测试了在同一时间段内,两个超算节点之间使用Overlay虚拟网络隧道和在互联网上直接进行数据传输的性能表现,实验时间持续30分钟.测试环境如拓扑图如图6所示,合肥路由结点与合肥结点位于中国科学技术大学,上海结点位于中科大上海研究院.

    由于不同设备(不同CPU)对加密算法的处理方式不同,隧道链路在不同设备(不同CPU)下加密/不加密时的转发性能有较大差异.经在不同的CPU上测试,如表3所示,得出如下结论:Overlay网络链路性能主要受限于加密.如果CPU支持AES-NI高级加密标准指令集扩展,对于正常的网络流量(平均700字节包长度),很容易可以提供>800Mbps的性能,满足本文需求.如果CPU不支持AES-NI指令集扩展,仅能提供约300Mbps性能,不满足本文需求.因此只要建设Overlay网络时,使用支持AES-NI指令扩展的CPU,隧道链路的性能即可满足本文需求.本文所使用的测试设备:合肥端CPU为E5-2670 v3 @ 2.30GHz;
    上海端CPU为E5-2670 v3 @ 2.40GHz.

    表3 几种CPU性能测试结果Table 3 Several CPU performance test results

    测试过程如下:

    1)合肥路由节点控制端输入两条命令:

    1. /EthUDP-n link-ustc-hf-i-enc aes-128-k ustc-p ustchf 202.38.95.6 7099 0.0.0.0 0 100.64.2.254 30

    2. /EthUDP-n link-ustc-sh-i-enc aes-128-k ustcsh-p ustcsh 218.22.21.9 7098 0.0.0.0 0 100.64.2.250 30

    设置合肥的路由节点(也就是前文所提的超级节点)可以通过隧道进行路由转发.

    2)在合肥节点和上海节点的控制端分别执行3条指令进行性能测试.

    合肥节点:

    1. ip addr add 100.64.0.100 dev lo

    2. /EthUDP-n link-ustc-hf-i-enc aes-128-k ustc-p ustchf 0.0.0.0 0 202.38.95.6 7099 100.64.2.253 30

    3. /update_route_client 100.64.2.254 9999

    上海节点:

    1. ip addr add 100.64.0.101 dev lo

    2. /EthUDP-n link-ustc-sh-i-enc aes-128-k ustcsh-p ustcsh 0.0.0.0 0 218.22.21.9 7098 100.64.2.249 30

    3. /update_route_client 100.64.2.250 9999

    6.2 实验分析

    根据测试结果,测试总结如表4所示.

    表4 绕行测试结果Table 4 Detour test results

    在真实超算环境下的性能测试分别使用公网和隧道优化后的网络进行数据传输,实验使用了上海和合肥的两个节点,通过iperf命令来获取链路平均带宽,通过ping命令来获取网络延迟.

    如图5所示,当在上海和合肥节点之间进行公网测试时,在跨运营商的条件下,延迟有130ms之高,当使用我们的方法进行链路绕行之后,延迟降低了92%,这表明本文方法可以大大降低跨运营商交换数据时链路上的传输延迟.

    如图6所示,当在上海和合肥节点之间使用iperf3进行TCP传输带宽测试时,从上海到合肥的链路传输效率提高了8.8倍,而从合肥到上海的链路传输效率只提高了1.7倍,这是因为,测试时,上海结点所在的网络出口有其他流量占用带宽,影响了合肥到上海的隧道优化测试结果.

    图5 延迟测试Fig.5 Delay test

    图6 带宽测试Fig.6 Bandwidth test

    综上可得,本文方法可以大大降低跨运营商交换数据时链路上的传输延迟,提高链路上传输数据的带宽,这将对我国高性能中心之间的数据交换性能有着显著的提高.

    随着互联网的高速发展,网络中心规模扩大,高性能计算中心之间的数据交换流量爆发式增长,跨各大运营商之间的数据传输效率低下且不受控制.传统的直连式通信已经无法满足数据中心网络的流量调度,严重阻碍了国家高性能计算网络的发展.物理网络专线价格昂贵,基于Overlay网络建立一个可控的SD-WAN网络进行可控流量调度成为了本文的主要目标.

    本文评估和优化了Overlay隧道链路的性能,研究发现,在国家高性能中心网络的场景下,只要在建设Overlay网络时,使用EthUDP协议,同时使用3层路由的方式进行流量调度,在降低网络延迟和提高传输带宽上取得了很好的效果.

    猜你喜欢 链路路由合肥 一种移动感知的混合FSO/RF 下行链路方案*火力与指挥控制(2022年8期)2022-09-16基于Android设备的异构无线链路聚合软件①计算机系统应用(2022年8期)2022-08-25合肥的春节疯狂英语·初中版(2022年2期)2022-05-04数据通信中路由策略的匹配模式计算机与网络(2020年9期)2020-07-29一种用于6LoWPAN的多路径路由协议电脑知识与技术(2019年22期)2019-10-31OSPF外部路由引起的环路问题传播力研究(2019年24期)2019-10-21风起科学城决策(2018年11期)2018-11-18一种IS?IS网络中的链路异常检测方法、系统、装置、芯片科技创新导报(2016年27期)2017-03-14小小书画廊红蜻蜓(2014年4期)2014-07-09
    相关热词搜索: 广域网 心间 调度

    • 文学百科
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章