FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。
FastDFS有两个角色:跟踪服务(tracker)和存储服务(storage),跟踪服务控制,调度文件以负载均衡的方式访问;存储服务包括:文件存储,文件同步,提供文件访问接口,同时以key value的方式管理文件的元数据。
FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和
客户端(Client)。
Tracker Server: 跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server
和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。
Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。
Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。
应用场景:对4k至百MB需要存储 FastDFS最佳 如果上G 上几十G 建议使用GlusterFS镜像文件
操作系统: CentOS 6.6
FastDFS: fastdfs-5.05 、 fastdfs-nginx-module-v1.16 、libfastcommon-v1.0.7
Nginx : nginx-1.10.1
安装:
安装libfastcommon
在每一台服务器上,解压libfastcommon,进入libfastcommon-master目录执行
./make.sh
./make.sh install
[root@dell-09 src]# pwd
/opt/soft/soft/libfastcommon-master/src
[root@dell-09 src]# install -m 755 libfastcommon.so /usr/lib64/
mkdir -p /usr/include/fastcommon/
可以看到libfastcommon.so安装到了/usr/lib64/libfastcommon.so
但是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主程序
这个版本似乎已经不需要libevent依赖
在每台服务器,解压缩FastDFS_v5.05.tar.gz,进入FastDFS目录
执行
./make.sh
./make.sh install
配置文件:
进入FastDFS解压目录
[root@localhost FastDFS]# cd conf/
[root@localhost conf]# ls
anti-steal.jpg client.conf http.conf mime.types storage.conf storage_ids.conf tracker.conf
[root@localhost conf]# pwd
/root/fastdfs/FastDFS/conf
[root@localhost conf]# cp -rf * /etc/fdfs/
1、修改vim /etc/fdfs/tracker.conf
base_path=/data/app/fastdfs
http.server_port=80
创建所需目录 mkdir -p /data/app/fastdfs
启动tracker服务:/usr/local/bin/fdfs_trackerd/etc/fdfs/tracker.conf restart
2、修改vim /etc/fdfs/storage.conf
base_path=/data/app/fastdfs/storage
store_path0=/data/app/fastdfs/storage
tracker_server=192.168.198.129:22122
创建目录:mkdir -p /data/app/fastdfs/storage
启动storage服务:/usr/local/bin/fdfs_trackerd/etc/fdfs/storage.conf restart
3、修改vim /etc/fdfs/client.conf
base_path=/data/app/fastdfs/storage
tracker_server=192.168.198.129:22122
创建目录:mkdir -p /data/app/fastdfs/storage
检验:/usr/bin/fdfs_monitor /etc/fdfs/storage.conf
加载fastdfs-nginx-module 模块
1、上传软件 master.zip、nginx1.10.1
两个软件都解压,然后编译加载模块。
[root@localhost nginx-1.10.1]# pwd
/root/fastdfs/nginx-1.10.1
[root@localhost nginx-1.10.1]# ./configure --prefix=/usr/local/nginx--pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock--error-log-path=/var/log/nginx/error.log--http-log-path=/var/log/nginx/access.log --with-http_gzip_static_module--http-client-body-temp-path=/var/temp/nginx/client--http-proxy-temp-path=/var/temp/nginx/proxy--http-fastcgi-temp-path=/var/temp/nginx/fastcgi--http-uwsgi-temp-path=/var/temp/nginx/uwsgi--http-scgi-temp-path=/var/temp/nginx/scgi --add-module=/root/fastdfs/fastdfs-nginx-module-master/src
复制文件到/etc
[root@localhost src]# pwd
/root/fastdfs/fastdfs-nginx-module-master/src
[root@localhost src]# cp mod_fastdfs.conf /etc/fdfs/
修改这几个地方
vim mod_fastdfs.conf
tracker_server=192.168.198.129:22122
url_have_group_name = true
store_path0=/data/app/fastdfs/storage
nginx修改:
配置 Nginx及编辑nginx.conf文件:
cd /usr/local/nginx/conf
vi nginx.conf
在配置文件中加入:
location /group1/M00 {
root /data/fastdfs/storage/;
ngx_fastdfs_module;
}
我们配置了group1/M00的访问,所以我们需要建立一个group1文件夹,并建立M00到data的软链接 mkdir /data/fastdfs/storage/data/group1
ln -s /data/fastdfs/storage/data/data/fastdfs/storage/data/group1/M00
检验:/usr/local/nginx/sbin/nginx -V 看是否有加载模块dfs模块
生成测试链接:/usr/bin/fdfs_test /etc/fdfs/client.conf upload anti-steal.jpg
打开测试网页:
http://192.168.198.129/group1/M00/00/00/CsEBPVgWV1GAZ9ncAABdrZgsqUU641_big.jpg
note:
集群方案思路:
应用场景: 三台服务器分别做三组存储,并且需要两台tracker地址做主备关系,当一台down机后需要另外一台可以提供正常的访问连接
#注:此处不考虑存储数据安全性,如果需要保障数据不丢失,可以分别每台存储配置两组group(相同group之间数据会自动备份) ,三台服务器group分别为:
第一台服务器:group1 group2
第二台服务器:group1 group3
第三台服务器:group2 group3
持续更新中……