分布式文件系统

相对于本机端的文件系统而言,分布式文件系统(英语:Distributed file system, DFS),或是网络文件系统(英语:Network File System),是一种允许文件透过网络在多台主机上分享的文件系统,可让多机器上的多用户分享文件和存储空间。

在这样的文件系统中,客户端并非直接存取底层的资料存储区块,而是透过网络,以特定的通讯协议和伺服器沟通。借由通讯协议的设计,可以让客户端和服务端都能根据存取控制清单或是授权,来限制对于文件系统的存取。

相对地,在一个分享的磁碟文件系统中,所有节点对资料存储区块都有相同的存取权,在这样的系统中,存取权限就必须由客户端程序来控制。

分布式文件系统可能包含的功能有:透通的资料复制英语replication (computer science)容错。也就是说,即使系统中有一小部分的节点离线,整体来说系统仍然可以持续运作而不会有资料损失英语data loss

分布式文件系统和分布式资料存储的界线是模糊的,但一般来说,分布式文件系统是被设计用在局域网[1],比较强调的是传统文件系统概念的延伸,并透过软件方法来达成容错。而分布式资料存储,则是泛指应用分布式运算技术的文件和数据库等提供资料存储服务的系统。

历史

第一个文件伺服器在1970年代被发展出来。在1976年迪吉多公司设计出File Access Listener英语File Access Listener(FAL)做为第二代DECnet英语DECnet的一部分。这个系统实现了Data Access Protocol,是第一个被广为使用的网络文件系统。在1985年Sun微系统建立了网络文件系统(Network File System,NFS),这是第一个基于网际协议(Internet Protocol)而被广泛使用的网络文件系统。在相关技术的演进过程中,其他值得一提的网络文件系统还有安德鲁文件系统(AFS)、Apple Filing Protocol(AFP)、NetWare核心协议(NCP)、和一般被称为网络文件共享系统(CIFS)的服务器消息块(Server Message Block,SMB)等。

透通性

分布式文件系统通常都内建有透通性,让实际上是透过网络来存取文件的动作,由程序与用户看来,就像是存取本地的磁碟一般。伺服器与存储装置之间的架构多样性与分离性,因此被隐藏了起来。而定位文件在系统中的位置与资料传输的机制,就有赖网络文件系统的设计了。

性能

一个普遍用来量测网络文件系统性能的方式是:它需要用多少时间来完成服务请求?在传统的系统中,完成请求所需要的时间包括了实际的硬盘存取时间,和一小部分的中央处理器处理时间。但在一个网络文件系统中,由于分布式架构的关系,远程存取动作会产生额外的经常性负担英语Overhead,包括:把请求从客户端送到服务端的时间、把回应从服务端传回客户端的时间、以及这两个传输过程中用来执行网络传输协议的中央处理处时间。一个网络文件系统的性能,可被视为是评估它透通性的一个维度,拿来与本地磁碟进行充分的对比。

同时更新文件

当多个用户或客户端同时存取并更新同一个文件的时候,并发控制即会成为一个议题。一个客户端对于文件的更新,应该不能干涉另一个客户端对该文件的存取与更新。并发控制或锁定机制可以内建在文件系统中,或是透过扩增协议来提供。

CAP定理

著名的CAP定理指出:在一个分布式资料存储架构中,资料的一致性(Consistency)、可用性(Availability)、和网络分隔的容忍程度(Partition tolerance)只能取二来做优化,无法三者兼具。当代的分布式资料存储服务均是各自针对服务的内容和性质来作取舍,很难说有哪一个是通用的最佳解。

参见

参考文件

  1. ^ Silberschatz, Galvin (1994). Operating System concepts, chapter 17 Distributed file systems. Addison-Wesley Publishing Company. ISBN 0-201-59292-4.

外部链接