CN110109621B - 一种提升固态硬盘阵列系统性能和寿命的方法 - Google Patents

一种提升固态硬盘阵列系统性能和寿命的方法 Download PDF

Info

Publication number
CN110109621B
CN110109621B CN201910349955.0A CN201910349955A CN110109621B CN 110109621 B CN110109621 B CN 110109621B CN 201910349955 A CN201910349955 A CN 201910349955A CN 110109621 B CN110109621 B CN 110109621B
Authority
CN
China
Prior art keywords
data
solid state
block
state disk
write
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
CN201910349955.0A
Other languages
English (en)
Other versions
CN110109621A (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.)
Linewell Software Co Ltd
Original Assignee
Linewell Software Co Ltd
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 Linewell Software Co Ltd filed Critical Linewell Software Co Ltd
Priority to CN201910349955.0A priority Critical patent/CN110109621B/zh
Publication of CN110109621A publication Critical patent/CN110109621A/zh
Application granted granted Critical
Publication of CN110109621B publication Critical patent/CN110109621B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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/0614Improving the reliability of storage systems
    • G06F3/0616Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
    • 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/0629Configuration or reconfiguration of storage 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

本发明公开了一种提升固态硬盘阵列系统性能和寿命的方法,该方法以每N个条带为一个数据布局和编码单元,将N块固态硬盘构成的阵列系统进行划分成若干个单元。第k个单元前N‑1个条带以轮转的方式放置数据块,该单元最后一个条带放置校验块,将阵列划分为连续写入区域和随机写入区域,并设置系统参数T,当一个写请求至少连续写入T块数据块时,系统将该请求导入连续写入区域;否则将其导入随机写入区域。该请求被划分为一个或多个数据块,并按照上述的编码算法生成对应的校验块,完成该请求的所有数据块写入操作。本发明针对固态硬盘阵列系统提出斜校验的编码方法,以均衡数据块和校验块的写入操作,提升固体硬盘阵列系统的性能和寿命。

Description

一种提升固态硬盘阵列系统性能和寿命的方法
技术领域
本发明涉及计算机固态硬盘阵列存储系统领域,尤其涉及一种提升固态硬盘阵列系统性能和寿命的方法。
背景技术
固态硬盘正对传统存储介质产生革命性的影响。相较于传统硬盘,固态硬盘具有低能耗、快访存、高抗震等特点。因此,作为下一代存储设备,固态硬盘正逐步取代传统硬盘的地位,例如许多阵列系统中已经采用固态硬盘作为底层存储介质。
然而固态硬盘也面临着可靠性方面的约束。首先,固态硬盘物理块的擦写次数是有限的,例如,固态硬盘每一块物理块可擦写次数有限。其次,固态硬盘内部由读干扰、写干扰或数据保存造成的位错误经常发生。最后,随着固态硬盘物理块擦写次数的增加,其位错误率也随之增加。
因此,为了保障设备级别的数据可靠性,阵列系统的引入成为必然。阵列系统将多块固态硬盘部署在一起,并通过增加数据冗余,确保设备在损坏、无法访问等情况下,数据不会丢失。在实际部署中,阵列系统可以选择容一错的RAID5编码,或容两错甚至更多的Reed-Solomon编码。接下来通过图1简单示例解释,传统编码算法对固态硬盘阵列系统造成性能和寿命的影响。
图1中为部署RAID5编码的固态硬盘阵列系统。我们知道请求数据是按照轮转的形式写入阵列系统,又由于RAID5编码是一种采用行校验的方式进行编码运算产生冗余,因此请求数据1,2,3,4,…,17,18,19,20写入阵列后数据块和校验块的布局情况如图1所示。其中数据块1,2,3,4进行异或计算产生校验块P1,其中1,2,3,4,P1称为一个条带,下同;数据块5,6,7,8产生校验块P2;数据块9,10,11,12产生校验块P3;数据块13,14,15,16产生校验块P4;数据块17,18,19,20产生校验块P5。对于校验块而言,只要和它有关的数据块发生更新,该校验块也随即发生更新,例如数据块1,2,3,4在不同时刻被分别更新一次,则校验块P1将被更新4次,该现象称为“更新依赖性”。
由于校验块被均匀放置在固态硬盘阵列系统中,因此只要对数据块的写操作是均衡的,阵列系统的校验块也将受到均衡的写操作。不幸的是,实际工作负载的访问并不是均匀的,例如工作负载访问的局部性使得有些数据块接收到更频繁的写操作,最终导致某些校验块及其对应的固态硬盘接收到更多的写,使得其更快损坏。还是以图1为例,假定数据块1,2,3,4接收到50次的更新写操作,其他数据块接收到10次更新写操作,因此校验块P1接收到200次写操作,其他校验块接收到40次写操作。通过简单计算,很容易得到编号为4的固态硬盘接收到的写操作比另外四块硬盘多120次,最终导致该块固态硬盘较快老化。这里可以得出结论,即便固体硬盘阵列系统将校验块均匀放置,但非均匀的工作负载总是使得固态硬盘老化速度不一致,并较快发生设备损坏。
发明内容
本发明的目的就在于为了解决上述问题而提供一种提升固态硬盘阵列系统性能和寿命的方法。以均衡数据块和校验块的写入操作,提升固体硬盘阵列系统的性能和寿命。
本发明通过以下技术方案来实现上述目的:
本发明包括以下步骤:
步骤1:首先假定固态硬盘阵列系统由N块固态硬盘构成,并以每N个条带作为斜校验的数据布局和编码单元,因此系统中存在多个由N个条带构成的数据布局和编码单元;此外,将固态硬盘阵列系统划分为两个区域:连续写入区域和随机写入区域;
步骤2:每个数据布局和编码单元的前N-1个条带以轮转的形式放置数据块,最后一个条带放置校验块;
步骤3:第k个数据布局和编码单元的最后一个条带的校验块的计算算法为:
Figure GDA0003618786460000031
其中Ca,b为校验块,Da,b为数据块;Ca,b和Da,b中下标a表示为该单元内第a个条带,b表示列号;
步骤4:设置系统参数T,当一个写请求至少写入T块数据块时,阵列系统将其导入连续写入区域,否则将其导入随机写入区域;
步骤5:对于导入连续或随机写入区域的请求,系统将其拆分为一个或多个数据块的构成的写入操作队列;取出队头的数据块,系统通过该数据块的写入起始地址x,通过运算得知其要写入第k个数据布局和编码单元(k=x/(N-1)^2);得知其在该单元的第a行,第b列(a=(x%(N-1)^2)/N,b=(x%(N-1)^2)%N);写入该数据块,并根据公式更新对应校验块
Figure GDA0003618786460000032
步骤6:如果该写操作不是写入新数据,而是更新旧数据操作,则将原始数据标记为无效;
步骤7:如果一个请求的数据块没有全部写入,则转入步骤继续执行;否则意味着完成本次写入请求操作。
进一步,所述步骤6中将原始数据标记为无效具体对于随机写入区域,标记为阵列级别无效;对于连续写入区域,固态硬盘内部标记为无效。
本发明的有益效果在于:
本发明是一种提升固态硬盘阵列系统性能和寿命的方法,与现有技术相比,本发明针对固态硬盘阵列系统提出斜校验的编码方法,以均衡数据块和校验块的写入操作,提升固体硬盘阵列系统的性能和寿命。
附图说明
图1为基于RAID5编码的固态硬盘阵列系统;
图2为传统行校验编码方式与斜校验编码方式对比;
图3为斜校验数据布局和编码方式;
图4为基于连续写入区域和随机写入区域的全系统数据布局;
图5阵列系统寿命实验对比;
图6阵列系统性能实验对比;
具体实施方式
下面结合附图对本发明作进一步说明:
首先,提出斜校验编码的思想,将阵列中每一个条带的更新依赖性分散在不同的校验块上(即不同的固态硬盘上)。如前所述,更新依赖性使得校验块接收到的写操作次数明显多于数据块,而对于传统的行校验编码方式,一个条带内的数据块引起的更新依赖性集中到一块校验块上,因此造成某些校验块较“热”,最终提前损坏固体硬盘,降低系统寿命和性能。图2为提出的斜校验编码方式与传统行校验编码方式的比较。图2中相同颜色的数据块和校验块进行编码操作;例如子图(a)中,数据块1,2,3,4进行异或运算产生校验块P1;子图(b)中,数据块1,6,15,20进行异或运算产生校验块P3。对于提出的斜编码方式,一个条带的数据更新依赖性被分散在不同的固态硬盘上,例如子图(b)中,数据块1,2,3,4的更新依赖性分散在编号0,1,2,3的固态硬盘上。
其次,基于上述思想提出斜校验的数据布局和编码方法。以RAID5阵列系统为例,如果该阵列由N块固态硬盘构成,那么每N个条带为一个数据布局和编码单元。在该数据布局和编码单元内,N块校验块放在最后一个条带,而其余数据块依旧以轮转的方式写入存储系统,而编码方法为:
Figure GDA0003618786460000041
其中C为校验块,D为数据块;Ci,j或Di,j表示第i条带,第j列的校验块或数据块;
Figure GDA0003618786460000051
符号表示异或操作。图3为由5块固体硬盘构成的斜校验数据布局和编码示意图。由上述公式可以知,
Figure GDA0003618786460000052
即P1校验块由数据块1,7,13,19异或校验产生,同样的方法可以产生校验块P2,P3,P4,P5。
最后,将整个固态硬盘阵列系统划分为两个区域,分别称为连续写入区域和随机写入区域。如果一个大请求(连续请求)进入阵列,则将其导入连续写入区域;如果一个小请求(随机请求)进入阵列,则将其导入随机写入区域。通过定义系统参数T来区分大小请求,例如如果一个请求至少连续写T块数据块,则称之为大请求,否则为小请求。无论请求是被导入连续写入区域还是随机写入区域,这些区域都采用上述设计的斜校验数据布局和编码方法。图4为简单示例,假定系统参数为2,此时有三个大写请求和四个小写请求分别进入阵列,大请求分别是(1,2,3,4,5,6),(9,10,11),(13,14)和(16,17,18),小请求分别是(8),(12),(15),系统将大请求和小请求分别导入连续写入区域和随机写入区域,如图4(a)所示。接下来三个更新请求进入系统,其中(1,2,3,4,5,6)为大请求,(12)和(17)为小请求,因此更新后数据分布为图4(b)所示。
将本发明的设计和传统RAID的编码设计都部署到主流模拟器DiskSim+SSDExtension中,通过多个工作负载的模拟,都能够得到以下结果:1)我们的设计获得所有固态硬盘的擦写次数标准差小于传统的RAID编码设计,换句话说新的设计取得更均衡的写入操作效果,延长阵列寿命。2)我们的设计能够有效降低请求的平均响应时间,换句话说新的设计取得更小的响应时间,提升阵列系统性能。实验中,设置T=N,图5和图6分别为在SRC1_2工作负载下,传统编码和新型方法在寿命和性能方面的对比。我们还实验对比了其他工作负载,都能够取得类似的效果。
下面结合本发明实施例中的附图3和4,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。
首先,本发明假定固态硬盘阵列系统由N块固态硬盘构成,并以每N个条带作为斜校验的数据布局和编码单元,因此阵列系统内存在许多由N个条带构成的数据布局和编码单元;在每个这样的单元中,前N-1个条带以轮转的形式放置数据块,最后一个条带放置校验块。
其次,本发明固态硬盘阵列系统划分为两个区域——连续写入区域和随机写入区域。
再次,本发明设置系统参数T,当一个写请求至少写入T块数据块时,阵列系统将该请求导入连续写入区域;否则系统将此请求导入随机写入区域。
接着,固态硬盘阵列系统为写入的数据块按照轮转的方式轮转写入第k个单元,每个数据写入时更新相应的校验块,校验块的生产方案按照以下算法获得:
Figure GDA0003618786460000061
最后以算法描述的形式阐述斜校验的数据布局和编码方法如何响应外部请求。
STEP1:对于进入阵列系统的写请求,如果该请求至少连续写T块数据块,则将其导入连续写入区域,否则将其导入随机写入区域;转STEP2。
STEP2:对于导入连续或随机写入区域的请求,系统将其拆分为一个或多个数据块的构成的写入操作队列;取出队头的数据块判断,如果该写为写入新数据,转STEP3;如果该写入为更新旧数据,转STEP4。
STEP3:对于新写操作,系统通过该数据块的写入起始地址x,通过运算得知其要写入第k个数据布局和编码单元(k=x/(N-1)^2);得知其在该单元的第a行,第b列(a=(x%(N-1)^2)/N,b=(x%(N-1)^2)%N);写入该数据块,并根据公式更新对应校验块
Figure GDA0003618786460000071
转STEP5。
STEP4:对于更新操作,通过与STEP3相同的做法,最后再将原始数据表示为无效(对于随机写入区域,阵列级别标记无效;对于连续写入区域,固态硬盘内部标记为无效)。转STEP5。
STEP5:如果一个请求的数据块未全部写入,转STEP2;否则意味着完成本次写入请求。
以上显示和描述了本发明的基本原理和主要特征及本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (2)

