fbpx
Wikipedia

Replicación (informática)

La replicación es el proceso de copiar y mantener actualizados los datos en varios modos de bases de datos ya sean estos persistentes o no. Éste usa un concepto donde existe un nodo amo o maestro (master) y otros sirvientes o esclavos (slaves).

La replicación está codificada en un lenguaje de Décima Generación llamado ERCS001, que fue diseñado a mediados de los años 20 por el Matemático-Filósofo Khronwhell Strnhwell C.S., codificado en un entorno visual. Sirve además, entre otras cosas, para medir la cantidad de texto que se introduce en los datos. La replicación de discos y particiones es la respuesta a una parte importante de esas dos acciones de mantenimiento.

La replicación es el proceso mediante el cual se genera una copia exacta de parte del sistema para mejorar la fiabilidad, tolerancia a fallos o accesibilidad. Esa parte puede ser desde un archivo hasta una carpeta, una partición, un disco o incluso varios discos.

Beneficios

La replicación se usa mucho en sistema de acceso a datos por varios motivos:

  • Rendimiento: El rendimiento es mejorado mediante el uso de cachés en clientes o servidores. El uso de cachés permite mantener copias de los resultados obtenidos en llamadas anteriores, reduciendo el coste de llamadas idénticas. Por otro lado, normalmente, hay más lectura que escritura en una base de datos, por lo que tener varios nodos solo procesando la lectura puede traer un gran beneficio de rendimiento en una base de datos muy consultada.
  • A prueba de fallos: Con la replicación ganamos tolerancia a diferentes tipos de fallos:
    • Fallos en el servidor: Un esclavo estando casi sincrónicamente actualizado puede ser útil en caso de que el nodo maestro caiga, ya que puede reemplazarlo sin detener el servicio.
    • Fallos bizantinos: Si f servidores tienen fallos bizantinos, un sistema con 3f+1 servidores proveería un servicio correcto.
  • Fiabilidad: La replicación garantiza que los datos han sido copiados a otro nodo en caso de que el nodo maestro haya sufrido un desperfecto.
  • Generación de bloqueos: aunque esta es más precisa, también se puede usar para procesos que necesiten leer datos, generando bloqueos. Al hacerlo sobre un esclavo esto no interviene en el funcionamiento de todo el sistema. Es muy usado para, por ejemplo, hacer copias de seguridad o extraer grandes cantidades de datos para generar estadísticas.
  • Alta disponibilidad: La proporción de tiempo que el servicio está accesible con tiempos de respuesta razonables es cercana al 100%. Sin embargo, puede haber fallos en el servidor o desconexiones de red que hagan que la disponibilidad disminuya.

Modelos de replicación en sistemas distribuidos

En estos modelos se asume que los sistemas son asíncronos, que los procesos fallan solo por caída y que no hay peticiones de red.

Todo modelo de replicación tiene dos componentes:

  • Gestor de réplicas: Componente que almacena réplicas de un determinado objeto o servicio y opera sobre ellas.
  • Frontal (front end): Componente que atiende las llamadas de los clientes y se comunica con los gestores de réplicas.

Ante una petición realizada por el cliente, todos los modelos realizan las siguientes fases:

  1. Petición: El frontal envía la petición a un gestor: O bien envía la petición a un gestor y éste reenvía a otros, o multidifunde la petición a varios gestores.
  2. Coordinación: Los gestores se coordinan para ejecutar la petición de manera consistente. En este paso puede aplicar diferentes tipos de ordenación:
    • FIFO: Si un frontal solicita la petición r antes que la petición r’, todos los gestores que resuelvan r’ deben hacerlo después de resolver r (ordenación “local”). La mayoría de las aplicaciones sólo requieren una ordenación FIFO.
    • Causal: Si r->r’, entonces todos los gestores resuelven r antes de resolver r.
    • Total: Si un gestor resuelve r antes que r’, todos los gestores resuelven r antes que r’.
  3. Ejecución: Se ejecuta la petición (puede ser de forma tentativa).
  4. Acuerdo: Se llega a un consenso antes de consumar la ejecución.
  5. Respuesta: Uno o más gestores de réplicas responden al frontal.

