Computer e gadget moderni

Annotazione: Le tecnologie dell'informazione hanno portato molte cose utili e interessanti nella vita della società moderna. Ogni giorno persone creative e di talento inventano sempre più nuove applicazioni per computer come strumenti efficaci per la produzione, l'intrattenimento e la collaborazione. Molti diversi software e hardware, tecnologie e servizi ci consentono di migliorare la comodità e la velocità di lavorare ogni giorno con le informazioni. Sta diventando sempre più difficile individuare le tecnologie veramente utili dal flusso di tecnologie che ci cadono addosso e imparare a usarle con il massimo beneficio. In questa conferenza parleremo di un'altra tecnologia incredibilmente promettente e veramente efficace che sta rapidamente irrompendo nel mondo dei computer: la tecnologia di virtualizzazione, che occupa un posto chiave nel concetto di cloud computing.

Lo scopo di questa lezione è ottenere informazioni sulle tecnologie di virtualizzazione, sulla terminologia, sui tipi e sui principali vantaggi della virtualizzazione. Conosci le principali soluzioni dei principali fornitori IT. Considera le funzionalità della piattaforma di virtualizzazione Microsoft.

Tecnologie di virtualizzazione

Secondo le statistiche, il livello medio di utilizzo della capacità del processore per i server che eseguono Windows non supera il 10%; per i sistemi Unix questa cifra è migliore, ma comunque in media non supera il 20%. La scarsa efficienza nell’utilizzo dei server è spiegata dall’approccio “un’applicazione – un server” ampiamente utilizzato fin dall’inizio degli anni ’90, ovvero ogni volta che un’azienda acquista un nuovo server per implementare una nuova applicazione. Ovviamente, nella pratica ciò significa un rapido incremento del parco server e, di conseguenza, un aumento dei relativi costi. amministrazione, Consumo di energia e raffreddamento, nonché la necessità di locali aggiuntivi per installare sempre più server e acquistare licenze per il sistema operativo del server.

La virtualizzazione delle risorse del server fisico consente di distribuirle in modo flessibile tra le applicazioni, ciascuna delle quali "vede" solo le risorse ad essa assegnate e "crede" che le sia stato assegnato un server separato, ovvero in questo caso "un server - diversi "applicazioni", ma senza ridurre le prestazioni, la disponibilità e la sicurezza delle applicazioni server. Inoltre, le soluzioni di virtualizzazione consentono di eseguire diversi sistemi operativi su partizioni emulando le relative chiamate di sistema alle risorse hardware del server.


Riso. 2.1.

La virtualizzazione si basa sulla capacità di un computer di eseguire il lavoro di più computer distribuendo le proprie risorse su più ambienti. Con server virtuali e desktop virtuali, puoi ospitare più sistemi operativi e più applicazioni in un'unica posizione. Pertanto, le restrizioni fisiche e geografiche cessano di avere alcun significato. Oltre a risparmiare energia e ridurre i costi attraverso un utilizzo più efficiente delle risorse hardware, l'infrastruttura virtuale offre livelli elevati di disponibilità delle risorse, gestione più efficiente, maggiore sicurezza e migliore ripristino di emergenza.

In senso lato, il concetto di virtualizzazione è il nascondere la reale implementazione di un processo o di un oggetto dalla sua vera rappresentazione per chi lo utilizza. Il prodotto della virtualizzazione è qualcosa di comodo da usare, infatti, avendo una struttura più complessa o completamente diversa, diversa da quella che si percepisce quando si lavora con l'oggetto. In altre parole, c’è una separazione tra rappresentazione e attuazione di qualcosa. La virtualizzazione è progettata per astrarre Software dall'hardware.

Nella tecnologia informatica, il termine “virtualizzazione” si riferisce solitamente all’astrazione delle risorse informatiche e alla fornitura all’utente di un sistema che “incapsula” (nasconde) la propria implementazione. In poche parole, l'utente lavora con una rappresentazione conveniente dell'oggetto e non gli importa come è strutturato l'oggetto nella realtà.

Al giorno d'oggi, la possibilità di eseguire più macchine virtuali su un'unica macchina fisica è di grande interesse tra i professionisti informatici, non solo perché aumenta la flessibilità dell'infrastruttura IT, ma anche perché la virtualizzazione consente effettivamente di risparmiare denaro.

La storia dello sviluppo delle tecnologie di virtualizzazione risale a più di quarant'anni fa. IBM è stata la prima a pensare alla creazione di ambienti virtuali per le varie attività degli utenti, allora ancora su mainframe. Negli anni '60 del secolo scorso la virtualizzazione aveva un interesse prettamente scientifico e rappresentava una soluzione originale per isolare i sistemi informatici all'interno di un unico computer fisico. Dopo l'avvento dei personal computer, l'interesse per la virtualizzazione si è un po' indebolito a causa del rapido sviluppo dei sistemi operativi, che ponevano requisiti adeguati all'hardware dell'epoca. Tuttavia, la rapida crescita della potenza dell'hardware dei computer alla fine degli anni Novanta del secolo scorso ha costretto la comunità IT a richiamare ancora una volta le tecnologie di virtualizzazione delle piattaforme software.

Nel 1999, VMware ha introdotto la tecnologia di virtualizzazione dei sistemi basata su x86 come mezzo efficace per trasformare i sistemi basati su x86 in un'unica infrastruttura hardware di uso generale e appositamente creata che fornisce isolamento completo, portabilità e un'ampia scelta di sistemi operativi per le applicazioni. ambienti. VMware è stato uno dei primi a scommettere seriamente esclusivamente sulla virtualizzazione. Come il tempo ha dimostrato, ciò si è rivelato assolutamente giustificato. Oggi WMware offre una piattaforma di virtualizzazione completa di quarta generazione, VMware vSphere 4, che include strumenti sia per il singolo PC che per il data center. Il componente chiave di questo pacchetto software è l'hypervisor VMware ESX Server. Successivamente, aziende come Parallels (ex SWsoft), Oracle (Sun Microsystems), Citrix Systems (XenSourse) si unirono alla "battaglia" per un posto in questa direzione alla moda dello sviluppo della tecnologia dell'informazione.

Microsoft è entrata nel mercato della virtualizzazione nel 2003 con l'acquisizione di Connectix, rilasciando il suo primo prodotto, Virtual PC, per PC desktop. Da allora ha costantemente ampliato la gamma di offerte in questo settore e oggi ha quasi completato la formazione di una piattaforma di virtualizzazione, che comprende soluzioni come Windows 2008 Server R2 con il componente Hyper-V, Microsoft Application Virtualization (App-v) , Microsoft Virtual Desktop Infrastructure (VDI), Servizi Desktop remoto, System Center Virtual Machine Manager.

Oggi i fornitori di tecnologie di virtualizzazione offrono piattaforme affidabili e facili da gestire e il mercato di queste tecnologie è in forte espansione. Secondo i maggiori esperti, la virtualizzazione è oggi una delle tre tecnologie informatiche più promettenti. Molti esperti prevedono che entro il 2015 circa la metà di tutti i sistemi informatici saranno virtuali.

L’attuale crescente interesse per le tecnologie di virtualizzazione non è casuale. La potenza di calcolo dei processori attuali sta crescendo rapidamente e la domanda non è nemmeno su cosa spendere questa potenza, ma nel fatto che la moderna "moda" per i sistemi dual-core e multi-core, che è già penetrata nei personal computer ( laptop e desktop), non potrebbe essere migliore, consente di realizzare il più ricco potenziale di idee per la virtualizzazione di sistemi operativi e applicazioni, portando la facilità di utilizzo di un computer a un nuovo livello qualitativo. Le tecnologie di virtualizzazione stanno diventando uno dei componenti chiave (compresi quelli di marketing) nei processori più recenti e futuri di Intel e AMD, nei sistemi operativi di Microsoft e di numerose altre società.

Vantaggi della virtualizzazione

