Seguramente todas las personas o profesionales de T.I orientadas al almacenamiento, saben o han escuchado hablar sobre deduplicación y compresión, estas tecnologías aparentemente son la principal característica de todas las plataformas de almacenamiento modernas.

Estas tecnologías proporcionan reducciones de datos para conjuntos de datos diferentes. Es fundamental comprender cómo funcionan, qué tipos de aplicaciones se beneficiarán de su uso, pero lo más importante, comprender cómo la combinación puede proporcionar ahorros de almacenamiento sin igual en el conjunto más amplio de casos de uso.

En muchos sentidos, la deduplicación y la compresión de datos se parecen mucho a la sal y la pimienta. Ambos condimentos mejoran el sabor de los alimentos, cada uno tiene un sabor distinto y se usa en cantidades variables dependiendo del plato que se esté preparando; sin embargo, la mayoría de las veces la comida sabe mejor cuando se usan juntas. De manera similar, tanto la deduplicación como la compresión reducen la capacidad de almacenamiento usado y regularmente se usan juntas en la mayoría de sistemas de almacenamiento modernos.

Como nota personal, seguramente han escuchado hablar de Thin Provisioning, otro término ampliamente utilizado en almacenamiento, donde dice que “reduce la capacidad de almacenamiento”, eso es simplemente incorrecto, Thin Provisioning no es una tecnología de reducción de datos; es un modelo de aprovisionamiento que permite consumir almacenamiento bajo demanda al eliminar la preasignación de la capacidad de almacenamiento. Permite una mayor utilización de los medios de almacenamiento, pero no reduce la capacidad de los datos usados escritos en los medios de almacenamiento.

Deduplicación de datos

La deduplicación de datos proporciona ahorros de almacenamiento al eliminar bloques redundantes de datos.

La reducción de la capacidad de almacenamiento se logra solo cuando hay redundancia en el conjunto de datos. Esto significa, que el conjunto de datos debe estar compuesto por múltiples archivos idénticos o archivos que contienen una porción de datos que es idéntica al contenido encontrado en otros archivos, muchas veces para aplicar esta tecnología, el volumen (por ejemplo una LUN), es particionado en bloques de cierto tamaño (i.e bloques de 256 kb), después se realiza una comparación de todos esos bloques y los que sean iguales o redundantes ya no son escritos a disco, si no referenciado con apuntadores.

Los ejemplos de dónde se encuentra la mayor redundancia de archivos incluyen directorios de inicio (home directories) y aplicaciones para compartir archivos en la nube como Citrix ShareFile y VMware Horizon. La redundancia de bloques es abismal en conjuntos de datos como lo son prueba y desarrollo (Test and Development), control de calidad (QC), almacenamiento de respaldos, máquinas virtuales y escritorios virtuales; solo piense en la cantidad de copias del sistema operativo y los archivos binarios de aplicaciones que existen en estos entornos virtualizados.

Por otro lado, son menos significativos bases de datos, archivos de audio y video.

*Consejo técnico: cuanto menor sea el tamaño del bloque de almacenamiento, mayor será la capacidad de identificar y deducir datos.

Compresión de datos

La compresión de datos proporciona ahorros de almacenamiento al eliminar la redundancia a nivel binario dentro de un bloque de datos. A diferencia de la deduplicación, la compresión no se preocupa por si existe una segunda copia del mismo bloque, simplemente quiere almacenar el bloque más eficiente. Al almacenar los datos en un formato que es más denso que la forma nativa, los algoritmos de compresión «inflan» y «desinflan» los datos respectivamente a medida que se leen (inflan) o escriben (desinflan). Los ejemplos de compresión de nivel de archivo común que usamos en nuestra vida cotidiana incluyen archivos de audio como MP3 y video como MP4 e imágenes JPG, un archivo de música sin comprimir puede pesar varias veces su peso original, por lo que sí tenemos miles de canciones nos quedaríamos sin espacio de almacenamiento muy pronto, esto aplica también en las empresas.

La compresión en la capa de aplicación, como una base de datos SQL u Oracle, es algo así como un acto de equilibrio. Las velocidades de compresión y descompresión más rápidas generalmente se producen a expensas de un menor ahorro de espacio. Para citar un ejemplo menos conocido, Hadoop ofrece comúnmente los siguientes cinco formatos de compresión:

  •         DEFLATE
  •         gzip
  •         bzip2
  •         LZO
  •         Snappy

Nombres muy técnicos, solo quédense con que los 5 nombres de arriba son los equivalentes a MP3, MP4, JPEG, PNG, etc., que utiliza el proyecto open source Hadoop, muy popular para las soluciones Big Data en estos tiempos.

*Consejo técnico: los conjuntos de datos a menudo se pueden comprimir en un sistema de almacenamiento delegando esta tarea a los sistemas de almacenamiento. Esto es posible ya que la mayoría de los administradores tienden a seleccionar el rendimiento óptimo de la aplicación sobre los ahorros óptimos de almacenamiento, por lo que al delegar este proceso a los recursos existentes en el storage le quita carga a los servidores.

Conclusión, ¡Duplique sus ahorros!

En resumen, la deduplicación elimina los bloques de datos redundantes, mientras que la compresión elimina los datos redundantes adicionales dentro de cada bloque de datos. Estas técnicas trabajan juntas para reducir la cantidad de espacio requerido para almacenar los datos y se centra principalmente en reducir costos de adquisición; también en aprovechar al máximo nuestra capacidad útil de almacenamiento, así como habilitar el All-Flash para su adopción masiva ya que al implementar múltiples tecnologías de reducción de datos se puede disminuir significativamente la capacidad de datos flash requerida, tanto al momento de la compra, como para un posterior crecimiento, lo que indirectamente puede aminorar el precio de los discos duros SSD, es decir, hace que el flash sea asequible para todas las cargas de trabajo.