MX2011010287A - Restauracion de archivo de sistema de diferencial apartir de pares y la nube. - Google Patents

Restauracion de archivo de sistema de diferencial apartir de pares y la nube.

Info

Publication number
MX2011010287A
MX2011010287A MX2011010287A MX2011010287A MX2011010287A MX 2011010287 A MX2011010287 A MX 2011010287A MX 2011010287 A MX2011010287 A MX 2011010287A MX 2011010287 A MX2011010287 A MX 2011010287A MX 2011010287 A MX2011010287 A MX 2011010287A
Authority
MX
Mexico
Prior art keywords
version
blocks
network
files
component
Prior art date
Application number
MX2011010287A
Other languages
English (en)
Inventor
Elissa E Murphy
John D Mehr
James R Hamilton
Lara M Sosnosky
Navjot Virk
Original Assignee
Microsoft Corp
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 Corp filed Critical Microsoft Corp
Publication of MX2011010287A publication Critical patent/MX2011010287A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • 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/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • 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
    • 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/1458Management of the backup or restore process
    • 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/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • 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/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Aquí se proporcionan sistemas y metodologías para restauración altamente eficiente en un sistema de respaldo basado en red. Como se describe aquí, puede utilizarse el análisis basado en diferencial para que se calcule un nuevo diferencial completo basándose en firmas y/u otra información que se relaciona con un artículo dado para ser restaurado antes de recuperar datos de respaldo. Basándose en el diferencial, únicamente se transmiten bloques determinados para ser únicos entre la versión actual del artículo y la versión deseada, que entonces pueden fusionarse con bloques localmente presentes no únicos para obtener la versión completamente restaurada del artículo. Además, puede emplearse una arquitectura híbrida, en donde las firmas y/o datos se almacenan en ubicación global dentro de una red así como uno o más pares locales. Por consiguiente, un cliente de respaldo puede obtener información necesaria para restauración ya sea a parir de la ubicación global o un par cercano, que además reduce la latencia y el consumo de ancho de banda.

Description

RESTAURACIONES DE ARCHIVO Y DE SISTEMA DE DIFERENCIAL A PARTIR DE PARES Y LA NUBE ANTECEDENTES A medida que los dispositivos de cómputo se vuelven más predominantes y ampliamente utilizados entre la población general, la cantidad de datos generados utilizados por tales dispositivos ha aumentado rápidamente. Por ejemplo, los avances recientes en tecnología de cómputo y almacenamiento de datos han permitido que incluso los dispositivos de factor de forma más limitados almacenen y procesen grandes cantidades de información para una variedad de aplicaciones a ambientes de datos tales como edición de documento, procesamiento de medios, y similares. Además, los avances recientes en tecnología de comunicación pueden permitir a los dispositivos de cómputo comunicar datos a un alto índice de velocidad. Estos avances han conducido a, entre otras tecnologías, la implementación de servicios de cómputo distribuidos que pueden, por ejemplo, conducirse al utilizar dispositivos de cómputo en múltiples ubicaciones a través de una red. Además, tales avances han permitido la implementación de servicios tales como respaldo basado en red, que permiten a un usuario de un dispositivo de cómputo mantener una o más copias de respaldo de datos asociados con el dispositivo de cómputo en una ubicación remota a través de una red.
El sistema y/o las soluciones de respaldo de datos existentes permiten a un usuario almacenar información de respaldo en una ubicación y/o medios separados desde su fuente original. De esa forma, por ejemplo, los datos de un dispositivo de cómputo pueden respaldarse desde una unidad dura hacia medios externos tales como unidad de cinta, una unidad dura externa, o similares. Sin embargo, en una implementación de respaldo basado en red y/u otras soluciones que pueden utilizarse para proporcionar ubicaciones físicamente remotas para almacenar datos de respaldo, costos y complejidad asociados con transmisión y restauración de datos de usuario entre una máquina de usuario y una ubicación de almacenamiento remota pueden limitar substancialmente la utilidad de un sistema de respaldo. Por ejemplo, en caso en donde los datos de respaldo se almacenan en una ubicación de red remota, los datos asociados con versiones respectivas de una copia original de un archivo y/o imagen de sistema pueden transmitirse en almacenamiento remoto, en donde las versiones respectivas pueden recuperarse posteriormente para restauración. Sin embargo, una cantidad ajustable de datos se transmite generalmente en la red en tal ejemplo, con lo cual consume ancho de banda costoso. En vista de lo anterior, será deseable implementar técnicas de respaldo basadas en red con eficiencia mejorada.
BREVE DESCRIPCION DE LA INVENCION Lo siguiente presenta una breve descripción simplificada del tema reclamado con el fin de proporcionar un entendimiento básico de algunos aspectos del tema reclamado. Esta breve descripción no es una revisión extensiva del tema reclamado. No pretende identificar elementos clave o críticos del tema reclamado ni delinear el alcance del tema reclamado. Su único propósito es presentar algunos conceptos del tema reclamado en una forma simplificada como un preludio a la descripción más detallada que se presenta a continuación.
Se proporcionan aquí sistemas y metodologías para facilitar técnicas de restauración altamente eficientes para sistemas de respaldo basados en red. Se puede utilizar un análisis basado en diferencial para que, para una resolución dada de una versión particular de un artículo que se va a restaurar, se calcule un nuevo diferencial completo entre una o más ubicaciones de respaldo remotas y un cliente de respaldo antes de transmitir datos en la red. Puede calcularse un diferencial para el cliente de respaldo y la ubicación de respaldo remota, por ejemplo, al comparar firmas correspondientes a una versión actual del artículo que se va a restaurar localizado en el cliente de respaldo y una versión deseada localizada en la ubicación de respaldo remota. Basándose en el diferencial calculado, la transmisión puede conducirse únicamente para bloques determinados para ser únicos entre la versión actual del artículo y su versión deseada, con lo cual se reduce la latencia de la restauración así como el ancho de banda de red consumido. Una vez obtenidos, los bloques únicos obtenidos desde una ubicación de respaldo remota pueden entonces fusionarse con bloques no únicos presentes en la versión actual del artículo ya localizado en el cliente de respaldo para obtener la versión completamente restaurada.
De acuerdo con un aspecto, puede emplearse una arquitectura híbrida, en donde las firmas y/o datos necesarios para conducir una restauración pueden hacerse disponibles para un cliente de respaldo desde una ubicación global dentro de una red o agrupación de Internet (por ejemplo, una "nube") así como desde una o más máquinas par asociadas con una máquina en la cual se localiza el cliente de respaldo. Por consiguiente, un cliente de respaldo puede obtener algo o toda la información necesaria para llevar a cabo una restauración de la nube o un par cercano, de esa forma reduciendo la latencia y el consumo de ancho de banda. En un ejemplo, la selección de ubicaciones puede utilizarse para almacenar y/o recuperar información de respaldo que puede seleccionarse en una forma inteligente y automatizada basándose en factores tal como disponibilidad de ubicaciones de red, con relación a carga, topología de red, o similares.
La siguiente descripción y los dibujos anexos describen en detalle ciertos aspectos ilustrativos del tema reclamado. Estos aspectos son indicativos, sin embargo, de algunas de las varias formas en las cuales pueden emplearse los principios del tema reclamado y el tema reclamado pretende incluir todos esos aspectos y sus equivalentes. Otras ventajas y características distintivas del tema reclamado serán evidentes a partir de la siguiente descripción del tema reclamado cuando se considera en conjunto con los dibujos.
BREVE DESCRIPCION DE LOS DIBUJOS La Figura 1 es un diagrama de bloques de alto nivel de un sistema para conducir una restauración de diferencial de información de respaldo de acuerdo con varios aspectos.
La Figura 2 es un diagrama de bloques de un sistema para generar información de respaldo de acuerdo con varios aspectos.
La Figura 3 es un diagrama de bloques de un sistema para generar firmas correspondientes a información de respaldo de acuerdo con varios aspectos.
La Figura 4 es un diagrama de bloques de un sistema para realizar un diferencial basado en firma de acuerdo con varios aspectos.
La Figura 5 es un diagrama de bloques de un sistema para implementar almacenamiento de respaldo basado en nube híbrida y de par a par de acuerdo con varios aspectos.
La Figura 6 es un diagrama de bloques de un sistema para conducir una restauración de diferencial en una arquitectura de respaldo basado en nube híbrida y de par a par de acuerdo con varios aspectos.
La Figura 7 ilustra una implementación de red ilustrativa que puede utilizarse en conexión con varios aspectos aquí descritos.
La Figura 8 es un cuadro de flujo de un método para realizar una restauración de archivo de diferencial.
La Figura 9 es un cuadro de flujo de un método para conducir un diferencial basado en firma de un archivo.
La Figura 10 es un cuadro de flujo de un método para obtener segmentos de archivo de un sistema de par a par/basado en nube híbrido.
La Figura 11 es un diagrama de bloques de un sistema de cómputo en el cual pueden funcionar varios aspectos aquí descritos.
La Figura 12 ilustra un diagrama de bloques esquemático de un ambiente de cómputo en red ilustrativo.
DESCRIPCION DETALLADA El tema reclamado ahora se describe con referencia a los dibujos, en donde números de referencia similares se utilizan para hacer referencia a elementos similares en el documento. En la siguiente descripción, para propósitos de explicación, se establecen numerosos detalles específicos con el fin de proporcionar un entendimiento completo del tema reclamado. Puede ser evidente, sin embargo, que el tema reclamado puede practicarse sin estos detalles específicos. En otros casos, se muestran estructuras y dispositivos bien conocidos en forma de diagrama de bloques con el fin de facilitar describir al tema reclamado.
Como se utiliza en esta solicitud, los términos "componente", "módulo", "sistema", "interfase", "esquema", "algoritmo", o similares generalmente pretenden hacer referencia a una entidad relacionada con computadora, ya sea hardware, una combinación de hardware y software, software, o software en ejecución. Por ejemplo, un componente puede ser, pero no está limitado a ser, un procedimiento que corre en un procesador, un procesador, un objeto, un ejecutable, una secuencia de ejecución, un programa, y/o una computadora. A manera de ilustración, tanto una aplicación que corre en un controlador como el controlador pueden ser un componente. Uno o más componentes pueden residir dentro de un procedimiento y/o secuencia de ejecución y un componente puede localizarse en una computadora y/o distribuirse entre dos o más computadoras.
Además, el tema reclamado puede implementarse como un método, aparato, o artículo de fabricación utilizando programación estándar y/o técnicas de ingeniería para producir software, firmware, hardware, o cualquier combinación de los mismos para controlar una computadora para implementar el tema descrito. El término "artículo de fabricación" como se utiliza aquí pretende abarcar un programa de computadora accesible desde cualquier dispositivo, portador, o medio legible por computadora. Por ejemplo, los medios legibles por computadora pueden incluir pero no están limitados a dispositivos de almacenamiento magnético (por ejemplo, disco duro, disco flexible, bandas magnéticas...), discos ópticos (por ejemplo, disco compacto (CD), disco versátil digital (DVD)...), tarjetas inteligentes, y dispositivos de memoria flash (por ejemplo, tarjeta, USB, unidad clave...). Adicionalmente, se debe apreciar que una onda portadora puede emplearse para transportar datos electrónicos legibles por computadora tal como aquellos utilizados al transmitir y recibir correo electrónico o al acceder a una red tal como Internet o una red de área local (LAN). Por supuesto, aquellos expertos en la técnica reconocerán que pueden hacerse muchas modificaciones a esta configuración sin apartarse del alcance o espíritu del tema reclamado.
Además, la palabra "ilustrativo(a)" se utiliza aquí para significar que sirve como un ejemplo, caso, o ilustración. Cualquier aspecto o diseño aquí descrito como "ilustrativo" no necesariamente debe interpretarse como preferido o ventajoso sobre otros aspectos o diseños. Más bien, el uso de la palabra ilustrativo desea presentar conceptos en una forma concreta. Como se utiliza en esta solicitud, el término "o" pretende significar un "o" inclusivo en lugar de un "o" exclusivo. Por lo tanto, a menos que se especifique de otra forma, o este claro a partir del contexto, "X emplea A o B" pretende significar cualquiera de los cambios inclusivos naturales. Es decir, si X emplea A, X emplea B; o X emplea tanto A como B, entonces "X emplea A o B" se satisface bajo cualquiera de los casos anteriores. Además, los artículos "un" y "uno" como se utiliza en esta solicitud y las reivindicaciones anexas generalmente debe interpretarse para significar "uno o más" a menos que se especifique de otra forma o esté claro a partir del contexto para dirigirse a una forma singular.
Haciendo referencia ahora a los dibujos, la Figura 1 ilustra un diagrama de bloques de un sistema 100 para conducir una restauración de diferencial desde la información de respaldo de acuerdo con varios aspectos aquí descritos. En un ejemplo, el sistema 100 puede utilizarse para restaurar archivos, imágenes de sistema, y/u otros datos desde una versión actual que reside en una máquina de cliente que implementa y/o de otra forma está asociada con el sistema 100 a una versión deseada que reside en un sistema de respaldo.
De acuerdo con un aspecto, el sistema 100 puede utilizarse en conexión con una solución de respaldo basada en red o en línea (por ejemplo, un sistema de respaldo de nube, como se describe en detalle adicional a continuación) que almacena información de respaldo desde una máquina de cliente en una o más ubicaciones de almacenamiento remotas en una red o una agrupación de Internet a la cual está asociada la máquina de cliente. Las soluciones de respaldo en línea convencionales operan al mantener un grupo de archivos obtenidos desde un cliente de respaldo en varios puntos en el tiempo en una ubicación de almacenamiento remoto. Subsecuentemente, la restauración se conduce al recuperar uno o más archivos de la ubicación de almacenamiento como se solicita. Sin embargo, se puede apreciar que restaurar información desde un sistema de respaldo en línea de esta forma puede consumir una cantidad de tiempo excesiva y/o ancho de banda asociado con recuperar archivos completos desde el almacenamiento de respaldo en línea. Además, se puede apreciar que tales sistemas generalmente recuperan archivos completos para operaciones de restauración, incluso en casos en donde, por ejemplo, únicamente una pequeña porción de datos en un archivo dado ha cambiado entre una versión actual almacenada en el cliente y la versión deseada en la ubicación remota. Por ejemplo, tales sistemas algunas veces están configurados para recuperar un archivo completo incluso cuando la versión actual del archivo en el cliente y la versión que se van a recuperar difieren únicamente en nombre y/o metadatos.
Otras soluciones de respaldo en línea convencionales pueden proporcionar almacenamiento remoto creciente, por ejemplo, al almacenar una versión original de información y al almacenar subsecuentemente actualizaciones crecientes que reflejan cambios a la versión original en lugar de almacenar múltiples versiones completas de la información. Sin embargo, las actualizaciones crecientes se almacenan y recuperan convencionalmente en tales sistemas en una forma acumulativa, para que un cliente de respaldo que desea regresar un archivo u otra información a través de múltiples versiones previas se requiera para recuperar actualizaciones crecientes correspondientes a cada versión previa a través de la cual se regresa la información. En algunos casos la cantidad de cambios a través de las versiones puede ser grande, lo que puede resultar en una gran cantidad de información que se comunica a través de la red y un gran requerimiento resultante de consumo de ancho de banda y/o tiempo, incluso si el cambio neto entre la versión actual y la versión deseada es relativamente pequeño.
Por consiguiente, para proporcionar eficiencia aumentada y tiempo inferior y requerimientos de consumo de ancho de banda en conexión con una restauración de la información de respaldo remotamente almacenada, el sistema 100 puede facilitar la restauración de diferencial de información. Más particularmente, cuando un usuario desea restaurar una versión previa de uno o más archivos, un componente de diferencial 110 puede utilizarse para conducir un diferencial entre la versión deseada y una versión actualmente almacenada por la máquina de usuario. De acuerdo con un aspecto, en lugar de invertir un procedimiento de actualización de diferencial creciente utilizado en la vida útil del archivo(s) y todos los respaldos asociados, el componente de diferencial 110 a su vez puede utilizar un grupo de firmas y/u otros indicadores para determinar únicamente los segmentos o bloques únicos que están presentes entre la versión deseada y la versión actual sin requerir inversión de cualquiera de los procedimientos crecientes.
De acuerdo con otro aspecto, al identificar una lista de bloques únicos entre una versión de archivo actual y una versión deseada, un componente de ubicación de bloque 120 puede utilizarse para identificar ubicaciones respectivas de los bloques únicos en una red asociada. De esa forma, se puede apreciar que al identificar, localizar, y/o recuperar únicamente bloques o segmentos de un archivo determinado por haber cambiado de una versión deseada de un archivo dado a su versión actual, el procedimiento de restauración conducido por el sistema 100 puede proporcionar requerimientos de latencia y ancho de banda reducidos y desempeño aumentado sobre soluciones de respaldo en línea tradicionales.
En un ejemplo, el componente de ubicación de bloque 120 puede utilizar un mapa, índice y/u otros metadatos que se refieren a las ubicaciones de bloques respectivos en una red asociada para recuperar bloques respectivos determinados para ser diferentes entre las versiones de archivo actuales y deseadas. En otro ejemplo, el componente de ubicación de bloque 120 puede localizar bloques en una forma inteligente y/o automatizada para describir una trayectoria de menos resistencia para obtener bloques respectivos. De esa forma, por ejemplo, el componente de ubicación de bloque 120 puede utilizar factores tal como disponibilidad de red, carga, o similares, para determinar una forma más eficiente para obtener segmentos o bloques de archivo. A manera de ejemplo específico, el componente de ubicación de bloque 120 puede determinar que un bloque dado está localizado tanto en una ubicación de almacenamiento de nube en Internet como en una o más máquinas de par asociadas con una red local. En tal ejemplo, el componente de ubicación de bloque 120 puede facilitar la recuperación del bloque desde el par disponible más cercano para facilitar la recuperación más rápida y conservar el ancho de banda de red, que cae de nuevo a la nube únicamente si no están disponibles los pares. Ejemplos de implementaciones que pueden utilizarse para una arquitectura de almacenamiento basada en par a par y/o nubes se proporcionan en detalle adicional a continuación.
De acuerdo con un aspecto adicional, después de que el componente de ubicación de bloque 120 identifica ubicaciones de bloques único respectivos correspondientes a un archivo dado, puede utilizarse un componente de restauración 130 para extraer los bloques identificados de las ubicaciones proporcionadas por el componente de ubicación de bloque 120 y para restaurar la versión deseada del archivo basándose en los bloque recuperados. En un ejemplo, las ubicaciones en las cuales el componente de restauración 130 recupera bloques identificados respectivos pueden establecerse por el componente de ubicación de bloque 120. Alternativamente, el componente de ubicación de bloque 120 puede proporcionar una lista de ubicaciones en las cuales se localizan uno o más bloques dados, basándose en que componente de restauración 130 puede seleccionar una ubicación para recuperar el bloque(s) en una forma automatizada basándose en disponibilidad, carga, consideraciones de ancho de banda, y/u otros factores adecuados. Por ejemplo, el componente de ubicación de bloque 120 puede proporcionar componente de restauración 130 con uno o más pares en los cuales se localizan los bloques dados así como una ubicación correspondiente en un sistema de almacenamiento de nube en Internet, y el componente de restauración 130 puede recuperar bloque(s) con una énfasis en utilizar máquinas de par cuando sea practicable para conservar el ancho de banda y reducir la latencia.
Después de que se han recuperado los bloques identificados correspondientes a una versión deseada de un archivo por el componente de restauración 130, el componente de restauración 130 puede recrear la versión deseada del archivo al fusionar los bloques recuperados con los bloques no únicos ya presentes localmente en la versión actual del archivo. La recreación de la versión deseada de un archivo puede realizarse al utilizar, por ejemplo, un algoritmo de diferencia inversa en el cual se regresan los cambios en la versión actual sobre la versión deseada al utilizar bloques obtenidos que corresponden a diferencias entre la versión actual del archivo y la versión deseada. Sin embargo, se debe apreciar que la restauración de archivo puede realizarse por el componente de restauración 130 al utilizar cualquier algoritmo adecuado al fusionar una versión de archivo actual con segmentos de archivo únicos asociados con una versión archivo deseada. Además, se debe apreciar que la construcción, identificación, y/o uso de bloques o segmentos de archivo puede realizarse por el sistema 100 en cualquier forma adecuada y que a menos que se mencione explícitamente de otra forma, las reivindicaciones anexas a esto no pretenden estar limitadas a ningún ejemplo específico de la segmentación o restauración de archivo.
Cambiando ahora a la Figura 2, se ilustra un sistema 200 para generar información de respaldo de acuerdo con varios aspectos.
Como ¡lustra la Figura 2, el sistema 200 puede incluir un componente de respaldo 210, que puede generar y facilitar almacenamiento de copias de respaldo de archivos, instantáneas de sistema, y/u otra información asociada con una máquina de cliente de respaldo. En un ejemplo, el componente de respaldo 210 puede residir en y/u operar desde una máquina en el cual se localiza la información de cliente para respaldarse. Adicional o alternativamente, el componente respaldo 210 puede recibir un dispositivo de cómputo separado (por ejemplo, como un componente remotamente ejecutado). En un ejemplo con el componente de respaldo 210 puede utilizarse para respaldar un grupo de archivos y/u otra información en un intervalo regular en el tiempo con la activación de uno o más eventos (por ejemplo, modificación de un archivo), y/o basándose en cualquier otro criterio de activación adecuado.
De acuerdo con un aspecto, el respaldo de un archivo puede conducirse en una forma creciente por el componente de respaldo 210 con el fin de reducir la cantidad de ancho de banda y/o espacio de almacenamiento requerido para implementar el sistema 200. Esto puede realizarse, por ejemplo, al dividir primero un archivo que se va a respaldar en segmentos de archivos respectivos (por ejemplo, bloques, fragmentos, etc.) al utilizar un componente de segmentación 212. En un ejemplo, la segmentación o fragmentación de un archivo puede realizarse por el componente de segmentación 212 en una forma que facilita el des-duplicado de segmentos de archivo respectivos. Por ejemplo, en un ejemplo específico, no limitante ¡lustrado por el sistema 300 en la Figura 3, un componente de segmentación 310 puede dividir una primera versión de un archivo (por ejemplo, Versión A 302) en un grupo de bloques uniformes y/o no uniformes, denotados en la Figura 3 como A1 a A4. Subsecuentemente, al detectar una modificación al archivo (por ejemplo, a la Versión B 304), el componente de segmentación 310 puede volver a segmentar el archivo en una forma consistente con la segmentación de la Versión A 302 para que cualquiera de los bloques en el archivo que difieren en estado de la Versión A 302 a la Versión B 304 sean fácilmente identificables. Por ejemplo, como se ilustra en la Figura 3, la Versión B 304 contiene un bloque, denotado en la Versión B 304 como B1, y ha cambiado de la Versión A 302 a la Versión B 304.
Con la detección de bloques únicos en una versión actualizada de un archivo, el componente de segmentación 310 (y, similarmente, el componente de segmentación 212 en el sistema 200) pueden facilitar el almacenamiento creciente de bloques nuevos y/o cambiados correspondientes a un archivo así como otra información que se relaciona con cambios entre versiones respectivas del archivo. Como el sistema 300 ilustra adicionalmente, estas actualizaciones, denominadas aquí generalmente como actualizaciones crecientes o delta, también pueden realizarse para facilitar almacenamiento de información que se relaciona con la adición de nuevos bloques de archivo (por ejemplo, una adición de bloque C1 en la Versión C 306), remoción de bloques de archivo (por ejemplo, una eliminación de bloque A4 en la Versión D 308), y/o cualquier otra operación y/o modificación de archivo adecuada.
Regresando al sistema 200 en la Figura 2, con la generación de bloques o segmentos correspondientes a un archivo, varios bloques correspondientes a archivos y/o actualizaciones de archivo respectivos pueden proporcionarse a un componente de distribución de segmento 214. El componente de distribución de segmento 214, a su vez, puede distribuir los bloques entre uno o más almacenamientos de segmento 220 en una o más ubicaciones de almacenamiento de red. Los almacenamientos de segmento 220 pueden estar asociados con, por ejemplo, máquinas de par en una red local, un servicio de almacenamiento de nube y/u otra ubicación de almacenamiento basada en Internet adecuada, y/o cualquier otro sitio de almacenamiento. Se describen técnicas para distribuir información entre ubicaciones de almacenamiento de red en detalle adicional a continuación.
De acuerdo con un aspecto, un componente de generación de firma 216 puede emplearse adicionalmente por el componente de respaldo 210 para generar información de firma correspondiente a uno o más archivos y/o versiones de los mismos como segmentados por el componente de segmentación 212. Por ejemplo, como se ilustra por el diagrama 300 en la Figura 3, el componente de generación de firma 320 puede utilizarse para generar firmas respectivas 322-328 correspondientes a versiones respectivas 302-308 de un archivo particular. Adicional o alternativamente, las firmas generadas por el componente de generación de firma 216 pueden corresponder a bloques individuales, grupos de bloques (por ejemplo, bloques en un archivo y/o una actualización creciente a un archivo), archivos completos y/o versiones de archivo, y/o cualquier otra agrupación adecuada. A manera de ejemplo específico, no limitante, los bloques respectivos pueden estar pre-configurados a un tamaño uniforme (por ejemplo, 4 kilobytes (kb)), y firmas respectivas pueden configurarse para representar un número de bloques uniforme predeterminado (por ejemplo, 12). Sin embargo, se debe apreciar que puede utilizarse cualquier tamaño de bloque y/o estructura de firma adecuada.
En un ejemplo, una firma creada por el componente de generación de firma 216 puede utilizarse para identificar los bloques o segmentos presentes en una versión dada de un archivo. Además, el componente de segmentación 212 puede configurarse para realizar segmentación consistentemente a través de versiones respectivas de un archivo para que las firmas generadas para versiones respectivas de un archivo indiquen cambios a través de las versiones respectivas. Por consiguiente, puede identificarse un grupo de bloques únicos entre una versión actual de un archivo y una versión deseada como se ilustra por el sistema 400 en la Figura 4.
Como ilustra la Figura 4, un componente de diferencial 420 puede tener asociado con este y de otra forma estar configurado para obtener una firma 424 que corresponde a una versión actual de un archivo que se va a restaurar. Al determinar que se desea restaurar el archivo de nuevo a una versión previa dada, una fuente de firma 410 puede proporcionar una firma correspondiente asociada con la versión deseada. Basándose en las firmas asociadas con ambas versiones, un componente comparador 422 entonces puede comparar las firmas respectivas para obtener las identidades de bloques que son únicas entre la versión desea y la versión actual. De esa forma, se puede apreciar que, en un ejemplo, el componente de comparador 420 puede realizar un diferencial basado en firma para determinar las identidades de bloques únicos respectivos que se requieren para una restauración exitosa de un archivo dado. En otro ejemplo, la fuente de firma 410 puede asociarse con un dispositivo al cual el componente de diferencial 420 está asociado y/u otro dispositivo adecuado (por ejemplo, un proveedor de servicio de nube, un par o súper-par, etc.). A manera de ejemplo no limitante; la fuente de firma 410 puede implementarse como un índice que enlista la versión que rastrea versiones respectivas de información en un sistema asociado y sus firmas correspondientes. En un ejemplo, el índice puede distribuirse en una pluralidad de ubicaciones de red, tal como pares, súper pares, o ubicaciones de almacenamiento de nube en el sistema asociado. Sin embargo, se debe apreciar que tal implementación es simplemente un ejemplo de una implementación de puede utilizarse y que, a menos que se mencione explícitamente de otra forma, las reivindicaciones anexas a esto no pretenden estar limitadas a tal implementación.
Cambiando ahora a la Figura 5, se ilustra un diagrama de bloques de un sistema 500 para implementar almacenamiento de respaldo basado en nube y de par a par híbrido de acuerdo con varios aspectos. Como ilustra la Figura 5, el sistema 500 puede incluir un componente de segmentación 510, que puede generar segmentos o bloques de archivo correspondientes a un archivo y/o versiones respectivas de los mismos como se describió anteriormente. En un ejemplo, los bloques generados por el componente de segmentación 510 pueden proporcionarse a un componente de distribución de segmento 520, que puede proporcionar bloques respectivos a una o más ubicaciones de almacenamiento asociadas.
De acuerdo con un aspecto, una arquitectura de par a par híbrida (P2P) y basada en nube puede utilizarse por el sistema 500, para que el componente de distribución de segmento 520 pueda hacer piezas de datos utilizadas para conducir una operación de restauración y/o firmas que se relacionan con esto disponibles en uno o más pares confiados, tal como par(es) 532 y/o súper-par(es) 534, así como en una o más ubicaciones de almacenamiento de nube 536. Como se ilustra además en el sistema 500, el par(es) 532, súper-par(es) 534, y/o almacenamiento de nube 536 además pueden ser operables para comunicar segmentos de archivo, firmas, y/u otra información entre sí. Además, se puede apreciar que el componente de segmentación 510, componente de distribución de segmento 520, y/o cualquier otros componentes del sistema 500 adicionalmente pueden estar asociados con uno o más pares 532, súper-pares 534, o entidades asociadas con el almacenamiento de nube 536. Se proporciona a continuación detalle adicional con respecto a técnicas por las cuales pueden utilizarse par(es) 532, súper-par(es) 534, y almacenamiento de nube 536, así como detalle adicional con respecto a la función de tales entidades dentro de una arquitectura híbrida.
De acuerdo con otro aspecto, el componente de distribución de segmento 520 puede incluir y/o de otra forma estar asociado con un componente de indexado 522, que puede mantener un índice que enlista relaciones de delineado respectivas entre bloques generados por el componente de segmentación 510 y ubicaciones correspondientes a las cuales se han distribuido los bloques. En un ejemplo, este índice puede distribuirse junto con bloques representados ahí con uno o más pares 532, súper-pares 534, o ubicaciones de almacenamiento de nube 536. Se puede apreciar que puede distribuirse un índice completo a una o más ubicaciones, o que un índice por sí mismo puede segmentarse y distribuirse entre múltiples ubicaciones.
De acuerdo con un aspecto adicional, el componente de distribución de segmento 520 además puede incluir opcionalmente un componente de analizador de red 524, que puede analizar una red de cómputo asociada con el sistema 500 para determinar una o más ubicaciones para distribuir bloques, índices, segmentos de índice respectivos, o similares. En un ejemplo, el componente de analizador de red 524 puede seleccionar uno o más destinos para que la información se distribuya basándose en carga de red, disponibilidad de ubicaciones de almacenamiento (por ejemplo, basándose en niveles de actividad de dispositivo, estado de encendido o apagado, espacio de almacenamiento disponible en ubicaciones respectivas, etc.). o similares. Esto puede hacerse, por ejemplo, para balancear la disponibilidad de varios datos con localidad óptima.
Un sistema 500 además ilustra, un componente de aprendizaje y razonamiento de máquina (MLR) 526 que puede emplearse adicionalmente por el componente de analizador de red 524 para facilitar la selección inteligente, automatizada de ubicaciones de almacenamiento para información respectiva. En un ejemplo, el componente MLR 526 puede utilizar cualquier inteligencia artificial adecuada (Al), aprendizaje de máquina, y/u otro algoritmo(s) generalmente conocido en la técnica. Como se utiliza en esta descripción, el término "inteligencia" se refiere a la capacidad de razonar o extraer conclusiones sobre, por ejemplo, inferir, el estado actual o futuro de un sistema basándose en información existente sobre el sistema. La inteligencia artificial puede emplearse para identificar un contexto o acción específica, o generar una distribución de probabilidad de estados específicos de un sistema sin intervención humana. La inteligencia artificial confía en aplicar algoritmos matemáticos avanzados (por ejemplo, árboles de decisión, redes neurales, análisis de regresión, análisis de grupo, algoritmo genético, y aprendizaje reforzado) a un grupo de datos disponibles (información) en el sistema. Por ejemplo, una o más de numerosas metodologías pueden emplearse para aprendizaje de datos y entonces extraer inferencias de modelos así construidos, por ejemplo, modelos Markov ocultos (HMM) y modelos de dependencia de prototipo relacionados, modelos gráficos probabilísticos más generales, tales como redes bayesianas, por ejemplo, creados por búsqueda de estructura al utilizar una marca o aproximación de modelo bayesiano, clasificadores lineales, tales como máquinas de lector de soporte (SVM), clasificadores no lineales, tales como métodos denominados como metodologías de "red neural", metodologías de lógica confusa, y otros acercamientos (que realizan fusión de datos, etc.) de acuerdo con implementar varios aspectos automatizados aquí descritos.
Haciendo referencia a la Figura 6, se ilustra un sistema 600 para conducir una restauración diferencial en una arquitectura de respaldo basada en nube híbrida y de par a par de acuerdo con varios aspectos. Como ilustra el sistema 600, puede utilizarse una arquitectura de respaldo P2P de híbrida/de nube, en donde los datos de respaldo correspondientes a uno o más dispositivos de cómputo se distribuyen entre una o más máquinas de par 610 ó 640 y/o una o más máquinas de súper par 650, así como una o más ubicaciones de almacenamiento de nube 660.
En un ejemplo, las máquinas de par 640 pueden incluir almacenamientos de bloques respectivos 642, que pueden utilizarse para recibir y mantener un grupo de bloques correspondientes a uno o más archivos o actualizaciones delta a archivo respectivos. Los archivos y/o actualizaciones ahí que pueden asociarse con, por ejemplo, un par de restauración 610 (por ejemplo, como creado por un componente de segmentación 510 y distribuido por un componente distribución de segmento 520). Además, aunque no se ilustra en el sistema 600, un par de restauración 610 puede incluir adicional o alternativamente un almacenamiento de bloque para almacenar localmente uno o más bloques correspondientes a archivos y/o actualizaciones delta de archivos que residen localmente en el par de restauración 610.
En otro ejemplo, uno o más súper pares 650 en el sistema 600 adicionalmente pueden incluir un almacenamiento de bloque 652 así como un índice de archivo-bloque 654, que puede proporcionar un listado maestro de bloques de archivo almacenados dentro del sistema 600 y sus ubicación respectivas (por ejemplo, como creado por un componente de indexado 522). Aunque el índice de bloque de archivos 654 se ilustra como localizado en el súper par 650 en el sistema 600, se debe apreciar que algo o todo el índice de bloque de archivo 654 puede localizarse adicional o alternativamente en uno o más pares 610 y/o 640 así como en el almacenamiento de nube 660.
De acuerdo con un aspecto, al identificar que se desea una restauración de una versión de información que reside en un par de restauración 610 a una versión previa, puede conducirse un diferencial basada en firma entre la versión que reside en el par de restauración 610 y la versión deseada para determinar identidades de uno o más bloques que no coinciden entre las versiones, de acuerdo con varios aspectos descritos anteriormente. Siguiendo la comparación de firma, un componente de ubicación de bloque 620 puede utilizar un componente de revisión de índice 622 para obtener metadatos del índice de archivo-bloque 654 y/o cualquier otra fuente adecuada que señala las ubicaciones respectivas de bloques determinados para ser únicos entre la versión de la información que se va a restaurar como localizado en el par de restauración 610 y la versión deseada.
Basándose en las ubicaciones obtenidas por el componente de revisión de índice 622, el componente de ubicación de bloque 620 y/o un componente de restauración 630 puede extraer los bloques únicos de sus ubicaciones correspondientes dentro del almacenamiento(s) de bloque 642 ó 652, almacenamiento de bloque 662, y/o cualquier otra ubicación de almacenamiento adecuada dentro del sistema 600. Una vez obtenidos, los bloques entonces pueden, fusionarse con los bloques no únicos ya presentes en la versión actual de la información que se va a restaurar para recrear la versión deseada. Por consiguiente, en un ejemplo, al conducir un diferencial basado en firma entre una versión de archivo actual y una versión de archivo que se va a restaurar, puede conducirse una restauración al extraer únicamente los bits o bloques que difieren entre las versiones independientemente de actualizaciones crecientes. En un ejemplo, se puede determinar (por ejemplo, por el componente de revisión de índice 622 o de otra forma) que uno o más bloques ya están localmente presentes en el par de restauración 610 (por ejemplo, debido a que los bloques son parte de uno o más de otros archivos en el par de restauración 610). En tal caso, los bloques locales determinados pueden utilizarse en lugar de extraer los bloques de una o más de otras ubicaciones en el sistema 600.
De esa forma, a manera de ejemplo específico ilustrado en el almacenamiento de nube 660, versiones respectivas de un archivo, observadas como la versión original y versiones subsecuentes Y, y Z, pueden almacenarse junto con actualizaciones crecientes entre versiones consecutivas (por ejemplo, Original y, Y, Y, y Z, etc.). Subsecuentemente, si un usuario desea restaurar la versión original del archivo de la Versión Z, un diferencial basado en firma puede utilizarse para extraer únicamente los bloques que son únicos entre la versión original y la versión Z sin requerir una inversión completa de las actualizaciones crecientes entre la versión original y la versión Y, y entre la versión Y, y la versión Z o descarga de las entidades de tales actualizaciones.
En otro ejemplo, la arquitectura de respaldo P2P híbrido/de nube del sistema 600 puede explotarse para minimizar la latencia y/o ancho de banda requerida para restaurar uno o más archivos en un par de restauración 610. Por ejemplo, el componente de ubicación de bloque 620 puede utilizar un componente de análisis de red 624, que puede analizar el sistema 600 y facilitar la extracción de segmentos de archivo respectivos desde la trayectoria de la menor resistencia a través del sistema 600. De esa forma, por ejemplo, en el caso que bloque dado reside en un almacenamiento de bloque 642 ó 652 en un par 640 o súper par 650 así como en el almacenamiento de nube 660, puede proporcionarse preferencia para extraer el bloque desde los modos de red más cercanos primero. Como un resultado, se puede dar prioridad a un par 640 y/o súper par 650 sobre el almacenamiento de nube 660 para minimizar la latencia y el uso de ancho de banda asociado con comunicarse con el almacenamiento de nube 660.
Adicional o alternativamente, el componente de análisis de red 624 puede analizar la disponibilidad de nodos respectivos en el sistema 600, con relación a la carga de red, y/u otros factores para facilitar la selección inteligente del nodo de los cuales se obtienen bloque respectivos. Por consiguiente, un par de restauración 610 puede configurarse para intentar primero obtener un grupo de bloques de una máquina de par 640 ó un súper par 650, que cae de regreso en el almacenamiento de nube 660 solamente si no están disponibles pares 640 y/o 650 con bloque(s) requerido. En otro ejemplo, puede utilizarse un componente MLR 626 para facilitar la automatización del procedimiento de seleccionar un nodo de red del cual se obtienen bloques.
En un ejemplo alternativo, mientras se ilustra el componente de análisis de red 624 en el sistema 600 como asociado con un par de restauración 610, puede apreciarse que un súper par 650 y/u otra entidad de la cual un par de restauración 610 accede a un índice de bloque de archivos 654 puede utilizar análisis de red similar con el fin de seleccionar una ubicación óptima para bloques respectivos de entre una pluralidad de ubicaciones para los bloques respectivos indicados por el índice de archivo-bloque 654. Una vez seleccionada, tal ubicación(es) puede proporcionarse subsecuentemente para un par de restauración 610.
De acuerdo con un aspecto, después de obtener los bloques únicos requeridos para restaurar uno o más archivos a una versión deseada, el componente de restauración 630 en el par de restauración 610 puede utilizarse para fusionar los bloques únicos obtenidos con los bloques no únicos ya presentes localmente en la versión actual del archivo(s), con lo cual se restaura el archivo(s) a la versión deseada. A manera de ejemplo específico, no limitante, puede utilizarse un algoritmo de diferencia inverso por el componente de restauración 630, en donde una o más diferencias observadas entre la versión actual y la versión deseada se substraen de la versión actual con el fin de regresar a la versión deseada. Tal substracción puede basarse en firmas o verificaciones correspondientes a las versiones de archivo respectivas y/o cualquier otra información adecuada que se relaciona con las versiones de archivo respectivas. Sin embargo, se debe apreciar, que tal algoritmo es simplemente un ejemplo de una técnica de restauración que puede utilizarse, y que cualquier otro algoritmo de restauración puede utilizarse además de o en lugar de tal algoritmo.
Haciendo referencia después a la Figura 7, se proporciona un diagrama 700 que ilustra una implementación de red ilustrativa que puede utilizarse en conexión con varios aspectos aquí descritos.
Como el diagrama 700 ¡lustra, una implementación de red puede utilizar una estructura de par a par híbrida y basada en nube, en donde un proveedor de servicio de nube 710 interactúa con uno o más súper pares 720 y uno o más pares de 730-740.
De acuerdo con un aspecto, el proveedor de servicio de nube 710 puede utilizarse para implementar remotamente uno o más servicios de cómputo desde una ubicación dada en una red/agrupación de Internet asociados con súper par(es) 720 y/o par(es) 730-740 (por ejemplo, Internet). El proveedor de servicio de nube 710 puede originarse desde una ubicación, o alternativamente el proveedor de servicio de nube 710 puede implementarse como un proveedor de servicio basado en Internet distribuido. En un ejemplo, el proveedor de servicio de nube 710 puede utilizarse para proporcionar funcionalidad de respaldo a uno o más pares 720-740 asociados con el proveedor de servicio de nube 710. Por consiguiente, el proveedor de servicio de nube 710 puede implementar un servicio de respaldo 712 y/o proporcionar almacenamiento de datos asociados 714.
En un ejemplo, el almacenamiento de datos 714 puede interactuar con un cliente de respaldo 722 en el súper par 720 y/o clientes de respaldo 732 ó 742 en pares respectivos 730 ó 740 para servir como la ubicación de almacenamiento central para datos que residen en las entidades de par respectivas 720-740. De esta forma, el proveedor de servicio de nube 710, a través del almacenamiento de datos 714, puede servir efectivamente como una "caja de seguridad" en línea para datos localizados en pares 720-740. Se puede apreciar que el respaldo puede conducirse para cualquier tipo(s) adecuado de información, tal como archivos (por ejemplo, documentos, fotos, audio, video, etc.), información de sistema, o similares. Adicional o alternativamente, el almacenamiento de red distribuido puede implementarse, para que el súper par 720 y/o pares 730-740 también estén configurados para incluir almacenamiento de datos respectivos 724, 734, y/o 744 para datos de respaldo asociados con una o más máquinas en la red local asociada. En otro ejemplo, las técnicas tales como des-duplicado, almacenamiento creciente, y/u otras técnicas adecuadas pueden utilizarse para reducir la cantidad de espacio de almacenamiento requerido por el almacenamiento de datos 714, 724, 734, y/o 747 en una o más entidades correspondientes en la red representada por el diagrama 700 para implementar un servicio de respaldo basado en nube.
De acuerdo con otro aspecto, el proveedor de servicio de nube 710 puede interactuar con una o más máquinas de par 720, 730, y/o 740, como se ilustra en el diagrama 700, uno o más pares 720 pueden estar diseñados como un súper par y pueden servir como una relación entre el proveedor de servicio de nube 710 y uno o más de otros pares 730-740 en una red local asociada. Aunque no se ilustra en la Figura 7, se debe apreciar que cualquier par adecuado 730 y/o 740, así como súper par(es) designados 720, pueden interactuar directamente con el proveedor de servicio de nube 710 como se reclamé apropiado. De esa forma, se puede apreciar que el proveedor de servicio de nube 710, súper par(es) 720, y/o pares 730 ó 740 pueden comunicarse entre sí en cualquier momento adecuado para sincronizar archivos u otra información entre las entidades respectivas ilustradas por el diagrama 700.
En un ejemplo, el súper par 720 puede ser una entidad central en una red asociada con pares 720-740, tal como una red de distribución de contenido (CDN), un servidor de empresa, un servidor doméstico, y/o cualquier otro dispositivo(s) de cómputo adecuado determinado para tener la capacidad de actuar como un súper par en la forma descrita aquí. Además de la funcionalidad de par estándar, el súper par(es) 720 puede ser responsable de recolectar, distribuir, y/o indexar datos entre pares 720-740 en la red local. Por ejemplo, el súper par 720 puede mantener un índice de almacenamiento 726, que puede incluir las entidades de archivos y/o segmentos de archivo respectivos correspondientes a los pares 720-740 así como señalador(es) para ubicación(es) respectiva en la red y/o en el almacenamiento de datos de nube 714 en donde los archivos o segmentos de los mismos pueden encontrarse. Adicional o alternativamente, el súper par 720 puede actuar como una puerta entre otros pares 730-740 y un proveedor de servicio de nube 710, por ejemplo, al cargar datos respectivos al correo de servicio de nube 710 en periodos fuera de pico designados a través de un componente de carga de nube 728. En otro ejemplo, el súper par 720 puede servir como una caché para datos "calientes" o "fríos", para que los datos que muy probablemente se van a restaurar como una copia localizada más cerca del par de restauración de origen y, con el tiempo, se distribuyan más copias a partes "más frías" del sistema distribuido (por ejemplo, almacenamiento de datos 714 en el proveedor de servicio de nube 710).
Cambiando a las Figuras 8-10, se ilustran las metodologías que pueden implementarse de acuerdo con varias características aquí presentadas a través de series respectivas de actos. Se debe apreciar que las metodologías aquí reclamadas no están limitadas por el orden de actos, ya que algunos actos pueden ocurrir en diferentes órdenes, o concurrentemente con otros actos de los que se muestran y describen aquí. Por ejemplo, aquellos expertos en la técnica entenderán y apreciarán que una metodología puede representarse alternativamente como una serie de estados o eventos interrelacionados, tal como en un diagrama de estado. Además, no todos los actos ilustrados pueden requerirse para implementar una metodología como se reclama aquí.
Haciendo referencia a la Figura 8, se ilustra un método 800 para realizar una restauración de archivo de diferencial. En 802, una versión localmente disponible de uno o más archivos y una versión deseada a la cual se van a restaurar uno o más archivos se identifican. En 804, se identifican los bloques en uno o más archivos identificados en 802 que difieren de la versión localmente disponible a la versión deseada. La identificación en 804 se hace al menos en parte al conducir un diferencial entre la versión localmente disponible y la versión deseada (por ejemplo, al utilizar un componente de diferencial 110). En 806, los bloques identificados en 804 se obtienen (por ejemplo, por un componente de ubicación de bloque 120 y/o un componente de restauración 130) de uno o más almacenamientos de datos (por ejemplo, pares 532, súper pares 534, y/o almacenamiento en nube 536). En 808, la versión deseada de uno o más archivos identificados en 802 se restaura al menos en parte al fusionar los bloques obtenidos en 806 con uno o más bloques en la versión localmente disponible de uno o más archivos.
Haciendo referencia ahora a la Figura 9, se proporciona un cuadro de flujo de un método 900 para conducir un diferencial basado en firma de un archivo. En 902, se identifican una o más firmas (por ejemplo, firma 424) correspondientes a bloques respectivos en una versión actual. En 904, se reciben una o más firmas (por ejemplo, de una fuente de firma 410) que corresponden a bloques respectivos en una versión deseada a la cual se va a restaurar el archivo identificado 902. En 906, se identifican uno o más bloques que son únicos entre la versión actual del archivo y la versión deseada del archivo al comparar las firmas identificadas en 902 y 904 (por ejemplo, a través de un componente de comparador 422). En 908, se obtienen los bloques únicos identificados en 906 de uno o más almacenamientos de bloque asociados.
La Figura 10 ilustra un método 1000 para obtener segmentos de archivo de un sistema de par a par híbrido/basado en nube. En 1002, se identifica un grupo de segmentos de archivo que se va a obtener de un grupo de pares (por ejemplo, pares 610 ó 640 y/o súper par 650) y/o ubicaciones de almacenamiento de nube (por ejemplo, almacenamiento de nube 660) en una red. En 1004, se seleccionan una o más ubicaciones en la red para obtener segmentos de archivo respectivos (por ejemplo, por un componente de ubicación de bloque 620) como una función de carga de red, disponibilidad de ubicación, latencia de red, y/o uso de ancho de banda (por ejemplo, cómo se determina por un componente análisis de red 624). En 1006, los segmentos de archivo se obtienen de las ubicaciones seleccionadas en 1004.
Con el fin de proporcionar contexto adicional para varios aspectos aquí descritos, la Figura 11 y la siguiente discusión pretenden proporcionar una breve descripción general de un ambiente de cómputo adecuado 1100 en donde pueden implementarse los varios aspectos del tema reclamado. Adicionalmente, aunque las características adicionales se han descrito anteriormente en el contexto general de instrucciones ejecutables por computadora que pueden correr en una o más computadoras, aquellos expertos en la técnica reconocerán que el tema reclamado también puede implementarse en combinación con otros módulos de programa y/o como una combinación de hardware y software.
Generalmente, los módulos de programa incluyen rutinas, programas, componentes, estructuras de datos, etc., que realizan tareas particulares o implementan tipos de datos abstractos particulares. Además, aquellos expertos en la técnica apreciarán que el tema reclamado puede practicarse con otras configuraciones de sistema de computadora, que incluyen sistemas de computadora de procesador individual o multiprocesador, minicomputadoras, macrocomputadoras, así como computadoras personales, dispositivos de cómputo portátiles, electrónica de consumidor basada en microprocesador programable, y similares, cada una de las cuales puede acoplarse operativamente a uno o más dispositivos asociados.
Los aspectos ilustrados también pueden practicarse en ambientes de cómputo distribuidos en donde ciertas tareas se realizan por dispositivos de procesamiento remotos que se enlazan a través de una red de comunicaciones. En un ambiente de cómputo distribuido, los módulos de programa pueden localizarse tanto en dispositivos de almacenamiento de memoria local como remota.
Una computadora típicamente incluye una variedad de medios legibles por computadora. Los medios legibles por computadora puede ser cualquier medio disponible que puede accederse por la computadora e incluye tanto medios volátiles como no volátiles, medios removibles y no removibles. A manera de ejemplo, y no de limitación, los medios legibles por computadora pueden comprender medios de almacenamiento por computadora y medios de comunicación. Los medios de almacenamiento por computadora pueden incluir tanto medios volátiles como no volátiles, removibles y no removibles implementados en cualquier método o tecnología para almacenamiento de información tal como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos. Los medios de almacenamiento por computadora incluyen, pero no se limitan a, RAM, ROM, EEPROM, memoria flash u otra tecnología de memoria, CD-ROM, disco versátil digital (DVD) u otro almacenamiento de disco óptico, casetes magnéticos, cinta magnética, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede utilizarse para almacenar la información deseada y que puede accederse por la computadora.
Los medios de comunicación típicamente representan instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos en una señal de datos modulada tal como una onda portadora u otro mecanismo de transporte, e incluye cualquier medio de entrega de información. El término "señal de datos modulada" significa una señal que tiene una o más de sus características establecidas a cambiadas de tal forma para codificar información en la señal. A manera de ejemplo, y no de limitación, los medios de comunicación incluyen medios por cable tal como red por cable o conexión por cable directa, y medios inalámbricos tales como medios acústicos, RF, infrarrojos y otros inalámbricos. Combinaciones de cualquiera de los anteriores también deben incluirse dentro del alcance de medios legibles por computadora.
Con referencia de nuevo a la Figura 11, el ambiente ilustrativo 1100 para implementar varios aspectos aquí descritos incluye una computadora 1102, la computadora 1102 que incluye una unidad de procesamiento 1104, una memoria de sistema 1106 y un conductor común de sistema 1108. El conductor común de sistema 1108 acopla a componentes de sistema que incluyen, pero no se limitan a, la memoria de sistema 1106 a la unidad de procesamiento 1104. La unidad de procesamiento 1104 puede ser cualquiera de varios procesadores comercialmente disponibles. Los microprocesadores dobles y otras arquitecturas de multiprocesador también pueden emplearse como la unidad de procesamiento 1104.
El conductor común de sistema 1108 también puede ser de varios tipos de estructura de conductor común que además pueden interconectarse a un conductor común de memoria (con o sin un controlador de memoria), un conductor común periférico, y un conductor común local que utiliza cualquiera de una variedad de arquitecturas de conductor común comercialmente disponibles. La memoria de sistema 1106 incluye memoria de sólo lectura (ROM) 1110 y memoria de acceso aleatorio (RAM) 1112. Un sistema de entrada/salida básico (BIOS) se almacena en una memoria no volátil 1110 tal como ROM, EPROM, EEPROM, dicho BIOS contiene las rutinas básicas que ayudan a transferir información entre elementos dentro de la computadora 1102, tal como durante el arranque. La RAM 1112 también puede incluir una RAM de alta velocidad tal como RAM estática para guardar en memoria caché los datos.
La computadora 1102 además incluye una unidad de disco duro interno (HDD) 1114 (por ejemplo, EIDE, SATA), cuya unidad de disco duro interna 1114 puede estar configurada también para uso externo en una estructura adecuada (no mostrada), una unidad de disco flexible magnético (FDD) 1116, (por ejemplo, para leer desde o escribir hacia un disco removible 1118) y una unidad de disco óptico 1120, (por ejemplo, que lee un disco CD-ROM 1122 ó, para leer desde o escribir a otro medio óptico de capacidad alta tal como el DVD). La unidad de disco duro 1114, unidad de disco magnético 1116 unidad de disco óptico 1120 pueden conectarse al conductor común de sistema 1108 mediante una interfase de unidad de disco duro 1124, una interfase de unidad de disco magnético 1126 y una interfase de unidad óptica 1128, respectivamente. La interfase 1124 para implementaciones de unidad externas incluye al menos una o ambas de las tecnologías de Conductor Común en Serie Universal (USB) y de interfase IEEE 1394. Otras tecnologías de conexión de unidad externa están dentro de contemplación de la descripción en cuestión.
Las unidades y sus medios legibles por computadora asociados proporcionan almacenamiento no volátil de datos, estructuras de datos, instrucciones ejecutables por computadora, y así sucesivamente. Para la computadora 1102, las unidades y medios incorporan el almacenamiento de cualquiera de los datos en un formato digital adecuado. Aunque la descripción de los medios legibles por computadora anteriores se refiere a un HDD, un disco magnético removible, y un medio óptico removible tal como un CD o DVD, se debe apreciar por aquellos expertos en la técnica que otros tipos de medios que son legibles por una computadora, tal como unidad Zip, casetes magnéticos, tarjetas de memoria flash, cartuchos, y similares, también pueden utilizarse en el ambiente operativo ilustrativo, y además, que cualquiera de esos medios puede contener instrucciones ejecutables por computadora para realizar los métodos aquí descritos.
Un número de módulos de programa puede almacenarse en las unidades y RAM 1112, que incluye un sistema operativo 1130, uno o más programas de aplicación 1132, otros módulos de programa 1134 y datos de programa 1136. Todo o porciones del sistema operativo, aplicaciones, módulos, y/o datos también pueden guardarse en memoria caché en la RAM 1112. Se aprecia que el tema reclamado puede implementarse con varios sistemas operativos comercialmente disponibles o combinaciones de sistemas operativos.
Un usuario puede ingresar comandos e información en la computadora 1102 a través de uno o más dispositivos de entrada por cable/inalámbrico, por ejemplo, un teclado 1138 y un dispositivo de señalamiento, tal como un ratón 1140. Otros dispositivos de entrada (no mostrados) pueden incluir un micrófono, un control remoto de IR, una palanca de manos, una almohadilla de juegos, una pluma de estilete, pantalla táctil, o similares. Estos y otros dispositivos de entrada frecuentemente están conectados a la unidad de procesamiento 1104 a través de una interfase de dispositivo de entrada 1142 que está acoplado al conductor común de sistema 1108, pero puede conectarse mediante otras interfases, tal como un puerto paralelo, un puerto en serie de IEEE 1394, un puerto de juegos, un puerto de USB, una interfase de IR, etc.
Un monitor 1144 u otro tipo de dispositivo de presentación también está conectado al conductor común de sistema 1108 a través de una interfase, tal como un adaptador de video 1146. Además del monitor 1144, una computadora típicamente incluye otros dispositivos de salida periféricos (no mostrados), tales como bocinas, impresoras, etc.
La computadora 1102 puede operar en un ambiente en red que utiliza conexiones lógicas a través de comunicaciones por cable y/o inalámbricas a una o más computadoras remotas, tal como una computadora(s) remota 1148. La computadora(s) remota 1148 puede ser una estación de trabajo, una computadora de servidor, un enrutador, una computadora personal, una computadora portátil, un aparato de entretenimiento basado en microprocesador, un dispositivo par u otro nodo de red común, y típicamente incluye muchos o todos elementos descritos con relación a la computadora 1102, aunque, para propósitos de brevedad, solamente se ilustra un dispositivo de memoria/almacenamiento 1150. Las conexiones lógicas ilustradas incluyen conectividad por cable/inalámbrica a una red de área local (LAN) 1152 y/o redes más grandes, por ejemplo, una red de área ancha (WAN) 1154. Tales ambientes en red LAN y WAN comúnmente están ubicados en oficinas y compañías, y facilitan las redes de computadora extendidas en empresa, tal como intranets, todas de las cuales pueden conectarse a una red de comunicaciones global, etc., Internet.
Cuando se utiliza en un ambiente en red LAN, la computadora 1102 se conecta a la red local 1152 a través de una interfase o adaptador de red de comunicación por cable y/o inalámbrico 1156. El adaptador 1156 puede facilitar la comunicación por cable o inalámbrica a la LAN 1152, que también puede incluir un punto de acceso inalámbrico dispuesto sobre ésta para comunicarse con el adaptador inalámbrico 1156.
Cuando se utiliza en un ambiente en red WAN, la computadora 1102 puede incluir un módem 1158, o está conectada a un servidor de comunicaciones en la WAN 1154, o tiene otros medios para establecer comunicaciones en la WAN 1156, tal como a manera de Internet. El módem 1158, que puede ser interno o externo y un dispositivo por cable o inalámbrico, está conectado al conductor común de sistema 1108 a través de la interfase de puerto en serie 1142. En un ambiente en red, los módulos de programa ilustrados relativos a la computadora 1102, o porciones de la misma, pueden almacenarse al dispositivo de memoria/almacenamiento remoto 1150. Se debe apreciar que las conexiones de red mostradas son ilustrativas y pueden utilizarse otros medios para establecer un enlace de comunicaciones entre las computadoras.
La computadora 1102 es operable para comunicarse con cualquiera de los dispositivos o entidades inalámbricas operativamente dispuestas en la comunicación inalámbrica, por ejemplo, una impresora, escáner, computadora de escritorio y/o portátil, asistente de datos portátil, satélite de comunicaciones, cualquier pieza de equipo o ubicación asociada con una etiqueta inalámbricamente detectable (por ejemplo, un kiosco, puesto de periódicos, baños), y teléfono. Esto incluye al menos tecnologías inalámbricas Wi-Fi y Bluetooth™. De esa forma, la comunicación puede ser una estructura pre definida como con una red convencional o simplemente una comunicación ad hoc entre al menos dos dispositivos.
Wi-Fi, o Fidelidad Inalámbrica, es una tecnología inalámbrica similar a la utilizada en un teléfono celular que permite a un dispositivo enviar y recibir datos en cualquier lugar dentro del rango de una estación base. Las redes Wi-Fi utilizan tecnologías de radio llamadas IEEE 802.11 (a, b, g, etc.) para proporcionar conectividad inalámbrica segura, confiable, rápida. Una red Wi-Fi puede utilizarse para conectar computadoras entre sí, Internet, y a redes por cable (que utilizan IEEE 802.3 o Ethernet). Las redes Wi-Fi operan en las bandas de radio sin licencia de 2.4 y 5 GHz, en un índice de datos de 13 bps (802.11a) o 54 bps (802.11b), por ejemplo, o con productos que contienen ambas bandas (banda doble). De esa forma, las redes que utilizan tecnología inalámbrica de Wi-Fi pueden proporcionar desempeño de mundo real similar a la rede de Ethernet por cable 1 OBaseT.
Haciendo referencia ahora a la Figura 12, se ilustra un diagrama de bloques esquemático de un sistema de recopilación de computadora ilustrativo operable para ejecutar la arquitectura descrita. El sistema 1200 incluye uno o más cliente(s) 1202. El cliente(s) 1202 puede ser hardware y/o software (por ejemplo, secuencias, procedimientos, dispositivos de cómputo). El cliente(s) 1202 puede alojar cookie(s) (fragmento de información que se almacena en el disco duro del visitante de una página web a través de su modo a petición del servidor de la página) y/o información contextual asociada al emplear el tema reclamado, por ejemplo.
El sistema 1200 también incluye uno o más servidor(es) 1204. El servidor(es) 1204 también puede ser hardware y/o software (por ejemplo, secuencias, procedimientos, dispositivos de cómputo). En un ejemplo, los servidores 1204 pueden alojar secuencias para realizar transformaciones al emplear una o más características aquí descritas. Una posible comunicación entre un cliente 1202 y un servidor 1204 puede estar en la forma de un paquete de datos adaptado para transmitirse entre dos o más procedimientos de computadora. El paquete de datos puede incluir una cookie y/o información contextual asociada, por ejemplo. El sistema 1200 incluye una estructura de comunicación 1206 (por ejemplo, una red de comunicación global tal como Internet) que puede emplearse para facilitar comunicaciones entre el cliente(s) 1202 y el servidor(es) 1204.
Las comunicaciones pueden facilitarse a través de una tecnología por cable (que incluye fibra óptica) y/o inalámbrica. El cliente(s) 1202 está operativamente conectado a uno o más almacenamiento(s) de datos de cliente 1208 que puede emplearse para almacenar información local al cliente(s) 1202 (por ejemplo, cookie(s) y/o información contextual asociada). Similarmente, el servidor(es) 1204 está operativamente conectado a uno o más almacenamiento(s) de datos de servidor 1210 que puede emplearse para almacenar información local para los servidores 1204.
Lo que se ha descrito anteriormente incluye ejemplos del tema reclamado. Por supuesto, no es posible describir toda combinación concebible de componentes o metodologías para propósitos de describir el tema reclamado, pero un experto en la técnica puede reconocer que son posibles muchas combinaciones y cambios adicionales. Por consiguiente, la descripción detallada pretende abarcar todas esas alteraciones, modificaciones, y variaciones que caen dentro del espíritu y alcance de las reivindicaciones anexas.
En particular y con respecto a las varias funciones realizadas por los componentes, dispositivos, circuitos, sistemas antes descritos y similares, los términos (que incluye una referencia a un "medio") utilizados para describir tales componentes pretenden corresponder, a menos que se indique de otra forma, a cualquier componente que realiza la función especificada del componente descrito (por ejemplo, un equivalente funcional), incluso aunque no estructuralmente equivalente a la estructura descrita, que realiza la función en los aspectos ilustrativos aquí ¡lustrados. Con respecto a esto, también se reconocerá que los aspectos descritos incluyen un sistema así como un medio legible por computadora que tiene instrucciones ejecutables por computadora para realizar los actos y/o eventos de los varios métodos.
Además, aunque pudo haberse descrito una característica particular con respecto únicamente a una de las varias implementaciones, tal característica puede combinarse con una o más de otras características de las otras implementaciones como puede desearse y ser ventajoso para cualquier aplicación dada o particular. Además, a la extensión que los términos "incluye", y "que incluye" y variantes de los mismos se utilizan en cualquier descripción detallada a las reivindicaciones, estos términos pretenden ser inclusivos en una forma similar al término "que comprende".

