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/capabilitiesuntuk 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}/snapshotsdengan 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-templatedengandescription. 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-templatemenyalin disk VM dan mendaftarkan salinannya sebagai template, sementara VM sumber tetap seperti semula. - Deploy dari Template:
POST /api/v1/virtualization/computes/from-templatedengantemplate_id,name, tujuanstorage_pool, dan opsionalguest_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=truemenghapus 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_identitytidak diisi, default host yang berlaku. Respons201memuatguest_identityyang dipakai dan hasilidentity_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.