MX2012014730A - Optimizacion de almacenamiento y transmision de datos. - Google Patents

Optimizacion de almacenamiento y transmision de datos.

Info

Publication number
MX2012014730A
MX2012014730A MX2012014730A MX2012014730A MX2012014730A MX 2012014730 A MX2012014730 A MX 2012014730A MX 2012014730 A MX2012014730 A MX 2012014730A MX 2012014730 A MX2012014730 A MX 2012014730A MX 2012014730 A MX2012014730 A MX 2012014730A
Authority
MX
Mexico
Prior art keywords
data
file
storage
storage server
data storage
Prior art date
Application number
MX2012014730A
Other languages
English (en)
Inventor
Eileen C Brown
Thomas E Jolly
Joerg-Thomas Pfenning
Original Assignee
Microsoft Coporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Coporation filed Critical Microsoft Coporation
Publication of MX2012014730A publication Critical patent/MX2012014730A/es

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/173Customisation support for file systems, e.g. localisation, multi-language support, personalisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

La presente invención se extiende a métodos, sistemas, y productos de programa de computadora para optimización de extremo a extremo de almacenamiento de datos y transmisión de datos. Detalles de cómo se almacenan los datos dentro de un almacenamiento de datos se exponen a clientes y aplicaciones. Los clientes y aplicaciones están habilitados para hacer solicitudes a almacenamientos de datos para obtener datos como estando realmente almacenados dentro del almacenamiento de datos para eliminar procesamiento redundante de los datos solicitados. La compresión y eliminación de duplicado de datos dentro de un almacenamiento de datos se utilizan para aumentar la eficiencia y reducir la latencia de datos transmitidos a través de una LAN o WAN.

Description

OPTIMIZACION DE ALMACENAMIENTO Y TRANSMISION DE DATOS ANTECEDENTES La funcionalidad de optimización de almacenamiento se está volviendo cada vez más importante con el fin de ser competitiva en el mercado de servidor de archivo y almacenamiento de datos. La optimización de tráfico de red también es importante en ambientes y aparatos de computadoras y red que se integran en infraestructura de red existente y que realizan optimización en tiempo real de tráfico de red que puede proporcionar beneficios útiles.
La cantidad de datos que se genera, transmite, y almacena en computadoras continúa creciendo a un paso rápido. Los consumidores y competidores están impulsando una tendencia creciente hacia el uso de técnicas de optimización de datos con el fin de reducir requisitos de almacenamiento para datos en descanso. Por ejemplo, los datos pueden comprimirse y las redundancias dentro de los datos almacenados pueden reducirse con el fin de reducir el espacio requerido para almacenar datos. También se están aplicando técnicas similares para reducir la cantidad de datos que se transfiere a través de redes, reduciendo de esa forma costos de ancho de banda LAN y WAN y reduciendo latencias de aplicación. Sin embargo, las soluciones actuales para almacenamiento de datos y transmisión de datos están muy separadas y son muy | distintas y no se conocen soluciones unificadas. Debido a que las técnicas de almacenamiento y de transmisión están separadas, existen redundancias, incompatibilidades, y gastos generales innecesarios cuando se observan juntos el almacenamiento de datos y la transmisión de datos.
Como un ejemplo, un archivo que se almacena en un servidor (es decir, un almacenamiento de datos) puede tanto comprimirse como almacenarse en segmentos separados (por ejemplo, fragmentos) cuando se almacena en un servidor de almacenamiento de datos. Cuando un cliente solicita que se transmita el archivo al cliente desde el servidor, el servidor debe re-ensamblar los fragmentos y descomprimir el archivo para reconstituir el archivo antes de transmitir el archivo al cliente.
Similarmente, con el fin de reducir el ancho de banda de transmisión (por ejemplo, a través de una red), la latencia, o costos de transmisión, un agente de red entonces puede tomar el archivo y comprimirlo de nuevo antes de transmitirlo, transmitir el archivo comprimido a otro punto final, y luego descomprimirlo en el otro extremo de la trayectoria de transmisión.
Lo que puede ser útil son herramientas y técnicas de optimización de datos unificadas que abarcan almacenamiento, protocolos de transmisión, API de sistema de archivo, almacenamientos de datos, servidores, clientes, aplicaciones, y nube. Tales herramientas y técnicas podrían extender y mejorar el almacenamiento de datos de una pieza y separados existentes y soluciones de transmisión de datos para al entregar almacenamiento optimizado datos en descanso que pueden utilizarse por protocolos de transferencia y transmisión de datos.
BREVE DESCRIPCION DE LA INVENCION La presente invención se extiende a métodos, sistemas, dispositivos, y productos de programa de computadora para optimización de extremo a extremo del almacenamiento y transmisión de datos. Por ejemplo, las modalidades aquí descritas proporcionan utilización y aumento de eficiencias y optimizaciones tanto para almacenamiento de datos como para transmisión de datos.
Una modalidad ilustrativa proporciona un método para exponer los detalles de optimización de almacenamiento dentro de un servidor de almacenamiento de datos a un cliente. El método incluye acceder a metadatos que describen e I almacenamiento de datos de archivo en el servidor de almacenamiento de datos, en donde los datos de archivo se almacenan en el servidor de almacenamiento de datos en una forma distinta de una forma nativa de los datos de archivo. Los metadatos exponen la forma de almacenamiento de los datos de archivo como se almacenan en el servidor de almacenamiento de datos.
Un cliente puede enviar una solicitud para datos de archivo a un servidor de almacenamiento y el cliente puede recibir desde el servidor de almacenamiento de datos información que comprende datos de archivo, metadatos adicionales que describen el almacenamiento de datos de archivo con el servidor de almacenamiento de datos, y/o datos que representan al menos una porción de los datos de archivo.
Otra modalidad ilustrativa proporciona exponer los detalles de optimización de almacenamiento dentro de un servidor de almacenamiento de datos a un cliente. Este método incluye enviar metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos. Los datos de archivo se almacenan en el servidor de almacenamiento de datos en una forma distinta de una forma nativa de los datos de archivo, y los metadatos exponen la forma de almacenamiento de los datos de archivo como almacenado en el servidor de almacenamiento de datos.
El servidor de almacenamiento de datos recibe una solicitud de datos de archivo de un sistema de cómputo y el servidor de almacenamiento de datos envía información que comprende datos de archivo, metadatos adicionales que describen el almacenamiento de datos de archivo con el servidor de almacenamiento de datos, y/o datos que representan al menos una porción de los datos de archivo.
Otra modalidad ilustrativa proporciona un producto de programa de computadora para exponer los detalles de optimización de almacenamiento dentro de un servidor de almacenamiento de datos a un cliente. El producto de programa de computadora comprende instrucciones ejecutables por computadora para, entre otros, enviar desde el sistema de computadora una solicitud de datos de archivo al servidor de almacenamiento de datos y recibir desde la información de servidor de almacenamiento de datos que comprende información que describe el almacenamiento y los datos de archivo con el servidor de almacenamiento de datos.
Características y ventajas adicionales de la invención se describirán en la descripción a continuación, y en parte serán obvios a partir de la descripción, o pueden aprenderse por la práctica de la invención. Las características y ventajas de la invención pueden realizarse y obtenerse por medio de los instrumentos y combinaciones particularmente señalados en las reivindicaciones anexas. Estas y otras características de la presente invención se volverán más completamente evidentes a partir de la siguiente descripción y reivindicaciones anexas, o pueden aprenderse por la práctica de la invención como se describe aquí en lo sucesivo.
Observar que esta breve descripción se proporciona para introducir una selección de conceptos en una forma simplificada que además se describe a continuación en la Descripción Detallada. Esta breve descripción no pretende identificar características clave o características esenciales del tema reclamado, ni pretende utilizarse como un auxiliar al determinar el alcance del tema reclamado.
BREVE DESCRIPCION DE LOS DIBUJOS Con el fin de describir la forma en la cual pueden obtenerse las características mencionadas anteriormente y otras de, la invención, una descripción más particular de la invención brevemente descrita en lo anterior se presentará por referencia a modalidades específicas de la misma que se ilustran en las dibujos anexos. Entendiendo que estos dibujos ilustran únicamente modalidades típicas de la invención y por lo tanto no se van a considerar como limitando su alcance, la invención se describirá y explicará con especificación adicional y detalle a través del uso de los dibujos anexos en donde: La Figura 1 ilustra un ejemplo de optimización: de extremo a extremo de almacenamiento y transmisión de datos.
La Figura 2 ilustra una arquitectura ilustrativa para optimización de extremo a extremo de almacenamiento y transmisión de datos.
La Figura 3 muestra un método ilustrativo para exponer detalles de optimización de almacenamiento dentro de un servidor de almacenamiento de datos a un cliente, visto desde la perspectiva del cliente.
La Figura 4 ilustra un método ilustrativo para exponer los detalles de optimización de almacenamiento dentro de un servidor de almacenamiento de datos a un cliente, visto desde la perspectiva del servidor.
DESCRIPCION DETALLADA La presente invención se extiende a métodos, sistemas, dispositivos, y productos de programa de computadora para optimización de extremo a extremo del almacenamiento y transmisión de datos. Por ejemplo, las modalidades aquí descritas proporcionan la utilización de eficiencias y optimizaciones tanto para almacenamiento como para transmisión de datosi La presente invención se extiende a métodos, sistemas, y productos de programa de computadora para exponer los detalles de optimización de almacenamiento dentro de un servidor de almacenamiento de datos a un cliente. Las modalidades de la presente invención pueden comprender una computadora de propósito especial o de propósito general que incluye varios hardware o módulos de computadora, como se discute con mayor detalle a través de ésta.
Una modalidad ilustrativa proporciona un método para exponer los detalles de optimización de almacenamiento dentro de un servidor de almacenamiento de datos a un cliente. El método incluye acceder a metadatos que describen e I almacenamiento de datos de archivo en el servidor de almacenamiento de datos, en donde los datos de archivo se almacenan en el servidor de almacenamiento de datos en una forma distinta de una forma nativa dé los datos de archivo. Los metadatos exponen la forma de almacenamiento de los datos de archivo como almacenados en el servidor de almacenamiento de datos.
Un cliente puede enviar una solicitud para datos de archivo a un servidor de almacenamiento y el cliente puede recibir desde el servidor de almacenamiento de datos información que comprende datos de archivo, metadatos adicionales que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos, y/o datos que representan al menos una porción de datos de archivo.
Otra modalidad ilustrativa proporciona exponer los detalles de optimización de almacenamiento dentro de un servidor de almacenamiento de datos a un cliente. Este método incluye enviar metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos. Los datos de archivo se almacenan en el servidor de almacenamiento de datos en una forma distinta de una forma nativa de los datos de archivo, y los metadatos exponen la forma de almacenamiento de los datos de archivo como almacenados en el servidor de almacenamiento de datos.
El servidor de almacenamiento de datos recibe una solicitud de datos de archivo de un sistema de cómputo y el servidor de almacenamiento de datos envía información que comprende datos de archivo, metadatos adicionales que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos, y/o datos que representan al menos una porción de los datos de archivo.
Otra modalidad ilustrativa proporciona un producto de programa de computadora para exponer los detalles de optimización de almacenamiento dentro de un servidor de almacenamiento de datos a un cliente. El producto de programa de computadora comprende instrucciones ejecutables por computadora para, entre otros, enviar desde un sistema de cómputo una solicitud de datos de archivo al servidor de almacenamiento de datos y recibir desde el servidor de almacenamiento de datos información que comprende información que describe el almacenamiento de los datos de archivo en el servidor de almacenamiento de datos.
Las modalidades de la presente invención pueden comprender o utilizar una computadora de propósito especial o de propósito general que incluye hardware de computadora, tal como, por ejemplo, uno o más procesadores y memoria de sistema, como se discute con mayor detalle a continuación. Las modalidades dentro del alcance de la presente invención también incluyen medios físicos y otros medios legibles por computadora para transportar o almacenar instrucciones ejecutables por computadora y/o estructuras de datos. Tales medios legibles por computadora pueden ser cualquier medio disponible que puede accederse por un sistema de computadora de propósito general o de propósito especial. Los medios legibles por computadora que almacenan instrucciones ejecutables por computadora pueden ser medios de almacenamiento físico. Los medios legibles por computadora que transportan instrucciones ejecutables por computadora pueden ser medios de transmisión. De esa forma, a manera de ejemplo, y no de limitación, las modalidades de la invención pueden comprender al menos dos clases distintamente diferentes de medios legibles por computadora: medios de almacenamiento por computadora y medios de transmisión.
Los medios de almacenamiento por computadora incluyen RAM, ROM, EEPROM, CD-ROM, u otro almacenamiento de disco óptico, almacenamiento de disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que puede utilizarse para almacenar medios de código de programa deseados en la forma de instrucciones ejecutables por computadora o estructuras de datos y que pueden accederse por uria computadora de propósito general o de propósito especial.
Los productos de programa de computadora pueden comprender uno o más medios de almacenamiento legibles por computadora que tienen codificados instrucciones ejecutables por computadora que, cuando se ejecutan en uno o más procesadores dé computadora, realizan los métodos, pasos, y actos como se describe aquí.
Una "red" se identifica c orno uno o más enlaces de datos que permiten el transporte de datos electrónicos entre sistemas de computadora y/o módulos y/u otros dispositivos electrónicos. Cuando se transfiere información o se proporciona a través de una red u otra conexión de comunicaciones (ya sea por cable, inalámbrica, o una combinación de por cable o inalámbrico) a una computadora, la computadora ve apropiadamente la conexión como un medio de transmisión. Los medios de transmisión pueden incluir una red y/o enlaces de datos que pueden utilizarse para transportar o medios de código deseados en la forma de instrucciones ejecutables por computadora o estructuras de datos y que pueden accederse por una computadora de propósito general o de propósito especial. Las combinaciones de lo anterior también deben incluirse dentro del alcance de medios legibles por computadora.
Además, al alcanzar varios componentes de sistema de computadora, los medios de código de programa en la forma de instrucciones ejecutables de computadora o estructuras de datos pueden transferirse automáticamente desde medios de transmisión hacia medios de almacenamiento por computadora (o viceversa). Por ejemplo, las instrucciones ejecutables por computadora o estructuras de datos recibidas a través de una red o enlace de datos pueden guardarse en memoria intermedia en RAM dentro de un módulo de inferíase de red (por ejemplo, un "NIC"), y luego transferirse eventualmente a RAM de sistema de computadora y/o a medios de almacenamiento por c omputadora menos volátiles en un sistema de computadora. De esa forma, se debe entender que los medios de almacenamiento por computadora pueden incluirse en componentes de sistema de computadora que también (o incluso los principalmente) utilizan medios de transmisión.
Las instrucciones ejecutables por computadora comprenden, por ejemplo, instrucciones y datos que, cuando se ejecutan en un procesador, hacen que una computadora de propósito general, computadora de propósito especial, o dispositivo de procesamiento de propósito especial realice cierta función o grupo de funciones. Las instrucciones ejecutables por computadora pueden ser, por ejemplo, binarios, instrucciones de formato intermedio tales como lenguaje de ensamble, o incluso código de fuente. Aunque el tema ha sido descrito en lenguaje específico a características estructurales y/o actos metodológicos, se debe entender que el tema definido en las reivindicaciones anexas no necesariamente está limitado a las características descritas o actos descritos descritos anteriormente.
Más bien, las características y actos descritos se describen como formas ilustrativas para implementar las reivindicaciones.
Aquellos expertos en la técnica apreciarán que la invención puede practicarse en ambientes de cómputo de red con muchos tipos de configuraciones de sistema de computadora, incluyendo, computadoras personales, computadoras de escritorio, computadoras laptop, procesadores de mensaje, dispositivos portátiles, sistemas de multiprocesador, electrónica basada en microprocesador o de consumidor programable, PC de red, minicomputadoras, macrocomputadoras, teléfonos móviles, PDA, , buscadores, enrutadores, interruptores, y similares. La invención también puede practicarse en ambientes de sistema distribuidos en donde los sistemas de computadora locales y remotos, que están enlazados (ya sea por enlaces de datos con cable, enlaces de datos inalámbricos, o por una combinación de enlaces de datos por cable e inalámbricos) a través de una red, ambas realizan tareas. En un ambiente de sistema distribuido, los módulos de programa pueden localizarse tanto en dispositivos de almacenamiento de memoria locales como remotos.
Como se utiliza aquí, el término "módulo" o "componente" puede referirse a objetos de software o rutinas que se ejecutan en el sistema de cómputo. Los diferentes componentes, módulos, procesadores, y servicios aquí descritos pueden implementarse como objetos o procedimientos que se ejecutan en el sistema de cómputo (por ejemplo, como secuencias separadas). Aunque el sistema y los métodos aquí descritos preferiblemente se ¡mplementan en software, son posibles y se complementan implementaciones en hardware o una combinación de software y hardware. En esta descripción, una "entidad de cómputo" puede ser cualquier sistema de cómputo como se define aquí previamente, o cualquier módulo o combinación de módulos que corren en un sistema de cómputo.
La Figura 1 ilustra un ambiente ilustrativo en el cual puede operar la presente invención. La Figura 1 ilustra un cliente 110, un almacenamiento de datos 120, y transmisión de datos 130 entre el cliente 110 y el almacenamiento de datos 120. Los datos pueden almacenarse en el almacenamiento de datos 120 en muchas formas diferentes.
Las modalidades aquí presentadas describen métodos, sistemas, productos de programa de computadora para integrar y optimizar el almacenamiento 140 y transmisión 130 de datos en ambientes tal como se ilustra por la Figura 1.
Un archivo puede ser almacenado dentro de un almacenamiento de datos en su forma nativa, como un archivo contiguo. Por ejemplo, el archivo A 150 se almacena dentro del almacenamiento de datos 120 en un formato incompleto o nativo no alterado que comprende todos los bits, bytes, y datos del archivo como pueden presentarse por o esperarse por una aplicación. Los datos también pueden almacenarse en una variedad de formatos alternos. Por ejemplo, los datos pueden almacenarse en un formato comprimido para reducir el espacio de almacenamiento necesario y los datos pueden almacenarse utilizando técnicas para reducir redundancia y volver a duplicar los datos almacenados en un almacenamiento de datos.
Los datos pueden ser almacenados en un almacenamiento de datos en fragmentos o bloques en los cuales un archivo se divide en subgrupos separados y distintos de datos. Por ejemplo, un archivo puede almacenarse dentro de un almacenamiento de datos como fragmentos 160 C1 a Cn. Los fragmentos, subgrupos de datos de un archivo, algunas veces pueden denominarse bloques y los dos términos, fragmentos y bloques, se utilizan aquí intercambiablemente. (Se puede observar que el término archivo, como se utiliza aquí, describe cualquier grupo lógicamente relacionado o cantidad de datos).
Un almacenamiento de datos puede tener un algoritmo para dividir un archivo en fragmentos con el fin de optimizar el almacenamiento de datos. Por ejemplo, un archivo puede dividirse en fragmentos 160 C1 a Cn con el fin de almacenar el archivo dentro del almacenamiento de datos en una forma más eficiente o compacta. Un archivo dividido en fragmentos también puede almacenarse más eficientemente al reducir la redundancia dentro del archivo. Por ejemplo, el fragmento C1 puede ocurrir dentro de un archivo más de una vez. Al dividir el archivo en fragmentos, el fragmento C1 necesita escribirse únicamente al almacenamiento de datos una vez y cada ocurrencia repetitiva del fragmento C1 dentro del archivo entonces podría reemplazarse por una referencia o indicador a! fragmento C1.
Como se puede apreciar, los fragmentos o bloques no son necesariamente de cualquier longitud fija y puede ser de cualquier longitud, cualquier cantidad de datos, o cualquier porción de un archivo, incluyendo un archivo completo. Los fragmentos o bloques de un archivo pueden ser de longitudes arbitrarias y/o desviados dentro de un archivo. La división de un archivo dentro de los fragmentos o bloques puede seguir cualquier algoritmo o técnica y el tamaño de los fragmentos puede influenciarse o dictarse por las consideraciones particulares de un almacenamiento de datos en el cual se van a persistir los datos o en una trayectoria de transmisión en el cual los datos se van a transmitir.
Los datos también pueden almacenarse dentro de un almacenamiento de datos en un formato comprimido. Por ejemplo, el archivo C 170 se almacena en un formato comprimido en el cual un archivo original se comprimió utilizando un algoritmo de compresión para crear un archivo, archivo C 170, que ocupa menos espacio de almacenamiento dentro del almacenamiento de datos que los datos de archivo no comprimidos originales. La compresión de archivos y datos puede realizarse por técnicas bien conocidas en la industria tales c orno Lempel-Ziv (LZ), Lempel-Ziv-Welch (LZW), y compresión MPEG.
Una combinación de compresión y fragmentación (o división por bloque) también puede emplearse en un almacenamiento de datos. Por ejemplo, un archivo puede dividirse en fragmentos que luego se comprimen y almacenan como fragmentos comprimidos 180 CH1 a C H n .
Puede obtenerse otra optimización al eliminar el duplicado de archivos y datos almacenados dentro de un almacenamiento de datos. La eliminación de duplicado identifica archivos idénticos o porciones idénticas de datos que pueden ocurrir dentro de archivos distintos que se almacenan dentro de un almacenamiénto de datos y remplazan todos excepto uno de los archivos duplicados o porciones de datos por una referencia a una copia de referencia del archivo o división de datos. Al eliminar el duplicado de archivos, únicamente una copia de un archivo o porción particular de datos se almacenaría en un almacenamiento de datos ahorrando consecuentemente el espacio de almacenamiento que se habría ocupado por los múltiples archivos duplicados o porciones de datos.
La eliminación de duplicado también puede realizarse en un nivel de fragmento de archivo. Por ejemplo, si se fragmentan dos o más archivos en fragmentos de datos, entonces los fragmentos duplicados pueden reemplazarse en el almacenamiento de datos con referencias a una copia de los fragmentos redundantes. Por ejemplo, un archivo puede almacenarse en el almacenamiento de datos 120 como el fragmento C1 y referencias a otros fragmentos ya almacenados en asociación con otros archivos almacenados en formato de fragmento dentro del almacenamiento de datos 120. Por ejemplo, el archivo X puede almacenarse como referencias a fragmentos C1 a Cn; el archivo Y puede almacenarse como referencias a fragmentos CH1, C1, y C2; y el archivo Z podría almacenarse como una lista de referencias al fragmento C1 y fragmentos comprimidos CH2 a CHn.
La eliminación de duplicado, fragmentación, y compresión de datos archivo también puede realizarse en combinación. Por ejemplo, un archivo puede almacenarse en un almacenamiento de datos como uno o más fragmentos en donde cada uno de los fragmentos ha sido comprimido. Los datos de archivo también pueden almacenarse en cualquier combinación en donde algunos archivos se almacenan sin comprimir, algunos archivos se almacenan comprimidos, algunos archivos se almacenan en un formato fragmentado, y algunos archivos se almacenan como fragmentos por lo cual algunos fragmentos están comprimidos y algunos fragmentos no están comprimidos.
Generalmente, cuando un cliente solicita datos desde un almacenamiento de datos, el cliente pediría datos para un archivo i completo o para a Iguna porción lógica del archivo. Por ejemplo, un cliente puede solicitar obtener (archivo X) a través de un sistema de archivo o puede solicitar a través de un sistema de archivo obtenerBytesdeArchivo(archivoX; bytes = 100-1000). Cuando el archivo o porción del archivo se transmite 130 desde el almacenamiento de datos 120 al cliente 110, la carga cae en el almacenamiento de archivo para descomprimir los datos comprimidos o para re-ensamblar los fragmentos de datos con el fin de re-ensamblar y transmitir al cliente los datos solicitados en el formato esperado por el cliente o aplicación.
Las modalidades aquí descritas permiten a un cliente solicitar o acceder información que concierne al almacenamiento de datos de archivo en el almacenamiento de datos para que puedan obtenerse eficiencias y optimizaciones al proporcionar ai cliente con información concerniente a los detalles de almacenamiento de los datos almacenados en el almacenamiento de datos, or ejemplo, un cliente 110 puede solicitar al almacenamiento de datos 120 para informar al cliente como se almacena el archivoX en el almacenamiento de datos. El almacenamiento de datos puede informar al cliente que el archivoX se almacena como fragmentos comprimidos CH1 y CH3. Ya que sería más eficiente transmitir los fragmentos comprimidos al cliente en la forma comprimida, el cliente entonces puede solicitar al almacenamiento de datos para transmitir los fragmentos CH1 y CH3 al cliente en lugar de solicitar obtener (archivoX) que necesitaría que el almacenamiento de datos descomprimiera los fragmentos CH1 y CH3 y re-ensamblará el archivo antes de transmitir el archivo al cliente.
Las modalidades también permiten a un cliente acceder información concerniente al almacenamiento de datos de archivo en el almacenamiento de datos para que las eficiencias y optimizaciones puedan obtenerse al proporcionar al cliente información concerniente a detalles de almacenamiento de los datos almacenados en el almacenamiento de datos. Por ejemplo, un cliente 110 puede acceder a información guardada en memoria caché localmente o almacenada que identifica como se almacena el archivoX en el almacenamiento de datos. Esta información puede haber sido adquirida por solicitudes previas o pudo haber sido guardada en memoria caché en el curso de transacciones previas entre un cliente y un almacenamiento de datos.
Pueden obtenerse eficiencias adicionales si el cliente ya tiene una copia de fragmento CH1 almacenada localmente o disponible de una ubicación de almacenamiento con latencia o costos de transmisión inferiores que el almacenamiento de datos 120. En tal caso, el cliente entonces puede solicitar desde el almacenamiento de datos únicamente obtenerFragmento (CH3).
Las modalidades aquí descritas reducen el tráfico LAN y/o WAN redundante entre clientes y almacenamientos de datos y/o servidores centralizados. Las modalidades aquí permiten almacenamiento y optimización de transmisión para varios protocolos de sistema de archivo de red. Por ejemplo, ambos protocolos SMB y HTTP pueden extenderse mejorados por los dispositivos y técnicas descritos.
Los protocolos de sistema de archivo estándares (por ejemplo SMB y HTTP) pueden extenderse para proporcionar una API que permite a un cliente solicitar datos desde un almacenamiento de datos que, cuando se proporcionan por el almacenamiento de datos, exponen los detalles de como un archivo o porción de datos se almacenan en el almacenamiento de datos. Por ejemplo, el cliente 110 puede solicitar datos desde el almacenamiento de datos 120 sobre como el archivoX se almacena en el almacenamiento de datos 120. Por ejemplo, el cliente 110 puede llamar una extensión de sistema de archivo tal como obtenerDetallesdeAlmacenamiento (archivoX) y el almacenamiento de datos puede responder con {archivoX:= fragmentos CH1, CH3}. Ahora teniendo conocimiento de los detalles de como se almacena el archivoX en el almacenamiento de datos, el cliente entonces puede decidir como solicitar datos asociados con el archivoX desde el almacenamiento de datos. El cliente podría, en forma estándar, solicitar el archivo completo en su formato incompleto o nativo. Las modalidades aquí permiten, en contraste, que el cliente solicite que el almacenamiento de datos transmita el fragmento comprimido CH3 al cliente.
En una modalidad, como en la Figura 3, un cliente puede acceder 310 a metadatos que describen el almacenamiento de datos de archivo en un servidor de almacenamiento de datos, en donde los datos de archivo se almacenan en el servidor de almacenamiento de datos en una forma distinta de una forma nativa de los datos de archivo, y en donde los metadatos exponen la forma de los datos de almacenamiento de archivo como almacenados en el servidor de almacenamiento de datos. Los metadatos que describen el almacenamiento de los datos de archivo en un servidor de almacenamiento de datos pueden ser información que describe como los datos de archivo se fragmentaron en el almacenamiento de datos, como los datos de archivo se comprimieron en el almacenamiento de datos, y como los datos de archivo están fragmentados y comprimidos en el almacenamiento de datos.
Los detalles de cómo se fragmenta un archivo pueden incluir que porciones de un archivo corresponden a cada fragmento almacenado en un servidor. Los detalles de fragmentación también pueden incluir una verificación criptográfica de cada uno de I os fragmentos que hacen un archivo. Las verificaciones criptográficas de los fragmentos permiten a los clientes, aplicaciones, y almacenamientos de datos unificar únicamente cada fragmento. Utilizando esta información, un cliente, aplicación, u otro almacenamiento de datos puede ser capaz de identificar si ya está disponible un fragmento idéntico al identificado por su verificación criptográfica.
Los detalles de cómo un archivo o porción de datos (por ejemplo, fragmento) se comprime pueden incluir una verificación criptográfica de los datos originales no comprimidos para identificar únicamente los datos. También puede incluir una verificación criptográfica de los datos comprimidos para identificar únicamente los datos comprimidos. Los detalles también pueden incluir el tipo de compresión utilizada para realizar la compresión (que puede ser necesaria con el fin de descomprimir los datos comprimidos después de transmitirlos a otro punto final del almacenamiento de datos). Tipos de compresión pueden incluir, por ejemplo, LZ, LZW, MPEG, y similares.
Al acceder a los metadatos, el cliente puede volverse consiente de los detalles de almacenamiento de los datos almacenados en el almacenamiento de datos. Cuando el cliente está consiente de los detalles del almacenamiento de los datos en el almacenamiento de datos, el cliente puede enviar 320 una solicitud para datos de archivo al servidor de almacenamiento. Al emplear modalidades aquí descritas, el cliente no necesita solicitar un archivo completo, el cliente puede solicitar únicamente aquellos fragmentos de un archivo que puede necesitar o puede solicitar una versión comprimida de un archivo o una versión comprimida de un fragmento de un archivo. Después de haber enviado 320 la solicitud para datos de archivo, el cliente puede recibir 330 información desde el servidor de almacenamiento que comprende los datos de archivo solicitados, metadatos adicionales que describen el almacenamiento de datos de archivo en el servidor de almacenamiento, y/o datos que representan al menos una porción de los datos de archivo.
La recepción 330 de la información de datos de archivo puede incluir al menos uno de datos de archivo, metadatos adicionales que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos, y/o datos que representan al menos una porción de los datos de archivo. La información puede comprender datos de archivo en un formato estándar como una aplicación de legado en un cliente que puede esperarlo. La información puede comprender información que describe el almacenamiento de datos de archivo en un almacenamiento de datos. La información puede comprender datos que representan al menos una porción de los datos de archivo.
El accedo 310 a los metadatos que describen el almacenamiento de datos de archivo puede comprender enviar una solicitud a un servidor por información que describe el almacenamiento de los datos de archivo. Tal solicitud puede estar en la forma de una extensión de un s istema de archivo que permite al cliente hacer una llamada al sistema de archivo (o sistema de archivo de red) para solicitar los detalles de como un archivo, datos de archivo, o porción de datos se almacena en un almacenamiento de datos.
El acceso 310 a los metadatos que describe el almacenamiento de datos de archivo puede, alternativamente, comprender acceder a un almacenamiento local para información que describe el almacenamiento de los datos de archivo. La información en el almacenamiento local pudo haberse recibido previamente desde el servidor de archivo en respuesta a una solicitud previa o pudo haberse guardado en memoria caché localmente como parte de una serie en curso de transacciones de sistema de archivo. El acceso 310 a metadatos que describen el almacenamiento de datos de archivo puede comprender una llamada de sistema de archivo (introducida por extensión de API de sistema de archivo normal) que regresa detalles que exponen la forma de almacenamiento de los datos de archivo como almacenada en un servidor de almacenamiento de datos o como las copias localmente guardas en memoria caché se almacenan localmente para el cliente.
Por ejemplo, los metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos pueden comprender datos que describen el almacenamiento de los datos de archivo que resulta de la eliminación de duplicado de los datos de archivo en el servidor de almacenamiento de datos. Los metadatos pueden comprender una lista de fragmento de fragmentos que forman un archivo y puede comprender una lista de verificación de verificaciones criptográficas de cada uno de los fragmentos que forma un archivo. El cliente entonces puede utilizar la lista de fragmento regresada o la lista de verificación para formular una solicitud para uno o más de los fragmentos que se van a transmitir o puede utilizar la lista de fragmento para comparar con una lista de fragmentos ya recibida o localmente guardada memoria caché para determinar si cualquiera de los fragmentos necesita solicitarse desde el almacenamiento de datos.
Por ejemplo, cuando se descarga un archivo, un cliente puede solicitar una lista de verificación de un servidor de archivo y puede consultar clientes pares y/o consultar servidores de archivo par por datos deseados. El cliente puede recibir 330 información que comprende una lista de verificación como una respuesta a la consulta. La lista de verificación puede representar los datos como se almacenan en el almacenamiento de datos y un cliente puede estar habilitado para solicitar únicamente las porciones de datos (por ejemplo, fragmentos) que necesita. Los datos también pueden leerse de un par cuando el par tiene los datos deseados y los costos de transmisión o latencia para transmisión de datos entre el par y el cliente son inferiores que los costos de transmisión o latencia entre el cliente y el almacenamiento de datos.
Los metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos también pueden comprender datos que describen un subgrupo comprimido de los datos de archivo o datos que describen una versión comprimida de los datos de archivo. Utilizando esta información, un cliente puede formular una solicitud del subgrupo comprimido de los datos de archivo o formular una solicitud de la versión comprimida de los datos de archivo. Esto proporcionaría la eficiencia del almacenamiento de datos que no se necesita descomprimir los datos de archivo o el subgrupo de datos de archivo antes de transmitir los datos en respuesta a la solicitud de datos de archivo.
En una modalidad, un cliente puede enviar 320 una solicitud de datos de archivo que puede comprender una solicitud de un archivo completo o una solicitud de una porción de un archivo. Por ejemplo, una solicitud de un archivo, obtener (archivoX), o una solicitud de una porción de un archivo, obtenerBytesdeArchivo(archivoX¡ bytes = 100-1000), puede enviarse a través de un sistema de archivo a un servidor de almacenamiento de datos. En respuesta, el servidor de almacenamiento de datos puede responder al no enviar el archivo o la porción del archivo, si no datos en una forma posiblemente diferente que contiene el archivo o una porción solicitada del archivo.
Por ejemplo, el servidor de almacenamiento de datos podría regresar datos de archivo que comprenden un rango de fragmentos comprimidos que cubren completamente el archivo solicitado o la porción solicitada del archivo. Adicionalmente, el servidor de almacenamiento de datos podría regresar metadatos de almacenamiento de archivo junto con los fragmentos que identifican que los fragmentos regresados comprenden los datos solicitados (y posiblemente más datos que los solicitados).
Adicionalmente, si los fragmentos regresados se comprimen, el servidor de almacenamiento de datos puede regresar metadatos de almacenamiento de archivo que identifican que los datos (o fragmentos de datos) regresados se comprimieron o pueden identificar que técnica o algoritmo de compresión se utilizó para comprimir los datos o que técnica o algoritmo de descompresión necesita utilizarse para descomprimir los datos. Como se puede apreciar, puede existir una técnica de compresión o de descompresión predeterminada que puede asumirse en el caso que los datos comprimidos y/o fragmentos comprimidos s regresen sin también regresar metadatos que identifican una técnica de compresión o descompresión particular.
El cliente luego puede recibir 330 estos datos y/o metadatos desde el servidor de almacenamiento de datos y realizar la descompresión apropiada y/o el ensamble de fragmento sobre el lado de cliente con el fin de reconstruir los datos solicitados. Como se puede apreciar, esto puede ser más eficiente debido a costos de transmisión de datos o latencia de transmisión que el servidor de almacenamiento de datos tenga que descomprimir y/o ensamblar los datos particulares realmente solicitados por el cliente antes de la transmisión al cliente y/o la recepción por el cliente.
Los metadatos de almacenamiento de archivo pueden comprimir una lista de verificación criptográfica de fragmentos o fragmentos comprimidos e identificaciones en cuanto a las cuales los fragmentos comprenden que porciones de los datos de archivo. Al utilizar la lista de verificación criptográfica de fragmentos o fragmentos comprimidos e identificaciones en cuanto a que fragmentos comprenden que porciones de los datos de archivo, un cliente puede ser capaz de descomprimir apropiadamente datos comprimidos y/o re-ensamblar fragmentos que contienen todo o más de un rango de datos deseados por o solicitados por un cliente.
Una arquitectura ilustrativa para un aspecto integrado para almacenamiento de archivo y transmisión se ilustra por la Figura 2. Los clientes y servidores 210 pueden comprender aplicaciones consientes de optimización y/o servicios. Los clientes y servidores pueden comunicarse con una interfase de sistema de archivo 250 que puede comprender una interfase de programación de aplicación de sistema de archivo (API) y también puede comprender una API de optimización. La API de sistema de archivo puede comprender todas las llamadas y funciones normales de un sistema de archivo normal y/o sistema de archivo de red. La API de optimización comprende elementos API extendidos (por ejemplo, llamadas e interfases de función) que exponen los detalles de almacenamiento de datos 260, 270, y 280, que se almacena en un almacenamiento de datos.
La interfase de sistema de archivo 250 permite a un cliente solicitar metadatos que describen el almacenamiento de datos de archivo en un servidor de almacenamiento de datos. La interfase de sistema de archivo 250 también permite a un cliente solicitar datos desde un servidor de almacenamiento de datos en un número de formatos. El cliente puede solicitar datos que utilizan la API de sistema de archivo normal (por ejemplo, API de sistema de archivo estándar o de legado) para obtener un archivo intacto en su formato incompleto o nativo. El cliente puede también solicitar datos que utiliza la API de optimización con el fin de solicitar únicamente un fragmento particular de un archivo, una forma comprimida de un archivo como almacenado en un servidor, y puede solicitar un fragmento comprimido de un archivo como almacenado en el servidor.
Los clientes, aplicaciones, y servicios 220 que no están conscientes de la interfase de sistema de archivo 250 mejorada y/o extendida aún pueden operar normalmente, sin cambios y sin obstáculos al hacer llamadas a la API de sistema de archivo que conserva toda la funcionalidad de una API de sistema de archivo de legado.
Los clientes, aplicaciones, y servicios que están consientes de optimización 230 pueden hacer llamadas a la API de optimización para invocar la funcionalidad completa de las modalidades aquí descritas. Los clientes, optimizaciones, y servicios consientes de optimización pueden solicitar listas de verificación, listas de fragmento, datos comprimidos, etc. desde un almacenamiento de datos o servidor. Por ejemplo, el archivo foo.vhf puede 250 estar almacenado en un almacenamiento de datos como una lista de fragmento que señala a un almacenamiento/índice de fragmento 270. El almacenamiento/índice de fragmento puede incluir fragmentos (por ejemplo, fragmentos 160 C1 - Cn), puede incluir fragmentos comprimidos (por ejemplo, fragmentos 180 CH1 - CHn), y puede incluir referencias, indicadores e índices a los fragmentos almacenados que permiten la eliminación de duplicado y otra optimización de archivo y almacenamiento de datos.
Un cliente puede solicitar a través de los metadatos de API de optimización que describen el almacenamiento de foo.vhd y recibir metadatos desde el almacenamiento de datos que describe cómo se almacena foo.vhd. Una vez que el cliente ha accedido a los metadatos, puede enviar una solicitud a través de la API de optimización para los datos de archivo al servidor de almacenamiento. La solicitud puede ser para el archivo completo en su formato nativo o la solicitud puede ser únicamente para uno o más fragmentos o fragmentos comprimidos del archivo como almacenado en el almacenamiento/índice de fragmento 270.
El cliente entonces puede recibir desde el servidor de almacenamiento de datos información que comprende uno o más de los datos de archivo, metadatos adicionales que: describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos, y datos que representan al menos una porción de los datos de archivo. El cliente puede recibir un archivo completo en su formato nativo. El cliente puede recibir el archivo completo como comprimido dentro del almacenamiento de datos. El cliente puede recibir un fragmento del archivo. El cliente puede recibir un fragmento comprimido de un archivo. El cliente puede recibir metadatos adicionales que describen el almacenamiento de los datos de archivo, y puede recibir datos que comprenden una porción de los datos de archivo. La respuesta recibida por el cliente puede corresponder a la solicitud hecha a través de la API de optimización extendida que permite a los clientes y aplicaciones hacer solicitudes que son consientes de los detalles del almacenamiento de datos dentro del almacenamiento de datos.
En otro ejemplo, el archivo bar.doc pudo haberse comprimido, fragmentado, y eliminado y duplicado por un servicio de optimización 240 y almacenado como indicadores dentro del almacenamiento/índice de fragmento 270. En una modalidad aquí, un cliente puede solicitar metadatos que describen el almacenamiento de bar.doc en un almacenamiento de datos y, después de recibir la información que describe el almacenamiento de bar.doc en un almacenamiento de datos enviar una solicitud para uno o más de los fragmentos comprimidos de bar.doc que se almacenó en el almacenamiento/índice de fragmento 270. Ya que los fragmentos comprimidos se solicitaron por el cliente, el almacenamiento de datos necesita descomprimir los fragmentos de bar.doc ni el almacenamiento de datos necesita re-ensamblar los fragmentos de bar.doc con el fin de responder a una solicitud desde el cliente para bar.doc.
En otra modalidad, se proporciona un método para exponer los detalles de optimización de almacenamiento dentro de un servidor de almacenamiento de datos a un cliente. Este método incluye enviar metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos, en donde los datos de archivo se almacenan en el servidor de almacenamiento de datos en una forma distinta de una forma nativa de los datos de archivo, y en donde los metadatos exponen la forma de almacenamiento de datos de archivo como almacenados en el servidor de almacenamiento de datos. El método también incluye recibir en el servidor de almacenamiento de datos una solicitud para datos de archivos de un sistema de cómputo. El método también incluye enviar desde el servidor de almacenamiento de datos información que comprende al menos uno de datos de archivo, metadatos adicionales que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos, y datos que representan al menos una porción de datos de archivo.
Como se ilustra en la Figura 4, un servidor o almacenamiento de datos puede enviar 410 metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos o almacenamiento de datos. Los datos de archivo se almacenan en el servidor de almacenamiento de datos en una forma distinta de una forma nativa de los datos de archivo. Por ejemplo, los datos de archivo pueden almacenarse en el servidor de almacenamiento en un formato fragmentado, en un formato comprimido, o en una combinación de formato comprimido y fragmentado.
Los metadatos que se envían proporcionan información que expone la forma de almacenamiento de los datos dé archivo como almacenados en el servidor de almacenamiento de datos. Por ejemplo, los metadatos pueden incluir información que expone que los datos de archivo están almacenados en un formato fragmentado, comprimido, o una combinación de fragmentado y comprimido. Los metadatos pueden comprender información que incluye una lista de verificación de fragmentos que forman datos de archivo como almacenados en el almacenamiento de datos. Los fragmentos almacenados en el almacenamiento de datos pueden ser los fragmentos que han resultado de una eliminación de duplicado de los datos de archivo (así como otros datos de archivo) almacenados en el servidor de almacenamiento.
Los metadatos pueden comprender información que incluye una verificación criptográfica de un subgrupo de los datos de archivo. Una verificación criptográfica de un subgrupo de los datos puede utilizarse por un cliente, por un dispositivo de transmisión, o por otro almacenamiento de datos para identificar si un fragmento es idéntico a otro fragmento. Al utilizar la verificación criptográfica de un subgrupo de los datos de archivo, clientes, dispositivos de transmisión, y otros almacenamientos de datos se permiten para determinar si un subgrupo particular de datos está disponible localmente o disponible desde una fuente con latencia o costos de transmisión inferiores. Al identificar subgrupos idénticos de datos, puede determinarse si un subgrupo particular de datos necesita solicitarse o transmitirse.
Un subgrupo de datos de archivo puede ser el archivo completo o datos de archivo. Un subgrupo de los datos puede ser únicamente uno o más fragmentos de datos de archivo que pueden haber sido fragmentados por el almacenamiento de datos como parte de una optimización de almacenamiento o régimen de eliminación de duplicado.
Los metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos o almacenamiento de datos puede incluir datos que describen algunos o todos los datos de archivo que se comprimen en el servidor de almacenamiento de datos o almacenamiento de datos. Los metadatos pueden incluir información que uno o más fragmentos de un formato fragmentado de los datos de archivo han sido comprimidos. Al utilizar la información indicativa de que alguna porción de los datos de archivo se comprimió, un cliente puede solicitar un archivo ó uno o más fragmentos de un archivo para regresarse en una respuesta al cliente en el formato fragmentado o comprimido como almacenado dentro del almacenamiento de datos. Al solicitar un fragmento particular o un fragmento comprimido de un archivo, se reducen los gastos generales ya que el almacenamiento de datos no necesita descomprimir un archivo o fragmento de un archivo antes de transmitir el archivo o fragmento de un archivo al cliente solicitante.
La Figura 4 también ilustra recibir 410 una solicitud de datos de archivo de un sistema de cómputo. La solicitud puede recibirse desde un cliente, de otro servidor de almacenamiento, de una aplicación que se ejecuta en un sistema de cómputo remoto, o similares. La solicitud puede formatearse utilizando un protocolo correspondiente a una API de optimización que se extiende y/o mejora una API de sistema de archivo de red estándar.
La solicitud de datos de archivo puede incluir información que identifica fragmentos particulares de un archivo que se solicitó. La solicitud puede incluir también información que identifica si los datos de archivo solicitados deben enviarse en un formato comprimido o no comprimido. La solicitud puede incluir información que únicamente un subgrupo de los fragmentos de un archivo debe enviarse ya que los otros fragmentos ya están disponibles localmente.
La Figura 4 también ilustra enviar 430 información de datos de archivo que incluye al menos uno de datos de archivo, metadatos adicionales que describen el almacenamiento de los datos de archivo en el servidor de almacenamiento de datos, y datos que representan al menos una porción de los datos de archivo. El envío 430 de información de datos de archivo puede ser en respuesta a la solicitud recibida 420 de datos de archivo. Como se discutió anteriormente, la solicitud de datos de archivo puede ser para datos de archivo ya que están almacenados en el almacenamiento de datos como fragmentos, en formato comprimido, o en cualquier combinación.
El envío 430 de la información de datos de archivo puede incluir al menos uno de datos de archivo, metadatos adicionales que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos, y datos que representan al menos una porción de los datos de archivo. La información puede comprender datos de archivo en un formato estándar como una aplicación de legado en un cliente que puede esperarlo. La información puede comprender información que describe el almacenamiento de datos de archivo en un almacenamiento de datos. La información puede comprender datos que representan al menos una porción de los datos de archivo.
La solicitud recibida puedo haber identificado fragmentos particulares de datos que se desean por un cliente. En respuesta a esta solicitud, el almacenamiento de datos puede enviar los fragmentos solicitados de datos al cliente solicitante. La solicitud recibida pudo haber identificado subgrupos de datos comprimidos particulares que se desean por un cliente. En respuesta a esta solicitud, el almacenamiento de datos puede enviar los subgrupos de datos comprimidos solicitados de datos al cliente solicitante. La solicitud recibida pudo haber identificado verificaciones criptográficas particulares que identifican fragmentos de datos que se desean por un cliente. En respuesta a esta solicitud, el almacenamiento de datos puede enviar los fragmentos particulares de datos que se identifican por las verificaciones criptográficas al cliente solicitante.
En una modalidad, un almacenamiento de datos puede recibir 420 una solicitud de un archivo o porción de un archivo. Por ejemplo, un almacenamiento de datos puede recibir la solicitud obtener (archivoX) para un archivo o puede recibir una solicitud de obtenerBytesdeArchivo (archivoX; bytes = 100-1000) para una porción de un archivo. El almacenamiento de datos puede construir una respuesta a la solicitud y enviar información de datos de archivo que incluye datos de archivo como almacenados en el almacenamiento de datos y puede incluir metadatos que identifican los detalles de almacenamiento de los datos de archivo como almacenados. Por ejemplo, un almacenamiento de datos puede regresar un grupo de fragmentos y metadatos que identifican qué fragmentos comprenden qué porciones de los datos solicitados. Adicionalmente, el almacenamiento de datos puede regresar metadatos que comprenden información de compresión y/o descompresión que puede ser apropiada con el fin de descomprimir datos que se regresaron en un formato comprimido.
En algunas modalidades, la solicitud puede recibirse 420 y la información de datos de archivo puede enviarse 430 sin realizar un paso previo de enviar metadatos 410. Por ejemplo, un cliente consiente de optimización puede solicitar simplemente datos de archivo, el almacenamiento de datos podría recibir la solicitud 420, y el almacenamiento de datos podría componer una respuesta y enviar la respuesta al cliente que asume que el cliente puede manejar apropiadamente los datos de archivo regresados y/o metadatos y re-ensamblar apropiadamente fragmentos y/o descomprimir datos como sea necesario. ¡ Las modalidades también proporcionan soporte de optimizaciones de trayectoria de escritura para almacenamiento y transmisión de datos. Por ejemplo, un cliente con modificaciones locales a un archivo puede generar una representación de lista de verificación del archivo modificado. Esta lista de verificación entonces puede transmitirse a un servidor de almacenamiento de datos. El servidor de almacenamiento de datos entonces puede comparar la lista de verificación recibida que representa el archivo modificado con una lista de verificación comprensiva mantenida en un servidor de almacenamiento de datos que identificó fragmentos de archivo almacenados en el servidor de almacenamiento de datos.
Basándose en esta comparación, el servidor de almacenamiento de datos entonces puede regresar al cliente una lista de fragmentos que ya se almacenó e n el servidor de almacenamiento de datos. El servidor de almacenamiento de datos también puede regresar al cliente una lista de los fragmentos que no se almacenan en el servidor de almacenamiento de datos. Basándose en la lista regresada de fragmentos almacenados (o la lista de fragmentos no almacenados) en el servidor de almacenamiento de datos, el cliente entonces podría transmitir al servidor de almacenamiento de datos aquellos fragmentos que aún no están almacenados en el servidor de almacenamiento de datos.
Al haber recibido una lista de verificación que representa el archivo modificado y al haber recibido los fragmentos del archivo modificado que aún no están almacenados en el servidor de almacenamiento de datos, el servidor de almacenamiento de datos ahora puede almacenar el archivo modificado completo (que está compuesto de algunos fragmentos ya almacenados en el servidor, algunos fragmentos recientemente recibidos por el servidor y una lista de verificación (o lista de fragmento) que representa el archivo modificado completo). A I transmitir una lista de verificación (o lista de fragmento) que representa el archivo completo y al transmitir únicamente aquellos fragmentos no almacenados aún en el servidor de almacenamiento de datos, pueden realizarse optimizaciones en la transmisión de los datos desde el cliente hasta el almacenamiento de datos.
Por ejemplo, el servidor de almacenamiento de datos puede recibir una lista de verificación desde un cliente y comparar la lista de verificación transmitida que representa el archivo con una lista de verificación almacenada en un almacenamiento/índice de fragmento 270 que comprende fragmentos almacenados en el servidor de almacenamiento de datos y un índice de verificaciones criptográficas para los fragmentos almacenados en el servidor de almacenamiento de datos. El almacenamiento de datos entonces puede regresar al cliente la lista de verificación que representa los fragmentos que aún no están almacenados en el almacenamiento e índice de fragmento 270. El cliente entonces puede transmitir al almacenamiento de datos los fragmentos aún no almacenados en el almacenamiento de fragmento. El almacenamiento de datos entonces puede almacenar los fragmentos recibidos en el almacenamiento de fragmento 270 junto con la lista de verificación que representa el archivo modificado completo. De esta forma, el servidor de almacenamiento de datos ahora puede almacenar una representación completa del archivo modificado (en términos de una lista de fragmento que representa el archivo y los fragmentos correspondientes), pero sin la necesidad de que el cliente transmita todos los fragmentos que forman el archivo.
En otro ejemplo, un archivo compuesto de cirico fragmentos, fragmentos C1-C5, puede modificarse por un cliente únicamente en el fragmento C4 (que resulta en el fragmento modificado Cm4). El cliente puede enviar una lista de verificación que representa los fragmentos C1-C3, Cm4, y C5 a un servidor de almacenamiento de datos. Esta lista de verificación ahora representa el archivo modificado completo. El servidor de almacenamiento de datos puede responder entonces al cliente que ya tiene fragmentos C1-C3 y C5 almacenados en el servidor, pero carece del fragmento Cm4. El cliente entonces podría enviar el fragmento Cm4 al servidor de almacenamiento de datos. El servidor de almacenamiento de datos entonces puede enviar el fragmento Cm4 en él servidor de almacenamiento de datos y, junto con la lista de verificación recibida que representa fragmentos C1-C3, Cm4, y C5, y los fragmentos ya almacenados C1-C3, y C5, ahora tiene el archivo modificado completo almacenado en el almacenamiento de datos.
Como puede apreciarse, esta modalidad de trayectoria de escritura se permite en una forma similar para archivos recientemente creados así como para archivos modificados. Un cliente puede crear una lista de fragmento para cualquier archivo, ya sea cualquier archivo modificado o un archivo recientemente creado, y enviar la lista de fragmento al servidor de almacenamiento de datos para que el servidor de almacenamiento de datos pueda comparar la lista de fragmento recibida con una lista de fragmentos ya almacenada en el servidor. Adicionalmente, la lista de fragmento puede ser una lista de verificación criptográfica que identifica únicamente cada uno de los fragmentos que forman el archivo. Los fragmentos, por si mismos, como se discute aquí, pueden ser fragmentos comprimidos, fragmentos en un formato de datos incompleto, o incluso fragmentos que han sido alterados, en alguna forma, criptográficamente o de otra forma.
Los fragmentos, cuando se transmiten, pueden transmitirse en un formato de datos incompleto, en un formato comprimido, o de otra forma. Como se puede apreciar, cuando se transmiten porciones de datos de archivo en formato comprimido, puede resultar en la optimización que la infraestructura de transmisión no necesita comprimir los datos para obtener eficiencias en transmisión y el servidor de almacenamiento de datos no necesita comprimir los datos para optimizar el almacenamiento en el servidor de almacenamiento de datos. Al transmitir únicamente aquellos fragmentos comprimidos aún no almacenados o presentes en el extremo receptor de la transmisión, pueden realizarse optimizaciones tanto en la transmisión como el almacenamiento de datos de archivo.
La presente invención puede representarse en otras formas específicas sin apartarse de su espíritu o características esenciales. Las modalidades descritas se van a considerar en todos los aspectos únicamente como ilustrativas y no restrictivas. El alcance de la invención, por lo tanto, se indica por las reivindicaciones anexas en lugar de por la descripción anterior. Todos los cambios que vienen dentro del significado y alcance de equivalencia de las reivindicaciones se van a abarcar dentro de su alcance.

Claims (15)

REIVINDICACIONES
1.- Un método en un ambiente de cómputo que comprende un cliente y un servidor de almacenamiento de datos, el método para exponer los detalles de optimización de almacenamiento dentro del servidor de almacenamiento de datos al cliente, el método comprende: acceder a metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos, en donde los datos de archivo se almacenan en el servidor de almacenamiento de datos en una forma distinta a una forma nativa de los datos de archivo, y en donde los metadatos exponen la forma de almacenamiento en los datos de archivo como almacenados en el i servidor de almacenamiento de datos; enviar desde el cliente, una solicitud de datos de archivo al servidor de almacenamiento de datos; y recibir desde el servidor de almacenamiento de datos, información que comprende uno o más de datos de archivo, metadatos adicionales que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos, y datos que representan al menos una porción de los datos de archivo.
2 - El método de acuerdo con la reivindicación 1 , en donde los metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos comprenden datos que describen el almacenamiento de los datos de archivo que resultan de la eliminación de duplicado de los datos de archivo en el servidor de almacenamiento de datos.
3. - El método de acuerdo con la rei indicación 1, en donde los metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos comprenden una verificación criptográfica de un subgrupo de los datos de archivo.
4. - El método de acuerdo con la reivindicación 1, en donde los metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos comprenden una verificación criptográfica de cada uno de una pluralidad de subgrupos de los datos de archivo.
5. - El método de acuerdo con la reivindicación 1, en donde los metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos comprenden datos que describen un subgrupo comprimido de los datos de archivo.
6. - Un método en un ambiente de cómputo que comprende un cliente y un servidor de almacenamiento de datos, él método para exponer los detalles de optimización de almacenamiento dentro del servidor de almacenamiento de datos al cliente, el método comprende: enviar metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos, en donde los datos de archivo se almacenan en el servidor de almacenamiento de datos en una forma distinta a una forma nativa de los datos de archivo, y en donde ' los metadatos exponen la forma de almacenamiento de los datos de archivo como almacenados en el servidor de almacenamiento de datos; recibir en el servidor de almacenamiento de datos, una solicitud de datos de archivo desde un sistema de cómputo; y enviar desde el servidor de almacenamiento de datos, información que comprende al menos uno de datos adicionales, metadatos adicionales que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos, y datos que representan al menos una porción de los datos de archivo.
7.- El método de acuerdo con la reivindicación 8, en donde los metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos comprenden datos que describen el almacenamiento de los datos de archivo que resulta de la eliminación de duplicado de los datos de archivo en el servidor de almacenamiento de datos.
8.- El método de acuerdo con la reivindicación 8, en donde los metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos comprende una verificación criptográfica de un subgrupo de los datos de archivo.
9.- El método de acuerdo con la reivindicación 8, en donde los metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos comprenden una verificación criptográfica de cada uno de una pluralidad de subgrupos de los datos de archivo.
10.- El método de acuerdo con la reivindicación 8, en donde los metadatos que describen el almacenamiento de datos de archivo en el servidor de almacenamiento de datos comprenden datos que describen un subgrupo comprimido de los datos de archivo.
11. - Un producto de programa de computadora que comprende uno o más medios de almacenamiento legibles por computadora que tienen codificadas ahí instrucciones ejecutables por computadora que, cuando se ejecutan en uno o más procesadores de computadora, realizan un método para exponer los detalles de optimización de almacenamiento dentro de un servidor de almacenamiento de datos a un cliente, el método comprende: enviar desde un sistema de cómputo una solicitud para datos de archivo al servidor de almacenamiento de datos; y recibir desde el servidor de almacenamiento de datos, información que comprende información que describe el almacenamiento de los datos de archivo en el servidor de almacenamiento de datos.
12. - El producto de programa de computadora de acuerdo con la reivindicación 11, en donde la información que comprende información que describe el almacenamiento de los datos de archivo en el servidor de almacenamiento de datos comprende datos que describen el almacenamiento de los datos de archivo que resultan de la eliminación de duplicado de los datos de archivo en el servidor de almacenamiento de datos.
13. - El producto de programa de computadora de acuerdo con la reivindicación 11, en donde la información que comprende información que describe el almacenamiento de los datos de archivo en el servidor de almacenamiento de datos comprende una verificación criptográfica en un subgrupo de los datos de archivo.
14. - El producto de programa de computadora de acuerdo con la reivindicación 11, en donde la información que comprende información que describe el almacenamiento de los datos de archivo en el servidor de almacenamiento de datos comprende una verificación criptográfica de cada uno de una pluralidad de subgrupos de los datos de archivo.
15. - El producto de programa de computadora de acuerdo con la reivindicación 11, en donde la información que comprende información que describe el almacenamiento de los datos de archivo en el servidor de almacenamiento de datos comprende datos que describen un subgrupo comprimido de los datos de archivo.
MX2012014730A 2010-06-18 2011-06-06 Optimizacion de almacenamiento y transmision de datos. MX2012014730A (es)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/818,515 US20110314070A1 (en) 2010-06-18 2010-06-18 Optimization of storage and transmission of data
PCT/US2011/039318 WO2011159517A2 (en) 2010-06-18 2011-06-06 Optimization of storage and transmission of data

