From: David Chinner <dgc@sgi.com>
To: wildcat <wildcat@espix.org>
Cc: xfs@oss.sgi.com
Subject: Re: XFS "no space left" problem
Date: Sun, 4 Feb 2007 10:38:28 +1100 [thread overview]
Message-ID: <20070203233828.GD44411608@melbourne.sgi.com> (raw)
In-Reply-To: <20070203183723.GA1652@dunno.espix.org>
On Sat, Feb 03, 2007 at 07:37:23PM +0100, wildcat wrote:
> Hi dear list,
>
>
> I recently migrated a 1.3Tbyte partition from reiserfs to XFS.
> As the 1.3Tb partition was full, my idea was to shrink reiserfs
> partition of 100Gig at a time, and then grow the XFS one.
So you've filled up the lower terabyte of the partition
before you added the space above 1TB. The problem
is almost certainly going to be that there's no room left
to allocate inodes below the 1TB mark (32 bit inode filesystem)
because all that space is taken up by data....
> dunno jail2 # xfs_info /jail2
> meta-data=/dev/crypt/data isize=256 agcount=188,
> agsize=1638400 blks
> = sectsz=512 attr=0
> data = bsize=4096 blocks=306708480,
> imaxpct=25
> = sunit=0 swidth=0 blks, unwritten=1
> naming =version 2 bsize=4096
> log =internal bsize=4096 blocks=12800, version=1
> = sectsz=512 sunit=0 blks
> realtime =none extsz=65536 blocks=0, rtextents=0
>
> dunno / # xfs_db /dev/crypt/data
> xfs_db> frag
> actual 140099, ideal 134926, fragmentation factor 3.69%
> xfs_db> freesp
> from to extents blocks pct
> 1 1 801 801 0.00
> 2 3 2 5 0.00
> 32 63 2 89 0.00
> 128 255 3 517 0.00
> 256 511 4 1676 0.00
> 512 1023 5 3776 0.01
> 1024 2047 7 10765 0.03
> 262144 524287 23 9200216 26.21
> 1048576 1638400 16 25888649 73.74
> xfs_db>
Mostly large blocks. I bet they are all in AGs above the 1TB mark.
One thing you can do is look at the freespace per AG:
# for ag in `seq 0 1 188`; do
> echo freespace in AG $ag
> xfs_db r -c "freesp -s -a $ag" /dev/crypt/data | grep "total free"
> done
And see how many of the AGs below 1TB (~6.4GB per AG, so those below about
about AG 160) have no free space. To allocate new inodes you need a contiguous
extent of 16k plus another 4 free blocks, so you need at _least_ 8 free
blocks in an AG to allocate a new inode chunk on disk.
If this is the case, then you need to delete some files to get space
free below 1TB for more inodes and then copy a large file or two so
they are moved above the 1TB mark, then remove the original copy
to make space for inodes below 1TB.
Or get a 64bit machine and use inode64. ;)
HTH.
Cheers,
Dave.
--
Dave Chinner
Principal Engineer
SGI Australian Software Group
next prev parent reply other threads:[~2007-02-03 23:39 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-03 18:37 XFS "no space left" problem wildcat
2007-02-03 23:38 ` David Chinner [this message]
2007-02-05 17:58 ` Bernd Schubert
2007-02-05 18:28 ` Eric Sandeen
2007-02-05 21:59 ` Bernd Schubert
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070203233828.GD44411608@melbourne.sgi.com \
--to=dgc@sgi.com \
--cc=wildcat@espix.org \
--cc=xfs@oss.sgi.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox