一种SSDRAID优化方法、装置、设备及存储介质与流程


一种ssd raid优化方法、装置、设备及存储介质
技术领域
1.本发明涉及存储技术领域,更具体地说是一种ssd raid优化方法、装置、设备及存储介质。


背景技术:



2.ssd(固态硬盘)已经被广泛应用于各种场合,目前在pc市场,已经逐步替代传统的hdd,从可靠性和性能方面为用户提供较好的体验。
3.随着nand工艺的演进,已经从早期的1bit/cell(slc),依次演进为2bit/cell(mlc),3bit/cell(tlc),4bit/cell(qlc),其存储的数据容量越来越大,但由于每个cell的bit数量增加,导致电压分布更加密集。而nand的数据表征主要是依赖电压的分布来表示的。故而随着nand工艺的演进,nand的数据可靠性问题越来越明显。
4.为了对抗可能的数据损坏,一般需要采用多种数据保护、纠错方法,例如ecc算法进行数据纠错,nand read retry提供了不同的nand内部数据读取方法以尝试获取正确的数据,而在ssd级别,则需要考虑进一步的数据容错机制,例如raid。
5.raid针对用户数据提供额外的保护机制,以raid5的7+1为例,每7个用户数据会生成1个校验数据,而该校验数据则是7个用户数据异或运算而来。当任意一笔用户数据损坏时,可以通过其他6笔用户数据以及校验数据进行异或恢复。
6.而在多bit/cell的nand中,不同的物理页出错的概率是不一样的,如果条带内的数据出错的概率均比较高,则可能导致错误超出raid保护范围,进而导致数据不可纠错从而损坏数据。
7.现有ssd中,为了对抗数据可靠性问题,一般会引入raid.以7+1的raid5为例,每7笔用户数据会生成1笔parity校验数据,称之为一个条带(stripe).当条带内任意一个用户数据损坏时,由异或的可逆性可知,此时可用其余的6笔用户数据以及parity校验数据进行异或,恢复出错的用户数据。
8.现有的raid实现中,一般会将多个物理块的相同page组成一个条带。但是随着nand工艺的演进,其存储的最小单元(cell)所表征的数据位宽越来越多,以qlc为例,每个cell表征4bits,各分布于相同wl(word line)的不同page中(如wl0的low/middle/upper/extra page,对应物理块内的page0/1/2/3.).进一步地,不同类型的page在整个生命周期内出错的概率是不一样的,比如说extra page出错的概率要远高于low page.则按照现有的raid组成方法,则由extra page组成的stripe,有更大的概率会出现1个或多个物理页数据损坏的情形,故而导致数据损坏超过raid保护能力的概率增加,带来了极大的数据不可靠性的风险。


技术实现要素:



9.本发明的目的在于克服现有技术的不足,提供一种ssd raid优化方法、装置、设备及存储介质。
10.为实现上述目的,本发明采用以下技术方案:
11.第一方面,一种ssd raid优化方法,包括:
12.设定条带所需的page数量;
13.为每个条带分配相同数量的page,且每个条带的出错概率保持相同。
14.其进一步技术方案为:所述为每个条带分配相同数量的page,且每个条带的出错概率保持相同,包括:
15.选择与一个条带所需的page数量相等数量的物理块;
16.分别从每个物理块中分配一个page组合构成一个条带。
17.其进一步技术方案为:每一个条带中均包括不同出错等级的page。
18.其进一步技术方案为:不同出错等级的page分别为第一类型page、第二类型page、第三类型page以及第四类型page,第一类型page、第二类型page、第三类型page和第四类型page之间的出错概率大小关系为:第一类型page大于第二类型page,第二类型page大于第三类型page,第三类型page大于第四类型page。
19.其进一步技术方案为:每个条带中一个page用于存储校验数据,其余page用于存储用户数据。
20.其进一步技术方案为:每个条带中的校验数据是根据该条带中的所有用户数据生成的。
21.第二方面,一种ssd raid优化装置,包括设定单元以及分配单元;
22.所述设定单元,用于设定条带所需的page数量;
23.所述分配单元,用于为每个条带分配相同数量的page,且每个条带的出错概率保持相同。
24.第三方面,一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述的ssd raid优化方法。
25.第四方面,一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,使得所述处理器执行如上述的ssd raid优化方法。
26.本发明与现有技术相比的有益效果是:本发明通过将不同出错概率的page均匀地分配到不同的条带中,使得每个条带的出错概率保持相同,避免了某个条带内出现多个物理页损坏的概率,提升了raid数据保护能力。
27.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明技术手段,可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征及优点能够更明显易懂,以下特举较佳实施例,详细说明如下。
附图说明
28.为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1为本发明具体实施例提供的一种ssd raid优化方法的流程图;
30.图2为本发明具体实施例提供的一种ssd raid优化装置的示意性框图;
31.图3为本发明具体实施例提供的一种ssd raid优化方法、装置、设备及存储介质的仰视图;
32.图4为本发明具体实施例提供的多bit/cell的电压分布以及物理页组成示意图;
33.图5为本发明具体实施例提供的不同类型page的出错概率的示意图;
34.图6为本发明具体实施例提供的现有的raid组成的示意图;
35.图7为本发明具体实施例提供的改进后的的raid组成的示意图。
具体实施方式
36.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
37.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
38.还应当理解,在本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
39.还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
40.图4为多bit/cell的电压分布以及物理页组成的示意图,从图4可知,以每个cell表征4个bit为例,wl:wordline,由一组cell构成的存储单元,包含4个连续的物理page,分别称为low page、middle page、upper page和extra page,其中,low page由每个cell的bit 0组成;middle page由每个cell的bit 1组成;upper page由每个cell的bit 2组成;extra page由每个cell的bit 3组成;将wl内各个cell的电压分布绘制成图,则形成对应的分布图,共有16个状态,对应bit 0/1/2/3的各个值组合。
41.图5为不同类型page的出错概率的示意图,图5中横轴表示整个生命周期内的擦除次数(pe),纵轴表示出错的概率,从趋势上看,整个生命周期中出错的概率呈现extra page》upper page》middle page》low page。
42.图6为现有的ssd中raid组成,以7+1raid 5为例:
43.block 0

7的page 0组成条带0,且block 7 page 0存放parity数据,记为stripe 0;block 0

7的page 1组成条带1,且block 7 page 1存放parity数据,记为stripe 1;依次类推,各个物理块的相同page组成对应的条带,当其内任意一个用户数据损坏时,可以通过其他的用户数据以及parity数据通过异或计算处理进行恢复。
44.而根据nand的特性可知,由于同一wl内的不同page的出错概率差别很大,以stripe 3为例,其内物理页完全由extra page组成,出错概率远高于其他stripe内的物理页,故而其内出现多个物理页损坏的概率也大大增加。由于7+1raid只能容忍一个物理页的数据错误,当有多个物理页出错时,则会导致数据丢失。故而在此种raid构建模型下,整体
的保护力度不均衡,有数据丢失的风险。
45.通过上述内容可知,现有ssd raid组建方式存在物理页损坏的概率较大,整体的保护力度不均衡的问题,针对此问题,本发明设计了一种ssd raid优化方法。下面通过具体实施例来介绍本发明。
46.如图1所示,一种ssd raid优化方法,包括以下步骤:s10-s20。
47.s10、设定条带所需的page数量。
48.每个条带所需的page数量可根据实际情况来设定,如图7所示,图中示意出了4个条带,分别是stripe 1、stripe 2、stripe 3和stripe 0,每个条带由8个page组成。
49.s20、为每个条带分配相同数量的page,且每个条带的出错概率保持相同。
50.在一实施例中,步骤s20具体包括以下步骤:s201-s202。
51.s201、选择与一个条带所需的page数量相等数量的物理块。
52.在本实施例中,如图7所示,一个条带由8个page组成,且8个page分别来自8个不同的物理块(block)中,图7中,8个物理块分别是:block0、block1、block2、block3、block4、block5、block6和block7。
53.s202、分别从每个物理块中分配一个page组合构成一个条带。
54.为了保持每个条带的出错概率保持相同,因此,需避免一个条带中所有的page的出错等级是相同,所以分配的规则是:每一个条带中均包括不同出错等级的page。
55.在一实施例中,不同出错等级的page分别为第一类型page、第二类型page、第三类型page以及第四类型page,第一类型page、第二类型page、第三类型page和第四类型page之间的出错概率大小关系为:第一类型page大于第二类型page,第二类型page大于第三类型page,第三类型page大于第四类型page。
56.在本实施例中,第一类型page为extra page,第二类型page为upper page,第三类型page为middle page,第四类型page为low page。
57.从图7可知,条带stripe 0的组成为:block 0 page 0,block 1 page 1,block 2 page 2,block 3 page 3,block 4 page 0,block 5 page 1,block 6 page 2,block 7 page 3。
58.条带stripe 1的组成为:block 0 page 1,block 1 page 2,block 2 page 3,block 3 page 0,block 4 page 1,block 5 page 2,block 6 page 3,block 7 page 0。
59.条带stripe 2的组成为:block 0 page 2,block 1 page 3,block 2 page 0,block 3 page 1,block 4 page 2,block 5 page 3,block 6 page 0,block 7 page 1。
60.条带stripe 3的组成为:block 0 page 3,block 1 page 0,block 2 page 1,block 3 page 2,block 4 page 3,block 5 page 0,block 6 page 1,block 7 page 2。
61.其中,page 0、page 1、page 2和page 3的出错等级概率的关系为:page 0《page 1《page 2《page 3,即page 0为low page,page 1为middle page,page 2为page 2,page 3为extra page。
62.从图7可以得知,stripe 1、stripe 2、stripe 3和stripe 0四个条带的出错概率均是相同的,从而避免了某个条带内出现多个物理页损坏的场景,提升了raid数据保护能力。
63.在一实施例中,每个条带中有一个page用于存储校验数据,其余page用于存储用
户数据,每个条带中的校验数据是根据该条带中的所有用户数据生成的。每个条带的校验数据存储于该条带最尾端的page中。
64.在本实施例中,如图7所示,校验数据存储于block 7的中,当然在其它实施例中,校验数据可存储在其它的block中。
65.图2为本发明实施例提供的ssd raid优化装置的示意性框图;对应于上述的ssd raid优化方法,本发明实施例还提供了ssd raid优化装置100。
66.如图2所示,一种ssd raid优化装置100,包括设定单元110以及分配单元120。
67.设定单元110,用于设定条带所需的page数量。
68.每个条带所需的page数量可根据实际情况来设定,如图7所示,图中示意出了4个条带,分别是stripe 1、stripe 2、stripe 3和stripe 0,每个条带由8个page组成。
69.分配单元120,用于为每个条带分配相同数量的page,且每个条带的出错概率保持相同。
70.在一实施例中,分配单元120包括选择模块和分配模块;
71.选择模块,用于选择与一个条带所需的page数量相等数量的物理块。
72.在本实施例中,如图7所示,一个条带由8个page组成,且8个page分别来自8个不同的物理块(block)中,图7中,8个物理块分别是:block0、block1、block2、block3、block4、block5、block6和block7。
73.分配模块,用于分别从每个物理块中分配一个page组合构成一个条带。
74.为了保持每个条带的出错概率保持相同,因此,需避免一个条带中所有的page的出错等级是相同,所以分配的规则是:每一个条带中均包括不同出错等级的page。
75.在一实施例中,不同出错等级的page分别为第一类型page、第二类型page、第三类型page以及第四类型page,第一类型page、第二类型page、第三类型page和第四类型page之间的出错概率大小关系为:第一类型page大于第二类型page,第二类型page大于第三类型page,第三类型page大于第四类型page。
76.在本实施例中,第一类型page为extra page,第二类型page为upper page,第三类型page为middle page,第四类型page为lowpage。
77.从图7可知,条带stripe 0的组成为:block 0 page 0,block 1page 1,block 2 page 2,block 3 page 3,block 4 page 0,block 5 page 1,block 6 page 2,block 7 page 3。
78.条带stripe 1的组成为:block 0 page 1,block 1page 2,block 2 page 3,block 3 page 0,block 4 page 1,block 5 page 2,block 6 page 3,block 7 page 0。
79.条带stripe 2的组成为:block 0 page 2,block 1page 3,block 2 page 0,block 3 page 1,block 4 page 2,block 5 page 3,block 6 page 0,block 7 page 1。
80.条带stripe 3的组成为:block 0 page 3,block 1page 0,block 2 page 1,block 3 page 2,block 4 page 3,block 5 page 0,block 6 page 1,block 7 page 2。
81.其中,page 0、page 1、page 2和page 3的出错等级概率的关系为:page 0《page 1《page 2《page 3,即page 0为low page,page 1为middle page,page 2为page 2,page 3为extra page。
82.从图7可以得知,stripe 1、stripe 2、stripe 3和stripe 0四个条带的出错概率
均是相同的,从而避免免了某个条带内出现多个物理页损坏的场景,提升了raid数据保护能力。
83.在一实施例中,每个条带中有一个page用于存储校验数据,其余page用于存储用户数据,每个条带中的校验数据是根据该条带中的所有用户数据生成的。每个条带的校验数据存储于该条带最尾端的page中。
84.在本实施例中,如图7所示,校验数据存储于block 7的中,当然在其它实施例中,校验数据可存储在其它的block中。
85.上述ssd raid优化装置可以实现为计算机程序的形式,该计算机程序可以在如图3所示的计算机设备上运行。
86.请参阅图3,图3是本技术实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是服务器,其中,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集。
87.如图3所示,该计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现如上述的ssd raid优化方法步骤。
88.该计算机设备700可以是终端或服务器。该计算机设备700包括通过系统总线710连接的处理器720、存储器和网络接口750,其中,存储器可以包括非易失性存储介质730和内存储器740。
89.该非易失性存储介质730可存储操作系统731和计算机程序732。该计算机程序732被执行时,可使得处理器720执行任意一种ssd raid优化方法。
90.该处理器720用于提供计算和控制能力,支撑整个计算机设备700的运行。
91.该内存储器740为非易失性存储介质730中的计算机程序732的运行提供环境,该计算机程序732被处理器720执行时,可使得处理器720执行任意一种ssd raid优化方法。
92.该网络接口750用于进行网络通信,如发送分配的任务等。本领域技术人员可以理解,图3中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备700的限定,具体的计算机设备700可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。其中,所述处理器720用于运行存储在存储器中的程序代码,以实现以下步骤:
93.一种ssd raid优化方法,包括:
94.设定条带所需的page数量;
95.为每个条带分配相同数量的page,且每个条带的出错概率保持相同。
96.在一实施例中:所述为每个条带分配相同数量的page,且每个条带的出错概率保持相同,包括:
97.选择与一个条带所需的page数量相等数量的物理块;
98.分别从每个物理块中分配一个page组合构成一个条带。
99.在一实施例中:每一个条带中均包括不同出错等级的page。
100.在一实施例中:不同出错等级的page分别为第一类型page、第二类型page、第三类型page以及第四类型page,第一类型page、第二类型page、第三类型page和第四类型page之间的出错概率大小关系为:第一类型page大于第二类型page,第二类型page大于第三类型page,第三类型page大于第四类型page。
101.在一实施例中:每个条带中一个page用于存储校验数据,其余page用于存储用户数据。
102.在一实施例中:每个条带中的校验数据是根据该条带中的所有用户数据生成的。
103.应当理解,在本技术实施例中,处理器720可以是中央处理单元(central processing unit,cpu),该处理器720还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
104.本领域技术人员可以理解,图3中示出的计算机设备700结构并不构成对计算机设备700的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
105.在本发明的另一实施例中提供了一种计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现本发明实施例公开的ssd raid优化方法。
106.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
107.在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
108.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
109.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
110.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有
技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、磁碟或者光盘等各种可以存储程序代码的介质。
111.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

技术特征:


1.一种ssd raid优化方法,其特征在于,包括:设定条带所需的page数量;为每个条带分配相同数量的page,且每个条带的出错概率保持相同。2.根据权利要求1所述的一种ssd raid优化方法,其特征在于,所述为每个条带分配相同数量的page,且每个条带的出错概率保持相同,包括:选择与一个条带所需的page数量相等数量的物理块;分别从每个物理块中分配一个page组合构成一个条带。3.根据权利要求2所述的一种ssd raid优化方法,其特征在于,每一个条带中均包括不同出错等级的page。4.根据权利要求3所述的一种ssd raid优化方法,其特征在于,不同出错等级的page分别为第一类型page、第二类型page、第三类型page以及第四类型page,第一类型page、第二类型page、第三类型page和第四类型page之间的出错概率大小关系为:第一类型page大于第二类型page,第二类型page大于第三类型page,第三类型page大于第四类型page。5.根据权利要求1所述的一种ssd raid优化方法,其特征在于,每个条带中一个page用于存储校验数据,其余page用于存储用户数据。6.根据权利要求5所述的一种ssd raid优化方法,其特征在于,每个条带中的校验数据是根据该条带中的所有用户数据生成的。7.一种ssd raid优化装置,其特征在于,包括设定单元以及分配单元;所述设定单元,用于设定条带所需的page数量;所述分配单元,用于为每个条带分配相同数量的page,且每个条带的出错概率保持相同。8.一种计算机设备,其特征在于,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1~6中任意一项所述的ssd raid优化方法。9.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时,使得所述处理器执行如权利要求1~6任意一项所述的ssd raid优化方法。

技术总结


本发明实施例公开了一种SSD RAID优化方法、装置、设备及存储介质,其中方法包括:设定条带所需的Page数量;为每个条带分配相同数量的Page,且每个条带的出错概率保持相同;为每个条带分配相同数量的Page,且每个条带的出错概率保持相同,包括:选择与一个条带所需的Page数量相等数量的物理块;分别从每个物理块中分配一个Page组合构成一个条带。本发明通过将不同出错概率的Page均匀地分配到不同的条带中,使得每个条带的出错概率保持相同,避免了某个条带内出现多个物理页损坏的概率,提升了RAID数据保护能力。了RAID数据保护能力。了RAID数据保护能力。


技术研发人员:

王猛 徐伟华 李建

受保护的技术使用者:

苏州忆联信息系统有限公司

技术研发日:

2022.09.16

技术公布日:

2022/12/9

本文发布于:2024-09-21 08:05:54,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/34540.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:条带   类型   数据   概率
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议