集群文件系统 (英語:clustered file system )是一种通过同时挂载在多个服务器 上实现共享的文件系统 。有几种实现集群的方法,其中大多数不使用集群文件系统(每个节点只有直连式存储)。集群文件系统可以提供基于位置的寻址和冗余等功能,这些特性可以提高可靠性或降低集群其他部分的复杂性。并行文件系统 是一种跨多个存储节点传播数据的集群文件系统,通常是为了冗余或性能。[ 1]
共享磁盘文件系统
共享磁盘文件系统 使用存储区域网络 (SAN)允许多台计算机在块级别直接访问磁盘。从应用程序使用的文件级操作到SAN使用的块级操作的访问控制和转换必须在客户机节点上进行。最常见的集群文件系统文件系统是共享磁盘文件系统,它通过增加并发控制 机制,提供了文件系统的一致性和可串行化 的视图,即使多个客户机试图同时访问相同的文件,也能避免损坏和意外的数据丢失。共享磁盘文件系统通常采用某种隔离机制,以防止在节点故障时出现数据损坏,因为非隔离设备如果失去与其姐妹节点的通信并试图访问其他节点正在访问的相同信息,就可能导致数据损坏。底层存储区域网络可以使用任何一种块级协议,包括SCSI 、iSCSI 、HyperSCSI、ATA over Ethernet (AoE)、光纤通道 、网络块设备和InfiniBand 。
共享磁盘文件系统有不同的体系结构方法。有些在集群中的所有服务器上分发文件信息(完全分布式)。[ 2] 另一些使用集中的集中式元数据 服务器。两者都实现了相同的结果,即允许所有服务器访问共享存储设备上的所有数据。[ 3]
示例
Silicon Graphics (SGI) clustered file system (CXFS)
Veritas Cluster File System
DataPlow Nasan File System
IBM General Parallel File System (GPFS)
Lustre
Microsoft Cluster Shared Volumes (CSV)
Oracle Cluster File System (OCFS)
OpenVMS Files-11 File System
PolyServe storage solutions
Quantum StorNext File System (SNFS), ex ADIC, ex CentraVision File System (CVFS)
Blue Whale Clustered file system (BWFS)
Red Hat Global File System (GFS2)
Sun QFS
TerraScale Technologies TerraFS
Versity VSM
VMware VMFS
Apple Xsan
LizardFS
分布式文件系统
分布式文件系统 不共享对同一存储的块级访问,而是使用网络协议 。[ 4] [ 5] 这些系统通常被称为网络文件系统 ,尽管它们并不是唯一使用网络发送数据的文件系统。[ 6] 分布式文件系统可以根据服务器和客户端上的访问控制表或能力来限制对文件系统的访问,具体取决于协议的设计方式。分布式文件系统和分布式数据存储之间的区别在于,分布式文件系统允许使用与本地文件相同的接口和语义来访问文件 – ,例如,挂载/卸载,列出目录、读取/写入字节边界、系统的本地权限模型。相比之下,分布式数据存储需要使用不同的 API 或库,并且具有不同的语义(通常是数据库的语义)。[ 7]
分布式文件系统也可以由实现IBM的分布式数据管理体系结构 (DDM)的软件创建,其中在一台计算机上运行的程序使用本地接口和语义来创建、管理和访问位于其他联网计算机上的文件。所有这样的客户机请求都被捕获并转换为由DDM定义的等效消息。同样,这些消息也会使用DDM定义的协议被传输到指定的远程计算机,在这台计算机上,DDM服务器程序解释消息,并使用该计算机的文件系统接口来定位和交互指定的文件。
设计目标
分布式文件系统可以在许多方面实现"透明性"。也就是说,它们的目标是让客户机程序"看不见"它们,这些客户端程序“看到”的事一个类似于本地文件系统的系统。在幕后,分布式文件系统处理定位文件、传输数据,并可能提供下面列出的其他功能。
访问透明性 :客户端感受不到文件是分布式的,并且可以像访问本地文件一样访问它们。
位置透明性 :存在一致的命名空间,包含本地文件和远程文件。文件名不提供其位置。
并发透明性 :所有客户端都具有相同的文件系统状态视图。这意味着,如果一个进程正在修改一个文件,那么同一系统或远程系统上访问该文件的任何其他进程都会以一致的方式看到修改。
失败透明性 :客户端和客户端程序应在服务器发生故障后正常运行。
异构性 :文件服务应该跨不同的硬件和操作系统平台提供。
可扩展性 :文件系统应该在小型环境(1台机器,12台机器)中运行良好,并且可以优雅地扩展到更大的(数百到数万个系统)。
复制透明性 :客户端不应感受到文件复制是跨多个服务器执行的。
迁移透明度 :文件在不同的服务器之间的移动不应该让客户感受到。
历史
在20世纪60年代,不兼容分时系统使用虚拟设备进行透明的机器间文件系统访问。20世纪70年代开发了更多的文件服务器。1976年, 数字设备公司 发明了文件访问监听器(FAL),这是数据访问协议的一种实现,作为DECnet阶段II的一部分,成为第一个广泛使用的网络文件系统。1985年,昇阳电脑 创建了名为“网络文件系统 ”(NFS)的文件系统,该系统成为第一个广泛使用的基于Internet协议 的网络文件系统。[ 5] 其他著名的网络文件系统包括安德鲁文件系统(AFS)、Apple文件协议(AFP),NetWare核心协议(NCP)和服务器消息块 (SMB,也称为通用因特网文件系统(CIFS))。1986年,IBM 宣布为运行CICS 的System/36、System/38和IBM大型计算机提供分布式数据管理架构(DDM)的客户端和服务器支持。随后是对IBM Personal Computer 、AS/400、MVS和VSE操作系统下的IBM大型计算机以及FlexOS的支持。DDM也成为分布式关系数据库体系结构 (也称为DRDA)的基础。
面向云计算的开源分布式文件系统或闭源集群文件系统,有许多对等 网络协议,例如:9P、AFS、Coda 、CIFS/SMB 、DCE/DFS、Lustre、PanFS、Google File System 、Mnet、Chord Project。
示例
Alluxio
BeeGFS (弗劳恩霍夫)
Ceph (Inktank,Red Hat,SUSE)
Windows Distributed File System (DFS) (Microsoft)
Infinit
GfarmFS
GlusterFS (红帽)
GFS (谷歌公司)
HDFS (Apache软件基金会)
IPFS
iRODS
LizardFS (Skytechnology)
MapR FS
MooseFS (Core Technology / Gemius)
ObjectiveFS
OneFS (EMC Isilon)
OpenIO
OrangeFS (克莱姆森大学,Omnibond Systems),以前的并行虚拟文件系统
PanFS (Panasas)
并行虚拟文件系统 (克莱姆森大学,阿贡国家实验室,俄亥俄州超级计算机中心)
RozoFS (Rozo Systems)
Torus(CoreOS)
XtreemFS
网络附加存储
网络附加存储 (NAS)提供存储和文件系统,就像存储区域网络(SAN)上的共享磁盘文件系统。NAS通常使用基于文件的协议(与SAN将使用的基于块的协议不同),例如NFS (在UNIX系统上很流行),SMB/CIFS(服务器消息块/通用Internet文件系统 )(与MS Windows系统一起使用),AFP (与Apple Macintosh 计算机一起使用)或NCP(与OES和Novell NetWare一起使用)。
设计方面的考虑
避免单点故障
磁盘硬件或集群中某个给定存储节点的故障可能会导致单点故障,从而导致数据丢失或不可用。可以通过各式各样的数据复制提供容错和高可用性,这样即使任何单个设备发生故障,数据仍然是完整的和可用的。有关示例,请参阅分布式容错文件系统和分布式并行容错文件系统的列表。
性能
集群文件系统的常见性能度量 是满足服务请求所需的时间量。在传统系统中,此时间由磁盘访问时间和少量CPU 处理时间组成。但是在集群文件系统中,由于分布式结构,远程访问会产生额外的开销。这包括向服务器发送请求的时间、向客户机发送响应的时间,以及对于每个方向运行通信协议软件的CPU开销。
并发
当不止一个人或客户端访问同一个文件或块并想要更新它时,并发控制就会成为一个问题。因此,一个客户端对文件的更新不应该干扰其他客户端的访问和更新。这个问题在文件系统中更加复杂,因为并发的重叠写操作是由不同的写入器并发地写入文件的重叠区域。[ 8] 这个问题通常由并发控制 或锁来处理,它们可以内置在文件系统中,也可以通过附加协议来提供。
历史
上世纪70年代的IBM大型机,如果每台机器都有自己的通道连接到驱动器的控制单元,就可以共享物理磁盘和文件系统。在20世纪80年代,Digital Equipment Corporation 的TOPS-20和OpenVMS集群(VAX/ALPHA/IA64)包含了共享磁盘文件系统。[ 9]
参见
参考
^ Saify, Amina; Kochhar, Garima; Hsieh, Jenwei; Celebioglu, Onur. Enhancing High-Performance Computing Clusters with Parallel File Systems (PDF) . Dell Power Solutions. Dell Inc. May 2005 [6 March 2019] . (原始内容存档 (PDF) 于2021-04-24).
^ Mokadem, Riad; Litwin, Witold; Schwarz, Thomas. Disk Backup Through Algebraic Signatures in Scalable Distributed Data Structures (PDF) . DEXA 2006 Springer. 2006 [8 June 2006] . (原始内容存档 (PDF) 于2019-02-24).
^ Periasamy, Anand Babu; Collins, Eli; Darcy, Jeff; Farnum, Gregory. Gluster: What are advantages of using centralized metadata server ( such as namenode in HDFS ) compared to elastic hashing algorithm used in GlusterFS for a File System? . Quora. Quora Inc. April 2013 [6 March 2019] .
^ Silberschatz, Abraham; Galvin, Peter; Gagne, Greg. 2013-2014/Operating_System_Concepts,_8th_Edition[A4 .pdf Operating System Concepts, 8th Edition] (PDF) . University of Babylon. John Wiley & Sons, Inc.: 705–725. 2009 [4 March 2019] . [永久失效連結 ]
^ 5.0 5.1 Arpaci-Dusseau, Remzi H.; Arpaci-Dusseau, Andrea C., Sun's Network File System (PDF) , Arpaci-Dusseau Books, 2014 [2019-04-03 ] , (原始内容存档 (PDF) 于2019-04-03)
^ Sandberg, Russel. The Sun Network Filesystem: Design, Implementation and Experience (PDF) . Proceedings of the Summer 1986 USENIX Technical Conference and Exhibition. Sun Microsystems, Inc. 1986 [6 March 2019] . (原始内容存档 (PDF) 于2020-10-25). NFS was designed to simplify the sharing of filesystem resources in a network of non-homogeneousmachines.
^ Sobh, Tarek. Advances in Computer and Information Sciences and Engineering . Springer Science & Business Media. 2008: 423 -440.
^ Pessach, Yaniv (2013). Distributed Storage: Concepts, Algorithms, and Implementations . ISBN 978-1482561043 .
^ Murphy, Dan. Origins and Development of TOPS-20 . Dan Murphy. Ambitious Plans for Jupiter. 1996 [6 March 2019] . (原始内容存档 于2018-10-01). Ultimately, both VMS and TOPS-20 shipped this kind of capability.
扩展阅读