UNIVERSIDAD CARLOS III DE MADRIDÁrea de Arquitectura y Tecnología de Computadores
Sistemas Operativos Avanzados
Máquinas virtuales
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
Página – 2 –
Máquina Virtual
Una máquina virtual (MV) es un duplicado de una máquina real, eficiente y aislado.
Gerald J. Popek and Robert P. Goldberg. Formal requirements for virtualizable third generation architectures. CACM, 17(7):413–421, 1974.
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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.
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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.
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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.
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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.
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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.
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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.
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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.
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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.
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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.
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
Página – 15 –
Memoria
Tablas de páginas en la sombra: Huesped accede a tabla de página en la sombra. MMV detecta cambios en tabla de páginas en la sombra y
sincroniza tabla de páginas real.
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.
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
Página – 16 –
Aislamiento
Ventajas de la virtualización
Consolidación
Migración
HW
App2App1
OS
HW1 HW2
App2App1
OS1 OS2
VMM
HW
App2App1
OS1 OS2
VMM
HW1
App
HW2
VMM
OS
VMM
HW1
App
HW2
VMM
OS
VMM
HW
App1 App2
OS OS
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
Página – 17 –
Usos de la virtualización
Legacy SW Support Training/QA Activity Partitioning Manageability …
Server Consolidation Failover infrastructure Flexible Datacenter Manageability …
CL
IEN
TE
SS
ER
VID
OR
ES
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
Página – 20 –
Modos de operación
VMX root: Totalmente privilegiado. Pensado para MMV.
VMX non-root: No privilegiado. Pensado para SW huésped.
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
Página – 22 –
IA-32Operation
VT-x Operations
Ring 0
Ring 3VMX RootOperation
VMX Non-rootOperation
. . .Ring 0
Ring 3
VM 1
Ring 0
Ring 3
VM 2
Ring 0
Ring 3
VM n
VMXONVMLAUNCHVMRESUME
VM Exit VMCS2
VMCSn
VMCS1
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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
Área de Arquitectura y Tecnología de ComputadoresUNIVERSIDAD CARLOS III DE MADRIDDoctorado en Ingeniería Informática – Sistemas Operativos AvanzadosCurso 2005/2006
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
Top Related