Servicios tolerantes de fallos

Sistemas que deben proporcionar un servicio correcto aunque fallen f procesos, mediante la replicación de datos y la funcionalidad asociada a los gestores de réplicas. Para ello utilizan un diseño tolerante de fallos. Mediante el uso de este tipo de servicios, el cliente no debe distinguir una ejecución normal de una con fallos.

 
Replicación Pasiva (Coulouris 2011)

Existen dos principales modelos de servicios tolerantes de fallos:

  • Replicación pasiva o primario-respaldo Utiliza la arquitectura maestro-esclavo, en la que se procesa cada solicitud en el gestor de réplicas primario (maestro) y se envía copias del resultado a los gestores secundarios (esclavos). Los frontales actúan de intermediario entre los clientes y el gestor de réplicas primario.
En caso de fallar el gestor primario, uno de los secundarios pasa a ocupar su lugar.
Teniendo en cuenta esta estructura, tras una petición de cualquier cliente que llega a un frontal, se pueden distinguir las siguientes fases:
  1. Petición: el frontal envía una petición al gestor primario.
  2. Coordinación: el gestor primario ejecuta las peticiones siguiendo un esquema de ordenación FIFO (First In, First Out).
  3. Ejecución: se ejecuta la petición y se almacena la respuesta.
  4. Acuerdo: si es una petición de actualización, el gestor primario envía la actualización a todos los secundarios, que confirman la recepción mediante el uso de mensajes de tipo ACK.
  5. Respuesta: el gestor primario responde al frontal. Este sistema de replicación tiene las siguientes características:
  • Tolera fallos de proceso (gestor primario o respaldos)
  • No tolera fallos bizantinos
  • El frontal requiere poca funcionalidad
  • Al controlar el orden de modificación mediante el gestor primario, mantiene la consistencia secuencial.
  • Problemas de cuello de botella en el gestor primario debido a que la actualización de todos los respaldos antes de dar respuesta y a que los respaldos no dan servicio directo.
  • Replicación activa: El cliente realiza una petición que se difunde a través de los frontales a todas las réplicas por igual, las cuales la gestionan de forma concurrente. El cliente se sincroniza con la primera respuesta que obtiene. Mediante el uso de la replicación activa se consigue reducir la latencia aunque, en consecuencia, se requiere de un alto coste para procesar las actualizaciones en todas las réplicas y la comunicación llevada a cabo.
 
Replicación activa (Coulouris 2011)
Teniendo en cuenta esta estructura, tras una petición de cualquier cliente que llega a un frontal, se pueden distinguir las siguientes fases:
  1. Petición: el frontal multidifunde la petición a los gestores haciendo uso de multidifusión fiable y de ordenación total y espera a recibir la correspondiente respuesta antes de continuar enviando las peticiones siguientes.
  2. Coordinación: el sistema de comunicación entrega la petición a todos los gestores según una ordenación total (multidifusión).
  3. Ejecución: cada gestor ejecuta la petición de forma independiente, aunque idéntica.
  4. Respuesta: cada gestor manda su respuesta al frontal. El número de respuestas que recoge el frontal depende de las asunciones de fallo y del algoritmo de multidifusión. El sistema de replicación activa incluye las siguientes características:
  • Tolerancia a fallos proveniente del uso de una multidifusión fiable y totalmente ordenada.
  • Este tipo de multidifusión es equivalente a un algoritmo de consenso, con lo que así se resuelven los fallos bizantinos. El frontal recoge f+1 respuestas iguales antes de responder al cliente.

Servicios de alta disponibilidad

En esta sección se tratarán sistemas cuyo objetivo es proporcionar a los clientes acceso a un servicio durante el mayor tiempo posible con tiempos de respuesta razonables, incluso si esto implica que los resultados no cumplirán con la consistencia secuencial presente en los sistemas anteriores. Para lograr este objetivo, se buscará construir sistemas con el mínimo número de gestores de réplicas que sean capaces de proporcionar un nivel de servicio aceptable, minimizando también el tiempo que estos emplean en coordinar sus actividades (En general, haciendo uso de niveles menos estrictos de consistencia) De esta manera se prioriza la velocidad de respuesta, aunque no todas las réplicas estén actualizadas, consiguiendo que la información compartida esté disponible durante más tiempo.

Dentro de este modelo de replicación, cabe destacar:

  • Arquitectura cotilla: Es un framework usado en la implementación de servicios de alta disponibilidad. Su nombre viene dado porque los gestores de réplicas intercambian mensajes (“cotillean”) para informar al resto de las actualizaciones de los clientes.
  • Sistema Bayou: Es un sistema de alta disponibilidad usado en replicación, cuyo objetivo principal es garantizar la disponibilidad.
  • Sistemas de archivos Coda: Es un sistema de archivos descendiente de AFS, que proporciona un alto grado de disponibilidad, a pesar de realizar operaciones desconectadas.

Transacciones con replicación

Una transacción es una secuencia de una o más operaciones que tienen que ocurrir de manera atómica.

Los objetos en sistemas transaccionales pueden estar replicados, para mejorar la disponibilidad y el rendimiento. El cliente no debe tener conocimiento de la replicación.

Existen diferentes esquemas de replicación

  • Replicación de copia primaria: similar a la replicación pasiva.
    • Un gestor primario se encarga de la concurrencia (FIFO).
    • Para consumar una transacción, el primario comunica con las réplicas y después responde al cliente (estrategia exhaustiva). Esto implica un mayor tiempo de respuesta.
    • O bien, responde inmediatamente y realiza las copias en segundo plano (estrategia perezosa). Si el primario cae, el reemplazo puede no tener la última versión.
  • Uno lee, todos escriben: Un cliente puede leer de cualquiera de las réplicas, ya que todas están actualizadas.
Por otro lado, un gestor de réplicas escribe y envía al resto la actualización. Cuando todos han realizado dicha actualización, termina la transacción. Es una operación atómica, ya que tiene que escribir en todas las réplicas.
  • Consenso por quórum: El cuórum es un subgrupo de gestores de réplicas autorizado a efectuar operaciones.
Ejemplo [Gifford, 1979]: sean n copias de un archivo F:
  • Requisito de lectura: Al menos r copias (cuórum de lectura) de F deben ser consultadas.
  • Requisito de escritura: Al menos w copias (cuórum de escritura) de F deben ser escritas.
  • Restricción: r+w > n (intersección no nula entre r y w). Hay al menos una copia actualizada en cualquier cuórum. Puede haber diferentes tipos de operaciones:
  • Operación de lectura: Recuperar un cuórum de lectura (cualquier conjunto de r copias). De las r copias, seleccionar la copia con el número de versión más alto. Retomar el valor de dicha copia.
  • Operación de escritura: Tomar un cuórum de escritura (cualquier conjunto de w copias). De las w copias, obtener el número de versión más alto. Incrementar el número de versión. Escribir el nuevo valor y el nuevo número de versión en todas las w copias del cuórum de escritura. Es un esquema diseñado para reducir el número de réplicas que deben ejecutar las actualizaciones. Al coste de incrementar el número de réplicas que deben ejecutar las lecturas.
  • Commit de dos fases (2PC): Es un protocolo de consenso distribuido que permite a todos los nodos de un sistema distribuido ponerse de acuerdo para consolidar una transacción. Su objetivo principal es que todos los nodos realicen un commit de la transacción o la aborten.

Referencias

  • AUTORES, VARIOS (2015). «18.Replication». Distributed Systems, Concepts and Design (en inglés) (5ª edición). Pearson. pp. 765-815. ISBN 978-01-3214-301-1. 
  • Diferencias entre copia de seguridad y replicación
  • Sistemas distribuidos (replicación)
  • Replicación
  • Rodrigo Santamaría. Apuntes Sistemas Distribuidos Universidad de Salamanca. | Tema 8 - Replicación


  •   Datos: Q1332873

replicación, informática, replicación, proceso, copiar, mantener, actualizados, datos, varios, modos, bases, datos, sean, estos, persistentes, Éste, concepto, donde, existe, nodo, maestro, master, otros, sirvientes, esclavos, slaves, replicación, está, codific. La replicacion es el proceso de copiar y mantener actualizados los datos en varios modos de bases de datos ya sean estos persistentes o no Este usa un concepto donde existe un nodo amo o maestro master y otros sirvientes o esclavos slaves La replicacion esta codificada en un lenguaje de Decima Generacion llamado ERCS001 que fue disenado a mediados de los anos 20 por el Matematico Filosofo Khronwhell Strnhwell C S codificado en un entorno visual Sirve ademas entre otras cosas para medir la cantidad de texto que se introduce en los datos La replicacion de discos y particiones es la respuesta a una parte importante de esas dos acciones de mantenimiento La replicacion es el proceso mediante el cual se genera una copia exacta de parte del sistema para mejorar la fiabilidad tolerancia a fallos o accesibilidad Esa parte puede ser desde un archivo hasta una carpeta una particion un disco o incluso varios discos Indice 1 Beneficios 2 Modelos de replicacion en sistemas distribuidos 2 1 Servicios tolerantes de fallos 2 2 Servicios de alta disponibilidad 3 Transacciones con replicacion 4 ReferenciasBeneficios EditarLa replicacion se usa mucho en sistema de acceso a datos por varios motivos Rendimiento El rendimiento es mejorado mediante el uso de caches en clientes o servidores El uso de caches permite mantener copias de los resultados obtenidos en llamadas anteriores reduciendo el coste de llamadas identicas Por otro lado normalmente hay mas lectura que escritura en una base de datos por lo que tener varios nodos solo procesando la lectura puede traer un gran beneficio de rendimiento en una base de datos muy consultada A prueba de fallos Con la replicacion ganamos tolerancia a diferentes tipos de fallos Fallos en el servidor Un esclavo estando casi sincronicamente actualizado puede ser util en caso de que el nodo maestro caiga ya que puede reemplazarlo sin detener el servicio Fallos bizantinos Si f servidores tienen fallos bizantinos un sistema con 3f 1 servidores proveeria un servicio correcto Fiabilidad La replicacion garantiza que los datos han sido copiados a otro nodo en caso de que el nodo maestro haya sufrido un desperfecto Generacion de bloqueos aunque esta es mas precisa tambien se puede usar para procesos que necesiten leer datos generando bloqueos Al hacerlo sobre un esclavo esto no interviene en el funcionamiento de todo el sistema Es muy usado para por ejemplo hacer copias de seguridad o extraer grandes cantidades de datos para generar estadisticas Alta disponibilidad La proporcion de tiempo que el servicio esta accesible con tiempos de respuesta razonables es cercana al 100 Sin embargo puede haber fallos en el servidor o desconexiones de red que hagan que la disponibilidad disminuya Modelos de replicacion en sistemas distribuidos EditarEn estos modelos se asume que los sistemas son asincronos que los procesos fallan solo por caida y que no hay peticiones de red Todo modelo de replicacion tiene dos componentes Gestor de replicas Componente que almacena replicas de un determinado objeto o servicio y opera sobre ellas Frontal front end Componente que atiende las llamadas de los clientes y se comunica con los gestores de replicas Ante una peticion realizada por el cliente todos los modelos realizan las siguientes fases Peticion El frontal envia la peticion a un gestor O bien envia la peticion a un gestor y este reenvia a otros o multidifunde la peticion a varios gestores Coordinacion Los gestores se coordinan para ejecutar la peticion de manera consistente En este paso puede aplicar diferentes tipos de ordenacion FIFO Si un frontal solicita la peticion r antes que la peticion r todos los gestores que resuelvan r deben hacerlo despues de resolver r ordenacion local La mayoria de las aplicaciones solo requieren una ordenacion FIFO Causal Si r gt r entonces todos los gestores resuelven r antes de resolver r Total Si un gestor resuelve r antes que r todos los gestores resuelven r antes que r Ejecucion Se ejecuta la peticion puede ser de forma tentativa Acuerdo Se llega a un consenso antes de consumar la ejecucion Respuesta Uno o mas gestores de replicas responden al frontal Servicios tolerantes de fallos EditarSistemas que deben proporcionar un servicio correcto aunque fallen f procesos mediante la replicacion de datos y la funcionalidad asociada a los gestores de replicas Para ello utilizan un diseno tolerante de fallos Mediante el uso de este tipo de servicios el cliente no debe distinguir una ejecucion normal de una con fallos Replicacion Pasiva Coulouris 2011 Existen dos principales modelos de servicios tolerantes de fallos Replicacion pasiva o primario respaldo Utiliza la arquitectura maestro esclavo en la que se procesa cada solicitud en el gestor de replicas primario maestro y se envia copias del resultado a los gestores secundarios esclavos Los frontales actuan de intermediario entre los clientes y el gestor de replicas primario Replicacion pasiva http www sc ehu es acwlaalm sdi 3 Replicacion pdfEn caso de fallar el gestor primario uno de los secundarios pasa a ocupar su lugar Teniendo en cuenta esta estructura tras una peticion de cualquier cliente que llega a un frontal se pueden distinguir las siguientes fases Peticion el frontal envia una peticion al gestor primario Coordinacion el gestor primario ejecuta las peticiones siguiendo un esquema de ordenacion FIFO First In First Out Ejecucion se ejecuta la peticion y se almacena la respuesta Acuerdo si es una peticion de actualizacion el gestor primario envia la actualizacion a todos los secundarios que confirman la recepcion mediante el uso de mensajes de tipo ACK Respuesta el gestor primario responde al frontal Este sistema de replicacion tiene las siguientes caracteristicas Tolera fallos de proceso gestor primario o respaldos No tolera fallos bizantinos El frontal requiere poca funcionalidad Al controlar el orden de modificacion mediante el gestor primario mantiene la consistencia secuencial Problemas de cuello de botella en el gestor primario debido a que la actualizacion de todos los respaldos antes de dar respuesta y a que los respaldos no dan servicio directo Replicacion activa El cliente realiza una peticion que se difunde a traves de los frontales a todas las replicas por igual las cuales la gestionan de forma concurrente El cliente se sincroniza con la primera respuesta que obtiene Mediante el uso de la replicacion activa se consigue reducir la latencia aunque en consecuencia se requiere de un alto coste para procesar las actualizaciones en todas las replicas y la comunicacion llevada a cabo Replicacion activa Coulouris 2011 Replicacion activa http www sc ehu es acwlaalm sdi 3 Replicacion pdfTeniendo en cuenta esta estructura tras una peticion de cualquier cliente que llega a un frontal se pueden distinguir las siguientes fases Peticion el frontal multidifunde la peticion a los gestores haciendo uso de multidifusion fiable y de ordenacion total y espera a recibir la correspondiente respuesta antes de continuar enviando las peticiones siguientes Coordinacion el sistema de comunicacion entrega la peticion a todos los gestores segun una ordenacion total multidifusion Ejecucion cada gestor ejecuta la peticion de forma independiente aunque identica Respuesta cada gestor manda su respuesta al frontal El numero de respuestas que recoge el frontal depende de las asunciones de fallo y del algoritmo de multidifusion El sistema de replicacion activa incluye las siguientes caracteristicas Tolerancia a fallos proveniente del uso de una multidifusion fiable y totalmente ordenada Este tipo de multidifusion es equivalente a un algoritmo de consenso con lo que asi se resuelven los fallos bizantinos El frontal recoge f 1 respuestas iguales antes de responder al cliente Servicios de alta disponibilidad Editar En esta seccion se trataran sistemas cuyo objetivo es proporcionar a los clientes acceso a un servicio durante el mayor tiempo posible con tiempos de respuesta razonables incluso si esto implica que los resultados no cumpliran con la consistencia secuencial presente en los sistemas anteriores Para lograr este objetivo se buscara construir sistemas con el minimo numero de gestores de replicas que sean capaces de proporcionar un nivel de servicio aceptable minimizando tambien el tiempo que estos emplean en coordinar sus actividades En general haciendo uso de niveles menos estrictos de consistencia De esta manera se prioriza la velocidad de respuesta aunque no todas las replicas esten actualizadas consiguiendo que la informacion compartida este disponible durante mas tiempo Dentro de este modelo de replicacion cabe destacar Arquitectura cotilla Es un framework usado en la implementacion de servicios de alta disponibilidad Su nombre viene dado porque los gestores de replicas intercambian mensajes cotillean para informar al resto de las actualizaciones de los clientes Sistema Bayou Es un sistema de alta disponibilidad usado en replicacion cuyo objetivo principal es garantizar la disponibilidad Sistemas de archivos Coda Es un sistema de archivos descendiente de AFS que proporciona un alto grado de disponibilidad a pesar de realizar operaciones desconectadas Transacciones con replicacion EditarUna transaccion es una secuencia de una o mas operaciones que tienen que ocurrir de manera atomica Los objetos en sistemas transaccionales pueden estar replicados para mejorar la disponibilidad y el rendimiento El cliente no debe tener conocimiento de la replicacion Existen diferentes esquemas de replicacion Replicacion de copia primaria similar a la replicacion pasiva Un gestor primario se encarga de la concurrencia FIFO Para consumar una transaccion el primario comunica con las replicas y despues responde al cliente estrategia exhaustiva Esto implica un mayor tiempo de respuesta O bien responde inmediatamente y realiza las copias en segundo plano estrategia perezosa Si el primario cae el reemplazo puede no tener la ultima version Uno lee todos escriben Un cliente puede leer de cualquiera de las replicas ya que todas estan actualizadas Por otro lado un gestor de replicas escribe y envia al resto la actualizacion Cuando todos han realizado dicha actualizacion termina la transaccion Es una operacion atomica ya que tiene que escribir en todas las replicas Consenso por quorum El cuorum es un subgrupo de gestores de replicas autorizado a efectuar operaciones Ejemplo Gifford 1979 sean n copias de un archivo F Requisito de lectura Al menos r copias cuorum de lectura de F deben ser consultadas Requisito de escritura Al menos w copias cuorum de escritura de F deben ser escritas Restriccion r w gt n interseccion no nula entre r y w Hay al menos una copia actualizada en cualquier cuorum Puede haber diferentes tipos de operaciones Operacion de lectura Recuperar un cuorum de lectura cualquier conjunto de r copias De las r copias seleccionar la copia con el numero de version mas alto Retomar el valor de dicha copia Operacion de escritura Tomar un cuorum de escritura cualquier conjunto de w copias De las w copias obtener el numero de version mas alto Incrementar el numero de version Escribir el nuevo valor y el nuevo numero de version en todas las w copias del cuorum de escritura Es un esquema disenado para reducir el numero de replicas que deben ejecutar las actualizaciones Al coste de incrementar el numero de replicas que deben ejecutar las lecturas Commit de dos fases 2PC Es un protocolo de consenso distribuido que permite a todos los nodos de un sistema distribuido ponerse de acuerdo para consolidar una transaccion Su objetivo principal es que todos los nodos realicen un commit de la transaccion o la aborten Referencias EditarAUTORES VARIOS 2015 18 Replication Distributed Systems Concepts and Design en ingles 5ª edicion Pearson pp 765 815 ISBN 978 01 3214 301 1 Diferencias entre copia de seguridad y replicacion Sistemas distribuidos replicacion Replicacion Rodrigo Santamaria Apuntes Sistemas Distribuidos Universidad de Salamanca Tema 8 Replicacion Datos Q1332873Obtenido de https es wikipedia org w index php title Replicacion informatica amp oldid 130566482, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos