分布式文件系统是什么?
分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点(可简单的理解为一台计算机)相连。分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供多用户访问的服务器。另外,对等特性允许一些系统扮演客户机和服务器的双重角色。例如,用户可以“发表”一个允许其他客户机访问的目录,一旦被访问,这个目录对客户机来说就像使用本地驱动器一样,下面是三个基本的分布式文件系统。
系统分类:
网络文件系统
(NFS) 最早由Sun微系统公司作为TCP/IP网上的文件共享系统开发。Sun公司估计大约有超过310万个系统在运行NFS,大到大型计算机、小至PC机,其中至少有80%的系统是非Sun平台。[3]
Andrew系统
AFS是一种分布式的文件系统用来共享与获得在计算机网络中存放的文件。AFS使得用户获得网络文件就像本地机器般方便。AFS文件系统被称为“分布式”是因为文件可以分散地存放在很多不同的机器上,但这些文件对于用户而言是可及的,用户可以通过一定的方式得到这些文件。[4]
KASS系统
KASS File System(简称KFS)是开始软件自主研发基于JAVA的纯分布式文件系统,功能类似于DFS、GFS、Hadoop,通过HTTP WEB为企业的各种信息系统提供底层文件存储及访问服务,搭建企业私有云存储服务平台。[5]
DFS系统
DFS是AFS的一个版本,作为开放软件基金会(OSF)的分布
分布式文件系统式计算环境DCE中的文件系统部分。
如果文件的访问仅限于一个用户,那么分布式文件系统就很容易实现。可惜的是,在许多网络环境中这种限制是不现实的,必须采取并发控制来实现文件的多用户访问,表现为如下几个形式:
只读共享 任何客户机只能访问文件,而不能修改它,这实现起来很简单。
受控写操作 采用这种方法,可有多个用户打开一个文件,但只有一个用户进行写修改。而该用户所作的修改并不一定出现在其它已打开此文件的用户的屏幕上。
并发写操作 这种方法允许多个用户同时读写一个文件。但这需要操作系统作大量的监控工作以防止文件重写,并保证用户能够看到最新信息。这种方法即使实现得很好,许多环境中的处理要求和网络通信量也可能使它变得不可接受。[6]
NFS和AFS的区别
NFS和AFS的区别在于对并发写操作的处理方法上。当一个客户机向服务器请求一个文件(或数据库记录),文件被放在客户工作站的高速缓存中,若另一个用户也请求同一文件,则它也会被放入那个客户工作站的高速缓存中。当两个客户都对文件进行修改时,从技术上而言就存在着该文件的三个版本(每个客户机一个,再加上服务器上的一个)。有两种方法可以在这些版本之间保持同步:
无状态系统 在这个系统中,服务器并不保存其客户机正在缓存的文件的信息。因此,客户机必须协同服务器定期检查是否有其他客户改变了自己正在缓存的文件。这种方法在大的环境中会产生额外的LAN通信开销,但对小型LAN来说,这是一种令人满意的方法。NFS就是个无状态系统。
回呼(Callback)系统 在这种方法中,服务器记录它的那些客户机的所作所为,并保留它们正在缓存的文件信息。服务器在一个客户机改变了一个文件时使用一种叫回叫应答(callbackpromise)的技术通知其它客户机。这种方法减少了大量网络通信。AFS(及OSFDCE的DFS)就是回叫系统。客户机改变文件时,持有这些文件拷贝的其它客户机就被回叫并通知这些改变。
无状态操作在运行性能上有其长处,但AFS通过保证不会被回叫应答充斥也达到了这一点。方法是在一定时间后取消回叫。客户机检查回叫应答中的时间期限以保证回叫应答是当前有效的。回叫应答的另一个有趣的特征是向用户保证了文件的当前有效性。换句话说,若一个被缓存的文件有一个回叫应答,则客户机就认为文件是当前有效的,除非服务器呼叫指出服务器上的该文件已改变了。[7]
ZDFS
ZDFS是在Hadoop HDFS基础上进行的改造和扩展,将服务器集群内所有节点上存储的文件统一管理和存储。这些节点包括唯一的一个NamingNode,在 ZDFS 内部提供元数据服务;许多MapNode,提供存储块。存储在 ZDFS 中的文件被分成块,然后将这些块复制到多个计算机中。这与传统的 RAID 架构大不相同。块的大小和复制的块数量在创建文件时由客户机决定。Naming Node监控存在服务器集群内所有节点上的文件操作,例如文件创建、删除、移动、重命名等等。
凡注有"天津滨海网"或电头为"天津滨海网"的稿件,均为天津滨海网独家版权所有,未经许可不得转载或镜像;授权转载必须注明来源为"天津滨海网",并保留"天津滨海网"的电头。