CN115904255A - 一种数据请求方法、装置、设备及存储介质 - Google Patents
一种数据请求方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN115904255A CN115904255A CN202310067378.2A CN202310067378A CN115904255A CN 115904255 A CN115904255 A CN 115904255A CN 202310067378 A CN202310067378 A CN 202310067378A CN 115904255 A CN115904255 A CN 115904255A
- Authority
- CN
- China
- Prior art keywords
- data
- metadata
- input
- tree
- linked list
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000013507 mapping Methods 0.000 claims abstract description 189
- 230000002457 bidirectional effect Effects 0.000 claims abstract description 59
- 230000015654 memory Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 5
- 230000002441 reversible effect Effects 0.000 claims description 4
- 239000004744 fabric Substances 0.000 claims 1
- 238000012986 modification Methods 0.000 claims 1
- 230000004048 modification Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000003491 array Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请涉及存储技术领域,公开了一种数据请求方法、装置、设备及存储介质,应用于磁盘阵列卡,包括:获取主机侧发送的输入输出请求;确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树;所述双向链表B+树的叶子节点对与所述输入输出请求的类型对应的元数据映射节点维护的映射关系进行存储;映射关系为数据的逻辑地址与物理地址之间的映射关系;基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,并根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据。本申请能够灵活、快速、高效地维护逻辑地址与物理地址之间TB级的映射关系,提升磁盘阵列卡的存储性能。
Description
技术领域
本发明涉及存储技术领域,特别涉及一种数据请求方法、装置、设备及存储介质。
背景技术
近年来,磁盘阵列卡(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盘无论是增加新数据还是修改旧数据都需要在新的位置进行写入。
这导致RAID卡在使用SSD盘进行物理存储的时候存在天然的以下缺点:不管是修改内容还是增加内容,都是以追加的方式写入闪存中,实际存储地址空间不会被限制到一块区域中,并且追加写的方式导致实际的物理地址分布很零散,不能使用原先的大块偏移+小块偏移的方式做映射;SSD盘中的全部flash闪存需要更多的元数据映射节点来保存这种上下映射关系,在PB级存储中,这种映射关系需要的存储量也是TB级,需要重新设计针对TB级映射关系的存储使用方法。
因此,上述技术问题亟待本领域技术人员解决。
发明内容
有鉴于此,本发明的目的在于提供一种数据请求方法、装置、设备及存储介质,能够灵活、快速、高效地维护逻辑地址与物理地址之间TB级的映射关系,提升磁盘阵列卡的存储性能。其具体方案如下:
本申请的第一方面提供了一种数据请求方法,应用于磁盘阵列卡,包括:
获取主机侧发送的输入输出请求;
确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树;其中,所述双向链表B+树的叶子节点对与所述输入输出请求的类型对应的元数据映射节点维护的映射关系进行存储;映射关系为数据的逻辑地址与物理地址之间的映射关系;
基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,并根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据。
可选的,所述确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树,包括:
如果所述输入输出请求的类型为读请求,则将第一双向链表B+树确定为所述双向链表B+树;所述第一双向链表B+树的叶子节点对存储元数据读缓存节点维护的第一映射关系进行存储;所述第一映射关系为读数据的读取逻辑地址与读取物理地址之间的映射关系;
如果所述输入输出请求的类型为写请求,则将第二双向链表B+树确定为所述双向链表B+树;所述第二双向链表B+树的叶子节点对存储元数据写缓存节点维护的第二映射关系进行存储;所述第二映射关系为写数据的写入逻辑地址与写入物理地址之间的映射关系。
可选的,所述构建所述第一双向链表B+树时,还包括:
向元数据读缓存节点资源池申请所述元数据读缓存节点,以利用所述第一双向链表B+树的叶子节点存储申请到的所述元数据读缓存节点维护的所述第二映射关系。
可选的,所述基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,包括:如果所述输入输出请求的类型为读请求,则基于所述元数据读缓存节点维护的所述第一映射关系确定出与所述读请求的所述读取逻辑地址对应的所述读取物理地址;
如果所述输入输出请求的类型为写请求,则基于所述元数据写缓存节点维护的所述第二映射关系确定出与所述写请求的所述写入逻辑地址对应的所述写入物理地址。
可选的,所述根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据,包括:
如果所述输入输出请求的类型为读请求,则从所述读取物理地址中对待读取数据进行读取,并将读取到的数据返回至所述主机侧;
如果所述输入输出请求的类型为写请求,则将待写入数据写入所述写入物理地址。
可选的,所述基于所述元数据读缓存节点维护的所述第一映射关系确定出与所述读请求的所述读取逻辑地址对应的所述读取物理地址之前,还包括:
根据所述读取逻辑地址判断缓存中是否存在所述待读取数据;
如果是,则直接从缓存中读取所述待读取数据,并将读取到的数据返回至所述主机侧;
如果否,则执行确定所述读取物理地址的步骤。
可选的,所述基于所述元数据写缓存节点维护的所述第二映射关系确定出与所述写请求的所述写入逻辑地址对应的所述写入物理地址之前,还包括:
判断所述元数据写缓存节点维护的所述第二映射关系是否需要更改,如果否,则执行确定所述写入物理地址的步骤。
可选的,所述判断所述元数据写缓存节点维护的所述第二映射关系是否需要更改之后,还包括:
如果是,则以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中。
可选的,所述以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中,包括:
以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的磁盘阵列的对应条带中。
可选的,所述获取主机侧发送的输入输出请求之前,还包括:
获取所述主机侧下发的阵列创建指令;
控制阵列控制器根据所述阵列创建指令创建相应的磁盘阵列。
可选的,磁盘阵列为MDISK结构体。
可选的,所述以一个条带长度为单位将发生更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中之前,还包括:
判断需要更改的所述元数据写缓存节点是否能够组成一个条带长度的数据,如果是,则执行以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中的步骤。
可选的,所述判断需要更改的所述元数据写缓存节点是否能够组成一个条带长度的数据之后,还包括:
如果否,则将需要更改的所述元数据写缓存节点在缓存中的所述第二双向链表B+树中进行存储,直至需要更改的所述元数据写缓存节点能够组成一个条带长度的数据。
可选的,所述判断需要更改的所述元数据写缓存节点是否能够组成一个条带长度的数据,包括:
判断需要更改的所述元数据写缓存节点的数量是否为一个条带长度所容纳的所述元数据写缓存节点的数量,如果是,则判定需要更改的所述元数据写缓存节点能够组成一个条带长度的数据。
可选的,所述双向链表B+树最底层叶子节点中存储的各个所述元数据映射节点通过双向链表连接在一起。
可选的,所述双向链表B+树支持顺序查找、逆序查找及地址区间查找。
可选的,所述双向链表B+树的单个节点的存储空间为512B。
本申请的第二方面提供了一种数据请求装置,应用于磁盘阵列卡,包括:
请求获取模块,用于获取主机侧发送的输入输出请求;
双向链表B+树确定模块,用于确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树;其中,所述双向链表B+树的叶子节点对与所述输入输出请求的类型对应的元数据映射节点维护的映射关系进行存储;映射关系为数据的逻辑地址与物理地址之间的映射关系;
数据处理模块,用于基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,并根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据。
本申请的第三方面提供了一种电子设备,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现前述数据请求方法。
本申请的第四方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现前述数据请求方法。
本申请中,先获取主机侧发送的输入输出请求;然后确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树;其中,所述双向链表B+树的叶子节点对与所述输入输出请求的类型对应的元数据映射节点维护的映射关系进行存储;映射关系为数据的逻辑地址与物理地址之间的映射关系;最后基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,并根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据。可见,本申请通过设计双向链表B+树存储元数据映射节点维护的映射关系,灵活、快速、高效地维护逻辑地址与物理地址之间TB级的映射关系,在进行输入输出请求时,以双向链表B+树为基础确定出数据读取或写入的物理地址并读取或写入相应数据,能够提升磁盘阵列卡的存储性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请提供的一种数据请求方法流程图;
图2为本申请提供的一种具体的映射关系示例图;
图3为本申请提供的一种具体的双向链表B+树的具体设计结构框图;
图4为本申请提供的一种具体的双向链表示例图;
图5为本申请提供的一种具体的数据请求方法流程图;
图6为本申请提供的一种具体的数据请求方法流程图;
图7为本申请提供的一种具体的RAID5阵列中stripe条带示例图;
图8为本申请提供的一种数据请求装置结构示意图;
图9为本申请提供的一种数据请求电子设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有RAID卡在使用SSD盘进行物理存储的时候存在很多天然缺点,例如,不管是修改内容还是增加内容,都是以追加的方式写入闪存中,实际存储地址空间不会被限制到一块区域中,并且追加写的方式导致实际的物理地址分布很零散,不能使用原先的大块偏移+小块偏移的方式做映射;又或者SSD盘中的全部flash闪存需要更多的元数据映射节点来保存这种上下映射关系,在PB级存储中,这种映射关系需要的存储量也是TB级,需要重新设计针对TB级映射关系的存储使用方法。针对上述技术缺陷,本申请提供一种数据请求方案,通过设计双向链表B+树存储元数据映射节点维护的映射关系,灵活、快速、高效地维护逻辑地址与物理地址之间TB级的映射关系,在进行输入输出请求时,以双向链表B+树为基础确定出数据读取或写入的物理地址并读取或写入相应数据,能够提升磁盘阵列卡的存储性能。
图1为本申请实施例提供的一种数据请求方法流程图。参见图1所示,该数据请求方法应用于磁盘阵列卡,包括:
S11:获取主机侧发送的输入输出请求。
本实施例中,磁盘阵列卡先获取主机侧发送的输入输出请求。所述输入输出请求(I/O请求)的类型可以为读请求或写请求,所述磁盘阵列卡即RAID卡,由多个存储阵列(RAID阵列)、阵列控制器(RAID卡控制器)、CPU、内存等组件构成,存储阵列由多个SSD盘构成,SSD盘构成的RAID卡相比HDD盘构成的RAID卡具备更快速读写性能的优势。
S12:确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树;其中,所述双向链表B+树的叶子节点对与所述输入输出请求的类型对应的元数据映射节点维护的映射关系进行存储;映射关系为数据的逻辑地址与物理地址之间的映射关系。
本实施例中,确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树;其中,所述双向链表B+树的叶子节点对与所述输入输出请求的类型对应的元数据映射节点维护的映射关系进行存储;映射关系为数据的逻辑地址与物理地址之间的映射关系。这里的双向链表B+树结合了B+树和双向链表的优点,用于管理逻辑地址(LBA地址)到物理地址(PBA地址)的映射关系。所述双向链表B+树最底层叶子节点中存储的各个所述元数据映射节点通过双向链表连接在一起,所述双向链表B+树支持顺序查找、逆序查找及地址区间查找。且所述双向链表B+树的单个节点的存储空间为512B。
图2所示为一种映射关系的示例,将RAID卡中的各个RAID阵列作为多个MDISK结构体进行管理,如A1、B1、C1的PBA地址都是0-100,将A1、A2...B1、B2...C1、C2...等组成一个LUN卷的LBA地址,图1右下角所示用户在访问LBA-305、LBA-599后通过元数据映射节点转换为真实地址A-105、C-199。TB级元数据无法全部暂存在缓存中,需要借助磁盘进行元数据管理,本实施例设计使用将PB级空间映射按序分散到多个双向链表B+树上,双向链表B+树的单个节点使用512B的存储空间。
图3所示为双向链表B+树的具体设计结构框图示例。该双向链表B+树只有三层节点就可以查询六个RAID阵列构成的RAID卡的所有物理地址空间,同时为了实现在第三层节点更快速的地址查询,使用双向链表将第三层节点中的各个元数据读缓存节点连接在一起,这样就可以支持各个RAID阵列的顺序查找和逆序查找。用户访问的LBA地址305和599只需要通过图2中B+树第二层节点进行一次地址区间的判断,判断LBA-305在B+树第二层第一个节点指向的第三层地址区间、LBA-599在第二层第二个节点指向的第三层地址区间,通过B+树第三层的双向链表可以在O(1)时间复杂度内找到RAID阵列A1-105、C2-199。
另外,RAID卡中存储的数据是要不断增加的,索引也是要及时插入更新的,本实施例在链表的基础上进行改造即将双向链表加入到B+树的最底层叶节点中,让它支持地址区间的快速查找。显而易见,本发明将B+树引入双向链表,可以实现支持地址区间的快速查找。加入了双向链表的B+树可以如图4所示,主要区别就是所有的节点值都在最后叶节点上用双向链表连接在了一起,现在如果要找15 ~ 27 这个区间的数只要先找到15这个节点,再从前往后遍历直到27这个节点即可,即可找到这区间的节点。
S13:基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,并根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据。
本实施例中,基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,并根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据。具体的,如果所述输入输出请求的类型为读请求,则向所述物理地址读取数据。如果所述输入输出请求的类型为写请求,向所述物理地址写入数据。
可见,本申请实施例先获取主机侧发送的输入输出请求;然后确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树;其中,所述双向链表B+树的叶子节点对与所述输入输出请求的类型对应的元数据映射节点维护的映射关系进行存储;映射关系为数据的逻辑地址与物理地址之间的映射关系;最后基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,并根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据。本申请实施例通过设计双向链表B+树存储元数据映射节点的映射关系,灵活、快速、高效地维护逻辑地址与物理地址之间TB级的映射关系,在进行输入输出请求时,以双向链表B+树为基础确定出数据读取或写入的物理地址并读取或写入相应数据,能够提升磁盘阵列卡的存储性能。
图5为本申请实施例提供的一种具体的数据请求方法流程图。参见图5所示,该数据请求方法应用于磁盘阵列卡,包括:
S21:获取主机侧发送的输入输出请求。
本实施例中,关于上述步骤S21的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
S22:如果所述输入输出请求的类型为读请求,则将第一双向链表B+树确定为双向链表B+树;所述第一双向链表B+树的叶子节点对存储元数据读缓存节点维护的第一映射关系进行存储;所述第一映射关系为读数据的读取逻辑地址与读取物理地址之间的映射关系。
本实施例中,在获取到主机侧发送的输入输出请求后,先判断主机下发的I/O请求是读请求还是写请求。如果所述输入输出请求的类型为读请求,则将第一双向链表B+树确定为双向链表B+树;所述第一双向链表B+树的叶子节点对存储元数据读缓存节点维护的第一映射关系进行存储;所述第一映射关系为读数据的读取逻辑地址与读取物理地址之间的映射关系。构建所述第一双向链表B+树时,向元数据读缓存节点资源池申请所述元数据读缓存节点,以利用所述第一双向链表B+树的叶子节点存储申请到的所述元数据读缓存节点维护的所述第二映射关系。即使用构建的所述第一双向链表B+树将申请的多个元数据读缓存节点管理起来。
S23:根据所述读取逻辑地址判断缓存中是否存在待读取数据,如果是,则直接从缓存中读取所述待读取数据,并将读取到的数据返回至所述主机侧。
S24:如果否,则基于所述元数据读缓存节点维护的所述第一映射关系确定出与所述读请求的所述读取逻辑地址对应的所述读取物理地址。
S25:从所述读取物理地址中对待读取数据进行读取,并将读取到的数据返回至所述主机侧。
本实施例中,对于一些热数据短期内是已经在缓存中加载过得,无需从物理地址重复读取,因此,在此之前,需要根据所述读取逻辑地址判断缓存中是否存在待读取数据,如果是,则直接从缓存中读取所述待读取数据,并将读取到的数据返回至所述主机侧。如果否,则基于所述元数据读缓存节点维护的所述第一映射关系确定出与所述读请求的所述读取逻辑地址对应的所述读取物理地址。然后从所述读取物理地址中对待读取数据进行读取,并将读取到的数据返回至所述主机侧。
即如果在缓存cache中命中,则缓存中的命中数据读取上来并返回给主机,如果未命中则根据所述第一双向链表B+树维护的元数据读缓存节点,由元数据读缓存节点维护的LBA地址到PBA地址的映射关系找到RAID卡中具体RAID阵列的物理地址,然后读取映射到的RAID阵列的物理地址上的数据,并将读取的数据返回给主机。S21:获取主机侧发送的输入输出请求。
本实施例中,关于上述步骤S21的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
S22:如果所述输入输出请求的类型为读请求,则将第一双向链表B+树确定为双向链表B+树;所述第一双向链表B+树的叶子节点对存储元数据读缓存节点维护的第一映射关系进行存储;所述第一映射关系为读数据的读取逻辑地址与读取物理地址之间的映射关系。
本实施例中,在获取到主机侧发送的输入输出请求后,先判断主机下发的I/O请求是读请求还是写请求。如果所述输入输出请求的类型为读请求,则将第一双向链表B+树确定为双向链表B+树;所述第一双向链表B+树的叶子节点对存储元数据读缓存节点维护的第一映射关系进行存储;所述第一映射关系为读数据的读取逻辑地址与读取物理地址之间的映射关系。构建所述第一双向链表B+树时,向元数据读缓存节点资源池申请所述元数据读缓存节点,以利用所述第一双向链表B+树的叶子节点存储申请到的所述元数据读缓存节点维护的所述第二映射关系。即使用构建的所述第一双向链表B+树将申请的多个元数据读缓存节点管理起来。
S23:根据所述读取逻辑地址判断缓存中是否存在待读取数据,如果是,则直接从缓存中读取所述待读取数据,并将读取到的数据返回至所述主机侧。
S24:如果否,则基于所述元数据读缓存节点维护的所述第一映射关系确定出与所述读请求的所述读取逻辑地址对应的所述读取物理地址。
S25:从所述读取物理地址中对待读取数据进行读取,并将读取到的数据返回至所述主机侧。
本实施例中,对于一些热数据短期内是已经在缓存中加载过得,无需从物理地址重复读取,因此,在此之前,需要根据所述读取逻辑地址判断缓存中是否存在待读取数据,如果是,则直接从缓存中读取所述待读取数据,并将读取到的数据返回至所述主机侧。如果否,则基于所述元数据读缓存节点维护的所述第一映射关系确定出与所述读请求的所述读取逻辑地址对应的所述读取物理地址。然后从所述读取物理地址中对待读取数据进行读取,并将读取到的数据返回至所述主机侧。
即如果在缓存cache中命中,则缓存中的命中数据读取上来并返回给主机,如果未命中则根据所述第一双向链表B+树维护的元数据读缓存节点,由元数据读缓存节点维护的LBA地址到PBA地址的映射关系找到RAID卡中具体RAID阵列的物理地址,然后读取映射到的RAID阵列的物理地址上的数据,并将读取的数据返回给主机。图6为本申请实施例提供的一种具体的数据请求方法流程图。参见图6所示,该数据请求方法应用于磁盘阵列卡,包括:
S31:获取主机侧发送的输入输出请求。
本实施例中,关于上述步骤S31的具体过程,可以参考前述实施例中公开的相应内容,在此不再进行赘述。
S32:如果所述输入输出请求的类型为写请求,则将第二双向链表B+树确定为所述双向链表B+树;所述第二双向链表B+树的叶子节点对存储元数据写缓存节点维护的第二映射关系进行存储;所述第二映射关系为写数据的写入逻辑地址与写入物理地址之间的映射关系。
本实施例中,在获取到主机侧发送的输入输出请求后,先判断主机下发的I/O请求是读请求还是写请求。如果所述输入输出请求的类型为写请求,则将第二双向链表B+树确定为所述双向链表B+树;所述第二双向链表B+树的叶子节点对存储元数据写缓存节点维护的第二映射关系进行存储;所述第二映射关系为写数据的写入逻辑地址与写入物理地址之间的映射关系。
S33:判断所述元数据写缓存节点维护的所述第二映射关系是否需要更改,如果否,则基于所述元数据写缓存节点维护的所述第二映射关系确定出与所述写请求的所述写入逻辑地址对应的所述写入物理地址。
S34:将待写入数据写入所述写入物理地址。
本实施例中,考虑到用户的写请求是对SSD盘中数据的增加、修改,都会改变元数据映射节点内容,这部分被改变的元数据写缓存节点内容需要重新下盘进行更新。因此,还需要判断元数据写缓存节点维护的映射关系是否需要改变。即判断所述元数据写缓存节点维护的所述第二映射关系是否需要更改,如果判断出所述元数据写缓存节点维护的所述第二映射关系不需要更改,则基于所述元数据写缓存节点维护的所述第二映射关系确定出与所述写请求的所述写入逻辑地址对应的所述写入物理地址。此时只需将待写入数据写入所述写入物理地址。
S35:如果是,则判断需要更改的所述元数据写缓存节点是否能够组成一个条带长度的数据,如果是,则以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中。
本实施例中,如果判断出所述元数据写缓存节点维护的所述第二映射关系需要更改,则还需要进一步判断需要更改的所述元数据写缓存节点是否能够组成一个条带长度的数据,如果是,则以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中。即判断得出如果不需要改变,则根据元数据写缓存维护的映射关系得出RAID阵列的PBA地址,然后直接将主机I/O写请求的数据写入该PBA地址的硬盘中;如果需要改变,则继续判断一个或多个映射关系需要改变的元数据写缓存节点是否能够组成一个条带长度的数据。这里的条带又称为stripe,是阵列的不同分区上的位置相关的strip的集合,是组织不同分区上分块的单位。在RAID5和RAID6中以条带为单元由数据分块通过一定的算法求得校验分块。
具体的,以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的磁盘阵列的对应条带中。本实施例中,在获取主机侧发送的输入输出请求之前,还需要获取所述主机侧下发的阵列创建指令,然后控制阵列控制器根据所述阵列创建指令创建相应的磁盘阵列,磁盘阵列为MDISK结构体。
S36:如果否,则将需要更改的所述元数据写缓存节点在缓存中的所述第二双向链表B+树中进行存储,直至需要更改的所述元数据写缓存节点能够组成一个条带长度的数据。
本实施例中,如果判断出需要更改的所述元数据写缓存节点不能够组成一个条带长度的数据,则将需要更改的所述元数据写缓存节点在缓存中的所述第二双向链表B+树中进行存储,直至需要更改的所述元数据写缓存节点能够组成一个条带长度的数据。即如果判断得出能够组成一个条带长度的数据,则组成一个条带,写入RAID阵列的条带中;如果不能组成一个条带,则将元数据写缓存节点暂存于缓存模块维护的缓存中,直到多个元数据写缓存节点能够组合成一个条带长度的数据,才写入RAID阵列的条带中,这样可以减少写的次数,因此可以提升SSD盘构成的RAID卡的写性能。
本实施例中,判断需要更改的所述元数据写缓存节点是否能够组成一个条带长度的数据的过程具体为:判断需要更改的所述元数据写缓存节点的数量是否为一个条带长度所容纳的所述元数据写缓存节点的数量,如果是,则判定需要更改的所述元数据写缓存节点能够组成一个条带长度的数据。图7所示为RAID5阵列中stripe条带示例,图7中的stripe0为RAID5阵列中的0号条带,假设strip数据分块和parity校验分块都是256KB,则stirpe0的大小为256KB * 5 = 1280KB。如前文所述,本实施例中的元数据映射节点均设置为516B(0.5KB),则当需要改变的元数据写缓存节点个数为2560个(1280KB/0.5KB)时,才将其组合成条带长度写入RAID阵列的条带中,即当需要改变的元数据写缓存节点个数为2560时,才将其组合成条带长度写入RAID阵列的条带中,不满2560个则暂存于缓存中,因此可以减少写盘的次数从而提高SSD盘RAID卡的写性能。
本实施例中,将双向链表和B+树的优点有效结合在一起,创新性的设计了双向链表B+树,实现了地址区间的快速查找、顺序查找和逆序查找,能够在不增加硬件的情况下,能够提升SSD盘RAID卡的读性能而且能够提升其写性能,有效提升用户使用SSD盘RAID卡的用户体验。需要说明的是,本实施例适用于多种应用场景,包括但不限于RAID5阵列扩容、RAID6阵列扩容、卷扩容和创建卷。另外,本实施例将多个需要修改的元数据写缓存节点组合成RAID阵列中条带长度的数据,直到多个元数据写缓存节点能够组合成一个条带长度的数据,才写入RAID阵列的条带中,这样可以减少写的次数,因此可以提升SSD盘构成的RAID卡的写性能。
参见图8所示,本申请实施例还相应公开了一种数据请求装置,应用于磁盘阵列卡,包括:
请求获取模块11,用于获取主机侧发送的输入输出请求;
双向链表B+树确定模块12,用于确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树;其中,所述双向链表B+树的叶子节点对与所述输入输出请求的类型对应的元数据映射节点维护的映射关系进行存储;映射关系为数据的逻辑地址与物理地址之间的映射关系;
数据处理模块13,用于基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,并根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据。
可见,本申请实施例先获取主机侧发送的输入输出请求;然后确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树;其中,所述双向链表B+树的叶子节点对与所述输入输出请求的类型对应的元数据映射节点维护的映射关系进行存储;映射关系为数据的逻辑地址与物理地址之间的映射关系;最后基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,并根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据。本申请实施例通过设计双向链表B+树存储元数据映射节点维护的映射关系,灵活、快速、高效地维护逻辑地址与物理地址之间TB级的映射关系,在进行输入输出请求时,以双向链表B+树为基础确定出数据读取或写入的物理地址并读取或写入相应数据,能够提升磁盘阵列卡的存储性能。
在一些具体实施例中,所述双向链表B+树确定模块12,具体包括:
第一确定单元,用于如果所述输入输出请求的类型为读请求,则将第一双向链表B+树确定为所述双向链表B+树;所述第一双向链表B+树的叶子节点对存储元数据读缓存节点维护的第一映射关系进行存储;所述第一映射关系为读数据的读取逻辑地址与读取物理地址之间的映射关系;
第二确定单元,用于如果所述输入输出请求的类型为写请求,则将第二双向链表B+树确定为所述双向链表B+树;所述第二双向链表B+树的叶子节点对存储元数据写缓存节点维护的第二映射关系进行存储;所述第二映射关系为写数据的写入逻辑地址与写入物理地址之间的映射关系。
在一些具体实施例中,所述数据请求装置还包括:
资源申请模块,用于向元数据读缓存节点资源池申请所述元数据读缓存节点,以利用所述第一双向链表B+树的叶子节点存储申请到的所述元数据读缓存节点维护的所述第二映射关系。
在一些具体实施例中,所述数据处理模块13,具体包括:第一确定单元,用于如果所述输入输出请求的类型为读请求,则基于所述元数据读缓存节点维护的所述第一映射关系确定出与所述读请求的读取逻辑地址对应的读取物理地址;
第二确定单元,用于如果所述输入输出请求的类型为写请求,则基于所述元数据写缓存节点维护的所述第二映射关系确定出与所述读请求的写入逻辑地址对应的写入物理地址;
读取单元,用于如果所述输入输出请求的类型为读请求,则从所述读取物理地址中对待读取数据进行读取,并将读取到的数据返回至所述主机侧;
写入单元,用于如果所述输入输出请求的类型为写请求,则将待写入数据写入所述写入所述写入物理地址。
在一些具体实施例中,所述数据请求装置还包括:
缓存命中模块,用于根据所述读取逻辑地址判断缓存中是否存在所述待读取数据;如果是,则直接从缓存中读取所述待读取数据,并将读取到的数据返回至所述主机侧;如果否,则执行确定所述读取物理地址的步骤;
更改判断模块,用于判断所述元数据写缓存节点维护的所述第二映射关系是否需要更改,如果否,则执行确定所述写入物理地址的步骤;如果是,则以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中;
条带判断模块,用于判断需要更改的所述元数据写缓存节点是否能够组成一个条带长度的数据,如果是,则执行以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中的步骤;如果否,则将需要更改的所述元数据写缓存节点在缓存中的所述第二双向链表B+树中进行存储,直至需要更改的所述元数据写缓存节点能够组成一个条带长度的数据。
在一些具体实施例中,所述数据请求装置中的所述双向链表B+树最底层叶子节点中存储的各个所述元数据映射节点通过双向链表连接在一起;所述双向链表B+树支持顺序查找、逆序查找及地址区间查找;所述双向链表B+树的单个节点的存储空间为512B。进一步的,本申请实施例还提供了一种电子设备。图9是根据一示例性实施例示出的电子设备20结构图,图中的内容不能认为是对本申请的使用范围的任何限制。
图9为本申请实施例提供的一种电子设备20的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以至少实现以下步骤:
获取主机侧发送的输入输出请求;
确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树;其中,所述双向链表B+树的叶子节点对与所述输入输出请求的类型对应的元数据映射节点维护的映射关系进行存储;映射关系为数据的逻辑地址与物理地址之间的映射关系;
基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,并根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据。
本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。
另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源可以包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。
其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中海量数据223的运算与处理,其可以是Windows Server、Netware、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的数据请求方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223可以包括电子设备20收集到的请求数据。进一步的,本申请实施例还公开了一种存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,至少实现以下步骤:
获取主机侧发送的输入输出请求;
确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树;其中,所述双向链表B+树的叶子节点对与所述输入输出请求的类型对应的元数据映射节点维护的映射关系进行存储;映射关系为数据的逻辑地址与物理地址之间的映射关系;
基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,并根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的数据请求方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (20)
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所述的数据请求方法,其特征在于,所述判断所述元数据写缓存节点维护的所述第二映射关系是否需要更改之后,还包括:
如果是,则以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中。
9.根据权利要求8所述的数据请求方法,其特征在于,所述以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中,包括:
以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的磁盘阵列的对应条带中。
10.根据权利要求9所述的数据请求方法,其特征在于,所述获取主机侧发送的输入输出请求之前,还包括:
获取所述主机侧下发的阵列创建指令;
控制阵列控制器根据所述阵列创建指令创建相应的磁盘阵列。
11.根据权利要求10所述的数据请求方法,其特征在于,磁盘阵列为MDISK结构体。
12.根据权利要求8所述的数据请求方法,其特征在于,所述以一个条带长度为单位将发生更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中之前,还包括:
判断需要更改的所述元数据写缓存节点是否能够组成一个条带长度的数据,如果是,则执行以一个条带长度为单位将需要更改的所述元数据写缓存节点写入所述磁盘阵列卡的对应条带中的步骤。
13.根据权利要求12所述的数据请求方法,其特征在于,所述判断需要更改的所述元数据写缓存节点是否能够组成一个条带长度的数据之后,还包括:
如果否,则将需要更改的所述元数据写缓存节点在缓存中的所述第二双向链表B+树中进行存储,直至需要更改的所述元数据写缓存节点能够组成一个条带长度的数据。
14.根据权利要求12所述的数据请求方法,其特征在于,所述判断需要更改的所述元数据写缓存节点是否能够组成一个条带长度的数据,包括:
判断需要更改的所述元数据写缓存节点的数量是否为一个条带长度所容纳的所述元数据写缓存节点的数量,如果是,则判定需要更改的所述元数据写缓存节点能够组成一个条带长度的数据。
15.根据权利要求1至14任一项所述的数据请求方法,其特征在于,所述双向链表B+树最底层叶子节点中存储的各个所述元数据映射节点通过双向链表连接在一起。
16.根据权利要求14所述的数据请求方法,其特征在于,所述双向链表B+树支持顺序查找、逆序查找及地址区间查找。
17.根据权利要求14所述的数据请求方法,其特征在于,所述双向链表B+树的单个节点的存储空间为512B。
18.一种数据请求装置,其特征在于,应用于磁盘阵列卡,包括:
请求获取模块,用于获取主机侧发送的输入输出请求;
双向链表B+树确定模块,用于确定出缓存中存储的与所述输入输出请求的类型对应的双向链表B+树;其中,所述双向链表B+树的叶子节点对与所述输入输出请求的类型对应的元数据映射节点维护的映射关系进行存储;映射关系为数据的逻辑地址与物理地址之间的映射关系;
数据处理模块,用于基于所述元数据映射节点维护的映射关系确定出与所述输入输出请求的逻辑地址对应的物理地址,并根据所述输入输出请求的类型向所述物理地址读取数据或者写入数据。
19.一种电子设备,其特征在于,所述电子设备包括处理器和存储器;其中所述存储器用于存储计算机程序,所述计算机程序由所述处理器加载并执行以实现如权利要求1至17任一项所述的数据请求方法。
20.一种计算机可读存储介质,其特征在于,用于存储计算机可执行指令,所述计算机可执行指令被处理器加载并执行时,实现如权利要求1至17任一项所述的数据请求方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310067378.2A CN115904255B (zh) | 2023-01-19 | 2023-01-19 | 一种数据请求方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310067378.2A CN115904255B (zh) | 2023-01-19 | 2023-01-19 | 一种数据请求方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115904255A true CN115904255A (zh) | 2023-04-04 |
CN115904255B CN115904255B (zh) | 2023-05-16 |
Family
ID=85744714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310067378.2A Active CN115904255B (zh) | 2023-01-19 | 2023-01-19 | 一种数据请求方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115904255B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116893786A (zh) * | 2023-09-05 | 2023-10-17 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425041A (zh) * | 2007-10-30 | 2009-05-06 | 安凯(广州)软件技术有限公司 | 在nand flash存储器上建立fat文件系统的优化方法 |
CN102681952A (zh) * | 2012-05-12 | 2012-09-19 | 北京忆恒创源科技有限公司 | 将数据写入存储设备的方法与存储设备 |
US20140047161A1 (en) * | 2012-08-08 | 2014-02-13 | Avalanche Technology, Inc. | System Employing MRAM and Physically Addressed Solid State Disk |
CN104007936A (zh) * | 2014-01-07 | 2014-08-27 | 华为技术有限公司 | 访问数据的方法及装置 |
CN105808156A (zh) * | 2014-12-31 | 2016-07-27 | 华为技术有限公司 | 将数据写入固态硬盘的方法及固态硬盘 |
CN106445405A (zh) * | 2015-08-13 | 2017-02-22 | 北京忆恒创源科技有限公司 | 一种面向闪存存储的数据访问方法及其装置 |
CN107015763A (zh) * | 2017-03-03 | 2017-08-04 | 北京中存超为科技有限公司 | 混合存储系统中ssd管理方法及装置 |
CN109977078A (zh) * | 2019-03-26 | 2019-07-05 | 广州荔支网络技术有限公司 | 一种数据的处理方法、装置、计算机设备和存储介质 |
CN110795042A (zh) * | 2019-10-29 | 2020-02-14 | 北京浪潮数据技术有限公司 | 一种全闪存储系统元数据写缓存刷盘方法及相关组件 |
CN115576501A (zh) * | 2022-12-06 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种raid卡的节点更新方法、系统及相关装置 |
CN115639970A (zh) * | 2022-12-05 | 2023-01-24 | 苏州浪潮智能科技有限公司 | 基于磁盘阵列卡的存储虚拟化方法、系统、装置及设备 |
-
2023
- 2023-01-19 CN CN202310067378.2A patent/CN115904255B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101425041A (zh) * | 2007-10-30 | 2009-05-06 | 安凯(广州)软件技术有限公司 | 在nand flash存储器上建立fat文件系统的优化方法 |
CN102681952A (zh) * | 2012-05-12 | 2012-09-19 | 北京忆恒创源科技有限公司 | 将数据写入存储设备的方法与存储设备 |
US20140047161A1 (en) * | 2012-08-08 | 2014-02-13 | Avalanche Technology, Inc. | System Employing MRAM and Physically Addressed Solid State Disk |
CN104007936A (zh) * | 2014-01-07 | 2014-08-27 | 华为技术有限公司 | 访问数据的方法及装置 |
CN105808156A (zh) * | 2014-12-31 | 2016-07-27 | 华为技术有限公司 | 将数据写入固态硬盘的方法及固态硬盘 |
CN106445405A (zh) * | 2015-08-13 | 2017-02-22 | 北京忆恒创源科技有限公司 | 一种面向闪存存储的数据访问方法及其装置 |
CN107015763A (zh) * | 2017-03-03 | 2017-08-04 | 北京中存超为科技有限公司 | 混合存储系统中ssd管理方法及装置 |
CN109977078A (zh) * | 2019-03-26 | 2019-07-05 | 广州荔支网络技术有限公司 | 一种数据的处理方法、装置、计算机设备和存储介质 |
CN110795042A (zh) * | 2019-10-29 | 2020-02-14 | 北京浪潮数据技术有限公司 | 一种全闪存储系统元数据写缓存刷盘方法及相关组件 |
CN115639970A (zh) * | 2022-12-05 | 2023-01-24 | 苏州浪潮智能科技有限公司 | 基于磁盘阵列卡的存储虚拟化方法、系统、装置及设备 |
CN115576501A (zh) * | 2022-12-06 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种raid卡的节点更新方法、系统及相关装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116893786A (zh) * | 2023-09-05 | 2023-10-17 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
CN116893786B (zh) * | 2023-09-05 | 2024-01-09 | 苏州浪潮智能科技有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115904255B (zh) | 2023-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10657101B2 (en) | Techniques for implementing hybrid flash/HDD-based virtual disk files | |
JP6664218B2 (ja) | 効率的なデータオブジェクトストレージ及び検索 | |
EP3617867B1 (en) | Fragment management method and fragment management apparatus | |
US9182927B2 (en) | Techniques for implementing hybrid flash/HDD-based virtual disk files | |
CN107180092B (zh) | 一种文件系统的控制方法、装置及终端 | |
CN114860163B (zh) | 一种存储系统、内存管理方法和管理节点 | |
US7761648B2 (en) | Caching method for NAND flash translation layer | |
US9280300B2 (en) | Techniques for dynamically relocating virtual disk file blocks between flash storage and HDD-based storage | |
CN109558084B (zh) | 一种数据处理方法以及相关设备 | |
CN113220242B (zh) | 存储管理方法、设备和计算机可读介质 | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
KR20210068699A (ko) | 스토리지 장치, 스토리지 시스템 및 스토리지 장치의 동작 방법 | |
US8176103B2 (en) | File access method and system | |
CN115794669A (zh) | 一种扩展内存的方法、装置及相关设备 | |
CN115904255B (zh) | 一种数据请求方法、装置、设备及存储介质 | |
CN106294189B (zh) | 内存碎片整理方法及装置 | |
US7424574B1 (en) | Method and apparatus for dynamic striping | |
TW201040717A (en) | Flash memory managing methods and computing systems utilizing the same | |
US10452606B1 (en) | Continuous metadata formatting | |
Kim et al. | LSB-Tree: a log-structured B-Tree index structure for NAND flash SSDs | |
EP4336336A1 (en) | Data compression method and apparatus | |
CN108804571B (zh) | 一种数据存储方法、装置以及设备 | |
US11868256B2 (en) | Techniques for metadata updating and retrieval | |
CN109508140B (zh) | 存储资源管理方法、装置、电子设备及电子设备、系统 | |
CN115964350A (zh) | 一种文件系统管理模型及系统 |
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 |