我刚刚将 1TB 的文件(不计其数)从一个外部 USB 磁盘复制到另一个外部 USB 磁盘,在 5GBPS USB 上花费了 2 天的时间。
我用过rsync。
rsync 在我看来是串行的,我的意思是,一次一个文件。
通过查看活动监视器的磁盘选项卡上的流量和活动,我已经确认这一点相对较低。
是否有一些终端应用程序或一些技巧可以用来一次复制多个文件并加快进程?
答案1
如果你这样做
ps -ef | grep 'rsync' | grep -v 'grep'
你应该看到这样的东西:
root 7520 7514 12 20:50 pts/0 00:05:46 rsync --checksum --one-file-system --recursive --outbuf=Line --links --perms --times --group --owner --devices --specials --verbose --out-format=%t|%i|%M|%b|%f| --delete-delay --whole-file --human-readable --protect-args --ignore-errors --msgs2stderr ./ /DB001_F7/
root 7514 7512 0 20:50 pts/0 00:00:25 rsync --checksum --one-file-system --recursive --outbuf=Line --links --perms --times --group --owner --devices --specials --verbose --out-format=%t|%i|%M|%b|%f| --delete-delay --whole-file --human-readable --protect-args --ignore-errors --msgs2stderr ./ /DB001_F7/
root 7512 1 17 20:50 pts/0 00:08:27 rsync --checksum --one-file-system --recursive --outbuf=Line --links --perms --times --group --owner --devices --specials --verbose --out-format=%t|%i|%M|%b|%f| --delete-delay --whole-file --human-readable --protect-args --ignore-errors --msgs2stderr ./ /DB001_F7/"
换句话说,同步有 3 个并行运行的进程用于文件复制,如果您有 4 个以上的 CPU(我的核心中拥有的 CPU),则可能会更多。
正如 Kefka 所说,压缩选项可能会强制将备份数据序列化为单个数据流,除了压缩的 CPU 利用率之外,这也会减慢速度。
为了时间消耗,有几种模式可以改变行为。具体来说,如果您正在使用--校验和对于每次备份,250 GB 分区的备份时间最多需要 2.5 小时,而我所说的更新(与上次完整备份相比的累积增量)则需要 15-20 分钟。由于数据量巨大,在没有 --checksum 的情况下执行完整映像复制(空目标目录;复制所有内容)大约需要 1-1.5 小时。
我自己的备份设备是通过USB还有 WD 4TB MyBook。我不得不调整幼虫因为我的物理配置。如果 USB 速度比预期慢,您自己的硬件配置可能也需要调整。这就是我所拥有的:
# quirk specification is to suppress UAS for external USB3 drive operating on USB2 channel.
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash scsi_mod.use_blk_mq=1 usb-storage.quirks=1058:25ee:u ipv6.disable=1"
如果您不确定使用 USB 驱动器对性能有何影响,您可以尝试首先使用 tar 命令将 ISO 映像从内部硬盘移动到内部硬盘上的另一个位置,然后将相同的 ISO 打包到 USB 驱动器上的某个位置看看速度是否有很大差异。使用前后的 date 命令来了解两种情况的时间使用情况。然后尝试使用正常选项对同一个 ISO 映像进行 rsync,并查看完成到 USB 传输的时间是否有很大差异。
我会尝试使用单个 ISO 进行 rsync,为您的 rsync 提供几个不同的选项,直到您找到最适合您的选项,平衡目的地数据的完整性以及使用 rsync 进行备份的作业持续时间。只有找到最佳组合后,您才可以继续进行目录、磁盘或系统备份,此时您可以确保传输按预期完成。