Não tenho experiência com btrfs, mas é anunciado que é possível desduplicar arquivos.
No meu aplicativo, eu precisaria duplicar árvores de diretório inteiro.
Pelo que aprendi, o btrfs apenas desduplica em algumas postagens, não imediatamente. Mesmo o uso cp
não parece desencadear nenhuma deduplicação (pelo menos, df
mostra um aumento no uso do disco no tamanho dos arquivos copiados).
Posso evitar mover dados completamente e dizer btrfs
diretamente para duplicar um arquivo em outro local, basicamente apenas clonando seus metadados?
Em essência, semelhante a um hardlink, mas com metadados independentes (permissões, tempos de modificação, ...).
cp
file-copy
btrfs
deduplication
Udo G
fonte
fonte
cp --reflink=always
.cp --reflink=always
, o resultado da perspectiva do usuário será dois arquivos completamente independentes em todos os aspectos. O fato de o sistema de arquivos subjacente estar abstraindo que via cópia na gravação é apenas um detalhe de implementação. Você não recebe "um link físico, mas com metadados independentes". Que eu saiba, o btrfs ainda não faz deduplicação automática. Eu acho que é um plano futuro, mas não sou positivo nisso.Respostas:
Existem duas opções:
cp --reflink=always
cp --reflink=auto
O segundo é quase sempre preferível ao primeiro. Usar
auto
significa que ele fará uma cópia verdadeira se o sistema de arquivos não suportar refluxo (por exemplo, ext4 ou copiar para um compartilhamento NFS). Com a primeira opção, tenho certeza de que falhará completamente e parará de copiar.Se você estiver usando isso como parte de um script que precisa ser robusto diante de condições não ideais,
auto
servirá melhor.fonte
eestrada
que alguém já me perguntou isso.