云盘分配方法、装置、电子设备及存储介质与流程

文档序号:22400712发布日期:2020-09-29 18:13阅读:329来源:国知局
云盘分配方法、装置、电子设备及存储介质与流程
本申请涉及人工智能和云存储
技术领域
,具体而言,本申请涉及一种云盘分配方法、装置、电子设备及存储介质。
背景技术
:世界知名云服务供应商amazon公司在2009年推出了云块存储技术来支持对数据的存储管理。云盘是云块存储技术的典型应用产品,是为云服务器实例提供高效可靠的存储设备,是一种高可用、高可靠、低成本、可定制化的块存储设备,支持数据块级别的持久性存储。一个典型的云块存储系统由客户端、虚拟机、云盘和存储端四部分组成。用户在自己的虚拟机上运行应用程序,并可以为自己申请大量的云盘来满足虚拟机的存储需求。而云盘的实际存储空间来自于后端存储的分配。考虑到数据安全性和管理便利性,云服务提供商多将存储端划分为多个物理隔离的机房,每个机房称之为仓库。云盘通过一定的分配策略选择仓库进行存储空间分配。目前,云盘分配策略大多结合云盘的申请容量和各仓库剩余容量来制定,通常选择剩余容量最多的仓库进行分配。然而,随着大数据时代到来,云盘租户数(包括企业用户和个人用户)越来越多,数据量在云块存储系统中急剧增长,使得现有分配策略逐渐暴露出一些弊端。由于现有的云盘分配策略考虑维度单一,导致云块存储系统的资源利用率低,负载不均衡等问题,使得云数据中心的物理成本和运维成本消耗巨大。技术实现要素:本申请实施例提供了一种云盘分配方法、装置、电子设备及存储介质,可以解决现有技术中存在的问题中的至少一项。本申请实施例提供的具体技术方案如下:本申请实施例提供了一种云盘分配方法,该方法包括:获取云盘分配请求,云盘分配请求中包含云盘请求特征的特征值;基于云盘请求特征的特征值,确定云盘分配请求所对应的负载特征的特征值;基于云盘请求特征的特征值和负载特征的特征值,从各候选存储仓库中确定云盘分配请求所对应的目标存储仓库;从目标存储仓库中,确定与云盘分配请求匹配的存储空间作为目标云盘。本申请实施例提供了一种云盘分配装置,该装置包括:获取模块,用于获取云盘分配请求,云盘分配请求中包含云盘请求特征的特征值;第一确定模块,用于基于云盘请求特征的特征值,确定云盘分配请求所对应的负载特征的特征值;第二确定模块,用于基于云盘请求特征的特征值和负载特征的特征值,从各候选存储仓库中确定云盘分配请求所对应的目标存储仓库;第三确定模块,用于从目标存储仓库中,确定与云盘分配请求匹配的存储空间作为目标云盘。本申请实施例还提供了一种电子设备,该电子设备包括一个或多个处理器;存储器;一个或多个计算机程序,其中一个或多个计算机程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序被配置用于执行如本申请实施例提供的方法。本申请实施例还提供了一种计算机可读存储介质,计算机可读存储介质用于存储计算机程序,当计算机程序在处理器上运行时,使得处理器可以执行如本申请实施例提供的方法。本申请提供的技术方案带来的有益效果是:本申请提供了一种云盘分配方法、装置、电子设备及存储介质,基于云盘分配请求中包含的云盘请求特征的特征值,确定负载特征的特征值;基于云盘请求特征的特征值和负载特征的特征值,从各候选存储仓库中确定目标存储仓库,进而从目标存储仓库中确定与云盘分配请求匹配的存储空间作为目标云盘。其中,基于云盘请求特征的特征值和负载特征的特征值最终确定目标云盘,从多个维度实现了云盘的相对均衡分配,减少了云块存储系统中各个存储仓库负载不均衡的问题,降低了存储仓库资源过载的风险,提高了云块存储系统的资源利用率。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。图1为本申请实施例提供的云盘分配方法的系统架构示意图;图2为本申请实施例提供的云盘分配方法的流程图;图3为本申请实施例提供的云盘分配系统的示意图;图4为本申请实施例提供的云盘分配过程的示意图;图5为本申请实施例提供的云盘分配装置的结构示意图;图6为本申请实施例提供的电子设备的结构示意图。具体实施方式下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。本
技术领域
技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。云存储(cloudstorage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。目前,存储系统的存储方法为:创建逻辑卷,在创建逻辑卷时,就为每个逻辑卷分配物理存储空间,该物理存储空间可能是某个存储设备或者某几个存储设备的磁盘组成。客户端在某一逻辑卷上存储数据,也就是将数据存储在文件系统上,文件系统将数据分成许多部分,每一部分是一个对象,对象不仅包含数据而且还包含数据标识(id,identity)等额外的信息,文件系统将每个对象分别写入该逻辑卷的物理存储空间,且文件系统会记录每个对象的存储位置信息,从而当客户端请求访问数据时,文件系统能够根据每个对象的存储位置信息让客户端对数据进行访问。存储系统为逻辑卷分配物理存储空间的过程,具体为:按照对存储于逻辑卷的对象的容量估量(该估量往往相对于实际要存储的对象的容量有很大余量)和独立冗余磁盘阵列(raid,redundantarrayofindependentdisk)的组别,预先将物理存储空间划分成分条,一个逻辑卷可以理解为一个分条,从而为逻辑卷分配了物理存储空间。人工智能云服务,一般也被称作是aiaas(aiasaservice,中文为“ai即服务”)。这是目前主流的一种人工智能平台的服务方式,具体来说aiaas平台会把几类常见的ai服务进行拆分,并在云端提供独立或者打包的服务。这种服务模式类似于开了一个ai主题商城:所有的开发者都可以通过api接口的方式来接入使用平台提供的一种或者是多种人工智能服务,部分资深的开发者还可以使用平台提供的ai框架和ai基础设施来部署和运维自已专属的云人工智能服务。机器学习(machinelearning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。本申请技术方案的执行主体为服务器,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。下面通过一个实施例介绍本申请技术方案的系统架构。如图1所示,云块存储系统由客户端、虚拟机、云盘和存储端四部分组成。云盘以虚拟卷的形式挂载到虚拟机上,用户通过客户端(虚拟机上的应用程序)可以像访问本地硬盘一样访问远在云端的数据。客户端和服务器(图中未示出)进行通信,向服务器发送云盘分配请求,服务器和虚拟机、存储端进行通信,服务器根据云盘分配请求,获取存储端的各存储仓库的各类资源数据,为虚拟机上的云盘分配存储空间。具体的,服务器接收到的云盘分配请求中包含云盘请求特征的特征值。服务器基于云盘分配请求所对应的云盘请求特征的特征值,确定云盘分配请求所对应的负载特征的特征值,基于云盘请求特征的特征值和负载特征的特征值,确定云盘分配策略,从各候选存储仓库(如图中所示的仓库1、仓库2、…仓库n)中确定云盘分配请求所对应的目标存储仓库,为新云盘分配存储空间。其中,各候选存储仓库受各类资源的限制,如图所示,各类资源包括容量、每秒读写次数(input/outputoperationspersecond,iops)、存储带宽。由于存储端被划分成了很多存储仓库,为了保证各存储仓库的负载均衡,以及资源利用率的最大化,需要多维分配策略为新云盘选择合适的存储仓库进行资源分配。本申请实施例提供了一种云盘分配方法,如图2所示,该方法包括:步骤s101,获取云盘分配请求,云盘分配请求中包含云盘请求特征的特征值;服务器接收用户通过客户端发送的云盘分配请求,云盘分配请求中包含云盘请求特征的特征值。其中,云盘分配请求即为申请新云盘(也可以称为待分配云盘)的请求,根据该请求所分配的云盘可以称为目标云盘。云盘请求特征即为想要申请的新云盘的属性,如云盘类型、云盘大小、申请云盘的用户类型(如是否是vip)等,云盘请求特征的特征值即为属性的属性值,如对于云盘大小这一属性,属性值即为所申请的新云盘的容量的大小的值,即存储空间的容量值;再例如,对于申请云盘的用户类型这一特征,特征值即为是或者否。需要说明的是,本申请实施例中的云盘分配请求可以是用户想要申请一个免费云盘的请求,也可以是用户想要申请的需要付费的云盘的请求,其中,本申请实施例中的用户可以是个人用户,也可以是企业用户等,本申请实施例不做限定。本申请实施例的方案可以适用于任何进行云盘申请/分配的应用场景中。可以理解的是,云盘分配请求即为用户想要订购(即申请)一个新云盘的请求,因此,云盘请求特征也可以称为云盘的订购特征。可选的,云盘订购特征可以如表1所示。订购特征的特征值为订购特征的值,云盘的订购属性信息可以包括以下至少一项:云盘类型:云盘的使用类型,包括数据盘和系统盘两种;云盘大小:云盘的容量大小;云盘的用户属性:云盘用户是否为vip;云盘所在虚拟机的属性信息:云盘所在虚拟机的属性信息包括虚拟机cpu核数、虚拟机内存、虚拟机类型中的至少一项,其中,虚拟机类型即虚拟机的配置信息,虚拟机配置是否为1核cpu,1gb内存(也称为云盘对应云服务器的选型);支付模式:用户的付款方式;本地盘属性:云盘是否为本地盘;快照大小:云盘的备份快照容量大小。订购特征含义disk_type云盘类型为数据盘或系统盘is_vip用户是否为vip用户vm_cpu用户虚拟机的cpu核数vm_mem用户虚拟机的内存大小pay_mode用户付款方式is_local云盘是否属于本地盘is_1c1g云盘对应云服务器的选型snap_use快照大小disk_size云盘容量大小表1步骤s102,基于云盘请求特征的特征值,确定云盘分配请求所对应的负载特征的特征值;具体的,服务器可以基于云盘请求特征的特征值,对云盘分配请求所对应的负载特征的特征值进行预测,预测出云盘分配请求所对应的负载特征的特征值,进而确定云盘分配策略。其中,云盘的负载特征为云盘的负载属性信息的特征,负载特征的特征值为负载特征的值,云盘的负载属性信息可以包括多个维度,具体可以包括以下至少一项:平均iops、峰值iops、平均存储带宽、峰值存储带宽。具体的,平均iops可以包括预设时间段内的iops平均值,例如,云盘30天内的iops平均值;峰值iops可以包括预设时间段内的iops的最大值,例如,云盘30天内的iops最大值;平均存储带宽可以包括预设时间段内的存储带宽平均值,例如,云盘30天内的存储带宽平均值;峰值存储带宽可以包括预设时间段内的存储带宽的最大值,例如,云盘30天内的存储带宽最大值。在本申请技术方案中,可以基于云盘请求特征的特征值,以及已分配云盘的与云盘请求特征相对应的特征的特征值和负载特征的特征值之间的相互关系,预测出云盘分配请求所对应的负载特征的特征值,具体见如下实施例。在一种可能的实现方式中,基于云盘请求特征的特征值,确定云盘分配请求所对应的负载特征的特征值,包括:基于云盘请求特征的特征值,确定云盘分配请求所对应的云盘目标类别;基于属于云盘目标类别的各已分配云盘的负载特征的特征值,确定云盘分配请求所对应的负载特征的特征值。在实际应用中,可以根据云盘请求特征的特征值来预测负载特征的特征值。对已分配云盘进行分类,得到多个云盘类别,在需要分配新云盘时,则可以首先预测该新云盘的类型,由于已分配的云盘的负载特征的特征值已知,因此,可以基于同一类别的已分配云盘的负载特征的特征值,确定云盘分配请求所对应的负载特征的特征值,也就是即将分配的新云盘的负载特征的特征值的预测值。其中,若已分配云盘的负载特征包括多个维度,则相应的预测出的云盘分配请求所对应的负载特征也可以包括多个维度。在一示例中,基于新云盘a1的订购特征,确定了新云盘a1为b1类云盘,属于b1类的已分配云盘有10个,分别为b1、b2、…b10,则将这10个已分配云盘的负载特征的均值,作为新云盘a1的负载特征的预测值。若每个已分配云盘的负载特征分别包括3个维度,则预测出的新云盘的负载特征也包括3个维度,每个维度的负载特征的特征值为10个已分配云盘的相应维度的负载特征的特征值的均值。本申请实施例中,基于云盘请求特征的特征值,以及属于目标类别的各已分配云盘的负载特征的特征值,预测云盘分配请求所对应的负载特征的特征值,基于与新云盘的同一类别的已分配云盘的负载特征的特征值,得到的云盘分配请求所对应的负载特征的特征值的准确度较高,便于根据预测结果优化云盘分配策略。其中,如何根据云盘分配请求所对应的订购特征的特征值,确定云盘分配请求所对应的云盘目标类别,具体见如下实施例。在一种可能的实现方式中,基于云盘请求特征的特征值,确定云盘分配请求所对应的云盘目标类别,包括:基于云盘请求特征的特征值,通过云盘分类器得到云盘分配请求所对应的云盘目标类别;其中,云盘分类器是通过以下方式训练得到的:获取训练数据集,训练数据集包括各训练样本,每个训练样本包括样本云盘的各目标云盘请求特征的特征值和样本云盘的类别标签;基于各训练样本对初始分类器进行训练,直至满足预设的训练结束条件,将训练结束时的初始分类器作为云盘分类器;其中,初始分类器的输入为样本云盘的各目标云盘请求特征的特征值,输出为样本云盘的类别标签。在实际应用中,基于云盘请求特征的特征值,通过云盘分类器对即将分配的新云盘进行分类,确定新云盘的目标类别。可选的,云盘分类器的具体形式本申请实施例不做限定,如可以是但不限于基于以下任一算法的分类器:决策树分类算法、集成学习分类算法、随机森林分类算法等。在实际应用,可以根据实际应用需求和应用场景来选择或配置具体采用哪种分类器,例如,可以从分类器的分类性能,分类器的训练复杂度或者成本等多个方便考虑。训练云盘分类器的具体过程可以包括:首先获取训练样本集,每个训练样本包括样本云盘的各目标云盘请求特征的特征值和样本云盘的类别标签,训练样本集中的样本云盘为已分配云盘的全部或部分,目标云盘请求特征是根据已分配云盘的云盘请求特征确定的,例如,目标云盘请求特征可以是按照一定策略选择出的一个或多个云盘请求特征,样本云盘的类别标签为已分配云盘对应的目标类别的标签。基于各训练样本对初始分类器进行训练,直至满足预设的训练结束条件,将训练结束时的初始分类器作为云盘分类器;其中,初始分类器的输入为样本云盘的各目标云盘请求特征的特征值,输出为样本云盘的类别标签。本申请实施例中,基于已分配云盘的历史数据,训练云盘分类器,以使得云盘分离器预测出的样本云盘的类别逼近样本云盘的类别标签。在得到训练好的云盘分离器之后,则可以将新云盘的各目标特征的特征值输入至该云盘分类器中,通过云盘分类器得到云盘分配请求所对应的云盘目标类别。在得到云盘分配请求所对应的云盘目标类别后,可以基于云盘分配请求所对应的云盘类别,预测云盘分配请求对应的新云盘的负载特征的特征值,从而可以进一步根据云盘请求特征的特征值和负载特征的特征值,确定出对应的存储仓库。其中,各样本云盘的类别标签是通过负载特征确定的,具体见如下实施例。在一种可能的实现方式中,各样本云盘的类别标签是通过以下方式得到的:获取各样本云盘的负载特征的特征值;对各样本云盘的负载特征进行聚类,得到各聚类类别;基于各聚类类别,确定各样本云盘的类别标签。在实际应用中,各样本云盘可以为已分配云盘,已分配云盘运行一段时间之后,得到各云盘对应的负载特征。根据各样本云盘的负载特征构建基于机器学习的云盘聚类器,用于将负载特征相似的云盘聚为一类,得到各聚类类别,并确定各聚类类别对应的聚类标签。其中,可以根据实际应用需求和应用场景来选择或配置具体采用哪种聚类器,例如,可以从聚类器的聚类性能,聚类器的训练复杂度或者成本等多个方便考虑。云盘聚类器的形式本公开实施例不做限定,可选的,云盘聚类器可以是基于以下任一项聚类算法的聚类器:k均值聚类算法(k-meansclusteringalgorithm)、层次聚类算法(agglomerativenesting,agnes)、基于密度空间的聚类算法(density-basedspatialclusteringofapplicationswithnoise,dbscan)。可选的,k-means聚类算法的k值可以根据经验值、实验值或者采用预配置的策略确定,如可以采用肘部法则确定k值,以保证很好的聚类精度,作为一可选方案,k的取值可以为3。本申请实施例中,通过对样本云盘的负载特征进行聚类,可以得到各样本云盘的类别标签,即通过对各样本云盘的负载特征进行聚类,基于负载特征的聚类结果,得到云盘的分类结果,该分类结果即可以作为样本云盘的类别标签,以用于云盘分类器的训练。在一种可能的实现方式中,样本云盘的负载特征包括以下至少一项:平均iops、峰值iops、平均存储带宽、峰值存储带宽。在实际应用中,获取训练样本集之后,还可以包括对训练样本集中的每个训练样本进行预处理的步骤,可以将样本云盘预设时间段内的负载特征进行预处理,得到预设时间段内的负载特征均值。在一示例中,训练数据集中的训练样本可以包括20000个样本云盘30天的负载特征的特征值,假设每个样本云盘每5分钟记录一次的负载特征的特征值,则一个云盘30天内就有8640个时间戳对应的负载特征,计算每个样本云盘30天内负载特征的均值,得到预处理之后的负载特征用于进行聚类。另外,云盘分类器的训练样本中除了样本云盘的类别标签,还包括各目标云盘请求特征的特征值,由前文描述可知,目标云盘请求特征可以根据经验值、实验值或者云盘请求特征的重要性等各项信息中的至少一项确定,当然也可以根据预配的策略来确定,以筛选出更加重要、对云盘分配结果具有更大影响的各云盘请求特征,为进一步提高云存储系统的资源利用率提供基础。在一种可能的实现方式中,对于各样本云盘,各目标云盘请求特征是通过以下方式确定的:获取候选特征集合,候选特征集合中包含各样本云盘的各候选云盘请求特征;依据各候选云盘请求特征的重要性,从候选特征集合中筛选第一目标特征集合;其中,第一目标特征集合中包含至少一个候选云盘请求特征、且云盘分类器对应于第一目标特征集合的第一分类准确度大于云盘分类器对应于第二目标特征集合的第二分类准确度,其中,第二目标特征集合包含第一目标特征集合、以及候选特征集合中除第一目标特征集合之外的各候选云盘请求特征中重要性最大的候选云盘请求特征。在实际应用中,候选特征集合是候选云盘请求特征组成的集合,从候选特征集合中按照各候选云盘请求特征的重要性,筛选出第一目标特征集合。其中,各候选云盘请求特征的重要性可以通过特征重要性参数来表征。基于该可选方案,可以得到分类准确度最好的目标特征集合作为最终选择的目标特征集合,即通过该方案可以筛选出尽可能多的、且分类准准确度尽可能高的各目标云盘请求特征。在一示例中,从候选特征集合中筛选出的目标特征包括:云盘类型,云盘容量、本地盘属性、虚拟机内存大小、虚拟机cpu核数。本申请实施例中,依据各候选云盘请求特征的重要性,筛选目标特征集合,解决了影响较小的特征对云盘分类器的干扰问题,并减少云盘分类器的训练时间。对于从候选特征集合中筛选第一目标特征集合的具体实现方式见如下实施例。在一种可能的实现方式中,依据各候选云盘请求特征的重要性,从候选特征集合中筛选第一目标特征集合,包括:根据各候选云盘请求特征的重要性循环执行以下操作,直至第二分类准确度小于第一分类准确度,将循环结束时的初始集合作为第一目标特征集合;根据各候选云盘请求特征的重要性,从候选特征集合中筛选出重要性最大的候选云盘请求特征添加到初始集合中,并将添加至第一目标特征集合中的候选云盘请求特征从候选特征集合中删除;基于删除后的候选特征集合中重要性最大的候选云盘请求特征和第一目标特征集合构建第二目标特征集合;确定云盘分类器分别对应于第一目标特征集合和第二目标特征集合的第一分类准确度和第二分类准确度。在实际应用中,依次从候选特征集合中筛选出重要性最大的候选云盘请求特征添加到初始集合中,并将添加至第一目标特征集合中的候选云盘请求特征从候选特征集合中删除,基于删除后的候选特征集合中重要性最大的候选云盘请求特征和第一目标特征集合构建第二目标特征集合,确定云盘分类器分别对应于第一目标特征集合和第二目标特征集合的第一分类准确度和第二分类准确度,根据各候选云盘请求特征的重要性循环执行上述操作,直至第二分类准确度小于第一分类准确度,将循环结束时的初始集合作为第一目标特征集合,利用最终得到的第一目标特征集合训练云盘分类器。在一示例中,可以采用决策树训练过程中的特征重要性即feature_importance指标来进行特征选择。feature_importance又称为基尼重要性,用于衡量基尼指数的变化。基尼指数表示在样本集合中一个随机选中的样本被分错的概率。某属性的基尼指数越大,说明根据该属性的分类越不合理;基尼指数越小,说明根据该属性分类越好。那么某属性的feature_importance越大,说明它的基尼指数变化越大,则该属性越重要。假设候选特征集合为a,其中包含9个候选订购特征{disk_size、vm_mem、vm_cpu、disk_type、is_local、is_vip、pay_mode、is_1c1g、snap_use}。在目标特征选择过程中,将其作为特征值训练决策树分类器,得到每个特征对应分类时的feature_importance指标,该值越大,表示该特征对分类越有帮助。每次特征选择从候选特征集合中选择feature_importance指标最大的特征值,加入到特征集合b,并在a集合中删除该特征。表2展示了本申请一示例中目标特征选择过程中的feature_importance变化过程。每一次目标特征选择过程中,选择feature_importance最高的特征作为目标特征加入集合b。表2如表2中所示,表中的数值记为各订购特征对应的feature_importance的值。每次有新的目标特征加入b集合中,将对特征加入前后分类的准确度进行比较。准确度是指云盘分类器预测正确的样本占总样本的比例。一旦出现准确度下降的情况,证明该特征对分类器产生了干扰,则将该特征从b中剔除。此时特征选择过程结束,集合b作为最终的目标特征集合。如表1中所示,在进行第一次特征选择时(表中所示的次数2),disk_size的feature_importance的值最大,将其加入集合b中,下一次选择时,将vm_mem加入,并计算加入vm_mem前后所对应的分类器的准确度,如果加入后的准确度更高,则继续进行选择,如果准确度下降,则将加入前的集合确定为目标特征集合。作为一示例,表3展示了特征选择过程中预测准确度的变化,当目标特征集合b为{disk_size、vm_mem、vm_cpu、disk_type、is_local}时,预测准确度最高。当在第6次特征选择中加入“is_vip”特征后,预测准确度反而出现了小幅的下滑,此时特征选择过程终止。最后,集合b={disk_type、vm_mem、vm_cpu、disk_size、is_local}作为分类器训练的目标特征集合。集合b预测准确度{disk_size}72.7%{disk_size、vm_mem}82.6%{disk_size、vm_mem、disk_type}83.2%{disk_size、vm_mem、vm_cpu、disk_type}83.5%{disk_size、vm_mem、vm_cpu、disk_type、is_local}84.3%{disk_size、vm_mem、vm_cpu、disk_type、is_local、is_vip}84.0%表3在一种可能的实现方式中,各候选云盘请求特征包括以下各项中的至少一项:云盘的使用类型、云盘容量大小、云盘的用户属性信息、云盘所在虚拟机的属性信息、支付模式、本地盘属性、云盘的备份快照容量大小。在实际应用中,候选云盘请求特征可以从云盘云盘请求特征中进行选择,可以选择全部云盘请求特征,也可以选择部分云盘请求特征。步骤s103,基于云盘请求特征的特征值和负载特征的特征值,从各候选存储仓库中确定云盘分配请求所对应的目标存储仓库。具体的,服务器可以基于云盘分配请求所对应的云盘请求特征的特征值和预测出的负载特征的特征值,确定云盘分派策略,从各候选存储仓库中确定云盘分配请求所对应的目标存储仓库,从目标存储仓库中确定云盘分配请求所对应的即将分配的新云盘的存储空间。步骤s104,从目标存储仓库中,确定与云盘分配请求匹配的存储空间作为目标云盘。具体的,可以根据云盘分配请求中包含的云盘请求特征的特征值和负载特征的特征值,从目标存储仓库中确定相应的存储空间作为目标云盘,该存储空间是与云盘分配请求匹配的。在一种可能的实现方式中,基于云盘请求特征的特征值和负载特征的特征值,从各候选存储仓库中确定云盘分配请求所对应的目标存储仓库,包括:根据云盘请求特征的特征值和负载特征的特征值,从满足要求的各存储仓库中筛选云盘分配请求所对应的目标存储仓库;其中,满足要求是指满足云盘请求特征的特征值和负载特征的特征值要求。在实际应用中,目标存储仓库的选择需要考虑云盘请求特征的特征值和负载特征的特征值的要求,在满足要求的情况下,从候选存储仓库中筛选云盘分配请求所对应的目标存储仓库。在一示例中,w={w1,w2,...,wn}来代表n个存储仓库,其中,wn代表第n个存储仓库。对任一存储仓库wj(1≤j≤n)的存储容量(cj)、iops(ij)和存储带宽(bj)的资源上限的值(即负载特征的特征值)用lj={cj,ij,bj}来表示。存储仓库wj的存储容量、iops和存储带宽的实际使用情况用lj={cj,ij,bj}来表示。r={x,y,z}表示新云盘的申请容量、平均iops和平均存储带宽需求。其中,满足要求的存储仓库是指存储仓库wj满足订购特征的特征值和负载特征的特征值要求,具体要求如下:在一种可能的实现方式中,根据云盘请求特征的特征值和负载特征的特征值,从满足要求的各存储仓库中筛选云盘分配请求所对应的目标存储仓库,包括:基于云盘请求特征的特征值和负载特征的特征值,确定若从满足要求的各存储仓库中分配云盘分配请求对应的云盘时,各存储仓库各自对应的资源利用率;基于各存储仓库各自对应的资源利用率,确定云盘分配请求所对应的目标存储仓库。在实际应用中,在得到云盘请求特征的特征值和负载特征的特征值后,就可以结合云盘请求特征的特征值和负载特征的特征值,确定各存储仓库各自对应的资源利用率,根据资源利用率确定云盘分配策略,选择最优存储仓库。云盘分配策略保证用现有存储仓库分配最多的云盘,来达到提高资源利用率的目的,并且保证各存储仓库间的负载均衡,从而可以使云服务运营商的收益最大化,运维成本更低。另外,本申请技术方案还可以通过多个维度的资源利用率,来确定多个维度的云盘分配策略,已实现云盘分类的优化,具体见如下实施例。在一种可能的实现方式中,基于云盘请求特征的特征值和负载特征的特征值,确定若从满足要求的各所述存储仓库中分配所述云盘分配请求对应的云盘时,各存储仓库各自对应的资源利用率,包括:对于每一满足要求的存储仓库,基于云盘请求特征和负载特征中的每一特征的特征值,确定若从满足要求的各存储仓库中分配云盘分配请求对应的云盘时,每一特征各自对应的的资源利用率;基于各存储仓库各自对应的资源利用率,确定云盘分配请求所对应的目标存储仓库,包括:对于每一存储仓库,基于该存储仓库对应于云盘请求特征和负载特征中各特征的资源利用率,确定该存储仓库所对应的平均资源利用率;基于各存储仓库各自所对应于各特征的资源利用率和平均资源利用率,确定云盘分配请求所对应的目标存储仓库。在实际应用中,可以通过云盘请求特征和负载特征中的各个特征的特征值,确定各个特征各自对应的资源利用率,基于各特征的资源利用率和平均资源利用率,进一步制定多维度分配策略,确定云盘分配请求所对应的目标存储仓库,提高云块存储系统整体的资源利用率,并降低负载不均衡度。在一示例中,存储仓库wk的容量、iops和存储带宽的资源利用率可以表示为:其中,分别表示存储仓库wk的容量、iops和存储带宽的资源利用率,ck,ik,bk分别表示存储仓库wk的存储容量、iops和存储带宽的资源上限。ck,ik,bk分别表示存储仓库wk的存储容量、iops和存储带宽的实际使用情况。当若将新云盘分配到存储仓库wj,则存储仓库wj的三个维度资源利用率表示为:其中,分别表示新云盘分配到存储仓库wj后,存储仓库wj的容量、iops和存储带宽三个维度的资源利用率,x,y,z分别表示待分配云盘的申请容量、平均iops和平均存储带宽需求。在一种可能的实现方式中,基于各存储仓库各自所对应于各特征的资源利用率和平均资源利用率,确定云盘分配请求所对应的目标存储仓库,包括:对于每一存储仓库,若从该存储仓库中分配云盘分配请求对应的云盘时,基于该存储仓库对应于云盘请求特征和负载特征中各特征的资源利用率,确定云盘分配请求所对应的云盘与该存储仓库之间的曼哈顿距离;基于各存储仓库所对应的曼哈顿距离,确定云盘分配请求所对应的目标存储仓库。在实际应用中,服务器可以对于每一存储仓库,基于该存储仓库对应于订购特征和负载特征中各特征对应的资源利用率,通过计算新云盘与各存储仓库的曼哈顿距离,来确定云盘分配请求所对应的目标存储仓库。在一示例中,根据公式(3)计算得到容量、iops和存储带宽三个维度的资源利用率之后,进一步计算三个维度的平均资源利用率,作为若将新云盘分配到各存储仓库之后,各存储仓库各自对应的资源利用率。三个维度的平均资源利用率计算公式如下:分配新云盘到存储仓库wj后的曼哈顿距离定义为:选择曼哈顿距离最小的存储仓库作为云盘分配请求所对应的目标存储仓库。本申请实施例提供的云盘分配方法,基于云盘分配请求中包含的云盘请求特征的特征值,确定负载特征的特征值;基于云盘请求特征的特征值和负载特征的特征值,从各候选存储仓库中确定目标存储仓库,进而从目标存储仓库中确定与云盘分配请求匹配的存储空间作为目标云盘。其中,基于云盘请求特征的特征值和负载特征的特征值最终确定目标云盘,从多个维度实现了云盘的相对均衡分配,减少了云块存储系统中各个存储仓库负载不均衡的问题,降低了存储仓库资源过载的风险,提高了云块存储系统的资源利用率。下面通过一个具体的实施例,将本申请技术方案以多个装置组成的云盘分配系统的方式进行解释说明。如图3所示,本申请技术方案的云盘分类系统包括:数据处理装置、离线训练装置、数据预测装置、多维分配装置以及存储装置。其中,数据处理装置用于对已分配云盘(历史云盘)数据进行预处理,如,计算预设周期内的平均负载特征和峰值负载特征等。离线训练装置包括聚类模块和分类模块;聚类模块用于将预处理之后的已分配云盘的负载特征进行聚类,得到各类别的类别标签;分类模块用于利用已分配的云盘的云盘请求特征对应的特征的特征值和聚类所得类别标签,作为训练样本,训练云盘分类器。存储装置包括大量的存储仓库,用于存储客户端申请的云盘,即用于提供存储资源,分配云盘。数据预测装置用于利用云盘分类器预测新云盘的类别,并基于新云盘对应的类别中各已分配云盘的各负载特征,计算云盘分配请求所对应的负载特征。多维分配装置用于利用多维分配策略分配新云盘,确定云盘分配请求所对应的目标存储仓库,通过多维分配策略分配云盘,能够提高云块存储系统的资源利用率,并降低系统的负载不均衡度。下面通过一个具体的实施例,从服务器接收客户端的云盘分配请求到确定云盘分配请求所对应的目标存储仓库的过程进行详细介绍。如图4所示,从服务器接收客户端的云盘分配请求到确定云盘分配请求所对应的目标存储仓库的过程,包括(1)(2)(3)表示的在线多维分配和(4)(5)(6)表示的离线数据分析两个阶段。其中,在线多维分配阶段用于新云盘的分配,客户端向服务器发送云盘分配请求,请求中包括云盘分配请求所对应的订购特征的特征值,将云盘分配请求所对应的订购特征的特征值输入云盘分类器(如图中所示的分类器),云盘分类器预测云盘分配请求所对应的负载特征(如图中所示的负载信息)的特征值,包括:每秒读写次数、存储带宽,基于订购特征中的申请容量(如图中所示的订阅信息)和负载特征的特征值,确定多维度分配策略,基于多维分配策略,从存储端的多个存储仓库中确定目标存储仓库。离线数据分析阶段包括从存储端获取已分配云盘的数据,作为训练样本集(如图中所示的原始数据),对训练样本进行预处理,将其处理成聚类器可用的数据集;将预处理之后的训练样本集的负载特征的特征值输入聚类器进行聚类,得到类别标签;利用已分配的云盘的订购特征的特征值和聚类所得类别标签,训练云盘分类器,最终得到训练完成的云盘分类器。其中,离线数据分析阶段执行一次后,在线多维分配阶段就可以对实时的云盘分配请求进行多维分配,得到各新云盘各自对应的目标存储仓库。基于与图2中所示方法相同的原理,本公开的实施例中还提供了一种云盘分配装置30,如图5所示,该装置30包括:获取模块31,用于获取云盘分配请求,云盘分配请求中包含云盘请求特征的特征值;第一确定模块32,用于基于云盘请求特征的特征值,确定云盘分配请求所对应的负载特征的特征值;第二确定模块33,用于基于云盘请求特征的特征值和负载特征的特征值,从各候选存储仓库中确定云盘分配请求所对应的目标存储仓库;第三确定模块34,用于从目标存储仓库中,确定与云盘分配请求匹配的存储空间作为目标云盘。在一种可能的实现方式中,第一确定模块32,用于:基于云盘请求特征的特征值,确定云盘分配请求所对应的云盘目标类别;基于属于云盘目标类别的各已分配云盘的负载特征的特征值,确定云盘分配请求所对应的负载特征的特征值。在一种可能的实现方式中,第一确定模块32在基于云盘请求特征的特征值,确定云盘分配请求所对应的云盘目标类别时,用于:基于云盘请求特征的特征值,通过云盘分类器得到云盘分配请求所对应的云盘目标类别;其中,云盘分类器是通过以下方式训练得到的:获取训练数据集,训练数据集包括各训练样本,每个训练样本包括样本云盘的各目标云盘请求特征的特征值和样本云盘的类别标签;基于各训练样本对初始分类器进行训练,直至满足预设的训练结束条件,将训练结束时的初始分类器作为云盘分类器;其中,初始分类器的输入为样本云盘的各目标云盘请求特征的特征值,输出为样本云盘的类别标签。在一种可能的实现方式中,各样本云盘的类别标签是通过以下方式得到的:获取各样本云盘的负载特征的特征值;对各样本云盘的负载特征进行聚类,得到各聚类类别;基于各聚类类别,确定各样本云盘的类别标签。在一种可能的实现方式中,样本云盘的负载特征包括以下至少一项:平均每秒读写次数、峰值每秒读写次数、平均存储带宽、峰值存储带宽。在一种可能的实现方式中,对于各样本云盘,各目标云盘请求特征是通过以下方式确定的:获取候选特征集合,候选特征集合中包含各样本云盘的各候选云盘请求特征;依据各候选云盘请求特征的重要性,从候选特征集合中筛选第一目标特征集合;其中,第一目标特征集合中包含至少一个候选云盘请求特征、且云盘分类器对应于第一目标特征集合的第一分类准确度大于云盘分类器对应于第二目标特征集合的第二分类准确度,其中,第二目标特征集合包含第一目标特征集合、以及候选特征集合中除第一目标特征集合之外的各候选云盘请求特征中重要性最大的候选云盘请求特征。在一种可能的实现方式中,依据各候选云盘请求特征的重要性,从候选特征集合中筛选第一目标特征集合,是通过以下方式实现的:根据各候选云盘请求特征的重要性循环执行以下操作,直至第二分类准确度小于第一分类准确度,将循环结束时的初始集合作为第一目标特征集合;根据各候选云盘请求特征的重要性,从候选特征集合中筛选出重要性最大的候选云盘请求特征添加到初始集合中,并将添加至第一目标特征集合中的候选云盘请求特征从候选特征集合中删除;基于删除后的候选特征集合中重要性最大的候选云盘请求特征和第一目标特征集合构建第二目标特征集合;确定云盘分类器分别对应于第一目标特征集合和第二目标特征集合的第一分类准确度和第二分类准确度。在一种可能的实现方式中,各候选云盘请求特征包括以下各项中的至少一项:云盘的使用类型、云盘容量大小、云盘的用户属性信息、云盘所在虚拟机的属性信息、支付模式、本地盘属性、云盘的备份快照容量大小。在一种可能的实现方式中,第二确定模块33,用于:根据云盘请求特征的特征值和负载特征的特征值,从满足要求的各存储仓库中筛选云盘分配请求所对应的目标存储仓库;其中,满足要求是指满足云盘请求特征的特征值和负载特征的特征值要求。在一种可能的实现方式中,第二确定模块33在根据云盘请求特征的特征值和负载特征的特征值,从满足要求的各存储仓库中筛选云盘分配请求所对应的目标存储仓库时,用于:基于云盘请求特征的特征值和负载特征的特征值,确定若从满足要求的各存储仓库中分配云盘分配请求对应的云盘时,各存储仓库各自对应的资源利用率;基于各存储仓库各自对应的资源利用率,确定云盘分配请求所对应的目标存储仓库。在一种可能的实现方式中,第二确定模块33在基于云盘请求特征的特征值和负载特征的特征值,确定若从满足要求的各存储仓库中分配云盘分配请求对应的云盘时,各存储仓库各自对应的资源利用率时,用于:对于每一满足要求的存储仓库,基于云盘请求特征和负载特征中的每一特征的特征值,确定若从满足要求的各存储仓库中分配云盘分配请求对应的云盘时,每一特征各自对应的的资源利用率;第二确定模块33在基于各存储仓库各自对应的资源利用率,确定云盘分配请求所对应的目标存储仓库时,用于:对于每一存储仓库,基于该存储仓库对应于云盘请求特征和负载特征中各特征的资源利用率,确定该存储仓库所对应的平均资源利用率;基于各存储仓库各自所对应于各特征的资源利用率和平均资源利用率,确定云盘分配请求所对应的目标存储仓库。在一种可能的实现方式中,第二确定模块33在基于各存储仓库各自所对应于各特征的资源利用率和平均资源利用率,确定云盘分配请求所对应对应的目标存储仓库时,用于:对于每一存储仓库,若从该存储仓库中分配云盘分配请求对应的云盘时,基于该存储仓库对应于云盘请求特征和负载特征中各特征的资源利用率,确定云盘分配请求所对应的云盘与该存储仓库之间的曼哈顿距离;基于各存储仓库所对应的曼哈顿距离,确定云盘分配请求所对应的目标存储仓库。本申请提供了一种云盘分配装置,基于云盘分配请求中包含的云盘请求特征的特征值,确定负载特征的特征值;基于云盘请求特征的特征值和负载特征的特征值,从各候选存储仓库中确定目标存储仓库,进而从目标存储仓库中确定与云盘分配请求匹配的存储空间作为目标云盘。其中,基于云盘请求特征的特征值和负载特征的特征值最终确定目标云盘,从多个维度实现了云盘的相对均衡分配,减少了云块存储系统中各个存储仓库负载不均衡的问题,降低了存储仓库资源过载的风险,提高了云块存储系统的资源利用率。上述实施例从虚拟模块的角度介绍了云盘分配装置,下述从实体模块的角度介绍一种电子设备,具体如下所示:本申请实施例提供了一种电子设备,如图6所示,图6所示的电子设备9000包括:处理器9001和存储器9003。其中,处理器9001和存储器9003相连,如通过总线9002相连。可选地,电子设备9000还可以包括收发器9004。需要说明的是,实际应用中收发器9004不限于一个,该电子设备9000的结构并不构成对本申请实施例的限定。处理器9001可以是cpu,通用处理器,gpu,dsp,asic,fpga或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器9001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。总线9002可包括一通路,在上述组件之间传送信息。总线9002可以是pci总线或eisa总线等。总线9002可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。存储器9003可以是rom或可存储静态信息和指令的其他类型的静态存储设备,ram或者可存储信息和指令的其他类型的动态存储设备,也可以是eeprom、cd-rom或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器9003用于存储执行本申请方案的应用程序代码,并由处理器9001来控制执行。处理器9001用于执行存储器9003中存储的应用程序代码,以实现前述任一方法实施例所示的内容。本申请实施例提供了一种电子设备,本申请实施例中的电子设备包括:一个或多个处理器;存储器;一个或多个计算机程序,其中一个或多个计算机程序被存储在存储器中并被配置为由一个或多个处理器执行,一个或多个程序被处理器执行时,获取云盘分配请求,云盘分配请求中包含云盘请求特征的特征值;基于云盘请求特征的特征值,确定负载特征的特征值;基于云盘请求特征的特征值和负载特征的特征值,从各候选存储仓库中确定目标存储仓库;从目标存储仓库中,确定与云盘分配请求匹配的存储空间作为目标云盘。本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,当计算机程序在处理器上运行时,使得处理器可以执行前述方法实施例中相应的内容。根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述云盘分配方法或者云盘分配方法的各种可选实现方式中提供的方法。应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。以上所述仅是本申请的部分实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1