Hi Look at this http://people.redhat.com/mpatocka/patches/kernel/new-snapshots/ It is standalone implementation, without any dependency on old snapshots. Would you like to create patches against this instead of the original snapshots? Mikulas On Thu, 27 Nov 2008, FUJITA Tomonori wrote: > This is the fourth version of the shared exception store (based on > Zumastor code). You can find the previous submissions: > > https://www.redhat.com/archives/dm-devel/2008-August/msg00003.html > > https://www.redhat.com/archives/dm-devel/2008-August/msg00087.html > > https://www.redhat.com/archives/dm-devel/2008-October/msg00159.html > > Except for bug fixes, the major change since the previous version is > fixing the disk endian (Zumastor simply uses the CPU endian for the > disk format). The current code uses little endian for the disk format > (I just slightly tested it with ppc64. It needs more tests, of > course). I also modified the snapshot disk initialization code to > reserve chunks for the journaling mechanism. I've not implemented the > journaling mechanism but there is no need to change the disk format > for that later. > > There are 9 patches and I modified only 7th patch (Zumastor shared > snapshot code) since the last submission. IOW, I have not change the > way to refactor the existing code. I'll think about how to integrate > this with the existing code cleaner again but I think that the > user-interface is far more important than how to integrate this with > the existing in-kernel code. We don't want to change the > user-interface after mainline mering while we can evolve (or clean up) > the in-kernel structures any time (and it's not hard at all). > > For example, a way to handle the snapshots looks oK? > > - create one snapshot (the id is 0): > > vine:/home/fujita# dmsetup message work 0 snapshot create 0 > > - get the list of snapshots: > > vine:/home/fujita# dmsetup status > work: 0 268430022 s-snap-origin 2 0 5 > > (this means we have two snapshots, their IDs are 0 and 5). > > With Zumastor code, the maximum number of snapshots is 64 so the above > interface to get the list would work, but it might not work well for > an shared-exception-snapshot implementation that support tons of > snapshots (which someone might implement in the future). > > Any opinions? > > > The patches are available (against the latest Linus git tree): > > http://www.kernel.org/pub/linux/kernel/people/tomo/dm-snap/2008-11-26/ > > If you like a git tree: > > git://git.kernel.org/pub/scm/linux/kernel/git/tomo/linux-2.6-misc.git dm-snap > > > The following is the same instruction as the previous submission. > > = > In this example, /dev/sda1 is used as an origin device and > /dev/sdb1 is used as a cow device. > > - first, set up an origin and a cow: > > vine:/home/fujita# echo |dmesg create --notable work > vine:/home/fujita# echo 0 `blockdev --getsize /dev/sda1` s-snap-origin /dev/sda1 /dev/sdb1 S 16|dmsetup load work > vine:/home/fujita# dmsetup resume work > > > - confirm the current status: > > vine:/home/fujita# dmsetup status > work: 0 268430022 s-snap-origin : no snapshot > > > - create one snapshot (the id is 0): > > vine:/home/fujita# dmsetup message work 0 snapshot create 0 > > > - see if the snapshot is created: > > vine:/home/fujita# dmsetup status > work: 0 268430022 s-snap-origin 1 0 > > > - create one more snapshot (the id is 5) and see the result: > > vine:/home/fujita# dmsetup message work 0 snapshot create 5 > vine:/home/fujita# dmsetup status > work: 0 268430022 s-snap-origin 2 0 5 > > Note that creating a snapshot just means that you store some > information on the cow device. You don't create a device for it yet. > > > - create a device to access to the snapshot #5 > > vine:/home/fujita# echo |dmsetup create --notable snap5 > vine:/home/fujita# echo 0 `blockdev --getsize /dev/sda1` s-snap /dev/sda1 5|dmsetup load snap5 > vine:/home/fujita# dmsetup resume snap5 > > - confirm the current status: > > vine:/home/fujita# dmsetup status > snap5: 0 268430022 s-snap Unknown > work: 0 268430022 s-snap-origin 2 0 5 > > > - remove the devices after you play with them: > > vine:/home/fujita# dmsetup remove snap5 > vine:/home/fujita# dmsetup remove work > vine:/home/fujita# dmsetup info > No devices found > > > - Again, setup the origin and the cow: > > vine:/home/fujita# echo |dmsetup create --notable work > vine:/home/fujita# echo 0 `blockdev --getsize /dev/sda1` s-snap-origin /dev/sda1 /dev/sdb1 S 16|dmsetup load work > vine:/home/fujita# dmsetup resume work > vine:/home/fujita# dmsetup status > work: 0 268430022 s-snap-origin 2 0 5 > > Note that you have two snapshots that you created. You can play with > them again after creating devices for them. > > > - delete the 5th snapshot > > vine:/home/fujita# dmsetup message work 0 snapshot delete 5 > vine:/home/fujita# dmsetup status > work: 0 268430022 s-snap-origin 1 0 > > > *) By default, dmsetup perfomrs multiple tasks. I uses dmsetup > commands that issue a single ioctl to make things clear. > > > > -- > dm-devel mailing list > dm-devel@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/dm-devel > -- dm-devel mailing list dm-devel@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/dm-devel