基于RoCEv2协议的网络构建方法及系统转让专利

申请号 : CN202111230963.7

文献号 : CN113965471B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张琦周赵世振

申请人 : 上海交通大学

摘要 :

本发明公开了基于RoCEv2协议的网络构建方法及系统,该方法包括:S1:对物理交换机物理端口分组配置,得到expander物理网络,构造多层架构的虚拟Clos网络;S2:利用虚拟Clos网络中的虚拟交换节点,获取可反映物理路径的多条虚拟路径;S3:根据多条虚拟路径中各虚拟交换节点映射的物理交换机,对多条虚拟路径进行压缩去重,得到物理交换机之间数据流量传输的多条物理路径;S4:将RoCEv2数据流量分别在最短物理路径和非最短物理路径上传输;基于各物理交换机中配置的预设分流比,利用均匀哈希算法对数据流量传输实现负载均衡。本发明解决在expander物理网络中采用传统的ECMP和K‑shortest‑path路由传输RoCEv2数据流量存在的PFC死锁风险,可为上层应用提供安全的、高性能的网络基础设施服务。

权利要求 :

1.一种基于RoCEv2协议的网络构建方法,其特征在于,所述方法包括:

S1:对若干支持PFC流控配置的物理交换机的物理端口按序列进行分组配置,按照分组配置的连线规则得到expander物理网络,构造多层架构的虚拟Clos网络;其中,各所述物理交换机的每组端口作为所述虚拟Clos网络中对应虚拟层的虚拟交换节点的映射;

所述步骤S1中,按照分组配置的连线规则得到expander物理网络的构建方法包括:对若干物理交换机的物理端口按序列进行分组配置后,使各所述物理交换机的各所述物理端口分配有组类属性;将所述物理交换机之间按照相邻且不同的组类属性进行拓扑连接,以得到expander物理网络;

其中,同一组类属性的物理端口为所述虚拟Clos网络中同一虚拟层的虚拟交换节点的映射;

S2:利用所述虚拟Clos网络中的虚拟交换节点,获取可反映用于RoCEv2数据流量传输的物理路径的多条虚拟路径;基于所述expander物理网络中的数据源端和数据目标端,确定所述虚拟层中包含虚拟源节点以及虚拟目标节点的虚拟基层;遍历除所述虚拟基层之外的其他虚拟层中的所有虚拟交换节点,计算所述虚拟源节点、所述虚拟目标节点与其他虚拟交换节点之间的上行路径,拼接得到从所述虚拟源节点经过其他虚拟交换节点至所述虚拟目标节点的多条虚拟路径;

S3:根据多条虚拟路径中各所述虚拟交换节点映射的物理交换机,对多条所述虚拟路径进行压缩去重,得到所述物理交换机之间数据流量传输的多条物理路径;

所述步骤S3中,对多条所述虚拟路径进行压缩去重,得到所述物理交换机之间数据流量传输的多条物理路径的方法为,将各条所述虚拟路径中的虚拟交换节点映射到物理交换机上,当相邻的虚拟交换节点映射在同一个物理交换机上时,去重合并成同一个物理交换机,得到用于数据流量传输的物理路径;

S4:根据获得的多条物理路径,利用各所述物理路径中物理交换机的数量找出最短物理路径;按比例划分RoCEv2数据流量,将划分后的RoCEv2数据流量分别在最短物理路径和非最短物理路径上传输;基于各所述物理交换机中配置的分流比,利用均匀哈希算法对所述物理交换机对之间的RoCEv2数据流量传输实现负载均衡。

2.如权利要求1所述的基于RoCEv2协议的网络构建方法,其特征在于,所述步骤S1中的各所述物理交换机含有若干个所述物理端口,通过所述物理端口连接物理终端以及其他物理交换机;

其中,所述物理终端发送数据时配置为数据源端,接收数据时配置为数据目标端,所述数据源端发送的RoCEv2数据流量支持RoCEv2通信协议。

3.如权利要求1所述的基于RoCEv2协议的网络构建方法,其特征在于,所述步骤S2中,计算所述虚拟源节点、所述虚拟目标节点与其他虚拟交换节点之间的上行路径方法为,利用动态规划算法计算所述虚拟基层中所有虚拟交换节点到其他虚拟层虚拟交换节点的上行虚拟路径,得到可以表示所述虚拟交换节点之间连接关系的上行虚拟路径图。

4.如权利要求3所述的基于RoCEv2协议的网络构建方法,其特征在于,在所述步骤S2中,基于所述expander物理网络中的任意一组所述数据源端和所述数据目标端,遍历除所述虚拟基层之外的其他虚拟层中的所有虚拟交换节点时,通过所述上行虚拟路径图,得到所述虚拟源节点与其他虚拟交换节点、虚拟目标节点与其他虚拟交换节点之间的上行虚拟路径。