Ecco i principali vantaggi delle tecnologie di virtualizzazione:

  1. Utilizzo efficiente delle risorse informatiche. Invece di 3, o anche 10 server, caricati al 5-20%, puoi usarne uno, utilizzato al 50-70%. Ciò, tra l'altro, consente anche di risparmiare energia, oltre a una significativa riduzione degli investimenti finanziari: viene acquistato un server ad alta tecnologia che svolge le funzioni di 5-10 server. La virtualizzazione può consentire un utilizzo delle risorse significativamente più efficiente perché mette in comune le risorse dell'infrastruttura standard e supera i limiti del modello legacy di un'applicazione per server.
  2. Ridurre i costi delle infrastrutture: La virtualizzazione riduce il numero di server e delle apparecchiature IT associate in un data center. Di conseguenza, i requisiti di manutenzione, alimentazione e raffreddamento delle risorse vengono ridotti e vengono spesi molti meno soldi per l'IT.
  3. Costi software ridotti. Alcuni produttori di software hanno introdotto schemi di licenza separati specifici per gli ambienti virtuali. Quindi, ad esempio, acquistando una licenza per Microsoft Windows Server 2008 Enterprise, ottieni il diritto di utilizzarla contemporaneamente su 1 server fisico e 4 virtuali (all'interno di un server) e Windows Server 2008 Datacenter viene concesso in licenza solo per il numero di processori e possono essere utilizzati contemporaneamente su un numero illimitato di processori numero di server virtuali.
  4. Maggiore flessibilità e reattività del sistema: La virtualizzazione offre un nuovo metodo per la gestione dell'infrastruttura IT e aiuta gli amministratori IT a dedicare meno tempo ad attività ripetitive quali provisioning, configurazione, monitoraggio e manutenzione. Molti amministratori di sistema hanno riscontrato problemi quando un server si blocca. E non puoi estrarre il disco rigido, spostarlo su un altro server e avviare tutto come prima... E l'installazione? ricerca di driver, configurazione, avvio... e tutto richiede tempo e risorse. Quando si utilizza un server virtuale, è possibile l'avvio istantaneo su qualsiasi hardware e, se non esiste un server di questo tipo, è possibile scaricare una macchina virtuale già pronta con un server installato e configurato dalle librerie supportate dalle aziende che sviluppano hypervisor (programmi di virtualizzazione) .
  5. Applicazioni incompatibili potrebbero essere eseguite sullo stesso computer. Quando si utilizza la virtualizzazione su un server, è possibile installare server Linux e Windows, gateway, database e altre applicazioni completamente incompatibili all'interno dello stesso sistema non virtualizzato.
  6. Aumenta la disponibilità delle applicazioni e garantisci la continuità aziendale: Con il backup affidabile e la migrazione di interi ambienti virtuali senza interruzioni del servizio, è possibile ridurre i tempi di inattività pianificati e garantire un rapido ripristino del sistema in situazioni critiche. La “caduta” di un server virtuale non comporta la perdita dei restanti server virtuali. Inoltre, in caso di guasto di un server fisico, è possibile sostituirlo automaticamente con un server di backup. Inoltre, ciò avviene inosservato dagli utenti senza riavviare. Ciò garantisce la continuità aziendale.
  7. Opzioni di archiviazione semplici. Poiché il disco rigido di una macchina virtuale è generalmente rappresentato come un file di un formato specifico situato su un supporto fisico, la virtualizzazione consente di copiare semplicemente questo file su un supporto di backup come mezzo per archiviare ed eseguire il backup dell'intera macchina virtuale. La possibilità di ripristinare completamente il server dall'archivio è un'altra grande funzionalità. Oppure puoi ripristinare il server dall'archivio senza distruggere il server corrente e vedere lo stato delle cose nell'ultimo periodo.
  8. Aumentare la gestibilità dell’infrastruttura: l'utilizzo della gestione centralizzata dell'infrastruttura virtuale consente di ridurre i tempi di amministrazione dei server, garantisce il bilanciamento del carico e la migrazione “live” delle macchine virtuali.

Macchina virtuale chiameremo ambiente software o hardware che nasconde la reale implementazione di un processo o di un oggetto dalla sua rappresentazione visibile.

è un contenitore software completamente isolato che esegue il proprio sistema operativo e le proprie applicazioni, proprio come un computer fisico. Una macchina virtuale funziona proprio come un computer fisico e contiene la propria RAM virtuale (ovvero software), un disco rigido e un adattatore di rete.

Il sistema operativo non è in grado di distinguere tra macchine virtuali e fisiche. Lo stesso si può dire per le applicazioni e gli altri computer in rete. Anche se stessa macchina virtuale si considera un “vero” computer. Anche così, le macchine virtuali sono costituite esclusivamente da componenti software e non includono hardware. Ciò offre loro una serie di vantaggi unici rispetto all'hardware fisico.


Riso. 2.2.

Vediamo più nel dettaglio le principali caratteristiche delle macchine virtuali:

  1. Compatibilità. Le macchine virtuali sono generalmente compatibili con tutti i computer standard. Come un computer fisico, una macchina virtuale esegue il proprio sistema operativo guest ed esegue le proprie applicazioni. Contiene inoltre tutti i componenti standard di un computer fisico (scheda madre, scheda video, controller di rete, ecc.). Pertanto, le macchine virtuali sono completamente compatibili con tutti i sistemi operativi, le applicazioni e i driver di dispositivo standard. Una macchina virtuale può essere utilizzata per eseguire qualsiasi software adatto al computer fisico corrispondente.
  2. Isolamento. Le macchine virtuali sono completamente isolate le une dalle altre, come se fossero computer fisici. Le macchine virtuali possono condividere le risorse fisiche di un singolo computer e tuttavia rimanere completamente isolate le une dalle altre, come se fossero macchine fisiche separate. Ad esempio, se quattro macchine virtuali sono in esecuzione su un server fisico e una di esse si guasta, la disponibilità delle restanti tre macchine non viene influenzata. L'isolamento è un motivo importante per cui le applicazioni eseguite in un ambiente virtuale sono molto più disponibili e sicure rispetto alle applicazioni eseguite su un sistema standard non virtualizzato.
  3. Incapsulamento. Le macchine virtuali incapsulano completamente l'ambiente informatico. Una macchina virtuale è un contenitore software che raggruppa, o "incapsula", un set completo di risorse hardware virtuali, nonché il sistema operativo e tutte le relative applicazioni, in un pacchetto software. L'incapsulamento rende le macchine virtuali incredibilmente mobili e facili da gestire. Ad esempio, una macchina virtuale può essere spostata o copiata da una posizione a un'altra proprio come qualsiasi altro file di programma. Inoltre, la macchina virtuale può essere memorizzata su qualsiasi supporto di memorizzazione standard: da una scheda di memoria flash USB compatta alle reti di memorizzazione aziendali.
  4. Indipendenza dall'hardware. Le macchine virtuali sono completamente indipendenti dall'hardware fisico sottostante su cui vengono eseguite. Ad esempio, per una macchina virtuale con componenti virtuali (CPU, scheda di rete, controller SCSI), è possibile configurare impostazioni completamente diverse dalle caratteristiche fisiche dell'hardware sottostante. Le macchine virtuali possono anche eseguire diversi sistemi operativi (Windows, Linux, ecc.) sullo stesso server fisico. Combinata con le proprietà di incapsulamento e compatibilità, l'indipendenza dall'hardware offre la possibilità di spostare liberamente le macchine virtuali da un computer basato su x86 a un altro senza modificare driver di dispositivo, sistema operativo o applicazioni. L'indipendenza dall'hardware consente inoltre di eseguire una combinazione di sistemi operativi e applicazioni completamente diversi su un computer fisico.

Diamo un'occhiata ai principali tipi di virtualizzazione, come:

  • virtualizzazione dei server (virtualizzazione completa e paravirtualizzazione)
  • virtualizzazione a livello di sistema operativo,
  • virtualizzazione delle applicazioni,
  • virtualizzazione della presentazione.

Gli specialisti dell'azienda Kosmonova lavorano ogni giorno con vari sistemi di virtualizzazione, sia quando lavorano con il proprio cloud sia quando eseguono lavori di progettazione. Durante questo periodo, siamo riusciti a lavorare con un numero considerevole di sistemi di virtualizzazione e a determinare da soli i punti di forza e di debolezza di ciascuno di essi. In questo articolo abbiamo raccolto le opinioni dei nostri ingegneri sui sistemi di virtualizzazione più comuni e le loro brevi caratteristiche. Se stai pensando di realizzare un cloud privato e stai considerando vari sistemi di virtualizzazione per risolvere questo problema, questo articolo fa per te.

Per prima cosa, scopriamo cos'è un sistema di virtualizzazione e perché è necessario. La virtualizzazione delle macchine fisiche (server, PC, ecc.) consente di dividere la potenza di un dispositivo fisico tra più macchine virtuali. Pertanto, queste macchine virtuali possono avere il proprio sistema operativo e software, senza dipendere in alcun modo dalle macchine virtuali vicine. Oggi esistono molti sistemi di virtualizzazione, ognuno di essi ha le sue caratteristiche, quindi consideriamo ciascuno di essi separatamente.

VMware vSphere - il prodotto di punta di VMware, leader indiscusso nella quota di mercato della virtualizzazione da molti anni consecutivi. Ha un'ampia funzionalità ed è creato appositamente per i data center che forniscono soluzioni cloud e le aziende che costruiscono cloud privati ​​di varie dimensioni. Ha un'interfaccia ben congegnata e una grande quantità di documentazione tecnica. Se hai poca esperienza con la virtualizzazione, questo sistema sarà una buona scelta per te. Concesso in licenza in base al numero di processori fisici nel cloud, indipendentemente dal numero di core. A causa dell'ampia funzionalità e dei numerosi moduli, questo sistema è piuttosto esigente in termini di risorse necessarie per il suo funzionamento.

WMware Esxi- è un analogo gratuito di VMware vSphere. Poiché questo hypervisor è gratuito, ha funzionalità più modeste, ma è abbastanza sufficiente per implementare le attività più tipiche della virtualizzazione e gestire un cloud privato. Anche abbastanza facile da usare

Iper - V- un prodotto Microsoft sviluppato come aggiunta al sistema operativo Windows Server, a partire dalla versione 2008. Esiste anche come prodotto separato, ma utilizza il server OS Windows per il funzionamento. Questo hypervisor è abbastanza facile da configurare e utilizzare e, ovviamente, supporta tutte le versioni del sistema operativo Windows per le macchine ospiti, ma il produttore non garantisce il funzionamento di molti sistemi operativi Linux. Tieni presente che l'hypervisor stesso è distribuito con una licenza gratuita, ma per funzionare richiede un sistema operativo Windows a pagamento.

ApriVZ- un sistema di virtualizzazione completamente gratuito implementato sul kernel Linux. Come la maggior parte dei sistemi Linux, ha buoni indicatori di produttività e consumo di risorse e funziona perfettamente con qualsiasi distribuzione Linux come sistema operativo guest. Tuttavia, non supporta il sistema operativo Windows, per cui questo sistema di virtualizzazione non può essere considerato universale.

KVM - Anche il sistema di virtualizzazione è basato sul kernel Linux e distribuito con licenza gratuita. Ha ottimi indicatori di efficienza in termini di quantità di risorse consumate. Ha grandi funzionalità ed è abbastanza universale dal punto di vista dei sistemi operativi guest, poiché supporta assolutamente tutti i sistemi operativi. Per configurare e supportare nella sua forma pura, sono necessarie determinate conoscenze e abilità nel lavorare con i sistemi Unix. Tuttavia, sono disponibili molte GUI come componenti aggiuntivi dell'hypervisor, con diverse opzioni di licenza che vanno dalle versioni gratuite a quelle a pagamento.

Xen- un prodotto sviluppato dall'Università di Cambridge con codice open source. La maggior parte dei componenti vengono spostati all'esterno dell'hypervisor, il che consente di ottenere buoni indicatori di efficienza. Insieme alla virtualizzazione dell'hardware, supporta anche la modalità paravirtualizzazione. Xen supporta l'esecuzione della maggior parte dei sistemi operativi esistenti.

LXC- un sistema di virtualizzazione abbastanza nuovo a livello di sistema operativo che consente di eseguire più istanze del sistema operativo Linux su una macchina fisica. La particolarità di questo sistema è che non funziona con server virtuali, ma con applicazioni che utilizzano un kernel del sistema operativo comune, che allo stesso tempo sono isolate l'una dall'altra, il che garantisce la massima efficienza nel consumo delle risorse.

Sistema di virtualizzazione

Sistema operativo supportato

Vantaggi

Screpolatura

Licenza

VMware vSphere

Vittoria/Lin

Facile da usare. Ampia funzionalità

Consumo di risorse.

Pagato. Per numero di processori

WMware Esxi

Vittoria/Lin

Facile da usare

Non la funzionalità più ampia.

Gratuito

ApriVZ

Linux

Consumo efficiente delle risorse

Linux è supportato solo

Gratuito

Vittoria/Lin

Consumo efficiente delle risorse. Supporta tutti i sistemi operativi

Gratuito

Hyper-V

finestre

Facile da usare

È supportato solo Windows. Consumo di risorse

Gratuito. Funziona su un sistema operativo a pagamento

Vittoria/Lin

Alta efficienza. Fonte aperta.

Richiede la conoscenza dei sistemi Unix per la configurazione e la gestione

Gratuito

Linux

Alta efficienza

Non supporta Windows

Gratuito

Ricordiamo anche che nel cloud Kosmonov è possibile implementare un'infrastruttura di qualsiasi complessità senza immergersi nelle complessità del funzionamento dei sistemi e dell'hardware di virtualizzazione con un dispendio di tempo minimo. Nel cloud Kosmonov sono disponibili sia soluzioni già pronte che server cloud per risolvere i tuoi problemi aziendali.

Il tema della virtualizzazione è molto ampio e presenta molte sfumature nel funzionamento dei sistemi di virtualizzazione elencati, oltre a numerose variazioni nella progettazione dell'hardware. In questo articolo non diamo vantaggi ad un sistema specifico, ma presentiamo le sue caratteristiche generali per selezionare il sistema appropriato nella fase iniziale.

La storia delle tecnologie di virtualizzazione risale a più di quarant'anni fa. Tuttavia, dopo un periodo di utilizzo trionfante negli anni '70 e '80 del secolo scorso, principalmente sui mainframe IBM, questo concetto è passato in secondo piano durante la creazione dei sistemi informativi aziendali. Il fatto è che il concetto stesso di virtualizzazione è associato alla creazione di centri di calcolo condivisi, con la necessità di utilizzare un unico set di hardware per formare diversi sistemi logicamente indipendenti. E dalla metà degli anni '80, nel settore informatico, ha iniziato a dominare un modello decentralizzato di organizzazione dei sistemi informativi basato su mini-computer e quindi su server x86.

Virtualizzazione per l'architettura x86

Nei personal computer apparsi nel tempo, il problema della virtualizzazione delle risorse hardware, a quanto pare, non esisteva per definizione, poiché ogni utente aveva a sua disposizione l'intero computer con il proprio sistema operativo. Ma con l’aumento della potenza dei PC e l’espansione della portata dei sistemi x86, la situazione è cambiata rapidamente. La “spirale dialettica” dello sviluppo prese la sua svolta successiva e, alla fine del secolo, iniziò un altro ciclo di rafforzamento delle forze centripete per concentrare le risorse informatiche. All'inizio di questo decennio, sullo sfondo del crescente interesse delle imprese per aumentare l'efficienza delle proprie risorse informatiche, è iniziata una nuova fase nello sviluppo delle tecnologie di virtualizzazione, che ora è principalmente associata all'uso dell'architettura x86.

Va subito sottolineato che, sebbene in termini teorici non sembrasse esserci nulla di precedentemente sconosciuto nelle idee di virtualizzazione x86, si trattava di un fenomeno qualitativamente nuovo per il settore IT rispetto alla situazione di 20 anni fa. Il fatto è che nell'architettura hardware e software dei mainframe e dei computer Unix, i problemi di virtualizzazione sono stati immediatamente risolti a livello di base. Il sistema x86 non è stato costruito con l'aspettativa di funzionare in modalità data center e il suo sviluppo nella direzione della virtualizzazione è un processo evolutivo piuttosto complesso con molte diverse opzioni per risolvere il problema.

Un altro punto, forse ancora più importante, sono i modelli di business fondamentalmente diversi per lo sviluppo di mainframe e x86. Nel primo caso si tratta infatti di un complesso software e hardware monovendor per supportare una gamma generalmente piuttosto limitata di software applicativi per una fascia non molto ampia di grandi clienti. Nel secondo, abbiamo a che fare con una comunità decentralizzata di produttori di apparecchiature, fornitori di software di base e un enorme esercito di sviluppatori di software applicativi.

L'uso degli strumenti di virtualizzazione x86 è iniziato alla fine degli anni '90 con le workstation: contemporaneamente all'aumento del numero di versioni del sistema operativo client, è aumentato il numero di persone (sviluppatori di software, specialisti del supporto tecnico, esperti di software) che avevano bisogno di averne diverse contemporaneamente su uno Il PC era in costante crescita di copie di vari sistemi operativi.

  • La virtualizzazione per l'infrastruttura server ha iniziato ad essere utilizzata poco dopo, e ciò era principalmente associato alla risoluzione dei problemi di consolidamento delle risorse informatiche. Ma qui si sono subito formate due direzioni indipendenti: ·
  • supporto per ambienti operativi eterogenei (inclusa l'esecuzione di applicazioni legacy). Questo caso si verifica più spesso all'interno dei sistemi informativi aziendali. Tecnicamente il problema viene risolto eseguendo contemporaneamente più macchine virtuali su un computer, ognuna delle quali contiene un'istanza del sistema operativo. Ma l'implementazione di questa modalità viene effettuata utilizzando due approcci fondamentalmente diversi: virtualizzazione completa e paravirtualizzazione; ·
  • supporto per ambienti informatici omogenei, tipico dell'hosting di applicazioni da parte dei fornitori di servizi. Naturalmente, qui puoi utilizzare l'opzione delle macchine virtuali, ma è molto più efficace creare contenitori isolati basati su un unico kernel del sistema operativo.

La fase di vita successiva delle tecnologie di virtualizzazione x86 è iniziata nel 2004-2006. ed è stato associato all'inizio del loro utilizzo di massa nei sistemi aziendali. Di conseguenza, se prima gli sviluppatori si occupavano principalmente della creazione di tecnologie per l'esecuzione di ambienti virtuali, ora iniziano ad emergere i compiti di gestione di queste soluzioni e della loro integrazione nell'infrastruttura IT complessiva dell'azienda. Allo stesso tempo, si è verificato un notevole aumento della domanda da parte degli utenti personali (ma se negli anni '90 si trattava di sviluppatori e tester, ora parliamo di utenti finali, sia professionali che domestici).

Per riassumere quanto sopra, in generale, possiamo evidenziare i seguenti principali scenari di utilizzo delle tecnologie di virtualizzazione da parte dei clienti: ·

  • sviluppo e test di software; ·
  • modellazione del funzionamento di sistemi reali su stand di ricerca; ·
  • consolidamento dei server al fine di aumentare l'efficienza nell'utilizzo delle apparecchiature; ·
  • consolidamento dei server per risolvere i problemi di supporto delle applicazioni legacy; ·
  • dimostrazione e studio di nuovi software; ·
  • implementazione e aggiornamento di software applicativo nel contesto dei sistemi informativi esistenti; ·
  • lavoro degli utenti finali (prevalentemente domestici) su PC con ambienti operativi eterogenei.

Opzioni di virtualizzazione del software di base

Abbiamo già detto in precedenza che i problemi legati allo sviluppo di tecnologie di virtualizzazione sono in gran parte legati al superamento delle caratteristiche ereditate dell'architettura software e hardware x86. E ci sono diversi metodi di base per questo.

Virtualizzazione completa (virtualizzazione completa, nativa). Vengono utilizzate istanze non modificate di sistemi operativi guest e per supportare il funzionamento di questi sistemi operativi, viene utilizzato un livello comune di emulazione della loro esecuzione sopra il sistema operativo host, che è un normale sistema operativo (Fig. 1). Questa tecnologia viene utilizzata, in particolare, in VMware Workstation, VMware Server (ex GSX Server, Parallels Desktop, Parallels Server, MS Virtual PC, MS Virtual Server, Virtual Iron. I vantaggi di questo approccio includono la relativa facilità di implementazione, versatilità e affidabilità della soluzione, tutte le funzioni di gestione vengono svolte dal sistema operativo host.Svantaggi: elevati costi generali aggiuntivi per le risorse hardware utilizzate, mancanza di considerazione delle caratteristiche del sistema operativo guest, meno flessibilità nell'uso dell'hardware del necessario.

Paravirtualizzazione. Il kernel del sistema operativo guest viene modificato in modo tale da includere un nuovo set di API, attraverso le quali può funzionare direttamente con l'hardware senza entrare in conflitto con altre macchine virtuali (VM; Fig. 2). In questo caso, non è necessario utilizzare un sistema operativo completo come software host, le cui funzioni in questo caso vengono eseguite da un sistema speciale chiamato hypervisor. È questa opzione che oggi è la direzione più rilevante nello sviluppo delle tecnologie di virtualizzazione dei server e viene utilizzata in VMware ESX Server, Xen (e soluzioni di altri fornitori basate su questa tecnologia), Microsoft Hyper-V. I vantaggi di questa tecnologia sono che non è necessario un sistema operativo host: le macchine virtuali vengono installate virtualmente su bare metal e le risorse hardware vengono utilizzate in modo efficiente. Gli svantaggi sono la complessità dell’implementazione dell’approccio e la necessità di creare un hypervisor del sistema operativo specializzato.

Virtualizzazione a livello del kernel del sistema operativo (virtualizzazione a livello di sistema operativo). Questa opzione prevede l'utilizzo di un singolo kernel del sistema operativo host per creare ambienti operativi paralleli indipendenti (Fig. 3). Per il software guest viene creato solo il proprio ambiente di rete e hardware. Questa opzione viene utilizzata in Virtuozzo (per Linux e Windows), OpenVZ (una versione gratuita di Virtuozzo) e Solaris Containers. Vantaggi: alta efficienza nell'uso delle risorse hardware, basso sovraccarico tecnico, eccellente gestibilità, riduzione al minimo dei costi di acquisto delle licenze. Svantaggi: implementazione solo di ambienti informatici omogenei.

La virtualizzazione delle applicazioni implica l'utilizzo di un modello di forte isolamento dei programmi applicativi con interazione controllata con il sistema operativo, in cui ogni istanza dell'applicazione e tutti i suoi componenti principali sono virtualizzati: file (compresi quelli di sistema), registro, font, file INI, oggetti COM , servizi (Fig. 4 ). L'applicazione viene eseguita senza la procedura di installazione nel senso tradizionale e può essere avviata direttamente da un supporto esterno (ad esempio, da schede flash o da cartelle di rete). Dal punto di vista del reparto IT, questo approccio presenta evidenti vantaggi: accelera l'implementazione e la gestione dei sistemi desktop, riducendo al minimo non solo i conflitti tra le applicazioni, ma anche la necessità di test di compatibilità delle applicazioni. Infatti, questa particolare opzione di virtualizzazione viene utilizzata in Sun Java Virtual Machine, Microsoft Application Virtualization (precedentemente chiamata Softgrid), Thinstall (diventato parte di VMware all'inizio del 2008), Symantec/Altiris.

Domande sulla scelta di una soluzione di virtualizzazione

Dire: “il prodotto A è una soluzione per la virtualizzazione del software” non è affatto sufficiente per comprendere le reali capacità di “A”. Per fare ciò, è necessario dare uno sguardo più da vicino alle varie caratteristiche dei prodotti offerti.

Il primo riguarda il supporto di vari sistemi operativi come sistemi host e guest, nonché la capacità di eseguire applicazioni in ambienti virtuali. Quando sceglie un prodotto di virtualizzazione, il cliente deve tenere presente anche un'ampia gamma di caratteristiche tecniche: il livello di perdita di prestazioni dell'applicazione come risultato della comparsa di un nuovo livello operativo, la necessità di risorse informatiche aggiuntive per far funzionare il meccanismo di virtualizzazione, e la gamma di periferiche supportate.

Oltre alla creazione di meccanismi per l'esecuzione di ambienti virtuali, oggi vengono alla ribalta compiti di gestione dei sistemi: conversione di ambienti fisici in virtuali e viceversa, ripristino di un sistema in caso di guasto, trasferimento di ambienti virtuali da un computer a un altro, distribuzione e amministrazione software, garantire la sicurezza, ecc.

Importanti infine sono gli indicatori di costo dell’infrastruttura di virtualizzazione utilizzata. Va tenuto presente che qui la cosa principale nella struttura dei costi potrebbe non essere tanto il prezzo degli stessi strumenti di virtualizzazione, ma la possibilità di risparmiare sull'acquisto di licenze per sistemi operativi di base o applicazioni aziendali.

Principali attori nel mercato della virtualizzazione x86

Il mercato degli strumenti di virtualizzazione ha iniziato a prendere forma meno di dieci anni fa e oggi ha acquisito una forma abbastanza definita.

Creata nel 1998, VMware è uno dei pionieri nell'uso delle tecnologie di virtualizzazione per computer x86 e oggi occupa una posizione di leader in questo mercato (secondo alcune stime, la sua quota è del 70-80%). Dal 2004 è una filiale della ECM Corporation, ma opera in modo indipendente sul mercato con il proprio marchio. Secondo EMC, la forza lavoro di VMware è cresciuta durante questo periodo da 300 a 3.000 persone e le vendite sono raddoppiate ogni anno. Secondo le informazioni ufficiali, il reddito annuo dell'azienda (dalla vendita di prodotti di virtualizzazione e servizi correlati) si avvicina a 1,5 miliardi di dollari e questi dati riflettono bene l'aumento generale della domanda del mercato per gli strumenti di virtualizzazione.

Oggi WMware offre una piattaforma di virtualizzazione completa di terza generazione, VMware Virtual Infrastructure 3, che include strumenti sia per il singolo PC che per il data center. Il componente chiave di questo pacchetto software è l'hypervisor VMware ESX Server. Le aziende possono anche trarre vantaggio dal prodotto gratuito VMware Virtual Server, disponibile per progetti pilota.

Parallels è il nuovo nome (da gennaio 2008) di SWsoft, che è anche un veterano del mercato della tecnologia di virtualizzazione. Il suo prodotto chiave è Parallels Virtuozzo Containers, una soluzione di virtualizzazione a livello di sistema operativo che consente di eseguire più contenitori isolati (server virtuali) su un singolo server Windows o Linux. Per automatizzare i processi aziendali dei provider di hosting, viene offerto lo strumento Parallels Plesk Control Panel. Negli ultimi anni, l'azienda ha sviluppato attivamente strumenti di virtualizzazione desktop: Parallels Workstation (per Windows e Linux) e Parallels Desktop per Mac (per Mac OS su computer x86). Nel 2008 ha annunciato il rilascio di un nuovo prodotto: Parallels Server, che supporta il meccanismo server di macchine virtuali che utilizzano diversi sistemi operativi (Windows, Linux, Mac OS).

Microsoft è entrata nel mercato della virtualizzazione nel 2003 con l'acquisizione di Connectix, rilasciando il suo primo prodotto, Virtual PC, per PC desktop. Da allora ha costantemente ampliato la gamma di offerte in questo settore e oggi ha quasi completato la realizzazione di una piattaforma di virtualizzazione, che comprende i seguenti componenti. ·

  • Virtualizzazione dei server. Qui vengono offerti due diversi approcci tecnologici: l'utilizzo di Microsoft Virtual Server 2005 e la nuova soluzione Hyper-V Server (attualmente in versione beta). ·
  • Virtualizzazione per PC. Eseguito utilizzando il prodotto gratuito Microsoft Vitrual PC 2007. ·
  • Virtualizzazione delle applicazioni. Per tali compiti viene proposto il sistema Microsoft SoftGrid Application Virtualization (precedentemente chiamato SoftGrid). ·
  • Virtualizzazione delle presentazioni. Viene implementato utilizzando i Servizi terminal di Microsoft Windows Server e in generale è una modalità di accesso al terminale nota da tempo. ·
  • Gestione integrata di sistemi virtuali. System Center Virtual Machine Manager, rilasciato alla fine dello scorso anno, svolge un ruolo chiave nella risoluzione di questi problemi.

Sun Microsystems offre un insieme di tecnologie a più livelli: sistema operativo tradizionale, gestione delle risorse, virtualizzazione del sistema operativo, macchine virtuali e partizioni rigide. Questa sequenza si basa sul principio di aumentare il livello di isolamento dell'applicazione (ma allo stesso tempo ridurre la flessibilità della soluzione). Tutte le tecnologie di virtualizzazione Sun sono implementate nel sistema operativo Solaris. In termini hardware, il supporto per l'architettura x64 è ovunque, sebbene i sistemi basati su UltraSPARC siano inizialmente più adatti a queste tecnologie. Altri sistemi operativi, inclusi Windows e Linux, possono essere utilizzati come macchine virtuali.

Citrix Systems Corporation è un leader riconosciuto nelle infrastrutture di accesso remoto alle applicazioni. Ha seriamente rafforzato la sua posizione nel campo delle tecnologie di virtualizzazione acquistando XenSource, lo sviluppatore di Xen, una delle principali tecnologie di virtualizzazione del sistema operativo, nel 2007 per 500 milioni di dollari. Poco prima di questo accordo, XenSource ha introdotto una nuova versione del suo prodotto di punta XenEnterprise basato sul kernel Xen 4. L'acquisizione ha causato una certa confusione nel settore IT, poiché Xen è un progetto open source e le sue tecnologie sono alla base di prodotti commerciali di fornitori come , Sun, Red Hat e Novell. C'è ancora qualche incertezza sulla posizione di Citrix nella futura promozione di Xen, anche in termini di marketing. Il rilascio del primo prodotto dell'azienda basato sulla tecnologia Xen, Citrix XenDesktop (per la virtualizzazione dei PC), è previsto per la prima metà del 2008. Si prevede poi l'introduzione di una versione aggiornata di XenServer.

Nel novembre 2007, Oracle ha annunciato il suo ingresso nel mercato della virtualizzazione, introducendo il software chiamato Oracle VM per la virtualizzazione delle applicazioni server di questa società e di altri produttori. La nuova soluzione include un componente software server open source e una console di gestione integrata basata su browser per la creazione e la gestione di pool virtuali di server eseguiti su sistemi basati su architetture x86 e x86-64. Gli esperti hanno interpretato questo come una riluttanza di Oracle a supportare gli utenti che utilizzano i suoi prodotti in ambienti virtuali di altri produttori. È noto che la soluzione Oracle VM è implementata sulla base dell'hypervisor Xen. L'unicità di questa mossa di Oracle sta nel fatto che sembra essere la prima volta nella storia della virtualizzazione dei computer che la tecnologia è effettivamente adattata non all'ambiente operativo, ma ad applicazioni specifiche.

Il mercato della virtualizzazione visto da IDC

Il mercato della virtualizzazione dell'architettura x86 è in una fase di rapido sviluppo e la sua struttura non è stata ancora stabilita. Ciò complica la valutazione dei suoi indicatori assoluti e l'analisi comparativa dei prodotti qui presentati. Questa tesi è confermata dal rapporto IDC “Enterprise Virtualization Software: Customer Needs and Strategies” pubblicato nel novembre dello scorso anno. Di grande interesse in questo documento è l'opzione per strutturare il software di virtualizzazione dei server, in cui IDC identifica quattro componenti principali (Fig. 5).

Piattaforma di virtualizzazione. Si basa su un hypervisor, nonché su elementi di gestione delle risorse di base e un'interfaccia di programmazione dell'applicazione (API). Le caratteristiche principali includono il numero di socket e il numero di processori supportati da una macchina virtuale, il numero di guest disponibili con una licenza e la gamma di sistemi operativi supportati.

Gestione delle macchine virtuali. Include strumenti per la gestione del software host e dei server virtuali. Oggi, ecco le differenze più evidenti nelle offerte dei fornitori, sia nella composizione delle funzioni che nella scalabilità. Ma IDC è fiducioso che le capacità degli strumenti dei principali fornitori si livelleranno rapidamente e che i server fisici e virtuali saranno gestiti attraverso un'unica interfaccia.

Infrastruttura della macchina virtuale. Una vasta gamma di strumenti aggiuntivi che eseguono compiti come la migrazione del software, il riavvio automatico, il bilanciamento del carico delle macchine virtuali, ecc. Secondo IDC, sono le capacità di questo software che influenzeranno in modo decisivo la scelta dei fornitori da parte dei clienti, ed è è a livello di questi strumenti che la battaglia sarà combattuta tra i venditori.

Soluzioni di virtualizzazione. Un insieme di prodotti che consentono di collegare le tecnologie core sopra menzionate a specifiche tipologie di applicazioni e processi aziendali.

In termini di analisi generale della situazione del mercato, IDC identifica tre gruppi di partecipanti. La prima divisione è tra coloro che virtualizzano al livello superiore del sistema operativo (SWsoft e Sun) e al livello inferiore del sistema operativo (VMware, XenSource, Virtual Iron, Red Hat, Microsoft, Novell). La prima opzione consente di creare soluzioni più efficienti in termini di prestazioni e costi di risorse aggiuntive, ma implementando solo ambienti informatici omogenei. Il secondo consente di eseguire più sistemi operativi di tipo diverso su un computer. All'interno del secondo gruppo, IDC traccia un'altra linea che separa i fornitori di prodotti di virtualizzazione standalone (VMware, XenSource, Virtual Iron) e i produttori di sistemi operativi che includono strumenti di virtualizzazione (Microsoft, Red Hat, Novell).

Dal nostro punto di vista, la strutturazione del mercato proposta da IDC non è molto accurata. In primo luogo, per qualche motivo IDC non evidenzia la presenza di due tipi fondamentalmente diversi di macchine virtuali: che utilizzano un sistema operativo host (VMware, Virtual Iron, Microsoft) e un hypervisor (VMware, XenSource, Red Hat, Microsoft, Novell). In secondo luogo, se parliamo di hypervisor, è utile distinguere tra chi utilizza le proprie tecnologie core (VMware, XenSource, Virtual Iron, Microsoft) e chi concede in licenza ad altri (Red Hat, Novell). E infine, va detto che SWsoft e Sun hanno nel loro arsenale non solo tecnologie di virtualizzazione a livello di sistema operativo, ma anche strumenti per supportare le macchine virtuali.

Le tecnologie dell'informazione hanno portato molte cose utili e interessanti nella vita della società moderna. Ogni giorno persone creative e di talento inventano sempre più nuove applicazioni per computer come strumenti efficaci per la produzione, l'intrattenimento e la collaborazione. Molti diversi software e hardware, tecnologie e servizi ci consentono di migliorare la comodità e la velocità di lavorare ogni giorno con le informazioni. Sta diventando sempre più difficile individuare le tecnologie veramente utili dal flusso di tecnologie che ci cadono addosso e imparare a usarle con il massimo beneficio. Questo articolo parlerà di un'altra tecnologia incredibilmente promettente e veramente efficace che sta rapidamente entrando nel mondo dei computer: la tecnologia di virtualizzazione.

In senso lato, il concetto di virtualizzazione è il nascondere la reale implementazione di un processo o di un oggetto dalla sua vera rappresentazione per chi lo utilizza. Il prodotto della virtualizzazione è qualcosa di comodo da usare, infatti, avendo una struttura più complessa o completamente diversa, diversa da quella che si percepisce quando si lavora con l'oggetto. In altre parole, c’è una separazione tra rappresentazione e attuazione di qualcosa. Nella tecnologia informatica, il termine “virtualizzazione” si riferisce solitamente all’astrazione delle risorse informatiche e alla fornitura all’utente di un sistema che “incapsula” (nasconde) la propria implementazione. In poche parole, l'utente lavora con una rappresentazione conveniente dell'oggetto e non gli importa come è strutturato l'oggetto nella realtà.

Il termine “virtualizzazione” stesso nella tecnologia informatica è apparso negli anni Sessanta del secolo scorso insieme al termine “macchina virtuale”, indicando un prodotto di virtualizzazione di una piattaforma software e hardware. A quel tempo, la virtualizzazione era più una scoperta tecnica interessante che una tecnologia promettente. Gli sviluppi nel campo della virtualizzazione negli anni Sessanta e Settanta furono portati avanti solo da IBM. Con l'avvento del sistema di paging sperimentale sul computer IBM M44/44X, fu utilizzato per la prima volta il termine "macchina virtuale", in sostituzione del precedente termine "pseudo macchina". Quindi, sui mainframe della serie IBM System 360/370, le macchine virtuali potrebbero essere utilizzate per preservare le versioni precedenti dei sistemi operativi. Fino alla fine degli anni Novanta nessuno, tranne IBM, osava utilizzare seriamente questa tecnologia originale. Tuttavia, negli anni Novanta, le prospettive dell'approccio alla virtualizzazione sono diventate evidenti: con la crescita della capacità hardware, sia personal computer che soluzioni server, sarà presto possibile utilizzare più macchine virtuali su un'unica piattaforma fisica.

Nel 1997, Connectix ha rilasciato la prima versione di Virtual PC per la piattaforma Macintosh e nel 1998 VMware ha brevettato le sue tecniche di virtualizzazione. Connectix è stata successivamente acquisita da Microsoft e VMware da EMC, ed entrambe le società sono ora i due principali potenziali concorrenti nel futuro mercato della tecnologia di virtualizzazione. Potenziale: perché ora VMware è il leader indiscusso in questo mercato, ma Microsoft, come sempre, ha un asso nella manica.

Sin dalla loro nascita, i termini “virtualizzazione” e “macchina virtuale” hanno acquisito molti significati diversi e vengono utilizzati in contesti diversi. Proviamo a capire cos'è veramente la virtualizzazione.

Il concetto di virtualizzazione può essere suddiviso in due categorie fondamentalmente diverse:

  • virtualizzazione della piattaforma
    Il prodotto di questo tipo di virtualizzazione sono le macchine virtuali: determinate astrazioni software che funzionano sulla piattaforma di sistemi hardware e software reali.
  • virtualizzazione delle risorse
    Questo tipo di virtualizzazione mira a combinare o semplificare la presentazione delle risorse hardware per l'utente e ottenere determinate astrazioni utente di apparecchiature, spazi dei nomi, reti, ecc.

Virtualizzazione della piattaforma

La virtualizzazione della piattaforma si riferisce alla creazione di sistemi software basati su sistemi hardware e software esistenti, dipendenti o indipendenti da essi. Il sistema che fornisce le risorse hardware e software è chiamato host, mentre i sistemi che simula sono chiamati guest. Affinché i sistemi ospiti funzionino stabilmente sulla piattaforma del sistema host, è necessario che il software e l'hardware dell'host siano sufficientemente affidabili e forniscano l'insieme necessario di interfacce per accedere alle sue risorse. Esistono diversi tipi di virtualizzazione della piattaforma, ognuno dei quali ha il proprio approccio al concetto di “virtualizzazione”. I tipi di virtualizzazione della piattaforma dipendono dalla completezza della simulazione dell'hardware. Non c'è ancora consenso sui termini della virtualizzazione, quindi alcuni dei tipi di virtualizzazione elencati di seguito potrebbero differire da quelli forniti da altre fonti.

Tipi di virtualizzazione della piattaforma:

  1. Emulazione completa (simulazione).

    Con questo tipo di virtualizzazione la macchina virtuale virtualizza completamente tutto l'hardware mantenendo inalterato il sistema operativo guest. Questo approccio consente di emulare varie architetture hardware. Ad esempio, è possibile eseguire macchine virtuali con guest per processori x86 su piattaforme con altre architetture (ad esempio, su server Sun RISC). Per molto tempo questo tipo di virtualizzazione è stato utilizzato per sviluppare software per nuovi processori ancor prima che fossero fisicamente disponibili. Tali emulatori vengono utilizzati anche per il debug di basso livello dei sistemi operativi. Lo svantaggio principale di questo approccio è che l'hardware emulato rallenta in modo molto, molto significativo le prestazioni del sistema ospite, il che rende molto scomodo lavorare con esso, quindi, ad eccezione dello sviluppo del software di sistema e degli scopi didattici, questo approccio è usato raramente.

    Esempi di prodotti per la creazione di emulatori: Bochs, PearPC, QEMU (senza accelerazione), Hercules Emulator.

  2. Emulazione parziale (virtualizzazione nativa).

    In questo caso, la macchina virtuale virtualizza solo la quantità necessaria di hardware in modo da poter essere eseguita in modo isolato. Questo approccio consente di eseguire sistemi operativi guest progettati solo per la stessa architettura dell'host. In questo modo, è possibile eseguire più istanze guest contemporaneamente. Questo tipo di virtualizzazione può aumentare significativamente le prestazioni dei sistemi guest rispetto all'emulazione completa ed è ampiamente utilizzato oggi. Inoltre, per aumentare le prestazioni, le piattaforme di virtualizzazione che utilizzano questo approccio utilizzano uno speciale “livello” tra il sistema operativo guest e l’hardware (hypervisor), consentendo al sistema guest di accedere direttamente alle risorse hardware. L'hypervisor, chiamato anche Virtual Machine Monitor, è uno dei concetti chiave nel mondo della virtualizzazione. L'utilizzo di un hypervisor, che costituisce un collegamento tra i sistemi ospiti e l'hardware, aumenta notevolmente le prestazioni della piattaforma, avvicinandola alle prestazioni della piattaforma fisica.

    Gli svantaggi di questo tipo di virtualizzazione includono la dipendenza delle macchine virtuali dall'architettura della piattaforma hardware.

    Esempi di prodotti di virtualizzazione nativi: VMware Workstation, VMware Server, VMware ESX Server, Virtual Iron, Virtual PC, VirtualBox, Parallels Desktop e altri.

  3. Virtualizzazione parziale, così come la “virtualizzazione dello spazio degli indirizzi”.

    Con questo approccio la macchina virtuale simula diverse istanze dell'ambiente hardware (ma non tutte), in particolare lo spazio degli indirizzi. Questo tipo di virtualizzazione consente di condividere risorse e isolare processi, ma non consente di separare istanze di sistemi operativi guest. A rigor di termini, con questo tipo di virtualizzazione, le macchine virtuali non vengono create dall'utente, ma alcuni processi vengono isolati a livello di sistema operativo. Attualmente molti dei sistemi operativi più noti utilizzano questo approccio. Un esempio è l'uso di UML (User-mode Linux), in cui il kernel “guest” viene eseguito nello spazio utente del kernel di base (nel suo contesto).

  4. Paravirtualizzazione.

    Quando si utilizza la paravirtualizzazione, non è necessario simulare l'hardware, ma invece (o in aggiunta a questo) viene utilizzata una speciale interfaccia di programmazione dell'applicazione (API) per interagire con il sistema operativo guest. Questo approccio richiede la modifica del codice del sistema ospite, che, dal punto di vista della comunità Open Source, non è così critica. Anche i sistemi per la paravirtualizzazione hanno il proprio hypervisor e le chiamate API al sistema ospite sono chiamate “hypercall”. Molti dubitano delle prospettive di questo approccio alla virtualizzazione, poiché al momento tutte le decisioni dei produttori di hardware in merito alla virtualizzazione sono rivolte a sistemi con virtualizzazione nativa e il supporto della paravirtualizzazione deve essere cercato dai produttori di sistemi operativi che hanno poca fiducia nelle capacità dello strumento. loro offrono. Attualmente, i fornitori di paravirtualizzazione includono XenSource e Virtual Iron, che affermano che la paravirtualizzazione è più veloce.

  5. Virtualizzazione a livello di sistema operativo.

    L'essenza di questo tipo di virtualizzazione è la virtualizzazione di un server fisico a livello del sistema operativo al fine di creare più server virtualizzati sicuri su uno fisico. Il sistema ospite, in questo caso, condivide l'utilizzo di un kernel del sistema operativo host con altri sistemi ospite. Una macchina virtuale è un ambiente per le applicazioni eseguite in modo isolato. Questo tipo di virtualizzazione viene utilizzato durante l'organizzazione dei sistemi di hosting, quando è necessario supportare più server client virtuali all'interno di un'istanza del kernel.

    Esempi di virtualizzazione a livello di sistema operativo: Linux-VServer, Virtuozzo, OpenVZ, Solaris Containers e FreeBSD Jails.

  6. Virtualizzazione del livello applicativo.

    Questo tipo di virtualizzazione non è come tutte le altre: se nei casi precedenti si creano ambienti virtuali o macchine virtuali che servono per isolare le applicazioni, allora in questo caso l'applicazione stessa viene posta in un contenitore con gli elementi necessari al suo funzionamento: registro file, file di configurazione, oggetti utente e di sistema. Il risultato è un'applicazione che non richiede installazione su una piattaforma simile. Quando un'applicazione di questo tipo viene trasferita su un'altra macchina e avviata, l'ambiente virtuale creato per il programma risolve i conflitti tra questo e il sistema operativo, nonché altre applicazioni. Questo metodo di virtualizzazione è simile al comportamento degli interpreti di diversi linguaggi di programmazione (non per niente anche l'interprete, la Java Virtual Machine (JVM), rientra in questa categoria).

    Esempi di questo approccio sono: Thinstall, Altiris, Trigence, Softricity.

Virtualizzazione delle risorse

Nel descrivere la virtualizzazione della piattaforma, abbiamo considerato il concetto di virtualizzazione in senso stretto, applicandolo principalmente al processo di creazione di macchine virtuali. Tuttavia, se consideriamo la virtualizzazione in senso ampio, possiamo arrivare al concetto di virtualizzazione delle risorse, che generalizza gli approcci alla creazione di sistemi virtuali. La virtualizzazione delle risorse consente di concentrare, astrarre e semplificare la gestione di gruppi di risorse come reti, archivi dati e spazi dei nomi.

Tipi di virtualizzazione delle risorse:

  1. Combinazione, aggregazione e concentrazione dei componenti.

    Questo tipo di virtualizzazione delle risorse si riferisce all'organizzazione di diversi oggetti fisici o logici in pool di risorse (gruppi) che forniscono comode interfacce all'utente. Esempi di questo tipo di virtualizzazione:

    • sistemi multiprocessore, che ci appaiono come un unico potente sistema,
    • Array RAID e strumenti di gestione dei volumi che combinano più dischi fisici in un unico disco logico,
    • virtualizzazione dei sistemi storage utilizzati nella realizzazione di reti storage SAN (Storage Area Network),
    • reti private virtuali (VPN) e traduzione degli indirizzi di rete (NAT), che consentono la creazione di spazi virtuali di indirizzi e nomi di rete.
  2. Cluster di computer e calcolo distribuito (grid computing).

    Questo tipo di virtualizzazione include tecniche utilizzate per combinare molti singoli computer in sistemi globali (metacomputer) che risolvono congiuntamente un problema comune.

  3. Partizionamento.

    Quando si dividono le risorse nel processo di virtualizzazione, qualsiasi risorsa di grandi dimensioni viene divisa in più oggetti dello stesso tipo convenienti da utilizzare. Nelle reti di archiviazione, questo è chiamato zonizzazione delle risorse.

  4. Incapsulamento.

    Molte persone conoscono questa parola come un oggetto che nasconde dentro di sé la sua realizzazione. In relazione alla virtualizzazione, possiamo dire che questo è il processo di creazione di un sistema che fornisce all'utente un'interfaccia conveniente per lavorarci e nasconde i dettagli della complessità della sua implementazione. Ad esempio, l'utilizzo della cache da parte della CPU per velocizzare i calcoli non si riflette sulle sue interfacce esterne.

La virtualizzazione delle risorse, a differenza della virtualizzazione della piattaforma, ha un significato più ampio e vago e rappresenta molti approcci diversi volti a migliorare l'esperienza dell'utente dei sistemi nel loro complesso. Pertanto, faremo inoltre affidamento principalmente sul concetto di virtualizzazione della piattaforma, poiché le tecnologie associate a questo concetto sono attualmente le più dinamiche ed efficaci.

Dove viene utilizzata la virtualizzazione?

La virtualizzazione del sistema operativo ha fatto grandi progressi negli ultimi tre o quattro anni, sia dal punto di vista tecnologico che dal punto di vista del marketing. Da un lato, è diventato molto più semplice utilizzare i prodotti di virtualizzazione, sono diventati più affidabili e funzionali e, dall'altro, sono state trovate molte nuove applicazioni interessanti per le macchine virtuali. L’ambito di applicazione della virtualizzazione può essere definito come “il luogo dove ci sono i computer”, ma al momento si possono identificare le seguenti opzioni per l’utilizzo dei prodotti di virtualizzazione:

  1. Consolidamento dei server.

    Al momento, le applicazioni in esecuzione sui server dell'infrastruttura IT delle aziende creano un carico minimo sulle risorse hardware del server (in media dal 5 al 15%). La virtualizzazione consente di migrare da questi server fisici a quelli virtuali e posizionarli tutti su un server fisico, aumentandone il carico al 60-80% e aumentando così l'utilizzo delle apparecchiature, il che consente di risparmiare significativamente su attrezzature, manutenzione ed elettricità.

  2. Sviluppo e test di applicazioni.

    Molti prodotti di virtualizzazione consentono di eseguire più sistemi operativi diversi contemporaneamente, consentendo agli sviluppatori e ai tester del software di testare le proprie applicazioni su piattaforme e configurazioni diverse. Inoltre, comodi strumenti per creare "istantanee" dello stato attuale del sistema con un clic del mouse e lo stesso semplice ripristino da questo stato consentono di creare ambienti di test per varie configurazioni, aumentando significativamente la velocità e la qualità dello sviluppo.

  3. Uso aziendale.

    Questo caso d'uso per le macchine virtuali è il più ampio e creativo. Comprende tutto ciò che può essere necessario nella gestione quotidiana delle risorse IT in azienda. Ad esempio, sulla base delle macchine virtuali, è possibile creare facilmente copie di backup di workstation e server (semplicemente copiando una cartella), costruire sistemi che forniscano tempi di ripristino minimi dopo guasti, ecc. Questo gruppo di casi d'uso comprende tutte quelle soluzioni aziendali che utilizzano i vantaggi fondamentali delle macchine virtuali.

  4. Utilizzo di postazioni virtuali.

    Con l'avvento dell'era delle macchine virtuali, sarà inutile realizzarsi una postazione di lavoro con il suo collegamento all'hardware. Adesso, una volta creata una macchina virtuale con il tuo ambiente lavorativo o domestico, potrai utilizzarla su qualsiasi altro computer. È inoltre possibile utilizzare modelli di macchine virtuali già pronti (Virtual Appliance) che risolvono un'attività specifica (ad esempio un server applicazioni). Il concetto di utilizzo di postazioni di lavoro virtuali in questo modo può essere implementato sulla base di server hosting su cui eseguire desktop utente in roaming (qualcosa di simile ai mainframe). In futuro, l'utente potrà portare con sé questi desktop senza sincronizzare i dati con il laptop. Questo caso d'uso offre inoltre la possibilità di creare workstation utente sicure che possono essere utilizzate, ad esempio, per dimostrare le funzionalità del software a un cliente. È possibile limitare il tempo in cui è possibile utilizzare una macchina virtuale e, trascorso questo tempo, la macchina virtuale non verrà più avviata. Questo caso d’uso ha un grande potenziale.

Tutti i casi d'uso elencati per le macchine virtuali sono in realtà solo aree della loro applicazione al momento; col tempo, sicuramente, appariranno nuovi modi per far funzionare le macchine virtuali in vari settori IT. Ma vediamo ora come stanno le cose con la virtualizzazione.

Come funziona la virtualizzazione oggi

Oggi, i progetti di virtualizzazione dell'infrastruttura IT vengono implementati attivamente da molte aziende leader di integrazione di sistemi che sono partner autorizzati dei fornitori di sistemi di virtualizzazione. Nel processo di virtualizzazione dell'infrastruttura IT, viene creata un'infrastruttura virtuale: un insieme di sistemi basati su macchine virtuali che garantiscono il funzionamento dell'intera infrastruttura IT, che dispone di molte nuove funzionalità pur mantenendo il modello di attività esistente delle risorse IT. I fornitori di varie piattaforme di virtualizzazione sono pronti a fornire informazioni sui progetti di successo per l'implementazione dell'infrastruttura virtuale in grandi banche, aziende industriali, ospedali e istituti scolastici. I numerosi vantaggi della virtualizzazione del sistema operativo consentono alle aziende di risparmiare su manutenzione, personale, hardware, continuità aziendale, replica dei dati e ripristino di emergenza. Inoltre, il mercato della virtualizzazione comincia a riempirsi di potenti strumenti per la gestione, la migrazione e il supporto delle infrastrutture virtuali, consentendo di sfruttare al massimo i vantaggi della virtualizzazione. Diamo un'occhiata esattamente a come la virtualizzazione consente alle aziende che implementano l'infrastruttura virtuale di risparmiare denaro.

10 motivi per utilizzare le macchine virtuali

  1. Risparmi hardware con il consolidamento dei server.

    Si ottengono risparmi significativi sull'acquisto di hardware quando si posizionano più server di produzione virtuali su un server fisico. A seconda del fornitore della piattaforma di virtualizzazione, sono disponibili opzioni per il bilanciamento del carico di lavoro, il controllo delle risorse allocate, la migrazione tra host fisici e il backup. Tutto ciò comporta un reale risparmio sulla manutenzione, gestione e amministrazione dell'infrastruttura server.

  2. Capacità di supportare sistemi operativi precedenti per scopi di compatibilità.

    Quando viene rilasciata una nuova versione del sistema operativo, la vecchia versione può essere supportata su una macchina virtuale fino al completamento del test del nuovo sistema operativo. Al contrario, puoi “sollevare” un nuovo sistema operativo su una macchina virtuale e provarlo senza influire sul sistema principale.

  3. Capacità di isolare ambienti potenzialmente pericolosi.

    Se un'applicazione o un componente solleva dubbi sulla sua affidabilità e sicurezza, è possibile utilizzarlo in una macchina virtuale senza il rischio di danneggiare componenti vitali del sistema. Questo ambiente isolato è anche chiamato sandbox. Inoltre, è possibile creare macchine virtuali limitate da policy di sicurezza (ad esempio, la macchina smetterà di avviarsi dopo due settimane).

  4. Possibilità di creare le configurazioni hardware richieste.

    A volte è necessario utilizzare una determinata configurazione hardware (tempo del processore, quantità di RAM allocata e memoria del disco) quando si controllano le prestazioni delle applicazioni in determinate condizioni. È abbastanza difficile “guidare” una macchina fisica in tali condizioni senza una macchina virtuale. Nelle macchine virtuali bastano un paio di clic del mouse.

  5. Le macchine virtuali possono creare visualizzazioni di dispositivi che non possiedi.

    Ad esempio, molti sistemi di virtualizzazione consentono di creare dischi SCSI virtuali, processori multi-core virtuali, ecc. Ciò può essere utile per creare vari tipi di simulazioni.

  6. Più macchine virtuali possono essere eseguite contemporaneamente su un host, unite in una rete virtuale.

    Questa funzionalità offre possibilità illimitate per creare modelli di rete virtuale tra diversi sistemi su un computer fisico. Ciò è particolarmente necessario quando è necessario simulare un sistema distribuito composto da più macchine. Puoi anche creare diversi ambienti utente isolati (per lavoro, intrattenimento, navigazione in Internet), avviarli e passare dall'uno all'altro secondo necessità per eseguire determinate attività.

  7. Le macchine virtuali offrono eccellenti opportunità di apprendimento per i sistemi operativi.

    È possibile creare un repository di macchine virtuali pronte all'uso con diversi sistemi operativi guest ed eseguirle secondo necessità a fini di formazione. Possono essere sottoposti impunemente a tutti i tipi di esperimenti, poiché se il sistema è danneggiato, il ripristino dallo stato salvato richiederà un paio di minuti.

  8. Le macchine virtuali aumentano la mobilità.

    La cartella con la macchina virtuale può essere spostata su un altro computer e lì la macchina virtuale può essere avviata immediatamente. Non è necessario creare alcuna immagine per la migrazione e, inoltre, la macchina virtuale è disaccoppiata dall'hardware specifico.

  9. Le macchine virtuali possono essere organizzate in "pacchetti applicativi".

    È possibile creare un ambiente virtuale per un caso d'uso specifico (ad esempio, la macchina di un progettista, la macchina di un manager, ecc.), installandovi tutto il software richiesto e distribuendo i desktop secondo necessità.

  10. Le macchine virtuali sono più gestibili.

    L'utilizzo delle macchine virtuali migliora significativamente la gestibilità dei backup, degli snapshot delle macchine virtuali e del ripristino di emergenza.

Naturalmente i vantaggi delle macchine virtuali non finiscono qui, ma sono solo spunti di riflessione e di ricerca sulle loro capacità. Naturalmente, come ogni soluzione nuova e promettente, anche le macchine virtuali hanno i loro svantaggi:

  1. Impossibilità di emulare tutti i dispositivi.

    Al momento, tutti i principali dispositivi con piattaforma hardware sono supportati dai fornitori di sistemi di virtualizzazione, ma se utilizzi, ad esempio, controller o dispositivi che non sono supportati da loro, dovrai abbandonare la virtualizzazione di tale ambiente.

  2. La virtualizzazione richiede risorse hardware aggiuntive.

    Attualmente l'utilizzo di diverse tecniche di virtualizzazione ha permesso di avvicinare le prestazioni delle macchine virtuali a quelle reali, tuttavia, affinché un host fisico possa eseguire almeno un paio di macchine virtuali, è necessaria una quantità sufficiente di hardware per loro sono necessarie risorse.

  3. Alcune piattaforme di virtualizzazione richiedono hardware specifico.

    In particolare, la straordinaria piattaforma di VMware, ESX Server, sarebbe eccezionale se non avesse requisiti hardware rigorosi.

  4. Le buone piattaforme di virtualizzazione costano bene.

    A volte, il costo di distribuzione di un server virtuale è pari al costo di un altro server fisico; in determinate condizioni ciò potrebbe non essere pratico. Fortunatamente esistono molte soluzioni gratuite, ma sono rivolte principalmente agli utenti domestici e alle piccole imprese.

Nonostante le carenze elencate e completamente eliminabili, la virtualizzazione continua a guadagnare slancio e nel 2007 si prevede un'espansione significativa sia del mercato delle piattaforme di virtualizzazione che degli strumenti di gestione dell'infrastruttura virtuale. Negli ultimi anni l’interesse per la virtualizzazione è cresciuto notevolmente, come si può vedere dalle statistiche di Google Trends:

Statistiche sull'andamento della virtualizzazione

Tuttavia, a causa della complessità e dei costi elevati legati all’implementazione e alla manutenzione dell’infrastruttura virtuale, nonché alla difficoltà di valutare adeguatamente il ritorno sull’investimento, molti progetti di virtualizzazione falliscono. Secondo uno studio condotto da Computer Associates tra diverse aziende che hanno tentato la virtualizzazione, il 44% non ha potuto definire il risultato un successo. Questa circostanza frena molte aziende che pianificano progetti di virtualizzazione. Un altro problema è la mancanza di specialisti veramente competenti in questo campo.

Cosa riserva il futuro alla virtualizzazione?

Il 2006 è stato un anno chiave per le tecnologie di virtualizzazione: molti nuovi attori sono entrati in questo mercato, molti rilasci di piattaforme di virtualizzazione e strumenti di gestione, nonché un numero considerevole di accordi di partnership e alleanze conclusi, indicano che in futuro la tecnologia sarà molto, molto della domanda. Il mercato della virtualizzazione è nella fase finale della sua formazione. Molti produttori di hardware hanno annunciato il supporto per le tecnologie di virtualizzazione e questa è una sicura garanzia del successo di qualsiasi nuova tecnologia. La virtualizzazione è sempre più vicina alle persone: le interfacce per l'utilizzo delle macchine virtuali si semplificano, compaiono accordi sull'utilizzo di vari strumenti e tecniche, non ancora ufficialmente stabiliti, e la migrazione da una piattaforma virtuale all'altra viene semplificata. Naturalmente, la virtualizzazione occuperà la sua nicchia nell'elenco delle tecnologie e degli strumenti necessari durante la progettazione dell'infrastruttura IT delle imprese. Anche gli utenti regolari troveranno il loro utilizzo per le macchine virtuali. Con l'aumento delle prestazioni delle piattaforme hardware dei computer desktop, diventerà possibile supportare più ambienti utente su una macchina e passare da uno all'altro.

Anche i produttori di hardware non rimarranno statici: oltre alle tecniche di virtualizzazione dell’hardware esistenti, presto appariranno sistemi hardware che supporteranno nativamente la virtualizzazione e forniranno comode interfacce per il software in fase di sviluppo. Ciò ti consentirà di sviluppare rapidamente piattaforme di virtualizzazione affidabili ed efficienti. È possibile che qualsiasi sistema operativo installato venga immediatamente virtualizzato e uno speciale software di basso livello, supportato da funzioni hardware, passerà da un sistema operativo all'altro senza compromettere le prestazioni.

L'idea stessa inerente alle tecnologie di virtualizzazione apre ampie possibilità per il loro utilizzo. Dopotutto, alla fine, tutto è fatto per la comodità dell'utente e per semplificare l'uso delle cose a lui familiari. Se è possibile risparmiare in modo significativo su questo, il tempo lo dirà.

Domanda 56

Sistemi di virtualizzazione del sistema operativo. Concetti base, paravirtualizzazione, virtualizzazione hardware, hypervisor. Esempi di applicazione.

Virtualizzazione è una tecnologia che astrae i processi e la loro rappresentazione dalle risorse informatiche. Il concetto di virtualizzazione è tutt’altro che nuovo ed è stato introdotto negli anni ’60 aziendaIBM.

Si possono distinguere i seguenti tipi di virtualizzazione:

    Virtualizzazione dei server . La virtualizzazione del server prevede l'esecuzione di diversi server virtuali su un server fisico. Le macchine virtuali, o server, sono applicazioni in esecuzione su un sistema operativo host che emulano l'hardware fisico del server. Ogni macchina virtuale può avere un sistema operativo su cui è possibile installare applicazioni e servizi. I rappresentanti tipici sono i prodotti VMware vSphere E Microsoft Hyper-V.

    Virtualizzazione delle applicazioni . La virtualizzazione delle applicazioni implica l'emulazione delle risorse del sistema operativo (registro, file, ecc.). Questa tecnologia consente di utilizzare contemporaneamente più applicazioni incompatibili su un computer, o meglio sullo stesso sistema operativo. La virtualizzazione delle applicazioni viene implementata in base al prodotto Microsoft Application Virtualization (AppV). AppV consente agli utenti di eseguire la stessa applicazione preconfigurata o lo stesso gruppo di applicazioni dal server. In questo caso le applicazioni funzioneranno indipendentemente l'una dall'altra, senza apportare alcuna modifica al sistema operativo. Inoltre, tutto ciò avviene in modo trasparente per l'utente, come se stesse lavorando con una normale applicazione installata localmente.

    Visualizza la virtualizzazione . La virtualizzazione della vista implica l'emulazione dell'interfaccia utente. Quelli. l'utente vede l'applicazione e lavora con essa sul suo terminale, anche se in realtà l'applicazione è in esecuzione su un server remoto e all'utente viene trasmessa solo un'immagine dell'applicazione remota. A seconda della modalità operativa, l'utente può vedere il desktop remoto e l'applicazione in esecuzione su di esso oppure solo la finestra dell'applicazione stessa. Questo viene implementato sulla base di Microsoft Terminal Services e sulla base di soluzioni Citrix.

    Virtualizzazione a livello di sistema operativo . La virtualizzazione a livello di sistema operativo prevede l'isolamento dei servizi all'interno di una singola istanza del kernel del sistema operativo. Questo è implementato su Parallels (SWsoft) Virtuozzo ed è utilizzato più spesso dalle società di hosting.

Cosa può fare la virtualizzazione:

    Esegui più sistemi operativi contemporaneamente.

    Isolamento garantito dei sistemi operativi gli uni dagli altri.

    Possibilità di condivisione flessibile delle risorse tra macchine.

Vantaggi della virtualizzazione:

    Maggiore isolamento.

    Limitare uno o un gruppo di servizi strettamente associati alla propria macchina virtuale.

    Ridurre la probabilità di fallimenti dovuti all'influenza reciproca dei programmi.

    Sicurezza.

    Distribuzione dei compiti amministrativi: la possibilità di limitare i diritti di ciascun amministratore solo a quelli più necessari.

    Ridurre le potenziali conseguenze dannose dell'hacking di qualsiasi servizio.

    Distribuzione delle risorse: ogni macchina riceve tutte le risorse di cui ha bisogno, ma non di più.

    Prioritizzazione dei compiti.

    Allocazione della memoria su richiesta.

    Distribuzione flessibile del traffico di rete tra le macchine.

    Allocazione delle risorse disco.

    Disponibilità costante.

    È possibile eseguire la migrazione in tempo reale delle macchine.

    Aggiornamento agevole dei server critici.

    Migliorare la qualità dell’amministrazione.

    Capacità di eseguire test di regressione.

    Opportunità di sperimentazione ed esplorazione.

Principi e tipologie di virtualizzazione:

    Interpretazione e ricompilazione dinamica - quando si utilizza la ricompilazione dinamica, il programma di emulazione converte i frammenti del programma eseguibile in codice che può essere eseguito direttamente su un altro computer mentre è in esecuzione. Il ricompilatore ha meno compatibilità dell'interprete, ma è più veloce.

Esempi: Bochs, PearPC, QEMU, Microsoft VirtualPC per MAC.

    Paravirtualizzazione e porting - il kernel del sistema operativo guest è stato modificato in modo tale da includere un nuovo set di API, attraverso le quali può funzionare direttamente con l'hardware senza entrare in conflitto con altre macchine virtuali. In questo caso, non è necessario utilizzare un sistema operativo completo come software host, le cui funzioni in questo caso vengono eseguite da un sistema speciale chiamato hypervisor. Questo tipo di virtualizzazione è basata sull'hardware.

Hypervisor (O Monitoraggio della macchina virtuale ) - programma o un circuito hardware che fornisce o consente l'esecuzione simultanea e parallela di più o anche più sistemi operativi sullo stesso computer host. L'hypervisor fornisce inoltre l'isolamento dei sistemi operativi gli uni dagli altri, protezione e sicurezza, condivisione delle risorse tra diversi sistemi operativi in ​​esecuzione e gestione delle risorse.

L'hypervisor può anche (ma non è obbligato a) fornire ai sistemi operativi in ​​esecuzione sotto il suo controllo sullo stesso computer host i mezzi per comunicare e interagire tra loro (ad esempio, attraverso la condivisione di file o connessioni di rete) come se questi sistemi operativi fossero in esecuzione su diversi computer fisici.

Lo stesso hypervisor è in qualche modo un sistema operativo minimo (microkernel O nanonucleo ). Fornisce un servizio ai sistemi operativi in ​​esecuzione sotto il suo controllo. macchina virtuale, virtualizzando o emulando l'hardware reale (fisico) di una particolare macchina, e gestisce queste macchine virtuali, allocando e rilasciando risorse per loro. L'hypervisor consente di "accendere", riavviare e "spegnere" in modo indipendente qualsiasi macchina virtuale che esegue un particolare sistema operativo. Tuttavia, un sistema operativo in esecuzione su una macchina virtuale dotata di hypervisor può, ma non deve, "sapere" che è in esecuzione su una macchina virtuale e non su hardware reale.La parola “hypervisor” è apparsa in modo interessante: una volta, molto tempo fa, il sistema operativo si chiamava “supervisore”, e il software che era “sotto supervisione” si chiamava “hypervisor”.

Tipi di hypervisor:

    Autonomo hypervisor (Tipo 1)

Dispone di driver di dispositivo, modelli di driver e scheduler integrati ed è quindi indipendente dal sistema operativo sottostante. Poiché un hypervisor autonomo viene eseguito direttamente sull'hardware, è più produttivo.

Esempio:VMware ESX

    Basato sul sistema operativo di base (Tipo 2, V)

Questo è un componente che viene eseguito nello stesso anello con il kernel del sistema operativo principale (anello 0). Gli anelli di protezione sono un'architettura di sicurezza delle informazioni e tolleranza agli errori funzionale che implementa la separazione hardware dei livelli di privilegio del sistema e dell'utente.

Il codice guest può essere eseguito direttamente sul processore fisico, ma l'accesso ai dispositivi I/O del computer dal sistema operativo guest avviene tramite un secondo componente, il normale processo di monitoraggio a livello utente del sistema operativo host.

Esempi: Microsoft Virtual PC, VMware Workstation, QEMU, Parallels,VirtualBox .

    Ibrido (Tipo 1+)

Un hypervisor ibrido è composto da due parti: un hypervisor sottile che controlla il processore e la memoria, nonché un sistema operativo di servizio speciale che funziona sotto il suo controllo in un anello di livello inferiore. Attraverso il sistema operativo del servizio, i sistemi operativi guest ottengono l'accesso all'hardware fisico.

Esempi: Microsoft Virtual Server, Sun Logical Domains, Xen, Citrix XenServer, Microsoft Hyper-V

Paravirtualizzazione (Inglese)Paravirtualizzazione) - tecnica virtualizzazione, in cui gli ospiti sistema operativo sono preparati per l'esecuzione in un ambiente virtualizzato, per il quale il loro kernel è leggermente modificato. Il sistema operativo interagisce con il programma L'hypervisor che lo fornisce al guest API, anziché utilizzare direttamente risorse come la tabella delle pagine di memoria. Il codice relativo alla virtualizzazione è localizzato direttamente nel sistema operativo. La paravirtualizzazione richiede quindi che il sistema operativo guest venga modificato per l'hypervisor, e questo è uno svantaggio del metodo, poiché tale modifica è possibile solo se il sistema operativo guest è open source, che può essere modificato con una licenza. Ma la paravirtualizzazione offre prestazioni quasi simili a quelle di un sistema reale, non virtualizzato. Come nel caso della virtualizzazione completa, è possibile supportare contemporaneamente molti sistemi operativi diversi.

L'obiettivo della modifica dell'interfaccia è ridurre la percentuale del tempo di esecuzione del guest impiegato per eseguire operazioni che sono significativamente più difficili da eseguire in un ambiente virtuale rispetto a un ambiente non virtuale. La paravirtualizzazione fornisce file appositamente installati gestori di interruzioni per consentire agli ospiti e all'host di accettare e riconoscere queste attività che verrebbero altrimenti eseguite nel dominio virtuale (dove le prestazioni sono inferiori). Pertanto, una piattaforma paravirtualizzata di successo può consentire monitor della macchina virtuale (VMM) essere più semplice (scaricando le attività critiche dal dominio virtuale all'host del dominio) e/o ridurre il sovraccarico prestazionale complessivo dell'esecuzione della macchina all'interno del guest virtuale.

Il termine è apparso per la prima volta nel progetto Denali, e da allora questa parola è stata utilizzata dai ricercatori del laboratorio informatico dell'Università di Cambridge nel progetto Xen, si è finalmente affermato nella terminologia. Il prefisso “para” nella parola paravirtualizzazione non significa nulla, gli autori di questa idea avevano solo bisogno di un nuovo termine.

      Vantaggi: non è necessario un sistema operativo host. La macchina virtuale è installata virtualmente su bare metal e le risorse hardware vengono utilizzate in modo efficiente.

      Screpolatura: la complessità dell'implementazione dell'approccio e la necessità di creare un hypervisor del sistema operativo specializzato.

Esempi: Xen, UML, lguest, Microsoft Hyper-V, KVM, VMware ESX Server.

    Virtualizzazione a livello di sistema operativo - questo approccio utilizza un kernel del sistema operativo host per creare ambienti operativi paralleli indipendenti. Il kernel garantisce l'isolamento completo del contenitore, quindi i programmi di contenitori diversi non possono influenzarsi a vicenda.

    • Vantaggi: elevata efficienza nell'utilizzo delle risorse hardware, basso sovraccarico tecnico, ottima gestibilità, minimizzazione dei costi di acquisto delle licenze.

      Svantaggi: implementazione di soli ambienti informatici omogenei.

Esempi: FreeVPS, account virtuali iCore, Linux-VServer, OpenVZ, Parallels VirtuozzoContenitori, zone, FreeBSD, Jail, sysjail, WPAR, Contenitori Solaris.

    Virtualizzazione completa - con questo approccio vengono utilizzate copie non modificate dei sistemi operativi guest e per supportare il funzionamento di questi sistemi operativi viene utilizzato un livello comune di emulazione della loro esecuzione sopra il sistema operativo host, che è un normale sistema operativo.

    • Vantaggi: relativa facilità di implementazione, versatilità e affidabilità della soluzione; Tutte le funzioni di gestione vengono svolte dal sistema operativo host.

      Screpolatura: elevati costi generali aggiuntivi per le risorse hardware utilizzate, scarsa considerazione delle funzionalità del sistema operativo guest, flessibilità nell'utilizzo dell'hardware inferiore al necessario.

Esempi: VMware Workstation, VMware Server, Parallels Desktop, Parallels Server, Microsoft VirtualPC, Microsoft Virtual Server, Microsoft Hyper-V, QEMUCon modulokqemu, KVM, Ferro virtuale.

    Livello di compatibilità

Il livello di compatibilità può essere inteso come un prodotto software che consente di eseguire programmi non destinati all'ambiente di lavoro. Per esempio,Vinoti permette di lavorare con i programmifinestrenel sistema operativoLinux.

Esempi:Cygwin, Vino.

Se noti un errore, seleziona una porzione di testo e premi Ctrl+Invio
CONDIVIDERE:
Computer e gadget moderni