海量瓦片小文件归档和数据管理系统
2022-01-20 16:12:08
xinyong
28
海量瓦片小文件归档和数据管理系统
当今互联网,数据呈现爆炸式增长,不光是社交网络、移动通信、网络视频、电子商务等各种应用往往能产生亿级甚至十亿、百亿级的海量小文件,就是在许多企业内部同样会产生海量小文件,doc文件和excel文件等数百万个文件的应用已经很容易就见到了。这些数据在复制和删除过程中就会面临访问性能、存储效率等许多方面巨大的挑战,海量小文件问题成为了业界公认的难题。
具体表现举例子 ,比如复制一个文件夹的时候开始的速度快,然后越来越慢,复制 500GB的数据 就要好几个小时了,如果是10TB数据 则要2-3天,最要命的是中途一旦中断了,不知道从哪里接续,即使中途没有中断,复制后的数据出错的可能性依然存在。其他诸如删除文件也是面临同样的问题。耗费时间巨大。
业界的一些知名互联网公司,也对海量小文件提出了解决方案,例如:著名的社交网站Facebook,存储了超过600亿张图片,专门推出了Haystack系统,针对海量小图片进行定制优化的存储。
Facebook的Haystack对小文件的解决办法是合并小文件。将小文件数据依次追加到数据文件中,并且生成索引文件,通过索引来查找小文件在数据文件中的offset和size,对文件进行读取。
Haystack面临的问题:
Facebook的Haystack特点是将文件的完整key都加载到内存中,进行文件定位。机器内存足够大的情况下,Facebook完整的8字节key可以全部加载到内存中。内存小的时候问题就来了。
我们目前针对海量小文件的数据管理问题,推出自己的解决方案,并将速度提升到100MB/s 的水平上来,更多详细情况和测试报告。
这是我们的测试表现
海量小文件数据,文件大小为:469GB(610,969,669,456字节),
共有1371642个文件 和 2197个文件夹,
平均文件大小为445429.4字节 约等于435KB,
我们将这个文件夹上传到服务器,测试上传的速度如下:
平均速度:111MB/s
总耗时1小时27分钟
平均速度:111MB/s
总耗时1小时27分钟
下面是屏幕照片
完成100GB的瓦片文件上传的时间约为11分钟.实际使用中如果单词文件夹体量在 100GB以内则感觉很好.
我们的下载速度更快,有多大的带宽,就跑满多大带宽。