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/fsfreezemenginstruksikan 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/fsthawmencairkan 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 sepertiincremental_from_checkpoint,nbd_port, dannbd_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/uploaddengan headerUpload-LengthdanUpload-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 menggunakanUpload-Offset. - Finalisasi:
POST /virtualization/computes/backups/upload/{upload_id}/completemeregistrasikan file yang diunggah sebagai titik pemulihan yang lengkap.
4. Operasi Backup via UI dan API
Membuat Backup melalui Web UI
- Navigasikan ke Virtualization > Virtual Machines dan pilih instans compute yang dituju.
- Buka tab Backups dan klik Create Backup.
- 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.
- 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(menerimabackup_id,new_vm_name,overwrite) - Impor Backup:
POST /api/v1/virtualization/computes/backups/import(meregistrasikan path backup yang sudah ada pada host)