Panduan Pengguna Condensa
Pendahuluan
Condensa adalah alat migrasi VM yang kuat yang dirancang untuk memfasilitasi migrasi mesin virtual dari berbagai platform (VMware, Nutanix, Sangfor, Windows Server) ke platform cloud Awanio. Mendukung beberapa metode migrasi termasuk migrasi panas (VM berjalan), migrasi dingin, dan migrasi berbasis file menggunakan format OVA dan VHD/VHDX.
- Migrasi Panas: Migrasi VM yang sedang berjalan dengan downtime minimal (khusus VMware)
- Dukungan Multi-Provider: VMware vSphere, file OVA, file VHD/VHDX
- Changed Block Tracking (CBT): Transfer data inkremental yang efisien untuk VMware
- UI Berbasis Web: Antarmuka yang mudah digunakan untuk mengelola migrasi
- Pelacakan Progress Real-time: Pantau status dan progress migrasi
Instalasi
Sebelum menginstal Condensa, pastikan Anda memiliki:
-
Awanio Dashboard
-
Helm (v3.0 atau lebih tinggi)
# Instal Helm jika belum terinstal curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
-
Storage Class yang dikonfigurasi di kluster Kubernetes Anda
-
Akses API Awanio
- URL endpoint API (contoh:
https://api.awanio.com/v2
) - Kredensial yang valid untuk autentikasi
- URL endpoint API (contoh:
-
Tambahkan repository Helm Condensa:
helm repo add condensa https://storage.awan.io/assets/charts helm repo update
-
Buat file values (
condensa-values.yaml
):# WAJIB: URL Publik untuk Condensa (harus dapat diakses oleh CDI untuk impor data) publicUrl: "http://condensa.example.com:8080" # WAJIB: Konfigurasi API Awanio awanio: apiEndpoint: "https://api.awanio.com/v2" username: "username-anda" password: "password-anda" # Konfigurasi image image: repository: registry.awan.io/images/condensa tag: latest pullPolicy: IfNotPresent # Konfigurasi service service: type: LoadBalancer # atau NodePort, ClusterIP port: 8080 # Konfigurasi penyimpanan persistence: enabled: true storageClass: "standard" # Storage class Anda size: 100Gi # Penyimpanan untuk file OVA/VHD yang diunggah # Batas resource resources: requests: memory: "512Mi" cpu: "500m" limits: memory: "2Gi" cpu: "2000m" # Konfigurasi direktori upload uploadDir: "/data/uploads" # Namespace untuk migrasi VM migrationNamespace: "vm-migrations"
-
Instal Condensa:
# Buat namespace kubectl create namespace condensa # Instal dengan values kustom helm install condensa condensa/condensa \ --namespace condensa \ --values condensa-values.yaml
-
Verifikasi instalasi:
# Cek status pod kubectl get pods -n condensa # Cek service kubectl get svc -n condensa # Dapatkan IP/URL eksternal kubectl get svc condensa -n condensa -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
-
Akses UI Web:
Buka browser Anda dan navigasi ke URL Condensa:
http://<ip-eksternal>:8080
Parameter | Deskripsi | Default | Wajib |
---|---|---|---|
publicUrl | URL publik yang dapat diakses oleh CDI | - | Ya |
awanio.apiEndpoint | Endpoint API Awanio | - | Ya |
awanio.username | Username Awanio | - | Ya |
awanio.password | Password Awanio | - | Ya |
persistence.enabled | Aktifkan penyimpanan persisten | true | Tidak |
persistence.size | Ukuran penyimpanan untuk upload | 100Gi | Tidak |
service.type | Tipe service | LoadBalancer | Tidak |
uploadDir | Direktori untuk upload file | /data/uploads | Tidak |
Persiapan VM Sumber
Persiapan VM sumber yang tepat sangat penting untuk keberhasilan migrasi. Persyaratan berbeda berdasarkan jenis provider.
Untuk lingkungan VMware vSphere, terutama untuk migrasi panas (migrasi VM yang sedang berjalan):
- VMware vSphere 6.0 atau lebih tinggi
- Versi hardware VM 8 atau lebih tinggi
- Akses administrator ke vCenter
- Thumbprint, sebuah SSL (SHA1) fingerprint dari remote VMware server yang dibutuhkan untuk melakukan koneksi remote.
Berikut cara mendapatkan nilai thumbprint dari SERVER-NAME:
openssl s_client -connect SERVER-NAME:443 </dev/null |
openssl x509 -in /dev/stdin -fingerprint -sha1 -noout
Penting: CBT harus diaktifkan SEBELUM membuat snapshot untuk migrasi.
-
Hubungkan ke vCenter menggunakan vSphere Client
-
Matikan VM (jika sedang berjalan):
Klik kanan VM → Power → Shut Down Guest OS
-
Aktifkan CBT:
- Klik kanan VM → Edit Settings
- Klik tab “VM Options”
- Expand “Advanced”
- Klik “Edit Configuration”
- Tambahkan parameter berikut:
ctkEnabled = true
- Klik OK untuk menyimpan
-
Nyalakan VM:
Klik kanan VM → Power → Power On
-
Buat snapshot (WAJIB setelah mengaktifkan CBT):
Klik kanan VM → Snapshots → Take Snapshot Nama: "Snapshot Pra-Migrasi" Deskripsi: "Snapshot untuk migrasi Condensa dengan CBT aktif"
⚠️ Penting: Snapshot HARUS dibuat SETELAH mengaktifkan CBT. Snapshot yang dibuat sebelum CBT diaktifkan akan menyebabkan kegagalan migrasi.
-
Verifikasi CBT aktif:
- Periksa file .vmdk VM
- Anda harus melihat file
-ctk.vmdk
untuk setiap disk
- Pastikan VM Tools terinstal dan terbaru
- Bersihkan snapshot yang tidak perlu sebelum migrasi
- Verifikasi konektivitas jaringan antara Condensa dan vCenter
- Untuk VM besar, pertimbangkan penjadwalan migrasi selama jendela pemeliharaan
Untuk migrasi VM dari Nutanix AHV:
-
Akses Nutanix Prism:
https://<nutanix-cluster-ip>:9440
-
Persiapan VM:
- Matikan VM dengan benar
- Hapus snapshot yang tidak perlu
- Catat spesifikasi VM (CPU, Memory, Disk)
-
Ekspor sebagai OVA:
a. Menggunakan Nutanix Move (Direkomendasikan):
- Instal Nutanix Move di mesin Windows/Linux
- Konfigurasi sumber sebagai Nutanix AHV
- Pilih VM untuk diekspor
- Pilih opsi “Export to OVA”
- Simpan ke direktori lokal
b. Menggunakan acli (Nutanix CLI):
# SSH ke Nutanix CVM ssh nutanix@<cvm-ip> # List VM acli vm.list # Ekspor VM acli vm.export <nama-vm> format=ova path=/tmp/<nama-vm>.ova # Unduh file OVA scp nutanix@<cvm-ip>:/tmp/<nama-vm>.ova .
-
Verifikasi file OVA:
# Periksa konten OVA tar -tvf <nama-vm>.ova # Harus berisi: # - file .ovf (Deskriptor VM) # - file .vmdk (Disk virtual) # - file .mf (Manifest)
Untuk migrasi VM dari Sangfor HCI:
-
Akses Konsol Sangfor HCI:
https://<sangfor-hci-ip>
-
Persiapan VM:
- Hentikan VM dari konsol Sangfor
- Hapus snapshot jika ada
- Dokumentasikan konfigurasi VM
-
Proses Ekspor:
a. Navigasi ke bagian Virtual Machines
b. Pilih VM target
c. Klik More Actions → Export
d. Pilih format ekspor:
- Pilih format “OVA”
- Sertakan semua disk
- Sertakan konfigurasi VM
e. Mulai ekspor:
Lokasi Ekspor: Komputer Lokal atau Network Share Format: OVA 1.0 Kompresi: Tidak ada (untuk kompatibilitas lebih baik)
f. Unduh file OVA yang diekspor
-
Verifikasi Pasca-Ekspor:
# Verifikasi integritas OVA sha256sum <nama-vm>.ova # Ekstrak dan periksa deskriptor OVF tar -xf <nama-vm>.ova *.ovf cat *.ovf # Tinjau spesifikasi VM
Untuk migrasi VM dari Hyper-V di Windows Server:
-
Buka Hyper-V Manager:
# Jalankan sebagai Administrator virtmgmt.msc
-
Persiapan VM:
# Hentikan VM Stop-VM -Name "NamaVM" # Hapus checkpoint (snapshot) Get-VMSnapshot -VMName "NamaVM" | Remove-VMSnapshot
-
Ekspor VM:
Metode 1: Menggunakan GUI Hyper-V Manager
- Klik kanan VM → Export
- Pilih lokasi ekspor
- Tunggu ekspor selesai
Metode 2: Menggunakan PowerShell
# Ekspor seluruh VM Export-VM -Name "NamaVM" -Path "C:\VMExports" # Atau ekspor hanya VHD/VHDX $vm = Get-VM -Name "NamaVM" $vhd = Get-VMHardDiskDrive -VM $vm Copy-Item $vhd.Path -Destination "C:\VMExports\NamaVM.vhdx"
-
Konversi VHDX ke VHD jika diperlukan (untuk kompatibilitas):
Convert-VHD -Path "C:\VMExports\NamaVM.vhdx" ` -DestinationPath "C:\VMExports\NamaVM.vhd" ` -VHDType Dynamic
-
Siapkan file metadata (buat
vm-info.json
):{ "name": "NamaVM", "os_family": "windows", "os_version": "Windows Server 2019", "cpu": 4, "memory_mb": 8192, "disk_size_gb": 100, "architecture": "x86_64" }
# Hubungkan ke cluster
Enter-PSSession -ComputerName <cluster-node>
# Ekspor VM
Export-VM -Name "NamaVM" -Path "\\share\exports"
# Atau gunakan Windows Admin Center untuk ekspor GUI
Pengaturan Provider
Provider adalah platform sumber tempat VM akan dimigrasi. Setiap jenis provider memerlukan konfigurasi spesifik.
-
Login ke UI Web Condensa
-
Navigasi ke Providers:
- Klik “Providers” di menu utama
- Klik tombol “Add Provider”
-
Konfigurasi Provider VMware:
Tipe Provider: VMware vSphere Nama: vcenter-prod Deskripsi: Server vCenter Produksi Detail Koneksi: - URL vCenter: https://vcenter.example.com - Username: administrator@vsphere.local - Password: ******** - Izinkan Tidak Aman: Tidak (jangan centang untuk produksi) Pengaturan Lanjutan: - Port: 443 - Datacenter: Datacenter-01 (opsional, untuk filtering) - Transfer Bersamaan: 4
-
Tes Koneksi:
- Klik “Test Connection”
- Verifikasi koneksi berhasil
- Tinjau resource yang ditemukan
-
Simpan Provider:
- Klik “Save”
- Provider harus menunjukkan status “Connected”
Provider OVA menangani migrasi berbasis file menggunakan file OVA.
-
Navigasi ke Providers → Add Provider
-
Konfigurasi Provider OVA:
Tipe Provider: OVA Nama: ova-imports Deskripsi: Impor File OVA Pengaturan: - Direktori Upload: /data/uploads/ova - Ukuran File Maksimal: 500GB - Format yang Didukung: .ova, .ovf
-
Upload File OVA:
Opsi 1: Upload UI Web
- Klik tombol “Upload OVA”
- Pilih file OVA dari sistem lokal
- Tambahkan metadata VM:
Nama VM: imported-vm-01 Tipe OS: Ubuntu Linux 20.04 CPU: 4 Memory: 8192 MB
- Klik “Upload”
Opsi 2: Upload CLI (untuk file besar)
# Salin ke pod Condensa kubectl cp vm-besar.ova condensa/condensa-pod:/data/uploads/ova/ # Atau gunakan curl curl -X POST http://condensa.example.com:8080/api/v1/ova/upload \ -H "Authorization: Bearer <token>" \ -F "file=@vm-besar.ova" \ -F "metadata=@vm-info.json"
-
Verifikasi Upload:
- Periksa bagian “OVA Uploads”
- Verifikasi integritas file
- Tinjau spesifikasi VM yang diekstrak
Provider VHD menangani migrasi dari ekspor Hyper-V.
-
Navigasi ke Providers → Add Provider
-
Konfigurasi Provider VHD:
Tipe Provider: VHD Nama: hyperv-imports Deskripsi: Impor VHD Hyper-V Pengaturan: - Direktori Upload: /data/uploads/vhd - Format yang Didukung: .vhd, .vhdx, .avhdx - Konversi Otomatis VHDX: Ya
-
Upload File VHD:
Langkah 1: Upload VHD/VHDX
# UI Web untuk file kecil (<10GB) Navigasi ke "VHD Uploads" → "Upload VHD" # Untuk file besar, gunakan upload resumable curl -X POST http://condensa.example.com:8080/api/v1/vhd/uploads \ -H "Content-Type: application/json" \ -d '{ "filename": "windows-server.vhdx", "vm_name": "WinServer2019", "os_family": "windows", "os_version": "Windows Server 2019", "num_cpu": 4, "memory_mb": 16384, "disk_size_gb": 200, "architecture": "x86_64" }'
Langkah 2: Gunakan Protokol TUS untuk upload file besar
# Instal klien tus npm install -g tus-js-client # Upload menggunakan protokol resumable tus-upload windows-server.vhdx \ --endpoint http://condensa.example.com:8080/api/v1/tus \ --metadata filename=d2luZG93cy1zZXJ2ZXIudmhkeA==,vm_id=<vm-uuid>
-
Verifikasi Upload VHD:
- Periksa status pemrosesan
- Verifikasi kompatibilitas format disk
- Tinjau spesifikasi VM
Membuat dan Menjalankan Migrasi
Setelah provider dikonfigurasi dan VM sumber disiapkan, Anda dapat membuat dan menjalankan migrasi.
-
Navigasi ke Migrations → Create Migration
-
Konfigurasi Dasar:
Nama Migrasi: prod-ke-awanio-batch1 Deskripsi: Migrasi VM produksi batch 1 Provider Sumber: vcenter-prod (atau ova-imports, hyperv-imports) Namespace Target: vm-migrations Organisasi: Organisasi Saya
-
Pilih VM:
Untuk Provider VMware:
- Browse VM yang tersedia
- Gunakan filter:
- Datacenter
- Folder
- Status Power
- Tipe OS
- Pilih VM untuk dimigrasi
- Tinjau detail VM (CPU, Memory, Disk)
Untuk Provider OVA:
- Pilih dari file OVA yang diunggah
- Verifikasi status “Ready”
- Tinjau spesifikasi yang diekstrak
Untuk Provider VHD:
- Pilih dari file VHD yang diunggah
- Verifikasi status “Processed”
- Konfirmasi kompatibilitas OS
-
Pengaturan Migrasi:
Tipe Migrasi: - Migrasi Panas (khusus VMware, VM tetap berjalan) - Migrasi Dingin (VM dimatikan terlebih dahulu) Pemetaan Jaringan: - Jaringan Sumber: VM Network → Jaringan Target: default - Jaringan Sumber: Management → Jaringan Target: mgmt-net Pengaturan Penyimpanan: - Storage Class: fast-ssd - Mode Volume: Filesystem - Mode Akses: ReadWriteOnce Opsi Lanjutan: - Pertahankan Alamat MAC: Ya - Mulai VM setelah Migrasi: Tidak - Hapus Sumber setelah Berhasil: Tidak
-
Tinjau dan Buat:
- Tinjau ringkasan migrasi
- Verifikasi kebutuhan resource
- Klik “Create Migration”
-
Lihat Detail Migrasi:
Migrations → Pilih Migrasi → View Details
-
Pemeriksaan Pra-penerbangan:
- Verifikasi konektivitas sumber
- Periksa namespace target ada
- Validasi ketersediaan penyimpanan
- Tinjau pemetaan jaringan
-
Mulai Migrasi:
Opsi 1: UI Web
- Klik tombol “Start Migration”
- Konfirmasi aksi di dialog
Opsi 2: CLI
curl -X POST http://condensa.example.com:8080/api/v1/migrations/<id>/start \ -H "Authorization: Bearer <token>"
-
Fase Migrasi:
Fase 1: Persiapan
- Buat namespace target
- Siapkan DataVolume
- Inisialisasi job transfer
Fase 2: Transfer Data
- Untuk VMware: Transfer VDDK dengan CBT
- Untuk OVA/VHD: Impor HTTP via CDI
- Progress ditampilkan real-time
Fase 3: Konversi
- Konversi disk ke QCOW2
- Terapkan optimasi OS
- Konfigurasi driver
Fase 4: Pembuatan VM
- Buat VirtualMachine CR
- Konfigurasi jaringan
- Terapkan batas resource
Fase 5: Verifikasi
- Verifikasi pembuatan VM
- Periksa attachment disk
- Validasi konfigurasi
-
Progress Real-time:
- Lihat persentase progress keseluruhan
- Pantau status VM individual
- Periksa kecepatan transfer data
- Lihat log real-time
-
Indikator Progress:
Progress Keseluruhan: 45% Status VM: - vm-web-01: ✓ Selesai (100%) - vm-app-01: ⟳ Mentransfer (67%) - vm-db-01: ⏸ Antrian
-
Melihat Log:
# Lihat log migrasi kubectl logs -n condensa condensa-pod -f # Lihat transfer VM spesifik kubectl get datavolume -n vm-migrations vm-web-01-disk-0 -o yaml
-
Notifikasi:
- Alert email saat selesai
- Notifikasi webhook
- Integrasi Slack (jika dikonfigurasi)
Pemecahan Masalah
Masalah: Error “CBT not enabled”
Solusi:
1. Aktifkan CBT di VM sumber
2. Buat snapshot baru SETELAH mengaktifkan CBT
3. Coba migrasi lagi
Masalah: “Cannot connect to vCenter”
Solusi:
1. Verifikasi konektivitas jaringan
2. Periksa aturan firewall (port 443)
3. Verifikasi kredensial
4. Coba dengan "Allow Insecure" jika menggunakan sertifikat self-signed
Masalah: “Snapshot not found”
Solusi:
1. Buat snapshot di VM sumber
2. Tunggu snapshot terkonsolidasi
3. Refresh koneksi provider
Masalah: “Invalid OVF descriptor”
Solusi:
1. Verifikasi integritas file OVA:
tar -tvf vm.ova
2. Ekstrak dan validasi OVF:
tar -xf vm.ova *.ovf
xmllint --noout *.ovf
3. Ekspor ulang dari sumber jika rusak
Masalah: “Unsupported disk format”
Solusi:
1. Konversi disk ke format yang didukung:
qemu-img convert -f vmdk -O qcow2 disk.vmdk disk.qcow2
2. Paket ulang OVA dengan disk yang dikonversi
Masalah: “VHD file corrupted”
Solusi:
1. Verifikasi checksum file
2. Ekspor ulang dari Hyper-V
3. Coba konversi VHDX ke VHD:
Convert-VHD -Path source.vhdx -DestinationPath dest.vhd
Masalah: “Metadata missing”
Solusi:
1. Buat vm-info.json dengan field yang diperlukan
2. Upload metadata bersama VHD
3. Atau update via API setelah upload
Masalah: DataVolume dalam status “Pending”
# Periksa status DataVolume
kubectl describe datavolume -n vm-migrations <nama-dv>
# Solusi umum:
1. Periksa status bound PVC
2. Verifikasi storage class ada
3. Periksa kapasitas penyimpanan tersedia
4. Tinjau log pod CDI:
kubectl logs -n cdi deployment/cdi-deployment
Kecepatan Transfer Lambat
Solusi:
1. Aktifkan transfer paralel (VMware)
2. Tingkatkan batas resource CDI
3. Gunakan storage class lebih cepat
4. Periksa bandwidth jaringan
5. Jadwalkan selama jam non-sibuk
# Periksa log Condensa
kubectl logs -n condensa deployment/condensa -f
# Periksa status migrasi
curl http://condensa.example.com:8080/api/v1/migrations/<id>/status
# Periksa progress DataVolume
kubectl get datavolume -n vm-migrations -w
# Periksa pod importer CDI
kubectl get pods -n vm-migrations | grep importer
# Lihat log importer
kubectl logs -n vm-migrations <nama-pod-importer>
# Periksa event
kubectl get events -n vm-migrations --sort-by='.lastTimestamp'
Praktik Terbaik
-
Perencanaan Kapasitas:
- Verifikasi penyimpanan cukup di kluster target
- Rencanakan 2x ruang disk selama konversi
- Pertimbangkan kebutuhan bandwidth jaringan
-
Persiapan VM:
- Update tools/driver VM
- Bersihkan file yang tidak perlu
- Konsolidasi snapshot
- Dokumentasikan dependensi VM
-
Pengujian:
- Tes dengan VM non-kritis terlebih dahulu
- Verifikasi proses migrasi end-to-end
- Dokumentasikan prosedur pemulihan
-
Pemrosesan Batch:
- Migrasi VM dalam grup logis
- Mulai dengan beban kerja kurang kritis
- Pantau utilisasi resource
-
Pertimbangan Jaringan:
- Gunakan jaringan migrasi khusus jika memungkinkan
- Konfigurasi batas bandwidth yang sesuai
- Rencanakan jendela pemeliharaan jaringan
-
Pemantauan:
- Perhatikan kecepatan transfer
- Pantau beban sistem sumber
- Periksa resource kluster target
-
Verifikasi:
- Verifikasi fungsionalitas VM
- Tes konektivitas aplikasi
- Validasi metrik performa
-
Pembersihan:
- Hapus DataVolume migrasi yang berhasil
- Bersihkan snapshot sumber
- Arsipkan log migrasi
-
Dokumentasi:
- Dokumentasikan masalah migrasi
- Update runbook
- Catat metrik performa
-
Kredensial:
- Gunakan service account untuk provider
- Rotasi kredensial secara berkala
- Implementasikan kebijakan RBAC
-
Keamanan Jaringan:
- Gunakan TLS untuk semua koneksi
- Implementasikan network policy
- Batasi akses ke Condensa
-
Perlindungan Data:
- Enkripsi data saat transit
- Amankan direktori upload
- Implementasikan kebijakan retensi
Lampiran
Platform Sumber | Tipe Migrasi | Persyaratan |
---|---|---|
VMware vSphere 6.0+ | Panas/Dingin | CBT, Snapshot |
Nutanix AHV | Ekspor OVA | OVA 1.0/2.0 |
Sangfor HCI | Ekspor OVA | OVA 1.0 |
Hyper-V 2012+ | Ekspor VHD | VHD/VHDX |
Azure Stack HCI | Ekspor VHD | VHD/VHDX |
Endpoint API utama untuk otomasi:
# Manajemen Provider
GET /api/v1/providers
POST /api/v1/providers
DELETE /api/v1/providers/{id}
# Manajemen Migrasi
GET /api/v1/migrations
POST /api/v1/migrations
POST /api/v1/migrations/{id}/start
POST /api/v1/migrations/{id}/cancel
GET /api/v1/migrations/{id}/status
# Manajemen Upload
POST /api/v1/ova/upload
POST /api/v1/vhd/uploads
GET /api/v1/uploads/status
Konfigurasi Condensa menggunakan variabel lingkungan:
CONDENSA_PUBLIC_URL=http://condensa.example.com:8080
CONDENSA_UPLOAD_DIR=/data/uploads
AWANIO_API=https://api.awanio.com/v2
DB_PATH=/data/condensa.db
PORT=8080
- Dokumentasi: https://gitlab.com/awan.io/condensa
- Pelacak Masalah: https://gitlab.com/awan.io/condensa/issues
- Dukungan Komunitas: support@awan.io
- Dukungan Enterprise: Tersedia dengan langganan Awanio
Terakhir Diperbarui: 2025 Versi: 0.1.0