27.1 Concept mapping¶
| vSphere | OpenStack | Harvester |
|---|---|---|
| ESXi host | Nova compute | Harvester node (RKE2 + KubeVirt) |
| vCenter | Horizon + APIs | Harvester UI / Rancher |
| VM | Nova instance | VirtualMachine |
| Template / Content Library | Glance image | VirtualMachineImage, VirtualMachineTemplate |
| vSAN / VMFS datastore | Cinder (Ceph/LVM) | Longhorn / external CSI |
| Port group (VLAN) | Neutron provider network | NetworkAttachmentDefinition (VLAN) |
| vDS uplinks | provider bridge mappings | ClusterNetwork + VlanConfig |
| NSX segments | Neutron tenant networks (VXLAN/Geneve) | Kube-OVN VPCs/subnets |
| NSX edge / Octavia | Octavia LB | Harvester LB / guest LBs |
| Floating IP | Floating IP | VPC NAT gateway / EIP (v1.9) |
| vMotion | Live migration | Live migration |
| HA (restart) | Instance HA (Masakari) | vm-force-reset-policy restart |
| DRS | — | Descheduler add-on |
| Resource pools / folders | Projects + quotas | Rancher Projects + ResourceQuotas |
| Snapshots | Cinder/Nova snapshots | VM/volume snapshots |
| VADP backup (Veeam etc.) | Freezer / vendor | VM backups to S3/NFS (+ partner tools via CSI snapshots) |
| Host maintenance mode | nova host-evacuate-live |
Maintenance mode |
| Heat | Heat | Terraform / Fleet / Argo |
27.2 vm-import-controller¶
Enable the add-on, then:
apiVersion: v1
kind: Secret
metadata:
name: vcsim-creds
namespace: default
stringData:
username: "[email protected]"
password: "..."
---
apiVersion: migration.harvesterhci.io/v1beta1
kind: VmwareSource
metadata:
name: vcenter-prod
namespace: default
spec:
endpoint: "https://vcenter.example.net/sdk"
dc: "DC1"
credentials:
name: vcsim-creds
namespace: default
---
apiVersion: migration.harvesterhci.io/v1beta1
kind: VirtualMachineImport
metadata:
name: app01
namespace: default
spec:
virtualMachineName: "app01"
networkMapping:
- sourceNetwork: "VM Network"
destinationNetwork: "default/vlan100-servers"
sourceCluster:
name: vcenter-prod
namespace: default
kind: VmwareSource
apiVersion: migration.harvesterhci.io/v1beta1
An OpenstackSource works the same way with Keystone credentials (project, domain, region). The controller exports disks, converts them to raw images, and creates the Harvester VM.
27.3 Migration checklist¶
- [ ] Install VirtIO drivers in Windows guests before migration (or use the conversion flow that injects them; otherwise the VM won't find its boot disk).
- [ ] Linux guests: ensure
virtio_blk/virtio_scsi/virtio_netare in the initramfs (dracut -f --add-drivers ...on RHEL-likes). - [ ] Remove VMware Tools; install
qemu-guest-agent. - [ ] Interface names change (
ens192→enp1s0): fix netplan/NetworkManager configs, or use cloud-init network data. - [ ] Map VLANs 1:1 so IPs can be retained.
- [ ] Plan for thin→raw expansion during conversion (temporary capacity).
- [ ] Migrate in waves: test/dev → stateless → stateful → critical.
- [ ] Re-establish backups on the new platform before decommissioning the old.
Coming from OpenStack operations, Harvester will feel familiar but much smaller: there's no RabbitMQ, no galera, no Keystone/Neutron agent sprawl — the Kubernetes control plane replaces most of it. The trade-off is less mature multi-tenant SDN (improving fast with Kube-OVN) and a scale ceiling per cluster that's lower than a large OpenStack region; the answer is many Harvester clusters managed by Rancher.
← Troubleshooting playbook · Index · Reference architectures →