Integration
Every migration source and target in Condensa is a provider. You register providers once (credentials are stored encrypted), then pick a source and a target in the migration wizard.
Sources
| Vendor | Credentials |
|---|---|
| VMware vSphere / ESXi | Username + password |
| OVA / VHD file upload | — (file-based) |
Targets
| Target | When to choose it | Guide |
|---|---|---|
| Awanio Cockpit | You run a fleet of KVM hosts managed by the Cockpit control plane; you want host/pool/network placement per migration | Integrate with Cockpit |
| Awanio Vapor (standalone) | A single Vapor host with no control plane — small sites, proof-of-concepts | Integrate with Vapor |
| Awanio CEP (KubeVirt) | Migrating into Kubernetes/KubeVirt via CDI | (covered in the User Guide) |
Multiple providers of the same vendor can be registered side by side and are distinguished by their label — for example a production Cockpit and a DR Cockpit.
About VDDK (applies to Cockpit and Vapor targets)
For the fastest transfers — and for warm migration at all — the target host pulls disk data directly from ESXi using VMware's VDDK library with Changed Block Tracking. VDDK is proprietary and cannot be bundled, so it is installed once per target host:
The direct pull needs two pieces on the target host, and only one of them can be shipped with Vapor:
| Piece | Licence | How it gets there |
|---|---|---|
nbdkit (≥ 1.38) with its VDDK plugin, plus qemu-nbd and nbdfuse | Free / open source | Installed on the host — see below |
| VMware VDDK library | Proprietary (Broadcom EULA) | Downloaded by you, uploaded through the Vapor UI |
1. Install nbdkit and friends on the target host.
Distribution packages are often too old
nbdkit's VDDK plugin only loads library versions it knows about. Ubuntu 20.04 ships nbdkit 1.16, which recognises libvixDiskLib.so.5 and .so.6 only — it cannot load VDDK 7, 8 or 9 at all. Use 1.38 or newer; on older distributions, build it from source as shown below.
# Debian 12+/Ubuntu 22.04+ — try the packages first
sudo apt-get install -y nbdkit nbdkit-plugin-vddk qemu-utils libnbd-bin
# Ubuntu 20.04: the nbdfuse package is called "nbdfuse", not "libnbd-bin"
nbdkit --version # want >= 1.38If the packages are missing or too old (Ubuntu 20.04 and similar), build nbdkit from source — this is the exact sequence used on our reference host:
sudo apt-get install -y build-essential pkg-config libtool autoconf qemu-utils curl
# nbdfuse: package name differs by release — try both, one will exist
sudo apt-get install -y nbdfuse || sudo apt-get install -y libnbd-bin
curl -L -o nbdkit-1.38.5.tar.gz https://download.libguestfs.org/nbdkit/1.38-stable/nbdkit-1.38.5.tar.gz
tar xf nbdkit-1.38.5.tar.gz && cd nbdkit-1.38.5
./configure --prefix=/usr/local --disable-perl --disable-python \
--disable-ruby --disable-rust --disable-ocaml --disable-golang
make -j"$(nproc)"
sudo make install
nbdkit --version # 1.38.5
nbdkit vddk --dump-plugin | head # confirms the VDDK plugin is present2. Upload the VDDK library.
- Download the VDDK tarball (Linux, x86_64) from the Broadcom developer portal — a free account is enough.
- On the target host's Vapor UI open System → Third-party Libraries, upload the tarball, and confirm the status turns Installed.
VDDK 9 on older distributions
VDDK 9 bundles its own OpenSSL 3 in lib64/. On a host whose system OpenSSL is older, point the loader at the bundled copy — Vapor's systemd drop-in already does this when it is configured with the VDDK library directory.
Condensa probes VDDK availability per migration:
- VDDK present → direct pull; warm migration available.
- VDDK absent → Cockpit targets fall back to a staged transfer (cold only); standalone Vapor targets require VDDK and fail fast with a clear message.