1. 确认事项
假设场景
重建过程中
raid损坏raid5掉了1个盘降级, 热备开始重建, 重建过程中业务正常读写了数据。raid还未重建完成, 设备异常断电, 开机后发现raid损坏(或其他原因导致重建过程中raid损坏)分析环境 : 最开始磁盘离线后,
raid新写了数据, 那么最开始离线的盘已经与现在raid中的数据有不一致, 强制上线时如果该盘被上线到raid中, 会有数据不完整(丢失), 所以强制上线前将该盘拔出 ; 重建的热备盘未重建完成, 那么该盘中的数据与raid中数据也是不一致的, 强制上线时如果该盘被上线到raid中, 会有数据不完整(丢失), 所以强制上线前将该盘拔出。将最开始离线的盘和未重建完成的热备拔出后, 剩下的数据盘可保持
raid上线为降级状态。
连续离线多个盘
raid6掉了1个盘a降级, 热备开始重建, 重建过程中业务正常读写了数据。raid未重建完成,raid再次离线了一个盘b, raid6处于二次降级, 之前重建的盘继续重建中, 重建过程中业务正常读写了数据。之前重建的盘还未重建完成,
raid6再次离线了1个盘c,raid6损坏分析环境 :
ab磁盘离线后,raid新写了数据, 那么其中数据与现在raid中数据不一致, 不能用来强制上线 ; 重建的盘未重建完成, 数据与raid中不一致, 不能用来强制上线。将ab磁盘和重建未完成的磁盘拔掉后, 剩下的磁盘可强制上线将raid上线为二次降级状态。
经过上述场景描述, 我们在现场处理raid损坏问题时 :
1 ) 首先分析出损坏原因 ( message日志、raid卡日志、界面日志、raid卡状态 )
2 ) 然后分析出损坏时的掉盘顺序 ( message日志、raid卡日志、界面日志 )
3 ) 然后判断重建的磁盘是哪个, 是否重建完成 ( message日志、raid卡日志、界面日志 )
4 ) 再判断用哪些盘来强制上线 ( message日志、raid卡日志、界面日志 )
5 ) 最后判断用来强制上线的盘是否有问题 ( 磁盘smart、raid卡状态、背板 ) ( 如果强制用来上线的盘有问题, 那么上线后继续写入数据raid可能再次损坏, 这种情况就让raid保持降级状态先备份数据 ) 。
2. 命令强制上线
2.1 ADAPTEC-强制上线

将Raid状态从Failed设置为optimal 使用到的命令 :
arcconf setstate <controller#> logicaldrive <LD#>optimal [advanced <option>] [noprompt]
示例:
arcconf setstate 1 logicaldrive 0 optimal如果不使用参数强制上线失败, 再尝试使用nocheck参数强制上线。
注意 : 使用 advance nocheck可能会造成数据丢失, 强制使用逻辑设备是一种危险的操作, 如果一个或多个磁盘包含过时的数据, 那么这个逻辑设备上的所有数据都可能丢失。
arcconf setstate 1 logicaldrive 0 optimal advanced nocheck在看到下述信息时, 我们选择输入 y

后台查看RAID状态为非failed, 如RAID为正常或降级, 证明强制上线成功。
2.2 LSI-强制上线
raid为损坏状态, 一定不要进行删除设备标志位操作 : storcli /cx /fall delete
案例如下
16盘位设备, 15个盘做riad模式6, 1个热备。

首先,将bad或offline或failed状态的磁盘,调整为可以强制上线的状态
UGood状态硬盘不需要专门进行设置Offln状态硬盘设置为online状态 :storcli64 /cx/ex/sx set onlineFailed状态硬盘,使用命令无法读取磁盘信息,判断为无法被正常识别。
重启设备,查看这两个硬盘状态依旧为
Failed,对这两个盘进行热拔插后,磁盘状态由Failed变为UBadUBad状态硬盘设置为UGood状态storcli64 /cx/ex/sx set good [force]经过磁盘状态修改操作后,所有磁盘状态都支持强制上线。
DG状态“F”,说明这个盘有旧配置记录。
强制上线操作 ( 导入硬盘旧配置 )
storcli64 /c0 /fall import强制上线成功后,可能会因为有的盘数据不一致 ( 比如这个盘掉后,raid损坏前,raid中有新数据写入 ; 或这个盘掉时,正在对他写入的数据中断 ) ,让这个盘直接进入
rebuild状态。
后台查看RAID状态为正常或降级,证明强制上线成功。
3. 设置lvm状态
确认raid强制上线成功为非损坏状态。
使用LVM命令查看磁盘上的LVM信息
如果在查看lv,vg和pv的状态存在input和output error时,需要先重启机器,然后再查看LVM的状态
查看RAID上的pv , pvdisplay。

查看RAID上的vg , vgdisplay。

LV的状态为 NOT available,就需要使用命令lvchange -a y /dev/p1/volume1设置LV状态。
