下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

FastDFS分布式系统是什么样

作者:课课家教育     来源: http://www.kokojia.com点击数:1240发布时间: 2018-12-07 09:08:19

标签: 手机游戏unity3d游戏开发3D引擎UGUI

  在计算机的操作系统里,根据各种不同的功能通常又会将其分成其他各种的系统,如文件系统就是其用来管理和存储文件信息的存储设备。而文件系统又会细分成几种类型,在本文中,我们就是主要来认识分布式文件系统中的FastDFS。

  FastDFS是一个开源的轻量级分布式文件系统。它解决了大数据量存储和负载均衡等问题。特别适合以中小文件(建议范围:4KB < file_size <500MB)为载体的在线服务,如相册网站、HCNA视频网站等等。在UC基于FastDFS开发向用户提供了:网盘,社区,广告和应用下载等业务的存储服务。

  FastDFS的特点

  1.分组存储,灵活简洁

  2.对等结构,不存在单点

  3.文件ID由FastDFS生成,作为文件访问凭证。

  4.FastDFS不需要传统的name server

  5.和流行的web server无缝衔接,FastDFS已提供apache和nginx扩展模块

  6.大、中、小文件均可以很好支持,支持海量小文件存储

  7.支持相同文件内容只保存一份,节省存储空间

  8.存储服务器上可以保存文件附加属性

  9.支持多块磁盘,支持单盘数据恢复

  FastDFS具有轻量级,支持高并发放访问,负载均衡,可扩展等优点。而华为HCNPFastDFS最大的亮点就是对小文件的存储性能较好。

  小文件的性能瓶颈主要来自于对元数据服务器(如FastDFS中的TrackerServer或TFS中的NameServer)的访问,因为当文件本身大小很小时,HCNP数据存储所占空间与文件内容存储所占空间的比例就变得较大,访问元数据所消耗资源与访问文件内容所消耗资源的比例也变得较大。因此,通常对小文件存储的优化方法主要有两大类思路:一是减少访问元数据的次数,比如Cache预取;二是减少元数据所占的存储空间,比如FastDFS使用的文件名策略。

  FastDFS架构

  FastDFS服务端有三个角色:跟踪服务器(tracker server)、存储服务器(storage server)和客户端(client)。

  tracker server:跟踪服务器,主要做调度工作,起负载均衡的作用。在内存中记录集群中所有存储组和存储服务器的状态信息,是客户端和数据服务器交互的枢纽。相比GFS中的master更为精简,不记录文件索引信息,占用的内存量很少。

  storage server:存储服务器,游戏服务器(又称:存储节点或数据服务器),文件和文件属性(meta data)都保存到存储服务器上。Storage server直接利用OS的文件系统调用管理文件。

      client:客户端,作为业务请求的发起方,通过专有接口,使用TCP/IP协议与跟踪器服务器或存储节点进行数据交互。

认识分布式文件系统FastDFS_FastDFS_文件系统_操作系统_课课家 

  Tracker Server:跟踪服务器,主要做调度工作,在访问上起负载均衡的作用。

  Storage Server:存储服务器(又称数据服务器)。

  FastDFS同步机制

  1、同一组内的storage server之间是对等的,文件上传、删除等操作可以在任意一台storage server上进行;

  2、文件同步只在同组内的storage server之间进行,采用push方式,即源服务器同步给目标服务器;

  3、源头数据才需要同步,备份数据不需要再次同步,否则就构成环路了;

  上述第二条规则有个例外,就是新增加一台storage server时,由已有的一台storage server将已有的所有数据(包括源头数据和备份数据)同步给该新增服务器。

  FastDFS与MogileFS的比较

  FastDFS是一个完善的分布式文件存储系统,通过手机游戏客户端API对文件进行读写。可以说,MogileFS的所有功能特性FastDFS都具备。另外,相对于MogileFS,FastDFS具有如下特点和优势:

  1. FastDFS完善程度较高,不需要二次开发即可直接使用;

  2. 和MogileFS相比,FastDFS裁减了跟踪用的数据库,只有两个角色:tracker和storage。FastDFS的架构既简化了系统,同时也消除了性能瓶颈

  3. 在系统中增加任何角色的服务器都很容易:增加tracker服务器时,只需要修改storage和client的配置文件(增加一行tracker配置);增加storage服务器时,通常不需要修改任何配置文件,系统会自动将该卷中已有文件复制到该服务器

  4. FastDFS比MogileFS更高效。表现在如下几个方面:

  1)参见上面的第2点,FastDFS和MogileFS相比,没有文件索引数据库,FastDFS整体性能更高

  2)从采用的开发语言上看,FastDFS比MogileFS更底层、更高效。FastDFS用C语言编写,代码量不到2万行,没有依赖其他开源软件或程序包,安装游戏开发和部署特别简洁;而MogileFS用perl编写

  3)FastDFS直接使用socket通信方式,相对于MogileFS的HTTP方式,效率更高。并且FastDFS使用sendfile传输文件,采用了内存零拷贝,系统开销更小,文件传输效率更高。

  5. FastDFS有着详细的设计和使用文档,而MogileFS的文档相对比较缺乏。

  6. FastDFS的日志记录非常详细,系统运行时发生的任何错误信息都会记录到日志文件中,当出现问题时方便管理员定位错误所在。

  7. FastDFS还对文件附加属性(即meta data,如文件大小、图片宽度、高度等)进行存取,应用不需要使用数据库来存储这些信息。

  8. FastDFS从V1.14开始支持相同文件内容只保存一份,这样可以节省存储空间,提高文件访问性能。

  FastDFS可以进行文件存储、文件访问、文件同步等管理功能,这些功能都能为操作系统解决存储于负载均衡的问题。以上就是今天讲的所有内容了,感谢大家的阅读。想要学习更多?可关注微信服务号【课课家】或者前往课课家教育官方网站进行咨询学习哟!

赞(19)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程