2010-09-16

XFS & Inodes

There was an interesting thread on the opensuse list this week;  and regular readers will note how rare an event that is [even if you filter out the KDE-users-who-hate-KDE and the IPv6-is-irrelevant-malcontents].  It had to do with the XFS filesystem and inodes.  At least it was interesting to me as I recall facing the exact same problem several years ago.  While, unlike traditional UNIX filesystems, XFS doesn't suffer from the boring old issue of "inode exhaustion" it does have inode limits - based on a percentage of the filesystem size.
linux-yu4c:~ # xfs_info /mnt
meta-data=/dev/sdb1              isize=256    agcount=4, agsize=15262188 blks
         =                       sectsz=512   attr=2
data     =                       bsize=4096   blocks=61048752, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal               bsize=4096   blocks=29808, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=0
realtime =none                   extsz=4096   blocks=0, rtextents=0
The key is that "imaxpct" value. In this example inode's are limited to 25% of the filesystems capacity. That is a lot of inodes! But some tools and distributions may default that percentage to some much lower value - like 5% or 10% (for what reason I don't know).  This value can be determined at filesystem creation time using the "-i maxpct=nn" option or adjusted later using the xfs_growfs command's "-m nn" command.  So if you have an XFS filesystem with available capacity that is telling you it is full: check your "imaxpct" value

2 comments:

  1. Ok, so I've checked it... Then what!?

    ReplyDelete
  2. Thanks! That was just the problem I was having - it was 5% on my Ubuntu machine.

    ReplyDelete