1. 确认事项

假设场景

  • 重建过程中raid损坏

    1. raid5掉了1个盘降级, 热备开始重建, 重建过程中业务正常读写了数据。

    2. raid还未重建完成, 设备异常断电, 开机后发现raid损坏(或其他原因导致重建过程中raid损坏)

    3. 分析环境 : 最开始磁盘离线后, raid新写了数据, 那么最开始离线的盘已经与现在raid中的数据有不一致, 强制上线时如果该盘被上线到raid中, 会有数据不完整(丢失), 所以强制上线前将该盘拔出 ; 重建的热备盘未重建完成, 那么该盘中的数据与raid中数据也是不一致的, 强制上线时如果该盘被上线到raid中, 会有数据不完整(丢失), 所以强制上线前将该盘拔出。

    4. 将最开始离线的盘和未重建完成的热备拔出后, 剩下的数据盘可保持raid上线为降级状态。

  • 连续离线多个盘

    1. raid6掉了1个盘a降级, 热备开始重建, 重建过程中业务正常读写了数据。

    2. raid未重建完成, raid再次离线了一个盘b, raid6处于二次降级, 之前重建的盘继续重建中, 重建过程中业务正常读写了数据。

    3. 之前重建的盘还未重建完成, raid6再次离线了1个盘c, raid6损坏

    4. 分析环境 : ab磁盘离线后, raid新写了数据, 那么其中数据与现在raid中数据不一致, 不能用来强制上线 ; 重建的盘未重建完成, 数据与raid中不一致, 不能用来强制上线。

    5. 将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-强制上线

adaptec1

将Raid状态从Failed设置为optimal 使用到的命令 :

arcconf setstate <controller#> logicaldrive <LD#>optimal [advanced <option>] [noprompt]
adapetc3

示例:

arcconf setstate 1 logicaldrive 0 optimal

如果不使用参数强制上线失败, 再尝试使用nocheck参数强制上线。

注意 : 使用 advance nocheck可能会造成数据丢失, 强制使用逻辑设备是一种危险的操作, 如果一个或多个磁盘包含过时的数据, 那么这个逻辑设备上的所有数据都可能丢失。

arcconf setstate 1 logicaldrive 0 optimal advanced nocheck

在看到下述信息时, 我们选择输入 y

adaptec2

后台查看RAID状态为非failed, 如RAID为正常或降级, 证明强制上线成功。

2.2 LSI-强制上线

raid为损坏状态, 一定不要进行删除设备标志位操作 : storcli /cx /fall delete

案例如下

16盘位设备, 15个盘做riad模式6, 1个热备。

lsi1

首先,将bad或offline或failed状态的磁盘,调整为可以强制上线的状态

  1. UGood状态硬盘不需要专门进行设置

  2. Offln状态硬盘设置为online状态 :

    storcli64 /cx/ex/sx set online
  3. Failed状态硬盘,使用命令无法读取磁盘信息,判断为无法被正常识别。

    lsi2

    重启设备,查看这两个硬盘状态依旧为Failed,对这两个盘进行热拔插后,磁盘状态由Failed变为UBad

  4. UBad状态硬盘设置为UGood状态

    storcli64 /cx/ex/sx set good [force]

    经过磁盘状态修改操作后,所有磁盘状态都支持强制上线。

    DG状态“F”,说明这个盘有旧配置记录。

    lsi4

    强制上线操作 ( 导入硬盘旧配置 )

    storcli64 /c0 /fall import

    强制上线成功后,可能会因为有的盘数据不一致 ( 比如这个盘掉后,raid损坏前,raid中有新数据写入 ; 或这个盘掉时,正在对他写入的数据中断 ) ,让这个盘直接进入rebuild状态。

    lsi5

    后台查看RAID状态为正常或降级,证明强制上线成功。

3. 设置lvm状态

确认raid强制上线成功为非损坏状态。

使用LVM命令查看磁盘上的LVM信息

如果在查看lv,vg和pv的状态存在input和output error时,需要先重启机器,然后再查看LVM的状态

查看RAID上的pv , pvdisplay。

lvm2

查看RAID上的vg , vgdisplay。

lvm3

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

lvm5


熊熊