O delta no local escreve de um cano

2

Estou procurando uma maneira de substituir apenas as partes de um arquivo que diferem do que deveria ser gravado nele, para que o arquivo seja alterado com a menor quantidade possível de gravações no disco.

Meu plano é fazer um pouco de desduplicação enquanto eu estou fazendo o backup de minha partição NTFS em um arquivo de imagem fazendo com que esse arquivo de imagem seja uma cópia de uma imagem de backup anterior em um BTRFS. (Pense nisso como um hardlink que você pode escrever sem alterar o arquivo original)

Estou preenchendo as partes não usadas da minha partição NTFS com zeros, canalizando partclone para si mesmo, portanto, a entrada é um canal em vez de um dispositivo.
Pense nisso como

cat /dev/sda4 | command -i - -o newbackup.img

onde command é o que eu estou procurando e newbackup.img é um arquivo que já contém 894GiB de dados que é praticamente o mesmo que a entrada, mas o uso real do disco do arquivo de imagem é igual à quantidade de blocos que são sobrescritos.

rsync pode fazer isso com os parâmetros --no-whole-file --inplace (IIRC) graças à sua transferência delta, mas é desnecessariamente lento (não lê entrada e saída simultaneamente, processa os deltas em um único encadeamento e geralmente é muito tempo ineficiente) e rsync também não funciona com canos (que eu saiba), então está fora de questão.

    
por Atemu 16.09.2018 / 00:27

0 respostas