FastDFS个人研究记录

在我看来,fastdfs是一套类似于google分布式的文件系统,具体理论方面的fastdfs系统架构,可以参阅如下的文章,可以说已经写的比较详细和具体。 这里只是谈谈在使用中,或者说是文章中并没有提到的其他内容
分布式文件系统FastDFS架构剖析
http://www.programmer.com.cn/4380/ fastdfs安装: 个人是在ubuntu11 Server的系统中进行测试和研究,fastdfs的安装非常简单,而且在git中下载完整的安装包中也自带INSTALL文档,可以按照他说的一步一步完成。 服务启动: tracker是必须先于storage之前启动的,如果storage在启动时发现所配置的tracker并未启动,也会导致无法启动。 storage和tracker之间的连接原理 storage作为主动方,在服务起来之后,会定时(时间可以配置)向他对应的tracker发布自己的状态和相关信息。tracker服务只是会记录相对于的group对应的服务器IP,以便在read的时候直接返回服务器IP。tracker里面存储着每一个group的server列表,server列表里面的storage服务器都是实时相互备份操作。 在单个tracker,多个storage的架构的环境中,首先是 upload操作: client端将upload的请求直接发送给tracker服务器,tracker收到之后,会根据自己的一套定义的规则(可以配置),将回复可以上传的storage服务器IP,client将文件upload至storage服务器,完成操作。read操作:client端发送需要get的URL地址,tracker根据URL中的group来划分属于哪些storage服务器,然后返回可以访问的服务器IP地址。 client直接访问指定storage服务器,此storage服务器已经部署Nginx类似的HTTP服务,并加载fastdfs的模块,需提前进行域名跳转的设定,完成文件的读取。 关于多tracker和多storage的系统架构设计 根据fastdfs的架构描述,tracker和storage都是可以横向无限延伸,现还未有一个比较标准的一个tracker和storage配对的模式,只是说个人建议在一个group中,storage尽量保证在2-3台存储服务器,配对的tracker保持2台即可。 对于一个cluster的模式,大概可以这样去设计系统架构:
2台Nginx最前端的服务器,用于client端的read请求,主要作用是用来做负载均衡服务,热备操作,最好在nginx的config配置里面加入location设置,根据groupname直接跳转到对应的storage服务器。
2台tracker服务器,用于write操作的分发,也可以做热备操作,后端的storage服务器配置中tracker设置需要将2台服务器都绑定上去。 N台storage服务器,一个group配备2-3台服务器,可以根据数据量的大小,从小的规模做起,如有新的扩容,直接新增新的group和storage服务器即可,这样只需修改前端那nginx服务配置,其他都不用调整。 如果在现有已经成型的cluster架构中,tracker服务需要新增的情况
最好是独立延伸新的cluster架构,不要再现有的cluster中直接加入tracker服务,不然运维方面需要调整的地方比较多,storage服务器都必须修改配置,对现有的架构影响比较严重。
可以直接建立全新的tracker+storage架构,只是在read操作中还可以使用原始的nginx前端服务。
下图是一个tracker+多个groupName的系统架构设计
FastDFS个人研究记录

你可能感兴趣的:(FastDFS个人研究记录)