ES2318300T3 - Sistema , procedimiento y dispositivo para actualizar un conjunto de datos a traves de una red de comunicaciones. - Google Patents

Sistema , procedimiento y dispositivo para actualizar un conjunto de datos a traves de una red de comunicaciones. Download PDF

Info

Publication number
ES2318300T3
ES2318300T3 ES04741409T ES04741409T ES2318300T3 ES 2318300 T3 ES2318300 T3 ES 2318300T3 ES 04741409 T ES04741409 T ES 04741409T ES 04741409 T ES04741409 T ES 04741409T ES 2318300 T3 ES2318300 T3 ES 2318300T3
Authority
ES
Spain
Prior art keywords
data
blocks
center
storage area
rdc
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES04741409T
Other languages
English (en)
Inventor
Andrea Di Giglio
Raffaele Girardi
Eugenio Maria Maffione
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telecom Italia SpA
Original Assignee
Telecom Italia SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Telecom Italia SpA filed Critical Telecom Italia SpA
Application granted granted Critical
Publication of ES2318300T3 publication Critical patent/ES2318300T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2076Synchronous techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Devices For Checking Fares Or Tickets At Control Points (AREA)

Abstract

Un sistema para actualizar un conjunto de datos a través de una red de comunicaciones, estando dicho conjunto de datos almacenado en una unidad de almacenamiento de recuperación (12) localizada en un centro de recuperación de datos (RDC) y que tiene que actualizarse con bloques de datos entrantes generados por al menos un sistema de procesamiento (10) asociado a un centro de datos primario (PDC), que comprende - un dispositivo (13) interpuesto entre dicho centro de datos primario (PDC) y dicho centro de recuperación de datos (RDC) a través de dicha red de comunicaciones y asociado a un área de almacenamiento temporal (27) para escribir temporalmente en localizaciones de almacenamiento correspondientes los bloques de datos entrantes generados por dicho sistema de procesamiento (10) y para reenviar dichos bloques de datos a dicho centro de recuperación de datos (RDC) donde dicho dispositivo (13) comprende módulos aptos para - enviar una primera señal de acuse de recibo (3) a dicho centro de datos primario (PDC) acusando recibo de la escritura satisfactoria en dicha área de almacenamiento temporal (27) de dichos bloques de datos tan pronto como dichos bloques de datos es escriben en dicha área de almacenamiento temporal (27), - recibir y gestionar una segunda señal de reconocimiento (6) enviada por dicho centro de recuperación de datos (RDC) acusando recibo de la actualización satisfactoria de dicho conjunto de datos tras el reenvío de dichos bloques de datos, y - poner a la disposición de nuevos bloques de datos entrantes las localizaciones de dicha área de almacenamiento temporal (27) tras la recepción de dicha segunda señal de acuse de recibo (6), caracterizado por el hecho de que dicho dispositivo también comprende módulos aptos para escribir dichos bloques de datos en dicha área de almacenamiento temporal (27) en direcciones solicitadas por dicho centro de datos primario (PDC) como se detalla a continuación: - si los bloques de datos en la dirección solicitada no están escritos en el área de almacenamiento temporal (27), escribir dichos bloques de datos en dicha área de almacenamiento temporal (27); - si los bloques de datos en la dirección solicitada ya están escritos en el área de almacenamiento temporal (27), pero dichos bloques de datos no se han reenviado, escribir dichos bloques de datos en dicha área de almacenamiento temporal (27) mediante el reemplazo de los anteriores a dichos bloques de datos; - si los bloques de datos en la dirección solicitada ya están escritos en el área de almacenamiento temporal (27), se han reenviado y el acuse de recibo de dicho centro de recuperación de datos (RDC) no se ha recibido, escribir dichos bloques de datos en una nueva localización en dicha área de almacenamiento temporal (27).

Description

Sistema, procedimiento y dispositivo para actualizar un conjunto de datos a través de una red de comunicaciones.
Campo de la invención
La presente invención se refiere a un sistema, un procedimiento y un dispositivo para actualizar un conjunto de datos a través de una red de comunicaciones.
En particular, la invención se refiere a un sistema, un procedimiento y un dispositivo para actualizar a través de una red de comunicaciones geográfica y de manera sincrónica, conjuntos de datos desde una primera unidad de almacenamiento, localizada en un Centro de Datos Primario, a una segunda unidad de almacenamiento, localizada en un Centro de Recuperación de Datos que está geográficamente lejos del Centro de Datos Primario, donde los datos almacenados en el Centro de Recuperación de Datos se pueden utilizar en caso de una situación de desastre que implique al Centro de Datos Primario.
Más particularmente, la invención se refiere a técnicas de replicación automática síncronas para proteger conjuntos de datos.
Antecedentes de la invención
En arquitecturas informáticas con gran disponibilidad, una manera generalizada de proteger datos importantes de daños o pérdidas, en caso de desastre, está representada por la técnica de replicación automática. Dicha técnica proporciona el mantenimiento de al menos dos copias de información importante almacenada en al menos dos unidades de almacenamiento diferentes dispuestas en dos sitios diferentes: Una primera copia local, que representa generalmente la "copia de trabajo", la utiliza directamente una aplicación de software que se ejecuta en un sistema informático principal (ordenador) localizado en el Centro de Datos Primario (PDC, del inglés Primary Data Center), mientras que una segunda copia se localiza en el Centro de Recuperación de Datos (RDC, del inglés Remote Data Center) remoto y se utiliza en el ámbito de un proceso de recuperación de desastre en caso de fallo del sistema informático
principal.
En la técnica hay al menos dos procedimientos conocidos para llevar a cabo la replicación de conjuntos de datos:
una primera técnica o procedimiento, conocido como replicación automática síncrona, donde la actualización de una copia remota en el RDC es simultánea a la modificación de un elemento de datos en una copia local en el PDC;
una segunda técnica, conocida como replicación automática asíncrona, la actualización de la copia remota se produce de acuerdo a una política de lotes.
\vskip1.000000\baselineskip
La técnica de replicación automática síncrona, que es la técnica pertinente para la presente invención, proporciona, en general, las siguientes etapas:
a-
escribir un elemento de datos en una unidad de almacenamiento local;
b-
escribir el elemento de datos en una unidad de almacenamiento remota;
c-
esperar una señal de acuse de recibo ACK del disco remoto antes de repetir las etapas a) y b) escribiendo de nuevo un elemento de datos nuevo.
\vskip1.000000\baselineskip
La replicación automática síncrona aporta más garantía de recuperación del estado del sistema informático principal en caso de fallo, pérdida de datos o desastre, porque permite tener al menos dos unidades de almacenamiento perfectamente alineadas en todo momento.
En caso de desastre, utilizando la replicación automática síncrona, es posible mantener el denominado Tiempo Objetivo de Recuperación o RTO (del inglés, Recovery Time Objective) bajo, que es el intervalo de tiempo necesario para restaurar el funcionamiento normal de una aplicación de software idéntica a las aplicaciones que se ejecutaban en el PDC antes del desastre. De hecho, al adoptar una técnica de replicación automática síncrona, se garantiza la reducción de desviación, entre un conjunto de datos principal y su copia útil para reiniciar la aplicación de software, idealmente en una transacción.
En la técnica, la desviación, medida en tiempo, entre el conjunto de datos principal y su copia, se denomina normalmente Punto Objetivo de Recuperación o RPO (del inglés, Recovery Point Objective).
Cabe destacar que la secuencia de etapas relativas a la replicación automática síncrona requiere que la aplicación de software en el PDC esté bloqueada durante un periodo de tiempo que va desde la producción de un elemento de datos por parte de la propia aplicación de software hasta la recepción en el PDC de un acuse de recibo de la escritura del elemento de datos (operación de escritura) por parte de la unidad de almacenamiento remota en el RDC. Este intervalo de tiempo se puede estimar como la suma de:
-
el tiempo de serialización del elemento de datos;
-
el tiempo de ida y vuelta, que es la suma del retardo de la propagación y del tiempo de procesamiento y de puesta en espera en los aparatos existentes a lo largo de la conexión entre el sistema informático principal y la copia remota;
-
el tiempo de escritura del elemento de datos en el disco dentro del RDC;
-
el tiempo de producción y serialización de la señal de acuse de recibo, siendo dicho tiempo insignificante respecto al tiempo de serialización del elemento de datos y del tiempo de ida y vuelta.
En general, el tiempo de ida y vuelta mínimo no puede ser inferior al intervalo de tiempo relativo a la propagación física (retardo de la propagación) en el medio utilizado, siendo dicho intervalo de tiempo directamente proporcional a la distancia en la conexión física entre el ordenador en el Centro de Datos Primario (PDC) y la unidad de almacenamiento remota en el Centro de Recuperación de Datos (RDC).
Es muy conocido dentro de la industria de almacenamiento y está totalmente documentado por vendedores de software y hardware de almacenamiento el hecho de que la replicación automática síncrona reduce la velocidad del rendimiento de las aplicaciones de software que producen los datos implicados en la replicación síncrona (replicación automática). A medida que la distancia entre el PDC y el RDC aumenta, el rendimiento de las aplicaciones disminuye de manera proporcional. Por ejemplo, asumiendo que el único efecto limitativo es el retardo de la propagación, un aumento de la distancia entre el PDC y el RDC de 10 a 100 km proporciona un aumento del tiempo de respuesta de escritura (tiempo de ida y vuelta) en un factor de 10; como consecuencia, el rendimiento global de la aplicación se puede reducir, según la cantidad de la tasa de las operaciones de escritura, hasta el 90%.
De todas formas, el solicitante cree que el límite de distancia a partir del cual estos rendimientos se vuelven inaceptables para sostener la funcionalidad normal del sistema informático en el PDC no se puede definir de un solo e único modo, porque depende estrictamente del tipo de negocio y de aplicaciones de software relacionadas (tamaño y frecuencia de las operaciones de escritura) y de las características físicas de la red de comunicaciones entre el PDC y el RDC (ancho de banda, tecnología y topología).
Algunas fuentes bibliográficas indican algunos límites de la distancia sobre la replicación automática síncrona:
-
El libro blanco de Nortel Networks "Storage Distance extension: increasing the reach and utility of networked storage applications", indica 400 km como el límite de distancia incluso cuando se utilizan enlaces de ancho de banda elevado;
-
El libro blanco de Hitachi "Business Continuity Solution Blueprint - Synchronous data replication" indica 50 km, asegura que el límite de distancia depende en particular del tiempo de respuesta de la aplicación;
-
Soluciones privadas para la replicación automática síncrona indican diferentes límites de distancia debido al software particular que gestiona la replicación de datos; más en particular IBM PPRC (Libro blanco "TBM and Cisco: Metro Optical Solution for Business Continuity and Storage Networking"; Aug. 2003) indica 40-100 km como el límite de distancia. EMC SRDF (Libro Blanco "EMC and Cisco Metro Optical Storage Networking Solution", 27 Junio, 2001) indica 80 km como el límite de distancia máximo.
El solicitante observa que, incluso en presencia de anchos de banda altos, por lo que el tiempo de serialización es insignificante, y en presencia de conexiones de circuito dedicadas, por lo que el tiempo de ida y vuelta se reduce al mínimo, la técnica de replicación automática síncrona en general no puede aplicarse a conexiones que tienen cualquier distancia entre el PDC y el RDC.
Tal límite contrasta con el requisito típico de las arquitecturas informáticas de alta disponibilidad según las cuales es necesario almacenar la replicación de los datos en un sitio localizado a larga distancia, por ejemplo, algunos cientos de kilómetros de la copia de trabajo, para permitir un mayor nivel de protección en caso de desastre enorme.
Para superar el problema anterior intrínseco a la técnica de replicación automática síncrona, se ha propuesto una técnica conocida como la replicación automática de disco de múltiples tramos. Tal técnica se ha descrito por ejemplo en "Asynchronous Cascading Implementations, TIPS0310", IBM Redbook - Hints & Tips, 15 de Octubre 2003, disponible en Internet el 14 de junio de 2004 en el sitio web hrip://publib.b.boulder.ibm.com/Redbooks.nsf y en "Remote Mirroring of Business Critical Information", EMC, 10 de junio de 2002, disponible en Internet el 14 de junio de 2004 en el sitio web http://italy.emc.com/local/it/IT/download/pdf/giugno2002/Burns.pdf. La técnica de replicación automática de múltiples tramos proporciona la realización de una replicación automática síncrona a un sitio intermedio localizado a una distancia compatible con los límites impuestos por la aplicación de software en el PDC y la replicación de los datos de forma asíncrona hacia el sitio RDC.
El solicitante observa que la replicación automática de múltiples tramos tiene el inconveniente de introducir elementos complejos en la cadena extremo a extremo. Según la técnica conocida, la replicación automática de múltiples tramos requiere la introducción de unidades de almacenamiento en el sitio intermedio, que debe tener al menos la misma capacidad de almacenamiento que la unidad de almacenamiento en el PDC. Dicha solución reduce la fiabilidad total de la arquitectura. Además, dado que la actualización desde el sitio intermedio hasta el sitio de recuperación (RDC) se produce típicamente en modo de lotes a una frecuencia relativamente baja, pueden aparecer diferencias relevantes entre los conjuntos de datos principales y los conjuntos de datos recuperados.
En caso de desastres con un ámbito de actuación que incluye tanto el sitio primario (PDC) como el sitio intermedio, puede que, por tanto, sea imposible obtener un Punto Objetivo de Recuperación o RPO muy bajo.
El libro "Heterogeneous Midrange Storage with Local Mirroring and Remote IP Replication", Falconstore, 10 de diciembre de 2002, disponible en Internet el 14 de junio de 2004 en el sitio web http://www.falconstor.com/
Whitepapers/MidrangeSSFSolutionWhitePaper.pdf y la solicitud de patente PCT número WO 02/069159 describen una técnica de replicación automática donde se proporciona un dispositivo localizado en el PDC y se inserta entre el sistema informático principal, que ejecuta la aplicación de software, y la unidad de almacenamiento local. La copia en la unidad de almacenamiento remota siempre se produce de forma asíncrona a través del dispositivo localizado en el PDC.
El documento US 2004/0034808 describe un procedimiento y un sistema para proporcionar una copia espejo de datos, donde se recibe una actualización a un almacenamiento primario y se transfiere a una sistema intermedio, a continuación la actualización se transfiere desde el sistema intermedio a un almacenamiento secundario proporcionando una copia espejo de actualizaciones al almacenamiento primario.
El documento US 6 148 383 describe una replicación automática de igual a igual asíncrona mantenida por una pluralidad de controladores de almacenamiento primarios a un respectivo de una pluralidad de controladores de almacenamiento secundarios utilizando comprobaciones de coherencia periódicas controladas mediante temporizador.
El documento PE 0 670 551 describe una replicación automática síncrona mediante la interceptación de comandos de escritura de la actualización de datos host primarios para transmitirlos al segundo controlador de almacenamiento para la actualización de una copia espejo.
En resumen, el solicitante cree que no se conoce ninguna solución en la técnica anterior para llevar a cabo una replicación automática síncrona independiente de la distancia entre le PDC y el RDC y con un RPO muy bajo.
Resumen de la invención
Es por tanto un objeto de la presente invención que se define en detalle en las reivindicaciones independientes adjuntas, proporcionar un sistema, un procedimiento y un dispositivo para actualizar un conjunto de datos a través de una red de comunicaciones permitiendo así la implementaron de una técnica de replicación automática síncrona independiente de la distancia.
También es un objeto de la presente invención permitir a un Proveedor de Servicios con, por ejemplo, un Centro de Recuperación de Datos centralizado, teniendo cada uno un Centro de Datos Primario respectivo, un servicio de recuperación de desastre, incluso cuando dichos clientes no están localizados en la misma área metropolitana que el Centro de Recuperación de Datos centralizado, y garantizar al mismo tiempo, en cualquier caso, a dichos clientes un RPO y un RTO comparable a la técnica de replicación automática síncrona.
También es un objeto de la presente invención proporcionar un producto de programa informático o un conjunto de productos de programa informático capaces de gestionar las operaciones a realizar para implementar el procedimiento según la invención.
Los objetos anteriores de la presente invención se consiguen a través de un sistema, un procedimiento, un dispositivo, un producto de programa informático y una red, como se reivindica en las reivindicaciones adjuntas aquí presentes.
Según la invención, se proporciona un sistema y un procedimiento para llevar a cabo una actualización síncrona de un conjunto de datos desde un Centro de Datos Primario PDC a un disco remoto o soporte de memoria, asociado a un Centro de Recuperación de Datos RDC localizado geográficamente, por ejemplo, a una gran distancia del PDC, donde dicha distancia, por ejemplo, es mayor que la distancia que un RPO es capaz de ofrecer bajo un límite razonable.
Según la invención, se proporciona un dispositivo de almacenamiento temporal, con un área de almacenamiento temporal para almacenar bloques de datos generados por el PDC y localizados, por ejemplo, en un sitio intermedio entre el PDC y el RDC. El dispositivo de almacenamiento temporal está configurado con capacidades de almacenamiento predeterminadas y comprende un programa de software caché inteligente capaz de proporcionar síncronamente al sistema de procesamiento cliente o PDC una señal de acuse de recibo de escritura satisfactoria, es decir, una señal de acuse de recibo dentro de un intervalo de tiempo muy corto y comparable al intervalo de tiempo de la técnica de replicación automática síncrona, p. ej., indicativamente en 1 ms.
Según la invención, una pluralidad de sistemas de procesamiento de cliente (clientes) y/o Centros de Datos Primarios pueden compartir el área de almacenamiento del dispositivo de almacenamiento temporal.
Según una característica adicional de la presente invención, el tamaño de caché asignado al cliente en el área de almacenamiento del dispositivo de almacenamiento temporal se determina independientemente del tamaño de los volúmenes de datos a actualizar. En particular, según una realización preferida de la presente invención, el tamaño de caché se determina dependiendo de:
-
el ancho de banda utilizado entre el sistema de procesamiento del cliente y el dispositivo de almacenamiento temporal;
-
el ancho de banda utilizado entre el dispositivo de almacenamiento temporal y el sitio de recuperación RDC; y
-
la velocidad de datos producidos por la aplicación de software del cliente en el PDC, donde por ejemplo, la velocidad de datos se cuantifica como el número de datos producidos o modificados en una unidad de tiempo.
En resumen, la presente invención proporciona las siguientes ventajas respecto a la técnica anterior conocida:
-
optimización del RPO que se presenta como igual al de la técnica de replicación automática síncrona de un solo salto (sin desalineación entre el disco local y el remoto) para un fallo o desastre en un ámbito de interés inferior a la distancia entre el Centro de Datos Primario PDC y el dispositivo de almacenamiento temporal, es decir, cuando el dispositivo de almacenamiento no está dañado.
-
RPO muy cercano a cero (desalineación limitada a unas pocas transacciones de la aplicación) para acontecimientos que impactan también en el sitio intermedio; en este caso, los datos existentes en el sitio intermedio y que todavía no se han copiado al disco remoto se pierden, pero según el modo de transferir datos descrito en la presente invención, los datos perdidos son intrínsecamente una cantidad muy limitada;
-
RTO muy bajo y comparable al RTO obtenible mediante una técnica de replicación automática de disco síncrona aplicada entre el Centro de Datos Primario y el Centro de Recuperación de Datos;
-
independencia de la distancia o no limitación en cuanto a la distancia entre el disco local y el disco remoto, como ocurre por el contrario en la técnica de replicación automática síncrona de un solo salto, ofreciendo una fiabilidad equivalente en términos de RPO y RTO.
-
una cantidad limitada de datos almacenados en el sitio intermedio, ya que el procedimiento propuesto por la presente invención no requiere que el sitio intermedio contenga todo el conjunto de datos del disco local del Centro de Datos Primario.
Breve descripción de los dibujos
La invención se describirá ahora aquí a continuación en referencia a los dibujos adjuntos de realizaciones preferidas pero no limitativas del mismo, en las que:
- la figura 1 es un diagrama de bloques de un sistema de replicación automática síncrono según la presente invención;
- la figura 2 es un diagrama de bloques de un dispositivo según la presente invención;
- la figura 3 es un diagrama de bloques de una primera realización del dispositivo de la figura 2;
- la figura 4 es un diagrama de bloques de una segunda realización del dispositivo de la figura 2;
- Las figuras 5a, 5b y 5c son respectivamente diagramas de flujo de un procedimiento de desfasamiento, escritura y lectura llevado a cabo por el dispositivo de la figura 2;
- La figura 6 es un diagrama de flujo que muestra estados de fallo del sistema de replicación automática del disco de la figura 1;
- La figura 7 muestra esquemáticamente un escenario en el que un Proveedor de Servicios de Almacenamiento puede implementar un servicio de replicación automática según la presente invención;
- La figura 8 es un diagrama de flujo que muestra posibles estados de un sistema cliente;
- La figura 9 y la figura 10 muestran una red donde se señalan parámetros característicos de un servicio de replicación automática según la presente invención;
- La figura 11 muestra una red en la que se ofrece un servicio de replicación automática en una modalidad total.
En todas las figuras se han utilizado las mismas referencias para indicar componentes que son iguales o que implementan funciones substancialmente equivalentes.
Descripción detallada de la invención
Aunque la invención se describirá ahora en referencia a una técnica de replicación automática de disco, cabe señalar sin embargo que el mismo principio inventivo se puede implementar satisfactoriamente en distintos entornos donde no se realiza ninguna aplicación de replicación automática, p. ej., en caso de fallo del disco local o en aquellas aplicaciones donde no se proporciona una copia local del conjunto de datos.
La figura 1 muestra un sistema de replicación automática de disco donde, según la invención, se proporciona para interponer un dispositivo de reposición de datos temporales 13 entre un sistema de procesamiento o sistema cliente 10, donde se está ejecutando una aplicación de software, y su unidad de disco local relativa 11 de un centro de Datos Primario PDC en un lado y una unidad de disco remoto 12 de un Centro de Recuperación de Datos RDC en el otro lado. El dispositivo 13 se coloca, por ejemplo, en un lugar geográficamente intermedio entre el disco local 11 y el disco remoto 12 donde, por ejemplo, la distancia entre el sitio intermedio y el RDC es preferentemente mayor que la distancia entre el PDC y el sitio intermedio. El término distancia, según la presente invención, es representativo de, por ejemplo, la longitud de la fibra óptica o cables de comunicación utilizados para conectar el PDC al sitio intermedio y para conectar el sitio intermedio al RDC.
En referencia a la figura 2, se explica en detalle la arquitectura del dispositivo de reposición temporal 13 con sus módulos 20-27.
Según una realización preferida de la presente invención, se implementan módulos 20-27 en el software, pero como puede ser evidente para un experto, dichos módulos se pueden implementar mediante módulos de hardware compuestos de circuitos integrado o lógica programable.
Los módulos 20 y 26 constituyen los frontales respectivamente hacia el Centro de Datos Primario PDC y hacia el Centro de Recuperación de Datos RDC. Los módulos 20 y 26 pueden ser dos objetos idénticos, como por ejemplo Tarjetas de Interfaz de Red o Nicks, el mismo objeto, como por ejemplo una sola NIC, o diferentes objetos, donde por ejemplo un módulo 20 puede ser un NIC y un módulo 26 puede ser Adaptador de Bus Host HBA o viceversa. Los módulos 20 y 26 son esencialmente dispositivos terminadores de un protocolo de transporte, es decir, dispositivos que gestionan el intercambio de información a través de la red. El módulo 21, dispuesto por debajo del módulo 20, constituye un dispositivo de destino de un protocolo utilizado para la replicación automática de datos remota. El dispositivo de destino 21 recibe comandos de entrada y salida desde el Centro de Datos Primario PDC y coopera con el módulo 22. Un dispositivo de destino realiza operaciones solicitadas por un dispositivo iniciador, es decir, un dispositivo que solicita un proceso de entrada y salida. El módulo 22, dispuesto por debajo del módulo 21, realiza un filtro de software que intercepta los comandos de entrada y salida y decide si enviarlos a un módulo de sistema caché 27 o al RDC a través de los módulos restantes 23-26. El módulo 23, dispuesto por debajo del módulo 22, es un módulo de virtualización que tiene la tarea de presentar al PDC áreas de almacenamiento lógicas, que son diferentes de las áreas de almacenamiento físicas reservadas para los volúmenes de disco existentes en el RDC. El módulo 24, dispuesto por debajo del módulo 23, tiene la tarea de recibir un bloque de datos con sus parámetros de dirección relativos y de encapsularlo dentro de los comandos reservados para la gestión del disco de almacenamiento en el RDC. El módulo 25, dispuesto debajo del módulo 24, es un dispositivo iniciador que coopera con el módulo 26.
En referencia a la figura 3, se describirá ahora una primera realización de un dispositivo de reposición de datos temporales 13 según la invención, cuando se utiliza el protocolo iSCSI/SCSI (del inglés, Internet Small Computer System Interface/Small Computer System Interface) para transferir remotamente los bloques de datos. Los módulos 20 y 21 pueden estar representados respectivamente por un terminador de protocolo de transporte, p. ej., un NIC, y por un dispositivo de destino de un protocolo para almacenar datos remotamente, p. ej., una versión modificada de un dispositivo de destino iSCSI. En este caso, el módulo 22 es una versión libre o comercial modificada del dispositivo de destino SCSI. Dicha modificación consiste substancialmente en construir un filtro de software que intercepta los comandos SCSI para un Número de Unidad Lógico LUN (del inglés, Logical Unit Number) determinado y dirige dichos comandos al sistema caché 27 o a los módulos restantes 23-26 del dispositivo 13 para reenviar los comandos al RDC. Esta cadena de módulos 23-26 entrelazados está compuesta de un Administrador de Volúmenes Lógicos LVM (del inglés, Logical Volume Administrator) 23 en el caso de una implementación basada en el sistema operativo Linux. Los otros módulos 24-26 normalmente son también módulos estándar disponibles, y en Linux pueden estar compuestos de un subsistema SCSI nativo o unidad de control 24 que coopera con un iniciador estándar iSCSI 25 y un TIC 26. Al utilizar el administrador de volúmenes lógicos 23 en el entorno Linux, es necesario que el dispositivo de destino SCSI modificado 22 proporcione una interfaz de bloque de entrada y salida compatible con el LVM 23.
Según otra realización de la presente invención, el Administrador de Volúmenes Lógicos 23 se puede eludir. Sin embargo, según una realización preferida, resulta útil proporcionar la presencia del Administrador de Volúmenes Lógicos 23, ya que permite crear particiones lógicas dirigidas a áreas de almacenamiento pertenecientes, por ejemplo, a una pluralidad de Centros de Recuperación de Datos que puede estar separados geográficamente.
Como puede entender un experto, el LVM 23 puede ser reemplazado por un dispositivo de virtualización de software.
El dispositivo 13 propuesto en la figura 3, donde el SCSI es el protocolo de gestión del almacenamiento y el iSCSI es el protocolo para almacenar remotamente datos en la sección PDC-dispositivo 13 y en la sección dispositivo 13-RDC es solo un ejemplo de los posibles protocolos que se pueden utilizar para el dispositivo 13.
La figura 4 muestra una segunda posible arquitectura del dispositivo 13. En esta versión, el SCSI todavía es el protocolo de gestión de almacenamiento pero el protocolo de Canal de Fibra se utiliza para transferir remotamente los datos.
En esta realización, las interfaces de red están representadas por un adaptador de Bus Host (HBA) de Canal de Fibra que sustituye, desde un punto de vista funcional, el conjunto de destinos/iniciadores NIC y iSCSI asociados a la realización descrita en la figura 3. Sin embargo, también son posibles soluciones híbridas, proporcionado dichas soluciones diferentes protocolos para almacenar remotamente los datos en las dos secciones de red separadas por el dispositivo 13 sin hacer uso del SCSI como protocolo de gestión de los dispositivos de almacenamiento, y proporcionado más tecnologías de comunicación como en el caso de que los RDCs sean más de uno y se gestionen con distintas tecnologías. Las soluciones híbridas impactan también en la tipología de protocolo gestionada por el módulo 24 de la figura 2.
El dispositivo 13 no se puede implementar como un conjunto de funciones o módulos en aplicaciones dedicadas o en dispositivos de red, p. ej., encaminador, Interconexión Óptico/Digital (ODBC), conmutador FC, etcétera.
En referencia de nuevo a la figura 1, donde las flechas indican las operaciones realizadas, se describirá ahora cómo funciona el sistema de replicación automática de disco 20.
A continuación el término "bloque de datos" indicará la asociación lógica de:
\bullet
la información a almacenar (datos) en el RDC;
\bullet
los atributos de operación de entrada y salida como la dirección o el conjunto de direcciones de la localización de la memoria en el sistema de almacenamiento de destino;
\bullet
atributos de datos adicionales a almacenar junto con la información.
Siguiendo una petición de entrada y salida 1 emitida por la aplicación de software que se está ejecutando en el sistema de procesamiento 10, un software de replicación automática 14 instalado en el Centro de Datos Primario PDC envía una replicación 2 de la solicitud de entrada y salida 1 al disco local 11 y al dispositivo 13.
El disco local 11 y el dispositivo de reposición temporal 13 contestan a la solicitud de entrada y salida 2 enviando una señal de acuse de recibo adecuada 3 al software de creación de datos 14 que a su vez envía una señal de acuse de recibo correspondiente 4 a dicho sistema de procesamiento 10. A continuación el dispositivo de reposición de datos temporales 13 se encarga de transferir un bloque de datos 5 al disco remoto 12 del Centro de Recuperación de Datos y de gestionar una señal de acuse de recibo relativa 6.
Por tanto, el dispositivo de reposición de datos temporales 13 tiene la tarea de:
-
devolver a la aplicación de software a través del software de replicación automática de disco 14 una señal 3 que acusa la recepción y la escritura de los elementos de datos en el dispositivo 13 para no bloquear o retrasar el modo normal de funcionamiento de dicha aplicación de software;
-
almacenar temporalmente el bloque de datos a transferir al disco remoto 12;
-
transferir de forma asíncrona el bloque de datos 5 al disco remoto 12 donde todo el conjunto de datos del disco local 11 se reconstruye.
El Centro de Datos Primario PDC y el Centro de Recuperación de Datos RDC tienen respectivamente la misma funcionalidad que tendrían ambos al utilizar una técnica de replicación automática de disco de un solo salto tradicional y la introducción del dispositivo de reposición de datos temporales 13 no altera su modo de operación normal de modo que el dispositivo 13 es realmente transparente para la aplicación de software.
El dispositivo 13 se puede aplicar en una red donde el Centro de Datos Primario PDC y el Centro de Recuperación de Datos RDC están administrados por el mismo administrador, por ejemplo, una empresa, o en un escenario de servicios donde el RDC está gestionado por un Proveedor de Servicios de Almacenamiento SSP y el Centro de Datos Primario PDC es propiedad de una compañía usuaria que compra los servicios de replicación de datos por parte del Proveedor de Servicios. Además, una pluralidad de clientes conectados al mismo Centro de Datos Primario PDC pueden compartir el mismo dispositivo de reposición temporal 13.
En lo que respecta a las operaciones del dispositivo de reposición de datos temporales 13 (figura 2) y a la arquitectura relativa (figura 1), se pueden identificar tres modos (o fases):
1.
fase de establecimiento: es la configuración de la arquitectura general del dispositivo 13 para servir a una nueva aplicación/cliente;
2.
fase de operación normal: comprende el proceso de desfasamiento y el filtro de los comandos de entrada y salida;
3.
Fase de recuperación de acontecimientos de fallo.
\vskip1.000000\baselineskip
Se describirá ahora la fase de establecimiento, que incluye todas las operaciones necesarias para permitir a una aplicación/cliente hacer uso del dispositivo según la invención. Se proporcionan al menos dos etapas diferentes:
a)
permitir la utilización de un disco de volumen físico existente en el RDC de forma transparente para el PDC y el RDC a través de dispositivo de reposición de datos temporales 13;
b)
permitir la utilización de la funcionalidad de la invención como si estuviera implementada una técnica de replicación automática síncrona entre el PDC y el RDC.
\vskip1.000000\baselineskip
En lo que concierne a la etapa de la fase de establecimiento a), un cliente nuevo sabe la imagen de un volumen lógico al que tiene acceso mediante la configuración adecuada del módulo 23, como puede ser evidente para un experto, del dispositivo de reposición de datos temporales 13. A dicho volumen lógico, que es la imagen lógica de las particiones físicas existentes en el RDC, se asociará un identificador utilizado por la aplicación cliente para acceder a dicho volumen lógico. En particular, una imagen lógica del volumen dentro del dispositivo 13 puede ser útil para enviar un mensaje de error por una dirección incorrecta sin esperar una respuesta negativa del destino final. En lo que concierne a la etapa b), estando dicha etapa b) realizada de modo que la aplicación cliente puede utilizar el volumen de disco físico remoto a través del dispositivo 13 como una imagen síncrona de un volumen de disco (copia local) existente en sus instalaciones, en la realización preferida se proporciona que:
-
una copia consistente del volumen se transfiere al sitio remoto (primera sincronización);
-
un área de almacenamiento está reservada para dicho cliente en el módulo de sistema caché 27 del dispositivo 13;
-
dicha área de almacenamiento hace referencia a los datos de configuración (conjunto de direcciones, tamaño del volumen, tamaño del bloque, etcétera) que describen las características del volumen dirigido por el cliente, estando dichos datos de configuración almacenados en una base de datos interna 27b del módulo de sistema caché 27;
-
se permite dentro del módulo 22 un proceso de filtración de los comandos emitidos por el software de replicación automática cliente de modo que algunos de estos comandos, p. ej., limpiar de los cabezales de las unidades de disco remoto, formatear el disco, etcétera, se reenvían a través de la cadena de módulo 23-26 hacia el RDC, mientras que algunos otros comandos, p. ej., grabar datos o leer datos, son interceptados y reenviados al módulo de sistema caché 27.
-
un software de control del caché 27a es informado sobre que se ha permitido un nuevo cliente y que se ha asignado un área de almacenamiento particular dentro del módulo de sistema caché 27 a dicho cliente.
\vskip1.000000\baselineskip
La etapa de operación normal comienza tras la fase de establecimiento. Esta fase incluye al menos dos procesos principales:
1.
el proceso de desfasamiento para mover los datos almacenados en el caché del dispositivo 13 al RDC;
2.
el proceso de filtración del comando de entrada y salida que intercepta operaciones de escritura y lectura y gestiona coherentemente el caché del dispositivo 13.
\vskip1.000000\baselineskip
En referencia a las figuras 4A, 5B y 5C se describirá ahora en detalle el proceso que controla las operaciones de desfasamiento/escritura/lectura que conciernen al módulo de sistema del caché 27.
La figura 5A representa un diagrama de flujo que muestra cómo funciona el proceso de desfasamiento dentro del software de control del caché 27a de la figura 2. El software caché 27a ejecuta primero una interrogación continua (etapa 101) de todas las áreas de almacenamiento del caché correspondientes a los diferentes clientes y comprueba si hay algunos bloques de datos en el caché 27 que todavía no se han reenviado al RDC. Tras la identificación de un bloque de datos en el caché por parte del interrogador, el proceso puede esperar un tiempo configurable máximo (tiempo de espera) antes de enviarlo al RDC. El periodo de interrogación, el tiempo de espera y el tiempo necesario para transmitir el bloque de datos en la conexión de red entre el dispositivo 13 y el RDC (tiempo de serialización) son parámetros configurables por el administrador con la restricción de que su suma debe ser preferiblemente inferior al tiempo entre llegadas entre dos bloques de datos para que el caché esté en una estancia estable. Además, el reenvío de un bloque de datos al RDC puede seguir políticas definidas por el usuario para modificar la prioridad del desfasamiento del bloque de datos, por ejemplo para aventajar clientes o aplicaciones específicos sobre otros (priorización). De todos modos la política de priorización no debe entrar en conflicto con la consideración arriba mencionada sobre el retardo de desfasamiento. Todos los bloques que tienen que ser reenviados al RDC se envían al RDC (etapa 103). Una vez que se ha enviado un bloque de datos, no se borra contextualmente del caché 27, sino que se borra solo cuando una señal de acuse de recibo emitida por el RDC confirma que el bloque de datos realmente ha llegado allí no corrupto (etapa 107). En este estado, un bloque de datos se marca como "bajo desfasamiento" y el proceso para seleccionar el bloque de datos a reenviar al RDC se ocupa de evitar poner "bajo desfasamiento" un bloque de datos con la misma dirección que otro bloque de datos que ya está "bajo desfasamiento". Esto se hace para evitar interferencias con el proceso de escritura abajo descrito. De hecho, para prevenir la pérdida de datos, el bloque de datos permanece almacenado en el caché 27 hasta que el RDC realmente ha almacenado el bloque de datos enviado desde el caché. En otras palabras, hay un tipo de control de entrega que previene la pérdida de datos y al mismo tiempo transfiere un bloque de datos desde el dispositivo 13 al RDC. Este control está representado en la figura 5A mediante los bloques abajo dispuestos en el bloque de envío 103. En cualquier caso, si los dispositivos 23 y/o 24 adoptan algunos mecanismos de control de entrega de un tipo conocido, estos se armonizarán con los adoptados por el caché para evitar interferencias. Analizando los posibles estados, un bloque de datos puede:
a)
llegar al RDC sin errores;
b)
llegar al RDC pero corrupto;
c)
nunca llegar al RDC.
Para reconocer los estados arriba mencionados a), b) y c), el proceso implementado en el software de control del caché 27a proporciona:
-
en el caso a) una señal de acuse de recibo positiva ACK (etapa 111, flecha hacia abajo);
-
en el caso b) una señal de acuse de recibo negativa NACK (etapa 111, flecha hacia arriba), si una señal NACK puede ser interpretada correctamente por el protocolo utilizado para transferir remotamente los datos;
-
para reconocer el estado c), se establece un retardo del tiempo de espera que es mayor que una estimación del tiempo de ida y vuelta ente el dispositivo 13 y el RDC; cuando ha transcurrido el retardo del tiempo de espera (etapa 109) y no ha llegado una señal de acuse de recibo positiva ACK o negativa NACK (etapa 107, flecha hacia la izquierda), el bloque de datos enviado por el caché 27 se considera como perdido. El retardo del tiempo de espera comienza tras el envío del bloque de datos (etapa 105).
Los bloques de control 111, 115 y 119 que siguen una señal de acuse de recibo positiva (etapa 111, flecha hacia abajo) gestionan el caso arriba mencionado a), y los bloques de control 111, 113 y 117 gestionan el caso b), mientras que el control del retardo del tiempo de espera lo realiza el bloque de control 109 que, una vez transcurrido el retardo del tiempo de espera predeterminado, asume que el RDC no ha recibido todavía el bloque de datos.
En una realización preferida se proporciona el establecimiento de un número máximo N_{MAX} de bloques consecutivos corruptos/perdidos en la conexión con el sitio remoto; si se alcanza este número máximo N_{MAX} (etapa 117), el caché 27 informa al cliente que el servicio de replicación automática es discontinuo (etapa 121) obstaculizando por tanto el envío desde el PDC al caché de otros datos a transferir.
De hecho, si el RDC es "inalcanzable" el caché 27 continuaría recibiendo datos por parte del cliente sin tener la posibilidad de reenviarlos al RDC y por tanto el caché 27 se sobrecargaría rápidamente. En otra realización, en caso de que el protocolo utilizado para transferir remotamente datos no proporcione una señal de acuse de recibo negativa NACK, se aplica el mismo proceso del retardo del tiempo de espera también para los bloques de datos corruptos, es decir, después de haber alcanzado un número predeterminado de bloques corruptos consecutivos, el servicio de replicación automática se suspende.
El proceso de filtración del comando de entrada y salida, implementado en el módulo 22 de la figura 2:
\bullet
intercepta los comandos desde el PDC al RDC;
\bullet
identifica el tipo de operación (ESCRIBIR, LEER, otras operaciones) considerando uno o más PDUs (Unidades de Datos de Protocolo, del inglés Protocol Data Units) según el protocolo particular utilizado.
\newpage
En caso de que los comandos de entrada y salida difieran de ESCRITURA y LECTURA, el dispositivo 13 los reenvía al RDC. En el caso de comandos ESCRITURA o LECTURA, la primera etapa consiste en extraer los parámetros de la operación de entrada y salida:
\bullet
en el caso de comandos ESCRITURA, los parámetros son, por ejemplo, todo el bloque de datos, es decir: los datos a almacenar, los atributos de operación (p. ej., la dirección de la localización de la memoria) y los atributos de datos adicionales;
\bullet
en caso de comandos LECTURA, ya que en los datos se tienen que adquirir, los parámetros son, por ejemplo, solo los atributos de operación.
Las operaciones se procesan como se describe a continuación.
En referencia a la figura 5B, se describirá ahora cómo los comandos de escritura emitidos por el software de replicación automática 14 de la figura 1 y reenviados al dispositivo 13 de la figura 1 son gestionados por el software caché 27a.
Dentro del dispositivo 13, los comandos de escritura emitidos por el software de replicación automática 14 son interceptados por el bloque 22 de la figura 2 y analizados según el proceso descrito en la figura 5B.
Después de que un comando ESCRITURA ha sido interceptado por el caché (etapa 151), se identifican los parámetros relevantes (bloque de datos) de la operación de entrada y salida (etapa 152).
Según la realización preferida, se proporcionan cuatro estados posibles para un bloque de datos interesado en ser escrito en el caché 27 y su estado dentro del caché. Como entenderá un experto en la materia, el número de estados puede ser menor o mayor.
En particular los estados según la realización preferida son:
-
caso 1): si un bloque de datos con la dirección solicitada no está presente en el caché 27 (etapa 153), entonces se utiliza una localización de caché nueva disponible para dicho cliente y el bloque de datos se escribe en dicha nueva localización (etapa 161);
-
caso 2): si un bloque de datos con la dirección solicitada ya está presente en el caché 27 (etapa 153) y no está "bajo desfasamiento", entonces el nuevo bloque de datos reemplaza el antiguo existente (etapa 157);
-
caso 3): si un bloque de datos con la dirección solicitada ya está presente en el caché 27 (etapa 153) pero está "bajo desfasamiento" (etapa 155), es decir, que el sistema todavía está esperando la señal de acuse de recibo por parte del Centro de Reposición de Datos RDC, y un segundo bloque de datos con la misma dirección no está presente en el caché 27 (etapa 159), entonces el bloque de datos se escribe en una nueva localización de caché (etapa 161);
-
caso 4): si dos bloques de datos con la dirección solicitada están presentes en el caché (uno de ellos "bajo desfasamiento" y el otros no), entonces el nuevo bloque reemplaza el existente (etapa 157) que no está "bajo desfasamiento".
En cualquier caso, después de que la grabación del bloque de datos se ha completado, el proceso de escritura señala la operación satisfactoria al filtro de comandos de entrada y salida (módulo 22 en la figura 2) que a su vez devuelve al software de replicación automática en el PDC la señal ACK requerida por el protocolo de entrada y salida utilizado actualmente.
Si el bloque de datos no se puede grabar en el caché por cualquier motivo (p. ej., el caché no tiene capacidad libre), el ACK no se devuelve, bloqueando el envío de comandos de escritura adicionales por parte del PDC, evitando así que el caché se llene mas allá de su capacidad total y que los bloques de datos se pierdan.
La figura 5C muestra cómo el proceso implementado en el software de control del caché 27a de la figura 2 gestiona los comandos de lectura emitidos por el software de replicación automática al disco remoto en el RDC y llegando por tanto al dispositivo 13 de la figura 1. Aunque es posible leer datos desde el caché 27, es necesario destacar que el caché preferentemente no tiene la tarea de reemplazar el RDC.
Dentro del dispositivo 13, los comandos de lectura emitidos por el software de replicación automática 14 son interceptados por el bloque 22 de la figura 2 y analizados por el proceso descrito en la figura 5C.
La gestión de los procesos de lectura se centra en garantizar que en todo momento la aplicación de software, ejecutándose en el sistema de procesamiento 10 de la figura 1, recibe los datos actualizados en el caso de que los datos actualizados estén el caché 27 (bajo la fase de desfasamiento o no) o bien en el caso de que los datos estén solo en el RDC.
Después de que un comando LECTURA ha sido interceptado por el caché (etapa 201), se identifican los parámetros relevantes de la operación de entrada y salida (p. ej., la dirección de la localización de la memoria) (etapa 202).
Según la realización preferida, se proporcionan cuatro estados posibles para un bloque de datos interesado en ser leído. Como entenderá un experto, el número de estados puede ser menor o mayor.
En particular:
-
caso 1): Si un bloque de datos con la dirección solicitada no está presente en el caché 37 (etapa 203), entonces la operación de lectura se reenvía al RDC a través de los módulos 23-26 de la figura 2;
-
caso 2): si un bloque de datos con la dirección solicitada está presente en el caché (etapa 203) y no está "bajo desfasamiento" (etapa 205), entonces el bloque de datos se lee desde el caché y los datos se devuelven al PDC (etapa 207);
-
caso 3): si un bloque de datos con la dirección solicitada está presente en el caché (etapa 203) pero está "bajo desfasamiento" (etapa 205), es decir, que el sistema todavía está esperando la señal de acuse de recibo por parte del RDC, y un segundo bloque de datos con la misma dirección no está presente en el caché 27 (etapa 150), entonces la operación de lectura devuelve el contenido de datos del bloque de datos "bajo desfasamiento" (etapa 211);
-
caso 4): si dos bloques de datos con la dirección solicitada están presentes en el caché (uno de ellos "bajo desfasamiento" y el otro no), entonces se devuelve el contenido de datos del bloque de datos que no está "bajo desfasamiento" (etapa 207).
La recuperación de la fase de acontecimiento de fallo se describe ahora en referencia a la figura 6.
La figura 6 muestra posibles estados de fallo y algunos acontecimientos que se pueden adoptar en consecuencia. En particular, desde el estado inicial de operación normal (bloque 251), se pueden prever al menos dos categorías de anomalías:
a)
un fallo de conexión entre el cliente y el dispositivo de reposición de datos temporales 13 o un fallo del propio dispositivo 13 (bloque 253), por lo que es imposible escribir en el caché 27 de la figura 2 del sitio intermedio;
b)
un fallo de conexión entre el dispositivo 13 y el Centro de Recuperación de Datos RDC o fallo del propio RDC, por lo que es imposible acceder al RDC.
El caso a) se explica en detalle en la rama izquierda del diagrama de flujo de la figura 6. Alternativamente, es posible:
-
interrumpir la replicación automática del disco, en caso de que sea absolutamente necesario una transferencia según la invención (etapa 257);
-
almacenar datos temporalmente en el disco local del centro de datos primario (etapa 265) y completar la transferencia del bloque de datos a caché 27, y consecuentemente al RDC, una vez que la conexión se ha restablecido (etapa 267);
-
evitar el caché no disponible y realizar una replicación automática asíncrona directamente con el RDC.
El caso b) se explica en detalle en la rama derecha del diagrama de flujo te la figura 6. Es posible que:
-
si el caché tiene una capacidad de almacenamiento suficiente y se estima que la indisponibilidad es bastante corta en tiempo, no hacer ninguna operación (etapa 261) y continuar almacenando las transacciones en el caché mientras que se espera al restablecimiento de la conexión para alinear el disco en el RDC utilizando el proceso de desfasamiento de la figura 5A.
-
como alternativa, copiar los datos presentes en el caché a un sitio alternativo (etapa 263) para no saturar el caché si la indisponibilidad es bastante larga en tiempo.
De nuevo en referencia a la figura 3, donde el SCSI es el protocolo de gestión del almacenamiento y el iSCSI es el protocolo para almacenar remotamente datos en la sección PDC-dispositivo 13 y en la sección dispositivo 13-RDC, cuando un cliente desear utilizar el dispositivo 13, recibe durante la fase de puesta en marcha la imagen de un volumen lógico en el LVM a la que puede acceder a través del protocolo iSCSI.
A dicho volumen, que es la imagen lógica basada en las particiones físicas existentes en el RDC, se asociará un LUN (Número de Unidad Lógico, del inglés, Logical Unit Number) específico según la tecnología SCSI que utilizará la aplicación cliente para acceder al mismo. En este punto la aplicación cliente, como se muestra en la figura 1, interactúa con el dispositivo 13 a través del software de replicación automática 14, puede acceder a través del protocolo iSCSI/SCSI a un volumen remoto en el RDC. En este punto, para que la aplicación pueda utilizar el volumen remoto a través del dispositivo 13 como una imagen síncrona de un disco de volumen local en el PDC, es preferible que:
-
se transfiera una copia consistente del disco en volumen local al sitio remoto (primera sincronización);
-
un área de almacenamiento esté reservada en el caché 27 del dispositivo 13 para el LUN de la aplicación cliente;
-
dicha área de almacenamiento haga referencia a los datos de configuración (conjunto de direcciones, tamaño del volumen, tamaño del bloque, etcétera) que describen las características de dicho volumen LUN y está almacenada en una base de datos interna 27b del módulo del sistema caché 27;
-
se permita dentro del módulo 22 un proceso de filtración de los comandos SCSI emitidos por el software de replicación automática del cliente de modo que algunos de estos comandos se reenvían, a través de la cadena de módulo 23-26, hacia el Centro de Recuperación de Datos, mientras que algunos otros comandos son interceptados y reenviados al módulo de sistema caché 27;
-
el software de control del caché 27a es informado sobre que se ha permitido a un cliente nuevo y que se ha asignado un área de almacenamiento concreta y un descriptor LUN dentro del módulo del sistema caché 27 a dicho cliente.
En particular, la operación de escritura desde el PDC al RDC mediante la utilización del protocolo SCSI se puede expresar en cuatro etapas:
a)
el dispositivo iniciador envía una petición de escritura al dispositivo de destino para escribir un número N de bloques de datos;
b)
el dispositivo de destino envía una señal de acuse de recibo al dispositivo iniciador;
c)
tras recibir la señal de acuse de recibo, el iniciador envía N bloques de datos;
d)
el dispositivo de destino reconoce la escritura satisfactoria de los N bloques de datos.
Las tareas b) y d) debe realizarlas el dispositivo de destino SCSI modificado 22. Más en particular:
-
el módulo de destino SCSI modificado 22 recibe de la aplicación de replicación automática (y el iniciador SCSI unido al mismo) en el Centro de Datos Primario una petición de escritura para escribir un cierto número N de bloques de datos;
-
el módulo 22 intercepta el comando de escritura y, siendo una operación de escritura, reconoce que dicho comando es uno de los que conciernen al sistema caché 27: por tanto se verifica si el sistema caché es capaz de almacenar dichos bloques de datos; en caso positivo, el módulo 22 responde enviando un mensaje de petición de datos según el estándar SCSI a la aplicación de replicación automática;
-
la aplicación de replicación automática envía los N bloques de datos;
-
el módulo 22 recupera la dirección de destino de dichos bloques de datos y los desvía al área de almacenamiento del caché 27 dedicada al cliente que está enviando los datos: más en particular el módulo 22 puede extraer del bloque SCSI y almacenar en el caché según lo que se ha indicado previamente el contenido de datos, la dirección dentro del volumen y la información significativa de la cabecera (DPO (Disable Page Output), FUA (Forzar Acceso a la Unidad, del inglés, Force Unit Access), etcétera) del comando de escritura del protocolo SCSI;
-
El software caché 27a se encarga de llevar a cabo el proceso de desfasamiento y de reenviar la petición de escritura al RDC como ya se ha descrito.
Del mismo modo, el comando de lectura también debe ser interceptado por el caché 27, porque en caso negativo sería posible leer desde el RDC un elemento de datos no actualizado porque todavía está presente en el caché 27.
Por tanto, cuando una petición de lectura alcanza el módulo 22, el módulo 22 a través del software de gestión del caché 27a lleva a cabo un control para comprobar si el bloque está presente o no en el caché según los procedimientos descritos en la figura 5C.
Como ya se ha explicado previamente, es necesario que el tamaño del caché no sea grande; de lo contrario, una ventaja de la presente invención es que se puede mantener significativamente pequeño. La siguiente descripción explicará cómo estimar el tamaño del caché necesario a asignar a un cliente/aplicación cuando se utilizan parámetros de red típicos.
Esta estimación está basada en el supuesto de que el dispositivo 13 opera en un estado de equilibrio entre la llegada de nuevos bloques de datos desde el PDC, uno o más, y su reenvío al RDC (desfasamiento). Este estado de equilibrio está garantizado por los procesos de escritura y desfasamiento descritos previamente. Por tanto esta estimación es una herramienta útil para planificar y dimensionar el dispositivo 13 pero no es una condición necesaria para su funcionamiento estable.
Si un bloque de datos en tránsito entre el caché 27 y el Centro de Recuperación de Datos RDC no está perdido o corrupto, permanece dentro del caché 27 durante un intervalo de tiempo determinado por el tiempo de serialización sumado al tiempo de ida y vuelta entre el caché y el RDC, es decir, el intervalo de tiempo necesario para recibir una señal de acuse de recibo desde el RDC. Tras haber recibido dicha señal de acuse de recibo, el bloque de datos se puede borrar del caché 27, ya que se ha almacenado satisfactoriamente en el RDC.
La estimación del número medio de bloques de datos presentes en el caché para una sola aplicación/cliente (como consecuencia de las operaciones de escritura del PDC) se puede determinar, por ejemplo, como
1
donde los corchetes indican que el resultado se tiene que redondear al número entero superior (el número de los distintos parámetros en esta fórmula se define a continuación). Esta estimación del número medio de bloques N_{CACHED}, incrementada en una margen adecuado para tener en cuenta fluctuaciones de los valores de los parámetros, se puede utilizar para dimensionar la memoria caché el dispositivo 13 habiendo definido el tamaño el bloque de datos sencillo. La fórmula anterior para N_{CACHED} incluye 3 sumas:
-
La primera suma, [(TRT2+TS)/(1/R)], representa el número de bloques que llegan al caché y se puede determinar como la función del tiempo de serialización (Ts), el tiempo de ida y vuelta (TRT2) de la parte de la red entre el dispositivo 13 y el RDC, y 1/R que representa el tiempo entre llegadas medio entre dos bloques de datos consecutivos;
-
La segunda suma, [TMAX/(1/R)], representa el número de bloques "bajo desfasamiento" que por alguna razón no han alcanzado el RDC dentro de un límite de tiempo específico (tiempo de espera). Se puede determinar como una función de T_{MAX}, que representa el intervalo de tiempo transcurrido entre la recepción por parte del dispositivo 13 del primer bloque de datos que resultará estar perdido, y el tiempo de espera del último bloque por el que el dispositivo 13 gestiona un acontecimiento de tiempo de espera. T_{MAX} se puede determinar, por ejemplo, como
2
donde T_{OUT} es un parámetro configurable que representa el intervalo de tiempo de espera para un solo bloque enviado desde el dispositivo 13 al RDC, y N_{MAX} es un parámetro configurable que representa el número máximo de bloques para los que el dispositivo 13 gestiona un acontecimiento de tiempo de espera.
managed by the device 13;
-
La tercera suma, [TRT1/(1/R)], representa el número de bloques enviados por el cliente al caché antes de que el caché informe al cliente de que el servicio de replicación automática del disco está temporalmente fuera de servicio, siendo TRT1 el tiempo de ida y vuelta de la parte de la red entre el PDC y el dispositivo 13. Experimentos del solicitante han demostrado que la aplicación de una formula del tipo indicado anteriormente tiene como resultado que el tamaño de la memoria caché está en el rango de entre pocos cientos de kB a pocos Mb para cada cliente/aplicación capaz de producir algunas decenas de transacciones por segundo. Por tanto, al aplicar la arquitectura de la presente invención, no es necesario replicar en el sitio intermedio todo el conjunto de datos presentes en el PDC, uno o más y, de forma contraria a la arquitectura de múltiples saltos, es posible reducir el almacenamiento del disco y los correspondientes costes de mantenimiento y personal.
Una posible mejora que implica los módulos 27, 27a, 27b consiste en individualizar las zonas del almacenamiento del disco, localizadas en el sitio intermedio y asociadas a la aplicación cliente, con accesos particularmente frecuentes (conocidas como zonas "hot") para tratarlas de forma diferente respecto a las zonas menos accedidas; por ejemplo, las zonas "hot" se pueden transferir al RDC solo cuando están en un estado estable y no continuo, permitiendo por tanto un ahorro de ancho de banda considerable en la sección de red entre el dispositivo 13 y el RDC: En referencia a la figura 7, se explicará ahora cómo un Proveedor de Servicios (SP) puede aprovechar la presente invención. Más en particular, se debe remarcar que la presente invención permite a un SP aumentar el número de áreas donde puede ofrecer un servicio de replicación automática síncrono y limitar simultáneamente el número de RDCs.
Según el escenario anterior, el SP proporciona un sitio que contiene un dispositivo 13 en cada área metropolitana y uno o más RDCs 12 en un área geográfica lejos de dichas áreas metropolitanas. El dispositivo 13, como puede ser evidente para una persona experta, no es necesario que sea un dispositivo autónomo, sino que puede estar integrado en aparatos de red.
La figura 8 muestra el uso de la invención en un escenario de desastre/recuperación, y en particular las operaciones a realizar cuando una situación en la que el disco del cliente sufre un fallo (etapa 301) y se activa el proceso de recuperación real. El proceso de recuperación puede ocurrir de diferentes maneras, pero todas tienen que estar precedidas de la realineación del disco RDC (etapas 303 y 305) con los datos todavía almacenados en el caché (desfasamiento). La actualización se puede producir a través de un proceso de "marcado" (etapa 305) de los datos del cliente que necesitan un proceso de recuperación de modo que tiene prioridad respecto a los datos de otros clientes, o dejando que el sitio intermedio ignore la existencia de una situación de fallo de modo que puede continuar con la actividad de transferencia normal al RDC.
Las principales alternativas para restablecer los datos y las aplicaciones del cliente son:
-
mediante el aprovechamiento de datos disponibles tras la desfasamiento al RDC, es posible restaurar la aplicación cliente en el RDC (aproximación desastre/recuperación clásica) (307);
-
restauración de los datos del cliente en un disco nuevo en el PDC a partir de la réplica en el RDC, proporcionando posiblemente la activación de una conexión alternativa a una velocidad de bits alta;
-
permitir temporalmente el acceso a los datos RDC como un disco primario.
Tras el estado de desastre/recuperación, el PDC del cliente es reparado (309) y la replicación de replicación automática síncrona se puede iniciar de nuevo comenzando con una nueva fase de establecimiento (311) para el cliente afectado del fallo.
La invención también permite entablar un servicio de red original para apoyar un servicio de replicación de datos síncrono. El perfil de un posible cliente del servicio de red es esencialmente el de un sujeto que intenta replicar síncronamente información de un primer sitio a un segundo sitio localizado a una distancia considerable (cientos de kilómetros) del primero, no teniendo dicho sujeto la disponibilidad de sitios localizados a una distancia intermedia entre el primer y el segundo sitio o no deseando gestionar aparatos de almacenamiento intermedios.
Un cliente con dichas necesidades puede ser una empresa ("cliente al por menor") que desea proteger sus propios datos utilizando una técnica de replicación automática síncrona o un Proveedor de Servicios SP ("clientes al por mayor") que intenta ofrecer servicios de recuperación de desastre y/o continuidad de negocio a sus clientes finales.
Dicho servicio de red particular se puede definir como "aceleración de replicación automática síncrona a larga distancia". De hecho, a través de dicho servicio y gracias a la señal de acuse de recibo devuelta por el dispositivo 13, desde el punto de vista de la aplicación cliente, la replicación síncrona entre la copia local del elemento de datos y su copia remota se produce como si la distancia entre los dos sitios fuera más corta que la distancia real.
Esto permite llevar a cabo una replicación automática síncrona, que implica bloquear la producción de datos hasta que se recibe la señal de acuse de recibo de escritura satisfactoria del elemento de datos previo, sin que la distancia real entre los dos sitios pueda afectar al tiempo durante el que la aplicación está bloqueada esperando una señal de acuse de recibo y por tanto a su rendimiento.
Dicho servicio es completamente transparente para el cliente, lo que significa que el cliente no modificará su sistema y su forma de funcionar respecto a una configuración clásica de replicación automática síncrona.
La arquitectura de servicio se ilustra en la figura 9 donde en el PDC y en el RDC se almacenan dos copias de los datos. Estos dos sitios están administrados por el cliente final y/o el SP, y no por el portador que ofrece el servicio de aceleración. La figura 9 destaca los límites del servicio de aceleración y los elementos bajo la administración del portador, es decir, las infraestructuras de red, p. ej., la Red de Área Metropolitana o MAN (del inglés, Metropolitan Area Network, y la Red de Área Amplia o WAN (del inglés, Wide Area Network), y el dispositivo localizado en el sitio intermedio (por ejemplo un intercambio metropolitano del portador).
Las figuras 9 y 10 también destacan los rasgos principales del servicio, en particular:
-
L1 y L2 individualizan dos áreas protegidas frente a desastres. Para acontecimientos con una extensión inferior a L1 (área de desastre A1), es decir, acontecimientos que no interesan al dispositivo 13, el servicio garantiza un RPO igual a una transacción, para desastres con una extensión inferior a L2 (área de desastre A2) y mayor que L1, el servicio proporciona que los datos posiblemente perdidos son como mucho aquellos que estaban en tránsito por parte del dispositivo 13 cuando se produjo el desastre, dependiendo de la política de desfasamiento caché;
-
T1 y T2 definen respectivamente el intervalo de tiempo máximo durante el que se produce el acuse de recibo de la escritura y también el intervalo de tiempo máximo dentro del que se completa la copia del elemento de datos en el RDC.
\vskip1.000000\baselineskip
Sobre la base de los cuatro parámetros L1, L2, T1, T2, se define el Acuerdo de Nivel de Servicio SLA (del inglés, Service Level Agreement) del servicio con el cliente. En particular, se debe remarcar que en el caso de que el desastre afecte al área de desastre A2, el número de transacciones perdidas es igual a aquellas producidas por la aplicación cliente durante el intervalo de tiempo máximo T2.
En resumen, el servicio ofrece:
-
acuse de recibo del comando de copia remota dentro de un límite de tiempo fijo T1 inferior al tiempo característico de una técnica de replicación automática síncrona tradicional, p. ej., T1<0,5 ms:
-
distancia L2 de la copia remota incluso mayor que la distancia máxima permitida en caso de técnica de replicación automática síncrona local o proximal, p. ej., L2>>50 km;
-
copia del elemento de datos disponible en el disco remoto dentro de un intervalo de tiempo máximo T2 que, según el ancho de banda asignado en la Red de Área Amplia WAN y la política de desfasamiento, puede estar representada muy cerca del tiempo de propagación total para cubrir la distancia L2:
-
garantía de pérdida como máximo de una transacción para desastres con un rango inferior a L1 y de pérdida como máximo de las transacciones producidas durante el intervalo de tiempo T2 para fallos en el rango L1<R<L2.
\vskip1.000000\baselineskip
La figura 1 ilustra el servicio de aceleración descrito en modalidad al por mayor por un portador. Los rasgos principales son:
-
desplazamiento de los dispositivos 13 en las Redes del Área Metropolitana MAN en intercambios que posee el portador;
-
el portador ofrece el servicio a distintos Proveedores de Servicio SP que a su vez ofrecen un servicio de recuperación de desastre a sus clientes finales; en la figura 10 los SPs y sus respectivos clientes están identificados por el mismo sombreado en el interior de las cajas.
-
los límites del servicio ofrecido por el portador (línea discontinua) se extienden desde el límite del sitio del proveedor hasta el sitio del cliente final.
\vskip1.000000\baselineskip
La presente invención resolverá ahora el problema del límite de distancia en la replicación de datos de replicación automática síncrona entre el PDC y el RDC, mediante la inserción de un sitio intermedio de almacenamiento a una distancia del PDC que garantice la sincronía para la mayoría de aplicaciones y, por otra parte, mediante la colocación del RDC a bastante distancia del PDC, para minimizar el riesgo de doble fallo (dañando el PDC y el PDC, y aumentando así la disponibilidad de la información almacenada.
Aunque la presente invención se ha ilustrado en referencia a realizaciones realmente preferidas, está generalmente sujeta a otras aplicaciones y modificaciones que están dentro del ámbito de la invención, como será evidente para los expertos en la técnica.
El escenario de recuperación de desastre es solo un ejemplo de los posibles usos y finalidades de la invención. Cabe destacar que la invención per se realiza una copia, de forma síncrona respecto a la aplicación cliente, de un determinado volumen de datos presente en el primer sitio a un segundo sitio que puede estar geográficamente muy lejos del primero. Otros modelos de servicio, distintos a los que proporcionan la recuperación y/o el uso de datos almacenados remotamente, podrían hacer uso de esta funcionalidad.
\vskip1.000000\baselineskip
Referencias citadas en la descripción
Esta lista de referencias citadas por el solicitante está prevista únicamente para ayudar al lector y no forma parte del documento de patente europea. Aunque se ha puesto el máximo cuidado en su realización, no se pueden excluir errores u omisiones y la OEP declina cualquier responsabilidad en este respecto.
Documentos de patente citados en la descripción
\bullet WO 02069159 A [0018]
\bullet US 20040034808 A [0019]
\bullet US 6148383 A [0020]
\bullet EP 0670551 A [0021]
Documentos que no son patentes citados en la descripción
\bullet TBM and Cisco: Metro Optical Solution for Business Continuity and Storage Networking, August 2003 [0012]
\bullet EMC and Cisco Metro Optical Storage Networking Solution, 27 June 2001 [0012]
\bullet Asynchronous Cascading Implementations, TIPS0310. IBM Redbook. Hints & Tips, 15 October 2003 [0015]
\bullet Remote Mirroring of Business Critical Information. EMC, 10 June 2002 [0015]
\bullet Heterogeneous Midrange Storage with Local Mirroring and Remote IP Replication. Falconstore, 10 December 2002 [0018]

Claims (23)

1. Un sistema para actualizar un conjunto de datos a través de una red de comunicaciones, estando dicho conjunto de datos almacenado en una unidad de almacenamiento de recuperación (12) localizada en un centro de recuperación de datos (RDC) y que tiene que actualizarse con bloques de datos entrantes generados por al menos un sistema de procesamiento (10) asociado a un centro de datos primario (PDC), que comprende
-
un dispositivo (13) interpuesto entre dicho centro de datos primario (PDC) y dicho centro de recuperación de datos (RDC) a través de dicha red de comunicaciones y asociado a un área de almacenamiento temporal (27) para escribir temporalmente en localizaciones de almacenamiento correspondientes los bloques de datos entrantes generados por dicho sistema de procesamiento (10) y para reenviar dichos bloques de datos a dicho centro de recuperación de datos (RDC) donde dicho dispositivo (13) comprende módulos aptos para
-
enviar una primera señal de acuse de recibo (3) a dicho centro de datos primario (PDC) acusando recibo de la escritura satisfactoria en dicha área de almacenamiento temporal (27) de dichos bloques de datos tan pronto como dichos bloques de datos es escriben en dicha área de almacenamiento temporal (27),
-
recibir y gestionar una segunda señal de reconocimiento (6) enviada por dicho centro de recuperación de datos (RDC) acusando recibo de la actualización satisfactoria de dicho conjunto de datos tras el reenvío de dichos bloques de datos, y
-
poner a la disposición de nuevos bloques de datos entrantes las localizaciones de dicha área de almacenamiento temporal (27) tras la recepción de dicha segunda señal de acuse de recibo (6),
caracterizado por el hecho de que dicho dispositivo también comprende módulos aptos para escribir dichos bloques de datos en dicha área de almacenamiento temporal (27) en direcciones solicitadas por dicho centro de datos primario (PDC) como se detalla a continuación:
-
si los bloques de datos en la dirección solicitada no están escritos en el área de almacenamiento temporal (27), escribir dichos bloques de datos en dicha área de almacenamiento temporal (27);
-
si los bloques de datos en la dirección solicitada ya están escritos en el área de almacenamiento temporal (27), pero dichos bloques de datos no se han reenviado, escribir dichos bloques de datos en dicha área de almacenamiento temporal (27) mediante el reemplazo de los anteriores a dichos bloques de datos;
-
si los bloques de datos en la dirección solicitada ya están escritos en el área de almacenamiento temporal (27), se han reenviado y el acuse de recibo de dicho centro de recuperación de datos (RDC) no se ha recibido, escribir dichos bloques de datos en una nueva localización en dicha área de almacenamiento temporal (27).
\vskip1.000000\baselineskip
2. Un sistema según la reivindicación 1, donde dicho sistema de procesamiento (10) está asociado a una unidad de almacenamiento primario (11) donde se almacena una copia de dichos datos.
3. Un sistema según la reivindicación 2, donde dicha área de almacenamiento temporal (27) tiene una capacidad de almacenamiento inferior a la capacidad de almacenamiento de tanto dicha unidad de almacenamiento primaria (11) como de dicha unidad de almacenamiento de recuperación (12).
4. Un sistema según la reivindicación 1, donde la distancia entre dicho dispositivo (13) y dicho centro de datos primarios (PDC) es inferior a la distancia entre dicho dispositivo (13) y dicho centro de recuperación de datos
(RDC).
5. Un sistema según la reivindicación 1, donde dicha red de comunicaciones comprende al menos un protocolo seleccionado de un grupo que consiste en un protocolo tipo iSCSI y un protocolo tipo Canal de Fibra.
\vskip1.000000\baselineskip
6. Un sistema según la reivindicación 1, donde dicho dispositivo (13) comprende:
-
módulos de interfaz (20, 26) para interrelacionar dicho dispositivo (13) con dicho centro de datos primario (PDC) y con dicho centro de recuperación de datos (RDC) respectivamente;
-
un módulo de filtro (22) para interceptar comandos de entrada y salida enviados por dicho centro de datos primarios (PDC) y para enviar selectivamente dichos comandos a dicha área de almacenamiento temporal 827) para almacenar dichos bloques de datos temporalmente o bien en dicho centro de recuperación de datos (RDC);
\global\parskip0.950000\baselineskip
-
un módulo de control (24, 25) para recibir dichos bloques de datos con sus parámetros de dirección relativos desde dicho centro de datos primario (PDC), encapsulando dichos bloques de datos dentro de comandos reservados para la gestión de dicha unidad de almacenamiento de recuperación (12) y reenviarlos a dicho centro de recuperación de datos (RDC).
\vskip1.000000\baselineskip
7. Un sistema según la reivindicación 1, donde dicho dispositivo (13) comprende:
-
una Tarjeta de Interfaz de Red (NIC);
-
un dispositivo de destino iCSCI (21) dispuesto por debajo de dicha Tarjeta de Interfaz de Red (NIC);
-
un dispositivo de destino SCSI modificado (22), dispuesto por debajo de dicho dispositivo de destino iCSCI (21);
-
un sistema caché (27) asociado a dicho dispositivo de destino SCSI modificado (22);
-
un dispositivo de Administrador de Volúmenes Lógicos o LVM (23), dispuesto por debajo de dicho dispositivo de destino SCSI modificado (22);
-
un subsistema SCSI nativo (24), dispuesto por debajo de dicho dispositivo de Administrador de Volúmenes Lógicos (23);
-
un dispositivo iniciador iSCSI (25), dispuesto por debajo de dicho subsistema SCSI (24);
-
otra Tarjeta de Interfaz de Red (NIC) hacia dicho centro de recuperación de datos (12).
\vskip1.000000\baselineskip
8. Un sistema según la reivindicación 6, caracterizado por el hecho de que dicho dispositivo (13) comprende:
-
un Adaptador de Bus Host (HBA) hacia dicho centro de datos primario (PDC);
-
un dispositivo de destino SCSI modificado (22), dispuesto por debajo de dicho Adaptador de Bus Host (HBA);
-
un sistema caché (27), asociado a dicho dispositivo de destino SCSI modificado (22);
-
un dispositivo de Administrador de Volúmenes Lógicos o LVM (23), dispuesto por debajo de dicho dispositivo de destino SCSI modificado (22);
-
un subsistema SCSI (24), dispuesto por debajo de dicho dispositivo de Administrador de Volúmenes Lógicos (23) y
-
otro Adaptador de Bus Host (HBA) hacia dicha unidad de almacenamiento de recuperación (12).
\vskip1.000000\baselineskip
9. Un dispositivo según la reivindicación 7 u 8, donde dicho dispositivo LVM es reemplazado por un dispositivo de virtualización de software.
10. Un sistema según cualquiera de las reivindicaciones anteriores, donde dicho dispositivo (13) para almacenar temporalmente dichos bloques de datos está compuesto de un dispositivo de red asociado a dicha red de comunicaciones.
11. Un sistema según cualquiera de las reivindicaciones anteriores, donde dichas unidades de almacenamiento (11, 12) son unidades de almacenamiento en disco.
12. Un sistema según cualquiera de las reivindicaciones anteriores, donde dicha área de almacenamiento temporal (27) comprende una pluralidad de áreas de almacenamiento dedicadas respectivamente a una pluralidad de sistemas de procesamiento (10) y/o a una pluralidad de centros de datos primarios (PDC).
13. Un procedimiento para actualizar un conjunto de datos a través de una red de comunicaciones, estando dicho conjunto de datos almacenado en una unidad de almacenamiento de recuperación (12) localizada en un centro de recuperación de datos (RDC) y que tiene que actualizarse con bloques de datos entrantes generados por al menos un sistema de procesamiento (10) asociado a un centro de datos primario (PDC), que comprende las etapas de:
-
escribir temporalmente a través de dicha red de comunicaciones los bloques de datos entrantes generados por dicho sistema de procesamiento (10) en localizaciones de almacenamiento correspondientes de un área de almacenamiento temporal (27) asociada a un dispositivo (13) interpuesto entre dicho centro de datos primario (PDC) y dicho centro de recuperación de datos (RDC);
\global\parskip1.000000\baselineskip
-
proporcionar por parte de dicho dispositivo (13) y a través de dicha red de comunicaciones una primera señal de acuse de recibo síncrona (3) a dicho centro de datos primario (PDC) acusando recibo de la escritura satisfactoria en dicha área de almacenamiento temporal (27) de dichos bloques de datos tan pronto como dichos bloques de datos es escriben en dicha área de almacenamiento (27);
-
reenvío por parte de dicho dispositivo y a través de dicha red de comunicaciones dichos bloques a dicho centro de recuperación de datos (RDC);
-
recepción y gestión por parte de dicho dispositivo y a través de dicha red de comunicaciones de una segunda señal de acuse de recibo (6) que acusa recibo de la actualización satisfactoria de dicho conjunto de datos en dicho centro de recuperación de datos (RDC); y
-
poner a la disposición de nuevos bloques de datos entrantes las localizaciones de dicha área de almacenamiento temporal (27) tras la recepción de dicha segunda señal de acuse de recibo (6),
caracterizado por el hecho de que la etapa de escribir temporalmente los bloques de datos entrantes en dicho dispositivo (13) comprende las etapas de:
-
escribir los bloques de datos en dicha área de almacenamiento temporal (27), si los bloques de datos en la dirección solicitada no están escritos en el área de almacenamiento temporal (27);
-
escribir dichos bloques de datos en dicha área de almacenamiento temporal (27), mediante el reemplazo de los anteriores a dichos bloques de datos, si los bloques de datos en la dirección solicitada ya están escritos en el área de almacenamiento temporal (27), pero dichos bloques de datos no se han reenviado;
-
escribir dichos bloques de datos en una nueva localización en dicha área de almacenamiento temporal (27), si los bloques de datos en la dirección solicitada ya están escritos en el área de almacenamiento temporal (27) se han reenviado y no se ha recibido la señal de acuse de recibo desde dicho centro de recuperación de datos (RDC).
14. Procedimiento según la reivindicación 13, comprendiendo la etapa de
-
almacenar dicho conjunto de datos en una unidad de almacenamiento primaria (11) asociada a dicho sistema de procesamiento (10).
15. Procedimiento según la reivindicación 13 donde la etapa de escribir temporalmente los bloques de datos entrantes en dicha área de almacenamiento (27) comprende la etapa adicional de:
-
escribir mediante el reemplazo de los bloques de datos que todavía no se han reenviado, si los bloques de datos en la dirección solicitada están almacenados dos veces en dicha área de almacenamiento (27).
16. Procedimiento según la reivindicación 13, donde dicha etapa de reenviar dichos bloques de datos desde dicho dispositivo (13) a dicho centro de recuperación de datos (RDC) comprende las etapas de:
-
interrogar dicha área de almacenamiento (27) asociada a dicho dispositivo (13) para comprobar si hay bloques de datos a reenviar a dicho centro de recuperación de datos (RDC);
-
enviar a dicho centro de recuperación de datos (RDC) los bloques de datos a reenviar y comenzar simultáneamente un temporizador con un retardo de tiempo de espera predeterminado; y donde la etapa de recibir y gestionar dicha segunda señal de acuse de recibo comprende la etapa de
-
comprobar si ha transcurrido dicho retardo de tiempo de espera;
-
incrementar un contador representativo de los bloques de datos perdidos si dicho tiempo de espera ha transcurrido; y
-
enviar una alerta al centro de datos primario (PDC) para bloquear cualquier otra transmisión de bloques de datos a dicho dispositivo (13) si dicho contador de bloques de datos perdidos ha alcanzado un valor predeterminado.
17. Procedimiento según la reivindicación 16, donde la etapa de recibir y gestionar dicha segunda señal de acuse de recibo comprende la etapa de gestionar una señal de acuse de recibo negativa (NACK) indicando que dichos bloques de datos han llegado al centro de recuperación de datos (RDC) pero corruptos.
18. Procedimiento según la reivindicación 16, donde dicho retardo de tiempo de espera está establecido a un valor mayor que el tiempo de ida y vuelta para el envío de un bloque de datos desde dicho dispositivo (13) y la recepción por parte de dicha unidad de almacenamiento (12).
19. Procedimiento según la reivindicación 13, donde se proporciona un proceso para recuperar bloques de datos hacia el centro de datos primario (PDC) caracterizado por el hecho de que también comprende las etapas de:
-
solicitar bloques de datos recuperados por dicho dispositivo (13) a dicho centro de recuperación de datos (RDC), si los bloques de datos en la dirección solicitada no están almacenados en dicha área de almacenamiento temporal (27);
-
leer bloques de datos recuperados desde el área de almacenamiento temporal (27), si los bloques de datos en la dirección solicitada están almacenados en dicha área de almacenamiento y no han pasado por la etapa de reenvío al centro de recuperación de datos (RDC);
-
leer bloques de datos recuperados desde el área de almacenamiento temporal (27), si los bloques de datos en la dirección solicitada están almacenados en dicha área de almacenamiento temporal y se han reenviado al centro de recuperación de datos (RDC);
-
recuperación de dichos bloques de datos recuperador por parte del dispositivo (13) hacia dicho centro de datos primario (PDC) a través de al menos una de las etapas anteriores bajo petición de dicho centro de datos primario (PDC).
20. Una red de comunicaciones que comprende un sistema para actualizar un conjunto de datos como Se revindica en las reivindicaciones 1 a 12.
21. Producto de programa informático que se puede cargar en la memoria de al menos un ordenador electrónico que comprende porciones de código de software para implementar el procedimiento como se reivindica en cualquiera de las reivindicaciones 13 a 19.
22. Un procedimiento para proporcionar un servicio de replicación automática síncrono para actualizar un conjunto de datos a través de una red de comunicaciones, comprendiendo dicho procedimiento un procedimiento para actualizar un conjunto de datos según cualquiera de las reivindicaciones 13 a 19.
23. Un procedimiento para proporcionar un servicio de replicación automática síncrono según la reivindicación 22, comprendiendo la etapa adicional de
-
evaluar la prioridad en el proceso de transferencia de dichos bloques de datos respectivos desde dicho dispositivo (13) a través de dicha red de tipo de área amplia (WAN) a dicho centro de recuperación de datos (RDC) respecto a bloques de datos respectivos de otros sistemas clientes en caso de fallo de un sistema cliente (10).
ES04741409T 2004-08-12 2004-08-12 Sistema , procedimiento y dispositivo para actualizar un conjunto de datos a traves de una red de comunicaciones. Active ES2318300T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2004/009047 WO2006015612A1 (en) 2004-08-12 2004-08-12 A system, a method and a device for updating a data set through a communication network

Publications (1)

Publication Number Publication Date
ES2318300T3 true ES2318300T3 (es) 2009-05-01

Family

ID=34958231

Family Applications (1)

Application Number Title Priority Date Filing Date
ES04741409T Active ES2318300T3 (es) 2004-08-12 2004-08-12 Sistema , procedimiento y dispositivo para actualizar un conjunto de datos a traves de una red de comunicaciones.

Country Status (9)

Country Link
US (1) US7987154B2 (es)
EP (1) EP1776638B1 (es)
JP (1) JP4902538B2 (es)
KR (1) KR101200453B1 (es)
CN (1) CN101031889B (es)
AT (1) ATE414949T1 (es)
DE (1) DE602004017913D1 (es)
ES (1) ES2318300T3 (es)
WO (1) WO2006015612A1 (es)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7549080B1 (en) 2002-08-27 2009-06-16 At&T Corp Asymmetric data mirroring
US20080140798A1 (en) * 2006-12-08 2008-06-12 Aten International Co., Ltd. Storage adapter and method thereof
US8234327B2 (en) * 2007-03-30 2012-07-31 Netapp, Inc. System and method for bandwidth optimization in a network storage environment
US8135838B2 (en) 2008-04-08 2012-03-13 Geminare Incorporated System and method for providing data and application continuity in a computer system
US8959182B1 (en) * 2008-04-15 2015-02-17 Crimson Corporation Systems and methods for computer data recovery and destruction
KR101024249B1 (ko) * 2008-05-28 2011-03-29 매크로임팩트 주식회사 실시간 데이터 복제 시스템
US8364636B2 (en) * 2009-09-14 2013-01-29 International Business Machines Corporation Real time data replication
KR101587995B1 (ko) * 2009-10-28 2016-01-22 삼성전자주식회사 적응적 로깅 장치 및 방법
JP5480908B2 (ja) * 2010-01-22 2014-04-23 パナソニック株式会社 電力収集装置、電力計測装置及び電力収集方法
CN101877653A (zh) * 2010-06-29 2010-11-03 中兴通讯股份有限公司 告警变化信息是否丢失的判定方法、系统及主控板
US9223583B2 (en) * 2010-12-17 2015-12-29 Oracle International Corporation Proactive token renewal and management in secure conversations
US9047126B2 (en) * 2011-04-06 2015-06-02 International Business Machines Corporation Continuous availability between sites at unlimited distances
US9058304B2 (en) * 2011-06-30 2015-06-16 International Business Machines Corporation Continuous workload availability between sites at unlimited distances
US9641449B2 (en) * 2012-05-22 2017-05-02 International Business Machines Corporation Variable configurations for workload distribution across multiple sites
CN103678163B (zh) * 2012-09-18 2017-11-10 腾讯科技(深圳)有限公司 数据流的切换方法、装置及系统
US9104607B2 (en) * 2012-10-31 2015-08-11 International Business Machines Corporation Simulation engine for use in disaster recovery virtualization
CN103118073B (zh) * 2013-01-08 2015-07-22 华中科技大学 一种云环境下虚拟机数据持久化存储系统和方法
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
CN107357536B (zh) * 2017-07-28 2020-07-07 郑州云海信息技术有限公司 分布式存储系统数据修改写方法及系统
US11061924B2 (en) * 2017-11-22 2021-07-13 Amazon Technologies, Inc. Multi-region, multi-master replication of database tables
CN113704212A (zh) * 2020-05-22 2021-11-26 深信服科技股份有限公司 服务器的数据同步方法、装置、设备及计算机存储介质
CN111752764A (zh) * 2020-08-31 2020-10-09 湖南康通电子股份有限公司 一种数据分布方法及系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574950A (en) * 1994-03-01 1996-11-12 International Business Machines Corporation Remote data shadowing using a multimode interface to dynamically reconfigure control link-level and communication link-level
US6304980B1 (en) * 1996-03-13 2001-10-16 International Business Machines Corporation Peer-to-peer backup system with failure-triggered device switching honoring reservation of primary device
JPH10207754A (ja) * 1997-01-16 1998-08-07 Fujitsu Ltd 更新系データベースの複製方式
US5933849A (en) * 1997-04-10 1999-08-03 At&T Corp Scalable distributed caching system and method
US6112239A (en) * 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
US6148383A (en) * 1998-07-09 2000-11-14 International Business Machines Corporation Storage system employing universal timer for peer-to-peer asynchronous maintenance of consistent mirrored storage
US6192481B1 (en) * 1998-08-18 2001-02-20 International Business Machines Corporation Structure and method for power sequencing of disk drives in a computer system
KR100523684B1 (ko) * 2000-03-23 2005-10-26 미쓰비시덴키 가부시키가이샤 화상 검색 분배 시스템 및 화상 검색 분배 방법
US20040233910A1 (en) 2001-02-23 2004-11-25 Wen-Shyen Chen Storage area network using a data communication protocol
ATE487185T1 (de) * 2002-03-19 2010-11-15 Network Appliance Inc System und verfahren zur bestimmung und übertragung von änderungen in schnappschüssen
JP4704659B2 (ja) * 2002-04-26 2011-06-15 株式会社日立製作所 記憶装置システムの制御方法および記憶制御装置
US20040006587A1 (en) * 2002-07-02 2004-01-08 Dell Products L.P. Information handling system and method for clustering with internal cross coupled storage
US7134044B2 (en) * 2002-08-16 2006-11-07 International Business Machines Corporation Method, system, and program for providing a mirror copy of data
JP2004086721A (ja) * 2002-08-28 2004-03-18 Nec Corp データ複製システム、中継装置、データ送受信方法およびストレージ内のデータを複製するためのプログラム
JP2004126716A (ja) * 2002-09-30 2004-04-22 Fujitsu Ltd 広域分散ストレージシステムを利用したデータ格納方法、その方法をコンピュータに実現させるプログラム、記録媒体、及び広域分散ストレージシステムにおける制御装置
CN1497458A (zh) * 2002-10-15 2004-05-19 松下电器产业株式会社 网络数据发送系统
US20040146185A1 (en) * 2002-11-14 2004-07-29 Blair Forrest K. Apparatus, system, and method for creating an electronic description of a geographic site
JP2005267609A (ja) * 2004-02-20 2005-09-29 Fuji Photo Film Co Ltd デジタル図鑑システム、図鑑検索方法、及び図鑑検索プログラム
US7395265B2 (en) * 2004-08-27 2008-07-01 Hitachi, Ltd. Data processing system and storage subsystem provided in data processing system

Also Published As

Publication number Publication date
DE602004017913D1 (de) 2009-01-02
JP4902538B2 (ja) 2012-03-21
KR101200453B1 (ko) 2012-11-12
WO2006015612A1 (en) 2006-02-16
ATE414949T1 (de) 2008-12-15
JP2008509489A (ja) 2008-03-27
EP1776638B1 (en) 2008-11-19
CN101031889A (zh) 2007-09-05
US20070255766A1 (en) 2007-11-01
WO2006015612A8 (en) 2006-05-11
EP1776638A1 (en) 2007-04-25
US7987154B2 (en) 2011-07-26
CN101031889B (zh) 2011-06-08
KR20070059095A (ko) 2007-06-11

Similar Documents

Publication Publication Date Title
ES2318300T3 (es) Sistema , procedimiento y dispositivo para actualizar un conjunto de datos a traves de una red de comunicaciones.
US6763436B2 (en) Redundant data storage and data recovery system
CN106407040B (zh) 一种远程数据复制方法及系统
US6363462B1 (en) Storage controller providing automatic retention and deletion of synchronous back-up data
US8244825B2 (en) Remote direct memory access (RDMA) completion
ES2921209T3 (es) Método de réplica de datos y sistema de almacenamiento
US9003145B2 (en) Management server and data migration method
US8233380B2 (en) RDMA QP simplex switchless connection
JP4236049B2 (ja) データのミラー・コピーを提供するための方法、システム、およびプログラム
US7472173B2 (en) Remote data copying among storage systems
US8195770B1 (en) System, method and computer program product for asynchronous mirroring
JP2002526821A (ja) 複数のファイルサーバ間における永続状況情報の調整
JP2005327283A (ja) ミラーリングストレージインタフェース
EP3462299B1 (en) Bidirectional replication
CN100456256C (zh) 远程复制网络系统
JP2006309447A (ja) 記憶システム及びバックアップ方法
US20050039090A1 (en) Non-volatile memory with network fail-over
CN103828331A (zh) 用于提供可靠存储的系统和方法
CN108512753A (zh) 一种集群文件系统中消息传输的方法及装置
US10552060B1 (en) Using replication facility to provide secure host network connectivity wherein a first logical device is used exclusively for sending messages from host to second host
KR20200118798A (ko) 전자 디바이스들, 시스템들 및 방법들
JP2006344090A (ja) Sanディザスタリカバリシステム
KR20060019439A (ko) 데이터베이스 동기화 인터페이스 장치 및 방법
JP4459217B2 (ja) クラスタシステムおよびクラスタシステムのデータ復旧方法
CN117827115A (zh) 基于nas的存储系统及管理方法、装置、设备、介质