我有 12 个磁盘的硬件 raid 5,其中 2 个坏了,数据无法再访问。有人告诉我,即使 2 个磁盘坏了,部分数据也可能恢复。我的托管服务提供商用新磁盘替换了坏磁盘(一开始他们用新磁盘替换了正常工作的磁盘,但现在全部都替换了)。
我正在使用 tw_cli,我猜现在我需要“重建”数组,但我害怕犯错。我没有找到有关这种情况的 tw_cli 分步指南。
您能否建议一下,现在应该做什么以及 tw_cli 的具体命令是什么?
#tw_cli /c0/u0 show
Unit UnitType Status %Cmpl Port Stripe Size(GB) Blocks
-----------------------------------------------------------------------
u0 RAID-5 INOPERABLE - - 256K 20489 42968510464
u0-0 DISK DEGRADED - - - 1862.63 3906228224
u0-1 DISK OK - p1 - 1862.63 3906228224
u0-2 DISK OK - p2 - 1862.63 3906228224
u0-3 DISK OK - p3 - 1862.63 3906228224
u0-4 DISK OK - p4 - 1862.63 3906228224
u0-5 DISK OK - p5 - 1862.63 3906228224
u0-6 DISK OK - p6 - 1862.63 3906228224
u0-7 DISK OK - p7 - 1862.63 3906228224
u0-8 DISK OK - p8 - 1862.63 3906228224
u0-9 DISK OK - p9 - 1862.63 3906228224
u0-10 DISK OK - p10 - 1862.63 3906228224
u0-11 DISK DEGRADED - - - 1862.63 3906228224
操作系统:CentOS
更新:正如@Overmind 所建议的,我再次插入了磁盘,它说正在重建,现在它说无法操作,但 12 个磁盘中有 11 个正常!!
我用新的磁盘(p0)替换了坏磁盘并尝试重建,但由于设备忙而失败。知道我该怎么办吗?
tw_cli /c0/u0 start rebuild disk=0
Sending rebuild start request to /c0/u0 on 1 disk(s) [0] ... Failed.
(0x0B:0x0033): Unit busy
我尝试卸载此 RAID 阵列上的文件夹,但没有帮助。我在手册中读到我应该将磁盘标记为备用,所以我这样做了,但我担心结果不好,我真的需要你的帮助。
tw_cli /c0 add type=spare disk=0
Creating new unit on controller /c0 ... Done. The new unit is /c0/u1.
# tw_cli /c0 show
Unit UnitType Status %Cmpl Stripe Size(GB) Cache AVerify IgnECC
------------------------------------------------------------------------------
u0 RAID-5 INOPERABLE - 256K 20489 OFF ON OFF
u1 SPARE OK - - 1863.01 - OFF -
Port Status Unit Size Blocks Serial
---------------------------------------------------------------
p0 OK u1 1.82 TB 3907029168 9WM0XF4D
p1 OK u0 1.82 TB 3907029168 53SB7TLAS
p2 OK u0 1.82 TB 3907029168 53SDBSXAS
p3 OK u0 1.82 TB 3907029168 53SB7UJAS
p4 OK u0 1.82 TB 3907029168 53SB7SGAS
p5 OK u0 1.82 TB 3907029168 53SB8BPAS
p6 OK u0 1.82 TB 3907029168 53VDW0PGS
p7 OK u0 1.82 TB 3907029168 53SDAHTAS
p8 OK u0 1.82 TB 3907029168 53SB7U3AS
p9 OK u0 1.82 TB 3907029168 53SB7UBAS
p10 OK u0 1.82 TB 3907029168 53VE7D5AS
p11 OK u0 1.82 TB 3907029168 43N2SNDGS
Name OnlineState BBUReady Status Volt Temp Hours LastCapTest
---------------------------------------------------------------------------
bbu On Yes OK OK OK 0 xx-xxx-xxxx
答案1
3Ware 控制器很不错 - 这一点毋庸置疑。但如上所述,包含许多磁盘的 RAID 5 确实存在问题。如果磁盘完全坏了,我认为您没有办法恢复,除非使用如下数据恢复工具:
https://www.runtime.org/raid.htm
我曾经尝试过为客户恢复数据(很久以前),但最多只能说是极其耗时。即使使用适当的工具,两个磁盘丢失后,一些数据也会不可挽回地丢失。如果两个磁盘中只有一个可以恢复,那么你可能很幸运。这将允许重建,据我所知,3Ware 的产品在这方面相当不错。
综合考虑所有因素,我不太同意前面几位发帖者的观点,但是由于两张磁盘都丢失了(并且那张好磁盘也被替换了),我想说你的机会非常渺茫。
鉴于目前磁盘价格相对较低(不包括 SSD),下次至少选择带有热备件的 RAID 6。最佳选择是带有热备件的 RAID 10,因为它可为您提供(高达)50% 的容错率和极快的速度。
答案2
它们是否在同一时间发生故障?“磁盘损坏”是什么意思?它们是机械故障还是只是有一些损坏?
无论如何,RAID 5 上出现了双磁盘故障。这意味着您的数据已丢失。阵列无法重建。
对于那么多磁盘来说,使用 RAID6 是合乎逻辑的,这样它可以同时防止 2 个磁盘发生故障。
挽救阵列的唯一方法是更换第一个发生故障的磁盘并在第二个发生故障之前重建阵列。
如果一个仍然相对可用,您可以将其重新插入 RAID 并尝试从那里重建(/c0/u0 start rebuild disk=p),如果成功,则随后替换它并运行第二次重建。
如果原始驱动器没有机械损坏,则将它们放回原位(两个)并运行 /c0 u1 remove /c0 u11 remove 然后 /c0 rescan。如果足够活跃,这可以将其中至少一个重新添加到 RAID。
请注意,c0/u0/p 符号取决于 CLI 版本和系统配置。