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,需要先卸载,命令如下:
安装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等文件存放的目录(可以配置为任意存在的目录):
修改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
|
定义组:
修改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 \
--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
|
注意:--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 |