Claims (15)

REIVINDICACIONES
1. - Un sistema (100) para restaurar información a partir de un sistema de respaldo, que comprende: un procesador (1104) que ejecuta componentes ejecutables por máquina almacenados en un medio legible por computadora (1106, 1114, 1118, 1122), los componentes comprenden: un componente de diferencial (110, 420) que identifica una versión actual de información que se va a restaurar, una versión deseada de la información que se va a restaurar, y grupos respectivos de bloques correspondientes a esto e identifica uno o más bloques que son diferentes entre la versión actual y la versión deseada; un componente de ubicación de bloque (120, 620) que determina ubicaciones de red (610, 640, 650, 660) a partir de las cuales se van a recuperar bloques respectivos que se encuentra que son diferentes entre la versión actual y la versión deseada; y un componente de restauración (130, 630) que recupera los bloque respectivos encontrados para ser diferentes entre la versión actual y la versión deseada desde las ubicaciones de red determinadas y restaura la versión deseada al utilizar los bloques recuperados.
2. - El sistema de acuerdo con la reivindicación 1, en donde el componente de diferencial (110, 420) identifica uno o más bloques que son diferentes entre la versión actual de información que se va a restaurar y una versión deseada de la información que se va a restaurar al menos en parte al comparar firmas respectivas asociadas con los bloques correspondientes a la versión actual y las firmas asociadas con los bloques correspondientes a la versión deseada.
3. - El sistema de acuerdo con la reivindicación 1, en donde el componente de ubicación de bloque (120, 620) comprende un componente de revisión de índice (622) que revisa ubicaciones de red de las cuales se van a recuperar bloques respectivos al utilizar un índice (654) almacenado en una ubicación de red predeterminada (610, 640, 650, 660).
4. - El sistema de acuerdo con la reivindicación 1, en donde las ubicaciones de red (610, 640, 650, 660) determinadas por el componente de ubicación de bloque (120, 620) comprenden uno o más de los pares (610, 640), súper pares (650), o ubicaciones de almacenamiento de nube (660).
5. - El sistema de acuerdo con la reivindicación 4, en donde el componente de ubicación de bloque (120, 620) determina ubicaciones de red (610, 640, 650, 660) en las cuales se van a recuperar bloques respectivos al menos en parte al aplicar un nivel superior de preferencia a ubicaciones de red correspondientes a pares (610, 640, 650) que en ubicaciones de red correspondientes a ubicaciones de almacenamiento de nube (660).
6. - El sistema de acuerdo con la reivindicación 1, en donde el componente de ubicación de bloque (120, 620) comprende un componente de análisis de red (624) que determina ubicaciones de red (610, 640, 650, 660) en las cuales se van a recuperar bloques respectivos basándose al menos en una de carga de red, tiempo de actividad de ubicación de red, proximidad de ubicaciones de red respectivas al componente de ubicación de bloque, o consumo de ancho de banda asociado con recuperar información en ubicaciones de red respectivas.
7. - El sistema de acuerdo con la reivindicación 1, en donde las ubicaciones de red (610, 640, 650, 660) determinadas por el componente de ubicación de bloque (120, 620) almacenan uno o más archivos o una o más actualizaciones delta crecientes a uno o más archivos.
8. - El sistema de acuerdo con la reivindicación 1, en donde el componente de restauración (130, 630) restaura la versión deseada de la información que se va a restaurar al fusionar los bloques recuperados con uno o más bloques correspondientes a la versión actual de la información que se va a restaurar.
9. - El sistema de acuerdo con la reivindicación 8, en donde el componente de restauración (130, 630) fusionan los bloques recuperados con uno o más bloques correspondientes a la versión actual de la información que se va a restaurar al menos en parte al sustraer una o más diferencias en los bloque recuperados de bloques correspondientes en la versión actual de la información que se va a restaurar.
10.- Un método para realizar una restauración diferencial de uno o más archivos, que comprende: identificar una versión Iocalmente disponible de uno o más archivos almacenados al menos en una memoria y una versión deseada a la cual se van a restaurar uno o más archivos; identificar segmentos respectivos de la versión deseada de uno o más archivos que difieren de la versión Iocalmente disponible de los mismos al menos en parte al conducir un diferencial entre la versión Iocalmente disponible y la versión deseada; obtener los segmentos identificados de la versión deseada de uno o más archivos de uno o más almacenamientos de datos; y restaurar la versión deseada de uno o más archivos basándose al menos en parte en los segmentos obtenidos de los mismos.
11. - El método de acuerdo con la reivindicación 10, en donde la identificación de segmentos respectivos comprende comparar firmas respectivas asociadas con segmentos respectivos de la versión deseada de uno o más archivos con firmas asociadas con segmentos correspondientes de la versión Iocalmente disponible de uno o más archivos.
12. - El método de acuerdo con la reivindicación 10, en donde la obtención comprende: seleccionar almacenamientos de datos de red de los cuales se van a recuperar segmentos identificados respectivos de la versión deseada de uno o más archivos utilizando una lista de segmentos almacenados en una red asociada y almacenamientos de datos de red correspondientes en los cuales residen los segmentos respectivos; y obtener los segmentos identificados de la versión deseada de uno o más archivos de los almacenamientos de datos de red seleccionados.
13.- El método de acuerdo con la reivindicación 12, en donde los almacenamientos de datos de red comprenden al menos una de ubicaciones de almacenamiento de par, ubicaciones de almacenamiento de súper par, o ubicaciones de almacenamiento de nube.
14.- El método de acuerdo con la reivindicación 12, en donde el seleccionar almacenamientos de datos de red comprende seleccionar almacenamientos de datos de red de los cuales se van a recuperar segmentos identificados respectivos de la versión deseada de uno o más archivos basándose en al menos uno de carga de red, disponibilidad de almacenamiento de datos de red, o consumo de ancho de banda asociado con recuperar información en almacenamientos de red respectivos.
15.- Una medio legible por máquina (1106, 1114, 1118, 1122) que tiene almacenadas en él instrucciones que, cuando se ejecutan por una máquina (1102), hacen que la máquina (1102) actúe como un sistema para restaurar información de un sistema de respaldo de par a par híbrido/basado en nube, el sistema comprende: medios (110, 420) para conducir un diferencial basado en firma entre bloques respectivos de una versión localmente disponible, actual de uno o más archivos y bloques respectivos de una versión deseada a la cual se van a restaurar uno o más archivos; medios (120, 420) para utilizar metadatos que señalan a ubicaciones respectivas de bloques respectivos en uno o más pares (610, 640, 650, 720, 730, 740) y una ubicación de almacenamiento de nube (660, 710) para localizar al menos un bloque único que no coincide con el diferencial basado en firma entre la versión actual y la versión deseada de uno o más archivos; medios (732, 742) para obtener al menos un bloque único de al menos uno de uno o más pares (610, 640, 650, 720, 730, 740) o la ubicación de almacenamiento de nube (660, 710), en donde se aplica una énfasis superior para obtener al menos un bloque único de uno o más pares (610, 640, 650, 720, 730, 740) que para obtener al menos un bloque único de la ubicación de almacenamiento de nube (660, 710); y medios (130, 630) para fusionar al menos un bloque único con uno o más bloques no únicos presentes en la versión actual de uno o más archivos para crear la versión deseada de uno o más archivos.
MX2011010287A 2009-04-03 2010-03-26 Restauracion de archivo de sistema de diferencial apartir de pares y la nube. MX2011010287A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/417,992 US8805953B2 (en) 2009-04-03 2009-04-03 Differential file and system restores from peers and the cloud
PCT/US2010/028957 WO2010114777A2 (en) 2009-04-03 2010-03-26 Differential file and system restores from peers and the cloud

