KVM

Menyiapkan timbunan Libvirt QEMU dan KVM di Debian

Menyiapkan timbunan Libvirt QEMU dan KVM di Debian
Virtualisasi berasaskan QEMU-KVM adalah inti timbunan virtualisasi berasaskan Linux. Ia adalah sumber percuma dan terbuka dan merupakan salah satu teknologi virtualisasi yang paling banyak berlaku di seluruh industri. Sebilangan besar penyedia perkhidmatan awan menggunakan KVM dan untuk alasan yang baik. Ia menawarkan tumpukan virtualisasi yang sangat cekap, namun sangat selamat dan tidak ada perlesenan berbelit untuk ditangani. Ini tidak berlaku dengan persediaan Hyper-V atau VMWare biasa anda. Namun, pertukarannya adalah bahawa penyediaannya boleh menjadi sangat kompleks, terutama bagi pengguna yang tidak berpengalaman. Artikel ini bertujuan untuk mengurangkan kerumitan ini bagi pembaca.

Dengan itu, mari kita cuba dan siapkan hypervisor KVM kita sendiri pada pelayan Debian 9 .

Mengaktifkan Sambungan VT-x atau AMD-V

Sebaik-baiknya, anda memerlukan pemasangan bersih dari sebaran Linux kegemaran anda pada mesin (bukan VM) yang mempunyai CPU yang cukup moden. Sebilangan besar CPU Intel moden menyokong sambungan VT-x dan, serupa juga, AMD mempunyai sambungan AMD-V. Sambungan ini adalah "penambahbaikan" yang terdapat di dalam silikon CPU anda yang membolehkan virtualisasi lebih cepat dan selamat. Anda harus mengaktifkan sambungan ini dari dalam menu BIOS / UEFI motherboard anda. Rujuk manual motherboard anda untuk maklumat lebih lanjut.

Sekiranya anda tidak mahu meredakan stesen kerja Linux yang berfungsi dengan sempurna, anda boleh menggunakan Mesin Maya di awan untuk menjalankan eksperimen ini. DigitalOcean, sebagai contoh, menawarkan mesin maya yang telah membolehkan virtualisasi bersarang. Ini membolehkan anda menjalankan VM di dalam VM yang dihoskan oleh awan anda (ini dikenali sebagai virtualisasi bersarang). Jelas, ini akan menjadi cara yang sangat tidak efisien untuk menjalankan hypervisor secara praktikal tetapi sebagai percubaan, ia akan berjalan lancar. Pastikan mendapat memori sekurang-kurangnya 4GB dan lebih daripada 2 CPU.

Setelah anda mengaktifkan peluasan tersebut, anda dapat mengesahkannya dengan menjalankan lscpu dan mencari entri Virtualisasi:

$ lscpu
… .
Maya: VT-x
… .

Sekarang kita mempunyai peluasan masa yang diperlukan untuk melangkah lebih jauh di timbunan.

Memasang KVM dan QEMU

KVM (atau Mesin Maya Berasaskan Kernel) terdiri dari beberapa modul kernel Linux yang akan memanfaatkan pelanjutan CPU yang kami aktifkan sebelumnya. QEMU di sisi lain terdiri daripada sekumpulan program negara pengguna yang memberi kita kemampuan meniru. Sebagai perisian mandiri QEMU dapat digunakan untuk menjalankan program dari satu seni bina, seperti ARM, yang lain seperti x86_64 dan sebaliknya. Ia boleh digunakan untuk menjalankan apa sahaja dari satu fail binari ke sistem operasi yang lengkap.

Kami tentu saja akan menggunakannya hanya untuk maya sistem operasi x86_64 pada platform x86_64. Dan untuk itu kita hanya memerlukan satu pakej:

$ sudo apt pasangkan qemu-kvm

Anda boleh mengesahkan bahawa pakej telah memuatkan semua modul yang diperlukan, dengan menjalankan:

$ lsmod | grep kvm
kvm_intel 200704 0
kvm 598016 1 kvm_intel
irqbypass 16384 1 kvm

Itu sahaja yang anda perlukan, secara teorinya. Tetapi anda akan segera menyedari bahawa itu praktikal. Mesin maya sangat kompleks dan kami memerlukan pembungkus perisian untuk menguruskan semua pelbagai tuntutan seperti rangkaian, pengurusan sistem fail, dll dengan cara yang cukup automatik (dan dapat diskalakan). Untuk melakukan ini, kita memerlukan perpustakaan / daemon virtualisasi Libvirt.

Memasang Libvirt

Libvirt adalah bahagian penting dari timbunan virtualisasi anda. Daemon libvirtd menjalankan perkhidmatan berkaitan virtualisasi di latar belakang. Perkhidmatan yang mendengar permintaan seperti "Buat VM", "Hancurkan VM", "Buat Rangkaian", dll dan melaksanakannya di dalamnya menggunakan utiliti Linux asas seperti binari qemu, iptables, dll.

Libvirt sangat umum dan boleh digunakan untuk mengurus tetamu KVM, kontena LXC dan tumpukan virtualisasi Xen. Kami hanya akan memberi tumpuan kepada Libvirt untuk tetamu KVM buat masa ini. Libvirtd memperlihatkan API yang dapat digunakan oleh aplikasi GUI seperti virt-manager atau oVirt atau alat baris perintah seperti virt-install, virsh, dll. Kita boleh menulis walaupun pelanggan sendiri yang menggunakan API standard yang sama.  Kami akan menggunakan alat baris perintah, seperti virsh dan virt-install, untuk memastikan semuanya tetap terserlah.

Mari pasang semua alat ini:

$ apt pasang libvirt-klien libvirt-daemon-sistem virtinst

Kami juga memerlukan pakej libguestfs-tools lain, untuk membantu kami mengedit atau mengubah cakera keras dan sistem fail VM tetamu.

Hebat! Sekarang kami telah memasang keseluruhan timbunan dan mengetahui bagaimana seni bina disusun. Untuk menggunakan libvirt (dan alat yang berkaitan) tambahkan pengguna anda ke kumpulan libvirt-qemu dan libvirt.

$ sudo usermod -aG libvirt
$ sudo usermod -aG libvirt-qemu

Atau jalankan arahan sebagai pengguna root.

Virsh dan Memulakan Rangkaian Lalai

Utiliti baris arahan virsh adalah sesuatu yang anda akan gunakan banyak ketika menguruskan VM anda. Anda hanya boleh menaip virsh dan masuk ke antara muka baris arahan virsh, atau menaip virsh [Pilihan] dari cengkerang biasa anda. Lihatlah hasil bantuan virsh setiap kali anda terjebak dengan beberapa operasi berkaitan VM.

Perintah virsh pertama yang akan kami gunakan akan memanggil rangkaian lalai yang boleh disambungkan oleh VM:

$ virsh net-autostart lalai
$ virsh net-start lalai

Ini akan memulakan rangkaian lalai dan akan memastikan bahawa ia dimulakan secara automatik semasa host dihidupkan semula. Untuk memeriksa perincian mengenai rangkaian lalai ini, gunakan perintah:

$ virsh net-dumpxml lalai

lalai
3d723dc6-49a4-4f73-bf6d-623d6b46b099












Fail xml dapat menunjukkan kepada anda berbagai kemungkinan alamat IP dan bagaimana mereka akan berkomunikasi dengan dunia luar. Pada dasarnya, lalu lintas akan datang kepada mereka melalui NAT dan mereka tidak akan menjadi sebahagian daripada rangkaian luaran tuan rumah anda. Anda boleh menggunakan Bridge Networking untuk mendedahkan setiap VM ke LAN mesin host.

Untuk memulakan Mesin Maya

Untuk memulakan mesin maya, kita memerlukan media pemasangan (seperti ISO pemasangan untuk mana-mana sistem operasi) dan berapa banyak CPU dan berapa banyak memori yang perlu dialokasikan ke VM, dan jika memerlukan VNC. Langkah ini adalah di mana anda benar-benar dapat menghargai pemasang GUI seperti virt-manager, namun, kami akan melakukannya dengan menggunakan perintah virt-install yang agak rumit.

Saya ingin menyimpan semua media boot saya di / var / lib / libvirt / boot dan semua VM dan cakera keras maya mereka di / var / lib / libvirt / images (lokasi lalai) ini memudahkan organisasi.

$ cd / var / lib / libvirt / boot
$ wget http: // pelepasan.ubuntu.com / 18.04.2 / ubuntu-18.04.2-desktop-amd64.iso

Perintah di atas mengambil ISO desktop Ubuntu, anda boleh mendapatkan CentOS atau sebaran lain yang anda mahukan dengan mudah.

Untuk membuat VM baru dan menjalankannya, jalankan:

$ virt-install --vvt-jenis kvm \
--namakan myVM \
--memori 2048 --vcpus = 2 \
--cdrom / var / lib / libvirt / boot / ubuntu-18.04.2-desktop-amd64.iso \
--saiz cakera = 40 \
--grafik vnc, dengar = 0.0.0.0, port = 5900 \
--noautoconsole

Perintah di atas memang rumit. Saya sarankan menyimpan perintah ini dalam fail teks dan menjalankannya sebagai skrip yang dapat dilaksanakan setiap kali anda membuat VM baru. Sebilangan besar parameter seperti virt-type dan virt-name cukup jelas. Mereka hanya membosankan untuk menulis.

Pilihan terakhir untuk paparan VNC akan memulakan pelayan VNC dan membolehkan anda mempunyai akses konsol ke VM anda dari jauh, dengan menyambung ke port host 5900. Buka klien VNC di desktop anda dan pergi ke IP host KVM anda di port 5900. Pastikan anda mencapai IP host dan bukan IP VM. VNC anda akan bersambung ke output video VM anda dan anda boleh meneruskan pemasangan.

Ke Mana Seterusnya?

Mulai sekarang anda boleh mencuba menjeda, menghentikan dan memadamkan VM. Anda juga dapat mengubah infrastruktur yang mendasari dengan menambahkan kumpulan untuk penyimpanan dan mengkonfigurasi rangkaian jambatan. Semua fail konfigurasi, untuk VM individu, antara muka rangkaian dan kumpulan penyimpanan disimpan di / etc / libvirt / dan / etc / libvirt / qemu.

Kadang-kadang anda perlu memadamkan fail cakera keras yang disimpan di / lib / libvirt / images secara fizikal walaupun selepas mengeluarkan VM dari libvirt. Untuk mengautomasikan perkara lebih jauh, cuba import imej qcow2 yang kebanyakan pengedaran linux seperti Ubuntu dan CentOS. Ini mempunyai OS yang terpasang di dalamnya.

Kesimpulannya

Menyiapkan ini semudah menyiapkan VirtualBox dan alasan di sebalik ini berlipat ganda. Sebilangan besar timbunan itu rumit kerana direka bentuk untuk modular dan sangat berskala. Ia tidak membuat andaian di mana anda menjalankan VM. Persekitaran boleh menjadi desktop peribadi atau pusat data. Bekerja dengan GUI dapat membantu mengurangkan kerumitan ini hingga tahap tertentu. Walau bagaimanapun, sistem ini dirancang untuk berfungsi dengan REST API untuk menyambung ke sistem pengebilan, sistem pemantauan dan lain-lain organisasi anda. Mereka hampir tidak pernah disentuh oleh manusia setelah dikerahkan.

Yang mengatakan, automasi adalah nama permainan dengan libvirt dan qemu-kvm. Teliti melalui dokumentasi rasmi dan tuliskan skrip menarik anda sendiri untuk membuat armada VM dan beritahu kami jika anda menganggap tutorial ini berguna.

Tiru klik Tetikus dengan melayang menggunakan Mouse Tanpa Klik di Windows 10
Menggunakan tetikus atau papan kekunci dalam keadaan salah penggunaan berlebihan boleh menyebabkan banyak masalah kesihatan, termasuk ketegangan, sind...
Tambahkan isyarat Tetikus ke Windows 10 menggunakan alat percuma ini
Dalam beberapa tahun kebelakangan ini komputer dan sistem operasi telah banyak berkembang. Ada saat ketika pengguna harus menggunakan perintah untuk m...
Mengawal & menguruskan pergerakan tetikus antara beberapa monitor di Windows 10
Pengurus Tetikus Paparan Dwi membolehkan anda mengawal & mengkonfigurasi pergerakan tetikus antara beberapa monitor, dengan memperlahankan pergerakann...