running mksnap_ffs
Doug Ambrisko
ambrisko at ambrisko.com
Tue Jan 16 18:42:30 UTC 2007
Scott Oertel writes:
| Kris Kennaway wrote:
| > On Tue, Jan 02, 2007 at 09:06:24PM +0100, Willem Jan Withagen wrote:
| >
| >> Hi,
| >>
| >> I got the following Filesystem:
| >> Filesystem Size Used Avail Capacity iused ifree %iused
| >> /dev/da0a 1.3T 422G 823G 34% 565952 182833470 0%
| >>
| >> Running of a 3ware 9550, on a dual core Opteron 242 with 1Gb.
| >> The system is used as SMB/NFS server for my other systems here.
| >>
| >> I would like to make weekly snapshots, but manually running mksnap_ffs
| >> freezes access to the disk (I sort of expected that) but the process
| >> never terminates. So I let is sit overnight, but looking a gstat did not
| >> reveil any activity what so ever...
| >> The disk was not released, mksnap_ffs could not be terminated.
| >> And things resulted in me rebooting the system.
| >>
| >> So:
| >> - How long should I expect making a snapshot to take:
| >> 5, 15, 30min, 1, 2 hour or even more???
| >
| > Yes :) Snapshots were not designed for use in this way (they were
| > designed to support background fsck and allow faster system recovery
| > after power failure), so they don't scale as well as you might like on
| > large filesystems.
|
| If snapshots were designed to support background fsck, then why did they
| not make it more scalable? If you can't create a snapshot without the
| system locking up, that means fsck won't be able to either, making
| background fsck worthless for systems with large storage.
FWIW, with this patch I find making snap-shots a lot more reliable:
--- sys/ufs/ffs/ffs_snapshot.c.orig Wed Mar 22 09:42:31 2006
+++ sys/ufs/ffs/ffs_snapshot.c Mon Nov 20 14:59:13 2006
@@ -282,6 +282,8 @@ restart:
if (error)
goto out;
bawrite(nbp);
+ if (cg % 10 == 0)
+ ffs_syncvnode(vp, MNT_WAIT);
}
/*
* Copy all the cylinder group maps. Although the
@@ -303,6 +305,8 @@ restart:
goto out;
error = cgaccount(cg, vp, nbp, 1);
bawrite(nbp);
+ if (cg % 10 == 0)
+ ffs_syncvnode(vp, MNT_WAIT);
if (error)
goto out;
}
or things can get wedged. We have some other patches as well that might
be required. As a hack on a local server we have been using snap shots
to do a "hot" back-up of a data base each morning. This is based on
6.x.
Doug A.
More information about the freebsd-stable
mailing list