Skip to content

Backup Mesin Virtual

Vapor menyediakan mekanisme bawaan untuk melindungi image disk dan status mesin virtual dari kerusakan data, kegagalan perangkat keras, atau kesalahan administratif. Sistem ini mendukung topologi backup penuh (full), bertahap (incremental), dan diferensial, menggunakan Changed Block Tracking (CBT) serta sinkronisasi Guest Agent untuk menjamin konsistensi aplikasi dan efisiensi penyimpanan.


1. Topologi Backup

Full Backup

Full backup menyalin seluruh image disk virtual (.qcow2) dari awal hingga akhir. Hal ini menghasilkan titik pemulihan (restore point) mandiri yang tidak bergantung pada file lain. Meskipun sederhana, metode ini membutuhkan kapasitas penyimpanan yang besar dan waktu yang lama, sehingga kurang cocok untuk eksekusi yang sering pada data berukuran besar.

Incremental Backup (Changed Block Tracking - CBT)

Incremental backup memanfaatkan teknologi Changed Block Tracking (CBT) to memantau sektor disk yang dimodifikasi sejak sesi backup terakhir.

  • Dirty Bitmaps: Vapor membuat dan memelihara "dirty bitmap" persisten yang melacak blok-blok yang dimodifikasi di dalam file QCOW2.
  • Efisiensi: Selama eksekusi backup bertahap, Vapor menanyakan dirty bitmap dan hanya menyalin blok yang dimodifikasi. Hal ini secara signifikan mengurangi durasi backup dan ruang penyimpanan yang digunakan.
  • Persyaratan Pemulihan: Memulihkan incremental backup memerlukan full backup dasar (baseline) awal beserta seluruh file incremental perantara.

2. Integrasi & Konsistensi Lanjutan

Untuk integrasi backup pihak ketiga (seperti agen backup enterprise) atau script otomatisasi kustom, Vapor mengekspos endpoint kontrol hypervisor yang mendalam:

Pengkondisian Sistem File (FSFreeze & FSThaw)

Untuk menjamin konsistensi sistem file dan aplikasi selama transaksi database aktif atau beban kerja penulisan yang tinggi, Vapor menggunakan QEMU Guest Agent di dalam VM:

  • FSFreeze: Sebelum mengambil titik pemeriksaan (checkpoint) backup, panggilan ke POST /virtualization/computes/{uuid}/guest-agent/fsfreeze menginstruksikan sistem operasi tamu untuk membersihkan buffer cache ke disk dan membekukan sementara operasi I/O sistem file.
  • FSThaw: Segera setelah hypervisor meregistrasi checkpoint, panggilan ke POST /virtualization/computes/{uuid}/guest-agent/fsthaw mencairkan kembali sistem file, sehingga VM tamu dapat melanjutkan proses penulisan. Proses ini berlangsung dalam waktu kurang dari satu detik untuk mencegah aplikasi tamu mengalami timeout.

Backup Pull-Mode NBD (Network Block Device)

Vapor mengekspos disk virtual mentah melalui jaringan menggunakan protokol NBD (Network Block Device). Hal ini memungkinkan sistem backup eksternal untuk membaca blok disk secara langsung tanpa membebani CPU host:

  • Siklus Hidup Sesi: Sesi NBD diinisialisasi melalui POST /virtualization/computes/{uuid}/backups/nbd/start, yang menerima parameter seperti incremental_from_checkpoint, nbd_port, dan nbd_listen.
  • Aliran Langsung: Server NBD berjalan pada port yang ditentukan (misalnya 10899) di host, mengekspos aliran blok mentah dari disk VM.
  • Pembersihan: Sesi ditutup secara bersih menggunakan POST /virtualization/computes/{uuid}/backups/nbd/stop.

3. Unggahan Resumable via Protokol TUS

Untuk mengimpor atau mengunggah file backup VM berukuran besar (file .qcow2 berukuran multi-gigabyte), Vapor menerapkan protokol TUS (Resumable Upload) v1.0.0 untuk menangani gangguan jaringan secara aman.

  • Inisiasi: POST /virtualization/computes/backups/upload dengan header Upload-Length dan Upload-Metadata (properti berkode base64: filename, vm_name, backup_type, compression, encryption, description, retention_days).
  • Transfer Data: PATCH /virtualization/computes/backups/upload/{upload_id} mengalirkan segmen data biner menggunakan Upload-Offset.
  • Finalisasi: POST /virtualization/computes/backups/upload/{upload_id}/complete meregistrasikan file yang diunggah sebagai titik pemulihan yang lengkap.

4. Operasi Backup via UI dan API

Membuat Backup melalui Web UI

  1. Navigasikan ke Virtualization > Virtual Machines dan pilih instans compute yang dituju.
  2. Buka tab Backups dan klik Create Backup.
  3. Konfigurasikan pengaturan:
    • Mode: Pilih Full atau Incremental (memerlukan checkpoint baseline CBT yang sudah ada).
    • Storage Pool: Pilih storage pool tujuan tempat arsip backup akan disimpan.
    • FSFreeze: Aktifkan untuk memastikan konsistensi transaksi tingkat sistem file.
    • Retention: Tentukan siklus hidup (jumlah hari) sebelum arsip backup dihapus secara otomatis.
  4. Klik Submit untuk mengirimkan tugas backup.

Referensi Endpoint API

  • Daftar Backup: GET /api/v1/virtualization/computes/{id}/backups
  • Buat Backup: POST /api/v1/virtualization/computes/{id}/backups
  • Hapus Backup: DELETE /api/v1/virtualization/computes/backups/{backup_id}
  • Pulihkan Backup: POST /api/v1/virtualization/computes/restore (menerima backup_id, new_vm_name, overwrite)
  • Impor Backup: POST /api/v1/virtualization/computes/backups/import (meregistrasikan path backup yang sudah ada pada host)