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

文档序号:9489394阅读:354来源:国知局
一种资源创建的方法和装置的制造方法
【技术领域】
[0001]本发明涉及存储技术领域,尤其涉及一种资源创建的方法和装置。
【背景技术】
[0002]为了解决重构时间较长的问题,传统的阵列构建方式逐渐演变到块虚拟化方式,如图1所示,为块虚拟化的架构示意图,通过块虚拟化方式,由存储池向上层提供资源。块虚拟化方式的基本思想是:将指定数量的H^Physical Disk,物理磁盘)加入到存储池中,并按照指定大小将切割成多个VD (Virtual Disk,虚拟磁盘,即分块),多个VD按照相应的RAID (Redundant Arrays of Independent Disks,独立冗余磁盘阵列)策略组建VDG (Virtual Disk Group,虚拟磁盘组),并向上层提供资源。其中,VD是组成VDG的虚拟磁盘单元,VDG由多个位于不同上的VD组成。
[0003]在图1中,将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组成,以此类推。
[0004]当存储池中的资源(即VD资源)不足以满足上层业务的需求时,可以对存储池进行扩容,即在存储池中添加新PD,并按照指定大小将新ro切割成多个VD,新ro所切割成的多个vd用于继续向上层提供资源,以满足上层业务的需求。例如,重新将ro6、ro7、ro8、ro9加入到存储池中,并按照指定大小分别将ro6、PD7, PD8, PD9均切割成9个VD。
[0005]在将新ro(H)6、PD7, PD8, PD9)添加到存储池之后,新的利用率为0,而原有H)(PD1、PD2、PD3、PD4、PD5)的利用率远大于新的利用率,此时需要对存储池进行均衡处理,以使所有ro的利用率保持在平均利用率的有效范围之内。基于此,在选取VD创建RAID时,会先从新PD中选取VD来创建VDG,例如,VDG7由VD61、VD71、VD81、VD91组成,VDG8由VD62、VD72、VD82、VD92 组成,VDG9 由 VD63、VD73、VD83、VD93 组成,VDG10 由 VD64、VD74、VD84、VD94组成,以此类推。进一步的,第三个RAID由VDG7、VDG8和VDG9组成,以此类推。
[0006]当新ro (PD6, PD7, PD8, PD9)中有任意一个(如TO6)发生故障时,会触发重构过程,此时基于H)7、PD8, PD9中的数据恢复PD6中的数据,而原有Η)(Η)1、PD2, PD3, PD4,PD5)并不会参与到重构过程中。
[0007]基于上述方式,参与到重构过程中的Η)数量较少,导致重构速度大大降低,PD7,PD8, PD9的重构压力比较大,从而造成对业务的影响。

【发明内容】

[0008]本发明提供一种资源创建的方法,存储池内包括扩容前的κ个物理磁盘ro和扩容后的μ个ro,κ为正整数,μ为正整数,所述方法包括:
[0009]在资源创建过程中,从所述κ个ro和μ个ro中,选择用于创建资源的虚拟磁盘vd ;其中,选择的vd均匀分布在所述κ个ro和μ个ro中;
[0010]在资源创建完成后,对所述κ个ro和μ个ro中的VD进行均衡处理,以使所述κ个ro和μ个ro的利用率保持在平均利用率的有效范围之内。
[0011 ] 所述从所述κ个ro和μ个ro中,选择用于创建资源的vd的过程,具体包括:按照伪随机算法和本次资源创建时ro上占用的vd均衡算法,从所述κ个ro和所述μ个ro中选择用于创建资源的VD,其中,选择的用于组建同一个虚拟磁盘组VDG的多个VD不能位于同一个PD上。
[0012]所述方法进一步包括:
[0013]在资源创建之前,则设置创建标记;在资源创建完成之后,则清除所述创建标记;其中,如果当前存在所述创建标记,则不允许执行对所述κ个ro和μ个ro中的VD进行均衡处理的过程;如果当前不存在所述创建标记,则执行对所述κ个ro和μ个ro中的VD进行均衡处理的过程。
[0014]所述对所述κ个ro和所述μ个ro中的vd进行均衡处理,以使所述κ个ro和所述μ个ro的利用率保持在平均利用率的有效范围之内的过程,具体包括:将所述κ个ro中的部分vd的数据迀移到所述μ个ro中的vd上,以使所述κ个ro和所述μ个ro的利用率保持在平均利用率的有效范围之内;其中,在将所述κ个ro中的部分vd的数据迀移到所述Μ个ro中的VD上时,针对所述κ个ro中的位于同一个VDG的多个VD,所述多个VD中迀移部分VD的数据到所述Μ个ro中对应个数的VD上。
[0015]所述平均利用率的有效范围具体包括:[N*(l-X% ),N*(l+x% )],所述N为平均利用率,X为预设阈值;所述平均利用率N = ((a% +b% )*K+b% *M)/(K+M);其中,为在资源创建过程之前,所述K个ro中的每个ro的利用率,b%为在资源创建过程中,所述κ个ro和所述μ个ro中的每个ro的利用率。
[0016]本发明提供一种资源创建的装置,存储池内包括扩容前的κ个物理磁盘ro和扩容后的μ个ro,κ为正整数,μ为正整数,所述装置包括:
[0017]选择模块,用于在资源创建过程中,从κ个ro和μ个ro中选择用于创建资源的虚拟磁盘vd ;选择的vd均匀分布在κ个ro和μ个ro中;
[0018]处理模块,用于在资源创建完成之后,对所述κ个ro和所述μ个ro中的VD进行均衡处理,以使所述K个ro和所述μ个ro的利用率保持在平均利用率的有效范围之内。
[0019]所述选择模块,具体用于在从所述κ个ro和所述μ个ro中,选择用于创建资源的虚拟磁盘vd的过程中,按照伪随机算法和本次资源创建时ro上占用的vd均衡算法,从所述κ个ro和所述μ个ro中选择用于创建资源的vd,且选择的用于组建同一个虚拟磁盘组VDG的多个vd不能位于同一个ro上。
[0020]所述处理模块,还用于在资源创建之前,则设置创建标记;在资源创建完成之后,则清除所述创建标记;其中,如果当前存在所述创建标记,则不允许所述处理模块执行对所述κ个ro和μ个ro中的VD进行均衡处理的过程;如果当前不存在所述创建标记,则允许所述处理模块执行对所述κ个ro和μ个ro中的vd进行均衡处理的过程。
[0021]所述处理模块,具体用于在对所述κ个ro和所述μ个ro中的VD进行均衡处理,以使所述K个ro和所述μ个ro的利用率保持在平均利用率的有效范围之内的过程中,将所述κ个ro中的部分VD的数据迀移到所述μ个ro中的VD上,以使所述κ个ro和所述μ个ro的利用率保持在平均利用率的有效范围之内;在将所述κ个ro中的部分vd的数据迀移到所述μ个ro中的vd上时,针对所述κ个ro中的位于同一个VDG的多个VD,所述多个VD中迀移部分VD的数据到所述Μ个ro中对应个数的VD上。
[0022]所述平均利用率的有效范围具体包括:[N*(l-X% ),N*(l+x% )],所述N为平均利用率,X为预设阈值;所述平均利用率N = ((a% +b% )*K+b% *M)/(K+M);其中,为在资源创建过程之前,所述K个ro中的每个ro的利用率,b%为在资源创建过程中,所述κ个ro和所述μ个ro中的每个ro的利用率。
[0023]基于上述技术方案,本发明实施例中,在对存储池进行扩容之后,即使扩容前的κ个ro的利用率远大于扩容后的μ个ro的利用率,在资
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1