磁盘克隆:是否可以加快整个过程?

Wom*_*baT 0 linux usb hard-drive disk-cloning

我有两个相同的 USB 3.0 硬盘 (750GB)。其中一个是空的,我想将它用作第一个磁盘的镜像(作为备份)。

两个磁盘都连接到 USB 3.0 端口,并且在测试中读写速度都非常好(读取速度最高约 110MB/s,最低约 60MB/s,写入最高约 100MB/s,最低约 55MB/s)。

我试着用 dd 工具来做,像这样:

dd if=/dev/sdc | pv | dd of=/dev/sdd
Run Code Online (Sandbox Code Playgroud)

最大速度不超过 20MB/s。是否有可能以某种方式加速它?

Hen*_*nes 5

添加块大小可能会加快速度。例如dd if=/dev/sdc bs=1M

究竟要使用什么 bs 很难预测,但默认值似乎是 512 字节,这意味着您正在 750x1024x1024x2 卡盘中传输 750GiB。如果您使用 1M 作为块大小,那么这会将卡盘(和系统调用)的数量减少 2048 次。这消除了很多开销。

使用 dd 和 SAS 以及 SATA 连接的磁盘进行的测试显示,从 512 字节到 4K 有很大的增加,但之后的增加要小得多。

其次:两个磁盘是否连接到同一个 USB3 控制器?然后您将共享 USB 控制器带宽。两个不同的 USB 控制器应该加快速度。(请注意,我写的是控制器而不是 USB 端口。一个控制器通常控制多个端口)。

请注意:USB2 的存档速度通常高达 30 或 35MB/秒。您可以尝试将其中一个磁盘移至 USB 2 连接器,而将另一个磁盘留在 USB 3 端口上。假设 USB3 端口没有(内部)带宽来支持两个通道,这可能会使您的速度加倍。(除了通过设置块大小获得的提升之外)。

第三:“镜像”一词的使用有点令人困惑。大多数时候“镜像”指的是RAID-1,并且可以在 RAID-1 镜像中使用两个 USB 磁盘。这样他们总是得到相同的内容。这也意味着删除某些内容会将其从两个驱动器中删除。