All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Chinner <david@fromorbit.com>
To: Stan Hoeppner <stan@hardwarefreak.com>
Cc: xfs@oss.sgi.com
Subject: Re: ENOSPC at 90% with plenty of inodes
Date: Wed, 13 Oct 2010 11:25:09 +1100	[thread overview]
Message-ID: <20101013002509.GR4681@dastard> (raw)
In-Reply-To: <4CB4ED86.1010909@hardwarefreak.com>

On Tue, Oct 12, 2010 at 06:21:42PM -0500, Stan Hoeppner wrote:
> Dave Chinner put forth on 10/12/2010 5:29 AM:
> > On Mon, Oct 11, 2010 at 08:27:00PM -0500, Stan Hoeppner wrote:
> >> Dave Chinner put forth on 10/11/2010 5:35 PM:
> >>> On Mon, Oct 11, 2010 at 03:03:28PM +0100, James Braid wrote:
> >>>> On Fri, Oct 8, 2010 at 23:51, Dave Chinner <david@fromorbit.com> wrote:
> >>>>> Sounds like fragmented free space. What is the output of:
> >>>>>
> >>>>> # xfs_db -r -c "freesp -s" <device>
> >>>>
> >>>> # xfs_db -r -c "freesp -s" /dev/sdb
> >>>>    from      to extents  blocks    pct
> >>>>       1       1 2298052 2298052  40.52
> >>>>       2       3 1568338 3337017  58.84
> >>>>       4       7    8432   35716   0.63
> >>>>       8      15      50     423   0.01
> >>>> total free extents 3874872
> >>>> total free blocks 5671208
> >>>> average free extent size 1.46359
> >>>>
> >>>> Which seems to say there are a few tiny pieces of free space
> >>>> available? The files that were failing to be written were a few
> >>>> hundred bytes in size.
> >>>
> >>> The error has nothing to do with the size of the files, but
> >>> everything to do with being able to allocate more inodes. Inode
> >>> allocation requires 4 contiguous blocks (for 256 byte inodes, more
> >>> for larger inodes) with alignment constraints. That means when you
> >>> run out of 8 block or larger free extents, inode allocation will
> >>> start failing and you'll get ENOSPC being reported.
> >>>
> >>>> We haven't seen any errors so far today, but xfs_fsr ran over the
> >>>> weekend, so perhaps I guess it's reorganized the filesystem.
> >>>
> >>> Only a little. xfs_fsr will not improve fragmented free space
> >>> conditions (indeed, it normally fragments free space more). The only
> >>> way to reduce the fragmentation of free space is to remove a
> >>> significant amount of data and inodes from the filesystem...
> >>
> >> Hay Dave, would a "backup/reformat/restore" help with free space
> >> fragmentation in this case?
> > 
> > Of course. But that's the last resort....
> > 
> >> If so, could/should the OP specify anything
> >> during the mkfs.xfs reformat that may help alleviate or mitigate his
> >> problem in the future?
> > 
> > No. These problems usually appear in filesystems that have run at
> > greater than 85-90% full for extended periods of time without being
> > emptied at all. Once you start to free up space, it naturally
> > defragments itself, but if you never free up any significant amount
> > of space in the filesytesm, this cannot occur and so fragmentation
> > just keeps getting worse....
> 
> So, given that this problem is on a production IMAP server, and the OP
> likely can't just willy nilly start deleting user files, would adding
> more disk (and assuming he's using LVM or somesuch) and growing the
> filesystem alleviate this inode issue?

As long as you are unsing inode64 then growing the filesystem will
alow more inodes to be allocated.

> Or would he be better off adding more disk, creating a new filesystem,
> and moving half or so of his mailboxen over to the new filesystem at the
> Cyrus (application) level?  I've never used Cyrus, though IIRC Dovecot
> can do this "split mail store" setup.

Sure, that'd work, too.

Fundamentally, moving data and inodes around after a grow (or new
filesystem is added) is the only way to reduce existing free space
fragmentation. Achieving this data movement is left as an exercise
for the reader.  ;)

Cheers,

Dave.
-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  reply	other threads:[~2010-10-13  0:24 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-08 17:17 ENOSPC at 90% with plenty of inodes James Braid
2010-10-08 20:40 ` Emmanuel Florac
2010-10-08 20:43 ` Emmanuel Florac
2010-10-08 22:51 ` Dave Chinner
2010-10-11 14:03   ` James Braid
2010-10-11 22:35     ` Dave Chinner
2010-10-12  1:27       ` Stan Hoeppner
2010-10-12 10:29         ` Dave Chinner
2010-10-12 13:52           ` Jan Derfinak
2010-10-12 23:21           ` Stan Hoeppner
2010-10-13  0:25             ` Dave Chinner [this message]
2010-11-24  1:04 ` XIE Zhengmao
  -- strict thread matches above, loose matches on Subject: below --
2010-10-08 20:33 Richard Scobie

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=20101013002509.GR4681@dastard \
    --to=david@fromorbit.com \
    --cc=stan@hardwarefreak.com \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.