libvirt

Tentang Libvirt

Tentang Libvirt
Libvirt adalah salah satu alat manajemen virtualisasi paling populer di luar sana. Ini terdiri dari API manajemen dan daemon yang dengannya Anda dapat berinteraksi dengan tumpukan virtualisasi Anda. Libvirt berusaha untuk menyatukan proses manajemen untuk semua berbagai teknologi virtualisasi dari KVM ke VMWare ESX dan bahkan BHyve. Itu juga dapat mengelola wadah LXC dan bahkan beberapa teknologi paravirtualisasi seperti Xen.

Hanya karena mendukung beragam teknologi, tidak berarti Anda harus terbiasa dengan semuanya. Anda dapat fokus pada satu teknologi seperti KVM dan membangun pengalaman libvirt Anda di sekitarnya. Artikel ini akan mencoba dan memberikan kritik komprehensif terhadap teknologi dari pengalaman pribadi penulis dengannya.

Latar Belakang

Untuk memahami kemampuan Libvirt dan bagaimana Anda dapat menggunakannya di sistem Anda sendiri, Anda dapat mengikuti panduan berikut:

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

Jika Anda sudah terbiasa dengan alat-alat seperti virsh, virt-install, virt-manager, oVirt, dll maka Anda sudah menggunakan libvirt tanpa menyadarinya. Alat yang disebutkan di atas menggunakan libvirt di backend dan menyediakan antarmuka yang ramah pengguna baik itu baris perintah atau GUI.

Arsitektur

Libvirt dirancang untuk bekerja dengan hypervisor apa pun dan telah berkembang selama bertahun-tahun untuk bekerja dengan beragam hypervisor. Daemon libvirt memperlihatkan API yang dapat digunakan oleh aplikasi seperti virt-manager atau virsh (dan bahkan skrip Python kustom Anda). Permintaan pengguna diterima oleh API. Permintaan ini bisa berupa apa saja seperti membuat tamu KVM, atau menunjukkan kepada saya memori yang digunakan oleh wadah LX tertentu, dll.

Daemon libvirt kemudian mendelegasikan permintaan ke driver libvirt hypervisor yang sesuai appropriate. Driver ini memahami dan mengimplementasikan semua spesifikasi teknologi virtualisasi yang diberikan dan menjalankan instruksi yang sesuai.

Ada kelas driver yang berbeda untuk menangani penyimpanan dan bahkan jaringan VM.

Kolam dan Volume

VM membutuhkan banyak penyimpanan. Teknologi penyimpanan itu sendiri sangat bervariasi dari hypervisor ke hypervisor. VMWare menggunakan format vmdk sendiri, QEMU suka menggunakan qcow2, ada juga gambar disk mentah dan gambar LXC adalah cerita yang berbeda juga. Selain itu, Anda ingin mengelompokkan semua image disk VM dan menyediakan media penyimpanan yang berbeda seperti server NFS, kumpulan data ZFS, atau hanya direktori. Ini memungkinkan Anda untuk menggunakan libvirt di berbagai kasus penggunaan yang berbeda dari satu server rumah ke solusi virtualisasi skalabel tingkat perusahaan.

Dalam bahasa libvirt, satu perangkat penyimpanan virtual yang terkait dengan VM apa pun, seperti file gambar qcow2, mentah atau vmdk dari VM atau ISO yang dapat dipasang dikenal sebagai volume. Media penyimpanan yang digunakan pada host untuk menyimpan sekelompok volume terkait dikenal sebagai kolam. Anda dapat menggunakan server NFS sebagai kumpulan, atau set data ZFS, seperti yang disebutkan sebelumnya. Jika Anda tidak memiliki solusi penyimpanan yang mewah, Anda cukup menggunakan direktori.

Secara default, libvirt memiliki dua kumpulan yang berbeda. Pertama adalah /var/lib/libvirt/images dan /var/lib/libvirt/boot. Volume untuk satu VM dapat dibagi menjadi beberapa kumpulan. Misalnya, saya menyimpan semua gambar cloud bersih dan ISO penginstal OS di /var/lib/libvirt/boot pool dan untuk masing-masing VM rootfs diinstal dalam file gambar yang disimpan di /var/lib/libvirt/images.

Anda bahkan dapat memiliki satu kumpulan untuk satu VM, atau Anda dapat membagi kumpulan lebih lanjut untuk snapshot VM, cadangan, dll. Semuanya sangat fleksibel dan memungkinkan Anda mengatur data sesuai kenyamanan Anda.

Konfigurasi

Virsh adalah alat populer untuk mengonfigurasi semuanya mulai dari VM, jaringan mesin virtual, dan bahkan penyimpanan. File konfigurasi itu sendiri hidup dalam format XML. Anda akan menemukan diri Anda mengeluarkan perintah seperti:

$virsh dumpxml VM1
$ virsh edit VM1

Dan juga, ada sub-perintah seperti net-dumpxml dan pool-edit untuk melihat atau mengonfigurasi konfigurasi kumpulan, jaringan, dll. Jika Anda ingin tahu di mana file konfigurasi ini berada, Anda dapat membuka /etc/libvirt/ dan menemukan direktori terkait hypervisors Anda.  Direktori induk /etc/libvirt/ sendiri berisi banyak konfigurasi global seperti driver (mis.g qemu.conf dan lxc.conf ) dan konfigurasinya serta perilaku default libvirt.

Untuk melihat konfigurasi spesifik dari masing-masing komponen seperti VM, kumpulan, dan volume, Anda harus membuka direktori yang sesuai. Untuk tamu 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 jaringan
-rw------- 1 root root 3527 Apr 20 19:10 VM1.xml
-rw------- 1 root root 3527 Apr 20 19:09 VM2.xml

Direktori autostart akan berisi symlink ke VM1.xml dan VM2.xml jika Anda telah mengonfigurasi VM untuk memulai otomatis saat sistem host melakukan boot ( $virsh autostart VM1 ).

Demikian pula, /etc/libvirt/qemu/network berisi konfigurasi untuk jaringan default tamu qemu. /etc/libvirt/storage berisi XML yang mendefinisikan kumpulan penyimpanan.

Kesimpulan

Jika Anda tertarik untuk menyiapkan host virtualisasi Anda sendiri, tempat yang baik untuk memulai adalah artikel ini di mana saya menunjukkan cara menginstal tamu QEMU-KVM di host Debian menggunakan libvirt dan alat terkait.

Setelah itu Anda dapat mulai bermain dengan virsh CLI dan melihat serta mengelola entitas seperti Domain (libvirt memanggil VM tamu sebagai domain) jaringan, kumpulan penyimpanan, dan volume. Ini akan membuat Anda cukup nyaman dengan teknologi sehingga Anda dapat beralih ke konsep lain seperti snapshot dan filter jaringan. Saya harap artikel ini akan terbukti menjadi titik awal yang baik untuk Anda.

Cara Menggunakan Xdotool untuk Merangsang Klik Mouse dan Keystroke di Linux
Xdotool adalah alat baris perintah sumber terbuka dan gratis untuk mensimulasikan klik mouse dan penekanan tombol. Artikel ini akan membahas panduan s...
5 Produk Mouse Komputer Ergonomis Terbaik untuk Linux
Apakah penggunaan komputer yang lama menyebabkan rasa sakit di pergelangan tangan atau jari Anda?? Apakah Anda menderita persendian yang kaku dan teru...
Cara Mengubah Pengaturan Mouse dan Touchpad Menggunakan Xinput di Linux
Sebagian besar distribusi Linux dikirimkan dengan pustaka "libinput" secara default untuk menangani kejadian input pada sistem. Ini dapat memproses ke...