kebebasan

Mengenai Libvirt

Mengenai Libvirt
Libvirt adalah salah satu alat pengurusan virtualisasi paling popular di luar sana. Ini terdiri daripada API pengurusan dan daemon dengan mana anda dapat berinteraksi dengan timbunan virtualisasi anda. Libvirt berusaha untuk menyatukan proses pengurusan untuk semua teknologi virtualisasi dari KVM hingga VMWare ESX dan juga BHyve. Ia juga dapat menguruskan kontena LXC dan bahkan beberapa teknologi paravirtualization seperti Xen.

Hanya kerana menyokong sebilangan besar teknologi, tidak bermaksud anda harus memahami semua itu. Anda boleh menumpukan pada satu teknologi seperti KVM dan membina pengalaman bebas di sekitarnya. Artikel ini akan mencuba dan memberikan kritikan menyeluruh terhadap teknologi dari pengalaman peribadi penulis dengannya.

Latar belakang

Untuk mengetahui apa yang mampu Libvirt dan bagaimana anda boleh menggunakannya pada sistem anda sendiri, anda boleh mengikuti panduan berikut:

  1. Pasang KVM dan Libvirt di Debian
  2. Libvirt dengan Python

Sekiranya anda sudah biasa dengan alat seperti virsh, virt-install, virt-manager, oVirt, dll maka anda sudah menggunakan libvirt tanpa menyedarinya. Alat yang disebutkan di atas menggunakan libvirt di backend dan menyediakan antara muka yang mesra pengguna sama ada itu command line atau GUI.

Senibina

Libvirt dirancang untuk bekerja dengan mana-mana hypervisor dan telah berkembang selama bertahun-tahun untuk bekerja dengan pelbagai supervisor. Libvirt daemon memaparkan API yang dapat digunakan oleh aplikasi seperti virt-manager atau virsh (dan bahkan skrip Python tersuai anda). Permintaan pengguna diterima oleh API. Permintaan ini boleh jadi seperti membuat tetamu KVM, atau menunjukkan kepada saya memori yang digunakan oleh kontianer LX, dll.

Kemudian daemon libvirt menyerahkan permintaan tersebut kepada pemandu hypervisor libvirt yang sesuai. Pemacu ini memahami dan melaksanakan semua spesifikasi teknologi virtualisasi yang diberikan dan melaksanakan arahan dengan sewajarnya.

Terdapat kelas pemacu yang berbeza untuk mengendalikan storan dan juga rangkaian VM.

Kolam dan Isipadu

VM memerlukan banyak simpanan. Teknologi penyimpanan itu sendiri sangat berubah dari hypervisor ke hypervisor. VMWare menggunakan format vmdk sendiri, QEMU suka menggunakan qcow2, ada juga gambar cakera mentah dan gambar LXC adalah cerita yang berbeza juga. Selain itu, anda ingin mengumpulkan semua gambar cakera VM dan memberikannya media storan yang berbeza seperti pelayan NFS, set data ZFS atau hanya direktori. Ini membolehkan anda menggunakan libvirt dalam pelbagai kes penggunaan yang berbeza dari pelayan rumah tunggal hingga penyelesaian virtualisasi berskala perusahaan.

Dalam libvirt vernacular, satu peranti storan maya yang dikaitkan dengan mana-mana VM, seperti fail gambar qcow2, mentah atau vmdk VM atau ISO yang boleh dipasang dikenali sebagai isi padu. Media penyimpanan yang digunakan pada hos untuk menyimpan sekumpulan jilid yang berkaitan dikenali sebagai kolam. Anda boleh menggunakan pelayan NFS sebagai kumpulan, atau set data ZFS, seperti yang telah disebutkan sebelumnya. Sekiranya anda tidak mempunyai penyelesaian penyimpanan mewah, anda hanya boleh menggunakan direktori.

Secara lalai, libvirt mempunyai dua kumpulan yang berbeza. Pertama ialah / var / lib / libvirt / images dan / var / lib / libvirt / boot. Isi padu untuk satu VM dapat dibahagi kepada beberapa kumpulan. Sebagai contoh, saya menyimpan semua imej awan bersih dan ISO pemasang OS di kumpulan / var / lib / libvirt / boot dan untuk VMs rootfs dipasang dalam fail gambar yang disimpan di / var / lib / libvirt / images.

Anda bahkan boleh mempunyai satu kumpulan untuk satu VM, atau anda boleh memisahkan kumpulan lebih jauh untuk snapshot, sandaran, dan lain-lain VM. Semuanya sangat fleksibel dan membolehkan anda mengatur data mengikut keselesaan anda.

Konfigurasi

Virsh adalah alat yang popular untuk mengkonfigurasi segala-galanya dari VM anda, rangkaian mesin maya dan juga storan. Fail konfigurasi itu sendiri hidup dalam format XML. Anda akan mendapati anda mengeluarkan arahan seperti:

$ virsh dumpxml VM1
$ virsh edit VM1

Begitu juga, ada subkomando seperti net-dumpxml dan pool-edit untuk melihat atau mengkonfigurasi konfigurasi kumpulan, rangkaian, dll. Sekiranya anda ingin tahu di mana fail konfigurasi ini tinggal, anda boleh pergi ke / etc / libvirt / dan cari direktori berkenaan.  Direktori induk / etc / libvirt / itu sendiri mengandungi banyak konfigurasi global seperti pemacu (e.g qemu.conf dan lxc.conf) dan konfigurasi mereka dan tingkah laku default libvirt.

Untuk melihat konfigurasi tertentu komponen individu seperti VM, kumpulan dan jumlah, anda mesti pergi ke direktori yang sesuai. Untuk tetamu qemu ini adalah / etc / libvirt / qemu

root @ deb: / etc / libvirt / qemu # ls -al
jumlah 24
drwxr-xr-x 4 root root 4096 21 Apr 10:39 .
drwxr-xr-x 6 root root 4096 28 Apr 17: 19…
drwxr-xr-x 2 root root 4096 21 Apr 10:39 autostart
drwxr-xr-x 3 root root 4096 14 Apr 13:49 rangkaian
-rw ------- 1 root root 3527 20 Apr 19:10 VM1.xml
-rw ------- 1 root root 3527 20 Apr 19:09 VM2.xml

Direktori autostart akan mengandungi symlink ke VM1.xml dan VM2.xml jika anda telah memastikan VM untuk memulakan secara automatik semasa sistem hos dimulakan ($ virsh autostart VM1).

Begitu juga, / etc / libvirt / qemu / network mengandungi konfigurasi untuk rangkaian lalai seorang tetamu qemu. / Etc / libvirt / storage mengandungi XML yang menentukan kumpulan penyimpanan.

Kesimpulannya

Sekiranya anda berminat untuk mengatur host virtualisasi anda sendiri, tempat yang baik untuk memulakan adalah artikel ini di mana saya menunjukkan cara memasang tetamu QEMU-KVM pada host Debian menggunakan libvirt dan alat yang berkaitan.

Selepas itu anda boleh mula bermain dengan virsh CLI dan melihat dan menguruskan entiti seperti Domain (libvirt memanggil tetamu VM sebagai domain) rangkaian, kumpulan simpanan dan jumlah. Ini akan menjadikan anda cukup selesa dengan teknologi yang boleh anda gunakan untuk konsep lain seperti tangkapan gambar dan penapis rangkaian. Saya harap artikel ini akan menjadi titik permulaan yang baik untuk anda.

Cara Menggunakan AutoKey untuk Mengautomasikan Permainan Linux
AutoKey adalah utiliti automasi desktop untuk Linux dan X11, yang diprogramkan dalam Python 3, GTK dan Qt. Dengan menggunakan skrip dan fungsi MACRO, ...
Cara Menunjukkan Kaunter FPS dalam Permainan Linux
Permainan Linux mendapat dorongan utama ketika Valve mengumumkan sokongan Linux untuk klien Steam dan permainan mereka pada tahun 2012. Sejak itu, ban...
Cara memuat turun dan Mainkan Sid Meier's Civilization VI di Linux
Pengenalan permainan Civilization 6 adalah konsep moden mengenai konsep klasik yang diperkenalkan dalam siri permainan Age of Empires. Idea itu cukup ...