Skip to content

v2v: VMware-to-Cockpit (VM Migration Tools)

v2v adalah utilitas yang dirancang untuk memigrasikan virtual machine dari VMware vCenter/ESXi secara langsung ke virtual machine Libvirt yang persisten pada host lokal (virtualisasi platform Vapor) menggunakan virt-v2v.

Tool ini secara otomatis menginstal seluruh paket yang dibutuhkan untuk proses migrasi (termasuk virt-v2v, libguestfs, qemu-utils, dan image kernel kompatibel) di dalam Docker container yang bersifat mandiri.

Proses migrasi VM dilakukan melalui Vapor. Setelah migrasi berhasil, VM akan muncul di Cockpit dan dapat dikelola melalui Cockpit.

Pre-flight Requirements

Anda perlu menginstal Docker untuk menjalankan proses migrasi.

Agar proses migrasi dapat berjalan dengan baik, host system dan Docker container memerlukan:

  1. Privileged Mode: Diperlukan untuk mengakses virtualisasi host, akselerasi perangkat keras /dev/kvm, dan system socket.
  2. Libvirt Socket Access: Mount /var/run/libvirt ke dalam container.
  3. Storage Pool Access: Mount folder storage pool (seperti /var/lib/libvirt/images atau /home/awanio/data/virtualcompute).
  4. KVM Device Mount: Akses ke /dev/kvm untuk virtualisasi appliance guestfs yang lebih cepat.

Running Migration via Vapor terminal

Proses 1 dan 2 di bawah ini hanya dilakukan satu kali untuk menginstal Docker container. Jika Docker container sudah tersedia, Anda hanya perlu menjalankan proses 3.

1. Download Image

Untuk mengunduh image:

bash
docker run --rm r.awan.app/library/tools/v2v:v1.0.4 bootstrap > v2v-install.sh

2. Install/run the image as a container

bash
sudo sh v2v-install.sh

3. Migrate VM

A. Execute via Vapor terminal

Anda dapat menjalankan tool migrasi secara Interaktif (disarankan) atau menggunakan CLI Arguments.

Interactively

Mode ini akan meminta Anda memasukkan pengaturan koneksi dan konfigurasi target, melakukan validasi input secara dinamis, serta menampilkan daftar koneksi yang telah disimpan.

bash
sudo docker exec -it v2v migrate-v2v -i

Walkthrough:

  1. Credentials Selection: Jika terdapat kredensial yang telah disimpan, pilih salah satu koneksi atau masukkan kredensial baru.
  2. Connection Type: Pilih vpx (vCenter/vSphere) atau ssh (ESXi langsung).
  3. VMware Details: Masukkan Host/IP, Username, Password, serta informasi koneksi sesuai jenis koneksi:
    • Untuk vpx: Path Datacenter (misalnya /Datacenter/Cluster/Host) dan opsi untuk melewati verifikasi sertifikat SSL.
    • Untuk ssh: Path file guest .vmx pada ESXi.
  4. Credentials Storage: Pilih apakah kredensial akan disimpan ke credentials.json (disimpan dengan permission terbatas 0600).
  5. Source VM: Nama VM yang akan dimigrasikan.
  6. Target Config: Nama VM tujuan di Vapor, Target Storage Pool, serta konfigurasi antarmuka jaringan (mapping Network atau Bridge).
  7. Execution: Menampilkan proses konversi virt-v2v secara real-time melalui console.
Standard CLI Mode

Anda juga dapat menjalankan tool secara non-interaktif dengan menentukan parameter melalui command-line.

bash
# vCenter Example:
sudo docker exec -it v2v migrate-v2v \
  --type vpx \
  --host vcenter.example.com \
  --username administrator@vsphere.local \
  --datacenter-path /Datacenter/Cluster/Host \
  --source-vm my-vcenter-vm \
  --target-name my-vapor-vm \
  --storage-pool virtualcompute \
  --network-name default

# Direct ESXi/VMX Example:
sudo docker exec -it v2v migrate-v2v \
  --type ssh \
  --host esxi.example.com \
  --username root \
  --vmx-path /vmfs/volumes/datastore1/my-vm/my-vm.vmx \
  --source-vm my-vm \
  --target-name my-vapor-vm \
  --storage-pool default

CLI Options:

  • --interactive, -i: Menjalankan mode interaktif.
  • --type: Jenis koneksi (vpx atau ssh).
  • --host: Host VMware atau alamat IP.
  • --username: Username koneksi VMware.
  • --password: Password VMware (jika tidak diisi, sistem akan memintanya secara aman).
  • --datacenter-path: Path Datacenter pada vCenter.
  • --vmx-path: Path file guest .vmx pada ESXi.
  • --source-vm: Nama VM sumber.
  • --target-name: Nama VM hasil migrasi pada Vapor.
  • --storage-pool: Target storage pool (default: default).
  • --network-type: Mode jaringan tujuan (network atau bridge, default: network).
  • --network-name: Nama target network/bridge (default: default).

B. Execute Migration from container terminal

Setelah status container menjadi running:

  1. Klik menu aksi pada container, kemudian pilih Terminal.

  2. Terminal container akan terbuka. Sebuah banner akan menampilkan perintah migrasi:

    bash
    migrate-v2v -i
  3. Jalankan migrate-v2v -i di dalam terminal untuk memulai wizard interaktif, atau jalankan langsung menggunakan parameter CLI yang diperlukan.