CN102567214A - 一种用于raid5快速初始化位图页面管理的方法 - Google Patents
一种用于raid5快速初始化位图页面管理的方法 Download PDFInfo
- Publication number
- CN102567214A CN102567214A CN2011103925123A CN201110392512A CN102567214A CN 102567214 A CN102567214 A CN 102567214A CN 2011103925123 A CN2011103925123 A CN 2011103925123A CN 201110392512 A CN201110392512 A CN 201110392512A CN 102567214 A CN102567214 A CN 102567214A
- Authority
- CN
- China
- Prior art keywords
- page
- bitmap
- write
- disk
- band
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种用于RAID5快速初始化位图页面管理的方法,采用位图去标记已经已经写过或者同步过的区域,RAID-5处理一个条带写请求时,首先判断条带所对应的位图中的位是否为0,若为0则表示该条带不同步,采用重构写方式处理写请求,条带写完成后将对应位图中的位置1表示条带已同步,当所有条带都已同步时,将该RAID-5标记“已同步”状态。
Description
技术领域
本发明涉及计算机系统及存储领域, 具体地说是一种用于RAID5快速初始化位图页面管理的方法。
背景技术
对于具有冗余校验信息的RAID5系统, RAID5新创建时各成员盘数据并不能保证条带数据是一致性的. 数据的不一致性使得系统无法按照正常流程处理主机IO 请求, 所得到的校验数据可能是错误的,因此这些级别的RAID5创建时必须先进行一致性初始化工作。典型的初始化方式是格式化所有成员盘, 将所有成员盘数据写零即可保证RAID5分条数据符合偶校验。
但RAID5初始化任务必须遍历成员盘的所有数据, 这是一项非常耗时的工作, 并且随着磁盘的容量的增大,等待的时间就会更长。另外初始化完成之前, RAID5无法响应主机端IO请求, 否则已写入的数据可能被初始化操作覆盖, 或者产生数据错误,因此初始化过程中RAID5无法响应IO请求, 无法满足即插即用的需求。如何快速完成RAID5系统初始化工作, 并为主机端可用成为一个急需解决的问题。
RAID5有两种写方式:读改写和重构写。读改写一般用于小块写,重构写一般用于大块写。对于读改写来说,需要旧的校验数据的参与,所以,如果原来的条带数据不一致的话,读改写由于依赖原来的校验值,经过重新计算,会产生错误的结果,条带还是不一致,失去了冗余的作用。而如果进行重构写的话,不需要旧的校验值参与计算,所以,新的结果是一致的,即使原来的条带数据不一致,经过重构写也变得一致。如果条带的第一次写请求到达,就让它做重构写,第一次写之后,采用各自对应的写方式。也就是说不用刻意地去做初始化,创建之后即可以投入使用。本发明的关键就是如何去标记已经写过或者同步过的区域。
发明内容
本发明的目的是提供一种用于RAID5快速初始化位图页面管理的方法。
本发明的目的是按以下方式实现的,采用位图去标记已经已经写过或者同步过的区域,RAID-5处理一个条带写请求时,首先判断条带所对应的位图中的位是否为0,若为0则表示该条带不同步,采用重构写方式处理写请求,条带写完成后将对应位图中的位置1表示条带已同步,当所有条带都已同步时,将该RAID-5标记“已同步”状态,具体步骤如下:
(1) 磁盘数据布局
某一位图页中的所有位代表的条带都已经是1,即已经同步过了,如果再请求该页读入换出就是很大的浪费,考虑标识某一位图页代表所有的位对应的条带是否都已经同步过,所以再用一个位图,这个位图称为页位图,原来的位图称为常规位图,页位图的一位表示常规位图中的一页,常规位图的一页所有位都是1,说明该页表示所有的条带都已经同步过了,即把页位图对应的位置1,经过计算,即使磁盘容量按目前最大的2T来看,页位图只要一页就足够了,不占太多的内存,让页位图一直在内存中存在,在启动阶段,这一页面也读入内存,因为常规位图经常提起,所以,以后出现的位图就是代表常规位图;
(2) 替换策略
有基树A和基树B对页面进行管理,最开始初始化的时候,磁盘读取一些页面,这些页面中的一部分放在基树A中,一部分放在基树B中,这里把基树A作为活动区域,基树B作为非活动区域,所以,如果从基树A置刚换出的页面,这时写回磁盘的话,正好有请求要被访问这个页面,那么还得立刻从磁盘读取,造成比较大的损耗,所以,这里设计从基树A置刚换出的页面不直接写到磁盘,而是先写到基树B里,把基树B的一页写到磁盘,这样的话,这个刚换出的页面就可以在基树B里查找,而不用从磁盘再读取,先查找基树A的,如果没有,就找基树B,如果在基数B中有,就把这个页面换到A中,而A的一个页面换到B中,如果基树B中也没有,就从磁盘读取这个页面,把这个页面放在A中,然后从其它页面找出一个,如果是脏页面就写回磁盘,如果不是脏页面,直接释放即可;
(3)针对每个区域的页面换出,随着写的方式不同做调整,如果是顺序写,把呆在内存中最久的页面换出,成为FIFO机制;如果是随机写的话,则把最近最久未用的页面换出,称为LRU机制,区分的方法可以通过设置;
(4)另外还有一个周期性的内核线程,不断把一些符合特征的页面从活跃区域移动到非活跃区域;同时也进行一些页面标记清除工作,如果在需要的时候才去找一个页面,这样的效率太低,这个内核线程就是提前准备好了可以写回磁盘的页面。
本发明的有益效果是:是创建之后即可以投入使用,同时兼顾性能的考虑,分成活跃与非活跃的区域,对位图页面进行高效的管理。并能根据顺序写还是随机写采用不同的置换策略。创建之后即可以投入使用,是指不用经过初始化阶段漫长的饿等待过程,满足即插即用的需求。兼顾性能,是指不影响或者少影响读写性能,同时,也不能占用过多的内存。高效的管理,是指有效率地进行页面置换等操作。
附图说明
附图1磁盘数据分布图;
附图2置换示意图;
附图3写流程图。
具体实施方式
参照说明书附图对本发明的方法作以下详细地说明。
本发明是在linux内核中软RAID基础上进行的开发。采用位图去标记已经已经写过或者同步过的区域。RAID-5处理一个条带写请求时,首先判断条带所对应的位图中的位是否为0,若为0则表示该条带不同步,采用重构写方式处理写请求,条带写完成后将对应位图中的位置1表示条带已同步,进一步地,当所有条带都已同步时将该RAID-5标记“已同步”状态。
之前,已经有人做过位图中的一位对应一个条带的情况。但一位对应一个条带在现实使用中会有很多限制。按照每个条带4KB就对应1个位去划分的话,对于2TB的磁盘,位图大约需要62MB,如果把位图全部放在内存中,会消耗很大的内存,特别是有多个RAID5的系统。因此只放在内存中一部分位图页面,等用到的时候再去磁盘请求页面,并把原来在内存中的页面换出,这样是减少了内存的消耗,但替换页面的效率和方法会给性能带来直接的影响。因此,有必要找到一个有效率,以及合理的替换机制。
1)磁盘数据布局
另外,还有个问题需要考虑,如果,某一位图页中的所有位代表的条带都已经是1,即已经同步过了,如果再请求该页读入换出就是很大的浪费,考虑可以标识某一位图页代表所有的位对应的条带是否都已经同步过,所以再用一个位图,这个位图称为页位图,原来的位图称为常规位图,页位图的一位表示常规位图中的一页,常规位图的一页所有位都是1,说明该页表示所有的条带都已经同步过了,即把页位图对应的位置1,经过计算,即使磁盘容量按目前最大的2T来看,页位图只要一页就足够了,不占太多的内存,可以让页位图一直在内存中存在。在启动阶段,这一页面也读入内存。因为常规位图经常提起,所以,以后出现的位图就是代表常规位图。如图1;
2)替换策略
如图2所示,有基树A和基树B对页面进行管理,最开始初始化的时候,磁盘读取一些页面,这些页面中的一部分放在基树A中,一部分放在基树B中。这里把基树A作为活动区域,基树B作为非活动区域所以,如果从基树A置刚换出的页面,如果这时写回磁盘的话,正好有请求要被访问这个页面,那么还得立刻从磁盘读取,造成比较大的损耗,所以,这里设计从基树A置刚换出的页面不直接写到磁盘,而是先写到基树B里,把基树B的一页写到磁盘,这样的话,这个刚换出的页面就可以在基树B里查找,而不用从磁盘再读取。先查找基树A的,如果没有,就找基树B,如果在基数B中有,就把这个页面换到A中,而A的一个页面换到B中。如果基树B中也没有,就从磁盘读取这个页面,把这个页面放在A中,然后从其它页面找出一个,如果是脏页面就写回磁盘,如果不是脏页面,直接释放就可以;
3)针对每个区域的页面换出原则,随着写的方式不同可以做调整,如果是顺序写,把呆在内存中最久的页面换出(FIFO机制);如果是随机写的话,则把最近最久未用的页面换出(LRU机制)。区分的方法可以通过设置;
4)另外还有一个周期性的内核线程,不断把一些符合特征的页面从活跃区域移动到非活跃区域;同时也进行一些页面标记清除工作。如果在需要的时候才去找一个页面,这样的效率太低,这个内核线程就是提前准备好了可以写回磁盘的页面,包含这个替换策略的一次写流程如图3所示。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (1)
1.一种用于RAID5快速初始化位图页面管理的方法, 其特征在于采用位图去标记已经已经写过或者同步过的区域,RAID-5处理一个条带写请求时,首先判断条带所对应的位图中的位是否为0,若为0则表示该条带不同步,采用重构写方式处理写请求,条带写完成后将对应位图中的位置1表示条带已同步,当所有条带都已同步时,将该RAID-5标记“已同步”状态,具体步骤如下:
(1)磁盘数据布局:
某一位图页中的所有位代表的条带都已经是1,即已经同步过了,如果再请求该页读入换出就是很大的浪费,考虑标识某一位图页代表所有的位对应的条带是否都已经同步过,所以再用一个位图,这个位图称为页位图,原来的位图称为常规位图,页位图的一位表示常规位图中的一页,常规位图的一页所有位都是1,说明该页表示所有的条带都已经同步过了,即把页位图对应的位置1,经过计算,即使磁盘容量按目前最大的2T来看,页位图只要一页就足够了,不占太多的内存,让页位图一直在内存中存在,在启动阶段,这一页面也读入内存,因为常规位图经常提起,所以,以后出现的位图就是代表常规位图;
(2)替换策略:
有基树A和基树B对页面进行管理,最开始初始化的时候,磁盘读取一些页面,这些页面中的一部分放在基树A中,一部分放在基树B中,这里把基树A作为活动区域,基树B作为非活动区域,所以,如果从基树A置刚换出的页面,这时写回磁盘的话,正好有请求要被访问这个页面,那么还得立刻从磁盘读取,造成比较大的损耗,所以,这里设计从基树A置刚换出的页面不直接写到磁盘,而是先写到基树B里,把基树B的一页写到磁盘,这样的话,这个刚换出的页面就可以在基树B里查找,而不用从磁盘再读取,先查找基树A的,如果没有,就找基树B,如果在基数B中有,就把这个页面换到A中,而A的一个页面换到B中,如果基树B中也没有,就从磁盘读取这个页面,把这个页面放在A中,然后从其它页面找出一个,如果是脏页面就写回磁盘,如果不是脏页面,直接释放即可;
(3)针对每个区域的页面换出,随着写的方式不同做调整,如果是顺序写,把呆在内存中最久的页面换出,成为FIFO机制;如果是随机写的话,则把最近最久未用的页面换出,称为LRU机制,区分的方法可以通过设置;
(4)另外还有一个周期性的内核线程,不断把一些符合特征的页面从活跃区域移动到非活跃区域;同时也进行一些页面标记清除工作,如果在需要的时候才去找一个页面,这样的效率太低,这个内核线程就是提前准备好了可以写回磁盘的页面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103925123A CN102567214A (zh) | 2011-12-01 | 2011-12-01 | 一种用于raid5快速初始化位图页面管理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2011103925123A CN102567214A (zh) | 2011-12-01 | 2011-12-01 | 一种用于raid5快速初始化位图页面管理的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102567214A true CN102567214A (zh) | 2012-07-11 |
Family
ID=46412679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011103925123A Pending CN102567214A (zh) | 2011-12-01 | 2011-12-01 | 一种用于raid5快速初始化位图页面管理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102567214A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968381A (zh) * | 2012-11-19 | 2013-03-13 | 浪潮电子信息产业股份有限公司 | 一种利用固态硬盘提高快照性能的方法 |
CN104793897A (zh) * | 2015-02-04 | 2015-07-22 | 北京神州云科数据技术有限公司 | 一种bitmap的存储方法 |
CN107562388A (zh) * | 2017-10-11 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种raid初始化时的数据读取方法、装置及介质 |
CN107797770A (zh) * | 2017-11-07 | 2018-03-13 | 深圳神州数码云科数据技术有限公司 | 一种磁盘状态信息的同步方法及装置 |
CN109144430A (zh) * | 2018-09-29 | 2019-01-04 | 福建易视科技有限公司 | Raid5快速同步方法 |
CN109558070A (zh) * | 2017-09-27 | 2019-04-02 | 北京忆恒创源科技有限公司 | 可扩展存储系统架构 |
CN113360312A (zh) * | 2021-06-24 | 2021-09-07 | 苏州浪潮智能科技有限公司 | 一种硬盘故障处理方法、装置、设备及存储介质 |
CN114995771A (zh) * | 2022-08-02 | 2022-09-02 | 苏州浪潮智能科技有限公司 | 独立磁盘冗余阵列格式化调度方法、装置、设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040215877A1 (en) * | 2003-04-28 | 2004-10-28 | Paresh Chatterjee | Methods and structure for rapid background initialization of a RAID logical unit |
-
2011
- 2011-12-01 CN CN2011103925123A patent/CN102567214A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040215877A1 (en) * | 2003-04-28 | 2004-10-28 | Paresh Chatterjee | Methods and structure for rapid background initialization of a RAID logical unit |
Non-Patent Citations (2)
Title |
---|
宋戈: "一种改进的RAID后台初始化技术", 《计算机与数字工程》, vol. 38, no. 3, 18 May 2010 (2010-05-18), pages 3 * |
谭志虎 等: "RAID一致性初始化方法研究", 《小型微型计算机系统》, vol. 29, no. 7, 11 September 2008 (2008-09-11) * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102968381A (zh) * | 2012-11-19 | 2013-03-13 | 浪潮电子信息产业股份有限公司 | 一种利用固态硬盘提高快照性能的方法 |
CN104793897A (zh) * | 2015-02-04 | 2015-07-22 | 北京神州云科数据技术有限公司 | 一种bitmap的存储方法 |
CN109558070A (zh) * | 2017-09-27 | 2019-04-02 | 北京忆恒创源科技有限公司 | 可扩展存储系统架构 |
CN109558070B (zh) * | 2017-09-27 | 2023-09-15 | 北京忆恒创源科技股份有限公司 | 可扩展存储系统架构 |
CN107562388A (zh) * | 2017-10-11 | 2018-01-09 | 郑州云海信息技术有限公司 | 一种raid初始化时的数据读取方法、装置及介质 |
CN107797770A (zh) * | 2017-11-07 | 2018-03-13 | 深圳神州数码云科数据技术有限公司 | 一种磁盘状态信息的同步方法及装置 |
CN107797770B (zh) * | 2017-11-07 | 2020-08-21 | 深圳神州数码云科数据技术有限公司 | 一种磁盘状态信息的同步方法及装置 |
CN109144430A (zh) * | 2018-09-29 | 2019-01-04 | 福建易视科技有限公司 | Raid5快速同步方法 |
CN113360312A (zh) * | 2021-06-24 | 2021-09-07 | 苏州浪潮智能科技有限公司 | 一种硬盘故障处理方法、装置、设备及存储介质 |
CN114995771A (zh) * | 2022-08-02 | 2022-09-02 | 苏州浪潮智能科技有限公司 | 独立磁盘冗余阵列格式化调度方法、装置、设备及介质 |
CN114995771B (zh) * | 2022-08-02 | 2022-12-13 | 苏州浪潮智能科技有限公司 | 独立磁盘冗余阵列格式化调度方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102567214A (zh) | 一种用于raid5快速初始化位图页面管理的方法 | |
US10445231B2 (en) | Method and system for storage device metadata management and processing | |
TWI489276B (zh) | 於第二階記憶體階層中記憶體側快取的動態部份斷電之系統與方法 | |
TWI635392B (zh) | Information processing device, storage device and information processing system | |
US9292228B2 (en) | Selective raid protection for cache memory | |
CN101661414B (zh) | 计算机系统及其备份方法 | |
US11513891B2 (en) | Systems and methods for parity-based failure protection for storage devices | |
TWI540436B (zh) | 冗餘緩存數據的彈性緩存 | |
TWI385667B (zh) | 用於快閃記憶體的資料管理方法、儲存系統與控制器 | |
US20100235568A1 (en) | Storage device using non-volatile memory | |
US20100174870A1 (en) | System and method to preserve and recover unwritten data present in data cache of a disk subsystem across power outages | |
CN104216837A (zh) | 一种内存系统、内存访问请求的处理方法和计算机系统 | |
CN102799533B (zh) | 一种磁盘损坏扇区屏蔽方法及装置 | |
US11662929B2 (en) | Systems, methods, and computer readable media providing arbitrary sizing of data extents | |
US10579540B2 (en) | Raid data migration through stripe swapping | |
CN105630701B (zh) | 数据存储装置及使用不可用页表或不可用块表的读写方法 | |
CN105608016B (zh) | Dram与mram结合的固态硬盘及使用mram的存储卡 | |
CN103729149A (zh) | 一种存储数据的方法 | |
CN104166601A (zh) | 一种存储数据的备份方法和装置 | |
CN103377090A (zh) | 多处理器系统中共享不同数据集的多个编目的方法和系统 | |
CN105786721A (zh) | 一种内存地址映射管理方法及处理器 | |
US9323617B2 (en) | Remap raid to maintain raid level | |
CN102609224A (zh) | 一种独立冗余磁盘阵列系统及其初始化方法 | |
CN101408833A (zh) | 一种省略raid1设备的初始化同步过程的方法 | |
CN111338846B (zh) | 一种基于多核恢复l2p表的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20120711 |