Virtualizzazione · 5 min read · Feb 01, 2026

Virtualizzazione Con KVM Su Un Server Fedora 11

Virtualizzazione Con KVM Su Un Server Fedora 11

Versione 1.0
Autore: Falko Timme

Questa guida spiega come puoi installare e utilizzare KVM per creare ed eseguire macchine virtuali su un server Fedora 11. Mostrerò come creare macchine virtuali basate su immagine e anche macchine virtuali che utilizzano un volume logico (LVM). KVM è l’abbreviazione di Kernel-based Virtual Machine e sfrutta la virtualizzazione hardware, cioè hai bisogno di una CPU che supporti la virtualizzazione hardware, ad esempio Intel VT o AMD-V.

Non fornisco alcuna garanzia che questo funzionerà per te!

1 Nota Preliminare

Sto usando un server Fedora 11 con il nome host server1.example.com e l’indirizzo IP 192.168.0.100 qui come mio host KVM.

Abbiamo anche bisogno di un sistema desktop dove installiamo virt-manager in modo da poterci connettere alla console grafica delle macchine virtuali che installiamo. Sto usando un desktop Fedora 11 qui.

2 Installazione di KVM

Host KVM Fedora 11:

Prima controlla se la tua CPU supporta la virtualizzazione hardware - se questo è il caso, il comando

egrep '(vmx|svm)' --color=always /proc/cpuinfo

dovrebbe visualizzare qualcosa, ad esempio come questo:

[root@server1 ~]# egrep '(vmx|svm)' --color=always /proc/cpuinfo  
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall  
 nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch  
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall  
 nx mmxext fxsr_opt rdtscp lm 3dnowext 3dnow rep_good nopl pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch  
[root@server1 ~]#

Se non viene visualizzato nulla, allora il tuo processore non supporta la virtualizzazione hardware e devi fermarti qui.

Per installare KVM e virtinst (uno strumento per creare macchine virtuali), eseguiamo

yum install kvm qemu libvirt python-virtinst

Poi avvia il demone libvirt:

/etc/init.d/libvirtd start

Per controllare se KVM è stato installato correttamente, esegui

virsh -c qemu:///system list

Dovrebbe visualizzare qualcosa come questo:

[root@server1 ~]# virsh -c qemu:///system list  
 Id Name                 State  
----------------------------------  
  
[root@server1 ~]#

Se visualizza un errore invece, allora qualcosa è andato storto.

Successivamente dobbiamo configurare un bridge di rete sul nostro server in modo che le nostre macchine virtuali possano essere accessibili da altri host come se fossero sistemi fisici nella rete.

Per fare ciò, installiamo il pacchetto bridge-utils…

yum install bridge-utils

… e configuriamo un bridge.

Disabilito il NetworkManager di Fedora e abilito la rete “normale”. NetworkManager è utile per i desktop dove le connessioni di rete possono cambiare (ad esempio LAN vs. WLAN), ma su un server di solito non cambi le connessioni di rete:

chkconfig NetworkManager off  
chkconfig --levels 35 network on  
/etc/init.d/network restart

Controlla il tuo /etc/resolv.conf se elenca tutti i nameserver che hai precedentemente configurato:

cat /etc/resolv.conf

Se mancano i nameserver, esegui

system-config-network

e aggiungi di nuovo i nameserver mancanti.

Per configurare il bridge, crea il file /etc/sysconfig/network-scripts/ifcfg-br0 (si prega di utilizzare i valori BOOTPROTO, DNS1 (più eventuali altre impostazioni DNS, se presenti), GATEWAY, IPADDR, NETMASK e SEARCH dal file /etc/sysconfig/network-scripts/ifcfg-eth0):

vi /etc/sysconfig/network-scripts/ifcfg-br0

| DEVICE=br0 TYPE=Bridge BOOTPROTO=static DNS1=145.253.2.75 GATEWAY=192.168.0.1 IPADDR=192.168.0.100 NETMASK=255.255.255.0 ONBOOT=yes SEARCH="example.com" |

Modifica /etc/sysconfig/network-scripts/ifcfg-eth0 come segue (commenta BOOTPROTO, DNS1 (e tutti gli altri server DNS, se presenti), GATEWAY, IPADDR, NETMASK e SEARCH e aggiungi BRIDGE=br0):

vi /etc/sysconfig/network-scripts/ifcfg-eth0

| # Networking Interface DEVICE=eth0 #BOOTPROTO=none #DNS1=145.253.2.75 #GATEWAY=192.168.0.1 HWADDR=00:1e:90:f3:f0:02 #IPADDR=192.168.0.100 #NETMASK=255.255.255.0 ONBOOT=yes TYPE=Ethernet IPV6INIT=no USERCTL=no BRIDGE=br0 |

Poi riavvia il sistema:

reboot

Dopo il riavvio, esegui

ifconfig

Ora dovrebbe mostrare il bridge di rete ( br0):

[root@server1 ~]# ifconfig  
br0       Link encap:Ethernet  HWaddr 00:1E:90:F3:F0:02  
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0  
          inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:113 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:91 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:16520 (16.1 KiB)  TX bytes:11889 (11.6 KiB)  
  
eth0      Link encap:Ethernet  HWaddr 00:1E:90:F3:F0:02  
          inet6 addr: fe80::21e:90ff:fef3:f002/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:136 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:98 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:1000  
          RX bytes:22152 (21.6 KiB)  TX bytes:14147 (13.8 KiB)  
          Interrupt:28 Base address:0x2000  
  
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0  
          inet6 addr: ::1/128 Scope:Host  
          UP LOOPBACK RUNNING  MTU:16436  Metric:1  
          RX packets:10 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:746 (746.0 b)  TX bytes:746 (746.0 b)  
  
virbr0    Link encap:Ethernet  HWaddr E2:54:14:EA:7A:01  
          inet addr:192.168.122.1  Bcast:192.168.122.255  Mask:255.255.255.0  
          inet6 addr: fe80::e054:14ff:feea:7a01/64 Scope:Link  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:29 errors:0 dropped:0 overruns:0 carrier:0  
          collisions:0 txqueuelen:0  
          RX bytes:0 (0.0 b)  TX bytes:5156 (5.0 KiB)  
  
[root@server1 ~]#

3 Installazione di virt-manager Sul Tuo Desktop Fedora 11

Desktop Fedora 11:

Abbiamo bisogno di un mezzo per connetterci alla console grafica dei nostri ospiti - possiamo usare virt-manager per questo. Presumo che tu stia usando un desktop Fedora 11.

Diventa root…

su

… e esegui…

yum install virt-manager

… per installare virt-manager.

(Se stai usando un desktop Ubuntu 9.04, puoi installare virt-manager come segue:

sudo aptitude install virt-manager

)

4 Creazione Di Un Ospite Debian Lenny (Basato Su Immagine)

Host KVM Fedora 11:

Ora torniamo al nostro host KVM Fedora 11.

Dai un’occhiata a

man virt-install

per imparare come usarlo.

Per creare un ospite Debian Lenny (in modalità bridging) con il nome vm10, 512MB di RAM, due CPU virtuali e l’immagine del disco ~/vm10.qcow2 (con una dimensione di 12GB), inserisci il CD di installazione Netinstall di Debian Lenny nell’unità CD e esegui

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c /dev/cdrom --vnc --noautoconsole --os-type linux --os-variant debianlenny --accelerate --network=bridge:br0 --hvm

Certo, puoi anche creare un’immagine ISO del CD di installazione Netinstall di Debian Lenny…

dd if=/dev/cdrom of=~/debian-500-amd64-netinst.iso

… e utilizzare l’immagine ISO nel comando virt-install:

virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debianlenny --accelerate --network=bridge:br0 --hvm

L’output è il seguente:

[root@server1 ~]# virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 -f ~/vm10.qcow2 -s 12 -c ~/debian-500-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debianlenny --accelerate --network=bridge:br0 --hvm  


Avvio installazione...  
Creazione file di archiviazione...                               |  12 GB     00:00  
Creazione dominio...  
Dominio installazione ancora in corso. Puoi riconnetterti alla console per completare il processo di installazione.  
[root@server1 ~]#
Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.