CN117793800A - 流量均衡方法、设备及系统 - Google Patents
流量均衡方法、设备及系统 Download PDFInfo
- Publication number
- CN117793800A CN117793800A CN202211199414.2A CN202211199414A CN117793800A CN 117793800 A CN117793800 A CN 117793800A CN 202211199414 A CN202211199414 A CN 202211199414A CN 117793800 A CN117793800 A CN 117793800A
- Authority
- CN
- China
- Prior art keywords
- computing device
- network
- access node
- remainder
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 100
- 238000012545 processing Methods 0.000 claims description 42
- 230000008569 process Effects 0.000 claims description 41
- 238000012549 training Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 14
- 239000010410 layer Substances 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 230000002776 aggregation Effects 0.000 description 7
- 238000004220 aggregation Methods 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 238000013135 deep learning Methods 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000011144 upstream manufacturing Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000004549 pulsed laser deposition Methods 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- CCEKAJIANROZEO-UHFFFAOYSA-N sulfluramid Chemical group CCNS(=O)(=O)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)F CCEKAJIANROZEO-UHFFFAOYSA-N 0.000 description 2
- 241000555293 Bassariscus astutus Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Abstract
本申请提供了一种流量均衡方法、设备及系统,属于网络技术领域。本申请中,网络设备接收数据流,所述数据流包括所述第一计算设备的网络地址;所述网络设备基于所述第一计算设备的网络地址取余,得到余数;所述网络设备基于所述余数,从多条链路中选择第一链路;所述网络设备通过所述第一链路发送所述数据流。本申请由于采用网络地址取余的方式转发数据流,能够将不同的业务流分发到不同的链路上,从而避免上行哈希冲突或者下行哈希冲突造成的流量不均衡。
Description
技术领域
本申请涉及网络技术领域,特别涉及一种流量均衡方法、设备及系统。
背景技术
在很多网络系统中,一对网络设备之间存在多条链路。网络设备会采用流量均衡的机制,通过多条链路分担网络设备所需转发的流量,从而实现不同链路之间负载均衡,避免单个链路负载过重影响转发性能,也避免单个链路过于空闲导致资源利用率下降。
相关技术中,当网络设备接收到一条数据流后,网络设备基于数据流的信息采用哈希算法运算,得到哈希结果;网络设备基于哈希结果,从本节点与下一跳之间的多条链路中选择一条链路,通过选择的链路向下一跳转发数据流。
采用上述方法时,经常出现不同的数据流通过同一条链路转发,引起流量不均衡。
发明内容
第一方面,提供了一种流量均衡方法,应用于网络系统,网络系统包括网络设备以及第一计算设备,方法包括:网络设备接收数据流,数据流包括第一计算设备的网络地址;网络设备基于第一计算设备的网络地址取余,得到余数;网络设备基于余数,从多条链路中选择第一链路;网络设备通过第一链路发送数据流。
在第一方面提供的方法中,由于采用网络地址取余的方式转发数据流,能够将不同的业务流分发到不同的链路上,从而避免上行哈希冲突或者下行哈希冲突造成的流量不均衡。
此外,对计算设备的网卡没有支持乱序重排的要求,灵活性较高。
在一些实施方式中,第一计算设备的网络地址取余后得到的余数与第二计算设备的网络地址取余后得到的余数不同,第二计算设备是与第一计算设备连接了同一个接入节点的任一个计算设备。
在一些实施方式中,数据流的源地址包括第一计算设备的网络地址,网络设备为接入节点;网络设备基于余数,从多条链路中选择第一链路,包括:网络设备基于余数,从多条上行链路中选择第一链路。
在一些实施方式中,网络系统包括至少一个汇聚节点以及至少一个接入节点,一个接入节点与至少一个汇聚节点连接,一个接入节点与一个汇聚节点之间具有一条或多条链路,网络系统中所有接入节点与同一个汇聚节点之间的一条或多条链路在汇聚节点侧网络地址的大小排位分布相同,汇聚节点侧的网络地址的大小排位分布是指一个接入节点和一个汇聚节点的一条或者多条链路的汇聚节点侧的网络地址,在接入节点和至少一个汇聚节点的所有链路的汇聚节点侧网络地址中的大小排位的集合。
在一些实施方式中,数据流的目的地址包括第一计算设备的网络地址,网络设备为汇聚节点;
网络设备基于余数,从多条链路中选择第一链路,包括:
网络设备基于余数,从网络设备与目的接入节点之间的多条下行链路中选择第一链路,目的接入节点为第一计算设备连接的接入节点。
在一些实施方式中,网络系统还包括调度设备,方法还包括:
调度设备基于多个计算设备的网络地址或者多个计算设备与多个网络设备之间的连接关系中至少一项,调度多个计算设备处理任务,多个计算设备包括第一计算设备,任务的处理过程包括多个计算设备中不同计算设备之间传输数据流的过程。
在一些实施方式中,任务包括第一任务,调度设备基于多个计算设备的网络地址或者多个计算设备与多个网络设备之间的连接关系中至少一项,调度多个计算设备处理任务,包括:
调度设备将第一任务中的第一子任务分配给第一计算设备,将第一任务中的第二子任务分配给第二计算设备,第一计算设备与第二计算设备连接了同一个接入节点。
在一些实施方式中,任务包括第一任务,调度设备基于多个计算设备的网络地址或者多个计算设备与多个网络设备之间的连接关系中至少一项,调度多个计算设备处理任务,包括:
调度设备将第一任务中的第一子任务分配给第一计算设备,将第一任务中的第二子任务分配给第二计算设备,第一计算设备连接第一接入节点,第二计算设备连接第二接入节点,第一计算设备的网络地址排位与第二计算设备的网络地址排位相同,第一计算设备的网络地址排位为第一计算设备的网络地址取余后得到的余数相较于第一接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序,第二计算设备的网络地址排位为第二计算设备的网络地址取余后得到的余数相较于第二接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序。
在一些实施方式中,调度设备基于多个计算设备的网络地址或者多个计算设备与多个网络设备之间的连接关系中至少一项,调度多个计算设备处理任务,包括:
调度设备将第一任务分配给第一计算设备,将第二任务分配给第二计算设备,第一计算设备和第二计算设备均连接第一接入节点,第一计算设备的网络地址与多条链路的数目取余后得到的余数与第二计算设备的网络地址与多条链路的数目取余后得到的余数不同。
在一些实施方式中,多个计算设备包括第一计算设备,调度设备基于多个计算设备的网络地址或者多个计算设备与多个网络设备之间的连接关系中至少一项,调度多个计算设备处理任务之前,方法还包括:
第一计算设备获取第一计算设备连接的接入节点的标识;
第一计算设备向调度设备发送第一计算设备的网络地址以及接入节点的标识。
在一些实施方式中,第一计算设备获取第一计算设备连接的接入节点的标识,包括:
第一计算设备通过链路层发现协议LLDP协议,获取第一计算设备连接的接入节点的标识。
第二方面,提供了一种流量均衡方法,包括:
调度设备基于多个计算设备的网络地址或者多个计算设备与多个网络设备之间的连接关系中至少一项,调度多个计算设备处理任务,多个计算设备包括第一计算设备,任务的处理过程包括多个计算设备中不同计算设备之间传输数据流的过程。
通过上述方法,能够实现在多任务并发的额场景下,多个交换机之间流量均衡。
在一些实施方式中,任务包括第一任务,调度设备基于多个计算设备的网络地址或者多个计算设备与多个网络设备之间的连接关系中至少一项,调度多个计算设备处理任务,包括:
调度设备将第一任务中的第一子任务分配给第一计算设备,将第一任务中的第二子任务分配给第二计算设备,第一计算设备与第二计算设备连接了同一个接入节点。
在一些实施方式中,任务包括第一任务,调度设备基于多个计算设备的网络地址或者多个计算设备与多个网络设备之间的连接关系中至少一项,调度多个计算设备处理任务,包括:
调度设备将第一任务中的第一子任务分配给第一计算设备,将第一任务中的第二子任务分配给第二计算设备,第一计算设备连接第一接入节点,第二计算设备连接第二接入节点,第一计算设备的网络地址排位与第二计算设备的网络地址排位相同,第一计算设备的网络地址排位为第一计算设备的网络地址取余后得到的余数相较于第一接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序,第二计算设备的网络地址排位为第二计算设备的网络地址取余后得到的余数相较于第二接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序。
在一些实施方式中,调度设备基于多个计算设备的网络地址或者多个计算设备与多个网络设备之间的连接关系中至少一项,调度多个计算设备处理任务,包括:
调度设备将第一任务分配给第一计算设备,将第二任务分配给第二计算设备,第一计算设备和第二计算设备均连接第一接入节点,第一计算设备的网络地址与多条链路的数目取余后得到的余数与第二计算设备的网络地址与多条链路的数目取余后得到的余数不同。
在一些实施方式中,调度设备基于多个计算设备的网络地址或者多个计算设备与多个网络设备之间的连接关系中至少一项,调度多个计算设备处理任务之前,方法还包括:
调度设备从第一计算设备接收第一计算设备的网络地址以及接入节点的标识。
在一些实施方式中,调度设备基于多个计算设备的网络地址或者多个计算设备与多个网络设备之间的连接关系中至少一项,调度多个计算设备处理任务之前,方法还包括:
第一计算设备获取第一计算设备连接的接入节点的标识;
第一计算设备向调度设备发送第一计算设备的网络地址以及接入节点的标识。
在一些实施方式中,第一计算设备获取第一计算设备连接的接入节点的标识,包括:第一计算设备通过链路层发现协议LLDP协议,获取第一计算设备连接的接入节点的标识。
第三方面,提供了一种网络设备,网络设备包括:
接收单元,用于接收数据流,数据流包括第一计算设备的网络地址;
处理单元,用于基于第一计算设备的网络地址取余,得到余数;
处理单元,还用于基于余数,从多条链路中选择第一链路;
发送单元,用于通过第一链路发送数据流。
在一些实施方式中,第一计算设备的网络地址取余后得到的余数与第二计算设备的网络地址取余后得到的余数不同,第二计算设备是与第一计算设备连接了同一个接入节点的任一个计算设备。
在一些实施方式中,数据流的源地址包括第一计算设备的网络地址,网络设备为接入节点;
处理单元,用于基于余数,从多条上行链路中选择第一链路。
在一些实施方式中,处理单元,用于基于余数,从网络设备与目的接入节点之间的多条下行链路中选择第一链路,目的接入节点为第一计算设备连接的接入节点。
第四方面,提供了一种调度设备,包括:
获取单元,用于获取多个计算设备的网络地址或者多个计算设备与多个网络设备之间的连接关系;
调度单元,用于基于多个计算设备的网络地址或者连接关系中至少一项,调度多个计算设备处理任务,多个计算设备包括第一计算设备,任务的处理过程包括多个计算设备中不同计算设备之间传输数据流的过程。
在一些实施方式中,任务包括第一任务,调度单元,用于将第一任务中的第一子任务分配给第一计算设备,将第一任务中的第二子任务分配给第二计算设备,第一计算设备与第二计算设备连接了同一个接入节点。
在一些实施方式中,任务包括第一任务,调度单元,用于将第一任务中的第一子任务分配给第一计算设备,将第一任务中的第二子任务分配给第二计算设备,第一计算设备连接第一接入节点,第二计算设备连接第二接入节点,第一计算设备的网络地址排位与第二计算设备的网络地址排位相同,第一计算设备的网络地址排位为第一计算设备的网络地址取余后得到的余数相较于第一接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序,第二计算设备的网络地址排位为第二计算设备的网络地址取余后得到的余数相较于第二接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序。
在一些实施方式中,调度单元,用于将第一任务分配给第一计算设备,将第二任务分配给第二计算设备,第一计算设备和第二计算设备均连接第一接入节点,第一计算设备的网络地址与多条链路的数目取余后得到的余数与第二计算设备的网络地址与多条链路的数目取余后得到的余数不同。
在一些实施方式中,获取单元,用于从第一计算设备接收第一计算设备的网络地址以及接入节点的标识。
第五方面,提供了一种网络系统,网络系统包括至少一个汇聚节点以及至少一个接入节点,汇聚节点或者接入节点用于执行上述第一方面或者第一方面任一种可选实施方式的方法。
在一些实施方式中,网络系统包括至少一个汇聚节点以及至少一个接入节点,一个接入节点与至少一个汇聚节点连接,一个接入节点与一个汇聚节点之间具有一条或多条链路,网络系统中所有接入节点与同一个汇聚节点之间的一条或多条链路在汇聚节点侧网络地址的大小排位分布相同,汇聚节点侧的网络地址的大小排位分布是指一个接入节点和一个汇聚节点的一条或者多条链路的汇聚节点侧的网络地址,在接入节点和至少一个汇聚节点的所有链路的汇聚节点侧网络地址中的大小排位的集合。
在一些实施方式中,网络系统还包括调度设备,调度设备,用于基于多个计算设备的网络地址或者多个计算设备与多个网络设备之间的连接关系中至少一项,调度多个计算设备处理任务,多个计算设备包括第一计算设备,任务的处理过程包括多个计算设备中不同计算设备之间传输数据流的过程。
在一些实施方式中,调度设备用于将第一任务中的第一子任务分配给第一计算设备,将第一任务中的第二子任务分配给第二计算设备,第一计算设备与第二计算设备连接了同一个接入节点。
在一些实施方式中,调度设备用于将第一任务中的第一子任务分配给第一计算设备,将第一任务中的第二子任务分配给第二计算设备,第一计算设备连接第一接入节点,第二计算设备连接第二接入节点,第一计算设备的网络地址排位与第二计算设备的网络地址排位相同,第一计算设备的网络地址排位为第一计算设备的网络地址取余后得到的余数相较于第一接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序,第二计算设备的网络地址排位为第二计算设备的网络地址取余后得到的余数相较于第二接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序。
在一些实施方式中,调度设备用于将第一任务分配给第一计算设备,将第二任务分配给第二计算设备,第一计算设备和第二计算设备均连接第一接入节点,第一计算设备的网络地址与多条链路的数目取余后得到的余数与第二计算设备的网络地址与多条链路的数目取余后得到的余数不同。
在一些实施方式中,网络系统包括第一计算设备,第一计算设备,用于获取第一计算设备连接的接入节点的标识;向调度设备发送第一计算设备的网络地址以及接入节点的标识。
在一些实施方式中,第一计算设备用于通过链路层发现协议LLDP协议,获取第一计算设备连接的接入节点的标识。
第六方面,提供一种网络设备,网络设备包括处理器和网络接口,处理器用于执行指令,使得网络设备执行上述第一方面或第一方面任一种可选方式所提供的方法,网络接口用于接收或发送报文。
第七方面,提供一种调度设备,网络设备包括处理器,处理器与存储器耦合,存储器中存储有至少一条计算机程序指令,至少一条计算机程序指令由处理器加载并执行,以使调度设备实现上述第二方面或第二方面任一种可选方式所提供的方法。
第八方面,提供一种计算机可读存储介质,存储介质中存储有至少一条指令,指令在计算机上运行时,使得计算机执行上述第一方面或第一方面任一种可选方式所提供的方法。
第九方面,提供一种计算机可读存储介质,存储介质中存储有至少一条指令,指令在计算机上运行时,使得计算机执行上述第二方面或第二方面任一种可选方式所提供的方法。
第十方面,提供了一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述第一方面或第一方面任一种可选方式所提供的方法。
第十一方面,提供了一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述第二方面或第二方面任一种可选方式所提供的方法。
附图说明
图1是本申请实施例提供的一种应用场景的示意图;
图2是本申请实施例提供的一种流量均衡方法的流程图;
图3是本申请实施例提供的一种深度学习训练场景下网络系统的架构图;
图4是本申请实施例提供的一种深度学习训练场景下网络系统的架构图;
图5是本申请实施例提供的一种网络地址规划的示意图;
图6是本申请实施例提供的一种任务调度的示意图;
图7是本申请实施例提供的一种任务调度的示意图;
图8是本申请实施例提供的一种任务调度的示意图;
图9是本申请实施例提供的一种网络设备的结构示意图;
图10是本申请实施例提供的一种调度设备的结构示意图;
图11是本申请实施例提供的一种设备900的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面对本申请的应用场景举例说明。
本申请实施例的应用场景中包括至少一个网络设备以及至少一个计算设备。
在一些实施例中,计算设备包括而不限于服务器、终端、个人计算机等。在另一些实施例中,计算设备为芯片。例如,计算设备为人工智能(Artificial Intelligent,AI)加速器。例如,计算设备为神经网络处理器(neural-network processing units,NPU)或图形处理器(graphics processing unit,GPU)等。示例性地,一个服务器中设有多个AI加速器,每一个AI加速器接入网络设备,每一个AI加速器为一个计算设备。
计算设备用于处理任务。任务包括而不限于AI训练任务、科学计算任务、物理实验数据分析等。AI训练任务包括而不限于计算梯度值、计算模型参数中的至少一项。
在一些实施例中,多个计算设备采用分布式计算的方式,协同完成同一个任务。在任务的处理过程中,不同计算设备之间会传输数据流。例如,计算设备将本设备得到的处理结果同步给其他计算设备,并基于其他计算设备得到的处理结果继续执行任务。在一些实施例中,多个计算设备采用集合通信算法通信。以AI训练的场景为例,例如多个计算设备基于样本集训练AI模型,通过集合通信算法同步参数、梯度以及计算结果。
在一个示例性场景中,每个计算设备基于样本集中的部分样本数据进行训练,得到模型的参数或梯度,将参数或梯度发送给其他计算设备,并基于其他计算设备发送的参数或梯度继续训练,从而避免单个计算设备负责处理样本集中全部样本数据导致训练时间过长,减少完成模型训练整体的耗时。在另一个示例性场景中,每一个计算设备(例如GPU或NPU)负责模型中部分层的计算,并将计算结果发送给其他计算设备,由其他计算设备继续计算。
网络设备包括而不限于交换机、路由器等。网络设备用于转发计算设备之间传输的数据流。网络设备例如为接入节点或者汇聚节点。
接入节点用于接入一个或多个计算设备。例如请参考图1,图1所示的场景中接入节点例如为接入节点201、接入节点202、接入节点203或者接入节点204。接入节点201接入计算设备101以及计算设备102。接入节点202接入计算设备103以及计算设备104。接入节点203接入计算设备105以及计算设备106。接入节点204接入计算设备107以及计算设备108。图1示出的一个接入节点接入2个计算设备的场景仅是示例,在另一些实施例中,一个接入节点接入的计算设备的数量可选地更多或更少。例如,一个接入节点接入的计算设备仅为一个,又如,一个接入节点接入的计算设备为几十个或几百个,或者更多数量,本实施例对一个接入节点接入的计算设备的数量不做限定。
在数据流上行传输的过程中,接入节点为数据流的入口节点。接入节点用于从源计算设备接收数据流,将数据流发送至汇聚节点。在数据流下行传输的过程中,接入节点为数据流的出口节点,接入节点用于接收来自汇聚节点的数据流,将数据流发送至目的计算设备。上述上行传输是指从接入节点到汇聚节点的传输方向,下行传输是指从汇聚节点到接入节点的传输方向。
汇聚节点与多个接入节点相连。例如请参考图1,图1所示的场景中汇聚节点例如为汇聚节点301或者汇聚节点302。汇聚节点301与接入节点201、接入节点202、接入节点203以及接入节点204相连。汇聚节点302与接入节点201、接入节点202、接入节点203以及接入节点204相连。
汇聚节点用于从源计算设备连接的接入节点接收数据流,将接收到的数据流发送至目的计算设备连接的接入节点。图1示出的存在2个汇聚节点的场景仅是示例,在另一些实施例中,汇聚节点的数量可选地更多或更少。例如,汇聚节点的数量仅为一个,又如,汇聚节点的数量为几十个或几百个,或者更多数量,本实施例对汇聚节点的数量不做限定。
在一些实施例中,上述多个网络设备之间采用叶脊(spine-leaf)架构连接。spine-leaf是一种两层的网络架构。上述接入节点为叶(leaf)节点,上述汇聚节点为脊(spine)节点。其中,leaf节点也称接入交换机(top of rack,TOR),是计算设备接入的节点。
在另一些实施例中,网络系统采用三层架构或者更多层数的架构。例如,网络系统采用入口节点-中间节点-出口节点这样的三层网络架构。上述接入节点为入口节点或者出口节点,上述汇聚节点为中间节点。又如,网络系统采用3层胖树的架构,3层胖树的架构包括leaf层、spine层和核心(core)层。
在本申请实施例提供的网络系统中,一个网络设备可选地通过多条链路与一个或多个其他网络设备相连。多条链路用于以负载分担的方式分担流量。可选地,网络设备采用等价多路径路由(equal-cost multi-path routing,ECMP)的方式,从多条链路中选择用于转发数据流的链路,或者采用ECMP之外的负载分担方式,本实施例对网络设备采用的负载分担方式不做限定。
以采用spine-leaf架构为例,例如,一个leaf节点与一个spine节点之间通过多条链路相连。当leaf节点接收到计算设备发送的数据流时,leaf节点可以采用ECMP的方式,从本节点与一个spine节点之间的多条物理链路中选择一条物理链路,通过选择的物理链路向spine节点发送数据流。当spine节点向目的计算设备连接的leaf节点发送数据流时,spine节点可以采用ECMP的方式,从本节点与目的计算设备连接的leaf节点之间的多条物理链路中选择一条物理链路,通过选择的物理链路向目的计算设备连接的leaf节点发送数据流。如此,该多条链路以负载分担的方式承担转发同一个leaf节点与同一个spine节点之间的流量,同理地,在一个leaf节点与多个spine节点连接的场景下,一个leaf节点与多个spine节点之间的物理链路也可以通过ECMP的方式选路。
根据本申请一些实施例,通过改进网络设备分发数据流的方法,配合计算设备的网络地址规划,从而解决哈希冲突问题,实现流量均衡。
例如,在网络规划阶段,设置系统中多个计算设备的网络地址,使得同一个leaf节点连接的多个计算设备的网络地址取余后不同。在任务执行阶段,在计算设备之间传输数据流的过程中,网络设备采用数据流中携带的网络地址取余,基于得到的余数,选择用于转发该数据流的链路,通过选择的链路转发计算设备之间的数据流。由于数据流中携带的网络地址即为计算设备的网络地址,针对不同计算设备的数据流取余后得到的余数是不同的,因此为不同计算设备的数据流选择的链路也是不同的,因此不同计算设备的数据流能通过不同链路转发,从而避免哈希冲突。
以上描述的在网络地址规划阶段,对计算设备的网络地址取余,例如是使用网络地址与上行链路的数目进行相除,得到余数。上述上行链路数目例如是从一个leaf节点到该leaf节点连接的spine节点之间链路的数目。在一个leaf节点连接n个spine节点的情况下,上述上行链路数目例如是从该leaf节点到spine节点1的链路数目、该leaf节点到spine节点2的链路数目……该leaf节点到spine节点n的链路数目之和,n为大于或等于1的正整数。
在一些实施例中,同一个leaf节点连接的多个计算设备的网络地址与该leaf节点连接的上行链路的数目取余后,在哈希环中连续。哈希环用于指示余数的取值范围。哈希环中连续包括而不限于两种情况。例如,如果两个网络地址取余后,得到的两个余数的取值之间相差1,则2个余数在哈希环中连续的,则可以将这两个网络地址设置为两个计算设备的网络地址。又如,如果两个网络地址取余后,得到的两个余数的取值,分别是余数最大值和余数的最小值,这种情况相当于取余后分别取到环尾和环首,也算作满足哈希环中连续,可以将这2个网络地址设置为两个计算设备的网络地址。
在一个示例性场景中,一个leaf节点连接了3个计算设备,该leaf节点连接了8条上行链路,哈希环中包括0、1、2……7。在一种可能的实现中,在网络地址规划时,设置这3个计算设备的网络地址的主机字段分别是0、1、2,则3个计算设备的网络地址与8取余后分别是0、1、2,而0、1、2这3个值在哈希环中连续。根据上述网络地址的规划方式,leaf节点在转发这三个计算设备的数据流时,会将三个计算设备的数据流分别通过链路0、链路1和链路2这三条上行链路转发,从而避免三个计算设备的数据流占用同一条上行链路,实现流量均衡。在另一种可能的实现中,在网络地址规划时,设置这3个计算设备的网络地址的主机字段分别是7、8、9,则3个计算设备的网络地址与8取余后分别是7、0、1,而7、0、1这3个值在哈希环中连续。根据上述网络地址的规划方式,leaf节点在转发这三个计算设备的数据流时,会将三个计算设备的数据流分别通过链路7、链路0和链路1这三条上行链路转发,从而避免三个计算设备的数据流占用同一条上行链路,实现流量均衡。
图2是本申请实施例提供的一种流量均衡方法的流程图。图2所示方法所基于的系统架构如图1所示。图2所示方法适用于spine-leaf架构,也适用于Clos网络架构或者更多层数的网络。图2所示方法包括以下S201至S204。
S201、网络设备接收数据流。
数据流包括第一计算设备的网络地址。
S202、网络设备基于第一计算设备的网络地址取余,得到余数。
S203、网络设备基于余数,从多条链路中选择第一链路。
S204、网络设备通过第一链路发送数据流。
本实施例提供的方法,网络设备通过采用数据流的网络地址取余的方式,转发数据流,能够将不同数据流分发至不同物理链路上,从而避免上行哈希冲突和下行哈希冲突导致流量不均衡。
此外,由于采用逐流分发的方式,同一条数据流中的各个报文通过相同的链路转发,从而避免将数据流中不同报文通过不同链路转发导致乱序,从而无需计算设备的网卡支持乱序重排。
在一些实施方式中,第一计算设备的网络地址取余后得到的余数与第二计算设备的网络地址取余后得到的余数不同,第二计算设备是与第一计算设备连接了同一个leaf节点的任一个计算设备。
在一些实施方式中,数据流的源地址包括第一计算设备的网络地址,网络设备为接入节点;网络设备基于余数,从多条上行链路中选择第一链路。
根据该实施方式,由于接入节点使用源地址取余的方式转发数据流,从而避免同一个接入节点到同一个汇聚节点之间的多条上行链路上哈希冲突,在上行方向上流量均衡。
在一些实施方式中,在存在至少一个汇聚节点的场景下,一个接入节点与至少一个汇聚节点连接,一个接入节点和一个汇聚节点之间具有一条或多条链路。所有接入节点与同一个汇聚节点之间的一条或多条链路在该汇聚节点侧网络地址的大小排位分布相同。汇聚节点侧网络地址的大小排位分布是指一个接入节点和一个汇聚节点的一条或多条链路在汇聚节点侧的网络地址,在该接入节点和多个汇聚节点的所有链路在汇聚节点侧的网络地址中的大小排位的集合。
其中,本申请对上述集合内元素的顺序不做限定,即,网络地址大小排位顺序只在接入节点与多个汇聚节点的链路组之间有要求,在链路组内没有要求,链路组是指一个接入节点与一个汇聚节点的一条或者多条链路。例如,在存在两个leaf交换机和两个spine交换机的场景下,可以规划交换机spine1与交换机leaf1连接的网络地址均大于交换机spine2与交换机leaf1连接的网络地址,同时交换机spine1与交换机leaf2连接的网络地址均大于交换机spine2与交换机leaf2连接的网络地址。例如,对交换机spine1与交换机leaf1的多条链路间的网络地址大小排位顺序没有要求,与此同理,对其他链路组内的链路之间的网络地址大小排位顺序没有要求。
根据上述实施方式,能够在多任务并发的场景下实现不同汇聚节点之间流量均衡。
以上以第一汇聚节点以及第二汇聚节点这两个汇聚节点为例描述,在存在两个以上的汇聚节点的场景下,采用类似的方式配置其他汇聚节点的网络地址。
在一些实施方式中,数据流的目的地址包括第一计算设备的网络地址,网络设备为汇聚节点;网络设备基于余数,从网络设备与目的接入节点之间的多条下行链路中选择第一链路。目的接入节点为第一计算设备连接的接入节点,即目的计算设备所在的接入节点。
根据该实施方式,由于汇聚节点使用目的地址取余的方式转发数据流,从而避免同一个汇聚节点到同一个接入节点之间的多条下行链路上哈希冲突,在下行方向上流量均衡。
在一些实施方式中,方法还包括:调度设备基于多个计算设备的网络地址或者多个计算设备与多个网络设备之间的连接关系中至少一项,调度多个计算设备处理任务,多个计算设备包括第一计算设备,任务的处理过程包括多个计算设备中不同计算设备之间传输数据流的过程。
根据上述实施方式,支持亲和性调度,能够在集群规模较大时,实现多任务并发情况下多个汇聚交换机之间流量均衡。
在一些实施方式中,调度设备对多个计算设备的网络地址进行取余,得到每个计算设备的余数;调度设备对同一个接入节点连接的多个计算设备网络地址的余数按照从大到小的顺序进行排序,或者对同一个接入节点连接的多个计算设备网络地址的余数按照从小到大的顺序进行排序,得到每个计算设备的网络地址排位。调度设备基于多个计算设备的网络地址排位或者多个计算设备与多个网络设备之间的连接关系中至少一项,调度多个计算设备处理任务。
网络地址排位是指网络地址取余后相较于本接入节点下所有计算设备的网络地址取余后的顺序。例如,第一计算设备连接第一接入节点,第二计算设备连接第二接入节点,例如,第一计算设备的网络地址排位为第一计算设备的网络地址取余后得到的余数相较于第一接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序,第二计算设备的网络地址排位为第二计算设备的网络地址取余后得到的余数相较于第二接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序。
以第一任务的调度过程为例,在一些实施方式中,任务调度过程包括:调度设备将第一任务中的第一子任务分配给第一计算设备,将第一任务中的第二子任务分配给第二计算设备,第一计算设备与第二计算设备连接了同一个接入节点。
根据上述实施方式,由于将同一个任务中的不同子任务调度给同一个接入节点下的不同计算设备,从而实现亲和性调度,这样同一个任务的数据流通过一个接入节点转发即可,无需通过汇聚节点转发,从而避免哈希冲突导致流量不均衡。此外,由于数据流只需经过一跳转发,从而提升转发数据流的性能。
上述实施方式以一个任务分配给两个接入节点下的两个计算设备为例描述,在存在更多数量的接入节点的情况下,将一个任务分配给多个接入节点下的多个计算设备。
以第一任务的调度过程为例,在一些实施方式中,任务调度过程包括:调度设备将第一任务中的第一子任务分配给第一计算设备,将第一任务中的第二子任务分配给第二计算设备。第一计算设备的网络地址排位与第二计算设备的网络地址排位相同。
以第一任务和第二任务的调度过程为例,在一些实施方式中,任务调度过程包括:调度设备将第一任务分配给第一计算设备,将第二任务分配给第二计算设备,第一计算设备和第二计算设备均连接第一接入节点,第一计算设备的网络地址与多条链路的数目取余后得到的余数与第二计算设备的网络地址与多条链路的数目取余后得到的余数不同。
在一些实施方式中,方法还包括:
第一计算设备获取第一计算设备连接的接入节点的标识;第一计算设备向调度设备发送第一计算设备的网络地址以及接入节点的标识。
接入节点的标识例如是接入节点的名称或者其他能够标识接入节点的信息。
根据上述实施方式,无需将调度设备连接到参数面或者其他业务平面、存储面等,即可使得调度设备能够感知计算设备的网络地址以及计算设备与网络设备之间的连接关系,从而方便网络之间的隔离以及网络的部署。其中,参数面也称计算平面,是指用于同步梯度、参数或其他计算结果的网络平面。
在一些实施方式中,第一计算设备通过链路层发现协议(link layer discoveryprotocol,LLDP)协议,获取第一计算设备连接的接入节点的标识。例如,第一计算设备上部署LLDP代理,通过该LLDP代理获取接入节点的标识。
下面结合一个具体的应用场景,对图2所示实施例举例说明。下述应用场景中,leaf交换机是图2所示实施例中接入节点的示例,spine交换机是图2所示实施例中汇聚节点的示例。当AI服务器中每个加速器对应一个网络接口时,AI服务器中每个AI加速器是图2所示实施例中一个计算设备的示例;当AI服务器中多个AI加速器对应一个网络接口时,多个AI加速器和一个网络接口是图2所示实施例中一个计算设备的示例,或者,一个AI加速器和一个网络接口是图2所示实施例中一个计算设备的示例,即该网络接口会被使用多次,其网络地址存在多个相同的排位值;当AI服务器中一个AI加速器对应多个网络接口时,由于多个网络接口通过绑定或者其他方式虚拟为一个网络接口,该多个网络接口只有一个网络地址,则一个AI加速器和该多个网络接口是图2所示实施例中一个计算设备的示例。AI训练任务是图2所示实施例中任务的具体示例。
图3是本申请实施例提供的一种深度学习训练场景下网络系统的架构图。图4是图3所示场景的简化示意。如图3或图4所示,在深度学习训练集群中,每台AI服务器中可能配置有8个AI加速器。AI加速器例如NPU或GPU等。每个AI加速器通过一个网络接口连接到leaf交换机,该网络接口可以是AI加速器本身的网络接口,也可以是AI服务器中的网卡的网络接口。各个AI服务器以及各个交换机形成一个集群网络平面。该集群网络平面也称为参数面网络或者计算网络平面。AI加速器运行集合通信算法,通过该集群网络平面进行梯度同步。
在图3所示场景中,一个leaf交换机有64个接口,这64个接口包括用于上行通信的32个接口以及用于下行通信的32个接口。每台leaf交换机可对接4台AI服务器。AI服务器上部署LLDP代理,LLDP代理用于通过LLDP协议获取其对接的leaf交换机信息。在AI服务器的网卡的网络接口与leaf交换机相连的情况下,例如在AI服务器的CPU上部署LLDP代理。在AI加速器的网络接口与leaf交换机相连的情况下,例如在AI加速器上部署LLDP代理。
可选地,图3所示场景还包括一个网络平面,该网络平面用于供调度器与AI服务器通信。调度器与AI服务器通过该网络平面进行信息交互与任务调度。其中,调度器例如是volcano调度器。volcano是基于Kubernetes(k8s,一种容器编排器)的批处理系统。调度器例如部署在k8s主(master)节点。AI服务器例如提供为工作(worker)节点。调度器通过LLDP代理获取AI服务器参数面所连接的leaf交换机信息,在任务调度时进行亲和性调度,以解决多任务时,多spine间流量不均衡问题。
在以上描述的深度学习训练场景下,参数面网络是关键的通信网络。通过在参数面网络中实施图2所示方法,从而避免哈希冲突,实现参数面网络的流量均衡。下面对如何在深度学习训练场景下实现流量均衡举例说明。
例如,参数面网络采用ECMP负载分担。leaf交换机的ECMP负载分担的哈希算法为直接取余的哈希算法,spine交换机上的ECMP负载分担的哈希算法上也为直接取余的哈希算法。leaf交换机的负载分担模式配置为基于源网络地址负载分担,spine交换机的负载分担模式配置为基于目的网络地址负载分担。AI服务器按顺序连接leaf交换机的网络接口。
规划AI加速器的网络接口的网络地址,使得同一个leaf交换机下所有AI加速器的网络地址与该leaf交换机的上行链路的数目取余后,余数不同。例如,同一个leaf交换机下所有AI加速器的网络地址的主机字段连续递增。
例如,在存在多个spine交换机的场景下,一个leaf交换机与多个spine交换机连接,一个leaf交换机和一个spine交换机之间具有一条或多条链路。所有leaf交换机与同一个spine交换机之间的一条或多条链路在spine侧网络地址的大小排位分布相同。spine侧网络地址的大小排位分布是指一个leaf交换机和一个spine交换机的一条或多条链路在spine侧的网络地址,在该leaf交换机和多个spine交换机的所有链路在spine侧的网络地址中大小排位的集合。
以针对图3所示场景中交换机spine1以及交换机spine2进行地址规划为例,例如,交换机spine1与交换机leaf1之间存在k条链路。该k条链路中每条链路通过交换机spine1的一个网络地址与交换机leaf1的一个网络地址建立。交换机spine2与交换机leaf1之间存在m条链路。该m条链路中每条链路通过交换机spine2的一个网络地址与交换机leaf1的一个网络地址建立。上述k条链路中每条链路在交换机spine1上的网络地址均大于m条链路中每条链路在交换机spine2上的网络地址,或者,k条链路中每条链路在交换机spine1上的网络地址均小于m条链路中每条链路在交换机spine2上的网络地址。
以上描述的针对2个spine交换机的地址规划方式可以适用于3个、4个或者更多数量的spine交换机。例如,请参考图5,对图5中交换机spine1、交换机spine2、交换机spine3以及交换机spine4分别进行地址规划,使得交换机spine1、交换机spine2、交换机spine3以及交换机spine4上连leaf交换机1的接口的网络地址在大小上不存在交叉。同理地,这种地址规划方式可以适用于更多数量的leaf交换机,例如,交换机spine1、交换机spine2、交换机spine3以及交换机spine4上连leaf交换机2的接口的网络地址在大小上也不存在交叉。
通过以上的负载分担模式、取余的哈希算法以及网络地址配置规则,能够让不同AI加速器的数据流从leaf交换机上行到spine交换机时,能够分发到不同的物理链路上,从而避免了上行方向上哈希冲突。同时,也保证了从spine交换机发往不同AI加速器的数据流能够分发到不同的物理链路上,从而避免了下行方向上的哈希冲突。
如图5所示,1个leaf交换机下对接4台AI服务器。每个AI服务器上有8个AI加速器,每个AI加速器具有一个编号。例如,AI加速器的编号、AI服务器的编号和网络地址取余后的值的关系是:AI加速器编号*4+服务器编号-1=网络地址取余后的余数。通过采用这种地址规划方式,同一个服务器下的不同AI加速器的流量会被分发到不同的spine交换机上,在服务器间只有同编号的AI加速器进行通信的场景下,减少了对调度器的依赖,使得只有集群规模很大,从而spine交换机的个数大于一个leaf交换机与一个spine交换机的个数时,才需要依赖调度器做亲和性调度。
为简明起见,图5、图6、图7以及图8中,用“L+leaf交换机编号+server+一个leaf交换机下的服务器编号”的形式来简化表示上述具体的服务器,如交换机leaf1连接的编号为1的AI服务器简化表示为“L1-server1”,L为leaf的缩写。此外,图5、图6、图7以及图8中,为了区分不同任务的数据流,用实线带箭头的线条表示任务1的数据流,用虚线带箭头的线条表示任务2的数据流。图5中x8表示用一根线条表示8条链路。图6中x2表示用一根线条表示2条链路。
在AI分布式训练场景,由于集合通信模式比较固定,可以设定不同AI服务器间只有固定编号的AI加速器进行通信。例如设定不同AI服务器间只有相同编号的AI加速器进行通信。
通过规划AI加速器网络接口的网络地址以及spine交换机的各网络接口的网络地址,可以使得各leaf交换机下Lx-server1~Lxserver4的AI加速器0和AI加速器1,总共8个AI加速器的参数面上行数据流分发到spine1的8条物理链路上,如图5中虚线圈起来的AI加速器的参数面上行数据流。AI加速器2和AI加速器3的参数面上行数据流分发到交换机spine2的8条物理链路上,以此类推,AI加速器2和AI加速器3,AI加速器4和AI加速器5,AI加速器6和AI加速器7的上行数据流分别分发到不同的spine交换机上。
在一个示例性场景中,同时有两个AI训练任务,任务1和任务2,任务1包含两台AI服务器L1-server1和L2-server1的16个AI加速器进行分布式训练,任务2包含两台AI服务器L4-server1和L2-server3的16个AI加速器进行分布式训练。任务1从spine1下发到leaf2的数据流的目的地址是L2-server1的AI加速器0和1,任务2从spine1下发到leaf2的数据流的目的地址是L2-server3的AI加速器0和1。通过上述网络地址规划规定以及spine交换机的负载分担模式和哈希算法,可保证该4条下行数据流被分发到spine1和leaf1的4条不同的物理链路上,从而保证多spine间的选路不会导致流量冲突。
考虑到随着集群规模的增长,spine交换机的台数不断增加,一台leaf交换机与一台spine交换机之间的物理链路不断减少,任务1和任务2并发时将出现多spine间流量不均衡,通过调度平台的调度机制配合服务器的位置感知进行亲和性调度,使得上行流量分散到不同的spine交换机,从而解决多spine间流量不均衡。
任务调度平台一般部署在业务管理面,本实施例以任务调度平台部署于k8s为例进行说明。任务调度平台一般包含两种节点,worker节点和master节点,AI服务器属于worker节点,是其调度的对象。在AI服务器(通常是通过AI服务器的网卡的网络接口连接leaf交换机的场景)或者AI加速器(通常是通过AI加速器自身的网络接口连接leaf交换机的场景)上部署LLDP代理。LLDP代理用于通过LLDP协议获取AI服务器对接的leaf交换机的标识,例如获取leaf交换机的名称或者其他能够标识leaf交换机的信息。在master节点上部署调度器,调度器例如volcano,volcano与LLDP代理通信以获取并汇总AI服务器或AI加速器所对接的leaf交换机的信息。调度器通过该信息,并通过亲和性规则进行多任务的AI服务器调度,从而避免出现多spine间流量不均衡。
例如,亲和性调度可以采用如下调度方式(1)和调度方式(2)。
调度方式(1)同一任务优先调度同一leaf交换机下的AI服务器。
调度方式(2)同一任务需要跨leaf交换机调度时,可以调度多个leaf交换机下相同位置的AI服务器,即调度多个leaf交换机下网络地址排位相同的AI服务器。
如图7所示,由于采用调度方式(2),例如,此时,任务2调度到L2-server3和L4-server3上,根据负载分担模式、取余的哈希算法以及网络地址的规划规则,会将任务2的L4-server3编号0的AI加速器到L2-server3编号0的AI加速器的数据流分发到交换机spine2上,从而避免了在交换机spine1发生多流冲突。
同一任务跨leaf交换机调度时,还可以采用以下调度方式(3)。
调度方式(3)需要跨leaf交换机调度时,同一leaf下网络地址与leaf-spine物理链路数(同一leaf与同一spine的物理链路数)取余后余数不同的AI服务器可以分配给不同的任务。
如图8所示,例如,此时,任务2调度到L2-server2和L4-server1上,用于处理任务1的L1-server1编号0的AI加速器发送给L2-server1编号0的AI加速器的数据流,和用于处理任务2的L4-server1编号0的AI加速器发送给L2-server2编号0的AI加速器的数据流,被分发到同一个交换机spine 1上,但由于从交换机spine1下行到交换机leaf2时,两条数据流能够被分发到不同的物理链路上,从而避免了多流冲突。
以上实施例以如何在spine-leaf网络中实现流量均衡为例描述,上述实施例对于Clos网络架构的网络也同样适用。在更多层的网络中进行亲和性调度时,可以通过确定更多层中设备的网络地址以及不同层之间设备的连接关系,从而在调度时达到更好的效果。例如,在3层胖树中,通过在AI服务器上的LLDP代理,不仅获取AI服务器与leaf交换机之间的连接关系,也获取leaf交换机与上一层交换机之间的连接关系。
图9是本申请实施例提供的一种网络设备600的结构示意图。网络设备600包括接收单元601,用于执行S201;处理单元602,用于执行S202和S203;发送单元603,用于执行S204。
处理单元602,用于基于余数,从多条上行链路中选择第一链路。
在一些实施方式中,处理单元602,用于基于余数,从网络设备与目的接入节点之间的多条下行链路中选择第一链路。
图9所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
网络设备600中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。
下面结合后文描述的设备900,描述使用硬件或软件来实现网络设备600中的各个功能单元的一些可能实现方式。
在采用软件实现的情况下,例如,上述处理单元602是由图11中的至少一个处理器901读取存储器902中存储的程序代码后,生成的软件功能单元来实现。
在采用硬件实现的情况下,例如,图9中上述各个单元由设备中的不同硬件分别实现,例如处理单元602由图11中的至少一个处理器901中的一部分处理资源(例如多核处理器中的一个核或两个核)实现,或者采用现场可编程门阵列(field-programmable gatearray,FPGA)、或协处理器等可编程器件来完成。接收单元601和发送单元603由图11中的网络接口903实现。
图10是本申请实施例提供的一种调度设备700的结构示意图。调度设备700包括获取单元701,用于获取多个计算设备的网络地址或者多个计算设备与多个网络设备之间的连接关系;
调度单元702,用于基于多个计算设备的网络地址或者连接关系中至少一项,调度多个计算设备处理任务,多个计算设备包括第一计算设备,任务的处理过程包括多个计算设备中不同计算设备之间传输数据流的过程。
在一些实施方式中,调度单元702,用于将第一任务中的第一子任务分配给第一计算设备,将第一任务中的第二子任务分配给第二计算设备,第一计算设备与第二计算设备连接了同一个接入节点。
在一些实施方式中,调度单元702,用于将第一任务中的第一子任务分配给第一计算设备,将第一任务中的第二子任务分配给第二计算设备,第一计算设备连接第一接入节点,第二计算设备连接第二接入节点,第一计算设备的网络地址排位与第二计算设备的网络地址排位相同,第一计算设备的网络地址排位为第一计算设备的网络地址取余后得到的余数相较于第一接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序,第二计算设备的网络地址排位为第二计算设备的网络地址取余后得到的余数相较于第二接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序。
在一些实施方式中,调度单元702,用于将第一任务分配给第一计算设备,将第二任务分配给第二计算设备,第一计算设备和第二计算设备均连接第一接入节点,第一计算设备的网络地址与多条链路的数目取余后得到的余数与第二计算设备的网络地址与多条链路的数目取余后得到的余数不同。
在一些实施方式中,获取单元701,用于从第一计算设备接收第一计算设备的网络地址以及接入节点的标识。
图10所描述的装置实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
调度设备700中的各个单元全部或部分地通过软件、硬件、固件或者其任意组合来实现。
下面结合后文描述的设备900,描述使用硬件或软件来实现调度设备700中的各个功能单元的一些可能实现方式。
在采用软件实现的情况下,例如,上述获取单元701和调度单元702是由图11中的至少一个处理器901读取存储器902中存储的程序代码后,生成的软件功能单元来实现。
在采用硬件实现的情况下,例如,图10中上述各个单元由设备900中的不同硬件分别实现,例如调度单元702由图11中的至少一个处理器901中的一部分处理资源(例如多核处理器中的一个核或两个核)实现,而获取单元701由图11中至少一个处理器901中的其余部分处理资源(例如多核处理器中的其他核),或者采用现场可编程门阵列(field-programmable gate array,FPGA)、或协处理器等可编程器件来完成,或者由图11中的网络接口903实现。
图11是本申请实施例提供的一种设备900的结构示意图。设备900例如为上述方法实施例中的网络设备(如接入节点或者汇聚节点)、调度设备或者计算设备。
设备900包括至少一个处理器901、存储器902以及至少一个网络接口903。
处理器901例如是通用中央处理器(central processing unit,CPU)、网络处理器(network processer,NP)、图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processing units,NPU)、数据处理单元(data processing unit,DPU)、微处理器或者一个或多个用于实现本申请方案的集成电路。例如,处理器901包括专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。PLD例如是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器902例如是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,又如是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,又如是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。可选地,存储器902独立存在,并通过内部连接904与处理器901相连接。或者,可选地存储器902和处理器901集成在一起。
网络接口903使用任何收发器一类的装置,用于与其它设备或通信网络通信。网络接口903例如包括有线网络接口或者无线网络接口中的至少一项。其中,有线网络接口例如为以太网接口。以太网接口例如是光接口,电接口或其组合。无线网络接口例如为无线局域网(wireless local area networks,WLAN)接口,蜂窝网络网络接口或其组合等。
在一些实施例中,处理器901包括一个或多个CPU,如图11中所示的CPU0和CPU1。
在一些实施例中,设备900可选地包括多个处理器,如图11中所示的处理器901和处理器905。这些处理器中的每一个例如是一个单核处理器(single-CPU),又如是一个多核处理器(multi-CPU)。这里的处理器可选地指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在一些实施例中,设备900还包括内部连接904。处理器901、存储器902以及至少一个网络接口903通过内部连接904连接。内部连接904包括通路,在上述组件之间传送信息。可选地,内部连接904是单板或总线。可选地,内部连接904分为地址总线、数据总线、控制总线等。
在一些实施例中,设备900还包括输入输出接口906。输入输出接口906连接到内部连接904上。
可选地,处理器901通过读取存储器902中保存的程序代码实现上述实施例中的方法,或者,处理器901通过内部存储的程序代码实现上述实施例中的方法。在处理器901通过读取存储器902中保存的程序代码实现上述实施例中的方法的情况下,存储器902中保存实现本申请实施例提供的方法的程序代码910。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分可互相参考,每个实施例重点说明的都是与其他实施例的不同之处。
A参考B,指的是A与B相同或者A为B的简单变形。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序,也不能理解为指示或暗示相对重要性。例如,第一接入节点和第二接入节点用于区别不同的接入节点,而不是用于描述接入节点的特定顺序,也不能理解为第一接入节点比第二接入节点更重要。
本申请实施例,除非另有说明,“至少一个”的含义是指一个或多个,“多个”的含义是指两个或两个以上。例如,多个汇聚节点是指两个或两个以上的汇聚节点。
上述实施例可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例描述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (25)
1.一种流量均衡方法,其特征在于,应用于网络系统,所述网络系统包括所述网络设备以及第一计算设备,所述方法包括:
网络设备接收数据流,所述数据流包括所述第一计算设备的网络地址;
所述网络设备基于所述第一计算设备的网络地址取余,得到余数;
所述网络设备基于所述余数,从多条链路中选择第一链路;
所述网络设备通过所述第一链路发送所述数据流。
2.根据权利要求1所述的方法,其特征在于,所述第一计算设备的网络地址取余后得到的余数与第二计算设备的网络地址取余后得到的余数不同,所述第二计算设备是与所述第一计算设备连接了同一个接入节点的任一个计算设备。
3.根据权利要求1或2所述的方法,其特征在于,所述数据流的源地址包括所述第一计算设备的网络地址,所述网络设备为接入节点;
所述网络设备基于所述余数,从多条链路中选择第一链路,包括:
所述网络设备基于所述余数,从多条上行链路中选择第一链路。
4.根据权利要求3所述的方法,其特征在于,所述网络系统包括至少一个汇聚节点以及至少一个接入节点,一个接入节点与至少一个汇聚节点连接,一个接入节点与一个汇聚节点之间具有一条或多条链路,所述网络系统中所有接入节点与同一个汇聚节点之间的一条或多条链路在汇聚节点侧网络地址的大小排位分布相同,所述汇聚节点侧的网络地址的大小排位分布是指一个接入节点和一个汇聚节点的一条或者多条链路的汇聚节点侧的网络地址,在所述接入节点和至少一个汇聚节点的所有链路的汇聚节点侧网络地址中的大小排位的集合。
5.根据权利要求1或2所述的方法,其特征在于,所述数据流的目的地址包括所述第一计算设备的网络地址,所述网络设备为汇聚节点;
所述网络设备基于所述余数,从多条链路中选择第一链路,包括:
所述网络设备基于所述余数,从所述网络设备与目的接入节点之间的多条下行链路中选择第一链路,所述目的接入节点为所述第一计算设备连接的接入节点。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述网络系统还包括调度设备,所述方法还包括:
所述调度设备基于多个计算设备的网络地址或者所述多个计算设备与多个网络设备之间的连接关系中至少一项,调度所述多个计算设备处理任务,所述多个计算设备包括所述第一计算设备,所述任务的处理过程包括所述多个计算设备中不同计算设备之间传输数据流的过程。
7.根据权利要求6所述的方法,其特征在于,所述任务包括第一任务,所述调度设备基于所述多个计算设备的网络地址或者所述多个计算设备与多个网络设备之间的连接关系中至少一项,调度所述多个计算设备处理任务,包括:
所述调度设备将所述第一任务中的第一子任务分配给所述第一计算设备,将所述第一任务中的第二子任务分配给第二计算设备,所述第一计算设备与所述第二计算设备连接了同一个接入节点。
8.根据权利要求6所述的方法,其特征在于,所述任务包括第一任务,所述调度设备基于所述多个计算设备的网络地址或者所述多个计算设备与多个网络设备之间的连接关系中至少一项,调度所述多个计算设备处理任务,包括:
所述调度设备将所述第一任务中的第一子任务分配给所述第一计算设备,将所述第一任务中的第二子任务分配给第二计算设备,所述第一计算设备连接第一接入节点,所述第二计算设备连接第二接入节点,所述第一计算设备的网络地址排位与所述第二计算设备的网络地址排位相同,所述第一计算设备的网络地址排位为所述第一计算设备的网络地址取余后得到的余数相较于所述第一接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序,所述第二计算设备的网络地址排位为所述第二计算设备的网络地址取余后得到的余数相较于所述第二接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序。
9.根据权利要求6所述的方法,其特征在于,所述调度设备基于所述多个计算设备的网络地址或者所述多个计算设备与多个网络设备之间的连接关系中至少一项,调度所述多个计算设备处理任务,包括:
所述调度设备将所述第一任务分配给第一计算设备,将所述第二任务分配给第二计算设备,所述第一计算设备和第二计算设备均连接所述第一接入节点,所述第一计算设备的网络地址与所述多条链路的数目取余后得到的余数与所述第二计算设备的网络地址与所述多条链路的数目取余后得到的余数不同。
10.根据权利要求6至9中任一项所述的方法,其特征在于,所述调度设备基于所述多个计算设备的网络地址或者所述多个计算设备与多个网络设备之间的连接关系中至少一项,调度所述多个计算设备处理任务之前,所述方法还包括:
所述第一计算设备获取所述第一计算设备连接的接入节点的标识;
所述第一计算设备向所述调度设备发送所述第一计算设备的网络地址以及所述接入节点的标识。
11.根据权利要求10所述的方法,其特征在于,所述第一计算设备获取所述第一计算设备连接的接入节点的标识,包括:
所述第一计算设备通过链路层发现协议LLDP协议,获取所述第一计算设备连接的接入节点的标识。
12.一种网络设备,其特征在于,所述网络设备包括:
接收单元,用于接收数据流,所述数据流包括第一计算设备的网络地址;
处理单元,用于基于所述第一计算设备的网络地址取余,得到余数;
所述处理单元,还用于基于所述余数,从多条链路中选择第一链路;
发送单元,用于通过所述第一链路发送所述数据流。
13.根据权利要求12所述的网络设备,其特征在于,所述第一计算设备的网络地址取余后得到的余数与第二计算设备的网络地址取余后得到的余数不同,所述第二计算设备是与所述第一计算设备连接了同一个接入节点的任一个计算设备。
14.根据权利要求12或13所述的网络设备,其特征在于,所述数据流的源地址包括所述第一计算设备的网络地址,所述网络设备为接入节点;
所述处理单元,用于基于所述余数,从多条上行链路中选择第一链路。
15.根据权利要求12或13所述的网络设备,其特征在于,所述处理单元,用于基于所述余数,从所述网络设备与目的接入节点之间的多条下行链路中选择第一链路,所述目的接入节点为所述第一计算设备连接的接入节点。
16.一种网络系统,其特征在于,所述网络系统包括至少一个汇聚节点以及至少一个接入节点,所述汇聚节点或者所述接入节点用于执行如权利要求1至权利要求5中任一项所述的方法。
17.根据权利要求16所述的网络系统,其特征在于,所述网络系统包括至少一个汇聚节点以及至少一个接入节点,一个接入节点与至少一个汇聚节点连接,一个接入节点与一个汇聚节点之间具有一条或多条链路,所述网络系统中所有接入节点与同一个汇聚节点之间的一条或多条链路在汇聚节点侧网络地址的大小排位分布相同,所述汇聚节点侧的网络地址的大小排位分布是指一个接入节点和一个汇聚节点的一条或者多条链路的汇聚节点侧的网络地址,在所述接入节点和至少一个汇聚节点的所有链路的汇聚节点侧网络地址中的大小排位的集合。
18.根据权利要求16或17所述的网络系统,其特征在于,所述网络系统还包括调度设备,所述调度设备,用于基于多个计算设备的网络地址或者所述多个计算设备与多个网络设备之间的连接关系中至少一项,调度所述多个计算设备处理任务,所述多个计算设备包括所述第一计算设备,所述任务的处理过程包括所述多个计算设备中不同计算设备之间传输数据流的过程。
19.根据权利要求18所述的网络系统,其特征在于,所述调度设备用于将第一任务中的第一子任务分配给所述第一计算设备,将所述第一任务中的第二子任务分配给第二计算设备,所述第一计算设备与所述第二计算设备连接了同一个接入节点。
20.根据权利要求18所述的网络系统,其特征在于,所述调度设备用于将第一任务中的第一子任务分配给所述第一计算设备,将所述第一任务中的第二子任务分配给第二计算设备,所述第一计算设备连接第一接入节点,所述第二计算设备连接第二接入节点,所述第一计算设备的网络地址排位与所述第二计算设备的网络地址排位相同,所述第一计算设备的网络地址排位为所述第一计算设备的网络地址取余后得到的余数相较于所述第一接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序,所述第二计算设备的网络地址排位为所述第二计算设备的网络地址取余后得到的余数相较于所述第二接入节点连接的其他计算设备的网络地址取余后得到的余数的顺序。
21.根据权利要求18所述的网络系统,其特征在于,所述调度设备用于将第一任务分配给第一计算设备,将第二任务分配给第二计算设备,所述第一计算设备和第二计算设备均连接所述第一接入节点,所述第一计算设备的网络地址与所述多条链路的数目取余后得到的余数与所述第二计算设备的网络地址与所述多条链路的数目取余后得到的余数不同。
22.根据权利要求18至21中任一项所述的网络系统,其特征在于,所述网络系统包括第一计算设备,所述第一计算设备,用于获取所述第一计算设备连接的接入节点的标识;向所述调度设备发送所述第一计算设备的网络地址以及所述接入节点的标识。
23.根据权利要求22所述的网络系统,其特征在于,所述第一计算设备用于通过链路层发现协议LLDP协议,获取所述第一计算设备连接的接入节点的标识。
24.一种网络设备,其特征在于,所述网络设备包括处理器和网络接口,所述处理器用于执行指令,使得所述网络设备执行如权利要求1至权利要求5中任一项所述的方法,所述网络接口用于接收或发送报文。
25.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令在计算机上运行时,使得计算机执行如权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211199414.2A CN117793800A (zh) | 2022-09-29 | 2022-09-29 | 流量均衡方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211199414.2A CN117793800A (zh) | 2022-09-29 | 2022-09-29 | 流量均衡方法、设备及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117793800A true CN117793800A (zh) | 2024-03-29 |
Family
ID=90382198
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211199414.2A Pending CN117793800A (zh) | 2022-09-29 | 2022-09-29 | 流量均衡方法、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117793800A (zh) |
-
2022
- 2022-09-29 CN CN202211199414.2A patent/CN117793800A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101341474B (zh) | 用于对事务重排序来确保每个事务所规定的服务质量的仲裁方法 | |
CN105812276B (zh) | 采用多核处理器的报文转发自适应系统和方法 | |
US10572290B2 (en) | Method and apparatus for allocating a physical resource to a virtual machine | |
CN111682891B (zh) | 一种面向高动态卫星网络的虚拟网络映射方法 | |
KR102181640B1 (ko) | 재구성가능한 분산 처리 | |
Tsai et al. | Two-tier multi-tenancy scaling and load balancing | |
CN111835849B (zh) | 增强接入网服务能力的方法和装置 | |
CN105391651B (zh) | 一种虚拟光网络多层资源汇聚方法和系统 | |
CN116235469A (zh) | 网络芯片和网络设备 | |
WO2020134133A1 (zh) | 一种资源配置方法、变电站及计算机可读存储介质 | |
CN112073237B (zh) | 一种云边架构中大规模目标网络构建方法 | |
JP5952214B2 (ja) | 仮想マシンの動的配置方法及び仮想マシンシステム | |
CN105468546B (zh) | 互连电路的数据处理装置和方法 | |
CN102447609B (zh) | 一种虚拟化资源系统中虚拟节点的部署方法及装置 | |
Tseng et al. | An mec-based vnf placement and scheduling scheme for ar application topology | |
CN108028806A (zh) | 网络功能虚拟化nfv网络中分配虚拟资源的方法和装置 | |
JP5420477B2 (ja) | 情報サービスシステム | |
CN114363248A (zh) | 计算系统、加速器、交换平面及聚合通信方法 | |
CN117793800A (zh) | 流量均衡方法、设备及系统 | |
CN105634792A (zh) | 一种配置信息的传输方法和装置 | |
CN105577834A (zh) | 具有可预测性能的云数据中心两层带宽分配方法及系统 | |
CN113395183B (zh) | 网络仿真平台vlan互联的虚拟节点调度方法与系统 | |
US9203733B2 (en) | Method of pseudo-dynamic routing in a cluster comprising static communication links and computer program implementing that method | |
US11513858B2 (en) | System for operating and method for arranging nodes thereof | |
CN111796932A (zh) | 一种gpu资源调度方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |