[BACK]Return to faq.html CVS log [TXT][DIR] Up to [Development] / xfs-website

File: [Development] / xfs-website / faq.html (download) (as text)

Revision 1.13, Wed Aug 23 07:10:44 2000 UTC (17 years, 1 month ago) by xfs
Branch: MAIN
Changes since 1.12: +17 -0 lines

added something about egcs and gcc 2.95

<& xfsTemplate,top=>1,side=>1 &>

<FONT FACE="ARIAL NARROW, HELVETICA" SIZE="5"><B>Linux XFS FAQ</B></FONT>
<FONT FACE="ARIAL NARROW, HELVETICA">
<h2>
Q: Where can I find this FAQ ?
</h2>
<P>
Currently at:
</P>
<ul>
    <A HREF="http://oss.sgi.com/projects/xfs/faq.html">http://oss.sgi.com/projects/xfs/faq.html</A>
</ul>
<P>
If you have any comments or suggestions just let me know:
</P>
<ul>
    <A HREF="mailto:thomas.graichen@innominate.de">thomas.graichen@innominate.de</A>
</ul>
<h2>
Q: What is XFS ?
</h2>
<P>
XFS is a journalling filesystem developed by SGI and used in SGI's
IRIX operating system. It is now also available under GPL for linux. 
It is extremely scalable, using btrees extensively to support large
and/or sparse files, and extremely large directories. The journalling
capability means no more waiting for fsck's or worrying about meta-data
corruption.
</P>
<h2>
Q: Where can I find information about XFS for linux ?
</h2>
<P>
Just point your web-browser to:
</P>
<ul>
    <A HREF="http://oss.sgi.com/projects/xfs/">http://oss.sgi.com/projects/xfs/</A>
</ul>
<h2>
Q: What do I need to build an XFS ready kernel ?
</h2>
<P>
The best way to do this is to checkout the SGI XFS kernel from
their CVS tree. How to do this is described at
</P>
<ul>
    <A HREF="http://oss.sgi.com/projects/xfs/cvs_download.html">http://oss.sgi.com/projects/xfs/cvs_download.html</A>
</ul>
<P>
After that you have two subtrees of importance: linux and cmd. The
firsts one - linux - is a normal linux kernel source tree containing
the XFS code. It is updated to the latest available linux kernel
from time to time but it may be a bit (not much) behind. Just build
your kernel the way you are used to do it and don't forget to enable
XFS and pagebuf under filesystems. You also need to enable the
ask for experimental features option in the "Code maturity level
options" menu. Also keep in mind that currently
the option for using kiobufs only works on scsi drives. The other
tree - cmd - contains all the tools you need - most important:
<tt>mkfs_xfs</tt> and <tt>xfs_repair</tt> - just go to the xfs subdirectory in cmd
and type make (maybe followed by make install to install the
binaries). One thing which is also important to note is that
you need to have the e2fs-devel package installed in order to
build the cmd tools - because they require the uuid stuff in
them. You may also build src and binary rpms by running:
</P>
<pre>
    ./Makepkgs verbose
</pre>
<P>
in the cmd/xfs directory. Also important to note is that
<tt>mkfs_xfs</tt> is installed as <tt>/sbin/mkfs.xfs</tt> so use this name or
<tt>mkfs -t xfs</tt> if you use the installed version. The tools also have
man-pages which you may consult for interesting options like:
</P>
<pre>
    mkfs -t xfs -l size=16000b /dev/foo
</pre>

<P>
which sets the log size within the filesystem.
In the near future the <tt>mkfs_xfs</tt> in the build tree will also be
changed to <tt>mkfs.xfs</tt> so that there is less confusion with names.
There exists also another way to get an XFS ready kernel - you may
get kernel patches relative to a official kernel from:
</P>
<ul>
    <A HREF="ftp://oss.sgi.com/projects/xfs/download">ftp://oss.sgi.com/projects/xfs/download</A>
</ul>
<P>
and apply then to the kernel sources the patch is for. This is a
good way for all the people who don't want to use CVS or do not
have the bandwidth to checkout the whole kernel tree.
</P>
<h2>
Q: How do I use XFS ?
</h2>
<P>
Just reboot the new build kernel and create a filesytem on an empty
partition
</P>
<pre>
    mkfs_xfs /dev/foo
</pre>
<P>
where /dev/foo is the the partition you want to use (you may have
to use the -f option of <tt>mkfs_xfs</tt> if this partition already con-
tains an old filesystem which you want to overwrite). Now you can
mount the filesystem using:
</P>
<pre>
    mount -t xfs /dev/foo /somewhere
</pre>
<h2>
Q: How stable is XFS ?
</h2>
<P>
It is quite useable now but I would not recommend it for production
use right now - but I think it will be there quite soon. I am using
it here in a test scenario for a 50 people squid and a ~20 mb/day
newsfeed with 30 simulated users on an XFS only machine and had no
problems so far. Also SGI is doing quite a lot of stress tests with
it (see the stress subdir of the cmd tree).
</P>
<h2>
Q: Does it run on platforms other than i386 ?
</h2>
<P>
Not yet - but work is underway to get it going on ppc and alpha -
but it should not be too hard to find the remaining bugs (i hope :-)
- so far it compiles and you can mount a filesystem. The tools will
be compilable soon too. Once it is running on these two I expect
no bigger problems on other arches because we then have all the
little/big-endian and 32/64 bit stuff tested.
</P>
<P>
If you are interested in this you may have a look at
</P>
<ul>
    <A HREF="http://innominate.org/~graichen/projects/xfs/">http://innominate.org/~graichen/projects/xfs/</A>
</ul>
<h2>
Q: Do quotas work on XFS ?
</h2>
<P>
Not at the moment - but XFS usually has quota support (as one would
expect from a modern filesystem). The question is how to use them
on the linux port: the linux or the IRIX way. This has to be ironed
out and implemented but I think they will appear in the not too
distant future.
</P>
<h2>
Q: Is there any dump/restore for XFS ?
</h2>
<P>
xfsdump and xfsrestore are now in the CVS tree. The tape format is
the same as for xfsdump and xfsrestore on IRIX and dump tapes should
be interchangable between systems. The tape format is 
<em>not the same</em> as the classic Unix dump but they should work fine 
for things like Amanda. Dumps produced with standard Unix dump may be
restored onto an XFS filesystem. From now on (about 2000/08/17) they should
start to be useable.
</P>
<h2>
Q: Does LILO work with XFS ?
</h2>
<P>
Yes it works.
</P>
<h2>
Q: Can I run XFS on top of LVM ?
</h2>
<P>
Yes you can but you need to use a patch for LVM because the XFS
kernel contains stephen tweedies sard patches which change the
format of /proc/partitions. Also for using XFS on LVM you should
not enable the kiobuf option in the kernel XFS compile options.
You may get a patch (created by William L Jones) to start from at
</P>
<ul>
    <A HREF="http://innominate.org/~graichen/projects/xfs/lvm.patch">http://innominate.org/~graichen/projects/xfs/lvm.patch</A>
</ul>
<P>
See the head of it for details and a list of contributors.
</P>
<h2>
Q: Can I use XFS on loopback block devices ?
</h2>
<P>
No currently not.
</P>
<h2>
Q: Can XFS be used for a root filesystem ?
</h2>
<P>
In principle yes - but there has to be added some code so that the
unmounting so that it works in a clean way. So it is better to wait
a bit with it. (But it definitely works - I tried it this way)
</P>
<h2>
Q: What partition type should I use for XFS ? 
</h2>
<P>
Linux native filesystem (83).
</P>
<h2>
Q: Mounting the XFS filesystem does not work - what is wrong ?
</h2>
<P>
If you get something like:
</P>
<pre>
    mount: /dev/hda5 has wrong major or minor number
</pre>
<P>
you either don't have XFS compiled into the kernel (or you forgot
to load the modules) or you did not use the "-t xfs" option on mount
or the "xfs" option in <tt>/etc/fstab</tt>.
</P>
<h2>
Q: Does XFS run with the linux software RAID md driver ?
</h2>
<P>
Nobody has tested it so far but expect it not to work like for
all the other journaling filesystems due to internal buffer locking
problems I think. If anyone tries this - please let me know.
Also keep in mind - if you want to try it - also the md driver
will definitely not work with the kiobuf option enabled.
</P>
<h2>
Q: Does XFS run on hardware RAID ?
</h2>
<P>
Yes - hardware RAID is like a normal disk to XFS (like to any other
filesystem) and this should not be a problem.
</P>
<h2>
Q: Can I run NFS on top of an XFS partition ?
</h2>
<P>
I have not deeply tested it - for light tests it worked - but it
has to be investigated deeper. If anyone has more details here -
please let me know.
</P>
<h2>
Q: Is there a way to resize an XFS filesystem ?
</h2>
<P>
An XFS filesystem may be enlarged within a partition using 
<tt>xfs_growfs</tt>. This tool should be used with caution,
particularly until the release is stabilised.
</P>
<h2>
Q: Will I be able to use my old IRIX XFS disks on linux ?
</h2>
<P>
Yes. The on-disk format of XFS is the same on IRIX and Linux. Obviously,
you should back-up your data before trying to move it between systems.
Filesystems must be "clean" when moved (ie unmounted correctly).
</P>
<h2>
Q: Is there documentation on how XFS works ?
</h2>
<P>
There are some papers available on the SGI XFS project page (mentioned
above) and I have set up an LXR indexed version of the SGI XFS CVS tree
at:
</P>
<ul>
    <A HREF="http://innominate.org/~graichen/projects/lxr/source/?v=xfs">http://innominate.org/~graichen/projects/lxr/source?v=xfs</A>
</ul>
<P>
which might help to find an easy and good way through
the sources. I plan to keep this tree automatically updated to the
current SGI XFS CVS version on a daily basis within the next days.
If anyone has pointers to other XFS related docs - just send me a
mail (address - see above).
</P>
<h2>
Q: Processes are hanging when acting on an XFS filesystem (for
instance in sv_wait) - what is this ?
</h2>
<p>
Recompile your kernel with egcs instead of gcc 2.95 this should
fix your problem.
</P>
<h2>
Q: Are there any known issues about egcs or gcc 2.95 for compiling the
XFS kernel tree ?
</h2>
<p>
Yes. So far there were some problems reported with kernels built with
gcc 2.95 which were solved by compiling it with egcs. So for now please
use egcs to build your XFS kernel.
</P>
<h2>
Q: What are all those other things in the cmd/xfs directory ?
</h2>
<p>
Some of them are other interesting tools like: db - <tt>xfs_db</tt> is a xfs
filesystem debugger (working) , copy - <tt>xfs_copy</tt> is tool for 
effectively copying one filesystem to another device (work in progress), 
fsr - <tt>xfs_fsr</tt> is a defragmenter for xfs (work in progress), 
repair - <tt>xfs_repair</tt> is the consistency checker for an xfs 
filesystem (working).
</p>
<P>

<& xfsTemplate,bottom=>1 &>