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端口打开

Fastdfs-企业级分布式存储应用_第1张图片 

三、在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端口打开

Fastdfs-企业级分布式存储应用_第2张图片 

四、在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

Fastdfs-企业级分布式存储应用_第3张图片 

2、文件上传

fdfs_upload_file /etc/fdfs/client.conf 2345_image_file_copy_2.jpg

blob.png 

3、文件查看

fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/rBENhlodMpmAHnjTAAAEiN5GKSA9782137

blob.png 

4、文件下载

Fastdfs-企业级分布式存储应用_第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

可以访问到该图片

Fastdfs-企业级分布式存储应用_第5张图片