一种提高Samba处理大文件写性能的方法及系统技术方案

技术编号:24683231 阅读:35 留言:0更新日期:2020-06-27 07:55
本申请公开了一种提高Samba处理大文件写性能的方法及系统,该方法包括:在CIFS客户端对Samba服务端挂载一网络映射盘,然后根据所获取的SMB报文,确定待写入ICFS文件系统共享目录的写消息,然后对写消息按页对齐分配空间,分配空间后将SMB头部新的偏移位置传递至请求封装过程,建立SMB报文和请求对象之间的映射关系,在SMB动态数据往前偏移指定长度处写入一特征数据,最后调用ICFS库接口,下层应用处理完毕后根据特征数据释放以上建立的空间。该系统包括:网络映射盘挂载模块、确认模块、内存空间分配模块、映射关系建立模块、特征数据写入模块、传递模块和释放模块。通过本申请,能够有效提高客户端对大文件的写性能,进而提高Samba服务端的数据处理效率。

A method and system to improve the write performance of samba in processing large files

【技术实现步骤摘要】
一种提高Samba处理大文件写性能的方法及系统
本申请涉及服务器信息处理
,特别是涉及一种提高Samba处理大文件写性能的方法及系统。
技术介绍
在ICFS(InspurClusterFileSystem,浪潮分布式文件系统)集群提供SMB(ServerMessageBlock,一种用于不同网络节点间的共享传输协议)协议的环境中,通常采用Samba(用于实现SMB协议,是一种从Linux服务端向Windows客户端提供共享服务的应用)来实现。其中,SMB协议最初由IBM公司开发,微软对其进行改进后作为CIFS(CommonInternetFileSystem,通用网络文件系统)协议在Windows系统中广泛应用于文件共享服务,再后来进一步提出升级版的SMB2.0和SMB3.0协议。目前Linux上也根据该协议规范实现了对应的Samba服务端和CIFS内核客户端。在Linux系统或者其类Unix系统当中可以通过Samba服务来实现SMB功能。在ICFS文件系统中,如何Samba如何对数据进行分配和写数据,是个重要问题。<br>目前,在Sam本文档来自技高网...

【技术保护点】
1.一种提高Samba处理大文件写性能的方法,其特征在于,所述方法包括:/n在CIFS客户端对Samba服务端挂载一网络映射盘,并向所述网络映射盘中写入一个大文件;/n根据所获取的SMB报文,确定待写入ICFS文件系统共享目录的写消息,所述SMB报文包括:SMB头部、SMB固定数据以及SMB动态数据;/n对所述写消息按页对齐分配空间,其中,将所述SMB头部和SMB固定数据置于前一个4KB空间的末尾,将所述SMB动态数据置于下一个4KB空间的开头;/n将所述SMB头部新的偏移位置传递至请求封装过程,建立所述SMB报文与请求对象的映射关系;/n在所述SMB动态数据往前偏移指定长度处写入一特征数据,...

【技术特征摘要】
1.一种提高Samba处理大文件写性能的方法,其特征在于,所述方法包括:
在CIFS客户端对Samba服务端挂载一网络映射盘,并向所述网络映射盘中写入一个大文件;
根据所获取的SMB报文,确定待写入ICFS文件系统共享目录的写消息,所述SMB报文包括:SMB头部、SMB固定数据以及SMB动态数据;
对所述写消息按页对齐分配空间,其中,将所述SMB头部和SMB固定数据置于前一个4KB空间的末尾,将所述SMB动态数据置于下一个4KB空间的开头;
将所述SMB头部新的偏移位置传递至请求封装过程,建立所述SMB报文与请求对象的映射关系;
在所述SMB动态数据往前偏移指定长度处写入一特征数据,所述特征数据用于指示下层应用处理完毕后释放所述SMB动态数据所在的内存;
调用ICFS库接口,将所述SMB动态数据的偏移位置和数据长度传递至下层应用;
下层应用处理完毕后,根据所述特征数据,释放用于写消息动态分配的空间。


2.根据权利要求1所述的一种提高Samba处理大文件写性能的方法,其特征在于,所述根据所获取的SMB报文,确定待写入ICFS文件系统共享目录的写消息的方法,包括:
读取NETBIOS头部数据,提取所述SMB报文的长度;
读取所述SMB头部,提取操作码;
当所述操作码为写操作码时,进一步提取目录树ID;
根据所述目录树ID,获取Samba目录树对象的VFS操作句柄信息;
判断所述VFS操作句柄信息中文件处理接口的数量是否≥2;
如果是,判定所述SMB报文请求写入的是ICFS文件系统共享目录。


3.根据权利要求1所述的一种提高Samba处理大文件写性能的方法,其特征在于,对所述写消息按页对齐分配空间的方法,包括:
临时保存所述SMB头部;
根据所述写消息的SMB固定数据,确定动态数据长度;
根据动态数据长度,按照页对齐方式分配内存空间,且内存空间长度为:4KB+动态数据长度;
将临时保存的所述SMB头部复制到所述内存空间;
从Socket缓冲区读取SMB固定数据和SMB动态数据,且SMB固定数据和SMB动态数据的长度为48B+动态数据长度。


4.根据权利要求1所述的一种提高Samba处理大文件写性能的方法,其特征在于,在CIFS客户端对Samba服务端挂载一网络映射盘,并向所述网络映射盘中写入一个大文件之后,所述方法还包括:建立Samba服务端和CIFS客户端之间的通信连接。


5.根据权利要求4所述的一种提高Samba处理大文件写性能的方法,其特征在于,所述建立Samba服务端和CIFS客户端之间的通信连接,包括:
对SMB报文所支持的方言版本进行判断;
在Samba服务端和CIFS客户端之间建立会话;
在Samba服务端和CIFS客户端之间建立目录树连接。


6.根据权利要求1-5中任一所述的一种提高Samba处理大文件写...

【专利技术属性】
技术研发人员:李世杰张端
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1