CN117130565B - 数据处理方法、装置、磁盘阵列卡及介质 - Google Patents

数据处理方法、装置、磁盘阵列卡及介质 Download PDF

Info

Publication number
CN117130565B
CN117130565B CN202311388696.5A CN202311388696A CN117130565B CN 117130565 B CN117130565 B CN 117130565B CN 202311388696 A CN202311388696 A CN 202311388696A CN 117130565 B CN117130565 B CN 117130565B
Authority
CN
China
Prior art keywords
metadata
processed
data
file
memory
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.)
Active
Application number
CN202311388696.5A
Other languages
English (en)
Other versions
CN117130565A (zh
Inventor
李飞龙
王刚
王见
钟戟
孙明刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311388696.5A priority Critical patent/CN117130565B/zh
Publication of CN117130565A publication Critical patent/CN117130565A/zh
Application granted granted Critical
Publication of CN117130565B publication Critical patent/CN117130565B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及计算机技术领域,公开了一种数据处理方法、装置、磁盘阵列卡及介质,包括:获取操作指令后,解析操作指令中的配置参数;根据配置参数,确定待处理文件以及其所占用的存储空间;当确定待处理文件所占用的存储空间大于或等于预设阈值时,采用第一处理模式对待处理文件进行切分,获取多个第一类待处理子文件;为第i个第一类待处理子文件分别配置多个第一元数据结构体以及与每一个第一元数据结构体对应的内存页;创建与第i个第一类待处理子文件对应的第二元数据结构体;将多个第一元数据结构体中的元数据进行压缩后,存储至第二元数据结构体,释放多个第一元数据结构体所占用的存储资源。通过该方式,最大化提升RAID卡内存访问效率。

Description

数据处理方法、装置、磁盘阵列卡及介质
技术领域
本发明涉及计算机技术领域,具体涉及数据处理方法、装置、磁盘阵列卡及介质。
背景技术
RAID(Redundant Array of Independent Disks)是一种数据存储技术,可以将多个磁盘组合成一个RAID阵列,构成RAID卡,提供数据冗余和读写性能的提升。RAID卡具有自己的内存和处理器,用于管理磁盘和实现RAID级别。然而,随着硬盘容量的不断增加和数据访问的不断加速,RAID卡的内存访问效率成为一个瓶颈。因此,需要一种新的技术来提高RAID卡内存访问的效率,以实现更高的读写性能和更好的数据保护。
发明内容
有鉴于此,本发明提供了一种数据处理方法、装置、磁盘阵列卡及介质,用以提高RAID卡内存访问效率。
第一方面,本发明提供了一种数据处理方法,该方法应用于一种磁盘阵列卡,该方法包括:
当获取到操作指令后,解析操作指令中的配置参数;
根据配置参数,确定待处理文件以及待处理文件所占用的存储空间;
当确定待处理文件所占用的存储空间大于或等于预设阈值时,采用第一处理模式对待处理文件进行切分,获取多个第一类待处理子文件;
为第i个第一类待处理子文件分别配置多个第一元数据结构体以及与每一个第一元数据结构体对应的内存页,第一元数据结构体中存储与第i个第一类待处理子文件对应的元数据,内存页用于存储第i个第一类待处理子文件中与元数据对应的数据,其中i为正整数,第i个第一类待处理子文件为多个第一类待处理子文件中的任一个;
创建与第i个第一类待处理子文件对应的第二元数据结构体;
将多个第一元数据结构体中的元数据进行压缩后,存储至第二元数据结构体,释放多个第一元数据结构体所占用的存储资源。
本发明提供的一种数据处理方法,具有如下优点:
当获取到操作指令后,解析操作指令中的配置参数。根据配置参数,确定待处理文件以及待处理文件所占用的存储空间。如果确定待处理文件所占用的存储空间大于或等于预设阈值时,则可以确定待处理文件为大文件。需要采用第一处理模式对待处理文件进行切分,获取第一类待处理子文件。然后为每一个待处理子文件分别配置多个第一元数据结构体,以及与每一个第一元数据结构体对应的内存页,用以分别存储元数据,以及与元数据对应的数据。考虑到多个第一元数据结构体将占用更多的存储空间。因此,可以创建一个第二元数据结构体,然后将多个第一元数据结构体中的元数据进行压缩后,存储至第二元数据结构体,进而释放第一元数据结构体所占用的存储空间。通过该方式,利用压缩方式降低多个第一元数据结构体所占用的存储空间,也即是降低内存占用率,而且,上述方案中直接在内核层做一次内部映射,也即是直接通过第一元数据结构体映射到对应的数据,相较于已有技术中的方案,映射次数减少。不论是存储空间的占用率的降低还是映射次数的减少,都可以提升RAID卡内存访问效率。
在一种可选的实施方式中,当确定待处理文件所占用的存储空间小于预设阈值时,采用第二处理模式对待处理文件进行切分,获取多个第二类待处理子文件,其中,第二类待处理子文件占用的存储空间等于第一类待处理子文件占用的存储空间;
创建与每一个第二类待处理子文件对应的第三元数据结构体,以及与每一个第三元数据结构体对应的内存页,第三元数据结构体中存储与第二类待处理子文件对应的元数据。
具体的,当确定待处理文件所占用的存储空间小于预设阈值时,确定待处理文件为小文件。可以采用第二处理模式对待处理文件进行切分,获取多个第二类待处理子文件。因为每一个第二类待处理子文件所占用的存储空间较小,可以直接创建一个第三元数据结构体即可,无需创建多个第三数据结构体,因此也无需创建一个新的数据结构体用于存储多个第三元数据结构体的压缩数据。但是对小文件的处理方式,同样是只执行一次内部映射,所以同样是可以提升RAID卡内存访问效率。
在一种可选的实施方式中,方法还包括:
获取数据访问指令;
根据数据访问指令访问与待访问数据对应的元数据所属的第四元数据结构体;
当确定第四元数据结构体对应的物理资源已被释放时,分配与第四元数据结构体对应的物理资源,并触发缺页中断操作;
根据缺页中断操作,从存储待访问数据对应的元数据的第五元数据结构体中解压待访问数据对应的元数据;
将待访问数据对应的元数据存储至第四元数据结构体,以便根据第四元数据结构体中存储的元数据访问待访问数据。
具体的,当获取到数据访问指令时,需要根据数据访问指令访问与待访问数据对应的元数据所属的第四元数据结构体,当确定第四元数据结构体对应的物理资源已被释放时,则分配新的物理资源用于支持第四元数据结构体。然后触发缺页中断操作,通过缺页中断操作,从存储待访问数据对应的元数据的第五元数据结构体中解压出待访问数据对应的元数据,将待访问数据对应的元数据存储至第四元数据结构体。进而根据第四元数据结构体中的元数据访问待访问数据。通过该方式,充分利用硬件固有的缺页中断实现元数据结构体对应物理资源的动态释放和分配,最大化提升RAID卡内存访问效率。
在一种可选的实施方式中,当确定待访问数据访问完成后,释放与第四元数据结构体对应的物理资源。
具体的,当确定待访问数据访问完成后,释放与第四元数据结构体对应的物理资源,同样是为了降低内存占用率,进而提升RAID卡内存访问效率。
在一种可选的实施方式中,当确定待处理文件所占用的存储空间大于或等于预设阈值时,采用第一处理模式对待处理文件进行切分,获取多个第一类待处理子文件,具体包括:
按照第一字节存储单位对待处理文件进行切分,获取多个第三类待处理子文件;
针对每一个第三类待处理子文件,按照第二字节存储单位进行切分,获取多个第一类待处理子文件。
在一种可选的实施方式中,该方法还包括:
统计与待访问数据对应的元数据触发的缺页中断次数,当缺页中断次数超过次数阈值时,查询内存中未被访问页面的持续时间;
当确定第一页面未被访问的持续时间最长时,则在内存中利用第四元数据结构体置换掉第一页面对应的第六元数据结构体,并将第五元数据结构体中的元数据解压缩后存储至第四元数据结构体中;
将第六元数据结构体中的元数据进行压缩处理后,存储至内存以外的其他预设存储位置,其中,第一页面为内存中存储的任一内存页。
具体的,当待访问数据对应的缺页中断被触发的次数超过预设次数阈值时,则说明该待访问数据对应的元数据所对应的数据为内存中经常被访问的数据,多次的缺页中断会导致数据访问效率的降低。因此,可以在确定待访问数据对应的缺页中断被触发的次数超过预设次数阈值时,查询内存中未被访问页面的持续时间;
并将第四元数据结构体置换掉未被访问持续时间最长的数据对应的第六元数据结构体,并将第四元数据结构体存储在内存中,从而提高该待访问数据对应的数据的访问效率。并且,长时间未被访问的数据所对应的元数据则存储到除内存以外的其他预设存储位置,例如硬盘中,后续也可以根据缺页中断操作访问第一页面中的数据。
在一种可选的实施方式中,获取数据访问指令之后,该方法还包括:
当确定数据访问指令用以指示访问除待访问数据之外的其他数据时,预测后续进程是否会访问待访问数据;
当预测后续进程依然会访问待访问数据时,从第五元数据结构体中解压与待访问数据对应的元数据,并将待访问数据对应的元数据存储至第四元数据结构体。
具体的,获取数据访问指令之后,如果确定数据访问指令所要访问的数据不是与前文所介绍的待访问数据时,也可以进一步预测一下后续是否会访问待访问数据。如果后续会被访问到,则可以事先将待访问数据对应的元数据从第五元数据结构体中解压出来,并存储在第四元数据结构体中。用以后续可以直接在内存中调用第四元数据结构体中的元数据,访问待访问数据,提高数据访问效率。
在一种可选的实施方式中,确定待处理文件所占用的存储空间小于预设阈值时,采用第二处理模式对待处理文件进行切分,获取多个第二类待处理子文件,具体包括:
对待处理文件按照第二字节存储单位对待处理文件进行切分,获取多个第二类待处理子文件。
在一种可选的实施方式中,操作指令包括读操作指令或写操作指令。
在一种可选的实施方式中,第一元数据结构体、第三元数据结构体,以及第四元数据结构体为struct page结构。
在一种可选的实施方式中,struct page结构中的索引为与struct page结构对应的内存页的物理页帧号。
具体的,通过该方式直接映射到内存页,进而获取与元数据对应的数据,也即是只执行一次映射即可获取到相应的数据,减少映射次数,提升RAID卡内存访问效率。
在一种可选的实施方式中,第二元数据结构体和第五元数据结构体为除structpage结构之外的任一元数据结构体。
在一种可选的实施方式中,预设阈值为2M。
第二方面,本发明提供了一种数据处理装置,该装置包括:
获取模块,用于获取操作指令;
解析模块,用于解析操作指令中的配置参数;
文件管理模块,用于根据配置参数,确定待处理文件以及待处理文件所占用的存储空间;
内存判断模块,用于确定待处理文件所占用的存储空间与预设阈值之间的大小关系,并根据大小关系,选择文件处理模式,其中,当确定待处理文件所占用的存储空间大于或等于预设阈值时,选择第一处理模式;或者,当前当确定待处理文件所占用的存储空间小于预设阈值时,选择第二处理模式;
内存管理模块,用于当确定待处理文件所占用的存储空间大于或等于预设阈值时,采用第一处理模式对待处理文件进行切分,获取多个第一类待处理子文件;
为第i个第一类待处理子文件分别配置多个第一元数据结构体以及与每一个第一元数据结构体对应的内存页,第一元数据结构体中存储与第i个第一类待处理子文件对应的元数据,内存页用于存储第i个第一类待处理子文件中与元数据对应的数据,其中i为正整数,第i个第一类待处理子文件为多个第一类待处理子文件中的任一个;
创建与第i个第一类待处理子文件对应的第二元数据结构体;
将多个第一元数据结构体中的元数据进行压缩后存储至第二元数据结构体;释放多个第一元数据结构体所占用的存储资源。
本发明提供的一种数据处理装置,具有如下优点:
当获取到操作指令后,解析操作指令中的配置参数。根据配置参数,确定待处理文件以及待处理文件所占用的存储空间。如果确定待处理文件所占用的存储空间大于或等于预设阈值时,则可以确定待处理文件为大文件。需要采用第一处理模式对待处理文件进行切分,获取第一类待处理子文件。然后为每一个待处理子文件分别配置多个第一元数据结构体,以及与每一个第一元数据结构体对应的内存页,用以分别存储元数据,以及与元数据对应的数据。考虑到多个第一元数据结构体将占用更多的存储空间。因此,可以创建一个第二元数据结构体,然后将多个第一元数据结构体中的元数据进行压缩后,存储至第二元数据结构体,进而释放第一元数据结构体所占用的存储空间。通过该方式,利用压缩方式降低多个第一元数据结构体所占用的存储空间,也即是降低内存占用率,而且,上述方案中直接在内核层做一次内部映射,也即是直接通过第一元数据结构体映射到对应的数据,相较于已有技术中的方案,映射次数减少。不论是存储空间的占用率的降低还是映射次数的减少,都可以提升RAID卡内存访问效率。
在一种可选的实施方式中,内存管理模块,还用于当确定待处理文件所占用的存储空间小于预设阈值时,采用第二处理模式对待处理文件进行切分,获取多个第二类待处理子文件,其中,第二类待处理子文件占用的存储空间等于第一类待处理子文件占用的存储空间;
创建与每一个第二类待处理子文件对应的第三元数据结构体,以及与每一个第三元数据结构体对应的内存页,第三元数据结构体中存储与第二类待处理子文件对应的元数据。
具体的,当确定待处理文件所占用的存储空间小于预设阈值时,确定待处理文件为小文件。可以采用第二处理模式对待处理文件进行切分,获取多个第二类待处理子文件。因为每一个第二类待处理子文件所占用的存储空间较小,可以直接创建一个第三元数据结构体即可,无需创建多个第三数据结构体,因此也无需创建一个新的数据结构体用于存储多个第三元数据结构体的压缩数据。但是对小文件的处理方式,同样是只执行一次内部映射,所以同样是可以提升RAID卡内存访问效率。
在一种可选的实施方式中,装置还包括:访问模块;
获取模块,还用于获取数据访问指令;
访问模块,用于根据数据访问指令访问与待访问数据对应的元数据所属的第四元数据结构体;
内存管理模块,还用于当确定第四元数据结构体对应的物理资源已被释放时,分配与第四元数据结构体对应的物理资源,并触发缺页中断操作;
根据缺页中断操作,从存储待访问数据对应的元数据的第五元数据结构体中解压待访问数据对应的元数据;
将待访问数据对应的元数据存储至第四元数据结构体,以便根据第四元数据结构体中存储的元数据访问待访问数据。
具体的,当获取到数据访问指令时,需要根据数据访问指令访问与待访问数据对应的元数据所属的第四元数据结构体,当确定第四元数据结构体对应的物理资源已被释放时,则分配新的物理资源用于支持第四元数据结构体。然后触发缺页中断操作,通过缺页中断操作,从存储待访问数据对应的元数据的第五元数据结构体中解压出待访问数据对应的元数据,将待访问数据对应的元数据存储至第四元数据结构体。进而根据第四元数据结构体中的元数据访问待访问数据。通过该方式,充分利用硬件固有的缺页中断实现元数据结构体对应物理资源的动态释放和分配,最大化提升RAID卡内存访问效率。
在一种可选的实施方式中,内存管理模块,还用于:
当确定待访问数据访问完成后,释放与第四元数据结构体对应的物理资源。
具体的,当确定待访问数据访问完成后,释放与第四元数据结构体对应的物理资源,同样是为了降低内存占用率,进而提升RAID卡内存访问效率。
在一种可选的实施方式中,内存管理模块,具体用于:
按照第一字节存储单位对待处理文件进行切分,获取多个第三类待处理子文件;
针对每一个第三类待处理子文件,按照第二字节存储单位进行切分,获取多个第一类待处理子文件。
在一种可选的实施方式中,该装置还包括:统计模块和查询模块;
统计模块,用于统计与待访问数据对应的元数据触发的缺页中断次数;
查询模块,用于当缺页中断次数超过次数阈值时,查询内存中未被访问页面的持续时间;
内存管理模块,还用于当确定第一页面未被访问的持续时间最长时,则在内存中利用第四元数据结构体置换掉第一页面对应的第六元数据结构体,并将第五元数据结构体中的元数据解压缩后存储至第四元数据结构体中;
将第六元数据结构体中的元数据进行压缩处理后,存储至内存以外的其他预设存储位置,其中,第一页面为内存中存储的任一内存页。
在一种可选的实施方式中,内存管理模块,还用于当确定数据访问指令用以指示访问除待访问数据之外的其他数据时,预测后续进程是否会访问待访问数据;当预测后续进程依然会访问待访问数据时,从第五元数据结构体中解压与待访问数据对应的元数据,并将待访问数据对应的元数据存储至第四元数据结构体。
在一种可选的实施方式中,内存管理模块,具体用于:
对待处理文件按照第二字节存储单位对待处理文件进行切分,获取多个第二类待处理子文件。
在一种可选的实施方式中,操作指令包括读操作指令或写操作指令。
在一种可选的实施方式中,第一元数据结构体、第三元数据结构体,以及第四元数据结构体为struct page结构。
在一种可选的实施方式中,struct page结构中的索引为与struct page结构对应的内存页的物理页帧号。
具体的,通过该方式直接映射到内存页,进而获取与元数据对应的数据,也即是只执行一次映射即可获取到相应的数据,减少映射次数,提升RAID卡内存访问效率。
在一种可选的实施方式中,第二元数据结构体和第五元数据结构体为除structpage结构之外的任一元数据结构体。
在一种可选的实施方式中,预设阈值为2M。
在一种可选的实施方式中,第一字节存储单位为2M。
在一种可选的实施方式中,第二字节存储单位为4KB。
第三方面,本发明提供了一种磁盘阵列卡,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的数据处理方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的数据处理方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种数据处理方法的流程示意图;
图2是本发明实施例提供的另一种数据处理方法流程示意图;
图3是本发明提供的为每一个第一类待处理子文件分别创建第一元数据结构体以及与元数据结构体对应的内存页后的效果示意图;
图4是本发明实施例提供的又一种数据处理方法流程示意图;
图5是本发明提供的为每一个第二类待处理子文件分别创建第一元数据结构体以及与元数据结构体对应的内存页后的效果示意图;
图6是本发明实施例提供的再一种数据处理方法流程示意图;
图7是本发明实施例提供的一种具体的数据处理方法应用实例的流程示意图;
图8是本发明提供的一种包含本发明实施例的RAID卡的系统架构示意图;
图9是根据本发明实施例的一种数据处理装置结构框图;
图10是本发明实施例的磁盘阵列卡的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
进入21世纪,随着大数据、人工智能等应用的快速发展,存储服务器的应用越来越广泛。在存储领域,软RAID存储技术作为存储服务器的重要组成部分,对系统性能有着重要的影响。但是近些年随着科技的不断发展,企业对存储数据的数据安全性要求也越来越苛刻,同时需要存储的数据量也是以指数级增长。以机器人为例,有数据显示,每个机器人每天产生的数据就高达几百TB。如何对这些数据进行安全、高效的存储,如何提供稳定的存储服务体验、如何保障数据的安全性已成为企业发展面临的最大挑战。
如前,随着各大企业对存储性能和存储数据安全性的要求越来越高,目前的软RAID存储技术已越来越无法满足存储性能要求。因而各大存储公司借助近些年半导体芯片技术的不断发展,在软RAID存储技术的基础上提出了硬RAID存储技术(RAID卡),顾名思义,RAID卡就是将软RAID存储系统中一些数据管理、算法以及一些逻辑功能都交给硬件管理和实现,以达到提高存储系统的读写性能。
RAID(Redundant Array of Independent Disks)是一种数据存储技术,可以将多个磁盘组合成一个RAID阵列,提供数据冗余和读写性能的提升。RAID卡是一种专门的硬件设备,用于将多个硬盘组合成一个逻辑卷,并提供数据冗余和读写性能的提升。RAID卡具有自己的内存和处理器,用于管理磁盘和实现RAID级别。然而,随着硬盘容量的不断增加和数据访问的不断加速,RAID卡的内存访问效率成为一个瓶颈。因此,需要一种新的技术来提高RAID卡内存访问的效率,以实现更高的读写性能和更好的数据保护。
目前业界使用的两种RAID卡内存访问技术:
1. 非一致性内存访问(Non-Uniform Memory Access,NUMA)架构。
NUMA架构是一种用于多处理器系统的内存访问方式,它允许每个处理器访问本地内存和远程内存。这种架构可以有效地减少内存访问的延迟和提高内存访问的带宽,从而提高RAID卡的性能。同时,NUMA架构也可以提供更好的数据保护,因为数据可以存储在本地内存中,从而减少数据传输的风险。
2. 高速缓存
将高速缓存存储介质内置于RAID卡,高速缓存用于缓存磁盘数据和元数据。通过优化高速缓存的大小和算法,可以提高RAID卡的内存访问效率。
但是这两种技术都有它们的不足之处,首先阐述NUMA架构的不足之处如下:
1.成本高;
NUMA架构需要使用多个处理器和内存控制器,这增加了硬件成本和维护成本。
2.可扩展性有限;
NUMA架构适用于多处理器系统,但随着处理器数量的增加,内存访问的延迟和带宽将受到限制。
3. 编程复杂;
NUMA架构需要开发人员具备特定的编程技能,以便正确地管理内存和处理器。
4. 内存访问模式不足;
虽然优化内存访问模式可以提高RAID卡的性能,但这需要开发人员具备特定的编程技能,并且难以适应不同的RAID卡和应用场景。
然后介绍高速缓存存在的一些不足之处:
1. 大小有限;
高速缓存的大小通常受到成本和物理空间的限制。当缓存大小不足时,缓存命中率将降低,从而影响RAID卡的读写性能。
2. 算法不足;
高速缓存的算法对RAID卡的性能影响很大,目前的算法仍然无法满足RAID卡的需求,需要进一步优化。
3. 数据一致性;
高速缓存需要保持与磁盘数据的一致性,这需要一定的时间和计算资源。当高速缓存与磁盘数据不一致时,会出现数据错误的情况。
4. 难以管理;
高速缓存需要定期清理和维护,以避免缓存过期和数据错误的情况。但是,高速缓存的管理和维护需要一定的技术和资源,对于一些小型企业或个人用户而言可能较为困难。
综上,虽然NUMA架构是目前最接近提升RAID卡内存访问效率的技术,但它仍然存在一些不足之处。未来需要继续研究和开发新的技术,以提高RAID卡内存访问的效率和性能。同样高速缓存作为提高RAID卡性能的常见技术,仍然存在一些不足之处。需要进一步研究和开发新的算法和技术,以提高高速缓存的性能和可靠性,同时降低管理和维护的难度。
如前,如何提升RAID卡内存访问的效率,已成为本技术领域专业技术人员亟待解决的问题。提升RAID卡内存访问效率的研究具有重要的意义和挑战,需要综合考虑应用场景、硬件、软件等多方面的因素,并不断创新和优化,以满足RAID卡内存访问的性能要求。
为解决上述问题,本发明实施例,提供了一种数据处理实施例,需要说明的是,在附图的流程图示出的步骤可以在包括诸如一组计算机可执行指令的计算机系统(磁盘阵列卡)中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种数据处理方法,可用于上述的终端机设备,如手机、平板电脑等,图1是本发明实施例提供的一种数据处理方法的流程示意图,如图1所示,该流程包括如下步骤:
步骤S101,当获取到操作指令后,解析操作指令中的配置参数。
在一个可选的实施方式中,操作指令可以包括读操作指令或写操作指令。当用户在读写数据时,读写数据为读取或写入一个文件的全部或文件中的部分内容。RAID卡在接收到操作指令后,会对该操作指令进行解析,然后获取操作指令中的配置参数。
具体的配置参数中可以包括具体的读/写的地址、待处理文件对应的属性信息,例如包括:待处理文件对应的标识信息、待读写的字段、待读写的字节数,待读写的位置等等。
步骤S102,根据配置参数,确定待处理文件以及待处理文件所占用的存储空间。
具体的,配置参数中可以包括用以指示待处理文件所占用的存储空间大小的字段,或者可以根据配置参数中的某些字段推理出待处理文件所占用的存储空间。例如,如果配置参数中本身就携带有待读写的字节数,那么即可直接获取待处理文件所占用的存储空间。或者,如果配置参数中包括待读写的字段、或者待读写的位置,或者标识信息等,也可以从间接推理出待处理文件所占用的存储空间。
步骤S103,当确定待处理文件所占用的存储空间大于或等于预设阈值时,采用第一处理模式对待处理文件进行切分,获取多个第一类待处理子文件。
具体的,当待处理文件所占用的存储空间大于或等于预设阈值时,则说明待处理文件为大文件,需要采用第一处理模式对待处理文件进行切分,获取多个第一类待处理子文件。
其中,第一处理模式为用以对大文件进行切分的操作模式。每一个第一类待处理子文件的也将会占用很多的存储空间。
步骤S104,为第i个第一类待处理子文件分别配置多个第一元数据结构体以及与每一个第一元数据结构体对应的内存页。
其中,第一元数据结构体中存储与第i个第一类待处理子文件对应的元数据,内存页用于存储第i个第一类待处理子文件中与元数据对应的数据,其中i为正整数,第i个第一类待处理子文件为多个第一类待处理子文件中的任一个。
步骤S105,创建与第i个第一类待处理子文件对应的第二元数据结构体。
步骤S106,将多个第一元数据结构体中的元数据进行压缩后,存储至第二元数据结构体,释放多个第一元数据结构体所占用的存储资源。
理论上,每一个第一类待处理子文件虽然也可以配置一个元数据结构体,但是考虑到RAID卡中所有的物理内存页均以4KB为单位分配元数据结构体,那么,当第一类待处理子文件所占用的存储空间超过4KB时,则其所需要的元数据结构体将会随着第一类待处理子文件所占用的存储空间的增大,而导致元数据结构体的数量也会增多。
而每一个元数据结构体本身也会占用一定的存储空间。当元数据结构体的数量比较多时,其所占用的存储空间也是不容忽视的,也会影响到RAID卡的内存访问效率。因此,在本申请实施例中,创建一个第二元数据结构体,将多个第一元数据结构体中的元数据进行压缩后,存储之第二元数据结构体中,并且释放第一元数据结构体所占用的存储资源。通过该方式,来降低RAID卡中内存的占用率情况。尤其存在多个第一类待处理子文件的时候,该效果将会更加明显。
本实施例提供的数据处理方法,当获取到操作指令后,解析操作指令中的配置参数。根据配置参数,确定待处理文件以及待处理文件所占用的存储空间。如果确定待处理文件所占用的存储空间大于或等于预设阈值时,则可以确定待处理文件为大文件。需要采用第一处理模式对待处理文件进行切分,获取第一类待处理子文件。然后为每一个待处理子文件分别配置多个第一元数据结构体,以及与每一个第一元数据结构体对应的内存页,用以分别存储元数据,以及与元数据对应的数据。考虑到多个第一元数据结构体将占用更多的存储空间。因此,可以创建一个第二元数据结构体,然后将多个第一元数据结构体中的元数据进行压缩后,存储至第二元数据结构体,进而释放第一元数据结构体所占用的存储空间。通过该方式,利用压缩方式降低多个第一元数据结构体所占用的存储空间,也即是降低内存占用率,而且,上述方案中直接在内核层做一次内部映射,也即是直接通过第一元数据结构体映射到对应的数据,相较于已有技术中的方案,映射次数减少。不论是存储空间的占用率的降低还是映射次数的减少,都可以提升RAID卡内存访问效率。
在本实施例中提供了一种数据处理方法,可用于上述的移动终端,如手机、平板电脑等,图2是本发明实施例提供的另一种数据处理方法流程示意图,如图2所示,该流程包括如下步骤:
步骤S201,当获取到操作指令后,解析操作指令中的配置参数。
步骤S202,根据配置参数,确定待处理文件以及待处理文件所占用的存储空间。
步骤S201和步骤S202的介绍,详细请参见图1所示实施例的步骤S101和步骤102,在此不再赘述。
步骤S203,当确定待处理文件所占用的存储空间大于或等于预设阈值时,采用第一处理模式对待处理文件进行切分,获取多个第一类待处理子文件。
具体的,当待处理文件所占用的存储空间大于或等于预设阈值(例如2M)时,则说明待处理文件为大文件,需要采用第一处理模式对待处理文件进行切分,获取多个第一类待处理子文件。
其中,第一处理模式为用以对大文件进行切分的操作模式。每一个第一类待处理子文件的也将会占用很多的存储空间。
在一个可选的实施方式中,具体进行切分时,可以按照第一字节存储单位对待处理文件进行切分,获取多个第三类待处理子文件;
针对每一个第三类待处理子文件,按照第二字节存储单位进行切分,获取多个第一类待处理子文件。
其中,第一字节存储单位为2M。第二字节存储单位为4KB。
步骤S204,为第i个第一类待处理子文件分别配置多个第一元数据结构体以及与每一个第一元数据结构体对应的内存页。
其中,第一元数据结构体中存储与第i个第一类待处理子文件对应的元数据,内存页用于存储第i个第一类待处理子文件中与元数据对应的数据,其中i为正整数,第i个第一类待处理子文件为多个第一类待处理子文件中的任一个。
步骤S205,创建与第i个第一类待处理子文件对应的第二元数据结构体。
步骤S206,将多个第一元数据结构体中的元数据进行压缩后,存储至第二元数据结构体,释放多个第一元数据结构体所占用的存储资源。
具体的,如前述所介绍的,理论上每一个第一类待处理子文件虽然也可以配置一个元数据结构体,但是考虑到RAID卡中所有的物理内存页均以4KB为单位分配元数据结构体,那么,当第一类待处理子文件所占用的存储空间超过4KB时,例如前文所介绍的2M。每一个第一类待处理子文件对应的第一元数据结构体的数量将为512个,假设每一个第一元数据结构体所占用的字节为64Bytes。那么512个第一元数据结构体将占用32768Bytes,也即是32KB。
具体参见图3所示,图3示意出任一个包含2M的Huge page文件,其对应的元数据结构体(类似于第一元数据结构体)的数量为512个。在一种可选的实施方式中,第一元数据结构体例如为struct page结构体,每一个struct page结构体对应的内存页可存储的数据为4KB。且,struct page结构中的索引为与struct page结构对应的内存页的物理页帧号。通过物理页帧号用以指示存储数据的地址指针。图3中的Page frame即为物理页帧号。图3中的箭头用以指示元数据结构体和物理页帧号之间存在一定的映射关系。
假设在一个1TB的RAID卡上,针对1TB的待处理文件按照2M的单位进行划分,那么第一元数据结构体占用的内存应该是16GB。那么,当存在更多个1TB的RAID时,元数据结构体所占用的内存空降将会更加不可忽视,必然会影响到RAID卡的内存访问效率。因此,在本申请实施例中,创建一个第二元数据结构体,将多个第一元数据结构体中的元数据进行压缩后,存储之第二元数据结构体中,并且释放第一元数据结构体所占用的存储资源。通过该方式,来降低RAID卡中内存的占用率情况。尤其存在多个第一类待处理子文件的时候,该效果将会更加明显。
在本实施例中提供了一种数据处理方法,可用于上述的移动终端,如手机、平板电脑等,图4本发明实施例提供的又一种数据处理方法流程示意图,如图3所示,该流程包括如下步骤:
步骤S401,当获取到操作指令后,解析操作指令中的配置参数。
步骤S402,根据配置参数,确定待处理文件以及待处理文件所占用的存储空间。
步骤S401和步骤S402的介绍,详细请参见图1所示实施例的步骤S101和步骤102,在此不再赘述。
步骤S403,当确定待处理文件所占用的存储空间小于预设阈值(例如2M)时,采用第二处理模式对待处理文件进行切分,获取多个第二类待处理子文件。
其中,第二类待处理子文件占用的存储空间等于第一类待处理子文件占用的存储空间。
步骤S404,创建与每一个第二类待处理子文件对应的第三元数据结构体,以及与每一个第三元数据结构体对应的内存页。
其中,第三元数据结构体中存储与第二类待处理子文件对应的元数据。
具体的,参见图5所示,图5中示意出针对小文件,将小文件进行拆分后,可以为每一个第二类待处理子文件创建对应的第三元数据结构体,以及与每一个第三元数据结构体对应的内存页。例如图5中的多个struct page结构体,每一个struct page结构体分别对应一个第二类待处理子文件,每一个第二类待处理子文件对应的数据则存储在图5所示的内存页中。同样在图5所示的struct page结构中的索引为与struct page结构对应的内存页的物理页帧号。图5中的Page frame即为物理页帧号。图5中的箭头用以指示元数据结构体和物理页帧号之间存在一定的映射关系。
通过上述实施例,在确定待处理文件所占用的存储空间小于预设阈值后,则可以确定待处理文件为小文件,可以直接按照第二处理模式对待处理文件进行切分,获取多个第二类待处理子文件。因为每一个第二类待处理子文件所占用的存储空间较小,所以,可以直接为每一个第二类待处理子文件分别创建一个第三元数据结构体即可。但是对小文件的处理方式,同样是只执行一次内部映射,所以同样是可以提升RAID卡内存访问效率。
在一个可选的实施方式中,确定待处理文件所占用的存储空间小于预设阈值时,采用第二处理模式对待处理文件进行切分,获取多个第二类待处理子文件时,可以采用如下方式实现:
对待处理文件按照第二字节存储单位对待处理文件进行切分,获取多个第二类待处理子文件。
在一个可选的实施方式中,第二字节存储单位为4KB。也即是,按照在RAID卡所有的物理内存实际存储空间为单位进行划分。
在本实施例中提供了一种数据处理方法,可用于上述的移动终端,如手机、平板电脑等,图6是本发明实施例提供的再一种数据处理方法流程示意图,如图6所示,该流程包括如下步骤:
步骤S601,当获取到操作指令后,解析操作指令中的配置参数。
步骤S602,根据配置参数,确定待处理文件以及待处理文件所占用的存储空间。
步骤S603,当确定待处理文件所占用的存储空间大于或等于预设阈值时,采用第一处理模式对待处理文件进行切分,获取多个第一类待处理子文件。
步骤S604,为第i个第一类待处理子文件分别配置多个第一元数据结构体以及与每一个第一元数据结构体对应的内存页。
其中,第一元数据结构体中存储与第i个第一类待处理子文件对应的元数据,内存页用于存储第i个第一类待处理子文件中与元数据对应的数据,其中i为正整数,第i个第一类待处理子文件为多个第一类待处理子文件中的任一个。
步骤S605,创建与第i个第一类待处理子文件对应的第二元数据结构体。
步骤S606,将多个第一元数据结构体中的元数据进行压缩后,存储至第二元数据结构体,释放多个第一元数据结构体所占用的存储资源。
步骤S601至步骤S606的介绍,详细请参见图1所示实施例的步骤S101至步骤S106,在此不再赘述。
步骤S607,获取数据访问指令。
具体的数据访问指令用以指示访问RAID卡中已经存储的数据。
步骤S608,根据数据访问指令访问与待访问数据对应的元数据所属的第四元数据结构体。
具体的,当第一类待处理文件中的数据和元数据均已经被分配到相应的元数据结构体和内存页中后,如果获取到数据访问指令,则需要根据数据访问指令访问与待访问数据对应的元数据所属的第四元数据结构体。
具体而言,数据访问指令中可以包括与待访问数据对应的标识信息。然后根据标识信息,查找与标识信息对应的第四元数据结构体。这里所说的第四元数据结构体的作用和前文中的第一元数据结构体的作用相同。但是如前文所介绍的,第四元数据结构体所对应的物理资源通常已经被释放,第四元数据结构体中的元数据也已经被压缩后存储至一个新的元数据结构体中。而这些操作记录可以以日志形式或者其他形式被记录。因此,可以根据访问数据中的标识信息查找到该操作记录,并确定第四元数据结构体对应的物理资源已经被释放。
但是,RAID卡只能通过第四元数据结构体访问待访问数据,所以,当确定第四元数据结构体对应的物理资源已被释放时,还需要分配与第四元数据结构体对应的物理资源,并触发缺页中断操作。
步骤S609,当确定第四元数据结构体对应的物理资源已被释放时,分配与第四元数据结构体对应的物理资源,并触发缺页中断操作。
步骤S6010,根据缺页中断操作,从存储待访问数据对应的元数据的第五元数据结构体中解压待访问数据对应的元数据。
步骤S6011,将待访问数据对应的元数据存储至第四元数据结构体。
以便根据第四元数据结构体中存储的元数据访问待访问数据。
具体的,如前述所介绍,当确定第四元数据结构体对应的物理资源已被释放时,分配与第四元数据结构体对应的物理资源,并触发缺页中断操作。然后从最新的元数据结构体,也即是第五元数据结构体中解压待访问数据对应的元数据,然后将待访问数据对应的元数据存储至第四元数据结构体中。此时,可以根据第四元数据结构体中存储的元数据访问该待访问数据。
在该实施例种,当获取到数据访问指令时,需要根据数据访问指令访问与待访问数据对应的元数据所属的第四元数据结构体,当确定第四元数据结构体对应的物理资源已被释放时,则分配新的物理资源用于支持第四元数据结构体。然后触发缺页中断操作,通过缺页中断操作,从存储待访问数据对应的元数据的第五元数据结构体中解压出待访问数据对应的元数据,将待访问数据对应的元数据存储至第四元数据结构体。进而根据第四元数据结构体中的元数据访问待访问数据。通过该方式,充分利用硬件固有的缺页中断实现元数据结构体对应物理资源的动态释放和分配,最大化提升RAID卡内存访问效率。
在一个可选的实施方式中,在前述实施例的基础上,该方法还包括:当确定待访问数据访问完成后,释放与第四元数据结构体对应的物理资源。
也即是,当确定待访问数据访问完成后,释放与第四元数据结构体对应的物理资源,进而降低内存占用率,进而提升RAID卡内存访问效率。
在另一个可选的实施方式中,第二元数据结构体和第五元数据结构体为除structpage结构之外的任一元数据结构体。
在一个可选的实施方式中,该方法还可以包括如下方法步骤:
步骤a1、统计与待访问数据对应的元数据触发的缺页中断次数,当缺页中断次数超过次数阈值时,查询内存中未被访问页面的持续时间。
具体的,内存中每个页面被访问之后,可以记录最新被访问时间。因此,可以查询到每一个内存页未被访问的持续时间。
当与待访问数据对应的元数据触发的缺页中断次数超过预设次数阈值时,则查询内存中每一个内存页未被访问的持续时间。
步骤a2、当确定第一页面未被访问的持续时间最长时,则在内存中利用第四元数据结构体置换掉第一页面对应的第六元数据结构体,并将第五元数据结构体中的元数据解压缩后存储至第四元数据结构体中。
具体的,当确定第一页面未被访问的持续时间在内存中属于最长时间时,则说明第一页面可能不常被系统访问,因此可以在内存中将第四元数据结构体置换掉第一页面对应的第六元数据结构体,并解压缩第五元数据结构体中的元数据,并存储至第四元数据结构体中。
步骤a3、将第六元数据结构体中的元数据进行压缩处理后,存储至内存以外的其他预设存储位置。
具体的,第六元数据结构体因为已经被第四元数据结构体置换掉,换言之,就是在内存中创建与第四元数据结构体对应的物理资源,并释放掉第六元数据结构体对应的物理资源,然后,将第六元数据结构体中的元数据进行压缩后,存储至除内存以外的其他预设存储位置,例如硬盘中,后续也可以通过缺页中断等操作来实现访问与第六元数据结构体中的元数据对应的数据,其中,第一页面为内存中存储的任一内存页。
具体的,当待访问数据对应的缺页中断被触发的次数超过预设次数阈值时,则说明该待访问数据对应的元数据所对应的数据为内存中经常被访问的数据,多次的缺页中断会导致数据访问效率的降低。因此,可以在确定待访问数据对应的缺页中断被触发的次数超过预设次数阈值时,查询内存中未被访问页面的持续时间;
并将第四元数据结构体置换掉未被访问持续时间最长的数据对应的第六元数据结构体,并将第四元数据结构体存储在内存中,从而提高该待访问数据对应的数据的访问效率。并且,长时间未被访问的数据所对应的元数据则存储到除内存以外的其他预设存储位置,例如硬盘中,后续也可以根据缺页中断操作访问第一页面中的数据。
在一个可选的实施方式中,在获取数据访问指令之后,如果数据访问指令并非用以指示访问待访问数据,那么,该方法还可以包括:
步骤b1、当确定数据访问指令用以指示访问除待访问数据之外的其他数据时,预测后续进程是否会访问待访问数据。
步骤b2、当预测后续进程依然会访问待访问数据时,从第五元数据结构体中解压与待访问数据对应的元数据,并将待访问数据对应的元数据存储至第四元数据结构体。
具体的,除了根据数据访问指令继续与数据访问指令对应的数据之外,该方法还可以包括预测后续进程是否会访问待访问数据。预测过程可以根据进程的页面访问情况来预测未来会访问的页面。如果遇到未来可能会访问的页面即为待访问数据时,则事先从第五元数据结构体中解压与待访问数据对应的元数据,并将待访问数据对应的元数据存储至第四元数据结构体。用以后续可以直接在内存中调用第四元数据结构体中的元数据,访问待访问数据,提高数据访问效率。
图7是本发明实施例提供的一种具体的数据处理方法应用实例的流程示意图,具体参见图7所示,包括:
RAID卡上电启动。用户通过命令行界面(Command Line Interface,简称CLL)或者图形化界面(Graphical User Interface,简称GUI)输入读/写文件的操作指令。
RAID卡收到读/写命令后,驱动程序解析该命令。解析后的参数输入文件系统。通过参数判断文件大小。当确定为大文件时,采用第一处理模式对待处理文件进行切分,获取多个第一类待处理子文件。然后为每一个待处理子文件分配多个第一元数据结构体,以及与每一个第一元数据结构体对应的内存页。创建与第i个第一类待处理子文件对应的第二元数据结构体。将与第i个待处理子文件对应的多个第一元数据结构体中的元数据进行压缩后,存储至第二元数据结构体,释放多个第一元数据结构体所占用的存储资源。并在获取到数据访问指令时,通过如图6对应的方法实施例的实施方式进行处理,以执行读/写对应的文件内容后,结束。
通过上述方式完成元数据结构体对应的物理资源的动态分配、动态释放,以及对元数据进行解压等操作,以提高内存访问效率。
当确定为小文件时,则采用第二处理模式对待处理文件进行切分,获取多个第二类待处理子文件;创建与每一个第二类待处理子文件对应的第三元数据结构体,以及与每一个第三元数据结构体对应的内存页。并在获取到数据访问指令时,直接从第三元数据结构体中读取元数据,并基于已读取的元数据访问内存页中的数据即可,也即是读/写对应的文件内容后,结束。
具体的实施过程均已在前述实施例中做了详细介绍,因此这里不再过多解释说明。
图8中示意出包含本发明实施例的RAID卡的系统架构示意图,参见图8所示,RAID卡的固件层包括RAID卡内核、驱动程序、文件系统等等(其他部分在图8中没有说明),RAID卡内核和文件系统可以提供对文件和逻辑单元号(LogicalUnitNumber,简称LUN)访问的功能,以及对这些功能的管理。RAID卡中固件层的驱动程序和处理器执行一些程序指令,用于处理主机I/O请求。
图8中主机系统通过广域网(WideAreaNetwork,简称WAN)、地域网、无线WIFI连接、存储局域网络(StorageAreaNetwork,简称SAN)、局域网(Local Area Network,LAN,简称LAN)连接到存储系统,主机系统可以是打印机、笔记本电脑、外设、工作站和服务器等等,多个主机系统之间通过光纤电缆或者有限网络、无线网络等共享存储系统中的存储资源。网络可以包括一个有线网络或者多个无线连接的网络,一个网络可以通过交换机连接到其他外部网络,一个存储系统由多个RAID卡构成,多个存储系统之间可以通过以太网光纤通道(Fibre Channel over Ethernet,简称FCoE)、以太网、iSCSI(Internet Small ComputerSystem Interface,Internet小型计算机系统接口)、光纤通道等等连接组成一个大型的存储环境。需要注意的是,交换机、主机系统、服务器、网络和存储系统的数量和类型并不限于图8中所示的这些。除前述所介绍的这些内容外,RAID卡中还植入了内存管理、内存大小判断以及数据解压缩等程序代码,为了更加具体的向读者展示,这些在图8中以内存管理模块、大小内存判断模块以及压缩加速模块等进行展示。
在本实施例中还提供了一种数据处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种数据处理装置,如图9示,包括:获取模块901、解析模块902、文件管理模块903、内存判断模块904,以及内存管理模块905。
获取模块901,用于获取操作指令;
解析模块902,用于解析操作指令中的配置参数;
文件管理模块903,用于根据配置参数,确定待处理文件以及待处理文件所占用的存储空间;
内存判断模块904,用于确定待处理文件所占用的存储空间与预设阈值之间的大小关系,并根据大小关系,选择文件处理模式,其中,当确定待处理文件所占用的存储空间大于或等于预设阈值时,选择第一处理模式;或者,当前当确定待处理文件所占用的存储空间小于预设阈值时,选择第二处理模式;
内存管理模块905,用于当确定待处理文件所占用的存储空间大于或等于预设阈值时,采用第一处理模式对待处理文件进行切分,获取多个第一类待处理子文件;
为第i个第一类待处理子文件分别配置多个第一元数据结构体以及与每一个第一元数据结构体对应的内存页,第一元数据结构体中存储与第i个第一类待处理子文件对应的元数据,内存页用于存储第i个第一类待处理子文件中与元数据对应的数据,其中i为正整数,第i个第一类待处理子文件为多个第一类待处理子文件中的任一个;
创建与第i个第一类待处理子文件对应的第二元数据结构体;
将多个第一元数据结构体中的元数据进行压缩后存储至第二元数据结构体;释放多个第一元数据结构体所占用的存储资源。
在一个可选的实施方式中,内存管理模块905,还用于当确定待处理文件所占用的存储空间小于预设阈值时,采用第二处理模式对待处理文件进行切分,获取多个第二类待处理子文件,其中,第二类待处理子文件占用的存储空间等于第一类待处理子文件占用的存储空间;
创建与每一个第二类待处理子文件对应的第三元数据结构体,以及与每一个第三元数据结构体对应的内存页,第三元数据结构体中存储与第二类待处理子文件对应的元数据。
在一个可选的实施方式中,装置还包括:访问模块906;
获取模块901,还用于获取数据访问指令;
访问模块906,用于根据数据访问指令访问与待访问数据对应的元数据所属的第四元数据结构体;
内存管理模块905,还用于当确定第四元数据结构体对应的物理资源已被释放时,分配与第四元数据结构体对应的物理资源,并触发缺页中断操作;
根据缺页中断操作,从存储待访问数据对应的元数据的第五元数据结构体中解压待访问数据对应的元数据;
将待访问数据对应的元数据存储至第四元数据结构体,以便根据第四元数据结构体中存储的元数据访问待访问数据。
在一种可选的实施方式中,内存管理模块905,还用于:
当确定待访问数据访问完成后,释放与第四元数据结构体对应的物理资源。
在一种可选的实施方式中,内存管理模块905,具体用于:
按照第一字节存储单位对待处理文件进行切分,获取多个第三类待处理子文件;
针对每一个第三类待处理子文件,按照第二字节存储单位进行切分,获取多个第一类待处理子文件。
在一种可选的实施方式中,该装置还包括:统计模块907和查询模块908;
统计模块907,用于统计与待访问数据对应的元数据触发的缺页中断次数;
查询模块908,用于当缺页中断次数超过次数阈值时,查询内存中未被访问页面的持续时间;
内存管理模块905,还用于当确定第一页面未被访问的持续时间最长时,则在内存中利用第四元数据结构体置换掉第一页面对应的第六元数据结构体,并将第五元数据结构体中的元数据解压缩后存储至第四元数据结构体中;
将第六元数据结构体中的元数据进行压缩处理后,存储至内存以外的其他预设存储位置,其中,第一页面为内存中存储的任一内存页。
在一种可选的实施方式中,内存管理模块,还用于当确定数据访问指令用以指示访问除待访问数据之外的其他数据时,预测后续进程是否会访问待访问数据;当预测后续进程依然会访问待访问数据时,从第五元数据结构体中解压与待访问数据对应的元数据,并将待访问数据对应的元数据存储至第四元数据结构体。
在一种可选的实施方式中,第一字节存储单位为2M。
在一种可选的实施方式中,内存管理模块905,具体用于:
对待处理文件按照第二字节存储单位对待处理文件进行切分,获取多个第二类待处理子文件。
在一个可选的实施方式中,操作指令包括读操作指令或写操作指令。
在一种可选的实施方式中,第一元数据结构体、第三元数据结构体,以及第四元数据结构体为struct page结构。
在一种可选的实施方式中,struct page结构中的索引为与struct page结构对应的内存页的物理页帧号。
在一种可选的实施方式中,第二元数据结构体和第五元数据结构体为除structpage结构之外的任一元数据结构体。
在一种可选的实施方式中,预设阈值为2M。
在一种可选的实施方式中,第二字节存储单位为4KB。
本实施例中的数据处理装置是以功能模块的形式来呈现,这里的模块是指专用集成电路(Application Specific Integrated Circuit,简称ASIC),执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块和单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例提供的一种数据处理装置,当获取到操作指令后,解析操作指令中的配置参数。根据配置参数,确定待处理文件以及待处理文件所占用的存储空间。如果确定待处理文件所占用的存储空间大于或等于预设阈值时,则可以确定待处理文件为大文件。需要采用第一处理模式对待处理文件进行切分,获取第一类待处理子文件。然后为每一个待处理子文件分别配置多个第一元数据结构体,以及与每一个第一元数据结构体对应的内存页,用以分别存储元数据,以及与元数据对应的数据。考虑到多个第一元数据结构体将占用更多的存储空间。因此,可以创建一个第二元数据结构体,然后将多个第一元数据结构体中的元数据进行压缩后,存储至第二元数据结构体,进而释放第一元数据结构体所占用的存储空间。通过该方式,利用压缩方式降低多个第一元数据结构体所占用的存储空间,也即是降低内存占用率,而且,上述方案中直接在内核层做一次内部映射,也即是直接通过第一元数据结构体映射到对应的数据,相较于已有技术中的方案,映射次数减少。不论是存储空间的占用率的降低还是映射次数的减少,都可以提升RAID卡内存访问效率。
本发明实施例还提供一种磁盘阵列卡,具有上述图9所示的数据处理装置。
请参阅图10,图10是本发明可选实施例提供的一种磁盘阵列卡的结构示意图,如图10所示,该磁盘阵列卡包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在磁盘阵列卡内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个磁盘阵列卡,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图10中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据一种小程序落地页的展现的磁盘阵列卡的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该磁盘阵列卡。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该磁盘阵列卡还包括输入装置30和输出装置40。处理器10、存储器20、输入装置30和输出装置40可以通过总线或者其他方式连接,图10中以通过总线连接为例。
输入装置30可接收输入的数字或字符信息,以及产生与该磁盘阵列卡的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等。输出装置40可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。上述显示设备包括但不限于液晶显示器,发光二极管,显示器和等离子体显示器。在一些可选的实施方式中,显示设备可以是触摸屏。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (17)

1.一种数据处理方法,其特征在于,所述方法应用于一种磁盘阵列卡,所述方法包括:
当获取到操作指令后,解析所述操作指令中的配置参数;
根据所述配置参数,确定待处理文件以及所述待处理文件所占用的存储空间;
当确定所述待处理文件所占用的存储空间大于或等于预设阈值时,采用第一处理模式对所述待处理文件进行切分,获取多个第一类待处理子文件;
为第i个所述第一类待处理子文件分别配置多个第一元数据结构体以及与每一个所述第一元数据结构体对应的内存页,所述第一元数据结构体中存储与所述第i个所述第一类待处理子文件对应的元数据,所述内存页用于存储第i个所述第一类待处理子文件中与所述元数据对应的数据,其中i为正整数,第i个所述第一类待处理子文件为所述多个第一类待处理子文件中的任一个;
创建与第i个所述第一类待处理子文件对应的第二元数据结构体;
将多个所述第一元数据结构体中的元数据进行压缩后,存储至第二元数据结构体,释放多个所述第一元数据结构体所占用的存储资源;
获取数据访问指令;
根据所述数据访问指令访问与待访问数据对应的元数据所属的第四元数据结构体;
当确定所述第四元数据结构体对应的物理资源已被释放时,分配与所述第四元数据结构体对应的物理资源,并触发缺页中断操作;
根据所述缺页中断操作,从存储所述待访问数据对应的元数据的第五元数据结构体中解压所述待访问数据对应的元数据;
将所述待访问数据对应的元数据存储至所述第四元数据结构体,以便根据所述第四元数据结构体中存储的元数据访问所述待访问数据;
统计与所述待访问数据对应的元数据触发的缺页中断次数,当所述缺页中断次数超过次数阈值时,查询内存中未被访问页面的持续时间;
当确定第一页面未被访问的持续时间最长时,则在所述内存中利用所述第四元数据结构体置换掉所述第一页面对应的第六元数据结构体,并将所述第五元数据结构体中的元数据解压缩后存储至所述第四元数据结构体中;
将所述第六元数据结构体中的元数据进行压缩处理后,存储至所述内存以外的其他预设存储位置,其中,所述第一页面为所述内存中存储的任一内存页。
2.根据权利要求1所述的方法,其特征在于,当确定所述待处理文件所占用的存储空间小于所述预设阈值时,采用第二处理模式对所述待处理文件进行切分,获取多个第二类待处理子文件,其中,所述第二类待处理子文件占用的存储空间等于所述第一类待处理子文件占用的存储空间;
创建与每一个所述第二类待处理子文件对应的第三元数据结构体,以及与每一个所述第三元数据结构体对应的内存页,所述第三元数据结构体中存储与所述第二类待处理子文件对应的元数据。
3.根据权利要求1所述的方法,其特征在于,当确定所述待访问数据访问完成后,释放与所述第四元数据结构体对应的物理资源。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述当确定所述待处理文件所占用的存储空间大于或等于预设阈值时,采用第一处理模式对所述待处理文件进行切分,获取多个第一类待处理子文件,具体包括:
按照第一字节存储单位对所述待处理文件进行切分,获取多个第三类待处理子文件;
针对每一个所述第三类待处理子文件,按照第二字节存储单位进行切分,获取多个所述第一类待处理子文件。
5.根据权利要求1或3所述的方法,其特征在于,所述获取所述数据访问指令之后,所述方法还包括:
当确定所述数据访问指令用以指示访问除所述待访问数据之外的其他数据时,预测后续进程是否会访问所述待访问数据;当预测后续进程依然会访问所述待访问数据时,从所述第五元数据结构体中解压与所述待访问数据对应的元数据,并将所述待访问数据对应的元数据存储至所述第四元数据结构体。
6.根据权利要求2所述的方法,其特征在于,所述当确定所述待处理文件所占用的存储空间小于所述预设阈值时,采用第二处理模式对所述待处理文件进行切分,获取多个第二类待处理子文件,具体包括:
对所述待处理文件按照第二字节存储单位对所述待处理文件进行切分,获取多个所述第二类待处理子文件。
7.根据权利要求1-3任一项所述的方法,其特征在于,所述操作指令包括读操作指令或写操作指令。
8.根据权利要求2所述的方法,其特征在于,第一元数据结构体、第三元数据结构体,以及第四元数据结构体为struct page结构。
9.根据权利要求8所述的方法,其特征在于,struct page结构中的索引为与所述struct page结构对应的内存页的物理页帧号。
10.根据权利要求1所述的方法,其特征在于,所述第二元数据结构体和所述第五元数据结构体为除struct page结构之外的任一元数据结构体。
11.根据权利要求1-3任一项所述的方法,其特征在于,所述预设阈值为2M。
12.一种数据处理装置,其特征在于,所述数据处理装置包括:
获取模块,用于获取操作指令;
解析模块,用于解析所述操作指令中的配置参数;
文件管理模块,用于根据所述配置参数,确定待处理文件以及所述待处理文件所占用的存储空间;
内存判断模块,用于确定所述待处理文件所占用的存储空间与预设阈值之间的大小关系,并根据所述大小关系,选择文件处理模式,其中,当确定所述待处理文件所占用的存储空间大于或等于预设阈值时,选择第一处理模式;当前当确定所述待处理文件所占用的存储空间小于所述预设阈值时,选择第二处理模式;
内存管理模块,用于当确定所述待处理文件所占用的存储空间大于或等于预设阈值时,采用第一处理模式对所述待处理文件进行切分,获取多个第一类待处理子文件;
为第i个所述第一类待处理子文件分别配置多个第一元数据结构体以及与每一个所述第一元数据结构体对应的内存页,所述第一元数据结构体中存储与所述第i个所述第一类待处理子文件对应的元数据,所述内存页用于存储第i个所述第一类待处理子文件中与所述元数据对应的数据,其中i为正整数,第i个所述第一类待处理子文件为所述多个第一类待处理子文件中的任一个;
创建与第i个所述第一类待处理子文件对应的第二元数据结构体;
将多个所述第一元数据结构体中的元数据进行压缩后存储至第二元数据结构体;释放多个所述第一元数据结构体所占用的存储资源;
所述获取模块,还用于获取数据访问指令;
访问模块,用于根据所述数据访问指令访问与待访问数据对应的元数据所属的第四元数据结构体;
所述内存管理模块,还用于当确定所述第四元数据结构体对应的物理资源已被释放时,分配与所述第四元数据结构体对应的物理资源,并触发缺页中断操作;根据所述缺页中断操作,从存储所述待访问数据对应的元数据的第五元数据结构体中解压所述待访问数据对应的元数据;将所述待访问数据对应的元数据存储至所述第四元数据结构体,以便根据所述第四元数据结构体中存储的元数据访问所述待访问数据;
统计模块,用于统计与所述待访问数据对应的元数据触发的缺页中断次数;
查询模块,用于当所述缺页中断次数超过次数阈值时,查询内存中未被访问页面的持续时间;
所述内存管理模块,还用于当确定第一页面未被访问的持续时间最长时,则在所述内存中利用所述第四元数据结构体置换掉所述第一页面对应的第六元数据结构体,并将所述第五元数据结构体中的元数据解压缩后存储至所述第四元数据结构体中;将所述第六元数据结构体中的元数据进行压缩处理后,存储至所述内存以外的其他预设存储位置,其中,所述第一页面为所述内存中存储的任一内存页。
13.根据权利要求12所述的装置,其特征在于,所述内存管理模块,还用于当确定所述待处理文件所占用的存储空间小于所述预设阈值时,采用第二处理模式对所述待处理文件进行切分,获取多个第二类待处理子文件,其中,所述第二类待处理子文件占用的存储空间等于所述第一类待处理子文件占用的存储空间;
创建与每一个所述第二类待处理子文件对应的第三元数据结构体,以及与每一个所述第三元数据结构体对应的内存页,所述第三元数据结构体中存储与所述第二类待处理子文件对应的元数据。
14.根据权利要求12所述的装置,其特征在于,所述内存管理模块,还用于:
当确定所述待访问数据访问完成后,释放与所述第四元数据结构体对应的物理资源。
15.根据权利要求12所述的装置,其特征在于,所述操作指令包括读操作指令或写操作指令。
16.一种磁盘阵列卡,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至11中任一项所述的数据处理方法。
17.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至11中任一项所述的数据处理方法。
CN202311388696.5A 2023-10-25 2023-10-25 数据处理方法、装置、磁盘阵列卡及介质 Active CN117130565B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311388696.5A CN117130565B (zh) 2023-10-25 2023-10-25 数据处理方法、装置、磁盘阵列卡及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311388696.5A CN117130565B (zh) 2023-10-25 2023-10-25 数据处理方法、装置、磁盘阵列卡及介质

Publications (2)

Publication Number Publication Date
CN117130565A CN117130565A (zh) 2023-11-28
CN117130565B true CN117130565B (zh) 2024-02-06

Family

ID=88863082

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311388696.5A Active CN117130565B (zh) 2023-10-25 2023-10-25 数据处理方法、装置、磁盘阵列卡及介质

Country Status (1)

Country Link
CN (1) CN117130565B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955495A (zh) * 2019-11-26 2020-04-03 网易(杭州)网络有限公司 虚拟化内存的管理方法、装置和存储介质
CN113296940A (zh) * 2021-03-31 2021-08-24 阿里巴巴新加坡控股有限公司 数据处理方法及装置
WO2022057749A1 (zh) * 2020-09-21 2022-03-24 华为技术有限公司 内存缺页异常的处理方法、装置、设备及存储介质
CN115599544A (zh) * 2022-10-12 2023-01-13 阿里巴巴(中国)有限公司(Cn) 内存管理方法、装置、计算机设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110955495A (zh) * 2019-11-26 2020-04-03 网易(杭州)网络有限公司 虚拟化内存的管理方法、装置和存储介质
WO2022057749A1 (zh) * 2020-09-21 2022-03-24 华为技术有限公司 内存缺页异常的处理方法、装置、设备及存储介质
CN113296940A (zh) * 2021-03-31 2021-08-24 阿里巴巴新加坡控股有限公司 数据处理方法及装置
CN115599544A (zh) * 2022-10-12 2023-01-13 阿里巴巴(中国)有限公司(Cn) 内存管理方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN117130565A (zh) 2023-11-28

Similar Documents

Publication Publication Date Title
US9898427B2 (en) Method and apparatus for accessing multiple storage devices from multiple hosts without use of remote direct memory access (RDMA)
US10552085B1 (en) Techniques for directed data migration
CN106354425B (zh) 基于数据属性的数据布局的方法和系统
US10222988B2 (en) Efficient management storage system via defining of several size units in advance
US9756128B2 (en) Switched direct attached shared storage architecture
US9582222B2 (en) Pre-cache similarity-based delta compression for use in a data storage system
US9454332B2 (en) Assimilation of foreign LUNS into a network storage system
US8825963B1 (en) Dynamic balancing of performance with block sharing in a storage system
US11029862B2 (en) Systems and methods for reducing write tax, memory usage, and trapped capacity in metadata storage
JP2019079113A (ja) ストレージ装置、データ管理方法、及びデータ管理プログラム
KR20150105323A (ko) 데이터 스토리지 방법 및 시스템
US11907129B2 (en) Information processing device, access controller, information processing method, and computer program for issuing access requests from a processor to a sub-processor
US20150363134A1 (en) Storage apparatus and data management
CN111143234A (zh) 存储设备、包括这种存储设备的系统及其操作方法
CN102841854A (zh) 根据动态分级存储器缓存认知执行数据读取的方法和系统
US10579540B2 (en) Raid data migration through stripe swapping
Lee et al. ActiveSort: Efficient external sorting using active SSDs in the MapReduce framework
US9703795B2 (en) Reducing fragmentation in compressed journal storage
US20170220476A1 (en) Systems and Methods for Data Caching in Storage Array Systems
US11315028B2 (en) Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system
US20130275679A1 (en) Loading a pre-fetch cache using a logical volume mapping
CN117130565B (zh) 数据处理方法、装置、磁盘阵列卡及介质
US9767029B2 (en) Data decompression using a construction area
US8990523B1 (en) Storage apparatus and its data processing method
US10320907B2 (en) Multi-stage prefetching to exploit long-term future data access sequence knowledge

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