snapshot implementation

Ronald Klop ronald-freebsd8 at
Tue Dec 29 10:51:38 UTC 2009

On Fri, 25 Dec 2009 15:29:53 +0100, patpro <patpro at> wrote:

> On Wed, 23 Dec 2009 14:56:18 -0600, Barry Pederson <bp at> wrote:
>> "...there's virtually no overhead at all due to the copy-on-write
>> architecture. In fact, sometimes it is faster to take a snapshot rather
>> than free the blocks containing the old data!"
>> That's certainly not the case with UFS snapshots, which can take a long
>> time to complete (we're talking freezing your machine's disk activity
>> for many minutes), and are limited to 20 total.
> UFS uses copy on write. But you say many minutes to complete? Don't you
> speak about dump(1), that uses snapshot as a basis to dump a live file
> system?
> I agree, UFS snapshot creation is not lightning-fast, but many minutes
> seems a lot to me, and I never experienced such a long creation time.

As far as I know UFS snapshots need to create a list of currently in use  
blocks. This is O(n) on the size of the FS and pauses the FS during the  
snapshot. On large FS's this can take a long time.
ZFS always maintains this list so it only needs to mark this list as  
readonly to create a snapshot. This is O(1).


More information about the freebsd-fs mailing list