Serija RHCSA: Osnove virtualizacije i gostujuće administracije s KVM-om - 15. dio


Ako potražite riječ virtualizirati u rječniku, otkrit ćete da ona znači “stvoriti virtualnu (a ne stvarnu) verziju nečega”. U računalstvu, izraz virtualizacija odnosi se na mogućnost pokretanja više operacijskih sustava istovremeno i izoliranih jedan od drugog, povrh istog fizičkog (hardverskog) sustava, poznatog u virtualizacijskoj shemi kao host.

Upotrebom monitora virtualnog stroja (također poznatog kao hipervizor), virtualni strojevi (koji se nazivaju gosti) dobivaju virtualne resurse (tj. CPU, RAM, pohranu, mrežu sučelja, da spomenemo samo neke) od temeljnog hardvera.

Imajući to na umu, jasno je vidjeti da je jedna od glavnih prednosti virtualizacije ušteda troškova (u opremi i mrežnoj infrastrukturi te u smislu napora održavanja) i znatno smanjenje fizičkog prostora potrebnog za smještaj svog potrebnog hardvera.

Budući da ove kratke upute ne mogu pokriti sve metode virtualizacije, savjetujem vam da pogledate dokumentaciju navedenu u sažetku za dodatne pojedinosti o toj temi.

Imajte na umu da je ovaj članak namijenjen kao početna točka za učenje osnova virtualizacije u RHEL 7 koristeći KVM (Virtualni stroj temeljen na jezgri) s uslužnim programima naredbenog retka, a ne in -dubinska rasprava o temi.

Provjera hardverskih zahtjeva i instaliranje paketa

Da biste postavili virtualizaciju, vaš CPU je mora podržavati. Možete provjeriti ispunjava li vaš sustav zahtjeve pomoću sljedeće naredbe:


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

Na sljedećoj snimci zaslona možemo vidjeti da trenutni sustav (s AMD mikroprocesorom) podržava virtualizaciju, kao što je označeno svm. Da imamo procesor temeljen na Intelu, vidjeli bismo vmx umjesto toga u rezultatima gornje naredbe.

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

Sada instalirajte potrebne pakete:

  1. qemu-kvm je virtualizator otvorenog koda koji pruža hardversku emulaciju za KVM hipervizor, dok qemu-img pruža alat naredbenog retka za manipuliranje slikama diska.
  2. libvirt uključuje alate za interakciju s virtualizacijskim mogućnostima operativnog sustava.
  3. libvirt-python sadrži modul koji dopušta aplikacijama napisanim u Pythonu korištenje sučelja koje pruža libvirt.
  4. libguestfs-tools: razni alati naredbenog retka administratora sustava za virtualna računala.
  5. virt-install: drugi uslužni programi naredbenog retka za administraciju virtualnog stroja.

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

Kada instalacija završi, svakako pokrenite i omogućite uslugu libvirtd:


systemctl start libvirtd.service
systemctl enable libvirtd.service

Prema zadanim postavkama, svaki će virtualni stroj moći komunicirati samo s ostatkom na istom fizičkom poslužitelju i sa samim hostom. Kako bismo omogućili gostima pristup drugim strojevima unutar našeg LAN-a, a također i Internetu, moramo postaviti sučelje mosta u našem hostu (recimo br0, na primjer) putem,

1. dodavanje sljedećeg retka našoj glavnoj NIC konfiguraciji (najvjerojatnije /etc/sysconfig/network-scripts/ifcfg-enp0s3):


BRIDGE=br0

2. stvaranje konfiguracijske datoteke za br0 (/etc/sysconfig/network-scripts/ifcfg-br0) s ovim sadržajem (imajte na umu da možda ćete morati promijeniti IP adresu, adresu pristupnika 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 napraviti


net.ipv4.ip_forward = 1

i učitavanje promjena trenutne konfiguracije kernela:


sysctl -p

Imajte na umu da ćete možda također morati reći vatrozidu da ova vrsta prometa treba biti dopuštena. Imajte na umu da se možete pozvati na članak o toj temi u istoj seriji (Dio 11: Kontrola mrežnog prometa pomoću FirewallD-a i Iptables) ako trebate pomoć da to učinite.