KVM

Snapshot Tamu KVM dengan Libvirt

Snapshot Tamu KVM dengan Libvirt
VM memiliki banyak kasus penggunaan, salah satunya adalah kapasitas VM untuk digunakan sebagai mesin uji. Anda dapat bereksperimen dalam VM, menerapkan tambalan, dan menguji pemutakhiran sebelum melakukan hal yang sama pada sistem produksi atau workstation Anda. Anda juga dapat menggunakan VM sekali pakai, yang tidak memiliki data pribadi atau sensitif, untuk pengujian malware seperti yang dilakukan sebagian besar komunitas keamanan, pastikan saja jaringan VM diisolasi dari host dan LAN Anda.

Namun, memang melelahkan untuk menginstal ulang sistem operasi di dalam VM Anda berulang kali. Ini menghambat alur kerja Anda dan, oleh karena itu, Anda memerlukan cara yang andal untuk:

  1. Ambil snapshot VM Anda pada titik waktu tertentu.
  2. Memiliki mekanisme untuk menggunakan snapshot untuk mengembalikan VM Anda ke status kerja sebelumnya.

Saya sebelumnya telah membahas cara kerja snapshot di VirtualBox dan kali ini saya ingin membahas snapshot di dalam Libvirt. Saya akan menggunakan QEMU-KVM sebagai hypervisor backend untuk instalasi Libvirt saya. Kasing Anda mungkin berbeda, tetapi fungsionalitas dan antarmuka keseluruhan seharusnya tidak terlalu berbeda, karena libvirt mencoba yang terbaik untuk membakukan antarmuka frontend.

Jika Anda tidak terbiasa dengan libvirt dan qemu-kvm, berikut adalah panduan tentang bagaimana Anda dapat mengatur KVM di Debian.

Membuat Cuplikan

Ada beberapa cara yang dapat Anda gunakan untuk mengambil dan mengelola snapshot VM Anda. Aplikasi GUI seperti virt-manager dan oVirt menawarkan fungsionalitas dan Anda bahkan dapat menulis skrip khusus untuk berinteraksi dengan libvirt API yang mengelola seluruh rentang snapshot untuk Anda.

Namun, saya akan menggunakan antarmuka baris perintah virsh untuk menunjukkan bagaimana Anda dapat mengelola VM Anda dan snapshotnya. Utilitas ini hadir dengan hampir semua instalasi libvirt default dan harus tersedia di berbagai distribusi.

Untuk perintah di bawah ini pastikan untuk mengganti nama VM saya, VM1, dengan nama sebenarnya dari VM Anda. Libvirt sering merujuk ke mesin virtual dan wadah sebagai Domain. Jadi jika Anda melihat pesan kesalahan yang menyarankan, katakanlah, "tentukan nama domain", Anda perlu memberikan nama VM Anda sebagai salah satu argumen untuk perintah. Gunakan perintah berikut untuk membuat daftar semua VM di bawah manajemen Libvirt.

$ daftar virsh --semua

Untuk mengambil snapshot dari VM cukup jalankan:

$ virsh snapshot-buat VM1

Dan untuk membuat daftar semua snapshot dari VM yang diberikan, gunakan perintah:

$ daftar snapshot virsh VM1
Nama                Waktu Pembuatan            Status
------------------------------------------------------------
1556533387          29-04-2019 15:53:07 +0530 berjalan

Anda dapat melihat bahwa snapshot dibuat. Secara default, nama snapshot adalah cap waktu pembuatannya (jumlah detik sejak zaman UNIX). Kolom Waktu Pembuatan menunjukkan waktu pembuatan dengan cara yang dapat dibaca manusia dan kolom Status menunjukkan status VM saat dijepret. Saat VM ini berjalan, status snapshot juga 'berjalan', tetapi itu tidak berarti bahwa snapshot itu sendiri sedang berjalan. Itu tidak akan berubah seiring waktu. Fitur ini juga dikenal sebagai live snapshot dan cukup berharga karena memungkinkan Anda untuk mengambil snapshot dari VM Anda tanpa downtime. Para tamu KVM, setidaknya, bekerja dengan baik dengan snapshot langsung.

