CN109417514B - 一种报文发送的方法、装置和存储设备 - Google Patents
一种报文发送的方法、装置和存储设备 Download PDFInfo
- Publication number
- CN109417514B CN109417514B CN201880002591.2A CN201880002591A CN109417514B CN 109417514 B CN109417514 B CN 109417514B CN 201880002591 A CN201880002591 A CN 201880002591A CN 109417514 B CN109417514 B CN 109417514B
- Authority
- CN
- China
- Prior art keywords
- rate
- message
- sending
- network card
- server
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 230000005540 biological transmission Effects 0.000 claims abstract description 75
- 238000012545 processing Methods 0.000 claims abstract description 52
- 238000004891 communication Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002035 prolonged effect Effects 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 208000024875 Infantile dystonia-parkinsonism Diseases 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 208000001543 infantile parkinsonism-dystonia Diseases 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/11—Identifying congestion
- H04L47/115—Identifying congestion using a dedicated packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/25—Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/31—Flow control; Congestion control by tagging of packets, e.g. using discard eligibility [DE] bits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种报文发送的方法、装置和存储设备,方法应用于数据传输***。具体包括:第二设备的网卡接收经过交换机转发的来自第一设备的第一QP的第一报文;第二设备的网卡获取第一QP的即时速率和所述第一QP的最大发送速率;第二设备的网卡根据第一QP的即时速率和最大发送速率确定第一QP的调整速率;第二设备的网卡向第一设备发送拥塞通知报文,拥塞通知报文中携带第一QP的调整速率。通过根据QP发送报文的即时速率和QP对应的发送报文的最大发送速率来确定QP发送报文的调整速率,在保证了各服务器以及各服务器中运行虚拟机的业务处理能力情况下,缓解了数据传输***的拥塞。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种报文发送的方法、装置和存储设备。
背景技术
基于融合以太网的远程内存直接访问协议(Remote Direct Memory Access overConverged Ethernet,RoCE)是一种网络协议,允许通过以太网远程直接访问内存,被广泛应用于数据传输***中。目前RoCE有两个协议版本,v1和v2。其中RoCE v1是一种基于以太网链路层实现的远程内存直接访问(Remote Direct Memory Access,RDMA)协议,允许在同一个广播域下的任意两台主机直接访问内存数据。而RoCE v2是一种以太网传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol,TCP/IP)协议中数据报协议(User Datagram protocol,UDP)层实现的协议。
通常地,数据传输***包括:交换机、存储设备、服务器和运行在服务器中的至少一个虚拟机,每个虚拟机代表一个存储访问用户,存储设备中包括至少一个磁盘,该磁盘可以是非易失性高速传输总线(non-volatile memory express,NVMe)磁盘。虚拟机对存储设备的读写访问请求会以报文的形式,由服务器的网卡通过交换机发送给存储设备。对于交换机而言,同一时刻可能同时接收到数据传输***中多个服务器的报文。此时,交换机需要通过一个或几个端口将这些报文转发给存储设备。当检测到与存储设备连接的任意一个端口的发送队列中报文等待时长超过预置时长时,交换机确认该端口发生拥塞,修改报文中的显式拥塞通知(explicit congestion notification,ECN)标识位,使得修改后的ECN标识位指示交换机端口发生拥塞。当存储设备接收的报文中ECN标识位指示拥塞时,存储设备会向发送报文的服务器反馈一个拥塞通知报文(congestion notification packet,CNP)。此时,服务器会按照预置比率降低报文的发送速率,从而实现数据传输***的数据传输控制,避免了报文的拥塞。上述处理方法虽然缓解了交换机的网络拥塞问题,但是,以相同的比率降低服务器发送报文的速率影响了服务器以及服务器中运行虚拟机的业务处理能力,延长了业务处理时长,并未从根本上解决数据传输***中网络拥塞问题。
发明内容
本申请提供一种报文发送的方法、装置和存储设备,用以在保证服务器以及服务器中运行虚拟机的业务处理能力的前提下,解决数据传输***中网络拥塞的问题。
第一方面,本申请提供一种报文发送的方法,应用于数据传输***,数据传输***包括第一设备和第二设备,第一设备与第二设备间基于远程内存直接访问RoCE协议传输报文,在第一设备上建立有第一队列对(queue pair,QP),在第二设备上建立有与第一QP的关联队列对第一QP'。该方法包括:首先,第二设备的网卡接收经过交换机转发的来自第一设备的报文,并获取第一QP中报文发送的即时速率和最大发送速率。然后,根据第一设备发送报文的即时速率和第一QP对应的最大发送速率确定第一QP的调整速率。再将携带调整速率的拥塞通知报文发送给第一设备,以此完成对第一设备发送报文的速率进行调整。
其中,第一QP的即时速率是单位时间内第一QP和第一QP'之间发送报文的个数。第一QP的最大发送速率是指单位时间内第一QP和第一QP′之间预先设定的允许发送的最大报文个数。
进一步地,第二设备的网卡可以通过以下方式中任意一种获取第一QP的即时速率:
方式一:第二设备的网卡统计单位时间内接收的经过交换机转发的来自第一QP的报文的数量,以此确认第一QP的即时速率。
具体地,第二设备中预先创建有与第一QP关联的第一QP′。当第二设备的网卡根据报文确定交换机的端口拥塞时,网卡通过统计单位时间段内接收到的属于第一QP′的报文的数量,以此确定网卡接收第一设备发送的报文的即时速率,作为第一QP的即时速率。
方式二:第一设备周期性向第二设备发送速率通知报文。
具体地,第一设备周期性向第二设备的网卡发送速率通知报文,速率通知报文中携带有第一QP发送报文的即时速率。
第二设备的网卡可以采用如下方式确定第一QP的最大发送速率:根据第一QP对应的业务类型确定第一QP的最大发送速率。
具体地,QP处理的业务类型不同,QP对应的最大发送速率不同。在第一设备和第二设备间创建第一QP时,第二设备中可预先存储业务类型和最大发送速率的映射表,当接收到报文时,可根据第一QP处理的业务类型确定第一QP的最大发送速率。
通过QP的即时速率和最大速率确定第一设备的调整速率,可以缓解交换机的网络拥塞问题,与此同时,又可实现在保证了第一设备以及第一设备中运行虚拟机的业务处理能力,降低业务处理时长。
在一种可能的实现方式中,本申请提供的报文发送的方法还包括:第二设备的网卡在确认第一QP的调整速率时,除了上述方法外,还可以根据业务需求考虑第一设备的优先级确定调整速率,即根据第一QP的即时速率和最大发送速率,以及第一设备的优先级,来对第一QP发送报文的速率进行调整。可以根据数据传输***中第一设备的优先级不同设定不同权重,优先保证交换机处理高优先级的第一设备中的QP的报文。
在一种可能的实现方式中,第二设备的网卡在确定第一QP的调整速率时,还可以考虑第一设备中虚拟机的优先级确定第一QP的调整速率。具体实现中,第一设备中QP可以与指定虚拟机建立绑定关系,此时,该虚拟机的所有报文都会经过与之绑定的QP发送至第二设备。第二设备的网卡根据第一QP的即时速率、最大发送速率,以及第一设备中虚拟机的业务优先级确定第一QP的调整速率。
第二设备的网卡在确定第一QP的调整速率时,可以同时考虑第一设备和第一设备中虚拟机的优先级确定第一QP的调整速率。网卡在对第一QP发送报文的速率进行调整时,不仅考虑到的第一QP的即时速率和最大发送速率,还考虑到了第一设备以及第一设备中的虚拟机的业务的优先级的不同来确定第一QP的调整速率,在缓解网络拥塞的同时,优先保证了高优先级业务的处理过程,进一步提高了数据传输***拥塞缓解的合理性。
在另一种可能的实现方式中,数据传输***还包括至少一个第三设备,第二设备与至少一个第三设备中每个第三设备间基于RoCE协议在每个第三设备上建立有至少一个QP;数据传输***中包括m个QP;则第二设备的网卡根据第一QP的即时速率和第一QP的最大发送速率确定第一QP的调整速率,包括:
第二设备的网卡在对第一设备发送报文的速率进行调整时,可根据第一QP的即时速率A1、第一QP的最大发送速率C1和交换机拥塞时速率D,采用公式获取,获取得到的第一QP的调整速率S1,即为第一设备发送报文的调整速率;其中,Ai指示m个QP中第i个QP的即时速率,Ci指示每个QP中第i个QP的最大发送速率,m为正整数,i的取值包括从1至m的正整数。
通过上述公式可以确定在交换机出现拥塞时,交换机所能转发的第一QP的报文的能力,由此确定第一QP的调整速率,缓解交换机机的网络拥塞。
在另一种可能的实现方式中,数据传输***还包括至少一个第三设备,第二设备与至少一个第三设备中每个第三设备间基于RoCE协议在每个第三设备上建立有至少一个QP;数据传输***中包括m个QP;第二设备的网卡根据第一QP的即时速率、第一设备的优先级和第一QP的最大发送速率确定第一QP的调整速率,包括:第二设备的网卡在对第一设备发送报文的速率进行调整时,调整依据可根据第一QP的即时速率A1、第一设备的优先级所对应的权重系数B1、第一QP的最大发送速率C1和交换机拥塞时速率D,采用公式获取,获取得到的第一QP的调整速率S1即为第一设备发送报文的速率的调整依据;其中,Ai指示m个QP中第i个QP的即时速率,Ci指示m个QP中第i个QP的最大发送速率,m为正整数,i的取值包括从1至m的正整数。
在另一种可能的实现方式中,第二设备的网卡获取第一QP的即时速率之前,本申请提供的报文发送的方法包括:第二设备的网卡在接收到第一设备发送的报文时,读取报文中用于指示交换机是否出现网络拥塞的标识位,当标识位指示交换机出现网络拥塞时,执行上面第一方面的各种可能的实现方式中的方法,对第一设备发送报文的速率进行调整。
通过读取报文中的指示交换机是否出现网络拥塞的标识位,可快速识别数据传输***的运行状态,从而及时对第一设备发送报文的速率进行调整。
第二方面,本申请提供一种报文发送的装置,该装置用于执行上述第一方面或第一方面的任意可能的实现中的方法,具有相同的技术效果。具体地,该装置包括用于执行上述第一方面或第一方面的任意可能的实现中的方法的模块。
在一种可能的实现方式中,报文发送的装置与第一设备基于RoCE协议传输报文,在第一设备上建立第一队列对QP,在所述报文发送的装置上建立有所述第一QP的关联队列对第一QP′,报文发送的装置包括获取模块、处理模块和发送模块;
所述获取模块,用于接收经过交换机转发的来自所述第一设备的第一QP的第一报文,获取所述第一QP的即时速率和最大发送速率,所述第一QP的即时速率表示单位时间内所述第一QP与所述第一QP′之间发送的报文的个数,所述第一QP的最大发送速率表示单位时间内所述第一QP与所述第一QP′之间预先设定的允许发送的最大报文个数;
所述处理模块,用于根据所述第一QP的即时速率和最大发送速率确定所述第一QP的调整速率;
所述发送模块,用于向所述第一设备发送拥塞通知报文,所述拥塞通知报文中携带所述第一QP的调整速率。
上述装置可以根据QP的即时速率和最大速率确定调整速率,可以缓解交换机的网络拥塞问题,与此同时,又可实现在保证了第一设备以及第一设备中运行虚拟机的业务处理能力,降低业务处理时长。
在另一种可能的实现方式中,处理模块还用于:根据所述第一QP的即时速率、所述第一设备的优先级所对应的权重系数和所述第一QP的最大发送速率确定所述第一QP的调整速率。
在另一种可能的实现方式中,报文发送的装置的处理模块在确定第一QP的调整速率时,还可以考虑第一设备中虚拟机的优先级确定第一QP的调整速率。具体实现中,第一设备中QP可以与指定虚拟机建立绑定关系,此时,该虚拟机的所有报文都会经过与之绑定的QP发送至存储设备。报文发送的装置的处理模块根据第一QP的即时速率、最大发送速率,以及第一服务器中虚拟机的业务优先级确定第一QP的调整速率。
在另一种可能的实现方式中,报文发送的装置的处理模块在确定第一QP的调整速率时,可以同时考虑第一设备和第一设备中虚拟机的优先级确定第一QP的调整速率。报文发送的装置的处理模块在对第一QP发送报文的速率进行调整时,不仅考虑到的第一QP的即时速率和最大发送速率,还考虑到了第一设备以及第一设备中的虚拟机的业务的优先级的不同来确定第一QP的调整速率,在缓解网络拥塞的同时,优先保证了高优先级业务的处理过程,进一步提高了数据传输***拥塞缓解的合理性。
在另一种可能的实现方式中,报文发送的装置还与至少一个第二设备中每个第二设备间基于RoCE协议在所述每个第二设备上建立至少一个QP,所述第一设备与所述第二设备中包括m个QP;
处理模块具体用于:根据第一QP的即时速率A1、第一QP的最大发送速率C1和交换机发生拥塞的端口速率D,采用公式确定第一QP的调整速率S1;其中,Ai指示所述m个QP中的第i个QP的即时速率,Ci指示所述m个QP中的第i个QP的最大发送速率,m为正整数,i的取值包括从1至m的正整数。
通过上述公式可以确定在交换机出现拥塞时,交换机所能转发的第一QP的报文的能力,由此确定第一QP的调整速率,缓解交换机机的网络拥塞。
在另一种可能的实现方式中,报文发送的装置还与至少一个第二设备中每个第二设备间基于RoCE协议在所述每个第二设备上建立至少一个QP,所述第一设备与所述第二设备中包括m个QP;处理模块具体用于:根据第一QP的即时速率A1,第一服务器的优先级所对应的权重系数B1、第一QP的最大发送速率C1和交换机发生拥塞的端口速率D,采用公式确定第一QP的调整速率S1;其中,Ai指示所述m个QP中的第i个QP的即时速率,Ci指示所述m个QP中的第i个QP的最大发送速率,m为正整数,i的取值包括从1至m的正整数。
在另一种可能的实现方式中,获取模块具体用于:接收经过交换机转发的来自所述第一设备的第一QP的第一报文,读取所述第一报文的ECN标识位,确定所述第一报文的ECN标识位指示交换机出现网络拥塞,获取所述第一QP的即时速率和最大发送速率。
第三方面,本申请提供了一种存储设备,存储设备包括处理器、存储器、通信接口、网卡和总线,处理器、存储器、通信接口和网卡之间通过总线连接并完成相互间的通信,存储器中用于存储计算机执行指令,存储设备运行时,处理器执行存储器中的计算机执行指令以利用所述存储设备中的硬件资源执行第一方面或第一方面的任意可能的实现中的操作步骤。
第四方面,本申请提供了一种计算机可读介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现中的方法的指令。
本申请的在上述各方面提供的实现的基础上,还可以进行进一步组合以提供更多实现。
附图说明
图1为本申请提供的一种数据传输***的结构示意图;
图2为本申请提供的一种报文发送的方法的流程示意图;
图3为本申请提供的另一种报文发送的方法的流程示意图;
图4为本申请提供的一种报文发送的装置的结构示意图;
图5为本申请提供的一种存储设备的结构示意图。
具体实施方式
下面结合本申请中的附图,对本申请中的技术方案进行描述。
图1为本申请提供的一种数据传输***的结构示意图。如图1所示,数据传输***100至少可以包括交换机101、存储设备102和至少一个服务器,例如第一服务器103、第二服务器104和第三服务器105。每个服务器中各自运行有至少一个虚拟机,每个虚拟机代表一个存储访问用户。各服务器中均设置有网卡,虚拟机对存储设备102的读写访问请求会以报文的形式由服务器的网卡通过交换机101发送给存储设备102。
需要说明的是,本申请提供的数据传输***100中,除了图1所示的器件外,数据传输***100还可以包括通信接口等其他器件,在此不做限制。另外,存储设备可以是一台服务器,也可以是多台服务器组成的集合,本申请不作限制。
值得说明的是,图1所示的存储***中每个服务器上可以运行多个虚拟机,为便于后续描述,本申请的以下描述中仅以每个服务器上仅运行一个虚拟机为例进行描述。
存储设备102可以包括网卡106和至少一个磁盘,例如第一磁盘107、第二磁盘108和第三磁盘109。各磁盘可以是NVMe磁盘。网卡106用于接收虚拟机通过交换机101发送的报文,并将接收到的报文分发至存储设备102包括的各磁盘中。
交换机101包括至少一个接收端口和至少一个发送端口。交换机101通过各接收端口接收不同服务器的网卡发送的报文,并将报文通过发送端口发送至存储设备102。示例性地,同一个服务器可以通过交换机101访问不同磁盘,同一个磁盘也可以分配给不同的服务器访问,从而实现存储设备102中的存储资源共享。
值得说明的是,交换机中包括一个或多个发送端口,当任意一个发送端口出现网络拥塞时,均会影响服务器和服务器中运行虚拟机的处理能力,如图1所示,图中示出了两个发送端口。
对于服务器与存储设备102间的读写访问请求可采用RDMA技术,RDMA技术为一种直接进行远程内存存取的技术,可以直接将数据从一个设备的存储器快速拷贝至另一个远程设备的存储器中,减少了服务器和存储设备的中央处理器(central processing unit,CPU)参与数据传输过程的消耗,进而提升了***处理业务的性能,具有高带宽、低时延及低CPU占用率的特点。本申请提供的数据传输***100中的服务器与存储设备102间的读写访问请求采用报文的形式通过交换机101进行传输,具体可以使用RoCE v1或v2协议进行传输。
服务器和存储设备102中均部署有支持RDMA功能的网卡(RDMA enabled networkinterface card,RNIC),用于实现基于RDMA连接的数据传输。在服务器A与存储设备102基于RDMA连接的数据传输中,服务器A的RNIC可以直接从服务器A的内存读取数据,将读取的数据发送给存储设备B的RNIC,存储设备B的RNIC将从设备A的RNIC接收的该数据写入存储设备B的内存中。
具体地,基于RoCE协议进行服务器和存储设备102间的报文传输时,预先在服务器的网卡和存储设备102的网卡106中各自建立有队列对(queue pair,QP),每个QP包括接收队列(receive queue,RQ)以及发送队列(send queue,SQ)。然后服务器和存储设备102的QP会建立绑定关系,即将自身的QP中的SQ与对端的QP的RQ关联,以及将自身的QP中的RQ与对端的QP中的SQ关联,进而实现自身的QP与对端的QP关联,以此实现RDMA连接。其中,同一服务器上可以运行多个虚拟机,同一网卡内可以建立多个QP,具体应用中可以根据业务需求将虚拟机与指定QP关联,此时,所有该虚拟机发出的读写请求均通过与之关联的QP发送给存储设备。具体实施过程中,可以根据业务需求将虚拟机与至少一个指定QP关联,但一个QP只能与一个虚拟机关联。值得说明的是,为便于后续描述,本申请的以下描述中仅以每个虚拟机对应一个QP为例进行描述。
示例性地,存储设备102的网卡106中建立有第一QP',第一服务器103的网卡中建立有第一QP,第一QP中的SQ与第一QP'中的RQ关联,第一QP中的RQ与第一QP'中的SQ关联。并将第一QP与第一QP'分别称为对方的对端QP。存储设备102的网卡106中还建立有第二QP',第二服务器104的网卡中建立有第二QP,第二QP中的SQ与第二QP'中的RQ关联,第二QP中的RQ与第二QP'中的SQ关联。并将第二QP与第二QP'分别称为对方的对端QP。存储设备102的网卡106中还建立有第三QP',第三服务器105的网卡中建立有第三QP,第三QP中的SQ与第三QP'中的RQ关联,第三QP中的RQ与第三QP'中的SQ关联。并将第三QP与第三QP'分别称为对方的对端QP。可选地,数据传输***100中还可能包括未设置有QP的服务器。
第一服务器103基于QP向存储设备102发送的报文中,携带有第一QP'的标识,对应地,存储设备102基于QP向第一服务器103发送的报文中,携带有第一QP的标识。即发送端在向接收端发送报文时,在报文中携带接收端的QP的标识。因此,当存储设备102的网卡106同时接收来自多个QP的报文时,网卡106根据报文中的QP标识,将报文存储在QP标识所指示的RQ中。例如,第一服务器103向网卡106发送第一报文,第一报文中携带有网卡106中的第一QP'的标识,当网卡106接收到第一报文时,可根据第一报文中携带的第一QP'的标识,确定第一报文为属于第一QP'的报文,从而将第一报文存储在第一QP'的RQ中。
交换机101可能在同一时刻接收到数据传输***100中多个服务器发送的报文。例如,第一服务器103以速率V1向交换机101发送报文,第二服务器104以速率V2向交换机101发送报文,第三服务器105以速率V3向交换机101发送报文。此时,交换机101需要通过一个或几个端口将这些报文转发给存储设备102。当交换机检测到与存储设备102连接的任意一个端口的发送队列中报文等待时长超过预置时长时,交换机101确认该端口发生拥塞。此时,交换机101拥塞端口将会影响存储设备102的业务处理效率,延长了业务处理时长。
为避免拥塞,传统的数据传输***100中各服务器上的网卡可以基于QP控制端口拥塞。具体地,当交换机101确认端口发生拥塞时,交换机101修改待发送队列中的报文的ECN标识位,使得修改后的ECN标识位指示交换机发生拥塞。当存储设备102接收到的报文中ECN标识位指示拥塞时,存储设备102会向发送该报文的各服务器反馈一个CNP,此时,各服务器会按照预置比率降低报文的发送速率。从而实现了数据传输***的数据传输控制,避免了报文的拥塞。例如,当预置比率为20%时,第一服务器103以速率80%V1向交换机101发送报文,第二服务器104以速率80%V2向交换机101发送报文,第三服务器105以速率80%V3向交换机101发送报文,也即各服务器的发送速率均降低了20%。但是,各个服务器的最大发送速率不同,比如第一服务器103在以速率V1向交换机101发送报文时,仅占用了第一服务器103中虚拟机的业务处理能力的50%;而第二服务器104在以速率V2向交换机101发送报文时,占用了第二服务器104中虚拟机的业务处理能力的90%。若此时同时将第一服务器103和第二服务器104的发送速率均降低20%,第一服务器103处理业务的时长将会严重延长,且影响第一服务器103以及第一服务器103中运行虚拟机的业务处理能力,传统的拥塞控制的方法并未从根本上解决数据传输***100中网络拥塞问题。
为了解决上述问题,本申请提供一种报文发送的方法、装置和存储设备。下面结合具体实施例对本申请提供的报文发送的方法、装置和存储设备进行详细说明。下面这几个实施例中,对于相同或相似的概念或过程可能在某些实施例不再赘述。
本申请提供一种报文发送的方法。图2为本申请提供的一种报文发送的方法的流程示意图。本实施例中存储设备的网卡根据QP发送报文的即时速率和该QP的最大发送速率来确定各QP各自的发送报文的调整速率,在保证了各服务器以及各服务器中运行虚拟机的业务处理能力情况下,缓解了数据传输***的拥塞。
值得说明的是,如图1所示,本申请的数据传输***中存在多个QP,在本申请以下各实施例中仅以第一QP为例,对存储设备中的网卡确定第一QP的调整速率的步骤进行了说明,对于确定数据传输***中的其他QP的调整速率的步骤与网卡确定第一QP的调整速率的步骤相同,本申请不再赘述。
本实施例提供的报文发送的方法,应用于如图1所示的数据传输***100中,第一设备可以为图1中第一服务器103,第二设备可以为图1中的网卡106。如图2所示,报文发送的方法包括:
S201、第二设备的网卡接收经过交换机转发的来自第一设备的第一QP的第一报文。
存储设备102的网卡106基于QP接收交换机101转发的报文,报文中携带有QP的标识,网卡106可根据QP的标识,确定报文所属的QP,进而根据QP所在的服务器区分发送报文的服务器。本实施例中,以网卡106接收到报文为第一QP发送的第一报文为例进行说明。
S202、当第一报文携带网络拥塞标识时,第二设备的网卡获取第一QP的即时速率和最大发送速率。
网卡106接收到第一报文后,确定第一报文中是否携带有网络拥塞标识,若有,则认为交换机101的端口发生拥塞,若无,则认为交换机101的端口未发生拥塞。示例性地,第一报文中携带有网络拥塞标识的具体方式可以为在第一报文中设置显式拥塞通知(explicit congestion notification,ECN)标识位。ECN标识位用于指示交换机101的端口是否发生拥塞。网卡106在接收到第一报文后,读取第一报文的ECN标识位,根据第一报文的ECN标识位确定交换机101端口是否发生网络拥塞。
当ECN标识位利用多个比特位标识时,ECN标识位还可以用于指示交换机101端口的拥塞程度。ECN标识位可采用IP报头中的服务类型(type of service,TOS)字段的最后两个比特位。当检测到交换机101与存储设备102连接的任意一个端口的发送队列中报文等待时长超过预置时长时,交换机101确认该端口发生拥塞,此时,交换机在该报文中添加网络拥塞标识。具体地,交换机101修改报文中的ECN标识位中的数值,例如将ECN标识位中的取值从10修改为11。当存储设备的网卡在报文的IP报文中读取到ECN标识位的值为11时,则可确定交换机101的端口发生拥塞。可选地,交换机101还可为ECN标识位设置不同的取值,不同的取值可以用于指示交换机101的端口的拥塞程度。
第一QP的即时速率是单位时间内第一QP和第一QP'之间发送报文的个数。第一QP的最大发送速率是指单位时间内第一QP和第一QP'之间预先设定的允许发送的最大报文个数。
进一步地,网卡106可以通过以下方式中的任意一种获取第一QP的即时速率:
方式一:当网卡106根据第一报文确定交换机101的端口拥塞时,网卡106通过统计单位时间段内接收到的属于第一QP'的报文的数量,以此确定网卡106接收第一服务器103发送的报文的即时速率,作为第一QP的即时速率。
方式二:第一服务器103在向网卡106发送报文时,周期性的向网卡106发送速率通知报文,速率通知报文中携带有第一QP发送报文的即时速率。
存储设备的网卡106可以采用如下方式确定第一QP的最大发送速率:
网卡106根据第一QP对应的业务类型获取第一QP的最大发送速率。
具体地,QP处理的业务类型不同,QP对应的最大发送速率不同。在第一服务器103和存储设备102间创建第一QP时,存储设备102中可预先存储业务类型和最大发送速率的映射表,当接收到第一报文时,可根据第一QP处理的业务类型确定第一QP的最大发送速率。
第一QP的调整速率与第一QP的最大发送速率成反比,即第一QP的最大发送速率越大则第一QP的调整速率越小,从而使得第一服务器103的网卡根据第一QP的调整速率进行拥塞调节后,第一服务器103发送属于第一QP的报文的速率的降幅较少。当第一QP的最大发送速率较小时,第一QP的调整速率则较大,从而使得第一服务器103的网卡根据第一QP的调整速率进行拥塞调节后,第一服务器103发送属于第一QP的报文的速率的降幅较大。
数据传输***中,当服务器以及服务器中的虚拟机提供不同的业务类型时,由于不同的业务类型具有不同的服务等级协议(service level agreement,SLA),因此,不同的服务器以及虚拟机在向存储设备发送报文时具有不同的最大发送速率。如,可以为处理时延敏感业务的服务器分配较大的最大发送速率,而为处理时延不敏感业务的服务器分配较小的最大发送速率。第一QP的最大发送速率指示的是在第一QP中第一服务器向存储设备发送报文的最大发送速率。
通过根据各QP对应的最大发送速率确定各QP的调整速率,使得最大发送速率较大的服务器在数据传输***拥塞时发送报文的速率降速较少,保证了处理时延敏感业务的服务器的性能,实现了在保证了各服务器以及各服务器中运行虚拟机的业务处理能力情况下,缓解了数据传输***的拥塞。
作为一种可能的实现方式,网卡106除了在报文中携带拥塞通知标识时调整QP的发送速率外,也可以接收所有报文时均基于上述方法调整QP的发送速率。即在接收到报文后,即获取该报文对应的QP的即时速率和调整速率,然后根据即时速率和调整速率确定QP的调整速率。
S203、第二设备的网卡根据第一QP的即时速率和最大发送速率确定第一QP的调整速率。
所述第一QP的调整速率为在交换机出现网络拥塞时,其发送端口转发属于第一QP报文的比率。
在一种可能的实现方式中,数据传输***还包括至少一个第三设备,如图1所示,第三设备可以为第二服务器104或第三服务器105。服务器和存储设备之间可以建立一个或多个QP,数据传输***中包括多个QP。第二设备与至少一个第三设备间基于RoCE协议在至少一个第三设备中每个第三设备上建立有第i个QP,数据传输***中包括m个QP。例如,如图1所示,数据传输***100还包括第二服务器104和第三服务器105,存储设备102与第二服务器104间基于RoCE协议在第二服务器104上建立有第二QP,在存储设备102上建立有第二QP′,存储设备102与第三服务器105间基于RoCE协议在第三服务器105上建立有第三QP,在存储设备102上建立有第三QP′。此时,网卡根据第一QP的即时速率和第一QP的最大发送速率确定第一QP的调整速率具体包括:
网卡根据第一QP的即时速率A1、第一QP的最大发送速率C1和交换机拥塞时速率D,采用公式确定第一QP的调整速率S;其中,Ai指示第i个QP的即时速率,Ci指示第i个QP的最大发送速率,m为正整数,i的取值包括从1至m的正整数。
另外,对于交换机拥塞时速率D的确认方法可以为以下任意一种情况:
情况一:当交换机中仅包括一个发送端口时,交换机拥塞时速率D为该发送端口在交换机出现拥塞时速率。即交换机出现拥塞时,单位时间内该发送端口向存储设备发送报文的数量。
情况二:当交换机中包括两个或两个以上发送端口时,交换机拥塞速率D为交换机出现拥塞时,所有发送端口的速率的平均值。其中,各个发送端口的速率为交换机出现拥塞时,单位时间内该端口向存储设备发送报文的数量。
存储设备102的网卡106可根据单位时间内接收到的报文中携带的QP标识,确定网卡106接收到的报文各自所属的QP,并统计QP的总个数,记为m,也即网卡106中存在m个QP均接收到了报文。并为区分各QP,将各QP编号为第i个QP,i的取值为从1至m的正整数。对应的,第i个QP的即时速率记为Ai,第i个QP的对应的最大发送速率记为Ci。
其中,为第i个QP接收报文的即时速率与最大发送速率的比值,也可以认为是第i个QP对应的第i服务器发送报文的即时速率与最大发送速率的比值。比值为1则代表第i服务器发送报文的即时速率达到了第i服务器的最大发送速率;比值小于1且越小则代表从第i服务器发出报文的即时速率越小于第i服务器的最大发送速率;比值大于1且越大则代表从第i服务器发出报文的即时速率越超出第i服务器的最大发送速率。示例性,若第一服务器发送报文的即时速率为600Mbps,最大发送速率为2Gbps,则的值为0.3,此时第一服务器的即时速率远未达到第一服务器的最大发送速率。
为存储设备102接收的所有QP的即时速率与最大发送速率的比值之和,用于指示在所有QP的比值之中,第一QP的比值所占的比重。比重越大,说明所有QP中第一QP超出最大发送速率的程度越大。因此根据计算S1的公式1可确定,超过最大发送速率的QP所对应的调整速率越大,本申请提供的报文发送的方法中根据不同服务器的业务处理能力需求,根本上缓解了数据传输***的拥塞。
示例性地,如图1所示,数据传输***中包括三个服务器,每个服务器分别与存储设备建立一组QP,例如,第一服务器103、第二服务器104、第三服务器105分别通过第一QP、第二QP、第三QP向存储设备102发送报文,且第一QP的比值为1.1,第二QP的比值为0.2,第三QP的比值为0.5,那么根据计算S1的公式可确定为1.8,对应的,第一QP对应的调整速率S1为0.61。同时还可获取第二QP对应的调整速率S2为0.11,第三QP对应的调整速率S3为0.28。因此,第一服务器103、第二服务器104、第三服务器105根据各自对应的调整速率调整报文的发送速率时,第一服务器103的发送速率降幅最大,第二服务器104的发送速率降幅最小,从而为不同服务器以及服务器中的虚拟机确定了不同的调整速率。
其中,为第一QP接收报文的即时速率A1与最大发送速率C1的比值,也可以认为是第一QP对应的第一服务器发送报文的即时速率与最大发送速率的比值;D为交换机拥塞时速率。与公式1相比,公式2中存储设备102根据第一QP的即时速率和最大发送速率确定第一QP的调整速率,并未考虑网卡106同时有接收到的属于其他QP的报文,在获取第一QP的调整速率的同时也未考虑其他QP的即时速率和最大速率,本实现方式中第一QP的调整速率的获取方法简单快速。
S204、第二设备的网卡向第一设备发送拥塞通知报文,拥塞通知报文中携带第一QP的调整速率。
网卡106在确定了第一QP的调整速率后,将第一QP的调整速率携带在CNP中发送至第一QP对应的第一服务器103。
S205、第一设备根据第一QP的调整速率调整第一QP的发送速率。
具体地,第一服务器在接收到CNP后,根据第一QP的调整速率降低第一服务器103的第一QP的发送速率,从而缓解交换机端口处的拥塞状况。
在一种可能的实现方式中,第一服务器103的第一QP的SQ中设置有拥塞控制表(congestion control table,CCT),CCT中存储有不同的报文的发送速率,CCT中还可存储有不同的报文发送间隔(inter-packet delays,IPD)。第一QP的SQ的报文的发送速率取决于SQ对应的CCT指针,CCT指针指向CCT中的发送速率。在第一服务器103接收到CNP时,第一QP的SQ根据第一QP的调整速率调整第一QP的SQ对应的CCT指针的值,从而得到第一QP的SQ的新的发送速率。可选地,当第一服务器103在一段时间内未收到CNP,则缓慢调整CCT指针的值,使得第一QP的SQ的报文的发送速率逐渐增大,直至达到第一QP的SQ的最大发送速率。
本实施例提供的报文发送的方法根据服务器发送报文的即时速率和服务器对应的发送报文的最大发送速率来确定服务器发送报文的调整速率,在保证了各服务器以及各服务器中运行虚拟机的业务处理能力情况下,缓解了数据传输***的拥塞。
在上述实施例的基础上,本申请还提供另一种报文发送的方法。图3为本申请提供的另一种报文发送的方法的流程示意图。本实施例中,网卡在确定第一QP的调整速率时,还可以根据各服务器以及服务器中的虚拟机的业务的优先级的不同,进一步提高了本申请报文发送的方法中数据传输***拥塞缓解的合理性。如图3所示,报文发送的方法包括:
S301、第二设备的网卡接收经过交换机转发的来自第一设备的第一QP的第一报文。
S302、当第一报文携带网络拥塞标识时,第二设备的网卡获取第一QP的即时速率和最大发送速率。
具体地,本实施例中的S301、S302与图2所示实施例中的S201、S202相同,本申请不再赘述。
S303、第二设备的网卡还可以根据第一QP的即时速率、第一设备的优先级和第一QP的最大发送速率确定第一QP的调整速率。
其中,本实施例中的S303与图2所示实施例中的S203相似,不同之处在于,本实施例在确定第一QP的调整速率时,还考虑第一QP所在的网卡所在的服务器的优先级。具体地,在数据传输***发生网络拥塞时,应优先保证较高优先级的服务器以及服务器中的虚拟机的业务。因此,本实施例根据第一QP的即时速率、第一服务器的优先级和第一QP的最大发送速率来确定第一QP的调整速率,当第一服务器的优先级较高时,第一QP的调整速率较低,当第一服务器的优先级较低时,第一QP的调整速率较高。因而使得数据传输***发生拥塞时,在缓解数据传输***的拥塞的情况下,能够保证执行较高优先级业务的服务器的业务处理能力。
数据传输***100还包括至少一个第三设备,第三设备可以为如图1中的第二服务器104或第三服务器105。存储设备与至少一个第三设备间基于RoCE协议在存储设备上建立有至少一个QP′,数据传输***中包括m个QP,在至少一个第三设备中的每个第三设备上建立有至少一个QP。例如,如图1所示,数据传输***100还包括第二服务器104和第三服务器105,存储设备102与第二服务器104间基于RoCE协议在存储设备102上建立有第二QP′,在第二服务器104上建立有第二QP,存储设备102与第三服务器105间基于RoCE协议在存储设备102上建立有第三QP′,在第三服务器105上建立有第三QP。此时,网卡根据第一QP的即时速率、第一服务器的优先级和第一QP的最大发送速率确定第一QP的调整速率,包括:
网卡根据第一QP的即时速率A1、第一服务器的优先级所对应的权重系数B1、第一QP的最大发送速率C1和交换机拥塞时速率D,采用公式确定第一QP的调整速率S1;其中,Ai指示m个QP中第i个QP的即时速率,Ci指示m个QP中第i个QP的最大发送速率,m为正整数,i的取值包括从1至m的正整数。
示例性地,服务器的优先级越高,所对应的权重系数越大。例如,若图1中的第一服务器103的优先级为最高,第二服务器104的优先级为次高、第三服务器105的优先级为最低,则对应的第一服务器103的优先级所对应的权重系数示例性地可以为0.6,第二服务器104的优先级所对应的权重系数示例性地可以为0.3,第三服务器105的优先级所对应的权重系数示例性地可以为0.1,因此,优先级高的服务器中的QP的调整速率较低,保证了执行高优先级业务的服务器以及服务器中的虚拟机的业务处理效率。
作为另一种可能的实现方式,网卡还可以根据第一QP的即时速率和第一QP的最大发送速率,以及服务器中虚拟机的优先级确定第一QP的调整速率。
具体地,第一服务器中QP可以与指定虚拟机建立绑定关系,此时,该虚拟机的所有报文都会经过与之绑定的QP发送至存储设备。存储设备的网卡根据第一QP的即时速率、最大发送速率,以及第一服务器中虚拟机的业务优先级确定第一QP的调整速率。例如,若交换机出现拥塞时处理能力为100M/S,此时需要处理服务器1中虚拟机1和虚拟机2的报文,虚拟机1的优先级高于虚拟机2,虚拟机1与QP1绑定,虚拟机2与QP2绑定,那么,交换机优先保证将QP1的报文发送至存储设备。相应地,在确定第一QP的调整速率时,上述实施例中公式3中D为虚拟机的优先级所对应的权重。
作为另一种可能的实现方式,网卡还可以根据第一QP的即时速率和第一QP的最大发送速率,以及服务器的优先级和虚拟机的优先级确定第一QP的调整速率。
具体地,在具体实施过程中,同一服务器中运行有多个虚拟机,每个虚拟机可以根据业务需求设置不同优先级,存储设备的网卡106在确定第一QP的调整速率时,可以同时考虑虚拟机和运行该虚拟机的服务器的优先级,并预先设置不同优先级对应的权重。相应地,在上述实施例的公式3中D为第一QP关联的虚拟机的优先级对应的权重和第一QP关联的虚拟机所在服务器的优先级对应的权重的乘积。
通过上述方法,可以结合不同服务器和/或虚拟机的SLA进一步确定第一QP的调整速率,优先保证高优先级虚拟机关联的QP中报文发送速率,由此提高整个***业务处理能力,降低业务处理时延,提高***处理效率。
S304、第二设备的网卡向第一设备发送拥塞通知报文,拥塞通知报文中携带第一QP的调整速率。
S305、第一设备根据第一QP的调整速率调整第一QP的发送速率。
其中,本实施例中的S304、S305与图2所示实施例中的S204、S205相同,本申请不再赘述。
本实施例中网卡在确定第一QP的调整速率时,不仅考虑到的第一QP的最大发送速率,还考虑到了各服务器以及服务器中的虚拟机的业务的优先级的不同,进一步提高了本申请报文发送的方法中数据传输***拥塞缓解的合理性。
可选地,上文中图1至图3实施例所提供的报文发送的方法还可以适用于存储设备与存储设备之间的报文发送。
上文中结合图1至图3详细描述了根据本申请实施例所提供的一种报文发送的方法,下面将结合图4至图5,描述根据本申请实施例所提供的实现报文发送的装置和设备。
图4为本申请提供的一种报文发送的装置的结构示意图。如图所示,该装置可以为图1所示实施例中的存储设备102或存储设备102中的网卡106,该装置基于RoCE协议与第一服务器103在存储设备102上建立第一QP′、与第二服务器104在存储设备102上建立第二QP′、与第三服务器103在存储设备102上建立第三QP′,同时还在第一服务器103上建立有第一QP,第二服务器104上建立有第二QP,在第三服务器105上建立有第三QP。用于实现图2至图3所示实施例中的报文发送的方法。本实施例中的第一设备可以为图1中的第一服务器103。如图4所示,报文发送的装置包括:获取模块401、处理模块402和发送模块403;
获取模块401,用于接收经过交换机转发的来自第一设备的第一QP的第一报文,获取第一QP的即时速率和最大发送速率,第一QP的即时速率表示单位时间内第一QP与第一QP′之间发送的报文的个数,第一QP的最大发送速率表示单位时间内第一QP与第一QP′之间预先设定的允许发送的最大报文个数;
处理模块402,用于根据第一QP的即时速率和最大发送速率确定第一QP的调整速率;
发送模块403,用于向第一设备发送拥塞通知报文,拥塞通知报文中携带第一QP的调整速率。
可选地,处理模块402还用于,根据第一QP的即时速率、第一设备的优先级所对应的权重系数和第一QP的最大发送速率确定第一QP的调整速率;或者,
根据第一QP的即时速率和第一QP的最大发送速率,以及与第一QP绑定的虚拟机的优先级对应的权重系数确定第一QP的调整速率;或者,
根据第一QP的即时速率和第一QP的最大发送速率,以及第一设备的优先级和与第一QP绑定的虚拟机的优先级对应的权重系数确定第一QP的调整速率。
可选地,报文发送的装置还与至少一个第三设备中每个第三设备间基于RoCE协议在每个第三设备上建立至少一个QP,第一设备与至少一个第三设备中包括m个QP;
其中,Ai指示m个QP中的第i个QP的即时速率,Ci指示m个QP中的第i个QP的最大发送速率,m为正整数,i的取值包括从1至m的正整数,第三设备可以为图1所示实施例中的第二服务器104或第三服务器105。
可选地,报文发送的装置还与至少一个第三设备中每个第三设备间基于RoCE协议在每个第三设备上建立至少一个QP,第一设备与第三设备中包括m个QP;
其中,Ai指示m个QP中的第i个QP的即时速率,Ci指示m个QP中的第i个QP的最大发送速率,m为正整数,i的取值包括从1至m的正整数,第三设备可以为图1所示实施例中的第二服务器104或第三服务器105。
可选地,获取模块401具体用于:接收经过交换机转发的来自第一设备的第一QP的第一报文,读取第一报文的ECN标识位,确定第一报文的ECN标识位指示交换机出现网络拥塞,获取第一QP的即时速率和最大发送速率。
应理解的是,本申请实施例的装置可以通过专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logicdevice,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logicaldevice,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现图2和图3所示的数据处理的实现方法时,上述装置及其各个模块也可以为软件模块。
根据本申请实施例的装置可对应于执行本申请实施例中描述的方法,并且装置中的各个单元的上述和其它操作和/或功能分别为了实现图2和图3的各个方法的相应流程,为了简洁,在此不再赘述。
本实施例提供的报文发送的装置根据服务器发送报文的即时速率和服务器对应的发送报文的最大发送速率来确定服务器发送报文的调整速率,根据各个QP不同情况调整其发送速率,缓解了数据传输***的拥塞,避免影响虚拟机和服务器的业务处理能力。进一步地,网卡在确定调整速率时考量虚拟机和/或服务器的优先级,针对不同优先级的用户实施不同的降速策略,优先处理高优先级业务需求对应的QP的报文。
图5为本申请提供的一种存储设备的结构示意图。如图5所示,存储设备包括处理器501、存储器502、通信接口503和总线504;其中,处理器501、存储器502、通信接口503之间通过总线504连接并完成相互间的通信,也可以通过无线传输等其他手段实现通信。存储器502中用于存储计算机执行指令,存储设备运行时,处理器501执行存储器502中的计算机执行指令以利用存储设备中的硬件资源执行以下操作:
接收经过交换机转发的来自第一设备的第一QP的第一报文,获取第一QP的即时速率和最大发送速率,第一QP的即时速率表示单位时间内第一QP与第一QP′之间发送的报文的个数,第一QP的最大发送速率表示单位时间内第一QP与第一QP′之间预先设定的允许发送的最大报文个数;
根据第一QP的即时速率和最大发送速率确定第一QP的调整速率;
向第一设备发送拥塞通知报文,拥塞通知报文中携带第一QP的调整速率。
可选地,存储设备还用于:根据第一QP的即时速率、第一设备的优先级所对应的权重系数和第一QP的最大发送速率确定第一QP的调整速率;或者,
根据第一QP的即时速率和第一QP的最大发送速率,以及与第一QP绑定的虚拟机的优先级对应的权重系数确定第一QP的调整速率;或者,
根据第一QP的即时速率和第一QP的最大发送速率,以及第一设备的优先级和与第一QP绑定的虚拟机的优先级对应的权重系数确定第一QP的调整速率。
可选地,存储设备还与至少一个第三设备中每个第三设备间基于RoCE协议在每个第三设备上建立至少一个QP,第一设备与第三设备中包括m个QP;存储设备具体用于:
其中,Ai指示m个QP中的第i个QP的即时速率,Ci指示m个QP中的第i个QP的最大发送速率,m为正整数,i的取值包括从1至m的正整数。
值得说明的是,本实施例中第三设备可以为图1所示的架构中第二服务器或第三服务器。
可选地,还与至少一个第三设备中每个第三设备间基于RoCE协议在每个第三设备上建立至少一个QP,第一设备与第三设备中包括m个QP;存储设备具体用于,
其中,Ai指示m个QP中的第i个QP的即时速率,Ci指示m个QP中的第i个QP的最大发送速率,m为正整数,i的取值包括从1至m的正整数。
可选地,存储设备还用于接收经过交换机转发的来自第一设备的第一QP的第一报文,读取第一报文的ECN标识位,确定第一报文的ECN标识位指示交换机出现网络拥塞,获取第一QP的即时速率和最大发送速率。
应理解,在本申请实施例中,该处理器501可以是CPU,该处理器501还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
该存储器502可以包括只读存储器和随机存取存储器,并向处理器501提供指令和数据。存储器502还可以包括非易失性随机存取存储器。例如,存储器502还可以存储设备类型的信息。
该存储器502可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
该总线504除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线504。
应理解,根据本申请实施例的存储设备可对应于本申请实施例中的图4所示的实现报文发送的装置,并可以对应于执行根据本申请实施例图2和图3中实现报文发送的方法中的相应主体,并且存储设备中的各个模块的上述和其它操作和/或功能分别为了实现图2至图3中的各个方法的相应流程,为了简洁,在此不再赘述。
本实施例提供的存储设备根据服务器发送报文的即时速率和服务器对应的发送报文的最大发送速率来确定服务器发送报文的调整速率,根据各个QP不同情况调整其发送速率,缓解了数据传输***的拥塞,避免影响虚拟机和服务器的业务处理能力。进一步地,网卡在确定调整速率时考量虚拟机和/或服务器的优先级,针对不同优先级的用户实施不同的降速策略,优先处理高优先级业务需求对应的QP的报文。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (11)
1.一种报文发送的方法,其特征在于,所述方法应用于数据传输***,所述数据传输***包括第一设备和第二设备,所述第一设备与所述第二设备间基于远程内存直接访问RoCE协议传输报文,在所述第一设备上建立有至少一个队列对QP,在所述第二设备上建立有与第一QP关联的队列对第一QP',所述第一QP为所述至少一个QP中的一个,所述方法包括:
所述第二设备的网卡接收经过交换机转发的来自所述第一设备的第一QP的第一报文,所述第二设备为所述报文的接收端;
所述第二设备的网卡获取所述第一QP的即时速率和最大发送速率,所述第一QP的即时速率表示单位时间内所述第一QP与所述第一QP'之间发送的报文的个数,所述第一QP的最大发送速率表示单位时间内所述第一QP与所述第一QP'之间预先设定的允许发送的最大报文个数;
所述第二设备的网卡根据所述第一QP的即时速率和所述第一QP的最大发送速率确定所述第一QP的调整速率;
所述第二设备的网卡向所述第一设备发送拥塞通知报文,所述拥塞通知报文中携带所述第一QP的调整速率。
2.根据权利要求1所述的方法,其特征在于,所述第二设备的网卡根据所述第一QP的即时速率和最大发送速率确定所述第一QP的调整速率,包括:
所述第二设备的网卡根据所述第一QP的即时速率、所述第一设备的优先级所对应的权重系数和所述第一QP的最大发送速率确定所述第一QP的调整速率;或者,
所述第二设备的网卡根据所述第一QP的即时速率和所述第一QP的最大发送速率,以及与所述第一QP绑定的虚拟机的优先级对应的权重系数确定所述第一QP的调整速率;或者,
所述第二设备的网卡根据所述第一QP的即时速率和所述第一QP的最大发送速率,以及所述第一设备的优先级和与所述第一QP绑定的虚拟机的优先级对应的权重系数确定所述第一QP的调整速率。
4.根据权利要求2所述的方法,其特征在于,所述数据传输***还包括至少一个第三设备,所述第二设备与所述至少一个第三设备中每个第三设备间基于RoCE协议在所述第三设备上建立有至少一个QP;所述数据传输***中包括m个QP,则所述第二设备的网卡根据所述第一QP的即时速率、所述第一设备的优先级所对应的权重系数和所述第一QP的最大发送速率确定所述第一QP的调整速率,包括:
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述第二设备的网卡获取所述第一QP的即时速率之前包括:
所述第二设备的网卡读取所述第一报文的ECN标识位;
所述第二设备的网卡确定所述第一报文的ECN标识位指示交换机出现网络拥塞。
6.一种报文发送的装置,其特征在于,所述装置与第一设备基于远程内存直接访问RoCE协议传输报文,所述装置为所述报文的接收端,在所述第一设备上建立有至少一个队列对QP,在所述装置上建立有与第一QP关联的队列对第一QP',所述第一QP为所述至少一个QP中的一个,所述装置包括获取模块、处理模块和发送模块;
所述获取模块,用于接收经过交换机转发的来自所述第一设备的第一QP的第一报文,获取所述第一QP的即时速率和所述第一QP的最大发送速率,所述第一QP的即时速率表示单位时间内所述第一QP与所述第一QP'之间发送的报文的个数,所述第一QP的最大发送速率表示单位时间内所述第一QP与所述第一QP'之间预先设定的允许发送的最大报文个数;
所述处理模块,用于根据所述第一QP的即时速率和最大发送速率确定所述第一QP的调整速率;
所述发送模块,用于向所述第一设备发送拥塞通知报文,所述拥塞通知报文中携带所述第一QP的调整速率。
7.根据权利要求6所述的装置,其特征在于,所述处理模块还用于,根据所述第一QP的即时速率、所述第一设备的优先级所对应的权重系数和所述第一QP的最大发送速率确定所述第一QP的调整速率;或者,
根据所述第一QP的即时速率和所述第一QP的最大发送速率,以及与所述第一QP绑定的虚拟机的优先级对应的权重系数确定所述第一QP的调整速率;或者,
根据所述第一QP的即时速率和所述第一QP的最大发送速率,以及所述第一设备的优先级和与所述第一QP绑定的虚拟机的优先级对应的权重系数确定所述第一QP的调整速率。
10.根据权利要求6至9中任一项所述的装置,其特征在于,所述获取模块还用于:
接收经过交换机转发的来自所述第一设备的第一QP的第一报文,读取所述第一报文的ECN标识位,确定所述第一报文的ECN标识位指示交换机出现网络拥塞,获取所述第一QP的即时速率和最大发送速率。
11.一种存储设备,其特征在于,所述存储设备包括处理器、存储器和总线,所述处理器、存储器之间通过总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述存储设备运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述存储设备中的硬件资源执行权利要求1至5中任一所述方法的操作步骤。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/078172 WO2019169556A1 (zh) | 2018-03-06 | 2018-03-06 | 一种报文发送的方法、装置和存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109417514A CN109417514A (zh) | 2019-03-01 |
CN109417514B true CN109417514B (zh) | 2022-07-22 |
Family
ID=65462583
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880002591.2A Active CN109417514B (zh) | 2018-03-06 | 2018-03-06 | 一种报文发送的方法、装置和存储设备 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11310159B2 (zh) |
CN (1) | CN109417514B (zh) |
WO (1) | WO2019169556A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111756641B (zh) * | 2019-03-28 | 2024-07-09 | 华为技术有限公司 | 一种发送设备的调整方法和通信装置 |
CN112311694B (zh) * | 2019-07-31 | 2022-08-26 | 华为技术有限公司 | 一种优先级调整方法及装置 |
CN111277511B (zh) * | 2020-01-19 | 2022-03-01 | 深圳壹账通智能科技有限公司 | 传输速率控制方法、装置、计算机***及可读存储介质 |
CN113300979A (zh) * | 2021-02-05 | 2021-08-24 | 阿里巴巴集团控股有限公司 | Rdma网络下的网卡队列创建方法以及装置 |
US20230066835A1 (en) * | 2021-08-27 | 2023-03-02 | Keysight Technologies, Inc. | Methods, systems and computer readable media for improving remote direct memory access performance |
CN114189477B (zh) * | 2021-10-22 | 2023-12-26 | 新华三大数据技术有限公司 | 一种报文拥塞控制方法及装置 |
CN115277676B (zh) * | 2022-07-28 | 2024-02-20 | 招商局金融科技有限公司 | 基于负载均衡器的文件传输控制方法、装置、设备及介质 |
CN116915722B (zh) * | 2023-09-12 | 2023-12-19 | 珠海星云智联科技有限公司 | 一种网络拥塞调节方法、装置、计算设备及可读存储介质 |
CN116915721B (zh) * | 2023-09-12 | 2023-12-19 | 珠海星云智联科技有限公司 | 一种拥塞控制方法、装置、计算设备及可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104246742A (zh) * | 2012-01-17 | 2014-12-24 | 英特尔公司 | 用于远程客户端访问存储设备的命令验证的技术 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7519650B2 (en) * | 2002-09-05 | 2009-04-14 | International Business Machines Corporation | Split socket send queue apparatus and method with efficient queue flow control, retransmission and sack support mechanisms |
CN102055677A (zh) * | 2011-01-26 | 2011-05-11 | 杭州华三通信技术有限公司 | 减少网络拥塞的方法及设备 |
US9473596B2 (en) * | 2011-09-27 | 2016-10-18 | International Business Machines Corporation | Using transmission control protocol/internet protocol (TCP/IP) to setup high speed out of band data communication connections |
US8705349B2 (en) * | 2011-11-27 | 2014-04-22 | Mellanox Technologies Ltd. | Destination-based congestion control |
US8880935B2 (en) * | 2012-06-12 | 2014-11-04 | International Business Machines Corporation | Redundancy and load balancing in remote direct memory access communications |
US9444748B2 (en) * | 2013-03-15 | 2016-09-13 | International Business Machines Corporation | Scalable flow and congestion control with OpenFlow |
US9166925B2 (en) * | 2013-04-05 | 2015-10-20 | International Business Machines Corporation | Virtual quantized congestion notification |
CN103763213A (zh) * | 2014-01-23 | 2014-04-30 | 中国联合网络通信集团有限公司 | 报文发送方法及装置 |
US9558148B2 (en) * | 2014-04-30 | 2017-01-31 | Intel Corporation | Method to optimize network data flows within a constrained system |
KR102430187B1 (ko) * | 2015-07-08 | 2022-08-05 | 삼성전자주식회사 | RDMA NVMe 디바이스의 구현 방법 |
CN107135164A (zh) * | 2017-06-27 | 2017-09-05 | 中国联合网络通信集团有限公司 | 拥塞控制方法及装置 |
US10594613B2 (en) * | 2017-07-18 | 2020-03-17 | Level 3 Communications, Llc | Systems and methods for enhanced autonegotiation |
CN115941616A (zh) * | 2017-12-15 | 2023-04-07 | 微软技术许可有限责任公司 | 多路径rdma传输 |
-
2018
- 2018-03-06 WO PCT/CN2018/078172 patent/WO2019169556A1/zh active Application Filing
- 2018-03-06 CN CN201880002591.2A patent/CN109417514B/zh active Active
-
2020
- 2020-07-30 US US16/942,988 patent/US11310159B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104246742A (zh) * | 2012-01-17 | 2014-12-24 | 英特尔公司 | 用于远程客户端访问存储设备的命令验证的技术 |
Also Published As
Publication number | Publication date |
---|---|
US11310159B2 (en) | 2022-04-19 |
US20200358701A1 (en) | 2020-11-12 |
CN109417514A (zh) | 2019-03-01 |
WO2019169556A1 (zh) | 2019-09-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109417514B (zh) | 一种报文发送的方法、装置和存储设备 | |
US9225668B2 (en) | Priority driven channel allocation for packet transferring | |
EP2928136B1 (en) | Host network accelerator for data center overlay network | |
US10033644B2 (en) | Controlling congestion controlled flows | |
EP1559222B1 (en) | System and method for receive queue provisioning | |
US8223636B2 (en) | Dynamic adjustment of number of connection setup requests to be initiated to be processed | |
US20140036680A1 (en) | Method to Allocate Packet Buffers in a Packet Transferring System | |
US11782869B2 (en) | Data transmission method and related device | |
US11165705B2 (en) | Data transmission method, device, and computer storage medium | |
WO2019105317A1 (zh) | 一种业务报文发送的方法、网络设备和*** | |
US11620227B2 (en) | Data processing method, network interface card, and server | |
US20200351215A1 (en) | Data Stream Sending Method and System, and Device | |
WO2021143913A1 (zh) | 拥塞控制方法、装置及***、存储介质 | |
CN113595920B (zh) | 网络拥塞控制方法及设备 | |
US10990447B1 (en) | System and method for controlling a flow of storage access requests | |
WO2021114930A1 (zh) | 一种网络切片报文传输方法、电子设备及存储介质 | |
CN112787919B (zh) | 报文传输方法及设备、可读介质 | |
CN116684354A (zh) | 网络流拥塞管理装置及其方法 | |
CN115733799A (zh) | 网络拥塞控制方法及相关装置 | |
WO2024061042A1 (zh) | 数据传输方法和数据传输*** | |
CN116868554A (zh) | 一种控制数据流传输的方法及通信装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |