CN105138468B - 一种提高虚拟磁盘组重构性能的方法和装置 - Google Patents

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

Info

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
Application number
CN201510511402.2A
Other languages
English (en)
Other versions
CN105138468A (zh
Inventor
郭永强
王丽红
李华英
郭鹏洲
台德莉
肖永玲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Uniview Technologies Co Ltd
Original Assignee
Zhejiang Uniview Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhejiang Uniview Technologies Co Ltd filed Critical Zhejiang Uniview Technologies Co Ltd
Priority to CN201510511402.2A priority Critical patent/CN105138468B/zh
Publication of CN105138468A publication Critical patent/CN105138468A/zh
Application granted granted Critical
Publication of CN105138468B publication Critical patent/CN105138468B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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在参与重构时设置的计数值。
CN201510511402.2A 2015-08-19 2015-08-19 一种提高虚拟磁盘组重构性能的方法和装置 Active CN105138468B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI357562B (en) * 2007-12-20 2012-02-01 Infortrend Technology Inc Io processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
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