Serie RHCSA: Fondamenti della virtualizzazione e amministrazione degli ospiti con KVM – Parte 15

Se cerchi la parola virtualizzare in un dizionario, troverai che significa “creare una versione virtuale (piuttosto che reale) di qualcosa“. In informatica, il termine virtualizzazione si riferisce alla possibilità di eseguire contemporaneamente e isolare uno dall’altro più sistemi operativi, sopra lo stesso sistema fisico (hardware), conosciuto nello schema di virtualizzazione come host.

RHCSA Series: Essentials of Virtualization and Guest Administration with KVM – Part 15

Attraverso l’uso del monitor della macchina virtuale (noto anche come hypervisor), le macchine virtuali (chiamate guest) vengono fornite di risorse virtuali (ad esempio CPU, RAM, storage, interfacce di rete, per citarne alcune) dall’hardware sottostante.

Tenendo presente questo, è evidente che uno dei principali vantaggi della virtualizzazione è il risparmio di costi (in attrezzature e infrastrutture di rete e in termini di sforzo di manutenzione) e una sostanziale riduzione dello spazio fisico necessario per ospitare tutto l’hardware necessario.

Dato che questa breve guida non può coprire tutti i metodi di virtualizzazione, ti incoraggio a fare riferimento alla documentazione elencata nel riepilogo per ulteriori dettagli sull’argomento.

Per favore, tieni presente che l’articolo presente è destinato a essere un punto di partenza per imparare le basi della virtualizzazione in RHEL 7 utilizzando KVM (Kernel-based Virtual Machine) con utilità a riga di comando, e non una discussione approfondita dell’argomento.

Verifica dei Requisiti Hardware e Installazione dei Pacchetti

Per impostare la virtualizzazione, la tua CPU deve supportarla. Puoi verificare se il tuo sistema soddisfa i requisiti con il seguente comando:

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

Nella seguente schermata possiamo vedere che il sistema attuale (con un processore AMD) supporta la virtualizzazione, come indicato da svm. Se avessimo un processore Intel, vedremmo invece vmx nei risultati del comando sopra.

Check KVM Support

Inoltre, sarà necessario avere abilitate le capacità di virtualizzazione nel firmware del tuo host (BIOS o UEFI).

Ora installa i pacchetti necessari:

  1. qemu-kvm è un virtualizzatore open source che fornisce emulazione hardware per l’ipervisore KVM, mentre qemu-img fornisce un tool da riga di comando per manipolare le immagini disco.
  2. libvirt include gli strumenti per interagire con le capacità di virtualizzazione del sistema operativo.
  3. libvirt-python contiene un modulo che permette alle applicazioni scritte in Python di utilizzare l’interfaccia fornita da libvirt.
  4. libguestfs-tools: strumenti da riga di comando vari per gli amministratori di sistema delle macchine virtuali.
  5. virt-install: altre utilità da riga di comando per l’amministrazione delle macchine virtuali.
# yum update && yum install qemu-kvm qemu-img libvirt libvirt-python libguestfs-tools virt-install

Una volta completata l’installazione, assicurati di avviare e abilitare il servizio libvirtd:

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

Per impostazione predefinita, ogni macchina virtuale sarà in grado di comunicare solo con le altre nello stesso server fisico e con l’host stesso. Per consentire agli ospiti di raggiungere altre macchine all’interno della nostra LAN e anche Internet, è necessario configurare un’interfaccia bridge nel nostro host (ad esempio br0) tramite:

1. aggiungendo la seguente riga alla configurazione della nostra scheda di rete principale (molto probabilmente /etc/sysconfig/network-scripts/ifcfg-enp0s3):

BRIDGE=br0

2. creando il file di configurazione per br0 (/etc/sysconfig/network-scripts/ifcfg-br0) con questi contenuti (nota che potresti dover modificare l’indirizzo IP, l’indirizzo del gateway e le informazioni 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. infine, abilitando l’inoltro dei pacchetti rendendo, in /etc/sysctl.conf,

net.ipv4.ip_forward = 1

e caricando le modifiche nella configurazione del kernel corrente:

# sysctl -p

Nota che potrebbe essere necessario anche informare firewalld che questo tipo di traffico deve essere consentito. Ricorda che puoi fare riferimento all’articolo su questo argomento nella stessa serie (Parte 11: Controllo del traffico di rete utilizzando FirewallD e Iptables) se hai bisogno di aiuto per farlo.

Source:
https://www.tecmint.com/kvm-virtualization-basics-and-guest-administration/