Publications (1)

Publication Number Publication Date
MX2011010287A true MX2011010287A (es) 2011-10-19

Family

ID=42827026

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2011010287A MX2011010287A (es) 2009-04-03 2010-03-26 Restauracion de archivo de sistema de diferencial apartir de pares y la nube.

Country Status (12)

Country Link
US (1) US8805953B2 (es)
EP (1) EP2414933A4 (es)
JP (1) JP5559867B2 (es)
KR (1) KR101626186B1 (es)
CN (1) CN102388361B (es)
AU (1) AU2010232795B2 (es)
BR (1) BRPI1014698A2 (es)
CA (1) CA2756085C (es)
MX (1) MX2011010287A (es)
RU (1) RU2531869C2 (es)
TW (1) TWI474164B (es)
WO (1) WO2010114777A2 (es)

Families Citing this family (348)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6746483B1 (en) * 2000-03-16 2004-06-08 Smith & Nephew, Inc. Sheaths for implantable fixation devices
US8959299B2 (en) 2004-11-15 2015-02-17 Commvault Systems, Inc. Using a snapshot as a data source
US8533169B1 (en) 2005-09-21 2013-09-10 Infoblox Inc. Transactional replication
US8290910B2 (en) * 2005-09-21 2012-10-16 Infoblox Inc. Semantic replication
US8250030B2 (en) 2005-09-21 2012-08-21 Infoblox Inc. Provisional authority in a distributed database
US8068433B2 (en) * 2007-11-26 2011-11-29 Microsoft Corporation Low power operation of networked devices
US8074014B2 (en) * 2008-03-31 2011-12-06 Microsoft Corporation Storage systems using write off-loading
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8510577B2 (en) * 2008-07-28 2013-08-13 Microsoft Corporation Reducing power consumption by offloading applications
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
US20140222758A1 (en) * 2009-08-14 2014-08-07 Ic Manage, Inc. Coherent File State Maintained Among Confederated Repositories By Distributed Workspace Apparatuses Backed Up By a File State Ledgerdemain Store
US8874534B2 (en) * 2009-08-14 2014-10-28 Ic Manage, Inc. File state subset satellites to provide block-based version control
WO2011021909A2 (en) 2009-08-21 2011-02-24 Samsung Electronics Co., Ltd. Method and apparatus for providing contents via network, method and apparatus for receiving contents via network, and method and apparatus for backing up data via network, backup data providing device, and backup system
US8433682B2 (en) 2009-12-31 2013-04-30 Commvault Systems, Inc. Systems and methods for analyzing snapshots
AU2010339584B2 (en) 2009-12-31 2014-06-26 Commvault Systems, Inc. Systems and methods for performing data management operations using snapshots
US9684563B1 (en) * 2010-01-04 2017-06-20 Veritas Technologies Llc Techniques for backup management
US10387927B2 (en) 2010-01-15 2019-08-20 Dell Products L.P. System and method for entitling digital assets
US9256899B2 (en) 2010-01-15 2016-02-09 Dell Products, L.P. System and method for separation of software purchase from fulfillment
US9235399B2 (en) 2010-01-15 2016-01-12 Dell Products L.P. System and method for manufacturing and personalizing computing devices
US9100396B2 (en) 2010-01-29 2015-08-04 Dell Products L.P. System and method for identifying systems and replacing components
US8977661B2 (en) * 2010-02-22 2015-03-10 Sookasa Inc. System, method and computer readable medium for file management
US9262643B2 (en) 2010-02-22 2016-02-16 Sookasa Inc. Encrypting files within a cloud computing environment
US8370672B2 (en) * 2010-02-26 2013-02-05 Microsoft Corporation Reducing power consumption of distributed storage systems
US8170783B2 (en) 2010-03-16 2012-05-01 Dell Products L.P. System and method for handling software activation in entitlement
US20110246721A1 (en) * 2010-03-31 2011-10-06 Sony Corporation Method and apparatus for providing automatic synchronization appliance
US9417969B2 (en) * 2010-05-13 2016-08-16 Sony Corporation Distributed network backup of multimedia files
US8707087B2 (en) * 2010-05-18 2014-04-22 Dell Products L.P. Restoration of an image backup using information on other information handling systems
US9083762B2 (en) * 2010-05-28 2015-07-14 Greg Saunders System and method for providing hybrid on demand services to a work unit
WO2012023050A2 (en) 2010-08-20 2012-02-23 Overtis Group Limited Secure cloud computing system and method
US8650159B1 (en) * 2010-08-26 2014-02-11 Symantec Corporation Systems and methods for managing data in cloud storage using deduplication techniques
US8713265B1 (en) * 2010-09-21 2014-04-29 Western Digital Technologies, Inc. Visual indicator of online backup
US8364652B2 (en) 2010-09-30 2013-01-29 Commvault Systems, Inc. Content aligned block-based deduplication
US8572340B2 (en) 2010-09-30 2013-10-29 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
WO2012057581A2 (ko) * 2010-10-28 2012-05-03 에스케이텔레콤 주식회사 클라우드 컴퓨팅 시스템 및 그의 데이터 동기화 방법
US8583599B2 (en) * 2010-11-29 2013-11-12 Ca, Inc. Reducing data duplication in cloud storage
US8688645B2 (en) * 2010-11-30 2014-04-01 Netapp, Inc. Incremental restore of data between storage systems having dissimilar storage operating systems associated therewith
US8656454B2 (en) 2010-12-01 2014-02-18 Microsoft Corporation Data store including a file location attribute
US9020900B2 (en) 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
US20120150818A1 (en) 2010-12-14 2012-06-14 Commvault Systems, Inc. Client-side repository in a networked deduplicated storage system
US8316057B2 (en) * 2010-12-17 2012-11-20 International Business Machines Corporation Restoring deduplicated data objects from sequential backup devices
US11544288B2 (en) * 2010-12-23 2023-01-03 Mongodb, Inc. Systems and methods for managing distributed database deployments
US10346430B2 (en) 2010-12-23 2019-07-09 Mongodb, Inc. System and method for determining consensus within a distributed database
US11615115B2 (en) 2010-12-23 2023-03-28 Mongodb, Inc. Systems and methods for managing distributed database deployments
US10262050B2 (en) 2015-09-25 2019-04-16 Mongodb, Inc. Distributed database systems and methods with pluggable storage engines
US9280550B1 (en) * 2010-12-31 2016-03-08 Emc Corporation Efficient storage tiering
US9037597B2 (en) * 2011-01-10 2015-05-19 International Business Machines Corporation Verifying file versions in a networked computing environment
US8676763B2 (en) 2011-02-08 2014-03-18 International Business Machines Corporation Remote data protection in a networked storage computing environment
US9225791B2 (en) * 2011-02-28 2015-12-29 Red Hat, Inc. Staged data migration between data sources and cloud-based storage network
US9384199B2 (en) 2011-03-31 2016-07-05 Microsoft Technology Licensing, Llc Distributed file system
US8868859B2 (en) * 2011-06-03 2014-10-21 Apple Inc. Methods and apparatus for multi-source restore
US20130138615A1 (en) * 2011-11-29 2013-05-30 International Business Machines Corporation Synchronizing updates across cluster filesystems
US9152659B2 (en) * 2011-12-30 2015-10-06 Bmc Software, Inc. Systems and methods for migrating database data
KR101429334B1 (ko) * 2012-02-02 2014-08-12 충북대학교 산학협력단 P2p 네트워크 환경에서 모바일 피어 검색을 위한 연속 범위 질의 처리 방법
US9298715B2 (en) 2012-03-07 2016-03-29 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9471578B2 (en) 2012-03-07 2016-10-18 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9342537B2 (en) 2012-04-23 2016-05-17 Commvault Systems, Inc. Integrated snapshot interface for a data storage system
US9542466B2 (en) * 2012-05-10 2017-01-10 Aetherstore Inc. Systems and methods for distributed storage
US9251186B2 (en) * 2012-06-13 2016-02-02 Commvault Systems, Inc. Backup using a client-side signature repository in a networked storage system
US8949401B2 (en) 2012-06-14 2015-02-03 Dell Products L.P. Automated digital migration
US8468139B1 (en) 2012-07-16 2013-06-18 Dell Products L.P. Acceleration of cloud-based migration/backup through pre-population
US11544284B2 (en) 2012-07-26 2023-01-03 Mongodb, Inc. Aggregation framework system architecture and method
US11403317B2 (en) 2012-07-26 2022-08-02 Mongodb, Inc. Aggregation framework system architecture and method
US9779219B2 (en) 2012-08-09 2017-10-03 Dell Products L.P. Method and system for late binding of option features associated with a device using at least in part license and unique ID information
CN103873504A (zh) * 2012-12-12 2014-06-18 鸿富锦精密工业(深圳)有限公司 数据分块存储至分布式服务器的***及方法
CN107704198B (zh) * 2012-12-17 2020-01-31 联想(北京)有限公司 信息处理的方法及电子设备
US9165001B1 (en) * 2012-12-19 2015-10-20 Emc Corporation Multi stream deduplicated backup of collaboration server data
US9015122B2 (en) * 2012-12-21 2015-04-21 Zetta, Inc. Systems and methods for minimizing network bandwidth for replication/back up
US9373001B2 (en) 2012-12-26 2016-06-21 Barracuda Networks, Inc. Distributed encryption and access control scheme in a cloud environment
TWI489889B (zh) 2012-12-28 2015-06-21 Ind Tech Res Inst 內容遞送網路及同儕網路之流量控制方法及系統
US9665591B2 (en) 2013-01-11 2017-05-30 Commvault Systems, Inc. High availability distributed deduplicated storage system
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
JP2014164614A (ja) * 2013-02-26 2014-09-08 Sony Corp 情報処理装置および方法、並びにプログラム
US8732135B1 (en) * 2013-03-01 2014-05-20 Storagecraft Technology Corporation Restoring a backup from a deduplication vault storage
US8738577B1 (en) 2013-03-01 2014-05-27 Storagecraft Technology Corporation Change tracking for multiphase deduplication
US8682870B1 (en) 2013-03-01 2014-03-25 Storagecraft Technology Corporation Defragmentation during multiphase deduplication
US20140250077A1 (en) * 2013-03-01 2014-09-04 Storagecraft Technology Corporation Deduplication vault storage seeding
US8874527B2 (en) 2013-03-01 2014-10-28 Storagecraft Technology Corporation Local seeding of a restore storage for restoring a backup from a remote deduplication vault storage
US9594643B2 (en) * 2013-03-06 2017-03-14 Quest Software Inc. Handling restores in an incremental backup storage system
US9582386B2 (en) 2013-03-15 2017-02-28 Cloudendure, Ltd. System and method for maintaining a copy of a cloud-based computing environment and restoration thereof
US10191823B2 (en) 2014-03-11 2019-01-29 Cloudendure Ltd. System and method for restoring original machines from replicated machines in a secondary computing environment
US10157107B2 (en) 2013-07-03 2018-12-18 Catalogic Software, Inc. Data backup and progressive restoration using data chunks in cloud storage and a data cache
US11630585B1 (en) 2016-08-25 2023-04-18 Pure Storage, Inc. Processing evacuation events in a storage array that includes a plurality of storage devices
CN104754007A (zh) * 2013-12-26 2015-07-01 伊姆西公司 用于管理网络附加存储的方法和装置
US9753812B2 (en) 2014-01-24 2017-09-05 Commvault Systems, Inc. Generating mapping information for single snapshot for multiple applications
US9639426B2 (en) 2014-01-24 2017-05-02 Commvault Systems, Inc. Single snapshot for multiple applications
US9495251B2 (en) 2014-01-24 2016-11-15 Commvault Systems, Inc. Snapshot readiness checking and reporting
US9632874B2 (en) 2014-01-24 2017-04-25 Commvault Systems, Inc. Database application backup in single snapshot for multiple applications
US8751454B1 (en) 2014-01-28 2014-06-10 Storagecraft Technology Corporation Virtual defragmentation in a deduplication vault
JP6269174B2 (ja) * 2014-03-05 2018-01-31 富士通株式会社 データ処理プログラム、データ処理装置及びデータ処理方法
US9633056B2 (en) 2014-03-17 2017-04-25 Commvault Systems, Inc. Maintaining a deduplication database
US10380072B2 (en) 2014-03-17 2019-08-13 Commvault Systems, Inc. Managing deletions from a deduplication database
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9774672B2 (en) 2014-09-03 2017-09-26 Commvault Systems, Inc. Consolidated processing of storage-array commands by a snapshot-control media agent
US10042716B2 (en) 2014-09-03 2018-08-07 Commvault Systems, Inc. Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US9648105B2 (en) 2014-11-14 2017-05-09 Commvault Systems, Inc. Unified snapshot storage management, using an enhanced storage manager and enhanced media agents
US9448731B2 (en) 2014-11-14 2016-09-20 Commvault Systems, Inc. Unified snapshot storage management
US10911537B1 (en) * 2014-12-31 2021-02-02 Acronis International Gmbh Increasing speed of synchronization and restore
CN104572354A (zh) * 2015-01-22 2015-04-29 上海迈微软件科技有限公司 基于恢复服务的操作***备份和恢复的方法及其设备
CA3040488C (en) 2015-01-23 2021-11-02 Servicenow, Inc. Distributed computing system with resource managed database cloning
CN104639629A (zh) * 2015-01-30 2015-05-20 英华达(上海)科技有限公司 一种在客户端和云端进行文件的比较方法及比较***
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US10311150B2 (en) 2015-04-10 2019-06-04 Commvault Systems, Inc. Using a Unix-based file system to manage and serve clones to windows-based computing clients
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US11102298B1 (en) 2015-05-26 2021-08-24 Pure Storage, Inc. Locally providing cloud storage services for fleet management
US9716755B2 (en) 2015-05-26 2017-07-25 Pure Storage, Inc. Providing cloud storage array services by a local storage array in a data center
US9594678B1 (en) 2015-05-27 2017-03-14 Pure Storage, Inc. Preventing duplicate entries of identical data in a storage device
US9300660B1 (en) 2015-05-29 2016-03-29 Pure Storage, Inc. Providing authorization and authentication in a cloud for a user of a storage array
US9444822B1 (en) 2015-05-29 2016-09-13 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US11503031B1 (en) 2015-05-29 2022-11-15 Pure Storage, Inc. Storage array access control from cloud-based user authorization and authentication
US10021170B2 (en) 2015-05-29 2018-07-10 Pure Storage, Inc. Managing a storage array using client-side services
US9588691B2 (en) 2015-06-10 2017-03-07 Pure Storage, Inc. Dynamically managing control information in a storage device
US9594512B1 (en) 2015-06-19 2017-03-14 Pure Storage, Inc. Attributing consumed storage capacity among entities storing data in a storage array
US10310740B2 (en) 2015-06-23 2019-06-04 Pure Storage, Inc. Aligning memory access operations to a geometry of a storage device
US10296236B2 (en) 2015-07-01 2019-05-21 Pure Storage, Inc. Offloading device management responsibilities from a storage device in an array of storage devices
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US9892071B2 (en) 2015-08-03 2018-02-13 Pure Storage, Inc. Emulating a remote direct memory access (‘RDMA’) link between controllers in a storage array
US9851762B1 (en) 2015-08-06 2017-12-26 Pure Storage, Inc. Compliant printed circuit board (‘PCB’) within an enclosure
US10198194B2 (en) 2015-08-24 2019-02-05 Pure Storage, Inc. Placing data within a storage device of a flash array
US11625181B1 (en) 2015-08-24 2023-04-11 Pure Storage, Inc. Data tiering using snapshots
US11294588B1 (en) 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
US10673623B2 (en) 2015-09-25 2020-06-02 Mongodb, Inc. Systems and methods for hierarchical key management in encrypted distributed databases
US10514978B1 (en) 2015-10-23 2019-12-24 Pure Storage, Inc. Automatic deployment of corrective measures for storage arrays
US9384082B1 (en) 2015-10-23 2016-07-05 Pure Storage, Inc. Proactively providing corrective measures for storage arrays
US11360844B1 (en) 2015-10-23 2022-06-14 Pure Storage, Inc. Recovery of a container storage provider
US10284232B2 (en) 2015-10-28 2019-05-07 Pure Storage, Inc. Dynamic error processing in a storage device
US10374868B2 (en) 2015-10-29 2019-08-06 Pure Storage, Inc. Distributed command processing in a flash storage system
US9740414B2 (en) 2015-10-29 2017-08-22 Pure Storage, Inc. Optimizing copy operations
US10353777B2 (en) 2015-10-30 2019-07-16 Pure Storage, Inc. Ensuring crash-safe forward progress of a system configuration update
US11762764B1 (en) 2015-12-02 2023-09-19 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US9760479B2 (en) 2015-12-02 2017-09-12 Pure Storage, Inc. Writing data in a storage system that includes a first type of storage device and a second type of storage device
US10326836B2 (en) 2015-12-08 2019-06-18 Pure Storage, Inc. Partially replicating a snapshot between storage systems
US11616834B2 (en) 2015-12-08 2023-03-28 Pure Storage, Inc. Efficient replication of a dataset to the cloud
US11347697B1 (en) 2015-12-15 2022-05-31 Pure Storage, Inc. Proactively optimizing a storage system
US10162835B2 (en) 2015-12-15 2018-12-25 Pure Storage, Inc. Proactive management of a plurality of storage arrays in a multi-array system
US10346043B2 (en) 2015-12-28 2019-07-09 Pure Storage, Inc. Adaptive computing for data compression
US10592357B2 (en) 2015-12-30 2020-03-17 Commvault Systems, Inc. Distributed file system in a distributed deduplication data storage system
US9886314B2 (en) 2016-01-28 2018-02-06 Pure Storage, Inc. Placing workloads in a multi-array system
US10133639B2 (en) * 2016-02-10 2018-11-20 International Business Machines Corporation Privacy protection of media files for automatic cloud backup systems
US10572460B2 (en) 2016-02-11 2020-02-25 Pure Storage, Inc. Compressing data in dependence upon characteristics of a storage system
US9760297B2 (en) 2016-02-12 2017-09-12 Pure Storage, Inc. Managing input/output (‘I/O’) queues in a data storage system
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
US10503753B2 (en) 2016-03-10 2019-12-10 Commvault Systems, Inc. Snapshot replication operations based on incremental block change tracking
JP6638489B2 (ja) * 2016-03-14 2020-01-29 オムロン株式会社 中継装置、中継装置の制御方法、制御プログラム、および記録媒体
US9959043B2 (en) 2016-03-16 2018-05-01 Pure Storage, Inc. Performing a non-disruptive upgrade of data in a storage system
US11995315B2 (en) 2016-03-16 2024-05-28 Pure Storage, Inc. Converting data formats in a storage system
US9891849B2 (en) 2016-04-14 2018-02-13 International Business Machines Corporation Accelerated recovery in data replication environments
US11112990B1 (en) 2016-04-27 2021-09-07 Pure Storage, Inc. Managing storage device evacuation
US9841921B2 (en) 2016-04-27 2017-12-12 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices
US11809727B1 (en) 2016-04-27 2023-11-07 Pure Storage, Inc. Predicting failures in a storage system that includes a plurality of storage devices
US9811264B1 (en) 2016-04-28 2017-11-07 Pure Storage, Inc. Deploying client-specific applications in a storage system utilizing redundant system resources
US10303390B1 (en) 2016-05-02 2019-05-28 Pure Storage, Inc. Resolving fingerprint collisions in flash storage system
US10795577B2 (en) 2016-05-16 2020-10-06 Commvault Systems, Inc. De-duplication of client-side data cache for virtual disks
US10846024B2 (en) 2016-05-16 2020-11-24 Commvault Systems, Inc. Global de-duplication of virtual disks in a storage platform
US11231858B2 (en) 2016-05-19 2022-01-25 Pure Storage, Inc. Dynamically configuring a storage system to facilitate independent scaling of resources
US9507532B1 (en) 2016-05-20 2016-11-29 Pure Storage, Inc. Migrating data in a storage array that includes a plurality of storage devices and a plurality of write buffer devices
US10671496B2 (en) 2016-05-31 2020-06-02 Mongodb, Inc. Method and apparatus for reading and writing committed data
US10691567B2 (en) 2016-06-03 2020-06-23 Pure Storage, Inc. Dynamically forming a failure domain in a storage system that includes a plurality of blades
US9946617B2 (en) * 2016-06-06 2018-04-17 International Business Machines Corporation Optimized recovery in data replication environments
US10621050B2 (en) 2016-06-27 2020-04-14 Mongodb, Inc. Method and apparatus for restoring data from snapshots
US10452310B1 (en) 2016-07-13 2019-10-22 Pure Storage, Inc. Validating cabling for storage component admission to a storage array
US11706895B2 (en) 2016-07-19 2023-07-18 Pure Storage, Inc. Independent scaling of compute resources and storage resources in a storage system
US10459652B2 (en) 2016-07-27 2019-10-29 Pure Storage, Inc. Evacuating blades in a storage array that includes a plurality of blades
US10474363B1 (en) 2016-07-29 2019-11-12 Pure Storage, Inc. Space reporting in a storage system
US10437730B2 (en) 2016-08-22 2019-10-08 International Business Machines Corporation Read cache synchronization in data replication environments
WO2018038650A1 (en) * 2016-08-22 2018-03-01 Telefonaktiebolaget Lm Ericsson (Publ) Method for enabling a communication device to receive a partial modification of a resource
US10572245B1 (en) 2016-08-30 2020-02-25 Amazon Technologies, Inc. Identifying versions of running programs using signatures derived from object files
US10146585B2 (en) 2016-09-07 2018-12-04 Pure Storage, Inc. Ensuring the fair utilization of system resources using workload based, time-independent scheduling
US11960348B2 (en) 2016-09-07 2024-04-16 Pure Storage, Inc. Cloud-based monitoring of hardware components in a fleet of storage systems
US10671439B1 (en) 2016-09-07 2020-06-02 Pure Storage, Inc. Workload planning with quality-of-service (‘QOS’) integration
US11531577B1 (en) 2016-09-07 2022-12-20 Pure Storage, Inc. Temporarily limiting access to a storage device
US11481261B1 (en) 2016-09-07 2022-10-25 Pure Storage, Inc. Preventing extended latency in a storage system
US11886922B2 (en) 2016-09-07 2024-01-30 Pure Storage, Inc. Scheduling input/output operations for a storage system
US10235229B1 (en) 2016-09-07 2019-03-19 Pure Storage, Inc. Rehabilitating storage devices in a storage array that includes a plurality of storage devices
US10331588B2 (en) 2016-09-07 2019-06-25 Pure Storage, Inc. Ensuring the appropriate utilization of system resources using weighted workload based, time-independent scheduling
US10908966B1 (en) 2016-09-07 2021-02-02 Pure Storage, Inc. Adapting target service times in a storage system
US10007459B2 (en) 2016-10-20 2018-06-26 Pure Storage, Inc. Performance tuning in a storage system that includes one or more storage devices
US11379132B1 (en) 2016-10-20 2022-07-05 Pure Storage, Inc. Correlating medical sensor data
US10162566B2 (en) 2016-11-22 2018-12-25 Pure Storage, Inc. Accumulating application-level statistics in a storage system
US11620075B2 (en) 2016-11-22 2023-04-04 Pure Storage, Inc. Providing application aware storage
US10198205B1 (en) 2016-12-19 2019-02-05 Pure Storage, Inc. Dynamically adjusting a number of storage devices utilized to simultaneously service write operations
US11461273B1 (en) 2016-12-20 2022-10-04 Pure Storage, Inc. Modifying storage distribution in a storage system that includes one or more storage devices
US10489307B2 (en) 2017-01-05 2019-11-26 Pure Storage, Inc. Periodically re-encrypting user data stored on a storage device
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US10666707B2 (en) * 2017-01-11 2020-05-26 Microsoft Technology Licensing, Llc Nonconsecutive file downloading
US11340800B1 (en) 2017-01-19 2022-05-24 Pure Storage, Inc. Content masking in a storage system
US10503700B1 (en) 2017-01-19 2019-12-10 Pure Storage, Inc. On-demand content filtering of snapshots within a storage system
US11163624B2 (en) 2017-01-27 2021-11-02 Pure Storage, Inc. Dynamically adjusting an amount of log data generated for a storage system
US10264054B2 (en) 2017-02-10 2019-04-16 International Business Machines Corporation Predictive device to device file transfer system for local cloud storage files
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US11442825B2 (en) 2017-03-10 2022-09-13 Pure Storage, Inc. Establishing a synchronous replication relationship between two or more storage systems
US10503427B2 (en) 2017-03-10 2019-12-10 Pure Storage, Inc. Synchronously replicating datasets and other managed objects to cloud-based storage systems
US10521344B1 (en) 2017-03-10 2019-12-31 Pure Storage, Inc. Servicing input/output (‘I/O’) operations directed to a dataset that is synchronized across a plurality of storage systems
US11803453B1 (en) 2017-03-10 2023-10-31 Pure Storage, Inc. Using host connectivity states to avoid queuing I/O requests
US11169727B1 (en) 2017-03-10 2021-11-09 Pure Storage, Inc. Synchronous replication between storage systems with virtualized storage
US10454810B1 (en) 2017-03-10 2019-10-22 Pure Storage, Inc. Managing host definitions across a plurality of storage systems
US11941279B2 (en) 2017-03-10 2024-03-26 Pure Storage, Inc. Data path virtualization
US11089105B1 (en) 2017-12-14 2021-08-10 Pure Storage, Inc. Synchronously replicating datasets in cloud-based storage systems
US11675520B2 (en) 2017-03-10 2023-06-13 Pure Storage, Inc. Application replication among storage systems synchronously replicating a dataset
US9910618B1 (en) 2017-04-10 2018-03-06 Pure Storage, Inc. Migrating applications executing on a storage system
US10459664B1 (en) 2017-04-10 2019-10-29 Pure Storage, Inc. Virtualized copy-by-reference
US11249671B2 (en) * 2017-04-28 2022-02-15 Netapp, Inc. Methods for improved data replication across hybrid cloud volumes using data tagging and devices thereof
US11868629B1 (en) 2017-05-05 2024-01-09 Pure Storage, Inc. Storage system sizing service
US10976962B2 (en) 2018-03-15 2021-04-13 Pure Storage, Inc. Servicing I/O operations in a cloud-based storage system
US11609718B1 (en) 2017-06-12 2023-03-21 Pure Storage, Inc. Identifying valid data after a storage system recovery
US10613791B2 (en) 2017-06-12 2020-04-07 Pure Storage, Inc. Portable snapshot replication between storage systems
WO2018231350A1 (en) 2017-06-12 2018-12-20 Pure Storage, Inc. Accessible fast durable storage integrated into a bulk storage device
US10552090B2 (en) 2017-09-07 2020-02-04 Pure Storage, Inc. Solid state drives with multiple types of addressable memory
US20180357017A1 (en) 2017-06-12 2018-12-13 Pure Storage, Inc. Accessible fast durable storage integrated into a bulk storage device
US10417092B2 (en) 2017-09-07 2019-09-17 Pure Storage, Inc. Incremental RAID stripe update parity calculation
US11340939B1 (en) 2017-06-12 2022-05-24 Pure Storage, Inc. Application-aware analytics for storage systems
US11592991B2 (en) 2017-09-07 2023-02-28 Pure Storage, Inc. Converting raid data between persistent storage types
US11422731B1 (en) 2017-06-12 2022-08-23 Pure Storage, Inc. Metadata-based replication of a dataset
US11989429B1 (en) 2017-06-12 2024-05-21 Pure Storage, Inc. Recommending changes to a storage system
US11016824B1 (en) 2017-06-12 2021-05-25 Pure Storage, Inc. Event identification with out-of-order reporting in a cloud-based environment
US10884636B1 (en) 2017-06-12 2021-01-05 Pure Storage, Inc. Presenting workload performance in a storage system
US11442669B1 (en) 2018-03-15 2022-09-13 Pure Storage, Inc. Orchestrating a virtual storage system
US10853148B1 (en) 2017-06-12 2020-12-01 Pure Storage, Inc. Migrating workloads between a plurality of execution environments
US11210133B1 (en) 2017-06-12 2021-12-28 Pure Storage, Inc. Workload mobility between disparate execution environments
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US11561714B1 (en) 2017-07-05 2023-01-24 Pure Storage, Inc. Storage efficiency driven migration
US11477280B1 (en) 2017-07-26 2022-10-18 Pure Storage, Inc. Integrating cloud storage services
US10635632B2 (en) 2017-08-29 2020-04-28 Cohesity, Inc. Snapshot archive management
US10831935B2 (en) 2017-08-31 2020-11-10 Pure Storage, Inc. Encryption management with host-side data reduction
US11874805B2 (en) 2017-09-07 2024-01-16 Cohesity, Inc. Remotely mounted file system with stubs
US11321192B2 (en) * 2017-09-07 2022-05-03 Cohesity, Inc. Restoration of specified content from an archive
US10452444B1 (en) 2017-10-19 2019-10-22 Pure Storage, Inc. Storage system with compute resources and shared storage resources
US10360214B2 (en) 2017-10-19 2019-07-23 Pure Storage, Inc. Ensuring reproducibility in an artificial intelligence infrastructure
US11861423B1 (en) 2017-10-19 2024-01-02 Pure Storage, Inc. Accelerating artificial intelligence (‘AI’) workflows
US11455168B1 (en) 2017-10-19 2022-09-27 Pure Storage, Inc. Batch building for deep learning training workloads
US11494692B1 (en) 2018-03-26 2022-11-08 Pure Storage, Inc. Hyperscale artificial intelligence and machine learning infrastructure
US10671434B1 (en) 2017-10-19 2020-06-02 Pure Storage, Inc. Storage based artificial intelligence infrastructure
US10509581B1 (en) 2017-11-01 2019-12-17 Pure Storage, Inc. Maintaining write consistency in a multi-threaded storage system
US10671494B1 (en) 2017-11-01 2020-06-02 Pure Storage, Inc. Consistent selection of replicated datasets during storage system recovery
US10467107B1 (en) 2017-11-01 2019-11-05 Pure Storage, Inc. Maintaining metadata resiliency among storage device failures
US10484174B1 (en) 2017-11-01 2019-11-19 Pure Storage, Inc. Protecting an encryption key for data stored in a storage system that includes a plurality of storage devices
US10817392B1 (en) 2017-11-01 2020-10-27 Pure Storage, Inc. Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices
US10929226B1 (en) 2017-11-21 2021-02-23 Pure Storage, Inc. Providing for increased flexibility for large scale parity
US10990282B1 (en) 2017-11-28 2021-04-27 Pure Storage, Inc. Hybrid data tiering with cloud storage
US10936238B2 (en) 2017-11-28 2021-03-02 Pure Storage, Inc. Hybrid data tiering
US10795598B1 (en) 2017-12-07 2020-10-06 Pure Storage, Inc. Volume migration for storage systems synchronously replicating a dataset
US11036677B1 (en) 2017-12-14 2021-06-15 Pure Storage, Inc. Replicated data integrity
US10929031B2 (en) 2017-12-21 2021-02-23 Pure Storage, Inc. Maximizing data reduction in a partially encrypted volume
US10992533B1 (en) 2018-01-30 2021-04-27 Pure Storage, Inc. Policy based path management
US10732885B2 (en) 2018-02-14 2020-08-04 Commvault Systems, Inc. Block-level live browsing and private writable snapshots using an ISCSI server
US10521151B1 (en) 2018-03-05 2019-12-31 Pure Storage, Inc. Determining effective space utilization in a storage system
US11861170B2 (en) 2018-03-05 2024-01-02 Pure Storage, Inc. Sizing resources for a replication target
US10942650B1 (en) 2018-03-05 2021-03-09 Pure Storage, Inc. Reporting capacity utilization in a storage system
US11150834B1 (en) 2018-03-05 2021-10-19 Pure Storage, Inc. Determining storage consumption in a storage system
US11972134B2 (en) 2018-03-05 2024-04-30 Pure Storage, Inc. Resource utilization using normalized input/output (‘I/O’) operations
US10296258B1 (en) 2018-03-09 2019-05-21 Pure Storage, Inc. Offloading data storage to a decentralized storage network
US11048590B1 (en) 2018-03-15 2021-06-29 Pure Storage, Inc. Data consistency during recovery in a cloud-based storage system
US10917471B1 (en) 2018-03-15 2021-02-09 Pure Storage, Inc. Active membership in a cloud-based storage system
US11210009B1 (en) 2018-03-15 2021-12-28 Pure Storage, Inc. Staging data in a cloud-based storage system
US10924548B1 (en) 2018-03-15 2021-02-16 Pure Storage, Inc. Symmetric storage using a cloud-based storage system
US11288138B1 (en) 2018-03-15 2022-03-29 Pure Storage, Inc. Recovery from a system fault in a cloud-based storage system
US11095706B1 (en) 2018-03-21 2021-08-17 Pure Storage, Inc. Secure cloud-based storage system management
US11171950B1 (en) 2018-03-21 2021-11-09 Pure Storage, Inc. Secure cloud-based storage system management
US10838833B1 (en) 2018-03-26 2020-11-17 Pure Storage, Inc. Providing for high availability in a data analytics pipeline without replicas
US11392553B1 (en) 2018-04-24 2022-07-19 Pure Storage, Inc. Remote data management
US11436344B1 (en) 2018-04-24 2022-09-06 Pure Storage, Inc. Secure encryption in deduplication cluster
US11455409B2 (en) 2018-05-21 2022-09-27 Pure Storage, Inc. Storage layer data obfuscation
US11675503B1 (en) 2018-05-21 2023-06-13 Pure Storage, Inc. Role-based data access
US11954220B2 (en) 2018-05-21 2024-04-09 Pure Storage, Inc. Data protection for container storage
US11128578B2 (en) 2018-05-21 2021-09-21 Pure Storage, Inc. Switching between mediator services for a storage system
US10871922B2 (en) 2018-05-22 2020-12-22 Pure Storage, Inc. Integrated storage management between storage systems and container orchestrators
JP7248267B2 (ja) * 2018-06-06 2023-03-29 Necソリューションイノベータ株式会社 ストレージ装置、復旧方法、プログラム
CN108874590A (zh) * 2018-06-16 2018-11-23 武汉商启网络信息有限公司 一种云主机自动备份与恢复的***
US11416298B1 (en) 2018-07-20 2022-08-16 Pure Storage, Inc. Providing application-specific storage by a storage system
US11403000B1 (en) 2018-07-20 2022-08-02 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11146564B1 (en) 2018-07-24 2021-10-12 Pure Storage, Inc. Login authentication in a cloud storage platform
US11954238B1 (en) 2018-07-24 2024-04-09 Pure Storage, Inc. Role-based access control for a storage system
US11632360B1 (en) 2018-07-24 2023-04-18 Pure Storage, Inc. Remote access to a storage device
US11860820B1 (en) 2018-09-11 2024-01-02 Pure Storage, Inc. Processing data through a storage system in a data pipeline
US12026381B2 (en) 2018-10-26 2024-07-02 Pure Storage, Inc. Preserving identities and policies across replication
US10671302B1 (en) 2018-10-26 2020-06-02 Pure Storage, Inc. Applying a rate limit across a plurality of storage systems
US12026060B1 (en) 2018-11-18 2024-07-02 Pure Storage, Inc. Reverting between codified states in a cloud-based storage system
US10963189B1 (en) 2018-11-18 2021-03-30 Pure Storage, Inc. Coalescing write operations in a cloud-based storage system
US11526405B1 (en) 2018-11-18 2022-12-13 Pure Storage, Inc. Cloud-based disaster recovery
US11379254B1 (en) 2018-11-18 2022-07-05 Pure Storage, Inc. Dynamic configuration of a cloud-based storage system
US12026061B1 (en) 2018-11-18 2024-07-02 Pure Storage, Inc. Restoring a cloud-based storage system to a selected state
US11340837B1 (en) 2018-11-18 2022-05-24 Pure Storage, Inc. Storage system management via a remote console
US11010258B2 (en) 2018-11-27 2021-05-18 Commvault Systems, Inc. Generating backup copies through interoperability between components of a data storage management system and appliances for data storage and deduplication
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
US11650749B1 (en) 2018-12-17 2023-05-16 Pure Storage, Inc. Controlling access to sensitive data in a shared dataset
US11003369B1 (en) 2019-01-14 2021-05-11 Pure Storage, Inc. Performing a tune-up procedure on a storage device during a boot process
US11042452B1 (en) 2019-03-20 2021-06-22 Pure Storage, Inc. Storage system data recovery using data recovery as a service
US11221778B1 (en) 2019-04-02 2022-01-11 Pure Storage, Inc. Preparing data for deduplication
US11068162B1 (en) 2019-04-09 2021-07-20 Pure Storage, Inc. Storage management in a cloud data store
US20200327017A1 (en) 2019-04-10 2020-10-15 Commvault Systems, Inc. Restore using deduplicated secondary copy data
US11463264B2 (en) 2019-05-08 2022-10-04 Commvault Systems, Inc. Use of data block signatures for monitoring in an information management system
US11327676B1 (en) 2019-07-18 2022-05-10 Pure Storage, Inc. Predictive data streaming in a virtual storage system
US11392555B2 (en) 2019-05-15 2022-07-19 Pure Storage, Inc. Cloud-based file services
US11126364B2 (en) 2019-07-18 2021-09-21 Pure Storage, Inc. Virtual storage system architecture
US11853266B2 (en) 2019-05-15 2023-12-26 Pure Storage, Inc. Providing a file system in a cloud environment
US12001355B1 (en) 2019-05-24 2024-06-04 Pure Storage, Inc. Chunked memory efficient storage data transfers
CN110362429B (zh) * 2019-07-12 2021-08-06 优刻得科技股份有限公司 数据库的连续数据保护方法、***、设备和介质
US11487715B1 (en) 2019-07-18 2022-11-01 Pure Storage, Inc. Resiliency in a cloud-based storage system
US11093139B1 (en) 2019-07-18 2021-08-17 Pure Storage, Inc. Durably storing data within a virtual storage system
US11797197B1 (en) 2019-07-18 2023-10-24 Pure Storage, Inc. Dynamic scaling of a virtual storage system
US11861221B1 (en) 2019-07-18 2024-01-02 Pure Storage, Inc. Providing scalable and reliable container-based storage services
US11526408B2 (en) 2019-07-18 2022-12-13 Pure Storage, Inc. Data recovery in a virtual storage system
TWI711288B (zh) * 2019-08-27 2020-11-21 中華電信股份有限公司 異地備份方法
US11086553B1 (en) 2019-08-28 2021-08-10 Pure Storage, Inc. Tiering duplicated objects in a cloud-based object store
US11693713B1 (en) 2019-09-04 2023-07-04 Pure Storage, Inc. Self-tuning clusters for resilient microservices
US11360689B1 (en) 2019-09-13 2022-06-14 Pure Storage, Inc. Cloning a tracking copy of replica data
US11797569B2 (en) 2019-09-13 2023-10-24 Pure Storage, Inc. Configurable data replication
US12045252B2 (en) 2019-09-13 2024-07-23 Pure Storage, Inc. Providing quality of service (QoS) for replicating datasets
US11573864B1 (en) 2019-09-16 2023-02-07 Pure Storage, Inc. Automating database management in a storage system
KR102427418B1 (ko) * 2019-09-27 2022-08-01 주식회사 데이타커맨드 백업 데이터 합성 장치 및 방법
US11669386B1 (en) 2019-10-08 2023-06-06 Pure Storage, Inc. Managing an application's resource stack
CN112685225B (zh) * 2019-10-18 2024-06-18 伊姆西Ip控股有限责任公司 用于传输数据的方法、设备和计算机程序产品
US10715524B1 (en) * 2019-11-14 2020-07-14 Snowflake Inc. External credential-less stages for data warehouse integrations
US11442896B2 (en) 2019-12-04 2022-09-13 Commvault Systems, Inc. Systems and methods for optimizing restoration of deduplicated data stored in cloud-based storage resources
US11868318B1 (en) 2019-12-06 2024-01-09 Pure Storage, Inc. End-to-end encryption in a storage system with multi-tenancy
US11720497B1 (en) 2020-01-13 2023-08-08 Pure Storage, Inc. Inferred nonsequential prefetch based on data access patterns
US11709636B1 (en) 2020-01-13 2023-07-25 Pure Storage, Inc. Non-sequential readahead for deep learning training
US11733901B1 (en) 2020-01-13 2023-08-22 Pure Storage, Inc. Providing persistent storage to transient cloud computing services
CN111309388B (zh) * 2020-02-03 2023-07-21 杭州迪普科技股份有限公司 设备的***软件版本的自动回滚***及其方法
US12014065B2 (en) 2020-02-11 2024-06-18 Pure Storage, Inc. Multi-cloud orchestration as-a-service
US11868622B2 (en) 2020-02-25 2024-01-09 Pure Storage, Inc. Application recovery across storage systems
US11637896B1 (en) 2020-02-25 2023-04-25 Pure Storage, Inc. Migrating applications to a cloud-computing environment
US11321006B1 (en) 2020-03-25 2022-05-03 Pure Storage, Inc. Data loss prevention during transitions from a replication source
US12038881B2 (en) 2020-03-25 2024-07-16 Pure Storage, Inc. Replica transitions for file storage
US11301152B1 (en) 2020-04-06 2022-04-12 Pure Storage, Inc. Intelligently moving data between storage systems
US11630598B1 (en) 2020-04-06 2023-04-18 Pure Storage, Inc. Scheduling data replication operations
US11494267B2 (en) 2020-04-14 2022-11-08 Pure Storage, Inc. Continuous value data redundancy
US11921670B1 (en) 2020-04-20 2024-03-05 Pure Storage, Inc. Multivariate data backup retention policies
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management
US11431488B1 (en) 2020-06-08 2022-08-30 Pure Storage, Inc. Protecting local key generation using a remote key management service
US11831773B1 (en) 2020-06-29 2023-11-28 Amazon Technologies, Inc. Secured database restoration across service regions
US11422733B2 (en) * 2020-06-29 2022-08-23 EMC IP Holding Company LLC Incremental replication between foreign system dataset stores
US11442652B1 (en) 2020-07-23 2022-09-13 Pure Storage, Inc. Replication handling during storage system transportation
US11349917B2 (en) 2020-07-23 2022-05-31 Pure Storage, Inc. Replication handling among distinct networks
US11487701B2 (en) 2020-09-24 2022-11-01 Cohesity, Inc. Incremental access requests for portions of files from a cloud archival storage tier
US11397545B1 (en) 2021-01-20 2022-07-26 Pure Storage, Inc. Emulating persistent reservations in a cloud-based storage system
US11853285B1 (en) 2021-01-22 2023-12-26 Pure Storage, Inc. Blockchain logging of volume-level events in a storage system
US20220365827A1 (en) 2021-05-12 2022-11-17 Pure Storage, Inc. Rebalancing In A Fleet Of Storage Systems Using Data Science
US11816129B2 (en) 2021-06-22 2023-11-14 Pure Storage, Inc. Generating datasets using approximate baselines
US11893263B2 (en) 2021-10-29 2024-02-06 Pure Storage, Inc. Coordinated checkpoints among storage systems implementing checkpoint-based replication
US11914867B2 (en) 2021-10-29 2024-02-27 Pure Storage, Inc. Coordinated snapshots among storage systems implementing a promotion/demotion model
US11714723B2 (en) 2021-10-29 2023-08-01 Pure Storage, Inc. Coordinated snapshots for data stored across distinct storage environments
US11922052B2 (en) 2021-12-15 2024-03-05 Pure Storage, Inc. Managing links between storage objects
US11847071B2 (en) 2021-12-30 2023-12-19 Pure Storage, Inc. Enabling communication between a single-port device and multiple storage system controllers
US12001300B2 (en) 2022-01-04 2024-06-04 Pure Storage, Inc. Assessing protection for storage resources
US11860780B2 (en) 2022-01-28 2024-01-02 Pure Storage, Inc. Storage cache management
US11886295B2 (en) 2022-01-31 2024-01-30 Pure Storage, Inc. Intra-block error correction

Family Cites Families (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4853843A (en) * 1987-12-18 1989-08-01 Tektronix, Inc. System for merging virtual partitions of a distributed database
US6760840B1 (en) * 1994-03-15 2004-07-06 Kabushiki Kaisha Toshiba File editing system and shared file editing system with file content secrecy, file version management, and asynchronous editing
US5765173A (en) * 1996-01-11 1998-06-09 Connected Corporation High performance backup via selective file saving which can perform incremental backups and exclude files and uses a changed block signature list
US6366930B1 (en) * 1996-04-12 2002-04-02 Computer Associates Think, Inc. Intelligent data inventory & asset management systems method and apparatus
KR970076238A (ko) * 1996-05-23 1997-12-12 포만 제프리 엘 클라이언트 데이타 화일의 다수의 복사본을 생성하고 관리하는 서버, 방법 및 그 프로그램 제품
US5797016A (en) * 1996-10-29 1998-08-18 Cheyenne Software Inc. Regeneration agent for back-up software
US5794254A (en) 1996-12-03 1998-08-11 Fairbanks Systems Group Incremental computer file backup using a two-step comparison of first two characters in the block and a signature with pre-stored character and signature sets
US6367029B1 (en) 1998-11-03 2002-04-02 Sun Microsystems, Inc. File server system tolerant to software and hardware failures
GB2353611B (en) 1999-08-24 2004-03-17 Ibm Disk image backup/restore with data preparation phase
US7574496B2 (en) * 2001-11-30 2009-08-11 Surgient, Inc. Virtual server cloud interfacing
US7257584B2 (en) * 2002-03-18 2007-08-14 Surgient, Inc. Server file management
US6990666B2 (en) * 2002-03-18 2006-01-24 Surgient Inc. Near on-line server
US6993539B2 (en) * 2002-03-19 2006-01-31 Network Appliance, Inc. System and method for determining changes in two snapshots and for transmitting changes to destination snapshot
US7139808B2 (en) * 2002-04-30 2006-11-21 Intel Corporation Method and apparatus for bandwidth-efficient and storage-efficient backups
US7334124B2 (en) 2002-07-22 2008-02-19 Vormetric, Inc. Logical access block processing protocol for transparent secure file storage
DE60321927D1 (de) * 2002-09-10 2008-08-14 Exagrid Systems Inc Datenschutzverfahren und vorrichtung
US7203711B2 (en) 2003-05-22 2007-04-10 Einstein's Elephant, Inc. Systems and methods for distributed content storage and management
US7275177B2 (en) * 2003-06-25 2007-09-25 Emc Corporation Data recovery with internet protocol replication with or without full resync
US7567991B2 (en) * 2003-06-25 2009-07-28 Emc Corporation Replication of snapshot using a file system copy differential
US20050015416A1 (en) * 2003-07-16 2005-01-20 Hitachi, Ltd. Method and apparatus for data recovery using storage based journaling
US7257257B2 (en) 2003-08-19 2007-08-14 Intel Corporation Method and apparatus for differential, bandwidth-efficient and storage-efficient backups
US7225208B2 (en) * 2003-09-30 2007-05-29 Iron Mountain Incorporated Systems and methods for backing up data files
US7315930B2 (en) * 2003-10-30 2008-01-01 Hewlett-Packard Development Company, L.P. Method of selecting heuristic class for data placement
US7383463B2 (en) * 2004-02-04 2008-06-03 Emc Corporation Internet protocol based disaster recovery of a server
JP2005301497A (ja) * 2004-04-08 2005-10-27 Hitachi Ltd ストレージ管理装置、リストア方法及びそのプログラム
JP2005301464A (ja) 2004-04-08 2005-10-27 Hitachi Ltd バックアップ方法ならびにバックアップシステム
US7555531B2 (en) 2004-04-15 2009-06-30 Microsoft Corporation Efficient algorithm and protocol for remote differential compression
US8108429B2 (en) * 2004-05-07 2012-01-31 Quest Software, Inc. System for moving real-time data events across a plurality of devices in a network for simultaneous data protection, replication, and access services
US7461100B2 (en) * 2004-05-27 2008-12-02 International Business Machines Corporation Method for fast reverse restore
US7330997B1 (en) * 2004-06-03 2008-02-12 Gary Odom Selective reciprocal backup
US7979404B2 (en) * 2004-09-17 2011-07-12 Quest Software, Inc. Extracting data changes and storing data history to allow for instantaneous access to and reconstruction of any point-in-time data
US8364633B2 (en) * 2005-01-12 2013-01-29 Wandisco, Inc. Distributed computing systems and system components thereof
US20060212439A1 (en) 2005-03-21 2006-09-21 Microsoft Corporation System and method of efficient data backup in a networking environment
US8010498B2 (en) * 2005-04-08 2011-08-30 Microsoft Corporation Virtually infinite reliable storage across multiple storage devices and storage services
WO2007017857A1 (en) * 2005-04-15 2007-02-15 Zak Dechovich Accelerated computer recovery
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
ATE504878T1 (de) * 2005-10-12 2011-04-15 Datacastle Corp Verfahren und system zur datensicherung
US7653668B1 (en) * 2005-11-23 2010-01-26 Symantec Operating Corporation Fault tolerant multi-stage data replication with relaxed coherency guarantees
US20070136200A1 (en) * 2005-12-09 2007-06-14 Microsoft Corporation Backup broker for private, integral and affordable distributed storage
US20070177739A1 (en) * 2006-01-27 2007-08-02 Nec Laboratories America, Inc. Method and Apparatus for Distributed Data Replication
US7783600B1 (en) * 2006-02-27 2010-08-24 Symantec Operating Corporation Redundancy management service for peer-to-peer networks
US7529785B1 (en) * 2006-02-28 2009-05-05 Symantec Corporation Efficient backups using dynamically shared storage pools in peer-to-peer networks
US20070214198A1 (en) * 2006-03-10 2007-09-13 Nathan Fontenot Allowing state restoration using differential backing objects
US7441092B2 (en) 2006-04-20 2008-10-21 Microsoft Corporation Multi-client cluster-based backup and restore
EP3336707A1 (en) 2006-05-05 2018-06-20 Hybir Inc. Group based complete and incremental computer file backup system, process and apparatus
US7873601B1 (en) * 2006-06-29 2011-01-18 Emc Corporation Backup of incremental metadata in block based backup systems
US7640280B2 (en) * 2006-10-31 2009-12-29 Rebit, Inc. System for automatically shadowing data and file directory structures that are recorded on a computer memory
US7734669B2 (en) * 2006-12-22 2010-06-08 Commvault Systems, Inc. Managing copies of data
US7685189B2 (en) 2006-12-27 2010-03-23 Microsoft Corporation Optimizing backup and recovery utilizing change tracking
JP2008197745A (ja) 2007-02-08 2008-08-28 Hitachi Ltd ストレージ仮想化システムにおける記憶制御装置
US8874518B2 (en) * 2007-06-06 2014-10-28 International Business Machines Corporation System, method and program product for backing up data
US20080307347A1 (en) * 2007-06-08 2008-12-11 Apple Inc. Application-Based Backup-Restore of Electronic Information
JP2009070143A (ja) 2007-09-13 2009-04-02 Hitachi Ltd Nas装置の差分リモートバックアップにおけるデータ復旧方法及び計算機システム
US8190836B1 (en) * 2008-04-30 2012-05-29 Network Appliance, Inc. Saving multiple snapshots without duplicating common blocks to protect the entire contents of a volume
US8108502B2 (en) * 2008-07-24 2012-01-31 Symform, Inc. Storage device for use in a shared community storage network
US8099572B1 (en) * 2008-09-30 2012-01-17 Emc Corporation Efficient backup and restore of storage objects in a version set
US8566362B2 (en) * 2009-01-23 2013-10-22 Nasuni Corporation Method and system for versioned file system using structured data representations

Also Published As

Publication number Publication date
CA2756085C (en) 2017-04-25
US20100257142A1 (en) 2010-10-07
CN102388361B (zh) 2015-02-25
JP5559867B2 (ja) 2014-07-23
AU2010232795A1 (en) 2011-10-20
KR101626186B1 (ko) 2016-05-31
US8805953B2 (en) 2014-08-12
AU2010232795B2 (en) 2014-06-19
RU2011139997A (ru) 2013-04-20
EP2414933A2 (en) 2012-02-08
CA2756085A1 (en) 2010-10-07
TWI474164B (zh) 2015-02-21
EP2414933A4 (en) 2012-11-14
RU2531869C2 (ru) 2014-10-27
CN102388361A (zh) 2012-03-21
KR20120027132A (ko) 2012-03-21
TW201040713A (en) 2010-11-16
JP2012523044A (ja) 2012-09-27
WO2010114777A3 (en) 2011-02-03
BRPI1014698A2 (pt) 2019-04-16
WO2010114777A2 (en) 2010-10-07

Similar Documents

Publication Publication Date Title
MX2011010287A (es) Restauracion de archivo de sistema de diferencial apartir de pares y la nube.
US11928366B2 (en) Scaling a cloud-based storage system in response to a change in workload
US8261126B2 (en) Bare metal machine recovery from the cloud
US11663097B2 (en) Mirroring data to survive storage device failures
US20100257403A1 (en) Restoration of a system from a set of full and partial delta system snapshots across a distributed system
US8769055B2 (en) Distributed backup and versioning
US8769049B2 (en) Intelligent tiers of backup data
US9792306B1 (en) Data transfer between dissimilar deduplication systems
US11416298B1 (en) Providing application-specific storage by a storage system
US20100318759A1 (en) Distributed rdc chunk store
US11403000B1 (en) Resiliency in a cloud-based storage system
US11662909B2 (en) Metadata management in a storage system
US20220075546A1 (en) Intelligent application placement in a hybrid infrastructure
US20220091768A1 (en) Aligning Variable Sized Compressed Data To Fixed Sized Storage Blocks
US11768635B2 (en) Scaling storage resources in a storage volume

Legal Events

Date Code Title Description
FG Grant or registration
PD Change of proprietorship

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC