CN104219107B - 一种通信故障的检测方法、装置及系统 - Google Patents

一种通信故障的检测方法、装置及系统 Download PDF

Info

Publication number
CN104219107B
CN104219107B CN201410425003.XA CN201410425003A CN104219107B CN 104219107 B CN104219107 B CN 104219107B CN 201410425003 A CN201410425003 A CN 201410425003A CN 104219107 B CN104219107 B CN 104219107B
Authority
CN
China
Prior art keywords
port
detection
server
packet loss
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.)
Active
Application number
CN201410425003.XA
Other languages
English (en)
Other versions
CN104219107A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201410425003.XA priority Critical patent/CN104219107B/zh
Publication of CN104219107A publication Critical patent/CN104219107A/zh
Priority to PCT/CN2015/084002 priority patent/WO2016029749A1/zh
Application granted granted Critical
Publication of CN104219107B publication Critical patent/CN104219107B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities

Abstract

本发明的实施例提供一种通信故障的检测方法、装置及系统,涉及通信领域,解决了现有技术中LAG无法检测到发生异常操作的故障端口的问题,避免了使用故障端口传输数据的风险。该方案包括:检测设备分别获取X个服务器内N个端口的探测结果,所述探测结果包括每个端口根据接收到的其他端口发送的探测消息,确定的所述其它端口的错包数据和丢包数据;所述检测设备根据所述每个端口确定的所述其它端口的错包数据和丢包数据,确定第一端口的状态,所述第一端口的状态用于指示所述第一端口是否有故障;所述检测设备根据所述第一端口的状态,生成所述第一端口的故障通知。

Description

