Sèrie RHCSA: Conceptes bàsics de virtualització i administració de convidats amb KVM - Part 15


Si busqueu la paraula virtualitzar en un diccionari, trobareu que significa crear una versió virtual (en lloc de real) d'alguna cosa. En informàtica, el terme virtualització es refereix a la possibilitat d'executar diversos sistemes operatius simultàniament i aïllats els uns dels altres, a sobre del mateix sistema físic (maquinari), conegut a l'esquema de virtualització com a host.

Mitjançant l'ús del monitor de la màquina virtual (també conegut com a hipervisor), les màquines virtuals (anomenades convidades) reben recursos virtuals (és a dir, CPU, RAM, emmagatzematge, interfícies de xarxa, per citar-ne algunes) des del maquinari subjacent.

Tenint això en compte, és evident que un dels principals avantatges de la virtualització és l'estalvi de costos (en equips i infraestructura de xarxa i en esforç de manteniment) i una reducció substancial de l'espai físic necessari per acollir tot el maquinari necessari.

Atès que aquesta breu instrucció no pot cobrir tots els mètodes de virtualització, us recomano que consulteu la documentació enumerada al resum per obtenir més detalls sobre el tema.

Tingueu en compte que el present article pretén ser un punt de partida per aprendre els conceptes bàsics de la virtualització a RHEL 7 mitjançant KVM (màquina virtual basada en nucli) amb utilitats de línia d'ordres, i no una discussió en profunditat del tema.

Verificació dels requisits de maquinari i instal·lació de paquets

Per configurar la virtualització, la CPU l'ha de suportar. Podeu verificar si el vostre sistema compleix els requisits amb l'ordre següent:

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

A la següent captura de pantalla podem veure que el sistema actual (amb un microprocessador AMD) admet la virtualització, tal com indica svm. Si tinguéssim un processador basat en Intel, veuríem vmx als resultats de l'ordre anterior.

A més, haureu de tenir les capacitats de virtualització habilitades al microprogramari del vostre host (BIOS o UEFI).

Ara instal·leu els paquets necessaris:

  1. qemu-kvm és un virtualitzador de codi obert que proporciona emulació de maquinari per a l'hipervisor KVM, mentre que qemu-img proporciona una eina de línia d'ordres per manipular imatges de disc.
  2. libvirt inclou les eines per interactuar amb les capacitats de virtualització del sistema operatiu.
  3. libvirt-python conté un mòdul que permet que les aplicacions escrites en Python utilitzin la interfície subministrada per libvirt.
  4. libguestfs-tools: diverses eines de línia d'ordres de l'administrador del sistema per a màquines virtuals.
  5. virt-install: altres utilitats de línia d'ordres per a l'administració de màquines virtuals.

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

Un cop finalitzada la instal·lació, assegureu-vos d'iniciar i habilitar el servei libvirtd:

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

Per defecte, cada màquina virtual només es podrà comunicar amb la resta en el mateix servidor físic i amb el propi host. Per permetre que els convidats puguin arribar a altres màquines dins de la nostra LAN i també a Internet, hem de configurar una interfície de pont al nostre host (per exemple, br0) mitjançant,

1. afegint la línia següent a la nostra configuració principal de la NIC (el més probable és /etc/sysconfig/network-scripts/ifcfg-enp0s3):

BRIDGE=br0

2. crear el fitxer de configuració per a br0 (/etc/sysconfig/network-scripts/ifcfg-br0) amb aquests continguts (tingueu en compte que és possible que hàgiu de canviar l'adreça IP, l'adreça de la passarel·la i la informació DNS ):

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. finalment, habilitant el reenviament de paquets fent, a /etc/sysctl.conf,

net.ipv4.ip_forward = 1

i carregant els canvis a la configuració actual del nucli:

# sysctl -p

Tingueu en compte que també haureu de dir-li a firewalld que aquest tipus de trànsit s'hauria de permetre. Recordeu que podeu consultar l'article sobre aquest tema d'aquesta mateixa sèrie (Part 11: Control de trànsit de xarxa mitjançant FirewallD i Iptables) si necessiteu ajuda per fer-ho.