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:
Forklift operates using the functionality of multiple projects:
Forklift supports cold migration from oVirt (oVirt) and warm migration from both VMware vSphere and from oVirt.
Cold migration is the default migration type where the source’s virtual machines are shut down while the data is copied.
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.
Forklift operates in two stages, precopy and cutover.
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.
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.