什么是分布式文件系统?有哪些历史?

本地文件系统概述

文件系统就是负责把用户的文件,存到磁盘硬件中。这样即使计算机断电了,磁盘里的数据并不会丢失,就可以持久化的保存文件。

 

文件系统的基本数据单位是:文件。它的目的:对磁盘上的文件进行组织管理。

⚠️:组织的方式不同,就会形成不同的文件系统。

 

传统的文件系统: UNIX平台上的各种文件系统,也叫本地文件系统。

本地文件系统:通常占一个磁盘或一个磁盘分区。只能被唯一的主机访问,所以不能多个主机共享。

 

本地文件系统通常包含4类信息:

(1) 超级块:用来描述文件系统整体信息。含有整个文件系统中:数据块和inode的相关信息。

比如块个数、块大小、空闲块等等。

 

(2) inode(索引节点,index node,读作i - node):用来记录文件的元信息。

        比如 inode 编号、文件大小、访问权限、创建时间、修改时间、数据在磁盘的位置等等。

        inode是文件的唯一标识。

        它也都会被存储在硬盘中,所以,inode会占用磁盘空间。

 

(3) 文件内容:用户的数据,是无结构的。

 

(4) 目录内容:目录项,是有结构的。

 

⚠️:文件数据是如何存储在磁盘的?

 

磁盘读写的最小单位是扇区(Sector)。扇区的大小只有 512B ,很明显,如果每次读写都以这么小为单位,那这读写的效率会非常低。

所以,文件系统把多个扇区组成了一个逻辑块,每次读写的最小单位就是逻辑块(数据块)。Linux 中的逻辑块大小为 4KB,也就是一次性读写 8 个扇区,就大大提高了磁盘的读写的效率。

 

超级块通常位于磁盘(或分区)上的固定位置。

根据文件系统类型,可定位超级块。

通过超级块可定位根目录的inode:从而读出根目录的内容。

根据inode中的块映射信息,最后定位指定的文件块,然后就可以,读出或写入数据。



 

分布式文件系统概述

由于当时大家有文件共享的需求,为了解决资源共享问题,出现了分布式文件系统。

 

分布式文件系统:把大量的数据分散到不同的节点上进行存储。

他有个特点就是:冗余性。比如,你有个节点出故障,也不会影响到整体的正常运行,因为可以从其它节点,把损坏的数据恢复出来。

分布式文件系统:就是把很多的服务器节点,组成一个文件系统网络。每个节点可以分布在不同的地点,通过网络进行节点间的通信和数据传输。所以,你们在用分布式文件系统时,不用关心数据是存储在哪个节点上、或者是从哪个节点从获取的,用法就和本地文件系统一样。

 

下图:是一个分布式文件系统的拓扑结构。分布式文件系统里面的数据,可能来自很多不同的节点,它管理的数据也可能存储在不同的节点上。就导致了它和本地文件系统之间的差别。

 


 

1. 发展历程

分布式文件系统的发展主要经历以下4个阶段:

(1) 1980-1990年早期,第一代分布式文件系统

第一代系统就是:提供标准接口,目的就是:远程文件访问。

早期的文件系统,最具代表性的是:NFS(Network File System)和AFS (Andrew File System,安德鲁)。

 

NFS:网络文件系统

从1985年出现到现在,已经经历了四个版本的更新。

NFS利用Unix系统中的虚拟文件系统(Virtual File System,VFS)机制:把客户机对文件系统的请求,通过协议,转发到服务器端进行处理。

 

AFS:安德鲁文件系统

Carnegie Mellon(卡内基 梅隆)大学,在1983年,设计开发了AFS。

重点在:分布式文件系统的可扩展性。所以,当时它可以容易地支持数百个节点,甚至数千个节点的分布式环境。

 

总结:

早期的分布式文件系统,一般是以提供标准接口的远程文件访问为目的。

它们更多地关注:访问的性能和数据的可靠性。

 


(2) 1990-1995年,第二代分布式文件系统

20世纪90年代初,当时的需求是:广域网和大容量存储应用。

xFS:

所以加利福尼亚大学设计开发了xFS。它克服了以前的分布式文件系统「一般都运行在局域网(LAN)上」的弱点。

 

Tiger Shark并行文件系统:

它是针对「大规模实时」多媒体应用设计的。目的:保证多媒体传输的实时性和稳定性。

特点:

  • 资源预留,保证数据实时访问;
  • 加大文件系统「数据块」的大小;
  • 把大文件,分片存储在多个存储设备中。

 

Frangipani(鸡蛋花)分布式文件系统:

基于虚拟共享磁盘Petal(花瓣)的。

Petal:提供一个可以全局统一访问的磁盘空间。

Frangipani:基于Petal的特性,来提供文件系统的服务。它的结构就是:分层结构。

在Frangipani中,每个客户端也是文件系统服务器,参与文件系统的管理,可以平等地访问Petal提供的虚拟磁盘系统。

 


(3) 1995-2000年,第三代分布式文件系统

这个时候网络存储技术的发展起来了。

基于光纤通道的SAN (Storage Area Network,存储区域网络)、NAS (Network Attached Storage,网络附属存储) 得到了广泛应用。也推动了分布式文件系统的研究。

 

⚠️:

  • SAN:采用光纤通道(Fibre Channel)技术来访问数据。
  • NAS:采用网络技术,就是用网络交换机访问数据。

 

也出现了很多不一样的分布式文件系统体系结构,如Global/Google File System(GFS)、General Parallel File System(通用并行文件系统,GPFS)、SGI公司的CXFS、Sun的qFS等等。

 

 

更多的先进技术应用到系统里面。比如,缓存管理技术、Soft Updates(软更新)技术、文件级的负载平衡等。

 


(4) 2000年以后,第四代分布式文件系统

随着SAN和NAS两种结构逐渐成熟,研究人员开始考虑怎么把这两种结构结合起来。

另外,网格的研究,也推动了分布式文件系统的发展。

这一时期,IBM的StorageTank、Cluster的Lustre、Panasas(帕纳萨斯)的PanFS、蓝鲸文件系统(BWFS)等,都是这种体系结构的代表。

 

 

 

 

 

它们也对存储系统,提出了更多的需求:比如,

  • 大容量:因为数据量变大。
  • 高性能
  • 高可用性
  • 可扩展性
  • 可管理性
  • 按需服务

 


 

2. 实现方法

实现分布式文件系统,一般有两种方法:

  1. 共享文件系统 (Shared File System Approach)
  2. 共享磁盘 (Shared Disk Approach)
共享文件系统:

就是把文件系统的功能,分布到客户主机和服务器上。

步骤:客户主机向服务器提出请求,服务器通过文件系统:调用、读/写本地磁盘,然后,把结果发给客户主机。

采用共享文件方法的系统:例如,NFS、AFS和Sprite 文件系统。

共享磁盘:

就是用共享磁盘代替文件服务器。

共享磁盘往往是一种专用的高端存储设备,例如IBM SSA磁盘。

这个模型是构造NAS和SAN等存储设备的主要方法。

使用共享磁盘方法的系统有:VAX Cluster文件系统,IBM的GPFS和GFS等。

总结:

共享磁盘方法:对设备的要求比较高(比如,高速网络和共享磁盘)。

所以,实现的难度也大。通常,被用来构造高端或专用的存储设备。

 

共享文件系统模型:实现起来比较简单,对设备的要求不高,而且通用性比较好。

 

常见的分布式文件系统有很多,比较流行的是GFS & HDFS。这一章重点介绍的就是这两种分布式文件系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值