TÉCNICAS DE VIRTUALIZACIÓN PARA ALTA DISPONIBILIDAD ...
Transcript of TÉCNICAS DE VIRTUALIZACIÓN PARA ALTA DISPONIBILIDAD ...
TÉCNICAS DE VIRTUALIZACIÓN PARA ALTA DISPONIBILIDAD APLICADA A SERVIDORES DE BASES DE DATOS
EMPRESARIALES
T E S I S
QUE PARA OBTENER EL GRADO DE:
MAESTRÍA EN TECNOLOGÍA DE CÓMPUTO
P R E S E N T A:
ING. CIRO DAVID LEÓN HERNÁNDEZ
DIRECTORES DE TESIS:
M. en C. JESÚS ANTONIO ALVAREZ CEDILLO M. en C. MAURICIO OLGUÍN CARBAJAL
México, D.F. Diciembre 2009.
INSTITUTO POLITÉCNICO NACIONAL CENTRO DE INNOVACIÓN Y DESARROLLO
TECNOLÓGICO EN CÓMPUTO
I
RESUMEN
Actualmente las empresas necesitan de soluciones que permitan aprovechar al máximo los recursos de sus sistemas informáticos, reducir costos y manejar su información de manera rápida y segura. La virtualización en sistemas de cómputo, es una herramienta que cubre las necesidades anteriormente señaladas. En este trabajo se realiza un estudio de las diferentes técnicas de virtualización, identificando la más adecuada para elaborar un esquema que permita manejar alta disponibilidad en servidores de bases de datos empresariales. Se analizan detalladamente los puntos más importantes como lo son; virtualización, bases de datos, alta disponibilidad y los equipos necesarios para su implementación. Lo anterior permite proponer una solución de alta disponibilidad hacia los diferentes niveles empresariales, utilizando distintos esquemas de virtualización en sistemas informáticos. En primera instancia se define el tipo y la técnica de virtualización que se utiliza para manejar una base de datos. Existen diferentes tipos y técnicas de virtualización que se describen detalladamente en el contenido del trabajo, cabe señalar que en el proyecto se utiliza la técnica de Virtualización Completa debido a que es la más adecuada para el manejo de las Máquinas Virtuales y las Bases de Datos. El tipo de virtualización por decirlo de alguna manera, es la marca con la cual se pretende utilizar la técnica anteriormente mencionada, en este trabajo se utiliza Hyper-V de Microsoft pero podría utilizarse otra similar como es el caso de VMware o Xen. El Centro Nacional de Cálculo (CENAC) del Instituto Politécnico Nacional (IPN) fue quien proporcionó los recursos para la elaboración del proyecto, por tal razón, los equipos, el software y sus licencias fueron de gran ayuda para la culminación del mismo. Debido a que la mayoría de las empresas utilizan bases de datos en sus sistemas para el manejo de la información y aplicaciones, se tomó la decisión de utilizar una Base de Datos potente para el manejo de la información. Aprovechando la disponibilidad del licenciamiento por el CENAC, se utilizó Oracle como manejador de bases de datos, además de un manejador de almacenamiento como Openfiler. Un punto crítico para las empresas es la alta disponibilidad que tienen sus equipos, los cuales manejan una gran cantidad de información importante para el usuario final, en donde lo ideal sería que no hubiera fallas que ocasionaran indisponibilidad de la información, en este trabajo se manejan dos partes importantes de la alta disponibilidad, la parte física manejada por el tipo de virtualizador, y la parte lógica manejada por la Base de Datos. Finalmente, se realizan pruebas de carga hacia los servidores virtuales obteniendo resultados importantes que describen la capacidad de consulta y el número de transacciones realizadas a la Base de Datos en el esquema presentado.
II
ABSTRACT Nowadays, companies need solutions that allow to take advantage to the maximum from their resources of computer systems, to reduce costs and to handle their information in a fast and sure way. The virtualization in computing systems is a tool that covers the needs previously mentioned. For this reason, in this work, it is realized a study of the different techniques of virtualization, identifying the best one to elaborate a scheme of virtualization that allows handling high availability applied to servers of managerial databases. The most important points are analyzed detailed such as: virtualization, databases, high availability and the necessary equipments for the implementation of the project. The previous thing allows proposing a solution of high availability towards different managerial levels, using different schemes of virtualization in computing systems. In the instance the type and the technique of virtualization, which is in use for handling a database is defined. They exist different types and techniques of virtualization that are described detailed in the content of the work, it is necessary to indicate that in the project the Complete Virtualization technique is used due to the fact that it is most adapted for the managing of Virtual Machines and Databases. The type of virtualization, for saying it somehow, is the brand which is looked to use in the technique previously mentioned, in this work it is used Hyper-V by Microsoft, but another one might be used like VMware or Xen. The National Center of Calculation, CENAC (in it initials in Spanish), of the National Polytechnic Institute (IPN) was the one who provided the resources for the elaboration of the project, for such a reason, the equipments, the software and their licenses were of great help for the culmination of it. Due to the fact that the majority of the companies use databases in their systems for the managing of the information and applications, I take the decision to use a powerful Database for the managing information. Taking advantage of the license given by the CENAC, Oracle was used as a databases operator besides another one of storage as Openfiler. A critical point for the companies is the high availability that their equipments have, which handle a great quantity of important information for the final user, where the ideal thing would be that there were no faults that were causing unavailability of the information, In this work, two important parts of the high availability are handled: the physical part, guided by the type of virtualizator and the logical part, leaded by the Database. Finally, tests of load are realized towards the virtual servers obtaining important results that describe the capacity of consultation and the number of transactions realized to the Database in the presented scheme.
III
DEDICATORIA
A MI FAMILIA A mis padres, Cirilo y Alicia, quienes me han apoyado incansablemente, gracias por su amor, enseñanza, paciencia y formación. El presente trabajo, es uno más de los frutos de su propia cosecha. Muchas gracias por todo, eternamente agradecido. A mis hermanos quienes son pilares de fortaleza en mi vida. Me han enseñado valores muy importantes como la perseverancia, el carácter y la confianza en uno mismo. Espero que este trabajo sea un aliciente para su vida profesional. A mi esposa, el gran amor de mi vida, por acompañarme en esta gran aventura y darme los regalos más impresionantes de todo el universo, nuestros hijos. Por ellos, soy capaz de esto y más, son la chispa que enciende mis ansias de superación. A toda mi familia con la cual he convivido a lo largo del tiempo, abuelos, tíos, primos, sobrinos y ahijados. A los familiares que se nos han adelantado en el camino, siempre los llevaré en el corazón. A MIS AMIGOS Aquellos que en los momentos difíciles me tendieron la mano, con los que compartí triunfos, fracasos, alegrías y tristezas, muchas gracias por su amistad y su apoyo. Seguiremos compartiendo muchas aventuras más. A MIS COMPAÑEROS Con los que compartí aulas, instalaciones deportivas y un lugar de trabajo. Recuerdos que siempre quedarán para toda la vida, gracias por su colaboración.
IV
AGRADECIMIENTOS
AL INSTITUTO POLITÉCNICO NACIONAL (IPN) Por darme la oportunidad de formar parte de sus filas de aprendizaje, el deporte, la enseñanza, la investigación y el trabajo. Seguiré luchando por la grandeza de esta gran institución. A la Escuela Superior de Ingeniería Mecánica y Eléctrica (ESIME) unidad Zacatenco, por enseñarme que las cosas cuestan, pero cuando las logras, tienen un valor que nadie te puede quitar. Al Centro de Innovación y Desarrollo Tecnológico en Cómputo (CIDETEC), por darme la oportunidad de avanzar en mi vida profesional, sus instalaciones, equipo, profesores y directivos, estaré eternamente agradecido. A la Dirección de Cómputo y Comunicaciones (DCyC) y la Coordinación de Servicios Informáticos del IPN, por la oportunidad de obtener un nivel más en mi vida profesional, por la confianza y apoyo. A MIS MAESTROS Y ASESORES Sus análisis, sugerencias, comentarios, orientaciones, detalles...; son un legado de conocimientos que no tienen precio. A mis Directores de tesis; M. en C. Jesús A. Álvarez Cedillo y M. en C. Mauricio Olguín Carbajal. Al Director del CIDETEC, Dr. Víctor Manuel Silva García Al Coordinador de General Servicios Informáticos el Dr. Miguel Lindig Bos, al Director de la DCyC , Ing. Martín Haro Martínez y al director del Centro Nacional de Cálculo M. en I. Napoleón Serna Solís. A mi comité tutorial. Para el mejor maestro que he tenido en la vida, el M. en C. Cirilo G. León Vega, aun nos falta mucho por hacer Jefe.
V
GLOSARIO DE TÉRMINOS
Alta disponibilidad.- También conocida como HA (High Availability), es un protocolo de diseño de sistema y su implementación asociada que asegura un cierto grado absoluto de continuidad operacional durante un periodo de medición dado.
Cluster.- Se aplica a los conjuntos de computadoras construidos mediante la utilización de componentes de hardware comunes y que se comportan como si fuesen una única computadora. La tecnología de cluster ha evolucionado en apoyo de actividades que van desde aplicaciones de supercómputo y software de misiones críticas, servidores Web y comercio electrónico, hasta bases de datos de alto rendimiento, entre otros usos.
Compilador.- Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje es código máquina, pero también puede ser simplemente texto. Al proceso de traducción se le conoce como compilación. DAS.- Del inglés Direct Attached Storage, se refiere a un sistema de almacenamiento digital directamente conectada a un servidor o estación de trabajo, sin una red de almacenamiento en el medio. Emulador.- Es un software que permite ejecutar programas en una plataforma (arquitectura, hardware o sistema operativo) diferente para la cual fueron escritos originalmente.
Firewall.- También conocido como contrafuegos, es parte de una red de comunicaciones que está diseñado para bloquear el acceso no autorizado. Es un dispositivo o conjunto de dispositivos programados para permitir, limitar, cifrar, descifrar, el tráfico entre los diferentes ámbitos sobre la base de un conjunto de normas, dependiendo de sus administradores.
Instancia.- Una instancia de un programa es una copia de una versión ejecutable del programa que ha sido escrito en la memoria de la computadora. Informática.- El vocablo informática proviene del francés informatique, es un acrónimo de palabras information y automatique (información automática). La informática engloba a los procesos, técnicas y máquinas que ha desarrollado el ser humano para facilitar el trabajo de la vida diaria. Kernel.- Es el software responsable de facilitar a los distintos programas acceso seguro al hardware de la computadora o en forma más básica, es el encargado de gestionar recursos, a través de servicios de llamada al sistema.
VI
LSI.- Del inglés Large Scale Integration o Larga Escala de Integración pertenecen todos aquellos integrados que contienen más de 100 puertas lógicas (lo cual conlleva unos 1000 componentes integrados individualmente), hasta las mil puertas. Máquina Virtual.- Es un software que emula a una computadora y puede ejecutar programas como si fuera una computadora real.
Monitor de Máquina Virtual.- Un Monitor de Máquina Virtual (MMV), es la parte fundamental de una Máquina Virtual (MV). Un MMV maneja recursos del sistema exportándolos a la MV. Los MMV se encargan de proporcionar un ambiente de ejecución aislado a las MV. Los MMV son los responsables de dar el soporte para que en una misma plataforma de hardware se ejecuten diferentes sistemas operativos sobre Máquinas Virtuales.
Memoria RAM.- La memoria de acceso aleatorio, es la memoria desde donde el procesador recibe las instrucciones y guarda los resultados. Es el área de trabajo para la mayor parte del software de una computadora.
NAS.- Del inglés Network Attached Storage es el nombre dado a una tecnología de almacenamiento dedicada a compartir la capacidad de almacenamiento de un Servidor con computadoras personales o servidores clientes a través de una red.
OLAP.- Es el acrónimo en inglés de procesamiento analítico en línea (On-Line Analytical Processing). Es una solución utilizada en el campo de la llamada Inteligencia empresarial (o Business Intelligence) cuyo objetivo es agilizar la consulta de grandes cantidades de datos. Para ello utiliza estructuras multidimensionales (o Cubos OLAP) que contienen datos resumidos de grandes Bases de datos o Sistemas Transaccionales (OLTP). Se usa en informes de negocios de ventas, marketing, informes de dirección, minería de datos y áreas similares.
Pipeline.- En informática, un pipeline o tubería es un conjunto de elementos procesadores de datos conectados en serie, en donde la salida de un elemento es la entrada del siguiente. Los elementos del pipeline son generalmente ejecutados en paralelo, en esos casos, debe haber un almacenamiento tipo buffer insertado entre elementos. En informática, pipeline es sinónimo de segmentación.
Realidad Virtual.- Es un sistema o interfaz informático que genera entornos sintéticos en tiempo real, representación de las cosas a través de medios electrónicos o representaciones de la realidad, una realidad ilusoria, pues se trata de una realidad perceptiva sin soporte objetivo, sin red extensa, ya que existe sólo dentro de la máquina.
Tupla.- Generalmente en los lenguajes de programación funcional y en otros lenguajes de programación, una tupla es un objeto que bien puede tener datos o diversos objetos, de forma similar a una tupla definida matemáticamente.
VII
SAN.- Del inglés Storage Area Network o Red de Área de Almacenamiento es una arquitectura para conectar dispositivos de almacenamiento remoto de computadoras (tales como arreglos de discos, bibliotecas de cintas y máquinas de discos ópticos) a servidores de tal manera que los dispositivos aparecen como conectada localmente al sistema operativo. Simulador.- Es un software que trata de reproducir el comportamiento de un programa idénticamente. Sistema informático.- Es el conjunto de componentes relacionados que interactúan entre sí para lograr un objetivo específico, como por ejemplo, el de una computadora en donde interactúan el hardware, software y usuario. Software.- Es el conjunto de los componentes lógicos necesarios para hacer posible la realización de una tarea específica en una computadora.
Transistor.- Dispositivo electrónico semiconductor. El término "transistor" es la contracción en inglés de transfer resistor ("resistencia de transferencia"). Actualmente se los encuentra en cualquier equipo electrónico.
VLAN (Virtual Local Area Network ó Red de Área Local Virtual).- Es un método de crear redes lógicamente independientes dentro de una misma red física con la ayuda de un conmutador o switch por ejemplo. Virtualización.- En informática se refiere a la abstracción de los recursos de una computadora, como lo son; disco duro, procesador, memoria, dispositivos de entrada/salida, dispositivos de red, etc. que mediante un programa (Hypervisor) se pueden crear máquinas virtuales dentro de un servidor físico. VLSI (Very Large Scale Integration). - Son circuitos electrónicos que van de 1,000 a 10,000 puertas por circuito integrado, los cuales aparecen para consolidar la industria de los integrados y para desplazar definitivamente la tecnología de los componentes aislados y dan inicio a la era de la miniaturización de los equipos apareciendo y haciendo cada vez más común la manufactura y el uso de los equipos portátiles. VPN (Virtual Private Network ó Red Privada Virtual).- Es una tecnología de red que permite una extensión de la red local sobre una red pública o no controlada, como por ejemplo Internet. Ejemplos comunes son, la posibilidad de conectar dos o más sucursales de una empresa utilizando como vínculo Internet, permitir a los miembros del equipo de soporte técnico la conexión desde su casa al centro de cómputo, o que un usuario pueda acceder a su equipo doméstico desde un sitio remoto, como por ejemplo un hotel. Lo anterior mediante el uso de Internet.
VIII
Índice general Pág.
Capítulo 1: Introducción ...................................................................................................................................13
1.1 Evolución de las tecnologías de virtualización .................................................................................131.2 Situación actual ..................................................................................................................................191.3 Planteamiento del problema .............................................................................................................211.4 Justificación ........................................................................................................................................211.5 Objetivo general ..................................................................................................................................221.5.1 Objetivos particulares ........................................................................................................................221.6 Contribución ........................................................................................................................................221.7 Hipótesis .............................................................................................................................................231.8 Metodología ........................................................................................................................................231.9 Estructura de la tesis .........................................................................................................................23
Capítulo 2: La virtualización y la alta disponibilidad ......................................................................................25
2.1 Conceptos ...........................................................................................................................................252.2 Hardware .............................................................................................................................................26
2.2.1 Capacidad de proceso ................................................................................................................262.2.2 Capacidad de memoria RAM .....................................................................................................262.2.3 Capacidad de almacenamiento .................................................................................................27
2.3 Software ..............................................................................................................................................282.4 Técnicas de Virtualización .................................................................................................................28
2.4.1 Virtualización completa ..............................................................................................................292.4.2 Paravirtualización .......................................................................................................................302.4.3 Virtualización a nivel sistema operativo ....................................................................................312.4.4 Emulación del hardware .............................................................................................................312.4.5 Virtualización de aplicaciones ...................................................................................................33
2.5 Tipos de virtualización ........................................................................................................................332.5.1 VMware ........................................................................................................................................342.5.2 Xen ...............................................................................................................................................352.5.3 Qemu ...........................................................................................................................................362.5.4 Virtual PC .....................................................................................................................................372.5.5 VirtualBox ....................................................................................................................................372.5.6 HYPER-V ......................................................................................................................................38
2.6 Ventajas y desventajas de la virtualización ......................................................................................41
Capítulo 3: Bases de datos empresariales .....................................................................................................44
3.1 Evolución .............................................................................................................................................443.2 Definición ............................................................................................................................................463.3 Aplicaciones de los sistemas de base de datos. ..............................................................................463.4 Tipos de base de datos ......................................................................................................................47
3.4.1 Bases de datos estáticas ...........................................................................................................473.4.2 Bases de datos dinámicas .........................................................................................................47
3.5 Modelos de base de datos .................................................................................................................473.5.1 Base de datos relacionales ........................................................................................................483.5.2 Bases de datos jerárquicas ........................................................................................................483.5.3 Base de datos de red .................................................................................................................483.5.4 Bases de datos multidimensionales .........................................................................................483.5.5 Bases de datos orientadas a objetos ........................................................................................493.5.6 Bases de datos documentales ..................................................................................................493.5.7 Bases de datos deductivas ........................................................................................................49
IX
3.5.8 Gestión de bases de datos distribuida ......................................................................................493.6 Lenguaje estructurado de consulta (SQL) .........................................................................................493.7 Manejadores de base de datos comerciales ....................................................................................50
3.7.1 Oracle Corporation: Oracle .........................................................................................................503.7.2 Sun Microsystems: MySQL .........................................................................................................513.7.3 Microsoft SQL Server ..................................................................................................................52
Capítulo 4: Desarrollo de la metodología ........................................................................................................53
4.1 Plan de trabajo ...................................................................................................................................534.2 Recursos a utilizar ..............................................................................................................................544.3 Arquitectura propuesta ......................................................................................................................564.4 Implementación ..................................................................................................................................60
4.4.1 Instalación y configuración del virtualizador .............................................................................604.4.2 Creación de MV ...........................................................................................................................61
4.5 Configuración de red privada, pública y virtual ................................................................................644.6 Configuración del Servidor de Almacenamiento compartido ..........................................................65
4.6.1 Instalación y configuración de Openfiler ...................................................................................654.7 Configuración de nodos virtuales ......................................................................................................68
4.7.1 Conexión iSCSI ............................................................................................................................684.7.2 Configuración de red ..................................................................................................................694.7.3 Instalación de Clusterware .........................................................................................................704.7.4 Autenticación de usuarios ..........................................................................................................744.7.5 Instalación del Software Clusterware ........................................................................................744.7.6 Instalación de ASM .....................................................................................................................784.7.7 Instalación de Oracle 10g ..........................................................................................................784.7.8 Configuración de bases de datos ..............................................................................................80
4.8 Instalación del simulador de cargas SwingBench ............................................................................83
Capitulo 5: Pruebas y resultados .....................................................................................................................85
5.1 Comparación de un sistema físico y un sistema virtualizado ..........................................................855.1.1 Sistema físico ..............................................................................................................................855.1.2 Sistema virtual ............................................................................................................................88
5.2 Comparación de esquema físico y virtual .........................................................................................895.3 Pruebas de carga ...............................................................................................................................90
Capítulo 6: Conclusiones y trabajos a futuro ..................................................................................................92
6.1 Conclusiones ......................................................................................................................................926.2 Trabajos a futuro ................................................................................................................................94
REFERENCIAS ...................................................................................................................................................96
ANEXOS .............................................................................................................................................................98
Anexo A: Configuración de Hyper-V .................................................................................................................98
Anexo B: Instalación y configuración de Openfiler .......................................................................................101
B1. Instalación ............................................................................................................................................101B2. Configuración .......................................................................................................................................104
Anexo C: Configuración de Clusterware ........................................................................................................108
X
Índice de figuras Pág. Figura 1. 1. Los primeros sistemas de cómputo empresariales. ................................................................. 13Figura 1.2. Aspecto físico de un Mainframe IBM 650. ................................................................................. 14Figura 1.3. Computadora con circuitos integrados, IBM 360. ..................................................................... 15Figura 1.4. Ejecución de una Máquina Virtual VM 370. ............................................................................... 17
Figura 2. 1 Máquinas virtuales dentro de un equipo con diferentes Sistemas Operativos. ...................... 25Figura 2. 2 Módulos de un sistema virtualizado. .......................................................................................... 28Figura 2. 3 . Esquema de virtualización completa. ....................................................................................... 29Figura 2. 4 Esquema de paravirtualización. .................................................................................................. 30Figura 2. 5 Virtualización a nivel sistema operativo. .................................................................................... 31Figura 2. 6 Esquema de emulación del hardware. ....................................................................................... 32Figura 2. 7 Tipos de virtualización: a) VMware, b) Parallels, c) Xen, d) Virtual PC, e) Qemu, f) VirtualBox, g) Virtuozzo. ..................................................................................................................................................... 33 Figura 4. 1 Arquitectura de red del sistema de virtualización .......................................................................... 59Figura 4. 2 Consola de administración de Hyper-V. ...................................................................................... 61Figura 4. 3 Configuración final de la MV ....................................................................................................... 63Figura 4. 4 Máquina Virtual en el esquema de administración de Hyper-V. ............................................... 64Figura 4. 5 Autenticación de Openfiler. ......................................................................................................... 66Figura 4. 6 Definición de volúmenes para nodos virtuales. ......................................................................... 67Figura 4. 7 Asignación de conexiones para acceso al almacenamiento. ................................................... 67Figura 4. 8 Configuración de segmento de red para iSCSI. ......................................................................... 68Figura 4. 9 Identificación del servidor de almacenamiento. ........................................................................ 69Figura 4. 10 Asignación de direcciones de red privada, pública y virtual. .................................................. 71Figura 4. 11 Asistente para inicializar y convertir discos. ............................................................................ 71Figura 4. 12 Inicio de los discos de almacenamiento. ................................................................................. 72Figura 4. 13 Particiones en estado de Espacio libre. ................................................................................... 73Figura 4. 14 Unidades lógicas de almacenamiento definidas. .................................................................... 73Figura 4. 15 Nombre y ruta de instalación de Clusterware. ......................................................................... 75Figura 4. 16 Configuración de los nodos virtuales para Clusterware. ......................................................... 75Figura 4. 17 Configuración de particiones. ................................................................................................... 76Figura 4. 18 Configuración de almacenamiento. ......................................................................................... 77Figura 4. 19 Selección del tipo de instalación de base de datos de Oracle. .............................................. 79Figura 4. 20 Fin de la instalación de Oracle 10g .......................................................................................... 80Figura 4. 21 Selección de opciones de instalación para la base de datos. ................................................ 82 Figura 5. 1 Esquema de almacenamiento físico de alta disponibilidad con base de datos. .................... 87 Figura A. 1 Agregar funciones Hyper-V .......................................................................................................... 98 Figura A. 2 Resumen de componente. .......................................................................................................... 99 Figura A. 3 Conexión a la red física ................................................................................................................ 99 Figura A. 4 Resumen de instalación ............................................................................................................ 100
XI
Figura B. 1 Inicio de instalación Openfiler. .................................................................................................. 101 Figura B. 2 Particiones. ................................................................................................................................. 101 Figura B. 3 Configuración de particiones. ................................................................................................... 102 Figura B. 4 Particiones de discos físicos. .................................................................................................... 103 Figura B. 5 Configuración de red.................................................................................................................. 103 Figura B. 6 Grupo de volúmenes. ................................................................................................................. 104 Figura B. 7 Configuración de volúmenes de Clusterware. .......................................................................... 105 Figura B. 8 Esquema general de volúmenes. .............................................................................................. 106 Figura B. 9 Configuración tarjeta iSCSI........................................................................................................ 106 Figura B. 10 Activación de la tarjeta iSCSI .................................................................................................. 107 Figura B. 11 Configuración general de volúmenes ..................................................................................... 107
Figura C. 1 Requisitos específicos del producto ....................................................................................... 108 Figura C. 2 Integración de nodos virtuales a Clusterware .......................................................................... 109 Figura C. 3 Especificación de configuración de disco. ............................................................................... 109 Figura C. 4 Almacenamiento de configuración de cluster. ......................................................................... 110
XII
Índice de tablas Pág. Tabla 2. 1 Resumen de tipos y técnicas de virtualización. .......................................................................... 40 Tabla 2. 2 Ventajas al utilizar la virtualización. ............................................................................................. 42 Tabla 2. 3 Desventajas al utilizar la virtualización. ....................................................................................... 43
Tabla 3. 1. Características de las diferentes etapas de bases de datos. .................................................... 46
Tabla 4. 1 Actividades necesarias para realizar el proyecto. ....................................................................... 53 Tabla 4. 2 Fechas estimadas para la realización de las fases. ................................................................... 54 Tabla 4. 3 Evaluación de los equipos de cómputo necesarios para la implementación del proyecto. ..... 54 Tabla 4. 4 Software asignado para equipos de cómputo. ............................................................................ 56
Tabla 5. 1 Comparación general de los esquemas físicos y virtuales. ........................................................ 89
13
Capítulo 1: Introducción
1.1 Evolución de las tecnologías de virtualización
Indudablemente los sistemas informáticos han jugado un papel fundamental en la vida del ser
humano. Las matemáticas fueron importantes para el desarrollo de los equipos de cómputo
que surgieron en el mercado alrededor de los años cincuenta y que hasta el día de hoy han
evolucionando de manera extraordinaria, logrando facilitar las tareas de cálculo y manejo de
información en diferentes entornos empresariales y educativos [1].
Las primeras máquinas llamados también Mainframe o computadora central, emplearon
bulbos para procesar información [2]. Los operadores ingresaban los datos y programas en
código especial por medio de tarjetas perforadas, el almacenamiento interno de la información
se lograba con un tambor que giraba rápidamente, sobre el cual, un dispositivo de lectura y
escritura colocaba marcas magnéticas. Las computadoras de bulbos eran de grandes
dimensiones y generaban una gran cantidad de calor, en la Figura 1.1, se muestra el
dimensionamiento de las primeras máquinas de datos empresariales.
Figura 1. 1. Los primeros sistemas de cómputo empresariales.
14
En aquella época la empresa IBM1
tenía una gran cantidad de productos en el mercado, y
aunque tenía el monopolio de los equipos de procesamiento de datos a base de tarjetas
perforadas, no había logrado tomar el control total del mercado en el aspecto computacional.
En el año de 1954 fue introducido el modelo IBM 650 [3], el cual es la razón por la que IBM
ha disfrutado de una gran parte del mercado de las computadoras hasta el día de hoy. En esa
época la administración de IBM asumió un gran riesgo y estimó una venta de
aproximadamente 50 computadoras, el costo de estos equipos era estratosférico, por lo que
solo las grandes empresas tenían los recursos suficientes para comprarlos y mantenerlos.
A continuación, se muestra el aspecto físico de las grandes máquinas producidas por IBM en
los años cincuenta, en este caso la IBM 650, que curiosamente fue la primer máquina
electrónica adquirida en nuestro país por la Universidad Autónoma de México (UNAM) [4], en
donde el objetivo era disminuir el tiempo de trabajo para desarrollar cálculos que necesitaban
precisión y un gran número de personas. Cabe señalar que al inicio del proyecto la UNAM
pensaba rentar un equipo IBM-704 pero desafortunadamente el costo fue demasiado y
optaron por adquirir el equipo que se muestra en la Figura 1.2.
Figura 1.2. Aspecto físico de un Mainframe IBM 650.
1Acrónimo de International Business Machines, empresa multinacional que fabrica y comercializa herramientas, programas y servicios relacionados con la informática.
15
A principios de los 60 el invento del Transistor hizo posible que las computadoras fueran más
rápidas, más pequeñas y con menor necesidades de ventilación, ya que el consumo de
energía era menor comparado con las primeras máquinas. Sin embargo, el costo seguía siendo
una porción significativa del presupuesto de una compañía. Para el almacenamiento, los
equipos utilizaban redes de núcleos magnéticos en lugar de tambores giratorios. Lo anterior
permitía que los programas escritos para una computadora pudieran transferirse a otra sin
problemas.
Los clientes lograban escalar sus sistemas 360 (ver Figura 1.3) a modelos IBM de mayor
tamaño sin tener que modificar sus programas. Las computadoras trabajaban a tal velocidad
que tenían la capacidad de ejecutar más de un programa de manera simultánea, a esta
característica de le llamó multiprogramación [5], en donde el elemento que se encarga de la
administración de los programas en un equipo de cómputo se le denomina microprocesador
que forma parte de la CPU2.
Figura 1.3. Computadora con circuitos integrados, IBM 360.
Más adelante nacieron los circuitos integrados (CI), donde se colocan miles de componentes
electrónicos en una integración en miniatura. Las computadoras nuevamente se hicieron más
pequeñas, más rápidas, desprendían menos calor y eran energéticamente más eficientes. Lo
más sobresaliente fue que el costo de los equipos fue menor.
2 Acrónimo de Unidad Central de Proceso, parte fundamental de la estructura física de una computadora (hardware).
16
El tamaño reducido del microprocesador y de chips hizo posible la creación de las
computadoras personales llamadas PC3
Estos equipos fueron utilizados para diversos fines y contenían múltiples aplicaciones, lo cual
no era práctico pero necesario. Al utilizar muchas aplicaciones, varios usuarios interactuaban
con el equipo (tiempo compartido), en donde la seguridad de la información era muy
importante, en el caso de que una aplicación presentara problemas podría afectar a las demás
hasta el grado de llegar a perder la información existente en el equipo, lo que seguramente era
una pérdida importante para la empresa u organización, de esta forma surge la necesidad de
la disponibilidad de la información.
. Los equipos de grandes dimensiones como los IBM
360 ya utilizaban circuitos integrados que remplazaban las memorias con núcleos magnéticos.
La empresa que se dedicó a resolver los problemas de seguridad física, seguridad de datos,
multiprogramación, y disponibilidad de la información fue IBM, comenzó a desarrollar una
técnica basada en programas que permitieran manejar sistemas aislados sobre un solo equipo
físico, con la finalidad de reducir problemas de multiprogramación. De esta manera surge el
desarrollo de las primeras máquinas virtuales en los años sesenta [6]. IBM desarrolló el
concepto de MV4
como una solución a los equipos de cómputo de tiempo compartido.
El primer sistema completo de virtualización desarrollado fue el CP-67 y fue ejecutado en una
computadora Mainframe IBM 360/67 [7], [8] y [9]. El programa CP-67 fue un sistema
especializado de tiempo compartido el cual expuso (para cada uno de los usuarios) una
computadora virtual llamada System/360. El funcionamiento del CP-67 y más adelante el
software para la virtualización de sistemas con el System/360 fue demasiado espectacular,
así que IBM decidió crear una computadora que tuviera una arquitectura especializada para
ayudar a la virtualización llamada Virtual Machine Facility/370 (VM/370).
La VM/370 fue un MMV5
Figura 1.4
ejecutado sobre una arquitectura extendida del sistema 370 llamado
370-XA, el cual proporcionó instrucciones específicas al CPU diseñado para manejar el
funcionamiento de las máquinas virtuales ejecutadas. En la , se muestra el logotipo
de inicio de la VM/370.
3 Acrónimo de Personal Computer ó Computadora Personal. 4 Acrónimo de Máquina Virtual, también conocida como Virtual Machine (VM, por sus siglas en inglés). 5 Acrónimo de Monitor de Máquina Virtual ó también conocido como Virtual Machine Monitor (VMM).
17
Figura 1.4. Ejecución de una Máquina Virtual VM 370.
Para los usuarios, la MV expuesta fue una réplica virtual de la computadora System/370, para
mejorar su rendimiento la plataforma 370-XA, proporcionó ayuda en la arquitectura logrando
mejorar el funcionamiento de ciertas operaciones que eran repetidas en el MMV VM/370.
Antes de esta ayuda, el MMV tenía que simular muchas de las instrucciones de arquitecturas
para cada MV, las cuales mejoraron satisfactoriamente sin interferir con otras máquinas
virtuales. El desarrollo de ayuda permitió que algunas de las instrucciones simuladas fueran
ejecutadas sin problemas en el hardware.
Según [10], IBM desarrolló diversas contribuciones para mejorar el rendimiento del sistema
VM/370, algunas de estas fueron desarrolladas específicamente para mejorar la velocidad en
la ejecución de los programas, las contribuciones ayudaron a mejorar el funcionamiento de la
MV System/370.
En el año de 1974, dos científicos dedicados al estudio de los sistemas virtuales llamados
Gerald J. Popek y Robert Goldberg 6
en su artículo [11], definieron los requerimientos para la
arquitectura de una MV, que decía; para cualquier máquina, un MMV, puede ser construido si
las instrucciones sensibles para una computadora son un subconjunto del conjunto de
instrucciones privilegiadas.
6 Científicos dedicados al desarrollo de sistemas de cómputo que aportaron conocimientos para el desarrollo de las tecnologías de virtualización.
18
Lo anterior quiere decir que el requerimiento más significativo en una arquitectura de cómputo
son las instrucciones privilegiadas, las cuales son manejadas cuando una MV huésped
(ejecutada directamente en el procesador físico) ejecuta una instrucción privilegiada al mismo
tiempo, el procesador se detiene y regresa el control al MMV, así que cualquiera de los dos
deciden si ejecutan las instrucciones o las emulan de otra manera.
Estos científicos también declararon que la arquitectura de una MV tuvo las siguientes
características importantes:
i. Cualquier programa ejecutado bajo el MMV debe exhibir un efecto idéntico como si
el programa fuese ejecutado directamente en la máquina original. El software o
hardware añaden los componentes de la MV necesaria para manejar los recursos
usados por las máquinas virtuales, y estos requisitos son para intervenir
ocasionalmente alterando las características de sincronización de las mismas.
ii. Un subconjunto estático dominante de instrucciones de un procesador virtual son
ejecutados directamente por el procesador real. Estos dos científicos decían que
una máquina virtual es diferente comparado con un emulador, el cual interviene y
analiza el comportamiento de cada instrucción del procesador virtual, mientras que
una MV ocasionalmente relaciona al procesador real, con el procesador virtual.
iii. El MMV tiene el control completo de los recursos del equipo, una MV ejecutándose
en un sistema no tiene acceso directo a los recursos reales del sistema, esto tiene
que ir a través del MMV.
En los años ochenta, la empresa Microsoft implementó una forma extremadamente sencilla de
virtualización en su compilador QuickBasic7
7 Es un descendiente del
[12], los programas escritos en Basic eran
compilados y traducidos a un código intermedio, para el que se desarrolló un intérprete muy
eficiente. Al ejecutar los programas, en realidad se ejecutaba el intérprete sobre el programa
pre compilado. Al distribuir el programa compilado, al cliente, era necesario entregar un
archivo ejecutable que en realidad era el intérprete sobre el que Microsoft no ponía
condiciones de redistribución.
lenguaje de programación BASIC que Microsoft desarrolló para su uso con el sistema operativo MS-DOS.
19
Más adelante, sería la empresa Sun Microsystems quien desarrollaría la MV de Java en donde
se compilan las aplicaciones escritas en lenguaje Java [13]. Esta máquina añade varios niveles
sofisticados al incluir un microprocesador completo, un gestor de memoria avanzado, un
sistema de comunicaciones de red, y un fuerte entorno de seguridad, sobre los que se
construyen la mayoría de las grandes aplicaciones de negocio actualmente.
Las anteriores técnicas se han orientado fundamentalmente a la virtualización de
aplicaciones, dicho de otra forma, a la ejecución de aplicaciones sobre máquinas virtuales.
Posteriormente surgen diferentes técnicas de virtualización, en donde la más importante para
las empresas es la simulación de un entorno virtual completo.
Con el paso del tiempo, las técnicas de virtualización han mejorado de la mano del desarrollo
tecnológico del hardware de los sistemas de cómputo. Diversas empresas como VMware [14],
Microsoft [15], Linux [16], Apple [17], Sun Microsystems [18], entre otras, han utilizado las
técnicas de virtualización para que las empresas obtengan beneficios al utilizarlas como el
ahorro de energía eléctrica, reducción de espacios en los cuartos de cómputo, seguridad física,
seguridad lógica, alta disponibilidad, manejo sencillo de la información, etc.
Las técnicas de virtualización tienen más de treinta años de existencia y han evolucionado
rápidamente debido a las mejoras en la tecnología de los equipos de cómputo, permitiendo
realizar acciones que anteriormente eran inimaginables para los entornos personales,
educativos y empresariales. Las empresas deben evaluar la factibilidad de aplicar las
tecnologías de virtualización en sus sistemas de cómputo, lo cual depende de la capacidad del
hardware, del tipo de aplicaciones y componentes que ayudan al desempeño adecuado de la
información.
1.2 Situación actual
Los grandes sistemas de cómputo llamados Mainframe, actualmente se siguen manejando por
grandes empresas y universidades debido a sus capacidades de hardware y manejo de
software, un ejemplo de estos equipos son los zSeries de IBM, que pueden ejecutar una
versión evolucionada de MV. Sin embargo, los servidores de grandes marcas reconocidas
como HP, DELL, IBM, Sun Microsystems, Apple, etc., también son utilizados por las
características de hardware que proveen, en donde el elemento más importante es el
microprocesador, el cual permite crear la cantidad de máquinas virtuales dependiendo de su
20
capacidad. En estos días cualquier capa de un centro de datos, puede ser virtualizable por
hardware o software, desde el almacenamiento de datos, pasando por los servidores, hasta
llegar a los dispositivos de red [19].
A continuación se toman como ejemplo dos esquemas diferentes de virtualización, con el
propósito de mostrar la necesidad de utilizar la tecnología en los sistemas empresariales.
Actualmente dentro del IPN existe la Coordinación de Servicios Informáticos la cual tiene dos
áreas importantes que soportan las necesidades de cómputo y comunicaciones a todo el
instituto. Por un lado, la Dirección de Cómputo y Comunicaciones (DCyC) requiere de
servidores que soporten almacenamiento de información, aplicaciones, bases de datos,
páginas web, etc., por tal razón, el área cuenta con servidores de grandes capacidades de
cómputo para el manejo de la virtualización, estos equipos cuentan con características
robustas de hardware y manejo de alta disponibilidad, es decir, se cuenta con más de un
equipo en donde se pueden crear hasta 300 MV por servidor, cada máquina virtual funciona
como si fuera un equipo físico, lo cual quiere decir que un usuario que esté trabajando con su
aplicación, no sabe que se trata de una MV. El tipo de virtualización utilizado en este caso es
VMware, en donde una de las características importantes de esta tecnología es la migración
de la información entre servidores sin que el servicio se vea afectado para el usuario.
El Centro Nacional de Cálculo (CENAC) es la otra parte de la Coordinación, en donde el objetivo
principal es el desarrollo de sistemas informáticos de acuerdo a las necesidades del propio
Instituto. En esta unidad también se cuenta con un esquema de virtualización que permite
crear MV. Las características de hardware son menores comparadas con la DCyC, pero son
suficientes para laboratorios de pruebas de los sistemas informáticos. En este caso el número
de máquinas virtuales que se pueden crear por servidor son 30, dependiendo de la asignación
de recursos por cada MV. El tipo de virtualizador que se maneja es Hyper-V de Microsoft, en
donde el propio S.O. contiene la tecnología.
En ambos esquemas, la técnica aplicada utilizada es la virtualización completa, en donde se
ocupa un hipervisor que permite la manipulación total de los recursos de un sistema de
cómputo lo cual permite un mejor desempeño para el manejo de las aplicaciones contenidas
en cada una de las MV sin afectar el funcionamiento entre ellas.
21
1.3 Planteamiento del problema
En la historia de las computadoras se pueden identificar diversos problemas, en donde los
más importantes son; el costo, el dimensionamiento, la seguridad de la información y el uso de
múltiples aplicaciones dentro de una máquina física.
En el presente trabajo se pretende crear y evaluar un esquema de virtualización, que permita
manejar aplicaciones con alta disponibilidad que contengan bases de datos empresariales ya
que son fundamentales para el manejo de la información, utilizando las técnicas que
actualmente existen en el mercado como por ejemplo Hyper-V de Microsoft, VMWare, Xen, etc.
Además de lo anterior, es necesario realizar pruebas que permitan la evaluación del proyecto.
El número de MV depende de las capacidades de hardware con la que cuente el equipo. Las
MV trabajan idénticamente a un equipo físico, en donde se pueden manejar diversos sistemas
operativos con diferentes aplicaciones sin ocasionar conflictos entre ellas, es decir, trabajan
de forma aislada dentro de la misma máquina física. La idea principal es elegir un equipo que
tenga la capacidad suficiente para manejar por lo menos cuatro MV para usarlas como cluster
y así tener alta disponibilidad en la información manejada por la Base de Datos. Para lograr lo
antes mencionado se pretende utilizar los recursos que se encuentran en el Centro Nacional
de Cálculo del Instituto Politécnico Nacional, en donde se desarrollan diversos sistemas
informáticos y cuentan con la infraestructura adecuada para el desarrollo del proyecto. Se
tomará un servidor con grandes capacidades de hardware, se instalará el software de
virtualización, posteriormente se implementarán las MV con sistemas operativos aislados y
entrarán a un esquema de alta disponibilidad, posteriormente se implementará una base de
datos y se realizará una evaluación de transacciones por minuto.
1.4 Justificación
Actualmente las empresas necesitan de soluciones que permitan aprovechar adecuadamente
el uso de los recursos de sus equipos informáticos, además de manejar correctamente la
información almacenada con alta disponibilidad. Todo lo anterior se puede lograr con la
virtualización en sistemas de cómputo, por lo que es necesario conocer detalladamente los
tipos y técnicas de virtualización existentes hoy en día para que puedan aplicarse a las
necesidades empresariales.
22
Debido a que las empresas necesitan de las bases de datos, es conveniente proponer un
ambiente de virtualización para su implementación que permita soluciones para las empresas
en el manejo de sus sistemas informáticos.
1.5 Objetivo general
Realizar un esquema de virtualización sobre un equipo de cómputo físico, que permita crear
máquinas virtuales utilizadas para el manejo de bases de datos con alta disponibilidad a nivel
empresarial.
1.5.1 Objetivos particulares
Particularmente se pretenden realizar las siguientes actividades:
• Identificar las problemáticas de los equipos de cómputo en el manejo de bases de
datos y alta disponibilidad.
• Encontrar el tipo y técnica de virtualización adecuada para la elaboración de la tesis.
• Identificar las bases de datos que se pueden implementar en un esquema virtualizado.
• Implementar pruebas de carga.
• Definir la metodología para comprobar el funcionamiento de una base de datos con
sistemas virtuales
1.6 Contribución
Debido a las grandes ventajas que presenta la virtualización en equipos de cómputo, es
necesario proponer a las grandes, medianas y pequeñas empresas soluciones que permitan
un adecuado manejo de la información, y mejor uso de los recursos de sus equipos sin
importar la arquitectura de software que manejen.
Por esta razón se desarrolla la técnica de virtualización llamada Virtualización Completa y se
implementará con diferentes aplicaciones que permita que la información contenida en una
base de datos sea altamente disponible. La contribución de este trabajo será proponer una
solución de virtualización en los diferentes niveles empresariales para disminuir costos en el
uso de equipos de cómputo.
23
1.7 Hipótesis
Al utilizar las técnicas de virtualización, se reducirán considerablemente los gastos en los
diferentes sectores empresariales, aprovechando mejor los recursos de cómputo,
disminuyendo espacios y contaminación, además de mejorar el desempeño de la información
teniéndola disponible el mayor tiempo. La combinación de la tecnología de virtualización con
las bases de datos resultará muy atractivo para las organizaciones en donde este trabajo será
una orientación para su implementación. Por tal razón, esta tecnología tendrá muchas
aportaciones más para diferentes aplicaciones.
1.8 Metodología
El trabajo se basó en la investigación documental, se establece la base teórica del problema,
investigando y documentando los conceptos de las diferentes técnicas y tipos de virtualización,
bases de datos y alta disponibilidad, en donde se elige el método más adecuado para un
esquema empresarial de acuerdo a los alcances para obtener las herramientas que ayudan al
desarrollo del proyecto.
El lugar de trabajo para el desarrollo del proyecto, el CENAC proporcionó las herramientas
necesarias como los sistemas de cómputo, las aplicaciones de bases de datos, manejo de
almacenamiento y disponibilidad de red de comunicaciones.
El virtualizador en el servidor dedicado y se crearon 4 máquinas virtuales llamados nodos, y se
configuró la red para la comunicación entre ellos, almacenamiento y acceso remoto. De igual
forma se instaló el manejador de almacenamiento para el cluster, se instaló la base de datos y
se realizaron pruebas de carga.
Conclusiones correspondientes y aportaciones a trabajos futuros.
1.9 Estructura de la tesis
La tesis está dividida en dos secciones importantes: en la primera parte se muestran los
aspectos teóricos que son necesarios para realizar la propuesta adecuada del uso de la
virtualización para sistemas empresariales. El primer punto es conocer la problemática que
tienen los primeros sistemas de cómputo, posteriormente los diferentes tipos y técnicas de
24
virtualización que se pueden aplicar a los sistemas empresariales y con qué tipos de bases de
datos se pueden relacionar, además de manejar alta disponibilidad en su información. En la
segunda parte se muestra el desarrollo del prototipo, su implementación y funcionamiento.
En general, cada uno de los capítulos contiene lo siguiente:
En el Capítulo 1.- Se describe de manera general los puntos más importantes para realizar el
trabajo de tesis, obteniendo las necesidades y visualizando las problemáticas que se tienen
que considerar para el desarrollo del proyecto, así como también se definen los objetivos y las
justificaciones correspondientes.
En el Capítulo 2: “La virtualización y la alta disponibilidad”, en este se ven los antecedentes
donde se muestra el principio del manejo de la información, los diferentes tipos y técnicas de
virtualización y las aplicaciones que trabajan con alta disponibilidad.
El Capitulo 3: “Bases de datos empresariales”, se muestran las diferentes generaciones de las
bases de datos que describen la evolución de la velocidad en la transacción de datos, las
arquitecturas que se pueden aplicar a diferentes esquemas empresariales, y como se manejan
las bases de datos en servidores que usan distintas aplicaciones, además del manejo de alta
disponibilidad.
En el Capítulo 4: “Análisis, diseño y desarrollo del sistema”, se identifican los pasos a seguir y
las herramientas a utilizar para el desarrollo del prototipo, como son; el tipo y la técnica de
virtualización, el manejador de base de datos, la aplicación de alta disponibilidad y de
almacenamiento, el programa de carga de información y finalmente la puesta en marcha y la
evaluación del proyecto.
En el Capítulo 5: “Pruebas y resultados”, en este capítulo se verán los resultados que se
obtuvieron en la implementación del proyecto, explicando y analizando los resultados
detalladamente.
En el Capítulo 6: “Conclusiones y trabajos a futuro”, se presentan los puntos importantes que
destacaron del trabajo y las recomendaciones para trabajos futuros.
25
Capítulo 2: La virtualización y la alta disponibilidad
2.1 Conceptos
En el campo de las comunicaciones y los equipos de cómputo, la palabra virtualización juega
un papel muy importante, es utilizada en muchos aspectos pero con diferentes funciones. Para
aquellas personas que no están inmersas en el campo de la computación, es fácil confundir
los términos a la hora de utilizar una expresión que involucre la palabra virtualización, como
por ejemplo; VLAN (Red de Área Local Virtual ó VLAN o Virtual Local Area Network), Red Privada
Virtual (VPN o Virtual Private Network), Realidad Virtual, virtualización de aplicaciones,
virtualización de sistemas operativos, máquinas virtuales, etc. Todas las palabras anteriores
tienen un significado diferente aunque se escuchen semejantes. Dentro de la informática se
puede definir a la virtualización como la tecnología que permite manejar más de un sistema
operativo en un equipo de cómputo mediante máquinas virtuales (ver Figura 2. 1).
Figura 2. 1 Máquinas virtuales dentro de un equipo con diferentes Sistemas Operativos.
La virtualización también se puede definir como la abstracción y manipulación de los recursos
de una computadora como lo son; discos duros, conexiones de red, dispositivos de entrada y
26
salida, memoria, procesador, etc., mediante un programa que permita la virtualización, el cual
crea una abstracción entre el hardware del equipo físico y el sistema operativo de la máquina
virtual. La MV es un medio para crear una versión virtual de un dispositivo o recurso, como un
servidor, una unidad de almacenamiento, una red o incluso un sistema operativo en donde se
dividen los recursos en uno o más entornos de ejecución.
Un servidor virtual se gestiona de forma idéntica a uno real, tiene en cambio el inconveniente
de su ligera ineficiencia, ya que la simulación es un proceso bastante pesado que suele
involucrar procesos de compilación JIT (Just In Time) sobre partes muy críticas del programa
virtualizado. Debido a esta ineficiencia, es poco práctico implementar en máquinas medias
más de 3 ó 4 servidores virtuales por cada microprocesador real.
2.2 Hardware
A continuación se mencionan las características de hardware más importantes que
actualmente tiene un sistema de cómputo para el manejo de la virtualización son:
2.2.1 Capacidad de proceso
Los microprocesadores actuales (en donde predominan las marcas AMD e Intel) de la mayoría
de servidores del mercado, tienen la capacidad de procesamiento necesario para ejecutar el
equivalente a varios sistemas operativos simultáneos, salvo en sistemas dedicados a tareas
de computación pura o de muy elevada carga de trabajo (como por ejemplo las
supercomputadoras o los sistemas de gestión de bases de datos). Los microprocesadores
actuales pasan la mayor parte del tiempo esperando realizar la siguiente tarea, es decir la
capacidad de procesamiento utilizado es mínimo. En la actualidad, los tipos de procesadores
más sobresalientes en el mercado son multinúcleo para computadoras personales, Lap-tops y
servidores.
2.2.2 Capacidad de memoria RAM
Los servidores actuales tienen capacidades de memoria que hace unos quince años no tenían
ni siquiera los discos duros, un gigabyte de RAM es una opción común y económica en una
computadora que maneja aplicaciones de oficina, pero cuando las aplicaciones son más
demandantes, la memoria se vuelve un factor fundamental para el buen funcionamiento. Es
27
por esta razón que los servidores empresariales manejan una cantidad elevada de memoria
para la virtualización, dependiendo de la cantidad de máquinas virtuales que se tenga
pensado realizar. En algunos casos el costo de dotar a un equipo con más memoria es muy
bajo, pero en otros por cuestiones de tecnología es mucho mayor y obviamente más eficiente.
2.2.3 Capacidad de almacenamiento
La capacidad de almacenamiento ha tenido un desarrollo exponencial debido
fundamentalmente a los grandes avances de la tecnología de almacenamiento como por
ejemplo la técnica GMR (Giant Magnetoresistance) hizo que hacia el año 1996 hubiese una
transición importante de los discos duros de tamaños típicos de unos pocos gigabytes, hacia
las decenas y más recientemente, la técnica Almacenamiento Perpendicular Recording,
permite disponer de discos en el entorno de los varios cientos de gigabytes e incluso terabytes
en el mismo espacio. Estas capacidades son utilizadas en la actualidad por personas
encargadas de las áreas de informática en las organizaciones o aquellas que tienen una gran
afición de los videojuegos que requieren la potencia gráfica y de proceso de una
supercomputadora.
En los servidores empresariales y equipos de cómputo en general, las capacidades de
procesamiento y almacenamiento están siendo desaprovechadas, debido a que las
aplicaciones en algunos casos no son muy demandantes. Por otro lado el costo de dotar a un
servidor del doble o triple de memoria RAM de la originalmente prevista es completamente
asumible. El espacio de almacenamiento depende de la cantidad de información que se tenga
que almacenar, sin embargo también puede crecer en cuanto a capacidad.
En la Figura 2. 2 se muestran las partes que conforman la virtualización, tomando en cuenta
que todos los equipos de cómputo se basan en tres capas fundamentales; hardware o
recursos del equipo, software y aplicaciones. Por otro lado, la virtualización puede tener más
de una MV trabajando al mismo tiempo.
28
Figura 2. 2 Módulos de un sistema virtualizado.
2.3 Software
Las tecnologías actuales de virtualización se basan fundamentalmente en dos enfoques
distintos; por una parte las virtualizaciones llamadas puras, que simulan completamente los
recursos de un sistema de cómputo y por otro lado están las paravirtualizaciones, que
virtualizan únicamente parte de los recursos y ofrecen una API (Application Programming
Interface - Interfaz de Programación de Aplicaciones) de programación para partes conflictivas
(típicamente el microprocesador y sus modos protegidos de funcionamiento). Un tercer tipo en
donde las MV son simuladas a nivel del propio sistema operativo y no a nivel de hardware. A
estos diferentes esquemas se les denomina Técnicas de Virtualización que son utilizadas con
diferentes Tipos de Virtualizadores.
2.4 Técnicas de Virtualización
La virtualización surge por la necesidad de poder manipular diferentes aplicaciones dentro de
un solo equipo físico. Por medio de las MV se pueden tener aplicaciones con diferentes
plataformas ejecutándose al mismo tiempo. Estas máquinas son manipuladas por un
programa que permite manejar los recursos de una computadora como la memoria, el
procesador, el almacenamiento (Discos Duros), los dispositivos de red, los dispositivos de
entrada y salida, etc.
29
A las diferentes formas de aplicar los programas que permiten la virtualización se les
denomina técnicas de virtualización [19], se pueden aplicar en distintos entornos
empresariales y educativos, la principal ventaja al utilizar esta tecnología es aprovechar al
máximo los sistemas informáticos explotando lo mejor posible los recursos de un equipo de
cómputo, lo que conlleva que las empresas disminuyan gastos importantes para su desarrollo.
Las técnicas de virtualización están divididas principalmente en cuatro esquemas diferentes:
Virtualización completa, para Virtualización, Virtualización a nivel sistema operativo y
emulación del hardware, cabe señalar que existe otra técnica de Virtualización que se encarga
de emular aplicaciones utilizándolas en plataformas sin que estén instaladas.
2.4.1 Virtualización completa
La virtualización completa, también llamada virtualización nativa utiliza un MMV o Hypervisor8
Figura 2. 3
,
que interactúa entre el S.O. invitado y el hardware nativo como se puede ver en la .
Esta técnica de virtualización es capaz de ejecutar sin modificación alguna plataformas de la
familia de Windows y Linux, se instalan en la MV y funcionan exactamente igual como si lo
hicieran sobre una máquina real.
Figura 2. 3 . Esquema de virtualización completa.
La ventaja fundamental radica en que es lo más parecido a disponer de varios servidores
dentro de uno solo. Algunas instrucciones protegidas deben capturarse y manejarse dentro del
hipervisor ya que el hardware subyacente no es propiedad de un S.O. sino que es compartido a
través del mismo. La interacción directa del hardware con el programa de virtualización
8 En español conocido como Hipervisor es equivalente al término de MMV.
30
permite ejecutar sistemas operativos sin la necesidad de modificarlos con la única condición
de que el software soporte la demanda de los recursos del equipo anfitrión.
Es el caso de VMware, Qemu [20] y VirtualBox [21], se basan en un MMV que mediante
complicadas técnicas detectan en tiempo de ejecución el código que no puede ejecutarse
directamente por que afectaría a todo el sistema, modificando dinámicamente las
instrucciones conflictivas.
El rendimiento varía mucho, esto es según lo avanzado que sea el MMV en donde VMware es
un buen candidato. Esta técnica, permite instalar el software de virtualización directamente en
el hardware de un sistema físico tal como si se tratara de un sistema operativo, este se
encargará de manejar los recursos del sistema para después ser asignados a cada una de las
máquinas virtuales que pueden manipular diferentes sistemas operativos y aplicaciones.
2.4.2 Paravirtualización
La paravirtualización es la arquitectura más allegada a la virtualización completa (ver Figura 2.
4), ya que hacen uso del hipervisor, pero en este caso las máquinas virtuales creadas se
modifican para que puedan trabajar con el virtualizador, lo anterior permite crear un número
mayor de máquinas virtuales sobre una misma infraestructura física, permitiendo que los
sistemas operativos hospedados puedan realizar modificaciones en llamadas y drivers de
dispositivos. Con la paravirtualización no existe exceso de carga y por lo tanto pérdida de
rendimiento. Cuando se utilizan procesadores como AMD-V o Intel VT, no es necesario que el
hipervisor se ejecute como paravirtualización. Algunos ejemplos de paravirtualización son Xen,
Virtual Iron y los LDOMs de Sun Microsystems.
Figura 2. 4 Esquema de paravirtualización.
31
El equipo físico no presenta una emulación del hardware; sin embargo, ofrece una API, que
permite que los invitados puedan acceder a los recursos de la máquina, controlados por el
sistema físico. Los sistemas invitados se ejecutan de forma aislada y segura, de forma tal que
no se afectan en caso de problemas.
2.4.3 Virtualización a nivel sistema operativo
Esta técnica virtualiza los equipos de cómputo sobre el propio S.O. y es utilizado cuando el
usuario requiere de varias aplicaciones que utilizan diferentes sistemas operativos, como es el
caso de Linux y Windows, en donde uno de los dos es el S.O. nativo y otro el huésped. Sin
embargo se pueden tener más de uno virtualizado, dependiendo de la capacidad de memoria y
procesamiento del equipo, simplemente aísla los servidores independientes como se puede
observar en la Figura 2. 5.
Figura 2. 5 Virtualización a nivel sistema operativo.
Los sistemas invitados comparten el mismo sistema operativo que el anfitrión. Los invitados se
ven como si estuvieran solos, pero en verdad todos comparten el mismo kernel, lo que provoca
que una vulnerabilidad afecte a todos. En este caso se puede decir que mas que
virtualizaciones son entornos de ejecución aislados, y que puede considerarse mas como
funcionalidades específicas del S.O. anfitrión.
2.4.4 Emulación del hardware
Una de las técnicas de virtualización más complicadas es la emulación del hardware, sin
embargo puede emular dispositivos enteros permitiendo que el equipo físico se comporte
completamente como una MV de forma que todas las llamadas que hagan los sistemas
32
invitados sean interpretadas y canalizadas por parte del host hacia el verdadero hardware
como se puede observar en la figura 2.6.
Existen algunas soluciones de emulación que permiten interactuar con plataformas como x86,
SPRAC, PowerPC o MIPS. La principal problemática con esta tecnología es la velocidad de
operación en donde resulta muy lenta, debido a que cada una de las instrucciones debe ser
simulada por el hardware del equipo físico. Por lo anterior, no se recomienda utilizar esta
técnica de virtualización para arquitecturas que necesiten una velocidad adecuada para el
manejo de la información como por ejemplo las bases de datos.
Qemu es el tipo de virtualización que mejor se acopla al manejo de la emulación de hardware,
y puede trabajar en dos modos distintos, uno de ellos es el sistema de emulación total donde
se emula una máquina completa incluyendo procesador y periféricos, pudiendo ser usados
para lanzar diferentes sistemas operativos sin tener que reiniciar el sistema. De esta forma se
pueden manejar diferentes sistemas operativos a la vez. El otro tipo de emulación que soporta
Qemu es el modo usuario, en donde se pueden enviar procesos compilados para una Unidad
Central de Proceso.
Existen opciones de emulación para utilizar elementos de una plataforma Linux en Windows
como por ejemplo: Cygwin y Cooperative Linux, en donde se comparte el hardware con el
sistema operativo anfitrión con la limitante que el acceso a dispositivos de entrada y salida no
se realiza directamente.
Figura 2. 6 Esquema de emulación del hardware.
33
2.4.5 Virtualización de aplicaciones
Esta tecnología permite virtualizar programas con la ayuda de una herramienta de
virtualización como es el caso de ThinApp de VMware [22], anteriormente conocida como
Thininstall. La gran ventaja de esta herramienta es que se pueden usar aplicaciones, como por
ejemplo Autocad9
, en un sistema de cómputo que tenga un S.O. instalado sin haber ejecutado
anteriormente el software.
En la actualidad esta técnica de virtualización está adquiriendo gran fuerza ya que reduce el
costo por el uso de licencias, debido a que los programas se ejecutan como archivos no tienen
que instalarse forzosamente en el sistema en el que está siendo usado.
De las familias de virtualizaciones reales comentadas, la más estable es la virtualización pura,
y dentro de ellas la proporcionada por VMware, seguida de Hyper-V de Microsoft [23] y por el
lado del software libre XEN [24]. Microsoft ha evolucionado considerablemente en la
virtualización de servidores pero con funciones que aún no superan a VMware que tiene ya
desde 1999 siendo líder en el mercado.
2.5 Tipos de virtualización
En la actualidad existen diferentes empresas que se interesan por el desarrollo de
aplicaciones que permitan la virtualización en los sistemas de cómputo, dicho de otra manera,
son las marcas que se encuentran en el mercado como por ejemplo; VMware [36], Parallels
[37], Xen [38], Virtualbox [39], Qemu [40], Virtual PC [41], ver figura 2.7.
Figura 2. 7 Tipos de virtualización: a) VMware, b) Parallels, c) Xen, d) Virtual PC, e) Qemu, f) VirtualBox, g) Virtuozzo.
9 Software utilizado para el diseño arquitectónico.
34
Cada uno de estos productos maneja una técnica de virtualización diferente; algunas se
pueden aplicar a la virtualización de servidores, otras a S.O. ó simplemente como emuladores.
Determinados productos tienen un costo definido, como por ejemplo VMware en sistemas
empresariales, por otro lado Xen, es uno de los productos que pertenecen al grupo de software
libre, la diferencia principal entre las dos alternativas se refleja en la funcionalidad, el fácil
manejo y la portabilidad.
A continuación se muestran las características de los diferentes tipos de virtualización, sus
ventajas, desventajas y el uso en los sistemas empresariales.
2.5.1 VMware
Es actualmente una herramienta de virtualización líder en el mercado para la arquitectura de
procesadores Intel y AMD. Esta tecnología toma los enfoques para la virtualización ejecutando
un MMV directamente al hardware o en S.O. anfitrión. El procesador necesita de soporte para
manejar una gran cantidad de dispositivos disponibles, VMware se encarga de este trabajo
abstrayendo dichos dispositivos, a esto se le conoce como Arquitectura de una Máquina Virtual
Anfitrión.
VMware, instala un S.O. especial (controlador) llamado VMDriver, el cual permite la estancia de
máquinas virtuales para tener rápido acceso a los dispositivos del sistema. VMDriver es
instalado en el kernel del S.O. para el acceso a los dispositivos y así permitir el paso al arreglo
de dispositivos disponibles que necesitan soporte en el microprocesador. Este tipo de
virtualización proporciona solo un grupo genérico de dispositivos para cada máquina virtual en
cada una de ellas se exponen los siguientes dispositivos: teclado, ratón, unidad de disco,
controlador IDE, CD-ROM, tarjeta de audio, puertos serie, puertos paralelo, un estándar de
gráficos, tarjeta de visualización, y cualquier número de adaptadores Ethernet. Lo anterior
simplifica en gran medida la aplicación de VMware.
La implementación de la interface de la tarjeta de red de VMware es muy interesante.
VMDriver coloca la tarjeta de red física en modo promiscuo y crea un puente de red virtual
Ethernet el cual recibe todos los paquetes de las tarjetas de red. VMDriver puede entonces
analizar cada paquete o bien la ruta de vuelta para el S.O. anfitrión. Esta aplicación también
permite a VMware proporcionar una traducción de direcciones de red mejor conocida como
35
NAT (Network Address Translation) en el puente virtual a fin de que cada máquina crea que
tiene una dirección IP propia.
2.5.2 Xen
El sistema Xen aunque surgió en el 2005, ha recibido un fuerte apoyo por parte del mayor
distribuidor de software libre Redhat, que ya lo incluye en sus versiones recientes
empresariales como por ejemplo Redhat Enterprise Linux 5.4., además en sus últimas
versiones es capaz de ejecutar sistemas operativos sin modificar, siempre y cuando se cuente
con un microprocesador Intel o AMD con extensiones VT, diseñadas para ayudar a los entornos
de virtualización.
Actualmente, el sistema de virtualización Xen se está convirtiendo en una característica
estándar de las distribuciones Linux empresariales, utiliza la técnica paravirtualización con el
fin de alcanzar alto rendimiento incluso en arquitecturas que no suelen conseguirse con
técnicas tradicionales de virtualización como x86.
Este tipo de virtualización fue desarrollado por la Universidad de Cambridge en Inglaterra,
como una MV de código abierto y con el objetivo de poder manipular diferentes sistemas
operativos modificados de manera aislada. La migración de las máquinas virtuales es muy
sencilla, debido a que se manejan como archivos o imágenes, donde la información se puede
migrar de una MV a otra sin detener el servicio.
La migración de máquinas virtuales sin interrumpir el servicio, permite al administrador la
posibilidad de planificar el mantenimiento del hardware, cambiar la carga de un sistema
sobrecargado o cambiar un servicio específico de una máquina a otra. Otros posibles usos son
los esquemas de pruebas y de desarrollo, las simulaciones de clusters y de redes o los
entornos de ejecución separados por razones de seguridad.
Con lo anterior, se obtiene alta disponibilidad para las aplicaciones manejadas en los sistemas
empresariales. Cuando se migra una máquina virtual, el contenido de su memoria se transfiere
por la red, sin tener que apagarla excepto al final del proceso para poder copiar las últimas
páginas de memoria modificadas. Los desarrolladores de Xen han demostrado el
funcionamiento de esta característica con servidores web con una alta carga, e incluso con
36
video streaming. En donde las interrupciones típicas son de una magnitud de alrededor de una
décima de segundo.
Los principales actores del mundo Linux, incluyendo a Novell, RedHat, HP, IBM, Intel y AMD, se
han lanzado a dar soporte a Xen. Gracias a su excelente rendimiento y a su bajo costo, el
monitor de máquinas virtuales Xen es un catalizador importante para ingresar al mundo de la
virtualización bajo Linux.
Xen se muestra impresionantemente rápido, aunque la mayoría de las soluciones de
virtualización parecen convincentes cuando se les pide que realicen tareas
computacionalmente costosas, la verdadera calidad de una máquina virtual se revela cuando
maneja aplicaciones que hagan uso intensivo de las llamadas al sistema, normalmente
operaciones de entrada/salida del disco duro o de red.
2.5.3 Qemu
Es un emulador de procesadores basado en la traducción dinámica de binarios (conversión del
código binario de la arquitectura fuente en código entendible por la arquitectura huésped).
Esta tecnología también tiene capacidades de virtualización dentro de un S.O., ya sea Linux,
Windows, o cualquiera de los sistemas operativos admitidos (de hecho es la forma más común
de uso). Esta máquina virtual puede ejecutarse en cualquier tipo de microprocesador o
arquitectura. Está licenciado en parte con la Licencia Pública General Reducida y la Licencia
Pública General de GNU. El objetivo principal es emular un S.O. dentro de otro sin tener que
particionar el disco duro, empleando para su ubicación cualquier directorio dentro de éste.
El programa no dispone de una Interfaz Grafica de Usuario (GUI), pero existe otro programa
llamado Qemu Manager que hace las veces de interfaz gráfica si se utiliza Qemu desde
Windows. También existe una versión para Linux llamado Qemu-launcher. En Mac OSX puede
utilizarse el programa que dispone de una interfaz gráfica para crear y administrar las
máquinas virtuales.
Este software posee dos modos de operación, por un lado la emulación del modo usuario que
puede ejecutar procesos compilados para un tipo de CPU en otro y el modo de emulación
completo, en donde Qemu emula un equipo de cómputo completo, incluyendo procesador y
varios periféricos. Este puede ser usado para proveer hosting (hospedaje de páginas web)
37
virtual a varias computadoras virtuales en una única computadora. Otra característica es que
puede arrancar varios sistemas operativos, incluyendo entre otros Linux, Microsoft Windows,
DOS, y BSD. Admite además la emulación de varias plataformas de hardware, incluyendo x86,
AMD64, Alpha, Mips, y Sparc.
2.5.4 Virtual PC
Es un programa desarrollado por Connectix y comprado por Microsoft para crear máquinas
virtuales. Su propósito es emular un hardware sobre el que funcionen varios sistemas
operativos y ejecutarlos en la misma máquina a la vez, además de hacer que se comuniquen
entre ellos. Virtual PC en el caso de la versión para Windows, no emula el procesador sino que
deja que él mismo ejecute las instrucciones en el entorno emulado.
Este virtualizador no presenta soporte para todos los programas, ya que pueden existir fallos
debido a errores en la sincronización de las operaciones o se pueden generar problemas fuera
de tiempo. La emulación en Macintosh es de re compilación dinámica para traducir código x86
a código de un Mac con procesador PowerPC. En las Mac con procesador Intel no existe una
versión de Virtual PC con lo que hay que acudir a otro tipo de soluciones. La emulación en
Windows también es de re compilación dinámica, pero solo traduce el modo de kernel y el
modo real x86 a código de usuario, mientras el usuario original corre en forma nativa.
Actualmente se puede descargar Virtual PC para Windows 7 Profesional y Windows 7 Ultimate,
para manejar Windows XP, el procedimiento se puede realizar en tres sencillos pasos y de
forma gratuita, siempre y cuando se tenga la plataforma de Windows como S.O.
predeterminado.
2.5.5 VirtualBox
Es un software de virtualización para arquitecturas de 32 y 64 bits de Intel y AMD, fue
desarrollado originalmente por la empresa alemana Innotek GmbH, pero que pasó a ser
propiedad de la empresa Sun Microsystems en febrero de 2008 cuando ésta compró a
Innotek. Por medio de esta aplicación es posible instalar sistemas operativos adicionales,
conocidos como sistemas invitados o huésped, dentro de otro S.O. anfitrión, cada uno con su
propio ambiente virtual. Por ejemplo, se podrían instalar diferentes distribuciones de Linux en
un VirtualBox instalado en Windows XP o viceversa.
38
Entre los sistemas operativos soportados (en modo anfitrión) se encuentran GNU/Linux, Mac
OSX, Windows, y Solaris, dentro de éstos es posible vitalizar los sistemas operativos FreeBSD,
GNU/Linux, OpenBSD, OS/2 Warp, Windows y Solaris. La aplicación fue inicialmente ofrecida
bajo una licencia de software privado, pero en enero de 2007, después de años de desarrollo,
surgió VirtualBox OSE (Open Source Edition) bajo la licencia GPL 2.
Actualmente existe la versión privada, VirtualBox, que es gratuita únicamente bajo uso
personal o de evaluación, y está sujeta a la licencia de uso personal y de evaluación VirtualBox
(VirtualBox Personal Use and Evaluation License o PUEL) y la versión Open Source, VirtualBox
OSE, que es software libre, sujeta a la licencia GPL. En comparación con otras aplicaciones
privadas de virtualización, como VMware Workstation o Microsoft Virtual PC, VirtualBox carece
de algunas funcionalidades, pero provee de otras como la ejecución de maquinas virtuales de
forma remota, por medio del Remote Desktop Protocol (RDP) y soporte iSCSI.
En cuanto a la emulación de hardware, los discos duros de los sistemas invitados son
almacenados en los sistemas anfitriones como archivos individuales en un contenedor
llamado Virtual Disk Image, incompartible con los demás software de virtualización. La versión
más actual de Virtual Box es la 3.0.8 que surgió en Octubre del 2009.
2.5.6 HYPER-V
Hyper-V, ha tomado gran fuerza en el uso de sistemas de cómputo empresariales, debido a
que simplemente es el software más comercial del mercado y la virtualización es incluida en
el S.O. Windows Server de Microsoft en donde la versión más actual es la 2008. Cabe señalar
que existen diferentes versiones que permiten crear un determinado número de Máquinas
Virtuales.
Este tipo de virtualización incorpora una arquitectura de Hypervisor o hipervisor basada en
microkernel, que comparados con otros tipos de virtualización cumple los puntos necesarios
para el manejo de máquinas virtuales. Con sus herramientas de gestión integradas, los
administradores pueden disponer de un conjunto de herramientas para la gestión de recursos
virtuales y físicos.
39
Algunas características de Hyper-V son las siguientes:
• Migración rápida.- Tiene la funcionalidad de trasladar máquinas virtuales como archivos de
un equipo físico a otro sin la necesidad de interrumpir por un gran lapso de tiempo los
servicios.
• Alta disponibilidad.- Incluye soporte para conectividad de servidor a servidor y permite
organizar en cluster todas las máquinas virtuales que se ejecutan en un host.
• Manager y los clientes pueden habilitar este rol dentro de Server Manager. Respaldos en
vivo, con VSS. Además incorpora soporte para los Servicios de Copia de Volumen en
Segundo Plano que permiten realizar respaldos en vivo de las máquinas virtuales en
ejecución por medio de copias instantáneas de volumen.
• Administración de VM.- Facilita la importación o exportación de las configuraciones de
máquina virtual para hacer copia de seguridad y poder clonar las características de las MV
entre distintas máquinas host.
• Se pueden manejar otras plataformas para el manejo de máquinas virtuales, como es el
caso de Linux, para arquitecturas x86 y x84.
• Mejoras en el rendimiento.- Incluye distintas modificaciones para mejorar su rendimiento.
Todas las máquinas virtuales nuevas de Windows Server 2008 incluyen automáticamente
los componentes de integración.
• Mejoras del soporte para SCSI virtual.- Esta edición incluye soporte para un máximo de
cuatro controladoras SCSI virtuales por máquina virtual, permitiendo un soporte más
amplio de dispositivos de almacenamiento.
• Soporte para tamaños de memoria mayores. Puede direccionar hasta 64 GB de memoria
RAM por máquina virtual.
40
• Reinicio rápido.- Hyper-V da la opción de inicio rápido de checkboxes y eliminación de las
credenciales almacenadas que se hayan utilizado para conectarse a las máquinas
virtuales.
En la Tabla 2. 1 , se muestran las diferentes técnicas de virtualización y los tipos que se
pueden usar en cada una de ellas, es importante mencionar que algunos tipos de
virtualización tienen mejores características o funcionalidades que otros pero la desventaja es
el costo.
Tabla 2. 1 Resumen de tipos y técnicas de virtualización.
Técnicas de
Virtualización
Tipos de
Virtualización
Virtualización completa • Hyper-V
• Vmware ESX
• z/VM
• Adeos
• Parallels Server
Paravirtualización • XEN
• User Model Linux
• Denali
Virtualización a nivel S.O. • Linux-VServer
• Open VZ
• Virtuozzo
• Solaris Container
• Free BSD Jaiils
• Virtual PC
Emulación • Boch
• Qemu
• Virtual box
• Pear PC
• Hércules
41
2.6 Ventajas y desventajas de la virtualización
Las ventajas fundamentales las podríamos resumir en las siguientes:
Las máquinas virtuales se administran de manera independiente, debido a la partición de los
recursos del sistema de cómputo. Lo anterior facilita en gran parte el mantenimiento en los
sistemas informáticos y más en donde existe una cantidad considerable de servidores. El
choque entre aplicaciones es menor debido a que se encuentran en máquinas virtuales
diferentes.
La administración de la máquina anfitrión es muy sencilla y su estabilidad muy grande debido
a que únicamente se maneja el software que permite virtualizar el equipo que es algo parecido
al S.O. y su aplicación, ninguna otra.
La ampliación de hardware de una MV es inmediata, siempre y cuando haya recursos reales
suficientes disponibles, ampliar la memoria es tan sencillo como un apagado ordenado de la
MV, cambiar su configuración y posteriormente iniciarla. Lo mismo sucede con los discos
virtuales por ejemplo.
El hardware de las máquinas virtuales es independiente del hardware real. Esto significa que
podemos incrementar la capacidad del servidor físico o se decide cambiarlo, solo se tienen
que copiar las máquinas virtuales, pasarlas a otro servidor e iniciarlas, debido a que se
manejan como archivos. No es necesario reinstalar ninguna de las máquinas virtuales, a pesar
de que se realice una migración masiva de hardware. A demás las máquinas virtuales se
pueden pasar de forma continua de un equipo a otro sin afectar el trabajo diario.
En las Tablas 2.2 y 2.3, se muestran las ventajas y desventajas de los sistemas de
virtualización, en este caso se expone el tipo de virtualización VMware, debido que es el más
completo actualmente dentro del grupo de virtualizadores utilizados por las empresas. Josep
Ros [28], muestra en su artículo denominado “Virtualización Corporativa con VMware”, la
información que se muestra a continuación:
42
Tabla 2. 2 Ventajas al utilizar la virtualización.
Ventajas Descripción
1. Ahorro energético.
Hoy que están tan en boga, por desgracia, los problemas medioambientales, hay que comentar que, efectivamente, en entornos virtualizados se ahorra considerablemente en energía en las CPD. Se llegan a consolidar un número muy importante de servidores que dejan de consumir energía. Se pueden consolidar, asimismo, el número/volumen de SAIS necesarios. Además la última versión de VI 3.5 incorpora DPM que es una tecnología de ahorro que permite realizar VMotion de todas las VM de un host que esté con poca carga y dejarlo en stand-by con gasto cero de energía. Esta funcionalidad aún no está en producción, pero promete.
2. Ahorro de espacio.
En entornos con poco espacio en el CPD, edificios históricos que no se pueden ampliar y otras circunstancias similares en las que cada vez se piden más y más servicios pero el espacio es muy limitado, se pueden sustituir los grandes servidores antiguos que ocupan muchas U de nuestros racks por pequeños sistemas con 1 ó 2 U con mucha más potencia.
3. Ahorro de adquisición y mantenimiento de servidores.
Bien planificada, una virtualización, a la larga, significa un importante ahorro económico en la adquisición de servidores. Del mismo, modo simplifica el escenario de mantenimiento, al reducir el número de servidores críticos en la empresa. Al aprovecharse mucho más la capacidad hardware de los equipos, podemos tener un rápido despliegue de pilotos y VM de prueba sin desembolso económico en hardware.
4. Facilidad de gestión.
Al disponer de un sistema Virtual Center, podemos simplificar enormemente la facilidad de manejo del entorno. Desde un sólo punto de administración podemos ver el estado de todos los servidores físicos y virtuales y ver de modo inmediato las alertas y advertencias sobre problemáticas existentes.
5. Transportabilidad
Rápidamente podemos llevar una VM de un Host a otro. Ya sea (idealmente) a través de VMotion, DRS o HA o bien manualmente. Es importante que procuremos que la inmensa mayoría de nuestras VM sean transportables directamente sin manipulación alguna y, en caso contrario, documentarlo claramente.
6. Rápida recuperación del entorno.
Importantísimo. Donde en un escenario físico podríamos tardar días o semanas en recuperar completamente el escenario, en un entorno virtual es cuestión de minutos/horas.
7. Reconocimiento de los diferentes mundos.
Podemos tener virtualizados y en producción, sistemas Windows, Linux, Novell, Solaris, BSD... La misma realidad física que tenemos en entornos no virtualizados, sin demasiadas exclusiones (AS/400, Apple sobre PPC...)
8. VDI
Se abre, en la actualidad, un nuevo escenario de posibilidades en el que algunas empresas están empezando a virtualizar los escritorios de los usuarios. Esta tecnología se denomina, genéricamente, Virtual Desktop Infrastructure y permite que un usuario realice una conexión local o remota a su escritorio que no es una sesión de Terminal Server o Citrix Metaframe, sino una VM completa que sustituye a su equipo de sobremesa. Éste, a su vez, se ve reemplazado por un simple Thin Client.
9. Entornos de Desarrollo, Integración y Producción efectivos.
La teoría de tener diferentes entornos de Producción, Desarrollo e Integración, en la práctica es muy difícil de llevar a cabo. Por ejemplo en una empresa en la que exista un sistema MSCS con SQL Server difícilmente existirá otro sistema físico de Integración o Desarrollo, realizándose las pruebas directamente en el sistema en producción. La virtualización permite tener los tres escenarios perfectamente separados.
43
Tabla 2. 3 Desventajas al utilizar la virtualización.
Inconvenientes Descripción 1. Ventana de mantenimiento reducida.
Precisamente lo que es una ventaja puede transformarse en un inconveniente. En un servidor en producción virtualizado hay muchas VM viviendo y apagar ese host puede convertirse en una tarea muy simple: hacer VMotion y apagarlo o una tarea compleja, si no disponemos de VMotion nos costará mucho encontrar el momento en que podamos dejar que todas esas VM dejen de dar servicio.
2. Gran requisito de espacio. El trabajar con VM implica, necesariamente, hacer un replanteamiento en cuanto al almacenamiento. Nuestras VM tendrán un ciclo de vida muy complicado en un entorno con poco espacio de disco. Habrá que hacer copias de seguridad, pruebas, etc. y todo ello significa planificar correctamente el almacenamiento. Evidentemente hay que disponer de espacio sobredimensionado en las cabinas de disco, pero no olvidemos disponer de NAS de bajo coste para las copias de seguridad y las pruebas.
3. Requisito de orden estricto. El orden en el trabajo de un informático de sistemas debería ser una condición sine-qua-non. Sin embargo, sucede en muchas ocasiones que el día a día evita que podamos tener el despacho ordenado. Es habitual observar mesas de informáticos repletas de manuales y documentos sobre los que se almacenan tarjetas, discos duros, CD y así podríamos seguir la pirámide. La virtualización nos obliga a ser extremadamente ordenados en el inventario de los Host y las VM.
4. Hay sistemas no virtualizables o que no tienen soporte del fabricante en entornos virtualizados.
Equipos que tienen un alto consumo de CPU (un Oracle que funciona en un host con 8 CPU físicas y echa humo), los grandes sistemas AS/400, sistemas no compatibles o, mejor dicho, no soportados por VMware como Apple. En estos casos es mucho mejor mantenerse al margen y excluir de nuestro entorno virtual estos equipos. Hace unos meses SAP certificó su instalación en un entorno VI3. Sin embargo, si por nuestra cuenta y riesgo virtualizamos un sistema de este tipo podemos tener problemas de no recibir soporte por parte del fabricante. Aunque siempre podemos hacer un V2P, recordémoslo.
5. Formación necesaria. Aparentemente la virtualización es muy simple pero si se implementa sin una buena base formativa puede dar quebraderos de cabeza. Se recomienda tener bien consolidados los conocimientos sobre los sistemas de virtualización que vayamos a implementar.
6. Desconfianza inicial Hay que virtualizar pero con responsabilidad. Es lógico que los clientes sientan un primer rechazo a entornos virtualizados que prometen la panacea: menos consumo, menos servidores... ¿dónde está la pega? Es importante también que los técnicos e ingenieros que vayan a llevar el mantenimiento del sistema hagan suyo el concepto de Virtualización. En algunos escenarios no se implementa la virtualización simplemente porque el responsable de sistemas de turno se opone directamente al proyecto. Puede ser perjudicial seguir incidiendo en la virtualización en este escenario.
44
Capítulo 3: Bases de datos empresariales
3.1 Evolución
Desde el principio de la civilización se ha tenido la necesidad de organizar y almacenar
grandes cantidades de información para después recuperarla en forma eficaz. Dos métodos
antiguos de organización de datos son:
• Los pergaminos: los datos se escribían en una larga hoja de papel que se podía enrollar. La
desventaja evidente es que los datos que aparecen al final del rollo no pueden
recuperarse a menos que se desenrolle todo el pliego. Sin embargo era un método de
archivo compacto para grandes cantidades de datos. El almacenamiento secuencial de
datos computarizados en cinta magnética es semejante al del pergamino.
• Los libros encuadernados: la rapidez de acceso puede mejorarse si el rollo se divide en
páginas y luego estas se encuadernan formando así un libro. Esta innovación permite un
rápido acceso a los datos almacenados en cada página. Los datos en cada página se
buscan entonces secuencialmente. Este modo de acceso es semejante al acceso aleatorio
de un archivo secuencial indexado.
Las bases de datos surgen en los años 60 con la necesidad de manejar una gran cantidad de
información, anterior a esta tecnología se utilizaban los sistemas de archivos mejor conocidos
como filesystem los cuales permitían controlar la información de maneta básica.
La empresa IBM desarrollo el sistema IMS10, anteriormente conocido como GAM11
,
posteriormente a mediados de los sesenta surge el sistema surge IDS creado por la empresa
General Electric conocido como sistema de red y se desarrollo para representar relaciones de
datos en un nivel más complejo que los métodos anteriormente mencionados asimismo sirvió
de plataforma para la estandarización de las bases de datos.
10 Acrónimo de Information Management System ó Sistema del Manejo de la Información
11 Acrónimo de Generality Update Access Método ó Método de Acceso a Actualizaciones Generalizado
45
El grupo encargado de establecer la especificaciones de base de datos fue DBTG12
Uno de los primeros sistemas que se desarrollo para probar la funcionalidad del modelo
relacional fue system R de IBM lo que provoco la evolución de dos grandes desarrollos el
primero SQL lenguaje de consulta estructurado que se ha convertido en un lenguaje estándar
para los diferentes niveles empresariales orientado a sistemas relacionales. El otro esquema
fue en los años 80 con la producción de sistemas relacionales como DB2 y SQL/DS producidos
por IBM. Además una de las más importantes en la actualidad y de gran calidad como lo es
Oracle Corporation.
la cual
estuvo en operación alrededor de seis años, sin embargo se tomo en cuenta por el instituto
americano de estandarización nacional (ANSI, American National Standards Institute).
En la actualidad existen múltiples sistemas relacionales para uso personal, empresarial entre
las que se destacan, Informix y Sybase Inc. Una de las fallas del sistema relacional es el límite
de capacidad al modelar los datos, se ha tratado de mejorar a través del tiempo. La técnica
más utilizada en el diseño de base de datos es el modelo de entidad relación creada en 1976.
Dos de los sistemas que actualmente se han desarrollado debido a la necesidad de la
creciente complejidad de las aplicaciones que requieren base de datos son:
• El modelo de datos orientado a objetos
• EL modelo relacional extendido
Se puede decir que esta evolución es la tercera generación de los SGBD, como se muestra en
la tabla 3.1.
12 Acrónimo de Data Base Task Group
46
Tabla 3. 1. Características de las diferentes etapas de bases de datos.
Década Características de los archivos Dispositivo de almacenamiento
50 Secuenciales Tarjetas perforadas
60 Modo secuencial simple Cinta magnética
65-70 Modo secuencial y acceso directo Tambor magnético
70-80 Primeras Bases de Datos direccionales Disco magnético compartido
80-90 Auge de las Bases de Datos Disco magnético compartido
90 Bases de Datos en red, compartidas o globalizadas
Informix, Fox, SQL, Access, Oracle.
3.2 Definición
Base de datos en el mundo de la informática es uno de los términos más populares debido al
manejo de aplicaciones que requieren el uso adecuado de la información. El término de base
de datos se refiere a un conjunto de datos pertenecientes a un mismo contexto y almacenados
sistemáticamente para su consulta en el momento requerido. Un ejemplo muy claro es una
biblioteca, en donde se encuentra libros catalogados de forma ordenada y por diferentes
temas, identificando fácilmente la posición de un libro mediante una ficha de referencia
logrando consultar la información requerida.
Esta tecnología permite solucionar problemáticas de administración de datos en aplicaciones
usuales para la gestión de empresas e instituciones públicas, así como en ambientes
científicos para almacenar la información experimental.
3.3 Aplicaciones de los sistemas de base de datos.
Las bases de datos se usan ampliamente en los sistemas empresariales, educativos y
científicos. Algunos de sus aplicaciones representativas son:
47
• Transacciones de tarjetas de crédito
• Telecomunicaciones
• Finanzas
• Ventas
• Universidades
• Control de personal
• Líneas áreas
• Recursos humanos
Esto permite que en la vida diaria todas las personas sin darse cuenta estén relacionadas con
el uso de las aplicaciones antes mencionadas. Sin embargo se debe tomar en cuenta puntos
importantes en el manejo de esta tecnología de cuales destaca la redundancia, el acceso, la
seguridad y la integridad.
3.4 Tipos de base de datos
Los diferentes de tipos de base de datos dependen de la identificación de la estructura de una
organización e identificación de procesos y que se clasifican de la siguiente manera:
3.4.1 Bases de datos estáticas
Este esquema estático solo es de lectura y se utiliza con la finalidad de utilizar datos que han
sido almacenados a través del tiempo, lo cual facilita el análisis de datos, generando reportes
e indicadores para la toma de decisiones.
3.4.2 Bases de datos dinámicas
En este caso la información almacenada es modifica periódicamente, permitiendo actualizar
borrar y añadir datos que se encuentran dentro de la estructura, lógicamente permitiendo la
consulta de la información. Este esquema lo podemos encontrar en sistemas de existencias.
3.5 Modelos de base de datos
Las bases de datos pueden clasificarse de varias maneras, de acuerdo al criterio elegido para
su clasificación:
48
3.5.1 Base de datos relacionales
Se basan en un modelo relacional y usan un conjunto de tablas para representar los datos y la
relación entre ellos, la mayor parte de los sistema de base de datos relacionales emplean el
lenguaje SQL sobre todos empresas comerciales.
Estas relaciones se consideran de forma lógica como conjunto de datos llamados tuplas, en
donde cada tabla está compuesta por registros, es decir las filas de una tabla que representan
las tuplas y los campos que son representados por columnas de una tabla. Esto facilita el
entendimiento y el uso de la información consultada por un usuario. Dicha información puede
ser recuperada o almacenada mediante consultas que ofrecen flexibilidad para el manejo de
la información.
3.5.2 Bases de datos jerárquicas
La utilización de la información en este modelo es representada mediante un esquema que
hace referencia a un árbol, en donde un nodo maestro de información puede tener varios
subconjuntos, el nodo inicial es llamado raíz y a los nodos que no tienen subconjuntos se les
conoce como hojas. Estas bases son especialmente útiles para entornos en donde se maneja
una gran cantidad de información permitiendo crear estructuras estables y de gran
rendimiento. Su desventaja principal consiste el bajo nivel de disponibilidad de información.
3.5.3 Base de datos de red
Este modelo es conocido como nodo, a diferencia de un modelo jerárquico permite que un
mismo nodo tenga varias conexiones superiores y ofrece una alta disponibilidad de
información, sin embargo existe un grado de dificultad al administrar los datos lo que produce
seguridad eficiente en los sistemas.
3.5.4 Bases de datos multidimensionales
Su esquema se utiliza en aplicaciones bien definidas ya que permite la creación de Cubos
conocido como procesamiento analítico en línea, agilizando la consulta en grandes cantidades
de datos de manera multidimensional, lo cual permite manjar una tabla de una base de datos
relacional sin complicación.
49
3.5.5 Bases de datos orientadas a objetos
Las bases de datos orientadas a objetos ofrecen un medio de migración cómoda para los
usuarios que administran las bases de datos relacionales que deseen utilizar características
orientadas a objetos. Este tipo de almacenamiento incorpora conceptos de encapsulación,
herencia y polimorfismo. Esto es, definiendo operaciones sobre datos e implementando
operaciones sin afectar la interfaz del sistema, así el usuario puedan operar sobre datos a
través de argumentos mostrando una independencia entre programas y operaciones.
3.5.6 Bases de datos documentales
Las bases de datos documentales permiten la búsqueda de información por medio de
indicadores que facilitan obtener un documento completo obteniendo búsquedas específicas y
avanzadas.
3.5.7 Bases de datos deductivas
También conocidas como bases de datos lógicas se rigen mediante reglas que son
almacenadas para la búsqueda de datos deductivos.
3.5.8 Gestión de bases de datos distribuida
Tiene como funcionalidad conectar bases de datos en diferentes puntos a través de una red
de cómputo y con la capacidad de acceder a ellas.
3.6 Lenguaje estructurado de consulta (SQL)
El lenguaje estructurado de consulta por sus siglas en ingles SQL (Structured Query Language)
es el lenguaje de consultas distribuido comercial mente que tiene mayor influencia en el
mercado. SQL utiliza una combinación de álgebra relacional y de cálculo relacional.
Aunque se haga referencia a SQL como lenguaje de consultas, realiza transacciones en una
base de datos, Actualmente se puede tomar como un estándar para las operaciones que
realiza un manejador de base de datos. Mediante consultas SQL es posible diseñar una
estructura completa de base de datos, como es creación, modificación ó borrado de tablas,
tipos de datos de los campos y especificar restricciones de seguridad y lógica de negocio.
50
Las sentencias SQL se dividen en dos estructuras principales:
Actualización.- Modifica, elimina o inserta datos en una tabla de la base de datos.
Consulta.- Obtiene un conjunto de registro de la base de datos
Es un lenguaje declarativo de "alto nivel" o "de no procedimiento", esto es debido a su fuerte
base teórica y orientación al manejo de conjuntos de registros, y no a registros individuales,
permite una alta productividad en codificación y la orientación a objetos. Es común en los
lenguajes de acceso a bases de datos de alto nivel, el SQL es un lenguaje declarativo.
3.7 Manejadores de base de datos comerciales
Un sistema manejador de base de datos consiste en una colección de datos interrelacionados
y un conjunto de programas para acceder a dichos datos. La colección de datos que
normalmente es denominada base de datos; Contiene información relevante para una
empresa, teniendo como objetivo principal de un sistema manejador de base de datos es
proporcionar una forma de almacenar y recuperar la información de una base de datos de
manera práctica y eficiente.
Actualmente en el mercado existen diversas herramientas que se utilizan para gestionar los
datos de una organización para el apoyo de la administración de información y la realización
de indicadores para la toma de decisiones. Donde a continuación se hace referencias de
algunos sistemas manejadores de datos.
3.7.1 Oracle Corporation: Oracle
Oracle es la primera base de datos diseñada en la tecnología Grid Computing fabricada por
Oracle Corporation, es una poderosa herramienta cliente/servidor para la gestión de base de
datos. Este sistema es utilizado por grandes empresas multinacionales a nivel mundial, una
de sus grandes desventajas es que tiene un costo elevado por la forma en que manipula la
información, por lo que diferentes empresas eligen utilizar bases de datos de menor costo o de
uso libre como por ejemplo; Access, MySQL, SQL Server, PstgreSQL, etc.
Este sistema admite características de las bases de datos orientadas a objeto, cuando se
instala en un servidor, Oracle está constituido por una base de datos y una instancia. La base
51
de datos es el “lugar” donde se almacenan los datos, mientras que la instancia constituye el
“mecanismo” que permite su manipulación.
Esta tecnología cuenta con características que han sido diseñadas para que las
organizaciones puedan controlar y manejar grandes volúmenes de contenidos no
estructurados en un solo repositorio con el objeto de reducir costos y riesgos asociados a la
perdida de información.
La herramienta se compone de una estructura física y una estructura lógica, es decir, los datos
son almacenados dentro de estructuras físicas, y se acceden por medio de estructuras lógicas,
debido a esta separación se pueden realizar modificaciones en la estructura física sin que
afecte a las estructuras lógicas de la base de datos.
La estructura lógica está compuesta por uno o más espacios de tabla y un conjunto de objetos
de esquema que pueden ser: tablas, vistas, índices, cluster, procedimientos.
Otra desventaja de Oracle además de su elevado costo es que no se puede instalar fácilmente,
tiene manuales que indican el procedimiento de instalación pero aún así resulta bastante
complicado, sin embargo la potencia para el manejo de información hace que las desventajas
sean mínimas.
3.7.2 Sun Microsystems: MySQL
MySQL es una herramienta de libre uso que en ámbito de la computación se conoce como
Open Source, por tal razón son varias las empresas que eligen el uso de esta tecnología para
manipular su información ya que no requieren de gran potencia, además que ofrece un
ambiente de seguridad.
La documentación pública y privada sobre el DBMS (DataBase Management System) es
amplia y existe soporte para el producto. Cumple con importantes estándares predefinidos
para su eficiencia y estabilidad.
Un procedimiento almacenado es un conjunto de instrucciones SQL que pueden ser
compiladas y almacenadas en el lado del servidor y posteriormente invocadas según sea
necesario. El manejo de llaves foráneas es limitado, esto ocasiona que el diseño de las BD sea
52
más fino debido a la restricción. Existen versiones para diversas plataformas y sistemas
operativos como Windows, Linux, Mac OS y varias versiones de UNIX.
3.7.3 Microsoft SQL Server
Es la herramienta de Microsoft para gestionar bases de datos empresariales, la cual tiene una
estructura arquitectura orientada a las bases de datos relacionales. Este gestor de base de
datos proporciona servicios de réplica con otros sistemas de base de datos. Contiene un
módulo para servicio de inteligencia de negocio e incluye servicios de procesamiento analítico
en línea (OLAP), además cuenta con un motor de minería de datos.
SQL proporciona un conjunto de herramientas para administrar todos los aspectos del
desarrollo, consulta, ajuste, prueba y administración de un servidor de base de datos.
53
Capítulo 4: Desarrollo de la metodología
4.1 Plan de trabajo
Para la implementación del proyecto, es necesario crear un plan de trabajo en donde se
identifiquen las necesidades que involucren el lugar donde se realizarán las pruebas
correspondientes y el prototipo final, los equipos de cómputo (hardware) y programas
(software) que serán utilizados, tomando en cuenta las facilidades para la disposición de los
recursos y sus características.
En la Tabla 4.1., se muestran las actividades que se tienen que realizar para la realización del
prototipo, como se puede observar a simple vista, dichas actividades están divididas en tres
fases en donde se involucra el análisis en la fase I, diseño en la fase II e implementación en la
fase III.
Tabla 4. 1 Actividades necesarias para realizar el proyecto.
No. Actividad Fase I Fase II Fase III
1 Ubicar lugar de trabajo xxxx
2 Obtener equipos de cómputo (servidores) xxxx xxxx
3 Seleccionar y obtener software de virtualización xxxx
4 Seleccionar y obtener software de base de datos xxxx
5 Seleccionar y obtener sistema de almacenamiento xxxx
6 Seleccionar y obtener aplicación xxxx
7 Montar y configurar el entorno de virtualización xxxx
8 Crear Máquinas Virtuales (Nodos) xxxx
9 Instalar S.O. en cada una de las MV xxxx
10 Configuración de red (pública, privada y virtual) xxxx
11 Instalación y configuración de almacenamiento compartido xxxx
12 Instalación de Cluster xxxx
13 Instalación de Base de Datos xxxx
14 Pruebas xxxx
54
En la Tabla 4. 2, se proponen las fechas en las que se tienen que realizar las fases del
proyecto. Es importante mencionar, que el tiempo puede variar de acuerdo a la disponibilidad
de los recursos para la lograr la implementación del prototipo, por esta razón se asigna a cada
fase un tiempo bastante considerable.
Tabla 4. 2 Fechas estimadas para la realización de las fases.
Fases Fechas del 2009
I Enero - Marzo
II Abril - Julio
III Agosto - Octubre
4.2 Recursos a utilizar
Se pedirá permiso para el uso de los recursos, tomando en cuenta las funciones que se hacen
en el Centro se tendrá mayor interacción con los equipos y aplicaciones. Una vez obtenido el
permiso, el siguiente paso es evaluar los servidores ofrecidos cordialmente por el CENAC en
donde se instalarán las aplicaciones de virtualización y manejo de almacenamiento
compartido, los equipos proporcionados tienen las características que muestra la Tabla 4.3:
Tabla 4. 3 Evaluación de los equipos de cómputo necesarios para la implementación del proyecto.
No. Equipo Marca y
modelo Características técnicas Propósito
1 Servidor Armado - Disco duro: 4 de 200 GB - Memoria RAM: 6 de 2 GB - Procesador: 2 Intel Xeon de doble núcleo
Servidor de virtualización y almacenamiento.
2 Estación de
trabajo Dell Optiplex
- Disco duro: 200 GB - Memoria RAM: 2 de 2GB - Procesador: Intel Core 2 duo
Servidor para el manejo de almacenamiento.
3,4 y 5 PC 1, PC 2,
PC 3 Acer
- Disco duro: 200 GB - Memoria RAM: 2 de 2 GB - Procesador: AMD de doble núcleo
Máquinas de administración remota de nodos y monitoreo de transacciones.
6 Portátil HP Pavillion dv
2125LA
- Disco duro:120 GB - Memoria RAM: 2 GB - Procesador: Intel Core Duo Monitoreo.
55
Por otro lado se tiene que decidir que software se va a utilizar y el equipo al que será asignado
para el desarrollo del prototipo.
En primera instancia se propone utilizar el tipo de virtualizador Hyper-V ya que lo incluye el S.O.
Windows Server 2008 Data Center Edition de Microsoft para 64 bits, haciendo uso de una
licencia temporal del propio instituto. La razón de la elección de este tipo de virtualizador, se
debe a que no es necesario invertir en una licencia que tiene un costo considerable en el
mercado, en el caso de que no se pudiera contar con la disponibilidad de la licencia, se
buscará la forma de solicitar los recursos para la inversión de una licencia de VMware ESX
Server.
Una vez que se tenga instalado el S.O. en el servidor, se realizarán las máquinas virtuales que
servirán como nodos para el cluster de la base de datos, a estas MV se les instalará Windows
2003 Server Enterprice Edition ya que contiene las características adecuadas para el manejo
de almacenamiento, información y comunicación entre nodos.
Para la comunicación entre nodos y los equipos físicos es necesario solicitar por lo menos diez
direcciones de red del segmento correspondiente al CENAC. Una vez obtenidas se realizará la
configuración de las direcciones públicas que en este caso serán las asignadas, las privadas
que serán las que se comuniquen con otros equipos internos al esquema del proyecto y
finalmente la configuración de las tarjetas de red virtuales.
Una vez que se tengan listas las MV y se comuniquen satisfactoriamente entre ellas, es
necesario que se cuente con un servidor que manipule el almacenamiento entre nodos, para
lo anterior se propone utilizar un S.O. llamado Openfiler [25], la razón por la cual se eligió el
uso de este software, fue porque es de uso libre licenciado bajo la GNU (General Public
Lincence), es configurado vía web a través de una interfaz gráfica amigable.
El siguiente paso es la configuración de los volúmenes de almacenamiento por medio de una
aplicación propia del sistema operativo utilizado en los 4 nodos, iSCSI initiator. Posteriormente
se realizarán las pruebas correspondientes para que todos las MV puedan observar la misma
cantidad de almacenamiento y sea compartida entre todos.
La alta disponibilidad se manejará con la herramienta propia de Oracle llamada Clusterware,
esta tecnología permite asignar el funcionamiento a un nodo automáticamente, en caso de
que falle el principal, suponiendo que en alguna ocasión fallarán 3 nodos, el cambio se
56
realizaría automáticamente hasta el cuarto nodo y todo seguirá funcionando sin ningún
problema, logrando disponer de toda la información, de esta forma podemos decir que nuestro
sistema tiene un alto grado de disponibilidad de datos.
En último lugar se instala el manejador de Base de Datos, Oracle 10g es la propuesta para
realizar este proyecto, ya que cuenta con características adecuadas para manipular la
información de forma rápida, precisa y oportuna, además se cuenta con licencia institucional,
lo que permite comprobar las grandes ventajas del software.
Finalmente se realizarán pruebas de estrés con un programa llamado Swing Bench, que
permite simular el acceso a la base de datos a través de las máquinas virtuales, logrando
observar la capacidad que tienen para soportar la carga de transacciones por minuto y de
peticiones hacia la base de datos realizada por los usuarios.
En la Tabla 4. 4, se muestra la relación del software que será utilizado y el equipo que se va a
utilizar para cada programa.
Tabla 4. 4 Software asignado para equipos de cómputo.
Software Equipo Actividades
Windows Server 2008 (Hyper-V) 1 Instalación y configuración
Windows Server 2003 Máquinas Virtuales Instalación
Openfiler 2 Instalación y configuración
iSCSI initiator Máquinas Virtuales Instalación
Clusterware Máquinas Virtuales Instalación y configuración
Manejador de Base de Datos Oracle 10 g Máquinas Virtuales Instalación y configuración
Swing Bench Máquinas Virtuales Instalación y configuración
4.3 Arquitectura propuesta
A continuación se muestra el diagrama de conexión de red y los componentes involucrados en
el esquema de virtualización, para el manejo de base de datos a través del almacenamiento
compartido. Actualmente, el IPN tiene asignada una red de comunicaciones que permite la
interconexión de todos los equipos que se encuentran dentro del instituto, logrando tener el
acceso controlado a Internet a través de un firewall. El segmento de red asignada al CENAC, es
57
el 148.204.14.0 con una máscara de subred de 24bits, de donde cada uno de los equipos
participantes como computadoras de administración, equipos portátiles, máquinas virtuales y
servidores tomarán direcciones IP permitiendo la comunicación entre ellos. Para lo anterior, se
tomó un rango seleccionado teniendo la debida precaución de no afectar otro servicio de red
que se encuentre dentro del segmento, como por ejemplo la máquina de un usuario u otro
servidor en producción. Para el presente trabajo, se apartaron en total veinte direcciones de
red y fueron asignadas tal y como se muestra en la Figura 4. 1 .
El servidor de virtualización en donde se tiene Hyper-V de Microsoft, contiene los cuatro nodos
o máquinas virtuales y es en donde se realiza la configuración de las tarjetas de red a través
del virtualizador para cada MV. Cada uno de los nodos cuenta con dos tarjetas virtuales y tres
direcciones de red, una para la comunicación del servidor de virtualización y las máquinas de
administración a través del escritorio remoto utilizando el segmento catorce. Otra dirección es
utilizada para la comunicación del servidor de almacenamiento con las máquinas virtuales
tomando como referencia la red 192.168.21.0 debido a la integridad de la información
manipulada por la base de datos. Por último se necesita otra dirección por nodo para que el
almacenamiento se detecte como uno solo logrando tener alta disponibilidad en el caso que
exista un problema y se elimine uno, dos y hasta tres nodos. La información que se encuentra
alojada en la base, estará disponible siempre y cuando se encuentre un nodo trabajando,
tomando en cuenta la carga y el número de peticiones que se reanalice por parte de los
usuarios.
La velocidad de comunicación a través de la red es muy importante, ya que de esto depende
que la carga sea distribuida correctamente hacia los nodos virtuales y estos a su vez al
servidor de almacenamiento. La velocidad de comunicación debe de ser en todos los casos
por lo menos 10/100/1000 Mbps, de lo contrario se crean cuellos de botella que disminuyen
la velocidad de interacción del usuario final y los datos solicitados.
Por otro lado existe un balanceo de cargas hacia los nodos virtuales, cuando un usuario, en
este caso PC1, PC2 o PC3, realizan peticiones hacia la base de datos, el elemento que hace la
gestión para distribuir la carga a través de los nodos virtuales y pasando por los elementos de
red involucrados, es el servidor de virtualización, que de cierta manera sirve como un
balanceador de cargas y al mismo tiempo tiene la función de un Ruteador de comunicaciones,
logrando la interconexión de dos redes totalmente diferentes, que en este caso son el
segmento 148.204.14.0 y la 192.168.21.0.
58
El servidor de almacenamiento contiene como S.O. un derivado de Linux, llamado Openfiler,
este programa, sustituye la parte física de almacenamiento en donde comúnmente se tiene
una granja de servidores para la distribución adecuada de la información, además de una
serie de dispositivos que son necesarios para su conexión como por ejemplo; switches, cables
de datos, Fibra Óptica, software de administración de almacenamiento, controladoras y por
supuesto una gran cantidad de discos duros para sistemas de almacenamiento como DAS,
NAS y SAN que son necesarias para las empresas. Este equipo contiene toda la información
que se maneja, y será controlada por la base de datos instalada en los nodos virtuales, de esta
forma cuando el usuario necesite un dato, este será obtenido del sistema de almacenamiento.
En resumen, la acción que se realiza en un ambiente de producción, es que los usuarios hagan
peticiones hacia la base y obtengan el resultado lo más pronto posible, sin embargo el proceso
que tiene que seguir la petición realizada, es pasar por la red hasta llegar al servidor de
virtualización y la reparte entre los cuatro nodos dependiendo de la carga que tenga cada uno
de ellos, posteriormente la base de datos tiene la tarea de buscar e identificar dinámicamente
la solicitud realizada por el usuario, en donde la información se encuentra alojada en el
servidor de almacenamiento, una vez que es encontrada dicha información, la base hace la
gestión para proporcionar el resultado al usuario, regresando la información hasta el punto
donde fue anteriormente requerida.
En el esquema se puede apreciar que realmente no se necesita de una gran cantidad de
dispositivos para implementar el manejo una base de datos con alta disponibilidad, de esta
manera se puede decir que el ahorro es considerable comparado con un sistema físico, sin
embargo el rendimiento es menor, considerando el número de condiciones por minuto.
59
Figura 4. 1 Arquitectura de red del sistema de virtualización
60
4.4 Implementación
4.4.1 Instalación y configuración del virtualizador
Una vez identificados los equipos a utilizar, se toma la máquina que manipulará la tecnología
de virtualización y requiere de los siguientes puntos:
• Un procesador de 64 bits. Hyper-V está disponible en las versiones x64 de Windows
Server 2008, las versiones x64 de Windows Server 2008 Standard, Windows Server 2008
Enterprise y Windows Server 2008 Datacenter, este último permite crear una cantidad
mayor de MV’s, por tal razón es utilizado para el desarrollo del trabajo.
• Virtualización asistida por hardware. Está disponible en procesadores que incluyen una
opción de virtualización; concretamente, Intel VT o AMD Virtualization (AMD-V).
• La protección de ejecución de datos DEP13
de hardware debe estar disponible y habilitada.
Concretamente, se tiene que habilitar el bit XD de Intel (bit ejecutar deshabilitado) o el bit
NX de AMD (bit no ejecutar).
Prácticamente, el primer paso que se realizó para el desarrollo del proyecto fue la instalación y
configuración del S.O. Windows Server 2008 Datacenter Edition para 64 bits en el Servidor 1.
Esta versión permite crear una mayor cantidad de máquinas virtuales a comparación con otras
versiones como Windows Server 2008 Enterprise Edition.
Es necesario considerar que la configuración de la virtualización asistida por hardware y la
protección de ejecución de datos están disponibles en el BIOS. No obstante, los nombres de
las opciones de configuración pueden diferir con respecto a los indicados anteriormente. Para
obtener más información acerca de si un modelo de procesador concreto admite Hyper-V, se
tendrá que consultar al fabricante del equipo.
Si se modifica la configuración de la virtualización asistida por hardware o la protección de
ejecución de datos de hardware, es probable que se tenga que desconectar el equipo y volver
13 Acrónimo de Data Execution Prevention o Protección de Ejecución de Datos, es una propiedad del microprocesador para la seguridad
en el manejo de sistemas operativos.
61
a encenderlo. Si sólo se reinicia el equipo, es posible que los cambios realizados en las
opciones de configuración no surtan efecto.
Para la puesta en marcha de Windows Server 2008 Hyper-V, debe realizar antes una
instalación limpia (completa) de Windows Server 2008 Datacenter.
En el Anexo A de este trabajo, se describe cómo se configura Hyper-V en una instalación
completa de Windows Server 2008. Se describe también cómo se instala la consola MMC14
4.4.2 Creación de MV
del Hyper-V Manager que permite administrar el entorno Windows Server 2008 Hyper-V desde
un sistema remoto. Es necesario mencionar que la instalación del S.O. y la configuración de
Hyper-V, no presentaron mayor problema a la hora de ejecutar los pasos mostrados en el
Anexo 1.
En la Figura 4. 2, se muestra la consola de administración de máquinas virtuales, en el panel
izquierdo se pueden observar todos los servidores que ejecuten Hyper-V, desde ellos se
pueden gestionar las máquinas virtuales y crear e importar máquinas virtuales. En este caso
crearemos una máquina virtual con Windows 2003 Server, seleccionando con clic derecho el
servidor de virtualización proporcionado por Hyper-V. Posteriormente seleccionamos New y
Virtual Machine.
Figura 4. 2 Consola de administración de Hyper-V.
14 Acronimo de Microsoft Management Console o Consola de Manejo de Microsoft, hospeda y muestra herramientas administrativas
creadas por Microsoft y por otros proveedores de software.
62
Automáticamente se abre una ventana de configuración y se ingresan los datos solicitados
como por ejemplo: el nombre de la MV, que será el nombre que se verá desde la consola de
administración, normalmente se pone el mismo nombre que tendrá la MV (o el nombre de una
plantilla), para el proyecto necesitamos crear 4 máquinas virtuales que se nombraron de la
siguiente forma: nodo1, nodo2, nodo3 y nodo4 respectivamente. La razón de que sean 4
nodos es por un esquema de alta disponibilidad en donde todos los nodos verán un espacio de
almacenamiento y la información manejada centralizada.
En esta parte de la instalación se realizará la configuración de los recursos del servidor para
las máquinas virtuales, se asignará la capacidad de disco duro, tarjetas de red,
almacenamiento, unidades de entrada salida, etc.
También se muestra la ruta en donde guardan archivos de la máquina virtual, que por defecto
será: "C:\ProgramData\Microsoft\Windows\Hyper-V", seleccionar "Siguiente".
El siguiente paso es asignar la memoria RAM que queremos que tenga está máquina virtual,
en este caso, cada una de las máquinas tendrá 2GB de memoria RAM, para que pueda
soportar el trabajo de consulta y las aplicaciones instaladas, seleccionar siguiente.
La siguiente ventana requiere la especificación del tipo de conexión que se aplicarán a las
tarjetas virtuales de red que se quiere manejar para las máquinas virtuales, en donde existen
dos tipos: pública y privada, en este caso seleccionar la red Pública, para que se conecte a la
red física, y seleccionar siguiente.
Ahora se define el almacenamiento, para esto seleccionar crear un disco duro virtual o uno ya
creado previamente, en este c aso se toma uno existente que ya contiene el S.O. instalado de
20Gb, finalmente seleccionar siguiente.
En las opciones de instalación, se puede seleccionar si se instalará un sistema operativo más
adelante o una vez creada la MV. Las unidades de entrada-salida como el CD/DVD de
instalación, si en la unidad física del servidor o si lo tenemos en una imagen con extensión .iso,
podemos instalar el S.O. desde un disquete instalándolo desde la red mediante PXE por
ejemplo, seleccionar siguiente.
Finalmente en la Figura 4.3, comprobamos el resumen de creación de la MV, si todo es
correcto seleccionamos finalizar. Tenemos la opción de iniciar la MV una vez creada.
63
En la Figura 4. 4, podemos observar la MV creada, si pulsamos sobre un servidor físico que se
muestran en la parte izquierda del administrador, en la parte central nos mostrará las MV que
tiene, y sobre ellas con el botón derecho del mouse podemos ingresar directamente como si se
tratara de un acceso remoto, también se pueden editar propiedades, encender, reiniciar o
suspender la MV. Además podremos tomar Snapshots15
de su estado para hacer una copia
idéntica a la MV en su estado actual para usarla en un futuro como respaldo. Podremos
exportar la MV, renombrarla o eliminarla de forma permanente.
Figura 4. 3 Configuración final de la MV
15 Imagen instantánea que en el ámbito de la virtualización se le llama a la captura de una imagen de un programa o archivo que puede ser habilitado en cualquier instante, como por ejemplo una Máquina Virtual.
64
Figura 4. 4 Máquina Virtual en el esquema de administración de Hyper-V.
Si editamos las propiedades de una máquina virtual, sobre ella con el botón derecho y Settings
podremos editar todas las posibilidades que proporciona a nivel de hardware, con la capacidad
de agregarle a la MV dispositivos de hardware, modificar la memoria RAM previamente
asignada, procesadores, los discos duros y agregarle otro, tarjetas de red, etc.
Si pulsamos sobre un servidor físico corriendo el rol de Hyper-V con botón derecho en él y
seleccionar Hyper-V Server Settings podemos editar ciertos parámetros generales sobre todas
las MV u opciones en este servidor físico.
De esta manera, también se puede cambiar los directorios predeterminados donde se guardan
los archivos de las máquinas virtuales o sus discos duros, modificar ciertos parámetros del
teclado o de los credenciales guardados. Ahora no queda más que arrancar la MV, instalarle
un S.O. y configurarla para que ejecute las aplicaciones o servicios necesarios para el proyecto.
4.5 Configuración de red privada, pública y virtual
Para el funcionamiento de cada uno de las máquinas virtuales anteriormente creadas; nodo1,
nodo2, nodo3 y nodo4, se tiene que configurar la red pública, en donde el segmento de red
asignado al CENAC, es el 148.204.14.0. Por medio de este segmento de red se podrá realizar
la comunicación entre todos los elementos de cómputo utilizados en el esquema general, cabe
65
señalar que no afectara el desempeño de la red o a otros servicios que se encuentran
operando en el Centro, ya que se creó un esquema independiente previniendo conflictos con
aplicaciones en producción. Los elementos de cómputo involucrados del segmento de red son:
servidores, nodos, y máquinas de escritorio.
La configuración de la red privada, utilizada para la comunicación de los nodos del segmento :
192.168.21.0, se realiza en cada uno de los nodos y en el servidor de almacenamiento
compartido, la cual permitirá la comunicación entre los discos de almacenamiento que se
crean en cada nodo, para que puedan compartir el almacenamiento.
La configuración de la red virtual utilizará el segmento: 148.204.14.0, nos permite la
comunicación interna entre nodos, teniendo otro camino de comunicación si llegara a fallar el
segmento de red público a través de la red privada.
4.6 Configuración del Servidor de Almacenamiento compartido
4.6.1 Instalación y configuración de Openfiler
Openfiler (ver Figura 4. 5), es un sistema operativo que proporciona almacenamiento en red.
Debido a la necesidad de contar con un sistema de almacenamiento como una SAN, DAS o
SAS, que permiten manejar el almacenamiento a través de una aplicación y la necesidad de
conectar físicamente los equipos, se tomo la decisión de utilizar el S.O. Openfiler el cual fue
creado por Xinit Systems, y se basa en la distribución de Linux rPath. Es software libre
licenciado bajo la GNU (General Public License) versión 2. Su pila de software de código
abierto con interfaces de software de terceros.
66
Figura 4. 5 Autenticación de Openfiler.
Openfiler es instalado en el servidor de almacenamiento utilizando el procedimiento mostrado
en el Anexo B conforme al esquema general. Debido a que el sistema operativo es un derivado
de Linux, la instalación es muy similar al instalar Linux, Ubuntu o Suse. En primera instancia se
tienen que definir las particiones de almacenamiento que serán utilizadas en el equipo,
posteriormente el lenguaje del teclado y más adelante las configuraciones de red, en donde se
configura el segmento de red privado debido a que tendrá comunicación con los nodos
virtuales y será administrado vía web mediante la dirección https://192.168.21.254:446.
Una vez definidos todos los parámetros se inicia la instalación finalizando con la definición de
autenticación para el acceso vía web.
Ya que está listo el servidor de almacenamiento, se ingresa vía web desde una máquina local,
se coloca el usuario y password y posteriormente se comienza con la asignación de
volúmenes, para cada uno de los nodos virtuales, obviamente, dichos nodos tienen que estar
activos para que el sistema de almacenamiento los detecte automáticamente.
El primer paso de la configuración es definir cuantos volúmenes se van a realizar para cada
nodo virtual, en donde se tomó la decisión de que serán creados 3 volúmenes para
67
Clusterware (CRS) con un espacio de 1,024 MB y uno más para ASM de 950,784 MB. Para lo
anterior es necesario seleccionar un grupo para el volumen del grupo. El procedimiento se
repite en los cuatro nodos con un espacio de 1,024 MB por volumen con conexión iSCSI16
Figura 4. 6
,
obteniendo finalmente lo que se muestra en la
Figura 4. 6 Definición de volúmenes para nodos virtuales.
La conexión de iSCSI es la interfaz de conexión de los nodos al servidor de almacenamiento y
tiene que habilitarse para entrar en operación, finalmente se enlazan los volúmenes creados
como se muestra en la Figura 4. 7.
Figura 4. 7 Asignación de conexiones para acceso al almacenamiento.
16 Tecnología que permite que las computadoras puedan disponer de medios de almacenamiento por medio de la red, en donde el medio puede ser Fibra Óptica o Ethernet.
68
4.7 Configuración de nodos virtuales
4.7.1 Conexión iSCSI
Una vez definidos los volúmenes de almacenamiento en el Openfiler, ahora sé configura la
conexión hacia el almacenamiento en los 4 nodos virtuales, por esta razón se instala el
software llamado Microsoft iSCSI initiator versión 2.06 para obtener alta disponibilidad en el
sistema propuesto. Este software viene dentro del S.O. anfitrión de cada nodo que es Windows
Server 2003. Lo anterior permitirá establecer la comunicación de todos los nodos con el
servidor de almacenamiento compartido (Openfiler).
La instalación de iSCSI no tiene un grado de complejidad considerable para su instalación, lo
que se tiene que hacer es entrar a las propiedades de iSCSI Initiator que se encuentra dentro
de las herramientas de Windows Server 2003. Una vez estando dentro, seleccionar la pestaña
Discovery (en español Descubrir) para agregar el segmento de la red privada del Openfiler (ver
Figura 4. 8).
Figura 4. 8 Configuración de segmento de red para iSCSI.
69
El siguiente paso es seleccionar la pestaña Targets (en español objetivos) y automáticamente
reconocerá el nombre del servidor de almacenamiento; iqn.cenac.com.openfiler.tsn, (ver
Figura 4. 9).
Figura 4. 9 Identificación del servidor de almacenamiento.
Finalmente se selecciona la opción para que la conexión se restablezca automáticamente
cuando se reinicie el nodo virtual y finaliza el proceso.
4.7.2 Configuración de red
Para la configuración de red en cada uno de los nodos virtuales se sigue el siguiente
procedimiento:
I. Asignación de nombre por nodo y dominio
a. Nombre: nodo1, nodo2, nodo 3 y nodo4.
b. El Dominio general se definió como: ipn.mx
II. Configuración de las tarjetas de red
a. Pública
b. Privada
70
III. Dentro de la configuración de red, en opciones avanzadas, verificar que la red pública
se encuentre en primera instancia.
IV. En propiedades de Mi PC, en Opciones Avanzadas, Rendimiento y Opciones Avanzadas,
se tiene que seleccionar Servicios en segundo plano y para mejorar rendimiento
seleccionar la opción programas.
V. En la pestaña de prevención y ejecución de datos seleccionar la primera opción.
VI. Activar de ser necesario los siguientes servicios:
a. Administrador de conexión de Acceso Remoto
b. Administrador de conexión automática de Acceso Remoto
c. Servidor
d. Examinador de equipos
e. Registro remoto
Nota: Los servicios del Coordinador de Transacciones Distribuidas de Microsoft deberán estar
arriba, después de haber instalado y configurado iSCI deberá estar deshabilitado el servicio.
El grupo de trabajo que se creó para cada nodo virtual tiene el nombre de: ora_dba, y debe
estar agregado al usuario administrador, con la finalidad de manejar del Oracle Clusterware.
4.7.3 Instalación de Clusterware
Este procedimiento es necesario para montar los discos creados anteriormente en el sistema
de almacenamiento Openfiler para los 4 nodos virtuales, a los cuales se les asignó el siguiente
nombre: CRS1, CRS2 y CRS3.
El primer paso es ingresar al archivo host que se encuentra en la siguiente ruta de un
explorador de Windows; C:\WINDOWS\system32\drivers\etc, y se muestra un archivo de texto
que contiene las configuraciones de los diferentes grupos de redes que se manejan en este
trabajo para la comunicación de los componentes en donde tenemos la red pública, privada y
virtual con sus direcciones correspondientes para cada nodo virtual (ver Figura 4. 10). Es
importante mencionar que los cuatro nodos deben de contener el mismo archivo de Host con
los mismos datos.
71
Figura 4. 10 Asignación de direcciones de red privada, pública y virtual.
El siguiente paso es ir al Administrador de Equipos del S.O., seleccionar la opción de
Administrador de Discos.
Posteriormente se muestran los cuatros discos creados anteriormente, en donde se tiene que
seleccionar los que se vayan a utilizar que en este caso son los 4 (CRS1, CRS2, CRS3 y ASM).
Posteriormente el asistente nos indica si queremos iniciar a MBR17
Figura 4. 11
los cuatro discos tal y
como se muestra en la .
Figura 4. 11 Asistente para inicializar y convertir discos.
17 Acrónimo de Master Boot Record ó Sector de Arranque Maestro, es un pequeño programa que es ejecutado en cada inicio del S.O. y se encuentra ubicado en el primer sector absoluto (Track 0, head 0, sector 1) del disco duro en una PC y que busca la tabla de particiones para transferirla al Sector de Arranque.
72
Posteriormente podremos habilitar las particiones que se encuentran en cada uno de los
nodos virtuales, lo anterior se realiza estando en la parte de Administración de Equipos, dando
click derecho al icono PC y seleccionando Administrar, finalmente seleccionar el apartado de
Administración de Discos.
En esta parte se puede observar cinco particiones de almacenamiento, la primera se refiere al
almacenamiento del nodo virtual que es de 10GB con formato NTFS18
Figura 4. 12
y las cuatro siguientes
se refieren al almacenamiento general que se encuentran deshabilitadas, tres de CRS de
1024MB y una más de 928.49GB. El siguiente paso es habilitar las particiones seleccionando
con click derecho cada una de las particiones, seleccionando la opción de Partición nueva y
extendida, posteriormente se especifica el tamaño que corresponde a cada una de las
particiones mostradas (ver ).
Figura 4. 12 Inicio de los discos de almacenamiento.
Finalmente se asigna una nueva unidad lógica para cada partición de los 4 nodos virtuales, se
selecciona la opción de unidad lógica y especificar el tamaño de partición, posteriormente
seleccionar no asignar una letra o ruta de acceso a la unidad y seleccionar no formatear esta
partición y finalizar el proceso. Finalmente se podrá observar en color azul las particiones
18 Acrónimo de NT File System, es un sistema de archivos diseñado específicamente para Windows NT (incluyendo las versiones Windows 2000, Windows Server 2003, Windows XP, Windows Vista, Windows Server 2008 y Windows 7), con el objetivo de crear un sistema de archivos eficiente, robusto y con seguridad incorporada desde su base.
73
listas para utilizarse (ver Figura 4. 13), es importante mencionar que este proceso se realiza
solo en un nodo que en este caso fue el nodo 1, ya que el proceso se replica para todos los
nodos.
Figura 4. 13 Particiones en estado de Espacio libre.
Figura 4. 14 Unidades lógicas de almacenamiento definidas.
74
4.7.4 Autenticación de usuarios
El procedimiento de autenticación de usuarios es necesario para verificar la existencia de
comunicación entre nodos la cual puede ser por nombre o por las diferentes redes manejadas
como la pública, privada y la virtual.
Para verificar la comunicación de los nodos con el sistema de almacenamiento se verifica con
la instrucción Netuse19
4.7.5 Instalación del Software Clusterware
, utilizada en la línea de comandos de MS-DOS, mostrando la conexión
de los cuatro nodos en donde todos los discos tienen que estar conectados .
El Software Clusterware permite la identificación de los discos de almacenamiento compartido
en cada unos de los nodos, y manejar un sistema de almacenamiento único para todos los
nodos. En el Anexo D se muestran las imágenes para llevar a cabo el procedimiento de la
instalación del software de Clusterware.
En primera instancia se debe de contar con el software ejecutable de Clusterware propietario
de Oracle 10g. Se copia a una de las máquinas virtuales en la carpeta raíz de la partición C,
quedando la ruta de la siguiente manera: C:\clusterware, dentro de la carpeta ejecutar
setup.exe. Posteriormente se muestra una pantalla de color negro que especifica el proceso de
instalación del Clusterware y más adelante comienza el asistente de configuración mostrando
la ventana de bienvenida en donde se muestran algunas características de cambios, pero en
este caso solo se tiene que seleccionar y pasar al siguiente paso. Posteriormente se tiene que
ingresar el nombre y la ruta en donde se instalará el producto tal como se muestra en la Figura
4. 15 definido el lugar de instalación, el programa verifica las necesidades de las variables de
entorno20
Figura 4. 16
para la instalación del producto en donde se muestra una barra que describe el
avance de la instalación del 0 al 100%, una vez que sea aprobado el resultado general de la
comprobación seleccionar siguiente. La ventana siguiente solicita ingresar el estado de los
nodos que participarán en el acceso al almacenamiento general, en donde los tres datos
solicitados son el nombre del nodo público, el nombre del nodo virtual y el nombre del host
virtual quedando la configuración como se muestra en la El siguiente paso es
definir el nombre del cluster que en este caso será CRS, en donde es necesario proporcionar el
19 Comando que permite verificar la conexión con el sistema de almacenamiento en red. 20 Son un conjunto de valores dinámicos que normalmente afectan el comportamiento de los procesos en una computadora.
75
uso de la interfaz de red en donde se tiene la pública con el segmento 148.204.14.0 y la
privada con el segmento 192.168.21.0.
Figura 4. 15 Nombre y ruta de instalación de Clusterware.
Figura 4. 16 Configuración de los nodos virtuales para Clusterware.
76
El siguiente paso en la configuración es especificar la información de las particiones, en donde
se habilitará la opción de OCR, además de formatear la partición CFS y usar la partición para el
almacenamiento de datos, en este caso se utiliza la letra de la unidad asignada como se
muestra en Figura 4. 17.
Una vez configuradas las particiones, el siguiente paso es seleccionar los discos que se deben
utilizar para almacenar el disco de arranque complementario de Oracle Cluster Registry (OCR)
y Cluster Synchronization Services (CSS). A menos que los discos sean redundantes, se deben
especificar dos particiones para el OCR y tres particiones para el disco de arranque
complementario de CSS. Además se debe especificar los discos que se quieran formatear con
Oracle Cluster File System (CFS), el tipo de formato y una letra de unidad para montar el disco
formateado. En la Figura 4. 18 se muestra la tabla que contiene el número de discos de
almacenamiento con sus particiones, tamaño en MB, formato, letra de unidad y el uso.
Figura 4. 17 Configuración de particiones.
77
Figura 4. 18 Configuración de almacenamiento.
Finalmente se muestra el resumen de toda la configuración de Clusterware en donde se
indican los valores globales que serán instalados; el idioma del producto, los requisitos de
espacio, las instalaciones que se llevarán a cabo etc. Si se está de acuerdo con las
configuraciones seleccionadas se tienen que aceptar y seleccionar la opción de instalación
para iniciar el proceso en donde se encuentra una barra que muestra el avance de instalación.
Los archivos se extraen en la ruta: C:\oracle\product\10.2.0\crs.
A continuación se muestran los asistentes de configuración que serán instalados de Oracle
Clusterware:
• Oracle Clusterware Configuration Assistant
• Oracle Notification Server Configuration Assistant
• Oracle Private Interconnect Configuration Assistant
• Virtual Private IP Configuration Assistant
78
Continuando con la instalación de Oracle Clusterware 10.2.0.1.0 y si no existe ningún
problema la instalación se encuentra lista. Es necesario mencionar que si existiera alguna
configuración que no se realizó adecuadamente se refleja en la instalación, mostrando los
errores con código interpretado por Oracle, por lo que será necesario consultar las hojas de
datos que permitan resolver las problemáticas.
4.7.6 Instalación de ASM
Automatic Storage Managment (ASM) es el manejo automático de almacenamiento, la ruta de
acceso es; C:\ASM\database\ASMtool\ ASMtoolg, en donde se muestra la ventana de
configuración de ASM, que permitirá añadir, habilitar o borrar las particiones de disco, solo se
tiene que seleccionar Add o change label, posteriormente se muestran los discos que se
tienen dados de alta, aquí seleccionamos el volumen de disco destinado para ASM el cual
tiene una capacidad de 950,768 KB que aproximadamente equivale a 1 TB, seleccionar la
opción Generate stamps with this prefix, para almacenamiento de Datos. La siguiente ventana
muestra las características del sistema de almacenamiento, capacidad, nombre y dispositivo,
solo es cuestión de confirmar los datos, dar siguiente. Después de finalizar, se ejecuta
automáticamente ASMtoolg, que configura el disco que va a trabajar con ASM.
4.7.7 Instalación de Oracle 10g
El primer elemento con el que se debe de contar para realizar la instalación del manejador de
Bases de Datos Oracle 10g es el archivo ejecutable, que se encuentra dentro de la ruta:
C:\asm\database\setup.exe. Después de dar doble clic, aparece la primer ventana de
Bienvenida en donde comenta que es una guía de instalación de los productos de Oracle, dar
siguiente.
La primera opción es seleccionar el tipo de instalación que se quiere realizar, tal y como se
muestra en la Figura 4. 19 . Se elige la primera por las características mencionadas, como la
gestión automática que tiene las funciones de escalabilidad, rendimiento, alta disponibilidad y
seguridad para atender las aplicaciones críticas más exigentes.
El siguiente paso es especificar los detalles del directorio en raíz en donde quedará instalado
el manejador de bases de datos Oracle 10g, que tiene la siguiente ruta:
C:\oracleproduct\10.2\db_1. Con el nombre: OraDB10g_home2.
79
Para el manejo de cluster, en la siguiente ventana del instalador se tienen que seleccionar los
cuatro nodos virtuales y dar siguiente. Posteriormente se comprobarán los requisitos
específicos del producto. Se muestra una barrea de avance de verificación de las necesidades.
Figura 4. 19 Selección del tipo de instalación de base de datos de Oracle.
El siguiente paso de la configuración es seleccionar la opción de configuración, en donde se
puede crear una base de datos o configurar la Gestion Automatica de Almacenamiento (ASM)
para gestionar el almacenamiento de archivos de base de datos. Pero la parte que
seleccionamos es la de instalar sólo el software necesario para ejecutar una base de datos.
Se muestra el resumen de la configuración seleccionada, si esta correcta la información solo
es necesario seleccionar la opción Instalar y comenzará a instalar los programas relacionados
para la gestión de base de datos. Si no existe ningún problema en la configuración de los
parámetros solicitados, se muestra una pantalla que nos indica las características de los
productos instalados y las direcciones para instalación a los nodos como por ejemplo;
http://nodo1.ipn.mx:5560/isqlplus/dba, además de indicaciones para ejecutar el directorio
raíz de Oracle en los nodos virtuales para activar los productos Oracle Data Provider para .NET
y Oracle Provider para OLE DB, tal y como se muestra en la Figura 4. 20.
80
Figura 4. 20 Fin de la instalación de Oracle 10g
4.7.8 Configuración de bases de datos
Para la configuración de la base de datos es necesario ir a inicio, accesorios y seleccionar el
asistente de configuración de bases de datos, que se encuentra dentro de las Herramientas de
Configuración y de Migración. Al ejecutar el asistente, automáticamente surge la ventana de
Bienvenida en donde explica brevemente las características que contiene como; crear,
configurar, o suprimir una base de datos de cluster y gestionar plantillas de bases de datos.
También permite agregar y suprimir instancias, así como agregar, suprimir y modificar servicios
de una base de datos de cluster. Se selecciona la primera opción que es: Base de datos Oracle
Real Application Clusters, seleccionar el siguiente paso. Se tiene que seleccionar la operación
a realizar, que en este caso será la Configurar Gestión Automática de Almacenamiento, y
seleccionar siguiente. Posteriormente se seleccionan los nodos en los que se pretende
gestionar grupos de discos de ASM.
Es importante mencionar que el nodo local que es el nodo1 se utiliza siempre, esté o no
seleccionado. Se elige seleccionar todo. El siguiente paso es de autenticación en donde se
solicita la contraseña SYS específica de ASM, en este caso se utilizó la contraseña oracleasm.
Posteriormente el asistente solicita gestionar los grupos de discos para ASM, que en este caso
solo se tiene un solo grupo llamado Data con el tamaño asignado para ASM de 950,768 KB.
81
Una vez de haber configurado el gestor automático de almacenamiento se tiene que realizar el
mismo proceso para ingresar al asistente de configuración de bases de datos pero en esta
ocasión se selecciona; Crear Base de Datos. Posteriormente se tienen que seleccionar los
nodos involucrados y seleccionar una plantilla para crear la base de datos, en este caso
seleccionamos de uso general. El siguiente paso es identificar la base de datos Oracle, en
donde se identifica como única mediante el nombre de base de datos global, normalmente
definida con el formato nombre.domonio, que en este caso será: prod.com. Una instancia
Oracle de cada nodo de cluster hace referencia a una base de datos. Cada instancia se
identifica de forma única mediante un Identificador del Sistema Oracle (SID).
Para cada instancia de base de datos de cluster, el SID está formado por un prefijo común
para la base de datos y un número para cada instancia que se genera automáticamente. Se ha
introducido un SID recomendado que puede aceptar o cambiar por otro valor. El prefijo SID
utilizado en este caso es: prod. A continuación se indica la manera en que se gestiona la base
de datos seleccionando la opción de Configurar la Base de datos con Enterprice Manager, y
Usar Data Base Control para Gestión de Base de Datos. La siguiente ventana solicita las
credenciales de base de datos en donde se puede utilizar la misma contraseña para todas las
cuentas, en este caso se utiliza la contraseña; oracledb.
A continuación se muestran las opciones de almacenamiento en donde la más conveniente es
la Gestión de Almacenamiento Automatizada (ASM) ya que simplifica la administración de
almacenamiento de la base de datos y optimiza el diseño de la misma para el rendimiento de
entradas y salidas. Para utilizar esta opción es necesario utilizar un juego de discos, cabe
señalar que también existen las opciones de Sistemas de Archivos de Cluster para el
almacenamiento de bases de datos y Dispositivos Raw para proporcionar almacenamiento
compartido en RAC en caso de no utilizar ASM. La siguiente opción es la de Opciones de
Almacenamiento, en donde para ingresar se tiene que especificar la contraseña SYS de ASM,
que en este caso es; oracleasm.
En el siguiente paso se tienen que seleccionar los grupos para ASM en donde solo se
encuentra una opción y las características son; nombre de grupo, tamaño en MB (950,768),
espacio libre (950,768), redundancia y estado. Cabe señalar que en este punto se pueden
agregar más grupos de discos ASM. Se utilizan las ubicaciones de archivos de bases de datos,
en donde en este caso tomaremos la opción de Usar Oracle Managed Files o manejador de
82
archivos Oracle. La siguiente ventana es de recuperación, que no es muy necesario utilizarlo
en este caso.
En los servicios de base de datos tenemos a prod.com, el cual es necesario seleccionar para
continuar con los parámetros de inicialización y se elije la Memoria Típica que asigna la
memoria como un porcentaje del total de memoria física (2047 MB), el porcentaje
seleccionado es de 40%. El tamaño total de la memoria incluye 40 MB de tamaño del proceso
de Oracle y los valores por defecto para los parámetros vacios, si los existiera. El siguiente
esquema muestra el almacenamiento de la base de datos en donde se puede especificar los
parámetros de almacenamiento para la creación de la base de datos. La página muestra un
listado en árbol y una vista de resumen (lista de varias columnas) que permite cambiar y ver
los siguientes objetos; archivos de control, tablespaces, archivos de datos, segmentos de
rolback y grupos redo log. Se pueden crear nuevos objetos. El último paso es el de opciones de
creación en donde simplemente se elije la opción de crear base de datos. A continuación se
muestran las opciones que serán creadas en la base de datos denominada prod, como se
muestra en la Figura 4. 21.
Figura 4. 21 Selección de opciones de instalación para la base de datos.
83
A continuación se inicia la instalación, en primera instancia se copian los archivos de base de
datos posteriormente se crea e inicia las instancia de Oracle, la siguiente acción es crear vistas
de bases de datos de cluster y finalmente terminar la creación de base de datos.
4.8 Instalación del simulador de cargas SwingBench
SwingBench es un programa que trabaja conjuntamente con la base de datos para
proporcionar información de carga hacia la misma. Simula la conexión de múltiples usuarios
conectados al mismo tiempo además de las peticiones realizadas por tiempo determinado.
Con este programa se puede prever cuantos clientes soporta la base de datos sin tener que
tener la infraestructura física y lógica como por ejemplo, usuarios, máquinas, red, clientes, etc.
A continuación se muestra la configuración de SwingBench con la base de datos de Oracle
10g. Es preciso mencionar que Swing bench será instalado en cuatro máquinas diferentes a
los nodos, se utilizan equipos personales que por medio de la red tendrán acceso a la base de
datos. El objetivo es verificar cuanta carga soporta cada nodo y si uno de ellos llegara a
saturarse restarían 3 más hasta llegar al caso que solo un nodo este trabajando, entonces se
demostrará la alta disponibilidad del sistema.
El primer paso es entrar a la carpeta que contiene el programa que por lo general se encuentra
en la raíz de la unidad C del sistema de almacenamiento, posteriormente ingresar a
swingbench.bat y abrirlo con un blog de notas, en donde se muestran las siguientes
asignaciones:
set ORACLE_HOME=D:\oracle\product\10.2.0\db_1
set JAVAHOME=C:\Program Files\Java\jdk1.6.0_10
set SWINGHOME=C:\Swingbench\swingbench
set ANTHOME=%SWINGHOME%\lib
set
CLASSPATH=%JAVAHOME%\lib\rt.jar;%ORACLE_HOME%\jdbc\lib\ojdbc14.jar;%SWINGHOME%\lib\mytransaction
s.jar;%SWINGHOME%\lib\swingbench.jar;
En este proceso es necesario agregar en los TNSnames los nodos del esquema RAC. En donde
será necesario crear un Tablespace para probar el programa de carga.
Como los programas anteriores, SwingBench contiene una guía de instalación que al
ejecutarla muestra una ventana de bienvenida, el autor y su contacto. Posteriormente se elige
84
la tarea que se quiere realizar, en este caso llevamos a cabo crear el esquema de orden de
entrada, (usuarios, tablas, índices, datos, etc.). Posteriormente se describen los detalles de las
bases de datos, la conexión será hacia uno de los nodos virtuales de la siguiente forma:
//148.204.14.140/proyect, en donde proyect es el nombre del servicio. El nombre de usuario
del DBA será; sys as sysdba, con el password: proyecto.
Se elige el esquema de conexión, que son los detalles de peticiones y consultas hacia la base
de datos, cabe señalar que se menciona que se toma en cuenta que las peticiones se realizan
desde un equipo con las siguientes características; 2.4 Ghz, Pentium 4. El tamaño mínimo de
la base de datos es aproximadamente 49 MB pero puede ser incrementado hasta 100 GB. Se
determina el rango en donde el número de clientes es de 5,847,900 y el número de peticiones
por minuto es de 74,473.
Al finalizar la configuración, comienza la ejecución para crear el usuario y el table space,
posteriormente las tablas y paquetes, mas adelante las referencias de tablas, usuarios,
ordenes y finalmente la creación de índices. En el Anexo E se muestran las imágenes del
procedimiento anteriormente mencionado.
85
Capitulo 5: Pruebas y resultados
5.1 Comparación de un sistema físico y un sistema virtualizado
5.1.1 Sistema físico
La idea original para realizar este trabajo, surge de la administración de sistemas de
almacenamiento físico que se encuentran operando en el IPN. Actualmente la DCyC cuenta
con este tipo de estructuras informáticas, con la gran diferencia que no utilizan técnicas de
virtualización para la implementación de bases de datos con Oracle, si no que lo hacen con
servidores reales que están integrados a un equipo especializado para el manejo de la
información. Los servidores, equipos de comunicaciones, interconexión, discos duros,
controladoras y granjas de discos de almacenamiento de fibra óptica, son parte de un sistema
de almacenamiento modelo EVA 3000 de la marca Hewlett-Packard.
Del equipo de almacenamiento se destinan cuatro servidores del tipo Proliant DL 380, que
contienen dos discos duros cada uno con capacidad a 300 GB y una velocidad de 10 mil
revoluciones por minuto (10 KRPM), procesadores Xeon de doble núcleo con una velocidad de
2 GHz, un par de tarjetas de red 10/100/1000 Mbps y una tarjeta más de fibra óptica. La
interconexión entre los nodos, se realiza mediante cable UTP categoría 5e del tipo Ethernet y
un Switch marca Enterasis.
La conexión de los servidores hacia el sistema de almacenamiento, se realiza a través de
cable de fibra óptica del tipo full-duplex con conectores para contactos LC-LC, además de
cuatro switches de fibra óptica de la marca Brocade, los cuales a su vez, se conectan a las
controladoras de las granjas de discos duros, en total son ocho controladoras que se manejan
por par, es decir, en total se tienen cuatro granjas de servidores con sus respectivas
controladoras, cada granja de discos contiene quince discos de fibra con una capacidad de
300 GB cada uno, estamos hablando que se tienen aproximadamente 5 TB crudos para
almacenamiento por controladora.
86
La manipulación del almacenamiento hacia los servidores se hace mediante LUN’s (Logical
Unit Number) que es un identificador para una unidad de disco duro, de manera lógica se
manipula el almacenamiento a través de una herramienta propietaria de HP la cual tiene el
nombre de ILO (Integrated Lights-Out) especial para servidores del tipo Proliant.
En la Figura 5. 1 , se muestra el esquema que se maneja dentro de la DCyC, tomando en
cuenta que ocupan su propio segmento de red y hasta un segmento privado por cuestiones de
seguridad. Es preciso mencionar que el SITE de cómputo, cuenta con tecnología de punta que
permite dar servicio a las necesidades de almacenamiento, bases de datos, páginas web, etc.
La similitud del esquema físico con el virtual, es que los dos utilizan Oracle como gestor de
bases de datos, pero con la diferencia de que la transferencia de información es mucho más
rápida en el sistema físico, debido a que contiene una estructura de red de fibra óptica la cual
maneja un ancho de banda mucho mayor que el sistema virtualizado, sin embargo, cuando la
información sale a Intranet su velocidad disminuye considerablemente ya que se limita por los
elementos que se encuentran en el camino por donde viaja.
Dentro de las pruebas fue necesario realizar la comparación de un sistema físico, que utiliza
servidores para el manejo de la información a través de Oracle. En este esquema se involucran
equipos de fibra óptica (switches, cables, controladoras y discos duros) para la conexión hacia
el sistema de almacenamiento, que en este caso, se cuenta con una SAN.
La configuración de red entre el sistema físico y el virtualizado es similar, las tarjetas de red
son de la misma capacidad y la configuración de direcciones IP es de la misma manera de la
que se realizó en el sistema virtualizado. Una vez que se tienen listos los servidores llamados
nodos con el sistema operativo y con la configuración de red adecuada, se procede a realizar
la configuración de las unidades de almacenamiento, estas se realizan en la EVA 3000 con
ayuda de un administrador para crear las LUN’s correspondientes, tomando diferentes valores
de almacenamiento, generalmente se toman las recomendadas por Oracle en sus mejores
prácticas.
87
Figura 5. 1 Esquema de almacenamiento físico de alta disponibilidad con base de datos.
88
Una vez que se tiene listo el almacenamiento, se realiza la instalación del manejador de base
de datos, en donde se destaca la delicadeza de configuración de Oracle. Este tipo de
manejador se utiliza por que que soporta sistemas de almacenamiento compartido, además
de la cantidad de usuarios que son tolerados a la hora que se conectan al mismo tiempo a la
base de datos y las transacciones por minuto. Otro punto importante es el manejo de la
seguridad y alta disponibilidad.
Se realizaron pruebas de conexión en los dos esquemas anteriormente mencionados, a
continuación se muestran las pruebas realizadas con el programa SwingBench que simula
una petición de usuarios real de forma masiva, en donde se muestran las conexiones
realizadas a la base de datos por minuto derivada de los usuarios, además de sus peticiones
hacia la información.
5.1.2 Sistema virtual
El primer esquema que se implementó fue la infraestructura de virtualización, permitiendo
crear 4 nodos virtuales con las características adecuadas para el manejo de la información. Lo
más importante en este proceso fue lograr la comunicación entre todos los nodos creados y el
sistema de virtualización. Se realizaron pruebas de conexión en cada uno de los servidores a
través del comando ping, observando habilitadas las dos tarjetas de red en cada uno de los
nodos.
El segundo procedimiento y uno de los más complicados fue diseñar el ambiente de
almacenamiento de datos, debido a que no se cuenta con la infraestructura suficiente, se
decidió utilizar un servidor e instalar un programa que permitiera simular un ambiente de
almacenamiento del tipo SAN/NAS. Se realizaron pruebas que permitían observar el
almacenamiento compartido de los nodos, hacia el servidor de almacenamiento.
A la hora de instalar y configurar la base de datos, existen muchos problemas que se tienen
que tomar en cuenta, entre los cuales destacan la comunicación entre equipos, los servicios
de componentes de la base de datos, errores en algún proceso de instalación, etc. En pocas
palabras, Oracle necesita que se siga al pie de la letra el procedimiento de configuración e
instalación, de lo contrario se tendrán que consultar los documentos técnicos que se
encuentran en su página www.oracle.com.
89
5.2 Comparación de esquema físico y virtual
En la tabla se muestra la comparación de las características con las que cuenta cada sistema, donde se involucran equipos de cómputo con sus respectivas capacidades, medios de comunicación, sistemas de almacenamiento, software y licenciamiento, costos, ancho de banda, etc.
Tabla 5. 1 Comparación general de los esquemas físicos y virtuales. Características Esquema Físico Esquema Virtual
Equipos de cómputo
- Servidores Proliant DL-380 HP, RAID 1, Proc. Xeon de Doble núcleo 2.0 GHz, 4 GB RAM.
- Sistema de Almacenamiento SAN EVA 3000, 20 DD de 300 GB FO.
- 1 servidor de administración de almacenamiento DL-320 G5 ILO.
- 1 Servidor de virtualización armado, 4 DD de 200 GB, 6 GB de RAM, 2 Proc Intel Xeon de doble núcleo.
- 1 servidor para almacenamiento, Dell Optiplex 380, 2 DD de 500 GB, 1 DD de 120 GB, 2 GB de RAM, Proc. Intel Core 2 duo.
- 4 PC para administración remota, ACER 200 GB de DD, 2 RAM de 2 GB, Procesador: AMD de doble núcleo
Equipos de comunicaciones y segmentos de red
- 4 Switches de FO de 24 puertos, 4 Gbps.
- switches Ethernet de 24 puertos Enterasis 10/100/1000 Mbps.
- Segmento de red - Publico - Privado - Virtual - Cableado de FO full-duplex - Cableado Ethernet Cat. 5e.
- 1 Switch Enterasis Ethernet 10/100/1000.
- Segmentos de red - Publico - Privado - Virtual - Cableado Ethernet cat. 5e.
Software - Licencias de S.O. Red Hat Enterprice Linux 5.4
- Licencias Oracle 10g - 1 licencia ILO HP
- 1 Windows server 2008 Data Center - 1 Hyper-V - 1 Windows Server 2003 - 1 Oracle 10g - 1 Openfiler - 1 SwingBench
Pruebas de carga
Prueba 1: - Usuarios: - Min: 100 - Max:200 - Concurrentes:150 - Soportado
Prueba 2: - Usuarios: - Min: 500 - Max:800 - Concurrentes:650 - Soportado
Prueba 3: - Usuarios: - Min: 800 - Max:1500 - Concurrentes:900 - Soportado
Prueba 1: - 1.- Usuarios: - Min: 100 - Max: 200 - Concurrentes: 150 - Soportado
Prueba 2: - Usuarios: - Min: 500 - Max:800 - Concurrentes:650 - Soportado
Prueba 3: - Usuarios: - Min: 800 - Max:1500 - Concurrentes:900 - No soportado
Costo aprox. $ 1,500,000 $ 400,000
90
5.3 Pruebas de carga
Una vez montado el esquema completo, se realizan las pruebas de carga hacia la base de
datos, realizando peticiones a través de los usuarios remotos, que en este caso se encuentran
dentro de la misma subred.
Se realizaron alrededor de cinco pruebas, variando la cantidad de conexiones por minuto y la
cantidad de usuarios conectados al mismo tiempo realizando peticiones hacia la base de
datos.
Finalmente, la prueba que se realizó y en donde se observó mayor estabilidad en los nodos
virtuales, fue cuando se tenían de 70 a 80 conexiones simultaneas, con 825 transacciones
por minuto, tal y como se muestra en la Figura 5.2.
En la segunda prueba, se disminuye la cantidad de usuarios, que en esta ocasión esta en un
rango de 50 a 100 conexiones simultaneas, alcanzando una cantidad muy importante de
transacciones por minuto que fue de 337. Se puede observar en la Figura 5.3, como
disminuye el rendimiento en los nodos virtuales en cuanto a la búsqueda de órdenes,
productos ofrecidos, búsqueda de productos, etc.
91
Figura 5. 2 Primera prueba de carga hacia la base de datos.
Figura 5. 3 Segunda prueba de carga hacia la base de datos.
92
Capítulo 6: Conclusiones y trabajos a futuro
6.1 Conclusiones
Tomando en cuenta las referencias utilizadas en este trabajo, se concluye que las
problemáticas principales de los primeros equipos de cómputo como la seguridad, el manejo
de múltiples aplicaciones y la disponibilidad de información, aún existen y perjudican a los
diferentes sectores empresariales.
Las técnicas de virtualización permiten el ahorro de licencias de software, en los dos
esquemas mostrados en este trabajo, la que tiene mayor ventaja es el de virtualización, ya que
La técnica de virtualización más adecuada para los diferentes niveles empresariales, es la
técnica de virtualización completa, esta tecnología permite interactuar directamente con el
hardware de una máquina, es decir, es equivalente a la función de un sistema operativo, lo
que permite crear una mayor cantidad de MV’s, cada una con su respectiva configuración.
Cabe señalar que el número de MV’s que se pueden crear dentro de un equipo físico, depende
de la potencia que tengan sus componentes de hardware, como la memoria, el procesador, los
dispositivos de red y el almacenamiento.
El esquema de almacenamiento utilizado en el ambiente virtual, reduce considerablemente el
costo comparado con un sistema de almacenamiento dedicado como una SAN o una NAS, sin
embargo la confiabilidad disminuye, ya que la configuración de los discos de almacenamiento
se realiza en un esquema general y sobre el mismo servidor. Se experimentó la falla en un
disco de almacenamiento, perdiendo la configuración de los volúmenes y dejando a la base
fuera de línea, posteriormente se volvió a configurar el entorno de almacenamiento
compartido.
De las pruebas realizadas en los equipos físicos, se detectaron problemas a la hora de
comprobar si el arreglo de discos era redundante, obteniendo un resultado insuficiente, ya que
si un disco falla, la comunicación de los demás hacia la base se perdía. Sin embargo con el
manejo de la virtualización, el servidor que la almacena tiene interacción directa con los nodos
93
virtuales, ya que se encuentran hospedados dentro del mismo, con la desventaja de que si
llega a fallar el servidor principal se pierde todo el arreglo de almacenamiento. Para
incrementar la disponibilidad en el esquema de virtualización, es necesario incrementar el
número de servidores utilizando por lo menos dos que estén conectados a diferentes líneas
eléctricas, además de instalar una fuente de energía extra a los servidores que manejan los
sistemas virtuales, se tendría que implementar algo similar con el servidor de almacenamiento
y los equipos de comunicaciones. Por lo tanto se concluye que el manejo de la virtualización
tiene más ventajas comparado con un sistema físico, sin embargo un punto muy importante es
que si existen peticiones de grandes cantidades de información un sistema físico es el más
adecuado.
Indudablemente el manejador de bases de datos más efectivo para este proyecto es Oracle, ya
que permite ejecutar diversas funcionalidades que proporcionan mayor seguridad en la
información. En este trabajo se implementó Oracle debido a que se tiene licencia Institucional,
permite la agrupación de servidores en Cluster en donde se reparte la carga de peticiones
hacia la base realizada por los usuarios, esto permite tener una mayor cantidad de conexiones
concurrentes e interacción con los datos solicitados.
Se ofrece un esquema virtual de alta disponibilidad, utilizando un manejador de base de datos
que puede ser implementado en diferentes sectores empresariales y educativos, esta
herramienta permite reflejar los esquemas en producción teniendo evaluaciones en la
consulta de información y realizando un estudio de mercado para detectar los beneficios
económicos a mediano y largo plazo.
Definitivamente el funcionamiento de los sistemas de virtualización con bases de datos no se
comparan al funcionamiento de un esquema físico cuando la petición de la información es de
grandes dimensiones, sin embargo, con este trabajo se logró observar el funcionamiento de un
entorno en producción y no está muy lejos de lo que es un sistema virtualizado en cuestión de
transacciones por minuto y de usuarios conectados al mismo tiempo hacia la base de datos.
Otra de las ventajas de la virtualización utilizada en este trabajo, es que permite adquirir
seguridad física y lógica. La seguridad física se puede lograr con muestras instantáneas de
los equipos virtuales denominadas Snapshots o imagen instantánea, en donde solo es
cuestión de minutos (dependiendo de la cantidad de información) lo que se necesita para
respaldar una máquina virtual que puede contener información importante para la empresa y
94
de la misma forma reponerla. Por otro lado, la seguridad lógica consiste en que los intrusos no
tengan acceso directo hacia los servidores virtuales en producción, ya que se encuentran
aislados de la red y son totalmente independientes una de la otra, logrando manejar múltiples
aplicaciones sobre un único servidor físico.
La disponibilidad de la información en el uso de los sistemas virtuales es adecuada, ya que
existen aplicaciones que permiten pasar máquinas virtuales de un servidor físico a otro sin
tener que dar de baja el servicio, esto sucede cuando el sistema detecta una falla en el
equipo, ya sea por falta de memoria o falla en uno de los discos duros, la máquina virtual
automáticamente pasa al otro servidor creando una imagen instantánea y pasando el control
en el momento adecuado logrando que el usuario no se dé cuenta que existió una interrupción
mínima en la aplicación, con esto se concreta la alta disponibilidad efectiva de los sistemas
virtuales, lo que en los sistemas físicos es muy difícil debido a que se en caso de falla, tendría
que darse de baja el equipo.
El aspecto económico es muy importante, en este trabajo se notó un costo mucho mayor al
utilizar sistemas físicos que sistemas de virtualización, tanto en equipos componentes,
software y personas para su administración.
6.2 Trabajos a futuro
Con el desarrollo de este trabajo, se pueden derivar algunos muy importantes para la mejora
del uso de aplicaciones utilizadas en el ámbito empresarial utilizando la virtualización en
sistemas de cómputo. Se proponen los siguientes trabajos para su desarrollo posterior y
mejorar el esquema propuesto en este trabajo:
a) Realizar esquemas de virtualización utilizando bases de datos de empresariales con
distintos manejadores de bases de datos, y utilizando diferentes tipos de virtualización.
b) Proponer el diseño hardware que permita mejorar la velocidad de respuesta con
respecto a las máquinas virtuales, aprovechando al máximo los recursos de un equipo
de cómputo.
95
c) Crear una normalización que proponga a las empresas el uso de las técnicas de
virtualización para la ejecución de bases de datos empresariales.
d) Realizar una metodología que permita evaluar cual es la mejor opción de virtualización
para los diferentes niveles empresariales.
96
REFERENCIAS
[1.] Beekman, G. Introducción a la computación. Buenos Aires : Addison Wesley, pp. 4-6, 1999.
[2.] M. A. Orozco, M. L. Chávez, J. Chávez. Informática uno. [aut. libro] M. L. Chávez, J. Chávez M. A.
Orozco. Informática uno. México D.F. : Thomson, 2006, págs. 12-23.
[3.] Davis, J. B. New Economics and Its History. New Economics and Its History. London : Duke University,
1997, págs. 70-74.
[4.] González, A. Cantarell y M. "Historia de la Computación en México, una Industria en Desarrollo".
"Historia de la Computación en México, una Industria en Desarrollo". s.l. : Colección Hombre Digital,
2000.
[5.] Hoes, I. M. Flynn y A. M. Mc. Administración del Procesador. Sistemas Operativos. Tercera . México,
D.F. : Thomson Learning, 2001, 4, págs. 77-86.
[6.] Creasy, R. J. “The Origin of the VM/370 Time-Sharing System”. 5, Septiembre de 1981, IBM Journal
of Research and Development, Vol. 25, págs. 483-490.
[7.] Bard, Y. , An analytic model of CP-67 - VM/370. [ed.] ACM. Cambridge, Massachusetts, United
States : acm, 1973 . Proceedings of the workshop on virtual computer systems . págs. 170 - 176.
[8.] Goldberg, R. P. , Survey of Virtual Machine Research. 6, California : IEEE Computer Society , June de
1974, Computer, Vol. 7, págs. 34-45.
[9.] T. V. Vleck, “The IBM 360/67 and CP/CMS,” 1997.,“The IBM 360/67 and CP/CMS,” . [En línea]
1997. http://www.multicians.org/thvv/360-67.html.
[10.] Rose, R. “Survey of system virtualization techniques”, 8 de March de 2004.
http://www.robertwrose.com/vita/rose-virtualization.pdf.
[11.] Goldberg, G. J. Popek and R. , “Formal requirements for virtualizable third generation
architectures”. P. 7, 1974, Communications of the ACM, Vol. 17, págs. 412-421.
97
[12.] Villalonga, J. G. Virtualización de la infraestructura informática:impacto en inversiones y costes de
explotación. [En línea] Nov-Dic de 2006. www.icai.es/contenidos/publicacuiones/28-34_virtualización-
_(VI-2006)-1386[1].pdf.
[13.] D. B. Gutiérrez, L. T. Martínez. "Tecnologías para el desarrollo de Sistemas Distribuidos: Java versus
Corba". [En línea] Septiermbre de 1999. http://di002.edv.uniovi.es/~lourdes/publicaciones/bt99.pdf.
[14.] VMware. Solucuines de virtualización con VMware. [En línea] 2009. www.vmware.com.
[15.] Microsoft. Virtualization and Partitioning. [En línea] 2009.
http://www.microsoft.com/whdc/system/platform/virtual/default.mspx.
[16.] Linux. Linux Online. [En línea] 2009. http://www.linux.org.
[17.] Apple. [En línea] 2009. http;//www.apple.com.
[18.] Microsystems, Sun. Sun Microsystems. [En línea] 2009. http://www.sun.com.
[19.] A.A. Ramos, J. P. García, F. Picouto, J. Grijalba, M. Mayan, A. García, E. Inza, C.A. Barbero. Instala, administra, securiza y virtualiza entornos linux. Mexico D.F. : Alfaomega, 2009, págs. 430-438. [20.] Pena, T. F. Virtualización de sistemas con QEMU. [En línea] Xornadas Técnicas de Software Libre na USC 06. http://www.glug.es/usc06/qemu.pdf. [21.] VirtualBox. VirtualBox. [En línea] http://www.virtualbox.org. [22.] VMware ThinApp. [En línea] http://www.vmware.com/products/thinapp/. [23.] N. Ruest, D. Ruest. MICROSOFT VIRTUALIZATION. MICROSOFT VIRTUALIZATION. s.l. : McGrawHill, 2008. [24.] P. Barham, B. Dragovic, K. Fraser, S. Hand, T. Harris, A. Ho, R. Neugebauer,I. Pratt, A. Warfield. Xen and the Art of Virtualization. [ed.] Bolton Landing. NY, USA : s.n., 2003. Xen and the Art of Virtualization, Proceedings of the 19th. págs. 164–177. [25.] Openfiler. [En línea] http://www.openfiler.com [26.] J. Ros, “Virtualización Coorporativa con VMware”, Ncora Information Technology S.L., Torredembarra, 21 de Octubre de 2008 págs.12 y 13.
98
ANEXOS
Anexo A: Configuración de Hyper-V
En esta parte se muestra cómo podemos utilizar el virtualizador en el S.O. anfitrión (Windows Server 2008), conocido como Hyper-V, que permite la virtualización de máquinas sobre una equipo físico. Esto permite crear un entorno virtual en el laboratorio para realizar el proyecto y disponer de máquinas virtuales sobre servidores físicos, la cantidad de máquinas virtuales depende de la capacidad de hardware que soporten los equipos ó la cantidad de licencias con las que se cuente.
A continuación, se muestra el procedimiento para la configuración del virtualizador, haciendo uso del S.O. Windows Server 2008 Data Center. En "Funciones de servidor" debemos agregar Hyper-V para instalar el componente, y seleccionar "Siguiente", como se puede observar en la Figura A. 1.
Figura A. 1 Agregar funciones Hyper-V
El siguiente paso es seleccionar el siguiente paso de Hyper-V del menú de funciones de servidor.
99
A continuación, se muestra un resumen del componente que se va a instalar, como se muestra la Figura A. 2
Figura A. 2 Resumen de componente.
Las MV necesitan acceder a la red física y comunicarse con los demás equipos, seleccionar una red física del servidor para compartirla con las máquinas virtuales, marcamos la red que corresponde y elegimos "Siguiente", como lo muestra la Figura A. 3.
Figura A. 3 Conexión a la red física
100
Se verifica el resumen de configuración y finalmente se acepta el proceso de instalación
Una vez finalizada la instalación, es necesario reiniciar el equipo anfitrión y una vez reiniciado el servidor el progreso de instalación continua, automáticamente.
Finalmente el instalador indica que la instalación ha terminado, por lo tanto el uso del virtualizador está listo
Figura A. 4 Resumen de instalación
Cuando se abre la consola de administración de Hyper-V, la "Hyper-V Manager", La primera vez que se utiliza se debe aceptar el acuerdo de uso de licenciamiento.
101
Anexo B: Instalación y configuración de Openfiler B1. Instalación A continuación se muestra los pasos de instalación del Openfiler. Se inserta el disco Openfiler (Ver Figura B. 1) en la máquina asurando que el sistema está configurado para iniciar con el CD / DVD-ROM. Después de que el sistema inicia la instalación, simplemente se pulsar oprime la tecla Enter para continuar.
Figura B. 1 Inicio de instalación Openfiler.
Seleccionar el modelo de teclado de la lista en este caso Spanish. Dar clic en el botón Siguiente para continuar. Seleccionar el disco particionado manualmente (ver Figura B. 2), ya que garantiza que acabará con un sistema de arranque y con el esquema de particiones correcto.
Figura B. 2 Particiones.
102
La siguiente ventana que se muestra en el proceso de instalación permite la configuración de los discos físicos (ver Figura B. 3). Cabe mencionar que existen particiones estos deberán ser eliminados.
Figura B. 3 Configuración de particiones.
Es necesario crear las siguientes particiones en el sistema, a fin de proceder con la instalación:
1. "/ boot" - aquí es donde reside el núcleo y el sistema de arranque. En este caso se dejo de 100MB.
2. "/" - Esta es la partición raíz del sistema en que todos las aplicaciones del sistema y las bibliotecas se van a instalar En este caso de todo lo que sobra de MB
3. "swap" - esta es la partición de intercambio de intercambio de memoria al disco y depende de la memoria asignada el equipo en este caso es de 1024MB
103
La partición de disco régimen se verá similar a la figura:
Figura B. 4 Particiones de discos físicos.
Posteriormente se muestra la configuración de red, se tiene que configurar al menos una tarjeta de interfaz de red para poder acceder a la interfaz web Openfiler y servir a los clientes los datos en una red. En el caso improbable de que está utilizando DHCP para configurar la dirección de red, se puede simplemente dar clic en Siguiente y continuar con la siguiente etapa del proceso de instalación.
Figura B. 5 Configuración de red.
104
Es necesario definir el nombre de host, se definió una IP privada para el esquema de seguridad lógica la dirección IP será: 192.168.14.254. La siguiente ventana se configura la zona horaria, en este caso seleccionamos Ciudad de México, es necesario configurar una contraseña de root para el sistema. La contraseña de root es la contraseña del administrador de súper usuario, puede iniciar sesión en el sistema para llevar a cabo cualquier tarea administrativa que no son ofrecidos a través de la interfaz web. La contraseña de root para acceder a la consola del servidor Openfiler por defecto son: "openfiler" y "password", respectivamente, finalmente inicia el proceso de instalación. Una vez que la instalación se ha completado, se presentará un mensaje de felicitación. En este punto, después de dar click en reiniciar quitar el CD de instalación desde el CD / DVD-ROM. Una vez que el sistema arranca, comenzar a configurar Openfiler señalando en su navegador el nombre de host o dirección IP del sistema Openfiler. La interfaz es accesible desde la página https://192.168.21.254:446. B2. Configuración Ingresar a Openfiler a través de la administración web mencionada anteriormente. Se inicia la configuración del grupo de volúmenes de almacenamiento para 4 nodos virtuales creados, 3 volúmenes para el manejo de Clusterware y uno para ASM. Es necesario crear un grupo para el manejo de los volúmenes como se muestra en la Figura B.6.
Figura B. 6 Grupo de volúmenes.
105
Despues de crear el grupo de volumenes se inica la configuracion de cada volumen para su identificación y definición de espacio requrido y tipo de volumen iSCSI como se muestra en la Figura B. 7.
Figura B. 7 Configuración de volúmenes de Clusterware.
Lo anterior se realiza para cada uno de los volúmenes mencionados al inicio de la configuración, finalmente el esquema queda como muestra en la en la figura:
106
Figura B. 8 Esquema general de volúmenes.
A continuación se configura la tarjeta iSCSI identificando el target IQN(ver Figura B. 9) y habilitando la tarjeta iSCSI que permitirá el acceso al servidor de almacenamiento (Figura B. 10).
Figura B. 9 Configuración tarjeta iSCSI
107
Figura B. 10 Activación de la tarjeta iSCSI
La siguiente acción es enlazar los grupos de volumenes con los LUN´(ver Figura B.11) mediante el identificador iSCSI iqn.cenac.com.openfiler::tsn.
Figura B. 11 Configuración general de volúmenes
Con lo anterior se concluye la configuración de almacenamiento compartido con Openfiler.
108
Anexo C: Configuración de Clusterware
Para la instalación de Clusterware es necesario contar con el instalador correspondiente Oracle 10g, es necesario contar con la carpeta a la unidad C del nodo maestro, en este caso es el nodo virtual 1. Dentro de la carpeta se selecciona el archivo ejecutable llamado setup.exe, a continuación se iniciara el instalador Oracle universal. En primer plano, se tiene la ventana de bienvenida tomando en cuenta la prueba de productos de Oracle instalados, en caso de que existan archivos relacionados con la aplicación es necesario eliminarlos. Continuando con la instalación, el instalador especifica la ruta y el nombre de la carpeta donde se almacenaran los archivos. Más adelante, se comprobaran los requisitos específicos del producto tal y como se muestra en la Figura C. 1
Figura C. 1 Requisitos específicos del producto
El siguiente paso se agregan los nodos virtuales al cluster existente especificando la nombre de la dirección IP pública, de la Interconexión privada y de la dirección IP virtual, asegurando que no exista ninguna versión anterior de Oracle Cluster Ready como se muestra en la Figura C. 2
109
Figura C. 2 Integración de nodos virtuales a Clusterware
Una vez configurados los nombres se tiene que configurar la clasificación de cluster, seleccionado los nodos que gestionara la aplicación, tenemos que recordar que el nombre de clusterware se denomina CRS. Posteriormente se tiene que especificar el uso de interfaz de red para controlar el tráfico entre nodos, se toma en cuenta que los segmentos de red son totalmente diferentes por custiones de seguridad. Es necesario especificar la información de configuración de la particion seleccionada teniendo la opción de colocar OCR como partición primaria, ademas de formatear la particion con CFS eligiendo la opcion para utilizar la particion para almacenamiento de datos tal como se muestra en la Figura C. 3
Figura C. 3 Especificación de configuración de disco.
110
Más adelante se muestra una lista de disco compartidos (ver disponibles en Clusterware, esta parte se tiene que seleccionar los discos que se deben utilizar para almacenar el disco de arranque complementario de OCR y CSS.
Figura C. 4 Almacenamiento de configuración de cluster.
Finalmente se muestra un resumen de la instalación.