Uno strumento per la Virtualizzazione: Virtualbox 8 Outline Introduzione. Concetti base. Creazione di una VM. Avvio di una VM. Configurazione. Guest Additions. 9 Documentazione http://www.virtualbox.org/ • Formato HTML - http://www.virtualbox.org/manual/UserManual.html • Formato PDF – http://download.virtualbox.org/virtualbox/UserManual.pdf 10 Introduzione Software di virtualizzazione open source. It is available as Open Source Software under the terms of the GNU General Public License (GPL). Sistemi operativi Host supportati Windows Mac OS X Linux Solaris It supports a large number of guest operating systems including but not limited to Windows (NT 4.0, 2000, XP, Server 2003, Vista, Windows 7), DOS/Windows 3.x, Linux (2.4 and 2.6), Solaris and OpenSolaris, OS/2, and OpenBSD. 11 Introduzione È un software di virtualizzazione che viene eseguito su un sistema operativo ospitante in esecuzione (host) e che crea ad alto livello le varie “virtual machine”, ognuna delle quali gira come se fosse un normale programma e che comunica con l'hardware solo indirettamente, tramite il software di controllo che agisce a basso livello. L’Hypervisor, detto anche “virtual machine monitor” (o VMM) è il componente chiave per un sistema basato sulla virtualizzazione e deve operare in maniera trasparente svolgendo attività di controllo. 12 Introduzione VirtualBox is a cross-platform virtualization application. What does that mean? For one thing, it installs on your existing Intel or AMD-based computers, whether they are running Windows, Mac, Linux or Solaris operating systems. Secondly, it extends the capabilities of your existing computer so that it can run multiple operating systems (inside multiple virtual machines) at the same time. So, for example, you can run Windows and Linux on your Mac, run Windows Server 2008 on your Linux server, run Linux on your Windows PC. You can install and run as many virtual machines as you like – the only practical limits are disk space and memory. It can run everywhere from small embedded systems or desktop class machines all the way up to datacenter deployments and even Cloud environments. 13 Introduzione Diverse VMs sono eseguite su una sola macchina fisica. 14 Introduzione The following screenshot shows you how VirtualBox, installed on a Mac computer, is running Windows 7 in a virtual machine window: 15 Concetti base Quando si parla di virtualizzazione, bisogna conoscere i seguenti termini: Host operating system (host OS): è il sistema operativo della macchina fisica su cui è stato installato VirtualBox. Guest operating system (guest OS): è il sistema operativo in esecuzione sulla virtual machine. Virtual machine (VM): è l'ambiente che VirtualBox crea per il sistema operativo Guest. In pratica il sistema operativo guest è in esecuzione nella VM. Normalmente una VM viene avviata presentandosi con una finestra sul desktop del computer. Una VM sarà caratterizzata da una serie di parametri che determinano il suo comportamento. Essi includono impostazioni hardware (ad esempio quanta memoria la VM dovrà avere,..), le informazioni sullo stato salvando le snapshots della VM in esecuzione. Guest Additions: sono packages software speciali forniti con VirtualBox e che possono essere installati nella VM per aggiungere funzionalità extra. 16 Installazione • Download – http://www.virtualbox.org/wiki/Downloads 17 VirtualBox Manager Questa finestra è “VirtualBox Manager”. chiamata - Nel pannello di sinistra, sono visualizzate le macchine virtuali create. - nel pannello di destra, vengono visualizzate le proprietà della macchina virtuale selezionata. I pulsanti presenti sopra ci consentono di creare una macchina virtuale e di lavorare su una macchina virtuale esistente. 18 Creazione di una VM Dopo aver fatto click su Nuova, si avvierà la procedura di creazione guidata della macchina virtuale. Per prima cosa ci verrà richiesto di immettere un nome per la nuova macchina, in modo da poterla identificare, e il sistema operativo che intendiamo installare. 19 Creazione di una VM In seguito, dobbiamo specificare la quantità di RAM da riservare alla nostra macchina virtuale. La macchina virtuale avviata occuperà tutta la RAM ad essa assegnata. Bisogna assegnare la RAM con attenzione poiché quando la VM è in esecuzione, questa parte di RAM non è più disponibile per l'host OS. Questa impostazione può essere cambiata anche dopo che una VM è stata creata. 20 Creazione di una VM Bisogna specificare un disco fisso virtuale per la nostra VM. Abbiamo due possibilità: - creare un nuovo disco fisso. - usare un disco fisso esistente. 21 Creazione di una VM Se scegliamo di creare un nuovo disco, si visualizzerà la finestra “Create New Virtual Disk Wizard” che ci aiuta nella creazione. In particolare, bisogna scegliere il tipo di archiviazione cioè bisogna scegliere se il file del nuovo disco virtuale deve essere allocato al momento del suo utilizzo o se deve essere allocato completamente in fase di creazione. La modalità di archiviazione dinamica permetterà di occupare sull'hard disk reale solo lo spazio realmente utilizzato dalla macchina virtuale e non di creare un grande file rappresentante l'hard disk della macchina virtuale. Quindi se ad esempio su un hard disk dinamico da 8 Giga occupiamo solo 1 Giga, lo spazio occupato sul disco fisso reale sarà di circa 1 Giga mentre con un hard disk statico si occuperà sempre circa 8 Giga. 22 Creazione di una VM Infine è possibile definire la dimensione dell'hard disk virtuale. Se l'archiviazione è dinamica si tratta della dimensione massima mentre se è statica sarà la dimensione effettiva del file rappresentante l'hard disk virtuale. 23 File File .vbox settings file File .vdi (Virtual Disk Image) 24 Impostazioni di una VM Una volta creata la VM, si visualizzerà nel pannello di sinistra della finestra “VirtualBox Manager”. Inoltre, una volta creata la VM, è possibile modificarne le proprietà in ogni momento facendo click su Impostazioni nella finestra “VirtualBox Manager”. 25 Avvio di una VM Una VM viene avviata dal pannello di sinistra della finestra “VirtualBox Manager”. Al primo avvio bisogna installarvi il guest OS nella VM. E' possibile installarlo utilizzando un CD/DVD oppure un file immagine ISO. Nel secondo caso è possibile non masterizzare il file immagine ISO su CD/DVD ma VirtualBox presenterà alla VM questo file immagine direttamente come un drive CD o DVD-ROM, proprio come con le immagini virtuali del disco rigido. 26 Avvio di una VM Dalle Impostazioni, nella sezione “Storage Settings”, è possibile stabilire la sorgente dati del lettore CD/DVD della macchina virtuale. Questo può essere direttamente collegato al lettore CD reale oppure ad un file ISO. 27 Impostazioni di una VM Una volta creata la VM, si visualizzerà nel pannello di sinistra della finestra “VirtualBox Manager”. Inoltre, una volta creata la VM, è possibile modificarne le proprietà in ogni momento facendo click su Impostazioni nella finestra “VirtualBox Manager”. 28 General Settings - Nella scheda Base ritroviamo le informazioni relative al nome della VM, alla tipologia del sistema operativo installato e la relativa versione. - Nella scheda Avanzate ad esempio è possibile specificare il percorso per la cartella istantanee cioè permette di specificare il percorso dove salvare le snapshot (fotografie cioè lo stato) della macchina virtuale (ad esempio prima di installare qualche programma). - Nella scheda possibile riportare della VM. Descrizione è una descrizione 29 System Settings Questa sezione è relativa all'hardware presentato alla VM. - Nella scheda Scheda madre, ad esempio è possibile modificare la quantità di RAM (settata durante la creazione della VM) e l'ordine di boot. - Nella scheda Processore ad esempio è possibile impostare il numero di core virtuali visti dal guest OS. 30 Display Settings Questa sezione è relativa alle caratteristiche del Display. - Nella scheda Video, ad esempio, è possibile specificare la quantità di memoria RAM per la scheda grafica virtuale. 31 Storage Settings - Questa sezione ci consente di connettere dispositvi hard disk, CD/DVD e unità floppy virtuali alla nostra VM. VirtualBox presenta “controller storage” virtuali. Sotto ogni controller ritroviamo il dispositivo (hard disk, CD/DVD o unità floppy) attacato. 32 Audio Settings Questa sezione ci consente di specificare se abilitare l'audio e i driver e controller audio da utilizzare. 33 Network Settings Questa sezione permette di specificare fino a 4 schede di rete. Per ognuna è possibile specificare il modello della scheda e la tipologia di connessione. Tipologia di connessione - Not attached. - Network Address Translation (NAT). - Bridged networking. - Internal networking. - Host-only networking. 34 Network Settings 1) Not attached Ovvero non vi è nessuna connessione. 2) Network Address Translation (NAT) Consente ad una VM di collegarsi ad una rete esterna. In questa modalità una VM si comporta come un computer che si connette ad Internet tramite un router. In questo caso, similmente ad una rete privata dietro un router, la VM è invisibile e irragiungibile dall'esterno. Quando viene creata una VM, VirtualBox di default abilita una scheda di rete scegliendo la modalità NAT. In questo modo la VM può connettersi all'esterno. 35 Network Settings 3) Bridged networking VirtualBox si connette a una scheda di rete fisica presente sull'host e scambia direttamente pacchetti di rete. In questo modo è possibile intercettare dati dalla rete fisica e inserirvi dei dati. In questa modalità è come se il sistema guest fosse fisicamente connesso all'interfaccia usando un cavo di rete. L'host può inviare e ricevere dati dal guest tramite questa interfaccia. 36 Network Settings 4) Internal networking Consente di creare una rete interna tra VM presenti sul medesimo host. Ciò che posso fare con la Internal Networking può essere realizzato anche con la Bridged networking però la differenza consiste nel fatto che una rete interna è più sicura. Infatti nella modalità bridge tutto il traffico passa attraverso l'interfaccia fisica del sistema host e quindi è possibile con uno sniffer intercettare i pacchetti. 37 Network Settings 4) Host-only networking Consente di creare una rete costituita dall'host e da una serie di VM senza aver bisogno dell'interfaccia di rete fisica dell'host. In particolare sul sistema host viene creata un'interfaccia di rete virtuale (simile all'interfaccia di loopback) consentendo la connessione tra le VM e l'host. Nella modalità internal networking, il traffico tra le VM non può essere visto dall'host mentre nella modalità Host-only networking il traffico sull'interfaccia di loopback può essere intercettato dall'host. 38 Serial ports Settings VirtualBox supporta porte seriali virtuali in una VM. Questa sezione ci consente creare fino a 2 porte seriali. 39 di USB Settings Questa sezione permette di rendere visibili i dispositivi usb collegati al pc anche alla VM, che altrimenti non vedrebbe il dispositivo. 40 Shared Folders Settings Questa sezione consente di condividere delle cartelle tra l'host OS e il guest OS. Questa è una funzionalità offerta dalle Guest Additions che saranno presentate più avanti. 41 Barra di stato della VM Nella barra in basso a destra della finestra della VM si trovano delle icone che ci permettono di conoscere lo stato della macchina. - La prima icona indica lo stato e l'attività degli hard disk virtuali (equivalente al led degli hard disk reali). - La seconda icona indica lo stato e l'attività dei lettori CD virtuali (equivalente al led dei lettori CD reali). - La terza icona indica lo stato e l'attività delle interfacce di rete (equivalente ai led delle schede di rete). - La quarta icona indica lo stato delle cartelle condivise. Facendo click con il tasto destro sulle icone è possibile accedere a delle funzioni relative ai componenti controllati. 42 Guest Additions Per estendere le funzionalità rispetto alla normale esecuzione di una VM si utilizzano le Guest Additions di VirtualBox. Esse consistono in un insieme di driver ed applicazioni di sistema che aggiungono al sistema operativo guest un insieme di caratteristiche che ne migliorano l'usabilità. Alcune delle funzionalità supportate dalle Guest Additions sono: - Miglioramento del supporto video: Se si esegue il resize dela finestra della VM, la risoluzione video verrà regolata automaticamente. - Sincronizzazione dell'orario: del sistema guest con quello dell'host. - Integrazione del puntatore del mouse: il mouse potrà essere liberamente spostato tra la finestra del sistema guest ed il sistema host senza dover premere il tasto Crtl di destra. - Condivisione delle cartelle: consente di definire le cartelle del computer host che potranno essere condivise con il sistema guest. 43 Mouse pointer integration Catturare e rilasciare tastiera e mouse. Ovviamnete una VM condivide tastiera e mouse con la macchina fisica (e con altre macchine virtuali). Solo uno tra la VM e il resto del nostro computer può possedere la tastiera e il mouse. Solo dopo aver cliccato sulla finestra della VM, il mouse e la tastiera sono possedute dalla VM. Infatti noteremo un puntatore del mouse che sarà confinato nei limiti della finestra della VM. Per rilasciarle bisogna premere il tasto “hot key”. L'impostazione per questo tasto viene indicata in basso a destra della finestra della VM. Ciò potrebbe essere scomodo. Per superare queste limitazioni, ovvero per rendere trasparenti queste operazioni di cattura e rilascio, questo supporto mi consente di avere un unico puntatore del mouse e non ho bisogno più di premere alcun tasto per rilasciare il mouse. 44 Cartelle condivise Per condividere dati tra la macchina reale e la macchina virtuale si deve ricorrere ad una cartella condivisa. Per creare una cartella condivisa si deve andare nella sezione Cartelle Condivise delle Impostazioni e cliccare nel primo bottone in alto a destra. Si dovrà inserire il path della cartella condivisa all'interno del sistema ospitante (host OS) e il nome della cartella. 45 Installazione delle Guest Additions Per abilitare funzionalità extra della VM, come la funzionalità delle cartelle condivise, è necessario installare le Guest Additions. Per installarle basta fare click menù Dispositivi della VM e poi selezionare Installa Guest Additions: si avvierà la procedura di installazione di questi componenti aggiuntivi. 46 Ulteriori funzionalità - Una VM creata su di un host (e.g. Windows) può essere eseguita su di un diverso host (e.g. Linux). Viene usato lo stesso formato dei file. - Possibilità di importare/esportare VM. Il formato Open Virtualiza0on Format (OVF) permette di importare ed esportare VM. - Salvataggio dello stato di una VM. - Possibilità di generare “alberi” di Snapshots (istantanee dello stato della VM). 47 Salvare lo stato di una VM funzionalità accedibile nell'operazione di chiusura di una finestra della VM. 48 Snapshots - VirtualBox può salvare lo stato della macchina virtuale in un qualsiasi istante. - Possibilità di navigare la storia degli stati della VM e di ripristinarli quando si vuole. With snapshots, you can save a particular state of a virtual machine for later use. At any later time, you can revert to that state, even though you may have changed the VM considerably since then. A snapshot of a virtual machine is thus similar to a machine in "saved" state, as described above, but there can be many of them, and these saved states are preserved. 49 Snapshot - It contains a complete copy of the VM settings, including the hardware configuration, so that when you restore a snapshot, the VM settings are restored as well. - The complete state of all the virtual disks attached to the machine is preserved: going back to a snapshot means that all changes that had been made to the machine's disks will be undone as well, files that were since created will disappear, files that were deleted will be restored, changes to files will be reverted. - Finally, if you took a snapshot while the machine was running, the memory state of the machine is also saved in the snapshot (the same way the memory can be saved when you close the VM window): when you restore such a snapshot, execution resumes at exactly the point when the snapshot was taken. 50