Non ho esperienza con btrfs, ma è pubblicizzato per poter
deduplicare i file.
Nella mia applicazione, dovrei duplicare interi alberi di directory.
Da quanto ho appreso, btrfs si deduplica solo in alcune scansioni successive, non
immediatamente. Anche solo usando cp
non sembra attivare alcuna
deduplicazione (almeno, df
mostra un maggiore utilizzo del disco nella
dimensione dei file copiati).
Posso evitare di spostare del tutto i dati e dire a btrfs
direttamente per
duplicare un file in un'altra posizione, essenzialmente semplicemente clonando i suoi
metadati?
In sostanza, simile a un hardlink, ma con metadati indipendenti
(autorizzazioni, tempi mod., …).
Risposta accettata:
Ci sono due opzioni:
cp --reflink=always
cp --reflink=auto
La seconda è quasi sempre preferibile alla prima. Usando auto
significa che tornerà a eseguire una copia vera se il file system non supporta il reflinking (ad esempio, ext4 o la copia su una condivisione NFS). Con la prima opzione, sono abbastanza sicuro che fallirà e smetterà di copiare.
Se lo stai usando come parte di uno script che deve essere robusto di fronte a condizioni non ideali, auto
servirà il tuo meglio.