Cosa succede quando una macchina fisica si guasta in un ambiente virtuale? [chiuso]


12

Sto iniziando con la virtualizzazione quindi abbiate pazienza.

In ambienti virtuali le applicazioni vengono eseguite nel livello di un hypervisor. Quindi una singola macchina fisica potrebbe avere molte macchine virtuali su di essa che eseguono più applicazioni.

Fin qui tutto bene?

Quindi cosa succede quando una macchina fisica si guasta? Ciò non farebbe fallire tutte le applicazioni da un'unica macchina?

Sto cercando di sviluppare un cloud privato con OpenStack , ma prima voglio capire a fondo la virtualizzazione.

Risposte:


14

Le specifiche dipendono dall'esatta soluzione di virtualizzazione utilizzata, ma l'idea è quella di disporre di una farm virtuale, in cui sono presenti numerosi host fisici con più macchine virtuali ciascuna. Quindi usi parte dell'efficienza che hai ottenuto non avendo bisogno di un host fisico per ogni VM in modo da avere un overhead sufficiente a coprire nel caso in cui una macchina fisica cada.

Inoltre, è possibile individuare i dischi rigidi virtuali per ogni VM su una SAN comune (ridondante). Gli hypervisor su ciascun host fisico possono essere impostati per dialogare tra loro e condividere la memoria di macchine virtuali diverse. C'è un po 'di latenza e gran parte della memoria sarà supportata dal disco, ma se uno degli host fisici si arresta, non stai nemmeno aspettando che le macchine virtuali da quell'host si riavviino. Al contrario, tali VM verranno automaticamente distribuite tra gli host rimanenti. L'obiettivo finale è che queste macchine riprendano quasi da dove erano state interrotte, con tempi di fermo minimi o nulli. In un certo senso, tutte le VM sono già in esecuzione su almeno due host fisici. In pratica, in questo momento gli hypervisor possono eseguire questo tipo di migrazione solo una macchina alla volta, quando sanno che sta arrivando prima che l'host fallisca ... ma non commettere errori: la migrazione istantanea in caso di guasto hardware è l'obiettivo finale per tutti i principali hypervisor.

Questo è il motivo per cui a volte vedi un server virtualizzato su un singolo host fisico in una farm. Potresti non ottenere alcuna efficienza hardware (potresti persino perdere alcune prestazioni), ma compensi in termini di coerenza gestionale e alta disponibilità integrata.


grazie per la tua risposta joel ... Ho 2 domande ... l'ambiente virtuale considera le macchine fisiche come un unico pool di risorse? aiuta a soddisfare il self service on demand? Inoltre la vitualizzazione aiuta a utilizzare le risorse?
Sherif,

1
@Sherif: Fondamentalmente sì e sì. Se vuoi capirlo in modo più dettagliato, dai un'occhiata all'articolo di Wikipedia , affronta brevemente la migrazione e il failover della VM. Se hai ancora domande, fai una domanda più specifica.
sleske,

1
Sei sicuro della parte di memoria condivisa? Da quanto ho capito, una VM che non funziona a causa di un errore hardware verrà riavviata su un altro host. Questo può essere visualizzato come riavvio completo o ripristino di un punto di arresto, a seconda della configurazione dell'hypervisor, ma lo stato di memoria originale non può essere ripristinato. Per vspere: vmware.com/products/vsphere/features/high-availability Come nota a margine , alcuni progetti sono stati avviati per KVM per consentire una vera memoria condivisa e ridondante tra una raccolta di host hardware , ma sono stati abbandonati.
shodanshok,

1
La migrazione della macchina virtuale può avvenire solo se la macchina fisica ha la possibilità di trasferire il controllo prima di cadere. Se la macchina fisica si guasta senza tante cerimonie, la macchina virtuale dovrà essere riavviata su una macchina diversa. Se hai un server senza stato, questo processo di trasferimento è banale, perché puoi semplicemente far girare un'altra macchina. Per i computer con stati persistenti, è necessario disporre di uno schema in grado di ripristinare i dati persistenti dal computer fisico guasto.
Lie Ryan,

