CN105512286A - 一种读写数据免拷贝***与方法 - Google Patents
一种读写数据免拷贝***与方法 Download PDFInfo
- Publication number
- CN105512286A CN105512286A CN201510894367.7A CN201510894367A CN105512286A CN 105512286 A CN105512286 A CN 105512286A CN 201510894367 A CN201510894367 A CN 201510894367A CN 105512286 A CN105512286 A CN 105512286A
- Authority
- CN
- China
- Prior art keywords
- module
- data
- buffer pool
- common buffer
- network communication
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
本发明公开了一种读写数据免拷贝***和方法,***包括:网络通信模块、共享缓存池模块和NAS协议转换模块,网络通信模块直接将数据请求数据放入共享缓存池模块,NAS协议转换模块直接引用所述共享缓存池中的请求数据进行格式转换,所述网络通信模块直接将所述共享缓存池中格式转换后的请求数据发送至目的端,使用共享缓存池模块直接进行网络数据的缓存,网络通信模块和NAS协议转换模块可以直接使用共享缓存池模块中的数据,无需再次拷贝,实现了读写数据缓存的零拷贝,减少了网络延时,用户体验好。
Description
技术领域
本发明涉及分布式存储领域,特别是涉及一种读写数据免拷贝***与方法。
背景技术
分布式文件***具有良好的扩展性能、快速自愈能力及低廉的成本等诸多优点,但是由于分布式***的技术特点决定,客户应用只能通过网关等转换节点才能够接入***,实现网络协议的转换,一般分布式文件***使用网络附属存储NAS网关,NAS服务是存储扩展的行业标准,已经广泛的应用到各个领域,但是在NAS网关进行文件读写涉及多次数据拷贝才能完成数据的转发,造成了网络延时,影响了用户体验。
发明内容
有鉴于此,本发明的主要目的在于提供一种读写数据免拷贝***和方法,可以实现读写数据的零拷贝。
为实现上述目的,本发明提供了一种读写数据免拷贝***,包括:
网络通信模块、共享缓存池模块和NAS协议转换模块;
所述共享缓存池模块用于进行网络数据发送或接收的数据缓存;
所述网络通信模块与所述共享缓存池模块相连接,用于直接使用所述共享缓存池进行网络数据的接收或发送;
所述NAS协议转换模块与所述共享缓存池模块相连接,用于直接将所述共享缓存池模块中的网络数据进行NAS通信格式与分布式文件***通信格式之间的互相转换。
优选地,所述网络通信模块还与客户端和分布式文件***均相连接。
本发明还提供了一种读写数据免拷贝方法,包括:
网络通信模块直接将数据请求数据放入共享缓存池模块,NAS协议转换模块直接引用所述共享缓存池中的请求数据进行格式转换,所述网络通信模块直接将所述共享缓存池中格式转换后的请求数据发送至目的端。
优选地,所述数据请求包括读数据和写数据。
优选地,网络通信模块直接将数据请求数据放入共享缓存池模块,NAS协议转换模块直接引用所述共享缓存池中的请求数据进行格式转换,所述网络通信模块直接将所述共享缓存池中格式转换后的请求数据发送至目的端包括:
当网络通信模块识别到客户端的写数据请求时,将所述写数据请求放入共享缓存池模块,NAS协议转换模块直接引用所述共享缓存池模块中的所述写数据请求,将所述写数据请求的格式转换为分布式文件***通信格式,所述网络通信模块直接将所述共享缓存池模块中的格式转换后的写数据请求发送至分布式文件***;
当网络通信模块识别到客户端的读数据请求时,将所述读数据请求放入共享缓存池模块,NAS协议转换模块直接引用所述共享缓存池模块中的所述读数据请求,将所述读数据请求的格式转换为分布式文件***通信格式,所述网络通信模块直接将所述共享缓存池模块中的格式转换后的读数据请求发送至分布式文件***,当分布式文件***返回数据时,所述网络通信模块将所述返回数据放入所述共享缓存池模块,所述NAS协议转换模块直接引用所述共享缓存池模块中的所述返回数据,将所述返回数据的格式转换为NAS通信格式,所述网络通信模块直接将所述共享缓存池模块中的格式转换后的返回数据返回客户端。
优选地,网络通信模块直接将数据请求数据放入共享缓存池模块之前还包括:
初始化共享缓存池模块,加载网络通信模块,启动NAS协议转换模块。
应用本发明提供的一种读写数据免拷贝***和方法,***包括:网络通信模块、共享缓存池模块和NAS协议转换模块,网络通信模块直接将数据请求数据放入共享缓存池模块,NAS协议转换模块直接引用所述共享缓存池中的请求数据进行格式转换,所述网络通信模块直接将所述共享缓存池中格式转换后的请求数据发送至目的端,使用共享缓存池模块直接进行网络数据的缓存,网络通信模块和NAS协议转换模块可以直接使用共享缓存池模块中的数据,无需再次拷贝,实现了读写数据缓存的零拷贝,减少了网络延时,用户体验好。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明一种读写数据免拷贝***实施例的结构示意图;
图2为本发明一种读写数据免拷贝***实施例的应用结构示意图;
图3为本发明一种读写数据免拷贝***实施例的详细结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种读写数据免拷贝***,图1示出了本发读写数据面拷贝***实施例的结构示意图,包括:
网络通信模块101、共享缓存池模块102和NAS协议转换模块103;
所述共享缓存池模块102用于进行网络数据发送或接收的数据缓存;
所述网络通信模块101与所述共享缓存池模块102相连接,用于直接使用所述共享缓存池102进行网络数据的接收或发送;
所述NAS协议转换模块103与所述共享缓存池102模块相连接,用于直接将所述共享缓存池模块102中的网络数据进行NAS通信格式与分布式文件***通信格式之间的互相转换。
如图2所示,NAS网关位于客户端与分布式文件***集群节点之间,客户端可以为windows标准NAS客户端或Linux标准NAS客户端,图3为图2中NAS网关的详细结构示意图,图中可看出内核态和用户态共享缓存,网络通信模块还与客户端和分布式文件***均相连接。
本实施例中,共享缓存池模块用来直接缓存网络发送数据或网络接收数据;实现了内核态地址到用户态地址的相互映射,完成内核态到用户态的免拷贝;网络通信模块可以直接接管网卡缓存区,能够直接使用共享缓存池模块内存空间进行网络报文的接收、发送,完成网络发送报文用户态内核态的零拷贝;不连续缓存,实现NAS协议转换后数据缓存的直接引用,实现读写缓存的零拷贝;NAS协议转换模块实现标准NAS协议到分布式文件***内部通信的相互转换。
应用本实施例提供的一种读写数据免拷贝***,包括:网络通信模块、共享缓存池模块和NAS协议转换模块,网络通信模块直接将数据请求数据放入共享缓存池模块,NAS协议转换模块直接引用所述共享缓存池中的请求数据进行格式转换,所述网络通信模块直接将所述共享缓存池中格式转换后的请求数据发送至目的端,使用共享缓存池模块直接进行网络数据的缓存,网络通信模块和NAS协议转换模块可以直接使用共享缓存池模块中的数据,无需再次拷贝,实现了读写数据缓存的零拷贝,减少了网络延时,用户体验好。
本发明还提供了一种读写数据免拷贝方法,基于本发明的读写数据免拷贝***,本发明的读写数据免拷贝方法具体实施方法为:
步骤S1:初始化共享缓存池;加载网络通信模块,启动NAS协议转换模块;
步骤S1:接收NAS客户端的文件写请求,转换协议发送到后端分布式文件***集群;
具体为,当网络通信模块识别到客户端的写数据请求时,将所述写数据请求放入共享缓存池模块,NAS协议转换模块直接引用所述共享缓存池模块中的所述写数据请求,将所述写数据请求的格式转换为分布式文件***通信格式,所述网络通信模块直接将所述共享缓存池模块中的格式转换后的写数据请求发送至分布式文件***;
步骤S1:接收NAS客户端的文件读请求,转换协议后发送到后端分布式文件***集群,并将分布式文件***集群返回的数据转换为标准NAS协议格式返回。
具体为,当网络通信模块识别到客户端的读数据请求时,将所述读数据请求放入共享缓存池模块,NAS协议转换模块直接引用所述共享缓存池模块中的所述读数据请求,将所述读数据请求的格式转换为分布式文件***通信格式,所述网络通信模块直接将所述共享缓存池模块中的格式转换后的读数据请求发送至分布式文件***,当分布式文件***返回数据时,所述网络通信模块将所述返回数据放入所述共享缓存池模块,所述NAS协议转换模块直接引用所述共享缓存池模块中的所述返回数据,将所述返回数据的格式转换为NAS通信格式,所述网络通信模块直接将所述共享缓存池模块中的格式转换后的返回数据返回客户端。
本实施例中,内核态与用户态共享缓存池,实现文件读写NAS协议转换零拷贝,减少NAS协议转换的网络延时;协议转换完成必要的语义和协议适配,采用共享的数据缓存,减少数据的拷贝,实现文件缓存级别的零拷贝;
应用本实施例提供的一种读写数据免拷贝方法,网络通信模块直接将数据请求数据放入共享缓存池模块,NAS协议转换模块直接引用所述共享缓存池中的请求数据进行格式转换,所述网络通信模块直接将所述共享缓存池中格式转换后的请求数据发送至目的端,使用共享缓存池模块直接进行网络数据的缓存,网络通信模块和NAS协议转换模块可以直接使用共享缓存池模块中的数据,无需再次拷贝,实现了读写数据缓存的零拷贝,减少了网络延时,用户体验好。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于***类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的方法和***进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种读写数据免拷贝***,其特征在于,包括:
网络通信模块、共享缓存池模块和NAS协议转换模块;
所述共享缓存池模块用于进行网络数据发送或接收的数据缓存;
所述网络通信模块与所述共享缓存池模块相连接,用于直接使用所述共享缓存池进行网络数据的接收或发送;
所述NAS协议转换模块与所述共享缓存池模块相连接,用于直接将所述共享缓存池模块中的网络数据进行NAS通信格式与分布式文件***通信格式之间的互相转换。
2.根据权利要求1所述的读写数据免拷贝***,其特征在于,所述网络通信模块还与客户端和分布式文件***均相连接。
3.一种读写数据免拷贝方法,其特征在于,包括:
网络通信模块直接将数据请求数据放入共享缓存池模块,NAS协议转换模块直接引用所述共享缓存池中的请求数据进行格式转换,所述网络通信模块直接将所述共享缓存池中格式转换后的请求数据发送至目的端。
4.根据权利要求3所述的读写数据免拷贝方法,其特征在于,所述数据请求包括读数据和写数据。
5.根据权利要求4所述的读写数据免拷贝方法,其特征在于,网络通信模块直接将数据请求数据放入共享缓存池模块,NAS协议转换模块直接引用所述共享缓存池中的请求数据进行格式转换,所述网络通信模块直接将所述共享缓存池中格式转换后的请求数据发送至目的端包括:
当网络通信模块识别到客户端的写数据请求时,将所述写数据请求放入共享缓存池模块,NAS协议转换模块直接引用所述共享缓存池模块中的所述写数据请求,将所述写数据请求的格式转换为分布式文件***通信格式,所述网络通信模块直接将所述共享缓存池模块中的格式转换后的写数据请求发送至分布式文件***;
当网络通信模块识别到客户端的读数据请求时,将所述读数据请求放入共享缓存池模块,NAS协议转换模块直接引用所述共享缓存池模块中的所述读数据请求,将所述读数据请求的格式转换为分布式文件***通信格式,所述网络通信模块直接将所述共享缓存池模块中的格式转换后的读数据请求发送至分布式文件***,当分布式文件***返回数据时,所述网络通信模块将所述返回数据放入所述共享缓存池模块,所述NAS协议转换模块直接引用所述共享缓存池模块中的所述返回数据,将所述返回数据的格式转换为NAS通信格式,所述网络通信模块直接将所述共享缓存池模块中的格式转换后的返回数据返回客户端。
6.根据权利要求3所述的读写数据免拷贝方法,其特征在于,网络通信模块直接将数据请求数据放入共享缓存池模块之前还包括:
初始化共享缓存池模块,加载网络通信模块,启动NAS协议转换模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510894367.7A CN105512286B (zh) | 2015-11-27 | 2015-11-27 | 一种读写数据免拷贝***与方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510894367.7A CN105512286B (zh) | 2015-11-27 | 2015-11-27 | 一种读写数据免拷贝***与方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105512286A true CN105512286A (zh) | 2016-04-20 |
CN105512286B CN105512286B (zh) | 2019-09-24 |
Family
ID=55720268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510894367.7A Active CN105512286B (zh) | 2015-11-27 | 2015-11-27 | 一种读写数据免拷贝***与方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105512286B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254434A (zh) * | 2016-07-28 | 2016-12-21 | 武汉华星光电技术有限公司 | 一种网络附属存储设备与方法 |
CN109274774A (zh) * | 2018-11-16 | 2019-01-25 | 郑州云海信息技术有限公司 | 一种数据存储方法、装置和计算机可读存储介质 |
CN110121114A (zh) * | 2018-02-07 | 2019-08-13 | 华为技术有限公司 | 发送流数据的方法及数据发送设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1647054A (zh) * | 2002-06-19 | 2005-07-27 | 艾利森电话股份有限公司 | 网络设备驱动体系结构 |
CN102082698A (zh) * | 2009-11-26 | 2011-06-01 | 上海大学 | 基于改进型零拷贝技术的高性能内核的网络数据处理*** |
US9092426B1 (en) * | 2011-01-03 | 2015-07-28 | Applied Micro Circuts Corporation | Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing |
-
2015
- 2015-11-27 CN CN201510894367.7A patent/CN105512286B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1647054A (zh) * | 2002-06-19 | 2005-07-27 | 艾利森电话股份有限公司 | 网络设备驱动体系结构 |
CN102082698A (zh) * | 2009-11-26 | 2011-06-01 | 上海大学 | 基于改进型零拷贝技术的高性能内核的网络数据处理*** |
US9092426B1 (en) * | 2011-01-03 | 2015-07-28 | Applied Micro Circuts Corporation | Zero-copy direct memory access (DMA) network-attached storage (NAS) file system block writing |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106254434A (zh) * | 2016-07-28 | 2016-12-21 | 武汉华星光电技术有限公司 | 一种网络附属存储设备与方法 |
CN110121114A (zh) * | 2018-02-07 | 2019-08-13 | 华为技术有限公司 | 发送流数据的方法及数据发送设备 |
CN110121114B (zh) * | 2018-02-07 | 2021-08-27 | 华为技术有限公司 | 发送流数据的方法及数据发送设备 |
CN109274774A (zh) * | 2018-11-16 | 2019-01-25 | 郑州云海信息技术有限公司 | 一种数据存储方法、装置和计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105512286B (zh) | 2019-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020077680A1 (zh) | 数据传输方法、***以及代理服务器 | |
CN113485823A (zh) | 数据传输方法、装置、网络设备、存储介质 | |
CN102843426B (zh) | 基于智能父节点的Web缓存资源共享***和方法 | |
CN103220219B (zh) | 一种报文转发方法和设备 | |
CN103902486A (zh) | 一种远端直接内存访问实现方法、装置及*** | |
CN105512286A (zh) | 一种读写数据免拷贝***与方法 | |
CN105141603A (zh) | 通信数据传输方法及*** | |
CN104202391A (zh) | 共享***地址空间的非紧耦合***间的rdma通信方法 | |
CN103312571A (zh) | 一种发现设备的方法及装置 | |
CN109194721A (zh) | 一种异步的rdma通信内存动态管理方法及*** | |
WO2020248996A1 (zh) | QoS处理及控制方法及网络接口控制器 | |
CN105007329A (zh) | 一种基于PCIe的网络共享存储***及其存储方法 | |
JP7046983B2 (ja) | パケット伝送方法及び装置 | |
CN107579929B (zh) | 一种可靠连接通信队列对的设置方法、***及相关装置 | |
CN105450585A (zh) | 一种信息传输方法及装置 | |
CN105052106A (zh) | 用于接收和传输互联网协议(ip)数据包的方法和*** | |
CN104038569A (zh) | 一种基于地址映射的集群通信模型 | |
CN105786398A (zh) | 存储器映射方法和存储器映射*** | |
CN111698274B (zh) | 数据处理方法及装置 | |
CN102110074B (zh) | 多核处理器及流分类控制装置和方法 | |
WO2016015496A1 (zh) | 一种网络互通的方法及设备 | |
CN104580010A (zh) | 通信队列处理方法、装置及*** | |
CN106060164B (zh) | 一种可伸缩的云服务器***及其通信方法 | |
CN105281944A (zh) | 网络协议地址的设定方法及服务管理*** | |
CN106330787B (zh) | 一种数据包传输方法、设备及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |