Я пытаюсь 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
Я убил его, увидев, сколько было передано.
Просто чтобы расширить мой комментарий выше, это произойдет при двух обстоятельствах, о которых я могу думать:
, используемое
, невелико, но rsync
по-прежнему должен читать все логические данные (несжатые, неповрежденные, без обмена снимками), потому что он понятия не имеет об этих функциях. Вы можете выяснить, сколько там логических данных, запустив zfs list -o logicused
(или logicalreferenced
, если у вас есть снимки состояния). rsync
отправляет все незаписанные блоки вашего тома, даже если они все обнулены (потому что они никогда не записывались в ). Попробуйте использовать аргумент - sparse
для rsync
, как описано в этот ответ , чтобы обойти это поведение, а затем используйте - in- поместите
для последующих синхронизаций, чтобы избежать повторной синхронизации всего файла, а не только измененных частей.