一种通信故障的检测方法、装置及系统
技术领域
本发明涉及通信领域,尤其涉及一种通信故障的检测方法、装置及系统。
背景技术
在网络组建技术中,通常采用各类服务器端口聚合及交换机堆叠的方式提升网络平面可靠性。然而,在各类服务器内进行端口聚合及交换机堆叠后,服务器内的各个端口可能会因为出现一些故障而不可用,进而导致端口之间的通信路径不可用。
在现有技术中,服务器内的LAG(Link Aggregation Group,链路聚合组)可以周期性地检测自身的端口的状态,当端口不可用时,服务器根据LACP(Link AggregationControl Protocol,链路聚合控制协议),将不可用端口从LAG中移除以实现通信路径的切换。如图1所示,当服务器1的1号端口不可用,且2、3、4号端口正常运行时,将1号端口从LAG中移除,LAG自动选择2、3、4号端口进行数据包的转发。
然而,各个端口在收发数据包时,可能会因为一些故障出现“亚健康”状态(为方便说明,本发明统一将“亚健康”状态的端口称为故障端口),此时,端口仍然可以与其他端口进行数据包的收发动作(即端口依然可用),但该端口在发送数据包时可能会出现丢包,或者,篡改数据包中的内容等异常操作,由于该端口对其他端口表现的状态仍为可用状态,因此LAG无法检测到该端口在收发数据包时的异常现象,也无法实现与该端口相关的通信路径的切换,这样一来,通过该故障端口(“亚健康”端口)进行传输的数据将持续受损,使数据传输的风险增加。
发明内容
本发明的实施例提供一种通信故障的检测方法、装置及系统,解决了现有技术中LAG无法检测到发生异常操作的故障端口的问题,避免了使用故障端口传输数据的风险。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明的实施例提供一种通信故障的检测方法,包括:
检测设备分别获取X个服务器内N个端口的探测结果,所述探测结果包括每个端口根据接收到的其他端口发送的探测消息,确定的所述其它端口的错包数据和丢包数据,N>2,X>2;
所述检测设备根据所述每个端口确定的所述其它端口的错包数据和丢包数据,确定第一端口的状态,所述第一端口的状态用于指示所述第一端口是否有故障;
所述检测设备根据所述第一端口的状态,生成所述第一端口的故障通知。
在第一方面的第一种可能的实现方式中,所述检测设备根据所述每个端口确定的所述其它端口的错包数据和丢包数据,确定第一端口是否有故障,包括:
所述检测设备根据所述探测结果分别计算所述N个端口之间互相发送所述检测消息的丢包率;
所述检测设备根据所述N个端口之间互相发送所述检测消息的丢包率确定所述第一端口是否有故障。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述检测设备根据所述探测结果分别计算所述N个端口之间互相发送所述检测消息的丢包率,包括:
所述检测设备将所述探测结果中的错包数据按照第一预置函数折算为相对丢包数据;
所述检测设备根据所述相对丢包数据和所述探测结果中的丢包数据,按照第二预置函数分别计算所述N个端口之间互相发送所述检测消息的丢包率。
结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述检测设备根据所述N个端口之间互相发送所述检测消息的丢包率确定所述第一端口是否有故障,包括:
在所述N个端口中,若有至少N/2个端口发送所述检测消息到所述第一端口的丢包率大于第一预设值,且所述至少N/2个端口之间发送所述检测消息的丢包率小于第二预设值,所述检测设备则确定所述第一端口有故障;否则,所述检测设备则确定所述第一端口没有故障。
结合前述的第一方面或第一方面的第一至第三种可能的实现方式中的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述故障通知包含第一故障通知,所述第一故障通知用于指示所述第一端口有故障,
其中,生成所述第一端口的故障通知,包括:
所述检测设备生成所述第一端口的所述第一故障通知,以使得服务器获取所述第一故障通知后,将所述第一端口从链路聚合组LAG中移除。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述故障通知包含第二故障通知,所述第二故障通知用于指示所述X个服务器内的N个端口均有故障,
其中,生成所述第一端口的故障通知,包括:
所述检测设备生成所述第一端口的所述第二故障通知,以使得所述服务器获取所述第二故障通知,并调用DRS(Distributed Resource Scheduler,分布式资源调度程序)对所述服务器内运行的虚拟机进行虚拟机热迁移。
结合前述的第一方面或第一方面的第一至第五种可能的实现方式中的任一种可能的实现方式,在第一方面的第六种可能的实现方式中,所述N个端口为所述X个服务器内的物理端口,或者,为所述X个服务器内运行的虚拟机中的虚拟端口。
第二方面,本发明的实施例提供一种通信故障的检测方法,包括:
服务器通过第一端口接收来自其他服务器内N-1个端口的探测消息,所述探测消息用于确定所述N-1个端口的错包数据和丢包数据,N>2;
服务器根据所述探测消息生成探测结果,所述探测结果包括所述N-1个端口发送所述探测消息到所述第一端口的丢包数据和错包数据;
服务器根据所述探测结果获取检测设备发送的故障通知,所述故障通知用于指示所述第一端口是否有故障。
在第二方面的第一种可能的实现方式中,所述第一端口为所述服务器内的物理端口,或者,为所述服务器内运行的虚拟机中的虚拟端口,
其中,在服务器根据所述探测结果获取检测设备发送的故障通知之后,还包括:
若所述第一端口为所述服务器内的物理端口,且所述第一端口有故障,所述服务器则根据所述故障通知将所述第一端口从链路聚合组LAG中移除;
若所述第一端口为所述服务器内运行的虚拟机中的虚拟端口,且所述第一端口有故障,所述服务器则根据所述故障通知对所述第一端口对应的虚拟机进行虚拟机热迁移。
在第二方面的第二种可能的实现方式中,在服务器根据所述探测结果获取检测设备发送的故障通知之后,还包括:
若所述第一端口没有故障,所述服务器则查询所述第一端口是否在所述LAG中;
若所述第一端口不在所述LAG中,所述服务器则将所述第一端口添加至所述LAG中,以便通过所述第一端口进行数据收发。
在第二方面的第三种可能的实现方式中,服务器根据所述探测消息生成探测结果,包括:
所述服务器根据在预置时间内接收到的所述探测消息的个数,计算所述N-1个端口到所述第一端口的丢包数据;
所述服务器根据在所述预置时间内接收到的探测消息分析所述探测消息是否是错包,以统计所述N-1个端口到所述第一端口的错包数据;
所述服务器根据所述丢包数据和所述错包数据,生成所述探测结果。
在第二方面的第四种可能的实现方式中,所述方法还包括:
所述服务器分别获取所述N-1个端口的MAC(Media Access Control,介质访问控制)地址;
所述服务器根据所述MAC地址构造所述探测消息;
所述服务器根据所述N-1个端口的MAC地址,通过所述第一端口将所述探测消息发送至所述N-1个端口。
第三方面,本发明的实施例提供一种检测设备,包括:
获取单元,用于分别获取X个服务器内N个端口的探测结果,所述探测结果包括每个端口根据接收到的其他端口发送的探测消息,确定的所述其它端口的错包数据和丢包数据,N>2,X>2;
确定单元,用于根据所述获取单元中每个端口确定的所述其它端口的错包数据和丢包数据,确定第一端口的状态,所述第一端口的状态用于指示所述第一端口是否有故障,所述第一端口为所述N个端口中的一个;
处理单元,用于根据所述确定单元中所述第一端口的状态,生成所述第一端口的故障通知。
在第三方面的第一种可能的实现方式中,所述确定单元包括计算子单元,其中,
所述计算子单元,用于根据所述探测结果分别计算所述N个端口之间互相发送所述检测消息的丢包率;
所述确定单元,具体用于根据所述N个端口之间互相发送所述检测消息的丢包率确定所述第一端口是否有故障。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,
所述计算子单元,具体用于将所述探测结果中的错包数据按照第一预置函数折算为相对丢包数据;以及根据所述相对丢包数据和所述探测结果中的丢包数据,按照第二预置函数分别计算所述N个端口之间互相发送所述检测消息的丢包率。
结合第三方面的第一种可能的实现方式,在第三方面的第三种可能的实现方式中,
所述确定单元,具体用于在所述N个端口中,若有至少N/2个端口发送所述检测消息到所述第一端口的丢包率大于第一预设值,且所述至少N/2个端口之间发送所述检测消息的丢包率小于第二预设值,则确定所述第一端口有故障;否则,则确定所述第一端口没有故障。
结合前述的第三方面或第三方面的第一至第三种可能的实现方式中的任一种可能的实现方式,在第三方面的第四种可能的实现方式中,
所述处理单元,具体用于生成所述第一端口的所述第一故障通知,以使得服务器获取所述第一故障通知后,将所述第一端口从LAG中移除;
其中,所述故障通知包含第一故障通知,所述第一故障通知用于指示所述第一端口有故障。
结合第三方面的第四种可能的实现方式,在第三方面的第五种可能的实现方式中,
所述处理单元,具体用于生成所述第一端口的所述第二故障通知,以使得所述服务器获取所述第二故障通知,并调用分布式资源调度程序DRS对所述服务器内运行的虚拟机进行虚拟机热迁移;
其中,所述故障通知包含第二故障通知,所述第二故障通知用于指示所述X个服务器内的N个端口均有故障。
结合前述的第三方面或第三方面的第一至第五种可能的实现方式中的任一种可能的实现方式,在第三方面的第六种可能的实现方式中,所述N个端口为所述X个服务器内的物理端口,或者,为所述X个服务器内运行的虚拟机中的虚拟端口。
第四方面,本发明的实施例提供一种服务器,包括:
接收单元,用于通过第一端口接收来自其他服务器内N-1个端口的探测消息,所述探测消息用于确定所述N-1个端口的错包数据和丢包数据,N>2;
处理单元,用于根据所述探测消息生成探测结果,所述探测结果包括所述N-1个端口发送所述探测消息到所述第一端口的丢包数据和错包数据;
获取单元,用于根据所述探测结果获取检测设备发送的故障通知,所述故障通知用于指示所述第一端口是否有故障。
在第四方面的第一种可能的实现方式中,所述第一端口为所述服务器内的物理端口,或者,为所述服务器内运行的虚拟机中的虚拟端口,其中,所述服务器还包括移除单元和迁移单元,
所述移除单元,用于若所述获取单元中所述第一端口为所述服务器内的物理端口,且所述第一端口有故障,则根据所述获取单元中的故障通知将所述第一端口从LAG中移除;
所述迁移单元,用于若所述获取单元中所述第一端口为所述服务器内运行的虚拟机中的虚拟端口,且所述第一端口有故障,则根据所述获取单元中的故障通知对所述第一端口对应的虚拟机进行虚拟机热迁移。
在第四方面的第二种可能的实现方式中,
所述处理单元,还用于若所述第一端口没有故障,则查询所述第一端口是否在所述LAG中;以及若所述第一端口不在所述LAG中,则将所述第一端口添加至所述LAG中,以便通过所述第一端口进行数据收发。
在第四方面的第三种可能的实现方式中,
所述处理单元,具体用于根据在预置时间内接收到的所述接收单元中的探测消息的个数,计算所述N-1个端口到所述第一端口的丢包数据;并根据在所述预置时间内接收到的所述接收单元中的探测消息分析所述探测消息是否是错包,以统计所述N-1个端口到所述第一端口的错包数据;以及根据所述丢包数据和所述错包数据,生成所述探测结果。
在第四方面的第四种可能的实现方式中,所述服务器还包括发送单元,
所述获取单元,还用于分别获取所述N-1个端口的介质访问控制MAC地址;
所述处理单元,还用于根据所述获取单元中的MAC地址构造所述探测消息;
所述发送单元,用于根据所述获取单元中N-1个端口的MAC地址,通过所述第一端口将所述处理单元中的探测消息发送至所述N-1个端口。
第五方面,本发明的实施例提供一种通信故障的检测系统,所述检测系统包括第三方面以及第三方面的第一至第六种可能的实现方式中任一种可能的实现方式所述的检测设备,以及与所述检测设备相连接的第四方面以及第四方面的第一至第四种可能的实现方式中任一种可能的实现方式所述的服务器。
本发明的实施例提供一种通信故障的检测方法、装置及系统,检测设备获取服务器内N个端口的探测结果,所述探测结果为服务器根据N个端口分别接收到的检测消息生成的,由于所述探测结果包括每个端口根据接收到的其他端口发送的探测消息,确定的所述其它端口的错包数据和丢包数据,因此,检测设备根据每个端口确定的所述其它端口的错包数据和丢包数据,确定N个端口中的某一端口是否为故障端口,以检测是否出现“亚健康”状态的端口影响了通过该端口的数据传输的效率,从而提高了数据传输的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为现有技术中通信故障的检测系统的架构示意图;
图2为本发明实施例提供的一种通信故障的检测系统的架构示意图;
图3为本发明实施例提供的检测设备的硬件示意图;
图4为本发明实施例提供的服务器的硬件示意图;
图5为本发明实施例提供的一种通信故障的检测方法的流程图一;
图6为本发明实施例提供的一种通信故障的检测方法的流程图二;
图7为本发明实施例提供的一种通信故障的检测方法的流程图三;
图8为本发明实施例提供的一种检测设备的结构示意图一;
图9为本发明实施例提供的一种检测设备的结构示意图二;
图10为本发明实施例提供的一种服务器的结构示意图一;
图11为本发明实施例提供的一种服务器的结构示意图二;
图12为本发明实施例提供的一种服务器的结构示意图三。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、接口、技术之类的具体细节,以便透彻理解本发明。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本发明。在其它情况中,省略对众所周知的装置、电路以及方法的详细说明,以免不必要的细节妨碍本发明的描述。
本文中术语“系统”和“网络”在本文中常被可互换使用。为方便理解本发明实施例提供的一种通信故障的检测方法、装置及系统,首先介绍与本发明相关的一些概念。
端口聚合,也叫做以太通道(ethernet channel),主要用于交换机或服务器之间连接。使用端口聚合的话,交换机会把一组物理端口联合起来作为一个逻辑的通道(如图1所示的端口1、2、3、4),也就是channel-group,这样交换机会认为这个逻辑通道为一个端口。使用端口聚合技术后,只要组内不是所有的端口都down掉(停机),两个交换机之间仍然可以继续通信,这样一来,使用端口聚合技术可以允许多个交换器之间通过多个端口并行连接同时传输数据以提供更高的带宽、更大的吞吐量和可恢复性的技术,增加了系统的可靠性。
交换机堆叠,是指将一台以上的交换机组合起来共同工作,以便在有限的空间内提供尽可能多的端口。多台交换机堆叠后,具有足够的系统带宽,增加了系统的可靠性。
LACP协议,是一种实现链路动态聚合与解聚合的协议。使用某端口的LACP协议后,该端口将通过发送LACPdu向对端通告自己的系统优先级、系统MAC、端口优先级、端口号。对端接收到这些信息后,将这些信息与其它端口所保存的信息比较以选择能够聚合的端口,从而双方可以对端口加入或退出某个动态聚合组达成一致。
链路聚合(Link Aggregation),是指将多个物理端口捆绑在一起,成为一个逻辑端口,以实现出/入流量在各成员端口中的负荷分担,交换机根据用户配置的端口负荷分担策略决定报文从哪一个成员端口发送到对端的交换机。当交换机或服务器检测到其中一个成员端口的链路发生故障时,就停止在此端口上发送数据,并根据负荷分担策略在剩下链路中重新计算报文发送的端口,故障端口恢复后再次重新计算数据再发送端口,因此,链路聚合在增加链路带宽、实现链路传输弹性和冗余等方面是一项很重要的技术。
另外,本发明中涉及的服务器,可以是各种类型的服务器,例如刀片服务器,并且,服务器内可以运行至少一个虚拟机,所述虚拟机中包含虚拟端口。本发明中涉及的交换机,是一种用于电信号转发的网络设备,它至少可以满足二层交换需求,即可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。
具体的,在各类服务器内进行端口聚合及交换机堆叠后,服务器内的各个端口可能会出现“亚健康”状态,此时,端口仍然可以与其他端口进行数据包的收发动作(即端口依然可用),但该端口在发送数据包时可能会出现丢包,或者,篡改数据包中的内容等异常操作。而现有技术中LAG无法检测到“亚健康”状态的端口,导致通过该“亚健康”端口进行传输的数据将持续受损,因此,本发明的实施例提供一种通信故障的检测方法、装置及系统,解决了现有技术中LAG无法检测到端口可能出现的“亚健康”状态的问题,提高了数据传输的可靠性。
实施例一
本发明的实施例提供一种通信故障的检测系统,如图2所示,包括链路聚合后的X个服务器01,和进行交换机堆叠后的Y个交换机02,以及检测设备03,其中,
所述服务器01内包含有至少一个端口,所述交换机02内包含有至少一个端口,所述服务器01与所述交换机02通过对应端口相连接。
所述服务器01内运行有至少一个虚拟机,所述虚拟机包含有虚拟端口。
所述检测设备03,可以部署在所述X个服务器01中的任意一个上,也可以独立于所述X个服务器01单独部署在所述通信故障的检测系统中。
一方面,在本发明的实施例中,所述检测设备03分别获取X个服务器01内N个端口的探测结果,所述探测结果包括每个端口根据接收到的其他端口发送的探测消息,确定的所述其它端口的错包数据和丢包数据,N>2,X>2;所述检测设备03根据所述每个端口确定的所述其它端口的错包数据和丢包数据,确定第一端口是否有故障,所述第一端口为所述N个端口中的一个。
进一步地,所述检测设备03根据所述每个端口确定的所述其它端口的错包数据和丢包数据,确定第一端口是否有故障,可以具体包括以下步骤:所述检测设备03根据所述探测结果分别计算所述N个端口之间互相发送所述检测消息的丢包率;所述检测设备03根据所述N个端口之间互相发送所述检测消息的丢包率确定所述第一端口是否有故障。
进一步地,所述检测设备03根据所述探测结果分别计算所述N个端口之间互相发送所述检测消息的丢包率,可以具体包括以下步骤:所述检测设备03将所述探测结果中的错包数据按照第一预置函数折算为相对丢包数据;所述检测设备03根据所述相对丢包数据和所述探测结果中的丢包数据,按照第二预置函数分别计算所述N个端口之间互相发送所述检测消息的丢包率。
进一步地,所述检测设备03根据所述N个端口之间互相发送所述检测消息的丢包率确定所述第一端口是否有故障,可以具体包括以下步骤:在所述N个端口中,若有至少N/2个端口发送所述检测消息到所述第一端口的丢包率大于第一预设值,且所述至少N/2个端口之间发送所述检测消息的丢包率小于第二预设值,所述检测设备03则确定所述第一端口有故障;否则,所述检测设备03则确定所述第一端口没有故障。
进一步地,在所述检测设备03根据所述N个端口之间互相发送检测消息的丢包数据和错包数据,确定第一端口是否有故障之后,还可以包括以下步骤:若所述第一端口有故障,所述检测设备03则向所述服务器01发送第一故障通知,以使得所述服务器01根据所述第一故障通知将所述第一端口从LAG中移除。
进一步地,在所述检测设备03根据所述N个端口之间互相发送检测消息的丢包数据和错包数据,确定第一端口是否有故障之后,还可以包括以下步骤:
若所述服务器01内的各个端口均有故障,所述检测设备03则调用DRS对所述服务器01内运行的虚拟机进行虚拟机热迁移,或者,
若所述服务器01内的各个端口均有故障,所述检测设备03则向所述服务器01发送第二故障通知,以使得所述服务器01根据所述第二故障通知调用DRS对所述服务器01内运行的虚拟机进行虚拟机热迁移。
另一方面,在本发明的实施例中,服务器01通过第一端口接收来自其他服务器01内其他N-1个端口的探测消息,所述探测消息用于确定所述N-1个端口的错包数据和丢包数据,N>2;服务器01根据所述探测消息生成探测结果,所述探测结果包括所述N-1个端口发送所述探测消息到所述第一端口的丢包数据和错包数据;服务器01根据所述探测结果获取检测设备03发送的故障通知,所述故障通知用于指示所述第一端口是否有故障。
进一步地,所述第一端口为所述服务器01内的物理端口,或者,为所述服务器01内运行的虚拟机中的虚拟端口,其中,在服务器01根据所述探测结果获取检测设备03发送的故障通知之后,还可以包括以下步骤:
若所述第一端口为所述服务器01内的物理端口,且所述第一端口有故障,所述服务器01则根据所述故障通知将所述第一端口从LAG中移除;
若所述第一端口为所述服务器01内运行的虚拟机中的虚拟端口,且所述第一端口有故障,所述服务器01则根据所述故障通知对所述第一端口对应的虚拟机进行虚拟机热迁移。
进一步地,在服务器01根据所述探测结果获取检测设备03发送的故障通知之后,还可以包括以下步骤:若所述第一端口没有故障,所述服务器01则查询所述第一端口是否在所述LAG中;若所述第一端口不在所述LAG中,所述服务器01则将所述第一端口添加至所述LAG中,以便通过所述第一端口进行数据收发。
进一步地,服务器01根据所述探测消息生成探测结果,可以具体包括以下步骤:所述服务器01根据在预置时间内接收到的所述探测消息的个数,计算所述N-1个端口到所述第一端口的丢包数据;所述服务器01根据在所述预置时间内接收到的探测消息分析所述探测消息是否是错包,以统计所述N-1个端口到所述第一端口的错包数据;所述服务器01根据所述丢包数据和所述错包数据,生成所述探测结果。
进一步地,所述通信故障的检测方法还可以包括以下步骤:所述服务器01分别获取所述N-1个端口的介质访问控制MAC地址;所述服务器01根据所述MAC地址构造所述探测消息;所述服务器01根据所述N-1个端口的MAC地址,通过所述第一端口将所述探测消息发送至所述N-1个端口。
需要说明的是,所述N个端口为所述服务器01内的物理端口,或者,为所述服务器01内运行的虚拟机中的虚拟端口。这样一来,本发明的实施例提供一种通信故障的检测方法、装置及系统,即可以应用于IAAS(Infrastructure as a Service,基础设施即服务)场景,也可以应用于PAAS(Platform-as-a-Service,平台即服务)场景,实现云场景下通信平面的自动切换,具体在IAAS和PAAS场景下实施通信故障的检测方法将在后续实施例中详细阐述,故此处不再赘述。
另外,上述IAAS和PAAS都是云计算中不同层次的一种服务形式,所述云计算(cloud computing),是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态地、易扩展地,且经常是虚拟化的资源。其中,云计算可以包括以下几个层次的服务:基础设施即服务(IAAS),平台即服务(PAAS)和软件即服务(SAAS,Software-as-a-Service)。IAAS是指消费者通过Internet可以从完善的计算机基础设施获得服务,例如:硬件服务器租用;PAAS是指将软件研发的平台作为一种服务,例如:软件的个性化定制开发。
而本发明实施例提供的通信故障的检测方法,既可以应用在IAAS场景中,即对IAAS中的服务器的物理端口进行全互联的通信故障检测,并对通信故障的端口进行路径切换,同时,本发明提供的通信故障的检测方法还可以应用在PAAS场景中,即对PAAS中的服务器内运行的虚拟机的虚拟端口进行全互联的通信故障检测,进而结合IAAS场景中对物理端口的探测结果,实现对通信故障的端口的自动路径切换。
由于在现有技术中,服务器只能通过LAG检测自身的各个端口是否可用,即判断端口能否传送数据,而不能检测到端口故障时传送数据发生的“亚健康”情况(比如在发送数据包时出现大量丢包,或者篡改数据包中的内容等),导致通过该“亚健康”端口进行传输的数据将持续受损,使数据传输的可靠性降低。而本发明提供的通信故障的检测方法恰恰可以检测出“亚健康”状态的端口,进而及时将“亚健康”状态的端口从LAG中移除,从而提高了数据传输的可靠性。
本发明的实施例提供一种通信故障的检测系统,服务器通过第一端口获取到来自各个服务器内N-1个端口的探测消息,并根据所述探测消息生成探测结果,当检测设备分别获取X个服务器内N个端口的探测结果后,根据所述探测结果确定第一端口是否存在故障。该方案中,检测设备分别获取X个服务器内N个端口的探测结果,所述探测结果为各个服务器根据N个端口分别接收到的检测消息生成的,由于所述探测结果包括每个端口根据接收到的其他端口发送的探测消息,确定的所述其它端口的错包数据和丢包数据,因此,检测设备根据所述每个端口确定的所述其它端口的错包数据和丢包数据,确定N个端口中的某一端口是否为故障端口,以检测是否出现“亚健康”状态的端口影响该端口的数据传输效率,从而提高了数据传输的可靠性,解决了现有技术中LAG无法检测到发生异常操作的故障端口的问题,避免了使用故障端口传输数据的风险。
实施例二
附图3示出的是本发明实施例提供的检测设备的硬件示意图:
该检测设备可以为服务器或刀片等,且该检测设备可以部署在通信故障的检测系统中上报探测结果的服务器内,也可以在通信故障的检测系统中引入新的服务器作为检测设备,具体的:
如图3,所述检测设备包括处理器11、收发模块12、存储器13,其中,
处理器11,是所述检测设备的控制中心,检测设备通过运行或执行存储在存储器内的软件程序和/或模块,以及调用存储在存储器内的数据,执行检测设备的各种功能和处理数据。
收发模块12,可用于收发信息过程中,信号的接收和发送,特别地,收发模块可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,本发明中,收发模块可基于LACP协议或ARP(Address Resolution Protocol,地址解析协议)进行数据收发。
存储器13,可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行检测设备的各种功能应用以及数据处理。
在本发明实施例中,收发模块12分别获取X个服务器内N个端口的探测结果,所述探测结果包括每个端口根据接收到的其他端口发送的探测消息,确定的所述其它端口的错包数据和丢包数据,N>2,X>2;处理器11根据所述每个端口确定的所述其它端口的错包数据和丢包数据,确定第一端口是否有故障,所述第一端口为所述N个端口中的一个。
进一步的,所述处理器11根据所述N个端口之间互相发送检测消息的丢包数据和错包数据,确定第一端口是否有故障,还可以包括以下步骤:所述处理器11根据所述探测结果分别计算所述N个端口之间互相发送所述检测消息的丢包率并保存至存储器13;所述处理器11根据所述N个端口之间互相发送所述检测消息的丢包率确定所述第一端口是否有故障。
进一步的,所述处理器11根据所述探测结果分别计算所述N个端口之间互相发送所述检测消息的丢包率,还可以包括以下步骤:所述处理器11将所述探测结果中的错包数据按照第一预置函数折算为相对丢包数据;所述处理器11根据所述相对丢包数据和所述探测结果中的丢包数据,按照第二预置函数分别计算所述N个端口之间互相发送所述检测消息的丢包率。
进一步的,所述处理器11根据所述N个端口之间互相发送所述检测消息的丢包率确定所述第一端口是否有故障,还可以包括以下步骤:在所述N个端口中,若有至少N/2个端口发送所述检测消息到所述第一端口的丢包率大于第一预设值,且所述至少N/2个端口之间发送所述检测消息的丢包率小于第二预设值,所述处理器11则确定所述第一端口有故障;否则,所述处理器11则确定所述第一端口没有故障。
进一步的,在处理器11根据所述N个端口之间互相发送检测消息的丢包数据和错包数据,确定第一端口是否有故障之后,还可以包括以下步骤:若所述处理器11确定所述第一端口有故障,所述处理器11则通过收发模块12向所述第一端口对应的服务器发送第一故障通知,以使得所述服务器根据所述第一故障通知将所述第一端口从LAG中移除。
进一步的,在处理器11根据所述N个端口之间互相发送检测消息的丢包数据和错包数据,确定第一端口是否有故障之后,还可以包括以下步骤:若处理器11确定所述X个服务器内的各个端口均有故障,所述处理器11则调用存储器13中的DRS对所述X个服务器内运行的虚拟机进行虚拟机热迁移,或者,
若处理器11确定所述服务器内的X个端口均有故障,所述处理器11则通过收发模块12向所述X个服务器发送第二故障通知,以使得所述X个服务器根据所述第二故障通知调用DRS对所述X个服务器内运行的虚拟机进行虚拟机热迁移。
进一步的,所述N个端口为所述服务器内的物理端口,或者,为所述服务器内运行的虚拟机中的虚拟端口。具体的,在IAAS中,对服务器的物理端口进行全互联的通信故障检测,并对通信故障的端口进行路径切换,在PAAS中,对服务器内运行的虚拟机的虚拟端口进行全互联的通信故障检测,进而结合IAAS场景中对物理端口的探测结果,实现对通信故障的端口的自动路径切换。
附图4示出的是本发明实施例提供的服务器的硬件示意图:
该服务器可以为各种类型的服务器(例如刀片服务器等),具体的:
如图4,所述服务器包括处理器21、收发模块22、存储器23,其中,
处理器21,是所述服务器的控制中心,服务器通过运行或执行存储在存储器内的软件程序和/或模块,以及调用存储在存储器内的数据,执行检测设备的各种功能和处理数据。
收发模块22,可用于收发信息过程中,信号的接收和发送,特别地,收发模块可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,本发明中,收发模块可基于LACP协议或ARP协议进行数据收发。
存储器23,可用于存储软件程序以及模块,处理器通过运行存储在存储器的软件程序以及模块,从而执行服务器的各种功能应用以及数据处理。
在本发明实施例中,收发模块22通过第一端口接收来自其他服务器内N-1个端口的探测消息,所述探测消息用于确定所述N-1个端口的错包数据和丢包数据,N>2;处理器21根据所述探测消息生成探测结果并发送至收发模块22,所述探测结果包括所述N-1个端口发送所述探测消息到所述第一端口的丢包数据和错包数据;收发模块22根据所述探测结果获取检测设备发送的故障通知并发送至处理器21,所述故障通知用于指示所述第一端口是否有故障。
进一步的,所述第一端口为所述服务器内的物理端口,或者,为所述服务器内运行的虚拟机中的虚拟端口。
进一步的,收发模块22根据所述探测结果获取检测设备发送的故障通知并发送至处理器21之后,还可以包括以下步骤:若所述第一端口为所述服务器内的物理端口,且所述第一端口有故障,所述处理器21则根据所述故障通知将所述第一端口从存储器23中的LAG中移除;
若所述第一端口为所述服务器内运行的虚拟机中的虚拟端口,且所述第一端口有故障,所述处理器21则根据所述故障通知对所述第一端口对应的虚拟机进行虚拟机热迁移。
进一步的,收发模块22根据所述探测结果获取检测设备发送的故障通知并发送至处理器21之后,还可以包括以下步骤:若所述第一端口没有故障,所述处理器21则查询所述第一端口是否在所述存储器23的LAG中;若所述第一端口不在所述LAG中,所述处理器21则将所述第一端口添加至所述LAG中并更新添加后的LAG至存储器23,以便收发模块22通过所述第一端口进行数据收发。
进一步的,处理器21根据所述探测消息生成探测结果并发送至收发模块22,可以包括以下步骤:所述处理器21根据在预置时间内接收到的所述探测消息的个数,计算所述N-1个端口到所述第一端口的丢包数据并保存至存储器23;所述处理器21根据在所述预置时间内接收到的探测消息分析所述探测消息是否是错包,以统计所述N-1个端口到所述第一端口的错包数据并保存至存储器23;所述处理器21根据存储器23中所述丢包数据和所述错包数据,生成所述探测结果。
进一步的,所述通信故障的检测方法还可以包括以下步骤:所述处理器21分别获取所述N-1个端口的MAC地址;所述处理根据所述MAC地址构造所述探测消息;所述收发模块22根据所述N-1个端口的MAC地址,通过所述第一端口将所述探测消息发送至所述N-1个端口。
可以看出,由于在现有技术中,服务器只能通过LAG检测自身的各个端口是否可用,即判断端口能否传送数据,而不能检测到端口故障时传送数据发生的“亚健康”情况(比如在发送数据包时出现大量丢包,或者篡改数据包中的内容等),导致通过该“亚健康”端口进行传输的数据将持续受损,使数据传输的可靠性降低。而本发明提供的通信故障的检测方法恰恰可以检测出“亚健康”状态的端口,进而及时将“亚健康”状态的端口从LAG中移除,从而提高了数据传输的可靠性。
本发明的实施例提供一种通信故障的检测装置,服务器通过第一端口获取到来自各个服务器内N-1个端口的探测消息,并根据所述探测消息生成探测结果,当检测设备分别获取X个服务器内N个端口的探测结果后,根据所述探测结果确定第一端口是否存在故障。该方案中,检测设备分别获取X个服务器内N个端口的探测结果,所述探测结果为各个服务器根据N个端口分别接收到的检测消息生成的,由于所述探测结果包括每个端口根据接收到的其他端口发送的探测消息,确定的所述其它端口的错包数据和丢包数据,因此,检测设备根据所述每个端口确定的所述其它端口的错包数据和丢包数据,确定N个端口中的某一端口是否为故障端口,以检测是否出现“亚健康”状态的端口影响该端口的数据传输效率,从而提高了数据传输的可靠性,解决了现有技术中LAG无法检测到发生异常操作的故障端口的问题,避免了使用故障端口传输数据的风险。
实施例三
本发明的实施例提供一种通信故障的检测方法,如图5所示,包括:
101、检测设备分别获取X个服务器内N个端口的探测结果,所述探测结果包括每个端口根据接收到的其他端口发送的探测消息,确定的其它端口的错包数据和丢包数据。
其中,N>2,X>2,所述N个端口为通信故障的检测系统中,经过端口聚合后的服务器中的各个端口(如图2服务器1的端口1、2、3、4所示)。
所述探测结果为各个服务器根据接收到的探测消息生成并上报至检测设备的,具体的,所述探测结果包括N个端口之间互相发送检测消息的丢包数据和错包数据,如表1所示,为服务器通过端口1发送至探测设备的探测结果,其中包括端口1至通信故障的检测系统中剩余N-1个端口的错包数据和丢包数据,而该错包数据和丢包数据反映了端口1至其他N-1个端口的通信路径的通信质量。
表1
错包数据 丢包数据
端口1至端口2 5个 3个
端口1至端口3 0个 0个
端口1至端口4 3个 5个
端口1至端口5 1个 0个
相应的,检测设备获取到所有的N个端口的探测结果后,即获取了当前通信故障的检测系统中,所有通信路径的通信质量,以便检测设备根据所有通信路径的通信质量评估存在故障的端口。
需要说明的是,所述错包数据和丢包数据的计算方法将在后续实施例中详细阐述,故此处不再赘述。
102、检测设备根据每个端口确定的其它端口的错包数据和丢包数据,确定第一端口的状态,所述第一端口的状态用于指示第一端口是否有故障。
检测设备在获取X个服务器内N个端口的探测结果之后,可以根据该探测结果确定第一端口是否有故障,第一端口为N个端口中的一个。
可选的,检测设备在获取服务器内N个端口的探测结果之后,可以根据所述探测结果分别计算所述N个端口之间互相发送所述检测消息的丢包率;进而根据所述N个端口之间互相发送所述检测消息的丢包率确定所述第一端口是否有故障。
示例性的,所述检测设备可以将所述探测结果中的错包数据按照第一预置函数折算为相对丢包数据;然后根据所述相对丢包数据和所述探测结果中的丢包数据,按照第二预置函数分别计算所述N个端口之间互相发送所述检测消息的丢包率。最终,如表2所示,反映了各个端口之间进行检测消息的收发时各个端口之间的丢包率,例如端口1至端口3的丢包率为0.2%。其中,表2内数据为百分制数据。
表2
端口1 端口2 端口3 端口4
端口1 1 0.2 0
端口2 0 0.3 0.3
端口3 0.1 1 0.2
端口4 0.1 0.9 0
进而,在检测设备计算所述N个端口之间互相发送所述检测消息的丢包率之后,确定所述第一端口是否有故障。示例性的,检测设备根据表2进行统计,在N个端口中,若有至少N/2个端口发送检测消息到第一端口的丢包率大于第一预设值,且至少N/2个端口之间发送检测消息的丢包率小于第二预设值,检测设备则确定第一端口有故障;否则,检测设备则确定第一端口没有故障。
可选的,检测设备内还可以预置丢包数据和错包数据的阈值,当检测设备接收到的某一个端口与其他端口互相发送检测消息的丢包数据和错包数据满足所述预置丢包数据和错包数据的阈值时,确定该端口为有故障的端口,使用该端口进行数据收发会影响数据的可靠性。
可选的,检测设备内还可以根据N个端口之间互相发送检测消息的丢包数据和错包数据,计算每个端口与其他端口之间的丢包数据和错包数据的比率,得到丢包和错包相对较小的端口,当N个端口都出现故障时,选取该丢包和错包相对较小的端口收发数据,尽最大可能保证服务器正常工作。
至此,检测设备根据探测结果确定第一端口是否有故障。
103、检测设备根据第一端口的状态,生成第一端口的故障通知。
在检测设备根据所述N个端口之间互相发送检测消息的丢包数据和错包数据,确定第一端口是否有故障之后,若所述第一端口有故障,所述检测设备可以生成第一端口的故障通知,进一步地,所述检测设备可以向所述服务器发送第一故障通知,以使得所述服务器根据所述第一故障通知将所述第一端口从LAG中移除,即停止在此端口上发送数据,并根据负荷分担策略在剩下链路中重新计算数据发送的端口,当故障的端口恢复后再次重新计算数据发送端口,这样一来,可以实现所述N个端口之间通信路径的自动切换。
进一步地,若检测设备根据所述探测结果确定所述服务器内的各个端口均有故障,此时检测设备可以调用DRS对所述服务器内运行的虚拟机进行虚拟机热迁移,或者,检测设备可以向所述服务器发送第二故障通知,以使得所述服务器根据所述第二故障通知调用DRS对所述服务器内运行的虚拟机进行虚拟机热迁移,将有故障的端口上的服务器内的虚拟机迁移到其他没有故障端口的服务器上,以保故障端口对应的虚拟机在进行业务交互时,数据传输不受损害。
至此,可以看出,使用本发明提供通信故障的检测方法可以有效检测出“亚健康”状态的端口,即端口仍然可以进行传输数据,但在数据传输时丢包率非常大导致经过该端口的数据将持续受损的端口,并且在检测出“亚健康”状态的端口后,及时将所述第一端口从LAG中移除,或者对所述服务器内运行的虚拟机进行虚拟机热迁移,以实现所述N个端口之间通信路径的自动切换且保证数据传输时不受损害。
需要说明的是,所述N个端口为所述服务器内的物理端口,或者,为所述服务器内运行的虚拟机中的虚拟端口。具体的,在IAAS中,对服务器的物理端口进行全互联的通信故障检测,并对通信故障的端口进行路径切换,在PAAS中,对服务器内运行的虚拟机的虚拟端口进行全互联的通信故障检测,进而结合IAAS场景中对物理端口的探测结果,实现对通信故障的端口的自动路径切换。
本发明的实施例提供一种通信故障的检测方法,如图6所示,包括:
201、服务器通过第一端口接收来自其他服务器内N-1个端口的探测消息。
其中,所述探测消息用于确定所述N-1个端口的错包数据和丢包数据,N>2。
服务器可以周期性的通过第一端口接收来自N-1个端口的探测消息,比如,第一端口在一分钟内接收来自N-1个端口的探测消息,而根据服务器内原有通信协议,第一端口在固定周期内接收各个端口发送的探测消息的个数是预定好的,该预定的个数体现了端口收发数据的能力,比如,端口1在一分钟内应该接收到端口3发送的60个探测消息。所述探测消息可以用于反映N-1个端口到第一端口的QoS(Quality of Service,服务质量),其中,QoS是指在一个或多个对象的集体行为上的一套质量需求的集合。由于第一端口与其他N-1个端口之间的路径可能存在故障,因此,服务器可以通过为各个端口周期性的发送指定数目的探测消息,以确定所述N-1个端口的错包数据和丢包数据,该N-1个端口的错包数据和丢包数据反映了所述N-1个端口到第一端口的服务质量QoS。
示例性的,如表3所示,为第一端口在一分钟内接收到的N-1个端口的探测消息的个数,而第一端口在一分钟内接收N-1个端口发送的探测消息的个数的预定值为100个,可以看出,第一端口收到的N-1个端口的探测消息的个数,反映了第一端口至N-1个端口之间的通信能力。
表3
202、服务器根据探测消息生成探测结果,所述探测结果包括N-1个端口发送探测消息到第一端口的丢包数据和错包数据。
在服务器通过第一端口接收来自N-1个端口的探测消息之后,服务器可以根据探测消息生成探测结果。
具体的,服务器可以根据在预置时间内接收到的所述探测消息的个数,计算所述N-1个端口到所述第一端口的丢包数据;另外,服务器根据在所述预置时间内接收到的探测消息分析所述探测消息是否是错包,以统计所述N-1个端口到所述第一端口的错包数据;最后,服务器根据所述丢包数据和所述错包数据,生成所述探测结果。
示例性的,如表4所示,在表3的基础上,服务器根据探测消息生成第一端口至N-1个端口的探测结果并上报至检测设备,以使得检测设备根据N个端口的探测结果确定所述第一端口是否有故障。其中,表4中第一端口的错包数据是根据第一端口接收到的每一个探测消息的CRC(Cyclic Redundancy Check,循环冗余校验码)计算得到的。
表4
至此,服务器通过第一端口接收来自N-1个端口的探测消息,并根据探测消息生成探测结果,以便检测设备根据所述各个端口的探测结果确定有故障的端口。
进一步地,在服务器通过第一端口接收来自N-1个端口的探测消息,并根据探测消息生成探测结果的同时,服务器中的还可以周期性的向其他N-1个端口发送探测消息,以使得其他N-1个端口同样的根据探测消息生成自己的探测结果上报给检测设备。
首先,服务器分别获取其他N-1个端口的MAC地址;其中,MAC地址,或称为MAC位址、硬件位址,用来定义网络设备的位置,表示互联网上每一个站点的标识符。
具体的,服务器可以根据ARP协议或者LACP协议获取到其他服务器内各个端口的MAC地址。
其次,服务器根据其他N-1个端口的MAC地址构造探测消息。
该探测消息可以是一个二层数据包,在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址,因此每个网络位置会有一个专属于它的MAC地址。服务器内的第一端口识别二层数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。
最后,服务器根据所述N-1个端口的MAC地址,通过所述第一端口将所述探测消息发送至所述N-1个端口。
这样一来,服务器中的周期性的向其他N-1个端口发送探测消息,以使得其他N-1个端口同样的根据探测消息生成自己的探测结果上报给检测设备。
203、服务器根据探测结果获取检测设备发送的故障通知,故障通知用于指示第一端口是否有故障。
服务器根据探测消息生成探测结果后,检测设备根据各个端口的探测结果确定第一端口是否有故障,服务器可以根据探测结果获取检测设备发送的故障通知。
具体的,若所述第一端口为所述服务器内的物理端口,且所述第一端口有故障,所述服务器可以根据所述故障通知将所述第一端口从LAG中移除。
若所述第一端口为所述服务器内运行的虚拟机中的虚拟端口,且所述第一端口有故障,服务器可以根据所述故障通知对所述第一端口对应的虚拟机进行虚拟机热迁移。
若所述第一端口没有故障,所述服务器则查询所述第一端口是否在所述LAG中,即判断第一端口之前是不是发生故障已经从LAG中移除;若所述第一端口不在所述LAG中,即第一端口已经从LAG中移除,所述服务器此时可以将所述第一端口重新添加至所述LAG中,以便通过所述第一端口进行数据收发。
需要说明的是,在所述检测设备根据所述探测结果确定第一端口有故障之后,将所述第一端口从LAG中移除的工作既可以由检测设备完成,也可以由检测设备发送故障消息告知服务器第一端口有故障,进而由服务器自己将所述第一端口从LAG中移除,本发明对此并不做限定。
另外,所述N个端口为所述服务器内的物理端口,或者,为所述服务器内运行的虚拟机中的虚拟端口。具体的,在IAAS中,对服务器的物理端口进行全互联的通信故障检测,并对通信故障的端口进行路径切换,在PAAS中,对服务器内运行的虚拟机的虚拟端口进行全互联的通信故障检测,进而结合IAAS场景中对物理端口的探测结果,实现对通信故障的端口的自动路径切换。
至此,服务器之间通过各个端口接收和发送探测消息,形成一个全互联的路径探测系统,生成探测结果以探测各个端口之间的服务质量,并通过检测设备对各个端口上报的探测结果进行分析,检测出“亚健康”状态的端口,进而及时将“亚健康”状态的端口从LAG中移除,避免服务器使用该“亚健康”状态的端口进行数据收发而导致数据持续受损。
而在现有技术中,服务器只能通过LAG检测自身的各个端口是否可用,即判断端口能否传送数据,而不能检测到端口故障时传送数据发生的异常情况(比如在发送数据包时出现大量丢包,或者篡改数据包中的内容等),导致通过该“亚健康”端口进行传输的数据将持续受损,使数据传输的可靠性降低。而本发明提供的通信故障的检测方法恰恰可以检测出“亚健康”状态的端口,进而及时将“亚健康”状态的端口从LAG中移除,提高了数据传输的可靠性。
本发明的实施例提供一种通信故障的检测方法,服务器通过第一端口获取到来自各个服务器内N-1个端口的探测消息,并根据所述探测消息生成探测结果,当检测设备分别获取X个服务器内N个端口的探测结果后,根据所述探测结果确定第一端口是否存在故障。该方案中,检测设备分别获取X个服务器内N个端口的探测结果,所述探测结果为各个服务器根据N个端口分别接收到的检测消息生成的,由于所述探测结果包括每个端口根据接收到的其他端口发送的探测消息,确定的所述其它端口的错包数据和丢包数据,因此,检测设备根据所述每个端口确定的所述其它端口的错包数据和丢包数据,确定N个端口中的某一端口是否为故障端口,以检测是否出现“亚健康”状态的端口影响该端口的数据传输效率,从而提高了数据传输的可靠性,解决了现有技术中LAG无法检测到发生异常操作的故障端口的问题,避免了使用故障端口传输数据的风险。
实施例四
本发明的实施例提供一种通信故障的检测方法,如图7所示,包括:
301、服务器通过第一端口接收来自其他服务器内N-1个端口的探测消息。
其中,所述探测消息用于确定所述N-1个端口的错包数据和丢包数据,N>2。所述探测消息可以是一个二层数据包,该二层数据包的长度可以改变,且二层数据包的内容可以是随机可变的。
由于第一端口在固定周期内接收各个端口发送的探测消息的个数是预定好的,该预定的个数体现了端口收发数据的能力,因此服务器可以通过第一端口接收其他服务器以及自己中的各个端口周期性的发送指定数目的探测消息,以确定所述N-1个端口的错包数据和丢包数据,比如,端口1每分钟应该接受到端口2发送的60个探测消息,如果实际端口1每分钟仅仅接受到端口2发送的50个探测消息,那么说明端口1或者端口2出现了丢包的现象。
另外,在服务器通过第一端口接收来自N-1个端口的探测消息,并根据探测消息生成探测结果的同时,服务器中的还可以周期性的向其他服务器内的N-1个端口发送探测消息,以使得其他N-1个端口同样的根据探测消息生成自己的探测结果上报给检测设备。
具体的,服务器可以根据ARP协议或者LACP协议获取到其他服务器内各个端口的MAC地址。进而根据其他N-1个端口的MAC地址构造探测消息。最后,服务器根据所述N-1个端口的MAC地址,通过所述第一端口将所述探测消息发送至所述N-1个端口。
302、服务器根据探测消息生成探测结果,所述探测结果包括N-1个端口发送探测消息到第一端口的丢包数据和错包数据。
在服务器通过第一端口接收来自N-1个端口的探测消息之后,服务器可以根据探测消息生成探测结果。
具体的,服务器可以根据在预置时间内接收到的所述探测消息的个数,计算所述N-1个端口到所述第一端口的丢包数据;另外,服务器根据在所述预置时间内接收到的探测消息分析所述探测消息是否是错包,以统计所述N-1个端口到所述第一端口的错包数据;最后,服务器根据所述丢包数据和所述错包数据,生成所述探测结果。
示例性的,丢包数据=周期内应接收的探测消息个数-周期内实际接收的探测消息个数;
在计算错包数据时,首先计算接收到的每一个探测消息的CRC值,若果计算得到的CRC值与接收到的探测消息中携带的CRC值不相符,则将该接收到的探测消息记为一个错包数据。其中,CRC是数据通信领域中最常用的一种差错校验码,其特征是信息字段和校验字段的长度可以任意选定。CRC是一种数据传输检错功能,对数据进行多项式计算,并将得到的结果附在帧的后面,接收设备也执行类似的算法,以保证数据传输的正确性和完整性。
至此,服务器通过第一端口接收来自N-1个端口的探测消息,并根据探测消息生成探测结果,以便检测设备根据所述各个端口的探测结果确定有故障的端口。
303、检测设备获取各个服务器内N个端口的探测结果。
其中,所述检测设备中可以部署有路径探测系统,周期性的接收服务器内N个端口的探测结果,进而路径探测系统根据N个端口的探测结果分析有故障的端口。检测设备获取服务器内N个端口的探测结果,所述探测结果包括N个端口之间互相发送检测消息的丢包数据和错包数据。
具体的,服务器中的每一个端口都重复上述步骤301和302,直至检测设备的路径探测系统获取到所有N个端口的探测结果,如表5所示。检测设备的路径探测系统获取到所有的N个端口的探测结果后,即获取了当前通信故障的检测系统中,所有通信路径的通信质量,以便检测设备根据所有通信路径的通信质量评估存在故障的端口。
表5
丢包数据 错包数据
第一端口 A B
…… …… ……
第N端口 C D
304、检测设备根据探测结果分别计算N个端口之间互相发送检测消息的丢包率。
检测设备在获取服务器内N个端口的探测结果之后,可以根据该探测结果确定第一端口是否有故障,第一端口为N个端口中的一个。
具体的,首先,所述检测设备可以将所述探测结果中的错包数据按照第一预置函数折算为相对丢包数据。
示例性的,第一预置函数F1=相对丢包数据=错包数据*5,即按照1:5的比例将所述错包数据折算为相对丢包数据。假设端口1至端口2的错包数据为2,那么端口1至端口2的相对丢包数据=错包数据*5=2*5=10。
其次,根据所述相对丢包数据和所述探测结果中的丢包数据,按照第二预置函数分别计算所述N个端口之间互相发送所述检测消息的丢包率。为准确评估N个端口之间的路径通信质量,可以将所述丢包率记为相对丢包率。由于可能出现服务器的各个端口之间都出现较大丢包率,此时若检测设备按照绝对丢包率计算可能会导致所有端口出现故障的问题,因此,检测设备按照N个端口之间的相对丢包率确定第一端口是否有故障。
示例性的,第二预置函数F2=丢包率=(相对丢包数据+丢包数据)/应接收探测消息的个数。假设端口1至端口2的相对丢包数据为10,丢包数据为3,周期内应接收探测消息的个数为100,那么,端口1至端口2的丢包率=(相对丢包数据+丢包数据)/应接收探测消息的个数=(10+3)/100=0.13。
进一步地,若端口1至端口2的丢包率为0.13,端口1至端口3的丢包率为0.15,端口1至端口4的丢包率为0.05,那么取丢包率最小值(0.05)为基准计算端口1至端口2、3、4的相对丢包率,其中,端口1至端口2的丢包率为0.08,端口1至端口3的丢包率为0.1,端口1至端口4的丢包率为0。
至此,检测设备根据探测结果分别计算N个端口之间互相发送检测消息的相对丢包率。
305、检测设备根据N个端口之间互相发送检测消息的丢包率确定第一端口是否有故障。
其中,所述第一端口可以是N个端口中的任一个。在N个端口中,若有至少N/2个端口发送检测消息到第一端口的丢包率大于第一预设值,且至少N/2个端口之间发送检测消息的丢包率小于第二预设值,检测设备则确定第一端口有故障;否则,检测设备则确定第一端口没有故障。
示例性的,以表6为例,根据4个端口之间互相发送检测消息的相对丢包率确定端口1是否有故障。其中,表6内数据为百分制数据。
表6
端口1 端口2 端口3 端口4
端口1 1.2 2.2 2.5
端口2 3 0.03 0.03
端口3 4 0.08 0.02
端口4 2.3 0.9 0
具体的,根据表6进行统计,在4个端口中,若端口2、3、4发送检测消息到端口1的相对丢包率都大于第一预设值(1%),且端口2、3、4之间发送检测消息的相对丢包率小于第二预设值(0.2%),因此,检测设备确定端口1有故障。
检测设备可以根据上述方法确定N个端口中的每一个端口是否有故障,即检测服务器的各个端口内是否出现“亚健康”状态的端口影响该端口的数据传输效率。
306、若第一端口有故障,检测设备则生成第一故障通知。
所述第一故障通知用于指示服务器将第一端口从LAG中移除。
具体的,若第一端口有故障,则所述第一端口为“亚健康”状态的端口,该端口影响了数据传输效率。因此,所述检测设备可以生成第一故障通知,并向所述服务器发送第一故障通知,以使得所述服务器根据所述第一故障通知将所述第一端口从LAG中移除,即停止在此端口上发送数据,并根据负荷分担策略在剩下链路中重新计算数据发送的端口,当故障的端口恢复后再次重新计算数据发送端口,这样一来,可以实现所述N个端口之间通信路径的自动切换。
307、若服务器内的各个端口均有故障,检测设备则调用DRS对服务器内运行的虚拟机进行虚拟机热迁移。
具体的,若检测设备根据所述探测结果确定所述服务器内的各个端口均有故障,此时检测设备可以调用DRS对所述服务器内运行的虚拟机进行虚拟机热迁移,或者,检测设备可以向所述服务器发送第二故障通知,以使得所述服务器根据所述第二故障通知调用DRS对所述服务器内运行的虚拟机进行虚拟机热迁移,将有故障的端口上的服务器内的虚拟机迁移到其他没有故障端口的服务器上,以保故障端口对应的虚拟机在进行业务交互时,数据传输不受损害。
其中,虚拟机热迁移(VM Live Migration,又叫动态迁移、实时迁移),即虚拟机保存/恢复(Save/Restore)是指:将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上。恢复以后,虚拟机仍旧平滑运行,用户不会察觉到任何差异。
308、若服务器内的各个端口均有故障,检测设备则生成第二故障通知。
其中,所述第二故障通知用于指示服务器调用DRS对服务器内运行的虚拟机进行虚拟机热迁移。
309、若第一端口没有故障,且第一端口不在LAG中,服务器则将第一端口添加至LAG中,以便通过第一端口进行数据收发。
若所述第一端口没有故障,所述服务器则查询所述第一端口是否在所述LAG中,即判断第一端口之前是不是发生故障已经从LAG中移除;若所述第一端口不在所述LAG中,即第一端口已经从LAG中移除,所述服务器此时可以将所述第一端口重新添加至所述LAG中,以便通过所述第一端口进行数据收发。
需要说明的是,在所述检测设备根据所述探测结果确定第一端口有故障之后,将所述第一端口从LAG中移除的工作既可以由检测设备完成,也可以由检测设备发送故障消息告知服务器第一端口有故障,进而由服务器自己将所述第一端口从LAG中移除,本发明对此并不做限定。
显而易见的,上述步骤306至309是步骤308之后的四种可能出现的情况,故步骤306至309之间为并列关系,本发明实施例并不限制步骤306至309之间的逻辑关系。
另外,所述N个端口为所述服务器内的物理端口,或者,为所述服务器内运行的虚拟机中的虚拟端口。具体的,在IAAS中,对服务器的物理端口进行全互联的通信故障检测,并对通信故障的端口进行路径切换,在PAAS中,对服务器内运行的虚拟机的虚拟端口进行全互联的通信故障检测,进而结合IAAS场景中对物理端口的探测结果,实现对通信故障的端口的自动路径切换。
可选的,下面提供一种在PAAS中通信故障的检测方法:
在PAAS中,各个服务器内运行有至少一个虚拟机,所述虚拟机内有虚拟端口,本发明提供的通信故障的检测方法用于检测所述虚拟端口是否出现故障。
其中,虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。
具体的,在PAAS中通信故障的检测方法可以包括以下步骤:
401、虚拟机通过第一虚拟端口接收来自M-1个虚拟端口的虚拟探测消息,所述虚拟探测消息用于确定所述M-1个端口的错包数据和丢包数据,M>2。
其中,接收来自M-1个虚拟端口的虚拟探测消息的方法可以参考步骤301。
402、虚拟机根据虚拟探测消息生成虚拟探测结果,所述虚拟探测结果包括M-1个虚拟端口发送虚拟探测消息到第一虚拟端口的丢包数据和错包数据。
其中,根据虚拟探测消息生成虚拟探测结果的方法可以参考步骤302。
403、虚拟机获取来自M个虚拟端口的探测结果。
其中,所述虚拟机中可以部署有虚拟路径探测系统,按照步骤401和402周期性的接收来自M个虚拟端口的探测结果,进而虚拟路径探测系统根据M个虚拟端口的虚拟探测结果分析有故障的虚拟端口。
404、虚拟路径探测系统根据虚拟探测结果确定第一虚拟端口是否有故障,第一虚拟端口为N个虚拟端口中的一个。
具体的,虚拟路径探测系统可以根据虚拟探测结果分别计算M个虚拟端口之间互相发送虚拟检测消息的丢包率,其中,丢包率的计算方法可以参考步骤304。进而,虚拟路径探测系统根据N个虚拟端口之间互相发送虚拟检测消息的丢包率确定第一虚拟端口是否有故障,其中确定第一虚拟端口是否有故障的方法可以参考步骤305。
405、若第一虚拟端口有故障,虚拟路径探测系统则生成虚拟故障信息上报至VNFM,以使得VNFM将所述虚拟故障信息发送至IAAS中的检测设备。
其中,VNFM(Virtual Net Function Manager,虚拟网元功能管理)是指在NFV(Network Function Virtualization,网络功能虚拟化)中虚拟机的管理软件,它可以用于完成应用网元的初始部署、生命周期管理、弹性伸缩管理、虚拟层的虚拟化和硬件层的关键告警以及KPI(Key Performance Indicator,关键绩效指标)的上报等,对调度和分配虚拟资源具有重要意义。
具体的,若虚拟路径探测系统确定第一虚拟端口有故障,那么虚拟路径探测系统生成虚拟故障信息,所述虚拟故障信息中可以携带有第一虚拟端口的ID,第一虚拟端口对应的虚拟机的ID,以及第一虚拟端口对应的虚拟机的服务器的ID,虚拟路径探测系统将所述虚拟故障信息上报至VNFM,进而由VNFM转发至IAAS中的检测设备。
406、IAAS中的检测设备根据虚拟故障信息进行通信路径切换。
具体的,IAAS中的检测设备根据虚拟故障信息中的服务器的ID,查询第一虚拟端口对应的虚拟机的服务器上的物理端口是否有故障,如果服务器上的物理端口没有故障,那么检测设备对第一虚拟端口对应的虚拟机的ID所指示的虚拟机进行虚拟机热迁移。
至此,本发明的实施例提供一种在PAAS中检测虚拟端口是否故障的方法,同时结合IAAS中的检测设备的检测结果,及时对有故障的虚拟端口进行通信路径切换,实现了IAAS与PAAS有效结合的云场景下的路径切换。
可以看出,服务器之间通过各个虚拟端口或者物理端口接收和发送探测消息,形成一个在IAAS和PAAS场景下全互联的路径探测系统,生成探测结果以探测各个端口之间的服务质量,并通过检测设备对各个端口上报的探测结果进行分析,检测出“亚健康”状态的端口,进而及时将“亚健康”状态的端口从LAG中移除,避免服务器使用该“亚健康”状态的端口进行数据收发而导致数据持续受损。
本发明的实施例提供一种通信故障的检测方法,服务器通过第一端口获取到来自各个服务器内N-1个端口的探测消息,并根据所述探测消息生成探测结果,当检测设备分别获取X个服务器内N个端口的探测结果后,根据所述探测结果确定第一端口是否存在故障。该方案中,检测设备分别获取X个服务器内N个端口的探测结果,所述探测结果为各个服务器根据N个端口分别接收到的检测消息生成的,由于所述探测结果包括每个端口根据接收到的其他端口发送的探测消息,确定的所述其它端口的错包数据和丢包数据,因此,检测设备根据所述每个端口确定的所述其它端口的错包数据和丢包数据,确定N个端口中的某一端口是否为故障端口,以检测是否出现“亚健康”状态的端口影响该端口的数据传输效率,从而提高了数据传输的可靠性,解决了现有技术中LAG无法检测到发生异常操作的故障端口的问题,避免了使用故障端口传输数据的风险。
实施例五
本发明的实施例提供一种检测设备,如图8所示,包括:
获取单元31,用于分别获取X个服务器内N个端口的探测结果,所述探测结果包括每个端口根据接收到的其他端口发送的探测消息,确定的所述其它端口的错包数据和丢包数据,N>2;
确定单元32,用于根据所述获取单元31中每个端口确定的所述其它端口的错包数据和丢包数据,确定第一端口的状态,所述第一端口的状态用于指示所述第一端口是否有故障,所述第一端口为所述N个端口中的一个;
处理单元33,用于根据所述确定单元32中所述第一端口的状态,生成所述第一端口的故障通知。
进一步地,如图9所示,所述确定单元32包括计算子单元321,其中,
所述计算子单元321,用于根据所述探测结果分别计算所述N个端口之间互相发送所述检测消息的丢包率;
所述确定单元32,具体用于根据所述计算子单元321中的N个端口之间互相发送所述检测消息的丢包率确定所述第一端口是否有故障。
进一步地,所述计算子单元321,具体用于将所述探测结果中的错包数据按照第一预置函数折算为相对丢包数据;以及根据所述相对丢包数据和所述探测结果中的丢包数据,按照第二预置函数分别计算所述N个端口之间互相发送所述检测消息的丢包率。
进一步地,所述确定单元32,具体用于在所述N个端口中,若有至少N/2个端口发送所述检测消息到所述第一端口的丢包率大于第一预设值,且所述至少N/2个端口之间发送所述检测消息的丢包率小于第二预设值,则确定所述第一端口有故障;否则,则确定所述第一端口没有故障。
进一步地,
所述处理单元33,具体用于生成所述第一端口的所述第一故障通知,以使得服务器获取所述第一故障通知后,将所述第一端口从LAG中移除;
其中,所述故障通知包含第一故障通知,所述第一故障通知用于指示所述第一端口有故障。
进一步地,
所述处理单元33,具体用于生成所述第一端口的所述第二故障通知,以使得所述服务器获取所述第二故障通知,并调用分布式资源调度程序DRS对所述服务器内运行的虚拟机进行虚拟机热迁移;
其中,所述故障通知包含第二故障通知,所述第二故障通知用于指示所述X个服务器内的N个端口均有故障。
进一步地,所述N个端口为所述X个服务器内的物理端口,或者,为所述X个服务器内运行的虚拟机中的虚拟端口。
本发明的实施例提供一种服务器,如图10所示,包括:
接收单元41,用于通过第一端口接收来自其他服务器内N-1个端口的探测消息,所述探测消息用于确定所述N-1个端口的错包数据和丢包数据,N>2;
处理单元42,用于根据所述接收单元41的探测消息生成探测结果,所述探测结果包括所述N-1个端口发送所述探测消息到所述第一端口的丢包数据和错包数据;
获取单元43,用于根据所述处理单元42的探测结果获取检测设备发送的故障通知,所述故障通知用于指示所述第一端口是否有故障。
进一步地,所述第一端口为所述服务器内的物理端口,或者,为所述服务器内运行的虚拟机中的虚拟端口,其中,如图11所示,所述服务器还包括移除单元44和迁移单元45,
所述移除单元44,用于若所述获取单元43中所述第一端口为所述服务器内的物理端口,且所述第一端口有故障,则根据所述获取单元43中的故障通知将所述第一端口从LAG中移除;
所述迁移单元45,用于若所述获取单元43中所述第一端口为所述服务器内运行的虚拟机中的虚拟端口,且所述第一端口有故障,则根据所述获取单元43中的故障通知对所述第一端口对应的虚拟机进行虚拟机热迁移。
进一步地,所述处理单元42,还用于若所述获取单元43中所述第一端口没有故障,则查询所述第一端口是否在所述LAG中;以及若所述第一端口不在所述LAG中,则将所述第一端口添加至所述LAG中,以便通过所述第一端口进行数据收发。
进一步地,所述处理单元42,具体用于根据在预置时间内接收到的所述接收单元41中的探测消息的个数,计算所述N-1个端口到所述第一端口的丢包数据;并根据在所述预置时间内接收到的所述接收单元41中的探测消息分析所述探测消息是否是错包,以统计所述N-1个端口到所述第一端口的错包数据;以及根据所述丢包数据和所述错包数据,生成所述探测结果。
进一步地,如图12所示,所述服务器还包括发送单元46,
所述获取单元43,还用于分别获取所述N-1个端口的介质访问控制MAC地址;
所述处理单元42,还用于根据所述获取单元43中的MAC地址构造所述探测消息;
所述发送单元46,用于根据所述获取单元43中N-1个端口的MAC地址,通过所述第一端口将所述处理单元42中的探测消息发送至所述N-1个端口。
在现有技术中,服务器只能通过LAG检测自身的各个端口是否可用,即判断端口能否传送数据,而不能检测到端口故障时传送数据发生的“亚健康”情况(比如在发送数据包时出现大量丢包,或者篡改数据包中的内容等),导致通过该“亚健康”端口进行传输的数据将持续受损,使数据传输的可靠性降低。而本发明提供的通信故障的检测方法恰恰可以检测出“亚健康”状态的端口,进而及时将“亚健康”状态的端口从LAG中移除,提高了数据传输的可靠性。
本发明的实施例提供一种通信故障的检测装置,服务器通过第一端口获取到来自各个服务器内N-1个端口的探测消息,并根据所述探测消息生成探测结果,当检测设备分别获取X个服务器内N个端口的探测结果后,根据所述探测结果确定第一端口是否存在故障。该方案中,检测设备分别获取X个服务器内N个端口的探测结果,所述探测结果为各个服务器根据N个端口分别接收到的检测消息生成的,由于所述探测结果包括每个端口根据接收到的其他端口发送的探测消息,确定的所述其它端口的错包数据和丢包数据,因此,检测设备根据所述每个端口确定的所述其它端口的错包数据和丢包数据,确定N个端口中的某一端口是否为故障端口,以检测是否出现“亚健康”状态的端口影响该端口的数据传输效率,从而提高了数据传输的可靠性,解决了现有技术中LAG无法检测到发生异常操作的故障端口的问题,避免了使用故障端口传输数据的风险。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (25)

1.一种通信故障的检测方法,其特征在于,包括:
检测设备分别获取X个服务器内N个端口的探测结果,所述探测结果包括每个端口根据接收到的其它端口发送的探测消息,确定的所述其它端口的错包数据和丢包数据,N>2,X>2;
所述检测设备根据所述每个端口确定的所述其它端口的错包数据和丢包数据,确定第一端口的状态,所述第一端口的状态用于指示所述第一端口是否有故障;
所述检测设备根据所述第一端口的状态,生成所述第一端口的故障通知。
2.根据权利要求1所述的方法,其特征在于,所述检测设备根据所述每个端口确定的所述其它端口的错包数据和丢包数据,确定第一端口的状态,包括:
所述检测设备根据所述探测结果分别计算所述N个端口之间互相发送检测消息的丢包率;
所述检测设备根据所述N个端口之间互相发送所述检测消息的丢包率确定所述第一端口是否有故障。
3.根据权利要求2所述的方法,其特征在于,所述检测设备根据所述探测结果分别计算所述N个端口之间互相发送所述检测消息的丢包率,包括:
所述检测设备将所述探测结果中的错包数据按照第一预置函数折算为相对丢包数据;
所述检测设备根据所述相对丢包数据和所述探测结果中的丢包数据,按照第二预置函数分别计算所述N个端口之间互相发送所述检测消息的丢包率。
4.根据权利要求2所述的方法,其特征在于,所述检测设备根据所述N个端口之间互相发送所述检测消息的丢包率确定所述第一端口是否有故障,包括:
在所述N个端口中,若有至少N/2个端口发送所述检测消息到所述第一端口的丢包率大于第一预设值,且所述至少N/2个端口之间发送所述检测消息的丢包率小于第二预设值,所述检测设备则确定所述第一端口有故障;否则,所述检测设备则确定所述第一端口没有故障。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述故障通知包含第一故障通知,所述第一故障通知用于指示所述第一端口有故障,
其中,生成所述第一端口的故障通知,包括:
所述检测设备生成所述第一端口的所述第一故障通知,以使得服务器获取所述第一故障通知后,将所述第一端口从链路聚合组LAG中移除。
6.根据权利要求5所述的方法,其特征在于,所述故障通知包含第二故障通知,所述第二故障通知用于指示所述X个服务器内的N个端口均有故障,
其中,生成所述第一端口的故障通知,包括:
所述检测设备生成所述第一端口的所述第二故障通知,以使得所述服务器获取所述第二故障通知,并调用分布式资源调度程序DRS对所述服务器内运行的虚拟机进行虚拟机热迁移。
7.根据权利要求1至4中任一项所述的方法,其特征在于,所述N个端口为所述X个服务器内的物理端口,或者,为所述X个服务器内运行的虚拟机中的虚拟端口。
8.一种通信故障的检测方法,其特征在于,包括:
服务器通过第一端口接收来自其他服务器内N-1个端口的探测消息,所述探测消息用于确定所述N-1个端口的错包数据和丢包数据,N>2;
所述服务器根据所述探测消息生成探测结果,所述探测结果包括所述N-1个端口发送所述探测消息到所述第一端口的丢包数据和错包数据;
所述服务器根据所述探测结果获取检测设备发送的故障通知,所述故障通知用于指示所述第一端口是否有故障。
9.根据权利要求8所述的方法,其特征在于,所述第一端口为所述服务器内的物理端口,或者,为所述服务器内运行的虚拟机中的虚拟端口,
其中,在服务器根据所述探测结果获取检测设备发送的故障通知之后,还包括:
若所述第一端口为所述服务器内的物理端口,且所述第一端口有故障,所述服务器则根据所述故障通知将所述第一端口从链路聚合组LAG中移除;
若所述第一端口为所述服务器内运行的虚拟机中的虚拟端口,且所述第一端口有故障,所述服务器则根据所述故障通知对所述第一端口对应的虚拟机进行虚拟机热迁移。
10.根据权利要求8所述的方法,其特征在于,在服务器根据所述探测结果获取检测设备发送的故障通知之后,还包括:
若所述第一端口没有故障,所述服务器则查询所述第一端口是否在链路聚合组LAG中;
若所述第一端口不在所述LAG中,所述服务器则将所述第一端口添加至所述LAG中,以便通过所述第一端口进行数据收发。
11.根据权利要求8所述的方法,其特征在于,服务器根据所述探测消息生成探测结果,包括:
所述服务器根据在预置时间内接收到的所述探测消息的个数,计算所述N-1个端口到所述第一端口的丢包数据;
所述服务器根据在所述预置时间内接收到的探测消息分析所述探测消息是否是错包,以统计所述N-1个端口到所述第一端口的错包数据;
所述服务器根据所述丢包数据和所述错包数据,生成所述探测结果。
12.根据权利要求8所述的方法,其特征在于,所述方法还包括:
所述服务器分别获取所述N-1个端口的介质访问控制MAC地址;
所述服务器根据所述MAC地址构造所述探测消息;
所述服务器根据所述N-1个端口的MAC地址,通过所述第一端口将所述探测消息发送至所述N-1个端口。
13.一种检测设备,其特征在于,包括:
获取单元,用于分别获取X个服务器内N个端口的探测结果,所述探测结果包括每个端口根据接收到的其它端口发送的探测消息,确定的所述其它端口的错包数据和丢包数据,N>2,X>2;
确定单元,用于根据所述获取单元中每个端口确定的所述其它端口的错包数据和丢包数据,确定第一端口的状态,所述第一端口的状态用于指示所述第一端口是否有故障,所述第一端口为所述N个端口中的一个;
处理单元,用于根据所述确定单元中所述第一端口的状态,生成所述第一端口的故障通知。
14.根据权利要求13所述的检测设备,其特征在于,所述确定单元包括计算子单元,其中,
所述计算子单元,用于根据所述探测结果分别计算所述N个端口之间互相发送检测消息的丢包率;
所述确定单元,具体用于根据所述计算子单元中的N个端口之间互相发送所述检测消息的丢包率确定所述第一端口是否有故障。
15.根据权利要求14所述的检测设备,其特征在于,
所述计算子单元,具体用于将所述探测结果中的错包数据按照第一预置函数折算为相对丢包数据;以及根据所述相对丢包数据和所述探测结果中的丢包数据,按照第二预置函数分别计算所述N个端口之间互相发送所述检测消息的丢包率。
16.根据权利要求14所述的检测设备,其特征在于,
所述确定单元,具体用于在所述N个端口中,若有至少N/2个端口发送所述检测消息到所述第一端口的丢包率大于第一预设值,且所述至少N/2个端口之间发送所述检测消息的丢包率小于第二预设值,则确定所述第一端口有故障;否则,则确定所述第一端口没有故障。
17.根据权利要求13至16中任一项所述的检测设备,其特征在于,所述故障通知包含第一故障通知,所述第一故障通知用于指示所述第一端口有故障;
所述处理单元,具体用于生成所述第一端口的所述第一故障通知,以使得服务器获取所述第一故障通知后,将所述第一端口从链路聚合组LAG中移除。
18.根据权利要求17所述的检测设备,其特征在于,所述故障通知包含第二故障通知,所述第二故障通知用于指示所述X个服务器内的N个端口均有故障;
所述处理单元,具体用于生成所述第一端口的所述第二故障通知,以使得所述服务器获取所述第二故障通知,并调用分布式资源调度程序DRS对所述服务器内运行的虚拟机进行虚拟机热迁移。
19.根据权利要求13至16中任一项所述的检测设备,其特征在于,所述N个端口为所述X个服务器内的物理端口,或者,为所述X个服务器内运行的虚拟机中的虚拟端口。
20.一种服务器,其特征在于,包括:
接收单元,用于通过第一端口接收来自其他服务器内N-1个端口的探测消息,所述探测消息用于确定所述N-1个端口的错包数据和丢包数据,N>2;
处理单元,用于根据所述接收单元的探测消息生成探测结果,所述探测结果包括所述N-1个端口发送所述探测消息到所述第一端口的丢包数据和错包数据;
获取单元,用于根据所述处理单元的探测结果获取检测设备发送的故障通知,所述故障通知用于指示所述第一端口是否有故障。
21.根据权利要求20所述的服务器,其特征在于,所述第一端口为所述服务器内的物理端口,或者,为所述服务器内运行的虚拟机中的虚拟端口,其中,所述服务器还包括移除单元和迁移单元,
所述移除单元,用于若所述获取单元中所述第一端口为所述服务器内的物理端口,且所述第一端口有故障,则根据所述获取单元中的故障通知将所述第一端口从链路聚合组LAG中移除;
所述迁移单元,用于若所述获取单元中所述第一端口为所述服务器内运行的虚拟机中的虚拟端口,且所述第一端口有故障,则根据所述获取单元中的故障通知对所述第一端口对应的虚拟机进行虚拟机热迁移。
22.根据权利要求20所述的服务器,其特征在于,
所述处理单元,还用于若所述获取单元中所述第一端口没有故障,则查询所述第一端口是否在链路聚合组LAG中;以及若所述第一端口不在所述LAG中,则将所述第一端口添加至所述LAG中,以便通过所述第一端口进行数据收发。
23.根据权利要求20所述的服务器,其特征在于,
所述处理单元,具体用于根据在预置时间内接收到的所述接收单元中的探测消息的个数,计算所述N-1个端口到所述第一端口的丢包数据;并根据在所述预置时间内接收到的所述接收单元中的探测消息分析所述探测消息是否是错包,以统计所述N-1个端口到所述第一端口的错包数据;以及根据所述丢包数据和所述错包数据,生成所述探测结果。
24.根据权利要求20所述的服务器,其特征在于,所述服务器还包括发送单元,
所述获取单元,还用于分别获取所述N-1个端口的介质访问控制MAC地址;
所述处理单元,还用于根据所述获取单元中的MAC地址构造所述探测消息;
所述发送单元,用于根据所述获取单元中N-1个端口的MAC地址,通过所述第一端口将所述处理单元中的探测消息发送至所述N-1个端口。
25.一种通信故障的检测系统,其特征在于,所述检测系统包括如权利要求13至19中任一项所述的检测设备,以及与所述检测设备相连接的如权利要求20至24中任一项所述的服务器。
CN201410425003.XA 2014-08-26 2014-08-26 一种通信故障的检测方法、装置及系统 Active CN104219107B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410425003.XA CN104219107B (zh) 2014-08-26 2014-08-26 一种通信故障的检测方法、装置及系统
PCT/CN2015/084002 WO2016029749A1 (zh) 2014-08-26 2015-07-14 一种通信故障的检测方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410425003.XA CN104219107B (zh) 2014-08-26 2014-08-26 一种通信故障的检测方法、装置及系统

Publications (2)

Publication Number Publication Date
CN104219107A CN104219107A (zh) 2014-12-17
CN104219107B true CN104219107B (zh) 2018-08-14

Family

ID=52100263

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410425003.XA Active CN104219107B (zh) 2014-08-26 2014-08-26 一种通信故障的检测方法、装置及系统

Country Status (2)

Country Link
CN (1) CN104219107B (zh)
WO (1) WO2016029749A1 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104219107B (zh) * 2014-08-26 2018-08-14 华为技术有限公司 一种通信故障的检测方法、装置及系统
CN104869023B (zh) * 2015-05-29 2019-02-26 华为技术有限公司 一种时间校正方法、装置及系统
CN106330650B (zh) * 2015-06-25 2019-12-03 中兴通讯股份有限公司 一种ip迁移方法及装置、虚拟化网络系统
WO2017031698A1 (zh) * 2015-08-25 2017-03-02 华为技术有限公司 一种获取vnf信息的方法、装置及系统
CN106533964A (zh) * 2015-09-09 2017-03-22 中兴通讯股份有限公司 一种管理链路聚合成员端口丢包的方法和装置
CN105656715B (zh) * 2015-12-30 2019-06-18 中国银联股份有限公司 用于监测云计算环境下网络设备的状态的方法和装置
CN106685695B (zh) * 2016-11-28 2020-02-14 上海华为技术有限公司 一种故障检测方法及其设备
CN108337102B (zh) * 2017-01-19 2020-07-24 华为技术有限公司 虚拟网络部署、生成参数和文件的方法及装置
CN106791823B (zh) * 2017-02-07 2018-09-28 浙江大华技术股份有限公司 一种设备零码流故障处理方法、装置及电子设备
CN108881011B (zh) * 2017-05-08 2022-03-29 中兴通讯股份有限公司 应用于跨设备的lacp切换方法和装置
CN107690139A (zh) * 2017-08-28 2018-02-13 苏州思创源博电子科技有限公司 一种用于光伏发电的通信方法
CN107566222A (zh) * 2017-10-18 2018-01-09 中国联合网络通信集团有限公司 一种计算丢包率的方法及装置
CN107888457B (zh) * 2017-12-08 2020-08-14 新华三技术有限公司 端口丢包检测方法、装置及通信设备
CN108390780B (zh) * 2018-02-11 2021-04-20 北京百度网讯科技有限公司 用于处理信息的方法和装置
CN108683542A (zh) * 2018-05-22 2018-10-19 郑州云海信息技术有限公司 一种分布式存储系统的故障自诊断方法、系统及装置
CN109039887B (zh) * 2018-09-10 2021-06-29 迈普通信技术股份有限公司 一种堆叠系统故障处理方法以及设备
CN110213128B (zh) * 2019-05-28 2020-06-05 掌阅科技股份有限公司 服务端口检测方法、电子设备及计算机存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101340456A (zh) * 2008-08-15 2009-01-07 杭州华三通信技术有限公司 一种分布式链路聚合故障收敛方法和一种堆叠设备
CN101610212A (zh) * 2009-07-27 2009-12-23 迈普通信技术股份有限公司 实现数据平面可靠通信的方法和板卡
CN102164056A (zh) * 2011-03-17 2011-08-24 杭州华三通信技术有限公司 堆叠链路聚合故障检测方法和堆叠设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101478492B (zh) * 2009-02-10 2011-04-13 杭州华三通信技术有限公司 一种堆叠成员端口检测的方法和装置
WO2012039677A1 (en) * 2010-09-20 2012-03-29 Empire Technology Development Llc Dynamic mobile application quality-of-service monitor
CN102014022B (zh) * 2010-12-02 2012-06-27 福建星网锐捷网络有限公司 设备端口故障处理方法、装置及网络设备
CN104219107B (zh) * 2014-08-26 2018-08-14 华为技术有限公司 一种通信故障的检测方法、装置及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101340456A (zh) * 2008-08-15 2009-01-07 杭州华三通信技术有限公司 一种分布式链路聚合故障收敛方法和一种堆叠设备
CN101610212A (zh) * 2009-07-27 2009-12-23 迈普通信技术股份有限公司 实现数据平面可靠通信的方法和板卡
CN102164056A (zh) * 2011-03-17 2011-08-24 杭州华三通信技术有限公司 堆叠链路聚合故障检测方法和堆叠设备

Also Published As

Publication number Publication date
WO2016029749A1 (zh) 2016-03-03
CN104219107A (zh) 2014-12-17

Similar Documents

Publication Publication Date Title
CN104219107B (zh) 一种通信故障的检测方法、装置及系统
US11575559B1 (en) Monitoring and detecting causes of failures of network paths
Fan et al. Availability-aware mapping of service function chains
CN106998302B (zh) 一种业务流量的分配方法及装置
US8661295B1 (en) Monitoring and detecting causes of failures of network paths
US8111618B2 (en) End-to-end service quality using source-routed probes
CN114342331A (zh) 针对不同的服务类别计算和使用不同的路径质量度量
US9009305B1 (en) Network host inference system
EP3154224B1 (en) Systems and methods for maintaining network service levels
US20130182561A1 (en) Method Of Simple And Efficient Failure Resilient Load Balancing
US20170331704A1 (en) Determining impact of network failures
US11165677B2 (en) Packet network performance monitoring
EP2278756B1 (en) Methods and devices for evaluating interconnection efficiency of parallel computer networks based upon static routing schemes
CN105610710A (zh) 交换结构系统上部署的标准协议验证机制的方法和装置
CN104426694B (zh) 一种调整虚拟机资源的方法和装置
EP2713270A1 (en) Resource scheduling method and device
CN103731376B (zh) 堆叠设备上链路汇聚根端口选择的方法及系统
CN108632099A (zh) 一种链路聚合的故障检测方法及装置
CN108282351A (zh) 网络切片实例的性能管理方法及装置
CN104283780A (zh) 建立数据传输路径的方法和装置
CN108600100A (zh) 成员端口选取方法和装置
CN107733809A (zh) 一种vsm系统报文转发端口设置方法及装置
US11539728B1 (en) Detecting connectivity disruptions by observing traffic flow patterns
CN108494625A (zh) 一种网络性能分析系统
CN102792636A (zh) 提供恢复生存性的方法、设备和通信网络

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant