Man Linux: Main Page and Category List


       xfs - layout of the XFS filesystem


       An  XFS  filesystem  can  reside  on  a  regular disk partition or on a
       logical volume.  An XFS filesystem  has  up  to  three  parts:  a  data
       section,  a  log  section,  and  a realtime section.  Using the default
       mkfs.xfs(8) options, the realtime section is absent, and the  log  area
       is  contained  within  the data section.  The log section can be either
       separate from the data section or contained within it.  The  filesystem
       sections  are  divided  into  a certain number of blocks, whose size is
       specified at mkfs.xfs(8) time with the -b option.

       The  data  section  contains  all  the  filesystem  metadata   (inodes,
       directories,  indirect  blocks)  as  well  as  the  user  file data for
       ordinary (non-realtime) files and the log area if the log  is  internal
       to  the  data  section.   The  data section is divided into a number of
       allocation groups.  The number and size of the  allocation  groups  are
       chosen  by  mkfs.xfs(8)  so  that  there  is normally a small number of
       equal-sized groups.  The  number  of  allocation  groups  controls  the
       amount  of  parallelism  available  in  file  and block allocation.  It
       should be increased from the default if there is sufficient memory  and
       a  lot  of allocation activity.  The number of allocation groups should
       not be set very high, since this can cause large amounts of CPU time to
       be  used  by  the  filesystem, especially when the filesystem is nearly
       full.  More allocation groups are added (of  the  original  size)  when
       xfs_growfs(8) is run.

       The  log  section  (or  area, if it is internal to the data section) is
       used to store changes to filesystem metadata while  the  filesystem  is
       running  until  those  changes  are  made  to  the data section.  It is
       written sequentially during  normal  operation  and  read  only  during
       mount.   When  mounting  a filesystem after a crash, the log is read to
       complete operations that were in progress at the time of the crash.

       The realtime section is used to  store  the  data  of  realtime  files.
       These  files  had  an  attribute  bit  set through xfsctl(3) after file
       creation, before any data  was  written  to  the  file.   The  realtime
       section is divided into a number of extents of fixed size (specified at
       mkfs.xfs(8) time).  Each file in the realtime  section  has  an  extent
       size that is a multiple of the realtime section extent size.

       Each  allocation  group  contains  several  data structures.  The first
       sector contains the superblock.  For allocation groups after the first,
       the  superblock  is  just  a copy and is not updated after mkfs.xfs(8).
       The  next  three  sectors  contain  information  for  block  and  inode
       allocation  within  the  allocation  group.  Also contained within each
       allocation group are data structures to locate free blocks and  inodes;
       these are located through the header structures.

       Each  XFS  filesystem  is  labeled  with  a Universal Unique Identifier
       (UUID).  The UUID is stored in every allocation  group  header  and  is
       used to help distinguish one XFS filesystem from another, therefore you
       should avoid using dd(1) or other block-by-block  copying  programs  to
       copy  XFS filesystems.  If two XFS filesystems on the same machine have
       the same UUID, xfsdump(8) may become confused  when  doing  incremental
       and  resumed  dumps.   xfsdump(8) and xfsrestore(8) are recommended for
       making copies of XFS filesystems.


       Some functionality specific to the  XFS  filesystem  is  accessible  to
       applications    through    the    xfsctl(3)    and    by-handle    (see
       open_by_handle(3)) interfaces.


       Refer to the mount(8) manual entry for descriptions of  the  individual
       XFS mount options.


       xfsctl(3),    mount(8),    mkfs.xfs(8),    xfs_info(8),   xfs_admin(8),
       xfsdump(8), xfsrestore(8).