Reducción de datos
La reducción de datos hace referencia a los métodos que pueden utilizarse para reducir la cantidad física de datos que se almacena. De esta manera, se ahorra espacio de almacenamiento y costes. [TOC]
¿Qué es la reducción de datos?
El término reducción de datos engloba varios métodos de optimización de capacidad. Su objetivo es reducir la cantidad de datos que hay que almacenar. Ante el aumento global del volumen de datos, esta reducción es necesaria para garantizar un almacenamiento de datos eficiente en cuanto a recursos y costes.
Existen diferentes enfoques para la reducción de datos: la compresión de datos y la deduplicación. Mientras que la compresión sin pérdidas utiliza redundancias dentro de un archivo para comprimir datos, los algoritmos de deduplicación sincronizan datos entre archivos para evitar repeticiones.
Deduplicación
La deduplicación es un proceso de reducción de datos que se basa esencialmente en evitar la redundancia de datos en un sistema de almacenamiento. Puede realizarse tanto en el destino del almacenamiento como en el origen de los datos. Se utiliza un motor de deduplicación que emplea algoritmos especiales para identificar y eliminar los archivos o bloques de datos redundantes. El principal campo de aplicación de la deduplicación es la copia de seguridad de datos.
El objetivo de la reducción de datos mediante deduplicación es escribir en un soporte de datos no volátil solo la cantidad de información necesaria para poder reconstruir un archivo sin pérdidas. Cuantos más duplicados se eliminen, menor será la cantidad de datos que sea necesario almacenar o transferir.
Los duplicados pueden identificarse a nivel de archivo, como ocurre con Git o Dropbox, pero los algoritmos de deduplicación que funcionan a nivel de subarchivo son más eficientes. Para ello, los archivos se dividen primero en bloques de datos (chunks) y se les asignan checksums únicos, denominados valores hash. Una base de datos de seguimiento sirve como una instancia central de control, que contiene todos los valores de checksum.
Se puede distinguir entre dos variantes de deduplicación basada en bloques:
- Longitud de bloque fija: los archivos se dividen en secciones de longitud exactamente igual, que se ajustan al tamaño del clúster del sistema de archivos o del sistema RAID (generalmente 4KB).
- Longitud de bloque variable: el algoritmo divide los datos en bloques de longitudes diferentes, cuya extensión varía según el tipo de datos que se estén procesando.
La forma en que se dividen los bloques tiene un impacto significativo en la eficiencia de la deduplicación de datos. Esto es evidente cuando se modifican archivos deduplicados posteriormente: al usar tamaños de bloque fijos, al cambiar un archivo, todos los segmentos subsiguientes también se consideran nuevos debido al desplazamiento de los límites de bloque por parte del algoritmo de deduplicación. Esto aumenta la carga computacional y la utilización del ancho de banda.
Sin embargo, si un algoritmo utiliza límites de bloque variables, los cambios en un único bloque de datos no afectan a los segmentos vecinos. En su lugar, solo el bloque de datos modificado se amplía con los nuevos bytes y se guarda. Esto alivia la carga de la red. Sin embargo, la flexibilidad en términos de cambios en los archivos es más intensiva en términos de cálculos, ya que el algoritmo primero debe determinar cómo se dividen los bloques.
Compresión de datos
La compresión de datos consiste en convertir archivos en una representación alternativa más eficiente que la original. El objetivo de esta reducción de datos es reducir tanto el espacio de almacenamiento necesario como el tiempo de transmisión. Esta ganancia de codificación puede lograrse utilizando dos enfoques diferentes:
- Compresión redundante: con la compresión de datos sin pérdidas, los datos también se pueden descomprimir al bit exacto después de la compresión. Por tanto, los datos de entrada y salida son idénticos. Esta compresión redundante solo es posible si un archivo contiene información redundante.
- Compresión irrelevante: en una compresión con pérdida, se elimina información irrelevante para comprimir un archivo. Esto siempre va acompañado de una pérdida de datos. Después de una compresión de irrelevancia, los datos originales solo se pueden recuperar de manera aproximada. La clasificación de qué datos se consideran irrelevantes es subjetiva. Por ejemplo, en la compresión de audio MP3, se eliminan patrones de frecuencia que se asume que las personas apenas escuchan o ni siquiera perciben.
Mientras que la compresión a nivel de sistemas de almacenamiento es básicamente sin pérdida, la pérdida de datos en otros ámbitos como la transmisión de imágenes, vídeo y audio se acepta deliberadamente para lograr una reducción del tamaño de los archivos.
Tanto la codificación como la descodificación de un archivo requieren un esfuerzo computacional. Esto depende principalmente del método de compresión utilizado. Mientras que algunas técnicas están diseñadas para representar los datos de salida de la forma más compacta posible, otras se centran en reducir el tiempo de cálculo necesario. Por tanto, la elección del método de compresión depende siempre de los requisitos del ámbito de aplicación.
Comparación de distintas opciones de reducción de datos
Para implantar procedimientos de copia de seguridad u optimizar el almacenamiento en sistemas de archivos estándar, las empresas suelen recurrir a la deduplicación. Esto se debe principalmente a que los sistemas de deduplicación funcionan de forma extremadamente eficiente cuando se trata de almacenar archivos idénticos.
Los métodos de compresión de datos, en cambio, suelen asociarse a mayores costes de computación y, por tanto, requieren plataformas más complejas. Los sistemas de almacenamiento con una combinación de ambos procesos de reducción de datos pueden utilizarse con mayor eficacia. En primer lugar, se eliminan las redundancias de los archivos que se van a almacenar mediante deduplicación y, a continuación, se comprimen los datos restantes.