SlideShare une entreprise Scribd logo
1  sur  76
Virtualización con Xen 3.2 en
GNU /Linux Debian Lenny 5.0 /
Squeeze 6.0
Ing. Olaf Reitmaier Veracierta
Caracas, Abril de 2011
Virtualización
 Es un mecanismo, modelo o método de
abstracción del hardware.
 El fin de la virtualización es permitir que el
hardware sea compartido por varias instancias de
sistemas operativos.
 Lo que se quiere virtualizar es el hardware.
 La pregunta es: ¿Cómo se hace?.
Virtualización
• Búsqueda de soluciones para el aislamiento y
compartición de:
– CPU y Memoria.
– Dispositivos de Bloques.
– Dispositivos de Red.
– Tasa de E/S.
– Control de Ejecución.
– Migración en caliente.
– Imágenes y instantáneas.
Virtualización de Hardware
 No es un tema nuevo, hace más de cuatro (4) décadas se
utilizó en el IBM 7044.
 La IBM 704 que implementaba Compatible Time Sharing
System desarrollado por el MIT.
 El proyecto Atlas de supercomputación de la Universidad
de Manchester, son pioneros en la demanda por páginas y
llamadas de supervisión.
 El Mainframe IBM 360 modelo 67, virtualizaba hardware
con un “supervisor”, en los 70s se denominó hypervisor,
hoy en día es superado por el System z9.
Virtualización del Procesador
 En los 70s se compilaba a P-CODE o pseudo
código que era ejecutado por un maquina virtual
(simulador) no por el hardware propiamente.
 En los 60s BCPL el ancestro de C, compilaba en
un pseudo código llamado código objeto u O-
CODE, que después era compilado en código de
máquina (binario). Este es el esquema actual de
compilación de Linux pero con lenguaje C.
Virtualización de Instrucciones
 Un nuevo aspecto de virtualización es la llamada
virtualización del conjunto de instrucciones o
traducción binaria.
 En la traducción binaria, una instrucción virtual es
traducida al conjunto de instrucciones físicas de la
capa de hardware de forma dinámica (o estática).
 La traducción ocurre a medida que se ejecuta el
código, cuando hay un salto el nuevo conjunto de
instrucciones virtuales es cargado y traducido.
Virtualización de Instrucciones
 La traducción binaria es similar al “caching” de
operaciones (instrucciones), donde los bloques de
instrucciones son movidos de la memoria a una cache
local rápida para su ejecución.
 Transmeta desarrollo una CPU que permite realizar esto,
esta arquitectura propietaria se denomina Code Morphing.
 Esta técnica es similar a la utilizada por las soluciones
actuales de virtualización completa para encontrar y
redireccionar las instrucciones privilegiadas, a los fines de
resolver ciertos problemas con los conjuntos de
instrucciones.
Tipos de Virtualización de
Hardware por Software
 Emulación de Hardware (Hardware Emulation).
 Paravirtualización (Paravirtualization).
 Virtualización Completa (Fullvirtualization).
 Virtualización a nivel de Sistema Operativo
(Operating System-Level Virtualization).
Emulación de Hardware
Hardware (Intel, AMD, Sparc, ...)
Hardware Virtual A (Intel) Hardware Virtual B (AMD)
Sistema
Operativo
Invitado
I
Sistema
Operativo
Invitado
II
Sistema
Operativo
Invitado
III
Sistema
Operativo
Invitado
IV
Sistema Operativo (Windows, Linux, Solaris, ...)
Emulador de Hardware
Emulación de Hardware
 En emulaciones de alta fidelidad de ciclos de CPU,
precisión, líneas de procesamiento (pipelines) y cache,
puede ser más lenta en el orden O(1000).
 El emulador debe ejecutarse o ser un sistema operativo
específico para un hardware específico, pero la ventaja
está en la transparencia con que se puede ejecutar un
sistema operativo invitado destinado para un procesador
Power PC en un servidor anfitrión con procesador Intel,
simplemente emulando PowerPC, por ejemplo.
 QEMU, Bochs y ZSNES (Nintendo Emulator) son
ejemplos de emulación de hardware.
Virtualización Completa
Sistema
Operativo
Invitado
I
Sistema
Operativo
Invitado
II
Sistema
Operativo
Invitado
III
Hardware (Intel, AMD, Sparc, ...)
Sistema Operativo (Windows, Linux, Solaris, ...)
Hypervisor (VMM = Mediador de Máquinas Virtuales)
Cónsola de
Administración
del Hypervisor
Virtualización Completa
 Se utiliza una máquina virtual que sirve de
mediador entre el hardware físico cuya
administración es monopolizada por el sistema
operativo anfitrión.
 Las instrucciones del sistema operativo invitado
deben ser atrapadas y manejadas a través del
mediador (supervisor ó “hypervisor”) debido a que
los recursos del hardware son compartidos por
todos los invitados.
Virtualización Completa
 La virtualización completa es más lenta que
utilizar el hardware directamente debido a la capa
de abstracción impuesta por el “hypervisor”.
 La virtualización completa requiere que el sistema
operativo soporte la arquitectura de hardware
donde se ejecuta el mediador.
 VMWare, Virtualbox y z/VM son ejemplo de
virtualización completa.
Paravirtualización
Sistema
Operativo
Invitado
I
Sistema
Operativo
Invitado
II
Modificaciones
Internas
Modificaciones
Internas
Sistema
Operativo
Invitado
III
Modificaciones
Externas
Hardware (Intel, AMD, Sparc, ...)
Hypervisor (VMM = Virtual Machine Mediator)
=
Sistema Operativo de Virtualización
Cónsola de
Administración
del Hypervisor
Paravirtualización
 Usa también un mediador o “hypervisor” pero
requiere la modificación interna del núcleo del
sistema operativo invitado con “parches” de
código para soportar la paravirtualización, o bien,
agregando modificaciones externas (capas de
firmware) y delegando la virtualización al
hardware si éste soporta instrucciones de
virtualización nativas (activar en BIOS);
tecnología Intel VT y AMD V (flags de cpu
“vmx” y “svm” en Linux, respectivamente).
Paravirtualización
 Ofrece un desempeño muy cercano a un sistema
no virtualizado porque no no requiere
recompilación, atrapado o caching de
instrucciones especiales o privilegiadas.
 Pueden ejecutarse múltiples sistemas operativos
concurrentemente en un mismo hypervisor.
 Xen y UML son ejemplos de paravirtualización.
Virtualización a Nivel de Sistema
Operativo
Sistema Operativo de Virtualización (Anfitrión)
Sistema
Operativo
Invitado
Servidor
Privado
(Jaula)
Sistema
Operativo
Invitado
Servidor
Privado
(Jaula)
Sistema
Operativo
Invitado
Servidor
Privado
(Jaula)
Sistema
Operativo
Invitado
Servidor
Privado
(Jaula)
Hardware (Intel, AMD, Sparc, ...)
Virtualización a Nivel de Sistema
Operativo
 Requiere que se modifique el kernel del sistema
operativo de virtualización y no el de cada invitado
manteniendo un desempeño bastante cercano al real.
• Generalmente no es muy flexible porque no soporta
que los sistemas operativos invitados sean diferentes o
en muchos casos que tengan una versión diferente del
kernel del sistema operativo anfitrión.
 Aisla los servidores en una especie de jaulas privadas
(~chroots) con espacios de usuario distintos siendo
estos copias o instancias del sistema operativo de
anfitrión, logrando una eficiencia cercana a la real.
Virtualización a Nivel de Sistema
Operativo
 El comando chroot, FreeVPS, iCore Virtual Accounts,
Linux-VServer, lxs, Virtuozzo, OpenVZ, FreeBSD
Jail, sysjail, WPARs AIX y Solaris Container Zones
son ejemplos de este modelo de virtualización.
 El almacenamiento se hace a través de un sistema de
archivos compartidos con una técnica de “copy on
write” a nivel de archivos fácil de respaldar y migrar
en caliente, pero muy diferente a las técnica de “copy
on write” por bloques de los sistema de virtualización
completa que permiten hacer “snapshots”.
Software vs. Virtualización
Xen
 Sistema de Virtualización con licencia GNU/GPL
basado en el Sistema Operativo Linux.
 www.xen.org
Elementos de Xen
 Xen Hypervisor (CPU & Memoria)
 Domain/Dominio 0 (PV Backend Drivers)
 Domain / Dominio U
− PV Guest / Invitado PV (PV “Frontend” Drivers)
− HVM Guest / Invitado HVM
 Xen Firmware
 Qemu-dm
 Domain Managment and Control / Dominio de
Gestión y Control (Xen DM&C)
Elementos de Xen
Domain 0
Xen Hypervisor
Domain U
PV Guest
Domain U
HVM Guest
. . . . . .
Xen
DM & C
Xen Hypervisor
 Capa básica de abstracción, situada directamente
en el hardware antes del sistema operativo.
 Coordina el trabajo del CPU, el particionamiento
de la memoria entre todas las máquinas virtuales
que se ejecutan en el hardware físico.
 Controla la ejecución de las máquinas virtuales
mientras se ejecutan en el entorno compartido de
procesamiento.
Xen Hypervisor
 El Hypervisor NO maneja los dispositivos de red,
de almacenamiento externo, video, entre otras
funciones de E/S (I/O) características de un
sistema de computación, algunas instrucciones son
puenteadas directamente al Hardware (Xen PCI
Passthru).
 La modificaciones hechas al sistema operativo
invitado incluyendo los controladores de red,
almacenamiento y otras funciones de I/O se
encargan de presentar a sistema operativo invitado
todo lo que el hypervisor no gestiona per se.
Domain 0
 Es una máquina virtual que ejecuta un kernel de
Linux modificado.
 Tiene privilegios especiales para acceder a los
