如何使用 tw_cli 从 2 个磁盘的 raid 5 故障中恢复?

如何使用 tw_cli 从 2 个磁盘的 raid 5 故障中恢复?

我有 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 版本和系统配置。

相关内容