Несоответствие размера пула ZFS после rsync-ing

Я пытаюсь rsync передать один из томов в пуле ZFS на диск, отформатированный в exfat. Объем составляет всего 1,3 ТБ, но rsync позволяет синхронизировать данные объемом более 3 ТБ. Я отключил rsync , чтобы понять, что не так.

Пул 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  -

Тома и их точки монтирования:

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

Размер на диске / backup / vol1 :

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

Сколько данных было скопировано после выполнения rsync в течение пары дней:

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

Я убил его, увидев, сколько было передано.

1
задан 6 November 2018 в 04:58
1 ответ

Просто чтобы расширить мой комментарий выше, это произойдет при двух обстоятельствах, о которых я могу думать:

  • Файлы / тома, которые вы отправляете, используют методы сохранения блоков (сжатие, дедупликация , или снимки / клоны). ZFS сэкономила вам внутреннее пространство, поэтому свойство ZFS , используемое , невелико, но rsync по-прежнему должен читать все логические данные (несжатые, неповрежденные, без обмена снимками), потому что он понятия не имеет об этих функциях. Вы можете выяснить, сколько там логических данных, запустив zfs list -o logicused (или logicalreferenced , если у вас есть снимки состояния).
  • Файлы / тома, которые вы пытаетесь сохранить отправка редки. Из вашего комментария выше, я полагаю, что это именно тот случай, в котором вы находитесь. rsync отправляет все незаписанные блоки вашего тома, даже если они все обнулены (потому что они никогда не записывались в ). Попробуйте использовать аргумент - sparse для rsync , как описано в этот ответ , чтобы обойти это поведение, а затем используйте - in- поместите для последующих синхронизаций, чтобы избежать повторной синхронизации всего файла, а не только измененных частей.
0
ответ дан 4 December 2019 в 03:34

Теги

Похожие вопросы