Macchine Virtuali Docente: Fabio Tordini Email: [email protected] Macchine Virtuali macchine virtuali e virtualizzazione • introduzione • architettura • utilizzi VirtualBox • installazione e panoramica (interattivo) Linux su macchina virtuale • Ubuntu su VirtualBox (interattivo) Macchina Virtuale (VM) • applicazione che crea un ambiente virtualizzato tra computer fisico e utente – emula macchina fisica (risorse HW) – permette l'esecuzione di applicazioni e OS Macchina Virtuale (VM) due diversi tipi • Process VM – dal punto di vista OS, VM è singola applicazione – sistemi runtime (es: Java Virtual Machine) • System VM – intero sistema virtualizzato – permette di eseguire OS Virtualizzazione • astrarre le componenti fisiche di un sistema, rendendole disponibili come risorse virtuali – maggiore flessibilità – migliore sfruttamento risorse • software eseguito su risorse virtuali • diversi approcci di virtualizzazione – totale (emulazione) – parziale – paravirtualizzazione Virtual Machine Monitor (VMM) • software che si occupa della virtualizzazione delle risorse – hypervisor • fornisce ad ogni VM l'illusione che un sistema fisico sia a sua disposizione Virtual Machine Monitor (VMM) Macchina fisica Hardware • processori, memoria, dispositivi I/O, ecc. • risorse spesso poco utilizzate Software • dipendente dall'hardware • sistema operativo singolo • OS gestisce risorse hardware Macchina virtuale Astrazione Livello Hardware • hardware virtuale: processori, memoria, dispositivi I/O, ecc. Software di Virtualizzazione • indipendente dall'hardware e dal OS originario • replica risorse hardware per ogni VM • gestione ottimale delle risorse • VM isolate ed indipendenti Macchina virtuale (2) Sicurezza • eseguire più VM su un singolo PC • bug, virus ed errori non intaccano altre VM • ripartizione ottimale risorse hardware Compatibilità • indipendente dall'hardware • trasportabile e replicabile su diversi computer • esecuzione vecchie applicazioni e OS obsoleti Utilizzi Test e sviluppo • verifica software su piattaforme diverse • creazione librerie e pacchetti software ad-hoc Business • replica e riutilizzo di dati e sistemi • servizi multipli in una singola macchina Sicurezza • protezione e isolamento Svantaggi Latenza hardware • I/O (RAM, Hard Disk) • grafica Supporto hardware • periferiche non virtualizzabili (Bluetooth, GPU, ecc.) Proliferazione • gestione risorse e sicurezza più difficili VirtualBox VirtualBox valido programma di virtualizzazione • open source, multi-piattaforma • gratis https://www.virtualbox.org/ altre soluzioni • • • • Parallels (Windows/Mac/Linux, $79.99) VMware (Windows/Linux, Basic: gratis, Premium: $189) QEMU (Linux, gratis) Windows Virtual PC (gratis) VirtualBox installare VirtualBox e creare una nuova VM VirtualBox verificare impostazioni VM, avviare VM Linux Linux installare Linux su VM • scaricare Linux (Ubuntu, LinuxMint, altri...) – cercare da Google la distribuzione preferita – scaricare versione appropriata (32bit / 64bit) notare estensione file .ISO • creare nuova VM per nuovo OS • avviare VM e selezionare ISO da installare • avviare installazione un aiuto https://www.virtualbox.org/manual/ch01.html#gui­createvm Linux installare Linux su VM • facile e intuitivo • leggere e seguire le istruzioni di installazione utile guida, in italiano, per l'installazione di Ubuntu: http://wiki.ubuntu­it.org/Installazione/Grafica Link Utili Link utili VirtualBox (scegliere piattaforma corretta) • https://www.virtualbox.org/wiki/Downloads Ubuntu (scegliere versione e architettura 32/64 bit) • http://www.ubuntu.com/download/desktop Linux Mint (una delle alternative ad Ubuntu) • http://www.linuxmint.com/download.php – scegliere ambiente grafico preferito e architettura 32/64 bit Link utili libro su Macchine Virtuali (in inglese) • Virtual Machines: Versatile Platforms for Systems and Processes – di James Edward Smith e Ravi Nair. Elsevier, 2005 articolo di Smith e Nair (in inglese) • L'architettura delle macchine virtuali VirtualBox – User Manual (in inglese) • https://www.virtualbox.org/manual/UserManual.html