CN103186438A - 一种提高磁盘阵列数据重构效率的方法 - Google Patents
一种提高磁盘阵列数据重构效率的方法 Download PDFInfo
- Publication number
- CN103186438A CN103186438A CN2013101122694A CN201310112269A CN103186438A CN 103186438 A CN103186438 A CN 103186438A CN 2013101122694 A CN2013101122694 A CN 2013101122694A CN 201310112269 A CN201310112269 A CN 201310112269A CN 103186438 A CN103186438 A CN 103186438A
- Authority
- CN
- China
- Prior art keywords
- data
- disk
- thread
- buffer queue
- read
- 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
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
本发明提供一种提高磁盘阵列数据重构效率的方法,是把重构过程对同一条带的处理分成两个线程进行,一个线程只进行读盘操作,另一个线程进行写盘操作对缓存队列的数据块数量进行了限制,但数量大于条带缓存的数量,从而可以让写数据异步进行,并对读盘操作不造成影响。读取原数据盘的数据,校验得到数据加入到该缓存队列;另一个写盘的线程则从该缓存队列取得数据。对于每次写数据的位置要进行标示记录,可以更新在超级块信息里,防止断电重启后从头开始进行重构。
Description
技术领域
本发明涉及计算机***及存储技术领域,具体地说是一种提高磁盘阵列数据重构效率的方法。
背景技术
目前内核中的软RAID对数据于重构是按照条带进行,读取所有数据盘经过校验再把得到的数据写到添加的热备盘上;这个过程必须包含读和写操作,分两步完成,读写操作要相互等待,属于串行操作,降低了效率(如图1)。
对于具有冗余校验信息的RAID5***, RAID5新创建时各成员盘数据并不能保证条带数据是一致性的. 数据的不一致性使得***无法按照正常流程处理主机IO 请求, 所得到的校验数据可能是错误的,因此这些级别的RAID5创建时必须先进行一致性初始化工作。RAID5是支持一块盘失效的情况,当一块盘失效,出现降级的情况,加入热备盘进行恢复,也相当于要进行一致性校验,任务必须遍历成员盘的所有数据, 这是一项非常耗时的工作, 并且随着磁盘的容量的增大,这个过程需要的时间就会更长。
在这个过程中,如果再出现另一块盘失效的话,那么由于RAID5的冗余机制,无法再进行恢复了,整个阵列就会失效。因此这个过程时间越长的话,再次有盘失效的概率就越大。因此有必要找到一种方法加快对失效盘的数据重构。
发明内容
本发明的目的是提供一种提高磁盘阵列数据重构效率的方法。
本发明的目的是按以下方式实现的,把传统的重构过程对同一条带的读和写处理线程分成A、B两个线程进行,只让条带处理线程A进行读取操作,读取阵列中除热备盘以外的数据并校验,此操作完成后立即释放占有的条带缓存;而另一个写盘操作由一个线程B单独进行;读和写的速度相互协调匹配,这样就把原来串行的操作改成并行的操作,从而提高重构的效率,具体步骤如下:
线程A读取阵列中除热备盘以外的数据,采用队列先进先出原则校验得到重构数据块加入到缓存队列中,为了控制内存的占用情况,***对缓存队列的数据块数量进行了限制,但数量应大于条带缓存的数量,从而让写数据操作异步进行;
线程B不断从缓存队列按顺序取得数据,队列的先进先出原则使得先校验出来的数据先写入磁盘,对于每次写数据的热备盘的位置,要进行标示记录更新在超级块信息里,防止断电重启后从头开始进行重构,重新启动从这个标示记录开始重构即可;
当线程A发现缓存队列占满时就等待,当写盘线程B发现缓存队列为空的时候也要等待,其中,读取校验出来的数据,很快被写盘线程B写到磁盘,读写速度达到一个均衡,缓存队列也占不满,由于写盘操作的等待不会影响效率,从而整体效率得到提升;
如果写盘速度太慢,读盘速度大于写盘速度,但读盘的数量主要受制于条带缓存的数量,***设置缓存队列数量大于条带缓存,一个数据块只相当于一个盘对应的数据块,相当于是数倍甚至几十倍于条带缓存,所以只要对缓存队列限制得当,不会影响读盘线程A的效率,反而能够明显提升整个数据重构流程的效率。
本发明的有益效果是:是把重构过程对同一条带的处理分成两个线程进行,一个线程只进行读盘操作,另一个线程进行写盘操作对缓存队列的数据块数量进行了限制,但数量大于条带缓存的数量,从而可以让写数据异步进行,并对读盘操作不造成影响。读取原数据盘的数据,校验得到数据加入到该缓存队列;另一个写盘的线程则从该缓存队列取得数据。对于每次写数据的位置要进行标示记录,可以更新在超级块信息里,防止断电重启后从头开始进行重构。
附图说明
图1现有技术的数据重构处理示意图;
图2改进后数据重构处理示意图;
图3 改进后读盘操作线程A流程;
图4 改进后读盘操作线程B流程图。
具体实施方式
参照说明书附图对本发明的方法作以下详细地说明。
目前内核中的软RAID对于重构是按照条带进行,读取所有数据盘经过校验再把得到的数据写到添加的热备盘上;这个过程必须包含读和写操作,分两步完成,读写操作要相互等待,属于串行操作,降低了效率(如图1)。本发明就是把读和写分开进行,只让条带处理线程A进行读取操作,读取阵列中除热备盘以外的数据并校验,此操作完成后立即释放占有的条带缓存;而另一个写盘操作由一个线程B单独进行;读和写的速度可以相互协调匹配(如图2 )。这样就把原来串行的操作改成并行的操作,从而提高重构的效率。
线程A的处理流程如图3,线程B的流程如图4。
线程A读取阵列中除热备盘以外的数据,校验得到重构数据块加入到缓存队列(先进先出原则)中,为了控制内存的占用情况,本发明对缓存队列的数据块数量(每个数据块4K )进行了限制,但数量应大于条带缓存的数量,从而可以让写数据操作异步进行。另一个线程B不断从缓存队列按顺序取得数据,队列的先进先出原则使得先校验出来的数据先写入磁盘,对于每次写数据的热备盘的位置要进行标示记录,可以更新在超级块信息里,防止断电重启后从头开始进行重构,重新启动从这个标示记录开始重构即可。
当线程A发现缓存队列占满时就等待,当写盘线程B发现缓存队列为空的时候也要等待。本发明的一种情况是读取校验出来的数据,很快被写盘线程B写到磁盘,读写速度达到一个均衡,缓存队列也占不满,从而相对目前的方法有很大的效率提升(写盘操作的等待不会影响效率);本发明的另一种情况可能是写盘速度太慢,读盘速度大于写盘速度,但读盘的数量主要受制于条带缓存的数量,本发明设置缓存队列数量大于条带缓存,一个数据块只相当于一个盘对应的数据块,可以是数倍甚至几十倍于条带缓存(具体要考虑到内存的大小),所以只要对缓存队列限制得当,不会影响读盘线程A的效率,反而能够明显提升整个数据重构流程的效率。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (1)
1.一种提高磁盘阵列数据重构效率的方法, 其特征在于,把传统的重构过程对同一条带的读和写处理线程分成A、B两个线程进行,只让条带处理线程A进行读取操作,读取阵列中除热备盘以外的数据并校验,此操作完成后立即释放占有的条带缓存;而另一个写盘操作由一个线程B单独进行;读和写的速度相互协调匹配,这样就把原来串行的操作改成并行的操作,从而提高重构的效率,具体步骤如下:
线程A读取阵列中除热备盘以外的数据,采用队列先进先出原则校验得到重构数据块加入到缓存队列中,为了控制内存的占用情况,***对缓存队列的数据块数量进行了限制,但数量应大于条带缓存的数量,从而让写数据操作异步进行;
线程B不断从缓存队列按顺序取得数据,队列的先进先出原则使得先校验出来的数据先写入磁盘,对于每次写数据的热备盘的位置,要进行标示记录更新在超级块信息里,防止断电重启后从头开始进行重构,重新启动从这个标示记录开始重构即可;
当线程A发现缓存队列占满时就等待,当写盘线程B发现缓存队列为空的时候也要等待,其中,读取校验出来的数据,很快被写盘线程B写到磁盘,读写速度达到一个均衡,缓存队列也占不满,由于写盘操作的等待不会影响效率,从而整体效率得到提升;
如果写盘速度太慢,读盘速度大于写盘速度,但读盘的数量主要受制于条带缓存的数量,***设置缓存队列数量大于条带缓存,一个数据块只相当于一个盘对应的数据块,相当于是数倍甚至几十倍于条带缓存,所以只要对缓存队列限制得当,不会影响读盘线程A的效率,反而能够明显提升整个数据重构流程的效率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101122694A CN103186438A (zh) | 2013-04-02 | 2013-04-02 | 一种提高磁盘阵列数据重构效率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2013101122694A CN103186438A (zh) | 2013-04-02 | 2013-04-02 | 一种提高磁盘阵列数据重构效率的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103186438A true CN103186438A (zh) | 2013-07-03 |
Family
ID=48677616
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2013101122694A Pending CN103186438A (zh) | 2013-04-02 | 2013-04-02 | 一种提高磁盘阵列数据重构效率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103186438A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298609A (zh) * | 2014-08-14 | 2015-01-21 | 浪潮(北京)电子信息产业有限公司 | 数据拷贝方法和装置 |
CN106484324A (zh) * | 2016-09-13 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种raid重建的方法、***及raid |
CN109783034A (zh) * | 2019-02-12 | 2019-05-21 | 记忆科技(深圳)有限公司 | 一种提升磁盘阵列处理效率的方法及其*** |
CN109992212A (zh) * | 2019-04-10 | 2019-07-09 | 苏州浪潮智能科技有限公司 | 一种数据写入方法和一种数据读取方法 |
CN110134340A (zh) * | 2019-05-23 | 2019-08-16 | 苏州浪潮智能科技有限公司 | 一种元数据更新的方法、装置、设备以及存储介质 |
CN110704248A (zh) * | 2019-09-04 | 2020-01-17 | 苏州浪潮智能科技有限公司 | 一种可调速率的磁盘阵列重构方法、装置及电子设备 |
WO2020155930A1 (zh) * | 2019-02-01 | 2020-08-06 | 杭州海康威视数字技术股份有限公司 | 磁盘阵列空间划分方法、装置、电子设备及存储介质 |
CN112667159A (zh) * | 2020-12-25 | 2021-04-16 | 深圳创新科技术有限公司 | 一种基于纠删码的数据并行重构方法及*** |
CN113391947A (zh) * | 2021-06-22 | 2021-09-14 | 深圳忆联信息***有限公司 | Ssd raid条带掉电快速恢复方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5671385A (en) * | 1993-04-29 | 1997-09-23 | Southwestern Bell Technology Resources, Inc. | Memory subsystem with disk meshing, controller meshing, and efficient cache buffer lookup |
CN1390323A (zh) * | 1999-09-01 | 2003-01-08 | 英特尔公司 | 在多线程并行处理器结构中使用的寄存器组 |
CN101615146A (zh) * | 2009-07-08 | 2009-12-30 | 中国科学院计算技术研究所 | 磁盘阵列在线重构***及方法 |
US8132044B1 (en) * | 2010-02-05 | 2012-03-06 | Symantec Corporation | Concurrent and incremental repair of a failed component in an object based storage system for high availability |
CN102981936A (zh) * | 2012-11-15 | 2013-03-20 | 浪潮电子信息产业股份有限公司 | 一种磁盘阵列数据重构的方法 |
-
2013
- 2013-04-02 CN CN2013101122694A patent/CN103186438A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5671385A (en) * | 1993-04-29 | 1997-09-23 | Southwestern Bell Technology Resources, Inc. | Memory subsystem with disk meshing, controller meshing, and efficient cache buffer lookup |
CN1390323A (zh) * | 1999-09-01 | 2003-01-08 | 英特尔公司 | 在多线程并行处理器结构中使用的寄存器组 |
CN101615146A (zh) * | 2009-07-08 | 2009-12-30 | 中国科学院计算技术研究所 | 磁盘阵列在线重构***及方法 |
US8132044B1 (en) * | 2010-02-05 | 2012-03-06 | Symantec Corporation | Concurrent and incremental repair of a failed component in an object based storage system for high availability |
CN102981936A (zh) * | 2012-11-15 | 2013-03-20 | 浪潮电子信息产业股份有限公司 | 一种磁盘阵列数据重构的方法 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104298609A (zh) * | 2014-08-14 | 2015-01-21 | 浪潮(北京)电子信息产业有限公司 | 数据拷贝方法和装置 |
CN104298609B (zh) * | 2014-08-14 | 2017-11-10 | 浪潮(北京)电子信息产业有限公司 | 数据拷贝方法和装置 |
CN106484324A (zh) * | 2016-09-13 | 2017-03-08 | 郑州云海信息技术有限公司 | 一种raid重建的方法、***及raid |
WO2020155930A1 (zh) * | 2019-02-01 | 2020-08-06 | 杭州海康威视数字技术股份有限公司 | 磁盘阵列空间划分方法、装置、电子设备及存储介质 |
CN109783034A (zh) * | 2019-02-12 | 2019-05-21 | 记忆科技(深圳)有限公司 | 一种提升磁盘阵列处理效率的方法及其*** |
CN109783034B (zh) * | 2019-02-12 | 2022-03-25 | 记忆科技(深圳)有限公司 | 一种提升磁盘阵列处理效率的方法及其*** |
CN109992212A (zh) * | 2019-04-10 | 2019-07-09 | 苏州浪潮智能科技有限公司 | 一种数据写入方法和一种数据读取方法 |
CN110134340A (zh) * | 2019-05-23 | 2019-08-16 | 苏州浪潮智能科技有限公司 | 一种元数据更新的方法、装置、设备以及存储介质 |
CN110704248A (zh) * | 2019-09-04 | 2020-01-17 | 苏州浪潮智能科技有限公司 | 一种可调速率的磁盘阵列重构方法、装置及电子设备 |
CN112667159A (zh) * | 2020-12-25 | 2021-04-16 | 深圳创新科技术有限公司 | 一种基于纠删码的数据并行重构方法及*** |
CN113391947A (zh) * | 2021-06-22 | 2021-09-14 | 深圳忆联信息***有限公司 | Ssd raid条带掉电快速恢复方法、装置、计算机设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103186438A (zh) | 一种提高磁盘阵列数据重构效率的方法 | |
US9923562B1 (en) | Data storage device state detection on power loss | |
US9672245B2 (en) | Memory storage apparatus, method of supporting transaction function for database, and memory system | |
CN107832237B (zh) | 一种快速重建未映射表的方法及固态硬盘 | |
US20140143476A1 (en) | Usage of cache and write transaction information in a storage device | |
US9639287B1 (en) | Write command reporting | |
US20150058534A1 (en) | Managing method for cache memory of solid state drive | |
CN111290704A (zh) | 用于控制储存在存储***中的数据的装置和方法 | |
CN101329641A (zh) | 一种磁盘阵列的数据重建方法 | |
Kim et al. | Reducing excessive journaling overhead with small-sized NVRAM for mobile devices | |
US9720770B2 (en) | Method for calculating raids parity code on interleaving and out of order data streams, and a system using the same | |
US9785438B1 (en) | Media cache cleaning based on workload | |
CN102981783A (zh) | 一种基于Nand Flash的Cache加速方法 | |
US20160085445A1 (en) | Method operating raid system and data storage systems using write command log | |
CN102023902B (zh) | 一种磁盘阵列重建方法 | |
Kadekodi et al. | {Caveat-Scriptor}: Write Anywhere Shingled Disks | |
KR101374065B1 (ko) | 칩 레벨 평행 플래시 메모리를 위한 정보 분별 방법 및 장치 | |
US20140237172A1 (en) | Imparting durability to a transactional memory system | |
CN102981936A (zh) | 一种磁盘阵列数据重构的方法 | |
US20170017405A1 (en) | Systems and methods for improving flash-oriented file system garbage collection | |
CN105677508A (zh) | 一种云存储中纠删码数据的修改方法及*** | |
US10339053B2 (en) | Variable cache flushing | |
US9772782B2 (en) | Non-volatile complement data cache | |
CN106469119B (zh) | 一种基于nvdimm的数据写缓存方法及其装置 | |
CN115756312A (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 | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20130703 |