CN111181760A - 网络故障探测方法、装置、计算机可读介质及电子设备 - Google Patents
网络故障探测方法、装置、计算机可读介质及电子设备 Download PDFInfo
- Publication number
- CN111181760A CN111181760A CN201910823254.6A CN201910823254A CN111181760A CN 111181760 A CN111181760 A CN 111181760A CN 201910823254 A CN201910823254 A CN 201910823254A CN 111181760 A CN111181760 A CN 111181760A
- Authority
- CN
- China
- Prior art keywords
- node
- switch
- channel transmission
- probe request
- state information
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/555—Error detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请的实施例提供了一种网络故障探测方法、装置、计算机可读介质及电子设备。该方法由第一节点执行,该方法包括:向第二节点发送写探测请求,以供节点之间各交换机在写探测请求中填写正向信道传输状态信息,以便第二节点保存;接收第二节点对写探测请求的应答;接收正反向信道传输状态信息汇总消息;至少基于发送对第二节点的写探测请求和接收到应答的时间差,确定第一节点和第二节点之间是否有故障;若确定有故障,基于正反向信道传输状态信息汇总消息中的正反向信道传输状态信息,确定故障位置。本申请实施例的技术方案能够使报文传输时延和交换机的信道传输状态均被一个节点获得,可以提高网络探测的实时性并降低网络监控成本。
Description
技术领域
本申请涉及计算机及通信技术领域,具体而言,涉及一种网络故障探测方法、装置、计算机可读介质及电子设备。
背景技术
远程直接内存访问(Remote Direct Memory Access,RDMA)是一种在进行网络数据传输时,直接在设备的存储区域进行数据的操作、无需操作系统和处理器来干预的一种技术概念,可以通过多种技术标准来实现。带内网络遥感(In-band NetworkingTelemetry,INT)是一种在数据层面上监控、收集以及报告网络状态的一种技术。
现有INT技术应用在RDMA网络架构下以实现节点间的网络探测的一般实现方式是这样的:生成请求报文并将该请求报文经由第一节点与第二节点之间的各交换机向第二节点发送,各交换机向请求报文填入元数据信息,最终由请求报文经过的最后一个交换机向与该交换机相连的INT网络控制器返回各交换机的元数据信息。
在现有技术中,INT网络控制器只获得了交换机处理的元数据信息,而业务处理的效率依赖于数据传输整个流程,但交换机处理仅仅是数据传输整个流程的一个环节,因此现有技术存在无法判断整个网络传输流程中网络故障对业务的影响、无法实时进行网络故障的定位、需要额外网络控制设备并导致网络监控成本较高等问题。
发明内容
本申请的实施例提供了一种网络故障探测方法、装置、计算机可读介质及电子设备,进而至少在一定程度上能够考虑网络故障对整个网络传输流程的影响,从而提高故障定位的准确性。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请实施例的一个方面,提供了一种网络故障探测方法,所述方法探测第一节点和第二节点之间的故障,所述方法由第一节点执行,所述方法包括:向第二节点发送对第二节点的写探测请求,以供所述第一节点和第二节点之间的各交换机在所述写探测请求中填写各交换机的正向信道传输状态信息,以便第二节点保存;接收第二节点对所述写探测请求的应答;接收正反向信道传输状态信息汇总消息,所述正反向信道传输状态信息汇总消息由所述第二节点填入保存的各交换机的正向信道传输状态信息,并经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机填写各交换机的反向信道传输状态信息而形成;至少基于发送对第二节点的写探测请求和接收到所述对所述第二节点的写探测请求的应答的时间差,确定第一节点和第二节点之间传输是否有故障;如果确定有故障,基于所述正反向信道传输状态信息汇总消息中的各交换机的正反向信道传输状态信息,确定发生故障的位置。
在本申请的一些实施例中,基于前述方案,所述第一节点和第二节点属于远程内存直接访问RDMA网络,所述第一节点和第二节点是由所述RDMA网络中的探测顺序产生节点通过以下方式产生的:
将所述RDMA网络中的每个服务器轮流充当第一节点,将其余服务器中没有充当过与第一节点对应的第二节点的服务器依次作为与该第一节点对应的第二节点。
根据本申请实施例的一个方面,提供了一种网络故障探测方法,所述方法探测第一节点和第二节点之间的故障,所述方法由第二节点执行,所述方法包括:接收写探测请求,所述写探测请求由第一节点发送并经所述第一节点和第二节点之间的各交换机填入各交换机的正向信道传输状态信息;从所述写探测请求中取出所述正向信道传输状态信息保存;向所述第一节点发送对所述写探测请求的应答;向第一节点提供带有所述正向信道传输状态信息的消息,以便所述第二节点和第一节点之间的所述各交换机在所述消息中填入反向信道传输状态信息,从而使第一节点接收到包含正反向信道传输状态信息的正反向信道传输状态信息汇总消息并至少基于发送对第二节点的写探测请求和接收到对第二节点的写探测请求的应答的时间差,确定第一节点和第二节点之间传输是否有故障并在确定有故障的情况下,基于所述正反向信道传输状态信息汇总消息中的各交换机的正反向信道传输状态信息,确定发生故障的位置。
根据本申请实施例的一个方面,提供了一种网络故障探测装置,所述装置探测第一节点和第二节点之间的故障,所述装置位于第一节点,所述装置包括:发送模块,用于向第二节点发送对第二节点的写探测请求,以供所述第一节点和第二节点之间的各交换机在所述写探测请求中填写各交换机的正向信道传输状态信息,以便第二节点保存;第一接收模块,用于接收第二节点对所述写探测请求的应答;第二接收模块,用于接收正反向信道传输状态信息汇总消息,所述正反向信道传输状态信息汇总消息由所述第二节点填入保存的各交换机的正向信道传输状态信息,并经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机填写各交换机的反向信道传输状态信息而形成;故障判断模块,用于至少基于发送对第二节点的写探测请求和接收到所述对所述第二节点的写探测请求的应答的时间差,确定第一节点和第二节点之间传输是否有故障;故障位置确定模块,用于如果确定有故障,基于所述正反向信道传输状态信息汇总消息中的各交换机的正反向信道传输状态信息,确定发生故障的位置。
根据本申请实施例的一个方面,提供了一种网络故障探测装置,所述装置探测第一节点和第二节点之间的故障,所述装置位于第二节点,所述装置包括:接收模块,用于接收写探测请求,所述写探测请求由第一节点发送并经所述第一节点和第二节点之间的各交换机填入各交换机的正向信道传输状态信息;信息保存模块,用于从所述写探测请求中取出所述正向信道传输状态信息保存;应答发送模块,用于向所述第一节点发送对所述写探测请求的应答;信息提供模块,用于向第一节点提供带有所述正向信道传输状态信息的消息,以便所述第二节点和第一节点之间的所述各交换机在所述消息中填入反向信道传输状态信息,从而使第一节点接收到包含正反向信道传输状态信息的正反向信道传输状态信息汇总消息并至少基于发送对第二节点的写探测请求和接收到对第二节点的写探测请求的应答的时间差,确定第一节点和第二节点之间传输是否有故障并在确定有故障的情况下,基于所述正反向信道传输状态信息汇总消息中的各交换机的正反向信道传输状态信息,确定发生故障的位置。
根据本申请实施例的一个方面,提供了一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例中所述的网络故障探测方法。
根据本申请实施例的一个方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的网络故障探测方法。
在本申请的一些实施例所提供的技术方案中,通过先向第二节点发送写探测请求,接收第二节点对写探测请求的应答,然后接收正反向信道传输状态信息汇总消息,可以至少基于发送写探测请求和接收到对写探测请求的应答的时间差来判断第一节点和第二节点之间的传输是否有故障,并且在确定传输有故障时,基于正反向信道传输状态信息汇总消息中的每个交换机的正反向信道传输状态信息来确定哪个交换机发生了故障,可见本申请实施例的技术方案不是孤立地确定交换机是否发生了故障。它是从整体传输是否有故障的角度确定交换机的故障,因此,它考虑了网络故障对整个网络传输流程的影响,从而提高故障定位的准确性;本申请的实施例还能够使同一节点同时获得整个报文传输流程的时延和该时延内各交换机的信道传输状态信息,从而能够实时对网络故障进行定位;另外,本申请的实施例也无需设置额外的网络控制设备,可以在一定程度上降低网络监控的成本。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了在相关技术中INT技术应用在RDMA网络架构以实现网络探测的示例性网络架构的示意图;
图2示出了根据本申请的一个实施例的网络故障探测方法应用的网络架构示意图;
图3示出了根据本申请的一个实施例的网络故障探测方法应用在RoCE技术标准下的示例性网络架构的示意图;
图4A示出了根据本申请的一个实施例的网络故障探测方法应用在实际故障探测的应用场景下的网络监控结果在前端实时显示界面示意图;
图4B示出了根据本申请的一个实施例应用在实际故障探测的应用场景下图4A中故障位置被触发时切换至的显示界面示意图;
图5示出了根据本申请的一个实施例的网络故障探测方法应用在实际故障探测的应用场景下的网络监控故障告警信息在前端实时显示界面示意图;
图6示出了根据本申请的一个实施例的网络故障探测方法的流程图;
图7示出了根据本申请的一个实施例的写探测请求的报文格式示意图;
图8示出了根据本申请的一个实施例的读探测请求以及对应应答的报文格式示意图;
图9示出了根据本申请的一个实施例的图6中步骤660的一个具体流程图;
图10示出了根据本申请的一个实施例的图9中步骤661的一个具体流程图;
图11示出了根据本申请的一个实施例的图6中步骤640和步骤650的一个具体流程图;
图12示出了根据本申请的一个实施例的网络故障探测方法应用时的交互流程图;
图13示出了根据本申请的一个实施例的图6中步骤640的一个具体流程图;
图14示出了根据本申请的一个实施例的网络故障探测方法应用时的交互流程图;
图15示出了根据本申请的一个实施例的图6中步骤620之前步骤以及步骤620的一个具体流程图;
图16示出了根据本申请的另一实施例的网络故障探测方法的流程图;
图17示出了根据本申请的一个实施例的网络故障探测装置的框图;
图18示出了根据本申请的另一实施例的网络故障探测装置的框图;
图19示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本申请将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了在相关技术中INT技术应用在RDMA网络架构以实现网络探测的示例性网络架构的示意图。
为了实现对RDMA网络的探测,现有的INT技术应用在RDMA网络架构下的一般实现方式如图1所示。第一节点110和第二节点150之间包括多个交换机,其中,交换机120(交换机A)为INT源(INT Source),交换机140(交换机B)为INT收集(INT Sink),INT Source和INTSink之间可以包括至少一个交换机130(交换机X)。在图1中,在INT Source处生成了包含INT头和第一跳元数据信息的请求报文后,第一节点110之后的各交换机会依次在请求报文中打上每一跳元数据信息,最终在由INT Sink在请求报文中打上最后一跳元数据信息后,剥离报文中的INT头和元数据信息并发送到INT网络控制器进行处理。
由此可见,在相关技术中,INT网络控制器只获得了交换机处理的元数据信息,而完成一项业务的处理常常涉及到数据传输的整个流程,但交换机处理仅仅是数据传输整个流程的一个环节,因此图1示出的相关技术存在无法判断整个网络传输流程中网络故障对业务的影响的问题;由于INT网络控制器获得的交换机处理的元数据信息不足以全面对数据传输的整个流程的网络故障进行定位,若INT网络控制器在获得了交换机处理的元数据信息之后,再获取其他信息来进行数据传输的整个流程的网络故障定位,势必会导致网络故障的定位耗时过长,这样就无法实现实时的网络故障;此外,INT网络控制器作为一种实体设备,其设置需要人力物力等成本,就会导致网络监控的成本较高。
图2示出了根据本申请的一个实施例的网络故障探测方法应用的网络架构示意图。
如图2所示,该网络架构可以为远程直接内存访问(Remote Direct MemoryAccess,RDMA)网络,该网络架构可以包括第一节点210(Agent1所在节点)、第二节点250(Agent2所在节点)以及第一节点210与第二节点250之间路径上的至少一个交换机220-240等,其中,路径是第一节点向第二节点发送数据时,数据的传输通道所涉及的所有实体,可以包括交换机、网络介质、网关、路由器等。交换机220-240等对应的分别是交换机A、交换机X以及交换机N等交换机,第一节点210与第二节点250通过路径上的至少一个交换机和用于交换机之间的通信以及用于交换机与节点之间的通信的通信链路建立了数据传输的通道,交换机之间、交换机与节点之间均可以通过数据传输的通道进行双向的数据传输。在本实施例中,第一节点和第二节点可以位于RDMA网络架构下,第一节点210和第二节点250可以是任何支持RDMA网络架构并具备存储和通信能力的终端实体,例如可以是服务器等,第一节点210和第二节点250之间的路径上的一个或多个交换机支持INT技术标准。在进行第一节点210与第二节点250之间的网络探测时,可以利用部署或者固设在第一节点210以及第二节点250上的代理(Agent)来执行,代理一般为一种用户态程序,可以发送网络请求或对其他节点的代理发来的网络请求进行响应。在图2实施例中,第一节点210作为发起网络探测的主体,在获得网络探测数据后,可以将网络探测数据发送至网络测量存储分析系统260中,进行数据存储、统计、分析等进一步处理,还可以由网络测量存储分析系统260提供与网络故障对应的会诊措施。
图3示出了根据本申请的一个实施例的网络故障探测方法应用在RoCE技术标准下的示例性网络架构的示意图。如图3所示,该网络架构可以为RDMA网络,该网络架构包括:因特网包探索器列表产生器(Pinglist产生器)310、第一代理节点320、第一交换机330、与第一交换机330之间存在一个或多个交换机的第N交换机340、第二代理节点350、包含存储系统和分析系统的第一系统360以及具备前端实时显示和界面显示告警的第二系统370,其中代理节点即为部署了代理(Agent)程序的节点。在图3实施例中,Pinglist产生器310可以用于指定要建立RDMA可靠连接(Reliable Connection,RC)以进行网络故障探测的两个节点,具体可以为:Pinglist产生器310为第一代理节点320分配第二代理节点350的IP地址和端口号,为第二代理节点350分配第一代理节点320的IP地址和端口号,两个代理节点利用获得的对方节点的IP地址和端口号建立RDMA RC连接,进而进行两个代理节点之间的网络故障探测,其中,Pinglist产生器310指示进行网络故障探测的记录信息可以以文件的形式保存,比如可以保存为Pinglist.txt。每一代理节点都可以向对方代理节点发送RDMA请求并利用RDMA请求传输RoCE探测包,在进行网络探测时得到的信息(如RTT时延、交换机填入的数据等)可以存储在代理节点上(以在节点中的记录的形式存在),在网络探测过程中或者在网络探测结束后,一个或多个交换机向RDMA请求报文中填入的数据以及代理节点探测到的数据可以被发送至包含存储系统和分析系统的第一系统360进行数据的存储、分析和处理,其中,第一系统360通过设置两个VIP(Virtual Internet Protocol,虚拟IP)地址实现负载均衡,第一系统360可以通过一个VIP地址向第二系统370的VIP地址发送数据处理结果,然后通过该VIP地址向前端实时显示该数据处理结果,并通过前端界面显示告警信息,以便运维人员进行分析和监控。
图4A示出了根据本申请的一个实施例的网络故障探测方法应用在实际故障探测的应用场景下的网络监控结果在前端实时显示界面示意图。当网络故障探测方法在RDMA网络下进行实际应用时,每一代理节点都可以向其他一个或多个代理节点发起网络探测。如图4A所示,通过在下拉菜单中选择第二代理节点,界面中对应显示出了第二代理节点与第一代理节点、第三代理节点等多个由第二代理节点发起的节点之间的实时网络监控的延时,当根据探测判断发生网络故障时,在故障发生位置会对应显示警告图标,警告图标可以提示故障所处的网络探测路径对应的代理节点以及网络故障在网络探测路径上的大致位置,可以便于运维人员及时确定故障位置并排除故障。比如,在图4A中,第二代理节点与第三代理节点之间网络延时为25us,故障图标位于第二代理节点与第三代理节点之间路径上,用于表示监控到的网络故障位于第二代理节点与第三代理节点之间,第二代理节点与第三代理节点之间的路径上每一○代表一个交换机,第二代理节点与第三代理节点之间的路径上包括6个交换机,其中发生网络故障的交换机的○被故障图标代替,运维人员可以依此大致判断出发生故障的交换机大致为第二代理节点与第三代理节点之间的路径上的第五个交换机,并可以通过鼠标等输入设备点击故障图标以进一步获取与网络故障有关的信息。
图4B示出了根据本申请的一个实施例应用在实际故障探测的应用场景下图4A中故障位置被触发时切换至的显示界面示意图。参考图4B所示,当故障位置(即图4A中的故障图标)被触发时,显示了图4B中的界面。图4B显示了第二代理节点与第三代理节点之间网络探测的详细监控结果,通过图4B可以明确,第二代理节点与第三代理节点之间的路径上包含6个交换机,还可以确定在进行第二代理节点与第三代理节点之间的网络探测时每一交换机的处理时延。在图4B中,第二代理节点与第三代理节点之间的第五个交换机处显示了故障的图标,这代表探测确定的故障位于第五交换机上,这与图4A中的监控结果是对应且一致的。当通过鼠标等输入设备将输入中心点悬停在第五交换机对应的位置或者点击第五交换机对应的位置时,可以显示一个悬浮窗口,该窗口可以显示更多的关于第五交换机的网络监控情况,从而可以为运维人员提供进一步的网络监控信息以便运维人员及时排除故障。
图5示出了根据本申请的一个实施例的网络故障探测方法应用在实际故障探测的应用场景下的网络监控故障告警信息在前端实时显示界面示意图。本实施例中的网络故障探测方法可以应用于RDMA网络中。当各代理节点完成对其他代理节点的网络探测后,若判断发生了网络故障,可以将与网络故障相关的信息推送至前端显示界面进行实时集中的显示。参考图5所示,被推送至前端显示界面进行实时集中显示的信息包括探测路径上发生网络故障对应的第一节点和第二节点、故障交换机的ID、故障交换机的处理时、进行监控的时间、节点间的RTT时延等,其中,各条故障监控结果可以根据每一类信息单独进行排序,比如,在图5实施例中,各条故障监控结果是根据故障交换机处理时延从大到小进行排序的,这样就实现了网络监控故障告警信息的实时显示,并可以根据需要对各条故障监控结果进行排序,从而为网络监控和运维提供了保障。
以下对本申请实施例的技术方案的实现细节进行详细阐述:
图6示出了根据本申请的一个实施例的网络故障探测方法的流程图,该网络故障探测方法由第一节点执行,该方法探测第一节点和第二节点之间的故障。本实施例提供的网络故障探测方法可以应用于RDMA网络中,第一节点和第二节点可以是任何支持RDMA网络架构的终端实体,此处的终端实体比如可以是支持RDMA的服务器,第一节点和第二节点既可以是相同的终端实体也可以是不同的终端实体。参照图6所示,该网络故障探测方法至少包括步骤S620至步骤S660,详细介绍如下:
在步骤S620中,向第二节点发送对第二节点的写探测请求,以供所述第一节点和第二节点之间的各交换机在所述写探测请求中填写各交换机的正向信道传输状态信息,以便第二节点保存。
所述第一节点和第二节点之间可以包括至少一个交换机。
在本申请的一个实施例中,所述第一节点和第二节点属于RDMA网络,所述第一节点和第二节点之间的一个或多个交换机支持INT技术标准和相同的RDMA技术标准。所述相同的RDMA技术标准包括但不限于InfiniBand协议、RoCE协议、iWARP协议等,其中,RoCE协议可以为RoCE V1或RoCE V2。
在本申请的一个实施例中,所述第一节点和第二节点属于RDMA网络,第一节点向第二节点发送的对第二节点的写探测请求为RDMA WRITE请求。
如前所述,RDMA WRITE为一种操作远程系统内存的方法,可以将本地系统的一段虚拟内存内容写入到远程系统内存。
在本申请的一个实施例中,向第二节点发送对第二节点的写探测请求由设于第一节点上的代理(Agent)程序执行。代理程序可以是在前台运行的程序,也可以是后台程序。
在本申请的一个实施例中,所述代理程序为用户态程序。
在本申请的一个实施例中,所述写探测请求以报文的形式存在。
在本申请的一个实施例中,所述向第二节点发送对第二节点的写探测请求,以供所述第一节点和第二节点之间的各交换机在所述写探测请求中填写各交换机的正向信道传输状态信息,以便第二节点保存,包括:
向第二节点发送对第二节点的写探测请求,以供所述第一节点和第二节点之间的各交换机在所述写探测请求中填写各交换机的正向信道传输状态信息,以便第二节点保存,所述交换机为支持相同INT技术标准的交换机。
正向信道传输状态信息是第一节点至第二节点方向上的各交换机向探测请求填入的与信道传输有关的信息,也是通过网络探测得到的信息,其中的正向是第一节点至第二节点的方向,正向信道传输状态信息一般为特定于交换机的信息。
在本申请的一个实施例中,所述写探测请求包括探测标记和信道传输状态信息类型指示信息,所述各交换机根据所述探测标记将所述写探测请求识别为探测报文,所述各交换机根据所述信道传输状态信息类型指示信息,将对应类型的正向信道传输状态信息写入所述写探测请求。本实施例的好处是,通过设定探测标记和信道传输状态信息类型指示信息,使交换机能够识别出探测报文,并可以根据需要设定交换机在探测报文中填入何种类型的信道传输状态信息,提高了网络监测的定制化和可控性。
在本申请的一个实施例中,所述探测标记为魔数字信息(magic number)。比如,魔数字信息可以为图7实施例中的“0Xaaabbb…”字段。
信道传输状态信息类型指示信息是指示交换机填入何种类型的信道传输状态信息的信息。
在本申请的一个实施例中,所述信道传输状态信息类型指示信息为INT头信息(INT header)。比如,所述信道传输状态信息类型指示信息可以为图7实施例中的INT头信息的字段。
在本申请的一个实施例中,所述信道传输状态信息类型指示信息为元数据信息(MetaData),所述信道传输状态信息类型指示信息包括交换机标识和交换机处理时延。交换机处理时延是交换机接收到数据至交换机发出数据所间隔的时间段。
本实施例的好处在于,根据交换机处理时延可以判断交换机是否发生故障,而根据交换机标识可以确定具体发生故障的交换机是哪一个,这样就实现了对网络故障的高效监控。
在本申请的一个实施例中,各交换机在所述写探测请求中填写各交换机的正向信道传输状态信息时,是在所述写探测请求报文的最后依次填入的。
在本申请的一个实施例中,所述信道传输状态信息类型指示信息包括交换机标识和交换机是否处理超时的信息。
在本申请的一个实施例中,当一个交换机处理时延达到该交换机的处理时延阈值时,该交换机会向所述写探测请求中填写该交换机处理超时的信息;当一个交换机处理时延小于该交换机的处理时延阈值时,该交换机会向所述写探测请求中填写该交换机处理未超时的信息
在本申请的一个实施例中,所述信道传输状态信息类型指示信息中除了交换机标识和交换机处理时延之外,还包括:出端口号和入端口号。
端口(port)是交换机连接其他网络设备的接口,一个交换机可以包括多个入端口和多个出端口,向交换机发来的数据通过交换机的多个入端口之一发送到交换机上,交换机发出的数据通过交换机的多个出端口中的一个向外发送,入端口号即为特定于交换机的一个入端口的标识,而出端口号为特定于交换机的一个出端口的标识。
本实施例的好处在于,通过使各交换机填入端口号信息,可以在确定发生网络故障的交换机基础上进一步确定发生网络故障的端口,从而能够更精准地监控网络故障。
在本申请的一个实施例中,所述信道传输状态信息类型指示信息中除了交换机标识、交换机处理时延、出端口号和入端口号之外,还包括:缓存水线。
在本申请的一个实施例中,所述第一节点与所述第二节点之间的路径上的所有交换机预先被配置为路径中交换机。
在本申请的一个实施例中,本申请提供的网络故障探测方法运行在RDMA的可靠连接(Reliable Connection,RC)传输模式下。
该实施例的好处是,通过在RDMA的RC模式下传输监控数据,实现了监控数据的可靠传输。
在本申请的一个实施例中,在向第二节点发送对第二节点的写探测请求之前,所述方法可以包括:
接收第二节点发送的写入各交换机的正向信道传输状态信息的起始写入虚拟地址;
所述向第二节点发送对第二节点的写探测请求,以供所述第一节点和第二节点之间的各交换机在所述写探测请求中填写各交换机的正向信道传输状态信息,以便第二节点保存,包括:
向第二节点发送对第二节点的写探测请求,以供所述第一节点和第二节点之间的各交换机在所述写探测请求中填写各交换机的正向信道传输状态信息,以便第二节点的网卡提取填写了各交换机的正向信道传输状态信息的所述写探测请求的报文的有效载荷,并将所述有效载荷保存在所述起始写入虚拟地址处。
比如,参见图7,到达第二代理节点报文730即为填写了各交换机的正向信道传输状态信息的所述写探测请求的报文,第二节点的网卡在接收到到达第二代理节点报文730后,会剥离到达第二代理节点报文730中报文头部信息,报文头部信息包括BTH以及之前的部分,而在到达第二代理节点报文730中BTH之后的信息即为填写了各交换机的正向信道传输状态信息的所述写探测请求的报文的有效载荷(payload)。
在本实施例中,通过规范提取的payload在第二节点的保存地址,为高效地进行网络探测提供了保障。
在本申请的一个实施例中,在接收第二节点发送的写入各交换机的正向信道传输状态信息的起始写入虚拟地址的同时还接收内存空间大小信息。
在本申请的一个实施例中,所述探测信息记录虚拟地址是预先在所述第一节点注册来进行预先指定的。
在本申请的一个实施例中,步骤S620之前的步骤以及步骤S620的具体步骤可以如图15中的步骤S610和步骤S621所示,详细说明如下:
在步骤S610中,将探测标记和信道传输状态信息类型指示信息写入第一节点的预先指定的探测信息记录虚拟地址。
探测信息记录虚拟地址是内存上的用于存储探测标记和信道传输状态信息类型的虚拟地址。虚拟地址是可以进行连续操作但在物理上不一定连续的地址。比如,参照图2实施例所示,虚拟内存地址vaddr1为探测信息记录虚拟地址。
在步骤S621中,从所述探测信息记录虚拟地址取出所述探测标记和信道传输状态信息类型指示信息,放入所述写探测请求中向第二节点发送。
将探测标记和信道传输状态信息类型指示信息放入所述写探测请求中是指将探测标记和信道传输状态信息类型指示信息作为字段加入所述写探测请求中。
本实施例中具体实现了写探测请求的生成。
在本申请的一个实施例中,所述第一节点和第二节点属于远程内存直接访问RDMA网络,所述第一节点和第二节点是由所述RDMA网络中的探测顺序产生节点通过以下方式产生的:
将所述RDMA网络中的每一节点轮流充当第一节点,将其余节点中没有充当过与第一节点对应的第二节点的服务器依次作为与该第一节点对应的第二节点。
探测顺序产生节点可以是任何具备运算、通信功能的设备,比如可以是计算机、服务器或者服务器集群。
比如,参见图3所示的实施例,本实施例中的探测顺序产生节点可以为图3实施例中的pinglist产生器,由pinglist产生器确定进行网络故障探测的两个节点。具体而言,在网络探测开始前,pinglist产生器可以为每一节点生成要探测的对端节点信息(如IP地址以及端口号等),每一节点根据对端节点信息建立RDMA连接,从而进行网络探测。
本实施例的优点是,通过设置探测顺序产生节点,实现了网络中节点间的有序网络探测,提高了网络故障探测的可靠性。
继续参照图6,在步骤S630中,接收第二节点对所述写探测请求的应答。
第二节点对所述写探测请求的应答会经由第二节点与第一节点之间的各交换机被发送至第一节点。
在本申请的一个实施例中,所述第二节点对所述写探测请求的应答为确认(ACK,acknowledgement)报文。
在本申请的一个实施例中,所述第二节点对所述写探测请求的应答是由所述第二节点的网卡发出的。
在步骤S640中,接收正反向信道传输状态信息汇总消息。
所述正反向信道传输状态信息汇总消息由所述第二节点填入保存的各交换机的正向信道传输状态信息,并经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机填写各交换机的反向信道传输状态信息而形成。
正反向信道传输状态信息汇总消息可以至少包括正向信道传输状态信息和反向信道传输状态信息。如前所述,正向信道传输状态信息为第一节点至第二节点方向上的各交换机向探测请求填入的与信道传输有关的信息,其中的正向是第一节点至第二节点的方向;那么,反向信道传输状态信息则为第二节点至第一节点方向上的各交换机填写的与信道传输有关的信息,其中的反向是第二节点至第一节点的方向。
有关对步骤S640中接收正反向信道传输状态信息汇总消息的具体实现步骤的描述将在后续的对步骤S650的展开描述中陈述,此处暂不详述。
在步骤S650中,至少基于发送对第二节点的写探测请求和接收到所述对所述第二节点的写探测请求的应答的时间差,确定第一节点和第二节点之间传输是否有故障。
在本申请的一个实施例中,在步骤S650之前,所述方法可以包括:
获取发送对第二节点的写探测请求的时间,作为第一时间;
获取接收到所述对所述第二节点的写探测请求的应答的时间,作为第二时间;
确定所述第一时间与所述第二时间之差,作为发送对第二节点的写探测请求和接收到所述对所述第二节点的写探测请求的应答的时间差。
在本申请的一个实施例中,写探测请求和与该写探测请求对应的应答中都包含相同的写探测请求的标识,所述第一节点在发出写探测请求时,会将所述写探测请求的标识和发出所述写探测请求的时间对应存储在所述第一节点,所述第一节点在接收到对写探测请求的应答时,会将接收到的应答中包含的标识和接收到应答的时间对应存储在所述第一节点,所述获取发送对第二节点的写探测请求的时间,作为第一时间,包括:
获取在先与写探测请求的标识对应存储的时间,作为第一时间;
所述获取接收到所述对所述第二节点的写探测请求的应答的时间,作为第二时间,包括:
获取在后与写探测请求的标识对应存储的时间,作为第二时间。在本申请的一个实施例中,步骤S650可以包括:
若发送对第二节点的写探测请求和接收到所述对所述第二节点的写探测请求的应答的时间差大于预定时间差阈值,则确定第一节点和第二节点之间传输有故障;
若发送对第二节点的写探测请求和接收到所述对所述第二节点的写探测请求的应答的时间差小于或等于预定时间差阈值,则确定第一节点和第二节点之间传输没有故障。
所述预定时间差阈值可以是根据一定规则设定的,比如是根据厂商提供的参考值设定的,预定时间差阈值还可以是可变的,比如所述预定时间差阈值可以与网络规模有关。
在本申请的一个实施例中,接收正反向信道传输状态信息汇总消息的具体过程以及确定第一节点和第二节点之间传输是否有故障的具体过程可以如图11所示。参见图11,可以包括以下步骤:
在步骤S641中,向第二节点发送对第二节点的读探测请求,以便所述第二节点接收到该读探测请求后,将保存的各交换机的正向信道传输状态信息填入对所述读探测请求的应答中,经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机在所述应答中填写各交换机的反向信道传输状态信息。
对第二节点的读探测请求可以为RDMA READ请求。
在本申请的一个实施例中,所述对第二节点的读探测请求中包括第二节点保存各交换机的正向信道传输状态信息的虚拟地址,所述第二节点是根据所述读探测请求中的所述虚拟地址将保存的各交换机的正向信道传输状态信息填入对所述读探测请求的应答中的。
在本申请的一个实施例中,所述写探测请求包括探测标记和信道传输状态信息类型指示信息,所述各交换机根据所述信道传输状态信息类型指示信息,将对应类型的正向信道传输状态信息写入所述写探测请求,所述探测标记和信道传输状态信息类型指示信息被保存在所述第二节点,步骤S641可以包括:
向第二节点发送对第二节点的读探测请求,以便所述第二节点接收到该读探测请求后,将保存的各交换机的正向信道传输状态信息、探测标记和信道传输状态信息类型指示信息填入对所述读探测请求的应答中,经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机根据所述应答中的探测标记和信道传输状态信息类型指示信息在所述应答中填写各交换机的反向信道传输状态信息。
在步骤S642中,接收各交换机填写了各交换机的反向信道传输状态信息的所述应答,作为所述正反向信道传输状态信息汇总消息。
由于对所述读探测请求的应答中已经包含了第一节点至第二节点方向上的各交换机的正向信道传输状态信息,所以当所述应答中被填入各交换机的反向信道传输状态信息时,第一节点就同时获得了正向信道传输状态信息和反向信道传输状态信息。
在步骤S651中,基于发送对第二节点的写探测请求和接收到所述对第二节点的写探测请求的应答的时间差、发送对第二节点的读探测请求和接收到所述正反向信道传输状态信息汇总消息的时间差,确定第一节点和第二节点之间传输是否有故障。
发送对第二节点的写探测请求和接收到所述对第二节点的写探测请求的应答两个动作都是由第一节点执行的,所以第一节点可以确定两个动作之间的时间差,即报文的往返延时;同时,发送对第二节点的读探测请求和接收到所述正反向信道传输状态信息汇总消息两个动作也都是由第一节点执行的,所以第一节点可以确定这两个动作之间的时间差,即报文的往返延时,这样就使第一节点同时获得了两轮报文探测的时延,从而可以根据获得的两个时延信息进行更精确的网络故障探测。
在本申请的一个实施例中,步骤S651可以包括:
确定发送对第二节点的写探测请求和接收到所述对第二节点的写探测请求的应答的时间差、发送对第二节点的读探测请求和接收到所述正反向信道传输状态信息汇总消息的时间差的平均值;
若所述平均值达到预定时间差平均值阈值,确定第一节点和第二节点之间传输有故障;
若所述平均值小于预定时间差平均值阈值,确定第一节点和第二节点之间传输没有故障。
由于发送对第二节点的写探测请求和发送对第二节点的读探测请求所使用的端口号、IP地址等网络五元组信息相同,所以发送对第二节点的写探测请求和接收到所述对第二节点的写探测请求的应答时报文传输的物理路径与发送对第二节点的读探测请求和接收到所述正反向信道传输状态信息汇总消息时报文传输的物理路径是相同的,所以两个时间差是相同物理路径上报文传输的时间差,所以可以根据两个时间差的平均值来确定第一节点和第二节点之间传输是否有故障。
在本申请的一个实施例中,步骤S651可以包括:
确定发送对第二节点的写探测请求和接收到所述对第二节点的写探测请求的应答的时间差、发送对第二节点的读探测请求和接收到所述正反向信道传输状态信息汇总消息的时间差的最大值;
若所述最大值达到预定时间差最大值阈值,确定第一节点和第二节点之间传输有故障;
若所述最大值小于预定时间差最大值阈值,确定第一节点和第二节点之间传输没有故障。
在本申请的一个实施例中,步骤S651可以包括:
确定发送对第二节点的写探测请求和接收到所述对第二节点的写探测请求的应答的时间差、发送对第二节点的读探测请求和接收到所述正反向信道传输状态信息汇总消息的时间差的最小值;
若所述最小值达到预定时间差最小值阈值,确定第一节点和第二节点之间传输有故障;
若所述最小值小于预定时间差最小值阈值,确定第一节点和第二节点之间传输没有故障。
在本申请的一个实施例中,图11所示实施例中第一节点与第二节点的交互过程可以如图12所示。
图12示出了根据本申请的一个实施例的网络故障探测方法应用时的交互流程图。本实施例可以应用于RDMA网络中,参见图12所示,其具体交互流程可以是这样的:
第一代理节点生成RDMA写探测请求,其中,RDMA写探测请求中包括魔数字信息和包含了至少一项元数据类型的INT头信息。第一代理节点向第二代理节点发出RDMA写探测请求,使第一代理节点与第二代理节点之间的路径上交换机向RDMA写探测请求的报文中填入INT的探测数据INT1,第二代理节点在接收到填入了INT1的RDMA写探测请求的报文后,第二代理节点的网卡会提取接收到的报文的payload并将所述payload存储在第二代理节点的内存,此时第二代理节点的网卡还会向第一代理节点返回ACK报文,当第一代理节点接收到ACK报文时,可以计算出发出RDMA写探测请求和接收到ACK报文的时间差,即图12中的RTT1,上述的交互流程与图14实施例中的流程基本是一致的。
当第一代理节点接收到第二代理节点发来的ACK报文时,立即生成RDMA读探测请求并将该RDMA读探测请求发送至第二代理节点,第二代理节点在接收到该RDMA读探测请求的报文后,会将已保存的payload加入至该RDMA读探测请求的报文得到对该RDMA读探测请求的应答报文,然后会将该应答报文向第一代理节点方向发送,第二代理节点至第一代理节点方向上的各交换机会向该应答报文中填入探测数据INT2,当第二代理节点接收到各交换机填入了探测数据INT2的应答报文后,可以确定发出RDMA读探测请求和接收到填入了探测数据INT2的应答报文的时间差,即图12中的RTT2。
在本实施例中,第一代理节点同时获得了第一代理节点至第二代理节点方向上各交换机填入的探测数据INT1和第二代理节点至第一代理节点方向上的各交换机填入的探测数据INT2,另外第一代理节点还获得了向第二代理节点发送RDMA写探测请求对应的时延RTT1和向第二代理节点发送RDMA读探测请求对应的时延RTT2,此时第一代理节点便可以基于INT1、INT2、RTT1和RTT2来确定第一代理节点与第二代理节点之间的网络故障。
图11所示的实施例的好处是,通过使第一节点同时获得探测报文路径的时延以及整个路径上每一跳交换机填入的信道传输状态信息,实现了对网络故障的探测,另外,由于第一节点同时获得了两个时延信息,从而可以得到更全面的网络状态信息,进一步提高了网络探测的准确性。
在本申请的一个实施例中,步骤S640中接收正反向信道传输状态信息汇总消息的具体步骤可以如图13所示。参见图13,可以包括以下步骤:
在步骤S641'中,向第二节点发送接收到对所述第二节点的写探测请求的应答的通知,以便所述第二节点接收到所述通知后,将保存的各交换机的正向信道传输状态信息填入对第一节点的写探测请求中,经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机在所述对第一节点的写探测请求中填写各交换机的反向信道传输状态信息。
在本申请的一个实施例中,所述接收到对所述第二节点的写探测请求的应答的通知是第一节点接收到对所述第二节点的写探测请求的应答后立即发送的。
在本申请的一个实施例中,所述对所述第二节点的写探测请求的应答的通知是所述第一节点通过网络套接字(socket)发送的。
在本申请的一个实施例中,所述第一节点和所述第二节点属于RDMA网络,所述对所述第二节点的写探测请求的应答的通知是所述第一节点通过远程内存直接访问立即写(RDMA Write with Immediate)的方式发送的。
在本申请的一个实施例中,各交换机的正向信道传输状态信息被所述第二节点保存在所述第二节点预先向第一节点注册的虚拟地址中,所述第二节点接收到所述通知后,会根据所述虚拟地址将保存的各交换机的正向信道传输状态信息填入对第一节点的写探测请求中。
在本申请的一个实施例中,所述正向信道传输状态信息和所述反向信道传输状态信息为元数据信息,所述对第二节点的写探测请求包括魔数字信息和INT头信息,所述魔数字信息用于使所述对第二节点的写探测请求被识别为探测报文,所述INT头信息包括至少一项元数据类型,所述INT头信息中的元数据类型用于指示各交换机填入对应类型的元数据信息,所述对第二节点的写探测请求中的魔数字信息和INT头信息连同各交换机的正向信道传输状态信息一起被保存至第二节点,步骤S641'具体可以包括:
向第二节点发送接收到对所述第二节点的写探测请求的应答的通知,以便所述第二节点接收到所述通知后,将保存的各交换机的正向信道传输状态信息、魔数字信息和INT头信息填入对第一节点的写探测请求中,经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机根据对第一节点的写探测请求中的魔数字信息和INT头信息在所述对第一节点的写探测请求中填写各交换机的反向信道传输状态信息。
在步骤S642'中,接收各交换机填写了各交换机的反向信道传输状态信息的所述对第一节点的写探测请求,作为所述正反向信道传输状态信息汇总消息。
对第一节点的写探测请求在生成之初已经包含了各交换机的正向信道传输状态信息,所以各交换机填写了各交换机的反向信道传输状态信息的所述对第一节点的写探测请求,即所述正反向信道传输状态信息汇总消息中同时包含了各交换机的反向信道传输状态信息和正向信道传输状态信息。
在步骤S643'中,向第二节点发送对第一节点的写探测请求的应答。
在本申请的一个实施例中,所述第一节点和所述第二节点属于RDMA网络,所述第二节点对所述第一节点的写探测请求为RDMA WRITE请求,向所述第二节点发送的对所述第一节点的写探测请求的应答为所述第一节点对来自所述第二节点的RDMA WRITE请求的应答。
在本申请的一个实施例中,图13所示实施例中第一节点与第二节点的交互过程可以如图14所示。
图14示出了根据本申请的一个实施例的网络故障探测方法应用时的交互流程图。可以明确,本实施例可以应用于RDMA网络中,图14所示实施例的交互流程可以是这样的:
第一代理节点生成RDMA写探测请求,其中,RDMA写探测请求中包括魔数字信息和包含了至少一项元数据类型的INT头信息。第一代理节点向第二代理节点发出RDMA写探测请求,使第一代理节点与第二代理节点之间的路径上交换机向RDMA写探测请求的报文中填入INT的探测数据INT1,第二代理节点在接收到填入了INT1的RDMA写探测请求的报文后,第二代理节点的网卡会提取接收到的报文的payload并将所述payload存储在第二代理节点的内存,其中,payload至少包括魔数字信息、INT头信息以及各交换机填入的探测数据INT1,此时第二代理节点的网卡还会向第一代理节点返回ACK报文,当第一代理节点接收到ACK报文时,可以计算出发出RDMA写探测请求和接收到ACK报文的时间差,即图14中的RTT1。
当第一代理节点接收到第二代理节点发来的ACK报文时,还会向第二代理节点发送通知。第二代理节点根据接收到的通知利用在第二代理节点存储的payload生成对第一代理节点的RDMA写探测请求,对第一代理节点的RDMA写探测请求中包含了魔数字信息、INT头信息以及第一代理节点至第二代理节点方向上各交换机填入的探测数据INT1,当对第一代理节点的RDMA写探测请求向第一代理节点方向发送时,第二代理节点至第一代理节点方向上的各交换机会根据对第一代理节点的RDMA写探测请求中的魔数字信息、INT头信息向对第一代理节点的RDMA写探测请求中填入探测数据INT2,当对第一代理节点的RDMA写探测请求到达第一代理节点时,第一代理节点会向第二代理节点返回ACK报文。
在本实施例中,第一代理节点同时获得了第一代理节点至第二代理节点方向上各交换机填入的探测数据INT1和第二代理节点至第一代理节点方向上的各交换机填入的探测数据INT2,另外第一代理节点还获得了向第二代理节点发送RDMA写探测请求对应的时延RTT1,此时第一代理节点便可以基于INT1、INT2以及RTT1来计算第一代理节点与第二代理节点之间的网络故障。
在本申请的一个实施例中,向第二节点发送的对第一节点的写探测请求的应答是由所述第一节点的网卡发送的。
在图13所示的实施例中,在第二节点得到正向信道传输状态信息后,通过向第二节点发送通知使第二节点根据通知生成包含了正向信道传输状态信息的写探测请求并将该写探测请求向第一节点发送,在发送的路径上的交换机会向该写探测请求中填入反向信道传输状态信息,使得第一节点能够同时得到正向信道传输状态信息和反向信道传输状态信息。
继续参照图6所示,在步骤S660中,如果确定有故障,基于所述正反向信道传输状态信息汇总消息中的各交换机的正反向信道传输状态信息,确定发生故障的位置。
在本申请的一个实施例中,所述正向信道传输状态信息包括正向交换机处理时延,所述反向信道传输状态信息包括反向交换机处理时延,步骤S660的具体步骤可以如图9所示,包括以下步骤:
在步骤S661中,基于各交换机的正向交换机处理时延和反向交换机处理时延与相应阈值的比较,确定故障是否发生在交换机上。
在本申请的一个实施例中,步骤S661可以包括:
如果各交换机中的至少一个交换机的正向交换机处理时延或反向交换机处理时延大于预定交换机处理时延阈值,确定故障发生在交换机上,且正向交换机处理时延或者反向交换机处理时延大于预定交换机处理时延阈值的交换机为发生故障的交换机。
在本申请的一个实施例中,步骤S661可以包括:
如果各交换机中的至少一个交换机的正向交换机处理时延和反向交换机处理时延均大于预定交换机处理时延阈值,确定故障发生在交换机上,且正向交换机处理时延或者反向交换机处理时延大于预定交换机处理时延阈值的交换机为发生故障的交换机。
在本申请的一个实施例中,步骤S661可以包括:
如果各交换机中的至少一个交换机的正向交换机处理时延大于预定正向交换机处理时延阈值,或者反向交换机处理时延大于预定反向交换机处理时延阈值,确定故障发生在交换机上,且正向交换机处理时延大于预定正向交换机处理时延阈值或者反向交换机处理时延大于预定反向交换机处理时延阈值的交换机为发生故障的交换机。
本实施例的好处是,通过为一个方向上的交换机处理时延设置一个单独的交换机处理时延阈值,并基于交换机处理时延与相应方向上的交换机处理时延阈值确定故障是否发生在交换机上以及发生故障的交换机为哪一个,在一定程度上提高了对交换机上网络故障监控的准确性。
在本申请的一个实施例中,步骤S661的具体实现步骤可以如图10所示。参见图10,包括以下步骤:
在步骤S6611中,确定每个交换机的正向交换机处理时延和交换机的反向交换机处理时延的时延平均值。
由于正向交换机处理时延和反向交换机处理时延对应的数据传输物理路径是相同的,所以获得的正反向信道传输状态信息汇总消息中与任一正向交换机处理时延对应的交换机都有与该交换机对应的反向交换机处理时延,即最终获得的探测数据中,对应于同一交换机的信道传输状态信息中同时包含了正向交换机处理时延和反向交换机处理时延。
在步骤S6612中,如果至少一个交换机的时延平均值大于预定时延平均值阈值,确定故障发生在交换机上,且时延平均值大于预定时延平均值阈值的交换机为发生故障的交换机。
当一个交换机的时延平均值大于预定时延平均值阈值,说明该交换机在处理探测报文时耗时过多,即可认为该交换机发送故障。
继续参照图9,在步骤S662中,如果故障没有发生在交换机上,确定所述故障发生在第一节点或第二节点的网卡。
探测报文传输的整个流程一般包括网卡处理、交换机处理以及通信链路的传输三个环节,在大多数情况下,通信链路上发生故障的可能性很小,所以可以认为网络探测故障一般发生在交换机和网卡中,在故障没有发生在交换机上时,可以认为故障发生在网卡上。
图10示出的实施例的好处在于,通过根据两个方向的交换机时延的平均值来确定故障是否发生在交换机上,使得确定结果同时体现了正向交换机处理时延和反向交换机处理时延两项指标,提高了确定结果的准确性。
继续参照图6所示,在本申请的一个实施例中,在如果确定有故障,基于所述正反向信道传输状态信息汇总消息中的各交换机的正反向信道传输状态信息,确定发生故障的位置之后,所述方法还可以包括:
每隔预定时间段,将在所述预定时间段内生成的所述正反向信道传输状态信息汇总消息发送至预先设置的存储分析系统,由所述存储分析系统存储所述正反向信道传输状态信息汇总消息并在根据所述正反向信道传输状态信息汇总消息确定有故障时向前端输出监控告警信息。
综上所述,根据图6实施例的网络故障探测方法,由于使第一节点同时获得了各交换机的信道传输状态和整个探测流程的报文传递时延,因此可以及时准确地对网络故障进行定位,提高了网络故障定位的实时性和准确性,整个探测流程的报文传递时延还可以帮助确定网络故障对整个网络传输流程的影响,另外,图6实施例的网络故障探测方法不需要额外的网络控制设备,降低了网络故障监控的成本。
当本申请的网络故障探测方法应用在图2实施例所示的网络架构中且该网络架构为RDMA网络时,网络故障探测的一个具体过程可以是这样的:
一、注册虚拟内存地址、进行队列对和完成队列的创建。
第一代理节点210注册自身的虚拟内存地址vaddr1,第二代理节点250注册自身的虚拟内存地址vaddr2,第一代理节点210的代理(Agent1)在自身的虚拟内存处创建队列对(Queue Pair,QP)和完成队列(Completion Queue,CQ),其中,QP包括发送队列(SendQueue,SQ)和接收队列(Receive Queue,RQ),SQ位于第一代理节点的虚拟内存地址vaddr1处,相应地,第二代理节点250的代理(Agent2)在自身的虚拟内存处创建QP和CQ。
二、发送RDMA写探测请求(RDMA WRITE请求)。
(1)第一节点的Agent1和第二节点的Agent2建立RDMA可靠连接(ReliableConnection,RC),使Agent1的QP和Agent2的QP关联起来,从而可以使Agent1与Agent2之间实现可靠的RDMA消息的传输;通过RC连接,Agent2向Agent1注册自身内存的虚拟地址信息vaddr2和内存空间大小信息,Agent2按照这些注册的信息对应的虚拟地址接收Agent1发来的RDMA WRITE请求的消息内容。
(2)Agent1根据配置文件确定INT头信息中的元数据(Metadata,MD)类型,然后向vaddr1处填充魔数字信息(magic number)和包含了一个或多个元数据类型和最大跳数的INT头信息。
其中,魔数字信息用于被路径中的交换机识别为特定探测报文,INT头信息中包括的元数据类型可以为交换机标识(ID,Identification)号、入端口号或出端口号、交换机处理时延、buffer(缓存)水线等,INT头信息包含的最大跳数与网络规模有关,比如可以设置为大于或等于单向最大跳数的两倍。
(3)Agent1向Agent2发送RDMA WRITE请求,RDMA WRITE是一种操作远程系统内存的方法,可以将远程系统的一段连续虚拟内存内容读取到本地系统内存。
RDMA WRITE请求的报文格式可以如图7中的RDMA写探测请求报文710所示。在RDMA写探测请求报文710中,IP是与IP协议(Internet Protocol,网际协议)有关的部分;UDP是与UDP协议(User Datagram Protocol,用户数据报协议)有关的部分;BTH是与BTH(BaseTransport Header,基本传输头)有关的部分,为报文中的上下文(context)信息,其中包含的具体内容可以包括但不限于涉及的QP、要操作的虚拟内存的地址、操作类型等;“0Xaaabbb…”为魔数字信息,INT头信息可以包括一项或多项元数据类型;另外,在RDMA写探测请求报文710的IP部分之前,还可以包括用省略号指代的部分,这意味着RDMA写探测请求报文710中还可以包含其他类型的RDMA报文头信息,比如可以包含与采用的RDMA的具体技术标准有关的信息。
(4)Agent1和Agent2之间的路径中的各交换机根据RDMA WRITE请求中的魔数字信息和INT头信息依次填入元数据信息。
RDMA WRITE请求的报文经过路径中的交换机所生成的报文如图7中的第一路径中交换机报文720所示,与RDMA写探测请求报文710的不同之处在于,在第一路径中交换机报文720中,在报文的INT头信息之后,还包含了MD1、MD2到MDX等多个MD,每一MD即为Agent1和Agent2之间的一个路径中交换机(INT transit hop)根据魔数字信息和INT头信息填入的元数据信息(Metadata,MD),并且各元数据信息在报文中的排序与发出的RDMA WRITE请求途径的交换机的顺序对应一致,另外,元数据信息中可以包含交换机标识,就可以确定交换机向报文中填入的每一元数据信息是Agent1和Agent2之间的路径中的哪一交换机填入的。
(5)RDMA WRITE请求报文到达Agent2的网卡,此时的报文格式如图7中的到达第二代理节点报文730所示,可见,到达第二代理节点报文730包含了Agent1和Agent2之间的所有交换机填入的元数据信息。
在RDMA WRITE请求报文到达Agent2的网卡之后,由Agent2的网卡硬件解除报文的头部信息,得到报文的有效载荷信息(payload),并将payload存储至已注册的虚拟地址vaddr2,Agent2的网卡会向Agent1返回一个ACK(acknowledgement,应答、确认)报文。
(6)Agent1根据向Agent2发出RDMA WRITE请求的时间和接收到ACK报文的时间计算得到RTT(Round-Trip Time)时延,至此,发送RDMA写探测请求的流程结束。
三、发送RDMA读探测请求(RDMA READ请求)。
(7)Agent1向Agent2发出RDMA READ请求,RDMA READ是一种操作远程系统内存的方法,可以将远程系统的一段连续虚拟内存内容读取到本地内存。
RDMA READ请求的报文格式可以如图8中的RDMA读探测请求报文810所示,RDMA读探测请求报文810中可以包含与IP协议有关的部分,与UDP协议有关的部分以及与BTH有关的部分,RDMA READ请求报文中包括要向Agent2读取的虚拟地址vaddr2,虚拟地址vaddr2可以位于RDMA读探测请求报文810中的BTH处。
(8)RDMA READ请求到达Agent2后,Agent2根据RDMA READ请求中的虚拟地址vaddr2读取在vaddr2处的内存内容payload,并基于RDMA READ请求和读取的payload生成应答报文。
Agent2生成的应答报文可以参考图8中的应答报文820所示,可以明确,与RDMA读探测请求报文810相比,应答报文820中增加了魔数字信息、INT头信息以及RDMA WRITE请求方向上的各交换机填入的元数据信息,这些信息正是Agent2在vaddr2处保存的payload。
(9)Agent2生成应答报文后,即将应答报文返回给Agent1,在Agent2和Agent1之间路径上的各交换机可以根据应答报文中的魔数字信息和INT头信息对应填入元数据信息。
此时的报文格式可以如图8中的第二路径中交换机报文830所示,第二路径中交换机报文830中不仅包含了Agent2生成的应答报文820中的内容,还包含了Agent2和Agent1之间路径上的各交换机依次填入的元数据信息,其中,由于应答报文的传输方向与RDMAWRITE请求方向完全相反,所以在返回给Agent1过程中,第二路径中交换机报文830内包含的各交换机填入的元数据信息对应的交换机的顺序与应答报文820中各交换机填入的元数据信息对应的交换机的顺序是相反的。
(10)Agent2发出的应答报文到达Agent1时,此时的报文格式可以如图8中的到达第一代理节点报文840所示,可以看到,在到达第一代理节点报文840中,包含了Agent1向Agent2发送RDMA WRITE请求后,Agent1与Agent2之间路径上的每一跳(hop)交换机依次填入的元数据信息和Agent2向Agent1返回应答消息后,Agent2与Agent1之间路径上的每一跳交换机依次填入的元数据信息。
在Agent2发出的应答报文(到达第一代理节点报文840)到达Agent1的网卡之后,由Agent1的网卡硬件剥离报文的头部信息,得到报文的有效载荷信息(payload),并将payload存储至已在第一节点注册的虚拟地址vaddr1。
(12)Agent1根据向Agent2发出RDMA READ请求的时间和接收到到达第一代理节点报文840的时间计算得到RTT时延,至此,发送RDMA读探测请求的流程结束。
四、网络故障的确定。
由于RDMA WRITE请求和RDMA READ请求的报文中的IP地址、端口号、传输层协议等网络五元组信息均相同,所以Agent1发送RDMA WRITE请求时Agent1与Agent2之间的物理路径和Agent2发出应答报文时Agent2与Agent1之间的物理路径是相同的,因此,Agent1获得的两个RTT时延是相同物理路径的时延;另外Agent1还获得了Agent1到Agent2路径上交换机填入的每一跳信息和Agent2到Agent1路径上交换机填入的每一跳信息,Agent1最终可以根据两个RTT时延和两个方向的交换机填入的各跳信息来确定Agent1与Agent2之间的网络故障。
本申请的一个或多个实施例可以应用于支持RDMA的各种技术标准下,例如可以是无线带宽(InfiniBand,IB)协议、聚合以太网上的远程内存直接访问(RDMA overConverged Ethernet,RoCE)协议、因特网广域远程内存直接访问协议(Internet Wide-area RDMA Protocol,iWARP)等。
图16示出了根据本申请的另一实施例的网络故障探测方法的流程图。本实施例的方法探测第一节点和第二节点之间的故障,并由第二节点执行,本实施例提供的网络故障探测方法可以应用于RDMA网络中。参照图16所示,具体可以包括以下步骤:
在步骤S1610中,接收写探测请求。
所述写探测请求由第一节点发送并经所述第一节点和第二节点之间的各交换机填入各交换机的正向信道传输状态信息。
所述第一节点和第二节点之间可以包括至少一个交换机。
在本申请的一个实施例中,所述第一节点和所述第二节点属于RDMA网络,所述第一节点和第二节点之间的一个或多个交换机支持INT技术标准和相同的RDMA技术标准。
在本申请的一个实施例中,所述写探测请求包括探测标记和信道传输状态信息类型指示信息,所述各交换机根据所述探测标记将所述写探测请求识别为探测报文,所述各交换机根据所述信道传输状态信息类型指示信息,将对应类型的正向信道传输状态信息写入所述写探测请求。
在步骤S1620中,从所述写探测请求中取出所述正向信道传输状态信息保存。
在本申请的一个实施例中,在步骤S1620之前,所述方法包括:
向第一节点发送写入各交换机的正向信道传输状态信息起始写入虚拟地址;
所述从所述写探测请求中取出所述正向信道传输状态信息保存,包括:
从所述写探测请求中取出所述正向信道传输状态信息并保存在所述写入各交换机的正向信道传输状态信息起始写入虚拟地址。
在步骤S1630中,向所述第一节点发送对所述写探测请求的应答。
在本申请的一个实施例中,向所述第一节点发送的对所述写探测请求的应答是由第二节点的网卡发出的。
在步骤S1640中,向第一节点提供带有所述正向信道传输状态信息的消息,以便所述第二节点和第一节点之间的所述各交换机在所述消息中填入反向信道传输状态信息,从而使第一节点接收到包含正反向信道传输状态信息的正反向信道传输状态信息汇总消息并至少基于发送对第二节点的写探测请求和接收到对第二节点的写探测请求的应答的时间差,确定第一节点和第二节点之间传输是否有故障并在确定有故障的情况下,基于所述正反向信道传输状态信息汇总消息中的各交换机的正反向信道传输状态信息,确定发生故障的位置。
以下介绍本申请的装置实施例,可以用于执行本申请上述实施例中的网络故障探测方法。对于本申请装置实施例中未披露的细节,请参照本申请上述的网络故障探测方法的实施例。
图17示出了根据本申请的一个实施例的网络故障探测装置的框图。
参照图17所示,根据本申请的一个实施例的网络故障探测装置1700,该装置1700探测第一节点和第二节点之间的故障,该装置1700位于第一节点,该装置1700包括:发送模块1710、第一接收模块1720、第二接收模块1730、故障判断模块1740和故障位置确定模块1750。
其中,发送模块1710,用于向第二节点发送对第二节点的写探测请求,以供所述第一节点和第二节点之间的各交换机在所述写探测请求中填写各交换机的正向信道传输状态信息,以便第二节点保存;第一接收模块1720,用于接收第二节点对所述写探测请求的应答;第二接收模块1730,用于接收正反向信道传输状态信息汇总消息,所述正反向信道传输状态信息汇总消息由所述第二节点填入保存的各交换机的正向信道传输状态信息,并经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机填写各交换机的反向信道传输状态信息而形成;故障判断模块1740,用于至少基于发送对第二节点的写探测请求和接收到所述对所述第二节点的写探测请求的应答的时间差,确定第一节点和第二节点之间传输是否有故障;故障位置确定模块1750,用于如果确定有故障,基于所述正反向信道传输状态信息汇总消息中的各交换机的正反向信道传输状态信息,确定发生故障的位置。
在本申请的一些实施例中,基于前述方案,所述正向信道传输状态信息包括正向交换机处理时延,所述反向信道传输状态信息包括反向交换机处理时延,故障位置确定模块1750还用于:基于各交换机的正向交换机处理时延和反向交换机处理时延与相应阈值的比较,确定故障是否发生在交换机上;如果故障没有发生在交换机上,确定所述故障发生在第一节点或第二节点的网卡。
在本申请的一些实施例中,基于前述方案,故障位置确定模块1750还用于:如果各交换机中的至少一个交换机的正向交换机处理时延大于预定正向交换机处理时延阈值,或者反向交换机处理时延大于预定反向交换机处理时延阈值,确定故障发生在交换机上,且正向交换机处理时延大于预定正向交换机处理时延阈值或者反向交换机处理时延大于预定反向交换机处理时延阈值的交换机为发生故障的交换机。
在本申请的一些实施例中,基于前述方案,故障位置确定模块1750还用于:确定每个交换机的正向交换机处理时延和反向交换机处理时延的时延平均值;如果至少一个交换机的时延平均值大于预定时延平均值阈值,确定故障发生在交换机上,且时延平均值大于预定时延平均值阈值的交换机为发生故障的交换机。
在本申请的一些实施例中,基于前述方案,第二接收模块1730还用于:向第二节点发送对第二节点的读探测请求,以便所述第二节点接收到该读探测请求后,将保存的各交换机的正向信道传输状态信息填入对所述读探测请求的应答中,经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机在所述应答中填写各交换机的反向信道传输状态信息;接收各交换机填写了各交换机的反向信道传输状态信息的所述应答,作为所述正反向信道传输状态信息汇总消息;故障判断模块1740还用于:基于发送对第二节点的写探测请求和接收到所述对第二节点的写探测请求的应答的时间差、发送对第二节点的读探测请求和接收到所述正反向信道传输状态信息汇总消息的时间差,确定第一节点和第二节点之间传输是否有故障。
在本申请的一些实施例中,基于前述方案,第二接收模块1730还用于:向第二节点发送接收到对所述第二节点的写探测请求的应答的通知,以便所述第二节点接收到所述通知后,将保存的各交换机的正向信道传输状态信息填入对第一节点的写探测请求中,经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机在所述对第一节点的写探测请求中填写各交换机的反向信道传输状态信息;接收各交换机填写了各交换机的反向信道传输状态信息的所述对第一节点的写探测请求,作为所述正反向信道传输状态信息汇总消息;向第二节点发送对第一节点的写探测请求的应答。
在本申请的一些实施例中,基于前述方案,在向第二节点发送对第二节点的读探测请求之前,第二接收模块1730还用于:接收第二节点发送的写入各交换机的正向信道传输状态信息起始写入虚拟地址;向第二节点发送包含了所述写入各交换机的正向信道传输状态信息起始写入虚拟地址的读探测请求,以便所述第二节点接收到该读探测请求后,根据所述读探测请求中的写入各交换机的正向信道传输状态信息起始写入虚拟地址,将保存的各交换机的正向信道传输状态信息填入对所述读探测请求的应答中,经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机在所述应答中填写各交换机的反向信道传输状态信息。
在本申请的一些实施例中,基于前述方案,所述写探测请求包括探测标记和信道传输状态信息类型指示信息,所述各交换机根据所述探测标记将所述写探测请求识别为探测报文,所述各交换机根据所述信道传输状态信息类型指示信息,将对应类型的正向信道传输状态信息写入所述写探测请求。
在本申请的一些实施例中,基于前述方案,在向第二节点发送对第二节点的写探测请求之前,发送模块1710还用于:将探测标记和信道传输状态信息类型指示信息写入第一节点的预先指定的探测信息记录虚拟地址;从所述探测信息记录虚拟地址取出所述探测标记和信道传输状态信息类型指示信息,放入所述写探测请求中向第二节点发送。
图18示出了根据本申请的另一实施例的网络故障探测装置的框图。
参照图18所示,根据本申请的另一实施例的网络故障探测装置1800,该装置1800探测第一节点和第二节点之间的故障,该装置1800位于第二节点,该装置1800包括:接收模块1810,信息保存模块1820,应答发送模块1830和信息提供模块1840。
其中,接收模块1810,用于接收写探测请求,所述写探测请求由第一节点发送并经所述第一节点和第二节点之间的各交换机填入各交换机的正向信道传输状态信息;信息保存模块1820,用于从所述写探测请求中取出所述正向信道传输状态信息保存;应答发送模块1830,用于向所述第一节点发送对所述写探测请求的应答;信息提供模块1840,用于向第一节点提供带有所述正向信道传输状态信息的消息,以便所述第二节点和第一节点之间的所述各交换机在所述消息中填入反向信道传输状态信息,从而使第一节点接收到包含正反向信道传输状态信息的正反向信道传输状态信息汇总消息并至少基于发送对第二节点的写探测请求和接收到对第二节点的写探测请求的应答的时间差,确定第一节点和第二节点之间传输是否有故障并在确定有故障的情况下,基于所述正反向信道传输状态信息汇总消息中的各交换机的正反向信道传输状态信息,确定发生故障的位置。
图19示出了适于用来实现本申请实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图19示出的电子设备的计算机系统1900仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制,图19示出的电子设备的计算机系统1900可以支持RDMA技术标准中的一种。
如图19所示,计算机系统1900包括中央处理单元(Central Processing Unit,CPU)1901,其可以根据存储在只读存储器(Read-Only Memory,ROM)1902中的程序或者从存储部分1909加载到随机访问存储器(Random Access Memory,RAM)1903中的程序而执行各种适当的动作和处理,例如执行上述实施例中所述的方法。在RAM 1903中,还存储有系统操作所需的各种程序和数据。RAM 1903还与HCA(Host Channel Adapter,主机通道适配器)1904相连,HCA1904的另一端可以通过包含一个或多个交换机的通信链路与另一电子设备的HCA相连,继而与另一电子设备的RAM相连,从而使计算机系统1900所在的电子设备与另一电子设备之间可以进行对彼此RAM中数据的RDMA操作。CPU 1901、ROM 1902以及RAM 1903通过总线1905彼此相连。输入/输出(Input/Output,I/O)接口1906也连接至总线1905。
以下部件连接至I/O接口1906:包括键盘、鼠标等的输入部分1907;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分1908;包括硬盘等的存储部分1909;以及包括诸如LAN(Local AreaNetwork,局域网)卡、调制解调器等的网络接口卡的通信部分1910。通信部分1910经由诸如因特网的网络执行通信处理。驱动器1911也根据需要连接至I/O接口1906。可拆卸介质1912,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1911上,以便于从其上读出的计算机程序根据需要被安装入存储部分1909。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分1910从网络上被下载和安装,和/或从可拆卸介质1912被安装。在该计算机程序被中央处理单元(CPU)1901执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本申请实施例所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、闪存、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本申请各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本申请实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现上述实施例中所述的方法。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本申请实施方式的方法。
本领域技术人员在考虑说明书及实践这里公开的实施方式后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (12)
1.一种网络故障探测方法,其特征在于,所述方法探测第一节点和第二节点之间的故障,所述方法由第一节点执行,所述方法包括:
向第二节点发送对第二节点的写探测请求,以供所述第一节点和第二节点之间的各交换机在所述写探测请求中填写各交换机的正向信道传输状态信息,以便第二节点保存;
接收第二节点对所述写探测请求的应答;
接收正反向信道传输状态信息汇总消息,所述正反向信道传输状态信息汇总消息由所述第二节点填入保存的各交换机的正向信道传输状态信息,并经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机填写各交换机的反向信道传输状态信息而形成;
至少基于发送对第二节点的写探测请求和接收到所述对所述第二节点的写探测请求的应答的时间差,确定第一节点和第二节点之间传输是否有故障;
如果确定有故障,基于所述正反向信道传输状态信息汇总消息中的各交换机的正反向信道传输状态信息,确定发生故障的位置。
2.根据权利要求1所述的方法,其特征在于,所述正向信道传输状态信息包括正向交换机处理时延,所述反向信道传输状态信息包括反向交换机处理时延,
所述基于所述正反向信道传输状态信息汇总消息中的各交换机的正反向信道传输状态信息,确定发生故障的位置,包括:
基于各交换机的正向交换机处理时延和反向交换机处理时延与相应阈值的比较,确定故障是否发生在交换机上;
如果故障没有发生在交换机上,确定所述故障发生在第一节点或第二节点的网卡。
3.根据权利要求2所述的方法,其特征在于,所述基于各交换机的正向交换机处理时延和反向交换机处理时延与相应阈值的比较,确定故障是否发生在交换机上,包括:
如果各交换机中的至少一个交换机的正向交换机处理时延大于预定正向交换机处理时延阈值,或者反向交换机处理时延大于预定反向交换机处理时延阈值,确定故障发生在交换机上,且正向交换机处理时延大于预定正向交换机处理时延阈值或者反向交换机处理时延大于预定反向交换机处理时延阈值的交换机为发生故障的交换机。
4.根据权利要求2所述的方法,其特征在于,所述基于各交换机的正向交换机处理时延和反向交换机处理时延与相应阈值的比较,确定故障是否发生在交换机上,包括:
确定每个交换机的正向交换机处理时延和反向交换机处理时延的时延平均值;
如果至少一个交换机的时延平均值大于预定时延平均值阈值,确定故障发生在交换机上,且时延平均值大于预定时延平均值阈值的交换机为发生故障的交换机。
5.根据权利要求1所述的方法,其特征在于,所述接收正反向信道传输状态信息汇总消息,包括:
向第二节点发送对第二节点的读探测请求,以便所述第二节点接收到该读探测请求后,将保存的各交换机的正向信道传输状态信息填入对所述读探测请求的应答中,经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机在所述应答中填写各交换机的反向信道传输状态信息;
接收各交换机填写了各交换机的反向信道传输状态信息的所述应答,作为所述正反向信道传输状态信息汇总消息,
所述至少基于发送对第二节点的写探测请求和接收到所述对第二节点的写探测请求的应答的时间差,确定第一节点和第二节点之间传输是否有故障,包括:
基于发送对第二节点的写探测请求和接收到所述对第二节点的写探测请求的应答的时间差、发送对第二节点的读探测请求和接收到所述正反向信道传输状态信息汇总消息的时间差,确定第一节点和第二节点之间传输是否有故障。
6.根据权利要求1所述的方法,其特征在于,所述接收正反向信道传输状态信息汇总消息,包括:
向第二节点发送接收到对所述第二节点的写探测请求的应答的通知,以便所述第二节点接收到所述通知后,将保存的各交换机的正向信道传输状态信息填入对第一节点的写探测请求中,经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机在所述对第一节点的写探测请求中填写各交换机的反向信道传输状态信息;
接收各交换机填写了各交换机的反向信道传输状态信息的所述对第一节点的写探测请求,作为所述正反向信道传输状态信息汇总消息;
向第二节点发送对第一节点的写探测请求的应答。
7.根据权利要求5所述的方法,其特征在于,在向第二节点发送对第二节点的读探测请求之前,所述方法还包括:
接收第二节点发送的写入各交换机的正向信道传输状态信息起始写入虚拟地址;
所述向第二节点发送对第二节点的读探测请求,以便所述第二节点接收到该读探测请求后,将保存的各交换机的正向信道传输状态信息填入对所述读探测请求的应答中,经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机在所述应答中填写各交换机的反向信道传输状态信息,包括:
向第二节点发送包含了所述写入各交换机的正向信道传输状态信息起始写入虚拟地址的读探测请求,以便所述第二节点接收到该读探测请求后,根据所述读探测请求中的写入各交换机的正向信道传输状态信息起始写入虚拟地址,将保存的各交换机的正向信道传输状态信息填入对所述读探测请求的应答中,经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机在所述应答中填写各交换机的反向信道传输状态信息。
8.根据权利要求1所述的方法,其特征在于,所述写探测请求包括探测标记和信道传输状态信息类型指示信息,所述各交换机根据所述探测标记将所述写探测请求识别为探测报文,所述各交换机根据所述信道传输状态信息类型指示信息,将对应类型的正向信道传输状态信息写入所述写探测请求。
9.根据权利要求8所述的方法,其特征在于,在向第二节点发送对第二节点的写探测请求之前,所述方法还包括:
将探测标记和信道传输状态信息类型指示信息写入第一节点的预先指定的探测信息记录虚拟地址;
所述向第二节点发送对第二节点的写探测请求,包括:从所述探测信息记录虚拟地址取出所述探测标记和信道传输状态信息类型指示信息,放入所述写探测请求中向第二节点发送。
10.一种网络故障探测装置,其特征在于,所述装置探测第一节点和第二节点之间的故障,所述装置位于第一节点,所述装置包括:
发送模块,用于向第二节点发送对第二节点的写探测请求,以供所述第一节点和第二节点之间的各交换机在所述写探测请求中填写各交换机的正向信道传输状态信息,以便第二节点保存;
第一接收模块,用于接收第二节点对所述写探测请求的应答;
第二接收模块,用于接收正反向信道传输状态信息汇总消息,所述正反向信道传输状态信息汇总消息由所述第二节点填入保存的各交换机的正向信道传输状态信息,并经由所述第二节点和第一节点之间的所述各交换机发送回所述第一节点,由所述各交换机填写各交换机的反向信道传输状态信息而形成;
故障判断模块,用于至少基于发送对第二节点的写探测请求和接收到所述对所述第二节点的写探测请求的应答的时间差,确定第一节点和第二节点之间传输是否有故障;
故障位置确定模块,用于如果确定有故障,基于所述正反向信道传输状态信息汇总消息中的各交换机的正反向信道传输状态信息,确定发生故障的位置。
11.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述的网络故障探测方法。
12.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至9中任一项所述的网络故障探测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910823254.6A CN111181760B (zh) | 2019-09-02 | 2019-09-02 | 网络故障探测方法、装置、计算机可读介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910823254.6A CN111181760B (zh) | 2019-09-02 | 2019-09-02 | 网络故障探测方法、装置、计算机可读介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111181760A true CN111181760A (zh) | 2020-05-19 |
CN111181760B CN111181760B (zh) | 2021-10-08 |
Family
ID=70622268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910823254.6A Active CN111181760B (zh) | 2019-09-02 | 2019-09-02 | 网络故障探测方法、装置、计算机可读介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111181760B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112260897A (zh) * | 2020-10-19 | 2021-01-22 | 海尔优家智能科技(北京)有限公司 | 连接的异常识别方法和装置 |
CN114448867A (zh) * | 2022-02-23 | 2022-05-06 | 百果园技术(新加坡)有限公司 | 一种路由可视化方法、装置、设备及存储介质 |
CN114760225A (zh) * | 2022-03-31 | 2022-07-15 | 深信服科技股份有限公司 | 一种故障诊断方法、系统和存储介质 |
CN115499294A (zh) * | 2022-09-21 | 2022-12-20 | 上海天玑科技股份有限公司 | 一种分布式存储环境网络亚健康检测及故障自动处理方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321095A (zh) * | 2008-07-14 | 2008-12-10 | 中兴通讯股份有限公司 | 一种实现链路测量的通信系统及其链路测量方法 |
CN101377750A (zh) * | 2007-09-21 | 2009-03-04 | 中国科学院计算技术研究所 | 一种用于机群容错的系统和方法 |
US20130205114A1 (en) * | 2006-12-06 | 2013-08-08 | Fusion-Io | Object-based memory storage |
CN103795579A (zh) * | 2012-10-26 | 2014-05-14 | 上海斐讯数据通信技术有限公司 | 交换机测试系统及交换机测试方法 |
CN107612772A (zh) * | 2017-09-07 | 2018-01-19 | 北京驰波信息工程有限公司 | 支付系统的节点状态探测方法及装置 |
CN108494817A (zh) * | 2018-02-08 | 2018-09-04 | 华为技术有限公司 | 数据传输方法、相关装置及系统 |
-
2019
- 2019-09-02 CN CN201910823254.6A patent/CN111181760B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130205114A1 (en) * | 2006-12-06 | 2013-08-08 | Fusion-Io | Object-based memory storage |
CN101377750A (zh) * | 2007-09-21 | 2009-03-04 | 中国科学院计算技术研究所 | 一种用于机群容错的系统和方法 |
CN101321095A (zh) * | 2008-07-14 | 2008-12-10 | 中兴通讯股份有限公司 | 一种实现链路测量的通信系统及其链路测量方法 |
CN103795579A (zh) * | 2012-10-26 | 2014-05-14 | 上海斐讯数据通信技术有限公司 | 交换机测试系统及交换机测试方法 |
CN107612772A (zh) * | 2017-09-07 | 2018-01-19 | 北京驰波信息工程有限公司 | 支付系统的节点状态探测方法及装置 |
CN108494817A (zh) * | 2018-02-08 | 2018-09-04 | 华为技术有限公司 | 数据传输方法、相关装置及系统 |
Non-Patent Citations (2)
Title |
---|
JONATHAN BEHRENS,SAGAR JHA: "RDMC:A Reliable RDMA Multicast for Large Objects", 《DSN》 * |
肖立权: "基于片内连接管理的RDMA通信方法", 《中国专利》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112260897A (zh) * | 2020-10-19 | 2021-01-22 | 海尔优家智能科技(北京)有限公司 | 连接的异常识别方法和装置 |
CN114448867A (zh) * | 2022-02-23 | 2022-05-06 | 百果园技术(新加坡)有限公司 | 一种路由可视化方法、装置、设备及存储介质 |
CN114448867B (zh) * | 2022-02-23 | 2024-04-09 | 百果园技术(新加坡)有限公司 | 一种路由可视化方法、装置、设备及存储介质 |
CN114760225A (zh) * | 2022-03-31 | 2022-07-15 | 深信服科技股份有限公司 | 一种故障诊断方法、系统和存储介质 |
CN115499294A (zh) * | 2022-09-21 | 2022-12-20 | 上海天玑科技股份有限公司 | 一种分布式存储环境网络亚健康检测及故障自动处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111181760B (zh) | 2021-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111181760B (zh) | 网络故障探测方法、装置、计算机可读介质及电子设备 | |
US11641319B2 (en) | Network health data aggregation service | |
US20210119890A1 (en) | Visualization of network health information | |
US10243820B2 (en) | Filtering network health information based on customer impact | |
US11671342B2 (en) | Link fault isolation using latencies | |
US10911263B2 (en) | Programmatic interfaces for network health information | |
US10097433B2 (en) | Dynamic configuration of entity polling using network topology and entity status | |
US7991881B2 (en) | Monitoring network performance to identify sources of network performance degradation | |
US8719398B2 (en) | Network performance monitor | |
US11133980B2 (en) | Detecting sources of computer network failures | |
US9503343B2 (en) | Method and system for detecting network topology change | |
US20190132207A1 (en) | Auto discovery of network proxies | |
WO2012002849A1 (en) | Apparatus and method for monitoring of connectivity services | |
WO2018064111A1 (en) | Visualization of network health information | |
CN114095398A (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 |