4.3.2 讨论
相比TFS,Haystack的一大特色就是磁盘空间回收。Blob文件在TFS中通过<Block id,Block offset>标识,因此,不能对TFS中的数据块进行重整操作;而Haystack中的元信息只能定位到Blob文件所在的逻辑卷轴,Haystack存储节点可以根据情况对物理卷轴进行Compaction操作以回收磁盘空间。
Facebook Haystack中每个逻辑卷轴的大小为100GB,这样减少了元信息,但是增加了迁移的时间。假设限制内部网络带宽为20MB/s,那么迁移100GB的数据需要的时间为100GB/20MB/s=5000s,大约是一个半小时。而TFS设计的数据规模相比Haystack要小,因此,可以选择64MB的块大小,有利于负载均衡。
另外,Haystack使用RAID 6,并且底层文件系统使用性能更好的XFS,淘宝TFS不使用RAID机制,文件系统使用Ext3,由应用程序负责管理多个磁盘。Haystack使用了Akamai&Limelight的CDN服务,而淘宝已经使用自建的CDN,当然,Facebook也在考虑自建CDN。