stringtranslate.com

Deduplicación de datos

En informática , la deduplicación de datos es una técnica para eliminar copias duplicadas de datos repetidos. La implementación exitosa de la técnica puede mejorar la utilización del almacenamiento, lo que a su vez puede reducir el gasto de capital al reducir la cantidad total de medios de almacenamiento necesarios para satisfacer las necesidades de capacidad de almacenamiento. También se puede aplicar a transferencias de datos de red para reducir la cantidad de bytes que se deben enviar.

El proceso de deduplicación requiere la comparación de "fragmentos" de datos (también conocidos como "patrones de bytes") que son bloques de datos contiguos y únicos. Estos fragmentos se identifican y almacenan durante un proceso de análisis y se comparan con otros fragmentos dentro de los datos existentes. Siempre que ocurre una coincidencia, el fragmento redundante se reemplaza con una pequeña referencia que apunta al fragmento almacenado. Dado que el mismo patrón de bytes puede ocurrir docenas, cientos o incluso miles de veces (la frecuencia de coincidencia depende del tamaño del fragmento), la cantidad de datos que deben almacenarse o transferirse se puede reducir considerablemente. [1] [2]

Una técnica relacionada es el almacenamiento (de datos) de instancia única , que reemplaza múltiples copias de contenido a nivel de archivo completo con una única copia compartida. Si bien es posible combinar esto con otras formas de compresión y deduplicación de datos, se diferencia de los enfoques más nuevos de deduplicación de datos (que pueden operar a nivel de segmento o subbloque).

La deduplicación es diferente de los algoritmos de compresión de datos, como LZ77 y LZ78 . Mientras que los algoritmos de compresión identifican datos redundantes dentro de archivos individuales y codifican estos datos redundantes de manera más eficiente, la intención de la deduplicación es inspeccionar grandes volúmenes de datos e identificar secciones grandes (como archivos completos o secciones grandes de archivos) que son idénticas y reemplazarlas. con una copia compartida.

Principio de funcionamiento

Por ejemplo, un sistema de correo electrónico típico puede contener 100 instancias del mismo archivo adjunto de 1 MB ( megabyte ). Cada vez que se realiza una copia de seguridad de la plataforma de correo electrónico , se guardan las 100 instancias del archivo adjunto, lo que requiere 100 MB de espacio de almacenamiento. Con la deduplicación de datos, en realidad sólo se almacena una instancia del archivo adjunto; las instancias posteriores se remiten a la copia guardada para lograr una proporción de deduplicación de aproximadamente 100 a 1. La deduplicación a menudo se combina con la compresión de datos para ahorrar almacenamiento adicional: la deduplicación se usa primero para eliminar grandes cantidades de datos repetitivos y luego se usa la compresión para eliminar de manera eficiente codificar cada uno de los fragmentos almacenados. [3]

En el código de computadora , la deduplicación se realiza, por ejemplo, almacenando información en variables para que no tengan que escribirse individualmente sino que puedan cambiarse todas a la vez en una ubicación central de referencia . Algunos ejemplos son clases CSS y referencias con nombre en MediaWiki .

Beneficios

La deduplicación de datos basada en almacenamiento reduce la cantidad de almacenamiento necesaria para un conjunto determinado de archivos. Es más eficaz en aplicaciones donde se almacenan muchas copias de datos muy similares o incluso idénticos en un solo disco. En el caso de las copias de seguridad de datos, que se realizan de forma rutinaria para proteger contra la pérdida de datos, la mayoría de los datos de una copia de seguridad determinada permanecen sin cambios con respecto a la copia de seguridad anterior. Los sistemas de respaldo comunes intentan aprovechar esto omitiendo (o vinculando ) archivos que no han cambiado o almacenando diferencias entre archivos. Sin embargo, ninguno de estos enfoques capta todas las redundancias. Los enlaces físicos no ayudan con archivos grandes que sólo han cambiado en pequeñas formas, como una base de datos de correo electrónico; las diferencias solo encuentran redundancias en versiones adyacentes de un solo archivo (considere una sección que fue eliminada y luego agregada nuevamente, o una imagen de logotipo incluida en muchos documentos).

La deduplicación de datos de red en línea se utiliza para reducir la cantidad de bytes que deben transferirse entre puntos finales, lo que puede reducir la cantidad de ancho de banda requerido. Consulte Optimización de WAN para obtener más información.

Los servidores virtuales y los escritorios virtuales se benefician de la deduplicación porque permite fusionar archivos de sistema nominalmente separados para cada máquina virtual en un único espacio de almacenamiento. Al mismo tiempo, si una máquina virtual determinada personaliza un archivo, la deduplicación no cambiará los archivos en las otras máquinas virtuales, algo que no ofrecen alternativas como enlaces físicos o discos compartidos. También se ha mejorado la realización de copias de seguridad o duplicados de entornos virtuales.

Clasificación

Postproceso versus deduplicación en línea

La deduplicación puede ocurrir "en línea", a medida que los datos fluyen, o "postprocesar" después de que se hayan escrito.

Con la deduplicación posterior al proceso, los datos nuevos se almacenan primero en el dispositivo de almacenamiento y luego, un proceso posterior analizará los datos en busca de duplicaciones. La ventaja es que no es necesario esperar a que se completen los cálculos hash y la búsqueda antes de almacenar los datos, lo que garantiza que el rendimiento de la tienda no se degrade. Las implementaciones que ofrecen operaciones basadas en políticas pueden brindar a los usuarios la capacidad de diferir la optimización de archivos "activos" o procesar archivos según el tipo y la ubicación. Un posible inconveniente es que los datos duplicados pueden almacenarse innecesariamente durante un breve periodo de tiempo, lo que puede resultar problemático si el sistema se acerca a su capacidad máxima.

Alternativamente, los cálculos de hash de deduplicación se pueden realizar en línea: sincronizados a medida que los datos ingresan al dispositivo de destino. Si el sistema de almacenamiento identifica un bloque que ya ha almacenado, solo se almacena una referencia al bloque existente, en lugar del bloque nuevo completo.

La ventaja de la deduplicación en línea sobre la deduplicación posterior al proceso es que requiere menos almacenamiento y tráfico de red, ya que los datos duplicados nunca se almacenan ni transfieren. En el lado negativo, los cálculos hash pueden resultar costosos desde el punto de vista computacional, lo que reduce el rendimiento del almacenamiento. Sin embargo, ciertos proveedores con deduplicación en línea han demostrado equipos que realizan la deduplicación en línea a tasas elevadas.

Los métodos de posprocesamiento y deduplicación en línea suelen ser objeto de intensos debates. [4] [5]

Formatos de datos

El Diccionario SNIA identifica dos métodos: [2]

Deduplicación de origen versus destino

Otra forma de clasificar los métodos de deduplicación de datos es según el lugar donde ocurren. La deduplicación que se produce cerca del lugar donde se crean los datos se denomina "deduplicación de origen". Cuando ocurre cerca de donde se almacenan los datos, se denomina "deduplicación de destino".

La deduplicación de origen garantiza que los datos del origen de datos estén deduplicados. Esto generalmente ocurre directamente dentro de un sistema de archivos. El sistema de archivos escaneará periódicamente archivos nuevos creando hashes y los comparará con hashes de archivos existentes. Cuando se encuentran archivos con los mismos hashes, la copia del archivo se elimina y el nuevo archivo apunta al archivo antiguo. Sin embargo, a diferencia de los enlaces físicos , los archivos duplicados se consideran entidades separadas y, si uno de los archivos duplicados se modifica posteriormente, se crea una copia de ese archivo o bloque modificado utilizando un sistema llamado copia en escritura . El proceso de deduplicación es transparente para los usuarios y las aplicaciones de respaldo. Hacer una copia de seguridad de un sistema de archivos deduplicado a menudo provocará una duplicación, lo que hará que las copias de seguridad sean más grandes que los datos de origen. [6] [7]

La deduplicación de origen se puede declarar explícitamente para operaciones de copia, ya que no se necesita ningún cálculo para saber que los datos copiados necesitan deduplicación. Esto conduce a una nueva forma de "vinculación" en los sistemas de archivos llamada reflink (Linux) o clonefile (MacOS), donde uno o más inodos (entradas de información de archivos) se crean para compartir algunos o todos sus datos. Se denomina de forma análoga a los enlaces físicos , que funcionan a nivel de inodo, y a los enlaces simbólicos que funcionan a nivel de nombre de archivo. [8] Las entradas individuales tienen un comportamiento de copia en escritura sin alias, es decir, cambiar una copia posteriormente no afectará a otras copias. [9] ReFS de Microsoft también admite esta operación. [10]

La deduplicación de destino es el proceso de eliminar duplicados cuando los datos no se generaron en esa ubicación. Un ejemplo de esto sería un servidor conectado a un SAN/NAS. El SAN/NAS sería un destino para el servidor (deduplicación de destino). El servidor no tiene conocimiento de ninguna deduplicación, el servidor también es el punto de generación de datos. Un segundo ejemplo sería la copia de seguridad. Generalmente será un almacén de respaldo, como un repositorio de datos o una biblioteca de cintas virtuales .

Métodos de deduplicación

Una de las formas más comunes de implementación de deduplicación de datos funciona comparando fragmentos de datos para detectar duplicados. Para que eso suceda, a cada fragmento de datos se le asigna una identificación, calculada por el software, generalmente utilizando funciones hash criptográficas. En muchas implementaciones, se supone que si la identificación es idéntica, los datos son idénticos, aunque esto no puede ser cierto en todos los casos debido al principio del casillero ; otras implementaciones no suponen que dos bloques de datos con el mismo identificador sean idénticos, sino que en realidad verifican que los datos con la misma identificación sean idénticos. [11] Si el software supone que ya existe una identificación determinada en el espacio de nombres de deduplicación o realmente verifica la identidad de los dos bloques de datos, dependiendo de la implementación, entonces reemplazará ese fragmento duplicado con un enlace.

Una vez que se han deduplicado los datos, al volver a leer el archivo, siempre que se encuentre un enlace, el sistema simplemente reemplaza ese enlace con el fragmento de datos al que se hace referencia. El proceso de deduplicación pretende ser transparente para los usuarios finales y las aplicaciones.

Las implementaciones comerciales de deduplicación se diferencian por sus arquitecturas y métodos de fragmentación.

Hasta la fecha, la deduplicación de datos se ha utilizado predominantemente con sistemas de almacenamiento secundario. Las razones para esto son dos: primero, la deduplicación de datos requiere una sobrecarga para descubrir y eliminar los datos duplicados. En los sistemas de almacenamiento primario, esta sobrecarga puede afectar el rendimiento. La segunda razón por la que se aplica la deduplicación a los datos secundarios es que los datos secundarios tienden a tener más datos duplicados. Las aplicaciones de copia de seguridad, en particular, suelen generar porciones importantes de datos duplicados con el tiempo.

La deduplicación de datos se ha implementado con éxito con el almacenamiento primario en algunos casos en los que el diseño del sistema no requiere una sobrecarga significativa ni afecta el rendimiento.

Almacenamiento de instancia única

El almacenamiento de instancia única (SIS) es la capacidad de un sistema de tomar múltiples copias de objetos de contenido y reemplazarlas por una única copia compartida. Es un medio para eliminar la duplicación de datos y aumentar la eficiencia. SIS se implementa con frecuencia en sistemas de archivos , software de servidor de correo electrónico , copias de seguridad de datos y otro software informático relacionado con el almacenamiento. El almacenamiento de instancia única es una variante simple de la deduplicación de datos. Si bien la deduplicación de datos puede funcionar a nivel de segmento o subbloque, el almacenamiento de instancia única funciona a nivel de objeto, eliminando copias redundantes de objetos como archivos completos o mensajes de correo electrónico. [12]

El almacenamiento de instancia única se puede utilizar junto con (o superpuesto) a otros métodos de duplicación o compresión de datos para mejorar el rendimiento a cambio de un aumento en la complejidad y (en algunos casos) de un aumento menor en los requisitos de espacio de almacenamiento.

Inconvenientes y preocupaciones

Un método para deduplicar datos se basa en el uso de funciones hash criptográficas para identificar segmentos de datos duplicados. Si dos datos diferentes generan el mismo valor hash, esto se conoce como colisión . La probabilidad de una colisión depende principalmente de la longitud del hash (ver ataque de cumpleaños ). Por lo tanto, surge la preocupación de que se puedan producir daños en los datos si se produce una colisión de hash y no se utilizan medios de verificación adicionales para verificar si hay una diferencia en los datos o no. Tanto las arquitecturas en línea como las de posproceso pueden ofrecer validación bit a bit de los datos originales para garantizar la integridad de los datos. Las funciones hash utilizadas incluyen estándares como SHA-1 , SHA-256 y otros.

