开源分布式文件系统FastDFS的安装配置和部署

时间:2021-11-28 08:27:04

第一步,获取源码

 开源分布式文件系统FastDFS的安装配置和部署

其中:

fastdfs-5.05.tar.gz 是包含了storage、tracker、client的主体程序;

fastdfs-client-java-master.zip client的java程序的接口;

fastdht-master.zip 可以对上传的文件去重;

fastdfs-nginx-module-master.zip fastDFS的nginx插件,用于提供http服务;

libfastcommon-master.zip  是以上程序必须的SDK。

libevent-2.0.22-stable.tar.gz是fastDFS依赖的事件驱动库。

 

第二步, 安装

1.  安装libevent

tar –zxvf libevent-2.0.22-stable.tar.gz

cd libevent-2.0.22-stable/

./configure

make

make install

2.  安装libfastcommon-master.zip

unzip libfastcommon-master.zip

cd libfastcommon-master

./make.sh

./make.sh install

3.  安装fastdfs-5.05.tar.gz

tar –zxvf fastdfs-5.05.tar.gz

cd fastdfs-5.05

./make.sh

./make.sh install

此步完成之后,应该会在/etc/fdfs里看到storage、tracker、client的配置文件。

ll /usr/bin/fdfs*会看到一些基本的可执行文件如下

 

4.  安装nginx扩展模块

如果将模块编译到nginx的扩展插件即可。我用nginx-1.8.0没有问题

第三步,配置

配置文件中有响应的说明,根据具体情况配置即可;

配置的必选项如下:

由于我们的最新版本 5.05版本,已经不再提供http服务,所需的http服务由nginx插件代替。所以配置文件中的##include http.conf,前面的#不需要按照网上说的去掉。

tracker.conf中

#添加tracker的日志和数据目录

base_path=/home/fastdfs/trac

 

storage.conf中

#添加storage的日志和数据目录

base_path=/home/fastdfs/store

#修改tracker_server为指定的tracker_server

tracker_server=192.168.15.132:22122

 

#修改mod_fastdfs.conf

base_path=/home/fastdfs

tracker_server=10.1.20.201:22122

tracker_server=10.1.20.204:22122

store_path0=/home/fastdfs

response_mode=proxy

url_have_group_name=true

log_filename=/opt/fastdfs.log

 

第四步,部署

开源分布式文件系统FastDFS的安装配置和部署

图4.1

如图4.1,起始由lvs提供“四层”的负载均衡,后面由nginx提供“七层”的负载均衡,后面client通过tracker向storage上传内容。

 开源分布式文件系统FastDFS的安装配置和部署

图4.2

如图4.2,每一个nginx都配置多个upstream,每个upstream对应一个分组。每个upstream中的每个服务器,对应group中的每个服务器。

开源分布式文件系统FastDFS的安装配置和部署 

图4.3

如图4.3,每一个group里面的每个存储服务器由两部分组成,就是storage和nginx,如果为了节省服务器资源,可以在每个存储服务器中实现nginx的负载均衡。比如group1中的,仅仅配置group2,和group3的upstream,本身的请求由自己处理。但这样对LVS的负载均衡比较依赖。

开源分布式文件系统FastDFS的安装配置和部署 

图4.4

如图4.4,fastDFS遵循Paxos,在客户端请求上传文件,tracker选取一个服务器(storage-A的信息)给client,然后storage-A通过PUSH的方式,将文件同步到同一分组的其他服务器,实现备份和负载均衡。前面将分组中的存储服务器定义为主备,其实并不完全,因为同组的服务器之间互为主备。

 

优点:

系统的扩展的时候,只需要新增加“卷”就可以了。

缺点:

改用nginx做负载提供http服务之后,需要自己在nginx的配置中,配置好所有分组的所有storage。