Tolerancia A Fallos

38

description

Presentacion guia de examen

Transcript of Tolerancia A Fallos

Page 1: Tolerancia A Fallos
Page 2: Tolerancia A Fallos

Una caracteristica de los sistemas distribuidos, quelos difiere de los sistemas singulares, es la nocion para errores parciales. Un error parcial puede ocurrir cuando algun componente del sistema distrbuido falla, el fallo puede afectar el correcto funcionamiento de algunos componentes, pero a la vez dejar otros componentes sin afectarlos. A contrario de un sistema monousuario, el cual puede afectar a todo el sistema, apagandolo.

Un punto importante en los sistemas distrbuidos , es contruirlos de tal forma que puede recupersarse automaticamente de fallos sin afectar el rendimientoCuando un error ocurre el sistema deberia seguir operando de forma aceptable mientras se hacen las reparaciones.

Page 3: Tolerancia A Fallos

Para que un sistema distribuido pueda ser tolerante a fallos, se ocupan las siguientes caracteristicas:

Disponibilidad

Confiabilidad

Seguridad

Mantenimiento.

Page 4: Tolerancia A Fallos

Es definida por la propiedad de que el sistema esta listo para ser usado, en otras palabras se endiende que el sistema esta operando correctamente.

Un sistema con alta disponibilidad es quel que puede trabajar en cualquier tiempo

Se refiere a la propiedad de que el sistema puede trabajar continuamente sin fallos, en contraste a la disponibilidad, la confiabilidad se refiere en lapsos de tiempo, en vez de momentos instantaneos.Un sistema con alta confiabilidad, es quel que funciona por largos periodos de tiempo sin fallo algiuno.

Page 5: Tolerancia A Fallos

Se refiere a la situacion en la que un sistema falla temporalmente, no pasa nada grave, ejemplo son algunos sistemas que controlan plantas nucleares, si algunos de esos sitemas fallan, pueden traer consecuencias catastroficas.

Se refiere a que tan rapido puede ser repadao un sitema.Un sistema con alto grado de mantenimiento es quel, que puede evitar o reparar fallas automaticamente.

Page 6: Tolerancia A Fallos

Transientales

Intermitentes

Permantes

Page 7: Tolerancia A Fallos

Son aquellos fallos que aparecen una vez y despues desaperecen aun cuando la misma operacion se repite.

Son aquellos fallos que aparecen una vez y despues desaperecen y despues vuelven a aparecer y continua el siclo.

Son aquellos fallos que aparecen y no desaparecen hasta que el componente erroneo es reemplazado o es arreglado el problema.

Page 8: Tolerancia A Fallos

TIPO DE FALLO DESCRIPCION

FALLO CRASH El servidor se detiene, pero estaba operando correctamente.

Fallo por Omision

Omision de recibidoOmision de envio

Un servidor falla en responder a las peticionesEl servidor falla en recibir mensajesEl servidor falla en mandar mensajes

Fallo de tiempo La respuesta del servidor no esta en el intervalo de tiempo especificado.

Fallo de respuestaFallo de valorFallo de estado de transicion

La respuesta del servidor es incorrectaEl valor de la respuesta es incorrectoEl servidor se desvia del flujo de control

Fallo arbitriario El servidor produce fallos arbitrarios en tiempo indefinidos.

Page 9: Tolerancia A Fallos

Ocurre cuando el servidor se detiene prematuramente aun cuando instantes antes estaba funcionando correctamente, un aspecto importante de estos errores es que una vez que ocurren ya no responde el servidor.

Ocurre cuando el servidor no responde y se puede deber a varias razones, una de las principales es que no se establecio correctamente la conexion con el servidor.

Page 10: Tolerancia A Fallos

Ocurren cuando se da la respuesta fuera del intervalo de tiempo

Cuando ocurren este tipo de fallos, usualmente el servidor lanza respuestas incorrectas y que son dificiles de detectar

Page 11: Tolerancia A Fallos

Si un sistema debe ser tolerante a fallos, lo mejor que puede hacer es esconder esos errores de otros procesos. La tecnicla clave es usando la Redundancia.Los tipos de redundancia a usar:

Redundancia de tiempo

Redundancia de Informacion

Redundancia fisica

Page 12: Tolerancia A Fallos

Con este tipo de redundancia, se agregan bits al paquete de informacion para permitir recuperacion de datos en caso de que el paquete recibido contenga errores.

Con esta redundancia, una accion se hecha y despues si es necesaria, se repite la misma accion, este tipo de redundancia se presenta cuando hay errores intrasitentes o intermitentes.

Page 13: Tolerancia A Fallos

Se le llama asi a la tecnica en la cual se hacen 2 o 3 copias del mismo mensaje para evitar fallos en el recibimiento del mismo. Es una de las tecnicas mas usadas para la tolerancia de fallos.

Page 14: Tolerancia A Fallos

El punto clave para tolerar procesos con fallo es organizando varios procesos identidos en un mismo grupo, esto es para que cuando un miembro del grpo reciba un mensaje, todos los demas lo reciban.Los procesos pueden ser dinamicos, se puede n crear nuevos grupos, eliminar antiguos, o juntar varios grupos.

La razon de hacer los grupos es de permitir procesos que lidien con otra coleccion de procesos

Page 15: Tolerancia A Fallos

Una diferencia importante para distinguir a los grupos es su forma de funcionamiento, en algunos grupos todos son iguales y la decision se hace colectivamente, mientras que en otros, existe una jerarquia donde un proceso coordina a los demas.

Page 16: Tolerancia A Fallos

La replicacion basica se usa generalmente en forma de backup, cuando un proceso falla, se elije uno de los procesos del grupo y se convierte en el primario hasta que el proceso fallido es corregido

Page 17: Tolerancia A Fallos

En un sistema distribuido, muchas veces se conentran los errores en la programacion o en dispositivos dañados,Pero muchas veces es error en la comunicacion

Page 18: Tolerancia A Fallos

En muchos sistemas distribuidos, una comunicacion punto-punto debe ser fiable, esto se logra usando algun protocolo de transporte como el TCP, este enmascara fallos de comunicacion, haciendo uso de la retransmision de mensajes.

RPC= Llamada a procedimientos Remotos, es un tipo de comunicacion de alto nivel, la cual enmascara la comunicacion, haciendo uso de llamadas remotas, como si fueran locales

Page 19: Tolerancia A Fallos

Habremos de distinguir 5 diferentes clases de errores en RPC

El cliente no halla el servidorEl mensaje del cliente a servidor se perdioEl servidor hace crash cuando recibe el mensajeLa respuesta del servidor se pierdeEl cliente hace crash al recibir respuesta.

Puede suceder cuando no hay una buena comunicacion entre el cliente y el servidor, o el servidor no esta disponible en ese momento, la forma mas facil de arreglarlo es creando una excepcion en el codigo del programa, que alerte al usuario cuando no se ha encontrado un servidor al cual comunicarse.

Page 20: Tolerancia A Fallos

Este es el mas facil de detectar, solo usando un proceso tipo reloj, que tome el tiempo entre que se manda el mensaje y se espera una respuesta, si ese intervalo de tiempo expira antes de recibir respuesta, se reenvia el mensaje.

Existen 3 filosofias de como detectar este tipo de fallos.

1.- Esperar que el servidor reinicie para retransimitr el mensaje.2.- La segunda filosofia trata de log, y es cuando el servidor recibe un mensaje, antes de iniciar cualkier proceso, manda un log al cliente para que sepa que el mensaje se recibio.3- La tercera no garantiza nada, cuando sucede un crash del servidor, no se manda ningun log. Y simplemente el cliente retransmite el mensaje hasta ke el servidor conteste

Page 21: Tolerancia A Fallos

Se puede usar otra vez el metodo del reloj por parte del servidor, otra solucion es que el cliente enumere los procesos, y que el servidor tenga un administrador de procesos que vaya mandando respuesta por el numero de mensajes recibidos, en caso de que se pierda un mensaje, simplemente se retransmite ese mensaje, en vez de reenviar todos otra vez.

Cuando un servidor manda una respuesta y el cliente se crashea, dentro del servidor se kedan los proesos abiertos, a estos se les llaman Procesos huerfanos, porque no tienen ningun proceso padre que los reciba.

Page 22: Tolerancia A Fallos

Los procesos huerfanos pueden causar varios problemas, entre ellos el gastar recursos del servidor. Si el cleinte reinicia su PC y vueve a retransmitir los mensajes, la respuesta que puede recibir es confisa o falsa debido que se quedaron abierto los procesos huerfanos.

Solucion 1Antes de enviar un mensaje se cre un log que pueda resisitr los reboots del cliente, en caso de fallo, el servidor cheka el log del cleinte y si se kedan procesos abiertos, los mata. Pero esta solucion ocupa medios extraibles.

Solucion 2La reencarnacion, En caso de que el cliente reboote la pc, antes de retransmitir los mensajes, manda un mensaje al servidor para que mate todos los procesos que vinieron de el, asi se retransmite todo el mensaje de nuevo.

Solucion 3Cuando un cliente reinicia, manda el mismo mensaje tipo log al servidor, el servidor checa si tiene procesos abiertos, si el cliente no los puede recibir, los mata, y solo se retransmiten los mensajes necesarios.

Page 23: Tolerancia A Fallos

Teniendo en cuenta la importancia de la capacidad de proceso de replicación, se hablara de los servicios de multicast fiables. Ya que ofrecen el servicio de enviar los mensajes a todos los miembros de un grupo de proceso. Lamentablemente, multicas fiables son un poco dificil.

Page 24: Tolerancia A Fallos

Son el envío de la información en una red a múltiples destinos simultáneamente, usando la estrategia más eficiente para el envío de los mensajes sobre cada enlace de la red sólo una vez y creando copias cuando los enlaces en los destinos se dividen.

La mayoría de las capas oferta transporte fiable punto a punto entre canales, rara vez ofrecen una comunicación fiable a una colección de procesos.

Lo mejor que pueden ofrecer es dejar que cada proceso haga una conexión punto a punto entre sí, para el proceso que quiera comunicarse.

Definicion:

Page 25: Tolerancia A Fallos

La multidifusión (operación de envío que se traduce en la entrega de copias del mismo paquete a distintos los receptores miembros del grupo de multidifusión) se puede implementar mediante:

Varias operaciones de unidifusión a todos los receptores.

Multidifusión a nivel de aplicación.

Multidifusión explícita.

Page 26: Tolerancia A Fallos
Page 27: Tolerancia A Fallos
Page 28: Tolerancia A Fallos
Page 29: Tolerancia A Fallos

Intuitivamente, significa que el mensaje que se envía a un grupo de proceso debe llegar a cada uno de los miembros de ese grupo.

¿Pero que pasa cuando se esta enviando un mensaje y en ese instante se agregaun proceso mas, le llega el mensaje?

Page 30: Tolerancia A Fallos

Historial

Recibido=24Recibido=24Recibido=24Recibido=24 Recibido=24Recibido=24Recibido=23Recibido=23

Red

Mensaje

Mensajero Receptor Receptor Receptor Receptor

Mensaje Perdido

Page 31: Tolerancia A Fallos

Recibido=24Recibido=24Recibido=24Recibido=24 Recibido=24Recibido=24Recibido=23Recibido=23

Red

Mensajero Receptor Receptor Receptor Receptor

Page 32: Tolerancia A Fallos

El principal problema con el multicast fiable que acabamos de describir es que no puede apoyar un gran número de receptores. Si hay N receptores, el remitente debe estar dispuesta a aceptar al menos N reconocimientos.

Una solución a este problema es no tener receptores de mensaje recibido. En lugar de un receptor devuelve un mensaje de retroalimentación sólo a informar al remitente que le falta un mensaje. Volviendo sólo negativos tales reconocimientos se puede demostrar que, tiene mucho mejor provecho.

Page 33: Tolerancia A Fallos

La cuestión clave para las soluciones de control de comentarios en la multidifusión confiable es reducir el numero de comentarios en este caso de los mensajes que son devueltos al remitente.

Para reducir los mensajes utilizan el protocolo SRM (Scalable Reliable Multicast)

Page 34: Tolerancia A Fallos

- Para enviar un paquete requerido, se espera un tiempo aleatorio proporcional a la distancia con el receptor.

- Define un marco para protocolos fiables.

- Los receptores son los responsables de la recuperación.

- El 5% de los mensajes son de control (estado de los vecinos).

- Cada receptor mantiene una caché con los datos recibidos hasta el momento.

- Cuando se detecta la pérdida de un paquete, se espera un tiempo aleatorio antes de realizar la solicitud.

Page 35: Tolerancia A Fallos

Recibido=24Recibido=24Recibido=24Recibido=24 Recibido=24Recibido=24Recibido=23Recibido=23

Red

Mensajero Receptor Receptor Receptor Receptor

Recibe solamenteun aviso

Los receptores retransmiten su mensaje de recibido

Page 36: Tolerancia A Fallos

Esto mas que nada se describe como una solución al envió, pero sin embargo senecesitan condiciones para que esto se cumpla y funcione bien.

Lo que realiza es enviar un mensaje a un solo remitente y este a su vez envía a a un grupo muy grande de receptores.

Page 37: Tolerancia A Fallos

CC

RR

RR

CC

Área Local

Área Local

Remitente

Coordinador

Receptor

conexión

Root

La esencia jerárquica de multidifusión confiable. cada coordinador local envía el mensaje a sus hijos y más tarde se encarga de las solicitudes de retransmisión.

Page 38: Tolerancia A Fallos

Para simplificar, supongamos que hay un solo remitente que necesita mensajes multicast a un grupo muy grande de receptores. El grupo de receptores está dividida en una serie de subgrupos, que posteriormente se organizan en un árbol. El subgrupo que contiene las formas remitente la raíz del árbol.