背景:
我有一个 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
进度报告的额外奖励。cat
比dd
。即使采用最佳块大小dd
,cat
速度也快 30MB/秒以上。
我正在pv /dev/sdd > /dev/sdc
运行,它的速度从 170MB/秒到 195MB/秒不等。在我的 3TB 驱动器上,这应该是 4.3 小时。同时,我cat /dev/sdb > /dev/sda
在另一个终端中运行。当我通过查询它的速度时cat /proc/[pid]/io
,我计算出它大约是 180MB/秒。
此同步克隆使用 JBoD 模式下的主板 RAID 进行。