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

一种存储资源的扩容控制方法、装置及电子设备

文献发布时间:2023-06-19 11:00:24


一种存储资源的扩容控制方法、装置及电子设备

技术领域

本申请涉及数据存储技术领域,尤其涉及一种存储资源的扩容控制方法、装置及电子设备。

背景技术

随着网络的发展,云平台存储持续增长,存储容量的监控和扩展,都需要耗费大量的人力和财力。以OpenStack项目构建的私有云平台,后端存储为存储区域网络SAN(Storage Area Network)存储的情况下,采用交换虚拟电路SVC(Switching VirtualCircuit)来管理存储资源的扩展。

对存储资源的扩展包含流程:首先在SVC中分配存储池,再配置计算节点以便于SVC可识别存储设备,之后OpenStack存储组件下发配置文件,再将云镜像迁移到新的存储池,最后基于迁移后的镜像进行虚机的交付测试,完成存储池扩展。

由于以上扩展过程较为复杂,因此,在资源池容量不足时再对存储资源进行扩展,会存在扩展出来的存储资源的交付速度受到网络和磁盘输入输出等因素影响而变得非常缓慢的情况。

发明内容

有鉴于此,本申请提供一种存储资源的扩容控制方法、装置及电子设备,如下:

一种存储资源的扩容控制方法,包括:

在接收到预测请求的情况下,获得存储池的存储状态信息,所述存储池为云平台上搭建的存储池;

至少根据所述存储状态信息,预测所述存储池在未来的第一时间段内的存储需求;所述第一时间段为当前时刻之后的预定时间段;

在所述存储需求满足资源扩容条件的情况下,对所述存储池执行扩容操作,以使得所述存储池的可用存储资源满足所述第一时间段内的存储需求。

上述方法,优选的,对所述存储池执行扩容操作,至少包括:

为所述存储池增加存储设备;

更新所述云平台上与所述存储池相对应的配置信息;

为所述存储池中增加的存储设备配置操作系统。

上述方法,优选的,为所述存储池增加存储设备,包括:

在所述存储池中搭建新的存储设备;

或,启动所述存储池中处于关闭状态的存储设备;

或,在所述存储池中为其他平台分配的存储设备中为所述云平台划分存储设备。

上述方法,优选的,为所述存储池中增加的存储设备配置操作系统,包括:

在所述存储池中的原存储设备中获得操作系统的镜像文件;

将所述操作系统的镜像文件迁移到所述存储池中增加的存储设备中。

上述方法,优选的,所述存储池中增加的存储设备的存储参数与所述存储需求相对应。

上述方法,优选的,至少根据所述存储状态信息,预测所述存储池在第一时间段内的存储需求,包括:

对所述存储状态信息按照相应的时刻序列进行采样,以得到采样数据;

至少对所述采样数据进行预测处理,以得到所述存储池在第一时间段内的存储需求。

上述方法,优选的,在对所述存储池执行扩容操作之后,还包括:

对经过扩容的存储池进行异常检查,以得到检查结果,所述检查结果表征对所述存储池扩容是否成功。

上述方法,优选的,对经过扩容的存储池进行异常检查,包括以下任意一项或任意多项:

对经过扩容的存储池中的操作系统是否正常进行检查;

对经过扩容的存储池中的存储资源是否存在交付异常进行检查;

对所述云平台是否能够对经过扩容的存储池进行读写进行检查。

一种存储资源的扩容控制装置,包括:

存储获得单元,用于在接收到预测请求的情况下,获得存储池的存储状态信息,所述存储池为云平台上搭建的存储池;

需求预测单元,用于至少根据所述存储状态信息,预测所述存储池在未来的第一时间段内的存储需求;所述第一时间段为当前时刻之后的预定时间段;

存储控制单元,用于在所述存储需求满足资源扩容条件的情况下,对所述存储池执行扩容操作,以使得所述存储池的可用存储资源满足所述第一时间段内的存储需求。

一种电子设备,包括:

存储器,用于存储应用程序以及所述应用程序运行所产生的数据;

处理器,用于执行所述应用程序,以实现:

