lunes, 19 de noviembre de 2012

Servidores Virtuales




Los servidores virtuales en la actualidad son una solución adoptada por muchas empresas para solventar muchos de los problemas que se presentan en el área de administración de TI. Desde la constante exigencia de mejorar la eficacia y la disponibilidad de servicios y aplicaciones hasta mantener el ritmo del rápido desarrollo de las TI y el crecimiento exponencial del internet. Tanto la pequeña y mediana empresa como grandes organizaciones se ven en la necesidad de implementar de alguna forma la virtualización de servidores.
Podemos diferenciar 2 formas diferentes de implementar la virtualización de servidores:
§  A través de máquinas virtuales
§  A través de cluster de servidores
La primera idea que se nos viene a la mente cuando escuchamos el término “Servidor Virtual” es a través de la primera firma de implementación mencionada anteriormente. Iniciaremos desarrollando este concepto.
Virtualización de servidores a través de Máquinas virtuales
 La virtualización permite ejecutar varias máquinas virtuales en una misma máquina física, donde cada una de las máquinas virtuales comparte los recursos de ese único ordenador físico entre varios entornos. Una máquina virtual es un contenedor de software perfectamente aislado que puede ejecutar sus propios sistemas operativos y aplicaciones como si fuera un ordenador físico. La máquina virtual se comporta exactamente igual que un ordenador físico y contiene su propia CPU virtual, memoria, disco duro y tarjeta de interfaz de red. Esto nos permite eliminar el concepto clásico de “un servidor, una maquina”.
Un sistema operativo no puede distinguir entre una máquina virtual y una máquina física, de la misma manera que no pueden hacerlo las aplicaciones o los otros ordenadores de la red. Incluso la propia máquina virtual considera que es un ordenador "real". Sin embargo, una máquina virtual se compone exclusivamente de software y no contiene ninguna clase de componente de hardware. El resultado es que las máquinas virtuales ofrecen una serie de ventajas con respecto al hardware físico.
Esto nos permite por ejemplo: Contar con un equipo físico y sobre este tener un servidor Apache Linux para aplicaciones PHP y a su vez tener un servidor IIS para aplicaciones ASP.
Algunas de las características más destacadas de las máquinas virtuales son:
§  Compatibilidad
Son plenamente compatibles con la totalidad de sistemas operativos x86, aplicaciones y controladores de dispositivos estándar, de modo que se puede utilizar una máquina virtual para ejecutar el mismo software que se puede ejecutar en un ordenador x86 físico.
§  Aislamiento
Aunque las máquinas virtuales pueden compartir los recursos físicos de un único ordenador, permanecen completamente aisladas unas de otras, como si se tratara de máquinas independientes.
§  Encapsulamiento
Una máquina virtual es básicamente un contenedor de software que agrupa o "encapsula" un conjunto completo de recursos de hardware virtuales, así como un sistema operativo y todas sus aplicaciones, dentro de un paquete de software.
§  Independencia de hardware
Las máquinas virtuales son completamente independientes de su hardware físico subyacente. Por ejemplo, se puede configurar una máquina virtual con componentes virtuales (CPU, tarjeta de red, controlador SCSI, pongamos por caso) que difieren totalmente de los componentes físicos presentes en el hardware subyacente. Las máquinas virtuales del mismo servidor físico pueden incluso ejecutar distintos tipos de sistema operativo (Windows, Linux, etc.). 
Hay muchas aplicaciones que permiten la creación de máquinas virtuales, algunos de los más populares son:
§  Virtuozzo
§  Oracle VM Virtual Box
§  Linux (KVM) Kernel-Based Virtual Machine
Virtualización de servidores a través de cluster de servidores
Es una forma altamente escalable y con gran disponibilidad construido con un cluster de servidores reales. Los usuarios interactúan con el cluster de servidores como si fuera un único servidor de alto rendimiento.
Para comprender el funcionamiento de esta tecnología debemos aclarar los mecanismos que permiten la implementación de la misma. Existen 2 formas de implementarlo:
§  Basado en Software – DNS
Es la forma más simple de construir un servicio de cluster para servidores. Utiliza el sistema de nombres de dominio para distribuir las diferentes peticiones a través de la resolución del nombre a diferentes direcciones IP o puerto. Cuando una petición DNS llega al servidor DNS redirige el trafico al socket establecido dependiendo de la estrategia utilizada (Round-Robin).
Sin embargo debido a algunas deficiencias del sistema DNS en momentos de alto tráfico se vuelve difícil de controlar lo cual puede conducir a fallos en la distribución.
­
§  Basado en Hardware – Switch (Load Balancer)
Es una forma de distribuir el procesamiento de peticiones al cluster de servidores a través de un dispositivo de red dedicado. Los servidores del cluster parecen uno solo para los usuarios y el balanceador de carga recibe el tráfico de la nube y lo distribuye al socket del servidor real  correspondiente a través de un switch de la forma que se muestra en la siguiente figura. Servidor real es la representación de un servidor físico a través de un socket (IP:Puerto). Consideremos que un mismo equipo físico podría estar brindado múltiples servicios como por ejemplo ser servidor de correo electrónico y servidor web al mismo tiempo.




¿Por qué utilizar servidores virtuales?
Anteriormente mencionábamos que virtualización de servidores es una forma de resolver algunos problemas de administración de TI, pero, ¿A qué problemas nos referimos? La principal razón por la cual se opta por recurrir a una de las formas de virtualización de servidores ha sido el explosivo crecimiento del internet y la importancia que tiene en los negocios, el tráfico y carga a la cual se somete a los servidores ha crecido considerablemente. Muchos servidores se han visto sobrecargados por el incremento del tráfico en poco tiempo. Para solucionar este problema existen 2 opciones:
§  La primera es mejorar el servidor actual para que sea capaz de funcionar correctamente (esto tiene sus limitaciones de acuerdo al hardware, influye el factor económico, la complejidad y que el servidor se podría ver afectado por el mismo problema rápidamente)
§  La segunda es tener múltiples servidores trabajando en conjunto para cumplir con la carga a la cual son sometidos por medio de una balanceador de carga.
Otra razón es la necesidad con diferentes tipos de servicios o necesitar correr diferentes plataformas de sistemas operativos.
Además se pueden mejorar los servicios brindando mayor escalabilidad y disponibilidad. Para evitar que posibles fallos en el servidor obliguen a que el servicio se vea suspendido por algún tiempo corto o incluso hasta prolongado.
Finalmente con la proximidad del fin de la era ipv4 actualmente es bastante costoso y difícil adquirir una ipv4 publica. Con la virtualización de servidores podemos contar con múltiples servicios utilizando únicamente una ipv4.
Máquinas Virtuales vrs. Cluster de Servidores
Ambas tecnologías ofrecen ventajas y desventajas. Adoptar una de ellas dependerá de muchos factores. El tamaño de la empresa, la funcionalidad que se pretenda obtener, la cantidad de procesamiento, la infraestructura de red, entre otros son aspectos que se deben de analizar cuidadosamente al momento de escoger cuál de estas 2 opciones implementar. Cada una ofrece opciones únicas y diferentes no solo para ofrecer mejores resultados de rendimiento a la organización, sino también, para facilitar el trabajo del administrador de TI y permitiendo que este realiza su trabajo de forma más eficaz y a su vez dedique su tiempo a buscar diferentes formas de innovar y desarrollar nuevas opciones para la organización.
Podemos concluir que para un entorno de una pequeña o mediana empresa es preferible utilizar si es necesario máquinas virtuales ya que económicamente es beneficioso, ahorra espacio, menor cantidad de equipo y menor cantidad de carga en comparación a las grandes organizaciones.
Las grandes organizaciones  consideramos se ven mayormente beneficiadas con la implementación de cluster de servidores ya que cuentan con los recursos económicos para implementarlo, es más eficiente para grandes cantidades de carga y brinda mayor versatilidad en cuanto escalabilidad, disponibilidad y seguridad informática.

Por Rodrigo Ernesto Ortiz y Edgardo Caleb Flores

No hay comentarios:

Publicar un comentario