一种数据请求方法、装置、设备及存储介质制造方法及图纸

技术编号:37159423 阅读:18 留言:0更新日期:2023-04-06 22:23
本申请涉及存储技术领域,公开了一种数据请求方法、装置、设备及存储介质,应用于磁盘阵列卡,包括:获取主机侧发送的输入输出请求;确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树;所述双向链表B+树的叶子节点对与所述输入输出请求的类型对应的元数据映射节点维护的映射关系进行存储;映射关系为数据的逻辑地址与物理地址之间的映射关系;基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,并根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据。本申请能够灵活、快速、高效地维护逻辑地址与物理地址之间TB级的映射关系,提升磁盘阵列卡的存储性能。提升磁盘阵列卡的存储性能。提升磁盘阵列卡的存储性能。

【技术实现步骤摘要】
一种数据请求方法、装置、设备及存储介质


[0001]本专利技术涉及存储
,特别涉及一种数据请求方法、装置、设备及存储介质。

技术介绍

[0002]近年来,磁盘阵列卡(RAID卡)在存储领域应用广泛,主要分为软RAID存储和硬RAID存储,顾名思义硬RAID存储就是将软RAID存储中的一些算法、数据管理以及一些功能都交给硬件管理和实现,以达到提高存储系统的I/O性能。在大数据时代,海量数据的存储需要写入硬盘,数据写入硬盘的速度成为影响存储性能的关键。HDD盘(Hard Disk Drive)是一种机械硬盘,它的读写速度最快是120M/S,无法满足海量数据的快速读写,因此业界使用闪存flash芯片研发出了SSD盘(Solid State Disk),SSD盘的读写速度远大于HDD盘,可以达到500M/S。业界希望使用SSD盘全面取代HDD盘,进而提高整个存储系统的存储性能。但是SSD盘无论是增加新数据还是修改旧数据都需要在新的位置进行写入。
[0003]这导致RAID卡在使用SSD盘进行物理存储的时候存在天然的以下缺点:不管是修改内容还是增加内容,都是以追加的方式写入闪存中,实际存储地址空间不会被限制到一块区域中,并且追加写的方式导致实际的物理地址分布很零散,不能使用原先的大块偏移+小块偏移的方式做映射;SSD盘中的全部flash闪存需要更多的元数据映射节点来保存这种上下映射关系,在PB级存储中,这种映射关系需要的存储量也是TB级,需要重新设计针对TB级映射关系的存储使用方法。
[0004]因此,上述技术问题亟待本领域技术人员解决。

技术实现思路

[0005]有鉴于此,本专利技术的目的在于提供一种数据请求方法、装置、设备及存储介质,能够灵活、快速、高效地维护逻辑地址与物理地址之间TB级的映射关系,提升磁盘阵列卡的存储性能。其具体方案如下:本申请的第一方面提供了一种数据请求方法,应用于磁盘阵列卡,包括:获取主机侧发送的输入输出请求;确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树;其中,所述双向链表B+树的叶子节点对与所述输入输出请求的类型对应的元数据映射节点维护的映射关系进行存储;映射关系为数据的逻辑地址与物理地址之间的映射关系;基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,并根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据。
[0006]可选的,所述确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树,包括:如果所述输入输出请求的类型为读请求,则将第一双向链表B+树确定为所述双向链表B+树;所述第一双向链表B+树的叶子节点对存储元数据读缓存节点维护的第一映射关
系进行存储;所述第一映射关系为读数据的读取逻辑地址与读取物理地址之间的映射关系;如果所述输入输出请求的类型为写请求,则将第二双向链表B+树确定为所述双向链表B+树;所述第二双向链表B+树的叶子节点对存储元数据写缓存节点维护的第二映射关系进行存储;所述第二映射关系为写数据的写入逻辑地址与写入物理地址之间的映射关系。
[0007]可选的,所述构建所述第一双向链表B+树时,还包括:向元数据读缓存节点资源池申请所述元数据读缓存节点,以利用所述第一双向链表B+树的叶子节点存储申请到的所述元数据读缓存节点维护的所述第二映射关系。
[0008]可选的,所述基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,包括:如果所述输入输出请求的类型为读请求,则基于所述元数据读缓存节点维护的所述第一映射关系确定出与所述读请求的所述读取逻辑地址对应的所述读取物理地址;如果所述输入输出请求的类型为写请求,则基于所述元数据写缓存节点维护的所述第二映射关系确定出与所述写请求的所述写入逻辑地址对应的所述写入物理地址。
[0009]可选的,所述根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据,包括:如果所述输入输出请求的类型为读请求,则从所述读取物理地址中对待读取数据进行读取,并将读取到的数据返回至所述主机侧;如果所述输入输出请求的类型为写请求,则将待写入数据写入所述写入物理地址。
[0010]可选的,所述基于所述元数据读缓存节点维护的所述第一映射关系确定出与所述读请求的所述读取逻辑地址对应的所述读取物理地址之前,还包括:根据所述读取逻辑地址判断缓存中是否存在所述待读取数据;如果是,则直接从缓存中读取所述待读取数据,并将读取到的数据返回至所述主机侧;如果否,则执行确定所述读取物理地址的步骤。
[0011]可选的,所述基于所述元数据写缓存节点维护的所述第二映射关系确定出与所述写请求的所述写入逻辑地址对应的所述写入物理地址之前,还包括:判断所述元数据写缓存节点维护的所述第二映射关系是否需要更改,如果否,则执行确定所述写入物理地址的步骤。
[0012]可选的,所述判断所述元数据写缓存节点维护的所述第二映射关系是否需要更改之后,还包括:如果是,则以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中。
[0013]可选的,所述以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中,包括:以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的磁盘阵列的对应条带中。
[0014]可选的,所述获取主机侧发送的输入输出请求之前,还包括:获取所述主机侧下发的阵列创建指令;控制阵列控制器根据所述阵列创建指令创建相应的磁盘阵列。
[0015]可选的,磁盘阵列为MDISK结构体。
[0016]可选的,所述以一个条带长度为单位将发生更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中之前,还包括:判断需要更改的所述元数据写缓存节点是否能够组成一个条带长度的数据,如果是,则执行以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中的步骤。
[0017]可选的,所述判断需要更改的所述元数据写缓存节点是否能够组成一个条带长度的数据之后,还包括:如果否,则将需要更改的所述元数据写缓存节点在缓存中的所述第二双向链表B+树中进行存储,直至需要更改的所述元数据写缓存节点能够组成一个条带长度的数据。
[0018]可选的,所述判断需要更改的所述元数据写缓存节点是否能够组成一个条带长度的数据,包括:判断需要更改的所述元数据写缓存节点的数量是否为一个条带长度所容纳的所述元数据写缓存节点的数量,如果是,则判定需要更改的所述元数据写缓存节点能够组成一个条带长度的数据。
[0019]可选的,所述双向链表B+树最底层叶子节点中存储的各个所述元数据映射节点通过双向链表连接在一起。
[0020]可选的,所述双向链表B+树支持顺序查找、逆序查找及地址区间查找。
[0021]可选的,所述双向链表B+树的单个节点的存储空间为512B。
[0022]本申请的第二方面提供了一种数据请求装置,应用于磁盘阵列本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据请求方法,其特征在于,应用于磁盘阵列卡,包括:获取主机侧发送的输入输出请求;确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树;其中,所述双向链表B+树的叶子节点对与所述输入输出请求的类型对应的元数据映射节点维护的映射关系进行存储;映射关系为数据的逻辑地址与物理地址之间的映射关系;基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,并根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据。2.根据权利要求1所述的数据请求方法,其特征在于,所述确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树,包括:如果所述输入输出请求的类型为读请求,则将第一双向链表B+树确定为所述双向链表B+树;所述第一双向链表B+树的叶子节点对存储元数据读缓存节点维护的第一映射关系进行存储;所述第一映射关系为读数据的读取逻辑地址与读取物理地址之间的映射关系;如果所述输入输出请求的类型为写请求,则将第二双向链表B+树确定为所述双向链表B+树;所述第二双向链表B+树的叶子节点对存储元数据写缓存节点维护的第二映射关系进行存储;所述第二映射关系为写数据的写入逻辑地址与写入物理地址之间的映射关系。3.根据权利要求2所述的数据请求方法,其特征在于,构建所述第一双向链表B+树时,还包括:向元数据读缓存节点资源池申请所述元数据读缓存节点,以利用所述第一双向链表B+树的叶子节点存储申请到的所述元数据读缓存节点维护的所述第二映射关系。4.根据权利要求2所述的数据请求方法,其特征在于,所述基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,包括:如果所述输入输出请求的类型为读请求,则基于所述元数据读缓存节点维护的所述第一映射关系确定出与所述读请求的所述读取逻辑地址对应的所述读取物理地址;如果所述输入输出请求的类型为写请求,则基于所述元数据写缓存节点维护的所述第二映射关系确定出与所述写请求的所述写入逻辑地址对应的所述写入物理地址。5.根据权利要求4所述的数据请求方法,其特征在于,所述根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据,包括:如果所述输入输出请求的类型为读请求,则从所述读取物理地址中对待读取数据进行读取,并将读取到的数据返回至所述主机侧;如果所述输入输出请求的类型为写请求,则将待写入数据写入所述写入物理地址。6.根据权利要求5所述的数据请求方法,其特征在于,所述基于所述元数据读缓存节点维护的所述第一映射关系确定出与所述读请求的所述读取逻辑地址对应的所述读取物理地址之前,还包括:根据所述读取逻辑地址判断缓存中是否存在所述待读取数据;如果是,则直接从缓存中读取所述待读取数据,并将读取到的数据返回至所述主机侧;如果否,则执行确定所述读取物理地址的步骤。7.根据权利要求6所述的数据请求方法,其特征在于,所述基于所述元数据写缓存节点维护的所述第二映射关系确定出与所述写请求的所述写入逻辑地址对应的所述写入物理地址之前,还包括:
判断所述元数据写缓存节点维护的所述第二映射关系是否需要更改,如果否,则执行确定所述写入物理地址的步骤。8.根据权利要求7所述的数据请求方法,其特征在于,所述判断所述元数据写缓存节点维护的所述第二映射关系是否需要更改之...

【专利技术属性】
技术研发人员:李飞龙王见孙明刚
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:

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

1