一种资源创建的方法和装置的制造方法_2

文档序号:9489394阅读:来源:国知局
源创建过程中,是从所有ro (扩容前的κ个ro和扩容后的μ个ro)中选择用于创建资源的vd,如从所有ro中选取vd来创建VDG,而不是从扩容后的μ个ro中选择用于创建资源的VD。基于此,当存储池中的任意一个pd发生故障时,会触发重构过程,此时基于所有ro的数据恢复故障ro的数据,即存储池中的所有ro都会参与重构过程,参与到重构过程中的ro数量较多,大大提高重构速度,而且保证扩容不会导致重构效率的降低,减轻扩容后的μ个ro的重构压力,同时减少对业务的影响。
【附图说明】
[0024]图1是块虚拟化的架构示意图;
[0025]图2是本发明一种实施方式中的资源创建的方法的流程图;
[0026]图3是本发明一种实施方式中的扩容后的均衡示意图;
[0027]图4是本发明一种实施方式中的存储设备的硬件结构图;
[0028]图5是本发明一种实施方式中的资源创建的装置的结构图。
【具体实施方式】
[0029]针对现有技术中存在的问题,本发明实施例中提出一种资源创建的方法,该方法可以应用在块虚拟化的组网架构中。在块虚拟化的组网架构中,由存储池向上层提供资源,在存储池中包括多个PD,且按照指定大小将每个ro切割成多个VD,多个VD按照相应的RAID策略组建VDG,并向上层提供资源。进一步的,当存储池中的资源(即VD资源)不足以满足上层业务的需求时,可以对存储池进行扩容,即在存储池中添加新ro,并按照指定大小将新ro切割成多个VD,新ro所切割成的多个VD用于继续向上层提供资源,以满足上层业务的需求。在此基础上,本发明实施例中,存储池内包括扩容前的κ个ro和扩容后的μ个ro,其中,κ为正整数,μ为正整数。
[0030]例如,将ro1、ro2、ro3、ro4、PD5加入到存储池中,并按照指定大小将各个ro均切割成 9 个 VD。VDG1 由 VD11、VD21、VD31、VD41 组成,VDG2 由 VD12、VD22、VD32、VD51 组成,VDG3 由 VD13、VD23、VD42、VD52 组成,VDG4 由 VD14、VD33、VD43、VD53 组成,VDG5 由 VD24、VD34、VD44、VD54 组成,VDG6 由 VD15、VD25、VD35、VD45 组成。第一个 RAID 由 VDG1、VDG2和VDG3组成,第二个RAID由VDG4、VDG5和VDG6组成。之后,为了满足上层业务的需求,将PD6, PD7, PD8, PD9加入到存储池中,并按照指定大小分别将H)6、PD7, PD8, PD9均切割成9个VD。在此基础上,存储池内包括了扩容前的5个H)(PD1、PD2、PD3、PD4、PD5)以及扩容后的 4 个 PD (PD6、PD7、PD8、PD9)。
[0031]在上述应用场景下,如图2所示,该资源创建的方法可以包括以下步骤:
[0032]步骤201,在资源创建过程中,从K个ro和Μ个ro中,选择用于创建资源的VD ;其中,选择的vd均匀分布在κ个ro和μ个ro中。
[0033]本发明实施例中,从κ个ro和μ个ro中,选择用于创建资源的vd的过程,具体可以包括但不限于如下方式:按照伪随机算法和本次资源创建时ro上占用的vd均衡算法,从κ个ro和μ个ro中选择用于创建资源的vd,以使选择的vd均匀分布在κ个ro和μ个ro中,且选择的用于组建同一个VDG的多个VD不能位于同一个上。
[0034]其中,当需要创建资源时,首先确定资源所需的VDG数量,之后确定每个VDG中的VD数量,确定VD总数量(VDG数量*VD数量),按照伪随机算法和本次资源创建时上占用的VD均衡算法,从K个ro和Μ个ro中选择用于创建资源的VD总数量个VD,选择的VD均匀分布在κ个ro和μ个ro中。
[0035]其中,伪随机算法是指任意选择一个随机值,然后将选择的随机值转换成特定区间内的数值。例如,当κ个ro和μ个ro的总数量为12时,则特定区间可以为1-12,任意选择一个随机值100,按照特定算法(比如取余算法)可以将随机值100转换成特定区间(1-12)内的数值8。
[0036]其中,本次资源创建时ro上占用的VD均衡算法是指:针对本次资源创建时需要选择的所有vd,在κ个ro和μ个ro上进行均衡,使κ个ro和μ个ro中的各ro的利用率保持在平均利用率的有效范围之内,如平均利用率为N,平均利用率上下浮动范围为,则K个ro和μ个ro中的各ro的利用率最终需要保持在[n* (1 -X %),n* (1+X %)]的范围之内,从而达到均衡的效果。
[0037]需要注意的是,此处的平均利用率是指本次资源创建时的平均利用率,与κ个ro上已经选择的VD没有任何关系。例如,本次资源创建时需要选择的所有VD为24,K个ro和Μ个ro的总数量为12时,则平均利用率N为24/12个上的VD总数量。
[0038]本发明实施例中,在对存储池进行扩容之后,即使扩容前的κ个ro的利用率远大于扩容后的Μ个ro的利用率,在资源创建过程中,是从所有ro (扩容前的κ个ro和扩容后的Μ个ro)中选择用于创建资源的VD (如从所有ro中选取VD来创建VDG),即按照伪随机算法和本次资源创建时ro上占用的VD均衡算法,从κ个ro和μ个ro中选择用于创建资源的VD,而不是从扩容后的μ个ro中选择用于创建资源的VD。其中,在按照伪随机算法和本次资源创建时ro上占用的vd均衡算法,从κ个ro和μ个ro中选择用于创建资源的vd时,针对当前选择的vd,在κ个ro和μ个ro中进行均衡,将所选择的vd均匀分布在存储池中的所有ro(即κ个ro和μ个pd)上,且选择的用于组建同一个VDG的多个vd不能位于同一个PD上。
[0039]例如,在对存储池进行扩容之后,即使扩容前的K个ro(PDl、PD2、PD3、PD4、PD5)的利用率远大于扩容后的Μ个H)(PD6、PD7、PD8、PD9)的利用率,在资源创建过程中,在选取VD创建 RAID 时,也是从所有 PD (PD1、PD2、PD3、PD4、PD5、PD6、PD7、PD8、PD9)中选取 VD 来创建丫06,而不是从扩容后的]?个^)(?06、?07、?08、?09)中选取VD来创建VDG。例如,如图1所示,在对存储池进行扩容之前,VDG1由VD11、VD21、VD31、VD41组成,VDG2由VD12、VD22、VD32、VD51 组成,VDG3 由 VD13、VD23、VD42、VD52 组成,VDG4 由 VD14、VD33、VD43、VD53 组成,VDG5 由 VD24、VD34、VD44、VD54 组成,VDG6 由 VD15、VD25、VD35、VD45 组成。基于此,如图3所示,在对存储池进行扩容之后,VDG7由VD16、VD26、VD36、VD46组成,VDG8由VD55、VD61、VD71、VD81 组成,VDG9 由 VD91、VD17、VD27、VD37 组成,VDG10 由 VD47、VD56、VD62、VD72 组成,VDG11 由 VD82、VD92、VD18、VD28 组成,VDG12 由 VD38、VD48、VD57、VD63 组成,VDG13由VD73、VD83、VD93、VD19组成,以此类推。进一步的,第一个RAID由VDG1、VDG2和VDG3组成,第二个RAID由VDG4、VDG5和VDG6组成,第三个RAID由VDG7、VDG8和VDG9组成,第四个RAID由VDG10、VDG11和VDG12组成,以此类推。
[0040]步骤202,在资源创建完成后,对K个ro和Μ个ro中的VD进行均衡处理,以使K个ro和μ个ro的利用率保持在平均利用率的有效范围内。
[0041]本发明实施例中,对κ个ro和μ个ro中的vd进行均衡处理,以使κ个ro和μ个pd的利用率保持在平均利用率的有效范围之内的过程,具体可以包括但不限于如下方式:将κ个ro中的部分VD的数据迀移到μ个ro中的VD上,以使κ个ro和μ个ro的利用率(或者空闲率)保持在平均利
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1