Publications (1)

Publication Number Publication Date
MX2012014730A true MX2012014730A (es) 2013-01-22

Family

ID=45329631

Family Applications (1)

Application Number Title Priority Date Filing Date
MX2012014730A MX2012014730A (es) 2010-06-18 2011-06-06 Optimizacion de almacenamiento y transmision de datos.

Country Status (12)

Country Link
US (1) US20110314070A1 (es)
EP (1) EP2583186A2 (es)
JP (1) JP5819416B2 (es)
KR (1) KR20130095194A (es)
CN (1) CN102947815B (es)
AU (1) AU2011268033A1 (es)
BR (1) BR112012032407A2 (es)
CA (1) CA2799976A1 (es)
HK (1) HK1182493A1 (es)
MX (1) MX2012014730A (es)
RU (1) RU2581551C2 (es)
WO (1) WO2011159517A2 (es)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8484162B2 (en) 2008-06-24 2013-07-09 Commvault Systems, Inc. De-duplication systems and methods for application-specific data
US8930306B1 (en) 2009-07-08 2015-01-06 Commvault Systems, Inc. Synchronized data deduplication
US8578109B2 (en) * 2010-09-30 2013-11-05 Commvault Systems, Inc. Systems and methods for retaining and using data block signatures in data protection operations
US8364652B2 (en) 2010-09-30 2013-01-29 Commvault Systems, Inc. Content aligned block-based deduplication
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
US8856368B2 (en) * 2011-04-01 2014-10-07 International Business Machines Corporation Method for distributing a plurality of data portions
KR101904482B1 (ko) * 2011-12-26 2018-10-08 에스케이텔레콤 주식회사 콘텐트 전송 시스템, 그 시스템에서의 네트워크 중복 전송 트래픽 최적화 방법, 중앙 제어 장치 및 로컬 캐싱 장치
KR20130093806A (ko) * 2012-01-10 2013-08-23 한국전자통신연구원 클라우드 컴퓨팅 환경에서의 개인 정보 유출 알림 시스템 및 방법
CN102546817B (zh) * 2012-02-02 2014-08-20 清华大学 集中式数据中心数据冗余消除方法
CN102571974B (zh) * 2012-02-02 2014-06-11 清华大学 分布式数据中心数据冗余消除方法
US9218374B2 (en) 2012-06-13 2015-12-22 Commvault Systems, Inc. Collaborative restore in a networked storage system
US9633033B2 (en) 2013-01-11 2017-04-25 Commvault Systems, Inc. High availability distributed deduplicated storage system
WO2014149025A1 (en) * 2013-03-18 2014-09-25 Ge Intelligent Platforms, Inc. Apparatus and method for optimizing time series data store usage
US10015012B2 (en) * 2013-07-03 2018-07-03 Red Hat, Inc. Precalculating hashes to support data distribution
EP3022664A1 (en) * 2013-07-18 2016-05-25 Hewlett Packard Enterprise Development LP Remote storage
KR102187127B1 (ko) * 2013-12-03 2020-12-04 삼성전자주식회사 데이터 연관정보를 이용한 중복제거 방법 및 시스템
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
JP6326913B2 (ja) 2014-03-31 2018-05-23 富士通株式会社 制御プログラムおよび制御方法
EP3143525A4 (en) * 2014-05-13 2017-03-22 Cloud Crowding Corp. Distributed secure data storage and transmission of streaming media content
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
KR101588976B1 (ko) 2014-10-22 2016-01-27 삼성에스디에스 주식회사 파일 송신 장치 및 방법
US9575673B2 (en) 2014-10-29 2017-02-21 Commvault Systems, Inc. Accessing a file system using tiered deduplication
US10146752B2 (en) 2014-12-31 2018-12-04 Quantum Metric, LLC Accurate and efficient recording of user experience, GUI changes and user interaction events on a remote web document
US10339106B2 (en) 2015-04-09 2019-07-02 Commvault Systems, Inc. Highly reusable deduplication database after disaster recovery
US20160350391A1 (en) 2015-05-26 2016-12-01 Commvault Systems, Inc. Replication using deduplicated secondary copy data
US11461456B1 (en) * 2015-06-19 2022-10-04 Stanley Kevin Miles Multi-transfer resource allocation using modified instances of corresponding records in memory
WO2017011829A1 (en) * 2015-07-16 2017-01-19 Quantum Metric, LLC Document capture using client-based delta encoding with server
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
WO2017022034A1 (ja) * 2015-07-31 2017-02-09 富士通株式会社 情報処理装置、情報処理方法、及び、情報処理プログラム
RU2625611C2 (ru) * 2015-12-07 2017-07-17 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Оренбургский государственный университет" Способ преобразования документов для минимизации их объёма при хранении электронных документов с квазиструктурированным информационным наполнением
US20170192868A1 (en) 2015-12-30 2017-07-06 Commvault Systems, Inc. User interface for identifying a location of a failed secondary storage device
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)
US10165088B2 (en) * 2016-08-02 2018-12-25 International Business Machines Corporation Providing unit of work continuity in the event initiating client fails over
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
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
RU2718215C2 (ru) 2018-09-14 2020-03-31 Общество С Ограниченной Ответственностью "Яндекс" Система обработки данных и способ обнаружения затора в системе обработки данных
RU2731321C2 (ru) 2018-09-14 2020-09-01 Общество С Ограниченной Ответственностью "Яндекс" Способ определения потенциальной неисправности запоминающего устройства
RU2714219C1 (ru) 2018-09-14 2020-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования передачи операций ввода/вывода
RU2714602C1 (ru) 2018-10-09 2020-02-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки данных
RU2721235C2 (ru) 2018-10-09 2020-05-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для маршрутизации и выполнения транзакций
RU2711348C1 (ru) 2018-10-15 2020-01-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запросов в распределенной базе данных
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
RU2714373C1 (ru) 2018-12-13 2020-02-14 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования выполнения операций ввода/вывода
US11698727B2 (en) 2018-12-14 2023-07-11 Commvault Systems, Inc. Performing secondary copy operations based on deduplication performance
RU2749649C2 (ru) 2018-12-21 2021-06-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования обработки операций ввода/вывода
RU2720951C1 (ru) * 2018-12-29 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и распределенная компьютерная система для обработки данных
RU2746042C1 (ru) 2019-02-06 2021-04-06 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для передачи сообщения
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
US11064055B2 (en) * 2019-07-22 2021-07-13 Anacode Labs, Inc. Accelerated data center transfers
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
US11687424B2 (en) 2020-05-28 2023-06-27 Commvault Systems, Inc. Automated media agent state management
CN113641434A (zh) * 2021-08-12 2021-11-12 上海酷栈科技有限公司 一种云桌面数据压缩自适应编码方法、系统及存储设备
US11914983B2 (en) * 2022-06-03 2024-02-27 Apple Inc. Virtual restructuring for patching compressed disk images

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5920700A (en) * 1996-09-06 1999-07-06 Time Warner Cable System for managing the addition/deletion of media assets within a network based on usage and media asset metadata
JP3171160B2 (ja) * 1998-03-20 2001-05-28 日本電気株式会社 圧縮ファイルサーバ方式
JP3598495B2 (ja) * 1999-01-29 2004-12-08 株式会社 デジタルデザイン データ転送方法、コンピュータ読み取り可能な記録媒体及びデータ転送システム
EP1154352A4 (en) * 1999-01-29 2009-09-30 Digitaldesign Co Ltd DATA TRANSMISSION PROCEDURE, COMPUTER READABLE MEDIA AND DATA TRANSMISSION DEVICE
WO2001061563A1 (en) * 2000-02-18 2001-08-23 Avamar Technologies, Inc. Hash file system and method for use in a commonality factoring system
US6990547B2 (en) * 2001-01-29 2006-01-24 Adaptec, Inc. Replacing file system processors by hot swapping
US7054927B2 (en) * 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
US6944740B2 (en) * 2002-03-27 2005-09-13 International Business Machines Corporation Method for performing compressed I/O with memory expansion technology
JP3979183B2 (ja) * 2002-05-27 2007-09-19 日本電気株式会社 データ共有システム及びディスク装置へのアクセス方法並びにプログラム
US7181578B1 (en) * 2002-09-12 2007-02-20 Copan Systems, Inc. Method and apparatus for efficient scalable storage management
US20040107242A1 (en) * 2002-12-02 2004-06-03 Microsoft Corporation Peer-to-peer content broadcast transfer mechanism
US20050138011A1 (en) * 2003-12-23 2005-06-23 Royer Robert J.Jr. Meta-data storage and access techniques
US7130956B2 (en) * 2004-02-10 2006-10-31 Sun Microsystems, Inc. Storage system including hierarchical cache metadata
US7243110B2 (en) * 2004-02-20 2007-07-10 Sand Technology Inc. Searchable archive
US7533181B2 (en) * 2004-02-26 2009-05-12 International Business Machines Corporation Apparatus, system, and method for data access management
US7383382B2 (en) * 2004-04-14 2008-06-03 Microsoft Corporation System and method for storage power, thermal and acoustic management in server systems
US7346751B2 (en) * 2004-04-30 2008-03-18 Commvault Systems, Inc. Systems and methods for generating a storage-related metric
CN1697327A (zh) * 2004-05-13 2005-11-16 皇家飞利浦电子股份有限公司 一种顺序压缩/解压缩数据的方法及装置
US7386566B2 (en) * 2004-07-15 2008-06-10 Microsoft Corporation External metadata processing
US7657581B2 (en) * 2004-07-29 2010-02-02 Archivas, Inc. Metadata management for fixed content distributed data storage
US7594075B2 (en) * 2004-10-20 2009-09-22 Seagate Technology Llc Metadata for a grid based data storage system
US7320008B1 (en) * 2004-12-20 2008-01-15 Veritas Operating Corporation Data protection mechanism
US7548657B2 (en) * 2005-06-25 2009-06-16 General Electric Company Adaptive video compression of graphical user interfaces using application metadata
AU2006286320A1 (en) * 2005-09-01 2007-03-08 Astragroup As (A Norwegian Company) Post- recording data analysis and retrieval
US7555715B2 (en) * 2005-10-25 2009-06-30 Sonic Solutions Methods and systems for use in maintaining media data quality upon conversion to a different data format
US7587569B2 (en) * 2005-12-19 2009-09-08 Yahoo! Inc. System and method for removing a storage server in a distributed column chunk data store
EP1816822B1 (en) * 2006-02-03 2008-03-26 Research In Motion Limited System and method for controlling data communications between a server and a client device
US7747831B2 (en) * 2006-03-20 2010-06-29 Emc Corporation High efficiency portable archive and data protection using a virtualization layer
US8412682B2 (en) * 2006-06-29 2013-04-02 Netapp, Inc. System and method for retrieving and using block fingerprints for data deduplication
US20080052328A1 (en) * 2006-07-10 2008-02-28 Elephantdrive, Inc. Abstracted and optimized online backup and digital asset management service
US20080243769A1 (en) * 2007-03-30 2008-10-02 Symantec Corporation System and method for exporting data directly from deduplication storage to non-deduplication storage
JP5061797B2 (ja) * 2007-08-31 2012-10-31 ソニー株式会社 伝送システムおよび方法、伝送装置および方法、受信装置および方法、プログラム、並びに記録媒体
US7941409B2 (en) * 2007-09-11 2011-05-10 Hitachi, Ltd. Method and apparatus for managing data compression and integrity in a computer storage system
US7797279B1 (en) * 2007-12-31 2010-09-14 Emc Corporation Merging of incremental data streams with prior backed-up data
US8300823B2 (en) * 2008-01-28 2012-10-30 Netapp, Inc. Encryption and compression of data for storage
US8176269B2 (en) * 2008-06-30 2012-05-08 International Business Machines Corporation Managing metadata for data blocks used in a deduplication system
US20100082700A1 (en) * 2008-09-22 2010-04-01 Riverbed Technology, Inc. Storage system for data virtualization and deduplication
US8738621B2 (en) * 2009-01-27 2014-05-27 EchoStar Technologies, L.L.C. Systems and methods for managing files on a storage device
US7987162B2 (en) * 2009-03-06 2011-07-26 Bluearc Uk Limited Data compression in a file storage system
US8205065B2 (en) * 2009-03-30 2012-06-19 Exar Corporation System and method for data deduplication
CN101582076A (zh) * 2009-06-24 2009-11-18 浪潮电子信息产业股份有限公司 一种基于数据库的重复数据删除方法
US9191437B2 (en) * 2009-12-09 2015-11-17 International Business Machines Corporation Optimizing data storage among a plurality of data storage repositories
US8370297B2 (en) * 2010-03-08 2013-02-05 International Business Machines Corporation Approach for optimizing restores of deduplicated data

