File: [Development] / xfs-website / index.html (download) (as text)
Revision 1.59, Mon May 22 02:21:16 2006 UTC (11 years, 5 months ago) by nathans
Branch: MAIN
Changes since 1.58: +17 -0
lines
Update news tables about FAQ update for write barriers.
|
<& xfsTemplate,top=>1,side=>1 &>
<br>
<h1><b><font face="ARIAL NARROW,HELVETICA">
XFS: A high-performance journaling filesystem
</font></b></h1>
<!-- Start Project Content -->
<p>
XFS combines advanced journaling technology with full 64-bit addressing and
scalable structures and algorithms. This combination delivers the most
scalable high-performance filesystem ever conceived.
</p>
<h2><font face="ARIAL NARROW,HELVETICA">
Questions and Problems
</font></h2>
<p>
If you have any questions or problems with the installation or
administration of XFS, you can send email to
<a href="mailto:xfs@oss.sgi.com">xfs@oss.sgi.com</a>.
Note that this address is a public mailing list; please search the
<A HREF="http://oss.sgi.com/archives/xfs">list archive</A>
to see if your question has been answered previously.
</p>
<p>
To report any bugs you encounter in XFS, use the
<a href="http://oss.sgi.com/bugzilla/">
SGI Bugzilla</a> database.
</p>
<h2><font face="ARIAL NARROW,HELVETICA">
Recent News
</font></h2>
<p>
<table border=0 cellspacing=2 width="100%">
<tr><td valign=top bgcolor="#88ee88"><font face="Helvetica, Arial">
May-2006
</font></td>
<td valign=top bgcolor="#99cccc"><font face="Helvetica, Arial">
Additional inheritable inode flag (nodefrag) to allow
specified inodes to be skipped by xfs_fsr(8).
</font></td>
</tr>
<tr><td valign=top bgcolor="#88ee88"><font face="Helvetica, Arial">
May-2006
</font></td>
<td valign=top bgcolor="#99cccc"><font face="Helvetica, Arial">
Updated the
<A HREF="http://oss.sgi.com/projects/xfs/faq.html">FAQ</A>
to discuss device write barriers.
</font></td>
</tr>
<tr><td valign=top bgcolor="#88ee88"><font face="Helvetica, Arial">
Mar-2006
</font></td>
<td valign=top bgcolor="#99cccc"><font face="Helvetica, Arial">
Incore extent management rework, more efficiently
using memory when working with files with large
numbers of extents.
</font></td>
</tr>
<tr><td valign=top bgcolor="#88ee88"><font face="Helvetica, Arial">
Feb-2006
</font></td>
<td valign=top bgcolor="#99cccc"><font face="Helvetica, Arial">
Per-CPU superblock accounting, improving buffered I/O
throughput significantly for parallel I/O workloads.
</font></td>
</tr>
<tr><td valign=top bgcolor="#88ee88"><font face="Helvetica, Arial">
Dec-2005
</font></td>
<td valign=top bgcolor="#99cccc"><font face="Helvetica, Arial">
Rework the page writeout code paths within XFS to make
better use of advances in 2.6 kernels (page clustering
and larger block I/O requests).
</font></td>
</tr>
<tr><td valign=top bgcolor="#88ee88"><font face="Helvetica, Arial">
Dec-2005
</font></td>
<td valign=top bgcolor="#99cccc"><font face="Helvetica, Arial">
SLES9 Service Pack 3 released with next set of XFS updates.
</font></td>
</tr>
<tr><td valign=top bgcolor="#88ee88"><font face="Helvetica, Arial">
Nov-2005
</font></td>
<td valign=top bgcolor="#99cccc"><font face="Helvetica, Arial">
Support for block layer write barriers, allowing devices
to be used with their write cache enabled (2.6+ kernels).
</font></td>
</tr>
<tr><td valign=top bgcolor="#88ee88"><font face="Helvetica, Arial">
Nov-2005
</font></td>
<td valign=top bgcolor="#99cccc"><font face="Helvetica, Arial">
Preferred extent size allocator hint for the B+ tree
allocator.
</font></td>
</tr>
<tr><td valign=top bgcolor="#88ee88"><font face="Helvetica, Arial">
Sep-2005
</font></td>
<td valign=top bgcolor="#99cccc"><font face="Helvetica, Arial">
Support for inline extended attribute format 2, which
significantly improves performance when using extended
attributes. Driven by needs of the Samba folks for
Samba version 4, but also helpful to many other people.
</font></td>
</tr>
<tr><td valign=top bgcolor="#88ee88"><font face="Helvetica, Arial">
Jun-2005
</font></td>
<td valign=top bgcolor="#99cccc"><font face="Helvetica, Arial">
Added support for project quota, and the ability to
inherit project identifiers. Provides the mechanism
for implementing a form of directory tree quota.
</font></td>
</tr>
<tr><td valign=top bgcolor="#88ee88"><font face="Helvetica, Arial">
Jun-2005
</font></td>
<td valign=top bgcolor="#99cccc"><font face="Helvetica, Arial">
Merged all XFS fixes since SP1 into SLES9 SP2.
Thanks Andreas!
</font></td>
</tr>
<tr><td valign=top bgcolor="#88ee88"><font face="Helvetica, Arial">
Jun-2005
</font></td>
<td valign=top bgcolor="#99cccc"><font face="Helvetica, Arial">
<A HREF="http://people.freebsd.org/~rodrigc/xfs/">XFS for FreeBSD</A> website
announced (an independent porting effort not sponsored by SGI),
supported by FreeBSD developers Craig Rodrigues and Alexander
Kabaev.
</font></td>
</tr>
<tr><td valign=top bgcolor="#88ee88"><font face="Helvetica, Arial">
Jan-2005
</font></td>
<td valign=top bgcolor="#99cccc"><font face="Helvetica, Arial">
Support use of 64 bit inode numbers with NFS.
</font></td>
</tr>
<tr><td valign=top bgcolor="#88ee88"><font face="Helvetica, Arial">
[Before-2005]
</font></td>
<td valign=top bgcolor="#99cccc"><font face="Helvetica, Arial">
<a href="news.html">Older news...</a>
</font></td>
</tr>
</table>
</p>
<h2><font face="ARIAL NARROW,HELVETICA">
Features
</font></h2>
<p>
The XFS filesystem provides the following major features:
<br>
<ul>
<li>
<b>Quick Recovery </b>
<p>
The XFS journaling technology allows it to restart very quickly
after an unexpected interruption, regardless of the number of files it is
managing. Traditional filesystems must do special filesystem checks after
an interruption, which can take many hours to complete. The XFS journaling
avoids these lengthy filesystem checks.
</p>
</li>
<li>
<b>Fast Transactions</b>
<p>
The XFS filesystem provides the advantages of journaling while
minimizing the performance impact of journaling on read and write
data transactions. Its journaling structures and algorithms
are tuned to log the transactions rapidly.
</p>
<p>
XFS uses efficient tree structures for fast searches and rapid space
allocation. XFS continues to deliver rapid response times, even for
directories with tens of thousands of entries.
</p>
</li>
<li>
<b>Massive Scalability</b>
<p>
XFS is a full 64-bit filesystem, and thus
is capable of handling filesystems as large as a million terabytes.
<pre>2<sup>63</sup> = 9 x 10<sup>18</sup> = 9 exabytes </pre>
</p>
<p>
A million terabytes is thousands of times larger than most large
filesystems in use today.
This may seem to be an extremely large address space, but it
is needed to plan for the exponential disk density improvements
observed in the storage industry in recent years.
As disk capacity grows, not only does the address space need to be
sufficiently large, but the structures and algorithms need to scale.
XFS is ready today with the technologies needed for this scalability.
</p>
<p>
XFS also continues to evolve to match the capabilities of the hardware
it is being deployed on.
Efficiency when dealing with large amounts (terabytes) of main memory
and hence large numbers of active files and large amounts of cached
file data are areas demanding continual improvements.
Extending XFS to improve performance on large NUMA machines is also
an area of active research and development.
</p>
</li>
<li>
<b>Efficient Allocations</b>
<p>
XFS implements extremely sophisticated space management techniques.
Efficiency in space management has been achieved through the use of
variable sized extents, rather than the simple single-block-at-a-time
mechanism of many other filesystems.
XFS was the first filesystem to implement delayed space allocation for
buffered writes, supports direct I/O, provides an optional realtime
allocator, and is able to align allocations based on the geometry of
the underlying storage device.
The XFS allocator performs admirably in the presence of multiple
parallel writers, and is renowned for its resistance to space
fragmentation under such conditions.
</p>
</li>
<li>
<b>Excellent Bandwidth</b>
<p>
XFS is capable of delivering very close to the raw I/O performance that
the underlying hardware can provide.
XFS has proven scalability on SGI Altix systems of multiple
gigabytes-per-second on multiple terabyte filesystems.
</p>
</li>
</ul>
</p>
<h2><font face="ARIAL NARROW,HELVETICA">
Technical Specifications
</font></h2>
<p>
<b>Technology</b>
</p>
<p>
Journaled 64-bit filesystem with guaranteed
filesystem consistency.
</p>
<p>
<b>Availability</b>
</p>
<p>
XFS is available for Linux 2.4 and later Linux kernels.
</p>
<p>
<b>Online Administration</b>
</p>
<p>
XFS supports filesystem growth for mounted volumes, allows
filesystem "freeze" and "thaw" operations to support
volume level snapshots, and provides an online file defragmentation
utility.
</p>
<p>
<b>Quotas</b>
</p>
<p>
XFS supports user and group quotas.
XFS considers quota information as filesystem metadata and uses
journaling to avoid the need for lengthy quota consistency checks
after a crash.
Project quota are now also supported, and these can be used to
provide a form of directory tree quota.
</p>
<p>
<b>Extended Attributes</b>
</p>
<p>
XFS implements fully journaled extended attributes. An extended attribute
is a name/value pair associated with a file. Attributes can be attached to
all types of inodes: regular files, directories, symbolic links,
device nodes, and so forth. Attribute values can contain up to 64KB of
arbitrary binary data. XFS implements three attribute namespaces: a user
namespace available to all users, protected by the normal file
permissions; a system namespace, accessible only to privileged
users; and a security namespace, used by security modules (SELinux).
The system namespace can be used for protected filesystem meta-data
such as access control lists (ACLs) and hierarchical storage manager
(HSM) file migration status.
</p>
<p>
<b>POSIX Access Control Lists (ACLs)</b>
</p>
<p>
XFS supports the ACL semantics and interfaces described in the draft
POSIX 1003.1e standard.
</p>
<p>
<b>Maximum File Size</b>
</p>
<p>
For Linux 2.4, the maximum accessible file offset is 16TB on 4K page size
and 64TB on 16K page size. For Linux 2.6, when using 64 bit addressing in
the block devices layer (CONFIG_LBD), file size limit increases to 9
million terabytes (or the device limits).
</p>
<p>
<b>Maximum Filesystem Size</b>
</p>
<p>
For Linux 2.4, 2 TB. For Linux 2.6 and beyond, when using 64 bit addressing
in the block devices layer (CONFIG_LBD) and a 64 bit platform, filesystem
size limit increases to 9 million terabytes (or the device limits).
For these later kernels on 32 bit platforms, 16TB is the current limit
even with 64 bit addressing enabled in the block layer.
</p>
<p>
<b>Filesystem Block Size</b>
</p>
<p>
The minimum filesystem block size is 512 bytes. The maximum
filesystem block size is the page size of the kernel, which is
4K on x86 architecture and is set as a kernel compile option
on IA-64 architecture.
</p>
<p>
Filesystem
extents (contiguous data) are configurable at file creation time using
fcntl and are multiples of the filesystem block size. Single extents
can be up to 4 GB in size.
</p>
<p>
<b>Physical Disk Sector Sizes Supported</b>
</p>
<p>
512 bytes through to 32 kilobytes (in powers of 2), with the caveat that
the sector size must be less than or equal to the filesystem blocksize.
</p>
<p>
<b>NFS Compatibility </b>
</p>
<p>
With NFS version 3, 64-bit filesystems can be exported to other systems that
support the NFS V3 protocol. Systems that use NFS V2 protocol may access XFS
filesystems within the 32-bit limit imposed by the protocol.
</p>
<p>
<b>Windows Compatibility</b>
</p>
<p>
SGI uses the Open Source Samba server to export XFS filesystems to Microsoft
Windows systems. Samba speaks the SMB (Server Message Block) and CIFS
(Common Internet File System) protocols.
</p>
<p>
<b>Backup/Restore</b>
</p>
<p>
xfsdump and xfsrestore can be used for backup and restore of XFS file
systems to local/remote SCSI tapes or files. It supports dumping of extended
attributes and quota information. As the xfsdump format has been preserved
and is now endian neutral, dumps created on one platform can be restored
onto an XFS filesystem on another (different architectures, and even
different operating systems - IRIX to Linux, and vice-versa).
</p>
<p>
<b>Support for Hierarchical Storage</b>
</p>
<p>
The Data Management API (DMAPI/XDSM) allows implementation of hierarchical
storage management software with no kernel modifications as well as
high-performance dump programs without requiring "raw" access to
the disk and knowledge of filesystem structures.
</p>
<p>
<b>Optional Realtime Allocator</b>
</p>
<p>
XFS supports the notion of a "realtime subvolume" - a separate
area of disk space where only file data is stored.
Space on this subvolume is managed using the realtime allocator
(as opposed to the default, B+ tree space allocator).
The realtime subvolume is designed to provide very deterministic
data rates suitable for media streaming applications.
</p>
<br>
<!-- End Project Content -->
<& xfsTemplate,bottom=>1 &>