本发明涉及云存储技术领域,尤其涉及一种云存储方法、云平台及计算机可读存储介质。
背景技术:
云存储(onlinestorage)是一种网络在线存储模式,即把数据存放在云平台上,而云平台部署在大规模服务器集群上,云平台中负责数据存储的集群节点称为存储节点。常用的云存储方法是依次在各个存储节点中进行存储,当前一个存储节点无法存储数据时,再在后一个存储节点中继续存储,这一方式,不能根据用户需求进行数据存储,且无法保证云存储的高效性。
技术实现要素:
本发明的主要目的在于提供一种云存储方法、云平台及计算机可读存储介质,旨在满足用户需求,并实现对云平台存储节点资源的合理有效利用,从而保证云存储的高效性,提升用户体验。
为实现上述目的,本发明提供一种云存储方法,所述方法包括:
在接收到数据存储请求时,确定待存储数据的优先级,并获取当前周期内云平台各个存储节点的运行状态信息;
根据各个存储节点的所述运行状态信息,确定各个存储节点的存储能力;
根据所述待存储数据的优先级和各个存储节点的所述存储能力,确定存储所述待存储数据的目标存储节点。
可选地,所述运行状态信息包括硬件状态信息和等待被存储的任务数,所述根据各个存储节点的所述运行状态信息,确定各个存储节点的存储能力的步骤包括:
根据各个存储节点的所述硬件状态信息,确定各个存储节点基于硬件条件的第一存储能力;
根据各个存储节点的所述等待被存储的任务数,确定各个存储节点基于承载条件的第二存储能力;
根据各个存储节点的所述第一存储能力和第二存储能力,确定各个存储节点的存储能力。
可选地,所述硬件状态信息包括cpu占用率、内存使用率和网络资源使用率,所述硬件状态信息包括cpu占用率、内存使用率和网络资源使用率,所述根据各个存储节点的所述硬件状态信息,确定各个存储节点基于硬件条件的第一存储能力的步骤包括:
根据各个存储节点的所述cpu占用率、内存使用率和网络资源使用率,以及预设计算公式,计算各个存储节点基于硬件条件的第一存储能力。
可选地,所述根据各个存储节点的所述等待被存储的任务数,确定各个存储节点基于承载条件的第二存储能力的步骤包括:
确定云平台存储节点集群存储单个存储任务的平均时间;
根据所述存储单个存储任务的平均时间和各个存储节点的等待被存储的任务数,计算各个存储节点的预等待时间;
根据所述各个存储节点的预等待时间,确定各个存储节点基于承载条件的第二存储能力。
可选地,所述确定云平台存储节点集群存储单个存储任务的平均时间的步骤包括:
确定当前周期之前待计算的各个周期;
获取云平台存储节点集群在所述待计算的各个周期内完成的存储任务总数;
计算云平台存储节点集群在所述待计算的各个周期内的单个存储任务完成时间;
计算所述单个存储任务完成时间的平均值,作为云平台存储节点集群存储单个存储任务的平均时间。
可选地,所述根据所述待存储数据的优先级和各个存储节点的所述存储能力,确定存储所述待存储数据的目标存储节点的步骤包括:
根据各个存储节点的所述存储能力,设置各个存储节点的优先级,并根据所述待存储数据的优先级和各个存储节点的所述优先级,确定存储所述待存储数据的目标存储节点。
可选地,所述根据各个存储节点的所述存储能力,设置各个存储节点的优先级,并根据所述待存储数据的优先级和各个存储节点的所述优先级,确定存储所述待存储数据的目标存储节点的步骤包括:
分别将各个存储节点的存储能力与预设存储能力范围进行比对;
将存储能力高于预设存储能力范围上限值的存储节点确定为高优先级待选存储节点集合;
将存储能力处于预设存储能力范围内的存储节点确定为中优先级待选存储节点集合;
将存储节点处理能力低于预设存储能力范围下限值的存储节点确定为低优先级待选存储节点集合;
根据所述待存储数据的优先级,按照预设规则,从各个优先级的待选存储节点集合中确定匹配的待选存储节点集合,并从所述匹配的待选存储节点集合中选取存储节点,作为存储所述待存储数据的目标存储节点。
可选地,所述根据所述各个存储节点的预等待时间,确定各个存储节点的任务承载能力的步骤之前,包括:
分别将各个存储节点的预等待时间与预设等待时间阈值进行比对;
将预等待时间超出预设等待时间阈值的存储节点,作为无效存储节点。
此外,为实现上述目的,本发明还提供一种云平台,所述云平台包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的云存储程序,所述云存储程序被所述处理器执行时实现如下步骤:
在接收到数据存储请求时,确定待存储数据的优先级,并获取当前周期内云平台各个存储节点的运行状态信息;
根据各个存储节点的所述运行状态信息,确定各个存储节点的存储能力;
根据所述待存储数据的优先级和各个存储节点的所述存储能力,确定存储所述待存储数据的目标存储节点。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有云存储程序,所述云存储程序被处理器执行时实现如下步骤:
在接收到数据存储请求时,确定待存储数据的优先级,并获取当前周期内云平台各个存储节点的运行状态信息;
根据各个存储节点的所述运行状态信息,确定各个存储节点的存储能力;
根据所述待存储数据的优先级和各个存储节点的所述存储能力,确定存储所述待存储数据的目标存储节点。
本发明在接收到数据存储请求时,首先确定用户为待存储数据所设置的优先级,并基于当前周期内云平台各个存储节点的运行状态信息,确定各个存储节点的存储能力,依据待存储数据的优先级和各个存储节点的存储能力确定存储待存储数据存储节点,不仅满足用户的需求,且实现对云平台存储节点资源的合理有效利用,从而有效提高云存储的速度,提升了用户体验。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图;
图2为本发明云存储方法方法第一实施例的流程示意图;
图3为本发明云存储方法方法第一实施例的第一细化流程示意图;
图4为本发明云存储方法方法第一实施例的第二细化流程示意图;
图5为本发明云存储方法方法第一实施例的第三细化流程示意图;
图6为本发明云存储方法方法第二实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的主要解决方案是:在接收到数据存储请求时,确定待存储数据的优先级,并获取当前周期内云平台各个存储节点的运行状态信息;根据各个存储节点的所述运行状态信息,确定各个存储节点的存储能力;根据所述待存储数据的优先级和各个存储节点的所述存储能力,确定存储所述待存储数据的目标存储节点。
如图1所示,图1是本发明实施例方案涉及的硬件运行环境的终端结构示意图。
本发明实施例终端是云平台。
如图1所示,该终端可以包括:处理器1001,例如cpu,通信总线1002,用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选的用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及云存储程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的云存储程序,并执行以下操作:
在接收到数据存储请求时,确定待存储数据的优先级,并获取当前周期内云平台各个存储节点的运行状态信息;
根据各个存储节点的所述运行状态信息,确定各个存储节点的存储能力;
根据所述待存储数据的优先级和各个存储节点的所述存储能力,确定存储所述待存储数据的目标存储节点。
进一步地,所述运行状态信息包括硬件状态信息和等待被存储的任务数,处理器1001可以调用存储器1005中存储的云存储程序,还执行以下操作:
根据各个存储节点的所述硬件状态信息,确定各个存储节点基于硬件条件的第一存储能力;
根据各个存储节点的所述等待被存储的任务数,确定各个存储节点基于承载条件的第二存储能力;
根据各个存储节点的所述第一存储能力和第二存储能力,确定各个存储节点的存储能力。
进一步地,所述硬件状态信息包括cpu占用率、内存使用率和网络资源使用率,处理器1001可以调用存储器1005中存储的云存储程序,还执行以下操作:
根据各个存储节点的所述cpu占用率、内存使用率和网络资源使用率,以及预设计算公式,计算各个存储节点基于硬件条件的第一存储能力。
进一步地,处理器1001可以调用存储器1005中存储的云存储程序,还执行以下操作:
确定云平台存储节点集群存储单个存储任务的平均时间;
根据所述存储单个存储任务的平均时间和各个存储节点的等待被存储的任务数,计算各个存储节点的预等待时间;
根据所述各个存储节点的预等待时间,确定各个存储节点基于承载条件的第二存储能力。
进一步地,处理器1001可以调用存储器1005中存储的云存储程序,还执行以下操作:
确定当前周期之前待计算的各个周期;
获取云平台存储节点集群在所述待计算的各个周期内完成的存储任务总数;
计算云平台存储节点集群在所述待计算的各个周期内的单个存储任务完成时间;
计算所述单个存储任务完成时间的平均值,作为云平台存储节点集群存储单个存储任务的平均时间。
进一步地,处理器1001可以调用存储器1005中存储的云存储程序,还执行以下操作:
根据各个存储节点的所述存储能力,设置各个存储节点的优先级,并根据所述待存储数据的优先级和各个存储节点的所述优先级,确定存储所述待存储数据的目标存储节点。
进一步地,处理器1001可以调用存储器1005中存储的云存储程序,还执行以下操作:
分别将各个存储节点的存储能力与预设存储能力范围进行比对;
将存储能力高于预设存储能力范围上限值的存储节点确定为高优先级待选存储节点集合;
将存储能力处于预设存储能力范围内的存储节点确定为中优先级待选存储节点集合;
将存储节点处理能力低于预设存储能力范围下限值的存储节点确定为低优先级待选存储节点集合;
根据所述待存储数据的优先级,按照预设规则,从各个优先级的待选存储节点集合中确定匹配的待选存储节点集合,并从所述匹配的待选存储节点集合中选取存储节点,作为存储所述待存储数据的目标存储节点。
进一步地,处理器1001可以调用存储器1005中存储的云存储程序,还执行以下操作:
分别将各个存储节点的预等待时间与预设等待时间阈值进行比对;
将预等待时间超出预设等待时间阈值的存储节点,作为无效存储节点。
基于上述终端的硬件结构,提出本发明云存储方法的各个实施例。
参照图2,本发明云存储方法第一实施例提供一种云存储方法,所述方法包括:
步骤s10,在接收到数据存储请求时,确定待存储数据的优先级,并获取当前周期内云平台各个存储节点的运行状态信息;
本发明实施例中,云平台可以接收用户发送的数据存储请求,用户发送的数据存储请求携带有待存储数据和其对应的优先级。其中,待存储数据对应的优先级是用户在触发数据存储请求时进行设定的,比如,用户可以设定的优先级范围为1~100,数值越小,表示待存储数据的优先级越低。云平台在接收到数据存储请求时,确定待存储数据的优先级,将优先级数值低于40的待存储数据划分为低优先级,将优先级数值处于40-80之间的待存储数据划分为中优先级,将优先级数值高于80的待存储数据划分为高优先级。需要说明的是,本发明实施例对划分用户触发数据存储请求时设定的优先级的划分范围不作限定。同时,云平台获取当前周期内云平台各个存储节点的运行状态信息。在本发明实施例中,云平台每间隔时间t,可以接收到各个存储节点发送的运行状态信息,该运行状态信息包括存储节点在当前周期内的硬件状态信息和等待被存储的任务数,硬件状态信息包括但不限于各个存储节点在当前周期内的cpu占用率、内存使用率和网络资源使用率等。
步骤s20,根据各个存储节点的所述运行状态信息,确定各个存储节点的存储能力;
之后,云平台根据各个存储节点的所述运行状态信息,确定各个存储节点的存储能力。具体地,参照图3,步骤s20,可以包括:
步骤s21,根据各个存储节点的所述硬件状态信息,确定各个存储节点基于硬件条件的第一存储能力;
步骤s22,根据各个存储节点的所述等待被存储的任务数,确定各个存储节点基于承载条件的第二存储能力;
步骤s23,根据各个存储节点的所述第一存储能力和第二存储能力,确定各个存储节点的存储能力。
在本发明实施例中,可结合各个存储节点基于硬件条件的存储能力(定义为第一存储能力)和基于承载条件的存储能力(定义为第二存储能力)衡量各个存储节点的存储能力。针对每一个存储节点,存储节点基于硬件条件的第一存储能力可根据存储节点的硬件状态信息确定,例如,可以基于存储节点在当前周期内的cpu占用率、内存使用率和网络资源使用率进行确定。具体地,参照图4,步骤s21,可以包括:
步骤s210,根据各个存储节点的所述cpu占用率、内存使用率和网络资源使用率,以及预设计算公式,计算各个存储节点基于硬件条件的第一存储能力。
在本发明实施例中,可以针对存储节点的硬件状态信息设置对应的权重值。将cpu占用率所对应的权重用a1表示;将内存使用率所对应的权重用a2表示;将网络资源使用率所对应的权重用a3表示,且a1+a2+a3=1。本发明实施例中预先设置有计算存储节点基于硬件条件的第一存储能力的公式,如下所示:
a=a1x1+a2x2+a3x3
其中,a表示存储节点基于硬件条件的第一存储能力;
x1表示cpu占用率,x2表示内存使用率,x3表示网络资源使用率。
当然,若存储节点的硬件状态信息还包括其他因子时,以此类推,可以针对硬件状态信息的每一个因子设置一个权重值,那么,存储节点基于硬件条件的第一存储能力计算公式即为:
a=a1x1+a2x2+a3x3+…+anxn
其中,x1、x2、x3...xn分别表示硬件状态信息的各个因子;
a1、a2、a3...an表示硬件状态信息各个因子对应的权重大小,且a1+a2+a3+...+an=1。
由此,基于各个存储节点的cpu占用率、内存使用率和网络资源使用率,以及上述基于硬件条件的第一存储能力计算公式,即可分别计算任意一个存储节点对应的基于硬件条件的第一存储能力,从而得到各个存储节点基于硬件条件的第一存储能力。
在本发明实施例中,各个存储节点基于承载条件的第二存储能力可根据存储节点的等待被存储的任务数确定。具体地,继续参照图4,步骤s22可以包括:
步骤s220,确定云平台存储节点集群存储单个存储任务的平均时间;
步骤s221,根据所述存储单个存储任务的平均时间和各个存储节点的等待被存储的任务数,计算各个存储节点的预等待时间;
步骤s222,根据所述各个存储节点的预等待时间,确定各个存储节点基于承载条件的第二存储能力。
在本发明例中,云平台每间隔时间t,还可以接收到各个存储节点发送的已完成存储任务总数。云平台可以根据存储节点集群在当前周期之前各个周期t内完成的存储任务总数,确定云平台存储节点集群存储单个存储任务的平均时间。基于云平台存储节点集群存储单个存储任务的平均时间和任意一个存储节点的等待被存储的任务数,即可计算任意一个存储节点若存储当前待存储数据所需等待的时间,定义任意一个存储节点若存储当前待存储数据所需等待的时间为预等待时间,计算预等待时间的计算公式如下:
tw=mt
其中,tw表示预等待时间;
m表示任意一个存储节点的等待被存储的任务数;
t表示云平台存储节点集群存储单个存储任务的平均时间。
由此,针对每一个存储节点,基于云平台存储节点集群存储单个存储任务的平均时间和等待被存储的任务数,以及上述预等待时间的计算公式,可计算得到该存储节点的预等待时间,如此,即可得到各个存储节点对应的预等待时间。之后,可以针对各个存储节点对应的预等待时间设置对应的权重值,用来表示各个存储节点基于承载条件的第二存储能力。进一步地,将任意一个存储节点基于硬件条件的第一存储能力和基于承载条件的第二存储能力进行加和计算后,即可确定该存储节点的存储能力。需要说明的是,相应权重值的具体数值大小,可以预先设置,也可以根据实际情况进行确定和调整,本发明实施例对此不作限定。
步骤s30,根据所述待存储数据的优先级和各个存储节点的所述存储能力,确定存储所述待存储数据的目标存储节点。
其中,步骤s30,可以包括:
步骤s31,根据各个存储节点的所述存储能力,设置各个存储节点的优先级,并根据所述待存储数据的优先级和各个存储节点的所述优先级,确定存储所述待存储数据的目标存储节点。
具体地,参照图5,步骤s31可以包括:
步骤s310,分别将各个存储节点的存储能力与预设存储能力范围进行比对;
步骤s311,将存储能力高于预设存储能力范围上限值的存储节点确定为高优先级待选存储节点集合;
步骤s312,将存储能力处于预设存储能力范围内的存储节点确定为中优先级待选存储节点集合;
步骤s313,将存储节点处理能力低于预设存储能力范围下限值的存储节点确定为低优先级待选存储节点集合;
步骤s314,根据所述待存储数据的优先级,按照预设规则,从各个优先级的待选存储节点集合中确定匹配的待选存储节点集合,并从所述匹配的待选存储节点集合中选取存储节点,作为存储所述待存储数据的目标存储节点。
在本发明实施例中,云平台可以预先设置一个存储能力范围,基于该范围和各个存储节点的存储能力,为各个存储节点划分优先级。具体地,云平台在得到各个存储节点的存储能力后,分别将各个存储节点的存储能力与预设存储能力范围进行比对,将存储能力高于预设存储能力范围上限值的存储节点确定为高优先级待选存储节点集合,将存储能力处于预设存储能力范围内的存储节点确定为中优先级待选存储节点集合,将存储节点处理能力低于预设存储能力范围下限值的存储节点确定为低优先级待选存储节点集合。
之后,可以根据待存储数据的优先级,按照预先设定的规则,从各个优先级的待选存储节点集合中确定匹配的待选存储节点集合,并从匹配的待选存储节点集合中选取存储节点,作为存储所述待存储数据的目标存储节点。比如,若待存储数据的优先级为高优先级,则从高优先级待选存储节点集合中随机选择一个存储节点作为存储所述待存储数据的目标存储节点;若待存储数据的优先级为中优先级,则从中优先级待选存储节点集合中随机选择一个存储节点作为存储所述待存储数据的目标存储节点;若待存储数据的优先级为低优先级,则从低优先级待选存储节点集合中随机选择一个存储节点作为存储所述待存储数据的目标存储节点。如此,实现待存储数据的优先级与存储节点的存储能力进行匹配,不仅满足用户的需求,且实现对云平台存储节点资源的合理有效利用,从而提高了云存储的速度。
本发明实施例在接收到数据存储请求时,首先确定用户为待存储数据所设置的优先级,并基于当前周期内云平台各个存储节点的运行状态信息,确定各个存储节点的存储能力,依据待存储数据的优先级和各个存储节点的存储能力确定存储待存储数据存储节点,不仅满足用户的需求,且实现对云平台存储节点资源的合理有效利用,从而有效提高云存储的速度,提升了用户体验,提升了用户体验。
进一步地,参照图5,本发明云存储方法第二实施例提供一种云存储方法,基于上述图2所示的实施例,步骤s220,可以包括:
步骤s2200,确定当前周期之前待计算的各个周期;
步骤s2201,获取云平台存储节点集群在所述待计算的各个周期内完成的存储任务总数;
步骤s2202,计算云平台存储节点集群在所述待计算的各个周期内的单个存储任务完成时间;
步骤s2203,计算所述单个存储任务完成时间的平均值,作为云平台存储节点集群存储单个存储任务的平均时间。
在本发明实施例中,为了计算各个存储节点的预等待时间,需确定云平台存储节点集群存储单个存储任务的平均时间。具体地,云平台每间隔时间t,可以接收到各个存储节点发送的已完成的存储任务总数。为了减少计算量,不影响云平台的性能,不必基于当前周期之前的所有周期,来确定云平台存储节点集群存储单个存储任务的平均时间,本发明实施例选取当前周期之前任意n个周期作为待计算的周期,且n≥2。针对待计算的周期中的任意一个周期ti,首先基于云平台存储节点集群在ti内完成的任务总数m,计算ti与m的比值,即得到云平台存储节点集群在ti内的单个存储任务完成时间ti,由此,可得到云平台存储节点集群在待计算的各个周期内的单个存储任务完成时间,然后计算单个存储任务完成时间的平均值,作为云平台存储节点集群存储单个存储任务的平均时间。
在本实施例中,基于当前周期之前各个周期内的完成的存储任务的总数,可以确定云平台存储节点集群存储单个存储任务的平均时间,由此可以计算各个存储节点的预等待时间,从而确定各个存储节点的基于承载条件的存储能力。
进一步地,本发明云存储方法第三实施例提供一种云存储方法,基于上述图2所示的实施例,步骤s222之前,可以包括:
步骤s223,分别将各个存储节点的预等待时间与预设等待时间阈值进行比对;
步骤s224,将预等待时间超出预设等待时间阈值的存储节点,作为无效存储节点。
在本发明实施例中,当云平台存储节点的预等待时间过长时,说明该存储节点负载较重,为了避免影响该存储节点的性能,保证待存储数据的及时存储,本发明实施例可以预先设置等待时间阈值。云平台在计算得到各个存储节点对应的预等待时间后,分别将各个存储节点的预等待时间与预设等待时间阈值进行比对。对于预等待时间超出预设等待时间阈值的存储节点,说明当前负载较重,不作为处理待存储数据所要考虑的存储节点。需要说明的是,等待时间阈值可以根据实际情况进行灵活设置,本发明实施例对此不作限定。
在本发明实施例中,通过设置等待时间阈值,并将各个存储节点对应的预等待时间与等待时间阈值进行比较,可以有效避免云平台选取负载较重的存储节点作为存储待存储数据的存储节点。
此外,本发明实施例还提出一种计算机可读存储介质,
本发明计算机可读存储介质上存储有云存储程序,所述云存储程序被处理器执行时实现如下操作:
在接收到数据存储请求时,确定待存储数据的优先级,并获取当前周期内云平台各个存储节点的运行状态信息;
根据各个存储节点的所述运行状态信息,确定各个存储节点的存储能力;
根据所述待存储数据的优先级和各个存储节点的所述存储能力,确定存储所述待存储数据的目标存储节点。
本发明计算机可读存储介质的具体实施例与上述云存储方法各实施例基本相同,在此不作赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。