Servicios
Servicios
Buscar
Idiomas
P. Completa
Diseño de un cluster de alta disponibilidad para un entorno educativo virtual universitario
Herney Perafan; Nazareth Guia; Demetrio Rey;
Herney Perafan; Nazareth Guia; Demetrio Rey; David Duarte
Diseño de un cluster de alta disponibilidad para un entorno educativo virtual universitario
Design of a high availability cluster for a university virtual educational environment
Revista INGENIERÍA UC, vol. 25, núm. 1, 2018
Universidad de Carabobo
resúmenes
secciones
referencias
imágenes

Resumen: La presente investigación se enfoca en presentar el diseño de un clúster de alta disponibilidad, bajo la plataforma de software de distribución gratuita, linux CentOS 7, para el Ambiente del Aula Virtual de la Facultad de Ingeniería de la Universidad de Carabobo, con el objetivo de prevenir eventuales pérdidas de tiempo y recursos, que están sufriendo en la actualidad. Este objetivo se logró al agregar redundancia al servidor de Aula Virtual, creando un espejo del servidor principal, que administra la misma información y, asi, se mantiene constantemente actualizada. De esta manera, si por alguna razón el servidor principal deja de proporcionar el servicio, el servidor espejo toma el control de las solicitudes, lo que garantiza el objetivo de la alta disponibilidad. El diseño se llevó a cabo utilizando máquinas virtuales para su posterior implementación en nodos de prueba en la Universidad de Carabobo.

Palabras clave:disponibilidaddisponibilidad, cluster cluster, servidores servidores, linux linux.

Abstract: The present research focuses on presenting the design of a high availability cluster, under the linux CentOS 7 free distribution software platform, for the Virtual Classroom Environment of the Faculty of Engineering of the University of Carabobo, with the purpose of preventing eventual losses of time and resources, which are suffering in the present. This goal was achieved by adding redundancy to the Virtual Classroom server, creating a mirror of the main server, that manages the same information which is kept constantly updated. From this way, if for any reason the main server ceases to provide the service, the mirror server takes control of the requests, thus granting the goal of the high availability. The design was carried out using virtual machines to its subsequent implementation in test nodes in the University of Carabobo.

Keywords: availability, servers, virtual, cluster, linux.

Carátula del artículo

Artículos científicos

Diseño de un cluster de alta disponibilidad para un entorno educativo virtual universitario

Design of a high availability cluster for a university virtual educational environment

Herney Perafan
Facultad de Ingeniería, Universidad de Carabobo., Venezuela
Nazareth Guia
Facultad de Ingeniería, Universidad de Carabobo., Venezuela
Demetrio Rey
Facultad de Ingeniería, Universidad de Carabobo., Venezuela
David Duarte
Facultad de Ingeniería, Universidad de Carabobo., Venezuela
Revista INGENIERÍA UC, vol. 25, núm. 1, 2018
Universidad de Carabobo

Recepción: 01 Febrero 2018

Aprobación: 30 Abril 2018

1. Introducción

La necesidad de dar respuesta efectiva a la demanda de servicios web de manera continua se incrementa constantemente con la migración de múltiples tareas y servicios a entornos virtuales, siendo delegados a aplicaciones capaces de atender las peticiones de los clientes y devolverles una respuesta en concordancia a su solicitud [1]. Dichas aplicaciones «no están pensadas para ser instaladas en el computador del cliente, sino que se coloca en un servidor al que acceden los mismos. De este modo se convierte en un servicio que está disponible desde cualquier punto del planeta por medio del uso del Internet»

El autor [2] indica que como todos los sistemas, un servidor web puede presentar fallas, ya sean temporales o prolongadas que perjudiquen el acceso al medio, ocasionadas por infinidades de factores inesperados como fallas en el hardware, anomalías ambientales, fallas de potencia, una caída por recalentamiento, una ruptura lógica o física en las conexiones de red, rupturas de seguridad catastróficas o fallas en el sistema operativo, aplicaciones y middleware. Los sistemas de alta disponibilidad permiten a las aplicaciones seguir operando a pesar que el hardware o software falle, atendiendo las peticiones de los usuarios.

Un clúster, según autor [3], es un conjunto de computadores pertenecientes a una misma red, que se comportan como una única computadora de alta velocidad, permitiendo aumentar el número de tareas que puede realizar un computador común. Cada ordenador conectado a la red se denomina nodo. La existencia de más de un nodo disponible para brindar un mismo servicio ininterrumpido otorga al clúster la virtud de la alta disponibilidad, garantizando que las aplicaciones estén en línea cuando el cliente lo requiera. En caso de producirse alguna falla de software o hardware en un nodo, otro puede tomar el control de manera imperceptible para el usuario, y el servicio seguirá disponible.

Por otro lado, en octubre del 2014, en la Universidad Nacional Experimental del Táchira se llevó a cabo el diseño de un clúster para dar alta disponibilidad a la gran cantidad de aplicaciones web existentes en la casa de estudios y mejorar su rendimiento, mediante arquitecturas redundantes y tolerantes a fallas [4].

La Facultad de Ingeniería de la Universidad de Carabobo desde el año 2005, cuenta con un entorno virtual denominado Aula Virtual de Ingeniería, para dar acceso tanto a profesores como a alumnos, a recursos compartidos de las materias impartidas, como contenido programático, calificaciones, tareas pendientes y mensajes privados, facilitando y dinamizando la comunicación entre estos. El Aula Virtual de Ingeniería actualmente se encuentra funcionando a través de un único servidor, ubicado en el Instituto de Matemática y Cálculo Aplicado (IMYCA) en la Facultad de Ingeniería de la Universidad de Carabobo [5]. Por medio de una entrevista realizada al Licenciado Luis DeSousa, profesor del Departamento de Química de la Dirección de Estudios Básicos de la Facultad de Ingeniería, quien es el encargado directo del control y mantenimiento del servidor del Aula Virtual de Ingeniería, se pudo conocer el estado actual del mismo, el cual es constantemente afectado por imprevistos como cortes eléctricos o fallas de hardware, que imposibilitan temporalmente el acceso a los recursos a profesores y alumnos al no contar con un sistema preventivo que permita mantener la prestación del servicio, ocasionando retrasos en las asignaciones y avance del curso e incomodidades, además de repercutir en costos, tiempos, esfuerzos y en la confianza e insatisfacción de la población de la Facultad de Ingeniera en general. «La disponibilidad promedio del servicio ha sido de un 40 % en los últimos dos periodos lectivos» (Entrevista personal con el Profesor Luis De Sousa), habiendo permanecido totalmente fuera de servicio durante todo un mes de los periodos evaluados. En busca de solventar los inconvenientes mencionados, se propone un proyecto de investigación, que abarque el diseño e implementación de un clúster de alta disponibilidad bajo el sistema operativo de código abierto Centos 7, basado en la distribución de Red Hat Enterprise Linux. La clusterización del Aula Virtual de Ingeniería garantizará la permanencia del servicio web a los usuarios, aún cuando el nodo principal deje de funcionar, pues existirá un nodo secundario donde se replicarán los datos ingresados al nodo principal de manera instantánea. Como consecuencia, si el nodo principal falla el nodo secundario tomará el control de los recursos y el servicio se mantendrá disponible.

2. Metas de la Investigación

Bajo la presente investigación, se pretende diseñar un clúster de alta disponibilidad bajo la plataforma de software de distribución libre, para el Aula Virtual de Ingeniera de la Universidad de Carabobo. En el esquema a utilizar, como primer paso debemos diagnosticar las condiciones actuales del servicio que presta el Aula Virtual de Ingeniería para conocer el nivel de disponibilidad existente, ya que se tiene conocimiento de las diversas dificultades de disponibilidad que esta tiene. Luego vamos a definir la topología de alta disponibilidad adecuada para proporcionar constante accesibilidad al Aula Virtual de Ingeniería, mediante el uso de un prototipo virtual de un cluster sobre la plataforma de distribución libre de linux CentOS 7, utilizando dos nodos. Por último vamos a ejecutar pruebas pilotos del diseño de cluster de alta disponibilidad en la red de la Universidad de Carabobo para demostrar su operatividad, evaluando así el desempeño del cluster una vez implementado en la red.

3. Conceptualización
3.1. Cluster

El término cluster proviene del inglés y tiene diversos sentidos según distintos autores, aunque todos se relacionan entre sí.

La definición más extendida y conocida del término clúster en general es la de Michael Porter, llamándolo una herramienta de competitividad basada en la cooperación de sus miembros [6].

En el ámbito de la informática, un cluster representa un conjunto de computadoras independientes, interconectadas entre sí, que actúan como una sola computadora.

