CN115237342A - 一种由阵列磁盘进行数据校验的raid5校验方法 - Google Patents

一种由阵列磁盘进行数据校验的raid5校验方法 Download PDF

Info

Publication number
CN115237342A
CN115237342A CN202210791790.4A CN202210791790A CN115237342A CN 115237342 A CN115237342 A CN 115237342A CN 202210791790 A CN202210791790 A CN 202210791790A CN 115237342 A CN115237342 A CN 115237342A
Authority
CN
China
Prior art keywords
data
command
xdwrite
xpwrite
xdread
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
Application number
CN202210791790.4A
Other languages
English (en)
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.)
Hangzhou Dianzi University
Original Assignee
Hangzhou Dianzi University
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 Hangzhou Dianzi University filed Critical Hangzhou Dianzi University
Publication of CN115237342A publication Critical patent/CN115237342A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Abstract

本发明公开了一种由阵列磁盘进行数据校验的RAID5校验方法,该方法包括带异或计算硬件模块以及支持XDWRITE、XDREAD和XPWRITE命令的固态硬盘组成阵列,其中,XDWRITE命令为将用户数据写入数据盘并触发新写入的数据与旧数据的异或操作,异或结果存在数据盘内的buffer中;XDREAD命令为将数据盘buffer内的校验数据读出;XPWRITE命令为将读出的校验数据写入阵列中的校验盘并触发新写入的校验数据与旧的校验数据的异或操作,最后将异或操作计算出的数据写入存储介质,XPWRITE命令用于阵列中校验盘的写校验数据,而XDWRITE命令用于数据盘的写用户数据。本发明减少RAID5在写数据过程中读写成员磁盘的次数并将校验数据的计算下放到成员磁盘中从而提高RAID5的写性能。

Description

一种由阵列磁盘进行数据校验的RAID5校验方法
技术领域
本发明属于计算机数据处理技术领域,涉及一种由阵列磁盘进行数据校验的RAID5校验方法。
背景技术
RAID(独立磁盘冗余阵列)技术是目前为止大规模存储比较普遍的技术,该技术将大量独立的磁盘通过不同的组织方式组合形成一个存储阵列,不仅存储容量可以根据需求拓展,读写性能以及数据安全性较单盘也有很大的提高。
根据不同的读写策略和数据冗余策略,常见的RAID分类有RAID0、RAID1、RAID2、RAID3、RAID4、RAID5、RAID6等,综合成本、性能、数据安全性等相关因素,RAID5有着广泛的应用。
参见图1为RAID5的数据分布示意图,D0、D1、D2、D3为组成RAID5的四块成员磁盘,颜色相同的区域组成阵列的基本读写单元——条带,如图一中的A1、A2、A3、P就是一个完成的条带,而在每块磁盘中组成条带的单元如A1则称为条带单元。其中A1、A2、A3为条带中的数据单元,P为校验单元,它的值由条带中的数据单元异或得到,即
Figure BDA0003734134130000011
由于每次写操作校验数据都需要更新,并且完成一次写操作需要对所有成员盘进行多次读写,这成为了RAID5写性能相对较低的原因之一。
RAID5的写操作根据负载大小一般分为三种情况:满条带写(full-stripewrite)、读-修改-写(read-modify-write)、读-重构-写(read-construct-write)。
所谓满条带写即写入磁盘阵列的数据量正好等于条带大小,如此一来便不需要额外的读旧数据的操作就能计算出校验数据。若以四块磁盘组成的RAID5为例,完成一次满条带写只需发送四次写IO并计算一次校验数据,现有技术中满条带写逻辑示意图参见图2。
实际上,阵列控制器是多通道并行通信,写阵列所花的时间取决于最慢的那条数据通道。假设异或计算的时间为tXOR、单盘写命令完成所需时间为twrite,写入阵列的数据大小为3*A1,则由图2可计算得到满条带写的时间tfull_w=tXOR+twrite。总I/O数n=4,则该次写阵列操作的写速率
Figure BDA0003734134130000021
读-修改-写与读-重构-写的最大区别在于所要读取的盘不同,参见图3为现有技术中读-修改-写的示意图。
假设A1’是大小为一个条带单元的要写入磁盘D0的新数据,A1、A2、A3、P为条带中的旧数据,则需要先将D0中的旧数据A1、D3中的旧校验数据P读出再与要写入的新数据A1’进行异或,即
Figure BDA0003734134130000022
最后再将P’写入磁盘D3。则整个写过程所需时间为
Figure BDA0003734134130000023
Figure BDA0003734134130000024
写速率
Figure BDA0003734134130000025
若写数据大小持续增大但小于满条带大小,由于阵列中各盘可以并行读写,因此写数据时间的增加主要体现在校验时间的增加,但总体上写速率会持续增加,当写入数据大小达到满条带时写速率达到最大。
参见图4为现有技术中读-重构-写的示意图,其中A1’为将要写入的大小为一个条带单元的新数据,根据读-重构-写的逻辑,需要将磁盘D1、D2中的旧数据读出再和要写入D0的新数据进行异或得到新的校验数据,即
Figure BDA0003734134130000026
整个写过程所需时间为
Figure BDA0003734134130000027
Figure BDA0003734134130000028
写过程时间内数据大小为A1’,则写速率
Figure BDA0003734134130000029
同样的,写数据大小持续增大但小于满条带大小时,写数据所需时间的增加主要体现在校验时间的增加,当写入数据大小达到满条带时写速率达到最大。
除满条带写以外,rcw和rmw两种写入方式均因校验而需要额外的读操作且频繁读写校验磁盘,而在写操作中rcw和rmw占绝大多数,因此,RAID5虽然在数据安全性上有所提高,但也相对降低了阵列的写性能。
发明内容
为解决上述问题,本发明的一种实现RAID5数据校验的新型校验方法,配合Linux系统的软RAID模块和支持XDWRITE、XDREAD、XPWRITE命令以及拥有异或计算硬件模块的SSD,减少RAID5在写数据过程中读写成员磁盘的次数并将校验数据的计算下放到成员磁盘中从而提高RAID5的写性能。技术方案包括带异或计算硬件模块以及支持XDWRITE、XDREAD和XPWRITE命令的固态硬盘组成阵列,其中,
XDWRITE命令为将用户数据写入数据盘并触发新写入的数据与旧数据的异或操作,异或结果存在数据盘内的buffer中;
XDREAD命令为将数据盘buffer内的校验数据读出;
XPWRITE命令为将读出的校验数据写入阵列中的校验盘并触发新写入的校验数据与旧的校验数据的异或操作,最后将异或操作计算出的数据写入存储介质,XPWRITE命令用于阵列中校验盘的写校验数据,而XDWRITE命令用于数据盘的写用户数据。
基于上述目的,本发明还提供了一种单条带单元RAID5写过程的数据校验方法,采用上述方法,对于只有一个条带单元大小的数据,
首先用XDWRITE命令将数据写入数据盘中的条带单元;
再用XDREAD命令将数据盘中的校验数据读出到host进行缓存;
最后将校验数据用XPWRITE命令写入校验盘;
整个写数据过程所需时长为tw=tXDWRITE+tXDREAD+tXPWRITE,tXDWRITE、tXDREAD、tXPWRITE分别为XDWRITE命令、XDREAD命令和XPWRITE命令完成所需时长,其中,命令XDWRITE命令和XPWRITE命令完成时间包含数据在数据盘内的校验时间。
基于上述目的,本发明还提供了一种多条带单元RAID5写过程的数据校验方法,采用上述方法,对于大于一个条带单元大小的数据,
首先用XDWRITE命令将数据写入各数据盘中的条带单元;
再用XDREAD命令将各数据盘中的校验信息读出到host中进行异或;
最后将异或的结果用XPWRITE命令写入校验盘;
整个写数据过程所需时长为tw=tXDWRITE+tXDREAD+tXOR+tXPWRITE,tXDWRITE、tXDREAD、tXOR、tXPWRITE分别为XDWRITE命令、XDREAD命令、进行异或和XPWRITE命令完成所需时长。
本发明有益效果至少包括:配合Linux系统的软RAID模块和支持XDWRITE、XDREAD、XPWRITE命令以及拥有异或计算硬件模块的SSD,减少RAID5在写数据过程中读写成员磁盘的次数并将校验数据的计算下放到成员磁盘中从而提高RAID5的写性能。
附图说明
图1为现有技术的RAID5数据分布示意图;
图2为现有技术的RAID5满条带写逻辑示意图;
图3为现有技术的rmw写流程示意图;
图4为现有技术的rcw写流程示意图;
图5为本发明由阵列磁盘进行数据校验的RAID5校验方法的XDWRITE命令的示意图;
图6为本发明由阵列磁盘进行数据校验的RAID5校验方法的XDREAD命令的示意图;
图7为本发明由阵列磁盘进行数据校验的RAID5校验方法的XPWRITE命令的示意图;
图8为本发明的单条带RAID5写过程的数据校验方法的示意图;
图9为本发明的多条带RAID5写过程的数据校验方法的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
相反,本发明涵盖任何由权利要求定义的在本发明的精髓和范围上做的替代、修改、等效方法以及方案。进一步,为了使公众对本发明有更好的了解,在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。
参见图5-7,为本发明实施例的本发明的技术方案为由阵列磁盘进行数据校验的RAID5校验方法的XDWRITE、XDREAD和XPWRITE命令的示意图,该方法包括带异或计算硬件模块以及支持XDWRITE、XDREAD和XPWRITE命令的固态硬盘组成阵列,其中,
参见图5,XDWRITE命令为将用户数据写入数据盘并触发新写入的数据与旧数据的异或操作,异或结果存在数据盘内的buffer中;
参见图6,XDREAD命令为将数据盘buffer内的校验数据读出;
参见图7,XPWRITE命令为将读出的校验数据写入阵列中的校验盘并触发新写入的校验数据与旧的校验数据的异或操作,最后将异或操作计算出的数据写入存储介质,该命令功能与XDWRITE类似,但XPWRITE命令用于阵列中校验盘的写校验数据,而XDWRITE命令用于数据盘的写用户数据。
参见图8,本发明还提供了一种单条带单元RAID5写过程的数据校验方法,采用上述方法,对于只有一个条带单元大小的数据,
首先用XDWRITE命令将数据写入数据盘中的条带单元;
再用XDREAD命令将数据盘中的校验数据读出到host进行缓存;
最后将校验数据用XPWRITE命令写入校验盘;
整个写数据过程所需时长为tw=tXDWRITE+tXDREAD+tXPWRITE,tXDWRITE、tXDREAD、tXPWRITE分别为XDWRITE命令、XDREAD命令和XPWRITE命令完成所需时长,其中,命令XDWRITE命令和XPWRITE命令完成时间包含数据在数据盘内的校验时间。
从图8中可以看出,优化后的写数据过程只产生了三个IO,不需要再从校验盘中将旧的校验数据读出,且不需要在host中对数据进行异或校验,只需要对D0中的校验数据进行缓存以便写入校验盘。整个写数据过程所需时间为tw=tXDWRITE+tXDREAD+tXPWRITE,实际上命令XDWRITE、XPWRITE完成时间包含数据在盘内的校验时间,但由于是硬件进行数据校验因此校验所花时间要比软件短,而XDREAD命令是从buffer中将数据读出其完成时间比READ命令要短。对比rmw写过程和rcw写过程,优化后的写数据时间得到相应缩短,小写性能得以提升。
参见图9,本发明还提供了一种多条带单元RAID5写过程的数据校验方法,采用上述方法,对于大于一个条带单元大小的数据,
首先用XDWRITE命令将数据写入数据盘中的条带单元;
再用XDREAD命令将各数据盘中的校验信息读出到host中进行异或;
最后将异或的结果用XPWRITE命令写入校验盘;
整个写数据过程所需时长为tw=tXDWRITE+tXDREAD+tXOR+tXPWRITE,tXDWRITE、tXDREAD、tXOR、tXPWRITE分别为XDWRITE命令、XDREAD命令、进行异或和XPWRITE命令完成所需时长。
与rmw写过程时间
Figure BDA0003734134130000061
相比,同样因为校验时间的缩短从而有
Figure BDA0003734134130000062
Figure BDA0003734134130000063
Figure BDA0003734134130000064
因此当写入数据增大时,写入数据耗时仍小于传统rmw写过程方式。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种由阵列磁盘进行数据校验的RAID5校验方法,其特征在于,包括带异或计算硬件模块以及支持XDWRITE、XDREAD和XPWRITE命令的固态硬盘组成阵列,其中,
XDWRITE命令为将用户数据写入数据盘并触发新写入的数据与旧数据的异或操作,异或结果存在数据盘内的buffer中;
XDREAD命令为将数据盘buffer内的校验数据读出;
XPWRITE命令为将读出的校验数据写入阵列中的校验盘并触发新写入的校验数据与旧的校验数据的异或操作,最后将异或操作计算出的数据写入存储介质,XPWRITE命令用于阵列中校验盘的写校验数据,而XDWRITE命令用于数据盘的写用户数据。
2.一种单条带单元RAID5写过程的数据校验方法,其特征在于,采用权利要求1所述的方法,对于只有一个条带单元大小的数据,
首先用XDWRITE命令将数据写入数据盘中的条带单元;
再用XDREAD命令将数据盘中的校验数据读出到host进行缓存;
最后将校验数据用XPWRITE命令写入校验盘;
整个写数据过程所需时长为tw=tXDWRITE+tXDREAD+tXPWRITE,tXDWRITE、tXDREAD、tXPWRITE分别为XDWRITE命令、XDREAD命令和XPWRITE命令完成所需时长,其中,命令XDWRITE命令和XPWRITE命令完成时间包含数据在数据盘内的校验时间。
3.一种多条带单元RAID5写过程的数据校验方法,其特征在于,采用权利要求1所述的方法,对于大于一个条带单元大小的数据,
首先用XDWRITE命令将数据写入各数据盘中的条带单元;
再用XDREAD命令将各数据盘中的校验信息读出到host中进行异或;
最后将异或的结果用XPWRITE命令写入校验盘;
整个写数据过程所需时长为tw=tXDWRITE+tXDREAD+tXOR+tXPWRITE,tXDWRITE、tXDREAD、tXOR、tXPWRITE分别为XDWRITE命令、XDREAD命令、进行异或和XPWRITE命令完成所需时长。
CN202210791790.4A 2022-03-28 2022-07-07 一种由阵列磁盘进行数据校验的raid5校验方法 Pending CN115237342A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202210314223 2022-03-28
CN202210314223X 2022-03-28

Publications (1)

Publication Number Publication Date
CN115237342A true CN115237342A (zh) 2022-10-25

Family

ID=83671512

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210791790.4A Pending CN115237342A (zh) 2022-03-28 2022-07-07 一种由阵列磁盘进行数据校验的raid5校验方法

Country Status (1)

Country Link
CN (1) CN115237342A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117389481A (zh) * 2023-12-08 2024-01-12 鹏钛存储技术(南京)有限公司 一种固态硬盘实现xor加速的方法
CN117806568A (zh) * 2024-02-29 2024-04-02 山东云海国创云计算装备产业创新中心有限公司 一种数据更新方法、装置、设备和存储介质

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117389481A (zh) * 2023-12-08 2024-01-12 鹏钛存储技术(南京)有限公司 一种固态硬盘实现xor加速的方法
CN117389481B (zh) * 2023-12-08 2024-02-09 鹏钛存储技术(南京)有限公司 一种固态硬盘实现xor加速的方法
CN117806568A (zh) * 2024-02-29 2024-04-02 山东云海国创云计算装备产业创新中心有限公司 一种数据更新方法、装置、设备和存储介质

Similar Documents

Publication Publication Date Title
US9442802B2 (en) Data access methods and storage subsystems thereof
US5530948A (en) System and method for command queuing on raid levels 4 and 5 parity drives
US5315602A (en) Optimized stripe detection for redundant arrays of disk drives
US5742752A (en) Method for performing a RAID stripe write operation using a drive XOR command set
US6523087B2 (en) Utilizing parity caching and parity logging while closing the RAID5 write hole
US5504858A (en) Method and apparatus for preserving data integrity in a multiple disk raid organized storage system
CN102122235B (zh) 一种raid4系统及其数据读写方法
US7730257B2 (en) Method and computer program product to increase I/O write performance in a redundant array
US6282671B1 (en) Method and system for improved efficiency of parity calculation in RAID system
CN115237342A (zh) 一种由阵列磁盘进行数据校验的raid5校验方法
US7310745B2 (en) Efficient media scan operations for storage systems
US20020035666A1 (en) Method and apparatus for increasing raid write performance by maintaining a full track write counter
JP2007513435A (ja) データ組織化を管理するための方法、システム、及びプログラム
JPH05505264A (ja) データ記憶装置における書込みオペレーション識別子の不揮発性メモリ記憶
CN103049222A (zh) 一种raid5的写io优化处理方法
KR100208801B1 (ko) 데이타 입/출력 성능을 향상시키기 위한 기억장치 시스템 및 그에 따른 데이타 복구정보 캐시구현방법
US6343343B1 (en) Disk arrays using non-standard sector sizes
CN103336727B (zh) 对nand闪存存储设备进行数据操作的方法
US5896493A (en) Raid algorithm using a multimedia functional unit
CN103019893A (zh) 一种多盘容错的二维混合盘raid4系统架构及其读写方法
US20040093464A1 (en) Integrated sector format-error correction code system and method for efficient writing in a disk array system
CN107678690A (zh) 一种固态硬盘及其冗余独立磁盘阵列的实现方法
US6038676A (en) Method and circuit for data integrity verification during DASD data transfer
US7143234B2 (en) Bios storage array
CN107728943B (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