KVM (Kernel-based Virtual Machine) este sistemul de virtualizare nativ din RedHat; este un hypervisor construit direct în kernelul Linux. Același sistem se întâlnește și la distribuțiile derivate din RedHat: CentOS, Scientific Linux, Oracle Linux sau Fedora. KVM oferă posibilittaea de a crea și administra o mulțime de mașini virtuale pe un singur host: serverul gazdă care are instalată una din distribuțiile mai sus amintite. Probabil KVM este cea mai întâlnită formă de virtualizare la firmele care oferă hosting.
QEMU este un emulator de mașini virtuale care folosește hypervisorul KVM și utilizează extensiile procesului (HVM) pentru a rula mașini virtuale, atingând performanțe comparabile cu cele ale sistemului real, deoarece o mare parte din cod se execută direct pe procesorul mașinii gazdă.
Acest scurt ghid este pentru cei care au instalată distribuția Arch Linux și vor să folosească KVM în loc de Virtualbox.
Verificarea suportului KVM
KVM cere ca procesorul sistemul gazdă să suporte virtualizare (VT-x pentru procesoarele Intel și AMD-V pentru procesoarele AMD). Pentru a verifica dacă procesul nostru suportă virtualizare se execută comanda:
lscpu | grep Virtualization
sau
egrep --color=auto 'vmx|svm|0xc0f' /proc/cpuinfo
Răspunsul la cele 2 comenzi ar trebui să arate ca mai jos:
Dacă nu este afișat nimic, înseamnă că procesorul vostru nu este capabil să ruleze KVM (sau nu aveți activat suportul pentru virtualizare în BIOS).
Se poate verifica dacă modulele necesare sunt disponibile în kernel cu următoarea comandă:
zgrep CONFIG_KVM /proc/config.gz
Răspunsul ar trebui să fie (modulele sunt disponibile dacă sunt marcate cu y sau m):
CONFIG_KVM_GUEST=y
# CONFIG_KVM_DEBUG_FS is not set
CONFIG_KVM_MMIO=y
CONFIG_KVM_ASYNC_PF=y
CONFIG_KVM_VFIO=y
CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
CONFIG_KVM_COMPAT=y
CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KVM_MMU_AUDIT=y
Se verifică dacă modulele sunt încărcate automat din kernel:
$ lsmod | grep kvm
kvm_intel 221184 0
kvm 626688 1 kvm_intel
irqbypass 16384 1 kvm
În caz contrar, acestea trebuie încărcate manual cu ajutorul comenzii modprobe
:
modprobe kvm_intel
Instalarea QEMU în Arch Linux
Având suportul KVM la dispoziție, ne mai trebuie QEMU pentru a crea și gestiona mașini virtuale.
Pachetul qemu se instalează cu comanda:
sudo pacman -Syu qemu
Spre deosebire de VirtualBox sau VMware, QEMU nu oferă interfață grafică by default, așa că trebuie să instalăm și următorul pachet:
sudo pacman -Syu virt-manager
Pornim serviciul libvirtd și-l facem să pornească la boot:
sudo systemctl enable --now libvirtd
Verificăm statusul său (trebuie să fie activ):
sudo systemctl status libvirtd
Dacă încercăm să pornim din meniu Virtual Machine Manager, ni se cere parola de root.
Folosirea Virtual Machine Manager (virt-manager) ca utilizator non-root
1. Vom verifica dacă există grupul libvirt:
$ getent group | grep libvirt
libvirt:x:613:bobsesa
Dacă nu există deja în sistem, vom crea acest grup cu comanda (unde 7777 este id-ul grupului):
# groupadd -g 7777 libvirt
2. Adăugăm utilizatorul nostru la grupul libvirt:
# usermod -aG libvirt nume_utilizator
Verificăm dacă utilizatorul nostru a fost adăugat la acest grup:
3. Se editează fișierul de configurare libvirtd.conf:
sudo vi /etc/libvirt/libvirtd.conf
și adăugăm la final următoarele 2 linii:
unix_sock_group = "libvirt"
unix_sock_rw_perms = "0770"
4. Se restartează serviciul:
sudo systemctl restart libvirtd
- Logout și apoi Login în sistem
Lansăm Virtual Machine Manager fie din meniu, fie din linia de comandă:
$ virt-manager
Și bum! 🙂 Avem QEMU și KVM în Arch Linux:
- Instalarea unor pachete suplimentare pentru a fi asigurată conectivitatea rețelei (necesare pentru distribuțiile non-rpm, cum este Arch Linux):
- ebtables și dnsmasq pentru rețeaua default NAT/DHCP
- bridge-utils a putea crea rețele bridge
- openbsd-netcat pentru remote management prin SSH.
Instalarea primei mașini virtuale cu CentOS 7 în KVM va face obiectul altui tutorial.
MarianB a zis
Nu știu ce ai modificat dar e-mailul primit de la tine arată așa ceea ce-i cam ciudat: https://imgur.com/EjjN8RY
Bobses a zis
N-am modificat nimic. Uite cum arată cel primit de mine: https://imgur.com/i3yxjIO