我在一台装有 Perc H700 卡的 Xenserver 主机上配置了 Raid 50,几周前更换了一个发生故障的磁盘。该 raid 已重建,我现在正在通过 omreport 检查阵列的状态:
# omreport storage vdisk
Controller PERC H700 Integrated (Slot 4)
ID : 0
Status : Critical
Name : Virtual Disk 0
State : Resynching
Hot Spare Policy violated : Not Assigned
Virtual Disk Bad Blocks : Yes
Encrypted : Not Applicable
Layout : RAID-50
Size : 14,900.00 GB (15998753177600 bytes)
Associated Fluid Cache State : Not Applicable
Device Name : /dev/sda
Bus Protocol : SATA
Media : HDD
Read Policy : Adaptive Read Ahead
Write Policy : Write Through
Cache Policy : Not Applicable
Stripe Element Size : 64 KB
Disk Cache Policy : Enabled
我的问题是,为什么状态停留在“重新同步”这么长时间?由于目前主机上没有运行虚拟机,因此没有太多 IO 活动。此外,重新同步涉及什么?
另一点需要提及的是电池状态至关重要:
# omreport storage battery
Controller PERC H700 Integrated (Slot 4)
ID : 0
Status : Critical
Name : Battery 0
State : Failed
Recharge Count : Not Applicable
Max Recharge Count : Not Applicable
Learn State : Idle
Next Learn Time : 15 days 22 hours
Maximum Learn Delay : 7 days 0 hours
Learn Mode : Auto
但是使用 Megacli 时,它显示电池处于最佳状态:
BBU status for Adapter: 0
BatteryType: BBU
Voltage: 4035 mV
Current: 0 mA
Temperature: 27 C
Battery State: Optimal
两份报告内容相冲突的原因何在?
提前致谢,如果您需要任何进一步的信息,请询问。
答案1
正在读取以计算“重新同步”数据的磁盘可能会在此过程中遇到一些坏块。由于您使用的是 RAID50,如果您在正在重建的“一半”(RAID5)中的任何驱动器中遇到任何坏块,它会自动导致 URE(戴尔称之为“刺“)。
我之所以怀疑这一点,是因为您看到了Virtual Disk Bad Blocks : Yes
- 除非底层 RAID 由于多个部分损坏或丢失而“丢失”了一个块,否则虚拟磁盘级别不会出现坏块。这就是为什么生产数据在 RAID10 或 RAID6 上通常更安全的原因之一。在我遇到的几乎所有虚拟级别坏块实例中,唯一的解决方法是重新初始化 RAID 并从备份中恢复。唯一的解决方法是,如果该块恰好包含不需要读取的数据(或文件系统级别的空白空间),并且最终被覆盖……否则,您可能会有一定程度的数据损坏,应该进行调查和解决。
至于电池状态差异,我更相信 MegaCLI 而不是 omreport。MegaCLI 来自 OEM(LSI),专门为该任务而设计,而 omreport 则处理监控全部Dell 硬件组件。最有可能的是,重新启动 OMSA 服务或更新已安装的版本可以消除差异。
如果您的系统具有有效保修,您可能还需要考虑联系戴尔以获取有关这两个问题的建议。