我正在尝试将rsync
ZFS 池中的一个卷数据传输到 exfat 格式的驱动器。该卷只有 1.3 TB,但rsync
可以同步 3+ TB 的数据。我杀了那个,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
在看到转移了多少后,我将其杀死。
只是为了扩展我上面的评论,这将在我能想到的两种情况下发生:
used
很小,但rsync
仍然必须读取所有逻辑(未压缩、未重复数据、未快照共享)数据,因为它不知道这些功能。zfs list -o logicalused
您可以通过运行(或者logicalreferenced
如果您有快照)来计算出有多少逻辑数据。rsync
正在发送您卷中所有未写入的块,即使它们都已清零(因为它们从未被写入)。尝试使用--sparse
to 的参数rsync
(如本答案中所述)来解决此问题,然后--in-place
用于后续同步以避免重新同步整个文件,而不仅仅是重新同步已更改的部分。