读 LBFS 有感

来源:互联网 发布:淘宝kappa官方旗舰店 编辑:程序博客网 时间:2024/06/10 00:33

LBFS 有感

         LBFS解决在低带宽的前提下如何实现一个文件系统。其的大致思路如下,对文件进行分片,寻找出客户端与服务器端不同的片,只传输差异的文件片,在客户端和服务器端重新合成文件进行保存。

         文件片的计算方法采用的是CDC算法,实验中采用8KBchunk size48B的滑动窗口。该算法需要仔细研究下。在LBFS的另一个作者的pastwatch项目中,有该算法源码,好好研究下。

         无论在客户端还是服务器端,LBFS利用文件片实现的是在所有文件中查找是否相同片。这个就带来了一个问题,文件片所形成的HASH表将十分巨大。以1G的数据量为例,8KB的数据片大小,那么需要131072HASH值,简化为10W。如果数据量增加到1TB那么需要10W*1000 = 10亿个HASH值。这里假设了1TB数据中所有的8KB数据块都不相同,需要10亿个HASH来标示数据块。这个假设具有一定的合理性,因为现在的存储系统支持几十个TB,甚至上百TB容量,在这样的存储容量下1TB的数据以8KB为单位不重复是很有可能。这时对于10亿个HASH值的高速检索和存储需要解决。

         LBFS服务器在存储文件时,如上传一个新的文件,如果该文件与存储系统中的已有块,有相同块,那么将不传输相同块。但是LBFS将直接复制相同块到新文件中,从而形成一个新的文件。LBFS的该做法并不能减少服务器端存储所占用的空间。不过该做法有一个极大的好处,不用单独的存储文件片,文件片存在于需要保存的文件中,文件片的HASH值以及偏移量,长度等信息会指明该文件片。

原创粉丝点击