On 1/12/07, Benjamin Marzinski <bmarzins@xxxxxxxxxx> wrote:
On Thu, Jan 11, 2007 at 11:18:13AM -0700, Vijai Babu Madhavan wrote:
> I would like to receive some comments about what users, developers > and others think about this. > Have you taken a look at Daniel Phillips cluster snapshot work? http://sources.redhat.com/cluster/csnap/index.html The code is not complete, and am not sure if Daniel is doing any work on it at all, but it has a nice design to store the cow data, and that URL contains the design documents. In brief: There is one device that stores all cow data (the snapstore). It has three main parts, an allocation bitmap, a superblock that stores metadata, and an exception btree. The exception btree is indexed by the location of the data on the origin. For each chuck on the origin device that has cow data for one or more snapshots, there is an exception in the btree that lists the location of the cow data on the snapstore device, and the snapshots which are using that exception. This list of snapshots is stored as a bitmask. This means that no matter now many snapshots you have, all you need to do to write to the origin is check the btree.
Daniel's work has become an integral part of the hotcakes project: http://code.google.com/p/hotcakes/ There was/is talk of making the dm targets used for ddsnap work locally as a replacement for dm-snapshot. It might be wise to catch up with the hotcakes people to see if you could leverage it as the basis for a dm-snapshot++ Mike -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel