一种厚置备卷创建方法、装置、设备及可读存储介质
文献发布时间:2024-01-17 01:26:37
技术领域
本申请涉及存储技术领域,特别是涉及一种厚置备卷创建方法、装置、设备及可读存储介质。
背景技术
厚置备卷即创建支持群集功能的厚磁盘。在创建时为虚拟磁盘分配所需的空间。与平面格式相反,在创建过程中会将物理设备上保留的数据置零。
创建这种格式的磁盘所需的时间会比创建其他类型的磁盘长。
当批量创建厚置备卷,且存储池已存在的卷彻底删除的情况下,进行容量计算,容量计算则会有误,并进行报错,而报错则会导致批量创建厚置备卷任务失败。从而导致批量创建厚置备卷的成功率降低。
综上所述,如何有效地提升批量厚置备卷创建成功率等问题,是目前本领域技术人员急需解决的技术问题。
发明内容
本申请的目的是提供一种厚置备卷创建方法、装置、设备及可读存储介质,提升批量创建厚置备卷的成功率。
为解决上述技术问题,本申请提供如下技术方案:
一种厚置备卷创建方法,包括:
获取批量创建厚置备卷创建命令;
在获取当前存储池可用容量的过程中,若存储池中有卷彻底删除,则跳过该卷,并继续计算存储池可用容量;
根据所述存储池可用容量,创建厚置备卷;
若当前所创建的所述厚置备卷并非最后一个创建,则返回执行所述获取当前存储池可用容量的步骤,直到当前所创建的所述厚置备卷为最后一个创建。
优选地,根据所述存储池可用容量,创建厚置备卷,包括:
判断所述存储池可用容量是否大于当前所需创建的所述厚置备卷的所需容量;
如果是,则创建所述厚置备卷;
如果否,则停止创建所述厚置备卷。
优选地,所述创建所述厚置备卷,包括:
创建精简卷;
在所述精简卷创建完成后,增加卷属性标识字段;
对所述精简卷的全部空间填充数据;
在数据填充完毕后,所述卷属性标识字段变更为厚置备卷的参数值并保持到该卷的头对象中,以完成所述厚置备卷的创建。
优选地,所述获取批量创建厚置备卷创建命令,包括:
接收批量创建指令;
在块协议层中解析所述批量创建指令,并判断是否存在后置备卷对应的标签参数;
如果是,则确定所述批量创建指令为所述批量创建厚置备卷创建命令;
如果否,则确定所述批量创建指令为批量创建精简卷创建指令。
优选地,在确定所述批量创建指令为批量创建精简卷创建指令之后,包括:
创建精简卷,并返回创建结果;
判断当前创建的精简卷是否为最后一个创建;
如果是,则创建完成;
如果否,则返回执行创建精简卷,并返回创建结果的步骤。
优选地,所述获取当前存储池可用容量,包括:
获取存储池中的卷信息;
基于所述卷信息,确定所述存储池可用容量。
优选地,基于所述卷信息,确定所述存储池可用容量,包括:
从所述卷信息中读取各个卷的访问信息;
在基于所述访问信息,依次访问存储池中的各个卷,以获取各个卷对应的卷大小的过程中,判断当前所需访问的卷是否存在;
若当前访问的卷存在,则通过访问,获取该卷对应的卷大小;
若当前访问的卷不存在,则跳过获取该卷对应的卷大小的步骤;
在最后一个卷被访问或被跳过后,对当前获取的全部所述卷大小进行累加,得到存储池已用容量;
将存储池容量与所述存储池已用容量做差,得到所述存储池可用容量;
相应地,根据所述存储池可用容量,创建厚置备卷,包括:
若当前需创建的厚置备卷的卷大小小于所述存储池可用容量,则创建精简卷;
在所述精简卷创建完成后,增加卷属性标识字段;
对所述精简卷的全部空间填充0数据;
在数据填充完毕后,所述卷属性标识字段变更为厚置备卷的参数值并保持到该卷的头对象中,以完成所述厚置备卷的创建,并返回创建结果。
一种厚置备卷创建装置,包括:
命令获取模块,用于获取批量创建厚置备卷创建命令;
容量确定模块,用于在获取当前存储池可用容量的过程中,若存储池中有卷彻底删除,则跳过该卷,并继续计算存储池可用容量;
卷创建模块,用于根据所述存储池可用容量,创建厚置备卷;
判断模块,用于若当前所创建的所述厚置备卷并非最后一个创建,则返回执行所述获取当前存储池可用容量的步骤,直到当前所创建的所述厚置备卷为最后一个创建。
一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述厚置备卷创建方法的步骤。
一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述厚置备卷创建方法的步骤。
应用本申请实施例所提供的方法,获取批量创建厚置备卷创建命令;在获取当前存储池可用容量的过程中,若存储池中有卷彻底删除,则跳过该卷,并继续计算存储池可用容量;根据存储池可用容量,创建厚置备卷;若当前所创建的厚置备卷并非最后一个创建,则返回执行获取当前存储池可用容量的步骤,直到当前所创建的厚置备卷为最后一个创建。
在本申请中,在获取到批量创建厚置备卷创建命令后,在获取当前存储池可用容量的过程中,当遇到存储池中有卷被彻底删除,则将该卷跳过,并继续计算存储池可用容量。由于被跳过的卷是被彻底删除的,即该卷的空间实质也被释放,因而可不在继续对该卷进行统计,也不会影响创建厚置备卷。然后,根据所计算出的当前存储池可用容量,创建厚置备卷。在当前所创建的厚置备卷并非是最后一个创建,则返回执行获取当前存储池可用容量的步骤,从而继续进行下一个厚置备卷的创建,在当前所创建的厚置备卷是最后一个创建,则确定完成了批量创建厚置备卷任务。即,在本申请中,考虑批量创建厚置备卷的过程中,存储池卷变化情况,从而跳过会导致容量计算报错的已删除卷,避免因容量计算报错导致批量厚置备卷创建失败,可提高厚置备卷创建的成功率。
相应地,本申请实施例还提供了与上述厚置备卷创建方法相对应的厚置备卷创建装置、设备和可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种厚置备卷创建方法的实施流程图;
图2为本申请实施例中一种厚置备卷创建方法的具体流程示意图;
图3为本申请实施例中一种厚置备卷创建装置的结构示意图;
图4为本申请实施例中一种电子设备的结构示意图;
图5为本申请实施例中一种电子设备的具体结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例中一种厚置备卷创建方法的流程图,该方法包括以下步骤:
S101、获取批量创建厚置备卷创建命令。
批量创建厚置备卷创建命令即指明需要创建批量的卷,且该卷为厚置备卷。
在本申请中实施例中,可以具体通过管理界面或者命令行下发批量厚置备卷创建指令,该create(创建)命令增加参数-thick-provision(厚置备卷对应的标签参数)。也就是说,通过对管理界面或者对命令行进行监控,即可获得批量创建厚置备卷创建命令。
在本申请中的一种具体实施方式中,获取批量创建厚置备卷创建命令,包括:
步骤一、接收批量创建指令;
步骤二、在块协议层中解析批量创建指令,并判断是否存在后置备卷对应的标签参数;
步骤三、如果是,则确定批量创建指令为批量创建厚置备卷创建命令;
步骤四、如果否,则确定批量创建指令为批量创建精简卷创建指令。
为便于描述,下面将上述四个步骤结合起来进行说明。
该批量创建指令可以为管理界面下方发的,也可以是基于命令行下发的。
在接收打破批量创建指令之后,首先在块协议层(RBD,RADOS Block Device,是一种构建在RADOS集群之上为客户端提供块设备接口的存储服务中间层,在本文中为了便于描述,简称为块协议层)中解析该批量创建指令。从而获取创建卷的基本属性信息(如名称、大小等)。
在解析批量创建指令后,可以判断该指令是否存在后置备卷对应的标签参数。若存在后置备卷的标签参数,则确定该批量创建指令是指批量创建后置备卷的指令;若不存在后置备卷的标签参数,则确定该批量创建指令是批量创建精简卷的指令。
其中,精简卷,即精简卷按需使用空间,即只有将数据写入卷时才占用存储池空间。精简卷可确保高效利用存储空间。
在本申请中的一种具体实施方式中,在确定批量创建指令为批量创建精简卷创建指令之后,可执行以下步骤,从而完成批量创建精简卷:
步骤一、创建精简卷,并返回创建结果;
步骤二、判断当前创建的精简卷是否为最后一个创建;
步骤三、如果是,则创建完成;
步骤四、如果否,则返回执行创建精简卷,并返回创建结果的步骤。
为便于描述,下面将上述四个步骤结合起来进行说明。
当明确为创建精简卷时,则创建精简卷,并返回创建结果。然后,判断当前所创建的精简卷是否为最后一个创建,即判断当前的批量创建指令所需创建的卷是否已创建完成,如果是,则确定创建完成;如果否,则确定批量精简卷创建未完成,此时需返回执行步骤一,即继续创建精简卷并安恒创建结果,直到当前所创建的精简卷为最后一个创建,即可确定创建完成。
S102、在获取当前存储池可用容量的过程中,若存储池中有卷彻底删除,则跳过该卷,并继续计算存储池可用容量。
在创建厚置备卷之前,需要明确当前存储池可用容量,在本申请中,考虑到批量创建厚置备卷的时间较长,可能会涉及存储池有卷被彻底删除,此时存储池可用容量即可发生变化,特别地,通常遇到卷被彻底产生,此时进行容量统计,则会出现报错,而导致无法继续创建厚置备卷。
在本申请中,考虑到卷被彻底删除,其则不继续占用存储池的空间,且在批量创建厚置备卷的过程中,在创建每一个厚置备卷的过程中,都需要获取当时存储池的可用容量,相对而言,存储池的可用容量在卷存在被删除的情况下,其容量大小变化也不会非常大,也不会突然导致存储池的可用容量与当前所需创建的厚置备卷的大小相当,因而在本申请中,直接在计算容量的环节,将被彻底删除的卷跳过,从而计算其他对象所占用的空间大小,进而计算存储池可用容量。由于一般情况下,存储池的可用容量都足以创建一个厚置备卷,因而若干个卷被彻底删除,对容量是否充足的判断影响不大,尤其是卷被彻底删除后,该卷占用的空间按照处理流程也会归入到可用容量范畴,当然可能计算容量时,该空间还无法使用,但将其视为可用,并不会产生实质影响,反而会避免因容量计算报错导致批量创建厚置备卷失败的情况。即,在容量计算过程中,跳过某个或某些被彻底删除的厚置备卷,可以有效提高厚置备卷的创建成功率。
S103、根据存储池可用容量,创建厚置备卷。
在创建厚置备卷时,需要当前存储池还有足够没有被分配的可用容量。因而,在创建厚置备卷时,需要根据存储池可用容量来进行创建。
也就是说,在存储池还有充足的可用容量的情况下,才可进行厚置备卷创建,在存储池没有充足的可用容量的情况下,无法进行厚置备卷创建。其中,充足容量可以具体指存储池的可用容量至少大于创建厚置备卷所需的大小。
在本申请中的一种具体实施方式中,根据存储池可用容量,创建厚置备卷,包括:
步骤一、判断存储池可用容量是否大于当前所需创建的厚置备卷的所需容量;
步骤二、如果是,则创建厚置备卷;
步骤三、如果否,则停止创建厚置备卷。
其中,当前所需创建的厚置备卷的所需大小可以通过解析批量创建厚置备卷所获取到的创建卷的基本属性信息。
当存储池可用容量大于当前所需创建的厚置备卷的所需容量,则表明当前存储池的可用空间充足,此时可直接创建厚置备卷;当存储池可用容量小于当前所需创建的厚置备卷的所需容量,则表明当前存储池的可用空间匮乏,尤其是针对创建卷而言,其可用资源空间匮乏,此时可停止创建厚置备卷。
当存储池的可用资源空间充足的情况下,创建厚置备卷,其具体的创建过程包括:
其中,步骤二创建厚置备卷,包括:
步骤1、创建精简卷;
步骤2、在精简卷创建完成后,增加卷属性标识字段;
步骤3、对精简卷的全部空间填充数据;
步骤4、在数据填充完毕后,卷属性标识字段变更为厚置备卷的参数值并保持到该卷的头对象中,以完成厚置备卷的创建。
在创建厚置备卷时,首先创建出精简卷,然后,在精简卷创建完成之后,增加卷属性标识字段。
一般而言,精简卷创建完成后,在不对其对其空间进行数据填充的,而在本申请中,在创建厚置备卷过程中,先创建精简卷,然后精简卷创建完出后增加卷属性字段,从而使得在对经卷的全部空间填充数据之后,所示的该卷属性标识字段变更为厚置备卷的参数值,并保持到该卷的头对象(header对象)中,从而完成厚置备卷的创建。
S104、若当前所创建的厚置备卷并非最后一个创建,则返回执行获取当前存储池可用容量的步骤,直到当前所创建的厚置备卷为最后一个创建。
在每完成一个厚置备卷的创建之后,则会进行判断。即判断当前所创能的厚置备卷是否为最后一个创建,即明确批量创建厚置备卷是否已完成。
若当前所创建的厚置备卷并非是最后一个创建,则表明批量创建厚置备卷并未完成,此时需要返回执行获取当前存储池可用容量的步骤,进行厚置备卷的创建,直到当前所创建的厚置备卷为最后一个创建。
若当前所创建的厚置备卷是最后一个创建,则表明已经完成了批量创建厚置备卷,此时可结束创建卷。
应用本申请实施例所提供的方法,获取批量创建厚置备卷创建命令;在获取当前存储池可用容量的过程中,若存储池中有卷彻底删除,则跳过该卷,并继续计算存储池可用容量;根据存储池可用容量,创建厚置备卷;若当前所创建的厚置备卷并非最后一个创建,则返回执行获取当前存储池可用容量的步骤,直到当前所创建的厚置备卷为最后一个创建。
在本申请中,在获取到批量创建厚置备卷创建命令后,在获取当前存储池可用容量的过程中,当遇到存储池中有卷被彻底删除,则将该卷跳过,并继续计算存储池可用容量。由于被跳过的卷是被彻底删除的,即该卷的空间实质也被释放,因而可不在继续对该卷进行统计,也不会影响创建厚置备卷。然后,根据所计算出的当前存储池可用容量,创建厚置备卷。在当前所创建的厚置备卷并非是最后一个创建,则返回执行获取当前存储池可用容量的步骤,从而继续进行下一个厚置备卷的创建,在当前所创建的厚置备卷是最后一个创建,则确定完成了批量创建厚置备卷任务。即,在本申请中,考虑批量创建厚置备卷的过程中,存储池卷变化情况,从而跳过会导致容量计算报错的已删除卷,避免因容量计算报错导致批量厚置备卷创建失败,可提高厚置备卷创建的成功率。
需要说明的是,基于上述实施例,本申请实施例还提供了相应的改进方案。在优选/改进实施例中涉及与上述实施例中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在本文的优选/改进实施例中不再一一赘述。
在本申请中的一种具体实施方式中,获取当前存储池可用容量,包括:
步骤一、获取存储池中的卷信息;
其中,卷信息包括存储池中的全部卷中每一个卷对应的相关信息,例如卷大、卷的名称等。
步骤二、基于卷信息,确定存储池可用容量。
即,可通过对卷信息对存储池中已分配空间进行统计,最终确定存储池的可用容量。
具体的,步骤二中基于卷信息,确定存储池可用容量,包括:
从卷信息中读取各个卷的访问信息;
步骤1、在基于访问信息,依次访问存储池中的各个卷,以获取各个卷对应的卷大小的过程中,判断当前所需访问的卷是否存在;
步骤2、若当前访问的卷存在,则通过访问,获取该卷对应的卷大小;
步骤3、若当前访问的卷不存在,则跳过获取该卷对应的卷大小的步骤;
步骤4、在最后一个卷被访问或被跳过后,对当前获取的全部卷大小进行累加,得到存储池已用容量;
步骤5、将存储池容量与存储池已用容量做差,得到存储池可用容量;
相应地,根据存储池可用容量,创建厚置备卷,包括:
步骤1、若当前需创建的厚置备卷的卷大小小于存储池可用容量,则创建精简卷;
步骤2、在精简卷创建完成后,增加卷属性标识字段;
步骤3、对精简卷的全部空间填充0数据;
步骤4、在数据填充完毕后,卷属性标识字段变更为厚置备卷的参数值并保持到该卷的头对象中,以完成厚置备卷的创建,并返回创建结果。
即,在本申请实施例中,在基于卷信息明确存储池可用空间时,可以基于卷信息访问每一个卷,从而得到每一个卷的卷大小。当遇到卷被彻底删除时,即无法获得该卷的卷大小时,则直接跳过该卷;对于当前访问的卷是存在的,则直接获取其卷大小。然后,再将所有能访问到的卷大小进行累加,将累加所得值确定为该存储池的当前已用容量。然后,再将存储池容量与当前该存储池已用容量进行做差,差值即为存储池可用容量。
在明确了存储池可用容量之后,便可将该存储池可用容量与当前所需创建的厚置备卷的所需大小进行比对,若存储池可用容量大于该所需大小,即可创建厚置备卷。
具体的,创建该厚置备卷,即先创建出一个精简卷,然后添加卷属性标识字段,然后,对该精简卷进行0数据填充,从而在数据填充完毕后,该卷属性标识字段自动变更为厚置备卷对应的参数值,并存储中该卷的头对象中,从而完成该厚置备卷的创建,并返回创建结果。
其中,关键卷属性标识字段,可用thick_stat表示,在数据填充期间,thick_stat=2。此时,在管软界面,该卷状态显示为格式化,卷精简属性显示为厚置备卷。让全部空间被0数据填充完毕后,修改卷属性标识字段thick_stat=1,卷状态恢复。
即,厚置备卷按卷大小实际分配空间,有利于关键业务的空间保障。厚置备卷特性主要提供一种预先填充数据格式化的卷,实际占用空间与分配空间大小一致。厚置备卷可以理解为已经写满0数据格式化过的精简卷,厚置备卷的创建过程,可以分为精简卷创建和0数据写入两部分,所以在卷功能、特性支持方面和精简卷保持一致。在实际实现时,可基于现有精简卷创建流程,创建接口与精简卷保持一致。创建完精简卷之后,若目标创建厚置备卷,则向创建的精简卷中填充0数据,格式化占满此空间,从而完成厚置备卷的创建。
为便于本领域技术人员更好地理解和实施本申请实施例所提供的厚置备卷创建方法,下面结合具体的创建场景为例,对该厚置备卷创建方法的创建过程进行详细说明。
请参考图2,图2为本申请实施例中一种厚置备卷创建方法的具体流程示意图。
在AS13000的产品块场景下,只有精简卷这一种置备方式的卷。精简卷在第一次写入数据时需要写入元数据、分配数据块等操作,会耗费一定的时间。厚置备卷目的直接进行格式化,数据对象提前创建,有新IO的时候,无需等待任何操作就可直接写入数据。
通常,厚置备卷按卷大小实际分配空间,有利于关键业务的空间保障。厚置备卷特性主要提供一种预先填充数据格式化的卷,实际占用空间与分配空间大小一致。厚置备卷可以理解为已经写满0数据格式化过的精简卷,厚置备卷的创建过程,可以分为精简卷创建和0数据写入两部分,所以在卷功能、特性支持方面和精简卷保持一致。在实际实现时,基于现有精简卷创建流程,创建接口与精简卷保持一致。创建完精简卷之后,若目标创建厚置备卷,则向创建的精简卷中填充0数据,格式化占满此空间。
当存储池的卷从存储池彻底删除时候,批量创建厚置备卷的时候,进行容量计算,当存储池之前的卷不存在的时候,会直接进行报错,导致计算存储池容量报错,会导致任务创建失败。
也就是说,当前的批量创建厚置备卷没有考虑到存储池卷变化情况,当批量创建厚置备卷同时存储池已存在的卷彻底删除的时候,进行容量计算,容量计算有误报错后导致批量创建厚置备卷任务失败,中间过程出现创建厚置备卷失败。
采用本申请实施例所提供的厚置备卷创建方法后,在批量创建厚置备卷同时存储池已存在的卷彻底删除的时候,进行容量计算,先查询存储池卷信息,当卷不存在的时候,会跳过该对象不进行容量统计,继续进行后面的卷容量统计,从而避免因卷被彻底删除而产生的容量计算报错。可以有效避免发生批量创建厚置备卷因容量统计报错而创建失败的情况。
创建厚置备卷详细步骤如下:
1、管理界面/命令行下发批量厚置备卷创建指令(create命令增加参数-thick-provision);
2、RBD层解析指令,获取创建卷的基本属性信息(如名称、大小、数量等);
3、判断是否存在参数-thick-provision,若有则进入步骤4,即创建厚置备;
4、对当前所需创建单个卷大小和存储池可用容量进行对比,满足容量要求则先创建精简卷;
其中,存储池可用容量统计过程中,遇到卷被彻底删除,则将其跳过,继续计算其他对象所占用的容量,以避免出现报错。
也就是说,批量创建厚置备卷过程中,在容量计算操作中考虑存储池卷变化的场景。当批量创建厚置备卷同时存储池已存在的卷彻底删除的时候,计算容量的时候,当存储池之前的卷不存在的时候,会跳过该对象不进行容量统计,进行后面的卷容量统计。
5、精简卷创建完成后,增加卷属性标识字段thick_stat,在数据填充期间,thick_stat=2。(此时管软界面,卷状态显示格式化,卷精简属性显示为厚置备卷),保存到卷的header对象中;
6、对精简卷全部空间执行数据填充操作,写入数据完成后将修改卷状态标识thick_stat=1,卷状态恢复;
7、循环上述操作,进行批量厚置备卷创建。
可见,在本申请中,批量创建厚置备卷操作,在容量计算操作中考虑存储池卷变化的场景。当批量创建厚置备卷同时存储池已存在的卷彻底删除的时候,计算容量会根据实际的情况进行完善,不会影响到后面的统计。批量创建厚置备卷任务不会出现因中途出现的容量计算错误导致失败。
相应于上面的方法实施例,本申请实施例还提供了一种厚置备卷创建装置,下文描述的厚置备卷创建装置与上文描述的厚置备卷创建方法可相互对应参照。
参见图3所示,该装置包括以下模块:
命令获取模块101,用于获取批量创建厚置备卷创建命令;
容量确定模块102,用于在获取当前存储池可用容量的过程中,若存储池中有卷彻底删除,则跳过该卷,并继续计算存储池可用容量;
卷创建模块103,用于根据存储池可用容量,创建厚置备卷;
判断模块104,用于若当前所创建的厚置备卷并非最后一个创建,则返回执行获取当前存储池可用容量的步骤,直到当前所创建的厚置备卷为最后一个创建。
应用本申请实施例所提供的装置,获取批量创建厚置备卷创建命令;在获取当前存储池可用容量的过程中,若存储池中有卷彻底删除,则跳过该卷,并继续计算存储池可用容量;根据存储池可用容量,创建厚置备卷;若当前所创建的厚置备卷并非最后一个创建,则返回执行获取当前存储池可用容量的步骤,直到当前所创建的厚置备卷为最后一个创建。
在本申请中,在获取到批量创建厚置备卷创建命令后,在获取当前存储池可用容量的过程中,当遇到存储池中有卷被彻底删除,则将该卷跳过,并继续计算存储池可用容量。由于被跳过的卷是被彻底删除的,即该卷的空间实质也被释放,因而可不在继续对该卷进行统计,也不会影响创建厚置备卷。然后,根据所计算出的当前存储池可用容量,创建厚置备卷。在当前所创建的厚置备卷并非是最后一个创建,则返回执行获取当前存储池可用容量的步骤,从而继续进行下一个厚置备卷的创建,在当前所创建的厚置备卷是最后一个创建,则确定完成了批量创建厚置备卷任务。即,在本申请中,考虑批量创建厚置备卷的过程中,存储池卷变化情况,从而跳过会导致容量计算报错的已删除卷,避免因容量计算报错导致批量厚置备卷创建失败,可提高厚置备卷创建的成功率。
在本申请的一种具体实施方式中,卷创建模块103,具体用于判断存储池可用容量是否大于当前所需创建的厚置备卷的所需容量;
如果是,则创建厚置备卷;
如果否,则停止创建厚置备卷。
在本申请的一种具体实施方式中,卷创建模块103,具体用于创建精简卷;
在精简卷创建完成后,增加卷属性标识字段;
对精简卷的全部空间填充数据;
在数据填充完毕后,卷属性标识字段变更为厚置备卷的参数值并保持到该卷的头对象中,以完成厚置备卷的创建。
在本申请的一种具体实施方式中,命令获取模块101,具体用于接收批量创建指令;
在块协议层中解析批量创建指令,并判断是否存在后置备卷对应的标签参数;
如果是,则确定批量创建指令为批量创建厚置备卷创建命令;
如果否,则确定批量创建指令为批量创建精简卷创建指令。
在本申请的一种具体实施方式中,精简卷创建模块,在确定批量创建指令为批量创建精简卷创建指令之后,创建精简卷,并返回创建结果;
判断当前创建的精简卷是否为最后一个创建;
如果是,则创建完成;
如果否,则返回执行创建精简卷,并返回创建结果的步骤。
在本申请的一种具体实施方式中,容量确定模块102,具体用于获取存储池中的卷信息;
基于卷信息,确定存储池可用容量。
在本申请的一种具体实施方式中,容量确定模块102,具体用于从卷信息中读取各个卷的访问信息;
在基于访问信息,依次访问存储池中的各个卷,以获取各个卷对应的卷大小的过程中,判断当前所需访问的卷是否存在;
若当前访问的卷存在,则通过访问,获取该卷对应的卷大小;
若当前访问的卷不存在,则跳过获取该卷对应的卷大小的步骤;
在最后一个卷被访问或被跳过后,对当前获取的全部卷大小进行累加,得到存储池已用容量;
将存储池容量与存储池已用容量做差,得到存储池可用容量;
相应地,卷创建模块103,具体用于若当前需创建的厚置备卷的卷大小小于存储池可用容量,则创建精简卷;
在精简卷创建完成后,增加卷属性标识字段;
对精简卷的全部空间填充0数据;
在数据填充完毕后,卷属性标识字段变更为厚置备卷的参数值并保持到该卷的头对象中,以完成厚置备卷的创建,并返回创建结果。
相应于上面的方法实施例,本申请实施例还提供了一种电子设备,下文描述的一种电子设备与上文描述的一种厚置备卷创建方法可相互对应参照。
参见图4所示,该电子设备包括:
存储器332,用于存储计算机程序;
处理器322,用于执行计算机程序时实现上述方法实施例的厚置备卷创建方法的步骤。
具体的,请参考图5,图5为本实施例提供的一种电子设备的具体结构示意图,该电子设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,存储器332存储有一个或一个以上的计算机程序342或数据344。其中,存储器332可以是短暂存储或持久存储。存储在存储器332的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,处理器322可以设置为与存储器332通信,在电子设备301上执行存储器332中的一系列指令操作。
电子设备301还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。
上文所描述的厚置备卷创建方法中的步骤可以由电子设备的结构实现。
相应于上面的方法实施例,本申请实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种厚置备卷创建方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的厚置备卷创建方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。
- 一种存储池创建方法、装置、设备及可读存储介质
- 一种快照创建方法、装置、设备及可读存储介质
- 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
- 一种元数据存储方法、装置、设备及计算机可读存储介质
- 一种日志存储方法、装置、设备及可读存储介质
- 一种厚置备卷创建方法、装置及电子设备和存储介质
- 一种厚置备卷处理方法、装置、设备及可读存储介质