Dedicated Hardware : Dell MegaRAID SAS : MegaCli

Sur les Dell, et dans mon cas les PowerEdge, il existe un outil qui permet de diagnostiquer l’état de la bête, du chassis jusqu’aux drives, tout ça, pour les contrôleurs RAID LSI.

Cet outil, c’est MegaCli. Le problème avec lui, c’est qu’il est d’une syntaxe exécrable. Petit guide de survie qui fait du bien là où ça peut faire mal.

Déjà, voir si MegaCli peut faire quelque chose pour nous :

# lspci | grep -i lsi | grep -i megaraid

Le but est de trouver en sortie une ligne, donc autre chose que… Rien, c’est mieux.

Après, petite installation selon votre type de serveur, avec download du zip sur le site de Dell. Le zip contient des rpms, ça s’installe tout seul sous /opt pour la RedHat.

On a donc un /opt/MegaRAID, avec son joli petit binaire : /opt/MegaRAID/MegaCli/MegaCli. Et oui, mon serveur est en 32bit, c’est triste mais c’est comme ça quand on est en prod et que le client est capricieux.

On a 4 types d’objets manipulables depuis MegaCli :

  • Adp*, qui gère la carte RAID
  • Cfg*, qui gère ses conf
  • Pd*, qui est associés aux physical drives
  • Ld*, l’équivalent, mais pour les logical drives

Je n’irais pas jusqu’au bout des détails sur chaque commande, il s’agit juste de voir le plus utile, à savoir si ça a pété, où, et comment réparer. Le plus à savoir, c’est que les options sont… Erm, case insensitive, alors pas la peine de s’embêter à respecter la casse.

Avant tout, enrichissons notre PATH.

# export PATH=$PATH:/opt/MegaRAID/MegaCli/

Détail de la carte, récupération des logs de l’adaptateur, toussa toussa :

# MegaCli -AdpAllInfo -aAll
# MegaCli -AdpEventLog -GetEvents -f 20141027.log -aALL

Etat du RAID, état des disques. Pour PDList, la finesse peut être de mise en précisant -PhysDrv[Enclosure:Slot]

# MegaCli -LDInfo -Lall -aALL
# MegaCli -PDList -aALL
# MegaCli -PDInfo -PhysDrv[E:S] -aALL

Le remplacement d’un disque défaillant, s’il est toujours présent et pas dépluggé à l’arrache, peut utiliser le workaround suivant. On a bien sûr une idée sur le drive en erreur (et surtout son Enclosure et son Slot qui sont à renseigner après le PDList, pour moi [32:4]), et on sait qu’il est sur l’adaptateur 0. Facile, il n’y en a qu’un sur mon serveur. L’exemple est là pour aider.

D’abord, marquer en offline puis missing et préparer pour removal :

# MegaCli -PDOffline -PhysDrv [32:4] -a0
# MegaCli -PDMarkMissing -PhysDrv[32:4] -a0
# MegaCli -PdPrpRmv -PhysDrv[32:4] -a0

On récupération des infos sur le drive à remplacer (mis en missing car défectueux), et on remplace :

# MegaCli -Pdgetmissing -a0
Adapter 0 - Missing Physical drives
No. Array Row Size Expected
0 1 4 beaucoup de MB
# MegaCli -PdReplaceMissing -PhysDrv [32:4] -Array1 -row4 -a0
Adapter: 0: Missing PD at Array 1, Row 4 is replaced.

On reconstruit le tout et on monitore. A cas de figure, tout d’abord, quand on n’a pas de hot spare de configuré :

# MegaCli -PDRbld -Start -PhysDrv [32:4] -a0
# MegaCli -ShowProg -PhysDrv [32:4] -a0

Et si le hot spare est d’actualité, il suffit de le solliciter :

# MegaCli -PDHSP -Set -PhysDrv [32:4] -a0

Je m’arrête ici pour le survival kit. Ce n’est vraiment pas grand’chose, mais ça aide. Surtout en astreinte.

Vus : 1232
Publié par K-Tux : 59