开发者学堂课程【Spring Boot+Vue.js+FastDFS实现分布式图片服务器 :主流分布式文件系统介绍】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/742/detail/13137
主流分布式文件系统介绍
内容介绍:
一、NFS (网络文件系统)
二、GFS
三、HDSF
四、分布式文件服务提供商
一、NFS (网络文件系统)
1、NFS (Network File System)即网络文件系统,是 FreeBSD 支持的文件系统中的一种,它允许网络中的计算机之间通过 TCPIP 网络共享资源。在 NFS 的应用中,本地 NFS 的客户端应用可以透明地读写位于远端 NFS 服务器上的文件,就像访问本地文件一样。
2、NFS 是一种客户服务器模式,客户端加服务器,中间通过网络连接,客户端可以连接服务器,在 NFS 服务器上可以存储很多文件,客户端要想访问 NFS 服务器上的文件,可以通过网络访问,对于用户他不知道 NFS 服务器的存在,因为在客户端的电脑上通过 NFS 网络驱动映射的方式,比如把 NFS 服务器上的 d 盘映射到客户端的f盘,当用户访问 f 盘数据时像访问本地数据一样,其实他在访问服务器层,在客户端上映射 NFS 服务器的磁盘,客户端就通过网络去访问服务器。
3、应用场景,学校机房,每次重启后存储的数据没有了,在机房的客户端一般是不让存数据的,老师让打开的文件就存储在 NFS 服务器,用户在客户端的电脑上不存数据,他直接通过驱动映射的方式,通过网络访问 NFS 服务器。
4、在客户端上映射 NFS 服务器的驱动器。客户端通过网络访问 NFS 服务器的硬盘完全透明。
二、GFS
googleFs,GFS 是一个可扩展的分布式文件系统,用于大型的、分布式的、对大量数据进行访问的应用。它运行于廉价的普通硬件上,
可以提供容错功能。它可以给大量的用户提供总体性能较高的服务。
左上角是文件系统的客户端,右边是文件系统的服务端,服务端上面是主,下面是从,主是 GFS master,从是 GFS chunkserver。
最下面四个图标存的就是数据,假如有一个视频文件,通过 GFS 存储,先把文件分成块,把每个块的数据存在块服务器上,当用户访问文件时,他会先访问 master 服务器,主服务器,他要访问某一个视频文件,某一个大的文件,master 服务器会告诉从哪些块服务器上进行访问。
把这个文件拆分成很多个小块并行的存储在多个服务器上,如果想要拿数据,也是从多个服务器上一块拿,采用文件分块的存储方式,
1、GFS 采用主从结构, 一个 GFS 集群由一个 master 和大量的 chunkserver 组成。
2、master 存储了数据文件的元数据,一个文件被分成了若干块存储在多个 chunkserver 中。
3、用户从 master 中获取数据元信息,从 chunkserver 存储数据。
三、HDSF
1、Hadoop 分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布
式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS 是一个高度容错性的系统,适合部署在廉价的机器上。
HDFS 能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS 放宽了一部分 POSIX 约束,来实现流式读取文件系统数据的目的。HDFS 在最开始是作为 Apache Nutch 搜索引擎项目的基础架构而开发的。HDFS 是ApacheHadoop Core 项目的一部分。
2、HDFS 有着高容错性(ault-tolerant) 的特点,并且设计用来部署在低廉的(low-cost) 硬件上。而且它提供高吞吐量(nigh throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax) POSIX 的要求(requirements)这样可以实现流的形式访问(streaming access)文件系统中的数据。
3、client 是客户端,它会把数据分成块,存在 Datanodes 数据节点,还有一个节点叫做 Namenode 名称节点,上面存的就是文件的原数据,当客户访问某一个文件时,它会访问 Namenode 得到文件的原数据,得到文件存在哪些块中,客户端就从块上面去拿,客户端向块里面写,也可以从块上读。GFS 也是把文件分块,存在块服务器上,HDFS 是存在数据节点上,了解主流的分布式系统非常有利于 fastdfs 工作原理。
(1)HDFS 采用主从结构,一个 HDFS 集群由一个名称结点和若干数据结点组成。名称结点存储数据的元信息,一个完整的数据文件分成若干块存储在数据结点。
(2)客户端从名称结点获取数据的元信息及数据分块的信息,得到信息客户端即可从数据块来存取数据。
四、分布式文件服务提供商
分布式文件系统是面向互联网海量数据存储需求的,所以有很多分布式文件服务提供商,就是买服务,把文件存在服务器上,保证性能。因为互联网海量数据存储的需求,厂商专门做云存储。
1、阿里的 OSS
(1)阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。它具有与平台无关的 RESTful API 接口,能够提供99. 99999999%的服务持久性。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。OSS 适合各种网站、开发企业及开发者使用。
(2)您可以使用阿里云提供的 API/SDK 接口或者 OSS 迁移工具轻松地将海量数据移入或移出阿里云 OSS. 数据存储到阿里云 OSS 以后,您可以选择标准类型(Standard) 的阿里云 OSS 服务作为移动应用、大型网站、图片分享或热点音视频的主要存储方式,也可以选择成本更低、存储期限更长的低频访问类型(Infrequent Access)和归档类(Archive) 的阿里云 OSS 服务作为不经常访问数据的备份和归档。
2、七牛云存储
3、百度云存储