Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de...

28
Sistemas Distribuidos y Alta Disponibilidad Ponente: Juan Miguel Taboada Godoy [email protected] - http://www.centrologic.com

Transcript of Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de...

Page 1: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Ponente:Juan Miguel Taboada [email protected] - http://www.centrologic.com

Page 2: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Necesidades de la Empresa

MeteorologíaSimuladoresCálculos financierosInversiónInvestigación

Computación

WebFTPBackupBases de DatosEscritorios distribuidos

Almacenamiento

Reducir gastosIncrementar calidadClientes contentosAlta disponibilidadEficiencia

Objetivos

Clusters Alta Disponibilidad

GlobaticIBM

SUN MicrosystemsSupermicro

IntelAMD

Soluciones

Exceder requerimientosFuncionar siempreServicio de calidad

Autoprotección contra erroresRedundancia de datos

Condicionantes

Page 3: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

¿Qué es un cluster?Cluster => Conjunto => Elementos

Unidad = Átomo del clusterCaracterísticas mínimas (grupo)

Mismos objetivos

Problema divisible en partesUn átomo trabaja con un trozo

Trozos de solución => Solución completa

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

Computación

Page 4: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

HistoriaInicio 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 BarUniversidad?

Grupo de estudiantesDesarrollo libre

Se divide el proyecto (10 febrero 2002)

MOSIXComercial

Crecimiento lentoCódigo anticuado

OpenMosixKernel Linux 2.4.24Soporte para IA64

Totalmente rediseñadoMosix Userlands

Licencia GNU/GPL

Page 5: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Funcionamiento: Kernel

OpenMosix es un parcheSólo un parche por núcleoLos parches son cambios en el núcleo

Descripción Sólo entiende de procesosEspacio de memoria exportableNO Threads (Hilos)Programación por FORKsDistribuido

Características

Page 6: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Funcionamiento: Migración

Exporta a la más potente y libreE/S = VolverBalanceo de carga automáticoAlgoritmo de retenciónKill por desconexión

Características

Page 7: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Funcionamiento: Herramientas

mosrunmosctl

mosmonmtop y mps

mosPBSCHPOX

OpenMosixviewOpenMosixblasterCluster Knoppix

Herramientas

Page 8: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Instalación: Planificar

Necesidades de cómputoAcceso a discoPotencia de los nodosEscalabilidadRefrigeraciónSobrecarga de la red (aislada/distribuida)Jerarquía centralizada o distribuidaGestión de colas (multiples usuarios)Tiempo de ejecución (Alta disponibilidad)

Pasos

Page 9: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Instalación: Núcleo

Obtener el parche para el núcleoObtener un núcleo válido para el parcheParchear [patch -p0 < parche]Configurar [make menuconfig]Compilar [make dep clean bzImage]Módulos [make modules modules_install]Instalar núcleo en /bootConfigurar LILOArrancar (todavía no se puede usar)

Procedimiento

Page 10: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Instalación: Herramientas

Descargar openmosixUserlandsDescomprimirModificar Makefile (para ruta al kernel)Compilar (make)Instalar (make install)Script de arranque (init.d+runlevel)Sólo nos queda configurar los nodos

Procedimiento

Page 11: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Instalación: Configurar

/etc/cluster.map

Número Dirección IP Cantidad Correspondencia

1 192.168.50.1 3 192.168.50.(1,2,3)

2 192.168.50.10 1 192.168.50.10

3 192.168.50.11 1 192.168.50.11

4 192.168.50.12 1 192.168.50.12

5 192.168.50.13 3 192.168.50.(13,14,15)

6 192.168.50.16 2 192.168.50.(16,17)

Número: número del nodoDirección IP: ip en la que comienza el rangoCantidad: indica la longitud del rango

Es importante que los nodos no se solapenEj:Número Dirección IP Cantidad 1 192.168.1.1 10 5 192.168.1.11 10

/etc/cluster.map

Page 12: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

En la vida realEstructura heterogénea

Temperatura de la sala a 18ºCPotencia centrada en paralelismo

Page 13: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Pruebas y resultados

AMD Atlon XP a 2200MhzGenerador RSA (llave privada y públicaX minutos en generar 10 000 llaves RSA

Media: Y,Z llaves por segundo

SIN CLUSTER

10 Pentium 3 a 1000MhzGenerador RSA (llave privada y pública)42 minutos en generar 10 000 llaves RSA

Media: 3,9 llaves por segundo

CON CLUSTER

Page 14: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Demostración en tiempo real

Page 15: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Descanso según el protocolo

Tira cómica gracias a:

Page 16: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

¿Qué es la Alta Disponibilidad?

Buscar amistad ;-)Trabajar sábado nocheNiños en la guarderíaSolvencia económicaLo contrario de WindowsPareja/conyuje de viajeUna urgencia

Ideas

HA: High AvailabilityMáxima disposición temporalConcepto de redundanciaRápida detección y recuperaciónConsistencia de las copiasImportancia de la seguridad

Concepto

Page 17: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Teoría del KAOS

Números semi-aleatorios en computaciónKAOS = Sin orden = No previsiblePolítica anti-KAOSSeguridad VS Alta DisponibilidadGasto tiene que compensar a pérdidas

Detalles

¿Realmente lo necesito?¿Qué inversión estoy dispuesto a realizar?¿Qué deseo proteger? ¿de qué o quién?¿Me he asesorado correctamente?¿Empleados informados?

Preguntas

SoftwareHardwareNaturalezaEmpleadosIncompetencia

Fuentes de errores

Page 18: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

HeartbeatAsegurar actividadRedundancia en comunicaciones de controlDetectar caidas del sistemaRecuperar actividades muertasTakeover (Intercambiar IP)

Objetivos

Comunicar su estado a los otros nodosComprobar estado de los nodosSuplantar las actividad de los nodos caidosOcupar la IP asignada al servicioTomar acciones extras ante caidasTiempo de recuperación de 30 a 60 segundos

Características

Nodo de reserva desaprovechadoPérdida de conexiones remotasNo replica los datos entre los nodosObliga a centralizar el sistema de ficheros

Inconvenientes

GratuitoLicencia GNU/GPLFácil de configurarComunicación por RED y por SERIESistemas heterogéneosAltamente soportadoIntegrable con otras aplicaciones

Ventajas

Page 19: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

DRBD

Replicación Distribuida de Dispositivos de BloquesCopia de seguridad en tiempo realSistema de transaciones a nivel del sistema de ficherosAutomatismo en la sincronización

Características

Compilar móduloGenera nuevos dispositivos sobre particiónSincroniza los sistemas de fichero automáticamenteActualiza los sitemas de ficheros en tiempo realMaster -> Slave

Funcionamiento

Gratuito y con licencia GNU/GPLReplicación de datos automáticaFuncionamiento remotoFácil de configurarAbstracción con el sistema operativo

Ventajas

Page 20: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

CODA

Es un sistema de ficheros distribuidoCompilable en núcleo estándarSistema de ficheros remotoAlta fiabilidadEstabilidad (Mejor que NFS/SAMBA)Licencia GNU/GPLGestión de accesos MultiusuarioNIS centraliza claves e información de usuariosNIS+CODA = Escritorio virtual (remoto)

Características

Page 21: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Sistemas redundantes

Discos replicadosFuente redundanteMás de un acceso acceso a InternetRed duplicada entre todos los equipos a todos los nivelesAlimentación eléctrica (replicada e ininterrumpida)Localización espacial (sistemas duplicados)

Premisas

Page 22: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Instalación: Planificar

NecesidadesServicios a ofrecerTiempo de inactividad máximoPresupuesto (teoría del KAOS)SeguridadLocalización (detalles de las instalaciones)

Estudio previo

Page 23: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Instalación: Hearbeat

Interconectar equipos por RED o SERIEDescargar HeartbeatInstalar librería libnet y libglib-develInstalar Heartbeat

Antes de...

General: /etc/ha.d/ha.cfValidación: /etc/ha.d/authkeysServicios: /etc/ha.d/haresources

Configuración

# define nodes in clusternode ttisrv1node ttisrv2

# time a system must be unreachable before considered dead (seconds)deadtime 5

# set up for the serial heartbeat pulseserial /dev/ttyS0baud 19200

# interface to run the network heartbeat pulseudp eth1

/etc/ha.d/ha.cf

# use ttisrv1 as primary, use 192.168.0.100 as shared IPttisrv1 192.168.0.100 Filesystem::/dev/sda1::/ttidisk::ext2 \smb nfslock nfs

/etc/ha.d/haresources

Page 24: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

En la vida real

ISPsBancosContabilidadBases de datos

Empresas

Centros de cálculoMeteorologíaInvestigaciónAstronomíaProgramas @homeSimuladores de vidaEjército

Ciencia y tecnología

Servidores de JuegosFTPsServidores de redes P2PStreaming

Particulares

Page 25: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Teoría de los 9s

Nº de nueves Disponibilidad Desconexión/Año1 90% 37 días2 99% 3,7días3 99,9000% 8,8horas4 99,9900% 53minutos5 99,9990% 5,3minutos6 99,9999% 32 segundos

Seis Nueves

Page 26: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Pruebas y resultados

Entre 30 y 60 segundos inactivo (Heartbeat)Recuperación instantánea de la dirección IPRecuperación total del servicio instantánea

Apache

Entre 30 y 60 segundos inactivo (Heartbeat)Recuperación instantánea de la dirección IPRecuperación total del servicio en 1 y 3 minutos

Samba

Page 27: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Ahora es tu turno

? ?? ? ?

? ? ?

? ? ? ?

? ? ? ?

? ? ? ?

Page 28: Sistemas Distribuidos y Alta Disponibilidad · Gestión de colas (multiples usuarios) Tiempo de ejecución (Alta disponibilidad) Pasos. Sistemas Distribuidos y Alta Disponibilidad

Sistemas Distribuidos y Alta Disponibilidad

Computational Logistic Center

[email protected]://www.centrologic.comTeléfono: +34 902884062

Juan Miguel Taboada Godoy

Gracias