Mi desafío es almacenar tantos volcados de mysql como sea posible en un grupo de ZFS dado.
La piscina en sí tiene dedup y compresión habilitados . Para almacenar múltiples versiones de los volcados se utilizan instantáneas (cada 15 minutos, cada hora, cada día, cada semana y cada mes).
La mayoría de las tablas en las diferentes bases de datos en el servidor MySQL están creciendo y no cambian muy a menudo. Mi pensamiento fue hacer un volcado por tabla en lugar de por base de datos para dar a zfs la oportunidad de realizar una dedicación a nivel de bloque.
 El script de copia de seguridad usa la salida de mysqldump y la canaliza a un archivo (con mysqldmup -u$user -p$pass $db $table > $outputfile.sql
- ¿Es posible que ZFS dedup deduzca un flujo de la salida estándar a una buena tasa?
- ¿Debe configurarse manualmente el tamaño de bloque del datased de destino? (y en caso afirmativo, ¿de qué tamaño?)
- ¿Debería aplicarse algún tipo de búfer de salida (aparte del búfer de línea)?
- ¿Son las escrituras de una sincronización de redirección o asíncronas?
EDITAR para concretarlo: ¿Qué es necesario para hacer un archivo escrito línea por línea, como un archivo que se copió si el contenido (casi [por ejemplo, solo la última línea difiere]) es el mismo?

zfs set sync=disabled poolnameRespuestas:
La deduplicación siempre está en el nivel de bloque (al igual que las instantáneas y la copia), la estructura de los datos anteriores no importa. Por lo tanto, podría tener un solo archivo en lugar de miles de archivos pequeños y no haría una diferencia en lo que respecta a la deduplicación.
Por otro lado, su tamaño de bloque sí hace una diferencia, debido a varias razones:
El tamaño es por lo tanto importante, pero también no tan fácil . Parece que ya tienes suficientes datos, así que solo lo probaría: crea dos sistemas de archivos (si es posible después y no simultáneamente para minimizar el efecto entre ellos), uno con un tamaño de bloque muy pequeño (4K), uno con un tamaño muy grande (128K) y luego copie sus datos y compare los resultados. También puede simular el rendimiento de deduplicación con
zdb -b poolnamecomparando ambos recuentos de bloques y luego calculando sus ahorros. Si ninguno de esos resultados te parece bien, prueba diferentes tamaños como 16K, 32K o 64K.fuente
mysqldump --databaseque produjo un archivo por base de datos y causó un índice de deducción muy malo (1.12). Solo los cambios marginales en la longitud de una tabla cambiaron todos los siguientes bloques en el archivo de respaldo.When a file is written, the data is compressed, encrypted, and the checksum is verified. Then, the data is deduplicated, if possible.. Si el ARCHIVO se comprime primero, los bloques de datos subsiguientes cambiarán si solo se hacen pequeños cambios. ¿Es esto (todavía) cierto?