用于云存储系统的服务节点状态监控方法
技术领域
本发明一般地涉及计算机技术领域,更具体地来说,涉及用于云存储系统的服务节点状态监控方法。
背景技术
云存储系统的服务节点监控包括节点服务状态监控、磁盘工作状态监控、网络监控等。网络监控主要是指在系统安装部署和工作过程中探测拓扑图中节点之间的网络连接状态以及网络性能(带宽、传输速率、使用情况等)。而节点服务状态的监控主要是监控存储系统启动环境状态和软件的服务状态,同时还包括该节点与其它节点的网络互连情况。
现有的云存储系统服务节点状态监控主要是通过管理节点和服务端之间的通信交互来完成的,管理节点周期性检测各服务节点的服务状态和网络连接状态,然后将检测结果返回给监控进程,这种机制适用于小规模的存储系统。在较大规模的云存储系统环境下,依靠管理节点和服务端之间的消息交互来完成节点服务状态的访问,一方面在网络状况较差时通信时延比较大,采集大量服务节点状态的周期比较长;另一方面管理节点和服务端之间的网络的不稳定性也会导致访问失效。虽然服务节点状态自治在一定程度上提高了云存储系统状态监控的效率,即各服务节点各自维护自己的服务状态和网络连接状态,但是该机制仍然无法避免管理节点与服务节点之间交互失效的问题。例如,服务节点宕机时通信链路断开,管理节点无法获取服务节点的状态;此外,在网络繁忙时,管理节点采集服务节点状态的时延变大,在服务节点数量庞大的情况下,采集时延更加明显,用户体验较差。
发明内容
针对现有技术中在网络状况较差时通信时延比较大,采集大量服务节点状态的周期比较长以及管理节点和服务端之间的网络的不稳定性也会导致访问失效的缺陷,本发明提出了能够解决上述缺陷的用于云存储系统的服务节点状态监控方法。
本发明提供了一种用于云存储系统的服务节点状态监控方法,其中:多个服务节点中的每一个服务节点都以预定周期向管理节点发送状态信息;以及管理节点建立用于记录每个服务节点状态的状态信息记录表,并根据接收到的状态信息更新状态信息记录表中相应服务节点的运行状态。
优选地,服务节点状态监控方法还包括:客户节点向管理节点发送用于指示查询一个或多个服务节点的运行状态的查询请求;以及管理节点将具有与一个或多个服务节点相对应的运行状态的查询响应反馈给客户节点。
优选地,服务节点在启动之后并且在向管理节点发送状态信息之前根据运行状态生成状态信息。
优选地,如果管理节点在一个预定周期内没有接收到来自服务节点的状态信息,则保存服务节点所对应的当前的运行状态之后将运行状态设置为未知状态,然后探测与所述未知状态相对应的所述服务节点的实际运行状态。
优选地,当管理节点接收到与未知状态相对应的服务节点的状态信息时,则根据状态信息将未知状态更新为相应的运行状态。
优选地,在管理节点将运行状态设置为未知状态的同时,管理节点进行报警;以及在管理节点将未知状态更新为相应的运行状态的同时,管理节点取消报警。
优选地,管理节点在更新运行状态以后的预定时间内将状态信息记录表中的运行状态发送给与运行状态相对应的服务节点之外的其他服务节点。
优选地,当与一个或多个服务节点相对应的运行状态为未知状态时,管理节点将具有保存的当前的运行状态和未知状态的查询响应反馈给客户节点。
优选地,运行状态包括服务状态、网络性能状态和网络连接状态。
优选地,服务状态包括:服务关闭、服务启动完毕、服务修改和服务崩溃等。
利用本发明的服务节点状态监控方法,通过服务节点向管理节点周期性上报状态信息,管理节点根据上报的状态信息实时更新状态信息记录表,减小了状态信息记录表的更新时延。管理节点将在预定周期内没有更新的状态信息相对应的服务节点的运行状态设置为未知状态,从而消除了由于服务节点故障或者网络连接故障所导致的状态信息记录表的更新时延。此外,当客户节点可以直接从状态信息记录表获取相应服务节点的运行状态,而无需管理节点进一步继续访问服务节点。将采集服务节点状态的进程和访问服务节点状态的进程分离开,通过共享状态信息记录表中的相应服务节点的状态信息,避免单次访问服务节点运行状态的网络时延问题,从而即能及时更新服务节点的运行状态,又能快捷地访问服务节点的运行状态。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。在附图中:
图1为根据本发明的实施例的服务节点状态监控方法的流程图;
图2为根据本发明的实施例的服务节点状态监控方法的具体流程图;以及
图3为根据本发明的实施例的在管理节点没有接收到状态信息的情况下的服务节点状态的监控方法的流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
云存储系统中包括相互连接的多个服务器,简称为节点。管理节点为管理节点的节点;服务节点为云存储系统中的存储节点;以及客户节点是访问云存储系统的节点,可以为客户端等。
图1为根据本发明的实施例的服务节点状态监控方法的流程图。本发明提供了用于云存储系统的服务节点状态监控方法100,该方法包括:在步骤102中,多个服务节点中的每一个服务节点都以预定周期向管理节点发送状态信息;以及在步骤104中,管理节点建立用于记录每个服务节点状态的状态信息记录表,并根据接收到的状态信息更新状态信息记录表中相应服务节点的运行状态。
在本发明的实施例中,利用该服务节点状态监控方法可以通过服务节点以预定周期向管理节点发送状态信息,然后管理节点根据该状态信息更新状态信息记录表,在该方法中,省略了管理节点向服务节点发送查询请求的步骤,缩短了管理节点获取服务节点的状态信息的时间,减少了更新状态信息记录表的时延,从而能够更快地更新状态信息记录表。
图2为根据本发明的实施例的服务节点状态监控方法的具体流程图。该服务节点状态监控方法200包括:在步骤202中,服务节点在启动之后并且在向管理节点发送状态信息之前根据运行状态生成状态信息。其中,服务节点的运行状态包括服务状态、网络性能和网络连接状态。具体地,服务状态包括:服务关闭、服务启动完毕、服务修改和服务崩溃等。服务节点进行自监控,在服务节点开启后,其自身维护本地节点状态、存储服务节点状态和网络连接状态。服务节点从服务开启到服务关闭,维护的节点状态主要有服务关闭、服务启动准备就绪、服务启动完毕、服务修复、服务崩溃和服务关闭等。服务状态监控是服务节点在启动和运行过程中监控该服务节点的服务状态、该服务节点的性能状态和该服务节点的网络连接状态。该服务节点监控网络性能和网络连接状态是指在系统安装部署和工作过程中监控云存储系统的拓扑图中节点之间的网络连接状态以及网络性能状态。具体地,网络性能包括带宽、传输速率和使用情况等。然后,服务节点利用本领域公知的方法根据这些运行状态生成状态信息。
在步骤204中,多个服务节点中的每一个服务节点都以预定周期向管理节点发送状态信息。该预定周期可以根据系统要求和用户需要进行设置。在一个实施例中,服务节点将该预定周期设置为2秒至30秒,例如,多个服务节点中的每一个节点都以5秒为周期向管理节点发送状态信息。在其他实施例中,根据系统需要,可以预定周期设置为更短或者更长。
在步骤206中,管理节点建立用于记录每个服务节点状态的状态信息记录表,并根据接收到的状态信息更新状态信息记录表中相应服务节点的运行状态。管理节点首先在内存中建立用于记录每个服务节点状态的状态信息记录表,然后根据从服务节点所接收到的状态信息更新存储在内存中的状态信息记录表中的相应服务节点的运行状态。
在步骤208中,客户节点向管理节点发送用于指示查询一个或多个服务节点的运行状态的查询请求。在云存储系统中,客户节点也需要及时掌握服务节点的运行状态以能够更好地访问云存储系统或向该云存储系统存储数据。当客户节点需要时,向管理节点发送至少一个或多个服务节点的运行状态的查询请求。
在步骤210中,管理节点将具有与一个或多个服务节点相对应的运行状态的查询响应反馈给客户节点。当管理节点接收到来自客户节点的查询请求时,将存储在内存中的状态信息记录表中的与一个或多个服务节点相对应的运行状态读取出来,并将读取的运行状态的信息发送给客户节点。
在本发明的实施例中,客户节点可以直接从状态信息记录表中获取相应服务节点的运行状态,而无需管理节点在接收到的客户节点的查询请求时继续访问服务节点。将采集服务节点状态的进程和访问服务节点状态的进程分离开,通过共享状态信息记录表中的相应服务节点的状态信息,避免单次访问服务节点运行状态的网络时延问题,大大缩短了客户节点监控服务节点的运行状态的时间周期。因此,即能及时更新服务节点的运行状态,又能快捷地访问服务节点的运行状态。
图3为根据本发明的实施例的在管理节点没有接收到状态信息的情况下的服务节点状态的监控方法300的流程图。在步骤302中,如果管理节点在一个预定周期内没有接收到来自服务节点的状态信息,则保存服务节点所对应的当前的运行状态之后将运行状态设置为未知状态,然后探测与所述未知状态相对应的所述服务节点的实际运行状态。管理节点需要在一个更新周期内更新所使用服务节点的状态,如果管理节点长时间没有收到服务节点的上报的状态信息,则需要将该服务节点的状态设置为未知状态,以此来标示服务节点异常。由于云存储系统中存在成百上千个服务节点,在管理节点监控多个服务节点的过程中,如果某一个或多个服务节点宕机、服务重启或者与云存储系统的网络连接断开的情况下,管理节点都不能接收到服务节点的状态信息,这样状态信息记录表中与该一个或多个服务节点相对应的服务状态就不能及时更新,从而影响了整个云存储系统中其他服务节点的运行状态的及时更新。在预定时间周期内,如果管理节点没有接收到来自服务节点的状态信息,则管理将服务节点所对应的当前的运行状态(即,管理节点最后一次接收到的服务节点的运行状态)保存在状态信息记录表中之后将运行状态设置为未知状态,然后,利用一定的探测策略探测与未知状态相对应的服务节点的实际运行状态。具体地,探测策略可以是管理节点定时向该未知节点发送查询请求等,以探测该未知服务节点的实际运行状态。另外,在管理节点将运行状态设置为未知状态的同时,管理节点进行报警。例如,管理节点以红色字体在显示器上显示相应的服务节点故障,或者管理节点以短消息或者邮件形式通知管理员相应的服务节点故障。
在步骤304中,当管理节点接收到与未知状态相对应的服务节点的状态信息时,根据状态信息将未知状态更新为相应的运行状态。当服务节点恢复以后,即,服务节点或者网络连接故障解除以后,管理节点接收到来自该服务节点的运行状态信息时,该管理节点可以根据接收到的状态信息将未知状态更新为相应的运行状态。在管理节点将未知状态更新为相应的运行状态的同时,管理节点取消报警。例如,管理节点取消在显示器上显示的服务节点故障。
此外,管理节点在更新运行状态以后的预定时间内将状态信息记录表中的运行状态发送给与运行状态相对应的服务节点之外的其他服务节点。在服务节点的运行状态为未知状态时,管理节点可以将该未知状态通知云存储系统中的其他服务节点。以便于其他服务接单与该服务节点及时断开,以确保云存储系统中的数据安全。
另外,当与一个或多个服务节点相对应的运行状态为未知状态时,管理节点将具有保存的当前的运行状态和未知状态的查询响应反馈给客户节点。这样,客户节点能够监控到服务节点最后一次向管理节点发送的运行状态和目前的未知状态。避免了客户节点访问服务节点状态失效的问题。
利用本发明实施例的服务节点状态监控方法,首先,管理节点根据从服务节点接收到的状态信息更新状态信息记录表,不需要向服务节点发送查询请求,这样更新状态信息记录表的时间至少减少了一半。其次,在客户节点监控服务节点时,客户节点可以直接从状态信息记录表中获取相应服务节点的运行状态,而无需管理节点在接收到的客户节点的查询请求时继续访问服务节点。将采集服务节点状态的进程和访问服务节点状态的进程分离开,通过共享状态信息记录表中的相应服务节点的状态信息,避免单次访问服务节点运行状态的网络时延问题,大大缩短了客户节点监控服务节点的运行状态的时间周期。因此,即能及时更新服务节点的运行状态,又能快捷地访问服务节点的运行状态。最后,管理节点在预定周期内没有接收到服务节点的状态信息时,则将状态信息记录表中与该服务节点相对应的运行状态设置为未知状态,从而大大缩短了更新该服务节点的运行状态所需要的时间,同时避免了在网络不稳定或服务节点异常情况下访问服务节点的运行状态失效的问题。另外,在服务节点的运行状态为未知状态时,客户节点可以监控到服务节点最后一次向管理节点发送的运行状态,有利于客户节点更多地了解到服务节点的运行状态。
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。