Istruttore: Quando arriva
il momento di installare e configurare le macchine virtuali
quando si utilizza la virtualizzazione,
è importante comprendere
i diversi requisiti di risorse esistenti.
Per quanto riguarda i requisiti delle
risorse, ci concentriamo su quattro aree principali.
La CPU e le sue estensioni di virtualizzazione,
la memoria di sistema, lo storage e la rete.
Diamo un'occhiata a ciascuno di essi.
In primo luogo, abbiamo la CPU e le sue estensioni di virtualizzazione.
Ora, quando parliamo di CPU, ogni
produttore, come Intel e AMD, utilizza una tecnologia
diversa per la virtualizzazione.
Se utilizzate chip basati
su Intel, dovrete cercare VT-x, la tecnologia
di virtualizzazione, che
sta per VT.
Se si utilizza un processore
AMD, la loro estensione di virtualizzazione si chiama
AMD-V per AMD virtualization.
Ora, sia che si utilizzi un hypervisor hosted
o un hypervisor bare metal, entrambi
otterranno significativi guadagni di prestazioni se si dispone
di una CPU che supporta la virtualizzazione.
Alcuni software di virtualizzazione
non richiedono che la CPU abbia
il supporto per la virtualizzazione per
poterla utilizzare.
Ma se non avete la virtualizzazione abilitata
come estensione del processore,
le prestazioni saranno notevolmente rallentate.
E avrete una macchina virtuale inutilizzabile quando
si tratterà di fare un vero lavoro di produzione.
Ora, se il vostro processore supporta la virtualizzazione,
e la maggior parte dei processori moderni
lo fa, dovrete entrare nel BIOS o nell'UEFI
per poter abilitare le estensioni di virtualizzazione.
Di solito, se si prova a installare
una macchina virtuale in qualcosa
come VirtualBox o VMware e non viene rilevata
l'abilitazione della
virtualizzazione, viene visualizzato un messaggio di errore
che indica la necessità di abilitare VT-x o AMD-V.
Oltre a queste due estensioni
della tecnologia di virtualizzazione,
ne esiste un'altra chiamata SLAT, che sta per traduzioni
di indirizzi di secondo livello.
Si tratta di una caratteristica
di molti processori moderni che aiuta
a migliorare le prestazioni
della memoria virtuale quando si eseguono
più macchine virtuali su un
singolo host fisico.
Ora, se si utilizza un processore
Intel, la SLAT viene chiamata EPT, ovvero
extended page table.
Se si utilizza un processore
AMD, SLAT viene chiamato RVI, ovvero rapid
virtualization indexing.
In ogni caso, se vedete i termini SLAT, EPT o RVI, state parlando della possibilità di
accedere alla memoria
virtuale con un metodo più veloce e di ottenere
migliori prestazioni dalla
vostra CPU.
Per poter utilizzare queste
estensioni, è necessario che
il processore le supporti.
Ora, oltre a parlare delle
estensioni di virtualizzazione
all'interno dei processori e delle CPU,
vogliamo anche parlare delle CPU stesse.
Se volete avere una macchina dalle prestazioni
molto elevate quando avete a che fare
con la virtualizzazione,
dovrete cercare un processore che supporti l'hyper
threading multi-core o più processori fisici sul vostro
sistema.
Avere a disposizione altri core significa
avere una capacità di elaborazione aggiuntiva.
Se si dispone di più processori,
significa che sulla scheda madre sono installati
due o più processori fisici.
Si tratta di un caso abbastanza
raro, a meno che non si utilizzi una tecnologia basata
su server, ma nel desktop di casa o nel portatile
è più probabile che il processore
sia multicore o hyper threading per
fornire core virtuali.
In questo modo si ha la possibilità
di assegnare processori alle singole macchine virtuali che eseguono
i sistemi operativi guest, fornendo
loro maggiori risorse dedicate che ne aumenteranno
le prestazioni.
Un'altra nota a margine,
quando si parla di CPU,
è che le CPU sono disponibili in tre diversi
meccanismi che si possono trovare
sul mercato al giorno d'oggi.
Il primo è la vecchia scuola x86.
Ora, quando parliamo di processori basati su x86,
stiamo parlando di un processore a 32 bit.
Ciò significa che la capacità del sistema di utilizzare
altre cose sarà notevolmente limitata.
Perché quando si
ha a che fare con un sistema operativo a 32
bit, si può accedere solo a quattro gigabyte di RAM, che
è una quantità molto piccola
quando si vuole ospitare
più macchine virtuali su
un singolo server fisico.
È invece preferibile utilizzare un processore di base x64, che
consente di accedere a un massimo di 16 exabyte
di RAM per un determinato sistema, a seconda
che il sistema operativo host sottostante
lo supporti o meno.
Questi 16 exabyte rispetto ai
quattro gigabyte significano
che abbiamo oltre 4 miliardi di volte più RAM disponibile
se usiamo un processore base x64.
Ora, se si utilizza un processore a 64 bit,
è ancora possibile eseguire programmi a 32
bit e sistemi operativi a 32 bit come
sistemi operativi guest su quel server fisico, se
lo si desidera.
La vera limitazione, tuttavia,
è che se si dispone di un processore a 32 bit, non
è possibile eseguire applicazioni a 64 bit o sistemi
operativi a 64 bit come macchine virtuali in
un sistema operativo guest.
Quindi, ancora una volta,
è meglio scegliere un processore basato su x64.
Il terzo tipo di processore in cui
ci si può imbattere è il cosiddetto ARM.
E un ARM è un'architettura di computer a
set di istruzioni ridotto per
il processore del computer.
Dove si trovano oggi i
processori ARM nei campi?
Se si utilizza un Mac moderno, tutti
utilizzano processori ARM.
Questo è importante perché se si utilizza
uno dei sistemi moderni, come un MacBook Pro
o uno dei nuovi iMAC
con uno dei processori M1 o M2, questi sono tutti basati
su ARM.
Inoltre, essendo basati su
ARM, non possono ospitare nativamente sistemi operativi
guest che non girano su ARM.
Perché ci deve essere una traduzione che avviene.
Quindi, ad esempio, se si acquista un Mac o un MacBook
Pro che utilizza un processore M1 o M1 Pro, si tratta di
un processore basato su ARM.
Se si tenta di installare Windows 11
o Windows 10 in un sistema operativo guest,
e si tratta di versioni del sistema operativo basate su x86 o x64, non funzioneranno
e si verificheranno errori.
Quindi, se si utilizza un processore
basato su ARM sul sistema
fisico che ospiterà le diverse
macchine virtuali, questo limiterà
notevolmente la scelta dei sistemi
operativi guest, perché non tutti i sistemi
operativi hanno una versione basata
su ARM.
Al momento di questa
ripresa, Windows 11 sta realizzando
una versione per i processori basati su
ARM e funzionerà su questi chip ARM.
Esistono anche versioni di Linux
basate su ARM che possono essere eseguite
su un MacBook o su un altro processore basato su ARM.
Ma volevo solo farvelo
notare perché è un limite
che incontrerete.
Ora, la seconda area
di cui parlare in termini di risorse
è la memoria di sistema.
Quando si parla di memoria
di sistema, si intende la
quantità di memoria fisica installata
nel server fisico o nella workstation che
funge da sistema operativo host.
Quindi, ad esempio, se ho otto gigabyte o 16 gigabyte
o 32 gigabyte, è sempre meglio quando si tratta di ospitare
macchine virtuali, perché
se ho solo otto gigabyte
di RAM sul mio portatile, ad esempio, e voglio
eseguire quattro diversi sistemi operativi
guest, beh, se ognuno di essi richiede due gigabyte
di RAM, ho già usato tutta la mia memoria fisica e non ho lasciato nulla per il mio sistema operativo
host sottostante.
Per mettere le cose in prospettiva,
se si esegue un sistema operativo come Mac OS, occorrono
circa otto gigabyte di memoria solo per avviare il Mac
ed essere in grado di fare
ciò che deve fare.
Se si utilizza un computer Windows,
in genere sono necessari circa quattro gigabyte per poter
eseguire Windows in modo sufficiente come sistema
operativo host.
Quindi, se avete otto gigabyte e volete
eseguire Windows 11 come
guest all'interno di un host Windows 10, vi occorreranno
quattro più quattro o tutti gli
otto gigabyte di memoria.
Quindi, ancora una volta, quando si parla
di risorse, è bene
considerare quanta memoria si può
dedicare a questi sistemi operativi
guest e più memoria fisica si ha,
più si è in grado di farlo.
La considerazione successiva per le risorse è lo stoccaggio.
E stiamo parlando di dove memorizzare tutte queste
immagini di macchine virtuali.
Ricordate che tutte queste macchine virtuali
che stiamo creando con i loro sistemi operativi guest
occuperanno spazio su disco sul vostro server fisico.
Quindi, se avete un computer
portatile con solo 256 gigabyte di spazio e volete
installare un sistema operativo
guest Windows 10 su quel sistema, probabilmente
vi occuperà circa 50
gigabyte di spazio.
Quindi avete appena utilizzato un quinto
del vostro disco rigido totale
per quell'immagine di macchina virtuale.
Ora, se avete tre o quattro copie
diverse, avete occupato
tre o quattro volte 50,
ovvero 150-200 gigabyte, quasi l'intera
unità disco.
E così la memoria di massa diventa qualcosa
di cui bisogna essere consapevoli.
In genere, quando si esegue un'installazione
di Windows, un'installazione di Windows
"nuda e cruda" richiede circa 20 gigabyte di spazio,
ma è preferibile usarne 40 o 50 perché è necessario disporre
di spazio aggiuntivo per archiviare i
file, installare le applicazioni
e cose del genere.
Se utilizzate Linux, in genere, sono
molto più leggeri e la maggior
parte delle distro si installa in circa quattro-otto
gigabyte di spazio, una quantità significativamente
inferiore rispetto a Windows.
Se si ha a che fare con un ambiente
Mac come sistema operativo
guest, questo occupa di solito
circa 20-40 gigabyte di spazio.
Quindi, tenetelo presente e se avete
una quantità di spazio su disco molto limitata
sul vostro dispositivo fisico, potreste decidere di aggiornarlo
e aumentare la quantità di spazio di
archiviazione.
In questo modo è possibile ospitare più sistemi operativi
guest sullo stesso server fisico.
L'ultima area da considerare è il networking.
Questo perché l'hypervisor che opera
sul sistema operativo host creerà un ambiente
di rete virtuale attraverso il quale tutte le
altre macchine virtuali ospitate
su quel sistema potranno comunicare.
Ma se tutti vogliono collegarsi a Internet
o alla rete locale per scaricare file, lo fanno
attraverso la stessa
scheda di interfaccia di rete sul dispositivo
fisico.
Quindi, se si utilizza una vecchia scheda di
rete che funziona solo a cento megabit al secondo
e si eseguono cinque macchine virtuali su quel server, ognuna
di esse riceve effettivamente
solo 20 megabit al secondo.
In questo caso, è consigliabile
aggiornare la scheda di interfaccia
di rete sul server fisico
che ospita questi ospiti
e inserire una scheda di rete gigabit o addirittura
una scheda di rete da 10 gigabit se si ospitano più macchine
virtuali.
Questo vi consentirà di disporre di un throughput
e di una larghezza di banda supplementari per poter
ospitare tutte queste macchine virtuali
senza che la rete diventi un rallentamento.
Inoltre, come si apprenderà in
seguito nei corsi di networking, è possibile
inserire più schede di interfaccia di rete e posizionarle
in una cosiddetta configurazione
di teaming.
Ciò consente a più schede di lavorare in tandem
per garantire velocità più elevate.
Quindi, se si dispone di due schede di rete da un gigabit
e queste lavorano in team,
ora si dispone di due gigabit di throughput
da utilizzare per connettersi
alla rete.
Spesso, se si lavora su un
server che ospita molte macchine virtuali
in un ambiente aziendale o di impresa, si
notano fino a quattro
schede di interfaccia di rete, che lavorano
tutte in gruppo per raggiungere
quattro gigabit al secondo o addirittura 40 gigabit
al secondo.
Se si utilizzano schede di interfaccia di rete da
10 gigabit al secondo su quel particolare server.
Quindi, quando si parla di requisiti di risorse,
è importante considerare la CPU, il processore
e le sue capacità, così come la quantità di memoria, la
quantità di memoria e la quantità di rete.
Queste quattro aree sono tutte da considerare.
Quando si decide quante macchine virtuali
ospitare su un determinato server o workstation e come
aumentare le prestazioni dei sistemi
operativi guest eseguiti all'interno delle macchine
virtuali su quel particolare hypervisor.