Skip to content

Snapshots & Templates ​

Vapor menyediakan mekanisme untuk mengambil kondisi mesin virtual pada titik waktu tertentu (point-in-time) untuk kebutuhan pengujian, backup, atau replikasi instans yang cepat.


Snapshot VM ​

Snapshot mencatat status image disk mesin virtual dan secara opsional status memori aktifnya (RAM) pada saat tertentu.

Kapabilitas Snapshot dan Status Memori ​

Backend penyimpanan dan konfigurasi tamu yang berbeda mendukung fitur snapshot yang berbeda pula:

  • Pemeriksaan Kapabilitas: Sebelum mengambil snapshot, Vapor menanyakan GET /api/v1/virtualization/computes/{id}/snapshots/capabilities untuk menentukan apakah snapshot yang menyertakan memori (supports_memory) didukung.
  • Sertakan Memori: Jika didukung, Anda dapat mencentang Include Memory selama pembuatan untuk menyimpan status RAM aktif. Ini memungkinkan VM untuk melanjutkan eksekusi dari titik tepat saat snapshot diambil, dengan mempertahankan proses yang sedang berjalan. Jika memori tidak disimpan, memulihkan ke snapshot akan memboot VM dalam kondisi mati (powered-off).
  • Pengkondisian Sistem File (Filesystem Quiescing): Saat fitur pembekuan aktif (quiesce: true), Vapor menggunakan QEMU Guest Agent untuk menjeda operasi I/O sistem file di dalam VM tamu dan membersihkan blok cache kotor ke disk sebelum mengambil snapshot.
  • Snapshot Eksternal: Di bawah tata letak penyimpanan tertentu, snapshot eksternal (force_external: true) dapat dipaksakan untuk membuat file overlay alih-alih memodifikasi struktur QCOW2 internal.

Operasi Manajemen (API & UI) ​

  • Daftar Snapshot: GET /api/v1/virtualization/computes/{id}/snapshots
  • Buat Snapshot: POST /api/v1/virtualization/computes/{id}/snapshots dengan parameter: name, description, include_memory (bool), quiesce (bool), force_external (bool).
  • Detail Snapshot: GET /api/v1/virtualization/computes/{id}/snapshots/{snapshot_name}
  • Pulihkan ke Snapshot: POST /api/v1/virtualization/computes/{id}/snapshots/{snapshot_name}/revert
  • Hapus Snapshot: DELETE /api/v1/virtualization/computes/{id}/snapshots/{snapshot_name}

WARNING

Snapshot bergantung pada rantai file disk virtual di bawahnya. Jika image disk virtual dasar dihapus atau rusak, snapshot tidak akan dapat dipulihkan. Snapshot tidak boleh dianggap sebagai backup mandiri.


Template VM ​

Template memungkinkan administrator untuk membekukan konfigurasi mesin virtual sebagai image induk baca-saja (golden image) untuk men-deploy VM baru dengan konfigurasi dan perangkat lunak yang sama. Setiap VM yang di-deploy dapat memperoleh identitas tamunya sendiri (machine ID, SSH host keys, hostname, ikatan jaringan); lihat Deploy dan identitas tamu.

Siklus Hidup dan Konversi Template ​

  • Konversi VM ke Template: POST /api/v1/virtualization/computes/{id}/convert-to-template dengan description. VM harus dalam keadaan mati. Setelah dikonversi, VM dihapus dari daftar aktif computes (GET /virtualization/computes) dan diisolasi di registri template (GET /virtualization/computes/templates).
  • Blok Mulai (Start Block): Template tidak dapat dinyalakan atau dijalankan secara langsung. Upaya untuk menyalakan template akan mengembalikan error HTTP 409 Conflict.
  • Membuat Template dari Salinan VM: POST /api/v1/virtualization/computes/{id}/clone-to-template menyalin disk VM dan mendaftarkan salinannya sebagai template, sementara VM sumber tetap seperti semula.
  • Deploy dari Template: POST /api/v1/virtualization/computes/from-template dengan template_id, name, tujuan storage_pool, dan opsional guest_identity. Vapor membuat salinan penuh dari setiap disk template untuk menyediakan VM baru, sehingga deploy makin lama bila disknya makin besar, dan VM baru tidak bergantung pada template setelahnya. Klon tertaut (linked/copy-on-write) tidak tersedia.
  • Konversi Template kembali ke VM: POST /api/v1/virtualization/computes/templates/{template_id}/convert-to-vm. Ini meregistrasikan kembali template sebagai VM standar yang dapat di-boot.
  • Hapus Template: DELETE /api/v1/virtualization/computes/templates/{template_id}?remove_disks=true menghapus template dan secara opsional membersihkan disk penyimpanan pendukungnya.

Deploy dan Identitas Tamu ​

  • Template adalah salinan persis. Mengonversi VM menjadi template, membuat template dari salinan VM, dan menyalin template ke template lain tidak pernah mengubah identitas tamu. Vapor mencatat alamat MAC jaringan milik sumber template agar deploy berikutnya dapat memperbarui konfigurasi jaringan tamu.
  • Deploy menawarkan pilihan Guest identity. Sama seperti kloning, deploy dari template dapat me-reset identitas tamu (Reset guest identity (recommended)) atau mempertahankan salinan persis (Keep an exact copy). Di web UI, wizard deploy menampilkan field Guest identity yang sama dengan dialog Clone. Bila guest_identity tidak diisi, default host yang berlaku. Respons 201 memuat guest_identity yang dipakai dan hasil identity_reset. Apa yang diubah oleh reset, kapan reset tidak mungkin, dan apa yang dibutuhkan host dijelaskan di Identitas Tamu pada Klon.
  • Template yang dibuat dengan menyalin VM pada versi Vapor sebelumnya tidak mencatat alamat MAC sumber. Bila template memiliki satu antarmuka jaringan, Vapor tetap dapat memperbarui konfigurasi jaringan. Dengan beberapa antarmuka, reset bisa gagal (atau, dengan auto, selesai dengan peringatan) karena konfigurasi jaringan menyebut alamat MAC yang tidak dikenal Vapor; buat ulang template dari VM aslinya untuk mengatasinya. Template yang dikonversi langsung (in-place) dari VM tidak terpengaruh.