GNU/Linux >> Linux Esercitazione >  >> Linux

Che cos'è una macchina virtuale e perché usarla?

In futuro, saremo in grado di utilizzare tali sistemi di realtà virtuale perfettamente realizzati per essere quasi indistinguibili dalla realtà. Ambienti che non ci sono, ma li puoi vedere e sentire. Anche se non siamo ancora lì per noi stessi, ci siamo nel caso dei nostri computer. La tecnologia di virtualizzazione crea questa possibilità per i nostri computer. Questo ha varie applicazioni e principi di funzionamento e cercheremo di spiegarteli in modo un po' più dettagliato.

La macchina virtuale e la sua esigenza

Introduzione

L'esecuzione di un intero sistema operativo richiede tradizionalmente un set di hardware essenziale, tutto a disposizione del sistema operativo. Per eseguire più sistemi operativi, ciò che si potrebbe fare è anche l'avvio multiplo, ma in tal caso non è possibile eseguire due sistemi operativi contemporaneamente. Le macchine virtuali ci hanno fornito la possibilità di utilizzare più di un sistema operativo contemporaneamente sullo stesso set di hardware .

Nel caso di una macchina virtuale, ci sono alcuni punti ovvi che possiamo fare. Proprio come abbiamo iniziato questo articolo, è una specie di VR per i sistemi operativi. Le VM che creiamo fanno uso di hardware “virtuale”. L'hardware utilizzato dal sistema operativo ospitato è reale come qualsiasi altro quando si tratta della comprensione di quel sistema operativo stesso, ma il sistema operativo è fatto solo per vederlo in quel modo. La RAM, lo storage e la potenza del processore utilizzati dal sistema operativo sono l'utilizzo solo di frazioni dell'hardware reale. Tutta questa virtualizzazione e gestione viene eseguita da qualcosa chiamato hypervisor.

Ipervisore

Un hypervisor è firmware, software o hardware che è il componente centrale di una macchina virtuale. Chiariamo qui un po' la terminologia:il sistema su cui vengono installate le VM è chiamato sistema host, e le macchine installate sulle VM sono chiamate sistemi guest . L'hypervisor è il livello che gestisce tutte le risorse tra le VM e l'hardware effettivo del sistema (o del sistema operativo che ospita l'hypervisor). Anche se i sistemi operativi vengono eseguiti su hardware virtuale, è compito dell'hypervisor far sembrare che il sistema operativo abbia accesso all'hardware reale.

Gli hypervisor forniscono un confine stabile e inespugnabile tra i diversi sistemi operativi eseguiti come VM. L'hypervisor simula i componenti hardware per la VM, che sono configurati dall'utente. L'hardware utilizzato dalle macchine virtuali (tramite hypervisor) è una frazione dell'hardware effettivo del sistema. Pertanto, non si possono superare i limiti dell'hardware reale. Ad esempio, se hai 16 GB di RAM, puoi dividerli come 8 GB tra due VM.

Il punto critico è che la tecnologia che rende possibili le VM:hypervisor; non richiede alcun hardware speciale. È solo un componente software essenziale. Esistono due tipi significativi di hypervisor:

Tipo 2:Hypervisor in hosting

Sono consapevole che sto dimostrando il tipo 2 prima di 1, ma c'è una sequenza. Gli hypervisor ospitati rimangono a livello di applicazione. Questo potrebbe esserti familiare se hai mai utilizzato Oracle VM VirtualBox, VMWare o GNOME Boxes.

