En virtualización existen múltiples tipos de herramientas, pero todos poseen algo en común, se trata de programas o herramientas que hacen creer a otros programas que son el HW y SW que necesitan. La virtualización hace posible tener de uno a varios sistemas operativos sobre uno ya existente, permaneciendo este sin verse afectado y pudiendo arrancarlos de manera independiente. La virtualización permite: Ahorra reinicios en caso de que tengamos que cambiar habitualmente de sistema operativo. Permite lanzar varios sistemas operativos diferentes en una misma computadora o servidor. Facilita la administración de los sistemas operativos virtualizados. Tan puede ser ocupado para sistemas de pruebas. Migración dinámica de aplicaciones. Y También porque esta de moda o para aprender. La virtualización favorece en los siguientes punto: Ahorro de costes de HW y alojamiento de equipos Mantenimiento de cada servidor. Sistemas centralizados. Aprovechamiento de recursos. Sistemas de prueba. Simplicidad. Compatibilidad. Seguridad. Consumo de energía. Tipos de virtualización. Solamente tenemos 3 tipo de virtualización: Emulación Virtualización completa Paravirtualización Emulación La emulación se basa en crear máquinas virtuales que emulan el hardware de una o varias plataformas hardware distintas. Este tipo de virtualización es la más costosa y la menos eficiente, ya que obliga a simular completamente el comportamiento de la plataforma hardware a emular e implica también que cada instrucción que se ejecute en estas plataformas sea traducida al hardware real y es demasiado lento en su ejecución. En Linux existen varios emuladores pero los mas conocidos son: qemu, Bochs, VirtualBox y Virtuozzo. Virtualización Completa Con este término se denominan aquellas soluciones que permiten ejecutar sistemas operativos huésped (Guest), sin tener que modificarlos, sobre un sistema anfitrión (Host), utilizando en medio un Hypervisor o Virtual Machine Monitor que permite compartir el hardware real. Esta capa intermedia es la encargada de monitorizar los sistemas huésped con el fin de capturar determinadas instrucciones protegidas de acceso al hardware, que no pueden realizar de forma nativa al no tener acceso directo a él. Su principal ventaja es que los sistemas operativos pueden ejecutarse sin ninguna modificación sobre la plataforma, aunque como inconveniente frente a la emulación, el sistema operativo debe estar soportado en la arquitectura virtualizada. Existen herramientas para poder hacer una virtualización completa XEN, KVM, Local Domains y Vmware. Hay que tener en cuenta también que la virtualización completa no se refiere a todo el conjunto de hardware disponible en un equipo, sino a sus componentes principales, básicamente el procesador y memoria. Paravirtualización Paravirtualización surgió como una forma de mejorar la eficiencia de las máquinas virtuales y acercarlo al rendimiento nativo. Para ello se basa en que los sistemas virtualizados (huésped) deben estar basados en sistemas operativos especialmente modificados para ejecutarse sobre un hypervisor. Los sistemas virtualizados (huésped) deben estar basados en sistemas operativos especialmente modificados para ejecutarse sobre un hypervisor. Todo este trabajo se lleva acabo en la carga del procesador, ya que tiene que tener incluido el soporte a virtualización. Se pueden ocupar las herramientas de XEN, KVM Y Vmware. XEN XEN fue creado en el año 2003 en el laboratorio de computación de la Universidad de Cambridge, bajo lo que se conoce como el proyecto XEN Hypervisor liderado por Ian Pratt. Algunos de los miembros mas destacados del proyecto son Keir Fraser, Steven Hand y Cristhian Limpach. Este mismo equipo fundo XENSource. La herramienta XEN le permitirá crear y gestionar servidores virtuales dentro de un servidor físico. XEN esta formado por los siguientes componentes: Hypervisor. Parche de kernel de Linux. Herramientas de administración por vía comando o gráfico. El hypervisor es la pieza mas importante dentro de XEN, es lo primero que inicia el GRUB de Linux ya que se encarga de controlar el hardware(CPU, memoria, etc.) y distribuir su uso entre las diversas maquinas virtuales. También permite desde XEN crear,controlar, monitorear, y otras opciones a las maquinas virtuales. Lo que también hace el hypervisor es que cada sistema operativo se maneja así mismo como si estuviera en un servidor real. El sistema base es común mente llamado Dom0 y a los servidores virtualizados se les conoce como DomU. Dentro de los DomU existen dos tipos: HVM, lo que significa que nuestro S.O esta siendo virtualizado por medio del modulo de virtualización del procesador de nuestra computadora. PVM, esta virtualización es por el método de SW, pero se tienen que modificar el S.O para que funcione. Ventajas: Código abierto Proyecto maduro y probado XEN busca la manera de optimizar las capacidades de virtualización por HW en los procesadores de Intel y AMD. Buenas herramientas de administración/configuración completas y robustas. El mismo sistema de configuración de xen te permite crear tus propios scripts. Se pueden establecer varias configuraciones de red para las maquinas virtuales XEN. Migración de maquinas virtuales a otros equipos físicos. Documentación variada. Desventajas: El soporte de instrucciones VT es relativamente reciente y existe poca documentación sobre este montaje, así como carece de cierta funcionalidad que sí existe en la otra modalidad. Todo esto es cierto que es cuestión de tiempo, pero bueno. La administración solamente es realizada por el usuario root. Requiere parches en el kernel de GNU/Linux. Ruta donde se encuentra la ruta de los archivos de configuración del servicio XEN. /etc/xen/ Ruta donde se encuentran los errores de XEN. /var/log/xen Ruta contiene por cada ID de dominio creado. /var/lib/xend/domains Ruta donde almacena los cores que se crean con la opción dump-core. /var/xen/dump Para poder iniciar, apagar, reiniciar y/o ver el estado del servicio xen tenemos varios comandos. Comando de los servicios XEN en Red Hat y derivados. service xend (start/stop/restart/status) Comando especial de los servicios XEN. xend (start/stop/restart/status) Comando genérico de los servicios de XEN. /etc/init.d/xend (start/stop/restart/status) Virtualización en CPU. Esta comprobación es para checar que tienes habilitado la virtualización por medio de HVM, ya que esta viene configurada en los procesadores. Para verificar que tienes la opción de virtualización en el CPU de intel. grep vmx /proc/cpuinfo Te dará como salida la siguiente información: flags: fpu tsc msr pae mce cx8 apic mtrr 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 cx16 xtpr lahf_lm Tiene que aparecer la opción vmx, indica que tiene habilitado el soporte para lintel. Para verificar que tienes la opción de virtualización en el CPU de AMD. grep svm /proc/cpuinfo flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss svm ht tm syscall nx lm constant_tsc pni monitor ds_cpl est tm2 cx16 xtpr lahf_lm Tiene que aparecer la opción svm que indica que tiene habilitado el soporte de AMD. Instalación del Dom0 Para poder hacer la instalación del Dom0, se requiere: 1.Instalar Linux, en nuestro caso elegimos Centos 5.2. 2.Seleccionar los datos de idioma y teclado al momento de instalar Centos 5.2. 3.Hay que crear particiones al momento de instalar. /boot 1 GB(ext3) /var /tmp 2 GB 1 GB /swap 2 GB LVM / 3GB (ext3) /vm the rest Nota: Se recomienda que la partición /boot sea una partición primaria y con formato ext3, las demás particiones se deben crear dentro de unidad LVM, para mejor rendimiento y administración de las mismas. 4.Seleccionar un ambiente gráfico gnome, para poder instalar y administrar los DomU. 5.No hay que seleccionar ningún otro paquete que se requiere ni servicio. 6.Terminar de instalar Centos Linux. 7.Reiniciar y configurar los datos default de Centos 5.2. Configuración del Dom0 Ya después de la instalación, entramos como root a una tty o consola. Actualización del Sistema Operativo. Lo primero que tenemos que hacer es actualizar nuestro S.O, ya que puede haber algún parche de algún bug encontrado. yum -y update Nota: Después de algunos minutos termina de actualizar el S.O, tenemos que reiniciar el servidor ya que se habrá actualizado la versión del kernel. Y inicie con la nueva versión. Instalación de XEN XEN es una herramienta de código abierto, que permite implementar maquinas virtuales llamadas DomU con todas sus características, de forma funcional como si estuvieran instalados en servidores diferentes. XEN también permite el ahorro de insumo a empresas, optimización de recurso del servidor, seguridad y migración en caliente de DomU. Para poder instalar la herramienta XEN, se tiene que tener los siguientes paquetes: kernel-XEN XEN libvirt python Comenzaremos la instalación de paquetes. yum install kernel-XEN yum install XEN Kernel-xen y xen tienen que instalarse por separados. ya que kernel-XEN hace modificaciones hacia el kernel del SO. La herramienta xen instalara la dependencias necesarias para su instalación, lo cual instalara libvirtd y python por default. La librería libvirtd sera la encargada de proporcionar un entorno para la creación y administración de las máquinas virtuales. Configuración GRUB Ahora tenemos que configurar nuestro grub para que nuestro Centos inicie con la versión del Kernel modificado con XEN. Tenemos que editar el archivo menu.lst que tiene la configuración de booteo del sistema. vim /boot/grub/menu.lst default=1 timeout=5 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux Server (2.6.18-92.1.18.el5) root (hd0,0) kernel /vmlinuz-2.6.18-92.1.18.el5 ro root=/dev/VolGroup00/LogVol03 rhgb quiet crashkernel=128M@16M initrd /initrd-2.6.18-92.1.18.el5.img title Red Hat Enterprise Linux Server (2.6.18-92.1.18.el5XEN) root (hd0,0) kernel /XEN.gz-2.6.18-92.1.18.el5 module /vmlinuz-2.6.18-92.1.18.el5XEN ro root=/dev/VolGroup00/LogVol03 rhgb quiet crashkernel=128M@16M module /initrd-2.6.18-92.1.18.el5XEN.img Tendremos que reiniciar el servidor para que inicie con el kernel de XEN. Discos Virtuales En este paso se crearan los discos virtuales para los SO Huéspedes. Pero existen dos métodos para poder crearlos. Comando dd Para crear discos duros virtuales por medio de dd es de la siguiente manera. dd if=/dev/zero of=/vm/server1.img oflag=direct bs=1M seek=4099 count=1 opciones del comando dd: OPCIÓN DESCRIPCIÓN if=/dev/zero Lee desde la unidad infinita de ceros. of=/vm/server1 Escribe en /vm/server1. oflag=direct Escribe datos con comas. bs=1M Lee y escribe bytes a 1 MB. seek=4009 Tamaño final del bloque. count=1 Copia bloques de tamaño en bytes. LVM. En este paso se creara una partición LVM para los discos virtuales de los DomU. Durante la instalación del SO, se crearon particiones para nuestro servidor. /boot 1 GB(ext3) /var /tmp 2 GB 1 GB /swap 2 GB LVM / 3GB (ext3) /vm the rest Hay una partición en especial que se llama /vm, en esta partición es donde se van a depositar los disco virtuales de los DomU a traves de XEN. Lo primero que tenemos que tenemos que hacer es editar el archivo de configuración de los dispositivos de bloques. vim /etc/fstab Se tiene que comentar la linea de que tiene la partición /vm. /dev/VolGroup00/LogVol03 / ext3 defaults 1 1 /dev/VolGroup00/LogVol00 /var ext3 defaults 1 2 #/dev/VolGroup00/LogVol04 /vm ext3 defaults 1 2 /dev/VolGroup00/LogVol01 /tmp ext3 defaults,noexec,nosuid LABEL=/boot /boot ext3 defaults 1 2 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/VolGroup00/LogVol02 swap swap defaults 0 0 Creación de la partición LVM DomU pvcreate /dev/VolGroup00/LogVol04 Información de volúmenes físicos pvdisplay 1 2 --- Physical volume --PV Name /dev/VolGroup00/LogVol04 VG Name vg PV Size 127,09 GB / not usable 4,00 MB Allocatable PE Size (KByte) yes 4096 Total PE 32535 Free PE Allocated PE 4375 28160 PV UUID L5EZ0s-vcO7-VS37-SuDf-XsQy-Uu5s-PT04w5 --- Physical volume --PV Name /dev/sda2 VG Name VolGroup00 PV Size Allocatable PE Size (KByte) 135,11 GB / not usable 20,67 MB yes (but full) 32768 Total PE 4323 Free PE Allocated PE 0 4323 PV UUID zfks2D-DOGJ-o1G3-YKYO-v5Rh-T43H-2ePrnu Como pueden ver la información muestra dos volúmenes físicos de LVM, Motivo o razón de que existen una que creo durante la instalación de SO y la otra que se acaba de crear para XEN. Creación de Grupo VG Lo que haremos ahora es crear un grupo de volumen principal. vgcreate vg /dev/VolGroup00/LogVol04 Información de los volúmenes. vgdisplay --- Volume group --VG Name vg System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 13 VG Access read/write VG Status resizable MAX LV 0 Cur LV 4 Open LV 4 Max PV 0 Cur PV 1 Act PV 1 VG Size 127,09 GB PE Size 4,00 MB Total PE 32535 Alloc PE / Size 28160 / 110,00 GB Free 4375 / 17,09 GB PE / Size VG UUID NZvAOt-DcnS-1wBn-MgkH-VN7C-S0Ki-mK4llL --- Volume group --VG Name VolGroup00 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 6 VG Access read/write VG Status resizable MAX LV 0 Cur LV 5 Open LV 5 Max PV 0 Cur PV 1 Act PV 1 VG Size 135,09 GB PE Size 32,00 MB Total PE 4323 Alloc PE / Size 4323 / 135,09 GB Free 0 / 0 PE / Size VG UUID J1QOt0-nDgg-EQNv-jatp-pbp7-9ihb-6ZtFel Con vgdisplay podemos ver los volúmenes creados en el grupo VG y si le pasamos la opción -v, podremos ver los VLogicos y discos físicos implicados. Crear volúmenes lógicos LVM Nota: A partir de este momento solamente tenemos que crear discos virtuales para las DomU que se requieran. lvcreate -L 20GB -n correo.img vg lvcreate -L 35GB -n database.img vg lvcreate -L 20GB -n web2.img vg lvcreate -L 35GB -n web.img vg Lo que hicimos fue crear 4 Discos Virtuales para cada servicio que se requiera. lvcreate -L 20GB -n correo.img vg Ver información de los Discos Virtuales lvdisplay --- Logical volume --LV Name /dev/vg/correo.img VG Name vg LV UUID TAYUOr-KPu8-umma-faUn-NlQi-kNOY-apvHzL LV Write Access read/write LV Status available # open 2 LV Size 20,00 GB Current LE 5120 Segments 1 Allocation Read ahead sectors inherit auto - currently set to 256 Block device 253:5 --- Logical volume --LV Name /dev/vg/database.img VG Name vg LV UUID 4y4zdB-EWqX-Eipv-IzG0-cHI2-ak67-NwkAN5 LV Write Access read/write LV Status available # open 2 LV Size 35,00 GB Current LE 8960 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:6 --- Logical volume --LV Name /dev/vg/web2.img VG Name vg LV UUID nJEEk3-Vrfr-NJMl-ovk4-Xkwa-w8Tt-lddccf LV Write Access read/write LV Status available # open 2 LV Size 20,00 GB Current LE 5120 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:7 Formateo de la Disco Virtual mkfs -t ext3 /dev/vg/correo.img mkfs -t ext3 /dev/vg/database.img mkfs -t ext3 /dev/vg/web2.img mkfs -t ext3 /dev/vg/web.img En este momento nuestro Discos Virtuales ya están formateadas y listas para poder instalar el SO Huésped. Cuando se crean los disco duros virtuales, depende de la versión del XEN y la distribución que ocupes, ya la mayoría son /dev/xvda y otras dev/hda. Nuevo Disco virtual Hay ocasiones que se requiere agregar mas espacio una MV y que esta llegando al limite en su capacidad, pero en XEN podemos agregar agregar otro disco duro virtual, como si fuera esclavo y lo podemos hacer en caliente. Se pueden crear los disco duros virtuales depende de como tienes configuradas tu MV. Si son discos normales. dd if=/dev/zero of=/vm/disk-web.img oflag=direct bs=1M seek=4099 count=1 y LVM. lvcreate -L 20GB -n disk-web.img vg Ya despues las formateamos: mkfs -t ext3 disk-web.img Con esto ya tenemos creado el disco duro virtual. Ahora es cuando conectaremos en caliente el nuevo disco a la máquina virtual. Para ello debemos ejecutar el siguiente comando: Disco duro normal: xm block-attach web phy:/vm/disk2-web.img /dev/xvdb1 w con LVM: xm block-attach web phy:/dev/vg/disk2-web.img /dev/hdb1 w Con esto ya habremos conectado el nuevo disco duro a la DomU web. Y tendra acceso de lectura y escritura. Tendremos que editar el archivo /etc/fstab para que se monte automáticamente en cada arranque y montar el nuevo dispositivo para poder empezar a usarlo. Ahora tenemos que modificar el archivo de configuracion del DomU web. Que esta en la ruta /etc/xend/web. Ahora solamente tenemos que indicarle a xen que se va agregar un nuevo disco duro a la maquina web. Para eso tenemos que comentar el siguiente parametro. #disk = [ "phy:/dev/vg/web.img,hda,w", ",hdc:cdrom,r" ] Y agregar las siguientes lineas despues de la comentada. Disco duro normal: disk = [ "phy:/vg/web.img,hda,w", "phy:/vg/disk2-web.img,hdb,w" ] LVM: disk = [ "phy:/dev/vg/web.img,hda,w", "phy:/dev/vg/disk2-web.img,hdb,w" ] Ya con esto tendremos configurado a la DomU web con un nuevo disco duro. Requisitos Instalación Antes de instalar el DomU se tiene que llevar un análisis de que requisitos que se requieren para poder instalar nuestro S.O. Huésped. 1.Disco Duro Virtual. 2.Memoria Virtual. 3.VCPU. 4.Método de instalación. 5.S.O Huésped. 6.Nombre del S.O Huésped. En el caso de los discos duros virtuales ya debimos haber hecho el estudio de la capacidad o tamaño, sus posibles particiones y También como se generaría el disco duro virtual a travez del comando dd o LVM. También es posible agregarle otro disco duro después de la instalación, pero quedaría como un disco virtual esclavo. La memoria virtual de un DomU no puede sobrepasar a la cantidad de memoria física que se tiene el servidor, se recomienda tener como mínimo 4 GB en memoria RAM para tener mejor desempeño en las DomU y Dom0 se recomienda como mínimo 512 MB a 1 GB. Es posible cambiar el tamaño de la memoria ya después de instalado. También se tiene que llegar un análisis de que procesos o servicios se van a ofrecer para que el DomU, para que servidor virtualizado no se quede colgado y mejor agregue un procesador extra para el. También se puede agregar un procesador después de la instalación en caso que se requiera. En el método instalación es muy simple por medio óptico (CDRom/DVD) o vía red (ftp,http,nfs), se recomienda que se la instalación de a travez de red ya que algunas distribuciones de GNU/Linux no reconocen el CDRom/DVD en XEN. Como También haber seleccionado el S.O que se desea virtualizar. Puede ser cualquier distribución GNU/Linux, BDS, Unix, Solaris o Windows. También se tiene que llevar el control sobre los nombres de los servidores virtualizados, ya que XEN ocupara ese nombre para llevar un control y el manejo de recursos del mismo. Instalación DomU Llego el momento de instalar de nuestro S.O Huésped, para esto ocuparemos el primer comandos de XEN. virt-install este comando de XEN permite instalar un DomU a travez de un asistente, el cual va solicitando las características del DomU que se va instalar, virt-install tiene mas opciones para el arranque del asistente pero solamente ocuparemos la opción --keymap es, el cual cambia a configuración del teclado a español ya que por default es ingles. Parámetros Descripción Would you like a fully virtualized guest (yes or no) Si quiere virtualización completa o paravirtualización What is the name of your virtual machine? Nombre del DomU. How much RAM should be allocated (in megabytes)? Cantidad de Memoria RAM a los DomU What would you like to use as the disk (path)? Ruta donde se encuentra el disco duro virtual. Would you like to enable graphics support? si habilitamos entorno gráfico en la instalación del DomU. What is the install location? Método de instalación del DomU, via CDRom, Red (http,ftp,nfs). virt-install --keymap es Would you like a fully virtualized guest (yes or no)? yes What is the name of your virtual machine? database How much RAM should be allocated (in megabytes)? 2048 What would you like to use as the disk (path)? /dev/vg/database.img Would you like to enable graphics support? (yes or no) yes What is the install location? [http://127.0.0.1/] Con esto comienza la instalación del DomU, y solamente queda seguir todos los pasos de la instalación, como seleccionar idioma, teclado, particiones y seleccionar los paquetes necesarios y terminar la instalación. Una vez terminada la instalación repetir el proceso de instalación por el numero de S.O virtualizados. virt-install --keymap es Would you like a fully virtualized guest (yes or no)? yes What is the name of your virtual machine? web How much RAM should be allocated (in megabytes)? 2048 What would you like to use as the disk (path)? /dev/vg/web.img Would you like to enable graphics support? (yes or no) yes What is the install location? [http://192.168.1.109/isos/Centos ] Aqui tenemos otros ejemplos de como podemos usar la herramienta virt-install virt-install --paravirt --name Centos5 --ram 256 --file /vm/centos.img --file-size 3 --location [http://wftp.tu-chemnitz.de/pub/linux/centos/5.0/os/i386 ] Existen mas opciones sobre esta herramienta se recomienda hacer man al comando para obtener mas información. Nota: Al momento de ejecutar el comando virt-install si nosotros le pasamos menos de 512 RAM instalara el DomU en modo texto. Pero si le pasamos de 512 en adelante la instalación sera de modo gráfico. Al terminar de instalar los S.O Huésped, XEN prende la maquina virtual instalada y para poder ver esta sesión solamente tenemos que ejecutar el comando virt-viewer y con el nombre de la maquina virtual a la cual desea conectarnos. virt-viewer web& Nos desplegara una pantalla con la solicitud del Login/password, como si estuvieran iniciando sesión en computadora. Administración de MV con xend En este momento tenemos ya instaladas nuestros S.O Huésped, solo falta aprender cada una de las herramientas que tiene XEN para su administración, configuración y recursos del sistema. La ruta de configuración del servicio XEN se localiza en /etc/XEN. Dentro de esta ruta existen 2 carpetas importante y archivo de configuración de XEN. Las carpetas son auto y scripts, son en auto se configuran las maquinas que inician en automático cuando el servidor es reiniciando y dentro de la carpeta scripts van ejecutables que necesita XEN para configurar algún parámetro de la red virtual o dispositivo que se requiera. También esta el archivo xend-config.sxp, que tiene toda la configuración de la red del brigde, route y nat el manda llamar a los scripts de XEN. Pero también en esta ruta existen archivos de configuración con los nombres de los servidores virtualizados, como correo, database, web,web2, estos archivos tienen las propiedades de cada servidor virtualizado. veamos el contenido de web. name = "web" uuid = "5160c6cb-54c6-8318-f7f3-61b4e6b740b4" maxmem = 2048 memory = 2048 vcpus = 2 builder = "hvm" kernel = "/usr/lib/XEN/boot/hvmloader" boot = "c" pae = 1 acpi = 1 apic = 1 localtime = 0 on_poweroff = "destroy" on_reboot = "restart" on_crash = "restart" device_model = "/usr/lib64/XEN/bin/qemu-dm" sdl = 0 vnc = 1 vncunused = 1 disk = [ "phy:/dev/vg/web.img,hda,w", ",hdc:cdrom,r" ] vif = [ "mac=00:16:3e:56:16:d6,bridge=Xenbr0" ] serial = "pty" Opción Descripción name = "web" Nombre de identifica XEN para su servicio. uuid = "5160c6cb-54c6-8318-f7f361b4e6b740b4" cuando se crea un dominio se le agrega un id exclusivo. maxmem = 2048 Tamaño maximo de memoria. memory = 2048 Memoria asignada. vcpus = 2 Cuantos procesadores va ocupar. builder = "hvm" Tipo de virtualizacionhvm significa virtualización completa. kernel = "/usr/lib/XEN/boot/hvmloader" Ruta de la imagen del nucleo del kernel. boot = "c" Para el arranque de la clasica unidad C: de MSDOS pae = 1 Son server con mas 4 GB y tienen soporte para hardware de virtualización Intel. Opción habilitada. acpi = 1 Activa la emulación de la tarjeta de red. apic = 1 Comunicación entre el núcleo de XEN y el BIOS, para la programación de interrupciones. localtime = 0 Establece la hora del sistema virtual a la misma que la de tu sistema. on_poweroff = "destroy" Estable el apago de la maquina virtual. on_reboot = "restart" Estable el reinicio de la maquina virtual. on_crash = "restart" Estable un reinicio en caso de crash. device_model = "/usr/lib64/XEN/bin/qemu-dm" Manda a llamar a la librería de virtualización de XEN. sdl = 0 Desactiva la librería de gráficos. vnc = 1 Permitir conexiones VNC a los DomU. vncunused = 1 disk = [ "phy:/dev/vg/web.img,hda,w", ",hdc:cdrom,r" ] vif = [ "mac=00:16:3e:56:16:d6,bridge=xenbr0" ] serial = "pty" Determina el valor numérico y, si éste no es cero, hace que el servidor VNC escuché en el primer puerto sin usar superior a 5900 Parámetro en donde se declara la ruta del Disco Duro virtual y los permisos rw y unidades ópticas disponibles. Parámetro donde configura la IP, MAC, Tipo de red esta ocupando XEN (bridge,route,nat). Habilita consola en DomU Administración de maquinas virtuales con xm Creación / Inicio de Maquinas Virtuales Para poder iniciar un Maquina Virtual que todavía no han sido configurada dentro de XEN. se tiene que usar el siguiente comando, con la opción de -c para que mande a llamar el archivo de configuración de la Maquina Virtual. xm create -c web & Si quieren iniciar una maquina virtual ya agrega en la configuración de XEN entonces solo ejecuta. xm create database & ' Conexión de Maquinas Virtuales Para entrar a una maquina virtual a travez del DomO, podemos acceder a ella por medio de una consola con el siguiente comando. xm console web Este comando nos abrirá una Conexión dentro de la terminal de Dom0, como siempre nos solicitara Login/Password. Apagado de Maquinas Virtuales Para apagar una maquina virtual se hace los siguiente: xm shutdown web Es como si estuviéramos apagando la maquina desde adentro con un init 0 o shutdown -h now. En shutdown con la opción a apaga todas las maquinas virtuales y con -w espera que el dominio se apague completo xm shutdown -a -w Nota: Consejo nunca reiniciar/apagar el servidor DomO ya que XEN no logra aveces apagar a losI DomU. Reinicio de Maquinas Virtuales Para reiniciar las maquinas virtuales se tiene que usar el siguiente comando. xm reboot web Es como si reiniciamos la maquina desde adentro con un init 6 o shutdown -r now now. Destruir de Maquinas Virtuales No se recomienda utilizar este comando ya que lo que hace es un apagado de la maquina virtual sin esperar apagar sus servicios, es como si hubiera un corte de luz o el famoso botonazo. xm destroy web Como también al momento de utilizar es comando, hay ocasiones que te crea un respaldo de la maquina virtual en /var/run/xend y si tu servidor cuenta con poco espacio va hacer que tu servidores se caigan. Pausa de Maquinas Virtuales Deja la maquina virtual en modo pausa. xm pause web Con esta opción no se tiene acceso alguno a nuestra maquina virtual. Habilitar Maquinas Virtuales Suspendida Reinicia la operacion de la maquina virtual pausada. xm unpause web Renombrar Maquinas Virtuales. También que puede cambiar el nombre de la una maquina virtual, siempre tener un nombre que relacione con el nombre del servicio que ofrece la maquina virtual. xm rename web apache2 Monitoreo MV en tiempo real El siguiente comando sirve para el monitoreo de las VM en tiempo real. xm top Cantidad de Memoria usada y disponible por el servidor. Cantidad de procesadores que tiene el servidor. Nos muestra la información de cuantos dominios están configurados. Dentro de los dominios configurados se muestra cuantos CPU tiene cada maquina virtual, estado del procesador, memoria total y cuanto ha sido ocupada. Monitoreo MV en tiempo de inicio Con este comando nos muestra el tiempo que lleva en linea la MV. xm uptime Name ID Domain-0 0 Uptime 15 days, 19:34:43 database 22 8 days, 18:47:10 web 24 8 days, webbuilder 25 22:52:19 correo 21 8 days, 18:47:23 4:50:42 Listar Maquinas Virtuales Con este comando podremos ver cuantas maquinas virtuales esta en ejecución xm list Name ID Mem(MiB) VCPUs Domain-0 0 792 8 State r----- Time(s) database 22 2055 1 r----- 509995.2 web 24 2055 2 -b---- 48271.1 248134.1 webbuilder 25 1031 1 -b---- 1542.9 zimbrozo 21 2055 1 r----- 235000.5 Todo la información no las proporciona en columnas, Nombre VM, numero de proceso, memoria, cpu virtuales, estado, tiempo de ejecución. Como pueden ver es información sencilla de entender, solamente la columna de State es la tiene variaciones. Opción Descripción r 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. Listar información de la VCPU Lista información de las vcpu que están ocupando los dominios. xm vcpu-list Name ID VCPUs Domain-0 0 0 CPU State 0 Time(s) CPU Affinity r-- 213690.4 Domain-0 0 1 1 -b- 9633.2 1 Domain-0 0 2 2 -b- 5528.3 2 Domain-0 0 3 3 r-- 6541.8 3 Domain-0 0 4 4 -b- 2931.8 4 Domain-0 0 5 5 -b- 3100.1 5 Domain-0 0 6 6 -b- 4048.4 6 Domain-0 0 7 7 -b- 7314.0 7 database 22 0 1 web 24 0 5 --- 0 517642.3 -b- any cpu 21537.4 any cpu web 24 1 6 -b- 27821.2 any cpu webbuilder 25 0 7 -b- 1761.6 correo 21 0 0 -b- 238508.2 any cpu any cpu También si queremos que nos despliegue los vcpu de un MV, solamente se tiene que manda llamar así. xm vcpu-list web Name ID VCPUs State Time(s) CPU Affinity web 24 0 CPU 7 -b- 21564.7 any cpu web 24 1 5 -b- 27876.0 any cpu Agregar VCPU a un dominio. xm vcpu-set database 2 Lo que hacemos con este comando es agregar otro procesador a la maquina virtual que la requiera. El cambio se vera reflejado hasta reiniciar la maquina virtual y también el servidor XEN. Agregar VCPU/CPU a un dominio. xm vcpu-pin database 1 2 Lo que hace es ajustar 2 procesadores reales y un procesador virtual. este cambio se vera reflejado hasta reiniciar el servidor virtual y XEN. Memoria Máxima en VM xm mem-max database 1500 Ajusta a la maquina virtual como limite máximo de la memoria RAM asignamos 720 MB de RAM, hay que reiniciar. Memoria Default ocupada mem-set database 1024 Ajusta a la maquina virtual para que use solamente este espacio asignado en la memoria RAM. Mostrar Información del Dominio 0 xm info host : server1.mydomain.com release : 2.6.18-92.1.18.el5XEN version : #1 SMP Wed Nov 5 09:15:48 EST 2008 machine x86_64 nr_cpus : 8 nr_nodes : 1 sockets_per_node : 2 cores_per_socket : 4 threads_per_core cpu_mhz hw_caps : 1 : 2327 :bfebfbff:20100800:00000000:00000140:000ce3bd:00000000:00000001 total_memory : 8186 free_memory :2 node_to_cpu : node0:0-7 XEN_major : 3 XEN_minor : 1 XEN_extra : .2-92.1.18.el5 XEN_caps : XEN-3.0-x86_64 XEN-3.0-x86_32p hvm-3.0-x86_32 hvm-3.0-x86_32p hvm-3.0-x86_64 XEN_pagesize : 4096 platform_params : virt_start=0xffff800000000000 XEN_changeset : unavailable cc_compiler cc_compile_by cc_compile_domain cc_compile_date XENd_config_format : gcc version 4.1.2 20071124 : brewbuilder : build.redhat.com : Wed Nov 5 08:56:53 EST 2008 : 2 Mostrar logs de xend Muestra la actividad de los registro de log de XENd. xm log Mostrar Mensaje del buffer xend En el buffer contiene la información, advertencias y mensajes de error creados durante el proceso de arranque de XEN o en su caso de que tengas algún problema con XEN este es primer lugar que tienes que verificar los errores registrados. xm dmesg Migración de Maquinas Virtuales La migración de las maquinas virtuales se hace en caliente, esta configuración se a travez del comando: xm migrate Como resultado da el traspaso de un domino virtual en ejecución desde un anfitriona otro. Para migrara dominios en calientes, se tiene que habilitar las opciones dentro del fichero de configuración de XEN, esta configuración se hace en la DomO donde se va migrar el VM. Antes de todo te recomiendo hacer una copia de respaldo del archivo de configuración de XEN. cp /etc/xen/xend-config.sxp /etc/xen/xend/xend-config-09012008 Ahora que ya hicimos el respaldo hay que editar el archivo. vim /etc/xen/xend-config.sxp Dentro de este fichero tenemos que descomentar las siguientes lineas para que nos permite conectarnos al servidor desde XEN. (xend-relocation-port 8002) (xend-relocation-address '') #(xend-relocation-server yes) (xend-relocation-hosts-allow '') (xend-address '') y comentamos la siguiente linea. #(xend-address localhost) Y ejecutaremos ejemplo xm migrate database server2 En unos segundos podremos ver con xm list que esta en el server 1 lo migra al server2 El comando xm migrate tiene otras opciones: -l, realiza una migración en vivo. Ello realiza la migración de la máquina virtual entre hosts -r Mbs, establece el máximo de Mbs de transferencia a la hora de realizar la migración de máquina. Ello puede evitar, o puede saturar la red. La imagen del dominio tiene que estar en un filesystem compartido. Ambos ordenadores tienen que tener un procesador de la misma familia. xm migrate --live web 207.249.24.32 Inicio Automático de Maquinas Virtuales Ahora tendremos que configurar que maquinas virtuales queremos que inicien automáticamente en cada reinicio del sistema. Tenemos que ir a la ruta de configuración del servidor XEN. cd /etc/xen Cada vez que se reinicia el servidor Dom0 el carga solamente el servicio XEN pero no las maquinas virtual o el servicio XENdomains inicia solo. por eso en la carpeta auto debe estar indicado con los DomU a iniciar automáticamente. Hay que ejecutar este comando las veces que sea necesarias dependiendo de las maquinas que desea prender en automático. ln -s /etc/XEN/database /etc/XEN/auto ln -s /etc/XEN/web /etc/XEN/auto ls auto/ correo database web webbuilder Tarjetas de red en XEN. XEN crea por defecto interfaces Ethernet virtuales interconectadas para que dom0 las utilice. Si tecleamos el comando ifconfig en el servidor xen nuestra las siguientes interfaces de red. Interfaz peth0. Interfaz xenbr0. Interfaz virbr0 Interfaz vif#.# peth0 La interfaz peth0 “Physical Ethernet” deberíamos conocerla como interfaz física, lo que hace es renombrar la eth0 por peth0 para que se ocupada por XEN en modo brigde. La interfaz eth0 es desactiva en el Dom0 y es renombrada a peth0. peth0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST NOARP MTU:1500 Metric:1 RX packets:49643901 errors:0 dropped:0 overruns:0 frame:0 TX packets:48752155 errors:1293908 dropped:0 overruns:0 carrier:1293908 collisions:2057033 txqueuelen:1000 RX bytes:26327146789 (24.5 GiB) TX bytes:31709052034 (29.5 GiB) Interrupt:16 Memory:f8000000-f8012100 xenbr0 La interfaz xenbr0, también es conocido como switch virtual, el cual permite conectar a las maquinas virtuales en una red local o DMZ, pero que están controlados por un administrador de red que les asigna ip estáticas o dinámicas es un puente virtual a un red, solamente ocupado brigde. xenbr0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:316559 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:23948805 (22.8 MiB) TX bytes:0 (0.0 b) virbr0 La interfaz virbr0 “virtual bridge”, es el puente de la red virtual creada por xen, todas las maquinas virtuales alojados por esta interfaz sera parte de una red virtual(route, nat) o DMZ virtual. virbr0 Link encap:Ethernet HWaddr 00:00:00:00:00:00 inet addr:192.168.122.1 Bcast:192.168.122.255 UP BROADCAST RUNNING MULTICAST MTU:1500 Mask:255.255.255.0 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) vif#.# La interfaz vif0.#, es el puente del puerto que es utilizado por el tráfico a del Dom0. Los dispositivos de red virtual son las conexiones hacia las tarjeta de red de las maquinas virtuales, El símbolo # toma su valor dependiendo del ID de la maquina virtual al iniciar. vif0.0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:1417928 errors:0 dropped:0 overruns:0 frame:0 TX packets:2240859 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:210227871 (200.4 MiB) vif0.21 Link encap:Ethernet TX bytes:1181653865 (1.1 GiB) HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST NOARP MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:32 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Network XEN Xen tiene la propiedad de configurar redes virtuales dentro de los propios dóminos. Existen varias configuraciones de red en XEN: Puente (bridge). Encaminador (router). NAT. otras. Esta configuración se lleva acabo con las interfaces de red virtuales, pero también es necesario configurar el archivo /etc/xen/xend-config.sxp, para poder hacer el cambio a la configuración de la red. Puente (bridge) La configuración por defecto de XEN crea puentes de red dentro de dom0 para permitir que todos los dominios aparezcan en la red como hosts independientes. Este método lo que hace es tomar IP dentro de la red donde se conecta, ya sea IP estática o dinámica. Este el método mas simple y fácil de configurar la red para las maquinas virtuales, simplemente permite que sus maquinas virtuales a utilizar una tarjeta Ethernet virtual para unirse a una red existente. Para poder tener esta configuración solamente tenemos que descomentar las Siguientes lineas del archivo de configuración de XEN. (network-script network-bridge) (vif-script vif-bridge) verificar nuestra MV tenga la siguiente linea. vif = [ "mac=00:16:3e:56:16:d6,bridge=Xenbr0" ] Y tendremos que reiniciar XEN para que tome los cambios. bridge varias ethernet Este es un método por el cual podemos tener Maquinas virtuales, en varias interfaz xenbr# y peth#, lo cual puede mejorar el rendimiento del trafico de las DomU. Para esto haremos lo siguiente crearemos el siguiente script y el script debe estar guardado en la ruta /etc/xen/scripts/ vim puentes.sh #!/bin/sh dir=$(dirname "$0") "$dir/network-bridge" "$@" vifnum=0 netdev=eth0 bridge=xenbr0 "$dir/network-bridge" "$@" vifnum=1 netdev=eth1 bridge=xenbr1 Con esto hemos creado dos bridge dentro de XEN. Ahora solo tenemos que modificar el archivo de configuracion de XEN. vim /etc/xend/xend-config.sxp Tendremos que modificar el siguiente parametro: #(network-script network-bridge) Y agregar esta linea debajo de la comentada: (network-script puentes.sh) Ya con esta tenemos configurado xen con dos puentes, solamente queda reiniciar el servicio xen para que tome los cambios. /etc/init/xend restart Encaminador (router) Esta configuración se aplica cuando: Cuando la maquinas están en una diferente LAN. Cuando el trafico se red dirige hacia el exterior por la red 192.168.1.0/24 Son maquinas visibles desde 192.168.1.0/24 Para poder hacer esta configuración es necesario modificar el archivo de configuración de XEN. Buscar las siguientes lineas y descomentarlas. (network-script network-route) (vif-script vif-route) Comentar las siguientes: #(network-script network-bridge) #(network-script network-nat) #(vif-script vif-bridge) #(vif-script vif-nat) Ya con esto tenemos habilitas el nodo route en xen, pero todavía falta configurar las tarjetas virtuales de las maquinas virtuales, ahora tendremos que modificar archivo de una maquina virtual, en nuestro caso va hacer web. Como pueden ver en esta linea del archivo de la MV web tiene habilitado que usa la configuración de red en bridge. vif = [ "mac=00:16:3e:56:16:d6,bridge=Xenbr0" ] Tenemos que modificarla o mejor comentarla y crear otra linea debajo de esta con los siguientes datos vif = [ “ip=10.0.0.2” ] Ahora tenemos que habilitar el route siguiente forma: echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp iptables -t nat -A POSTROUTING -s 10.0.0.0 -j MASQUERADE route add -net 10.0.0.0 netmask 255.255.255.0 gw 192.168.1.5 Ya con esto ya tendrás configurado la red configurado en route solo reinicia XEN. NAT DomU están en una LAN privada. DomU hacen NAT con Dom0 para poder llegar a la otra LAN y parece como si el trafico procede de Dom0. DomU están ocultos y protegidos de 192.168.1.0/24 Para poder habilitar esta configuración tenemos que editar el archivo de configuración de XEN. Buscar las siguientes lineas y descomentarlas. (network-script network-nat) (vif-script vif-nat) Comentar las siguientes: #(network-script network-bridge) #(network-script network-route) #(vif-script vif-bridge) #(vif-script vif-route) Hay que modificar la configuración de la MV. vif = [ "mac=00:16:3e:56:16:d6,bridge=Xenbr0" ] Tenemos que modificarla o mejor comentarla y crear otra linea debajo de esta con los siguientes datos vif = [ “ip=10.0.0.2” ] Con esta modificación ya tendremos a nuestra MV trabajando, solo hay que reiniciar XEN. Herramienta brctl brctl es una herramienta de red que inspecciona y modifica la configuración de los puentes Ethernet en el Kernel de virtualización de Linux. Debe tener acceso de root antes de ejecutar estos comandos de ejemplo: Este comando nos muestra la información de los puentes y las tarjetas que están conectadas al puentes. brctl show bridge name bridge id virbr0 8000.000000000000 xenbr0 8000.46c9342a9baa STP enabled interfaces yes no peth0 tap2 vif0.28 tap3 vif0.24 tap0 vif0.21 tap1 Este opción de este comando nos muestra la información de las MAC que tiene el puente, cambien indica que MAC ya están ocupadas. brctl showmacs xenbr0 port mac addr is local? ageing timer 2 no 00:01:69:00:3c:dd no 0.00 2 00:01:69:00:3c:f6 no 0.04 2 00:03:ba:5c:9e:a1 no 199.02 2 00:0c:29:22:94:2f no 224.37 2 00:14:22:0f:50:75 no 6.54 2 00:14:22:10:16:cd no 272.70 2 00:16:35:5c:e4:6a no 45.61 7 00:16:3e:27:f6:55 no 2.16 5 00:16:3e:30:92:bc no 0.04 3 00:16:3e:56:16:d6 no 0.00 2 00:19:30:9c:ff:9c no 0.85 Herramientas Gráficas XEN Existen otras maneras de administrar maquinas virtuales de una forma mas sencilla y rápida, estas herramientas están en un modo gráfico. Las mas conocidas y ocupadas para esta administración son: virt-manager xenman/convirt Enomalism ovirt virt-Manager Para poder instalarlo encaso de no tenerlo: yum install virt-manager Al momento de ejecutar la aplicación, te aparece una linea indicando que localhost xen Disconnected, la razón que que todavía no se conecta al Dom0 para eso de damos botón de derecho del ratón y seleccionamos conectar y con esto aparecerán los DomU configurados dentro de XEN. Es una aplicación que nos muestra la información de lo que esta pasando en cada una de los DomU que tiene registrado XEN. Como podemos ver nos muestra la información del uso del nombre de cada DomU. Id de proceso, Estado actual, CPU físicos y virtuales, memoria ocupada. Como también tiene las funciones de configurar el DHCP de XEN. Para mas información visitas la pagina oficial del proyecto http://virt-manager.et.redhat.com/. xenman/convirt Xenman y convirt son la misma herramienta, actualmente es un poco inestables pero tiene mas funciones que virt-manager. También se ocupan para la administración de los DomU y esta herramienta es universal ya que casi todas las distribuciones de GNU/Linux existen los paquetes precompilados. Para poder instalarlo necesitamos descargar el paquete desde la pagina oficial del proyecto. http://xenman.sourceforge.net/downloads.html Primero tenemos que instalar las siguientes dependencias. yum install python-paramiko Para mas información visitas la pagina oficial del proyecto http://xenman.sourceforge.net/downloads.html. enomalism Esta es otra herramienta gráfica que nos permite también administrar los DomU que están registrados en XEN pero es muy inestable. Tiene mas soporte para KVM ya que esta funciona mejor en esta herramienta. Tiene una pantalla muy detallada y muy estética pero es muy inestable. Para mas información visitas la pagina oficial del proyecto. http://www.enomalism.com/ Ovirt Ovirt es la nueva generación de administración de DomU o máquina virtuales,ya es muy visual, fácil de administrar y los principal es vía web. Tiene soporte para XEN pero es muy inestable ya que esta pensada para KVM la cual tendrá soporte para la versión del RHEL 6. Para mas información visita la pagina oficial del proyecto. http://ovirt.org/index.html 0 archivos adjuntos Promedio (0 Votos) 3257 Accesos