学习FastDfs(一)
一、简介
FastDFS是一个开源的轻量级分布式文件系统,由跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)三个部分组成
fastfds有两个角色:跟踪服务和存储服务
跟踪服务控制:主要做调度工作,在访问上起负载均衡的作用。
存储服务包括:文件存储,文件同步,提供文件访问接口,同时以key value的方式管理文件的元数据
不同组的Storage server之间不会相互通信,同组内的Storage server之间会相互连接进行文件同步。
上传:
下载:
二、安装
https://github.com/happyfish100
1、安装libfastcommon
unzip libfastcommon-master.zip cd libfastcommon-master yum install gcc ./make.sh && ./make.sh install
2、安装 FastDFS
unzip fastdfs-master.zip
cd fastdfs-master ./make.sh && ./make.sh install
3、配置 Tracker 服务
mkdir -pv /data/fdfs_tracker
1、修改配置文件 cd /etc/fdfs cp tracker.conf.sample tracker.conf vim tracker.conf base_path=/data/fdfs_tracker
2、启动服务 /etc/init.d/fdfs_trackerd start
netstat -lnt | grep 22122
4、配置 Storage 服务
mkdir -pv /data/fdfs_storage/base
mkdir -pv /data/fdfs_storage/store
1、修改配置文件 cd /etc/fdfs cp storage.conf.samplestorage.conf vim storage.conf base_path=/data/fdfs_storage/base #运行数据文件和日志目录 store_path0=/data/fdfs_storage/store #实际文件存储路径 tracker_server=192.168.4.16:22122 tracker_server=192.168.4.17:22122 2、启动服务 /etc/init.d/fdfs_storaged start
netstat -lnt| grep 23000
5、服务监听测试
测试storage服务器是否登记到tracker服务器
/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
6、客户端配置
cd /etc/fdfs cp client.conf.sample client.conf vim client.conf base_path=/tmp tracker_server=192.168.4.16:22122 tracker_server=192.168.4.17:22122
上传文件:
fdfs_upload_file /etc/fdfs/client.conf /etc/hosts
下载文件:
fdfs_download_file etc/fdfs/client.conf group1/M00/00/00/wKgEEFxkooGAexzqAAAEIMsBJNc2958404
查看文件信息
fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/wKgEEFxkooGAexzqAAAEIMsBJNc2958404
删除文件
fdfs_delete_file /etc/fdfs/client.conf group1/M00/00/00/wKgEEFxkooGAexzqAAAEIMsBJNc2958404
追加上传:
echo abc > f1.txt echo def > f2.txt fdfs_upload_appender /etc/fdfs/client.conf f1.txt fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgCDFhQDwuET0QeAAAAAEd3frE087.txt 内容和f1.txt一致 fdfs_append_file /etc/fdfs/client.conf group1/M00/00/00/wKgCDFhQDwuET0QeAAAAAEd3frE087.txtf2.txt 追加上传
fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/wKgCDFhQDwuET0QeAAAAAEd3frE087.txt 内容f1+f2
删除某个storagegroup
1、停止服务 /etc/init.d/fdfs_storaged stop 2、删除节点 fdfs_monitor /etc/fdfs/client.conf delete group1 192.168.4.17
php客户端:
1、安装模块 yum install php php-devel php-fpm php-mbstring php-common cd fastdfs-master/php_client/ /usr/bin/phpize ./configure --with-php-config=/usr/bin/php-config make && make install 2、测试 cat fastdfs_client.ini >> /etc/php.ini #追加到php.ini /usr/bin/php fastdfs_test.php /usr/bin/php -i | grep configure #查看php编译参数 /usr/bin/php -i | grep php.ini #查看ini文件路径
Java客户端:
java -version 检查Java环境 下载 https://github.com/happyfish100/fastdfs-client-java yum install ant cd fastdfs-client-java/src ant 生成 /root/fastdfs-client-java/src/build/fastdfs_client.jar
上传:
java -cp fastdfs_client.jar org.csource.fastdfs.test.TestClient /etc/fdfs/client.conf /etc/resolv.conf
监控fastdfs的状态
java -cp fastdfs_client.jar org.csource.fastdfs.test.Monitor /etc/fdfs/client.conf
nginx模块客户端:
https://github.com/happyfish100/fastdfs-nginx-module
1、下载并解压 unzip fastdfs-nginx-module-master.zip 2、重新编译nginx,添加模块 cd nginx ./configure --prefix=/app/nginx -add-module=/root/fastdfs-nginx-module/src/ make (只make不make install,make install后会覆盖之前的安装) cp objs/nginx /app/nginx/sbin/nginx 3、修改配置 cd /root/fastdfs-nginx-module/src/ cp mod_fastdfs.conf /etc/fdfs/ cd /root/fastdfs/conf/ cp anti-steal.jpg http.conf mime.types /etc/fdfs/ touch /var/log/mod_fastdfs.log chown nginx.nginx /var/log/mod_fastdfs.log vim /etc/nginx/nginx.conf location /group1/M00 { root /data/fdfs_storage/store; ngx_fastdfs_module; } vim /etc/fdfs/mod_fastdfs.conf tracker_server=192.168.4.16:22122 tracker_server=192.168.4.17:22122 url_have_group_name=true store_path0=/data/fastdfs/storage # 要和/etc/fdfs/storage.conf里的一致 log_filename=/var/log/mod_fastdfs.log response_mode=proxy nginx -t nginx -s stop && nginx
上传测试:
fdfs_upload_file /etc/fdfs/client.conf DSC_0171.JPG
浏览器访问:http://192.168.4.16/group1/M00/00/00/wKgXhVh545iAP6ETADyH-kmtQ2U888.JPG
注:生产中每个storage server上都要装fastdfs-nginx-module
QQ:328864113 微信:wuhg2008