[Top] [All Lists]

Re: No space left on device on xfs filesystem with 1.6TB free

To: Owen Dunn <osd1000@xxxxxxxxx>, xfs@xxxxxxxxxxx
Subject: Re: No space left on device on xfs filesystem with 1.6TB free
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Thu, 22 Jan 2009 14:09:55 +1100
In-reply-to: <20090121225453.GN10158@disturbed>
Mail-followup-to: Owen Dunn <osd1000@xxxxxxxxx>, xfs@xxxxxxxxxxx
References: <alpine.LSU.2.00.0901211007200.19898@xxxxxxxxxxxxxxxxxxxxxx> <20090121225453.GN10158@disturbed>
User-agent: Mutt/1.5.18 (2008-05-17)
On Wed, Jan 21, 2009 at 10:33:10AM +0000, Owen Dunn wrote:
> I'm running SuSE Linux Enterprise Server 10 SP2, on a 32-bit i386 Linux 
> machine with kernel version  I appear to have version 
> 2.9.4 of xfsprogs.
> I have a 6TB xfs filesystem which has been grown twice from 2TB, and which 
> appears to have 1.6TB and plenty of inodes free.  However, attempts to 
> create a new file fail with ENOSPC:

You've run out of inode space below 1TB or free space is
sufficiently fragmented below 1TB that new inode chunks cannot
be allocated.

> sf3:/EXPORT/space # touch splat
> touch: cannot touch `splat': No space left on device
> sf3:/EXPORT/space # df -h .
> Filesystem            Size  Used Avail Use% Mounted on
> /dev/mapper/bigvg-lv1
>                        6.0T  4.5T  1.6T  75% /EXPORT/space
> sf3:/EXPORT/space # df -ih .
> Filesystem            Inodes   IUsed   IFree IUse% Mounted on
> /dev/mapper/bigvg-lv1
>                          4.0G    887K    4.0G    1% /EXPORT/space

df -i really doesn't tell you anything useful on filesystems that
dynamically allocate inodes like XFS.

> Any idea what's going on and how to fix it? 

The only way to fix this is to move data around to free up space
below 1TB. Find your oldest data (i.e. that was around before even
the first grow) and move it off the filesystem (move, not copy).
Then if you copy it back on, the data blocks will end up above 1TB
and that should leave you with plenty of space for inodes below 1TB.

A complete dump and restore will also fix the problem ;)


Dave Chinner

<Prev in Thread] Current Thread [Next in Thread>