CN1519726A - 一种磁盘在线重构方法 - Google Patents

一种磁盘在线重构方法 Download PDF

Info

Publication number
CN1519726A
CN1519726A CNA031024629A CN03102462A CN1519726A CN 1519726 A CN1519726 A CN 1519726A CN A031024629 A CNA031024629 A CN A031024629A CN 03102462 A CN03102462 A CN 03102462A CN 1519726 A CN1519726 A CN 1519726A
Authority
CN
China
Prior art keywords
lun
group
buffer memory
buffer
raid
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.)
Granted
Application number
CNA031024629A
Other languages
English (en)
Other versions
CN1302392C (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.)
XFusion Digital Technologies Co Ltd
Original Assignee
Huawei 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB031024629A priority Critical patent/CN1302392C/zh
Publication of CN1519726A publication Critical patent/CN1519726A/zh
Application granted granted Critical
Publication of CN1302392C publication Critical patent/CN1302392C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种磁盘在线重构方法,包括以下步骤:预先将独立冗余磁盘阵列(RAID)中的分条深度大小相近的逻辑单元(LUN)划分成至少一个以上的组;磁盘重构过程开始,按RAID中分条深度最大的LUN申请一块缓存作为专有缓存,按组进行重构,重构进行到某一组时,按该组中分条深度最大的LUN申请一块缓存作为自由缓存,预留缓存的申请与自由缓存的相同。通过本发明方案能够在保证较少的缓冲区管理器内存申请释放次数的同时,降低内存的浪费。

Description

一种磁盘在线重构方法
技术领域
本发明涉及独立冗余磁盘阵列(RAID)系统领域,特别是涉及一种磁盘在线重构方法。
背景技术
随着计算机数据处理能力的不断增强,硬盘的读取速度已无法满足大量数据读取的需要,因而出现了独立冗余磁盘阵列技术,其以成本低、功耗小、传输速率高、实现简单等优点,在网络服务器等设备中得到广泛应用。
RAID技术的优点之一就是能够在磁盘损坏时进行在线磁盘重构。目前主流的磁盘重构方法如下:
构造N个进程,N-1个进程对应N-1个仍然正常工作的磁盘,一个进程对应于热备盘。
与正常工作的磁盘相连的进程进行如下的处理:
步骤1、找到该磁盘上地址最低的分条单元;
步骤2、若缓冲区(buffer)有足够的空间接收数据,则对该分条单元发出一个低优先级的读请求,读至缓冲区内(跳过已重构完毕的分条);
步骤3、等待读操作完成,如果缓冲区管理器(buffer manager)中有缓冲区能接受该数据,将该数据送至缓冲区管理器的缓冲区中进行异或,并返回步骤1,否则等待,直到所有的分条单元都被读完。
与热备盘相连的进程进行如下处理:
步骤4、若缓冲区管理器中有已进行完所有分条单元异或的缓冲区,取出,进入下一步,否则等待;
步骤5、对热备盘发出一个低优先级的写请求,将取来的缓冲区中的数据写至热备盘上,返回步骤4,等待写完成,直到失败磁盘所有数据都得到重构。
目前主流的Raid技术中均含有对逻辑单元(LUN,Logical Unit Number)的划分,Raid的分条深度,即在一个单盘上可以连续读写的数据数量,依LUN的大小而指定,所以各LUN的分条深度互有不同。
从上面流程可知,在面向磁盘的重构算法中,由于不同磁盘上的用户随机到达,有可能某些进程读取的数据块比其它进程多,缓存管理进程必须管理这些信息直到系统中最慢进程提交数据上来。这样各个进程对缓存的需求随时变化,没有一个固定值,但是系统的缓存是有限的,因而必须限制各个进程的缓存需求量。而重构过程中,是按分条单元地址由低到高顺序进行的,因此缓冲区管理器中申请缓冲区的大小很难确定。而如果缓冲区的大小不固定,则会增加缓存的申请释放过程,影响系统性能。对此,目前通常的做法是使缓冲区管理器中的缓冲区大小依最大的分条单元而定。这样虽然统一了缓冲区的大小,但可能造成内存的浪费。特别是当分条深度差别较大时,比如按照不同应用,一个逻辑单元的分条深度可能相差上千倍,那么如果按最大的分条深度统一申请的缓存大小,将长时间占用buffer manager中的大块缓存,从而造成内存资源的极大浪费。
发明内容
有鉴于此,本发明的目的是提供一种基于磁盘逻辑单元在线重构中的缓存管理方法。使通过该方法能够在保证较少的buffer manager内存申请释放次数的同时,降低内存的浪费。
为达到上述目的,本发明的技术方案具体是这样实现的:
一种磁盘逻辑单元在线重构中的缓存管理方法,包括以下步骤:
a)预先将独立冗余磁盘阵列中分条深度大小相近的逻辑单元划分成至少一个以上的组;
b)磁盘重构过程开始,按RAID中分条深度最大的LUN申请一块缓存作为专有缓存,按组进行重构,重构进行到某一组时,按该组中分条深度最大的LUN申请一块缓存作为自由缓存,预留缓存的申请与自由缓存的相同。
较佳的使该方法步骤a)所划分的每个组中所有LUN的分条深度大小之和相近。
该方法进一步包括:设定一个阈值,如果RAID中分条深度最大的LUN与分条深度最小的LUN的比值小于该阈值,则令步骤a)中的分组个数为1,否则,令步骤a)中的分组个数为3至5之间。
该方法所述阈值为2或3。
通过上述方案可以看出,针对传统面向磁盘的重构算法的缺点,本发明增加了对LUN的区分,这样buffer manager的buffer大小可以根据LUN组的变更进行调整,从而实现内存的较低浪费和内存的较少次申请释放过程。
附图说明
图1为本发明实施例的实现示意图。
具体实施方式
下面结合附图及具体实施例对本发明再作进一步详细的说明。
通常RAID重构缓存包括三部分:专有缓存、预留缓存、自由缓存。专有缓存在重构过程中专用于读取磁盘数据;自由缓存用于保存待异或数据;预留缓存属于自由缓存的一部分,主要用于当出现强制重构,即用户写请求的分条正处于重构状态时,专有缓存若无法提交自由缓存进行异或操作,则专有缓存提交预留缓存完成异或操作。
针对前面所述的发明目的,本发明采用如下策略:先将分条深度较接近的LUN分为一组,然后按组进行重构,当重构到某一组时,按该组中最大的分条深度申请自由缓存和预留缓存,待该组重构完成后再将其释放,而用于磁盘数据预读取的专有缓存则按整个RAID中最大分条深度的LUN申请,申请之后,除非重构结束,专有缓存不被释放。这样通过将LUN分组,从而既减少缓存资源占用,又保证了尽量少的缓存申请释放次数。
在实际操作过程中,还要考虑到如果RAID中各LUN分条深度相差不大,则没必要对其分组。
因此,首先给定一个阈值M。并假设N=MAX_Memery_Requied/MIN_Memery_Requied。这里Memery_Requied为每个LUN重构时所需的缓存大小;MAX_Memery_Requied为该RAID中LUN的最大值;MIN_Memery_Requied为其中的最小值。
有如下两种情况:
1、N小于M,此时由于分条深度之间差距较小,可不对其分组,而是统一申请一块缓存池,专有缓存、自由缓存和预留缓存,都可按该RAID中LUN的最大分条深度统一申请。当然也可以认为将整个RAID是分成了一组。这样既降低了内存管理难度,也减少了内存释放的频度。比如有LUN1~LUN5,其最大分条单元深度为45个Sectors,那么所需的重构缓存不会超过1MB,此时LUN1~LUN5完全可以固定申请一块缓存池,统一使用。
2、N大于M,此时分条深度差异较大。则需按上述方法分组进行磁盘重构。
阈值M,一般在2~3之间。其具体值,可根据该RAID组的应用场合,并结合系统配置,合理设置M。比如对于多媒体应用,由于一个分条单元大小较大,一般在512K~4M之间,则M可设置略大,如3。
参见图1所示,以RAID5为例来说明基于LUN的在线重构方法。
一般情况下,LUN之间的分条深度差异不很均匀。如图1中的情况,则可先确定一个允许差值δ,比较RAID组中所有LUN的分条深度,将满足|LUNi-LUNj|≤δ的LUN集中起来,根据分组情况,分别申请缓存,供其重构使用。
比如若设δ=50扇区(Sectors),则将LUN1~LUN5分成了三个组,组1:LUN1、LUN3;组2:LUN2、LUN4;组3:LUN5。在重构过程中,专有缓存大小恒定为800个Sectors;自由缓存或预留缓存则随着重构的进行,依次取为250个Sectors、350个Sectors、800个Sectors。重构时,按照LUN1与LUN3第一组、LUN2与LUN4第二组、LUN5第三组顺序依次重构,重构完成一组LUN,重新申请自由缓存。
具体步骤是:
步骤1:申请专有缓存的大小为800个Sectors。
步骤2:读取LUN1中的数据到专有缓存,申请自由缓存的大小为250个Sectors,将LUN1的数据提交到自由缓存,进行异或操作,完成后将数据发送至热备盘。此时保留该自由缓存,继续按以上步骤对LUN3进行重构,即读取LUN3中的数据到专有缓存,将LUN3的数据提交到自由缓存,待LUN3的所有分条单元的数据进行完异或后,将数据发送至热备盘,从而完成了组1的重构。
这样,组1重构完成后,释放该自由缓存;重新申请自由缓存大小为350个Sectors,对组2的LUN2、LUN4按上述步骤一次进行重构,完成后,释放该自由缓存;再申请自由缓存的大小为800个Sectors,对组3的LUN5进行重构。
当出现强制重构时,若无法将数据从专有缓存提交自由缓存进行异或操作,则提交预留缓存完成异或操作,其步骤及缓存申请办法与自由缓存相同。
这里的δ,以使分组数目在3~5之间为好,太大太小都起不到分组归类的目的。且分组时,最好能使每个分组中所有LUN大小之和相近,这样重构的每个分组大小相近,若主机每个分组的访问频率相近的情况下,每个分组的重构时间相近,不至使某个分组重构时间过长,某个分组的重构时间又过短。由于某个LUN重构时,主机对该LUN的访问效率总会受到影响,减少某个LUN所在分组的重构时间,对提高主机对该LUN的访问效率是有好处的。
如果RAID系统各LUN的分条深度相差恰好较为均匀,比如同样是图1结构的RAID系统,而LUN的分条深度从LUN1到LUN5恰好依次为:100、200、300、400、500个Sectors,此时很难确定一个合适的δ大小,因此可以根据上述各分组中LUN大小之和相近的原则,将LUN1到LUN3划为一组,LUN4为一组,最后LUN5为一组。重构过程与上述相同。
另外,对于另一种情况,比如仍以图1结构的RAID为例。如果LUN1至LUN5依次为100、210、300、410、500,虽然此时按设定一个差值δ的方法可以分组,但无法满足各组中LUN大小之和相近原则,此时可同样将LUN1到LUN3划为一组,LUN4为一组,最后LUN5为一组。
总之,分组原则既要使分组数目不能太多,通常在3~5之间,以保证缓存较少的申请释放次数,又要使各分组中LUN大小之和相近。这样可根据实际情况,综合考虑上述两原则来确定较佳的分组方案。当然,在具体实施方式中并不仅限于上述分组方法。即保证较少的缓存申请释放次数,又实现内存的较低浪费的其他分组方法也可达到本发明的目的。

Claims (4)

1、一种磁盘在线重构方法,其特征在于,包括以下步骤:
a)预先将独立冗余磁盘阵列(RAID)中分条深度大小相近的逻辑单元(LUN)划分成至少一个以上的组;
b)磁盘重构过程开始,按RAID中分条深度最大的LUN申请一块缓存作为专有缓存,按组进行重构,重构进行到某一组时,按该组中分条深度最大的LUN申请一块缓存作为自由缓存,预留缓存的申请与自由缓存的相同。
2、根据权利要求1所述的方法,其特征在于,步骤a)所划分的每个组中所有LUN的分条深度大小之和相近。
3、根据权利要求1所述的方法,其特征在于,进一步包括:设定一个阈值,如果RAID中分条深度最大的LUN与分条深度最小的LUN的比值小于该阈值,则令步骤a)中的分组个数为1,否则,令步骤a)中的分组个数为3至5之间。
4、根据权利要求3所述的方法,其特征在于,所述阈值为2或3。
CNB031024629A 2003-01-24 2003-01-24 一种磁盘在线重构方法 Expired - Lifetime CN1302392C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB031024629A CN1302392C (zh) 2003-01-24 2003-01-24 一种磁盘在线重构方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB031024629A CN1302392C (zh) 2003-01-24 2003-01-24 一种磁盘在线重构方法

Publications (2)

Publication Number Publication Date
CN1519726A true CN1519726A (zh) 2004-08-11
CN1302392C CN1302392C (zh) 2007-02-28

Family

ID=34281735

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB031024629A Expired - Lifetime CN1302392C (zh) 2003-01-24 2003-01-24 一种磁盘在线重构方法

Country Status (1)

Country Link
CN (1) CN1302392C (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100388237C (zh) * 2004-10-20 2008-05-14 北京织女星网格技术有限公司 基于轻量计算的数据重组方法
CN101840313A (zh) * 2010-04-13 2010-09-22 杭州华三通信技术有限公司 一种lun镜像的处理方法和设备
CN101901273A (zh) * 2010-08-13 2010-12-01 优视科技有限公司 一种基于内存磁盘的高性能存储方法及其装置
CN101923501A (zh) * 2010-07-30 2010-12-22 华中科技大学 一种磁盘阵列多级容错方法
CN101980137A (zh) * 2010-10-19 2011-02-23 成都市华为赛门铁克科技有限公司 廉价磁盘冗余阵列重构方法、装置及系统
CN102096557A (zh) * 2010-12-31 2011-06-15 成都市华为赛门铁克科技有限公司 一种独立磁盘冗余阵列的扩容方法、装置及系统
CN102521058A (zh) * 2011-12-01 2012-06-27 北京威视数据系统有限公司 Raid组磁盘数据预迁移方法
CN102023810B (zh) * 2009-09-10 2012-08-29 成都市华为赛门铁克科技有限公司 一种写数据的方法、装置以及廉价冗余磁盘阵列

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5857112A (en) * 1992-09-09 1999-01-05 Hashemi; Ebrahim System for achieving enhanced performance and data availability in a unified redundant array of disk drives by using user defined partitioning and level of redundancy
WO1994029795A1 (en) * 1993-06-04 1994-12-22 Network Appliance Corporation A method for providing parity in a raid sub-system using a non-volatile memory
US6272591B2 (en) * 1998-10-19 2001-08-07 Intel Corporation Raid striping using multiple virtual channels

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100388237C (zh) * 2004-10-20 2008-05-14 北京织女星网格技术有限公司 基于轻量计算的数据重组方法
CN102023810B (zh) * 2009-09-10 2012-08-29 成都市华为赛门铁克科技有限公司 一种写数据的方法、装置以及廉价冗余磁盘阵列
CN101840313B (zh) * 2010-04-13 2011-11-16 杭州华三通信技术有限公司 一种lun镜像的处理方法和设备
CN101840313A (zh) * 2010-04-13 2010-09-22 杭州华三通信技术有限公司 一种lun镜像的处理方法和设备
CN101923501A (zh) * 2010-07-30 2010-12-22 华中科技大学 一种磁盘阵列多级容错方法
CN101901273A (zh) * 2010-08-13 2010-12-01 优视科技有限公司 一种基于内存磁盘的高性能存储方法及其装置
CN101901273B (zh) * 2010-08-13 2012-09-05 优视科技有限公司 一种基于内存磁盘的高性能存储方法及其装置
CN101980137A (zh) * 2010-10-19 2011-02-23 成都市华为赛门铁克科技有限公司 廉价磁盘冗余阵列重构方法、装置及系统
WO2012051931A1 (zh) * 2010-10-19 2012-04-26 成都市华为赛门铁克科技有限公司 廉价磁盘冗余阵列重构方法,装置及系统
CN101980137B (zh) * 2010-10-19 2012-05-30 成都市华为赛门铁克科技有限公司 廉价磁盘冗余阵列重构方法、装置及系统
US8843782B2 (en) 2010-10-19 2014-09-23 Huawei Technologies Co., Ltd. Method and apparatus for reconstructing redundant array of inexpensive disks, and system
CN102096557A (zh) * 2010-12-31 2011-06-15 成都市华为赛门铁克科技有限公司 一种独立磁盘冗余阵列的扩容方法、装置及系统
CN102096557B (zh) * 2010-12-31 2013-08-14 华为数字技术(成都)有限公司 一种独立磁盘冗余阵列的扩容方法、装置及系统
CN102521058A (zh) * 2011-12-01 2012-06-27 北京威视数据系统有限公司 Raid组磁盘数据预迁移方法

Also Published As

Publication number Publication date
CN1302392C (zh) 2007-02-28

Similar Documents

Publication Publication Date Title
US5581784A (en) Method for performing I/O's in a storage system to maintain the continuity of a plurality of video streams
US6360300B1 (en) System and method for storing compressed and uncompressed data on a hard disk drive
US6785836B2 (en) In-place data transformation for fault-tolerant disk storage systems
US7769967B2 (en) Efficient data storage system
US5592612A (en) Method and apparatus for supplying data streams
US6000009A (en) Method and apparatus for allocation of disk memory space for compressed data records
US20060206669A1 (en) Efficient data storage system
US20030145172A1 (en) Method and system for updating data in a compressed read cache
CN1302392C (zh) 一种磁盘在线重构方法
CN100337224C (zh) 一种本地数据迁移的方法
CN1619545A (zh) 数据处理方法和装置
CN1750164A (zh) 一种防止文件碎片产生的数字硬盘录像机文件管理方法
US6079028A (en) Fault tolerant architectures for continuous media servers
CN101034375A (zh) 计算机存储系统
Oyang et al. A multimedia storage system for on-demand playback
JP2002182953A (ja) 分散ファイル管理方法
US20190057121A1 (en) Predictable Allocation Latency in Fragmented Log Structured File Systems
US20040068630A1 (en) Method and system for providing an interleaved backup
CN1704910A (zh) 一种磁盘阵列结构中的写处理方法
Ozden et al. Disk striping in video server environments
CN101055509A (zh) 高效流媒体数据读写系统
CN1276360C (zh) 一种重构内存管理方法
Wang et al. Techniques to increase disk access locality in the minorca multimedia file system
CN1588299A (zh) 进行硬盘阵列数据迁移的方法及相关装置
US7631144B1 (en) Write latency efficient storage system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20211229

Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province

Patentee after: Super fusion Digital Technology Co.,Ltd.

Address before: 518057 HUAWEI building, road, Shenzhen science and Technology Park

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right
CX01 Expiry of patent term

Granted publication date: 20070228

CX01 Expiry of patent term