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

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

Info

Publication number
CN106681848B
CN106681848B CN201611147298.4A CN201611147298A CN106681848B CN 106681848 B CN106681848 B CN 106681848B CN 201611147298 A CN201611147298 A CN 201611147298A CN 106681848 B CN106681848 B CN 106681848B
Authority
CN
China
Prior art keywords
data
new
new data
equipment
correcting
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
CN201611147298.4A
Other languages
English (en)
Other versions
CN106681848A (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 CN106681848A (zh) 2017-05-17
CN106681848B true 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)

Families Citing this family (6)

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

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9823969B2 (en) * 2014-09-02 2017-11-21 Netapp, Inc. Hierarchical wide spreading of distributed storage
CN104503706B (zh) * 2014-12-23 2017-10-10 中国科学院计算技术研究所 一种基于磁盘阵列的数据存储及读取方法
JP2016184372A (ja) * 2015-03-27 2016-10-20 富士通株式会社 ストレージシステム,情報処理装置,パリティ生成プログラム及びパリティ生成方法
CN106227617A (zh) * 2016-07-15 2016-12-14 乐视控股(北京)有限公司 自修复方法和基于纠删码算法的存储系统

Also Published As

Publication number Publication date
CN106681848A (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
CN106681848B (zh) 一种纠删码raid的数据一致性保障方法及系统
CN104503706B (zh) 一种基于磁盘阵列的数据存储及读取方法
TWI645404B (zh) 資料儲存裝置以及非揮發式記憶體操作方法
CN101923441B (zh) 混合磁盘冗余阵列的写请求处理方法、控制器和存储系统
DE102017124079A1 (de) Speichervorrichtung zum Verarbeiten von beschädigten Metadaten und Verfahren zum Betreiben derselben
KR101678868B1 (ko) 플래시 주소 변환 장치 및 그 방법
US20150193473A1 (en) Database Storage System based on Optical Disk and Method Using the System
CN103577121A (zh) 一种基于nand flash的高可靠线性文件存取方法
CN103778030B (zh) 日志子系统写入方法、错误追踪方法及处理器
CN103488432B (zh) 一种混合磁盘阵列及其延迟写入校验方法和数据恢复方法
US20230143435A1 (en) Data recovery method in storage medium, data recovery system, and related device
CN104142872A (zh) 一种raid磁盘阵列的快速重建方法
CN110413454B (zh) 基于存储阵列的数据重建方法、装置及存储介质
US11429498B2 (en) System and methods of efficiently resyncing failed components without bitmap in an erasure-coded distributed object with log-structured disk layout
US9292213B2 (en) Maintaining at least one journal and/or at least one data structure by circuitry
CN101556802A (zh) 一种raid阵列转换的方法及装置
TWI737189B (zh) 易於從固態儲存裝置之故障中還原的方法、電腦系統,及固態儲存裝置
CN104166627B (zh) 一种基于单片机的nand‑flash写操作方法
CN105095352B (zh) 应用于分布式系统的数据处理方法及装置
CN104035886A (zh) 磁盘重映射方法、装置及电子设备
TW201329701A (zh) 具有自動重映射功能的磁碟陣列及其自動重映射方法
CN103761156B (zh) 一种针对文件系统的在线修复方法
CN114064346B (zh) 一种纠删码数据一致性保障方法及系统
CN103902227A (zh) 一种支持追加写和共享读的文件存储方式
US6854038B2 (en) Global status journaling in NVS

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

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

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant