Skip to content

Catatan Rilis Vapor ​

Log ini melacak pembaruan, fitur baru, dan perbaikan bug untuk agen host Vapor.


Versi 3.3.2 (Oktober 2026) ​

Rilis ini menutup celah keamanan pada login dengan SSH key yang ada di semua versi sebelumnya, jadi upgrade setiap host. Rilis ini juga kembali menerima upload VDI dan VHDX, memungkinkan host dengan kernel lama me-reset identitas clone dari VM yang sedang berjalan, dan mencegah clone yang lama berjalan gagal di akhir.

Keamanan: ​

  • Login dengan SSH key menerima key yang tidak diizinkan oleh user. Di Vapor 3.3.1 dan semua versi sebelumnya, login dengan SSH key (POST /api/v1/auth/challenge, lalu POST /api/v1/auth/challenge/verify) memeriksa tanda tangan terhadap public key yang dikirim bersama request, tetapi tidak memeriksa apakah key itu termasuk authorized key milik user (~/.ssh/authorized_keys). Akibatnya, siapa pun yang bisa menjangkau API Vapor dapat login sebagai user mana pun di host, termasuk root. Vapor 3.3.2 hanya menerima key yang diizinkan oleh user. Upgrade setiap host ke 3.3.2; sampai saat itu, batasi akses ke API Vapor hanya dari jaringan tepercaya.

Perbaikan: ​

  • Image VDI dan VHDX bisa di-upload lagi. Vapor 3.3.1 menolaknya, padahal aksi Convert di storage browser menawarkan keduanya sebagai format sumber. Upload dan konversi seperti sebelumnya.
  • Clone dari VM yang sedang berjalan di host dengan kernel lebih lama dari 5.15. Di Ubuntu 20.04 (kernel 5.4), identitas clone dari VM yang sedang berjalan dengan guest modern seperti Debian 13 tidak bisa di-reset (alasan unmountable), dan clone biasanya menyala tanpa jaringan. Clone dari VM yang mati tidak terdampak. Instalasi baru di Ubuntu 20.04 kini memberi libguestfs appliance milik Vapor kernel 5.15 tanpa mengubah kernel host. Di host yang di-upgrade di tempat, siapkan secara manual: lihat Virtual Machines.
  • Clone yang lama berjalan tidak lagi gagal di akhir. Vapor memperbarui koneksi libvirt-nya setiap 30 menit (sejak 3.0.0). Clone atau deploy dari template yang masih menyalin disk atau me-reset identitas guest saat itu terjadi bisa gagal setelah penyalinan, ketika VM sedang dibuat. Vapor 3.3.2 mempertahankan koneksinya sampai VM selesai dibuat.

Versi 3.3.1 (September 2026) ​

Clone tidak lagi membawa identitas sumbernya. Clone VM atau deploy VM dari template kini bisa memberi salinannya machine ID, SSH host key, dan hostname sendiri, sehingga ia mendapat alamat DHCP sendiri, dan clone dari VM cloud-image menyala dengan jaringannya. Rilis ini juga memperbaiki regresi 3.3.0 yang membuat clone tanpa channel QEMU guest agent, dan membuat snapshot VM UEFI bisa dihapus tanpa membuat VM tidak bisa dinyalakan.

Fitur Baru: ​

  • Guest identity saat clone atau deploy dari template: Clone dan deploy dari template kini menanyakan bagaimana salinannya diperlakukan. Reset guest identity (recommended) memberinya machine ID baru, SSH host key baru, konfigurasi jaringan yang terikat pada MAC address-nya sendiri, tanpa DHCP lease, random seed baru, dan hostname sendiri. Keep an exact copy membuatnya identik dengan sumbernya, untuk uji restore atau software yang lisensinya terikat pada machine ID. Selama ini setiap clone adalah salinan persis: ia menerima alamat DHCP milik sumbernya, dan clone dari VM cloud-image boot tanpa jaringan karena konfigurasinya masih menyebut network card milik sumber. Reset dikerjakan pada disk hasil salinan sebelum clone didefinisikan; jika gagal, clone-nya gagal dan tidak ada yang tertinggal. Guest Windows, disk terenkripsi, dan guest yang tidak bisa di-mount oleh host terdeteksi sebelum apa pun disalin — clone guest seperti itu dengan Keep an exact copy. Alamat IP statis dipertahankan, dengan peringatan, dan clone dibuat dengan autostart mati agar Anda bisa mengganti alamatnya sebelum kedua VM berjalan di satu jaringan. Klien API mengirim guest_identity (reset, auto, atau keep). Lihat Virtual Machines.
  • Syarat host untuk reset: Reset memakai libguestfs tools. Instalasi baru sudah mendapatkannya. Di host yang di-upgrade di tempat, pasang sebelum melakukan clone; sampai saat itu host hanya menawarkan salinan persis:
    • Debian 12 ke atas, Ubuntu 22.04 ke atas: apt-get install guestfish libguestfs-xfs
    • Debian 11, Ubuntu 20.04: apt-get install libguestfs-tools libguestfs-xfs
    • RHEL 9 dan turunannya: dnf install libguestfs libguestfs-xfs
    • RHEL 8 dan turunannya: dnf install libguestfs-tools-c libguestfs-xfs

Peningkatan: ​

  • Disk VM yang baru dibuat memakai cache mode none dan I/O mode threads secara default, kecuali request menentukan lain. VM yang sudah ada tidak diubah.
  • Penghapusan snapshot yang memerlukan VM dalam keadaan mati mengatakannya dengan jelas — di dialog hapus dan sebagai 409 SNAPSHOT_REQUIRES_SHUTDOWN di API — alih-alih kegagalan generik.
  • File yang sudah ada di pool bisa dinilai dengan aturan yang sama seperti upload: GET /api/v1/virtualization/storages/pools/{name}/volumes/{vol_name}?inspect=true melaporkan apakah file itu self-contained, dan jika tidak, alasannya — sebelum file itu ditawarkan sebagai image.

Keamanan: ​

  • Image yang di-upload atau diunduh harus berformat yang dipakai untuk menyimpan volume — qcow2, raw (ISO terhitung raw), atau VMDK — dan VMDK harus berupa satu file. Descriptor VMDK mencantumkan file-file tempat datanya berada, dan path mana pun di host bisa dipakai, sehingga sebuah descriptor, termasuk descriptor dengan file -flat terpisah, kini ditolak. Upload VMDK monolithic atau stream-optimized, atau konversi dulu disk-nya, misalnya qemu-img convert -O qcow2 in.vmdk out.qcow2. Image QED dan VHD juga ditolak; konversi dulu ke qcow2. VDI dan VHDX seharusnya diterima — lihat Masalah yang Diketahui.

Perbaikan: ​

  • Clone kembali punya channel QEMU guest agent. VM yang di-clone — atau di-deploy dari template — dengan Vapor 3.3.0 dibuat tanpa channel yang dipakai guest agent untuk berkomunikasi, sehingga host tidak bisa menjangkau agent: alamat IP guest tidak dilaporkan dan backup tidak bisa membekukan file system guest. Vapor 3.2.0 dan sebelumnya tidak terdampak, dan clone yang dibuat dengan 3.3.1 memiliki channel tersebut. Clone yang sudah terlanjur dibuat dengan 3.3.0 tetap bermasalah sampai diperbaiki: matikan VM-nya, panggil POST /api/v1/virtualization/computes/{id}/guest-agent/channel, lalu nyalakan lagi — atau clone ulang dari sumbernya.
  • Snapshot VM UEFI bisa dihapus tanpa merusak VM. VM UEFI yang memiliki snapshot lama yang diambil saat mati dan snapshot baru yang diambil saat berjalan — seperti yang dimungkinkan 3.3.0 — menyimpan rantai yang ditolak libvirt untuk dihapus dari ujung mana pun. Dengan VM dalam keadaan mati, kedua jenisnya kini bisa dihapus; saat VM berjalan, Vapor meminta Anda mematikannya alih-alih mengembalikan error libvirt. Penghapusan snapshot juga bisa membuat VM tidak bisa dinyalakan; VM yang tertinggal dalam kondisi itu diperbaiki saat berikutnya dinyalakan dari Vapor atau Cockpit.

Masalah yang Diketahui: ​

  • Image VDI dan VHDX ditolak saat di-upload. Vapor 3.3.1 menolak image VDI atau VHDX yang di-upload atau diunduh, padahal aksi Convert di storage browser menawarkan keduanya sebagai format sumber; Vapor 3.3.0 dan sebelumnya menerimanya. Sampai ada rilis yang kembali menerimanya, konversi dulu disk-nya sebelum di-upload, misalnya qemu-img convert -O qcow2 disk.vdi disk.qcow2 (atau disk.vhdx), lalu upload file qcow2-nya. Sudah diperbaiki di Vapor 3.3.2.

Versi 3.3.0 (September 2026) ​

Vapor kini mengelola Open Virtual Network: logical switch dan router, VPC, security group, DHCP, dan load balancing, dengan VM tersambung ke sana seperti ke jaringan lainnya, serta wizard yang mengaktifkan OVN di sebuah host atau membentuk cluster OVN baru. Backup memulihkan VM secara utuh — setiap disk beserta konfigurasinya — dan bisa menimpa VM asalnya. Memory snapshot bekerja untuk VM UEFI, dan mengedit VM tidak lagi membuatnya tidak bisa dinyalakan. Upgrade ke 3.3.1: VM yang di-clone dengan 3.3.0 dibuat tanpa channel QEMU guest agent.

Fitur Baru: ​

  • Open Virtual Network (OVN): Kelola OVN dari tampilan OVN di bawah Network: logical switch beserta port-nya, logical router dengan static route dan NAT, inventaris chassis yang read-only, dan topologi per switch. Di atasnya: VPC (sebuah router beserta subnet-nya, dibuat dan dihapus sebagai satu objek), security group yang dibangun dari port group, ACL, dan address set, opsi DHCPv4 dan DHCPv6, DNS record, load balancer dan load balancer group, policy routing, QoS, serta meter. Menghapus switch yang masih memiliki port, atau VPC yang subnet-nya masih menampung workload, ditolak dengan menyebutkan apa yang menghalangi.
  • VM di OVN: OVN Logical Switch adalah tipe jaringan di dialog Add dan Edit Network Interface, dengan OVN DHCP sebagai penetapan alamat default. Logical port dibuat sebelum VM didefinisikan dan dihapus bersama interface-nya, dan MAC address VM dicatat di kedua sisi sehingga DHCP milik OVN menjawabnya. Memindahkan VM yang mati ke host lain memetakan interface OVN-nya ke logical switch — atau jaringan lain — di tujuan, termasuk yang berada di deployment OVN berbeda. Host memerlukan Open vSwitch client (ovs-vsctl); Vapor memberi tahu bila belum terpasang.
  • Wizard aktivasi OVN: Aktifkan OVN di sebuah host tanpa menyunting konfigurasi secara manual, dengan salah satu dari tiga cara: membentuk deployment Vapor-native (bootstrap database clustered baru, atau bergabung ke yang sudah ada dengan token sekali pakai yang dibuat di host central), bergabung ke OVN eksternal yang sudah ada, atau bergabung ke cluster Kube-OVN yang sudah ada. Discovery dan pemeriksaan preflight dijalankan lebih dulu, dan database OVN yang sudah ada di host hanya diganti setelah Anda mengonfirmasinya. Deaktivasi hanya melepas apa yang dikonfigurasi Vapor sendiri, sehingga node Kube-OVN tetap berada di jaringannya.
  • Konfigurasi host dari UI: Host > System > Configuration membaca dan menyunting vapor.conf — form untuk setting yang umum dan tampilan raw untuk sisanya — lalu me-restart Vapor. Restart-nya diperiksa kesehatannya: jika Vapor tidak kembali hidup, konfigurasi sebelumnya dipulihkan. Komentar dan urutan key tetap utuh setelah disunting, dan signing key tidak pernah ditampilkan atau ditimpa.
  • Memory snapshot untuk VM dengan disk raw: VM yang berjalan dengan disk berupa file raw bisa di-snapshot beserta memorinya dan di-revert.

Peningkatan: ​

  • Firmware variable VM UEFI, yang menyimpan boot entry-nya, disimpan di setiap backup dan dikembalikan saat restore; VM yang di-restore dengan nama baru mendapat salinan sendiri alih-alih berbagi dengan milik VM asal. Recovery point replication juga membawanya, dan failover maupun test failover boot dengannya.
  • Restore menampilkan progresnya. Dengan Overwrite existing VM, dialog menyembunyikan field nama baru dan memperingatkan bahwa VM akan dihentikan dan diganti serta tetap mati sesudahnya — ditekankan bila VM sedang berjalan.
  • VM yang berjalan melaporkan sistem operasi yang disebutkan guest agent-nya, misalnya "Ubuntu 20.04.5 LTS", sehingga guest hasil import atau migrasi tidak lagi tampil tanpa OS.
  • Import VDDK yang tidak bisa membuka disk sumber melaporkan alasan yang dicatat VDDK — thumbprint yang salah, port yang tidak terjangkau — alih-alih hanya "Unknown error".
  • Backup milik VM yang tidak lagi terdefinisi di host tetap bisa ditampilkan.
  • Clone mencatat UUID sumbernya, yang tetap berlaku meski sumbernya diganti nama.
  • Field Name pada VM yang berjalan dinonaktifkan, alih-alih penggantian nama baru ditolak saat disimpan.

Keamanan: ​

  • Image yang datang lewat upload atau download URL — termasuk upload melalui storage browser — ditolak (422 IMAGE_NOT_SELF_CONTAINED) jika menyebut backing file atau external data file. Bila ditawarkan sebagai image, file seperti itu akan menyalin file lain di host, misalnya disk milik VM lain, ke setiap VM yang dibuat darinya. Versi sebelumnya menerima image seperti itu; upgrade ke 3.3.0.
  • Nama file upload storage pool harus berupa nama biasa. Nama yang berisi path bisa menempatkan file di luar pool. Versi sebelumnya terdampak; upgrade ke 3.3.0.

Perbaikan: ​

  • Restore backup mengembalikan VM secara utuh, dan bisa menimpanya. Restore dengan Overwrite existing VM gagal dengan domain … already exists, VM dengan beberapa disk kembali hanya dengan satu disk, dan VM hasil restore mendapat memori 2 GiB dan 2 vCPU apa pun spesifikasi aslinya. Backup kini mencatat definisi VM, dan restore membangun ulang VM darinya — setiap disk, memori, CPU, dan jaringan. Overwrite menghentikan VM yang ada, termasuk yang sedang berjalan, dan menggantinya dengan UUID yang sama, sehingga backup-nya dan apa pun yang merujuk kepadanya tetap menemukannya. Backup yang diambil sebelum 3.3.0 tidak membawa definisi: backup itu memulihkan setiap disk, dengan setting memori, CPU, dan jaringan default.
  • Memory snapshot VM UEFI berfungsi. Setiap snapshot beserta memori dari VM UEFI gagal, karena libvirt tidak mengambil internal snapshot dari VM ber-firmware UEFI. Kini snapshot itu berupa external snapshot dengan file memori terpisah, dan bisa di-revert serta dihapus.
  • Mengedit VM tidak lagi membuatnya tidak bisa dinyalakan. Tiga jenis edit bisa menyebabkannya. Edit apa pun membuang CPU feature flag milik VM, sehingga VM yang membutuhkannya — seperti svm yang dinonaktifkan pada model qemu64 — gagal saat cold start berikutnya dengan Host CPU does not provide required features. Memberi boot order pada disk di VM yang boot berdasarkan jenis device melepas disk tersebut. Dan menyimpan VM yang interface-nya berada di libvirt network mode bridge mengubahnya menjadi interface bridge ke device yang tidak ada (Cannot get interface MTU). Kini CPU feature bertahan setelah edit, disk tetap terpasang, dan interface tetap di jaringannya.
  • Clone VM yang mati berhasil untuk disk SATA dan raw. VM mati dengan disk SATA — umum pada guest Windows dan hasil import VMware — gagal di-clone dengan Found duplicate drive address, dan VM dengan disk raw gagal dengan Image is not in qcow2 format, begitu pula membuat template darinya dan men-deploy template itu. Clone juga tidak lagi mendapat CD-ROM yang tidak pernah dimiliki sumbernya, mempertahankan disk raw tetap raw, dan mempertahankan machine type sumbernya alih-alih dipindah ke q35.
  • Daftar VM dan data yang disinkronkan Cockpit melaporkan UEFI, Secure Boot, dan TPM. Cockpit mencatat setiap VM sebagai BIOS tanpa TPM; firmware loader yang path-nya tidak mengandung "OVMF" terbaca sebagai BIOS, dan Secure Boot yang dimatikan terbaca menyala.
  • Certificate TLS menyebut alamat yang dipakai klien. Certificate yang dibuat ulang mencantumkan setiap alamat di setiap interface pada saat itu, termasuk interface container dan VM, dan masih bisa menampilkan alamat lama host setelah host diberi alamat baru. Kini certificate menyebut loopback dan alamat interface host yang sebenarnya, dan VAPOR_TLS_SANS menetapkan daftarnya secara langsung. Tab TLS menyatakan apakah certificate mencakup alamat yang Anda pakai untuk terhubung. Tidak ada yang berubah sampai Anda membuat ulang certificate; membuat ulang certificate API mengubah fingerprint-nya, sehingga controller yang mem-pin host harus mem-pin ulang. Jika alamat lama masih terpasang di sebuah interface, hapus alamat itu atau atur VAPOR_TLS_SANS.
  • Membuat storage pool OCFS2 untuk cluster dengan global heartbeat gagal saat format dengan Unsupported feature(s) found when parsing fs-features string.
  • Host dilaporkan mempertahankan cluster OCFS2-nya melewati reboot hanya jika global heartbeat-nya bisa berjalan: setiap device heartbeat harus diatur untuk kembali (iSCSI automatic startup, atau tercantum di /etc/ceph/rbdmap) dan o2cb harus mulai setelah service yang menyediakannya. Sebelumnya host bisa dilaporkan persistent namun kembali dengan setiap mount OCFS2 gagal, sementara host yang urutannya benar melalui alias service dilaporkan tidak persistent.
  • Replication VM dengan satu disk tidak pernah selesai: recovery point-nya tertahan di pending dan tidak bisa di-failover. Test failover VM UEFI juga berbagi firmware variable dengan VM yang dipulihkan, sehingga membongkar test itu ikut menghapusnya.
  • Menghapus backup VM dengan beberapa disk meninggalkan semua disk setelah disk pertama di storage.
  • Restart yang graceful dilaporkan gagal padahal guest sudah reboot. Power action yang dikirim dengan nama lain — shutdown, reboot, suspend, force-off, force-reboot — kini diterima alih-alih ditolak sebagai tidak dikenal.
  • VM yang dibuat lewat wizard tidak punya ruang untuk hot-add vCPU atau memori: Max vCPUs dan Max Memory selalu sama dengan nilai saat ini (sejak 3.1.0). Kini default-nya jumlah CPU dan memori host, dan field memori default dalam GiB.
  • Membuat jaringan NAT atau routed tanpa IP range mengembalikan error tetapi tetap membuat jaringannya.
  • Menghapus alamat sebuah interface lalu memasukkan interface itu ke OVS bridge bisa meninggalkan alamat yang sama di anggota bridge dan di internal port milik bridge. Alamat yang sudah dipegang interface lain kini ditolak, dan menyimpan OVS port tidak lagi mengunci MTU-nya pada nilai yang kebetulan berlaku.
  • Tanggal lisensi ditulis dengan nama bulan lengkap, dalam bahasa UI, sehingga tanggal seperti 10/9/2026 tidak bisa lagi dibaca sebagai dua hari yang berbeda.

Versi 3.2.0 (September 2026) ​

Guest hasil migrasi bisa menyimpan disk-nya di folder miliknya sendiri. Sebuah download bisa diberi tahu certificate authority mana yang dipercaya, sehingga server dengan certificate privat tidak menuntut pemasangan apa pun di host. Dan host keluarga RHEL — Rocky, Alma, RHEL 9 — kini bisa membuat VM yang sebelumnya ditolak mentah-mentah.

Fitur Baru: ​

  • Disk sebuah guest di folder miliknya sendiri: Disk yang di-import atau diunduh ke sebuah storage pool bisa ditaruh di direktori bernama sesuai guest-nya, bukan tergeletak di root pool bersama disk milik setiap migrasi lain. Vapor melaporkan di mana tiap file disimpan, karena file di dalam direktori bukan volume pool dan tidak akan pernah muncul di listing mana pun.
  • Beri tahu sebuah download authority mana yang dipercaya: Sebuah download bisa diberi certificate authority untuk memverifikasi sumbernya. Server dengan certificate privat jadi terjangkau tanpa memasang apa pun ke trust store host, dan verifikasi tetap dijalankan — ini bukan opsi untuk melewatinya.
  • Warm ingest ke subdirektori: Target writable yang dialiri live migration bisa berada di direktori di bawah pool, sehingga warm migration mendarat di tempat yang sama dengan cold.
  • QEMU guest agent: VM bisa dibuat dengan guest agent tersambung lewat virtio-serial dan provisioning cloud-init diterapkan. Nama interface sebagaimana dilihat guest sendiri ikut dilaporkan.
  • Konversi volume ke format lain, dari tampilan storage.
  • NFS version untuk storage pool: Kunci versi NFS yang dipakai sebuah pool, alih-alih menyerahkannya ke negosiasi.
  • Device heartbeat OCFS2 diformat otomatis, dengan pemeriksaan ukuran dan override yang eksplisit.
  • Manajemen multipath: Atur multipath dari UI, dan muat ulang multipathd tanpa shell di host.
  • Nama pada certificate: Subject alternative name pada certificate server libvirt dilaporkan, sehingga ketidakcocokan nama bisa dilihat, bukan ditebak.

Peningkatan: ​

  • Login yang ditolak menyebutkan alasannya di log host — user tidak dikenal, tidak berada di grup sudo/wheel, atau ditolak PAM — sementara jawaban ke pemanggil tetap sengaja tidak spesifik.
  • Target iSCSI tersambung kembali setelah reboot: preferensi node.startup ditulis sampai ke iscsiadm, tidak lagi hanya tersimpan di Vapor.
  • Alamat interface VM yang berjalan berhenti berkedip-kedip, dan VM yang tidak aktif mempertahankan nama interface yang stabil.

Perbaikan: ​

  • Host keluarga RHEL bisa membuat VM. Ada dua asumsi yang menghalangi. Vapor menyebut /usr/bin/qemu-system-x86_64 secara harfiah — itu tata letak Debian, bukan tempat RHEL menaruhnya — sehingga pembuatan gagal dengan Cannot check QEMU binary. Vapor juga meminta display qxl, yang tidak lagi disertakan RHEL 9 dan turunannya, sehingga domain-nya ditolak dengan does not support video model 'qxl'. Keduanya kini dibaca dari apa yang libvirt katakan tersedia di host. Host yang selama ini sudah bekerja mendapat persis seperti sebelumnya.
  • Menyalakan UEFI, Secure Boot atau TPM pada VM yang sudah ada juga tidak lagi memaksa qxl, sehingga penyuntingan itu berhenti gagal di host yang sama.
  • Operasi volume memahami folder: disk di dalam subdirektori bisa dihapus dan melaporkan kapasitas sebenarnya, tidak lagi tampak hilang.
  • Backup multi-disk: checkpoint change tracking benar per disk, dan tidak lagi tertinggal.
  • Push replication antar-site yang gagal tidak lagi mencatatkan recovery point sebagai selesai, dan replica multi-disk terdaftar sebagai satu recovery point, bukan beberapa.
  • Topologi CPU yang diminta secara eksplisit diterapkan, tidak lagi dibuang diam-diam.
  • Disk sebuah VM muncul di sync snapshot, dan OVS bridge tersambung sesuai konfigurasi.
  • Interface yang tidak bisa diberi alamatnya mengatakan demikian, alih-alih meninggalkan konfigurasi IP yang setengah diterapkan.

Versi 3.1.0 (Agustus 2026) ​

Host Vapor kini bisa saling menyerahkan VM. VM yang berhenti dapat dipindahkan ke host lain dari dalam Awanio, perpindahannya bisa dibatalkan saat berjalan, dan tujuannya diperiksa dulu — apakah terjangkau dan cukup ruang — sebelum apa pun disalin. Trafik replication dan migrasi juga bisa diberi jalur jaringan tersendiri.

Fitur Baru: ​

  • Pindahkan VM ke host lain: Cold migration untuk VM yang berhenti. Vapor memastikan tujuannya terjangkau dan cukup ruang sebelum menyalin, membiarkan disk yang sudah berada di shared storage tetap di tempatnya, dan membereskan sisa-sisanya bila penyalinan gagal.
  • Batalkan migrasi yang sedang berjalan: Migrasi yang sedang berlangsung dapat dihentikan, dan dilaporkan sebagai dibatalkan, bukan gagal.
  • Ganti nama VM: Penggantian nama merambat ke semua yang merujuk nama lama — path disk di definisi VM, folder dan nama berkas backup-nya, serta record yang menunjuk ke sana. VM harus dalam keadaan berhenti untuk bisa diganti namanya.
  • Host service endpoints: Beri trafik replication dan migrasi interface tersendiri di host, terpisah dari management, dan ditetapkan langsung dari tampilan interface.
  • Failover asinkron: Failover langsung memberi jawaban dan melaporkan progresnya, alih-alih menahan koneksi selama seluruh operasi.
  • Berkas hosts sistem: Lihat dan sunting /etc/hosts milik host dari tab System.

Peningkatan: ​

  • Jaringan virtual lebih cepat: Interface virtio kini memakai vhost, banyak queue, dan ring buffer yang lebih besar.
  • Template: Membuat template dari sebuah VM berjalan di latar belakang dan bisa dibatalkan saat prosesnya berlangsung.
  • Detail VM menampilkan security label yang sedang dipakainya, dan mengatakan terus terang bila host tidak dapat melaporkannya.
  • Vapor yang sedang berjalan menyebutkan build mana persisnya dirinya, baik lewat --version maupun endpoint health.
  • Nama VM yang mengandung spasi atau karakter khusus ditolak sejak awal, bukan diterima lalu bermasalah belakangan.

Perbaikan Bug: ​

  • Test disaster recovery menyusun VM pemulihan dari definisi VM sumber yang sedang hidup, bukan dari replica-nya, sehingga ikut membawa perangkat CD-ROM dan floppy milik sumber.
  • Reprotect setelah failback bisa menurunkan nama yang keliru, dan VM yang dipulihkan tidak mempertahankan identifier aslinya — sehingga siklus kedua bisa kehilangan jejak VM aslinya.
  • Backup incremental yang sebenarnya menyalin seluruh disk tetap tercatat sebagai incremental.
  • Hasil sebuah failover tidak tercatat ketika pemanggilnya berhenti menunggu.
  • Cloning VM yang punya ISO atau CD-ROM terpasang gagal tanpa menjelaskan sebabnya.
  • Node yang ditambahkan ke cluster o2cb tidak teregistrasi, dan unduhan image yang diulang tidak menyebutkan mengapa percobaan sebelumnya gagal.

Versi 3.0.2 (Agustus 2026) ​

Vapor kini bisa berperan sebagai site disaster recovery. VM yang dilindungi direplikasi ke site kedua sesuai jadwal, bisa dinyalakan di sana saat dibutuhkan, lalu dilindungi kembali ke arah sebaliknya.

Fitur Baru: ​

  • Replication antar site: Lindungi sebuah VM dengan mereplikasinya ke site kedua sesuai jadwal yang Anda tentukan, dengan recovery point disimpan harian, mingguan, atau bulanan.
  • Failover: Nyalakan VM yang dilindungi di site pemulihan — secara planned, dengan sync terakhir dan shutdown yang rapi pada VM aslinya, atau unplanned bila site sumber tidak dapat dihubungi. Interface dipetakan ulang ke network site pemulihan, disk mendarat di pool yang Anda pilih, dan guest bisa memakai alamat baru begitu menyala.
  • Test failover: Jalankan replica pada network terisolasi untuk memastikan ia menyala, sementara VM aslinya tetap melayani.
  • Reprotect: Setelah failover, VM yang telah dipulihkan menjadi sumber terlindungi tersendiri dan replication berlanjut ke arah sebaliknya.
  • Backup changed-block: Backup incremental hanya menyalin blok yang berubah sejak backup sebelumnya.

Peningkatan: ​

  • Setiap replica diverifikasi terhadap sumbernya sebelum dihitung sebagai recovery point.
  • Transfer yang terputus dilanjutkan dari titik berhentinya, bukan diulang dari awal.
  • Backup berhenti lebih awal dengan pesan yang jelas ketika scratch space menipis, dan menampilkan progresnya selama berjalan.
  • Pilih disk mana yang direplikasi, minta salinan quiesced, serta pause dan resume perlindungan kapan saja.
  • Eject CD-ROM, ubah ukuran volume saat VM sedang berjalan, dan simpan disk tiap VM di foldernya sendiri.

Keamanan: ​

  • Endpoint yang menulis data mentah ke disk VM telah dihapus, dan jalur baca yang tersisa mengenali disk lewat alamatnya sendiri, bukan lewat path file yang dikirim dalam permintaan. Versi 3.0.0 dan 3.0.1 terpengaruh; perbarui ke 3.0.2.
  • Vapor menolak image disk yang mengalihkan pembacaan ke file lain di host.

Perbaikan Bug: ​

  • Update yang gagal kini membatalkan dirinya sendiri. Vapor memastikan versi baru benar-benar berjalan dan menyimpan versi sebelumnya sebelum berpindah. Bila versi baru tidak mau start, versi lama dikembalikan dan layanan hidup lagi dengan sendirinya — host tidak lagi tertinggal dalam keadaan perlu dipulihkan secara manual.
  • Test failover pada VM dengan beberapa disk hanya mengarahkan satu disk ke replica.
  • Retention tidak dapat mengembalikan ruang dari rantai recovery point incremental yang panjang.
  • Sebuah sync tercatat berhasil sebelum recovery point-nya benar-benar sampai di site pemulihan.
  • Menghapus backup meninggalkan checkpoint change-tracking miliknya, sehingga ruangnya tidak pernah kembali.
  • Angka memory dan CPU untuk VM yang sedang berjalan bisa melampaui nilai sebenarnya.

Versi 3.0.1 (Juli 2026) ​

Menambahkan dukungan warm migration — sebuah host Vapor kini bisa menjadi tujuan migrasi langsung dengan downtime minimal untuk VM yang sedang berjalan — beserta manajemen paket OS di UI dan berbagai perbaikan keandalan.

Fitur Baru: ​

  • Target warm migration: Host Vapor kini dapat menerima live migration dari VM yang sedang berjalan. Guest tetap melayani selama transfer dan hanya berhenti sejenak saat cut-over. Bekerja bersama Condensa dan Cockpit untuk membawa VM Proxmox yang sedang berjalan ke Awanio.
  • Manajemen OS Libraries & Packages: Telusuri dan kelola library serta paket OS milik host dari tab System.

Peningkatan: ​

  • Updater: Kini memberi tahu Anda ketika tersedia versi major baru, alih-alih melaporkan "up to date".

Perbaikan Bug: ​

  • Login yang gagal kini mengembalikan error yang jelas, bukan server error.
  • Pengetatan keamanan dan keandalan di seluruh host agent.

Versi 3.0.0 (Juli 2026) ​

Rilis utama yang menambahkan dukungan NVIDIA vGPU, data plane migrasi berbasis VDDK untuk mengimpor VM dari platform lain, pencadangan inkremental yang jauh lebih tangguh, manajemen penyimpanan terklaster (OCFS2/O2CB), dan postur keamanan fail-closed yang diperketat.

Perubahan besar — tindakan diperlukan

Agen Vapor sekarang fail-closed: agen tidak akan mengautentikasi tanpa rahasia penandatanganan (signing secret) yang dikonfigurasi, dan menurunkan izin dari identitas terautentikasi. Konfigurasikan rahasia JWT di setiap host sebelum melakukan pembaruan.

Fitur Baru: ​

  • NVIDIA vGPU (Mediated Devices): Dukungan penuh untuk membagi GPU fisik menjadi GPU virtual — orkestrasi sisi host dan endpoint API, penginstal NVIDIA vGPU Manager terpandu dengan pemeriksaan pra-flight, tampilan manajemen perangkat tingkat host, dan kesadaran tentang berapa banyak instans gratis yang dimiliki setiap profil.
  • Data Plane Migrasi Hangat/Dingin (VDDK): Mesin pengimpor disk untuk membawa VM dari VMware, termasuk transfer inkremental (changed-block/CBT), build plugin nbdkit + VDDK modern, deteksi otomatis plugin, dan manajemen build VDDK terinstal. Kemajuan impor dilacak secara langsung (live).
  • Manajemen Pustaka Pihak Ketiga: Menginstal dan mengelola komponen VDDK dan NVIDIA vGPU dari tab Sistem, dengan pengunggahan dapat dilanjutkan (TUS) untuk file besar.
  • API Guest Agent: Antarmuka guest-agent QEMU umum (perintah mentah dan exec), ditambah endpoint untuk memastikan saluran agen dan menghapus file seed cloud-init.
  • Manajemen Klaster O2CB / OCFS2: Mode pemeliharaan dengan konfigurasi boot persisten, API manajemen batas waktu detak jantung/jaringan, pemilihan klaster secara eksplisit saat membuat pool OCFS2, dan bootstrapping klaster — semuanya dengan pemeriksaan keselamatan yang sadar-namespace host.

Peningkatan: ​

  • Migrasi lebih aman: UI migrasi sekarang memerlukan konfirmasi tindakan destruktif, dan penyimpanan migrasi dipangkas secara otomatis sambil selalu melaporkan status terbaru.
  • Pemulihan lebih baik: Pilih pool penyimpanan target, pulihkan ke salinan disk independen, dan pasang disk yang ada dengan peringatan dependensi yang jelas untuk rantai inkremental/diferensial.
  • Browser penyimpanan: Mengganti nama, memindahkan, dan melacak lampiran VM untuk file di browser.
  • Pengeditan VM: Validasi mode CPU kustom, serta pengaturan firmware/mesin dipertahankan untuk VM yang sedang berjalan sehingga pengeditan tidak ditolak.
  • Operasi: Target build deploy-peers mendistribusikan biner ke host rekan (peer) dan memulai ulang layanan.

Keamanan: ​

  • Autentikasi fail-closed dengan penyematan algoritma penandatanganan dan izin yang diturunkan dari identitas terautentikasi.
  • Pembatasan laju (Rate-limiting) pada endpoint login, penanganan header proxy tepercaya, dan perlindungan SSRF pada operasi berbasis Ansible.
  • Tindak lanjut re-audit cakupan otorisasi di seluruh handler.

Perbaikan Bug: ​

  • Pencadangan inkremental: Penghapusan dan retensi tidak lagi merusak rantai inkremental; kegagalan rebase-delta senyap terdeteksi; qemu-img tidak lagi membuat gambar tujuan; dan tugas yang terinterupsi tidak lagi merusak target inkremental.
  • Kinerja & stabilitas Libvirt: Daftar pool yang dioptimalkan, daur ulang koneksi berkala, batas waktu permintaan, inisialisasi loop peristiwa, dan perbaikan kebocoran sumber daya menyelesaikan jeda (lag) sebelumnya; penyapu metrik dibatasi melalui single-flight dan penembokan (caching).
  • Memperbaiki kebocoran goroutine pompa metrik WebSocket saat berhenti berlangganan/berlangganan ulang.
  • Memperbaiki kegagalan kolom duplikat (migrasi 21) pada database yang tidak pernah menjalankan migrasi 20.
  • Memperbaiki format metadata VM setelah pembaruan metadata, dan menambahkan perangkat grafis VNC default sehingga pemulihan dapat di-boot secara bersih.
  • Validasi lisensi mentolerir sewa detak jantung control-plane yang kedaluwarsa selama jendela penyegaran.
  • Sesi tidak lagi batas waktu (time out) selama tugas latar belakang dan pengunggahan yang berjalan lama.
  • Memperbaiki migrasi Windows BIOS dan menyegarkan alat v2v.