La virtualizzazione permette di ospitare più sistemi operativi all’interno di una stessa macchina fisica, razionalizzando e ottimizzando l’hardware grazie a meccanismi di distribuzione delle risorse disponibili. La virtualizzazione rende possibile astrarre gli elementi hardware (hard disk, ram, CPU, interfacce di rete) e renderli disponibili sotto forma di risorse virtuali. L’insieme di queste risorse virtuali prende il nome di macchina virtuale, o Virtual Machine (VM). Su una macchina virtuale può essere installato un sistema operativo e le relative applicazioni; più macchine virtuali possono girare contemporaneamente su una stessa macchina fisica.
Differenze tra un sistema fisico tradizionale e un sistema virtuale |
|
Architettura virtuale |
Architettura tradizionale |
Tutte le macchine virtuali hanno una certa uniformità per quanto riguarda il tipo di hardware, aspetto che rende possibile lo spostamento delle macchine attraverso le diverse piattaforme di virtualizzazione VMware. L’elenco che segue descrive nel dettaglio gli elementi hardware che caratterizzano una VM.
CPU
La VM in esecuzione su VMware ESXi può essere configurata con una o più CPU virtuali. Tuttavia non possono essere assegnate più CPU di quelle presenti nell’host ESXi (CPU logiche, ossia il prodotto tra numero di socket e numero di core). Se l’host e la licenza in uso lo consentono, è possibile avere sino a un massimo di 64 CPU per VM (ESXi 5.1).
Hard Disk
Una VM ha di norma almeno un disco. Durante la creazione del primo disco, viene aggiunto implicitamente anche un controller SCSI per la connessione del disco virtuale. L’adattatore SCSI può essere di diversi tipi:
- BusLogic Parallel
- LSI Logic Parallel
- LSI Logic SAS
- VMware Paravirtual
La scelta dell’adattatore viene effettuata automaticamente durante la creazione della VM, e si basa sul tipo di sistema operativo indicato per la VM.
Interfacce di rete
Esistono diversi tipi di interfacce di rete virtuali:
- Flexible - quando, durante la creazione di una macchina virtuale, si seleziona l'adattatore di rete in modalità "flessibile" (Flexible Adapter), la macchina virtuale utilizzerà un’interfaccia vlance se i VMwaree Tools non sono installati, mentre utilizzerà un’interfaccia vmxnet dopo l’installazione degli stessi.
- vlance - è un dispositivo virtuale che fornisce l'emulazione delle interfacce Ethernet Lance AMD pcnet32. E' compatibile con la maggior parte dei sistemi guest a 32-bit.
- vmxnet - è un dispositivo paravirtualizzato, progettato specificatamente per operare in un ambiente virtuale. I suoi driver non sono presenti nativamente nei sistemi operativi guest, per questo è necessaria l’installazione dei VMware Tools. Supporta sistemi sia a 32bit che a 64bit, e supporta funzioni avanzate come TCP Segmentation Offload (TSO) e Jumbo Frames.
- E1000 - è un dispositivo virtuale che fornisce l'emulazione dell'adattatore di rete Intel 82545EM Gigabit Ethernet (E1000). I driver di questo adattatore sono presenti nella maggior parte dei sistemi operativi. Viene scelto automaticamente da vSphere se durante la creazione della VM si specifica un sistema operativo a 64 bit.
- VMXNET 2 (Enhanced vmxnet) - si basa sull’interfaccia vmxnet, ma presenta funzioni aggiuntive come il supporto ai jumbo frame e all’hardware off-load. Così come l’interfaccia vmxnet, anche la vmxnet2 necessita dei VMware Tools.
- VMXNET 3 - rappresenta l’ultima versione di interfacce di rete paravirtualizzate. A livello di progettazione non ha riferimenti con le interfacce vmxnet e vmxnet2. Offre comunque le stesse funzionalità disponibili nella vmxnet2, con in più il supporto al multiqueue (conosciuto in Windows come Receive-Side Scaling), all’offload su IPv6, ed all’ MSI/MSI-X interrupt delivery. Quest’interfaccia è supportata da un limitato numero di sistemi operativi, ed è disponibile solo su VM con hardware versione 7 o superiore. VMware consiglia l’uso dell'adattatore VMXNET3 ogni qualvolta sia possibile il suo impiego, perché garantisce le prestazioni migliori fra tutte le interfacce di rete virtuali.
Nell'immagine qui sotto, possiamo vedere la fase di creazione di una macchina virtuale (in modalità avanzata) in cui viene chiesto che tipo di interfaccia di rete utilizzare.
In generale, per tutte le interfacce di rete virtuali, funzioni tipiche delle reti fisiche come velocità e impostazioni duplex non hanno rilevanza, perché tutto il processo di trasferimento dei dati avviene nella RAM dell’host ESXi, istantaneamente e senza possibilità di collisioni.
Importante: la velocità di rete riportata dai sistemi operativi delle macchine virtuali non riflette necessariamente la reale velocità sull'interfaccia di rete fisica. Ad esempio, può succedere di impiegare un'interfaccia vlance e rilevare che il sistema operativo riporta una velocità di 10Mbps, nonostante l'interfaccia fisica di appoggio sia a 1Gbps. Il problema è dato dall'emulazione, tuttavia ESXi non sarà limitato a una velocità di soli 10Mbps, ma trasferirà i pacchetti alla massima velocità concessa dall'adattatore di rete fisica, nel nostro esempio a 1Gbps.
Memoria RAM
La quantità massima di memoria RAM assegnabile a una VM è di 1Tb (ESXi 5.1).
Altri dispositivi e interfacce
- Chipset - la scheda madre di una VM usa un chipset proprietario basato sulle seguenti architetture:
- Intel 440BX AGPset 82443BX Host Bridge/Controller
- Intel 82371AB (PIIX4) PCI ISA IDE Xcelerator
- National Semiconductor PC87338 ACPI 1.0 and PC98/99 Compliant SuperI/O
- Intel 82093AA I/O Advanced Programmable Interrupt Controller
- DVD/CD-ROM - Il lettore CD/DVD è installato di default durante la creazione di una VM. Può essere utilizzato per connettere in maniera remota un DVD/CD-ROM dalla macchina che esegue il vSphere Client o Web Client, oppure può essere interfacciato al lettore fisico dell’host ESXi, o ancora può essere sfruttato per montare un’immagine ISO.
- Floppy Drive - Installato di default durante la creazione di una VM. Può essere utilizzato per connettere in maniera remota il floppy drive dalla macchina che esegue il vSphere Client o Web Client, oppure può essere interfacciato al floppy drive dell’host ESXi, o ancora può essere sfruttato per montare un’immagine floppy (file con estensione .flp).
- Interfacce IDE - Le due interfacce di tipo IDE (Integrated Drive Electronics) presenti in modo nativo su ogni VM permettono di avere sino a un massimo di 4 dispositivi IDE (hard disk IDE e lettori CD-ROM).
- Porta parallela - permette l’interfacciamento con la porta parallela dell’host ESXi. Può inoltre essere connessa ad un file di output.
- Controller PCI - in una VM è presente un solo controller PCI che non può essere né rimosso né configurato.
- Dispositivi PCI - si possono aggiungere sino a 6 dispositivi di tipo vSphere DirectPath. I dispositivi devono essere riservati per il PCI passthrough nell’host ESXi.
- Dispositivo di puntamento - necessario per l’interfacciamento tra il mouse connesso alla console (tramite vSphere Client) e quello della VM.
- Porta seriale - una VM può utilizzare sino a 4 porte seriali, interfacciabili alle porte fisiche dell’host ESXi oppure ad un file presente nell’host ESXi o su un percorso di rete.
- Dispositivi SCSI - hard disk o cd/dvd scsi collegabili grazie all’interfaccia scsi installata di default sulla VM.
- Controller SIO - un controller SIO è disponibile in maniera predefinita su ogni VM. E’ il controller che permette di avere porte parallele e seriali.Non può essere né rimosso né configurato.
- Tastiera - Necessaria per l’interfacciamento tra la tastiera connessa via console (tramite vSphere Client) e quella della VM.
- Controller USB - corrisponde al chip hardware che permette la connessione di dispositivi USB. vSphere 5 include il supporto ai dispositivi USB 3.0 all’interno delle macchine virtuali con sistema Linux. Il controller consente inoltre l’interfacciamento di dispositivi USB 3.0 collegati nel computer che esegue vSphere Client o Web Client.
- Dispositivi USB - i dispositivi USB possono essere connessi all’host ESXi o al computer che esegue vSphere Client.
- VMCI - Virtual Machine Communication Interface device. Fornisce un canale di comunicazione ad alta velocità tra la VM e l’hypervisor. Non può essere né rimosso né configurato.