Se denomina replicación de datos al proceso mediante el cual se genera una copia exacta de parte de un sistema informático, que puede ser un archivo, una carpeta, una partición, un disco o una base de datos, entre otros. De esta manera, los mismos datos se almacenan en múltiples dispositivos de almacenamiento. El objetivo de la replicación es mejorar la confiabilidad, la tolerancia a fallos, la accesibilidad o el rendimiento en una base de datos. La replicación debe ser transparente para un usuario externo.
Qué es la replicación de datos
Replicación es un término usado en informática para referirse al intercambio de información, que busca dar garantías sobre la coherencia entre los recursos redundantes, tanto de hardware como de software. Se conocen muchos términos asociados a la replicación y muchos tipos de replicación. Se habla de replicación de datos, cuando la misma información es almacenada en varios dispositivos. Y de replicación de cálculo, cuando la misma operación informática se lleva a cabo muchas veces.
En la replicación de datos, los mismos datos se almacenan en múltiples dispositivos de almacenamiento independientes. El objetivo de la replicación es compartir la información para garantizar la coherencia entre recursos redundantes para mejorar la confiabilidad, tolerancia a fallos o accesibilidad. Muchos sistemas de archivos distribuidos utilizan la replicación para garantizar la tolerancia a fallos y evitar un solo punto de fallo, garantizando la “pérdida de datos cero”.
La replicación de datos se utiliza en muchas ocasiones con una relación maestro-esclavo entre el original y las copias. Cuando se designa una réplica maestra para procesar todas las solicitudes, entonces estamos hablando del esquema maestro-esclavo. El maestro registra las actualizaciones, que luego se distribuyen a los esclavos. El esclavo emite un mensaje indicando que ha recibido la actualización con éxito, lo que permite enviar (o reenviar hasta que se aplique correctamente) las actualizaciones posteriores. El esclavo puede asumir el control si falla el maestro.
En muchos casos se configura una replicación en árbol, en la que los esclavos tienen a su vez sus propios esclavos, generando árboles de replicación que mejoran las prestaciones del sistema.
Otro esquema es la denominada replicación multi-maestro, en la que las actualizaciones pueden enviarse a cualquier nodo de datos y, a continuación, pasará a los otros servidores. La principal dificultad que existe en la replicación multi-maestro es la prevención o resolución de conflictos transaccionales, por ejemplo, si un registro se cambia en dos nodos simultáneamente.
Cuando se replican datos, los procesos que manejan los eventos entrantes se encargan de mantener los datos almacenados, responder a solicitudes de lectura y aplicar actualizaciones.
El objetivo habitual de las réplicas es proporcionar tolerancia a fallos, a fin de garantizar que incluso si falla el controlador primario, la réplica puede asumir sus funciones. El objetivo es garantizar que las réplicas vean los mismos eventos en órdenes equivalentes, permanecen en estados coherentes y, por lo tanto, cualquier réplica puede responder a las consultas.
La replicación de almacenamiento en disco en tiempo real suele implementarse distribuyendo las actualizaciones de un dispositivo a varios discos duros físicos, pudiéndose implementar mediante hardware o mediante software. Una replicación es extensible a través de una red de ordenadores, por lo que los discos pueden ubicarse en ubicaciones físicamente distantes. El propósito de la replicación es evitar daños causados por fallos que pueden ocurrir en una ubicación, o en caso de que ocurran tales eventos, mejorar la capacidad de recuperación.
La replicación debe ser transparente para un usuario externo, de tal modo que la información permanezca constante en todo el sistema y los usuarios no puedan saber qué servidor de datos están utilizando.
En sistemas que replican datos, la replicación puede ser activa o pasiva:
- Replicación activa: La replicación activa se realiza procesando la misma solicitud en cada réplica.
- Replicación pasiva: La replicación pasiva implica procesar cada solicitud individual en una única réplica y luego transferir su estado resultante a las otras réplicas.
En cuanto a los beneficios de la replicación, existen varios motivos por los cuales hacer replicación, algunos son:
- Rendimiento: Comúnmente en una base datos se realizan más tareas de lectura que de escritura. Tener más de un nodo haciendo el proceso de lectura mejora notablemente el rendimiento.
- Prueba de fallos: Tener un dispositivo esclavo que entre a remplazar al principal ante cualquier fallo, permite que el servicio no se interrumpa.
- Fiabilidad: La replicación permite tener copias de seguridad en caso de un desperfecto en la base de datos principal, dando garantías ante cualquier fallo.
La copia de seguridad difiere de la replicación en que guarda una copia de los datos sin cambios durante un largo período de tiempo. Las réplicas, en cambio, experimentan frecuentes actualizaciones y pierden rápidamente cualquier estado histórico.
La replicación también es diferente de la sincronización, que consiste en comparar los sistemas de archivos de origen y destino y garantizar que el destino coincide con el origen. La principal ventaja de la sincronización es que tales soluciones son generalmente gratuitas o de bajo coste, pero tienen el inconveniente de que el proceso de sincronización es bastante intensivo en el sistema, por lo que no se puede ejecutar a menudo.