Richard W.M. Jones
2022-Jan-08 14:54 UTC
[Libguestfs] Virt-v2v performance benchmarking part 2 [long]
This email continues my analysis of the performance of virt-v2v. The first part is: https://listman.redhat.com/archives/libguestfs/2022-January/msg00055.html I used the standard guest (Fedora 35, 3G of additional random data) to test virt-v2v versions 1.43.3-2.el9 through 1.45.96-1.el9. This range covers (what we call) "old" virt-v2v (< 1.45.90), through new / modular virt-v2v (>= 1.45.90). I also installed contemporary copies of libnbd and nbdkit since virt-v2v and those other projects were being simultaneously co-developed. But I was unable to use contemporary qemu/libvirt/libguestfs so those versions are fixed at the latest ones in RHEL 9. I did local disk to local disk conversions of a raw and qcow2 format standard guest. Disk to disk is not a very relevant test since virt-v2v is almost never used by customers this way. In future testing I will do more realistic tests involving VMware on the input side. The commands used were: $ virt-v2v -i disk fedora-35.img -o local -os /var/tmp/ ; time sync $ virt-v2v -i disk fedora-35.qcow2 -o local -os /var/tmp/ ; time sync I logged the test runs and manually added up the times for conversion, map (fstrim), copying (including final sync), and total time. (Note that total time isn't quite the same as conversion + map + copying since there are some other smaller operations done by v2v. I was able to test in total 8 different combinations of virt-v2v + libnbd + nbdkit, with those having being built in the period 2021-02-27 through to a few days ago. (However I will only refer to the version numbers, since the build dates are not relevant). I repeated the first v2v test several times, and the times appeared to be stable across runs to within a couple of seconds, therefore I didn't repeat and average the times for other versions. The test environment was an idle Intel NUC on RHEL 9/C9S. The tests should be easily reproducible, albeit tedious to obtain and install the builds. Now refer to the attachment (LibreOffice Calc format). Columns 1-4 represent old virt-v2v versions 1.43.3-2 through 1.45.3-3; and cols 5-8 are for modular virt-v2v versions 1.45.94 through 1.45.96. Qcow2 is broadly fine - modular virt-v2v is a little bit faster for conversion, and copying is marginally less efficient (expected because we are now copying between discrete qemu-nbd servers, instead of having qemu-img convert read and write the qcow2 files directly), but the total time does not change. For raw format there is a problem, with modular virt-v2v being much slower. This is likely to be some interaction with nbdkit, the cow filter and block sizes which needs investigation. As noted above, local disk to local disk is unrepresentative of real customer conversions. Next week I will look at conversions from VMware over VDDK. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org -------------- next part -------------- A non-text attachment was scrubbed... Name: results.ods Type: application/vnd.oasis.opendocument.spreadsheet Size: 29910 bytes Desc: not available URL: <http://listman.redhat.com/archives/libguestfs/attachments/20220108/a4187831/attachment.ods>