关于fastdfs:解密FastDFS的安装及部署实战篇
前言天猫、淘宝等购物网站,海量的商品图片和视频,是如何存储的?当用户访问量大时,又如何保障下载速度?分布式文件系统就是用来解决这些问题的。 那么分布式文件系统该如何应用呢?别急,明天袁老师就会率领大家来学习这些十分实用的技能: 分布式文件系统概述支流的分布式文件系统的介绍重点介绍FastDFS架构把握FastDFS的装置和配置FastDFS概述1.分布式文件系统分布式文件系统(Distributed File System)是一个软件/软件服务器,此软件能够用来治理在多个服务器节点中的文件(这些服务器节点通过网络相连并形成一个宏大的文件存储服务器集群,即这些服务器节点都是用来存储文件资源的,且用DFS来治理这些文件)。而传统文件系统与分布式文件系统的比照,有如下区别: 通过比照,咱们会发现传统文件系统存在如下毛病: 若用户数量多,则IO操作会很频繁 则对磁盘的拜访压力会较大; 若磁盘故障,则可能会造成数据的失落; 一个磁盘的存储容量无限。 2.支流的分布式文件系统2.1 HDFSHadoop Distributed File System,Hadoop分布式文件系统。这是一个高容错的零碎,适宜部署到便宜的机器上,能提供高吞吐量的数据拜访,非常适合大规模数据利用。HDFS采纳主从构造,一个HDFS是由一个name节点和N个data节点组成。name节点贮存元数据,一个文件宰割成N份存储在不同的data节点上。 2.2 GFSGoogle File System,可扩大的分布式文件系统,用于大型的,分布式的,对大量数据进行拜访的利用。GFS能够运行于便宜的一般硬件上,能够提供容错性能,它能够给大量的用户提供总体性能较高的服务。GFS采纳主从构造,一个GFS集群由一个master和大量的chunkserver(分块服务器)组成,一个文件被宰割若干块,扩散贮存到多个分块server中。 2.3 FastDFSFastDFS由淘宝资深架构师余庆编写并开源,应用C语言编写而成。FastDFS为互联网量身定制,充分考虑了冗余备份、负载平衡、线性扩容等机制,并重视高可用、高性能等指标。应用FastDFS可能很容易搭建出一套高性能的文件服务器集群,实现文件上传、下载等服务。 HDFS和GFS都是通用的文件系统,他们的长处是开发体验好,然而零碎的复杂度较高,性能也个别。相比之下,专用的分布式文件系统体验差,然而复杂度低,性能也高。尤其是FastDFS,特地适宜图片、小视频等小文件。因为FastDFS对文件是不宰割的,所以没有文件合并的开销。并且FastDFS网络通信应用Socket,速度也较快。 基于FastDFS的诸多长处,所以接下来咱们就重点给大家介绍FastDFS的应用。 FastDFS架构FastDFS架构包含Tracker Server和Storage Server。客户端申请Tracker Server进行文件上传、下载,通过Tracker Server调度最终由Storage Server实现文件上传和下载。 Tracker Server作用是负载平衡和调度,通过Tracker Server在文件上传时能够依据一些策略找到Storage Server提供文件上传服务。能够将Tracker称为追踪服务器或调度服务器。 Storage Server作用是文件存储,客户端上传的文件最终存储在Storage服务器上,Storage Server没有实现本人的文件系统而是利用操作系统的文件系统来管理文件。能够将Storage称为存储服务器。 Tracker集群FastDFS集群中的Tracker Server能够有多台,Tracker Server之间是互相平等关系同时提供服务,Tracker Server不存在单点故障。客户端申请Tracker Server采纳轮询形式,如果申请的Tracker无奈提供服务则换另一个Tracker。Storage集群Storage集群采纳了分组存储形式。Storage集群由一个或多个组形成,集群存储总容量为集群中所有组的存储容量之和。一个组由一台或多台存储服务器组成,组内的Storage Server之间是平等关系,不同组的Storage Server之间不会互相通信,同组内的Storage Server之间会相互连接进行文件同步,从而保障同组内每个Storage上的文件完全一致的。一个组的存储容量为该组内存储服务器容量最小的那个,由此可见组内存储服务器的软硬件配置最好是统一的。采纳分组存储形式的益处是灵便、可控性较强。比方上传文件时,能够由客户端间接指定上传到的组也能够由Tracker进行调度抉择。一个分组的存储服务器拜访压力较大时,能够在该组减少存储服务器来裁减服务能力(纵向扩容)。当零碎容量有余时,能够减少组来裁减存储容量(横向扩容)。 Storage状态收集Storage Server会连贯集群中所有的Tracker Server,定时向他们报告本人的状态,包含磁盘残余空间、文件同步情况、文件上传下载次数等统计信息。文件上传流程 客户端上传文件后存储服务器将文件ID返回给客户端,此文件ID用于当前拜访该文件的索引信息。文件索引信息包含:组名,虚构磁盘门路,数据两级目录,文件名。 组名文件上传后所在的Storage组名称,在文件上传胜利后由Storage服务器返回,须要客户端自行保留。 虚构磁盘门路Storage配置的虚构门路,与磁盘选项store_path*对应。如果配置了store_path0则是M00,如果配置了store_path1则是M01,以此类推。 数据两级目录Storage服务器在每个虚构磁盘门路下创立的两级目录,用于存储数据文件。 文件名与文件上传时不同。是由存储服务器依据特定信息生成,文件名蕴含:源存储服务器IP地址、文件创建工夫戳、文件大小、随机数和文件拓展名等信息。 文件下载流程 Tracker依据申请的文件门路即文件ID来疾速定义文件,比方申请下边的文件: 以上申请处理过程如下: 通过组名Tracker可能很快的定位到客户端须要拜访的存储服务器组是group1,并抉择适合的存储服务器提供客户端拜访。存储服务器依据文件存储“虚构磁盘门路”和“数据两级目录”能够很快定位到文件所在目录,并依据文件名找到客户端须要拜访的文件。理解了FastDFS的运行原理之后,接下来咱们就来开始进行FastDFS的装置及配置过程吧。 FastDFS装置及配置 1.FastDFS装置1.1 装置gcc应用yum命令装置gcc和gcc-c++,编译时须要应用。 [root@user ~]# yum install -y gcc gcc-c++ ...