5.如权利要求1所述的基于RoCEv2协议的网络构建方法,其特征在于,所述步骤S1中的各所述虚拟层中的虚拟交换节点与其他相邻虚拟层的虚拟交换节点相连接,且相连接的任意所述虚拟交换节点映射在不同的物理交换机上。

6.一种基于RoCEv2协议的网络构建系统,采用权利要求1‑5任意一项所述的方法,其特征在于,所述系统包括:网络构造模块,配置为对若干支持PFC流控配置的物理交换机的物理端口按序列进行分组配置,按照分组配置的连线规则得到expander物理网络,构造多层架构的虚拟Clos网络;其中,各所述物理交换机的每组端口作为所述虚拟Clos网络中对应虚拟层的虚拟交换节点的映射;

虚拟路径获取模块,配置为利用所述虚拟Clos网络中的虚拟交换节点,获取可反映用于RoCEv2数据流量传输的物理路径的多条虚拟路径;基于所述expander物理网络中的数据源端和数据目标端,确定所述虚拟层中包含虚拟源节点以及虚拟目标节点的虚拟基层;遍历除所述虚拟基层之外的其他虚拟层中的所有虚拟交换节点,计算所述虚拟源节点、所述虚拟目标节点与其他虚拟交换节点之间的上行路径,拼接得到从所述虚拟源节点经过其他虚拟交换节点至所述虚拟目标节点的多条虚拟路径;

物理路径获取模块,配置为根据多条虚拟路径中各所述虚拟交换节点映射的物理交换机,对多条所述虚拟路径进行压缩去重,得到所述物理交换机之间数据流量传输的多条物理路径;

流量分配模块,配置为根据获得的多条物理路径,利用各所述物理路径中物理交换机的数量找出最短物理路径;按比例划分RoCEv2数据流量,将划分后的RoCEv2数据流量分别在最短物理路径和其他物理路径上传输;基于各所述物理交换机中配置的分流比,利用均匀哈希算法对所述物理交换机对之间的RoCEv2数据流量传输实现负载均衡。

7.一种终端设备的可读介质,其特征在于,所述可读介质中存储有指令,该指令被终端设备运行时,所述终端设备执行如权利要求1‑5中任意一项所述的基于RoCEv2协议的网络构建方法。

8.一种终端设备,其特征在于,包括:

存储器,所述存储器中存储有指令,和

处理器,用于读取并执行所述存储器中的指令,以使得所述终端设备执行如权利要求

1‑5中任意一项所述的基于RoCEv2协议的网络构建方法。

说明书 :

基于RoCEv2协议的网络构建方法及系统

技术领域

[0001] 本发明涉及网络通信技术领域,尤其涉及基于RoCEv2协议的网络构建方法及系统。

背景技术

[0002] 随着互联网在线服务和云计算需求的快速增长,一些互联网服务提供商在商用以太网数据中心部署了RoCEv2通信协议,用以服务时延敏感型和高吞吐量的应用程序。RoCEv2通信协议基于UDP的传输机制,能够适配现存的以太网数据中心而不需要专用设备。
然而RoCEv2通信协议的部署配置要求底层网络无损,通常通过流量控制PFC来保证网络无损。但流量控制PFC技术引起的死锁问题给部署RoCEv2通信协议带来了安全挑战。
[0003] 现有利用Clos网络的分层架构中的上下路由,结合适当的安全机制防止死锁发生,但随着数据中心和网络带宽的负载不断增加,构建Clos物理网络的成本也越来越高。因此现有为了降低网络成本和提高性能,一些数据中心采用expander graph数据架构,例如Xpander架构、SlimFly架构、Jellyfish架构等。但是流量控制PFC技术的引入依旧会带来各种性能问题,如PFC风暴、PFC死锁和流量不均衡等,具体一点,网络中存在的路由环路会在流量陷入循环时产生循环缓冲区依赖,从而导致死锁。
[0004] Clos物理网络中的上下路由是无环的,expander数据中心常用的路由策略可包含环路。但本申请发明人发现,现有研究人员为了避免死锁问题,将边不相交的生成树(EDST)机制应用在expander数据中心,但是由于路径数量少、平均路径长度大、部分网络连接处于闲置状态等原因,导致基于EDST的路由不能有效利用网络资源,使得expander数据中心的性能差。

发明内容

[0005] 基于背景技术中存在的不足和问题,本申请实施例通过提供一种基于RoCEv2协议的网络构建方法及系统,解决了现有技术中EDST路径数少并且平均路径长度长的缺陷,并且确保没有环路,最大限度地避免PFC死锁的发生。
[0006] 第一方面,本申请提供了一种基于RoCEv2协议的网络构建方法,所述方法包括:
[0007] S1:对若干支持PFC流控配置的物理交换机的物理端口按序列进行分组配置,按照分组配置的连线规则得到expander物理网络,构造多层架构的虚拟Clos网络;其中,各所述物理交换机的每组端口作为所述虚拟Clos网络中对应虚拟层的虚拟交换节点的映射;
[0008] S2:利用所述虚拟Clos网络中的虚拟交换节点,获取可反映用于RoCEv2数据流量传输的物理路径的多条虚拟路径;基于所述expander物理网络中的数据源端和数据目标端,确定所述虚拟层中包含虚拟源节点以及虚拟目标节点的虚拟基层;遍历除所述虚拟基层之外的其他虚拟层中的所有虚拟交换节点,计算所述虚拟源节点、所述虚拟目标节点与其他虚拟交换节点之间的上行路径,拼接得到从所述虚拟源节点经过其他虚拟交换节点至所述虚拟目标节点的多条虚拟路径;
[0009] S3:根据多条虚拟路径中各所述虚拟交换节点映射的物理交换机,对多条所述虚拟路径进行压缩去重,得到所述物理交换机之间数据流量传输的多条物理路径;
[0010] S4:根据获得的多条物理路径,利用各所述物理路径中物理交换机的数量找出最短物理路径;按比例划分RoCEv2数据流量,将划分后的RoCEv2数据流量分别在最短物理路径和其他物理路径上传输;基于各所述物理交换机中配置的分流比,利用均匀哈希算法对所述物理交换机对之间的RoCEv2数据流量传输实现负载均衡。
[0011] 进一步地,所述步骤S1中,按照分组配置的连线规则得到expander物理网络的构建方法包括:对若干物理交换机的物理端口按序列进行分组配置后,使各所述物理交换机的各所述物理端口分配有组类属性;将所述物理交换机之间按照相邻且不同的组类属性进行拓扑连接,以得到expander物理网络;
[0012] 其中,同一组类属性的物理端口为所述虚拟Clos网络中同一虚拟层的虚拟交换节点的映射。
[0013] 进一步地,所述步骤S1中的各所述物理交换机含有若干个所述物理端口,通过所述物理端口连接物理终端以及其他物理交换机;
[0014] 其中,所述物理终端发送数据时配置为数据源端,接收数据时配置为数据目标端,所述数据源端发送的RoCEv2数据流量支持RoCEv2通信协议。
[0015] 进一步地,所述步骤S2中,计算所述虚拟源节点、所述虚拟目标节点与其他虚拟交换节点之间的上行路径方法为,利用动态规划算法计算所述虚拟基层中所有虚拟交换节点到其他虚拟层虚拟交换节点的上行虚拟路径,得到可以表示所述虚拟交换节点之间连接关系的上行虚拟路径图。
[0016] 进一步地,在所述步骤S2中,基于所述expander物理网络中的任意一组所述数据源端和所述数据目标端,遍历除所述虚拟基层之外的其他虚拟层中的所有虚拟交换节点时,通过所述上行虚拟路径图,得到所述虚拟源节点与其他虚拟交换节点、虚拟目标节点与其他虚拟交换节点之间的上行虚拟路径。
[0017] 进一步地,所述步骤S3中,对多条所述虚拟路径进行压缩去重,得到所述物理交换机之间数据流量传输的多条物理路径的方法为,将各条所述虚拟路径中的虚拟交换节点映射到物理交换机上,当相邻的虚拟交换节点映射在同一个物理交换机上时,去重合并成同一个物理交换机,得到用于数据流量传输的物理路径。
[0018] 进一步地,所述步骤S1中的各所述虚拟层中的虚拟交换节点与其他相邻虚拟层的虚拟交换节点相连接,且相连接的任意所述虚拟交换节点映射在不同的物理交换机上。
[0019] 第二方面,本申请提供了一种基于RoCEv2协议的网络构建系统,采用第一方面的方法,该系统包括:
[0020] 网络构造模块,配置为对若干支持PFC流控配置的物理交换机的物理端口按序列进行分组配置,按照分组配置的连线规则得到expander物理网络,构造多层架构的虚拟Clos网络;其中,各所述物理交换机的每组端口作为所述虚拟Clos网络中对应虚拟层的虚拟交换节点的映射;
[0021] 虚拟路径获取模块,配置为利用所述虚拟Clos网络中的虚拟交换节点,获取可反映用于RoCEv2数据流量传输的物理路径的多条虚拟路径;基于所述expander物理网络中的数据源端和数据目标端,确定所述虚拟层中包含虚拟源节点以及虚拟目标节点的虚拟基层;遍历除所述虚拟基层之外的其他虚拟层中的所有虚拟交换节点,计算所述虚拟源节点、所述虚拟目标节点与其他虚拟交换节点之间的上行路径,拼接得到从所述虚拟源节点经过其他虚拟交换节点至所述虚拟目标节点的多条虚拟路径;
[0022] 物理路径获取模块,配置为根据多条虚拟路径中各所述虚拟交换节点映射的物理交换机,对多条所述虚拟路径进行压缩去重,得到所述物理交换机之间数据流量传输的多条物理路径;
[0023] 流量分配模块,配置为根据获得的多条物理路径,利用各所述物理路径中物理交换机的数量找出最短物理路径;按比例划分RoCEv2数据流量,将划分后的RoCEv2数据流量分别在最短物理路径和其他物理路径上传输;基于各所述物理交换机中配置的分流比,利用均匀哈希算法对所述物理交换机对之间的RoCEv2数据流量传输实现负载均衡。
[0024] 第三方面,本实施例提供了一种终端设备的可读介质,所述可读介质中存储有指令,该指令被终端设备运行时,所述终端设备执行如第一方面中任意一项所述的基于RoCEv2协议的网络构建方法。
[0025] 第四方面,本实施例提供了一种终端设备,包括:
[0026] 存储器,所述存储器中存储有指令,和
[0027] 处理器,用于读取并执行所述存储器中的指令,以使得所述终端设备执行如第一方面中任意一项所述的基于RoCEv2协议的网络构建方法。
[0028] 本申请实施例中提供的多个技术方案,至少具有如下技术效果:
[0029] 1,由于在expander物理网络构建虚拟Clos网络,通过虚拟Clos网络计算数据流量可传输的物理路径,避免了在expander物理网络采用常用的ECMP和K‑shortest‑path路由出现环路导致PFC死锁的技术问题,同时也避免了在expander网络中采用K‑edge‑disjoint‑spanning‑tree路由路径数量少且平均路径长度长的缺陷,同时具有expander物理网络传输性能好,成本比实际Clos网络低的有益效果。
[0030] 2,由于在expander物理网络的物理交换机上预置了分流比,通过流量划分以及均匀哈希算法进行两步负载均衡配置,使得流量传输过程中,克服了大规模数据中心网络中存在的链路拥塞的问题,使得网络稳定性好,传输效率高等有益效果。

附图说明

[0031] 图1为本申请实施例一中基于RoCEv2协议的网络构建方法的流程图;
[0032] 图2为本申请实施例一中的Clos网络示例图;
[0033] 图3为本申请实施例一中的expander网络示例图;
[0034] 图4为本申请实施例一中抽象成的虚拟交换节点示意图;
[0035] 图5为本申请实施例一中构建虚拟Clos网络示意图;
[0036] 图6为本申请实施例一中在expander网络负载均衡示意图;
[0037] 图7为本申请实施例一中基于RoCEv2协议的网络构建系统框图。

具体实施方式

[0038] 为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
[0039] 实施例一
[0040] 参考附图1‑6所示,本申请实施例提供了一种基于基于RoCEv2协议的网络构建方法,该方法包括如下几个步骤。
[0041] 步骤S1:对若干支持PFC流控配置的物理交换机的物理端口按序列进行分组配置,按照分组配置的连线规则得到expander物理网络,构造多层架构的虚拟Clos网络;其中,各所述物理交换机的每组端口作为所述虚拟Clos网络中对应虚拟层的虚拟交换节点的映射。
[0042] 进一步地,在所述步骤S1中,按照分组配置的连线规则得到expander物理网络的构建方法包括:对若干物理交换机的物理端口按序列进行分组配置后,使各所述物理交换机的各所述物理端口分配有组类属性;将所述物理交换机之间按照相邻且不同的组类属性进行拓扑连接,以得到expander物理网络;其中,同一组类属性的物理端口为所述虚拟Clos网络中同一虚拟层的虚拟交换节点的映射。可以看出,本实施例中将各物理交换机的物理端口按序列进行分组配置,并不是随机分组,当分完组后,物理交换机的对应物理端口相当于分配有组类属性,比如,物理交换机A有8个物理端口连接到交换机,由于规划的虚拟Clos网络只有三层,一种对端口划分示例为2,4,2。各物理交换机的每组物理端口将作为虚拟Clos网络中的一个虚拟交换节点,同一个物理交换机分组生成的多个虚拟交换节位于虚拟Clos网络中的不同虚拟层,图4是一种映射方式的示例。本实施例中通过将相邻虚拟层的虚拟交换节点拓扑连接后,构造出多层架构的虚拟Clos网络,图5是一种虚拟Clos网络示例。本实施例中虚拟Clos网络中的虚拟交换节点映射到物理交换机所呈现的物理结构表现为数学定义中的Expander graph,也即是Expander物理网络。
[0043] 其中,物理网络与虚拟网络相对应,物理网络理解为由各种物理设备/硬件设备、介质连接起来形成的网络,例如,物理设备/硬件设备为主机、路由器、交换机等,介质为光缆、电缆、双绞线等。而Expander网络在本质上可理解为主要由交换设备组成的网络,整个网络可以抽象成Expander graph,因此,Expander物理网络可以定义为以多端口交换机为节点构成的网络架构,图3是一种Expander网络的示例。Clos网络采用Clos架构,其为一种多级电路交换网络的结构,较为典型的是三级交换架构,图2是经典的4Pod 3层Clos的示例。本实施例中利用expander物理网络构造多层架构的虚拟Clos网络,该虚拟Clos网络中的虚拟交换节点可以理解为设置在虚拟Clos网络中的虚拟交换节点。进一步地,本实施例的目的是为了将RoCEv2通信协议部署在Expander物理网络中,以使流量数据包以RoCEv2数据帧的格式传输,同时避免路由环路存在的PFC‑deadlock的问题。
[0044] 本实施例中,步骤S1中的各所述物理交换机含有若干个物理端口,通过所述物理端口连接物理终端以及其他物理交换机。其中,所述物理终端发送数据时配置为数据源端,接收数据时配置为数据目标端。数据源端发送的RoCEv2数据流量支持RoCEv2通信协议。
[0045] 具体说明,通过expander物理网络构造出的k层架构的虚拟Clos网络。expander物理网络中包括N个物理交换机,记为S1,S2,…,SN,任意一物理交换机表示为Si(1≤i≤N)。在一种实施例中,物理交换机包括p个物理端口,每个物理交换机中有h个端口连接到物理终端,s个端口连接到其他物理交换机。那么显然p≥s+h。优选地,p=s+h。由于任一物理交换机为Si(1≤i≤N),将物理交换机的s个端口划分为k组,各组位于虚拟Clos网络的不同虚拟层,划分的每组定义为虚拟Clos网络的一个虚拟交换节点,每个虚拟交换节点记为通过i可以映射到对应的物理交换机,通过j映射到虚拟Clos网络的虚拟层数,每个虚拟交换节点 位于虚拟层的第j层。很显然对于单个物理交换机划分出的k个虚拟交换节点的物理端口的总数量值满足物理约束值s。本实施例中的对应于将物理交换机中的物理端口划分为k组,使每一个物理交换机映射到虚拟层k层,第j个虚拟交换节点属于第j个虚拟层。
[0046] 针对虚拟交换节点之间的连接关系,本实施例步骤S1中的各虚拟层中的虚拟交换节点与相邻其他虚拟层的虚拟交换节点相连接,且相连的任意所述虚拟交换节点映射在不同的物理交换机上。因此可以理解为对于每一层虚拟交换节点,其连接规则为任一层的虚拟交换节点只能连接其相邻层的虚拟交换节点,比如,虚拟层第j层可以与虚拟层第j‑1层和虚拟层j+1层连接,并且所连接的两个虚拟交换节点映射在不同的物理交换机上,也就是说与虚拟交换节点 相连连接的虚拟交换节点表示为 其中,i1、i2表示为不同的物理交换机。每个虚拟交换节点 属于虚拟层的第j层,可以连接相邻的第j‑1层或者j+1层的虚拟交换节点,而且映射在同一物理交换机上的虚拟交换节点默认为已经相互连接,因此本实施例针对映射在同一物理交换机的虚拟交换节点进行去重压缩处理。
[0047] 步骤S2:利用所述虚拟Clos网络中的虚拟交换节点,获取可反映用于数据RoCEv2流量传输的物理路径的多条虚拟路径;基于所述expander物理网络中的数据源端和数据目标端,确定所述虚拟层中包含虚拟源节点以及虚拟目标节点的虚拟基层;遍历除所述虚拟基层之外的其他虚拟层中的所有虚拟交换节点,计算所述虚拟源节点、所述虚拟目标节点与其他虚拟交换节点之间的上行路径,拼接得到从所述虚拟源节点经过其他虚拟交换节点至所述虚拟目标节点的多条虚拟路径。
[0048] 在步骤S2中,计算所述虚拟源节点、所述虚拟目标节点与其他虚拟交换节点之间的上行路径方法为,利用动态规划算法计算所述虚拟基层中所有虚拟交换节点到其他虚拟层虚拟交换节点的上行虚拟路径,得到可以表示所述虚拟交换节点之间连接关系的上行虚拟路径图。
[0049] 进一步说明,每个物理交换机有固定的ID,比如,Si(1≤i≤N)中每个物理交换机的i固定,因此在物理拓扑中,单个的连接关系的存储格式可以表示为[交换机i1的ID,交换机i2的ID,交换机i1的端口ID,交换机i2的端口ID],i1、i2表示物理交换机的i值,且i1、i2属于不同值,可以看出,通过简单的元素组合即可表示出两个物理交换机之间对应端口号的连接关系。那么映射到虚拟Clos网络中时,假设物理连接关系表示二维数组A,在虚拟Clos网络中的连接关系A[i1][i2](1≤i1,i2≤k*N)表示虚拟交换节点i1、i2有连接关系。
[0050] 进一步地,在所述步骤S2中,基于所述expander物理网络中的任意一组所述数据源端和所述数据目标端,遍历除所述虚拟基层之外的其他虚拟层中的所有虚拟交换节点时,通过所述上行虚拟路径图,得到所述虚拟源节点与其他虚拟交换节点、虚拟目标节点与其他虚拟交换节点之间的上行虚拟路径。
[0051] 本实施例中将虚拟目标节点到其他节点之间的上行路径翻转,得到其他节点到虚拟目标节点的路径,拼接虚拟源节点到其他节点,其他节点到虚拟目标节点的路径得到虚拟源节点到虚拟目标节点的虚拟路径。
[0052] 其中,上行虚拟路径可以理解为虚拟交换节点间流量传输路径,比如,流量从虚拟交换节点A到虚拟交换节点B,那么虚拟交换节点间的关系就是AB而不是BA,本实施例中根据流量传输,可以知道虚拟交换节点间的上行关系包括虚拟源节点到其他虚拟交换节点、其他虚拟交换节点到其他虚拟交换节点、其他虚拟交换节点到虚拟目标节点,但是通过上行虚拟路径图无法直接得到虚拟路径。进一步地,本实施例中按照流量传输方向,将与流量方向相反的上行关系进行倒转,再利用虚拟交换节点间的连接关系进行拼接,进而得到多条完整的流量传输虚拟路径。
[0053] 进一步说明,定义虚拟Clos网络M,其上行虚拟路径图定义为定义一虚拟交换节点为 代表 到
的路径。利用动态规划算法计算出up‑path map 的值。
[0054] 任意两个虚拟基层的虚拟交换节点 假设 为虚拟源节点, 为虚拟目标节点。遍历与虚拟基层相邻的虚拟层至第k层中所有的虚拟交换节点,基于已获得的上行虚拟路径图,计算出的up‑path map 可以得到 到到 的上行虚拟路径,根据流量传输方向将 到 的路径进行翻转,得到 到
的路径,拼接 到 到 的路径,最终得到 到 的虚拟路径。
[0055] 步骤S3:根据多条虚拟路径中各所述虚拟交换节点映射的物理交换机,对多条所述虚拟路径进行压缩去重,得到所述物理交换机之间数据流量传输的多条物理路径。
[0056] 在所述步骤S3中,对多条所述虚拟路径进行压缩去重,得到所述物理交换机之间RoCEv2数据流量传输的多条物理路径的方法为,将各条所述虚拟路径中的虚拟交换节点映射到物理交换机上,当相邻的虚拟交换节点映射在同一个物理交换机上时,去重合并成同一个物理交换机,得到用于数据流量传输的物理路径。也就是说,根据多条虚拟路径中各所述虚拟交换节点映射的物理交换机,对多条所述虚拟路径进行压缩去重,得到用于数据流量传输的所述物理交换机组成的物理路径;
[0057] 进一步说明,基于计算出的上行虚拟路径,将该上行虚拟路径中的虚拟交换节点映射到物理交换机上,去除该路径中重复的物理交换机节点得到实际的物理路径。比如,参见图5的虚拟Clos网络, 到 的一条虚拟路径为 本质上为同一个物理交换机S1, 本质上为同一个物理交换机S2,所以 到 的
物理路径就被简化为S1‑S2。对所有遍历到的虚拟路径均按照上述简化处理后,去除重复的路径,得到流量传输在物理交换机之间的路由。因此对于任意的物理交换机之间,只需重复上述的路径过程,即可快速计算出任意两物理交换机之间的路由。
[0058] 步骤S4:根据获得的多条物理路径,利用各所述物理路径中物理交换机的数量找出最短物理路径;按比例划分数RoCEv2据流量,将划分后的RoCEv2数据流量分别在最短物理路径和其他物理路径上传输;基于各所述物理交换机中配置分流比,利用均匀哈希算法对物理交换机对之间的RoCEv2数据流量传输实现负载均衡。
[0059] 可以看出,本步骤中实现流量传输负载均衡的方法包括两步,第一份划分流量,第二步均有哈希算法。举例说明,假设存在RoCEv2通信协议的数据流量从S1流向S8,如图6所示S1到S8之间有两条最短物理路径,两条非最短物理路径。将数据流量五五分开,其中转发50%的数据流量到最短物理路径,转发50%到非最短物理路径,假设RoCEv2数据流量包P1,在S1处,根据p1.sip以及p1.dip设置转发的端口列表为[1,2,3,4],源IP地址为p1.sip,目的IP地址为p1.dip的数据包都通过端口1,2,3,4转发到目的地。那么负载均衡的具体过程如下代码所示:
[0060] Input(Packet p,routes):
[0061] //注:具体的哈希算法可以使用CRC校验,MD5等
[0062] hval:=hash(p.sip,p.dip,p.sport,p.dport)
[0063] forwad_list:=routes[p.sip][p.dip]
[0064] return forward_list[hval%len(forward_list)]
[0065] 在一种实施例中,S1,S8之间的最短物理路径有3条,非最短物理路径有2条,增加一个冗余非最短物理路径的转发端口,并确保非最短物理路径的转发端口数应该等于最短物理路径的转发端口数,以实现50,50的预设分流比。
[0066] 本实施例中基于分流比配置数据流量。进一步说明,对于基于RoCEv2通信协的数据流量,对于任意两个物理交换机之间的流量传输,反映到物理网络中时。对于按比例划分数据流量,在一种实施例中,划分50%的流量到最短路径上,数据流量在最短路之间使用均匀哈希算法进行负载均衡;剩余的50%的数据流量在非最短物理路径上,数据流量在这些非最短路之间使用均匀哈希算法再次进行负载均衡。
[0067] 进一步说明,本实施例中的各物理终端配置的RoCEv2通信协议,可以为数据流量传输提供高速带宽,不需要另置交换机设备,与现有的Ethernet交换机设备兼容,节约设备成本。本实施例中利用虚拟Clos网络找出数据流量传输的物理路径,再通过数据流量的划分,对数据流量传输进行第一次负载均衡,当数据流量从不同的物理路径中传输,并且优选地最短物理路径传输较多的流量负荷,其他非最短物理路径分担其他的数据流量。利用均匀哈希算法对数据流量传输进行第二次负载均衡。进一步将RoCEv2通信协议部署在expander物理网络中,可以在减小网络成本的同时提供更优的性能。本实施例中的物理交换机启用PFC技术,当网络中运行RoCEv2的流量时,以确保转发的数据流量不丢包,保证RoCEv2协议的高性能。
[0068] 利用构建虚拟Clos网络找出非环物理路径,解决实际expander物理网络中采用ECMP和K‑shortest‑path路由带来的PFC‑deadlock的问题,并且通过虚拟构建,避免了利用实际Clos网络的设备成本,相当于获取了Clos架构的优势而不需要付出太多的成本代价。再利用性能与成本都比Clos网络好的expander物理网络,相当于将expander物理网络与虚拟Clos网络中的优势相结合,即为虚拟与现实相结合。
[0069] 本实施例中部署RoCEv2通信协议到expander物理网络中,如果使用ECMP或者K‑shortest‑path路由,那么可能会造成路由循环导致的PFC‑deadlock,因此查找物理路径这一需求直接通过虚拟Clos网络完成,即可避免造成循环死锁。本实施例中将每一个物理交换机划分出多个虚拟交换节点,每一个虚拟交换节点属于一个虚拟层,连接任意的两个虚拟层,构建虚拟Clos网络。当然基于虚拟Clos网络计算任意两个虚拟层中虚拟交换节点的路由方法很多,比如宽度优先搜索BFS、深度优先搜索DFS,本实施例中优选地采用动态规划算法。
[0070] 实施例二
[0071] 参考附图7所示,本实施例提供了一种基于RoCEv2协议的网络构建系统,采用实施例一中任意一项所述的方法,所述系统包括:
[0072] 网络构造模块100,配置为对若干支持PFC流控配置的物理交换机的物理端口按序列进行分组配置,按照分组配置的连线规则得到expander物理网络,构造多层架构的虚拟Clos网络;其中,各所述物理交换机的每组端口作为所述虚拟Clos网络中对应虚拟层的虚拟交换节点的映射。
[0073] 虚拟路径获取模块200,配置为利用所述虚拟Clos网络中的虚拟交换节点,获取可反映用于RoCEv2数据流量传输的物理路径的多条虚拟路径;基于所述expander物理网络中的数据源端和数据目标端,确定所述虚拟层中包含虚拟源节点以及虚拟目标节点的虚拟基层;遍历除所述虚拟基层之外的其他虚拟层中的所有虚拟交换节点,计算所述虚拟源节点、所述虚拟目标节点与其他虚拟交换节点之间的上行路径,拼接得到从所述虚拟源节点经过其他虚拟交换节点至所述虚拟目标节点的多条虚拟路径。
[0074] 物理路径获取模块300,配置为根据多条虚拟路径中各所述虚拟交换节点映射的物理交换机,对多条所述虚拟路径进行压缩去重,得到所述物理交换机之间数据流量传输的多条物理路径。
[0075] 流量分配模块400,配置为根据获得的多条物理路径,利用各所述物理路径中物理交换机的数量找出最短物理路径;按比例划分RoCEv2数据流量,将划分后的RoCEv2数据流量分别在最短物理路径和其他物理路径上传输;基于各所述物理交换机中配置的分流比,利用均匀哈希算法对物理交换机对之间的RoCEv2数据流量传输实现负载均衡。
[0076] 实施例三
[0077] 本申请实施例提供了一种终端设备的可读介质,其特征在于,所述可读介质中存储有指令,该指令被终端设备运行时,所述终端设备执行如实施例一中任意一项所述的基于RoCEv2协议的网络构建方法。
[0078] 本申请实施例提供了一种终端设备,包括:
[0079] 存储器,所述存储器中存储有指令,和
[0080] 处理器,用于读取并执行所述存储器中的指令,以使得所述终端设备执行如实施例一中任意一项所述的基于RoCEv2协议的网络构建方法
[0081] 本申请公开的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统可以包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
[0082] 可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何系统。
[0083] 程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
[0084] 在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合形式来实现。所公开的实施例还可以以承载或储存在一个或多个瞬态或非瞬态的机器可读(例如,计算机可读)存储介质上的指令或程序形式实现,其可以由一个或多个处理器等读取和执行。当指令或程序被机器运行时,机器可以执行前述的各种方法。例如,指令可以通过网络或其他计算机可读介质分发。因此,机器可读介质可以包括但不限于,用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,例如,软盘,光盘,光盘只读存储器(CD‑ROMs),磁光盘,只读存储器(ROM),随机存取存储器(RAM),可擦除可编程只读存储器(EPROM),电子式可清除程序化只读存储器(EEPROM),磁卡或光卡,或者用于通过电、光、声或其他形式信号(例如,载波、红外信号、数字信号等)传输网络信息的闪存或有形的机器可读存储器。因此,机器可读介质包括任何形式的适合于存储或传输电子指令或机器(例如,计算机)可读信息的机器可读介质。
[0085] 因此,本申请的各实施例还包括非瞬态的有形机器可读介质,该介质包含指令或包含设计数据,诸如硬件描述语言(HDL),它定义本文中描述的结构、电路、装置、处理器和/或系统特征。这些实施例也被称为程序产品。
[0086] 应当理解的是,虽然在本文中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了进行区分,而不能理解为指示或暗示相对重要性。举例来说,在不背离示例性实施例的范围的情况下,第一特征可以被称为第二特征,并且类似地第二特征可以被称为第一特征。
[0087] 此外,各种操作将以最有助于理解说明性实施例的方式被描述为多个彼此分离的操作;然而,描述的顺序不应被解释为暗示这些操作必须依赖描述的顺序,其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序也可以被重新安排。当所描述的操作完成时,所述处理可以被终止,但是还可以具有未包括在附图中的附加操作。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
[0088] 说明书中对“一个实施例”,“实施例”,“说明性实施例”等的引用表示所描述的实施例可以包括特定特征、结构或性质,但是每个实施例也可能或不是必需包括特定的特征、结构或性质。而且,这些短语不一定是针对同一实施例。此外,当结合具体实施例描述特定特征,本领域技术人员的知识能够影响到这些特征与其他实施例的结合,无论这些实施例是否被明确描述。
[0089] 除非上下文另有规定,否则术语“包含”、“具有”和“包括”是同义词。短语“A/B”表示“A或B”。短语“A和/或B”表示“(A)、(B)或(A和B)”。
[0090] 如本文所使用的,术语“模块”可以指代,作为其中的一部分,或者包括:用于运行一个或多个软件或固件程序的存储器(共享、专用或组),专用集成电路(ASIC),电子电路和/或处理器(共享、专用或组),组合逻辑电路,和/或提供所述功能的其他合适组件。
[0091] 在附图中,可能以特定布置和/或顺序示出了一些结构或方法特征。然而,应当理解的是,这样的特定布置和/或排序不是必需的。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来进行说明。另外,特定附图中所包含得结构或方法特征并不意味着所有实施例都需要包含这样的特征,在一些实施例中,可以不包含这些特征,或者可以将这些特征与其他特征进行组合。
[0092] 上面结合附图对本申请的实施例做了详细说明,但本申请技术方案的使用不仅仅局限于本专利实施例中提及的各种应用,各种结构和变型都可以参考本申请技术方案轻易地实施,以达到本文中提及的各种有益效果。在本领域普通技术人员所具备的知识范围内,在不脱离本申请宗旨的前提下做出的各种变化,均应归属于本申请专利涵盖范围。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。