fastDFS 安装 配置 使用
fastDFS 安装 配置 使用
关于安装
本文采用的是源码的安装方式,其他安装方式请自行百度
简单介绍
1、背景
FastDFS是一款开源的、分布式文件系统(Distributed File System),由淘宝开发平台部资深架构师余庆开发。该开源项目的主页是 http://code.google.com/p/fastdfs 。可以通过fastdfs.sourceforge.net 下载。FastDFS论坛是 http://www.csource.org ,目前是指向 ChinaUnix 开源项目孵化平台的一个板块 FastDFS,网址为 bbs.chinaunix.net/forum-240-1.html 。
2、上传流程
我们可以通过 FastDFS 对文件的上传过程,来初步了解 FastDFS 的基本架构。首先客户端 client 发起对 FastDFS 的文件传输动作,是通过连接到某一台 Tracker Server 的指定端口来实现的,Tracker Server 根据目前已掌握的信息,来决定选择哪一台 Storage Server ,然后将这个Storage Server 的地址等信息返回给 client,然后 client 再通过这些信息连接到这台 Storage Server,将要上传的文件传送到给 Storage Server上。
3、架构简析
以上这段粗糙简单的描述,基本理清了 FastDFS 的上传过程。我们可以知道,FastDFS 是包括一组 Tracker Server 和 Storage Server 的。Tracker Server 与 Storage Server 之间不直接通信,其基本的信息由配置文件在系统启动加载时获知。多台 Tracker Server 之间保证了 Tracker 的分布式,Tracker Server 之间是对等的,防止了单点故障。 Storage Server 是分成多个 Group,每个 Group 中的Storage 都是互相备份的,也就是说,如果 Group1 有 Storage1、Storage2、Storage3,其容量分别是100GB、100GB、100GB,那么 Group1 的存储能力是 100GB,而不是 300GB,这就是互相备份的意思。进一步说,整个 Group 的存储能力由该组中该储能力最小的 Storage 决定。多个 Group 之间的存储方式,可以采用 round robin(轮训)、load balanced(负载均衡)或指定 Group 的方式。另一点相对于MS(Master-Slave)模式的优势,就是 Tracker Server 与 Master 是决然不同的,不仅 master 有上面可能提到的单点故障问题,而且 client 与 master 之间可能会出现瓶颈。但 FastDFS 架构中,Tracker Server 不会称为系统瓶颈,数据最终是与一个 available 的 Storage Server 进行传输的。
- 首先下载相关的包内容
- FastDFS_v4.06.tar.gz 最新的FastDFS包
- fastdfs-nginx-module_v1.15.tar.gz ngingx先关模块
- fastdfs_client_java_v1.24.tar.gz进行请求的java代码
解压安装
首先需要修改libevent
下载 http://monkey.org/~provos/libevent/ 中的libevent1.4.14b-stablerpm -e --nodepes `rpm -qa | grep libevent
cd libevent1.4.14b
./configure --prefix=/usr
make clean
make
make install然后进入FastDFS进行编译
./make.sh
./make.sh install- 安装完成
开始配置
查看/etc/fdfs/将会有多个配置文件,下面开始配置配置Tracker(tracker.conf,配置中默认端口为22122)
base_path=/home/yuqing/fastdfs -> base_path=/etc/fastdfs_tracker#可以自己指定目录位置,但目录必须存在,用于存储日志及storage server等信息,否则tracker server无法启动
http.server_port=8080 -> http.server_port=8090#改成你想要的http端口,实际上要跟后面的nginx端口相同,将来http下载文件的端口就是他了配置完成后启动即可
fdfs_trackerd /etc/fdfs/tracker.conf配置Storage(storage.conf,配置中默认端口为23000)
base_path=/home/yuqing/fastdfs -> /home/soar/fastdfs_storge #可以自定义,但必须存在此目录,用于存储storage相关的log、group内的相关信息
store_path0=/home/yuqing/fastdfs -> store_path0=/home/soar/fastdfs_storge #文件的存储位置,在一台storage server上可以指定多个存储位置
group_name=group1 #这个组的名称
tracker_server=192.168.209.121:22122 -> tracker_server=172.20.8.71:22122 #修改成tracker server的IP和端口信息然后启动即可
fdfs_storaged /etc/fdfs/storage.conf上传测试(配置Client,client.conf)
base_path=/home/yuqing/fastdfs-> base_path=/data/fastdfs_tracker
tracker_server=192.168.209.121:22122 -> tracker_server=172.20.8.71:22122
http.tracker_server_port=8080 ->http.tracker_server_port=8090然后测试上传
fdfs_test /etc/fdfs/client.conf upload a.txt
可以发现已经上传,并且在日志中的目录中可以看到内容,但是还没有完成,我们还需要配置nginx来进行文件访问
集成nginx
nginx的编译安装请见nginx文档,只需要添加--add-module=/home/songzj/myserver/fastdfs-nginx-module/src/制定fastdfs的nginx模块就行,编译安装完成后修改nginx.conflocation /group1/M00{
alias /data/fastdfs_storge/data;
ngx_fastdfs_module;
}然后进行软绑定
ln -s /data/fastdfs_storge/data /data/fastdfs_storge/data/M00然后将fastdfs-nginx-module拷贝
cp mod_fastdfs.conf /etc/fdfs/
再然后配置刚才拷贝的文件tracker_server=172.20.8.71:22122
url_have_group_name = true
store_path0=/data/fastdfs_storge
group_count = 1
[group1]
group_name=group1
storage_server_port=23000
store_path_count=1
store_path0=/data/fastdfs_storge在测试就能下载下来
然后上传下载下来访问就行
java代码请看我们的后台
fastDFS 安装 配置 使用的更多相关文章
- fastdfs 安装配置
介绍文档 1.安装 # wget # tar xf download # cd FastDFS/ # ./make.sh 运行文件 有报错信息 compilation terminated. ...
- FastDFS安装配置
FastDFS FastDFS为互联网量身定制,充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传.下载等服务 ...
- FastDFS安装配置手册
文件服务器分布式系统安装手册 本文档详细的介绍了FastDFS的最小集群安装过程.集群环境如下: tracker:20.2.64.133 .用于调度工作,在访问上起负载均衡的作用. group1: s ...
- 潭州课堂25班:Ph201805201 django 项目 第三十八课 后台 文章发布,FastDFS安装 配置(课堂笔记)
, .安装FastDFS # 从docker hub中拉取fastdfs镜像docker pull youkou1/fastdfs # 查看镜像是否拉取成功docker images # 安装trac ...
- FastDFS安装配置过程中出现错误提示"/home/yuqing/fastdfs" can't be accessed, error info: No such file or directory
解决: mkdir -p /home/yuqing/fastdfs 这回正常了,查看启动成功与否 [root@localhost FastDHT]# ps -ef |grep track |grep ...
- centos 系统下安装FastDFS+nginx+fastdfs-nginx-module安装配置
前言: 以前的项目上传的文件都是保存到本地或者是局域网内的共享文件夹下,由于数据量,服务器的负载均衡(分机的某些图片无法访问的问题处理)等因素的情况下,就想到用fastdfs来文件管理,花了几天时间硬 ...
- 分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)——第一篇
分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)--第一篇 简介 首先简单了解一下基础概念,FastDFS是一个开源的轻量级分布式文件系统,由 ...
- FastDFS 集群 安装 配置
这篇文章介绍如何搭建FastDFS 集群 FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的 ...
- FastDFS+Nginx安装配置
下载相关包: libevent-2.0.22-stable.tar.gz => https://github.com/libevent/libevent/releases/download/re ...
随机推荐
- Python入门之ATM+购物车代码版思维导图
该项目结合了ATM模版和购物车需求,整个思维导图用Python代码实现,使用思维导图可以清晰明了的看清整个框架: 过程中,用到了Python的知识有Python常用模块,Python常用内置包,log ...
- Python入门之迭代器/生成器/yield的表达方式/面向过程编程
本章内容 迭代器 面向过程编程 一.什么是迭代 二.什么是迭代器 三.迭代器演示和举例 四.生成器yield基础 五.生成器yield的表达式形式 六.面向过程编程 ================= ...
- Java面向对象之构造函数 入门实例
一.基础概念 1.什么时候定义构造函数: 当对象创建时,需要对象必须具备的内容,通过构造函数完成. 2.一般函数和构造函数的区别: 定义上:构造函数只为对象的初始化,只执行一次.一般函数定义对象应该具 ...
- switchysharp设置
在线规则列表里面插入下面的网址:https://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt
- 复习HTML+CSS(5)
n <meta>标记 <meta>的主要作用,是提供网页的源信息.比如:指定网页的搜索关键字 <meta>标记有两个属性:http-equiv和name. 1. ...
- iOS masonry 不规则tagView布局 并自适应高度
在搜索页面经常会有不规则的tag出现,这种tagView要有点击事件,单个tagView可以设置文字颜色,宽度不固定根据内容自适应,高度固定,数量不固定.总高度就不固定.最近对于masonry的使用又 ...
- [C#]200 行代码使用 C# 实现区块链
文章原文来自:Code your own blockchain in less than 200 lines of Go!,原始文章是通过 Go 语言来实现自己的区块链的,这里我们参照该文章来使用 C ...
- 智能合约开发solidity编程语言开发一个以太坊应用区块链投票实例
智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供一个官方实战示例快速入门,用例子深入浅出智能合约开发,体会以太坊构建去中心化可信交易技术魅力.智能合约其实是"执行合 ...
- python day one 变量,if
一.变量,常量 变量:用于储存和标记信息在内存中,方便日后被调用.操作和修改 常量:固定不变大的量.字母大写 命名规则: 1.由字母数字下划线组成,命名要有意义,区分大小写. 2.命名建议用下划线分割 ...
- [ Java学习基础 ] Java的封装性与访问控制
Java面向对象的封装性是通过对成员变量和方法进行访问控制实现的,访问控制分为4个等级:私有.默认.保护和公有,具体规则如下表: 1.私有级别 私有级别的关键字是private,私有级别的成员变量和方 ...