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 cp
no parece desencadenar ninguna desduplicación (al menos, df
muestra un mayor uso del disco en el tamaño de los archivos copiados).
¿Puedo evitar mover datos por completo y decirle btrfs
directamente 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=always
cp --reflink=auto
El segundo es casi siempre preferible al primero. Usar
auto
significa 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,
auto
le servirá mejor.fuente
eestrada
que alguien me ha preguntado eso.