Skip to content

351.1 Virtualization Concepts and Theory (weight: 6)

Description : Candidates should know and understand the general concepts, theory and terminology of virtualization. This includes Xen, QEMU and libvirt terminology.

Key Knowledge Areas:

Understand virtualization terminology
Understand the pros and cons of virtualization
Understand the various variations of Hypervisors and Virtual Machine Monitors
Understand the major aspects of migrating physical to virtual machines
Understand the major aspects of migrating virtual machines between host systems
Understand the features and implications of virtualization for a virtual machine, such as snapshotting, pausing, cloning and resource limits
Awareness of oVirt, Proxmox, systemd-machined and VirtualBox
Awareness of Open vSwitch

The following is a partial list of the used files, terms and utilities:

Hypervisor
Hardware Virtual Machine (HVM)
Paravirtualization (PV)
Emulation and Simulation
CPU flags
/proc/cpuinfo
Migration (P2V, V2V)

Conceptos

  • Emulación: Mimetizar por software a la maquina original para que piense la maquina virtal que es real (DOSBox, Qemu)
  • Simulación: consiste en imitar el aspecto visual del sistema imitado.

Para entender un poco la virtualización vamos a decir que, del Sistema Operativo al usuario se puede segmentar en 3 partes:

  • Host OS: Es el Host donde reside todo el hadware
  • Hipervisor: o " Virtual Machine Manager" es la aplicación que permite utilizar distintas técnicas de virtualización para ejecutar al mismo tiempo diferentes sistemas operativos.
  • Guest OS: El "Sistema operativo" instalado dentro de la máquina virtual

Tipo de virtualizacion

Full virtualización (HVM virtualizacion por hardware):

El hipervisor se ejecuta sobre el SO del anfitrion. Permite ejecutar un sistema operativo invitado sin que éste sepa que no se ejecuta en hardware real. ( virtualbox, Qemu, ...)

Paravirtualización (PV)

El hipervisor se ejecuta sobre el hardware del anfitrion. los sistemas virtualizados tienen conocimiento que se están ejecutando dentro de un hipervisor.

El hipervisor crea su propio kernel modificado al del anfitrión y utiliza este para arrancar el sistema y realizar todas las peticiones.

Tanto las máquinas virtuales como el Host OS se apoyan en el Hypervisor, y es este quien se comunica directamente con el hardware. Por lo que el hypervisor no utiliza el sistema operativo del Host para comunicarse con el hardware.

Un ejemplo de ParaVirtualization es Xen

OS Virtualización ( contenedores )

Sobre el núcleo del sistema operativo, se ejecuta una capa de virtualización que permite que existan múltiples instancias aisladas de espacios de usuario, en lugar de solo uno.

Para particionar una única máquina física en varios containers, el primer paso es crear un filesystem separado para cada una de ellas. La llamada al sistema chroot() setea el directorio raíz del proceso que lo está llamando, junto con el de sus hijos. Al modificar el directorio raíz, establecemos nuestro propio filesystem del cual no podremos mirar más afuera de él

Esto también nos lleva a entender que habrá actividades que no pueden ser contenidas en el jail, como ser modificaciones de kernel accediendo de manera directa (/proc) o cargar módulos

Tipos de hipervisores

  • tipo 1: ​El hipervisor se ejecuta directamente sobre el hardware físico. ej: Xen
  • tipo 2: Sobre el hardware se ejecuta un sistema operativo anfitrión el cual ejecuta una aplicación de virtualización que se encarga de gestionar y administrar las máquinas virtuales. ej: virtualbox
  • híbrida: Sobre el hardware se ejecuta un sistema operativo anfitrión y un hipervisor​, el hipervisor a veces interacciona directamente sobre el hardware pero otras veces usa servicios que le proporciona el sistema operativo anfitrión.

Ventajas de la virtualización:

  • costo mas eficiente
  • administración mas facil
  • Menor consumo energetico

Desventajas de la virtualización:

  • No todo el hardware y/o software se puede virtualizar facilmente
  • acceso a hardware indirecto (menos eficiente)

P2V y V2V

Migración de maquina fisica a virtual y de Virtual a Virtual

  • En la conversión de fisica a virtual se pueden haber problemas en diferentes identificadores y demas.
  • Conversión V2V no todos los hipervisores utilizan los mismos estandares y puede haber errores de por medio

Open vSwitch

Openvswitch es un paquete para realizar gestiones de switch en el hosts, sus dominioas son ovsdb-server y ovs-vswitchd.service

# crear conmutador inicial
ovs-vsctl add-br conmutador0
ovs-vsctl show

# añadir interfaces
ovs-vsctl add-port conmutador0 tap0
ovs-vsctl add-port conmutador0 tap1

ovs-vsctl fdb/show conmutador0 # ver maquinas conctadas a las interfaces