Namun, beban kerja tertentu memang mengharuskan Anda untuk menghentikan VM sebelum di-snapshot. Ini memastikan bahwa data dalam snapshot konsisten dan tidak ada file yang setengah ditulis atau data yang hilang. Jika beban kerja yang berjalan di VM Anda memiliki IO tinggi, Anda mungkin perlu mematikan VM sebelum membuat snapshot. Mari kita buat dengan cara ini.

$ virsh mematikan VM1

Domain VM1 sedang dimatikan

$ virsh snapshot-buat VM1

Snapshot domain 1556533868 dibuat

[dilindungi email]:~# daftar snapshot virsh VM1
Nama                Waktu Pembuatan            Negara
------------------------------------------------------------
1556533387          29-04-2019 15:53:07 +0530 berjalan
1556533868          29-04-2019 16:01:08 +0530 mati
 
$ virsh mulai VM1
Domain VM1 dimulai

Jika Anda ingin memberi nama snapshot selain stempel waktu, gunakan perintah:

$ virsh snapshot-buat-sebagai VM1 --name snap1
Nama                Waktu Pembuatan            Status
------------------------------------------------------------
1556533387          29-04-2019 15:53:07 +0530 berjalan
1556533868          29-04-2019 16:01:08 +0530 mati
snap1               02-05-2019 22:27:48 +0530 berjalan

Jelas, Anda tidak perlu menamainya snap1, Anda dapat memilih nama yang nyaman.

Mengembalikan dari Snapshot

Mengambil snapshot tidak ada gunanya jika Anda tidak dapat kembali ke sana. Jika, Anda perlu kembali ke snapshot cukup gunakan perintah:

$ virsh snapshot-kembalikan $VMName $snapshot-name

Nama dapat berupa stempel waktu atau nama yang ditetapkan pengguna yang diberikan ke snapshot.

Pastikan tidak ada data penting di VM Anda saat ini, atau jika ada sesuatu yang penting, ambil snapshot dari VM Anda saat ini dan kembali ke snapshot lama.

Manfaat QCOW2

Mekanisme copy-on-write file qcow2 memungkinkan setiap snapshot mengambil ruang yang sangat kecil. Ruang yang diambil oleh snapshot meningkat seiring waktu karena gambar yang berjalan menyimpang dari snapshot. Jadi selama Anda tidak menulis ulang banyak data, snapshot Anda hanya akan mengambil beberapa MB penyimpanan.

Ini juga berarti bahwa snapshotnya juga sangat cepat. Karena, mekanisme copy-on-write hanya perlu menandai stempel waktu saat snapshot diambil. Blok data yang ditulis ke file qcow2 setelah snapshot bukan miliknya, tetapi yang lebih lama melakukannya. Sesederhana itu. Bangku pengujian saya menggunakan hard drive 5400RPM yang sama sekali tidak berada di puncak kinerjanya, masih membutuhkan waktu kurang dari beberapa detik untuk mengambil snapshot langsung dari VM pada disk ini.

Kesimpulan

Seperti kebanyakan utilitas terkait libvirt dan virsh, fungsionalitas snapshot menyediakan antarmuka yang sangat fleksibel dengan fitur tingkat perusahaan seperti snapshotting langsung bersama dengan manfaat mekanisme copy-on-write.

Konvensi penamaan default juga memudahkan skrip shell untuk menghapus snapshot lama secara berkala dan menggantinya dengan yang lebih baru. Salah satu artikel lama saya tentang snapshot OpenZFS dan kebijakan snapshot juga dapat diterapkan untuk tamu KVM Anda. Untuk informasi lebih lanjut tentang utilitas snapshot virsh, Anda dapat menggunakan perintah snapshot bantuan virsh. Halaman bantuan sangat kecil, tepat dan mudah dimengerti.

Tutorial OpenTTD
OpenTTD adalah salah satu game simulasi bisnis paling populer di luar sana. Dalam game ini, Anda perlu membuat bisnis transportasi yang luar biasa. Na...
SuperTuxKart untuk Linux
SuperTuxKart adalah judul hebat yang dirancang untuk memberi Anda pengalaman Mario Kart gratis di sistem Linux Anda. Ini cukup menantang dan menyenang...
Pertempuran untuk Tutorial Westnoth
The Battle for Wesnoth adalah salah satu game strategi open source terpopuler yang bisa kamu mainkan saat ini. Tidak hanya game ini telah dikembangkan...