Kata menakutkan ini adalah “virtualisasi”. Solusi saya didasarkan pada KVM. Apa itu virtualisasi KVM

Saat ini sulit membayangkan dunia tanpa perangkat yang terkomputerisasi. Sekitar 20 tahun yang lalu, hampir semua peralatan rumah tangga bersifat elektro-mekanis, dan tidak ada pembicaraan tentang penggunaan sirkuit komputer di mana pun. Komputer pertama hanya memakan banyak ruang dan hanya mampu melakukan sedikit hal. Sistem komputer telah berkembang pesat dalam beberapa tahun terakhir. Meskipun komputer tidak berubah secara mendasar, daya komputasi telah meningkat pesat. Memiliki komputer di keluarga sederhana bukan lagi sesuatu yang istimewa.

Saat ini, banyaknya peralatan komputer di dalam ruangan seringkali dapat menyebabkan ketidaknyamanan yang signifikan. Oleh karena itu, sistem terpusat mulai bermunculan. Namun sistem terpusat seringkali tidak dapat menyelesaikan masalah yang diselesaikan oleh jaringan komputer. Untuk alasan ini, konsep virtualisasi diusulkan, ketika satu komputer pusat bertindak sebagai jaringan komputer.

Pada intinya, keseluruhan OS, secara umum, adalah semacam lingkungan virtual yang disediakan bagi pengembang perangkat lunak sebagai sarana pelaksanaan tugas akhir. Waktu telah lama berlalu ketika program ditulis khusus untuk perangkat keras komputer menggunakan kode dan kueri perangkat keras. Saat ini, aplikasi apa pun, pertama-tama, adalah aplikasi yang ditulis pada beberapa API, yang dikendalikan oleh OS. Tugas OS adalah menyediakan API ini akses langsung ke sumber daya perangkat keras.

Sebenarnya ada beberapa jenis virtualisasi:

  • Virtualisasi perangkat lunak;
  • Virtualisasi perangkat keras;
  • Virtualisasi tingkat sistem operasi.

Virtualisasi, pada gilirannya, terjadi penuh Dan sebagian.

Virtualisasi perangkat lunak– jenis virtualisasi yang menggunakan berbagai pustaka OS, menerjemahkan panggilan mesin virtual menjadi panggilan OS. (DOSBox, Virtualbox, Virtual PC)

Virtualisasi perangkat keras- tipe yang memberikan instruksi perangkat keras khusus, khususnya instruksi prosesor. Memungkinkan Anda menjalankan kueri dengan melewati OS tamu, dan menjalankannya langsung di perangkat keras. (Virtualisasi KVM, virtualisasi XEN, Parallels, VMware, Virtualbox)

Virtualisasi tingkat sistem operasi– virtualisasi hanya sebagian dari platform, tanpa virtualisasi lengkap pada perangkat keras. Menyiratkan pengoperasian beberapa contoh lingkungan OS. (Buruh pelabuhan, LXC)

Artikel ini akan mempertimbangkan Virtualisasi perangkat keras, dan khususnya virtualisasi KVM.

Skema 1. – Interaksi komponen mesin virtual dengan perangkat keras

Fitur virtualisasi untuk kernel Linux

Untuk menjalankan permintaan perangkat keras langsung, OS harus memiliki perpustakaan yang akan mengirimkan permintaan perangkat keras ini secara langsung. Untuk waktu yang lama, pada platform berbasis Linux, tidak ada sistem virtualisasi bawaan (hypervisor bawaan) yang ada. Setiap produsen perangkat lunak virtualisasi yang mendukung teknologi virtualisasi perangkat keras terpaksa membuat modul mereka sendiri untuk kernel Linux (vboxdrv di Virtualbox, vmware-service di VMWare, dll.) Tentu saja, ini tidak dapat bertahan selamanya, dan Qumranet, Inc., yang sebelumnya kemudian membeli Radhat menciptakan Open Virtualization Alliance, yang dianggap dapat memecahkan masalah kurangnya hypervisor dasar untuk kernel Linux. Begitulah cara itu diciptakan hypervisor KVM atau Mesin Virtual berbasis kernel.

Pelaksanaan

Hypervisor KVM adalah modul kernel Linux yang dapat dimuat yang dirancang untuk menyediakan virtualisasi pada platform Linux x86. Modul itu sendiri berisi komponen virtualisasi itu sendiri (kvm.ko), dan modul kvm-amd.ko atau kvm-intel.ko yang dapat dimuat khusus prosesor.

Prasyarat untuk menggunakan KVM adalah dukungan untuk instruksi virtualisasi - Intel VT atau AMD, dan kernel Linux versi 2.6.20 dan lebih tinggi. Ada juga port KVM untuk Free-BSD. QEMU secara tradisional digunakan untuk memanggil KVM, namun ada juga upaya untuk menambahkan dukungan KVM ke Virtualbox.

KVM sendiri tidak melakukan emulasi. Sebaliknya, program yang berjalan di ruang pengguna menggunakan antarmuka /dev/kvm untuk mengonfigurasi ruang alamat tamu mesin virtual, dan melaluinya mengemulasi perangkat I/O dan adaptor video.

KVM mengizinkan mesin virtual untuk menggunakan image disk QEMU, VMware, dan lainnya yang berisi sistem operasi yang tidak dimodifikasi. Setiap mesin virtual memiliki perangkat keras virtualnya sendiri: kartu jaringan, disk, kartu video, dan perangkat lainnya.

Penggunaan

Ada banyak implementasi untuk menggunakan hypervisor ini. Beberapa merupakan perpustakaan khusus, yang lainnya berbentuk aplikasi grafis sederhana.

Untuk kejelasan, kami mempertimbangkan virtualisasi KVM berdasarkan perpustakaan manajer kebajikan.

Pustaka ini memungkinkan Anda menyederhanakan panggilan berbagai hypervisor, menyediakan antarmuka yang nyaman untuk mengotomatisasi proses virtualisasi. Selain itu, perpustakaan memiliki kemampuan untuk bekerja dengan infrastruktur jaringan, yang terkadang penting ketika membangun stasiun kerja klien-server.

Skema 2. – Interaksi komponen libvirt

QEMU memungkinkan Anda membuat bingkai untuk memanggil hypervisor pada sistem klien. Program ini dikonfigurasi dengan argumen panggilan baris perintah dan cukup ringan dan sederhana.

Ada juga beberapa shell grafis, seperti Kotak Gnome.

Kesimpulan

Virtualisasi adalah bagian integral dari sistem perusahaan modern; virtualisasi memungkinkan Anda menghemat sumber daya finansial dan energi yang sangat besar. Perkembangan teknologi virtualisasi merupakan prioritas bagi banyak organisasi. Teknologi seperti VGAPassthrough (teknologi untuk "meneruskan" kartu video dari perangkat host ke mesin virtual) dan PCIPassthrough ("meneruskan" perangkat PCI) sedang dikembangkan.

Asli: Selamat datang di virtualisasi KVM - Pengenalan menyeluruh
Pengarang: Igor Ljubuncic
Tanggal publikasi: 4 Mei 2011
Terjemahan: A. Krivoshey
Tanggal terjemahan: Juli 2011

Jika Anda pernah membaca artikel saya tentang virtualisasi, Anda pasti tahu bahwa saya dulu kebanyakan menggunakan VMware dan VirtualBox, tapi sekarang saatnya mencoba sesuatu yang baru. Hari ini saya ingin memperkenalkan serangkaian catatan baru tentang KVM. Selanjutnya, mungkin saya akan beralih ke Xen atau sistem lain, tapi sekarang pahlawan topik kita adalah KVM.
Dalam panduan ini, kita akan membahas tentang teknologi KVM (Mesin Virtual Berbasis Kernel), yang dibuat oleh RedHat, dan bersifat open source, menjadi alternatif gratis dibandingkan teknologi komersialnya. Kita akan mempelajari cara mengunduh, menginstal, dan mengkonfigurasi KVM, alat apa saja yang dimilikinya untuk mengelola mesin virtual, cara bekerja dengan KVM pada baris perintah, menulis skrip, dan banyak lagi. Selain itu, kami akan membahas pembuatan konfigurasi lanjutan (termasuk jaringan), serta hal-hal menarik lainnya. Sekarang mari kita mulai.

Glosarium KVM

Pertama, mari kita bicara sedikit tentang cara kerja KVM. Tidak ada yang terlalu mewah, hanya pengenalan singkat sehingga Anda mengetahui terminologi dasarnya.
KVM menggunakan teknologi virtualisasi perangkat keras yang didukung oleh prosesor modern dari Intel dan AMD serta dikenal dengan nama Intel-VT dan AMD-V. Menggunakan modul kernel yang dimuat di memori, KVM, dengan bantuan driver mode pengguna (yang merupakan driver yang dimodifikasi dari QEMU), mengemulasi lapisan perangkat keras di mana mesin virtual dapat dibuat dan dijalankan. KVM dapat berfungsi tanpa virtualisasi perangkat keras (jika tidak didukung oleh prosesor), namun dalam kasus ini ia bekerja dalam mode emulasi murni menggunakan QUEMU dan kinerja mesin virtual sangat berkurang.
Untuk mengelola KVM, Anda dapat menggunakan utilitas grafis yang mirip dengan produk dari VMware dan VirtualBox, serta baris perintah.
GUI yang paling populer adalah Virtual Machine Manager (VMM), yang dibuat oleh RedHat. Ia juga dikenal dengan nama paketnya sebagai virt-manager dan berisi beberapa utilitas, termasuk virt-install, virt-clone, virt-image dan virt-viewer, untuk membuat, mengkloning, menginstal dan melihat mesin virtual. VMM juga mendukung mesin virtual Xen.
Antarmuka baris perintah KVM dasar disediakan oleh utilitas virsh. Dalam kasus tertentu, Anda dapat menggunakan utilitas pendukung seperti virt-install untuk membuat mesin virtual Anda. Ubuntu memiliki utilitas khusus ubuntu-vm-builder, yang dikembangkan oleh Canonical, yang dengannya Anda dapat membuat build Ubuntu.
Jika Anda ingin mempelajari lebih lanjut tentang KVM, informasi lebih lanjut dapat ditemukan di alamat berikut:

Kelebihan dan Kekurangan KVM

Apakah Anda memerlukan KVM? Itu tergantung pada apa yang Anda butuhkan.
Jika Anda belum pernah menggunakan mesin virtual sebelumnya, atau memulainya beberapa kali hanya untuk bersenang-senang, menguasai KVM bisa jadi sulit. Program ini dikendalikan terutama dari baris perintah dan tidak ramah pengguna seperti VMware atau VirtualBox. Dapat dikatakan bahwa dalam hal antarmuka grafis, KVM tertinggal beberapa tahun dari para pesaingnya, meskipun pada kenyataannya setidaknya tidak kalah dengan mereka dalam hal kemampuannya. Kemampuan KVM paling banyak diminati ketika digunakan untuk tujuan komersial di lingkungan bisnis.
Selanjutnya, jika prosesor Anda tidak mendukung virtualisasi perangkat keras, maka KVM akan beroperasi dalam mode emulasi perangkat lunak yang sangat lambat dan tidak efisien. Selain itu, diketahui bahwa KVM bertentangan dengan VirtualBox, namun catatan terpisah akan dikhususkan untuk kasus ini.
Berdasarkan penjelasan di atas, kita dapat menyimpulkan bahwa KVM lebih cocok untuk orang yang melakukan virtualisasi untuk tujuan profesional. Kecil kemungkinannya itu akan menjadi mainan rumahan favorit Anda, tetapi jika Anda memutuskan untuk berusaha mempelajarinya, pengetahuan yang diperoleh dari ini akan memungkinkan Anda mengenal teknologi virtualisasi. Berbeda dengan VMware dan VirtualBox, yang awalnya mengasumsikan bahwa pengguna akan bekerja dengan program menggunakan antarmuka grafis, KVM berfokus pada penggunaan baris perintah dan penulisan skrip.
Ringkasnya, kita dapat mengatakan bahwa keunggulan KVM terletak pada penggunaan teknologi virtualisasi terbaru, tidak adanya batasan lisensi yang digunakan, dan antarmuka baris perintah yang kuat. Jika prosesor Anda tidak mendukung virtualisasi perangkat keras, Anda tidak ingin menulis skrip, dan Anda lebih memilih sistem yang lebih mudah dikelola seperti VMware Server, ESXi, atau VirtualBox, maka KVM bukan untuk Anda.

Platform uji

KVM dapat digunakan di distribusi Linux apa pun. Namun, pengembang dan sponsor utama KVM adalah RedHat. Misalnya, RHEL hadir dengan KVM, sehingga Anda dapat menemukannya di distribusi berbasis RedHat mana pun seperti CentOS, Scientific Linux, atau Fedora.
Karena saya terutama menggunakan Ubuntu di rumah, saya akan menguji KVM pada sistem ini, diinstal pada laptop HP saya yang relatif baru, dilengkapi dengan prosesor i5 dengan dukungan virtualisasi perangkat keras.
Pada artikel ini, saya akan memberi tahu Anda cara menginstal KVM di Ubuntu Lucid (LTS) 64-bit.

Mempersiapkan instalasi

Pertama, Anda perlu memeriksa apakah prosesor Anda mendukung virtualisasi perangkat keras. Ini dilakukan dengan menggunakan perintah berikut:

$ egrep -c "(vmx|svm)" /proc/cpuinfo

Jika keluarannya berupa angka bukan nol, semuanya baik-baik saja. Selain itu, Anda perlu memeriksa apakah teknologi virtualisasi diaktifkan di BIOS.
Tentu saja, setelah mengaktifkannya, Anda harus me-reboot mesin agar perubahan diterapkan. Untuk memeriksanya, jalankan perintah kvm-ok:

Mengunduh dan menginstal KVM

Agar KVM berfungsi, Anda perlu menginstal paket berikut (untuk distribusi dengan apt):

$ apt-get instal qemu-kvm libvirt-bin

$ apt-get install jembatan-utils virt-manager python-virtinst

P.S. Paket mungkin diberi nama berbeda pada distribusi yang berbeda. Misalnya, virt-install mungkin disebut python-virt-install atau python-virtinst. Ketergantungan untuk virt-clone, virt-image dan virt-viewer harus diinstal secara otomatis. Bertentangan dengan apa yang tertulis di sebagian besar manual, utilitas jembatan tidak perlu diinstal. Mereka hanya diperlukan jika Anda ingin membuat jembatan jaringan antara kartu jaringan virtual dan fisik. Kebanyakan manual juga menyatakan bahwa sebagian besar antarmuka jaringan nirkabel tidak bekerja dengan jembatan. Ini mungkin benar untuk beberapa kasus tertentu, tetapi bagi saya jembatan ini berfungsi baik dengan adaptor nirkabel, jadi semoga semuanya juga berfungsi untuk Anda.
Saya sangat merekomendasikan VMM (virt-manager). Selain itu, lebih baik menginstal semua utilitas pendukung, termasuk virt-viewer, virt-install, virt-image dan virt-clone.
Dan satu hal terakhir. Anda mungkin lebih memilih ubuntu-vm-builder:

$ apt-get instal ubuntu-vm-builder

Selain itu, kemungkinan besar akan ada banyak dependensi yang terpasang, sehingga pengunduhan mungkin memerlukan banyak waktu.
P.S. Di RedHat gunakan yum install, di SUSE - zypper install.

Konflik dengan VirtualBox

Saya sekali lagi akan menyampaikan pendapat yang berbeda dari apa yang dinyatakan di sebagian besar manual: KVM dan VirtualBox dapat diinstal bersama pada sistem yang sama. Namun Anda tidak akan dapat menjalankannya secara bersamaan. Dengan kata lain, modul kernel salah satu mesin virtual harus diturunkan dari RAM. Tapi ini bukan alasan untuk menolak instalasi. Coba saja lihat apakah itu cocok untuk Anda. Jika tidak, masalah ini bisa diperbaiki. Nanti saya akan memposting panduan terpisah yang didedikasikan untuk memperbaiki masalah ini. Saya sekarang telah menginstal dan menjalankan kedua mesin virtual.

Menggunakan KVM

Nah, sekarang bagian yang paling menarik. Kami akan memulai perkenalan kami dengan KVM dengan antarmuka grafisnya, yang sedikit berbeda dari analognya. seperti konsol VMware dan khususnya VirtualBox.

Manajer Mesin Virtual (VMM)

Saat pertama kali meluncurkan program, Anda akan melihat dua kategori, keduanya tidak terhubung. Ini adalah tautan ke modul KVM standar yang belum berfungsi. Untuk menggunakannya, klik kanan dan pilih "sambungkan".

Untuk menggunakannya, klik kanan dan pilih "sambungkan". Untuk menambahkan koneksi baru, pilih File > Tambahkan Koneksi dari menu. Ini akan membuka jendela di mana Anda dapat mengatur tipe hypervisor dan tipe koneksi. VMM dapat menggunakan koneksi lokal dan jarak jauh, termasuk QUEMU/KVM dan Xen. Selain itu, semua metode otentikasi didukung.

Anda juga dapat mencentang kotak sambungan otomatis. Saat berikutnya Anda memulai program, koneksi ini akan siap digunakan. Ini mirip dengan antarmuka startup VMware Server. Misalnya saja:

Kernel vs Mode Pengguna

Anda mungkin bertanya, apa perbedaan antara normal/default dan Usermode? Saat menggunakan Usermode, mesin virtual dapat dijalankan tanpa hak administratif, namun fungsionalitas jaringannya akan terbatas.

Kami terus mempelajari VMM

Mari kita lihat secara singkat fungsi program lainnya.
Fungsionalitas jaringan dapat dilihat atau diubah dengan membuka Detail Host. Saya berencana untuk mempertimbangkan masalah ini secara rinci dalam panduan terpisah. Di sana kita akan menginstal utilitas untuk jembatan jaringan.

Demikian pula, Anda dapat mengubah parameter subsistem disk:

Mengubah Preset

VMM memiliki sejumlah kecil opsi, dengan mengubahnya Anda dapat menyesuaikan program dengan kebutuhan Anda dengan lebih baik. Misalnya, Anda dapat mengaktifkan tampilan ikon VMM di baki sistem, mengatur interval pengumpulan statistik, mengaktifkan pengumpulan data untuk metrik disk dan jaringan, mengonfigurasi pengambilan keyboard, penskalaan konsol, opsi sistem audio, dll.

Anda kemudian akan dapat melihat informasi lebih rinci tentang mesin virtual. Misalnya, di bawah ini adalah keluaran penggunaan CPU, disk, dan jaringan untuk tamu Ubuntu.

Ikon baki sistem terlihat seperti ini:

Sekarang kita siap membuat mesin virtual baru.

Membuat mesin virtual

Anda dapat membuat mesin virtual dari baris perintah, tapi pertama-tama kita akan menggunakan VMM. Langkah pertama harus bersifat intuitif. Masukkan nama dan tentukan lokasi disk instalasi. Ini dapat berupa perangkat lokal dalam bentuk disk CD/DVD atau image ISO, atau server HTTP atau FTP, NFS atau PXE.

Kami menggunakan media lokal. Sekarang Anda perlu mengatur apakah itu perangkat fisik atau gambar. Dalam kasus kami, ISO digunakan. Selanjutnya Anda perlu memilih jenis dan versi ISO. Ini tidak memerlukan presisi tinggi, tetapi pilihan yang tepat akan meningkatkan kinerja mesin virtual.

Tahap keempat adalah disk virtual. Anda dapat membuat gambar baru atau menggunakan gambar yang sudah ada. Anda harus memilih ukuran disk dan menentukan apakah image disk akan segera dibuat pada ukuran tertentu, atau ukurannya akan bertambah secara dinamis sesuai kebutuhan. Perlu dicatat bahwa mengalokasikan semua ruang untuk image disk sekaligus meningkatkan kinerja dan mengurangi fragmentasi sistem file.

Selanjutnya kita akan lebih memperhatikan subsistem disk. Namun, perhatikan bahwa saat menjalankan Usermode, Anda tidak akan memiliki akses tulis ke /var, tempat image disk virtual disimpan secara default. Oleh karena itu, Anda perlu menyetel lokasi berbeda untuk gambar. Masalah ini akan dibahas lebih detail pada artikel terpisah.
Tahap 5 adalah keluaran data ringkasan dengan kemampuan untuk mengonfigurasi beberapa opsi lanjutan. Di sini Anda dapat mengubah jenis jaringan, menetapkan alamat MAC tetap, memilih jenis virtualisasi dan arsitektur target. Jika Anda menjalankan Usermode, opsi konfigurasi jaringan Anda akan terbatas; misalnya, Anda tidak akan dapat membuat jembatan antar antarmuka jaringan. Satu hal lagi: jika prosesor Anda tidak mendukung virtualisasi perangkat keras, bidang Virt Type akan menjadi QUEMU dan tidak mungkin mengubahnya ke KVM. Di bawah ini kita akan melihat kerugian bekerja dalam mode emulasi. Sekarang Anda dapat melihat seperti apa pengaturan umum untuk mesin virtual Ubuntu:

Mesin kami siap digunakan.

Menyiapkan mesin virtual

Konsol VM juga memiliki beberapa opsi menarik. Anda dapat mengirim sinyal ke tamu, beralih antar konsol virtual, mem-boot ulang atau mematikan tamu, mengkloning, memindahkan, menyimpan status mesin virtual, mengambil tangkapan layar, dan sebagainya. Sekali lagi semuanya sama dengan pesaing.

Di bawah ini adalah beberapa tangkapan layar yang menunjukkan opsi untuk mengkloning dan memindahkan mesin virtual. Di masa depan kami akan mempertimbangkan masalah ini secara rinci.

Memulai mesin virtual

Sekarang sampai pada bagian yang menyenangkan. Di bawah ini adalah beberapa tangkapan layar yang indah...
Mari kita mulai dengan menu boot Ubuntu 10.10 Maverick versi 32-bit:

Desktop Puppy Linux selalu bagus:

Sekarang Ubuntu berjalan di bawah NAT. Perhatikan penggunaan CPU yang rendah. Kita akan membicarakannya nanti ketika kita membahas mode emulasi.

Jendela konsol dapat diubah ukurannya agar sesuai dengan resolusi desktop tamu. Tangkapan layar berikut menunjukkan Puppy dan Ubuntu berdampingan:

Harap dicatat bahwa beban sistem rendah. Dengan mode emulasi ini, Anda dapat menjalankan beberapa mesin virtual secara bersamaan.

Jika perlu, Anda dapat menghapus mesin virtual beserta semua filenya:

Baris perintah

Nah, sekarang mari kita lihat lebih dekat baris perintah yang tidak disukai. Misalnya, mari kita daftar semua mesin virtual yang tersedia menggunakan virsh.

$virsh "daftar --semua"

Di bawah ini adalah urutan perintah untuk membuat dan menjalankan mesin virtual menggunakan virt-install.

Perintah lengkapnya terlihat seperti ini:

$ virt-install --connect qemu://system -n puppy -r 512 -f puppy.img -c lupu-520.iso --vnc --noautoconsole --os-type linux --accelerate --network=network :bawaan

--hubungkan qemu:///system menentukan tipe hypervisor. Opsi sistem digunakan ketika menjalankan mesin pada kernel kosong sebagai pengguna super. Saat dijalankan sebagai pengguna biasa, gunakan opsi sesi.
-n anak anjing adalah nama unik dari mesin virtual. Itu bisa diubah menggunakan virsh.
-r 512 mengatur ukuran RAM.
-F menentukan file gambar disk. Dalam kasus saya ini adalah puppy.img, yang saya buat menggunakan perintah dd.
-C menentukan CD-ROM, yang dapat berupa perangkat fisik atau image ISO.
--vnc membuat konsol tamu dan mengekspornya sebagai server VNC. Pilihan --tidak ada sambungan otomatis mencegah pembukaan otomatis konsol saat mesin virtual dimulai.
--tipe-os menentukan jenis sistem operasi tamu.
--mempercepat Mengizinkan KVM menggunakan fitur pengoptimalan yang meningkatkan kinerja tamu.
--jaringan menentukan jenis jaringan. Dalam kasus kami, koneksi default digunakan.

Ada banyak fungsi lain yang mengatur parameter seperti jumlah inti prosesor, alamat MAC tetap, dll. Semuanya dijelaskan secara rinci di halaman manual. Meskipun tampak rumit, kontrol menggunakan baris perintah dikuasai dengan cukup cepat.

Mode emulasi murni

Saya sudah mengatakan bahwa ini sangat tidak efektif. Sekarang mari kita konfirmasikan hal ini dalam praktik. Misalnya, pada tangkapan layar di bawah, Anda dapat melihat bahwa sistem, saat beroperasi, menggunakan semua sumber daya prosesor yang tersedia, yang dalam hal ini, dengan satu inti, merupakan 25% dari sumber daya fisik prosesor. Ini berarti bahwa empat mesin virtual akan memuat host quad-core sepenuhnya.

Selain itu, kinerja sistem tamu berada di bawah semua kritik. Jika dengan virtualisasi perangkat keras diaktifkan, memuat Ubuntu tamu memerlukan waktu sekitar 1 menit, kemudian setelah menonaktifkannya memerlukan waktu 20 menit. Perlu dicatat bahwa tanpa menggunakan virtualisasi perangkat keras, kinerja QUEMU/KVM jauh lebih rendah dibandingkan pesaingnya.

Di Ubuntu, disarankan untuk menggunakan hypervisor KVM (manajer mesin virtual) dan perpustakaan libvirt sebagai alat manajemennya. Libvirt mencakup sekumpulan API perangkat lunak dan aplikasi pengguna untuk mengelola mesin virtual (VM) virt-manager (antarmuka grafis, GUI) atau virsh (baris perintah, CLI). Sebagai pengelola alternatif, Anda dapat menggunakan convirt (GUI) atau convirt2 (antarmuka WEB).

Saat ini, hanya hypervisor KVM yang didukung secara resmi di Ubuntu. Hypervisor ini adalah bagian dari kode kernel sistem operasi Linux. Berbeda dengan Xen, KVM tidak mendukung paravirtualisasi, artinya untuk menggunakannya, CPU Anda harus mendukung teknologi VT. Anda dapat memeriksa apakah prosesor Anda mendukung teknologi ini dengan menjalankan perintah di terminal:

Jika Anda menerima pesan berikut sebagai hasilnya:

INFO: /dev/kvm ada akselerasi KVM yang bisa digunakan

Artinya KVM akan bekerja tanpa masalah.

Jika Anda menerima pesan berikut di pintu keluar:

CPU Anda tidak mendukung ekstensi KVM. Akselerasi KVM TIDAK dapat digunakan

maka Anda masih dapat menggunakan mesin virtual, tetapi akan jauh lebih lambat.

    Instal sistem 64-bit sebagai tamu

    Alokasikan lebih dari 2 GB RAM ke sistem tamu

Instalasi

Sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils

Ini adalah instalasi pada server tanpa X, yaitu tidak menyertakan antarmuka grafis. Anda dapat menginstalnya dengan perintah

Sudo apt-get install virt-manager

Setelah ini, item "Manajer Mesin Virtual" akan muncul di menu dan, dengan kemungkinan besar, semuanya akan berfungsi. Jika masalah masih muncul, Anda perlu membaca petunjuk di wiki bahasa Inggris.

Membuat sistem tamu

Prosedur membuat sistem tamu menggunakan GUI cukup sederhana.

Namun mode teks dapat dijelaskan.

qcow2

Saat membuat sistem menggunakan antarmuka grafis sebagai hard drive, Anda akan diminta untuk memilih file gambar yang ada atau memblokir perangkat, atau membuat file baru dengan data mentah (RAW). Namun, ini bukan satu-satunya format file yang tersedia. Dari semua jenis disk yang tercantum di man qemu-img, yang paling fleksibel dan modern adalah qcow2. Ini mendukung snapshot, enkripsi dan kompresi. Itu harus dibuat sebelum membuat tamu baru.

Qemu-img buat -o praalokasi=metadata -f qcow2 qcow2.img 20G

Menurut man qemu-img yang sama, praalokasi metadata (-o preallocation=metadata) membuat disk sedikit lebih besar pada awalnya, namun memberikan kinerja yang lebih baik saat gambar perlu diperbesar. Faktanya, dalam hal ini, opsi ini memungkinkan Anda menghindari bug yang tidak menyenangkan. Gambar yang dibuat awalnya memakan ruang kurang dari satu megabyte dan berkembang ke ukuran yang ditentukan sesuai kebutuhan. Sistem tamu akan segera melihat ukuran akhir yang ditentukan, namun, selama tahap instalasi, sistem mungkin melihat ukuran file sebenarnya. Secara alami, ia akan menolak untuk menginstal pada hard drive 200 KB. Bug ini tidak spesifik untuk Ubuntu; setidaknya muncul di RHEL.

Selain jenis gambar, selanjutnya Anda dapat memilih metode koneksinya - IDE, SCSI atau Virtio Disk. Kinerja subsistem disk akan bergantung pada pilihan ini. Tidak ada jawaban pasti yang benar; Anda harus memilih berdasarkan tugas yang akan diberikan ke sistem tamu. Jika sistem tamu dibuat “untuk dilihat”, maka metode apa pun bisa digunakan. Secara umum, biasanya I/O-lah yang menjadi penghambat mesin virtual, jadi saat membuat sistem dengan muatan tinggi, masalah ini harus ditangani dengan bertanggung jawab.

Catatan ini akan berguna bagi siapa saja yang tertarik menggunakan virtualisasi dalam pekerjaannya. Solusi saya mungkin memenuhi syarat untuk penggunaan industri dan akan berguna bagi mereka yang ingin mengurangi biaya perangkat keras jika mereka memerlukan infrastruktur jaringan yang luas. Beberapa solusi dari IBM, misalnya, didasarkan pada opsi serupa. Namun solusi ini jauh dari ramah anggaran dan hanya dibutuhkan dalam kasus-kasus luar biasa.
Jadi, suatu hari saya perlu mereproduksi infrastruktur jaringan luas yang terdiri dari berbagai platform perangkat lunak di rumah. Jalurnya dimulai dari VMWare Workstation dan diakhiri dengan KVM... Mengapa KVM dan bagaimana semua itu terjadi, baca di bawah.

1. Sedikit sejarah atau bagaimana semuanya dimulai.
Saat bekerja di bank, saya menemukan virtualisasi secara langsung. Itu adalah sistem operasi AIX IBM yang berjalan pada mainframe. Sejak awal, saya kagum dengan kekuatan dan fleksibilitas pendekatan ini. Dan ketika saya perlu mereproduksi infrastruktur perangkat lunak yang luas di rumah untuk tujuan pengujian, saya langsung mendasarkan semuanya pada prinsip virtualisasi. Hal ini memungkinkan untuk menghindari biaya perangkat keras yang signifikan dan menyesuaikan segala sesuatunya dengan sangat kompak dalam hal ruang.
Pembaca harus memperhatikan bahwa sebenarnya ada banyak variasi alat virtualisasi. Masing-masing memiliki kehalusan dan nuansa tersendiri. Tujuan saya adalah membicarakan satu opsi yang saya kerjakan secara pribadi, menjelaskan, jika mungkin, kekurangan dan fitur opsi lainnya.
2. Pilihan saya disebut KVM (atau Mesin Virtual berbasis Kernel).
Anda dapat membaca lebih lanjut tentang opsi ini.
Tapi lebih baik menyajikan semuanya secara berurutan. Saya akan mulai dengan ketentuan pemilihan dan opsi mana yang saya ketahui tidak memenuhi ketentuan berikut:
— sistem utama harus terjangkau dan kuat.

Dari segi hardware, saya memilih opsi AMD Phenom X4 9550 / Asus M3A78 / 2x2Gb DDR-II / 1x160Gb IDE + 2x1Tb SATA-II. Video sama sekali tidak penting di sini, kecuali dalam kasus video bawaan, Anda harus memperhitungkan bahwa video tersebut memakan sebagian RAM, sehingga akan lebih sedikit untuk mesin virtual. Saya harus segera mengatakan bahwa pilihan motherboard dengan pengontrol RAID bawaan tidak sepenuhnya benar. Ternyata, RAID ini hanya berfungsi dalam mode terprogram, yaitu. driver diperlukan untuk sistem Windows, tetapi di Linux efek yang sama dapat dicapai dengan lebih mudah menggunakan alat standar.
Penggunaan platform perangkat lunak untuk sistem utama jelas mendukung GNU/Linux, karena memungkinkan untuk mendapatkan lingkungan virtualisasi tanpa biaya lisensi tambahan, dan juga lebih ringan dalam hal beban (saya tidak akan pernah mengerti mengapa tidak ada yang dapat diinstal dan dilakukan di Windows Server tanpa grafis... beban tidak berarti, IMHO). Awalnya direncanakan untuk menggunakan opsi Ubuntu Server Hardy LTS, tetapi segera migrasi dilakukan ke Debian Lenny (saat itu baru saja dirilis). Saya sama sekali tidak meremehkan keunggulan Ubuntu, tetapi secara subyektif Debian adalah lebih stabil dan lebih cepat.

— sistem virtualisasi harus stabil, dapat diakses publik, dan tidak menuntut sumber daya.

Pilihannya memusingkan, tetapi setelah mempelajari ulasan di Internet dan mencoba menggunakannya, saya membentuk opini subjektif.
Produk VMWare tidak cocok. Workstation berbayar, ESXi tidak dapat diinstal di sistem saya karena chipset yang tidak didukung (ternyata lebih modern). VMWare Server akan menjadi pilihan yang baik, tetapi dilihat dari ulasannya, ini agak berat dan sering crash; Saya tidak mencobanya sendiri setelah kegagalan dengan ESXi. Mereka tidak cocok karena satu alasan lagi - perusahaan masih menjual produknya dan hanya sebagian yang tersedia secara bebas.
VirtualBox ternyata menjadi pilihan yang sangat bagus. Muncul dalam dua versi - OSE dan Freeware. Sumber versi Freeware tidak tersedia untuk umum, namun hal ini diimbangi dengan fungsionalitas. Perbedaan yang saya tahu adalah kurangnya dukungan USB di versi OSE, pembatasan saat bekerja dengan jaringan, dan akselerasi grafis tidak didukung (omong-omong, ini memberikan peningkatan yang sangat baik dalam kecepatan mesin virtual). VirtualBox sangat ideal untuk implementasi paling sederhana, karena... memungkinkan Anda dengan cepat mendapatkan mesin virtual yang berfungsi tanpa gerakan yang tidak perlu dan mempelajari manual dengan cermat. Fitur yang bagus adalah dukungan untuk bekerja dari konsol, yang memungkinkan Anda menghindari penggunaan add-on grafis dan, karenanya, menghilangkan beban tambahan pada mesin host. Untuk “virtualizer rumahan” pemula, saya akan merekomendasikan opsi ini. Secara pribadi, saya masih menggunakannya di laptop pribadi saya untuk menyiapkan lingkungan pengujian dengan cepat, serta untuk bekerja di Windows (Ubuntu telah lama ditetapkan di sana sebagai sistem utama). Menurut perasaan subjektif, VirtualBox bekerja jauh lebih cepat daripada VMWare Workstation dan memakan lebih sedikit ruang pada disk dan memori. Jendela terpisah dialokasikan untuk setiap mesin, dan jika driver diinstal di sistem tamu (tersedia langsung), dimungkinkan untuk mengintegrasikannya ke desktop host, yang sangat nyaman dan memungkinkan Anda mendistribusikan tugas ke berbagai mesin. desktop virtual.
QEMU adalah hal yang sangat kuat. Namun ketika saya mengingatnya, saya sudah memperhatikan virtualisasi berbasis kernel dan informasi tentang Xen dan KVM, jadi saya tidak terlalu mengenal QEMU murni.
Xen adalah sistem ideal untuk virtualisasi. Namun memiliki kelemahan yang sangat signifikan - sistem tamu harus dipersiapkan terlebih dahulu.
KVM, berdasarkan QEMU, hampir secepat Xen, tetapi memiliki fungsionalitas yang lebih fleksibel dan semua kekuatan pengaturan QEMU (walaupun sebagian besar yang saya perlukan ada di VirtualBOX). Kedua opsi, Xen dan KVM, diterapkan di semua distribusi modern dan tidak memerlukan upaya serius untuk menggunakannya. Namun ada perbedaan mendasar di antara keduanya, yang akan dibahas lebih lanjut.

— Hal ini diperlukan untuk dapat mereproduksi berbagai platform perangkat lunak pada mesin virtual.

Meskipun ketersediaan produk VMWare dan VirtualBOX dalam hal ini, saya menolak untuk menggunakannya lebih awal, jadi saya tidak akan mempertimbangkannya... Namun terkait dengan Xen dan KVM akan saya uraikan sedikit lebih detail, karena Saya sendiri mencari informasi untuk waktu yang sangat lama.
Xen tidak mengizinkan Anda menjalankan sistem selain sistem host!!!, atau lebih tepatnya, sistem yang tidak dipersiapkan sebelumnya untuk bekerja di lingkungan virtual. Dan sayangnya (atau mungkin untungnya), distribusi Windows tidak dapat diproses dengan cara ini. Yang tidak cocok untuk saya, karena pada akhirnya pilihan jatuh pada pilihan menggunakan KVM, yang tidak perlu mempersiapkan sistem tamu terlebih dahulu.

Jadi alasan singkat memilih KVM:

1. Implementasinya tersedia langsung di distribusi besar mana pun;
2. Diimplementasikan berdasarkan kernel Linux, sehingga memiliki kecepatan tinggi;
3. Digunakan oleh raksasa seperti RedHat dan Ubuntu, yang menunjukkan stabilitas dan fleksibilitas tinggi;
4. Tidak diperlukan manipulasi tambahan dengan sistem tamu untuk instalasi di mesin virtual.

3. Bagaimana saya melakukannya di Debian.
Berikutnya adalah penjelasan yang lebih teknis, menjelaskan langkah demi langkah bagaimana saya membuat server saya, yang dapat dengan mudah menangani selusin server virtual.
Meskipun distribusi favorit saya adalah Ubuntu, pada akhirnya Debian dipilih sebagai sistem dasar. Dalam kerangka artikel saya tidak akan menjelaskan seluk-beluknya, apa dan bagaimana, tetapi di desktop saya tetap lebih suka menggunakan Ubuntu. Sebagian besar instruksi untuk Ubuntu dan Debian relevan untuk kedua opsi tersebut, jadi saat menyiapkan saya menggunakan keduanya.
Jadi, mari kita mulai menyiapkan server.
Mari kita ambil distribusi Debian. Agar tidak mendownload terlalu banyak nanti dan segera mendapatkan sistem yang baru, saya mengambil opsi netinstall, yang saya instal hanya opsi "Sistem Standar" kami tidak memerlukan apa pun lagi. Omong-omong, saya menggunakan edisi 64-bit untuk mendapatkan dukungan lebih banyak RAM (>3GB) tanpa solusi dan trik (misalnya, kernel server 32-bit dari distribusi Ubuntu mendukung lebih dari 3GB, tetapi hanya jika ada seperti itu kemungkinan di chipset).
Saya menggunakan harddisk IDE untuk partisi sistem (“/”, “/home”, swap) agar tidak ada masalah dengan sistem saat diinstal pada array RAID (dan ada beberapa). Selama instalasi, saya segera membuat RAID-1 berdasarkan dua hard drive SATA untuk mencapai keamanan data yang lebih baik (informasi utama akan disimpan di dalamnya). Di masa depan, untuk bekerja dengan array RAID perangkat lunak, Anda harus menggunakan utilitas mdadm.
Saya sedikit memperbaiki sistem yang baru diinstal. Pertama, saya menginstal ssh sehingga saya dapat segera menyimpan unit sistem dan memutuskan sambungan monitor yang tidak lagi diperlukan darinya: sudo apt-get install ssh Banyak orang menyarankan untuk mengganti port dari standar 22 ke yang lain. Tapi ini hanya boleh dilakukan jika Anda yakin dengan tindakan Anda dan server Anda terhubung langsung ke Internet. Omong-omong, perlu disebutkan bahwa jika port non-standar digunakan, maka akan timbul kesulitan dengan manajemen jarak jauh virtualisasi KVM. Oleh karena itu, saya meninggalkan port standar, tetapi melalui router perangkat keras meneruskannya ke port non-standar, dapat diakses dari luar.

Kemudian kami mengaktifkan sinkronisasi waktu melalui Internet (saya sangat merekomendasikannya, ini akan berguna).
sudo apt-get install ntp ntpdate
Untuk memantau suhu chipset, prosesor, dan hard drive:
sudo apt-get install lm-sensor hddtemp
Utilitas hddtemp segera berfungsi, untuk mengkonfigurasi lm-sensors yang kami jalankan setelah instalasi: sudo sensor-detect dan jawab semua pertanyaan dengan setuju.
Sangat mudah digunakan:
— mengetahui suhu prosesor, chipset, dan karakteristik lainnya dari sensor sudo, kami mendapatkan sesuatu seperti:

