Forklift provides a simplistic way for large scale migration of virtual machines (VMs) at scale to Kubernetes from traditional hypervisors like VMware (vSphere) and Red Hat Virtualization (oVirt) to KubeVirt. Forklift is an open source tool based on proven core Linux v2v technologies that can rehost a few or hundreds of VMs while minimizing downtime as it lifts and shifts the applications. The benefits of Forklift include:

  • Migration Analytics: Validate the compatibility of the virtual machine before executing the migration.
  • Warm migrations: Reduce downtime by using warm migration capabilities, which will pre-copy the data before finalizing the migration.
  • Migration at Scale: Migrate small or large numbers of virtual machines at once.

Forklift operates using the functionality of multiple projects:

  • Forklift Operator. The Forklift Operator deploys and maintains Forklift.
  • Forklift UI. The Forklift UI is based on Patternfly 4.
  • Forklift Controller. The Forklift Controller orchestrates the migration.
  • Forklift Validation. The Forklift Validation service checks the virtual machines for possible issues before migration. Runs with Open Policy Agent.
  • Forklift must-gather. Support tool for gathering information about the Forklift environment.

Additional resources

Migration Types

Forklift supports cold migration from oVirt (oVirt) and warm migration from both VMware vSphere and from oVirt.

Cold migration

Cold migration is the default migration type where the source’s virtual machines are shut down while the data is copied.

Warm migration

Warm migration copies most of the data during the precopy stage while the source VMs are running. During a time of minimal data transactions, the cutover stage shuts down the VMs and the remaining data is copied.

Migration Stages

Forklift operates in two stages, precopy and cutover.

Precopy stage

The VMs are not shut down during the precopy stage. Instead the VM disks are copied incrementally using changed block tracking (CBT) snapshots. The snapshots are created at one-hour intervals by default but can be changed by updating the forklift-controller deployment.

Important CBT must be enabled for each source VM and each VM disk.

A VM can support up to 28 CBT snapshots. If the source VM has too many CBT snapshots and the Migration Controller service is not able to create a new snapshot, warm migration might fail. The Migration Controller service deletes each snapshot when it is no longer required.

The precopy stage runs until the cutover stage is started manually or is scheduled to start.

Cutover stage

The VMs are shut down during the cutover stage and the remaining data is migrated. Data stored in RAM is not migrated.

The cutover stage can be started manually by using the Forklift console or by scheduling a cutover time in the Migration manifest.