Migrasi Mesin Virtual dan Penyimpanan
Cockpit memfasilitasi migrasi mesin virtual (VM) yang sedang berjalan dan disk virtualnya di antara host Vapor fisik dan storage pool tanpa menyebabkan gangguan pada beban kerja atau downtime bagi pengguna.
1. Migrasi Komputasi Langsung (Compute Live Migration)
Migrasi komputasi langsung memindahkan status eksekusi runtime yang aktif (vCPU dan RAM) dari VM yang sedang berjalan dari host fisik asal ke host fisik tujuan.
Tergantung pada arsitektur penyimpanan, Cockpit menjalankan migrasi komputasi dengan salah satu dari dua cara berikut:
A. Migrasi Penyimpanan Bersama (Shared Storage Migration)
- Arsitektur: Disk virtual VM berada pada storage pool jaringan bersama (seperti NFS, OCFS2, atau SAN) yang dapat diakses oleh host asal dan tujuan.
- Alur Kerja: Hanya status CPU dan halaman memori (RAM) yang disalin melalui jaringan ke host target. Karena disk virtual tidak perlu diduplikasi atau ditransfer, proses pengalihan (switchover) selesai dalam hitungan detik.
B. Migrasi Tanpa Penyimpanan Bersama (Shared-Nothing / Block Migration)
- Arsitektur: Disk virtual VM disimpan di disk lokal (misalnya, SSD lokal) milik host asal.
- Alur Kerja: Cockpit memulai penyalinan tingkat blok (block-level copy) dari file disk virtual melalui jaringan saat VM sedang berjalan. Secara bersamaan, halaman memori dan status eksekusi CPU disinkronkan. Setelah salinan blok dan memori sepenuhnya sinkron, Cockpit melakukan pengalihan akhir. Waktu migrasi bergantung pada ukuran volume disk dan bandwidth jaringan.
2. Migrasi Khusus Penyimpanan (Storage-Only Migration)
Migrasi penyimpanan memindahkan file disk virtual VM di antara datastore (storage pool) yang berbeda pada host fisik yang sama saat VM tetap aktif.
- Mode Salin Penyimpanan (Storage Copy Mode): Menyalin citra disk yang mendasarinya (biasanya dalam format qcow2 atau raw) blok-demi-blok ke storage pool target.
- Auto-Pivot: Setelah duplikasi disk selesai, Cockpit menjalankan operasi pivot otomatis pada runtime. Hypervisor mengalihkan operasi penulisan disk baru ke file disk target yang baru, mengosongkan penulisan yang tersisa, dan menghapus file disk asal secara aman untuk memulihkan ruang penyimpanan.
3. Konfigurasi Migrasi Lanjutan
Administrator dapat mengonfigurasi parameter lanjutan berikut saat memulai migrasi:
- Live: Mengaktifkan mode migrasi langsung. Menonaktifkan opsi ini akan menjalankan migrasi offline/dingin (menangguhkan VM sebelum memindahkannya).
- Persistent: Memastikan definisi XML VM ditulis secara permanen ke konfigurasi libvirt host target, sehingga VM tetap berada di sana setelah host target dinyalakan ulang.
- Undefine Source: Menghapus definisi XML VM dari konfigurasi libvirt host asal setelah migrasi berhasil untuk menjaga kerapian lingkungan sistem.
- Auto Converge: Memitigasi skenario di mana OS tamu menulis ke memori (mengotori halaman memori) lebih cepat daripada kemampuan jaringan menyalinnya ke host target. Saat aktif, pengaturan ini secara dinamis membatasi (throttle) tingkat eksekusi CPU VM tamu untuk memungkinkan sinkronisasi memori selesai dan migrasi dapat berhasil.
- Max Bandwidth: Membatasi throughput jaringan maksimum (dalam MB/s) yang dialokasikan untuk lalu lintas migrasi, mencegah kemacetan jaringan pada link fisik bersama.
4. Validasi Keamanan Sebelum Migrasi (Pre-Flight Checks)
Untuk mencegah kegagalan migrasi dan menghindari isolasi jaringan VM atau kerusakan penyimpanan, Cockpit menjalankan pemeriksaan otomatis sebelum mengeksekusi migrasi:
- Pemeriksaan Akses Penyimpanan: Memverifikasi bahwa host tujuan memiliki akses ke datastore target dan dapat menemukan atau membuat sumber daya disk yang diperlukan.
- Pemeriksaan Jembatan Jaringan: Memastikan host tujuan terhubung ke switch jaringan virtual (bridge atau distributed network) yang sama dengan host asal sehingga VM tetap mempertahankan konektivitas jaringannya setelah migrasi.
- Pemeriksaan Kompatibilitas CPU: Memvalidasi bahwa CPU fisik host tujuan mendukung rangkaian instruksi yang diperlukan oleh model CPU VM yang ditentukan.
- Pemeriksaan Kepercayaan TLS Host: Memastikan bahwa host Vapor asal dan tujuan telah membentuk hubungan kepercayaan TLS saling menguntungkan (mutual TLS trust) untuk mengamankan aliran data migrasi.