Hi All, I''m starting to work on implementing Copy-on-Write support for Xen. Below, I describe how I plan to accomplish this in hopes that people will offer their opinions about the design. I''m just beginning to work on an implementation, but I hope to have something pre-pre-alpha to post in a few weeks. First, I will create a device-mapper extension called "dm-cow" which knows about two devices: the base image and the CoW space. Reads will be mapped directly to the base device. Writes will be queued and the device/block/chunk information will be passed to a userspace tool. The userspace tool will do the hard work of deciding which block in the CoW space will be used for the write, and will do two things: 1. Adjust the device-mapper table to directly map the new block to the appropriate block in the CoW space (using dm-linear) 2. Notify dm-cow of the new space, so that outstanding write requests can be mapped and completed. Further writes to the newly-mapped block will be mapped directly by dm-linear into the correct block in the CoW space. The userspace tool would also be responsible for recording block relocation information in the CoW space, for persistence. This approach has the benefit of moving the block-allocation logic into userspace, which means we could have plugins for different CoW schemes, such as QEMU''s qcow format. Comments? -- Dan Smith IBM Linux Technology Center Open Hypervisor Team email: danms@us.ibm.com _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel