KVM (Italiano)

From ArchWiki
Revision as of 23:45, 9 March 2011 by 4javier (Talk | contribs) (Created page with "Category:Emulators (Italiano) Category:HOWTOs (Italiano) {{i18n|KVM}} '''KVM''', Kernel Based Virtual Machine, è un hypervisor inserito direttamente all'interno del ker...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

KVM, Kernel Based Virtual Machine, è un hypervisor inserito direttamente all'interno del kernel 2.6 a partire dalla versione 2.6.20. Il suo utilizzo ha scopi simili a quelli di Xen ma è più immediato. Per cominciare ad utilizzare l'hypervisor è sufficiente caricare i moduli appropriati. Come per la virtualizzazione completa di Xen, anche per utilizzare KVM è necessario disporre di un processore che supporti le estensioni VT di Intel, o Pacifica in caso di sistema AMD.

Utilizzando KVM, è possibile avviare macchine virtuali multiple che eseguano immagini non modificate di Linux, Windows, o di molti altri sistema. (Consultare Guest Support Status). Ogni macchina virtuale ha il suo hardware virtualizzato privato: scheda di rete, adattatore grafico, etc. Consultare KVM Howto

Le differenze tra KVM, Xen, VMware e QEMU sono elencate su KVM FAQ.

Installare i pacchetti

I kernel Arch a partire dalla versione 2.6.22 forniscono i moduli kvm appropriati. Si può verificare se il proprio kernel supporti kvm tramite il seguente comando:

# modprobe -l 'kvm*'

KVM richiede inoltre una versione modificata di QEMU (presente nel pacchetto qemu-kvm all'interno del repository EXTRA) per lanciare ed eseguire macchine virtuali. Alternativamente si può scegliere di installare una versione di qemu uguale o superiore a 0.9.0 che va in conflitto con il pacchetto qemu-kvm ma fornisce un eseguibile qemu-kvm (qemu -enable-kvm) che si avvantaggia di questa tecnologia.

# pacman -S kernel26 qemu-kvm

o

# pacman -S kernel26 qemu

Configurare i moduli del kernel

È possibile verificare che il proprio computer supporti l'accelerazione hardware tramite questo comando (deve restituire un qualche tipo di output) :

# egrep '^flags.*(vmx|svm)' /proc/cpuinfo

Innanzitutto è necessario aggiungere il proprio utente al gruppo kvm in modo da consentirgli di utilizzare la periferica /dev/kvm

# gpasswd -a <Your_Login_Name> kvm

Successivamente, caricare i moduli kvm e kvm-intel se si possiede un processore Intel

# modprobe kvm
# modprobe kvm-intel

oppure i moduli kvm e kvm-amd nel caso si possieda un processore AMD

# modprobe kvm
# modprobe kvm-amd

Se il caricamento del modulo kvm dovesse andare a buon fine, ma si dovessero riscontrare problemi nel caricamento di kvm-intel o kvm-amd (nonostante /proc/cpuinfo confermi la presenza di estensioni di virtualizzazione), verificare le impostazioni del proprio BIOS, in quanto alcuni produttori (sopratutto di sistemi portatili) disabilitano la VT di default.

Se si vuole che questi moduli vengano caricati all'avvio, sfruttare {[filename|/etc/rc.conf}}

Come utilizzare KVM

  1. Creare un'immagine del sistema guest
$ qemu-img create -f qcow2 <Image_Name> <size>
  1. Installare il sistema guest. Per l'installazione può essere utilizzata un'immagine cd/dvd (file ISO)
$ qemu-kvm -hda <Image_Name> -m 512 -cdrom </Path/to/the/ISO/Image> -boot d -vga std
  1. Eseguire il sistema
$ qemu-kvm -hda <Image_Name> -m 512 -vga std
Nota: La memoria di default di KVM è di 128MB, per modificarla utilizzare il parametro -m. Tenere presente inoltre che i sistemi Microsoft più recenti (testato con Vista e Seven) richiedono il tipo di immagine qcow2, restituendo altrimenti un codice di errore 0x80070057 durante l'installazione.

Consultare QEMU per tutte le altre informazioni, e la sezione Using the Kernel-based Virtual Machine.

Sistema guest paravirtualizzato (virtio)

KVM offre ai sistemi guest la possibilità di utilizzare la paravirtualizzazione di periferiche a blocchi e di rete, che consente migliori prestazioni e minor sovraccarico. Linux ha questa capacità con i suoi moduli virtio dalla versione 2.6.25. Per windows un driver di periferica di rete paravirtualizzata è disponibile questo indirizzo.

Una periferica a blocchi virtio richiede l'opzione -drive anzichè la semplice -hd* più if=virtio:

$ qemu-kvm -drive file=drive.img,if=virtio,boot=on
Nota: boot=on è assolutamente necessario se si desidera eseguire il boot da questa periferica. Non c'è alcun tipo di autorilevamento, come invece avviene con -hd*

All'incirca lo stesso metodo si utilizza per le periferiche di rete

$ qemu-kvm -net nic,model=virtio

Preparare un sistema guest (arch)linux

Per utilizzare periferiche virtio, i seguenti moduli possono essere caricati nel sistema guest: virtio, virtio_pci, virtio_blk, virtio_net e virtio_ring ( per sistemi guest a 32 bit, il modulo virtio specifico non è necessario). Se si vuole eseguire il boot da un disco-vitio, il ramdisk iniziale deve essere rigenerato. Aggiungere i moduli appropriati all'interno di Template:Filename in questo modo:

Template:File e rigenerare:

# mkinitcpio -p kernel26

I dischi virtio sono rilevati col prefisso v (come ad esempio vda, vdb, etc...). Devono essere effettuate le opportune modifiche all'interno di Template:Filename e Template:Filename (se si esegue il boot da uno di questi dischi. Ovviamente se si utilizza un sistema che fa riferimento ai dischi tramite uuids, non deve essere modificato nulla.

Grub ha alcuni problemi nel riconoscimento di dischi virtio. Perciò, se il bootloader non è installato, o se lo si vuole re-installare, è necessario modificare (o creare, nel caso non sia presente, caso molto frequente) anche il file Template:Filename in maniera coerente:

Template:File

Bisogna ora eseguire Grub con l'opzione --device-map

# grub --device-map /boot/grub/device.map

All'interno della shell interattiva, definire la partizione di boot; nel caso in esempio vda1

> root (hd0,0)

Installare il bootloader, qui su vda

 > setup (hd0)

se non si sono verificati errori, uscire dalla shell

> quit

Sfortunatamente questa installazione manuale di grub è necessaria per la versione di arch corrente al momento della scrittura di questo wiki (arch-release-media 2010.05). Nonostante Aif riconosca e imposti correttamente i prefissi ai dischi virtio, il file device.map deve essere creato manualmente prima della configurazione del bootloader.

Ulteriori informazioni alla paravirtualizzazione in KVM: [1] section in the german qemu-book: [2]