阵列卡作为磁盘系统的一部分,能够将多块物理盘通过不同的阵列算法组合成一个大的虚拟盘;同时阵列卡又承担起管理虚拟盘和物理盘的责任,对于虚拟盘和物理盘出现的错误进行检查和管理。而我们开发的自动化健康检查工具,正是基于能够和阵列卡信息交互的工具来了解虚拟盘和物理盘的健康状况的
物理盘健康检查的设计逻辑物理盘也有类似的一些状态来判断是否健康,如Unconfigured Good、Unconfigured Bad、Online、Offline、Rebuild等。
◎ Unconfigured Good为未被配置为阵列的健康盘,可能是新加的磁盘或者是某个阵列出现了掉盘都会被阵列卡设置为这种状态。
◎ Unconfigured Bad为被阵列卡判断为异常状态的磁盘,可能之前属于某个阵列,但是由于出现错误较多而被阵列卡从阵列配置中踢出,也有可能是新加入的磁盘被阵列卡检查健康状态后判断为故障盘。
◎ Online为在线状态,但并不意味着磁盘本身不存在问题,它仅仅代表该磁盘尚能提供IO服务。某些出现坏道而引发降速的磁盘,由于尚能提供IO服务,仍会被阵列卡判断为在线状态,因此还需要增加其他的因素去判断一块磁盘是否真正健康。
◎ Offline为离线状态,拔盘或者因为接口通信异常而掉线的磁盘都会被阵列卡设置为该状态,更严重的是磁盘故障到已经无法通信的情况也会被设置为离线状态。
◎ Rebuild为修复中状态,当一块新盘被用以替换故障盘而参与整个虚拟盘数据修复时,阵列卡会将该盘设置为修复状态。
◎ Failed表示磁盘处于故障状态,需要进行报修更换,可以强制上线。
此外,上面讲到即使一块物理盘处于Online状态,也无法判断为健康状态,因此物理盘比虚拟盘还多了一种可以辅助判断是否健康的因素,那就是错误计数器:MEC(Media Error Count)、OEC(Other Error Count)、PFC(Predictive Failure Count)。
◎ MEC(Media Error Count)为物理坏道计数器,通常指的是磁盘出现无法修复的物理坏道数量,该计数器积累到一定程度后即可判断为磁盘故障。
◎ OEC(Other Error Count)为其他错误计数器,指的是物理坏道以外的错误数量。由于磁盘是一种比较精密且复杂的机械和电子部件,因此任何部件的异常磁盘都有一种检查机制能够感知并写入磁盘的SMART信息中,因此该计数器可作为判断磁盘是否故障的辅助手段。
◎ PFC(Predictive Failure Count)为故障预警计数器,它通常集合了一套判断磁盘是否即将故障的逻辑,阵列卡根据磁盘提供的各种错误代码和信息判断磁盘即将故障,该计数器积累到一定程度后即可判断为磁盘故障。
通过上面的这些状态和错误计数器,我们就可以设计一套判断物理盘是否健康的逻辑,具体的设计逻辑图如图8-16所示。如果检查一块磁盘为非Online状态,就会开始一系列检查:Unconfigured Good状态会以WARN级别输出错误通知;Unconfigured Bad或Offline状态均会以ERROR级别输出错误通知;而Rebuild状态则会以INFO级别输出信息通知。
最后,无论该物理盘状态是否为Online,都会对计数器值进行检查判断,如果三个计数器有任何一个超过临界值,都会以WARN级别输出错误通知,以及时通知用户磁盘存在异常。
根据虚拟盘的不同状态来判断其健康状况,虚拟盘分别有Optimal、Offline、Recovery和Degraded四种状态。
◎ Optimal为最佳状态,意味着虚拟盘目前处于健康状态,没有任何故障和异常。
◎ Offline为离线状态,意味着虚拟盘已经出现了严重的故障,比如RAID 0出现一块磁盘故障,或者RAID 5出现两块磁盘故障,表示虚拟盘已经不可用并且数据有丢失。
◎ Recovery为虚拟盘修复中状态,意味着虚拟盘之前出现了磁盘故障并降级,更换故障盘后阵列卡对新盘进行有效数据填充的过程。
◎ Degraded为虚拟盘降级状态,意味着带有阵列保护的虚拟盘出现了磁盘故障,但不至于对虚拟盘的数据完整性造成破坏,比如RAID 5出现一块磁盘故障就会导致虚拟盘降级。
通过上面的这些状态我们就可以设计一套判断虚拟盘是否健康的逻辑,具体的设计逻辑图如图8-15所示。如果检查一个虚拟盘状态为Optimal,则不输出任何信息,直接检查下一个虚拟盘。检查状态为Offline,则按照最高级别FATAL输出错误通知;状态为Degraded,则按照比FATAL低一级别的ERROR输出错误通知;状态为Recovery,则表示处于非异常也非健康状态,因此以INFO级别输出错误通知。
解决办法:
MegaCli64 -PDMakeGood -PhysDrv[E:S] -a0 固件状态会由Unconfigured(bad)变成Unconfigured(good), Spun Up
# MegaCli64 -PDMakeGood -PhysDrv[252:7] -a0
解决办法:
出现failed状态的硬盘大多已损坏,建议更换(或报修);但可以强制上线。
强制上线步骤如下:
可以先将磁盘下线。 # MegaCli64 -PDOffline-PhysDrv[E:S] -a0
然后再上线。 # MegaCli64 -PDOnline -PhysDrv[E:S] -a0
Foreign Secure: Drive is notsecured by a foreign lock key
办法一:可以清除恢复状态(慎用)
# MegaCli64 -CfgForeign -Clear -a0
办法二:导入配置,恢复虚拟磁盘组
# MegaCli64 -CfgForeign -import -a0
1、新换的盘需要做raid0
MegaCli -LdPdInfo -aAll | more
MegaCli -CfgLdAdd -r0 [32:5] WB Direct -a0 #创建raid时出现报错
MegaCli -cfgforeign -clear -a0 #清除Foreign
清掉缓存后仍报以下错误:
MegaCli -GetPreservedCacheList -a0 #列出需要清除缓存的虚拟磁盘的列表
MegaCli -DiscardPreservedCache -L6 -a0 #清除L6的缓存