linux系统中完整安装FastDFS(分布式文件系统)-验证安装

FastDFS完整安装

本文主要来源于:https://blog.csdn.net/XingJames/article/details/52759876 通过验证并进行添加内容,

在同一台机器上安装FDFS 只需要安装一个FDFS 配置 tracker 和storage 中的配置文件制定配置文件启动就可以行。

单台服务器:https://cloud.tencent.com/developer/news/132917

tracker 和storage配置说明可参考:https://blog.csdn.net/cheney16888/article/details/51888279

一 环境信息

1 安装文件信息

软件包

软件版本

备注

FastDFS

v5.02

主要安装服务包

Fastdfs-nginx-module

v1.16

嵌入到nginx服务器中的模块

Libevent

v2.0.20

此包在可选则用其他代替

libfastcommon

 

下载最新的master即可,是按照FDFS的依赖

nginx

v1.11.3

nginx服务

文件下载地址:https://sourceforge.net/projects/fastdfs/files

文件下载指南:https://blog.csdn.net/u012453843/article/details/68951398

2 在多台服务器中安装服务器信息,直接摘自原文

服务器

IP

端口

作用

Tracker1

192.168.21.128

22122

Tracker

Tracker2

192.168.21.129

22122

Tracker

Storage1

192.168.21.137

GroupDFS1

23000

Storage

Storage2

192.168.21.138

GroupDFS1

23000

Storage

 

二 安装libevent

         FastDFS内部使用libevent作为http服务器,如果使用apache或者nginx作为http服务器,该步骤可以不需要。

         如果系统已经安装libevent,需要先卸载,命令如下:

#yum –y remove libevent

         安装libevent,命令如下:

#Tar xvf libevent-2.0.20-stable.tar.gz

#cd libevent

#./configure –prefix=/usr

#make

#make install

 

三 安装 libfastcommon 

libfastcommon是FastDFS的依赖,必须安装,否则在安装FDFS时会出错

libfastcommon安装包使用最新就可,下载地址:https://sourceforge.net/projects/libfastcommon/

提供的一个wget下载:wget https://github.com/happyfish100/libfastcommon/archive/V1.0.38.tar.gz

安装步骤:

1 获取安装包 xxxx.tar

2 解压安装包到目录 /usr/local/ 下

  tar -zxvf xxx.tar  -c /usr/local/

3 ,进入解压后的libfastcommon,进入libfastcommon-master目录执行编译,安装。

4 执行编译命令:

 ./make.sh

5 编译成功后,执行安装命令:

./make.sh install 

注意:libfastcommon安装好后会自动将库文件拷贝至/usr/lib64下,由于FastDFS程序引用usr/lib目录所以需要将/usr/lib64下的库文件拷贝至/usr/lib下或建立软连接(https://www.ibm.com/developerworks/cn/linux/l-cn-hardandsymb-links/)。

先使用方式一进行操作后执行编译命令和安装,如果报错缺少依赖再进行方式二尝试

方式一:创建软链接执行命令

ln 命令:https://www.cnblogs.com/yhongji/archive/2018/07/21/9347238.html

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 

 

方式二:直接将/usr/lib64/ 下文件拷贝到/usr/lib/目录下

   cp  –r  /usr/lib64/*  /usr/lib/

 

 

 

执行make 需要使用 基础依赖 gcc 当执行时报错,可使用查看gcc 安装信息

rpm -qa | grep -i gcc 

当gcc 未安装可用安装命令安装:

yum install gcc gcc-c++

 

如果出现 安装报错Protected multilib versions

可使用:

yum install gcc gcc-c++ --setopt=protected_multilib=false 

 

 


四 安装TrackerServer

注意:默认的FstDFS服务保持日志和数据的目录为:/home/yuqing/fastdfs

1 创建安装目录并解压FastDFS安装文件,安装目录使用:/usr/local/,命令如下:

创建服务保持数据和服务的目录,目录必须在执行服务前创建

#mkdir /home/yuqing/fastdfs

#tar zxvf FastDFS_v5.02.tar.gz /home/yuqing

修改make.sh文件,将"#WITH_HTTPD=1"修改为"WITH_HTTPD=1",开启http支持,在5.02版本实际操作中,未发现有次参数,可根据实际情况进行选择操作。

然后执行如下命令进行安装

#./make.sh                //开始编译

#./make.sh install           //在编译成功情况下执行安装

 

2 配置TrackerServer

源配置文件路径:/usr/local/FastDFS/conf 

安装位置:/usr/local/FastDFS/ 

安装成功后服务启动命令目录: /usr/local/bin/

安装执行安装命令后,会自动将配置tracker.conf 配置文件复制到 /etc/fdfs/下  (不同版本可能有所不同,具体情况通过执行install 安装命令时的日志中确定。

修改 目录/etc/fdfs/ 下的配置文件:tracker.conf,修改log、group等文件存放的目录(可以配置为任意存在的目录,但必须提前创建好):

默认为:bast_path=/home/yuqing/fastdfs 修改为 自己提前创建的路径

修改http端口

http.server_port=8080 修改为 http.server.port=80

开启http支持

如果存在##include http.conf 就修改为 #include http.conf

 

3 使用/etc/fdfs下配置文件启动TrackerServer,启动命令如下:

/usr/local/bin/fdfs_tracked  /etc/fdfs/tracker.conf

 

注意:其他的TrackerServer按照以上步骤安装启动即可。

 

五 安装StorageServer

安装就是解压后文件的目录,服务启动和配置文件位置同上

1 创建安装目录并解压FastDFS安装文件,命令如下:

#mkdir /home/yuqing/fastfdfs

#tar zxvf FastDFS_v5.02.tar.gz -c /usr.local/   //解压到/usr/local/ 目录下

修改make.sh文件,存在就将"#WITH_HTTPD=1"修改为"WITH_HTTPD=1",目的是开启http支持。

然后执行如下命令进行安装

#./make.sh                //开始编译

#./make.sh install           //安装

 

2 配置StorageServer

修改storage.conf配置文件,定义log、group等存储目录(可以是任意存在的目录,必须提前创建):

默认为:Base_path=/home/yuqing/fastdfs -> 可以自定义为 bast_path=/home/yuqing/FastDFS

修改文件存位置,一个storage可以指定多个目录(真实存在的目录):

Store_path0=/home/yuqing/fastdfs 

修改为 自定义目录  store_path0=/home/yuqing/FastDFS

添加store_path1=/home/yuqing/fastdfs2

定义组:

默认是group_name=group1 可自定义修改为  Group_name= GroupDFS1

修改tracker_server的地址和端口,此处配置为安装的tracker服务位置 和端口,可以指定多个,有安装几个就配几个:

Tracker_server=192.168.21.128:22122

Tracker_server=192.168.21.129:22122

开启http支持:

存在 ##include http.conf  就修改为 #include http.conf

3 启动StoragerServer,命令如下:

#/usr/local/bin/fdfs_storaged  /etc/fdfs/storage.conf

 

注意:其他的StorageServer按照以上步骤继续安装即可。

 

六 在每一台StorageServer上安装FastDFS的nginx模块

1 安装libfastcommon

在每一台服务器上,解压libfastcommon,进入libfastcommon-master目录执行
./make.sh
./make.sh install

安装结束后,由于FastDFS主程序设置的lib目录是/usr/local/lib,所以需要创建软链接:

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 

 

2 解压FastDFS-nginx-module

j进入修改fastdfs-nginx-module的config文件,原来的内容是:

CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"

使用vim /home/nginx/fastdfs-nginx-module/src/config,修改为

CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon"

注意:各个版本的位置并不统一.所以需要根据自己的版本修改位置。

在自己系统确定目录是 /usr/local/include/fastdfs 和/usr/local/include/fastcommon/

还是/usr/include/fastdfs  和 /usr/include/fastcommon 是否存在和确切位置。

 

3 安装nginx

在每一个StorageServer上都需要安装Nginx,具体的安装步骤可以参照:

http://blog.itpub.net/29254281/viewspace-1283760/

在安装前 增加fastdfs_nginx-module,在nginx安装目录下执行如下命令:

./configure \
--prefix=/home/nginx/nginx-1.6.2 \
--sbin-path=/home/nginx/nginx-1.6.2/nginx \
--conf-path=/home/nginx/nginx-1.6.2/nginx.conf \
--pid-path=/home/nginx/nginx-1.6.2/nginx.pid \     //次行我执行会报错,可去除
-
-with-http_ssl_module \
--add-module=/home/nginx/fastdfs-nginx-module/src  //次行为关键

【说明】home/nginx/nginx-1.6.2为nginx解压目录,home/nginx/fastdfs-nginx-module/src 是加入的模块

注意:--add-module=/home/nginx/fastdfs-nginx-module 为Fastdfs-nginx-module解压目录。

执行命令进行编译和安装:

make -j `cat /proc/cpuinfo | grep processor| wc -l` && make install

复制fastdfs-nginx-module源码中的配置文件到/etc/fdfs:

cp /home/nginx/fastdfs-nginx-module/src/mod_fastdfs.conf   /etc/fdfs

修改该配置文件(mod_fastdfs.conf):

所有的参数都在上文中有出现

group_name= GroupDFS1  

tracker_server=192.168.1.128:22122

tracker_server=192.168.1.129:22122

store_path0=/home/yuqing/fastdfs

base_path=/tmp

url_have_group_name = true //在URL中包含组名

复制FastDFS的配置到/etc/fdfs,如果安装过程中以自动复制并一直使用的/etc/fdfs中的配置文件,次不忽略:

cd /usr/local/FastDFS/conf

cp http.conf mime.types /etc/fdfs

修改Nginx配置文件:

location / GroupDFS1/M00 {

            root /home/yuqing/fastdfs/data;

                if ($request_filename ~* ^.*?\.(txt|doc|pdf|rar|gz|zip|docx|exe|xlsx|ppt|pptx)$){

                        add_header Content-Disposition: 'attachment;';

                }

                if ($arg_attname ~ "^(.*)") {

                        add_header Content-Disposition "attachment;filename=$arg_attname";

                }

            ngx_fastdfs_module;

        }

黄颜色标记得部分可去掉,使用用于对文件的限制

在/home/yuqing/FastDFS/data目录下创建软连接,将其链接到实际存放数据的目录:

cd /home/yuqing/FastDFS/data

ln -s /home/yuqing/fastdfs/data  /home/yuqing/fastdfs/data/M00

 

启动Nginx:

cd /home/nginx/nginx-1.11.3

./nginx  -c  /home/nginx/nginx-1.11.3/conf/nginx.conf

 

七 测试文件上传下载

由于FastDFS有自带的客户端程序,经过配置后,可进行文件上传。

在Tracker1服务上修改客户端配置文件:/etc/fdfs/client.conf

修改文件存放位置:

默认的为:Base_path=/home/yuqing/fastdfs   自定义修改为示例: bast_path=/home/yuqing/FastDFS

修改Tracker_server根据自己时间安装的配置:

Tracker_server =192.168.21.128:22122

Tracker_server =192.168.21.129:22122

开启http支持

##include http.conf –> #include http.conf

创建文件:

cd /usr/local/bin

#mkdir test.txt

执行上传命令:

#/usr/local/bin/fdfs_test /etc/fdfs/client.conf upload test.txt

执行下载命令:

fdfs_download_file    /etc/fdfs/client.conf      groupDFS1/M00/00/00/CsBAaE_tXv6txIgKAAAAEDYmZBM100_big.txt                test2.txt

由于上传文件后存在一个URL地址,在浏览器中直接访问该地址即可下载文件。

八 常用命令

tracker 和 storage都支持 [start | stop | restart]

1 重启tracker_server:

/usr/local/bin/restart.sh /usr/local/bin/fdfs_tracked /home/yuqing/FastDFS/conf/tracker.conf  

或者:

/usr/local/bin/fdfs_tracked /home/yuqing/FastDFS/conf/tracker.conf   restart

 

2 停止tracker_server:

/usr/local/bin/stop.sh /usr/local/bin/fdfs_tracked /home/yuqing/FastDFS/conf/tracker.conf 

或者

/usr/local/bin/fdfs_tracked /home/yuqing/FastDFS/conf/tracker.con stop

 

3 让server进程退出运行:

直接kill即可让server进程正常退出,可以使用killall命令,例如:

killall fdfs_trackerd

killall fdfs_storaged

也可以使用FastDFS自带的stop.sh脚本,如:

/usr/local/bin/stop.sh /usr/local/bin/fdfs_storaged /home/yuqing/FastDFS/ storage.conf

stop.sh只会停止命令行(包括参数)完全相同的进程。千万不要使用-9参数强杀,否则可能会导致binlog数据丢失的问题。

 

4 重启server进程:

可以kill掉server进程后,执行启动命令行。如:

killall fdfs_trackerd

/usr/local/bin/fdfs_trackerd  /home/yuqing/FastDFS/tracker.conf

或者直接使用FastDFS自带的restart.sh脚本,如:

/usr/local/bin/restart.sh /usr/local/bin/fdfs_trackerd /home/yuqing/FastDFS/tracker.conf

 

5 删除无效的storageserver:

可以使用fdfs_monitor来删除。命令行如下:

/usr/local/bin/fdfs_monitor <config_filename> delete<group_name> <storage_ip>

例如:

/usr/local/bin/fdfs_monitor /home/yuqing/FastDFS client.conf delete groupDFS1 192.168.21.137

注意:如果被删除的storage server的状态是ACTIVE,也就是该storage server还在线上服务的情况下,是无法删除掉的。

 

6 查看tracker_server及storage_server状态

#/usr/local/bin/fdfs_monitor /home/yuqing/FastDFS/conf/client.conf

 

九 附录

1 参考文档

http://blog.csdn.net/fd315063004/article/details/7703142

http://lz710.blog.51cto.com/8184961/1695941

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值