Вы находитесь на странице: 1из 102

SEMINARIO 16/03/2017

CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Alberto García
jagarcia@factorhumanoformacion.com

1
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Seminario - Cluster de Alta


Disponibilidad para Servidores Linux

2
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Seminario - Cluster de Alta Disponibilidad para Servidores Linux

• Clusters
• Tipos de Cluster
• Versiones
• Conceptos básicos
• Corosync/Pacemacker/pcs
• Configuración de recursos en un cluster

• Almacenamiento
• DAS
• SAN
• NFS/ISCSI
• Balanceadores
• Que es un balanceador
• Tipos de Balanceadores
• HAProxy
• Apache como frontal Web tres capas mod_jk/mod_proxy
• Integración con servidores de Aplicaciones Jboss/Tomcat

3
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

¿Qué es Linux Professional Institute?

• LPI Inc. se constituye formalmente como una


organización sin ánimo de lucro en Octubre de
1999, con su sede cerca de Toronto, Canadá.

• A LPI se le reconoce en todo el mundo como la


primera organización en impulsar y apoyar el uso de
Linux, Código Abierto y SW Libre.

4
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

¿Qué es Linux Professional Institute?

LPI se dedica a promover y certificar


capacidades esenciales de profesionales y
estudiantes en el sistema operativo Linux a
través de la creación de exámenes altamente
comprensibles e independientes de cualquier
distribución.
www.lpi.org

5
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Certificaciones LPI
• LPI ha diseñado el programa de certificación LPIC
(Linux Professional Institute Certification), avalado
y reconocido por organizaciones y empresas de
todo el mundo.
• El objetivo de las certificaciones LPIC es acreditar
la capacitación de los profesionales de las TI en el
uso del Sistema Operativo Linux y sus
herramientas asociadas.
• Son independientes de cualquier distribución y/o
fabricante.

6
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Certificaciones LPI

Valor añadido de las certificaciones oficiales LPI:

1. Avance profesional, los individuos que obtienen


una certificación LPI logran un mayor
reconocimiento y credibilidad.
2. Mayor confianza, al haber acreditado los
conocimientos y habilidades necesarias para
realizar el trabajo de manera eficiente y efectiva.
3. Diferenciación, en un mercado laboral cada vez
más competitivo.

7
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Linux Essentials LPIC 1 LPIC 2 LPIC 3

Exámenes LPI LE LPI 101 LPI 201 LPI 300 LPI 303
LPI 102 LPI 202 LPI 304

Aptitudes Instalación Administración Administración Administración


Escritorio Servidores Servidores Servidores Gran
Pequeña/Media Mediana/Gran Empresa
Empresa Empresa
Nivel Introductorio Junior Avanzado Sénior

8
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Certificación LPIC-1
LPIC 1 (Junior Level Linux Professional)

• Ser capaz de trabajar en la línea de comandos


• Realizar tareas sencillas de mantenimiento como ayudar
a usuarios, mantenimiento de usuarios, realización de
copias de seguridad y restauraciones, paradas y
arranque de sistemas.
• Instalación y configuración de un equipo de trabajo y su
conectividad a la red.
• Al obtener LPIC1, se habilita:
CompTIA Linux +
SUSE Certified Linux Administrator

9
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Certificación LPIC-2
LPIC 2 (Advanced Level Linux Professional)

Planificación, mantenimiento, securización de una red


mixta (MS, Linux) incluyendo:
• Servidor de red Samba
• Pasarela de Internet: firewall, proxy,correo, news
• Servidores de Internet: Servidores web, FTP
• Supervisión de asistentes
• Aconsejar en automatización y compras

10
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Certificación LPIC-3
LPIC 3 (Senior Level Linux Professional)

Exam 300
Entorno mixto

3 Exámenes Disponibles Exam 303


Seguridad

Exam 304
Virtualización y Alta
Disponibilidad

11
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Introducción
• Un sistema de alta disponibilidad es aquel que es capaz de seguir
ofreciendo sus servicios ante determinados fallos hardware y/o
software.
• Se basan en:
Un conjunto de nodos que proporcionan los servicios del cluster.
Un conjunto de estrategias para migrar los servicios entre los nodos.
Un servicio de comunicación entre los nodos.
Un sistema para detectar errores en el servidor.

• Generalmente incluyen un sistema de almacenamiento


compartido: DRBD/NAS/SAN.

12
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Introducción
Un clúster HA (High Availability) es un sistema orientado a ofrecer y garantizar
servicios en Alta Disponibilidad, es decir, con un alto grado de fiabilidad y de
continuidad operativa.

Se basa en máquinas redundantes (o nodos) que asumen el servicio


cuando algún componente del sistema falla.

Un clúster HA debe ser capaz de detectar cualquier fallo de hardware o


de software, reiniciar la aplicación en otro nodo y mantener el servicio
sin intervención de operador alguno, garantizando la integridad de los
datos del clúster.

13
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Introducción
El propósito de los clusters HA es eliminar los Puntos Únicos de Fallo
(Single Point of Failure,SPoF), mediante redundancia a todos los
niveles:

● Hardware
● Almacenamiento
● Conexiones de red
● ...

