干货 | 分布式文件系统 - FastDFS

Posted e安在线

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了干货 | 分布式文件系统 - FastDFS相关的知识,希望对你有一定的参考价值。

敲黑板

同学们注意啦!

干货分享的推送时间,由周五调整到周二

干货分享,周二最有料!

这周起

将要和大家分享:分布式文件系统—FastDFS

FastDFS是什么鬼?

一起来学习吧~


干货 | 分布式文件系统 - FastDFS(一)

初识 FastDFS

记得那是我刚毕业后进入的第一家公司,一个技术小白进入到当时的项目组后,在开发中上传用户头像调用了一个据说是叫 FastDFS 的东西,我并不懂是什么,只知道是一个文件服务器,据说还是在 Linux 上部署的,还是多台服务器什么的,还是切片存储、说京东用的就是,反正很厉害的样子,我其实并接触不到这玩意儿,我的任务也只是调用大神们封装好的接口就行了,这可能是我第一次和 FastDFS 的第一次亲密接触。

        后来不知道为什么,当时的文件服务器老是出问题,每次图片下载不下来我就低声下气的去找运维说:文件又下载不了了,老大让你重启一下 Storage 服务器。这时候我也并不知道 Storage服务器 是什么鬼,反正就好像项目一出问题都是程序猿的错,真特么的!!!

FastDFS is an open source high performance distributed file system (DFS). It's major functions include: file storing, file syncing and file accessing, and design for high capacity and load balance.

翻译:FastDFS 是一个开源的高性能分布式文件系统(DFS)。 它的主要功能包括:文件存储,文件同步和文件访问,以及高容量和负载平衡。

试着简单了解一下

大家都在用,肯定错不了。正好最近公司想搭建自己的文件服务器,好像据说是原来用的七牛产生了巨额流量费用,领导安排了解一下这个开源分布式文件系统。了解一个东西,我们就要进入她的内部,人也一样。那我们首先来看一下他的内部是怎么工作或者说设计的吧!

FastDFS 系统有三个角色:跟踪服务器(Tracker Server)、存储服务器(Storage Server)和客户端(Client)。

  • Tracker Server:跟踪服务器,主要做调度工作,起到均衡的作用;负责管理所有的 storage server和 group,每个 storage 在启动后会连接 Tracker,告知自己所属 group 等信息,并保持周期性心跳。

  • Storage Server:存储服务器,主要提供容量和备份服务;以 group 为单位,每个 group 内可以有多台 storage server,数据互为备份。

  • Client:客户端,上传下载数据的服务器,也就是我们自己的项目所部署在的服务器。

这里免不了放一张余庆老师介绍 FastDFS 的 PPT 中的一张架构图,清晰的说明了上述职责及关系:

干货 | 分布式文件系统 - FastDFS(一)

上述架构优点:1.高可靠性:无单点故障 2.高吞吐性:只要 Group 足够多,数据流量将足够分散。

可能我理解的也不是很彻底,下载、同步操作我不写了,这里有一篇文章 分布式文件系统FastDFS设计原理 讲解的很详细,我就不班门弄斧了,大家可以点击去看看。

下面我要做什么?

接下来我可能会安装配置一下 FastDFS 服务,试着搭建一个分布式文件服务器,我试着把整体的详细步骤都记录下来,对以后项目中使用做技术储备或者说让自己以后翻起来也简单一些。可能有时候说不定就帮助到你了...

我的搭建环境是:

  • 操作系统:CentOS 7 或 CentOS 6.8

  • FastDFS:fastdfs-5.05 、 fastdfs-nginx-module-v1.16 、 libfastcommon-v1.0.7

  • Nginx:nginx-1.10.1

应该都是截至目前最新版本了,可能和你网上能搜到的 4.05 、4.06 甚至 2.? 的版本步骤不一样,我大概会分下面两篇具体的文章来记录这个过程:

  • 分布式文件系统 - FastDFS 在 CentOS 下配置安装部署

  • 分布式文件系统 - FastDFS 配置 Nginx 模块及上传测试

我保证这也行是目前 FastDFS 最新最稳定最简单坑最少的一个配置安装部署教程了。期间我也会把我踩的坑都放出来,我保证大家照着做就几乎不会有坑。其实我在写这篇文章的时候已经踩了好多坑了,哈哈...

总结一下

FastDFS 是一个由 C 语言实现的开源轻量级分布式文件系统,作者余庆(happyfish100),支持 Linux、FreeBSD、AID 等 Unix 系统,解决了大数据存储和读写负载均衡等问题,适合存储 4KB~500MB 之间的小文件,如图片网站、短视频网站、文档、app 下载站等,UC、京东、支付宝、迅雷、酷狗等都有使用。

再次感谢余庆老师对开源世界的无私奉献。

干货 | 分布式文件系统 - FastDFS(一)
干货 | 分布式文件系统 - FastDFS(一) 干货 | 分布式文件系统 - FastDFS(一)

下期精彩内容

预告

分布式文件系统 - FastDFS 在 CentOS 下配置安装部署


以上是关于干货 | 分布式文件系统 - FastDFS的主要内容,如果未能解决你的问题,请参考以下文章

django中使用FastDFS分布式文件系统接口代码实现文件上传下载更新删除

FastDFS+docker建立分布式文件系统

FastDFS+docker建立分布式文件系统

FastDFS分布文件系统Java客户端使用

FastDFS分布文件系统Java客户端使用

Linux 下 FastDFS v5.08 分布式文件系统的安装