引言:

  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的入门到精通(引言和单机安装)的更多相关文章

  1. SaltStack入门到精通第一篇:安装SaltStack

    SaltStack入门到精通第一篇:安装SaltStack 作者:纳米龙  发布日期:2014-06-09 17:50:36   实际环境的设定: 系统环境: centos6 或centos5 实验机 ...

  2. Atom编辑器入门到精通(二) 插件的安装和管理

    在本节中我们会学习如果安装和使用插件插件是Atom中一个非常重要的组成部分,很多功能都是以插件形式存在的.比如上篇文章中提到的目录树和设置等窗口都是通过默认安装的插件来实现的. 查看已安装的插件 打开 ...

  3. kubernetes入门(10)kubernetes单机安装后 - helloworld

    前言 查看端口是否被监听了 ::netstat -tlp |grep 31002 我是用的yum install etcd kubernetes docker vim, 这样装的是1.5.2,不是最新 ...

  4. Docker从入门到精通(二)——安装Docker

    通过上面文章,我们大概知道了什么是Docker,但那都是文字功夫,具体想要理解,还得实操,于是这篇文章带着大家来手动安装Docker. 1.官方教程 https://docs.docker.com/e ...

  5. HR问了一句DB是啥?SQL是啥?DB是Database数据库,SQL是数据库语言! 然后呢? 数据库从入门到精通--入门必看!

    写在前面 本文的写作知识体系来源于我的数据库老师SDAU张承明,部分知识来自于网络,我呢对知识进行了细化和添加了自己的一些看法,并且加入了一些实例帮助理解,本文不是面向SQL高手写的,可以看作是数据库 ...

  6. 从入门到精通(分布式文件系统架构)-FastDFS,FastDFS-Nginx整合,合并存储,存储缩略图,图片压缩,Java客户端

    导读 互联网环境中的文件如何存储? 不能存本地应用服务器 NFS(采用mount挂载) HDFS(适合大文件) FastDFS(强力推荐

  7. 大数据应用之:MongoDB从入门到精通你不得不知的21个为什么?

    一.引言: 互联网的发展和电子商务平台的崛起,催生了大数据时代的来临,作为大数据典型开发框架的MongoDB成为了No-sql数据库的典型代表.MongoDB从入门到精通你不得不知的21个为什么专为大 ...

  8. Redis从入门到精通:初级篇

    原文链接:http://www.cnblogs.com/xrq730/p/8890896.html,转载请注明出处,谢谢 Redis从入门到精通:初级篇 平时陆陆续续看了不少Redis的文章了,工作中 ...

  9. Redis从入门到精通:初级篇(转)

    原文链接:http://www.cnblogs.com/xrq730/p/8890896.html,转载请注明出处,谢谢 Redis从入门到精通:初级篇 平时陆陆续续看了不少Redis的文章了,工作中 ...

随机推荐

  1. POJ2352 Stars [树状数组模板]

    题意:输入一n颗星星的x,y坐标,给定判断level的标准,即某颗星星左下边(不高于它,不超过他,相当于以他为基准的第三象限)星星的数目为level, 输出level从0到n的星星个数. //poj2 ...

  2. numpy中的ndarray与pandas中的series、dataframe的转换

    一个ndarray是一个多维同类数据容器.每一个数组有一个dtype属性,用来描述数组的数据类型. Series是一种一维数组型对象,包含了一个值序列,并且包含了数据标签----索引(index). ...

  3. 《你不知道的Javascript》学习笔记

    简介 众所周知,JavaScript 既是一门充满吸引力.简单易用的语言,又是一门具有许多复杂微妙技术的语言,即使是经验丰富的JavaScript 开发者,如果没有认真学习的话也无法真正理解它们. 如 ...

  4. 为什么jdk1.8 HashMap的容量一定要是2的n次幂

    一.jdk1.8中,对“HashMap的容量一定要是2的n次幂”做了严格控制 1.默认初始容量: [Java] 纯文本查看 复制代码 ? 1 2 3 4 /**  * The default init ...

  5. springboot项目实现jar包外配置文件管理

    背景 为实现快速搭建和开发,项目以Springboot框架搭建,springboot搭建的项目可以将项目直接打成jar包并运行,无需自己安装配置Tomcat或者其他服务器,是一种方便快捷的部署方式. ...

  6. 输入一个url之后到底发生了什么 - Hurry

    背景 最近学习到 nginx 方向代理发现,nginx 可以将你的请求以 http 块的 server 形式代理到请求的域名或者 ip 地址. 一个简单的 nigx 配置如下: 12345678 se ...

  7. Java 并发编程面试题

    并发编程面试题-内存模型说下内存模型定义为什么要有内存模型为什么要重排序,重排序在什么时候排如何约束重排序规则happens-before什么是顺序一致性CAS 实现的原理,是阻塞还是非阻塞方式?什么 ...

  8. 【JVM】面试题之死锁及问题是怎么定位

    前言 之前面试的时候被问到死锁这块的问题,借着最近学习jvm来总结下死锁相关的知识.如果有地方写的不到位的地方,麻烦读者及时提出,放在评论区,我这边也好及时改正. 回顾 所谓,温故而知新,首先回顾下, ...

  9. Mybatis 入门之resultMap与resultType讲解实例

    resultMap:适合使用返回值是自定义实体类的情况 resultType:适合使用返回值得数据类型是非自定义的,即jdk的提供的类型 resultMap : type:映射实体类的数据类型 id: ...

  10. Oil Deposits(油田)(DFS)

    题目: The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. G ...