FastDFS的介绍

FastDFS

  FastDFS是由国人余庆所开发,其项目地址:
        https://github.com/happyfish100FastDFS是一个轻量级的开源分布式文件系统,主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均衡。FastDFS是一款类Google FS的开源分布式文件系统,它用纯C语言实现,支持Linux、FreeBSD、AIX等UNIX系统。FastDFS只能通过专有API对文件进行存取访问,不支持POSIX接口方式,不能mount使用。准确地讲,Google FS以及FastDFS、mogileFS、 HDFS、TFS等类Google FS都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。

FastDFS的特性

   1》分组存储,灵活简洁、对等结构,不存在单点2》文件ID由FastDFS生成,作为文件访问凭证,FastDFS不需要传统的name server3》和流行的web server无缝衔接,FastDFS已提供apache和nginx扩展模块4》大、中、小文件均可以很好支持,支持海量小文件存储5》 支持多块磁盘,支持单盘数据恢复6》 支持相同文件内容只保存一份,节省存储空间7》 存储服务器上可以保存文件附加属性8》 下载文件支持多线程方式,支持断点续传

FastDFS架构图

  FastDFS架构解读只有两个角色,tracker server和storage server,不需要存储文件索引信息所有服务器都是对等的,不存在Master-Slave关系存储服务器采用分组方式,同组内存储服务器上的文件完全相同(RAID 1)不同组的storage server之间不会相互通信由storage server主动向tracker server报告状态信息,tracker server之间通常不会相互通信

系统架构-上传文件流程图

    1》client询问tracker上传到的storage;2》tracker返回一台可用的storage;3》client直接和storage通信完成文件上传,storage返回文件ID。

系统架构-下载文件流程图

    1》client询问tracker下载文件的storage,参数为文件ID(组名和文件名);2》tracker返回一台可用的storage;3》client直接和storage通信完成文件下载。

Fast同步机制

 采用binlog文件记录更新操作,根据binlog进行文件同步同一组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行;文件同步只在同组内的storage server之间进行,采用push方式,即源服务器同步给目标服务器;源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了;上述第二条规则有个例外,就是新增加一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。

FastDFS用户请求过程

FastDFS核心组件

  Tracker:调度器,负责维持集群的信息,例如各group及其内部的storage node,这些信息也是storage node报告所生成,每个storagenode会周期性向tracker发心跳信息;storage server:以group为单位进行组织,任何一个storage server都应该属于某个group,一个group应该包含多个storage server,在同一个group内部,各storage server的数据互相冗余;

FastDFS运行机制

  如何在组中挑选storage server:1》rr;2》以ip为次序,找第一个,即IP地址较小者;3》以优先级为序,找第一个;如何选择磁盘(存储路径):1》rr;2》剩余可用空间大者优先;生成FID:由源头storage server ip、创建时的时间戳、大小、文件的校验码和一个随机数进行hash计算后生成;最后基于base64进行文本编码,转换为可打印字符;groupID/MID/H1ID/H2ID/file_namegroupID:组编号MID:存储路径(存储设备)编号H1ID/H2ID:目录分层file_name:文件名,不同于用户上传时使用文件名,而是由服务器生成hash文件名;服务器IP、文件创建时的时间戳、文件大小、文件名和扩展名;文件同步:每个storage server在文件存储完成后,会将其信息存于binlog, binlog不包含数据,仅包含文件名等元数据信息,binlog可用于同步;

FastDFS配置修改

  Tracker:编辑tracker server配置文件tracker.conf,需要修改内容如下:disabled=false(默认为false,表示是否无效)port=22122(默认为22122)base_path=/data/fastdfs/trackerstorage server:disabled=false(默认为false,表示是否无效)port=23000(默认为23000)base_path=/data/fastdfs/storagetracker_server=172.18.10.232:22122store_path0=/data/fastdfs/storagehttp.server_port=8888(默认为8888,nginx中配置的监听端口那之一致)

FastDFS常用命令

  1》查看存储节点状态# fdfs_monitor /etc/fdfs/client.conf2》上传测试fdfs_test <config_file> upload <local_filename> [FILE | BUFF | CALLBACK]3》文件上传fdfs_upload_file /etc/fdfs/client.conf /root/solo-2.2.0.war4》文件查看fdfs_file_info /etc/fdfs/client.conf group1/M00/00/00/rBH7vFoax3KANb_FAUlr7-L-yRM9.0.war5》文件下载fdfs_download_file /etc/fdfs/client.conf group1/M00/00/00/rBH7vFoax3KANb_FAUlr7-L-yRM9.0.war

FastDFS实现nginx代理

 1》安装nginx以及对应模块2》修改nginx的location配置,映射路径和启动模块location /group1/M00 {root /data/fdfs/store/data;ngx_fastdfs_module;}3》修改对应fastdfs模块url_have_group_name = truetracker_server=172.17.252.234:22122

FastDFS的介绍相关推荐

  1. fastdfs mysql_FastDFS介绍 - KG-鲜血、汗水和眼泪 - OSCHINA - 中文开源技术交流社区

    FastDFS介绍 余庆 2009年09月13日 FastDFS简介 FastDFS是一个轻量级的开源分布式文件系统 FastDFS主要解决了大容量的文件存储和高并发访问的问题,文件存取时实现了负载均 ...

  2. 第一章、FastDFS简介

    1.FastDFS介绍 FastDFS 是以C语言开发的一项开源轻量级分布式文件系统,他对文件进行管理,主要功能有:文件存储,文件同步,文件访问(文件上传/下载),特别适合以文件为载体的在线服务,如图 ...

  3. 第二章、FastDFS单机搭建过程

            上章我们初始了FastDFS的介绍,发展历程和结构,不多说,本章带你走进FastDFS单机版安装步骤,以及相关web项目演示上传下载等功能. 1.准备环境 系统:Centos7.x 相 ...

  4. 轻量级分布式文件系统FastDFS使用安装说明手册(新手入门级)

    轻量级分布式文件系统FastDFS使用安装说明手册(新手入门级) 实验室所在的课题组以研究云计算为主,但所有的研究都是在基于理论的凭空想像,缺少分布式环境的平台的实践,云计算神马的都是浮云了.因此,我 ...

  5. 001_FastDFS介绍

    1. 网址: https://github.com/happyfish100/ 2. libfastcommon模块 2.1. libfastcommon模块, FastDFS分离出的一些公用函数包. ...

  6. 分布式文件系统研究-fastDSF架构介绍

    什么是fastDFS fastDSF介绍 FastDFS是用c语言编写的一款开源的分布式文件系统,它是由淘宝资深架构师余庆编写并开源.FastDFS专为互联网量身定制,充分考虑了冗余备份.负载均衡.线 ...

  7. fastdfs redis java,大文件上传_断点续传_文件分片传输_fastdfs_前后端一站式解决方案...

    大文件上传,断点续传,秒传,fastdfs 项目介绍 实现h5与fastdfs之间的断点续传,大文件上传,秒传 软件架构 软件架构说明 webuploader+springboot+redis+fas ...

  8. 乐优商城之品牌新增fastDFS(九)

    文章目录 (一)请求处理过程 (二)品牌新增页面分析 (三)品牌新增后台代码 (四)qs工具 (五)页面校验 (六)新增完成后关闭窗口 (七)文件上传代码逻辑 (八)绕过网关访问图片上传并解决跨域问题 ...

  9. FastDFS - 分布式文件存储系统

    目录 一.分布式文件存储 1.分布式文件存储的由来 2.常见的分布式存储框架 二.FastDFS介绍 三.FastDFS安装 1.拉取镜像文件 2.构建Tracker服务 3.构建Storage服务 ...

最新文章

  1. windows中PyCharm的安装和使用
  2. docker mysql日志写入本地_Docker Compose搭建MySQL主从复制集群
  3. ESP8266编译脚本之五
  4. iis里面的mime没有php扩展,IIS - 无后缀(无扩展名)的MIME类型配置
  5. vscode配置问题
  6. 左神算法:加强堆的实现(Java)
  7. 内是不是半包围结构_轻钢别墅的体系结构
  8. ajax应用_AJAX的应用
  9. 从零开始学习python编程-如何从零开始学python?
  10. python怎么关闭csv_Python2.7.1:如何打开、编辑和关闭CSV fi
  11. Leetcode之回文数
  12. 手动生成linux中Qt的moc文件,手动生成Qt的moc文件的方法
  13. 第九课堂:人人都可以当老师
  14. python制作一个菜单_用CSS打造一个图形化的汉堡菜单
  15. H3C RRPP实验
  16. CAPICAPICOM的一些知识[转]
  17. E280 P0410故障修复
  18. 一个阿里P8的程序员,一年能赚多少钱?
  19. redis杂乱小知识
  20. Heap(堆排序)最简单,容易理解的方法

热门文章

  1. 堪称暴力美学的可视化大屏是怎么做的?附无代码硬核教程
  2. 企业为什么要建设数据分析平台?应该怎么建?
  3. 获取IE (控件)的所有链接(包括Frameset, iframe)zz
  4. 飞秋2010下载不仅野草是如此
  5. 随便说说程序员团队精神的荣辱与共
  6. Internet Explorer 6 中的 CSS 增强功能
  7. 今天会议的召开,和你有关系吗?
  8. 我同事今天被裁了,但我却涨了1万工资!
  9. excel营销数据分析宝典 pdf_你见过最漂亮的 Excel 表格什么样?
  10. Nature子刊:中科院动物所合作揭示灵长类血管衰老的驱动力