13

Tutti i server virtuali in esecuzione su un host fisico andranno offline se l'host presenta qualche tipo di errore.

Detto questo, la maggior parte delle piattaforme offre una soluzione ad alta disponibilità per una singola macchina virtuale. Altre volte viene creato un sistema con più nodi per impedire l'interruzione del servizio nel caso in cui un nodo si disattivi.

Se due nodi VM costituiscono un servizio a disponibilità elevata, è possibile configurare l'hyper visor per garantire che i due nodi non facciano affidamento sulla stessa infrastruttura fisica (tolleranza agli errori). Questo potrebbe essere qualcosa di più della semplice tolleranza ai guasti del server fisico, inclusi diversi percorsi di rete, fino alla posizione geograficamente diversa.


2
AWS, ad esempio, a seconda del servizio, replica il servizio tra zone di disponibilità (aree fisiche) nel caso in cui si verifichi un disastro naturale in quell'area che interromperà le macchine fisiche.
Michael Bailey,

l'ambiente virtuale considera le macchine fisiche come un singolo pool di risorse? aiuta a soddisfare il self service on demand? Inoltre la vitualizzazione aiuta a utilizzare le risorse? e grazie mille per i tuoi sforzi
Sherif,

5

Hai ragione sul presupposto che se la macchina fisica fallisce anche le macchine virtuali non saranno disponibili.

Ma openstack può occuparsene e avviare le macchine virtuali del server fisico guasto su un altro server oppure è possibile utilizzare un sistema hypervisor già distribuito, penso che vsphere possa farlo.

Si consiglia di leggere la documentazione di openstack su HA per ulteriori informazioni.


2

Per quanto riguarda la tua domanda: sì, perderai l'accesso per tutte le macchine all'interno di questo host fisico. Ovviamente dipende da quale componente è fallito. Se è un disco - è un tipo di problema, se è una scheda madre - è molto più semplice. In generale, il ripristino dell'hardware è più semplice poiché l'hypervisor è indipendente dall'hardware. Al momento ci sono molte tecnologie specifiche del fornitore che puoi usare per avere servizi altamente disponibili.

Pool di risorse (vmware) - NON sono in grado di aggregare più risorse dell'host fisico (CPU, memoria, ecc.) Come qualcuno menzionato sopra, quindi se hai 2 host fisici (diciamo core quad 1CPU senza hyperthreading - 8 GBRAM ciascuno) NON sarà possibile avere 5vCPU-12Gb VM lì. I pool di risorse sono logici, non sono in grado di creare sistemi di supercalcolo. In questo momento, questo è un modo per controllare l'utilizzo delle risorse.

Disponibilità (vmware): è possibile utilizzare tecnologie come High Availability (HA) che consentono di ripristinare automaticamente (in base alla mia esperienza entro 1-2 minuti ) tutte le VM nel cluster automaticamente, se si utilizza Storage Array (NAS, iSCSI, FC) e conserva tutti i file VM lì. Più di HA funziona solo nel caso in cui CPU, RAM, scheda madre si guastino, è ovvio che non funzionerà se l'array di archiviazione non funziona. Per evitare guasti ai controller / RAID, le persone usano la replica, il mirroring dei LUN di archiviazione, ecc.

Se il ripristino entro 1-2 minuti non è un'opzione, esistono tecnologie come Fault Tolerance (FT) che consentono di ottenere tempi di inattività ZERO della VM in caso di errore mantenendo una copia shadow (in esecuzione) della VM configurata. Ma questa tecnologia ha anche molte restrizioni: il problema di tollerare errori VM con più vCPU non è completamente risolto.

Nel complesso, ogni soluzione dipende dal tuo obiettivo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.