Ho giocato con macchine virtuali latley e mi chiedevo se potevo eseguire una macchina virtuale all'interno di una macchina virtuale?
È possibile?
È pratico?
Ho giocato con macchine virtuali latley e mi chiedevo se potevo eseguire una macchina virtuale all'interno di una macchina virtuale?
È possibile?
È pratico?
Risposte:
La nidificazione delle VM è qualcosa che è stato fatto per sempre sull'hardware IBM Mainframe. Questo hardware fa un sacco di cose per rendere il processo molto efficiente. Puoi avere macchine virtuali nidificate a una profondità arbitraria e funziona molto bene.
L'hardware del PC molto recentemente ha reso quasi impossibile questo. Un documento sul sito Web di VMware ne discute, ma l'essenza è che puoi avere macchine virtuali nidificate 2 in profondità, ma solo su hardware molto moderno che supporti la vera virtualizzazione dell'hardware (VT-x o AMD-V) e la seconda profondità della VM deve essere eseguendo la virtualizzazione di vecchio stile BT / traduzione binaria. Ci sono anche severe restrizioni sui monitor virtuali che puoi eseguire sul guest interno.
Inutile dire che non è supportato e mi aspetto che sia davvero imperfetto se fai qualcosa di strano anche a distanza (come Hyper-V in ESX). E le prestazioni non saranno buone, indipendentemente dal fatto che siano stabili.
Si, puoi. Ad esempio, su Linux, è possibile eseguire Xen con più VM che eseguono OpenVZ, VirtualServer o qualche altro tipo di sistema VM. È certamente possibile e anche molto pratico a seconda del tuo scopo.
Un motivo a cui potrei pensare di farlo è di eseguire più server su una singola macchina fisica. Sia che lo si esegua come un singolo livello della gerarchia di VM o più dipende dal piano di isolamento delle risorse.
Se hai bisogno di un sistema specifico, ad esempio legacy, per essere virtualizzato, puoi sempre farlo nel software, quindi l'annidamento non è un problema. Prova qemu, l'ho fatto 2 livelli in profondità, ma puoi andare più in profondità, tuttavia le prestazioni probabilmente lo renderanno inutile. A proposito, l'architettura del PC era di buon auspicio fatta da IBM, ma per usi totalmente diversi rispetto a quello per cui viene utilizzata oggi.
Non credo che la maggior parte dei pacchetti di virtualizzazione consentirà di eseguire una macchina virtuale in una macchina virtuale. So che VMware verificherà quando viene installato per vedere se viene installato in una VM e spero che altri prodotti facciano lo stesso. Non penso che le istruzioni necessarie sulla CPU sarebbero state presentate dall'hypervisor in esecuzione sull'hardware fino alla VM per raggiungere la seconda VM. Se funzionasse, aggiungeresti anche un overhead senza ottenere nulla in cambio.
Per quanto riguarda se è pratico - non vedo perché. Se hai bisogno di un'altra VM, puoi semplicemente eseguirla accanto a quella che hai già in esecuzione. Non riesco a immaginare un caso in cui devi avere una VM in esecuzione all'interno di un'altra VM. L'overhead aggiuntivo senza un guadagno proporzionale di alcune risorse renderebbe questo poco pratico.
Sì. Esistono anche modi per eseguire VMware ESX / vSphere in una macchina virtuale. Non so perché in pratica vorresti mai farlo, ma è stato fatto.
Sì, PUOI ma come tante cose non significa che dovresti. Ho visto un server ESX virtualizzato che esegue una macchina virtuale con un altro server ESX virtuale al suo interno. Concesso che era un test solo per vedere se poteva essere fatto (e può) davvero non lo consiglierei.
Dipende dalla tecnica di virtualizzazione. Se usi soluzioni che non sono virtualizzazione "reale" come UML, puoi eseguirle all'interno, diciamo, VMWare. O se stessi per quella materia.
Le installazioni basate su UML possono essere eseguite all'interno di macchine virtuali VMWare e altre installazioni basate su UML (anche nidificate). Tuttavia, le metriche delle prestazioni non saranno belle!
Sì, è possibile ma molto lento.
È particolarmente utile se si affitta un server con un IP pubblico allocato limitato (che dipende, ad esempio, dal proprio indirizzo MAC per non avvelenare la rete del proprio provider di server); e che desideri che il tuo IP della VM sia collegato a ponte per comunicare direttamente con Internet. Quindi quando non puoi avere più di, ad esempio, 3 indirizzi IP pubblici, ma hai bisogno di 10 VM, è una buona idea avere VM in una VM globale: utilizzerai solo uno dei tuoi IP pubblici e poi hanno molte VM con bridge secondario.
Ma potresti effettivamente utilizzare un mix di bridge e configurazione di rete instradata, è solo più difficile per quanto riguarda la configurazione.
Come molte persone hanno già detto tutto: ovviamente è possibile. Dipende da quanto bene viene emulato l'hardware della VM e dal software di virtualizzazione in uso. VMWare Workstation, almeno, non vuole che tu la virtualizzi.
Per quanto riguarda se è pratico, forse dovremmo farti la domanda: perché dovresti fare quel tipo di cose? Cosa c'è di sbagliato nel far funzionare solo due VM fianco a fianco? E in che misura chiedi se è pratico? Cioè, se sei preoccupato che sia pratico da installare e configurare, probabilmente no. Se sei più preoccupato per il suo utilizzo pratico, ancora una volta, non riesco a pensare a nulla per cui dovrei fare questo a meno che non stia cercando bug nel software di virtualizzazione o qualcosa del genere.
Sì. Vedere qui:
Puoi, ma non lo consiglio.
Le prestazioni sono di solito colpite abbastanza pesantemente in questo intero processo sulla macchina "ospite dell'ospite". Se davvero devi farlo senza hardware e software specializzati, buona fortuna a te. Tuttavia, in genere non è una buona pratica soprattutto con i metodi comuni utilizzati per ottenere la virtualizzazione.
So che se si tenta di eseguire VMWare all'interno dei sistemi VMWare, si lamenterà e non lo lascerà fare. Non sono sicuro su VirtualBox. Conosco alcune persone che, per qualsiasi motivo, distribuiscono container Docker all'interno di container Docker (o almeno così dicono). La morale della storia è: sebbene possa essere possibile, probabilmente non è intelligente farlo a meno che tu non sappia davvero cosa stai facendo.
Personalmente non conosco alcun caso d'uso reale al di fuori della rete.