分类: 架构设计与优化
2014-09-22 14:03:03
随着计算机应用范围的扩展,通过文件访问接口在不同主机之间共享文件的需求日益增强。下面分为几个阶段介绍分布式文件系统的发展过程。
最初的分布式文件系统应用发生在20世纪70年代,之后逐渐扩展到各个领域。从早期的NFS到现在的StorageTank,分布式文件系统在体系结构、系统规模、性能、可扩展性、可用性等方面经历了巨大的变化。
第一代分布式文件系统(1980年代)
早期的分布式文件系统一般以提供标准接口的远程文件访问为目的,更多地关注访问的性能和数据的可靠性,以NFS和AFS(Andrew File System)最具代表性,它们对以后的文件系统设计也具有十分重要的影响。
NFS从1985年出现至今,已经经历了四个版本的更新,被移植到了几乎所有主流的操作系统中,成为分布式文件系统事实上的标准。NFS利用Unix系统中的虚拟文件系统(Virtual File System,VFS)机制,将客户机对文件系统的请求,通过规范的文件访问协议和远程过程调用,转发到服务器端进行处理;服务器端在VFS之上,通过本地文件系统完成文件的处理,实现了全局的分布式文件系统。Sun公司公开了NFS的实施规范,互联网工程任务组(The Internet Engineering Task Force,IETF)将其列为征求意见稿(RFC-Request for Comments),这很大程度上促使NFS的很多设计实现方法成为标准,也促进了NFS的流行。NFS不断发展,在第四版中提供了基于租赁(Lease)的同步锁和基于会话(Session)语义的一致性等。
Carnegie Mellon大学在1983年设计开发的AFS将分布式文件系统的可扩展性放在了设计和实现的首要位置,并且着重考虑了在不安全的网络中实现安全访问的需求。因此,它在位置透明、用户迁移、与已有系统的兼容性等方面进行了特别设计。AFS具有很好的扩展性,能够很容易地支持数百个节点,甚至数千个节点的分布式环境。同时,在大规模的分布式文件系统中,AFS利用本地存储作为分布式文件的缓存,在远程文件无法访问时,依然可以部分工作,提高了系统可用性。后来的Coda File System、Inter-mezzo File System都受到AFS的影响,更加注重文件系统的高可用性(High Availability)和安全性,特别是Coda,在支持移动计算方面做了很多的研究工作。
早期的分布式文件系统一般以提供标准接口的远程文件访问为目的,在受网络环境、本地磁盘、处理器速度等方面限制的情况下,更多地关注访问的性能和数据的可靠性。AFS在系统结构方面进行了有意义的探索。它们所采用的协议和相关技术,为后来的分布式文件系统设计提供了很多借鉴。
第二代分布式文件系统(1990~1995)
20世纪90年代初,面对广域网和大容量存储应用的需求,借鉴当时先进的高性能对称多处理器的设计思想,加利福尼亚大学设计开发的xFS,克服了以前的分布式文件系统一般都运行在局域网(LAN)上的弱点,很好地解决了在广域网上进行缓存,以减少网络流量的难题。它所采用的多层次结构很好地利用了文件系统的局部访问的特性,无效写回(Invalidation-based Write Back)缓存一致性协议,减少了网络负载。对本地主机和本地存储空间的有效利用,使它具有较好的性能。
Tiger Shark并 行文件系统是针对大规模实时多媒体应用设计的。它采用了多种技术策略保证多媒体传输的实时性和稳定性:采用资源预留和优化的调度手段,保证数据实时访问性 能;通过加大文件系统数据块的大小,最大限度地发挥磁盘的传输效率;通过将大文件分片存储在多个存储设备中,取得尽量大的并行吞吐率;通过复制文件系统元 数据和文件数据,克服单点故障,提高系统可用性。
基于虚拟共享磁盘Petal的Frangipani分布式文件系统,采用了一种新颖的系统结构—分层次的存储系统。Petal提供一个可以全局统一访问的磁盘空间。Frangipani基于Petal的特性提供文件系统的服务。这种分层结构使两者的设计实现都得到了简化。在Frangipani中,每个客户端也是文件系统服务器,参与文件系统的管理,可以平等地访问Petal提供的虚拟磁盘系统,并通过分布式锁实现同步访问控制。分层结构使系统具有很好的扩展性,可以在线动态地添加存储设备,增加新用户、备份等,同时系统具有很好的机制来处理节点失效、网络失效等故障,提高了系统的可用性。
Slice File System(SFS)考虑标准的NFS在容量、性能方面存在的限制,采用在客户机和服务器之间架设一个μproxy中间转发器,以提高性能和可扩展性。它将客户端的访问分为小文件、元数据服务、大文件数据三类请求。通过μproxy将前两种请求转发到不同的文件服务器上,将后者直接发送到存储服务器上。这样SFS系统就可以支持多个存储服务器,提高整个系统的容量和性能。μproxy根据请求内容的转发是静态的,对于整个系统中负载的变化难以做出及时反应。
第三代分布式文件系统(1995~2000)
网络技术的发展和普及应用极大地推动了网络存储技术的发展,基于光纤通道的SAN、NAS得到了广泛应用。这也推动了分布式文件系统的研究。 在这个阶段,计算机技术和网络技术有了突飞猛进的发展,单位存储的成本大幅降低。而数据总线带宽、磁盘速度的增长无法满足应用对数据带宽的需求,存储子系统成为计算机系统发展的瓶颈。这个阶段,出现了多种体系结构,充分利用了网络技术。
出现了多种分布式文件系统体系结构,如Global File System(GFS)、General Parallel File System (GPFS)、惠普的DiFFS、SGI公司的CXFS、EMC的HighRoad、Sun的qFS、XNFS等。 数据容量、性能和共享的需求使得这一时期的分布式文件系统管理的系统规模更大、系统更复杂,对物理设备的直接访问、磁盘布局和检索效率的优化、元数据的集 中管理等都反映了对性能和容量的追求。规模的扩展使得系统的动态性,如在线增减设备、缓存的一致性、系统可靠性的需求逐渐增强,更多的先进技术应用到系统 实现中,如分布式锁、缓存管理技术、SoftUpdates技术、文件级的负载平衡等。
第四代分布式文件系统(2000年以后)
随着SAN和NAS两种结构逐渐成熟,研究人员开始考虑如何将两种结构结合起来。网格的研究成果等也推动了分布式文件系统体系结构的发展。
随着SAN和NAS两种体系结构逐渐成熟,研究人员开始考虑如何将两种体系结构结合起来,以充分利用两者的优势。另一方面,基于多种分布式文件系统的研究成果,人们对体系结构的认识不断深入,网格的研究成果等也推动了分布式文件系统体系结构的发展。这一时期,IBM的StorageTank、Cluster的Lustre、Panasas的PanFS、蓝鲸文件系统(BWFS)等是这种体系结构的代表。各种应用对存储系统提出了更多的需求:
处 于这个阶段的系统都在研究中,但从中也可以看出一些发展趋势:体系结构的研究逐渐成熟,表现在不同文件系统的体系结构趋于一致;系统设计的策略基本一致, 如采用专用服务器方式等;每个系统在设计的细节上各自采用了很多特有的先进技术,也都取得了很好的性能和扩展性。另外,在协议方面的探索也是研究的热点之 一,如Direct Access File System利用了远程内存直接访问的特性,借鉴了NFS第四版本和Common Internet File System等协议,设计了一套新的网络文件访问协议。