The Global File System

The Global File System (GFS) is a distributed file system based on shared network storage. GFS clients directly connect to storage devices through switched, channel networks called Storage Area Networks (SANs). Each client views storage as locally attached, though no single computer owns or controls these network devices. No direct communication exists between computers; GFS clients remain independent from failures and bottlenecks of other clients [1]. GFS achieves client independence by atomically modifying shared data. A storage-device-managed locking mechanism facilitates atomic operations. Before data modification, clients acquire one or more device-managed locks. After clients modify and write data back to the storage devices, clients release the locks. In this regard, clients access storage devices like processors of a shared memory multiprocessor computer (SMP) access memory. Except to maintain consistency, clients are unaware of other clients. The Global File System prototype is built upon Fibre Channel SAN networks. GFS is implemented in the Silicon Graphics IRIX operating system and is accessed using standard UNIX commands and utilities. GFS uses a consistency mechanism, called device locks, that is prototyped on Seagate disk drives and Ciprico disk arrays. This paper describes the architecture and implementation of the file system design. Performance analysis is given for the file system prototype in large data demand environments.