Django+FastDFS文件管理系统搭建

FastDFS 介绍

  1. 简介

    FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持Linux、FreeBSD、AIX等UNIX系统。它只能通过 专有API对文件进行存取访问,不支持POSIX接口方式,不能mount使用。准确地讲,Google FS以及FastDFS、mogileFS、 HDFS、TFS等类Google FS都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。

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

  2. 原理导图
    FastDFS架构包括 Tracker server和Storage server。客户端请求Tracker server进行文件上传、下载,通过Trackerserver调度最终由Storage server完成文件上传和下载。

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

    Tracker Server:跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。通过Trackerserver在文件上传时可以根据一些策略找到Storageserver提供文件上传服务。

    Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。Storage server没有实现自己的文件系统而是利用操作系统 的文件系统来管理文件。

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

  3. FastDFS 安装
    1、 安装FastDFS Linux依赖包

    yum install libevent libevent-devel gcc* -y
    

    2、 安装FastDFS的官方依赖包

    wget -O libfastcommon-1.0.39.tar.gz  https://codeload.github.com/happyfish100/libfastcommon/tar.gz/V1.0.39
    
    #解压依赖包
    tar -zxvf libfastcommon-1.0.39.tar.gz
    #编译安装
    cd libfastcommon-1.0.39
    ./make.sh
    ./make.sh install 
    

    3、 配置tracker
    Tracker的配置文件在/etc/fdfs/下,首先为了稳定考虑对配置文件进行备份

    cd /etc/fdfs/
    cp tracker.conf.sample tracker.conf
    vim tracker.conf
    
    #重点修改下面的几个点
    	1、	确保disable是打开的
    	disable=false
    	2、	查看提供服务的端口
    	port=22122
    	3、	指定生产tracker数据和日志的目录
    	base_path=/fastdfs/tracker
    	4、	修改默认的http端口(目的为了防止冲突)
    	http.server_port=9080
    	5、	创建tracker_base的目录
    	mkdir -p /fastdfs/tracker
    	4、	启动tracker
    	#关闭防火墙
    	systemctl stop firewalld 
    
    #启动命令
    systemctl start fdfs_trackerd
    
    #查看状态
    systemctl status fdfs_trackerd
    	```
    
    ```bash
    #如下:
    fdfs_trackerd.service - LSB: FastDFS tracker server
       Loaded: loaded (/etc/rc.d/init.d/fdfs_trackerd; bad; vendor preset: disabled)
       Active: active (running) since Mon 2020-06-22 01:53:40 EDT; 47min ago
         Docs: man:systemd-sysv-generator(8)
      Process: 1017 ExecStart=/etc/rc.d/init.d/fdfs_trackerd start (code=exited, status=0/SUCCESS)
       CGroup: /system.slice/fdfs_trackerd.service
               └─1034 /usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf
    
    Jun 22 01:53:40 localhost.localdomain systemd[1]: Starting LSB: FastDFS tracker server...
    Jun 22 01:53:40 localhost.localdomain fdfs_trackerd[1017]: Starting FastDFS tracker server:
    Jun 22 01:53:40 localhost.localdomain systemd[1]: Started LSB: FastDFS tracker server.
    #查看端口
    netstat -tulnp|grep fdfs
    #如下:
    tcp        0      0 0.0.0.0:22122           0.0.0.0:*               LISTEN      1034/fdfs_trackerd
    #设置tracker开机自启动
    chkconfig fdfs_trackerd on
    #关闭tracker
    /etc/init.d/fdfs_trackerd stop
    service fdfs_trackerd stop
    systemctl stop fdfs_trackerd
    

    5、 配置storage
    storage的配置文件目录同样在/etc/fdfs/

    #配置storage
    cd /etc/fdfs/
    cp storage.conf.sample storage.conf
    vim storage.conf
    确保日志当中的以下配置
    disable=false
    group_name=group1
    port=23000
    heart_beat_interval=30
    base_path=/fastdfs/storage/base
    store_path_count=1
    store_path0=/fastdfs/storage
    subdir_c

你可能感兴趣的:(python,运维,服务器)