FastDFS 集群部署

Posted sunshinea121

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FastDFS 集群部署相关的知识,希望对你有一定的参考价值。

FastDFS 集群部署
官网https://github.com/happyfish100
FastDFS是一款开源的高性能分布式文件系统(DFS)。主要功能:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size < 500MB)为载体的在线服务。

FastDFS系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Clinet)。

Tracker Server:跟踪服务器,主要做调节工作,起到均衡的作用;负责管理所有的storage server和group,每个storage在启动后会连接Tracker,告知自己所属group等信息,并保持周期性心跳。

Storage Server:存储服务器。主要提供容量和备份服务器;以group为单位,每个group内可以有多台storage server,数据互为备份。

Client:客户端,上传下载数据的服务器,也就是我们自己的项目部署在的服务器。

安装包
FastDFS_v5.08.tar.gz:FastDFS源码
libfastcommon-master.zip:基础环境
fastdfs-nginx-module.zip:storage节点http服务nginx模块
nginx-1.tar.gz:Nginx安装包
ngx_cache_purge-2.3.tar.gz:图片缓存清除Nginx模块(集群环境会用到)
下载libfastcommon,FastDFS,fastdfs-nginx-module,nginx,nginx图片缓存模块
wget https://github.com/happyfish100/libfastcommon/archive/master.zip
wget https://github.com/happyfish100/fastdfs/archive/master.zip
wget http://nginx.org/download/nginx-1.15.12.tar.gz
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
wget https://github.com/happyfish100/fastdfs-nginx-module/archive/master.zip

1.安装依赖包
yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y

2.安装libfastcommon
tar xf V1.0.7.tar.gz
cd libfastcommon-1.0.7/
./make.sh
./make.sh install

3.安装FastDFS
tar -zxvf V5.05.tar.gz
cd fastdfs-5.05
./make.sh
./make.sh install

安装完成后可以看到/etc/fdfs目录下生成3个文件:

五、配置tracker 节点

mkdir /data/fastdfs –p //创建tracker的数据文件和日志存储目录

cd /etc/fdfs/

mv tracker.conf.sample tracker.conf

vim tracker.conf

base_path=/data/fastdfs //设置tracker的数据文件和日志目录
http.server_port=6666 //设置http端口号,默认为8080

ln -s /usr/bin/fdfs_trackerd /usr/local/bin

ln -s /usr/bin/stop.sh /usr/local/bin

ln -s /usr/bin/restart.sh /usr/local/bin

service fdfs_trackerd start //启动tracker 节点

启动成功后,在/data/fastdfs目录下生成了data和logs 两个目录

六、配置storage 节点

mkdir /data/fastdfs-storage //创建storage数据文件和日志目录

cd /etc/fdfs/

mv storage.conf.sample storage.conf

vim storage.conf

group_name=group1 //组名,可根据实际情况修改
base_path=/data/fastdfs-storage //设置storage数据文件和日志目录
store_path_count=1 //存储路径个数,需要和store_path 个数匹配
store_path0=/data/fastdfs-storage //存储路径
tracker_server=192.168.19.6:22122 //tracker服务器的IP和端口
http.server_port=8888 //设置http 端口号

ln -s /usr/bin/fdfs_storaged /usr/local/bin

service fdfs_storaged start //启动storage,启动会根据配置文件的设置自动创建多级存储目录

查看日志:

cat /data/fastdfs-storage/logs/storaged.log

确认成功后,运行fdfs_monitor查看storage服务器是否已经登记到tracker服务器

/usr/bin/fdfs_monitor /etc/fdfs/storage.conf

看到192.168.19.6 (localhost.localdomain) ACTIVE 即可确认storage运行正常。
七、给storage 安装nginx并配置

tar -zxvf fastdfs-nginx-module_v1.16.tar.gz -C /usr/local/

cd /usr/local/fastdfs-nginx-module/

vim src/config

技术图片
修改为如下图:(即 去掉“local ”)
技术图片

将fastdfs-nginx-module/src 下的mod_fastdfs.conf 复制到 /etc/fdfs/ 下,

cp src/mod_fastdfs.conf /etc/fdfs/

修改/etc/fdfs/下mod_fastdfs.conf的内容:

vim /etc/fdfs/mod_fastdfs.conf

base_path=/data/fastdfs-storage //保存日志目录
tracker_server=192.168.19.6:22122 //tracker服务器的IP和端口
url_have_group_name = true //文件url中是否有group名
store_path0=/data/fastdfs-storage //存储路径
group_count = 1 //设置组的个数,这次只用了一个
在文件末添加如下内容:
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/data/fastdfs-storage

建立M00至存储目录的符号链接

ln -s /data/fastdfs-storage/data /data/fastdfs-storage/data/M00

拷贝相关文件到/etc/fdfs目录下:

cp /usr/local/FastDFS/conf/mime.types /etc/fdfs/

cp /usr/local/FastDFS/conf/http.conf /etc/fdfs/

cp /usr/local/FastDFS/conf/anti-steal.jpg /etc/fdfs/

给storage 安装nginx

mkdir /data/nginx

tar -zxvf nginx-1.12.0.tar.gz -C /opt/

cd /opt/nginx-1.12.0/

./configure --prefix=/data/nginx/ --add-module=/usr/local/fastdfs-nginx-module/src/

make

make install

修改nginx.conf 文件

vim /data/nginx/conf/nginx.conf

listen 9999;

    location ~/group[1-3]/M00 {
        root /data/fastdfs-storage/data;
        ngx_fastdfs_module;
    }

启动nginx:

/data/nginx/sbin/nginx

八、给tracker安装nginx并配置

mkdir /data/nginx2

cd /opt/nginx-1.12.0/

./configure --prefix=/data/nginx2/ --add-module=/usr/local/fastdfs-nginx-module/src/

make

make install

修改nginx.conf 文件:

vim /data/nginx2/conf/nginx.conf

upstream fdfs_group1 {
server 127.0.0.1:9999;
}

location /group1/M00 {
proxy_pass http://fdfs_group1;
}

启动nginx :

/data/nginx2/sbin/nginx

九、配置客户端文件,测试

cd /etc/fdfs/

mv client.conf.sample client.conf

vim client.conf

base_path=/data/fastdfs-storage //日志存放路径
tracker_server=192.168.19.6:22122 //tracker服务器IP和端口
http.tracker_server_port=6666 //tracker服务器的 http端口号,必须和前面tracker的设置对应起来

测试文件上传:

/usr/bin/fdfs_upload_file /etc/fdfs/client.conf /data/Snipaste_2019-01-24_09-11-23.png

通过上图可以看到文件上传后存储的路径为:group1/M00/00/00/wKgTBlxJESWAJocIAAz71mFDjBw797.png

通过nginx访问:

以上是关于FastDFS 集群部署的主要内容,如果未能解决你的问题,请参考以下文章

FastDFS 集群部署

FastDFS集群部署

FastDFS之集群部署

网络云盘项目——FastDFS集群部署

分布式文件系统FastDFS集群部署

第三章一文告诉你FastDFS分布式如何部署