scieee AI-readable full text Open interactive document viewer

vMotion Migración en Caliente

Macías Sánchez, Silvio

Abstract

Esta memoria nos introduce en el mundo de los servidores de máquinas virtuales procurando no saltarse ningún paso, de una forma gráfica y sin necesidad de conocimientos previos sobre virtualización. Es una guía para la instalación y configuración de un centro de datos con las siguientes tecnologías de virtualización de la compañía VMware: vCenter Server y vSphere ESXi; y el almacenamiento en red open-source FreeNAS. Este despliegue se usará para poner a prueba el funcionamiento de la tecnología vMotion. vMotion es una tecnología para migrar en caliente una máquina virtual de un servidor de máquinas virtuales a otro, de forma transparente y sin desconexiones. Esta tecnología, con la potencia de los procesadores y el ancho de banda actual, es casi inocua al rendimiento de la máquina virtual, lo cual permite su aplicación en una gran diversidad de sectores.

Full text

1 ESCUELA TÉCNICA SUPERIOR DE INGENIERÍA INFORMÁTICA GRADO EN INGENIERÍA DEL SOFTWARE vMotion Migración en Caliente vMotion Live Migration Realizado por Silvio Macías Sánchez Tutorizado por Julián Ramos Cózar Departamento Arquitectura de Computadores UNIVERSIDAD DE MÁLAGA MÁLAGA, FEBRERO 2016 Fecha defensa: El Secretario del Tribunal 2 3 Resumen: Esta memoria nos introduce en el mundo de los servidores de máquinas virtuales procurando no saltarse ningún paso, de una forma gráfica y sin necesidad de conocimientos previos sobre virtualización. Es una guía para la instalación y configuración de un centro de datos con las siguientes tecnologías de virtualización de la compañía VMware: vCenter Server y vSphere ESXi; y el almacenamiento en red open-source FreeNAS. Este despliegue se usará para poner a prueba el funcionamiento de la tecnología vMotion. vMotion es una tecnología para migrar en caliente una máquina virtual de un servidor de máquinas virtuales a otro, de forma transparente y sin desconexiones. Esta tecnología, con la potencia de los procesadores y el ancho de banda actual, es casi inocua al rendimiento de la máquina virtual, lo cual permite su aplicación en una gran diversidad de sectores. Palabras claves: VMware, vMotion, vSphere, ESXi, FreeNAS, Debian, Owncloud, MySQL, Workstation, vClient, hipervisor, máquina virtual, virtualización, migración en caliente, alta disponibilidad, almacenamiento en red, tecnologías verdes, servidor web. Abstract: This memory introduces us into the world of virtual machine’s servers trying not to avoid any step, in a graphic way and without the need of any advance knowledge about virtualization. This is a guide in the installation and configuration of a datacenter with the following virtualization’s technologies of VMware: vCenter Server and vSphere ESXi; and the open-source network storage FreeNAS. This set-up will be used to test the performance of vMotion, which is a technology for live migrate a virtual machine from a virtual machine’s server to another, in a clean way and without disconnections. This technology, with the power of processors and bandwidth nowadays, is almost innocuous to the performance of the virtual machine, which allows its application in a big diversity of fields. Keywords: VMware, vMotion, vSphere, ESXi, FreeNAS, Debian, Owncloud, MySQL, Workstation, vClient, hypervisor, virtual machine, virtualization, live migration, high availability, network storage, green computing, web server. 4 5 Agradecimientos A mi compañero Antonio Sánchez Valadez por proporcionarme los 16 GB de RAM necesarios para realizar este proyecto. A los técnicos de laboratorio Francisco Hurtado Berlanga y Juan José González García por su ayuda, conocimiento, tiempo y amabilidad. A mi profesor Julián Ramos Cózar por guiarme y por la confianza depositada en mí. A mi tío y a mi hermana por sus correcciones y consejos. Y a mi madre porque sin ella no podría agradecerle nada a nadie. 6 7 1 Introducción _____________________________________________________________ 9 1.1 Motivación _________________________________________________________ 10 1.2 Contenidos de la Memoria _____________________________________________ 10 2 Especificación del sistema _________________________________________________ 13 2.1 Diagramas de Bloques ________________________________________________ 13 2.2 Versiones __________________________________________________________ 14 3 Instalación de los componentes Software _____________________________________ 17 3.1 Hipervisor VMware EXSI _______________________________________________ 17 3.1.1 Introducción ____________________________________________________ 17 3.1.2 Requisitos ______________________________________________________ 17 3.1.3 Configuración deseada ____________________________________________ 17 3.1.4 Procedimiento de Instalación_______________________________________ 17 3.1.5 Procedimiento de Configuración ____________________________________ 25 3.2 Servidor Almacenamiento en Red FreeNAS ________________________________ 29 3.2.1 Introducción ____________________________________________________ 29 3.2.2 Requisitos ______________________________________________________ 29 3.2.3 Configuración deseada ____________________________________________ 30 3.2.4 Procedimiento de Instalación_______________________________________ 31 3.2.5 Procedimiento de Configuración ____________________________________ 34 3.3 VMware vCenter Server 6 _____________________________________________ 41 3.3.1 Introducción ____________________________________________________ 41 3.3.2 Requisitos ______________________________________________________ 41 3.3.3 Configuración deseada ____________________________________________ 42 3.3.4 Procedimiento de Instalación_______________________________________ 42 3.3.5 Procedimiento de Configuración del Prototipo _________________________ 53 3.4 Instalación de un Servidor Web _________________________________________ 69 3.4.1 Introducción ____________________________________________________ 69 3.4.1 Requisitos ______________________________________________________ 69 3.4.2 Configuración deseada ____________________________________________ 69 3.4.3 Debian GNU/Linux 8 ______________________________________________ 69 3.4.4 Owncloud ______________________________________________________ 83 4 Tecnología vMotion ______________________________________________________ 89 4.1 Arquitectura ________________________________________________________ 89 4.2 Estado de los Dispositivos Virtuales ______________________________________ 89 4.3 Redes y Conexiones de Dispositivos SCSI __________________________________ 89 4.4 Memoria Física de la Máquina Virtual ____________________________________ 89 8 4.4.1 Fase de seguimiento de la máquina virtual ____________________________ 89 4.4.2 Fase pre-copia __________________________________________________ 90 4.4.3 Fase de desconexión _____________________________________________ 90 4.5 Migración en Caliente ________________________________________________ 90 4.5.1 Subir la Máquina Virtual ___________________________________________ 90 4.5.2 vCenter Web Client ______________________________________________ 93 5 Pruebas de Rendimiento sobre Servidores Físicos _____________________________ 101 5.1 Descripción ________________________________________________________ 101 5.2 Gráficas de Resultados _______________________________________________ 102 5.3 Comentarios _______________________________________________________ 103 6 Conclusiones___________________________________________________________ 105 Bibliografía ________________________________________________________________ 107 Contenido del CD ___________________________________________________________ 108 9 1 Introducción En informática, virtualización es la creación a través de software de una versión virtual de algún recurso tecnológico, como puede ser una plataforma de hardware, un sistema operativo, un dispositivo de almacenamiento u otros recursos de red. (Electronic Commerce A Managerial Perspective, 2007, pág. 27). Esto nos permite crear una capa de abstracción entre el software y el hardware subyacente, engañando de alguna forma al software, proporcionándole información adecuada para admitir recursos software que funcionan como si fueran parte de su propio hardware. Así tenemos:  Un sistema operativo dentro de otro sistema operativo.  La capacidad de aislar ciertos programas, añadiendo seguridad adicional al sistema operativo.  Programación que no dependa del compilador y por lo tanto sea compatible con diferentes sistemas operativos o arquitecturas de procesador.  Compartir un recurso físico entre varios sistemas, permitiendo hacer mejor uso (mayor eficiencia y eficacia) del hardware que tenemos.  Ser independientes del hardware y por lo tanto poder migrar un sistema virtual desde una máquina física a otra sin desconectar los servicios y tecnologías que estén ejecutándose (migración en caliente).  Esta lista de características y prestaciones es ampliable, pero nosotros nos centraremos en esta última, la independencia del hardware para la migración en caliente. También tenemos que introducir el concepto de máquina virtual e hipervisor. Una máquina virtual es el software justo por debajo del sistema virtual, encargado de simular el hardware. Y el hipervisor es el monitor de la máquina o máquinas virtuales, el encargado de gestionar los recursos de las mismas. Hay dos tipos de hipervisores, hosted que se ejecuta como otro programa dentro de un sistema operativo convencional (Diagrama 1.1), y nativo o bare-metal (sobre el metal desnudo) que se encarga de proporcionar un sistema operativo lo más ligero posible dedicado únicamente a la gestión de las máquinas virtuales (Diagrama 1.2). La independencia del hardware nos permite crear sistemas de alta disponibilidad, sistemas que pretenden asegurar un grado casi absoluto de continuidad operacional durante un periodo de tiempo. Estos sistemas son cada vez más relevantes en el mercado y la sociedad. Garantizan procesos de control, de registro, de prevención… y son utilizados en sistemas financieros, Diagrama 1.2 – Bare-metal Diagrama 1.1 - Hosted 16 Diagrama 2.4 - Versión Física 17 3 Instalación de los componentes Software 3.1 Hipervisor VMware EXSI 3.1.1 Introducción En nuestro caso vamos a instalar el hipervisor nativo o bare-metal “EXSI 6”. Lo vamos hacer sobre el hipervisor hosted Workstation Pro 12.0, creando un sistema virtual de servidores para la gestión de máquinas virtuales. Así añadimos un nivel de virtualización, comprobando y demostrando la potencia de esta tecnología. Además, esto nos permite hacerlo en un ordenador personal, sin la necesidad de tener una maquina física por cada EXSi dedicadas solo a este propósito. 3.1.2 Requisitos - 4 GB de RAM (8GB recomendado) - Procesador de 2 Cores 64-bit x86 Nota: en el caso que queramos que contenga un vCenter tendría que tener al menos 8 GB de RAM ya que es requisito mínimo. (VMware vSphere 6.0 Documentation Center) 3.1.3 Configuración deseada Para crear el sistema lo primero que necesitaremos es la instalación de los hipervisores baremetal, en ellos ejecutaremos las máquinas virtuales, utilizarán el servidor de almacenamiento en red e incluso contendrán al gestor centralizado de hipervisores. En definitiva son el esqueleto del todo el sistema. 3.1.4 Procedimiento de Instalación Primero tenemos que crear una máquina virtual. Abrimos VMware Workstation File => New Virtual Machine… o [Ctrl]-[N] Elegimos Typical (recommended) ya que no necesitamos configuraciones avanzadas. 18 Captura 3.1 En esta ventana tendremos que seleccionar el disco de instalación. Si lo tuviéramos en formato físico (grabado en un DVD) seleccionaríamos Installer disc y su lector de DVD correspondiente. En este caso la maquina en cuestión no posee lectores de DVD y por lo tanto aparece deshabilitado. Por lo tanto, con el botón Browse seleccionaremos la imagen del disco de instalación. Esta imagen se puede descargar gratuitamente desde la página de VMware (requiere registro previo): https://my.vmware.com/en/group/vmware/evalcenter?p=free-esxi6 También desde la página del programa académico de VMware para el departamento de Arquitectura de Computadores (previa inscripción): http://e5.onthehub.com/d.ashx?s=emxl3xn0if Captura 3.2 Introducimos un nombre representativo y la localización donde deseamos que se almacene. 19 Captura 3.3 El tamaño del disco duro no es relevante ya que le conectaremos más adelante el almacenamiento en red. Por lo tanto, dejamos el tamaño predeterminado y el tipo de disco duro al ser una instalación típica será incremental, no pre-asignará el espacio en el disco duro. Captura 3.4 Nos muestra el resumen de la máquina virtual creada. Pulsamos el botón de Customize Hardware… para añadir un adaptador red adicional. 20 Captura 3.5 Añadimos otro adaptador de red para tener una red solo para el tráfico de las máquinas virtuales y otra para el almacenamiento en red. Para ello elegimos dos redes virtuales diferentes, no es necesario que tengan una conexión a internet. Captura 3.6 21 Iniciamos la máquina y empezamos la instalación. Captura 3.7 Captura 3.8 22 Leemos y aceptamos el EULA. Captura 3.9 Seleccionamos el disco duro local. Captura 3.10 23 Seleccionamos el idioma. Captura 3.11 La contraseña debe tener como mínimo 7 caracteres. Captura 3.12 24 Confirmamos el formateo del disco. Captura 3.13 Nos confirma que la instalación se ha completado correctamente y reiniciamos. Captura 3.14 25 3.1.5 Procedimiento de Configuración Vamos a configurar la red con IPs estáticas. Esto nos permite tener mejor control ya que si dejamos la configuración por DHCP la IP es dinámica y por lo tanto puede cambiar al reiniciar. Al reiniciar nos aparece la pantalla conocida como Yellow Brick. Captura 3.15 32 Captura 3.26 Nos pide confirmación para formatear el disco duro. Captura 3.27 33 Captura 3.28 Introducimos la contraseña del usuario root. Captura 3.29 Reiniciamos para arrancar el sistema. 34 Captura 3.30 3.2.5 Procedimiento de Configuración Después del reinicio nos aparecerá esta pantalla donde se indica las direcciones IPs que va a utilizar la máquina. Cualquiera de las dos IPs valen para acceder a través de un navegador al sistema de control web, pero preferimos la de la red de control. En esta pantalla podemos: - Configurar la red - Resetear la contraseña root - Volver a los valores de fábrica - Acceder a la Shell del sistema - Actualizar el sistema - Crear y restaurar backups - Reiniciar y apagar. Captura 3.31 35 Accedemos a través del navegador web a la IP de la Captura 3.31. Introducimos las credenciales que hemos creado en la Captura 3.29. Captura 3.32 Configuramos el idioma, teclado y la zona horaria. Captura 3.33 Creamos un nuevo Pool con el disco adicional que añadimos. En el propósito, si tuviéramos un conjunto de discos nos dejaría elegir el tipo de RAID, para la virtualización se recomienda RAID 10 que sería la combinación de dos RAID 1 a través de un RAID 0. Tal y como se muestra en el Diagrama 3.1. Diagrama 3.1 – RAID 10, recomendación para virtualización Captura 3.34 36 Dejamos en blanco la configuración del dominio. Si tuviéramos un dominio como por ejemplo www.uma.es introduciríamos los datos de este aquí. Captura 3.35 Seleccionamos Block Stogare (iSCSI) ponemos el tamaño del disco que habíamos añadido y pulsamos Add. Las demás opciones soportan los diferentes protocolos propios de los sistemas operativos Windows, Mac OS X y Unix. Captura 3.36 37 Dejamos en blanco la configuración del servidor de correo. Si fuera una instalación real, la configuración del correo es muy útil ya que envía automáticamente cambios o problemas al correo. Captura 3.37 Confirmamos la configuración. Captura 3.38 Vamos a configurar el servidor Block iSCSI para ello tendemos que añadir un portal: Compartido => Block (iSCSI) => Portales => Add Y seleccionamos la IP de la red de datos. En la autentificación si la configuramos podríamos elegir entre CHAP y Mutual CHAP. Captura 3.39 Nos movemos a la pestaña Extender y añadimos el disco de datos. En el tipo podemos elegir entre Dispositivo y Archivo, si elegimos un dispositivo tiene que ser una unidad de disco y si 38 elegimos un archivo ser creara un archivo que representa nuestra unidad compartida. El número de serie lo rellena automáticamente respecto al dispositivo seleccionado. Nos deja elegir el tamaño de bloque y la siguiente casilla es para desactivar las advertencias sobre el tamaño de bloque, ya que a veces hay problemas de compatibilidad. En este caso habilitando TPC permitimos al iniciador (el cliente de la unidad compartida) copiar datos a través de xcopy a otra unidad externa, es decir copiar a un datastore alojado en otro servidor. Y por último LUN RPM es la velocidad de nuestro disco duro. Captura 3.40 En Destinos o Targets tenemos que rellenar el nombre del destino y seleccionar el portal que hemos creado en la Captura 3.39. Captura 3.41 En la pestaña Destinos asociados tenemos que asociar el destino y el medio. El LUN ID es el numero identificativo de la unidad lógica. 39 Captura 3.42 Ya hemos configurado nuestro servidor iSCSI. Lo último que nos falta es activar el servicio. Vamos a la pestaña Servicios y ponemos a ON el servicio iSCSI. Captura 3.43 Nuestro servidor iSCSI ya está configurado y funcionando. 40 41 3.3 VMware vCenter Server 6 3.3.1 Introducción VMware vCenter Server es la joya de la corona de VMware. Permite unificar la gestión de todos los hosts y sus respectivas máquinas virtuales de uno o varios datacenters. Esto permite a los administradores simplificar las tareas de mantenimiento, reduciendo la complejidad y por lo tanto el coste de la gestión del sistema. Esto va relacionado con su precio ya que la licencia más barata, que solo incluye 3 host ESXi por un año, cuesta 2220,50 € (Primer trimestre 2016). Este software se distribuye gratuitamente con finalidades académicas para los alumnos de la universidad de Málaga a través del programa académico de VMware para el departamento de Arquitectura de Computadores. Sus principales funciones entre otras son: - VMware vSphere vMotion - VMware vSphere Distributed Resource Scheduler - VMware vSphere High Availability (HA) - VMware vSphere Fault Tolerance - VMware vCenter Orchestrator Diagrama 3.2 - Un servidor para controlarlos a todos. Imagen propiedad de VMware Inc. 3.3.2 Requisitos Un vCenter Server se instala como una máquina virtual por lo tanto necesitaremos un EXSi con requisitos mínimos de: - 8 GB de RAM - 2 Cores de procesador - 20 GB de espacio libre en el disco duro 48 Estas credenciales son para este vCenter en concreto más adelante crearemos una contraseña única por si tuviéramos más vCenters. Captura 3.56 Hay que decidir si queremos una plataforma de servicios integrados o una externa, la externa como se ve en el dibujo sirve para tener varios vCenter conectados. Captura 3.57 49 En este paso se crea un Single Sign-on (autentificación única) que serviría para todos los vCenter si tuviéramos varios. Captura 3.58 Aquí elegimos el tamaño del vCenter, en este caso es el más pequeño. Captura 3.59 50 Seleccionamos el datastore pertinente y habilitamos el modo Thin Disk para que no se preasigne el espacio del disco duro. Captura 3.60 Usamos la base de datos integrada (vPostgres). Captura 3.61 51 Rellenamos la configuración de red, la puerta de enlace y las DNS son obligatorias, aunque estemos en una red sin conexión a internet. Podemos ponerlas arbitrariamente si es este caso. Captura 3.62 Al no tener un dominio propio, hemos preferido poner la IP directamente en vez de un nombre de dominio completo, si estuviéramos en otro caso podríamos poner como ejemplo: vsphere1.dominio.com. Aunque poner el FQDN (Fully Qualified Domain Name) puede dar fallos, si esto ocurre simplemente recurrir a la IP. Captura 3.63 52 Nos muestra la configuración y finalizamos. Captura 3.64 Captura 3.65 53 3.3.5 Procedimiento de Configuración del Prototipo 3.3.5.1 Añadir y configurar ESXis Nos conectamos a través VMware vSphere Client. Captura 3.66 Queremos introducir la licencia y accedemos a través de: Admistration => vCenter Server Settings… => Licensing Captura 3.67 54 Seleccionamos Assign a new license key to this vCenter Server y pulsamos el botón Enter Key. En el primer textbox introduciremos la licencia y en el segundo podemos poner un nombre opcional relacionado con ella. Captura 3.68 Ahora crearemos un nuevo datacenter, podemos hacerlo desde la página inicial Getting Started => Create a datacenter o pulsando el botón derecho sobre la IP o FQDN del vCenter al que queramos añadir el datacenter o ya habiendo seleccionado el vCenter pulsando sobre el segundo botón de la barra inferior de herramientas. Captura 3.69 55 El siguiente paso es añadir los hosts y para ello podemos también hacerlo desde varias maneras que se ven intuitivamente en la Captura 5.27. Captura 3.70 Para añadir un ESXi tendremos que conocer su IP y sus credenciales asociadas. Captura 3.71 56 Si no hemos instalado el certificado SSL nos aparecerá una alerta de seguridad. Captura 3.72 Nos aparece el resumen de EXSi. Captura 3.73 57 Aquí añadimos la licencia del EXSi. Captura 3.74 Este ESXi es el que contiene el vCenter por eso es importante que no seleccionemos el Lockdown Mode ya que este sirve para solo podamos acceder al ESXi desde la consola o desde vCenter que asociado. Captura 3.75 64 Nos dirigimos a la pestaña de configuración de red y pulsamos el botón Add… Captura 3.90 Seleccionamos el VMkernel que hemos creado anteriormente. Captura 3.91 65 Captura 3.92 Cambiamos a la pestaña de Dynamic Discovery y pulsamos el botón Add… Captura 3.93 66 Introducimos la IP y el puerto del servidor iSCSI. Captura 3.94 Aceptamos y cerramos. Captura 3.95 Para que quede operativo tenemos que volver a escanear los adaptadores. Captura 3.96 67 Como podemos observar en la parte inferior ya tenemos acceso al servidor iSCSI. Captura 3.97 68 69 3.4 Instalación de un Servidor Web 3.4.1 Introducción Para probar la tecnología vMotion hemos elegido un servidor web de streaming, al ser representativo del uso normal de los servidores virtuales para los que está pensado esta tecnología. Servidores con un uso intensivo de disco y con un consumo de memoria RAM relativamente pequeño. El sistema operativo elegido es Debian GNU/Linux 8 (Debian Project), el servidor HTTP Apache 2.4 (The Apache Software Fundation), base de datos MySQL 5.7.9 (Sun Microsystems) y aplicación web Owncloud 8.2 (Owncloud inc. Community). Todo este software es libre y no necesitamos adquirir ninguna licencia. 3.4.1 Requisitos Los requisitos de este combinado de aplicaciones son mínimos, 128 MB de RAM y el tamaño de la instalación puede llegar a ser 2 GB, pero se recomienda: - 512 MB de RAM. - 10 GB de disco duro. (Debian Jessie Minimum Hardware Requirements, s.f.) (Owncloud System Requirements, s.f.) 3.4.2 Configuración deseada Esta máquina estará en el sistema virtual en un nivel 2 de virtualización. El hipervisor hosted contendrá a un hipervisor bare-metal y este a su vez este servidor virtual. Su misión en un sistema funcional sería no apagarse nunca para proporcionar de manera ininterrumpida el servicio web. 3.4.3 Debian GNU/Linux 8 Ilustración 3.1 Debian GNU/Linux es un sistema operativo open-source desarrollado por su propia comunidad y alejado de motivos empresariales o comerciales. Podemos descargarnos la imagen desde su página web: https://www.debian.org/distrib/ En nuestro caso hemos elegido la versión de instalación en red que es la única que tiene una particularidad si hacemos la instalación desde la infraestructura de red la Universidad de Málaga, al tener que configurar el proxy en la instalación. Si en algún caso se quiere omitir este 70 paso, se recomienda descargar la versión DVD que contiene un conjunto de paquetes más amplio para la instalación y por lo tanto tener los diferentes entornos de escritorio. 3.4.3.1 Procedimiento de Instalación Creamos una máquina virtual con estas características. Captura 3.98 Empezamos la instalación, tenemos dos opciones Install y Graphical install, las dos son equivalentes. Graphical install tiene entorno gráfico y por lo tanto es más amigable. Captura 3.99 71 Lo primero es elegir el idioma. Captura 3.100 Seleccionamos el idioma del teclado. Captura 3.101 72 Introducimos el nombre que tendrá en la red y será parte del FQDN. Captura 3.102 El nombre de dominio es la parte representada abajo con color azul del FQDN: nombredelamaquina.dominio.dominiosuperior Ejemplo: debian.uma.es Captura 3.103 73 Introducimos la contraseña del usuario root. Captura 3.104 Se crea una cuenta de nivel usuario y nos pide el nombre “real”. Captura 3.105 80 La elección del entorno de escritorio es arbitraria, ya que la configuración la haremos a través de la Shell. Al seleccionar web server estamos instalado el servidor HTTP Apache. Captura 3.118 El cargador de arranque GRUB es el software que permite iniciar el sistema operativo. Es una parte imprescindible por lo tanto seleccionamos Si. Captura 3.119 81 Seleccionamos /dev/sda que es el disco de la máquina virtual. Captura 3.120 Captura 3.121 82 3.4.3.2 Configuración proxy en Shell Linux Para configurar el proxy en la Shell tenemos que “exportar” la variable http_proxy, con el proxy que nos corresponda. Hay que tener en cuenta que si accedemos como root habrá que volver a exportarla. export http_proxy=http://direccionproxy:puerto/ Captura 3.122 Para configurarlo permanentemente y para todos los usuarios, tendremos que acceder como root con el comando su y editar el archivo /etc/profile con un editor de texto, en nuestro caso nano. Captura 3.123 83 Añadimos en la última línea la exportación de la variable. [Ctrl]-[O] para guardar (nótese “O” letra) [Ctrl]-[X] para salir. Captura 3.124 3.4.4 Owncloud Ilustración 3.2 Owncloud es una plataforma para el servicio de alojamiento de archivos, almacenamiento en línea y aplicaciones en línea. Esta desarrollada por la comunidad OwnCloud Inc. y es opensource. Podemos descárganosla desde su página web: https://owncloud.org/install/ O en nuestro caso desde los repositorios de Debian. 84 3.4.4.1 Procedimiento de Instalación Para empezar su instalación en un entorno Debian simplemente utilizamos el comando de gestión de paquetes apt-get. Primero accedemos como root a través del comando su y luego ejecutamos apt-get install owncloud. Captura 3.125 Automáticamente se seleccionará los paquetes dependientes. 3.4.4.2 MySQL Server Owncloud necesita una base de datos, para ello como cometamos anteriormente hemos elegido MySQL. Necesitamos instalar un servidor MySQL con el comando apt-get install mysql-server. 85 Captura 3.126 Nos pide configurar una contraseña, aunque no es obligatorio. Captura 3.127 86 Captura 3.128 Ahora crearemos un nuevo usuario y una base de datos. Accedemos a la consola de MySQL: mysql –u root -p Introducimos la contraseña creada en las Capturas 3.127 - 3.128. Creamos una base de datos: CREATE DATABASE Owncloud; Concedemos permisos sobre esta base de datos al usuario owncloud de la máquina local y le asignamos una contraseña, en nuestro caso “database_password”. GRANT ALL ON owncloud.* to ‘owncloud’@’localhost’ IDENTIFIED BY ‘database_password’; Captura 3.129 87 Para salir de la consola MySQL ejecutamos el comando exit. Captura 3.130 3.4.4.3 Procedimiento de Configuración Nuestro último paso será acceder a la dirección web de la máquina a través de un navegador, podemos usar localhost ó 127.0.0.1, si nos encontramos en la propia máquina, o la dirección IP o FQDN. En nuestro caso la dirección IP. Debemos introducir: - El usuario y contraseña del administrador. - La localización del directorio donde se guardarán los datos de los usuarios. - Y los datos de la base de datos que hemos creado en la Captura 3.129 Captura 3.131 Pulsamos Completar la instalación y acabamos. 88 89 4 Tecnología vMotion (Vmware vSphere 5.1 vMotion, Performance and Best Practices) 4.1 Arquitectura La migración en caliente de una máquina virtual requiere transferir todo el estado de ejecución de la máquina virtual desde un host origen a otro destino, utilizando una conexión de red de alta velocidad. Esta ejecución tiene tres partes principales.  El estado de los dispositivos virtuales, incluyendo el estado de la CPU, red, adaptadores de disco, etc.  Conexiones de dispositivos externos, incluyendo los adaptadores de red y los dispositivos SCSI.  La memoria física de la máquina virtual. 4.2 Estado de los Dispositivos Virtuales El estado de los dispositivos virtuales que es la información que maneja el hipervisor sobre los dispositivos virtuales. Suele tener un tamaño menor de 8 MB, pero en algunos casos puede superar los 128 MB. Estos tamaños no son en absoluto, problema en una red de alta velocidad, como puede ser 10 GbE. 4.3 Redes y Conexiones de Dispositivos SCSI La arquitectura de la red virtual centrada en los conceptos de switch virtual y tarjeta de red virtual (vNIC), hace muy fácil preservar las conexiones existentes. Debido a que cada vNIC tiene su propia dirección MAC, que es independiente de la dirección MAC de la tarjeta de red física. Simplemente los EXSi tienen que estar en la misma subred. La migración se hace rápida y eficientemente, así las conexiones no llegan a su time out. Después de que la máquina virtual sea migrada, el host destino envía un paquete de resolución de direcciones inversa (RARP) al switch físico, asegurando así que el switch actualiza sus tablas con la nueva dirección del puerto de la máquina virtual migrada. La migración es completamente transparente para los clientes remotos de la máquina virtual. La disponibilidad de almacenamiento compartido como NAS hace muy fácil transferir el estado del disco. Las peticiones al disco duro se hacen a través de la red a la dirección del almacenamiento compartido, por lo tanto, el host destino lo único que tiene que hacer son las peticiones del disco esa misma dirección. 4.4 Memoria Física de la Máquina Virtual La memoria física es el componente más grande que se necesita transferir en la migración. Para permitir que la máquina virtual siga ejecutándose mientras se transfiere la memoria y para conseguir transparencia, el estado de la memoria de la máquina virtual se transfiere en tres fases: 4.4.1 Fase de seguimiento de la máquina virtual Durante esta etapa, se realiza un seguimiento de las páginas de memoria de la máquina virtual, para así poder registrar cualquier modificación realizada en la máquina virtual durante la migración. Este seguimiento puede causar un breve descenso en el rendimiento. El impacto es normalmente proporcional al tamaño de la memoria de la máquina virtual. 96 Captura 4.12 Desde aquí iniciaremos la máquina virtual. Captura 4.13 97 Pulsando con el clic izquierdo del ratón y dirigiéndonos a Power => Power On Captura 4.14 Elegimos Change compute resource only. Captura 4.15 98 Seleccionamos el ESXi destino. Captura 4.16 El EXSi destino tiene que tener acceso a la red virtual de la máquina que queremos migrar. Si tuviera otro nombre diferente a la red original podemos elegir cual es. Captura 4.17 99 La prioridad solo es relevante si el vCenter tiene más tareas en ese momento, en caso contrario el resultado es el mismo. Captura 4.18 Captura 4.19 100 101 5 Pruebas de Rendimiento sobre Servidores Físicos 5.1 Descripción Los momentos más característicos para las pruebas de rendimiento son cuando la máquina hace muchos cambios en la memoria RAM y cuando está en reposo. El tráfico de red y las peticiones al disco duro son casi inocuas ya que, como explicamos anteriormente, es un simple envío de un paquete de resolución de direcciones inversa (RARP). Se ha diseñado un script en bash para hacer muchos cambios en la memoria RAM. #!/bin/bash mkdir /mnt/test mount –t tmpfs /mnt/test /mnt/test while [ true ] do dd if=/dev/uramdom of=/dev/test/ram bs=1M done Este script escribe datos aleatorios continuamente en la mitad de la memoria RAM de sistema. Se migrará en caliente el servidor web virtual que hemos instalado en el apartado 3.4. Cambiando de estado 1 (Diagrama 2.1) al estado 2 (Diagrama 2.2). Los pasos a seguir se detallan en el apartado 4.5.2. Primero en un estado de reposo y luego ejecutando el script anterior. Se medirá el consumo de CPU, el consumo de memoria RAM de un solo ESXi, al ser equivalentes y por simplicidad. También se medirá en tiempo total en que tarda en hacer la migración. 102 5.2 Gráficas de Resultados Gráfica 5.1 – Consumo de CPU Gráfica 5.2 Consumo de Memoria RAM 103 Gráfica 5.3 Consumo de Memoria RAM y CPU superpuestos. Gráfica 5.4 – Tiempo de Ejecución de las Migraciones 5.3 Comentarios En la gráfica del consumo de RAM podemos ver claramente cuando el ESXi monitorizado contiene a la máquina virtual. Es cuando la gráfica hace forma de mesa y supera los 1.5 GB. Se han producido 4 migraciones en total. En las impares la migración ha tenido como destino el servidor ESXi monitorizado y en las pares ha sido origen de la migración. Las dos primeras son con la máquina virtual en reposo y las dos últimas con la máquina en estrés. El primer pico de CPU, correspondiente a la primera subida del consumo de RAM, el ESXi monitorizado recibe la primera migración. Este pico es debido a la migración, el consumo de 0 500 1000 1500 2000 2500 3000 3500 4000 0 500000 1000000 1500000 2000000 2500000 11:28:40 11:31:00 11:33:20 11:35:40 11:38:00 11:40:20 11:42:40 11:45:00 11:47:20 11:49:40 11:52:00 11:54:20 11:56:40 11:59:00 12:01:20 12:03:40 12:06:00 12:08:20 12:10:40 12:13:00 12:15:20 12:17:40 12:20:00 12:22:20 12:24:40 MHz KB RAM CPU 0 5 10 15 20 25 1 2 3 4 Segundos Tiempo de Ejecución 104 CPU aumenta ya que tiene que realizar las iteraciones que comprueban si se han producido cambios en la memoria RAM origen. El tercer pico se produce por la segunda migración en la cual el ESXi monitorizado ahora es el origen. Este pico es sustancialmente menor, ya que la mayor parte del trabajo lo está haciendo el ESXi destino. Aun así, requiere algo de procesador. En el cuarto pico el ESXi monitorizado recibe la máquina ya con el script mencionado en el apartado 5.1 ejecutándose. Este es el pico más grande de la gráfica y supera el consumo habitual de la propia máquina virtual. Se entiende que en este momento ha debido hacer muchas más iteraciones que en la migración 1. El último pico el ESXi monitorizado es el origen de la migración con la máquina en estrés. El pico es menor que los generados por la propia máquina en estrés. Esto quiere decir que el consumo de CPU en un servidor sobrecargado, no se verá aumentado si se utiliza vMotion para liberar recursos. El tiempo de ejecución de las migraciones, representado en la Gráfica 5.4, parece más ligado a la dirección de la migración que a los momentos de reposo y estrés. Las variaciones pueden ser debidas a la infraestructura de la red. 105 6 Conclusiones  Se han cumplido los objetivos del anteproyecto, desde la instalación y configuración, hasta la documentación y pruebas del funcionamiento de vMotion. Y se ha creado una guía de instalación y configuración de todos los componentes de un sistema real, a la cual se le puede dar uso para la docencia de asignaturas relacionadas con la virtualización. Estas guías sirven para crear prácticas y por lo tanto material académico.  Se ha podido comprobar que las diferencias entre el prototipo en la versión virtual y el sistema desplegado en servidores reales son mínimas y las configuraciones aquí propuestas sirven para ambas.  La instalación en un entorno virtual requiere al menos 16 GB de RAM, al principio se intentó con 8GB y haciendo swaping en el disco duro, pensado que al ser un SSD se podría al menos arrancar. Pero todo el sistema en reposo consume 13 GB de RAM y al usarlo llegar a consumir los 16 GB completos. El esfuerzo realizado para la instalación y puesta a punto de esta infraestructura se podría aprovechar para mejorar en el conocimiento de nuevas tecnologías avanzadas de virtualización.  Concretamente, se proponen como trabajos futuros el uso de esta tecnología combinada con otras de VMware vCenter Server:  VMware vRealize Orchestrator, tecnología que automatiza la gestión del vCenter. Con ella se podría por ejemplo programar el uso de vMotion para optimizar recursos.  Automatizar las tareas de migración mediante reglas, por ejemplo que tengan en cuenta la carga de trabajo de los hipervisores, por ejemplo para balancear la carga o ahorrar energía mediante el apagado temporal de hipervisores en momentos de baja carga.  Probar otras tecnologías más agresivas de alta disponibilidad, como la ejecución de máquinas virtuales en lock-step.