1.一种提升固态硬盘阵列系统性能和寿命的方法,其特征在于,包括以下步骤:
步骤1:首先假定固态硬盘阵列系统由N块固态硬盘构成,并以每N个条带作为斜校验的数据布局和编码单元,因此系统中存在多个由N个条带构成的数据布局和编码单元;此外,将固态硬盘阵列系统划分为两个区域:连续写入区域和随机写入区域;
步骤2:每个数据布局和编码单元的前N-1个条带以轮转的形式放置数据块,最后一个条带放置校验块;
步骤3:第k个数据布局和编码单元的最后一个条带的校验块的计算算法为:
Figure FDA0003618786450000011
其中Ca,b为校验块,Da,b为数据块;Ca,b和Da,b中下标a表示为该单元内第a个条带,b表示列号;
步骤4:设置系统参数T,当一个写请求至少写入T块数据块时,阵列系统将其导入连续写入区域,否则将其导入随机写入区域;
步骤5:对于导入连续或随机写入区域的请求,系统将其拆分为一个或多个数据块的构成的写入操作队列;取出队头的数据块,系统通过该数据块的写入起始地址x,通过运算得知其要写入第k个数据布局和编码单元(k=x/(N-1)^2);得知其在该单元的第a行,第b列(a=(x%(N-1)^2)/N,b=(x%(N-1)^2)%N);写入该数据块,并根据公式更新对应校验块
Figure FDA0003618786450000012
步骤6:如果该写入操作不是写入新数据,而是更新旧数据操作,则将原始数据标记为无效;
步骤7:如果一个请求的数据块没有全部写入,则转入步骤5继续执行;否则意味着完成本次写入请求操作。
2.根据权利要求1所述的提升固态硬盘阵列系统性能和寿命的方法,其特征在于:所述步骤6中将原始数据标记为无效具体对于随机写入区域,标记为阵列级别无效;对于连续写入区域,固态硬盘内部标记为无效。
CN201910349955.0A 2019-04-28 2019-04-28 一种提升固态硬盘阵列系统性能和寿命的方法 Active CN110109621B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910349955.0A CN110109621B (zh) 2019-04-28 2019-04-28 一种提升固态硬盘阵列系统性能和寿命的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910349955.0A CN110109621B (zh) 2019-04-28 2019-04-28 一种提升固态硬盘阵列系统性能和寿命的方法

Publications (2)

Publication Number Publication Date
CN110109621A CN110109621A (zh) 2019-08-09
CN110109621B true CN110109621B (zh) 2022-07-12

Family

ID=67487222

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910349955.0A Active CN110109621B (zh) 2019-04-28 2019-04-28 一种提升固态硬盘阵列系统性能和寿命的方法

Country Status (1)

Country Link
CN (1) CN110109621B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111651126B (zh) * 2020-06-04 2023-05-16 重庆芯讯通无线科技有限公司 存储器的写操作方法、系统、电子设备和介质
CN113535082A (zh) * 2021-06-09 2021-10-22 杭州电子科技大学 一种实现磨损逆均衡的方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8898381B2 (en) * 2009-12-08 2014-11-25 OCZ Storage Solutions Inc. Raid storage systems having arrays of solid-state drives and methods of operation
US8862804B2 (en) * 2011-04-29 2014-10-14 Western Digital Technologies, Inc. System and method for improved parity determination within a data redundancy scheme in a solid state memory
WO2014011011A1 (ko) * 2012-07-13 2014-01-16 삼성전자(주) 솔리드 스테이트 드라이브 콘트롤러, 솔리드 스테이트 드라이브, 솔리드 스테이트 드라이브의 데이터 처리 방법, 다채널 솔리드 스테이트 드라이브, 레이드 콘트롤러, 시퀀스 정보를 솔리드 스테이트 드라이브에 제공하는 컴퓨터 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체
CN104407813B (zh) * 2014-11-20 2019-02-19 上海宝存信息科技有限公司 一种基于固态存储介质的raid系统及方法
CN106293990B (zh) * 2016-08-10 2019-06-07 华中科技大学 一种基于批量写校验的独立磁盘冗余阵列读写方法
CN108958656B (zh) * 2018-06-27 2021-01-08 北京计算机技术及应用研究所 基于raid5固态硬盘阵列的动态条带系统设计方法
CN109062506B (zh) * 2018-07-16 2020-04-10 山东大学 Raid-5全闪存磁盘阵列及提高阵列整体寿命的方法

Also Published As

Publication number Publication date
CN110109621A (zh) 2019-08-09

Similar Documents

Publication Publication Date Title
US11722158B2 (en) Cloud-based solid state device (SSD) with dynamically variable error correcting code (ECC) system
US10218789B2 (en) Erasure correcting coding using temporary erasure data
CN101685672B (zh) 在多级单元闪存装置中使用的最低有效位页恢复方法
CN107250975B (zh) 数据存储系统和数据存储方法
US20140063983A1 (en) Error Detection And Correction In A Memory System
Park et al. Reliability and performance enhancement technique for SSD array storage system using RAID mechanism
CN101868830A (zh) 容错非易失性集成电路存储器
US9741451B2 (en) Data storage device and data maintenance method thereof
Li et al. Stochastic analysis on RAID reliability for solid-state drives
EP2239654A2 (en) Memory systems for computing devices and systems
CN110109621B (zh) 一种提升固态硬盘阵列系统性能和寿命的方法
CN112799604B (zh) 一种基于N-Code的RAID6磁盘阵列扩容方法及数据填充方法
US10606690B2 (en) Memory controller error checking process using internal memory device codes
US20120198195A1 (en) Data storage system and method
US20140164695A1 (en) Method and system for storing and rebuilding data
Li et al. Analysis of reliability dynamics of SSD RAID
CN103336727A (zh) Nand闪存存储设备及对其进行数据操作的方法
US10275307B2 (en) Detection of error patterns in memory dies
US9389790B2 (en) Method and apparatus for determining redundant array of independent disks
CN110600070A (zh) 一种提升固态硬盘阵列系统修复性能的编码和修复方法
Li et al. A hierarchical RAID architecture towards fast recovery and high reliability
Chamazcoti et al. Can erasure codes damage reliability in SSD-based storage systems?
CN101847081B (zh) 初始化磁盘阵列系统的方法和电子装置及磁盘阵列系统
Pan et al. DCS: diagonal coding scheme for enhancing the endurance of SSD-based RAID arrays
Pan et al. DCS5: Diagonal coding scheme for enhancing the endurance of SSD-based RAID-5 systems

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
GR01 Patent grant
GR01 Patent grant