FastDFS 安装与使用

1. 什么是 FastDFS

FastDFS是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡的设计。 FastDFS应满足基于照片共享站点和视频共享站点等文件服务的网站的要求。

Github介绍: https://github.com/happyfish100/fastdfs

Github文档: https://github.com/happyfish100/fastdfs/wiki

2. 架构

FastDFS 官方介绍分为两部分:tracker-server(跟踪服务器)和 storage-server(存储服务器)。实际应用中还包含一个 nginx 下载服务器。我们分这三部分来讲:

tracker-server

跟踪服务器:负责文件访问的调度和负载平衡。管理所有的存储服务器。

storage-server

存储服务器:存储文件以及文件管理功能。包括:文件存储,文件同步,提供文件访问接口。 它还管理元数据,这些元数据表示为文件的键值对。

存储系统包含一个或多个卷,这些卷的文件在这些卷中是独立的。 整个存储系统的容量等于所有容量的总和。 文件卷包含一个或多个存储服务器,这些服务器的文件在这些服务器中相同。 文件卷中的服务器相互备份,所有这些服务器都是负载平衡的。 将存储服务器添加到卷时,此卷中已存在的文件会自动复制到此新服务器,完成此复制后,系统将在线将此服务器切换为提供存储服务。

client-cluster

客户端服务器:上传和下载数据。

3. 部署结构

4. 一个完整的用例图

5. 安装与使用

本人使用的是 ubuntu14.04 环境,在其他系统环境下的安装方式不一致,详情可以参考 官方wiki

编译环境

首先配置编译环境,安装必要的库包。

一键安装:

sudo apt-get install gcc g++ make automake autoconf libtool libpcre3 libpcre3-dev zlib1g-dev openssl libssl-dev
磁盘目录
说明 位置
所有安装包 /usr/local/src
数据存储位置 /home/dfs/
mkdir /home/dfs #创建数据存储目录
cd /usr/local/src #切换到安装目录准备下载安装包
安装 libfatscommon
git clone https://github.com/happyfish100/libfastcommon.git --depth 1
cd libfastcommon/
./make.sh && ./make.sh install #编译安装
安装 FastDFS
cd ../ #返回上一级目录
git clone https://github.com/happyfish100/fastdfs.git --depth 1
cd fastdfs/
./make.sh && ./make.sh install #编译安装
#配置文件准备
cp /etc/fdfs/tracker.conf.sample /etc/fdfs/tracker.conf
cp /etc/fdfs/storage.conf.sample /etc/fdfs/storage.conf
cp /etc/fdfs/client.conf.sample /etc/fdfs/client.conf #客户端文件,测试用
cp /usr/local/src/fastdfs/conf/http.conf /etc/fdfs/ #供nginx访问使用
cp /usr/local/src/fastdfs/conf/mime.types /etc/fdfs/ #供nginx访问使用
安装 fastdfs-nginx-module
cd ../ #返回上一级目录
git clone https://github.com/happyfish100/fastdfs-nginx-module.git --depth 1
cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs
安装nginx
wget http://nginx.org/download/nginx-1.15.4.tar.gz #下载nginx压缩包
tar -zxvf nginx-1.15.4.tar.gz #解压
cd nginx-1.15.4/
#添加fastdfs-nginx-module模块
./configure --add-module=/usr/local/src/fastdfs-nginx-module/src/
make && make install #编译安装

这里推荐下载源码编译安装,如果通过 sudo apt-get install nginx 方式安装的话,不容易配置 fastdfs-nginx-module 模块,在后继的部署过程中容易报错。


FastDFS 单机部署 和 分布式部署 两种方式,这里以 单机部署为例:

单机部署

tracker 配置
#服务器ip为 192.168.52.1
#建议用ftp下载下来这些文件 本地修改
vim /etc/fdfs/tracker.conf
#需要修改的内容如下
port=22122 # tracker服务器端口(默认22122,一般不修改)
base_path=/home/dfs # 存储日志和数据的根目录
storage 配置
vim /etc/fdfs/storage.conf
#需要修改的内容如下
port=23000 # storage服务端口(默认23000,一般不修改)
base_path=/home/dfs # 数据和日志文件存储根目录
store_path0=/home/dfs # 第一个存储目录
tracker_server=192.168.52.1:22122 # tracker服务器IP和端口
http.server_port=8888 # http访问文件的端口(默认8888,看情况修改,和nginx中保持一致)
配置 nginx 访问
vim /etc/fdfs/mod_fastdfs.conf
#需要修改的内容如下
tracker_server=192.168.52.1:22122 #tracker服务器IP和端口
url_have_group_name=true
store_path0=/home/dfs
#配置nginx.config
vim /usr/local/nginx/conf/nginx.conf
#添加如下配置
server {
listen 8888; ## 该端口为storage.conf中的http.server_port相同
server_name localhost;
location ~/group[0-9]/ {
ngx_fastdfs_module;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}

6. 运行 FastDFS

关闭防火墙

如果防火墙打开了的话记得关闭,不然无法启动 FastDFS

#不关闭防火墙的话无法使用
systemctl stop firewalld.service #关闭
systemctl restart firewalld.service #重启
启动tracker服务
/etc/init.d/fdfs_trackerd start #启动tracker服务
启动storage服务
/etc/init.d/fdfs_storaged start #启动storage服务
重启 nginx
/usr/local/nginx/sbin/nginx -s reload #重启nginx

这里重启 nginx 我遇到了一些问题,如果你也跟我一样启动失败的话,记得检查下 nginx 是否之前没有启动,或是有没有进程占用了 nginx 的端口号,导致启动失败。

启动 nginx:

/usr/local/nginx/sbin/nginx #启动nginx

查看 nginx 相关端口号:

ps -ef | grep nginx

7. client 测试

#保存后测试,返回ID表示成功 如:group1/M00/00/00/xx.tar.gz
fdfs_upload_file /etc/fdfs/client.conf /usr/local/src/nginx-1.15.4.tar.gz

然后在浏览器中打开 服务器网址+端口号+ID,查看是否能返回结果,比如输入:

192.168.52:8888/group1/M00/00/00/xx.tar.gz

FastDFS 安装与使用的更多相关文章

  1. FastDFS 安装及使用

    FastDFS 安装及使用 2012-11-17 13:10:31|  分类: Linux|举报|字号 订阅     Google了一下,流行的开源分布式文件系统有很多,介绍如下:   mogileF ...

  2. FastDFS安装配置

    FastDFS FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传.下载等服务 ...

  3. FastDFS安装配置手册

    文件服务器分布式系统安装手册 本文档详细的介绍了FastDFS的最小集群安装过程.集群环境如下: tracker:20.2.64.133 .用于调度工作,在访问上起负载均衡的作用. group1: s ...

  4. FastDFS安装步骤

    FastDFS是用c语言编写的一款开源的分布式文件系统,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传.下 ...

  5. FastDFS安装全过程记录(V5.05)

    FastDFS安装全过程记录 1.安装准备 HA虚拟IP:192.168.1.208 HA软件:Keepalived 操作系统:CentOS 7 用户:root 数据目录:/data/fastdfs ...

  6. fastDFS 安装 配置 使用

    fastDFS 安装 配置 使用 关于安装 本文采用的是源码的安装方式,其他安装方式请自行百度 简单介绍 1.背景 FastDFS是一款开源的.分布式文件系统(Distributed File Sys ...

  7. FastDFS安装、配置、部署(一)-安装和部署 (转)

    FastDFS是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,FastDFS非常适用于基于文件服务的站点,例如图片分享和视频分享网站 Fast ...

  8. fastdfs安装过程

    Fastdfs于centos7的安装步骤(支持横向拓展) 主要目的:根据网上教程搭建时遇到的问题以及描述不明确的地方进行补充和说明 一.首先需要准备以下4个文件 nginx-1.12.0.tar.gz ...

  9. FastDFS学习总结(1)--FastDFS安装和部署

    FastDFS是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,FastDFS非常适用于基于文件服务的站点,例如图片分享和视频分享网站 Fast ...

随机推荐

  1. IOS 文件解析

    import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java ...

  2. 迷你MVVM框架 avalonjs 1.1发布

    本版本添加了许多有用的功能,得益于用户量的增大,一些隐性BUG也暴露出来Fix掉了.强烈建议升级! 优化扫描流程: ms-skip(0) --> ms-important(1) --> m ...

  3. VS Code 界面语言设置

    首先Ctrl+shift+p打开命令面板. 输入配置显示语言 回车 更改locale即可更改页面显语言(更改后需重启软件). 目前支持如下语言 Display Language Locale Engl ...

  4. 126. Word Ladder II( Queue; BFS)

    Given two words (beginWord and endWord), and a dictionary's word list, find all shortest transformat ...

  5. 命名空间p方式的属性注入

    ---------------------siwuxie095 命名空间 p 方式的属性注入 命名空间 p 方式的属性注入是 Spring 2.x 版本后提供的方式 1.编写一个普通类 Book.ja ...

  6. Associate File Type with Qt In Mac Os and Win

    Win Registry Question One day, my boss want me to finish one function which let the users can double ...

  7. DSOframer 的简单介绍和资源整理(2015-09-02重新整理)

    DSOframer 是微软提供一款开源的用于在线编辑 Word. Excel .PowerPoint 的 ActiveX 控件.国内很多著名的 OA 中间件,电子印章,签名留痕等大多数是依此改进而来的 ...

  8. 探究算子find_shape_model中参数MaxOverlap的准确意思

    基于形状的模板查找算子: find_shape_model(Image : : ModelID, AngleStart, AngleExtent, MinScore, NumMatches, MaxO ...

  9. scrollView不能进行滚动

    原因:scrollView里只能包含一个layout,多个时,是不能进行滚动的.

  10. 怎样才能做好SNS社区网站

    顺应历史潮流,大批的网络社区SNS(Social Networking Services)发展起来. SNS旨在构建一个网络上的人际关系网,让公众足不出户即可实现社交意愿.SNS满足了人的交流欲望,成 ...