分布式存储FastDFS
  • 传统文件系统管理的文件就存储在本机。
  • 分布式文件系统管理的文件存储在很多机器,这些机器通过网络连接,要被统一管理。无论是上传或者访问文件,都需要通过管理中心来访问

FastDFS的架构

FastDFS两个主要的角色:Tracker Server 和 Storage Server

  • Tracker Server:跟踪服务器,主要负责调度storage节点与client通信,在访问上起负载均衡的作用,和记录storage节点的运行状态,是连接client和storage节点的枢纽。
  • Storage Server:存储服务器,保存文件和文件的meta data(元数据),每个storage server会启动一个单独的线程主动向Tracker cluster中每个tracker server报告其状态信息,包括磁盘使用情况,文件同步情况及文件上传下载次数统计等信息
  • Group:文件组,多台Storage Server的集群。上传一个文件到同组内的一台机器上后,FastDFS会将该文件即时同步到同组内的其它所有机器上,起到备份的作用。不同组的服务器,保存的数据不同,而且相互独立,不进行通信。
  • Tracker Cluster:跟踪服务器的集群,有一组Tracker Server(跟踪服务器)组成。
  • Storage Cluster :存储集群,有多个Group组成。

分布式存储FastDFS_上传

上传和下载流程

上传

分布式存储FastDFS_ip地址_02

  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,文件上传结束。

下载

分布式存储FastDFS_服务器_03

  1. Client通过Tracker server查找要下载文件所在的的Storage server。
  2. Tracker server向Client返回包含指定文件的某个Storage server的IP地址和端口号。
  3. Client直接通过Tracker server返回的IP地址和端口与其中一台Storage server建立连接并指定要下载文件。
  4. 下载文件成功。

fastDFS的是搭建使用

下载fast相关包

地址:https://github.com/happyfish100

需要以先三个包,直接下载代码,以zip结尾下载
分布式存储FastDFS_依赖库_04

安装相关依赖

安装gcc g++的依赖库
sudo apt-get install build-essential
sudo apt-get install libtool

安装pcre依赖库(http://www.pcre.org/)
sudo apt-get update
sudo apt-get install libpcre3 libpcre3-dev

安装zlib依赖库(http://www.zlib.net
sudo apt-get install zlib1g-dev

防火墙

ufw enable
ufw disable

在服务器新建一个fastdfs目录,将下载好的文件放到该目录下,当然也可以直接wget 获取相关文件

分布式存储FastDFS_依赖库_05

解压,并且安装
分布式存储FastDFS_依赖库_06

先安装fast基础工具库

libfastcomm
进入到相关路径,然后使用
使用命令

./make && ./make install

没有报错的话,继续安装fastdfs

两个安装编译都没报错的话。进入到/etc/fdfs

两个文件

  • storage.conf.sample
  • tracker.conf.sample

fastdfs安装它包含了 tracker storage ,想这机器是什么角色就启动什么

配置 tracker.conf.sample 并修重命名为 tracker.conf

base_path= 数据和日志文件存储根目录

其它一般可以不用修改

配置 storage.conf.sample 并修重命名为 storage.conf

base_path=/home/fastdfs # 数据和日志文件存储根目录
store_path0=/home/fastdfs # 第一个存储目录
tracker_server=xxx.xxxx.xxx.xxx:22122

启动命令

/usr/bin/fdfs_storaged /etc/fdfs/storage.conf

/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf

分布式存储FastDFS_依赖库_07

安装好,文件上传成功,还是无法访问的,所以现在需要安装 fastdfs-nginx-module-master

解压 文件 修改
vi config

全局修改路径 将 /usr/local/ 替换成 /usr/

命令:

:%s+/usr/local/+/usr/+g

复制 mod_fastdfs.conf 到/etc/fdfs

sudo cp mod_fastdfs.conf /etc/fdfs/

开开心心,上班! 快快乐乐,游玩! 及时行乐!