La virtualització imbricada (nested virtualization) és una funció que et permet executar Hyper-V dins d’una màquina virtual de Hyper-V. Dit d’una altra manera: una VM deixa de ser només una convidada i passa a poder allotjar les seves pròpies màquines virtuals.
Això funciona perquè els processadors moderns inclouen extensions de maquinari que acceleren i asseguren la virtualització, com ara Intel VT-x i AMD-V. Hyper-V depèn d’aquestes extensions per arrencar les seves VMs. Sense imbricació, l’hipervisor pren el control total d’aquestes capacitats i no les exposa al sistema operatiu convidat. Amb la virtualització imbricada activada, Hyper-V sí que les exposa a la VM, i llavors aquesta convidada pot instal·lar el seu propi hipervisor i executar les seves pròpies VMs.
Per a qui és útil
La documentació de Microsoft assenyala diversos casos concrets on val la pena:
- Executar aplicacions o emuladors en una VM imbricada.
- Provar versions de programari sobre VMs abans de passar-les a producció.
- Reduir els temps de desplegament d’entorns de formació.
- Fer servir Hyper-V isolation per a contenidors.
Per a laboratoris de proves i entorns d’avaluació encaixa especialment bé. Pots modificar configuracions amb facilitat i fer servir estats desats per tornar a una situació concreta. I com que un laboratori no acostuma a exigir el mateix SLA que producció, t’estalvies muntar maquinari físic només per assajar.
Hi ha escenaris suportats en producció, tant a Azure com on-premises: VMs de Hyper-V sobre VMs de Hyper-V, contenidors aïllats amb Hyper-V executant-se imbricats, i WSL2 dins d’una VM de Hyper-V que alhora corre imbricada. Microsoft admet un nivell d’imbricació en producció, que és just el que necessita un desplegament de contenidors aïllats. Això sí, recomana comprovar que els teus propis serveis i aplicacions també estiguin suportats en aquest muntatge.
El que no funciona igual
La virtualització imbricada arrossega limitacions que convé tenir clares abans de muntar un laboratori:
- Memòria. Quan Hyper-V corre dins d’una VM, aquesta VM ha d’estar apagada per ajustar-ne la memòria. Encara que tinguis la memòria dinàmica activada, la quantitat no fluctua. Activar la imbricació per si sola no canvia el comportament de la memòria dinàmica ni del redimensionament en calent. Si la VM no té memòria dinàmica, intentar ajustar la RAM mentre està en marxa falla. La incompatibilitat només apareix mentre Hyper-V s’està executant dins de la VM.
- Altres hipervisors. Les aplicacions de virtualització alienes a Hyper-V no estan suportades dins de VMs de Hyper-V i és probable que fallin. Aquí hi entra qualsevol programari que necessiti extensions de virtualització per maquinari.
- Rendiment. Microsoft desaconsella la virtualització imbricada per a Windows Server Failover Clustering i per a aplicacions sensibles al rendiment. Quan un contenidor aïllat corre imbricat hi ha dos nivells d’hipervisor per sobre del host físic, i això suma latència en arrencada, emmagatzematge, xarxa i CPU.
Com encaixa en un entorn de virtualització
Si gestiones un parc de Hyper-V, la virtualització imbricada t’estalvia maquinari: un únic host físic pot allotjar laboratoris complets on cada VM fa de host alhora. És la manera natural de provar un clúster, assajar una migració o formar un equip sense tocar la infraestructura real.
El concepte no és exclusiu de Microsoft. Plataformes com Proxmox VE també permeten imbricar hipervisors amb un plantejament semblant, exposant les extensions de CPU a la VM convidada. Si treballes amb diverses plataformes, el patró és reconeixible: la diferència és en els detalls de suport i en les limitacions de cadascuna.
Azure Local mereix una nota a part: està dissenyat i provat sobre maquinari físic validat. Pot córrer imbricat en una VM per a avaluació, però els entorns de producció en configuració imbricada no estan suportats.