我有一台 qnap ts-1679u-rp 在 RAID 6 上运行。它有 2 个磁盘错误。因此,我用相同型号和容量的新磁盘替换了 2 个磁盘(磁盘 3 和磁盘 13)。
重建失败。1
. 我尝试放回旧磁盘,但我忘记了顺序。所以我无论如何将它插入(磁盘 3 和磁盘 13)。2
. 启动失败。3
. 我交换了位置并重试。启动失败。4
. 我将 VGA 连接到 QNAP 以查看控制台屏幕。5
. 它说无法连接,因为磁盘 6 读取错误。6
. 我试图拔出所有 3 个磁盘(磁盘 3、磁盘 13、磁盘 6)。它启动了,并且 Web 界面终于可用,但无法识别磁盘格式。我无法访问我的磁盘。7
. 通电后,我推入磁盘 3、磁盘 13、磁盘 6。它仍然无法访问我的磁盘。
我猜我的 RAID 配置搞乱了。我会丢失数据吗?如何从此故障中恢复?
总共有 16 个磁盘。我将所有 16 个磁盘用于 RAID 6。16x4TB。
答案1
对于 RAID 阵列而言,如果您无法让其自行重建,那么您就完蛋了。听起来磁盘 6 也可能出现故障。丢失三个磁盘(即使 RAID 控制器产生了丢失的幻觉),您的数据几乎就没了。
我看到你没有备份。太糟糕了。但是,在你的职业生涯的剩余时间里,我想你可能会开始正确使用 RAID。它有很多用途——一种分配工作负载以提高性能的方法,以及一种减少故障对运营的直接影响的方法,否则需要从备份中恢复。它甚至可以用于在发生故障时限制数据丢失,短期(即少于备份间隔)。但是,RAID 是不是:
- 备份的替代品。 您可能会遇到严重的磁盘故障或 RAID 控制器发生故障,或者您的数据可能由于软件或自然因素造成的无数其他原因而丢失。
- 忽略磁盘故障的许可证或者使用可疑磁盘。当您怀疑磁盘故障时,必须立即纠正。
将来设计 RAID 阵列时,您应该非常仔细地考虑在纠正之前发生灾难性故障的几率。对于由两个磁盘组成的 RAID 1 阵列,它们同时发生故障的几率非常低,但在您的设置中,16 个磁盘中只有 3 个(19%)必须发生故障。基本概率表明该阵列很脆弱。使用磁盘数量较少或可容忍故障数量较多的阵列。多个卷可能会有所帮助;使用复合级别(如 RAID 10 和 RAID 60)聚合 RAID 卷。RAID 60 阵列最多可容忍 4 次故障(其中一半最多可容忍 2 次故障),您很可能不会有事。
稍微扩展一下这个概念,当您使用 RAID 时,请考虑使用热备件。热备件非常棒,因为阵列可以立即开始重建,并更快地摆脱降级状态。它们基本上将磁盘添加到阵列的容错能力中,只要故障不是紧密聚集在一起以致于无法及时重建。
另外,请考虑阵列重建所需的时间。复制 4TB 磁盘需要一段时间,这也是磁盘阵列通常采用比 4TB 更小的磁盘构建的原因之一(还有其他原因)。
最后:
- 使用高质量磁盘。如果有报价,请查看 MTTF。使用企业级产品。高价是有原因的。避免使用过度循环以节省电力或类似情况的“绿色”产品。
- 标记磁盘。这样,你就不会忘记它们的顺序了。
希望这堂课不是太贵。
答案2
幸运的是,我成功恢复了数据。具体方法如下:
- 我输入了命令
vi /etc/raidtab
来查看磁盘顺序。我设法将磁盘顺序调回到磁盘 3 和磁盘 13 - 错误是
[ 984.796055] ata1.00: cmd 25/00:20:60:04:5a/00:00:5a:00:00/e0 tag 2 dma 16384 in [ 984.796055] res 40/00:01:00:00:00/00:00:00:00:00/00 Emask 0x14 (ATA bus error) [ 984.796058] ata1.00: status: { DRDY } [ 984.796066] ata1.00: hard resetting link [ 985.520017] ata1.01: hard resetting link [ 985.996057] ata1.00: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 985.996068] ata1.01: SATA link down (SStatus 4 SControl 300) [ 986.012323] ata1.00: configured for UDMA/133 [ 986.012331] ata1.00: device reported invalid CHS sector 0 [ 986.012340] ata1: EH complete
Drive 6 在设置链接时出现问题。所以我怀疑链接松了。所以我稍微用力推了一下驱动器,然后重试。有趣的是,这次链接成功了!所以我只剩下 2 个驱动器故障了。
键入
mdadm -E /dev/sda3
以检查磁盘的状态。我对所有 16 个磁盘都执行此操作。sda3 到 sdp3。磁盘 3 和磁盘 13 被标记为失败。输入
storage_boot_init 2
以组装所有 16 个磁盘。非常幸运,数据终于可以在文件\share\MD0_DATA
夹中找到\share\
。
我必须承认,之前我对 RAID 6 了解不多,并且盲目地使用它。现在我可以恢复数据了,我会在重建 2 个故障磁盘之前将其备份到其他地方。我已经标记了所有磁盘的顺序。吸取了教训!这对我来说是一场真正的数据噩梦!