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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2071—Error 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/2076—Synchronous techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error 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/2053—Error 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/2056—Error 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/2071—Error 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/2074—Asynchronous techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
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.
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.
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.
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.
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.
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.
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.
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
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
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
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.
\bullet WO 02069159 A [0018]
\bullet US 20040034808 A [0019]
\bullet US 6148383 A [0020]
\bullet EP 0670551 A [0021]
\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).
(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).
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)
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)
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 |
-
2004
- 2004-08-12 KR KR1020077005734A patent/KR101200453B1/ko active IP Right Grant
- 2004-08-12 DE DE602004017913T patent/DE602004017913D1/de active Active
- 2004-08-12 US US11/659,824 patent/US7987154B2/en not_active Expired - Fee Related
- 2004-08-12 JP JP2007525173A patent/JP4902538B2/ja not_active Expired - Fee Related
- 2004-08-12 WO PCT/EP2004/009047 patent/WO2006015612A1/en active Application Filing
- 2004-08-12 ES ES04741409T patent/ES2318300T3/es active Active
- 2004-08-12 AT AT04741409T patent/ATE414949T1/de not_active IP Right Cessation
- 2004-08-12 CN CN2004800441189A patent/CN101031889B/zh not_active Expired - Fee Related
- 2004-08-12 EP EP04741409A patent/EP1776638B1/en not_active Not-in-force
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的存储系统及管理方法、装置、设备、介质 |