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
方式二:直接将/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 \ 【说明】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