Fastdfs介绍及部署
FastDFS部署
一、FastDFS tracker storage 的工作原理及流程
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。 FastDFS file upload group0/M00/00/02/Cs8b8lFJIIyAH841AAAbpQt7xVI4715674 组名:group0 磁盘: M00 目录:00/02 文件名:Cs8b8lFJIIyAH841AAAbpQt7xVI4715674 文件名包含的信息: 采用Base64编码, 包含的字段包括 : 源storage server Ip 地址 文件创建时间 文件大小 文件CRC32效验码 随机数 需要说明的是,client为使用FastDFS服务的调用方,client也应该是一台服务器,它对tracker和storage的调用均为服务器间的调用。
|
二、FastDFS 同步机制说明
tracker server会在内存中保存storage分组及各个组下的storage server,并将连接过自己的storage server及其分组保存到文件中,以便下次重启服务时能直接从本地磁盘中获得storage相关信息。storage server会在内存中记录本组的所有服务器,并将服务器信息记录到文件中。tracker server和storage server之间相互同步storage server列表: 1. 如果一个组内增加了新的storage 1. storage server A连接tracker server,tracker server将storage server A的状态设置为FDFS_STORAGE_STATUS_INIT。storage server A询问追加同步的源服务器和追加同步截至时间点,如果该组内只有storage server A或该组内已成功上传的文件数为0,则没有数据需要同步,storage server A就可以提供在线服务,此时tracker将其状态设置为FDFS_STORAGE_STATUS_ONLINE,否则tracker server将其状态设置为FDFS_STORAGE_STATUS_WAIT_SYNC,进入第二步的处理;
|
三、部署
1.部署fastdfs
wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz tar –zxvf V1.0.7 tar –zxvf V5.05 cp -r libfastcommon-1.0.7 /usr/local/libfastcommom cd /usr/local/libfastcommom/ yum install gcc -y ./make.sh ./make.sh install 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 find / -name libfdfsclient.so cp -r fastdfs-5.05/ /usr/local/fastdfs cd /usr/local/fastdfs ./make.sh ./make.sh install ll /etc/fdfs/ cd /etc/fdfs
|
2.配置文件设置
cp tracker.conf.sample tracker.conf cp storage.conf.sample storage.conf cp client.conf.sample client.conf
vim /etc/fdfs/tracker.conf (见附件1) 一般只需改动以下几个参数即可: disabled=false #启用配置文件 port=22122 #设置tracker的端口号 base_path=/home/tracker/ #设置tracker的数据文件和日志目录(需预先创建) http.server_port=8030 #设置http端口号
vim /etc/fdfs/ storage.conf (见附件2) 一般只需改动以下几个参数即可: disabled=false #启用配置文件 group_name=group1#组名,根据实际情况修改 port=23000#设置storage的端口号 base_path=/fdfs/storage#设置storage的日志目录(需预先创建) store_path_count=1#存储路径个数,需要和store_path个数匹配 store_path0=/fdfs/storage#存储路径 tracker_server=172.16.1.202:22122 #tracker服务器的IP地址和端口号 http.server_port=8080 #设置http端口号
|
3.启动
mkdir -p /home/fastdfs/tracker 启动tracker tracker.conf fdfs_trackerd /etc/fdfs/tracker.conf mkdir /home/fastdfs/storage 启动tracker storage.conf fdfs_storaged /etc/fdfs/storage.conf
|
四、安装nginx及nginx插件
1.部署nginx插件
cd /usr/local/fastdfs/conf cp http.conf /etc/fdfs/ cp mime.types /etc/fdfs/ tar -zxvf fastdfs-nginx-module_v1.16.tar.gz
vi fastdfs-nginx-module/src/config 第四行改为: CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon/"
cp /root/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/ vi /etc/fdfs/mod_fastdfs.conf (见附件3)
|
2.编译安装nginx
cd /root tar -zxvf nginx-1.7.10.tar.gz cd nginx-1.7.10 yum install gcc gcc-c++ pcre-devel zlib-devel openssl-devel -y ./configure --prefix=/usr/local/nginx/ --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-md5=/usr/lib --with-sha1=/usr/lib --with-http_gzip_static_module --add-module=/root/fastdfs-nginx-module/src&& make&&make install vi /usr/local/nginx/conf/ 修改端口号为8030(任意) 加入一组location location ~/group[1-3]/M00{ root /home/fastdfs/data; ngx_fastdfs_module; }
cd /root vi / nginx (见附件4)
chmod a+x nginx cp nginx /etc/init.d chkconfig --add nginx chkconfig nginx on service nginx start
netstat -antup |grep 8030 |
3.配置软连接
ln -s /home/fastdfs/storage/data /home/fastdfs/storage/data/M00
4.启动nginx
service nginx restart
tail -400f /usr/local/nginx/logs/error.log
五、测试
echo "hello ccit" >test.txt
/usr/bin/fdfs_test /etc/fdfs/client.conf upload test.txt
浏览器访问:
http://192.168.10.17:8030/group1/M00/00/00/wKgKEVgRURyAM-kKAAAAC-QpJeQ227.txt
六、常用命令
上传文件:/usr/local/bin/fdfs_upload_file <config_file> <local_filename>
下载文件:/usr/local/bin/fdfs_download_file <config_file> <file_id> [local_filename]
删除文件:/usr/local/bin/fdfs_delete_file <config_file> <file_id>
启动、停止命令
启动:
fdfs_trackerd /etc/fdfs/tracker.conf
fdfs_storaged /etc/fdfs/storage.conf
停止:
ps -aux|grep fdfs
kill -9 进程号
- 点赞
- 收藏
- 关注作者
评论(0)