RHCSA Series: Essentials of Virtualization and Guest Administration with KVM - Del 15


Hvis du slår opp ordet virtualisere i en ordbok, vil du finne at det betyr «å lage en virtuell (i stedet for faktisk) versjon av noe.» I databehandling refererer begrepet virtualisering til muligheten for å kjøre flere operativsystemer samtidig og isolert fra hverandre, på toppen av det samme fysiske (maskinvare) systemet, kjent i virtualiseringsskjemaet som vert.

Gjennom bruken av den virtuelle maskinmonitoren (også kjent som hypervisor), blir virtuelle maskiner (referert til som gjester) gitt virtuelle ressurser (dvs. CPU, RAM, lagring, nettverksgrensesnitt, for å nevne noen) fra den underliggende maskinvaren.

Med det i tankene er det tydelig å se at en av hovedfordelene med virtualisering er kostnadsbesparelser (i utstyr og nettverksinfrastruktur og i form av vedlikeholdsinnsats) og en betydelig reduksjon i den fysiske plassen som kreves for å romme all nødvendig maskinvare.

Siden denne korte fremgangsmåten ikke kan dekke alle virtualiseringsmetoder, oppfordrer jeg deg til å referere til dokumentasjonen som er oppført i sammendraget for ytterligere detaljer om emnet.

Vær oppmerksom på at denne artikkelen er ment å være et utgangspunkt for å lære det grunnleggende om virtualisering i RHEL 7 ved å bruke KVM (Kernel-basert virtuell maskin) med kommandolinjeverktøy, og ikke en grundig diskusjon av emnet.

Verifisere maskinvarekrav og installere pakker

For å sette opp virtualisering må CPU-en din støtte det. Du kan bekrefte om systemet ditt oppfyller kravene med følgende kommando:

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

I det følgende skjermbildet kan vi se at det nåværende systemet (med en AMD-mikroprosessor) støtter virtualisering, som indikert av svm. Hvis vi hadde en Intel-basert prosessor, ville vi se vmx i stedet i resultatene av kommandoen ovenfor.

I tillegg må du ha virtualiseringsfunksjoner aktivert i fastvaren til verten din (BIOS eller UEFI).

Installer nå de nødvendige pakkene:

  1. qemu-kvm er en åpen kildekode-virtualisering som gir maskinvareemulering for KVM-hypervisoren, mens qemu-img gir et kommandolinjeverktøy for å manipulere diskbilder.
  2. libvirt inkluderer verktøyene for å samhandle med virtualiseringsmulighetene til operativsystemet.
  3. libvirt-python inneholder en modul som tillater applikasjoner skrevet i Python å bruke grensesnittet levert av libvirt.
  4. libguestfs-tools: diverse systemadministrator-kommandolinjeverktøy for virtuelle maskiner.
  5. virt-install: andre kommandolinjeverktøy for virtuell maskinadministrasjon.

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

Når installasjonen er fullført, sørg for at du starter og aktiverer libvirtd-tjenesten:

# systemctl start libvirtd.service
# systemctl enable libvirtd.service

Som standard vil hver virtuell maskin kun kunne kommunisere med resten på den samme fysiske serveren og med verten selv. For å tillate gjestene å nå andre maskiner innenfor vårt LAN og også Internett, må vi sette opp et brogrensesnitt i verten vår (si br0, for eksempel) ved å,

1. legge til følgende linje i hovedkonfigurasjonen for NIC (mest sannsynlig /etc/sysconfig/network-scripts/ifcfg-enp0s3):

BRIDGE=br0

2. lage konfigurasjonsfilen for br0 (/etc/sysconfig/network-scripts/ifcfg-br0) med dette innholdet (merk at du kanskje må endre IP-adressen, gatewayadressen og DNS-informasjonen ):

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. til slutt, aktivere pakkevideresending ved å lage, i /etc/sysctl.conf,

net.ipv4.ip_forward = 1

og laster endringene til gjeldende kjernekonfigurasjon:

# sysctl -p

Merk at du kanskje også må fortelle brannmuren at denne typen trafikk bør tillates. Husk at du kan referere til artikkelen om det emnet i samme serie (Del 11: Network Traffic Control Using FirewallD and Iptables) hvis du trenger hjelp til å gjøre det.