CN113590309A - 一种数据处理方法、装置、设备及存储介质 - Google Patents

一种数据处理方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113590309A
CN113590309A CN202110744916.8A CN202110744916A CN113590309A CN 113590309 A CN113590309 A CN 113590309A CN 202110744916 A CN202110744916 A CN 202110744916A CN 113590309 A CN113590309 A CN 113590309A
Authority
CN
China
Prior art keywords
target data
data
file system
cache
metadata
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
Application number
CN202110744916.8A
Other languages
English (en)
Other versions
CN113590309B (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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information 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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN202110744916.8A priority Critical patent/CN113590309B/zh
Publication of CN113590309A publication Critical patent/CN113590309A/zh
Application granted granted Critical
Publication of CN113590309B publication Critical patent/CN113590309B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本申请公开了一种数据处理方法、装置、设备及存储介质,具体的,获取基于文件系统接口接收到的数据处理请求,该数据处理请求包括针对存储设备中的目标数据的处理操作类型,并根据该数据处理请求中的处理操作类型,对存储设备中的目标数据进行相应处理,并在完成处理后,生成针对目标数据的缓存失效指令,从而根据该缓存失效指令,利用预先配置的缓存失效操作接口,对虚拟文件系统中存储的目标数据的元数据以及文件系统的缓存中存储的目标数据的元数据进行无效。由于在处理目标数据的过程中,可以数据流动可以发生在存储设备之间,无需通过存储链路进入主机、跨越主机操作系统的存储栈再写出到存储设备,从而无需Linxu系统以及CPU接入,释放了CPU的计算能力。

Description

一种数据处理方法、装置、设备及存储介质
技术领域
本申请涉及数据处理技术领域,特别是涉及一种数据处理方法、装置、设备及存储介质。
背景技术
在服务器虚拟化及超融合等应用场景中,由于QEMU-KVM的优异的虚拟化性能及成熟度,Linux常被选为虚拟化系统内核用于构建超融合系统。超融合系统包含存储管理软件和商用硬件,通常应用虚拟存储设备,其采用以虚拟机(Virtual Machine,VM)为中心的策略将存储管理、数据保护和网络集成到一个盒子。其中,Linux系统可以包括虚拟文件系统(Virtual File System,VFS)层,并且,VFS层所具有的抽象设计,可以屏蔽Linux系统和具体的文件系统实现,使其很好的支持多种文件系统,如ext3、ext4、xfs、btrfs等单机文件系统,也支持如GFS、GlusterFS、OCFS2等集群或者分布式文件系统。这些单机或集群文件系统常被用于构建服务器虚拟化系统中的存储池,基于文件系统提供的特性可方便实现快照、数据备份、扩容、HA等虚拟化系统服务。
在Linux系统中,用户态的针对数据读写的输入输出(Inout/Output,IO)会通过系统调用进入内核层,经由VFS层、文件系统层、块层、设备驱动层,才会到达真正的存储设备并对存储设备中的数据进行读写。其中,IO经过的所有抽象层统称为IO栈。为了避免较深的IO栈对性能的影响,Linux设计中会充分利用缓存机制来提高性能,在文件系统中主要有数据缓存(dcache)、页缓存(page cache)等。在Linux VFS设计方案下,数据访问必须通过操作系统提供的IO接口来进行,由kernel和VFS、缓存机制等配合,才能保证的完整性。如果试图跨越kernel、VFS等,直接对块设备乃至磁盘进行访问,就出现一致性问题。这是因为内核对缓存的管理是自上而下的,上层的修改可以停留在缓存,并在适当时机下刷到磁盘。也即磁盘上的数据完整性完全由内核及VFS层决定,而底层数据的修改是无法被上层感知的。并且,基于文件系统接口的拷贝必须由主机CPU和操作系统的介入,既占用系统计算资源,也无法发挥存储设备的加速特性,这就使得超融合系统中实现诸如数据拷贝卸载、数据迁移卸载、虚拟磁盘第三方应用接口访问等非常困难。
发明内容
本申请实施例提供了一种数据处理方法、装置、设备及存储介质,以使得超融合系统能够支持对文件系统内数据拷贝、数据迁移、第三方应用数据访问等操作,使得超融合系统既可以充分利用文件系统的特性又能够发挥存储设备拷贝等功能。
第一方面,本申请实施例提供了一种数据处理方法,所述方法应用于将Linux系统作为系统内核的超融合系统,所述超融合系统还包括虚拟文件系统、文件系统以及存储设备,所述方法包括:
获取基于文件系统接口接收到的数据处理请求,所述数据处理请求包括针对所述目标数据的处理操作类型;
根据所述数据处理请求中的处理操作类型,对存储设备中的目标数据进行相应处理;
在完成对所述目标数据的处理后,生成针对所述目标数据的缓存失效指令,所述缓存失效指令包括所述目标数据的标识;
基于所述缓存失效指令,利用预先配置的缓存失效操作接口,对所述虚拟文件系统的缓存中存储的所述目标数据的元数据以及所述文件系统的缓存中存储的所述目标数据的元数据进行无效。
在一种可能的实施方式中,所述处理操作类型包括数据拷贝、数据迁移、数据卸载中的任意一种。
在一种可能的实施方式中,所述处理操作包括数据拷贝或数据迁移,所述根据所述数据处理请求中的处理操作类型,对存储设备中的目标数据进行相应处理包括:
在所述存储设备中为所述目标数据分配新的目标存储空间,所述目标存储空间的容量不低于所述目标数据的数据量;
根据所述数据处理请求所指示的数据拷贝操作或数据迁移操作,在所述目标存储空间存储所述目标数据。
在一种可能的实施方式中,所述在所述存储设备中为所述目标数据分配新的目标存储空间包括:
利用所述虚拟文件系统提供的预分配接口在所述存储设备中为所述目标数据分配新的目标存储空间。
在一种可能的实施方式中,在对所述虚拟文件系统中存储的所述目标数据的元数据以及所述文件系统的缓存中存储的所述目标数据的元数据进行无效后,所述方法还包括
接收来自Linux系统的针对所述目标数据的数据访问请求;
从所述虚拟文件系统和/或所述文件系统的缓存中查询所述目标数据的元数据;
当从所述虚拟文件系统和/或所述文件系统的缓存中查询到所述目标数据的元数据无效时,访问所述存储设备,以获得所述目标数据。
在一种可能的实施方式中,所述虚拟文件系统的缓存中存储的所述目标数据的元数据,包括所述目标数据在所述虚拟文件系统的缓存中的页缓存元数据;
所述文件系统的缓存中存储的所述目标数据的元数据,包括所述目标数据在所述文件系统的缓存中的存储区间元数据和/或索引节点元数据。
在一种可能的实施方式中,所述对所述虚拟文件系统中存储的所述目标数据的元数据以及所述文件系统的缓存中存储的所述目标数据的元数据进行无效包括:
当所述存储设备中的目标数据未被进程访问时,对所述虚拟文件系统中存储的所述目标数据的元数据以及所述文件系统的缓存中存储的所述目标数据的元数据进行无效。
第二方面,本申请实施例提供了一种数据处理装置,所述装置应用于将Linux系统作为系统内核的超融合系统,所述超融合系统还包括虚拟文件系统、文件系统以及存储设备,所述装置包括:
获取模块,用于获取基于文件系统接口接收到的数据处理请求,所述数据处理请求包括针对所述目标数据的处理操作类型;
数据处理模块,用于根据所述数据处理请求中的处理操作类型,对存储设备中的目标数据进行相应处理;
指令执行模块,用于在完成对所述目标数据的处理后,生成针对所述目标数据的缓存失效指令,所述缓存失效指令包括所述目标数据的标识;
无效数据模块,用于基于所述缓存失效指令,利用预先配置的缓存失效操作接口,对所述虚拟文件系统的缓存中存储的所述目标数据的元数据以及所述文件系统的缓存中存储的所述目标数据的元数据进行无效。
在一种可能的实施方式中,所述处理操作类型包括数据拷贝、数据迁移、数据卸载中的任意一种。
在一种可能的实施方式中,所述处理操作包括数据拷贝或数据迁移,所述数据处理模块,包括:
分配单元,用于在所述存储设备中为所述目标数据分配新的目标存储空间,所述目标存储空间的容量不低于所述目标数据的数据量;
存储单元,用于根据所述数据处理请求所指示的数据拷贝操作或数据迁移操作,在所述目标存储空间存储所述目标数据。
在一种可能的实施方式中,所述分配单元,具体用于利用所述虚拟文件系统提供的预分配接口在所述存储设备中为所述目标数据分配新的目标存储空间。
在一种可能的实施方式中,在对所述虚拟文件系统中存储的所述目标数据的元数据以及所述文件系统的缓存中存储的所述目标数据的元数据进行无效后,所述装置还包括
接收模块,用于接收来自Linux系统的针对所述目标数据的数据访问请求;
查询模块,用于从所述虚拟文件系统和/或所述文件系统的缓存中查询所述目标数据的元数据;
设备访问模块,用于当从所述虚拟文件系统和/或所述文件系统的缓存中查询到所述目标数据的元数据无效时,访问所述存储设备,以获得所述目标数据。
在一种可能的实施方式中,所述虚拟文件系统的缓存中存储的所述目标数据的元数据,包括所述目标数据在所述虚拟文件系统的缓存中的页缓存元数据;
所述文件系统的缓存中存储的所述目标数据的元数据,包括所述目标数据在所述文件系统的缓存中的存储区间元数据和/或索引节点元数据。
在一种可能的实施方式中,所述无效数据模块,具体用于当所述存储设备中的目标数据未被进程访问时,对所述虚拟文件系统中存储的所述目标数据的元数据以及所述文件系统的缓存中存储的所述目标数据的元数据进行无效。
第三方面,本申请实施例还提供了一种设备,该设备可以包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行上述第一方面以及第一方面中任一种实施方式所述的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述第一方面以及第一方面中任一种实施方式所述的方法。
在本申请实施例的上述实现方式中,获取基于文件系统接口接收到的数据处理请求,该数据处理请求包括针对存储设备中的目标数据的处理操作类型,如数据拷贝、数据迁移、数据卸载等;然后,根据该数据处理请求中的处理操作类型,对存储设备中的目标数据进行相应处理,并在完成处理后,生成针对目标数据的缓存失效指令,从而根据该缓存失效指令,利用预先配置的缓存失效操作接口,对虚拟文件系统的缓存中存储的目标数据的元数据以及文件系统的缓存中存储的目标数据的元数据进行无效。由于在处理目标数据的过程中,数据流动可以发生在存储设备之间,无需通过存储链路进入主机、跨越主机操作系统的存储栈再写出到存储设备,从而无需Linxu系统以及CPU接入,释放了CPU的计算能力,并且又能具有更高的效率。同时,在存储设备中的目标数据发生变更后,通过对虚拟文件系统以及文件系统中缓存的元数据进行无效,可以避免后续对于该目标数据的访问发生错误,如目标数据在发生变更后,Linxu系统基于缓存机制所访问得到的目标数据依然是变更前的旧数据等。如此,保证了文件系统数据的一致性,使得超融合系统在充分利用文件系统的优势的同时,又能充分发挥超融合系统中软件定义存储卸载等特性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例中一种超融合系统的架构示意图;
图2为本申请实施例中一种数据处理方法的流程示意图;
图3为本申请实施例中一种数据处理装置的结构示意图;
图4为本申请实施例中一种设备的硬件结构示意图。
具体实施方式
参见图1,为本申请提供的一种基于超融合架构(Hyper ConvergenceInfrastructure,HCI)的超融合系统的架构示意图。如图1所示,该超融合系统100中包括作为系统内核的Linux系统101、虚拟文件系统102、文件系统103、存储设备104。其中,存储设备104中可以包括一个或者多个存储器,图1中以包括两个存储器为例进行示例性说明。进一步的,文件系统103与存储设备104之间,还可以具有块层105以及设备驱动层106。
当Linux系统101需要访问存储设备104中的待访问数据时,Linux系统101可以生成数据访问请求,该数据访问请求例如可以是IO。Linux系统101生成的数据访问请求需要依次经过Linux系统101、虚拟文件系统102、文件系统103、块层105、设备驱动层106以及存储设备104,才会到达真正的存储设备。实际应用时,数据访问请求所经过的所有抽象层可以被统称为IO栈,该IO栈可以用于对数据访问请求进行相应的处理,以便于实现对存储设备中的数据进行访问。比如,当Linux系统101所请求的待访问数据的数据量较大时,该数据访问请求在经过IO栈时,可以被切分为多个IO,其中,每个IO用于访问待访问数据中的一部分。又比如,IO栈可以调整或限制每个IO的数据访问带宽等。
为了避免较深的IO栈对性能的影响,Linux设计中可以利用缓存机制来提高性能。具体的,Linux系统101对于存储设备中数据的修改信息,可以暂存在虚拟文件系统102以及文件系统103的缓存中,然后在适当的时机(如达到下盘周期或者缓存中的数据量达到一定数据量等)将Linux系统101修改的数据下刷到存储设备。
由于在Linux VFS设计方案下,基于文件系统接口对存储设备中数据的处理必须通过操作系统提供的IO接口来实现,并需要kernel和VFS、缓存机制等配合,才能保证数据的完整性。这使得对于存储设备中数据的处理必须由超融合系统100中CPU和Linux系统101的介入,既占用Linux系统101的计算资源,也无法发挥存储设备104的加速特性。
为此,本申请实施例提供了一种数据处理方法,首先,获取基于文件系统接口接收到的数据处理请求,该数据处理请求包括针对存储设备104中的目标数据的处理操作类型,如数据拷贝、数据迁移、数据卸载等;然后,根据该数据处理请求中的处理操作类型,对存储设备104中的目标数据进行相应处理,并在完成处理后,生成针对目标数据的缓存失效指令,从而根据该缓存失效指令,利用预先配置的缓存失效操作接口,对虚拟文件系统的缓存中存储的目标数据的元数据以及文件系统的缓存中存储的目标数据的元数据进行无效。由于在处理目标数据的过程中,可以无需Linxu系统101以及CPU接入,数据流动可以发生在存储设备104之间,无需通过存储链路进入主机、跨越主机操作系统的存储栈再写出到存储设备104,释放了CPU的计算能力,并且又能具有更高的效率。同时,在存储设备104中的目标数据发生变更后,通过对虚拟文件系统102以及文件系统103中缓存的元数据进行无效,可以避免后续对于该目标数据的访问发生错误,如目标数据在发生变更后,Linxu系统101基于缓存机制所访问得到的目标数据依然是变更前的旧数据等。如此,保证了文件系统数据的一致性,使得超融合系统在充分利用文件系统的优势的同时,又能充分发挥超融合系统中软件定义存储卸载等特性。
可以理解的是,图1所示的超融合系统100的架构仅是本申请实施例提供的一个架构示例,实际应用时,超融合系统100的架构还可以是采用其它方式,如超融合系统100的架构中还可以包括更多的抽象层或者包括更多的器件等。
为使本申请的上述目的、特征和优点能够更加明显易懂,下面将结合附图对本申请实施例中的各种非限定性实施方式进行示例性说明。显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
参阅图2,图2示出了本申请实施例中一种数据处理方法的流程示意图,该方法可以应用于图1所示的超融合系统100中,并且可以由超融合系统100中的数据处理装置进行执行,该数据处理装置可以通过硬件或者软件实现。
具体的,该方法具体可以包括:
S201:获取基于文件系统接口接收到的数据处理请求,该数据处理请求包括针对目标数据的处理操作类型。
本实施例中,在对存储设备104中的目标数据进行处理时,可以通过文件系统103的接口接收针对该目标数据的数据处理请求。例如,当第三方应用需要修改存储设备中的目标数据时,第三方应用可以生成数据处理请求,并将该数据处理请求发送给文件系统103的接口,从而基于该文件系统103的接口接收到数据处理请求。
其中,数据处理请求中包括针对目标数据的处理操作类型,该处理操作类型例如可以包括数据拷贝(或者称之为数据备份),实现将存储设备中的目标数据备份至该存储设备中的另一存储区域,或者备份至其它存储设备中。或者,该处理操作类型,例如可以是数据迁移,实现将存储设备中的目标数据迁移至该存储设备中的另一存储区域,或者迁移至其它存储设备中进行存储。或者,该处理操作类型例如可以是数据卸载,用于实现将存储设备中的目标数据进行删除。实际应用时,处理操作类型也可以是其它可适用的操作类型,本实施例对此并不进行限定。
S202:根据数据处理请求中的处理操作类型,对存储设备中的目标数据进行相应处理。
在一些可能的实施方式中,当处理操作类型具体为数据卸载时,则可以直接将存储设备中的目标数据进行删除处理。而当处理操作类型具体为数据拷贝或者数据迁移时,可以在该存储设备(或者其它存储设备)中为目标数据分配新的目标存储空间,该新的目标存储空间的容量不低于该目标数据的数据量,以便具有足够的存储空间来存储迁移或者备份后的目标数据。示例性地,基于Linux的虚拟文件系统102提供了标准的预分配(fallocate)接口可实现厚置备延迟置零类型的空间分配,其本质上就是在存储设备104上预留出数据空间,但并不真正进行写入。因此,可以利用虚拟文件系统102提供的预分配接口为存储设备中目标数据分配新的目标存储空间。然后,根据该数据处理请求中的数据拷贝操作或数据迁移操作,在新分配的目标存储空间存储该目标数据。其中,若处理操作类型为数据迁移操作,则在目标存储空间存储目标数据的同时,目标数据原先所占用的存储空间可以被释放。数据拷贝和迁移过程中,数据流动发生在存储设备内部,并不会经由物理链路进入主机。在数拷贝过程中不需CPU参与,可充分释放CPU算力给用户任务。
实际应用时,在数据迁移或者数据拷贝过程中,可以先获取目标数据在拷贝或者迁移前所占用的原始存储空间的地址,以及目标数据在拷贝或者迁移后所占用的目标存储空间的地址,例如可以是通过预先开发的辅助工具计算得到原始存储空间以及目标存储空间的地址等。这样,可以根据原始存储空间的地址,将目标数据写入目标存储空间。其中,由于在超融合系统100中用于处理数据的命令所对应的操作对象为逻辑单元号(LogicalUnit Number,LUN),并不会感知文件系统。因此,所确定出的原始存储空间以及目标存储空间的地址,具体可以是目标数据的逻辑地址对应LUN上的偏移,后续数据拷贝、卸载等操作均针对该LUN进行。
S203:在完成对目标数据的处理后,生成针对目标数据的缓存失效指令,该缓存失效指令包括目标数据的标识。
S204:基于生成的缓存失效指令,利用预先配置的缓存失效操作接口,对虚拟文件系统102的缓存中存储的目标数据的元数据以及文件系统103的缓存中存储的所述目标数据的元数据进行无效。
由于在超融合系统100中,虚拟文件系统102及缓存设计机制并不支持自下向上同步,也即底层存储设备100中的数据变更,底层数据的修改是无法被上层感知,也就难以对虚拟文件系统102以及文件系统103的缓存中用于描述目标数据的元数据进行同步更新。此时,若超融合系统100中的Linux系统101需要访问目标数据,则Linxu系统仍然根据虚拟文件系统102以及文件系统103的缓存中的元数据访问数据,这使得Linxu系统最终所访问到的数据可能并非为经过处理后的目标数据,或者,当目标数据经过数据迁移处理后,Linux系统根据缓存中的元数据可能无法访问到有效数据。
为此,本实施例中,在完成对于目标数据的处理后,可以对虚拟文件系统102以及文件系统103的缓存中关于目标数据的元数据进行无效,以避免该缓存中的元数据未被同步更新而造成数据访问失败或者发生数据访问错误。具体实现时,可以生成针对目标数据的缓存失效指令,该缓存失效指令中包括目标数据的标识,如包括目标数据的描述符等。由于虚拟文件系统102及其缓存设计机制并不支持自下向上同步,并且,文件系统103也并未提供相应接口。为此,本实施例中,可以预先配置用于实现自下向上进行信息同步的缓存失效操作接口,并基于生成的缓存失效指令,通过该预先配置的缓存失效操作接口对虚拟文件系统102中存储的目标数据的元数据以及文件系统103的缓存中存储的所述目标数据的元数据进行无效。这样,当Linxu系统101需要访问存储设备中的目标数据时,由于虚拟文件系统102以及文件系统103的缓存中针对目标数据的元数据无效,因此,Linux系统可以通过访问底层的存储设备来获得目标数据,以此避免Linux访问数据失败或者访问获得错误的数据。
示例性地,虚拟文件系统102的缓存中存储的目标数据的元数据,例如可以是目标数据在所述虚拟文件系统的缓存中的页缓存(page cache)元数据,其中,当目标数据为一份文件中的部分数据时,所无效的页缓存元数据可以是该文件的部分数据所对应的页缓存元数据,而对于该文件的其余部分数据所对应的页缓存元数据可以不进行无效。而文件系统103的缓存中存储的目标数据的元数据,例如可以是目标数据在文件系统103的缓存中的存储区间(extent)元数据和/或索引节点(inode)元数据数据。如此,可以使得文件系统103能够感知到底层的存储设备104上所发生的数据变动。
实际应用时,在对目标数据对应的元数据进行无效之前,还可以预先检查当前在超融合系统100中是否存在进程正在访问目标数据,若存在,则可以暂时不对该目标数据所对应的元数据进行无效,以避免进程访问目标数据出错。而若不存在,也即存储设备中的目标数据未被进程访问时,可以对虚拟文件系统102中存储的目标数据的元数据以及文件系统103的缓存中存储的所述目标数据的元数据进行无效。
在进一步可能的实施方式中,在对目标数据对应的上述元数据进行无效后,当Linxu系统101需要访问发生数据变动后的目标数据时,可以生成针对该目标数据的数据访问请求,从而下层在接收并执行数据访问请求时,可以先从虚拟文件系统102和/或文件系统103的缓存中查找该目标数据所对应的元数据。由于该缓存中存储的目标数据对应的元数据发生失效,或者元数据在失效后被删除,此时,因为查找到的元数据失效或者查找元数据失败,可以从底层的存储设备中继续查找该目标数据,如此,可以使得Linux系统最终能够获得存储设备中的发生数据变动后的新的目标数据,以此避免Linux系统访问错误数据或者访问数据失败。
本实施例中,获取基于文件系统接口接收到的数据处理请求,该数据处理请求包括针对存储设备中的目标数据的处理操作类型,如数据拷贝、数据迁移、数据卸载等;然后,根据该数据处理请求中的处理操作类型,对存储设备中的目标数据进行相应处理,并在完成处理后,生成针对目标数据的缓存失效指令,从而根据该缓存失效指令,利用预先配置的缓存失效操作接口,对虚拟文件系统的缓存中存储的目标数据的元数据以及文件系统的缓存中存储的目标数据的元数据进行无效。由于在处理目标数据的过程中,数据流动可以发生在存储设备之间,无需通过存储链路进入主机、跨越主机操作系统的存储栈再写出到存储设备,从而无需Linxu系统以及CPU接入,释放了CPU的计算能力,并且又能具有更高的效率。同时,在存储设备中的目标数据发生变更后,通过对虚拟文件系统以及文件系统中缓存的元数据进行无效,可以避免后续对于该目标数据的访问发生错误,如目标数据在发生变更后,Linxu系统基于缓存机制所访问得到的目标数据依然是变更前的旧数据等。如此,保证了文件系统数据的一致性,使得超融合系统在充分利用文件系统的优势的同时,又能充分发挥超融合系统中软件定义存储卸载等特性。
此外,本申请实施例还提供了一种数据处理装置。参阅图3,图3示出了本申请实施例中一种数据处理装置的结构示意图,该装置300可以应用于将Linux系统作为系统内核的超融合系统,所述超融合系统还包括虚拟文件系统、文件系统以及存储设备,所述装置包括:
获取模块301,用于获取基于文件系统接口接收到的数据处理请求,所述数据处理请求包括针对所述目标数据的处理操作类型;
数据处理模块302,用于根据所述数据处理请求中的处理操作类型,对存储设备中的目标数据进行相应处理;
指令执行模块303,用于在完成对所述目标数据的处理后,生成针对所述目标数据的缓存失效指令,所述缓存失效指令包括所述目标数据的标识;
无效数据模块304,用于基于所述缓存失效指令,利用预先配置的缓存失效操作接口,对所述虚拟文件系统的缓存中存储的所述目标数据的元数据以及所述文件系统的缓存中存储的所述目标数据的元数据进行无效。
在一种可能的实施方式中,所述处理操作类型包括数据拷贝、数据迁移、数据卸载中的任意一种。
在一种可能的实施方式中,所述处理操作包括数据拷贝或数据迁移,所述数据处理模块302,包括:
分配单元,用于在所述存储设备中为所述目标数据分配新的目标存储空间,所述目标存储空间的容量不低于所述目标数据的数据量;
存储单元,用于根据所述数据处理请求所指示的数据拷贝操作或数据迁移操作,在所述目标存储空间存储所述目标数据。
在一种可能的实施方式中,所述分配单元,具体用于利用所述虚拟文件系统提供的预分配接口在所述存储设备中为所述目标数据分配新的目标存储空间。
在一种可能的实施方式中,在对所述虚拟文件系统中存储的所述目标数据的元数据以及所述文件系统的缓存中存储的所述目标数据的元数据进行无效后,所述装置300还包括
接收模块,用于接收来自Linux系统的针对所述目标数据的数据访问请求;
查询模块,用于从所述虚拟文件系统和/或所述文件系统的缓存中查询所述目标数据的元数据;
设备访问模块,用于当从所述虚拟文件系统和/或所述文件系统的缓存中查询到所述目标数据的元数据无效时,访问所述存储设备,以获得所述目标数据。
在一种可能的实施方式中,所述虚拟文件系统的缓存中存储的所述目标数据的元数据,包括所述目标数据在所述虚拟文件系统的缓存中的页缓存元数据;
所述文件系统的缓存中存储的所述目标数据的元数据,包括所述目标数据在所述文件系统的缓存中的存储区间元数据和/或索引节点元数据。
在一种可能的实施方式中,所述无效数据模块304,具体用于当所述存储设备中的目标数据未被进程访问时,对所述虚拟文件系统中存储的所述目标数据的元数据以及所述文件系统的缓存中存储的所述目标数据的元数据进行无效。
需要说明的是,上述装置各模块、单元之间的信息交互、执行过程等内容,由于与本申请实施例中方法实施例基于同一构思,其带来的技术效果与本申请实施例中方法实施例相同,具体内容可参见本申请实施例前述所示的方法实施例中的叙述,此处不再赘述。
此外,本申请实施例还提供了一种设备。参阅图4,图4示出了本申请实施例中一种设备的硬件结构示意图,该设备400可以包括处理器401以及存储器402。
其中,所述存储器402,用于存储计算机程序;
所述处理器401,用于根据所述计算机程序执行上述方法实施例中所述的数据处理方法。
另外,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述方法实施例中所述的数据处理方法。
本申请实施例中提到的“第一对象”等名称中的“第一”只是用来做名字标识,并不代表顺序上的第一。该规则同样适用于“第二”、“第三”等。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到上述实施例方法中的全部或部分步骤可借助软件加通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如只读存储器(英文:read-only memory,ROM)/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者诸如路由器等网络通信设备)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请示例性的实施方式,并非用于限定本申请的保护范围。

Claims (10)

1.一种数据处理方法,其特征在于,所述方法应用于将Linux系统作为系统内核的超融合系统,所述超融合系统还包括虚拟文件系统、文件系统以及存储设备,所述方法包括:
获取基于文件系统接口接收到的数据处理请求,所述数据处理请求包括针对所述目标数据的处理操作类型;
根据所述数据处理请求中的处理操作类型,对存储设备中的目标数据进行相应处理;
在完成对所述目标数据的处理后,生成针对所述目标数据的缓存失效指令,所述缓存失效指令包括所述目标数据的标识;
基于所述缓存失效指令,利用预先配置的缓存失效操作接口,对所述虚拟文件系统的缓存中存储的所述目标数据的元数据以及所述文件系统的缓存中存储的所述目标数据的元数据进行无效。
2.根据权利要求1所述的方法,其特征在于,所述处理操作类型包括数据拷贝、数据迁移、数据卸载中的任意一种。
3.根据权利要求1所述的方法,其特征在于,所述处理操作包括数据拷贝或数据迁移,所述根据所述数据处理请求中的处理操作类型,对存储设备中的目标数据进行相应处理包括:
在所述存储设备中为所述目标数据分配新的目标存储空间,所述目标存储空间的容量不低于所述目标数据的数据量;
根据所述数据处理请求所指示的数据拷贝操作或数据迁移操作,在所述目标存储空间存储所述目标数据。
4.根据权利要求3所述的方法,其特征在于,所述在所述存储设备中为所述目标数据分配新的目标存储空间包括:
利用所述虚拟文件系统提供的预分配接口在所述存储设备中为所述目标数据分配新的目标存储空间。
5.根据权利要求1所述的方法,其特征在于,在对所述虚拟文件系统中存储的所述目标数据的元数据以及所述文件系统的缓存中存储的所述目标数据的元数据进行无效后,所述方法还包括
接收来自Linux系统的针对所述目标数据的数据访问请求;
从所述虚拟文件系统和/或所述文件系统的缓存中查询所述目标数据的元数据;
当从所述虚拟文件系统和/或所述文件系统的缓存中查询到所述目标数据的元数据无效时,访问所述存储设备,以获得所述目标数据。
6.根据权利要求1所述的方法,其特征在于,所述虚拟文件系统的缓存中存储的所述目标数据的元数据,包括所述目标数据在所述虚拟文件系统的缓存中的页缓存元数据;
所述文件系统的缓存中存储的所述目标数据的元数据,包括所述目标数据在所述文件系统的缓存中的存储区间元数据和/或索引节点元数据数据。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述对所述虚拟文件系统中存储的所述目标数据的元数据以及所述文件系统的缓存中存储的所述目标数据的元数据进行无效包括:
当所述存储设备中的目标数据未被进程访问时,对所述虚拟文件系统中存储的所述目标数据的元数据以及所述文件系统的缓存中存储的所述目标数据的元数据进行无效。
8.一种数据处理装置,其特征在于,所述装置应用于将Linux系统作为系统内核的超融合系统,所述超融合系统还包括虚拟文件系统、文件系统以及存储设备,所述装置包括:
获取模块,用于获取基于文件系统接口接收到的数据处理请求,所述数据处理请求包括针对所述目标数据的处理操作类型;
数据处理模块,用于根据所述数据处理请求中的处理操作类型,对存储设备中的目标数据进行相应处理;
指令执行模块,用于在完成对所述目标数据的处理后,生成针对所述目标数据的缓存失效指令,所述缓存失效指令包括所述目标数据的标识;
无效数据模块,用于基于所述缓存失效指令,利用预先配置的缓存失效操作接口,对所述虚拟文件系统的缓存中存储的所述目标数据的元数据以及所述文件系统的缓存中存储的所述目标数据的元数据进行无效。
9.一种设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储计算机程序;
所述处理器用于根据所述计算机程序执行权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-7中任一项所述的方法。
CN202110744916.8A 2021-06-30 2021-06-30 一种数据处理方法、装置、设备及存储介质 Active CN113590309B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110744916.8A CN113590309B (zh) 2021-06-30 2021-06-30 一种数据处理方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110744916.8A CN113590309B (zh) 2021-06-30 2021-06-30 一种数据处理方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN113590309A true CN113590309A (zh) 2021-11-02
CN113590309B CN113590309B (zh) 2024-01-23

Family

ID=78245725

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110744916.8A Active CN113590309B (zh) 2021-06-30 2021-06-30 一种数据处理方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113590309B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120017209A1 (en) * 2010-07-19 2012-01-19 International Business Machines Corporation Optimizing a file system interface in a virtualized computing environment
US20170131920A1 (en) * 2015-11-06 2017-05-11 Microsoft Technology Licensing, Llc Storage virtualization offload
CN109213772A (zh) * 2018-09-12 2019-01-15 华东师范大学 数据存储方法及NVMe存储系统
CN110597451A (zh) * 2018-06-12 2019-12-20 华为技术有限公司 一种虚拟化缓存的实现方法及物理机
CN111522514A (zh) * 2020-04-27 2020-08-11 上海商汤智能科技有限公司 集群文件系统、数据处理方法、计算机设备及存储介质
CN112000287A (zh) * 2020-08-14 2020-11-27 北京浪潮数据技术有限公司 一种io请求处理装置、方法、设备及可读存储介质

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120017209A1 (en) * 2010-07-19 2012-01-19 International Business Machines Corporation Optimizing a file system interface in a virtualized computing environment
US20170131920A1 (en) * 2015-11-06 2017-05-11 Microsoft Technology Licensing, Llc Storage virtualization offload
CN110597451A (zh) * 2018-06-12 2019-12-20 华为技术有限公司 一种虚拟化缓存的实现方法及物理机
CN109213772A (zh) * 2018-09-12 2019-01-15 华东师范大学 数据存储方法及NVMe存储系统
CN111522514A (zh) * 2020-04-27 2020-08-11 上海商汤智能科技有限公司 集群文件系统、数据处理方法、计算机设备及存储介质
CN112000287A (zh) * 2020-08-14 2020-11-27 北京浪潮数据技术有限公司 一种io请求处理装置、方法、设备及可读存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
王冬;杨琼;: "嵌入式文件系统缓存管理机制研究", 航空计算技术, no. 03 *

Also Published As

Publication number Publication date
CN113590309B (zh) 2024-01-23

Similar Documents

Publication Publication Date Title
US10896102B2 (en) Implementing secure communication in a distributed computing system
US8924664B2 (en) Logical object deletion
US10838829B2 (en) Method and apparatus for loading data from a mirror server and a non-transitory computer readable storage medium
CN114860163B (zh) 一种存储系统、内存管理方法和管理节点
CN106326229B (zh) 一种嵌入式系统的文件存储方法和装置
US11099768B2 (en) Transitioning from an original device to a new device within a data storage array
CN116401004A (zh) 数据共享方法、设备、系统及存储介质
EP3385846B1 (en) Method and device for processing access request, and computer system
CN115712500A (zh) 内存释放、内存恢复方法、装置、计算机设备及存储介质
US20190243807A1 (en) Replication of data in a distributed file system using an arbiter
CN107832097B (zh) 数据加载方法及装置
CN116069685B (zh) 一种存储系统写控制方法、装置、设备及可读存储介质
US9513809B2 (en) Obtaining additional data storage from another data storage system
CN115904255A (zh) 一种数据请求方法、装置、设备及存储介质
WO2022151856A1 (zh) 一种异构存储卷在线接管的方法、系统、设备及介质
CN113590309B (zh) 一种数据处理方法、装置、设备及存储介质
CN113204520B (zh) 一种基于分布式文件系统的遥感数据快速并发读写方法
US11467777B1 (en) Method and system for storing data in portable storage devices
CN114780043A (zh) 基于多层缓存的数据处理方法及装置、电子设备
CN113934362A (zh) 数据存储方法、装置、计算机设备和存储介质
US11379321B2 (en) Computer system, control method, and recording medium
WO2022094895A1 (en) Virtual data copy supporting garbage collection in distributed file systems
US10534751B1 (en) Metadata space efficient snapshot operation in page storage
CN114077583A (zh) 一种元数据处理方法、存储设备及存储介质
CN115756742A (zh) 直通i/o虚拟化的性能优化设计方法、系统、介质及设备

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