/virt-v2v

Virt-v2v converts guests from foreign hypervisors to run on KVM

Primary LanguageOCamlGNU General Public License v2.0GPL-2.0

Virt-v2v is a program that converts a single guest from a foreign
hypervisor to run on KVM.  It can read Linux and Windows guests
running on VMware, Xen, Hyper-V and some other hypervisors, and
convert them to KVM managed by libvirt, OpenStack, oVirt, Red Hat
Virtualisation (RHV) or several other targets.  It can modify the
guest to make it bootable on KVM and install virtio drivers so it will
run quickly.

There is also a companion front-end called virt-p2v
(https://github.com/libguestfs/virt-p2v) which comes as an ISO, CD or
PXE image that can be booted on physical machines to virtualize those
machines (physical to virtual, or p2v).

Virt-v2v and virt-p2v have been in continuous development since 2007.

For more information about virt-v2v and virt-p2v please read the
respective manual pages.  For virt-v2v, see the docs/ subdirectory in
the source tree.


BUILDING FROM SOURCE
======================================================================

To build from git:

  git submodule update --init
  autoreconf -i
  ./configure
  make

To build from tarball:

  ./configure
  make

You can run virt-v2v without installing it:

  ./run virt-v2v ...

To run the tests:

  make check


REQUIREMENTS
======================================================================

* libguestfs (https://libguestfs.org)

* OCaml bindings for libguestfs

* OCaml bindings for libvirt (https://gitlab.com/libvirt/libvirt-ocaml)

* libnbd >= 1.10 (https://gitlab.com/nbdkit/libnbd)

* The 'nbdinfo' and 'nbdcopy' programs from libnbd.

* OCaml bindings for libnbd

* nbdkit >= 1.27.4 (https://gitlab.com/nbdkit/nbdkit)

* These nbdkit plugins and filters:

  + nbdkit-curl-plugin
  + nbdkit-file-plugin
  + nbdkit-nbd-plugin
  + nbdkit-null-plugin
  + nbdkit-python-plugin
  + nbdkit-ssh-plugin
  + nbdkit-vddk-plugin

  + nbdkit-cacheextents-filter
  + nbdkit-cow-filter
  + nbdkit-multi-conn-filter
  + nbdkit-rate-filter
  + nbdkit-retry-filter

* qemu-nbd

* qemu-img

Optional, for enhancements to the basic program:

* OCaml gettext

* virtio-win (Windows virtio device drivers)

Optional, used by the test suite:

* guestfish

* OCaml oUnit2