CN112612734A - 文件传输方法、装置、计算机设备及存储介质 - Google Patents
文件传输方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN112612734A CN112612734A CN202011509142.2A CN202011509142A CN112612734A CN 112612734 A CN112612734 A CN 112612734A CN 202011509142 A CN202011509142 A CN 202011509142A CN 112612734 A CN112612734 A CN 112612734A
- Authority
- CN
- China
- Prior art keywords
- data
- information
- file
- read
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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
本发明公开了一种文件传输方法、装置、计算机设备及存储介质。方法包括:判断服务器中所存储的缓存数据是否已达到饱和状态;若服务器中所存储的缓存数据已达到饱和状态,则将缓存数据的文件块组的超级块信息拷贝至服务器内存中;将存储于服务器内存中的超级块信息通过RDMA远程传输至客户端;获取客户端基于超级块信息生成的远程数据读取请求,远程数据读取请求中包含待读取数据的地址空间;根据远程数据读取请求,将待读取数据通过DMA远程传输至客户端。本方案只拷贝缓存数据的超级块信息到服务器内存,降低缓存数据传输压力;并通过DMA远程传输目标数据,不涉及操作***和CPU的处理,减少了数据拷贝传输量,提高了数据传输效率。
Description
技术领域
本发明涉及数据传输技术领域,尤其涉及一种文件传输方法、装置、计算机设备及存储介质。
背景技术
在现有的缓存I/O机制中,DMA方式可以将数据直接从磁盘读到页缓存中,或者将数据从页缓存直接写回到磁盘上,而不能直接在应用程序地址空间和磁盘之间进行数据传输,这样的话,数据在传输过程中需要在应用程序地址空间和页缓存之间进行多次数据拷贝操作,这些数据拷贝操作所带来的CPU(Central Processing Unit,中央处理器)以及内存开销是非常大的。
为了提高数据读取的效率,目前Linux***层面做了很多的改进,比如:加入内存共享(mmap,内存映射文件的方法);使用Sendfile零拷贝技术,在代表输入文件的描述符in_fd和代表输出文件的描述符out_fd之间传送文件内容,通过DMA直接将文件描述符发送到Socket缓冲区,而数据也是由DMA引擎拷贝到socket缓冲区;在数据一定要经过用户空间时,也有使用COW技术(Copy On Write,写时复制)。
以上几种常见的零拷贝技术中,CPU均参与到了上下文切换和数据拷贝活动中,文件传输时无法完全避免CPU的参与,会造成CPU资源的占用和消耗,同时上述的零拷贝文件方式只能针对一些特定的文件***,无法满足通用文件***的要求。
发明内容
本发明实施例提供了一种文件传输方法、装置、计算机设备及存储介质,旨在解决文件传输时对CUP资源占用的问题。
第一方面,本发明实施例提供了一种文件传输方法,其包括以下步骤:判断服务器中所存储的缓存数据是否已达到饱和状态;若服务器中所存储的缓存数据已达到饱和状态,则将所述缓存数据的文件块组的超级块信息拷贝至服务器内存中;将存储于服务器内存中的所述超级块信息通过RDMA远程传输至客户端;获取所述客户端基于所述超级块信息生成的远程数据读取请求,所述远程数据读取请求中包含待读取数据的地址空间;根据所述远程数据读取请求,将所述待读取数据通过RDMA远程传输至客户端。
第二方面,本发明实施例还提供了一种文件传输装置,包括:缓存判断单元,用于判断服务器中所存储的缓存数据是否已达到饱和状态;信息拷贝单元,用于若服务器中所存储的缓存数据已达到饱和状态,则将所述缓存数据的文件块组的超级块信息拷贝至服务器内存中;信息传输单元,用于将存储于服务器内存中的所述超级块信息通过RDMA远程传输至客户端;请求获取单元,用于获取所述客户端基于所述超级块信息生成的远程数据读取请求,所述远程数据读取请求中包含待读取数据的地址空间;数据传输单元,根据所述远程数据读取请求,将所述待读取数据通过DMA远程传输至所述客户端。
第三方面,本发明实施例还提供了一种计算机设备,其包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现上述文件传输方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现上述文件传输方法。
本发明实施例提供了一种文件传输方法、装置、计算机设备及存储介质。其中,方法包括:判断服务器中所存储的缓存数据是否已达到饱和状态;若服务器中所存储的缓存数据已达到饱和状态,则将所述缓存数据的文件块组的超级块信息拷贝至服务器内存中;将存储于服务器内存中的超级块信息通过RDMA远程传输至客户端;获取客户端基于超级块信息生成的远程数据读取请求,远程数据读取请求中包含待读取数据的地址空间;根据所述远程数据读取请求,将所述待读取数据通过DMA远程传输至所述客户端。本发明实施例由于在服务器中存满缓存数据时,只拷贝缓存数据的超级块信息到服务器内存,降低缓存数据传输压力,并通过RDMA远程传输至客户端,客户端基于超级块信息解析得到待读取数据的地址空间,并基于地址空间通过DMA远程传输从服务器的内存直接读取目标数据,不涉及操作***和CPU的处理,简化了数据传输处理流程,减少了数据拷贝传输量,提高了数据传输效率,提高文件远程传输的场景的普遍性。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的文件传输方法的应用场景示意图;
图2为本发明实施例提供的文件传输方法的流程示意图;
图3为本发明实施例提供的文件传输方法的子流程示意图;
图4为本发明实施例提供的文件传输方法的子流程示意图;
图5为本发明实施例提供的文件传输方法的子流程示意图;
图6为本发明实施例提供的文件传输方法的子流程示意图;
图7为本发明另一实施例提供的文件传输方法的流程示意图;
图8为本发明实施例提供的文件传输装置的示意性框图;
图9为本发明实施例提供的文件传输装置的信息拷贝单元的示意性框图;
图10为本发明实施例提供的文件传输装置的数据传输单元的示意性框图;
图11为本发明实施例提供的文件传输装置的数据加密模块的示意性框图;
图12为本发明另一实施例提供的文件传输装置的示意性框图;以及
图13为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1和图2,图1为本发明实施例提供的文件传输方法的应用场景示意图。图2为本发明实施例提供的文件传输方法的示意性流程图。该文件传输方法应用于服务器中,服务器与客户端进行数据交互,并实现文件远程传输。服务器通过服务器所存储的缓存数据已经饱和时,将缓存数据的超级块信息拷贝至服务器内存中,并通过RDMA远程传输至客户端,客户端基于超级块信息解析得到待读取数据的地址空间,并基于地址空间通过RDMA远程传输从服务器内存获取对应的数据。如图1所示,客户端可包括第一终端和第二终端等可进行网络数据传输的终端设备。
图2是本发明实施例提供的一种文件传输方法的流程示意图。如图所示,该方法包括以下步骤S110-150。
S110、判断服务器中所存储的缓存数据是否已达到饱和状态。
在本实施例中,服务器的文件***在正常使用时,用户进程通过read()命令调用sys_read()命令进入到内核态,进程调度器分配CPU(Central Processing Unit,中央处理器),CPU发送IO(Input/Output,输入/输出)操作至DMA,DMA通过请求对硬件进行驱动,硬件将缓存数据进行缓存,缓存数据的大小也决定了中断的频率。若服务器所缓存的缓存数据已经达到饱和状态,则会触发CPU中断,进而触发DMA辅助数据到服务器的内存中。
其中,DMA(Direct Memory Access,直接存储器访问)是所有现代计算机的重要功能,DMA允许不同速度的硬件装置进行沟通,而不需要依赖于CPU的大量中断负载。
S120、若服务器中所存储的缓存数据已达到饱和状态,则将缓存数据的文件块组的超级块信息拷贝至服务器内存中。
在本实施例中,缓存数据由多个文件块组组成,每个文件块组包含有:Inode、超级块、Dentry缓存和数据块。本方案只将超级块信息通过DMA拷贝到服务器内存中,而不对剩下的Inode、Dentry缓存和数据块进行拷贝,以减少DMA拷贝数据大小,进而提高DMA拷贝效率。超级块内包含有管理整个文件***的信息,基于文件块组的超级块信息,可以获取服务器硬盘中各个文件所对应的Inode,而Inode结构中i_mapping与i_data字段则实际映射了各个文件在服务器硬盘的地址空间,因此硬盘中所有的数据均可通过超级块信息来获取。
其中,Inode,中文为索引节点,用于存储文件元信息,每个文件都具有文件元信息,文件元信息包含有文件创建者信息、文件创建日期信息、文件地址信息和文件大小信息等等用于描述对应的文件的信息。其中,文件地址信息即为上述的Inode结构中i_mapping与i_data字段。
参考图3,在一实施例中,步骤S120包括步骤S121-S123。
S121、解析缓存数据,得到组成缓存数据的多个文件块组。
S122、获取每个文件块组中的超级块信息。
S123、将所有文件块组中的超级块信息通过DMA拷贝至服务器内存中。
在本实施例中,在通过DMA将超级块信息拷贝到服务器内存之前,需要对缓存数据进行解析,以得到组成缓存数据的文件块组,再从解析出来的文件块组中读取出各个文件块组的超级块信息,并通过DMA技术拷贝到服务器内存中,以便客户端直接通过RDMA技术远程传输取得。
S130、将存储于服务器内存中的超级块信息通过RDMA远程传输至客户端。
在本实施例中,本方案使用RDMA技术,客户端可以通过RDMA远程访问服务器内存中的数据,直接拷贝内存中文件(也即是上述的超级块信息)并传输到客户端,也即是,服务器将内存中的超级块信息通过RDMA远程传输至客户端,并由客户端进一步处理,通过RDMA直接将服务器内存中的超级块信息拷贝到客户端,不涉及操作***和CPU的处理,简化了数据传输处理流程,减少了服务器到客户端的数据拷贝传输量,提高了数据传输效率。
其中,RDMA(Remote Direct Memory Access)技术全称远程直接数据存取,就是为了解决网络传输中服务器数据处理的延迟而产生的。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个***快速移动到远程***存储器中,而不对操作***造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和CPU周期用于改进应用***性能。
S140、获取客户端基于超级块信息生成的远程数据读取请求,远程数据读取请求中包含待读取数据的地址空间。
在本实施例中,客户端基于获取到的超级块信息解析得到服务器文件***中全部或部分文件的地址空间,客户端根据自身需求并基于得到的地址空间生成一远程数据读取请求,其中远程数据读取请求,包括了待读取数据的地址空间,基于远程数据读取请求可以直接通过DMA远程拷贝对应地址空间下的数据块和其他文件信息,以完成服务器和客户端之间的数据远程传输。
S150、根据远程数据读取请求,将待读取数据通过DMA远程传输至客户端。
在本实施例中,基于客户端的远程数据读取请求,客户端可以直接通过DMA远程拷贝服务器上对应的地址空间下的数据块和其他文件信息,以完成服务器和客户端之间的数据远程传输。
具体的,远程数据读取请求中可以包括多个待读取数据的地址空间。例如远程数据读取请求可以包括待读取数据a、待读取数据b和待读取数据c的地址空间,客户端基于该远程数据读取请求可以直接通过DMA远程拷贝对应待读取数据a、待读取数据b和待读取数据c的数据块和其他文件信息,以完成服务器和客户端之间的数据远程传输。
参考图4,在一实施例中,步骤S150包括步骤S151-S153。
S151、根据地址空间,获取与地址空间相对应的待读取数据。
S152、对待读取数据进行加密,以得到加密后的数据包。
S153、将加密后的数据包通过DMA远程传输至客户端。
在本实施例中,为了保证数据的完整性和安全性,本方案在将待读取数据进行服务器到客户端拷贝传输时,向加密对应的待获取数据,并将待获取数据通过DMA远程直接传输至客户端,确保数据的安全。
参考图5,步骤S152包括步骤S1521-S1523。
S1521、通过预设的加密算法对待读取数据进行加密,以得到加密数据。
在本实施例中,获取到待读取数据之后,采用加密算法对该待读取数据进行加密以得到加密数据,确保数据安全,其中加密算法可以采用对称加密算法、非对称加密算法等常规/非常规的加密算法,以进一步提高数据安全。
S1522、将加密数据封装成数据包。
在本实施例中,将加密数据封装成数据包,以数据包的形式进行后续数据传输,可以在加密数据的数据量比较大时,保证加密数据的传输质量和效率。
参考图6,在本实施例中,步骤S1522包括步骤S1522a和S1522b。
S1522a、根据加密数据的信息量,将加密数据划分成多个文件部分。
S1522b、对多个文件部分进行并行压缩,得到多个子数据包。
在本方案中,打包加密数据也即是对加密数据进行压缩,得到压缩包格式的数据包。本方案中,先根据加密数据的信息量将加密数据分成多个文件部分,多个文件部分共同组成该加密数据,另外采用预置的压缩软件对上述的文件部分进行并行压缩,得到多个压缩格式的子数据包,通过并行压缩大大缩短了加密数据的整体压缩时间,提高了加密数据打包效率。其中,压缩包格式的数据包,为zip或rar格式的压缩包文件,对加密数据进行打包后进行传输,有效保证了加密数据在传输过程的数据稳定性。
S1523、于数据包的包头中加入加密算法的标识,以得到加密后的数据包。
在本实施例中,数据包的包头中加入加密算法的标识,可以标识出对应当前数据包的状态,表示该数据包已经完成加密和封装,可以进行数据传输。
本发明实施例在服务器缓存数据已经达到饱和状态,只拷贝缓存数据的超级块信息到服务器内存,降低缓存数据传输压力,并通过RDMA远程传输至客户端,客户端基于超级块信息解析得到待读取数据的地址空间,并基于地址空间通过DMA远程传输从服务器的内存直接读取数据,不涉及操作***和CPU的处理,简化了数据传输处理流程,减少了数据拷贝传输量,提高了数据传输效率,提高文件远程传输的场景的普遍性。
图7是本发明另一实施例提供的一种文件传输方法的流程示意图。如图7所示,本实施例的文件传输方法包括步骤S210-S270。其中步骤S210-S250与上述实施例中的步骤S110-S150类似,在此不再赘述。下面详细说明本实施例中所增加的步骤S260-S270。
S260、解析超级块信息以得到存储于服务器的数据的数据信息数据对应关联的地址空间。
S270、根据数据信息获取待读取数据的地址空间,并基于待读取数据的地址空间生成远程数据读取请求。
在本实施例中,客户端基于获取到的超级块信息解析得到服务器文件***中全部或部分文件的数据信息和与数据信息关联的地址空间,客户端根据数据信息先确定需要读取的数据,在根据与待读取数据关联的地址空间,生成远程数据读取请求,其中远程数据读取请求,包括了待读取数据的地址空间,基于远程数据读取请求可以直接通过DMA远程拷贝对应地址空间下的数据块和其他文件信息,以完成服务器和客户端之间的数据远程传输。
图8是本发明实施例提供的一种文件传输装置的示意性框图。如图8所示,对应于以上文件传输方法,本发明还提供一种文件传输装置。该文件传输装置包括用于执行上述文件传输方法的单元,该装置可以被配置于台式电脑、平板电脑、手提电脑、等终端中。具体地,请参阅图8,该文件传输装置400包括缓存判断单元10,信息拷贝单元20,信息传输单元30,请求获取单元40和数据传输单元50。
缓存判断单元10,用于判断服务器中所存储的缓存数据是否已达到饱和状态。
在本实施例中,服务器的文件***在正常使用时,用户进程通过read()命令调用sys_read()命令进入到内核态,进程调度器分配CPU(Central Processing Unit,中央处理器),CPU发送IO(Input/Output,输入/输出)操作至DMA,DMA通过请求至对硬件进行驱动,硬件将缓存数据进行缓存,缓存数据大小也决定中断的频率。在服务器已经达到饱和状态,会触发CPU中断,进而触发DMA辅助数据到服务器的内存中。
其中,DMA(Direct Memory Access,直接存储器访问)是所有现代计算机的重要功能,DMA允许不同速度的硬件装置进行沟通,而不需要依赖于CPU的大量中断负载。
信息拷贝单元20,用于若服务器中所存储的缓存数据已达到饱和状态,则将所述缓存数据的文件块组的超级块信息拷贝至服务器内存中。
在本实施例中,缓存数据由多个文件块组组成,每个文件块组包含有:Inode、超级块、Dentry缓存和数据块。本方案只将超级块信息通过DMA拷贝到服务器内存中,而不对剩下的Inode、Dentry缓存和数据块进行拷贝,以减少DMA拷贝数据大小,进而提高DMA拷贝效率。超级块内包含有管理整个文件***的信息,基于文件块组的超级块信息,可以获取服务器硬盘中各个文件所对应的Inode,而Inode结构中i_mapping与i_data字段则实际的映射了各个文件在服务器硬盘的地址空间,因此硬盘中所有的数据均可通过超级块信息来获取到。
其中,Inode,中文为索引节点,用于存储文件元信息,每个文件都具有文件元信息,文件元信息包含有文件创建者信息、文件创建日期信息、文件地址信息和文件大小信息等等用于描述对应的文件的信息。其中,文件地址信息即为上述的Inode结构中i_mapping与i_data字段。
参考图9,信息拷贝单元20包括数据解析模块21,信息获取模块22和信息拷贝模块23。
数据解析模块21,用于解析缓存数据,得到组成缓存数据的多个文件块组。
信息获取模块22,用于获取每个文件块组中的超级块信息。
信息拷贝模块23,用于将所有文件块组中的超级块信息通过DMA拷贝至服务器内存中。
在本实施例中,在通过DMA将超级块信息拷贝到服务器内存之前,需要对缓存数据进行解析,以得到组成缓存数据的文件块组,再从解析出来的文件块组中读取出各个文件块组的超级块信息,并通过DMA技术拷贝到服务器内存中,以便客户端直接通过RDMA技术远程传输取得。
信息传输单元30,用于将存储于服务器内存中的超级块信息通过RDMA远程传输至客户端。
在本实施例中,本方案使用RDMA技术,客户端可以通过RDMA远程访问服务器内存中的数据,直接拷贝内存中文件(也即是上述的超级块信息)并传输到客户端,也即是,服务器将内存中的超级块信息通过RDMA远程传输至客户端,并由客户端进一步处理,通过RDMA直接将服务器内存中的超级块信息拷贝到客户端,不涉及操作***和CPU的处理,简化了数据传输处理流程,减少了服务器到客户端的数据拷贝传输量,提高了数据传输效率。
其中,RDMA(Remote Direct Memory Access)技术全称远程直接数据存取,就是为了解决网络传输中服务器数据处理的延迟而产生的。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个***快速移动到远程***存储器中,而不对操作***造成任何影响,这样就不需要用到多少计算机的处理功能。它消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和CPU周期用于改进应用***性能。
请求获取单元40,用于获取客户端基于超级块信息生成的远程数据读取请求,远程数据读取请求中包含待读取数据的地址空间。
在本实施例中,客户端基于获取到的超级块信息解析得到服务器文件***中全部或部分文件的地址空间,客户端根据自身需求并基于得到的地址空间生成一远程数据读取请求,其中远程数据读取请求,包括了待读取数据的地址空间,基于远程数据读取请求可以直接通过DMA远程拷贝对应地址空间下的数据块和其他文件信息,以完成服务器和客户端之间的数据远程传输。
数据传输单元50,用于根据远程数据读取请求,将待读取数据通过DMA远程传输至客户端。
在本实施例中,基于客户端的远程数据读取请求,客户端可以直接通过DMA远程拷贝服务器上对应的地址空间下的数据块和其他文件信息,以完成服务器和客户端之间的数据远程传输。
具体的,远程数据读取请求中可以包括多个待读取数据的地址空间。例如远程数据读取请求可以包括待读取数据a、待读取数据b和待读取数据c的地址空间,客户端基于该远程数据读取请求可以直接通过DMA远程拷贝对应待读取数据a、待读取数据b和待读取数据c的数据块和其他文件信息,以完成服务器和客户端之间的数据远程传输。
参考图10,在一实施例中,数据传输单元50包括数据获取模块51,数据获取模块51和数据传输模块53。
数据获取模块51,用于根据地址空间,获取与地址空间相对应的待读取数据。
数据加密模块52,用于对待读取数据进行加密,以得到加密后的数据包。
数据传输模块53,用于将加密后的数据包通过DMA远程传输至客户端。
在本实施例中,为了保证数据的完整性和安全性,本方案在将待读取数据进行服务器到客户端拷贝传输时,向加密对应的待获取数据,并将待获取数据通过DMA远程直接传输至客户端,确保数据的安全。
参考图11,在一实施例中,数据加密模块52包括加密子模块521,封装子模块522和标识子模块523。
加密子模块521,用于通过预设的加密算法对待读取数据进行加密,以得到加密数据。
在本实施例中,获取到待读取数据之后,采用加密算法对该待读取数据进行加密以得到加密数据,确保数据安全,其中加密算法可以采用对称加密算法、非对称加密算法等常规/非常规的加密算法,以进一步提高数据安全。
封装子模块522,还用于根据加密数据的信息量,将加密数据划分成多个文件部分;对多个文件部分进行并行压缩,得到多个子数据包。
在本实施例中,打包加密数据也即是对加密数据进行压缩,得到压缩包格式的数据包。本方案中,先根据加密数据的信息量将加密数据分成多个文件部分,多个文件部分共同组成该加密数据,另外采用预置的压缩软件对上述的文件部分进行并行压缩,得到多个压缩格式的子数据包,通过并行压缩大大缩短了加密数据的整体压缩时间,提高了加密数据打包效率。其中,压缩包格式的数据包,为zip或rar格式的压缩包文件,对加密数据进行打包后进行传输,有效保证了加密数据在传输过程的数据稳定性。
标识子模块523,用于于数据包的包头中加入加密算法的标识,以得到加密后的数据包。
在本实施例中,数据包的包头中加入加密算法的标识,可以标识出对应当前数据包的状态,表示该数据包已经完成加密和封装,可以进行数据传输。
本发明实施例在服务器已经达到饱和状态,只拷贝缓存数据的超级块信息到服务器内存,降低缓存数据传输压力,并通过RDMA远程传输至客户端,客户端基于超级块信息解析得到待读取数据的地址空间,并基于地址空间通过DMA远程传输从服务器的内存直接读取数据,不涉及操作***和CPU的处理,简化了数据传输处理流程,减少了数据拷贝传输量,提高了数据传输效率,提高文件远程传输的场景的普遍性。
图12是本发明另一实施例提供的一种文件传输装置的示意性框图。如图12所示,本实施例的文件传输装置400是上述实施例的基础上增加了信息解析单元60和请求生成单元70。
信息解析单元60,用于解析超级块信息以得到存储于服务器的数据的数据信息和与数据对应关联的地址空间。
请求生成单元70,用于根据数据信息获取待读取数据的地址空间,并基于待读取数据的地址空间生成远程数据读取请求。
在本实施例中,客户端基于获取到的超级块信息解析得到服务器文件***中全部或部分文件的数据信息和与数据信息关联的地址空间,客户端根据数据信息先确定需要读取的数据,在根据与待读取数据关联的地址空间,生成远程数据读取请求,其中远程数据读取请求,包括了待读取数据的地址空间,基于远程数据读取请求可以直接通过DMA远程拷贝对应地址空间下的数据块和其他文件信息,以完成服务器和客户端之间的数据远程传输。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述文件传输装置400和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述文件传输装置可以实现为一种计算机程序的形式,该计算机程序可以在如图13所示的计算机设备上运行。
请参阅图13,图13是本申请实施例提供的一种计算机设备的示意性框图。该计算机设备500可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图8,该计算机设备500包括通过***总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作***5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种文件传输方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种文件传输方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机***中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中计算机程序包括程序指令。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种文件传输方法,其特征在于,包括以下步骤:
判断服务器中所存储的缓存数据是否已达到饱和状态;
若服务器中所存储的缓存数据已达到饱和状态,则将所述缓存数据的文件块组的超级块信息拷贝至服务器内存中;
将存储于服务器内存中的所述超级块信息通过RDMA远程传输至客户端;
获取所述客户端基于所述超级块信息生成的远程数据读取请求,所述远程数据读取请求中包含待读取数据的地址空间;
根据所述远程数据读取请求,将所述待读取数据通过DMA远程传输至所述客户端。
2.根据权利要求1所述的文件传输方法,其特征在于,所述根据所述远程数据读取请求,将所述待读取数据通过DMA远程传输至所述客户端的步骤,包括:
根据所述地址空间,获取与所述地址空间相对应的待读取数据;
对所述待读取数据进行加密,以得到加密后的数据包;
将所述加密后的数据包通过DMA远程传输至所述客户端。
3.根据权利要求2所述的文件传输方法,其特征在于,所述对所述待读取数据进行加密,以得到加密后的数据包的步骤,包括:
通过预设的加密算法对所述待读取数据进行加密,以得到加密数据;
将所述加密数据封装成数据包;
于所述数据包的包头中加入所述加密算法的标识,以得到加密后的数据包。
4.根据权利要求3所述的文件传输方法,其特征在于,所述将所述加密数据封装成数据包的步骤,包括:
根据所述加密数据的信息量,将所述加密数据划分成多个文件部分;
对多个所述文件部分进行并行压缩,得到多个子数据包。
5.根据权利要求1所述的文件传输方法,其特征在于,所述获取所述客户端基于所述超级块信息生成的远程数据读取请求的步骤之前,包括:
解析所述超级块信息以得到存储于服务器的数据的数据信息和与所述数据对应关联的地址空间;
根据所述数据信息获取待读取数据的地址空间,并基于所述待读取数据的地址空间生成远程数据读取请求。
6.根据权利要求1所述的文件传输方法,其特征在于,所述将所述缓存数据的文件块组的超级块信息拷贝至服务器内存中的步骤,包括:
解析所述缓存数据,得到组成所述缓存数据的多个文件块组;
获取每个所述文件块组中的超级块信息;
将所有文件块组中的所述超级块信息通过DMA拷贝至服务器内存中。
7.一种文件传输装置,其特征在于,包括:
缓存判断单元,用于判断服务器中所存储的缓存数据是否已达到饱和状态;
信息拷贝单元,用于若服务器中所存储的缓存数据已达到饱和状态,则将所述缓存数据的文件块组的超级块信息拷贝至服务器内存中;
信息传输单元,用于将存储于服务器内存中的所述超级块信息通过RDMA远程传输至客户端;
请求获取单元,用于获取所述客户端基于所述超级块信息生成的远程数据读取请求,所述远程数据读取请求中包含待读取数据的地址空间;
数据传输单元,用于根据所述远程数据读取请求,将所述待读取数据通过DMA远程传输至所述客户端。
8.根据权利要求7所述的文件传输装置,其特征在于,所述信息拷贝单元包括数据解析模块,信息获取模块和信息拷贝模块;
所述数据解析模块,用于解析所述缓存数据,得到组成所述缓存数据的多个文件块组;
所述信息获取模块,用于获取每个所述文件块组中的超级块信息;
所述信息拷贝模块,用于将所有文件块组中的所述超级块信息通过DMA拷贝至服务器内存中。
9.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的文件传输方法。
10.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现如权利要求1-6中任一项所述的文件传输方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011509142.2A CN112612734B (zh) | 2020-12-18 | 2020-12-18 | 文件传输方法、装置、计算机设备及存储介质 |
PCT/CN2021/083759 WO2022126919A1 (zh) | 2020-12-18 | 2021-03-30 | 文件传输方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011509142.2A CN112612734B (zh) | 2020-12-18 | 2020-12-18 | 文件传输方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112612734A true CN112612734A (zh) | 2021-04-06 |
CN112612734B CN112612734B (zh) | 2023-09-26 |
Family
ID=75240712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011509142.2A Active CN112612734B (zh) | 2020-12-18 | 2020-12-18 | 文件传输方法、装置、计算机设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112612734B (zh) |
WO (1) | WO2022126919A1 (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113110800A (zh) * | 2021-04-12 | 2021-07-13 | 百度在线网络技术(北京)有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113138969A (zh) * | 2021-04-30 | 2021-07-20 | 青岛盛世影云影视科技有限公司 | 数据传输方法、装置、电子设备和计算机可读存储介质 |
CN113297110A (zh) * | 2021-05-17 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 数据采集***、方法以及装置 |
CN114442951A (zh) * | 2022-01-24 | 2022-05-06 | 珠海泰芯半导体有限公司 | 传输多路数据的方法、装置、存储介质和电子设备 |
CN115086306A (zh) * | 2022-08-18 | 2022-09-20 | 天津市天河计算机技术有限公司 | 一种数据传输方法、装置、电子设备和存储介质 |
CN116775510A (zh) * | 2023-08-22 | 2023-09-19 | 成都泛联智存科技有限公司 | 数据访问方法、装置、服务器和计算机可读存储介质 |
CN116881191A (zh) * | 2023-09-06 | 2023-10-13 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置、设备及存储介质 |
WO2023241740A1 (zh) * | 2022-06-15 | 2023-12-21 | 顺丰科技有限公司 | 计算任务的执行方法及装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115495026B (zh) * | 2022-11-21 | 2023-03-10 | 杭州字节方舟科技有限公司 | 一种优化内存处理方法、装置、设备及存储介质 |
CN117112508B (zh) * | 2023-10-20 | 2024-02-06 | 杭州美创科技股份有限公司 | 基于序号的文件同步方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170034268A1 (en) * | 2015-07-31 | 2017-02-02 | Netapp, Inc. | Systems, methods and devices for rdma read/write operations |
CN108268208A (zh) * | 2016-12-30 | 2018-07-10 | 清华大学 | 一种基于rdma的分布式内存文件*** |
CN109240617A (zh) * | 2018-09-03 | 2019-01-18 | 郑州云海信息技术有限公司 | 分布式存储***写请求处理方法、装置、设备及存储介质 |
CN110191194A (zh) * | 2019-06-13 | 2019-08-30 | 华中科技大学 | 一种基于rdma网络的分布式文件***数据传输方法和*** |
US20200364148A1 (en) * | 2019-05-15 | 2020-11-19 | EMC IP Holding Company LLC | Method, device and computer program product for implementing file system |
-
2020
- 2020-12-18 CN CN202011509142.2A patent/CN112612734B/zh active Active
-
2021
- 2021-03-30 WO PCT/CN2021/083759 patent/WO2022126919A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170034268A1 (en) * | 2015-07-31 | 2017-02-02 | Netapp, Inc. | Systems, methods and devices for rdma read/write operations |
CN108268208A (zh) * | 2016-12-30 | 2018-07-10 | 清华大学 | 一种基于rdma的分布式内存文件*** |
CN109240617A (zh) * | 2018-09-03 | 2019-01-18 | 郑州云海信息技术有限公司 | 分布式存储***写请求处理方法、装置、设备及存储介质 |
US20200364148A1 (en) * | 2019-05-15 | 2020-11-19 | EMC IP Holding Company LLC | Method, device and computer program product for implementing file system |
CN110191194A (zh) * | 2019-06-13 | 2019-08-30 | 华中科技大学 | 一种基于rdma网络的分布式文件***数据传输方法和*** |
Non-Patent Citations (1)
Title |
---|
LINUX—QUAN: "《超级块的定义》", 《博客园》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113110800A (zh) * | 2021-04-12 | 2021-07-13 | 百度在线网络技术(北京)有限公司 | 数据处理方法、装置、电子设备及存储介质 |
CN113138969A (zh) * | 2021-04-30 | 2021-07-20 | 青岛盛世影云影视科技有限公司 | 数据传输方法、装置、电子设备和计算机可读存储介质 |
CN113297110A (zh) * | 2021-05-17 | 2021-08-24 | 阿里巴巴新加坡控股有限公司 | 数据采集***、方法以及装置 |
CN113297110B (zh) * | 2021-05-17 | 2024-06-18 | 阿里巴巴创新公司 | 数据采集***、方法以及装置 |
CN114442951A (zh) * | 2022-01-24 | 2022-05-06 | 珠海泰芯半导体有限公司 | 传输多路数据的方法、装置、存储介质和电子设备 |
WO2023241740A1 (zh) * | 2022-06-15 | 2023-12-21 | 顺丰科技有限公司 | 计算任务的执行方法及装置 |
CN115086306A (zh) * | 2022-08-18 | 2022-09-20 | 天津市天河计算机技术有限公司 | 一种数据传输方法、装置、电子设备和存储介质 |
CN116775510A (zh) * | 2023-08-22 | 2023-09-19 | 成都泛联智存科技有限公司 | 数据访问方法、装置、服务器和计算机可读存储介质 |
CN116775510B (zh) * | 2023-08-22 | 2023-11-24 | 成都泛联智存科技有限公司 | 数据访问方法、装置、服务器和计算机可读存储介质 |
CN116881191A (zh) * | 2023-09-06 | 2023-10-13 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置、设备及存储介质 |
CN116881191B (zh) * | 2023-09-06 | 2024-01-16 | 苏州浪潮智能科技有限公司 | 数据处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112612734B (zh) | 2023-09-26 |
WO2022126919A1 (zh) | 2022-06-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112612734B (zh) | 文件传输方法、装置、计算机设备及存储介质 | |
JP6521403B2 (ja) | サービスとしての効率的なデータ圧縮及び分析 | |
CN108028833B (zh) | 一种nas数据访问的方法、***及相关设备 | |
WO2019161557A1 (zh) | 一种通信的方法及装置 | |
JP4262888B2 (ja) | 処理タスクをソフトウエアからハードウエアにオフロードする方法およびコンピュータ・プログラム製品 | |
US9300578B2 (en) | Large receive offload functionality for a system on chip | |
WO2016101288A1 (zh) | 一种远程直接数据存取方法、设备和*** | |
CN108023829B (zh) | 报文处理方法及装置、存储介质、电子设备 | |
US9836248B2 (en) | In-memory data compression complementary to host data compression | |
CN114201421B (zh) | 一种数据流处理方法、存储控制节点及可读存储介质 | |
CN109857545B (zh) | 一种数据传输方法及装置 | |
WO2024037296A1 (zh) | 基于协议族的quic数据传输方法及装置 | |
WO2023103419A1 (zh) | 基于消息队列的5g消息批量发送方法、装置及电子设备 | |
CN114153778A (zh) | 跨网络桥接 | |
CN113778320A (zh) | 网卡以及网卡处理数据的方法 | |
CN116049085A (zh) | 一种数据处理***及方法 | |
CN113067849A (zh) | 基于Glusterfs的网络通信优化方法及装置 | |
JP2019517692A (ja) | OpenFabricsにおけるスループットの改善 | |
WO2019236862A1 (en) | Systems and methods for transport layer processing of server message block protocol messages | |
Manohar et al. | Progressive vector quantization of multispectral image data using a massively parallel SIMD machine | |
US20230342087A1 (en) | Data Access Method and Related Device | |
CN108628550B (zh) | 一种读取磁盘映射文件的方法、装置及*** | |
CN116244231A (zh) | 一种数据传输方法、装置、***、电子设备及存储介质 | |
CN113422792B (zh) | 数据传输方法、装置、电子设备及计算机存储介质 | |
CN110798366A (zh) | 任务逻辑的处理方法、装置及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |