FreeBSD UFS2 snapshots, and math ...

user user at
Thu Oct 20 11:54:09 PDT 2005


On 20 Oct 2005, Lowell Gilbert wrote:

> user <user at> writes:
> > Let's say I have a filesystem, and on that filesystem I create a snapshot
> > every single night, and every night I delete the snapshot from 5 nights
> > ago.  This means that at all times, I have four snapshots running on that
> > filesystem, one from 1 day ago, one from 2 days ago, one from 3 days ago,
> > and one from 4 days ago.
> > 
> > Let's also assume that the percent change of the filesystem is 5% (every
> > day 5% of the blocks in the filesystem are either changed or deleted).
> > 
> > ----
> > 
> > Does this mean that if that 5% change is a different 5% every day, that
> > the one day ago snapshot will be size 5%_of_filesystem, and that the 2 day
> > ago snapshot will be size 10%_of_filesystem, day 3 15% and day 4 20%, for
> > a total of 50% of the total filesystem taken up with snapshot data ?
> No.  One copy of each version of the file that exists in any
> snapshot.  Regardless of how many snapshots it's in.

That doesn't make much sense to me ... if the snapshot keeps track of
changed_data_since_snapshot_was_taken, then ...

Well, think of it this way - let's say I have a 1G filesystem, which is
filled with a single 500M text file.  Now let's say I snapshot that FS.  
At this point, the snapshot takes up 0 bytes.  Now let's say the next day
I alter 10% (50M) of that single 500M file - now the snapshot takes up
that exact same amount of space, namely, 50M.

Now I create a second snapshot, which immediately yakes up 0 bytes.  The
next day, I change a totally different 50M of my text file ... so now, the
first snapshot needs to keep track of yesterdays 50M of changes/deletions
as well as todays, because todays operates on totally different disk
blocks.  So now 2-day-ago snapshot is size 100M, and the snapshot from one
day ago is now 50M.

I think my interpretation is correct ... can you look over my and your
conclusions again ?

> > The second question is this:
> > 
> > If the 5% data changed per day is the _same_ 5% every day (perhaps
> > changing the same table in a DB every day, or perhaps changing the same
> > block of lines in a text file every day) does that mean that every day
> > simply represents 5%_of_filesystem, for a total of 20% of the total
> > filesystem in use at all times for snapshot data ?
> Whether it's the same data or not doesn't affect how much space you use.

Yeah ... see, I think it does matter, for the reasons above ... if, as in
this second example, I am changing the same blocks on disk every day, the
snapshot just needs to keep track of them once, namely "this is what they
were during the snapshot, and you can change those same blocks all you
want, I just need to keep track of what they were when you took the

comments ?

More information about the freebsd-questions mailing list