Serija RHCSA: Osnove virtuelizacije i administracije gostiju sa KVM-om - 15. dio


Ako potražite riječ virtualizirati u rječniku, otkrit ćete da ona znači “stvoriti virtuelnu (a ne stvarnu) verziju nečega”. U računarstvu, termin virtuelizacija se odnosi na mogućnost pokretanja više operativnih sistema istovremeno i izolovanih jedan od drugog, na vrhu istog fizičkog (hardverskog) sistema, poznatog u šemi virtuelizacije kao host.

Korišćenjem monitora virtuelne mašine (takođe poznatog kao hipervizor), virtuelnim mašinama (koji se nazivaju gosti) se obezbeđuju virtuelni resursi (tj. CPU, RAM, skladište, mreža interfejsa, da spomenemo samo neke) od osnovnog hardvera.

Imajući to na umu, jasno je da se vidi da je jedna od glavnih prednosti virtuelizacije ušteda troškova (u opremi i mrežnoj infrastrukturi i u smislu napora za održavanje) i značajno smanjenje fizičkog prostora potrebnog za smještaj potrebnog hardvera.

Budući da ova kratka uputstva ne mogu pokriti sve metode virtuelizacije, preporučujem vam da pogledate dokumentaciju navedenu u sažetku za dodatne detalje o ovoj temi.

Imajte na umu da je ovaj članak namijenjen da bude početna tačka za učenje osnova virtuelizacije u RHEL 7 koristeći KVM (virtuelnu mašinu zasnovanu na kernelu) sa uslužnim programima komandne linije, a ne in -dubinska diskusija o temi.

Provjera hardverskih zahtjeva i instaliranje paketa

Da biste postavili virtuelizaciju, vaš CPU to mora podržavati. Možete provjeriti da li vaš sistem ispunjava zahtjeve pomoću sljedeće naredbe:


grep -E 'svm|vmx' /proc/cpuinfo

Na sljedećem snimku ekrana možemo vidjeti da trenutni sistem (sa AMD mikroprocesorom) podržava virtuelizaciju, kao što pokazuje svm. Da imamo procesor baziran na Intelu, umjesto toga vidjeli bismo vmx u rezultatima gornje naredbe.

Osim toga, morat ćete imati omogućene mogućnosti virtuelizacije u firmveru vašeg hosta (BIOS ili UEFI).

Sada instalirajte potrebne pakete:

  1. qemu-kvm je virtuelizator otvorenog koda koji obezbeđuje emulaciju hardvera za KVM hipervizor, dok qemu-img obezbeđuje alatku komandne linije za manipulaciju slikama diska.
  2. libvirt uključuje alate za interakciju sa mogućnostima virtuelizacije operativnog sistema.
  3. libvirt-python sadrži modul koji dozvoljava aplikacijama napisanim u Python-u da koriste interfejs koji obezbeđuje libvirt.
  4. libguestfs-tools: razni alati komandne linije administratora sistema za virtuelne mašine.
  5. virt-install: drugi uslužni programi komandne linije za administraciju virtuelnih mašina.

yum update && yum install qemu-kvm qemu-img libvirt libvirt-python libguestfs-tools virt-install

Kada se instalacija završi, provjerite jeste li pokrenuli i omogućili uslugu libvirtd:


systemctl start libvirtd.service
systemctl enable libvirtd.service

Podrazumevano, svaka virtuelna mašina će moći da komunicira samo sa ostalima na istom fizičkom serveru i sa samim hostom. Kako bismo omogućili gostima da dođu do drugih mašina unutar našeg LAN-a, a također i na Internet, moramo postaviti bridge interfejs u našem hostu (recimo br0, na primjer)

1. dodavanjem sljedećeg reda našoj glavnoj NIC konfiguraciji (najvjerovatnije /etc/sysconfig/network-scripts/ifcfg-enp0s3):


BRIDGE=br0

2. kreiranje konfiguracijske datoteke za br0 (/etc/sysconfig/network-scripts/ifcfg-br0) sa ovim sadržajem (imajte na umu da možda ćete morati promijeniti IP adresu, adresu gatewaya i DNS informacije):


DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=br0
ONBOOT=yes
DNS1=8.8.8.8
DNS2=8.8.4.4

3. konačno, omogućavanje prosljeđivanja paketa tako što ćete u /etc/sysctl.conf,


net.ipv4.ip_forward = 1

i učitavanje promjena trenutne konfiguracije kernela:


sysctl -p

Imajte na umu da ćete možda morati reći firewalld-u da ova vrsta saobraćaja treba biti dozvoljena. Zapamtite da možete pogledati članak na tu temu u istoj seriji (11. dio: Kontrola mrežnog prometa pomoću FirewallD i Iptables) ako vam je potrebna pomoć da to učinite.