Questa è un'applicazione che ti consente di installare un sistema operativo come macchina virtuale all'interno del tuo sistema operativo (il sistema operativo in cui è installata l'applicazione stessa). Questo è notevolmente facile da configurare e utilizzare. Tutto quello che devi fare è installare un'applicazione che ti permetta di creare VM e ottenere un'immagine del sistema operativo richiesto. Puoi specificare direttamente la quantità di RAM, spazio su disco rigido, ecc. che desideri consentire alla VM di utilizzare.

Ci sono vantaggi significativi nell'utilizzo di un hypervisor ospitato, specialmente per utenti regolari come noi. C'è, tuttavia, un problema. La struttura abituale di un sistema informatico segue questa sequenza:

  • Hardware fisico
  • Firmware
  • Driver
  • Sistema operativo
  • Applicazioni

Entrando un po' nei tecnicismi, il software che utilizziamo su un sistema informatico ha diversi "privilegi". Ad esempio, se consenti l'accesso a qualsiasi software per configurare le prestazioni del tuo processore, può andare avanti e rovinare facilmente l'intero sistema. Questa è una cattiva pratica di sicurezza. In realtà, ciò che accade è che il kernel di un sistema operativo interagisce con l'hardware. Se un'app richiede l'accesso a qualsiasi componente hardware, può inviare una richiesta al kernel e il kernel fornirà una risposta appropriata. Queste richieste sono chiamate chiamate di sistema o syscall .

Ora prendiamo il caso di una macchina virtuale su un hypervisor ospitato. Ad esempio, esegui un'applicazione sul sistema operativo guest. Questo invierà una syscall al kernel del SO guest. Questo, a sua volta, verrà interpretato e convertito in un'altra syscall dall'hypervisor, che ora invierà quella syscall al kernel del sistema operativo host (perché ricorda, l'hypervisor ospitato è solo un'altra applicazione per il sistema operativo host). Il kernel del sistema operativo host invierà la risposta all'hypervisor, che ora dovrà essere convertito nella risposta appropriata per l'applicazione nel sistema operativo guest. Uff.

Tutto ciò significa che gli hypervisor ospitati devono affrontare un processo piuttosto lungo. Sulla maggior parte dell'hardware moderno, non ci vuole tutto il tempo che sembra, ma non è come la velocità e le prestazioni native. La soluzione è l'hypervisor di tipo 1.

Tipo 1:Hypervisor Bare Metal

Dritto al punto, l'hypervisor in metallo nudo si trova sopra lo strato firmware/driver. Ciò significa che può interagire direttamente con l'hardware, proprio come un sistema operativo. Tutti i sistemi operativi richiesti verranno installati sopra l'hypervisor bare metal e le applicazioni su di esso. Questo aggiunge diversi vantaggi. Tutti i sistemi operativi installati sull'hypervisor funzionano molto bene, quasi come sistemi operativi nativi, con lag o stuttering minimi. Se l'hardware su cui viene installato l'hypervisor è potente (come di solito accade con i computer o i server di gioco), sarà in grado di gestire più sistemi operativi abbastanza facilmente.

Alcuni esempi comuni di hypervisor bare metal includono VMWare ESXi, Microsoft Hyper-V, Citrix XenServer, Xen, Linux KVM, ecc.

Contenitori

I container sono in qualche modo simili alle macchine virtuali, ma c'è una bella differenza. Come abbiamo visto nel caso degli hypervisor ospitati, le macchine virtuali vengono utilizzate per installare un intero sistema operativo, quindi le applicazioni vengono installate e utilizzate su tali sistemi operativi. Un container, invece, impacchetta il codice di un'applicazione, le sue dipendenze, gli strumenti, le librerie, i runtime e tutte le altre cose richieste ed esegue proprio quell'applicazione in un ambiente virtuale.

L'immagine renderà più chiara la gerarchia. Si noti che il contenitore è installato sopra il sistema operativo e quindi le applicazioni vengono eseguite direttamente all'interno del contenitore. Non è presente alcun sistema operativo all'interno del contenitore, come nel caso delle macchine virtuali.

Utilizzi

Quindi, abbiamo già approfondito i dettagli dei principi di funzionamento delle macchine virtuali. È tempo di scoprire come può essere utile in scenari di vita reale.

Più workstation da un unico sistema

Il primo punto e il principale punto di forza delle VM è il fatto che puoi utilizzare più sistemi operativi, separati tra loro, contemporaneamente, dalla stessa macchina. Questo apre possibilità incredibili. Ad esempio, se hai bisogno di due workstation nello stesso posto, puoi acquistare un potente sistema in grado di eseguire due sistemi separati contemporaneamente. Questo si rivelerà davvero molto efficiente.

Anche questo ha un uso diffuso. Se hai bisogno di un'applicazione che funzioni su qualsiasi sistema operativo che non usi, non devi installare il sistema operativo sul tuo computer. È possibile installare un software hypervisor ospitato sul proprio sistema operativo e installare il sistema operativo supportato. È molto più facile da gestire e portare a termine il lavoro.

Utilizzo massimo

Il massimo utilizzo delle risorse è il motivo per cui la virtualizzazione è molto popolare per i server. Un server è un computer molto, molto potente. È difficile per un singolo sistema operativo utilizzare completamente le risorse dell'hardware. Soluzione? Installa un hypervisor bare metal ed esegui più sistemi operativi che insieme utilizzano l'hardware nella sua interezza.

Pertanto, le macchine virtuali sfruttano il massimo utilizzo delle risorse. Ma non stiamo parlando solo dei server. Ad esempio, se disponi di un potente computer da gioco, puoi invece utilizzare il suo hardware interamente, ad esempio, utilizzando un sistema operativo come workstation principale e uno come NAS. O forse un numero più significativo di sistemi operativi e attività.

Efficienza energetica

Poiché ora puoi eseguire due sistemi utilizzando una macchina anziché due macchine separate per due sistemi diversi, risparmi molta elettricità ed energia. Fa bene alla bolletta della luce; fa indubbiamente anche un bene all'ambiente.

Spazio fisico/Mobilità

Puoi utilizzare una macchina per più sistemi invece di vari dispositivi, quindi ora stai naturalmente risparmiando molto spazio fisico. Ciò significa che se ottieni una macchina molto potente, puoi soddisfare i requisiti di più macchine, quindi se devi spostare la tua infrastruttura da un posto all'altro, ora dovrai spostare meno hardware fisico di quanto dovresti altrimenti tradizionalmente .

Recupero

Questa è una caratteristica utile. Le macchine virtuali hanno la proprietà di acquisire "istantanee". Poiché l'intero sistema è virtuale, le macchine virtuali eseguono copie delle loro proprietà, impostazioni e dati a determinati intervalli di tempo. Quindi, se il tuo sistema viene incasinato o danneggiato a un certo punto, puoi ripristinare uno degli stati stabili e non ci saranno molti danni.

Area test

Una VM (in effetti, anche un container) viene spesso utilizzata come banco di prova. Eventuali problemi che potresti creare in una configurazione virtuale non possono danneggiare l'hardware reale e, quindi, lo rende un luogo ideale per il test del nuovo software (in particolare del firmware). Gli sviluppatori usano spesso le macchine virtuali anche per verificare la compatibilità con diversi sistemi operativi.

Conclusione

Le macchine virtuali ci hanno fornito molti miglioramenti rispetto ai nostri vecchi metodi. Ora possiamo eseguire i sistemi in uno spazio più piccolo, in modo più efficiente e più sicuro. Sono diventati una soluzione semplice per l'utilizzo di software che non è supportato nativamente dal tuo sistema operativo. Le macchine virtuali sono diventate un paradiso per scopi di test, tutto sommato, ottimo per cause personali, professionali e ambientali.

Ci auguriamo che tu abbia trovato l'articolo informativo e utile.


Linux
  1. Howto:cos'è Git e Github? Come lo uso e perché dovrebbe interessarmene?

  2. Linux – Perché usiamo Su – e non solo Su?

  3. Quando e perché usare Docker

  4. Cosa ha ucciso il mio processo e perché?

  5. Perché eval dovrebbe essere evitato in Bash e cosa dovrei usare invece?

Che cos'è Kubernetes DaemonSet e come utilizzarlo?

Comando file Linux:cosa fa e come usarlo

Linux Tail Command:cos'è e come usarlo

Che cosa sono i contenitori multi-account di Firefox? Perché e come usarlo?

Cos'è EasyApache e come si usa?

Cos'è la funzionalità della community di ONLYOFFICE e perché dovresti usarla?