Sistemas Distribuidos y Alta Disponibilidad
Ponente:
Juan Miguel Taboada Godoy
[email protected] - http://www.centrologic.com
Sistemas Distribuidos y Alta Disponibilidad
Necesidades de la Empresa
Computación
Meteorología
Simuladores
Cálculos financieros
Inversión
Investigación
Almacenamiento
Web
FTP
Backup
Bases de Datos
Escritorios distribuidos
Objetivos
Reducir gastos
Incrementar calidad
Clientes contentos
Alta disponibilidad
Eficiencia
Clusters
Alta Disponibilidad
Soluciones
Condicionantes
Globatic
IBM
SUN Microsystems
Supermicro
Intel
AMD
Exceder requerimientos
Funcionar siempre
Servicio de calidad
Autoprotección contra errores
Redundancia de datos
Sistemas Distribuidos y Alta Disponibilidad
¿Qué es un cluster?
Cluster => Conjunto => Elementos
Computación
Muchos ordenadores para aparentar
ser uno sólo
Trasparencia de uso
Jerarquía heterogénea
Cambios dinámicos en la topología
Sistema de ficheros distribuido
Alta escalabilidad
Unidad = Átomo del cluster
Características mínimas (grupo)
Mismos objetivos
Problema divisible en partes
Un átomo trabaja con un trozo
Trozos de solución => Solución completa
Sistemas Distribuidos y Alta Disponibilidad
Historia
Inicio del proyecto
Versión 0 (1977) -> UNIX with SP [PDP]
Versión 4 (1988) -> MOSIX [BAX780]
Versión 6 (1991) -> MOSIX [80486 y Pentium]
Versión 7 (1998) -> MOSIX [x86 y Linux]
Moshe Bar
Universidad?
Grupo de estudiantes
Desarrollo libre
Se divide el proyecto (10 febrero 2002)
MOSIX
Comercial
Crecimiento lento
Código anticuado
OpenMosix
Kernel Linux 2.4.24
Soporte para IA64
Totalmente rediseñado
Mosix Userlands
Licencia GNU/GPL
Sistemas Distribuidos y Alta Disponibilidad
Funcionamiento: Kernel
Descripción
OpenMosix es un parche
Sólo un parche por núcleo
Los parches son cambios en el núcleo
Características
Sólo entiende de procesos
Espacio de memoria exportable
NO Threads (Hilos)
Programación por FORKs
Distribuido
Sistemas Distribuidos y Alta Disponibilidad
Funcionamiento: Migración
Características
Exporta a la más potente y libre
E/S = Volver
Balanceo de carga automático
Algoritmo de retención
Kill por desconexión
Sistemas Distribuidos y Alta Disponibilidad
Funcionamiento: Herramientas
Herramientas
mosrun
mosctl
mosmon
mtop y mps
mosPBS
CHPOX
OpenMosixview
OpenMosixblaster
Cluster Knoppix
Sistemas Distribuidos y Alta Disponibilidad
Instalación: Planificar
Pasos
Necesidades de cómputo
Acceso a disco
Potencia de los nodos
Escalabilidad
Refrigeración
Sobrecarga de la red (aislada/distribuida)
Jerarquía centralizada o distribuida
Gestión de colas (multiples usuarios)
Tiempo de ejecución (Alta disponibilidad)
Sistemas Distribuidos y Alta Disponibilidad
Instalación: Núcleo
Procedimiento
Obtener el parche para el núcleo
Obtener un núcleo válido para el parche
Parchear [patch -p0 < parche]
Configurar [make menuconfig]
Compilar [make dep clean bzImage]
Módulos [make modules modules_install]
Instalar núcleo en /boot
Configurar LILO
Arrancar (todavía no se puede usar)
Sistemas Distribuidos y Alta Disponibilidad
Instalación: Herramientas
Procedimiento
Descargar openmosixUserlands
Descomprimir
Modificar Makefile (para ruta al kernel)
Compilar (make)
Instalar (make install)
Script de arranque (init.d+runlevel)
Sólo nos queda configurar los nodos
Sistemas Distribuidos y Alta Disponibilidad
Instalación: Configurar
/etc/cluster.map
Número: número del nodo
Dirección IP: ip en la que comienza el rango
Cantidad: indica la longitud del rango
Es importante que los nodos no se solapen
Ej:
Número Dirección IP
192.168.1.1
1
5
192.168.1.11
Cantidad
10
10
/etc/cluster.map
Número Dirección IP Cantidad Correspondencia
192.168.50.1 3 192.168.50.(1,2,3)
1
2
192.168.50.10 1 192.168.50.10
192.168.50.11 1 192.168.50.11
3
192.168.50.12 1 192.168.50.12
4
5
192.168.50.13 3 192.168.50.(13,14,15)
192.168.50.16 2 192.168.50.(16,17)
6
Sistemas Distribuidos y Alta Disponibilidad
En la vida real
Estructura heterogénea
Temperatura de la sala a 18ºC
Potencia centrada en paralelismo
Sistemas Distribuidos y Alta Disponibilidad
Pruebas y resultados
SIN CLUSTER
AMD Atlon XP a 2200Mhz
Generador RSA (llave privada y pública
X minutos en generar 10 000 llaves RSA
Media: Y,Z llaves por segundo
CON CLUSTER
10 Pentium 3 a 1000Mhz
Generador RSA (llave privada y pública)
42 minutos en generar 10 000 llaves RSA
Media: 3,9 llaves por segundo
Sistemas Distribuidos y Alta Disponibilidad
Demostración en tiempo real
Sistemas Distribuidos y Alta Disponibilidad
Descanso según el protocolo
Tira cómica gracias a:
Sistemas Distribuidos y Alta Disponibilidad
¿Qué es la Alta Disponibilidad?
Concepto
HA: High Availability
Máxima disposición temporal
Concepto de redundancia
Rápida detección y recuperación
Consistencia de las copias
Importancia de la seguridad
Ideas
Buscar amistad ;-)
Trabajar sábado noche
Niños en la guardería
Solvencia económica
Lo contrario de Windows
Pareja/conyuje de viaje
Una urgencia
Sistemas Distribuidos y Alta Disponibilidad
Teoría del KAOS
Detalles
Números semi-aleatorios en computación
KAOS = Sin orden = No previsible
Política anti-KAOS
Seguridad VS Alta Disponibilidad
Gasto tiene que compensar a pérdidas
Preguntas
¿Realmente lo necesito?
¿Qué inversión estoy dispuesto a realizar?
¿Qué deseo proteger? ¿de qué o quién?
¿Me he asesorado correctamente?
¿Empleados informados?
Fuentes de errores
Software
Hardware
Naturaleza
Empleados
Incompetencia
Sistemas Distribuidos y Alta Disponibilidad
Heartbeat
Objetivos
Asegurar actividad
Redundancia en comunicaciones de control
Detectar caidas del sistema
Recuperar actividades muertas
Takeover (Intercambiar IP)
Características
Comunicar su estado a los otros nodos
Comprobar estado de los nodos
Suplantar las actividad de los nodos caidos
Ocupar la IP asignada al servicio
Tomar acciones extras ante caidas
Tiempo de recuperación de 30 a 60 segundos
Ventajas
Gratuito
Licencia GNU/GPL
Fácil de configurar
Comunicación por RED y por SERIE
Sistemas heterogéneos
Altamente soportado
Integrable con otras aplicaciones
Inconvenientes
Nodo de reserva desaprovechado
Pérdida de conexiones remotas
No replica los datos entre los nodos
Obliga a centralizar el sistema de ficheros
Sistemas Distribuidos y Alta Disponibilidad
DRBD
Características
Replicación Distribuida de Dispositivos de Bloques
Copia de seguridad en tiempo real
Sistema de transaciones a nivel del sistema de ficheros
Automatismo en la sincronización
Funcionamiento
Compilar módulo
Genera nuevos dispositivos sobre partición
Sincroniza los sistemas de fichero
automáticamente
Actualiza los sitemas de ficheros en tiempo real
Master -> Slave
Ventajas
Gratuito y con licencia GNU/GPL
Replicación de datos automática
Funcionamiento remoto
Fácil de configurar
Abstracción con el sistema operativo
Sistemas Distribuidos y Alta Disponibilidad
CODA
Características
Es un sistema de ficheros distribuido
Compilable en núcleo estándar
Sistema de ficheros remoto
Alta fiabilidad
Estabilidad (Mejor que NFS/SAMBA)
Licencia GNU/GPL
Gestión de accesos Multiusuario
NIS centraliza claves e información de usuarios
NIS+CODA = Escritorio virtual (remoto)
Sistemas Distribuidos y Alta Disponibilidad
Sistemas redundantes
Premisas
Discos replicados
Fuente redundante
Más de un acceso acceso a Internet
Red duplicada entre todos los equipos a todos los niveles
Alimentación eléctrica (replicada e ininterrumpida)
Localización espacial (sistemas duplicados)
Sistemas Distribuidos y Alta Disponibilidad
Instalación: Planificar
Estudio previo
Necesidades
Servicios a ofrecer
Tiempo de inactividad máximo
Presupuesto (teoría del KAOS)
Seguridad
Localización (detalles de las instalaciones)
Sistemas Distribuidos y Alta Disponibilidad
Instalación: Hearbeat
Antes de...
Interconectar equipos por RED o SERIE
Descargar Heartbeat
Instalar librería libnet y libglib-devel
Instalar Heartbeat
/etc/ha.d/ha.cf
# define nodes in cluster
node ttisrv1
node ttisrv2
Configuración
General: /etc/ha.d/ha.cf
Validación: /etc/ha.d/authkeys
Servicios: /etc/ha.d/haresources
# time a system must be unreachable
before considered dead (seconds)
deadtime 5
# set up for the serial heartbeat pulse
serial /dev/ttyS0
baud 19200
# interface to run the network heartbeat
pulse
udp eth1
/etc/ha.d/haresources
# use ttisrv1 as primary, use 192.168.0.100 as shared IP
ttisrv1 192.168.0.100 Filesystem::/dev/sda1::/ttidisk::ext2 \
smb nfslock nfs
Sistemas Distribuidos y Alta Disponibilidad
En la vida real
Empresas
ISPs
Bancos
Contabilidad
Bases de datos
Ciencia y tecnología
Centros de cálculo
Meteorología
Investigación
Astronomía
Programas @home
Simuladores de vida
Ejército
Particulares
Servidores de Juegos
FTPs
Servidores de redes P2P
Streaming
Sistemas Distribuidos y Alta Disponibilidad
Teoría de los 9s
Seis Nueves
Nº de nueves Disponibilidad
1
2
3
4
5
6
90%
99%
99,9000%
99,9900%
99,9990%
99,9999%
Desconexión/Año
37 días
3,7días
8,8horas
53minutos
5,3minutos
32 segundos
Sistemas Distribuidos y Alta Disponibilidad
Pruebas y resultados
Apache
Entre 30 y 60 segundos inactivo (Heartbeat)
Recuperación instantánea de la dirección IP
Recuperación total del servicio instantánea
Samba
Entre 30 y 60 segundos inactivo (Heartbeat)
Recuperación instantánea de la dirección IP
Recuperación total del servicio en 1 y 3 minutos
Sistemas Distribuidos y Alta Disponibilidad
Ahora es tu turno
?
?
?
?
? ?
?
?
?
? ?
? ?
? ?
?
?
?
?
?
Sistemas Distribuidos y Alta Disponibilidad
Computational Logistic Center
Gracias
Juan Miguel Taboada Godoy
[email protected]
http://www.centrologic.com
Teléfono: +34 902884062
Comentarios de: Sistemas Distribuidos y Alta Disponibilidad Juan Miguel Taboada Godoy (0)
No hay comentarios