Virtualizzazione · 5 min read · Nov 04, 2025
Virtualizzazione Con KVM Su Un Server CentOS 6.2
Virtualizzazione Con KVM Su Un Server CentOS 6.2
Versione 1.0
Autore: Falko Timme
Seguimi su Twitter
Questa guida spiega come puoi installare e utilizzare KVM per creare ed eseguire macchine virtuali su un server CentOS 6.2. 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 CentOS 6.2 con il nome host server1.example.com e l’indirizzo IP 192.168.0.100 qui come mio host KVM.
Ho disabilitato SELinux sul mio sistema CentOS 6.2. Non ho testato con SELinux attivo; potrebbe funzionare, ma se non lo fa, è meglio disattivare anche SELinux:
vi /etc/selinux/configImposta SELINUX=disabled…
| # Questo file controlla lo stato di SELinux sul sistema. # SELINUX= può assumere uno di questi tre valori: # enforcing - La politica di sicurezza SELinux è applicata. # permissive - SELinux stampa avvisi invece di applicare. # disabled - Nessuna politica SELinux è caricata. SELINUX=disabled # SELINUXTYPE= può assumere uno di questi due valori: # targeted - I processi mirati sono protetti, # mls - Protezione Multi Level Security. SELINUXTYPE=targeted |
… e riavvia:
rebootAbbiamo 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 16 qui.
2 Installazione di KVM
Host KVM CentOS 6.2:
Prima controlla se la tua CPU supporta la virtualizzazione hardware - se è così, il comando
egrep '(vmx|svm)' --color=always /proc/cpuinfodovrebbe visualizzare qualcosa, ad esempio:
[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 pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
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 pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy misalignsse
[root@server1 ~]#Se non viene visualizzato nulla, allora il tuo processore non supporta la virtualizzazione hardware e devi fermarti qui.
Ora importiamo le chiavi GPG per i pacchetti software:
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*Per installare KVM e virtinst (uno strumento per creare macchine virtuali), eseguiamo
yum install kvm libvirt python-virtinst qemu-kvmPoi avvia il demone libvirt:
/etc/init.d/libvirtd startPer controllare se KVM è stato installato correttamente, esegui
virsh -c qemu:///system listDovrebbe visualizzare qualcosa del genere:
[root@server1 ~]# virsh -c qemu:///system list
Id Name State
----------------------------------
[root@server1 ~]#Se visualizza un errore, 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. Crea il file /etc/sysconfig/network-scripts/ifcfg-br0 (per favore usa i valori IPADDR, PREFIX, GATEWAY, DNS1 e DNS2 dal file /etc/sysconfig/network-scripts/ifcfg-eth0); assicurati di usare TYPE=Bridge, non TYPE=Ethernet:
vi /etc/sysconfig/network-scripts/ifcfg-br0| DEVICE="br0" NM_CONTROLLED="yes" ONBOOT=yes TYPE=Bridge BOOTPROTO=none IPADDR=192.168.0.100 PREFIX=24 GATEWAY=192.168.0.1 DNS1=8.8.8.8 DNS2=8.8.4.4 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System br0" |
Modifica /etc/sysconfig/network-scripts/ifcfg-eth0 come segue (commenta BOOTPROTO, IPADDR, PREFIX, GATEWAY, DNS1 e DNS2 e aggiungi BRIDGE=br0):
vi /etc/sysconfig/network-scripts/ifcfg-eth0| DEVICE="eth0" NM_CONTROLLED="yes" ONBOOT=yes HWADDR=00:1E:90:F3:F0:02 TYPE=Ethernet #BOOTPROTO=none #IPADDR=192.168.0.100 #PREFIX=24 #GATEWAY=192.168.0.1 #DNS1=8.8.8.8 #DNS2=8.8.4.4 DEFROUTE=yes IPV4_FAILURE_FATAL=yes IPV6INIT=no NAME="System eth0" UUID=5fb06bd0-0bb0-7ffb-45f1-d6edd65f3e03 BRIDGE=br0 |
Riavvia la rete…
/etc/init.d/network restart… e esegui
ifconfigOra 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:103 errors:0 dropped:0 overruns:0 frame:0
TX packets:79 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:7434 (7.2 KiB) TX bytes:21398 (20.8 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 PROMISC MULTICAST MTU:1500 Metric:1
RX packets:19511 errors:0 dropped:0 overruns:0 frame:0
TX packets:11592 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:25980124 (24.7 MiB) TX bytes:1104371 (1.0 MiB)
Interrupt:28 Base address:0x6000
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:7 errors:0 dropped:0 overruns:0 frame:0
TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3608 (3.5 KiB) TX bytes:3608 (3.5 KiB)
virbr0 Link encap:Ethernet HWaddr 6A:12:69:18:2B:05
inet addr:192.168.122.1 Bcast:192.168.122.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
[root@server1 ~]#3 Installazione di virt-viewer O virt-manager Sul Tuo Desktop Fedora 16
Desktop Fedora 16:
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 16.
Diventa root…
su… e esegui…
yum install virt-manager libvirt qemu-system-x86 openssh-askpass… per installare virt-manager.
(Se stai usando un desktop Ubuntu 11.10, puoi installare virt-manager come segue:
sudo apt-get install virt-manager)
4 Creazione Di Un Ospite Debian Squeeze (Basato Su Immagine) Dalla Riga Di Comando
Host KVM CentOs 6.2:
Ora torniamo al nostro host KVM CentOS 6.2.
Dai un’occhiata a
man virt-installper imparare come usare virt-install.
Creeremo le nostre macchine virtuali basate su immagine nella directory /var/lib/libvirt/images/ che è stata creata automaticamente quando abbiamo installato KVM nel capitolo due.
Per creare un ospite Debian Squeeze (in modalità bridging) con il nome vm10, 512MB di RAM, due CPU virtuali e l’immagine del disco /var/lib/libvirt/images/vm10.img (con una dimensione di 12GB), inserisci il CD di installazione Netinstall di Debian Squeeze nell’unità CD e esegui
virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /dev/cdrom --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvmCerto, puoi anche creare un’immagine ISO del CD di installazione Netinstall di Debian Squeeze (per favore creala nella directory /var/lib/libvirt/images/ perché più tardi ti mostrerò come creare macchine virtuali tramite virt-manager dal tuo desktop Fedora, e virt-manager cercherà immagini ISO nella directory /var/lib/libvirt/images/)…
dd if=/dev/cdrom of=/var/lib/libvirt/images/debian-6.0.2.1-amd64-netinst.iso… e usare l’immagine ISO nel comando virt-install:
virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.2.1-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvmL’output è il seguente:
[root@server1 ~]# virt-install --connect qemu:///system -n vm10 -r 512 --vcpus=2 --disk path=/var/lib/libvirt/images/vm10.img,size=12 -c /var/lib/libvirt/images/debian-6.0.2.1-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm
Inizio installazione...
Allocazione 'vm10.img' | 12 GB 00:00
Creazione dominio... | 0 B 00:00
L'installazione del dominio è ancora in corso. Puoi riconnetterti alla
console per completare il processo di installazione.
[root@server1 ~]#Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.