CN114500327B - 一种服务器集群的检测方法、检测装置及计算设备 - Google Patents

一种服务器集群的检测方法、检测装置及计算设备 Download PDF

Info

Publication number
CN114500327B
CN114500327B CN202210381701.9A CN202210381701A CN114500327B CN 114500327 B CN114500327 B CN 114500327B CN 202210381701 A CN202210381701 A CN 202210381701A CN 114500327 B CN114500327 B CN 114500327B
Authority
CN
China
Prior art keywords
server cluster
server
information
cluster
phenomenon
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
CN202210381701.9A
Other languages
English (en)
Other versions
CN114500327A (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.)
Uniontech Software Technology Co Ltd
Original Assignee
Uniontech Software Technology 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 Uniontech Software Technology Co Ltd filed Critical Uniontech Software Technology Co Ltd
Priority to CN202210730202.6A priority Critical patent/CN115190046B/zh
Priority to CN202210381701.9A priority patent/CN114500327B/zh
Publication of CN114500327A publication Critical patent/CN114500327A/zh
Application granted granted Critical
Publication of CN114500327B publication Critical patent/CN114500327B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种服务器集群的检测方法、检测装置及计算设备,方法包括:获取服务器集群的设备信息,根据设备信息确定服务器集群是否满足脑裂现象模拟的基础条件;如果满足,则确定服务器集群的通信方式,根据通信方式对服务器集群进行相应的脑裂现象模拟,以模拟服务器集群中出现无法与其他服务器节点进行通信的故障服务器节点的现象;监测服务器集群状态并获取本次服务器集群状态信息,将本次服务器集群状态信息与上次服务器集群状态信息进行对比;根据对比信息确定服务器集群是否发生脑裂现象以及仲裁设备是否执行仲裁操作,以确定服务器集群是否能够避免脑裂问题。根据本发明的技术方案,可以检测出服务器集群是否存在脑裂问题的隐患。

Description

一种服务器集群的检测方法、检测装置及计算设备
技术领域
本发明涉及服务器集群技术领域,尤其涉及一种服务器集群的检测方法、检测装置及计算设备。
背景技术
高可用服务器集群(High Availability Cluster,简称HA Cluster),是指以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外不间断提供的服务,把因软件、硬件、人为造成的故障对业务的影响降低到最小程度。
脑裂(split-brain),是指在两台机器构成的HA Cluster系统中,在某一段时间内无法检测到对方的心跳,各自取得资源及服务的所有权,导致两台机器同时处于活跃状态。
在双服务器节点服务器集群的应用中,大多是主备服务器的模式,这类服务器集群通常要求服务器集群两个服务器节点中在同一时刻只有一个服务器节点在运行业务资源或对外提供服务。
在实际生产环境中,无法对环境做到100%的控制,在一些特殊情况下,当运行环境出现网线老化、网口受损、路由故障等问题而导致服务器集群服务器节点间的通信链路出现故障时,就可能会导致服务器集群出现无法检测到故障节点心跳的脑裂现象,此时如果服务器集群的脑裂处理机制没有配置好,就会导致服务器集群的资源或服务同时在两个服务器节点上运行(两个服务器节点同时访问同一共享资源)的脑裂问题,对业务数据的完整性造成影响。
为此,需要一种服务器集群的检测方法,以解决上述方案中存在的问题。
发明内容
为此,本发明提供一种服务器集群的检测方法及检测装置,以解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供一种服务器集群的检测方法,在计算设备中执行,所述计算设备与服务器集群通信相连,所述服务器集群包括多个服务器节点、与多个服务器节点通信相连的仲裁设备,所述方法包括步骤:获取服务器集群的设备信息,根据所述设备信息确定所述服务器集群是否满足脑裂现象模拟的基础条件;如果满足脑裂现象模拟的基础条件,则确定服务器集群的通信方式,根据所述通信方式对所述服务器集群进行相应的脑裂现象模拟,以模拟服务器集群中出现无法与其他服务器节点进行通信的故障服务器节点的现象;监测所述服务器集群状态并获取本次服务器集群状态信息,将本次服务器集群状态信息与上次服务器集群状态信息进行对比得到对比信息;根据所述对比信息确定所述服务器集群是否发生脑裂现象以及所述仲裁设备是否执行仲裁操作,以确定所述服务器集群是否能够避免脑裂问题。
可选地,在根据本发明的服务器集群的检测方法中,所述仲裁操作包括切断故障服务器节点的电源的操作。
可选地,在根据本发明的服务器集群的检测方法中,所述计算设备与客户端通信连接,所述方法还包括步骤:如果确定所述服务器集群发生脑裂现象且仲裁设备执行仲裁操作,则将所述对比信息发送至客户端,以便在所述客户端展示所述对比信息。
可选地,在根据本发明的服务器集群的检测方法中,还包括步骤:根据所述对比信息确定所述服务器集群状态是否正常,并生成相应的状态分析结果;将所述状态分析结果发送至客户端,以便在客户端展示所述状态分析结果。
可选地,在根据本发明的服务器集群的检测方法中,确定所述服务器集群状态是否正常包括以下一种或多种:确定服务器集群中的仲裁设备是否成功执行预定操作、确定每个服务器节点的状态是否正常、确定集群资源状态是否正常。
可选地,在根据本发明的服务器集群的检测方法中,所述服务器集群状态信息包括服务器集群中的仲裁设备状态信息和历史操作、每个服务器节点的状态信息、集群资源状态信息中的一种或多种。
可选地,在根据本发明的服务器集群的检测方法中,所述设备信息包括仲裁设备信息、每个服务器节点的信息,根据设备信息确定服务器集群是否满足脑裂现象模拟的基础条件包括:根据所述设备信息确定所述仲裁设备是否能监控到所述服务器集群中的每个服务器节点;如果是,则确定所述服务器集群是否满足投票机制的票数条件;如果满足,则确定所述服务器集群满足脑裂现象模拟的基础条件。
可选地,在根据本发明的服务器集群的检测方法中,所述票数条件为:Q>2n+1,且n>0;其中,Q 为总票数,n为所述服务器集群中的故障服务器节点获得的票数。
可选地,在根据本发明的服务器集群的检测方法中,所述通信方式包括通信协议和通信传输方式,确定服务器集群的通信方式的步骤包括:根据服务器集群使用的软件包类型来确定服务器集群使用的通信工具,并从所述通信工具的配置文件中获取所述服务器集群的通信协议和通信传输方式。
可选地,在根据本发明的服务器集群的检测方法中,所述通信协议包括UDP协议、Paxos协议、Totem协议中的一种或多种;所述通信传输方式包括单播、多播、广播中的一种或多种。
可选地,在根据本发明的服务器集群的检测方法中,获取本次服务器集群状态信息的步骤包括:定时获取本次服务器集群状态信息。
可选地,在根据本发明的服务器集群的检测方法中,所述仲裁设备为stonith设备。
根据本发明的一个方面,提供一种检测装置,驻留在计算设备中,计算设备与服务器集群通信相连,服务器集群包括多个服务器节点、分别与所述多个服务器节点通信相连的仲裁设备,所述装置包括:脑裂模拟模块,适于获取服务器集群的设备信息,根据所述设备信息确定所述服务器集群是否满足脑裂现象模拟的基础条件;如果满足脑裂现象模拟的基础条件,则确定服务器集群的通信方式,根据所述通信方式对所述服务器集群进行相应的脑裂现象模拟,以模拟服务器集群中出现无法与其他服务器节点进行通信的故障服务器节点的现象;以及信息处理模块,适于监测所述服务器集群状态并获取本次服务器集群状态信息,将本次服务器集群状态信息与上次服务器集群状态信息进行对比得到对比信息;根据所述对比信息确定所述服务器集群是否发生脑裂现象以及所述仲裁设备是否执行仲裁操作,以确定所述服务器集群是否能够避免脑裂问题。
根据本发明的一个方面,提供一种计算设备,包括:至少一个处理器;存储器,存储有程序指令,其中,程序指令被配置为适于由上述至少一个处理器执行,所述程序指令包括用于执行如上所述的服务器集群的检测方法的指令。
根据本发明的一个方面,提供一种存储有程序指令的可读存储介质,当该程序指令被计算设备读取并执行时,使得该计算设备执行如上所述的服务器集群的检测方法。
根据本发明的技术方案,提供了一种服务器集群的检测方法,其中,通过对服务器集群进行脑裂现象模拟,并检测服务器集群能否做出仲裁操作来应对和处理脑裂现象以避免服务器集群出现脑裂问题,据此确定服务器集群是否存在脑裂问题的隐患。具体地,当根据对比信息确定服务器集群发生了脑裂现象时,通过检测仲裁设备是否针对服务器集群的脑裂现象而做出仲裁操作来进行处理,据此判断服务器集群能否避免脑裂问题、是否满足服务器集群高可用性的预期。这样,通过在服务器集群投入生产环境之前执行本发明的服务器集群的检测方法,可以检测出服务器集群是否存在脑裂问题的隐患。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的服务器集群100(与计算设备通信相连)的示意图;
图2示出了根据本发明一个实施例的计算设备200的示意图;
图3、图4分别示出了根据本发明一个实施例的服务器集群的检测方法300的流程图;
图5示出了根据本发明一个实施例的检测装置500的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的服务器集群100的示意图。计算设备200与服务器集群100通信相连,通过对服务器集群100进行脑裂模拟以检测服务器集群100能否避免脑裂问题、是否满足高可用性的预期。
如图1所示,服务器集群100自下而上依次包括设备层、消息通信层、资源配置层和资源代理层。
其中,设备层可以包括多个服务器节点150。这里,图1仅示例性展示出服务器集群100包括两个服务器节点150,但本发明并不限于服务器节点的具体数量。另外,设备层还包括与多个服务器150通信连接的仲裁设备140。
仲裁设备140即Fence设备。在一种实现方式中,仲裁设备140可以实现为stonith设备。需要说明的是,stonith是“shoot the other node in the head”的首字母简写,它是Heartbeat软件包的一个组件,它允许使用一个通信连接到健康服务器的电源设备自动重启失效服务器(故障服务器节点)的电源,stonith设备可以关闭电源并响应软件命令,运行Heartbeat的服务器可以通过串口线或网线向stonith设备发送命令以控制失效服务器的电力供应。例如,当一个服务器节点检测到另一个服务器节点出现故障时,可以通过网络向stonith设备发送命令以控制故障服务器节点的电源。
相应地,如图1所示,资源配置层包括多个资源管理器120,消息通信层包括多个通信工具130,资源代理层包括多个资源代理110,资源管理器120分别与相应的资源代理110、通信工具130通信连接。
资源管理器120可以与通信工具130组合使用来调度和管理集群资源,其中,资源管理器120可以利用通信工具130提供的服务器节点之间的心跳信息来判断节点状态是否正常,以便实现节点和资源级别的故障检测和资源恢复。
在一种实现方式中,通信工具130可以实现为Corosync通信工具或者Heartbeat通信工具。
应当指出,图1仅示例性地提供了一种服务器集群的结构图,但本发明并不受限于图1示出的服务器集群的结构。
另外,如图1所示,计算设备200还可以与客户端201通信连接,以便将服务器集群的状态信息发送至客户端201进行展示,以供用户或维护人员查看。
在本发明的实施例中,计算设备200适于执行本发明的服务器集群的检测方法300,来对服务器集群100进行脑裂模拟以检测服务器集群100能否避免脑裂问题。服务器集群的检测方法300将在下文中详述。
在一个实施例中,如图1所示,计算设备200中包括检测装置500,检测装置500适于执行本发明的服务器集群的检测方法300。
图2示出了根据本发明一个实施例的计算设备200的示意图。
如图2所示,在基本配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(UP)、微控制器(UC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器206可以包括操作系统220、一个或者多个应用222以及程序数据224。应用222实际上是多条程序指令,其用于指示处理器204执行相应的操作。在一些实施方式中,应用222可以布置为在操作系统上使得处理器204利用程序数据224进行操作。
计算设备200还包括储存设备232,储存设备232包括可移除储存器236和不可移除储存器238。
计算设备200还可以包括储存接口总线234。储存接口总线234实现了从储存设备232(例如,可移除储存器236和不可移除储存器238)经由总线/接口控制器230到基本配置202的通信。操作系统220、应用222以及程序数据224的至少一部分可以存储在可移除储存器236和/或不可移除储存器238上,并且在计算设备200上电或者要执行应用222时,经由储存接口总线234而加载到系统存储器206中,并由一个或者多个处理器204来执行。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图像处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中以编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的实施例中,计算设备200被配置为执行根据本发明的服务器集群的检测方法300。计算设备200的应用中包含用于执行本发明的服务器集群的检测方法300的多条程序指令,这些程序指令可以指示处理器执行根据本发明的服务器集群的检测方法300,以便计算设备通过执行本发明的服务器集群的检测方法300来增强服务器集群的可用性。
在一个实施例中,布置在计算设备200的操作系统上的应用包括检测装置500,检测装置500被配置为执行根据本发明的服务器集群的检测方法300。
图3、图4分别示出了根据本发明一个实施例的服务器集群的检测方法300的流程图。方法300适于在计算设备(例如前述计算设备200)中执行。
根据本发明提供的服务器集群100,服务器集群系统100中包括多个服务器节点150、与多个服务器节点通信连接的仲裁设备140。在一种实现方式中,仲裁设备140例如可以实现为stonith设备。
需要说明的是,根据本发明的服务器集群的检测方法300,在服务器集群投入生产环境之前,对服务器集群进行脑裂现象模拟,并检测服务器集群能否针对脑裂现象(服务器集群中的服务器节点出现故障而无法与其他服务器节点进行通信、无法检测到故障服务器节点的心跳)而做出仲裁操作来应对和处理脑裂现象,以避免服务器集群因脑裂现象而导致脑裂问题(服务器集群的资源或服务同时在两个服务器节点上运行的情况)。
如图3所示,方法300始于步骤S310。
在步骤S310中,检测服务器集群环境,获取服务器集群的设备信息,根据设备信息来确定服务器集群是否满足脑裂现象模拟的基础条件。
这里,服务器集群的设备信息可以包括服务器集群中的各个设备的信息,例如包括服务器集群中的仲裁设备信息、服务器集群中的每个服务器节点的信息等。
在一个实施例中,根据设备信息来确定服务器集群是否满足脑裂现象模拟的基础条件具体可以按照以下方式执行:根据设备信息确定仲裁设备是否能监控到服务器集群中的每个服务器节点。如果能监控到服务器集群中的每个服务器节点,则进一步确定服务器集群是否满足投票机制的票数条件。如果满足投票机制的票数条件,则可以确定服务器集群满足脑裂现象模拟的基础条件。
应当指出,在仲裁设备能够监控到服务器集群中的每个服务器节点、并且服务器集群满足投票机制的票数条件的情况下,才可以通过投票机制以及利用仲裁设备对故障服务器节点进行Fence操作(仲裁操作,例如切断电源的操作),这样才符合对服务器集群进行脑裂模拟的基础条件。
这里,投票机制具体可以实现为Quorum机制,该投票机制的票数条件为超过总票数的一半。即,当正常服务器节点获得的票数超过总票数的一半时,满足投票机制的票数条件。票数条件可以用下式来表示: Q>2n+1,且n>0。其中,Q 为总票数(也即服务器节点总数),n为服务器集群中的故障服务器节点获得的票数。可以理解,当总票数满足Q>2n+1时,相应也满足正常服务器节点获得的票数超过总票数的一半。
例如,服务器集群中包含四个服务器节点以及仲裁设备,当服务器集群中一个服务器节点出现故障而无法与其他服务器节点进行通信的情况下(检测不到故障服务器节点的心跳),可以通过投票机制进行Fence操作,具体地,在进行投票后正常服务器节点可以获取到3票,故障服务器节点可以获取到1票,从而满足投票机制的票数条件。在满足投票机制的票数条件的基础上,才可以通过服务器集群的投票机制对故障服务器节点进行Fence操作,这样才符合对服务器集群进行脑裂模拟的基础条件。接下来可以通过对服务器集群进行脑裂现象模拟,以检测服务器集群是否能够在发生脑裂现象时执行仲裁操作来避免脑裂问题。
如果确定服务器集群不满足脑裂现象模拟的基础条件,则可以将不满足基础条件的相关信息进行输入,例如发送至与计算设备通信连接的客户端进行展示,不在执行对服务器集群的脑裂模拟。
如果确定服务器集群满足脑裂现象模拟的基础条件,继续执行步骤S320来对服务器集群进行脑裂现象模拟,并通过执行步骤S330~S340来检测服务器集群是否能够在发生脑裂现象时执行仲裁操作以避免脑裂问题。
在步骤S320中,确定服务器集群的通信方式,根据该通信方式来对服务器集群进行相应的脑裂现象模拟,以模拟服务器集群中出现至少一个无法与其他服务器节点进行通信的故障服务器节点的现象。
需要说明的是,这里对服务器集群进行模拟的脑裂现象是指模拟服务器集群中的至少一个服务器节点发生故障而无法与其他服务器节点进行通信、其他服务器节点接收不到该服务器节点的心跳的现象。
在一个实施例中,可以调用与服务器集群的通信方式相对应的脑裂现象模拟方法,并根据与通信方式相对应的脑裂现象模拟方法来对服务器集群进行脑裂现象模拟。
在一个实施例中,通信方式包括通信协议和通信传输方式,也就是说,本发明中服务器集群的通信方式是根据服务器集群使用的通信协议和通信传输方式来确定的。在确定服务器集群使用的通信协议和通信传输方式后,可以根据服务器集群使用的通信协议和通信传输方式来对服务器集群进行相应的脑裂现象模拟。
这里,通信协议例如包括UDP协议、Paxos协议、Totem协议等,通信传输方式例如包括单播、多播(即组播)、广播等。但,应当指出,本发明不限于通信方式中的通信协议和通信传输方式的具体类型。
在一个实施例中,可以根据服务器集群使用的软件包类型来确定服务器集群使用的通信工具,并从通信工具的配置文件中获取服务器集群的通信协议和通信传输方式。
例如,当确定服务器集群使用的通信工具为Corosync(服务器集群管理套件的一部分、是一个组通信系统)时,读取通信工具Corosync对应的配置文件corosync.conf,对该配置文件中的transport(通信协议)、mcastaddr(多播地址)、mcastport(多播端口)、broadcast(广播)等字段进行解析,确定各字段的参数值。以常用的Corosync的配置文件为例,当transport(通信协议)的参数值为udp、mcastaddr(多播地址)的参数值为226.16.21.1、mcastport(多播端口)的参数值为5405时,可以从配置文件中获取到服务器集群的通信协议为UDP、通信传输方式为多播,并且可以获取到传输方式的具体信息(多播地址和端口号)。进而,根据这种通信方式,可以采用关闭UDP协议的相应端口的方式来对服务器集群脑裂现象进行模拟,具体地,可以调用相应的函数来将服务器节点的UDP协议的5405端口进行阻塞,使服务器节点无法与其它服务器节点进行通信,以此模拟服务器集群脑裂现象的发生。
应当指出,本发明在解析通信方式、对服务器集群进行脑裂现象模拟的同时,还监测服务器集群状态。
具体地,在步骤S330中,监测服务器集群状态并获取本次服务器集群状态信息,将本次服务器集群状态信息与上次服务器集群状态信息进行对比,得到对比信息。
在一种实现方式中,在监测服务器集群状态过程中,可以定时获取服务器集群状态信息。而当前最新获取到的服务器集群状态信息即是本次服务器集群状态信息。
这里,服务器集群状态信息例如包括服务器集群中的仲裁设备状态信息和历史操作、每个服务器节点的状态信息、集群资源状态信息(集群资源的运行状态信息)中的一种或多种。这样,通过将本次服务器集群状态信息与上次服务器集群状态信息进行对比,可以确定服务器集群状态信息相对上次发生的变化。
需要说明的是,上次服务器集群状态信息即是在对服务器集群进行脑裂现象模拟之前(也即,在服务器集群发生脑裂现象之前)获取到的脑裂前的服务器集群状态信息。
另外,如果本次服务器集群状态信息与上次服务器集群状态信息不同,可以将对比信息写入日志以作为对服务器集群状态信息发生变化后的备份,后续可以从日志中获取该对比信息来进行分析。
最后,在步骤S340中,根据对比信息确定服务器集群是否发生脑裂现象以及仲裁设备是否执行仲裁操作,以确定服务器集群是否能够避免脑裂问题。换言之,根据对比信息来分析服务器集群发生脑裂现象时,仲裁设备是否执行仲裁操作来应对和处理脑裂现象,以避免服务器集群在生产环境产生脑裂问题。
具体地,对比信息中包括本次服务器集群状态信息中的每个服务器节点的状态信息、与上次服务器集群状态信息中的每个服务器节点的状态信息之间的对比信息,据此可以确定每个服务器节点的状态信息(包括服务器节点的心跳信息)每个服务器节点的状态(心跳)是否正常。根据每个服务器节点的状态(心跳)是否正常也就可以确定每个服务器节点是否能够与其他服务器节点进行正常通信、是否存在无法与其他服务器节点进行通信的故障服务器节点,这样也就确定了服务器集群是否发生脑裂现象。
在一个实施例中,仲裁操作包括对故障服务器节点切断电源的操作,例如关闭或重启故障服务器节点的电源的操作。可以理解,对比信息中还包括本次服务器集群状态信息中的仲裁设备的状态信息和历史操作、与上次服务器集群状态信息中的仲裁设备的状态信息和历史操作之间的对比信息,据此可以确定仲裁设备是否执行了仲裁操作(切断电源的操作)。
需要说明的是,当根据对比信息确定服务器集群发生了脑裂现象(服务器集群中出现无法与其他服务器节点进行通信的故障服务器节点)时,通过检测仲裁设备是否针对服务器集群的脑裂现象而做出相应的应对处理措施(仲裁操作),据此判断服务器集群能否避免脑裂问题、是否满足服务器集群高可用性的预期。这样,通过在服务器集群投入生产环境之前执行本发明的服务器集群的检测方法,可以检测出服务器集群是否存在脑裂问题的隐患。
在一个实施例中,计算设备200与客户端通信连接。如果在步骤S340中确定服务器集群发生脑裂现象且仲裁设备执行了仲裁操作,可以将对比信息输出,即,将对比信息发送至客户端,以便在客户端展示对比信息。这样,用户或维护人员可以根据客户端展示的对比信息来对服务器集群状态进行分析。
在一个实施例中,在得到对比信息后,计算设备200还可以进一步根据对比信息分析服务器集群状态,以确定服务器集群状态是否正常,并生成相应的状态分析结果。接着,可以将状态分析结果发送至客户端,以便在客户端展示对服务器集群的状态分析结果,供用户或维护人员查看状态分析结果。
这里,基于服务器集群状态信息可以包括服务器集群中的仲裁设备状态信息和历史操作、每个服务器节点的状态信息、集群资源状态信息中的一种或多种。相应地,根据对比信息确定服务器集群状态是否正常可以包括以下一种或多种:确定服务器集群中的仲裁设备是否成功执行预定操作;确定每个服务器节点的状态是否正常;确定集群资源状态是否正常。
图5示出了根据本发明一个实施例的检测装置500的示意图。检测装置500驻留在计算设备(例如前述计算设备200)中,适于执行本发明的服务器集群的检测方法300。
如图5所示,检测装置500包括相互耦接的脑裂模拟模块510、信息处理模块520。
其中,脑裂模拟模块510可以获取服务器集群的设备信息,根据设备信息确定服务器集群是否满足脑裂现象模拟的基础条件。如果满足脑裂现象模拟的基础条件,则确定服务器集群的通信方式,根据通信方式对服务器集群进行相应的脑裂现象模拟,以模拟服务器集群中出现无法与其他服务器节点进行通信的故障服务器节点的现象。
信息处理模块520可以监测所述服务器集群状态并获取本次服务器集群状态信息,将本次服务器集群状态信息与上次服务器集群状态信息进行对比得到对比信息。根据对比信息确定服务器集群是否发生脑裂现象以及仲裁设备是否执行仲裁操作,以确定服务器集群是否能够避免脑裂问题。
应当指出,脑裂模拟模块510用于行前述步骤S310~S320,信息处理模块520用于执行前述步骤S330~S340。这里,脑裂模拟模块510及信息处理模块520的具体执行逻辑参见前文方法300中对步骤S310~S340的描述,此处不再赘述。
根据本发明的服务器集群的检测方法300,在服务器集群投入生产环境之前,通过对服务器集群进行脑裂现象模拟,并检测服务器集群能否做出仲裁操作来应对和处理脑裂现象以避免服务器集群出现脑裂问题,据此确定服务器集群是否存在脑裂问题的隐患。具体地,当根据对比信息确定服务器集群发生了脑裂现象时,通过检测仲裁设备是否针对服务器集群的脑裂现象而做出仲裁操作来进行处理,据此判断服务器集群能否避免脑裂问题、是否满足服务器集群高可用性的预期。这样,通过在服务器集群投入生产环境之前执行本发明的服务器集群的检测方法,可以检测出服务器集群是否存在脑裂问题的隐患。
这里描述的各种技术可结合硬件或软件,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,移动终端一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的服务器集群的检测方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。

Claims (9)

1.一种服务器集群的检测方法,在计算设备中执行,所述计算设备与服务器集群、客户端通信相连,所述服务器集群包括多个服务器节点、分别与所述多个服务器节点通信相连的仲裁设备,所述方法包括步骤:
获取服务器集群的设备信息,根据所述设备信息确定所述服务器集群是否满足脑裂现象模拟的基础条件;
如果满足脑裂现象模拟的基础条件,则确定所述服务器集群的通信方式,包括:根据服务器集群使用的软件包类型来确定服务器集群使用的通信工具,并从所述通信工具的配置文件中获取所述服务器集群的通信协议和通信传输方式;
根据所述通信方式对所述服务器集群进行相应的脑裂现象模拟,以模拟所述服务器集群中出现无法与其他服务器节点进行通信的故障服务器节点的现象,其中包括:调用相应的函数来关闭与通信协议和通信传输方式相对应的端口,以实现对服务器集群脑裂现象进行模拟;其中,所述通信方式包括通信协议和通信传输方式,所述通信协议包括UDP协议、Paxos协议、Totem协议中的一种或多种,所述通信传输方式包括单播、多播、广播中的一种或多种;
监测所述服务器集群状态并获取本次服务器集群状态信息,将本次服务器集群状态信息与上次服务器集群状态信息进行对比得到对比信息;
根据所述对比信息确定所述服务器集群是否发生脑裂现象以及所述仲裁设备是否执行仲裁操作,以确定所述服务器集群是否能够避免脑裂问题;
如果确定所述服务器集群发生脑裂现象且仲裁设备执行仲裁操作,则将所述对比信息发送至客户端,以便在所述客户端展示所述对比信息。
2.如权利要求1所述的方法,其中,所述仲裁操作包括切断故障服务器节点的电源的操作。
3.如权利要求1所述的方法,其中,还包括步骤:
根据所述对比信息确定所述服务器集群状态是否正常,并生成相应的状态分析结果;
将所述状态分析结果发送至所述客户端,以便在客户端展示所述状态分析结果。
4.如权利要求3所述的方法,其中,确定所述服务器集群状态是否正常包括以下一种或多种:
确定服务器集群中的仲裁设备是否成功执行预定操作;
确定每个服务器节点的状态是否正常;
确定集群资源状态是否正常。
5.如权利要求1-4中任一项所述的方法,其中,所述服务器集群状态信息包括服务器集群中的仲裁设备状态信息和历史操作、每个服务器节点的状态信息、集群资源状态信息中的一种或多种。
6.如权利要求1-4中任一项所述的方法,其中,所述设备信息包括仲裁设备信息、每个服务器节点的信息,根据设备信息确定服务器集群是否满足脑裂现象模拟的基础条件包括:
根据所述设备信息确定所述仲裁设备是否能监控到所述服务器集群中的每个服务器节点;
如果是,则确定所述服务器集群是否满足投票机制的票数条件;
如果满足,则确定所述服务器集群满足脑裂现象模拟的基础条件。
7.一种检测装置,驻留在计算设备中,所述计算设备与服务器集群、客户端通信相连,所述服务器集群包括多个服务器节点、分别与所述多个服务器节点通信相连的仲裁设备,所述装置包括:
脑裂模拟模块,适于获取服务器集群的设备信息,根据所述设备信息确定所述服务器集群是否满足脑裂现象模拟的基础条件;如果满足脑裂现象模拟的基础条件,则确定所述服务器集群的通信方式,包括:根据服务器集群使用的软件包类型来确定服务器集群使用的通信工具,并从所述通信工具的配置文件中获取所述服务器集群的通信协议和通信传输方式;根据所述通信方式对所述服务器集群进行相应的脑裂现象模拟,以模拟所述服务器集群中出现无法与其他服务器节点进行通信的故障服务器节点的现象,其中包括:调用相应的函数来关闭与通信协议和通信传输方式相对应的端口,以实现对服务器集群脑裂现象进行模拟;其中,所述通信方式包括通信协议和通信传输方式,所述通信协议包括UDP协议、Paxos协议、Totem协议中的一种或多种,所述通信传输方式包括单播、多播、广播中的一种或多种;以及
信息处理模块,适于监测所述服务器集群状态并获取本次服务器集群状态信息,将本次服务器集群状态信息与上次服务器集群状态信息进行对比得到对比信息;根据所述对比信息确定所述服务器集群是否发生脑裂现象以及所述仲裁设备是否执行仲裁操作,以确定所述服务器集群是否能够避免脑裂问题;如果确定所述服务器集群发生脑裂现象且仲裁设备执行仲裁操作,则将所述对比信息发送至客户端,以便在所述客户端展示所述对比信息。
8.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-6中任一项所述的方法的指令。
9.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-6中任一项所述方法。
CN202210381701.9A 2022-04-13 2022-04-13 一种服务器集群的检测方法、检测装置及计算设备 Active CN114500327B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202210730202.6A CN115190046B (zh) 2022-04-13 2022-04-13 一种服务器集群的检测方法、检测装置及计算设备
CN202210381701.9A CN114500327B (zh) 2022-04-13 2022-04-13 一种服务器集群的检测方法、检测装置及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210381701.9A CN114500327B (zh) 2022-04-13 2022-04-13 一种服务器集群的检测方法、检测装置及计算设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210730202.6A Division CN115190046B (zh) 2022-04-13 2022-04-13 一种服务器集群的检测方法、检测装置及计算设备

Publications (2)

Publication Number Publication Date
CN114500327A CN114500327A (zh) 2022-05-13
CN114500327B true CN114500327B (zh) 2022-08-12

Family

ID=81488529

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210730202.6A Active CN115190046B (zh) 2022-04-13 2022-04-13 一种服务器集群的检测方法、检测装置及计算设备
CN202210381701.9A Active CN114500327B (zh) 2022-04-13 2022-04-13 一种服务器集群的检测方法、检测装置及计算设备

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210730202.6A Active CN115190046B (zh) 2022-04-13 2022-04-13 一种服务器集群的检测方法、检测装置及计算设备

Country Status (1)

Country Link
CN (2) CN115190046B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117851300A (zh) * 2022-09-30 2024-04-09 华为云计算技术有限公司 一种多az仲裁系统及方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012173996A (ja) * 2011-02-22 2012-09-10 Nec Corp クラスタシステム、クラスタ管理方法、およびクラスタ管理プログラム
CN103684941B (zh) * 2013-11-23 2018-01-16 广东中兴新支点技术有限公司 基于仲裁服务器的集群裂脑预防方法和装置
CN104158707B (zh) * 2014-08-29 2017-10-17 新华三技术有限公司 一种检测并处理集群脑裂的方法和装置
WO2016106682A1 (zh) * 2014-12-31 2016-07-07 华为技术有限公司 一种集群脑裂后仲裁处理方法、仲裁存储装置以及系统
CN105472022A (zh) * 2015-12-24 2016-04-06 北京同有飞骥科技股份有限公司 一种解决双机集群脑裂的方法及装置
CN106789193A (zh) * 2016-12-06 2017-05-31 郑州云海信息技术有限公司 一种集群投票仲裁方法及系统
CN107147540A (zh) * 2017-07-19 2017-09-08 郑州云海信息技术有限公司 高可用性系统中的故障处理方法和故障处理集群
WO2019119263A1 (zh) * 2017-12-19 2019-06-27 海能达通信股份有限公司 一种分布式集群脑裂的处理方法、装置及设备
CN108845865A (zh) * 2018-06-28 2018-11-20 郑州云海信息技术有限公司 一种监控服务部署方法、系统和存储介质
US10909008B2 (en) * 2018-12-17 2021-02-02 Ribbon Communications Operating Company, Inc. Methods and apparatus for detecting, eliminating and/or mitigating split brain occurrences in high availability systems
CN110750393B (zh) * 2019-09-03 2023-10-13 北京字节跳动网络技术有限公司 避免网络服务双机热备脑裂的方法、装置、介质和设备
CN212785387U (zh) * 2020-05-29 2021-03-23 深圳市瑞驰信息技术有限公司 一种低成本的多集群仲裁系统

Also Published As

Publication number Publication date
CN115190046B (zh) 2024-01-23
CN115190046A (zh) 2022-10-14
CN114500327A (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
US20150100296A1 (en) Method and system for automated test and result comparison
CN109254922B (zh) 一种服务器BMC Redfish功能的自动化测试方法及装置
CN107666493B (zh) 一种数据库配置方法及其设备
WO2023115999A1 (zh) 设备状态监控方法、装置、设备及计算机可读存储介质
US9430221B2 (en) Device and method for updating firmware of a rackmount server system
CN110109782B (zh) 一种故障PCIe设备的更换方法、装置及系统
WO2021139322A1 (zh) 网络设备数据处理方法、装置、计算机设备和存储介质
CN114500327B (zh) 一种服务器集群的检测方法、检测装置及计算设备
CN112529223A (zh) 一种设备故障报修方法、装置、服务器及储存介质
CN107783844A (zh) 一种计算机程序运行异常检测方法、装置和介质
CN113127299A (zh) 服务器运维方法、装置、系统及计算机可读存储介质
EP3617887A1 (en) Method and system for providing service redundancy between a master server and a slave server
CN105955838A (zh) 一种系统死机的原因查看方法及装置
CN106411643A (zh) Bmc检测方法以及装置
CN114647531B (zh) 故障解决方法、故障解决系统、电子设备及存储介质
WO2022009438A1 (ja) サーバメンテナンス制御装置、システム、制御方法及びプログラム
EP3974979A1 (en) Platform and service disruption avoidance using deployment metadata
CN113238893A (zh) 多数据中心的容灾系统、方法、计算机设备及介质
CN111400094A (zh) 一种服务器系统恢复出厂设置的方法、装置、设备及介质
WO2014054233A1 (ja) 情報システムの性能評価装置、方法およびプログラム
CN113572687B (zh) 一种基于事件驱动机制的高阶路由器自适应并行启动方法
TWI685736B (zh) 運用於資料中心的機櫃異常狀態的遠端排除方法(二)
CN115296976B (zh) 物联网设备故障检测方法、装置、设备及存储介质
CN113568710B (zh) 一种虚拟机高可用实现方法、装置和设备
CN114785673B (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