Overview dei sistemi di virtualizzazione Guido Guizzunti [email protected] Corso INFN sulla virtualizzazione Catania 2010 Sommario Introduzione alla virtualizzazione Breve storia: tappe evolutive Impatto sul mercato IT Terminologia Vantaggi / Svantaggi Sistemi di virtualizzazione Principali prodotti commerciali Riferimenti Virtualizzazione – Catania 2010 2 Introduzione (1) Per virtualizzazione intendiamo un’astrazione, una simulazione di un ambiente hardware fisico ottenuta attraverso strumenti software Fino a poco tempo fa i metodi utilizzati per poter garantire servizi efficienti erano principalmente due: configurare una macchina per ogni singolo servizio offerto, oppure raggruppare su un unico sistema server di tipo diverso. Virtualizzazione – Catania 2010 3 Introduzione (2) un server per ogni servizio Pro: alte prestazioni sicurezza, stabilita' e isolamento. Contro: infrastruttura costosa problemi logistici spreco di risorse. molteplici servizi su un singolo server Pro: ottimizzazione delle risorse. Contro: meno performante problemi di stabilita’ e sicurezza problemi di compatibilita’. Virtualizzazione – Catania 2010 4 Introduzione (3) La soluziona e’ arrivata con: Disponibilita’ di macchine piu’ potenti Software di virtualizzazione piu’ efficienti e facili da usare. CPU progettate per supportare la virtualizzazione (Intel VT, AMD-V). Virtualizzazione – Catania 2010 5 Introduzione (4) I sistemi di virtualizzazione permettono di ottenere i vantaggi delle due precedenti soluzioni: Installare piu’ server su un unico sistema(riduzione dei costi) Eseguire i servizi in ambienti virtuali totalmente indipendenti gli uni dagli altri(sicurezza, stabilita' e isolamento dei servizi) ottimizzazione delle risorse tool di gestione che semplificano l’amministrazione. Virtualizzazione – Catania 2010 6 Breve storia (1) 1965 IBM M44/44X: sistema che per la prima volta utilizza la paginazione della memoria. 1970/1972 IBM System/370 e IBM VM/370: sistemi che includono la possibilita' di eseguire macchine virtuali complete (hardware assisted virtualization). La virtualizzazione venne di fatto accantonata negli anni ‘80 e ‘90 quando le applicazioni clientserver e i server e desktop x86 a basso costo hanno dato vita al graduale abbandono dei mainframe e alla nascita dell’elaborazione distribuita. I bassi costi dei PC, l’ampia diffusione di Windows e la nascita di Linux come sistemi operativi server fecero si’ che negli anni ‘90 i sistemi x86 si imponessero come standard di settore. 1987/1997 Vari prodotti di emulazione software che permettono di eseguire programmi MS-DOS su sistemi Unix e Macintosh Es.: Simultask, SoftPC e SoftWindows Virtualizzazione – Catania 2010 7 Breve storia (2) 1999 VMware Virtual Platform: virtualizzazione per l'architettura Intel x86. difficolta’ e scarse prestazioni I processori x86 non erano progettati per il supporto completo della virtualizzazione 2003 Prima versione del prodotto Xen Rilasciato sotto licenza GPLv2 Utilizzo della para-virtualizzazione. Virtualizzazione – Catania 2010 8 Impatto sul mercato IT: storia delle acquisizioni (1) La virtualizzazione e’ oggi uno dei segmenti piu’ vivaci dell’intero mercato IT e il giro d’affari che ci ruota attorno e’ davvero notevole: 2003 - EMC Corporation acquisisce la VMware per 635 milioni di $ 2003 - Microsoft acquisisce la Connectix per il prodotto Virtual PC che poi è diventato il noto Virtual Server di Microsoft 2006 - Microsoft acquisisce Softricity per il prodotto SoftGrid, che permette di virtualizzare una sola applicazione in luogo di un intero sistema. 2006 - Citrix acquisisce Ardence per l'application virtualization streaming 2007 - Symantec acquisisce Altiris per la soluzione SVS "Software Virtualization Solution", un pacchetto di soluzioni per la virtualizzazione 2007 - Citrix acquisisce XenSource per circa 500 milioni di $ 2008 - SUN Microsystem acquisisce Innotek per il prodotto VirtualBox e per lanciare la piattaforma server xVM RedHat acquisisce Qumranet creatrice di KVM (Kernel Virtual Machine) Virtualizzazione – Catania 2010 9 Impatto sul mercato IT: storia delle acquisizioni (2) 2008 – IBM svela di investire 350 milioni di $ in infrastrutture di virtualizzazione 2008 - HP, Intel e Yahoo svelano di lavorare assieme ad una Global Cloud 2009 - SUN Microsystem acquisisce Q-layer, impresa Belga creatrice del framework grafico Virtual Private DataCenter (VPDC) 2009 - Cisco svela intenzioni di acquisizione di Vmware (VMware ha attualmente un valore di 10 miliardi di $) 2009 - IBM vuole una maxi fusione con SUN del valore di circa 6,5 miliardi di $ fine 2009 - Oracle soffia via SUN all'IBM per la "modica" cifra di 7.5 miliardi di $, entrando cosi' anch'essa nel mondo della virtualizzazione Virtualizzazione – Catania 2010 10 Terminologia (1) Emulazione Virtualizzazione permette l'esecuzione di software originariamente scritto per un ambiente hardware diverso da quello sul quale l'emulatore viene eseguito. un emulatore si prefigge lo scopo di replicare l’hardware di un sistema. la creazione di una copia virtuale di una risorsa normalmente fornita fisicamente. una simulazione di un ambiente hardware fisico completo ottenuta attraverso strumenti software. N.B.: Virtualizzazione ≠ Emulazione Macchina virtuale indica un ambiente virtuale che simula il comportamento di un'intera macchina fisica. un contenitore software totalmente isolato in grado di eseguire i propri sistemi operativi e applicazioni come fosse un computer fisico. Virtualizzazione – Catania 2010 11 Terminologia (2) Hypervisor (o virtual machine monitor) e’ il sistema di virtualizzazione, ovvero lo strato di software che controlla l'hardware e che fornisce hai sistemi operativi ospiti l'accesso alle risorse hardware, consentendo a diversi guest di girare sullo stesso host. Host il sistema operativo ospitante, cioe' quello al cui interno vengono eseguite e fatte funzionare le varie macchine virtuali. Guest il sistema operativo creato virtualmente e ospitato sull'host. Virtualizzazione – Catania 2010 12 Vantaggi della virtualizzazione (1) riduzione dei costi d'acquisto riduzione dei consumi elettrici e di condizionamento riduzione dell'impatto ambientale. riduzione del volume (spazio rack) riduzione dei guasti (una VM non si puo' rompere fisicamente). semplifica la gestione del disaster recovery (migrazione della VM) amministrazione semplificata (installazione, configurazione, eliminazione) semplificazione dell'infrastruttura aziendale permette di sfruttare al massimo la potenza dei moderni server alta affidabilita' e load balancing grazie a tecniche di snapshot e di migrazione live dimensionamento delle risorse. sicurezza. Virtualizzazione – Catania 2010 13 Vantaggi della virtualizzazione (2) separazione dei servizi. separazione dei fallimenti. separazione dei dati. semplifica la gestione remota facilita' di backup e di snapshot ideali come ambienti di test e sviluppo rendono possibile la compatibilita' con vecchi sistemi. ideali per realizzare ambienti “portabili”. tool e librerie per la gestione, il monitoring delle risorse e l'ottimizzazione delle performance facilita' di creazione e distruzione e' uno degli elementi che rendono possibile il cloud. Virtualizzazione – Catania 2010 14 Limiti della virtualizzazione abbassamento delle prestazioni. se l’host ha un problema hw/sw, tutte le VM che girano su di esso ne subiscono le conseguenze. un’errata pianificazione del progetto di virtualizzazione porta ad un aumento del numero di server logici non realizzabile in caso di utilizzo di hw non supportato dalla piattaforma di virtualizzazione bisogna accertarsi che il produttore di SW ne garantisca il funzionamento su VM, pena l’invalidazione della garanzia un’infrastruttura lagargamente virtualizzata puo’ avere alti costi, almeno per le soluzioni commerciali (Microsoft, VMware) Virtualizzazione – Catania 2010 15 Sistemi di virtualizzazione (1) Emulation (o software virtualization): permette di replicare il funzionamento di un determinato hardware su un'architettura differente, emulando tutte le componenti hardware principali e permettendo di eseguire il sistema operativo completo all’interno dell’ambiente emulato. Es. Bochs, Qemu Pro: possibilita' di far girare VM con diversa architettura di quella del sistema host Contro: performance scarse, perche’ tutto dev’essere simulato a livello software. Virtualizzazione – Catania 2010 16 Sistemi di virtualizzazione (2) Full-virtualizzation (o native virtualization): la macchina virtuale simula abbastanza hardware da permette ad un sistema operativo non modificato di essere eseguito in isolamento. Il guest dev’essere un sistema progettato per lo stesso instruction set della macchina host. Es. Virtualbox, Parallels, Vmware. Pro: Contro: non e' richiesta nessuna modifica al sistema operativo del guest. il guest dev'essere un sistema operativo progettato per lo stesso instruction set. prestazioni discrete, ma non ottime. N.B.: la full-virtualization e’ differente dall’emulazione pura. Virtualizzazione – Catania 2010 17 Sistemi di virtualizzazione (3) Hardware-assisted virtualization: piattaforma di virtualizzazione che realizza la full-virtualizzation sfruttando opportune estensioni dei processori Intel (VT-x) e AMD (AMDV), pensate per migliorare la sicurezza e le prestazioni delle macchine virtuali completamente virtualizzate. Es. Windows Virtual PC, KVM (anche Virtual Box puo’ sfruttare queste estensioni, ma di default non la fa). Disponibile dal 2005/2006 Pro e contro della full-virtualization, ma con migliori prestazioni. N.B.: spesso viene utilizzato il termine HVM (Hardware Virtual Machine) per indicare macchine virtuali completamente virtualizzate che utilizzano queste estensioni. Virtualizzazione – Catania 2010 18 Sistemi di virtualizzazione (4) Para-virtualizzation: tecnica che prevede che l'hypervisor esponga ad ogni macchina virtuale interfacce hardware simulate funzionalmente simili, ma non identiche, alle corrispondenti interfacce fisiche. L’hypervisor espone una libreria di chiamate (Virtual Hardware API o hypercall API) che implementa una semplice astrazione delle perifieriche. Es. XEN, UML. Pro: le hypercall API hanno l’intento di ridurre la porzione di tempo spesa dagli host nell’eseguire quelle operazioni che sono difficili da esguire in un ambiente virtuale. le hypercall API permettono di rendere l’hypervisor piu’ semplice ed efficiente perche’ non deve piu’ preoccuparsi di tradurre dinamicamente i tentativi di operazioni privilegiate dei SO guest. ottime prestazioni, migliori della full-virtualization. Contro: occorre modificare il kernel del guest per renderlo compatibile con le hypercall API (cosa preclusa a molti SO commerciali non open source). Virtualizzazione – Catania 2010 19 Sistemi di virtualizzazione (5) Hybrid virtualization: full-virtualization con i driver paravirtualizzati. i driver paravirtualizzati aumentano le prestazioni I/O dei dispositivi a blocchi e di rete per guest completamente virtualizzati. N.B.: i driver paravirtualizzati, non sono soluzioni di paravirtualizzazione, nel senso che attuano solo minimi e non intrusivi cambiamenti nel sistema operativo guest, e non richiedono la modifica del kernel. Virtualizzazione – Catania 2010 20 Sistemi di virtualizzazione (6) Operating system-level virtualization: viene eseguito un kernel nella macchina fisica, che viene utilizzato anche per tutte le macchine virtuali che verranno create (Virtual Environment). Es. linux-Vserver, OpenVz. Pro: i Virtual Environment sono perfettamente separati gli uni dagli altri. performance native. si risparmiano risorse in termini di memoria e di overhead computazionale. Contro: il kernel dev’essere opportunamente modificato per supportare questo tipo di virtualizzazione, perche’ i moduli necessari non sono integrati nel kernel di linux viene supportato solo lo stesso SO della macchina fisica Virtualizzazione – Catania 2010 21 Principali prodotti: VMware VMware e' stata una delle prime e piu' attive aziende nella ricerca di soluzioni per la virtualizzazione. Prodotti forniti gratuitamente: VMware player e VMware server Prodotti commerciali: VMware workstation Prodotti enterprise: VMware infrastructure Virtualizzazione – Catania 2010 22 Principali prodotti: VMware player Software entry-level gratuito Disponibile per Windows e Linux a 32 e 64 bit Non permette di creare nuove VM, ma solo di utilizzare quelle gia’ create con prodotti Vmware, Microsoft o Symantec Il guest puo’ essere Windows, Linux, FreeBSD, Sun Solaris Supporta VM con CPU multiple. E’ inoltre possibile emulare un sistema multiprocessore anche avendo a disposizione un solo processore a singolo core Condivisione dati tra host e guest tramite funzioni di “drag and drop” Supporto per dispositivi USB Virtualizzazione – Catania 2010 23 Principali prodotti: VMware server VMware Server può creare, editare ed eseguire macchine virtuali. Disponibile sia su Windows che su Linux Supporto per sistemi Windows e Linux a 32 e 64 bit Snapshot dello stato di una VM ed eventuale rollback Conversione di VM di terze parti in formato VMware (tramite VM importer) Supporto per le estensioni hardware di virtualizzazione L’immagine della VM puo’ risiedere sia su disco che su partizione fisica VMware virtual center(a pagamento): interfaccia centralizzata di gestione di VMware server. Gestisce contemporaneamente piu’ installazioni di VMware Server Virtualizzazione – Catania 2010 24 Principali prodotti: VMware workstation Oltre alle funzionalita’ di Vmware Server: E’ in grado di convertire macchine fisiche in macchine virtuali Possibilita’ di creare cloni di VM esistenti Possibilita’ di registrare e ripetere le azioni effettuate su un sistema guest Possibilita’ di catturare tutta l’attivita’ sullo schermo della VM come una registrazione video ed eseguire il playback Disponibili “API VIX Automation” per eseguire qualsiasi comando sulla VM tramite script Possibilita’ di specificare banda di rete dedicata alle VM o percentuale di perdita di pacchetti accettabile Virtualizzazione – Catania 2010 25 Principali prodotti: VMware infrastructure Suite per la virtualizzazione di data center. Permette di virtualizzare server e storage e gestire l’intero sistema come un pool di risorse condivise al fine di sviluppare proprieta’ ad alta affidabilita’, mobilita’ e bilanciamento del carico. Virtualizzazione – Catania 2010 26 Principali prodotti: VMware infrastructure (1) E’ composta da una serie di pacchetti, tra cui: VMware ESX Server: e’ un hypervisro a livello di macchina fisica, installato cioe’ come sistema operativo standalone su un server e non piu’ come un software che necessita gia’ di un ambiente operativo. Cio’ comporta un notevole aumento delle prestazioni. Ogni singola installazione di “ESX server” viene poi interfacciata con il SW di gestione dell’intera infrastruttura, rendendo possibile un controllo centralizzato di tutti i server e di tutte le risorse disponibili. VMware virtual SMP: da’ la possibilita’ ad ogni singola VM di utilizzare piu’ processori fisici contemporaneamente VMware High Availablity: si occupa di monitorare e gestire i problemi hardware dei server fisici che compongono l’infrastruttura; quando viene rilevato il down di uno dei nodi, tutte le VM vengono migrate verso gli altri server disponibili, minimizzando il downtime e contemporaneamente ottimizzando il carico per ogni singolo nodo. Tenta anche di capire se vi siano problemi all’interno delle VM (es. Crash di sistema, risorse infufficienti, etc.) e, se rilevati, tenta soluzioni per risolverli (anche il riavvio della VM se necessario) Virtualizzazione – Catania 2010 27 Principali prodotti: VMware infrastructure (2) VMware DRS (Distribute Resource Scheduler): si occupa di allocare e bilanciare dinamicamente le risorse a disposizione. Monitorizza costantemente l’utilizzo del pool di risorse allocando intelligentemente quelle disponibili tra le varie VM, migrando in maniera live le VM quando necessario. VMware VMFS: filesystem ad alte prestazioni orientato al clustering ed ottimizzato per macchine virtuali. E’ il filesystem di defaul per lo storage delle VM. Da’ la possibilita’ ad ogni server ESX di attingere allo storage condiviso in maniera concorrente. VMware VMotion: gli stati delle VM sono incapsulati in un set di file presenti nello storage condiviso, dando quindi la possibilita’ ai vari server ESX di accedervi concorrentemente. Inoltre lo stato della memoria puo’ essere trasmesso rapidamente su un network sufficientemente veloce. Tutto cio’ permette lo spostamento di una VM in esecuzione da un server all’altro istantaneamente e senza necessita’ di riavviarla Virtualizzazione – Catania 2010 28 Principali prodotti: Microsoft Il pregio dei prodotti di virtualizzazione Microsoft e’ la grande integrazione col resto dei suoi prodotti. Il settore virtualizzazione di Microsoft si suddivide in tre prodotti: Microsoft Virtual PC, dedicato all’utenza desktop Microsoft Virtual Server, dedicato all’utenza enterprise (sara’ rimpiazzato da Hyper-V) MIcrosoft Hyper-V, primo prodotto di Microsoft basato su un hypervisor nativo Virtualizzazione – Catania 2010 29 Principali prodotti: Virtual PC Soluzione entry-level per la creazione di VM. Originariamente sviluppato dalla Connectix, attualmente il prodotto Virtual PC è distribuito da Microsoft. Scaricabile gratuitamente. Permette la creazione di dischi chiamati “file modifiche”, in cui il programma puo’ apportare tutte le modifiche apportate da un punto in poi. Povero di funzionalita’. Non supporta periferiche usb. Non permette la creazione di snapshot. Gli unici sistemi operativi guest supportati ufficialmente sono Windows 98, Me, 2000, 2003 server, XP, Vista, Seven, 2008 server e IBM OS/2 . USB non è supportato, anche se alcune periferiche standard che utilizzano USB nel sistema ospitante, vengono riconosciute in altro modo. Per agevolare lo scambio e la condivisione di file, cartelle e dati tra il sistema host quello guest, Virtual PC supporta l'installazione di "Virtual Machine Additions" Virtualizzazione – Catania 2010 30 Principali prodotti: Windows Virtual PC + Windows XP Mode Windows Virtual PC è una evoluzione di Microsoft Virtual PC, progettata appositamente per Windows 7, per consentire un più elevato grado di virtualizzazione di Windows XP (sia dei programmi sia dell'hardware). Si appoggia a Windows XP Mode e si integra con esso a tal punto che i programmi installati su Windows XP nativamente, sono visti e lanciati da Windows 7 analogamente alle altre applicazioni. Windows XP Mode non è altro che un disco virtuale di Windows XP Service Pack 3 a 32 bit, già pronto all'uso con licenza, circa 500 Mbytes, che sarà pilotato da Windows Virtual PC, circa 10 Mbytes. Dal punto di vista hardware supporta anche le porte USB e le seriali RS232, anche se non è detto che i driver installati o incorporati in Windows XP Mode siano in grado di pilotare tutte le periferiche di quel tipo. Windows Virtual PC e Windows XP Mode sono disponibili, a titolo gratuito, solo per le versioni Windows 7 (32 e 64 bit) Ultimate, Professional, Enterprise. Dal punto di vista delle CPU supporta processori con tecnologie Intel-VT o AMD-V (con virtualizzazione hardware nativa). Supporto al multithreading. Supporto risoluzioni video elevate Virtualizzazione – Catania 2010 31 Principali prodotti: Hyper-V Tecnologia a 64 bit nativa (non e’ disponibile per le edizioni a 32 bit. Le VM possono invece essere a 32 o 64 bit) Prestazioni migliori e piu’ ricco di funzionalita’ rispetto a Virtual Server Consente di assegnare piu’ CPU ad una singola VM e fino a 64GB di ram Il formato dei dischi rigidi virtuali e’ VHD (lo stesso di Virtual Server) Integretion Services (componenti software che migliorano l’integrazione tra host e guest. Sono l’equivalente dei VMware tools) Gestisci snapshot multipli Supporto USB Possibilita’ di limitare le prestazioni di un singolo processore o core, impostando una percentuale da riservare alla macchina e una percentuale massima di utilizzo, per evitare problemi sui server sovraccarichi Virtualizzazione – Catania 2010 32 Principali prodotti: Hyper-V Le VM nel mondo Hyper-V corrispondono a partizioni La partizione padre, deve eseguire Windows Server 2008. Le partizioni figlio possono eseguire qualsiasi altro sistema operativo supportato Tutte le partizioni figlie non hanno accesso alle risorse hardware Virtualizzazione – Catania 2010 33 Principali prodotti: Parallels Dispone di quattro prodotti principali: Parallels Desktop: prodotto di virtualizzazione rivolto principalmente al mondo Mac (permette di utilizzare sui sistemi Mac OS X macchine virtuali basate su Windows) ma presente anche per Windows. Parallels Workstation: prodotto rivolto alle aziende. Parallels Server: prodotto enterprise, ricco di funzionalita’ Virtualizzazione – Catania 2010 34 Principali prodotti: Parallels Server Prodotto recente che si prefigge lo scopo di competere con VMware Server e Microsoft Hyper-V Può essere installato su sistemi Windows, Linux e Macintosh oltre che direttamente su una macchina hardware. Tra i sistemi operativi guest supportati troviamo Windows (dalla versione 3.1 fino a Windows Server 2008), Linux (Red Hat Enterprise, Debian, Fedora, SUSE, Mandriva, Xandros, Ubuntu e altre distribuzioni generiche), FreeBSD (4.x, 5.x, 6.x), OS/2, NetWare, Solaris (9 e 10) e MS-DOS. Ottima management console. Caratteristiche simili a VMware Server a cui si ispira Virtualizzazione – Catania 2010 35 Riferimenti Tappe dello sviluppo della virtualizzazione Movimenti economici in campo di virtualizzazione http://blog.vmengine.net/2009/03/21/virtualizzazione-e-cloud-storiadi-giganti-delleconomia-e-di-acquisizioni/ Understanding Full Virtualization, Paravirtualization, and Hardware Assist http://wapedia.mobi/en/Timeline_of_virtualization_development http://www.vmware.com/files/pdf/VMware_paravirtualization.pdf AMD e Intel virtualization technology http://sites.amd.com/us/business/itsolutions/virtualization/Pages/virtualization.aspx http://www.intel.com/technology/virtualization/index.htm Virtualizzazione – Catania 2010 36