ES2715506T3 - Seguimiento de cambios usando redundancia en tiempo lógico - Google Patents

Seguimiento de cambios usando redundancia en tiempo lógico Download PDF

Info

Publication number
ES2715506T3
ES2715506T3 ES15831112T ES15831112T ES2715506T3 ES 2715506 T3 ES2715506 T3 ES 2715506T3 ES 15831112 T ES15831112 T ES 15831112T ES 15831112 T ES15831112 T ES 15831112T ES 2715506 T3 ES2715506 T3 ES 2715506T3
Authority
ES
Spain
Prior art keywords
logical time
storage system
action
writing
redundancy data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES15831112T
Other languages
English (en)
Inventor
John Starks
Angshuman Bezbaruah
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2715506T3 publication Critical patent/ES2715506T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/84Using snapshots, i.e. a logical point-in-time copy of the data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Un método para mantener el seguimiento de cambios entre porciones unitarias de un sistema de almacenaje, comprendiendo el método: para cada porción unitaria en el sistema de almacenaje, asociar (310) un identificador de tiempo lógico a la porción en una estructura identificadora de tiempo lógico; cuando se escriba en una porción de escritura particular que incluye una o más de las porciones unitarias del sistema de almacenaje, llevar a cabo lo siguiente: una acción de calcular (321) datos de redundancia asociados a un grupo de uno o más identificadores de tiempo lógico asociados a las una o más porciones de la porción de escritura; una acción de escribir (322) en la porción de escritura del sistema de almacenaje, y una acción de escribir (323) los datos de redundancia correspondientes a la porción de escritura en la estructura identificadora de tiempo lógico que corresponda a la porción de escritura; una acción de verificar (324) a continuación que los datos de redundancia no son consistentes con el grupo de uno o más identificadores de tiempo lógico, y si los datos de redundancia no son consistentes, asignar (325) un identificador de tiempo lógico actual a cada uno de los identificadores de tiempo lógico en el grupo de uno o más identificadores de tiempo lógico en la estructura identificadora de tiempo lógico, de tal modo que las porciones de escritura inconsistentes sean tratadas como recientemente escritas.

Description

DESCRIPCIÓN
Seguimiento de cambios usando redundancia en tiempo lógico
Antecedentes
Los sistemas de computación y las redes asociadas han revolucionado la manera en que los seres humanos trabajan, juegan y se comunican, preconizando lo que se conoce en la actualidad como “era de la información”. La gestión de datos es por lo tanto un campo importante en los tiempos modernos. Un aspecto de la gestión de datos es el seguimiento de cambios. Por ejemplo, con frecuencia resulta de ayuda estar capacitado para distinguir qué porciones de datos han cambiado entre dos circunstancias en el tiempo.
Como ejemplo, cuando se hace una copia de seguridad de un sistema de almacenaje, se escribe una copia del sistema de almacenaje en un sitio de copia de seguridad. La siguiente vez que se hace copia de seguridad del sistema de almacenaje, en vez de copiar de nuevo el sistema de almacenaje completo, solamente se hace copia de seguridad de un subconjunto del sistema de almacenaje que ha cambiado. Por consiguiente, para realizar esta copia de seguridad incremental, es un requisito previo determinar qué porciones del sistema de almacenaje han cambiado. Además, cuando se recupera un sistema de almacenaje en un tiempo lógico particular (p. ej., durante una recuperación), el seguimiento de los cambios permite que el sistema de recuperación determine qué posiciones de los datos son acordes con el estado del sistema de almacenaje en ese tiempo lógico particular.
El documento US 2013/0067179 se refiere a seguimiento de región sucia de medios no volátiles y presenta técnicas para rastrear escrituras en el conjunto de almacenaje dividiendo el conjunto de almacenaje en regiones y almacenando en el medio de almacenaje no volátil descriptores de regiones sucias que comprenden escrituras en curso. El proceso de recuperación post-fallo puede ser limitado entonces a las regiones identificadas como sucias. El documento US 6.981.114 se refiere a reconstrucción de instantáneas en la que una instantánea borrada de un volumen de datos puede ser reconstruida a partir de una instantánea existente y de uno o más registros de modificación.
El documento US 2010/0274980 describe técnicas para recuperación de sistemas usando seguimiento de cambios, que comprenden identificar una región en un almacenaje electrónico asociado a una petición de escritura recibida, establecer un indicador de región que identifique la región de almacenaje electrónico como sucia, y establecer indicadores de porción que identifiquen porciones sucias de la región de almacenaje electrónico.
Breve compendio
La invención proporciona un método para mantener el seguimiento de cambios entre porciones unitarias de un sistema de almacenaje, junto con un producto de programa informático correspondiente, según se define en las reivindicaciones independientes 1 y 14 anexas, respectivamente.
Durante la copia de seguridad incremental, los identificadores de tiempo lógico se usan para determinar las porciones unitarias que han cambiado, y por lo tanto para determinar las porciones unitarias de las que se necesita hacer copia de seguridad. Puesto que los datos de redundancia inconsistentes para una porción de escritura dan como resultado que los identificadores de tiempo lógico para la porción completa de escritura reciban el tiempo lógico actual, esto provoca la apariencia en el sistema de copia de seguridad de que todas las porciones unitarias de esa porción de escritura hayan sido escritas de nuevo. Por consiguiente, el sistema de copia de seguridad hace que se haga copia de seguridad de la porción de escritura completa, incluso aunque una o más de sus porciones unitarias pudieran no haber cambiado. Mientras que esto podría quizás dar como resultado que se transfieran más datos de respaldo que los absolutamente necesarios en el caso raro de que los datos de redundancia pierdan consistencia, esto protege contra la inconsistencia de los datos cuando esos casos ocurren.
Breve descripción de los dibujos
Con el fin de describir la manera en que pueden ser obtenidas las ventajas mencionadas con anterioridad y otras ventajas y características, se va a realizar una descripción más particular de varias realizaciones mediante referencia a los dibujos anexos. Hay que entender que esos dibujos representan solamente realizaciones de muestra y que no deben ser considerados, por lo tanto, como limitativas del alcance de la invención, donde las realizaciones van a ser descritas y explicadas con especificidad adicional y con detalle mediante el uso de los dibujos que se acompañan, en los que:
La Figura 1 ilustra resumidamente un sistema de computación en el que se pueden emplear algunas realizaciones descritas en la presente memoria;
La Figura 2 ilustra una cronología de operación en conformidad con los principios descritos en la presente memoria, e incluye una fase de aprovisionamiento, una fase operativa (que incluye operaciones de escritura y verificación) y una fase de copia de seguridad;
La Figura 3 ilustra un método para mantener el seguimiento de cambios entre porciones unitarias de un sistema de almacenaje;
La Figura 4 ilustra un ejemplo de sistema de almacenaje que incluye almacenaje de datos y una estructura identificadora de tiempo lógico;
Las Figuras 5A a 5G ilustran varias fases de una realización de la estructura identificadora de tiempo lógico de la Figura 4 siguiendo a lo largo de un escenario particular, y en donde la estructura identificadora de tiempo lógico está dispuesta a modo de matriz lineal de identificadores de tiempo lógico;
Las Figuras 6A a 6F ilustran varias fases de otra realización de la estructura identificadora de tiempo lógico de la Figura 4 siguiendo a lo largo del escenario particular, y en donde la estructura identificadora de tiempo lógico está dispuesta a modo de estructura de árbol, y
La Figura 7 ilustra resumidamente varios componentes de procesamiento que pueden operar dentro del sistema de almacenaje para aprovisionar, operar y hacer copia de seguridad del sistema de almacenaje.
Descripción detallada
Se va a describir algo de discusión introductoria de un sistema de computación con respecto a la Figura 1. A continuación, se presentarán la estructura y la operación de las realizaciones descritas en la presente memoria con respecto a las Figuras posteriores.
Los sistemas de computación están ahora adoptando de manera creciente una amplia variedad de formas. Los sistemas de computación pueden ser, por ejemplo, dispositivos portátiles, aparatos, ordenadores portátiles, ordenadores de sobremesa, servidores, sistemas de computación distribuidos, centros de datos, o incluso dispositivos que no hayan sido considerados convencionalmente como un sistema de computación, tal como dispositivos que se pueden llevar puestos (p. ej., gafas). En la presente descripción y en las reivindicaciones, el término “sistema de computación” se define de manera amplia de modo que incluye cualquier dispositivo o sistema (o combinación de los mismos) que incluya al menos un procesador físico y tangible, y una memoria física y tangible capacitada para tener en la misma, instrucciones ejecutables con ordenador que puedan ser ejecutadas por un procesador. La memoria puede adoptar cualquier forma y puede depender de la naturaleza y de la forma del sistema de computación. Un sistema de computación puede estar distribuido a través de un entorno de red y puede incluir múltiples sistemas de computación integrantes.
Según se ha ilustrado en la Figura 1, en su configuración más básica, un sistema 100 de computación incluye típicamente al menos una unidad 102 de procesamiento de hardware y memoria 104. La memoria 104 puede ser una memoria física del sistema, la cual puede ser volátil, no volátil o alguna combinación de las dos. El término “memoria” puede ser usado también en la presente memoria para referirse a un almacenaje masivo no volátil tal como medios físicos de almacenaje. Si el sistema de computación está distribuido, el procesamiento, la memoria y/o la capacidad de almacenaje pueden estar distribuidos también. Según se utiliza en la presente memoria, el término “módulo ejecutable” o “componente ejecutable” puede referirse a objetos de software, rutinas o métodos que pueden ser ejecutados en el sistema de computación. Los diferentes componentes, módulos, motores y servicios descritos en la presente memoria pueden ser implementados como objetos o procesos que se ejecuten en el sistema de computación (p. eje., como aspectos independientes).
En la descripción que sigue, se describen realizaciones con referencia a acciones que son realizadas por uno o más sistemas de computación. Si tales acciones están implementadas en software, uno o más procesadores (del sistema de computación asociado que lleva a cabo la acción) dirigen la operación del sistema de computación en respuesta a haber ejecutado instrucciones ejecutables con ordenador. Por ejemplo, tales instrucciones ejecutables con ordenador pueden estar materializadas sobre uno o más medios legibles con ordenador que forman un producto de programa informático. Un ejemplo de operación de ese tipo incluye la manipulación de datos. Las instrucciones ejecutables con ordenador (y los datos manipulados) pueden ser almacenados en la memoria 104 del sistema 100 de computación. El sistema 100 de computación puede contener también canales 108 de comunicación que permitan que el sistema 100 de computación comunique con otros sistemas de computación a través de, por ejemplo, la red 110.
Las realizaciones descritas en la presente memoria pueden comprender o utilizar un sistema de computación de propósito general o de propósito especial que incluya hardware de ordenador, tal como, por ejemplo, uno o más procesadores y memoria de sistema, según se discute con mayor detalle más adelante. Las realizaciones descritas en la presente memoria incluyen también medios físicos y otros medios legibles con ordenador para llevar a cabo o almacenar instrucciones ejecutables con ordenador y/o estructuras de datos. Tales medios legibles con ordenador pueden ser cualquier medio disponible al que se pueda acceder por medio de un sistema de computación de propósito general o de propósito especial. Los medios legibles con ordenador que almacenan instrucciones ejecutables con ordenador son medios físicos de almacenaje. Los medios legibles con ordenador que portan instrucciones ejecutables con ordenador son medios de transmisión. De ese modo, a título de ejemplo y sin limitación, las realizaciones de la invención pueden comprender al menos dos clases completamente diferentes de medios legibles con ordenador: medios de almacenaje y medios de transmisión.
Los medios de almacenaje legibles con ordenador incluyen RAM, ROM, EEPROM, CD-ROM u otro almacenaje en disco óptico, almacenaje en disco magnético u otros dispositivos de almacenaje magnético, o cualquier otro medio de almacenaje físico y tangible que pueda ser usado para almacenar medios de código de programa informático en forma de instrucciones ejecutables con ordenador o de estructuras de datos, y a los que se pueda acceder por medio de un sistema de computación de propósito general o de propósito especial.
Una “red” se define como uno o más enlaces de datos que permiten el transporte de datos electrónicos entre sistemas de computación y/o módulos y/u otros dispositivos electrónicos. Cuando se transfiere o se proporciona información a través de una red o de otra conexión de comunicaciones (ya sea cableada, inalámbrica o una combinación de cableada o inalámbrica) a un sistema de computación, el sistema de computación ve apropiadamente la conexión como un medio de transmisión. Los medios de transmisión pueden incluir una red y/o enlaces de datos que pueden ser usados para portar medios de código de programa informático deseado en forma de instrucciones ejecutables con ordenador o de estructuras de datos, y a los que se puede acceder por medio de un sistema de computación de propósito general o de propósito especial. Combinaciones de los anteriores pueden estar también incluidas dentro del ámbito de los medios legibles con ordenador.
Además, tras alcanzar varios componentes del sistema de computación, los medios de código de programa informático en forma de instrucciones ejecutables con ordenador o de estructuras de datos, pueden ser transferidos automáticamente desde medios de transmisión a medios de almacenaje (o viceversa). Por ejemplo, las instrucciones ejecutables con ordenador o las estructuras de datos recibidas a través de una red o de un enlace de datos pueden ser almacenadas en memoria RAM dentro de un módulo de interfaz de red (p. ej., un “NIC”), y a continuación transferidas eventualmente a una RAM del sistema de computación y/o a medios de almacenaje menos volátiles en un sistema de computación. De ese modo, se debe entender que los medios de almacenaje pueden estar incluidos en componentes del sistema de computación que utilicen también (o al menos mayormente) medios de transmisión.
Las instrucciones ejecutables con ordenador comprenden, por ejemplo, instrucciones y datos que, cuando se ejecutan en un procesador, provocan que un sistema de computación de propósito general, un sistema de computación de propósito especial, o un dispositivo de procesamiento de propósito especial realicen una función determinada o un grupo de funciones. Las instrucciones ejecutables con ordenador pueden ser, por ejemplo, instrucciones binarias o uniformes que se sometan a alguna traducción (tal como compilación) con anterioridad a su ejecución directa por los procesadores, tal como instrucciones de formato intermedio tal como lenguaje ensamblador, o incluso código fuente. Aunque el presente objeto ha sido descrito en lenguaje específico para características estructurales y/o acciones metodológicas, debe entenderse que el presente objeto que definido en las reivindicaciones anexas no se limita necesariamente a las características descritas o a las acciones descritas con anterioridad. En cambio, las características y acciones descritas se divulgan como ejemplos de formas de implementación en las reivindicaciones.
Los expertos en la materia podrán apreciar que la invención puede ser puesta en práctica en entornos de computación de red con muchos tipos de configuraciones de sistemas de computación, incluyendo ordenadores personales, ordenadores de sobremesa, ordenadores portátiles, procesadores de mensajes, dispositivos portátiles, sistemas de multiprocesador, electrónica de consumo basada en microprocesador o programable, PCs de red, miniordenadores, ordenadores centrales, teléfonos móviles, PDAs, localizadores, enrutadores, conmutadores, centros de datos, dispositivos que se pueden llevar puestos (tal como gafas) y similares. La invención puede ser también puesta en práctica en entornos de sistema distribuido donde sistemas de computación locales y remotos, que están enlazados (ya sea mediante enlaces de datos cableados, enlaces de datos inalámbricos, o mediante una combinación de enlaces de datos cableados e inalámbricos) a través de una red, realizan las tareas. En un entorno de sistema distribuido, módulos de programa informático pueden estar situados en dispositivos de almacenaje en memoria tanto locales como remotos.
La Figura 2 ilustra un cronograma 200 de operación acorde con los principios descritos en la presente memoria. La primera, es una fase 210 de aprovisionamiento en la que un sistema de computación se prepara para la operación de mantener el seguimiento de cambios en un sistema de almacenaje estableciendo una estructura identificadora de tiempo lógico. La segunda, es una fase 220 de operación en la que el sistema de computación participa en operación normal y como tal, realiza operaciones 221 de escritura en el sistema de almacenaje y escrituras equivalentes en la estructura identificadora de tiempo lógico, y a continuación verifica 222 más tarde la consistencia de las operaciones de escritura usando la estructura identificadora de tiempo lógico en conformidad con los principios descritos en la presente memoria. Finalmente, existe una fase 230 de copia de seguridad potencial en la que se usa la estructura identificadora de tiempo lógico para la copia de seguridad del sistema de almacenaje en un estado coherente.
Más específicamente, la Figura 3 ilustra un diagrama de flujo de un método 300 para mantener el seguimiento de cambios entre porciones de un sistema de almacenaje. En la fase 210 de aprovisionamiento, un identificador de tiempo lógico está asociado a cada porción unitaria en una estructura identificadora de tiempo lógico (acción 310). La Figura 4 ilustra un ejemplo de sistema 400 de almacenaje que incluye una estructura identificadora de tiempo lógico. Ahora se va a describir el ejemplo de la Figura 4 antes de volver al diagrama de flujo del método 300 de la Figura 3.
Como ejemplo, la Figura 4 ilustra un ejemplo de sistema 400 de almacenaje que incluye un almacenaje 400A de datos y una estructura 400B identificadora de tiempo lógico. El almacenaje 400A de datos incluye porciones 401A a 409A unitarias. En una realización, el sistema 400A de almacenaje es un sistema de archivo en el cada porción 401A a 409A unitaria es un archivo. Sin embargo, el sistema 400A de almacenaje podría también ser un sistema basado en bloques en el que cada porción 401A a 409A unitaria es un bloque. Por supuesto, pueden existir muchas más porciones unitarias en un sistema de almacenaje típico, pero el ejemplo de la Figura 4 se mantiene simple por razones de claridad.
El sistema 400A de almacenaje incluye también porciones 411A a 413A de escritura. En conformidad con el aspecto más amplio descrito en la presente memoria, las porciones de escritura pueden incluir una o más porciones unitarias, y representan la manera en la que las porciones unitarias pueden ser escritas en el sistema de almacenaje. Por ejemplo, si el sistema 400A de almacenaje es un sistema de archivo, entonces típicamente, se escribe un archivo cada vez. Por consiguiente, cada una de las porciones de escritura podrían contener solamente una porción unitaria (es decir, un archivo). Sin embargo, si el sistema 400A de almacenaje es un sistema de almacenaje a base de bloques, entonces típicamente los bloques se escriben en una página cada vez, donde una página abarca múltiples bloques. En el ejemplo ilustrado, las porciones 411A a 413A de escritura están representadas, cada una de ellas, de modo que cada una abarca tres porciones unitarias. Esto es, de nuevo, por razones de simplicidad y claridad en cuanto a la descripción del ejemplo. En un sistema de almacenaje típico, pueden existir millones o miles de millones de porciones unitarias y porciones de escritura, y cada porción de escritura puede abarcar potencialmente números diferentes de porciones unitarias.
La estructura 400B identificadora de tiempo lógico incluye identificadores 401B a 409B de tiempo lógico, asociados a cada una de las porciones 401A a 409A unitarias, respectivamente. Las Figuras 5A a 5G ilustran estados progresivos de la estructura 400B identificadora de tiempo lógico de modo que el estado estará en un ejemplo particular que se describe en lo que sigue. En el ejemplo de las Figuras 5A a 5G, la estructura identificadora de tiempo lógico incluye una matriz lineal de entradas, siendo cada entrada un identificador de tiempo lógico para una porción unitaria asociada del sistema de almacenaje. Las Figuras 6A a 6F ilustran estados progresivos de la estructura 400B identificadora de tiempo lógico, en los que se usa una estructura de árbol para un seguimiento de datos de redundancia. Las Figuras 5A a 5D corresponden a las Figuras 6A a 6D, respectivamente. Las Figuras 5E y 5F corresponden a la Figura 6E. Las Figuras 5F y 5G corresponden a las Figuras 6E y 6F, respectivamente. Por consiguiente, los ejemplos de las Figuras 5A a 5G, así como de las Figuras 6A a 6F, van a ser mencionadas de manera frecuente en la descripción del escenario que sigue.
En el ejemplo particular de las Figuras 5A a 5G y de las Figuras 6A a 6F, los identificadores de tiempo lógico son números de secuencia, y el tiempo lógico está representado por un número de secuencia que se incrementa en uno cada vez que el tiempo lógico avanza. Por ejemplo, en el estado 500A de la Figura 5A, y en el estado 600A de la Figura 6A, cada uno de los identificadores 401B a 409B de tiempo lógico se ponen a cero. En algunos casos, los identificadores de tiempo lógico podrían estar asociados a un tiempo real, de tal modo que se pueda introducir un tiempo real, y el identificador de tiempo lógico correspondiente pueda ser recuperado.
Haciendo de nuevo referencia a la Figura 4, el grupo de identificadores de tiempo lógico para cada una de las porciones 411A a 413A de escritura, tiene asociados datos 411B a 413B de redundancia, respectivamente. Los datos 411B a 413B de redundancia pueden ser usados para confirmar la exactitud de los identificadores de tiempo lógico dentro de las porciones 411A a 413A de escritura correspondientes, respectivamente. Por ejemplo, la porción 411A de escritura está asociada a las porciones 401A a 403A unitarias, y las porciones 401A a 403A unitarias tienen asociados identificadores 401B a 403B de tiempo lógico. Por consiguiente, los datos 411B de redundancia representan datos de redundancia (p. ej., una suma de control) que pueden ser usados para verificar la precisión de los identificadores 401B a 403B de tiempo lógico. También, la porción 412A de escritura está asociada a porciones 404A a 406A unitarias, y las porciones 404A a 406A unitarias tienen asociados identificadores 404B a 406B de tiempo lógico. Por consiguiente, los datos 412B de redundancia representan datos de redundancia (p. ej., una suma de control) que pueden ser usados para verificar la precisión de los identificadores 404B a 406B de tiempo lógico. Finalmente, la porción 413A de escritura está asociada a porciones 407A a 409A unitarias, y las porciones 407A a 409A unitarias tienen asociados identificadores 407B a 409B de tiempo lógico. Por consiguiente, los datos 413B de redundancia representan datos de redundancia (p. ej., una suma de control) que pueden ser usados para verificar la precisión de los identificadores 407B a 409B de tiempo lógico.
Con los identificadores 401A a 409A de tiempo lógico puestos a cero en la Figura 5A, los datos 411B, 411B y 411C de redundancia representan, cada uno de ellos, los datos de redundancia para tres ceros. En la nomenclatura de las Figuras 5A a 5G ilustradas, los datos de redundancia para una secuencia de números se simboliza al tener la secuencia de números ilustrada con un subrayado dentado. Por ejemplo, en la Figura 5A, los datos 411B de redundancia se han representado como que tienen un valor 000.
Las Figura 6A a 6F ilustran varias fases de otra realización de la estructura identificadora de tiempo lógico de la Figura 4 que sigue a lo largo del mismo escenario particular que se describió con respecto a las Figuras 5A a 5G. Sin embargo, en esta segunda realización, la estructura identificadora de tiempo lógico puede adoptar la forma de una estructura de árbol.
En esta estructura de árbol, si una porción de escritura no tiene asociado un grupo de identificadores de tiempo lógico, entonces se supone que los identificadores de tiempo lógico son un valor por defecto representado por un nodo raíz en el árbol. Si cualquiera del grupo de estructuras identificadoras de tiempo lógico para una porción de escritura es diferente del valor por defecto representado en el nodo raíz, entonces ese grupo de estructuras identificadoras de tiempo lógico tendrá su propio nodo hijo. Si el grupo de identificadores de tiempo real son los mismos para una porción de escritura dada, entonces el nodo hijo simplemente mantendrá ese valor. Si cada uno del grupo de identificadores de tiempo lógico no son iguales para la porción de escritura, entonces el nodo hijo contendrá los datos de redundancia para la serie de identificadores de tiempo lógico.
Por ejemplo, con referencia al ejemplo de la Figura 6A, ninguno de los identificadores de tiempo lógico es diferente de un valor por defecto de cero. Por consiguiente, puesto que cada uno de los valores de los identificadores 401B a 409B de tiempo lógico es 0, existe un único nodo 610 raíz que representa el valor 0.
Pasando a la operación 221 de escritura de la fase 220, cuando se escribe en una porción de escritura particular que incluye porción(es) unitaria(s) del sistema de almacenaje, el sistema actualiza los identificadores de tiempo lógico para cualquiera de la(s) porción(es) unitaria(s) de la porción de escritura que haya(n) cambiado (acción 320), y calcula los datos de redundancia (p. ej., una suma de control) asociados al (a los) identificador(es) de tiempo lógico asociado(s) a la(s) porción(es) unitaria(s) de la porción de escritura (acción 321). El sistema escribe la porción de escritura (acción 322) y también escribe los datos de redundancia asociados (acción 323). En algunas realizaciones, los datos de redundancia se escriben (acción 323) en paralelo con la actualización de los identificadores de tiempo lógico (acción 320). Por consiguiente, si se encuentra después que los datos de redundancia son incompatibles con los identificadores de tiempo lógico (acción 324), entonces ha ocurrido probablemente un fallo de potencia, y los identificadores de tiempo lógico pueden ser tratados como dañados. Ésta es la razón de que los identificadores de tiempo lógico sean marcados, en ese caso, con el tiempo lógico actual según se mida mediante la aplicación que usa los datos.
Por ejemplo, con referencia al estado 500B de la Figura 5B, supóngase que se realiza una escritura en porciones 402A y 403A unitarias, y que el tiempo lógico ha avanzado hasta el tiempo 1. Por consiguiente, los identificadores 401B a 403B de tiempo lógico de las porciones 401A a 403A unitarias correspondientes para la porción 411A de escritura cambian de 000 a 011 (acción 320). Los datos 411B de redundancia se recalculan a continuación (acción 321) como 011. El sistema escribe a continuación la nueva porción 411A de escritura en las porciones 401A a 403A unitarias (acción 322) y también escribe los nuevos datos 411B de redundancia que tienen ahora el valor 011 (acción 323). Con referencia al estado 600B de la Figura 6B, dado que la porción 411A de escritura ya no está más representada de manera precisa por el nodo 610 raíz, se crea un nodo 611 hoja, que contiene los datos de redundancia (p. ej., una suma de control) para los identificadores 401B a 403B de tiempo lógico.
A continuación, con referencia al estado 500C de la Figura 5C, supóngase que se realiza una escritura en las porciones 403A y 404A unitarias, y que el tiempo lógico ha avanzado hasta tiempo 2. Por consiguiente, los identificadores 401B a 403B de tiempo lógico de las porciones 401A a 403A unitarias correspondientes para la porción 411A de escritura cambian desde 011 a 012 (acción 320). Además, los identificadores 404B a 406B de tiempo lógico de las porciones 404A a 406A unitarias correspondientes para la porción 412B de escritura cambian desde 000 a 200 (también acción 320). Los datos 411B de redundancia se recalculan a continuación (acción 321) como 012. Adicionalmente, los datos 412B de redundancia se recalculan a continuación (también acción 321) como 200. El sistema escribe entonces la nueva porción 411A de escritura en las porciones 401A a 403A unitarias (acción 322) , la nueva porción 412A de escritura de las porciones 404A a 406A unitarias (también acción 322), los nuevos datos 411B de redundancia que tienen ahora el valor 012 (acción 323), y los nuevos datos 412B de redundancia que tienen ahora el valor 200 (también acción 323). Con referencia al estado 600C de la Figura 6C, puesto que la porción 412A de escritura ya no está más representada de manera precisa por el nodo 610 raíz, se crea un nodo 612 hoja, que contiene los datos de redundancia (p. ej., una suma de control) para los identificadores 404B a 404B de tiempo lógico. Además, el nodo 611 hoja ha sido alterado de la misma manera que los datos 411B de redundancia.
A continuación, haciendo referencia al estado 500D de la Figura 5D, supóngase que se realiza una escritura en las porciones 405A y 406A unitarias, y que el tiempo lógico ha avanzado hasta tiempo 3. En consecuencia, los identificadores 404B a 406B de tiempo lógico de las porciones 404A a 406A unitarias correspondientes para la porción 412A de escritura cambian desde 200 a 233 (acción 320). Los datos 412B de redundancia se recalculan a continuación (acción 321) como 233. El sistema escribe a continuación la nueva porción 412A de escritura en las porciones 404A a 406A unitarias (acción 322), y también escribe los nuevos datos 412B de redundancia que ahora tienen el valor 233 (acción 323). De forma similar, con referencia al estado 600D de la Figura 6D, el valor del nodo 612 hoja también cambia correspondientemente.
Haciendo de nuevo referencia a la Figura 2, durante la fase 220 operativa, se puede llevar a cabo ocasionalmente una operación 222 de verificación. Esta operación 222 de verificación puede ser realizada en respuesta a determinados eventos, y/o podría ser llevada a cabo de manera periódica. Como ejemplo, la operación 222 de verificación podría ser llevada a cabo después de que se haya detectado que ha ocurrido un ciclo de potencia en el sistema.
Durante una operación 222 de verificación, se podría verificar tras la operación 221 de escritura, que los datos de redundancia no son coherentes con el grupo de uno o más identificadores de tiempo lógico (acción 324). Si los datos de redundancia no son coherentes, entonces se lleva a cabo una operación 221 de escritura con respecto al tiempo lógico 3 actual para todas las porciones unitarias en la porción de escritura correspondiente.
Por ejemplo, con referencia al estado 500E de la Figura 5E, supóngase mientras está aún en el tiempo lógico 3, que los datos 412B de redundancia tienen un valor dañado (representado por “***”) que ya ha dejado de ser consistente con el valor 233 de los identificadores 404B a 406B de tiempo lógico de las porciones 404A a 406A unitarias asociadas a la porción 412A de escritura correspondiente (acción 324). En ese caso, según se ha representado en el estado de la Figura 5F, los identificadores 404B a 406B de tiempo lógico de las porciones 404A a 406A unitarias correspondientes de la porción 412A de escritura son reescritos, cada uno de ellos, con el identificador de tiempo lógico 3 actual (acción 325). Los nuevos datos 412B de redundancia son calculados a continuación como 333 (acción 321), y se escriben los datos de redundancia (acción 323). Con referencia al estado 600E de la Figura 6E, puesto que los identificadores 404B a 406B de tiempo lógico de la porción de escritura correspondiente al nodo 611 hoja son ahora todos iguales (tiempo lógico 3), el nodo 612 hoja puede transformarse opcionalmente de modo que tenga un valor único de 3. Alternativamente, el nodo 612 hoja podría haber tenido el valor de redundancia de 333.
En otras palabras, si los datos de redundancia (p.ej., la suma de control) son incorrectos, la porción de escritura asociada completa se trata como si ésta tuviera el último número de secuencia. En el momento siguiente se actualiza la porción de escritura, el tiempo lógico actual se almacena explícitamente para cada identificador de tiempo lógico para esa porción de escritura. Esto significa que si la página resulta dañada de alguna manera, cuando el usuario requiere el conjunto de cambios desde el tiempo t (que es menor que el tiempo actual), el usuario verá que todo lo representado por esta parte de la estructura identificadora de tiempo lógico, ha cambiado, incluso aunque solamente haya cambiado alguna o incluso ninguna de las porciones unitarias de esta porción de escritura. Esto es mucho más seguro que suponer que nada ha cambiado (puesto que se desconoce lo que ha cambiado).
A continuación, con referencia al estado 500G de la Figura 5G, supóngase que se realiza una escritura en porciones 406A y 407A unitarias, y que el tiempo lógico ha avanzado hasta tiempo 4. En consecuencia, los identificadores 404B a 406B de tiempo lógico de las porciones 404A a 406A unitarias correspondientes para la porción 412A de escritura, cambian de 333 a 334 (acción 320). Además, los identificadores 407B a 409B de tiempo lógico de las porciones 407A a 409A unitarias correspondientes para la porción 413A de escritura, cambian de 000 a 400 (también acción 320). Los datos 412B de redundancia se recalculan a continuación (acción 321) como 334. Adicionalmente, los datos 413B de redundancia son recalculados a continuación (acción 321) como 400. El sistema escribe a continuación la nueva porción 412A de escritura en las porciones 404A a 406A unitarias (acción 322), la nueva porción 413A de escritura de las porciones 407A a 409A unitarias (también acción 322), los nuevos datos 412B de redundancia que ahora tienen un valor 334 (acción 323), y los nuevos datos 413B de redundancia que ahora tienen el valor 400 (también acción 323). Con referencia al estado 600F de la Figura 6F, puesto que la porción 413A de escritura ha dejado ya de ser representada de manera precisa por el nodo 610 raíz, se crea un nodo 613 hoja, el cual contiene los datos de redundancia (p. ej., una suma de control) para los identificadores 407B a 409B de tiempo lógico. Además, puesto que el valor en el nodo 612 hoja (de 3) ya no representa más a todos los identificadores de tiempo lógico de la porción 412A de escritura, el nodo 612 hoja se modificada de modo que incluya los datos 334 de redundancia.
Haciendo de nuevo referencia a la Figura 4, supóngase ahora que se necesita hacer una copia de seguridad del sistema 400 de almacenaje. Por ejemplo, en la Figura 2, el cronograma 200 avanza desde la fase 220 de operación normal a la fase 230 de copia de seguridad. Los identificadores de tiempo lógico son usados por el sistema de copia de seguridad para determinar las porciones unitarias que han cambiado. Por ejemplo, con referencia a las Figuras 5G y 6F, si la última copia de seguridad había sido tomada después del tiempo lógico 0 pero antes que el tiempo lógico 1, entonces no se hace copia de seguridad de las porciones 402A a 407A unitarias debido a que sus respectivos identificadores 402B a 407B de tiempo lógico están, cada uno de ellos, en tiempo lógico 1 o posterior. Si la última copia de seguridad se tomó después del tiempo lógico 1 pero antes del tiempo lógico 2, entonces se hace copia de seguridad de las porciones 403A a 407A puesto que sus respectivos identificadores 403B a 407B de tiempo lógico están, cada uno de ellos, en tiempo lógico 2 o posterior. Si la última copia de seguridad fue tomada después del tiempo lógico 2 pero antes del tiempo lógico 3, entonces se hace copia de seguridad de las porciones 404A a 407A unitarias puesto que sus respectivos identificadores 404B a 407B de tiempo lógico están, cada uno de ellos, en tiempo lógico 3 o posterior. Si la última copia de seguridad se tomó después del tiempo lógico 3 pero antes del tiempo lógico 4, se debe hacer copia de seguridad de las porciones 406A y 407A unitarias puesto que sus respectivos identificadores 406B y 407B de tiempo lógico están, cada uno de ellos, en tiempo lógico 4 o posterior.
Puesto que los datos de redundancia inconsistentes para una porción de escritura dan como resultado los identificadores de tiempo lógico para la totalidad de la porción de escritura que recibe el tiempo lógico actual, esto provoca la apariencia en el sistema de copia de seguridad de que todas las porciones unitarias de esa porción de escritura hayan sido escritas de nuevo. Por consiguiente, el sistema de copia de seguridad provoca que se haga copia de seguridad de la totalidad de la porción de escritura, incluso aunque una o más de las porciones unitarias pudieran no haber cambiado. Mientras que esto podría quizás dar como resultado que fueran transferidos más datos de copia de seguridad de los absolutamente necesarios en el caso raro de que los datos de redundancia pierdan consistencia, esto protege la consistencia de los datos reales cuando ocurren tales casos.
La Figura 7 ilustra de manera resumida una arquitectura 700 que incluye varios componentes de procesamiento que pueden operar dentro del sistema de almacenaje para aprovisionar, operar y hacer copia de seguridad del sistema de almacenaje. En particular, un componente 710 de aprovisionamiento puede estar estructurado y configurado de modo que realice las operaciones descritas con anterioridad para la fase 210 de aprovisionamiento, un componente 721 de escritura puede estar estructurado y configurado para realizar las operaciones 221 de escritura, un componente 722 de verificación puede estar estructurado y configurado para realizar las operaciones 222 de verificación, y un componente 730 de copia de seguridad puede estar estructurado y configurado para llevar a cabo las operaciones descritas con anterioridad para la fase 230 de copia de seguridad.
En consecuencia, los principios descritos en la presente memoria proporcionan un mecanismo eficaz para mantener el seguimiento de cambios entre versiones arbitrarias de un sistema de almacenaje. Las realizaciones descritas han de ser consideradas en todos los aspectos solamente como ilustrativas y no restrictivas. El alcance de la invención está indicado, por lo tanto, por las reivindicaciones anexas en vez de por la descripción que antecede.

Claims (15)

REIVINDICACIONES
1. - Un método para mantener el seguimiento de cambios entre porciones unitarias de un sistema de almacenaje, comprendiendo el método:
para cada porción unitaria en el sistema de almacenaje, asociar (310) un identificador de tiempo lógico a la porción en una estructura identificadora de tiempo lógico;
cuando se escriba en una porción de escritura particular que incluye una o más de las porciones unitarias del sistema de almacenaje, llevar a cabo lo siguiente:
una acción de calcular (321) datos de redundancia asociados a un grupo de uno o más identificadores de tiempo lógico asociados a las una o más porciones de la porción de escritura;
una acción de escribir (322) en la porción de escritura del sistema de almacenaje, y
una acción de escribir (323) los datos de redundancia correspondientes a la porción de escritura en la estructura identificadora de tiempo lógico que corresponda a la porción de escritura;
una acción de verificar (324) a continuación que los datos de redundancia no son consistentes con el grupo de uno o más identificadores de tiempo lógico, y
si los datos de redundancia no son consistentes, asignar (325) un identificador de tiempo lógico actual a cada uno de los identificadores de tiempo lógico en el grupo de uno o más identificadores de tiempo lógico en la estructura identificadora de tiempo lógico, de tal modo que las porciones de escritura inconsistentes sean tratadas como recientemente escritas.
2. - El método según la reivindicación 1, siendo el sistema de almacenaje un disco duro virtual.
3. - El método según la reivindicación 1, siendo el sistema de almacenaje un sistema de archivo, y siendo las porciones unitarias del sistema de almacenaje archivos.
4. - El método según la reivindicación 1, siendo el sistema de almacenaje un sistema de almacenaje a base de bloques, y siendo las porciones unitarias del sistema de almacenaje bloques.
5. - El método según la reivindicación 4, siendo la porción de escritura una página de múltiples bloques.
6. - El método según la reivindicación 1, siendo los datos de redundancia una suma de control.
7. - El método según la reivindicación 1, incluyendo la estructura identificadora de tiempo lógico una matriz de entradas, incluyendo una entrada que incluye un identificador de tiempo lógico para cada una de al menos algunas de las porciones unitarias del sistema de almacenaje.
8. - El método según la reivindicación 1, incluyendo la estructura identificadora de tiempo lógico una estructura de árbol en la que los nodos hoja son cada uno de los grupos de identificadores de tiempo lógico asociados a porciones de escritura, incluyendo cada uno de al menos algunos de los nodos hoja datos de redundancia correspondientes para el grupo asociado de identificadores de tiempo lógico.
9. - El método según la reivindicación 8, en donde, si un grupo de identificadores de tiempo lógico asociados a una porción de escritura son los mismos, entonces la porción de escritura no está representada por un nodo hoja, sino que más bien el valor del identificador de tiempo lógico está representado en un nodo padre.
10. - El método según la reivindicación 1, comprendiendo los identificadores de tiempo lógico números de secuencia.
11. - El método según la reivindicación 1, con cada uno de al menos algunos identificadores de tiempo lógico asociado a un tiempo real.
12. - El método según la reivindicación 1, en donde la acción de verificar (324) a continuación que los datos de redundancia no son consistentes con el grupo de uno o más identificadores de tiempo lógico ocurre después de que se haya detectado que ha ocurrido un ciclo de potencia, y después de que la porción de escritura haya sido escrita.
13. - El método según la reivindicación 1, que comprende además:
una acción de restablecer el sistema de almacenaje a un tiempo lógico particular usando la estructura identificadora de tiempo lógico.
14. - Un producto de programa informático que comprende uno o más medios de almacenaje legibles con ordenador que incluyen instrucciones ejecutables con ordenador que están estructuradas de tal modo que, cuando se ejecutan mediante uno o más procesadores del sistema de computación, provocan que el sistema de computación lleve a cabo un método para mantener el seguimiento de cambios entre porciones de un sistema de almacenaje, comprendiendo el método:
para cada porción unitaria en el sistema de almacenaje, asociar (310) un identificador de tiempo lógico a la porción en una estructura identificadora de tiempo lógico;
cuando se escriba en una porción de escritura particular que incluye una o más de las porciones unitarias del sistema de almacenaje, llevar a cabo lo siguiente:
una acción de calcular (321) datos de redundancia asociados a un grupo de uno o más identificadores de tiempo lógico asociados a las una o más porciones de la porción de escritura;
una acción de escribir (322) en la porción de escritura del sistema de almacenaje, y
una acción de escribir (323) los datos de redundancia correspondientes a la porción de escritura en la estructura identificadora de tiempo lógico que corresponda a la porción de escritura;
una acción de verificar (324) a continuación que los datos de redundancia no son consistentes con el grupo de uno o más identificadores de tiempo lógico, y
si los datos de redundancia no son consistentes, asignar (325) un identificador de tiempo lógico actual a cada uno de los identificadores de tiempo lógico en el grupo de uno o más identificadores de tiempo lógico en la estructura identificadora de tiempo lógico, de tal modo que las porciones de escritura inconsistentes sean tratadas como recientemente escritas.
15.- El producto de programa informático según la reivindicación 14, siendo el sistema de almacenaje un sistema de almacenaje a base de bloques, y siendo las porciones unitarias del sistema de almacenaje bloques.
ES15831112T 2015-01-12 2015-12-29 Seguimiento de cambios usando redundancia en tiempo lógico Active ES2715506T3 (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/595,047 US9547555B2 (en) 2015-01-12 2015-01-12 Change tracking using redundancy in logical time
PCT/US2015/067761 WO2016114921A1 (en) 2015-01-12 2015-12-29 Change tracking using redundency in logical time

Publications (1)

Publication Number Publication Date
ES2715506T3 true ES2715506T3 (es) 2019-06-04

Family

ID=55275168

Family Applications (1)

Application Number Title Priority Date Filing Date
ES15831112T Active ES2715506T3 (es) 2015-01-12 2015-12-29 Seguimiento de cambios usando redundancia en tiempo lógico

Country Status (5)

Country Link
US (1) US9547555B2 (es)
EP (1) EP3245589B1 (es)
CN (1) CN107111529B (es)
ES (1) ES2715506T3 (es)
WO (1) WO2016114921A1 (es)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9430272B2 (en) 2014-12-17 2016-08-30 Microsoft Technology Licensing, Llc Efficiently providing virtual machine reference points
CN107040582B (zh) * 2017-02-17 2020-08-14 创新先进技术有限公司 一种数据处理方法及装置
US10949412B2 (en) 2018-09-21 2021-03-16 Microsoft Technology Licensing, Llc Log marking dependent on log sub-portion
CN112379656A (zh) * 2020-10-09 2021-02-19 爱普(福建)科技有限公司 工业系统异常数据的检测的处理方法、装置、设备和介质
US11836052B2 (en) * 2021-07-27 2023-12-05 Rubrik, Inc. Data backup and recovery management using allocated data blocks

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5721915A (en) 1994-12-30 1998-02-24 International Business Machines Corporation Interaction between application of a log and maintenance of a table that maps record identifiers during online reorganization of a database
US6795966B1 (en) 1998-05-15 2004-09-21 Vmware, Inc. Mechanism for restoring, porting, replicating and checkpointing computer systems using state extraction
US6411964B1 (en) 1998-12-23 2002-06-25 International Business Machines Corporation Methods for in-place online reorganization of a database
US7249262B2 (en) * 2002-05-06 2007-07-24 Browserkey, Inc. Method for restricting access to a web site by remote users
US6981114B1 (en) 2002-10-16 2005-12-27 Veritas Operating Corporation Snapshot reconstruction from an existing snapshot and one or more modification logs
US7328366B2 (en) * 2003-06-06 2008-02-05 Cascade Basic Research Corp. Method and system for reciprocal data backup
US7162662B1 (en) 2003-12-23 2007-01-09 Network Appliance, Inc. System and method for fault-tolerant synchronization of replica updates for fixed persistent consistency point image consumption
US7769709B2 (en) * 2004-09-09 2010-08-03 Microsoft Corporation Method, system, and apparatus for creating an archive routine for protecting data in a data protection system
US7865470B2 (en) * 2004-09-09 2011-01-04 Microsoft Corporation Method, system, and apparatus for translating logical information representative of physical data in a data protection system
US7567974B2 (en) * 2004-09-09 2009-07-28 Microsoft Corporation Method, system, and apparatus for configuring a data protection system
US8145601B2 (en) * 2004-09-09 2012-03-27 Microsoft Corporation Method, system, and apparatus for providing resilient data transfer in a data protection system
US7516286B1 (en) 2005-08-31 2009-04-07 Symantec Operating Corporation Conversion between full-data and space-saving snapshots
US7447854B1 (en) 2005-12-30 2008-11-04 Vmware, Inc. Tracking and replicating changes to a virtual disk
US7882071B2 (en) 2006-08-18 2011-02-01 Isilon Systems, Inc. Systems and methods for a snapshot of data
US7519858B2 (en) 2006-08-18 2009-04-14 Computer Associates Think, Inc. Selective file restoration from incremental backups
US20080140963A1 (en) 2006-12-11 2008-06-12 Thomason Ronald G Methods and systems for storage system generation and use of differential block lists using copy-on-write snapshots
US8364648B1 (en) 2007-04-09 2013-01-29 Quest Software, Inc. Recovering a database to any point-in-time in the past with guaranteed data consistency
CN100524238C (zh) * 2007-11-02 2009-08-05 西安三茗科技有限责任公司 基于块级的增量备份和整卷恢复的方法
US8055613B1 (en) * 2008-04-29 2011-11-08 Netapp, Inc. Method and apparatus for efficiently detecting and logging file system changes
US8046550B2 (en) 2008-07-14 2011-10-25 Quest Software, Inc. Systems and methods for performing backup operations of virtual machine files
US8495316B2 (en) 2008-08-25 2013-07-23 Symantec Operating Corporation Efficient management of archival images of virtual machines having incremental snapshots
US8499297B2 (en) 2008-10-28 2013-07-30 Vmware, Inc. Low overhead fault tolerance through hybrid checkpointing and replay
US8443166B2 (en) 2009-03-06 2013-05-14 Vmware, Inc. Method for tracking changes in virtual disks
US8135748B2 (en) 2009-04-10 2012-03-13 PHD Virtual Technologies Virtual machine data replication
US8996826B2 (en) 2009-04-28 2015-03-31 Symantec Corporation Techniques for system recovery using change tracking
US8805788B2 (en) 2009-05-04 2014-08-12 Moka5, Inc. Transactional virtual disk with differential snapshots
US8538919B1 (en) 2009-05-16 2013-09-17 Eric H. Nielsen System, method, and computer program for real time remote recovery of virtual computing machines
CN101901172B (zh) * 2009-05-26 2012-11-21 联想(北京)有限公司 数据处理装置和方法
US8468609B2 (en) * 2009-08-27 2013-06-18 Cleversafe, Inc. Authenticating use of a dispersed storage network
US8356148B2 (en) 2009-09-22 2013-01-15 Lsi Corporation Snapshot metadata management in a storage system
US8726273B2 (en) 2009-12-03 2014-05-13 Vmware, Inc. Space efficient virtual machines
US8549241B2 (en) 2010-01-06 2013-10-01 Vmware, Inc. Method and system for frequent checkpointing
JP5060572B2 (ja) * 2010-03-09 2012-10-31 株式会社東芝 データ通信装置及び方法
US9558074B2 (en) 2010-06-11 2017-01-31 Quantum Corporation Data replica control
US9081715B2 (en) * 2011-02-01 2015-07-14 Cleversafe, Inc. Utilizing a dispersed storage network access token module to retrieve data from a dispersed storage network memory
US8832029B2 (en) * 2011-02-16 2014-09-09 Microsoft Corporation Incremental virtual machine backup supporting migration
CN103562878B (zh) 2011-05-23 2017-08-25 国际商业机器公司 在镜像虚拟机系统中的存储器检查点设置
US9003103B2 (en) 2011-09-12 2015-04-07 Microsoft Technology Licensing, Llc Nonvolatile media dirty region tracking
US8793451B2 (en) 2012-03-29 2014-07-29 International Business Machines Corporation Snapshot content metadata for application consistent backups
US8751515B1 (en) 2012-03-30 2014-06-10 Emc Corporation System and method for file-based virtual machine incremental backup
US9600206B2 (en) 2012-08-01 2017-03-21 Microsoft Technology Licensing, Llc Request ordering support when switching virtual disk replication logs
US9106721B2 (en) * 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US9053064B2 (en) 2012-12-10 2015-06-09 Vmware, Inc. Method for saving virtual machine state to a checkpoint file
US20140236892A1 (en) 2013-02-21 2014-08-21 Barracuda Networks, Inc. Systems and methods for virtual machine backup process by examining file system journal records
CN103946807B (zh) 2013-11-20 2016-03-09 华为技术有限公司 一种生成快照的方法、系统和装置
US9430272B2 (en) * 2014-12-17 2016-08-30 Microsoft Technology Licensing, Llc Efficiently providing virtual machine reference points

Also Published As

Publication number Publication date
WO2016114921A1 (en) 2016-07-21
US20160203052A1 (en) 2016-07-14
EP3245589A1 (en) 2017-11-22
EP3245589B1 (en) 2018-12-12
CN107111529B (zh) 2020-04-28
US9547555B2 (en) 2017-01-17
CN107111529A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
ES2715506T3 (es) Seguimiento de cambios usando redundancia en tiempo lógico
US9658798B2 (en) Grouping of tracks for copy source to target destage on global mirror secondary
US9372908B2 (en) Merging an out of synchronization indicator and a change recording indicator in response to a failure in consistency group formation
ES2600129T3 (es) Procedimiento para una recuperación de desastres de aplicación eficiente
DE112020003420T5 (de) Datenwiederherstellung in einem virtuellen Speichersystem
DE112019005770T5 (de) Speicherverwaltung für ein cloudbasiertes Speichersystem
US20230004467A1 (en) Maintaining A Synchronous Replication Relationship Between Two Or More Storage Systems
US9251230B2 (en) Exchanging locations of an out of synchronization indicator and a change recording indicator via pointers
US20160124739A1 (en) Minimizing Image Copying During Partition Updates
EP3385833A1 (en) Data path monitoring within a distributed storage network
EP4141667A1 (en) Efficiently providing virtual machine reference points
DE112020003277T5 (de) Erzeugen von tags für die datenzuweisung
US10931450B1 (en) Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
KR101983208B1 (ko) 데이터 관리 방법, 노드, 그리고 데이터베이스 클러스터를 위한 시스템
US11921567B2 (en) Temporarily preventing access to a storage device
CN106557143A (zh) 用于数据存储设备的装置和方法
US20230254127A1 (en) Sharing Encryption Information Amongst Storage Devices In A Storage System
US20170068475A1 (en) Intra-rack and inter-rack erasure code distribution
US20220382616A1 (en) Determining Remaining Hardware Life In A Storage Device
JP2020510256A (ja) 散在ストレージ・ネットワークにおけるデータ・コンテンツの部分更新の方法
CN109271278B (zh) 一种确定磁盘快照数据切片的引用次数的方法和装置
US10762227B2 (en) Converged mechanism for protecting data
US9524217B1 (en) Federated restores of availability groups
US11442828B2 (en) Handling failures in distributed data system
US20230244569A1 (en) Recover Corrupted Data Through Speculative Bitflip And Cross-Validation