hyper2kvm

Hyper2KVM Documentation Hub

Enterprise-Grade VM Migration from Hyper-V, VMware, and Other Hypervisors to KVM/Libvirt

Welcome to the comprehensive documentation for Hyper2KVM, a production-ready VM migration toolkit designed for seamless hypervisor transitions.


Quick Navigation

⚑ Quick Access & Reference

🎯 Decision Support Tools

πŸ“‹ Operational Guides

πŸ“š Documentation Resources

πŸš€ Getting Started

πŸ“š Tutorials

🍳 Migration Recipes

πŸ“– API Reference

πŸ› οΈ User Guides

🎨 TUI (Terminal UI)

πŸ”§ Feature Documentation

πŸ–₯️ OS-Specific Documentation

🚒 Deployment & Operations

Version Release Notes

πŸ”¬ Test Results & Validation

πŸ”„ Worker Protocol & Job Management

πŸ‘₯ Development

πŸ” Contact & security

πŸ“Š Project Information

πŸ—ΊοΈ Roadmap & Future Features

πŸ“š Reference Documentation

🎀 Presentation Materials


Feature Highlights

🎯 Production-Ready Features

Feature Status Documentation
VMCraft (480+ APIs) βœ… Production Complete Guide
Local VMDK Migration βœ… Production Quick Start
Remote ESXi Fetch βœ… Production Migration Playbooks
OVA/OVF Extraction βœ… Production CLI Reference
VHD/AMI Import βœ… Production CLI Reference
Live Fix (SSH) βœ… Production Migration Playbooks
Batch Processing βœ… Production Batch Guide
Windows Support βœ… Production Windows Guide
vSphere Operations βœ… Production vSphere Export
Kubernetes Operator βœ… Production Operator Guide
OpenShift Support βœ… Production OpenShift Guide
Worker Protocol βœ… Production Worker Protocol
REST API βœ… Production REST API

πŸ† Key Capabilities


Common Use Cases

Scenario 1: Local VMDK Migration

Goal: Migrate a VMware VMDK to KVM qcow2

# migration.yaml
command: local
vmdk: /vms/windows-server.vmdk
output_dir: /vms/converted
to_output: windows-server.qcow2
out_format: qcow2
fstab_mode: stabilize-all
regen_initramfs: true
compress: true
libvirt_test: true
# Install and run
pip install "hyper2kvm[full]"
hyper2kvm --config migration.yaml

# Import to libvirt
virsh define /vms/converted/windows-server.xml
virsh start windows-server
Documentation: Beginner Tutorial Windows Guide

Scenario 2: Remote ESXi Fetch

Goal: Fetch and migrate VM directly from ESXi host

# fetch.yaml
command: fetch-and-fix
host: 192.168.1.100
user: root
identity: ~/.ssh/id_rsa
remote: /vmfs/volumes/datastore1/vm/vm.vmdk
output_dir: /vms/migrated
to_output: vm.qcow2
fstab_mode: stabilize-all
regen_initramfs: true
hyper2kvm --config fetch.yaml

Documentation: Migration Playbooks


Scenario 3: Batch Migration

Goal: Migrate multiple VMs in parallel

# batch.yaml
command: local
batch_manifest: migrations.json
batch_parallel: 3
batch_continue_on_error: true
output_dir: /vms/batch
// migrations.json
{
  "migrations": [
    {"vmdk": "/vms/vm1.vmdk", "to_output": "vm1.qcow2"},
    {"vmdk": "/vms/vm2.vmdk", "to_output": "vm2.qcow2"},
    {"vmdk": "/vms/vm3.vmdk", "to_output": "vm3.qcow2"}
  ]
}
hyper2kvm --config batch.yaml

Documentation: Batch Migration Guide


Scenario 4: Kubernetes/OpenShift Deployment

Goal: Deploy as a Kubernetes operator

# Install via Helm
helm install hyper2kvm-operator ./helm/hyper2kvm-operator \
  --namespace hyper2kvm-system \
  --create-namespace

# Create migration job
kubectl apply -f migration-job.yaml
Documentation: OpenShift Quickstart Kubernetes Integration

Quick Reference Cards

πŸ“‹ Reference Materials

Essential Commands

