Scalability in the XFS File System

In this paper we describe the architecture and design of a new file system, XFS, for Silicon Graphics' IRIX operating system. It is a general purpose file system for use on both workstations and servers. The focus of the paper is on the mechanisms used by XFS to scale capacity and performance in supporting very large file systems. The large file system support includes mechanisms for managing large files, large numbers of files, large directories, and very high performance I/O. In discussing the mechanisms used for scalability we include both descriptions of the XFS on-disk data structures and analyses of why they were chosen. We discuss in detail our use of B+ trees in place of many of the more traditional linear file system structures. XFS has been shipping to customers since December of 1994 in a version of IRIX 5.3, and we are continuing to improve its performance and add features in upcoming releases. We include performance results from running on the latest version of XFS to demonstrate the viability of our design.

[1]  Douglas Comer,et al.  Ubiquitous B-Tree , 1979, CSUR.

[2]  R. S. Fabry,et al.  A fast file system for UNIX , 1984, TOCS.

[3]  Robert S. Fabry,et al.  A fast file system for UNIX , 1984, TOCS.

[4]  Michael Stonebraker,et al.  A measure of transaction processing power , 1985 .

[5]  John A. Kunze,et al.  A trace-driven analysis of the UNIX 4.2 BSD file system , 1985, SOSP '85.

[6]  David A. Goldberg,et al.  Design and Implementation of the Sun Network Filesystem , 1985, USENIX Conference Proceedings.

[7]  John Kunze,et al.  A trace-driven analysis of the unix 4 , 1985, SOSP 1985.

[8]  Steve R. Kleiman,et al.  Vnodes: An Architecture for Multiple File System Types in Sun UNIX , 1986, USENIX Summer.

[9]  Robert B. Hagmann,et al.  Reimplementing the Cedar file system using logging and group commit , 1987, SOSP '87.

[10]  John K. Ousterhout,et al.  Why Aren't Operating Systems Getting Faster As Fast as Hardware? , 1990, USENIX Summer.

[11]  Mary Baker,et al.  Measurements of a distributed file system , 1991, SOSP '91.

[12]  Steve R. Kleiman,et al.  Extent-like Performance from a UNIX File System , 1991, USENIX Winter.

[13]  Mendel Rosenblum,et al.  The design and implementation of a log-structured file system , 1991, SOSP '91.

[14]  Sailesh Chutani,et al.  The Episode File System , 1992 .

[15]  Yale N. Patt,et al.  Metadata update performance in file systems , 1994, OSDI '94.

[16]  James Lau,et al.  File System Design for an NFS File Server Appliance , 1994, USENIX Winter.

[17]  Peter M. Spiro,et al.  Performance of DEC Rdb Version 6.0 on AXP Systems , 1994, Digit. Tech. J..

[18]  David B. Lomet,et al.  AlphaSort: a RISC machine sort , 1994, SIGMOD '94.

[19]  Sara McMains,et al.  File System Logging versus Clustering: A Performance Comparison , 1995, USENIX.

[20]  Garret Swart,et al.  New-value Logging in the Echo Replicated File System , 1996 .