Universidad Mariano Gálvez de Guatemala
Ingeniería en Sistemas, Sede Guastatoya
Base de Datos II
Ing. Carlos Amilcar Tezó Palencia
Proyecto: Implementación de un Clúster de Alta
Disponibilidad de Base de Datos
Rúdolf Denilsón Reyes Cabrera 1890-21-9588
Marlon Daniel Flores Aceituno 1890-21-16967
Oscar David Alvarez Martínez 1890-21-4028
Mynor Estuardo Cerón Gaitán 1890-21-11828
Manuel Antonio Fuentes Ramírez 1890-21-10093
Keisy Orfelinda Fajardo Palencia 1890-15-544
Guastatoya, junio de 2024
Índice
Introducción .................................................................................................................................... 3
Justificación .................................................................................................................................... 4
Diseño de Red ................................................................................................................................. 5
Conectividad de puertos .............................................................................................................. 6
DNS e ISCSI ............................................................................................................................... 7
Rol de Failover Clúster ..............................................................................................................11
SQL Server ................................................................................................................................ 13
Aplicación ................................................................................................................................. 16
Conclusiones ................................................................................................................................. 18
Introducción
En el mundo actual, la información es crucial para el éxito de las organizaciones, la
continuidad del negocio y la disponibilidad de las bases de datos son aspectos primordiales. Los
sistemas de bases de datos son el corazón de las operaciones, almacenando información vital para
el funcionamiento diario. Sin embargo, estos sistemas no son inmunes a fallos, interrupciones o
desastres. Es por ello que la implementación de un clúster de alta disponibilidad se convierte en
una necesidad para garantizar la continuidad del negocio y la protección de los datos críticos.
Este informe detalla el proceso de implementación de un clúster de alta disponibilidad
utilizando SQL Server, un sistema de gestión de bases de datos relacional ampliamente utilizado
por empresas de todos los tamaños debido a que ofrece capacidades avanzadas para la gestión de
datos y proporciona diversas configuraciones para asegurar alta disponibilidad, es decir, en el caso
de un fallo de hardware o software en uno de los nodos, las aplicaciones puedan seguir accediendo
a los datos sin interrupciones.
Justificación
La implementación de soluciones de alta disponibilidad en bases de datos es esencial en un
entorno empresarial donde la interrupción del servicio puede resultar en pérdidas significativas de
ingresos, reputación y eficiencia operativa. Este proyecto permite adquirir conocimientos prácticos
y teóricos sobre cómo configurar y gestionar un clúster de alta disponibilidad utilizando SQL
Server con el objetivo de enfrentar desafíos reales en el área de la administración de bases de datos.
Además, la aplicación de un clúster de alta disponibilidad en la base de datos es una
estrategia fundamental para garantizar que el sistema funcione adecuadamente; así no se
interrumpen las operaciones y evitan pérdidas financieras. A continuación, se detalla todo el
proceso para implementar un clúster de alta disponibilidad en base de datos usando SQL Server.
Diseño de Red
Nuestra red consta de 2 nodos y un servidor externo que proporciona distintos servicios
para facilitar la comunicación entre ambos servidores. Estos servidores son del sistema operativo
Windows server 2016, el cual elegimos debido a la practicidad que supone configurar los roles y
características, y lo optimizada que es esta versión de Windows server. A su vez también contiene
un switch que permite la conectividad directa por medio de los puertos de red de los servidores
para tener una mayor precisión en cuanto a comunicación entre servidores como se muestra a
continuación:
Diseño de Red
Se escogió este diseño porque es el más fácil de replicar debido a la baja cantidad de
dispositivos, y a su vez lo práctico y eficiente que termina resultando la alta disponibilidad de
servicios de bases de datos. Cabe recalcar que, ante bases de datos más exigentes, o con mayor
cantidad de clientes es importante considerar ampliar la cantidad de nodos o encontrar una forma
de expandir la red, a modo de que supla con los requerimientos establecidos por la magnitud que
se requiera, más sin embargo dicho diseño de red no quita el alto tiempo de respuesta que requiere
este tipo de procesos.
Conectividad de puertos
En todas las máquinas establecimos una IP estática según la máquina, la IP establecida fue
mediante el protocolo de internet versión 4 (TCP/IPv4), debido a que es la forma más práctica de
administrar las IPs de las máquinas. Usar TCP/IPv4 para configurar las IPs de los servidores en un
clúster SQL es muy beneficioso. IPv4 ha sido el estándar de Internet durante mucho tiempo, lo que
significa que casi todos los equipos y programas lo soportan sin problemas. Esto reduce las
probabilidades de encontrar incompatibilidades o problemas técnicos. Además, configurar IPv4 es
más sencillo debido a su formato de dirección más corto, lo que facilita el trabajo de los
administradores de red y la resolución de problemas.
La estabilidad y confiabilidad de IPv4 están bien demostradas, lo cual es crucial para los
clústeres SQL donde los servidores necesitan comunicarse constantemente sin interrupciones. En
redes bien configuradas, IPv4 puede proporcionar una buena velocidad y baja latencia,
características importantes para las bases de datos que requieren respuestas rápidas. Otra ventaja
es la seguridad y el control que ofrece IPv4. Además, en los servidores dependientes al servidor
de almacenamiento, se especificó una IP dirigida al mismo para facilitar y permitir servicios de
DNS. A continuación, se muestra la configuración realizada.
TCP/IPv4
TCP/IPv4
DNS e ISCSI
Como se mencionó con anterioridad, el servidor de almacenamiento brinda servicios de
DNS y también, servicios de ISCSI. Para poder gestionar los servicios DNS, en el servidor
instalamos el rol de servidor “Servidor de DNS”. La configuración y los servicios de DNS son
esenciales para el funcionamiento eficiente de un clúster SQL por varias razones. DNS, que
significa Sistema de Nombres de Dominio, es lo que permite que los nombres de dominio fáciles
de recordar, como "Byte. Local" (Nombre de nuestro dominio), se traduzcan en direcciones IP que
las computadoras usan para comunicarse entre sí.
El uso de DNS simplifica la gestión del clúster. En lugar de recordar y configurar
direcciones IP complejas para cada servidor, puedes usar nombres de dominio fáciles de entender.
Esto no solo hace que sea más fácil para los administradores de red configurar y mantener el
clúster, sino que también reduce el riesgo de errores humanos. Además, DNS facilita la
escalabilidad y la flexibilidad. Si necesitamos agregar o reemplazar un servidor en el clúster,
puedes hacerlo sin cambiar la configuración en cada uno de los otros servidores; simplemente
actualizamos el registro DNS correspondiente y todos los servidores seguirán funcionando sin
interrupciones. Esto es crucial para mantener la disponibilidad y el rendimiento del clúster.
Como podemos ver en las imágenes, se ilustra que equipos tenemos en nuestro DNS, y
también se evidencian equipos virtuales que son los clústeres como tal.
Servidor DNS
ISCSI
Para el ISCSI utilizamos el rol “Servidor del destino ISCSI”, en el cual involucramos las
máquinas que queremos asignarles los volúmenes, para darles los servicios de ISCSI. El rol ISCSI
(Internet Small Computer Systems Interface) es muy útil en la configuración de un clúster porque
proporciona una forma eficiente y flexible de gestionar el almacenamiento compartido, que es
esencial para el funcionamiento de los clústeres. Para que un clúster funcione correctamente, todos
los nodos del clúster necesitan acceso a los mismos datos y recursos de almacenamiento.
iSCSI permite que múltiples servidores (nodos del clúster) accedan al mismo
almacenamiento como si estuvieran conectados directamente a un disco duro local. Esto es
fundamental para sincronizar datos y asegurar que todos los nodos estén trabajando con la misma
información. El uso de iSCSI ofrece una gran flexibilidad. Puedes conectar varios servidores a un
solo almacenamiento centralizado sin la necesidad de hardware especial, como cables de fibra
óptica o switches SAN caros.
Esto también facilita la escalabilidad: puedes agregar más almacenamiento o servidores al
clúster según sea necesario sin cambios significativos en la infraestructura. Implementar un clúster
con iSCSI puede ser más económico en comparación con otras tecnologías de almacenamiento
compartido, como las SAN basadas en fibra óptica. Utiliza la infraestructura de red existente
(generalmente Ethernet), lo que reduce los costos asociados con la compra y el mantenimiento de
equipos especializados. A continuación, se muestra la configuración realizada:
Servidor del destino iSCSI
Configuración de iSCSI en el Servidor1
Almacenamiento Compartido entre nodos
Rol de Failover Clúster
Es la característica principal, ya que permite realizar la clusterización entre ambos nodos,
y es la que se encarga de administrar el mejor nodo para el servicio y la configuración como tal de
los nodos. Permite que los nodos trabajen juntos como si fueran un solo sistema. Esto significa
que, si uno de los servidores falla, los otros nodos pueden asumir automáticamente las cargas de
trabajo y continuar proporcionando servicios sin interrupción perceptible para los usuarios finales.
Nodos disponibles: Server01 y Server02
Los clústeres de failover protegen contra fallos tanto de hardware como de software. Si un
nodo experimenta un fallo de hardware, como un disco duro defectuoso o un problema con la
fuente de alimentación, el clúster puede redirigir automáticamente las solicitudes a otros nodos
saludables. Del mismo modo, si hay un fallo de software o se necesita mantenimiento en uno de
los nodos, el clúster puede migrar las cargas de trabajo sin que los usuarios se vean afectados.
Usar un clúster de failover simplifica la gestión y el mantenimiento de tus servidores. En
lugar de tener que administrar cada servidor de forma independiente, puedes gestionarlos como un
grupo cohesivo. Esto facilita tareas como aplicar actualizaciones de software, realizar copias de
seguridad y monitorear el rendimiento del sistema, ya que las acciones se aplican uniformemente
a todos los nodos del clúster. Los clústeres de failover son escalables y flexibles. Puedes agregar
nuevos servidores (nodos) al clúster según sea necesario para aumentar la capacidad de
procesamiento y almacenamiento. Además, puedes mover recursos entre nodos para equilibrar la
carga y optimizar el rendimiento del sistema.
Como podemos ver en la siguiente imagen, el entorno nos indica que nodo es el que posee
tanto el almacenamiento compartido como los nodos están activos.
La siguiente imagen muestra que permite configurar si queremos que un nodo específico
se encargue de las labores del servidor.
SQL Server
Utilizamos el gestor de base de datos SQL server, ya que al utilizar los sistemas operativos
de Microsoft es el motor más optimizado y apropiado para poder administrar dichas características
específicas del cluster, SQL Server destaca como la elección principal para un Failover Cluster en
Windows Server debido a su perfecta integración con la plataforma. Esta integración no solo
simplifica la configuración inicial, sino que también optimiza el rendimiento y la administración
continua del clúster.
Una de las características más potentes de SQL Server en este contexto es su soporte para
Always On Availability Groups. Este mecanismo permite mantener varias copias sincronizadas de
las bases de datos en diferentes nodos del clúster. Si un nodo experimenta una falla, las conexiones
de las aplicaciones se redirigen automáticamente al nodo de respaldo sin interrumpir el servicio.
Esto asegura una alta disponibilidad y minimiza cualquier tiempo de inactividad potencial.
Además de su robusta capacidad de alta disponibilidad, SQL Server es conocido por su
escalabilidad. Puede escalar verticalmente (aumento de recursos en un solo servidor) u
horizontalmente (distribución de carga entre varios servidores) para adaptarse a las necesidades
cambiantes de la carga de trabajo. Esta flexibilidad es crucial para entornos empresariales que
experimentan crecimiento o picos de uso repentinos.
La administración también se simplifica significativamente con SQL Server Management
Studio (SSMS) y otras herramientas de administración proporcionadas por Microsoft. Estas
herramientas permiten a los administradores gestionar todos los aspectos del clúster de bases de
datos desde una ubicación centralizada. Desde el monitoreo del rendimiento hasta la aplicación de
parches y la realización de copias de seguridad, todo se puede manejar de manera eficiente y
efectiva. En términos de seguridad, SQL Server ofrece una amplia gama de características
avanzadas; esto incluye el cifrado de datos para proteger información sensible, la integración con
Active Directory para una autenticación robusta y controles de acceso granulares. Estas
funcionalidades ayudan a cumplir con los estándares de seguridad y a proteger los datos críticos
almacenados en el clúster.
Gestor de Base de Datos: SQL Server
SQL Sever en el Sevidor2
Visualización de información de la base de datos en SQL Server
Aplicación
La aplicación que estamos utilizando es una desarrollada en HTML y PHP, la cual se
comunica con uno de los nodos creados y las credenciales del sa. Cuando el servidor está arriba,
la aplicación retorna un mensaje dado por un procedimiento almacenado, de lo contrario no realiza
ninguna acción y falla la conexión debido a que es el servidor que provee los servicios SQL. Esto
nos ayuda a indicar que los servicios funcionan, y el failover cluster cumple su objetivo.
Aplicación para realizar operaciones bancarias
Servidor arriba
Servidor abajo
Conclusiones
La implementación de un clúster de alta disponibilidad con SQL Server ha demostrado ser
un éxito; a lo largo del proyecto, se ha configurado e implementado este clúster siguiendo las
mejores prácticas y metodologías recomendadas. Se han realizado pruebas exhaustivas para
verificar el correcto funcionamiento del clúster en diferentes escenarios, incluyendo la falla de un
nodo, el intercambio de nodos y la parada de ambos nodos. Los resultados obtenidos confirman
que el clúster implementado proporciona la alta disponibilidad y la resiliencia esperadas,
garantizando el acceso continuo a la base de datos incluso en caso de fallos.
Una de las posibles mejoras es implementar un testigo de clúster para ayudar a mejorar la
confiabilidad del clúster y evitar la pérdida de datos en caso de un fallo del nodo principal. Es
importante considerar que si la demanda de la base de datos incrementa, es posible añadir más
nodos al clúster para mejor el rendimiento y la escalabiliad..