La segmentación definida por el contenido mejora la deduplicación de copias de seguridad al elegir los límites de los fragmentos a partir del contenido de los archivos, lo que permite reutilizar las regiones sin cambios después de inserciones o eliminaciones.
Las copias de seguridad incrementales suelen contener archivos grandes que permanecen prácticamente sin cambios entre versiones: imágenes de discos virtuales, archivos de correo, bases de datos copiadas como archivos, paquetes de proyectos y bibliotecas multimedia exportadas. Si cada fragmento comienza en un desplazamiento de bytes fijo, insertar una pequeña cabecera cerca del principio puede desplazar todos los límites posteriores, aunque los bytes siguientes sean idénticos. La segmentación definida por el contenido hace que la división siga los patrones locales de bytes en lugar de las posiciones absolutas, de modo que la copia de seguridad pueda volver a sincronizarse con los fragmentos antiguos después de la región modificada.
Los límites de tamaño fijo pueden convertir una pequeña edición en muchos fragmentos nuevos
Un segmentador de tamaño fijo divide los datos en posiciones como cada 1 MiB, independientemente de lo que contengan los bytes. Cuando se insertan bytes cerca del principio, los flujos antiguo y nuevo quedan desfasados entre sí, por lo que cada fragmento fijo posterior contiene una combinación diferente de bytes, aunque casi todo el contenido subyacente siga siendo el mismo.
La segmentación definida por el contenido se desarrolló para la deduplicación porque los puntos de corte derivados del contenido detectan redundancias que los desplazamientos fijos pueden pasar por alto después de ediciones locales. La ventaja no es que CDC prediga qué archivos son similares, sino que proporciona al deduplicador una segmentación capaz de tolerar posiciones desplazadas.
Si un archivo completo se reemplaza por bytes no relacionados, ningún algoritmo de segmentación puede crear contenido duplicado de la nada. CDC resulta más útil cuando las versiones comparten grandes regiones de bytes sin cambios, pero esas regiones se han desplazado con respecto al inicio del archivo.
Una huella digital deslizante busca puntos de corte locales en el flujo de bytes
CDC desplaza una ventana por la entrada y actualiza una huella digital a medida que los bytes entran y salen de ella. Se declara un límite cuando la huella cumple una condición configurada, sujeta a reglas de tamaño mínimo y máximo que evitan fragmentos diminutos o enormes de forma anómala.
El segmentador de Borg utiliza una huella digital deslizante del contenido, por lo que evaluar el siguiente límite candidato no requiere aplicar el hash a toda la ventana desde cero. Como la huella depende de los bytes cercanos, la misma secuencia local puede activar el mismo corte incluso cuando su desplazamiento absoluto dentro del archivo ha cambiado.
Por tanto, la huella digital deslizante es un mecanismo para encontrar límites, no la identidad final de los datos almacenados de la copia de seguridad. Tratar esos dos hashes como intercambiables debilitaría la explicación de dónde decide realmente la deduplicación qué se reutiliza.
Los tamaños mínimo, máximo y medio de los fragmentos también determinan la búsqueda de límites. Controlan la frecuencia con la que se consideran cortes candidatos y la cantidad de metadatos que el repositorio debe gestionar.
CDC vuelve a sincronizarse después de una edición en lugar de permanecer desplazada indefinidamente
Después de una inserción o eliminación, la ventana deslizante ve inicialmente bytes diferentes y produce límites de fragmento distintos alrededor de la edición. Cuando avanza por completo hasta una región suficientemente larga sin cambios, puede encontrar los mismos patrones de contenido local y reanudar los cortes en posiciones alineadas con la versión anterior.
Borg señala que los límites definidos por el contenido pueden permanecer estables con respecto al contenido sin cambios incluso cuando se insertan o eliminan bytes en otro lugar. Esa resincronización es lo que limita muchas ediciones a un pequeño número de fragmentos nuevos, en lugar de invalidar el resto del archivo.
Restic también divide los archivos en blobs de longitud variable mediante una huella deslizante, de modo que los blobs de longitud variable sin cambios puedan volver a referenciarse entre instantáneas. El repositorio sigue necesitando un índice para reconocer esos blobs ya almacenados.
La distancia de resincronización depende de los parámetros de segmentación y del patrón de bytes modificados, por lo que CDC no garantiza que aparezca exactamente un fragmento nuevo por cada edición. Su ventaja es la localidad estadística: es menos probable que los cambios desplacen todos los límites posteriores.
Un identificador de fragmento sólido decide la reutilización después de elegir el límite
Encontrar un límite solo indica dónde termina un fragmento candidato; el repositorio aún debe decidir si el contenido completo del fragmento ya existe. Esta segunda decisión utiliza un identificador de contenido sólido o un hash autenticado calculado sobre el fragmento terminado, y lo busca en el índice del repositorio.
Borg separa explícitamente el hash de límites de la identidad criptográfica del fragmento utilizada como criterio de deduplicación. Del mismo modo, Restic referencia los blobs almacenados mediante un hash de contenido sólido, en lugar de tratar la huella deslizante como prueba de que dos fragmentos son idénticos.
Este diseño en dos etapas explica claramente el proceso de almacenamiento: el hash deslizante elige la segmentación candidata; el hash de contenido identifica el fragmento resultante; la búsqueda en el repositorio decide si se almacena o se reutiliza. El ahorro por deduplicación solo se produce en las dos últimas etapas, aunque CDC hace que esas coincidencias tengan muchas más probabilidades de sobrevivir a las ediciones.
El tamaño de los fragmentos y la transformación de los datos determinan el equilibrio entre cómputo y ahorro
Los fragmentos medios más pequeños aíslan los cambios con mayor precisión, pero aumentan el número de huellas digitales, entradas de índice, búsquedas, objetos de metadatos y referencias de almacenamiento. Los fragmentos más grandes reducen la sobrecarga de indexación, pero permiten que una pequeña edición invalide una unidad mayor de datos reutilizables.
FastCDC se centra en reducir la sobrecarga de CPU del hash deslizante sin perder una detección sólida de redundancias, lo que demuestra que la propia segmentación puede convertirse en un coste importante antes de eliminar cualquier byte duplicado. Los mejores parámetros equilibran el trabajo de segmentación, el tamaño del índice y el patrón de similitud del conjunto de copias de seguridad.
La transformación previa a la segmentación también puede eliminar la similitud de bytes de la que depende CDC. El cifrado con diferentes valores nonce, los formatos que reescriben la mayor parte de un archivo después de un pequeño cambio lógico o ciertos esquemas de compresión pueden hacer que dos versiones lógicamente similares parezcan no relacionadas a nivel de bytes.
El análisis de ZimaSpace sobre la sobrecarga de memoria del índice de deduplicación aborda el otro lado de este equilibrio: una reutilización más precisa requiere más metadatos y memoria para realizar el seguimiento de lo que ya existe. CDC resulta valiosa cuando el almacenamiento recuperado supera ese coste adicional de segmentación e indexación, no simplemente porque los fragmentos de tamaño variable parezcan más sofisticados.
Centro de Tecnología e IA
Más para leer

¿Qué es el estado de Plex y qué partes deben persistir?
El estado persistente de Plex es la información que conserva la experiencia del servidor entre reinicios y reconstrucciones; los datos multimedia y los datos...

¿Cómo gestiona Plex la autenticación entre sesiones locales y remotas?
La autenticación de Plex comienza con la identidad del servidor y de la cuenta; después, las rutas de red locales o remotas determinan la...

¿Por qué puede ralentizarse la búsqueda en Plex a medida que crecen los datos de la biblioteca?
El crecimiento de la biblioteca por sí solo no es el diagnóstico. Comprueba la estructura de las consultas, los índices, el estado de la...

