收藏 分享(赏)

基于fastNTsync算法的海量小文件同步优化方法研究.pdf

上传人:爱文献爱资料 文档编号:21787742 上传时间:2024-05-12 格式:PDF 页数:5 大小:2MB
下载 相关 举报
基于fastNTsync算法的海量小文件同步优化方法研究.pdf_第1页
第1页 / 共5页
基于fastNTsync算法的海量小文件同步优化方法研究.pdf_第2页
第2页 / 共5页
基于fastNTsync算法的海量小文件同步优化方法研究.pdf_第3页
第3页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、计算机时代 2023年 第10期0 引言随着云计算、物联网和大数据技术的发展,海量数据的传输和存储成为了一个亟待解决的问题。对于小文件的传输,由于其“个体小、总量多”1的特点,给数据传输带来了很大的困难,同时也带来了存储空间浪费、经济损失2等问题。目前,已经有多种小文件传输优化方案(如基于云计算3-4、并行计算5-6、多线程和UDP协议7-8等),但是仍然存在依赖云计算服务,依赖硬件和网络设备以及数据丢失或重复传输等问题;Windows操作系统中基于NTFS分区格式的小文件传输方案表现良好,但仍面临使用负担较大、效率低、跨网络海量小文件同步等问题;基于Windows操作系统的小文件传输方案Ro

2、bocopy、Fastcopy、TeraCopy、Synctoy 等,支持多线DOI:10.16644/33-1094/tp.2023.10.004基于fastNTsync算法的海量小文件同步优化方法研究*华南1,2,朱彦霞3,4(1.河南中广智媒科技有限公司,河南 郑州 450000;2.中国广电河南网络有限公司;3.河南省职工医院;4.河南省郑州工人疗养院)摘要:为解决海量小文件同步过程中的性能瓶颈,提出一种基于fastNTsync优化方法。综合运用NTFS分区表快照技术、NTFS$MFT分析技术和文件打包分区组合拷贝技术,来减少数据包往返时间浪费,提升带宽使用率,提高数据同步速度和效率。

3、实验结果表明,该方法在处理大量小文件时具有显著优势,能提高同步速度和效率,并减少数据传输量和时间浪费。该基于fastNTsync算法的海量小文件同步优化方法对相关领域的研究及应用具有参考价值。关键词:海量小文件;数据同步;数据传输;优化方法中图分类号:TP399文献标识码:A文章编号:1006-8228(2023)10-17-05Research on optimizing the synchronization of massive smallfiles based on fastNTsync algorithmHua Nan1,2,Zhu Yanxia3,4(1.Henan Zhonggu

4、ang Intelligent Media Technology Co.,Ltd,Zhengzhou,Henan 450000,China;2.China Radio and Television Henan Network Co.,Ltd.;3.Henan General Hospital;4.Zhengzhou Workers Sanatorium of Henan Province)Abstract:To solve the performance bottleneck in the synchronization process of massive small files,the f

5、astNTsync optimizationmethod is proposed.The NTFS partition table snapshot technology,NTFS$MFT analysis technology,and file packing partitioncombination copying technology are comprehensively applied to reduce data packet round-trip time waste,improve bandwidthutilization,and enhance data synchroniz

6、ation speed and efficiency.Experimental results demonstrate that this method has significantadvantagesinhandlinglargenumbersofsmallfiles,improvesthesynchronizationspeedandefficiency,andreducesdatatransmission volume and time waste,which has reference value for research and application in related fie

7、lds.Key words:massive small files;data synchronization;data transmission;optimization method收稿日期:2023-05-22*基金项目:河南省软科学研究计划项目(No.222400410151、No.222400410184);河南省医学科技攻关计划联合共建项目(No.LHGJ20210261、LHGJ20220248);河南省科技攻关项目(No.232102310491)作者简介:华南(1981-),男,河南郑州人,本科,工程师,CCF会员,主要研究方向:人工智能、分布式计算、智慧医疗等。通讯作者:朱彦

8、霞(1981-),女,河南郑州人,研究生,高级工程师,主要研究方向:大数据、软件与理论研究、数学统计、软件开发等。17Computer Era No.10 2023程传输、断点续传等功能,然而相比Linux平台,存在学习使用负担较大的问题、跨网络海量小文件同步、传输效率低、高性能产品收费成本高等问题;Windows操作系统中活动目录技术支持DFS文件服务并提供强大的数据同步功能,但其依赖许多服务和配置才能使用,在技术上缺乏灵活性。此外,通过RPC映射目录的同步方法可以通过优化拷贝方式进行同步9,但由于底层协议的原因,当传输海量文件时,整体性能会下降,特别是当传输中断时,进行数据对比将耗费更多时

9、间。因此,海量小文件同步传输及性能优化问题是个技术难点,也是当今云计算技术研究的一个热点。为了解决这个问题,需要设计出更高效、可靠、安全的同步传输方案,并通过优化算法和技术手段来提高同步效率和速度,降低成本,从而更好地满足人们日益增长的数据传输需求。1 算法设计在标准的Windows操作系统中,进行两个终端之间的文件传输(例如,从PC1到PC2传输1000个文件)如图1所示。标准的Windows操作系统会对每个文件执行一次完整的磁盘和网络传输流程,无论文件大小如何,这导致在传输大量文件时速度非常慢。此外,网络传输时协议的握手次数并没有减少,也会导致传输速度下降。图1文件传输过程示例在不考虑 L

10、OFS(Loss of Service Faults)的情况下,传输速率(R)与拥塞窗口和数据包往返时间之间存在一定的关系。具体来说,传输速率与拥塞窗口和数据包往返时间的乘积成正比,即:R=y/RTT其中,y表示当前拥塞窗口的大小,即网络中可以发送的数据包数量,RTT表示数据包往返时间,即从发送端发送一个数据包到接收端并收到确认的时间。上述关系式表明,当拥塞窗口y增加或数据包往返时间RTT减小时,传输速率R也会相应增加,反之亦然。这是因为当拥塞窗口y增加时,网络中可以发送的数据包数量也会增加,传输效率提高;而当数据包往返时间RTT减小时,数据包能够更快地在发送端和接收端之间传输,从而也提高了传

11、输效率。在考虑LOSF传输情况下,在慢启动阶段,拥塞窗口大小的计算公式为:y=min(W,CWND)其中,y表示当前拥塞窗口的大小,W表示拥塞窗口的上限,CWND表示当前的拥塞窗口大小。在慢启动阶段,CWND的初始值为1,每经过一个往返时间RTT,CWND 的值就会加倍,即 CWND=CWND*2。因此,可以将拥塞窗口y的计算公式表示为:y=min(W,2n)其中,n表示当前慢启动阶段经过的往返时间RTT的个数,W表示拥塞窗口的上限。在考虑LOSF传输情况下,传输速率为:R=(MFS/RTT)*sqrt(2/p)其中,R表示传输速率,MFS表示文件集的平均大小,RTT 表示往返时间,p 表示丢

12、包率。这个表达式中,sqrt(2/p)表示LOFS因子,描述了网络中丢包率对传输速率的影响。在不考虑丢包的情况下,传输速率与文件大小呈现正相关性,即随着文件大小增加,传输速率会相应增加;如果传输文件数量过多,会产生多个RTT浪费,文件过小,网络带宽不能充分利用,对吞吐量产生影响、效率低下。虽然有一些第三方免费和收费软件可在一定程度上提升大量小文件传输效率,例如从Linux上移植的Rsync,但由于这些软件是基于Linux开发的,对于中文和Windows平台特殊的NTFS存储技术兼容性较差。当同步的文件过大或文件数量过多时,也会出现兼容性问题。对此,可以利用Windows 7及其后续操作系统的特

13、性,结合最新的设计思路来实现文件的高速同步。本文提出并构建了一种高效的 Windows 文件同步算法fastNTsync,该算法基于以下三种技术优势:NTFS分区表快照技术该技术能够在不中断文件系统的情况下对NTFS分区表完成快照,从而提高同步的效率。快照可用于18计算机时代 2023年 第10期记录分区表的状态,以便在同步期间快速检测和比较分区表的变化。NTFS$MFT分析技术该技术可分析NTFS文件系统的主文件表($MFT),以便快速获取文件信息。这有助于减少网络传输量和提高同步效率。文件打包分区组合拷贝技术该技术可将文件按照一定的规则打包成一个包,并在传输过程中对包进行组合拷贝。这有助于

14、减少网络传输次数和提高同步效率。本文提出的 fastNTsync 算法融合了以上三种技术,可显著提高文件同步的效率和速度,同时解决了NTFS特殊性和中文兼容性问题。2 fastNTsync算法实现及性能验证2.1 开发运行环境fastNTsync算法以Microsoft的.NET Core 5为主要开发平台,使用C#语言开发,并使用LiteDB数据库作为嵌入式数据库。模拟物理环境使用 Oracle VMVirtualBox 开源虚拟机来仿真多机环境,网络采用NAT方式。虚拟机分别模拟一部分Linux/Windows环境,实验环境网络实际为10000M以太网卡传输(网络配置如图2所示)。图2网络

15、配置信息图2.2 fastNTsync算法实现思路及伪代码fastNTsync 算法采用公共的 RSA 库和改进过的128位hash算法来提高数据传输的安全性和效率,同时应用第三方开源ZIP库实现文件块的打包提高文件传输效率,在实际应用过程中还应考虑文件冲突、同步队列管理和异常处理等细节问题。2.2.1 fastNTsync算法具体实现思路具体实现思路如下:同步服务器端启动后,使用开源库获取发起端的NTFS索引和文件映射表$MFT数据,并将其拷贝到内存流中形成快照,以支持文件同步。解析NTFS索引和$MFT数据,获取需要同步的目录和文件树结构,包括文件名、字节长度、修改时间等信息,并将这些数据

16、写入LiteDB数据库,以支持快速的同步任务处理。开启HTTP服务,允许同步客户端通过验证码和同步任务ID来获取LiteDB的快照库,以支持远程同步操作。允许同步客户端扫描设定的同步存储目录和文件结构,包括文件名、目录结构、文件CRC、字节长度、修改时间和校验128位hash,并将这些索引数据存储到本地LiteDB数据库中,以便进行同步数据对比。通过比较客户端和服务端LiteDB数据库中的索引数据,对需要同步的新增、修改和删除操作进行识别,并将这些操作转化为 HTTP 请求,以支持远程同步操作。同步客户端通过HTTP请求获取需要同步的文件内容,然后通过文件流的方式,将文件写入本地存储,以实现同

17、步文件的传输。同步过程中可以使用正则表达式来排除不需要同步的文件类型,同时可以配置同步速度限制,以避免网络带宽资源被占满。2.2.2 编码实现fastNTsync算法伪代码如下:/初始化pfc=new PackFileconnect()packconfig=new Packconfig(c:server1.json)/初始化服务器链接pfc.init(packconfig)/获取目标目录下的文件列表fileobj_list=getFileObject(c:data)/传递扫描目录的对象,传入打包配置,并通过委托类型方法实现数据的传递packgeFile(fileobj_list,packcon

18、fig,func1)/获取硬盘某目录下的结构和文件地址function getFileObject(basepath):devicename=basepath.split(:)0list=new List()19Computer Era No.10 2023mftdata=getMFT(devicename)for fileo in mftdata.get():if fileo.fullname.indexOf(basepath)-1:list.add(fileo)return list/获取硬盘某目录下的结构和文件function getMFT(devicename):mftdata=new

19、 MFTobj()return mftdata.get(devicename)/将数据打包并传输function packgeFile(list,pconf,func1):obj=new PackgeFileMeta(pconf)for fileo in list:stream read=new stream(fileo.fullname)obj.setobj(fileo)read.buff=1024obj.append(read.get()if obj.size=pconf.packsize:func1(obj)obj=new PackgeFileMeta(pconf)/委托类型方法func

20、tion func1(obj):if pfc.isconnnect():pfc.send(obj)2.2.3 算法核心过程 利用NTFS分区表的特性和Hash码提升文件同步效率Windows NTFS分区表身携带文件的长度和修改时间信息,通过计算Hash码进行快速比对,避免了对文件内容的重复读取和计算 Hash码的过程,提高了文件同步的效率。小文件打包优化网络传输效率在文件同步过程中,使用无压缩打包的方式优化网络传输效率。因为Windows在网络之间传输小于512KB 甚至更低容量的小文件的效率并不高,使用无压缩打包的方法可以提高网络传输效率,从而提高同步效率。多线程传输提升文件同步效率采用多

21、线程传输技术提升网络并发效率。至少使用两个线程,同时处理多个文件的传输,从而减少传输时间,提高文件同步效率。利用NTFS索引及文件映射表特点提升文件同步效率通过获取发起端NTFS的索引和文件映射表$MFT数据,以获取文件列表,减少I/O请求,避免对文件系统的重复读取和计算,效率远远超过传统的文件递归检索效率。这样可加快文件同步速度,提高同步效率。2.3 fastNTsync算法性能验证算法性能验证过程如图3所示。图3算法验证过程具体验证过程描述如下:通过 fastNTsync 程序的函数-init_test 1,在PC1的 F盘的目录 f:svntestA 中创建 6,546个随机大小的.tx

22、t的测试文件,硬盘使用传统的机械硬盘,总共约14GB左右,最小的文件约1KB,最大的约300MB;其中,小于 512KB 的文件有 873 个。同时,在 PC2 的E盘中建立testA的空目录。在两台PC上配置fastNTsync.exe的配置信息,配置如下:别名PC1IP:192.168.31.25端口为7000,设定同步目录为:f:testB别名PC2 IP:192.168.31.24端口为7000,设定同步目录为:e:testB 通过标准的Windows命令,从PC1电脑发起f:svntestA到192.168.31.24e$(192.168.31.24是PC2的IP)进行文件拷贝,大文

23、件与小文件在传输速率上差异性较为明显(如图4、图5所示),系统估算平均用时为5分13秒。图4Windows自带Copy命令实现大文件传输速率示例图图5Windows自带Copy命令实现大量小文件传输速率示例图由于小文件较多,网络传输实际速度大致在20Mbps993Mbps左右徘徊。20计算机时代 2023年 第10期 复制PC1的testA目录一份为testB,执行命令fastNTsync.exe-s PC1-t PC2,开始同步;大文件与小文件传输速率基本无差异(如图6所示),系统估算用时约1分17秒。图6fastNTsync.exe在覆盖模式下的速率通过对比可以看出,在相同环境及传输任务下

24、,本文所提出的fastNTsync算法较传统Windows命令的执行效率优势更为突出。第二次测试过程:PC1 的 testA 文件并再次执行fastNTsync程序的函数-init_test2,生成测试数据文件增加为7329个,并且随机重写了PC1的testA目录下一些文件内容,最终 test 目录大小为 16.4 GB 左右。目前PC1和PC2大约有1000个以上的差异文件。图7Windows文件资源管理器传输在覆盖模式下的速率 进行第二次同步时,分别使用标准的Windows命令复制 PC1到 PC2的文件(直接覆盖)和改进后的fastNTsync.exe 程序进行同步。实验结果显示,使用W

25、indows命令复制文件的同步过程耗时6分40秒,而使用fastNTsync程序的同步过程仅耗时约58秒。经过综合评测,fastNTsync算法采用NTFS快照技术高效地检索和比对两台待同步计算机的文件列表信息,从而仅同步需要更新的文件。此外,该算法对于小文件进行了打包和解包处理,减少了网络协议握手次数,提高了文件传输效率。3 总结随着数据量不断增加,海量小文件同步问题已成为一个重要问题。本文提出了一种基于fastNTsync算法的海量小文件同步优化算法,该算法充分融合了NTFS分区表快照、NTFS$MFT分析和文件打包分区组合拷贝等技术优势。通过优化同步过程中的数据传输、数据存储和数据管理等

26、方面,该算法有效地提高了同步速度和效率,并实现了较高的同步质量。实验结果表明,本文提出的fastNTsync算法在处理大量小文件时具有显著的优势。相比现有同步算法,该算法可以更快地完成同步任务,同时也能够更加高效地利用存储空间。该算法的性能优势为海量小文件同步问题的解决提供了一种有效的解决方案,同时也为相关领域的研究和应用提供了有价值的参考。虽然本文的fastNTsync算法能够有效解决海量小文件同步问题,但在实际应用中,仍需考虑不同环境下的应用效果、系统的稳定性和安全性等问题。未来的研究可以探究更加先进的同步算法,同时结合机器学习和人工智能等技术,进一步提高同步效率和准确性。参考文献(Ref

27、erences):1 陈法河.基于 Ceph 的小文件存储优化方法研究D.北京:中国电子科技集团公司电子科学研究院,2022.2 武世民.基于GridFTP的端到端大量小文件传输策略研究D.北京:中国地质大学(北京),2021.3 徐敏,胡聪,王萍,等.基于软件定义存储的小文件性能优化研究J.信息技术,2021(4):35-39,45.4 戴敏圣.云环境下海量小文件存储性能的研究与优化D.成都:电子科技大学,2020.5 徐道柱.面向服务的空间数据管理关键技术研究D.郑州:解放军信息工程大学,2017.6 韩敏.支持GPU加速的分布式文件系统研究D.武汉:武汉理工大学,2015.7 李会民,颜明会,任红彬,等.基于UDP协议实现数据安全、高效传输的方法研究J.北华航天工业学院学报,2022,32(6):8-10.8 迟浩.基于 UDP 的多链路协同通信算法的研究D.上海:上海师范大学,2018.9 蒋雪松.面向小文件的分布式存储中间件的设计与实现D.哈尔滨:哈尔滨工业大学,2019.CE21

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 综合论文

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报