CN108028833B - 一种nas数据访问的方法、系统及相关设备 - Google Patents

一种nas数据访问的方法、系统及相关设备 Download PDF

Info

Publication number
CN108028833B
CN108028833B CN201680001864.2A CN201680001864A CN108028833B CN 108028833 B CN108028833 B CN 108028833B CN 201680001864 A CN201680001864 A CN 201680001864A CN 108028833 B CN108028833 B CN 108028833B
Authority
CN
China
Prior art keywords
nas
message
target data
data
dmafs
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
Application number
CN201680001864.2A
Other languages
English (en)
Other versions
CN108028833A (zh
Inventor
郭海涛
刘洪广
方钧炜
贺荣徽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN108028833A publication Critical patent/CN108028833A/zh
Application granted granted Critical
Publication of CN108028833B publication Critical patent/CN108028833B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols 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]
    • 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/565Conversion or adaptation of application format or content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Abstract

本发明实施例涉及一种NAS数据访问的方法、系统及相关设备。该方法应用于NAS系统中,NAS客户端接收访问请求消息,根据访问请求消息中携带的待访问的目标数据的信息确定操作对象,操作对象中包括目标数据所归属的目录和/或文件;根据预设的文件系统类型描述的格式,生成第一直接内存访问文件系统DMAFS报文,预设的文件系统类型用于描述DMAFS的格式;向加速装置发送第一DMAFS报文,以便所述加速装置将第一DMAFS报文中的操作对象和操作类型转换为网络文件系统NFS数据以及将NFS数据封装为网络传输协议报文发送给NAS服务端。由此降低NAS客户端的CPU和内存负载和NAS系统的处理时延。

Description

