请问FastDFS和GFS以及NFS的对比?
建议你多看看论坛中的帖子。FastDFS是一个专用的文件系统,和MogileFS比较类似,需要使用专门的API来访问,他不是通用的文件系统,不能mount成path的形式使用。
专用文件系统相对于通用文件系统,更简洁高效,适用于一定的场合,比如网站存储图片、视频文件等。
注:NFS和lustre都属于通用文件系统。我对GFS、KFS、Gluster了解不多,就不进行评论了。
欢迎随时交流。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(7)
通过看论坛帖子,大概明白了和通用文件系统的区别和用途,请教一下,FastDFS是否适用于大容量小文件(小于2m),高并发系统使用?如果是小文件,每次存取都要查询tracker server,开销会不会太大,另外tracker server这样的形式,高并发压力会不会太大?问题比较初级,对分布式文件不太了解,希望能稍微展开说说,比如对常见的图片服务器这样的应用环境,有什么优势?
FastDFS的设计目标就是支持大容量和高访问量。对于大量的小文件,可以支持得很好。
tracker server在内存中维护storage server信息,查询性能不存在任何问题,只是多了一次网络传输而已。
FastDFS适合存储用户上传的文件,比如用户照片。如果只是存储网站的静态文件(如装饰图片、css、js等),那没有必要使用FastDFS。
看了文档,挺全面的,基本上都已经了解了,非常好,感谢作者及时的回复。
目前就一个问题想了解一下,文件名是系统生成的,那么存取文件时,是不是必须使用卷名加上这个系统生成的文件名进行存取?这样我就要去维护文件名的映射,因为我的系统中,文件名都是guid,是不会重复的,有没可能直接通过这个文件名来进行分布式存贮,我只传入一个guid的文件名,就能存取文件?比如进行二次开发后能实现这样的功能?
>> 目前就一个问题想了解一下,文件名是系统生成的,那么存取文件时,是不是必须使用卷名加上这个系统生成的文件名进行存取?
是的。上传文件成功,FastDFS会返回一个文件标识(包括卷名和文件名)。
>> 这样我就要去维护文件名的映射,因为我的系统中,文件名都是guid,是不会重复的,有没可能直接通过这个文件名来进行分布式存贮,我只传入一个guid的文件名,就能存取文件?比如进行二次开发后能实现这样的功能?
文件标识也是不会重复的,和guid是一一对应的关系。建议将文件标识和guid一起保存。
我补充问一个问题,happy fish你推荐使用什方式保存文件索引信息?我明白这个问题与应用环境相关,例如我使用fastdfs创建一个多用户图片站,我担心文件数一上去,索引信息的维护和检索反而会成为瓶颈,如果这个索引信息一但丢失,也是一种灾难。
对于用户图片,可以按用户索引。如果每个用户的图片数不是太多,索引信息可以存放在我写的另外一个开源项目FastDHT(分布式Hash系统)中。
索引这块,我打算写一个分布式索引系统,实现索引的增、删、改、查,可以支持单个对象较大的索引信息。
我觉得索引信息还是保存在数据库里比较好