一种基于SSH对服务器进行检测的方法和装置转让专利

申请号 : CN202010655264.6

文献号 : CN111541591B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 叶志钢王化民张本军孙昌燕曾伟王赟

申请人 : 武汉绿色网络信息服务有限责任公司

摘要 :

本发明涉及服务器硬件检测技术领域,提供了一种基于SSH对服务器进行检测的方法和装置,方法包括:将各待检测服务器的主机名和IP地址保存到参数文件中;在利用SSH进行集群管理之前,逐行读取参数文件中的参数,并基于读取的IP地址对各待检测服务器执行SSH检测命令;实时监控每次SSH执行是否超时,如果超时则修改参数文件中对应的IP地址为不可达IP,并将对应的主机名和IP地址添加到故障机器列表中。本发明在不改变SSH的前提下,利用线程的异步原理与黑名单组合的方法来主动检测SSH卡死故障,可辅助管理节点在未知异常情况下正常管理失败节点,而不会出现SSH永久性卡死,增强了集群的健壮性,且维护成本低。

权利要求 :

1.一种基于SSH对服务器进行检测的方法,其特征在于,包括:

将各待检测服务器的主机名和对应的IP地址保存到参数文件中;其中,每个待检测服务器对应的参数在所述参数文件中占一行;

在利用SSH进行集群管理之前,逐行读取所述参数文件中的参数,并基于每个读取的IP地址分别执行SSH检测命令,以便对各待检测服务器进行故障检测;

实时监控每次SSH执行是否超时,如果超时则修改所述参数文件中对应的IP地址为不可达IP,并将对应的主机名和IP地址添加到故障机器列表中;

则在利用SSH进行集群管理时,逐行读取修改后参数文件中的IP进行服务器管理,当读取至不可达IP时返回失败状态,并继续读取下一个IP进行服务器管理。

2.根据权利要求1所述的基于SSH对服务器进行检测的方法,其特征在于,在所述逐行读取所述参数文件中的参数之前,所述方法还包括:判断故障机器列表是否存在;

如果不存在,说明各服务器均正常,则逐行读取所述参数文件中的参数;

如果存在,说明已有服务器出现故障,则取所述参数文件与所述故障机器列表的差集,并逐行读取所述差集中的参数。

3.根据权利要求1所述的基于SSH对服务器进行检测的方法,其特征在于,在所述逐行读取所述参数文件中的参数之前,所述方法还包括:判断故障机器列表是否为空;

如果为空,说明各服务器均正常,则逐行读取所述参数文件中的参数;

如果不为空,说明已有服务器出现故障,则取所述参数文件与所述故障机器列表的差集,并逐行读取所述差集中的参数。

4.根据权利要求1所述的基于SSH对服务器进行检测的方法,其特征在于,在所述将对应的主机名和IP地址添加到故障机器列表中之后,所述方法还包括:每隔预设时间,基于所述故障机器列表中的IP地址执行SSH检测命令,并监控SSH执行是否超时;如果未超时,则恢复所述参数文件中主机名对应的不可达IP为正常IP地址,并将该IP地址和对应的主机名从所述故障机器列表中删除。

5.根据权利要求1所述的基于SSH对服务器进行检测的方法,其特征在于,当集群进行扩容或缩容后,修改所述参数文件中的参数;具体为:当集群进行扩容时,将新增服务器的主机名和对应的IP地址逐行添加到所述参数文件中;

当集群进行缩容时,将新删服务器的主机名和对应的IP地址从所述参数文件中删除。

6.一种基于SSH对服务器进行检测的装置,其特征在于,包括存储模块、故障检测模块、故障监控模块和集群管理模块;

所述存储模块用于将各待检测服务器的主机名和对应的IP地址保存到参数文件中;其中,每个待检测服务器对应的参数在所述参数文件中占一行;

所述故障检测模块用于在利用SSH进行集群管理之前,逐行读取所述参数文件中的参数,并基于每个读取的IP地址分别执行SSH检测命令,以便对各待检测服务器进行故障检测;

所述故障监控模块用于实时监控每次SSH执行是否超时,如果超时则修改所述参数文件中对应的IP地址为不可达IP,并将对应的主机名和IP地址添加到故障机器列表中;

所述集群管理模块用于利用SSH进行集群管理时,逐行读取修改后参数文件中的IP进行服务器管理,当读取至不可达IP时返回失败状态,并继续读取下一个IP进行服务器管理。

7.根据权利要求6所述的基于SSH对服务器进行检测的装置,其特征在于,还包括故障恢复检测模块,用于每隔预设时间基于所述故障机器列表中的IP地址执行SSH检测命令,并监控SSH执行是否超时;如果未超时,则恢复所述参数文件中主机名对应的不可达IP为正常IP地址,并将该IP地址和对应的主机名从所述故障机器列表中删除。

8.一种基于SSH对服务器进行检测的装置,其特征在于,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成权利要求1-5任一所述的基于SSH对服务器进行检测的方法。

说明书 :

一种基于SSH对服务器进行检测的方法和装置

技术领域

[0001] 本发明涉及服务器硬件检测技术领域,提供了一种基于SSH对服务器进行检测的方法和装置。

背景技术

[0002] 安全外壳协议(Secure Shell,简写为SSH)是建立在应用层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性,利用SSH协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台,现如今几乎所有UNIX平台,包括HP-UX、Linux、AIX、Solaris、Digital UNIX、Irix,以及其他平台都可运行SSH。
[0003] 当前,管理节点主要通过SSH对集群中各服务器节点进行管理和维护,但由于硬件的故障,多次出现能ping通但是SSH卡死的情况,导致管理节点不能正常管理已经失败的服务器节点。具体来讲,SSH的登录过程主要分为5个阶段:版本号协商阶段、密钥和算法协商阶段、认证阶段、会话请求阶段和会话交互阶段;当某个服务器出现故障时,会导致SSH执行过程中在认证阶段之前卡死,而且是无期限卡死,无法继续向下执行。该服务器节点本来可以ping通,但故障后就无法再通过SSH管理和维护,导致管理节点无法正常操作该服务器,也无法继续管理操作后续剩余的服务器。
[0004] 为解决上述问题,传统的方法是拿到openssh源代码,通过分析卡死之后的代码定位卡死原因,并修改卡死之后的代码,使其在该故障的场景下能有失败返回,而非永久性卡死。但这种传统解决方法存在一定的局限性:一是门槛高、开发周期长,需要对SSH协议非常熟悉,且要有丰富的C语言编程经验;二是维护成本高,因为编译新版本ssh代码后需全集群升级openssh源代码。重要的是,当集群升级高版本openssh源代码后,相当于维护了私有版本的openssh,这在自建集群下还能接受,但现实情况是很多项目都是客户提供云计算资源,而客户通常是不允许我们将云资源自带的ssh服务换成我方私有ssh版本的。
[0005] 鉴于此,克服上述现有技术所存在的缺陷是本技术领域亟待解决的问题。

发明内容

[0006] 本发明需要解决的技术问题是:
[0007] 当前集群主要通过SSH对各服务器节点进行管理和维护,由于硬件的故障,容易出现能ping通但是SSH永久性卡死的情况,导致管理节点不能正常管理已经失败的服务器节点;而传统解决方法存在一定的局限性,如门槛高、开发周期长、维护成本高,且需要修改ssh版本。
[0008] 本发明通过如下技术方案解决上述问题:
[0009] 第一方面,本发明提供了一种基于SSH对服务器进行检测的方法,包括:
[0010] 将各待检测服务器的主机名和对应的IP地址保存到参数文件中;其中,每个待检测服务器对应的参数在所述参数文件中占一行;
[0011] 在利用SSH进行集群管理之前,逐行读取所述参数文件中的参数,并基于每个读取的IP地址分别执行SSH检测命令,以便对各待检测服务器进行故障检测;
[0012] 实时监控每次SSH执行是否超时,如果超时则修改所述参数文件中对应的IP地址为不可达IP,并将对应的主机名和IP地址添加到故障机器列表中;
[0013] 则在利用SSH进行集群管理时,逐行读取修改后参数文件中的IP进行服务器管理,当读取至不可达IP时返回失败状态,并继续读取下一个IP进行服务器管理。
[0014] 优选地,在所述逐行读取所述参数文件中的参数之前,所述方法还包括:
[0015] 判断故障机器列表是否存在;
[0016] 如果不存在,说明各服务器均正常,则逐行读取所述参数文件中的参数;
[0017] 如果存在,说明已有服务器出现故障,则取所述参数文件与所述故障机器列表的差集,并逐行读取所述差集中的参数。
[0018] 优选地,在所述逐行读取所述参数文件中的参数之前,所述方法还包括:
[0019] 判断故障机器列表是否为空;
[0020] 如果为空,说明各服务器均正常,则逐行读取所述参数文件中的参数;
[0021] 如果不为空,说明已有服务器出现故障,则取所述参数文件与所述故障机器列表的差集,并逐行读取所述差集中的参数。
[0022] 优选地,在所述将对应的主机名和IP地址添加到故障机器列表中之后,所述方法还包括:
[0023] 每隔预设时间,基于所述故障机器列表中的IP地址执行SSH检测命令,并监控SSH执行是否超时;如果未超时,则恢复所述参数文件中主机名对应的不可达IP为正常IP地址,并将该IP地址和对应的主机名从所述故障机器列表中删除。
[0024] 优选地,当集群进行扩容或缩容后,修改所述参数文件中的参数;具体为:
[0025] 当集群进行扩容时,将新增服务器的主机名和对应的IP地址逐行添加到所述参数文件中;
[0026] 当集群进行缩容时,将新删服务器的主机名和对应的IP地址从所述参数文件中删除。
[0027] 第二方面,本发明还提供了一种基于SSH对服务器进行检测的装置,用于实现第一方面所述的方法,包括存储模块、故障检测模块、故障监控模块和集群管理模块;
[0028] 所述存储模块用于将各待检测服务器的主机名和对应的IP地址保存到参数文件中;其中,每个待检测服务器对应的参数在所述参数文件中占一行;
[0029] 所述故障检测模块用于在利用SSH进行集群管理之前,逐行读取所述参数文件中的参数,并基于每个读取的IP地址分别执行SSH检测命令,以便对各待检测服务器进行故障检测;
[0030] 所述故障监控模块用于实时监控每次SSH执行是否超时,如果超时则修改所述参数文件中对应的IP地址为不可达IP,并将对应的主机名和IP地址添加到故障机器列表中;
[0031] 所述集群管理模块用于利用SSH进行集群管理时,逐行读取修改后参数文件中的IP进行服务器管理,当读取至不可达IP时返回失败状态,并继续读取下一个IP进行服务器管理。
[0032] 优选地,还包括故障恢复检测模块,用于每隔预设时间基于所述故障机器列表中的IP地址执行SSH检测命令,并监控SSH执行是否超时;如果未超时,则恢复所述参数文件中主机名对应的不可达IP为正常IP地址,并将该IP地址和对应的主机名从所述故障机器列表中删除。
[0033] 第三方面,本发明还提供了另一种基于SSH对服务器进行检测的装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成第一方面所述的基于SSH对服务器进行检测的方法。
[0034] 本发明的有益效果是:
[0035] 本发明在利用SSH进行集群管理之前,先基于各服务器的IP地址分别执行SSH检测命令,监控每次执行是否超时,如果超时证明对应的服务器故障,则将参数文件中对应的IP修改为不可达IP,并将对应的IP地址添加到故障机器列表中进行标记。这实际上是在不改变SSH的前提下增加异步异常监控手段,利用线程的异步原理与黑名单组合的方法来主动检测SSH卡死故障,可辅助管理节点在未知异常情况下正常管理失败的服务器节点,而不会出现SSH永久性卡死,增强了集群的健壮性,且维护成本低。

附图说明

[0036] 为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0037] 图1为本发明实施例提供的一种基于SSH对服务器进行检测的方法流程图;
[0038] 图2为本发明实施例提供的一种基于SSH对服务器进行检测的完整线程图;
[0039] 图3为本发明实施例提供的一种基于SSH对服务器进行检测的装置结构图;
[0040] 图4为本发明实施例提供的另一种基于SSH对服务器进行检测的装置架构图。

具体实施方式

[0041] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0042] 本发明将通过以下具体实施例,展开阐述如何在不同应用场景中,克服相关技术问题。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面就参考附图和实施例结合来详细说明本发明。
[0043] 实施例1:
[0044] 为了避免硬件故障导致的SSH永久性卡死,使管理节点正常管理已经失败的服务器节点,本发明实施例提供了一种基于SSH对服务器进行检测的方法,其实现机理是在现有SSH检测的基础上增加异步的故障监控线程,来解决集群卡死的问题,整个检测过程主要包括故障检测线程和故障监控线程。
[0045] 如图1所示,本发明实施例提供的检测方法主要包括以下步骤:
[0046] 步骤10,将各待检测服务器的主机名和对应的IP地址保存到参数文件中;其中,每个待检测服务器对应的参数在所述参数文件中占一行。
[0047] 这里预先定义一个参数文件/etc/hosts,在集群软件安装并正常运行后,即可将集群中各待检测服务器的主机名和对应的IP地址保存到参数文件/etc/hosts中。当集群进行扩容或缩容后,则修改所述参数文件/etc/hosts中的参数;具体为:当集群进行扩容时,将新增服务器的主机名和对应的IP地址逐行添加到所述参数文件/etc/hosts中;当集群进行缩容时,将新删服务器的主机名和对应的IP地址从所述参数文件/etc/hosts中删除。
[0048] 步骤20,在利用SSH进行集群管理之前,逐行读取所述参数文件中的参数,并基于每个读取的IP地址分别执行SSH检测命令,以便对各待检测服务器进行故障检测。
[0049] 参考图2,启动故障检测线程gc_ping.sh,即可逐行读取所述参数文件/etc/hosts中的参数,进而依次基于每个IP执行SSH检测命令,以便对每个待检测服务器进行故障检测。所述故障检测线程gc_ping.sh为常驻线程,可以无限次数的逐行读取所述参数文件/etc/hosts中的参数,并逐行执行SSH检测命令。其中,SSH就是执行了一个远程命令,命令格式为:ssh 被检测IP “命令”,即图2中给出的ssh 服务器ip “hostname”。
[0050] 步骤30,实时监控每次SSH执行是否超时,如果超时则修改所述参数文件中对应的IP地址为不可达IP,并将对应的主机名和IP地址添加到故障机器列表中。
[0051] 继续参考图2,启动异步的故障监控线程gc_sdw.sh,即可实时监控所述故障检测线程gc_ping.sh在每次执行SSH时是否有超时情况;其中,所述故障监控线程gc_sdw.sh可通过查看所述故障检测线程gc_ping.sh的启动时间,来计算出所述故障检测线程gc_ping.sh已经运行的时长,进而判断是否超时。
[0052] 假设在所述故障检测线程gc_ping.sh检测某一服务器A的过程中,监控到所述故障检测线程gc_ping.sh超时,即从所述参数文件/etc/hosts中读取出服务器A对应的IP地址并执行SSH时,SSH执行时间超过预设时间阀值还没执行成功,则说明SSH很可能已经在执行过程中被卡死,可证明服务器A存在异常,为故障服务器。此时,超时情况会被所述故障监控线程gc_sdw.sh发现,所述故障监控线程gc_sdw.sh继而进入异常处理流程,具体如下:修改该故障服务器A在所述参数文件/etc/hosts中的IP地址为不可达IP,例如119.119.119.119,以此作为该故障服务器A的失败标识;同时生成故障机器列表badhosts,并将该故障服务器A对应的主机名和IP地址添加到故障机器列表badhosts中。如果服务器A对应的SSH执行能正常返回值,即不存在超时情况,说明服务器A为正常服务器,不存在故障。
[0053] 其中,所述故障监控线程gc_sdw.sh也是常驻线程,可以无限次监控所述故障检测线程gc_ping.sh是否有超时情况。在进行超时判断时,预设时间阈值的具体取值可根据经验值来设定,例如可根据多次SSH执行时间的平均值、中值或众数值来确定,但并不唯一限定;本发明实施例中具体设置为120秒,执行超过120秒即认为SSH已经卡死,对应的服务器出现故障。
[0054] 本发明实施例提供的上述检测方法是在集群管理过程中增加了异步的监控线程,实现故障检测。通常,集群自身也会有服务器检测功能,但集群自带的检测方式是同步方式,检测一旦被卡死,剩余未检测的服务器节点无法继续检测,而且永远不会退出,也就永远得不到检测结果;而通过本发明实施例提供的上述检测手段,检测一旦超时卡死可以被故障监控线程及时发现,标记失败,剩余未检测的服务器节点可继续检测。
[0055] 此后,在利用SSH进行集群管理时,逐行读取修改后参数文件中的IP进行服务器管理,当读取至不可达IP时返回失败状态,并继续读取下一个IP进行服务器管理。具体地,当管理节点通过SSH和主机名管理服务器时,会逐行读取所述参数文件/etc/hosts中各服务器的IP地址来执行SSH;当读取到故障服务器所在行时,由于对应的IP地址已经被所述故障监控线程gc_sdw.sh修改为不可达IP,因此SSH不再会因为不可预知的故障卡死,管理节点可以直接返回失败状态,并将对应的服务器快速标记为失败节点,然后继续管理下一个服务器。
[0056] 进一步地,考虑到集群稳定性,已故障服务器恢复后,为防止频繁故障引发的频繁跨节点数据恢复,通常不会将恢复后的服务器自动加入集群,而是需要充分进行磁盘、网络3*24小时压力测试稳定后,再修改对应不可达IP为可达,然后通过集群恢复命令重新启用服务器。因此,除所述故障检测线程和所述故障监控线程以外,还可增加一个故障恢复检测线程,如图2所示,具体执行过程如下:
[0057] 启动所述故障恢复检测线程gc_recover.sh,每隔预设时间(例如5分钟)便重新检测所述故障机器列表badhosts中的网络是否可达,即基于所述故障机器列表badhosts中的IP地址再次执行SSH检测命令(ssh 服务器ip “hostname”),并监控SSH执行是否超时;
[0058] 如果未超时,即对应的SSH执行能正常返回值,证明故障服务器已经恢复正常,网络可达,则恢复所述参数文件/etc/hosts中主机名对应的不可达IP为正常IP地址,并在本次故障恢复检测完成后,将该IP地址和对应的主机名从所述故障机器列表badhosts中删除;如果仍超时,证明故障服务器仍然处于故障状态,网络仍然不可达,则不做任何操作。
[0059] 进一步地,所述故障检测线程会按设定的周期不断进行服务器检测,当下一次故障检测线程再次运行到失败节点时,如果发现该IP已经有失败标识,可以直接跳过,不进入异常处理流程。具体过程如下:
[0060] 每次启动所述故障检测线程gc_ping.sh之后,先判断故障机器列表badhosts是否存在;如果badhosts不存在,说明各服务器均正常,则逐行读取所述参数文件/etc/hosts中的参数,以便检测全部服务器;如果badhosts存在,说明之前的故障检测中已有服务器出现故障,则取所述参数文件/etc/hosts与所述故障机器列表badhosts的差集,并逐行读取所述差集中的参数,避免对之前已经检测并标记失败的服务器进行重复检测。
[0061] 或者,每次启动所述故障检测线程gc_ping.sh之后,先判断故障机器列表badhosts是否为空;如果badhosts为空,说明各服务器均正常,则逐行读取所述参数文件/etc/hosts中的参数,以便检测全部服务器;如果badhosts不为空,说明之前的故障检测中已有服务器出现故障,则取所述参数文件/etc/hosts与所述故障机器列表badhosts的差集,并逐行读取所述差集中的参数,避免对之前已经检测并标记失败的服务器进行重复检测。
[0062] 综上所述,本发明实施例提供的上述服务器检测方法具有以下优势:在不改变SSH的前提下,在集群管理过程中增加了异步的监控线程,即在利用SSH进行集群管理之前,利用线程的异步原理与黑名单组合的方法来主动检测SSH卡死故障,并快速标记失败故障服务器,可辅助管理节点在未知异常情况下正常管理失败的服务器节点,进而继续管理后续节点,而不会出现SSH永久性卡死,增强了集群的健壮性,且维护成本低。
[0063] 实施例2:
[0064] 在上述实施例1提供的一种基于SSH对服务器进行检测的方法的基础上,本发明实施例进一步提供了一种基于SSH对服务器进行检测的装置,可用于实现实施例1中所述的方法。
[0065] 如图3所示,本发明实施例提供的检测装置主要包括存储模块、故障检测模块、故障监控模块、故障恢复检测模块和集群管理模块。
[0066] 所述存储模块用于将各待检测服务器的主机名和对应的IP地址保存到参数文件中;其中,每个待检测服务器对应的参数在所述参数文件中占一行。所述存储模块可预先定义一个参数文件/etc/hosts,在集群软件安装并正常运行后,即可将集群中各待检测服务器的主机名和对应的IP地址保存到参数文件/etc/hosts中。当集群进行扩容或缩容后,所述存储模块则修改所述参数文件/etc/hosts中的参数;具体为:当集群进行扩容时,所述存储模块将新增服务器的主机名和对应的IP地址逐行添加到所述参数文件/etc/hosts中;当集群进行缩容时,所述存储模块将新删服务器的主机名和对应的IP地址从所述参数文件/etc/hosts中删除。
[0067] 所述故障检测模块用于执行实施例1中的故障检测线程gc_ping.sh,即,在利用SSH进行集群管理之前,逐行读取所述参数文件中的参数,并基于每个读取的IP地址分别执行SSH检测命令,以便对各待检测服务器进行故障检测。其中,所述故障检测模块每次启动所述故障检测线程gc_ping.sh之后,先判断故障机器列表badhosts是否存在或者是否为空;如果badhosts不存在或者badhosts为空,说明各服务器均正常,则逐行读取所述参数文件/etc/hosts中的参数,以便检测全部服务器;如果badhosts存在或者badhosts不为空,说明之前的故障检测中已有服务器出现故障,则取所述参数文件/etc/hosts与所述故障机器列表badhosts的差集,并逐行读取所述差集中的参数,避免对之前已经检测并标记失败的服务器进行重复检测。
[0068] 所述故障监控模块用于执行实施例1中的故障监控线程gc_sdw.sh,即实时监控所述故障检测模块中每次SSH执行是否超时,如果超时则修改所述参数文件中对应的IP地址为不可达IP,并将对应的主机名和IP地址添加到故障机器列表中,所述故障机器列表也可设置在所述存储模块中。其中,所述故障监控模块可通过查看所述故障检测模块的启动时间,来计算出所述故障检测线程gc_ping.sh已经运行的时长,进而判断是否超时。
[0069] 进一步地,考虑到集群稳定性,已故障服务器恢复后,为防止频繁故障引发的频繁跨节点数据恢复,通常不会将恢复后的服务器自动加入集群,而是需要充分测试稳定后,再手动修改对应不可达IP为可达,然后通过集群恢复命令重新启用服务器。因此,所述检测装置还包括故障恢复检测模块,如图3所示,用于执行实施例1中的故障恢复检测线程gc_recover.sh,即,每隔预设时间基于所述故障机器列表中的IP地址执行SSH检测命令,并监控SSH执行是否超时;如果未超时,则恢复所述参数文件中主机名对应的不可达IP为正常IP地址,并将该IP地址和对应的主机名从所述故障机器列表中删除。
[0070] 当然,整个装置还包括集群管理模块,用于利用SSH进行集群管理,即通过SSH和主机名管理服务器,具体为:逐行读取修改后参数文件中各服务器的IP地址来执行SSH,当读取至不可达IP时,直接返回失败状态,并将对应的服务器标记为失败节点,然后继续读取下一个IP以便管理下一个服务器。
[0071] 通过本发明实施例提供的上述检测装置,可在利用SSH进行集群管理之前,利用线程的异步原理与黑名单组合的方法来主动检测SSH卡死故障,并快速标记失败故障服务器,可辅助管理节点在未知异常情况下正常管理失败的服务器节点,进而继续管理后续节点,而不会出现SSH永久性卡死,增强了集群的健壮性,且维护成本低。
[0072] 实施例3:
[0073] 在上述实施例1提供的基于SSH对服务器进行检测的方法的基础上,本发明还提供了另一种可用于实现上述方法的基于SSH对服务器进行检测的装置,如图4所示,是本发明实施例的装置架构示意图。本实施例的基于SSH对服务器进行检测的装置包括一个或多个处理器21以及存储器22。其中,图4中以一个处理器21为例。
[0074] 所述处理器21和所述存储器22可以通过总线或者其他方式连接,图4中以通过总线连接为例。
[0075] 所述存储器22作为一种基于SSH对服务器进行检测的方法非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1中的基于SSH对服务器进行检测的方法。所述处理器21通过运行存储在所述存储器22中的非易失性软件程序、指令以及模块,从而执行基于SSH对服务器进行检测的装置的各种功能应用以及数据处理,即实现实施例1的基于SSH对服务器进行检测的方法。
[0076] 所述存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,所述存储器22可选包括相对于所述处理器21远程设置的存储器,这些远程存储器可以通过网络连接至所述处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0077] 所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的基于SSH对服务器进行检测的方法,例如,执行以上描述的图1所示的各个步骤。
[0078] 本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。
[0079] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。