一种vd的均衡处理方法和装置的制造方法_3

文档序号:9708006阅读:来源:国知局
。例如,第一个RAID采用的RAID策略是2+1,VDG的个数为5000,原有H)的个数为8,扩容的新PD的个数为I,则在均衡处理完成后,第一个RAID在8个原有ro和I个新ro上所占用的VD数量均在1667左右。
[0048]基于此,RAID的业务会均匀的分布在各PD上,不会出现新PD的业务压力比其它PD的业务压力大的情况,不会缩短新ro的使用寿命。而且,如果新PD出现故障,则在进行重构时,存储池中的所有ro都会参与重构,可以提高重构速度和重构效率,并且避免重构过程对业务造成的影响。
[0049]本发明实施例中,需要将RAID在第一PD中的数据迀移到第二 H)的确定过程,具体可以包括但不限于如下方式:判断存储池内的K个ro和μ个ro的利用率是否均保持在平均利用率的有效范围之内。如果是,则说明已经完成扩容后的均衡处理过程,结束对存储池的均衡处理。如果否,判断当前遍历的RAID在K个PD和M个PD的使用率是否均保持在平均使用率的有效范围之内。如果均保持在平均使用率的有效范围之内,则说明当前遍历的RAID已经完成扩容后的均衡处理过程,不再迀移该RAID的数据,结束对该RAID的均衡处理,选择下一个RAID进行均衡处理。如果没有均保持在平均使用率的有效范围之内,则从K个H)中选择一个使用率大于平均使用率的PD作为第一 PD,并从M个H)中选择一个使用率小于平均使用率的ro作为第二 ro,并确定需要将RAID在第一 ro中的数据迀移到第二 ro。
[0050]本发明实施例中,平均利用率的有效范围具体可以包括但不限于:[N*(1-Xl%),N*(l+xl%)],平均使用率的有效范围具体可以包括但不限于:[Q*(l-x2%)],Q*(1 +x2%)]。其中,N为平均利用率,Q为平均使用率。xl为预设阈值,xl可以根据实际经验进行设置,x2为预设阈值,x2可以根据实际经验进行设置。平均利用率N=(a%*K)/(K+M),a%为在对存储池进行均衡处理之前,K个PD中的每个PD的利用率,K个PD的利用率均为a %。平均利用率N可以是(总VD个数/存储池内的所有H)的总VD个数)* 100 %。
[0051 ] 例如,假设在对存储池进行扩容之前,VDGl由VDl 1、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组成。基于此,在对存储池进行扩容之后,则平均利用率N=24/(6*9)*100%=44%,针对第一个RAID,平均使用率Q =12/(6*9)*100%=22%,针对第二个RAID,平均使用率Q=12/(6*9)*100% =22%。
[0052]在对存储池进行扩容之后,由于TO6的利用率为0,而ro1-H)5的利用率大于0,因此存储池内的所有ro的利用率不是均保持在平均利用率N的有效范围之内。针对当前遍历的第一个RAID,第一个RAID在PD6的使用率为O,在PD1-PD5的使用率大于O,因此第一个RAID在所有ro的使用率不是均保持在平均使用率Q的有效范围之内。由于第一个RAID在roi的使用率为(3/9)*100% = 33%,大于平均使用率Q(22%),因此将HH作为第一H),此时TO6的使用率为O,将PD6作为第二PD,将第一个RAID在PDl中的VDl I的数据均衡到PD6的VD61,此时,乂011处于空闲状态,可以继续被其它¥06使用,¥061由¥061、¥021、¥031、¥041组成。由于第一个RAID在PDl的使用率为(2/9)*100%=22%,等于平均使用率Q(22%),因此不再将I3Dl作为第一PD。由于第一个RAID在PD2的使用率为(3/9)*100%= 33%,大于平均使用率Q(22%),将PD2作为第一 PD,此时PD6的使用率为11%,将PD6作为第二 PD,将第一个RAID在PD2中的VD22的数据均衡到TO6的VD62,此时,VD22处于空闲状态,可以继续被其它VDG使用,VDG2由VD12、VD62、VD32、VD51组成。至此,第一个RAID在所有H)的使用率均为22%,等于平均使用率Q(22% ),第一个RAID已经完成扩容后的均衡处理过程,此时不再将第一个RAID的VDG3中的VD42均衡到TO6的VD63,而是直接选择第二个RAID进行均衡处理,第二个RAID的均衡处理过程与第一个RAID的均衡处理过程相同,在此不再重复赘述。以此类推,一直到扩容后的均衡处理过程结束。
[0053]本发明实施例中,将RAID在第一PD中的数据迀移到第二PD的过程,具体可以包括但不限于如下方式:将RAID在第一ro中的部分VD的数据迀移到第二ro中的VD上;其中,在将RAID在第一ro中的部分VD的数据迀移到第二PD中的VD上的过程中,针对K个PD中的位于同一个VDG的多个VD,该多个VD中可以只迀移部分VD(第一 PD中的部分VD,如一个VD)的数据到M个PD(即第二 H))中对应个数的VD上。
[0054]基于与上述方法同样的发明构思,本发明实施例中还提供了一种VD的均衡处理装置,该VD的均衡处理装置可以应用在存储设备上。其中,该VD的均衡处理装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过该VD的均衡处理装置所在的存储设备的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图3所示,为本发明提出的VD的均衡处理装置所在的存储设备的一种硬件结构图,除了图3所示的处理器、非易失性存储器外,存储设备还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,该存储设备还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。
[0055]如图4所示,为本发明提出的VD的均衡处理装置的结构图,该VD的均衡处理装置可以应用在存储设备上,存储池内包括扩容前的K个物理磁盘PD和扩容后的M个PD,K和M均为正整数,在对存储池进行均衡处理时,针对每个独立冗余磁盘阵列RAID,该VD的均衡处理装置具体包括:
[0056]计算模块11,用于计算所述RAID在存储池内的所有H)上的平均使用率;
[0057]确定模块12,用于当需要将所述RAID在第一H)中的数据迀移到第二PD时,判断所述RAID在所述第二 ro的使用率是否不大于所述平均使用率;所述第一 PD是所述K个PD中的PD,所述第二 ro是所述μ个ro中的ro ;
[0058]处理模块13,用于当判断结果为不大于所述平均使用率时,则将所述RAID在所述第一PD中的数据迀移到所述第二PD;当判断结果为大于所述平均使用率时,则拒绝将所述RAID在所述第一 H)中的数据迀移到所述第二 H)。
[0059]所述计算模块11,具体用于在计算RAID在存储池内的所有H)上的平均使用率的过程中,获得所述RAID需要使用的总VD个数和存储池内的所有PD的总VD个数,利用所述RAID需要使用的总VD个数和存储池内的所有H)的总VD个数,计算所述RAID在所述存储池内的所有H)上的平均使用率。
[0060]所述确定模块12,具体用于在需要将所述RAID在第一ro中的数据迀移到第二 ro的确定过程中,判断所述存储池内的所述K个ro和所述μ个ro的利用率是否均保持在平均利用率的有效范围之内;如果是,则结束对所述存储池的均衡处理;如果否,判断所述RAID在所述K个ro和所述μ个ro的使用率是否均保持在所述平均使用率的有效范围之内;如果均保持在所述平均使用率的有效范围之内,则结束对所述RAID的均衡处理,选择下一个RAID进行均衡处理;如果没有均保持在所述平均使用率的有效范围之内,则从所述K个ro中选择一个使用率大于所述平均使用率的PD作为所述第一 PD,并从所述M个PD中选择一个使用率小于所述平均使用率的ro作为所述第二 ro,并确定需要将所述RAID在所述第一 ro中的数据迀移到所述第二ro。
[0061 ]所述平均利用率的有效范围具体包括:[N*(1-Xl %),N*(l+xl% )],所述平均使用率的有效范围具体包括:[Q*a-x2%)],Q*(l+x2%)];
[0062]其中,所述N为平均利用率,所述Q为平均使用率;所述xl为预设阈值,所述x2为预设阈值;所述平均利用率N=(a%*K)/(K+M),a%S在对所述存储池进行均衡处理之前,所述Kfro中的每个ro的利用率。
[0063]所述处理模块13,具体用于在将
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1