Universidad de Los Andes Facultad de Ingeniería División de Estudios de Postgrado Postgrado en Computación DISEÑAR E IMPLEMENTAR UNA PLATAFORMA DE COMPUTACIÓN EN LA NUBE PARA LA VIRTUALIZACIÓN DE INFRAESTRUCTURA TECNOLÓGICA PARA LA UNIVERSIDAD DE LOS ANDES. Tesis presentada por Antonio Rafael Valles Godoy para obtener el grado de Magister Scientiae en Computación Tutor Francisco Hidrobo Merida, Febrero de 2016
Índice general Agradecimientos 2 Dedicatoria 4 Resumen 6 1. Introducción 11 1.1. Objetivos del Proyecto........................ 13 1.1.1. Objetivo General........................ 13 1.1.2. Objetivos Especificos..................... 13 1.2. Justificación del Proyecto...................... 13 1.3. Antecedentes.............................. 14 1.4. Descripción del Proyecto....................... 16 1.5. Contribuciones del Proyecto..................... 17 2. Computación en la Nube 18 2.1. La Evolución de la Computación en Nube............ 18 2.2. Modelos de Implementación de la Nube............. 20 2.3. Modelos de Servicios en la Nube.................. 21 2.4. Plataformas de Computación en Nube.............. 23 2.4.1. CloudStack........................... 24 2.4.2. Eucalyptus Open Source................... 27 2.4.3. OpenNebula........................... 28 2.4.4. Windows Azure........................ 30 2.4.5. Vcloud Director........................ 32 7
Índice general 8 2.4.6. OpenStack............................ 34 2.5. Alternativas de PLataformas de Computación en Nube... 37 3. Hipervisores 39 3.1. Elementos del hipervisor....................... 39 3.2. Tipo de Hipervisores......................... 41 3.2.1. Tipo 1 nativo o bare-metal :................ 41 3.2.2. Tipo 2 hosted :........................ 41 3.3. Software de Virtualización...................... 43 3.3.1. KVM: Máquina virtual basada en el kernel....... 43 3.3.2. XEN............................... 43 3.3.3. VirtualBox............................ 44 3.3.4. VMware vsphere Hypervisor (ESXi)............ 44 4. Plataforma de Computación en Nube 45 4.1. Infraestructura de Hardware de Soporte............. 45 4.2. Esquema de Red............................ 46 4.3. Arquitectura lógica de la Plataforma de Computación en la Nube................................... 49 4.4. Diagrama de Procesos Conceptual................. 50 4.5. Componentes a instalar........................ 51 4.6. Nodo Controlador:........................... 53 4.6.1. Componentes a instalar en el Nodo Controlador (Ver Apéndice A):.......................... 54 4.7. Nodo de Cómputo:.......................... 55 4.7.1. Componentes a instalar en el Nodo de Cómputo (Ver Apéndice B):.......................... 55 4.8. Almacenamiento Extra para las Instancias (Ver Apéndice C) 55 4.9. Iniciar los Servicios de la Plataforma............... 57 5. Instancia y Prueba 59 5.1. Evolución metodológica........................ 60 5.2. Beneficios del IaaS en la Educación................ 61 5.3. Ventajas del IaaS en la Educación[16]:.............. 62
Índice general 9 5.4. Inconvenientes del IaaS en la Educación[16]:.......... 62 5.5. Simulación de Entornos Reales................... 63 5.6. Diagrama de Procesos Caso de Prueba.............. 64 5.7. Practica de Sistemas Operativos:.................. 65 5.8. Laboratorio de Computación Virtual para Ingeniería:..... 66 5.8.1. Preparación de la Aplicación Web:............ 67 5.8.2. Descripción Vista Profesor:................. 68 5.8.3. Descripción Vista Estudiante:................ 68 5.9. Pantalla de Autenticación:...................... 69 5.10. Vista Profesor:............................. 71 5.10.1. Pantalla Principal: Ver figura 5.5............. 71 5.10.2. Buscar Programas Almacenado: Ver figura 5.6..... 72 5.10.3. Resultado de la Busqueda: Ver figura 5.7........ 73 5.10.4. Sala de Chat: Ver figura 5.8................. 74 5.11. Vista Estudiantes:........................... 75 5.11.1. Pantalla Principal: Ver figura 5.9............. 75 5.11.2. Pantalla para la Edición de Código Fuente: Ver figura 5.10 y 5.11............................ 76 5.11.3. Pantalla para Consultas: Ver figura 5.12 y 5.13..... 78 6. Conclusión 80 A. Instalación y Configuración del Nodo Controlador 82 A.1. Instalación y configuración inicial de MySQL.......... 82 A.2. Instalación del Paquete Rabbitmq Server............ 83 A.3. Instalación manual de python-prettytable............ 83 A.4. Instalación de keystone........................ 83 A.5. Configuración de keystone...................... 83 A.5.1. Creación de proyectos tenants............... 84 A.5.2. Creación de Usuarios..................... 84 A.5.3. Creación de Roles....................... 84 A.5.4. Asignación de los Roles.................... 84 A.5.5. Creación de Servicios..................... 84
Índice general 10 A.5.6. Creación de los endpoints.................. 85 A.6. Método de autentificación...................... 85 A.7. Instalación de Glance......................... 86 A.7.1. Configuración de Glance................... 86 A.8. Instalación de Nova.......................... 87 A.8.1. Configuración de Nova.................... 87 A.9. Creación de un VLAN........................ 89 A.10.Creación de un rango de IP flotantes............... 89 A.11.Instalación de Horizon........................ 90 B. Instalación y Configuración del Nodo de Computo 91 B.1. Instalación de Nova.......................... 91 B.1.1. Configuración de Nova.................... 91 C. Almacenamiento Extra para las Instancias 94 C.1. Instalación y configuración de nova-volume........... 94 D. Inicio del Cloud de Insfraestructura 96 D.1. Uso del Admin Token......................... 96 D.2. Autentificación y Prueba de Funcionamiento.......... 96 D.3. Corrección de fallas al iniciar la IaaS............... 98 D.3.1. Restaurar Servidor NTP:.................. 99 D.3.2. Restaurar Servidor de Base de Datos MySQL:..... 99 D.3.3. Restaurar Servicio Rabbitmq:................ 99 D.3.4. Sincronizar Base de datos y Restaurar los Servicios de Nova en el Nodo Controlador:............... 99 D.3.5. Sincronizar Base de datos y Restaurar los Servicios de Glance:.............................. 99 E. Creación de Imágenes GNU/Linux 100 Referencias 101