Tolerancia frente a fallos

De Wikipedia, la enciclopedia libre
(Redirigido desde «Tolerancia a fallos»)
Saltar a: navegación, búsqueda

En informática, la tolerancia a fallos o conmutación por error (en inglés: failover) se refiere a la capacidad de un sistema de seguir funcionando, aún en caso de producirse algún fallo en el sistema. Observar que los fallos pueden ser no intencionados (Ej. caídas de sistemas, fallos en el cableado, fallo hardware) o intencionados por alguna parte no confiable del sistema (Problema de los generales bizantinos)

El nivel de tolerancia a fallos dependerá de las técnicas utilizadas para conseguirlo. No obstante nunca será absoluta ya que siempre hay algún tipo de fallo masivo que produciría un error irrecuperable. Cada sistema hay que diseñarlo (diseño de tolerancia a fallos) de forma que los esfuerzos realizados para mitigar cierto tipo de fallos compensen los perjuicios que provocaría no tolerar ese tipo de fallo.

Estrategias[editar]

Hay distintas estrategias para conseguir un sistema lo más tolerante a fallos posible. Las más importantes son:

Redundancia[editar]

Ejemplos de uso de esta estrategia son:

  • Uso de códigos detectores y correctores de error.
  • Tener módulos pasivos que hacen exáctamente lo mismo que otros activos de forma que puedan sustituirlo y evitar que sistema se caiga por el fallo de un ese elemento.
  • Redundancia modular. Consiste en tener un número normalmente impar (para evitar luego empates) de módulos que hacen la misma función aunque pueden implementarla de forma diferente. Luego hay un módulo (el cual puede tener a su vez redundacia modular) que evalúa las salidas de dichos módulos y toma como resultado global el resultado que devuelve la mayoría de los módulos redundantes.

Replicación[editar]

Para evitar que un fallo produzca la pérdida de la información almacenada un sistema se suele replicar esa información en más de un soporte físico (redundancia), o en un equipo o dispositivo externo a modo de respaldo. De esta forma, si se produce alguna falla que pueda ocasionar pérdida de datos, el sistema debe ser capaz de restablecer toda la información, recuperando los datos necesarios a partir de algún medio de respaldo disponible.

En esto se basa el sistema de almacenamiento en RAID (Redundant Array of Independent Disks). Los sistemas RAID (a excepción de RAID 0) se basan en la técnica mirroring («en espejo»), que permite la escritura simultánea de los datos en más de un disco del array.

En sistemas distribuidos es frecuente replicar la información para conseguir que sean tolerantes a los fallos. Para hacer que dicha información sea consistente en todo el sistema distribuido se implementan protocolos de consenso

Autocorrección[editar]

Esta estrategia es la que hacen los navegadores de internet. Cuando el navegador de internet envía una solicitud HTTP al servidor WEB este responde con el contenido del sitio en formato estandarizado HTML o XHTML, si este código viene con errores (el estándar no se cumple), entonces el navegador es libre de elegir que hacer con él, ya sea no mostrar el contenido con problemas, intentar corregirlo o simplemente mostrarlo en texto plano. Normalmente lo que hacen es intentar corregirlo.

Enlaces externos[editar]

Véase también[editar]