分布式存储系统在线升级方法、装置、设备及存储介质与流程

文档序号:15845468发布日期:2018-11-07 08:57阅读:317来源:国知局
分布式存储系统在线升级方法、装置、设备及存储介质与流程

本发明涉及数据存储领域,特别涉及一种分布式存储系统在线升级方法、装置、设备及一种可读存储介质。

背景技术

随着信息技术的不断发展,数据作为一种宝贵资源逐渐被人们重视,如何快速处理数据资源并得到预期结果成为由资源到资产转变的关键问题之一。人们在工作生活中的各种活动都会产生数据,收集这些数据再通过分析处理能够获得很多有用信息,实现由资源到资产的转化,从而催化了大数据、高性能计算的高速发展。数据存储作为数据资源的核心要素之一也迎来了高速发展的时期。

分布式网络存储系统采用可扩展的系统结构,不但提高了系统的可靠性、可用性和存取效率,还易于扩展,从而被越来越多的企业单位接受认可。分布式存储系统一般有1到n个节点构成,用以提供高性能、海量数据的存储。

随着技术的不断创新、突破,以及对bug的修改,已部署的分布式存储系统需要不定期的升级系统。系统升级有两种方式,其一为离线升级,即停止所有集群服务后,对分布式存储系统做版本升级,在升级过程中,客户业务中断,对正常业务运行影响较大。其二为在线升级,在线升级即在升级过程中客户业务不中断,应用较为广泛。

不论在线升级或者离线升级,在升级过程中经常会出现异常以及升级失败的情况,而目前的升级方法对于这种情况没有统一有效的处理方法,一般是由技术人员发现升级异常后手动进行设置排查。

在分布式存储系统中,在线升级的重点在于如何保证升级过程中存储服务持续可用,以及升级过程中的异常处理。

因此,在分布式存储系统的升级过程中,如何在保证升级过程中存储服务持续可用的前提下,对升级过程中的异常状况进行完整有效的处理,是本领域技术人员需要解决的技术问题。



技术实现要素:

本发明的目的是提供一种分布式存储系统在线升级方法,该方法对各节点逐个进行版本升级,可以保证升级过程中存储服务的持续可用,并根据在升级过程出现各种异常时进行自动化处理,可以在应用场景下实现分布式存储系统的平滑升级,提高用户体验;本发明的另一目的是提供一种分布式存储系统在线升级装置器、设备及可读存储介质。

为解决上述技术问题,本发明提供一种分布式存储系统在线升级方法,包括:

对获取的待升级节点ip进行节点信息采集,并将采集得到的节点信息进行备份存储;

逐个对所述待升级节点进行版本升级,并对升级后的各节点进行集群状态查询;

当升级失败时,根据预先备份的节点信息对失败节点进行节点信息恢复,并对升级失败信息进行记录,结束当前升级;其中,所述升级失败包括:安装失败以及集群状态异常;所述升级失败信息包括:失败节点、错误原因以及升级进度。

优选地,所述待升级节点ip的获取方法包括:

获取系统中集群信息;

根据所述集群信息进行节点ip解析,得到节点ip;

对所述节点ip进行去重处理,得到待升级节点ip。

优选地,所述逐个对所述待升级节点进行版本升级前还包括:

对集群当前容量使用率进行检测;

若当前容量使用率低于阈值,逐个对所述待升级节点进行版本升级;

若当前容量使用率不低于阈值,结束当前升级。

优选地,所述分布式存储系统在线升级方法还包括:

当逐个对所述待升级节点进行版本升级时,将实时节点升级进度写入进度文件;

根据所述进度文件获取当前升级进度信息,并将得到的当前升级进度信息输出至终端。

优选地,所述将得到的当前升级进度信息输出至终端包括:

将得到的当前升级进度信息进行进度条形式转换,并将转换得到的升级进度条输出至终端。

优选地,所述分布式存储系统在线升级方法还包括:

当升级失败时,输出升级失败情况对应的提示信息。

优选地,所述分布式存储系统在线升级方法还包括:

当升级失败时,获取当前升级进程中已升级节点ip并记录,得到黑名单;

在下次升级前,对所述黑名单中记录的节点进行遍历,在待升级节点中去除黑名单中节点,得到简化升级节点;

则逐个对所述待升级节点进行版本升级具体为:逐个对所述简化升级节点进行版本升级。

本发明公开一种分布式存储系统在线升级装置,包括:

信息采集单元,用于对获取的待升级节点ip进行节点信息采集,并将采集得到的节点信息进行备份存储;

版本升级单元,用于逐个对所述待升级节点进行版本升级,并对升级后的各节点进行集群状态查询;

失败处理单元,用于当升级失败时,根据预先备份的节点信息对失败节点进行节点信息恢复,并对升级失败信息进行记录,结束当前升级;其中,所述升级失败包括:安装失败以及集群状态异常;所述升级失败信息包括:失败节点、错误原因以及升级进度。

本发明公开一种分布式存储系统在线升级设备,包括:

存储器,用于存储程序;

处理器,用于执行所述程序时实现所述卷积计算方法的步骤。

本发明公开一种可读存储介质,所述可读存储介质上存储有程序,所述程序被处理器执行时实现所述分布式存储系统在线升级方法的步骤。

本发明所提供的分布式存储系统在线升级方法,通过对获取的待升级节点ip进行节点信息采集,并将采集得到的节点信息进行备份存储,以便于升级失败时集群状态的快速恢复,保证正常的功能响应。逐个对待升级节点进行版本升级,对各节点逐个进行版本升级,集群中只有单个节点的业务功能被暂停,由于分布式存储系统数据的冗余性分布规则,单个节点功能暂停时可以通过其它节点实现其业务功能,对整个集群的业务功能的响应基本无影响,可以保证升级过程中存储服务的持续可用,并对升级后的各节点进行集群状态查询,以避免升级包安装成功但无法正常运行的情况;当升级失败时,根据预先备份的节点信息对失败节点进行节点信息恢复,以恢复节点的功能,保证即使在升级失败后也可以保证集群的正常运行,避免了当前升级失败时导致的集群功能紊乱,可以对升级过程中的异常状况进行有效的处理;并对升级失败信息进行记录,记录的失败信息技术人员可以查看并根据其记载的内容对集群或者升级过程进行修复。

本发明还提供了一种分布式存储系统在线升级装置、设备及可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

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

图1为本发明实施例提供的分布式存储系统在线升级方法的流程图;

图2为本发明实施例提供的分布式存储系统在线升级装置的结构框图;

图3为本发明实施例提供的分布式存储系统在线升级设备的结构示意图。

具体实施方式

本发明的核心是提供一种分布式存储系统在线升级方法,该方法对各节点逐个进行版本升级,可以保证升级过程中存储服务的持续可用,并根据在升级过程出现各种异常时进行自动化处理,可以在应用场景下实现分布式存储系统的平滑升级,提高用户体验;本发明的另一核心是提供一种分布式存储系统在线升级装置、设备及可读存储介质。

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

请参考图1,图1为本实施例提供的分布式存储系统在线升级方法的流程图;该方法可以包括:

步骤s110、对获取的待升级节点ip进行节点信息采集,并将采集得到的节点信息进行备份存储。

在待升级节点ip运行信息采集脚本进行节点信息采集,备份集群环境信息,主要包括集群中驱动版本信息、服务配置文件、硬件信息等。若升级失败,可以根据采集到的信息对集群环境进行恢复,以保障集群的正常工作。

对待升级节点ip的获取方法不做限定,可以参照现有的获取方法获取系统配置信息,对配置信息中节点信息进行筛选,并除去不相关节点后的到待升级节点。一般配置信息中会包含大量不相关信息,在进行节点信息获取时会大大增加筛选计算量,也会增加出错概率,优选地,待升级节点ip的获取的步骤具体为:

步骤一:获取系统中集群信息;

步骤二:根据集群信息进行节点ip解析,得到节点ip;

步骤三:对节点ip进行去重处理,得到待升级节点ip。

集群信息中冗余信息较少,可以比较容易地筛选出节点ip,获取的节点ip中可能出现重复的情况,对节点ip进行去重处理后即可得到待升级的节点ip信息。

步骤s120、逐个对待升级节点进行版本升级,并对升级后的各节点进行集群状态查询。

对待升级节点进行版本升级的过程主要包括将升级包的内容加载到被升级节点上,升级完节点之后,用reboot重启该节点,在此对具体升级流程不做限定,可以参照现有技术。