在接收到预测请求的情况下,获得存储池的存储状态信息,所述存储池为云平台上搭建的存储池;

至少根据所述存储状态信息,预测所述存储池在未来的第一时间段内的存储需求;所述第一时间段为当前时刻之后的预定时间段;

在所述存储需求满足资源扩容条件的情况下,对所述存储池执行扩容操作,以使得所述存储池的可用存储资源满足所述第一时间段内的存储需求。

由上述方案可知,本申请提供的一种存储资源的扩容控制方法、装置及电子设备中,在接收到预测请求的情况下,通过获得云平台上搭建存储池的存储状态信息,由此来预测存储池在未来的时间段内的存储需求,进而在未来的时间段内的存储需要满足资源扩容条件即需要进行扩容的情况下,对存储池执行扩容操作,由此使得存储池的可用存储资源满足未来的时间段内的存储需求。可见,本申请中通过预测未来时间段内存储池是否需要扩容并在需要时提前进行资源扩容,由此通过可用存储资源的前置扩容,保证存储池的可用存储资源一直处于充裕的状态,进而可以避免在可用资源短缺时在进行扩容而引起的资源交付速率较慢的情况。

附图说明

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

图1为本申请实施例一提供的一种存储资源的扩容控制方法的实现流程图;

图2为本申请实施例中时间段的示例图;

图3为本申请实施例一提供的一种存储资源的扩容控制方法的部分流程图;

图4为本申请实施例一提供的一种存储资源的扩容控制方法的另一流程图;

图5为本申请实施例一提供的一种存储资源的扩容控制方法的另一部分流程图;

图6为本申请实施例二提供的一种存储资源的扩容控制装置的结构示意图;

图7为本申请实施例二提供的一种存储资源的扩容控制装置的另一结构示意图;

图8为本申请实施例三提供的一种电子设备的结构示意图;

图9-图15分别为本申请适用于OpenStack云计算平台上搭建的存储池的示例图。

具体实施方式

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

参考图1,为本申请实施例一提供的一种存储资源的扩容控制方法的实现流程图,该方法可以适用于与搭建在云平台上的存储池相连接且能够进行数据处理以及存储池控制的电子设备中,如计算机或服务器等。本实施例中的技术方案主要用于对存储池进行扩容控制,以提高资源交付速率。

具体的,本实施例中的方法可以包括以下步骤:

步骤101:接收预测请求。

其中,预测请求可以由电子设备按照一定的频率进行生成。具体的,设置在电子设备中的定时器根据所配置的预测频率实时生成预测请求,本实施例中对定时器所生成的预测请求进行接收并对该预测请求进行响应。

需要说明的是,预测请求中可以包含有存储池对应的请求标识,该请求标识用于表征对存储池进行扩容控制的预测。

步骤102:获得存储池的存储状态信息。

其中,该存储池也可以理解为资源池,其中包含有能够为用户提供存储资源的存储设备,这里的存储池为云平台上搭建的存储池,如OpenStack云计算平台上搭建的存储池,该存储池可以为SAN类型的存储池,其中包含有多个存储设备,以组成存储池。

具体的,本实施例中可以通过读取与存储池相关的各种维度上的数据来获得存储池在当前时刻以及多个历史时刻的存储状态信息,该存储状态信息包含有存储池在当前时刻以及历史时刻上的可用存储资源和/被占用存储资源等信息,还可以包含有占用存储池的存储资源的设备或应用的信息,等等。

例如,本实施例中所获得到的存储状态信息中包含有监控数据、OpenStack数据库、配置管理数据库CMDB(Configuration Management Database)以及交换虚拟电路SVC(Switching Virtual Circuit)数据库等信息。

其中,监控数据是指对存储池中计算资源的负载监控数据,如中央处理器CPU(central processing unit)的内存利用率等;OpenStack数据库信息是指云计算平台的虚拟机状态和网络状态信息,如虚拟机是否被占用;CMDB信息包含有配置项全生命周期的信息以及配置项之间的关系,其中包括物理关系、实时通信关系、非实时通信关系和依赖关系,在本实施例中,CMDB信息中包含有所有资产设备如物理设备的生产类型、总数量、处于运行状态的数量等信息;SVC数据库信息包含有存储设备的信息,比如存储设备的数量、每个存储设备的总容量、每个存储设备的当前剩余容量等信息。

步骤103:至少根据存储状态信息,预测存储池在未来的第一时间段内的存储需求。

其中,第一时间段为当前时刻之后的预定时间段,如图2中所示,步骤103中对存储池在该预定时间段内的存储需求进行预测。

这里的存储需求可以包含有表征存储容量的需求信息,还可以包含有表征存储类型的需求信息,当然还可以包含有其他维度的需求信息,本实施例中通过对当前时刻以及历史时刻上的存储状态信息进行处理,进而预测出存储在当前时刻之后的预定时间段内的存储需求,该存储需求表征未来的第一时间段内用户对存储池的交付需求,如存储池需要在第一时间段内为用户交付特定大小的特定存储类型的可用存储资源。

步骤104:判断存储需求是否满足资源扩容条件,在存储需求满足资源扩容条件的情况下,执行步骤105。

其中,资源扩容条件为针对存储池的当前剩余的可用存储资源判断未来的第一时间段内是否存在可用存储资源短缺的条件,基于此,本实施例中对预测出的第一时间段的存储需求是否满足资源扩容条件进行判断,如果存储需求满足资源扩容条件,则可以确定按照该存储区域如果不进行资源扩容那么可能在未来的第一时间段内存储池会存在可用存储资源短缺的情况,即在未来的第一时间段内需要进行资源扩容的情况,由此,在存储需求满足资源扩容条件的情况下,执行步骤105。

具体的,资源扩容条件可以为:存储需求中的存储需求量大于或等于存储池的存储剩余量,或者,存储需求中的存储需求量大于或等于存储池的存储剩余量的一定比例,如存储需求中的存储需求量大于或等于存储池的存储剩余量的80%,等等;

这里的需求量和剩余量是指存储空间的量,如地址空间的量。

或者,资源扩容条件可以为:存储需求中的存储类型与存储池中的存储类型不匹配,例如,存储池中的设备存储类型不支持对存储需求中的数据存储类型的存储,等等。

或者,资源扩容条件可以为:存储需求中的存储需求量使得存储池在第一时间段内的存储剩余量小于预设的阈值,例如,存储需求使得存储池在第一时间段内的存储剩余量小于10%,等等。

步骤105:对存储池执行扩容操作,以使得存储池的可用存储资源满足第一时间段内的存储需求。

其中,本实施例中可以按照存储需求中对存储需求量或存储类型的信息对存储池进行扩容操作,如增加存储空间或者增加特定存储类型的存储设备等。由此能够使得存储池的可用存储资源满足第一时间段内的存储需求,也就是让资源扩容条件不再被满足,在未来的第一时间段内存储池的可用存储资源能够满足第一时间段内的存储需求,从而避免第一时间段内存储池的可用存储资源短缺的情况。

例如,存储池在第一时间段内的存储需求量不再大于存储池的存储剩余量或者不再大于存储剩余量的80%,由此,存储池的可用存储资源能够满足存储需求。

由上述方案可知,本申请实施例一提供的一种存储资源的扩容控制方法中,在接收到预测请求的情况下,通过获得云平台上搭建存储池的存储状态信息,由此来预测存储池在未来的时间段内的存储需求,进而在未来的时间段内的存储需要满足资源扩容条件即需要进行扩容的情况下,对存储池执行扩容操作,由此使得存储池的可用存储资源满足未来的时间段内的存储需求。可见,本实施例中通过预测未来时间段内存储池是否需要扩容并在需要时提前进行资源扩容,由此通过可用存储资源的前置扩容,保证存储池的可用存储资源一直处于充裕的状态,进而可以避免在可用资源短缺时在进行扩容而引起的资源交付速率较慢的情况。

在一种实现方式中,步骤105中在对存储池执行扩容操作时,具体可以通过以下方式实现,如图3中所示:

步骤301:为存储池增加存储设备;

具体的,本实施例中为存储池增加存储设备可以有以下几种方式:

在一种方式中,本实施例中在存储池中搭建新的存储设备,例如,在存储池中已经存在10个SAN存储设备,为了实现对存储池的扩容,本实施例中在存储池中搭建新的一个或多个SAN存储设备,以增加存储池中的SAN存储设备的数量,从而实现存储池扩容,如图4中所示。

在另一种方式中,本实施例中启动存储池中处于关闭状态的存储设备,例如,在存储池中已经存在10个SAN存储设备,但只有7个SAN存储设备处于被启动且能够进行使用的状态,由此,为了实现对存储池的扩容,本实施例中启动一个或多个没有被启动的SAN存储设备,以增加存储池中处于被启动且能够进行使用的SAN存储设备的数量,从而实现存储池扩容,如图5所示。

在另一种实现中,本实施例中可以在存储池中为其他平台分配的存储设备中为云平台划分存储设备。例如,存储池中有10个SAN存储设备被分配给OpenStack云计算平台,为了实现对OpenStack的存储资源的扩容,本实施例中将存储池中被分配给其他平台的存储设备中划分出一个或多个存储设备给OpenStack云计算平台,以增加存储池中为OpenStack云计算平台服务的存储池中SAN存储设备的数量,从而实现存储池扩容,如图6所示。

需要说明的是,本实施例中在存储池中增加的存储设备的存储参数与存储需求相对应。也就是说,本实施例中可以根据所预测出的存储需求中的信息在存储池中增加相应数量以及相应类型的存储设备,由此使得存储池中增加的存储设备的存储参数是与第一时间段内的存储需求相匹配的,从而保证增加存储设备后的存储池能够满足第一时间段内的存储需求,也能够避免出现存储池中可用存储资源闲置的情况。

步骤302:更新云平台上与存储池相对应的配置信息。

其中,配置信息中可以包含有操作系统的镜像信息,还可以包含有相关数据状态的信息。

具体的,本实施例中可以通过调用OpenStack API或指令进行镜像更新及相关数据状态的更新。例如,调用OpenStack API或指令修改OpenStack的配置信息,并为增加的存储设备指定操作系统,例如将存储池已有的存储设备中的操作系统指定为增加的存储设备的操作系统,等等。

步骤303:为存储池中增加的存储设备配置操作系统。

具体的,本实施例中可以将存储池中增加的存储设备的操作系统镜像文件进行迁移,并迁移到增加的存储设备中,从而完成对增加的存储设备的操作系统的配置。

例如,本实施例中可以在存储池原有的存储设备中获得操作系统的镜像文件,之后,将该操作系统的镜像文件迁移到存储池中增加的存储设备中,实现镜像文件的迁移。

在一种实现方式中,步骤103中在至少根据存储状态信息预测存储池在第一时间段内的存储需求时,具体可以通过以下方式实现:

首先,对存储状态信息按照相应的时刻序列进行采样,以得到采样数据。例如,存储状态信息中是按照历史时刻和当前时刻排序的时间序列数据,基于此,为了简化计算,本实施例中对这些时间序列数据进行重采样,例如,重采样粒度到以天为单位的采样级别,从而得到采样数据。

之后,本实施例中至少对采样数据进行预测处理,以得到存储池在第一时间段内的存储需求。

需要说明的是,由于存储池不仅交付OpenStack资源,还可能交付物理机等资源。因此,本实施例中对采样数据进行预测处理所涉及的预测范围可以包括有:SVC消耗、OpenStack资源交付估算以及其他消费SVC资源的维度的预测。

具体的,本实施例中在对采样数据进行处理处理时,具体可以根据业务场景采用相应的预测处理算法对采样数据进行处理,例如,在通常情况下,本实施例中可以采用差分整合移动平均自回归模型ARIMA(Autoregressive Integrated Moving Average model)算法对采样数据进行预测处理,得到未来的15内的存储需求;而特殊情况下存储池中可能存在资源需求量较大的业务项目,因此为了提高预测精度,本实施例中结合ARIMA和人工标注的资源需求数据对采样数据进行预测处理,以得到为了的15天的存储需求,由此得到在未来15内的对存储值的资源增长需求量。

在一种实现方式中,在步骤105中对存储池执行扩容操作之后,本实施例中的方法还可以包含以下步骤,如图4中所示:

步骤106:对经过扩容的存储池进行异常检查,以得到检查结果。

其中,检查结果表征对存储池扩容是否成功。

具体的,异常检查的项目可以包含有与操作系统相关的检查项目、与虚拟机相关的检查项目、与读写相关的检查项目等中的任意一项或任意多项。

基于此,本实施例中在对经过扩容的存储池进行异常检查时,具体可以包含以下任一步骤或任意多个步骤,如图5中所示:

步骤501:对经过扩容的存储池中的操作系统是否正常进行检查。

其中,对操作系统是否正常进行检查是指:检查存储池中迁移的镜像文件是否迁移正常,例如,存储池中增加的存储设备中的操作系统镜像文件是否被迁移成功。

步骤502:对经过扩容的存储池中的存储资源是否存在交付异常进行检查。

其中,对存储资源是否存在交付异常进行检查是指:检查存储资源是否能够正常为用户交付。例如,存储资源中的虚拟机是否能够正常交付等。

步骤503:对云平台是否能够对经过扩容的存储池进行读写进行检查。

具体实现中,本实施例中可以在完成对存储池的扩容操作之后,对存储池执行模拟交付的操作流程,由此根据模拟交付过程所产生的数据来检查镜像是否迁移正常、虚机是否正常交付、云盘是否能正常读写等。

需要说明的是,步骤501、步骤502和步骤503可以按照一定的顺序被执行或同时执行,执行顺序不同所实现的技术方案均在本申请的保护范围内。

进一步,本实施例中可以在完成存储池扩容之后,基于迁移之后的镜像文件创建虚机和云盘,如果虚机交付失败,那么说明扩容存在异常,此时可以根据异常的类型进行缺陷自愈修复或者发送消息,以通知人工进行修复。

另外,本实施例中可以在完成存储池扩容之后,相应更新存储池相关的配置信息,例如,更新CMBD中本次扩容所有相关的存储设备的信息、扩容的存储设备的型号、容量等等信息。

参考图6,为本申请实施例二提供的一种存储资源的扩容控制装置的结构示意图,该装置可以配置在与搭建在云平台上的存储池相连接且能够进行数据处理以及存储池控制的电子设备中,如计算机或服务器等。本实施例中的技术方案主要用于对存储池进行扩容控制,以提高资源交付速率。

具体的,本实施例中的装置可以包括以下单元:

请求接收单元601,用于接收预测请求;

存储获得单元602,用于在请求接收单元601接收到预测请求的情况下,获得存储池的存储状态信息,所述存储池为云平台上搭建的存储池;

需求预测单元603,用于至少根据所述存储状态信息,预测所述存储池在未来的第一时间段内的存储需求;所述第一时间段为当前时刻之后的预定时间段;

存储控制单元604,用于在所述存储需求满足资源扩容条件的情况下,对所述存储池执行扩容操作,以使得所述存储池的可用存储资源满足所述第一时间段内的存储需求。

由上述方案可知,本申请实施例二提供的一种存储资源的扩容控制装置中,在接收到预测请求的情况下,通过获得云平台上搭建存储池的存储状态信息,由此来预测存储池在未来的时间段内的存储需求,进而在未来的时间段内的存储需要满足资源扩容条件即需要进行扩容的情况下,对存储池执行扩容操作,由此使得存储池的可用存储资源满足未来的时间段内的存储需求。可见,本实施例中通过预测未来时间段内存储池是否需要扩容并在需要时提前进行资源扩容,由此通过可用存储资源的前置扩容,保证存储池的可用存储资源一直处于充裕的状态,进而可以避免在可用资源短缺时在进行扩容而引起的资源交付速率较慢的情况。

在一种实现方式中,存储控制单元604在对所述存储池执行扩容操作时,具体用于:为所述存储池增加存储设备;更新所述云平台上与所述存储池相对应的配置信息;为所述存储池中增加的存储设备配置操作系统。

可选的,存储控制单元604为所述存储池增加存储设备时,具体用于:在所述存储池中搭建新的存储设备;或,启动所述存储池中处于关闭状态的存储设备;或,在所述存储池中为其他平台分配的存储设备中为所述云平台划分存储设备。

可选的,存储控制单元604为所述存储池中增加的存储设备配置操作系统时,具体用于:在所述存储池中的原存储设备中获得操作系统的镜像文件;将所述操作系统的镜像文件迁移到所述存储池中增加的存储设备中。

可选的,所述存储池中增加的存储设备的存储参数与所述存储需求相对应。

在一种实现方式中,需求预测单元603具体用于:对所述存储状态信息按照相应的时刻序列进行采样,以得到采样数据;至少对所述采样数据进行预测处理,以得到所述存储池在第一时间段内的存储需求。

在一种实现方式中,本实施例中的装置还可以包含以下单元,如图7中所示:

异常检查单元605,用于在存储控制单元604对存储池执行扩容操作之后,对经过扩容的存储池进行异常检查,以得到检查结果,所述检查结果表征对所述存储池扩容是否成功。

可选的,异常检查单元605对经过扩容的存储池进行异常检查,包括以下任意一项或任意多项:对经过扩容的存储池中的操作系统是否正常进行检查;对经过扩容的存储池中的存储资源是否存在交付异常进行检查;对所述云平台是否能够对经过扩容的存储池进行读写进行检查。

需要说明的是,本实施例中各单元的具体实现可以参考前文中的相应内容,此处不再详述。

参考图8,为本申请实施例三提供的一种电子设备的结构示意图,该电子设备可以为与搭建在云平台上的存储池相连接且能够进行数据处理以及存储池控制的电子设备,如计算机或服务器等。本实施例中的技术方案主要用于对存储池进行扩容控制,以提高资源交付速率。

具体的,本实施例中的电子设备可以包含以下结构:

存储器801,用于存储应用程序以及所述应用程序运行所产生的数据;

处理器802,用于执行所述应用程序,以实现:

在接收到预测请求的情况下,获得存储池的存储状态信息,所述存储池为云平台上搭建的存储池;

至少根据所述存储状态信息,预测所述存储池在未来的第一时间段内的存储需求;所述第一时间段为当前时刻之后的预定时间段;

在所述存储需求满足资源扩容条件的情况下,对所述存储池执行扩容操作,以使得所述存储池的可用存储资源满足所述第一时间段内的存储需求。

由上述方案可知,本申请实施例三提供的一种电子设备中,在接收到预测请求的情况下,通过获得云平台上搭建存储池的存储状态信息,由此来预测存储池在未来的时间段内的存储需求,进而在未来的时间段内的存储需要满足资源扩容条件即需要进行扩容的情况下,对存储池执行扩容操作,由此使得存储池的可用存储资源满足未来的时间段内的存储需求。可见,本实施例中通过预测未来时间段内存储池是否需要扩容并在需要时提前进行资源扩容,由此通过可用存储资源的前置扩容,保证存储池的可用存储资源一直处于充裕的状态,进而可以避免在可用资源短缺时在进行扩容而引起的资源交付速率较慢的情况。

以下对本申请的技术方案进行详细说明:

本申请的发明人在对云平台所搭建的存储池进行研究发现:随着业务的迅猛发展,私有云平台存储会持续增长,存储容量的监控和扩展,都需要耗费大量的人力和财力。以OpenStack项目构建的私有云平台为例,后端存储为SAN存储的情况下,采用SVC来管理存储资源的扩展是一个复杂过程,包含如下步骤:

1、在SVC中分配存储池;

2、配置计算节点可识别存储设备;

3、OpenStack存储组件下发配置文件;

4、云镜像迁移到新的存储池;

5、基于迁移后的镜像作虚机交付测试。

这样的复杂过程造成一旦SVC容量达到或者接近扩展的极限,而需要分配新的SVC存储池,其过程可能更长、一次成功功率可能比较低。所以需要通过资源前置,即预先准备SVC资源池。在需要以该资源池交付的时候,将该SVC资源池扩容到可以交付的水平,并切换到该资源池进行交付,这里的交付是指为用户提供资源。

在资源前置准备过程中,不仅需要准备存储资源,还需要进行必要的计算资源准备。例如,必要的操作系统镜像需要复制到该资源池中,以保证相关自动化交付基于该镜像实现。如果不进行这样的云计算前置资源准备,则在虚机等资源交付过程中,交付速度将受到网络和磁盘IO等因素影响而变得非常缓慢。

可见,目前的资源池扩容方案中,以OpenStack为核心的解决方案没有资源前置设计,虽然功能上可以实现所需要的交付,但是交付速率明显较低,导致用户体验和应用体验较差,执行效率较低。

其中,用户体验差是指:扩容完成之后,未进行资源前置交付检查,对云主机交付造成影响;而效率低是指:扩容之后涉及到的云镜像迁移时间长,无法及时为用户提供服务。

有鉴于此,本申请的发明人经过进一步研究提出一种基于容量预测的资源前置交付的技术方案,可以实现小时、天、周等级别的存储容量预测,可以结合预设的规则引擎,识别不同的存储类型下发适应的配置信息,并在存储资源扩展完成之后,对SVC存储、OpenStack云平台进行质量检查;而且,通过分配小容量的存储池作为前置资源池,在进行资源交付的时候触发切换,之后要更新数据库和CMDB,便于下次交付的时候应用新的存储资源;另外,还可以在数据库HA(Highly Available)或集群(Cluster)场景下,如果两个节点或多个节点分属不同SVC资源池交付资源,其SVC资源池性能需要一致,不可以不平衡。所以,假设HA或Cluster通过资源池A和B交付,存储池A和B任意一个存储池满,在自动化交付的时候同时切换到存储池C和D;还可以基于云平台生命周期管理规则,释放的存储池再次利用。

由此,本申请所提出的技术方案能够具有以下优点:

1、用户体验更好,效率更高;

通过资源前置,实现快速SVC交付能力就位,快速操作系统镜像可用,虚拟机交付效率得到保证;

2、由于资源和环境检查时间更加充裕,虚拟机等资源最终一次交付成功功率得到保证。避免由于SVC交付过程复杂或者镜像迁移过程复杂造成云计算资源交付失败;

3、基于规则引擎方案,可以解决复杂场景下的编排过程;

4、质量检查过程可以降低存储扩容给云平台带来的风险;

5、资源前置交付为后续调配存储资源做准备,提高扩容效率;

6、资源交付校验可以验证OpenStack云平台的可用性。

具体的,本申请的技术方案总体概述如下:

本申请的技术方案所实现的模块如图9所示,以下结合图10中的步骤1-10,对各模块所实现的流程整理如下:

首先,本申请所实现的控制台管理定时器程序,定时器会定时触发预测程序,如步骤1-步骤2;

其次,本申请所实现的预测程序集成监控数据、OpenStack数据库、CMDB以及SVC数据库,对这些数据进行清洗,利用预测算法对数据进行分析,分析之后会触发决策程序,如步骤3;

a、根据业务场景进行监控系统的时间序列数据库数据重采样,以简化计算。例如,重采样粒度到天级别,并基于此进行未来15天资源增长预测。

b、由于SVC资源池不仅交付OpenStack资源,还可能交付物理机等资源。所以预测范围将包括SVC消耗,OpenStack资源交付估算以及其他消费SVC资源的预测。

c、根据业务场景进行预测算法选择或者人工标注改善预测质量。

(1)对于瘦供给资源交付,使用经典预测算法通常可以满足需要,例如ARIMA等。基于此预测精度可能不足,但是适合大多数场景。

(2)由于私有云资源池通常不是很大。大的项目将会对资源池产生较大影响,可以在预测模块中人工输入可能大项目启动时间以及对于存储交付的要求,这将有效改善预测质量。

然后,决策程序判断SVC是否需要扩容,如步骤4,需要扩容的情况下,会启动不同云计算资源的编排模块。根据业务场景不同,扩容模式有3种模式,如为资源池搭建新的存储设备、将资源池中处于闲置状态的存储设备切换到激活状态、将其他业务或平台的存储设备划分给当前的云平台,等等。

另外,规则引擎生成所需执行编排策略。编排模块获取需要编排的策略,生成执行指令,并执行编排活动,如步骤5:

a、调用SVC API(Application Programming Interface)或指令对SVC存储进行操作;

b、调用OpenStack API或指令进行镜像更新及相关数据状态更新;

c、启动镜像迁移,镜像迁移完成之后会启动质量检查模块,如步骤6,质检通过则更新OpenStack系统状态;

最后,质检模块会进行资源前置交付检查。质量检查异常时再次调用智能分析模块的规则引擎,如步骤8,进行缺陷自愈修复指令生成或者启动通知程序告知系统管理员人工介入解决,直到结束,如步骤10。质量检查成功之后,需要更新CMDB数据,如步骤9。

其中,常见的检查项包括,检查镜像是否迁移正常,虚机是否正常交付,云盘是否能正常读写等。

以下结合图11中所示的定时预测流程图,对本申请中的定时执行智能分析的方案进行说明:

首先,预测模块描述如下:

1、由定时器程序来触发,预测程序从多个数据源(监控数据、OpenStack数据库、SVC数据库、CMDB)获取数据;

2、使用预测算法对已有的数据进行分析,可能用到的预测模型例如:自回归滑动平均模型ARMA(Autoregressive moving average model)或ARIMA等。预测的场景如下:

a、资源池容量增长预测;

b、数据库HA场景下,A和B存储池容量情况预测;

c、物理存储设备容量增长预测;

d、OpenStack等云平台资源交付增长或资源回收;

e、相关设备如物理机资源交付增长或资源回收;

f、前置资源准备情况;

g、人工补充大型项目与对SVC等自愿交付可能的影响。

其中,预测模块的界面设计UI(User Interface Design)或数据导入功能已保证人工补充数据被存储到相应数据库。

3、预测过程完成之后触发规则引擎决策模块。

结合图12中所示的决策过程流程图,对本申请中的决策过程进行详细说明:

首先本申请的决策模块描述如下:

1、开始;

2、结合规则引擎推理,决定存储设备是否需要扩容,可能的扩容形态包括:

a、对当前使用的SVC进行扩容;

b、创建新的SVC资源池,迁移镜像等资源,资源前置准备,以备未来扩容需要;

c、扩容已经前置准备就绪的SVC资源,并激活交付活动到该资源池;

d、资源充裕,不需要进行任何操作。待定时器启动下次检查,再进行分析。

3、如果SVC存储设备需要扩容,即SVC存储池不够用,进行存储池扩容,SVC存储池扩容过程主要包括调用SVC API或指令配置SVC分配存储池、调用OpenStack API或指令下发配置及服务管理、云镜像迁移等;

4、SVC存储池扩容完成之后,检查当前存储池是否已经进行了前置资源准备,如果没有,则准确前置资源。

以上步骤完成之后触发镜像迁移模块。

以下结合图13所示的镜像迁移流程图,对本申请中的镜像迁移模块进行说明:

镜像迁移模块的过程从数据库识别并获取镜像迁移范围,包含云平台位置等信息,之后下发迁移任务,调用OpenStack API进行镜像迁移操作,并在迁移完成之后对镜像可用性进行检查。

以下结合图14所示的质量检查流程图,对本申请中的质量检查模块进行说明:

质量检查模块流程为资源前置交付检查,基于迁移之后的镜像创建虚机和云盘,如果虚机交付失败会触发巡检程序,主要包括对SVC的可用性进行检查,对OpenStack各个组件的健康状态进行检查,对镜像的可用性进行检查,当以上问题均修复之后,会再次启动虚机交付检查,即资源前置交付检查,而在检查交付成功的情况下,进行资源清理。

以下结合图15所示的数据同步流程图,对本申请中的数据同步进行说明:

SVC扩容完成之后,会调用监控系统API对监控配置进行更新,如更新新扩展的SVC,更新需要增加的监控,更新容量趋势的监控,更新负载的监控等配置信息,之后,调用CMDB平台的API对CMDB数据进行增加和修改。

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

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

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

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

相关技术
  • 一种存储资源的扩容控制方法、装置及电子设备
  • 一种存储资源的方法、装置及电子设备
技术分类

06120112759083