14
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Introducción
Para mantener la redundancia, la integridad y el control del clúster
sobre los recursos es fundamental no realizar acciones sobre los
nodos que no puedan ser replicadas, pues podrían crearse
inconsistencias. Toda modificación de la configuración de los
recursos debe hacerse mediante los agentes de recurso del propio
clúster.

Los Clústers HA son muy utilizados en bases de datos críticas,


sistemas de ficheros compartidos en red, aplicaciones de negocio o
servicios de clientes como sitios web de comercio electrónico.

15
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Introducción
Componentes de un Cluster
Un sistema clúster esta formado por diversos componentes hardware y software:
• Nodos: Cada una de las máquinas que componen el cluster, pueden ser desde simples ordenadores
personales a servidores dedicados, conectados por una red. Por regla general los nodos deben tener
características similares: arquitectura, componentes, sistema operativo.

• Sistemas Operativos: Se utilizan sistemas operativos de tipo servidor con características de


multiproceso y multiusuario, así como capacidad para abstracción de dispositivos y trabajo con interfaces IP
virtuales.

• Middleware de Cluster: Es el software que actúa entre el sistema operativo y los servicios o
aplicaciones finales. Es la parte fundamental del cluster donde se encuentra la lógica del mismo.

16
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Introducción
Componentes de un Cluster
• Conexiones de red: Los nodos del cluster pueden conectarse mediante una simple red Fast Ethernet o
utilizar tecnologías de red avanzadas como Gigabit Ethernet, In_niband, Myrinet, SCI, etc.

• Protocolos de comunicación: Definen la intercomunicación entre los nodos del cluster.


• Sistema de almacenamiento: El almacenamiento puede ir desde sistemas comunes de
almacenamiento interno del servidor a redes de almacenamiento compartido NAS o SAN.

• Servicios y aplicaciones: Son aquellos servicios y aplicaciones a ejecutar sobre el cluster


habitualmente.

17
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Introducción
Tipos de Cluster

Clusters de Alta Disponibilidad (HA, high availability)


Los clusters de alta disponibilidad tienen como propósito principal brindar la máxima
disponibilidad de los servicios que ofrecen. Esto se consigue mediante software que monitoriza
constantemente el cluster, detecta fallos y permite recuperarse frente a los mismos.

18
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Introducción
Tipos de Cluster

Clusters de Alto Rendimiento (HP, high performance)


Estos clusters se utilizan para ejecutar programas paralelizables que requieren de gran capacidad
computacional de forma intensiva. Son de especial interés para la comunidad científica o
industrias que tengan que resolver complejos problemas o simulaciones. Utilizando clustering,
podemos crear hoy en día supercomputadores con una fracción del coste de un sistema de altas
prestaciones tradicional.

19
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Introducción
Tipos de Cluster

Clusters de Balanceo de Carga (LB, Load Balancing)


Este tipo de cluster permite distribuir las peticiones de servicio entrantes hacia un conjunto de
equipos que las procesa. Se utiliza principalmente para servicios de red sin estado, como un
servidor web o un servidor de correo electrónico, con altas cargas de trabajo y de trá_co de red.
Las características más destacadas de este tipo de cluster son su robustez y su alto grado de
escalabilidad.

20
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Tipos de configuración
El tamaño más habitual de un clúster HA es de dos nodos, ya que es el
mínimo exigido para disponer de redundancia. Las dos configuraciones más
comunes en los clusters de dos nodos son:

Aprovecha mucho mejor los recursos físicos.


• Permite repartir mejor la carga entre los ● Configuración más sencilla
nodos.

21
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Conceptos básicos
• Failover: capacidad de recuperarse de un fallo desplegando los
servicios en otro nodo. "Clusters HA" = "failover clusters"

• Heartbeat: pulso o "latido" mediante el cual se mantiene la


comunicación entre los nodos del clúster. Si el nodo activo no responde al
latido, el nodo pasivo toma el control y despliega de inmediato los servicios
replicados.

• Por lo general, se implementa mediante una conexión de red privada


(dedicada) entre los nodos.

• Debe ofrecer una infraestructura de comunicación del clúster completa y


criptográficamente segura.

22
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Conceptos básicos
• Split-brain: se produce cuando los enlaces de red que unen a los nodos entre sí
caen, pero los nodos siguen operando. Se dice entonces que el clúster se ha
"partido". Puede causar corrupción de datos en sistemas de almacenamiento
compartido.

• Quorum: es un mecanismo para prevenir el split-brain. Se asigna un voto a cada


nodo y se le permite operar si obtiene mayoría de votos. Con un clúster de dos
nodos, la mayoría son dos votos, por lo que no es posible activar el quorum.

23
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Conceptos básicos
• STONITH: "Shoot The Other Node In The Head “. Es un método automático de
recuperación para desbloquear un nodo rápidamente, evitando que un
administrador deba realizar la operación de forma manual.

• El agente de recurso STONISH debe correr de forma obligatoria en el nodo


contrario, para evitar que un nodo pueda llegar a "dispararse" a sí mismo.

24
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Conceptos básicos
Soluciones Open Source de Clustering HA
Existen muchos proyectos Open Source dedicados a proporcionar soluciones para Clusters de Alta
Disponibilidad en Linux y teniendo en cuenta que actualmente las aplicaciones de clustering son bastante
complejas, suelen constar de varios componentes, por lo que solemos encontrarnos en situaciones en las
que una solución completa de clustering utiliza componentes de varios subproyectos.

A continuación vamos a describir algunos proyectos y componentes más importantes


en la actualidad dentro del ámbito de clusters de Software Libre.

25
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Conceptos básicos
Proyecto Linux-HA y Heartbeat
El proyecto Linux-HA [HA004] tiene como objetivo proporcionar una solución de alta disponibilidad
(clustering) para Linux.
Linux-HA se utiliza ampliamente y como una parte muy importante en muchas soluciones de Alta
Disponibilidad. Desde que comenzó en el año 1999 a la actualidad, sigue siendo una de las mejores
soluciones de software HA para muchas plataformas.
El componente principal de Linux-HA es Heartbeat, un demonio que proporciona los servicios de
infraestructura del cluster (comunicación y membresía).
Para formar una solución cluster de utilidad, Heartbeat necesita combinarse con un Cluster Resource
Manager (CRM), que realiza las tareas de iniciar o parar los recursos y dotar de alta disponibilidad.
En la primera versión de Linux-HA, se utiliza con Heartbeat un sencillo CRM que sólo era capaz de administrar
clusters de 2 nodos y detectar fallos a nivel de maquina. Con Linux-HA 2 se desarrolló un nuevo CRM más
avanzado, que superaba dichas limitaciones. De este nuevo desarrollo surge el proyecto CRM Pacemaker.

26
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Conceptos básicos
Pacemaker CRM
Pacemaker [19] es un administrador/gestor de recursos de cluster open-source.

Existe desde 2004 y cuenta con el soporte de RedHat y Novell para su desarrollo.

Pacemaker es compatible totalmente con Heartbeat, así como con los scripts de recursos existentes para
este, también se ha adaptado el administrador gráfico Linux-HA para que funcione con Pacemaker.

Pacemaker esta disponible en la mayoría de las distribuciones Linux actuales, las cuales lo han adoptado
como sucesor de Heartbeat.

27
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Conceptos básicos
OpenAIS
OpenAIS Cluster Framework [HA006] es una implementación open source de la Application
Interface Speci_cation (AIS). Un conjunto de especi_caciones para estandarizar el desarrollo de
servicios e interfaces para la alta disponibilidad, desarrolladas por el Service Availability Forum
[HA005].

Los principales beneficios de una solución de Cluster HA basado en las normas AIS son la mejora en
portabilidad e integración, permite sistemas más escalables, la reducción de costes y reutilización
de componentes.

28
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Servicios de alta disponibilidad

29
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Servicios de alta disponibilidad


• Unos paquetes de software que permite montar sistemas en alta
disponibilidad es pcs/corosync/pacemaker.

Pcs proporciona la autenticación y control de los nodos.


Corosync proporciona la comunicación entre los nodos.
Pacemaker proporciona el control de los recursos en cada uno de los nodos del cluster.

• Los servicios se arrancan con los comandos:

systemctl start pcsd.service


systemctl start corosync.service
systemctl start pacemaker.service

30
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Servicios de alta disponibilidad

31
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

El comando pcs

32
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Pcsd
• Se debe asignar una contraseña a un usuario:
• Será el que ejecute el servicio de pacemaker.
• Debe ser el mismo en todos los nodos del cluster y con la misma contraseña.
• De forma general se utiliza el usuario hacluster.
passwd hacluster

• Si se desea utilizar otro usuario es necesario modificar varios ficheros de


configuración.

33
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Pcsd
• Los nodos del cluster se crean con el comando:
pcs cluster auth nodo1 nodo2

• Solicitando el usuario del cluster y su contraseña.


Username: hacluster
Password: ********
nodo1: Authorized
nodo2: Authorized

• En cada uno de los nodos del cluster, dentro del directorio /var/lib/pcsd, se crean:
• Un fichero de identificación del nodo pcs_users.conf.
• Un certificado de autenticación del nodo mediante clave pública en los ficheros
pcsd.key y pcsd.crt.

34
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Corosync
• Utiliza paquetes multicast para la comunicación entre los nodos.

• Su fichero de configuración es
/etc/corosync/corosync.conf.
• Puede configurarse de forma manual.
• Lo más cómodo es crearlo de forma automática mediante el
comando:
pcs cluster setup --name miCluster nodo1 nodo2

35
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Fichero corosync.conf
• Formado por líneas que configuran directivas:
• Las directivas configuran el funcionamiento de corosync.

• Cinco tipo de directivas:


• totem{}: Configuración de la comunicación del cluster.
• logging{}: Configuración de los logs de la aplicación.
• quorum{}: Configuración del número de nodos del cluster.
• nodelist{}: Configuración de opciones de los nodos del cluster. Solo puede contener
subdirectivas node{} para cada uno de los nodos miembros del cluster.
• qb{}: Directivas de configuración de opciones de la librería libqb.

36
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Fichero corosync.conf

37
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Arranque Corosync
• Corosync puede arrancarse/pararse manualmente con el comando:
pcs cluster {start|stop} [--all]

• Una vez arrancado corosync podemos comprobar el estado de un nodo con:


corosync-cfgtool -s
Printing ring status.
Local node ID 1
RING ID 0
id = 10.0.0.1
status = ring 0 active with no faults

38
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Arranque Corosync
• Y el estado del cluster mediante el comando:
corosync-cmapctl

• Y los nodos con:


corosync-cmapctl | grep members
runtime.totem.pg.mrp.srp.members.1.config_version (u64) = 0
runtime.totem.pg.mrp.srp.members.1.ip (str) = r(0) ip(10.0.0.1)
runtime.totem.pg.mrp.srp.members.1.join_count (u32) = 1
runtime.totem.pg.mrp.srp.members.1.status (str) = joined
runtime.totem.pg.mrp.srp.members.2.config_version (u64) = 0
runtime.totem.pg.mrp.srp.members.2.ip (str) = r(0) ip(10.0.0.2)
runtime.totem.pg.mrp.srp.members.2.join_count (u32) = 1
runtime.totem.pg.mrp.srp.members.2.status (str) = joined

39
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Arranque Corosync

• Y el quorum (nodos) que forman el cluster con:


ccs status corosync
Membership information
----------------------
Nodeid Votes Name
1 1 nodo1 (local)
2 1 nodo2

40
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Pacemaker
• El fichero de configuración de pacemaker es

/var/lib/pacemaker/cib/cib.xml.

• Fichero muy complicado de editar de forma manual.


• Deben utilizarse el comando pcs para su modificación.

• Inicialmente pacemaker conoce:


• Nodos del cluster.
• Aplicación que proporciona la infraestructura del cluster.
• Versión de pacemaker.

41
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Pacemaker

42
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Pacemaker
• La configuración inicial es inconsistente:
• La configuración incluye el uso de stonith.
• Stonith reinicia un nodo cuando cree que su estado es indeterminado
(funciona mal).
• Al no estar configurado stonith, se indica que la configuración es invalida.

• Debe deshabilitarse stonith si no esta configurado.


pcs property set stonith-enable=false

43
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Pacemaker
• Existe una propiedad fundamental de un cluster que es el
quorum.
• Existe quorum cuando más de la mitad de los nodos de un
cluster están online.
• Si un cluster no tiene quorum, por defecto pacemaker detiene
todos los servicios del cluster.

• En un cluster de dos nodos, si un nodo falla ya no se produce el


quorum.
• Pacemaker detendría todos los servicios.
• No sería un cluster de alta disponibilidad.

44
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Pacemaker
• Se desactiva la detención de servicios en caso de que no
haya quorum con el comando:
pcs property set no-quorum-policy=ignore

• Pacemaker intenta repartir los recursos entre todos los nodos


disponibles.

El reparto de los recursos en los nodos se configura con la propiedad:


rsc defaults resource-stickiness

45
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Funcionamiento del Cluster

• El funcionamiento del cluster se puede comprobar con los


comandos:
– pcs status: Muestra el estado del cluster.
– pcs cluster unstandby <nodo>: Activa el nodo indicado.
– pcs cluster standby <nodo>: Desactiva el nodo indicado.

46
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Funcionamiento del Cluster

47
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Demostración
En este punto realizaremos demostraciones de diferentes
configuraciones de nuestro clúster Pcs/Corosys/Pacemaker

48
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Almacenamiento
Cuando hablamos de almacenamiento no solo pensamos en los discos duros que vamos a usar, sino también en
que sistemas de almacenamiento necesitamos al igual que los sistemas de ficheros que mejor se adaptan a
nuestras necesidades.
En primer lugar vamos ha hacer un pequeño repaso de cada unos de estos puntos, empezando por los
diferentes sistemas de almacenamiento (hardware) de los que podemos disponer.

SAN (Storage Area Network): es una red de almacenamiento dedicada que


proporciona almacenamiento a nivel de bloque a LUNs. Una LUN, o número de unidad
lógica, es un disco virtual proporcionado por la SAN. El administrador del sistema tiene el
mismo acceso y los derechos a la LUN como si fuera un disco directamente conectado a
la misma. El administrador puede particionar y formatear el disco a su antojo.
Tanto en SAN como en DAS, las aplicaciones y programas de usuarios hacen sus
peticiones de datos al sistema de ficheros directamente

49
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Almacenamiento
NAS (Network Attached Storage) es una tecnología de almacenamiento dedicada a compartir la capacidad
de almacenamiento de un (Servidor) con ordenadores personales o servidores clientes a través de una red
(normalmente TCP/IP), haciendo uso de un Sistema Operativo optimizado para dar acceso con mediante
protocolos como CIFS, NFS o FTP.
Los protocolos de comunicaciones NAS son basados en ficheros por lo que el cliente solicita el fichero completo
al servidor y lo maneja localmente.

DAS (Direct Attached Storage) es el método tradicional de almacenamiento y el más sencillo. Consiste en
conectar el dispositivo de almacenamiento directamente al servidor o estación de trabajo, es decir, físicamente
conectado al dispositivo que hace uso de él.
La diferencia entre DAS y SAN reside en la manera en la que dicho sistema de ficheros obtiene los datos
requeridos del almacenamiento. En una DAS, el almacenamiento es local al sistema de ficheros, mientras que
en una SAN, el almacenamiento es remoto.

50
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Almacenamiento
NAS (Network Attached Storage) es una tecnología de almacenamiento dedicada a compartir la capacidad de
almacenamiento de un (Servidor) con ordenadores personales o servidores clientes a través de una red
(normalmente TCP/IP), haciendo uso de un Sistema Operativo optimizado para dar acceso con mediante
protocolos como CIFS, NFS o FTP.
Los protocolos de comunicaciones NAS son basados en ficheros por lo que el cliente solicita el fichero completo al
servidor y lo maneja localmente.

51
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Almacenamiento
DRBD (Distributed Replicated Block Device) \parencite es una paquete de software que nos permite crear
una especie de RAID1 entro dos discos/sistemas conectados a través de la red/lan, sincronizando los datos entre
las diferentes particiones de los dos servidores diferentes.
No obstante, pese a que DRBD no es exactamente hardware de almacenamiento en red, si que presenta varias
funcionalidades que lo sitúan como un buen candidato para sustituir cualquiera de los métodos anteriores, ya
que conseguirá reducir costes respecto a los sistemas SAN y aumentar rendimiento respecto a los sistemas NAS,
con las limitaciones de que con DRBD el sistema de ficheros solamente será accesible desde dos servidores.

52
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Almacenamiento
En cuanto a las diferentes tecnologías de discos duros, estudiaremos las principales diferencias
entre los sistemas básicos SATA, los sistemas de alto rendimiento SAS y los nuevos sistemas SSD basados en
memoria no volátiles tipo flash y con unos tiempos de acceso muy superiores a cualquier otra tecnología
usada hasta estos momentos, viendo en cada uno de los casos sus tiempos de acceso, los mejores campos de
aplicación y por supuesto su coste.

SAS (Serial Attached SCSI) es una interfaz de transferencia de datos en serie, sucesor del SCSI
(Small Computer System Interface) paralelo, aunque sigue utilizando comandos SCSI para interaccionar con
los dispositivos SAS. Aumenta la velocidad, permite la conexión y desconexión de forma rápida.
La primera versión apareció a finales de 2003, SAS 300, que conseguía un ancho de banda de 3Gb/s, lo que
aumentaba ligeramente la velocidad de su predecesor , el SCSI Ultra 320MB/s (2,560 Gb/s). La siguiente
evolución, SAS 600, consigue una velocidad de hasta 6Gb/s

53
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Almacenamiento
Una de las principales características es que aumenta la velocidad de transferencia al aumentar el número de
dispositivos conectados, es decir, puede gestionar una tasa de transferencia constante para cada dispositivo
conectado, además de terminar con la limitación de 16 dispositivos existente en SCSI. Además, el conector es el
mismo que en la interfaz SATA y permite utilizar estos discos duros, para aplicaciones con menos necesidad de
velocidad, ahorrando costos. Por lo tanto, los discos SATA pueden ser utilizados por controladoras SAS pero no a la
inversa, una controladora SATA no reconoce discos SAS.

54
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Almacenamiento
SATA (Serial ATA) es una interfaz de transferencia de datos entre la placa base y algunos dispositivos de
almacenamiento, como puede ser el disco duro, lectores y regrabadores de CD/DVD/BR, etc. Serial ATA
sustituye a la tradicional Parallel ATA o P-ATA. SATA proporciona mayores velocidades, mejor aprovechamiento
cuando hay varias unidades, mayor longitud del cable de transmisión de datos y capacidad para conectar
unidades al instante.
La primera generación tiene una transferencias de 150 MB por segundo, también conocida por SATA 150 MB/s
o Serial ATA-150. Actualmente se comercializan dispositivos SATA II, a 300 MB/s, también conocida como Serial
ATA-300 y los SATA III con tasas de transferencias de hasta 600 MB/s.

SSD (unidad de estado sólido) es un dispositivo de almacenamiento de datos que usa una
memoria no volátil, como la memoria flash. En comparación con los discos duros tradicionales, las unidades de
estado sólido son menos susceptibles a golpes, son prácticamente inaudibles y tienen un menor tiempo de
acceso y de latencia. Los SSD hacen uso de la misma interfaz que los discos duros y por tanto son fácilmente
intercambiables sin tener que recurrir a adaptadores o tarjetas de expansión para compatibilizarlos con el
equipo.

55
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Almacenamiento
Los dispositivos de estado sólido que usan flash tienen varias ventajas únicas frente a los discos duros mecánicos:
• Arranque más rápido.
• Gran velocidad de lectura/escritura.
• Baja latencia de lectura y escritura, cientos de veces más rápido que los discos mecánicos.
• Menor consumo de energía y producción de calor. Resultado de no tener elementos mecánicos.
• Sin ruido. La misma carencia de partes mecánicas los hace completamente inaudibles.
• Rendimiento determinístico. A diferencia de los discos duros mecánicos, el rendimiento de los SSD es constante y
determinístico a través del almacenamiento entero. El tiempo de “búsqueda” constante.
Los dispositivos de estado sólido que usan flash tienen también varias desventajas:
• Precio. Los precios de las memorias flash son considerablemente más altos en relación precio/gigabyte.
• Menor recuperación. Después de un fallo físico se pierden completamente los datos pues la celda es destruida, mientras
que en un disco duro normal que sufre daño mecánico los datos son frecuentemente recuperables usando ayuda de
expertos.
• Vida útil. En cualquier caso, reducir el tamaño del transistor implica reducir la vida útil de las memorias NAND, se espera
que esto se solucione con sistemas utilizando memristores (memory resistor).

56
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Almacenamiento
Si medimos MB/seg comprobaremos que los discos SAS son “solo”, un 25% o 30% más rápidos que los SATA.
Hablando de IOPS (operaciones de entrada/salida por segundo), un disco SATA, difícilmente llega al 20% de lo
que ofrece un SAS de forma sostenida.
Los discos SAS, disponen de otras características como Full duplex interface (half duplex en SATA), tiempos
medios de búsqueda menores y más longevidad
Por otro lado, los discos SAS suelen ofrecer hasta 1,2 millones de horas de tiempo medio entre fallos
trabajando las 24 horas del día, mientras los SATA ofrecen alrededor de 1 millón de horas pero asignándoles
una carga de alrededor de 8 horas diarias de trabajo.
Los SSD, hoy por hoy, tienen como principales inconvenientes la durabilidad y el coste, pero en el momento
en que se solucionen, es casi inevitable que empiecen a copar el mercado de disco de alto rendimiento.
Por otro lado, vamos a ver que sistemas de ficheros se adaptan más a nuestras necesidades, centrando
nuestro estudio en los sistemas de ficheros para clusters que nos van a permitir el acceso a los datos que
contengan desde diferentes nodos simultáneamente. En concreto vamos a ver las principales diferencias entre
Lustre, GFS2 y OCFS2.

57
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Almacenamiento
Lustre es un sistema de archivos distribuido Open Source, normalmente utilizado en clusters a gran escala. El nombre es
una mezcla de Linux y clusters. El proyecto intenta proporcionar un sistema de archivos para clusters de decenas de miles de
nodos con petabytes de capacidad de almacenamiento, sin comprometer la velocidad o la seguridad y está disponible bajo la
GNU GPL.

El sistema de archivos GFS2 es un sistema de archivos nativo que interactúa directamente con la interfaz del sistema
de archivos del kernel de Linux (VFS). Un sistema de archivos GFS2 puede ser implementado en un sistema independiente o
como parte de una configuración de cluster. Cuando se implementa como un sistema de archivo de cluster, GFS2 emplea
metadatos distribuidos y varios diarios.
GFS2 proporciona compartición de datos entre los nodos GFS2 de un cluster, con una única visualización consistente del
espacio de nombres del sistema de archivos entre todos los nodos de GFS2. Esto le permite a los procesos en nodos
diferentes compartir archivos GFS2 del mismo modo que los procesos en el mismo nodo pueden compartir archivos en un
sistema de archivos local, sin ninguna diferencia discernible.

OCFS2 es un Sistema de ficheros en Cluster que permite el acceso simultáneo de múltiples nodos. Cada nodo OCFS2 dispone
de un sistema de ficheros montado, regularmente escribe un fichero meta-data permitiendo a los otros nodos saber que se
encuentra disponible.

58
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Comparativa Almacenamiento
El opuesto a NAS es la conexión DAS (Direct Attached Storage) mediante conexiones IDE, SCSI, SAS o SATA, o la
conexión SAN (Storage Area Network) por fibra óptica o iSCSI, en ambos casos con tarjetas de conexión especificas. Estas
conexiones directas (DAS) son por lo habitual dedicadas.

59
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Comparativa Almacenamiento
En la tecnología NAS, las aplicaciones y programas de usuario hacen las peticiones de datos a los sistemas de
ficheros de manera remota mediante protocolos CIFS y NFS, el almacenamiento es local al sistema de ficheros. Sin
embargo, DAS y SAN realizan las peticiones de datos directamente al sistema de ficheros.

Las ventajas del NAS sobre la conexión directa (DAS) son la capacidad de compartir las unidades, un menor coste,
la utilización de la misma infraestructura de red y una gestión más sencilla. Por el contrario, NAS tiene un menor
rendimiento y facilidad por el uso compartido de las comunicaciones.
Una SAN se puede considerar una extensión de Direct Attached Storage (DAS).
Donde en DAS hay un enlace punto a punto entre el servidor y su almacenamiento, una SAN permite a varios servidores
acceder a varios dispositivos de almacenamiento en una red compartida. Tanto en SAN como en DAS, las aplicaciones y
programas de usuarios hacen sus peticiones de datos al sistema de ficheros directamente.

60
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Comparativa Almacenamiento
La diferencia reside en la manera en la que dicho sistema de ficheros obtiene los datos requeridos del
almacenamiento. En DAS, el almacenamiento es local al sistema de ficheros, mientras que en SAN, el
almacenamiento es remoto. SAN utiliza diferentes protocolos de acceso como Fibre Channel y Gigabit Ethernet.
En el lado opuesto se encuentra la tecnología Network-attached storage (NAS), donde las aplicaciones hacen
las peticiones de datos a los sistemas de ficheros de manera remota mediante protocolos CIFS y Network File
System (NFS)

61
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Comparativa Almacenamiento
Almacenamiento ISCSI

Ventajas: ISCSI ha sido adaptado en muchos sectores de negocio, puesto que utiliza la red TCP/IP de la
empresa para acceder en modo bloque sin tener que invertir en hardware de FC. Por este motivo, en ciertos
entornos, esta solución es la ideal, dado que es mas sencilla de implementar y el echo de utilizar la red
Ethernet tradicional permite trabajar en largas distancias sin tener que recurrir a equipamientos especiales
conversión (FCIP, por ejemplo), en particular para la replicación.

Inconvenientes: las pruebas demuestran que este protocolo utiliza mas recursos de CPU. Es por tanto,
importante supervisar este punto y tenerlo en cuenta a la hora de realizar el dimensionamiento de los
servidores.

62
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Comparativa Almacenamiento
Almacenamiento ISCSI
Buenas practicas
• El uso de ISCSI es interesante solamente si la arquitectura puede aprovechar plenamente este protocolo
activando las jumbos frames (MTU 9000), permitiendo así alcanzar un excelente rendimiento. Esta activación
debe estar implementada en todos los pasos de la cadena.
• Es indispensable utilizar una tarjeta HBA ISCSI en el caso de utilizar tarjeta de 10 GbE.
• Se recomienda separar físicamente la red de almacenamiento ISCSI. En el caso en que esto no sea posible, es
preciso aislar los flujos mediante VLAN.
• Utilizar tarjetas con la funcionalidad TOE (TCP Offload Engine), para descargar al host de ciertas instrucciones
ligadas a la capa adicional ISCSI y reducir el overhead.
• La "congestión" de red es una de las primeras consideraciones a tener en cuenta para obtener buenos
rendimientos de red ISCSI. Esta puede deberse a una mala configuración de la red o una mala calidad de las
lineas (uso de cables de categoría 5 en lugar de categoría 6 para los enlaces Gigabit).

63
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Comparativa Almacenamiento
Multipathing ISCSI

64
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Comparativa Almacenamiento
Almacenamiento NFS

Ventajas: como para iSCSI, NFS utiliza la red estándar TCP/IP. Como ella, se implementa muy fácilmente sin
tener que implantar una infraestructura de almacenamiento dedicada. Es la menos cara de las tres soluciones.
No es necesario tener competencias de almacenamiento particulares. A menudo las NAS proporcionan
deduplicacion, que reduce espacio de almacenamiento necesario. Pero, preste atención a la deduplicacion y a
sus periodos de activación (a menudo en periodos nocturnos) que pueden ocurrir al mismo tiempo que las
copias de seguridad, lo cual genera niveles de contención importantes.

Inconvenientes: es el protocolo con peor rendimiento de los tres, aunque esta muy próximo al de iSCSI. El
uso de CPU del servidor host es superior al protocolo FC, aunque inferior al de iSCSI Software.

65
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Comparativa Almacenamiento
Almacenamiento NFS

Buenas practicas
• Realizar una separación entre la red dedicada al almacenamiento y la red Ethernet en los switchs
dedicados o utilizando VLAN.
• Activar las jumbo frames con switchs dedicados, y con Buffers importantes por puerto.
• Activar el protocolo sapnning tree.
• El uso de una red de 10 Gigabits se recomienda encarecidamente.
• Implantar tarjetas en FULL TOE para descargar a los servidores.

66
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Comparativa Almacenamiento
Almacenamiento SAN FC
Ventajas: se da por hechos al día de hoy, que Fibre Channel es el protocolo con mejor rendimiento y el que
consume menos recurso de CPU del servidor host en comparación a los protocolos NFS y iSCSI. Es posible alcanzar
altos niveles de rendimiento. Este protocolo funciona para todas las aplicaciones mas corrientes del mercado y es
ideal para aplicaciones intensivas I/O como base de datos o ERP. Además las SAN FC ofrece una capacidad de
evolución y funcionalidades muy avanzadas perfectamente adaptadas a entornos de producción críticos.

Inconvenientes: el FC es la solución mas cara de las tres, puesto que necesita construir una infraestructura de
almacenamiento nueva e invertir en tarjetas HBA, switchs FC, puertos SEP y cable. Además, esta solución es mas
compleja de implementar y necesita competencias de almacenamiento muy especializadas.

67
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Introducción
Buenas Practicas SAN FC
• Se recomienda implantar varias tarjetas HBA en los servidores y multiplicar
las rutas de acceso al array de almacenamiento para reducir los cortes en
los enlaces.
• Se recomienda utilizar aplicaciones de reparto de carga tales como EMC
PoverPath VE para tener optimizar la gestión de acceso entre los servidores
de almacenamiento.
• Es preferible tener el mismo numero de rutas entre todos los miembros del
cluster y que todos los servidores host del mismo cluster tengan la
visibilidad de los mismos volúmenes.

68
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

69
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

70
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

71
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

72
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

73
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

74
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

75
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

76
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

77
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

78
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

79
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

80
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

81
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

82
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

83
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

84
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

85
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

86
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

87
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

88
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceadores

89
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceo Apache
El objetivo de configurar un Apache delante de un servidor de aplicaciones, Jboss/Tomcat, o de otros
servidores Apache es disponer de una capa que ofrezca un mejor rendimiento para servir contenido estático
(Apache > Jboss/Tomcat) y además poder añadir otras funcionalidades en las que Apache les supera
claramente, reescritura de URLs, virtualhosting, medidas de seguridad, balanceo de carga, etc…
Decidir entre mod_jk, mod_proxy_http y mod_proxy_ajp mod_cluster
A lo largo de los años se han desarrollado multitud de conectores para comunicar el servidor Apache con
Jboss EAP utilizando distintos protocolos.
Opciones a considerar son las siguientes:
• mod_jk
• mod_proxy_http
• mod_proxy_ajp
• mod_cluster (RECOMENDADA si utilizamos Jboss EAP)
Debe evitar conectores que han sido abandonados a lo largo de los años: mod_jk2, mod_jserv, mod_webapp.
Dentro de estos tres módulos por experiencia en entorno de producción recomiendo las soluciones de mod_jk
o mod_proxy_http.

90
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Apache y JBOSS AS (puerto 80)


Esta estructura es interesante cuando queremos tener en un entorno web múltiples instancias de JBOSS/Tomcat
sobre la misma url.

En la figura se observa que todas las peticiones de los usuarios de internet son procesadas por Apache y este las distribuye
sobre los servidores de aplicaciones que a su vez se encargan de ejecutar la lógica de negocio de la aplicación y devuelven (o
no) las respuesta adecuada. Esta arquitectura es una de las más utilizadas.

91
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceador Apache Mod_proxy


Este tipo de configuración, resulta muy útil, cuando es necesario realizar un Balanceo de Carga y se posee un
conjunto de servidores con características desiguales, o queremos simplemente repartir la carga de peticiones.

92
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceo Apache Mod_jk

93
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Apache y JBOSS AS (puerto 80)


Para seguir con los ejemplos de clusterizacion nos vamos a centrar en el uso de un cluster en un entorno web para
poder crear la siguiente arquitectura:

94
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceo Apache
En las versiones de Jboss EAP6/7, podemos utilizar mod_cluster.
Para montar un cluster de servidores jBoss, con replicación de sesión (Infinispan), una de las mejores opciones que
se pueden utilizar, es apache con mod_cluster como balanceador.

Entre las ventajas de mod_cluster se destacan las siguientes:


• El factor de carga se calcula en base a lo dice cada nodo.
• Tiene auto Discovery de nodos, algo importantísimo en un ambiente elastic cloud, donde los nodos pueden
levantarse dinámicamente en base a la demanda.
• El módulo de nodo de mod_cluster ya viene integrado en JBoss AS6.
• Autodetección de nodos caídos.
• HeartBeat, Balanceo basado en la carga de los nodos,
• Transparent Failover, Sticky Session.

95
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Balanceo Apache
En las versiones de Jboss EAP6/7, podemos utilizar mod_cluster.

96
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Apache y JBOSS AS mod_jk


Descargar Apache 2.2
Para seguir con el montaje necesitamos un servidor Apache 2.2,
Existen dos maneras de montar el proxy apache sobre cada servidor de aplicaciones
del cluster:
• Usando mod_jk 1.2.x
• Usando mod_proxy con JBoss y Apache2.2.x

Configurar mod_proxy en httpd.conf


Por la sencillez, robustez y estabilidad vamos a escoger la opción 2. Y empezamos
habilitando el módulo correspondiente en la configuración del apache, para ello:
Editamos el fichero /etc/httpd/conf/httpd.conf

Con esto es suficiente para cargar el balanceador http en el apache.

97
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Apache y JBOSS AS (puerto 80)


Configurar mod_proxy en httpd.conf
Es siguiente paso es registrar nuestro cluster de dos nodos en el apache editando:

Editamos el fichero /etc/httpd/conf/httpd.conf En la documentación oficial de apache se


puede encontrar la definición de todos los
y pegando el siguiente código al final del fichero parametros que acepta el balanceador
(Apache Module mod_proxy)
##### balancer://jbosscluster es el nombre del balanceador apache sobre nuestro cluster
node1 y node2
<Proxy balancer://jbosscluster>
# cluster member 1
BalancerMember http://10.0.0.1:8080 route=node1
# cluster member 2
BalancerMember http://10.0.0.2:8080 route=node2
ProxySet stickysession=JSESSIONID|jsessionid
ProxySet lbmethod=byrequests
ProxySet nofailover=Off
</Proxy>
<Location /balancer-manager>
SetHandler balancer-manager
Order deny,allow
Deny from all
## Introducir las IPs permitidas separadas por espacios para monitorizar el balanceador.
Allow from 127.0.0.1
</Location>

98
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Apache y JBOSS AS (puerto 80)


Habilitar un virtual host (no publicar aplicaciones en el context-root)

Por defecto el servidor de aplicaciones JBOSS presenta diferentes


aplicaciones web para configuración, monitoreo, servicios, etc. con lo que
tenemos que asegurarnos de no clusterizar/balancear estos servicios. Para
ello vamos a crear un virtual-host en apache sobre el dominio donde
montemos nuestra aplicación web.
Nuestra aplicación de ejemplo se publicará bajo el dominio
aplicaciones.curso.es, escogemos como contexto de aplicación un nombre
que no esté reservado por el servidor de aplicaciones, por ejemplo
/SGAJBoss.
Con los nombres anteriores y sin un apache y sin
un cluster el acceso a la aplicación sería con:
http://aplicaciones.curso.es:8080/SGAJBoss/

En el caso de nuestro cluster será:


http://192.168.2.104:8080/SGAJBoss/
http://192.168.2.105:8080/SGAJBoss/

99
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

Demostración
En este punto realizaremos una demostraciones de configurar Apache a través
de mod_jk y mod_proxy para servir peticiones

100
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

¡Gracias por su atención!

Alberto García

101
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX

102

Вам также может понравиться