Cloud computing: Cluster virtuali
Cluster virtuali di trasmettere determinati vantaggi sopra i cluster fisici in termini di velocità, la conservazione e la flessibilità.
Kai Hwang, Jack Dongarra e Geoffrey Fox
Adattato da "distribuito e Cloud Computing: Dall'elaborazione parallela per l'Internet delle cose"(Syngress, un'impronta di Elsevier)
Ci sono parecchie differenze e somiglianze tra cluster fisici e virtuali e diversi benefici trasportati da ciascuno. Un cluster fisico è un insieme di server (macchine fisiche) collegati da una rete fisica come una LAN. Cluster virtuali hanno diverse proprietà e potenziali applicazioni. Ci sono tre aspetti di progettazione critici di cluster virtuali: Live migrazione delle macchine virtuali (VM), le migrazioni, la memoria e file e distribuzione dinamica di cluster virtuali.
Quando si Inizializza una VM tradizionale, è necessario specificare le fonti di configurazione o scrivere informazioni di configurazione manualmente. Quando più VM partecipa a una rete, una configurazione inefficiente sempre provoca problemi di sovraccarico o di sottoutilizzo. Amazon Elastic Compute Cloud (EC2) è un buon esempio di un servizio Web che fornisce la potenza di calcolo elastica in una nuvola. EC2 consente ai clienti di creare macchine virtuali e gestire gli account utente nel tempo del loro utilizzo.
La maggior parte delle piattaforme di virtualizzazione supportano una modalità di bridging che lascia tutti i domini appaiono sulla rete come singoli host. Utilizzando questa modalità, SCP può comunicare liberamente con gli altri attraverso la scheda di rete virtuale e configurare automaticamente la rete.
Fisico vs. Cluster virtuali
Cluster virtuali sono costruiti con macchine virtuali installate presso server distribuiti da uno o più cluster fisici. Le macchine virtuali in un cluster virtuale sono logicamente collegate da una rete virtuale attraverso diverse reti fisiche. Ogni cluster virtuale è formata con macchine fisiche o un VM ospitato da più cluster fisici. I confini di cluster virtuali sono distinti confini.
Dinamicamente provisioning di macchine virtuali a un cluster virtuale presenta le seguenti proprietà:
- I nodi del cluster virtuale possono essere sia macchine fisiche o virtuali, e naturalmente si possono avere più macchine virtuali in esecuzione sistemi operativi differenti sullo stesso nodo fisico.
- Un VM viene eseguito con un so, che spesso è diverso dall'host OS che gestisce le risorse della macchina fisica su cui è in esecuzione nella macchina virtuale guest.
- Lo scopo dell'utilizzo di macchine virtuali è quello di consolidare le funzionalità multiple sullo stesso server, che migliora notevolmente la flessibilità di utilizzo e applicazione server.
- Si può avere VMs replicati in più server allo scopo di promuovere il parallelismo distribuito, disaster recovery e la tolleranza di errore.
- Il numero di nodi all'interno di un cluster virtuale può crescere o ridursi in modo dinamico, simile al modo in cui che un overlay network varia di dimensioni in una rete peer-to-peer.
- Il fallimento di qualsiasi nodi fisici possa disabilitare alcune macchine virtuali installate sui nodi mancanza, ma il fallimento VM non tirare giù il sistema host.
È necessario considerare le strategie efficaci per la gestione di macchine virtuali in esecuzione su una massa di nodi di calcolo fisici (anche denominato cluster virtuali). Questo comporta la distribuzione di un cluster virtuali e di monitoraggio e gestione dei cluster su larga scala, così come la pianificazione delle risorse, load balancing, consolidamento server, fault tolerance e altre tattiche. In un sistema di cluster virtuali, si avrà anche un gran numero di immagini VM, ed è essenziale per determinare come archiviare le immagini in modo efficiente.
Ci sono impianti comuni per la maggior parte degli utenti o applicazioni, quali sistemi operativi o librerie di programmazione livello utente. Si può preinstallare queste come modelli (chiamati modello VM). Con questi modelli, gli utenti possono costruire il proprio stack di software. Si possono anche copiare le nuove istanze OS dal modello VM. È possibile avere componenti specifici di un utente come librerie e applicazioni installate a quelle istanze di programmazione.
È possibile installare ogni VM su un server remoto o replicare le macchine virtuali su più server appartenendo a grappoli fisici uguali o diversi. Il limite di un cluster virtuale può cambiare come nodi VM vengono aggiunti, rimossi o migrati dinamicamente nel tempo.
Distribuzione rapida ed efficace pianificazione
Sistema cluster virtuale deve avere la capacità di distribuzione rapida. In questo caso, la distribuzione significa essere capaci di costruire e distribuire gli stack di software (inclusi sistemi operativi, applicazioni e librerie) di un nodo fisico all'interno del cluster velocemente come possibile. Significa anche la possibilità di passare rapidamente ambienti di runtime da cluster virtuale di un utente a cluster virtuale di un altro utente. Se un utente finisce con il suo sistema, il cluster virtuale corrispondente dovrà arrestare o sospendere rapidamente per salvare le risorse per eseguire altre macchine virtuali per gli altri utenti.
Il concetto di "green computing" ha attirato molta attenzione recentemente. Tuttavia, precedenti approcci hanno focalizzato sul risparmio il costo energetico dei componenti in una singola workstation senza una visione globale. Di conseguenza, essi non necessariamente ridurre il consumo di energia dell'intero cluster. Cluster virtuali può andare un lungo cammino verso la realizzazione di questo.
Altre tecniche efficienti di tutto il cluster sono applicabili solo a postazioni di lavoro omogenei e applicazioni specifiche. La migrazione delle macchine virtuali consente di trasferire i carichi di lavoro da un nodo a un altro nodo. Tuttavia, esso non garantisce che è possibile migrare VM casualmente tra di loro. In realtà, non si può ignorare il potenziale sovraccarico causato da live migrazione delle macchine virtuali.
Il sovraccarico può avere gravi effetti negativi sull'utilizzo di cluster, throughput e qualità dei problemi relativi al servizio. La sfida è quindi di determinare il modo di progettare strategie di migrazione per implementare green computing senza influenzare le prestazioni del cluster.
Un altro vantaggio della virtualizzazione è applicazioni in un cluster virtuale di bilanciamento del carico. Per ottenere un bilanciamento del carico mediante l'indice di carico e la frequenza degli accessi utente. Può essere implementato il meccanismo automatico di scale-up e scalare di un cluster virtuale basato su questo modello.
Di conseguenza, è possibile aumentare l'utilizzo delle risorse di nodo e abbreviare il tempo di risposta del sistema. Mapping VM sul nodo fisico più appropriato dovrebbe anche promuovere le prestazioni. Regolando dinamicamente i carichi tra i nodi di live migration VM è un approccio auspicabile quando i carichi sui nodi del cluster diventano squilibrati.
Virtual Storage ad alte prestazioni
È possibile distribuire il modello VM per host fisici diversi all'interno del cluster per personalizzare altre macchine virtuali. Inoltre, i pacchetti software pre-riducono il tempo richiesto per la personalizzazione e il passaggio tra ambienti virtuali. È importante gestire in modo efficiente gli spazi del disco.
È possibile applicare qualche disegno di architettura storage per ridurre i blocchi duplicati all'interno di un file system distribuito di cluster virtuali. Utilizzare i valori hash per confrontare il contenuto di blocchi di dati. Gli utenti hanno i propri profili che memorizzano dati identificazione di blocco per macchine virtuali corrispondenti all'interno di un cluster virtuali specifiche dell'utente. Quando gli utenti modificano i dati corrispondenti, crea nuovi blocchi di dati. Appena creati blocchi sono quindi individuate nei profili degli utenti.
Fondamentalmente, ci sono quattro passaggi per la distribuzione di un gruppo di macchine virtuali su un cluster di destinazione:
- Preparare l'immagine del disco
- Configurare le macchine virtuali
- Scegliere i nodi di destinazione
- Eseguire il comando di distribuzione VM su ogni host
Molti sistemi utilizzano modelli per semplificare il processo di preparazione di immagini disco. Un modello è un'immagine del disco che include un sistema operativo preinstallato con o senza certi software di applicazione.
Gli utenti scegliere un modello corretto secondo le loro esigenze e fare un backup da utilizzare come propria immagine disco. Modelli potrebbero implementare la copia su formato scrivere (mucca). Un nuovo file di backup di mucca è piccolo e facile da creare e trasferire. Pertanto, sicuramente riduce il consumo di spazio su disco.
Tempo di distribuzione VM è molto più breve di copia del file immagine intero crudo. Ogni macchina virtuale è configurata con un nome, immagine del disco, impostazione di rete e allocato CPU e memoria. Devi semplicemente registrare ogni configurazione di macchina virtuale in un file.
Questo metodo può essere inefficiente, tuttavia, quando la gestione di un grande gruppo di macchine virtuali. Macchine virtuali con le stesse configurazioni potrebbero utilizzare profili precedentemente modificati per semplificare il processo. In questo scenario, il sistema consente di configurare le macchine virtuali secondo il profilo scelto.
La maggior parte dei elementi di configurazione utilizzano le stesse impostazioni. Alcuni di loro — come universally unique identifier, o UUID, VM nome e indirizzo IP — sono assegnati con i valori calcolati automaticamente. Normalmente, gli utenti non importa quale host è in esecuzione la macchina virtuale.
Avrete bisogno di una strategia di scegliere l'host di destinazione corretto per ogni VM. Il principio della vostra strategia di distribuzione è di soddisfare il requisito di VM e per bilanciare i carichi di lavoro tra la rete ospite intero.
Kai Hwang è un professore di computer engineering per la University of Southern California e un professore di visita sedia per Tsinghua University, China. Ha conseguito un pH.d. in EECS dalla University of California, Berkeley. Ha pubblicato estesamente in computer architecture, aritmetica digitale, sistemi di lavorazione, distribuiti, Internet security in parallelo e cloud computing.
Jack Dongarra è un'università distinto professore di ingegneria elettrica e informatica per l'Università del Tennessee, un distinto personale di ricerca presso l'Oak Ridge National Laboratory e girando Fellow presso l'Università di Manchester. Dongarra sperimentato le aree del supercomputer benchmark, analisi numerica, solutori di algebra lineare e high-performance computing e ha pubblicato estesamente in queste zone.
Geoffrey Fox è un distinto professore di informatica, informatica e fisica e associare Dean of Graduate Studies e ricerca nella scuola di informatica e Computing alla Indiana University. Ha ricevuto il suo Ph.d. dall'Università di Cambridge, Regno Unito. Fox è ben noto per il suo lavoro completo e vasti pubblicazioni in architettura parallela, programmazione distribuita, grid computing, servizi Web e applicazioni Internet.
© 2011 Elsevier Inc. Tutti i diritti riservati. Stampato con il permesso da Syngress, un'impronta di Elsevier. Copyright 2011. "Distribuito e Cloud Computing: Da Parallel Processing per l'Internet delle cose"da Kai Hwang, Jack Dongarra e Geoffrey Fox. Per ulteriori informazioni su questo titolo e altri libri simili, si prega di visitare elsevierdirect.com.