FastDFS单机、单节点和多节点集群部署文档

FastDFS单机、单节点和多节点集群部署文档

FastDFS单机版部署

环境准备工作

名称说明
服务器IP192.168.11.134
CentOS7.x(mini最小化安装系统)
libfastcommonV1.0.39,FastDFS分离出的一些公用函数包
FastDFSv5.11,FastDFS本体
fastdfs-nginx-modulev1.16,FastDFS和nginx的关联模块,解决组内同步延迟问题
nginxnginx 1.15.2,建议1.18

安装FastDFS依赖

FastDFS是C语言开发的应用。安装必须使用make、cmake和gcc编译

yum install -y make cmake gcc gcc-c++ wget perl lrzsz
#yum groups install Development Tools -y

1.安装libfastcommon

下载和解压

mkdir /fastdfs
cd /fastdfs
#下载文件
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.39.tar.gz
tar -zxvf V1.0.39.tar.gz
ls

编译和安装

cd libfastcommon-1.0.39/
./make.sh && ./make.sh install

2.安装FastDFS主程序

cd /fastdfs
#下载fdfs文件,预计有问题,建议自行上传
#wget https://github.com/happyfish100/fastdfs/archive/V5.11.tar.gz

#解压到指定目录,进入目录
tar -zxvf V5.11.tar.gz
cd fastdfs-5.11/

#执行编译和安装
./make.sh && ./make.sh install

#查看可执行命令
ls -la /usr/bin/fdfs*

#配置文件准备,注意目录的位置
#tracker节点
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf 
#storage节点
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf 
#客户端文件,测试用
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf 
#供nginx访问使用,
cp /fastdfs/fastdfs-5.11/conf/http.conf /etc/fdfs/ 
#供nginx访问使用
cp /fastdfs/fastdfs-5.11/conf/mime.types /etc/fdfs/ 

在这里插入图片描述

#创建软链接
ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so 
ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so 
ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so 
ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

在这里插入图片描述

tracker server配置:
cd /etc/fdfs
yum install net-tools vim -y

#创建存储日志和数据的根目录
mkdir -p /fastdfs/tracker/base
#需要修改的内容如下:
vi /etc/fdfs/tracker.conf
    # the base path to store data and log files
    #base_path=/home/yuqing/fastdfs
    #存储日志和数据的根目录(此目录必须存在 )
    base_path=/fastdfs/tracker/base
    

#非开机自启动(支持start|stop|restart|status)
service fdfs_trackerd start
/usr/bin/fdfs_trackerd  /etc/fdfs/tracker.conf start
#查看状态
service fdfs_trackerd status

storage server配置

storage可以和tracker不在同一台服务器上。示例中把storage和tracker安装在同一台服务器上。

service firewalld stop

#创建运行时存放临时文件和日志的目录(此目录必须存在)
mkdir -p /fastdfs/storage/base
#创建上传文件的目录(此目录必须存在)
mkdir -p /fastdfs/storage/data

vim /etc/fdfs/storage.conf
	# the base path to store data and log files
    #base_path=/home/yuqing/fastdfs
    #更改为运行时存放临时文件和日志的目录(此目录必须存在)
    base_path=/fastdfs/storage/base
    
    # store_path#, based 0, if store_path0 not exists, it's value is base_path
    # the paths must be exist
    #store_path0=/home/yuqing/fastdfs
    #更改为上传文件的目录(此目录必须存在)
    store_path0=/fastdfs/storage/data
    
    # tracker_server can ocur more than once, and tracker_server format is
    #  "host:port", host can be hostname or ip address
    #更改为tracker_server的ip地址
    tracker_server=192.168.11.134:22122

#非开机自启动(支持start|stop|restart|status)
service fdfs_storaged start

#启动成功后,配置文件中 base_path指向的目录中出现FastDFS服务相关数据目录( data目录、logs目录),配置文件中的store_path0指向的目录中

#可通过monitor来查看storage是否成功绑定
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
#若成功绑定会弹出很多行信息,失败则弹出几行

service fdfs_storaged无法启动原因:

在这里插入图片描述

解决方案:卸载fdfs,换个安装包

Client配置
#创建运行时存放临时文件和日志的目录(此目录必须存在)
mkdir -p /fastdfs/client/base

vim /etc/fdfs/client.conf
    # the base path to store log files
    base_path=/fastdfs/client/base
    
    # tracker_server can ocur more than once, and tracker_server format is
    #  "host:port", host can be hostname or ip address
    tracker_server=192.168.11.134:22122

#客户端client配置完成

#查看fdfs功能文件
ls /usr/bin/ | grep fdfs

#上传文件测试
fdfs_upload_file /etc/fdfs/client.conf /fdfs/V1.0.39.tar.gz

group1/M00/00/00/wKgLhmEkoCKAVNQTAAJZX-7XAV0.tar.gz
#即group1/M00/=/fastdfs/storage/data/data/00/

#查看源文件
ls /fastdfs/storage/data/data/00/00

#查看文件信息
fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/wKgLhmEkoCKAVNQTAAJZX-7XAV0.tar.gz

#下载文件信息
fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgLhmEkoCKAVNQTAAJZX-7XAV0.tar.gz /libfast.tar.gz
ll /

3.Nginx安装和fastdfs-nginx-module安装

nginx安装

#安装编译工具及库文件
yum -y install gcc automake autoconf libtool make gcc-c++ pcre* zlib openssl openssl-devel
cd /fastdfs
#下载PCRE,让Nginx支持重写功能。
wget  http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
tar -zxvf pcre-8.35.tar.gz
cd pcre-8.35

#编译安装 
./configure
make && make install

#查看版本
pcre-config --version

#上传nginx和fastdfs-nginx-module_v1.16.tar.gz到/fastdfs
cd /fastdfs
tar -zxvf nginx-1.15.2.tar.gz

fastdfs-nginx-module安装

cd /fastdfs
tar -zxf fastdfs-nginx-module_v1.16.tar.gz
vim fastdfs-nginx-module/src/config
	#去掉local
	CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/" 
cd /fastdfs/nginx-1.15.2
./configure  --add-module=/fastdfs/fastdfs-nginx-module-1.20/src/
make
/usr/local/nginx/sbin/nginx -V
make intall
#/usr/local/nginx/sbin/nginx -V 后如下图继续进行,不去检查nginx启动情况,需配置后启动

fastdfs-nginx-module安装编译失败解决方案

原因是:

无该/usr/include/local/fastdfs和/usr/include/local/fastcommon/文件

在这里插入图片描述

需将该路径修改到能找到该路径为止
vim fastdfs-nginx-module/src/config
    # 1.16版本修改为如下内容(建议使用1.16版本的fastdfs-nginx-module) 
    CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/" 

    # 1.20版本修改为如下内容
    ngx_module_incs="/usr/include/fastdfs /usr/include/fastcommon/" 
    CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/

nginx访问配置

将fastdfs-nginx-module/src下的mod-fastdfs.conf配置文件拷贝到/etc/fdfs文件目录下(在安装FastDFS主程序时已复制)

进入/etc/fdfs目录,修改mod_fastdfs.conf文件

vim /etc/fdfs/mod_fastdfs.conf	
    # 日志文件存放路径
    base_path=/tmp 
    # tracker的地址 
    tracker_server=192.168.11.134:22122 
    # 组名 group_name=group1 
    # url是否包含group名称 
    url_have_group_name=true 
    # 需要和storage配置的相同 
    storage_server_port=23000 
    # 存储路径个数,需要和store_path个数匹配 
    store_path_count=1 
    # 上传文件存储的位置,可自定义但一定要存在
    store_path0=/fastdfs/storage/data

配置nginx,80端口,server中的 location如:

    server {
        listen       8888;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
   location ~/group([1-9])/M00 {
         root   /fastdfs/storage/data/data;
         ngx_fastdfs_module;
         index  index.html index.htm;
     }

说明:

A、8888 端口值是要与/etc/fdfs/storage.conf 中的 http.server_port=8888 相对应, 因为 http.server_port 默认为 8888,如果想改成 80,则要对应修改过来。

B、Storage 对应有多个 group 的情况下,访问路径带 group 名,如/group1/M00/00/00/xxx, 对应的 Nginx 配置为:

   location ~/group([0-9])/M00 {
	root   /fastdfs/storage/data/data;
    ngx_fastdfs_module;

}

复制http访问配置文件(2.安装FastDFS主程序中已经复制)

 #供nginx访问使用
cp /fdfs/fastdfs-5.11/conf/http.conf /etc/fdfs/ 
#供nginx访问使用
cp /fdfs/fastdfs-5.11/conf/mime.types /etc/fdfs/ 

启动nginx

#启动nginx
/usr/local/nginx/sbin/nginx
#重启
/usr/local/nginx/sbin/nginx -s reload

HHTP访问

利用client上传文件(以图为例)

#先将PC的图片上传带系统/fdfs路径下
fdfs_upload_file /etc/fdfs/client.conf /fdfs/1.png

上传成功后显示:

/group1/M00/00/00/wKgLhmEnDUiAD8WVAAQ8qaqNyck734.png

打开浏览器访问:

http://192.168.11.134:8888/group1/M00/00/00/wKgLhmEnDUiAD8WVAAQ8qaqNyck734.png

即显示如下:

在这里插入图片描述
创建访问data快捷方式——用于nginx代理访问时,可快捷输入找到目标文件

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

在这里插入图片描述在这里插入图片描述

4、卸载FastDFS

注意:所有删除操作请务必先查看是否存在文件文件是否为FastDFS相关和其他重要文件

FastDFS软件并未提供一键卸载功能,卸载比较麻烦,具体步骤可参考如下:

1、停止服务

# 停止tracker服务 

service fdfs_trackerd stop 

# 停止storage服务 

service fdfs_storaged stop 

2、通过storage.conf找到base_path和store_path,然后删除相关文件

cat /etc/fdfs/storage.conf |grep base_path 
cat /etc/fdfs/storage.conf |grep store_path 
# 注意,如果有未备份的文件,请先备份再删除 rm -rf base_path文件夹 rm -rf store_path文件夹

3、通过tracker.conf找到base_path和store_path,然后删除相关文件

cat /etc/fdfs/tracker.conf |grep base_path 
rm -rf base_path文件夹

4、删除配置文件目录

rm -rf /etc/fdfs/

5、删除链接文件

rm –rf /usr/local/bin/fdfs_trackerd 
rm –rf /usr/local/bin/stop.sh 
rm –rf /usr/local/bin/restart.sh

6、删除storage的链接文件

rm –rf /usr/local/bin/fdfs_storaged

7、删除/usr/bin/目录下FastDFS的可执行文件

# 列表查看 
ll /usr/bin/fdfs_* 

# 执行删除 
rm -rf /usr/bin/fdfs_* 

8、删除/usr/include/目录下FastDFS相关的shell脚本

# 列表查看 
ll /usr/include/fastdfs/* 

# 删除 
rm -rf /usr/include/fastdfs/ 

9、删除/usr/lib64/目录下的库文件

# 列表查看 
ll libfdfsclient* 

# 删除 
rm -rf libfdfsclient*

10、删除/usr/lib/目录下的库

# 列表查看 
ll libfdfsclient* 

# 删除 
rm -rf libfdfsclient*

FastDFS单节点集群部署

环境准备工作

名称说明
服务器IP192.168.11.134
服务器IP192.168.11.135
CentOS7.x(mini最小化安装系统)
libfastcommonV1.0.39,FastDFS分离出的一些公用函数包
FastDFSv5.11,FastDFS本体
fastdfs-nginx-modulev1.16,FastDFS和nginx的关联模块,解决组内同步延迟问题
nginxnginx 1.15.2,建议1.18

在集群中的每台服务器都根据FastDFS单机版部署后,每台服务器上应配置:

配置storage服务器

vi /etc/fdfs/storage.conf
#追加所有的tracker_server
    tracker_server=192.168.11.134:22122
    tracker_server=192.168.11.135:22122

在这里插入图片描述

保存后重启storage服务器

/etc/init.d/fdfs_storaged restart

配置Tracker服务器客户端

vim /etc/fdfs/client.conf
	#追加所有的tracker_server
    tracker_server=192.168.11.134:22122
    tracker_server=192.168.11.135:22122

在这里插入图片描述

验证

/usr/bin/fdfs_test /etc/fdfs/client.conf upload client.conf

在这里插入图片描述
在每台服务器上使用如下命令,可发现数据已经同步

ls /fastdfs/storage/data/data/00/00

使用浏览器访问集群中的任意IP,显示结果一致

http://192.168.11.134:8888/group1/M00/00/00/wKgLh2EsmmSAQ_CQAAF_XZ4s9GQ800.png

http://192.168.11.135:8888/group1/M00/00/00/wKgLh2EsmmSAQ_CQAAF_XZ4s9GQ800.png

FastDFS分布式文件系统集群(多节点)

在这里插入图片描述

参考连接:http://www.bjpowernode.com/tutorial_fastdfs/803.html

环境准备工作

名称说明
服务器IP192.168.11.134(部署tracker和storage,group1,client)
服务器IP192.168.11.135(部署tracker和storage,group1,client)
服务器IP192.168.11.136(部署storage,group2,client)
服务器IP192.168.11.137(部署storage,group2,client)
CentOS7.x(mini最小化安装系统)
libfastcommonV1.0.39,FastDFS分离出的一些公用函数包
FastDFSv5.11,FastDFS本体
fastdfs-nginx-modulev1.16,建议v1.20,FastDFS和nginx的关联模块,解决组内同步延迟问题
nginxnginx 1.15.2,建议v1.18

在实际工作中根据实际需求进行规划。

对多台服务器,根据单机部署完成,均能使用网站访问后:(也可根据参考链接分别部署tracker和storage)

多台服务器同时操作使用xshell此功能进行部署
在这里插入图片描述

部署Tracker服务器

在tracker服务器上启动tracker

#非开机自启动(支持start|stop|restart|status)
service fdfs_trackerd start
/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start
#查看状态
service fdfs_trackerd status

部署storage server服务器

将storage server服务器其中两台配置为group1,另外两台部署为group2

storage server服务器都需要关闭tracker功能

service fdfs_trackerd stop
部署节点group 1

由于很多配置在单机部署时已经配置完成,只需在其中进行更改

vim /etc/fdfs/storage.conf
    group_name=group1 #组名,根据实际情况修改,本节点值为 group1
    #增加集群tracker_server的ip地址
    tracker_server=192.168.11.134:22122
    tracker_server=192.168.11.135:22122

#非开机自启动(支持start|stop|restart|status)

service fdfs_storaged start

#非开机自重启支持start|stop|restart|status)

service fdfs_storaged restart
部署节点group 2

由于很多配置在单机部署时已经配置完成,只需在其中进行更改

vim /etc/fdfs/storage.conf
    group_name=group2 #组名,根据实际情况修改,本节点值为 group2
    #增加集群tracker_server的ip地址
    tracker_server=192.168.11.134:22122
    tracker_server=192.168.11.135:22122

#非开机自启动(支持start|stop|restart|status)

service fdfs_storaged start

#非开机自重启支持start|stop|restart|status)

service fdfs_storaged restart
测试节点部署

四台服务器重启storage后

#可通过monitor来查看storage是否成功绑定
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
#若成功绑定会弹出很多行信息,失败则弹出几行

两个组的storage按照相同的步骤操作:

其中唯一的区别是一个是group_name=group1,另一个是group_name=group2

在tracker.conf配置文件配置存储group轮询

vim /etc/fdfs/tracker.conf
    #将默认的store_lookup=2改为store_lookup=0
    store_lookup=0
    #确认store_server值为0
    store_server=0

重启tracker
service fdfs_trackerd restart

进行文件上传

#先将PC的图片上传带系统/fdfs路径下,会发现会存在不同的group节点,即表示节点部署成功

fdfs_upload_file /etc/fdfs/client.conf /fdfs/1.png

在这里插入图片描述

部署Http访问FastDFS上的文件

在每天服务器上进入/etc/fdfs目录,修改mod_fastdfs.conf文件

vim /etc/fdfs/mod_fastdfs.conf	
   
    # 增加tracker的地址 
    tracker_server=192.168.11.134:22122
    tracker_server=192.168.11.135:22122
    
    #修改组的个数
    group_count = 2  
    
    # 修改组名,根据实际情况,比如本机是group1就修改为group1,本机是group2,就改为group2
    group_name=group1 

    # 上传文件存储的位置,可自定义但一定要存在
    store_path0=/fastdfs/storage/data
    
    #在末尾增加2个组的具体信息:
    #其中store_path0的路径一定是上传文件存储的位置,否则会无法找到文件
    [group1]
    group_name=group1
    storage_server_port=23000
    store_path_count=1
    store_path0=/fastdfs/storage/data
    [group2]
    group_name=group2
    storage_server_port=23000
    store_path_count=1
    store_path0=/fastdfs/storage/data

在单机版部署nginx时,nginx.conf是如下配置,便无需更改,否则需对每个storage服务器的nginx进行更改

location ~ /group[1-9]/M0[0-9] {   
    ngx_fastdfs_module;
}

重启storage,启动Nginx

#重启storage
service fdfs_storaged restart

#启动nginx
/usr/local/nginx/sbin/nginx
#重启
/usr/local/nginx/sbin/nginx -s reload

集群测试

利用client上传文件(以图为例)

#先将PC的图片上传带系统/fdfs路径下
fdfs_upload_file /etc/fdfs/client.conf /fdfs/1.png

上传成功后显示:

/group1/M00/00/00/wKgLh2EsxRqABvG8AAQ8qaqNyck069.png

#查看源文件

ls /fastdfs/storage/data/data/00/00

group1上的文件

在这里插入图片描述
group2上的文件

在这里插入图片描述
打开浏览器访问四台storage服务器的ip和各组名,都能访问成功(以下举例,自行测试):

http://192.168.11.134:8888/group1/M00/00/00/wKgLh2EsxRqABvG8AAQ8qaqNyck069.png

http://192.168.11.134:8888/group2/M00/00/00/wKgLh2EsxRqABvG8AAQ8qaqNyck069.png

http://192.168.11.135:8888/group1/M00/00/00/wKgLh2EsxRqABvG8AAQ8qaqNyck069.png

http://192.168.11.135:8888/group2/M00/00/00/wKgLh2EsxRqABvG8AAQ8qaqNyck069.png

tracker上部署nginx访问

配置两个tracker server服务器上的Nginx访问,这两个台服务器上的Nginx只需要做负载均衡。

#部署配置nginx负载均衡:
#http中增加
upstream fastdfs_storage_server {  
    server 192.168.11.134:8888;  
    server 192.168.11.135:8888;
    server 192.168.11.136:8888;
    server 192.168.11.137:8888; 
}
server 8000{
    location ~ /group[1-9]/M0[0-9] {   
        proxy_pass http://fastdfs_storage_server; 
    }
}

在这里插入图片描述
重启nginx

/usr/local/nginx/sbin/nginx -s reload

即可访问tracker server服务器的ip地址,比如:

http://192.168.11.134:8000/group1/M00/00/00/wKgLh2EsxRqABvG8AAQ8qaqNyck069.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值