一种提高虚拟磁盘组重构性能的方法和装置的制造方法

文档序号:9417301阅读:271来源:国知局
一种提高虚拟磁盘组重构性能的方法和装置的制造方法
【技术领域】
[0001]本发明涉及存储技术领域,尤其涉及一种提高虚拟磁盘组重构性能的方法和装置。
【背景技术】
[0002]块虚拟化技术,其基本思想就是将指定数量的大容量硬盘(我们称这组硬盘为组成存储池的磁盘)按照固定的容量切割成多个分块(VD, virtual disk,虚拟磁盘),由多个VD按照相应的RAID策略组建VDG ;上层资源建立在这些VDG上。基于块虚拟化技术的存储系统能够做到在一块磁盘故障后,存储池中的所有磁盘都并发参与重构,从而减少重构时间。
[0003]对于传统冗余阵列,一块磁盘部分区域失效,需要对整块磁盘进行重构,未失效的区域通过拷贝的方式拷贝到重构盘上,已失效的部分通过重构的方式重构到重构盘;对于整块磁盘失效的情况,需要通过其它在位磁盘重构整块失效的磁盘数据。随着磁盘厂家提供的磁盘容量越来越大,而磁盘的速率并未同步提升的情况下,导致重构一块磁盘的时间越来越长。这样必然会增加阵列失效的风险,因此块虚拟化存储池的概念被提了出来。
[0004]块虚拟化存储池,是将一组磁盘组成一个存储池,每块磁盘按照相同大小的块(VD)进行分割。创建上层资源时,采用伪随机算法及均衡算法从存储池中的每个磁盘上选取VD,形成VDG。上层资源由多个VDG组成,当一块磁盘失效时,所有的磁盘都会参与到重构的过程中。如何提高重构的性能而且又不能影响业务,是必须要考虑的问题。
[0005]现有方案中,按照VDG在存储池中的排序,选取多个跟失效磁盘相关的VDG参与重构;那么从均衡的角度来看,每个磁盘上都会有多个VD参与重构;这样做的目的可以保证重构时,每一个磁盘都处于忙碌状态,完全充分的参与到重构工作中来。但是,在实际中,效果并不一定很理想。一个实测的例子,34块磁盘(SATA)组成的磁盘池为例,拔掉一块磁盘后,其它磁盘上多个VD参与重构,通过实测可以获知总的重构写带宽约为500M ;500M左右的写带宽并不是一个理想的数据。

【发明内容】

[0006]有鉴于此,本发明提供一种提高虚拟磁盘组重构性能的装置和方法。
[0007]该装置包括:重构虚拟磁盘组VDG选择模块,用于在当前未超过系统支持的同时参与重构的VDG个数时,选择一个需要重构的VDG ;在该选择的需重构的VDG中的各VD所在的H)已有VD在参与重构时,不对该VDG进行重构;在该选择的需重构的VDG中的各VD所在的H)尚不存在VD在参与重构时,将该VDG加入重构队列;VDG重构模块,用于对重构队列中的VDG进行重构。
[0008]优选地,所述重构VDG选择模块从VDG bitmap中选择一个需要重构的VDG,在从该VDG bitmap中选择需要一个重构的VDG时,从该VDG bitmap的第一个VDG开始判断该VDG中的各VD所在的H)是否已有VD在参与重构,或者从该VDG bitmap当前完成重构的VDG后的第一个VDG开始判断该VDG中的各VD所在的H)是否已有VD在参与重构。
[0009]优选地,重构VDG选择模块判断选择的VDG中的各VD所在的H)是否已有VD在参与重构包括:判断各VD所在的ro上的重构计数是否均为0,如果是,则各VD所在的ro上均没有VD在参与重构;否则,各VD所在的ro上存在VD在参与重构;所述ro上的重构计数为该F1D上有VD在参与重构时设置的计数值。
[0010]该提高虚拟磁盘组重构性能的方法包括:
[0011]步骤A、判断当前是否超过系统支持的同时参与重构的VDG个数,如果是,则退出流程;否则,转步骤B;
[0012]步骤B、选取下一个需要重构的VDG,转步骤C ;
[0013]步骤C、判断该选取的需重构的VDG中的各VD所在的H)是否已有VD在进行重构,如果是,返回步骤B ;否则,转步骤D ;
[0014]步骤D、将该VDG加入重构队列进行重构。
[0015]优选地,选取下一个需要重构的VDG包括:从VDG bitmap的第一个VDG开始选取或者从VDG bitmap当前完成重构的VDG后的第一个VDG开始选取。
[0016]优选地,判断该选取的需重构的VDG中的各VD所在的H)是否已有VD在进行重构包括:判断各VD所在的ro上的重构计数是否均为0,如果是表明各VD所在的ro上均没有VD在参与重构;否则表明各VD所在的ro上存在VD在参与重构;所述ro上的重构计数为该F1D上有VD在参与重构时设置的计数值。
[0017]相较于现有技术,本发明方案在提高重构性能的基础上,还减少了内存消耗以及对业务的影响。
【附图说明】
[0018]图1是一种块虚拟化存储池图。
[0019]图2是组成上层资源的各VDG图。
[0020]图3为一种热备VD选取方式图。
[0021]图4是本发明装置逻辑结构图。
[0022]图5是本发明装置所在设备的通用硬件架构图。
[0023]图6是本发明一种重构VDG选取流程图。
[0024]图7是本发明一种VDG重构流程图。
【具体实施方式】
[0025]针对【背景技术】中的问题,发明人经过仔细分析,发现造成这种情况的主要原因在于:1)同一个磁盘上多个VD参与重构,磁盘寻址所消耗的时间是非常大的,导致重构的性能会降低,而且每个磁盘上多个VD参与重构,对内存的瞬间占有也比较大,这样就会造成对大容量内存的需求;2)由于创建上层资源时,采用均衡算法,每块物理磁盘上所占用的VD数量都保持在一个均衡状态,如果一块磁盘的读写速度相对比较慢,再叠加多个VD在重构,会造成该磁盘的性能更慢,从而影响整体的重构时间。
[0026]请参图1,存储池由一组磁盘组成,每个磁盘按照相同大小的块(VD)进行切片。创建上层资源时,首先创建VDG,每一个VDG由位于不同H)(磁盘,即物理磁盘)上的VD按照一定的RAID策略组成,每一组资源由多个VDG组成。假设创建的上层资源由VDGl?VDG16组成,请参图2。当物理磁盘8损坏时,与磁盘8相关的VDG包括VDG1、VDG4、VDG5、VDG9、VDG14、和VDG16。所以需要选取热备VD,对这些VDG进行重构。
[0027]热备选取VD策略:选取热备VD不能与VDG中的VD处于同一个H)中,而且要遵守均衡策略,即每块磁盘的利用率保持一致。选取热备VD的一种可能如图3所示,即VDGl选取TO2中的VD,VDG4选取HM中的VD,VDG5选取PDl中的VD,VDG9选取TO7中的VD,VDG14选取Η)3中的VD,VDG16选取roi中的VD。以16个VDG为例,若这些VDG同时参与重构,即:
[0028]PDO 上有 4 个 VD 读;
[0029]PDl上有3个VD读,2个VD写;
[0030]PD2上有I个VD读,I个VD写;
[0031]PD3上有2个VD读,I个VD写;
[0032]PD4上有2个VD读,I个VD写;
[0033]PD5上有2个VD读,O个VD写;
[0034]PD6上有3个VD读,O个VD写;
[0035]PD7上有I个VD读,I个VD写。
[0036]这样,PDl上的压力就会比较大,因为写的VD与读的VD可能跨度比较大(取决于创建的资源大小),导致寻址时间比较长,而且同时下发很多重构命令,导致瞬间申请的内存比较大,无法及时释放内存;于此同时对磁盘造成的压力也很大,对业务会有影响。
[0037]针对以上原因造成的重构性能低、重构时间长的问题,本发明提供一种提高重构性能的方案。该方案在提高重构性能的基础上,还减少了内存消耗以及对业务的影响。以下通过具体实施例详细说明。
[0038]请参图4给出的一种提供重构性能的装置,该装置包括:重构VDG选取模块、重构模块。这两个模块是逻辑意义上的模块,可以由软件来
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1