Virtualizzazione · 5 min read · Dec 23, 2025

Virtualizzazione Con KVM Su Un Server OpenSUSE 12.2

Virtualizzazione Con KVM Su Un Server OpenSUSE 12.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 OpenSUSE 12.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 rilascio alcuna garanzia che questo funzionerà per te!

1 Nota Preliminare

Sto usando un server OpenSUSE 12.2 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 OpenSUSE 12.2 qui.

2 Installazione di KVM

Host KVM OpenSUSE 12.2:

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 così:

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 extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv
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 extd_apicid pni cx16 lahf_lm cmp_legacy svm extapic cr8_legacy 3dnowprefetch lbrv
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

zypper install kvm libvirt libvirt-python qemu virt-manager

Sfortunatamente libvirt-python è in conflitto con il pacchetto patterns-openSUSE-minimal_base-conflicts. Pertanto dobbiamo scegliere di disinstallare quel pacchetto:

Problema: libvirt-python-0.9.11.4-1.2.1.x86_64 richiede python = 2.7, ma questo requisito non può essere fornito
distributori disinstallabili: python-2.7.3-3.6.1.x86_64[openSUSE-12.2-1.6]
python-2.7.3-3.6.1.i586[repo-oss]
python-2.7.3-3.6.1.x86_64[repo-oss]
Soluzione 1: Le seguenti azioni verranno eseguite:
non installare libvirt-python-0.9.11.4-1.2.1.x86_64
non installare virt-manager-0.9.4-1.6.1.x86_64
Soluzione 2: Le seguenti azioni verranno eseguite:
non installare virt-manager-0.9.4-1.6.1.x86_64
non installare libvirt-python-0.9.11.4-1.2.1.x86_64
Soluzione 3: disinstallazione di patterns-openSUSE-minimal_base-conflicts-12.2-5.5.1.x86_64
Soluzione 4: interrompere libvirt-python-0.9.11.4-1.2.1.x86_64 ignorando alcune delle sue dipendenze

Scegli tra le soluzioni sopra per numero o annulla [1/2/3/4/c] (c): <– 3

Quindi crea i collegamenti di avvio del sistema per libvirtd…

systemctl enable libvirtd.service

… e avvia il demone libvirt:

systemctl start libvirtd.service

Per controllare se KVM è stato installato correttamente, esegui

virsh -c qemu:///system list

Dovrebbe visualizzare qualcosa di simile:

server1:~ # virsh -c qemu:///system list
WARNING: no socket to connect to
Id Name State

———————————-

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…

zypper install bridge-utils

… e configuriamo un bridge.

Per configurare il bridge, crea il file /etc/sysconfig/network/ifcfg-br0 come segue (assicurati di utilizzare l’impostazione IPADDR dal file /etc/sysconfig/network/ifcfg-eth0):

vi /etc/sysconfig/network/ifcfg-br0

| STARTMODE='auto' BOOTPROTO='static' IPADDR='192.168.0.100/24' MTU='' NETMASK='' NETWORK='' BROADCAST='' USERCONTROL=no NAME='Bridge 0' NM_CONTROLLED=no BRIDGE='yes' BRIDGE_PORTS='eth0' BRIDGE_AGEINGTIME='300' BRIDGE_FORWARDDELAY='0' BRIDGE_HELLOTIME='2' BRIDGE_MAXAGE='20' BRIDGE_PATHCOSTS='19' BRIDGE_PORTPRIORITIES= BRIDGE_PRIORITY= BRIDGE_STP='on' |

(Se ricevi il messaggio Non hai un pacchetto binario vim valido installato. Si prega di installare “vim”, “vim-enhanced” o “gvim”., esegui

zypper install vim

per installare vi e riprovare.)

Modifica /etc/sysconfig/network/ifcfg-eth0 come segue (imposta IPADDR su 0.0.0.0 e cambia STARTMODE in hotplug):

vi /etc/sysconfig/network/ifcfg-eth0

| BOOTPROTO='static' BROADCAST='' ETHTOOL_OPTIONS='' IPADDR='0.0.0.0' MTU='' NAME='MCP77 Ethernet' NETMASK='' NETWORK='' REMOTE_IPADDR='' STARTMODE='hotplug' USERCONTROL='no' |

Quindi riavvia la rete:

systemctl restart network.service

Dopo, esegui

ifconfig

Ora dovrebbe mostrare il bridge di rete (br0):

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:92 errors:0 dropped:0 overruns:0 frame:0
TX packets:38 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:12716 (12.4 Kb) TX bytes:5961 (5.8 Kb)

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:131711 errors:0 dropped:0 overruns:0 frame:0
TX packets:80954 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:185764801 (177.1 Mb) TX bytes:6374023 (6.0 Mb)
Interrupt:41 Base address:0x8000

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:12 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:860 (860.0 b) TX bytes:860 (860.0 b)

server1:~ #

3 Installazione di virt-manager Sul Tuo Desktop OpenSUSE 12.1

Desktop OpenSUSE 12.2:

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 OpenSUSE 12.2.

Diventa root…

su

… e esegui…

zypper install virt-manager libvirt

… 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)

Host KVM OpenSUSE 12.2:

Ora torniamo al nostro host KVM OpenSUSE 12.2.

Dai un’occhiata a

virt-install --help per imparare come usarlo.

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 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 --hvm

Naturalmente, puoi anche creare un’immagine ISO del CD di installazione Netinstall di Debian Squeeze (si prega di crearla nella directory /var/lib/libvirt/images/ perché più tardi mostrerò come creare macchine virtuali tramite virt-manager dal tuo desktop OpenSUSE 12.2, e virt-manager cercherà immagini ISO nella directory /var/lib/libvirt/images/)…

dd if=/dev/cdrom of=/var/lib/libvirt/images/debian-6.0.0-amd64-netinst.iso

… e utilizzare 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.0-amd64-netinst.iso --vnc --noautoconsole --os-type linux --os-variant debiansqueeze --accelerate --network=bridge:br0 --hvm

L’output è il seguente:

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.0-amd64-netinst.iso –vnc –noautoconsole –os-type linux –os-variant debiansqueeze –accelerate –network=bridge:br0 –hvm
WARNING: no socket to connect to

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.
server1:~ #

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.