升级过程为对节点进行逐个升级的过程,即在节点a完成升级后进行节点b的升级,以此类推。通过节点逐个升级过程,可以确保分布式存储系统可以在升级过程中持续提供存储服务,不中断客户前端业务。具体地,节点升级完成的判定方式不做限定,可以在每个节点安装升级包后进行集群状态的检测,等待分布式存储集群状态恢复为health_ok,则判定当前集群更新完成,进行下一个节点的升级。在此仅以上述判定方式为例,其它判定方式在此不再赘述。

对升级后的各节点进行集群状态查询,例如将升级包安装至节点a后,对运行状态进行查询,以避免升级包安装成功但无法正常运行的情况,用于及时发现节点升级失败,避免隐患的产生。

步骤s130、当升级失败时,根据预先备份的节点信息对失败节点进行节点信息恢复,并对升级失败信息进行记录,结束当前升级。

升级失败包括升级包安装失败、升级包安装成功后集群状态为异常等情况,其中,升级包安装成功后集群状态为异常的判别方式不做限定,比如可以在节点升级包安装完成时进行集群状态查询,判断是否为health_ok状态,若在安装完成超过20分钟后集群仍然没有恢复到health_ok状态,则判定集群状态异常。

不论为何种错误情况,节点均无法完整实现其原有功能,此时将预先备份的节点信息恢复至失败节点,恢复集群环境,结束当前升级。此时集群中版本升级成功的节点运行新版本,失败节点以及未升级节点仍按之前的版本运行,可以保证各节点的正常运行,集群的正常数据响应。

记录失败信息的目的在于便于以后对失败原因的查看以及修复调整。在此对升级失败信息中包括的具体信息类型不做限定,可以根据查看的需要自行进行配置,比如,升级失败信息可以包括:失败节点、错误原因以及升级进度,记录失败节点用于对失败节点进行后续细节查看,以便进一步查找失败原因;错误原因指错误出现的状态描述以及分析,通过查看错误原因,可以方便定位问题,从而进行修复。另外,升级失败信息中可以还包括:失败时间节点、已升级节点信息等,在此不再赘述。

基于上述介绍,本实施例提供的分布式存储系统在线升级方法通过对获取的待升级节点ip进行节点信息采集,并将采集得到的节点信息进行备份存储,以便于升级失败时集群状态的快速恢复,保证正常的功能响应。逐个对待升级节点进行版本升级,对各节点逐个进行版本升级,集群中只有单个节点的业务功能被暂停,由于分布式存储系统数据的冗余性分布规则,单个节点功能暂停时可以通过其它节点实现其业务功能,对整个集群的业务功能的响应基本无影响,可以保证升级过程中存储服务的持续可用,并对升级后的各节点进行集群状态查询,以避免升级包安装成功但无法正常运行的情况;当升级失败时,根据预先备份的节点信息对失败节点进行节点信息恢复,以恢复节点的功能,对升级过程中的异常状况进行完整有效的处理,并对升级失败信息进行记录,记录的失败信息技术人员可以查看并根据其记载的内容对集群或者升级过程进行修复。

基于上述实施例,节点的版本升级过程需要一定的容量占用,为避免影响集群的正常功能运行,优选地,在逐个对待升级节点进行版本升级前可以还包括:

对集群当前容量使用率进行检测;

若当前容量使用率低于阈值,逐个对待升级节点进行版本升级;

若当前容量使用率不低于阈值,结束当前升级。

例如阈值设置为集群容量的使用率为80%,当检测到当前的集群容量使用率为70%时,可以继续进行在线升级;若检测到当前的集群使用容量为90%时,结束当前升级流程,记录升级失败。

另外,为实时了解各节点的升级进度,优选地,可以对实时升级进度进行输出显示。具体地,当逐个对待升级节点进行版本升级时,将实时节点升级进度写入进度文件;根据进度文件获取当前升级进度信息,并将得到的当前升级进度信息输出至终端。

具体地升级进度信息的输出方式不做限定,比如可以以单个节点进度条的形式,或者整体集群升级进度条的形式,或者也可以以整体集群任务列表的形式等,可以根据查看需要自行对输出形式进行设置。

其中,优选地,可以将得到的当前升级进度信息进行进度条形式转换,并将转换得到的升级进度条输出至终端。进度条的形式可以简单的将当前升级完成情况进行直观地显示。进度条可以设置每个节点的进度条,也可以设置以节点为单位进行进度条的设置。例如当待升级节点为10个时,将整体进度根据节点升级情况分为十份,每一份对应一个节点的升级情况等,在此对进度条的具体设置方式不做限定,可以根据不同的输出以及查看需要进行设置。

另外,当升级过程出现异常导致升级失败时,为相关技术人员及时了解升级失败的信息并及时进行对应调整,以尽量保证集群的升级进度,保证集群的业务能力,优选地,可以当升级失败时,输出升级失败情况对应的提示信息。提示信息可以包括当前的失败信息,也可以包括建议操作信息等,对提示信息中包括的信息种类不做限定。

在某个节点出现升级失败时,失败节点可能并非为第一个升级的节点,即在当前升级失败停止当前的升级进程前,可能已有若干升级完成的节点。由于此次升级失败,还需要进行相关调整后在此对集群进行升级,此时可能会对之前已经成功升级的节点进行重复升级。

为避免已升级节点重复升级造成的时间、空间上的损耗,优选地,可以当升级失败时,获取当前升级进程中已升级节点ip并记录,得到黑名单;在下次升级前,对黑名单中记录的节点进行遍历,在待升级节点中去除黑名单中节点,得到简化升级节点;则逐个对待升级节点进行版本升级具体为:逐个对简化升级节点进行版本升级。

黑名单主要用于升级m节点(m>=3)集群过程中,第n节点(n>=2)升级失败,在修复n节点后,继续在线升级时,避免重复升级已升级过的节点。即黑名单主要用于升级异常修复后继续升级场景,检查、更新黑名单中的节点ip,升级过程中跳过黑名单中ip对应的节点。黑名单中的节点信息可以手动更新。

当然,上述过程是建立在相邻两次升级过程所采用的升级版本相同的情况下,两次升级过程中前一次升级失败。若前一次升级失败的情况下,下次升级与前一次升级的版本不同是,可以再对黑名单进行添加记录时添加节点更新的版本信息,在对黑名单中的节点进行遍历比对的同时对黑名单中节点版本与当前更新的版本进行比对,若相同,则在本次升级过程中跳过黑名单中节点,若版本不同,则可以将黑名单中节点清空,直接对所有待升级节点进行升级过程。

为加深对本发明提供的分布式存储系统在线升级方法的理解,本实施例对整体升级过程进行介绍,其它基于本发明的在线升级方法均可参照本实施例的介绍。本实施例提供的在线升级方法主要包括升级条件检查、升级节点ip信息获取、跳过黑名单里的成员、升级包拷贝、升级第一个节点之前备份集群环境信息、升级前停掉被升级节点上的业务、升级进度条显示、同步升级日志信息到个节点、重启被升级节点后等待集群状态恢复health_ok、在超时间内集群不能恢复health_ok则退出升级流程。

具体地,升级过程具体包括以下步骤:

1、升级条件检查。

检查集群状态,当状态为health_ok时,允许在线升级。

根据既定的可升级条件检查确认分布式存储系统当前是否支持在线升级

检查集群当前版本和要升级版本,当要升级版本比当前版本新时,允许在线升级。

检查集群容量使用率,当使用率不超过80%时,允许在线升级。

2、升级节点ip信息获取。

从集群信息中解析出所有public网络的ip,对ip信息进行排序、去重后,即可得到集群中所有节点的ip信息,根据这些ip,升级集群版本。

3、跳过黑名单里的成员。

判断当前被升级节点是不是在黑名单里,如果在,则跳过该节点继续升级下一个节点;如果不在,则继续升级该节点。

4、升级第一个节点之前备份集群环境信息。

判断当前节点是升级的第一个节点时,运行信息采集脚本,备份集群环境信息,主要是集群中驱动版本信息、服务配置文件、硬件信息等。

5、升级前停掉被升级节点上的业务。

在每个节点进行升级前暂停该节点的业务,保证在整个升级过程中只有一个节点因升级过程业务暂停,保证集群正常业务运行。

6、根据实际升级包内容开始升级集群版本。

在安装升级包的过程中,如果遇到升级失败的情况,将升级进度更新为-1,并输出错误原因。由主升级流程统一输出日志到日志文件,方便定位问题和查看详细升级进度。

7、升级进度条显示。

在安装升级包内容的时候,将升级进度写入一个文件中,升级脚本读取这个文件的信息获取当前被升级节点的升级进度,并以进度条的形式打印到终端上显示出来。

8、同步升级日志信息到个节点。

9、重启被升级节点后等待集群状态恢复health_ok。

10、在超时间内集群不能恢复health_ok则退出升级流程。

本实施例提供的在线升级方法设计在线升级的正常处理流程和异常处理流程,确保整个在线升级流程透明、可控。正常升级流程中,确保分布式存储系统可以在升级过程中持续提供存储服务,不中断客户前端业务;当升级出现异常时,可以通过日志信息获取到异常原因,异常解决之后可以通过配置黑名单继续升级过程,避免已升级节点重复升级造成的时间、空间上的损耗。可以在客户应用场景下实现分布式存储系统的平滑升级,使用户感知不到后端系统升级;在线升级过程中,实现自动化升级,减少人为干预,提高用户体验。

请参考图2,图2为本发明实施例提供的分布式存储系统在线升级装置的结构框图;主要可以包括:信息采集单元210、版本升级单元220以及失败处理单元230。本实施例提供的分布式存储系统在线升级装置可与上述分布式存储系统在线升级方法相互对照。

其中,信息采集单元210主要用于对获取的待升级节点ip进行节点信息采集,并将采集得到的节点信息进行备份存储。

版本升级单元220主要用于逐个对待升级节点进行版本升级,并对升级后的各节点进行集群状态查询。

失败处理单元230主要用于当升级失败时,根据预先备份的节点信息对失败节点进行节点信息恢复,并对升级失败信息进行记录,结束当前升级;其中,升级失败包括:安装失败以及集群状态异常;升级失败信息包括:失败节点、错误原因以及升级进度。

本实施例提供的分布式存储系统在线升级装置通过对各节点逐个进行版本升级,可以保证升级过程中存储服务的持续可用,并根据在升级过程出现各种异常时进行自动化处理,可以在应用场景下实现分布式存储系统的平滑升级,提高用户体验。

优选地,与信息采集单元连接的用于获取待升级节点ip的ip获取单元主要包括:

集群信息获取子单元,用于获取系统中集群信息;

ip解析子单元,用于根据集群信息进行节点ip解析,得到节点ip;

待升级ip确定子单元,用于对节点ip进行去重处理,得到待升级节点ip。

优选地,分布式存储系统在线升级装置可以还包括:容量检测单元。容量检测单元与版本升级单元连接,主要用于:对集群当前容量使用率进行检测;若当前容量使用率低于阈值,逐个对待升级节点进行版本升级;若当前容量使用率不低于阈值,结束当前升级。

优选地,分布式存储系统在线升级装置可以还包括:进度输出单元,进度输出单元与版本升级单元连接,主要包括:进度信息写入子单元,用于当逐个对待升级节点进行版本升级时,将实时节点升级进度写入进度文件;以及输出子单元,用于根据进度文件获取当前升级进度信息,并将得到的当前升级进度信息输出至终端。

其中,优选地,输出子单元具体可以用于将得到的当前升级进度信息进行进度条形式转换,并将转换得到的升级进度条输出至终端。

优选地,分布式存储系统在线升级装置可以还包括:提示单元,用于当升级失败时,输出升级失败情况对应的提示信息。

优选地,分布式存储系统在线升级装置可以还包括:黑名单处理单元。黑名单处理单元同时与版本升级单元以及失败处理单元连接,主要包括:

记录子单元,用于当升级失败时,获取当前升级进程中已升级节点ip并记录,得到黑名单;

遍历子单元,用于在下次升级前,对黑名单中记录的节点进行遍历,在待升级节点中去除黑名单中节点,得到简化升级节点。

则与黑名单处理单元连接的版本升级单元具体用于:逐个对简化升级节点进行版本升级。

本实施例提供一种分布式存储系统在线升级设备,包括:存储器以及处理器。

其中,存储器用于存储程序;

处理器用于执行程序时实现如上述分布式存储系统在线升级方法的步骤,具体可参照上述分布式存储系统在线升级方法的介绍。

请参考图3,为本实施例提供的分布式存储系统在线升级设备的结构示意图,该在线升级设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在在线升级设备301上执行存储介质330中的一系列指令操作。

在线升级设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上面图1所描述的分布式存储系统在线升级方法中的步骤可以由分布式存储系统在线升级设备的结构实现。

本实施例公开一种可读存储介质,其上存储有程序,程序被处理器执行时实现如上述分布式存储系统在线升级方法的步骤,具体可参照上述分布式存储系统在线升级方法的介绍。

说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

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

以上对本发明所提供的分布式存储系统在线升级方法、装置、设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

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