filesystems – ¿Cómo encaja la deduplicación a nivel de bloque de ZFS con el tamaño de bloque variable?

Pregunta:

Según el primer resultado de Google para la "deduplicación de ZFS"


¿Qué deduplicar: archivos, bloques o bytes?

La deduplicación a nivel de bloque tiene una sobrecarga algo mayor que la deduplicación a nivel de archivo cuando se duplican archivos completos, pero a diferencia de la deduplicación a nivel de archivo, maneja muy bien los datos a nivel de bloque, como las imágenes de máquinas virtuales.

ZFS proporciona deduplicación a nivel de bloque

Según el artículo ZFS de Wikipedia

ZFS utiliza bloques de tamaño variable de hasta 128 kilobytes. El código disponible actualmente permite al administrador ajustar el tamaño máximo de bloque utilizado, ya que ciertas cargas de trabajo no funcionan bien con bloques grandes. Si la compresión de datos (LZJB) está habilitada, se utilizan tamaños de bloque variables. Si un bloque se puede comprimir para que quepa en un tamaño de bloque más pequeño, el tamaño más pequeño se usa en el disco para usar menos almacenamiento y mejorar el rendimiento de E / S (aunque a costa de un mayor uso de la CPU para las operaciones de compresión y descompresión).

Quiero asegurarme de que entiendo esto correctamente.

Suponiendo que la compresión está desactivada

Si escribo un archivo de 1 GB lleno aleatoriamente, escribo un segundo archivo que es el mismo, excepto que a la mitad, cambio uno de los bytes. ¿Se deduplicará ese archivo (todos excepto el bloque del byte cambiado?)

Si escribo un archivo de un solo byte, ¿tomará 128 kilobytes completos? Si no es así, ¿se agrandarán los bloques en caso de que el archivo se alargue?

Si un archivo toma dos bloques de 64 kilobytes (¿sucedería esto alguna vez?), Entonces se deduciría un archivo idéntico después de tomar un solo bloque de 128 kilobytes

Si un archivo se acorta, entonces parte de su bloque se habría ignorado, quizás los datos no se restablecerían a 0x00 bytes. ¿Se deduciría la mitad de un bloque usado?

Respuesta:

La deduplicación de ZFS funciona en bloques (longitud de registro) que no conoce / no se preocupa por los archivos. Cada bloque se suma de verificación usando sha256 (por defecto modificable). Si la suma de comprobación coincide con otro bloque, solo hará referencia al mismo registro y no se escribirán nuevos datos. Un problema de la deduplicación con ZFS es que las sumas de comprobación se mantienen en la memoria, por lo que los grupos grandes requerirán mucha memoria. Por lo tanto, solo debe aplicar la duplicación cuando utilice una longitud de registro grande

Suponiendo una longitud de registro 128k

Si escribo un archivo de 1 GB lleno aleatoriamente, escribo un segundo archivo que es el mismo, excepto que a la mitad, cambio uno de los bytes. ¿Se deduplicará ese archivo (todos excepto el bloque del byte cambiado?)

Sí, solo no se duplicará un bloque.

Si escribo un archivo de un solo byte, ¿tomará 128 kilobytes completos? Si no es así, ¿se agrandarán los bloques en caso de que el archivo se alargue?

Se asignarán 128k, si el tamaño del archivo supera los 128k, se asignarán más bloques según sea necesario.

Si un archivo toma dos bloques de 64 kilobytes (¿sucedería esto alguna vez?), Entonces se deduciría un archivo idéntico después de tomar un solo bloque de 128 kilobytes

Un archivo ocupará 128k y se deduplicará el mismo archivo

Si un archivo se acorta, entonces parte de su bloque se habría ignorado, quizás los datos no se restablecerían a 0x00 bytes. ¿Se deduciría la mitad de un bloque usado?

Si se encuentra exactamente el mismo bloque, sí

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım