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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1453—Management of the data involved in backup or backup restore using de-duplication of the data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1464—Management of the backup or restore process for networked environments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/83—Indexing 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)
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.
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)
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)
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 |
-
2009
- 2009-04-03 US US12/417,992 patent/US8805953B2/en not_active Expired - Fee Related
-
2010
- 2010-03-03 TW TW99106208A patent/TWI474164B/zh not_active IP Right Cessation
- 2010-03-26 WO PCT/US2010/028957 patent/WO2010114777A2/en active Application Filing
- 2010-03-26 MX MX2011010287A patent/MX2011010287A/es active IP Right Grant
- 2010-03-26 RU RU2011139997/08A patent/RU2531869C2/ru not_active IP Right Cessation
- 2010-03-26 BR BRPI1014698A patent/BRPI1014698A2/pt not_active IP Right Cessation
- 2010-03-26 JP JP2012503541A patent/JP5559867B2/ja active Active
- 2010-03-26 CN CN201080015305.XA patent/CN102388361B/zh active Active
- 2010-03-26 EP EP10759248A patent/EP2414933A4/en not_active Withdrawn
- 2010-03-26 AU AU2010232795A patent/AU2010232795B2/en active Active
- 2010-03-26 CA CA2756085A patent/CA2756085C/en active Active
- 2010-03-26 KR KR1020117023057A patent/KR101626186B1/ko active IP Right Grant
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 |