tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: ffs snapshots patch
On Sat, Apr 16, 2011 at 09:29:26PM +0200, Manuel Bouyer wrote:
> Hello,
> attached is a work in progress on ffs snapshot (as it's work in progress,
> some debug and instrumentation code is still present in the
> patch, no need to comment on this part :).
> The start of this work is that when working on quota, I noticed that
> taking a snapshot on a 500Gb filesystem needs several minutes, and is
> O(n) with the number of persisent snapshots.
> Here's some timings on a otherwise idle 500Gb filesystem (it's some brand of
> SATA2 3.5" drive attached to a AHCI controller, so it's a reasonable test
> bed for today):
> java# /usr/bin/time fssconfig fss0 /home /home/snaps/snap0
> 260.53 real 0.00 user 1.15 sys
> /home: suspended 77.873 sec, redo 1184 of 2556
> java# /usr/bin/time fssconfig fss1 /home /home/snaps/snap1
> 377.87 real 0.00 user 2.53 sys
> /home: suspended 206.078 sec, redo 1184 of 2556
> java# /usr/bin/time fssconfig fss2 /home /home/snaps/snap2
> 508.23 real 0.00 user 4.28 sys
> /home: suspended 338.534 sec, redo 1184 of 2556
> java# /usr/bin/time fssconfig fss3 /home /home/snaps/snap3
> 621.40 real 0.00 user 5.50 sys
> /home: suspended 431.154 sec, redo 1183 of 2556
>
> suspending a filesystem for more than 7mn to take a snapshot makes
> persisent snapshot quite useless to me. I wonder how it would behaves
> on a multi-terabyte filesystem.
[snip]
These times depend on the file systems block size. With contiguous indirect
blocks (ffs_balloc.c rev 1.54) I did timings on a 1.4 TByte UFS1 non-logging
file system created on 3 concatenated WD5003ABYX. For every block size
I created four persistent snapshots (with unmounting the file systems after
every creation) and get these times (seconds):
Layout create suspended
91441948 x 16384 385.713 22.785
91441948 x 16384 414.170 59.580
91441948 x 16384 474.164 91.385
91441948 x 16384 652.556 111.314
45720974 x 32768 43.478 0.420
45720974 x 32768 40.790 5.642
45720974 x 32768 49.700 12.748
45720974 x 32768 55.599 18.612
22860487 x 65536 7.005 0.600
22860487 x 65536 10.558 2.436
22860487 x 65536 14.365 4.122
22860487 x 65536 18.615 5.739
For me snapshots create reasonable fast with a block size of 32k or 64k.
--
Juergen Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig
(Germany)
Home |
Main Index |
Thread Index |
Old Index