Prendo spunto da alcune mail che mi sono arrivate per scrivere questo post.

Gli autori delle mail, molto simili tra loro, hanno da poco comprato un nuovo server e mi chiedono quali tra le tante impostazioni presenti nel BIOS relative alla virtualizzazione sono importanti per Hyper-V.

Iniziamo con le impostazioni che sono assolutamente indispensabili al funzionamento di Hyper-V e senza le quali non è possibile attivare queso ruolo server:

  • Hyper-V è una funzionalità di sistema operativo presente solo nelle versioni a 64 bit di Windows Server 2008 RTM/R2 e Microsoft Hyper-V Server 2008 RTM/R2; è quindi necessario un processore x64 per poter far funzionare Hyper-V
  • Hyper-V richiede processori a 64 bit con supporto hardware alla virtualizzazione. I due principali produttori di CPU chiamano questa funzione di CPU in modo diverso:
  • Intel VT-x
  • AM-V
  • Intel Execute Disable (XD): da abilitare nel BIOS
  • AMD No Execute (NX): da abilitare nel BIOS

E’ importante notare che la reale abilitazione di questa funzione avviene solo dopo un completo spegnimento del server, non un riavvio!

Ci sono alcune funzioni che possono essere abilitate nel BIOS che sono raccomandate e comportano dei vantaggi, ma non sono obbligatorie.

La prima di queste è la Second Level Address Translation (SLAT). Se il BIOS del vostro server presenta questa opzione e se state usando la versione R2 di Windows Server 2008 o Microsoft Hyper-V Server 2008 dovreste abilitarla (di solito è il defualt) in modo da ottenere significativi vantaggi in RAM e cicli di CPU usati per gestire l’indirizzamento di memoria per le VM. Le versioni di Hyper-V precedenti alla R2 non sono in grado di usare questa tecnologia. (Per maggiori dettagli su SLAT e tecnologie di gestione della memoria vi consiglio questo articolo di Jeff Woolsey)

Ancora una volta Intel e AMD usano nomi diversi per questa funzionalità:

    • Intel: Extended Page Table (EPT)
    • AMD: Nested Page Table (NPT) o  Rapid Virtualization Indexing (RVI)

L’uso della SLAT sarà obbligatorio in Windows Server 2008 R2 SP1 (Microsoft Hyper-V Server 2008 R2 SP1) negli scenari di virtualizzazione dei desktop con RemoteFX abilitato.

Se usate la versione R2 di Windows Server 2008 e Microsoft Hyper-V Server 2008, il vostro server monta processori recenti e ha la possibilità di abilitare in BIOS l’ hyper-threading il consiglio è di farlo per beneficiare di migliori performance.

Ci sono altre opzioni di BIOS, legate alla virtualizzazione che Hyper-V (nelle versioni attualmente disponibili) non usa, che anzi possono pregiudicarne il funzionamento ed è quindi necessario disabilitare:

  • Intel VT-d (DISABILITARE)
  • Trusted Execution (DIDABILITARE)

Nel caso queste due opzioni vengano abilitate a livello di BIOS, Hyper-V non si avvierà e in Event Log saranno registrati I seguenti errori:

  • Event ID 41:
    Hyper-V Launch failed
    Either VMX not present or not enabled in the BIOS
  • Event ID 32:
    Hyper-V Launch failed
    At least one of the processors in this system does not appear to provide a virtualization platform supported by Hyper-V

Buon pomeriggio a tutti e a presto.

Giorgio