CN111770054A - 一种针对smb协议读请求的交互加速方法与系统 - Google Patents
一种针对smb协议读请求的交互加速方法与系统 Download PDFInfo
- Publication number
- CN111770054A CN111770054A CN202010471169.0A CN202010471169A CN111770054A CN 111770054 A CN111770054 A CN 111770054A CN 202010471169 A CN202010471169 A CN 202010471169A CN 111770054 A CN111770054 A CN 111770054A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- layer
- samba
- client
- 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.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 230000001133 acceleration Effects 0.000 title claims abstract description 18
- 230000003993 interaction Effects 0.000 title claims description 15
- 241001362551 Samba Species 0.000 claims abstract description 45
- 230000004044 response Effects 0.000 claims abstract description 17
- 230000008569 process Effects 0.000 abstract description 6
- 230000002452 interceptive effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/26—Special purpose or proprietary protocols or architectures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种针对SMB协议读请求的交互加速方法与系统,本发明在服务端samba程序向客户端发送读响应时,直接访问lib层内存结构bufferlist结构中数据所在的内存空间,不需要额外的内存拷贝过程,将读取的数据发送给客户端,发送完成后通知lib层释放对应的bufferlist,通过此种方式能够降低服务端samba程序对读请求的处理耗时,从而提高客户端获取数据的性能。
Description
技术领域
本发明涉及服务器故障诊断技术领域,特别是一种针对SMB协议读请求的交互加速方法与系统。
背景技术
Samba(Server Messages Block,信息服务块)是在Linux系统上实现SMB协议的一个软件,运行在服务端的程序,能够响应处理客户端发送的SMB协议请求,服务端可以通过samba软件,将本地存储资源映射到客户端,为客户端提供网络存储服务。
客户端访问存储数据时,需要跟服务端建立samba连接,连接成功后,服务端会产生一个smbd子进程,该子进程会挂载后端存储资源,建立lib实例,后续该客户端所有SMB请求都由该smbd子进程处理,且通过该lib实例访问存储资源。客户端读取存储系统数据流如图1所示,服务端smbd子进程收到SMB协议读请求时,根据SMB请求中读取数据的偏移量和大小信息,分配相应大小的内存空间(buffer)来保存读取的数据,然后调用icfs_read接口来读取存储系统中的数据,icfs_read操作首先将数据读取到lib层数据内存结构bufferlist中,所有数据读取完成后,将读取的数据通过系统接口memcopy拷贝到samba层之前分配的内存空间中,samba层通过发送SMB协议读响应请求,将内存空间中的数据发送给客户端,整个读请求处理过程中,当读取数据越大时,memcopy操作将占用很大耗时。
发明内容
本发明的目的是提供一种针对SMB协议读请求的交互加速方法与系统,旨在解决现有技术中SMB协议读请求存在内存拷贝耗时长的问题,实现降低读请求的处理耗时,提高客户端获取数据的性能。
为达到上述技术目的,本发明提供了一种针对SMB协议读请求的交互加速方法,所述方法包括以下操作:
服务端samba程序接收客户端SMB协议读请求,解析出所需读取的文件信息;
根据请求中所需读取的文件信息,调用icfs_read接口,从存储系统lib实例中读取数据,并将数据保存到内存结构bufferlist中;
去除lib层内存拷贝逻辑,将内存结构bufferlist中数据所在的内存空间的起始指针以及数据长度返回给samba层;
samba层向客户端发送读响应,根据起始指针以及数据长度访问bufferlist中数据所在的内存空间,将数据发送给客户端。
优选地,所述所需读取的文件信息包括需要读取的文件、数据偏移量以及数据大小。
优选地,所述内存结构bufferlist中的数据在数据发送至客户端后,由samba层通知进行释放。
本发明还提供了一种针对SMB协议读请求的交互加速系统,所述系统包括:
读请求解析模块,用于服务端samba程序接收客户端SMB协议读请求,解析出所需读取的文件信息;
lib层数据读取模块,用于根据请求中所需读取的文件信息,调用icfs_read接口,从存储系统lib实例中读取数据,并将数据保存到内存结构bufferlist中;
数据指针返回模块,用于去除lib层内存拷贝逻辑,将内存结构bufferlist中数据所在的内存空间的起始指针以及数据长度返回给samba层;
数据响应发送模块,用于samba层向客户端发送读响应,根据起始指针以及数据长度访问bufferlist中数据所在的内存空间,将数据发送给客户端。
优选地,所述所需读取的文件信息包括需要读取的文件、数据偏移量以及数据大小。
优选地,所述内存结构bufferlist中的数据在数据发送至客户端后,由samba层通知进行释放。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
与现有技术相比,本发明在服务端samba程序向客户端发送读响应时,直接访问lib层内存结构bufferlist结构中数据所在的内存空间,不需要额外的内存拷贝过程,将读取的数据发送给客户端,发送完成后通知lib层释放对应的bufferlist,通过此种方式能够降低服务端samba程序对读请求的处理耗时,从而提高客户端获取数据的性能。
附图说明
图1为现有技术中所提供的SMB读请求处理逻辑示意图;
图2为本发明实施例中所提供的一种针对SMB协议读请求的交互加速方法流程图;
图3为本发明实施例中所提供的改进后的SMB读请求处理逻辑示意图;
图4为本发明实施例中所提供的一种针对SMB协议读请求的交互加速系统框图。
具体实施方式
为了能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
下面结合附图对本发明实施例所提供的一种针对SMB协议读请求的交互加速方法与系统进行详细说明。
如图2所示,本发明公开了一种针对SMB协议读请求的交互加速方法,所述方法包括以下操作:
服务端samba程序接收客户端SMB协议读请求,解析出所需读取的文件信息;
根据请求中所需读取的文件信息,调用icfs_read接口,从存储系统lib实例中读取数据,并将数据保存到内存结构bufferlist中;
去除lib层内存拷贝逻辑,将内存结构bufferlist中数据所在的内存空间的起始指针以及数据长度返回给samba层;
samba层向客户端发送读响应,根据起始指针以及数据长度访问bufferlist中数据所在的内存空间,将数据发送给客户端。
本发明实施例为了提升samba软件程序读性能,对原有读请求处理流程中的lib层memcopy逻辑进行优化。
原有samba层和lib层各自的内存管理是独立的,各自内存申请和释放所需内存空间,另外,bufferlist内存结构为lib层私有,smaba层无法直接访问bufferlist中的数据,因此需要一次内存拷贝将bufferlist中的数据拷贝到内存空间中供samba层访问。
对服务端samba程序对读请求流程中lib层内存拷贝逻辑进行优化,去除lib层内存拷贝逻辑,将内存结构bufferlist中对应数据的起始地址以及数据大小传递给samba层,且暂时不释放bufferlist内存结构,samba层向客户端发送读响应时,根据上述起始地址以及数据大小,直接访问bufferlist内存结构中数据所在的内存空间,将读取的数据发送到客户端,发送完成后通知lib层释放对应的bufferlist。
如图3所示,服务端samba程序接收到客户端SMB协议读请求时,解析出需要读取的文件、数据偏移量和数据大小信息,根据请求中包含的读取数据在对应文件中的偏移量以及大小,调用icfs_read接口,从存储系统lib实例中读取数据,并将数据保存到内存结构bufferlist中,并将其中数据所在的内存空间的起始指针以及数据长度返回给samba层,samba层向客户端发送读响应时,根据上述起始地址以及数据大小,直接访问内存结构bufferlist中所在的内存空间,将读取的数据发送给客户端,发送完成后通知lib层释放对应的bufferlist。
本发明实施例在服务端samba程序向客户端发送读响应时,直接访问lib层内存结构bufferlist结构中数据所在的内存空间,不需要额外的内存拷贝过程,将读取的数据发送给客户端,发送完成后通知lib层释放对应的bufferlist,通过此种方式能够降低服务端samba程序对读请求的处理耗时,从而提高客户端获取数据的性能。
如图4所示,本发明实施例还公开了一种针对SMB协议读请求的交互加速系统,所述系统包括:
读请求解析模块,用于服务端samba程序接收客户端SMB协议读请求,解析出所需读取的文件信息;
lib层数据读取模块,用于根据请求中所需读取的文件信息,调用icfs_read接口,从存储系统lib实例中读取数据,并将数据保存到内存结构bufferlist中;
数据指针返回模块,用于去除lib层内存拷贝逻辑,将内存结构bufferlist中数据所在的内存空间的起始指针以及数据长度返回给samba层;
数据响应发送模块,用于samba层向客户端发送读响应,根据起始指针以及数据长度访问bufferlist中数据所在的内存空间,将数据发送给客户端。
对服务端samba程序对读请求流程中lib层内存拷贝逻辑进行优化,去除lib层内存拷贝逻辑,将内存结构bufferlist中对应数据的起始地址以及数据大小传递给samba层,且暂时不释放bufferlist内存结构,samba层向客户端发送读响应时,根据上述起始地址以及数据大小,直接访问bufferlist内存结构中数据所在的内存空间,将读取的数据发送到客户端,发送完成后通知lib层释放对应的bufferlist。
服务端samba程序接收到客户端SMB协议读请求时,解析出需要读取的文件、数据偏移量和数据大小信息,根据请求中包含的读取数据在对应文件中的偏移量以及大小,调用icfs_read接口,从存储系统lib实例中读取数据,并将数据保存到内存结构bufferlist中,并将其中数据所在的内存空间的起始指针以及数据长度返回给samba层,samba层向客户端发送读响应时,根据上述起始地址以及数据大小,直接访问内存结构bufferlist中所在的内存空间,将读取的数据发送给客户端,发送完成后通知lib层释放对应的bufferlist。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (6)
1.一种针对SMB协议读请求的交互加速方法,其特征在于,所述方法包括以下操作:
服务端samba程序接收客户端SMB协议读请求,解析出所需读取的文件信息;
根据请求中所需读取的文件信息,调用icfs_read接口,从存储系统lib实例中读取数据,并将数据保存到内存结构bufferlist中;
去除lib层内存拷贝逻辑,将内存结构bufferlist中数据所在的内存空间的起始指针以及数据长度返回给samba层;
samba层向客户端发送读响应,根据起始指针以及数据长度访问bufferlist中数据所在的内存空间,将数据发送给客户端。
2.根据权利要求1所述的一种针对SMB协议读请求的交互加速方法,其特征在于,所述所需读取的文件信息包括需要读取的文件、数据偏移量以及数据大小。
3.根据权利要求1所述的一种针对SMB协议读请求的交互加速方法,其特征在于,所述内存结构bufferl ist中的数据在数据发送至客户端后,由samba层通知进行释放。
4.一种针对SMB协议读请求的交互加速系统,其特征在于,所述系统包括:
读请求解析模块,用于服务端samba程序接收客户端SMB协议读请求,解析出所需读取的文件信息;
lib层数据读取模块,用于根据请求中所需读取的文件信息,调用icfs_read接口,从存储系统lib实例中读取数据,并将数据保存到内存结构bufferlist中;
数据指针返回模块,用于去除lib层内存拷贝逻辑,将内存结构bufferlist中数据所在的内存空间的起始指针以及数据长度返回给samba层;
数据响应发送模块,用于samba层向客户端发送读响应,根据起始指针以及数据长度访问bufferlist中数据所在的内存空间,将数据发送给客户端。
5.根据权利要求4所述的一种针对SMB协议读请求的交互加速系统,其特征在于,所述所需读取的文件信息包括需要读取的文件、数据偏移量以及数据大小。
6.根据权利要求4所述的一种针对SMB协议读请求的交互加速系统,其特征在于,所述内存结构bufferl ist中的数据在数据发送至客户端后,由samba层通知进行释放。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010471169.0A CN111770054A (zh) | 2020-05-28 | 2020-05-28 | 一种针对smb协议读请求的交互加速方法与系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010471169.0A CN111770054A (zh) | 2020-05-28 | 2020-05-28 | 一种针对smb协议读请求的交互加速方法与系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111770054A true CN111770054A (zh) | 2020-10-13 |
Family
ID=72719608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010471169.0A Withdrawn CN111770054A (zh) | 2020-05-28 | 2020-05-28 | 一种针对smb协议读请求的交互加速方法与系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111770054A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445620A (zh) * | 2020-11-30 | 2021-03-05 | 苏州浪潮智能科技有限公司 | 一种smb协议写入性能的优化方法、装置及可读存储介质 |
CN112463072A (zh) * | 2020-12-11 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种基于samba软件读写文件操作的客户端反馈方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130104111A (ko) * | 2012-03-13 | 2013-09-25 | 주식회사 히타치엘지 데이터 스토리지 코리아 | 나스에서 데이터 처리 방법 |
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 |
CN107480150A (zh) * | 2016-06-07 | 2017-12-15 | 阿里巴巴集团控股有限公司 | 一种文件加载方法和装置 |
CN107734026A (zh) * | 2017-10-11 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种网络附加存储集群的设计方法、装置及设备 |
CN107800695A (zh) * | 2017-10-17 | 2018-03-13 | 郑州云海信息技术有限公司 | 基于Samba协议的文件访问方法、装置、系统 |
CN108900607A (zh) * | 2018-06-28 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种smb协议请求的处理方法、装置及服务器 |
-
2020
- 2020-05-28 CN CN202010471169.0A patent/CN111770054A/zh not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
KR20130104111A (ko) * | 2012-03-13 | 2013-09-25 | 주식회사 히타치엘지 데이터 스토리지 코리아 | 나스에서 데이터 처리 방법 |
CN107480150A (zh) * | 2016-06-07 | 2017-12-15 | 阿里巴巴集团控股有限公司 | 一种文件加载方法和装置 |
CN107734026A (zh) * | 2017-10-11 | 2018-02-23 | 郑州云海信息技术有限公司 | 一种网络附加存储集群的设计方法、装置及设备 |
CN107800695A (zh) * | 2017-10-17 | 2018-03-13 | 郑州云海信息技术有限公司 | 基于Samba协议的文件访问方法、装置、系统 |
CN108900607A (zh) * | 2018-06-28 | 2018-11-27 | 郑州云海信息技术有限公司 | 一种smb协议请求的处理方法、装置及服务器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112445620A (zh) * | 2020-11-30 | 2021-03-05 | 苏州浪潮智能科技有限公司 | 一种smb协议写入性能的优化方法、装置及可读存储介质 |
CN112445620B (zh) * | 2020-11-30 | 2022-12-27 | 苏州浪潮智能科技有限公司 | 一种smb协议写入性能的优化方法、装置及可读存储介质 |
CN112463072A (zh) * | 2020-12-11 | 2021-03-09 | 苏州浪潮智能科技有限公司 | 一种基于samba软件读写文件操作的客户端反馈方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108829713B (zh) | 分布式缓存系统、缓存同步方法和装置 | |
CN111949568B (zh) | 一种报文处理方法、装置及网络芯片 | |
CN110737388A (zh) | 数据预读方法、客户端、服务器以及文件系统 | |
CN112486913B (zh) | 一种基于集群环境下的日志异步存储方法和设备 | |
CN111770054A (zh) | 一种针对smb协议读请求的交互加速方法与系统 | |
CN113626184A (zh) | 一种超融合性能优化方法、装置及设备 | |
CN111475759A (zh) | 一种消息推送平台、方法、装置、服务器和存储介质 | |
WO2017032152A1 (zh) | 将数据写入存储设备的方法及存储设备 | |
CA3129982A1 (en) | Method and system for accessing distributed block storage system in kernel mode | |
CN111371585A (zh) | 用于cdn节点的配置方法及装置 | |
CN113179327A (zh) | 基于大容量内存的高并发协议栈卸载方法、设备、介质 | |
CN109857545A (zh) | 一种数据传输方法及装置 | |
CN115103036A (zh) | 一种高效的tcp/ip数据报处理方法及系统 | |
CN113127139A (zh) | 一种基于数据面开发套件dpdk的内存分配方法和装置 | |
CN109274721B (zh) | 一种基于虚拟磁盘映射的LAN-free传输方法及系统 | |
CN114840354A (zh) | 实现进程间高效处理数据请求的方法及系统 | |
CN114584618A (zh) | 信息交互方法、装置、设备、存储介质和系统 | |
CN114218317B (zh) | 进度信息管控方法、微服务装置、电子设备及存储介质 | |
CN114138371B (zh) | 配置动态加载方法、装置及计算机设备、存储介质 | |
CN115576654A (zh) | 一种请求处理方法、装置、设备及存储介质 | |
CN115460300A (zh) | 数据处理方法、toe硬件及计算机可读存储介质 | |
CN111459819A (zh) | 软件测试方法及装置、电子设备、计算机可读介质 | |
CN112181737A (zh) | 消息处理方法、装置、电子设备及介质 | |
CN114285744A (zh) | 配置信息的更新方法、装置、服务器及存储介质 | |
CN114900485B (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 | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20201013 |