fastdfs的入门到精通(引言和单机安装)
引言:
FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。【百度百科】
介绍:
FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。
存储节点存储文件,完成文件管理的所有功能:就是这样的存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key value)方式表示,如:width=1024,其中的key为width,value为1024。文件metadata是文件属性列表,可以包含多个键值对。
跟踪器和存储节点都可以由一台或多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。
为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。
在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。
当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。
FastDFS中的文件标识分为两个部分:卷名和文件名,二者缺一不可。
注意:fastdfs不适应大文件的管理(建议存储 4KB< file_size <500MB),如果超大文件的存储要借助hadoop来实现。上面重点理解tracker和storage两个角色。
原理:
网络拓扑图如下(这是网上比较经典的一张网络拓扑图,仅供参考)

功能描述:主要解决了海量数据存储问题,特别适合以中小文件(建议范围:4KB< file_size <500MB)为载体的在线服务
安装:(以单机版安装为例)
安装前注意:fastdfs暂时没有在window安装版本,下面我安装步骤如下:
官网:https://sourceforge.net/projects/fastdfs/

点击file后如下:

第一步: 准备一台主机,修改主机名为fastdfs
vi /etc/hostname | hostnamectl set-hostname 主机名
然后重启:reboot 使其生效:
第二步: 安装相关依赖包和下载相关安装包:
安装相关依赖包
yum install gcc-c++ perl-devel pcre-devel openssl-devel zlib-devel wget
下载libfastcommon
wget https://github.com/happyfish100/libfastcommon/releases/tag/V1.0.36
下载fastdfs
wget https://github.com/happyfish100/fastdfs/releases/tag/V5.11
注意,下载安装包后上传到root家目录下的fastdfs下
安装gcc等依赖:

第三步:解压并编译安装:
tar -zxvf libfastcommon-1.0.36.tar.gz || tar -zxvf fastdfs-5.11.tar.gz

编译:分两步,先编译libfastcommon 然后再编译fastdfs
1> 进去libfastcommon 中: 执行 ./make.sh && ./make.sh install

2. 进入到fastdfs目录,执行 ./make.sh && ./make.sh install 同上

第四步:启动tracker和storage
配置tracker
1> cd /etc/fdfs/
2> cp tracker.conf.sample tracker.conf
3> mkdir -p /data/tracker
4> vi tracker.conf
base_path=/data/tracker -- tracker配置目录
5> 启动tracker
fdfs_trackerd /etc/fdfs/tracker.conf start
6> ps aux | grep fdfs
配置storage
1> cd /etc/fdfs/
2> cp storage.conf.sample storage.conf
3> mkdir -p /data/storage
4> vi storage.conf
base_path=/data/storage -- storage 配置目录
store_path0=/data/storage -- 同上
tracker_server=192.168.236.130:22122 -- tracker服务器地址
5> 启动storage服务
fdfs_storaged /etc/fdfs/storage.conf start
6> 查看服务启动情况 ps aux| grep fdfs
配置client:
1> cd /etc/fdfs/
2> cp client.conf.sample client.conf
3> vi client.conf
base_path=/data/tracker -- 与tracker.conf 配置路径相同
tracker_server=192.168.236.130:22122 -- tracker服务器地址
相关操作截图如下:
1.修改配置文件名称:

验证storage是否启动完成:

第五步: 测试文件上传:
在根目录下准备一个 文件 huhy.txt

执行: fdfs_upload_file /etc/fdfs/client.conf huhy.txt

到这就上传成功了。
补充:
根据上传成功文件返回的标识查询一下文件路径和内容。

到这大家基本上对fastdfs应该有个简单的认识了。以上是真实搭建案例,仅供参考
fastdfs的入门到精通(引言和单机安装)的更多相关文章
- SaltStack入门到精通第一篇:安装SaltStack
SaltStack入门到精通第一篇:安装SaltStack 作者:纳米龙 发布日期:2014-06-09 17:50:36 实际环境的设定: 系统环境: centos6 或centos5 实验机 ...
- Atom编辑器入门到精通(二) 插件的安装和管理
在本节中我们会学习如果安装和使用插件插件是Atom中一个非常重要的组成部分,很多功能都是以插件形式存在的.比如上篇文章中提到的目录树和设置等窗口都是通过默认安装的插件来实现的. 查看已安装的插件 打开 ...
- kubernetes入门(10)kubernetes单机安装后 - helloworld
前言 查看端口是否被监听了 ::netstat -tlp |grep 31002 我是用的yum install etcd kubernetes docker vim, 这样装的是1.5.2,不是最新 ...
- Docker从入门到精通(二)——安装Docker
通过上面文章,我们大概知道了什么是Docker,但那都是文字功夫,具体想要理解,还得实操,于是这篇文章带着大家来手动安装Docker. 1.官方教程 https://docs.docker.com/e ...
- HR问了一句DB是啥?SQL是啥?DB是Database数据库,SQL是数据库语言! 然后呢? 数据库从入门到精通--入门必看!
写在前面 本文的写作知识体系来源于我的数据库老师SDAU张承明,部分知识来自于网络,我呢对知识进行了细化和添加了自己的一些看法,并且加入了一些实例帮助理解,本文不是面向SQL高手写的,可以看作是数据库 ...
- 从入门到精通(分布式文件系统架构)-FastDFS,FastDFS-Nginx整合,合并存储,存储缩略图,图片压缩,Java客户端
导读 互联网环境中的文件如何存储? 不能存本地应用服务器 NFS(采用mount挂载) HDFS(适合大文件) FastDFS(强力推荐
- 大数据应用之:MongoDB从入门到精通你不得不知的21个为什么?
一.引言: 互联网的发展和电子商务平台的崛起,催生了大数据时代的来临,作为大数据典型开发框架的MongoDB成为了No-sql数据库的典型代表.MongoDB从入门到精通你不得不知的21个为什么专为大 ...
- Redis从入门到精通:初级篇
原文链接:http://www.cnblogs.com/xrq730/p/8890896.html,转载请注明出处,谢谢 Redis从入门到精通:初级篇 平时陆陆续续看了不少Redis的文章了,工作中 ...
- Redis从入门到精通:初级篇(转)
原文链接:http://www.cnblogs.com/xrq730/p/8890896.html,转载请注明出处,谢谢 Redis从入门到精通:初级篇 平时陆陆续续看了不少Redis的文章了,工作中 ...
随机推荐
- CentOS 6.5 搭建DNS服务器
1.安装bind yum install -y bind 2.修改named.conf主配置文件 vim /etc/named.conf 图中圈中的地方改为any 3.配置正向.反向解析 vim /e ...
- B-Tree索引
翻译自http://dev.mysql.com/doc/refman/5.6/en/index-btree-hash.html 理解B-Tree和Hash的数据结构能够帮助我们预测不同存储引擎下的查询 ...
- nodejs 模块变量 应用
exports.allcodeandname=(function(){ var fs = require('fs'); var data = fs.readFileSync(__dirname+'/a ...
- mvn测试常用命令
-Dmaven.test.failure.ignore=true 测试报错忽略 例子: mvn package -DAPP_ENV=dev -Dmaven.test.failure.ignore=t ...
- Query对象与DOM对象之间的转换
什么是jQuery对象? ---就是通过jQuery包装DOM对象后产生的对象.jQuery对象是jQuery独有的,其可以使用jQuery里的方法. 比如: $("#test") ...
- HashMap的四种遍历!
HashMap的四种遍历 import java.util.Collection; import java.util.HashMap; import java.util.Map; import jav ...
- Center Loss - A Discriminative Feature Learning Approach for Deep Face Recognition
URL:http://ydwen.github.io/papers/WenECCV16.pdf这篇论文主要的贡献就是提出了Center Loss的损失函数,利用Softmax Loss和Center ...
- 机器CPU load过高问题排查
load average的概念 系统平均负载定义:在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程数.如果一个进程满足以下条件则其就会位于运行队列中: 它没有在等待I/O操作 ...
- 涉嫌垄断的App Store,到底做了什么让开发者暴怒
Store,到底做了什么让开发者暴怒" title="涉嫌垄断的App Store,到底做了什么让开发者暴怒"> 什么行业最赚钱?不是你想象中的餐饮.互联网. ...
- java design pattern - adapter pattern
场景 适配器模式 总结 参考资料 场景 在编程中我们经常会遇到驴头不对马嘴的情况,比如以前是继承A的接口的对象,现在外部调用的时候需要该对象已B接口的形式来调用 ,这个时候我们可以让对象同时集成A和B ...