Introducción a la virtualización

Calificaciones

Nota de los alumnos aprobados [ pdf ]
Cualquier duda respecto de las notas, consultar a eci@dc.uba.ar

Apuntes

Turno:

  Noche(19 a 22 hs).

Idioma:

Castellano.

Requisitos:

  • Conocimientos básicos del funcionamiento de Sistemas Operativos: manejo de memoria e interrupciones, scheduling, entrada/salida, ejecución en kernel y user mode.
  • Nociones básicas de arquitectura de procesadores: rings de ejecución, segmentación y paginación de memoria, modo de ejecución real y protegido.
  • Se darán ejemplos de implementación realizada en lenguaje C aplicando punteros y estructuras de datos anidadas, matrices de punteros a funciones, macros parametrizadas, reserva dinámica de memoria.

Síntesis y Objetivos

En informática, virtualización es un término amplio que se refiere a la abstracción de los recursos de una computadora. Este término es bastante antiguo: viene siendo usado desde antes de 1960, y ha sido aplicado a diferentes aspectos y ámbitos de la informática, desde sistemas computacionales completos hasta capacidades o componentes individuales. El tema en común de todas las tecnologías de virtualización es la de ocultar los detalles técnicos a través de la encapsulación. La virtualización crea un interfaz externo que esconde una implementación subyacente mediante la combinación de recursos en locaciones físicas diferentes, o mediante la simplificación del sistema de control. Un reciente desarrollo de nuevas plataformas y tecnologías de virtualización han hecho que se vuelva a prestar atención a este maduro concepto. De modo similar al uso de términos como "abstracción" y "orientación a objetos", virtualización es usado en muchos contextos diferentes. Suele divirse en dos categorías principales:

  • Virtualización de plataforma que involucra la simulación de máquinas virtuales.
  • Virtualización de recursos que involucra la simulación de recursos combinados, fragmentados o simples.

Asimismo, el término virtualización es un concepto importante en contextos no computacionales. Muchos sistemas de control implementan interfaces virtuales en un mecanismo complejo; de esta manera el pedal del acelerador de un automóvil moderno hace más que solo aumentar el flujo del combustible hacia el motor; y el sistema de vuelos por cables (fly by wire) presenta un avión virtual simplificado que tiene muy poco que ver con la implementación física.

En este curso se realizará una introducción al área de virtualización, profundizando aspectos internos del sistema, soporte de hardware y casos de uso. Una vez finalizado el curso el alumno podrá evaluar las distintas implementaciones de virtualización determinando en cada caso posibles modificaciones o soluciones óptimas para diferentes necesidades.

Programa:

  • Introducción a la Virtualización (Día 1)
    Inicio de la virtualización del hardware
    Por qué se virtualiza el hardware?
    Tipos de virtualización y cómo funcionan
  • Usos de Virtualización (Día 2)
    Almacenamiento en disco
    Uso y virtualización de la placa de red
    Cómo beneficia la virtualización a clusters
    Balanceo de carga
    Migración de Virtual Machines
    Recuperación y Backup de Virtual Machines
  • VMMs/Hypervisors (Día 2/3)
    Xen
    Otros
        KVM
        VMware
        OpenVZ
  • Soporte de virtualización por hardware (Día 4)
    Tecnología Intel VT-x
    AMD SVM
  • El futuro de la virtualización (Día 5)
    Tendencias en el mercado
    Tópicos para investigación
  • Examen (Día 6)

Profesor:

  • Guillermo Colsani, Intel ASDC - Argentina Software Development Center.

    Guillermo Colsani es ingeniero electrónico de la Universidad Nacional de Córdoba. Es especialista en arquitecturas de software con sólida experiencia en desarrollo de sistemas de tiempo real y embebidos. Desarrolló tareas de diseño y desarrollo de software en Intel, Motorola y otras empresas importantes.