KVM

Gambar KVM Tetamu dengan Libvirt

Gambar KVM Tetamu dengan Libvirt
VM mempunyai banyak kes penggunaan, salah satunya adalah kapasiti VM untuk digunakan sebagai mesin ujian. Anda boleh bereksperimen dalam VM, menggunakan patch dan meningkatkan ujian sebelum melakukan perkara yang sama pada sistem pengeluaran atau stesen kerja anda. Anda juga boleh menggunakan VM sekali pakai, yang kekurangan data peribadi atau sensitif, untuk ujian malware seperti yang dilakukan oleh kebanyakan komuniti keselamatan, pastikan bahawa rangkaian VM diasingkan dari host dan LAN anda.

Walau bagaimanapun, sangat melelahkan untuk memasang semula sistem operasi di dalam VM anda berulang kali. Ini menghalang aliran kerja anda dan, oleh itu, anda memerlukan cara yang boleh dipercayai untuk:

  1. Ambil gambar VM anda pada satu-satu masa tertentu.
  2. Mempunyai mekanisme untuk menggunakan snapshot untuk mengembalikan VM anda ke keadaan yang sebelumnya berfungsi.

Sebelum ini saya telah membincangkan bagaimana snapshot berfungsi di VirtualBox dan kali ini saya ingin membincangkan snapshot dalam Libvirt. Saya akan menggunakan QEMU-KVM sebagai penyelia backend untuk pemasangan Libvirt saya. Kes anda mungkin berbeza, tetapi fungsi dan antara muka keseluruhan tidak boleh sangat berbeza, kerana libvirt berusaha sebaik mungkin untuk menyeragamkan antara muka frontend.

Sekiranya anda tidak biasa dengan libvirt dan qemu-kvm, berikut adalah panduan bagaimana anda boleh menyiapkan KVM di Debian.

Membuat Ringkasan

Terdapat beberapa cara untuk mengambil dan mengurus tangkapan gambar VM anda. Aplikasi GUI seperti virt-manager dan oVirt menawarkan fungsi dan anda bahkan boleh menulis skrip tersuai untuk berinteraksi dengan libvirt API yang menguruskan keseluruhan rangkuman gambar untuk anda.

Walau bagaimanapun, saya akan menggunakan antara muka baris perintah virsh untuk menunjukkan bagaimana anda boleh menguruskan VM dan snapshot mereka. Utiliti ini dilengkapi dengan hampir semua pemasangan libvirt lalai dan harus tersedia di pelbagai pengedaran.

Untuk arahan di bawah, pastikan untuk mengganti nama VM saya, VM1, dengan nama sebenar VM anda. Libvirt sering merujuk kepada mesin maya dan bekas sebagai Domain. Oleh itu, jika anda melihat mesej ralat yang menunjukkan, katakan, "tentukan nama domain", anda perlu memberikan nama VM anda sebagai salah satu argumen kepada perintah. Gunakan arahan berikut untuk menyenaraikan semua VM di bawah pengurusan Libvirt.

$ $ senarai - semua

Untuk mengambil gambaran ringkas VM jalankan:

$ virsh snapshot-buat VM1

Dan untuk menyenaraikan semua snapshot VM yang diberikan gunakan arahan:

$ virsh snapshot-list VM1
Negeri Masa Penciptaan Nama
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 berjalan

Anda dapat melihat bahawa gambar dibuat. Secara lalai, nama gambar adalah cap waktu penciptaannya (bilangan saat sejak zaman UNIX). Lajur Waktu Penciptaan menunjukkan waktu penciptaan secara mudah dibaca oleh manusia dan lajur Negeri menunjukkan keadaan VM ketika gambar diambil. Ketika VM ini berjalan, keadaan snapshot juga 'berjalan', tetapi itu tidak bermaksud snapshot itu sendiri sedang berjalan. Ia tidak akan berubah seiring dengan masa. Fungsi ini juga dikenali sebagai snapshot langsung dan sangat berharga kerana ia membolehkan anda mengambil gambar VM anda tanpa waktu henti. Tetamu KVM, sekurang-kurangnya, berfungsi dengan baik dengan gambar langsung.

Beban kerja tertentu, bagaimanapun, memerlukan anda menghentikan VM sebelum diambil gambar. Ini memastikan bahawa data dalam snapshot itu konsisten dan tidak ada fail separuh tertulis atau data yang hilang. Sekiranya beban kerja yang dijalankan di VM anda mempunyai IO yang tinggi, anda mungkin perlu mematikan VM sebelum membuat snapshot. Mari buat satu dengan cara ini.

$ virsh penutupan VM1

Domain VM1 sedang ditutup

$ virsh snapshot-buat VM1

Snapshot domain 1556533868 dibuat

[dilindungi e-mel]: ~ # senarai snapshot virsh VM1
Negeri Masa Penciptaan Nama
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 berjalan
1556533868 2019-04-29 16:01:08 +0530 tutup
 
$ virsh memulakan VM1
Domain VM1 dimulakan

Sekiranya anda ingin memberi nama gambar selain daripada cap waktu, gunakan arahan:

$ virsh snapshot-create-as VM1 --name snap1
Negeri Masa Penciptaan Nama
------------------------------------------------------------
1556533387 2019-04-29 15:53:07 +0530 berjalan
1556533868 2019-04-29 16:01:08 +0530 tutup
snap1 2019-05-02 22:27:48 +0530 berjalan

Jelas sekali, anda tidak perlu menamakannya snap1, anda boleh memilih nama yang sesuai.

Berbalik dari Snapshot

Untuk mengambil gambar tidak ada gunanya jika anda tidak dapat kembali ke sana. Sekiranya anda perlu kembali ke snapshot cukup gunakan arahan:

$ virsh snapshot-revert $ VMName $ snapshot-name

Nama itu boleh menjadi cap waktu atau nama pengguna yang diberikan kepada snapshot.

Pastikan bahawa tidak ada data penting dalam VM semasa anda, atau jika ada yang penting, kemudian ambil gambar VM semasa anda dan kemudian kembali ke snapshot lama.

Kelebihan QCOW2

Mekanisme copy-on-write fail qcow2 membolehkan setiap snapshot mengambil ruang yang sangat kecil. Ruang yang diambil oleh snapshot meningkat dari masa ke masa ketika gambar berjalan menyimpang dari snapshot. Oleh kerana selagi anda tidak menulis semula banyak data, tangkapan gambar anda hanya memerlukan beberapa MB simpanan.

Ini juga bermaksud bahawa tangkapan gambar juga sangat cepat. Sejak itu, mekanisme copy-on-write hanya perlu menandakan cap waktu ketika gambar diambil. Blok data yang ditulis ke fail qcow2 setelah snapshot tidak menjadi miliknya, tetapi yang lebih lama. Ia semudah itu. Bangku ujian saya menggunakan cakera keras 5400RPM yang tidak semestinya berada di puncak prestasinya, masih memerlukan masa kurang dari beberapa saat untuk mengambil gambar langsung VM pada cakera ini.

Kesimpulannya

Seperti kebanyakan utiliti yang berkaitan dengan libvirt dan virsh, fungsi snapshot menyediakan antara muka yang sangat fleksibel dengan ciri kelas perusahaan seperti snapshot langsung bersama faedah mekanisme copy-on-write.

Konvensyen penamaan lalai juga mempermudah skrip shell untuk membuang snapshot lama secara berkala dan menggantinya dengan yang baru. Salah satu artikel lama saya mengenai polisi snapshot dan snapshot OpenZFS juga boleh digunakan untuk tetamu KVM anda. Untuk maklumat lebih lanjut mengenai utiliti snapshot virsh, anda boleh menggunakan arahan snapshot bantuan virsh. Halaman bantuan sangat kecil, tepat dan senang difahami.

5 Produk Tetikus Komputer Ergonomik Teratas untuk Linux
Adakah penggunaan komputer yang berpanjangan menyebabkan rasa sakit di pergelangan tangan atau jari anda? Adakah anda mengalami sendi kaku dan selalu ...
Cara Mengubah Tetapan Tetikus dan Pad Sentuh Menggunakan Xinput di Linux
Sebilangan besar pengedaran Linux dihantar dengan perpustakaan "libinput" secara lalai untuk menangani peristiwa input pada sistem. Ia dapat memproses...
Buat semula butang tetikus anda secara berbeza untuk perisian yang berbeza dengan X-Mouse Button Control
Mungkin anda memerlukan alat yang dapat mengubah kawalan tetikus anda dengan setiap aplikasi yang anda gunakan. Sekiranya ini berlaku, anda boleh menc...