Como duplicar um arquivo sem copiar seus dados com o btrfs?

13

Eu não tenho experiência com o btrfs, mas é anunciado para poder desduplicar arquivos.

No meu aplicativo, eu precisaria duplicar árvores inteiras de diretório.

Pelo que aprendi, o btrfs apenas desduplica em alguma verificação de post, não imediatamente. Mesmo usando apenas cp parece não acionar qualquer desduplicação (pelo menos, df mostra um uso de disco aumentado no tamanho dos arquivos copiados).

Posso evitar a movimentação completa de dados e dizer btrfs diretamente para duplicar um arquivo em outro local, basicamente clonando sua metadados?

Em essência, semelhante a um link físico, mas com metadados independentes (permissões, mod. vezes, ...).

    
por Udo G 16.12.2015 / 18:26

1 resposta

9

Existem duas opções:

  1. cp --reflink=always
  2. cp --reflink=auto

O segundo é quase sempre preferível ao primeiro. Usar auto significa que o fallback fará uma cópia verdadeira se o sistema de arquivos não suportar o recurso de reflingir (por exemplo, ext4 ou copiar para um compartilhamento NFS). Com a primeira opção, tenho certeza de que isso falhará e parará de copiar.

Se você estiver usando isso como parte de um script que precisa ser robusto em face de condições não ideais, auto servirá o seu melhor.

    
por 20.12.2015 / 03:20