[en] The growth of the clusters computers and in special multi-cluster systems increases the potential failures points, demanding the utilization of fault tolerance schemes that provide the capacity of finishing the processing. The general goal proposed for fault tolerance systems is that the total work executes correctly, still when it fails with some elements of the system, losing the minimum possible performed work, having in mind that performance decreases due to the necessary overhead introduced to tolerate failures and to the loss of a part of the system. This Thesis presents a fault tolerance model in clusters computers geographically distributed, using Data Replication denominated FTDR (Fault Tolerant Data Replication). It is based on initial process replication and a dynamic data replication during the execution, with the goal of preserving the critical results. It is guided to the applications with an execution model Master/Worker and executed in a transparent way to the user. The design of fault tolerance system is configurable and accomplishes scalability requisites. A functional model has been drawn, and a Middleware has been implemented. A methodology to incorporate it in the parallels applications design is proposed. The model is based on failures detection for any of the functional elements of the system (nodes of compute and network interconnection) and to tolerate these failures starting from programs replication and data, guaranteeing the conclusion of work, and preserving most of the compute performed before the fault, for that it is necessary, when a failure takes place, to recover the consistency of the system and recon figurate the multicluster in a transparent way to the user. The Middleware developed to incorporate fault tolerance in the multicluster environment gets a more reliable system, without incorporating extra hardware resources, so that starting from the non reliable elements of cluster, it allows to protect the computation performed by the application in front of failures, that is if a computer fails another takes care of finishing its work and compute yet performed is protected by Data Replication. This Middleware can be configured to tolerate more than one simultaneous failure, select a centralized or distributed scheme; relative parameters for aspects that influence in the introduced overhead can also be configured, adapting to the loss of more or less performed compute. To validate the system we drew a failure injection system. Despite adding the fault tolerance functionality implies a loss of installments, it is experimentally proved, that using this system, the overhead introduced without failures, is lower than 3% and in case of failure, after an execution time, the runtime is better tolerating the failure than relaunching the application.

[es] El crecimiento de los clusters de computadores, y en concreto de sistemas multicluster incrementa los potenciales puntos de fallos, exigiendo la utilización de esquemas de tolerancia a fallos que proporcionen la capacidad de terminar el procesamiento. El objetivo general planteado a sistemas de tolerancia a fallos es que el trabajo total se ejecute correctamente, aún cuando falle algún elemento del sistema, perdiendo el mínimo trabajo realizado posible, teniendo en cuenta que las prestaciones disminuyen debido al overhead necesario introducido para tolerar fallos y a la perdida de una parte del sistema. Esta Tesis presenta un modelo de tolerancia a fallos en clusters de computadores geográficamente distribuidos, utilizando Replicación de Datos denominado FTDR (Fault Tolerant Data Replication). Está basado en la replicación inicial de los procesos y una replicación de datos dinámica durante la ejecución, con el objetivo de preservar los resultados críticos. Está orientado a aplicaciones con un modelo de ejecución Master/Worker y ejecutado de forma transparente al usuario. El sistema de tolerancia a fallos diseñado, es configurable y cumple el requisito de escalabilidad. Se ha diseñado un modelo funcional, e implementado un Middleware. Se propone una metodología para incorporarlo en el diseño de aplicaciones paralelas. El modelo está basado en detectar fallos en cualquiera de los elementos funcionales del sistema (nodos de cómputo y redes de interconexión) y tolerar estos fallos a partir de la replicación de programas y datos realizada, garantizando la finalización del trabajo, y preservando la mayor parte del cómputo realizado antes del fallo, para ello es necesario, cuando se produce un fallo, recuperar la consistencia del sistema y reconfigurar el multicluster de una forma transparente al usuario. El Middleware desarrollado para la incorporación de la tolerancia a fallos en el entorno multicluster consigue un sistema más fiable, sin incorporar recursos hardware extra, de forma que partiendo de los elementos no fiables del cluster, permite proteger el cómputo realizado por la aplicación frente a fallos, de tal manera que si un ordenador falla otro se encarga de terminar su trabajo y el cómputo ya realizado está protegido por la Replicación de Datos. Este Middleware se puede configurar para soportar más de un fallo simultáneo, seleccionar un esquema centralizado o distribuido, también se pueden configurar parámetros relativos a aspectos que influyen en el overhead introducido, frente a la pérdida de más o menos computo realizado. Para validar el sistema se ha diseñado un sistema de inyección de fallos. Aunque añadir la funcionalidad de tolerancia a fallos, implica una pérdida de prestaciones, se ha comprobado experimentalmente, que utilizando este sistema, el overhead introducido sin fallos, es inferior al 3% y en caso de fallo, después de un tiempo de ejecución, es mejor el tiempo de ejecución (runtime) tolerando el fallo que relanzar la aplicación.