PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR FACULTAD DE INGENIERIA ESCUELA DE SISTEMAS IMPLEMENTACIÓN DE SERVIDORES VIRTUALES EN AMBIENTES



Documentos relacionados
MANUAL TÉCNICO DE IMPLEMENTACIÓN PROYECTO SOCIAL COMPUESCUELA. Elaborado por: Julián A. Hernández M.

Módulo 2. Inicio con Java

UT04 01 Máquinas virtuales (introducción)


INTRODUCCIÓN A LAS REDES INFORMÁTICAS

Máquinas virtuales (VMWare, Virtual PC, Sandbox. Qué son y para qué sirven. (DV00402A)

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

Solución de telefonía para empresas TL Presentación de producto. Telefonía IP

Capitulo V Administración de memoria

... partes internas del computador!...

Maquinas virtuales Conceptos Básicos

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Se encarga de realizar las funciones básicas de manejo y configuración del ordenador. La BIOS tiene más tareas fundamentales: Chequearse a sí misma.

Soluciones innovadoras para optimizar su infraestructura TI. Virtualización con el sistema operativo i, PowerVM y Power Systems de IBM

Act 1: Revisión de Presaberes. Lectura No. 1. Título de la Lectura: El Computador

SIGAN 1.0 SISTEMA DE INFORMACIÓN DE GESTIÓN ADMINISTRATIVA DE NÓMINA

Pruebas y Resultados PRUEBAS Y RESULTADOS AGNI GERMÁN ANDRACA GUTIERREZ

ISO 17799: La gestión de la seguridad de la información

Capítulo 5: Pruebas y evaluación del sistema. A continuación se muestran una serie de pruebas propuestas para evaluar varias

Capítulo 6: Conclusiones

Acceso al Disco Compartido y Dispositivos USB y DVD

Análisis de aplicación: Virtual Machine Manager

CAPÍTULO I. Sistemas de Control Distribuido (SCD).

UNIVERSIDAD TECNOLOGICA ECOTEC DIEGO BARRAGAN MATERIA: Sistemas Operativos 1 ENSAYO: Servidores BLADE

Introducción a la Computación

El Computador. Software

Actividad N 1. Primer procesador creado por Intel

Desarrollo de Aplicaciones Web Por César Bustamante Gutiérrez. Módulo I: Conceptos Básicos Tema 1: Concepto iniciales.

CAPÍTULO 1 Instrumentación Virtual

Herramientas de. Sistemas Informáticos I.E.S. Virgen de la Paloma

Sistemas Operativos de Red

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

METODOLOGÍA E IMPLEMENTACIÓN DEL SIGGA (SISTEMA DE INFORMACION GEOGRAFICA: GOBERNANZA DEL AGUA)

Infraestructura Tecnológica. Sesión 8: Configurar y administrar almacenamiento virtual

Consolidación inteligente de servidores con System Center

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

CAPÍTULO 4 ANÁLISIS DE IMPLEMENTACIONES

Guía de uso del Cloud Datacenter de acens

Qué es una máquina virtual?

NORMATIVA DE HOSTING VIRTUAL DE LA UNIVERSIDAD DE SEVILLA (SIC - JUNIO 2014)

Marco Teórico MARCO TEÓRICO. AGNI GERMÁN ANDRACA GUTIERREZ

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 3: sistemas operativos

Actividades para mejoras. Actividades donde se evalúa constantemente todo el proceso del proyecto para evitar errores y eficientar los procesos.

TALLER No. 1 Capitulo 1: Conceptos Básicos de Bases de datos

Capítulo 5. Cliente-Servidor.

Capítulo 1: Marco teórico

INFORME TECNICO PREVIO DE EVALUACIÓN DE SOFTWARE N /UIE-PATPAL - FBB

Taller de Software Libre

Elementos requeridos para crearlos (ejemplo: el compilador)

Servicio de hospedaje de servidores

Máquinas virtuales. Tema 1 SRI. Vicente Sánchez Patón. I.E.S Gregorio Prieto

Nuevas tendencias: Virtualización de computadores / servidores

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

Administración de infraestructura IT

Conclusiones. Particionado Consciente de los Datos

Cada computadora conectada a la red suele recibir el nombre de estación de trabajo o nodo de la red.

Sistemas de Operación II

GESTIÓN ACADÉMICA GUÍA DIDÁCTICA HACIA LA EXCELENCIA COMPROMISO DE TODOS! Nombres y Apellidos del Estudiante:

LEY QUE NORMA EL USO, ADQUISICIÓN Y ADECUACIÓN DEL SOFTWARE EN LA ADMINISTRACIÓN PUBLICA

UNIVERSIDAD FRANCISCO GAVIDIA Tecnología, Humanismo y Calidad DIRECCION DE POSTGRADOS Y EDUCACION CONTINUA

Nombre de la sesión: Fundamentos de software contable

Ingº CIP Fabian Guerrero Medina Master Web Developer-MWD

Memoria La memoria es la parte del ordenador en la que se guardan o almacenan los programas (las instrucciones y los datos).

Curso: FT433 - Introducción a la virtualización con VirtualBox

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

Capitulo VII. Editor de Mapa de Tareas. Como hemos hablado en los capítulos anteriores, sabemos que parte del éxito

GUÍA DE SEGURIDAD DE LA INFORMACIÓN GUÍA GOBIERNO CORPORATIVO PARA EMPRESAS SEP

4. Base de datos XML nativa: Marklogic

Manual instalación Windows 8. Instalar Windows 8 paso a paso

Es un software instalado en los equipos asignados a los Centros de Consulta con el objetivo de:

CAPITULO 3: SISTEMAS ADICIONALES PARA EL CENTRO DE LLAMADAS DE EMERGENCIA

Intel Tera-Scale Computing Alumno: Roberto Rodriguez Alcala

EL COMPUTADOR. Las computadoras son actualmente

colegio de bachilleres de Chiapas plantel 56 catedrático: Jorge Roberto Nery Gonzales materia: hojas de calculo

Symantec Desktop and Laptop Option

INTEGRACIÓN HERMES POSITRÓN

OSORES DARDO LU: 2238

Semana 1. El software y su aplicación en la vida diaria. Semana El software 1 y su aplicación en la vida diaria. Empecemos! Qué sabes de...?

Práctica Virtual Box.

Lincamiento técnico para la migración de equipos de cómputo de la Universidad de Costa Rica, hacia el Sistema Operativo Windows 10.

CAPÍTULO 2 IMPORTANCIA DE LA ASIGNATURA OUTSOURCING EN TECNOLOGÍAS DE INFORMACIÓN

Sugar en Windows. Creación de una máquina virtual con la imagen de Sugar. Autor. Versión Fecha Setiembre Ubicación

Figura 1.4. Elementos que integran a la Tecnología de Información.

Sistema de Mensajería Empresarial para generación Masiva de DTE

VENTAJAS Y DESVENTAJAS DE LAS TECNOLOGIAS

El proceso de edición digital en Artelope y CTCE

caso de éxito Entrepids Entrepids y Peer 1 Hosting se unen para generar un gran impulso al ecommerce en Latinoamérica

Unidad II Introducción a las redes de computadoras

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

CACHIVACHES. Un estilo de vida CASOS DE ÉXITO

INTELIGENTE Y VERSÁTIL

Administración de puestos de trabajo y servidores

DataMAX pa r a PS3. Manual del Usuario V1.0

MANUAL DE USUARIO TARIFICADOR SIPTAR Y REPORTES SIPTAR.

CAPITULO IV CONCLUSIONES Y RECOMENDACIONES

Servicios Administrados al Cliente

Técnico de Soporte Informático TEMA 02 NUEVAS TECNOLOG AS

Transcripción:

PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR FACULTAD DE INGENIERIA ESCUELA DE SISTEMAS IMPLEMENTACIÓN DE SERVIDORES VIRTUALES EN AMBIENTES LINUX PARA ENTORNOS ORGANIZACIONALES. PROAÑO VILLALBA PATRICIO HERNÁN "Trabajo previo a la obtención del Título de Ingeniero de Sistemas" Quito, 2007 Patricio H. Proaño Villalba 1

CAPITULO 1. INTRODUCCIÓN A LA VIRTUALIZACIÓN Realizar una definición de virtualización es sumamente complejo e inexacto cuando se conoce varios enfoques sobre un aspecto virtual. Cuando se manejan aspectos de virtualidad, cuando se refiere a aulas virtuales, o de espacios virtuales, se lo direcciona a un enfoque hacia el ciberespacio. El único momento en el cual se puede tener claro el concepto de virtualización, será cuando entendamos la virtualización como la esencia de o las propiedades de, entendiendo a estas como la parte abstracta de un todo a tratar. En este capítulo hablaremos sobre la virtualización y los distintos puntos de vista que se han presentado a lo largo de su desarrollo, así como también los distinto enfoques presentados por cada una de las casas comerciales y sus distintas implementaciones. 1.1. Virtualización de Equipos. Al momento de hablar de virtualización de equipos, debemos tener claro lo siguiente: se llama equipo anfitrión, al computador físico que albergara el sistema operativo, sistema que se lo conocerá como sistema operativo anfitrión. El equipo anfitrión se encontrará segmentado en capas, las cuales serán explicadas más adelante. A la virtualización, se la debe entender como una capa, la cual se encargará de separar las capacidades de hardware desde el sistema operativo anfitrión a usar Patricio H. Proaño Villalba 2

sobre el equipo anfitrión, de manera que se pueda obtener un mejor rendimiento de los recursos de hardware, y de esta manera poder explotar la capacidad de la infraestructura. Esta capa de virtualización abstrae el hardware para cada uno de los sistemas operativos invitados, donde entenderemos el concepto de abstracción, como un proceso de separación de las funcionalidades del hardware, lo cual nos permite aumentar las capacidades físicas del equipo anfitrión, sin que las máquinas virtuales se vean afectadas de alguna forma; por esta razón, podemos decir que las máquinas virtuales se encuentran encapsuladas, sin permitir que el entorno virtual se vea afectado al momento de aumentar las capacidades físicas del equipo anfitrión. La virtualización del hardware ofrece varios beneficios, incluyendo la consolidación de la infraestructura, como también nos permite la normalización de los sistemas, el aislamiento de recursos individuales de cada sistema que se encuentren corriendo en un mismo equipo físico. Nos permite generar varias máquinas virtuales que pueden manejar sistemas operativos heterogéneos de manera aislada, sin que un sistema afecte a otro. Cada máquina virtual tiene su conjunto de hardware virtual, donde su única limitante se reflejara en el hardware implementado en el equipo anfitrión, con esto dejamos claro que la capacidad de las máquinas virtuales dependerá mucho de cómo se distribuya el hardware físico, en cada una de las máquinas virtuales implementadas. Una gran ventaja que presentan los equipos virtuales son los costos ya que con la distribución de hardware de una manera apropiada entre equipos virtuales, podemos crear un equipo virtual en cuestión de minutos sin necesidad de invertir un centavo adicional. Patricio H. Proaño Villalba 3

1.1.1 Servidores: Antes y Después de la Virtualización. Hoy en día los servidores y los equipos de escritorio han sido subestimados por sus propios usuarios. La forma tradicional de cargar servidores y equipos de escritorios, se las ha conocido como pasos redundantes en las cuales se refleja procedimientos básicos, y algunos otros que se los consideran complejos. Esto se debe a que la manera tradicional de trabajar en servidores se basa en manejar un servidor para cada una de las tareas destinadas en la empresa, es decir, las empresas normalmente manejan un servidor para producción, otro para desarrollo, uno más para almacenar históricos, y de acuerdo a la utilización que le van a dar, se denota la necesidad del hardware a implementara en cada uno de los servidores. La configuración de estos servidores se ha basado siempre en la instalación de un sistema operativo base, el cual manejará tanto el hardware, así como también ayudará con la operación del software. La capa inicial, es decir el hardware, será toda nuestra infraestructura física de hardware, es decir, en esta capa estamos hablando sobre lo que son los circuitos de nuestra tarjeta madre, la memoria RAM, la unidad central de procesos (CPU), discos duros, tarjetas de red, arreglo de discos RAID, puerto paralelos, USB, ranuras de expansión como son las PCI, PCI Express, etc., es decir todo lo que podamos imaginar con relación a hardware. La segunda capa a la cual haremos referencia es la del sistema operativo, esta capa es la que se encarga de manejar todo el hardware, su función se basa en controlar Patricio H. Proaño Villalba 4

el manejo de interrupciones y comandos para poder operar el hardware de manera optima, ya que si en esta capa no se define una configuración adecuada de cada uno de los dispositivos, no sería posible el manejo de los componentes de una manera adecuada, por tanto no se estaría aprovechando todo el potencial del hardware. Finalmente nuestra tercera capa consiste en las aplicaciones que se ejecutan sobre el sistema base, es decir, se llega a considera a cada una de las aplicaciones como una capa, la cual envía mensajes al sistema operativo, indicando que tipo de interrupciones y cuanta de cada una de ellas necesita para poder operar. A continuación en la Figura 1.1, se presenta una ilustración para poder tener idea más clara de cómo se encuentran estructurados estos sistemas. Figura1.1: Estructura de un Servidor Patricio H. Proaño Villalba 5

Ahora cuando hablamos de un sistema de virtualización, este se encuentra estructurado de dos formas. La inicial considerada para el manejo de servidores, opción principal por presentar rendimientos óptimos, es la siguiente: Mantenemos la capa inicial, que hace referencia al hardware, ya que sin ésta, por obvias razones, no se podría hablar de un equipo; como segunda capa, tenemos a la capa de virtualización, la cual es la que maneja nuestro hardware de manera directa, es decir, esta capa maneja la infraestructura del equipo anfitrión con scripts y servicios necesarios para operar el hardware. Como tercera capa tenemos a cada uno de los sistemas que se desean operar sobre la capa de virtualización, de manera que cada sistema es operado como una unidad. Estos sistemas manejarán el hardware virtual que ha sido asignado para cada uno, de esta manera se puede obtener un mayor desempeño del hardware. Para poder tener una idea más clara sobre la estructura basada en una virtualización de hardware para poder implementar varios equipos, tenemos la siguiente ilustración. Patricio H. Proaño Villalba 6

Figura 1.2: Estructura de virtualización de servidores El manejar las interrupciones de esta forma, nos permite poder aprovechar de una mejor manera el hardware, gracias a que la capa de virtualización se basa en un KERNEL centrado específicamente en el manejo de interrupciones de los dispositivos de hardware. 1.1.2 PCs de Escritorio: Antes y Después de la Virtualización. De igual forma es importante conocer sobre los beneficios que también ha brindado la virtualización en lo referente a las PCs de escritorio, mejor conocidas como estaciones de trabajo que son asignadas a una persona para poder realizar sus actividades Patricio H. Proaño Villalba 7

Primero debemos tener claro que la funcionalidad de las PCs de escritorio viene a ser otra. En un inicio en varias empresas se manejaba la misma estructura principal de servidores, es decir la infraestructura de capas se hace de la misma forma como se indicia en la Figura 1.1. Por otro lado muchas empresas, como son las empresas multinacionales, que poseen aplicaciones sumamente potentes y hacen uso de máquinas de prueba, las cuales son utilizadas para verificar que el uso operativo de una aplicación sea la apropiada, ahora éstas pueden ser reemplazadas por equipos virtuales en la misma PC de escritorio gracias a la virtualización. La estructura de capas utilizada por esta infraestructura se muestra en la Figura 1.3. En este caso la capa de virtualización es manejada como una aplicación sobre el sistema operativo anfitrión, la diferencia aquí se notará en el rendimiento de acuerdo a los recursos instalados en el equipo, y a su vez por el número de servicios que el sistema operativo anfitrión se ve obligado a levantar cada vez que inicia. Sin embargo, a pesar de ser considerada una infraestructura compleja, maneja de forma adecuada los recursos que deben ser compartidos entre sistema operativo y la capa de virtualización, esta opción está siendo tomada para implementar servidores de la misma forma, ya que los equipos de hoy en día manejan hardware sumamente potente, y en muchos de los casos es desperdiciado. En capítulos posteriores profundizaremos sobre el hardware necesario para poder implementar cada uno de estos tipos de servidores/equipos virtuales. Patricio H. Proaño Villalba 8

Figura 1.3: Estructura de capaz para virtualización de equipos. 1.2. Origen de la Virtualización. El concepto de virtualización de equipos se ha utilizado para resolver varios tipos de problemas, ideas que van desde particionar equipos, hasta crear equipos que trabajen en paralelo, lo que ha sido posible generar varias soluciones que se han ido implementando poco a poco de acuerdo a los requerimientos de infraestructura que se presenten. La idea inicial de equipos virtuales se fortaleció en estos últimos 4 años gracias a las grandes capacidades de procesamiento y almacenamiento que proporcionan los equipos. Por consiguiente se entenderá a la virtualización como la encapsulación de un equipo dentro de otro, y a los equipos virtuales como equipos homogéneos que comparten el mismo espacio físico sin necesidad de verse afectados. 1.2.1. Virtualización IBM Patricio H. Proaño Villalba 9

Por el año de 1965 los investigadores de IBM se pusieron de acuerdo para poder comprobar la efectividad en el campo de la computación. Todos los estudios por parte de IBM se realizaron en el IBM YorkTown Center; la idea principal consistía en poder particionar el equipos en partes pequeñas, de manera que el equipo pueda manejar cada una de estas particiones y a la vez, que cada una de estas partes esté en la capacidad de administrar los recursos asignados, de manera que los investigadores puedan probar las particiones bajo distintas condiciones. Desde un inicio ellos consideraron que esta virtualización de equipos sería totalmente exitosa. Después del experimento, y considerando los equipos de la época de 1965, los cuales eran máquinas potentes conocidas como mainframes, la idea consistió en crear un sistema operativo que permita generar distintos ambientes operativos de acuerdo al número de usuarios, sin verse afectados ninguno de los usuarios al momento de operar sus ambientes. Este sistema y el equipo, son conocidos hoy en día como el IBM System 370 y el IBM System 390, estos equipos manejaban el sistema operativo IBM VM/ESA, y son mejor reconocidos como la parte principal del linaje de máquinas virtuales de IBM. 1.2.2. Virtualización UNIX El sistema operativo UNIX fue creado a raíz de un escrito publicado en el año de 1974 por Dense Richie y Ken Thompson colaboradores de Bell Labs. La idea del sistema de operativo UNIX se implementó inmediatamente en los equipos PDP-11, equipos que se encontraban ubicados en varias universidades a los largo del Patricio H. Proaño Villalba 10

mundo, de esta manera gracias a los aportes de estudiantes, el sistema operativo UNIX tomó mayor forma y adaptabilidad con relación de los equipos. Gracias a ésto, desde el año de 1980 al 1985, la IEEE comenzó a aplicar estándares para lo que sería el próximo sistema operativo virtual conocido como Proyecto POSIX (Portable Operating System). La idea principal consistía en establecer estándares en las librerías de funciones de UNIX de manera que cualquier desarrollador de software pueda escribir código de programación para cualquier equipo que maneje el sistema operativo UNIX. Para el año de 1990 el POSIX de IEEE, basado en UNIX, publicó el articulo Information Technology Portable Operating System Interface, el cual especificaba los estándares del shell de UNIX y las distintas utilidades que se podía dar a las rutinas establecidas en las librerías, lo cual permitió formalizar la interfase de aplicaciones de UNIX, estableciendo a los procesos de UNIX como equipos virtuales. 1.2.3. Virtualización JAVA En este caso la idea de una maquina virtual, se tornó a ser mucho más compleja que las anteriores, ya que en muchos de los casos como IBM y UNIX, se basaron en tomar sistemas operativos base y realizar las modificaciones necesarias para que estas tomaran la funcionalidad de un equipo virtual. Patricio H. Proaño Villalba 11

Para el año de 1970, Bill Joy tomó la concepción del lenguaje que se lo conocería más tarde como JAVA. Joy conceptualizó la idea de tomar lo mejor del lenguaje C y MESA. Para el año de 1990 Bill Joy escribió un trabajo llamado Further (Más Allá), el cual alentaba a los ingenieros de la Sun Microsystems, a generar un sistema basado en objetos, el cual debía ser escrito en C. A partir de ésto, James Gosling había trabajado en un proyecto basado en dicha conceptualización, este proyecto los llamó Imagination, teniendo como resultado el lenguaje de programación OAK. Para diciembre 5 de 1990, Patrick Naughton, Mike Sheridan, y James Gosling le apostaron a un sistema de las características establecidas por Bill Joy, por tanto comenzaron a trabajar en interfases graficas y funcionalidades, todo esto desarrollado en el lenguaje C. A este proyecto se lo conoció como Green Project. Para el año de 1991, Patrick Naughton, Mike Sheridan, y James Gosling le apostaron a los sistemas portátiles inteligentes, tales como las PDA s para poder utilizar su sistema, el cual posteriormente, fue escrito en el lenguaje OAK. Si un mercado versátil, y con muy poco interés por lo desarrollado, para el año de 1994, Green Project fue entregado a Sun Microsystems. Sin embargo al notar que muchas de las necesidades para los sistemas portátiles inteligentes, eran muy similares con las necesidades del Web en cuanto al manejo de aplicaciones. Una vez más el proyecto fue redireccionado, esta vez hacia un ambiente Web. Un prototipo de navegador llamado WebRunner fue escrito por Patrick Naughton. Patricio H. Proaño Villalba 12

Después de varios esfuerzos nació HotJava. Para el año de 1995 el lenguaje OAK, fue bautizado como JAVA. En mayo de 1995 la primera caja de herramientas de JAVA para la programación había nacido, mejor conocido como Java Development Kit 1.0 alpha, desde ese entonces existen actualizaciones del lenguaje de programación de Java, el cual no permite generar aplicaciones, las cuales pueden ser ejecutadas en cualquier equipo mientras posean la Maquina Virtual de Java (JVM Java Virtual Machine). Virtualización Año Sistema Operativo Creador IBM 1965 IBM VM/ESA IBM UNIX 1974 POSIX Java 1970 S.O. con Máquina Virtual de Java Dense Richie, Ken Thompson Bill Joy Tabla 1.1: Datos importantes de virtualizaciones 1.3. Tipos de Virtualizaciones. Existe gran variedad de máquinas virtuales, las cuales se clasifican de acuerdo a como es manejado el proceso de virtualización. Se puede lograr la virtualización de distintas formas entre estas están el emular completamente el hardware de una computadora, o mapeando los recursos desde la computadora física hacia la maquina virtual. El emular un máquina virtual es el proceso de duplicar la estructura del equipo a través de software, mientras que el mapear es el proceso de atrapar las rutinas ejecutadas por medio de un software específico para posteriormente pasarlas a la parte física y que éstas sean ejecutadas. Ambos casos funcionan bien, y brindan buenos resultados. Sin embargo, es necesario destacar que la industria se Patricio H. Proaño Villalba 13

ha ido propagando y ha ido generando distintas herramientas para la virtualización. Estas se dividen en: Emuladores de Hardware. Máquinas Virtuales de Aplicaciones. Máquinas Virtuales Tipo Mainframe. Máquinas Virtuales por Sistemas Operativos. Máquinas Virtuales Paralelas 1.3.1. Emuladores de Hardware. La funcionalidad de los emuladores consiste en duplicar la estructura física de un equipo a través de software, de manera que brinda distintas funcionalidades de acuerdo al hardware instalado en el equipo. La idea cosiste en poder emular distintos tipos de plataformas sobre una plataforma distinta, un claro ejemplo de esto es el caso de Microsoft Virtual PC para Mac. Virtual PC lo que hace es emular la infraestructura i386 sobre el chip PowerPC. Los emuladores de hardware son buenos para poder recrear infraestructuras que ya no existen, estos se enfocan en ejecutar software que ha sido desarrollado para plataformas de arquitectura de procesador específico, de manera que las aplicaciones puedan ser ejecutadas en arquitecturas diferentes. 1.3.2. Máquinas Virtuales de Aplicaciones. Se trata de aplicaciones que pueden ser ejecutadas en distintas plataformas y en distintos sistemas operativos, estos son considerados programas portables ya que pueden ser ejecutados en cualquier tipo de equipo, facilitando al programador el Patricio H. Proaño Villalba 14

trabajo de programar una aplicación una sola vez; sin embargo requieren de un componente especifico para poder ser ejecutados, este componente representa la máquina virtual sobre el sistema operativo, el cual le permite interpretar las instrucciones de acuerdo al sistema operativo para finalmente poder presentar un resultado correcto al usuario. Un ejemplo muy claro relacionado con este tipo de máquinas virtuales es el caso de JAVA. 1.3.3. Máquinas Virtuales Tipo Mainframe. Este tipo de máquinas virtuales, se encargan de emular el equipo anfitrión, no solo a nivel de software sino también a nivel de hardware, dando la ilusión al usuario, que está operando un equipo individual con características únicas. Este tipo de sistemas permiten la compartición de recursos entre varios usuarios brindando a cada uno las mismas características, sin mostrar interferencia alguna entre los procesos que ejecuta cada usuario que se encuentra conectado a cada una de las estaciones virtuales. Un claro ejemplo de máquinas virtuales tipo mainframe, es el caso del System/370 y el System/390 de IBM. 1.3.4. Máquinas Virtuales por Sistemas Operativos. La funcionalidad de este tipo de equipos consiste en crear un entorno de un sistema operativo específico para cada usuario. A diferencia de las máquinas virtuales tipo mainframe, las máquinas virtuales de sistemas operativos, tienen como finalidad de crear una virtualización en base al mapeo del hardware del equipo hacia el sistema operativo invitado. La máquina virtual maneja su propio sistema operativo, aplicaciones que nos permiten este tipo de virtualización, son VMWARE Server, Patricio H. Proaño Villalba 15

VMWARE Workstation, VMWARE GSX Server, así como también Microsoft Virtual PC y Virtual Server. 1.3.5. Máquinas Virtuales Paralelas Talvez sea muy complicado el poder diferenciar en máquinas virtuales paralelas y el procesamiento paralelo de información. Las máquinas virtuales paralelas, son una herramienta diseñada para solucionarnos una gran cantidad de problemas asociados con la programación paralela. Para ello, se crea una nueva abstracción, empleando los recursos libres de todos los equipos de una red que pongamos a disposición, es decir, empleamos los recursos hardware de la red; pero programando el conjunto de máquinas como si se tratara de una sola máquina, generando así una máquina virtual paralela. 1.4. Implementación de Máquinas Virtuales por parte de las distintas Casas Comerciales La implementación de servidores virtuales ha demostrado que sus resultados son muy satisfactorios. Sin embargo el desconocimiento de los tipos de virtualizaciones, a llevado a los usuarios a no saber que tipo de virtualización aplicar. Vale la pena destacar que existen virtualizaciones que van desde el manejo de interrupciones de manera individual, hasta el manejo de interrupciones de manera global seccionándolas de acuerdo a la necesidad, y la emulación de interrupciones entre otras formas. Patricio H. Proaño Villalba 16

A continuación se enlistan los distintos tipos de virtualizaciones y su funcionalidad. De manera que se pueda tener un mejor entendimiento sobre cada una de las virtualizaciones que se han presentado conforme el paso del tiempo. 1.4.1. Virtualización IBM. Una de las formas más conocidas de virtualizar equipos fue la de IBM, ya que su concepto se basó en tener un mainframe con grandes capacidades para posteriormente particionarlo en varios equipos, siendo estos equipos virtuales exactamente iguales con las mismas capacidades que el equipo mainframe pero en menor proporción. La manera en la que la máquina virtual de IBM funciona es muy similar a otro tipo de entornos virtuales como es el de VMWARE, los distintos equipos que se encuentran conectados al mainframe, manejan interrupciones virtuales, las cuales son mapeadas hacia el sistema de interrupciones físico para ser interpretados y finalmente ser ejecutados. A pesar de esta funcionalidad, muchas dudas surgen al momento de hablar de seguridad, ya que se consideraría que cualquier usuario estaría en la capacidad de ejecutar interrupciones que puedan dañar el sistema; lo importante es conocer que cada usuario posee ciertos privilegios sobre el mainframe, de manera que las seguridades pueden ser manejadas de una manera controlada de acuerdo al tipo de usuario que opera la estación. Por lo tanto, la maquina virtual de IBM maneja todas las interrupciones no sensitivas directamente con el mapeador, mientras que las interrupciones sensitivas son Patricio H. Proaño Villalba 17

bloqueadas de acuerdo al tipo de usuario. Cuando la máquina virtual bloquea las instrucciones sensitivas, trata de simular la operación deseada, generando el error que provocaría hacia el usuario e indicando el problema que se genera debido a la ejecución de dicha instrucción. Este procedimiento permite mantener la integridad del sistema para el resto de usuarios, mientras que para el usuario que ejecutó dicha instrucción, le presentará un error de ejecución, brindando estabilidad al resto de usuarios. Profundizando más en el tema del manejo de instrucciones por parte del sistema operativo, podemos decir que el sistema operativo virtual de cada estación, viene a ser el cerebro de la arquitectura virtual. El sistema operativo de las estaciones y el hardware es conocido como el VM System (Sistema de Maquina Virtual). Cada sistema de maquina virtual es controlado por un programa llamado Control Program (Programa de Control). Además para la administración del hardware físico, el Control Program crea una máquina virtual para cada una de las estaciones de usuario, siendo ésta una versión virtual del mainframe. La parte importante sobre la funcionalidad de la virtualización es que cada uno de los usuarios es libre de ejecutar cualquier programa, almacenar datos, e inclusive colapsar la máquina virtual sin interferir en el trabajo del resto de usuarios. Sin embargo un problema que presenta la máquina virtual de IBM, es que no permite la compartición de recursos entre estaciones así como también la protección de los recursos del sistema. La parte más importante del sistema es el Control Program, ya que es el sistema que corre directamente sobre el hardware del mainframe. El Control Program Patricio H. Proaño Villalba 18

administra los sistemas de soporte, incluyendo las interrupciones de encendido y apagado, así como también las características de programación y mantenimiento de cada una de las estaciones virtuales de usuario. Por otro lado, cada una de las estaciones virtuales posee el CMS (Conversational Monitor System), a pesar que su nombre suena bastante complejo, este sistema maneja las interfases de usuario, el manejo de archivos, además posee la habilidad de administrar la memoria, cargar y ejecutar programas e inclusive la codificación de aplicaciones. El CMS se lo conoce porque además de ser un sistema que maneja tareas de uno en uno tiene la habilidad de funcionar como un sistema multitarea. Vale la pena destacar que cada una de las estaciones virtuales maneja una copia individual del CMS para poder operar de una manera eficiente. La máquina virtual de IBM brinda la oportunidad de compartir varias estaciones virtuales por usuario de una manera segura, brindando a la vez la misma funcionalidad, privacidad, para todos los usuarios. Después de 30 años de constante mejoramientos, a este sistema se lo considera sumamente estable, es usado mayormente en empresas y universidades gracias a su individualidad en las estaciones. 1.4.2. Virtualización UNIX. El concepto de máquina virtual en el ámbito de UNIX, es considerado uno de los modelos más refinados, es por esta razon que el sistema operativo UNIX ha adquirido un gran respeto en la comunidad informática, además de ser un sistema que se ha ido actualizando y adaptando a las nuevas tecnologías que se van Patricio H. Proaño Villalba 19

presentando. Su estabilidad es incomparable, es por esta razon que en el manejo de estaciones/equipos virtuales su funcionalidad es totalmente exitosa. Su característica en la virtualización, está muy relacionada con la infraestructura de IBM, ya que maneja interfases virtuales exactamente iguales, es decir, cada uno de los equipos virtuales maneja recursos de hardware y software exactamente iguales, todo ejecutándose sobre una misma plataforma, la cual administra los recursos de acuerdo al número de interfases. Cada uno de los procesos es manejado por la interfase del usuario de manera individual, sin embargo no maneja el mismo sistema de aislamiento de usuarios que IBM ya que UNIX permite que los usuarios se puedan relacionar y compartir recursos aunque sea de una manera limitada. La Figura 1.4 explica de una mejor manera como funcionan las interfases virtuales, podemos notar como cada una de las estaciones pueden ser manejadas por usuarios, sin embargo cada uno de los usuarios para poder realizar procesos y transacciones, hacen referencia a la misma unidad de procesos, la cual segmenta sus recursos para poder manejar las distintas solicitudes de hardware por parte de cada uno de los usuarios. Es importante destacar que el sistema operativo UNIX fue construido para proveer un conjunto de librerías y servicios uniforme al usuario cuando los procesos se encuentran en ejecución. El sistema UNIX está conformado por capas, cada una de estas capas provee servicios y funciones a la capa superior. Esta estandarización de capas dentro del Patricio H. Proaño Villalba 20

sistema, permite a los usuarios ejecutar programas en distintas plataformas usando un conjunto de funciones estándar. Figura 1.4 1 : Interfaz virtual UNIX Mientras el código de un programa debe ser compilado por una plataforma específica, esta estandarización permite que el código de cualquier programa pueda ser compilado por otras variaciones de plataformas UNIX gracias a la estandarización de librerías y funciones. A su vez podemos ver como cada una de las capas en la Figura 1.5, esta íntimamente relacionadas, y como cada una de depende de sus sucesoras para poder operar el sistema de una manera correcta y eficiente, brindando estabilidad y 1 Fuente: http://www.cs.gmu.edu/cne/itcore/virtualmachine/unix.htm Patricio H. Proaño Villalba 21

seguridad a los usuarios al momento de operar desde las estaciones virtuales, consideradas virtuales ya que el centro de procesos segmenta los recursos para cada una de las máquinas virtuales. Figura 1.5: Capas por como se encuentra conformado UNIX Por la manera en que se encuentra estructurado el sistema operativo y gracias a su estandarización de librería y funciones, podemos notar como el sistema operativo UNIX maneja un concepto de virtualización al momento de operar con estaciones de usuario ya que asigna los recursos necesarios a cada una de las estaciones para poder obtener estaciones exactas en cuanto a características se refiere. A su vez cada una de las instrucciones que efectúa una estación, es interpretada por la unidad central de procesos para que posteriormente el resultado se refleje en cada una de las estaciones según corresponda. 1.4.3. Virtualización JAVA Patricio H. Proaño Villalba 22

Un concepto que se maneja muy frecuente es la simulación de una máquina, que a su vez es conceptualizada como una virtualización. La idea de JAVA es muy lejana con respecto al concepto que presenta IBM y UNIX, ya que cada una de éstas lo que ha hecho a lo largo de los tiempos, es tomar la infraestructura física de los equipos y a través sus sistema operativo, segmentar el hardware para poder generar estaciones de características similares. JAVA apostó por otro tipo de virtualización el cual mostró resultados excelentes al momento de operar en los equipos actuales. La idea principal consiste en poder ejecutar una aplicación desarrollada en un lenguaje nativo, en cualquier tipo de máquina. Para que esta aplicación pueda ser ejecutada en cualquier equipo, requiere de un componente específico, en este caso es el JVM (Java Virtual Machine), que se lo conoce como la Máquina Virtual de Java. Este componente permitió la versatibilidad de poder generar aplicaciones para distintos tipos de sistemas operativos y equipos que fuesen compatibles con JVM; posteriormente la acogida hacia el lenguaje de programación Java fue totalmente abrumadora, ya que los desarrolladores pudieron constatar que al manejar este leguaje, podrían abarcar plataformas que antes con un lenguaje no podían, brindando portabilidad a sus aplicaciones. Esta portabilidad fue la razón principal por la cual Java es considerado el lenguaje de programación para el Internet. La Máquina Virtual de Java, es sumamente pequeña, en otras palabras, no usa grandes cantidades de recursos del sistema, Patricio H. Proaño Villalba 23

esto quiere decir que la máquina virtual de java puede ser instalada en varios tipos de máquinas, ya sean teléfonos celulares, televisores, computadores, refrigeradores, etc., permitiendo una operación sobre los distintos dispositivos gracias a su maquina virtual, que conecta las interrupciones de hardware con los procesos a ejecutarse por medio de la aplicación. La verdadera pregunta al momento de hablar sobre la Máquina Virtual de Java es: cómo exactamente funciona? Bueno, la máquina virtual de Java es a lo que se le puede llamar un computador abstracto, en otras palabras, es una capa adicional que se encuentra sobre el sistema operativo y sus interrupciones de hardware como lo muestra la Figura 1.6, es decir, las aplicaciones Java son compiladas para la máquina virtual de java, más no para el sistema en sí, por tanto el momento en que un programador codifica aplicaciones de Java, y las compila generando byte codes, lo que está haciendo es interpretar dichos comandos para posteriormente traducirlos a byte codes los cuales serán interpretados por la Maquina Virtual de Java más no para el equipo anfitrión directamente, lo que nos permite entender que no importara el sistema operativo que maneje el equipo, siempre y cuando tenga instalada la Máquina Virtual de Java. Patricio H. Proaño Villalba 24

Figura 1.6: Capaz por como se encuentra JVM en relación al equipo anfitrión El manejo de las instrucciones son ejecutadas para poder generar una salida deseada. La Figura 1.7 muestra como el programa java es interpretado hasta generar la salida deseada. Figura 1.7: Proceso de compilación/ejecución de aplicaciones JAVA 1.4.4. Equipos Virtuales VMWARE Es necesario aclarar que a partir de muchas prácticas e implementaciones de máquinas virtuales, con distintas tecnologías, VMWARE desarrolló una estructura sólida y óptima de manera que se puede implementar equipos virtuales mucho más fáciles y simplificados. El objetivo original de VMWARE es el incorporar tecnología Patricio H. Proaño Villalba 25

de máquinas virtuales de clase mainframe a los computadores estándar de la industria. Las funcionalidades que brinda VMWARE van mucho más allá que las tecnologías anteriormente representadas. Por tanto podemos constatar que las funcionalidades que brinda VMWARE son muy similares a las de los equipos virtuales de tipo mainframe con una conjugación de las máquinas virtuales de sistemas operativos. Virtualización IBM UNIX Java VMWARE Características Toma la infraestructura física de los equipos y a través sus sistema operativo, segmenta el hardware para poder generar estaciones de características similares. Consiste en poder ejecutar una aplicación desarrollada en un lenguaje nativo, en cualquier tipo de máquina. Esta aplicación puede ser ejecutada en cualquier equipo gracias a la JVM (Java Virtual Machine), que se lo conoce como la Máquina Virtual de Java. Maneja cada una de los componentes que conforman un equipo/servidor como capas, siendo la capa inicial el Hardware por el cual se encuentra conformado el equipo anfitrión Tabla 1.2: Resumen de Tipos de Equipos virtuales CAPITULO 2. TÉCNICAS Y HERRAMIENTAS UTILIZADAS PARA LA IMPLEMENTACION DE SERVIDORES VIRTUALES Uno de los principales factores al momento de considerar la virtualización de un servidor, es tener claro la utilidad que se le dará al servidor virtual. Las empresas Patricio H. Proaño Villalba 26

manejan servidores para distintas finalidades como son el almacenamiento de datos, administración de correo interno y externo, manejan servidores de producción en los cuales se ejecutan los distintos procesos transaccionales, procesos que manipulan los datos de la empresa para posteriormente almacenar la información que se ha obtenido como resultado, también utilizan servidores de pruebas y desarrollo entre otros, los cuales se encuentran relacionados con la codificación de aplicaciones y sus pruebas respectivas durante o después del desarrollo, la mayor tendencia que existe hoy en día es la implementación de servidores para aplicaciones Web, o servidores ftp para compartir datos, entre otros. En el presente capítulo haremos una revisión sobre las aplicaciones de software para poder realizar una virtualización y las analizaremos de manera que podamos entender, sus ventajas y desventajas, al momento de ser utilizadas. 2.1. Técnicas de la Virtualización de Servidores. Se debe considerar la utilidad del servidor, ya que como explicamos en el capítulo anterior, el tipo de servidor, e inclusive el tipo de virtualización dependerá mucho de la utilidad que se le dará al equipo virtual así como también de los recursos que se tendrán que disponer para el proceso de virtualización. Principalmente el modelo de virtualización a utilizar será el de máquinas virtuales por sistemas operativos, ya que esta opción nos permite interactuar con el hardware de manera directa a través de un mapeo, y además nos permite gestionar los recursos del sistema para cada una de las máquinas virtuales, así como también para cada una de las estaciones virtuales a implementar. Patricio H. Proaño Villalba 27

Un factor sumamente importante al momento de definir la virtualización a realizar, es el definir los recursos de hardware que serán necesarios para poder poner en marcha el proyecto de servidores virtuales; más adelante especificaremos cuantos equipos virtuales pueden ser implementados en un equipo de características específicas. Las grandes empresas en especial las multinacionales, vienen a ser empresas que manejan gran cantidad de información y requieren implementar infraestructura virtual para poder ahorrar costos, espacio físico y recursos; es por esta razón que las empresas prefieren invertir recursos en equipos sumamente potentes, con servidores de más de dos procesadores, y almacenamiento superior con relación a un servidor regular, para después implementar varios servidores virtuales en un mismo equipo físico, de esta manera ahorran grandes recursos y posibles actividades, como el simplificar la infraestructura de Tecnologías de la Información a fin de facilitar la administración de los recursos, a la vez que se evita la expansión innecesaria de los centro de datos, reducir el costo total de propiedad, lo cual permite transferir el presupuesto de TI hacia el establecimiento de servicios nuevos y mejores, disminuir el tiempo de recuperación en caso de desastres de días a minutos, lo cual permite que los servicios empresariales se tornen más fiables con mayor nivel de disponibilidad, y reduzca el riesgo empresarial y las pérdidas de tiempo real provenientes del tiempo de inactividad, simplificar las pruebas y el desarrollo con varios entornos en una sola estación de trabajo para proporcionar agilidad y flexibilidad desde el centro de datos hasta el escritorio, entre otros. Patricio H. Proaño Villalba 28

Patricio H. Proaño Villalba 29

2.2. Aplicaciones de software para la implementación de distintos tipos Servidores Virtuales La tendencia sobre la implementación de servidores virtuales, va sobre la línea de servidores virtuales por sistema operativo, ya que este tipo de virtualización ha demostrado ser robusta y óptima, por tanto las herramientas que se explicarán a continuación son herramientas enfocadas a este tipo de virtualización. Estas herramientas se encuentran íntimamente relacionadas con el tipo de servidor a implementar. Las herramientas más notables son Virtual PC y las herramientas VMWARE. VMWARE es muy similar a Virtual PC, su gran diferencia radica en que el rendimiento VMWARE varía dependiendo de las características del hardware disponible y de los recursos virtuales asignados a cada uno de los sistemas virtuales, mientras que Virtual PC emula una plataforma x86, por tanto la mayor parte de las instrucciones de VMWARE se ejecutan directamente sobre el hardware físico a través de la capa de virtualización, mientras que en el caso de Virtual PC, las instrucciones son interpretadas en llamadas al sistema operativo que es ejecutado en el sistema operativo del equipo anfitrión. Mientras que Virtual Server viene a ser una concepción similar a VMWARE. 2.2.1. Microsoft Virtual PC/ Server Patricio H. Proaño Villalba 30

Virtual PC maneja tanto versiones para Windows como para Macintosh. Se presenta de una manera muy limitada ya que para la versión de Windows, Virtual PC no emula el procesador sino que permite que el mismo procesador maneje todas las instrucciones de los equipos virtuales, generando inestabilidad en la plataforma y no manejando las instrucciones de hardware de una manera apropiada, por tanto el mapeo es débil y no es preciso, generando aún mayor inestabilidad entre aplicaciones que pueden estar en ejecución. Por otro lado, la versión para MacOS de Virtual PC, es insuficiente en cuanto a recursos se refiere. Virtual PC no permite gestionar los recursos de hardware de una manera directa que se limita a emular las instrucciones de hardware como si fuera un equipo de bajo rendimiento, para ser más concisos, Virtual PC para MacOS se limita a emular un procesador Intel Pentium II, una placa con un chip Intel 440BX, una tarjeta de video S3 Trío32/64 con 4mb. de memoria SVGA, un chip de BIOS de American Megatrends, una tarjeta de sonido SoundBlaster 16 y una tarjeta de red, estableciendo un equipo virtual de rendimiento pobre y dejando mucho que desear al momento de ejecutar varias aplicaciones a la vez. Su incremento de debilidad al momento de hablar de soporte con respecto a los programas, debido a que no presenta soporte en todos los programas, ya que podrían existir posibles fallos debido a errores en tiempo de ejecución. Por otra parte Virtual Server se presenta como una opción empresarial robusta con relación a Virtual PC, sin embargo su fase de pruebas y su presentación tardía en el mercado con relación a otras soluciones como las de VMWARE, hacen que se pierda credibilidad al momento de decidirse por Virtual Server, sin embargo brinda Patricio H. Proaño Villalba 31

soluciones como compatibilidad con todos los sistemas operativos Windows, lo cual representa una limitante para el usuario final, ya que no puede abrirse del paraguas de servicios de Microsoft, un principal aspecto de Virtual Server es que no se limita a emular características especificas de hardware, sino que maneja y permite administrar los recursos de hardware de acuerdo a los requerimientos específicos de cada equipo virtual, brindando estabilidad en los procesos y tiempos de ejecución, en sí representa una mejora a gran escala de Virtual PC para entornos empresariales. 2.2.2. VMWARE Se caracteriza por se un sistema de virtualización por software, el cual simula un equipo físico basándose en el hardware que tiene disponible, de esta manera puede gestionar el hardware, es decir que cuando ejecuta un programa, proporciona un ambiente de ejecución similar al hardware pre-instalado en el equipo, es decir, genera un ambiente que se encuentra ligado al tipo de procesador o procesadores instalados, BIOS, tarjeta de video, memoria ram, tarjeta de red, sonido, conexión USB, etc. La función que cumple VMWARE, por ser un virtualizador por software, es el permitir ejecutar varios equipos dentro de un mismo hardware de manera simultánea, permitiendo así aprovechar todos los recursos, y en la mayoría de casos generar un rendimiento suficientemente válido para usarse en entornos de producción. Patricio H. Proaño Villalba 32

2.2.2.1. VMWARE ESX Se trata de una versión de VMWARE que corre como sistema operativo dedicado al manejo y administración de equipos virtuales. Lo interesante de este sistema es que no se trata de un sistema que requiere un sistema operativo anfitrión para ser instalado. El sistema operativo de WMWARE ESX se encuentra basado en el Kernel de Linux, brindado gran estabilidad y rendimiento en los equipos virtuales. Por ser un sistema pensado para la centralización de servidores, esta versión no es compatible con la mayoría de hardware relacionado con equipos personales, ya que su enfoque es más a nivel corporativo. VMWARE ESX se encuentra estructurada como se muestra en la Figura 2.1. Figura 2.1: Capas VMWARE Esx 2.2.2.2. VMWARE SERVER (Anteriormente GSX) Patricio H. Proaño Villalba 33

A diferencia de VMWARE ESX, WMWARE SERVER/GSX, es un sistema que requiere de un sistema operativo anfitrión en el equipo para poder operar de una manera adecuada. En esta versión a diferencia de la versión GSX, VMWARE Server posee una mejor administración y manejo de recursos. SU funcionalidad se encuentra estructurada en la Figura 2.2: Figura 2.2: Capas VMWARE Server 2.2.3. BOCHS (GNU) Es un programa que a diferencia de los anteriores, se encuentra bajo una licencia GPL, nos permite emular un equipo de arquitectura x86, por tanto se puede instalar cualquier tipo de sistema operativo que pueda correr en plataformas x86 y sus respectivas aplicaciones. La estructura de BOCHS es similar a la de VMWARE Server, sin embargo no logra obtener la misma estabilidad y eficiencia al momento de implementar y ejecutar los equipos virtuales. Patricio H. Proaño Villalba 34

Su deficiencia principal se basa en la lentitud al momento de querer implementar sistemas operativos recientes en la máquina virtual generada, ya que para poder admitir ciertas configuraciones del sistema operativo del equipo virtual se requiere configuraciones adicionales en el programa, y el ser totalmente Open Source, representa limitaciones al momento de depender de una actualización. 2.3. Hardware Virtual Es importante destacar que al momento de definir las características que desearemos para nuestro equipo virtual, es de vital importancia considerar para que será utilizado el equipo; ya que si hablamos de equipos virtuales a nivel de servidores; debemos considerar que tipo de servidor será, ya que puede ser un servidor de correo, de almacenamiento, de desarrollo, de pruebas, un servidor transaccional, etc.; a la vez que analizamos todas las posibilidades, debemos considerar cuantos servidores virtuales de cada tipo necesitaremos y de esta manera podremos pensar en la características de hardware virtual necesarias para poder implementar un servidor virtual. A la vez un aspecto sumamente importante a considerar es el nivel de uso que tendrá el servidor, de esta manera podemos requerir mayor o menor capacidad de hardware. Una gran ventaja que presenta la implementación de equipos virtuales, es que se puede distribuir los recursos de hardware entre varios servidores, brindando la posibilidad de poder adquirir hardware que a lo mejor se piensa no se lo utilizara a un cien por ciento, sin embargo, la realidad es que el tener cierto porcentaje del hardware subutilizado, nos deja la puerta abierta para poder implementar posteriormente un nuevo equipo virtual. Es por esta razón que muchas empresas ya sean grandes o pequeñas están Patricio H. Proaño Villalba 35

optando por esta opción, ya que el costo de hardware se presenta una sola vez como una gran inversión para posteriormente poder utilizarlo. Un factor que ha influenciado mucho en el mundo de la virtualización son los costos que representa la adquisición del hardware, ya que conforme pasa el tiempo y la tecnología avanza a pasos agigantados, ésto ha permitido que los costos bajen considerablemente. Además el costo es un factor que ha ayudado a la virtualización de equipos, ya que como comentamos en capítulos anteriores, hoy en día se habla de procesadores duales y discos de almacenamientos sumamente superiores a los que nos enfrentábamos anteriormente. Sin embargo a pesar de las enormes capacidades que nos brinda la virtualización debemos considerar los tipos de dispositivos virtuales que brinda cada una de las herramientas consideradas las más comerciales hoy en día. Las distintas especificaciones de hardware virtual que son soportados por cada una de las aplicaciones son las siguientes que se indican en la Tabla 1: Dispositivo Virtual Virtual PC Virtual Server Disquetera 1.44MB 1.44MB BIOS American Megatrends American Megatrends CD-ROM Lectura Lectura DVD-ROM Lectura Lectura Montaje ISO Si Si Teclado Si Si Mouse Si Si Tablet No No Capacidad máxima de RAM 3.6Gb 3.6Gb Chipset de Tarjeta Madre Intel 440BX Intel 440BX Puertos Paralelos LPT1 LPT1 Puertos Seriales COM1 - COM2 COM1 - COM2 Patricio H. Proaño Villalba 36

Ranuras PCI 5 5 Dispositivo Virtual Virtual PC Virtual Server Procesador Operan con el mismo procesador del equipo anfitrion Sonido SoundBlaster No Video 8Mb S3 Trio 4Mb S3 Trio Dispositivos IDE Hasta 4 Hasta 4 No Adaptec 7870 SCSI Intel 21141 Multiport Intel 21141 Multiport NIC 10/100 10/100/1000 USB Teclado y Mouse Teclado y Mouse Tabla 2.1: Dispositivos virtuales VMWARE Por otro lado las aplicaciones de VMWARE tienen una propuesta superior en cuanto al hardware virtual, tal como se ilustra en la Tabla 2: Dispositivo Virtual VMWARE Server VMWARE Esx Disquetera 1.44MB 1.44MB BIOS Phoenix BIOS Phoenix BIOS CD-ROM Rewritable Rewritable DVD-ROM Readable Readable Montaje ISO Si Si Teclado Si Si Mouse Si Si Tablet Si N/A Máximo de RAM 3.6Gb 3.6Gb Chipset de Tarjeta Madre Intel 440BX Intel 440BX Puertos Paralelos LPT1, LPT2, LPT3 LPT1 Puertos Seriales COM1 - COM4 COM1 - COM2 Procesador Operan con el mismo procesador del equipo anfitrion Sonido SoundBlaster No Video SVGA SVGA Dispositivos IDE Hasta 4 Hasta 2 SCSI LSI 53c1030 BusLogic BT-358 Generic LSI 53c1030 BusLogic BT- 358 Generic Patricio H. Proaño Villalba 37

VMXNET hast 1Gbps / VMXNET hast 1Gbps NIC Pcnet PCII 10 USB 2.0 2.0 (Solo en consola) Ranuras PCI 6 5 Tabla 2.2: Dispositivos virtuales VMWARE La estructura básica de un computador y sus componentes es conocida, sin embargo cuando se habla equipos virtuales es necesario profundizar en cierto aspectos para lograr un mejor entendimiento sobre como operan estas interfaces virtuales para poder lograr un rendimiento optimo y eficiente, y lograr entender que al final una máquina virtual es simplemente un archivo. 2.3.1. Procesador Las maquinas virtuales emplean un procesador virtual idéntico al que maneja el equipo anfitrión, y logra cumplir su función de virtualizar pasando las instrucciones no privilegiadas directamente al procesador físico. Las instrucciones privilegiadas son consideradas como seguras para la máquina virtual para poder ser procesadas a través del procesador virtual, al manejar este criterio, permitiendo que cada uno de los comandos puedan ser ejecutados directamente, las máquinas virtuales pueden alcanzar una velocidad muy similar al del equipo anfitrión. Dentro de las configuraciones de cada máquina virtual, cada una de estas aparecerá mostrando como si tuviera un procesador individual para cada una de las máquinas virtuales; la realidad radica en que cada uno de los procesadores tiene su propio registro, buffer, y control de estructuras. Lo interesante se presenta en la Patricio H. Proaño Villalba 38

auto configuración al momento de definir un procesador virtual; si el equipo anfitrión es basado en estructura Intel x86, la máquina virtual optará por esta estructura; opera de la misma forma al tratarse de procesadores compatibles como AMD. Dependiendo de la aplicación a utilizar para implementar las máquinas virtuales, y de los fabricantes, dependerá el manejo de un solo procesador o procesadores múltiples. A continuación se presenta la Tabla 3 en la cual se indica cuantos procesadores puede manejar una máquina virtual de acuerdo a la aplicación a utilizar: Aplicación Procesadores Equipo Anfitrión Procesadores Equipo Invitado Virtual PC Desde 1 hasta 2 1 Virtual Server Desde 4 hasta 32 1 VMWARE Esx Desde 1 hasta 16 2 VMWARE Server Desde 1 hasta 32 1 BOCHS Desde 1 hasta 2 1 Tabla 2.3: Cantidad de procesadores que pueden soportar 2.3.2. Memoria RAM La memoria RAM virtual en realidad viene a representar el limite de información que puede albergar el equipo virtual en la memoria RAM física, siendo la capa de virtualización la encargada de monitorear y gestionar la RAM. La realidad sobre el manejo de memoria RAM se encuentra relacionada con el rendimiento y la escalabilidad que esta representa al momento de manejar la memoria paginada y la no paginada; definiendo a la memoria no paginada como un rango de direcciones virtuales, las cuales permanecerán libres siempre en la memoria RAM física, y la Patricio H. Proaño Villalba 39