问题背景:在一个物理节点上,两个做成单盘raid0的osd数据盘,直接拔掉两个数据盘交换插槽位置插入。发现系统无法识别到硬盘了。再把两个盘拔出,只将其中一块插回它原先的插槽位置,发现依然无法被系统识别到。
登陆到发生该问题的物理节点环境,先使用如下命令查看raid卡上的所有物理硬盘设备情况:
/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aAll -Nolog | grep -i -E 'state|Slot\ Number'
主要观察每一块物理硬盘的Firmware state属性,发现有一个插槽位置的硬盘Firmware state: Unconfigured(bad)。说明插入的硬盘已经被raid卡识别到了,需要重新进行配置,让该盘上线,才会被操作系统识别到。
问题解决:
1、使用如下命令将硬盘的Unconfigured(bad)-> Unconfigured(good):
/opt/MegaRAID/MegaCli/MegaCli64 -PDMakeGood -Physdrv "[252:5]" -a0
/opt/MegaRAID/MegaCli/MegaCli64 -PDList -a0 #查看所有磁盘信息
[252:3]:252为raid卡的Enclosure Device ID,5为硬盘的Slot Number,-a0表示物理节点上的第0号控制器。这三个参数都可以通过查看raid卡上的所有物理硬盘设备命令得到。
2、使用如下命令将Foreign State:Foreign状态的硬盘中的raid信息倒入到raid控制器,可以直接上线:
/opt/MegaRAID/MegaCli/MegaCli64 -cfgforeign -Import -a0