Chinaunix

标题: 请问FastDFS和GFS以及NFS的对比? [打印本页]

作者: happy_fish100    时间: 2009-04-01 09:10
标题: 回复 #1 wing922wing 的帖子
建议你多看看论坛中的帖子。FastDFS是一个专用的文件系统,和MogileFS比较类似,需要使用专门的API来访问,他不是通用的文件系统,不能mount成path的形式使用。

专用文件系统相对于通用文件系统,更简洁高效,适用于一定的场合,比如网站存储图片、视频文件等。

注:NFS和lustre都属于通用文件系统。我对GFS、KFS、Gluster了解不多,就不进行评论了。
欢迎随时交流。
作者: wing922wing    时间: 2009-04-01 16:44
通过看论坛帖子,大概明白了和通用文件系统的区别和用途,请教一下,FastDFS是否适用于大容量小文件(小于2m),高并发系统使用?如果是小文件,每次存取都要查询tracker server,开销会不会太大,另外tracker server这样的形式,高并发压力会不会太大?问题比较初级,对分布式文件不太了解,希望能稍微展开说说,比如对常见的图片服务器这样的应用环境,有什么优势?
作者: happy_fish100    时间: 2009-04-01 16:56
标题: 回复 #3 wing922wing 的帖子
FastDFS的设计目标就是支持大容量和高访问量。对于大量的小文件,可以支持得很好。
tracker server在内存中维护storage server信息,查询性能不存在任何问题,只是多了一次网络传输而已。

FastDFS适合存储用户上传的文件,比如用户照片。如果只是存储网站的静态文件(如装饰图片、css、js等),那没有必要使用FastDFS。
作者: wing922wing    时间: 2009-04-01 17:21
看了文档,挺全面的,基本上都已经了解了,非常好,感谢作者及时的回复。

目前就一个问题想了解一下,文件名是系统生成的,那么存取文件时,是不是必须使用卷名加上这个系统生成的文件名进行存取?这样我就要去维护文件名的映射,因为我的系统中,文件名都是guid,是不会重复的,有没可能直接通过这个文件名来进行分布式存贮,我只传入一个guid的文件名,就能存取文件?比如进行二次开发后能实现这样的功能?
作者: happy_fish100    时间: 2009-04-02 12:53
标题: 回复 #5 wing922wing 的帖子
>> 目前就一个问题想了解一下,文件名是系统生成的,那么存取文件时,是不是必须使用卷名加上这个系统生成的文件名进行存取?

是的。上传文件成功,FastDFS会返回一个文件标识(包括卷名和文件名)。

>> 这样我就要去维护文件名的映射,因为我的系统中,文件名都是guid,是不会重复的,有没可能直接通过这个文件名来进行分布式存贮,我只传入一个guid的文件名,就能存取文件?比如进行二次开发后能实现这样的功能?

文件标识也是不会重复的,和guid是一一对应的关系。建议将文件标识和guid一起保存。
作者: sopato    时间: 2009-04-03 01:38
我补充问一个问题,happy fish你推荐使用什方式保存文件索引信息?我明白这个问题与应用环境相关,例如我使用fastdfs创建一个多用户图片站,我担心文件数一上去,索引信息的维护和检索反而会成为瓶颈,如果这个索引信息一但丢失,也是一种灾难。
作者: happy_fish100    时间: 2009-04-03 10:34
标题: 回复 #7 sopato 的帖子
对于用户图片,可以按用户索引。如果每个用户的图片数不是太多,索引信息可以存放在我写的另外一个开源项目FastDHT(分布式Hash系统)中。

索引这块,我打算写一个分布式索引系统,实现索引的增、删、改、查,可以支持单个对象较大的索引信息。
作者: fcsoe    时间: 2009-04-03 11:12
原帖由 happy_fish100 于 2009-4-3 10:34 发表
对于用户图片,可以按用户索引。如果每个用户的图片数不是太多,索引信息可以存放在我写的另外一个开源项目FastDHT(分布式Hash系统)中。

索引这块,我打算写一个分布式索引系统,实现索引的增、删、改、查 ...

我觉得索引信息还是保存在数据库里比较好




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2