CN105138468B - 一种提高虚拟磁盘组重构性能的方法和装置 - Google Patents
一种提高虚拟磁盘组重构性能的方法和装置 Download PDFInfo
- Publication number
- CN105138468B CN105138468B CN201510511402.2A CN201510511402A CN105138468B CN 105138468 B CN105138468 B CN 105138468B CN 201510511402 A CN201510511402 A CN 201510511402A CN 105138468 B CN105138468 B CN 105138468B
- Authority
- CN
- China
- Prior art keywords
- vdg
- reconstruct
- reconstructed
- reconstructing
- participating
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种提高虚拟磁盘组重构性能的装置,该装置包括:重构虚拟磁盘组VDG选择模块,用于在当前未超过系统支持的同时参与重构的VDG个数时,选择一个需要重构的VDG;在该选择的需重构的VDG中的各VD所在的PD已有VD在参与重构时,不对该VDG进行重构;在该选择的需重构的VDG中的各VD所在的PD尚不存在VD在参与重构时,将该VDG加入重构队列;VDG重构模块,用于对重构队列中的VDG进行重构。本发明方案在提高重构性能的基础上,还减少了内存消耗以及对业务的影响。
Description
技术领域
本发明涉及存储技术领域,尤其涉及一种提高虚拟磁盘组重构性能的方法和装置。
背景技术
块虚拟化技术,其基本思想就是将指定数量的大容量硬盘(我们称这组硬盘为组成存储池的磁盘)按照固定的容量切割成多个分块(VD,virtual disk,虚拟磁盘),由多个VD按照相应的RAID策略组建VDG;上层资源建立在这些VDG上。基于块虚拟化技术的存储系统能够做到在一块磁盘故障后,存储池中的所有磁盘都并发参与重构,从而减少重构时间。
对于传统冗余阵列,一块磁盘部分区域失效,需要对整块磁盘进行重构,未失效的区域通过拷贝的方式拷贝到重构盘上,已失效的部分通过重构的方式重构到重构盘;对于整块磁盘失效的情况,需要通过其它在位磁盘重构整块失效的磁盘数据。随着磁盘厂家提供的磁盘容量越来越大,而磁盘的速率并未同步提升的情况下,导致重构一块磁盘的时间越来越长。这样必然会增加阵列失效的风险,因此块虚拟化存储池的概念被提了出来。
块虚拟化存储池,是将一组磁盘组成一个存储池,每块磁盘按照相同大小的块(VD)进行分割。创建上层资源时,采用伪随机算法及均衡算法从存储池中的每个磁盘上选取VD,形成VDG。上层资源由多个VDG组成,当一块磁盘失效时,所有的磁盘都会参与到重构的过程中。如何提高重构的性能而且又不能影响业务,是必须要考虑的问题。
现有方案中,按照VDG在存储池中的排序,选取多个跟失效磁盘相关的VDG参与重构;那么从均衡的角度来看,每个磁盘上都会有多个VD参与重构;这样做的目的可以保证重构时,每一个磁盘都处于忙碌状态,完全充分的参与到重构工作中来。但是,在实际中,效果并不一定很理想。一个实测的例子,34块磁盘(SATA)组成的磁盘池为例,拔掉一块磁盘后,其它磁盘上多个VD参与重构,通过实测可以获知总的重构写带宽约为500M;500M左右的写带宽并不是一个理想的数据。
发明内容
有鉴于此,本发明提供一种提高虚拟磁盘组重构性能的装置和方法。
该装置包括:重构虚拟磁盘组VDG选择模块,用于在当前未超过系统支持的同时参与重构的VDG个数时,选择一个需要重构的VDG;在该选择的需重构的VDG中的各VD所在的PD已有VD在参与重构时,不对该VDG进行重构;在该选择的需重构的VDG中的各VD所在的PD尚不存在VD在参与重构时,将该VDG加入重构队列;VDG重构模块,用于对重构队列中的VDG进行重构。
优选地,所述重构VDG选择模块从VDG bitmap中选择一个需要重构的VDG,在从该VDG bitmap中选择需要一个重构的VDG时,从该VDG bitmap的第一个VDG开始判断该VDG中的各VD所在的PD是否已有VD在参与重构,或者从该VDG bitmap当前完成重构的VDG后的第一个VDG开始判断该VDG中的各VD所在的PD是否已有VD在参与重构。
优选地,重构VDG选择模块判断选择的VDG中的各VD所在的PD是否已有VD在参与重构包括:判断各VD所在的PD上的重构计数是否均为0,如果是,则各VD所在的PD上均没有VD在参与重构;否则,各VD所在的PD上存在VD在参与重构;所述PD上的重构计数为该PD上有VD在参与重构时设置的计数值。
该提高虚拟磁盘组重构性能的方法包括:
步骤A、判断当前是否超过系统支持的同时参与重构的VDG个数,如果是,则退出流程;否则,转步骤B;
步骤B、选取下一个需要重构的VDG,转步骤C;
步骤C、判断该选取的需重构的VDG中的各VD所在的PD是否已有VD在进行重构,如果是,返回步骤B;否则,转步骤D;
步骤D、将该VDG加入重构队列进行重构。
优选地,选取下一个需要重构的VDG包括:从VDG bitmap的第一个VDG开始选取或者从VDG bitmap当前完成重构的VDG后的第一个VDG开始选取。
优选地,判断该选取的需重构的VDG中的各VD所在的PD是否已有VD在进行重构包括:判断各VD所在的PD上的重构计数是否均为0,如果是表明各VD所在的PD上均没有VD在参与重构;否则表明各VD所在的PD上存在VD在参与重构;所述PD上的重构计数为该PD上有VD在参与重构时设置的计数值。
相较于现有技术,本发明方案在提高重构性能的基础上,还减少了内存消耗以及对业务的影响。
附图说明
图1是一种块虚拟化存储池图。
图2是组成上层资源的各VDG图。
图3为一种热备VD选取方式图。
图4是本发明装置逻辑结构图。
图5是本发明装置所在设备的通用硬件架构图。
图6是本发明一种重构VDG选取流程图。
图7是本发明一种VDG重构流程图。
具体实施方式
针对背景技术中的问题,发明人经过仔细分析,发现造成这种情况的主要原因在于:1)同一个磁盘上多个VD参与重构,磁盘寻址所消耗的时间是非常大的,导致重构的性能会降低,而且每个磁盘上多个VD参与重构,对内存的瞬间占有也比较大,这样就会造成对大容量内存的需求;2)由于创建上层资源时,采用均衡算法,每块物理磁盘上所占用的VD数量都保持在一个均衡状态,如果一块磁盘的读写速度相对比较慢,再叠加多个VD在重构,会造成该磁盘的性能更慢,从而影响整体的重构时间。
请参图1,存储池由一组磁盘组成,每个磁盘按照相同大小的块(VD)进行切片。创建上层资源时,首先创建VDG,每一个VDG由位于不同PD(磁盘,即物理磁盘)上的VD按照一定的RAID策略组成,每一组资源由多个VDG组成。假设创建的上层资源由VDG1~VDG16组成,请参图2。当物理磁盘8损坏时,与磁盘8相关的VDG包括VDG1、VDG4、VDG5、VDG9、VDG14、和VDG16。所以需要选取热备VD,对这些VDG进行重构。
热备选取VD策略:选取热备VD不能与VDG中的VD处于同一个PD中,而且要遵守均衡策略,即每块磁盘的利用率保持一致。选取热备VD的一种可能如图3所示,即VDG1选取PD2中的VD,VDG4选取PD4中的VD,VDG5选取PD1中的VD,VDG9选取PD7中的VD,VDG14选取PD3中的VD,VDG16选取PD1中的VD。以16个VDG为例,若这些VDG同时参与重构,即:
PD0上有4个VD读;
PD1上有3个VD读,2个VD写;
PD2上有1个VD读,1个VD写;
PD3上有2个VD读,1个VD写;
PD4上有2个VD读,1个VD写;
PD5上有2个VD读,0个VD写;
PD6上有3个VD读,0个VD写;
PD7上有1个VD读,1个VD写。
这样,PD1上的压力就会比较大,因为写的VD与读的VD可能跨度比较大(取决于创建的资源大小),导致寻址时间比较长,而且同时下发很多重构命令,导致瞬间申请的内存比较大,无法及时释放内存;于此同时对磁盘造成的压力也很大,对业务会有影响。
针对以上原因造成的重构性能低、重构时间长的问题,本发明提供一种提高重构性能的方案。该方案在提高重构性能的基础上,还减少了内存消耗以及对业务的影响。以下通过具体实施例详细说明。
请参图4给出的一种提供重构性能的装置,该装置包括:重构VDG选取模块、重构模块。这两个模块是逻辑意义上的模块,可以由软件来实现。该提高重构性能的装置应用于存储设备中,而该存储设备通常具有图5所示的硬件架构。重构VDG选取模块、重构模块具体如何工作的,请参图6、图7。
重构VDG选取模块按照图6所示的重构选取流程进行重构VDG的选取。
S61、判断当前是否超过系统支持的同时参与重构的VDG个数,如果是,则退出流程;否则,转步骤S62;
S62、选取下一个需要重构的VDG;
S63、判断该选取的需重构的VDG中的各VD所在的PD是否已有VD在进行重构,如果是,返回步骤S62;否则,转步骤S64;
S64、将该VDG加入重构队列进行重构。
系统支持的同时参与重构的VDG的个数A可以根据以下公式进行计算:A=B/(N+M),其中B为存储池中磁盘的个数,N为数据VD的个数,M为冗余VD的个数;比如说,RAID5:7+1,表示7个数据VD(N=7),1个冗余VD(M=1),即同时允许1个VD离线而不影响数据的完整性。这种计算方法,可以尽量保证每个PD上至少都有一个VD在参与重构。但是,如果存储池中磁盘个数足够多时,根据上述公式,同时参与重构的VDG个数也会增多,这样对内存的要求会变高。如果当前内存达不到要求时,将会影响重构。具体内存支持多少个VDG同时参与重构可以通过实测的方式获知。所以系统在设置同时参与重构的VDG个数A时,需要结合上述公式以及内存同时考虑。该个数A是同时参与重构的VDG个数的上限。
通常,需要重构的VDG可以从VDG bitmap(位图)中选取。VDG bitmap中记录哪些VDG需要重构,需要重构的VDG对应的位需置1,这样在查询VDG bitmap时,通过轮询方式获取标记位1对应的VDG进行重构。在从VDG bitmap中选取的时候,有两种选择下一个VDG重构的方法:1)从第一个VDG开始判断,直到遇到合适的VDG,最多循环一圈;2)从结束的VDG后第一个VDG开始查询,最多循环一圈。
选择需要重构的VDG后,判断该VDG中的各VD所在的磁盘是否已经有VD在进行重构。一个PD由很多VD组成,而VDG是由来自不同PD上的VD组成;如果一个VDG正在参与重构,对应的PD上会设置重构计数;根据步骤S63,该PD上的其它VD对应的VDG是不允许参与重构的;只有该PD上的重构计数为0,该PD上的VD才允许参与重构,与该PD上的VD对应的VDG才有可能参与重构(因为一个VDG是否允许重构需要考虑该VDG中的所有VD所在的PD情况)。只有该需要重构的VDG中的所有VD所在的磁盘均没有其他VD在参与重构,才能将该需要重构的VDG加入到重构队列中。
重构模块按照图7所示的重构处理流程执行重构处理。
S71、判断重构队列是否为空,如果是,退出本流程;否则,执行步骤S72;
S72、从队列中选取下一个VDG进行重构;
S73、申请该VDG的重构内存;
S74、下发重构命令;返回步骤S71。
在申请VDG重构内存时,按照多条带来申请。如果VDG比较大,对应的条带比较多,可以将挂在重构队列中的VDG,每个VDG轮流下发多个条带,这样从宏观上可以保证这些VDG的并发。当一个VDG重构完成后,该VDG会被从重构队列中去除,重构VDG选择模块将会选择下一个需要重构的VDG加入重构队列。
本发明技术方案中,确保了每个物理磁盘上同时只有一个VD参与重构,这样在处理这个VD重构时,可以保证其顺序性。因为一个PD上只有一个VD在参与重构,那么磁盘磁头就不会来回寻址,可以保证磁盘读写顺序性;在有业务的情况下,可以减少随机,即减少对业务的影响。由于同时每个PD上只有一个VD参与重构,那么瞬间申请的内存不超过MEM_CHUNK_SIZE*N*PD_NUM(其中:MEM_CHUNK_SIZE为条带中条块的大小;N为同时支持多少个条带下发(目的是为了合并,减少磁盘IO的数量);PD_NUM为存储池中磁盘的个数),从该公式可以看出,重构时申请的内存将比现有方式少。在和背景技术实测例子相同的条件下,即相同的RAID策略,相同的磁盘个数等,应用本发明技术方案后,实际测试得到总的重构写带宽约为800M,性能有明显的提升。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (6)
1.一种提高虚拟磁盘组重构性能的装置,其特征在于,该装置包括:
重构虚拟磁盘组VDG选择模块,用于在当前未超过系统支持的同时参与重构的VDG个数时,选择一个需要重构的VDG;在该选择的需重构的VDG中的各虚拟磁盘VD所在的物理磁盘PD已有VD在参与重构时,不对该VDG进行重构;在该选择的需重构的VDG中的各VD所在的PD尚不存在VD在参与重构时,将该VDG加入重构队列;
VDG重构模块,用于对重构队列中的VDG进行重构。
2.如权利要求1所述的装置,其特征在于,所述重构VDG选择模块从VDG bitmap中选择一个需要重构的VDG,在从该VDG bitmap中选择需要一个重构的VDG时,从该VDG bitmap的第一个VDG开始判断该VDG中的各VD所在的PD是否已有VD在参与重构,或者从该VDG bitmap当前完成重构的VDG后的第一个VDG开始判断该VDG中的各VD所在的PD是否已有VD在参与重构。
3.如权利要求1所述的装置,其特征在于,重构VDG选择模块判断选择的VDG中的各VD所在的PD是否已有VD在参与重构包括:判断各VD所在的PD上的重构计数是否均为0,如果是,则各VD所在的PD上均没有VD在参与重构;否则,各VD所在的PD上存在VD在参与重构;所述PD上的重构计数为该PD上有VD在参与重构时设置的计数值。
4.一种提高虚拟磁盘组重构性能的方法,该方法包括:
步骤A、判断当前是否超过系统支持的同时参与重构的VDG个数,如果是,则退出流程;否则,转步骤B;
步骤B、选取下一个需要重构的VDG,转步骤C;
步骤C、判断该选取的需重构的VDG中的各虚拟磁盘VD所在的物理磁盘PD是否已有VD在进行重构,如果是,返回步骤B;否则,转步骤D;
步骤D、将该VDG加入重构队列进行重构。
5.如权利要求4所述的方法,其特征在于,选取下一个需要重构的VDG包括:从VDGbitmap的第一个VDG开始选取或者从VDG bitmap当前完成重构的VDG后的第一个VDG开始选取。
6.如权利要求4所述的方法,其特征在于,判断该选取的需重构的VDG中的各VD所在的PD是否已有VD在进行重构包括:判断各VD所在的PD上的重构计数是否均为0,如果是表明各VD所在的PD上均没有VD在参与重构;否则表明各VD所在的PD上存在VD在参与重构;所述PD上的重构计数为该PD上有VD在参与重构时设置的计数值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510511402.2A CN105138468B (zh) | 2015-08-19 | 2015-08-19 | 一种提高虚拟磁盘组重构性能的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510511402.2A CN105138468B (zh) | 2015-08-19 | 2015-08-19 | 一种提高虚拟磁盘组重构性能的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105138468A CN105138468A (zh) | 2015-12-09 |
CN105138468B true CN105138468B (zh) | 2018-11-13 |
Family
ID=54723822
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510511402.2A Active CN105138468B (zh) | 2015-08-19 | 2015-08-19 | 一种提高虚拟磁盘组重构性能的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105138468B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105843556B (zh) * | 2016-03-21 | 2019-01-11 | 浙江宇视科技有限公司 | 一种vd选取方法及装置 |
CN105843562B (zh) * | 2016-05-24 | 2018-12-07 | 浙江宇视科技有限公司 | 数据重建的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923496A (zh) * | 2010-07-30 | 2010-12-22 | 华中科技大学 | 一种raid的数据并行重构方法 |
CN102591746A (zh) * | 2011-12-29 | 2012-07-18 | 成都市华为赛门铁克科技有限公司 | 数据重构方法和存储设备 |
CN104375784A (zh) * | 2014-11-17 | 2015-02-25 | 浙江宇视科技有限公司 | 一种降低虚拟磁盘管理复杂度的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI357562B (en) * | 2007-12-20 | 2012-02-01 | Infortrend Technology Inc | Io processor |
-
2015
- 2015-08-19 CN CN201510511402.2A patent/CN105138468B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101923496A (zh) * | 2010-07-30 | 2010-12-22 | 华中科技大学 | 一种raid的数据并行重构方法 |
CN102591746A (zh) * | 2011-12-29 | 2012-07-18 | 成都市华为赛门铁克科技有限公司 | 数据重构方法和存储设备 |
CN104375784A (zh) * | 2014-11-17 | 2015-02-25 | 浙江宇视科技有限公司 | 一种降低虚拟磁盘管理复杂度的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105138468A (zh) | 2015-12-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4754852B2 (ja) | ストレージ制御装置および方法 | |
US20080126700A1 (en) | System for optimizing the performance and reliability of a storage controller cache offload circuit | |
CN103229136B (zh) | 磁盘阵列刷盘方法及磁盘阵列刷盘装置 | |
CN102880428A (zh) | 分布式独立磁盘冗余阵列的创建方法及装置 | |
CN107250975A (zh) | 数据存储系统和数据存储方法 | |
TW201017404A (en) | System and method for loose coupling between RAID volumes and drive groups | |
TW201113705A (en) | Wear leveling of solid state disks distributed in a plurality of redundant array of independent disk ranks | |
CN104850480A (zh) | 高密度存储服务器硬盘性能测试的方法及装置 | |
CN104375784B (zh) | 一种降低虚拟磁盘管理复杂度的方法和装置 | |
TW200532449A (en) | Efficient media scan operations for storage systems | |
CN105138468B (zh) | 一种提高虚拟磁盘组重构性能的方法和装置 | |
CN101729421B (zh) | 一种基于时分复用的存储方法和装置 | |
CN108733326A (zh) | 一种磁盘处理方法及装置 | |
CN106095330A (zh) | 一种元数据的存储方法和装置 | |
CN110377546A (zh) | 一种存储扩展板及服务器存储架构 | |
CN104598171B (zh) | 基于元数据的阵列重建方法及装置 | |
CN103902232B (zh) | 一种写入的数据的方法及装置 | |
CN105243032B (zh) | 一种资源创建的方法和装置 | |
CN105094761B (zh) | 一种数据存储方法和设备 | |
CN1987799A (zh) | 一种适用于磁盘阵列的数据重建方法 | |
CN105843562B (zh) | 数据重建的方法及装置 | |
CN102053801A (zh) | 一种磁盘热备方法及装置、存储系统 | |
CN105224261B (zh) | 一种块虚拟化阵列的实现方法及装置 | |
CN108491162A (zh) | 一种提高存储系统性能的方法及装置 | |
CN103810027B (zh) | 一种网络编码文件系统中基于数据温度的重建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |