Most operating systems include a file system that allows a computer to organize the files and data stored on that system.
A file system manages the data storage and retrieval between the operating system (OS) and the storage sub-system. For example, a single personal computer with Windows will usually implement NTFS or FAT on the local disk, while Linux supports a variety of file systems such as ext2, ext3, ext4, XFS, JFS and others.
Storage access is complicated when multiple computers are organized into a cluster, so a Windows clustered file system or a Linux clustered file system may be needed to organize data storage and access across all of the cluster nodes.
The need for a clustered file system depends on the nature of the cluster that is deployed. Many clusters simply provide redundancy. If one server node fails, another server node in the cluster will take over and maintain availability of the workload. Each server operates autonomously in this common configuration, so clustering the file system is usually not necessary.
Some server clusters operate collaboratively, however, and aggregate the processing power of each server to tackle more demanding computing tasks. When servers work together collectively, they must often share access to the same files and data at the same time -- which is impossible for individual file systems. This situation requires deployment of a Windows clustered file system or a Linux clustered file system, depending on your environment.
The clustered file system arbitrates and controls each node's access to the shared storage resource (such as a SAN), preventing more than one node from writing data at the same time -- a catastrophic phenomenon called a "write collision." The actual storage is not important, and clustered file systems can support block-level storage, including SCSI, iSCSI, ATA over Ethernet, Fibre Channel, and Fibre Channel over Ethernet.
Not only does a clustered file system manage simultaneous file access to nodes, it also recognizes and handles node failures that threaten disk consistency. When a node writes bad data or stops sending its changes, it must be fenced off from the other nodes.
Windows clustered file systems can generally isolate a defective node logically, while Linux clustered file systems will employ utilities like STONITH -- which stands for "Shoot The Other Node In The Head" -- to actually power down the questionable node.
There are numerous clustered file systems available, and the choice normally depends on the underlying operating system. For example, Linux uses the Global File System (GFS), Oracle provides the Oracle Clustered File System (OCFS) and OCFS2, VMware offers the Virtual Machine File System (VMFS) for ESX servers and Sun Microsystems uses Lustre. Native Windows clustered file systems are available in Microsoft products such as Windows Server 2008 R2, and third-party clustered file systems for Windows are also available.