Command Description
hyper2kvm --config <yaml> Execute migration from YAML config (recommended)
hyper2kvm --cmd local Local VMDK/disk migration (alias: migrate)
hyper2kvm --cmd fetch-and-fix Remote ESXi fetch via SSH
hyper2kvm --cmd ova OVA file extraction
hyper2kvm --cmd ovf OVF file extraction
hyper2kvm --cmd vhd VHD file import
hyper2kvm --cmd ami AMI/cloud tarball extraction
hyper2kvm --cmd raw Raw disk image/tarball import
hyper2kvm --cmd live-fix SSH-based live fixing
hyper2kvm --cmd libvirt-xml Parse libvirt XML to manifest
h2kvmctl status Check worker job status
h2kvmctl submit <config> Submit migration job to worker
hyper2kvm --help Show full command reference

Common Workflows

Standard Migration:

1. Create YAML config file
2. Run: hyper2kvm --config migration.yaml
3. Automatic fstab/bootloader fixing
4. Optional: libvirt/QEMU testing
5. Import to libvirt with virsh

Remote Fetch:

1. Configure SSH access to ESXi
2. Create fetch-and-fix YAML config
3. Final switchover (<5s downtime)
4. Validate target
5. Cutover production traffic

Kubernetes Deployment:

1. Install Helm chart or OLM bundle
2. Create MigrationJob CRD
3. Monitor with kubectl/OpenShift console
4. Retrieve converted images
5. Deploy to KubeVirt or export

Support and Resources

Getting Help

Learning Path

Beginner (0-2 hours):

  1. Installation
  2. Quick Start
  3. Beginner Tutorial

Intermediate (2-8 hours):

  1. Intermediate Workflows
  2. Batch Migration
  3. OS-Specific Guides

Advanced (8+ hours):

  1. Advanced Features
  2. VMCraft Complete Guide
  3. API Reference

Enterprise (Full deployment):

  1. Enterprise Tutorial
  2. OpenShift Deployment
  3. Security Best Practices

Version Compatibility

Hyper2KVM Version Python Supported Hypervisors Kubernetes Status
2.1.0+ 3.10+ VMware, Hyper-V, KVM, AWS, Azure, GCP 1.24-1.33 βœ… Current
2.0.0 3.10+ VMware, Hyper-V, KVM, AWS, Azure 1.24-1.30 βœ… Stable
1.x 3.10+ VMware, Hyper-V, KVM N/A βœ… Supported
0.9.x 3.9+ VMware, Hyper-V, KVM N/A πŸ”„ Legacy

Documentation Structure

docs/
β”œβ”€β”€ index.md (this file)          # Main documentation hub
β”œβ”€β”€ QUICK_REFERENCE.md            # One-page command reference ⭐
β”œβ”€β”€ GLOSSARY.md                   # Complete terminology guide ⭐
β”œβ”€β”€ FAQ.md                        # Frequently asked questions ⭐
β”œβ”€β”€ getting-started/              # Installation and first steps (README ⭐)
β”œβ”€β”€ tutorials/                    # Step-by-step learning (README ⭐)
β”œβ”€β”€ recipes/                      # Quick recipes (README ⭐)
β”œβ”€β”€ guides/                       # Task-oriented guides (README ⭐)
β”‚   β”œβ”€β”€ cli/                     # Command-line reference
β”‚   β”œβ”€β”€ migration/               # Migration workflows
β”‚   β”œβ”€β”€ tui/                     # Terminal UI
β”‚   └── configuration/           # Configuration guides
β”œβ”€β”€ features/                     # Feature documentation (README ⭐)
β”‚   └── vmcraft/                 # VMCraft engine
β”œβ”€β”€ os-support/                   # OS-specific guides (README ⭐)
β”‚   └── windows/                 # Windows migration
β”œβ”€β”€ deployment/                   # Deployment guides (README ⭐)
β”‚   β”œβ”€β”€ openshift/               # OpenShift specific
β”‚   └── releases/                # Release notes
β”œβ”€β”€ worker/                       # Worker protocol (README ⭐)
β”œβ”€β”€ test-results/                 # Test reports (README ⭐)
β”œβ”€β”€ reference/                    # API and technical reference (README ⭐)
β”‚   └── api/                     # API documentation
β”œβ”€β”€ development/                  # Development guides
β”œβ”€β”€ project/                      # Project information
β”œβ”€β”€ presentation/                 # Presentation materials
β”œβ”€β”€ api/                          # Legacy API docs
└── marketing/                    # Marketing content

⭐ = New or enhanced in v2.1.0

Contributing

We welcome contributions! See:


License

Hyper2KVM is licensed under LGPL-3.0-or-later. See LICENSE file for details.


Last Updated: February 2026 Documentation Version: 2.1.0