CN115048227B - 数据处理方法、系统及存储介质 - Google Patents
数据处理方法、系统及存储介质 Download PDFInfo
- Publication number
- CN115048227B CN115048227B CN202210976556.9A CN202210976556A CN115048227B CN 115048227 B CN115048227 B CN 115048227B CN 202210976556 A CN202210976556 A CN 202210976556A CN 115048227 B CN115048227 B CN 115048227B
- Authority
- CN
- China
- Prior art keywords
- host
- data processing
- data
- network
- storage
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Systems (AREA)
Abstract
本申请实施例提供一种数据处理方法、系统及存储介质。在本申请实施例中,一方面,通过将数据处理设备映射为主机的存储设备,并通过映射出的存储设备将主机侧的网络协议卸载至数据处理设备,由数据处理设备对网络数据包进行响应和处理,可降低主机CPU的网络处理压力,有助于防止CPU出现吞吐瓶颈;另一方面,数据处理设备将从网络存储系统获取的数据以直接内存访问(DMA)方式存储至并行处理单元中,实现数据直通并行处理单元,绕开了主机的CPU,可避免CPU对数据的二次复制,降低CPU的数据处理压力,有助于进一步防止CPU出现吞吐瓶颈。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种数据处理方法、系统及存储介质。
背景技术
网络存储系统,是一种网上在线存储模式,即把数据存放在服务端(如云服务端)。网络存储一般具有弹性存储空间、高容量和高带宽的优势,逐渐成为人们主要的存储数据渠道。在本地使用数据时,将云上数据下载到本地进行数据处理。
这种数据处理方式需要本地计算机的通用处理器,如中央处理器(CPU)先从网络存储系统下载到本地磁盘,再将本地磁盘中的数据复制至计算机的系统内存,之后,从系统内存中读取数据进行数据处理。但是,随着数据处理技术的发展,CPU需要处理的数据越来越多,也越快越复杂,极易造成CPU的吞吐瓶颈,从而影响数据处理性能。
发明内容
本申请的多个方面提供一种数据处理方法、系统及存储介质,有助于解决CPU吞吐瓶颈的问题,提高后续数据处理效率。
本申请实施例提供一种数据处理系统,包括:主机、数据处理设备、并行处理单元及网络存储系统;所述主机分别与所述数据处理设备及所述并行处理单元通信连接;所述数据处理设备与所述网络存储系统网络连接;
所述主机用于通过虚拟化技术将所述数据处理设备映射为所述主机的存储设备;并通过映射出的存储设备将所述主机的网络协议卸载至所述数据处理设备;
所述数据处理设备与所述网络存储系统网络连接,用于通过所述网络协议访问所述网络存储系统,以获取所述网络存储系统的数据;采用直接内存访问方式将获取的数据存储至所述并行处理单元中。
本申请实施例还提供一种数据处理方法,包括:
通过虚拟化技术将与主机通信连接的数据处理设备映射为所述主机的存储设备;
通过映射出的存储设备将所述主机的网络协议卸载至所述数据处理设备;
采用直接内存访问方式,将所述数据处理设备通过所述网络协议从网络存储系统获取的数据,存储至所述主机通信连接的并行处理单元中。
本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述数据处理方法中的步骤。
在本申请实施例中,一方面,通过将数据处理设备映射为主机的存储设备,并通过映射出的存储设备将主机侧的网络协议卸载至数据处理设备,由数据处理设备对网络数据包进行响应和处理,可降低主机CPU的网络处理压力,有助于防止CPU出现吞吐瓶颈;另一方面,数据处理设备将从网络存储系统获取的数据以直接内存访问(DMA)方式存储至并行处理单元中,实现数据直通并行处理单元,绕开了主机的CPU,可避免CPU对数据的二次复制,降低CPU的数据处理压力,有助于进一步防止CPU出现吞吐瓶颈。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为传统方案中模型训练的数据复制过程示意图;
图2为传统方案提供的FUSE架构的网络存储系统访问的过程示意图;
图3为本申请实施例提供的数据处理系统的结构示意图;
图4为本申请实施例提供的数据处理设备虚拟化过程示意图;
图5为本申请实施例提供的数据处理系统的数据处理过程示意图;
图6为本申请实施例提供的数据映射关系示意图;
图7为本申请实施例提供的文件与数据块之间的关系示意图;
图8为本申请实施例提供的数据读取方式示意图;
图9为本申请实施例提供的数据直通并行处理单元的IO链路示意图;
图10为本申请实施例提供的数据处理系统的工作原理示意图;
图11为本申请实施例提供的数据处理方法的流程示意图;
图12为本申请实施例提供的计算机设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
随着数据处理技术的发展,CPU需要处理的数据越来越多,也越快越复杂,极易造成CPU的吞吐瓶颈,从而影响数据处理性能。在一些应用场景中,由于数据处理的数据量规模较大,一般用于数据处理的硬件设备包括:通用处理单元和并行处理单元。通用处理单元一般是进行常规串行处理操作的计算单元,例如,CPU等。并行处理单元常具有较大的并行处理能力,一般用于处理大规模数据流,例如,图像计算或图计算等。并行处理单元的示例可以是图形处理单元(GPU)、人工智能加速单元等具有高速并行计算能力的计算单元,并广泛应用于数据处理中。例如,对神经网络模型训练的场景中,用于神经网络训练的数据规模很大,一般用于神经网络模型训练的硬件设备包括通用处理单元和并行处理单元。
网络存储具有弹性存储空间、高容量和高带宽的优势,大量的数据处理的数据一般存储于网络存储系统中。在本申请实施例中,不限定网络存储系统的实现形式。在一些实施例中,网络存储系统可包括:云存储系统和其它网络存储系统。云存储系统可为对象存储服务(Object Storage Service,OSS)系统或文件存储系统等。其它网络存储系统可为:网络附属存储(Network Attached Storage,NAS)系统或存储区域网络(Storage AreaNetwork,SAN)存储等。
在数据处理过程中,主机的中央处理器(CPU)先从网络存储系统下载到本地磁盘,再将本地磁盘中的数据复制至计算机的系统内存或并行处理单元中,但是由于CPU吞吐性能限制,大规模的数据下载和复制极易造成CPU吞吐瓶颈。
例如,在复杂的数据处理技术中,考虑到并行处理单元的内存相对较小但并行计算能力强,而通用处理单元的内存相对较大但并行计算能力相对弱,如图1所示,需要主机的CPU先将数据从网络存储系统下载到本地磁盘,再将本地磁盘中的数据复制至CPU内存中,由CPU对规模大的原始数据进行数据预处理(如采样等)得到规模较小的数据;采用并行处理单元(如GPU)对规模较小的数据进行模型训练,得到神经网络模型。具体地,在使用GPU进行模型训练的应用场景中,传统方案在加载数据到GPU的过程中需要在内存中开辟弹性缓存(BounceBuffer)。CPU需要将数据从网络存储系统读取到弹性缓存,再从弹性缓存复制到GPU中进行模型训练,造成CPU对数据的二次复制。但由于神经网络模型所需的样本数据规模较大,导致CPU需要处理的数据越来越多,造成CPU吞吐瓶颈。因此,如何对CPU进行数据减压防止CPU吞吐瓶颈成为本领域技术人员亟待解决的技术问题。
本案研究者调研发现在一些传统方案中,使用用户空间的文件系统(File Systemin UserSpace)架构将网络存储系统挂载到物理机本地,将对网络存储系统的读取和处理放在单独的用户进程中。其中,FUSE包含一个内核模块和一个用户空间守护进程。内核模块加载时被注册成 Linux 虚拟文件系统的一个 fuse 文件系统驱动。此外,还注册了一个块设备。该块设备作为用户空间守护进程与内核通信的桥梁,用户空间守护进程通过块设备读取FUSE请求,处理后将针对FUSE请求的回复写入块设备。
当应用程序(Application,APP)访问fuse文件系统,并且执行一些系统调用时,如图2所示,应用程序发起读数据请求,将读数据请求传递给FUSE架构,FUSE中的内核模块将读数据请求封装之后通过管道传递给用户空间守护进程;用户空间守护进程解析内核模块发出的协议包,拆解成常规的读数据请求;再将读数据请求路由到物理机的网卡(NIC),由物理机的CPU调用网卡从网络存储系统中读取数据。之后,并CPU再调用网卡将获取的数据对应的数据包存储至用户空间守护进程,由用户空间守护进程进行数据处理;之后,CPU再将用户空间守护进程处理后的数据复制到GPU中进行复杂的数据处理,如神经网络模型训练等。
FUSE架构虽然可通过网络设备将远端存储挂载到物理机本地,但其对数据的读取和处理都放在单独的用户进程中,整个IO请求的数据处理过程需要CPU全程参与,依然会导致CPU的吞吐瓶颈。
为了防止CPU吞吐瓶颈,在本申请一些实施例中,一方面,通过将数据处理设备映射为主机的存储设备,并通过映射出的存储设备将主机侧的网络协议卸载至数据处理设备,由数据处理设备对网络数据包进行响应和处理,可降低主机CPU的网络处理压力,有助于防止CPU出现吞吐瓶颈;另一方面,数据处理设备将从网络存储系统获取的数据以直接内存访问(DMA)方式存储至并行处理单元中,实现数据直通并行处理单元,绕开了主机的CPU,可避免CPU对数据的二次复制,降低CPU的数据处理压力,有助于进一步防止CPU出现吞吐瓶颈。
以下结合附图,详细说明本申请各实施例提供的技术方案。
应注意到:相同的标号在下面的附图以及实施例中表示同一物体,因此,一旦某一物体在一个附图或实施例中被定义,则在随后的附图和实施例中不需要对其进行进一步讨论。
图3为本申请实施例提供的数据处理系统的结构示意图。如图3所示,该数据处理系统包括:主机10、数据处理设备20、并行处理单元30及网络存储系统40。
在本实施例中,主机10是指任何具有计算、存储及通信功能的计算机设备。在本实施例中,如图3所示,主机10可包括:通用处理单元101等。在本实施例中,不限定通用处理单元101的数量。通用处理单元101可以为至少1个,即1个或多个;每个通用处理单元101可以为单核处理单元,也可为多核处理单元。
在本实施例中,通用处理单元101一般为设置于主机10的主板的处理芯片,如主机10的CPU等,不能实现单机扩展。通用处理单元101可以为任何具有处理计算能力的处理器件。通用处理单元101可为串行处理单元,也可为并行处理单元。例如,通用处理单元101可以为通用处理器,如CPU等。并行处理单元30是指可并行计算处理的处理器件。例如,并行处理单元30可以为GPU、FPGA等。可选地,通用处理单元101的内存大于并行处理单元30的内存。
上述数据处理设备20是指任何具有计算和通信功能的硬件设备或器件。数据处理设备20还具有处理网络协议栈的能力。在一些实施例中,数据处理设备20可为数据处理单元(DPU)、ASIC芯片、FPGA、SoC芯片或者智能网卡等。数据处理设备20可包括:处理单元和网卡。在本实施例中,数据处理设备20与主机10通信连接,确切地,数据处理设备20与主机10的通用处理单元101通信连接。具体地,数据处理设备20与主机10可通过总线接口通信连接。主机10的总线接口可根据主机10的规格进行扩展,一般主机10的通信接口为多个。本申请实施例中的“多”均是指不止1个,即2个或2个以上。在数据处理设备20与主机10通过总线接口通信连接时,数据处理设备20可为多个,实现数据处理设备20的扩展。
当然,上述并行处理单元30也可与主机10通信连接,确切地说是,主机10的通用处理单元101与并行处理单元30之间通信连接。可选地,并行处理单元30可通过总线接口与主机10通信连接。
在一些实施例中,通用处理单元101、数据处理设备20及并行处理单元30可设置于不同的物理机,通用处理单元101、数据处理设备20及并行处理单元30之间可通过网络通信连接。例如,通用处理单元101、数据处理设备20及并行处理单元30可设置于云服务器中,通过网络通信连接;等等。图3仅以通用处理单元110和并行处理单元30设置于同一物理机上进行图示,但不构成限定。
上述总线接口可为快捷外围部件互连标准(PeripheralComponentInterconnectExpress,PCIe)总线接口、PCI总线接口或超级通道互联(Ultra Path Interconnect,UPI)总线接口等。优选地,总线接口为PCIe接口,可提高通用处理单元101、数据处理设备20及并行处理单元30之间的数据传输速率。
在本实施例中,为了对主机10的通用处理单元101(如CPU)进行减压,降低CPU到达吞吐瓶颈的概率,如图3和图4所示,主机10可通过虚拟化技术将数据处理设备20映射为主机10的存储设备;并通过映射出的存储设备卸载主机10的网络协议至数据处理设备20。其中,网络协议包括但不局限于:Http协议、TCP协议等。
在本申请实施例中,不限定主机10通过虚拟化技术将数据处理设备20映射为主机10的存储设备的具体实现形式。在一些实施例中,主机10可通过半虚拟化技术将数据处理设备20映射为主机10的存储设备。其中,半虚拟化技术是相较于全虚拟化而言的。在完全虚拟化的解决方案中,客户端虚拟机(VM)要使用底层主机资源,需要虚拟机监测器(VirtualMachine Monitor,VMM)来截获所有的请求指令,然后模拟出这些指令的行为,这样势必会带来很多性能上的开销。半虚拟化通过底层硬件辅助的方式,将部分没必要虚拟化的指令通过硬件来完成,VMM只负责完成部分指令的虚拟化,要做到这点,需要客户端来配合,客户端完成不同设备的前端驱动程序,VMM配合客户端完成相应的后端驱动程序,这样两者之间通过某种交互机制就可以实现高效的虚拟化过程。在本申请实施例中,虚拟化出的客户端主要是指将数据处理设备20映射为主机10的存储设备。
在一些实施例中,半虚拟化技术可为VirtIO技术。其中,VirtIO是一种I/O半虚拟化解决方案,是客户端(Guest)与主机(Host)之间通信的润滑剂,提供了一套通用框架,以及标准接口或协议来完成两者之间的交互过程,极大地解决了各种驱动程序和不同虚拟化解决方案之间的适配问题。Virtio技术提供了一套上层应用与各VMM虚拟化设备(例如基于内核的虚拟机(KernelbasedVirtual Machine,KVM)、Xen、Vmware等)之间的通信框架和编程接口。从总体上看,VirtIO可以分为四层,包括前端客户端中各种驱动程序模块,后端VMM上的处理程序模块,中间用于前后端通信的VirtIO层和VirtIORing层,VirtIO层实现的是虚拟队列接口,可以被看作是前后端通信的桥梁,而VirtIORing层是该桥梁的具体实现,它实现了两个环形缓冲区,分别用于保存前端驱动程序和后端处理程序执行的信息。
基于上述半虚拟化技术的原理,主机10可对数据处理设备20进行初始化,并在对数据处理设备20初始化过程中,配置数据处理设备20的身份标识,以将数据处理设备20映射主机10的总线上的虚拟块设备。其中,数据处理设备20的身份标识是指唯一标识一个主机10的总线上的虚拟块设备的标识。对于数据处理设备20通过PCIe总线接口连接到主机10的总线,与主机10通信的实施例来说,数据处理设备20的身份标识可以总线号(BusNumber)、设备号(Device Number)和功能号(Function Number)(简称为BDF)进行表示。
BDF为PCIe设备的中每一项功能的唯一的标识符。每个PCIe设备可以只有一个功能,也可以有多个功能,最多可拥有最多8个功能。无论一个PCIe设备拥有多少个功能,其每一个功能都有一个唯一独立的配置空间。主机10可以通过该段空间获取该PCIe设备的一些信息,也可以通过该段空间来配置该PCIe设备,这段空间就叫做PCIe的配置空间。PCIe的配置软件(例如PCIe的根节点(Rootcomplex)等)能够识别出PCIe总线系统的拓扑逻辑,以及其中的每一条总线,每一个PCIe设备和PCIe设备的每一项功能,即能够识别出BDF。
在本申请实施例中,为了将数据处理设备20映射为主机10的存储设备,主机10可配置数据处理设备20的身份标识中的功能号包括存储介质和网卡的标识。对于主机10要识别PCIe设备,还需对PCIe设备进行设备枚举。PCIe体系架构一般包括根组件(RootComplex)、交换器(Switch)和各种PCIe设备。其中,PCIe设备为PCIe体系架构的终端设备(Endpoint)。对于这么多设备,主机10的CPU启动后,需要进行PCIe设备枚举识别这些设备。Root complex通常是采用特定的算法,例如深度优先算法,访问每一个可能的分支路径,直到不能再深入访问为止,且每个PCIe设备只访问一次。这个过程称为PCIe设备枚举。
在本实施例中,对于主机10来说,可在设备枚举过程中,从虚拟块设备的寄存器中获取数据处理设备的身份标识,确定虚拟块设备的功能为存储介质和网卡,进一步,主机10可加装虚拟块设备的功能对应的虚拟块设备驱动,这样对于主机10来说,数据处理设备20为主机10的存储介质,即实现了将数据处理设备20映射为主机10的存储设备。其中,对于VirtIO技术,虚拟块设备驱动可为VirtIO-blk驱动。
在本申请实施例中,主机10与网络存储系统40之间网络连接。其中,主机10与网络存储系统40之间可以通过无线或有线技术网络连接。可选地,主机10与网络存储系统40之间可以通过移动网络通信连接,相应地,移动网络的网络制式可以为2G(GSM)、2.5G(GPRS)、3G(WCDMA、TD-SCDMA、CDMA2000、UTMS)、4G(LTE)、4G+(LTE+)、5G、WiMax等中的任意一种。在一些实施例中,主机10与网络存储系统40之间也可通过私有网络连接,如虚拟专用网络(Virtual Private Network,VPN)、虚拟私有云(Virtual Private Cloud,VPC)网络等。
当然,数据处理设备20与网络存储系统40之间也可网络连接。其网络连接方式可参见上述主机10与网络存储系统40之间的网络连接方式,在此不再赘述。
在本实施例中,基于上述数据处理设备20映射为主机10的存储设备,主机10可通过映射出的存储设备将主机10的网络协议卸载至数据处理设备20。其中,数据处理设备20可支持主机10支持的网络协议,当然,数据处理设备20还可支持除主机10支持的网络协议之外的其它网络协议,在此不做限定。
具体地,主机10将针对网络存储系统40的访问请求提供给映射出的存储设备;数据处理设备20可从映射出的存储设备获取访问请求,从而主机的网络协议的卸载。其中,针对网络存储系统40的访问请求可以为读请求、写请求,当然也可为数据定义语言(DataDefinition Language,DDL)操作请求等等。在本申请实施例中,访问请求主要是指读请求。
在一些实施例中,如图5所示,主机10的内核设置有内核驱动组件(Kerneldriver)、网络存储驱动组件及虚拟文件系统(Virtual File System,VFS)。其中,虚拟文件系统提供内核驱动组件到网络存储驱动组件之间的访问接口。在本实施例中,主机的内核驱动组件可接收访问请求,并调用主机的虚拟文件系统(VFS)的访问接口将访问请求传输给主机的虚拟文件系统的访问接口将访问请求传输给网络存储驱动组件。进一步,网络存储驱动组件可将针对网络存储系统的访问请求提供给虚拟块设备驱动;并由虚拟块设备驱动将访问请求提供给映射出的存储设备,实现主机的网络数据包卸载至数据处理设备20。
上述实施例实现了将主机10的网络协议卸载至数据处理设备20上,这样,数据处理设备20可对应用程序侧发起的针对网络存储系统40的访问请求等网络数据包进行响应和处理,实现网络数据包的卸载。相应地,数据处理设备20可通过网络协议访问网络存储系统,以从网络存储系统40中获取数据。
具体地,数据处理设备20可将访问请求封装为遵循网络协议的格式,并将封装后的访问通过网络发送给网络存储系统40。对于网络存储系统40可接收该访问请求,并从访问请求中获取待访问数据的文件路径;之后通过文件路径获取待访问数据。进一步,网络存储系统40可按照网络协议要求的格式对待访问数据进行封装,得到遵循网络协议格式的响应数据包。之后,可将响应数据包返回给数据处理设备20。数据处理设备20可对响应数据包进行解析,以得到响应数据包中封装的待访问数据。
在一些实施例中,数据处理设备20映射出的存储设备为多个。多个是指2个或2个以上。相应地,主机在将网络存储系统40的访问请求提供给映射出的存储设备时,还可根据访问请求的待访问数据的文件路径,从多个存储设备中确定待访问数据的文件路径对应的目标存储设备。在本申请实施例中,用户可预先配置网络存储系统40中文件路径与存储设备之间的映射关系,即网络存储系统40中文件路径的挂载(Mount)信息。对于主机10可存储网络存储系统40中文件路径与存储设备之间的映射关系,并执行Mount命令,以将网络存储系统40的文件挂载至映射出的存储设备。基于此,主机10可根据访问请求包含的待访问数据的文件路径,查询维护的网络存储系统40中文件路径的挂载(Mount)信息,以确定待访问数据的文件路径对应的目标存储设备。
进一步,主机10将访问请求提供给目标存储设备对应的目标数据处理设备,实现主机的网络数据包卸载在目标数据处理设备。其中,目标存储设备对应的目标数据处理设备,是指映射出该目标存储设备的数据处理设备。关于主机10将访问请求提供给目标存储设备对应的目标数据处理设备的具体实施方式,可参见上述主机10将访问请求提供给数据处理设备的相关内容,在此不再赘述。
在本申请实施例中,为了实现映射出的存储设备与网络存储系统40中的数据的映射,还可预先配置网络存储系统40的存储空间与映射出的存储设备之间的映射,实现数据的映射,这样,访问映射出的存储设备即为访问网络存储系统40的存储空间。对于OSS系统,存储空间可以桶(Bucket)为存储单元进行数据存储。因此,可预先建立OSS系统的桶与映射出的存储设备之间的映射。例如,如图6所示,可建立主机侧虚拟出的存储设备与OSS桶之间的映射,这样,访问存储设备就是访问OSS桶。例如,图6中建立了主机侧虚拟出的存储设备(oss-dev1)与OSS桶(oss://bucket1)之间的映射,这样,访问存储设备oss-dev1就是访问OSS桶oss://bucket1。
基于上述主机侧映射出的存储设备与网络存储系统40的存储空间之间的映射关系,上述确定出的目标数据处理设备在通过网络协议访问网络存储系统时,可根据预先配置的存储设备与网络存储系统的存储空间之间的映射关系,确定访问请求访问的目标存储空间。其中,存储设备与网络存储系统的存储空间之间的映射关系中的存储设备,是指上述通过虚拟化技术将数据处理设备20映射成的存储设备。目标存储空间为网络存储系统中的存储空间。基于访问请求,通过网络协议访问网络存储系统的目标存储空间;并从目标存储空间获取访问请求的待读取数据。
在一些实施例中,目标数据处理设备是以数据块为单位读取数据的。其中,数据块的数据量小于网络存储系统40中文件的大小。一般地,数据块的大小可为数KB或者数MB。对于OSS系统单个文件可以存放数GB甚至数TB的数据。这就导致单个文件可被分成多个数据块(block)。如图7所示,对于OSS系统,主机侧虚拟出的存储设备(oss-dev1)读取到的单个文件可被划分为多个数据块(即图7中的block1-n)。在本实施例中,数据处理设备在从目标存储空间获取访问请求的待读取数据时,可基于访问请求,以数据块为单一从目标存储空间获取访问请求的待读取数据。对于待读取数据的数据量大于数据块的数据量的实施例,数据处理设备可通过range方式访问目标存储空间,并每次从目标存储空间获取数据块的数据量大小的待读取数据,实现对访问请求的待读取数据的获取。例如,如图8所示,对于名称objectkey的文件,其大小为6MB,数据块的大小为2MB。数据处理设备20直接读取文件objectkey时,该读请求可转换为3次数据读取,每次读取网络存储系统40的一个数据块2MB的数据。
在一些实施例中,目标数据处理设备可将访问请求和目标存储空间的标识封装为遵循网络协议的格式,并将封装后的访问请求发送给网络存储系统40。对于网络存储系统40可从封装后的访问请求中,获取目标存储空间的标识,并从目标存储空间获取访问请求的待读取数据。
进一步,如图9所示,网络存储系统40可按照网络协议的格式,将待读取数据封装为访问请求对应的响应数据包;并将该响应数据包通过网络返回给目标数据处理设备。目标数据处理设备可对响应数据包进行解析,以得到待读取数据。
上述实施例实现了将主机10侧的CPU的网络数据包卸载至数据处理设备,由数据处理设备对网络数据包进行响应和处理,可降低CPU的网络处理压力,有助于防止CPU出现吞吐瓶颈。
在本申请实施例中,为了进一步防止主机10的CPU出现吞吐瓶颈,数据处理设备20还可将获取的数据以直接内存访问(DMA)方式存储至并行处理单元30中,实现数据直通并行处理单元,绕开了主机10的CPU,可避免CPU对数据的二次复制,降低CPU的数据处理压力,有助于进一步防止CPU出现吞吐瓶颈。
在本申请实施例中,不限定数据处理设备20实现数据直通并行处理单元30的具体实施方式。在一些实施例中,并行处理单元30可为GPU。相应地,数据处理设备20可采用GPU直接存储(GPUDirectStorage,GDS)技术将获取的数据以DMA方式存储至并行处理单元30。
具体地,数据处理设备20可触发主机中的网络存储驱动组件回调主机的内核驱动程序;内核驱动程序可将并行处理单元的虚拟地址转换为物理地址,并启动主机的直接内存访问机制。进一步,主机的DMA引擎可将数据处理设备20获取的数据从数据处理设备20直接写入并行处理单元30的物理地址,实现存储设备中的数据直通并行处理单元,而绕开主机10的CPU,无需CPU对数据进行二次复制,可进一步降低CPU到达吞吐瓶颈的概率。
下面以并行处理单元30为GPU为例,结合图5对上述GDS技术实现数据直通并行处理单元的过程进行示例性说明。如图5所示,对于主机10来说分为用户层和内核层。对于用户层中的应用程序在发起对网络存储系统(如OSS系统)的访问请求(如读请求)时,可调用文件应用程序接口(如CuFileAPIs等)将访问请求传输给主机10的内核中的内核驱动程序;内核驱动程序调用虚拟文件系统(如VFS)将访问请求提供给内核中的网络存储驱动组件;网络存储驱动组件可将访问请求传输至虚拟块设备驱动组件;由虚拟块设备驱动组件将访问请求提供给上述映射出的存储设备;之后,通过映射出的存储设备将访问请求提供给数据处理设备20。
对于数据处理设备20设置有对应的虚拟读模块和网络存储客户端;虚拟读模块可从映射出的存储设备读取访问请求;并将该访问请求传输给网络存储客户端。网络存储客户端可基于访问请求(如读请求),从网络存储系统40中获取待读取数据。
进一步,数据处理设备20可触发主机10的内核中的网络存储驱动组件回调主机10的内核驱动程序;主机10的内核驱动程序可从文件应用程序接口获取GPU的虚拟地址;并将GPU的虚拟地址转换为物理地址;进一步,内核驱动程序可启动主机10的DMA机制。主机10中的DMA引擎可将数据处理设备20中的待读取数据直接存储至GPU中,实现存储设备中的数据直通GPU,而无需主机10的CPU的二次复制。
在本申请实施例中,数据处理设备20除了可将读取的数据直接存储至并行处理单元30中,如图3所示,数据处理设备20还可通过内核旁路方式将从网络存储系统40获取的数据存储至主机10的系统内存102中。
在一些实施例中,基于上述主机10将数据处理设备20映射为主机10的存储设备的实施例,通过映射出的存储设备除了可将网络协议卸载至数据处理设备20之外,如图10所示,主机10还可通过映射出的存储设备将算子、图片预处理、数据加解密、数据缓存及其它处理卸载至数据处理设备20。算子可为针对网络存储系统40进行操作的算子,如布隆过滤器进行数据过滤等。当然,为了提高数据处理效率,在一些实施例中,还可将一些数据处理功能卸载至网络存储系统40对应的服务端。例如,如图10所示,可将一些加密处理功能、特定数据格式的算子及图片预处理等卸载在网络存储系统40。特定数据格式的算子可为网络存储系统40支持的数据格式的算子,如csv文件算子、json文件算子等。图片预处理是指对图片进行尺度变换等处理,如图片旋转、图片尺寸调整等。
除了上述实施例提供的数据处理系统之外,本申请实施例还提供数据处理方法。下面对本申请实施例提供的数据处理方法进行示例性说明。
图11为本申请实施例提供的数据处理方法的流程示意图。如图11所示,该方法主要包括以下步骤:
1101、通过虚拟化技术将与主机通信连接的数据处理设备映射为主机的存储设备。
1102、通过映射出的存储设备将主机的网络协议卸载至数据处理设备。
1103、采用直接内存访问方式,将数据处理设备通过网络协议从网络存储系统获取的数据,存储至主机通信连接的并行处理单元中。
关于主机、数据处理设备、并行处理单元及网络存储系统的实现形态、结构及连接方式的描述,可参见上述系统实施例的相关内容,在此不再赘述。
在本实施例中,为了对主机的通用处理单元(如CPU)进行减压,降低CPU到达吞吐瓶颈的概率,在步骤1101中,可通过虚拟化技术将数据处理设备映射为主机的存储设备;并在步骤1102中,通过映射出的存储设备将主机的网络协议卸载至数据处理设备。其中,网络协议包括但不局限于:Http协议、TCP协议等。
在本申请实施例中,不限定通过虚拟化技术将数据处理设备映射为主机的存储设备的具体实现形式。在一些实施例中,主机可通过半虚拟化技术将数据处理设备映射为主机10的存储设备。关于半虚拟化技术的描述,可参见上述系统实施例的相关内容,在此不再赘述。
基于半虚拟化技术的原理,可对数据处理设备进行初始化,并在对数据处理设备初始化过程中,配置数据处理设备的身份标识,以将数据处理设备映射主机的总线上的虚拟块设备。关于数据处理设备的身份标识的描述,可参见上述系统实施例的相关内容,在此不再赘述。
在本申请实施例中,为了将数据处理设备映射为主机的存储设备,可配置数据处理设备的身份标识中的功能号包括存储介质和网卡的标识。对于主机要识别PCIe设备,还需对PCIe设备进行设备枚举。
在本实施例中,对于主机来说,可在设备枚举过程中,从虚拟块设备的寄存器中获取数据处理设备的身份标识,确定虚拟块设备的功能为存储介质和网卡,进一步,可加装虚拟块设备的功能对应的虚拟块设备驱动,这样对于主机来说,数据处理设备为主机的存储介质,即实现了将数据处理设备映射为主机的存储设备。其中,对于VirtIO技术,虚拟块设备驱动可为VirtIO-blk驱动。
在本申请实施例中,主机及数据处理设备可与网络存储系统之间网络连接。关于网络连接方式可参见上述系统实施例的相关内容,在此不再赘述。
在本实施例中,基于上述数据处理设备映射为主机的存储设备,在步骤1102中,可通过映射出的存储设备将主机的网络协议卸载至数据处理设备。
具体地,可将针对网络存储系统的访问请求提供给映射出的存储设备;数据处理设备可从映射出的存储设备获取访问请求,从而主机的网络协议的卸载。
在一些实施例中,主机的内核设置有内核驱动组件(Kernel driver)、网络存储驱动组件及VFS。其中,虚拟文件系统提供内核驱动组件到网络存储驱动组件之间的访问接口。在本实施例中,主机的内核驱动组件可接收访问请求,并调用主机的虚拟文件系统(VFS)的访问接口将访问请求传输给主机的虚拟文件系统的访问接口将访问请求传输给网络存储驱动组件。进一步,网络存储驱动组件可将针对网络存储系统的访问请求提供给虚拟块设备驱动;并由虚拟块设备驱动将访问请求提供给映射出的存储设备,实现主机的网络数据包卸载至数据处理设备。
上述实施例实现了将主机的网络协议卸载至数据处理设备上,这样,数据处理设备可对应用程序侧发起的针对网络存储系统的访问请求等网络数据包进行响应和处理,实现网络数据包的卸载。相应地,数据处理设备可通过网络协议访问网络存储系统,以从网络存储系统中获取数据。关于数据处理设备通过网络协议访问网络存储系统,获取数据的具体实施方式,可参见上述系统实施例的相关内容,在此不再赘述。
在一些实施例中,数据处理设备映射出的存储设备为多个。多个是指2个或2个以上。相应地,将网络存储系统的访问请求提供给映射出的存储设备可实现为:根据访问请求的待访问数据的文件路径,从多个存储设备中确定待访问数据的文件路径对应的目标存储设备;将访问请求提供给目标存储设备对应的目标数据处理设备,实现主机的网络数据包卸载在目标数据处理设备。其中,目标存储设备对应的目标数据处理设备,是指映射出该目标存储设备的数据处理设备。
在本申请实施例中,为了实现映射出的存储设备与网络存储系统中的数据的映射,还可预先配置网络存储系统的存储空间与映射出的存储设备之间的映射,实现数据的映射,这样,访问映射出的存储设备即为访问网络存储系统的存储空间。
基于上述主机侧映射出的存储设备与网络存储系统的存储空间之间的映射关系,上述确定出的目标数据处理设备在通过网络协议访问网络存储系统时,可根据预先配置的存储设备与网络存储系统的存储空间之间的映射关系,确定访问请求访问的目标存储空间;基于访问请求,通过网络协议访问网络存储系统的目标存储空间;并从目标存储空间获取访问请求的待读取数据。
在一些实施例中,目标数据处理设备是以数据块为单位读取数据的。其中,数据块的数据量小于网络存储系统中文件的大小。在本实施例中,数据处理设备在从目标存储空间获取访问请求的待读取数据时,可基于访问请求,以数据块为单一从目标存储空间获取访问请求的待读取数据。对于待读取数据的数据量大于数据块的数据量的实施例,数据处理设备可通过range方式访问目标存储空间,并每次从目标存储空间获取数据块的数据量大小的待读取数据,实现对访问请求的待读取数据的获取。
上述实施例实现了将主机侧的CPU的网络数据包卸载至数据处理设备,由数据处理设备对网络数据包进行响应和处理,可降低CPU的网络处理压力,有助于防止CPU出现吞吐瓶颈。
在本申请实施例中,为了进一步防止主机的CPU出现吞吐瓶颈,在步骤1103中,还可采用直接内存访问(DMA)方式,将数据处理设备从网络存储系统获取的数据存储至并行处理单元中,实现数据直通并行处理单元,绕开了主机的CPU,可避免CPU对数据的二次复制,降低CPU的数据处理压力,有助于进一步防止CPU出现吞吐瓶颈。
在本申请实施例中,不限定数据处理设备实现数据直通并行处理单元的具体实施方式。在一些实施例中,并行处理单元可为GPU。相应地,可采用GPU直接存储(GPUDirectStorage,GDS)技术将数据处理设备获取的数据以DMA方式存储至GPU。
具体地,主机中的网络存储驱动组件回调主机的内核驱动程序;内核驱动程序可将并行处理单元的虚拟地址转换为物理地址,并启动主机的直接内存访问机制。进一步,主机的DMA引擎可将数据处理设备获取的数据从数据处理设备直接写入并行处理单元的物理地址,实现存储设备中的数据直通并行处理单元,而绕开主机的CPU,无需CPU对数据进行二次复制,可进一步降低CPU到达吞吐瓶颈的概率。
在本申请实施例中,数据处理设备除了可将读取的数据直接存储至并行处理单元中,数据处理设备还可通过内核旁路方式将从网络存储系统获取的数据存储至主机的系统内存中。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤1102和1103的执行主体可以为设备A;又比如,步骤1102的执行主体可以为设备A,步骤1103的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如1101、1102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
相应地,本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述数据处理方法中的步骤。
图12为本申请实施例提供的计算机设备的结构示意图。如图12所示,该计算机设备包括:存储器12a、通用处理单元12b及并行处理单元12c。通用处理单元12b、并行处理单元12c与数据处理设备12d通信连接。可选地,通用处理单元12b、并行处理单元12c通过总线接口与数据处理设备12d通信连接。数据处理设备12d与网络存储系统网络连接。存储器12a用于存储计算机程序。
通用处理单元12b耦合至存储器12a,用于执行计算机程序以用于:通过虚拟化技术将数据处理设备12d映射为计算机设备的存储设备;并通过映射出的存储设备将计算机设备的网络协议卸载至数据处理设备12d。
数据处理设备12d与网络存储系统网络连接,用于通过网络协议访问网络存储系统,以获取网络存储系统的数据;采用直接内存访问方式将获取的数据存储至并行处理单元12c中。
在一些实施例中,通用处理单元12b在通过虚拟化技术将数据处理设备映射为计算机设备的存储设备时,具体用于:对数据处理设备进行初始化,并在对数据处理设备初始化过程中,配置数据处理设备的身份标识,以将数据处理设备映射为计算机设备的总线上的虚拟块设备;数据处理设备的身份标识中的功能号包括存储介质和网卡的标识;以及,在设备枚举过程中,从虚拟块设备的寄存器中获取虚拟块设备的功能为存储介质和网卡;并加载虚拟块设备的功能对应的虚拟块设备驱动,以将数据处理设备映射为计算机设备的存储设备。
数据处理设备在采用直接内存访问方式将获取的数据存储至并行处理单元中时,具体用于:数据处理设备12d触发计算机设备中的网络存储驱动组件回调计算机设备的内核驱动程序;内核驱动程序将并行处理单元12c的虚拟地址转换为物理地址,并启动计算机设备的直接内存访问机制;计算机设备中的直接内存访问引擎将获取的数据从数据处理设备直接写入并行处理单元12c的物理地址。
通用处理单元12b在通过映射出的存储设备将计算机设备的网络协议卸载至数据处理设备,包括:将针对网络存储系统的访问请求提供给映射出的存储设备。相应地,数据处理设备12d从映射出的存储设备获取访问请求;并基于访问请求,通过网络协议访问网络存储系统,以获取访问请求的待读取数据,作为获取的数据。
通用处理单元12b在将针对网络存储系统的访问请求提供给映射出的存储设备时,具体用于:调用计算机设备的内核驱动组件接收访问请求,并调用计算机设备的虚拟文件系统的访问接口将访问请求传输给网络存储驱动组件;网络存储驱动组件将针对网络存储系统的访问请求提供给计算机设备内核中的虚拟块设备驱动;虚拟块设备驱动将访问请求提供给映射出的存储设备。
可选地,映射出的存储设备为多个。相应地,通用处理单元12b在将针对网络存储系统的访问请求提供给映射出的存储设备时,具体用于:根据访问请求的待访问数据的文件路径,从多个存储设备中确定待访问数据的文件路径对应的目标存储设备;将访问请求提供给目标存储设备。
数据处理设备12d在通过网络协议访问网络存储系统,以获取访问请求的待读取数据时,具体用于:从目标存储设备读取访问请求;根据预先配置的映射出的存储设备与网络存储系统的存储空间之间的映射关系,确定访问请求待访问的网络存储系统的目标存储空间;基于访问请求,通过网络协议访问网络存储系统的目标存储空间;从目标存储空间获取访问请求的待读取数据。
可选地,数据处理设备12d可基于访问请求(如读请求),以数据块为单位从目标存储空间获取读请求的待读取数据。
可选地,数据处理设备12d还可通过内核旁路方式将获取的数据存储至主机的系统内存中。
在一些可选实施方式中,如图12所示,该计算机设备还可以包括:通信组件12e、电源组件12f等可选组件。图12中仅示意性给出部分组件,并不意味着计算机设备必须包含图12所示全部组件,也不意味着计算机设备只能包括图12所示组件。
本实施例提供的计算机设备,一方面,通过将数据处理设备映射为主机的存储设备,并通过映射出的存储设备将主机侧的网络协议卸载至数据处理设备,由数据处理设备对网络数据包进行响应和处理,可降低主机CPU的网络处理压力,有助于防止CPU出现吞吐瓶颈;另一方面,数据处理设备将获取的数据以直接内存访问(DMA)方式存储至并行处理单元中,实现数据直通并行处理单元,绕开了主机的CPU,可避免CPU对数据的二次复制,降低CPU的数据处理压力,有助于进一步防止CPU出现吞吐瓶颈。
在本申请实施例中,存储器用于存储计算机程序,并可被配置为存储其它各种数据以支持在其所在设备上的操作。其中,处理器可执行存储器中存储的计算机程序,以实现相应控制逻辑。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
在本申请实施例中,通用处理单元可以为任意可执行上述方法逻辑的硬件处理设备。可选地,处理器可以为中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)或微控制单元(Microcontroller Unit,MCU);也可以为现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程阵列逻辑器件(Programmable Array Logic,PAL)、通用阵列逻辑器件(General Array Logic,GAL)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)等可编程器件;或者为先进精简指令集(RISC)处理器(Advanced RISC Machines,ARM)或系统芯片(System on Chip,SOC)等等,但不限于此。
在本申请实施例中,通信组件被配置为便于其所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,4G,5G或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件还可基于近场通信(NFC)技术、射频识别(RFID)技术、红外数据协会(IrDA)技术、超宽带(UWB)技术、蓝牙(BT)技术或其他技术来实现。
在本申请实施例中,电源组件被配置为其所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器 (CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器 (RAM) 和/或非易失性内存等形式,如只读存储器 (ROM) 或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机的存储介质为可读存储介质,也可称为可读介质。可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器 (SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器 (ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器 (CD-ROM)、数字多功能光盘(DVD) 或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (11)
1.一种数据处理方法,包括:
通过虚拟化技术将与主机通信连接的数据处理设备映射为所述主机的存储设备;
通过映射出的存储设备将所述主机的网络协议卸载至所述数据处理设备;
采用直接内存访问方式,将所述数据处理设备通过所述网络协议从网络存储系统获取的数据,存储至所述主机通信连接的并行处理单元中;
其中,所述通过虚拟化技术将与主机通信连接的数据处理设备映射为所述主机的存储设备,包括:
对所述数据处理设备进行初始化;在对所述数据处理设备初始化过程中,配置所述数据处理设备的身份标识,以将所述数据处理设备映射为所述主机的总线上的虚拟块设备;所述数据处理设备的身份标识中的功能号包括存储介质和网卡的标识;在设备枚举过程中,从所述虚拟块设备的寄存器中获取所述虚拟块设备的功能为存储介质和网卡;加载所述虚拟块设备的功能对应的虚拟块设备驱动,以将所述数据处理设备映射为所述主机的存储设备;
所述通过映射出的存储设备将所述主机的网络协议卸载至所述数据处理设备,包括:
将针对所述网络存储系统的访问请求提供给所述映射出的存储设备,以供所述数据处理设备从所述映射出的存储设备获取所述访问请求;并基于所述访问请求,通过所述网络协议访问所述网络存储系统,以获取所述访问请求的待读取数据,作为所述获取的数据。
2.根据权利要求1所述的方法,所述采用直接内存访问方式,将所述数据处理设备通过所述网络协议从网络存储系统获取的数据,存储至所述主机通信连接的并行处理单元中,包括:
所述主机中的网络存储驱动组件回调所述主机的内核驱动程序;
所述内核驱动程序将所述并行处理单元的虚拟地址转换为物理地址,并启动所述主机的直接内存访问机制;
所述主机中的直接内存访问引擎将所述获取的数据从所述数据处理设备直接写入所述并行处理单元的物理地址。
3.根据权利要求1所述的方法,所述将针对所述网络存储系统的访问请求提供给所述映射出的存储设备,包括:
所述主机的内核驱动组件接收所述访问请求,并调用所述主机的虚拟文件系统的访问接口将所述访问请求传输给所述网络存储驱动组件;
所述网络存储驱动组件将针对所述网络存储系统的访问请求提供给所述主机内核中的虚拟块设备驱动;
所述虚拟块设备驱动将所述访问请求提供给映射出的存储设备。
4.根据权利要求1所述的方法,所述映射出的存储设备为多个;所述将针对所述网络存储系统的访问请求提供给所述映射出的存储设备,包括:
根据所述访问请求的待访问数据的文件路径,从多个存储设备中确定所述待访问数据的文件路径对应的目标存储设备;
将所述访问请求提供给所述目标存储设备。
5.根据权利要求4所述的方法,所述基于所述访问请求,通过所述网络协议访问所述网络存储系统,以获取所述访问请求的待读取数据,包括:
从所述目标存储设备读取所述访问请求;
根据预先配置的所述映射出的存储设备与所述网络存储系统的存储空间之间的映射关系,确定所述访问请求待访问的所述网络存储系统的目标存储空间;
基于所述访问请求,通过所述网络协议访问所述网络存储系统的目标存储空间;
从所述目标存储空间获取所述访问请求的待读取数据。
6.根据权利要求5所述的方法,所述从所述目标存储空间获取所述访问请求的待读取数据,包括:
以数据块为单位从所述目标存储空间获取所述访问请求的待读取数据。
7.根据权利要求1-6任一项所述的方法,还包括:
通过内核旁路方式将所述获取的数据存储至所述主机的系统内存中。
8.一种数据处理系统,包括:主机、数据处理设备、并行处理单元及网络存储系统;所述主机分别与所述数据处理设备及所述并行处理单元通信连接;所述数据处理设备与所述网络存储系统网络连接;
所述主机用于通过虚拟化技术将所述数据处理设备映射为所述主机的存储设备;并通过映射出的存储设备将所述主机的网络协议卸载至所述数据处理设备;
所述数据处理设备与所述网络存储系统网络连接,用于通过所述网络协议访问所述网络存储系统,以获取所述网络存储系统的数据;采用直接内存访问方式将获取的数据存储至所述并行处理单元中;
所述主机在通过虚拟化技术将所述数据处理设备映射为所述主机的存储设备时,具体用于:
所述主机用于对所述数据处理设备进行初始化,并在对所述数据处理设备初始化过程中,配置所述数据处理设备的身份标识,以将所述数据处理设备映射为所述主机的总线上的虚拟块设备;所述数据处理设备的身份标识中的功能号包括存储介质和网卡的标识;
所述主机在设备枚举过程中,从所述虚拟块设备的寄存器中获取所述虚拟块设备的功能为存储介质和网卡;并加载所述虚拟块设备的功能对应的虚拟块设备驱动,以将所述数据处理设备映射为所述主机的存储设备;
所述主机,在通过映射出的存储设备将所述主机的网络协议卸载至所述数据处理设备时,具体用于:
将针对所述网络存储系统的访问请求提供给所述映射出的存储设备,以供所述数据处理设备从所述映射出的存储设备获取所述访问请求;并基于所述访问请求,通过所述网络协议访问所述网络存储系统,以获取所述访问请求的待读取数据,作为所述获取的数据。
9.根据权利要求8所述的系统,所述数据处理设备在采用直接内存访问方式将获取的数据存储至所述并行处理单元中时,具体用于:
所述数据处理设备触发所述主机中的网络存储驱动组件回调所述主机的内核驱动程序;
所述内核驱动程序将所述并行处理单元的虚拟地址转换为物理地址,并启动所述主机的直接内存访问机制;
所述主机中的直接内存访问引擎将所述获取的数据从所述数据处理设备直接写入所述并行处理单元的物理地址。
10.根据权利要求8或9所述的系统,所述数据处理设备,还用于:
通过内核旁路方式将所述获取的数据存储至所述主机的系统内存中。
11.一种存储有计算机指令的计算机可读存储介质,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求1-7任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210976556.9A CN115048227B (zh) | 2022-08-15 | 2022-08-15 | 数据处理方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210976556.9A CN115048227B (zh) | 2022-08-15 | 2022-08-15 | 数据处理方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115048227A CN115048227A (zh) | 2022-09-13 |
CN115048227B true CN115048227B (zh) | 2022-12-09 |
Family
ID=83167341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210976556.9A Active CN115048227B (zh) | 2022-08-15 | 2022-08-15 | 数据处理方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115048227B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116932433B (zh) * | 2023-09-18 | 2024-01-09 | 珠海星云智联科技有限公司 | 基于dpu的装机控制方法及相关设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1812345A (zh) * | 2006-03-08 | 2006-08-02 | 杭州华为三康技术有限公司 | 虚拟化网络存储系统及其网络存储设备 |
CN106933775A (zh) * | 2013-10-29 | 2017-07-07 | 华为技术有限公司 | 数据处理系统和数据处理的方法 |
CN108028833A (zh) * | 2015-12-30 | 2018-05-11 | 华为技术有限公司 | 一种nas数据访问的方法、系统及相关设备 |
CN112953967A (zh) * | 2021-03-30 | 2021-06-11 | 扬州万方电子技术有限责任公司 | 网络协议卸载装置和数据传输系统 |
CN114546601A (zh) * | 2022-03-17 | 2022-05-27 | 阿里巴巴(中国)有限公司 | 虚拟机管理方法及装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8631470B2 (en) * | 2008-02-20 | 2014-01-14 | Bruce R. Backa | System and method for policy based control of NAS storage devices |
US20160011810A1 (en) * | 2014-03-26 | 2016-01-14 | 2419265 Ontario Limited | Solid-state memory device with plurality of memory devices |
CN109726039B (zh) * | 2017-10-27 | 2023-05-05 | 伊姆西Ip控股有限责任公司 | 用于管理虚拟机的方法和设备 |
CN111399767A (zh) * | 2020-02-21 | 2020-07-10 | 苏州浪潮智能科技有限公司 | Io请求的处理方法、系统、设备及计算机可读存储介质 |
-
2022
- 2022-08-15 CN CN202210976556.9A patent/CN115048227B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1812345A (zh) * | 2006-03-08 | 2006-08-02 | 杭州华为三康技术有限公司 | 虚拟化网络存储系统及其网络存储设备 |
CN106933775A (zh) * | 2013-10-29 | 2017-07-07 | 华为技术有限公司 | 数据处理系统和数据处理的方法 |
CN108028833A (zh) * | 2015-12-30 | 2018-05-11 | 华为技术有限公司 | 一种nas数据访问的方法、系统及相关设备 |
CN112953967A (zh) * | 2021-03-30 | 2021-06-11 | 扬州万方电子技术有限责任公司 | 网络协议卸载装置和数据传输系统 |
CN114546601A (zh) * | 2022-03-17 | 2022-05-27 | 阿里巴巴(中国)有限公司 | 虚拟机管理方法及装置 |
Non-Patent Citations (1)
Title |
---|
云计算技术在海量电子病历数据分析中的应用研究;张东林;《太原学院学报(自然科学版)》;20180315(第01期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115048227A (zh) | 2022-09-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9294567B2 (en) | Systems and methods for enabling access to extensible storage devices over a network as local storage via NVME controller | |
US9529773B2 (en) | Systems and methods for enabling access to extensible remote storage over a network as local storage via a logical storage controller | |
US20210232528A1 (en) | Configurable device interface | |
US11698804B2 (en) | Adaptive virtual function drivers for electronic devices | |
US9430268B2 (en) | Systems and methods for supporting migration of virtual machines accessing remote storage devices over network via NVMe controllers | |
US11016817B2 (en) | Multi root I/O virtualization system | |
CN113826076B (zh) | 可扩展且安全的容器 | |
CN108491278B (zh) | 一种处理业务数据的方法和网络设备 | |
CN115048227B (zh) | 数据处理方法、系统及存储介质 | |
US20220334989A1 (en) | Apparatus, method and computer program product for efficient software-defined network accelerated processing using storage devices which are local relative to a host | |
CN108737131B (zh) | 网络设备虚拟化的实现方法和装置 | |
WO2015117405A1 (zh) | Xen虚拟化系统的全映射方法及装置 | |
KR20210121178A (ko) | 엔진 선점 및 복원 | |
US10164911B2 (en) | Shim layer used with a virtual machine virtual NIC and a hardware platform physical NIC | |
CN109656675B (zh) | 总线设备、计算机设备及实现物理主机云存储的方法 | |
CN107113231B (zh) | 将基于图形的计算卸载到后端设备 | |
US20170371694A1 (en) | Virtualization of a graphics processing unit for network applications | |
CN116489177A (zh) | 一种基于块存储的io访问方法、装置、电子设备及介质 | |
CN113722051B (zh) | 硬件性能获取方法、设备、系统及存储介质 | |
US9684529B2 (en) | Firmware and metadata migration across hypervisors based on supported capabilities | |
US11860792B2 (en) | Memory access handling for peripheral component interconnect devices | |
WO2022213769A1 (zh) | 一种指令发送方法及装置 | |
US11983555B2 (en) | Storage snapshots for nested virtual machines | |
CN115549858A (zh) | 数据传输方法以及装置 | |
WO2018184698A1 (en) | Method and system for supporting creation of virtual machines on a virtualization platform |
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 |