CN113746897A - 一种文件传输方法、装置、设备及存储介质 - Google Patents

一种文件传输方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN113746897A
CN113746897A CN202110856466.1A CN202110856466A CN113746897A CN 113746897 A CN113746897 A CN 113746897A CN 202110856466 A CN202110856466 A CN 202110856466A CN 113746897 A CN113746897 A CN 113746897A
Authority
CN
China
Prior art keywords
network card
file
rdma network
cache
kernel
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.)
Pending
Application number
CN202110856466.1A
Other languages
English (en)
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.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry 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 Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN202110856466.1A priority Critical patent/CN113746897A/zh
Publication of CN113746897A publication Critical patent/CN113746897A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17331Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种文件传输方法、装置、设备及存储介质,该方法包括:接收应用程序发起的文件传输请求,在文件传输请求的触发下申请内核缓存,并从磁盘中读取相应文件至内核缓存中;通过RDMA网卡驱动告知RDMA网卡硬件发起读操作,以指示RDMA网卡硬件读取内核缓存中的文件至RDMA网卡硬件的内部缓存中,并将内部缓存中的文件发送至远端节点。可见,本申请以内核空间已有的RDMA网卡驱动提供的相关功能为基础,通过将磁盘中相应文件读入申请的内核缓存及将内核缓存中相应文件读入RDMA网卡硬件实现文件传输,避免冗余的内存拷贝操作,降低数据从磁盘搬运到RDMA网卡硬件内部缓存的时间,提高文件传输的传输效率。

Description

