在 SMR 驱动器(叠瓦式驱动器)上运行时,如何提高 rsync 的性能?

use*_*830 5 performance hard-drive rsync filesystems external-hard-drive

当与 SMR 驱动器同步rsync或从 SMR 驱动器同步时,性能会降至最低 3 至 5 mb/s,并伴有明显的磁头飞行噪音。

\n\n

rsync如果只读取 SMR 驱动器,这是特别意外的。读取以叠瓦方式写入的数据在性能上应与 PMR 驱动器(垂直磁记录驱动器)相当。

\n\n

任何流行的文件系统似乎都表现出类似的行为。

\n\n

可以采取什么措施来提高rsyncSMR 驱动器(叠瓦式驱动器)的性能?

\n

use*_*830 2

如果您rsync 来自SMR 驱动器,请确保文件系统已安装read-only或带有noatime选项。

否则,SMR 驱动器需要为每个文件 rsync 读取写入时间戳,从而导致性能显着下降(从大约 80 mb/s 降至此处的 3-5 mb/s)和磁头磨损/点击噪音。

如果您已经有一个运行性能不佳的 rsync 作业,则无需停止它,您可以重新挂载源文件系统

sudo mount -o remount,ro  /path/to/source/fs
Run Code Online (Sandbox Code Playgroud)

效果不会立即显现,请耐心等待 10 到 20 分钟,直到驱动器完成写出仍在缓冲区中的所有数据。这个建议经过尝试和测试没问题。


这也可能适用rsync于SMR驱动器,即文件系统在文件完全写入磁盘后尝试更新时间戳。这会扰乱顺序工作负载,并且大量数据会不断重写,从而导致驱动器磨损。以下内容可能会有所帮助:

sudo mount -t fs_type -o rw,noatime device /path/to/dest/fs
Run Code Online (Sandbox Code Playgroud)

这必须在 rsync 运行之前完成;其他因素可能会使此选项变得无关紧要,即无缓冲的 FAT/MFT 更新、并行写入(如果文件系统主要针对 SSD 进行优化)等。


如果您无论如何都想备份完整的文件系统,请尝试使用dd bs=32MSMR 目标上的文件系统,然后调整其大小(在这种情况下无需安装它并运行 rsync 来传输每个文件)。


这里使用的示例硬件是希捷驱动器管理的 SMR 8tb 消费类驱动器。您的里程可能会因其他硬件而异。