No tengo experiencia con btrfs, pero se anuncia que puede desduplicar archivos.
En mi aplicación, necesitaría duplicar árboles de directorios completos.
Por lo que aprendí, btrfs solo se desduplica en algunas exploraciones posteriores, no de inmediato. Incluso el solo uso cpno parece desencadenar ninguna desduplicación (al menos, dfmuestra un mayor uso del disco en el tamaño de los archivos copiados).
¿Puedo evitar mover datos por completo y decirle btrfsdirectamente que duplique un archivo en otra ubicación, esencialmente solo clonando sus metadatos?
En esencia, similar a un enlace duro, pero con metadatos independientes (permisos, tiempos de modificación, ...).
cp
file-copy
btrfs
deduplication
Udo G
fuente
fuente

cp --reflink=always.cp --reflink=always, el resultado desde la perspectiva del usuario será dos archivos completamente independientes en todos los sentidos. El hecho de que el sistema de archivos subyacente está abstrayendo eso a través de copia en escritura es solo un detalle de implementación. No obtienes "un enlace duro, pero con metadatos independientes". Que yo sepa, btrfs todavía no realiza ninguna deduplicación automática. Creo que es un plan de futuro, pero no soy positivo al respecto.Respuestas:
Hay dos opciones:
cp --reflink=alwayscp --reflink=autoEl segundo es casi siempre preferible al primero. Usar
autosignifica que recurrirá a hacer una copia verdadera si el sistema de archivos no admite el reenlace (por ejemplo, ext4 o copiar a un recurso compartido NFS). Con la primera opción, estoy bastante seguro de que fallará por completo y dejará de copiar.Si está utilizando esto como parte de un script que necesita ser robusto frente a condiciones no ideales,
autole servirá mejor.fuente
eestradaque alguien me ha preguntado eso.