如果我执行以下操作
/opt/MegaRAID/MegaCli/MegaCli -LDInfo -Lall -aAll -NoLog > /tmp/tmp
/opt/MegaRAID/MegaCli/MegaCli -LDPDInfo -aAll -NoLog >> /tmp/tmp
然后我看到这些错误
Media Error Count: 11
Other Error Count: 5
问题
它们意味着什么?它们是否至关重要?
完整输出:
Adapter 0 -- Virtual Drive Information:
Virtual Disk: 0 (target id: 0)
Name:Virtual Disk 0
RAID Level: Primary-5, Secondary-0, RAID Level Qualifier-3
Size:951296MB
State: Optimal
Stripe Size: 64kB
Number Of Drives:5
Span Depth:1
Default Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU
Access Policy: Read/Write
Disk Cache Policy: Disk's Default
Adapter #0
Number of Virtual Disks: 1
Virtual Disk: 0 (target id: 0)
Name:Virtual Disk 0
RAID Level: Primary-5, Secondary-0, RAID Level Qualifier-3
Size:951296MB
State: Optimal
Stripe Size: 64kB
Number Of Drives:5
Span Depth:1
Default Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU
Access Policy: Read/Write
Disk Cache Policy: Disk's Default
Number of Spans: 1
Span: 0 - Number of PDs: 5
PD: 0 Information
Enclosure Device ID: N/A
Slot Number: 0
Device Id: 0
Sequence Number: 2
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
Raw Size: 238418MB [0x1d1a94a2 Sectors]
Non Coerced Size: 237906MB [0x1d0a94a2 Sectors]
Coerced Size: 237824MB [0x1d080000 Sectors]
Firmware state: Online
SAS Address(0): 0x1221000000000000
Connected Port Number: 0
Inquiry Data: ATA WDC WD2500JS-75N2E04 WD-WCANK9523610
PD: 1 Information
Enclosure Device ID: N/A
Slot Number: 1
Device Id: 1
Sequence Number: 2
Media Error Count: 11
Other Error Count: 5
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
Raw Size: 238418MB [0x1d1a94a2 Sectors]
Non Coerced Size: 237906MB [0x1d0a94a2 Sectors]
Coerced Size: 237824MB [0x1d080000 Sectors]
Firmware state: Online
SAS Address(0): 0x1221000001000000
Connected Port Number: 1
Inquiry Data: ATA WDC WD2500JS-75N2E04 WD-WCANK9507278
PD: 2 Information
Enclosure Device ID: N/A
Slot Number: 2
Device Id: 2
Sequence Number: 2
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
Raw Size: 238418MB [0x1d1a94a2 Sectors]
Non Coerced Size: 237906MB [0x1d0a94a2 Sectors]
Coerced Size: 237824MB [0x1d080000 Sectors]
Firmware state: Online
SAS Address(0): 0x1221000002000000
Connected Port Number: 2
Inquiry Data: ATA WDC WD2500JS-75N2E04 WD-WCANK9504713
PD: 3 Information
Enclosure Device ID: N/A
Slot Number: 3
Device Id: 3
Sequence Number: 2
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
Raw Size: 238418MB [0x1d1a94a2 Sectors]
Non Coerced Size: 237906MB [0x1d0a94a2 Sectors]
Coerced Size: 237824MB [0x1d080000 Sectors]
Firmware state: Online
SAS Address(0): 0x1221000003000000
Connected Port Number: 3
Inquiry Data: ATA WDC WD2500JS-75N2E04 WD-WCANK9503028
PD: 4 Information
Enclosure Device ID: N/A
Slot Number: 4
Device Id: 4
Sequence Number: 2
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
Raw Size: 238418MB [0x1d1a94a2 Sectors]
Non Coerced Size: 237906MB [0x1d0a94a2 Sectors]
Coerced Size: 237824MB [0x1d080000 Sectors]
Firmware state: Online
SAS Address(0): 0x1221000004000000
Connected Port Number: 4
Inquiry Data: ATA WDC WD2500JS-75N2E04 WD-WCANK9503793
答案1
插槽 1 中的驱动器出现问题。它是 RAID 5,因此您的数据受到保护,但您失去了冗余(一个磁盘不可靠)。介质错误意味着驱动器用尽了将坏扇区重新映射到的备用扇区(http://kb.lsi.com/KnowledgebaseArticle15809.aspx http://mycusthelp.info/LSI/_cs/AnswerDetail.aspx?inc=7468)。如果是我的数据,我会在备份时格外小心,移除驱动器,用新驱动器替换它并同步阵列。一些供应商(例如 IBM)会根据预测故障指标接受 RMA,有些则不会。如果您的供应商不接受具有坏的、不可重新映射扇区的磁盘作为故障磁盘,则将其从阵列中取出并在测试系统中进行测试。它应该在合理的时间内失效。
编辑:
只有插槽 ID 为 1 的磁盘的介质事件才为非零值。在您提供的日志中,每个条目都有插槽 ID。奇怪的是,尽管磁盘上有介质错误,但 RAID 仍将其状态报告为最佳。不过,我不会信任该磁盘。
由 n 个大小相同的磁盘组成的 RAID 5 可为您提供 (n-1) 个磁盘的容量,因为它存储了一个磁盘的冗余数据。因此,如果您有六个 250 GB 磁盘和 1T 可用空间,则它们很可能被分成 5 个磁盘的 RAID 5(为您提供 4x250 GB 可用空间)加上 1 个备用磁盘。
答案2
实际上智能控制可以为您提供有关 MegaRaid 磁盘阵列中每个磁盘的详细信息。要获取有关物理磁盘 #0 的信息,请运行:
smartctl -a -d megaraid,0 /dev/sda|less
正如 Pawel 正确指出的那样,很可能是重新分配了扇区,但我遇到过少数情况下出现通信问题 [在 smartctl -l xerror -d megaraid,5 /dev/sda 中可见] 的情况,报告为 介质错误计数。
答案3
只要您的阵列正常运行,就应该没问题。介质错误计数器可能会因某个驱动器上的扇区重新分配失败等事件而增加,而其他错误计数器可能会因任何非问题事件(总线设备重置、电源循环等)而增加。但是,如果错误严重,控制器会自动将驱动器从阵列中取出并报告为故障,在这种情况下,您必须采取行动。
如果 smartctl 能够提供有关 megaraid 和单个单元状态的详细 SMART 信息,那就太好了,但我认为它不支持。以防万一,请尝试一下。
答案4
有时,驱动器会产生读取错误,根据我的经验,通常在发生这种情况时,我可以在其上运行“坏块”来对驱动器进行压力测试,驱动器可能会在早期报告一些错误,但是一旦驱动器受到一点压力,它要么继续报告错误,在这种情况下它是坏的,要么它不会报告任何错误。
我认为这是由于驱动器的某些扇区处于边缘状态,并且坏块重新映射只能在您写入磁盘时启动,而不是从磁盘读取。如果您将数据写入坏扇区,驱动器必须报告读取错误,因为如果它只是默默地将该扇区重新映射到备用扇区之一,它会返回无效数据而不是错误。但在写入时,如果它注意到扇区是坏的,它可以将数据写入备用扇区并重新映射它。
不幸的是,您无法清除此错误计数,因此如果您有报告媒体错误的监控,您要么必须更换驱动器,要么让监控忽略这个或那个错误,并且仅在再次更改时报告。
您可以使用 smartctl 检查驱动器 SMART 状态(感谢@pQd,我不知道这个):
MegaCli64 -PDList -aALL | grep -e '^$' -e Slot -e Count
# Find the slot number to use for "X".
# For "Y" use the device name the system knows, such as "sda".
smartctl -a -d megaraid,X /dev/sdY
重建驱动器并查看它是否继续存在问题可能并非完全不合理。使用 MegaRAID,您可以使用以下命令执行此操作:
# WARNING: Make sure the array is "Optimal" first, this will degrade it.
MegaCli64 -LDInfo -Lall -aALL | grep State
# NOTE: This assumes drive 3 of enclosure 32 for adapter 0
MegaCli64 -PDOffline -PhysDrv [32:3] -a0
MegaCli64 -PDRbld -Start -PhysDrv [32:3] -a0
# Now check the rebuild status until it completes:
MegaCli64 -PDRbld -ShowProg -PhysDrv [32:3] -a0
# And the array status should go back to Optimal
MegaCli64 -LDInfo -Lall -aALL | grep State
我以前经常遇到驱动器从 RAID 阵列中掉出来的情况(大概每两个月一次,样本中有 100 到 200 个驱动器)。但在我更换驱动器后,情况就没那么糟糕了。
在将所有驱动器投入生产之前,我开始刻录它们,使用“坏块”大约一周,在我开始这样做之后,这些阵列丢失的数量急剧减少。现在这种情况每年大概发生两次,涉及 500 个驱动器。
这是一个破坏性测试,因此请确保驱动器上没有数据:
badblocks -svw -p 5 /dev/sdX
“sdX” 是需要测试的设备。 这里要非常小心,选择错误的驱动器会破坏你的数据。我在测试台上的独立机器上运行测试。