A clustered file system (CFS) is a
file system which is shared by being simultaneously
mounted
Mount is often used as part of the name of specific mountains, e.g. Mount Everest.
Mount or Mounts may also refer to:
Places
* Mount, Cornwall, a village in Warleggan parish, England
* Mount, Perranzabuloe, a hamlet in Perranzabuloe parish, Co ...
on multiple
servers. There are several approaches to
clustering, most of which do not employ a clustered file system (only
direct attached storage for each node). Clustered file systems can provide features like location-independent addressing and redundancy which improve reliability or reduce the complexity of the other parts of the cluster. Parallel file systems are a type of clustered file system that spread data across multiple storage nodes, usually for redundancy or performance.
Shared-disk file system
A shared-disk file system uses a
storage area network
A storage area network (SAN) or storage network is a computer network which provides access to consolidated, block device, block-level data storage. SANs are primarily used to access Computer data storage, data storage devices, such as disk ...
(SAN) to allow multiple computers to gain direct disk access at the
block level. Access control and translation from file-level operations that applications use to block-level operations used by the SAN must take place on the client node. The most common type of clustered file system, the shared-disk file systemby adding mechanisms for
concurrency control
In information technology and computer science, especially in the fields of computer programming, operating systems, multiprocessors, and databases, concurrency control ensures that correct results for concurrent operations are generated, whil ...
provides a consistent and
serializable view of the file system, avoiding corruption and unintended
data loss
Data loss is an error condition in information systems in which information is destroyed by failures (like failed spindle motors or head crashes on hard drives) or neglect (like mishandling, careless handling or storage under unsuitable conditions) ...
even when multiple clients try to access the same files at the same time. Shared-disk file-systems commonly employ some sort of
fencing
Fencing is a combat sport that features sword fighting. It consists of three primary disciplines: Foil (fencing), foil, épée, and Sabre (fencing), sabre (also spelled ''saber''), each with its own blade and set of rules. Most competitive fe ...
mechanism to prevent data corruption in case of node failures, because an unfenced device can cause data corruption if it loses communication with its sister nodes and tries to access the same information other nodes are accessing.
The underlying storage area network may use any of a number of block-level protocols, including
SCSI
Small Computer System Interface (SCSI, ) is a set of standards for physically connecting and transferring data between computers and peripheral devices, best known for its use with storage devices such as hard disk drives. SCSI was introduced ...
,
iSCSI
Internet Small Computer Systems Interface or iSCSI ( ) is an Internet Protocol-based storage networking standard for linking data storage facilities. iSCSI provides block-level access to storage devices by carrying SCSI commands over a TCP/IP ...
,
HyperSCSI
HyperSCSI is an outdated computer network protocol for accessing storage by sending and receiving SCSI commands. It was developed by researchers at the Data Storage Institute in Singapore in 2000 to 2003.
HyperSCSI is unlike iSCSI in that it by ...
,
ATA over Ethernet
ATA over Ethernet (AoE) is a network protocol developed by the Brantley Coile Company, designed for simple, high-performance access of block storage devices over Ethernet networks. It is used to build storage area networks (SANs) with low-cost ...
(AoE),
Fibre Channel
Fibre Channel (FC) is a high-speed data transfer protocol providing in-order, lossless delivery of raw block data. Fibre Channel is primarily used to connect computer data storage to Server (computing), servers in storage area networks (SAN) in ...
,
network block device, and
InfiniBand
InfiniBand (IB) is a computer networking communications standard used in high-performance computing that features very high throughput and very low latency. It is used for data interconnect both among and within computers. InfiniBand is also used ...
.
There are different architectural approaches to a shared-disk filesystem. Some distribute file information across all the servers in a cluster (fully distributed).
Examples
*
Blue Whale Clustered file system (BWFS)
*
Silicon Graphics
Silicon Graphics, Inc. (stylized as SiliconGraphics before 1999, later rebranded SGI, historically known as Silicon Graphics Computer Systems or SGCS) was an American high-performance computing manufacturer, producing computer hardware and soft ...
(SGI) clustered file system (
CXFS)
*
Veritas Cluster File System
The Veritas Cluster File System (or VxCFS) is a cache coherent POSIX compliant shared file system built based upon VERITAS File System. It is distributed with a built-in Cluster Volume Manager (VxCVM) and components of other VERITAS Storage Found ...
* Microsoft
Cluster Shared Volumes
Cluster Shared Volumes (CSV) is a feature of Failover Clustering first introduced in Windows Server 2008 R2 for use with the Hyper-V role. A Cluster Shared Volume is a shared disk containing an NTFS or ReFS (ReFS: Windows Server 2012 R2 or newer) v ...
(CSV)
* DataPlow
Nasan
The Nasan Clustered File System is a shared disk file system created by the company DataPlow. Nasan software enables high-speed access to shared files located on shared, storage area network (SAN)-attached storage devices by utilizing the high-pe ...
File System
*
IBM General Parallel File System
GPFS (General Parallel File System, brand name IBM Storage Scale and previously IBM Spectrum Scale) is a high-performance clustered file system software developed by IBM. It can be deployed in shared-disk or shared-nothing distributed parallel ...
(GPFS)
*
Oracle Cluster File System (OCFS)
*
OpenVMS
OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Op ...
Files-11
Files-11 is the file system used in the RSX-11 and OpenVMS operating systems from Digital Equipment Corporation. It supports record-oriented I/O, remote network access, and file versioning. The original ODS-1 layer is a flat file system; th ...
File System
* PolyServe storage solutions
*
Quantum
In physics, a quantum (: quanta) is the minimum amount of any physical entity (physical property) involved in an interaction. The fundamental notion that a property can be "quantized" is referred to as "the hypothesis of quantization". This me ...
StorNext File System (SNFS), ex ADIC, ex CentraVision File System (CVFS)
* Red Hat
Global File System
In computing, the Global File System 2 (GFS2) is a shared-disk file system for Linux computer clusters. GFS2 allows all members of a cluster to have direct concurrent access to the same shared block storage, in contrast to distributed file s ...
(GFS2)
* Sun
QFS
* TerraScale Technologies TerraFS
* Veritas CFS (Cluster FS: Clustered VxFS)
* Versity VSM (SAM-QFS ported to Linux), ScoutFS
*
VMware VMFS
* WekaFS
* Apple
Xsan
*
DragonFly BSD
DragonFly BSD is a free and open-source Unix-like operating system forked from FreeBSD 4.8. Matthew Dillon, an Amiga developer in the late 1980s and early 1990s and FreeBSD developer between 1994 and 2003, began working on DragonFly BSD in ...
HAMMER2
HAMMER2 is a successor to the HAMMER (file system), HAMMER filesystem, redesigned from the ground up to support enhanced Computer cluster, clustering. HAMMER2 supports online and batched Data deduplication, deduplication, Snapshot (computer storag ...
Distributed file systems
''Distributed file systems'' do not share
block level access to the same storage but use a network
protocol.
These are commonly known as network file systems, even though they are not the only file systems that use the network to send data.
Distributed file systems can restrict access to the file system depending on
access lists or
capabilities on both the servers and the clients, depending on how the protocol is designed.
The difference between a distributed file system and a
distributed data store is that a distributed file system allows files to be accessed using the same interfaces and semantics as local files for example, mounting/unmounting, listing directories, read/write at byte boundaries, system's native permission model. Distributed data stores, by contrast, require using a different API or library and have different semantics (most often those of a database).
Design goals
Distributed file systems may aim for "transparency" in a number of aspects. That is, they aim to be "invisible" to client programs, which "see" a system which is similar to a local file system. Behind the scenes, the distributed file system handles locating files, transporting data, and potentially providing other features listed below.
* ''Access transparency'': clients are unaware that files are distributed and can access them in the same way as local files are accessed.
* ''Location transparency'': a consistent namespace exists encompassing local as well as remote files. The name of a file does not give its location.
* ''Concurrency transparency'': all clients have the same view of the state of the file system. This means that if one process is modifying a file, any other processes on the same system or remote systems that are accessing the files will see the modifications in a coherent manner.
* ''Failure transparency'': the client and client programs should operate correctly after a server failure.
* ''Heterogeneity'': file service should be provided across different hardware and operating system platforms.
* ''Scalability'': the file system should work well in small environments (1 machine, a dozen machines) and also scale gracefully to bigger ones (hundreds through tens of thousands of systems).
* ''Replication transparency'': Clients should not have to be aware of the file replication performed across multiple servers to support scalability.
* ''Migration transparency'': files should be able to move between different servers without the client's knowledge.
History
The
Incompatible Timesharing System used virtual devices for transparent inter-machine file system access in the 1960s. More file servers were developed in the 1970s. In 1976,
Digital Equipment Corporation
Digital Equipment Corporation (DEC ), using the trademark Digital, was a major American company in the computer industry from the 1960s to the 1990s. The company was co-founded by Ken Olsen and Harlan Anderson in 1957. Olsen was president until ...
created the
File Access Listener (FAL), an implementation of the
Data Access Protocol as part of
DECnet
DECnet is a suite of network protocols created by Digital Equipment Corporation. Originally released in 1975 in order to connect two PDP-11 minicomputers, it evolved into one of the first peer-to-peer network architectures, thus transforming DEC ...
Phase II which became the first widely used network file system. In 1984,
Sun Microsystems
Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
created the file system called "
Network File System
Network File System (NFS) is a distributed file system protocol originally developed by Sun Microsystems (Sun) in 1984, allowing a user on a client computer to access files over a computer network much like local storage is accessed. NFS, like ...
" (NFS) which became the first widely used
Internet Protocol
The Internet Protocol (IP) is the network layer communications protocol in the Internet protocol suite for relaying datagrams across network boundaries. Its routing function enables internetworking, and essentially establishes the Internet.
IP ...
based network file system.
Other notable network file systems are
Andrew File System
The Andrew File System (AFS) is a distributed file system which uses a set of trusted servers to present a homogeneous, location-transparent file name space to all the client workstations. It was developed by Carnegie Mellon University as part of ...
(AFS),
Apple Filing Protocol
The Apple Filing Protocol (AFP), formerly AppleTalk Filing Protocol, is a proprietary protocol, proprietary Communications protocol, network protocol, and part of the Apple File Service (AFS), that offers file services for macOS, classic Mac OS, ...
(AFP),
NetWare Core Protocol (NCP), and
Server Message Block
Server Message Block (SMB) is a communication protocol used to share files, printers, serial ports, and miscellaneous communications between nodes on a network. On Microsoft Windows, the SMB implementation consists of two vaguely named Windows ...
(SMB) which is also known as Common Internet File System (CIFS).
In 1986,
IBM
International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
announced client and server support for Distributed Data Management Architecture (DDM) for the
System/36,
System/38
The System/38 is a discontinued minicomputer and midrange computer manufactured and sold by
IBM. The system was announced in 1978. The System/38 has 48-bit computing, 48-bit addressing, which was unique for the time, and a novel database#Integrat ...
, and IBM mainframe computers running
CICS
IBM CICS (Customer Information Control System) is a family of mixed-language application servers that provide online business transaction management, transaction management and connectivity for applications on IBM mainframe systems under z/OS ...
. This was followed by the support for
IBM Personal Computer
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible ''de facto'' standard. Released on August 12, 1981, it was created by a ...
,
AS/400, IBM mainframe computers under the
MVS and
VSE operating systems, and
FlexOS
FlexOS is a discontinued modular real-time multiuser multitasking operating system ( RTOS) designed for computer-integrated manufacturing, laboratory, retail and financial markets. Developed by Digital Research's Flexible Automation Business ...
. DDM also became the foundation for
Distributed Relational Database Architecture, also known as DRDA.
There are many
peer-to-peer
Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network, forming a peer-to-peer network of Node ...
network protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics, and synchronization of ...
s for open-source
distributed file systems for cloud or closed-source clustered file systems, e. g.:
9P,
AFS,
Coda,
CIFS/SMB,
DCE/DFS, WekaFS,
Lustre, PanFS,
Google File System,
Mnet,
Chord Project.
Examples
*
Alluxio
*
BeeGFS (Fraunhofer)
*
CephFS (Inktank, Red Hat, SUSE)
*
Windows Distributed File System (DFS) (Microsoft)
*
Infinit (acquired by Docker)
*
GfarmFS
*
GlusterFS (Red Hat)
*
GFS (Google Inc.)
*
GPFS (IBM)
*
HDFS (Apache Software Foundation)
*
IPFS (Inter Planetary File System)
* iRODS
*
LizardFS (Skytechnology)
*
Lustre
*
MapR FS
*
MooseFS (Core Technology / Gemius)
*
ObjectiveFS
*
OneFS (EMC Isilon)
*
OrangeFS (Clemson University, Omnibond Systems), formerly
Parallel Virtual File System
*
PanFS (Panasas)
*
Parallel Virtual File System (Clemson University, Argonne National Laboratory, Ohio Supercomputer Center)
*
RozoFS (Rozo Systems)
*
SMB/CIFS
* Torus (CoreOS)
*
WekaFS (WekaIO)
*
XtreemFS
Network-attached storage
Network-attached storage (NAS) provides both storage and a file system, like a shared disk file system on top of a storage area network (SAN). NAS typically uses file-based protocols (as opposed to block-based protocols a SAN would use) such as
NFS (popular on
UNIX
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
systems), SMB/CIFS (
Server Message Block/Common Internet File System) (used with MS Windows systems),
AFP (used with
Apple Macintosh
Mac is a brand of personal computers designed and marketed by Apple Inc., Apple since 1984. The name is short for Macintosh (its official name until 1999), a reference to the McIntosh (apple), McIntosh apple. The current product lineup inclu ...
computers), or
NCP (used with
OES and
Novell NetWare
NetWare is a discontinued computer network operating system developed by Novell, Inc. It initially used cooperative multitasking to run various services on a personal computer, using the Internetwork Packet Exchange, IPX network protocol. The f ...
).
Design considerations
Avoiding single point of failure
The failure of disk hardware or a given storage node in a cluster can create a
single point of failure
A single point of failure (SPOF) is a part of a system that would Cascading failure, stop the entire system from working if it were to fail. The term single point of failure implies that there is not a backup or redundant option that would enab ...
that can result in
data loss
Data loss is an error condition in information systems in which information is destroyed by failures (like failed spindle motors or head crashes on hard drives) or neglect (like mishandling, careless handling or storage under unsuitable conditions) ...
or unavailability.
Fault tolerance
Fault tolerance is the ability of a system to maintain proper operation despite failures or faults in one or more of its components. This capability is essential for high-availability, mission-critical, or even life-critical systems.
Fault t ...
and high availability can be provided through
data replication
Replication in computing refers to maintaining multiple copies of data, processes, or resources to ensure consistency across redundant components. This fundamental technique spans databases, file systems, and distributed systems, serving to impro ...
of one sort or another, so that data remains intact and available despite the failure of any single piece of equipment. For examples, see the lists of
distributed fault-tolerant file systems and
distributed parallel fault-tolerant file systems.
Performance
A common
performance
A performance is an act or process of staging or presenting a play, concert, or other form of entertainment. It is also defined as the action or process of carrying out or accomplishing an action, task, or function.
Performance has evolved glo ...
measurement
Measurement is the quantification of attributes of an object or event, which can be used to compare with other objects or events.
In other words, measurement is a process of determining how large or small a physical quantity is as compared to ...
of a clustered file system is the amount of time needed to satisfy service requests. In conventional systems, this time consists of a disk-access time and a small amount of
CPU-processing time. But in a clustered file system, a remote access has additional overhead due to the distributed structure. This includes the time to deliver the request to a server, the time to deliver the response to the client, and for each direction, a CPU overhead of running the
communication protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics (computer science), sem ...
software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
.
Concurrency
Concurrency control becomes an issue when more than one person or client is accessing the same file or block and want to update it. Hence updates to the file from one client should not interfere with access and updates from other clients. This problem is more complex with file systems due to concurrent overlapping writes, where different writers write to overlapping regions of the file concurrently.
[Pessach, Yaniv (2013). ''Distributed Storage: Concepts, Algorithms, and Implementations''. .] This problem is usually handled by
concurrency control
In information technology and computer science, especially in the fields of computer programming, operating systems, multiprocessors, and databases, concurrency control ensures that correct results for concurrent operations are generated, whil ...
or
locking which may either be built into the file system or provided by an add-on protocol.
History
IBM mainframes in the 1970s could share physical disks and file systems if each machine had its own channel connection to the drives' control units. In the 1980s,
Digital Equipment Corporation
Digital Equipment Corporation (DEC ), using the trademark Digital, was a major American company in the computer industry from the 1960s to the 1990s. The company was co-founded by Ken Olsen and Harlan Anderson in 1957. Olsen was president until ...
's
TOPS-20 and
OpenVMS
OpenVMS, often referred to as just VMS, is a multi-user, multiprocessing and virtual memory-based operating system. It is designed to support time-sharing, batch processing, transaction processing and workstation applications. Customers using Op ...
clusters (VAX/ALPHA/IA64) included shared disk file systems.
See also
*
Distributed file system
A clustered file system (CFS) is a file system which is shared by being simultaneously Mount (computing), mounted on multiple Server (computing), servers. There are several approaches to computer cluster, clustering, most of which do not emplo ...
*
Clustered NAS
*
Storage area network
A storage area network (SAN) or storage network is a computer network which provides access to consolidated, block device, block-level data storage. SANs are primarily used to access Computer data storage, data storage devices, such as disk ...
*
Shared resource
*
Direct-attached storage
Direct-attached storage (DAS) is digital storage directly attached to the computer accessing it, as opposed to storage accessed over a computer network (i.e. network-attached storage). DAS consists of one or more storage units such as hard driv ...
*
Peer-to-peer file sharing
Peer-to-peer file sharing is the distribution and sharing of digital media using peer-to-peer (P2P) networking technology. P2P file sharing allows users to access media files such as books, music, movies, and games using a P2P software program th ...
*
Disk sharing
*
Distributed data store
*
Distributed file system for cloud
*
Global file system
In computing, the Global File System 2 (GFS2) is a shared-disk file system for Linux computer clusters. GFS2 allows all members of a cluster to have direct concurrent access to the same shared block storage, in contrast to distributed file s ...
*
Gopher (protocol)
The Gopher protocol () is a communication protocol designed for distributing, searching, and retrieving documents in Internet Protocol networks. The design of the Gopher protocol and user interface is menu-driven, and presented an alternative t ...
*
List of distributed file systems
*
CacheFS
*
RAID
RAID (; redundant array of inexpensive disks or redundant array of independent disks) is a data storage virtualization technology that combines multiple physical Computer data storage, data storage components into one or more logical units for th ...
References
Further reading
A Taxonomy of Distributed Storage SystemsA Taxonomy and Survey on Distributed File SystemsA survey of distributed file systemsThe Evolution of File Systems
{{File systems, state=collapsed
Computer file systems
Data management
Distributed data storage
Network file systems
Storage area networks