zoukankan      html  css  js  c++  java
  • FastDFS文件管理系统

     

    一.FastDFS介绍

            FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务。

    FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。

    Tracker Server:跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。

    Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。

           Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。

     存储节点Storage采用了分卷[Volume](或分组[group])的组织方式,存储系统由一个或多个组组成,组与组之间的文件是相互独立的,所有组的文件容量累加就是整个存储系统中的文件容量。

       一个卷[Volume](组[group])可以由一台或多台存储服务器组成,一个组中的存储服务器中的文件都是相同的,组中的多台存储服务器起到了冗余备份和负载均衡的作用,数据互为备份,存储空间以group内容量最小的storage为准,所以建议group内的多个storage尽量配置相同,以免造成存储空间的浪费。

    二.操作环境

    操作系统:Centos 6.5 

    IP:192.168.200.101

    三.下载安装FastDFS

    1.安装相关依赖包

    [root@zha ~]# yum -y install unzip zip  gcc-c++

    2.下载安装libfastcommon(公共C函数库)

    [root@zha ~]# wget https://github.com/happyfish100/libfastcommon/archive/V1.0.7.tar.gz
    
    [root@zha ~]# mkdir /softpackages
    
    [root@zha ~]# tar xf V1.0.7 -C /softpackages/
    
    [root@zha ~]# cd /softpackages/libfastcommon-1.0.7/
    
    [root@zha libfastcommon-1.0.7]# ./make.sh && ./make.sh install

    libfastcommon.so 安装到了/usr/lib64/libfastcommon.so,但是FastDFS主程序设置的lib目录是/usr/local/lib,所以需要创建软链接。

    [root@zha libfastcommon-1.0.7]# ln -s /usr/lib64/libfastcommon.so /usr/local/lib/libfastcommon.so
    
    [root@zha libfastcommon-1.0.7]# ln -s /usr/lib64/libfastcommon.so /usr/lib/libfastcommon.so
    
    [root@zha libfastcommon-1.0.7]# ln -s /usr/lib64/libfdfsclient.so /usr/local/lib/libfdfsclient.so
    
    [root@zha libfastcommon-1.0.7]# ln -s /usr/lib64/libfdfsclient.so /usr/lib/libfdfsclient.so

    3.下载安装FastDFS

    wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
    
    [root@zha libfastcommon-1.0.7]# cd /softpackages/
    
    [root@zha softpackages]# wget https://github.com/happyfish100/fastdfs/archive/V5.05.tar.gz
    
    [root@zha softpackages]# ls
    
    libfastcommon-1.0.7  V5.05
    
    [root@zha softpackages]# tar xf V5.05
    
    [root@zha softpackages]# cd fastdfs-5.05/
    
    [root@zha fastdfs-5.05]# ./make.sh && ./make.sh install

    默认安装方式安装后的相应文件与目录:

    服务脚本:/etc/init.d/fdfs_storaged

                   /etc/init.d/fdfs_tracker

    配置文件:

    /etc/fdfs/client.conf.sample

    /etc/fdfs/storage.conf.sample

    /etc/fdfs/tracker.conf.sample

    4. 配置FastDFS跟踪器(Tracker)

    [root@zha fastdfs-5.05]# cd /etc/fdfs/
    
    [root@zha fdfs]# cp tracker.conf.sample tracker.conf

    修改tracker.conf配置文件

    [root@zha fdfs]# vim tracker.conf

    Tracker 数据和日志目录地址(根目录必须存在,子目录会自动创建)

    创建tracker基础数据目录,即base_path对应的目录(用于存储tracker的数据文件和日志文件等)

    [root@zha fdfs]# mkdir -p /home/chenjiaxin/fastdfs

    为启动脚本创建软引用,因为fdfs_trackerd等命令在/usr/local/bin中并没有,而是在/usr/bin路径下

    [root@zha fdfs]# ln -s /usr/bin/fdfs_trackerd  /usr/local/bin
    
    [root@zha fdfs]# ln -s /usr/bin/stop.sh  /usr/local/bin
    
    [root@zha fdfs]# ln -s /usr/bin/restart.sh  /usr/local/bin

    启动服务

    [root@zha fdfs]# /etc/init.d/fdfs_trackerd start
    
    Starting FastDFS tracker server:

    查看端口

    [root@zha fdfs]# netstat -antp|grep fdfs
    
    tcp        0      0 0.0.0.0:22122               0.0.0.0:*                   LISTEN      15181/fdfs_trackerd

    设置开机启动

    [root@zha fdfs]# chkconfig fdfs_trackerd on

     

    5. 配置 FastDFS 存储 (Storage)

    创建Storage服务器的文件目录,注意同Tracker相比要多建一个目录,因为Storage还需要一个文件存储路径,用于存放接收的文件:

    [root@zha fdfs]# mkdir /opt/fastdfs_storage
    
    [root@zha fdfs]# mkdir /opt/fastdfs_storage_data
    
    [root@zha fdfs]# cp storage.conf.sample storage.conf

    修改storage.conf配置文件:

    [root@zha fdfs]# vim storage.conf
    
    #设置storage数据文件和日志目录
    base_path=/opt/fastdfs_storage 
    #实际文件存储路径 store_path0
    =/opt/fastdfs_storage_data #存储路径个数,需要和store_path个数匹配 store_path_count=1 #tracker 服务器的 IP地址和端口号,如果是单机搭建,IP不要写127.0.0.1,否则启动不成功 tracker_server=192.168.200.101 :22122
    #设置 http 端口号 http.server_port
    =8888

    配置完成后同样要为Storage服务器的启动脚本设置软引用:

    [root@zha fdfs]# ln -s /usr/bin/fdfs_storaged /usr/local/bin
    
    [root@zha fdfs]# /etc/init.d/fdfs_storaged start
    
    Starting FastDFS storage server:

    查看是否有23000,22122,两个端口

    [root@zha fdfs]# netstat -nulpt | grep fdfs
    
    tcp        0      0 0.0.0.0:23000               0.0.0.0:*                   LISTEN      15228/fdfs_storaged
    
    tcp        0      0 0.0.0.0:22122               0.0.0.0:*                   LISTEN      15181/fdfs_trackerd

    设置开机启动

    [root@zha fdfs]#chkconfig fdfs_storaged on

    查看:storage服务器是否已经登记到 tracker服务器

    [root@zha fdfs]# /usr/bin/fdfs_monitor /etc/fdfs/storage.conf
    
    Storage 1:
    
                id = 192.168.200.101
    
                ip_addr = 192.168.200.101 (bogon)  ACTIVE

    看到192.168.200.101 ACTIVE 证明成功登记到了tracker服务器

    现在已经完成fastdfs的全部配置!

    四.文件上传测试

    1.修改track客户端配置文件

    [root@zha fdfs]# cp client.conf.sample client.conf
    
    [root@zha fdfs]# vim client.conf

    [root@zha fdfs]# mkdir -p /home/a/fastdfs

    2.上传文件

    [root@zha ~]# cd /opt/fastdfs_storage/data/
    
    [root@zha data]# ls
    
    fdfs_storaged.pid  storage_stat.dat
    
    Penguins.jpg       sync
    
    [root@zha data]# /usr/bin/fdfs_upload_file /etc/fdfs/client.conf Penguins.jpg
    
    group1/M00/00/00/wKjIZVr6ZLqAD2P2AAvea_OGt2M341.jpg

    上传成功后返回文件ID号:

    group1/M00/00/00/wKjIZVr6ZLqAD2P2AAvea_OGt2M341.jpg

    返回的文件ID由group、存储目录、两级子目录、fileid、文件后缀名(由客户端指定,主要用于区分文件类型)拼接而成。

  • 相关阅读:
    treesurgeon
    WatiN
    综艺《燃烧吧!天才程序员》:科技类真人秀凭什么吸引人?它是在消费群体吗?
    海外IT老兵谈996:人才不是加班加出来的,期待有企业能站出来破局
    C语言游戏脚本:利用API 函数实现一个简单的超级玛丽外挂!
    C语言基础丨运算符之逻辑运算符(四)
    40岁程序员被90后训斥不996,这世界怎么了?
    C语言丨关键字signed和unsigned 的使用与区别详解
    C语言基础丨运算符之关系运算符(三)
    最硬核的方式找女朋友:用 VS Code 找对象?还是不看脸的那种?!
  • 原文地址:https://www.cnblogs.com/chenzhazha/p/10395350.html
Copyright © 2011-2022 走看看