Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Distribuidas
3º Grado en I. de Tecnologías de Telecomunicación
2
8.1. Introducción
• En un sistema se produce un fallo cuando no puede ofrecer el
servicio que promete y para el que fue originalmente
concebido/diseñado.
• Una característica peculiar de los sistemas distribuidos (y de los
sistemas modulares, de manera más general), en contraposición
con los sistemas monolíticos, es el concepto de «fallo parcial»
(partial failure): consiste en el fallo de un solo componente, es
decir, de una única parte del sistema.
• Uno de los objetivos de diseño de un sistema distribuido es la
tolerancia a fallas o la tolerancia a fallos parciales: ante un
fallo parcial, el sistema debe ser capaz de seguir funcionando
hasta que el fallo parcial sea subsanado.
• El principal mecanismo para alcanzar una tolerancia frente a
fallas es el empleo de redundancia.
3
8.1.1. Conceptos básicos
4
Disponibilidad (availability)
Fiabilidad (reliability)
5
Disponibilidad (availability) vs fiabilidad (reliability)
6
Seguridad (safety)
Mantenibilidad (maintainability)
7
Otros conceptos
8
Tipos de fallos según su aparición
10
8.1.3. Redundancia o replicación para el enmascaramiento
de fallos
• Para esconder los fallos parciales que suceden en un sistema, y
alcanzar una elevada tolerancia a fallas, se recurre a la
redundancia o replicación de recursos/componentes.
12
8.2. Resiliencia de un componente
• Según el diccionario de la lengua española, la resiliencia es la capacidad de
adaptación a situaciones adversas
• Para afrontar la tolerancia a un proceso defectuoso se organizan varios
procesos idénticos en grupo. Cuando un proceso se envía al grupo, todos
los miembros lo reciben. El grupo trabajará de modo que aunque falle un
proceso del grupo, la respuesta del sistema sea correcta. Por ejemplo, una
opción posible sería que todos los miembros diesen su respuesta, y se
tomase la respuesta más común.
• Podemos tener grupos
planos (entre iguales,
como los sistemas basados
en Tablas Hash
Distribuidas) o grupos
jerárquicos (un miembro
es el coordinador), aunque
en esto últimos si el
coordinador falla, el grupo
13
se detiene .
Enmascaramiento de fallas
14
Enmascaramiento de FALLOS BIZANTINOS:
• Si k componentes pueden fallar de manera arbitraria, ofreciendo
resultados erróneos, entonces se necesita tener una mayoría de
componentes que funcionen correctamente, para poder
discriminar el valor correcto mediante un sistema de votado por
mayoría.
• El peor escenario sería tener que los k fallos suministran el
mismo valor (equivocado), de manera que necesitamos al
menos el mismo número de componentes correctos, más uno
para deshacer el empate del voto.
• Tener 2·k + 1 componentes es suficiente para tolerar k fallos en
este caso.
15
Acuerdos en sistemas defectuosos
• Los algoritmos de acuerdos distribuidos pretenden que todos los
procesos no defectuosos lleguen a un consenso en algún tema,
utilizando para ello un algoritmo con un número finito de pasos.
• Es más complejo llegar a acuerdos que enmascarar fallas. La
complejidad se conoce como problema del acuerdo bizantino.
• Para llegar a un acuerdo en un sistema defectuoso con k fallas, hacen
falta 3⋅k+1 procesos, como se ve en las 4 siguientes diapositivas.
16
17
18
19
20
• Cuando hay 1 traidor, se requieren 2 rondas de mensajes para llegar al
acuerdo detectando al traidor.
• Cuando hay t traidores se requieren t+1 rondas de mensajes para
llegar al acuerdo detectando al traidor.
• Es más complejo llegar a acuerdos que enmascarar fallas. La
complejidad se conoce como problema del acuerdo bizantino.
del 2 del 1
del 3 del 3
21
Fin del tema