Entra la Tolerancia a Fallos

Contenido archivado

El contenido de la web se encuentra archivado y no se podrá crear nuevo contenido. Más información.

Tagged:

A nadie le gusta que su servidor no esté operativo. Vas a usarlo y no responde. Te quedas tirado en la cuneta y sin cuenta. No es que vaya lento, es que no lo puedes usar en absoluto.

Ya me ha pasado tres veces con servidores Jabber (factura impagada en theoretic.com, inundaciones en njs.netlab.cz, fallo de máquina en amessage.de), y esta es la cuarta. Voy a exponer una posible solución. Agradezco cualquier corrección o comentario.

Posibles problemas

Hay muchas razones por las que un servidor no está operativo:

  • Problemas de aplicación:
    • el sistema operativo tiene errores
    • el programa servidor tiene errores
    • se ha acabado el espacio en disco duro
    • la máquina está sufriendo un ataque de denegación de servicio
    • hay que reiniciar el sistema operativo o el programa servidor para actualizarlo
  • Problemas de aparatos. En un PC se pueden estropear muchas cosas:
    • el procesador se quema
    • la memoria RAM puede tener defectos
    • el disco duro se casca, y la información es irrecuperable
    • la placa base
    • la fuente de alimentación se quema por una subida de tensión
  • Problemas de suministro:
    • corte en el suministro eléctrico (apagón general o apagado por error)
    • corte en la conexión a Internet (culpa de la red local o del proveedor)

Si es un parón provocado al menos existe la certeza de que el servicio se restablecerá rápidamente. Si el parón se debe a problemas técnicos entonces el restablecimiento puede retrasarse horas, dias o incluso semanas si reemplazar la pieza estropeada resulta difícil.

Por ejemplo, durante las inundaciones del norte de Europa en agosto de 2002 el servidor que usaba entonces, el checo njs.netlab.cz, estubo inoperativo durante más de una semana porque el suministro eléctrico se cortó y la población fue evacuada con urgencia y no pudo acceder hasta cierto tiempo después.

Medidas convencionales

Por supuesto, se pueden tomar medidas:

  • comprar una máquina de muy buena calidad y muy potente, para que no sea necesario cambiar piezas en muchos meses.
  • usar un sistema operativo y un servidor muy estables y probados, para que tengan la menor cantidad de errores posible.
  • contratar el suministro eléctrico y conexión a Internet a proveedores serios

No obstante, las medidas convencionales no son suficientes ya que es inevitable que una máquina necesite ser apagada de vez en cuando:

  • los aparatos físicos pueden ser defectuosos o no, pero tarde o temprano se deterioran hasta ser inutilizables.
  • los programas informáticos, a pesar de que no se deterioran tienen tendencia a ser defectuosos
  • aunque todo funcione perfectamente, de vez en cuando hay que actualizar el servidor a versiones más nuevas y con más funcionalidades o el núcleo del sistema operativo

No importa cuán cara sea la maquinaria o estable el programario. Evidentemente, si tienes piezas de repuesto siempre a mano y una persona que vigila la máquina 24 horas al día, la situación mejora.

Llegamos a la conclusión de que la máquina que proporciona un servicio va a estar apagada irremediablemente de vez en cuando. Es más improbable si se usan componentes de calidad, pero tarde o temprano ocurre. Entonces, ¿cómo proporcionar un servicio que esté siempre disponible? ¿Cómo ofrecer un servicio imperecedero con máquinas inherentemente perecederas, débiles, defectuosas?

Tolerancia a fallos

Hay dos posibilidades: comprar caros aparatos de alta disponibilidad o bien construir un sistema tolerante a fallos. Por sistema tolerante a fallos se entiende que el sistema 'está diseñado y construido de forma que opera correctamente incluso en la presencia de errores o partes dañadas' (Wikipedia).

La forma más sencilla de conseguir un sistema con esta propiedad es la replicación y la distribución.

  • Teniendo varias réplicas del servidor, es decir, varias máquinas capaces de hacer el mismo trabajo, nos aseguramos de que si una máquina cae hay otras que pueden seguir ofreciendo el servicio.
  • Si además el trabajo se distribuye entre las distintas réplicas, cuando una cae sólo se pierden los datos almacenados en esa réplica.
  • Si todas las réplicas comparten la misma información, cuando una cae no se pierde información, ya que las otras réplicas tienen copia.
  • Si las réplicas se dispersan por el edificio, o incluso se situan en regiones diferentes es improbable que los fallos de suministro afecten a todas las copias simultáneamente.

Es decir, desvincular el servicio de la máquina, romper la relación un servicio-una máquina. No depender de un único caballo.

Algunos estudiosos han dedicado parte de su carrera para llegar a esta conclusión, que 'para construir un sistema tolerante a fallos no queda más remedio que usar al menos dos máquinas'. O sea, que quien pretenda tener un servidor tolerante a fallos con una sola máquina está perdiendo el tiempo o malgastando el dinero en una máquina innecesariamente cara. Resulta preferible tener dos máquinas menos potentes.

Además, hacer replicación y distribución para obtener tolerancia a fallos tiene un efecto secundario beneficioso: aumenta la capacidad global del servidor, ya que varias máquinas colaboran para ofrecer el servicio. Así, mientras todo va bien tienes dos máquinas ofreciendo un servicio de calidad, y si algo falla al menos una de las máquinas sigue ofreciéndolo, aunque sea mermado.

En el próximo capítulo expondré cómo construir un servidor Jabber tolerante a fallos mediante réplica y distribución de forma fácil y barata.

Comentarios

Tolerancia a fallos

Interesante, al final es lo que se busca para los servicios que necesitan estar las 24 horas del año disponibles, si no fuera así cualquier tarea mínima de mantenimiento exige la no disponibilidad del servicio un cierto tiempo, algo que desilusiona a los usuarios cuando estos no disponen del servicio por causas ajenas a ellos y que a veces ni entienden.

De esta forma se pueden realizar tareas de mantenimiento, reparar errores de hardware y software etc, de manera transaparente al usuario, claro esta, tambien nos podemos encontrar en la situación de mala suerte y que todos los sistemas replicados fallen en el mismo momento pero es algo improbable.

Por cierto, el servidor de jabberes.org podría ser tolerante a fallos?
, o no depende de vosotros?.

Un saludo.

Esas mates...

mmm.. un año tiene más de 24 horas :D

Interesante el tema... Esp

Interesante el tema...

Espero el próximo capítulo... ;)

Reirse

k wena no me habia dado cuenta de las 24 horas del año... q wena... jajaja... chau.. ha por cierto hace rato termine con mi flaca por q se queria dar de interesante...jajaj chau