为什么 DD 需要这么长时间?

为什么 DD 需要这么长时间?

背景:
我有一个 8 磁盘网络附加存储设备。我一直遇到硬盘经常出现故障的问题。我弄清楚了问题所在:Seagate 硬盘与我的 QNAP 不兼容,存在固件问题。所以我需要更新 8 个硬盘中的每一个的固件。每个硬盘的大小都是 3TB。以前,当一个硬盘出现故障时,我会告诉 NAS 重建它(因为我使用了 RAID 5),这需要大约 42-44 小时才能完成。

当前问题:
我正在使用 DD 捕获其中一个 3TB 硬盘的映像。它通过 eSATA 插入我的另一台笔记本电脑,而我正在写入的驱动器位于 USB 3.0 连接上。当我第一次启动映像时,我做了计算以计算出完成需要多少时间。我的计算基于 DD 运行的时间(通过 PS)和写入的数据量(通过 LS),看起来是一样的(42-44 小时)。然而,这个过程已经持续了将近一周。按照它实际的速度(实时),需要整整一周(精确到 7 天)才能完成。

再次检查:
目前,我们正处于 DD 运行的第 6d 阶段。当我输入时,ps -ef | fgrep DISK1我得到了以下内容:

root 6444 6388 36 Jan12 pts/0 2-04:54:14 dd if=/dev/sde of=/media/4TB/DISK1.raw

PS 声称这只运行了 2 天 4 小时,但实际上它已经运行了 6 天多。

我的问题:
这是为什么?我该如何解决?这可能是多线程问题(或者我的意思是缺乏多线程)?我确实发现当我关闭笔记本电脑的盖子时,Ubuntu 会暂停操作系统,所以我在过程的早期就改变了这一点,所以现在它不会进入睡眠状态,但它仍然需要“很长时间”。

答案1

我在研究我自己的 Seagate HDD 的替代方案时发现了这个 QA。您已经拥有pv,其操作方式类似于cat进度报告的额外奖励。catdd。即使采用最佳块大小ddcat速度也快 30MB/秒以上。

我正在pv /dev/sdd > /dev/sdc运行,它的速度从 170MB/秒到 195MB/秒不等。在我的 3TB 驱动器上,这应该是 4.3 小时。同时,我cat /dev/sdb > /dev/sda在另一个终端中运行。当我通过查询它的速度时cat /proc/[pid]/io,我计算出它大约是 180MB/秒。

此同步克隆使用 JBoD 模式下的主板 RAID 进行。

相关内容