Tratamiento de Fallos Fallos
Tratamiento de Fallos Fallos
Tratamiento de Fallos Fallos
El fallo tanto del hardware como el software es algo prcticamente inevitable, y por ms
confiable que pueda parecer algn componente, siempre es importante estar preparado
para cuando este falle. En un sistema centralizado por lo general el fallo de cualquier
componente del sistema provoca que todos los servicios que este ofrece dejen de
funcionar, en cambio, en un sistema distribuido, los fallos son parciales, puesto que solo
afectan a los servicios que el componente que fallo este prestando, mientras que otros
servicios que prestan otros componentes siguen funcionando.
El tratamiento de fallos en un sistema distribuido es una tarea difcil, pero que se puede
lograr si se utilizan las tcnicas adecuadas, segn el sistema que se desee proteger.
Algunas de las tcnicas ms comunes son:
Deteccin de Fallos: obviamente no es posible tratar un fallo si este no se ha detectado ,
sin embargo, la deteccin de un fallo dentro de un sistema distribuido puede no ser tan
sencillo como parece, recordemos que adems de componentes de hardware y software, los
sistemas distribuidos operan gracias a la transmisin de mensajes, y el funcionamiento del
sistema depende en gran parte de estas transmisiones de datos entre los diferentes
componentes; un fallo en la transmisin de datos entre componentes no es fcil detectar, pero
es algo que podemos esperar (dependiendo del medio por el que se haga la transmisin y
otras condiciones) y al saber que existe la posibilidad de ese fallo, podemos monitorear y
aplicar tcnicas que aseguren que dicha transmisin siempre sea correcta.
Enmascaramiento de Fallos: una vez que un fallo es detectado, es importante encontrar la
manera para que un usuario del sistema no note dicho fallo y que pueda seguir utilizando el
sistema de manera normal, esto es, ocultar los fallos del sistema y encargarse de que los
servicios que se ofrecen al cliente nunca sean interrumpidos. Son muchos ejemplos del
enmascaramiento de fallos, en el caso de un mensaje que se corrompi al ser enviado, una
manera de ocultar el fallo es haciendo la solicitud de reenvo del mensaje, y de esta manera el
usuario nunca notar que hubo un problema. Otro ejemplo lo dan las tcnicas de redundancia
que explicaremos ms adelante, pero que bsicamente consiste en tener disponibles varios
elementos que puedan dar el mismo servicio y que en caso de que uno falle, otro este en la
disponibilidad de realizar el trabajo en su lugar, esto puede darse cuando fallan componentes
de un servidor (discos duros, tarjetas de red, etc.), o incluso cuando fallan las conexiones a la
red o los sistemas de bases de datos.
Tolerancia a Fallos: es importante saber cuando un sistema puede llegar a tener ciertos
problemas sin que estos afecten de manera grave al usuario de los servicios proporcionados,
para as, ignorar la ocurrencia de dichos fallos cuando la aplicacin lo soporte, o bien, hacer
saber al cliente que hay un problema en lugar de gastar tiempo y recursos innecesarios para
corregirlo cuando probablemente el problema no se pueda arreglar rpido y el cliente termine
por abortar el proceso; Pretender arreglar de manera inmediata todos los problemas que
puedan surgir en un sistema puede resultar incluso daino para el mismo sistema, puesto que
hay problemas que mientras son arreglados pueden afectar el rendimiento de otros
componentes del sistema que s estn trabajando.
Recuperacin Frente a Fallos: Una vez que fue detectado un fallo y que se ha decidido
arreglarlo, hay que encontrar la mejor manera de hacerlo, y adems, de recuperar el estado
del sistema antes de que ocurriera el fallo; esto requiere del software adecuado para poder
reconstruir o bien retractar los cambios que no fueron completados al momento en que fue
interrumpido el sistema, un ejemplo de esto lo podemos ver en los sistemas manejadores de
bases de datos, que se sirven de una bitcora de las transacciones que se realizan y de
acuerdo a esta bitcora se decide reconstruir o retractar las transacciones hechas sobre la
base de datos antes de que se interrumpiera el funcionamiento de la misma.
Redundancia: un sistema distribuido puede lograr ser tolerante a fallos gracias a la utilizacin
de componentes redundantes dentro del sistema. La redundancia se logra con la replicacin
de dichos componentes y con la habilidad del sistema de recurrir a los componentes de
respaldo en caso de que el componente de uso primario falle, todo esto por supuesto, sin que
el usuario se percate de lo que esta sucediendo. La redundancia se puede dar en muchas
partes del sistema: componentes internos de los servidores, servidores de aplicaciones, de
Web, de archivos, de correo o de bases de datos, sistemas de almacenamiento, conexiones a
la red de comunicacin, etc. Es muy importante tomar en cuenta que todos los componentes
que estn replicados en el sistema deben mantenerse actualizados para evitar problemas de
consistencia, y adems, la actualizacin de la informacin entre dichos componentes no debe
de tener un efecto significativo para las necesidades de transmisin de datos del sistema. Las
tcnicas antes mencionadas no son las nicas, pero si las ms utilizadas, estas tcnicas deben
de proporcionar las herramientas necesarias para aumentar el grado de disponibilidad de
cualquier sistema distribuido, ya que al saber como tratar un fallo del sistema, tambin es
posible encontrar la manera de reconfigurar el sistema para que los servicios que este
proporciona no sean interrumpidos, o que en el peor de los casos slo sean afectados los
servicios proporcionados por los componentes afectados
FUENTE: introduccin a sistemas distribuidos
http://www.capacinet.gob.mx/Cursos/Tecnologia
%20amiga/desarrolladordesoftware/IntroduccionSistemasDistribuidos_SE.pdf
1. Deteccin de fallos
Algunos fallos son detectables. Por ejemplo, se pueden utilizar sumas de comprobacin
(checksums) para detectar datos corruptos en un mensaje o un archivo. Por otra parte, los
sistemas que trabajan con el protocolo IP tienen algoritmos para detectar errores en los datos
transmitidos.
2. Enmascaramiento de fallos
Algunos fallos que han sido detectados pueden ocultarse o atenuarse. Dos ejemplos de ocultacin
de fallos son:
Los archivos con datos pueden escribirse en una pareja de discos de forma que si uno est
deteriorado el otro seguramente est en buen estado.
3. Tolerancia de fallos
La mayora de los servicios en Internet exhiben fallos; es posible que no sea prctico para ellos
pretender detectar y ocultar todos los fallos que pudieran aparecer en una red tan grande y con
tantos componentes. Sus clientes pueden disearse para tolerar ciertos fallos, lo que implica que
tambin los usuarios tendrn que tolerarlos generalmente. Por ejemplo, cuando un visualizador
web no puede contactar con un servidor web no hace que el cliente tenga que esperar
indefinidamente mientras hace sucesivos intentos; informa al usuario del problema, dndole la
libertad de intentarlo ms tarde.
5. Redundancia
Puede lograrse que los servicios toleren fallos mediante el empleo redundante (duplicidad) de
componentes. Considere los siguientes ejemplos:
Siempre debe haber al menos dos rutas diferentes entre cualesquiera dos encaminadotes
(routers)[1] en Internet.
Una base de datos puede encontrarse replicada en varios servidores para asegurar que los
datos siguen siendo accesibles tras el fallo de cualquier servidor concreto; los servidores
pueden disearse para detectar fallos entre sus iguales; cuando se detecta algn error en
un servidor se redirigen los clientes a los servidores restantes.
Los sistemas distribuidos proporcionan un alto grado de disponibilidad frente a los fallos del
hardware. La disponibilidad de un sistema mide la proporcin de tiempo en que est utilizable.
Cuando falla algn componente del sistema distribuido slo resulta afectado el trabajo
relacionado con el componente defectuoso. As como cuando un computador falla el usuario
puede desplazarse a otro, tambin puede iniciarse un proceso de servicio en otra ubicacin
http://samadistribuidos.blogspot.com/2012/05/tolerancia-fallos.html
datateca.unad.edu.co/contenidos/208017/ContLin/leccin_9_tratamiento_de_fallos.ht
ml
http://www.arcos.inf.uc3m.es/~dsd/lib/exe/fetch.php?media=dsd-tf.pdf
Concurrencia
El control de concurrencia trata con los problemas de aislamiento y consistencia del
procesamiento de transacciones.
FUENTE
http://www.capacinet.gob.mx/Cursos/Tecnologia
%20amiga/desarrolladordesoftware/IntroduccionSistemasDistribuidos_SE.pdf