System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于ZNS固态硬盘Raid实现方法技术_技高网

一种基于ZNS固态硬盘Raid实现方法技术

技术编号:40000440 阅读:5 留言:0更新日期:2024-01-09 03:25
本申请提供一种基于ZNS固态硬盘Raid的实现方法,可以根据用户属性灵活设置映射方式和Zone区的空间大小,针对不同用户属性,可选择性的利用ZNS固态硬盘实现Raid的创建,避免了现有的方案中必须采用多个硬盘的缺陷。同时,可以选择性对全部数据或者关键数据开启Raid,提升数据稳定性以及数据保护的灵活性,并减少对于ZNS SSD I/O性能的影响。进一步将关键数据缓存区和通用数据缓存区进行转移配置到系统的易失性存储器中,提高了计算速度以及频繁写、覆盖写导致的写放大。

【技术实现步骤摘要】

本专利技术一种固态硬盘存储领域,具体的涉及一种zns固态硬盘raid的实现方法,包含raid条带的组建,raid校验数据的生成和写入。


技术介绍

1、固态硬盘(solid state drive,ssd)是用固态电子存储芯片阵列而制成的硬盘,ssd由控制单元和存储单元(flash芯片、dram芯片)等组成。与传统的机械硬盘不同,固态硬盘内部没有可以移动的部件,不需要进行旋转和寻道,因此其具备访问延迟相对较低,功耗低,抗振动等优点。随着数据库时代的到来,单独的固态硬盘不能满足对于数据存储和访问的需求。raid(redundant arrays of independent disks)技术可以将多块较为廉价的硬盘组成一个磁盘阵列,从而有效提升系统的性能,即raid将多块磁盘以集群的方式组合在一起,构成了一个虚拟硬盘,从而操作系统可以将其作为一块硬盘来使用。写入文件时,文件的数据被拆分为大小相等的小数据块,依次按照一定的顺序存在硬盘中。通过raid可以满足当前数据库的访问量大,存储容量要求高以及并行访问性能高等新要求。

2、在传统的raid中,一种方案是将多个固态硬盘按照传统机械硬盘的方式组合在一起,这需要额外较多的固态硬盘,传统的raid技术是针对机械硬盘等设计,当前传统ssd由于块(block)接口和存储介质特征不匹配引发一些问题,如:预留空间会占用大量有效容量,映射表占用大量dram空间、gc(垃圾回收)导致大量开销等;另一种方案是将固态硬盘内部分为多个分区,各个分区根据flash特点进行管理,该方案增加了固态硬盘内部raid复杂度,兼容性较差。

3、进一步,传统的ssd的raid条带在创建raid时被同时创建,同一个raid中,每个条带的深度都是一致的。一般情况下,条带深度(stripe size)被设置为等于上层应用i/o块大小,使得在i/o读写时,条带数据可以均匀分布到所有硬盘中,提高了数据传输效率。但不同的应用程序所需最佳的条带深度不同。例如,视频类应用适用于1m及以上的条带深度,但数据库类数据适用于8-16kb或者16-64k的条带深度。因此,固定的条带深度在实际应用中不能满足全部应用场景的最佳条件。

4、zns(zoned namespace,分区命令空间)作为一种新接口出现在大众视野, zone是namespace内的一种固定大小的子区间,每个zone都有一段连续的lba(逻辑地址空间)区间,该段区间只能顺序写。若要覆盖写,则必须进行一次reset操作。在接口工作方式上,znsssd和常规ssd不相同,接口与现有raid接口并能不相互适应匹配,这导致zns ssd的性能不能得到充分发挥,因此针对zns ssd实现raid,现有的方案不能满足实际的需求,zns ssd特性不能得到充分的发挥和利用。


技术实现思路

1、本申请提出一种基于zns固态硬盘raid实现方法,可以根据用户特性灵活配置映射方式和zone区的空间大小,有针对性的实现zns固态硬盘raid的创建。同时,可以选择性对数据开启raid,提升数据稳定性并减少对于zns ssd性能的影响,进一步将关键数据缓存区和通用数据缓存区进行转移配置到系统的易失性存储器中,提高了计算速度以及频繁写和覆盖导致的写放大。

2、本申请提出一种基于zns固态硬盘raid的实现方法,包括以下步骤:

3、1)初始化步骤:获取zns ssd信息,选择设置用户属性,并根据所述用户属性对znsssd进行初始化操作,确定raid计算阈值;

4、2)配置zone映射方式,所述zone映射方式由横向映射和纵向映射组成,所述横向映射被定义为:一个zone作为一个raid条带,作为row zone;所述纵向映射被定义为:一个zone映射一个die,多个zone组建作为一个raid条带,作为row zone;raid控制器根据所述映射方式创建row zone,所述row zone中至少包括first die、raid die和bad die的信息,打开目标zone并分配raidid,启动raid数据写入;所述raid控制器比较判断zone内累计写入数据量和raid计算阈值;

5、3)当zone内写入的数据量达到raid计算阈值后,就会启动raid模块将raidbuff中的校验数据写到raid die上,同时释放占用的raidid。

6、进一步,根据所述用户属性对zns ssd进行初始化操作步骤至少包括根据所述信息和所述用户属性,将lba划分为若干个大小相同或大小不同的zone区,所述信息至少包括die数量n,plane数量m以及硬盘容量。

7、进一步,所述用户属性包括普通用户、数据库用户。

8、进一步,所述first die、bad die和raid die通过ftl转化层记录在row zone中,在row zone写入数据时跳过bad die。

9、进一步,当用户属性为普通用户时,所述映射方式被配置为横向映射,zone数量根据需要配置;当用户属性为数据库用户,所述映射方式被配置为纵向映射,zone数量被配置为n的整数倍。

10、进一步,raid计算阈值计算公式为:raid计算阈值=n*m-1。

11、进一步,所述启动raid数据写入步骤进一步包括,目标zone被写入用户数据物理页时,向raidbuff备份相同的备份数据,并将所述备份数据与前次数据进行异或计算后重新存入raidbuff中。

12、进一步,所属初始化步骤还包括设置一系统内存区域作为缓冲区,所述缓冲区至少包括第一缓冲区和第二缓冲区。

13、进一步,所述第一缓冲区用于存储关键数据的数据校验,所述第二缓冲区用于存储通用数据的数据校验。

14、进一步,所述初始化步骤1)进一步包括:所述初始化步骤包括将zns ssd配置为由若干个2k kb大小的zone组成,其中k为正整数,当所述用户属性为普通用户时,7≤k≤10;当所述用户属性为数据库用户时,2≤k≤6。

15、本专利技术的有益效果:

16、1. 针对用户特性,灵活选择配置横向或者纵向映射方式实现zns固态硬盘raid的创建,可以满足对于raid高读写速率以及多并发请求的要求。

17、2. 可选择性针对关键数据开启raid,提升关键数据稳定性的同时避免了系统的raid开销,减轻对性能的影响。

18、3. 根据用户特性,预设条带深度,使得应用场景与条带深度可以进行相互匹配。在同一raid中,不同实际应用下条带深度可以配置为不同,提高了raid的灵活性和适应性,条带深度适配应用场景的最佳条件。

19、4. 充分利用了zns ssd的每个zone内是顺序写入,不同的zone之间写入不相互干扰的特点,zns ssd中设置有多个zone以及row zone,可以并行写入,并根据系统i/o宽度动态调整条带宽度,提高了系统的写执行效率,避免了条本文档来自技高网...

【技术保护点】

1.一种基于ZNS固态硬盘Raid的实现方法,包括以下步骤:

2.根据权利要求1所述的一种基于ZNS固态硬盘Raid的实现方法,其特征在于,根据所述用户属性对ZNS SSD进行初始化操作步骤至少包括根据所述信息和所述用户属性,将LBA划分为若干个大小相同或大小不同的Zone区,所述信息至少包括Die数量N,plane数量M以及硬盘容量。

3.根据权利要求2所述的一种基于ZNS固态硬盘Raid的实现方法,其特征在于,所述用户属性包括普通用户或数据库用户。

4.根据权利要求3所述的一种基于ZNS固态硬盘Raid的实现方法,其特征在于,所述First Die、Bad Die和Raid Die通过FTL转化层记录在ROW Zone中,写入数据时Bad Die被跳过。

5.根据权利要求4所述的一种基于ZNS固态硬盘Raid的实现方法,其特征在于,当用户属性为普通用户时,所述映射方式被配置为横向映射,Zone数量根据需要配置;当用户属性为数据库用户,所述映射方式被配置为纵向映射,Zone数量被配置为N的整数倍。

6.根据权利要求2所述的一种基于ZNS固态硬盘Raid的实现方法,其特征在于,Raid计算阈值计算公式为:Raid计算阈值=N*M-1。

7.根据权利要求1所述的一种基于ZNS固态硬盘Raid的实现方法,其特征在于,所述启动Raid数据写入步骤进一步包括,目标Zone被写入用户数据物理页时,向Raidbuff备份相同的备份数据,并将所述备份数据与前次数据进行异或计算后重新存入Raidbuff中。

8.根据权利要求1所述的一种基于ZNS固态硬盘Raid的实现方法,其特征在于,所属初始化步骤还包括设置一系统内存区域作为缓冲区,所述缓冲区至少包括第一缓冲区和第二缓冲区。

9.根据权利要求8所述的一种基于ZNS固态硬盘Raid的实现方法,其特征在于,所述第一缓冲区用于存储关键数据的数据校验,所述第二缓冲区用于存储通用数据的数据校验。

10.根据权利要求1所述的一种基于ZNS固态硬盘Raid的实现方法,其特征在于,所述初始化步骤1)进一步包括:所述初始化步骤包括将ZNS SSD配置为由若干个2k Kb大小的Zone组成,其中k为正整数,当所述用户属性为普通用户时,7≤k≤10;当所述用户属性为数据库用户时,2≤k≤6。

...

【技术特征摘要】

1.一种基于zns固态硬盘raid的实现方法,包括以下步骤:

2.根据权利要求1所述的一种基于zns固态硬盘raid的实现方法,其特征在于,根据所述用户属性对zns ssd进行初始化操作步骤至少包括根据所述信息和所述用户属性,将lba划分为若干个大小相同或大小不同的zone区,所述信息至少包括die数量n,plane数量m以及硬盘容量。

3.根据权利要求2所述的一种基于zns固态硬盘raid的实现方法,其特征在于,所述用户属性包括普通用户或数据库用户。

4.根据权利要求3所述的一种基于zns固态硬盘raid的实现方法,其特征在于,所述first die、bad die和raid die通过ftl转化层记录在row zone中,写入数据时bad die被跳过。

5.根据权利要求4所述的一种基于zns固态硬盘raid的实现方法,其特征在于,当用户属性为普通用户时,所述映射方式被配置为横向映射,zone数量根据需要配置;当用户属性为数据库用户,所述映射方式被配置为纵向映射,zone数量被配置为n的整数倍。

6.根据权利要求2所述的一种基于zns固态硬盘ra...

【专利技术属性】
技术研发人员:钱鹏刘兴斌邢培栋
申请(专利权)人:武汉麓谷科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1