La intensidad de recursos computacionales del proceso puede ser un inconveniente de la deduplicación de datos. Para mejorar el rendimiento, algunos sistemas utilizan hashes tanto débiles como fuertes. Los hashes débiles son mucho más rápidos de calcular, pero existe un mayor riesgo de colisión de hash. Los sistemas que utilizan hashes débiles calcularán posteriormente un hash fuerte y lo utilizarán como factor determinante para determinar si en realidad son los mismos datos o no. Tenga en cuenta que la sobrecarga del sistema asociada con el cálculo y la búsqueda de valores hash es principalmente una función del flujo de trabajo de deduplicación. La reconstitución de archivos no requiere este procesamiento y es poco probable que cualquier penalización incremental en el rendimiento asociada con el reensamblaje de fragmentos de datos afecte el rendimiento de la aplicación.

Otra preocupación es la interacción de la compresión y el cifrado. El objetivo del cifrado es eliminar cualquier patrón discernible en los datos. Por lo tanto, los datos cifrados no se pueden deduplicar, aunque los datos subyacentes puedan ser redundantes.

Aunque no es un defecto de la deduplicación de datos, ha habido violaciones de datos cuando se utilizan procedimientos de validación de acceso y seguridad insuficientes con grandes repositorios de datos deduplicados. En algunos sistemas, como es típico en el almacenamiento en la nube, [ cita necesaria ] un atacante puede recuperar datos que pertenecen a otros conociendo o adivinando el valor hash de los datos deseados. [13]

Implementaciones

La deduplicación se implementa en algunos sistemas de archivos, como ZFS o Write Anywhere File Layout , y en diferentes modelos de matrices de discos . [ cita necesaria ] Es un servicio disponible tanto en NTFS como en ReFS en servidores Windows.

Ver también

Referencias

  1. ^ "Comprensión de la deduplicación de datos". Druva . 2009-01-09. Archivado desde el original el 6 de agosto de 2019 . Consultado el 6 de agosto de 2019 .
  2. ^ ab "Diccionario SNIA» Diccionario D ". Archivado desde el original el 24 de diciembre de 2018 . Consultado el 6 de diciembre de 2023 .
  3. ^ Compresión, deduplicación y cifrado: ¿cuál es la diferencia? Archivado el 23 de diciembre de 2018 en Wayback Machine , Stephen Bigelow y Paul Crocetti
  4. ^ "¿Desduplicación en línea o posproceso? (actualizado el 6 de agosto de 2008)". Central de respaldo. Archivado desde el original el 6 de diciembre de 2009 . Consultado el 6 de diciembre de 2023 .
  5. ^ "Dispositivos de deduplicación en línea frente a posprocesamiento". techtarget.com. Archivado desde el original el 9 de junio de 2009 . Consultado el 6 de diciembre de 2023 .
  6. ^ "Windows Server 2008: Windows Storage Server 2008". Microsoft.com. Archivado desde el original el 4 de octubre de 2009 . Consultado el 16 de octubre de 2009 .
  7. ^ "Productos: sistema operativo de plataforma". NetApp. Archivado desde el original el 6 de febrero de 2010 . Consultado el 16 de octubre de 2009 .
  8. ^ "La llamada al sistema reflink (2) v5". lwn.net . Archivado desde el original el 2 de octubre de 2015 . Consultado el 4 de octubre de 2019 .
  9. ^ "ioctl_ficlonerange(2)". Página del manual de Linux . Archivado desde el original el 7 de octubre de 2019 . Consultado el 4 de octubre de 2019 .
  10. ^ KazukiMATSUDA. "Agregar archivo clonado en Windows mediante soporte ReFS". GitHub . Archivado desde el original el 13 de enero de 2021 . Consultado el 23 de febrero de 2020 .
  11. ^ Un ejemplo de una implementación que verifica la identidad en lugar de asumirla se describe en la "Solicitud de patente de EE. UU. n.º 20090307251" Archivado el 15 de enero de 2017 en Wayback Machine .
  12. ^ Explicación de las tasas de deduplicación y el almacenamiento de instancia única a los clientes Archivado el 23 de diciembre de 2018 en Wayback Machine . George Crump, Almacenamiento Suiza
  13. ^ CRISTIANO CACHÍN; MATTHIAS SCHUNTER (diciembre de 2011). "Una nube en la que puede confiar". Espectro IEEE . IEEE . Archivado desde el original el 2 de enero de 2012 . Consultado el 21 de diciembre de 2011 .

enlaces externos