ES2445966T3 - Sistema y procedimiento para almacenar información redundante - Google Patents

Sistema y procedimiento para almacenar información redundante Download PDF

Info

Publication number
ES2445966T3
ES2445966T3 ES07869852.9T ES07869852T ES2445966T3 ES 2445966 T3 ES2445966 T3 ES 2445966T3 ES 07869852 T ES07869852 T ES 07869852T ES 2445966 T3 ES2445966 T3 ES 2445966T3
Authority
ES
Spain
Prior art keywords
data
data object
file
copy
medium
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
ES07869852.9T
Other languages
English (en)
Inventor
Parag Gokhale
Rajiv Kottomtharayil
Anand Prahlad
Manoj Kumar Vijayan Retnamma
Deepak Raghunath Attarde
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Commvault Systems Inc
Original Assignee
Commvault Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Commvault Systems Inc filed Critical Commvault Systems Inc
Application granted granted Critical
Publication of ES2445966T3 publication Critical patent/ES2445966T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques

Abstract

Un procedimiento en un sistema informático para almacenar un objeto de datos en un medio secuencial, quecomprende: recibir una solicitud para almacenar una copia de un objeto de datos en una ubicación de destino, en el que el objetode datos está almacenado en una ubicación origen en un medio de acceso aleatorio y la ubicación de destino estáen un medio secuencial; y preparar una copia de instancia única del objeto de datos con destino al medio secuencial utilizando un mediointermedio de acceso aleatorio, en el que preparar una copia de instancia única comprende determinar (430) si elobjeto de datos ha sido copiado antes al medio intermedio de acceso aleatorio, si el objeto de datos ha sido copiadoantes al medio intermedio de acceso aleatorio, almacenar un puntero a la copia del objeto de datos en el mediointermedio de acceso aleatorio, en el que cada puntero a la copia del objeto de datos incrementa un contador dereferencias asociado con el objeto de datos, y si el objeto de datos no ha sido copiado antes al medio intermedio deacceso aleatorio, almacenar (450) una copia del objeto de datos en el medio intermedio de acceso aleatorio.

Description

Sistema y procedimiento para almacenar información redundante
Referencia cruzada a solicitudes relacionadas
Esta solicitud reivindica el beneficio de la solicitud de patente provisional de EE.UU. No. 60/871.737 (Expediente de Agente No. 60692-8036.US00) titulada "SYSTEM AND METHOD FOR STORING REDUNDANT INFORMATION", y presentada el 22 de diciembre de 2006.
Esta solicitud reivindica el beneficio de la solicitud de patente provisional de EE.UU. No. ________ (Expediente de Agente No. 60692-8036.US01) titulada "SYSTEM AND METHOD FOR STORING REDUNDANT INFORMATION", y presentada el 31 de octubre de 2007.
ANTECEDENTES
Los sistemas informáticos contienen grandes cantidades de información. Esta información incluye información personal, tal como información financiera, información de contacto de cliente/paciente, información audio/visual, y mucho más. Esta información también incluye información relacionada con el funcionamiento correcto del sistema informático, tal como archivos del sistema operativo, archivos de aplicación, configuración del usuario, etcétera. Con el aumento de la confianza en que los sistemas informáticos almacenen información crítica, ha crecido la importancia de proteger la información. Los sistemas de almacenamiento tradicionales reciben una identificación de un archivo a proteger, a continuación crean una o varias copias secundarias, tales como archivos de copia de seguridad, que incluyen el contenido del archivo. Estas copias secundarias pueden utilizarse después para restaurar los datos originales si les pasa algo a los datos originales.
En entornos corporativos, la protección de la información es por lo general parte de un proceso rutinario que se realiza para muchos sistemas informáticos dentro de una organización. Por ejemplo, una empresa puede realizar copias de seguridad de sistemas informáticos críticos relacionados con el comercio electrónico, tales como bases de datos, servidores de archivos, servidores web, etc. La empresa también puede proteger los sistemas informáticos utilizados por cada uno de sus empleados, tales como los utilizados por un departamento de contabilidad, un departamento de marketing, de ingeniería, etc.
Aunque cada sistema informático puede contener cierta información única, muchos sistemas pueden contener información muy similar. Por ejemplo, aunque un sistema informático utilizado por un empleado de marketing y otro sistema informático utilizado por un empleado de ingeniería contendrán por lo general información única creada por cada empleado en el curso de su trabajo, es probable que ambos sistemas informáticos tengan instalado el mismo sistema operativo, con miles de archivos idénticos o similares que son utilizados por el sistema operativo. De modo similar, es probable que ambos sistemas informáticos tengan instalados al menos algunos programas de aplicación similares, tales como un procesador de textos, una hoja de cálculo, un navegador de Internet, etc. Ambos sistemas también pueden tener información corporativa similar. Por ejemplo, cada empleado puede tener una copia electrónica de un manual de empleado distribuido por la empresa. Información que no son archivos también puede ser idéntica o similar entre los sistemas. Por ejemplo, la configuración y las preferencias de usuario pueden tener valores predeterminados similares en cada sistema y los programas de aplicación pueden contener plantillas similares en cada sistema, la cuales se almacenan como información específica de la aplicación. Como otro ejemplo, varios empleados pueden haber recibido una copia del mismo correo electrónico, y el correo electrónico puede ser almacenado en el buzón electrónico de cada empleado.
Como resultado de la cantidad de información redundante en una organización, las copias secundarias de información de una organización a menudo son muy grandes y pueden requerir la compra de dispositivos de almacenamiento y medios de almacenamiento caros. La restauración de los datos en caso de pérdida de datos también se ralentiza por el gran tamaño de las copias secundarias. A medida que aumenta el tamaño de las copias secundarias, la localización y la restauración de información requiere más acciones que se deben realizar para restaurar la información. Por ejemplo, puede ser necesario buscar muchas cintas u otros medios para encontrar la copia secundaria correcta. La gran cantidad de medios de almacenamiento, tales como cintas, puede significar que algún medio de almacenamiento secundario haya sido movido a una ubicación remota de tal manera que primero se debe recuperar éste antes de que se pueda recuperar la información a partir de éste. Cada uno de estos factores aumenta el coste de la protección de la información y el tiempo necesario para recuperar la información en caso de pérdida de datos. La recuperación rápida de la información es a menudo crucial para las empresas de hoy en día, y cualquier retraso adicional puede afectar a las operaciones de negocio y la satisfacción de los clientes con la empresa.
Hay una necesidad de un sistema que supere los problemas anteriores, así como uno que proporcione beneficios adicionales.
US 2006/0129537 A1 se refiere a un sistema de gestión de almacenamiento que incluye al menos un cliente, un primer servidor que tiene un almacenamiento principal, un segundo servidor que tiene un almacenamiento secundario y un dispositivo intermedio dispuesto lógicamente entre el cliente y el primer y segundo servidores. El almacenamiento principal incluye un archivo “stub” en el que está registrada la información de ubicación del archivo real migrado desde el almacenamiento principal al almacenamiento secundario. El dispositivo intermedio realiza un control de tal manera que, cuando el dispositivo intermedio recibe una solicitud de acceso a un archivo del almacenamiento principal de un primer servidor, realizada por el cliente, el dispositivo intermedio recibe la solicitud de acceso al archivo y, si el archivo al que se quiere acceder es un archivo “stub”, y la solicitud de acceso necesita acceder al archivo real, el dispositivo intermedio accede al archivo real del almacenamiento secundario usando la información del archivo “stub” para devolver una respuesta.
US 6.865.655 B1 se refiere a técnicas para realizar operaciones de copias de seguridad y restauración en porciones de datos de tal manera que si un servidor de copias de seguridad ya tiene una copia del contenido de una porción de datos, ningún sistema informático cliente necesita transferir una copia de la porción de datos al servidor de copias de seguridad, incluso si la porción de datos en esos clientes tiene un nombre, ubicación u otros atributos diferentes. Un cliente de copias de seguridad produce una identificación de una porción de datos almacenada en un primer dispositivo informatizado para la cual se va a hacer copia de seguridad. El cliente de copias de seguridad transfiere, a un servidor de copias de seguridad, la identificación de la porción de datos almacenada en el dispositivo informatizado y recibe, a través de la interfaz de comunicaciones, una indicación de transferencia procedente del servidor de copias de seguridad. El cliente de copias de seguridad determina si la indicación de transferencia indica que el servidor de copias de seguridad ya contiene una copia de la porción de datos identificada por la identificación y si no, el cliente de copias de seguridad transfiere una copia de la porción de datos desde el dispositivo de almacenamiento local al servidor de copias de seguridad a través de la interfaz de comunicaciones.
US 2002/0107877 A1 se refiere a un sistema para permitir que múltiples nodos de una red informática hagan copias de seguridad de archivos en unos medios comunes de almacenamiento de copias de seguridad de acceso aleatorio.
US 6.757.794 B2 se refiere al almacenamiento intermedio (buffering) de datos recuperados desde un dispositivo de almacenamiento secundario en un entorno de almacenamiento de datos jerárquico.
El objeto de la presente invención es mejorar la eficiencia de almacenamiento para una copia de seguridad de objetos de datos a un medio secuencial.
Este objeto es resuelto por la materia de las reivindicaciones independientes.
Las reivindicaciones dependientes definen formas de realización preferidas.
Breve descripción de los dibujos
La Figura 1 es un diagrama de bloques que ilustra los componentes de un sistema en una forma de realización de la invención.
La Figura 2 es un diagrama de bloques que ilustra un flujo de datos durante una operación de almacenamiento, en una forma de realización.
La Figura 3 es un diagrama de bloques que muestra una disposición típica del sistema de almacenamiento en una empresa, en una forma de realización.
La Figura 4 es un diagrama de flujo que ilustra el procesamiento de un componente gestor de operaciones de almacenamiento del sistema en una forma de realización.
La Figura 5 es un diagrama de flujo que ilustra el procesamiento del sistema para determinar si un archivo es único, en una forma de realización.
La Figura 6 es un diagrama de flujo que ilustra el procesamiento del componente de operaciones de almacenamiento para restaurar datos, en una forma de realización.
La Figura 7 ilustra el proceso de almacenamiento de datos de tres clientes primero en un medio de acceso aleatorio instanciado de forma única (single-instanced) y luego en un medio secuencial.
La Figura 8A es una estructura de datos que ilustra un diseño de datos de almacenamiento en una cinta u otro medio secuencial, en una forma de realización.
La Figura 8B es una estructura de datos que ilustra un tipo de datos almacenados en cada entrada de la figura 8A, en una forma de realización.
La Figura 9 es una tabla que ilustra información almacenada por un componente de base de datos de instancia única, en una forma de realización.
La Figura 10 es un diagrama de flujo que ilustra el procesamiento del componente de operaciones de almacenamiento para restaurar datos desde un medio secuencial, en una forma de realización.
En los dibujos, los mismos números de referencia y siglas identifican elementos o actos con la misma funcionalidad
o similar para facilitar la comprensión y la comodidad. Para identificar fácilmente la discusión de cualquier elemento
o acto en particular, el dígito o dígitos más significativos de un número de referencia se refieren al número de figura en la que ese elemento fue introducido por primera vez (por ejemplo, el elemento 604 es introducido y discutido por primera vez con respecto a la figura 6).
Descripción detallada
Los títulos proporcionados en este documento son únicamente por comodidad y no afectan necesariamente al alcance o sentido de la invención reivindicada.
Visión general
Un procedimiento y sistema para reducir los requisitos de almacenamiento y acelerar las operaciones de almacenamiento mediante la reducción del almacenamiento de datos redundantes, al cual se hace referencia como de instanciación única, primero recibe una solicitud que identifica uno o más objetos de datos sobre los que se va a realizar una operación de almacenamiento. Una operación de almacenamiento puede incluir muchos tipos de operaciones diferentes, como una copia de seguridad, una copia, una copia instantánea (snapshot), una imagen de disco, etc. Por ejemplo, una operación de almacenamiento es una copia de seguridad de datos, y la solicitud puede especificar la ubicación de los objetos de datos que se van a copiar, tales como un directorio de archivos, y una ubicación para almacenar los datos de la copia de seguridad, tal como un servidor de archivos de red. Un objeto de datos puede incluir muchos tipos diferentes de datos, tales como archivos, correo electrónico, datos específicos de aplicación (por ejemplo, documentos, hojas de cálculo, bases de datos, etc.), ajustes de configuración, etc. Para cada objeto de datos, el sistema de almacenamiento determina si el objeto de datos contiene datos que coinciden con otro objeto de datos que fue sometido a una operación de almacenamiento previa. Por ejemplo, si la operación de almacenamiento es una copia de seguridad de archivos de datos, entonces el sistema de almacenamiento determina si los datos de una copia de seguridad de una operación de copia de seguridad previa ya contiene un archivo particular que va a ser copiado por la operación actual. Si los objetos de datos no coinciden, entonces el sistema de almacenamiento realiza la operación de almacenamiento de manera habitual. Sin embargo, si los objetos de datos coinciden, entonces el sistema de almacenamiento puede evitar la realización de la operación de almacenamiento. Por ejemplo, en el caso de una copia de seguridad, el sistema de almacenamiento puede almacenar sólo los archivos que no están incluidos en la copia de datos de seguridad procedente de una operación de copia de seguridad anterior. Para instancias adicionales del archivo, el sistema de almacenamiento puede almacenar metadatos que describen la presencia de las instancias adicionales sin almacenar las propias instancias adicionales. Por ejemplo, si el mismo archivo es localizado en dos directorios diferentes como parte de una operación de almacenamiento, entonces la primera instancia del archivo se puede almacenar en su totalidad y se puede almacenar un marcador de posición o apuntador que represente la segunda instancia del archivo en lugar de almacenar la propia segunda instancia del archivo. Los objetos de datos pueden comprender cualquier tipo de información electrónica u objeto que soporte la recuperación a nivel de objeto, tales como archivos, correos electrónicos, archivos adjuntos y datos de aplicaciones. Por lo tanto, el sistema de almacenamiento reduce la cantidad de almacenamiento necesaria para realizar la operación de almacenamiento y ahorra tiempo reduciendo la cantidad de datos para los que se llevan a cabo las operaciones de almacenamiento para satisfacer una solicitud de almacenamiento.
La instanciación única presenta una serie de desafíos cuando se utilizan medios secuenciales. Los medios secuenciales incluyen medios tales como cintas que típicamente son accedidas (por ejemplo, leídas y escritas) secuencialmente. Los medios secuenciales contrastan con los medios de acceso aleatorio, tales como discos duros, unidades flash, y medios ópticos, que pueden ser accedidos de forma aleatoria. Una de las dificultades al utilizar medios secuenciales es que la búsqueda de una ubicación particular requiere más tiempo que en los medios de acceso aleatorio. Por ejemplo, mientras que un disco duro puede tener un tiempo de acceso de varios milisegundos, los medios secuenciales pueden tener un tiempo de acceso de varios segundos hasta varios minutos. Por lo tanto, a menudo es deseable disponer de datos en medios secuenciales de una forma que se reduzca o elimine las dependencias entre los datos en diferentes partes del medio. La instanciación única, por otro lado, crea dependencias entre la instancia original de un archivo y las instancias adicionales que hacen referencia a la instancia original del archivo. Por lo tanto, el sistema de almacenamiento proporciona técnicas especiales para almacenar y recuperar datos de instancia única en medios secuenciales.
La invención se describirá ahora con respecto a diversas formas de realización. La siguiente descripción proporciona detalles específicos para una comprensión completa de, y permitiendo la descripción para, estas formas de realización de la invención. Sin embargo, un experto en la técnica entenderá que la invención se puede poner en práctica sin estos detalles. En otros casos, se no se han mostrado o descrito en detalle estructuras y funciones bien conocidas para evitar complicar innecesariamente la descripción de las formas de realización de la invención.
La terminología utilizada en la descripción que se presenta a continuación está destinada a ser interpretada en su forma más amplia razonable, a pesar de que se utiliza en conjunción con una descripción detallada de ciertas formas de realización específicas de la invención. Ciertos términos pueden incluso ser enfatizados más adelante; sin embargo, cualquier terminología destinada a ser interpretada de manera restringida será definida abiertamente y específicamente como tal en esta sección de Descripción Detallada.
Determinación de Similitud de Objetos de Datos
A continuación se describirán varios procedimientos de determinar si un objeto de datos es similar (por ejemplo, dos instancias de los mismos datos) a otro objeto de datos. Sin embargo, los expertos en la técnica reconocerán que se pueden utilizar muchos otros procedimientos además de los descritos en este documento para alcanzar resultados similares.
En algunas formas de realización, el sistema de almacenamiento determina si dos objetos de datos son similares mediante la realización de una comparación binaria. Por ejemplo, un primer archivo puede ser comparado byte a byte con un segundo archivo. Si cada byte de datos en cada archivo coincide, entonces los dos archivos son idénticos y por lo tanto similares. De lo contrario, los dos archivos no coinciden y no son tratados como similares.
En algunas formas de realización, el sistema de almacenamiento determina si dos objetos de datos son similares mediante la creación de un resumen (digest) o huella digital de los datos contenidos en cada objeto de datos. Por ejemplo, a medida que se realizan operaciones de almacenamiento, el sistema de almacenamiento puede realizar un hash de cada archivo para crear un resumen del archivo. El resumen del archivo puede ser comparado con los resúmenes almacenados creados para otros archivos. Si el resumen de dos archivos coincide, entonces el sistema puede considerar que los archivos son idénticos. Se puede usar cualquier algoritmo de hash adecuado, tal como la versión 5 de “Message Digest” (MD5).
En algunas formas de realización, el sistema de almacenamiento puede almacenar información adicional junto con un resumen (digest) del objeto de datos. Generalmente se selecciona un algoritmo de hash que tiene una baja probabilidad de colisiones hash, las cuales se producen cuando dos objetos de datos que contienen datos distintos tienen el mismo valor de hash. Sin embargo, las colisiones hash se producen y se puede usar información adicional para reducir sustancialmente la probabilidad de estas colisiones. Por ejemplo, el sistema puede almacenar para unos archivos el tamaño del archivo como información adicional. Cuando se comparan dos objetos de datos para determinar su similitud, se comparan los resúmenes (digests) así como la información adicional. Si tanto los resúmenes como la información adicional coinciden, los objetos de datos se consideran idénticos. Por ejemplo, para dos archivos si el valor de hash y el tamaño no coinciden, entonces los archivos no se consideran idénticos aunque los valores de hash solos puedan coincidir. Alguna información, tal como el nombre de archivo para un archivo, puede no ser incluida en el resumen de modo que el sistema de almacenamiento considerará idénticos dos archivos que tienen los mismos datos pero diferentes nombres. A pesar de que los nombres de archivos u otra información pueden no coincidir, el valor de hash será el mismo y el sistema de almacenamiento puede evitar el almacenamiento de los datos redundantes. El sistema de almacenamiento también puede realizar otras operaciones después de completar la aplicación del hash, tales como la encriptación de los datos. Aplicando el hash a los datos antes de realizar la encriptación u otras operaciones que modifican los datos, el sistema de almacenamiento permite realizar la instanciación única de los datos modificados en algún momento posterior. Por ejemplo, si los archivos son copiados inicialmente desde un sistema cliente a una primera copia, a continuación se obtiene el hash, y a continuación son encriptados para crear una segunda copia, todavía es posible que el sistema de almacenamiento instancie de forma única la segunda copia y elimine las instancias redundantes de los datos en base a los hashes pre-generados sin tener que desencriptar primero los datos para restaurar su contenido original.
En algunas formas de realización, el sistema de almacenamiento puede operar especialmente sobre objetos de datos que son similares, pero no idénticos. Por ejemplo, muchos sistemas informáticos de una organización pueden tener procesadores de texto con plantillas de documentos similares, pero cada usuario puede haber modificado ligeramente las plantillas de documentos para satisfacer las preferencias de ese usuario. El sistema de almacenamiento puede comparar las plantillas de documentos de dos usuarios y determinar qué porciones son las mismas y qué porciones son diferentes. Entonces, el sistema puede tratar las porciones que son iguales según se ha descrito anteriormente, evitando el almacenamiento redundante de porciones idénticas, mientras almacena sólo las porciones que son diferentes. Como otro ejemplo, varios usuarios pueden haber recibido un correo electrónico y respondido al correo electrónico. Las respuestas pueden contener algún texto nuevo, pero gran parte del texto puede ser el contenido del mensaje original. En este ejemplo, el sistema de almacenamiento puede almacenar sólo el texto similar una vez y almacenar el nuevo texto para la respuesta de cada usuario. Por ejemplo, el sistema puede dividir el correo electrónico en bloques, y comparar los bloques del mensaje de correo electrónico para determinar cuáles son similares.
Instanciación Única - Copias Auxiliares
La reducción o supresión de instancias redundantes de datos resultantes de una operación de almacenamiento aquí se denomina a veces como "instanciación única", porque lo que tradicionalmente sería almacenado como muchas instancias de los mismos datos se reduce a tan sólo una. Se pueden detectar instancias redundantes y reducirlas en varias ubicaciones o momentos durante toda la operación del sistema, la cual ahora se describirá. Estas formas de realización se proporcionan sólo como ejemplos, y no pretenden ser una lista exhaustiva de la forma en que el sistema puede ser implementado.
En algunas formas de realización, el sistema de almacenamiento realiza una única instanciación de datos en el sistema que contiene o genera originalmente los datos, tal como un sistema cliente. Por ejemplo, un sistema cliente que es la fuente de los datos que son objeto de una operación de almacenamiento puede recibir una solicitud desde el sistema de almacenamiento para que proporcione un valor de hash de cada archivo a ser incluido en la operación de almacenamiento. El cliente utiliza un algoritmo de hash para producir un hash de los archivos u otros objetos de datos solicitados por el sistema de almacenamiento. Como alternativa, el propio cliente puede generar valores de hash para cada archivo que se almacena en el sistema cliente de forma continua u otra forma. Cuando se solicita una operación de almacenamiento, el sistema de almacenamiento recibe los valores de hash desde el cliente y determina si éste ya conoce un archivo con un valor de hash coincide con el de uno proporcionado por el sistema cliente. Por ejemplo, el sistema de almacenamiento puede verificar un índice de hashes recibidos desde los sistemas cliente y buscar coincidencias con el valor o valores de hash recibidos desde el cliente. Si el sistema de almacenamiento ya conoce un archivo coincidente o archivo similar, entonces el sistema cliente no necesita ni siquiera enviar el archivo redundante a la ubicación o destino de almacenamiento secundario. Por lo tanto, el sistema de almacenamiento puede enviar una solicitud de seguimiento al sistema cliente que especifica una lista de archivos que son nuevos para el sistema de almacenamiento. A continuación, el cliente envía el contenido completo de los archivos especificados.
En algunas formas de realización, el sistema de almacenamiento realiza instanciación única de datos en el sistema que es objeto de una operación de almacenamiento. En el ejemplo de una operación de almacenamiento, el sistema de almacenamiento puede solicitar que un sistema cliente envíe uno o más archivos almacenados en el sistema cliente a un sistema servidor (por ejemplo, un agente de medios). Entonces, el sistema servidor comprueba cada archivo (por ejemplo, mediante la comparación de un hash de los datos) recibido desde el sistema cliente para determinar si una instancia del archivo recibido ya ha sido almacenada en el sistema servidor. Se pueden descartar las instancias adicionales de un archivo recibido que el sistema de almacenamiento ya ha almacenado en el sistema servidor, mientras que se pueden almacenar por primera vez nuevos archivos y pueden ser indexados en o registrados por el sistema servidor. Este procedimiento alternativo elimina los recursos utilizados por el sistema cliente para calcular resúmenes (digests) o valores de hash, y no requiere que el sistema cliente sea modificado a partir de la configuración utilizada para una operación de almacenamiento tradicional. Sin embargo, recursos de red adicionales pueden ser consumidos por el copiado extra, y la tarea de calcular resúmenes o valores de hash es transferida al sistema servidor.
En algunas formas de realización, el sistema de almacenamiento realiza instanciación única en una copia de los datos creados por una operación de almacenamiento realizada previamente. Por ejemplo, el sistema de almacenamiento puede copiar los datos desde una ubicación principal a una ubicación secundaria, y luego realizar una instanciación única en la copia secundaria de los datos. El sistema de almacenamiento puede crear muchas copias de los datos, denominadas a veces como copias secundarias o auxiliares, como parte de un plan de mantenimiento de datos de una organización y se puede realizar instanciación única en cualquier etapa del proceso en cualquiera de las copias. El sistema de almacenamiento puede procesar los datos copiados, determinar qué archivos u otros objetos de datos son redundantes con otros datos de la copia o con otras copias de los datos y, a continuación, guardar una nueva copia de los datos que no contiene la información redundante. De esta manera, no se requiere modificar un servidor de copias de seguridad u otro sistema para reducir los requisitos de almacenamiento, sino que la organización aún se beneficia de la instanciación única mediante la reducción de los requisitos de almacenamiento posteriormente dentro el proceso, tal como los datos de copia de seguridad anteriores se almacenan en cinta o se envían a una ubicación remota para su almacenamiento. Como otro ejemplo, el sistema puede estar configurado para recibir datos de copia de seguridad creados por otro sistema y crear una copia instanciada de forma única de los datos que tiene un tamaño menor. Por ejemplo, el sistema puede estar configurado para procesar copias de datos procedentes de aplicaciones de almacenamiento de datos populares y reducir el tamaño de las copias de datos. Por ejemplo, los datos del otro sistema pueden estar en un formato diferente. El sistema puede contener agentes capaces de analizar los datos en su formato original y procesarlos en un formato más fácil de usar, y luego instanciar de forma única los datos. Esto permite que una organización reduzca los requisitos de almacenamiento para datos que pueden haber sido copiados o para los que se ha hecho alguna copia de seguridad hace mucho tiempo.
En algunas formas de realización, el sistema de almacenamiento u otro sistema realizan operaciones adicionales en los datos después que se haya realizado la instanciación única. Por ejemplo, datos de copia de seguridad que se almacenan en una ubicación remota pueden ser encriptados para evitar que personas no autorizadas tengan acceso a los datos. Los datos también pueden ser comprimidos para reducir aún más su tamaño. De esta manera, el sistema de almacenamiento realiza las operaciones adicionales de manera más eficiente, porque hay menos datos sobre los que realizar la operación después de que se hayan reducido o eliminado datos redundantes.
Almacenamiento de Datos de Instancia Única
Se pueden almacenar datos de instancia única en una variedad de formas diferentes. En algunas formas de realización, se pueden almacenar datos de instancia única en carpetas y archivos al igual que otros datos instanciados de forma no única o del sistema de archivos. Cuando una primera carpeta contiene un archivo que ya está presente en otra carpeta, la primera carpeta puede contener una referencia, un puntero, o una ruta de acceso al archivo, o un archivo “stub” que contiene información acerca de dónde se puede localizar el archivo que contiene los datos reales. Por ejemplo, dos carpetas A y B pueden contener cada una un archivo X. La carpeta A puede contener el archivo real X, mientras que la carpeta B puede contener un “stub” del archivo X con atributos del archivo u otra información suplementaria que indica que el “stub” es una referencia a la instancia del archivo X ubicado en la carpeta A. El hecho de que el archivo de la carpeta B sea un “stub” puede ser transparente para una aplicación. Por ejemplo, un controlador de filtros del sistema de archivos puede detectar el “stub” y proporcionar los datos del archivo real de la carpeta A a cualquier aplicación que intenta acceder al archivo de la carpeta B. Por lo tanto, el sistema de almacenamiento conserva la organización de los datos, pero elimina las instancias redundantes de los datos, ahorrando así espacio de almacenamiento y tiempo consumido al realizar operaciones adicionales de almacenamiento en los datos.
En algunas formas de realización, la instancia única del archivo puede contener un contador de referencias u otro contador para registrar el número de otras instancias que se refieren al archivo. Alternativamente, un índice de archivos almacenados por el sistema de almacenamiento puede registrar las referencias a cualquier archivo particular instanciado de forma única. En el ejemplo anterior, el archivo X de la carpeta A puede contener un contador de referencias de dos que indica que el archivo pertenece a dos ubicaciones, la carpeta A y la carpeta B. El sistema de almacenamiento puede utilizar el contador de referencias para evitar que el archivo sea borrado o hacer de otro modo que no esté disponible mientras todavía haya referencias pendientes al archivo.
Instanciación Única – Medio Secuencial
Las cintas y otros medios secuenciales o extraíbles a menudo se utilizan para hacer copias de seguridad y otras operaciones de almacenamiento. Los medios secuenciales presentan desafíos especiales para los sistemas de almacenamiento porque los inconvenientes de acceder a datos de forma no secuencial son a menudo mucho mayores que en el acceso a datos secuencialmente. Por ejemplo, con los medios de cinta puede ser muy rápido leer los datos desde el principio de la cinta, después en mitad de la cinta, después en el final (es decir, secuencialmente), pero puede ser mucho más lento leer los datos primero desde el final, después en mitad de la cinta, después al principio (es decir, de forma aleatoria o no secuencial). Por lo tanto, a menudo es un objetivo de los sistemas de almacenamiento estructurar los datos almacenados en medios secuenciales de tal manera que los datos pueden ser accedidos secuencialmente.
En algunas formas de realización, el sistema de almacenamiento prepara copias de instancia única de datos destinados a medios secuenciales utilizando medios intermedios (por ejemplo, de acceso aleatorio). Por ejemplo, el sistema de almacenamiento puede realizar una copia de seguridad de instancia única en un disco duro, y luego procesar los datos almacenados en el disco duro para prepararlos para su grabación en cinta. Los datos pueden ser estructurados de tal forma que la primera instancia de cada archivo contiene los datos del archivo y se almacenan en la cinta antes que las referencias redundantes del archivo que hacen referencia a la primera instancia (por ejemplo, a través de un “stub” o un puntero a la primera instancia). Esto permite que todas las instancias redundantes del archivo sean leídas después de la instancia real del archivo mediante una operación de lectura secuencial. Las instancias redundantes pueden contener información necesaria para localizar la primera instancia tal como el desplazamiento dentro de la cinta actual, o el identificador de otra cinta si el conjunto de datos de la copia de seguridad abarca más de una cinta.
En algunas formas de realización, el sistema de almacenamiento utiliza una técnica similar cuando restaura los datos. Por ejemplo, el sistema de almacenamiento puede restaurar los datos primero a un medio intermedio de acceso aleatorio, tal como un disco duro, en el que los datos se pueden crear de nuevo en su forma original, incluyendo la resolución de referencias a instancias redundantes de los datos, antes de ser copiados a un sistema objetivo. Alternativamente, el sistema de almacenamiento puede mantener los datos en su forma instanciada de forma única y procesar solicitudes sobre los datos mediante la desinstanciación de los datos bajo solicitud. Por ejemplo, el sistema puede copiar la primera instancia del archivo en un primer directorio, y luego cuando un segundo directorio hace referencia al archivo, el sistema copia el archivo procedente del primer directorio en base a la información almacenada en un puntero o “stub” que describe el contenido del segundo directorio. A continuación se describen aún más estas y otras técnicas para el almacenamiento de datos de instancia única en medios secuenciales con referencia a las figuras.
Figuras
Ahora se ilustrarán los detalles del sistema de almacenamiento descritos anteriormente con referencia a las figuras. A menos que se describa lo contrario más abajo, los aspectos de la invención se pueden poner en práctica con sistemas convencionales de procesamiento de datos. Por lo tanto, la construcción y el funcionamiento de los diversos bloques mostrados en la Figura 1 pueden tener un diseño convencional, y no necesitan ser descritos con más detalle en el presente documento para utilizar la invención, debido a que tales bloques serán entendidos por los expertos en la técnica pertinente. Un experto en la técnica pertinente puede fácilmente hacer cualquier modificación necesaria a los bloques de la Figura 1 (u otras formas de realización o figuras) en base a la descripción detallada proporcionada en el presente documento.
La Figura 1 es un diagrama de bloques que ilustra los componentes del sistema, en una forma de realización. El sistema de almacenamiento 100 contiene un componente de identificación de archivos 110, un componente de generación de identificadores 120, un componente de comparación de identificadores 130, un componente de base de datos de instancia única 140, un componente de caché de archivos restaurados 150, y un componente gestor de operaciones de almacenamiento 160. El componente de identificación de archivos 110 identifica los archivos u otros objetos de datos, tal como en respuesta a una operación de almacenamiento. El componente de identificación de archivos 110 puede recuperar información adicional relacionada con un objeto de datos, tal como su tamaño, utilizada por el sistema para identificar de forma única el objeto de datos. El componente de generación de identificadores 120 genera un resumen (o digest) de un archivo u otro objeto de datos que es utilizado para determinar si otro objeto de datos ya almacenado por el sistema coincide con el objeto de datos utilizado para generar el resumen. El componente de comparación de identificadores 130 realiza comparaciones de los resúmenes de diversos objetos de datos para determinar si los objetos de datos contienen datos similares.
El componente de base de datos de instancia única 140 es un almacén de datos que contiene entradas que identifican los objetos de datos gestionados por el sistema de almacenamiento 100, y también puede contener información suplementaria como un resumen, ruta, ubicación, contador de referencias, o tamaño del archivo. El componente de caché de archivos restaurados 150 proporciona opcionalmente una ubicación intermedia utilizada por el sistema 100 durante una operación de restauración para mantener las instancias de archivos para las cuales se puede necesitar que se restauren referencias adicionales. Por ejemplo, durante una operación de restauración, el sistema de almacenamiento puede restaurar archivos en la memoria caché y luego transferir los archivos a una ubicación objetivo de la operación de restauración. Cuando el sistema de almacenamiento encuentra una referencia a una copia de instancia única de un objeto de datos, el sistema puede consultar el componente de caché de archivos restaurados 150 o un índice para determinar si el objeto de datos está presente en la memoria caché antes de intentar restaurar el objeto de datos desde otra ubicación, tal como una cinta. El componente gestor de operaciones de almacenamiento 160 coordina las operaciones de almacenamiento e invoca los otros componentes del sistema de almacenamiento 100 según sea necesario para llevar a cabo las operaciones de almacenamiento solicitadas. Por ejemplo, el componente gestor de almacenamiento 160 puede incluir una aplicación utilizada por un administrador para gestionar el sistema. El componente gestor de almacenamiento 160 también puede mantener los índices de los objetos de datos y cada una de las referencias a esos objetos de datos a través del sistema, así como operaciones pendientes en los objetos de datos que forman parte del plan de gestión de datos de una organización.
La Figura 1 y la discusión en el presente documento proporcionan una descripción breve y general de un entorno informático adecuado en el que la invención puede ser implementada. Aunque no es necesario, los aspectos de la invención se describen en el contexto general de instrucciones ejecutables por ordenador, tales como rutinas ejecutadas por un ordenador de propósito general, por ejemplo, un servidor, un dispositivo inalámbrico o un ordenador personal. Los expertos en la técnica pertinente apreciarán que la invención se puede poner en práctica con otras configuraciones de comunicaciones, procesamiento de datos, o sistemas informáticos, incluyendo: aplicaciones de Internet, dispositivos portátiles (incluidos los asistentes digitales personales (PDAs)), ordenadores portátiles, todo tipo de teléfonos celulares o móviles, sistemas multi-procesador, electrónica de consumo basada en microprocesador o programable, cajas “set-top”, ordenadores de red, miniordenadores, ordenadores “mainframe”, y similares. De hecho, los términos "ordenador", "host" y "ordenador host" se usan indistintamente en el presente documento, y se refieren a cualquiera de los dispositivos y sistemas antes mencionados, así como a cualquier procesador de datos.
Aspectos de la invención pueden ser implementados en un ordenador de propósito especial o procesador de datos que está programado, configurado, o construido específicamente para realizar una o más de las instrucciones ejecutables por ordenador que se explican en detalle en este documento. Aspectos de la invención también se pueden poner en práctica en entornos informáticos distribuidos en los que las tareas o módulos son realizados por dispositivos de procesamiento remotos, que están enlazados a través de una red de comunicaciones, tal como una red de área local (LAN), red de área amplia (WAN), o Internet. En un entorno informático distribuido, los módulos de programa pueden estar ubicados en dispositivos locales y remotos de almacenamiento de memoria.
Aspectos de la invención pueden ser almacenados o distribuidos en medios legibles por ordenador, incluidos los discos legibles por ordenador magnéticamente u ópticamente, chips cableados o pre-programados (por ejemplo, chips semiconductores EEPROM), memoria basada en nanotecnología, memoria biológica, u otros medios de almacenamiento de datos. De hecho, instrucciones implementadas por ordenador, estructuras de datos, vistas de pantalla, y otros datos bajo los aspectos de la invención se pueden distribuir a través de Internet o a través de otras redes (incluidas las redes inalámbricas), en una señal propagada por un medio de propagación (por ejemplo, onda(s) electromagnética(s), onda de sonido, etc.) durante un período de tiempo, o se pueden proporcionar en cualquier red analógica o digital (de conmutación de paquetes, de conmutación de circuitos, u otro esquema). Los expertos en la técnica pertinente reconocerán que partes de la invención pueden residir en un servidor, mientras que partes correspondientes residen en un equipo cliente tal como un dispositivo móvil o portátil, y por lo tanto, aunque se describen en el presente documento ciertas plataformas hardware, aspectos de la invención son igualmente aplicables a los nodos de una red.
La Figura 2 es un diagrama de bloques que ilustra el flujo de datos durante una operación de almacenamiento, en una forma de realización. Los datos se almacenan inicialmente en el servidor 210 u otra fuente de datos. Una política de almacenamiento de 220 u otra información de configuración especifica una operación de almacenamiento a realizar sobre los datos. Por ejemplo, la política de almacenamiento 220 puede especificar que los datos almacenados en el servidor 210 serán copiados diariamente en cinta. La política de almacenamiento 220 hace que se produzca la copia de seguridad, lo cual crea la copia de datos 230. La copia de datos 230 puede contener muchos archivos u otros objetos de datos redundantes. Un agente de medios 240 gestiona la copia de datos 230, y crea una copia de instancia única 250. La copia de instancia única 250 es una copia de los datos fuente en los que el sistema de almacenamiento ha eliminado al menos algunos de los objetos de datos redundantes. El agente de medios 240 utiliza los procedimientos descritos en este documento para eliminar instancias redundantes de los archivos contenidos en la copia de datos 230, y para producir la copia de instancia única 250. La copia de instancia única 250 se puede almacenar entonces en una cinta u otro medio.
Un agente de medios 240 es generalmente un módulo de software que envía datos, según lo indicado por el gestor de operación de almacenamiento 160, entre un equipo cliente y uno o más dispositivos de almacenamiento tales como una biblioteca de cintas, un dispositivo de almacenamiento de medio magnético, un dispositivo de almacenamiento de medio óptico, o cualquier otro dispositivo de almacenamiento. El agente de medios 240 está acoplado comunicativamente con y controla el dispositivo de almacenamiento. Por ejemplo, el agente de medios 240 puede dar instrucciones al dispositivo de almacenamiento para utilizar un brazo robótico o cualquier otro medio para colocar o expulsar un cartucho de medios, y para archivar, migrar o restaurar datos específicos de aplicación. El agente de medios 240 en general se comunica con el dispositivo de almacenamiento a través de un bus local tal como un adaptador SCSI. En algunas formas de realización, el dispositivo de almacenamiento está acoplado comunicativamente con el agente de medios 240 a través de una red de área de almacenamiento ("SAN ").
Cada agente de medios 240 mantiene una caché de índice que almacena datos de índice que el sistema genera durante operaciones de almacenamiento de copia de seguridad, de migración, y de restauración. Por ejemplo, las operaciones de almacenamiento para datos de Microsoft Exchange generan datos de índice. Los datos de índice proporcionan al sistema un mecanismo eficiente para la localización de archivos de usuario para operaciones de recuperación. Estos datos de índice en general se almacenan con los datos copiados en el dispositivo de almacenamiento, y el agente de medios 240 que controla la operación de almacenamiento también escribe una copia adicional de los datos de índice en su caché de índice. Los datos de la caché de índice del agente de medios 240 están de este modo fácilmente disponibles para que el sistema los use en operaciones de almacenamiento y otras actividades sin tener que ser primero recuperados desde el dispositivo de almacenamiento.
Una política de almacenamiento 220 es generalmente una estructura de datos u otra información que incluye un conjunto de preferencias y otros criterios de almacenamiento para realizar una operación de almacenamiento. Las preferencias y los criterios de almacenamiento pueden incluir, pero no se limitan a: una ubicación de almacenamiento, relaciones entre componentes del sistema, rutas de red a utilizar, políticas de retención, características de los datos, requisitos de compresión o encriptación, componentes del sistema de uso preferido en una operación de almacenamiento, y otros criterios relativos a una operación de almacenamiento. Una política de almacenamiento 220 puede ser almacenada en un índice de agente de medios, en medios de archivo en forma de metadatos para su uso en operaciones de restauración u otras operaciones de almacenamiento, o en otras ubicaciones o componentes del sistema.
La Figura 3 es un diagrama de bloques que muestra una disposición típica del sistema de almacenamiento en una empresa, en una forma de realización. Una empresa típica contiene muchos sistemas informáticos, tales como ordenadores 300 y 310. Un sistema informático 300 contiene un archivo común 302 que es común a los sistemas de toda la organización. Por ejemplo el archivo común 302 puede ser un archivo del sistema operativo que contienen todos los sistemas informáticos que ejecutan un sistema operativo en particular. El sistema informático 300 también contiene un archivo único A 304 que es único para el sistema informático 300. De modo similar, el sistema informático 310 incluye otra instancia del archivo común 312 y un archivo único B 314 que sólo está almacenado en el sistema informático 310. Un agente de medios 320 gestiona las operaciones de almacenamiento en la empresa descritas por las políticas de almacenamiento, tales como copias de seguridad nocturnas de los datos almacenados en los sistemas informáticos 300 y 310. El agente de medios 320 almacena los datos en una base de datos de instancia única 330 de tal manera que los archivos comunes sólo se almacenan una vez. Por ejemplo, la base de datos de instancia única 330 contiene una copia del archivo común 332 que contiene los mismos datos que las instancias del archivo común 302 y 312 almacenadas por los sistemas informáticos 300 y 310. La base de datos de instancia única 330 también contiene una copia del archivo único A 334 y del archivo único B 336.
Las figuras 4-6 y 10 son diagramas de flujo representativos que representan procesos utilizados en algunas formas de realización. Estos diagramas de flujo no muestran todas las funciones o intercambios de datos, sino que en su lugar proporcionan una comprensión de los comandos y los datos intercambiados en el sistema. Los expertos en la técnica pertinente reconocerán que algunas funciones o intercambios de comandos y datos se pueden repetir, variar, omitir, o completar, y otros aspectos (menos importantes) que no se muestran pueden ser implementados fácilmente.
La Figura 4 es un diagrama de flujo que ilustra el procesamiento del componente gestor de almacenamiento 160 del sistema en una forma de realización. El componente es invocado cuando se solicita una operación de almacenamiento que crea una copia de un archivo. En la etapa 410, el componente identifica el archivo a ser copiado, tal como en base a una solicitud de hacer una copia de seguridad de datos. En la etapa 420, el componente determina si el archivo es único, o si el archivo ha sido copiado anteriormente. Por ejemplo, el componente puede calcular un resumen de la manera descrita en este documento, y comparar el resumen con los resúmenes de los archivos copiados previamente para determinar si el archivo es una instancia de un archivo copiado anteriormente. En la etapa de decisión 430, si el archivo es único, entonces el componente continúa en la etapa 450, en caso contrario el componente continúa en la etapa 440. En la etapa 440, el componente añade una referencia (por ejemplo, en un índice de datos gestionados por el sistema) a la instancia del archivo de la que ya se ha hecho copia de seguridad, y luego termina. En la etapa 450, el componente almacena el archivo único. Después de la etapa 450, estas etapas concluyen.
La Figura 5 es un diagrama de flujo que ilustra el procesamiento del sistema 100 para determinar si un archivo es único, en una forma de realización. Estas etapas pueden ser invocadas por el componente de operaciones de almacenamiento 160, tal como cuando se realiza una operación de almacenamiento según se describe en la Figura 4 o en otros momentos. En la etapa 510, el componente de generación de identificadores 120 genera un resumen del archivo que es el objeto de la operación de copia de seguridad. En la etapa 520, el componente de identificación del archivo 110 recopila (por ejemplo, consultando el sistema de archivos de un cliente) información adicional acerca del archivo, tal como el tamaño del archivo, información de seguridad, u otros atributos. En la etapa 530, el componente de comparación de identificadores 130 (por ejemplo, en el cliente o en un agente de medios) determina si el resumen del archivo y cualquier información adicional suplementaria coinciden con los de cualquier archivo existente registrado por el componente de base de datos de instancia única 140. En la etapa de decisión 540, si los archivos coinciden, entonces el sistema 100 continúa en la etapa 550, de lo contrario el sistema 100 continúa en la etapa 570. En la etapa 550, el sistema 100 informa a la entidad que invocó el componente de que el archivo no es único. En la etapa 560, el sistema actualiza el contador de referencias de resumen registradas por el componente de base de datos de instancia única 140 y luego concluye. En la etapa 570, el sistema 100 informa a la entidad que invocó el componente que el archivo es único. En la etapa 580, el sistema 100 añade el resumen del archivo y otra información a la lista de archivos registrados por el componente de base de datos de instancia única 140. Entonces estas etapas concluyen.
La Figura 6 es un diagrama de flujo que ilustra el procesamiento del componente de operaciones de almacenamiento 160 para restaurar datos, en una forma de realización. El componente es invocado cuando se recibe una solicitud, por ejemplo, para restaurar los datos. En la etapa 610, el componente recibe una solicitud para restaurar los datos. En la etapa 620, el componente selecciona el siguiente objeto de datos al que se refiere la solicitud. Por ejemplo, la solicitud puede identificar 10 objetos de datos, y el componente selecciona el primer objeto de datos en el que realizar las siguientes etapas. Alternativa o adicionalmente, los 10 objetos de datos pueden haber sido escritos en la cinta siguiendo varios órdenes, y el componente puede generar un plan para acceder a los 10 objetos de datos en base a una determinación de la distribución de los objetos de datos en el medio. En la etapa de decisión 630, si el objeto de datos seleccionado es una referencia a una instancia de un archivo almacenado en otro lugar, entonces el componente continúa en la etapa 640, en caso contrario el componente continúa en la etapa 650. En la etapa 640, el componente localiza la instancia referenciada del archivo y continúa en la etapa 655. En la etapa 655, el componente restaura el objeto de datos a partir de la instancia referenciada del archivo. En la etapa 650, el componente restaura el archivo directamente a partir del objeto de datos. En la etapa de decisión 660, si hay más objetos de datos a los cuales se refiere la solicitud recibida, entonces el componente retrocede al bloque 620 para seleccionar el siguiente objeto de datos en el que realizar las siguientes etapas, en caso contrario el componente finaliza.
La Figura 7 ilustra el proceso de almacenamiento de datos de tres clientes primero en un medio de acceso aleatorio instanciado de forma única y después en un medio secuencial. En algunas formas de realización, el sistema primero instancia de forma única los datos en el medio de acceso aleatorio, tal como un disco magnético, y luego copia los datos de instancia única en el medio secuencial, tal como una cinta. El sistema puede crear cada archivo en un conjunto de datos como uno o más bloques de datos, por ejemplo, almacenados como una o varias carpetas en un medio de acceso aleatorio. El cliente 1 710 almacena dos archivos, Archivo 1 y Archivo 2. El cliente 2 720 almacena dos archivos, Archivo 2 y Archivo 3. El cliente 3 730 almacena dos archivos, Archivo 2 y Archivo 3. Los archivos de cada cliente se almacenan en un bloque separado en el medio de acceso aleatorio 740, el cual crea una carpeta separada para cada bloque. Dentro de la carpeta del primer bloque están los datos del Archivo 1 y Archivo 2 almacenados por el Cliente 1 710. Esta es la primera vez que el Archivo 1 o el Archivo 2 ha sido almacenado en el medio de acceso aleatorio 740. Cuando el cliente 2 almacena el Archivo 2 y Archivo 3, el agente de medios comprueba su índice para determinar que el Archivo 2 ya existe en el bloque 1. El agente de medios hace que la operación de almacenamiento de datos almacene una copia real del Archivo 3 en el bloque 2, porque el Archivo 3 es almacenado por primera vez, y un stub o archivo dummy para el Archivo 2 en el bloque 2 que contiene un puntero a los datos reales del Archivo 2 almacenados en el bloque 1. Por lo tanto, todos los datos del Archivo 2 son almacenados sólo en el bloque 1. El bloque 1 también puede contener metadatos asociados al Archivo 2 que incluye un contador de referencias. Cada puntero al archivo incrementa entonces el contador de referencias. El contador de referencias se puede almacenar con cada bloque o en el índice. Esto permite que el sistema determine cuando unos archivos no pueden ser referenciados nunca más y pueden ser eliminados del medio de acceso aleatorio para recuperar espacio. Cada archivo u objeto de datos puede tener información de cabecera almacenada en una cabecera de etiqueta que almacena cualquier contador de referencias o apuntador a otros objetos, así como información complementaria tal como la fecha en que el archivo fue almacenado por primera vez, una fecha de caducidad tras la cual el archivo se puede eliminar y otra información relacionada con el almacenamiento. La información de cabecera se puede utilizar para reconstruir el índice si se pierde el índice en alguna ocasión.
Cuando el cliente 3 almacena sus copias del Archivo 2 y Archivo 3, el agente de medios determina que ambos archivos ya han sido almacenados, y se almacenan dos archivos stub en la carpeta del bloque 3. El primer stub representa el Archivo 2 y apunta a los datos del Bloque 1. El segundo stub representa el Archivo 3 y apunta a los datos del Bloque 2. En algún punto, un gestor o proceso planificado determina que los datos procedentes del medio de acceso aleatorio se deben almacenar en el medio secuencial. Por ejemplo, este proceso podría llevarse a cabo como parte de una rutina nocturna de almacenamiento de datos. El sistema almacena los datos para cada uno de los bloques en el medio secuencial, uno después del otro. Opcionalmente, el sistema puede almacenar información de índice en el medio secuencial que identifica qué datos (por ejemplo, archivos) son almacenados en qué bloque. Los bloques pueden ser grandes y por lo tanto abarcar múltiples medios secuenciales, y el índice puede contener información sobre los medios secuenciales en los que se almacena así como otros medios secuenciales que contienen datos para el conjunto de datos.
De forma alternativa o adicionalmente, los datos del índice pueden permanecer en el agente de medios y ser protegidos por separado como parte de un proceso de protección de datos utilizado por el agente de medios. Cabe señalar que los datos de índice no son necesarios para restaurar los datos a partir de los bloques almacenados en los medios secuenciales. Por el contrario, la información de stub almacenada en cada bloque es suficiente para volver a crear los datos de índice a partir de los medios secuenciales, y puede servir como una copia adicional para proteger los datos de índice.
Las figuras 8-9 ilustran algunas de las estructuras de datos utilizadas por el sistema. Aunque en este documento se usan los términos "campo" y "registro", se puede usar cualquier tipo de estructura de datos. Por ejemplo, los datos pertinentes pueden tener cabeceras precedentes, u otros datos de cabecera precediendo (o a continuación de) los datos pertinentes. Alternativamente, los datos pertinentes pueden evitar el uso de cualesquiera datos de cabecera, tal como cabeceras, y simplemente ser reconocidos por un cierto byte o serie de bytes dentro de un flujo de datos en serie. En este documento se pueden utilizar cualquier número de estructuras de datos y tipos.
La Figura 8A es una estructura de datos que ilustra la distribución de los datos de almacenamiento en una cinta u otro medio, en una forma de realización. La estructura de datos 800 contiene una serie de entradas que son estructuras de datos más pequeñas, las cuales se describen con más detalle en la Figura 8B. La estructura de datos 800 contiene información de cabecera 810 que identifica los datos siguientes y el medio. Por ejemplo, la información de cabecera 810 puede almacenar un número de serie u otro identificador que identifica de forma única la cinta de manera que otras cintas (o base de datos o entradas de índice) pueden hacer referencia a los datos almacenados en la cinta, y un índice de los datos almacenados en la cinta. El índice puede contener información sobre la estructura del sistema de archivos original donde estaban ubicados los datos almacenados en la cinta. La entrada 820 indica el comienzo de los datos procedentes de un directorio X. Los datos siguientes a la entrada 820 son ubicados en el directorio X cuando son restaurados. La entrada 830 contiene información acerca de un archivo A. La entrada puede contener información de cabecera que describe detalles acerca de los datos, tal como el tamaño de los datos, seguido de los propios datos. La entrada 840 contiene de manera similar información acerca de un archivo
B. La entrada 850 indica el comienzo de los datos procedentes de un directorio Y. La entrada 860 contiene información sobre el archivo C. La entrada 870 es la segunda ocurrencia del archivo A, el cual está almacenado en el directorio X y el directorio Y. La entrada 870 almacena una referencia a los datos del archivo A que está almacenado en la entrada 830, en lugar de una segunda copia de los datos.
La Figura 8B es una estructura de datos que ilustra el tipo de los datos almacenados en cada archivo y entrada de directorio de la figura 8A, en una forma de realización. La entrada contiene una cabecera 880 y datos 890. La cabecera 880 contiene un tipo 882 y un tamaño 884. El tipo 882 indica el tipo de entrada y qué tipo de información está almacenada en los datos 890, tal como información de directorio, datos, o una referencia a los datos. El tamaño 884 es sólo un tipo de información adicional que puede estar contenida en la cabecera 880. Por ejemplo, la cabecera 880 puede contener información de control de acceso, fechas en las que los datos fueron accedidos o modificados por última vez, etc. La cabecera 880 puede contener datos adicionales útiles para hacer determinaciones acerca de los datos 890 siguientes a la cabecera 880. Si el tipo 882 indica que la entrada contiene datos de un archivo, entonces el dato 890 contiene los datos reales del archivo 892. Si el tipo 882 indica que la entrada es una referencia a los datos, el dato 890 contiene datos de referencia 894, tal como un desplazamiento con respecto a los datos reales del archivo en una ubicación anterior del medio u otro medio (por ejemplo, en un conjunto de copias de seguridad de cinta múltiple).
La Figura 9 es una tabla que ilustra la información almacenada por el componente de base de datos de instancia única 140, en una forma de realización. La tabla 900 contiene una columna de hash 910, una columna de primera ubicación 920, una columna de contador de referencias 930, una columna de tamaño 940, y una columna de tiempo
950. La columna de hash 910 contiene un valor de resumen calculado sobre un archivo registrado por el sistema, tal como un hash MD5. La columna de primera ubicación 920 contiene una dirección que se puede utilizar para acceder a los datos del archivo en la cual se encuentran realmente. Por ejemplo, la dirección puede ser una ruta de red o una dirección URL que especifica una ubicación de un archivo. La columna de contador de referencias 930 indica cuántas instancias o referencias diferentes a los datos han sido informadas al componente de base de datos de instancia única 140. Alternativamente o adicionalmente, la columna de contador de referencias 930 puede contener una lista de ubicaciones en las que se ubican las diferentes instancias. La columna de tamaño 940 y la columna de tiempo 950 especifican datos adicionales que pueden ser utilizados junto con el valor de hash 910 para identificar de forma única un archivo u otro objeto de datos, tales como el tamaño del archivo o la fecha de la última modificación. La tabla contiene una primera entrada 960 con un valor de hash en hexadecimal, una ubicación "\\server\c$\io.sys" que es una ruta de red que especifica un archivo común del sistema operativo, un contador de referencias que vale 56, un tamaño de 20.254 bytes, y una fecha 1/1/2000. La tabla también contiene una segunda entrada 970 con un valor de hash en hexadecimal, una ubicación "\\hr\employee.pdf” que puede ser un manual de empleado, un contador de referencias que vale 22, un tamaño de 1.568.214 bytes, y una fecha 20/9/2006.
La Figura 10 es un diagrama de flujo que ilustra el procesamiento del componente de operaciones de almacenamiento 160 para restaurar datos desde un medio secuencial, en una forma de realización. En la etapa 1010, el componente recibe una solicitud para restaurar los datos. Por ejemplo, la solicitud puede indicar un único archivo o un ordenador cuyos datos se quieren restaurar desde una copia de seguridad en cinta. En la etapa 1020, el componente genera una lista de archivos a restaurar. En la etapa 1030, el componente resuelve la ubicación de cada archivo. Por ejemplo, si el medio es una cinta, entonces la ubicación puede ser un identificador de la cinta dentro de un conjunto de cintas y un desplazamiento dentro de una cinta en particular hasta el archivo. En el ejemplo dado anteriormente, este paso puede identificar el bloque de datos asociado con el ordenador cuyos datos se van a restaurar. El bloque puede contener uno o más archivos “stub” en lugar de los datos reales solicitados, y se puede realizar un paso adicional (que no se muestra) para resolver cualesquiera punteros dentro del bloque a otros bloques que contienen los datos reales. En la etapa 1040, las ubicaciones son ordenadas en función de su ubicación de almacenamiento en el medio secuencial para un acceso secuencial. Por ejemplo, los datos que se encuentran en el principio de la cinta serán recuperados antes que los datos que están en el final de la cinta. El acceso secuencial proporciona unos tiempos de acceso mejores para medios secuenciales. En la etapa 1050, el componente restaura cada archivo desde el medio secuencial.
En algunas formas de realización, el proceso descrito en la Figura 10 puede funcionar en dos modos diferentes dependiendo de si los datos de índice están disponibles además de los datos almacenados en el medio secuencial. Por ejemplo, el agente de medios que originalmente almacenó los datos en el medio secuencial puede tener a su disposición la información de índice sobre los datos almacenados. En el primer modo, los datos del índice son utilizados para trazar un plan de acceso a los datos almacenados en el medio de forma secuencial según se describe en la etapa 1040. Por lo tanto, los datos del índice proporcionan una optimización mediante la cual los datos reales a restaurar pueden ser accedidos directamente sin recuperar datos “stub” si los datos están fácilmente disponibles en otra parte del sistema. En el segundo modo, el sistema tiene sólo la información acerca de qué archivos u otros datos están almacenados en cada bloque, determina qué bloques se van a restaurar, y copia los datos de cada bloque en una caché de acceso aleatorio de archivos del medio. Entonces, el sistema accede a cada bloque de datos para determinar si los bloques contienen datos “stub”. Para cualesquiera “stubs”, el sistema vuelve al medio secuencial para recuperar los datos reales a los que hace referencia el “stub”. Este procedimiento es menos eficiente debido a la búsqueda adicional en el medio secuencial, pero requiere menos infraestructura externa para restaurar los datos solicitados. Cada modo puede ser preferible en diferentes situaciones. Por ejemplo, el primer modo puede ser preferible cuando los datos están siendo restaurados en su entorno original en el que el agente de medios y otras infraestructuras están disponibles para hacer que la restauración sea más eficiente, pero el segundo modo puede ser preferible cuando los datos están siendo restaurados en un nuevo entorno que no presenta toda la infraestructura disponible cuando los datos fueron almacenados originalmente.
Según se describió anteriormente, en algunas formas de realización los datos restaurados se almacenan en una caché de un medio de acceso aleatorio, y el sistema puede comprobar la memoria caché antes de restaurar cualquier elemento en particular desde el medio secuencial. Esto permite que el sistema evite accesos al medio secuencial que pueden ser más lentos que al medio de acceso aleatorio o causar más búsquedas en el medio secuencial en base a la posición actual del medio secuencial. La vida útil de los medios secuenciales puede depender del número de búsquedas que se producen, por lo que la evitación de estos accesos accediendo primero a la memoria caché puede tener beneficios de fiabilidad además de cualesquiera beneficios de velocidad.
Debido a que el formato de los datos almacenados en el medio secuencial es independiente del componente en cuanto a tipo y hardware, el sistema puede instanciar de forma única conjuntos de datos sobre medios de almacenamiento heterogéneos. Por ejemplo, el sistema puede instanciar de forma única sobre diferentes medios de almacenamiento (cintas, discos, etc.) o sistemas de archivos (Windows, UNIX, etc.). Entonces, el sistema puede crear copias de archivo de datos sin redundancias de datos utilizando medios heterogéneos. Además, el sistema puede entonces restaurar y proporcionar los datos a los usuarios en sistemas heterogéneos, porque el sistema no depende de las aplicaciones o sistemas de archivos que crearon los datos. Por ejemplo, datos creados originalmente en un entorno UNIX pueden ser almacenados como un archivo que es independiente de los tipos de datos típicos de UNIX. Años más tarde, el sistema puede recibir una solicitud para recuperar estos datos desde un dispositivo basado en Windows. Al ser independiente del tipo de datos, el sistema es capaz de recuperar el archivo (en el formato del archivo de copia), y volver a crear el archivo como un archivo basado en Windows para su recuperación en el entorno Windows. De modo similar, el sistema también puede recuperar archivos creados por diferentes versiones del entorno (tal como recuperar un fichero de Windows 95 en un sistema Windows 2003).
Conclusión
De lo anterior, se apreciará que se han descrito en el presente documento unas formas de realización específicas del sistema de almacenamiento para fines de ilustración, pero que pueden realizarse diversas modificaciones sin apartarse del alcance de la invención. Por ejemplo, aunque se han descrito operaciones de copia de seguridad, el sistema puede ser utilizado para reducir muchos tipos de operaciones de almacenamiento redundantes. Como un ejemplo, el sistema de almacenamiento puede ser empleado por un servidor proxy de Internet para reducir la descarga de archivos redundantes a través de Internet mediante el registro de un resumen de cada archivo descargado y la ubicación de una instancia descargada del archivo por detrás del servidor proxy de tal manera que se pueden atender solicitudes posteriores para el archivo a partir de la instancia previamente descargada sin acceder al archivo a través de Internet. De modo similar, el sistema de almacenamiento podría ser utilizado por un sistema de archivos para reducir el espacio de almacenamiento mediante el almacenamiento de una sola copia de los datos ubicada en múltiples ubicaciones en todo el sistema de archivos. Por consiguiente, la invención no está limitada excepto por las reivindicaciones adjuntas.
A menos que el contexto requiera claramente otra cosa, en toda la descripción y las reivindicaciones, las palabras "comprende," "que comprende," y similares se deben interpretar en un sentido inclusivo, en contraposición a un sentido exclusivo o exhaustivo; es decir, en el sentido de "que incluye, pero no limitado a". La palabra "acoplado", como generalmente se usa en este documento, se refiere a que dos o más elementos pueden estar o bien directamente conectados, o bien conectados por medio de uno o más elementos intermedios. Además, las palabras "en el presente documento", "anteriormente", "a continuación" y palabras de significado similar, cuando se usan en esta solicitud, se referirán a esta solicitud como un todo y no a cualesquiera partes en particular de esta solicitud. Cuando el contexto lo permita, las palabras de la Descripción Detallada anterior que utilizan el número singular o plural también pueden incluir el número plural o singular respectivamente. La palabra "o" en referencia a una lista de dos o más elementos, abarca todas las siguientes interpretaciones de la palabra: cualquiera de los elementos de la lista, todos los elementos de la lista, y cualquier combinación de los elementos de la lista.
La descripción detallada anterior de formas de realización de la invención no pretende ser exhaustiva o limitar la invención a la forma precisa descrita anteriormente. Aunque anteriormente se han descrito formas de realización específicas de, y ejemplos para, la invención para fines ilustrativos, son posibles diversas modificaciones equivalentes dentro del alcance de la invención, según reconocerán los expertos en la técnica pertinente. Por ejemplo, aunque los procesos o bloques se presentan en un orden dado, formas de realización alternativas pueden realizar rutinas que tienen etapas, o usar sistemas que tienen bloques, en un orden diferente, y algunos procesos o bloques pueden ser borrados, movidos, añadidos, desglosados, combinados, y/o modificados. Cada uno de estos procesos o bloques se pueden implementar en una variedad de maneras diferentes. También, aunque los procesos
o bloques se muestran a veces como que se realizan en serie, estos procesos o bloques en cambio se pueden realizar en paralelo, o se pueden realizar en diferentes momentos.
Las enseñanzas de la invención proporcionadas en el presente documento se pueden aplicar a otros sistemas, no necesariamente al sistema descrito anteriormente. Los elementos y los actos de las diversas formas de realización descritas anteriormente se pueden combinar para proporcionar formas de realización adicionales.
Se pueden hacer a la invención estos y otros cambios a la luz de la Descripción Detallada anterior. Aunque la descripción anterior detalla ciertas formas de realización de la invención y describe el mejor modo contemplado, sin
importar lo detallado que lo anterior aparece en el texto, la invención se puede poner en práctica de muchas maneras. Los detalles del sistema pueden variar considerablemente en los detalles de implementación, siempre que todavía estén englobados por la invención descrita en el presente documento. Según se señaló anteriormente, la terminología particular usada para describir ciertas características o aspectos de la invención no debe tomarse en el 5 sentido de que la terminología está siendo redefinida en el presente documento para limitarse a cualesquiera características, prestaciones, o aspectos específicos de la invención con las que esa terminología está asociada. En general, los términos utilizados en las siguientes reivindicaciones no deben interpretarse para limitar la invención a las formas de realización específicas descritas en la especificación, a menos que la sección Descripción Detallada anterior defina explícitamente dichos términos. Por consiguiente, el alcance real de la invención no sólo engloba las
10 formas de realización descritas, sino también todas las formas equivalentes de llevar a la práctica o implementar la invención según las reivindicaciones.
Aunque a continuación se presentan ciertos aspectos de la invención en ciertas formas de reivindicación, los inventores contemplan los diversos aspectos de la invención en cualquier número de formas de reivindicación. Por
15 ejemplo, aunque se enumera sólo un aspecto de la invención como incluido en un medio legible por ordenador, otros aspectos pueden igualmente ser incluidos en un medio legible por ordenador. En consecuencia, los inventores se reservan el derecho de añadir reivindicaciones adicionales después de la presentación de la solicitud para reivindicar dichas formas adicionales de reivindicación para otros aspectos de la invención.

Claims (10)

  1. REIVINDICACIONES
    1. Un procedimiento en un sistema informático para almacenar un objeto de datos en un medio secuencial, que comprende:
    recibir una solicitud para almacenar una copia de un objeto de datos en una ubicación de destino, en el que el objeto de datos está almacenado en una ubicación origen en un medio de acceso aleatorio y la ubicación de destino está en un medio secuencial; y
    preparar una copia de instancia única del objeto de datos con destino al medio secuencial utilizando un medio intermedio de acceso aleatorio, en el que preparar una copia de instancia única comprende determinar (430) si el objeto de datos ha sido copiado antes al medio intermedio de acceso aleatorio, si el objeto de datos ha sido copiado antes al medio intermedio de acceso aleatorio, almacenar un puntero a la copia del objeto de datos en el medio intermedio de acceso aleatorio, en el que cada puntero a la copia del objeto de datos incrementa un contador de referencias asociado con el objeto de datos, y si el objeto de datos no ha sido copiado antes al medio intermedio de acceso aleatorio, almacenar (450) una copia del objeto de datos en el medio intermedio de acceso aleatorio.
  2. 2. El procedimiento de la reivindicación 1 en el que la determinación comprende:
    calcular un valor de hash del objeto de datos; y
    comparar el valor de hash calculado con otro valor de hash de un objeto de datos almacenado previamente por el sistema.
  3. 3.
    El procedimiento de la reivindicación 1, que comprende además almacenar información de índice que contiene al menos un valor de hash de los datos.
  4. 4.
    El procedimiento de la reivindicación 1 en el que preparar una copia de instancia única comprende además procesar los datos almacenados en el medio intermedio de acceso aleatorio estructurando los datos de manera que el objeto de datos es almacenado en el medio secuencial antes que el puntero al objeto de datos.
  5. 5.
    Un sistema informático para almacenar un objeto de datos en un medio secuencial, que comprende:
    medios para recibir una solicitud para almacenar una copia de un objeto de datos en una ubicación de destino, en el que el objeto de datos está almacenado en una ubicación origen en un medio de acceso aleatorio y la ubicación de destino está en un medio secuencial; en el que el sistema informático está configurado para:
    preparar una copia de instancia única del objeto de datos con destino al medio secuencial utilizando un medio intermedio de acceso aleatorio, en el que preparar una copia de instancia única comprende determinar (430) si el objeto de datos ha sido copiado antes al medio intermedio de acceso aleatorio, si el objeto de datos ha sido copiado antes al medio intermedio de acceso aleatorio, almacenar un puntero a la copia del objeto de datos en el medio intermedio de acceso aleatorio, en el que cada puntero a la copia del objeto de datos incrementa un contador de referencias asociado con el objeto de datos, y si el objeto de datos no ha sido copiado antes al medio intermedio de acceso aleatorio, almacenar (450) una copia del objeto de datos en el medio intermedio de acceso aleatorio.
  6. 6.
    Un sistema informático según la reivindicación 5, que además está configurado para realizar el procedimiento de una de las reivindicaciones 2 a 4.
  7. 7.
    Un medio legible por ordenador que contiene instrucciones para controlar un sistema informático para que realice el procedimiento de una de las reivindicaciones 1 a 4.
  8. 8.
    Un procedimiento en un sistema informático para restaurar datos desde una copia instanciada de forma única en un medio secuencial, en que los datos de la copia instanciada de forma única comprenden un objeto de datos, un puntero al objeto de datos y un contador de referencias asociado con el objeto de datos, indicando el contador de referencias el número de instancias que están apuntando al objeto de datos, comprendiendo el procedimiento:
    recibir (1010) una solicitud para restaurar uno o más objetos de datos desde el medio secuencial a una ubicación de destino, en que la solicitud especifica la ubicación original de los objetos de datos a restaurar;
    para cada objeto de datos de la solicitud: determinar si los datos en la ubicación original en el medio secuencial
    5 especificada por la solicitud contienen un puntero a un objeto de datos o el propio objeto de datos, si la ubicación original en el medio secuencial especificada por la solicitud contiene un puntero a un objeto de datos, resolver (1030) el puntero para encontrar el objeto de datos real y copiar el objeto de datos a la ubicación de destino, y si la ubicación original especificada por la solicitud contiene el propio objeto de datos, copiar (1050) el objeto de datos a la ubicación de destino.
  9. 9.
    Un sistema informático adaptado para realizar el procedimiento de la reivindicación 8.
  10. 10.
    Un medio legible por ordenador que contiene instrucciones para controlar un sistema informático para que
    realice el procedimiento de la reivindicación 8. 15
ES07869852.9T 2006-12-22 2007-12-21 Sistema y procedimiento para almacenar información redundante Active ES2445966T3 (es)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US66150 1998-04-24
US87173706P 2006-12-22 2006-12-22
US871737P 2006-12-22
US6615007P 2007-10-31 2007-10-31
PCT/US2007/088733 WO2008080140A2 (en) 2006-12-22 2007-12-21 System and method for storing redundant information

Publications (1)

Publication Number Publication Date
ES2445966T3 true ES2445966T3 (es) 2014-03-06

Family

ID=39563255

Family Applications (1)

Application Number Title Priority Date Filing Date
ES07869852.9T Active ES2445966T3 (es) 2006-12-22 2007-12-21 Sistema y procedimiento para almacenar información redundante

Country Status (4)

Country Link
EP (1) EP2102751B1 (es)
CA (1) CA2706007C (es)
ES (1) ES2445966T3 (es)
WO (1) WO2008080140A2 (es)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8943024B1 (en) 2003-01-17 2015-01-27 Daniel John Gardner System and method for data de-duplication
US8375008B1 (en) 2003-01-17 2013-02-12 Robert Gomes Method and system for enterprise-wide retention of digital or electronic data
US7840537B2 (en) 2006-12-22 2010-11-23 Commvault Systems, Inc. System and method for storing redundant information
US8615490B1 (en) 2008-01-31 2013-12-24 Renew Data Corp. Method and system for restoring information from backup storage media
US9015181B2 (en) 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data
WO2010036754A1 (en) 2008-09-26 2010-04-01 Commvault Systems, Inc. Systems and methods for managing single instancing data
US8401996B2 (en) 2009-03-30 2013-03-19 Commvault Systems, Inc. Storing a variable number of instances of data objects
US8578120B2 (en) 2009-05-22 2013-11-05 Commvault Systems, Inc. Block-level single instancing
US8738668B2 (en) 2009-12-16 2014-05-27 Renew Data Corp. System and method for creating a de-duplicated data set
US8935492B2 (en) 2010-09-30 2015-01-13 Commvault Systems, Inc. Archiving data objects using secondary copies
GB2494437A (en) * 2011-09-08 2013-03-13 Hogarth Worldwide Ltd The handling and management of media files
CN102523112B (zh) * 2011-12-14 2015-09-09 华为技术有限公司 信息处理方法及设备
US9020890B2 (en) 2012-03-30 2015-04-28 Commvault Systems, Inc. Smart archiving and data previewing for mobile devices
WO2014054065A1 (en) * 2012-10-01 2014-04-10 Hitachi, Ltd. Backup and restore system for a deduplicated file system and corresponding server and method
US9633022B2 (en) 2012-12-28 2017-04-25 Commvault Systems, Inc. Backup and restoration for a deduplicated file system
US10324897B2 (en) 2014-01-27 2019-06-18 Commvault Systems, Inc. Techniques for serving archived electronic mail
US10324914B2 (en) 2015-05-20 2019-06-18 Commvalut Systems, Inc. Handling user queries against production and archive storage systems, such as for enterprise customers having large and/or numerous files
CN105045900A (zh) * 2015-08-05 2015-11-11 石河子大学 数据提取的方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778395A (en) 1995-10-23 1998-07-07 Stac, Inc. System for backing up files from disk volumes on multiple nodes of a computer network
US6490666B1 (en) 1999-08-20 2002-12-03 Microsoft Corporation Buffering data in a hierarchical data storage environment
US6865655B1 (en) 2002-07-30 2005-03-08 Sun Microsystems, Inc. Methods and apparatus for backing up and restoring data portions stored in client computer systems
US6952758B2 (en) * 2002-07-31 2005-10-04 International Business Machines Corporation Method and system for providing consistent data modification information to clients in a storage system
US7519726B2 (en) * 2003-12-12 2009-04-14 International Business Machines Corporation Methods, apparatus and computer programs for enhanced access to resources within a network
JP4349301B2 (ja) * 2004-11-12 2009-10-21 日本電気株式会社 ストレージ管理システムと方法並びにプログラム

