CN106681848A - 一种纠删码raid的数据一致性保障方法及系统 - Google Patents

一种纠删码raid的数据一致性保障方法及系统 Download PDF

Info

Publication number
CN106681848A
CN106681848A CN201611147298.4A CN201611147298A CN106681848A CN 106681848 A CN106681848 A CN 106681848A CN 201611147298 A CN201611147298 A CN 201611147298A CN 106681848 A CN106681848 A CN 106681848A
Authority
CN
China
Prior art keywords
data
new
new data
correcting
equipment
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
CN201611147298.4A
Other languages
English (en)
Other versions
CN106681848B (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201611147298.4A priority Critical patent/CN106681848B/zh
Publication of CN106681848A publication Critical patent/CN106681848A/zh
Application granted granted Critical
Publication of CN106681848B publication Critical patent/CN106681848B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提出一种纠删码RAID的数据一致性保障方法及系统,涉及计算机存储领域,该方法包括步骤1,当有新数据写入时,修改版本设备中各设备的数据映射表,并生成事务日志表,所述版本设备中各设备进行异步下刷操作,完成后,清除所述事务日志表,其中所述版本设备由新数据卷与旧数据卷构成;步骤2,将所述新数据及与其相对应的新校验信息经所述版本设备转发并写入新数据卷,当所述新数据与所述新校验信息都完整写入后,再触发所述步骤1,将所述新数据与所述新校验信息写入所述旧数据卷。本发明高效的保证纠删码RAID系统数据的一致性。

Description

一种纠删码RAID的数据一致性保障方法及系统
技术领域
本发明涉及计算机存储领域,特别涉及一种纠删码RAID的数据一致性保障方法及系统。
背景技术
RAID(独立冗余磁盘阵列)技术是一种提供增强冗余、容量和存储性能的存储方法,有着较强的可管理性、可靠性和可用性。通过冗余计算,RAID技术能够在满足可靠性要求的前提下降低系统的容量开销。RAID技术作为基础存储技术之一,在过去二十余年中有效地保障了用户数据的可靠性。多副本和纠删码技术是RAID系统常用的可靠性保障技术,多副本技术导致系统存储空间利用率过低,带来高存储成本。而纠删码技术相对于多副本技术,可在保证数据可用性和可靠性的前提下大幅提升存储空间利用率,因此已成为存储技术的发展趋势。
纠删码(Erasure Code,EC)是一种数据保护方法,它将数据分割成片段,把冗余数据块扩展、编码,并将其存储在不同的物理位置。基本原理为向数据中加入冗余信息,增加校验位,使得数据损坏后可以通过校验信息进行数据的恢复。使用数据盘n块、校验码盘m块组建RS-Code的RAID存储系统,系统可以容忍小于等于m块的磁盘同时损坏(坏磁盘数<=校验码盘数),并能够保证数据的完整性。与副本技术相比,纠删码技术极大地提高了磁盘阵列的存储效率,并且只引入了少量的额外能耗开销。
随着存储数据量的飞速增长,为减少数据冗余代价并保证数据的可用性和可靠性,纠删码技术成为了存储系统发展的热点。但纠删码存储系统的写性能表现不佳,尤其是对于小数据写的情况。纠删码系统的条带化读-修改-写策略会将小写操作转化为一系列的读写操作组合,导致频繁的磁头抖动,使得纠删码系统的小写性能极低。如图示1,为三个数据盘加两个校验盘组成的3+2纠删码系统(即RAID6)的数据写入过程。由于条带化RAID数据块间存在紧耦合问题,当用户写D1块时,RAID6将先读取D2和D3块的数据至内存,然后在内存中计算新校验P’和Q’,最后将新数据D1’、新校验P’和Q’写入磁盘,完成整个写入过程。可以看出,一个用户的写操作导致了多个磁盘的读写操作,使得RAID6的写性能低下。
根据纠删码系统的工作原理和特点,可知,纠删码的数据更新过程涉及到多个数据和校验设备,且包含一系列的异步读写操作,即纠删码的数据更新过程本身不是原子操作。在纠删码系统中,每次数据的更新都需要同时更新校验,以达到数据和校验一致的目的。这样才能保证在故障后,能通过校验和剩余数据将丢失的数据恢复出来。若在纠删码更新的过程中发生故障中断,那么数据和校验很可能不一致,这种数据更新时故障导致的数据不一致问题又被称为Write Hole问题。
Write Hole问题的经典场景为盘阵降级后发生写更新掉电。以RAID6为例,若在盘阵降级的情况下发生写更新掉电,将可能出现Write Hole问题。如图2所示,RAID6已写入新数据D1’而未写入新数据D2’和新校验P’、Q’。此时,由新数据、旧校验组成的RAID6条带数据已经不一致。
对于这样的一种场景,RAID6在重新恢复并开始接受用户请求后,将无法保证数据的正确性。如图3,用户发起对坏盘D3的数据读请求,此时RAID6将读取所有剩余的数据和校验信息来计算出D3数据,然而此时条带数据已经不一致,将会计算出错误的D3数据返回给用户。这个错误的D3数据,既不为旧版本D3,也不为新版本D3,而是旧数据和新校验计算出来的无意义的比特序列。这样,Write Hole问题导致纠删码系统丢失了正确性和可靠性。
数据一致性是纠删码存储系统的本质属性,保证了数据的可靠性和可用性。WriteHole导致纠删码系统丢失数据一致性,完全规避Write Hole问题成为了纠删码系统亟待改进的重大问题。
基于上述分析,本发明提出AWR(After Write Remapping)事务存储模型,通过保证纠删码RAID系统数据更新过程的原子性和持久性,来保证纠删码RAID数据的一致性。
发明内容
为解决以上技术问题,本发明提出一种纠删码RAID的数据一致性保障方法及系统。
本发明提出一种纠删码RAID的数据一致性保障方法,包括:
步骤1,当有新数据写入时,修改版本设备中各设备的数据映射表,并生成事务日志表,所述版本设备中各设备进行异步下刷操作,完成后,清除所述事务日志表,其中所述版本设备由新数据卷与旧数据卷构成;
步骤2,将所述新数据及与其相对应的新校验信息经所述版本设备转发并写入新数据卷,当所述新数据与所述新校验信息都完整写入后,再触发所述步骤1,将所述新数据与所述新校验信息写入所述旧数据卷。
写入所述新数据时,首先临时存储在所述新数据卷,所述新数据的最终数据存储于所述旧数据卷中。
所述步骤2包括:所述新数据与所述新校验信息经由所述版本设备持久化到所述新数据卷,并修改所述新数据卷中条带状态为提交完成状态。
所述新数据卷与所述旧数据卷各自组成一致性维护的条带结构。
本发明还提出一种纠删码RAID的数据一致性保障系统,包括:
重映射模块,用于当有新数据写入时,修改版本设备中各设备的数据映射表,并生成事务日志表,所述版本设备中各设备进行异步下刷操作,完成后,清除所述事务日志表,其中所述版本设备由新数据卷与旧数据卷构成;
纠删码模块,用于将所述新数据及与其相对应的新校验信息经所述版本设备转发并写入新数据卷,当所述新数据与所述新校验信息都完整写入后,再触发所述重映射模块,将所述新数据与所述新校验信息写入所述旧数据卷。
写入所述新数据时,首先临时存储在所述新数据卷,所述新数据的最终数据存储于所述旧数据卷中。
所述纠删码模块包括:所述新数据与所述新校验信息经由所述版本设备持久化到所述新数据卷,并修改所述新数据卷中条带状态为提交完成状态。
所述新数据卷与所述旧数据卷各自组成一致性维护的条带结构。
由以上方案可知,本发明的优点在于:
本发明提出了“写后重映射”存储模型(After Write Remapping,AWR)和事务实现方法,保证了纠删码数据的一致性。AWR模型为纠删码数据的更新过程提供原子性和持久性,采用数据异地更新和原子重映射机制保证了更新过程中数据的一致性。
附图说明
图1为RAID6写入过程图;
图2为Write Hole问题经典场景图;
图3为纠删码条带丢失一致性后的读错误图;
图4为版本设备结构图;
图5为remap日志事务及元数据异步下刷机制图;
图6为AWR模型纠删码结构图;
图7为条带状态位图及含义图;
图8为BRD、ARD新旧版本结构图;
图9为AWR模型数据更新流程图。
具体实施方式
下面给出本发明的具体实施方式,结合附图对本发明做出了详细描述,本发明包括高效remap机制和AWR事务模型两个部分。
(一)高效remap机制
分析MD-RAID6系统中的一致性问题原因可以得出结论,MD-RAID6在不能保证一致的新数据、校验信息都已下盘的情况下就覆盖了一致的旧数据、校验信息,导致条带处于新旧数据混合的中间阶段,丢失了数据的一致性。
针对这个问题,本发明设计了由新旧设备组成的版本设备并实现了版本设备间无数据拷贝的高效迁移操作。版本设备由新数据卷BRD(Before Remap Device)和旧数据卷ARD(After Remap Device)组建而成,版本设备结构如图示4所示,新数据的写入均落于BRD设备,BRD设备占用的物理空间很小,仅作为数据更新过程的临时存放位置,最终的数据均存储于ARD设备中,remap操作实现了数据从BRD设备至ARD设备的高效迁移,其核心为仅修改设备中地址的映射信息,从而达到数据迁移的目的,而不发生任何实际的数据拷贝过程,remap过程涉及到两个设备数据映射表的修改,单纯的设备间独立修改各自的元数据并非原子操作,为此,版本设备还为remap机制还添加了事务日志和异步元数据写入的优化工作,如图示5,在完成记录remap日志和修改缓存中映射表项后,即可认为remap成功,此后,数据卷BRD和旧数据卷ARD各自完成元数据的异步下刷工作,最后,再通知日志事务设备清除日志,完成整个remap过程,这样一来,日志事务保证了整个remap过程的原子性,即使过程中发生中断也能够根据日志信息将映射表回滚到一个正确的状态,同时,元数据的异步下刷机制使得remap过程开销仅为记录日志开销和内存映射表项的修改开销,进一步减少了remap操作开销。
(二)AWR事务结构及工作流程
RAID6中新数据直接覆盖旧数据的做法,最终将导致数据的一致性问题,针对此问题,AWR事务存储模型提出了三点原则:
1、数据和校验的更新采用非原位更新方式,新数据和校验信息固化于新的物理位置;
2、新的数据和校验信息均固化并一致后,需要替换旧的数据和校验信息;
3、新旧数据校验替换的过程需保证为原子操作,或者在发生故障时可以根据相关信息进行回滚,最终能够将数据校验恢复到一个一致的状态。
根据这些原则,本发明构建了AWR模型依赖的纠删码结构,如图示6所示,在这个结构中,由新数据卷BRD和旧数据卷ARD组成版本设备WR(Write and Remap),再由WR设备组成纠删码设备。
发生数据写时,新校验信息和新数据经WR设备转发而写入BRD设备,当新数据和校验信息都完整写入后,再触发版本设备的remap流程,最终将一致的数据及校验信息都存储于ARD设备,也就是说,BRD、ARD设备各自组成了一致性维护的条带结构,新旧状态中任意一个达到一致都能保证条带数据的一致性,如图示7所示。
基于AWR模型的纠删码结构,本发明设计了AWR存储模型的两阶段写提交协议来保证新旧数据替换时的数据一致性。
两阶段写的提交协议将纠删码的数据更新流程划分为了两个阶段,第一个阶段为write阶段,负责将新数据及新校验写入BRD设备;第二个阶段为remap阶段,负责将BRD中一致的数据remap至ARD设备,为了标志条带的数据状态,两阶段提交协议为每个纠删码条带引入了两个位的状态位图,位图在仅在内存中保存,无需固化,代表的含义如图示8所示。
详细的数据更新流程如图示9所示,即
write阶段:
(1)纠删码模块计算校验,下发数据和校验盘的写请求;
(2)新数据和新校验信息经由WR设备持久化于BRD设备;
(3)新数据和新校验信息写完成,修改新数据卷的条带状态为COMMITTED(提交完成状态);
remap阶段:
(4)纠删码模块对条带中的数据盘发送remap操作;
(5)数据盘remap完成后,发送对条带中校验盘的remap操作;
(6)校验盘remap操作完成,修改条带状态为NORMAL(正常状态)。

Claims (8)

1.一种纠删码RAID的数据一致性保障方法,其特征在于,包括:
步骤1,当有新数据写入时,修改版本设备中各设备的数据映射表,并生成事务日志表,所述版本设备中各设备进行异步下刷操作,完成后,清除所述事务日志表,其中所述版本设备由新数据卷与旧数据卷构成;
步骤2,将所述新数据及与其相对应的新校验信息经所述版本设备转发并写入新数据卷,当所述新数据与所述新校验信息都完整写入后,再触发所述步骤1,将所述新数据与所述新校验信息写入所述旧数据卷。
2.如权利要求1所述的纠删码RAID的数据一致性保障方法,其特征在于,写入所述新数据时,首先临时存储在所述新数据卷,所述新数据的最终数据存储于所述旧数据卷中。
3.如权利要求1所述的纠删码RAID的数据一致性保障方法,其特征在于,所述步骤2包括:所述新数据与所述新校验信息经由所述版本设备持久化到所述新数据卷,并修改所述新数据卷中条带状态为提交完成状态。
4.如权利要求1所述的纠删码RAID的数据一致性保障方法,其特征在于,所述新数据卷与所述旧数据卷各自组成一致性维护的条带结构。
5.一种纠删码RAID的数据一致性保障系统,其特征在于,包括:
重映射模块,用于当有新数据写入时,修改版本设备中各设备的数据映射表,并生成事务日志表,所述版本设备中各设备进行异步下刷操作,完成后,清除所述事务日志表,其中所述版本设备由新数据卷与旧数据卷构成;
纠删码模块,用于将所述新数据及与其相对应的新校验信息经所述版本设备转发并写入新数据卷,当所述新数据与所述新校验信息都完整写入后,再触发所述重映射模块,将所述新数据与所述新校验信息写入所述旧数据卷。
6.如权利要求5所述的纠删码RAID的数据一致性保障系统,其特征在于,写入所述新数据时,首先临时存储在所述新数据卷,所述新数据的最终数据存储于所述旧数据卷中。
7.如权利要求5所述的纠删码RAID的数据一致性保障系统,其特征在于,所述纠删码模块包括:所述新数据与所述新校验信息经由所述版本设备持久化到所述新数据卷,并修改所述新数据卷中条带状态为提交完成状态。
8.如权利要求5所述的纠删码RAID的数据一致性保障系统,其特征在于,所述新数据卷与所述旧数据卷各自组成一致性维护的条带结构。
CN201611147298.4A 2016-12-13 2016-12-13 一种纠删码raid的数据一致性保障方法及系统 Active CN106681848B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611147298.4A CN106681848B (zh) 2016-12-13 2016-12-13 一种纠删码raid的数据一致性保障方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611147298.4A CN106681848B (zh) 2016-12-13 2016-12-13 一种纠删码raid的数据一致性保障方法及系统

Publications (2)

Publication Number Publication Date
CN106681848A true CN106681848A (zh) 2017-05-17
CN106681848B CN106681848B (zh) 2019-10-18

Family

ID=58868318

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611147298.4A Active CN106681848B (zh) 2016-12-13 2016-12-13 一种纠删码raid的数据一致性保障方法及系统

Country Status (1)

Country Link
CN (1) CN106681848B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107479998A (zh) * 2017-07-19 2017-12-15 山东超越数控电子有限公司 一种存储介质高效容错方法
CN108958964A (zh) * 2018-06-27 2018-12-07 郑州云海信息技术有限公司 一种数据修改方法、装置、设备及可读存储介质
WO2019127212A1 (zh) * 2017-12-28 2019-07-04 华为技术有限公司 一种数据写入的方法及固态硬盘阵列
CN111104254A (zh) * 2019-11-29 2020-05-05 北京浪潮数据技术有限公司 存储系统数据刷写方法、装置、设备及可读存储介质
WO2021098526A1 (zh) * 2019-11-20 2021-05-27 华为技术有限公司 确定条带一致性的方法及装置
CN114064346A (zh) * 2021-11-02 2022-02-18 北京大道云行科技有限公司 一种纠删码数据一致性保障方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104503706A (zh) * 2014-12-23 2015-04-08 中国科学院计算技术研究所 一种基于磁盘阵列的数据存储及读取方法
US20160239384A1 (en) * 2014-09-02 2016-08-18 Netapp, Inc. Hierarchical wide spreading of distributed storage
CN106227617A (zh) * 2016-07-15 2016-12-14 乐视控股(北京)有限公司 自修复方法和基于纠删码算法的存储系统
US9838043B2 (en) * 2015-03-27 2017-12-05 Fujitsu Limited Storage system, information processor, and computer-readable recording medium having stored therein program for generating parity

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160239384A1 (en) * 2014-09-02 2016-08-18 Netapp, Inc. Hierarchical wide spreading of distributed storage
CN104503706A (zh) * 2014-12-23 2015-04-08 中国科学院计算技术研究所 一种基于磁盘阵列的数据存储及读取方法
US9838043B2 (en) * 2015-03-27 2017-12-05 Fujitsu Limited Storage system, information processor, and computer-readable recording medium having stored therein program for generating parity
CN106227617A (zh) * 2016-07-15 2016-12-14 乐视控股(北京)有限公司 自修复方法和基于纠删码算法的存储系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107479998A (zh) * 2017-07-19 2017-12-15 山东超越数控电子有限公司 一种存储介质高效容错方法
WO2019127212A1 (zh) * 2017-12-28 2019-07-04 华为技术有限公司 一种数据写入的方法及固态硬盘阵列
CN110462577A (zh) * 2017-12-28 2019-11-15 华为技术有限公司 一种数据写入的方法及固态硬盘阵列
US11243701B2 (en) 2017-12-28 2022-02-08 Huawei Technologies Co., Ltd. Data write method and solid-state drive array
CN108958964A (zh) * 2018-06-27 2018-12-07 郑州云海信息技术有限公司 一种数据修改方法、装置、设备及可读存储介质
WO2021098526A1 (zh) * 2019-11-20 2021-05-27 华为技术有限公司 确定条带一致性的方法及装置
CN111104254A (zh) * 2019-11-29 2020-05-05 北京浪潮数据技术有限公司 存储系统数据刷写方法、装置、设备及可读存储介质
CN114064346A (zh) * 2021-11-02 2022-02-18 北京大道云行科技有限公司 一种纠删码数据一致性保障方法及系统

Also Published As

Publication number Publication date
CN106681848B (zh) 2019-10-18

Similar Documents

Publication Publication Date Title
CN106681848B (zh) 一种纠删码raid的数据一致性保障方法及系统
CN106201338B (zh) 数据存储方法及装置
CN104503706B (zh) 一种基于磁盘阵列的数据存储及读取方法
CN109791520B (zh) 物理介质感知的空间耦合的日志记录和重放
US8543863B2 (en) Efficiency of hardware memory access using dynamically replicated memory
US8255742B2 (en) Dynamically replicated memory
CN101916173B (zh) 一种基于raid的数据读写方法及其系统
KR101678868B1 (ko) 플래시 주소 변환 장치 및 그 방법
CN104461391A (zh) 一种存储设备元数据管理处理方法及系统
JPWO2006123416A1 (ja) ディスク故障復旧方法及びディスクアレイ装置
CN108958656B (zh) 基于raid5固态硬盘阵列的动态条带系统设计方法
CN106255953A (zh) 持久性数据存储体中的前向参考记录的方法和系统
CN103207883A (zh) 用于元数据持久存储的方法
CN110413454B (zh) 基于存储阵列的数据重建方法、装置及存储介质
US11874741B2 (en) Data recovery method in storage medium, data recovery system, and related device
CN103229134A (zh) 存储设备及其控制方法
US11429498B2 (en) System and methods of efficiently resyncing failed components without bitmap in an erasure-coded distributed object with log-structured disk layout
US7000083B2 (en) Resynchronization of count key data with its corresponding meta data
CN105302665A (zh) 一种改进的写时拷贝快照方法及系统
US20150134875A1 (en) Maintaining at least one journal and/or at least one data structure by circuitry
TWI283349B (en) Data protection method
CN104461373B (zh) 一种raid数据处理方法及装置
CN106933707B (zh) 基于raid技术的数据存储设备数据恢复方法及系统
CN106371950A (zh) 一种实现raid级别转换的方法及装置
CN114064346B (zh) 一种纠删码数据一致性保障方法及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Jia Siyi

Inventor after: Zhang Qiang

Inventor after: Liu Zhenjun

Inventor after: Liu Jianliang

Inventor after: Fang Pei

Inventor after: Shi Haiyan

Inventor after: Xu Lu

Inventor before: Jia Siyi

Inventor before: Zhang Qiang

Inventor before: Liu Zhenjun

Inventor before: Liu Jianliang

Inventor before: Fang Pei

Inventor before: Xu Lu

GR01 Patent grant
GR01 Patent grant