RHCSA-serien: Essentials of Virtualization and Guest Administration with KVM - Part 15


Hvis du ser op på ordet virtualisering i en ordbog, vil du opdage, at det betyder "at oprette en virtuel (snarere end egentlig) version af noget". I computing henviser udtrykket virtualisering til muligheden for at køre flere operativsystemer samtidigt og isoleret fra hinanden oven på det samme fysiske (hardware) system, kendt i virtualiseringsskemaet som vært.

Via brugen af den virtuelle maskins monitor (også kendt som hypervisor) leveres virtuelle maskiner (kaldet gæster) virtuelle ressourcer (dvs. CPU, RAM, lagring, netværksgrænseflader, for at nævne nogle få) fra den underliggende hardware.

Med det i tankerne er det tydeligt at se, at en af de største fordele ved virtualisering er omkostningsbesparelser (i udstyr og netværksinfrastruktur og med hensyn til vedligeholdelsesindsats) og en betydelig reduktion i det fysiske rum, der kræves for at rumme al den nødvendige hardware.

Da denne korte vejledning ikke kan dække alle virtualiseringsmetoder, opfordrer jeg dig til at henvise til dokumentationen, der er anført i resuméet for yderligere detaljer om emnet.

Husk, at denne artikel er beregnet til at være et udgangspunkt for at lære det grundlæggende i virtualisering i RHEL 7 ved hjælp af KVM (Kernel-baseret Virtual Machine) med kommandolinjeværktøjer og ikke en grundig diskussion af emnet.

Bekræftelse af hardwarekrav og installation af pakker

For at oprette virtualisering skal din CPU understøtte den. Du kan kontrollere, om dit system opfylder kravene med følgende kommando:

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

I det følgende skærmbillede kan vi se, at det nuværende system (med en AMD-mikroprocessor) understøtter virtualisering, som angivet af svm. Hvis vi havde en Intel-baseret processor, ville vi i stedet se vmx i resultaterne af ovenstående kommando.

Derudover skal du have virtualiseringsfunktioner aktiveret i din værts firmware (BIOS eller UEFI).

Installer nu de nødvendige pakker:

  1. qemu-kvm er en open source virtualizer, der giver hardwareemulering til KVM hypervisor, mens qemu-img giver et kommandolinjeværktøj til manipulation af diskbilleder.
  2. libvirt inkluderer værktøjerne til at interagere med operativsystemets virtualiseringsfunktioner.
  3. libvirt-python indeholder et modul, der tillader applikationer skrevet i Python at bruge grænsefladen leveret af libvirt.
  4. libguestfs-tools: diverse systemadministrator kommandolinjeværktøjer til virtuelle maskiner.
  5. virt-install: andre kommandolinjeværktøjer til administration af virtuel maskine.

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

Når installationen er gennemført, skal du sørge for at starte og aktivere libvirtd-tjenesten:

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

Som standard vil hver virtuel maskine kun være i stand til at kommunikere med resten på den samme fysiske server og med værten selv. For at give gæsterne mulighed for at nå ud til andre maskiner inden for vores LAN og også Internettet, er vi nødt til at oprette en brogrænseflade i vores vært (f.eks.Br0) ved at

1. tilføje følgende linje til vores primære NIC-konfiguration (sandsynligvis /etc/sysconfig/network-scripts/ifcfg-enp0s3 ):

BRIDGE=br0

2. oprettelse af konfigurationsfilen til br0 (/etc/sysconfig/network-scripts/ifcfg-br0 ) med dette indhold (bemærk, at du muligvis skal ændre IP-adresse, gateway-adresse og DNS-information ):

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. endelig, muliggør videresendelse af pakke ved at lave i /etc/sysctl.conf ,

net.ipv4.ip_forward = 1

og indlæser ændringerne til den aktuelle kernekonfiguration:

# sysctl -p

Bemærk, at du muligvis også skal fortælle firewalld, at denne form for trafik skal være tilladt. Husk, at du kan henvise til artiklen om dette emne i samme serie (del 11: Netværkstrafikstyring ved hjælp af FirewallD og Iptables), hvis du har brug for hjælp til at gøre det.