it8712-isa-0290
Adaptor: adaptor ISA
VCore 1: +1,33 V (min = +3,54 V, maks = +3,30 V) ALARM
VCore 2: +3,76 V (min = +1,39 V, maks = +1,01 V) ALARM
+3.3V: +3.28 V (min = +4.00 V, maks = +0.91 V) ALARM
+5V: +6,69 V (min = +3,04 V, maks = +6,10 V) ALARM
+12V: +12,67 V (min = +15,23 V, maks = +5,57 V) ALARM
-12V: -15,33 V (min = -0,85 V, maks = -12,39 V) ALARM
-5V: +2,85 V (min = +3,06 V, maks = +3,47 V) ALARM
Standar: +5,99 V (min = +0,11 V, maks = +6,37 V)
VBat: +3,31 V
fan1: 2922 RPM (min = 3260 RPM, div = 2)
fan2: 0 RPM (min = 5400 RPM, div = 2) ALARM
fan3: 0 RPM (min = 2732 RPM, div = 2) ALARM
Suhu M/B: +44.0°C (rendah = -73.0°C, tinggi = -49.0°C) sensor = transistor
Suhu CPU: +32,0°C (rendah = -65,0°C, tinggi = -9,0°C) sensor = transistor
Suhu3: +128.0°C (rendah = +23.0°C, tinggi = -66.0°C) sensor = dinonaktifkan
cpu0_vid: +0,000 V

— mengetahui suhu 1 hard drive SATA — sudo hddtemp /dev/sda kita mendapatkan sesuatu seperti:

/dev/sda: WDC WD1001FALS-00J7B0: 33°C

Untuk pekerjaan lebih lanjut, saya sarankan untuk mendapatkan server DHCP pihak ketiga dan menyiapkan antarmuka jembatan di server virtualisasi kami.
Mari kita instal utilitas yang diperlukan: sudo apt-get install bridge-utils
Saya menggunakan router saya sebagai server DHCP, dan membuat antarmuka jembatan sesuai dengan instruksi. Instruksi yang sama memberi tahu Anda cara membuat mesin virtual KVM secara default menggunakan metode koneksi ini. Untuk mempercepat reboot (bukan situasi kritis sama sekali jika server aktif 24/7), saya menyarankan Anda untuk menentukan alamat statis untuk antarmuka terlebih dahulu, meskipun DHCP tersedia.

Dan bagian terbaiknya adalah menginstal modul KVM dan utilitas yang berguna. Mari segera tambahkan pengguna saat ini ke grup yang sesuai agar tersedia untuk menggunakan KVM. Penjelasan tentang cara menggunakan utilitas dapat ditemukan di manual yang telah disebutkan. sudo aptitude install kvm libvirt-bin virtinst virt-top python-virtinst
sudo adduser softovick libvirt Sebenarnya Anda bisa langsung menggunakannya. Saya tidak melihat ada gunanya menjelaskan semua perintah; ada halaman manual untuk itu. Tapi saya akan menunjukkan cara membuat mesin virtual:
untuk Linux virt-install -n linux -r 512 -f linux.img -s 15 -c image.iso --accelerate --vnc --vncport=5900 --noautoconsole --os-type=linux --os-variant =generik26
untuk Windows virt-install -n windows -r 512 -f windows.img -s 15 -c image.iso --accelerate --vnc --vncport=5901 --noautoconsole --os-type=windows --os-variant =win2k3 --noacpi Setelah ini, kemajuan lebih lanjut dari instalasi dan layar mesin tamu dapat dikontrol dengan menghubungkan menggunakan klien VNC ke server pada port 5900 dan 5901 (Saya sarankan untuk menentukan port VNC untuk setiap mesin terlebih dahulu sehingga nyaman untuk terhubung). Ada beberapa opsi berguna lainnya, saya tidak menggunakannya hanya karena saya tidak membutuhkannya.

Dan satu sentuhan lagi, tapi bukan yang terakhir. Saya belum menemukan cara untuk terhubung ke sistem tamu kemampuan untuk menulis sesuatu langsung ke partisi atau folder fisik pada serangan itu, meskipun saya mencobanya. Oleh karena itu, dalam kasus Linux, saya terhubung ke data di server menggunakan nfs, dan dalam kasus Windows, menggunakan Samba. Menyiapkan Samba cukup sepele; install sudo aptitude install samba dan edit file konfigurasi /etc/samba/smb.conf agar sesuai dengan tugas Anda. Namun menginstal dan mengkonfigurasi nfs bukanlah hal yang sepele. Saya menggunakan opsi instalasi ini, yang memungkinkan saya untuk terhubung ke folder yang diinginkan dari alamat IP jaringan lokal mana pun (ketik 192.168.10.*): sudo aptitude install nfs-kernel-server portmap
perl -pi -e "s/^OPTIONS/#OPTIONS/" /etc/default/portmap
gema "peta port: 192.168.10." >> /etc/hosts.allow
/etc/init.d/portmap memulai ulang
gema "/media/raid 192.168.10.0/255.255.255.0(rw,no_root_squash,subtree_check)" >> /etc/exports
/etc/init.d/nfs-kernel-server memuat ulang
Setelah langkah-langkah di atas, cukup melakukan ini di sistem tamu:
sudo mount server:/media/raid local_folder
Jika perlu, Anda dapat mengaktifkan pemasangan otomatis saat boot dengan mengedit file konfigurasi /etc/fstab dan menambahkan baris seperti:
virtual:/media/raid /media/raid nfs default 0 2
Secara umum, setup server virtualisasi kita sudah selesai. Anda dapat mengelolanya baik di konsol maupun menggunakan alat grafis seperti virsh atau manajer virtual.

PS:
Beberapa tip berguna:
1. Jika Anda menentukan port VNC tertentu untuk mesin tamu, maka melalui Manajer Virtual Anda tidak akan dapat meluncurkan konsol grafis secara otomatis.
2. Manajer Virtual tidak akan dapat terhubung jika port ssh Anda diganti. Lebih tepatnya, hal ini memerlukan pemahaman yang panjang dan membosankan.
3. Pastikan untuk menggunakan mode --noacpi untuk tamu Windows Server agar dapat diinstal secara normal.
4. Atur mode hemat energi dengan hati-hati pada sistem tamu; jangan pernah mematikan layar, jika tidak, Anda tidak akan dapat terhubung melalui VNC nanti.
5. Jika Anda ingin mematikan dan me-reboot mesin dari jarak jauh melalui Manajer Virtual, nonaktifkan screen saver, karena itu memblokir manajemen daya.

  • Sergei Savenkov

    semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat