universidad carlos iii de madrid Área de arquitectura y tecnología de computadores sistemas...

24
UNIVERSIDAD CARLOS III DE MADRID Área de Arquitectura y Tecnología de Computadores Sistemas Operativos Avanzados Máquinas virtuales

Upload: lucinde-santos

Post on 12-Mar-2015

7 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: UNIVERSIDAD CARLOS III DE MADRID Área de Arquitectura y Tecnología de Computadores Sistemas Operativos Avanzados Máquinas virtuales

UNIVERSIDAD CARLOS III DE MADRIDÁrea de Arquitectura y Tecnología de Computadores

Sistemas Operativos Avanzados

Máquinas virtuales

Page 2: 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.

Page 3: 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 – 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: 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 – 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: 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 – 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: 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 – 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: 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 – 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: 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 – 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: 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 – 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: 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 – 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: 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 – 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: 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 – 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: 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 – 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: 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 – 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: 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 – 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.

Page 16: 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 – 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

Page 17: 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 – 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

Page 18: 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 – 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: 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 – 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: 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 – 20 –

Modos de operación

VMX root: Totalmente privilegiado. Pensado para MMV.

VMX non-root: No privilegiado. Pensado para SW huésped.

Page 21: 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 – 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: 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 – 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

Page 23: 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 – 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 24: 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 – 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