Virtualización en CentOS
1. Introducción
Actualmente existen dos tecnologías de virtualización disponibles en los repositorios de CentOS, estas son Xen y KVM. Esta página es una introducción a estas tecnologías, así como de algunos contenidos adicionales. Para comprender estas tecnologías de virtualización usted debe tener en cuenta que existen diferentes formas de virtualización. Para el debate sobre KVM y Xen, dos formas son relevantes:
Virtualización Completa: El hardware es emulado en su extensión de forma tal que el sistema operativo invitado pueda correr en la plataforma de virtualización sin ser modificado. Normalmente, esto quiere decir que varios dispositivos de hardware son emulados. Normalmente, tal plataforma de virtualización intentan correr como varias instrucciones en el CPU nativo (lo cual es más rápido que la emulación de CPU), atrapando y manipulando apropiadamente las instrucciones privilegiadas.
Algunas plataformas de virtualización mantienen o requieren extensiones de la CPU para asistir la virtualización. En algunas CPU nuevas x86 y x86_64 esto es suministrado a través de las extensiones VT-X y AMD-V de Intel y AMD respectivamente. Usualmente, esto es llamado virtualización de hardware asistido.
Paravirtualización: En la paravirtualización el sistema operativo invitado es portado a el hypervisor, una capa que tiene lugar entre el hardware y los sistemas virtualizados. Debido a que esto normalmente no requiere de una emulación completa de los dispositivos o recompilación dinámica para atrapar instrucciones privilegiadas, la paravirtualización a menudo funciona a una velocidad cercana de la nativa.
En la mayoría de las situaciones la paravirtualización es preferida ante la virtualización completa, porque es más rápida.
2. ¿Qué es lo que hace cada uno?
Xen soporta la paravirtualización y la virtualización completa de hardware asistido. Las máquinas virtuales paravirtualizadas (PVMs) y las máquinas virtualizadas completamente de hardware asistido (HVMs) pueden correr al mismo tiempo. Xen requiere un hypervisor que inicie antes de cualquier núcleo de Linux. El hypervisor luego inicia CentOS como dominio administrativo o privilegiado, significando que es usado para lanzar máquinas virtuales adicionales y que tiene acceso directo a muchos de los dispositivos reales del hardware. Este administrativo es usualmente llamado dom0. Adicionalmente, los dominios sin privilegios pueden ser inicializados vía dom0. Estos dominios sin privilegios usualmente son llamados domUs. Tanto el dom0 como los domUs paravirtualizados tienen que correr el núcleo Xen de CentOS, en lugar del núcleo por defecto.
KVM actualmente solo soporta la virtualización completa de hardware asistido (aunque se está trabajando en el soporte de la paravirtualización). KVM es un módulo del núcleo y trabaja con el núcleo por defecto (no el Xen). Las máquinas virtuales son creadas por el comando qemu-kvm a través del dispositivo /dev/kvm, el cual es una versión modificada de qemu, realizada por KVM.
3. Soporte en CentOS
CentOS 4
Desde CentOS 4.5, CentOS 4 puede ser usado como un sistema domU a través del núcleo kernel-xen.
CentOS 5
CentOS 5 incluye el hypervisor Xen y puede ser utilizado como un sistema dom0 y domU. Además CentOS 5 incluye confortables herramientas de administración como virt-install y virt-manager.
Los paquetes para KVM están disponibles en el Repositorio Extras de CentOS