ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

分布式存储FastDFS介绍

2021-06-11 07:03:49  阅读:272  来源: 互联网

标签:存储 FastDFS Storage Server Tracker 分布式


 

文章目录

 

分布式存储FastDFS

1 什么是分布式存储

分布式存储简单的来说,就是将数据分散存储到多个存储设备(服务器)上。

传统的网络存储系统采用集中的存储服务器存放所有数据,存储服务器成为系统性能的瓶颈,也是可靠性和安全性的焦点,不能满足大规模存储应用的需要。

分布式网络存储系统采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,它不但提高了系统的可靠性、可用性和存取效率,还易于扩展。

经典的分布式文件系统介绍:
http://os.51cto.com/art/201209/357433.htm

2 FastDFS

2.1 什么是FastDFS

FastDFS是一款开源的、分布式文件系统(Distributed File System), 由淘宝开发平台部资深架构师余庆开发。

它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载、文件删除)等,解决了大容量存储和负载均衡的问题。

FastDFS是通过纯C实现,支持Linux, FreeBSD等Unix系统类Google FS, 不是通用的文件系统,只能够通过专有API访问,目前提供了C,Java和PHP API为互联网应用量身定做,解决大容量文件存储问题,追求高性能和高扩展性 FastDFS可以看做是基于文件的key-value存储系统,称为分布式文件存储服务更为合适。

FastDFS相关资源:

  • 开源项目主页:https://code.google.com/archive/p/fastdfs/
  • 源码下载:fastdfs.sourceforge.net
  • ChinaUnix论坛版块:http://bbs.chinaunix.net/forum-240-1.html

2.2 架构简析

在这里插入图片描述

我们可以通过 FastDFS 对文件的上传过程,来初步了解 FastDFS 的基本架构:
① 首先客户端client 发起对 FastDFS 的文件传输动作,是通过连接到某一台 Tracker Server 的指定端口来实现的;
② Tracker Server 根据目前已掌握的信息,来决定选择哪一台 Storage Server ,然后将这个Storage Server 的地址等信息返回给 client;
③ 然后 client 再通过这些信息连接到这台Storage Server,将要上传的文件传送到给 Storage Server上。

FastDFS服务端有两个重要角色:跟踪器(tracker)和存储节点(storage):

  • 跟踪器主要做调度工作,在访问上起负载均衡的作用
  • 存储节点存储文件,完成文件管理的所有功能

Tracker Server 与 Storage Server 之间不直接通信,其基本的信息由配置文件在系统启动加载时获知。

多台 Tracker Server 之间保证了 Tracker 的分布式,Tracker Server 之间是对等的,防止了单点故障。

Storage Server 是分成多个 Group(组),每个 Group 中的Storage 都是互相备份的,也就是说,如果 Group1 有 Storage1、Storage2、Storage3,其容量分别是100GB、200GB、300GB,
那么 Group1 的存储能力是 100GB,而不是 300GB,这就是互相备份的意思。

进一步说,整个 Group 的存储能力由该组中该储能力最小的 Storage 决定。多个 Group 之间的存储方式,可以采用 round robin( 轮训) 、load balanced( 负载均衡) 或指定 Group 的方式。

另一点相对于MS( Master-Slave) 模式的优势,不仅 master 有上面可能提到的单点故障问题,而且 client 与 master 之间可能会出现瓶颈。但 FastDFS 架构中,Tracker Server 不会称为系统瓶颈,数据最终是与一个available 的 Storage Server 进行传输的。

简单总结一下,FastDFS的特点包括:

  • 高可靠性:无单点故障
  • 高吞吐量:只要 Group 足够多,数据流量是足够分散的

3 FastDFS集群 - (了解内容)

在这里插入图片描述
简图
在这里插入图片描述

  1. Tracker集群
    Tracker server之间是相互平等关系同时提供服务
    ○ Tracker server不存在单点故障。
    客户端请求Tracker server采用轮询方式,如果请求的
    tracker无法提供服务则换另一个tracker。

  2. Storage集群
    ○ Storage集群采用了分组存储方式, 由一个或多个组构成
    ○ 集群存储总容量为集群中所有组的存储容量之和
    一个组由一台或多台存储服务器组成,组内的Storage server
    之间是平等关系
    ○不同组的Storage server之间不会相互通信,同组内的
    Storage server之间会相互连接进行文件同步,从而保证同组
    内每个storage上的文件完全一致的。
    ○ 一个组的存储容量为该组内存储服务器容量最小的那个

  3. FastDFS的扩容分纵向扩容与横向扩容
    ○ 横向 扩容
    增加容量
    添加group组
    ○ 纵向扩容
    数据备份
    存储节点中容量最小的那个
    当前组的最大容量
    所有存储节点组名必须一样

 

标签:存储,FastDFS,Storage,Server,Tracker,分布式
来源: https://blog.51cto.com/u_15265965/2895243

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有