From: Dave Chinner <david@fromorbit.com>
To: Eli Morris <ermorris@ucsc.edu>
Cc: xfs@oss.sgi.com
Subject: Re: filesystem shrinks after using xfs_repair
Date: Mon, 26 Jul 2010 16:06:04 +1000 [thread overview]
Message-ID: <20100726060604.GF7362@dastard> (raw)
In-Reply-To: <10B6F36F-BE01-4BF7-9815-2E8F6BF71B41@ucsc.edu>
On Sun, Jul 25, 2010 at 09:04:03PM -0700, Eli Morris wrote:
> On Jul 25, 2010, at 8:45 PM, Dave Chinner wrote:
> > On Sun, Jul 25, 2010 at 08:20:44PM -0700, Eli Morris wrote:
> >> [root@nimbus vm]# echo 3 > /proc/sys/vm/drop_caches
> >> [root@nimbus vm]# for ag in `seq 0 1 125`; do
> >>> xfs_db -r -c "sb $ag" -c "p agcount" -c "p dblocks" /dev/vg1/vol5
> >>> done
> >> agcount = 126
> >> dblocks = 13427728384
> >> agcount = 126
> >> dblocks = 13427728384
> > ....
> >
> > All nice and consistent before.
> >
> >> [root@nimbus vm]# umount /export/vol5
> >> [root@nimbus vm]# echo 3 > /proc/sys/vm/drop_caches
> >> [root@nimbus vm]# for ag in `seq 0 1 125`; do
> >>> xfs_db -r -c "sb $ag" -c "p agcount" -c "p dblocks" /dev/vg1/vol5
> >>> done
> >> agcount = 156
> >> dblocks = 16601554944
> >> agcount = 126
> >> dblocks = 13427728384
> >> agcount = 126
> >> dblocks = 13427728384
> > .....
> >
> > And after the grow only the primary superblock has the new size and
> > agcount, which is why repair is returning it back to the old size.
> > Can you dump the output after the grow for 155 AGs instead of 125
> > so we can see if the new secondary superblocks were written? (just
> > dumping `seq 125 1 155` will be fine.)
Which shows:
> agcount = 126
> dblocks = 13427728384
> agcount = 126
> dblocks = 13427728384
....
Well, that's puzzling. The in-memory superblock is written to each
of the secondary superblocks, and that _should_ match the primary
superblock. The in-memory superblock is what is modified
during the growfs transaction and it is them synchronously written
to each secondary superblock. Without any I/O errors, I'm not sure
what is happening here.
Oh, I just noticed this from your previous mail:
> [root@nimbus vm]# df -h
> Filesystem Size Used Avail Use% Mounted on
.....
> /dev/mapper/vg1-vol5 51T 51T 90M 100% /export/vol5
^^^^^^^^^^^^^^^
> [root@nimbus vm]# umount /export/vol5
> [root@nimbus vm]# echo 3 > /proc/sys/vm/drop_caches
> [root@nimbus vm]# for ag in `seq 0 1 125`; do
> > xfs_db -r -c "sb $ag" -c "p agcount" -c "p dblocks" /dev/vg1/vol5
> > done
> agcount = 156
> dblocks = 16601554944
^^^^^^^^^^^^^^^^^^^^^
These don't match up - we've got the situation where the on-disk
value for the primary superblock has changed, but the in-memory
value has not appeared to change.
And I note from the original email I asked for data from that the
filesystem did not show up as 62TB until you unmounted and mounted
it again, which would have read the 62TB size from the primary
superblock on disk during mount. You do not need to unmount and
remount to see the new size. This leads me to believe you are
hitting one (or more) of the growfs overflow bugs that was fixed a
while back.
I've just confirmed that the problem does not exist at top-of-tree.
The following commands gives the right output, and the repair at the
end does not truncate the filesystem:
xfs_io -f -c "truncate $((13427728384 * 4096))" fsfile
mkfs.xfs -f -l size=128m,lazy-count=0 -d size=13427728384b,agcount=126,file,name=fsfile
xfs_io -f -c "truncate $((16601554944 * 4096))" fsfile
mount -o loop fsfile /mnt/scratch
xfs_growfs /mnt/scratch
xfs_info /mnt/scratch
umount /mnt/scratch
xfs_db -c "sb 0" -c "p agcount" -c "p dblocks" -f fsfile
xfs_db -c "sb 1" -c "p agcount" -c "p dblocks" -f fsfile
xfs_db -c "sb 127" -c "p agcount" -c "p dblocks" -f fsfile
xfs_repair -f fsfile
So rather than try to triage this any further, can you upgrade your
kernel/system to something more recent?
Cheers,
Dave.
--
Dave Chinner
david@fromorbit.com
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next prev parent reply other threads:[~2010-07-26 6:03 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-07-12 1:10 filesystem shrinks after using xfs_repair Eli Morris
2010-07-12 2:24 ` Stan Hoeppner
2010-07-12 11:47 ` Emmanuel Florac
2010-07-23 8:30 ` Eli Morris
2010-07-23 10:23 ` Emmanuel Florac
2010-07-23 16:36 ` Eli Morris
2010-07-24 0:54 ` Dave Chinner
2010-07-24 1:08 ` Eli Morris
2010-07-24 2:39 ` Dave Chinner
2010-07-26 3:20 ` Eli Morris
2010-07-26 3:45 ` Dave Chinner
2010-07-26 4:04 ` Eli Morris
2010-07-26 5:57 ` Michael Monnerie
2010-07-26 6:06 ` Dave Chinner [this message]
2010-07-26 6:46 ` Eli Morris
2010-07-26 8:40 ` Michael Monnerie
2010-07-26 9:49 ` Emmanuel Florac
2010-07-26 17:22 ` Eli Morris
2010-07-26 18:33 ` Stuart Rowan
2010-07-26 21:06 ` Emmanuel Florac
2010-07-27 5:02 ` Eli Morris
2010-07-27 6:48 ` Stan Hoeppner
2010-07-27 8:21 ` Michael Monnerie
2010-07-26 10:20 ` Dave Chinner
2010-07-28 5:12 ` Eli Morris
2010-07-29 19:22 ` Eli Morris
2010-07-29 22:09 ` Emmanuel Florac
2010-07-29 22:48 ` Eli Morris
2010-07-29 23:01 ` Dave Chinner
2010-07-29 23:15 ` Eli Morris
2010-07-30 0:39 ` Michael Monnerie
2010-07-30 1:49 ` Eli Morris
2010-07-30 7:15 ` Emmanuel Florac
2010-07-30 7:57 ` Christoph Hellwig
2010-07-30 10:23 ` Michael Monnerie
2010-07-30 10:29 ` Christoph Hellwig
2010-07-30 12:40 ` Michael Monnerie
2010-07-30 13:17 ` Emmanuel Florac
-- strict thread matches above, loose matches on Subject: below --
2010-07-12 6:39 Eli Morris
2010-07-11 6:32 Eli Morris
2010-07-11 10:56 ` Stan Hoeppner
2010-07-11 16:29 ` Emmanuel Florac
2010-07-09 23:07 Eli Morris
2010-07-10 8:16 ` Stan Hoeppner
2010-07-24 21:09 ` Eric Sandeen
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=20100726060604.GF7362@dastard \
--to=david@fromorbit.com \
--cc=ermorris@ucsc.edu \
--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