降低集群震荡的方法及装置与流程

文档序号:16433278发布日期:2018-12-28 20:18阅读:244来源:国知局
降低集群震荡的方法及装置与流程

本发明实施例涉及分布式存储技术领域,具体而言,涉及一种降低集群震荡的方法及装置。

背景技术

分布式集群是一种高性能、高可靠性、高可扩展性的分布式存储系统。分布式集群主要的服务部分分为监控节点和存储节点,监控节点和存储节点依靠两者之间的心跳进行通信,在面对异常情况,如网络丢包、网络时延及硬盘时延时,存储节点会频繁地被监控节点标记异常,从而反复停止和启动,导致分布式集群内部反复更新数据,这样就会引起分布式集群的震荡,导致分布式集群无法对外提供服务、客户业务中断。



技术实现要素:

本发明实施例的目的在于提供一种降低集群震荡的方法及装置,用以提高分布式集群的稳定性。

为了实现上述目的,本发明实施例采用的技术方案如下:

第一方面,本发明实施例提供了一种降低集群震荡的方法,应用于分布式集群中的监控节点,所述监控节点与所述分布式集群中至少三个存储节点均通信,所述至少三个存储节点包括第一存储节点、第二存储节点和第三存储节点,所述方法包括:当所述第二存储节点上报所述第一存储节点异常时,所述监控节点获取第一时间,其中,所述第一时间为所述第一存储节点启动后首次被上报异常的时间;当所述第三存储节点上报所述第一存储节点异常时,所述监控节点获取第二时间;所述监控节点依据所述第一时间和所述第二时间之间的时间间隔,计算所述第一存储节点异常的异常概率值;当所述异常概率值大于或等于所述监控节点产生的随机概率值时,标记所述第一存储节点异常,并发送第一存储节点异常信息至所述第一存储节点。

本发明实施例还提供了一种降低集群震荡的装置,应用于分布式集群中的监控节点,所述监控节点与所述分布式集群中的至少三个存储节点均通信,所述至少三个存储节点包括第一存储节点、第二存储节点和第三存储节点,所述装置包括第一时间获取模块、第二时间获取模块、异常概率值计算模块和异常标记模块。其中,第一时间获取模块用于当所述第二存储节点上报所述第一存储节点异常时,所述监控节点获取第一时间,其中,所述第一时间为所述第一存储节点启动后首次被上报异常的时间;第二时间获取模块用于当所述第三存储节点上报所述第一存储节点异常时,所述监控节点获取第二时间;异常概率值计算模块用于所述监控节点依据所述第一时间和所述第二时间之间的时间间隔,计算所述第一存储节点异常的异常概率值;异常标记模块用于当所述异常概率值大于或等于所述监控节点产生的随机概率值时,标记所述第一存储节点异常,并发送第一存储节点异常信息至所述第一存储节点。

相对现有技术,本发明实施例提供的一种降低集群震荡的方法及装置,当第一存储节点被分布式集群中的其它存储节点上报异常时,监控节点依据第一存储节点启动后首次被报异常与本次被报异常的时间间隔来计算第一存储节点的异常概率值,再根据该异常概率值与监控节点产生的随机概率值之间的大小关系确定是否标记第一存储节点异常,只有当异常概率值大于或等于随机概率值时才标记第一存储节点异常,避免了短时间内第一存储节点被频繁标识异常的情形发生,从而降低了分布式集群发生震荡的概率,提高了分布式集群的稳定性。

为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出了本发明实施例提供的分布式集群的方框示意图。

图2示出了本发明实施例提供的分布式集群中监控节点和存储节点的连接关系图。

图3示出了本发明实施例提供的降低集群震荡的方法的应用示例图。

图4示出了本发明实施例提供的降低集群震荡的方法流程图。

图5示出了本发明实施例提供的概率函数示意图。

图6示出了本发明实施例提供的第一应用示例图。

图7示出了本发明实施例提供的第二应用示例图。

图8示出了本发明实施例提供的第三应用示例图。

图9示出了本发明实施例提供的主机的方框示意图。

图10示出了本发明实施例提供的降低集群震荡的装置的方框示意图。

图标:10-主机;11-监控节点;12-第一存储节点;13-第二存储节点;14-第三存储节点;101-处理器;102-存储器;103-总线;104-通信接口;200-降低集群震荡的装置;201-第一时间获取模块;202-第二时间获取模块;203-异常概率值计算模块;204-异常标记模块;205-执行模块。

具体实施方式

下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

请参照图1,图1示出了本发明实施例提供的分布式集群的方框示意图。分布式集群与客户端通信连接,用户通过客户端对分布式集群进行访问。分布式集群包括多个主机10,例如,主机1、主机2、主机3等等,多个主机10之间直接或间接的通信连接。每个主机10上均配置有一个监控节点11和至少一个存储节点,每个主机10上存储节点的数量由用户根据自身需求及该主机10上的磁盘数量灵活设置。

请参照图2,分布式集群中的每个监控节点11与该分布式集群中所有的存储节点(例如,存储节点1、存储节点2、存储节点3等等)均通信,每个主机10上的监控节点11均负责监控分布式集群中所有的存储节点的工作状态,存储节点用于存储用户访问的数据。分布式集群中所有的存储节点可以包括第一存储节点12、第二存储节点13、第三存储节点14等,也就是说,分布式集群中每个监控节点11与第一存储节点12、第二存储节点13、第三存储节点14等均通信,监控节点11负责监控第一存储节点12、第二存储节点13、第三存储节点14等的工作状态,第一存储节点12、第二存储节点13、第三存储节点14等均用于存储数据。

在本发明实施例中,存储节点把检测到的可能存在问题的存储节点上报给监控节点11,由监控节点11决定是否标记该可能存在问题的存储节点异常,具体来说,监控节点11依据该可能存在问题的存储节点两次被上报异常的时间间隔来确定是否将该可能存在问题的存储节点标记为异常,具体的异常标记方法请参照第一实施例。

上报异常的存储节点和可能存在问题的存储节点可以配置于同一主机10上,也可以配置于至少两个主机10上。也就是说,第一存储节点12被第二存储节点13和第三存储节点14上报异常,第一存储节点12、第二存储节点13和第三存储节点14可以均配置于主机1上,也可以配置于主机1、主机2和主机3中的至少两个上。例如,请参照图3,主机1上配置有监控节点11和第一存储节点12,主机2上配置有第二存储节点13,主机3上配置有第三存储节点14,如果第一存储节点12被第二存储节点13和第三存储节点14上报异常,其中,第一存储节点12被第二存储节点13首次上报异常,监控节点11会依据第二存储节点13和第三存储节点14上报异常的时间间隔,来确定是否将第一存储节点12标记为异常。

需要说明的是,针对不同的具体的分布式集群,存储节点及监控节点的名称可以是不同的,例如其中一个实施例,分布式集群可以为ceph集群(一个开源的分布式存储系统),存储节点可以为对象存储设备(object-basedstoragedevice,osd)节点,监控节点可以为(monitor,mon)。对于另一个实施例,分布式存储系统可以为fusionstorage系统(分布式存储系统),存储节点可以为对象存储设备(object-basedstoragedevice,osd)节点,管理节点可以为元数据节点,在第一实施例中,以一个具体的分布式集群ceph集群为例进行阐述。

第一实施例

请参照图4,图4示出了本发明实施例提供的降低集群震荡的方法流程图。降低集群震荡的方法包括以下步骤:

步骤s101,当第二存储节点上报第一存储节点异常时,监控节点获取第一时间,其中,第一时间为第一存储节点启动后首次被上报异常的时间。

在本发明实施例中,第一时间可以是第一存储节点12启动后首次被上报异常时的时间,第二存储节点13上报第一存储节点12异常时,监控节点11获取到的配置有该监控节点11的主机10的当前时间,第一时间可以用t1表示。