Also Published As

Publication number Publication date
EP2102751A2 (en) 2009-09-23
WO2008080140A2 (en) 2008-07-03
EP2102751A4 (en) 2012-02-15
CA2706007C (en) 2016-08-30
CA2706007A1 (en) 2008-07-03
WO2008080140A3 (en) 2008-10-16
EP2102751B1 (en) 2013-11-20

Similar Documents

Publication Publication Date Title
ES2445966T3 (es) Sistema y procedimiento para almacenar información redundante
US20210208785A1 (en) Reducing transfer of redundant data objects
US20210081383A1 (en) Lifecycle support for storage objects
US8965850B2 (en) Method of and system for merging, storing and retrieving incremental backup data
US9984006B2 (en) Data storage systems and methods
US10169606B2 (en) Verifiable data destruction in a database
US8489830B2 (en) Implementing read/write, multi-versioned file system on top of backup data
US6366988B1 (en) Systems and methods for electronic data storage management
US7827150B1 (en) Application aware storage appliance archiving
US9727522B1 (en) Multi-tenant storage service object lifecycle management using transition job objects
US9612910B2 (en) Systems and methods for generating catalogs for snapshots
US8433863B1 (en) Hybrid method for incremental backup of structured and unstructured files
CA2516102A1 (en) Method and system for synthetic backup and restore
WO2009123342A1 (ja) データベースシステム、データベース更新方法、データベース、及びデータベース更新プログラム
US20230259640A1 (en) Data storage systems and methods of an enforceable non-fungible token having linked custodial chain of property transfers prior to minting using a token-based encryption determination process
RU2406118C2 (ru) Способ и система для синтетического резервного копирования и восстановления данных