一种文件传输方法、装置、设备及存储介质
技术领域
本发明涉及数据搬运技术领域,更具体地说,涉及一种文件传输方法、装置、设备及存储介质。
背景技术
当前使用RDMA(Remote Direct Memory Access,远程直接地址访问)实现文件传输功能时,技术层面主要分如下几个步骤:在应用程序的触发下,将数据从磁盘读入内核缓存,再将数据从内核缓存拷贝到应用缓存,最后将数据从应用缓存读入硬件内部缓存,并将数据从硬件内部缓存发送至远端节点。可见,上述操作步骤中,和数据搬移有关的一共有三次,分别为将数据从磁盘读入内核缓存、将数据从内核缓存拷贝到应用缓存、从应用缓存读入硬件内部缓存,其中将数据从内核缓存拷贝到应用缓存的内存拷贝,本质上是把数据从内存硬件中的一段地址空间搬移到另一段地址空间,从原理上是一次冗余操作,并且非常耗时。
发明内容
本发明的目的是提供一种文件传输方法、装置、设备及存储介质,能够避免冗余的内存拷贝操作,降低数据从磁盘搬运到RDMA网卡硬件内部缓存的时间,提高文件传输的传输效率。
为了实现上述目的,本发明提供如下技术方案:
一种文件传输方法,包括:
接收应用程序发起的文件传输请求,在所述文件传输请求的触发下申请内核缓存,并从磁盘中读取相应文件至所述内核缓存中;
通过RDMA网卡驱动告知RDMA网卡硬件发起读操作,以指示所述RDMA网卡硬件读取所述内核缓存中的文件至所述RDMA网卡硬件的内部缓存中,并将所述内部缓存中的文件发送至远端节点。
优选的,从磁盘中读取相应文件,包括:
通过DMA操作从所述磁盘中读取相应文件;
指示所述RDMA网卡硬件读取所述内核缓存中的文件,包括:
指示所述RDMA网卡硬件通过DMA操作读取所述内核缓存中的文件。
优选的,在所述文件传输请求的触发下请求内核缓存,包括:
指示文件***申请内核缓存,接收所述文件***返回的内核缓存地址信息,以供基于所述内核缓存地址信息将相应文件发送至所述内核缓存中;其中,所述内核缓存地址信息为所述文件***申请得到的内核缓存的地址信息。
优选的,通过RDMA网卡驱动告知RDMA网卡硬件发起读操作之前,还包括:
调用所述RDMA网卡驱动提供的缓存注册接口注册所述内核缓存,以供所述RDMA网卡硬件基于注册的所述内核缓存发起读操作;
通过RDMA网卡驱动告知RDMA网卡硬件发起读操作,包括:
调用所述RDMA网卡驱动提供的指示读接口,指示所述RDMA网卡驱动告知所述RDMA网卡硬件发起读操作。
一种文件传输装置,包括:
第一读模块,用于:接收应用程序发起的文件传输请求,在所述文件传输请求的触发下申请内核缓存,并从磁盘中读取相应文件至所述内核缓存中;
第二读模块,用于:通过RDMA网卡驱动告知RDMA网卡硬件发起读操作,以指示所述RDMA网卡硬件读取所述内核缓存中的文件至所述RDMA网卡硬件的内部缓存中,并将所述内部缓存中的文件发送至远端节点。
优选的,第一读模块包括:
第一读单元,用于:通过DMA操作从所述磁盘中读取相应文件;
第二读模块包括:
第二读单元,用于:指示所述RDMA网卡硬件通过DMA操作读取所述内核缓存中的文件。
优选的,第一读模块包括:
申请单元,用于:指示文件***申请内核缓存,接收所述文件***返回的内核缓存地址信息,以供基于所述内核缓存地址信息将相应文件发送至所述内核缓存中;其中,所述内核缓存地址信息为所述文件***申请得到的内核缓存的地址信息。
优选的,还包括:
调用模块,用于:通过RDMA网卡驱动告知RDMA网卡硬件发起读操作之前,调用所述RDMA网卡驱动提供的缓存注册接口注册所述内核缓存,以供所述RDMA网卡硬件基于注册的所述内核缓存发起读操作;
第二读模块,包括:
调用单元,用于:调用所述RDMA网卡驱动提供的指示读接口,指示所述RDMA网卡驱动告知所述RDMA网卡硬件发起读操作。
一种文件传输设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一项所述文件传输方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项文件传输方法的步骤。
本发明提供了一种文件传输方法、装置、设备及存储介质,该方法包括:接收应用程序发起的文件传输请求,在所述文件传输请求的触发下申请内核缓存,并从磁盘中读取相应文件至所述内核缓存中;通过RDMA网卡驱动告知RDMA网卡硬件发起读操作,以指示所述RDMA网卡硬件读取所述内核缓存中的文件至所述RDMA网卡硬件的内部缓存中,并将所述内部缓存中的文件发送至远端节点。本申请响应应用程序的文件传输请求,从磁盘中读取相应文件至申请的内核缓存中,再通过RDMA网卡驱动指示RDMA网卡硬件读取内核缓存中的文件至内部缓存中,以通过网络或者光纤将内部缓存中的文件发送至远端节点。可见,本申请以内核空间已有的RDMA网卡驱动提供的相关功能为基础,通过将磁盘中相应文件读入申请的内核缓存及将内核缓存中相应文件读入RDMA网卡硬件实现文件传输,避免冗余的内存拷贝操作,降低数据从磁盘搬运到RDMA网卡硬件内部缓存的时间,提高文件传输的传输效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种文件传输方法的流程图;
图2为本发明实施例提供的一种文件传输方法的实现示意图;
图3为本发明实施例提供的一种文件传输装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,其示出了本发明实施例提供的一种文件传输方法的流程图,具体可以包括:
S11:接收应用程序发起的文件传输请求,在文件传输请求的触发下申请内核缓存,并从磁盘中读取相应文件至内核缓存中。
本发明实施例提供的一种文件传输方法的执行主体可以为文件传输装置,而该文件传输装置可以通过内核空间的rdma_sendfile处理模块实现,本申请实施例中以该文件传输方法的执行主体为rdma_sendfile处理模块进行具体说明。另外,本申请实施例可以以Linux操作***为基础实现,当然还可以根据实际需要应用于其他操作***,均在本发明的保护范围之内。
RDMA意为远程直接地址访问,通过RDMA本端节点(一台电脑或嵌入式设备)可以“直接”访问远端节点的内存;所谓直接,指的是可以像访问本地内存一样,绕过传统以太网复杂的TCP/IP网络协议栈去读写远端内存,这个过程对端CPU是不参与的,而且这个读写过程的大部分工作是由硬件而不是软件完成的。具体来说,用户空间的应用程序通过发起rdma_sendfile***调用实现文件传输请求的发送,rdma_sendfile处理模块被调用后申请操作***内核空间的内核缓存,以能够利用该内核缓存实现相应的数据存储;rdma_sendfile处理模块在申请到内核缓存后,从硬件的磁盘中读取相应的文件,并将读取到的文件缓存至内核缓存中,以供后续从内核缓存中获取相应的文件实现至远端节点的存储。
其中,rdma_sendfile处理模块从磁盘中读取相应文件可以是指示磁盘驱动程序对磁盘控制器进行配置,配置的信息可以包括需要读取的文件的文件大小、文件地址等信息,然后磁盘控制器在完成配置后,基于配置的信息到磁盘中读取相应的文件,然后将读取到的文件存储至内核缓存中;磁盘控制器为能够实现对磁盘管控的控制器。
S12:通过RDMA网卡驱动告知RDMA网卡硬件发起读操作,以指示RDMA网卡硬件读取内核缓存中的文件至RDMA网卡硬件的内部缓存中,并将内部缓存中的文件发送至远端节点。
RDMA网卡驱动及RDMA网卡硬件为实现RDMA的相关模块;rdma_sendfile处理模块通过RDMA网卡驱动告知RDMA网卡硬件发起读操作,RDMA网卡硬件将内核缓存中存储的文件读入至RDMA网卡硬件的内部缓存中,然后通过网线或者光纤等方式将内部缓存中的相应文件发送到远端节点中,以实现相应的RDMA。
本申请响应应用程序的文件传输请求,从磁盘中读取相应文件至申请的内核缓存中,再通过RDMA网卡驱动指示RDMA网卡硬件读取内核缓存中的文件至内部缓存中,以将内部缓存中的文件发送至远端节点。可见,本申请以内核空间已有的RDMA网卡驱动提供的相关功能为基础,通过将磁盘中相应文件读入申请的内核缓存及将内核缓存中相应文件读入RDMA网卡硬件实现文件传输,避免冗余的内存拷贝操作,降低数据从磁盘搬运到RDMA网卡硬件内部缓存的时间,提高文件传输的传输效率。
本发明实施例提供的一种文件传输方法,从磁盘中读取相应文件,可以包括:通过DMA操作从磁盘中读取相应文件;
指示RDMA网卡硬件读取内核缓存中的文件,可以包括:指示RDMA网卡硬件通过DMA操作读取内核缓存中的文件。
本申请实施例中rdma_sendfile处理模块从磁盘中读取相应文件、RDMA网卡硬件从内核缓存中读取相应文件,均可以是通过DMA(Direct Memory Access,直接地址访问)操作实现的,从而通过两次DMA操作实现相应数据的读取,能够有效降低数据读取的时间,进而进一步提高文件传输的效率。
本发明实施例提供的一种文件传输方法,在文件传输请求的触发下请求内核缓存,可以包括:
指示文件***申请内核缓存,接收文件***返回的内核缓存地址信息,以供基于内核缓存地址信息将相应文件发送至内核缓存中;其中,内核缓存地址信息为文件***申请得到的内核缓存的地址信息。
本申请实施例中在请求内核缓存时,rdma_sendfile处理模块通知文件***从磁盘中读取相应的文件,并要求其返回内核缓存地址信息;具体来说,文件***模向操作***申请内存空间(即内核缓存),获取所申请的内核缓存的地址信息(可以包括地址和长度),并将获取到的内核缓存地址信息告知给rdma_sendfile处理模块,以便于需要读取内核缓存中的文件时基于该内核缓存地址信息实现内核缓存的定位;可见,本申请以内核空间已有的文件***提供的相关功能为基础实现内核缓存的申请,简便有效。
本发明实施例提供的一种文件传输方法,通过RDMA网卡驱动告知RDMA网卡硬件发起读操作之前,还可以包括:
调用RDMA网卡驱动提供的缓存注册接口注册内核缓存,以供RDMA网卡硬件基于注册的内核缓存发起读操作;
通过RDMA网卡驱动告知RDMA网卡硬件发起读操作,可以包括:
调用RDMA网卡驱动提供的指示读接口,指示RDMA网卡驱动告知RDMA网卡硬件发起读操作。
需要说明的是,本申请实施例中rdma_sendfile处理模块调用RDMA网卡驱动提供的ib_reg_mr接口(缓存注册接口)注册MR(Memory Region,内存区域),其作用是把申请的内核缓存的信息向RDMA设备注册;rdma_sendfile处理模块调用RDMA网卡驱动的ib_post_send接口(指示读接口),通过RDMA网卡驱动告知RDMA网卡硬件开始发起RDMA Write操作,目的是将数据写到远端节点的内存。可见本申请通过调用RDMA网卡驱动的接口实现相应功能,简便且有效。
在一种具体实现方式中,如图2所示,本发明实施例提供的一种文件传输方法具体可以包括:
①应用程序发起rdma_sendfile***调用;
②内核空间中的rdma_sendfile处理模块通知文件***从磁盘读取文件,并要求其返回内核缓存地址信息;
③文件***向***申请内存空间,即内核缓存;
④文件***将内核缓存的地址信息(包括地址和长度)告知rdma_sendfile处理模块;
⑤rdma_sendfile处理模块调用RDMA网卡驱动提供的ib_reg_mr接口注册MR,其作用是把内核缓存的信息向RDMA设备注册;(这一步和第⑥步可以同时进行以节省时间)
⑥磁盘驱动程序对磁盘控制器进行配置,之后磁盘控制器会进行图中的第一次DMA操作,将数据从磁盘读入内核缓;
⑦rdma_sendfile处理模块调用RDMA网卡驱动的ib_post_send接口,通过RDMA网卡驱动告知RDMA网卡硬件开始发起RDMA Write操作,目的是将数据写到远端节点的内存。
⑧RDMA网卡硬件发起图中第二次DMA操作,将数据从内核缓存读入硬件内部缓存,之后将数据通过网线/光纤发送到远端节点。
相应实现上述步骤的具体的伪代码可以如下:
一、为新的***调用rdma_sendfile添加***调用号,定义相应的处理函数;在Linux操作***的源代码中,修改文件“/arch/x86/entry/syscalls/syscall_64.tbl”,添加新的***调用号(假设当前Linux版本的最后一个***调用为439)440,定义其处理函数为sys_rdma_sendfile,并保存:
440common rdma_sendfile sys_rdma_sendfile
二、修改现有文件***;仿照原有文件***中读取文件的处理函数generic_file_buffered_read,对其进行改造,创建新的处理函数generic_file_buffered_read_get_addr,不再将数据拷贝到用户空间缓存(copy_page_to_iter),而是直接返回内核缓存地址信息:
Figure BDA0003184318440000081
三、添加rdma_sendfile处理模块;在Linux操作***的源代码中,打开文件/kernel/sys.c,添加新的***调用的具体实现:
Figure BDA0003184318440000082
四、在应用程序进程部分,调用rdma_sendfile***调用,并在参数中指明文件名(含目录)、远端节点的QP(Queue Pair,工作队列对)和WR(WorkRequest,工作请求):
Figure BDA0003184318440000083
本发明在现有的Linux文件***和RDMA驱动的基础上,添加了一个新的***调用rdma_sendfile和对应的处理模块,使RDMA驱动可以直接使用文件***中用于存放从磁盘读取到的数据的内核缓存,避免了从内核缓存到用户缓存的数据拷贝步骤,加速文件传输的处理速度。而对于用户而言,代码示例可以如下:
Figure BDA0003184318440000091
本发明在***调用的处理过程中,以内核已有的RDMA网卡驱动和文件***两个软件模块提供的相关功能为基础,提取内核缓存相关的信息,直接交给RDMA网卡硬件使用,避免冗余的内存拷贝操作,降低数据从硬盘搬运到RDMA网卡内部缓存的时间,并使得应用程序进程不必再向***申请缓存,降低了***内存的消耗,从而通过避免现有文件传输中冗余的内存拷贝操作,降低了文件传输过程中的时间消耗,提高了文件传输的效率。
具体来说,本申请整个文件传输中(综合考虑网络上和远端节点的时间消耗)涉及到的数据搬移行为包含下表中的五步,其中给了每个步骤一个典型的硬件性能值,用于计算本发明引起的总体性能的变化。在这种情况下,采用本发明避免了第二步的内存拷贝后,经过计算,传输文件的总时间消耗可以降低8%。
第一次DMA(从硬盘到内存) 3G字节/秒
内存拷贝(单核) 7G字节/秒
第二次DMA(从内存到RDMA网卡) 7G字节/秒
本端RDMA网卡发送到对端RDMA网卡 1G字节/秒
对端网卡将数据拷贝到应用程序内存 7G字节/秒
本发明实施例还提供了一种文件传输装置,如图3所示,可以包括:
第一读模块11,用于:接收应用程序发起的文件传输请求,在文件传输请求的触发下申请内核缓存,并从磁盘中读取相应文件至内核缓存中;
第二读模块12,用于:通过RDMA网卡驱动告知RDMA网卡硬件发起读操作,以指示RDMA网卡硬件读取内核缓存中的文件至RDMA网卡硬件的内部缓存中,并将内部缓存中的文件发送至远端节点。
本发明实施例提供的一种文件传输装置,第一读模块可以包括:
第一读单元,用于:通过DMA操作从磁盘中读取相应文件;
第二读模块可以包括:
第二读单元,用于:指示RDMA网卡硬件通过DMA操作读取内核缓存中的文件。
本发明实施例提供的一种文件传输装置,第一读模块可以包括:
申请单元,用于:指示文件***申请内核缓存,接收文件***返回的内核缓存地址信息,以供基于内核缓存地址信息将相应文件发送至内核缓存中;其中,内核缓存地址信息为文件***申请得到的内核缓存的地址信息。
本发明实施例提供的一种文件传输装置,还可以包括:
调用模块,用于:通过RDMA网卡驱动告知RDMA网卡硬件发起读操作之前,调用RDMA网卡驱动提供的缓存注册接口注册内核缓存,以供RDMA网卡硬件基于注册的内核缓存发起读操作;
第二读模块可以包括:
调用单元,用于:调用RDMA网卡驱动提供的指示读接口,指示RDMA网卡驱动告知RDMA网卡硬件发起读操作。
本发明实施例还提供了一种文件传输设备,可以包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上任一项文件传输方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上任一项文件传输方法的步骤。
需要说明的是,本发明实施例提供的一种文件传输装置、设备及存储介质中相关部分的说明请参见本发明实施例提供的一种文件传输方法中对应部分的详细说明,在此不再赘述。另外本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种文件传输方法,其特征在于,包括:
接收应用程序发起的文件传输请求,在所述文件传输请求的触发下申请内核缓存,并从磁盘中读取相应文件至所述内核缓存中;
通过RDMA网卡驱动告知RDMA网卡硬件发起读操作,以指示所述RDMA网卡硬件读取所述内核缓存中的文件至所述RDMA网卡硬件的内部缓存中,并将所述内部缓存中的文件发送至远端节点。
2.根据权利要求1所述的方法,其特征在于,从磁盘中读取相应文件,包括:
通过DMA操作从所述磁盘中读取相应文件;
指示所述RDMA网卡硬件读取所述内核缓存中的文件,包括:
指示所述RDMA网卡硬件通过DMA操作读取所述内核缓存中的文件。
3.根据权利要求2所述的方法,其特征在于,在所述文件传输请求的触发下请求内核缓存,包括:
指示文件***申请内核缓存,接收所述文件***返回的内核缓存地址信息,以供基于所述内核缓存地址信息将相应文件发送至所述内核缓存中;其中,所述内核缓存地址信息为所述文件***申请得到的内核缓存的地址信息。
4.根据权利要求3所述的方法,其特征在于,通过RDMA网卡驱动告知RDMA网卡硬件发起读操作之前,还包括:
调用所述RDMA网卡驱动提供的缓存注册接口注册所述内核缓存,以供所述RDMA网卡硬件基于注册的所述内核缓存发起读操作;
通过RDMA网卡驱动告知RDMA网卡硬件发起读操作,包括:
调用所述RDMA网卡驱动提供的指示读接口,指示所述RDMA网卡驱动告知所述RDMA网卡硬件发起读操作。
5.一种文件传输装置,其特征在于,包括:
第一读模块,用于:接收应用程序发起的文件传输请求,在所述文件传输请求的触发下申请内核缓存,并从磁盘中读取相应文件至所述内核缓存中;
第二读模块,用于:通过RDMA网卡驱动告知RDMA网卡硬件发起读操作,以指示所述RDMA网卡硬件读取所述内核缓存中的文件至所述RDMA网卡硬件的内部缓存中,并将所述内部缓存中的文件发送至远端节点。
6.根据权利要求5所述的装置,其特征在于,第一读模块包括:
第一读单元,用于:通过DMA操作从所述磁盘中读取相应文件;
第二读模块包括:
第二读单元,用于:指示所述RDMA网卡硬件通过DMA操作读取所述内核缓存中的文件。
7.根据权利要求6所述的装置,其特征在于,第一读模块包括:
申请单元,用于:指示文件***申请内核缓存,接收所述文件***返回的内核缓存地址信息,以供基于所述内核缓存地址信息将相应文件发送至所述内核缓存中;其中,所述内核缓存地址信息为所述文件***申请得到的内核缓存的地址信息。
8.根据权利要求7所述的装置,其特征在于,还包括:
调用模块,用于:通过RDMA网卡驱动告知RDMA网卡硬件发起读操作之前,调用所述RDMA网卡驱动提供的缓存注册接口注册所述内核缓存,以供所述RDMA网卡硬件基于注册的所述内核缓存发起读操作;
第二读模块,包括:
调用单元,用于:调用所述RDMA网卡驱动提供的指示读接口,指示所述RDMA网卡驱动告知所述RDMA网卡硬件发起读操作。
9.一种文件传输设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至4任一项所述文件传输方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述文件传输方法的步骤。
CN202110856466.1A 2021-07-28 2021-07-28 一种文件传输方法、装置、设备及存储介质 Pending CN113746897A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110856466.1A CN113746897A (zh) 2021-07-28 2021-07-28 一种文件传输方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110856466.1A CN113746897A (zh) 2021-07-28 2021-07-28 一种文件传输方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN113746897A true CN113746897A (zh) 2021-12-03

Family

ID=78729327

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110856466.1A Pending CN113746897A (zh) 2021-07-28 2021-07-28 一种文件传输方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN113746897A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174673A (zh) * 2022-06-29 2022-10-11 北京奕斯伟计算技术股份有限公司 具备低延迟处理器的数据处理装置、数据处理方法及设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060294234A1 (en) * 2005-06-22 2006-12-28 Cisco Technology, Inc. Zero-copy network and file offload for web and application servers
CN101063963A (zh) * 2006-04-26 2007-10-31 韩国电子通信研究院 数据零拷贝文件的移动方法
US20160350261A1 (en) * 2015-05-27 2016-12-01 Red Hat Israel, Ltd. Memory Deduplication Support for Remote Direct Memory Access (RDMA)
CN106598752A (zh) * 2016-11-15 2017-04-26 北京大学深圳研究生院 远程零拷贝方法
CN107025146A (zh) * 2016-01-30 2017-08-08 华为技术有限公司 一种文件生成方法、装置和***
CN109491809A (zh) * 2018-11-12 2019-03-19 西安微电子技术研究所 一种降低高速总线延迟的通信方法
CN110177118A (zh) * 2019-06-13 2019-08-27 上海海事大学 一种基于rdma的rpc通信方法
WO2020155417A1 (en) * 2019-01-30 2020-08-06 Huawei Technologies Co., Ltd. Input/output processing in a distributed storage node with rdma
CN112948318A (zh) * 2021-03-09 2021-06-11 西安奥卡云数据科技有限公司 一种Linux操作***下基于RDMA的数据传输方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060294234A1 (en) * 2005-06-22 2006-12-28 Cisco Technology, Inc. Zero-copy network and file offload for web and application servers
CN101063963A (zh) * 2006-04-26 2007-10-31 韩国电子通信研究院 数据零拷贝文件的移动方法
US20160350261A1 (en) * 2015-05-27 2016-12-01 Red Hat Israel, Ltd. Memory Deduplication Support for Remote Direct Memory Access (RDMA)
CN107025146A (zh) * 2016-01-30 2017-08-08 华为技术有限公司 一种文件生成方法、装置和***
CN106598752A (zh) * 2016-11-15 2017-04-26 北京大学深圳研究生院 远程零拷贝方法
CN109491809A (zh) * 2018-11-12 2019-03-19 西安微电子技术研究所 一种降低高速总线延迟的通信方法
WO2020155417A1 (en) * 2019-01-30 2020-08-06 Huawei Technologies Co., Ltd. Input/output processing in a distributed storage node with rdma
CN110177118A (zh) * 2019-06-13 2019-08-27 上海海事大学 一种基于rdma的rpc通信方法
CN112948318A (zh) * 2021-03-09 2021-06-11 西安奥卡云数据科技有限公司 一种Linux操作***下基于RDMA的数据传输方法及装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115174673A (zh) * 2022-06-29 2022-10-11 北京奕斯伟计算技术股份有限公司 具备低延迟处理器的数据处理装置、数据处理方法及设备
CN115174673B (zh) * 2022-06-29 2023-11-03 北京奕斯伟计算技术股份有限公司 具备低延迟处理器的数据处理装置、数据处理方法及设备

Similar Documents

Publication Publication Date Title
JP2820752B2 (ja) 密結合マルチプロセッサシステムにおけるキャッシュメモリ一致制御方法
JP2014154155A (ja) コマンド・プッシュ・モデルの使用によりデータ・ストレージ・システムにおける書込みレイテンシを低減させるための方法およびシステム
KR100662256B1 (ko) 낮은 프로세스 점유율을 가지는 객체기반 스토리지 장치및 그 제어 방법
US10133672B2 (en) System and method for efficient pointer chasing
US11868631B2 (en) System startup method and related device
CN113918101A (zh) 一种写数据高速缓存的方法、***、设备和存储介质
US20220222016A1 (en) Method for accessing solid state disk and storage device
WO2016019566A1 (zh) 内存管理方法、装置和***、以及片上网络
US6647469B1 (en) Using read current transactions for improved performance in directory-based coherent I/O systems
CN113746897A (zh) 一种文件传输方法、装置、设备及存储介质
US9304711B2 (en) Latency reduction in read operations from data storage in a host device
US6826622B2 (en) Method of transferring data between memories of computers
CN106250322B (zh) 一种写数据的方法和装置
CN114285676B (zh) 智能网卡、智能网卡的网络存储方法和介质
CN116483738B (zh) 数据访问方法及装置、存储介质及电子装置
JP2821345B2 (ja) 非同期i/o制御方式
US11960419B2 (en) Systems and methods for data prefetching for low latency data read from a remote server
JPH07239808A (ja) 分散データ管理方式
CN114553521A (zh) 一种远端内存访问方法、装置、设备及介质
WO2006088917A1 (en) Methodology for effectively utilizing processor cache in an electronic system
CN110209343B (zh) 数据存储方法、装置、服务器及存储介质
CN108762666B (zh) 一种存储***的访问方法、***、介质及设备
JP2007018195A (ja) 情報処理方法および情報処理装置
JP2885640B2 (ja) データバス転送方法
CN114880356B (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