CN111147386A - 用于处理数据传输拥塞的方法、电子设备和计算机程序产品 - Google Patents

用于处理数据传输拥塞的方法、电子设备和计算机程序产品 Download PDF

Info

Publication number
CN111147386A
CN111147386A CN201811300794.8A CN201811300794A CN111147386A CN 111147386 A CN111147386 A CN 111147386A CN 201811300794 A CN201811300794 A CN 201811300794A CN 111147386 A CN111147386 A CN 111147386A
Authority
CN
China
Prior art keywords
storage node
port
storage
congestion
data
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.)
Granted
Application number
CN201811300794.8A
Other languages
English (en)
Other versions
CN111147386B (zh
Inventor
高伟
张康
吴佳磊
孙骜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201811300794.8A priority Critical patent/CN111147386B/zh
Priority to US16/442,369 priority patent/US20200145478A1/en
Publication of CN111147386A publication Critical patent/CN111147386A/zh
Application granted granted Critical
Publication of CN111147386B publication Critical patent/CN111147386B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开的实施例提供了用于处理数据传输拥塞的方法、电子设备和计算机程序产品。该方法包括确定交换机的第一端口处是否存在由多个存储节点引起的拥塞,第一端口连接到第一存储节点,多个存储节点经由交换机的第一端口向第一存储节点传输数据。该方法还包括响应于确定第一端口处存在拥塞,从多个存储节点中至少选择第二存储节点。该方法进一步包括更新第二存储节点的数据传输路径的配置,以使第二存储节点旁路第一端口而向第一存储节点传输数据。利用本公开的实施例,存储节点间的数据传输效率得以提高,从而有助于提高存储系统的整体性能。

Description

用于处理数据传输拥塞的方法、电子设备和计算机程序产品
技术领域
本公开的实施例涉及数据存储领域,并且更具体地,涉及用于处理数据传输拥塞的方法、电子设备和计算机程序产品。
背景技术
分布式存储系统越来越多地在各种数据中心使用。在分布式存储系统中,各个存储节点通过基于诸如传输控制协议(TCP)的网络传输数据。当终端用户读取数据时,存在多个数据节点同时向客户端节点发回数据的情形。这种多对一的通信量模式又被称为聚播(incast),其在各种数据中心应用中是常见的。聚播的存在常常引起网络拥塞,这降低了分布式存储系统的性能。
发明内容
本公开的实施例提供了一种用于处理数据传输拥塞的方案。
在本公开的第一方面中,提供了一种处理数据传输拥塞的方法。该方法包括:确定交换机的第一端口处是否存在由多个存储节点引起的拥塞,第一端口连接到第一存储节点,多个存储节点经由交换机的第一端口向第一存储节点传输数据。该方法还包括响应于确定第一端口处存在拥塞,从多个存储节点中至少选择第二存储节点。该方法还包括更新第二存储节点的数据传输路径的配置,以使第二存储节点旁路第一端口而向第一存储节点传输数据。
在本公开的第二方面中,提供了一种电子设备。该电子设备包括处理器以及与处理器耦合的存储器,存储器具有存储于其中的指令,指令在被处理器执行时使设备执行动作。动作包括确定交换机的第一端口处是否存在由多个存储节点引起的拥塞,第一端口连接到第一存储节点,多个存储节点经由交换机的第一端口向第一存储节点传输数据。动作还包括响应于确定第一端口处存在拥塞,从多个存储节点中至少选择第二存储节点。动作还包括更新第二存储节点的数据传输路径的配置,以使第二存储节点旁路第一端口而向第一存储节点传输数据。
在本公开的第三方面中,提供了一种计算机程序产品,计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,机器可执行指令在被执行时使机器执行根据第一方面的方法。
提供发明内容部分是为了简化的形式来介绍对概念的选择,它们在下文的具体实施方式中将被进一步描述。发明内容部分无意标识本公开的关键特征或主要特征,也无意限制本公开的范围。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。在附图中:
图1示出了本公开的实施例可以在其中被实现的示例环境的示意图;
图2示出了根据本公开的实施例的处理数据传输拥塞的过程的流程图;
图3示出了根据本公开的一些实施例的获取传输控制信息的示意图;
图4示出了根据本公开的一些实施例的确定拥塞的过程的流程图;
图5示出了根据本公开的一些实施例的旁路第一端口来传输数据的示意图;
图6示出了根据本发明的一些实施例的环形传输路径的示意图;
图7示出了根据本发明的另一些实施例的环形传输路径的示意图;以及
图8示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参考附图中示出的若干示例实施例来描述本公开的原理。虽然附图中显示了本公开的优选实施例,但应当理解,描述这些实施例仅是为了使本领域技术人员能够更好地理解进而实现本公开,而并非以任何方式限制本公开的范围。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上文所提及的,在分布式存储系统中存在其中多个发送方节点向一个接收方节点传输数据的聚播(通常又被称为TCP聚播)。当TCP聚播发生并导致网络拥塞(以下简称为拥塞)时,发送方节点与接收方节点之间的交换机常常出现分组丢失。TCP聚播实际上比想象中更为糟糕。即使在针对低延时的切断转发模式的情况下,大多数交换机也无法很好地处理TCP聚播。表1示出了存在TCP聚播情况下交换机的测试数据,其中“输入分组丢失”表示每秒丢失的分组数目。可以看出,在交换机的输出网络接口控制器(NIC)仍然具有一半的可用带宽时,交换机的输入NIC侧上的分组也开始严重丢失。
表1在TCP聚播情况下交换机的测试数据
Figure BDA0001852334960000031
每个交换机都有不同的处理TCP聚播的能力,并且在没有TCP聚播的情况下它们都表现很好。作为对比,表2示出了没有TCP聚播情况下交换机的测试数据。从表2中可以看出,发送和接收的网络吞吐量远高于表1中所示的TCP聚播情况,而没有任何分组丢失。
表2没有TCP聚播情况下交换机的测试数据
Figure BDA0001852334960000041
TCP本身通过TCP拥塞控制协议来控制吞吐量,而发送方和接收方并不知道彼此状态,直到从对端获得具有窗口更新或零窗口的确认。数据流量的速度还受到许多其他因素的影响,例如接收应用的速度、对发送方的确认速度和发送方拥塞窗口估计等。当性能下降时,工程师很难弄清楚为什么流量变慢。
在常规实现中,当问题发生时,通常使用以下方法来弄清楚存储系统中的问题:(1)检查应用服务器的日志。如果确实存在网络错误,有时日志会给出一些提示,但可能不会继续提供更多信息,诸如出现了聚播。(2)使用ss/netstat/iftop等命令来粗略检查网络情况。(3)使用tcpdump来捕获用于网络封包分析软件的数据包以进行分析。然而,快速缩小问题并不容易。这些工具不如预期的那么准确并且需要经验来做出最终判断。(4)登录到交换机以检查计数器,如丢包计数器。
然而,发明人认识到这种实现中存在若干问题。上述方式均未利用TCP内部逻辑,特别是所有的故障排除步骤都是手动完成的而且很耗时。因此,使用常规的故障排除方法,很难知晓网络路径和软件堆栈上出现的真正问题,并且难以进行综合分析。TCP聚播引起的拥塞使得当负载较大时网络成为分布式存储系统的性能瓶颈。
本公开提供了一种处理数据传输拥塞的方案,以至少消除以上缺陷中的一个或多个。通过实时监测分布式存储系统中交换机和多个存储节点的状态,可以确定交换机的端口是否存在网络拥塞。当确定某一端口发生拥塞时,从经由该端口来传输数据的存储节点中选择至少一个存储节点。然后可以通过更新所选择的存储节点的数据传输路径的配置,来使所选择的存储节点旁路发生拥塞的端口来传输数据。在本公开的实施例中,可以准确地确定存储系统中发生拥塞的部分,并动态地控制数据传输的路径。以这样的方式,实现了更智能的资源分配,提高了存储节点间的数据传输效率,从而有助于存储系统整体性能的提高。
以下将参考附图来详细描述本公开的实施例。图1示出了本公开的实施例可以在其中被实现的示例环境100的示意图。在图1所示的示例环境100中,分布式存储系统包括存储节点110、120、130和140以及交换机150。当接收到用户的数据请求时,存储节点110、120、130和140可以通过交换机150来向彼此传输数据。应当理解,图1中所示的存储节点和交换机的数目仅是示意性的,而无意限制本公开的范围。本公开的实施例可以应用于包括任何数目的节点和交换机的系统。
交换机150上布置有多个端口151-157。这些端口分别连接至存储节点110、120、130和140,例如,通过存储节点上的NIC而连接。在图1的示例中,端口151-154分别通过NIC111-114而连接至存储节点110。端口155-157分别连接至存储节点120、130和140(为清楚起见,存储节点120、130和140上的NIC未被示出)。应当理解,本文中所示出的存储节点上的NIC仅是示例性的,存储节点也可以通过能够实现网络连接的其他装置或设备而与交换机连接。
应当注意,图1中所示的端口和NIC的数目是示例性的,而无意限制本公开的范围。交换机150可以具有更多或更少的端口,并且可以具有未连接至任何存储节点的端口。存储节点110、120、130和140也可以具有更多或更少的NIC,并且通过NIC而与交换150连接。此外,尽管未示出,交换机150可以具有除端口155-157之外的分别连接至存储节点120、130和140的端口。
为了实时监测各个存储节点的数据传输情况和交换机的状态,可以在存储系统中使用数据库102。数据库102可以是时序数据库,诸如CloudDB。当然这仅仅是示例,任何能够存储时序数据或接收流式输出数据的数据库均可以与本公开的实施例结合使用。存储节点110、120、130和140的与传输控制有关的信息(诸如TCP信息)将被流式输出至数据库102(下文将参考图3进行详细描述)。交换机的操作参数,例如表1和表2中所列举的NIC带宽、使用率和分组丢失数据等,也可以被流式至数据库102。
控制单元101可以利用数据库102中的信息进行分析,以确定交换机150的端口是否存在拥塞。在图1的示例中,存储节点120、130和140均经由端口151向存储节点110传输数据。因此,端口151处可能存在拥塞。控制单元101还可以来自存储节点120、130和140的部分数据流量重新引导至交换机150的其他端口或以其他方式旁路端口151而传输。
尽管示出与交换机150的状态有关的参数被输出至数据库102,但是控制单元101也可以直接从交换150获取操作参数。控制单元101可以部署在专用计算设备(例如,专用服务器)上,也可以部署在任一存储节点处。无论以何种方式来部署控制单元101,控制单元101均可以与存储节点110、120、130和140中的每一个通信,以更新存储节点的与数据传输路径有关的配置。
下面将参考图2-图7来详细描述本公开的实施例。图2示出了根据本公开的实施例的处理数据传输拥塞的过程200的流程图。过程200可以由控制单元101来实现,也可以在交换机150处实现。对于过程200由控制单元101来实现的情形,可以利用各种商用交换机,而不需要对交换机进行改变,因而具有广泛的适用性。为便于讨论,结合图1以由控制单元101实现为例来描述过程200。控制单元101利用来自数据库102的信息和参数来监测和分析交换机150的各个端口,例如端口151。
在框210,控制单元101确定交换机150的第一端口151处是否存在由多个存储节点引起的拥塞。例如,在图1的示例中,第一端口150连接到存储节点110(下文中称为第一存储节点),并且存储节点120、130和140(下文中称为多个存储节点)经由交换机150的第一端口151向第一存储节点110传输数据。应当理解,尽管未示出,但是存储系统还可以存在其他没有经由第一端口151而向第一存储节点传输数据的存储节点。
如前文所提及的,由于拥塞本身是复杂问题,因此控制单元101需要结合交换机和存储节点的因素来确定第一端口151处的拥塞。例如,在某个存储节点的套接字的拥塞窗口减小并且交换机的丢弃计数器持续增加的情况下,可以认为存储系统中发生了拥塞。
控制单元101可以获取与交换机150的状态有关的参数,诸如各个端口151-157的操作参数。这样的操作参数可以包括诸如表1和表2中所列举的端口的输入NIC带宽、输入NIC使用率、输出NIC带宽、输出NIC使用率和输入分组丢失等。
控制单元101还需要获取和分析与存储节点110、120、130和140的传输控制有关的信息。图3示出了根据本公开的一些实施例的获取传输控制信息的示意图300。对于存储节点110、120、130和140中的任一个,内核301可以包括以下模块:套接字301、TCP 320、TCP探针330、NIC 340等。
TCP探针330可以将与存储节点的传输控制有关的信息(诸如,TCP信息)流式输出至时序数据库102。TCP探针330输出的信息可以例如包括拥塞窗口(cwnd)、确认/序列(ack/seq)等参数。此外,诸如netsta计数器之类的其他关键信息也可以被输出到数据库102。可以基于不同的策略来动态启用或禁用TCP探针330,以减少TCP探针330的副作用。
以上提及的信息仅是示例性的,并且本公开的实施例可以利用与交换机和存储节点有关的任何信息。控制单元101因此可以实时利用和分析数据库102中的这些信息以确定交换机150的端口是否存在拥塞。图4示出了根据本公开的一些实施例的确定拥塞的过程400的流程图。过程400可以视为图2中的框210的具体实现。
在框410,控制单元101基于第一端口151的操作参数确定第一端口151处是否存在分组丢失。例如,如果控制单元101从交换机150输出给数据库102的操作参数中确定第一端口151的“输入分组丢失”参数不为零,则控制单元101可以确定第一端口151处存在分组丢失。
如果控制单元101确定第一端口151处存在分组丢失,则过程400可以进行到框420。控制单元101可以利用数据库101中的信息确定存储节点120、130和140正在经由第一端口151而向第一存储节点110传输数据。
在框420,控制单元101获取(例如,从数据库102)与多个存储节点120、130和140的传输控制有关的信息。在框430,控制单元101确定这样的信息是否指示多个存储节点120、130和140中的至少一个存储节点发生数据传输的延迟。如果控制单元101确定多个存储节点120、130和140中的至少一个存储节点(例如,存储节点130)发生数据传输的延迟,则过程400可以进行到框440。在框440,控制单元101确定第一端口151处存在拥塞。
在一些实施例中,在框420处获取信息包括拥塞窗口,拥塞窗口的减小意味着数据传输的延迟。在这样的实施例中,控制单元101可以在框430处确定存储节点120、130和140的拥塞窗口是否减小。如果存储节点120、130和140中的至少一个存储节点(例如,存储节点130)的拥塞窗口减小,则控制单元101在框440可以确定在第一端口151处存在拥塞。
在一些实施例中,在框420处获取信息还可以包括能够用于指示数据传输延迟的其他信息或参数。例如,这样的信息可以指示是否从接收方(该示例中为第一存储节点110)接收到重复的确认(ack)。
由于拥塞本身的复杂性,仅基于交换机或仅基于存储节点的操作状态难以确定拥塞的出现。因此,在本公开的实施例中,以此方式可以准确地确定拥塞的出现及发生拥塞的端口。
继续参考图2。如果在框210确定第一端口151处存在拥塞,则过程200进行到框220。在框220,控制单元101从多个存储节点120、130和140中至少选择一个存储节点(例如,存储节点120),该存储节点的数据将旁路第一端口151而传输。为了便于讨论,以下将所选择的存储节点称为第二存储节点。
控制单元101可以从多个存储节点120、130和140中选择任一个存储节点,也可以基于数据流量来选择第二存储节点。控制单元101可以确定从多个存储节点120、130和140中的每个存储节点发送的数据流量。例如,控制单元101可以利用数据库102中的信息来确定数据流量。
在一些实施例中,控制单元101可以从多个存储节点120、130和140中选择数据流量最大的存储节点作为上述的第二存储节点。在一些实施例中,控制单元101可以选择具有第二大数据流量的存储节点作为上述的第二存储节点。在这样的实施例中,通过改变较大的数据流量的传输路径,可以有效地降低发生拥塞的端口的数据传输负荷,从而有助于传输效率的提高。
在另一些实施例中,控制单元101还可以从多个存储节点120、130和140中选择多于一个的存储节点,以使这些存储节点的数据旁路第一端口151而传输,并且这些存储节点的新的数据传输路径可以不相同。因此,在这样的实施例中,发生拥塞的端口的数据传输效率可以进一步提高。
为了便于讨论,假设控制单元101在框220至少选择存储节点120(以下称为第二存储节点120)。在框230,控制单元101更新第二存储节点120的数据传输路径的配置,以使第二存储节点120旁路第一端口151而向第一存储节点110传输数据。控制单元101可以将更新的配置以消息形式发送给第二存储节点120,也可以通过诸如远程过程调用(RPC)的其他方式来向第二存储节点120传达更新的配置。本公开的实施例在此方面不受限制。
在一些实施例中,控制单元101可以更新第二存储节点120的数据传输路径的配置,以使第二存储节点120经由交换机150的其他端口来向第一存储节点110传输数据。下文将参考图5来描述这样的实施例。
在一些实施例中,存储节点110、120、130和140中的所有存储节点或一些存储节点可以被连接在一起,使得数据可以直接发送给相邻存储节点,或者经由相邻的存储节点而中继给目的存储节点。在这样的实施例中,控制单元101可以更新第二存储节点120的数据传输路径的配置,以使第二存储节点120旁路交换机150而向第一存储节点110传输数据。下文将参考图6和图7来描述这样的实施例。
在本公开的实施例中,通过监测交换机和存储节点的操作状态,可以确定交换机的端口处发生的拥塞并且引起拥塞的数据流量中的部分数据流量重新引导至其他路径。以此方式,可以减少数据传输拥塞并提高数据传输效率,从而有助于存储系统整体性能的提高。
如上文所提及的,可以通过使第二存储节点120经由交换机150的其他端口向第一存储节点110传输数据来处理第一端口151处的拥塞。下面将参考图5来描述这样的实施例。图5示出了根据本公开的一些实施例的旁路第一端口来传输数据的示意图500。
控制单元101可以从交换机150的连接至第一存储节点110的多个端口中选择其他的空闲端口。具体地,控制单元101可以基于交换机151的多个端口152-154的资源使用率,从多个端口152-154中选择第二端口。例如,在图5的示例中,控制单元101选择第二端口152。
控制单元101可以继而解激活第二存储节点120到第一端口151的连接,并且激活第二存储节点120到第二端口152的连接,以使使第二存储节点120经由第二端口152而向第一存储节点传输数据。例如,控制单元101可以通过修改第二存储节点120的套接字的配置来实现解激活和激活。
控制单元101可以确定被分配给第二端口152所连接到的第一存储节点110的NIC112的网络地址(诸如,互联网协议地址),并且将第二存储节点120的套接字的目的地址更新为被分配给NIC 112的IP地址。对于网络绑定型NIC,控制单元101可以通过仅更改第二存储节点120的套接字的端口号来实现到第二端口152的连接的激活和到第一端口151的连接的解激活。
如上文所提及的,还可以使第二存储节点120旁路交换机150而向第一存储节点110来传输数据。下面将参考图6和图7来描述这样的实施例。图6示出了根据本发明的一些实施例的环形传输路径的示意图600。
如图6所示,存储系统的存储节点110、120、130和140可以串行地连接在一起,例如连接成环形回路。应当理解,图6所示的存储节点110、120、130和140之间的连接仅是示意性的,并且存储系统还可以存在其他存储节点,例如连接在存储节点110与存储节点140之间的存储节点。
在某些实施例中,存储节点110、120、130和140之间的连接例如可以通过NIC(包括常规NIC和智能NIC)或现场可编程门阵列(FGPA)来实现。例如,在图6的示例,可以通过第一存储节点110的NIC 114与第二存储节点的NIC 620的连接来实现第一存储节点110与第二存储节点120之间的直接连接601。
对于图6的示例,控制单元101可以确定第一存储节点110与第二存储节点120之间具有直接连接601。控制单元101可以继而解激活第二存储节点120与交换机150的连接,并且激活第二存储节点120与第一存储节点110的直接连接610,以使第二存储节点120直接向第一存储节点110传输数据。因此,在图6的示例中,在配置更新之后,第二存储节点120的数据将经由NIC 620和NIC 114而传输到第一存储节点110。
控制单元101可以通过修改第二存储节点120的套接字的配置来实现解激活和激活。在图6的示例中,直接连接601是通过第一存储节点110的NIC 114与第二存储节点120的NIC 620之间的连接实现的。因此,控制单元101可以将第二存储节点120的套接字的源地址更新为被分配给NIC 620的IP地址,并且将第二存储节点120的套接字的目的地址更新为被分配给NIC 114的IP地址。如上文参考图5所提及的,对于网络绑定型NIC,控制单元101可以通过仅更改第二存储节点120的套接字的端口号来实现直接连接601的激活和到第一端口151的连接的解激活。
图7示出了根据本发明的另一些实施例的环形传输路径的示意图700。与图6的示例类似,在图7的示例中,存储节点110、120、130、140和730串行地连接环形回路。如图7所示,第一存储节点110与第二存储节点120不是直接连接的。第一存储节点110与存储节点730(以下称为第三存储节点730)之间具有第一直接连接701,并且第二存储节点120与第三存储节点730之间具有第二直接连接702。
在这种情况下,控制单元101可以解激活第二存储节点120与交换机150的连接,并且激活第一直接连接701和第二直接连接702,以使第三存储节点730将来自第二存储节点120的数据中继给第一存储节点110。因此,在图7的示例中,在配置更新之后,第二存储节点120的数据将首先经由NIC 721和NIC 731而传输到第三存储节点730,然后经由NIC 732和NIC 711而转发给第一存储节点110。
类似地,控制单元101可以通过修改第二存储节点120的套接字的配置来实现解激活和激活。在图7的示例中,第一直接连接701是通过第一存储节点110的NIC 711与第三存储节点730的NIC 732之间的连接实现的,并且第二直接连接702是通过第二存储节点120的NIC 721与第三存储节点730的NIC 731之间的连接实现的。因此,控制单元101可以将第二存储节点120的套接字的源地址更新为被分配给NIC 721的IP地址,并且将第二存储节点120的套接字的目的地址更新为被分配给NIC 711的IP地址。如上文参考图5所提及的,对于网络绑定型NIC,控制单元101可以通过仅更改第二存储节点120的套接字的端口号来实现第一直接连接701和第二直接连接702的激活以及到第一端口151的连接的解激活。
在参考图6和图7所描述的实施例中,通过将存储节点全部或部分地串行连接在一起,可以创建额外的数据传输路径。以此方式,可以缓解交换机在数据传输中的负荷,有利于进一步提高存储系统的性能。
在图6和图7所示的情况中,存储节点之间的连接可以通过常规NIC、智能NIC和FGPA等来实现。在常规NIC的情况下,可以支持跨一个节点的数据传输而不影响该节点的性能。在智能NIC的情况下,由于智能NIC本身具有一定的处理能力,因此可以支持跨两个或三个节点来传输数据而不影响节点的性能。
在存储节点间串行地全部或部分地连接在一起的情况下,当要向相邻或相近的存储节点传输数据时,可以优先选择通过这样的串联路径来传输数据。举例而言,在图7的示例中,当存储节点120将要向存储节点110传输数据时,存储节点120可以选择向存储节点730发送数据以使存储节点730将数据中继给存储节点110。以此方式,可以尽可能多地减小交换机在数据传输中的负荷。
图8示出了可以用来实现本公开的实施例的示例设备800的示意性框图。如图所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理单元801执行上文所描述的各个方法和处理,例如过程200和400中的任一个。例如,在一些实施例中,过程200和400中的任一个可以被实现为计算机软件程序或计算机程序产品,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到RAM 803并由CPU 801执行时,可以执行上文描述的过程200和400中的任一个的一个或多个步骤。备选地,在其他实施例中,CPU 801可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行过程200和400中的任一个。
根据本公开的一些实施例,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现根据本公开的方法。
本领域的技术人员应当理解,上述本公开的方法的各个步骤可以通过通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本公开不限制于任何特定的硬件和软件结合。
应当理解,尽管在上文的详细描述中提及了设备的若干装置或子装置,但是这种划分仅仅是示例性而非强制性的。实际上,根据本公开的实施例,上文描述的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
以上所述仅为本公开的可选实施例,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等效替换、改进等,均应包含在本公开的保护范围之内。

Claims (15)

1.一种处理数据传输拥塞的方法,包括:
确定交换机的第一端口处是否存在由多个存储节点引起的拥塞,所述第一端口连接到第一存储节点,所述多个存储节点经由所述交换机的所述第一端口向所述第一存储节点传输数据;
响应于确定所述第一端口处存在所述拥塞,从所述多个存储节点中至少选择第二存储节点;以及
更新所述第二存储节点的数据传输路径的配置,以使所述第二存储节点旁路所述第一端口而向所述第一存储节点传输数据。
2.根据权利要求1所述的方法,其中确定所述第一端口处是否存在所述拥塞包括:
基于所述第一端口的操作参数确定所述第一端口处是否存在分组丢失;
响应于确定存在所述分组丢失,获取与所述多个存储节点的传输控制有关的信息;以及
响应于所述信息指示所述多个存储节点中的至少一个存储节点发生数据传输的延迟,确定所述第一端口处存在所述拥塞。
3.根据权利要求2所述的方法,其中所述信息包括拥塞窗口,并且其中确定所述第一端口处存在所述拥塞包括:
响应于所述至少一个存储节点的所述拥塞窗口减小,确定所述第一端口处存在所述拥塞。
4.根据权利要求1所述的方法,其中从所述多个存储节点中选择所述第二存储节点包括:
确定从所述多个存储节点中的每个存储节点发送的数据流量;以及
从所述多个存储节点中选择所述数据流量最大的存储节点作为所述第二存储节点。
5.根据权利要求1所述的方法,其中更新所述配置包括:
基于所述交换机的多个端口的资源使用率,从所述多个端口中选择第二端口,所述第二端口连接到所述第一存储节点但不同于所述第一端口;
解激活所述第二存储节点到所述第一端口的连接;以及
激活所述第二存储节点到所述第二端口的连接,以使所述第二存储节点经由所述第二端口而向所述第一存储节点传输数据。
6.根据权利要求1所述的方法,其中更新所述配置包括:
响应于所述第一存储节点与所述第二存储节点之间具有直接连接,
解激活所述第二存储节点与所述交换机的连接;以及
激活所述第二存储节点与所述第一存储节点的所述直接连接,以使所述第二存储节点直接向所述第一存储节点传输数据。
7.根据权利要求1所述的方法,其中更新所述配置包括:
响应于所述第一存储节点与第三存储节点之间具有第一直接连接、并且所述第二存储节点与所述第三存储节点之间具有第二直接连接,
解激活所述第二存储节点与所述交换机的连接;以及
激活所述第一直接连接和所述第二直接连接,以使所述第三存储节点将来自所述第二存储节点的数据中继给所述第一存储节点。
8.一种电子设备,包括:
处理器;以及
与所述处理器耦合的存储器,所述存储器具有存储于其中的指令,所述指令在被处理器执行时使所述设备执行动作,所述动作包括:
确定交换机的第一端口处是否存在由多个存储节点引起的拥塞,所述第一端口连接到第一存储节点,所述多个存储节点经由所述交换机的所述第一端口向所述第一存储节点传输数据;
响应于确定所述第一端口处存在所述拥塞,从所述多个存储节点中至少选择第二存储节点;以及
更新所述第二存储节点的数据传输路径的配置,以使所述第二存储节点旁路所述第一端口而向所述第一存储节点传输数据。
9.根据权利要求8所述的设备,其中确定所述第一端口处是否存在所述拥塞包括:
基于所述第一端口的操作参数确定所述第一端口处是否存在分组丢失;
响应于确定存在所述分组丢失,获取与所述多个存储节点的传输控制有关的信息;以及
响应于所述信息指示所述多个存储节点中的至少一个存储节点发生数据传输的延迟,确定所述第一端口处存在所述拥塞。
10.根据权利要求9所述的设备,其中所述信息包括拥塞窗口,并且其中确定所述第一端口处存在所述拥塞包括:
响应于所述至少一个存储节点的所述拥塞窗口减小,确定所述第一端口处存在所述拥塞。
11.根据权利要求8所述的设备,其中从所述多个存储节点中选择所述第二存储节点包括:
确定从所述多个存储节点中的每个存储节点发送的数据流量;以及
从所述多个存储节点中选择所述数据流量最大的存储节点作为所述第二存储节点。
12.根据权利要求8所述的设备,其中更新所述配置包括:
基于所述交换机的多个端口的资源使用率,从所述多个端口中选择第二端口,所述第二端口连接到所述第一存储节点但不同于所述第一端口;
解激活所述第二存储节点到所述第一端口的连接;以及
激活所述第二存储节点到所述第二端口的连接,以使所述第二存储节点经由所述第二端口而向所述第一存储节点传输数据。
13.根据权利要求8所述的设备,其中更新所述配置包括:
响应于所述第一存储节点与所述第二存储节点之间具有直接连接,
解激活所述第二存储节点与所述交换机的连接;以及
激活所述第二存储节点与所述第一存储节点的所述直接连接,以使所述第二存储节点直接向所述第一存储节点传输数据。
14.根据权利要求8所述的设备,其中更新所述配置包括:
响应于所述第一存储节点与第三存储节点之间具有第一直接连接、并且所述第二存储节点与所述第三存储节点之间具有第二直接连接,
解激活所述第二存储节点与所述交换机的连接;以及
激活所述第一直接连接和所述第二直接连接,以使所述第三存储节点将来自所述第二存储节点的数据中继给所述第一存储节点。
15.一种计算机程序产品,所述计算机程序产品被有形地存储在计算机可读介质上并且包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至7中任一项所述的方法。
CN201811300794.8A 2018-11-02 2018-11-02 用于处理数据传输拥塞的方法、电子设备和计算机可读介质 Active CN111147386B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201811300794.8A CN111147386B (zh) 2018-11-02 2018-11-02 用于处理数据传输拥塞的方法、电子设备和计算机可读介质
US16/442,369 US20200145478A1 (en) 2018-11-02 2019-06-14 Method, electronic device, and computer program product for handling congestion of data transmission

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811300794.8A CN111147386B (zh) 2018-11-02 2018-11-02 用于处理数据传输拥塞的方法、电子设备和计算机可读介质

Publications (2)

Publication Number Publication Date
CN111147386A true CN111147386A (zh) 2020-05-12
CN111147386B CN111147386B (zh) 2023-06-30

Family

ID=70459162

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811300794.8A Active CN111147386B (zh) 2018-11-02 2018-11-02 用于处理数据传输拥塞的方法、电子设备和计算机可读介质

Country Status (2)

Country Link
US (1) US20200145478A1 (zh)
CN (1) CN111147386B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115499294A (zh) * 2022-09-21 2022-12-20 上海天玑科技股份有限公司 一种分布式存储环境网络亚健康检测及故障自动处理方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101640644A (zh) * 2009-09-01 2010-02-03 杭州华三通信技术有限公司 基于灵活链路组的流量均衡方法和设备
CN101834789A (zh) * 2010-04-15 2010-09-15 南京大学 面向包-电路交换片上路由器的回退转向路由算法及所用路由器
CN102893560A (zh) * 2011-05-16 2013-01-23 华为技术有限公司 一种数据流传送方法及网络设备
US20140215058A1 (en) * 2013-01-26 2014-07-31 Lyatiss, Inc. Methods and systems for estimating and analyzing flow activity and path performance data in cloud or distributed systems
CN104618254A (zh) * 2015-02-12 2015-05-13 杭州华三通信技术有限公司 软件定义网络中避免网络拥塞的方法和控制器
US20160050150A1 (en) * 2014-08-12 2016-02-18 Arista Networks, Inc. Method and system for tracking and managing network flows
US9473408B1 (en) * 2014-01-14 2016-10-18 Google Inc. Shortest first longer next routing with congestion reduction
CN108123878A (zh) * 2016-11-30 2018-06-05 华为技术有限公司 一种路由方法、装置及数据转发设备
CN108259387A (zh) * 2017-12-29 2018-07-06 曙光信息产业(北京)有限公司 一种通过交换机构建的交换系统及其路由算法
CN108282707A (zh) * 2017-12-22 2018-07-13 西安电子科技大学 光电路交换条件下的光片上网络路径计算方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101640644A (zh) * 2009-09-01 2010-02-03 杭州华三通信技术有限公司 基于灵活链路组的流量均衡方法和设备
CN101834789A (zh) * 2010-04-15 2010-09-15 南京大学 面向包-电路交换片上路由器的回退转向路由算法及所用路由器
CN102893560A (zh) * 2011-05-16 2013-01-23 华为技术有限公司 一种数据流传送方法及网络设备
US20140215058A1 (en) * 2013-01-26 2014-07-31 Lyatiss, Inc. Methods and systems for estimating and analyzing flow activity and path performance data in cloud or distributed systems
US9473408B1 (en) * 2014-01-14 2016-10-18 Google Inc. Shortest first longer next routing with congestion reduction
US20160050150A1 (en) * 2014-08-12 2016-02-18 Arista Networks, Inc. Method and system for tracking and managing network flows
CN104618254A (zh) * 2015-02-12 2015-05-13 杭州华三通信技术有限公司 软件定义网络中避免网络拥塞的方法和控制器
CN108123878A (zh) * 2016-11-30 2018-06-05 华为技术有限公司 一种路由方法、装置及数据转发设备
CN108282707A (zh) * 2017-12-22 2018-07-13 西安电子科技大学 光电路交换条件下的光片上网络路径计算方法
CN108259387A (zh) * 2017-12-29 2018-07-06 曙光信息产业(北京)有限公司 一种通过交换机构建的交换系统及其路由算法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吴云华: "数据旁路技术的突破" *

Also Published As

Publication number Publication date
US20200145478A1 (en) 2020-05-07
CN111147386B (zh) 2023-06-30

Similar Documents

Publication Publication Date Title
EP3278514B1 (en) Data transmission
US11271848B2 (en) Data transmission method, apparatus, and device
EP2671352B1 (en) System and method for aggregating and estimating the bandwidth of multiple network interfaces
WO2018133454A1 (zh) 远程服务访问路径控制方法和相关设备
Lu et al. SDN-based TCP congestion control in data center networks
WO2005079534A2 (en) Systems and methods for parallel communication
EP3739784A1 (en) Data packet sending method and related device
JP7313480B2 (ja) スライスベースネットワークにおける輻輳回避
CN104052684A (zh) 动态适配计算机网络中的最大传输单元大小的方法和系统
CN111526089B (zh) 一种基于变长粒度的数据融合传输与调度的装置
US20170027016A1 (en) Communication device, wireless communication device, and communication method
US11283555B2 (en) Packet transmission method, network component, and computer-readable storage medium
KR20100057885A (ko) Ip 네트워크 상의 ip 링크의 접속 상태를 자동으로 확인하는 방법 및 시스템
JP5775214B2 (ja) 適応性の伝送キュー長を用いたデータパケット損失低減システムおよび方法
CN107786448B (zh) 建立业务流的转发路径的方法和装置
CN115766605A (zh) 网络拥塞控制方法、装置及系统
CN113612698A (zh) 一种数据包发送方法及装置
CN111147386B (zh) 用于处理数据传输拥塞的方法、电子设备和计算机可读介质
JP2013255185A (ja) オープンフロースイッチ、オープンフローコントローラ及びオープンフローネットワークシステム
Kumar et al. Device‐centric data reordering and buffer management for mobile Internet using Multipath Transmission Control Protocol
Karrakchou et al. EP4: An application-aware network architecture with a customizable data plane
Motohashi et al. Implementation of p4-based schedulers for multipath communication
KR20120056728A (ko) 연결 링크의 우선 순위에 기반한 기회주의적 병렬 다운로드 방법 및 시스템
Halepoto et al. Implementation of CMT-SCTP in real internet lab setup
CN114363261A (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