FastDFS分布式文件系统安装和部署

2016/06/24 16:20
阅读数 817

转载的目的是源网站是个人博客,很有可能随时关闭,为了信息保存便于查看。

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
./make.sh
./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


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

  1. 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. 修改tracker配置文件:
    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)

 

启动跟踪器和存储节点

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

TeX

/usr/bin/fdfs_trackerd: error while loading shared libraries: libfastcommon.so: cannot open shared object file: No such file or directory


使用客户端client测试上传下载启动跟踪器

/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

 

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

  1. 在“/etc/fdfs”目录下创建client的配置文件client.conf,在“/etc/fdfs”命令下复制即可:
    tracker_server=127.0.0.1:22122
    base_path=/home/xxx/fastdfs

     

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

  • 上传文件
    dfs_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)

 

 

 

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部