MegaRAID script - Check RAID et Controller

Ce script Bash de génère un rapport système et RAID, destiné à de l’administration serveur (MegaRAID / storcli).

MegaRAID

MegaRAID est une famille de contrôleurs RAID matériels, à l’origine de LSI, aujourd’hui chez Broadcom. C’est une carte RAID physique installée dans un serveur qui permet de gérer les disques avant que Linux ne les voie.

Cette carte RAID s’occupe de :

  • créer les volumes RAID (RAID 1, 5, 6, 10…)
  • gérer les pannes de disques
  • reconstruire automatiquement les arrays
  • optimiser les performances (cache, write-back, etc.)

Pour Linux, un volume MegaRAID apparaît comme un seul disque /dev/sda même si derrière il y a 8 ou 24 disques physiques.

Storcli

L’outil storcli (Storage Command Line Interface) est l’outil officiel en ligne de commande pour gérer et diagnostiquer les contrôleurs MegaRAID. En general accessible dans /opt/MegaRAID/storcli/storcli64.

Storcli permet de :

  • voir l’état des disques physiques
  • voir l’état des volumes RAID
  • consulter les événements / erreurs
  • gérer les contrôleurs (cache, BBU, firmware)
  • remplacer un disque, lancer un rebuild, etc.

C’est l’équivalent CLI de l’interface graphique MegaRAID (WebBIOS / MegaRAID Storage Manager).

Linux ne suffit pas sans storcli car il voit seulement le résultat final du RAID :

# lsblk
sda 3.6T

Mais Linux ne sait pas :

  • quel disque physique est en panne
  • si un rebuild est en cours
  • si le cache est désactivé
  • si la batterie du contrôleur est HS

L’outils storcli est indispensable pour la vraie santé du RAID.

Script bash

Ce script génère un rapport dans le dossier /tmp/.

#=========================================
# Date : 2026.01.15
# Version : 1.0.0
# Description : Check RAID, CONTROLLERS
# Author : 4l1N3
#=========================================
#!/bin/bash

OUTFILE="/tmp/report_$(hostname)_$(date +%Y.%m.%d_%H%M%S).txt"

{
echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
echo "Hostname: $(hostname)"
echo "Date: $(date)"
echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
echo
echo "======== free -h ========"
free -h
echo
echo "======== df -h ========"
df -h

echo
echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
echo " PHYSICAL DRIVES"
echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
echo
echo "======== Controller 0 (adapter 0) ========"
/opt/MegaRAID/storcli/storcli64 /c0 /eall /sall show
echo
echo "======== Controller 1 (adapter 1) ========"
/opt/MegaRAID/storcli/storcli64 /c1 /eall /sall show

echo
echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
echo " LOGICAL DRIVES"
echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
echo
echo "======== Controller 0 (adapter 0) ========"
/opt/MegaRAID/storcli/storcli64 /c0 /vall show
echo
echo "======== Controller 1 (adapter 1) ========"
/opt/MegaRAID/storcli/storcli64 /c1 /vall show

echo
echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
echo " GLOBAL INFORMATIONS "
echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
/opt/MegaRAID/storcli/storcli64 show

echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
echo " GLOBAL CONTROLERS "
echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
echo
echo "======== Controller 0 (adapter 0) ========"
/opt/MegaRAID/storcli/storcli64 /c0 show all
echo
echo "======== Controller 1 (adapter 1) ========"
/opt/MegaRAID/storcli/storcli64 /c1 show all

echo
echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
echo " CONTROLERS EVENTS "
echo "■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■"
echo
echo "======== Controller 0 (adapter 0) ========"
/opt/MegaRAID/storcli/storcli64 /c0 show events
echo
echo "======== Controller 1 (adapter 1) ========"
/opt/MegaRAID/storcli/storcli64 /c1 show events

} > "$OUTFILE"

echo -e "\n\nSee report in $OUTFILE\n\n"

Documentation

https://docs.broadcom.com/doc/12352476

🡅 Partager