一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种流量控制方法、系统、计算机设备及可读存储介质与流程

2022-11-23 16:56:59 来源:中国专利 TAG:


1.本发明涉及计算机技术领域,尤其涉及一种流量控制方法、系统、计算机设备及可读存储介质。


背景技术:

2.在统一存储系统中,通过数据同步、镜像映射、冗余备份等功能模块实现了数据安全可靠的性能要求。但是由于数据同步、镜像映射、冗余备份等功能模块,造成了集群节点间存在大量数据通信。除了集群通信高并发高带宽的性能要求,还要保证节点间事件同步的低时延和高实时,避免通信爆发时的拥塞风险。


技术实现要素:

3.有鉴于此,本发明提出了一种流量控制方法、系统、计算机设备及可读存储介质,设计了信用度策略来实现存储系统集群通信的流量控制,信用度策略除了解决早期存储系统集群通信的流量控制问题,还可适配多种协议模型,多种硬件链路类型,并可应对更为复杂的现场环境,为存储系统高性能、高可用、高可靠等目标作出贡献。
4.基于上述目的,本发明实施例的一方面提供了一种流量控制方法,具体包括在传输层执行以下步骤:
5.发起方发起链路建立流程,并基于所述链路在每个信用度值周期发起一个io消息,并将所述io消息发送给目标方;
6.所述目标方接收到所述io消息后,根据所述链路的信息设置所述链路的信用度上限值,并基于所述链路的所述信用度上限值与在当前信用度值周期的信用度值计算得出所述链路的信用度动作值;
7.所述目标方在所述io消息的固定字段设置所述信用度动作值,并将设置了所述信用度动作值的所述io消息返回给所述发起方;
8.所述发起方接收到设置了所述信用度动作值的所述io消息后,在所述返回消息的固定字段解析出所述信用度动作值,并基于所述信用度动作值执行相应的动作。
9.在一些实施方式中,根据所述链路的信息设置所述链路的信用度上限值包括:
10.基于所述链路的类型、端口资源的数量以及所述目标方与所述发起方之间的最大信用度设置所述链路的信用度上限值。
11.在一些实施方式中,所述信用度动作值包括增加、缩减以及不变。
12.在一些实施方式中,基于所述链路的所述信用度上限值与在当前信用度值周期的信用度值计算得出所述链路的信用度动作值包括:
13.用所述链路的所述信用度上限值减去所述链路在当前信用度值周期的所述信用度值,得出计算结果,并对所述计算结果进行判断;
14.响应于所述计算结果大于零,则确定所述链路的所述信用度动作值为增加;
15.响应于所述计算结果小于零,则确定所述链路的所述信用度动作值为缩减;
16.响应于所述计算结果等于零,则确定所述链路的所述信用度动作值为不变。
17.在一些实施方式中,基于所述信用度动作值执行相应的动作包括:
18.响应于所述信用度动作值为增加,则重新发起一个io消息,然后将所述设置了所述信用度动作值的所述io消息销毁回收,并在所述设置了所述信用度动作值的所述io消息销毁回收后,再次发起一个io消息。
19.在一些实施方式中,基于所述信用度动作值执行相应的动作包括:
20.响应于所述信用度动作值为缩减,则将接收到的设置了所述信用度动作值的所述io消息销毁回收。
21.在一些实施方式中,基于所述信用度动作值执行相应的动作包括:
22.响应于所述信用度动作值为不变,则将接收到的设置了所述信用度动作值的所述io消息销毁回收,然后重新发起一个io消息。
23.本发明实施例的另一方面,还提供了一种流量控制系统,包括:
24.发送模块,所述发送模块配置为发起方发起链路建立流程,并基于所述链路在每个信用度值周期发起一个io消息,并将所述io消息发送给目标方;
25.接收模块,所述接收模块配置为所述目标方接收到所述io消息后,根据所述链路的信息设置所述链路的信用度上限值,并基于所述链路的所述信用度上限值与在当前信用度值周期的信用度值计算得出所述链路的信用度动作值;
26.返回模块,所述返回模块配置为所述目标方在所述io消息的固定字段设置所述信用度动作值,并将设置了所述信用度动作值的所述io消息返回给所述发起方;
27.执行模块,所述执行模块配置为所述发起方接收到设置了所述信用度动作值的所述io消息后,在所述返回消息的固定字段解析出所述信用度动作值,并基于所述信用度动作值执行相应的动作。
28.本发明实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述计算机程序由所述处理器执行时实现如上方法的步骤。
29.本发明实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
30.本发明至少具有以下有益技术效果:通过发起方发起链路建立流程,并基于链路在每个信用度值周期发起一个io消息,并将io消息发送给目标方;目标方接收到所述io消息后,根据链路的信息设置链路的信用度上限值,并基于链路的所述信用度上限值与在当前信用度值周期的信用度值计算得出链路的信用度动作值;目标方在io消息的固定字段设置信用度动作值,并将设置了信用度动作值的io消息返回给发起方;发起方接收到设置了信用度动作值的所述io消息后,在返回消息的固定字段解析出信用度动作值,并基于信用度动作值执行相应的动作以控制链路中io消息的数量的方案,避免了集群节点间通信的消息拥塞,实现了高并发与低时延,还可适配多种协议模型,多种硬件链路类型,并可应对更为复杂的现场环境,为存储系统高性能、高可用、高可靠等目标作出贡献。
附图说明
31.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
32.图1为本发明提供的流量控制方法的一实施例的流程图;
33.图2为本发明提供的基于信用度策略进行流量控制的一实施例的流程图;
34.图3为本发明提供的流量控制系统的一实施例的示意图;
35.图4为本发明提供的计算机设备的一实施例的结构示意图;
36.图5为本发明提供的计算机可读存储介质的一实施例的结构示意图。
具体实施方式
37.为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
38.需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
39.基于上述目的,本发明实施例的第一个方面,提出了一种流量控制方法的实施例。如图1所示,方法包括在传输层执行以下步骤:
40.s10、发起方发起链路建立流程,并基于所述链路在每个信用度值周期发起一个io消息,并将所述io消息发送给目标方;
41.s20、所述目标方接收到所述io消息后,根据所述链路的信息设置所述链路的信用度上限值,并基于所述链路的所述信用度上限值与在当前信用度值周期的信用度值计算得出所述链路的信用度动作值;
42.s30、所述目标方在所述io消息的固定字段设置所述信用度动作值,并将设置了所述信用度动作值的所述io消息返回给所述发起方;
43.s40、所述发起方接收到设置了所述信用度动作值的所述io消息后,在所述返回消息的固定字段解析出所述信用度动作值,并基于所述信用度动作值执行相应的动作。
44.步骤s10中,发起方发起链路建立流程,并基于链路在每个信用度值周期发起一个io消息,并将所述io消息发送给目标方。采用信用度值(credit)动态调整链路上并发的io(input/output,输入输出)数量,并按周期调整,每次只发起一个io消息,实现各个io均衡分布于通信全流程的各个环节,不至于单个环节拥堵。
45.步骤s20中,目标方接收到io消息后,根据链路的信息设置链路的信用度上限值,并基于链路的信用度上限值与在当前信用度值周期的信用度值计算得出链路的信用度动作值。根据不同的硬件链路类型设置不同的信用度上限值,充分利用硬件资源。结合路径偏好策略,即将不同类型的硬件链路设置不同的优先级,优先级高的链路类型,设置的信用度上限值大,链路建立之初只有默认的一个io保持链路连通,credit=0,如果该链路是偏好路径则修改信用度上限值;否则维持一个io保持连通,用作备份链路。例如,在pcie多控集群系统,调整信用度设置参数,实现pcie链路高性能特性发挥。在rdma链路基础上搭建的roce互联集群,设置相应的信用度参数,结合nvme协议多队列及队列深度优势,使存储系统性能大幅提高。
46.步骤s30中,目标方在io消息的固定字段设置信用度动作值,并将设置了信用度动作值的io消息返回给所述发起方。信用度动作值包括增加、缩减以及不变。将信用度动作值添加到io消息的固定字段,将添加了信用度动作值的io消息返回给发起方,以通知发起方执行。
47.步骤s40中,发起方接收到设置了信用度动作值的io消息后,在返回消息的固定字段解析出信用度动作值,并基于信用度动作值执行相应的动作以控制链路中io消息的数量。
48.通过上述流量控制方法,满足存储系统集群节点间通信高并发、低时延的性能要求,避免了消息拥塞;还可适配多种协议模型、多种硬件链路类型,可应对更为复杂的现场环境,实现了存储系统的高性能、高可用性、高可靠性。
49.在一些实施方式中,根据所述链路的信息设置所述链路的信用度上限值包括:
50.基于所述链路的类型、端口资源的数量以及所述目标方与所述发起方之间的最大信用度设置所述链路的信用度上限值。
51.在一具体实施例中,为不同链路不同信用度。由于硬件链路物理上的差异,以及在通信性能上存在的先天差异,为保障存储系统稳定可靠,针对不同链路设置不同的信用度上限。具体如下:
52.pcie(peripheral component interconnect express,高速串行计算机扩展总线标准)链路:192;
53.ip链路:64;
54.rdma(remote direct memory access,远程直接数据存取)链路:30*queue_num,即每个链路分配30个io,队列个数由驱动决定;
55.其他链路:(总上限信用度值-已分配值)/余下链路数,其他链路,是指非物理类型的链路,包括:跨框链路、跨集群链路。
56.通过对不同链路和不同的场景设置不同的信用度上限,可充分发挥物理设备的硬件优势。
57.在一具体实施例中,将冗余链路的信用度值设置为0。结合存储系统集群配置的特点,一般要配置冗余链路,比如主链路为ntb(non-transparent bridge,非透明桥协议)链路,要外再加fc链路作为冗余链路。基于路径偏好策略,将冗余链路的信用度值设备为0,即仅有一个io维持链路连通状态,以此节省内存和cpu资源。
58.当高优先级链路故障退出后,冗余链路立即激活,在信用度周期计算时,修改credit上限值,进而计算得出信用度动作指令(增加),提高io并发量。通过目标方返送消息时把信用度动作指令发送到发起方,发起方响应指令,执行增加io申请动作。
59.在一具体实施例中,对pcie多控环境的信用度策略进行说明。
60.在pcie多控环境相比之前存储集群增加了pcie链路,同框控制器之间增加支持多路pcie链路功能,还增加了跨框pcie链路拓扑方式,原有信用度计算框架随之调整。
61.原有pcie链路仅指同框内的板载ntb链路,信用度上限设置为192。对增加的外接pcie链路经计算分析,也设定为192,所有链路credit总和(包括外接远程复制链路)满足不大于总上限的条件。
62.经测试验证,pcie多控集群通信性能显著优于fc链路搭建的多控集群。
63.在一具体实施例中,对rdma链路互联环境的信用度策略进行说明。
64.为发挥rdma链路高并发低时延的特性,遵循nvme(nonvolatile memory express,非易失性内存协议标准)协议体系,采用roce(rdma over converged ethernet,一种允许通过以太网络使用rdma协议)互联技术,在底层硬件层面提升存储系统的基础结构。相应地,在集群通信的上层软件部分进行改造。
65.nvme标准协议减少了cpu的开销,简化了操作,降低了延迟,提高了iops和吞吐量。同时nvme协议队列深度qd的优势,在交流层cl采用轮询的方式把io均衡分布到各个队列,而由于队列深度的限制(当前系统队列深度限制在32个io),综合计算得出credit=30*queue_num,而队列个数queue_num当前设定为16,排除管理队列外,rdma链路credit=30*15=450,远大于pcie链路并发数,充分发挥了该网络结构的优势。
66.信用度策略以信用度值为基础控制节点间链路上io并发数,并采用动态调整的方式,使链路并发io数达到理论上限,并依据集群通信的特点(空闲时io到达目标端会有等待时长)把链路上的所有io均衡分布。在目标端根据不同链路类型计算得出io上限,生成信用度动作指令。io发起端根据信用度动作指令执行流量控制动作。同时,冗余链路为节省资源,信用度策略设置该链路仅有一个io维持连通状态。信用度策略可适配多种协议模型,多种硬件链路类型,可应对更为复杂的现场环境。在pcie多控集群和rdma互联集群适应性改进完善信用度策略,更好地发挥新技术新硬件的物理优势。信用度策略在存储系统集群通信环境中,通过动态调整io并发数,实现了高并发、低时延,最大限度提高iops和吞吐量,因io数据在链路全流程均衡分布,解决了对资源使用的波动问题,实现整个系统的稳定性和可靠性,有效提高了系统资源的利用率。
67.在一些实施方式中,所述信用度动作值包括增加、缩减以及不变。
68.在一些实施方式中,基于所述链路的所述信用度上限值与在当前信用度值周期的信用度值计算得出所述链路的信用度动作值包括:
69.用所述链路的所述信用度上限值减去所述链路在当前信用度值周期的所述信用度值,得出计算结果,并对所述计算结果进行判断;
70.响应于所述计算结果大于零,则确定所述链路的所述信用度动作值为增加;
71.响应于所述计算结果小于零,则确定所述链路的所述信用度动作值为缩减;
72.响应于所述计算结果等于零,则确定所述链路的所述信用度动作值为不变。
73.在一些实施方式中,基于所述信用度动作值执行相应的动作包括:
74.响应于所述信用度动作值为增加,则重新发起一个io消息,然后将所述设置了所述信用度动作值的所述io消息销毁回收,并在所述设置了所述信用度动作值的所述io消息销毁回收后,再次发起一个io消息。
75.在一些实施方式中,基于所述信用度动作值执行相应的动作包括:
76.响应于所述信用度动作值为缩减,则将接收到的设置了所述信用度动作值的所述io消息销毁回收。
77.在一些实施方式中,基于所述信用度动作值执行相应的动作包括:
78.响应于所述信用度动作值为不变,则将接收到的设置了所述信用度动作值的所述io消息销毁回收,然后重新发起一个io消息。
79.在一具体实施例中,如图2所示,为基于信用度策略进行流量控制的流程图。具体
流程如下:
80.在交流层(communication layer,简称cl),交流层即os协议中的传输层,io发起方(initiator)发起链接建立流程,初始创建一个信道,发送一个io消息给目标方(target),其中,发起方和目标方,是基于物理链路建立的软件层面的逻辑实例。
81.对端节点目标方target会根据相关设置,例如:通信链接的类型、端口资源数量、发起方与目标方双方总的最大信用度定义等,设定每条链路的信用度上限值,并根据当前信用度值周期(间隔400ms)的信用度值与信用度上限值,计算得出该链路的信用度动作(action),信用度动作包括不变(none)、增加(extend)、缩减(withdraw)。
82.目标方在返送io消息时,在io消息的固定字段设置信用度计算得出的信用度动作标志,通知发起方执行当前的信用度action。如果是信用度action是增加或缩减,则只发出一次调整动作指令,即置空,待下个周期计算结果再执行。
83.发起方在接收io消息后,会在固定字段解析出信用度action标志,执行调整动作。如果action==none,io并发数保持不变,当前io销毁回收后,再发起一个io申请(io数与之前相当)。如果action==增加,在当前io销毁回收前就已经发起一个新的io申请,同时当前io销毁回收后还会发起io申请(io数比之前增加1个)。如果action==缩减,则当前io销毁回收后,不再发起新的io申请(io数比之前减少1个)。
84.当多个io并发时,由于每次调整仅增加或减少一个io,而且每个io在目标端驻留时间不同(如果存在消息发送,则立即返回;如果没有消息,等待一定时间,一般为一个信用度周期),最后会使所有io近乎均衡地分布于消息收发的各个环节。
85.本发明实施例,通过信用度策略对存储系统集群的通信进行流量控制,以信用度值为基础控制节点间链路上io并发数,并采用动态调整的方式,使链路并发io数达到理论上限,并依据集群通信的特点(空闲时io到达目标端会有等待时长)把链路上的所有io均衡分布,实现了存储系统集群通信的高并发与低时延,避免了消息拥塞,最大限度提高了iops(input/output operations per second,每秒输入输出操作)和吞吐量,因io数据在链路全流程均衡分布,解决了对资源使用的波动问题,实现整个系统的稳定性和可靠性,有效提高了系统资源的利用率。
86.基于同一发明构思,根据本发明的另一个方面,如图3所示,本发明的实施例还提供了一种流量控制系统,包括:
87.发送模块110,所述发送模块110配置为发起方发起链路建立流程,并基于所述链路在每个信用度值周期发起一个io消息,并将所述io消息发送给目标方;
88.接收模块120,所述接收模块120配置为所述目标方接收到所述io消息后,根据所述链路的信息设置所述链路的信用度上限值,并基于所述链路的所述信用度上限值与在当前信用度值周期的信用度值计算得出所述链路的信用度动作值;
89.返回模块130,所述返回模块130配置为所述目标方在所述io消息的固定字段设置所述信用度动作值,并将设置了所述信用度动作值的所述io消息返回给所述发起方;
90.执行模块140,所述执行模块140配置为所述发起方接收到设置了所述信用度动作值的所述io消息后,在所述返回消息的固定字段解析出所述信用度动作值,并基于所述信用度动作值执行相应的动作。
91.基于同一发明构思,根据本发明的另一个方面,如图4所示,本发明的实施例还提
供了一种计算机设备30,在该计算机设备30中包括处理器310以及存储器320,存储器320存储有可在处理器上运行的计算机程序321,处理器310执行程序时执行如上的方法的步骤。
92.其中,存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本技术实施例中的所述流量控制方法对应的程序指令/模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行系统的各种功能应用以及数据处理,即实现上述方法实施例的流量控制方法。
93.存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据系统的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至本地模块。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
94.基于同一发明构思,根据本发明的另一个方面,如图5所示,本发明的实施例还提供了一种计算机可读存储介质40,计算机可读存储介质40存储有被处理器执行时执行如上方法的计算机程序410。
95.最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,程序的存储介质可为磁碟、光盘、只读存储记忆体(rom)或随机存储记忆体(ram)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
96.本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
97.以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
98.应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
99.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实
施例的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献