Como consecuencia se logra aumentar el rendimiento, al trabajar varios equipos juntos y sumar sus potenciales.

3.1.1. Tipos de clúster según la necesidad.

Balanceo de Cargas. Cuando se presta un servicio a un gran número de clientes, puede llegar un momento en el cual un nodo primario se sature debido al número de peticiones a las que se encuentra respondiendo simultáneamente. Un clúster de balanceo de carga se compone de dos o más servidores que trabajan en conjunto mediante la división de tareas, donde los llamados nodos maestros reciben la petición y la envían a un nodo denominado esclavo para que la ejecute. La elección del nodo esclavo que ejecutará la tarea se realiza evaluando cual de estos se encuentra ocioso o con un menor número de tareas por llevar a cabo, evitando de esta manera que algún nodo se sature.

3.1.2. Alto Rendimiento

La finalidad de un clúster de alto rendimiento viene dada por el aumento de la capacidad de procesamiento al utilizar los nodos para ejecutar cálculos simultáneos. Así, es posible mejorar el rendimiento en problemas que necesiten de una gran cantidad de potencia computacional [7].

3.1.3. Alta Disponibilidad

Finalmente, los clúster de alta disponibilidad se encargan de proveer los servicios de manera ininterrumpida al cliente, independientemente de las fallas que puedan ocurrir en el sistema. El principio de la alta disponibilidad es la redundancia , pues al existir más de un nodo redundante (que maneja la misma data que el primario) es posible, en caso de ocurrir alguna falla en el nodo primario, trasladar el servicio desde el nodo de cluster erróneo a otro nodo completamente funcional y de esta manera continuar prestando el servicio. Este procedimiento ocurre de manera imperceptible para el usuario. Generalmente, los servicios en los cluster de alta disponibilidad leen y escriben datos a través de la lectura y escritura a un sistema de archivos montado. Así, un cluster de alta disponibilidad debe mantener la integridad de los datos cuando un nodo recibe el control del servicio desde otro nodo [7]. Debido a que el presente trabajo de grado está basado en la implementación de un cluster de alta disponibilidad, se debe profundizar algunos conceptos y fundamentos relacionados a este tipo de clústeres.

3.2. Sistema de Alta Disponibilidad

Los sistemas de alta disponibilidad están formados por componentes de hardware y software que integrados y configurados para trabajar en conjunto, proporcionan el acceso continuo a los datos y aplicaciones.

3.2.1. Componentes de Software

Sistema Operativo. El sistema operativo representa el principal programa que se ejecuta en toda computadora, pues es el software básico que provee una interfaz entre el resto de los programas del computador y el usuario, siendo además el único programa capaz de interactuar con el hardware. Sus funciones primarias son:

  • Administración de recursos: Un sistema de cómputo puede tener a su disposición una gran cantidad de recursos (memoria, espacio de almacenamiento, tiempo de procesamiento, etc.), y los diferentes procesos que se ejecuten en él compiten por ellos. Al gestionar toda la asignación de recursos, el sistema operativo puede implementar políticas que los asignen de forma efectiva y acorde a las necesidades establecidas para dicho sistema [8].

  • Aislamiento: En un sistema multiusuario y multitarea cada proceso y cada usuario no tendrá que preocuparse por otros que estén usando el mismo sistema. Idealmente, su experiencia será la misma que si el sistema estuviera exclusivamente dedicado a su atención (aunque fuera un sistema menos poderoso). Para implementar correctamente las funciones de aislamiento hace falta que el sistema operativo utilice hardware específico para dicha protección [8].

Servidor web Apache. El servidor web se encarga de atender a las solicitudes de los clientes y dar una respuesta en concordancia. Dichas peticiones son realizadas mediante un navegador que maneja el protocolo de hipertexto, mejor conocido como HTTP. El protocolo HTTP está diseñado para la transferencia de páginas web o páginas en código HTML, que incluyen figuras, textos complejos con enlaces, botones y objetos incrustados como animaciones. El servidor HTTP Apache es un servidor web de código abierto, es decir de software libre desarrollado por la ASF para plataformas UNIX, Windows, Macintosh y otras. Apache presenta entre sus características la estabilidad, capacidad de extensión y multiplataforma. Se considera estable debido a su probada robustez que impide cambios inesperados en el servidor, la disposición de una gran cantidad de módulos que permiten ampliar sus funciones lo hacen extensible [9]. Cuenta con una estructura modular, que permite emplear diversos lenguajes en el lado del servidor, como PHP, Python o Perl, así como incorporar características como la compresión de datos, las conexiones seguras y la utilización de URLs amigables lo que lo ha catalogado como el servidor más utilizado desde el año 2009, según la compañía inglesa Netcraft [10].

Servidor de Bases de Datos. Las bases de datos permiten coleccionar datos interrelacionados que se encuentran almacenados en un entorno informático. En estos entornos, los datos son persistentes, lo que significa que se mantienen sin ser afectados por problemas inesperados de software o hardware (excepto casos graves de bloqueos de disco). Tanto el gran volumen de datos y la persistencia, dos características principales de las bases de datos, están en contraste con la información manipulada por los lenguajes de programación, que es lo suficientemente pequeño en volumen para residir en la memoria principal y que desaparece una vez finalizado el programa [10]. Una base de datos puede verse como uno o varios archivos almacenados en algún dispositivo de memoria, como un disco. Aunque sería posible realizar aplicaciones que accedan directamente a estos archivos, tal arquitectura generaría problemas relacionados con la seguridad, la concurrencia y la complejidad de la manipulación de datos. Entre la base de datos física y los usuarios del sistema, hay una capa de software conocida como servidor de base de datos o más comúnmente como sistema gestor de base de datos (SGBD). El SGBD se encarga de procesar las solicitudes de acceso a la base de datos, como manipulación, eliminación o consulta de datos pertenecientes a una base de datos organizada en uno o varios ficheros. En este sentido, una de las principales funciones del gestor de bases de datos consiste en ocultar a los usuarios de la base de datos los detalles a nivel de hardware, proporcionando así, una independencia total de la implementación de los datos y de la plataforma hardware sobre la que éstos se apoyan. Todo SGBD dispone de algún mecanismo para manipular la información de la base de datos normalmente basado en algún lenguaje de consulta de alto nivel. El Lenguaje de Consulta Estructurado (Structured Query Language, SQL) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones sobre las mismas [10].

Sistema de Archivos. Al trabajar con un sistema redundante dónde es importante controlar cómo se almacenan y recuperan los datos en caso de producirse alguna falla en el servidor, se debe utilizar un sistema de archivos. Se conoce como un sistema de archivos a todos los métodos y estructuras de datos utilizadas por el sistema operativo para inspeccionar la organización de los archivos almacenados en un disco o partición [11]. Mediante el sistema de archivos se hace posible aislar e identificar la información almacenada, en grupos de datos que son denominados archivos. Existen distintos tipos de sistemas de archivos, diseñados con características como velocidad, flexibilidad, tamaño, seguridad o aplicaciones diferentes.

3.2.2. Componentes de hardware.

Nodos. Se da el nombre de nodo a un componente que forma parte de una red. Un cluster representa una red compuesta por computadores y por lo tanto, cada computador que integra el cluster recibe el nombre de nodo [12].

Procesador. Uno de los componentes de hardware más importantes para implementar un cluster de alta disponibilidad es el procesador, de quien dependerá la velocidad de ejecución de cada una de las instrucciones a realizar para llevar a cabo las tareas asignadas por el sistema [13].

Disco. En el sistema redundante planteado, se utilizará una partición de disco en cada nodo para realizar la replicación y sincronización de datos. Además, es necesario disponer de un sistema de almacenamiento que permita conservar toda la información presente en el sistema, luego de reiniciar o apagar el computador. De esta importante labor se encarga el disco duro.

Red. La red de interconexión entre los nodos es la que permite que puedan comunicarse y trabajar como un solo sistema. Además, proporciona el acceso remoto al cluster y a sus servicios.

Originalmente, fue posible crear clusters linux debido a la disponibilidad de tecnología de red de bajo costo y ancho de banda moderado. Ethernet fue el protocolo por excelencia utilizado en los inicios de los cluster, pero en la actualidad existe una gran variedad de tecnologías de alta velocidad que pueden ser utilizadas para construir clusters linux como Fast Ethernet, Gigabit Ethernet, Myrinet, InfiniBand, SCI, etc. Sin embargo, la relación costo-rendimiento de Fast-Ethernet proporciona la mejor opción para implementar la red de un cluster. Otra razón para seleccionar esta topología de red es la facilidad para proporcionar escalabilidad a la hora de agregar nuevos nodos al cluster [14].

4. Procedimientos
4.1. Diagnóstico de las condiciones actuales

Para obtener un diagnóstico acerca de la calidad del servicio prestado por el servidor del Aula Virtual de Ingeniería, se acudió a los usuarios para conocer su percepción del servicio actual, recolectando los datos mediante encuestas. Además, fue necesario entrevistar al personal encargado del mantenimiento del servidor para conocer las fallas comunes del sistema y sus causas.

4.2. Estudio de los elementos que integran el cluster de alta disponibilidad

En esta fase se inició el estudio teórico del diseño de un cluster de alta disponibilidad, mediante la revisión de bibliografías especializadas en clusterización bajo software libre como la plataforma de Red Hat Enterprise de linux. También se determinó la topología más conveniente a utilizar.

4.3. Investigación y documentación

Se llevó a cabo un compendio con toda la documentación de contenido útil acerca del diseño y configuración de un cluster de alta disponibilidad y del sistema operativo CentOS 7. Entre los aspectos revisados se encuentran las distintas topologías de un cluster de alta disponibilidad, los tipos de cluster, elementos que lo conforman, los posibles software para realizar el diseño virtual, el manejo y configuración de servidores web y bases de datos, el funcionamiento de un sistema de replicación y del sistema de gestión de cursos Moodle.

4.4. Selección de la topología

Se consideraron las dos topologías de cluster principales, activo/activo y activo/ pasivo, como posible selección y al estudiar sus características, se realizó la toma de decisión en función de estas. En la topología activo/pasivo, sólo uno de los nodos proporciona los recursos en el rol de primario, evitando en mayor medida la corrupción de los datos al permitir la escritura sólo en el nodo con el rol primario, siendo esta la mayor virtud de la misma.

Por lo contrario la topología activo/activo es más vulnerable a una posible corrupción, ya que la escritura se puede efectuar de forma simultánea en todos los nodos participantes en el cluster dando esto la posibilidad de discrepancia al momento de sincronizar la data de cada nodo. Otro factor de importancia de la topología activo/pasivo es la simplicidad de su implementación ya que es un solo nodo del cluster el que tomará el rol principal, en contraste a la topología activo/activo la cual para su óptimo funcionamiento requerirá de un balanceador de cargas debido a que todos los nodos del cluster participan en conjunto proporcinando los servicios.

En función de las características descritas, se seleccionó activo/pasivo como topología de trabajo del cluster, por presentar las características demandadas para realizar el diseño.

4.5. Diseño del prototipo virtual del cluster

El prototipo del cluster es el modelo de referencia que sirve como guía para llevar a cabo la implementación del mismo en nodos reales de prueba. En este sentido, el prototipo integra el servidor web con el servidor de base de datos, el sistema de ficheros del cluster y el dispositivo de replicación de datos, para dar continua disponibilidad de acceso a un entorno de prueba del Aula Virtual de Ingeniería, diseñado sobre la plataforma de aprendizaje Moodle.

4.5.1. Selección del virtualizador

Entre los diversos programas de virtualización existentes, los más populares al momento de realizar la búsqueda vía web son VMware, VirtualPC y VirtualBox.

Para la selección del software adecuado según las necesidades del prototipo a realizar VirtualPC quedó descartado puesto que sólo virtualiza sistemas operativos Windows.

Tanto VMware como VirtualBox permiten virtualizar sistemas linux, sin embargo poseen características de rendimiento y potencia distintas.

VMware sólo es gratuito para ejecutar máquinas virtuales ya creadas y para el desarrollo del proyecto no será útil.

Para efectos del diseño del prototipo, VirtualBox cumplió con los requerimientos mínimos necesarios; la aplicación es de uso libre, verdaderamente rápido, ligero y ocupa poco espacio en disco.

4.5.2. Instalación y configuración de CentOS

El sistema operativo CentOS 7 es una distribución de linux completamente gratuita y para su instalación en VirtualBox se descargó la imagen ISO versión Minimal desde el portal web oficial de CentOS.

Instalación de CentOS. Al iniciar la instalación y dar la elección del idioma, se procedió a reservar un espacio de disco en cada máquina, el cual será necesario para crear los volumenes de replicación de los datos. Ingresando a la sección “destino de instalacion”, se seleccionó “configurar el particionamiento”. En la pantalla siguiente se debe elegir la opción para crear particiones automáticamente, seleccionar la raíz y reducir la capacidad que se desea liberar. En “modificar” se debe cambiar la política de tamaño a “Tangrande como sea posible” para que el espacio liberado esté disponible en el grupo de volúmenes LVM.

Configuración de red y nombre de host. Se seleccionó el dispositivo de red y al pasar el interruptor para encenderlo, momentáneamente se aceptó la configuración predeterminada, ya que las máquinas del cluster nunca deben obtener una dirección IP vía DHCP, porque la renovación periódica de la dirección del DHCP interferirá con el Corosync. En esta pantalla se le asigna el nombre de host a cada una de los nodos; siendo estos nodo1 y nodo2.

5. Resultados: Evaluación del desempeño del cluster de alta disponibilidad en la red de la Universidad de Carabobo

Bajo la colaboración y coordinación del Instituto de Matemática y Cálculo Aplicado (IMYCA) de la Universidad de Carabobo, se realizó la instalación e implementación del diseño de cluster de alta disponibilidad, con dos servidores reales.

5.1. Evaluación del diseño del cluster implementado

Al culminar la fase de implementación, funcionando el cluster de alta disponibilidad, se llevó a cabo una revisión del sistema por medio de la monitorización de los elementos de hardware para evaluar el desempeño del mismo y su interacción con los recursos del cluster.

Para cada uno de los nodos se evaluaron el uso de CPU, uso de memoria, el espacio libre en disco y para el sistema de alta disponibilidad se valoró el rendimiento de red, estado de actividad de las aplicaciones instaladas como recursos: Apache, MySQL, DRBD y el tiempo de migración de recursos al ocurrir la detención del el servidor con el rol principal.

5.2. Evaluación de Parámetros de Hardware

Esta actividad se concretó haciendo uso de la aplicación Monitor del Sistema, instalada por defecto en la interfaz gráfica MATE y ubicada en el menú de Aplicaciones → Herramientas del Sistema. Por medio de este último se logró medir en tiempo real el rendimiento del equipo; permitiendo identificar en cualquier momento, si existiera, algún proceso que pueda ocasionar que el nodo empiece a ir inusualmente lento o llegue a colgarse.

La herramienta Monitor del Sistema divide la información contenida, cuatro pestañas. En la primera despliega información del sistema del nodo tanto de software y hardware. La siguiente se denomina Procesos, y permite visualizar una lista con todos los procesos de ejecución y ordenarlos según el porcentaje de CPU que están utilizando. La pestaña de mayor interés para esta evaluación tiene el nombre de Recursos, y expone el porcentaje de CPU, memoria RAM, disco duro y red que está utilizando el nodo. De última se ubica la pestaña de Sistema de Archivos, en la cual se observa cuánto espacio se tiene ocupado en el disco duro.

5.3. Evaluación del Cluster

El desempeño del cluster de alta disponibilidad, se evaluó en términos de la fiabilidad y accesibilidad al servicio que se presta. En este sentido, las pruebas realizadas se basaron inicialmente en constatar su accesibilidad desde una estación cliente, donde por medio del browser de un explorador se intentó ingresar al Aula Virtual de prueba a través de la dirección IP (190.170.97.230) del cluster.

Seguidamente, se verificó la disponibilidad del servicio al dar de baja al nodo primario, haciendo ping a la IP del cluster desde un equipo cliente.

La siguiente prueba, consistió en acceder al IP (190.170.97.230) por medio del explorador del equipo cliente, luego de detener al nodo con el rol principal para confirmar si la conexión con el servidor (190.170.97.230) se mantiene. De esta manera se verificará si el nodo que poseía el rol secundario alcanzó el rol primario exitosamente, manteniendo la sincronización de archivos entre los nodos del cluster y la disponibilidad de los recursos.

Así mismo, se ensayó el funcionamiento del cluster no solo apagando el nodo principal, sino también desconectado los cables de la interfaz de red para simular un problema de hardware. Como última prueba, se realizó la medición del tiempo de migración de recursos del nodo principal al nodo secundario, al dejar en modo de espera al nodo primario, y se verifico por medio del estatus del cluster el tiempo de transcurrido en el proceso de entrega y adquisición de los recursos entre los nodos del cluster. Esta transición es conocida como failover.

6. Conclusiones

Las múltiples fallas en el servicio prestado por el Aula Virtual de Ingeniería ocasionan un deterioro en la calidad del sistema educativo, además de la insatisfacción de los usuarios y dilaciones en las actividades académicas. Atendiendo a estas demandas, se hace necesaria la implementación del cluster de alta disponibilidad diseñado, en la red de la Universidad de Carabobo.

La implementación de un clúster de alta disponibilidad para una versión de prueba del Aula Virtual de Ingeniería permitió proporcionar alta disponibilidad para dos servidores de prueba utilizados, mediante aplicaciones de uso libre.

Al realizar el diseño del cluster de alta disponibilidad para el Aula Virtual de Ingeniería se dispone de los códigos base que dan origen al sistema, lo que hace de este un diseño escalable a través de la posibilidad de añadir características o atributos adicionales al cluster, modificar la cantidad de nodos integrantes o incluir recursos que cubran nuevas necesidades surgientes.

La topología Activo/Pasivo, fue la seleccionada para el diseño del cluster por diversos factores que la hacen una configuración segura, robusta y altamente flexible, esto debido a que permite la actualización de software de forma gradual dejando un servidor como principal a la vez que en el otro se realiza el mantenimiento programado.

La alta disponibilidad de la base de datos es un atributo principal de la clusterización y es la configuración Activo/Pasivo la que da protección ante posibles vulnerabilidades en la corrupción de los datos. La escalabilidad es un factor significativo ya que se presta comodidad en la adición de otro nodo al cluster, permitiendo crecer en función de su robustez y la gran capacidad del sistema de seguir funcionando, aún en caso de producirse alguna falla.

El manejo de recursos por el sistema de clusterización fue un aspecto fundamental de comprensión para el correcto funcionamiento del proyecto, ya que esto no es algo común. El manejo de servicios como Apache, Mysql o el sistema de replicación DRBD en un servidor común denominado LAMP cambia en muchos aspectos al momento de ser controlados por Pacemaker y Corosync, arrastrando consigo un cambio en la administración de estos programas los cuales pasan de ser servicios a ser recursos de un cluster; inhibiendo a los servidores de la posibilidad de iniciar estos servicios de forma individual y entregarle esta potestad al sistema de clusterización siendo esto uno de los puntos más álgidos en el desarrollo del trabajo especial de grado.

El tiempo de migración de recursos es una función de dos variables como son el hardware de los servidores participantes en el cluster y de la congestión de la red. Ambos son participes en el aumento y disminución del tiempo de transición de recursos, pero como se demostró en el presente trabajo de grado donde se trabajó con equipos de poca capacidad de procesamiento, no es un factor de tan elevado peso en esta evaluación. Por lo contrario, la red se puede ver congestionada cuando ésta tiene más tráfico que el que puede soportar y esto incide de forma directa en el tiempo de migración de recursos causando el incremento de este tiempo. En la red universitaria de la Facultad de Ingeniería se observó que este fenómeno de congestión no ocurrió frecuentemente, causando que el prototipo de cluster de alta disponibilidad para el Aula Virtual de Ingeniería trabaje de forma óptima en su tiempo de migración de recursos.

El Cluster de Alta Disponibilidad desarrollado en el presente trabajo especial de grado, se utilizó para efectuar pruebas en la red de la Universidad de Carabobo y ambos nodos se instalaron en la Facultad de Ingeniería debido a limitaciones de acceso a otras Facultades o instancias de la Universidad, lo cual imposibilitó la evaluación del sistema de Alta Disponibilidad en distintos puntos geográficos pertenecientes a la red universitaria.

Para solventar los inconvenientes ocasionados al servidor del Aula Virtual de Ingeniería por las fallas en el suministro eléctrico que producen de forma inevitable la caída de los servidores, se deben distribuir los nodos del cluster en distintos puntos geográficos para asegurar el constante funcionamiento de los servicios.

El sistema diseñado provee una solución óptima a los problemas de disponibilidad acarreados por el servidor del Aula Virtual de Ingeniería, al combinar la solución de almacenamiento DRBD con el gestor de recursos de cluster Pacemaker.

El proceso de migración de los recursos a un nodo saludable una vez que Pacemaker detecta una falla en el nodo primario demora aproximadamente un segundo y DRBD se reconfigura en menos de 30 segundos, resultando en un tiempo total de failover medido durante las pruebas realizadas, de entre 10 a 15 segundos.

La Universidad de Carabobo como sistema de enseñanza superior, investigación y creación de cultura científica y humanística, debe ser pionera en el campo de la investigación y desarrollo tecnológico. Debido a múltiples factores se ve atrasada en campo de desarrollo de tecnologías autónomas que resguarden y conserven unos de los recursos informáticos más importantes como son los datos almacenados en su gran variedad de servidores.

Es por esto que el diseño e implementación de un cluster de alta disponibilidad es trascendental no solo para el Aula Virtual de Ingeniería, sino para todos los servidores que sean considerados críticos para el óptimo funcionamiento de la red universitaria y ser este más que un salva vidas, una estrategia de seguridad informática y una puesta a punto para cada uno de los servidores que en ella funcionan, consiguiendo que la Universidad de Carabobo se eleve a la vanguardia tecnologíca en el campo de la informática, comunicaciones y seguridad.

7. Recomendaciones

Expandir el proyecto y realizar la implementación en el resto de los servidores encargados de manejar datos de relevancia de la Universidad de Carabobo.

En la implementación del diseño, prestar especial atención a los campos que contengan nombres de host, direcciones IP, direcciones de ficheros o nombres de dispositivos, pues estos varían dependiendo de la disponibilidad de la red y las preferencias del administrador.

Verificar el estado de la sincronización de DRBD debido a que se puede presentar un problema denominado “Split-Brain”.

Una vez implementados de manera exitosa los sistemas activo/pasivo en la Facultad de Ingeniería y en el resto de los servidores que integran la red universitaria, el próximo paso sería experimentar con un sistema de alta disponibilidad activo/activo con balanceo de cargas, a efectos de mejorar no solo la disponibilidad sino la capacidad y velocidad de respuesta a la demanda de servicios.

Material suplementario
8. Referencias
[1] José de Jesús Rocha Quezada, Salvador Botello Rionda, José Miguel Vargas Félix, and Iván Agustín Munguía Torres. Diseño e implementación de un clúster de cómputo de alto rendimiento. Acta Universitaria, 21(3), 2011.
[2] Red Hat. Red Hat Enterprise Linux 6.Visión general de adición de alta disponibilidad. Red Hat, USA, 2017.
[3] Rafael García Leiva. Instalación y configuración de un cluster de alta disponibilidad bajo linux. Reporte técnico, Universidad Autonoma de Madrid, España, 2003.
[4] Jhonangel Mireles and Javier Maldonado. Diseño de un cluster orientado a servicios para aplicaciones WEB en la Universidad Nacional Experimental del Táchira. Telematique, 14(1):79–96, 2014.
[5] Nazareth Guia and Herney Perafan. Diseño de un cluster de alta disponibilidad para el aula virtual de Ingeniería de la Universidad de Carabobo. Trabajo Especial de Grado, Escuela de Ingeniería de Telecomunicaciones, Facultad de Ingeniería, Universidad de Carabobo, Venezuela, 2017.
[6] Michael E. Porter. Ser Competitivo: Edición actualizada y aumentada. Deusto, 2017.
[7] Red Hat. Red Hat Enterprise Linux 5. Sinopsis de la suite para Cluster. Red Hat, USA, 3era edition, 2017.
[8] Gunnar Wolf, Esteban Ruiz, Federico Bergero, and Erwin Meza. Fundamentos de sistemas operativos. Universidad Nacional Autónoma de México, México, 2015.
[9] Red Hat. Red Hat Cluster Suite for Red Hat Enterprise Linux 5.2. Red Hat, Inc., USA, 2008.
[10] Mohammed J. Kabir. La biblia del servidor Apache 2. Anaya Multimedia, 2003.
[11] José Bernal Rivas Fernández. La gerencia de informacion: el caso de los archivos. Biblios, 4(16), 2003.
[12] Reema Khosla. Oracle Fail Safe Concepts and Administration Guide, Release 4.1.1 for Microsoft Windows. Oracle, USA, 2015.
[13] Philippe Rigaux, Michel Scholl, and Agnes Voisard. Spatial databases: with application to GIS. Elsevier, 2001.
[14] Miquel Albert Orenga and Gerard Enrique Manonellas. Estructura de computadores. Universitat Oberta de Catalunya, 2011.
Notas
Buscar:
Contexto
Descargar
Todas
Imágenes
Visor de artículos científicos generados a partir de XML-JATS4R por Redalyc