步骤s102,当第三存储节点上报第一存储节点异常时,监控节点获取第二时间。

在本发明实施例中,第二时间可以是第三存储节点14上报第一存储节点12异常时,监控节点11获取到的配置有该监控节点11的主机10的当前时间,第二时间可以用t2表示。

需要说明的是,第二存储节点13和第三存储节点14需要在检测到第一存储节点12异常时就上报监控节点11,而不是上报一次异常之后就不再上报,这样可能导致真实的异常节点无法被识别。也就是说,一旦第二存储节点13或者第三存储节点14检测到第一存储节点12异常,就上报给监控节点11。

步骤s103,监控节点依据第一时间和第二时间之间的时间间隔,计算第一存储节点异常的异常概率值。

在本发明实施例中,当第一存储节点12被其它存储节点上报异常时,监控节点11依据第一存储节点12本次被上报异常的时间与首次被上报异常的时间之间的时间间隔来计算第一存储节点12的异常概率值,也就是说,当第一存储节点12被第二存储节点13首次上报异常后,又被第三存储节点14上报异常时,监控节点11依据第二存储节点13上报异常的第一时间t1和第三存储节点14上报异常的第二时间t2之间的时间间隔δt,计算第一存储节点12异常的异常概率值。

在本发明实施例中,由于网络丢包、网络时延、硬盘时延等导致的存储节点被报异常通常是概率性的,因此可以用概率函数来计算第一存储节点12异常的异常概率值。图5示出了概率函数的示意图,横坐标t表示第一存储节点12首次被报异常与本次被报异常之间的时间间隔,纵坐标p表示监控节点11将第一存储节点12标记为异常的异常概率值,w表示预设时间也就是异常概率值为1的时间间隔值,可以由用户自行设置,概率函数可以用p(t)=et-w表示。

因此,可以依据第一时间t1和第二时间t2之间的时间间隔δt,利用概率函数p(t)=et-w,计算出第一存储节点12的异常概率值,其中,p为第一存储节点12的异常概率值,w为预设时间,t为第一时间t1和第二时间t2之间的时间间隔δt。

需要说明的是,实际应用中某一个存储节点可能会被多个存储节点多次上报异常,在这种情况下,监控节点11需要记录每一个存储节点上报其它节点异常时的时间,并在收到每一个存储节点上报其它节点异常时计算异常概率值。在监控节点11计算某一个被上报异常的存储节点的异常概率值时,所使用的时间间隔为其记录的每个上报该存储节点异常的本次上报时间减去首次上报时间,例如,请参照图6,存储节点2、存储节点3和存储节点4依次向监控节点11上报存储节点1异常,则监控节点11需要记录存储节点2、存储节点3和存储节点4上报存储节点1异常的时间,分别为t1、t2和t3,当存储节点3上报存储节点1异常时,监控节点11计算存储节点1异常的异常概率值时所使用的时间间隔为本次上报时间t2与首次上报时间t1之差,当存储节点4上报存储节点1异常时,监控节点11计算存储节点1异常的异常概率值时所使用的时间间隔为本次上报时间t3与首次上报时间t1之差。

另外,若某个存储节点重复上报另一个存储节点异常,监控节点11无需更新该存储节点上报异常的时间,例如,若存储节点2重复上报存储节点1异常,则监控节点11无需更新存储节点2上报异常的时间t1。

若某个存储节点错误上报另一个存储节点异常,则会告知监控节点11自己上报错误,此时监控节点11会删除该存储节点上报异常的时间,直到该存储节点重新上报异常时,监控节点11重新记录该存储节点上报异常的时间。例如,请参照图7,若存储节点2错误上报存储节点1异常,则监控节点11会删除存储节点2上报异常的时间t1,此时当存储节点4上报存储节点1异常时,监控节点11计算存储节点1异常的异常概率值时所使用的时间间隔为本次上报时间t3与首次上报时间t2之差。请参照图8,当存储节点2重新上报存储节点1常时,监控节点11重新记录存储节点2上报异常的时间t4,此时当存储节点2重新上报存储节点1异常时,监控节点11计算存储节点1异常的异常概率值时所使用的时间间隔为本次上报时间t4与首次上报时间t2之差。

步骤s104,当异常概率值大于或等于监控节点产生的随机概率值时,标记第一存储节点异常,并发送第一存储节点异常信息至第一存储节点。

在本发明实施例中,步骤s103中计算得到的第一存储节点12的异常概率值越大,第一存储节点12被监控节点11标记为异常的概率也会越大,具体第一存储节点12是否会被标记为异常,可以根据异常概率值与监控节点11随机生成的一个随机概率值进行比较来确定,该随机概率值的取值在[0,1]之间,由于网络丢包、网络时延、硬盘时延等导致的存储节点被报异常通常是概率性的,而利用概率函数计算的异常概率值会随着时间间隔的增大而增大,故采用随机概率值来判断是否将第一存储节点12标记为异常,可以有效避免第一存储节点12在本次被报异常与首次被报异常之间的时间间隔比较大时被标记为异常,从而减少第一存储节点12被标记异常的次数。具体来说,当第一存储节点12的异常概率值小于监控节点11产生的随机概率值时,监控节点11不会对第一存储节点12进行标记;当第一存储节点12的异常概率值大于或等于监控节点11产生的随机概率值时,监控节点11标记第一存储节点12异常,并发送第一存储节点异常信息至第一存储节点12。

在本发明实施例中,通过利用概率函数计算出第一存储节点12的异常概率值,并通过异常概率值与监控节点11随机生成的随机概率值的大小来确定是否将第一存储节点12标记异常,这样可以有效避免第一存储节点12在短时间内被频繁标记为异常,降低了第一存储节点12的异常概率。另外,第一存储节点12是被其它存储节点上报异常的,如果第一存储节点12自身出现异常但又无法判断是否是自身异常时,第一存储节点12会认为其它存储节点出现异常,并会向监控节点11上报其它存储节点异常,因此,降低第一存储节点12异常概率的同时,也能够降低其它存储节点异常的概率。

步骤s105,当第一存储节点在预设时间范围内接收到的第一存储节点异常信息的数量超过预设阈值时,第一存储节点重启或停止工作。

在本发明实施例中,监控节点11发送第一存储节点异常信息至第一存储节点12后,第一存储节点12会统计在预设时间范围内接收到的第一存储节点异常信息的数量,当第一存储节点12在预设时间范围内接收到的第一存储节点异常信息的数量超过预设阈值时,第一存储节点12重启或停止工作。预设时间范围可以是60s、120s或者300s,预设阈值可以是5、8或者10,也就是说,当第一存储节点12在60s内接收到的第一存储节点异常信息的数量超过5、在120s内接收到的第一存储节点异常信息的数量超过8、或者在300s内接收到的第一存储节点异常信息的数量超过10时,第一存储节点12重启或停止工作。

现有技术中,存储节点接收到监控节点11发送的存储节点异常信息时,会按照以下规则进行处理:如果600s内接收到的存储节点异常信息超过5个,则该存储节点重启一次;如果1800s内该存储节点重启超过3次,则该存储节点停止工作。但是,存储节点震荡可能是短时间内快速震荡,例如100s内接收到6个存储节点异常信息,也可能是长时间反复震荡,例如1000s接收到5个存储节点异常信息,现有技术并不能很好避免这两种情形下的存储节点震荡。本发明实施例通过以上方法,对第一存储节点12的震荡频率进行细分,细化第一存储节点12被标记为异常时的处理方式,进一步降低了分布式集群的震荡概率。

与现有技术相比,本发明实施例具有以下有益效果:

首先,当第一存储节点12被分布式集群中的其它存储节点上报异常时,监控节点11依据第一存储节点12被报异常的本次上报时间与首次上报时间之间的时间间隔来计算第一存储节点12的异常概率值,再根据该异常概率值与监控节点11产生的随机概率值之间的大小关系确定是否标记第一存储节点12异常,只有当异常概率值大于或等于随机概率值时才标记第一存储节点12异常,避免了短时间内第一存储节点12被频繁标识异常的情形发生,从而降低了分布式集群发生震荡的概率,提高了分布式集群的稳定性。

其次,监控节点11发送第一存储节点异常信息至第一存储节点12后,第一存储节点12会统计在预设时间范围内接收到的第一存储节点异常信息的数量,细化第一存储节点12被标记为异常时的处理方式,进一步降低了分布式集群的震荡概率。

第二实施例

请参照图9,图9示出了本发明实施例提供的主机10的方框示意图。该主机10包括处理器101、存储器102、总线103和通信接口104,所述处理器101、存储器102和通信接口104通过总线103连接;处理器101用于执行存储器102中存储的可执行模块,例如计算机程序。

其中,存储器102可能包含高速随机存取存储器(ram:randomaccessmemory),也可能还包括非不稳定的存储器(non-volatilememory),例如至少一个磁盘存储器。通过至少一个通信接口204(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接。

总线103可以是isa总线、pci总线或eisa总线等。图9中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。

其中,存储器102用于存储程序,如图10所示的降低集群震荡的装置200。该降低集群震荡的装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器102中或固化在所述主机10的操作系统中的软件功能模块。所述处理器101在接收到执行指令后,执行所述程序以实现本发明第一实施例揭示的降低集群震荡的方法。

处理器101可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器101中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器101可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器101执行时实现本发明第一实施例揭示的降低集群震荡的方法。

第三实施例

请参照图10,图10示出了本发明实施例提供的降低集群震荡的装置200的模块图。所述降低集群震荡的装置200存储于本发明第二实施例提供的主机10的存储器102中,并由主机10的处理器101执行。所述降低集群震荡的装置200包括第一时间获取模块201、第二时间获取模块202、异常概率值计算模块203、异常标记模块204及执行模块205。

第一时间获取模块201,用于当第二存储节点上报第一存储节点异常时,监控节点获取第一时间,其中,第一时间为第一存储节点启动后首次被上报异常的时间。

第二时间获取模块202,用于当第三存储节点上报第一存储节点异常时,监控节点获取第二时间

异常概率值计算模块203,用于监控节点依据第一时间和第二时间之间的时间间隔,计算第一存储节点异常的异常概率值。

在本发明实施例中,异常概率值计算模块203,具体用于监控节点11依据第一时间和第二时间之间的时间间隔,利用概率函数p(t)=et-w,计算出第一存储节点12的异常概率值,其中,p为所述第一存储节点12的异常概率值,w为预设时间,t为所述第一时间和第二时间之间的时间间隔。

异常标记模块204,用于当异常概率值大于或等于监控节点产生的随机概率值时,标记第一存储节点异常,并发送第一存储节点异常信息至第一存储节点。

执行模块205,用于当第一存储节点在预设时间范围内接收到的第一存储节点异常信息的数量超过预设阈值时,第一存储节点重启或停止工作。

综上所述,本发明实施例提供的一种降低集群震荡的方法及装置,应用于分布式集群中的监控节点,所述监控节点与至少三个存储节点均通信,所述至少三个存储节点包括第一存储节点、第二存储节点和第三存储节点,所述方法包括:当第二存储节点上报第一存储节点异常时,监控节点获取第一时间,其中,第一时间为第一存储节点启动后首次被上报异常的时间;当第三存储节点上报第一存储节点异常时,监控节点获取第二时间;监控节点依据第一时间和第二时间之间的时间间隔,计算第一存储节点异常的异常概率值;当异常概率值大于或等于监控节点产生的随机概率值时,标记第一存储节点异常,并发送第一存储节点异常信息至第一存储节点。与现有技术相比,避免了短时间内第一存储节点被频繁标识异常的情形发生,从而降低了分布式集群发生震荡的概率,提高了分布式集群的稳定性。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1