Panoramica della virtualizzazione

Completato

La virtualizzazione è alla base del paradigma di cloud computing. La virtualizzazione si basa sull'infrastruttura cloud (o sul data center) in cui le risorse virtuali, ad esempio CPU, memorie, dischi e reti virtuali, vengono create dalle risorse fisiche sottostanti e fungono da proxy. Come per l'idea di cloud computing, introdotta per la prima volta negli anni '60, la nascita della virtualizzazione può essere ricondotta a vari decenni fa, negli anni '70. 40 anni fa, i sistemi di computer mainframe erano enormi e molto costosi. Per soddisfare le esigenze in continua espansione degli utenti e per risolvere il problema del costo di proprietà oneroso per i computer, l'architettura IBM 370, annunciata nel 1970, offriva macchine virtuali (VM) complete (immagini hardware virtuali) per diversi programmi in esecuzione nello stesso hardware di computer. Con il tempo, il costo dei componenti hardware si è ridotto e gli utenti sono passati a computer desktop a prezzi contenuti. Questa migrazione ha rallentato per un certo periodo il processo di adozione della tecnologia di virtualizzazione. Oggi la virtualizzazione sta godendo di nuova popolarità con una serie di progetti di ricerca e sistemi commerciali che offrono soluzioni di virtualizzazione per PC commerciali, server e cloud. Il video seguente è una breve introduzione alla virtualizzazione.

In questa unità vengono presentati i diversi ingredienti della tecnologia di virtualizzazione e il ruolo fondamentale svolto da questa tecnologia per rendere possibile il cloud computing. In primo luogo, vengono identificati i principali fattori che rendono la virtualizzazione un componente essenziale dei sistemi di computer moderni, specialmente per il cloud. Si vedrà poi come più immagini hardware e software possono essere eseguite affiancate in una singola risorsa, ognuna con isolamento di sicurezza, isolamento delle risorse e isolamento degli errori, tutti requisiti cruciali per il cloud computing. Prima di approfondire i dettagli della virtualizzazione, vengono presentate alcune informazioni di base fondamentali per comprendere come è possibile virtualizzare le risorse fisiche. In particolare viene spiegato in che modo è possibile gestire la complessità del sistema in termini di livelli di astrazioni e interfacce ben definite. Verrà poi descritta la condivisione delle risorse, nello spazio e nel tempo, come tecnica generale per migliorare l'utilizzo del sistema. Seguiranno una definizione formale della virtualizzazione e la presentazione di due tipi di macchine virtuali principali: macchine virtuali di processo e di sistema.

Dopo un'introduzione alla virtualizzazione per il cloud e ai fattori che ne promuovono l'adozione, viene descritta in dettaglio la virtualizzazione di CPU, memoria e input/output (I/O). Per iniziare vengono identificate le condizioni per la virtualizzazione delle CPU, illustrate le differenze tra virtualizzazione e paravirtualizzazione, spiegata l'emulazione come tecnica principale per la virtualizzazione della CPU ed esaminata la pianificazione della CPU virtuale di Xen Project. Xen Project è una diffusa piattaforma di virtualizzazione usata da alcuni provider di servizi cloud, tra cui Alibaba e Tenecent. La trattazione continua con la descrizione delle differenze tra la memoria virtuale di un sistema operativo convenzionale e la virtualizzazione della memoria di sistema, una spiegazione dei vari livelli di mapping delle pagine imposti dalla virtualizzazione della memoria, la definizione di overcommit della memoria e la presentazione del ballooning della memoria, una tecnica di recupero per l'overcommit della memoria in VMware, un'altra piattaforma di virtualizzazione comune. Infine, vengono illustrate le modalità di comunicazione dei dispositivi CPU e I/O con e senza virtualizzazione, identificate le tre interfacce principali (chiamata di sistema, driver di dispositivo e interfacce del livello operativo) a cui è possibile applicare la virtualizzazione di I/O e analizzata la virtualizzazione di I/O in relazione a Xen Project.