分布式文件系统FastDFS如何做到高可用 (2)

分布式文件系统FastDFS如何做到高可用

  从中可以看到,Client想上传图片,它先向Tracker进行询问,Tracker查看一下登记信息之后,告诉Client哪个storage当前空闲,Tracker会把IP和端口号都返回给Client,Client在拿到IP和端口号之后,便不再需要通过Tracker,直接便向Storage进行上传图片,Storage在保存图片的同时,会向Tracker进行汇报,告诉Tracker它当前是否还留有剩余空间,以及剩余空间大小。汇报完之后,Storage将服务器上存储图片的地址返回给Client,Client可以拿着这个地址进行访问图片。说得更加细致一点,客户端上传文件后存储服务器将文件ID返回给客户端,此文件ID用于以后访问该文件的索引信息。文件索引信息包括:组名,虚拟磁盘路径,数据两级目录,文件名,如下所示:

分布式文件系统FastDFS如何做到高可用

组名:文件上传后所在的storage组名称,在文件上传成功后由storage服务器返回,需要客户端自行保存。
虚拟磁盘路径:storage配置的虚拟路径,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。
数据两级目录:storage服务器在每个虚拟磁盘路径下创建的两级目录,用于存储数据文件。
文件名:与文件上传时不同。是由存储服务器根据特定信息生成,文件名包含:源存储服务器IP地址、文件创建时间戳、文件大小、随机数和文件拓展名等信息。

 

文件下载的流程

  现给出一张文件下载的时序图,如下图所示:

分布式文件系统FastDFS如何做到高可用

文件下载的步骤可以是:

1. client询问tracker下载文件的storage,参数为文件标识(组名和文件名)。
2. tracker返回一台可用的storage。
3. client直接和storage通讯完成文件下载。

搭建FastDFS

安装组件

nginx+FastDFS+fastdfs-nginx-module

布署结构: tracker:storage0:192.168.80.32 storage1:192.168.80.30 storage2:192.168.80.31

nginx 放在192.168.80.32

下载下列最新的安装包:
fastdfs-master.zip:FastDFS源码
libfastcommon-master.zip:(从 FastDFS 和 FastDHT 中提取出来的公共 C 函数库)
fastdfs-nginx-module-master.zip:storage节点http服务nginx模块
nginx.tar.gz:Nginx安装包

防火墙

防火墙中打开tracker服务器端口( 默认为 22122)
shell> vi /etc/sysconfig/iptables
添加如下端口行:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22122 -j ACCEPT

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzywj.html