FastDFS介绍

简介:

    FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。
     FastDFS服务端有两个角色:跟踪器(tracker)和存储节点(storage)。跟踪器主要做调度工作,在访问上起负载均衡的作用。
存储节 点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的metadata进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key valuepair)方式表示,如:width=1024,其中的key为width,value为1024。文件metadata是文件属性列表,可以包含多个键值对。
     跟踪器和存储节点都可以由一台或多台服务器构成。跟踪器和存储节点中的服务器均可以随时增加或下线而不会影响线上服务。其中跟踪器中的所有服务器都是对等的,可以根据服务器的压力情况随时增加或减少。
为了支持大容量,存储节点(服务器)采用了分卷(或分组)的组织方式。存储系统由一个或多个卷组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。
     在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。
     当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。

wKioL1llkzTyOqMAAAMhc1zZxWc371.png

wKiom1llkzWwdWhpAAGgy0E420M641.png

wKioL1llkzXhsYNoAAHNYS09W9A265.png

wKiom1llkzajO5wEAAHFetfRiGo667.png


FastDFS特点:

 

   FastDFS主要解决了大容量的文件(主要是图片、视频、音频等小文件)存储和高并发访问的问题,并在文件存取时实现了负载均衡。与其它类GFS系统相比,FastDFS最大的特点在于它是一个轻量级的系统,体现在以下几个方面。

首先,FastDFS的结构比 较简单,主要由Client、Tracker server和Storage server三部分组成。Client通过Tracker server得到Storage server的信息,然后直接与Storage server通信访问文件,避免了Tracker server成为瓶颈。

   第二,FastDFS不对文件进行分块存储,与支持文件分块存储的DFS相比,更加简洁高效。

   第三,FastDFS中的文件ID是由Storage server生成后返回给客户端的。文件ID中包含了组号、文件相对路径和文件名等(文件ID中还包含文件大小、时间戳、源Storage server IP地址、文件内容校验码、随机数等),client可以根据文件ID直接定位到文件所在的组(但具体通过哪个Storage server下载需要询问Tracker server根据负载均衡原则指定)。因此FastDFS不需要存储文件索引信息。而其他文件系统则通常需要由NameServer存储文件索引信息,如 mogileFS采用MySQL数据库来存储文件索引以及系统相关的信息,而MySQL很容易成为系统瓶颈。



参考:http://www.it165.net/admin/html/201308/1628.html


本文转自  亮公子  51CTO博客,原文链接:http://blog.51cto.com/iyull/1946569

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
5月前
|
缓存 前端开发 大数据
虚拟列表在Vue3中的具体应用场景有哪些?
虚拟列表在 Vue3 中通过仅渲染可视区域内容,显著提升大数据列表性能,适用于 ERP 表格、聊天界面、社交媒体、阅读器、日历及树形结构等场景,结合 `vue-virtual-scroller` 等工具可实现高效滚动与交互体验。
563 1
|
10月前
|
前端开发 Java 关系型数据库
基于ssm的台球厅管理系统,附源码+数据库+论文
本项目为新锐台球厅管理系统,支持管理员和会员两种角色。管理员可进行会员管理、台球桌管理、订单管理等;会员可查看台球桌、预约、购买商品等。技术框架基于Java,采用B/S架构,前端使用Vue+HTML+JavaScript+CSS+LayUI,后端使用SSM框架,数据库为MySQL。运行环境为Windows,JDK8+MySQL5.7+Tomcat8.5。提供演示视频及详细文档截图。
|
SQL 安全 测试技术
Flask表单处理的奥秘:如何让你的用户输入验证飞起来?
【8月更文挑战第31天】在Web开发中,使用Flask框架进行表单处理和用户输入验证至关重要。本文详细介绍了Flask表单处理的步骤,包括创建、渲染、处理及验证表单数据,并提供了示例代码展示如何利用`Flask-WTF`扩展实现安全的用户输入验证。通过遵循最佳实践,如使用Flask-WTF、编写测试和采取安全措施,开发者能更高效地完成表单处理任务,提升Web应用的稳定性和安全性。
229 0
|
人工智能 Cloud Native 数据管理
数据+AI融合趋势洞察暨阿里云OpenLake解决方案发布
Forrester是全球领先的市场研究与咨询机构,专注于新兴技术在各领域的应用。本文探讨如何加速现代数据管理,推动人工智能与客户业务的融合创新。面对数据标准缺乏、多云环境复杂性、新兴业务场景及过多数据平台等挑战,Forrester提出构建AI就绪的数据管理基石,通过互联智能框架、全局数据管理和DataOps、端到端数据管理能力、AI赋能的数据管理以及用例驱动的策略,帮助企业实现数据和AI的深度融合,提升业务价值并降低管理成本。
|
Android开发
Android面试题之activity启动流程
该文探讨了Android应用启动和Activity管理服务(AMS)的工作原理。从Launcher启动应用开始,涉及Binder机制、AMS回调、进程创建、Application和Activity的生命周期。文中详细阐述了AMS处理流程,包括创建ClassLoader、加载APK、启动Activity的步骤,以及权限校验和启动模式判断。此外,还补充了activity启动流程中AMS的部分细节。欲了解更多内容,可关注公众号“AntDream”。
223 1
|
JSON 开发框架 人工智能
Newtonsoft.Json C#Json序列化和反序列化工具的使用、类型方法大全
Newtonsoft.Json C#Json序列化和反序列化工具的使用、类型方法大全
991 0
Newtonsoft.Json C#Json序列化和反序列化工具的使用、类型方法大全
|
机器学习/深度学习 数据采集 存储
自动化学科前沿讲座作业 基于深度学习的工厂人员监测系统设计
自动化学科前沿讲座作业 基于深度学习的工厂人员监测系统设计
自动化学科前沿讲座作业 基于深度学习的工厂人员监测系统设计
|
存储 Java API
86. 5个刁钻的 String 面试问题及解答
86. 5个刁钻的 String 面试问题及解答
162 0
86. 5个刁钻的 String 面试问题及解答
|
存储 缓存 边缘计算
最佳实践:使用阿里云CDN加速OSS访问
用户直接访问OSS资源,访问速度会受到OSS的下行带宽以及Bucket地域的限制。如果通过CDN来访问OSS资源,带宽上限更高,并且可以将OSS的资源缓存至就近的CDN节点,通过CDN节点进行分发,访问速度更快,且费用更低。如果采用动静分离的网站架构,就能够解决海量用户访问的性能瓶颈问题。
1929 0
最佳实践:使用阿里云CDN加速OSS访问
|
前端开发
标准盒模型和怪异盒模型
盒子模型众所周知,这里先简单介绍一下。 可以看到,在标准盒模型下,width和height是内容区域即content的width和height。而盒子总宽度为 在标准模式下,一个块的总宽度= width + margin(左右) + padding(左右) + border(左右) 而IE盒模型或怪异盒模型显而易见的区别就是,width和height除了content区域外,还包含padding和border。
1476 0

热门文章

最新文章