CN115242813A - 一种文件访问方法、网卡以及计算设备 - Google Patents
一种文件访问方法、网卡以及计算设备 Download PDFInfo
- Publication number
- CN115242813A CN115242813A CN202110439646.XA CN202110439646A CN115242813A CN 115242813 A CN115242813 A CN 115242813A CN 202110439646 A CN202110439646 A CN 202110439646A CN 115242813 A CN115242813 A CN 115242813A
- Authority
- CN
- China
- Prior art keywords
- file
- network card
- server
- storage address
- request
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000013507 mapping Methods 0.000 claims abstract description 103
- 230000008569 process Effects 0.000 abstract description 18
- 230000004044 response Effects 0.000 description 27
- 238000012545 processing Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 15
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 10
- 230000000977 initiatory effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000036316 preload Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000002146 bilateral effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- 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]
-
- 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
-
- 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/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种文件访问方法、网卡以及计算设备,本申请中客户端向服务端发送请求获取第一文件的存储地址的文件获取请求,文件获取请求包括第一文件的文件标识。服务端的网卡响应文件获取请求,根据第一映射关系和第一文件的文件标识反馈第一文件的存储地址,第一映射关系指示第一文件的文件标识与第一文件的存储地址的映射关系。客户端向服务端发送请求访问第一文件的文件访问请求,该文件访问请求为RDMA请求。服务端的网卡根据文件访问请求从服务端的内存中访问第一文件。在客户端针对第一文件发起文件获取请求以及文件访问请求时,服务端的网卡直接处理该文件获取请求以及文件访问请求,不需要服务端的处理器参与,能够减少处理器的消耗。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种文件访问方法、网卡以及计算设备。
背景技术
目前文件远程访问是基于传输控制协议/网际协议(transmission controlprotocol/internet protocol,TCP/IP)执行的。以文件读取为例,在客户端,客户端的处理器可以先基于TCP/IP协议栈构建的标准接口,通过该标准接口向存储有文件的服务端发起文件读取请求。服务端的处理器在接收到文件读取请求后,可以根据该文件读取请求获取该文件,并基于TCP/IP对该文件进行封装,之后,将经过封装的数据包通过服务端的网卡发送给客户端。可见,在访问文件的过程中需要服务端的处理器参与,会对处理器产生较大的消耗。
发明内容
本申请提供一种文件访问方法、网卡以及计算设备,用以减少文件访问时对服务端的处理器的占用。
第一方面,本申请实施例提供了一种文件访问方法,在该方法中,当客户端可以向服务端发送用于请求获取第一文件的存储地址的文件获取请求,其中,文件获取请求包括第一文件的第一文件标识。该服务端的网卡可以接收文件获取请求,之后,服务端的网卡响应文件获取请求,根据第一映射关系和第一文件标识反馈第一文件的存储地址,如可以向客户端反馈携带有第一文件的存储地址的文件获取响应。其中,第一映射关系用于指示第一文件标识与第一文件的存储地址的映射关系,第一文件的存储地址是第一文件在服务端的内存中的地址。
客户端接收到该第一文件的存储地址后,可以向服务端发送用于请求访问第一文件的文件访问请求,该文件访问请求可以为RDMA请求,文件访问请求携带有第一文件的存储地址。服务端的网卡接收文件访问请求后,可以根据文件访问请求从内存中访问第一文件。这里仅是以服务器的网卡执行文件访问方法为例,在实际应用中该文件访问方法也可以应用于计算机系统,由该计算机系统的网卡执行该文件访问方法,在该计算机系统的内存中访问该第一文件。
通过上述方法,在客户端针对第一文件发起文件获取请求以及文件访问请求时,服务端的网卡可以直接处理该文件获取请求以及文件访问请求,不需要服务端的处理器参与,能够减少处理器的消耗,提高文件访问效率。
在一种可能的实现方式中,服务端的网卡在根据第一映射关系和第一文件标识反馈第一文件的存储地址之前,可以从服务端的处理器获取、并保存该第一映射关系。网卡可以将该第一映射关系保存在网卡中,也可以保存在服务端的内存中。
通过上述方法,网卡能够预先获取第一映射关系,便于网卡能够处理文件获取请求以及文件访问请求。
在一种可能的实现方式中,客户端在发起文件获取请求时,也可以在文件获取请求中携带预载入文件的文件标识,这里以预载入文件为第二文件为例。也即文件获取请求中可以包括第二文件的第二文件标识,当服务端的网卡接收到携带有第二文件标识的文件获取请求时,可以先确定是否保存了第二映射关系,第二映射关系指示第二文件标识与第二文件的存储地址的映射关系,若保存了该第二映射关系,服务端的网卡可以不执行任何操作。若未保存该第二映射关系,服务端的网卡可以从服务端的处理器获取该第二映射关系,还可以保存该第二映射关系,如可以将该第二映射关系保存在服务端的内存中,也可以保存在网卡中。其中,第二文件的存储地址是第二文件在内存中的地址。
通过上述方法,服务端的网卡能够在文件获取请求中携带了预载入文件的文件标识的情况下,保存第二映射关系,以便后续能够处理客户端针对第二文件发起的文件获取请求以及文件访问请求,进一步减少对处理器的占用。
在一种可能的实现方式中,服务端的网卡在从处理器获取并保存了该第二映射关系后,服务端的网卡可以将该第二文件的存储地址携带在该文件获取响应。
通过上述方法,服务端的网卡可以提前将第二文件的存储地址发送给客户端,这样客户端无需再针对第二文件发起的文件获取请求,有效的减少了客户端与服务端之间的信息交互。
在一种可能的实现方式中,在文件获取请求还包括第二文件标识的情况下,若服务端的网卡已保存了指示第二文件标识与第二文件的存储地址的第二映射关系,网卡可以响应文件获取请求,根据第二映射关系和第二文件标识反馈第二文件的存储地址,也就是说在文件获取响应中携带第二文件的存储地址。在一些场景中,网卡也可以不反馈该第二文件的存储地址。在一些场景中,网卡也可以通过其他消息反馈该第二文件的存储地址。
通过上述方法,网卡可以在保存了第二映射关系的情况下,提前将第二文件的存储地址反馈给客户端,这样,客户端后续可以根据该第二文件的存储地址直接发送文件访问请求,能够有效提高文件访问效率。
在一种可能的实现方式中,文件访问请求可以为读请求,如请求从服务端的内存中读取该第一文件。文件访问请求也可以为写请求,如请求向服务端的内存中写入数据。
当文件访问请求为读请求时,用于请求读取第一文件,网卡可以根据第一文件的存储地址从内存读取第一文件,向客户端反馈该第一文件。
当文件访问请求为写请求时,用于请求在第一文件中写入数据,文件访问请求还包括待写入数据,网卡可以在内存中第一文件的存储地址指示的区域内写入待写入数据。
通过上述方法,网卡能够直接读取该第一文件或直接写入数据,提高了文件读写效率。
在一种可能的实现方式中,内存可以包括存储级内存(storage class memory,SCM)。
通过上述方法,内存采用SCM,由于SCM具备字节型寻址特性,能有效缩短远端文件的读取时延。
第二方面,本申请实施例还提供了一种文件访问装置,该文件访问装置部署在计算机系统或服务器的网卡上,具有实现上述第一方面的方法实例中行为的功能,有益效果可以参见第一方面的描述此处不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。在一个可能的设计中,所述装置的结构中包括接收单元、处理单元、发送单元,这些单元可以执行上述第一方面方法示例中网卡的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第三方面,本申请实施例还提供了一种网卡,该网卡可以是计算机系统或服务器的网卡,该网卡具有实现上述第一方面的方法实例中行为的功能,有益效果可以参见第一方面的描述此处不再赘述。
在一种可能的实现方式中,所述网卡的结构中可以包括处理器和存储器,所述处理器被配置为支持所述网卡执行上述第一方面中网卡相应的功能。所述存储器与所述处理器耦合,其保存所述网卡必要的程序指令和数据,如第一映射关系以及第二映射关系。该网卡中还可以包括接口,用于与其他设备通信,例如,接收文件访问请求、发送文件访问响应,从处理器接收第一映射关系或第二映射关系,向服务端或计算机系统的处理器发送第二文件标识等。
在另一种可能的实现方式中,所述网卡的结构中也可以包括处理器和接口,所述处理器被配置为支持所述网卡执行上述第一方面方法中相应的功能。该处理器还可以通过所述接口传输数据,例如,接收文件访问请求、发送文件访问响应,从处理器接收第一映射关系或第二映射关系,向服务端或计算机系统的处理器发送第二文件标识等。
第四方面,本申请实施例还提供了一种计算设备,该计算设备中包括网卡和内存,其中第一文件或第二文件可以存储在该内存中,该内存包括SCM,网卡用于执行上述第一方面以及第一方面的各个可能的实施方式中网卡执行的方法。可选的,计算设备中还可以包括处理器,该处理器中用于执行上述第一方面以及第一方面的各个可能的实施方式中服务端的处理器执行的方法。
第五方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的各个可能的实施方式中所述的方法。
第六方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的各个可能的实施方式中所述的方法或使得计算机执行上述第二方面以及第二方面的各个可能的实施方式中所述的方法。
第七方面,本申请还提供一种计算机芯片,所述芯片与存储器相连,所述芯片用于读取并执行所述存储器中存储的软件程序,执行上述第一方面以及第一方面的各个可能的实施方式中所述的方法。
附图说明
图1为本申请提供的一种系统的架构示意图;
图2为本申请提供的一种服务端的结构示意图;
图3为本申请提供的一种文件访问方法的示意图;
图4为本申请提供的一种文件展示界面的示意图;
图5A~5C为本申请提供的一种文件预取的界面的示意图;
图6为本申请提供的一种文件访问装置的结构示意图。
具体实施方式
本申请实施例涉及文件读取,为了便于理解本申请实施例,首先,对本申请涉及的部分术语进行解释说明。
1、文件
文件是呈现数据的一种形式。本申请实施例并不限定文件的具体类型,例如该文件可以是视频文件、语音文件或文本文件。文件中可以包括相同类型的数据,如文件中的数据均为语音数据或图片。文件中的数据也可以包括不同类型的数据,如文件可以为计算设备之间传输的通信文件,该文件中可以包括图片、文本等数据。
2、文件标识
文件标识用于唯一地标识某一文件。在本申请实施例中,客户端(如客户端的网卡)向服务端的网卡发起携带有文件标识的文件获取请求,向该服务端的网卡请求该文件的存储地址。
在本申请实施例中并不限定文件标识的类型,例如该文件标识可以是服务端的网卡或处理器为文件分配的编号等信息。凡是能够唯一标识文件的信息均适应于本申请实施例。
6、远程直接内存访问(remote direct memory access,RDMA)
RDMA是一种直接内存访问方法,基于RDMA,可以使一个计算设备直接对其他计算设备的内存进行数据读写,过程中不需要经过处理器的处理。
8、内存注册(memory registration)
RDMA可以直接对内存进行数据读写。而对内存进行数据读写的前提是需要实现内存注册,内存注册可以理解为获取该内存的控制权,以实现对内存的数据读写。
memory registration是RDMA中对内存的一种保护措施,只有将内存注册到RDMA内存域(memory region,MR)中,这块内存就可以由RDMA来操作了。在完成内存注册之后,可以对该内存进行数据读写。
在本申请实施例中,服务端的处理器可以将文件的存储区域通知给服务端的网卡,网卡在获知文件的存储区域后,可以针对该文件的存储区域执行内存注册操作,将文件的存储区域注册到RDMA内存域中。
网卡在执行内存注册操作后,能够对文件进行操作,便于后续对文件进行读取或写入,例如,读取文件中的数据,或在文件中写入数据等。
9、队列(queues)
RDMA一共支持三种队列,发送队列(send queues,SQ)和接收队列(receivequeues,RQ),完成队列(complete queues,CQ)。其中,SQ和RQ通常成对创建,被称为队列对(queue pairs,QP)。
RDMA是基于消息的传输协议,数据传输为异步操作。RDMA的操作过程如下:
(1)、主机(host)的处理器提交工作请求(work request,WR)到网卡,网卡将该工作请求配置到工作队列(work queues,WQ),工作队列包括发送队列(SQ)和接收队列(RQ)。工作队列的每一个元素叫做(work queues element,WQE),一个元素也就对应一个WR。
(2)、host的处理器可以通过网卡从完成队列(CQ)中获取工作完成(workcomplete,WC),完成队列里的每一个元素叫做(complete queues element,CQE),一个元素也就对应一个WC。
其中,具有RDMA引擎的硬件(hardware),如网卡,可以看做为一个队列元素处理模块。该硬件不断地从工作队列(WQ)中去取工作请求(WR)来执行,执行完了就给完成队列(CQ)中放置工作完成(WC)。
10、RDMA数据传输
在本申请实施例中仅以RDMA发送/接收操作(send/receive)为例进行说明。RDMA是基于消息的数据传输协议的,所有数据包的组装都在具有RDMA引擎的硬件上完成的。
RDMA中发送/接收操作是双边操作,即必须要远端的应用感知参与才能完成收发。
以主机A向主机B(下面简称A、B)发送数据为例:
首先,A和B都要创建并初始化好各自的QP、CQ。
A和B分别向各自的WQ中添加WQE,对于A,WQ=SQ,WQE描述指向等待被发送的数据;对于B,WQ=RQ,WQE描述指向用于存储数据的缓存(buffer)。
A的网卡异步调度轮到A的WQE,解析到这是一个发送(send)消息,直接向B发出WQE指向的数据。数据流到达B的网卡后,B的WQE被消耗,B的网卡把数据直接存储到WQE指向的缓存。
A与B通信完成后,A的CQ中会产生一个完成消息CQE表示发送完成。与此同时,B的CQ中也会产生一个完成消息CQE表示接收完成。每个WQ中WQE的处理完成都会产生一个CQE。
如图1所示为本申请实施例提供的一种系统架构示意图,如图1所示,该系统中包括服务端100和客户端200。
客户端200部署在用户侧,用于在用户的触发下向服务端100发起请求,如发起文件获取请求,文件访问请求等。本申请实施例并不限定客户端200的具体形态,例如客户端200可为用户的本地计算设备或专用客户端。
客户端200上可以部署有第一应用程序,该第一应用程序可以是运行在客户端200的处理器210上的程序软件,如该第一应用程序可以为浏览器,或文件预览软件。用户可以通过该第一应用程序触发客户端200与服务端100连接,访问服务端100。
客户端200上还可以部署有网卡220,当用户通过第一应用程序访问服务端100时,第一应用程序可以触发网卡220生成请求(如文件获取请求、文件访问请求),网卡220可以基于RDMA将请求发送给服务端100。
在本申请实施例中服务端100能够存储有用户的文件。该服务端100可以为存储节点,具备文件存储功能。本申请实施例并不限定服务端100的部署位置,例如服务端100可以部署在边缘数据中心,也可以部署在云数据中心中,也可以部署在终端计算设备上。服务端100也可以分布式的部署在边缘数据中心、云数据中心以及终端计算设备中的部分或全部环境中。
服务端100上运行有第二应用程序,该第二应用程序可以是服务端100的处理器120上运行的程序软件,该第二应用程序可以为文件系统。该第二应用程序能够对服务端100内存中存储的文件(这种情况下,第二应用程序为内存文件系统)进行管理,能够在服务端100的内存130中为文件分配存储区域,还可以将文件的存储区域通知给网卡140(如将文件的存储地址以及文件的文件标识之间的映射关系通知给网卡140),触发网卡140执行内存注册操作。
在本申请实施例中,客户端200与服务端100的网卡140交互可以实现对文件的读取、写入等操作。客户端200与服务端100的网卡140之间进行交互时,不需要服务端100中的处理器120参与,而是由服务端100的网卡140执行具体操作,能够较大程度的减少对服务端100中的处理器120的占用,提升文件访问效率。
在本申请实施例中,客户端200可以先向服务端的网卡140发起文件获取请求,用于请求获取文件的存储地址,服务端的网卡140预先获取了该文件的存储地址和文件的文件标识之间的映射关系,并对该文件的存储地址执行内存注册操作,服务端的网卡140在接收到该文件获取请求后,可以直接向客户端200反馈携带有文件的存储地址的文件获取响应,之后,客户端200可以基于RDMA向服务端100的网卡140发起携带有文件的存储地址的文件访问请求,服务端的网卡140在接收到该文件访问请求后,可以根据该文件的存储地址对文件进行访问。
可见,在服务端100内部,服务端100对文件的操作不需要服务端100的处理器执行,而交由服务端100的网卡140执行。
如图2所示,为服务端100的结构示意图,服务端100包括总线110、处理器120、内存130以及网卡140。处理器120、内存130、网卡140之间通过总线110通信。
其中,处理器120可以为中央处理器(central processing unit,CPU)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(fieldprogrammable gate array,FPGA)、人工智能(artificial intelligence,AI)芯片、片上系统(system on chip,SoC)或复杂可编程逻辑器件(complex programmable logic device,CPLD),图形处理器(graphics processing unit,GPU)等。
内存130可以包括易失性存储器(volatile memory),例如RAM、DRAM等,也可以包括非易失性存储器(non-volatile memory),例如存储级内存(storage class memory,SCM)等,或者易失性存储器与非易失性存储器的组合等。在本申请实施例中内存130可以特指SCM类型的内存,在本申请实施例中文件的存储地址,如第一文件的存储地址、以及第二文件的存储地址,可以为SCM中的地址。在SCM中,是以字节进行寻址,读取数据的。将SCM应用于本申请实施例中,可以提高服务端内部数据读取速度,进而缩短远端文件的读取时延。
内存130中还可以包括操作系统等其他运行进程所需的软件模块。操作系统可以为LINUXTM,UNIXTM,WINDOWSTM等。
处理器120可以通过调用内存130中存储的计算机执行指令,使得服务端100可以执行如图3所示的实施例中服务端100的处理器120所执行的操作。
在本申请实施例中网卡140除了能够进行数据传输(如接收文件获取请求、文件访问请求,发送文件获取响应、文件访问响应),还能够对文件进行读取和写入。
网卡140包括处理器141以及接口142,处理器141的具体形态可以参见处理器120以及的相关说明,此处不再赘述。处理器141使得服务端100中的网卡140可以执行如图3所示的实施例中服务端100的网卡140所执行的操作,处理器141还可以通过接口142发送或接收信息,如接收文件获取请求、文件访问请等,或发送文件获取响应、文件访问响应。
下面结合附图3对本申请实施例提供的一种文件访问方法进行说明,该方法包括:
步骤301:客户端200向服务端100发起文件获取请求,该文件获取请求包括第一文件的第一文件标识,该文件获取请求用于请求获取第一文件的存储地址,该第一文件的存储地址是在服务端100的内存130中第一文件的存储区域的地址。
用户可以对客户端200进行操作,触发该客户端200向服务端100发起文件获取请求。如图4所示,为客户端200中部署的第一应用程序向用户展示的界面示意图,客户端200可以向用户展示文件列表,该文件列表中包括多个文件的文件标识,如第一文件、第二文件等。用户可以通过点击文件(如第一文件)的文件标识,触发客户端200向服务端100发起文件获取请求。
文件获取请求中还可以包括第二文件的第二文件标识,该第二文件标识可以是由客户端200自行携带在文件获取请求中的,也可以是客户端200在用户的触发下携带在文件获取请求的。
(1)、客户端200自行将第二文件标识携带在文件获取请求中。
在客户端200中可以预先存储文件关联关系,文件关联关系记录了多个文件之间关联关系,其中包括第一文件和第二文件的关联关系。文件之间的关联关系在不同的场景中可能不同,例如,将一个视频进行分解,生产多个视频文件,该多个视频文件之间可以认为存在关联关系。又例如,将一个视频分解为图像文件、语音文件以及字幕文件,图像文件、语音文件以及字幕文件之间可以认为存在关联关系。
当客户端200确定需要获取第一文件的存储地址时,客户端200可以根据文件关联关系,确定与第一文件关联的第二文件,在发起文件获取请求时,将第一文件标识和第二文件标识携带在文件获取请求中。其中将第一文件标识标注为文件获取请求所请求获取的文件,将第二文件标识标注为与第一文件关联的文件标注为预载入文件。这里预载入文件是指客户端200在访问了第一文件之后,需要访问的文件。
该文件关联关系可以是服务端100发送给客户端200的,也可以是用户预先配置在客户端200的。
举例来说,如图5A所示,用户可以打开第一文件的属性列表,在属性列表中选择设置关联的选项,设置与第一文件关联的第二文件。
(2)、客户端200在用户的触发下将第二文件标识携带在文件获取请求中。
用户在触发客户端200向服务端100发起文件获取请求时,除了指示当前需要获取的第一文件,还可以指示预载入的第二文件。
如图5B所示,客户端200向用户展示文件列表的界面上,用户可以打开第一文件的属性列表,在属性列表中选择预载入文件的选项,设置需要预载入的第二文件。当客户端200在检测到用户的操作后,可以在向服务端100发起文件获取请求时,将第二文件标识携带在文件获取请求中。
如图5C所示,客户端200向用户展示文件列表的界面上,用户可以打开第二文件的属性列表,在属性列表中选择稍后预览的选项,当客户端200在检测到用户的操作后,可以确定第二文件是用户后续需要查看的文件,为预载入文件,可以在向服务端100发起文件获取请求时,将第二文件标识携带在文件获取请求中。
客户端200可以基于RDMA向服务端100发送文件获取请求;在客户端200的内部,客户端200的处理器210可以生成该文件获取请求,将该文件获取请求作为工作请求提交给客户端200的网卡230,客户端200的网卡230在收到该工作请求后,将该工作请求放置在客户端200侧得SQ中,发送该工作请求。
步骤302:服务端100的网卡140在接收到该文件获取请求后,获取该第一文件的存储地址。
当文件获取请求在到达服务端100时,首先是由服务端100的网卡140接收该文件获取请求,在本申请实施例中,服务端100的网卡140可以在服务端100侧的RQ里接收到该文件获取请求,服务端100的网卡140在接收到该文件获取请求后,可以先对该文件获取请求进行解析,获取该文件获取请求中携带的第一文件标识,根据该第一文件标识确定是否能够自行获取该第一文件的存储地址。
在本申请实施例中,服务端100的网卡140能够自行获取该第一文件的存储地址的前提条件是服务端100的网卡140已保存了该第一文件标识与第一文件的存储地址的映射关系。
举例来说,服务端100的处理器120可以预先向服务端100的网卡140开放文件权限,使得服务端100的网卡140能够获知文件的存储地址,能够对文件进行读取或写入操作。在具体实施过程中,服务端100的处理器120可以通知服务端100的网卡140文件的存储区域,并触发服务端100的网卡140针对该文件执行内存注册操作。例如,服务端100的处理器120可以向服务端100的网卡140发送该文件的存储地址以及文件的文件标识,也即发送第一文件标识与第一文件的存储地址的映射关系。服务端100的网卡140在接收到第一文件标识与第一文件的存储地址的映射关系,可以记录该文件的存储地址以及文件的文件标识之间的映射关系,并针对该文件执行内存注册操作,也就是将该文件的存储地址所指示的区域加入到RDMA内存域内。
服务端100的处理器120向服务端100的网卡140开放文件权限时,可以向服务端100的网卡140开放全部文件的文件权限;服务端100的处理器120也可以选择性地向服务端100的网卡140开放文件权限,如服务端100的处理器120可以基于文件的访问频率,向服务端100的网卡140开放文件的访问频率较高的文件权限;又如,服务端100的处理器120可以基于文件的安全性要求,向服务端100的网卡140开放文件的安全性要求较低的文件权限。
当服务端100的处理器120预先向服务端100的网卡140开放了第一文件的文件权限时,服务端100的网卡140可以保存该第一文件标识与第一文件的存储地址的映射关系。这样,当服务端100的网卡140在接收到该文件获取请求后,可以根据的文件获取请求中携带的第一文件标识确定第一文件的存储地址。
在本申请实施例中服务端100的网卡140在保存该第一文件标识与第一文件的存储地址的映射关系时,可以将该映射关系保存在服务端100的网卡140中,也可以保存在服务端100的内存130中。
若该映射关系保存在服务端100的网卡140中,服务端100的网卡140在接收到该文件获取请求后,可以直接根据服务端100的网卡140中保存映射关系确定第一文件的存储地址。
若该映射关系保存在服务端100的内存130中,服务端100的网卡140在接收到该文件获取请求后,可以先从内存中获取该映射关系,之后根据该映射关系确定第一文件的存储地址。
在本申请实施例中,本申请实施例并不限定文件的文件标识与文件的存储地址的映射关系的呈现形式。例如,该映射关系可以以简单的数据表呈现。当服务端100的网卡140需要获取第一文件的存储地址时,可以从该数据表中获取第一文件标识对应的第一文件的存储地址。
又例如,该映射关系也可以以哈希表呈现,具体的,该哈希表中记录了多个keynode,一个keynode与一个文件对应,keynode可以是由对应文件的文件标识进行哈希运算获得的。keynode中记录了对应的文件的文件标识以及该文件的存储地址。
当服务端100的网卡140需要获取第一文件的存储地址时,可以先对第一文件标识进行哈希运算,获取第一文件对应的keynode,解析该keynode确定第一文件的存储地址;可选的,在解析该keynode确定第一文件的存储地址时,可以先确定该keynode中记录的第一文件标识是否与服务端100的网卡140收到的第一文件标识(也即文件获取请求中携带的第一文件标识)一致,在一致的情况下,再进一步确定该文件的存储地址,否则,拒绝该文件获取请求,或者将该文件获取请求发送给服务端100的处理器120。
服务端100的网卡140根据已保存的该第一文件标识与第一文件的存储地址的映射关系,确定了第一文件的存储地址之后,可以直接执行步骤303。
若服务端100的网卡140未保存该第一文件标识与第一文件的存储地址的映射关系,服务端100的网卡140可以将该文件获取请求转发至服务端100的处理器120,由服务端100的处理器120对该文件获取请求进行处理,根据第一文件标识确定该第一文件的存储地址;服务端100的处理器120在确定该第一文件的存储地址之后,可以生成携带有第一文件的存储地址的文件获取响应,将该文件获取响应作为工作请求发送给服务端100的网卡140,服务端100的网卡140可以执行步骤303。
在服务端100的网卡140未保存该第一文件标识与第一文件的存储地址的映射关系的情况下,服务端100的处理器120除了向服务端100的网卡140提交工作请求,还可以向服务端100的网卡140通知该第一文件的存储区域,也就是向服务端100的网卡140发送第一文件标识以及第一文件的存储地址的映射关系,触发服务端100的网卡140执行内存注册操作,这样,当后续接收到用于请求访问第一文件的文件访问请求后,服务端100的网卡140可以自行处理该文件访问请求。
当文件获取请求还携带有预载入文件的文件标识时,在本申请实施例中以第二文件为预载入文件为例,服务端100的网卡140可以先确定是否已保存了第二文件标识和第二文件的存储地址之间的映射关系,若已保存,则说明服务端100的网卡140能够已针对第二文件执行了内存注册操作,能够访问第二文件。若未保存,为了之后服务端100的网卡140能够在客户端200的请求下(如客户端200请求访问第二文件)自行访问第二文件,服务端100的网卡140可以将该第二文件标识发送给服务端100的处理器120,向服务端100的处理器120请求该第二文件的存储地址;服务端100的处理器在根据第二文件标识确定了该第二文件的存储地址之后,可以向服务端100的网卡140发送该第二文件标识以及该第二文件的存储地址的映射关系,触发服务端100的网卡140针对第二文件执行内存注册操作。服务端100的网卡140可以保存该第二文件标识以及该第二文件的存储地址的映射关系,如将该映射关系保存在服务端100的网卡140中,或将该映射关系保存在服务端100的内存130中。
在本申请实施例中本申请实施例并不限定文件获取请求中携带的预载入文件的文件标识的数量。例如,当用户仅需预载入一个文件时,将该文件的文件标识的预载入文件的文件标识携带在该文件获取请求中。例如,当用户仅需预载入多个文件时,将该多个文件的文件标识的预载入文件的文件标识携带在该文件获取请求中。
对于携带多个文件的文件标识的情况下服务端100的网卡140的处理流程与携带一个文件的文件标识的情况下服务端100的网卡140的处理流类似,具体可以参见前述内容,此处不再赘述。
步骤303:服务端100的网卡140响应于文件获取请求,向客户端200反馈文件获取响应,该文件获取响应中包括第一文件的存储地址。
关于执行步骤303的方式已在前述内容中进行说了说明,在本申请实施例中,执行步骤303的方式存在两种;第一种,是在服务端100的网卡140可以自行确定第一文件的存储地址的情况下,服务端100的网卡140自行执行的。第二种,是在服务端100的网卡140无法自行确定第一文件的存储地址的情况下,服务端100的处理器120的触发服务端100的网卡140发送该文件获取响应。也就是说,服务端100的处理器120通过向服务端100的网卡140提交工作请求的方式将第一文件的存储地址发送给服务端100的网卡140,指示服务端100的网卡140向客户端200反馈文件获取响应。
在本申请实施例中,当文件获取请求中携带第二文件标识时,服务端100的网卡140也可以根据第二文件标识与第二文件的存储地址的映射关系(该映射关系可以是预先从服务器获取并保存的,也可以是在接收到文件获取请求后从处理器获取并保存的)以及该文件获取请求中携带的第二文件标识确定第二文件的存储地址,将该第二文件的存储地址反馈给客户端200。例如可以将第二文件的存储地址携带在文件获取响应中。在一些可能的场景中,服务端100的网卡140也可以通过其他消息向客户端200反馈第二文件的存储地址,也就是说可以不通过文件获取响应反馈该第二文件的存储地址。在一些可能的场景中,服务端100的网卡140也可以不反馈该第二文件的存储地址,而是等待之后客户端200向服务端100发起用于请求第二文件的存储地址的请求时,再反馈该第二文件的存储地址。
需要说明的是,当文件获取请求中携带了多个预载入文件的文件标识,服务端100的网卡140可以反馈所有预载入文件的存储地址(例如在文件获取响应中携带所有预载入文件的存储地址),也可以只反馈部分预载入文件的存储地址(例如在文件获取响应中携带部分预载入文件的存储地址)。
步骤304:客户端200向服务端100的网卡140发送文件访问请求,该文件访问请求中携带第一文件的存储地址。
当客户端200接收到该第一文件的存储地址后,可以进一步对该第一文件进行访问,如获取第一文件,或在第一文件中写入数据。
也就是说,文件访问请求可以分为文件读取请求(简称为读请求)和文件写入请求(简称为写请求),该文件读取请求用于请求读取第一文件,文件写入请求用于请求在服务端100的内存130中写入数据,示例性的如在第一文件中写入数据。其中在第一文件中写入数据可以为写入新的数据,也可以为将第一文件中的部分或全部数据替换为新的数据。
对第一文件的访问类型可以是根据用户对客户端200的操作确定的,例如,用户在步骤301触发客户端200发送文件获取请求时,在点击第一文件标识时,选择读取第一文件,则客户端200需要获取该第一文件;又例如,用户在步骤301触发客户端200发送文件获取请求时,在点击第一文件标识时,键入了需要写入到第一文件的数据,则客户端200需要在该第一文件写入数据。
客户端200发送文件访问请求的方式与客户发送文件获取请求的方式类似,如可以基于RDMA发送文件访问请求,具体可以参见前述内容,此处不再赘述。类似的,服务端100的网卡140接收文件访问请求的方式与服务端100的网卡140接收文件获取请求的方式类似,具体可以参见前述内容,此处不再赘述。
步骤305:服务端100的网卡140根据第一文件的存储地址访问第一文件。
文件访问请求在到达服务端100时,首先是由服务端100的网卡140接收该文件访问请求,服务端100的网卡140解析该文件访问请求,获取该文件访问请求中携带的第一文件的存储地址,根据该第一文件的存储地址可以确定第一文件的存储区域,对第一文件进行访问。
当文件访问请求为文件读取请求,请求读取第一文件时,服务端100的网卡140从第一文件的存储区域中获取该第一文件。
当文件访问请求为文件写入请求,请求在内存中写入数据时,若文件写入请求请求在第一文件中写入数据写入新的数据,服务端100的网卡140可以在第一文件的存储区域中的空闲存储区域,写入该新的数据,并记录该新的数据的虚拟地址,该新的数据的虚拟地址与第一文件中已存储的数据的虚拟地址是连续的,也就是说,该新的数据的虚拟地址的起始地址为第一文件中已存储的数据的虚拟存储地址的终止地址。
若文件写入请求请求将第一文件中的部分或全部数据(该部分或全部数据为被替换的数据)替换为新的数据(这里该新的数据可以称为替换后的数据),服务端100的网卡140可以在第一文件的存储区域中的空闲存储区域,写入替换后的数据,并记录该替换后的数据的虚拟地址为第一文件中该部分或全部数据(也即需要被替换的数据)的虚拟地址。服务端100的网卡140也可以在第一文件的存储区域中直接利用新的数据覆盖第一文件中的部分或全部数据。
需要说明的是,在步骤305中,由于服务端100的网卡140在之前已经针对第一文件执行了内存注册操作,故而,服务端100的网卡140可以直接对该第一文件进行访问,无需服务端100的处理器120参与。在一些可能得场景中,例如,服务端100的网卡140对第一文件执行内存注册操作失败等;导致服务端100的网卡140无法对第一文件进行直接访问,服务端100的网卡140可以将该文件访问请求发送给服务端100的处理器120,由服务端100的处理器120处理该文件访问请求。
步骤306:服务端100的网卡140向客户端200反馈文件访问响应。
服务端100的网卡140在对第一文件访问结束后,可以向客户端200反馈文件访问响应;例如,当文件访问请求用于请求读取第一文件时,服务端100的网卡140在获取第一文件后,可以将该第一文件携带在文件访问响应中,将该文件访问响应发送给客户端200。
又例如,当文件访问请求用于请求在第一文件中写入数据时,服务端100的网卡140在第一文件中写入数据后,向给客户端200反馈文件访问响应,该文件访问响应指示数据写入成功。
之后,客户端200还可以针对第二文件发起文件获取请求以及文件访问请求,具体过程与上述实施例中针对第一文件发起文件获取请求以及文件访问请求(如图步骤301~步骤306)的过程类似,具体可参见前述内容,此处不再赘述;区别在于,由于在前述过程中,服务端100的网卡140已经对第二文件执行了内存注册操作,针对第二文件发起文件获取请求以及文件访问请求的过程中,不需要服务端100的处理器120参与,而是由服务端100的网卡140直接执行。
另外,对于在文件获取请求中已经携带了第二文件的存储地址的情况,客户端200可以不再针对第二文件向服务端100发起文件获取请求,而是可以直接针对第二文件向服务端100发起文件访问请求,具体过程与上述实施例中针对第一文件发起文件访问请求(如图步骤304~步骤306)的过程类似,具体可参见前述内容,此处不再赘述。
需要说明的是,在服务端100的网卡140侧,在客户端200针对不同的文件发起文件获取请求以及文件访问请求的过程中,可能会导致服务端100的网卡140记录的文件的文件标识与文件的存储地址的映射关系的数量越来越多,这些映射关系占用的存储空间也会越来越多,为了能够进一步减少其占用的存储空间,服务端100的网卡140可以对记录的文件的文件标识与文件的存储地址的映射关系进行淘汰,本申请实施例并不限定淘汰的方式,例如可以采用LRU(least recently used)淘汰算法或随机淘汰算法对文件的文件标识与文件的存储地址的映射关系进行淘汰。
基于与方法实施例同一发明构思,本申请实施例还提供了一种文件访问装置,该文件访问装置可以部署在计算机系统或服务端的网卡上,用于执行上述如图6所示的方法实施例中所述网卡140执行的方法,相关特征可参见上述方法实施例,此处不再赘述。如图6所示,所述装置600包括接收单元601、处理单元602以及发送单元603。
接收单元601,用于接收文件获取请求,文件获取请求用于请求获取第一文件的存储地址,文件获取请求包括第一文件的第一文件标识。
发送单元602,用于响应文件获取请求,根据第一映射关系和第一文件标识反馈第一文件的存储地址,其中,第一映射关系用于指示第一文件标识与第一文件的存储地址的映射关系,第一文件的存储地址是第一文件在计算机系统或服务端的内存中的地址。
接收单元601,还用于接收文件访问请求,文件访问请求是用于请求访问第一文件的RDMA请求,文件访问请求中携带第一文件的存储地址。
处理单元602,根据文件访问请求从内存中访问第一文件。
在一种可能的实施方式中,处理单元602在发送单元601根据第一映射关系和第一文件标识反馈第一文件的存储地址之前,还可以保存从计算机系统或服务端的处理器获取的第一映射关系。如保存在计算机系统或服务端的内存中或保存在网卡中。
在一种可能的实施方式中,当文件获取请求还包括第二文件的第二文件标识,处理单元602可以先确定是否保存该第二映射关系,若确定未保存第二映射关系,其中,第二映射关系指示第二文件标识与第二文件的存储地址的映射关系,第二文件的存储地址是第二文件在内存中的地址;处理单元602可以从计算机系统或服务端的处理器获取第二映射关系,并保存该第二映射关系,该第二映射关系可以保存在计算机系统或服务端的内存中,也可以保存在网卡中。
在一种可能的实施方式中,若从处理器获取了该第二映射关系,发送单元603可以在反馈第一文件的存储地址时,还可以反馈第二文件的存储地址,发送单元603也可以通过其他消息反馈第二文件的存储地址。
在一种可能的实施方式中,若网卡已保存了该第二映射关系,在文件获取请求还包括第二文件标识的情况下,处理单元602可以不反馈第二文件的存储地址,也可以响应文件获取请求,根据第二映射关系和第二文件标识反馈第二文件的存储地址。
在一种可能的实施方式中,文件访问请求可以为读请求,如请求从计算机系统或服务端的内存中读取该第一文件。文件访问请求也可以为写请求,如请求向计算机系统或服务端的内存中写入数据。
当文件访问请求用于请求第一文件,处理单元602在根据文件访问请求从内存访问第一文件时,可以根据第一文件的存储地址从内存读取第一文件。
当文件访问请求用于请求在计算机系统或服务端的内存中写入数据,文件访问请求还包括待写入数据,处理单元602在根据文件访问请求从内存访问第一文件时,可以在内存中第一文件的存储地址指示的区域内写入待写入数据。
在一种可能的实施方式中,内存包括SCM。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
基于与方法实施例同一发明构思,本申请实施例还提供了一种计算设备,该计算设备用于执行上述如图3所示的方法实施例中服务端100中处理器120和网卡140执行的方法,相关特征可参见上述方法实施例,此处不再赘述。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (15)
1.一种文件访问方法,其特征在于,该方法应用于计算机系统的网卡,所述方法包括:
接收文件获取请求,所述文件获取请求用于请求获取第一文件的存储地址,所述文件获取请求包括所述第一文件的第一文件标识;
响应所述文件获取请求,根据第一映射关系和所述第一文件标识反馈所述第一文件的存储地址,其中,所述第一映射关系用于指示所述第一文件标识与所述第一文件的存储地址的映射关系,所述第一文件的存储地址是所述第一文件在所述计算机系统的内存中的地址;
接收文件访问请求,所述文件访问请求是用于请求访问所述第一文件的远程直接内存访问RDMA请求,所述文件访问请求中携带所述第一文件的存储地址;
根据所述文件访问请求从所述内存中访问所述第一文件。
2.如权利要求1所述的方法,其特征在于,在所述根据第一映射关系和所述第一文件的文件标识反馈所述第一文件的存储地址之前,还包括:
保存从所述计算机系统的处理器获取的所述第一映射关系。
3.如权利要求1或2所述的方法,其特征在于,所述文件获取请求还包括第二文件的第二文件标识,所述方法还包括:
确定未保存第二映射关系,其中,所述第二映射关系指示所述第二文件标识与所述第二文件的存储地址的映射关系,所述第二文件的存储地址是所述第二文件在所述内存中的地址;
从所述计算机系统的处理器获取所述第二映射关系。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
根据所述第二映射关系和所述第二文件标识反馈所述第二文件的存储地址。
5.如权利要求1或2所述的方法,其特征在于,所述文件获取请求还包括第二文件标识,所述方法还包括:
响应所述文件获取请求,根据第二映射关系和所述第二文件标识反馈所述第二文件的存储地址,所述第二映射关系指示所述第二文件标识与所述第二文件的存储地址的映射关系。
6.如权利要求1~5任一项所述的方法,其特征在于,所述文件访问请求用于从所述内存读取所述第一文件或向所述内存中写入数据。
7.如权利要求1~6任一项所述的方法,其特征在于,所述内存包括存储级内存SCM。
8.一种网卡,其特征在于,所述网卡位于所述计算机系统中,包括:
接口,接收文件获取请求,所述文件获取请求用于请求获取第一文件的存储地址,所述文件获取请求包括所述第一文件的第一文件标识;
处理器,用于响应所述文件获取请求,根据第一映射关系和所述第一文件标识通过所述接口反馈所述第一文件的存储地址,其中,所述第一映射关系用于指示所述第一文件标识与所述第一文件的存储地址的映射关系,所述第一文件的存储地址是所述第一文件在所述计算机系统的内存中的地址;
所述接口,还用于接收文件访问请求,所述文件访问请求是用于请求访问所述第一文件的远程直接内存访问RDMA请求,所述文件访问请求中携带所述第一文件的存储地址;
所述处理器,还用于根据所述文件访问请求访问所述第一文件。
9.如权利要求8所述的网卡,其特征在于,所述处理器还用于:
在所述根据第一映射关系和所述第一文件的文件标识反馈所述第一文件的存储地址之前,保存从所述计算机系统的处理器获取的所述第一映射关系。
10.如权利要求8或9所述的网卡,其特征在于,所述文件获取请求还包括第二文件的第二文件标识,所述处理器还用于:
确定未保存第二映射关系,其中,所述第二映射关系指示所述第二文件标识与所述第二文件的存储地址的映射关系;
从所述计算机系统的处理器获取所述第二映射关系。
11.如权利要求10所述的网卡,其特征在于,所述处理器,还用于:
根据所述第二映射关系和所述第二文件标识通过所述接口反馈所述第二文件的存储地址。
12.如权利要求9或10所述的网卡,其特征在于,所述文件获取请求还包括第二文件标识,所述处理器还用于:
响应所述文件获取请求,根据第二映射关系和所述第二文件标识通过所述接口反馈所述第二文件的存储地址,所述第二映射关系指示所述第二文件标识与所述第二文件的存储地址的映射关系。
13.如权利要求9~12任一项所述的网卡,其特征在于,所述文件访问请求用于从所述内存读取所述第一文件或向所述内存中写入数据。
14.如权利要求9~13任一项所述的网卡,其特征在于,所述内存包括存储级内存SCM。
15.一种计算设备,其特征在于,所述计算设备中包括网卡和内存,所述内存包括存储级内存SCM,用于存储第一文件,所述网卡用于执行如权利要求1~8任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110439646.XA CN115242813A (zh) | 2021-04-23 | 2021-04-23 | 一种文件访问方法、网卡以及计算设备 |
PCT/CN2022/088229 WO2022223003A1 (zh) | 2021-04-23 | 2022-04-21 | 一种文件访问方法、网卡以及计算设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110439646.XA CN115242813A (zh) | 2021-04-23 | 2021-04-23 | 一种文件访问方法、网卡以及计算设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115242813A true CN115242813A (zh) | 2022-10-25 |
Family
ID=83666033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110439646.XA Pending CN115242813A (zh) | 2021-04-23 | 2021-04-23 | 一种文件访问方法、网卡以及计算设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115242813A (zh) |
WO (1) | WO2022223003A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115455456A (zh) * | 2022-11-07 | 2022-12-09 | 南京芯驰半导体科技有限公司 | 一种3d资源文件安全使用的方法 |
CN117135171A (zh) * | 2023-03-31 | 2023-11-28 | 荣耀终端有限公司 | 云存储方法及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2519534A (en) * | 2013-10-23 | 2015-04-29 | Ibm | Persistent caching system and method for operating a persistent caching system |
US9996498B2 (en) * | 2015-09-08 | 2018-06-12 | Mellanox Technologies, Ltd. | Network memory |
CN106210041B (zh) * | 2016-07-05 | 2019-09-20 | 杭州华为数字技术有限公司 | 一种数据写入方法及服务器端网卡 |
CN110764688B (zh) * | 2018-07-27 | 2023-09-05 | 杭州海康威视数字技术股份有限公司 | 对数据进行处理的方法和装置 |
-
2021
- 2021-04-23 CN CN202110439646.XA patent/CN115242813A/zh active Pending
-
2022
- 2022-04-21 WO PCT/CN2022/088229 patent/WO2022223003A1/zh active Application Filing
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115455456A (zh) * | 2022-11-07 | 2022-12-09 | 南京芯驰半导体科技有限公司 | 一种3d资源文件安全使用的方法 |
CN117135171A (zh) * | 2023-03-31 | 2023-11-28 | 荣耀终端有限公司 | 云存储方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2022223003A1 (zh) | 2022-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190163364A1 (en) | System and method for tcp offload for nvme over tcp-ip | |
WO2018120986A1 (zh) | 转发报文的方法和物理主机 | |
US9864538B1 (en) | Data size reduction | |
US11757796B2 (en) | Zero-copy processing | |
US10915486B1 (en) | Ingress data placement | |
EP4220419B1 (en) | Modifying nvme physical region page list pointers and data pointers to facilitate routing of pcie memory requests | |
WO2022223003A1 (zh) | 一种文件访问方法、网卡以及计算设备 | |
CN109857545B (zh) | 一种数据传输方法及装置 | |
CN114201421B (zh) | 一种数据流处理方法、存储控制节点及可读存储介质 | |
EP4152140A1 (en) | Network card and method for network card to process data | |
CN113722248B (zh) | 命令处理方法及命令处理装置 | |
WO2023116438A1 (zh) | 一种数据访问方法、装置以及设备 | |
EP3465450A1 (en) | Improving throughput in openfabrics environments | |
CN109983749B (zh) | 计算设备和提高数据传递速度的方法 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN115080479A (zh) | 传输方法、服务器、设备、裸金属实例及基板管理控制器 | |
CN107544751B (zh) | 一种远程访问磁盘的方法和装置 | |
WO2022073399A1 (zh) | 存储节点、存储设备及网络芯片 | |
CN114268654B (zh) | 网络通信方法、装置、设备、存储介质和程序产品 | |
CN112732176B (zh) | 基于fpga的ssd访问方法及装置、存储系统及存储介质 | |
CN107615259A (zh) | 一种数据处理方法及系统 | |
WO2022121385A1 (zh) | 一种文件访问方法、存储节点以及网卡 | |
US10348779B2 (en) | Data receiving device, data receiving method, and non-transitory computer readable medium | |
CN118034615B (zh) | 数据访问方法以及装置 | |
US20060126653A1 (en) | Transferring data between system and storage in a shared buffer |
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 |