sistemas distribuidos y alta disponibilidad · gestión de colas (multiples usuarios) tiempo de...
TRANSCRIPT
Sistemas Distribuidos y Alta Disponibilidad
Ponente:Juan Miguel Taboada [email protected] - http://www.centrologic.com
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
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
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
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
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
Sistemas Distribuidos y Alta Disponibilidad
Funcionamiento: Herramientas
mosrunmosctl
mosmonmtop y mps
mosPBSCHPOX
OpenMosixviewOpenMosixblasterCluster Knoppix
Herramientas
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
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
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
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
Sistemas Distribuidos y Alta Disponibilidad
En la vida realEstructura heterogénea
Temperatura de la sala a 18ºCPotencia centrada en paralelismo
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
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?
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
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
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
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
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
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
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
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
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
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
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
Sistemas Distribuidos y Alta Disponibilidad
Ahora es tu turno
? ?? ? ?
? ? ?
? ? ? ?
? ? ? ?
? ? ? ?
Sistemas Distribuidos y Alta Disponibilidad
Computational Logistic Center
[email protected]://www.centrologic.comTeléfono: +34 902884062
Juan Miguel Taboada Godoy
Gracias