recursos de E/S, así como, interactuar con otras
máquinas virtuales (dom U) ejecutándose en éste
sistema.
 Debe ejecutarse antes de poder iniciar las otras
máquinas virtuales (dom U).
Domain 0 – Drivers
Domain 0
Xen Hypervisor
Domain U
PV Guest
Domain U
HVM Guest
. . . . . .
Xen
DM & C
PV BE
Drivers
Domain 0 - Drivers
 El dominio 0 incluye dos (2) drivers o
controladores:
− Network Backend Driver: para permitir la configuración
y uso de la red, por parte de los dominios U, este driver se
comunica directamente con el hardware de red para
procesar las solicitudes de los dominios U.
− Block Backend Driver: para permitir la configuración y
uso del acceso a discos locales, por parte de los dominios
U, este driver se comunica directamente con los discos de
almacenamiento locales para leer y escribir datos según las
solicitudes de los dominios U.
Domain U
 Representa a todas las máquinas virtuales distintas
al dominio 0
 Representa también dependiendo del contexto a
una máquina virtual genérica distinta del dominio
0.
 Existen dos (2) tipos de dominios U:
− PV G uest
− HVM Guest
Domain U - Tipos
 PV Guest (Paravirtualized Guest): son las
máquinas paravirtualizadas que se ejecutan en un
sistema operativo modificado, generalmente
producido de un GNU/Linux, Solaris, FreeBSD.
 HVM Guest (Hardware Virtual Machine
Guest): son las máquinas completamente
virtualizadas (full virtualized) que incluyen
Windows y otros sistemas operativos no
modificados.
Domain U – Tipos
 PV Guest :
− No tienen acceso directo al hardware, por el contrario,
utilizan PV drivers (semejantes al dominio 0) para
acceder al hardware.
− Reconocen que las otras máquinas virtuales se están
ejecutando en el mismo hardware ó máquina.
Domain U – Tipos
 HVM Guest :
− Tiene acceso casi directo al hardware, a través de un
demonio Qemu-dm individual ejecutado en el dom 0. En
versiones posteriores de Xen, se sustituirá Qemu-dm por
Stub-dm para unificar todo en un demonio.
− Desconocen que existen otras máquinas virtuales
ejecutándose en el mismo hardware o máquina.
− Requieren de un firmware especial llamado “Xen
Firmware”, debido a que se ejecutan sin modificaciones en
el sistema operativo que son absorbidas por el firmware,
que provee las funciones de un BIOS compatible con PC.
Domain 0 – Drivers
Domain 0
Xen Hypervisor
Domain U
PV Guest
Domain U
HVM Guest
. . . . . .
Xen
DM & C
PV BE
Drivers
Qemu-dm
PV FE
Drivers
Xen Firmware
Xen Domain Managment and
Control (Xen DM&C)
 En el dominio 0 se ejecuta el demonio xend, una
aplicación (escrita en Python) que se considera el
administrador del ambiente Xen.
 Utiliza la librería libxenctrl (escrita en C) para
realizar solicitudes al Xen Hypervisor.
 Con la interfaz de comando Xm se realizan
solicitudes a Xend a través del protocolo XML
RPC, las cuales, el dominio 0 gestiona con Xen
Hypervisor.
Xen Domain Managment and
Control (Xen DM&C)
Domain 0
Xen Hypervisor
. . .Xend
libxenctrl
Xm
XML RPC
Xen Interdomain Communication
(PV Guest)
Domain 0
Xen Hypervisor
Domain U
PV Guest
PV Backend
Drivers
Event Channel
PV Frontend
Drivers
Shared Memory
Data Dom U
Data Dom U
Cómo configurar Xen
 A pie (las instrucciones incluídas aquí).
 Cónsola: xen-tools (super rígida, googlear).
 Gráfica: virt-manager, etc.
 Completar con otros ejemplos (googlear).
Pasos para Xen en Debian
1) Instalar GNU/Linux Debian (Con LVM) en servidor (32/64 bits) y
pudieran crearse las particiones de las máquinas virtuales.
2) Actualizar el sistema a través de los repositorios (apt-get update; apt-get
dist-upgrade).
3) Planear la distribución de las máquinas virtuales: prioridades, cuántas
máquinas virtuales, % espacio, % memoria y # cpu por c/u.
4) Particionar el disco del servidor según la distribución planeada.
5) Instalar el sistema Xen e reiniciar con el kernel de Xen.
6) Copiar archivos de máquinas virtuales en particiones y modificarlos según
sea necesario (securetty, fstab, interfaces, hwclock, sysctl, etc).
7) Iniciar las máquinas virtuales (xm create).
Distribución de Máquinas Virtuales
 Supongamos Servidor HP Proliant DL 580 G5 / 2 CPU
Quadcore 2.4Ghz 64 bits, 4 GB RAM, RAID 5 / 400 GB.
 Xen dectará 8 cpus físicos, mapeando el cpu virtual #0 al
core #1 del cpu físico #1 y el cpu virtual #7 al core #4 del
cpu #2, uno a uno de forma ordenada.
 Xen requiere al menos uno (1) o dos (2) cpu(s) virtual(es)
dedicado(s) al dom 0 si las máquinas virtuales harán
muchas operaciones de E/S (i.e. base de datos, red, etc).
 Xen requiere al menos 128 MB (recomendado 512 MB)
para el dom 0.
Distribución de Máquinas Virtuales
 Xen requiere una instalación mínima de Debian en el dom
0, el cual, no debe alojar aplicaciones, sistema o servicios
pesados o destinados para las máquinas virtuales.
 Opcionalmente podría mejorar el paralelismo de E/S de
disco si se destina un disco (arreglo) al dom 0 y otro(s) a
los dominios U (no se ha comprobado).
 Cada dom U (incluyendo dom 0) debe tener su propia
espacio o área de intercambio SWAP (partición).
 La partición /boot sólo es necesario en el dom 0, los dom
U inician con un disco RAM (vmlinuz + initrd) que se
instala en el dom 0 y es un kernel de Linux modificado.
Distribución de Máquinas Virtuales
 Si se utiliza LVM la partición /boot del dominio 0
debe estar fuera de LVM en una partición /boot.
 Para mayor eficiencia no se recomienda utilizar
LVM en las máquinas virtuales (dentro de sí
mismas), es decir, ellas no deben ver (verán)
particiones normales.
 Se debe dejar espacio libre LVM para expandir las
particiones LVM del dom 0 y las dom U. Si se
necesita expandir se hará desde el dom 0 y será
transparente para los dom U.
Particionamiento – Ejemplo A
/boot (ext3)
1 GB
LVM
(400 – 1 = 399 GB)
vg_interno (Volume Group)
lv_xen0_raiz /
10 GB
lv_xen0_var /
50 GB
lv_raiz /
10 GB
lv_var /
10 GB
lv_tmp /
2 GB
lv_swap /
2 GB
lv_xen0_tmp /
2 GB
lv_xen0_swap /
2 GB
lv_xen1_raiz /
10 GB
lv_xen1_var /
100 GB
lv_xen1_tmp /
2 GB
lv_xen1_swap /
2 GB
Dom 0
Dom U (xen0)
Dom U (xen1)
399 – 202 GB = 197 GB Libres para expansión de LV
/dev/sda - RAID 5 de 400 GB
Particionamiento – Ejemplo B
/boot (ext3) 1 GB LVM (60 - 1 GB)
vg_interno (Volume Group)
lv_xen0_raiz /
10 GB
lv_xen0_var /
50 GB
lv_raiz /
10 GB
lv_var /
10 GB
lv_tmp /
2 GB
lv_swap /
2 GB
lv_xen0_tmp /
2 GB
lv_xen0_swap /
2 GB
lv_xen1_raiz /
10 GB
lv_xen1_var /
100 GB
lv_xen1_tmp /
2 GB
lv_xen1_swap /
2 GB
Dom 0
Dom U (xen0)
Dom U (xen1)
/dev/sda - RAID 1 de 60 GB
/dev/sdb - RAID 1 de 400 GB
/boot (ext3) 1 GB LVM (400 - 1 GB)
Configuración de LVM
 Los comandos pv+TAB, vg+TAB y lv+TAB,
consultar man de cada uno y man lvm.
 Antes de utilizar un disco o partición con lvm se
debe inicializar con:
− pvcreate /dev/sda.
 Es preferible instalar LVM v2 (Debian 5.0 Lenny)
desde el repositorio oficial.
 SEGUIREMOS EL EJEMPLO A DE
PARTICIONAMIENTO
Configuración de LVM
 Secuencia normal de creación de volúmenes
lógicos (sino se realiza durante la instalación del
sistema operativo):
− lv_create -n lv_xen0_raiz -L 10 GB /dev/sda vg_interno
− mkfs.ext3 /dev/vg_interno/lv_xen0_raiz
− lv_create -n lv_xen0_swap -L 2GB /dev/sda vg_interno
− mkswap /dev/vg_interno/lv_xen0_raiz
 Repetir para cada volumen lógico (lv).
Copiar y modificar archivos de
máquinas virtuales
 mkdir -p /mnt/xen0/{raiz, var, tmp}
 cd /mnt/xen0
 mount /dev/vg-interno/lv-xen0_raiz raiz
 mount /dev/vg-interno/lv_xen0_var var
 cp -ax / /mnt/xen0/raiz
 cp -ax /var/* /mnt/xen0/var
Copiar y modificar archivos de
Máquinas Virtuales
 Eliminamos los directorios copiados de / a
/mnt/xen0/raiz si no son necesarios.
 Editamos los archivos de configuración de Xen0:
− /etc/inittab (tty)
− /etc/securetty (hvc0 y xvc0)
− /etc/fstab (xvda's)
− /etc/hosts (nombre del equipo, alias e IP)
− /etc/hostname (nombre del equipo)
− /etc/resolv.conf (IP servidor de DNS)
− /etc/network/interfaces (eth0)
− /etc/sysctl.conf (sincronización del reloj - clock)
Copiar y modificar archivos de
Máquinas Virtuales
 En el /etc/inittab, verificamos la redirecciones de la salida
de la consola tty1 de la máquina virtual a la cónsola del
Hypervisor (o no se podrá hacer login vía el comando xm
console xen0).
 “1:2345:respawn:/sbin/getty 38400 hvc0”
 En el /etc/securetty verificamos que existan las líneas con
“xvc0” y “hvc0”
 En el archivo /etc/sysctl.conf agregar las líneas para evitar
la sincronización del reloj dom0 vs. domU:
 xen.independent_wallclock=1
Copiar y modificar archivos de
Máquinas Virtuales
 Opcionalmente si se presentan mensajes de error
por dmesg sobre sincrronización del error o hay
problemas durante el booteo:
 “chmod -x /etc/init.d/hwclock*”
 Para cambiar la hora del sistema se debe usar el
comando hwclock (man hwclock, forear o
googlear).
 También se puede utiliza ntpdate para sincronizar
con un servidor del tiempo (forear o googlear).
Copiar y modificar archivos de
Máquinas Virtuales
# /etc/fstab: static file system information.
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/xvda1 / ext3 errors=remount-ro 0 1
/dev/xvda2 /var ext3 defaults 0 2
/dev/xvda3 /tmp ext3 defaults 0 2
/dev/xvda4 none swap sw 0 0
Copiar y modificar archivos de
Máquinas Virtuales
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface eth0
# Using Xen NAT network configuration
allow-hotplug eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.0.0.0
Copiar y modificar archivos de
Máquinas Virtuales
 En el /etc/hosts añadir estas líneas:
− 127.0.0.1 localhost
− 10.0.0.1xen1.localdomain xen1
− 10.0.0.2xen2.localdomain xen2
 En el /etc/hostname colocar:
− Xen1
 Los nombres de DNS son prácticamente internos
debido al NAT y a la red privada detrás del NAT.
Instalación de Xen
 Ejecutamos apt-get install xen-linux-system
 Copiamos el directorio /lib a la partición / de cada
máquina virtual:
− cp -ax /lib /mnt/xen0/raiz
 Reiniciamos e iniciamos con la opción Linux Xen,
la cual, debería ser la primera en el gestor de
arranque GRUB.
Modificar archivos de dom 0
 En el archivo /etc/xen/xen0 agregar la línea:
 extra="clocksource=jiffies"
 En el /boot/grub/menu.lst colocar en la línea del kernel lo
siguiente (Ver sección del manual “Xen Boot Options”):
 kernel noreboot
 Actualizar el gestor de arranque GRUB, con update-grub
(o grub-install, ver contenido de /proc/partitions y
/boot/grub/device.map)
− Si hay fallo en el booteo y se desean ver los mensajes de
depuración, colocar (y actualizar el grub):
 kernel noreboot sync_console
Modificar archivos del dom 0
 Si se cambia el archivo de configuración del
demonio de Xen en el dom0 /etc/xen/xend-
config.sxp debe reiniciarse el demonio:
 /etc/init.d/xend restart
Creación de archivos de conf. de
máquinas virtuales
 Consultar documentación del archivo /etc/xen/xend-
config.sxp.
 La interfaz física de red se renombra siempre de eth0 a
peth0, siendo eth0 un alias de peth0.
 La interfaz virtual que ve la máquina virtual como una
como si fuera si propia interfaz física es eth0.
 MAC Address: 00:16:3e:*:*:* reservadas para sistemas
Xen, cuidado no duplicar MAC entre servidores).
Creación de archivos de conf. de
máquinas virtuales
 Tipos de configuración de red (modificar archivo /etc/xen/xend-
config.sxp, reiniciar máquinas virtuales, y luego, xend):
− Red Tonta / Dummy (Sin red).
− Bridged / Puente Ethernet (DHCP transparente, VLAN).
 Nombre del bridge predeterminado: xenbr0
− NAT (VLAN, NAT).
 Red privada: 10.0.0.0
 Puerta de Enlace: 10.0.0.254
− ROUTE (Avanzado).
− Personalizada (Modificar script /etc/xen/scripts)
Máquina Virtual Xen0
 Archivo de máquina virtual Xen0 en
/etc/xen/xen0:
kernel = "/boot/vmlinuz-2.6.26-2-xen-amd64"
extra = " acpi=off clocksource=jiffies"
ramdisk = "/boot/initrd.img-2.6.26-2-xen-amd64"
memory = 1024
name = "xen0"
vcpus = 2
root = "/dev/xvda1 rw"
disk = ["phy:/dev/vg_interno/lv_xen0_raiz,xvda1,w",
"phy:/dev/vg_interno/lv_xen0_var,xvda2,w",
"phy:/dev/vg_interno/lv_xen0_tmp,xvda3,w",
"phy:/dev/vg_interno/lv_xen0_swap,xvda4,w"]
vif = ["ip=10.0.0.1,mac=00:16:3e:00:00:01"]
Archivo de Configuración Xen1
 Archivo de máquina virtual Xen1 en
/etc/xen/xen1:
kernel = "/boot/vmlinuz-2.6.26-2-xen-amd64"
extra = " acpi=off clocksource=jiffies"
ramdisk = "/boot/initrd.img-2.6.26-2-xen-amd64"
memory = 1024
name = "xen1"
vcpus = 2
root = "/dev/xvda1 rw"
disk = ["phy:/dev/vg_interno/lv_xen1_raiz,xvda1,w",
"phy:/dev/vg_interno/lv_xen1_var,xvda2,w",
"phy:/dev/vg_interno/lv_xen1_tmp,xvda3,w",
"phy:/dev/vg_interno/lv_xen1_swap,xvda4,w"]
vif = ["ip=10.0.0.2,mac=00:16:3e:00:00:02"]
Iniciar las máquinas virtuales
 xm create/destroy xen0
 xm save/restore xen0
 xm pause/unpause xen0
 xm shutdown xen0
 xm list
 xm top
 xm reboot
 /etc/init.d/xend restart
Preámbulo de virtualización
completa
import os, re
arch = os.uname()[4]
if re.search('64', arch):
arch_libdir = 'lib64'
else:
arch_libdir = 'lib'
kernel = "/usr/lib/xen/boot/hvmloader"
builder='hvm'
Parámetros de virtualización
completa para memoria
 Definir la cantidad de memoria sombra (shadow)
debe ser igual a 2KB por MB de la memoria
asignada al dom U más unos pocos MB por CPU
virtual asignado (8 MB debería ser suficiente):
− shadow_memory = 8
Parámetros de virtualización
Completa con VNC
 Parámetros para habilitar acceso VNC (especial no el común) en la
virtualización completa (ejemplo con VNC sin contraseña):
− vnc=1
− sdl=0
− nographici=0
− stdvga=0
− serial='pty' # Opcional
− (vnc-listen '0.0.0.0')
− (vncpasswd '')
Parámetros de configuración
regional (Opcionales)
− localtime=1
− keymap='es'
Particiones virtuales distintas a
discos o particiones del dom 0
 Para montar cd, (mejor) se crea una imagen ISO del mismo:
− dd if=/dev/cdrom of=/var/iso/cd.iso
 Se coloca en el archivo de configuración:
− disk = ["file:/var/iso/cd.iso,hda:cdrom,r"]
 Montar archivos de discos virtuales (no recomendado para
intensiva E/S a disco) después de crearlos con:
− dd if=/dev/zero of=vm1disk bs=1k seek=2048k count=1
− mkfs -t ext3 vm1disk
 Se coloca en el archivo de configuración:
− disk = ['file:/full/path/to/vm1disk,xvda5,w']
Particiones para inicio de máquina
virtual con / en NFS
 En el servidor NFS se exporta la partición / de la
máquina virtual:
− /export/vm1root 1.2.3.4/24 (rw,sync,no_root_squash)
 En el archivo de configuración de la máquina
virtual se debe colocar:
− root = '/dev/nfs'
− nfs_server = '1.2.3.4'
− nfs_root = '/export/vm1root'
Parámetros para cambiar el orden
de inicio de la máquina virtual
 Prioridad de arranque d (CD) y c (HDD), deben
definirse tanto "d" como "c" en la sección de
discos del archivo de configuración y
adicionalmente esto:
− boot = "dc"
 O bien,
− boot = “cd”
Parámetros para controlar
acciones en eventos de sistema
 Medidas tomadas cuando se generen los típicos
eventos de apagado, reinicio o fallo, se pueden
especificar todos, ninguno o algunos de ellos:
− on_poweroff = 'destroy'
− on_reboot = 'restart'
− on_crash = 'shutdown'
Consideraciones de Seguridad
 Ejecutar el mínimo número de servicios necesarios
en el dom0, debido a que los servicios que se
ejecutan como root aquí tienen acceso como root a
los dom U.
 Utilizar un firewall para restringir el acceso al
dominio de administración, es decir, dom 0.
 No permita a los usuarios acceder al dom 0.
Migración de Dominios
 La migración consiste en mover dominios U entre
servidor físicos distintos.
 Existen dos (2) tipos:
− Normal: se pausa el dom U, se copia la memoria a otro
servidor físico y se quita la pausa en éste último.
− En Vivo: hace lo mismo que el normal pero sin tener
que pausar la máquina.
 El comando para migrar es:
− xm migrate --live xen0 servidor.midominio.com
Migración de Dominio
 Sin el flag --live se realiza una migración normal
que pausa la máquina y copia la memoria a otro
servidor, por lo tanto, hay un tiempo largo de
espera mientras la información se transmite.
 Con el flag –live el tiempo fuera de línea es de 60-
300ms y la copia se realiza en línea.
 Las consolas abiertas con xm console se pierden
pero las conexiones de red no, por lo tanto, las
sesiones SSH permanecen abiertas.
Migración de Dominios
 La migración en vivo requiere suficiente memoria en el
servidor de destino que debe estar en la misma subred,
porque la MAC se migra, sino debe usar etherip o un tunel
IP.
 No hay una forma para pasar los datos de las particiones
de un servidor a otros, se debe utilizar:
− SAN, NAS, es más costoso pero permite presentar las
unidades a los dos (2) servidores de forma
transparente.
− GNDB permite exportar un volumen entre servidores.
− ISCSI es complicado pero hace algo similar a GNDB.
Preguntas Interesantes
 ¿Puede instalarse Xen dentro de Xen? sí, pero sólo
una vez y como HVM guest.
 ¿Tiene que ser el dom U. el mismo sistema
operativo del dom 0? No.
 ¿Cuándo Xen utiliza la virtualización por
hardware? Cuando se levanta un HVM Guest.
 ¿Existe manera de ejecutar invitados de 64 bits
siendo el dom 0 de 32 bits? en este sentido los
invitados dependen del Hypervisor no del dom 0.
Preguntas Interesante
 ¿Cómo puedo asignar un CPU específico al dom0?
− Debe añadirse a la línea de inicio del kernel lo
siguiente:
dom0_max_vcpus=1 & dom0_vcpus_pin
− Editar /etc/xen/xend-config.sxp colocando:
 set “(dom0-cpus 1)”
− Finalmente, reiniciar el dom 0.
− Otra forma es ejecutar sin reiniciar:
 xm vcpu-set 0 1
 xm vcpu-pin 0 0 0
Referencias
 Documentación de http://www.xen.org en especial:
− Xen Architecture Overview / 2008 / v1.2ye
− Xen v3.0 User Manual / 2005
− Xen Commonly Asked Questions, Octubre de 2009.
 Virtual Linux. Tim Jones, Emulex. Para IBM:
http://www.ibm.com/developerworks/library/l-linuxvirt/
 Documentación de Virtuozzo, Parallels, Noviembre de 2009:
http://www.parallels.com/
 Documentación de OpenVZ, Noviembre de 2009:
http://wiki.openvz.org/Main_Page
 Biblioteca de z/VM de IBM, Octubre de 2009: http://www.vm.ibm.com/,
http://publib.boulder.ibm.com/cgi-bin/bookmgr_OS390/Shelves/hcsh2ab0
Referencias
 Operating system-level virtualization, Abril 2011:
http://en.wikipedia.org/wiki/Operating_system-level_virtualization


Contenu connexe

Tendances (20)

Virtual pc
Virtual pcVirtual pc
Virtual pc
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
Maquinas virtuales
Maquinas virtualesMaquinas virtuales
Maquinas virtuales
 
Tipos de virtualizacion
Tipos de virtualizacionTipos de virtualizacion
Tipos de virtualizacion
 
Informe laboratorio 1 kvm
Informe laboratorio 1 kvmInforme laboratorio 1 kvm
Informe laboratorio 1 kvm
 
Manual clase VMware
Manual clase VMwareManual clase VMware
Manual clase VMware
 
Virtualización
VirtualizaciónVirtualización
Virtualización
 
Tipos de virtualizacion
Tipos de virtualizacionTipos de virtualizacion
Tipos de virtualizacion
 
V virtualización
V virtualizaciónV virtualización
V virtualización
 
MAQUINA VIRTUAL
MAQUINA VIRTUALMAQUINA VIRTUAL
MAQUINA VIRTUAL
 
KVM Kernel Based Virtual Machine
KVM  Kernel Based Virtual MachineKVM  Kernel Based Virtual Machine
KVM Kernel Based Virtual Machine
 
Tipos de virtualizacion
Tipos de virtualizacionTipos de virtualizacion
Tipos de virtualizacion
 
Que es la virtualización
Que es la virtualizaciónQue es la virtualización
Que es la virtualización
 
Maquinas virtuales y Virtualización
Maquinas virtuales y VirtualizaciónMaquinas virtuales y Virtualización
Maquinas virtuales y Virtualización
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
Maquina virtual
Maquina virtualMaquina virtual
Maquina virtual
 
Plan antiguo manana-_enrique_gullon-_presentacion_virtualizacion
Plan antiguo manana-_enrique_gullon-_presentacion_virtualizacionPlan antiguo manana-_enrique_gullon-_presentacion_virtualizacion
Plan antiguo manana-_enrique_gullon-_presentacion_virtualizacion
 
Presentación sobre aulas virtuales
Presentación sobre aulas virtuales Presentación sobre aulas virtuales
Presentación sobre aulas virtuales
 
Proyecto XenServer
Proyecto XenServerProyecto XenServer
Proyecto XenServer
 
Virtualización con vmware
Virtualización con vmwareVirtualización con vmware
Virtualización con vmware
 

En vedette

High Availability, Load Balancing and Replication on Linux
High Availability, Load Balancing and Replication on LinuxHigh Availability, Load Balancing and Replication on Linux
High Availability, Load Balancing and Replication on LinuxOlaf Reitmaier Veracierta
 
緊急対策!Yahoo!リスティング 新管理画面
緊急対策!Yahoo!リスティング 新管理画面緊急対策!Yahoo!リスティング 新管理画面
緊急対策!Yahoo!リスティング 新管理画面Yun Aono
 
Garcia Lorca La Casada Infiel
Garcia Lorca   La Casada InfielGarcia Lorca   La Casada Infiel
Garcia Lorca La Casada InfielJorge Llosa
 
11 Fotos Que Hicieron Historia
11 Fotos Que Hicieron Historia11 Fotos Que Hicieron Historia
11 Fotos Que Hicieron HistoriaJorge Llosa
 
Almuerzo del reencuentro 2
Almuerzo del reencuentro 2Almuerzo del reencuentro 2
Almuerzo del reencuentro 2Jorge Llosa
 
Filosofia para la edad madura
Filosofia para la edad maduraFilosofia para la edad madura
Filosofia para la edad maduraJorge Llosa
 
Un Bonito Cuento
Un Bonito CuentoUn Bonito Cuento
Un Bonito CuentoJorge Llosa
 
Soziale Medien in den Geisteswissenschaften: über die Wandlung unserer Forsch...
Soziale Medien in den Geisteswissenschaften: über die Wandlung unserer Forsch...Soziale Medien in den Geisteswissenschaften: über die Wandlung unserer Forsch...
Soziale Medien in den Geisteswissenschaften: über die Wandlung unserer Forsch...Mareike König
 

En vedette (20)

High Availability, Load Balancing and Replication on Linux
High Availability, Load Balancing and Replication on LinuxHigh Availability, Load Balancing and Replication on Linux
High Availability, Load Balancing and Replication on Linux
 
Subversion v6
Subversion v6Subversion v6
Subversion v6
 
Iguazu
IguazuIguazu
Iguazu
 
El maiz morado
El maiz moradoEl maiz morado
El maiz morado
 
緊急対策!Yahoo!リスティング 新管理画面
緊急対策!Yahoo!リスティング 新管理画面緊急対策!Yahoo!リスティング 新管理画面
緊急対策!Yahoo!リスティング 新管理画面
 
Farbtest
FarbtestFarbtest
Farbtest
 
Publicidad
PublicidadPublicidad
Publicidad
 
Garcia Lorca La Casada Infiel
Garcia Lorca   La Casada InfielGarcia Lorca   La Casada Infiel
Garcia Lorca La Casada Infiel
 
PARA TI
PARA TIPARA TI
PARA TI
 
Diciembre2013 advientoweb
Diciembre2013   advientowebDiciembre2013   advientoweb
Diciembre2013 advientoweb
 
11 Fotos Que Hicieron Historia
11 Fotos Que Hicieron Historia11 Fotos Que Hicieron Historia
11 Fotos Que Hicieron Historia
 
Mujeres
MujeresMujeres
Mujeres
 
Almuerzo del reencuentro 2
Almuerzo del reencuentro 2Almuerzo del reencuentro 2
Almuerzo del reencuentro 2
 
MasterBase® ESP
MasterBase® ESPMasterBase® ESP
MasterBase® ESP
 
Filosofia para la edad madura
Filosofia para la edad maduraFilosofia para la edad madura
Filosofia para la edad madura
 
Rusia
RusiaRusia
Rusia
 
Präsenz Management
Präsenz ManagementPräsenz Management
Präsenz Management
 
Dios Lo Sabe
Dios Lo SabeDios Lo Sabe
Dios Lo Sabe
 
Un Bonito Cuento
Un Bonito CuentoUn Bonito Cuento
Un Bonito Cuento
 
Soziale Medien in den Geisteswissenschaften: über die Wandlung unserer Forsch...
Soziale Medien in den Geisteswissenschaften: über die Wandlung unserer Forsch...Soziale Medien in den Geisteswissenschaften: über die Wandlung unserer Forsch...
Soziale Medien in den Geisteswissenschaften: über die Wandlung unserer Forsch...
 

Similaire à Virtualización de GNU/Linux Debian con Xen

Introduccion a la Virtualización.pdf
 Introduccion a la Virtualización.pdf Introduccion a la Virtualización.pdf
Introduccion a la Virtualización.pdfJulianHernandez858831
 
Virtualizacion con Software Libre en el camino hacia la nube
Virtualizacion con Software Libre en el camino hacia la nubeVirtualizacion con Software Libre en el camino hacia la nube
Virtualizacion con Software Libre en el camino hacia la nubeRodolfo Pilas
 
Virtualización
VirtualizaciónVirtualización
VirtualizaciónOscar
 
Administracion de redes virtualizacion
Administracion de redes   virtualizacionAdministracion de redes   virtualizacion
Administracion de redes virtualizacionYohany Acosta
 
Tipos de virtualizacion
Tipos de virtualizacionTipos de virtualizacion
Tipos de virtualizaciondanitza_chavez
 
Ensayo maquina virtual
Ensayo maquina virtualEnsayo maquina virtual
Ensayo maquina virtualalejandra65
 
Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2José Vázquez
 
Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2José Vázquez
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud ComputingJC Aguilar
 
Evaluacion VMWare ESX
Evaluacion VMWare ESXEvaluacion VMWare ESX
Evaluacion VMWare ESXITSanchez
 
Evaluacion VMWare
Evaluacion VMWareEvaluacion VMWare
Evaluacion VMWareITSanchez
 
Virtualizaicon de redes y Sistemas Operativos
Virtualizaicon de redes y Sistemas OperativosVirtualizaicon de redes y Sistemas Operativos
Virtualizaicon de redes y Sistemas OperativosVivianaParraga3
 
Vera damian05.odp
Vera damian05.odpVera damian05.odp
Vera damian05.odpDamian Vera
 

Similaire à Virtualización de GNU/Linux Debian con Xen (20)

Introduccion a la Virtualización.pdf
 Introduccion a la Virtualización.pdf Introduccion a la Virtualización.pdf
Introduccion a la Virtualización.pdf
 
Virtualizacion con Software Libre en el camino hacia la nube
Virtualizacion con Software Libre en el camino hacia la nubeVirtualizacion con Software Libre en el camino hacia la nube
Virtualizacion con Software Libre en el camino hacia la nube
 
Virtualización
VirtualizaciónVirtualización
Virtualización
 
Administracion de redes virtualizacion
Administracion de redes   virtualizacionAdministracion de redes   virtualizacion
Administracion de redes virtualizacion
 
Tipos de virtualizacion
Tipos de virtualizacionTipos de virtualizacion
Tipos de virtualizacion
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
Virtualizacion
VirtualizacionVirtualizacion
Virtualizacion
 
Ensayo maquina virtual
Ensayo maquina virtualEnsayo maquina virtual
Ensayo maquina virtual
 
Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2
 
Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2Ponencia virtualización sl alejandro vázquez 2
Ponencia virtualización sl alejandro vázquez 2
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
TECNOLOGÍAS EN LA NUBE(UNIDAD I)
TECNOLOGÍAS EN LA NUBE(UNIDAD I) TECNOLOGÍAS EN LA NUBE(UNIDAD I)
TECNOLOGÍAS EN LA NUBE(UNIDAD I)
 
Evaluacion VMWare ESX
Evaluacion VMWare ESXEvaluacion VMWare ESX
Evaluacion VMWare ESX
 
Evaluacion VMWare
Evaluacion VMWareEvaluacion VMWare
Evaluacion VMWare
 
Virtualizaicon de redes y Sistemas Operativos
Virtualizaicon de redes y Sistemas OperativosVirtualizaicon de redes y Sistemas Operativos
Virtualizaicon de redes y Sistemas Operativos
 
Vera damian05
Vera damian05Vera damian05
Vera damian05
 
Vera damian05.odp
Vera damian05.odpVera damian05.odp
Vera damian05.odp
 

Plus de Olaf Reitmaier Veracierta

Bandwidth control approach - Cisco vs Mikrotik on Multitenancy
Bandwidth control approach - Cisco vs Mikrotik on MultitenancyBandwidth control approach - Cisco vs Mikrotik on Multitenancy
Bandwidth control approach - Cisco vs Mikrotik on MultitenancyOlaf Reitmaier Veracierta
 
Arquitectura de Referencia - BGP - GSLB - SLB
Arquitectura de Referencia - BGP - GSLB - SLBArquitectura de Referencia - BGP - GSLB - SLB
Arquitectura de Referencia - BGP - GSLB - SLBOlaf Reitmaier Veracierta
 
Estrategia para Despliegue de Contenedores (Agile/DevOps)
Estrategia para Despliegue de Contenedores (Agile/DevOps)Estrategia para Despliegue de Contenedores (Agile/DevOps)
Estrategia para Despliegue de Contenedores (Agile/DevOps)Olaf Reitmaier Veracierta
 

Plus de Olaf Reitmaier Veracierta (20)

PoC Azure Administration
PoC Azure AdministrationPoC Azure Administration
PoC Azure Administration
 
RabbitMQ Status Quo Critical Review
RabbitMQ Status Quo Critical ReviewRabbitMQ Status Quo Critical Review
RabbitMQ Status Quo Critical Review
 
AWS Graviton3 and GP3
AWS Graviton3 and GP3AWS Graviton3 and GP3
AWS Graviton3 and GP3
 
Kubernetes Workload Rebalancing
Kubernetes Workload RebalancingKubernetes Workload Rebalancing
Kubernetes Workload Rebalancing
 
KubeAdm vs. EKS - The IAM Roles Madness
KubeAdm vs. EKS - The IAM Roles MadnessKubeAdm vs. EKS - The IAM Roles Madness
KubeAdm vs. EKS - The IAM Roles Madness
 
AWS Cost Optimizations Risks
AWS Cost Optimizations RisksAWS Cost Optimizations Risks
AWS Cost Optimizations Risks
 
AWS Network Architecture Rework
AWS Network Architecture ReworkAWS Network Architecture Rework
AWS Network Architecture Rework
 
SRE Organizational Framework
SRE Organizational FrameworkSRE Organizational Framework
SRE Organizational Framework
 
Insight - Architecture Design
Insight - Architecture DesignInsight - Architecture Design
Insight - Architecture Design
 
Bandwidth control approach - Cisco vs Mikrotik on Multitenancy
Bandwidth control approach - Cisco vs Mikrotik on MultitenancyBandwidth control approach - Cisco vs Mikrotik on Multitenancy
Bandwidth control approach - Cisco vs Mikrotik on Multitenancy
 
Transparent Layer 2 Bandwidth Shaper
Transparent Layer 2 Bandwidth ShaperTransparent Layer 2 Bandwidth Shaper
Transparent Layer 2 Bandwidth Shaper
 
Arquitectura de Referencia - BGP - GSLB - SLB
Arquitectura de Referencia - BGP - GSLB - SLBArquitectura de Referencia - BGP - GSLB - SLB
Arquitectura de Referencia - BGP - GSLB - SLB
 
Backup aaS Solution Architecture
Backup aaS Solution ArchitectureBackup aaS Solution Architecture
Backup aaS Solution Architecture
 
Presentación de Arquitectura en la Nube
Presentación de Arquitectura en la NubePresentación de Arquitectura en la Nube
Presentación de Arquitectura en la Nube
 
Distributed Web Cluster (LAPP)
Distributed Web Cluster (LAPP)Distributed Web Cluster (LAPP)
Distributed Web Cluster (LAPP)
 
Multi-Cloud Connection Architecture
Multi-Cloud Connection ArchitectureMulti-Cloud Connection Architecture
Multi-Cloud Connection Architecture
 
Managed Cloud Services Revision
Managed Cloud Services RevisionManaged Cloud Services Revision
Managed Cloud Services Revision
 
Ingeniería de Software
Ingeniería de SoftwareIngeniería de Software
Ingeniería de Software
 
Estrategia para Despliegue de Contenedores (Agile/DevOps)
Estrategia para Despliegue de Contenedores (Agile/DevOps)Estrategia para Despliegue de Contenedores (Agile/DevOps)
Estrategia para Despliegue de Contenedores (Agile/DevOps)
 
On-Premise Private Cloud Architecture
On-Premise Private Cloud ArchitectureOn-Premise Private Cloud Architecture
On-Premise Private Cloud Architecture
 

Dernier

TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 

Dernier (20)

TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 

Virtualización de GNU/Linux Debian con Xen

  • 1. Virtualización con Xen 3.2 en GNU /Linux Debian Lenny 5.0 / Squeeze 6.0 Ing. Olaf Reitmaier Veracierta Caracas, Abril de 2011
  • 2. Virtualización  Es un mecanismo, modelo o método de abstracción del hardware.  El fin de la virtualización es permitir que el hardware sea compartido por varias instancias de sistemas operativos.  Lo que se quiere virtualizar es el hardware.  La pregunta es: ¿Cómo se hace?.
  • 3. Virtualización • Búsqueda de soluciones para el aislamiento y compartición de: – CPU y Memoria. – Dispositivos de Bloques. – Dispositivos de Red. – Tasa de E/S. – Control de Ejecución. – Migración en caliente. – Imágenes y instantáneas.
  • 4. Virtualización de Hardware  No es un tema nuevo, hace más de cuatro (4) décadas se utilizó en el IBM 7044.  La IBM 704 que implementaba Compatible Time Sharing System desarrollado por el MIT.  El proyecto Atlas de supercomputación de la Universidad de Manchester, son pioneros en la demanda por páginas y llamadas de supervisión.  El Mainframe IBM 360 modelo 67, virtualizaba hardware con un “supervisor”, en los 70s se denominó hypervisor, hoy en día es superado por el System z9.
  • 5. Virtualización del Procesador  En los 70s se compilaba a P-CODE o pseudo código que era ejecutado por un maquina virtual (simulador) no por el hardware propiamente.  En los 60s BCPL el ancestro de C, compilaba en un pseudo código llamado código objeto u O- CODE, que después era compilado en código de máquina (binario). Este es el esquema actual de compilación de Linux pero con lenguaje C.
  • 6. Virtualización de Instrucciones  Un nuevo aspecto de virtualización es la llamada virtualización del conjunto de instrucciones o traducción binaria.  En la traducción binaria, una instrucción virtual es traducida al conjunto de instrucciones físicas de la capa de hardware de forma dinámica (o estática).  La traducción ocurre a medida que se ejecuta el código, cuando hay un salto el nuevo conjunto de instrucciones virtuales es cargado y traducido.
  • 7. Virtualización de Instrucciones  La traducción binaria es similar al “caching” de operaciones (instrucciones), donde los bloques de instrucciones son movidos de la memoria a una cache local rápida para su ejecución.  Transmeta desarrollo una CPU que permite realizar esto, esta arquitectura propietaria se denomina Code Morphing.  Esta técnica es similar a la utilizada por las soluciones actuales de virtualización completa para encontrar y redireccionar las instrucciones privilegiadas, a los fines de resolver ciertos problemas con los conjuntos de instrucciones.
  • 8. Tipos de Virtualización de Hardware por Software  Emulación de Hardware (Hardware Emulation).  Paravirtualización (Paravirtualization).  Virtualización Completa (Fullvirtualization).  Virtualización a nivel de Sistema Operativo (Operating System-Level Virtualization).
  • 9. Emulación de Hardware Hardware (Intel, AMD, Sparc, ...) Hardware Virtual A (Intel) Hardware Virtual B (AMD) Sistema Operativo Invitado I Sistema Operativo Invitado II Sistema Operativo Invitado III Sistema Operativo Invitado IV Sistema Operativo (Windows, Linux, Solaris, ...) Emulador de Hardware
  • 10. Emulación de Hardware  En emulaciones de alta fidelidad de ciclos de CPU, precisión, líneas de procesamiento (pipelines) y cache, puede ser más lenta en el orden O(1000).  El emulador debe ejecutarse o ser un sistema operativo específico para un hardware específico, pero la ventaja está en la transparencia con que se puede ejecutar un sistema operativo invitado destinado para un procesador Power PC en un servidor anfitrión con procesador Intel, simplemente emulando PowerPC, por ejemplo.  QEMU, Bochs y ZSNES (Nintendo Emulator) son ejemplos de emulación de hardware.
  • 11. Virtualización Completa Sistema Operativo Invitado I Sistema Operativo Invitado II Sistema Operativo Invitado III Hardware (Intel, AMD, Sparc, ...) Sistema Operativo (Windows, Linux, Solaris, ...) Hypervisor (VMM = Mediador de Máquinas Virtuales) Cónsola de Administración del Hypervisor
  • 12. Virtualización Completa  Se utiliza una máquina virtual que sirve de mediador entre el hardware físico cuya administración es monopolizada por el sistema operativo anfitrión.  Las instrucciones del sistema operativo invitado deben ser atrapadas y manejadas a través del mediador (supervisor ó “hypervisor”) debido a que los recursos del hardware son compartidos por todos los invitados.
  • 13. Virtualización Completa  La virtualización completa es más lenta que utilizar el hardware directamente debido a la capa de abstracción impuesta por el “hypervisor”.  La virtualización completa requiere que el sistema operativo soporte la arquitectura de hardware donde se ejecuta el mediador.  VMWare, Virtualbox y z/VM son ejemplo de virtualización completa.
  • 14. Paravirtualización Sistema Operativo Invitado I Sistema Operativo Invitado II Modificaciones Internas Modificaciones Internas Sistema Operativo Invitado III Modificaciones Externas Hardware (Intel, AMD, Sparc, ...) Hypervisor (VMM = Virtual Machine Mediator) = Sistema Operativo de Virtualización Cónsola de Administración del Hypervisor
  • 15. Paravirtualización  Usa también un mediador o “hypervisor” pero requiere la modificación interna del núcleo del sistema operativo invitado con “parches” de código para soportar la paravirtualización, o bien, agregando modificaciones externas (capas de firmware) y delegando la virtualización al hardware si éste soporta instrucciones de virtualización nativas (activar en BIOS); tecnología Intel VT y AMD V (flags de cpu “vmx” y “svm” en Linux, respectivamente).
  • 16. Paravirtualización  Ofrece un desempeño muy cercano a un sistema no virtualizado porque no no requiere recompilación, atrapado o caching de instrucciones especiales o privilegiadas.  Pueden ejecutarse múltiples sistemas operativos concurrentemente en un mismo hypervisor.  Xen y UML son ejemplos de paravirtualización.
  • 17. Virtualización a Nivel de Sistema Operativo Sistema Operativo de Virtualización (Anfitrión) Sistema Operativo Invitado Servidor Privado (Jaula) Sistema Operativo Invitado Servidor Privado (Jaula) Sistema Operativo Invitado Servidor Privado (Jaula) Sistema Operativo Invitado Servidor Privado (Jaula) Hardware (Intel, AMD, Sparc, ...)
  • 18. Virtualización a Nivel de Sistema Operativo  Requiere que se modifique el kernel del sistema operativo de virtualización y no el de cada invitado manteniendo un desempeño bastante cercano al real. • Generalmente no es muy flexible porque no soporta que los sistemas operativos invitados sean diferentes o en muchos casos que tengan una versión diferente del kernel del sistema operativo anfitrión.  Aisla los servidores en una especie de jaulas privadas (~chroots) con espacios de usuario distintos siendo estos copias o instancias del sistema operativo de anfitrión, logrando una eficiencia cercana a la real.
  • 19. Virtualización a Nivel de Sistema Operativo  El comando chroot, FreeVPS, iCore Virtual Accounts, Linux-VServer, lxs, Virtuozzo, OpenVZ, FreeBSD Jail, sysjail, WPARs AIX y Solaris Container Zones son ejemplos de este modelo de virtualización.  El almacenamiento se hace a través de un sistema de archivos compartidos con una técnica de “copy on write” a nivel de archivos fácil de respaldar y migrar en caliente, pero muy diferente a las técnica de “copy on write” por bloques de los sistema de virtualización completa que permiten hacer “snapshots”.
  • 21. Xen  Sistema de Virtualización con licencia GNU/GPL basado en el Sistema Operativo Linux.  www.xen.org
  • 22. Elementos de Xen  Xen Hypervisor (CPU & Memoria)  Domain/Dominio 0 (PV Backend Drivers)  Domain / Dominio U − PV Guest / Invitado PV (PV “Frontend” Drivers) − HVM Guest / Invitado HVM  Xen Firmware  Qemu-dm  Domain Managment and Control / Dominio de Gestión y Control (Xen DM&C)
  • 23. Elementos de Xen Domain 0 Xen Hypervisor Domain U PV Guest Domain U HVM Guest . . . . . . Xen DM & C
  • 24. Xen Hypervisor  Capa básica de abstracción, situada directamente en el hardware antes del sistema operativo.  Coordina el trabajo del CPU, el particionamiento de la memoria entre todas las máquinas virtuales que se ejecutan en el hardware físico.  Controla la ejecución de las máquinas virtuales mientras se ejecutan en el entorno compartido de procesamiento.
  • 25. Xen Hypervisor  El Hypervisor NO maneja los dispositivos de red, de almacenamiento externo, video, entre otras funciones de E/S (I/O) características de un sistema de computación, algunas instrucciones son puenteadas directamente al Hardware (Xen PCI Passthru).  La modificaciones hechas al sistema operativo invitado incluyendo los controladores de red, almacenamiento y otras funciones de I/O se encargan de presentar a sistema operativo invitado todo lo que el hypervisor no gestiona per se.
  • 26. Domain 0  Es una máquina virtual que ejecuta un kernel de Linux modificado.  Tiene privilegios especiales para acceder a los recursos de E/S, así como, interactuar con otras máquinas virtuales (dom U) ejecutándose en éste sistema.  Debe ejecutarse antes de poder iniciar las otras máquinas virtuales (dom U).
  • 27. Domain 0 – Drivers Domain 0 Xen Hypervisor Domain U PV Guest Domain U HVM Guest . . . . . . Xen DM & C PV BE Drivers
  • 28. Domain 0 - Drivers  El dominio 0 incluye dos (2) drivers o controladores: − Network Backend Driver: para permitir la configuración y uso de la red, por parte de los dominios U, este driver se comunica directamente con el hardware de red para procesar las solicitudes de los dominios U. − Block Backend Driver: para permitir la configuración y uso del acceso a discos locales, por parte de los dominios U, este driver se comunica directamente con los discos de almacenamiento locales para leer y escribir datos según las solicitudes de los dominios U.
  • 29. Domain U  Representa a todas las máquinas virtuales distintas al dominio 0  Representa también dependiendo del contexto a una máquina virtual genérica distinta del dominio 0.  Existen dos (2) tipos de dominios U: − PV G uest − HVM Guest
  • 30. Domain U - Tipos  PV Guest (Paravirtualized Guest): son las máquinas paravirtualizadas que se ejecutan en un sistema operativo modificado, generalmente producido de un GNU/Linux, Solaris, FreeBSD.  HVM Guest (Hardware Virtual Machine Guest): son las máquinas completamente virtualizadas (full virtualized) que incluyen Windows y otros sistemas operativos no modificados.
  • 31. Domain U – Tipos  PV Guest : − No tienen acceso directo al hardware, por el contrario, utilizan PV drivers (semejantes al dominio 0) para acceder al hardware. − Reconocen que las otras máquinas virtuales se están ejecutando en el mismo hardware ó máquina.
  • 32. Domain U – Tipos  HVM Guest : − Tiene acceso casi directo al hardware, a través de un demonio Qemu-dm individual ejecutado en el dom 0. En versiones posteriores de Xen, se sustituirá Qemu-dm por Stub-dm para unificar todo en un demonio. − Desconocen que existen otras máquinas virtuales ejecutándose en el mismo hardware o máquina. − Requieren de un firmware especial llamado “Xen Firmware”, debido a que se ejecutan sin modificaciones en el sistema operativo que son absorbidas por el firmware, que provee las funciones de un BIOS compatible con PC.
  • 33. Domain 0 – Drivers Domain 0 Xen Hypervisor Domain U PV Guest Domain U HVM Guest . . . . . . Xen DM & C PV BE Drivers Qemu-dm PV FE Drivers Xen Firmware
  • 34. Xen Domain Managment and Control (Xen DM&C)  En el dominio 0 se ejecuta el demonio xend, una aplicación (escrita en Python) que se considera el administrador del ambiente Xen.  Utiliza la librería libxenctrl (escrita en C) para realizar solicitudes al Xen Hypervisor.  Con la interfaz de comando Xm se realizan solicitudes a Xend a través del protocolo XML RPC, las cuales, el dominio 0 gestiona con Xen Hypervisor.
  • 35. Xen Domain Managment and Control (Xen DM&C) Domain 0 Xen Hypervisor . . .Xend libxenctrl Xm XML RPC
  • 36. Xen Interdomain Communication (PV Guest) Domain 0 Xen Hypervisor Domain U PV Guest PV Backend Drivers Event Channel PV Frontend Drivers Shared Memory Data Dom U Data Dom U
  • 37. Cómo configurar Xen  A pie (las instrucciones incluídas aquí).  Cónsola: xen-tools (super rígida, googlear).  Gráfica: virt-manager, etc.  Completar con otros ejemplos (googlear).
  • 38. Pasos para Xen en Debian 1) Instalar GNU/Linux Debian (Con LVM) en servidor (32/64 bits) y pudieran crearse las particiones de las máquinas virtuales. 2) Actualizar el sistema a través de los repositorios (apt-get update; apt-get dist-upgrade). 3) Planear la distribución de las máquinas virtuales: prioridades, cuántas máquinas virtuales, % espacio, % memoria y # cpu por c/u. 4) Particionar el disco del servidor según la distribución planeada. 5) Instalar el sistema Xen e reiniciar con el kernel de Xen. 6) Copiar archivos de máquinas virtuales en particiones y modificarlos según sea necesario (securetty, fstab, interfaces, hwclock, sysctl, etc). 7) Iniciar las máquinas virtuales (xm create).
  • 39. Distribución de Máquinas Virtuales  Supongamos Servidor HP Proliant DL 580 G5 / 2 CPU Quadcore 2.4Ghz 64 bits, 4 GB RAM, RAID 5 / 400 GB.  Xen dectará 8 cpus físicos, mapeando el cpu virtual #0 al core #1 del cpu físico #1 y el cpu virtual #7 al core #4 del cpu #2, uno a uno de forma ordenada.  Xen requiere al menos uno (1) o dos (2) cpu(s) virtual(es) dedicado(s) al dom 0 si las máquinas virtuales harán muchas operaciones de E/S (i.e. base de datos, red, etc).  Xen requiere al menos 128 MB (recomendado 512 MB) para el dom 0.
  • 40. Distribución de Máquinas Virtuales  Xen requiere una instalación mínima de Debian en el dom 0, el cual, no debe alojar aplicaciones, sistema o servicios pesados o destinados para las máquinas virtuales.  Opcionalmente podría mejorar el paralelismo de E/S de disco si se destina un disco (arreglo) al dom 0 y otro(s) a los dominios U (no se ha comprobado).  Cada dom U (incluyendo dom 0) debe tener su propia espacio o área de intercambio SWAP (partición).  La partición /boot sólo es necesario en el dom 0, los dom U inician con un disco RAM (vmlinuz + initrd) que se instala en el dom 0 y es un kernel de Linux modificado.
  • 41. Distribución de Máquinas Virtuales  Si se utiliza LVM la partición /boot del dominio 0 debe estar fuera de LVM en una partición /boot.  Para mayor eficiencia no se recomienda utilizar LVM en las máquinas virtuales (dentro de sí mismas), es decir, ellas no deben ver (verán) particiones normales.  Se debe dejar espacio libre LVM para expandir las particiones LVM del dom 0 y las dom U. Si se necesita expandir se hará desde el dom 0 y será transparente para los dom U.
  • 42. Particionamiento – Ejemplo A /boot (ext3) 1 GB LVM (400 – 1 = 399 GB) vg_interno (Volume Group) lv_xen0_raiz / 10 GB lv_xen0_var / 50 GB lv_raiz / 10 GB lv_var / 10 GB lv_tmp / 2 GB lv_swap / 2 GB lv_xen0_tmp / 2 GB lv_xen0_swap / 2 GB lv_xen1_raiz / 10 GB lv_xen1_var / 100 GB lv_xen1_tmp / 2 GB lv_xen1_swap / 2 GB Dom 0 Dom U (xen0) Dom U (xen1) 399 – 202 GB = 197 GB Libres para expansión de LV /dev/sda - RAID 5 de 400 GB
  • 43. Particionamiento – Ejemplo B /boot (ext3) 1 GB LVM (60 - 1 GB) vg_interno (Volume Group) lv_xen0_raiz / 10 GB lv_xen0_var / 50 GB lv_raiz / 10 GB lv_var / 10 GB lv_tmp / 2 GB lv_swap / 2 GB lv_xen0_tmp / 2 GB lv_xen0_swap / 2 GB lv_xen1_raiz / 10 GB lv_xen1_var / 100 GB lv_xen1_tmp / 2 GB lv_xen1_swap / 2 GB Dom 0 Dom U (xen0) Dom U (xen1) /dev/sda - RAID 1 de 60 GB /dev/sdb - RAID 1 de 400 GB /boot (ext3) 1 GB LVM (400 - 1 GB)
  • 44. Configuración de LVM  Los comandos pv+TAB, vg+TAB y lv+TAB, consultar man de cada uno y man lvm.  Antes de utilizar un disco o partición con lvm se debe inicializar con: − pvcreate /dev/sda.  Es preferible instalar LVM v2 (Debian 5.0 Lenny) desde el repositorio oficial.  SEGUIREMOS EL EJEMPLO A DE PARTICIONAMIENTO
  • 45. Configuración de LVM  Secuencia normal de creación de volúmenes lógicos (sino se realiza durante la instalación del sistema operativo): − lv_create -n lv_xen0_raiz -L 10 GB /dev/sda vg_interno − mkfs.ext3 /dev/vg_interno/lv_xen0_raiz − lv_create -n lv_xen0_swap -L 2GB /dev/sda vg_interno − mkswap /dev/vg_interno/lv_xen0_raiz  Repetir para cada volumen lógico (lv).
  • 46. Copiar y modificar archivos de máquinas virtuales  mkdir -p /mnt/xen0/{raiz, var, tmp}  cd /mnt/xen0  mount /dev/vg-interno/lv-xen0_raiz raiz  mount /dev/vg-interno/lv_xen0_var var  cp -ax / /mnt/xen0/raiz  cp -ax /var/* /mnt/xen0/var
  • 47. Copiar y modificar archivos de Máquinas Virtuales  Eliminamos los directorios copiados de / a /mnt/xen0/raiz si no son necesarios.  Editamos los archivos de configuración de Xen0: − /etc/inittab (tty) − /etc/securetty (hvc0 y xvc0) − /etc/fstab (xvda's) − /etc/hosts (nombre del equipo, alias e IP) − /etc/hostname (nombre del equipo) − /etc/resolv.conf (IP servidor de DNS) − /etc/network/interfaces (eth0) − /etc/sysctl.conf (sincronización del reloj - clock)
  • 48. Copiar y modificar archivos de Máquinas Virtuales  En el /etc/inittab, verificamos la redirecciones de la salida de la consola tty1 de la máquina virtual a la cónsola del Hypervisor (o no se podrá hacer login vía el comando xm console xen0).  “1:2345:respawn:/sbin/getty 38400 hvc0”  En el /etc/securetty verificamos que existan las líneas con “xvc0” y “hvc0”  En el archivo /etc/sysctl.conf agregar las líneas para evitar la sincronización del reloj dom0 vs. domU:  xen.independent_wallclock=1
  • 49. Copiar y modificar archivos de Máquinas Virtuales  Opcionalmente si se presentan mensajes de error por dmesg sobre sincrronización del error o hay problemas durante el booteo:  “chmod -x /etc/init.d/hwclock*”  Para cambiar la hora del sistema se debe usar el comando hwclock (man hwclock, forear o googlear).  También se puede utiliza ntpdate para sincronizar con un servidor del tiempo (forear o googlear).
  • 50. Copiar y modificar archivos de Máquinas Virtuales # /etc/fstab: static file system information. # <file system> <mount point> <type> <options> <dump> <pass> proc /proc proc defaults 0 0 /dev/xvda1 / ext3 errors=remount-ro 0 1 /dev/xvda2 /var ext3 defaults 0 2 /dev/xvda3 /tmp ext3 defaults 0 2 /dev/xvda4 none swap sw 0 0
  • 51. Copiar y modificar archivos de Máquinas Virtuales # The loopback network interface auto lo iface lo inet loopback # The primary network interface eth0 # Using Xen NAT network configuration allow-hotplug eth0 iface eth0 inet static address 10.0.0.1 netmask 255.0.0.0
  • 52. Copiar y modificar archivos de Máquinas Virtuales  En el /etc/hosts añadir estas líneas: − 127.0.0.1 localhost − 10.0.0.1xen1.localdomain xen1 − 10.0.0.2xen2.localdomain xen2  En el /etc/hostname colocar: − Xen1  Los nombres de DNS son prácticamente internos debido al NAT y a la red privada detrás del NAT.
  • 53. Instalación de Xen  Ejecutamos apt-get install xen-linux-system  Copiamos el directorio /lib a la partición / de cada máquina virtual: − cp -ax /lib /mnt/xen0/raiz  Reiniciamos e iniciamos con la opción Linux Xen, la cual, debería ser la primera en el gestor de arranque GRUB.
  • 54. Modificar archivos de dom 0  En el archivo /etc/xen/xen0 agregar la línea:  extra="clocksource=jiffies"  En el /boot/grub/menu.lst colocar en la línea del kernel lo siguiente (Ver sección del manual “Xen Boot Options”):  kernel noreboot  Actualizar el gestor de arranque GRUB, con update-grub (o grub-install, ver contenido de /proc/partitions y /boot/grub/device.map) − Si hay fallo en el booteo y se desean ver los mensajes de depuración, colocar (y actualizar el grub):  kernel noreboot sync_console
  • 55. Modificar archivos del dom 0  Si se cambia el archivo de configuración del demonio de Xen en el dom0 /etc/xen/xend- config.sxp debe reiniciarse el demonio:  /etc/init.d/xend restart
  • 56. Creación de archivos de conf. de máquinas virtuales  Consultar documentación del archivo /etc/xen/xend- config.sxp.  La interfaz física de red se renombra siempre de eth0 a peth0, siendo eth0 un alias de peth0.  La interfaz virtual que ve la máquina virtual como una como si fuera si propia interfaz física es eth0.  MAC Address: 00:16:3e:*:*:* reservadas para sistemas Xen, cuidado no duplicar MAC entre servidores).
  • 57. Creación de archivos de conf. de máquinas virtuales  Tipos de configuración de red (modificar archivo /etc/xen/xend- config.sxp, reiniciar máquinas virtuales, y luego, xend): − Red Tonta / Dummy (Sin red). − Bridged / Puente Ethernet (DHCP transparente, VLAN).  Nombre del bridge predeterminado: xenbr0 − NAT (VLAN, NAT).  Red privada: 10.0.0.0  Puerta de Enlace: 10.0.0.254 − ROUTE (Avanzado). − Personalizada (Modificar script /etc/xen/scripts)
  • 58. Máquina Virtual Xen0  Archivo de máquina virtual Xen0 en /etc/xen/xen0: kernel = "/boot/vmlinuz-2.6.26-2-xen-amd64" extra = " acpi=off clocksource=jiffies" ramdisk = "/boot/initrd.img-2.6.26-2-xen-amd64" memory = 1024 name = "xen0" vcpus = 2 root = "/dev/xvda1 rw" disk = ["phy:/dev/vg_interno/lv_xen0_raiz,xvda1,w", "phy:/dev/vg_interno/lv_xen0_var,xvda2,w", "phy:/dev/vg_interno/lv_xen0_tmp,xvda3,w", "phy:/dev/vg_interno/lv_xen0_swap,xvda4,w"] vif = ["ip=10.0.0.1,mac=00:16:3e:00:00:01"]
  • 59. Archivo de Configuración Xen1  Archivo de máquina virtual Xen1 en /etc/xen/xen1: kernel = "/boot/vmlinuz-2.6.26-2-xen-amd64" extra = " acpi=off clocksource=jiffies" ramdisk = "/boot/initrd.img-2.6.26-2-xen-amd64" memory = 1024 name = "xen1" vcpus = 2 root = "/dev/xvda1 rw" disk = ["phy:/dev/vg_interno/lv_xen1_raiz,xvda1,w", "phy:/dev/vg_interno/lv_xen1_var,xvda2,w", "phy:/dev/vg_interno/lv_xen1_tmp,xvda3,w", "phy:/dev/vg_interno/lv_xen1_swap,xvda4,w"] vif = ["ip=10.0.0.2,mac=00:16:3e:00:00:02"]
  • 60. Iniciar las máquinas virtuales  xm create/destroy xen0  xm save/restore xen0  xm pause/unpause xen0  xm shutdown xen0  xm list  xm top  xm reboot  /etc/init.d/xend restart
  • 61. Preámbulo de virtualización completa import os, re arch = os.uname()[4] if re.search('64', arch): arch_libdir = 'lib64' else: arch_libdir = 'lib' kernel = "/usr/lib/xen/boot/hvmloader" builder='hvm'
  • 62. Parámetros de virtualización completa para memoria  Definir la cantidad de memoria sombra (shadow) debe ser igual a 2KB por MB de la memoria asignada al dom U más unos pocos MB por CPU virtual asignado (8 MB debería ser suficiente): − shadow_memory = 8
  • 63. Parámetros de virtualización Completa con VNC  Parámetros para habilitar acceso VNC (especial no el común) en la virtualización completa (ejemplo con VNC sin contraseña): − vnc=1 − sdl=0 − nographici=0 − stdvga=0 − serial='pty' # Opcional − (vnc-listen '0.0.0.0') − (vncpasswd '')
  • 64. Parámetros de configuración regional (Opcionales) − localtime=1 − keymap='es'
  • 65. Particiones virtuales distintas a discos o particiones del dom 0  Para montar cd, (mejor) se crea una imagen ISO del mismo: − dd if=/dev/cdrom of=/var/iso/cd.iso  Se coloca en el archivo de configuración: − disk = ["file:/var/iso/cd.iso,hda:cdrom,r"]  Montar archivos de discos virtuales (no recomendado para intensiva E/S a disco) después de crearlos con: − dd if=/dev/zero of=vm1disk bs=1k seek=2048k count=1 − mkfs -t ext3 vm1disk  Se coloca en el archivo de configuración: − disk = ['file:/full/path/to/vm1disk,xvda5,w']
  • 66. Particiones para inicio de máquina virtual con / en NFS  En el servidor NFS se exporta la partición / de la máquina virtual: − /export/vm1root 1.2.3.4/24 (rw,sync,no_root_squash)  En el archivo de configuración de la máquina virtual se debe colocar: − root = '/dev/nfs' − nfs_server = '1.2.3.4' − nfs_root = '/export/vm1root'
  • 67. Parámetros para cambiar el orden de inicio de la máquina virtual  Prioridad de arranque d (CD) y c (HDD), deben definirse tanto "d" como "c" en la sección de discos del archivo de configuración y adicionalmente esto: − boot = "dc"  O bien, − boot = “cd”
  • 68. Parámetros para controlar acciones en eventos de sistema  Medidas tomadas cuando se generen los típicos eventos de apagado, reinicio o fallo, se pueden especificar todos, ninguno o algunos de ellos: − on_poweroff = 'destroy' − on_reboot = 'restart' − on_crash = 'shutdown'
  • 69. Consideraciones de Seguridad  Ejecutar el mínimo número de servicios necesarios en el dom0, debido a que los servicios que se ejecutan como root aquí tienen acceso como root a los dom U.  Utilizar un firewall para restringir el acceso al dominio de administración, es decir, dom 0.  No permita a los usuarios acceder al dom 0.
  • 70. Migración de Dominios  La migración consiste en mover dominios U entre servidor físicos distintos.  Existen dos (2) tipos: − Normal: se pausa el dom U, se copia la memoria a otro servidor físico y se quita la pausa en éste último. − En Vivo: hace lo mismo que el normal pero sin tener que pausar la máquina.  El comando para migrar es: − xm migrate --live xen0 servidor.midominio.com
  • 71. Migración de Dominio  Sin el flag --live se realiza una migración normal que pausa la máquina y copia la memoria a otro servidor, por lo tanto, hay un tiempo largo de espera mientras la información se transmite.  Con el flag –live el tiempo fuera de línea es de 60- 300ms y la copia se realiza en línea.  Las consolas abiertas con xm console se pierden pero las conexiones de red no, por lo tanto, las sesiones SSH permanecen abiertas.
  • 72. Migración de Dominios  La migración en vivo requiere suficiente memoria en el servidor de destino que debe estar en la misma subred, porque la MAC se migra, sino debe usar etherip o un tunel IP.  No hay una forma para pasar los datos de las particiones de un servidor a otros, se debe utilizar: − SAN, NAS, es más costoso pero permite presentar las unidades a los dos (2) servidores de forma transparente. − GNDB permite exportar un volumen entre servidores. − ISCSI es complicado pero hace algo similar a GNDB.
  • 73. Preguntas Interesantes  ¿Puede instalarse Xen dentro de Xen? sí, pero sólo una vez y como HVM guest.  ¿Tiene que ser el dom U. el mismo sistema operativo del dom 0? No.  ¿Cuándo Xen utiliza la virtualización por hardware? Cuando se levanta un HVM Guest.  ¿Existe manera de ejecutar invitados de 64 bits siendo el dom 0 de 32 bits? en este sentido los invitados dependen del Hypervisor no del dom 0.
  • 74. Preguntas Interesante  ¿Cómo puedo asignar un CPU específico al dom0? − Debe añadirse a la línea de inicio del kernel lo siguiente: dom0_max_vcpus=1 & dom0_vcpus_pin − Editar /etc/xen/xend-config.sxp colocando:  set “(dom0-cpus 1)” − Finalmente, reiniciar el dom 0. − Otra forma es ejecutar sin reiniciar:  xm vcpu-set 0 1  xm vcpu-pin 0 0 0
  • 75. Referencias  Documentación de http://www.xen.org en especial: − Xen Architecture Overview / 2008 / v1.2ye − Xen v3.0 User Manual / 2005 − Xen Commonly Asked Questions, Octubre de 2009.  Virtual Linux. Tim Jones, Emulex. Para IBM: http://www.ibm.com/developerworks/library/l-linuxvirt/  Documentación de Virtuozzo, Parallels, Noviembre de 2009: http://www.parallels.com/  Documentación de OpenVZ, Noviembre de 2009: http://wiki.openvz.org/Main_Page  Biblioteca de z/VM de IBM, Octubre de 2009: http://www.vm.ibm.com/, http://publib.boulder.ibm.com/cgi-bin/bookmgr_OS390/Shelves/hcsh2ab0
  • 76. Referencias  Operating system-level virtualization, Abril 2011: http://en.wikipedia.org/wiki/Operating_system-level_virtualization 