FastDFS安装部署操作手册
一 环境信息
1 安装文件信息
软件包 | 软件版本 | 备注 |
FastDFS | v5.02 |
|
Fastdfs-nginx-module | v1.16 |
|
Libevent | v2.0.20 |
|
libfastcommon |
| 下载最新的master即可 |
nginx | v1.11.3 |
|
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 |
三 安装TrackerServer
1 创建安装目录并解压FastDFS安装文件,命令如下:
#mkdir /home/yuqing #tar zxvf FastDFS_v5.02.tar.gz /home/yuqing |
修改make.sh文件,将"#WITH_HTTPD=1"修改为"WITH_HTTPD=1",开启http支持。
然后执行如下命令进行安装
#./make.sh //开始编译 #./make.sh install //安装 |
2 配置TrackerServer
配置文件路径:/home/yuqing/FastDFS/conf
修改配置文件:tracker.conf,修改log、group等文件存放的目录(可以配置为任意存在的目录):
bast_path=/home/yuqing/fastdfs 修改为 bast_path=/home/yuqing/FastDFS |
修改http端口
http.server_port=8080 修改为 http.server.port=80 |
开启http支持
##include http.conf 修改为 #include http.conf |
3 启动TrackerServer,启动命令如下:
/usr/local/bin/fdfs_tracked /home/yuqing/FastDFS/conf/tracker.conf |
注意:其他的TrackerServer按照以上步骤安装启动即可。
四 安装StorageServer
1 创建安装目录并解压FastDFS安装文件,命令如下:
#mkdir /home/yuqing #tar zxvf FastDFS_v5.02.tar.gz /home/yuqing |
修改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= GroupDFS1 |
修改tracker_server的地址和端口,可以指定多个:
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 /home/yuqing/FastDFS/conf/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
修改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" |
注意:各个版本的位置并不统一.所以需要根据自己的版本修改位置。
3 安装nginx
在每一个StorageServer上都需要安装Nginx,具体的安装步骤可以参照:http://blog.itpub.net/29254281/viewspace-1283760/
增加fastdfs_nginx-module,在nginx安装目录下执行如下命令:
./configure \ |
注意:--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:
cd /home/yuqing/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 |
六 测试文件上传下载
由于FastDFS有自带的客户端程序,经过配置后,可进行文件上传。
在Tracker1服务上修改客户端配置文件:/home/yuqing/FastDFS/conf/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 /home/yuqing/FastDFS/conf/client.conf upload test.txt |
执行下载命令:
fdfs_download_file /home/yuqing/FastDFS/conf/client.conf groupDFS1/M00/00/00/CsBAaE_tXv6txIgKAAAAEDYmZBM100_big.txt test2.txt |
由于上传文件后存在一个URL地址,在浏览器中直接访问该地址即可下载文件。
七 常用命令
1 重启tracker_server:
/usr/local/bin/restart.sh /usr/local/bin/fdfs_tracked /home/yuqing/FastDFS/conf/tracker.conf |
2 停止tracker_server:
/usr/local/bin/stop.sh /usr/local/bin/fdfs_tracked /home/yuqing/FastDFS/conf/tracker.conf |
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