一种NAS数据访问的方法、系统及相关设备
技术领域
本发明涉及存储领域,尤其涉及一种NAS数据访问的方法、系统、加速装置及NAS客户端。
背景技术
网络附加存储(Network Attached Storage,NAS)是一种将分布、独立的数据整合为大型、集中化管理的数据中心,以客户端/服务端(Client/Server,C/S)模式工作的存储网络共享系统,由NAS服务端为NAS客户端提供基于网络的文件共享服务,无需应用服务器(Application Server,AS)的干预,允许用户在网络上存取数据,可提供跨平台文件共享功能,以便于对不同主机和应用服务器进行访问的技术,在企业数据中心中得到越来越广泛得应用。
现有技术中,如图1A所示,NAS客户端和NAS服务端之间通过网卡接口相连,并基于网络共享系统(Common Internet File System,CIFS)或网络文件系统(Network FileSystem,NFS)进行通信,其中,CIFS为微软定义的应用逻辑,主要应用在Windows的操作系统的NAS客户端和NAS服务端之间,NFS为Linux和Unix定义的应用逻辑,主要应用在Linux操作系统的NAS客户端和NAS服务端之间。如图1B所示,NAS的协议栈包括:当NAS客户端的应用软件需要访问NAS服务端的NAS数据时,在NAS客户端内部先将访问请求消息发送给虚拟文件系统(Virtual File System,VFS),VFS再将请求消息转发给NFS,NFS将请求消息经过外部数据表示(External Data Representation,XDR)转换,然后发送给远程过程调用(RemoteProcedure Call,RPC)模块;RPC模块选择TCP/IP、UDP/IP或者RDMA(后两种协议在图上没有描述)等网络协议,如PRC选择TCP/IP协议时,则需经过开放网络计算(Open NetworkComputing,ONC)和传输控制协议(Transfer Control Protocol,TCP)PRC等网络协议处理,再通过底层的硬件设备(如网卡)及驱动(如网卡驱动),将请求发送到NAS的服务端。而NAS服务端经过与之类似且相反的流程接收NAS客户端的请求,并将相应的信息回复给NAS客户端。在媒资行业等NAS客户端硬件资源有限的场景中,上述厚重的协议处理过程导致NAS客户端的CPU负载高、内存占用多、时延不理想的问题,影响NAS客户端的整体性能和数据访问效率。
发明内容
本发明提供了一种NAS数据访问的方法、系统及相关设备,能够解决现有技术中NAS数据访问过程中存在的NAS客户端的CPU负载高、内存占用多、处理时延长的问题,以此提高NAS客户端的整体性能和数据访问效率。
第一方面,提供了一种NAS数据访问的方法,该方法应用在NAS数据访问的系统中,该系统中包括NAS客户端和加速装置,加速装置包括第一接口和第二接口,加速装置通过第一接口连接NAS客户端,通过第二接口与NAS服务端相连。首先,NAS客户端接收访问请求消息,根据该访问请求消息中携带的待访问的目标数据的信息确定操作对象,即确定待访问的目标数据归属的目录和/或文件;然后,根据预设的文件系统类型,生成第一直接内存访问DMAFS报文,并向所述加速装置发送第一DMAFS报文,由加速装置完成NAS协议栈中其他协议处理过程,其中,预设的文件系统类型用于描述DMAFS报文的格式,第一DMAFS报文中包括操作对象和访问请求消息中携带的操作类型。例如,DMAFS报文中包括请求号、DMAFS数据,其中,DMAFS数据中包括操作对象、用户请求的参数、用户请求的执行状态和数据,以便于加速装置可以将第一DMAFS报文中的操作对象和操作类型转换为网络文件系统NFS数据以及将NFS数据封装为网络传输协议报文发送给NAS服务端。由此对NAS客户端的协议处理过程进行卸载,降低NAS客户端的CPU和内存负载,及访问请求的处理时延,提升整个NAS数据访问系统的处理效率。
在一种可能的实现方式中,第一接口为高速外围组件互连PCIe接口或高速外设接口,第二接口为网卡接口。其中,高速外设接口可以为闪电接口。
在一种可能的实现方式中,NAS客户端接收加速装置发送的携带针对第一DMAFS报文的操作结果的第二DMAFS报文,该操作结果中包括第一DMAFS报文中待访问的目标数据和目标数据所归属的目录和/或文件。
在一种可能的实现方式中,NAS客户端在接收访问请求消息之前,需要执行初始化流程:NAS客户端先向加速装置发送用于向加速装置请求存储NAS数据的目录的第三DMAFS报文;然后接收加速装置发送的挂载目录信息,并将挂载目录信息中携带的存储NAS数据的目录挂载到本地目录中。
在一种可能的实现方式中,NAS客户端根据操作结果中的目标数据所归属的目录和/或文件信息更新NAS客户端的本地目录。
通过上述方法的描述,NAS客户端在接收到用户访问请求消息后,将该访问请求消息转换为预设文件系统格式的DMAFS报文,并发送给加速装置,由加速装置完成现有技术中NAS协议栈的协议处理过程,由此降低NAS客户端的CPU和内存负载,提升整个NAS数据访问系统的处理效率。
第二方面,提供了一种NAS数据访问的方法,该方法应用在NAS数据访问的系统中,该系统中包括NAS客户端和加速装置,加速装置包括第一接口和第二接口,加速装置通过第一接口连接NAS客户端,通过第二接口与NAS服务端相连。首先,加速装置接收到NAS客户端的第一DMAFS报文,获取该报文中携带的对待访问的目标数据的操作对象和所述操作类型;然后,将操作对象和操作类型转换为网络文件系统NFS数据,再将所述NFS数据封装为网络传输协议报文,并发送给NAS服务端,由此完成NAS数据的访问过程。
其中,网络传输协议可以为传输控制协议/因特网互联协议TCP/IP,或用户数据报协议/因特网互联协议UDP/IP,或远程直接数据存取RDMA。
通过上述方式,NAS客户端和加速装置之间以DMAFS报文进行数据传输,加速装置在接收到DMAFS报文后,进一步完成NAS协议栈的处理,最终将对待访问的目标数据的操作对象和操作类型信息以网络传输协议报文的形式发送给NAS服务端,以此减少NAS客户端的CPU和内存的负载,降低处理时延,提升整体NAS数据访问系统的处理效率。
在一种可能的实现方式中,第一接口为高速外围组件互连PCIe接口或高速外设接口,第二接口为网卡接口,其中,高速外设接口可以为闪电接口。
在一种可能的实现方式中,当网络协议为TCP/IP时,加速装置先将NFS数据封装为第一外部数据标识XDR报文;然后再将第一XDR报文封装为第一远程过程调用RPC报文;最后将第一RPC报文封装为第一TCP/IP报文,并将第一TCP/IP报文发送给NAS服务端,以此,完成网络协议为TCP/IP时,加速装置和NAS客户端之间的数据传输。
在一种可能的实现方式中,当网络协议为UDP/IP时,加速装置先将所述NFS数据封装第一外部数据标识XDR报文;再将第一XDR报文封装为第一远程过程调用RPC报文;最后将第一RPC报文封装为第一UDP/IP报文,并将第一UDP/IP报文发送给NAS服务端,以此,完成网络协议为UDP/IP时,加速装置和NAS客户端之间的数据传输。
在一种可能的实现方式中,当网络协议为RDMA时,加速装置先将NFS数据封装为第一外部数据标识XDR报文;再将第一XDR报文封装为第一远程过程调用RPC报文;然后将第一RPC报文封装为第一RDMA报文,并将第一RDMA报文发送给NAS服务端,以此,完成网络协议为RDMA时,加速装置和NAS客户端之间的数据传输。
在一种可能的实现方式中,在加速装置接收第一DMAFS报文之前,加速装置需要完成数据的初始化过程,包括向NAS服务端发送第一请求消息,并接收NAS服务端发送的存储NAS数据的目录的挂载目录信息,然后根据该挂载目录信息将存储NAS数据的目录挂载到本地目录中,其中,第一请求消息用于向所述NAS服务端请求存储NAS数据的目录。
在一种可能的实现方式中,在加速装置完成初始化过程后,加速装置接收NAS客户端发送的第三DMAFS报文,第三DMAFS报文用于NAS客户端向加速装置请求存储NAS数据的目录;加速装置会将挂载目录信息发送给NAS客户端,以便于NAS客户端根据挂载目录信息将存储NAS数据的目录挂载到本地目录中。
在一种可能的实现方式中,NAS服务端接收携带操作对象和操作类型的网络报文后,会对目标数据执行读请求的操作或写请求的操作,并将操作结果发送给加速装置,操作结果中包括目标数据和目标数据所归属的目录和/或文件相应地,加速装置接收NAS服务端发送的携带对目标数据的操作结果的网络协议报文;然后,加速装置再根据预设的文件系统类型,生成第二DMAFS报文,其中,预设的文件系统类型用于描述DMAFS报文的格式,第二DMAFS报文中包括操作结果;再向所述NAS客户端发送第二DMAFS报文。
在一种可能的实现方式中,加速装置还包括数据缓存区,该数据缓存区用于作为NFS的缓存区,存储已处理的访问请求消息的历史数据,例如,当用户执行读请求的操作或写请求的操作时,可以将读请求的操作或写请求的操作的目标数据存储在数据缓存区中,当有新的访问请求,且待访问的目标数据存储在数据缓存区中时,加速装置根据操作对象和操作类型对目标数据执行操作,并向NAS客户端发送对所述目标数据的操作结果。
可选地,可以通过预置阈值控制加速装置的数据缓存区中存储的数据的容量,当缓存区中容量达到预置阈值时,加速装置可以按照预置配置删除最先存储的指定容量的历史数据。
在一种可能的实现方式中,当加速装置的数据缓存区中存在目标数据且操作类型为读请求的操作时,加速装置可以获取数据缓存区中的目标数据和目标数据所归属的目录和/或文件;然后,向NAS客户端发送目标数据和目标数据所归属的目录和/或文件,以此提高读请求的操作的处理效率,降低读请求的操作的处理实现。
在一种可能的实现方式中,当加速装置的数据缓存区中存在目标数据且操作类型为写请求的操作时,加速装置先获取目标数据,并对目标数据执行写请求的操作;然后,向NAS服务端发送操作对象和操作类型;接收NAS服务端对目标数据的写请求的操作的响应信息,其中,写请求的操作的响应信息用于指示对所述目标数据写操作是否执行成功;再向NAS客户端发送写请求的操作的响应信息。
在一种可能的实现方式中,当数据缓存区中不存在目标数据时,加速装置先向NAS服务端发送操作对象和操作类型;然后,接收NAS服务端发送的对所述目标数据的操作结果。
在一种可能的实现方式中,当数据缓存区中不存在目标数据且操作类型为读请求,加速装置先向NAS服务端发送操作对象和操作类型;然后,接收NAS服务端发送的对目标数据的读请求的操作结果,其中,读请求的操作结果中包括目标数据和所述目标数据所归属的目录和/或文件;再将操作结果存储在所述数据缓存区,并向所述NAS客户端发送所述操作结果。
在一种可能的实现方式中,在数据缓存区中不存在目标数据且操作类型为写请求时,向NAS服务端发送操作对象和操作类型;接收NAS服务端发送的对目标数据的写请求的操作结果的响应信息;将目标数据存储在数据缓存区;并向所述NAS客户端发送写操作的响应信息。
在一种可能的实现方式中,加速装置根据操作结果中的目标数据所归属的目录和/或文件信息更新加速装置的本地目录。
综上所述,加速装置接收NAS客户端的访问请求消息后,继续完成现有技术中协议处理过程,完成与NAS服务端的数据传输,由此减少NAS客户端的CPU负载和内存占用,及NAS数据访问的时延。进一步地,通过加速装置的数据缓存区,对已访问的历史数据进行缓存,提高NAS数据处理的效率,降低数据访问时延,提升整个NAS系统的处理效率。
第三方面,本发明提供了一种NAS数据访问的系统,该系统包括NAS客户端和加速装置,所述加速装置包括第一接口与第二接口,所述加速装置通过所述第一接口连接所述NAS客户端,通过所述第二接口与NAS服务端相连,所述NAS客户端用于执行第一方面或第一方面任一种可能实现方式中操作步骤,所述加速装置用于执行第二方面或第二方面任一种可能实现方式中的操作步骤。
第四方面,本发明提供了一种NAS数据访问的NAS客户端,所述NAS客户端包括用于执行第一方面或第一方面任一种可能实现方式中的NAS数据访问方法的各个模块。
第五方面,本发明提供了一种NAS数据访问的加速装置,所述NAS客户端包括用于执行第二方面或第二方面任一种可能实现方式中的故障处理方法的各个模块。
第六方面,本发明提供一种NAS数据访问的NAS客户端,该NAS客户端包括处理器、存储器、通信总线,所述处理器、存储器之间通过通信总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述NAS客户端运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述NAS客户端中的硬件资源执行第一方面或第一方面任一种可能的实现方式中的方法。
第七方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第一方面或第一方面的任意可能的实现方式中的方法的指令。
第八方面,本发明提供一种NAS数据访问的加速装置,该加速装置包括处理器、存储器、用户接口、网络接口、通信总线,加速装置通过用户接口连接NAS客户端,通过网络接口与NAS服务端相连,处理器、存储器、用户接口和网络接口之间通过通信总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述加速装置运行时,所述处理器执行所述存储器中的计算机执行指令以利用所述加速装置中的硬件资源执行第二方面或第二方面任一种可能的实现方式中的方法。
第九方面,提供了一种计算机可读介质,用于存储计算机程序,该计算机程序包括用于执行第二方面或第二方面的任意可能的实现方式中的方法的指令。
基于上述技术方案,本发明实施例的NAS数据访问的方法、系统和相关设备,通过加速装置完成现有技术中NAS客户端对NAS协议栈的协议处理过程,减少NAS客户端的CPU和内存的负载。加速装置和客户端之间采用PCIe或高速外设接口通信,以DMAFS报文进行数据传输,降低了处理时延。进一步的,利用加速装置的数据缓存区对历史数据进行缓存,在数据访问过程中可以提升读数据处理的效率,由此能够提高NAS客户端的整体性能和数据访问效率。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1A为本发明提供的一种现有技术中NAS系统架构的示意图;
图1B为本发明提供的一种现有技术中NAS系统协议栈的示意图;
图2A为本发明提供的一种NAS系统的硬件结构示意图;
图2B为本发明提供的另一种NAS系统的硬件结构示意图;
图2C为本发明提供的另一种NAS系统的硬件结构示意图;
图2D为本发明提供的另一种NAS系统的硬件结构示意图;
图3为本发明提供的一种NAS数据访问方法的的初始化操作流程的示意图;
图3A为本发明提供的一种DMAFS报文格式的示意图;
图4为本发明提供的另一种NAS数据访问方法的流程的示意图;
图5为本发明提供的一种NAS系统协议栈的示意图;
图6A为本发明提供的一种NAS数据访问装置的示意图;
图6B为本发明提供的另一种NAS数据访问装置的示意图;
图7为本发明提供的一种NAS客户端的示意图;
图8为本发明提供的另一种NAS客户端的示意图;
图9为本发明提供的一种加速装置的示意图;
图10为本发明提供的另一种加速装置的示意图。
具体实施方式
下面结合附图进一步介绍本发明所提供的一种NAS数据访问方法。
图2A为本发明实施例提供的一种NAS数据访问系统的逻辑框图,如图所示,该系统中包括NAS客户端、加速装置,加速装置通过高速外围组件互连(peripheral componentinterconnect express,PCIe)接口与NAS客户端相连,通过网卡与NAS服务端相连。其中,加速装置与NAS客户端分别属于PCIe拓扑结构中的一个端点设备,二者通过PCIe总线进行通信。
可选地,图2B为本发明提供的另一种NAS数据访问系统的逻辑框图,如图所示,与图2A的区别在于,加速装置也可以不配置网卡,加速装置通过PCIe与NAS客户端相连后,利用NAS客户端的网卡与NAS服务端进行数据传输。
可选地,在图2B所示的NAS数据访问系统逻辑框图中,也可以在NAS客户端的网卡中添加中央处理器(Central Process Unit,CPU),由该网卡作为加速装置,分别通过PCIe接口与NAS客户端相连,通过NAS客户端的网卡接口与NAS服务端相连。
图2C为本发明实施例提供的另一种NAS数据访问系统的逻辑框图,如图所示,当NAS客户端为对机身有严格限制的客户端机器时,例如NAS客户端为MAC Pro,通用的PCIe接口卡较难插入NAS客户端机内,此时,加速装置可以通过高速外设接口与NAS客户端连接,其中,高速外设接口如闪电(ThunderBolt)接口。加速装置在通过其自身的网卡与NAS服务端相通信。如图2C所示,若高速外设接口为闪电接口,需要通过闪电接口芯片控制闪电接口之间的连接。
可选地,如图2D所示,加速装置中可以不配置网卡,在通过高速外设接口与NAS客户端相连后,通过NAS客户端的网卡与NAS服务端相通信。
值得说明的是,图2A至图2D中加速装置与NAS服务端连接的网络可以使用如图所示的以太网,也可以使用其他网络类型,如无损以太网数据中心桥接(Data CenterBridging,DCB),不构成对本发明的限制。
本发明通过添加如图2A至图2D所示的加速装置,利用加速装置完成NAS数据访问过程中的协议处理,由此简化NAS客户端的协议处理过程,进而减少NAS客户端的CPU和内存的损耗,接下来,结合图3进一步介绍本发明所提供的一种NAS数据访问方法,如图所示,在NAS客户端访问NAS数据之前,NAS客户端、加速装置和NAS服务端需要执行初始化操作,所述方法的初始化操作步骤包括:
S301、加速装置向NAS服务端发送第一请求消息。
具体地,第一请求消息用于向NAS服务端请求将存储NAS数据的目录发送给加速装置。
可选地,加速装置可以按照预置配置请求NAS服务端发送指定层级的目录信息,例如预置配置要求初始化时,仅请求NAS服务端发送存储NAS数据的一级根目录信息;或预置配置要求初始化时,请求NAS服务端将所有存储NAS数据的目录信息均发送给加速装置。
其中,加速装置与NAS服务端之间仍使用现有技术中协议处理过程,若加速装置与NAS服务端使用的网络协议为传输控制协议/因特网互联协议(Transmission ControlProtocol/Internet Protocol,TCP/IP),即如图1B所示协议栈进行数据传输,则加速装置首先将待传输数据转换为NFS数据,例如将用户的访问请求消息转换为NFS可识别的相关参数,将待操作的文件名进行本地解析;然后再将该NFS数据封装为XDR报文,包括将请求参数封装到报文的特定位置;再将该XDR报文封装为RPC报文,封装过程包括在XDR报文中添加RPC序列号、校验码等信息;最后将该RPC报文封装为TCP/IP报文,并通过网卡传输给NAS服务端,以此兼容现有技术中NAS数据访问的协议处理过程。相应地,NAS服务端按照相反的顺序依次解析加速装置发送的TCP/IP报文,对报文中请求消息进行处理,并将处理结果发送给加速装置。
可选地,当加速装置与NAS服务端采用用户数据报协议/因特网互联协议(UserDatagram Protocol/Intenet Protocol,UDP/IP)进行数据传输时,加速装置首先将待传输数据转换为NFS数据;然后再将该NFS数据封装为XDR报文;再将该XDR报文封装为RPC报文;最后将该RPC报文封装为UDP/IP报文,并通过网卡传输给NAS服务端,相应地,NAS服务端会按照相反的顺序依次解析加速装置发送的UDP/IP报文,对该报文中请求消息进行处理,并将处理结果发送给加速装置。
可选地,当加速装置与NAS服务端采用远程直接数据访问(Remote Direct MemoryAccess,RDMA)进行数据传输时,加速装置首先将待传输数据转换为NFS数据;然后再将该NFS数据封装为XDR报文;再将该XDR报文封装为RPC报文;最后将该RPC报文封装为RDMA报文,并通过网卡传输给NAS服务端,相应地,NAS服务端会按照相反的顺序依次解析加速装置发送的RDMA报文,对该报文中请求消息进行处理,并将处理结果发送给加速装置。
值得说明的是,NAS服务端与加速装置之间使用不同网络协议时,各层协议报文的封装和解析过程为现有技术,在此不再赘述。
S302、加速装置接收NAS服务端发送的挂载目录信息。
具体地,NAS服务端和加速装置之间使用不同网络协议进行数据传输,加速装置接收NAS服务端发送的携带挂载目录信息的网络协议报文后,解析该报文并获取挂载目录信息,挂载目录信息包括NAS服务端中存储NAS数据的目录。
S303、加速装置将挂载目录信息中的目录挂载在加速装置的本地目录中。
具体地,加速装置根据挂载目录信息在内存中生成本地目录的数据结构,并调用指针函数将挂载目录信息中的存储NAS数据的目录挂载在加速装置的本地目录中。
S304、NAS客户端向加速装置发送第二请求消息。
具体地,第二请求消息用于NAS客户端向加速装置请求将NAS服务端中存储NAS数据的目录发送给NAS客户端。
可选地,NAS客户端可以按照预置配置请求加速装置发送指定层级的存储NAS数据的目录信息,例如,预置配置要求初始化时,仅请求加速装置发送存储NAS数据的一级根目录信息;或预置配置要求初始化时,请求加速装置将所有存储NAS数据的目录信息均发送给NAS客户端。
值得说明的是,NAS客户端和加速装置可以在存储NAS数据的目录信息中选择相同级别目录挂载到本地目录中,也可以按照预置配置根据用户的操作权限等条件在存储NAS数据的目录信息中选择不同级别目录挂载到本地目录中。
进一步地,NAS客户端和加速装置之间通过DMA控制器进行数据传输,即NAS客户端会将待发送的数据转换为预设的文件系统类型描述的格式,生成直接内存访问文件系统(Direct Memory Access File System,DMAFS)报文,并通知DMA控制器向加速装置发送该报文,其中,DMA控制器可以由加速装置实现,当NAS客户端需要将NAS客户端生成的DMAFS报文发送给加速装置时,NAS客户端的处理器通过指令(如PCIe指令)通知DMA控制器向加速装置发送NAS客户端生成的DMAFS报文;当加速装置需要将加速装置生成的DMAFS报文发送给NAS客户端时,加速装置处理器通知DMA控制器向NAS客户端发送加速装置生成的DMAFS报文。由此将NAS客户端对NAS协议处理过程移到加速装置,降低NAS客户端中CPU和内存的负载。
可选地,DMA控制器的功能也可以由NAS客户端实现,当NAS客户端需要将NAS客户端生成的DMAFS报文发送给加速装置时,NAS客户端的处理器通过指令(如PCIe指令)通知DMA控制器向加速装置发送NAS客户端生成的DMAFS报文;当加速装置需要将加速装置生成的DMAFS报文发送给NAS客户端时,加速装置处理器通知DMA控制器向NAS客户端发送加速装置生成的DMAFS报文。
预设的文件系统类型用于描述DMAFS报文的格式,该预设的文件系统类型可以通过运行在NAS客户端的处理器上,与虚拟文件系统(Virtual File System,VFS)层对接的DMAFS来实现,DMAFS包含有数据请求消息进行相应操作的具体函数,根据函数可以将数据请求消息转化成预设的文件系统类型描述的格式,例如,写操作对应的函数,读操作对应的函数,创建目录对应的函数,删除操作对应的函数,文件偏移量函数,具体的函数本发明实施例对此不进行限定,可以参见现有技术中每个操作对应的具体函数。
示例地,预设的文件系统DMAFS中定义一种文件系统类型和四种对象结构,其中,对象结构包括超级块对象、索引(inode)对象、目录项对象(dentry)、文件对象,其中文件系统类型用于从系统层面定义该文件系统所使用的各类函数、以及函数之间的引用关系;超级块对象,用于管理当前文件系统,包括索引总数、块(block)总数、inode使用分配等;inode主要指示文件或目录的存储空间以及相应文件操作,如文件名更改、链接文件创建、文件权限修改等;文件对象主要指示已经打开的文件和目录的操作,例如文件内容读取,写入等;索引节点对象,用于记录文件系统中目录和文件的索引关系;目录项对象主要是用于缓存目录信息以快速访问文件和目录。在数据处理过程中利用文件系统定义的函数对请求消息进行处理,输出预定义的文件格式。
可选地,DMAFS格式的报文如图3A所示,DMAFS格式报文中包括请求号和DMAFS数据,请求号用于标识DMAFS系统所处理的请求的编号;DMAFS数据包括操作对象、用户请求的参数、用户请求执行状态和数据,其中,用户请求的参数中包括用户请求的类型(例如只读、只写)、读写数据的长度、读写数据的偏移量;用户请求的执行状态用于标识用户请求执行结果(如成功、失败);数据用于表示读请求的操作或写请求的操作所对应的目标数据,例如,当用户请求是对目标数据的读请求操作时,NAS客户端向加速装置发送的DMAFS报文中“数据”字段为空,在加速装置发送给NAS客户端的DMAFS报文中“数据”字段存储目标数据;当用户请求是对目标数据的写请求操作时,NAS客户端发送给加速装置的DMAFS报文中“数据”字段存储目标数据,在加速装置向NAS客户端发送的DMAFS报文中“数据”字段为空。
可选地,在DMAFS报文中还可以包括报文序列号、报文类型、用户验证信息、用户验证信息校验值,其中,报文序列号用于标识每个报文发送顺序;报文类型用于标识该报文为DMAFS报文;用户验证信息用于标识NAS客户端的用户的访问权限的验证信息,用户验证信息校验值则用于对用户验证信息进行校验。
S305、加速装置向NAS客户端发送存储NAS数据的挂载目录信息。
其中,挂载目录信息即步骤S302中NAS服务端发送给加速装置的挂载目录信息。
值得说明的是,在加速装置的处理器上也同样运行着预设的文件系统,用于将待发送的数据转换为预设的文件系统类型,该文件系统与步骤S304相同,在此不再赘述。
S306、NAS客户端将挂载目录信息中的目录挂载在NAS客户端的本地目录中。
具体地,NAS客户端根据挂载目录信息生成本地目录的数据结构,并依次调用指针函数将挂载目录信息中的存储NAS数据的目录挂载在NAS客户端的本地目录中。
通过上述步骤S301至步骤S306的描述,NAS客户端、加速装置和NAS服务端完成初始化过程,将存储NAS数据的目录信息挂载到本地目录中,便于后续进行NAS数据访问。
进一步地,图4为本发明提供的一种NAS数据访问方法的流程示意图,如图所示,所述方法包括:
S401、NAS客户端接收访问请求消息,根据所述访问请求消息中携带的待访问的目标数据的信息确定操作对象。
具体地,访问请求消息中携带待访问的目标数据的信息和操作类型,NAS客户端根据访问请求消息中携带的待访问的目标数据的信息确定操作对象,操作对象包括目标数据所归属的目录和/或文件。
在NAS系统中,NAS客户端接收用户的访问请求消息中的目标数据信息为字符串,而文件系统能够识别的是文件和目录的索引信息,因此,在接收到用户的访问请求消息后,NAS客户端会利用预设文件系统的函数根据待访问的目标数据的信息确定操作对象,即待访问的目标数据所归属的目录和/或文件。
示例地,若用户的访问请求消息中待访问的目标数据为/Root/Dir_a/File_b,则NAS客户端会利用DMAFS中读取函数依次执行如下指令:先读取Root目录下所包含的目录和文件信息、再读取Root/Dir_a目录中所包含目录和文件信息,最后再确定Root/Dir_a目录中存在File_b文件,此时,NAS客户端将用户的访问请求消息中的目标数据的字符串信息转换为NFS能够识别的文件和目录信息。
值得说明的是,如图1B所示的NAS协议栈中,NAS客户端接收到用户的访问请求消息后,会经过VFS层的数据转发,其中,VFS的作用是为各类文件系统提供了一个统一的操作界面和应用编程接口。是一个可以让读、写请求不用关心底层的存储介质和文件系统类型就可以工作的粘合层,即VFS层主要完成访问请求消息的转发,并未对访问请求消息进行处理。
S402、NAS客户端根据预设的文件系统类型,生成第一DMAFS报文。
具体地,预设的文件系统类型用于描述DMAFS报文的格式,第一DMAFS报文中包括操作对象和操作类型。
值得说明的是,DMAFS报文的格式与步骤S304中操作过程相同,在此不再赘述。
S403、NAS客户端向加速装置发送第一DMAFS报文。
S404、加速装置获取第一DMAFS报文中的操作类型和操作对象。
S405、加速装置将所述操作对象和所述操作类型转换为网络文件系统NFS数据,以及将该NFS数据封装为网络协议报文。
具体地,为兼容现有技术中NAS协议栈的处理过程,加速装置与NAS服务端之间仍使用现有技术中协议处理过程,即加速装置在获取到NAS客户端发送的操作类型和操作对象后,会先经过NFS层数据转换过程,如获取操作对象和操作类型的相关参数(如接收数据的地址),将参数信息存储到关联的数据结构;再将NFS数据封装为网络协议报文,其中,网络协议可以为TCP/IP、或UDP/IP、或RDMA。
值得说明的是,加速装置将访问请求消息中的操作对象和操作类型转化为网络协议报文的过程为现有技术,与步骤S301相同,在此不再赘述。
S406、加速装置向NAS服务端发送网络协议报文。
其中,网络协议报文按照网络协议不同,可以为步骤S405中的TCP/IP报文,也可以为UDP/IP报文或RDMA报文。
进一步地,NAS服务端在接收到网络协议报文后,会根据网络协议报文中携带的操作对象和操作类型对目标数据执行读请求的操作或写请求的操作,并将对目标数据的操作结果返回给加速装置,由加速装置再将操作结果返回给NAS客户端。
图5为一种基于TCP/IP网络协议的简化协议栈的示意图,与图1B对比可知,对于NAS客户端,由于数据访问请求无需经过NFS、XDR、RPC、TCP/IP的处理过程,而是通过DMA方式直接发送给加速装置,由加速装置进一步完成其他部分的协议处理过程,故与现有技术所提供的协议栈相比,本发明实施例通过加速装置卸载现有技术中NAS客户端对协议的处理过程,可以简化NAS客户端的协议处理过程,从而降低了NAS客户端的CPU负荷。
其中,图5中是一种由加速装置实现DMA控制器的示例,那么,DMA服务端部署在加速装置侧,DMA客户端部署在NAS客户端侧。相应的,当DMA控制器由NAS客户端实现时,DMA服务端在NAS客户端侧,DMA客户端在加速装置侧。
可选地,当NAS服务端与加速装置之间数据传输协议使用UDP/IP、RDMA时,与现有技术中协议处理过程相比,通过将NAS客户端对协议处理过程卸载到加速装置,由加速装置完成NFS到UDP/IP,或NFS到RDMA的转换过程,也可以简化NAS客户端的协议处理过程,从而降低了NAS客户端的CPU负荷。
通过上述步骤S401至步骤S406的描述,通过在NAS客户端添加加速装置,由加速装置完成现有协议栈中自NFS层以后的协议处理过程,解决了NAS客户端因厚重的协议处理而导致的CPU负载高、内存占用多、处理时延长的问题,提高了NAS客户端的整体性能和数据访问效率。进一步的,NAS客户端和加速装置之间利用DMA引擎进行数据传输,在DMA传输数据过程中,CPU不参与工作,这样就很大程度上减轻了CPU资源占有率,从而提高了CPU效率,减少了NAS数据访问的时延。
在一个可能的实施例中,加速装置中还可以包括数据缓存区,用于作为NFS的缓存区,解决现有技术中NFS的Cache容量小,命中率低,延时高的问题。接下来,结合图6A和图6B分别介绍操作类型为读请求和写请求时NAS数据访问的处理过程。
图6A为本发明提供的一种操作类型为读请求的NAS数据访问方法的流程示意图,如图所示,所述方法包括:
S601、NAS客户端接收访问请求消息,根据所述访问请求消息中携带的待访问的目标数据的信息确定操作对象。
S602、NAS客户端根据预设的文件系统类型,生成第一DMAFS报文。
S603、NAS客户端向加速装置发送第一DMAFS报文。
S604、加速装置获取第一DMAFS报文中的操作类型和操作对象。
步骤S601至S604与步骤S401至S404的处理过程相同,在此不再赘述。
S605、当数据缓存区中存在目标数据时,加速装置获取数据缓存区中的目标数据和目标数据所归属的目录和/或文件。
具体地,加速装置的数据缓存区中可以存储已访问的NAS数据和该数据归属的目录和/或文件的历史数据,当待访问的目标数据为历史数据时,可以通过加速装置的数据缓存区直接获取,由此提高NAS数据的访问效率,缩短数据访问的时延,并执行步骤S609。当数据缓存区中不存在目标数据时,则执行步骤S606至步骤S609。
可选地,可以通过预置阈值控制加速装置的数据缓存区中存储的数据的容量,当缓存区中容量达到预置阈值时,加速装置可以按照预置配置删除最先存储的指定容量的历史数据。
S606(可选)、当数据缓存区中不存在目标数据时,向NAS服务端发送操作类型和操作对象。
具体地,当加速装置的数据缓存区中不存在目标数据时,加速装置利用如步骤S405和步骤S406所示的方法,按照现有技术的协议处理过程,将携带操作类型和操作对象的网络协议报文发送给NAS服务端。
S607(可选)、NAS服务端向加速装置发送对目标数据的操作结果。
具体地,NAS服务端在接收到步骤S606中发送的携带操作对象和操作类型的网络协议报文后,会解析该报文,并根据该报文携带的操作类型和操作对象对目标数据执行操作,并将操作结果封装为网络协议报文发送给加速装置,其中,操作结果中包括目标数据和目标数据所归属的目录和/或文件。
值得说明的是,步骤S606和步骤S607中NAS服务端和加速装置之间传输数据的网络协议报文的封装和解析过程与步骤S301和步骤S302相同,在此不再赘述。
S608(可选)、加速装置将所述操作结果存储在所述数据缓存区。
S609、加速装置根据预设的文件系统类型,生成第二DMAFS报文。
其中,第二DMAFS报文中包括操作结果,即第二DMAFS报文中包括目标数据和目标数据所归属的目录和/或文件,第二DMAFS报文的生成过程与步骤S402相同,在此不再赘述。
S610、加速装置向NAS客户端发送第二DMAFS报文。
进一步地,当目标数据未存储在加速装置的数据缓存区时,加速装置会根据操作操作结果更新本地目录信息,更新过程与步骤S303中所述方法相同,在此不再赘述。相应地,NAS客户端也会根据操作结果更新本地目录信息,更新过程与步骤S306中所述方法相同,在此不再赘述。
作为一个可能的实施例,图6B为操作类型为写请求时的NAS数据访问方法的流程示意图,如图所示,所述方法包括:
S611、NAS客户端接收访问请求消息,根据所述访问请求消息中携带的待访问的目标数据的信息确定操作对象。
S612、NAS客户端根据预设的文件系统类型,生成第一DMAFS报文。
S613、NAS客户端向加速装置发送第一DMAFS报文。
S614、加速装置获取第一DMAFS报文中的操作类型和操作对象。
值得说明的是,步骤S611至S614与步骤S401至S404的处理过程相同,在此不再赘述。
S615、当数据缓存区中存在目标数据时,加速装置对目标数据执行写请求的操作。
当数据缓存区中存在目标数据时,加速装置根据操作类型对目标数据执行写请求的操作。
S616、加速装置向NAS服务端发送操作类型和操作对象。
具体地,加速装置的数据缓存区中存储的是已访问的历史数据,当操作类型为写操作时,加速装置对数据缓存区中数据进行修改后,还需要将操作类型和操作对象发送给NAS服务端,由NAS服务端对存储的目标数据执行写操作。
S617、加速装置接收NAS服务端发送的对目标数据的写请求操作的响应信息。
具体地,NAS服务端在对目标数据执行写请求的操作后,会向加速装置发送写请求操作的响应信息,该响应信息用于指示对所述目标数据写操作是否执行成功。
值得说明的是,步骤S617中NAS服务端利用网络协议报文向加速装置发送响应信息,具体过程与步骤S301相同,此处不再赘述。
当数据缓存区中不存在目标数据时,则执行步骤S618的操作过程。
S618(可选)、当数据缓存区中不存在目标数据时,加速装置向NAS服务端发送操作类型和操作对象。
S619(可选)、加速装置接收NAS服务端发送对目标数据的写操作的响应信息。
S620(可选)、加速装置将目标数据存储在数据缓存区。
具体地,对于写请求的操作,加速装置在接收到NAS服务端对目标数据的写请求的操作的响应信息后,会将目标数据存储在数据缓存区中,即将目标数据和目标数据所归属的目录和/或文件信息存储在数据缓存区中,以便于处理后续执行读请求的操作时,能够从数据缓存区中快速查找目标数据,提升读数据的性能。
S621、加速装置根据预设的文件系统类型,生成第二DMAFS报文。
S622、加速装置向NAS客户端发送第二DMAFS报文。
步骤S621至S622的操作过程与步骤S609至步骤S610相同,在此不再赘述。
进一步地,当目标数据未存储在加速装置的数据缓存区时,加速装置会根据操作操作结果更新本地目录信息,更新过程与步骤S303中所述方法相同,在此不再赘述。相应地,NAS客户端也会根据操作结果更新本地目录信息,更新过程与步骤S306中所述方法相同,在此不再赘述。
综上所述,通过加速装置对NAS客户端协议的卸载过程,解决了现有技术中NAS数据访问过程中NAS客户端CPU负载和内存占用率高,以及处理时延长的问题。进一步地,利用加速装置的数据缓存区存储历史数据,可以减少读处理过程中的访问时延,提高NAS数据访问的读处理效率。相比于现有技术中媒资行业NAS客户端的缓存区受限所导致的网络文件系统关联的Cache容量小所导致命中率低,以及数据访问时延高问题。通过加速装置将网络文件系统关联的Cache移到加速装置上,从VFS下发的访问请求NAS客户端不做缓存,由此解决现有技术中网络文件系统关联的Cache容量小所导致命中率低,以及数据访问时延高问题,提高NAS数据访问的处理效率。
应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
值得说明的是,对于上述方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。
本领域的技术人员根据以上描述的内容,能够想到的其他合理的步骤组合,也属于本发明的保护范围内。其次,本领域技术人员也应该熟悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明所必须的。
上文中结合图2A至图6B,详细描述了根据本发明实施例所提供的存储系统中业务链路切换的方法,下面将结合图7至图10,描述根据本发明实施例所提供的NAS数据访问的NAS客户端和加速装置。
图7为本发明提供的一种NAS客户端700的示意图,如图所示,NAS客户端700包括接收单元701、处理单元702、发送单元703;
所述接收单元701,用于接收用户的访问请求消息。
所述处理单元702,用于根据接收单元701接收的所述访问请求消息中携带的待访问的目标数据的信息确定操作对象,所述操作对象中包括所述目标数据所归属的目录和/或文件;根据预设的文件系统类型描述的格式,生成第一DMAFS报文,所述预设的文件系统类型用于描述DMAFS报文的格式,所述第一DMAFS报文中包括所述操作对象和所述访问请求消息中携带的操作类型。
所述发送单元703,用于向所述加速装置发送第一DMAFS报文。
可选地,所述发送单元703,还用于在所述NAS客户端接收访问请求消息之前,向所述加速装置发送第三DMAFS报文,所述第三DMA报文用于向所述加速装置请求存储NAS数据的目录。
所述接收单元701,还用于接收所述加速装置发送的所述挂载目录信息,并将所述挂载目录信息中携带的存储所述NAS数据的目录挂载到本地目录中。
可选地,所述接收单元701,还用于所述加速装置发送第二DMAFS报文,所述第二DMAFS报文中携带针对所述第一DMAFS报文的操作结果,所述操作结果中包括所述目标数据和所述目标数据所归属的目录和/或文件。
可选地,处理单元702,还用于根据所述操作结果中的所述目标数据所归属的目录和/或文件信息更新所述NAS客户端的本地目录。
应理解,根据本发明实施例的NAS客户端700可对应于执行本发明实施例中描述的方法,并且NAS客户端700中的各个单元的上述和其它操作和/或功能分别为了实现图2A至图6B中的各个方法的相应流程,为了简洁,在此不再赘述。
在本实施例中,通过在NAS客户端添加加速装置,由加速装置完成现有协议栈中自NFS层以后的协议处理过程,解决了NAS客户端因厚重的协议处理而导致的CPU负载高、内存占用多、处理时延长的问题,提高了NAS客户端的整体性能和数据访问效率。
图8为一种NAS客户端800的硬件结构示意图,如图所示,该NAS客户端800包括一个或多个(图中仅示出一个)处理器801、存储器802、以及通信总线805。本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对NAS客户端800的结构造成限定。例如,NAS客户端800还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置。
处理器801、存储器802之间通过通信总线805连接并完成相互间的通信,所述存储器802中用于存储计算机执行指令,所述NAS客户端800运行时,所述处理器801执行所述存储器中的计算机执行指令以利用所述NAS客户端800中的硬件资源执行以下操作:
接收访问请求消息,根据所述访问请求消息中携带的待访问的目标数据的信息确定操作对象,所述操作对象中包括所述目标数据所归属的目录和/或文件;
根据预设的文件系统类型描述的格式,生成第一直接内存访问文件系统DMAFS报文,所述预设的文件系统类型用于描述DMAFS报文的格式,所述第一DMAFS报文中包括所述操作对象和所述访问请求消息中携带的操作类型;
向所述加速装置发送第一DMAFS报文,以便所述加速装置将所述第一DMAFS报文中的所述操作对象和所述操作类型转换为网络文件系统NFS数据以及将所述NFS数据封装为网络传输协议报文发送给NAS服务端。
其中,通信总线805用于NAS客户端800中各组成部件之间的通信。
处理器801通过运行存储在存储器802内的软件程序以及模块(如虚拟文件系统8011、直接内存访问文件系统8012),从而执行各种功能应用以及数据处理,例如,处理器801通过调用存储器802中的对所述操作类型和操作对象进行封装的程序指令,将所述对目标数据的操作结果封装成DMAFS格式的报文。
应理解,在本发明实施例中,该处理器801可以是CPU,该处理器801还可以是其他通用处理器、数字信号处理器(DSP)、ARM处理器、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
进一步地,本发明实施例提供的NAS客户端800还包括DMA控制器806,该DMA控制器806集成在NAS客户端800的硬件板卡上,DMA控制器806的访问接口与运行在处理器上的直接内存访问文件系统、网络文件系统对接。所述DMA控制器806在所述处理器的控制下能够通过PCIe总线实现DMA控制器806和加速装置之间的数据传输,也就是说,DMA控制器806能够将NAS客户端生成的DMAFS报文从NAS客户端搬迁到加速装置,或者将加速装置生成的DMAFS报文从加速装置搬迁到NAS客户端,而不用经过处理器801的运算,从而使得计算机系统处理速度加快,有效的提升了数据传输的效能。可选地,DMA控制器的功能也可以由NAS客户端800的处理器801实现。
存储器802可用于存储软件程序、模块、以及数据库,如本发明实施例中处理器801向所述DMA控制器806发送操作类型和操作对象对应的程序指令/模块,将NAS客户端生成的DMAFS报文搬迁到加速装置,或将加速装置生成的DMAFS报文搬迁到NAS客户端。存储器802可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器802可进一步包括相对于处理器801远程设置的存储器,这些远程存储器可以通过网络连接至NAS客户端800。该存储器802可以包括只读存储器和随机存取存储器,并向处理器801提供指令和数据。存储器802的一部分还可以包括非易失性随机存取存储器。例如,存储器802还可以存储设备类型的信息。
可选地,NAS客户端800还可以包括用户接口803和网络接口804,其中,用户接口803用于插接外部设备,例如,用户接口803包括图2A至图2D中PCIe接口或高速外设接口,也可以用于连接如触摸屏、鼠标及键盘等设备,以接收用户输入的信息。网络接口804用于NAS客户端800与外部进行互相通信,该网络接口804主要包括有线接口和无线接口,例如网卡、RS232模块、射频模块、WIFI模块等等。
本领域普通技术人员可以理解,图8所示的结构仅为示意,其并不对加速装置的结构造成限定。例如,NAS客户端800还可包括比图8中所示更多或者更少的组件,或者具有与图8所示不同的配置,如,NAS客户端800也可以不包括存储器802,存储器802由NAS客户端外的设备实现。
应理解,根据本发明实施例的NAS客户端800对应于本发明实施例提供的NAS客户端700,该NAS客户端800用于实现图2A至图6B所示方法中NAS客户端的相应流程,为了简洁,在此不再赘述。
综上所述,通过加速装置对NAS客户端协议的卸载过程,解决了现有技术中NAS数据访问过程中NAS客户端CPU负载和内存占用率高,以及处理时延长的问题。进一步地,利用加速装置的数据缓存区存储历史数据,可以减少读处理过程中的访问时延,提高NAS数据访问的读处理效率。相比于现有技术中流媒体行业NAS客户端的缓存区受限所导致的网络文件系统关联的Cache容量小所导致命中率低,以及数据访问时延高问题,通过加速装置将网络文件系统关联的Cache移到加速装置上,从VFS下发的访问请求NAS客户端不做缓存,由此解决现有技术中网络文件系统关联的Cache容量小所导致命中率低,以及数据访问时延高问题,提高NAS数据访问的处理效率。
图9为本发明提供的一种加速装置900的示意图,如图所示,加速装置900中包括接收单元901、处理单元902、发送单元903:
所述接收单元901,用于接收NAS客户端发送的第一DMAFS报文,所述第一DMAFS报文中携带所述操作对象和所述操作类型。
所述处理单元902,用于获取所述第一DMAFS报文中的所述操作对象和所述操作类型;将所述操作对象和所述操作类型转换为网络文件系统NFS数据;以及将所述NFS数据封装为网络协议报文。
所述发送单元903,用于向NAS服务端发送所述网络协议报文。
其中,所述网络协议包括以下协议中的任意一种:TCP/IP、UDP/IP、RDMA。
通过上述加速装置900对NAS客户端的协议处理过程进行卸载,减少了NAS客户端的CPU和内存的负载,并且加速装置900的NAS客户端之间以DMA报文进行数据传输,减少了处理时延,提升了整个NAS数据访问过程的效率。
可选地,所述处理单元902,还用于当网络协议为TCP/IP时,将所述NFS数据封装第一外部数据标识XDR报文;将所述第一XDR报文封装为第一远程过程调用RPC报文;以及将所述第一RPC报文封装为第一TCP/IP报文。
可选地,所述处理单元902,还用于当网络协议为UDP/IP时,将所述NFS数据封装第一外部数据标识XDR报文;将所述第一XDR报文封装为第一远程过程调用RPC报文;以及将所述第一RPC报文封装为第一UDP/IP报文。
可选地,所述处理单元902,还用于当网络协议为RDMA时,将所述NFS数据封装第一外部数据标识XDR报文;将所述第一XDR报文封装为第一远程过程调用RPC报文;以及将所述第一RPC报文封装为第一RDMA报文。
可选地,所述发送单元903,还用于在接收单元901接收所述访问请求消息之前,向所述NAS服务端发送第一请求消息,所述第一请求消息用于向所述NAS服务端请求存储NAS数据的目录。
所述接收单元901,还用于接收所述NAS服务端发送的挂载目录信息,所述挂载目录信息中包括所述NAS服务端中存储所述NAS数据的目录的信息。
所述处理单元902,还用于根据所述挂载目录信息,将所述NAS服务端中存储所述NAS数据的目录挂载到本地目录中。
可选地,所述接收单元901,还用于接收第三DMAFS报文,所述第三DMAFS报文用于所述NAS客户端向所述加速装置请求所述存储NAS数据的目录。
所述发送单元903,还用于向所述NAS客户端发送所述挂载目录信息。
可选地,所述处理单元902,还用于当所述数据缓存区中存在所述目标数据时,根据所述操作对象和所述操作类型对所述目标数据执行操作。
所述发送单元903,还用于向所述NAS客户端发送对所述目标数据的操作结果。
可选地,所述处理单元902,还用于当所述操作类型为读请求时,获取所述数据缓存区中的所述目标数据和所述目标数据所归属的目录和/或文件。
所述发送单元903,还用于向所述NAS客户端发送所述目标数据和所述目标数据所归属的目录和/或文件。
可选地,所述处理单元902,还用于当所述操作类型为写请求时获取所述目标数据,并对所述目标数据执行所述写请求的操作。
所述发送单元903,还用于向所述NAS服务端发送所述操作对象和所述操作类型;向所述NAS客户端发送所述写操作的响应信息。
所述接收单元901,还用于接收NAS服务端对所述目标数据的写操作的响应信息,所述写操作的响应信息用于指示对所述目标数据写操作是否执行成功。
可选地,所述发送单元903,还用于当所述数据缓存区中不存在所述目标数据时,向所述NAS服务端发送所述操作对象和所述操作类型。
所述接收单元901,用于接收所述NAS服务端发送的对所述目标数据的操作结果。
可选地,所述发送单元903,还用于当所述操作类型为读请求,则向所述所述NAS服务端发送所述操作对象和所述操作类型。
所述接收单元901,还用于接收所述NAS服务端发送的对目标数据的读请求的操作结果,所述读请求的操作结果中包括所述目标数据和所述目标数据所归属的目录和/或文件。
所述处理单元902,还用于将所述操作结果存储在所述数据缓存区。
所述发送单元903,还用于向所述NAS客户端发送所述操作结果。
可选地,所述发送单元903,还用于当所述操作类型为写请求时,向所述所述NAS服务端发送所述操作对象和所述操作类型;向所述NAS客户端发送写操作的响应信息。
所述接收单元901,还用于接收接收NAS服务端发送的对所述目标数据的所述写请求操作结果的响应信息。
可选地,所述接收单元901,还用于接收所述NAS服务端发送的携带对所述目标数据的操作结果的网络协议报文,所述操作结果中包括所述目标数据和所述目标数据所归属的目录和/或文件。
所述处理单元902,还用于根据所述预设的文件系统类型,生成第二DMAFS报文,所述第二DMAFS报文中包括所述操作结果。
所述发送单元903,还用于向所述NAS客户端发送第二DMAFS报文。
可选地,所述处理单元902,还用于根据所述操作结果中的所述目标数据所归属的目录和/或文件信息更新所述加速装置的本地目录。
通过上述加速装置900的描述,利用加速装置的数据缓存区存储历史数据,可以减少读处理过程中的访问时延,提高NAS数据访问的读处理效率。另外,相比于现有技术中媒资行业NAS客户端的缓存区受限,导致网络文件系统关联的Cache容量小所导致命中率低,以及数据访问时延高问题,通过加速装置将网络文件系统关联的Cache移到加速装置上,从VFS下发的访问请求NAS客户端不做缓存,一定程度上减少了NAS数据处理的时延。
图10为本发明实施例提供的一种加速装置1000的示意图,如图所示,所述加速装置1000包括处理器1001、存储器1002、用户接口1003、网络接口1004和通信总线1005。其中,加速装置1000通过所述用户接口1003连接NAS客户端,通过所述网络接口1004与NAS服务端相连,处理器1001、存储器1002、用户接口1003、网络接口1004通过通信总线1005进行通信,也可以通过无线传输等其他手段实现通信。该存储器1002用于存储指令,该处理器1001用于执行该存储器1002存储的指令。该存储器1002存储程序代码,且处理器1001可以调用存储器1002中存储的程序代码执行以下操作:
接收所述NAS客户端发送的第一直接内存访问文件系统DMAFS报文,所述第一DMAFS报文中携带所述操作对象和所述操作类型;
获取所述第一DMAFS报文中的所述操作对象和所述操作类型;
将所述操作对象和所述操作类型转换为网络文件系统NFS数据;以及将所述NFS数据封装为网络协议报文;
向NAS服务端发送所述网络协议报文。
其中,所述网络协议包括以下协议中的任意一种:传输控制协议/因特网互联协议TCP/IP、用户数据报协议/因特网互联协议UDP/IP、远程直接数据存取RDMA。
本领域普通技术人员可以理解,图10所示的结构仅为示意,其并不对加速装置的结构造成限定。例如,加速装置1000还可包括比图10中所示更多或者更少的组件,或者具有与图10所示不同的配置。
通信总线1005用于加速装置中各组成部件之间的通信。该通信总线1005除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为通信总线1005。
用户接口1003用于插接外部设备,例如,用户接口1003包括图2A至图2D中PCIe接口或高速外设接口。网络接口304用于NAS客户端与外部进行互相通信,该网络接口1004主要包括有线接口和无线接口,例如网卡、RS232模块、射频模块、WIFI模块等等。
处理器1001通过运行存储在存储器1002内的软件程序以及模块(如直接内存访问文件系统10012、网络文件系统10013),从而执行各种功能应用以及数据处理,例如,处理器1001通过调用存储器1002中的对所述对目标数据的操作结果进行封装的程序指令,将所述对目标数据的操作结果封装成直接内存访问远程数据DMA格式的报文。
应理解,在本发明实施例中,该处理器1001可以是CPU,该处理器1001还可以是其他通用处理器、数字信号处理器(DSP)、ARM处理器、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
进一步地,本发明实施例提供的加速装置1000还包括DMA控制器1006,DMA控制器1006集成在加速装置的硬件板卡上,DMA控制器1006的访问接口与运行在处理器上的直接内存访问文件系统、网络文件系统对接。所述DMA控制器1006在所述处理器的控制下能够通过PCIe总线实现DMA控制器1006和加速装置之间的数据传输,也就是说,DMA控制器能够将NAS客户端的DMAFS报文搬迁到加速装置,或将加速装置生成的DMAFS报文搬迁到NAS客户端,而不用经过处理器1001的运算,从而使得计算机系统处理速度加快,有效的提升了数据传输的效能。可选地,DMA控制器1006也可以由处理器1001实现。
存储器1002可用于存储软件程序以及模块,如本发明实施例中处理器1001向所述DMA控制器1006发送对目标数据的操作结果对应的程序指令/模块,及存储已处理的NAS访问请求的历史数据。存储器1002可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器1002可进一步包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至加速装置。该存储器1002可以包括只读存储器和随机存取存储器,并向处理器1001提供指令和数据。存储器1002的一部分还可以包括非易失性随机存取存储器。
应理解,根据本发明实施例的加速装置1000对应于本发明实施例提供的加速装置900,该加速装置1000用于实现图2A至图6B中对应执行主体根据本发明实施例的所示方法,为了简洁,在此不再赘述。
作为一个可能实施例,本发明中提供一种NAS数据访问的系统,该系统中包括上述实施例所提供的NAS客户端、及加速装置,所述加速装置包括第一接口和第二接口,加速装置通过第一接口连接NAS客户端,通过第二接口与NAS服务端相连。NAS客户端接收用户请求消息,先通过访问请求消息中携带的待访问的目标数据的信息确定操作对象,操作对象中包括目标数据所归属的目录和/或文件;再根据预设的文件系统类型,生成第一DMAFS报文,其中,预设的文件系统类型用于描述DMAFS报文的格式,第一DMAFS报文中包括操作对象和访问请求消息中携带的操作类型;然后,再向加速装置发送所述第一DMAFS报文。进一步地,由加速装置获取第一DMAFS报文中的操作类型和操作对象,继续完成现有技术中从NFS到网络协议报文的处理过程,再将携带操作类型和操作对象的网络协议报文发送给NAS服务端。以此解决现有技术中NAS客户端在处理NAS协议处理过程中所带来的CPU和内存负载过高问题。综上所述,本发明实施例中利用加速装置对现有技术中NAS客户端的协议处理过程进行卸载,减少了NAS客户端的处理时延,同时,也减轻了由于厚重的协议处理过程所导致的NAS客户端CPU和内存负载,提升了整个NAS数据访问系统的处理效率,减少了处理时延。进一步的,通过预定义的文件系统,兼容现有技术中NAS协议栈的处理过程,能够合理应用到现有技术中,有效降低NAS客户端CPU和内存的负载,及处理时延。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (42)

1.一种NAS数据访问的系统,其特征在于,所述系统中包括NAS客户端和加速装置,所述加速装置包括第一接口与第二接口,所述加速装置通过所述第一接口连接所述NAS客户端,通过所述第二接口与NAS服务端相连;
所述NAS客户端,用于接收访问请求消息,根据所述访问请求消息中携带的待访问的目标数据的信息确定操作对象,所述操作对象包括所述目标数据所归属的目录和/或文件;根据预设的文件系统类型,生成第一直接内存访问文件系统DMAFS报文,所述预设的文件系统类型用于描述DMAFS报文的格式,所述第一DMAFS报文中包括所述操作对象和所述访问请求消息中携带的操作类型;向所述加速装置发送所述第一DMAFS报文;
所述加速装置,用于接收所述第一DMAFS报文,并获取所述第一DMAFS报文中的所述操作对象和所述操作类型;将所述操作对象和所述操作类型转换为网络文件系统NFS数据;以及将所述NFS数据封装为网络协议报文,并向所述NAS服务端发送所述网络协议报文。
2.根据权利要求1所述系统,其特征在于,所述第一接口为高速外围组件互连PCIe接口或高速外设接口,所述第二接口为网卡接口。
3.根据权利要求1至2中任一所述系统,其特征在于,
所述加速装置,还用于在所述NAS客户端接收所述访问请求消息之前,向所述NAS服务端发送第一请求消息,所述第一请求消息用于向所述NAS服务端请求存储NAS数据的目录;接收所述NAS服务端发送的挂载目录信息,所述挂载目录信息中包括所述NAS服务端中所述存储NAS数据的目录的信息;根据所述挂载目录信息,将所述NAS服务端中所述存储NAS数据的目录挂载到本地目录中;
所述NAS客户端,还用于向所述加速装置发送第三DMAFS报文,所述第三DMAFS报文用于向所述加速装置请求所述存储NAS数据的目录;接收所述加速装置发送的所述挂载目录信息,并将所述挂载目录信息中的所述存储NAS数据的目录挂载到本地目录中。
4.根据权利要求1所述系统,其特征在于,
所述加速装置,还用于接收所述NAS服务端发送的携带对所述目标数据的操作结果的网络协议报文;根据所述预设的文件系统类型,生成第二DMAFS报文,所述第二DMAFS报文中包括所述操作结果;向所述NAS客户端发送所述第二DMAFS报文。
5.根据权要求1所述系统,其特征在于,所述加速装置还包括数据缓存区;
所述加速装置,还用于当所述数据缓存区中存在所述目标数据时,根据所述操作对象和所述操作类型对所述目标数据执行操作,并向所述NAS客户端发送对所述目标数据的操作结果。
6.根据权利要求5所述系统,其特征在于,所述加速装置,用于根据所述操作对象和所述操作类型对所述目标数据执行操作,并向所述NAS客户端发送对所述目标数据的操作结果,包括:
当所述操作类型为读请求时,获取所述数据缓存区中的所述目标数据和所述目标数据所归属的目录和/或文件;向所述NAS客户端发送所述目标数据和所述目标数据所归属的目录和/或文件。
7.根据权利要求5所述系统,其特征在于,所述加速装置,用于根据所述操作对象和所述操作类型对所述目标数据执行操作,并向所述NAS客户端发送对所述目标数据的操作结果,包括:
当所述操作类型为写请求时,获取所述目标数据,并对所述目标数据执行所述写请求的操作;向所述NAS服务端发送所述操作对象和所述操作类型;接收NAS服务端对所述目标数据执行所述写请求的操作的响应信息;向所述NAS客户端发送所述写请求的操作的响应信息。
8.根据权利要求1所述系统,其特征在于,所述加速装置还包括数据缓存区;
所述加速装置,还用于当所述数据缓存区中不存在所述目标数据时,向所述NAS服务端发送所述操作对象和所述操作类型;接收所述NAS服务端发送的对所述目标数据的操作结果。
9.根据权利要求8所述系统,其特征在于,所述加速装置,用于向所述NAS服务端发送所述操作对象和所述操作类型,接收所述NAS服务端发送的对所述目标数据的操作结果,包括:
当所述操作类型为读请求,则向所述NAS服务端发送所述操作对象和所述操作类型;接收所述NAS服务端发送的对所述目标数据的读请求的操作结果,所述操作结果中包括所述目标数据和所述目标数据所归属的目录和/或文件;将所述操作结果存储在所述数据缓存区,并向所述NAS客户端发送所述操作结果。
10.根据权利要求8所述系统,其特征在于,所述加速装置,用于向所述NAS服务端发送所述操作对象和所述操作类型,接收所述NAS服务端发送的对所述目标数据的操作结果,包括:
在所述操作类型为写请求时,向所述所述NAS服务端发送所述操作对象和所述操作类型;接收所述NAS服务端发送的对所述目标数据执行所述写请求的操作的响应信息;还用于将所述目标数据存储在所述数据缓存区,并向所述NAS客户端发送所述写请求的操作的响应信息。
11.根据权利要求1所述系统,其特征在于,
所述加速装置,还用于根据所述操作结果中的所述目标数据所归属的目录和/或文件信息更新所述加速装置的本地目录。
12.根据权利要求1所述系统,其特征在于,
所述NAS客户端,还用于根据所述操作结果中的所述目标数据所归属的目录和/或文件信息更新所述NAS客户端的本地目录。
13.一种NAS数据访问的方法,其特征在于,所述方法应用于NAS系统中,所述NAS系统中包括NAS客户端和加速装置,所述加速装置包括第一接口与第二接口,所述加速装置通过所述第一接口连接所述NAS客户端,通过所述第二接口与NAS服务端相连,所述方法包括:
所述加速装置接收所述NAS客户端发送的第一直接内存访问文件系统DMAFS报文,所述第一DMAFS报文中携带待访问的目标数据的操作对象和操作类型;
所述加速装置获取所述第一DMAFS报文中的所述操作对象和所述操作类型;
所述加速装置将所述操作对象和所述操作类型转换为网络文件系统NFS数据;以及将所述NFS数据封装为网络传输协议报文;
所述加速装置向所述NAS服务端发送所述网络协议报文。
14.根据权利要求13所述方法,其特征在于,所述第一接口为高速外围组件互连PCIe接口或高速外设接口,所述第二接口为网卡接口。
15.根据权利要求13至14中任一所述方法,其特征在于,在所述加速装置接收所述第一DMAFS报文之前,所述方法还包括:
所述加速装置向所述NAS服务端发送第一请求消息,所述第一请求消息用于向所述NAS服务端请求存储NAS数据的目录;
所述加速装置接收所述NAS服务端发送的挂载目录信息,所述挂载目录信息中包括所述NAS服务端中所述存储NAS数据的目录的信息;
所述加速装置根据所述挂载目录信息,将所述NAS服务端中所述存储NAS数据的目录挂载到本地目录中。
16.根据权利要求15所述方法,其特征在于,所述方法还包括:
所述加速装置接收所述NAS客户端发送的第三DMAFS报文,所述第三DMAFS报文用于向所述加速装置请求所述存储NAS数据的目录;
所述加速装置向所述NAS客户端发送所述挂载目录信息。
17.根据权利要求13所述方法,其特征在于,所述方法还包括:
所述加速装置接收所述NAS服务端发送的携带对所述目标数据的操作结果的网络协议报文,所述操作结果中包括所述目标数据和所述目标数据所归属的目录和/或文件;
所述加速装置根据所述预设的文件系统类型,生成第二DMAFS报文,所述第二DMAFS报文中包括所述操作结果,所述预设的文件系统类型用于描述DMAFS报文的格式;向所述NAS客户端发送所述第二DMAFS报文。
18.根据权利要求13所述方法,其特征在于,所述加速装置还包括数据缓存区,所述方法还包括:
当所述数据缓存区中存在所述目标数据时,所述加速装置根据所述操作对象和所述操作类型对所述目标数据执行操作,并向所述NAS客户端发送对所述目标数据的操作结果。
19.根据权利要求18所述方法,其特征在于,
所述加速装置根据所述操作对象和所述操作类型对所述目标数据执行操作,并向所述NAS客户端发送对所述目标数据的操作结果,包括:
当所述操作类型为读请求时,获取所述数据缓存区中的所述目标数据和所述目标数据所归属的目录和/或文件;向所述NAS客户端发送所述目标数据和所述目标数据所归属的目录和/或文件。
20.根据权利要求18所述方法,其特征在于,所述加速装置根据所述操作对象和所述操作类型对所述目标数据执行操作,并向所述NAS客户端发送对所述目标数据的操作结果,包括:
当所述操作类型为写请求,获取所述目标数据,并对所述目标数据执行所述写请求的操作;向所述NAS服务端发送所述操作对象和所述操作类型;接收NAS服务端对所述目标数据执行所述写请求的操作的响应信息;
向所述NAS客户端发送所述写请求的操作的响应信息。
21.根据权利要求13所述方法,其特征在于,所述加速装置还包括数据缓存区,所述方法包括:
当所述数据缓存区中不存在所述目标数据时,向所述NAS服务端发送所述操作对象和所述操作类型;接收所述NAS服务端发送的对所述目标数据的操作结果。
22.根据权利要求21所述方法,其特征在于,所述向所述NAS服务端发送所述操作对象和所述操作类型;接收所述NAS服务端发送的对所述目标数据的操作结果,包括:
当所述操作类型为读请求,则向所述NAS服务端发送所述操作对象和所述操作类型;接收所述NAS服务端发送的对目标数据的读请求的操作结果,所述读请求的操作结果中包括所述目标数据和所述目标数据所归属的目录和/或文件;将所述操作结果存储在所述数据缓存区,并向所述NAS客户端发送所述操作结果。
23.根据权利要求21所述方法,其特征在于,所述向所述NAS服务端发送所述操作对象和所述操作类型;接收所述NAS服务端发送的对所述目标数据的操作结果,包括:
在所述操作类型为写请求时,向所述所述NAS服务端发送所述操作对象和所述操作类型;接收所述NAS服务端发送的对所述目标数据执行所述写请求的操作结果的响应信息;将所述目标数据存储在所述数据缓存区;并向所述NAS客户端发送所述写请求的响应信息。
24.根据权利要求17所述方法,其特征在于,所述方法包括:
所述加速装置根据所述操作结果中的所述目标数据所归属的目录和/或文件信息更新所述加速装置的本地目录。
25.一种NAS数据访问的方法,其特征在于,所述方法应用于NAS系统中,所述NAS系统中包括NAS客户端和加速装置,所述加速装置包括第一接口与第二接口,所述加速装置通过所述第一接口连接所述NAS客户端,通过所述第二接口与NAS服务端相连,所述方法包括:
所述NAS客户端接收访问请求消息,根据所述访问请求消息中携带的待访问的目标数据的信息确定操作对象,所述操作对象中包括所述目标数据所归属的目录和/或文件;
所述NAS客户端根据预设的文件系统类型,生成第一直接内存访问文件系统DMAFS报文,所述预设的文件系统类型用于描述DMAFS报文的格式,所述第一DMAFS报文中包括所述操作对象和所述访问请求消息中携带的操作类型;
所述NAS客户端向所述加速装置发送所述第一DMAFS报文, 以便所述加速装置将所述第一DMAFS报文中的所述操作对象和所述操作类型转换为网络文件系统NFS数据以及将所述NFS数据封装为网络传输协议报文发送给所述NAS服务端。
26.根据权利要求25所述方法,其特征在于,所述第一接口为高速外围组件互连PCIe接口或高速外设接口,所述第二接口为网卡接口。
27.根据权利要求25至26中任一所述方法,其特征在于,所述方法还包括:
所述NAS客户端接收所述加速装置发送的第二DMAFS报文,所述第二DMAFS报文中携带针对所述第一DMAFS报文的操作结果。
28.根据权利要求25至26中任一所述方法,其特征在于,在所述NAS客户端接收访问请求消息之前,所述方法包括:
所述NAS客户端向所述加速装置发送第三DMAFS报文,所述第三DMAFS报文用于向所述加速装置请求所述NAS服务端中存储NAS数据的目录;
所述NAS客户端接收所述加速装置发送的挂载目录信息,并将所述挂载目录信息中携带的所述存储NAS数据的目录挂载到本地目录中。
29.根据权利要求25所述方法,其特征在于,所述方法包括:
所述NAS客户端根据所述操作结果中的所述目标数据所归属的目录和/或文件信息更新所述NAS客户端的本地目录。
30.一种NAS数据访问的加速装置,其特征在于,所述加速装置包括接收单元、处理单元和发送单元;
所述接收单元,用于接收NAS客户端发送的第一直接内存访问文件系统DMAFS报文,所述第一DMAFS报文中携带待访问的目标数据的操作对象和操作类型;将所述操作对象和所述操作类型转换为网络文件系统NFS数据;以及将所述NFS数据封装为网络传输协议报文;
所述处理单元,用于获取所述第一DMAFS报文中的所述操作对象和所述操作类型;
所述发送单元,用于向NAS服务端发送所述网络协议报文。
31.根据权利要求30所述装置,其特征在于,
所述接收单元,还用于接收所述NAS服务端发送的携带对所述目标数据的操作结果的网络协议报文,所述操作结果中包括所述目标数据和所述目标数据所归属的目录和/或文件;
所述处理单元,还用于根据所述预设的文件系统类型,生成第二DMAFS报文,所述第二DMAFS报文中包括所述操作结果,所述预设的文件系统类型用于描述DMAFS报文的格式;向所述NAS客户端发送所述第二DMAFS报文。
32.根据权利要求30或31所述装置,其特征在于,所述加速装置还包括数据缓冲区;
所述处理单元,还用于当所述数据缓存区中存在所述目标数据时,所述加速装置根据所述操作对象和所述操作类型对所述目标数据执行操作;
所述发送单元,还用于向所述NAS客户端发送对所述目标数据的操作结果。
33.根据权利要求30或31所述装置,其特征在于,所述加速装置还包括数据缓冲区;
所述发送单元,还用于当所述数据缓存区中不存在所述目标数据时,向所述NAS服务端发送所述操作对象和所述操作类型;
所述接收单元,还用于接收所述NAS服务端发送的对所述目标数据的操作结果。
34.一种NAS数据访问的NAS客户端,其特征在于,所述NAS客户端包括接收单元、处理单元和发送单元;
所述接收单元,用于接收访问请求消息,根据所述访问请求消息中携带的待访问的目标数据的信息确定操作对象,所述操作对象中包括所述目标数据所归属的目录和/或文件;
所述处理单元,用于根据预设的文件系统类型,生成第一直接内存访问文件系统DMAFS报文,所述预设的文件系统类型用于描述DMAFS报文的格式,所述第一DMAFS报文中包括所述操作对象和所述访问请求消息中携带的操作类型;
所述发送单元,用于向所述加速装置发送所述第一DMAFS报文。
35.一种NAS数据访问的加速装置,其特征在于,所述加速装置中包括处理器、存储器、用户接口、网络接口、通信总线,所述加速装置通过所述用户接口连接NAS客户端,通过所述网络接口与NAS服务端相连,所述处理器、存储器、用户接口、和网络接口之间通过所述通信总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述加速装置运行时,所述处理器执行所述存储器中的计算机执行指令执行权利要求13至24中任一所述的方法。
36.一种NAS数据访问的NAS客户端,其特征在于,所述NAS客户端中包括处理器、存储器、通信总线,所述处理器、存储器之间通过通信总线连接并完成相互间的通信,所述存储器中用于存储计算机执行指令,所述NAS客户端运行时,所述处理器执行所述存储器中的计算机执行指令执行权利要求25至29中任一所述的方法。
37.一种NAS数据访问的系统,其特征在于,所述系统中包括NAS客户端、加速装置和NAS服务端,所述加速装置包括第一接口与第二接口,所述加速装置通过所述第一接口连接所述NAS客户端,通过所述第二接口与NAS服务端相连;
所述NAS客户端,用于接收访问请求消息,根据所述访问请求消息中携带的待访问的目标数据的信息确定操作对象,所述操作对象包括所述目标数据所归属的目录和/或文件;根据预设的文件系统类型,生成第一直接内存访问文件系统DMAFS报文,所述预设的文件系统类型用于描述DMAFS报文的格式,所述第一DMAFS报文中包括所述操作对象和所述访问请求消息中携带的操作类型;向所述加速装置发送所述第一DMAFS报文;
所述加速装置,用于接收所述第一DMAFS报文,并获取所述第一DMAFS报文中的所述操作对象和所述操作类型;将所述操作对象和所述操作类型转换为网络文件系统NFS数据;以及将所述NFS数据封装为网络协议报文,并向所述NAS服务端发送所述网络协议报文;
所述NAS服务端,用于接收加速装置发送的所述网络协议报文;获取所述网络协议报文中的所述操作对象和所述操作类型;根据所述操作类型对所述目标数据执行操作。
38.根据权利要求37所述系统,其特征在于,所述第一接口为高速外围组件互连PCIe接口或高速外设接口,所述第二接口为网卡接口。
39.根据权利要求37或38所述系统,其特征在于,
所述NAS服务端,还用于向所述加速装置发送携带对所述目标数据的操作结果的网络报文;
所述加速装置,还用于接收所述NAS服务端发送的所述携带对所述目标数据的操作结果的网络协议报文;根据所述预设的文件系统类型,生成第二DMAFS报文,所述第二DMAFS报文中包括所述操作结果;向所述NAS客户端发送所述第二DMAFS报文。
40.根据权利要求37或38所述系统,其特征在于,所述加速装置还包括数据缓存区;
所述加速装置,还用于当所述数据缓存区中存在所述目标数据时,根据所述操作对象和所述操作类型对所述目标数据执行操作,并向所述NAS客户端发送对所述目标数据的操作结果。
41.根据权利要求40所述系统,其特征在于,用于根据所述操作对象和所述操作类型对所述目标数据执行操作,并向所述NAS客户端发送对所述目标数据的操作结果,包括:
当所述操作类型为读请求时,获取所述数据缓存区中的所述目标数据和所述目标数据所归属的目录和/或文件;向所述NAS客户端发送所述目标数据和所述目标数据所归属的目录和/或文件。
42.根据权利要求40所述系统,其特征在于,用于根据所述操作对象和所述操作类型对所述目标数据执行操作,并向所述NAS客户端发送对所述目标数据的操作结果,包括:
当所述操作类型为写请求时,获取所述目标数据,并对所述目标数据执行所述写请求的操作;向所述NAS服务端发送所述操作对象和所述操作类型;接收NAS服务端对所述目标数据执行所述写请求的操作的响应信息;向所述NAS客户端发送所述写请求的操作的响应信息。
CN201680001864.2A 2015-12-30 2016-12-01 一种nas数据访问的方法、系统及相关设备 Active CN108028833B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN2015110260762 2015-12-30
CN201511026076 2015-12-30
PCT/CN2016/108238 WO2017114091A1 (zh) 2015-12-30 2016-12-01 一种nas数据访问的方法、系统及相关设备

Publications (2)

Publication Number Publication Date
CN108028833A CN108028833A (zh) 2018-05-11
CN108028833B true CN108028833B (zh) 2020-05-08

Family

ID=59224497

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680001864.2A Active CN108028833B (zh) 2015-12-30 2016-12-01 一种nas数据访问的方法、系统及相关设备

Country Status (4)

Country Link
US (1) US11275530B2 (zh)
EP (1) EP3288232B1 (zh)
CN (1) CN108028833B (zh)
WO (1) WO2017114091A1 (zh)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3798835A1 (en) * 2016-08-26 2021-03-31 Huawei Technologies Co., Ltd. Method, device, and system for implementing hardware acceleration processing
WO2018090256A1 (zh) * 2016-11-16 2018-05-24 华为技术有限公司 一种目录删除方法、装置和存储服务器
CN108897632A (zh) * 2018-07-18 2018-11-27 杭州鑫合汇互联网金融服务有限公司 一种消息系统及消息发送方法
CN109240995B (zh) * 2018-08-22 2022-05-10 郑州云海信息技术有限公司 一种操作字时延的统计方法和装置
CN109246238A (zh) * 2018-10-15 2019-01-18 中国联合网络通信集团有限公司 内容缓存加速方法及网络设备
CN110555009B (zh) * 2019-08-09 2023-01-10 苏州浪潮智能科技有限公司 一种网络文件系统nfs服务的处理方法及装置
CN111698239A (zh) * 2020-06-08 2020-09-22 星辰天合(北京)数据科技有限公司 基于网络文件系统的应用控制方法及装置、系统
CN112148678B (zh) * 2020-09-18 2023-01-06 苏州浪潮智能科技有限公司 一种文件访问方法、系统、设备以及介质
CN113395293B (zh) * 2021-07-13 2023-09-15 上海睿赛德电子科技有限公司 一种基于rpc的网络套接字实现方法
US20230073627A1 (en) * 2021-08-30 2023-03-09 Datadog, Inc. Analytics database and monitoring system for structuring and storing data streams
CN113890896A (zh) * 2021-09-24 2022-01-04 中移(杭州)信息技术有限公司 网络访问方法、通信设备及计算机可读存储介质
CN114285839B (zh) * 2021-12-23 2023-11-10 北京天融信网络安全技术有限公司 一种文件传输方法、装置、计算机存储介质和电子设备
CN115102972A (zh) * 2022-07-15 2022-09-23 济南浪潮数据技术有限公司 一种存储nfs文件的方法、装置、设备及介质
CN115048227B (zh) * 2022-08-15 2022-12-09 阿里巴巴(中国)有限公司 数据处理方法、系统及存储介质
CN116126812B (zh) * 2023-02-27 2024-02-23 开元数智工程咨询集团有限公司 一种工程行业文件存储与集成的方法与系统
CN116450058B (zh) * 2023-06-19 2023-09-19 浪潮电子信息产业股份有限公司 数据转存方法、装置、异构平台、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1473300A (zh) * 2000-09-29 2004-02-04 智能网络存储接口系统和装置
WO2007100521A2 (en) * 2006-02-28 2007-09-07 Gear Six, Inc. Method and apparatus for providing high-performance and highly-scalable storage acceleration
CN105052081A (zh) * 2012-12-26 2015-11-11 科缔纳股份有限公司 通信流量处理架构和方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8539112B2 (en) 1997-10-14 2013-09-17 Alacritech, Inc. TCP/IP offload device
US7155458B1 (en) * 2002-04-05 2006-12-26 Network Appliance, Inc. Mechanism for distributed atomic creation of client-private files
US7565413B1 (en) * 2002-08-05 2009-07-21 Cisco Technology, Inc. Content request redirection from a wed protocol to a file protocol
WO2004077211A2 (en) * 2003-02-28 2004-09-10 Tilmon Systems Ltd. Method and apparatus for increasing file server performance by offloading data path processing
US7330862B1 (en) * 2003-04-25 2008-02-12 Network Appliance, Inc. Zero copy write datapath
US7272654B1 (en) * 2004-03-04 2007-09-18 Sandbox Networks, Inc. Virtualizing network-attached-storage (NAS) with a compact table that stores lossy hashes of file names and parent handles rather than full names
CN2842562Y (zh) 2005-07-27 2006-11-29 韩泽耀 网络附加存储系统芯片硬件结构及基于该系统的网络系统
CN101237400A (zh) 2008-01-24 2008-08-06 创新科存储技术(深圳)有限公司 网络附加存储服务的迁移方法及网络附加存储节点
US20110131258A1 (en) 2008-09-30 2011-06-02 Hewlett-Packard Development Company, L.P Nas-Based Multimedia File Distribution Service
US20100319044A1 (en) * 2009-06-16 2010-12-16 Seachange International, Inc. Efficient Distribution of Remote Storage Data
US9088592B1 (en) * 2011-11-08 2015-07-21 Alacritech, Inc. Network cache accelerator
US10057387B2 (en) 2012-12-26 2018-08-21 Realtek Singapore Pte Ltd Communication traffic processing architectures and methods
US10642505B1 (en) * 2013-01-28 2020-05-05 Radian Memory Systems, Inc. Techniques for data migration based on per-data metrics and memory degradation
CN103345482A (zh) 2013-06-20 2013-10-09 上海爱数软件有限公司 一种网络存储系统及其文件访问冲突处理方法
US9036283B1 (en) * 2014-01-22 2015-05-19 Western Digital Technologies, Inc. Data storage device with selective write to a first storage media or a second storage media

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1473300A (zh) * 2000-09-29 2004-02-04 智能网络存储接口系统和装置
WO2007100521A2 (en) * 2006-02-28 2007-09-07 Gear Six, Inc. Method and apparatus for providing high-performance and highly-scalable storage acceleration
CN105052081A (zh) * 2012-12-26 2015-11-11 科缔纳股份有限公司 通信流量处理架构和方法

Also Published As

Publication number Publication date
US20180314433A1 (en) 2018-11-01
EP3288232B1 (en) 2020-03-25
US11275530B2 (en) 2022-03-15
CN108028833A (zh) 2018-05-11
EP3288232A1 (en) 2018-02-28
EP3288232A4 (en) 2018-06-13
WO2017114091A1 (zh) 2017-07-06

Similar Documents

Publication Publication Date Title
CN108028833B (zh) 一种nas数据访问的方法、系统及相关设备
WO2018137217A1 (zh) 一种数据处理的系统、方法及对应装置
US20220201103A1 (en) Metadata compaction in packet coalescing
CN110837479B (zh) 数据处理方法、相关设备及计算机存储介质
CN114201421B (zh) 一种数据流处理方法、存储控制节点及可读存储介质
EP4033345A1 (en) Data access method, device, and first computer device
CN114153778A (zh) 跨网络桥接
US9172744B2 (en) Scalable storage with programmable networks
EP3862885A1 (en) Resource management method and apparatus
CN106648838B (zh) 一种资源池管理的配置方法及装置
CN109417507A (zh) 部分延迟的报文访问
CN110389711B (zh) 帮助端点设备实现sr-iov功能的方法、设备和非瞬态计算机可读介质
US20240061802A1 (en) Data Transmission Method, Data Processing Method, and Related Product
EP3796615A1 (en) Fault tolerance processing method, device, and server
US11929926B2 (en) Traffic service threads for large pools of network addresses
JP2020166838A (ja) エッジ重複排除を提供するための技術
CN111404842A (zh) 数据传输方法、装置及计算机存储介质
EP3804244A1 (en) Systems and methods for transport layer processing of server message block protocol messages
CN116049085A (zh) 一种数据处理系统及方法
CN114003342A (zh) 一种分布式存储方法、装置、电子设备及存储介质
EP3955524A1 (en) Method for managing remote storage device by means of management device
WO2014077451A1 (ko) Iscsi 스토리지 시스템을 이용한 네트워크 분산 파일 시스템 및 방법
CN114465770A (zh) 数据处理方法及相关装置
CN109088913B (zh) 请求数据的方法和负载均衡服务器
US20140359062A1 (en) Data transferring apparatus, data transferring system and non-transitory computer readable medium

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