FastDFS 是一个开源的分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

FastDFS 服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。

存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS 同时对文件的 meta data 进行管理。所谓文件的 meta data 就是文件的相关属性,以键值对(key value pair)方式表示,如:width=1024,其中的 key 为 width,value 为1024。文件 meta data 是文件属性列表,可以包含多个键值对。

安装步骤可以参考源码包内的 INSTALL 文件。本例中不含 fastdfs-nginx-module 和 FastDHT 的安装和部署。

安装需求

FastDFS 5.x 取消了对 libevent 的依赖,添加了对 libfastcommon 的依赖。本例中需求的环境如下:

  1. Linux 操作系统,本例中使用的操作系统是 Ubuntu 14.04。
  2. FastDFS源码:
    FastDFS项目主页下载源码,本例中使用的源码版本是V5.05。
  3. libfastcommon源码:
    下载libfastcommon(c common functions library for FastDFS),本例中使用的版本是V1.07。

安装libfastcommon

libfastcommon 是 FastDFS 项目的通用函数库。其中的方法包括:string,logger,chain,hash,socket,ini file reader,base64 encode / decode,url encode / decode,fasttimer 等。libfastcommon 的安装过程如下:

  1. 下载 libfastcommon 源码包,并且解压

    tar xzf libfastcommon_v1.x.tar.gz
    #for example:
    tar xzf libfastcommon_v1.23.tar.gz
  2. 进入 libfastcommon 源码根目录

    cd libfastcommon
  3. make

    ./make.sh
  4. make install

    ./make.sh install

可以看到 libfastcommon.so 安装到了 “/usr/lib64” 目录。但是 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

安装FastDFS

  1. 安装 libfastcommon 组件
  2. 下载FastDFS源码包,并且解压

    tar xzf FastDFS_v5.x.tar.gz
    #for example:
    tar xzf FastDFS_v5.07.tar.gz
  3. 进入FastDFS源码根目录

    cd FastDFS
  4. make

    ./make.sh
  5. make install

    ./make.sh install

安装完成后,所有可执行文件在目录 “/usr/bin” 下,以 fdfs_ 开头:

[root@localhost ~]# ls /usr/bin/fdfs_*
/usr/bin/fdfs_appender_test   /usr/bin/fdfs_monitor
/usr/bin/fdfs_appender_test1  /usr/bin/fdfs_storaged
/usr/bin/fdfs_append_file     /usr/bin/fdfs_test
/usr/bin/fdfs_crc32           /usr/bin/fdfs_test1
/usr/bin/fdfs_delete_file     /usr/bin/fdfs_trackerd
/usr/bin/fdfs_download_file   /usr/bin/fdfs_upload_appender
/usr/bin/fdfs_file_info       /usr/bin/fdfs_upload_file

配置文件在目录 “/etc/fdfs” 下:

[root@localhost ~]# ls /etc/fdfs
client.conf.sample  storage.conf.sample  tracker.conf.sample

修改/编辑跟踪器和存储节点的配置文件

  1. 首先需要在 “/etc/fdfs” 目录下创建跟踪器的配置文件 tracker.conf 和存储节点的配置文件 storage.conf,在 “/etc/fdfs” 命令下复制即可:

    cd /etc/fdfs
    cp tracker.conf.sample tracker.conf
    cp storage.conf.sample storage.conf
  2. 修改 tracker 配置文件:

    vim /etc/fdfs/tracker.conf
    #或
    vi /etc/fdfs/tracker.conf
    #或
    gedit /etc/fdfs/tracker.conf
    • 其中重要的键是base_path(目录地址,此目录必须存在 ),在这里修改为:
    base_path=/data/fastdfs/tracker
  3. 修改storage配置文件:

    vim /etc/fdfs/storage.conf
    #或
    vi /etc/fdfs/storage.conf 
    #或
    gedit /etc/fdfs/storage.conf
    • 其中重要的键是base_path(目录地址,此目录必须存在 ,注:这里不是上传的文件存放的地址,之前是的,在某个版本后更改了 ),group_name,store_path[x],tracker_server。在这里修改为:
    group_name=group1 
    base_path=/data/fastdfs/storage
    store_path0=/data/fastdfs/storage
    tracker_server=192.168.1.70:22122

tracker.conf和storage.conf更详细说明见:FastDFS 配置文件详解(修订版1)

启动跟踪器和存储节点

在启动跟踪器和存储节点之前,需要创建上面提到的软链接,否则会报错:

/usr/bin/fdfs_trackerd: error while loading shared libraries: libfastcommon.so: cannot open shared object file: No such file or directory
  • 启动跟踪器

    /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf restart
    • 在Linux系统,你可以把fdfs_trackerd作为服务启动:
    /sbin/service fdfs_trackerd start
  • 启动存储节点

    /usr/bin/fdfs_storaged /etc/fdfs/storage.conf restart
    • 在Linux系统,你可以把fdfs_storaged作为服务启动:
    /sbin/service fdfs_storaged start

使用客户端client测试上传下载

启动跟踪器和存储节点后,需要测试它们的配置是否正确,可以使用 FastDFS 自带的客户端测试。在使用客户端之前首先需要配置客户端:

  1. 在 “/etc/fdfs” 目录下创建client的配置文件 client.conf,在 “/etc/fdfs” 命令下复制即可:

    cd /etc/fdfs
    cp client.conf.sample client.conf
  2. 修改 client 配置文件

    vim /etc/fdfs/client.conf
    #或
    vi /etc/fdfs/client.conf
    #或
    gedit /etc/fdfs/client.conf
    • 其中重要的键是tracker_server,base_path。在这里修改为:
    tracker_server=127.0.0.1:22122
    base_path=/home/xxx/fastdfs

客户端client配置完成后,就可以使用客户端上传和下载文件了:

  • 上传文件

    fdfs_upload_file client.conf /home/cjx/1.png 
    #返回结果:
    group1/M00/00/00/fwAAAVaoXT2ALAOOAAplTCfBJQE558.png
  • 查看文件信息

    fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/fwAAAVaoXT2ALAOOAAplTCfBJQE558.png
    #返回结果:
    source storage id: 0
    source ip address: 127.0.0.1
    file create timestamp: 2016-01-27 14:01:33
    file size: 681292
    file crc32: 666969345 (0x27C12501)
  • 下载文件

    fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/fwAAAVaoXT2ALAOOAAplTCfBJQE558.png /home/xxx/fastdfs/1.png
  • 上传文件2

    fdfs_test client.conf upload /home/cjx/1.png

返回结果如下图:

fadfs_upload

参考文章:
搭建FastDFS分布式存储环境(使用Nginx模块)
FastDFS v5.06 部署FastDFS 配置文件详解(修订版1)

标签: 安装, FastDFS, FastDFS分布式文件系统, 配置, 部署

仅有一条评论

  1. […] 上一篇文章讲了FastDFS分布式文件系统安装和部署,这篇文章主要描述如何安装、使用fastdfs-nginx-module和nginx实现通过Http方式访问FastDFS分布式文件系统中的文件。 […]

添加新评论