Skip to content

Orkestrasi Mesin Virtual ​

Cockpit menyediakan konsol manajemen terpusat untuk mengoordinasikan siklus hidup mesin virtual (VM) yang berjalan di berbagai host Vapor fisik. Administrator dapat memantau kinerja, menyediakan beban kerja baru, mengelola lampiran perangkat virtual, menjalankan operasi daya, dan mengoordinasikan kebijakan cadangan dari satu panel kontrol.


1. Inventaris VM Terpusat ​

Cockpit menyatukan semua mesin virtual dari seluruh host Vapor yang terhubung ke dalam satu inventaris tunggal.

Fitur Utama ​

  • Inventaris Terpadu: Melihat, mencari, dan mengelola mesin virtual dalam pengelompokan logis tanpa memedulikan host fisik tempat VM tersebut berada.
  • Panel Metrik dan Sumber Daya: Menampilkan grafik waktu nyata untuk penggunaan CPU, alokasi memori, lalu lintas jaringan (alamat IP/MAC), dan throughput baca/tulis disk.
  • Akses Konsol: Membuka sesi konsol interaktif langsung (protokol VNC atau SPICE) di dalam peramban web. Fitur ini berfungsi sebagai monitor dan papan ketik virtual untuk akses langsung ke sistem operasi dan pemecahan masalah.

2. Wizard Penyediaan Mesin Virtual ​

Wizard penyediaan memandu administrator melalui pembuatan mesin virtual dan templat. Langkah-langkahnya menyesuaikan dengan tipe pembuatan (creation type) yang dipilih terlebih dahulu: pembuatan dari awal menampilkan seluruh langkah perangkat keras, sedangkan alur kloning, penyebaran, dan konversi disederhanakan hanya ke bidang yang dibutuhkan.

Tipe pembuatan ​

TipeApa yang dilakukannya
Buat Mesin Virtual BaruMembangun VM dari awal — penempatan, OS, firmware, penyimpanan, jaringan, PCI, dan cloud-init.
Sebarkan dari Templat (Deploy from Template)Membuat instansi VM baru dari templat yang ada, memilih nama, penyimpanan target, dan identitas tamunya.
Kloning VM yang AdaMembuat salinan penuh yang independen dari konfigurasi dan disk VM, dengan identitas tamunya sendiri atau sebagai salinan persis.
Kloning VM ke TemplatMenyalin VM dan mendaftarkan salinannya sebagai templat yang dapat digunakan kembali.
Konversi Templat ke VMKonversi langsung (in-place) dari templat kembali menjadi VM yang dapat dijalankan.
Kloning Templat ke TemplatMembuat salinan dari templat yang ada.
Konversi VM ke TemplatKonversi destruktif langsung dari VM menjadi templat.

Langkah-langkah untuk pembuatan dari awal ​

  1. Tipe Pembuatan (Creation Type): Pilih salah satu mode di atas.

  2. Target Penempatan (Placement Target): Pilih datacenter, klaster, dan host. Cockpit menampilkan sisa CPU dan RAM dari setiap host untuk membantu penjadwalan.

  3. Identitas & OS: Atur nama VM; vCPU dan Memori (MiB) awal dan maksimum — nilai maksimum mencadangkan kapasitas untuk penambahan CPU/memori secara langsung (hot-plug); autostart; firmware (UEFI, Secure Boot — membutuhkan q35 pada x86_64, dan TPM); serta famili OS tamu (Linux, Windows, FreeBSD, Lainnya) dan variannya, yang menerapkan preset driver libvirt.

  4. Penyimpanan (Storage): Tambahkan satu atau beberapa disk. Setiap disk memiliki tindakan:

    • Buat Baru (Create New) — mengalokasikan disk baru (qcow2, raw, atau vmdk) dengan ukuran tertentu pada datastore.
    • Kloning Dari (Clone From) — menyalin volume yang ada.
    • Lampirkan yang Ada (Attach Existing) — melampirkan volume yang sudah ada pada datastore.
    • Perangkat Raw Langsung / DRM (Direct Raw Device) — memetakan perangkat blok host mentah (format raw).

    Anda juga memilih bus disk (VirtIO, SCSI, IDE, atau SATA), dan dapat Menambahkan media ISO/CD-ROM.

  5. Jaringan (Network): Tambahkan antarmuka jaringan. Untuk setiap antarmuka, pilih tipe (Network, Bridge, Direct/macvtap, atau User mode), switch virtual sumber (bridge standar atau distributed network klaster), model driver (VirtIO, e1000, rtl8139, atau vmxnet3), dan opsional alamat MAC tetap.

  6. Lanjutan (Advanced): Lampirkan perangkat PCI passthrough seperti GPU atau pengontrol jaringan. Setiap entri memetakan alamat PCI host, dengan pengaturan alamat tamu, berkas ROM, multi-fungsi, dan GPU utama opsional.

  7. Cloud-Init: Masukkan kustomisasi cloud-init pada lima tab — User Data, Metadata, Network Data, SSH Keys, dan Packages — untuk penyediaan otomatis setelah booting.

  8. Tinjau dan Buat (Review and Create): Verifikasi konfigurasi dan kirimkan permintaan pembuatan asinkron ke host target. Opsi Nyalakan VM setelah dibuat (Power on VM after creation) mem-boot tamu segera setelah dibangun.

Alur kloning, penyebaran, dan konversi menampilkan langkah yang lebih sedikit — biasanya pemilihan sumber, nama baru, dan (jika disk disalin) storage pool target. Kloning VM dan deploy dari templat juga menanyakan Guest identity; lihat Identitas tamu pada klon.


3. Operasi Siklus Hidup dan Daya ​

Cockpit menyediakan kontrol daya berikut untuk VM:

  • Nyalakan (Power On): Mem-boot sistem operasi tamu.
  • Jeda (Pause): Menangguhkan eksekusi, membekukan CPU aktif dan status memori VM di tempatnya.
  • Lanjutkan (Resume): Memulihkan eksekusi CPU dan status memori untuk VM yang dijeda.
  • Mulai Ulang OS Tamu (Restart Guest OS): Meminta restart dari dalam tamu (ACPI), memungkinkan sistem operasi mulai ulang secara bersih.
  • Setel Ulang Keras (Reset - Hard): Segera menyetel ulang VM — setara dengan tombol reset fisik, tanpa keterlibatan sistem operasi tamu.
  • Matikan Paksa (Power Off - Hard): Segera mematikan VM (sama seperti mencabut kabel daya), menghentikan domain tanpa penghentian aman pada tamu.

Setiap tindakan hanya ditawarkan jika sesuai dengan status VM saat ini — misalnya, Resume hanya muncul untuk VM yang dijeda, dan Restart Guest OS / Reset (Hard) hanya muncul saat VM berjalan.


4. Modifikasi Perangkat Keras dan Spesifikasi ​

Dialog Edit Pengaturan (Edit Settings) mengubah perangkat keras virtual VM. Dialog ini diorganisasikan ke dalam tab Perangkat Keras (Hardware), Opsi (Options), dan Parameter Lanjutan (Advanced Parameters), serta berlaku untuk VM yang sedang berjalan maupun mati (beberapa perubahan mulai berlaku pada boot berikutnya).

  • Sumber Daya & CPU: Sesuaikan vCPU dan Memori, topologi CPU (socket / die / core / thread), dan model CPU. Batas atas Max vCPUs dan Max Memory — yang diatur di atas nilai saat ini — mencadangkan ruang untuk penambahan CPU dan memori secara langsung (hot-plug).
  • Manajemen Perangkat:
    • Hard Disk: Menambah atau melepas disk virtual. Disk baru dapat dibuat, dikloning, dilampirkan, atau dipetakan sebagai perangkat raw langsung, dengan bus dan format yang dapat dipilih; media CD-ROM/ISO didukung.
    • Adaptor Jaringan: Menambah atau menghapus antarmuka jaringan (mode Network, Bridge, Direct/macvtap, atau User; model VirtIO / e1000 / rtl8139 / vmxnet3).
    • PCI Device Passthrough: Memetakan perangkat PCI host (misalnya GPU, pengontrol jaringan) secara langsung ke VM, dengan opsi berkas ROM, multi-fungsi, dan GPU utama.
  • Firmware & Opsi: Mengubah UEFI, Secure Boot, dan TPM, mengatur arsitektur dan tipe mesin, serta mengontrol autostart dengan host.
  • Parameter Lanjutan: Tampilan baca-saja (read-only) dari definisi domain VM saat ini (autostart dan parameter libvirt lainnya), untuk referensi dan pemecahan masalah. Tab ini mencerminkan konfigurasi aktif; tidak mengeditnya.

5. Manajemen Kloning dan Templat ​

Templat dan kloning menstandarkan konfigurasi VM dan mempercepat penyediaan. Semua opsi ini berjalan dari langkah tipe pembuatan pada wizard penyediaan:

  • Kloning VM (VM Cloning): Membuat salinan independen dari konfigurasi dan disk virtual VM sumber. Wizard meminta VM sumber, nama VM baru, storage pool target untuk duplikasi disk, dan Guest identity. Setiap disk image disalin penuh, sehingga klon tidak bergantung pada sumber setelahnya dan disk yang lebih besar butuh waktu lebih lama; klon tertaut (linked/copy-on-write) tidak tersedia. Direct Raw Device, disk baca-saja, dan media ISO tidak disalin: klon memakai device atau file yang sama dengan sumber, jadi jangan jalankan kedua VM bersamaan selama keduanya berbagi device yang dapat ditulis.
  • Sebarkan dari Templat (Deploy from Template): Menyediakan VM baru dari templat, memilih nama, penyimpanan tujuan, dan Guest identity.
  • Kloning VM ke Templat (Clone VM to Template): Menyalin VM sumber dan mendaftarkan salinannya sebagai templat baca-saja dalam inventaris VM dan Templat. Dialog templat juga menangkap deskripsi opsional dan storage pool target. Templat selalu berupa salinan persis; identitas di-reset, bila Anda memilihnya, saat Anda men-deploy dari templat tersebut.
  • Kloning Templat ke Templat (Clone Template to Template): Menduplikasi templat yang ada.
  • Konversi VM ke Templat (Convert VM to Template): Mengubah VM secara permanen menjadi templat secara langsung — transisi status yang menandai VM sebagai templat.
  • Konversi Templat ke VM (Convert Template to VM): Mengembalikan templat kembali menjadi mesin virtual independen, memulihkan siklus daya normal dan operasi pengeditan konfigurasi.

Identitas tamu pada klon ​

Salinan disk biasa juga menyalin semua hal yang dipakai sistem operasi tamu untuk membedakan dirinya dari mesin lain. Bila sumber dan salinan persisnya berjalan bersamaan, kedua VM bisa mendapat alamat IP yang sama dari DHCP, klon dari VM yang dibangun dari cloud image bisa menyala tanpa jaringan sama sekali, dan kedua VM menampilkan hostname serta SSH host key yang sama.

Karena itu, langkah Clone Options pada wizard (untuk Clone an Existing VM dan Deploy from Template) memiliki pilihan Guest identity:

OpsiHasil
Reset guest identity (recommended)Klon dengan identitasnya sendiri. Host mengubah disk hasil salinan sebelum klon dinyalakan untuk pertama kali. VM sumber atau templat tidak pernah diubah.
Keep an exact copySalinan byte demi byte dari disk sumber. Gunakan untuk uji restore, untuk salinan yang disimpan untuk investigasi, atau untuk appliance yang lisensinya terikat pada machine ID.

Reset guest identity terpilih secara default bila host tujuan mampu me-reset identitas. Bila tidak mampu, Keep an exact copy yang terpilih, opsi reset dinonaktifkan, dan langkah tersebut menampilkan alasannya (lihat Kebutuhan host). Langkah ini juga menampilkan hostname yang akan didapat klon serta ringkasan singkat tentang apa yang di-reset dan apa yang tidak.

Apa yang diubah oleh reset ​

  • Machine ID: ID acak baru, sehingga server DHCP yang mengenali klien dari ID ini memberi klon alamatnya sendiri. Machine ID yang berisi uninitialized (templat yang disiapkan untuk boot pertama) dibiarkan apa adanya.
  • SSH host keys: key baru dengan tipe dan ukuran yang sama. Klien yang pernah terhubung ke sumber akan melihat host key yang berbeda pada klon. Key DSA lama dihapus bila VM juga memiliki tipe key yang lebih baru. Key RSA yang lebih besar dari 4096 bit diganti dengan key 4096 bit, dan hasilnya memuat catatan tentang hal ini.
  • Ikatan MAC jaringan (network MAC bindings): klon mendapat alamat MAC baru, dan konfigurasi jaringan yang menyebut alamat MAC sumber (netplan, NetworkManager, file ifcfg, systemd-networkd, udev rules, /etc/network/interfaces) diperbarui sehingga antarmukanya bisa aktif.
  • DHCP leases: lease yang tersimpan dari sumber dihapus.
  • Random seed: diganti dengan data acak baru.
  • Hostname: diambil dari nama klon, dalam huruf kecil. Setiap karakter selain huruf ASCII, angka, dan tanda hubung menjadi tanda hubung, tanda hubung yang berulang digabung menjadi satu, tanda hubung di awal dan akhir dihapus, lalu hasilnya dipotong menjadi paling banyak 63 karakter. Domain pada hostname sumber dipertahankan bila merupakan domain DNS yang valid: web01.example.com yang dikloning sebagai web02 menjadi web02.example.com. Nama yang cocok pada baris loopback di /etc/hosts ikut diperbarui. Bila tidak ada bagian nama klon yang dapat dipakai, atau tamu tidak memiliki /etc/hostname, hostname dibiarkan apa adanya.

Akun pengguna dan kata sandi, SSH authorized keys milik pengguna, perangkat lunak dan driver yang terpasang, data aplikasi, serta alamat IP statis tetap seperti di sumber.

Progres dan hasil ​

Selama host mengubah salinan, panel Tasks menampilkan Resetting guest identity…. Klon yang sudah dibuat tetapi perlu perhatian Anda berakhir dengan status Completed with warning; buka task tersebut untuk melihat detailnya. Peringatan yang umum:

  • Alamat IP statis dipertahankan: klon memiliki alamat yang sama dengan sumber dan dibuat dengan autostart dimatikan. Ubah alamatnya sebelum kedua VM berjalan di jaringan yang sama, misalnya: biarkan sumber tetap mati, nyalakan klon, ubah alamatnya melalui console, lalu nyalakan kembali sumber.
  • Tergabung ke domain Active Directory atau Kerberos: klon masih memakai machine account milik sumber, yang dapat membuat sumber terkunci dari domain. Keluarkan klon dari domain lalu gabungkan kembali dengan nama barunya sebelum menghubungkannya ke jaringan.
  • cloud-init mengelola hostname: cloud-init bisa memasang kembali hostname sumber pada setiap boot. Bila klon terus menampilkan nama sumber, ubah hostname pada konfigurasi cloud-init milik klon.

Agen registrasi dan manajemen (Red Hat Subscription Manager, Ubuntu Pro, Puppet, Salt, Chef) masih membawa registrasi milik sumber; daftarkan ulang klon tersebut.

Bila identitas tidak dapat di-reset ​

Bila Anda memilih Reset guest identity dan hal itu tidak mungkin dilakukan, kloning gagal dengan alasannya, yang ditampilkan pada langkah Clone Options atau di task, dan tidak ada VM yang dibuat. Sebagian besar kasus ditemukan sebelum ada yang disalin. Pilih Keep an exact copy sebagai gantinya, lalu ubah identitasnya dari dalam tamu sebelum menjalankan kedua VM:

SituasiYang perlu dilakukan
Tamu Windows atau tamu non-Linux lainnyaBuat salinan persis, lalu generalisasi tamunya (di Windows, dengan Sysprep).
Disk terenkripsi (misalnya LUKS atau BitLocker)Buat salinan persis dan ubah identitasnya dari dalam tamu.
Tidak ada sistem operasi yang ditemukan pada disk, atau lebih dari satuBuat salinan persis.
File system yang tidak dapat diubah oleh host, misalnya file system XFS milik RHEL 9 dan turunannya (Rocky Linux, AlmaLinux) pada host dengan kernel yang lebih lamaBuat salinan persis dan ubah identitasnya dari dalam tamu.
Sebagian sistem tamu, misalnya /var, berada di disk yang tidak ikut disalin bersama klon (Direct Raw Device atau disk baca-saja)Pindahkan bagian sistem tersebut ke disk image di VM sumber, lalu kloning ulang. Salinan persis tetap akan berbagi device tersebut dengan sumber.
VM memiliki lebih dari satu antarmuka jaringan, dan konfigurasi jaringannya menyebut alamat MAC yang tidak dimiliki antarmuka jaringan mana pun di sumberHapus atau perbaiki entri usang tersebut di VM sumber, lalu kloning ulang. Dengan guest_identity bernilai auto, hal ini hanya menjadi peringatan dan reset tetap selesai.
Satu-satunya SSH host key adalah key DSATambahkan tipe key yang lebih baru di VM sumber (sudo ssh-keygen -A), lalu kloning ulang.
Versi Vapor di host tidak mampu me-reset identitasUpgrade Vapor di host tersebut, atau buat salinan persis.

Untuk mengubah identitas klon Linux sendiri, jalankan di dalam klon:

bash
sudo rm -f /etc/machine-id /var/lib/dbus/machine-id
sudo systemd-machine-id-setup
sudo hostnamectl set-hostname <nama-baru>
sudo rm -f /etc/ssh/ssh_host_*
sudo ssh-keygen -A
sudo systemctl restart ssh    # pada tamu keluarga RHEL, nama service-nya sshd

Bila terjadi kesalahan saat host mengubah disk hasil salinan, kloning gagal secara keseluruhan: salinannya dihapus dan tidak ada VM yang dibuat. Sumbernya tidak terpengaruh.

Templat ​

Templat sendiri selalu berupa salinan persis: Clone VM to Template, Clone Template to Template, dan Convert VM to Template tidak pernah mengubah identitas tamu. Pilihan dibuat setiap kali Anda men-deploy dari templat. Templat yang dibuat dengan mengkloning VM pada versi Vapor sebelumnya dapat membuat reset gagal bila VM memiliki beberapa antarmuka jaringan; kloning ulang templat dari VM aslinya untuk mengatasinya.

Guest agent ​

Klon tetap memiliki koneksi QEMU guest agent seperti sumbernya, sehingga fitur yang bergantung pada agent, seperti quiesce file system untuk replikasi dan backup serta pelaporan IP tamu, berjalan di klon sama seperti di sumber.

Kebutuhan host ​

Reset identitas membutuhkan guestfish (bagian dari libguestfs) di host Vapor yang menjalankan kloning. Pasang sebagai root di host tersebut:

bash
# Debian 12 ke atas, Ubuntu 22.04 ke atas
sudo apt-get install guestfish libguestfs-xfs

# Debian 11, Ubuntu 20.04
sudo apt-get install libguestfs-tools libguestfs-xfs

# RHEL 9 dan turunannya (Rocky Linux, AlmaLinux)
sudo dnf install libguestfs libguestfs-xfs

# RHEL 8 dan turunannya
sudo dnf install libguestfs-tools-c libguestfs-xfs

Vapor tidak perlu di-restart: Vapor mendeteksi tool tersebut dan mengujinya dengan self-test singkat di latar belakang. Buka lagi wizard setelah sekitar satu menit. Bila Reset guest identity masih tidak tersedia, alasan pada langkah tersebut menjelaskan apa yang kurang di host.

Untuk klien API ​

POST /api/v1/vms/{id}/clone dan POST /api/v1/vms/from-template menerima field guest_identity: reset (me-reset identitas, atau gagal dengan 409 dan kode IDENTITY_RESET_UNAVAILABLE atau IDENTITY_RESET_UNSUPPORTED_GUEST bila tidak mungkin), auto (me-reset bila memungkinkan, bila tidak membuat salinan persis dan melaporkan peringatan), atau keep (salinan persis). Bila tidak diisi, default host yang berlaku. GET /api/v1/vms/{id}/clone-capabilities melaporkan apakah host VM tersebut mampu me-reset identitas. Kegagalan tool reset itu sendiri (error atau timeout) dilaporkan dengan kode IDENTITY_RESET_FAILED (HTTP 500).


6. Opsi Penghapusan dan Pembersihan ​

Saat menghapus mesin virtual, Cockpit menyediakan opsi untuk mengelola sumber daya dasar:

  • Penghapusan Metadata: Menghapus pendaftaran VM dari Cockpit dan konfigurasi hypervisor host.
  • Pembersihan Penyimpanan: Secara default, menghapus VM tetap menyimpan disk virtualnya untuk mencegah kehilangan data. Administrator dapat mengaktifkan parameter remove_disks (menjalankan API DELETE /vms/:id?remove_disks=true) untuk menghapus semua volume disk virtual terkait dari datastore masing-masing.