- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
FastDFS简介及安装
1 FastDFS21.1 FastDFS简介21.2 FastDFS特性21.3 FastDFS的设计理念31.3.1 轻量级31.3.2 分组方式41.3.3 对等结构42 FastDFS架构52.1 FastDFS的系统架构52.1.2 Storage?server相关62.2 FastDFS提供的功能:72.3 文件上传和下载的交互过程92.3.1 文件上传92.3.2 文件下载112.4 文件同步延迟132.4.1 文件同步延迟问题的提出133 通信协议153.1 以HTTP方式下载文件153.2 HTTP下载文件方式一151 FastDFS1.1 FastDFS简介FastDFS是一款类Google?FS的开源分布式文件系统,它用纯C语言实现,支持Linux、FreeBSD、AIX等UNIX系统。它只能通过专有API对文件进行存取访问,不支持POSIX接口方式,不能mount使用。准确地讲,Google?FS以及FastDFS、mogileFS、HDFS、TFS等类Google?FS都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。1.2 FastDFS特性只能通过专有API访问,不支持POSIX文件不分块存储,上传的文件和OS文件系统中的文件一一对应支持相同内容的文件只保存一份,节约磁盘空间下载文件支持HTTP协议,可以使用内置Web Server,也可以和其他Web Server配合使用支持在线扩容支持主从文件主从文件是指文件ID有关联的文件,一个主文件可以对应多个从文件。主文件ID = 主文件名 + 主文件扩展名从文件ID = 主文件名 + 从文件后缀名 + 从文件扩展名存储服务器上可以保存文件属性(meta-data)1.3 FastDFS的设计理念FastDFS是为互联网应用量身定做的分布式文件系统,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标。和现有的类Google?FS分布式文件系统相比,FastDFS的架构和设计理念有其独到之处,主要体现在轻量级、分组方式和对等结构三个方面。1.3.1 轻量级FastDFS只有两个角色:Tracker?server和Storage?server。Tracker?server作为中心结点,其主要作用是负载均衡和调度。Tracker?server在内存中记录分组和Storage?server的状态等信息,不记录文件索引信息,占用的内存量很少。另外,客户端(应用)和Storage?server访问Tracker?server时,Tracker?server扫描内存中的分组和Storage?server信息,然后给出应答。由此可以看出Tracker?server非常轻量化,不会成为系统瓶颈。FastDFS中的Storage?server在其他文件系统中通常称作Trunk?server或Data?server。Storage?server直接利用OS的文件系统存储文件。FastDFS不会对文件进行分块存储,客户端上传的文件和Storage?server上的文件一一对应。众所周知,大多数网站都需要存储用户上传的文件,如图片、视频、电子文档等。出于降低带宽和存储成本的考虑,网站通常都会限制用户上传的文件大小,例如图片文件不能超过5MB、视频文件不能超过100MB等。我认为,对于互联网应用,文件分块存储没有多大的必要。它既没有带来多大的好处,又增加了系统的复杂性。FastDFS不对文件进行分块存储,与支持文件分块存储的DFS相比,更加简洁高效,并且完全能满足绝大多数互联网应用的实际需要。在FastDFS中,客户端上传文件时,文件ID不是由客户端指定,而是由Storage?server生成后返回给客户端的。文件ID中包含了组名、文件相对路径和文件名,Storage?server可以根据文件ID直接定位到文件。因此FastDFS集群中根本不需要存储文件索引信息,这是FastDFS比较轻量级的一个例证。而其他文件系统则需要存储文件索引信息,这样的角色通常称作NameServer。其中mogileFS采用MySQL数据库来存储文件索引以及系统相关的信息,其局限性显而易见,MySQL将成为整个系统的瓶颈。FastDFS轻量级的另外一个体现是代码量较小。最新的V2.0包括了C客户端API、FastDHT客户端API和PHP?extension等,代码行数不到5.2万行。1.3.2 分组方
文档评论(0)