掌桥专利:专业的专利平台
掌桥专利
首页

一种单节点启动方法、装置、设备及介质

文献发布时间:2023-06-19 16:06:26



技术领域

本发明涉及计算机技术领域,特别涉及一种单节点启动方法、装置、设备及介质。

背景技术

目前,随着新基建时代的到来,云部署和云应用的需求也日益增长,虚拟化技术作为实现云计算的基石无处不在。虚拟化管理系统是整合底层资源的平台,是管理和监控虚拟资源的基础,因此虚拟化管理系统的性能会直接影响整个系统的性能。虚拟化系统的部署形态也直接关系着系统管理模块的性能表现。客户现场机房总是有断电、断网等不稳定因素存在,为了应对主节点异常后,系统无法正常工作提供服务的问题,出现了主备管理节点的部署形态,基本工作原理是主节点正常提供管理节点服务,备节点与主节点同步数据,当主节点异常时,备节点可以接管系统工作,形成主备双机部署形态。

由上可见,在单节点启动的过程中,如何避免出现主备节点均异常造成数据丢失的情况,提高节点运行的稳定性和安全性是本领域有待解决的问题。

发明内容

有鉴于此,本发明的目的在于提供一种单节点启动方法、装置、设备及介质,能够有效避免出现主备节点均异常造成数据丢失的情况,提高节点运行的稳定性和安全性。其具体方案如下:

第一方面,本申请公开了一种单节点启动方法,包括:

获取并在本地仲裁盘中保存当前周期内主节点对应的当前主GI元组信息和备用节点对应的当前备用GI元组信息;

判断所述本地仲裁盘中上一周期的历史主GI元组信息与所述当前主GI元组信息是否相同,并判断所述本地仲裁盘中上一周期的历史备用GI元组信息与所述当前备用GI元组信息是否相同;

若所述历史主GI元组信息与所述当前主GI元组信息不相同,则发送用于启动所述备用节点的第一启动信息至管理端,若所述历史备用GI元组信息与所述当前备用GI元组信息不相同,则发送用于启动所述主节点的第二启动信息至管理端,以便所述管理端利用接收到的启动信息控制相应的节点启动。

可选的,所述获取并在本地仲裁盘中保存当前周期内主节点对应的当前主GI元组信息和备用节点对应的当前备用GI元组信息之前,还包括:

从集中存储或分布式存储中创建逻辑单元,并建立所述主节点以及所述备用节点与所述逻辑单元之间的数据链路;

判断所述逻辑单元的状态,若所述逻辑单元的状态为可用状态,则基于逻辑单元和所述数据链路建立仲裁盘,并对所述仲裁盘进行格式化操作,以得到本地仲裁盘。

可选的,所述建立所述主节点以及所述备用节点与所述逻辑单元之间的数据链路,包括:

为所述主节点和所述备用节点分别添加相应的IP地址,以得到存储局域网络中的主IP地址和备用IP地址;

扫描存储适配器,并基于所述主IP地址和所述备用IP地址分别建立所述主节点以及所述备用节点与所述逻辑单元之间的数据链路。

可选的,所述获取并在本地仲裁盘中保存当前周期内主节点对应的当前主GI元组信息和备用节点对应的当前备用GI元组信息,包括:

确定出当前周期的时间范围,并获取当前周期内主节点对应的当前主GI元组信息和备用节点对应的当前备用GI元组信息,并记录相应的信息获取时间;

分别将所述时间范围和所述信息获取时间写入所述当前主GI元组信息和所述当前备用GI元组信息,然后将更新后的所述当前主GI元组信息和所述当前备用GI元组信息保存至本地仲裁盘。

可选的,所述判断所述本地仲裁盘中上一周期的历史主GI元组信息与所述当前主GI元组信息是否相同,并判断所述本地仲裁盘中上一周期的历史备用GI元组信息与所述当前备用GI元组信息是否相同之前,还包括:

根据所述当前周期的时间范围确定出上一周期的时间范围;

基于所述上一周期的时间范围从所述本地仲裁盘中确定出相应的所述历史主GI元组信息以及所述历史备用GI元组信息。

可选的,所述判断所述本地仲裁盘中上一周期的历史主GI元组信息与所述当前主GI元组信息是否相同,并判断所述本地仲裁盘中上一周期的历史备用GI元组信息与所述当前备用GI元组信息是否相同,包括:

判断所述本地仲裁盘中上一周期的历史主GI元组信息中的通用唯一识别码与所述当前主GI元组信息中的通用唯一识别码是否相同;

判断所述本地仲裁盘中上一周期的历史备用GI元组信息中的通用唯一识别码与所述当前备用GI元组信息中的通用唯一识别码是否相同。

可选的,所述判断所述本地仲裁盘中上一周期的历史主GI元组信息与所述当前主GI元组信息是否相同,并判断所述本地仲裁盘中上一周期的历史备用GI元组信息与所述当前备用GI元组信息是否相同之后,还包括:

若所述历史主GI元组信息与所述当前主GI元组信息以及所述历史备用GI元组信息与所述当前备用GI元组信息均不相同,则发送用于启动所述主节点或启动所述备用节点或同时启动所述主节点和单个所述备用节点的启动信息至所述管理端。

第二方面,本申请公开了一种单节点启动装置,包括:

信息获取模块,用于获取并在本地仲裁盘中保存当前周期内主节点对应的当前主GI元组信息和备用节点对应的当前备用GI元组信息;

信息判断模块,用于判断所述本地仲裁盘中上一周期的历史主GI元组信息与所述当前主GI元组信息是否相同,并判断所述本地仲裁盘中上一周期的历史备用GI元组信息与所述当前备用GI元组信息是否相同;

信息发送模块,用于若所述历史主GI元组信息与所述当前主GI元组信息不相同,则发送用于启动所述备用节点的第一启动信息至管理端,若所述历史备用GI元组信息与所述当前备用GI元组信息不相同,则发送用于启动所述主节点的第二启动信息至管理端,以便所述管理端利用接收到的启动信息控制相应的节点启动。

第三方面,本申请公开了一种电子设备,包括:

存储器,用于保存计算机程序;

处理器,用于执行所述计算机程序,以实现前述的单节点启动方法。

第四方面,本申请公开了一种计算机存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的单节点启动方法的步骤。

可见,本申请提供了一种单节点启动方法,包括获取并在本地仲裁盘中保存当前周期内主节点对应的当前主GI元组信息和备用节点对应的当前备用GI元组信息;判断所述本地仲裁盘中上一周期的历史主GI元组信息与所述当前主GI元组信息是否相同,并判断所述本地仲裁盘中上一周期的历史备用GI元组信息与所述当前备用GI元组信息是否相同;若所述历史主GI元组信息与所述当前主GI元组信息不相同,则发送用于启动所述备用节点的第一启动信息至管理端,若所述历史备用GI元组信息与所述当前备用GI元组信息不相同,则发送用于启动所述主节点的第二启动信息至管理端,以便所述管理端利用接收到的启动信息控制相应的节点启动。本申请通过周期性的获取并判断仲裁盘中的GI元组信息是否相同,从而确定出对节点重新启动的信息并发送至管理端,能够有效避免出现主备节点均异常造成数据丢失的问题,提高节点运行的稳定性和安全性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请公开的一种单节点启动方法流程图;

图2为本申请公开的一种单节点启动方法流程图;

图3为本申请公开的一种单节点启动方法具体流程图;

图4为本申请公开的一种单节点启动方法示例图;

图5为本申请公开的一种单节点启动装置结构示意图;

图6为本申请提供的一种电子设备结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在当前背景下,随着新基建时代的到来,云部署和云应用的需求也日益增长,虚拟化技术作为实现云计算的基石无处不在。虚拟化管理系统是整合底层资源的平台,是管理和监控虚拟资源的基础,因此虚拟化管理系统的性能会直接影响整个系统的性能。虚拟化系统的部署形态也直接关系着系统管理模块的性能表现。客户现场机房总是有断电、断网等不稳定因素存在,为了应对主节点异常后,系统无法正常工作提供服务的问题,出现了主备管理节点的部署形态,基本工作原理是主节点正常提供管理节点服务,备节点与主节点同步数据,当主节点异常时,备节点可以接管系统工作,形成主备双机部署形态。由上可见,在单节点启动的过程中,如何避免出现主备节点均异常造成数据丢失的问题,提高节点运行的稳定性和安全性是本领域有待解决的问题。

参见图1所示,本发明实施例公开了一种单节点启动方法,具体可以包括:

步骤S11:获取并在本地仲裁盘中保存当前周期内主节点对应的当前主GI元组信息和备用节点对应的当前备用GI元组信息。

本实施例中,在获取并在本地仲裁盘中保存当前周期内主节点对应的当前主GI元组信息和备用节点对应的当前备用GI元组信息之前,还包括:从集中存储或分布式存储中创建逻辑单元,并建立所述主节点以及所述备用节点与所述逻辑单元之间的数据链路;判断所述逻辑单元的状态,若所述逻辑单元的状态为可用状态,则基于逻辑单元和所述数据链路建立仲裁盘,并对所述仲裁盘进行格式化操作,以得到本地仲裁盘。

本实施例中,通过为所述主节点和所述备用节点分别添加相应的IP地址,以得到存储局域网络中的主IP地址和备用IP地址,然后扫描存储适配器,并基于所述主IP地址和所述备用IP地址分别建立所述主节点以及所述备用节点与所述逻辑单元之间的数据链路。

步骤S12:判断所述本地仲裁盘中上一周期的历史主GI元组信息与所述当前主GI元组信息是否相同,并判断所述本地仲裁盘中上一周期的历史备用GI元组信息与所述当前备用GI元组信息是否相同。

本实施例中,判断所述本地仲裁盘中上一周期的历史主GI元组信息中的通用唯一识别码与所述当前主GI元组信息中的通用唯一识别码是否相同,同时判断所述本地仲裁盘中上一周期的历史备用GI元组信息中的通用唯一识别码与所述当前备用GI元组信息中的通用唯一识别码是否相同。

步骤S13:若所述历史主GI元组信息与所述当前主GI元组信息不相同,则发送用于启动所述备用节点的第一启动信息至管理端,若所述历史备用GI元组信息与所述当前备用GI元组信息不相同,则发送用于启动所述主节点的第二启动信息至管理端,以便所述管理端利用接收到的启动信息控制相应的节点启动。

本实施例中,若所述历史主GI元组信息与所述当前主GI元组信息以及所述历史备用GI元组信息与所述当前备用GI元组信息均不相同,则发送用于启动所述主节点或启动所述备用节点或同时启动所述主节点和单个所述备用节点的启动信息至所述管理端。

本实施例中,获取并在本地仲裁盘中保存当前周期内主节点对应的当前主GI元组信息和备用节点对应的当前备用GI元组信息;判断所述本地仲裁盘中上一周期的历史主GI元组信息与所述当前主GI元组信息是否相同,并判断所述本地仲裁盘中上一周期的历史备用GI元组信息与所述当前备用GI元组信息是否相同;若所述历史主GI元组信息与所述当前主GI元组信息不相同,则发送用于启动所述备用节点的第一启动信息至管理端,若所述历史备用GI元组信息与所述当前备用GI元组信息不相同,则发送用于启动所述主节点的第二启动信息至管理端,以便所述管理端利用接收到的启动信息控制相应的节点启动。本申请通过周期性的获取并判断仲裁盘中的GI元组信息是否相同,从而确定出对节点重新启动的信息并发送至管理端,能够有效避免出现主备节点均异常造成数据丢失的问题,提高节点运行的稳定性和安全性。

参见图2所示,本发明实施例公开了一种单节点启动方法,具体可以包括:

步骤S21:确定出当前周期的时间范围,并获取当前周期内主节点对应的当前主GI元组信息和备用节点对应的当前备用GI元组信息,并记录相应的信息获取时间。

步骤S22:分别将所述时间范围和所述信息获取时间写入所述当前主GI元组信息和所述当前备用GI元组信息,然后将更新后的所述当前主GI元组信息和所述当前备用GI元组信息保存至本地仲裁盘。

步骤S23:判断所述本地仲裁盘中上一周期的历史主GI元组信息与所述当前主GI元组信息是否相同,并判断所述本地仲裁盘中上一周期的历史备用GI元组信息与所述当前备用GI元组信息是否相同。

本实施例中,在判断所述本地仲裁盘中上一周期的历史主GI元组信息与所述当前主GI元组信息是否相同之前,还包括:根据所述当前周期的时间范围确定出上一周期的时间范围,然后基于所述上一周期的时间范围从所述本地仲裁盘中确定出相应的所述历史主GI元组信息以及所述历史备用GI元组信息。

步骤S24:若所述历史主GI元组信息与所述当前主GI元组信息不相同,则发送用于启动所述备用节点的第一启动信息至管理端,若所述历史备用GI元组信息与所述当前备用GI元组信息不相同,则发送用于启动所述主节点的第二启动信息至管理端,以便所述管理端利用接收到的启动信息控制相应的节点启动。

本实施例中,确定出当前周期的时间范围,并获取当前周期内主节点对应的当前主GI元组信息和备用节点对应的当前备用GI元组信息,并记录相应的信息获取时间;分别将所述时间范围和所述信息获取时间写入所述当前主GI元组信息和所述当前备用GI元组信息,然后将更新后的所述当前主GI元组信息和所述当前备用GI元组信息保存至本地仲裁盘;判断所述本地仲裁盘中上一周期的历史主GI元组信息与所述当前主GI元组信息是否相同,并判断所述本地仲裁盘中上一周期的历史备用GI元组信息与所述当前备用GI元组信息是否相同;若所述历史主GI元组信息与所述当前主GI元组信息不相同,则发送用于启动所述备用节点的第一启动信息至管理端,若所述历史备用GI元组信息与所述当前备用GI元组信息不相同,则发送用于启动所述主节点的第二启动信息至管理端,以便所述管理端利用接收到的启动信息控制相应的节点启动。本申请通过周期性的获取并判断仲裁盘中的GI元组信息是否相同,从而确定出对节点重新启动的信息并发送至管理端,能够有效避免出现主备节点均异常造成数据丢失的问题,提高节点运行的稳定性和安全性。

例如,如图3所示,从集中存储或分布式存储中创建逻辑单元,并建立所述主节点以及所述备用节点与所述逻辑单元之间的数据链路,然后判断所述逻辑单元的状态,若所述逻辑单元的状态为可用状态,则基于逻辑单元和所述数据链路建立仲裁盘,并对所述仲裁盘进行格式化操作,则创建仲裁盘成功以得到本地仲裁盘;若主节点以及所述备用节点与所述逻辑单元之间的数据链路没有建立成功或所述逻辑单元的状态为不可用状态,则创建仲裁盘失败。Hearbeat(心跳程序)基于仲裁盘启动服务机制周期性的获取主节点对应的主GI元组信息和备用节点对应的备用GI元组信息,判断所述本地仲裁盘中上一周期的历史主GI元组信息中的通用唯一识别码与所述当前主GI元组信息中的通用唯一识别码是否相同,同时判断所述本地仲裁盘中上一周期的历史备用GI元组信息中的通用唯一识别码与所述当前备用GI元组信息中的通用唯一识别码是否相同,若所述历史主GI元组信息与所述当前主GI元组信息不相同(即A掉电),则发送用于启动所述备用节点的第一启动信息至管理端(即启动B),若所述历史备用GI元组信息与所述当前备用GI元组信息不相同(即B掉电),则发送用于启动所述主节点的第二启动信息至管理端(即启动A);若所述历史主GI元组信息与所述当前主GI元组信息以及所述历史备用GI元组信息与所述当前备用GI元组信息均不相同(即A、B全局掉电),则发送用于启动所述主节点或启动所述备用节点或同时启动所述主节点和单个所述备用节点的启动信息至所述管理端(即启动A或启动B或同时启动A、B)。

例如,如图4所示,例如更新周期为15秒,则将0秒-15秒作为第一个周期范围,将接受的主GI元组信息与备用GI元组信息保存至仲裁盘,然后将15秒-30秒作为第二个周期,此时0秒-15秒则为上一周期。将仲裁盘路径保存到/etc/inspur/qdisk文件中,仲裁盘将接收到的主GI元组信息中的通用唯一识别码(即01对应的UUID)保存至01对应的header中,主GI元组信息中的GI元组值保存至01对应的data存储,备用GI元组信息中的通用唯一识别码(即02对应的UUID)保存至02对应的header中,备用GI元组信息中的GI元组值保存至data至02对应的存储。

参见图5所示,本发明实施例公开了一种单节点启动装置,具体可以包括:

信息获取模块11,用于获取并在本地仲裁盘中保存当前周期内主节点对应的当前主GI元组信息和备用节点对应的当前备用GI元组信息;

信息判断模块12,用于判断所述本地仲裁盘中上一周期的历史主GI元组信息与所述当前主GI元组信息是否相同,并判断所述本地仲裁盘中上一周期的历史备用GI元组信息与所述当前备用GI元组信息是否相同;

信息发送模块13,用于若所述历史主GI元组信息与所述当前主GI元组信息不相同,则发送用于启动所述备用节点的第一启动信息至管理端,若所述历史备用GI元组信息与所述当前备用GI元组信息不相同,则发送用于启动所述主节点的第二启动信息至管理端,以便所述管理端利用接收到的启动信息控制相应的节点启动。

本实施例中,获取并在本地仲裁盘中保存当前周期内主节点对应的当前主GI元组信息和备用节点对应的当前备用GI元组信息;判断所述本地仲裁盘中上一周期的历史主GI元组信息与所述当前主GI元组信息是否相同,并判断所述本地仲裁盘中上一周期的历史备用GI元组信息与所述当前备用GI元组信息是否相同;若所述历史主GI元组信息与所述当前主GI元组信息不相同,则发送用于启动所述备用节点的第一启动信息至管理端,若所述历史备用GI元组信息与所述当前备用GI元组信息不相同,则发送用于启动所述主节点的第二启动信息至管理端,以便所述管理端利用接收到的启动信息控制相应的节点启动。本申请通过周期性的获取并判断仲裁盘中的GI元组信息是否相同,从而确定出对节点重新启动的信息并发送至管理端,能够有效避免出现主备节点均异常造成数据丢失的问题,提高节点运行的稳定性和安全性。

在一些具体实施例中,所述信息获取模块11,具体可以包括:

数据链路建立模块,用于从集中存储或分布式存储中创建逻辑单元,并建立所述主节点以及所述备用节点与所述逻辑单元之间的数据链路;

仲裁盘建立模块,用于判断所述逻辑单元的状态,若所述逻辑单元的状态为可用状态,则基于逻辑单元和所述数据链路建立仲裁盘,并对所述仲裁盘进行格式化操作,以得到本地仲裁盘。

在一些具体实施例中,所述信息获取模块11,具体可以包括:

IP地址添加模块,用于为所述主节点和所述备用节点分别添加相应的IP地址,以得到存储局域网络中的主IP地址和备用IP地址;

存储适配器扫描模块,用于扫描存储适配器,并基于所述主IP地址和所述备用IP地址分别建立所述主节点以及所述备用节点与所述逻辑单元之间的数据链路。

在一些具体实施例中,所述信息判断模块12,具体可以包括:

信息获取时间记录模块,用于确定出当前周期的时间范围,并获取当前周期内主节点对应的当前主GI元组信息和备用节点对应的当前备用GI元组信息,并记录相应的信息获取时间;

元组信息保存模块,用于分别将所述时间范围和所述信息获取时间写入所述当前主GI元组信息和所述当前备用GI元组信息,然后将更新后的所述当前主GI元组信息和所述当前备用GI元组信息保存至本地仲裁盘。

在一些具体实施例中,所述信息判断模块12,具体可以包括:

时间范围确定模块,用于根据所述当前周期的时间范围确定出上一周期的时间范围;

历史信息确定模块,用于基于所述上一周期的时间范围从所述本地仲裁盘中确定出相应的所述历史主GI元组信息以及所述历史备用GI元组信息。

在一些具体实施例中,所述信息判断模块12,具体可以包括:

主GI元组信息判断模块,用于判断所述本地仲裁盘中上一周期的历史主GI元组信息中的通用唯一识别码与所述当前主GI元组信息中的通用唯一识别码是否相同;

备用GI元组信息判断模块,用于判断所述本地仲裁盘中上一周期的历史备用GI元组信息中的通用唯一识别码与所述当前备用GI元组信息中的通用唯一识别码是否相同。

在一些具体实施例中,所述信息发送模块13,具体可以包括:

启动信息发送模块,用于若所述历史主GI元组信息与所述当前主GI元组信息以及所述历史备用GI元组信息与所述当前备用GI元组信息均不相同,则发送用于启动所述主节点或启动所述备用节点或同时启动所述主节点和单个所述备用节点的启动信息至所述管理端。

图6为本申请实施例提供的一种电子设备的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的由电子设备执行的单节点启动方法中的相关步骤。

本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。

另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。

其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中数据223的运算与处理,其可以是Windows、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的单节点启动方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括单节点启动设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

进一步的,本申请实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的单节点启动方法步骤。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种单节点启动方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

技术分类

06120114702404