Maquinas virtuales
Transcript of Maquinas virtuales
![Page 1: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/1.jpg)
Sistemas Operativos
Máquinas virtuales
![Page 2: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/2.jpg)
Página – 2 –
Máquina Virtual
Una máquina virtual (MV) es un duplicado de una máquina real, eficiente y aislado.
![Page 3: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/3.jpg)
Página – 3 –
Características
• Duplicado: La MV se debería comportar de forma idéntica a la máquina real, excepto por:– La existencia de menos recursos disponibles (incluso
diferentes entre ejecuciones).– Diferencias de temporización al tratar con dispositivos.
• Aislado: Se pueden ejecutar varias MV sin interferencias.
• Eficiente: La MV debería ejecutarse a una velocidad cercana a la del HW real.– Requiere que la mayoría de las instrucciones se ejecuten
directamente por el HW.
![Page 4: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/4.jpg)
Página – 4 –
Tipos de máquinas virtuales
• Máquinas virtuales por proceso– Ejemplos: Java, .NET Framework– Máquina virtual instanciada para un proceso.– Cuando termina el proceso, termina la instancia
de máquina virtual.
• Máquina virtual por sistema– Virtualización ISA (Instruction Set Architecture).– Ofrecen un entorno de ejecución completo.
![Page 5: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/5.jpg)
Página – 5 –
Algo de historia
• Idea bastante utilizada hasta los 70-80 en mainframes.– Cae en desuso con el paso a computadores más pequeños.
• Renace en esta década– Seguridad.– Vista uniforme de Hardware.– Encapsulación.
• Replicación, checkpointing y reinicio, depuración, ...
• Esto se parece mucho a lo que hace el SO.
![Page 6: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/6.jpg)
Página – 6 –
Monitor de Máquina Virtual (MMV)
• Programa que corre sobre el hardware real para implementar la máquina virtual.
• Control de recursos y planificación de huespedes.
• Implicaciones:– MMV necesita ejecutarse en modo supervisor.– Software huésped en modo usuario.– Instrucciones privilegiadas de huespedes implican traps.– MMV intrerpreta/emula instrucciones priviletiadas
![Page 7: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/7.jpg)
Página – 7 –
MMV: Aplicación
• MMV Capa de software de sistema– Permite que se ejecuten varias MV sobre plataforma HW única– Permite ejecutar aplicaciones sin modificar
...
Virtual Machine Monitor (VMM)
VMnVM0 VM1
Platform HW
I/O DevicesProcessor/CSMemory
VirtualMachines
(VMs)
AppnApp0
Guest OS0
App1
Guest OS1 Guest OSn
![Page 8: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/8.jpg)
Página – 8 –
Tipos de MMV
• Clásico: El monitor se ejecuta directamente sobre el hardware y los huéspedes sobre el monitor.
• Indirecto: El monitor se ejecuta sobre un sistema operativo y los huéspedes sobre el monitor.– VMware, Virtual PC, ...– Ejecución de sistemas operativos en instancias de la
máquina virtual.– Menos eficiente.
![Page 9: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/9.jpg)
Página – 9 –
Requisitos• Una arquitectura es virtualizable si todas las instrucciones sensibles son
privilegiadas.
• Instrucción sensible– Cambia el estado privilegiado o lo expone.
• Esto permite que:– Las instrucciones no sensibles del huesped se ejecuten directamente.– Las instrucciones sensibles del huesped sean capturadas y
emuladas/simuladas por el MMV.
• Ejecución eficiente.
![Page 10: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/10.jpg)
Página – 10 –
Sobrecargas
• VMM necesita mantener el estado privilegiado de la máquina virtual.– Puede ser distinto del estado privilegiado de hardware
real.
• VMM necesita simular instrucciones privilegiadas– Sincronización de estados privilegiados de máquina
virtual y real.– Tablas de páginas ocultas para virtualización de
Hardware.
![Page 11: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/11.jpg)
Página – 11 –
Problemas
• x86: Muchísimos problemas– PUSH y PSW sensibles y no privilegiadas.– Tablas de descriptores de segmento y de interrupciones en
memoria virtual.– Descriptores de segmento exponen el nivel privilegiado.
• Itanium: Casi virtualizable– Tabla de interrupciones en memoria virtual.– Instrucción THASH expone la dirección de tabla de páginas.
• MIPS: Casi virtualizable– Registros de nucleo k0 y k1 accesibles en modo usuario.– Problemas de rendimiento al virtualizar direcciones KSEG
![Page 12: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/12.jpg)
Página – 12 –
Virtualización impura
• Solución para arquitecturas no virtualizables y para reducir los problemas de rendimiento.
• Enfoques:– Paravirtualización.– Traducción binaria.
![Page 13: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/13.jpg)
Página – 13 –
Paravirtualización
• Portar el código de SO huesped al ISA modificado.
• ISA– Aumentado con llamadas explícitas al MMV.– Eliminación de instrucciones no virtualizables.
• Inconvenientes– Esfuerzo de desarrollo.– Necesario repetir para cada combinación de huesped, ISA,
MMV.– Hace falta código fuente.
![Page 14: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/14.jpg)
Página – 14 –
Traducción binaria
• Localizar instrucciones no virtualizables en el binario ejecutable y cambiarlas por código de emularción o llamada a MMV.– Puede detectar combinaciones de instrucciones
sensibles y sustituir por una única emulación.– No requiere código fuente.– Permite que algunas emulaciones puedan hacerse
en espacio de usuario.
![Page 15: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/15.jpg)
Página – 15 –
Memoria
• Reclamación de memoria– Carga de un pseudo-driver en el huesped.– Petición de memoria al huesped.– MMV puede reusar esa memoria.
• Compartición de páginas– MMV detecta páginas con contenido indético.– Página única con COW (Copy On Write).– Mucho ahorro se se ejecutan varias instancias del mismo SO.
![Page 16: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/16.jpg)
Página – 16 –
Aislamiento
Ventajas de la virtualizaciónConsolidación
Migración
HW
App2App1
OS
HW1 HW2
App2App1
OS1 OS2
VMMHW
App2App1
OS1 OS2
VMM
HW1
App
HW2
VMM
OS
VMM
HW1
App
HW2
VMM
OS
VMMHW
App1 App2
OS OS
![Page 17: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/17.jpg)
Página – 17 –
Usos de la virtualización • Legacy SW Support• Training/QA• Activity Partitioning• Manageability• …
• Server Consolidation• Failover infrastructure• Flexible Datacenter • Manageability• …
CLIE
NTE
SSE
RVID
ORE
S
![Page 18: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/18.jpg)
Página – 18 –
Intel Virtualization Technology• Conjunto de mejoras hardware a las
plataformas Intel.
• Diseñado para simplificar el software de virtualización.
• Dos tecnologías:– VT-x IA-32 CPU.– VT-i Itanium
![Page 19: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/19.jpg)
Página – 19 –
Platform Hardware
VM1
VM Monitor
VM0
Guest OS0
App AppApp ...
... Guest OS1
App AppApp ...
SO y Apps no saben que el MMV existe o que
comparten CPU con otras MV
MMV se ejecuta protegida de las MV
Desafíos de MMV
MMV debe aislar las MV entre si
MMV debe presentar una interfaz a las MV
![Page 20: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/20.jpg)
Página – 20 –
Modos de operación• VMX root:– Totalmente privilegiado.– Pensado para MMV.
• VMX non-root:– No privilegiado.– Pensado para SW huésped.
![Page 21: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/21.jpg)
Página – 21 –
Entrada y Salida de Máquinas virtuales• VM Entry
– Transición de MMV a Huesped.– Entra en modo non-root.– Carga el estado del huesped. – VMLAUNCH instrucción usada en entrada incial.
VMRESUME instrucción usada en llamadas siguientes.
• VM Exit– VMEXIT instrucción usada para pasar a MMV– Entra en modo root– Salva el estado del huesped– Carga el estado de MMV
Physical Host Hardware
VM1
VM Monitor
VM0
Guest OS0
App AppApp ...
...Guest OS1
App AppApp ...
VM Exit VM Entry
![Page 22: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/22.jpg)
Página – 23 –
Virtual Machine Control Structure (VMCS)
• VMCSs son estructuras de control en memoria– Solo un VMCS activo por procesador virtual
• VMCS con formato no definido y variable– VMPTRLD: Establece el puntero al VMCS
– VMREAD/VMWRITE: Instrucciones de acceso a VMCS
![Page 23: Maquinas virtuales](https://reader034.fdocument.pub/reader034/viewer/2022051616/557be0b2d8b42a2f7b8b4d23/html5/thumbnails/23.jpg)
Página – 24 –
Beneficios de tecnología VT• Reduce dependencia del SO – Elimina necesidad de traducción binaria.– Facilita el soporte para SO antiguos
• Mejora de robustez – Elimina la necesidad de técnicas complejas– MMV más pequeño y simple
• Mejora de rendimiento– Menos transiciones a MMV