一种基于小文件的自动化聚合打包方法及系统技术方案

技术编号:20160298 阅读:26 留言:0更新日期:2019-01-19 00:13
本发明专利技术涉及一种基于小文件的自动化聚合打包方法系统,其特征在于,包括以下步骤:S1:服务端与客户端之间建立链接关系;S2:对临时文件中的子目录进行分配;S3:执行聚合打包任务。

【技术实现步骤摘要】
一种基于小文件的自动化聚合打包方法及系统
本专利技术属于文件系统设计
,具体涉及一种基于小文件的自动化聚合打包方法及系统。
技术介绍
分布式文件系统具有良好的可扩展性和容错性,能够满足海量数据存储的需求。但是,在很多应用场合除了要求支持海量大文件的存储,还需要支持海量小文件的存储,然后存储海量小文件时,支持的文件数量少、文件读取效率低。故而提出以目录为单位对文件进行聚合存储,可以很好地解决每个目录包含众多文件的海量小文件的高效存储和实时访问。但是,由于某些小文件场景的项目现场业务初期并没有使用聚合功能,随着业务量的增加,集群所受压力逐渐增加。此为现有技术的不足之处。因此,针对现有技术中的上述缺陷,提供设计一种基于小文件的自动化聚合打包方法及系统;以解决现有技术中的上述缺陷,是非常有必要的。
技术实现思路
本专利技术的目的在于,针对上述现有技术存在的缺陷,提供设计一种基于小文件的自动化聚合打包方法及系统,以解决上述技术问题。为实现上述目的,本专利技术给出以下技术方案:一种基于小文件的自动化聚合打包方法,其特征在于,包括以下步骤:S1:服务端与客户端之间建立链接关系;S2:对临时文件中的子目录进行分配;S3:执行聚合打包任务。作为优选,所述步骤S1具体包括以下步骤:S1.1:服务端根据指定的客户端个数,启动socket服务等待客户端的链接;S1.2:客户端和服务端建立socket服务连接。作为优选,所述步骤S2具体包括以下步骤:S2.1:服务端与客户端建立连接后,服务端将临时文件中的所有子目录进行平均分配,并通过socket发送至各个客户端;S2.2:客户端根据指定的进程平均分配子目录。作为优选,所述步骤S3具体包括以下步骤:S3.1:服务端子进程聚合打包零散文件;S3.2:客户端进行聚合打包操作。本专利技术还提供一种基于小文件的自动化聚合打包系统,其特征在于,包括:通信关系建立模块:服务端与客户端之间建立链接关系;子目录分配模块:对临时文件中的子目录进行分配;聚合打包模块:执行聚合打包任务。作为优选,所述的通信关系建立模块具体包括:服务端根据指定的客户端个数,启动socket服务等待客户端的链接;客户端和服务端建立socket服务连接。作为优选,所述的子目录分配模块具体包括:服务端与客户端建立连接后,服务端将临时文件中的所有子目录进行平均分配,并通过socket发送至各个客户端;客户端根据指定的进程平均分配子目录。作为优选,所述的聚合打包模块具体包括:服务端子进程聚合打包零散文件;客户端进行聚合打包操作。本专利技术的有益效果在于,将原始的普通文件,转化为聚合文件,使用聚合功能减少OSD压力、增加顺序读取性能等优化,提高文件读取性能。此外,本专利技术设计原理可靠,结构简单,具有非常广泛的应用前景。由此可见,本专利技术与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。附图说明图1是本专利技术提供的一种基于小文件的自动化聚合打包方法的原理框图。图2是本专利技术提供的一种基于小文件的自动化聚合打包方法的流程图。图3是本专利技术提供的一种基于小文件的自动化聚合打包系统的原理框图。具体实施方式下面结合附图并通过具体实施例对本专利技术进行详细阐述,以下实施例是对本专利技术的解释,而本专利技术并不局限于以下实施方式。实施例1:如图1和2所示,本专利技术提供的一种基于小文件的自动化聚合打包方法,其特征在于,包括以下步骤:S1:服务端与客户端之间建立链接关系;S2:对临时文件中的子目录进行分配;S3:执行聚合打包任务。本实施例中,所述步骤S1具体包括以下步骤:S1.1:服务端根据指定的客户端个数,启动socket服务等待客户端的链接;S1.2:客户端和服务端建立socket服务连接。本实施例中,所述步骤S2具体包括以下步骤:S2.1:服务端与客户端建立连接后,服务端将临时文件中的所有子目录进行平均分配,并通过socket发送至各个客户端;S2.2:客户端根据指定的进程平均分配子目录。本实施例中,所述步骤S3具体包括以下步骤:S3.1:服务端子进程聚合打包零散文件;S3.2:客户端进行聚合打包操作。本实施例中:客户端执行命令:./icfs_tools_aggpack.py–c–ixx.xx.xx.xx–tx;-c是指以客户端运行此程序;-t后跟多线程个数;-i后跟需与服务端网络互通的publicIP;执行上述命令行后,首先会对命令行进行解析,通过-c和-s来判断是server端和客户端;客户端有两个参数,合法则继续,不合法则退出并输出提示:输入合法字符;解析目录,如果有子目录则继续解析,直至解析遍历完所有子目录;对所有文件进行均分处理;客户端多线程处理非聚合小文件,进行文件聚合打包。服务端执行命令:./icfs_tools_aggpack.py–s–ixx.xx.xx.xx–nx–d/mnt/icfs/x–tx;-s是指以服务端运行此程序;-t后跟多线程个数;-i后跟需与服务端网络互通的publicIP;-n后跟客户端个数;-d后跟需要聚合的目录;执行上述命令行后,首先会对命令行进行解析,通过-c和-s来判断是server端和客户端;客户端有四个参数,判定这四个参数是否合法,合法则继续,不合法则退出并输出提示:输入合法字符;解析目录,如果有子目录则继续解析,直至解析遍历完所有子目录;服务端主线程进行监听,如果客户端的个数小于设定n,则继续监听,不执行聚合打包;如果客户端个数等于设定的n,则将目录进行均分,并将目录依次发送到客户端;客户端对指定目录进行递归查找所有的非聚合文件,将扫描到的非聚合文件整理至临时文件中,计算出所有客户端任务的起始位置,并开始进行多进程处理文件。实施例2:如图3所示,本专利技术提供的一种基于小文件的自动化聚合打包系统,其特征在于,包括:通信关系建立模块:服务端与客户端之间建立链接关系;子目录分配模块:对临时文件中的子目录进行分配;聚合打包模块:执行聚合打包任务。本实施例中,所述的通信关系建立模块具体包括:服务端根据指定的客户端个数,启动socket服务等待客户端的链接;客户端和服务端建立socket服务连接。本实施例中,所述的子目录分配模块具体包括:服务端与客户端建立连接后,服务端将临时文件中的所有子目录进行平均分配,并通过socket发送至各个客户端;客户端根据指定的进程平均分配子目录。本实施例中,所述的聚合打包模块具体包括:服务端子进程聚合打包零散文件;客户端进行聚合打包操作。以上公开的仅为本专利技术的优选实施方式,但本专利技术并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本专利技术原理前提下所作的若干改进和润饰,都应落在本专利技术的保护范围内。本文档来自技高网...

