On Fri, Feb 28, 2003 at 11:27:39AM -0600, Kevin Corry wrote: > Hi Joe, > > I have a new feature request for Device-Mapper that I'm hoping you'll > consider. Currently, the DM ioctl interface allows device's to be renamed, > but the UUID remains unchanged for the life of the device. This patch > adds the ability to change the UUID as well as the name. I'm really not keen on this at all. One of the few things I liked about the filesystem interface was that we'd managed to get rid of the concept of UUIDs completely by allowing arbitrary device namespaces. So if you use UUIDs, you created a UUID namespace and aliased the devices however you want. At this point I can't see the need for your change. > Another reason for the change is due to our implementation of snapshotting. > When taking a snapshot of a device (we'll call that device the origin child), > we'd like the newly created snapshot-origin (we'll call it the origin parent) > to effectively switch device numbers with the child. This way, any active > users of the origin child will not notice that the snapshot has taken place. > However, the device numbers cannot be changed. Thus, we create the parent > device with the child's mapping, perform a series of renames, and reload the > child device with a snapshot-origin map. But in order for the renames to work > correctly, both the names and uuids must be switched. Why can't you do the snapshotting the same way that LVM2 does it ? Logical volume uuid = 1 --> Origin volume uuid = 1 | \/ Logical volume so you: i) suspend the lv (uuid==1) ii) create a new device with the lv table iii) reload an origin mapping over the original lv (uuid==1) iv) resume (uuid==1) - Joe