<& xfsTemplate,top=>1,side=>1 &>
<!-- Start Project Content -->
<h2>
<b><font face="ARIAL NARROW,HELVETICA">XFS for Linux Release 1.0.2 Caveats</font></b></h2>
<p>
You must take the following issues into account
when you create and administer
XFS filesystems with XFS for Linux Release 1.0.2.
</p>
<h3>Size and Memory Limitations</h3>
<ul>
<li>
2 Terabyte filesystem limitation
</li>
<p>
Currently XFS is limited to filesystems smaller that 2 terabytes.
This is due to limitations in the Linux block device I/O layers.
</p>
<p>
The XFS team is working with Linux developers to improve the Linux
I/O layers. The improvements will include the support necessary to
exceed 2 Tbyte filesystems.
</p>
</ul>
<h3>Required Compiler and Library Releases</h3>
<ul>
<li>
gcc version 2.91.66
</li>
<p>
Due to known problems with later versions of gcc,
gcc version 2.91.66 (aka egcs-1.1.2) is recommended when compiling XFS
and the associated kernel.
This is the default compiler on Red Hat Linux 6.2 systems, and is
provided as "kgcc" for Red Hat Linux 7.0 and higher (see the next item
for more information).
Other distributions may be using a later version.
The easiest way to check what version is in
use is by running <tt>gcc -v</tt>.
</p>
<p>
gcc versions 2.95.2 and later may work when compiling the kernel but have not
been extensively tested.
</p>
<li>
glibc version 2.1.3 or later required
</li>
</ul>
<h3>Issues with Red Hat 7.x</h3>
<ul>
<li>
Compiler versions
</li>
<p>
Red Hat Linux ships with 2 compilers, "gcc" and "kgcc." kgcc is essentially an
older gcc (egcs-2.91.66) which should be used to compile the kernel.
To use this compiler, comment out the following line in the top level kernel
makefile:
<pre><tt>CC = $(CROSS_COMPILE)gcc -V egcs-2.91.66</tt></pre>
And uncomment the following line:
<pre><tt>CC = $(CROSS_COMPILE)kgcc</tt></pre>
</p>
<p>
kgcc is available in the "compat-egcs" package on Red Hat Linux 7.1 and
7.2.
</p>
</ul>
<h3>xfsprogs-1.1.4 or Later Required </h3>
<ul>
xfsprogs-1.1.4 or later is required in order to make new filesystems.
</ul>
<h3>
Using 2.4.14 as an NFS client with IRIX server
</h3>
<ul>
<p>
EOVERFLOW errors may result when using 2.4.14 as an NFS client and
an IRIX server with version 1 directories.
</p>
<p>
Applying patch
<A HREF="http://www.fys.uio.no/~trondmy/src/2.4.13/linux-2.4.13-seekdir.dif">
http://www.fys.uio.no/~trondmy/src/2.4.13/linux-2.4.13-seekdir.dif</A>.
to 2.4.14 and exporting the version 1 directory on IRIX with the "32bitclients"
option alleviates this problem.
</p>
</ul>
<h3>XFS Features</h3>
<ul>
<li>
New system calls
</li>
<p>
A preliminary set of system calls to support extended attributes
has been added. This interface will most likely change as
a consensus on appropriate interfaces is formed in the Linux
community.
</p>
<p>
The extended attribute system call is attrctl(2). Library calls implement the
various extented attribute operations: attr_get(3), attr_getf(3), attr_list(3),
attr_listf(3), attr_multi(3), attr_multif(3), attr_remove(3), attr_removef(3),
attr_set(3), attr_setf(3). Extended attributes can be manipulated using
the command attr(1). See the associated man pages for details.
</p>
<p>
The access control list system calls are acl_get(2) and acl_set(2).
Library calls implement many of the main Posix 1003.1e proposed functions,
such as: acl_copy_ext(3), acl_delete_def_file(3), acl_dup(3), acl_free(3),
acl_from_text(3), acl_get_fd(3), acl_get_file(3), acl_set_fd(3),
acl_set_file(3), acl_size(3), acl_valid(3).
Access control lists can be manipulated using the command chacl(1).
See the associated man pages for details.
</p>
<li>
Quotas
</li>
<p>
User quotas and group quotas are now functional.
</p>
<li>
Migrating from non-XFS to XFS
</li>
<p>
The Linux version of dump and restore can be used to migrate
data from a non-XFS volume to an XFS volume.
Linux dump, however, cannot be used to dump an XFS volume as it uses
ext2 library functions.
</p>
<li>
Migrating from IRIX XFS to Linux XFS
</li>
<p>
xfsdump and xfsrestore can be used to migrate an IRIX XFS volume
to a Linux XFS volume and vice versa.
See <A href="102_caveats.html">XFS for Linux Release 1.0.2 Caveats</A>
for more information regarding IRX XFS filesystems.
</p>
<li>
Backup and Restore
</li>
<p>
xfsdump and xfsrestore should be used for backup and restore
of XFS volumes.
DMAPI is supported in XFS Linux and DMAPI-managed
filesystems cannot be moved between IRIX and Linux by
using xfsdump/xfsrestore.
</p>
</ul>
<h3>XFS Caveats and Limitations</h3>
<ul>
<li>
LVM unsupported on IA-64 architecture
</li>
<p>
The LVM volume manager is not currently supported for IA-64
architecture. We recommend using md for IA-64.
</p>
<li>
XFS version 2 directory format
</li>
<p>
IRIX XFS supports two directory formats, referred to as
version 1 and version 2. Linux XFS supports version 2 only.
XFS filesystems that need to be migrated from IRIX to Linux
systems must use the version 2 directory structure.
</p>
<p>
The mkfs command creates version 2 directory format
filesystems by default in IRIX release 6.5.14 and
later. You can determine what directory format version
exists on an IRIX filesystem with the following command:
<pre><tt>
xfs_growfs -n mount-point | grep naming
</tt></pre>
</p>
<p>
For example:
<pre>
# <tt><B>xfs_growfs -n / | grep naming</B>
naming =version 1 bsize=4096
</tt></pre>
</p>
<li>
Filesystem block size limitation
</li>
<p>
For the current release of XFS, the filesystem block size is limited
to the size of a memory page. On a x86 architecture that size is 4 Kbytes.
On IA-64 architecture, the size is 16k, since the kernel page
size is 16k. You may need to recompile the kernel with 8k or 4k
filesystem block sizes if you are migrating an IRIX filesystem.
</p>
<p>
Note that files systems created on an IRIX/MIPS platform must have been
created with a 4 Kbyte block size in order to be mounted on a ia32 Linux system.
File systems not created with a 4k block will fail to mount with an error
indicating the mis-match.
</p>
<li>
Unwritten extents unsupported
</li>
<p>
The unwritten extent feature is not yet operational.
Currently this is the default setting for mkfs.xfs on Linux.
</p>
<li>
Realtime volumes not implemented
</li>
<p>
Realtime volumes are not yet tested in XFS Linux and should not be
used.
</p>
<li>
Changing filesystem permissions
</li>
<p>
It is possible to remount an XFS filesystem to change its permissions
from read/write to read-only. This support is needed for
XFS to function as a root filesystem.
</p>
<li>
Software RAID1 and RAID5 performance
</li>
<p>
XFS 1.0.2 supports MD RAID0, RAID1 and RAID5. RAID1 and RAID5 may
perform slightly worse with XFS than with ext2. This will be
addressed in a future release.
</p>
<li>
The fsr utility and system partitions
</li>
<p>
In general we do not foresee the need to run fsr on system partitions
such as /, /boot and /usr as these will in general not suffer from
fragmentation. There are also issues with defragmenting the files
lilo uses to boot your system. Should these files be moved by fsr
then you must rerun lilo before you reboot or you may
have an unbootable system.
</p>
</ul>
<br>
<& xfsTemplate,bottom=>1 &>