【技术保护点】
1.一种基于小文件的自动化聚合打包方法,其特征在于,包括以下步骤:S1:服务端与客户端之间建立链接关系;S2:对临时文件中的子目录进行分配;S3:执行聚合打包任务。

【技术特征摘要】
1.一种基于小文件的自动化聚合打包方法,其特征在于,包括以下步骤:S1:服务端与客户端之间建立链接关系;S2:对临时文件中的子目录进行分配;S3:执行聚合打包任务。2.根据权利要求1所述的一种基于小文件的自动化聚合打包方法,其特征在于,所述步骤S1具体包括以下步骤:S1.1:服务端根据指定的客户端个数,启动socket服务等待客户端的链接;S1.2:客户端和服务端建立socket服务连接。3.根据权利要求1或2所述的一种基于小文件的自动化聚合打包方法,其特征在于,所述步骤S2具体包括以下步骤:S2.1:服务端与客户端建立连接后,服务端将临时文件中的所有子目录进行平均分配,并通过socket发送至各个客户端;S2.2:客户端根据指定的进程平均分配子目录。4.根据权利要求3所述的一种基于小文件的自动化聚合打包方法,其特征在于,所述步骤S3具体包括以下步骤:S3.1:服务端子进程聚合打包零散文件;S3.2:客户...

【专利技术属性】
技术研发人员:李婷婷李佳颖刘颖李玲侠
申请(专利权)人:浪潮电子信息产业股份有限公司
类型:发明
国别省市:山东,37

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

1