一种vd选取方法及装置的制造方法

文档序号:10488687阅读:704来源:国知局
一种vd选取方法及装置的制造方法
【专利摘要】本发明提供一种VD选取方法及装置,所述方法包括:当需要选取VD组建虚拟磁盘组VDG时,确定待选取VD所在目标层级,以使同时包括空闲VD和非空闲VD的层级的数量小于或等于1;其中,存储池中的各物理磁盘PD包括且仅包括同一层级的VD中的一个;从所述目标层级的空闲VD中随机选取目标数量的空闲VD组建VDG;其中,所述目标数量为VDG中包括的VD的数量。应用本发明实施例可以增强PD使用率的均衡性。
【专利说明】
一种VD选取方法及装置
技术领域
[0001 ]本发明涉及数据处理技术领域,尤其涉及一种VD选取方法及装置。
【背景技术】
[0002]随着计算机技术的不断发展,单磁盘容量越来越大,同一个磁盘物理资源可以分别属于多个上层RAID(RedundantArrays of Independent Disks,独立磁盘冗余阵列)里的块虚拟化技术越发成熟,这种设计是用多块物理磁盘(Physical Disk,简称H))构建一个大存储池(Pool池),每个PD划分成多个虚拟磁盘(Virtual Disk,VD),由多个VD按照相应的RAID策略(如N+M)组建VDG(Virtual Disk Group,虚拟磁盘组),向上层提供逻辑资源分配给客户端进行读写。
[0003]在块虚拟化技术中,目前常见的VD选取策略为:当需要为某一个VDG(假设VDG包括的VD个数为N)选取VD时,从Poo I池中的所有ro中,随机选取出N块ro,然后再从Nfro中各选出一个VD,组成VDG ;创建RAID所需的每一个VDG均采用上述VD选取策略,直至为RAID选取了足够的VD。
[0004]然而实践发现,在上述VD选取方案中,由于每一个VDG包括的VD都是随机从所有H)随机选取的,因此,可能会导致某一个ro中被选择的VD比较多,而其它ro中被选择的VD相对较少,磁盘空间使用率不均衡。例如,为第一个VDG选取VD时,选中了第一个PD中的一个VD;为第二个VDG选取VD时,又选中了第一个H)的另一个VD,这样多次后,第一个PD的空闲VD就比其它ro的空闲VD少很多。

【发明内容】

[0005]本发明提供一种VD选取方法及装置,以解决现有VD选取方案中ro使用率不均衡的问题。
[0006]根据本发明实施例的第一方面,提供一种VD选取方法,包括:
[0007]当需要选取VD组建虚拟磁盘组VDG时,确定待选取VD所在目标层级,以使同时包括空闲VD和非空闲VD的层级的数量小于或等于I;其中,存储池中的各物理磁盘ro包括且仅包括同一层级的VD中的一个;
[0008]从所述目标层级的空闲VD中随机选取目标数量的空闲VD组建VDG;其中,所述目标数量为VDG中包括的VD的数量。
[0009]根据本发明实施例的第二方面,提供一种VD选取装置,包括:
[0010]确定单元,用于当需要选取VD组建虚拟磁盘组VDG时,确定待选取VD所在目标层级,以使同时包括空闲VD和非空闲VD的层级的数量小于或等于I;其中,存储池中的各物理磁盘ro包括且仅包括同一层级的VD中的一个;
[0011]选取单元,用于从所述目标层级的空闲VD中随机选取目标数量的空闲VD组建VDG;其中,所述目标数量为VDG中包括的VD的数量。
[0012]应用本发明实施例,当需要选取VD组建VDG时,确定待选取VD所在目标层级,使同时包括空闲VD和非空闲VD的层级的数量小于或等于I,并从目标层级的空闲VD中随机选取目标数量的空闲VD组建VDG,保证了组建VDG的VD随机均匀分布于存储池中的各PD,且各PD中空闲VD的数量相差不会超过一个,增强了磁盘使用率的均衡性。
【附图说明】
[0013]图1是本发明实施例提供的一种VD选取方法的流程示意图;
[0014]图2是本发明实施例提供的一种应用场景的示意图;
[0015]图3A?图3E是本发明实施例提供的具体应用场景中选取VD的示意图;
[0016]图4是本发明实施例提供的一种VD选取装置的结构示意图;
[0017]图5是本发明实施例提供的另一种VD选取装置的结构示意图;
[0018]图6是本发明实施例提供的另一种VD选取装置的结构示意图。
【具体实施方式】
[0019]为了使本技术领域的人员更好地理解本发明实施例中的技术方案,并使本发明实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明实施例中技术方案作进一步详细的说明。
[0020]请参见图1,图1为本发明实施例提供的一种VD选取方法的流程示意图,如图1所示,该供电方法可以包括以下步骤:
[0021]需要说明的是,步骤101?步骤102的执行主体可以为支持块虚拟化技术的存储设备或存储设备的处理器,如CPU(Center Process Unit,中央处理单元)。为便于描述,以下以步骤101?步骤102的执行主体为存储设备为例进行说明。
[0022]步骤101、当需要选取VD组建VDG时,确定待选取VD所在目标层级,以及同时包括空闲VD和非空闲VD的层级的数量小于或等于I;其中,存储池中的各ro包括且仅包括同一层级中的VD中的一个。
[0023]本发明实施例中,当存储设备创建RAID时,存储设备需要为RAID中包括的各VDG选取组建该VDG的VD。
[0024]为了尽可能保证组建VDG的VD均匀分布于存储池中各PD上,避免出现存储池中部分ro空闲VD过多,而其余ro空闲VD过少,在本发明实施例中,可以对存储池中包括的各ro中的VD引入层级关系,同一层级的VD分别分布于存储池中的各ro,存储池中的各物理磁盘PD包括且仅包括同一层级的VD中的一个。
[0025]相应地,在本发明实施例中,存储设备选取VD组建VDG之前,可以确定存储池中包括的各H)中的VD所属层级。
[0026]作为一种可选的实施方式,在本发明实施例中,确定存储池中包括的各ro中的VD所属层级,可以包括以下步骤:
[0027]11)、根据相同的编号策略分别对存储池中包括的各ro中的VD进行编号;
[0028]12)、将各H)中编号相同的VD划分为同一层级。
[0029]在该实施方式中,存储设备可以对存储池中包括的各PD中的VD进行编号,例如,以图2所示场景为例,对于各ro中的VD,存储设备可以按照从下到上的顺序依次对各VD进行编号。
[0030]存储设备对存储池中包括的各PD中的VD按照预设编号策略进行编号后,可以将各F1D中编号相同的VD划分为同一层级,例如,图2所不存储池中各编号为I的VD为同一层级的VD0
[0031 ]需要注意的是,在本发明实施例中,存储设备对存储池中包括的各PD中的VD进行编号时,也不一定需要对同一 ro中的各VD按顺序编号,而且各ro之间VD编号策略也可以不同,仅需要保证同一PD中各VD的编号各不相同即可。此外,存储设备对VD进行层级划分时,并不一定需要先编号,后划分层级,也可以直接对VD进行层级划分,例如,图2所示存储池中,存储设备可以直接将各ro中处于同一行的VD划分为同一层级;或者,存储设备可以在保证ro中各VD归属于且仅归属于一个层级的前提下,直接根据各VD对应的存储地址对VD进行层级划分,其具体实现在此不再赘述。
[0032]本发明实施例中,为了保证组建VDG的VD均匀分布于各ro上,增加存储池中各ro的使用率的均衡性,存储设备在选取组建VDG的VD时,需要以同一层级的VD均被选取后,再开始选取另一层级的VD,以使存储池中同时包括空闲VD和非空闲VD的层级的数量小于或等于
1
[0033]作为一种可选的实施方式,上述步骤101中,确定待选取VD所在目标层级,可以包括:
[0034]当存在同时包括空闲VD和非空闲VD,且空闲VD的数量大于或等于目标数量的层级时,将该层级确定为目标层级;
[0035]当存在同时包括空闲VD和非空闲VD,且空闲VD的数量小于目标数量的层级时,将该层级以及另一包括的VD均为空闲VD的层级确定为目标层级;
[0036]当不存在同时包括空闲VD和非空闲VD的层级时,将一包括的VD均为空闲VD的层级作为目标层级。
[0037]在该实施方式中,存储设备在选取组建VDG的VD时,可以先判断存储池中是否存在同时包括空闲VD和非空闲VD的层级;若存在,则存储设备可以进一步判断该同时包括空闲VD和非空闲VD的层级中空闲VD的数量是否大于或等于VDG中包括的VD的数量(本文中称为目标数量);若大于或等于,即该同时包括空闲VD和非空闲VD的层级中的空闲VD足以满足创建VDG的需求,则存储设备可以直接将该同时包括空闲VD和非空闲VD的层级确定为待选取VD所在的层级(本文中称为目标层级);若小于,即该同时包括空闲VD和非空闲VD的层级中的空闲VD的数量不足以满足创建VDG需求,则存储设备需要将该同时包括空闲VD和非空闲VD的层级,以及另一包括的VD均为空闲VD的层级确定为目标层级。
[0038]若不存在同时包括空闲VD和非空闲VD的层级,如存储设备第一次组建VDG,或存储设备非第一次组建VDG,但之前组建VDG时选取VD时占用了一个或多个层级的所有VD,则存储设备可以从包括的VD均为空闲VD的层级中选取一个作为目标层级。
[0039]需要注意的是,在本发明实施例中,当存储设备需要选择包括的VD均为空闲VD的层级作为目标层级时,存储设备可以采用顺序选择或随机选择等方式进行选择。例如,以图2所示存储池为例,若存储设备采用顺序选择的方式选择目标层级时,存储设备第一次组建VDG时,存储设备可以选择编号为I的VD对应的层级中的空闲VD组建VDG,当编号为I的VD对应的层级中所有VD均被占用后,选择编号为2的VD对应的层级中的空闲VD组建VDG。若存储设备采用随机选择方式选择目标层级,存储设备第一次组建VDG时,存储设备可以随机选择一个层级(如编号2的VD对应的层级)中的空闲VD组建VDG,并当该层级的VD均被占用时,再从包括的VD均为空闲VD的层级中随机选择一个层级(如编号5的VD对应的层级),并从该层级中选择空闲VD组建VDG。
[0040]步骤102、从目标层级的空闲VD中随机选取目标数量的空闲VD组建VDG。
[0041]本发明实施例中,存储设备确定了待选取VD所在的目标层级后,可以在该目标层级中的空闲VD中随机选取目标数量的空闲VD,并根据所选取的VD组建VDG。
[0042]作为一种可选的实施方式,当存在同时包括空闲VD和非空闲VD,且空闲VD的数量小于目标数量的层级时,上述步骤102中,从目标层级的空闲VD中随机选取目标数量的空闲VD组建VDG,可以包括以下步骤:
[0043]21)、选取同时存在空闲VD和非空闲VD的层级中包括的空闲VID为组建VDG的VD,并从另一包括的VD均为空闲VD的层级中选取剩余数量的VD;其中,所选取的VD处于不同的H);
[0044]22)、根据所选取的VD组建VDG。
[0045]在该实施方式中,当存储设备确定存在同时包括空闲VD和非空闲VD,且空闲VD的数量小于目标数量的层级,即需要将该同时包括空闲VD和非空闲VD的层级,以及另一包括的VD均为空闲VD的层级确定为目标层级时,存储设备可以将该冋时包括空闲VD和非空闲VD的层级中包括的空闲VD均作为组建VDG的VD,此外,存储设备还需要从该另一包括的VD均为空闲VD的层级中选取剩余数量的VD,并保证此次选取的用于组建VDG的VD分别处于不同的PD。
[0046]举例来说,以图2所示存储池为例,假设目标数量为4,存储池中第一行(同一行VD属于同一层级)中第9和10个VD (按从左往右的顺序)为空闲VD,则存储设备需要创建VDG时,需要将第一行对应的层级,以及另一包括的VD均为空闲VD的层级(假设为第二行对应的层级)确定为目标层级,并将第一行中的第9和10个VD作为组建VDG的VD,并从第二行第I个至第8个VD中随机选择2个VD,进而,根据所选取的4个VD组建VDG。
[0047]可见,在图1所示的方法流程中,通过对存储池中包括的各PD中的VD进行层级划分,使存储池中各PD包括且仅包括同一层级的VD中的一个,当需要选取VD组建VDG时,确定待选取VD所在目标层级,以使同时包括空闲VD和非空闲VD的层级的数量小于或等于I,并从目标层级的空闲VD中随机选取目标数量的空闲VD组建VDG,保证了组建VDG的VD随机均匀分布于存储池中的各PD,且各PD中空闲VD的数量相差不会超过一个,增强了磁盘使用率的均衡性。
[0048]为了使本领域技术人员更好地理解本发明实施例提供的技术方案中,下面结合具体的应用场景对本发明实施例提供的技术方案进行说明。
[0049]请参见图3A,图3A为本发明实施例提供的一种具体应用场景的不意图,如图3A所示,存储池中共包括10个ro,每个ro包括N个VD (N> 10), RAID策略为2+1,即每一个VDG包括3个VD 0
[0050]基于该应用场景,本发明实施例提供的VD选取方法可以包括:
[0051]存储设备以顺序编号的方式对各ro中的VD按照从下到上的顺序进行编号,不同ro中相同编号的VD属于同一层级。
[0052]当存储设备第一次组建VDG时,存储设备可以选择一个包括的VD均为空闲VD的层级为目标层次(假设存储设备选择了编号为I的VD对应的层级(以下称为层级I),层级选择方式为顺序选择方式),并在层级I中随机选取3个空闲VD(假设为层级I中的第I个、第4个和第7个VD,如图3B所示),并根据所选取的VD组建VDG。
[0053]当存储设备第二次组建VDG时,存储设备先判断是否存在同时包括空闲VD和非空闲VD的层级,判断结果为存在,即层级I,因此,存储设备将层级I确定为目标层级,并从层级I的空闲VD中随机选取3个空闲VD(假设为层级I中的第2个、第5个和第9个,如图3C所示),并根据所选取的VD组建VDG。
[0054]假设在某一时刻,当存储设备需要再次组建VDG时,存储池中包括的各H)中的VD占用情况如图3D所示,此时,存储设备可以确定存在同时包括空闲VD和非空闲VD的层级,即层级2,但是,层级2中的空闲数量(2)小于目标数量(3),因此,存储设备将层级2和层级3确定为目标层级,并将层级2中的空闲VD(层级2中的第4个和第9个),并在层级3中第I?3、5?8、10个中随机选取一个(假设为层级3中的第2个,如图3E所示),并根据选取的VD(层级2中的第4个和第9个、层级3中的第2个)组建VDG。
[0055]可见,本发明实施例提供的VD选取方案中,既可以保证组建VDG的VD随机均匀地分布于各ro,又可以保证各PD中空闲VD的数量相差不会超过一个,增强了磁盘使用率的均衡性;此外,考虑到现有技术中随机选取VD的方案中,可能会导致部分PD中剩余大量空闲VD,而剩余的空闲VD又无法组建VDG,如在RAID策略为2+1的情况下,若存储池中仅有2个H)包括大量的空闲VD,根据组建同一VDG的VD需要分布在不同H),因此,剩余的空闲VD无法用于组建VDG,造成了大量的空间浪费,而本发明实施例提供的VD选取方案则可以避免出现大量空闲VD无法用于组建VDG的情况,减少了空间浪费。
[0056]通过以上描述可以看出,在本发明实施例提供的技术方案中,当需要选取VD组建VDG时,确定待选取VD所在目标层级,使同时包括空闲VD和非空闲VD的层级的数量小于或等于I,并从目标层级的空闲VD中随机选取目标数量的空闲VD组建VDG,保证了组建VDG的VD随机均匀分布于存储池中的各PD,且各PD中空闲VD的数量相差不会超过一个,增强了磁盘使用率的均衡性。
[0057]请参见图4,为本发明实施例提供的一种VD选取装置的结构示意图,其中,该VD选取装置可以应用于上述方法实施例中的存储设备,如图4所示,该VD选取装置可以包括:
[0058]确定单元410,用于当需要选取VD组建虚拟磁盘组VDG时,确定待选取VD所在目标层级,以使同时包括空闲VD和非空闲VD的层级的数量小于或等于I;其中,存储池中的各物理磁盘ro包括且仅包括同一层级的VD中的一个;
[0059]选取单元420,用于从所述目标层级的空闲VD中随机选取目标数量的空闲VD组建VDG;其中,所述目标数量为VDG中包括的VD的数量。
[0060]在可选实施例中,所述确定单元410,可以具体用于当存在同时包括空闲VD和非空闲VD,且空闲VD的数量大于或等于所述目标数量的层级时,将该层级确定为目标层级;当存在同时包括空闲VD和非空闲VD,且空闲VD的数量小于所述目标数量的层级时,将该层级以及另一包括的VD均为空闲VD的层级确定为目标层级;当不存在同时包括空闲VD和非空闲VD的层级时,将一包括的VD均为空闲VD的层级作为目标层级。
[0061]请一并参阅图5,为本发明实施例提供的另一种VD选取装置的结构示意图,该实施例在前述图4所示实施例的基础上,图5所示VD选取装置中,选取单元420可以包括:
[0062]选取子单元421,用于选取所述同时存在空闲VD和非空闲VD的层级中包括的空闲VD为组建VDG的VD,并从所述另一包括的VD均为空闲VD的层级中选取剩余数量的VD;其中,所选取的VD处于不同的H);
[0063]组建子单元422,用于根据所选取的VD组建VDG。
[0064]在可选实施例中,所述确定单元410,还可以用于确定存储池中包括的各H)中的VD所属层级;其中,ro中各VD归属于且仅归属于一个层级。
[0065]请一并参阅图6,为本发明实施例提供的另一种VD选取装置的结构示意图,该实施例在前述图4或图5所示实施例的基础上(图6以在图4所示装置实施例的基础上进行优化为例),图6所示VD选取装置中,确定单元410可以包括:
[0066]编号子单元411,用于根据相同的编号策略分别对所述存储池中包括的各PD中的VD进行编号;
[0067]划分子单元412,用于将各H)中编号相同的VD划分为同一层级。
[0068]上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
[0069]对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0070]由上述实施例可见,当需要选取VD组建VDG时,确定待选取VD所在目标层级,使同时包括空闲VD和非空闲VD的层级的数量小于或等于I,并从目标层级的空闲VD中随机选取目标数量的空闲VD组建VDG,保证了组建VDG的VD随机均匀分布于存储池中的各PD,且各PD中空闲VD的数量相差不会超过一个,增强了磁盘使用率的均衡性。
[0071]本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
[0072]应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。
【主权项】
1.一种虚拟磁盘VD选取方法,其特征在于,包括: 当需要选取VD组建虚拟磁盘组VDG时,确定待选取VD所在目标层级,以使同时包括空闲VD和非空闲VD的层级的数量小于或等于I;其中,存储池中的各物理磁盘H)包括且仅包括同一层级的VD中的一个; 从所述目标层级的空闲VD中随机选取目标数量的空闲VD组建VDG;其中,所述目标数量为VDG中包括的VD的数量。2.根据权利要求1所述的方法,其特征在于,所述确定待选取VD所在目标层级,包括: 当存在同时包括空闲VD和非空闲VD,且空闲VD的数量大于或等于所述目标数量的层级时,将该层级确定为目标层级; 当存在同时包括空闲VD和非空闲VD,且空闲VD的数量小于所述目标数量的层级时,将该层级以及另一包括的VD均为空闲VD的层级确定为目标层级; 当不存在同时包括空闲VD和非空闲VD的层级时,将一包括的VD均为空闲VD的层级作为目标层级。3.根据权利要求2所述的方法,其特征在于,当存在同时包括空闲VD和非空闲VD,且空闲VD的数量小于所述目标数量的层级时,所述从所述目标层级的空闲VD中随机选取目标数量的空闲VD组建VDG,包括: 选取所述同时存在空闲VD和非空闲VD的层级中包括的空闲VD为组建VDG的VD,并从所述另一包括的VD均为空闲VD的层级中选取剩余数量的VD;其中,所选取的VD处于不同的H);根据所选取的VD组建VDG。4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括: 确定存储池中包括的各PD中的VD所属层级;其中,PD中各VD归属于且仅归属于一个层级。5.根据权利要求4所述的方法,其特征在于,所述确定存储池中包括的各H)中的VD所属层级,包括: 根据相同的编号策略分别对所述存储池中包括的各PD中的VD进行编号; 将各PD中编号相同的VD划分为同一层级。6.一种虚拟磁盘VD选取装置,其特征在于,包括: 确定单元,用于当需要选取VD组建虚拟磁盘组VDG时,确定待选取VD所在目标层级,以使同时包括空闲VD和非空闲VD的层级的数量小于或等于I;其中,存储池中的各物理磁盘H)包括且仅包括同一层级的VD中的一个; 选取单元,用于从所述目标层级的空闲VD中随机选取目标数量的空闲VD组建VDG;其中,所述目标数量为VDG中包括的VD的数量。7.根据权利要求6所述的装置,其特征在于, 所述确定单元,具体用于当存在同时包括空闲VD和非空闲VD,且空闲VD的数量大于或等于所述目标数量的层级时,将该层级确定为目标层级;当存在同时包括空闲VD和非空闲VD,且空闲VD的数量小于所述目标数量的层级时,将该层级以及另一包括的VD均为空闲VD的层级确定为目标层级;当不存在同时包括空闲VD和非空闲VD的层级时,将一包括的VD均为空闲VD的层级作为目标层级。8.根据权利要求6所述的装置,其特征在于,所述选取单元包括: 选取子单元,用于选取所述同时存在空闲VD和非空闲VD的层级中包括的空闲VD为组建VDG的VD,并从所述另一包括的VD均为空闲VD的层级中选取剩余数量的VD;其中,所选取的VD处于不同的H); 组建子单元,用于根据所选取的VD组建VDG。9.根据权利要求6-8任一项所述的装置,其特征在于, 所述确定单元,还用于确定存储池中包括的各H)中的VD所属层级;其中,F1D中各VD归属于且仅归属于一个层级。10.根据权利要求9所述的装置,其特征在于,所述确定单元包括: 编号子单元,用于根据相同的编号策略分别对所述存储池中包括的各ro中的VD进行编号; 划分子单元,用于将各PD中编号相同的VD划分为同一层级。
【文档编号】G06F3/06GK105843556SQ201610160815
【公开日】2016年8月10日
【申请日】2016年3月21日
【发明人】王丽红, 郭永强, 台德莉
【申请人】浙江宇视科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1