Академический Документы
Профессиональный Документы
Культура Документы
Alberto García
jagarcia@factorhumanoformacion.com
1
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
2
SEMINARIO 16/03/2017
CLUSTER 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
4
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
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
7
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
Exámenes LPI LE LPI 101 LPI 201 LPI 300 LPI 303
LPI 102 LPI 202 LPI 304
8
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
Certificación LPIC-1
LPIC 1 (Junior Level Linux Professional)
9
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
Certificación LPIC-2
LPIC 2 (Advanced Level Linux Professional)
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
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.
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.
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.
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.
• 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.
17
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
Introducción
Tipos de Cluster
18
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
Introducción
Tipos de Cluster
19
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
Introducción
Tipos de Cluster
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:
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"
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.
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.
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.
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
29
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
30
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
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
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
• 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.
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]
38
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
Arranque Corosync
• Y el estado del cluster mediante el comando:
corosync-cmapctl
39
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
Arranque Corosync
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.
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.
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.
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
45
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
46
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
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.
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
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
92
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
93
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
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.
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
97
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
98
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
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
Alberto García
101
SEMINARIO 16/03/2017
CLUSTER ALTA DISPONIBILIDAD PARA SERVIDORES LINUX
102