摘要摘要:随着信息数据的爆炸式增长,为了解决存储共享和数据管理问题,出现了分布式文件系统。介绍当前流行的分布式文件系统,从设计思路、关键技术等方面分析各自特点,并比较其异同。
关键词关键词:存储共享;数据管理;分布式文件系统
DOIDOI:10.11907/rjdk.151876
中图分类号:TP301
文献标识码:A文章编号文章
编号:16727800(2015)011002703
基金项目基金项目:
作者简介作者简介:文莎(1986-),男,湖南长沙人,硕士,南京政治学院上海校区军事信息管理系助教,研究方向为信息存储。
0引言
在信息爆炸时代,数据呈指数增长,单纯通过增加硬盘个数和依托本地文件系统已无法满足数据信息存储和管理需求。为解决信息存储容量、数据备份、数据安全等问题,人们提出了分布式文件系统的概念。分布式文件系统将固定于某个地点的某个本地文件系统扩展到任意多个地点/多类型文件系统。众多的节点组成一个文件系统网络,每个节点可以分布在不同地点,通过网络进行节点间的通信和数据传输。使用分布式文件系统时,无需关心数据存储在哪个节点上、或者是从哪个节点获取的,像使用本地文件系统一样管理和存储文件系统中的数据。本文将探讨分布式文件系统,并对其关键技术进行分析。
1NFS
NFS不是一个具体的文件系统,它是为实现文件共享提出的一种访问远程文件系统的网络协议。通过NFS,可以发布共享信息,而远程客户像使用本地文件一样访问该共享信息。其基本思想是让客户集和服务器的任何一个集合共享一个公用目录, NFS允许一台计算机既是客户机,又是服务器,当一个服务器输出某个目录时,该目录为根的子目录树同时被输出。另外,当多个客户机同时安装同一个目录时,它们可以通过共享公用目录的文件进行通信。其数据访问流程如图1所示。
NFS将VFS传递的特定NFS文件系统操作翻译成NFS请求。RPC提供了在系统间执行程序调用的方法。它将封送 NFS 请求,并伴有参数,将它们发送到合适的远程对等级,然后管理并追踪响应,提供给合适的请求者。XDR 将数据转换为公共表示,需求通过网络传输给传输层协议。
NFS v4通过基于租赁的同步锁提高了客户端访问的并发性,通过会话语义提高了数据的一致性,通过Kerberos V5和 LIPKEY实现了数据安全访问。但是,NFS 本质上只是在本地文件系统构建一个虚拟远程文件访问层,虽易管理,但难以满足多客户端读写密集型应用环境下的需求。
2AFS
AFS是专门为在大型分布式环境中提供可靠的文件服务而设计的,它将高扩展性和数据安全访问作为设计首要考虑因素。要增强系统可扩展性,首要任务是减轻服务端的负担,AFS的设计思路正是基于此,通过一系列关键技术提供保证。其一,全文件缓存策略。每次操作文件,直接将整个文件从服务器端读取,然后缓存在本地磁盘中,后续操作就在本地执行,从而减少了服务器的很多工作量;其二,使用回调机制来保证客户端缓存到一致性。所谓回调机制就是服务器端主动通知客户端某个文件是否过时,而非客户端轮询地询问服务器端。这样就减少了客户端与服务器端之间的交互,从而减轻了服务器端的负载。同时,由于是全文件缓存,即使在网络状况不理想或者服务器中途重启也不影响AFS文件服务的提供,提高了系统可用性;其三,AFS创建便于管理的带有基于网孔结构的分布式环境。网孔是由特定机构管理的自治区域内文件服务器和客户系统的集合,代表某一组织的计算资源。用户可以很容易地与网孔内其它用户共享信息。根据其它网孔管理机构授予的访问权,用户还可以与这些单元格中的用户共享信息。AFS提供给用户的只是一个完全透明的、永远唯一的逻辑路径,通过这个逻辑路径,用户就像面对一个文件目录一样。
AFS是一种高安全性的文件系统。它通过Kerberos鉴权与访问控制列表的配合为用户提供安全保障。用户使用AFS,首先需要验证身份,只有合法的AFS用户才能访问相应的网孔;其次,用户还需要在保护数据库中读取相应的访问控制列表,以确定它是否有权限读写某个文件。
3Sprite
Sprite分布式文件系统[5]是Sprite网络操作系统的组成部分之一。Sprite分布式文件系统是首个引入日志结构的文件系统,提高了写操作的速度和数据的高可用性,并通过缓存技术降低了日志特性给读操作带来的负面影响。它通过简单的读写锁来保证整个系统缓存的一致性,并且通过和虚拟存储部分交互,并尽量多地缓存数据来提高性能。在打开一个文件和初始化读取后,网络仅仅用于点播,大多数用户服务将针对缓存进行。依托Sprite网络操作系统,Sprite分布式文件系统允许应用程序通过文件系统接口访问远程主机上的I/O设备。
4Farsite
Farsite[6]是一个安全、可扩展的文件系统,其功能逻辑上是集中的文件服务器,而物理上分布于一系列不可信的计算机之间。该系统所面向的机器是校园或者公司的桌面工作站。这些工作站散布在高带宽、低延迟以及网络拓扑结构可以忽略的网络环境中。这些负载具有很高的访问局部性,很低的持续更新率以及经常串行,但同时的文件读写模式较少。预期的机器特性包括很高的故障停止率以及恶意或是碰巧的系统破坏情况。另外,该系统基于的背景是校园以及公司的桌面工作站磁盘空间利用率低,允许存放更多的冗余信息,而且计算速度越来越快。
Farsite通过副本技术、拜占庭容错技术、持续重定位文件副本、缓存保存期限等技术来提高文件的可靠性和可用性;通过加密技术保证文件内容的安全性;目录元数据保存于拜占庭副本状态机器中,而且允许元数据语法增强的专门的加密技术,通过拜占庭容错协议保持文件和目录数据的整体性;通过利用签名和过期的证书来缓存拜占庭操作的授权,达到既要提供拜占庭容错机制又要减小在完全拜占庭协议中的开销的目的;通过使用对路径名事务的分布式的提示机制和代理认证来提供可扩展性;通过本地缓存文件数据、懒散策略传播文件更新以及变换内容租约的持续时间和粒度来保证系统的高性能。
5Shark
Shark分布式文件系统[7]的设计目标是针对实时多媒体应用提供一个可大规模广域部署的环境。通过协作式缓存机制使得互不信任的客户端之间可以利用对方的文件缓存来减少文件原始服务器的负载,提升系统扩展性;通过分布式索引技术使得客户端能够找到邻近节点的数据副本,即使该副本来自于不同的服务器;采用资源预留和优化的调度手段,保证数据实时访问性能;通过加大文件系统数据块的大小,最大限度地发挥磁盘的传输效率;通过将大文件分片存储在多个存储设备中,取得尽量大的并行吞吐率;采用基于租约的缓存机制保持文件一致性,缓存更新只获取更改过的文件数据块,避免了文件部分修改情况下的不必要的数据传输;依托数据块令牌技术,使得不同版本的文件,或者是不同服务器上的文件,客户端也能发现并下载相同的数据块;通过复制文件系统元数据和文件数据克服单点故障,提高系统可用性。当一个客户端从代理下载文件块时,其将与代理协商其它文件块的下载,以重用与代理建立的网络链接,这样就节省了重新连接的开销。Shark使用不透明令牌保证文件共享的安全性:使用文件令牌作为密钥对传输的数据进行对称加密;客户端可通过令牌校验保障数据的完整性;客户端通过提供正确的令牌证明其拥有读授权。
6GPFS
GPFS(通用并行文件系统)[8]是一种高性能、高可扩展、共享磁盘的并行文件系统。它被普遍应用于大规模Linux或 AIX集群系统中,能够为并行应用程序提供高性能的存取访问,同时具有良好的可扩展性,支持PB级数据的存储管理。GPFS采用分片存储将节点内读写操作分布到多个磁盘上,并结合负载均衡、较大的文件系统块、数据预读等方法获得较高的数据吞吐率;采用扩展哈希技术来支持含有大量文件和子目录的大目录,提高文件查找和检索效率;自动在各个节点间同步配置文件和文件系统信息,可以在任一个节点上对整个GPFS进行管理,提高了系统的可管理性;采用节点级独立日志技术,单节点失效时其它节点可以代替失效节点检查文件系统日志进行元数据恢复操作,提高系统数据的可用性;存储设备的热插拔及数据的动态平衡技术可以满足某些高端应用的连续作业需求,有效克服了系统中诸如单个节点失效、网络通信故障、磁盘失效等异常事件,提高了系统的可靠性;通过一套复杂的信令管理机制提供数据一致性;采用不同粒度的分布式锁:用于用户数据的同步及动态选择元数据节点进行元数据集中管理中的字节范围锁以及用于管理整个系统中空间分配具有的集中式线索的分布式锁,解决系统中的并发访问和数据同步问题。
7Lustre
Lustre[9]分布式文件系统是第一个基于对象存储设备的并行文件系统,是为解决海量存储问题而设计的。作为基于对象的文件系统,它将文件的元数据和文件数据分离开来,存储在不同服务器上进行管理。文件元数据存储在元数据服务器中,而文件数据则存储在对象存储服务器中,文件系统客户直接通过对象存储服务器来访问文件内容,而元数据服务器只有在文件被打开时才需要连接。文件系统的客户端利用元数据服务器和对象存储服务器为用户提供一个完整的文件系统抽象。这种分离架构减少了数据服务器的负载。Lustre运用带意图的分布式锁管理机制来实现并发控制,元数据和文件数据的通讯链路分开管理,减少客户机和文件系统元数据服务器之间的消息传递,也缩小了每次操作的延迟。Lustre设计还考虑了对网格环境的支持,一方面考虑了文件系统的安全性策略,包括认证、授权和文件内容加密;另一方面,将管理系统状态监视和网格结合,其设置信息和状态信息采用XML格式,提供通过LDAP(轻量级目录访问协议)接口操纵设置信息,而且支持通过SNMP获取和修改这些信息。Lustre,从而设计充分考虑了系统故障时的错误恢复,系统正常运行时,存在前台的活跃MDS服务器和备用MDS服务器上。当前台运行的MDS服务器出现故障时,客户端会通过查询LDAP服务器,自动跳转而连接备用MDS服务器,从而使系统恢复正常运行。它采用标准的 XML、LDAP、SNMP等协议来进行系统管理,还加入了失效接替等特性,提高了系统的可用性。目前,Lustre采用单个元数据服务器,虽然简单、精确并具有扩展性,但依赖于单台服务器降低了Lustre中元数据操作的性能。
8对比分析
前文从设计思路、关键技术等方面分析了NFS、AFS、Sprite、Farsite、GPFS、Shark、Lustre等分布式文件系统。它们有着各自不同的应用需求,针对各自应用需求有相应的设计思路采用了不同技术。下面从元数据管理、并发控制、安全性、可用性和可扩展性对这些文件系统进行对比分析。
(1)元数据管理。上述分布式文件系统中,Lustre将数据信息与元数据信息分开存放,即采用带外模式管理元数据,而其它分布式文件系统则采用带内模式管理元数据。
(2)并发控制。各分布式文件系统利用不同的锁机制实现数据的并发访问。锁分为集中管理锁和分布式管理锁,在分布式文件系统中如果有多个锁管理器,则为分布式管理锁,否则为集中管理锁。GPFS和Lustre采用了分布式管理锁,其余分布式文件系统则采用集中管理锁。
(3)安全性。上述分布式文件系统通过不同程度身份认证、授权和文件内容加密机制保证数据的安全性,NFS和AFS依托Kerberos技术和访问控制列表,Farsite使用复杂加密手段,Shark使用文件令牌加密机制等。
(4)可用性。分布式文件系统使用不同技术实现不同程度的文件副本、日志管理、缓存机制来保证整个系统的可用性。其中,AFS采用全文件缓存策略,Sprite采用日志技术,Farsite采用文件副本、拜占庭容错等技术,后续分布式文件系统也采用类似的手段来保证可用性。
(5)可扩展性。随着文件数据呈现爆炸式增长,可扩展性在分布式文件系统设计中显得越来越重要,它是分布式文件系统上述各项指标的综合体现,只有切合实际应用环境并权衡好各项指标才能真正提高文件系统的扩展性。
9结语
分布式文件系统不仅改变了数据存储和管理的方式,也具有本地文件系统所无法具备的数据备份、数据安全等优点。各类型的分布式文件系统由不同的应用需求催生而来,能够按照应用需求提供不同的服务,它们在数据存储、数据管理、数据共享、安全性、稳定性、可用性和扩展性方面也各有所长、各具特色。
参考文献参考文献:
[1]R SANDBERG,D GOLDBERG,S KLEINMAN,et al.Design and implementation of the sun network file system[C]. Proceedings of the USENIX 1985 Summer Conference,1985: 119130.
[2]M TIM JONES. Network file systems and linux[EB/OL]. http://www.ibm.com/developerworks/linux/library/lnetworkfilesystems/.
[3]M SATYANARAYANAN,J H HOWARD,D N NICHOLS,et al.The itc distributed file system:priciples and design[C]. Proceedings of The Tenth ACM Sysposium on Operating Systems Principles,1985.
[4]M SATYANARAYANAN. Integrating secrtity in a large distributed system[J]. ACM Transactions on Computer Systems,1989,7(3): 247280.
[5]JOHN K OUSTERHOUT,ANDREW R CHERENSON,FREDERICK DOUGLIS,et al.The sprite network operating system[J]. Computer,1988,21(2):2326.
[6]ATUL ADYA,WILLIAM J BOLOSKY,MIGUEL CASTRO,et al.Farsite:federated,available,and reliable storage for an incompletely trusted environment[C]. Proceedings of the 5th Sysposium on Operating Systems Design and Implementation,2002.
[7]ROGER L HASKIN. The shark continuous media file server[C]. Proceedings of IEEE 1993 Spring COMPCON,1993:1217.
[8]FRANK SCHMUCK,ROGER HASKIN. Gpfs:a shareddisk file system for large computing clusters[C]. Proceedings of the Conference on File and Storage Technologies,2002:231244.
[9]Lustre homepage[EB/OL]. http://www.lustre.org.
责任编辑(责任编辑:陈福时)