我的日常

登录/注册
您现在的位置:论坛 资料库 开源社区 > Linux下搭建FastDFS分布式存储环境
总共48086条微博

动态微博

查看: 1988|回复: 1

Linux下搭建FastDFS分布式存储环境

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2016-04-15 17:28:18 |只看该作者 |倒序浏览
    下面的实验准备搭建一个FastDFS分布式存储环境,网络拓扑如下


    首先,在每一台服务器上安装FastDFS
    [root@slaveOne FastDFS]# yum install libevent libevent-devel libevent-headers -y
    [root@slaveOne FastDFS]# ./make.sh
    [root@slaveOne FastDFS]# ./make.sh install
    安装成功之后,可以看到/etc下其相应的配置文件


    配置tracker服务器,192.168.1.1
    修改/etc/fdfs/tracker.conf配置文件
    base_path=/tracker
    启动服务
    [root@master fdfs]# fdfs_trackerd tracker.conf


    配置storage服务器
    192.168.1.2和192.168.1.3 修改/etc/fdfs/storage.conf配置文件
    group_name=group1
    base_path=/storage
    store_path0=/storage
    tracker_server=192.168.1.1:22122

    192.168.1.10修改/etc/fdfs/storage.conf配置文件
    group_name=group2
    base_path=/storage
    store_path0=/storage
    tracker_server=192.168.1.1:22122

    启动storage服务
    [root@slaveOne fdfs]# fdfs_storaged storage.conf
    data path: /storage/data, mkdir sub dir...
    mkdir data path: 00 ...
    mkdir data path: 01 ...
    mkdir data path: 02 ...
    mkdir data path: 03 ...

    ......
    mkdir data path: FE ...
    mkdir data path: FF ...
    data path: /storage/data, mkdir sub dir done.




    环境已经搭建完成,现在在192.168.1.1 Tracker服务器上进行测试。
    修改/etc/fdfs/client.conf 配置文件
    base_path=/tmp/fastdfs
    tracker_server=192.168.1.1:22122

    执行命令上传文件
    [root@master fdfs]# fdfs_upload_file client.conf /root/jquery-easyui-1.4.zip
    group1/M00/00/00/wKgBA1QnlouAcPe0AAu0LAhS8cw4.4.zip



    从返回的信息看,文件已经上传到group1的指定位置,
    group1的存储服务器192.168.1.2和192.168.1.3的/storage/data/00/00路径下可以找到该文件。

    如果需要下载文件,可以使用如下命令


    Tracker的配置文件/etc/fdfs/tracker.conf的store_lookup参数

    # the method of selecting group to upload files
    # 0: round robin
    # 1: specify group
    # 2: load balance, select the max free space group to upload file
    store_lookup=0

    0表示轮调算法,1表示指定group,2表示负载均衡,找剩余空间最大的group
    如果选择1,则还需要指定store_group参数.
    # which group to upload file
    # when store_lookup set to 1, must set store_group to the group name
    store_group=group2


    科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    admin    

    1244

    主题

    544

    听众

    1万

    金钱

    管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    沙发
    发表于 2016-04-15 17:32:11 |只看该作者
    以上搭建FastDFS使用的版本是v4.05。
    这个版本已经比较旧了

    最新的版本是v5.04,由于作者重构了代码,所以安装过程还是有一些不一致.
    最新版本下载地址:http://sourceforge.net/projects/fastdfs/files/
    安装可以参考压缩包内的INSTALL文件。

    实验还是搭建一个FastDFS环境,并增加Nginx模块
    所用软件:
    FastDFS_v5.04.tar.gz
    libfastcommon-master.zip
    fastdfs-nginx-module_v1.16.tar.gz
    nginx-1.6.2.tar.gz

    与之前版本不同的是,v5.04首先需要安装libfastcommon
    下载地址:https://github.com/happyfish100/libfastcommon.git

    1.安装libfastcommon
    在每一台服务器上,解压libfastcommon,进入libfastcommon-master目录执行
    ./make.sh
    ./make.sh install



    可以看到libfastcommon.so安装到了/usr/lib64/libfastcommon.so

    但是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


    2.安装FastDFS主程序
    这个版本似乎已经不需要libevent依赖
    在每台服务器,解压缩FastDFS_v5.04.tar.gz,进入FastDFS目录
    执行
    ./make.sh
    ./make.sh install
    如果上步的软链接创建成功,就应该会非常顺利。

    配置Tracker服务器(192.168.1.70)   
    vim /etc/fdfs/tracker.conf文件,修改如下内容
    base_path=/tracker
    然后执行命令
    fdfs_trackerd tracker.conf

    配置Storage服务器(192.168.1.80,192.168.1.30)
    vim /etc/fdfs/storage.conf
    group_name=group1
    base_path=/storage
    store_path0=/storage
    tracker_server=192.168.1.70:22122
    然后执行命令
    fdfs_storaged storage.conf


    执行测试,修改Tracker服务器192.168.1.70的配置文件/etc/fdfs/client.conf
    tracker_server=192.168.1.170:22122
    执行命令
    [root@mysql1 fdfs]# fdfs_upload_file client.conf /home/nginx/FastDFS_v5.04.tar.gz
    group1/M00/00/00/wKgBHlQvrQGARrS6AAU9tcFAzok.tar.gz


    3.解压fastdfs-nginx-module
    FastDFS通过Tracker服务器,将文件放在Storage服务器存储,
    但是同组之间的服务器需要复制文件,有延迟的问题.
    假设Tracker服务器将文件上传到了192.168.1.80,文件ID已经返回客户端,
    这时,后台会将这个文件复制到192.168.1.30,如果复制没有完成,客户端就用这个ID在192.168.1.30取文件,肯定会出现错误
    这个fastdfs-nginx-module可以重定向连接到源服务器取文件,避免客户端由于复制延迟的问题,出现错误。

    修改fastdfs-nginx-module的config文件
    原来的内容是
    CORE_INCS="$CORE_INCS /usr/local/include/fastdfs /usr/local/include/fastcommon/"

    vim /home/nginx/fastdfs-nginx-module/src/config,修改为
    CORE_INCS="$CORE_INCS /usr/include/fastdfs /usr/include/fastcommon"

    各个版本的位置并不统一.所以需要根据自己的版本修改位置。

    来自:http://www.linuxidc.com/

    回复

    使用道具 举报

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    关闭

    站长推荐上一条 /1 下一条

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表