Fastdfs-企业级分布式存储应用
技术介绍:
FastDFS是由国人余庆所开发,其项目地址:https://github.com/happyfish100
FastDFS是一个轻量级的开源分布式文件系统,主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡。
FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持Linux、FreeBSD、AIX等UNIX系统。它只能通过 专有API对文件进行存取访问,不支持POSIX接口方式,不能mount使用。准确地讲,Google FS以及FastDFS、mogileFS、 HDFS、TFS等类Google FS都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。
FastDFS的特性:
1、分组存储,灵活简洁、对等结构,不存在单点
2、 文件ID由FastDFS生成,作为文件访问凭证。FastDFS不需要传统的name server
3、和流行的web server无缝衔接,FastDFS已提供apache和nginx扩展模块
4、大、中、小文件均可以很好支持,支持海量小文件存储
5、 支持多块磁盘,支持单盘数据恢复
6、 支持相同文件内容只保存一份,节省存储空间
7、 存储服务器上可以保存文件附加属性
8、 下载文件支持多线程方式,支持断点续传
项目环境:
一台tracker:ip 172.17.13.136
一台storage node1: ip 172.17.13.134
一台storage node2: ip 172.17.13.135
项目实现:
一、在所有主机操作:
1、创建目录用来存放下载的rpm包
mkdir fastdfs
cd fastdfs
lftp 172.17.0.1
>cd /pub/Sources/7.x86_64/fastdfs/
>mget *
需要的包有:
ls fastdfs
fastdfs-5.0.11-1.el7.centos.x86_64.rpm
fastdfs-debuginfo-5.0.11-1.el7.centos.x86_64.rpm
fastdfs-server-5.0.11-1.el7.centos.x86_64.rpm
fastdfs-tool-5.0.11-1.el7.centos.x86_64.rpm
libfastcommon-1.0.36-1.el7.centos.x86_64.rpm
libfastcommon-devel-1.0.36-1.el7.centos.x86_64.rpm
libfdfsclient-5.0.11-1.el7.centos.x86_64.rpm
libfdfsclient-devel-5.0.11-1.el7.centos.x86_64.rpm
nginx-1.10.2-1.el7.centos.x86_64.rpm
nginx-all-modules-1.10.2-1.el7.centos.noarch.rpm
nginx-filesystem-1.10.2-1.el7.centos.noarch.rpm
nginx-mod-http-geoip-1.10.2-1.el7.centos.x86_64.rpm
nginx-mod-http-image-filter-1.10.2-1.el7.centos.x86_64.rpm
nginx-mod-http-perl-1.10.2-1.el7.centos.x86_64.rpm
nginx-mod-http-xslt-filter-1.10.2-1.el7.centos.x86_64.rpm
nginx-mod-mail-1.10.2-1.el7.centos.x86_64.rpm
nginx-mod-stream-1.10.2-1.el7.centos.x86_64.rpm
2、安装需要的rpm包
yum localinstall lib* fast*
二、在Tracker服务器上操作:
1、创建工作目录
mkdir -p /data/fastdfs/tracker
2、编辑配置文件并启动服务
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
vim /etc/fdfs/tracker.conf
base_path=/data/fastdfs/tracker
启动服务:/etc/init.d/fdfs_trackerd start
ss -ntl 查看22122端口打开
三、在storage主机上操作:
1、创建工作目录
mkdir -p /data/fastdfs/storage
2、编辑配置文件并启动服务
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
vim /etc/fdfs/storage.conf
base_path=/data/fastdfs/storage 工作路径
store_path0=/data/fastdfs/storage 存储路径
tracker_server=172.17.13.136:22122
启动服务:/etc/init.d/fdfs_storaged start
ss -ntl 查看23000端口打开
四、在tracker主机上操作:
1、编辑客户端工具的配置文件,并查看存储节点状态
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf
vim /etc/fdfs/client.conf
tracker_server=172.17.13.136:22122
base_path=/data/fastdfs/tracker
查看:fdfs_monitor /etc/fdfs/client.conf
2、文件上传
fdfs_upload_file /etc/fdfs/client.conf 2345_image_file_copy_2.jpg
3、文件查看
fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/rBENhlodMpmAHnjTAAAEiN5GKSA9782137
4、文件下载
如何实现nginx功能:
storage:
1、安装nginx以及对应模块
cd ~/fastdfs/
yum localinstall nginx*
2、修改nginx的location配置,添加映射路径和启动模块。注意排除其他location匹配干扰
vim /etc/nginx/nginx.conf
location /group1/M00 {
root /data/fastdfs/storage/data;
ngx_fastdfs_module;
}
3、修改对应fastdfs模块
vim /etc/fdfs/mod_fastdfs.conf
url_have_group_name = true
tracker_server=172.17.13.136:22122
store_path0=/data/fastdfs/storage
systemctl start nginx
测试:http://172.17.13.134/group1/M00/00/00/rBENh1odSWeAP8amAAKKmTpeYKw687.jpg
可以访问到该图片