Aumentare le dimensioni di un’immagine di Qemu


Come aumentare la dimensione di un’immagine qcow, qcow2, raw che usa NTFS


Questo articolo spiega il modo di aumentare un’immagine disco in formato qcow, qcow2 o raw che contiene una partizione avviabile NTFS o FAT32. Fare una copia di backup, prima di eseguire la procedura.

La prima cosa da fare è convertire l’immagine dal formato qcow o qcow2 al formato raw.

$ qemu-img convert -f qcow imma.img -O raw hda.img

Per eseguire il prossimo passaggio bisogna essere root, questo serve per aumentare la dimensione del file hda.img. Un settore ha dimensione 512 byte, per cui 512 va diviso con il numero di byte della dimensione desiderata. Es: 10 GB = 10737418240 byte quindi 10737418240/512 = 20971520; il numero uscito va assegnato a seek.

Continua a leggere

Qemu: Comunicazione fra più virtual machine

Se si crea una rete fra le virtual machine è possibile scambiare file, collegarsi a Internet e controllare ogni virtual machine dall’esterno.

A partire dalla versione 0.6.0 di QEMU, si possono creare delle VLAN fra le virtual machine.

Schede Ethernet

QEMU fornisce il supporto a 4 schede ethernet: NE2000 PCI, RTL8139, PCNET e NE2000 ISA.

Queste quattro vengono presentate al sistema operativo sulla virtual machine come hardware disponibile.

E’ opportuno configurare le schede al momento dell’avvio di una virtual machine (la prima riga per scegliere la scheda NE2000 PCI, la seconda per RTL8139 e la terza per la PCNET):

 

Continua a leggere

QEMU su Windows

È possibile installare QEMU su un sistema operativo Windows per virtualizzare altri sistemi operativi(GNU/Linux, *BDS, Mac…) ma anche sistemi operativi di Microsoft.

Sono richiesti oltre al pacchetto di QEMU per windows : MinGW-3.1.0-1.exe, MSYS-1.0.10.exe, msysDTK-1.0.1.exe, gcc-core-3.3.1-20030804-1.tar.gz, gcc-g++-3.3.1-20030804-1.tar.gz, w32api-3.8.tar.gz, mingw-runtime-3.9.tar.gz, SDL-1.2.11.tar.gz, directx-devel.tar.gz, nasm.exe, zlib-1.2.3.tar.gz

Note: usare la versione 3.9 del runtime si MinGW e non la versione 3.11

Installare MSYS-1.0.10.exe in una cartella comoda sull’hard disc. Al termine della procedura digitare “n”.

Installare msysDTK-1.0.1.exe nella stessa cartella del file precedente.

Installare MinGW-3.1.0-1.exe nella cartella mingw che sarà contenuta nella cartella di installazione dei due precedenti eseguibili.

Continua a leggere

Comparativa per le prestazioni di QEMU, KQEMU e KVM

Questo test serve per confrontare le prestazioni di QEMU, QEMU + KQEMU, QEMU + KVM
I numeri sono espressi in iterazioni al secondo.
Tabella di confronto – comparazione:

tabella delle prestazioni qemu kqemu kvm
Test eseguiti su un DELL Inspiron 6400, processore Intel Core Duo T2400 a 1,83 GHz, cache di secondo livello 2048 KB, 2 GB RAM.

QEMU è stato lanciato con le opzioni di default usando i test nbench presenti nell’immagine linux-0.2.img.bz disponibile sul sito ufficiale di QEMU.
Per QEMU + KQEMU si intende l’uso di QEMU 0.9.0 con il modulo acceleratore kqemu-1.3.0pre11.
La colonna nativo rappresenta l’esecuzione dei test sulla portatile a runlevel 3.
QEMU + KVM si intende l’uso del modulo KVM e di QEMU incluso in KVM (qemu-kvm).

Numeric sort: ordinamento di un array di interi a 32 bit.
String sort: ordinamento di un array di stringhe con lunghezza arbitraria.
Bitfield: esecuzione di funzioni per manipolazioni di bit
Floating-point emulated: programma che fa uso di floting-point.
Fourier coefficients: Una routine di analisi numerica per il calcolo delle approssimazioni delle serie.
Assignment algorithm: Un algoritmo di allocazione di task.
Huffman compression: Un algoritmo di compressione grafica e testuale.
IDEA encryption: un algoritmo di cifratura a blocchi.
Neural Net: Un simulatore di reti a retro-propagazione.
LU decomposition: Algoritmo per risolvere equazioni lineari.

Test nbench: http://www.tux.org/~mayer/linux/bmark.html

KVM e QEMU

KVM è un modulo per il kernel Linux, che serve per gestire la virtualizzazione su computer che possiedono processori con estensioni per la virtualizzazione (Intel VT e AMD-V). Se non si possiede un processore con tali estensioni non si può usare KVM.

Il modulo include un char driver che si occupa di dirigere il controllo dell’ I/O dal kernel ospitante al sistema ospite.

Il pacchetto KVM comprende una versione modificata di QEMU che fa uso di questo modulo.

QEMU modificato è molto più veloce e performante perché KVM fa uso delle estensioni per la virtualizzazione dei processori mentre l’originale emula lo ioctr.

Continua a leggere

Gestione file immagine e monitor di QEMU

Gestione file immagine
Usando il comando:

$ qemu-img create -f [formato] /home/utente/imm.img 2000M

sarà creata un’immagine imm.img nella cartella utente di dimensioni massime 2000 MB.
Con il flag -f è possibile specificare il formato del file.
I formati disponibili sono: raw, qcow, qcow2, cow, cloop, vmdk.

  • raw: è il parametro di default, ovvero se non viene specificato -f al momento della creazione il file assumerà il formato raw. Ha il pregio della portabilità , può essere adoperato con più programmi di virtualizzazione. Usando raw viene creato un’immagine di dimensione effettive 2000 M (si può controllare con ls -l). Per sapere quanto spazio è usato dalla virtual machine basta adoperare il comando

$ qemu-img info /home/utente/imm.img

  • qcow: vecchio formato usato da QEMU per mantenere la compatibilità con versioni precedenti alla 0.9.0, supporta la compressione e la cifratura.
  • qcow2: miglior formato fra quelli in uso soprattutto se l’immagine creata servirà solo per QEMU (versione >= 0.9.0), lo spazio occupato sul disco rigido del sistema operativo ospitante avrà le dimensioni usate realmente dalla virtual machine. E’ l’unico a poter usare più VM snapshot (trattati in seguito). Supporta la compressione e la cifratura.
  • cow: vecchio formato usato da QEMU che tra l’altro non funziona su Windows.
  • cloop: è comodo per creare immagini di cd rom avviabili come knoppix o live disto.
  • vmdk: è il formato usato da Vmware 3 e 4.

Alcuni formati (qcow e qcow2) supportano la cifratura e la compressione del file immagine. Continua a leggere

Virtualizzazione: QEMU opzioni avanzate

Dopo aver visto come impiegare senza tante pretese il software per la creazione di virtual machine QEMU, si può procedere ad usare opzioni più avanzate.

Riassumendo i comandi descritti nel primo articolo:

$ qemu-img create -f qcow2 /home/user/imm.img 3000M

Crea un minidisc, ovvero un hard disc virtuale, in formato qcow2 (molto performante) che potrà avere dimensione massima di 3000 megabyte.

$ qemu -hda /home/user/imm.img -cdrom /dev/cdrom -boot d

Fa partire nella virtual machine un dispositivo ottico dal quale verrà effettuato il boot e che potrà usare il file immagine come hard disc virtuale. Il dispositivo ottico risulterà , inoltre, visibile nel sistema operativo virtualizzato.

$ qemu -m 256 /home/user/imm.img

QEMU lancerà il file imm.img e mostrerà 256 megabyte di ram al sistema ospitato.

Continua a leggere

Introduzione alle virtual machine

Le virtual machine servono per astrarre dell’hardware di un computer per poter eseguire più sistemi operativi sullo stesso computer.

Lanciando un sistema operativo virtuale pare che questo stia girando su un calcolatore fisico con una CPU e la sua memoria dedicata.

Principalmente le virtual machine vengono usate per usare più sistemi operativi sulla stessa macchina concorrentemente (contemporaneamente).

Siccome l’hardware presente sul computer è condiviso tra il sistema operativo ospitante e le macchine virtuali, si possono avere dei conflitti sull’accesso alla varie periferiche.

Una delle maggior difficoltà è la gestione dei dischi: per questo motivo ogni virtual machine deve avere un suo disco virtuale, talvolta chiamato minidisc; questo disco virtuale è costituito da un file presente sul computer ospitante, file che viene visto dalla macchina virtuale come spazio disco su cui memorizzare le informazioni.

Una virtual machine non è un computer fisico, ma offre hardware virtuale. Talvolta durante le fasi di I/O (scrittura su disco, accesso al file system) si possono ottenere prestazioni diverse da quelle che si otterrebbero su un calcolatore reale: le performance possono essere migliori (accesso al file system) oppure inferiori, quando si effettuano passaggi di modalità utente-sistema, in fase di interpretazione.

Per migliorare le prestazioni si può adoperare hardware ottimizzato per la virtualizzazione come certe CPU ( processori IBM, Intel basati su Core Duo…).

Uno dei vantaggi forniti dalle virtual machine è la sicurezza: una macchina virtuale è completamente isolata e indipendente; un imprevisto crash di una machine non comporta il crash anche delle altre tanto meno del sistema operativo ospitante, per tanto non è necessario riavviare il computer ma solo terminare la virtual machine e avviarla nuovamente.

Si possono condividere informazioni tra le macchine virtuali o condividendo il loro disco virtuale oppure creando una rete virtuale.

Una virtual machine è estremamente utile per provare programmi per esempio evitando di danneggiare, in caso di errore, il file system. Si possono provare programmi su più sistemi operativi in modo più rapido, basta avviare una virtual machine e installare il sistema operativo.

I più importanti software che permettono di virtualizzare sono: VMware, Xen, VirtualBox, Qemu, VirtualPC…

Virtual machine: più sistemi operativi contemporaneamente

Una virtual machine oppure macchina virtuale è un programma che emula un computer, così è possibile utilizzare più sistemi operativi contemporaneamente.

Sul sistema operativo ospitante (host) viene avviato una o più volte il programma emulatore in base a quante macchine virtuali (guest) vogliamo adoperare o possiamo adoperare.

La macchina virtuale sfrutta le risorse hardware del computer ospitante quindi è meglio disporre di hardware potente, più virtual machine sono attivate nello stesso momento e maggiori dovranno essere le risorse del computer.

  • Perché emulare altri sistemi operativi su un singolo computer e usare macchine virtuali?

Si possono adoperare programmi che non funzionano su certe architetture o non disponibili per alcuni sistemi operativi. E’ possibile emulare architetture differenti, es: host = PowerPC (PPC), guest = i386. Per cui possiamo usare MAC OS 9 su un computer con processore un Pentium 4 o un Athlon XP o far funzionare Windows 98 su un computer che ha molta RAM (è noto che windows98 non va con più di 512 MB).

Le macchine virtuali possono essere usate come piattaforme di testing per applicazioni, senza dover intaccare la configurazione del sistema che stiamo usando. Es: installazione di programmi di prova o in beta-testing oppure per provare nuovi sistemi operativi.

Alcuni web hoster offrono virtual machine ai proprietari di siti internet per risparmiare sull’hardware fisico e quindi tener bassi i prezzi.

  • Che differenza c’è tra Wine e una virtual machine?

Wine è un convertitore di chiamate, ovvero traduce le “funzioni” native di un sistema operativo in funzioni compatibili con il sistema operativo che si sta usando; anche se sarebbe meglio dire che traduce le chiamate di sistema.

Wine è in grado di far funzionare alcuni programmi su un sistema operativo diverso, mentre una macchina virtuale gestisce un intero sistema operativo, quindi molti programmi e processi in esecuzione.

Tra tutti i programmi che creano macchine virtuali c’è QEMU, che può funzionare anche in modalità “user mode” ovvero come Wine.

  • Perché scegliere QEMU?

QEMU è gratuito, oltre ad aderire alla licenza GNU GPL, non è fino ad ora più veloce di alcuni programmi a pagamento come VMware o VirtualPc però si è dimostrato più affidabile e i file immagine di questi prodotti possono essere usati da QEMU.

QEMU emulazione sistemi operativi

QEMU è un software di emulazione (una virtual machine) in grado di far girare moltissimi sistemi operativi. E’ possibile emulare Windows sotto Linux (è installabile anche su Windows o Mac OS X), così si possono usare dei programmi che non sono disponibili per la piattaforma in uso. QEMU è distribuito con licenza GNU GPL, per cui è usabile liberamente e gratuitamente.

Sito ufficiale: http://www.qemu.org/

  • INSTALLAZIONE

Dal sito ufficiale, se usiamo Linux, scarichiamo i sorgenti del pacchetto, oppure scarichiamo i file binari già precompilati per piattaforma i386 (Pentium, Athlon…, non 64 bit) che sono più facili da adoperare.

Questi ultimi vanno scompattati nella directory radice del sistema operativo.

Supponiamo di voler installare sulla macchina virtuale un’altra distro di Linux (possiamo anche installare una versione di Windows).

Prima di tutto dobbiamo creare un file che verrà visto dal sistema operativo emulato come il disco rigido (dove verranno salvati tutti i file di installazione e i programmi). Sostituiamo user con il nostro nome utente.

$ qemu-img create -f qcow2 /home/user/immagine.img 3000M

Abbiamo creato un file di nome immagine.img che potrà avere dimensione massima 3 GB e si troverà nella nostra home. Il file all’inizio sarà vuoto mentre con l’uso della virtual machine si riempirà . Teniamo presente che potremmo disporre di soli 3 GB e non di più spazio, quindi vediamo di essere abbondanti.

Ora inseriamo il cd o dvd della distribuzione nel lettore e lanciamo QEMU così:

$ qemu -hda /home/user/immagine.img -cdrom /dev/cdrom -boot d

Così QEMU avvierà il supporto ottico come se stessimo facendo un boot della macchina e ci permetterà di installare il sistema operativo che desideriamo.

Ricordiamoci di uscire dal sistema operativo emulato, spegnendo correttamente la macchina come se usassimo il computer normalmente.

Se desideriamo uscire dalla finestra di QEMU per tornare a usare il mouse nel nostro sistema operativo ospitante premiamo i tasti ctrl+alt.

Per avviare QEMU senza fare il boot da supporto ottico nuovamente, digitiamo alla shell:

$ qemu /home/user/immagine.img

  • MACCHINA EMULATA DA QEMU

QEMU fornisce al nostro sistema operativo virtuale il seguente hardware:

i440FX host PCI bridge and PIIX3 PCI to ISA bridge

Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA extensions (hardware level, including all non standard modes).

PS/2 mouse and keyboard

2 PCI IDE interfaces with hard disk and CD-ROM support

Floppy disk

NE2000 PCI network adapters

Serial ports

Creative SoundBlaster 16 sound card

ENSONIQ AudioPCI ES1370 sound card

Adlib(OPL2) – Yamaha YM3812 compatible chip

PCI UHCI USB controller and a virtual USB hub

Perciò se avete una scheda video, che ne so, ATI RADEON, il sistema operativo emulato non vedrà la vostra scheda grafica della ATI, ma rileverà una scheda CIRRUS.

  • MIGLIORARE L’USO DI QEMU

QEMU lanciato da shell così:

$ qemu /home/user/immagine.img

fornirà al sistema ospite una dotazione di soli 128 MB di RAM, che possono essere un collo di bottiglia per gli ultimi sistemi operativi. Possiamo aumentare la ram vista dal sistema aggiungendo un parametro a QEMU.

$ qemu -m 256 /home/user/immagine.img

Ora il sistema potrà disporre di 256 MB di RAM. Non esageriamo comunque con la RAM e teniamo presente quanta RAM abbiamo realmente sul nostro computer.

  • MIGLIORARE LE PRESTAZIONI DI QEMU

Per migliorare le prestazioni di QEMU possiamo installare KQEMU.

KQEMU è un acceleratore per QEMU. Funziona solo su architetture x86 e x86_64, cioè sui Pentium, Athlon, Celeron, Sempron, Turion, Duron, Core anche a 64 bit quando si emulano macchine virtuali che utilizzano le medesime architetture, per esempio, se voglio emulare su Linux una virtual machine che ospita Windows XP.

Per installarlo scarichiamo il pacchetto dal sito di QEMU e scompattiamolo nella directory tmp, poi eseguiamo ./configure, make e make install.

Eseguiamo da utente root:

# mknod /dev/kqemu c 250 0

# chmod 666 /dev/kqemu

Ora integriamo il modulo nel kernel, ogni volta che vogliamo adoperare KQEMU, prima di avviare QEMU:

# modprobe kqemu

  • Ho installato il sistema operativo, ora come faccio a collegarmi a Internet?

Non c’è nulla da fare, sul sistema operativo ospitante deve essere attivo il collegamento, per esempio via wireless, mentre sulla macchina guest basta solo aprire un browser.

  • LINK UTILI

Sito di QEMU http://www.qemu.org/

QEMU su windows http://www.h7.dion.ne.jp/~qemu-win/