Also Published As

Publication number Publication date
RU2581551C2 (ru) 2016-04-20
CN102947815B (zh) 2016-01-20
EP2583186A2 (en) 2013-04-24
KR20130095194A (ko) 2013-08-27
RU2012154625A (ru) 2014-06-27
AU2011268033A1 (en) 2012-12-20
WO2011159517A3 (en) 2012-04-05
WO2011159517A2 (en) 2011-12-22
US20110314070A1 (en) 2011-12-22
JP2013534007A (ja) 2013-08-29
JP5819416B2 (ja) 2015-11-24
CN102947815A (zh) 2013-02-27
CA2799976A1 (en) 2011-12-22
BR112012032407A2 (pt) 2019-09-24
HK1182493A1 (zh) 2013-11-29

Similar Documents

Publication Publication Date Title
MX2012014730A (es) Optimizacion de almacenamiento y transmision de datos.
EP2751693B1 (en) Optimization of a partially deduplicated file
US9785666B2 (en) Using index partitioning and reconciliation for data deduplication
US9984093B2 (en) Technique selection in a deduplication aware client environment
US8645335B2 (en) Partial recall of deduplicated files
US11226944B2 (en) Cache management
US8650162B1 (en) Method and apparatus for integrating data duplication with block level incremental data backup
US20120089579A1 (en) Compression pipeline for storing data in a storage cloud
US11829624B2 (en) Method, device, and computer readable medium for data deduplication
US20120089775A1 (en) Method and apparatus for selecting references to use in data compression
US20150006475A1 (en) Data deduplication in a file system
US20180357217A1 (en) Chunk compression in a deduplication aware client environment
US9922041B2 (en) Storing data files in a file system
US20180107404A1 (en) Garbage collection system and process
US10402373B1 (en) Filesystem redirection
US20170124107A1 (en) Data deduplication storage system and process

Legal Events

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

Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC