97
Virtualización con Xen

Virtualización con Xen

Embed Size (px)

Citation preview

Virtualización con Xen

● Presentación del Curso

● Presentación del Instructor

● Ubicación del Área de Refrigerios

● Ubicación de los Baños

● Uso de las Salas

● Reglas de la Institución

Nombre y Apellido:

● Alvaro José Linares Cabré

E-Mail:

[email protected]

Móvil:

● 0412 291 62 39

Experiencia:

● Quince (15) años.

Área de Experiencia:

● Consultor, Instructor, System Integrator, Sys Admin, Help Desk & Technical Support.

Logros:

● Microsoft (MCP, MCP+I, MCSE & MCSE+I), Cisco (CCNA), Citrix (CCA), Novell (CLP & CLE), IBM (PSE), Red Hat (RHCT), Sun (SCSAS), Zend (ZCE), W3Schools (HTML + CSS).

Conocimientos:

● Manejo de los sistemas operativos Windows 9x, Windows NT, Windows XP, Windows 2000, Windows 2003, Netware, Solaris, Linux, Mac OS.

● Manejo de los protocolos TCP/IP, IPX/SPX, NetBIOS, Apple Talk, RIP, IGRP, EIGRP, OSPF.

● Manejo de equipos activos Router, Switch, Firewall, VPN.

● Manejo de los estándares de 802.1q y 802.3ad.

● Manejo de los servicios de red DHCP, DNS, DDNS, SAMBA, NFS, SSH, FTP, OpenLDAP.

● Manejo de Web Server en diversas plataformas.

● Manejo de Mail Server & Instant Messaging Server (IM).

● Manejo de Seguridad Perimetral basado en soluciones de Hardware y Software.

● Manejo de Cluster en diversas plataformas.

● Manejo de Hardware en Servidores bajo varias soluciones de diversos fabricantes.

● Manejo de Virtualización de Plataformas basadas en software libre y software propietario.

Contenido Programático:

● Módulo I: Introducción a la virtualización

➔ Historia de la virtualización

➔ Ventajas de la virtualización

➔ Técnicas de virtualización

● Módulo II: Introducción al Hypervisor Xen

➔ Historia del proyecto Xen

➔ Características Xen

➔ Arquitectura de Xen

Contenido Programático:

● Módulo III: Instalación y configuración de Xen

➔ Requerimientos de hardware y software

➔ Instalación y configuración básica del entorno Xen

➔ Arranque y verificación del entorno Xen

➔ Configuración del demonio xend

➔ La herramienta de administración xm

Contenido Programático:

● Módulo IV: Creación de maquinas virtuales en Xen

➔ Introducción a la creación de maquinas virtuales con xen-tools

➔ Configuración de la herramienta xen-tools

➔ Comandos más comunes de la herramienta de xen-tools

➔ Creando maquinas virtuales PVM Linux

➔ Creando maquinas virtuales HVM Linux

➔ Iniciando y apagado maquinas virtuales

Contenido Programático:

● Módulo V: Administración de maquinas y recursos virtuales en Xen

➔ Inicio y apagado automático de maquinas virtuales

➔ Asignación de memoria virtual

➔ Asignación de CPUs virtuales

➔ Asignación de medios de almacenamiento virtual

➔ Asignación de recursos de red virtuales

➔ Clonación de maquinas virtuales

➔ Respaldar y restaurar maquinas virtuales

Contenido Programático:

● Módulo VI: Instalación y Configuración de XCP (Xen Cloud Platform)

➔ ¿Qué es XCP?

➔ Instalación y configuración de XCP

➔ Administración vía comando de XCP

➔ Administración vía GUI de XCP

Módulo I:Introducción a la virtualización

Historia de la virtualización

La virtualización comenzó a desarrollarse en la década de los sesenta para crear particiones de grandes piezas de hardware mainframe y lograr una mejor utilización. Hoy en día, las computadoras basadas en arquitecturas x86 se enfrentan al mismo problema de rigidez y subutilización que enfrentaron los mainframes en la década de los sesenta.

IBM implementó la virtualización por primera vez hace más de 30 años para particionar de manera lógica computadoras mainframe en máquinas virtuales separadas. Estas particiones permitieron que los mainframes ejecutaran múltiples tareas a la vez, es decir, que ejecutaran varias aplicaciones y procesos al mismo tiempo. Debido a que los mainframes constituían recursos costosos en ese momento, fueron diseñados para permitir la creación de particiones como un modo de aprovechar totalmente la inversión.

La virtualización se abandonó por completo durante las décadas de los ochenta y noventa, cuando las aplicaciones de cliente-servidor y los servidores y los escritorios x86 poco costosos dieron paso a la computación distribuida. La adopción masiva de Windows y la aparición de Linux como sistemas operativos para servidores en la década de los noventa establecieron los servidores x86 como el estándar del sector.

Fuente: www.vmware.com

Ventajas de la virtualización

Obtenga más ventajas con los recursos que posee: agrupe recursos de infraestructura de uso habitual y rompa con el modelo tradicional de “una aplicación por servidor” mediante la consolidación de servidores.

Reduzca los costos del centro de datos reduciendo su infraestructura física y mejorando el índice de servidores por administrador: menos servidores y hardware de TI relacionado significan una reducción de espacio físico y de requisitos de energía y refrigeración. Las mejores herramientas de administración le permiten mejorar el índice de servidores por administrador, de manera que los requisitos de personal también se reducen.

Aumente la disponibilidad de hardware y aplicaciones para lograr una mejor continuidad del negocio: respalde y migre de manera segura entornos virtuales enteros sin interrumpir el servicio. Elimine el tiempo fuera de servicio planificado y recupérese de inmediato de los problemas no planificados.

Gane flexibilidad operacional: responda a los cambios del mercado con una administración dinámica de recursos, un aprovisionamiento de servidores más rápido y una implementación mejorada del escritorio y las aplicaciones.

Técnicas de virtualización

Virtualización de hardware

Este es el tipo de virtualización más complejo de lograr. Consiste en emular, mediante máquinas virtuales, los componentes de hardware.

De esta manera el sistema operativo no se ejecuta sobre el hardware real sino sobre el virtual.

La gran ventaja de este enfoque es que pueden emularse distintas plataformas de hardware (por ejemplo, x86 sobre SPARC).

Su principal desventaja es el alto costo de traducción de cada una de las operaciones de las máquinas virtuales a la máquina real, pudiendo obtenerse un rendimiento de 100 a 1000 veces menor.

Técnicas de virtualización

Virtualización a nivel del Sistema Operativo

Este es el otro extremo de la virtualización.

En este esquema no se virtualiza el hardware y se ejecuta una única instancia del sistema operativo (kernel).

Los distintos procesos perteneciente a cada servidor virtual se ejecutan aislados del resto.

La ventaja de este enfoque es la separación de los procesos de usuario prácticamente sin pérdida en el rendimiento, pero al compartir todos los servidores virtuales el mismo kernel no pueden obtenerse el resto de las ventajas de la virtualización.

Técnicas de virtualización

Paravirtualización (paravirtualization)

La paravirtualización consiste en ejecutar sistemas operativos guests sobre otro sistema operativo que actúa como hipervisor (host).

Los guests tienen que comunicarse con el hypervisor para lograr la virtualización.

Las ventajas de este enfoque son un muy buen rendimiento y la posibilidad de ejecutar distintos sistemas operativos como guests. Se obtienen, además, todas las ventajas de la virtualización enunciadas anteriormente.

Su desventaja es que los sistemas operativos guests deben ser modificados para funcionar en este esquema.

Técnicas de virtualización

Virtualización completa (full virtualization)

La virtualización completa es similar a la paravirtualización pero no requiere que los sistemas operativos guest colaboren con el hypervisor.

En plataformas como la x86 existen algunos inconvenientes para lograr la virtualización completa, que son solucionados con las últimas tecnologías propuestas por AMD e Intel.

Este método tiene todas las ventajas de la paravirtualización, con el añadido de que no es necesaria ninguna modificación a los guests.

La única restricción es que estos últimos deben soportar la arquitectura de hardware utilizada.

Módulo II:Introducción al Hypervisor Xen

Historia del Proyecto Xen

Xen nació como un proyecto de investigación de la mano de profesores de la Universidad de Cambridge, en el Reino Unido, a finales de los 90.

El proyecto que nació con el nombre de XenServer, fue comprado por Citrix.

XenServer pasó a ser el hypervisor Xen con licencia. Pero un tiempo después Citrix comenzó a liberar el código de Xen, poco a poco, hasta liberarlo completamente.

Xen.org es el proyecto open de XenServer. Que Xen se liberara en un momento en el que el cloud computing está en auge, dio pie a que se creara la plataforma cloud basada en Xen, XCP (Xen Cloud Platform).

XCP fue una respuesta a la alta demanda en el campo del cloud computing que con tanta fuerza está arraigando.

Xen siempre ha participado del consejo de grandes corporaciones como Citrix, IBM, Intel, Hewlett-Packard, Novell, Red Hat, Sun Microsystems y Oracle.

Características de Xen

El hypervisor de Xen es del tipo 1.

Hay para elegir otras tecnologías de virtualización, como KVM, que viene soportado por el kernel desde hace tiempo.

KVM es un hypervisor del tipo 2.

Esto es, que el de tipo 1 tiene el control completo sobre el hardware y trabaja en la capa de más privilegios (al más bajo nivel) y más cercano al hardware, mientras que el hypervisor de tipo 2 trabaja sobre el sistema operativo, por lo que la gestión de los recursos es mucho más limitada.

VMware ESXi son hypervisores del tipo 1, y que hypervisores del tipo 2 son KVM, VMware Workstation y Virtualbox

Hablar de Xen es hablar de Linux.

Características de Xen

Características de Xen

● Xen corre sobre arquitecturas x86, con procesadores Pentium 4 o más modernos, x86_64 (AMD64 y EM64T), IA-64 y POWER de IBM. Ports para otras plataformas son técnicamente posibles y puede que estén disponibles en el futuro.

● Soporte para servidores virtuales con sistema operativo multiprocesador de 32 bits.

● Soporte para la virtualización por hardware de los Intel VT-X y los AMD Pacifica, que permite ejecutar sistemas operativos sin modificar dentro de las máquinas virtuales (Windows XP/2003 y UNIX antiguos)

● Soporte para Intel PAE (Physical Addressing Extensions) en servidores de 32 bits con más de 4 GB de RAM

● Soporte para las arquitecturas x86/64 (tanto AMD64 como EM64T)

● Soporte para SMP (Symmetric Multi-Processor)

● Soporte de ACPI (Advanced Configuration and Power Interface)

Arquitectura de Xen

Arquitectura de Xen

Módulo III:Instalación y Configuración de Xen

Requerimiento de hardware y software

La instalación de un host Xen requiere por lo menos un equipo físico x86, el servidor Xen será dedicado para hospedar y ejecutar las maquinas virtuales o VMs (Virtual Machines), se recomienda que se dedique el sistema exclusivamente para la ejecución de Xen ya que cualquier otra operación podría afectar el rendimiento del sistema host como de las máquinas virtuales.

Aunque el hypervisor Xen puede ser ejecutado en sistemas x86 de 32-bit (i386) se limitaría a solo ejecutar VMs de 32-bit.

Si tiene que ejecutar maquinas virtuales tanto en 32-bit y 64-bit entonces dedique un servidor con soporte 64-bit.

Los requerimientos del hardware para el servidor Xen van a depender del tipo de maquinas virtuales que vaya a ejecutar.

El tema depende de si va a ejecutar maquinas virtuales en modo Paravirtualized (PVM) o en Full virtulization (HVM).

Requerimiento de hardware y software

Para ejecutar maquinas virtuales en modo Full virtualization va a requerir que el BIOS de la tarjeta madre tenga el soporte de Virtualización activado y que el procesador también incluya el soporte de virtualización.

Tanto AMD como Intel incluyen soporte de virtualización asistida por hardware en sus procesadores actuales, AMD-V es la tenología introducida por AMD e Intel VT ó VT-x es la tenología introducida por Intel.

En cuanto al uso de memoria RAM, se recomienda que dedique por lo menos 512 de RAM para el Domain0 ya que requiere recursos para realizar las operaciones de I/O y comunicación entre el hypervisor y las maquinas virtuales.

Si cree que va a tener maquinas virtuales que hace uso intensivo de I/O como por ejemplo usando sistemas con RAID por software, iSCSI o LVM entonces se recomienda agregar otros 512MB extras de RAM para el Domain0. Para las maquinas virtuales usted haga el calculo, recuerde que en la mayoría de los casos las maquinas virtuales harán mayor uso de memoria que de CPU por lo que no escatime en recursos.

Requerimiento de hardware y software

La asignación de disco se recomienda que dedique por lo menos 20 GB de espacio para el sistema operativo del Domain0, ya que va a ejecutar Xen en un Domain0 Linux no va a usar demasiado espacio, 4GB serían suficientes.

Sin embargo, se recomienda agregar más espacio para los logs de sistema, archivo de imágenes de sistemas operativos, imágenes ISO, directorio para almacenar el estado (RAM) de las maquinas virtuales, entre otras cosas.

La configuración de red para el servidor Xen influenciara en grande el modo de conexión de las maquinas virtuales, la mayoría de modos y dispositivos de red disponibles en un kernel Linux es soportado por Xen.

Desde interfaces de red 100M/s, 1GB o 10GB Ethernet, Bonding (Link Aggregation), VLANs, NFS, iSCSI, y otros esquemas conocidos pueden ser configurados en el Domain0 para proveer entornos compartidos, seguros y aislados de red para las maquinas virtuales.

Requerimiento de hardware y software

Para la ejecución del hypervisor Xen vamos a requerir de un gestor de arranque con soporte para arrancar el hypervisor Xen y cargar un kernel Linux con soporte Xen, por ejemplo GRUB (GRand Unified Bootloader), recuerde que el hypervisor se ejecuta entre el hardware (BIOS) y el sistema operativo, por lo que vamos a requerir que el gestor de arranque inicialice el hypervisor como si fuera un kernel de sistema y el kernel vmlinuz lo ejecute como un módulo, este kernel será requerido para inicializar el sistema operativo del dominio privilegiado ó Domain0.

El kernel que Xen va a cargar como modulo debe estar modificado para soportar Xen, el kernel va ser utilizado por el dominio privilegiado o Dom0, el cual tendrá privilegios para iniciar y controlar nuevas maquinas virtuales o DomU, acceder directamente al hardware a través de los drivers Backend los cuales multiplexan y re envían las peticiones de hardware desde los drivers Frontend en los DomU.

Versiones modificadas de Linux, NetBSD y Solaris pueden ser usados como Dom0, algunas de las distribuciones que proveen kernels Dom0 para Linux son: Debian, Ubuntu, RHEL, CentOS, SLES, OpenSUSE y Gentoo.

Instalación y configuración básica del entorno de Xen

Para realizar la instalación base del Hypervisor de Xen el primer paso es que necesitamos saber es si nuestro ordenador/servidor permite la virtualización.

# egrep '(vmx|svm)' –color=always /proc/cpuinfo

Con este sencillo comando nos aparecerá algo parecido a esto:

flag : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx lm constant_tsc pni monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr lahf_lm

Si aparece remarcado VMX (para INTEL) o SVM (para AMD) podemos instalar XEN

Instalación y configuración básica del entorno de Xen

Ahora podemos consultar los paquetes de Xen disponibles:

# aptitude search xen

De allí seleccionamos los paquetes que instalarán el kernel modificado con Xen en el equipo:

Para sistemas de 64 bits hacer:

# aptitude -y install xen-hypervisor-4.1-amd64 linux-image-xen-amd64 xen-tools

Para sistemas de 32 bits hacer:

# aptitude -y install xen-hypervisor-4.1-i386 linux-image-xen-686 xen-tools

Instalación y configuración básica del entorno de Xen

Lo primero es hacer que arranque el kernel de Xen de manera nativa, por eso nos toca modificar el Grub, en este caso Debian tiene Grub2:

# mv /etc/grub.d/10_linux /etc/grub.d/50_linux

Con esto lo que conseguimos es darle al kernel de Xen preferencia en el arranque, cambiando su prioridad en el Grub.

Siempre que se toca el Grub, es necesario aplicar los cambios

# update-grub2

Instalación y configuración básica del entorno de Xen

La mejor configuración es en modo bridge (puente) de esta manera las maquinas virtuales son accesibles desde cualquier parte de la red, como si se tratara de ordenador mas conectado.

Esto se consigue modificando el archivo xen-config.sxp ubicado en /etc/xen/

Dentro tenéis que descomentar las siguientes lineas:

(network-script network-bridge)

(vif-script vif-bridge)

(dom0-min-mem 1024)

Instalación y configuración básica del entorno de Xen

Según lo siguiente:

(network-script network-bridge): Es un script de Xen para permitir el modo bridge (puente) en las Maquinas Virtuales

(vif-script vif-bridge): Este script se utiliza para controlar el modo bridge (puente)

(dom0-min-mem 1024): Esto pone una limitación de 1024Mb de RAM al Host o dom0 de manera que su RAM no baje nunca de ese limite, de manera que controlamos siempre que no tenga asignada menos memoria de la necesaria para poder funcionar correctamente.

Instalación y configuración básica del entorno de Xen

En el archivo de configuración /etc/modules no nos dejará ejecutar mas de un número determinado de maquinas virtuales es por esto que debemos modificarlo, ya que el número máximo por defecto que permite dicho módulo es 10, la entrada debería ser la siguiente:

loop max_loop=64

A partir de este momento podemos reiniciar nuestro servidor, y continuar con el siguiente paso.

Luego de terminada la instalación debemos reiniciar nuestro servidor para que cargue el kernel de Xen instalado anteriormente.

# reboot

Arranque y verificación del entorno Xen

Podemos iniciar el demonio de Xen de de la siguiente manera:

# /etc/init.d/xen start

Podemos ejecutar el siguiente comando para detener el demonio de Xen:

# /etc/init.d/xen stop

Podemos reiniciar el demonio de Xen de la siguiente forma:

# /etc/init.d/xen restart

Arranque y verificación del entorno Xen

La primera revisar si el proceso esta corriendo en el sistema:

# ps aux | grep xen

La segunda opción es revisar si los módulos de Xen ha sido cargados en el sistema:

# lsmod | grep xen

La tercera opción es verificando lo que el archivo /proc/xen/capabilities muestra, lo cual nos indica que se esta ejecutando en el dominio de control o privilegiado:

# cat /proc/xen/capabilitiescontrol_d

Arranque y verificación del entorno Xen

La cuarta opción es comprobar con el comando xm info si nos podemos comunicar con el demonio xend veamos la información del sistema xen:

# xm infohost : xh01.example.comrelease : 2.6.18.8-xenversion : #1 SMP Tue Oct 12 20:58:31 CDT 2010machine : x86_64nr_cpus : 2nr_nodes : 1cores_per_socket : 2threads_per_core : 1cpu_mhz : 2700virt_caps : hvm...

Arranque y verificación del entorno Xen

En la salida del comando anterior podemos determinar lo siguiente:

hostEl nombre de host es visualizado.

releaseVersión del kernel linux sobre el que esta corriendo

machineArquitectura del CPU x86_64

nr_cpusNúmero de CPUs en el sistema

cores_per_socketNúmero de núcleos por zócalo

Arranque y verificación del entorno Xen

cpu_mhzFrecuencia del CPU

total_memoryMemoria total disponible en el sistema

xen_major, xen_minor, xen_extraVersiones mayores, menores y extras de xen, por ejemplo 3.4.3

xen_capsCapacidad de ejecución de maquinas virtuales, muestra el tipo de VMs capaz de ejecutar

Algo importante es ver xen_caps para saber que tipo de maquinas virtuales soporta nuestro entorno.

Arranque y verificación del entorno Xen

La quinta opción es comprobar con el comando xm si Xen lista el Dom-0.

# xm list

Obtendríamos una salida parecida a la siguiente:

Name ID Mem VCPUs State Time(s) Domain-0 0 2892 8 r----- 292.5

Con esto sabemos que Xen esta listo para configurar las primeras máquinas virtuales en el equipo.

Configuración del demonio de xend

Una vez que xend está corriendo, se puede utilizar la herramienta xm para realizar tareas administrativas con las máquinas virtuales.

Fichero /etc/xen/xend-config.sxp

Xend esta escrito en python. Al arranque, lee la información de configuración del fichero /etc/xen/xend-config.sxp.

Regularmente este fichero se encuentra en el directorio /etc/xen/.

Para obtener una lista completa de todos los parámetros de este archivo de configuración, se pueden encontrar en el manual:

# man xend-config.sxp

Configuración del demonio de xend

Los parámetros básicos para que xend funcione son los siguientes:

● (logfile /var/log/xen/xend.log)

● (loglevel DEBUG)

● (network-script 'network-bridge netdev=eth0')

● (vif-script vif-bridge)

● (dom0-min-mem 196)

● (dom0-cpus 0)

● (vncpasswd )

Configuración del demonio de xend

(logfile)La ubicación del archivo de registro de bitácora de mensajes. Por defecto se almacena en /var/log/xen/xend.log.

(loglevel)Filtro de salida de mensajes bajo el nivel especificado Los valores posibles son DEBUG, INFO, WARNING, ERROR, CRITICAL. Defaults to DEBUG.

(network-script)El nombre del script en /etc/xen/scripts que va a ejecutar la configuración del ambiente de red. Este puede ser llamado con cualquier nombre, excepto network-bridge o network-route.

(vif-script)El nombre del script en /etc/xen/scripts que va a ejecutar la configuración del ambiente virtual de red cuando sean creadas o destruidas. Esta necesita trabajar en conjunto con network-script.

Configuración del demonio de xend

(dom0-min-mem)Esta especifíca el número mínimo de megabytes que va a reservar para el Domain0.

Si este valor es positívo, el Domain0 va a hacer automáticamente ballooned down para conseguir mayor espacio dentro de su límite de memoria para los nuevos dominios

(dom0-cpus)Si este valor se especifica el número de CPUs que el Domain0 va a permitir utilizar.

Si el valor es 0, todos los CPUs van a ser utilizados por el Domain0.

(vncpasswd )Configura el password de xen vnc password

Práctica I:Instalación de Xen en GNU/Linux

Práctica I: Instalación de Xen en GNU/Linux

Instalar el Hypervisor de Xen por medio de la herramienta aptitude.

Después de realizar la instalación completa debe reiniciar el equipo.

Ahora verifique que se realizó correctamente la instalación del Hypervisor de Xen y el mismo se encuentra ejecutado en el sistema, esto por medio de las siguientes herramientas:

● ps

● cat

● xm

La herramienta de administración xm

La herramienta xm esta disponible una vez instalado Xen Hypervisor así podemos introducir los comandos para la utilización del software para crear y administrar maquinas virtuales.

El comando xm es el más básico, sin embargo el mismo nos permite encender las máquinas virtuales, conectarnos rápidamente a sus consolas, es perfectamente posible utilizar solo xm, todos los demás comandos pasan a ser opcionales, xm es la interfase de usuario de Xen.

Con este comando y sus opciones, podemos realizar diferentes acciones con nuestras maquinas virtuales.

La forma de usar es ejecutando el comando xm, seguido de la opción seguido de la maquina virtual.

La herramienta de administración xm

xm create maquinavirtual

Este comando permite encender una maquina virtual previamente apagada. El comando invoca a un archivo de configuración si usas CentOS 5 o Redhat 5 este debe estar ubicado dentro de /etc/xen

xm console maquinavirtual

Permite entrar, desde el Hypervisor, a la consola de la maquina virtual Linux. Esto es buena idea en caso se requiera revisar el proceso de arranque de nuestra maquina.

xm destroy maquinavirtual

En realidad no destruye o elimina la maquina, solo la apaga, este comando seria el equivalente a quitar el enchufe de la toma eléctrica de nuestro servidor físico, así que habría que usarlo con precaución.

La herramienta de administración xm

xm shutdown maquinavirtual

Este comando manda la señal de apagado de nuestra maquina virtual, en realidad esta seria la mejor opción que la de arriba para apagar una maquina virtual.

xm reboot maquinavirtual

Realizara un reinicio de la maquina virtual, de manera similar al apagado, el sistema tratara de reiniciarse solo.

xentop

Este comando es muy parecido al top de Unix/Linux. Permite revisar cual es el consumo de todas las maquinas virtuales.

La herramienta de administración xm

xm list

Permite visualizar que maquinas están encendidas y cuanta memoria tienen asignada.

Name ID Mem(MiB) VCPUs State Time(s)

Domain-0 0 792 8 r----- 248134.1 database 22 2055 1 r----- 509995.2 web 24 2055 2 -b---- 48271.1 intranet 25 1031 1 -b---- 1542.9 mail 21 2055 1 r----- 35000.5

Todo la información no las proporciona en columnas, Nombre VM, numero de proceso, memoria, cpu virtuales, estado, tiempo de ejecución.

La herramienta de administración xm

Opción Descripciónr El dominio esta actualmente en ejecución en el CPU

b El dominio esta bloqueado, debido que el dominio esta en espera de E/S, o no tiene nada que hacer y se va dormir.

p El dominio esta en pausa, debido que el administrador ejecuto xm pause, en modo pausa el VM seguirá consumiendo los recursos asignados.

s El administrador ha solicitado un apagado, reinicio o suspendida de la VM.

c El VM ha tenido un final violento, este estado puede ocurrir si el VM se ha configurado para no volver a arrancar.

d EL VM esta en proceso de morir, pero no se ha pagado por completo.

La herramienta de administración xm

xm vcpu-list

Lista información de las vcpu que están ocupando los dominios.

Name ID VCPUs CPU State Time(s) CPU AffinityDomain-0 0 0 0 r-- 213690.4 any cpu Domain-0 0 1 1 -b- 9633.2 any cpudatabase 22 0 1 --- 517642.3 any cpu web 24 0 0 -b- 21537.4 any cpu mail 21 0 0 -b- 238508.2 any cpu

También si queremos que nos despliegue los vcpu de un MV, solamente se tiene que enviar la llamada así:

# xm vcpu-list web

Name ID VCPUs CPU State Time(s) CPU AffinityWeb 24 0 0 -b- 21564.7 any cpu

Módulo IV:Creación de

máquinas virtuales en Xen

Introducción a la creación de máquinas virtuales con xen-tools

La herramienta xen-tools es una colección de simples script hechos en perl los cuales permiten fácilmente crear un nuevo dominio guest en el sistema de GNU/Linux.

Una vez instalados y configurado se puede crear una nueva instancia de Xen en cuestión de minutos. Cada nuevo dominio de Xen va a estar completo con:

● Todo el setup en detalle de red, con multiple direcciones IP estáticas o por DHCP.

● Una instalación de OpenSSH.

● Un grupo arbitario de particiones de disco.

La nueva instancia va a estar completa por tener una cuenta de usuario de tu sistema guest copiada, y se puede hacer opcionalmente un arranque por imagen de disco tan pronto se este creada.

Configuración de la herramienta xen-tools

El archivo /etc/xen-tools/xen-tools.conf es el de configuración principal. Las entradas más importante de este archivo son las siguientes:

dir -- Directorio donde se guardan las imágenes xen

install-method – Tipo de método de instalación para las maquinas virtuales, puede ser debootstrap para los SO basados en Debian y rinse para los SO basados en Red Hat.

gateway -- Declaración de la puerta de enlace de las VMs.

netmask -- Declaración de las mácaras IP de las VMs.

broadcast -- Declaración de la dirección de broadcast de la red IP de las VMs.

Configuración de la herramienta xen-tools

cache -- Si realiza o no el cache de los pauqetes instalados.

passwd – Si genera una clave aleatoria para el usuario root del SO de las VMs.

accounts -- Copie las cuentas de la máquina Dom-0 .

kernel -- Especifica el kernel con el que van a ser creadas las máquinas virtuales.

initrd -- Especifica el initrd con que se van a crear las máquinas virtuales.

dist - Especifica la distribución a usa.

Configuración de la herramienta xen-tools

arch -- Especifica la arquitectura.

mirror -- Especifica la dirección del mirror de paquetes.

ext3_options, ext2_options -- Opciones por defecto para los sistemas de ficheros ext.

xfs_options -- Opciones por defecto para los sistemas de ficheros xfs.

reiser_options -- Opciones por defecto para los sistemas de ficheros reiser.

boot -- Luego que la máquina sea creada, arrancara de una vez.

Comandos más comunes de las herramienta xen-tools

Los comandos más utilizados son los siguientes:

xen-create-imageEste script nos permite fácilmente crear una nuevo dominio Xen guest. El nuevo guest va a ser configurado con red, como también con una instalación de OpenSSH para el acceso remoto.

xen-list-imagesEste script nos permite listar y visualizar cuales guests you have installed, along with their networking details (if the guests are not configured using DHCP).

xen-delete-imageThis script allows you to delete a guest domain which you've previously created.

Cada uno de dichos comandos cuentas con un extensivo man-page, y cada herramienta lee el mismo archivo /etc/xen-tools/xen-tools.conf, para las directivas de configuración.

Práctica II:Instalación de la herramienta xen-tools

Práctica II: Instalación de la herramienta xen-tools

Instalar la herramienta xen-tools por medio de la herramienta aptitude.

Ahora verifique que se realizó correctamente la instalación de la Herramienta xen-tools, esto por medio del siguiente comando:

# dpkg -l | grep xen-tools

Luego revisar si tenemos imágenes disponibles en el sistema ejecutando el siguiente comando de la herramienta xen-tools:

# xen-list-images

Creación de máquinas virtuales PVM Linux

Luego de haber configurado la herramienta xen-tools vamos a crear nuestra primera máquina virtual basada en GNU/Linux Debian:

Primero creamos el archivo de configuración de nuestra VM por medio de la herramienta xen-tools para posteriormente ser creada con el comando xm create:

# xen-create-image –force –hostname=webserver –ip=192.168.0.2 –passwd –install-method=debootstrap –mirror=http://debian.cantv.net/debian --arch=x86 –dist=wheezy

Luego ejecutamos el siguiente comando para la creación de la VM basado en el archivo de configuración generado anteriormente con la herramienta xen-tools:

# xm create webserver

Práctica II: Instalación de la herramienta xen-tools

Instalar la herramienta xen-tools por medio de la herramienta aptitude.

Ahora verifique que se realizó correctamente la instalación de la Herramienta xen-tools, esto por medio del siguiente comando:

# dpkg -l | grep xen-tools

Luego revisar si tenemos imágenes disponibles en el sistema ejecutando el siguiente comando de la herramienta xen-tools:

# xen-list-images

Creación de máquinas virtuales PVM Linux

Para una VM basada en GNU/Linux CentOS debemos realizar los siguientes comandos:

Primero creamos el archivo de configuración de nuestra VM por medio de la herramienta xen-tools para posteriormente ser creada con el comando xm create:

# xen-create-image –force –hostname=ssh –ip=192.168.0.3 –passwd –install-method=rinse --arch=x86 –dist=centos-6

Luego ejecutamos el siguiente comando para la creación de la VM basado en el archivo de configuración generado anteriormente con la herramienta xen-tools:

# xm create ssh

Creación de máquinas virtuales PVM Linux

Después de haber finalizado el proceso de creación de archivo de configuración y de la VM, podemos revisar nuestra lista de dominios para visualizar el nuevo creado:

# xm list

Ahora podemos conectarnos al VM de la siguiente manera:

# xm console

Para realizar la desconexión con la VM debemos oprimir la combinación de tecla siguiente:

Ctrl + ]

Práctica III:Creación de máquinas virtuales en Xen

Práctica III: Creación de máquinas virtuales en Xen

Crear una máquina virtual en Xen basada en GNU/Linux Debian y en ella debe instalar un servidor Web.

Crear otra máquina virtual en Xen basada en GNU/Linux CentOS y en ella debe instalar un servidor SSH.

Ahora verifique que se realizó correctamente la instalación de cada VM, esto por medio del siguiente comando:

# xm list

Realice una conexión por consola a cada VM para verificar su funcionamiento, en la VM basada en Debian instale Webserver Apache y el la basada en CentOS instale OpensSSH.

Ahora realice prueba desde su equipo hacia las Vms.

Creando máquinas virtuales HVM Linux

Para la creación de máquinas virtuales HVM, nuestro equipo debe soportar alguna de las tecnologías de virtualización de Intel (VT-x) o AMD (AMD-V).

El archivo de configuración para poder crear la VM es el siguiente:

La siguientes líneas son estandar para todas la VM que utilicen HVM:

import os, rearch = os.uname()[4]if re.search('64', arch): arch_libdir = 'lib64'else: arch_libdir = 'lib'

kernel = "/usr/lib/xen-4.1/boot/hvmloader"

builder='hvm'

Creando máquinas virtuales HVM Linux

Lo próximo es la cantidad de memoría a asignar a la VM. En este caso sería de 512MB:

memory = 512

Luego la cantidad de memoria de sombra (shadow memory) que puede ser definida. Esta es igual a 2KB por MB de la memoría del dominio, más un poco por vcpu. En general 8Mb es suficiente:

shadow_memory = 8

El nombre del dominio o del equipo virtual a crear:

name = "ssh"

Si la red es configurada como puente (bridge) que dispositivo se va a utilizar:

vif = [ 'type=ioemu, bridge=xenbr0' ]

Creando máquinas virtuales HVM Linux

Ahora, la parte más importante de la configuración es la de especificar el disco y el CD/DVD. Sí un disco físico y una unidad de CD/DVD son utilizadas la configuración sería algo como lo siguiente:

disk = [ 'phy:/dev/sdb,hda,w', 'phy:/dev/hdb,hdc:cdrom,r' ]

Alternativamente, si el disco es una imagen podemos utilizarlo de la siguiente manera:

disk = [ 'file:/home/xen/xenwin.img,hda,w', 'phy:/dev/hdb,hdc:cdrom,r' ]

Si lo que queremos es utilizar es una imagen ISO podemos referenciarlo de esta manera:

disk = [ 'file:/home/xen/xenwin.img,hda,w', 'file:/home/xen/Windows.iso,hdc:cdrom,r' ]

Creando máquinas virtuales HVM Linux

Lo siguiente es el orden de inicio (boot) definido en la VM. Claramente el CDROM necesariamente va hacer el primero en el order de inicio.

# boot on floppy (a), hard disk (c) or CD-ROM (d) # default: hard disk, cd-rom, floppyboot="dc"

Algunas de las configuraciónes necesaria para poder acceder a la consola gráfica de la VM se realiza por demonio de VNC o SDL, para el caso de VNC sería así:

vnc = 1sdl = 0

Para el caso de SDL sería así:

vnc = 0sdl = 1

Creando máquinas virtuales HVM Linux

Por defecto Xen no inicia automáticamente la consola de VNC cuando la VM inicia. Para ello debemos activar el parámetro de la vncconsole como encendido:

vncconsole=1

Se recomienda activar los siguientes parámetros con sus valores sugeridos:

acpi = 1apic = 1device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'stdvga=0serial='pty'

Para finalizar la última entrada de configuración es necesaria para no tener problemas con el ratón:

usbdevice='tablet'

Creando máquinas virtuales HVM Linux

import os, rearch = os.uname()[4]if re.search('64', arch): arch_libdir = 'lib64'else: arch_libdir = 'lib'

kernel = "/usr/lib/xen/boot/hvmloader"builder='hvm'memory = 512shadow_memory = 8name = "web"vif = [ 'type=ioemu, bridge=xenbr0' ]disk = [ 'file:/home/nas/xen/xenguest.img,hda,w', 'phy:/dev/hdb,hdc:cdrom,r' ]device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm'boot="dc"sdl=0vnc=1vncconsole=1vncpasswd=''stdvga=0serial='pty'usbdevice='tablet'

Creando máquinas virtuales HVM Linux

Con la configuración ya lista, el próximo paso es crear la VM:

xm create web.cfgUsing config file "./web.cfg".Started domain web

Creando máquinas virtuales HVM Linux

Para después ver una ventana VNC de la siguiente manera:

Iniciando y Apagado máquinas virtuales

Para realizar el iniciado de la VM debemos ejecutar el siguiente comando:

# xm create web.cfg

De esta manera inicializamos nuestro VM, para poder visualizar su ejecución ejecutamos el siguiente comando:

# xm list

Para detener la VM se debe ejecutar el lo siguiente:

# vm shutdown web

Módulo V:Administración de máquinas y

recursos virtuales en Xen

Inicio y apagado automático de máquinas virtuales

Si desea que una maquina virtual en especifico sea iniciada automáticamente al inicio del sistema cree un enlace simbólico del archivo de configuración de la DomU en el directorio /etc/xen/auto, por ejemplo, si desea iniciar automáticamente la maquina de nombre ubuntu001 use:

# ln -s /etc/xen/ubuntu001.cfg /etc/xen/auto/

Si desea arrancar las maquinas virtuales en un orden en especifico, se recomienda que agregue un sufijo númerico al nombre del enlace simbólico en /etc/xen/auto, por ejemplo: 00fwproxy, 01ns1, 02ldap1, etc.

El script de control de ejecución /etc/init.d/xendomains iniciará toda maquina virtual que tenga un archivo de configuración en /etc/xen/auto, si desea desactivar la ejecución automática solo borre el enlace simbólico.

El script de /etc/init.d/xendomains guardará el estado de las maquinas virtuales cuando el host Xen sea apagado o re iniciado.

Asignación de memoria virtual

Para poder asignar más memoria a una VM en funcionamiento lo realizamos con el siguiente comando:

# xm mem-set foo 512# xm listName ID Mem(MiB) VCPUs State Time(s)Domain-0 0 256 2 r----- 56681.0foo 2 512 1 -b---- 5160.2

Además podemos incrementarla, hasta un valor siempre igual o menor al definido en maxmem, por ejemplo a 2048:

# xm mem-set foo 2048# xm listName ID Mem(MiB) VCPUs State Time(s)Domain-0 0 256 2 r----- 69735.6Foo 11 2048 1 -b---- 5289.8

Asignación de CPUs virtual

Las maquinas virtuales Xen son iniciadas con un CPU virtual (vcpu) por default, puede ver los vcpu de un DomU, usando:

# xm vcpu-set ubuntu001 2

# xm vcpu-list ubuntu001Name ID VCPU CPU State Time(s) CPU AffinityUbuntu001 1 0 0 -b- 158.2 any cpuUbuntu001 1 1 0 -b- 165.1 any cpu

En este caso nos muestra que el VCPU 0 corre en el CPU físico 0, por default Xen balanceará los vcpus en todos los cpus físicos.

Asignación de medios de almacenamiento virtual

Para asignar discos duros podremos hacerlo de forma estática y dinámica, solo las maquinas PV podrán hacer uso de la conexión dinámica de discos duros virtuales.

Los comandos que usaremos para administrar los dispositivos de almacenamiento son:

xm block-list

Lista los dispositivos de bloque virtuales para un dominio, el formato es:

# xm block-list [-l|--long] domain-id

xm block-attach

Crea un nuevo dispositivo de bloque virtual, este comando generará un evento hotplug en el dominio, el formato es:

# xm block-attach domain-id be-dev fe-dev mode [bedomain-id]

Asignación de medios de almacenamiento virtual

xm block-detach

Desconecta un dispositivo de bloque virtual del domU, si el disco duro esta ocupado o el domU se quedo colgado la desconexión del disco fallará, puede forzar la desconexión con .--force, lo cual podrá causar errores de I/O en el dominio, el formato de uso es:

# xm block-detach domain-id devid

En el DomU verifique con fdisk -l que ya no aparece el disco.

Para listar los dispositivos de bloque asignados a un DomU use el comando xm block-list, por ejemplo:

# xm block-list ubuntu003Vdev BE handle state evt-ch ring-ref BE-path51713 0 0 4 6 8 /local/domain/0/backend/vbd/2/5171351714 0 0 4 7 9 /local/domain/0/backend/vbd/2/51714

Asignación de recursos de red virtuales

xm network-listLista las interfaces virtuales de red para una maquina virtual, la sintaxis del comando sería:

# xm network-list [-l|--long]> domain-id

xm network-attachAgrega una interfaz de red virtual a un domU, la sintaxis es:

# xm network-attach domain-id [ip=ipaddr] [mac=macaddr] [bridge=bridge-name]

xm network-detachRemueve una interfaz de red virtual de un DomU, la sintaxis es:

# xm network-detach domain-id devid

Clonación de máquinas virtuales

En el sistema de virtualización Xen, y gracias a la utilidad virt-clone tenemos la posibilidad de duplicar una máquina virtual con un solo comando y de forma extremadamente sencilla.

Podemos hacerlo de dos formas, la primera utilizando el asistente y sin pasar ningún parámetro al comando, simplemente ejecutamos virt-clone –prompt y seguimos los pasos siguientes.

# virt-clone --promptWhat is the name of the original virtual machine? mimaquinavirtualWhat is the name for the cloned virtual machine? clonmaquinavirtualWhat would you like to use as the cloned disk (file path) for '/home/mimaquinavirtual.img'?

Cloning /home/mimaquinavirtual.img 4% [=== ] 20 MB/s | 128 MB 07:59 ETA

NOTA: La máquina virtual a clonar debe estar parada, sino recibiremos el error:

ERROR Domain with devices to clone must be paused or shutoff.

Clonación de máquinas virtuales

Primero especificamos la máquina virtual a clonar, después el nombre de la que será el clon y la ruta al disco a utilizar para la imagen clonada.

También se puede especificar todo por línea de comandos, ejemplo:

# virt-clone \--original mimaquinavirtual \--name clonmimaquinavirtual \--file /home/disk.img \--file /home/swap.img

Respaldar y restaurar máquinas virtuales

Usaremos dos métodos diferentes para respaldar los datos contenidos en el archivo de imagen, el primer es copiando el archivo de imagen completo el comando cp, la imagen la guardaremos en el directorio /mnt/backup/vms/:

# cp /xen/storage/0/images/fs2.example.com/disk.img \ /mnt/backup/vms/fs2.example.com-disk-$(date +%d-%m-%Y).img

La copia creada es una copia exacta del archivo original en el momento en que se apago la maquina virtual, en caso de desastre simplemente restaure el archivo.

Respaldar y restaurar máquinas virtuales

El segundo método es montanto el archivo de imagen en un directorio temporal y respaldar su contenido con tar, primero creamos el directorio temporal:

# mkdir -p /mnt/tmp/vms/web-disk

Montamos el Snapshot:

# mount /xen/storage/0/images/web/disk.img /mnt/tmp/vms/web-disk

Ahora respaldamos los datos del directorio /mnt/tmp/vms/web-disk usando el comando tar:

# tar -jcvf /mnt/backup/vms/web-disk-`date +%d-%m-%Y`.tar.bz2 \ /mnt/tmp/vms/web-disk

En caso de desastre y tenga que restaurar el disco, monte el archivo original en un punto de montaje temporal, elimine su contenido y extraiga el contenido del archivo tar.

Módulo VI:Instalación y Configuración de

XCP (Xen Cloud Platfrom)

¿Qué es XCP?

El projecto XAPI es un sub-proyecto (o proyecctos) del Xen Project que desarrolla el empresarial XAPI toolstack.

Xen utiliza con XAPI toolstack consolidación de carga de servidores, permitiendo el ahorro de energía, refrigeración y manejo de costos en un ambiante sustansial computacional, con una incrementada habilidad de adaptación en cualquier ambiente IT, con una optimización sobre el uso del hardware existente y mejorando la confiabilidad al nivel IT.

El equipo de desarrollo de XAPI, agentes y librerías son necesarios par ala operación de sistemas basados en XAPI.

XAPI es licenciado bajo el GNU General Public License (LGPL2).

¿Qué es XCP?

El Xen Management API (XAPI) es:

Un Xen Toolstack que expone la interfaz XAPI. Cuando nos referimos a XAPI como un toolstack, tipicamente incluye todas las dependencias y componentes que son necesarios para la ejecución de XAPI.

Una interfaz que permite remota configuración y control de las VM ejecutadas en un equipo con el hypervisor Xen. XAPI es el componente principal de XenServer y XCP.

XAPI agrega funciones adicionales comparada con otras de Xen toolstacks, esta incluye:

➔ Extender el software que cubre varios equipos Xen

➔ Mejora del ciclo de vida de las VM, incluyendo snapshots, checkpointing, y migración

➔ Permite realizar pool de recursos para realizar migración en caliente, auto configuración y recobro de desastre.

¿Qué es XCP?

El Xen Management API (XAPI) es:

➔ Permitir flexibilidad de almacenamiento y red incluyendo el soporta a Open vSwitch y el almacenamiento XenMotion® live Migration

➔ Habilitar el seguimiento de eventos con progreso y notificationes

➔ Capacidad para crear actualizaciones y mejoras

➔ Monitoreo y alertas a tiempo real de las VM

➔ Integración con orquestación de nubes

➔ Soporte incluido de plantillas para Windows y Linux guests

Instalación y configuración de XCP

El procedimiento de instalación de XCP en Debian es muy fácil ya que el paquete ya se encuentra disponible para dicha distribución y el procedimiento es muy sencillo.

Para realizar la instalación ejecutamos el siguiente comando:

# aptitude install xcp-xapi

Para verificar su instalación podemos ejecutar el siguiente comando:

# dpkg -l | grep xapi

Instalación y configuración de XCP

El primer paso de configuración es editar el archivo de configuración defecto de Xen para indicarle que va a utilizat XCP como toolstarck para Xen:

La ubicación del archivo es /etc/default/xen una vez allí debemos colocar lo siguiente:

TOOLSTACK=xapi

Ahora debemos detener e inhabilitar el demonio de xendomains, de la siguiente forma y luego reiniciamos el equipo:

# /etc/init.d/xendomains stop

# update-rc.d xendomains remove

Administración vía comando de XCP

Seguimos con la lista de comandos útiles para manejar Xen desde la consola.

Listado de máquinas virtuales# xe vm-list

Listado de hosts por pool# xe host-list

Listado de máquinas en un host# xe vm-list resident-on=UUID

Listado de repositorios de almacenamiento# xe sr-list

Listado de interfaces física de red# xe pif-list

Administración vía comando de XCP

Listado de interfaces virtuales de red# xe vif-list

Datos de una interfaz de red física# xe pif-param-list uuid=NET_UUID

Datos de una interfaz de red virtual# xe vif-param-list uuid=NET_UUID

Listado de snapshots almacenados# xe template-list is-a-snapshot=true params=all

Borrado de un snapshot# xe vm-uninstall uuid=UUID force=true

Administración GUI de XCP

La interfaz gráfica que se utiliza en la administración de XCP existe en dos (2) versiones disponibles:

-- La primera es la creada por la empresa Citrix y se llama XenCenter esta corre solamente en el sistema operativo de Microsoft Windows

-- La segunda es creada por la comunidad de Open Source y esta disponible para casi todas las distribuciones de GNU/Linux, esta se llama OpenXenManager.

Administración GUI de XCP

Interfaz Gráfica XenCenter

Administración GUI de XCP

Interfaz Gráfica OpenXenManager: