fastDFS架构解析和安装测试教程

fastDFS虚拟机配置教程

参考资料:http://www.codexiu.cn/nginx/blog/11560/

fastDFS工作原理和过程

  1. fastDFS架构
    FastDFS服务端有三个角色:跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)。

    • tracker server:跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。相比GFS中的master更为精简,不记录文件索引信息,占用的内存量很少。
    • storage server:存储服务器(又称:存储节点或数据服务器),文件和文件属性(meta data)都保存到存储服务器上。Storage server直接利用OS的文件系统调用管理文件。
    • client:客户端,作为业务请求的发起方,通过专有接口,使用TCP/IP协议与跟踪器服务器或存储节点进行数据交互。
  2. 文件上传机制

    1)Client通过Tracker server将文件上传到Storage server。

    2)Tracker server向Client返回一台可用的Storage server的IP地址和端口号。

    3)Client直接通过Tracker server返回的IP地址和端口与其中一台Storage server建立连接并进行文件上传。

    4)上传完成,Storage server返回Client一个文件ID,文件上传结束。

  3. 文件下载机制

    1)Client通过Tracker server下载指定Storage组中某个Storage server上的某个文件(文件名包括Storage组名称)。

    2)Tracker server向Client返回一台可用的Storage server的IP地址和端口号。

    3)Client直接通过Tracker server返回的IP地址和端口与其中一台Storage server建立连接并进行文件下载。

安装虚拟机

  1. 安装自己熟悉的虚拟机软件,建立一个Linux虚拟机,我这里使用的虚拟机软件时parallels Desktop,Linux发行版是Ubuntu。
  2. 通过虚拟机软件的额拷贝或者克隆功能复制虚拟机。注意要保证每个虚拟机有不同的ip地址,使用Parallels Desktop的童鞋可以在在建立的虚拟机右键(如图)!克隆的图片来克隆虚拟机。如果这几载Finder中复制文件会造成这几个虚拟机有同样的IP地址。

安装fastDFS

  1. 通过终端或者打开虚拟机内部的终端。
  2. 下载安装libfastcommon

    git clone http://github.com/happyfish100/libfastcommon.git #获取libfastcommon
    cd ./libfastcommon/ #转到clone下来的目录
    ./make.sh #编译
    sudo ./make.sh install #安装libfastcommon
    
  3. 下载安装fastdfs

    下载地址sourceforge.net我下载的是v5.08

    cd ../FastDFS/ # 到fastDFS文件目录下
    ./make.sh #执行编译脚本
    sudo ./make.sh install #安装fastDFS

    确认make没有错误后,执行安装,默认会安装到/usr/bin中,并在/etc/fdfs中添加三个配置文件。

  4. 建立文件夹

    sudo mkdir -p /home/yuqing/fastdfs #创建目录(在client上,storage上,在tracker上)
  5. 修改配置文件

    sudo mv /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf #将例子配置文件改为配置文件(在storage节点操作)
    sudo vim /etc/fdfs/storage.conf #修改配置文件是指tracker_server为指定ip(在storage服务器操作)
    sudo mv /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf#(在tracker服务器操作)
    sudo mv /etc/fdfs/client.conf.sample /etc/fdfs/client.conf#(在client机器上操作)
    sudo vim /etc/fdfs/client.conf #(修改tracker_server的地址,在client机器上操作)
  6. 启动tracker和storage

    sudo /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf #启动tracker
    sudo /usr/bin/fdfs_storaged /etc/fdfs/storage.conf #启动storage
  7. 测试上传功能

    /usr/bin/fdfs_test /etc/fdfs/client.conf upload /home/jacob/FastDFS/testfile.txt #用client测试fastDFS

    如果上传成功应该可以看到以下输出

    This is FastDFS client test program v5.08
    
    Copyright (C) 2008, Happy Fish / YuQing
    
    FastDFS may be copied only under the terms of the GNU General
    Public License V3, which may be found in the FastDFS source kit.
    Please visit the FastDFS Home Page http://www.csource.org/ 
    for more detail.
    
    [2016-06-03 21:48:10] DEBUG - base_path=/home/yuqing/fastdfs, connect_timeout=30, network_timeout=60, tracker_server_count=1, anti_steal_token=0, anti_steal_secret_key length=0, use_connection_pool=0, g_connection_pool_max_idle_time=3600s, use_storage_id=0, storage server id count: 0
    
    tracker_query_storage_store_list_without_group: 
        server 1. group_name=, ip_addr=10.211.55.17, port=23000
    
    group_name=group1, ip_addr=10.211.55.17, port=23000
    storage_upload_by_filename
    group_name=group1, remote_filename=M00/00/00/CtM3EVdRipqAXBnpAAAAHP1z660878.txt
    source ip address: 10.211.55.17
    file timestamp=2016-06-03 21:48:10
    file size=28
    file crc32=4252232621
    example file url: http://10.211.55.17/group1/M00/00/00/CtM3EVdRipqAXBnpAAAAHP1z660878.txt
    storage_upload_slave_by_filename
    group_name=group1, remote_filename=M00/00/00/CtM3EVdRipqAXBnpAAAAHP1z660878_big.txt
    source ip address: 10.211.55.17
    file timestamp=2016-06-03 21:48:10
    file size=28
    file crc32=4252232621
    example file url: http://10.211.55.17/group1/M00/00/00/CtM3EVdRipqAXBnpAAAAHP1z660878_big.txt
    
  8. 测试下载功能
    这里需要用到刚才上传时候用到的url,注意只需要group开始的部分
    /usr/bin/fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/CtM3EVdRipqAXBnpAAAAHP1z660878_big.txt testfileDownload.txt

    如果下载成功,就可以看到当前工作目录下面有一个testfileDownload.txt文件了!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值