一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于SSD的RAID实现方法、装置、可读存储介质及电子设备与流程

2022-06-11 14:58:25 来源:中国专利 TAG:
基于ssd的raid实现方法、装置、可读存储介质及电子设备
技术领域
1.本发明涉及数据存储技术领域,尤其涉及一种基于ssd的raid实现方法、装置、可读存储介质及电子设备。


背景技术:

2.目前主流的企业级ssd(solid state drives,固态硬盘)主控都会支持raid(redundant arrays of independent drives,磁盘阵列)功能,但大部分的raid机制类似于raid4的实现,即将条带的xor(异或) parity(校验)数据保存在固定的plane(面)位置;具体的data(有效数据) parity数据分布如图4所示,这样的布局有优点也有缺陷,优点在于实现比较简单;缺点在于所有的parity数据保存在同一个plane上,使所有的读写压力集中在剩余的plane的区域,影响ssd这种依赖读写次数的介质的使用寿命。


技术实现要素:

3.本发明所要解决的技术问题是:提供一种基于ssd的raid实现方法、装置、可读存储介质及电子设备,能够延长ssd的使用寿命。
4.为了解决上述技术问题,本发明采用的一种技术方案为:一种基于ssd的raid实现方法,包括步骤:接收ssd的校验位置确定请求;根据所述校验位置确定请求按照预设间隔确定每一条带上的校验位置;确定校验数据,并将所述校验数据写入所述校验位置。
5.为了解决上述技术问题,本发明采用的另一种技术方案为:一种基于ssd的raid实现装置,包括:请求接收模块,用于接收ssd的校验位置确定请求;校验位置确定模块,用于根据所述校验位置确定请求按照预设间隔确定每一条带上的校验位置;数据写入模块,用于确定校验数据,并将所述校验数据写入所述校验位置。
6.为了解决上述技术问题,本发明采用的另一种技术方案为:一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种基于ssd的raid实现方法中的各个步骤。
7.为了解决上述技术问题,本发明采用的另一种技术方案为:一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种基于ssd的raid实现方法中的各个步骤。
8.本发明的有益效果在于:根据校验位置确定请求按照预设间隔确定每一条带上的校验位置,确定校验数据,并将校验数据写入校验位置,实现了raid功能,不再像现有技术中,将所有校验(parity)数据固定保存在同一个面(plane)上,而是按照预设间隔确定每一
条带的校验位,使得校验位置分散在不同面上,再将校验数据写入校验位置,能够将校验数据均匀保存在不同面上,避免将所有的读写压力集中在剩余面区域,以将读写压力分散在所有面上,提高了读写性能,延长了ssd的使用寿命。
附图说明
9.图1为本发明实施例的一种基于ssd的raid实现方法的步骤流程图;图2为本发明实施例的一种基于ssd的raid实现装置的结构示意图;图3为本发明实施例的一种电子设备的结构示意图;图4为现有技术的raid4的实现示意图;图5为本发明实施例的基于ssd的raid实现方法中的校验位布局示意图;图6为本发明实施例的基于ssd的raid实现方法中的出现plane失效的示意图。
具体实施方式
10.为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
11.请参照图1,本发明实施例提供了一种基于ssd的raid实现方法,包括步骤:接收ssd的校验位置确定请求;根据所述校验位置确定请求按照预设间隔确定每一条带上的校验位置;确定校验数据,并将所述校验数据写入所述校验位置。
12.从上述描述可知,本发明的有益效果在于:根据校验位置确定请求按照预设间隔确定每一条带上的校验位置,确定校验数据,并将校验数据写入校验位置,实现了raid功能,不再像现有技术中,将所有校验(parity)数据固定保存在同一个面(plane)上,而是按照预设间隔确定每一条带的校验位置,使得校验位置分散在不同面上,再将校验数据写入校验位置,能够将校验数据均匀保存在不同面上,避免将所有的读写压力集中在剩余面区域,以将读写压力分散在所有面上,提高了读写性能,延长了ssd的使用寿命。
13.进一步地,所述根据所述校验位置确定请求按照预设间隔确定每一条带上的校验位之前包括:获取面总数和预设存储利用率,并根据所述预设存储利用率确定预设值;根据所述面总数和预设值确定预设间隔。
14.由上述描述可知,根据预设存储利用率确定预设值,例如要求plane总数为16,用现有raid4的方式存储利用率为15/16,而本发明存储利用率最大为14/15,当存储利用率可以比较低时,可以确定预设值为3或4,即可以设置较多的校验位置;根据面总数和预设值确定预设间隔,可根据实际情况进行预设间隔的灵活设置,预设间隔越大,在面总数相同的情况下校验位置的个数越少,纠错计算量越大,可根据不同场景的实际情况确定预设间隔以兼顾存储性能和纠错需求,且根据面总数和预设值共同确定预设间隔,能够保证预设间隔与面总数不相等,进而确保校验位置分散在不同面上,保证了raid实现的灵活性。
15.进一步地,所述根据所述面总数和预设值确定预设间隔包括:将所述面总数和预设值进行减运算,得到预设间隔。
16.由上述描述可知,将面总数和预设值进行减运算,得到预设间隔,能够使每一行
page上都存在一个校验位置,且校验位置分散在不同的面上,进一步提高了校验数据的分散程度,进而分散了读写压力。
17.进一步地,所述根据所述校验位置确定请求按照预设间隔确定每一条带上的校验位置包括:根据所述校验位置确定请求从预设页位置开始按照预设间隔确定目标校验位置;将所述目标校验位置标记为预设页位置,并返回执行所述根据所述校验位置确定请求从预设页位置开始按照预设间隔确定目标校验位置步骤,直至剩余页的数量小于所述预设间隔。
18.由上述描述可知,从预设页位置开始按照预设间隔确定目标校验位置,将目标校验位置标记为预设页位置,再重复执行确定目标校验位置步骤,直至剩余页的数量小于预设间隔,以此实现了校验位置的确定,与现有技术相比,虽然降低了利用率,但将读写压力分散在不同面上,大大提高了读写性能,延长了ssd的使用寿命。
19.进一步地,所述确定校验数据之前包括:接收数据写入请求,所述数据写入请求包括待写入数据;所述确定校验数据包括:根据所述数据写入请求确定目标页;将所述待写入数据写入所述目标页,并判断下一目标页是否为所述校验位置,若是,则根据所述校验位置对应的待写入数据确定校验数据,若否,则返回执行所述将所述待写入数据写入所述目标页步骤,直至所述待写入数据均已写入。
20.由上述描述可知,将待写入数据写入目标页,并判断下一目标页是否为校验位置,若是,则根据校验位置对应的待写入数据确定校验数据,在后续出现plane失效时,可根据对应的校验数据进行准确恢复,从而保证数据存储的可靠性。
21.进一步地,所述根据所述校验位置对应的待写入数据确定校验数据包括:将所述校验位置对应的待写入数据进行异或运算,得到校验数据。
22.由上述描述可知,将校验位置对应的待写入数据进行异或运算,得到校验数据,从而实现了校验数据的计算,异或运算能够实现逆推,从而能够在后续需要时恢复出待写入数据。
23.进一步地,所述预设值为2。
24.由上述描述可知,将预设值设置为2,校验位置在各个面上的分布最平均,且对于可写入块的利用率最高。
25.请参照图2,本发明另一实施例提供了一种基于ssd的raid实现装置,包括:请求接收模块,用于接收ssd的校验位置确定请求;校验位置确定模块,用于根据所述校验位置确定请求按照预设间隔确定每一条带上的校验位置;数据写入模块,用于确定校验数据,并将所述校验数据写入所述校验位置。
26.本发明另一实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述一种基于ssd的raid实现方法中的各个步骤。
27.请参照图3,本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上
述一种基于ssd的raid实现方法中的各个步骤。
28.本发明上述的基于ssd的raid实现方法、装置、可读存储介质及电子设备能够适用于任何类型的ssd,比如基于闪存的ssd或基于dram(动态随机存取存储器,dynamic random access memory)的ssd,以下通过具体实施方式进行说明:实施例一请参照图1,本实施例的一种基于ssd的raid实现方法,包括步骤:s1、接收ssd的校验位置确定请求;s2、获取面总数和预设存储利用率,并根据所述预设存储利用率确定预设值;s3、根据所述面总数和预设值确定预设间隔,具体包括:s3.1、将所述面总数和预设值进行减运算,得到预设间隔;本实施例中,所述预设值为2;假设plane(面)总数为10,那么10-2=8,得到预设间隔为8;s4、根据所述校验位置确定请求按照预设间隔确定每一条带上的校验位置,具体包括:s4.1、根据所述校验位置确定请求从预设页位置开始按照预设间隔确定目标校验位置;其中,所述预设页位置为位于首位的页的位置;s4.2、将所述目标校验位置标记为预设页位置,并返回执行所述s4.1步骤,直至剩余页的数量小于所述预设间隔;比如,预设页位置为第一个page(页),预设间隔为5,那么确定目标校验位置位于第六个page,将第六个page标记为预设页位置,则可以确定下一目标校验位置位于第十二个page,再将第十二个page标记为预设页位置,重复执行目标校验位置确定步骤,直至剩余页的数量小于预设间隔;在一种可选的实施方式中,所述直至剩余页的数量小于预设间隔之后还包括:从数量小于所述预设间隔的剩余页中确定末位页位置,并将所述末位页位置确定为目标校验位置从而确定出所有校验位置;s5、接收数据写入请求,所述数据写入请求包括待写入数据;s6、确定校验数据,并将所述校验数据写入所述校验位置,具体包括:s6.1、根据所述数据写入请求确定目标页;s6.2、将所述待写入数据写入所述目标页,并判断下一目标页是否为所述校验位置,若是,则执行s6.3,若否,则返回执行所述s6.2步骤,直至所述待写入数据均已写入;s6.3、根据所述校验位置对应的待写入数据确定校验数据,具体包括:将所述校验位置对应的待写入数据进行异或运算,得到校验数据;比如,校验位置parity0(校验0)对应的待写入数据为page0(页0)、page1、page2和page3,parity0的校验数据= page0 xor page1 xor page2 xor page3;s6.4、将所述校验数据写入所述校验位置。
29.实施例二请参照图5和图6,本实施例在实施例一的基础上将上述的基于ssd的raid实现方法应用到实际应用场景中,具体为:如图5所示,存在8个plane(面),即plane总数为8,预设存储利用率为6/7,预设值
为2,则预设间隔为6,预设页位置为channel0/cell0/plane0/page_0(通道0/颗粒0/面0/页_0),则依次确定第一校验位置parity_0(校验_0)、第二校验位置parity_1(校验_1)、第三校验位置parity_2(校验_2)、第四校验位置parity_3(校验_3)、第五校验位置parity_4(校验_4)、第六校验位置parity_5(校验_5)、第七校验位置parity_6(校验_6)、第八校验位置parity_7(校验_7)和第九校验位置parity_8(校验_8),依此类推,确定出所有的校验位置;接收到数据写入请求后,将待写入数据依次写入ssd中,由于校验位置parity_0对应的待写入数据为page_0(页_0)、page_1(页_1)、page_2(页_2)、page_3(页_3)、page_4(页_4)和page_5(页_5),parity_0=page_0xor page_1 xor page_2 xor page_3 xor page_4 xor page_5,由于校验位置parity_1对应的待写入数据为page_6(页_6)、page_7(页_7)、page_8(页_8)、page_9(页_9)、page_10(页_10)和page_11(页_11),parity_1=page_6 xor page_7 xor page_8 xor page_9 xor page_10 xor page_11,依此类推;如图6所示,当channel0/cell1/plane1(通道0/颗粒1/面1)出现了失效,则page_3通过parity_0恢复,page_10通过parity_1恢复,page_15通过parity_2恢复,依此类推,即可恢复channel0/cell1/plane1上的所有数据;现有技术的raid4方案只能支持一个plane失效,存储利用率为(plane总数-1) /plane总数,读写压力集中在数据plane上,而本发明上述的基于ssd的raid实现方法支持一个plane失效,由于校验数据是均匀分布的,所以当出现两个plane失效时,且对应条带上存在两份parity数据时,失效数据组合为parity data,失效的data数据(元数据)能够被恢复,因此某些条带支持两个plane数据失效,存储利用率为(plane总数-2) /(plane总数-1),读写压力分散在所有plane上,因此,与现有技术相比,上述的基于ssd的raid实现方法虽然利用率降低了,但提高了可靠性和读写性能,延长了ssd的使用寿命。
30.实施例三请参照图2,一种基于ssd的raid实现装置,包括:请求接收模块,用于接收ssd的校验位置确定请求;校验位置确定模块,用于根据所述校验位置确定请求按照预设间隔确定每一条带上的校验位置;数据写入模块,用于确定校验数据,并将所述校验数据写入所述校验位置。
31.实施例四一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时可实现实施例一或二中基于ssd的raid实现方法的各个步骤。
32.实施例五请参照图3,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现实施例一或二中基于ssd的raid实现方法的各个步骤。
33.综上所述,本发明提供的一种基于ssd的raid实现方法、装置、可读存储介质及电子设备,根据面总数和预设值确定预设间隔,根据接收的校验位置确定请求按照预设间隔确定每一条带上的校验位置;确定校验数据,并将所述校验数据写入所述校验位置,可根据实际情况进行预设间隔的灵活设置,预设间隔越大,在面总数相同的情况下校验位置的个数越少,纠错计算量越大,可根据不同场景的实际情况确定预设间隔以兼顾存储性能和纠
错需求,且根据预设存储利用率确定预设值,再根据面总数和预设值共同确定预设间隔,能够保证预设间隔与面总数不相等,进而确保校验位置分散在不同面上,保证了raid实现的灵活性;校验位置分散在不同面上,再将校验数据写入校验位置,能够将校验数据均匀保存在不同面上,避免将所有的读写压力集中在剩余面区域,以将读写压力分散在所有面上,提高了读写性能,延长了ssd的使用寿命。
34.在本技术所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
35.所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
36.另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
37.所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
38.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
39.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
40.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献