Demo & explanation ---------------------------------------------------------------------- [0000 - introduction] [1000 - demo of running virt-v2v] [2000 - what virt-v2v does] What's virt-v2v for? It takes a virtual machine running on another hypervisor and converts it to run on KVM. We also have a virt-p2v ISO which does the same, but for physical machines. The difficulties involve changing the bootloader or initrd, Windows Critical Device Database, installing virtio drivers, uninstalling VMware tools; and copying the disk contents from the source to the destination efficiently. [3000 - p2v screenshot] [3001 - p2v screenshot] Features of qemu & improvements vs old version ---------------------------------------------------------------------- [4000 - old vs new virt-v2v] The previous version of virt-v2v first released in 2009 worked by first copying the whole disk from the source hypervisor and then converting it. Disks can be very large (terabytes) so the copy phase could take hours. The conversion only takes a few seconds, but is very sensitive to the exact contents of the guest so of the two steps conversion is the most likely to fail. We sometimes ended up with unhappy customers who had been waiting for hours only for the last step to fail. When I came to improve virt-v2v last year [2014], I saw that we could use features of qemu that were not available before to improve the experience. It was possible, now, to do the conversion first, and the copying second. Not only that, but we could make the copying much faster by using new features of qemu to only copy the data that was actually in use by the guest. Deleted files, and areas of blank disk, didn't need to be copied. [5000 - overlay on top of network backing disk] How does the new virt-v2v work? First we put an overlay qcow2 on top of the source disk image. We now have a working curl driver, ssh that I wrote, and nbd. So we can have the read-only backing file access VMware vCenter, Xen or a physical machine. [5100 - reads and writes] In addition, copy-on-read means that this is very efficient -- it only accesses each disk block from the source at most once. [5200 - fstrim] Since the work done by Paolo Bonzini, Kevin Wolf and others, we're now able to 'fstrim' the overlay. The qcow2 "v3" format overlay stores the zero clusters corresponding to unused and deleted areas in the source disk. [5300 - copy & convert] So when we've finished conversion and start the copy, we never even have to *read* the unused parts of the disk. We only copy parts of the disk that the guest is actually using. This can bring down copy times from hours to minutes, massively reducing the time taken to do conversions. [6000 - summary of new features] Future ---------------------------------------------------------------------- [7000 - competing technologies] Discussion about competing technologies / implementations. Summary & questions ---------------------------------------------------------------------- [9000 - see final slide from 2014 talk]