Discrepância no tamanho do pool do ZFS após o rsync-ing

1

Estou tentando rsync data um dos volumes em um pool do ZFS para uma unidade formatada com o formato exfat. O volume é de apenas 1,3 TB, mas o rsync conseguiu sincronizar 3+ TB de dados. Eu matei o rsync para poder descobrir o que está errado.

O pool do ZFS:

ubuntu@ubuntu:~$ zpool list
NAME     SIZE  ALLOC   FREE  EXPANDSZ   FRAG    CAP  DEDUP  HEALTH  ALTROOT
backup  7.25T  3.59T  3.66T         -     0%    49%  1.00x  ONLINE  -

Os volumes e seus pontos de montagem:

ubuntu@ubuntu:~$ zfs list
NAME                                                      USED  AVAIL  REFER  MOUNTPOINT
backup                                                   2.61T  2.49T  35.4M  /backup
backup/.system                                           1.97M  2.49T   140K  legacy
backup/.system/configs-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx   593K  2.49T   593K  legacy
backup/.system/cores                                      692K  2.49T   692K  legacy
backup/.system/rrd-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx       128K  2.49T   128K  legacy
backup/.system/samba4                                     337K  2.49T   337K  legacy
backup/.system/syslog-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx    128K  2.49T   128K  legacy
backup/vol1                                              1.26T  2.49T  1.26T  /backup/vol1
backup/vol2                                               128K  2.49T   128K  /backup/vol2
backup/vol3                                              1.78G  2.49T  1.78G  /backup/vol3
backup/vol4                                              1.34T  2.49T  1.34T  /backup/vol4
backup/vol5                                              4.51G  2.49T  4.51G  /backup/vol5

O tamanho no disco de /backup/vol1 :

ubuntu@ubuntu:~$ du -sh /backup/vol1
1.3T    /backup/vol1

Quantos dados foram copiados depois de fazer um rsync por alguns dias:

ubuntu@ubuntu:~$ rsync -avzh --progress --no-o --no-g /backup/vol1 /media/ubuntu/external_drive/freenas/
...
...
ubuntu@ubuntu:~$ du -sh /media/ubuntu/external_drive/freenas/vol1
3.2T    /media/ubuntu/external_drive/freenas/vol1

Eu matei depois de ver quanto foi transferido.

    
por IMTheNachoMan 06.11.2018 / 03:58

1 resposta

0

Só para expandir meu comentário acima, isso acontecerá em duas circunstâncias em que posso pensar:

  • Os arquivos / volumes que você está enviando estão usando técnicas de economia de bloco (compactação, desduplicação ou instantâneos / clones). O ZFS economizou algum espaço internamente, portanto, a propriedade ZFS used é pequena, mas rsync ainda precisa ler todos os dados lógicos (descompactados, não editados, sem compartilhamento de instantâneos) porque não tem idéia sobre esses recursos. Você pode descobrir quantos dados lógicos existem executando zfs list -o logicalused (ou logicalreferenced se você tiver instantâneos).
  • Os arquivos / volumes que você está tentando enviar são escassos. De seu comentário acima, acredito que este é o caso em que você está. rsync está enviando todos os blocos não escritos de seu volume, mesmo que estejam todos zerados (porque nunca foram gravados). Tente usar o argumento --sparse para rsync , conforme descrito em this answer , para contornar esse comportamento e, em seguida, usando --in-place para sincronizações subsequentes para evitar a nova sincronização do arquivo inteiro, em vez de apenas as partes que foram alteradas.
por 07.11.2018 / 01:44