**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**

# Infos MegaCLI

<http://www.admin-linux.fr/?p=8535>
<http://erikimh.com/megacli-cheatsheet/>

## Commandes de base

~~~
# megacli -adpallinfo -aALL
# megacli -pdlist -aALL
# megacli -AdpEventLog -GetEvents -aALL
~~~

Note : -aALL indique d'appliquer la commande sur tout les contrôleur disponibles, souvent on en a qu'un seul, donc c'est pratique, plutôt que de chercher son ID (Même si c'est souvent a0).

Récupérer l'Enclosure Id (E) et le numéro de Slot (S) des disques :

~~~
# megacli -PDList -aALL |grep -E 'Enclosure Device|Slot|Inquiry'
~~~

On notera alors *\[E:S\]* l'emplacement du disque souhaité.

*E:* est l'enclosure su disque et *S* est le slot du disque souhaité. 

Note : Si *E (Enclosure Id)* est N/A, on mettra alors \[:S\]

Infos sur un disque :

~~~
# megacli -pdinfo -PhysDrv \[E:S\] -a0
~~~




## Passer un disque en HotSpare

Typiquement après le changement d'un disque défectueux, si le rebuild ne se fait pas automatiquement, l'astuce est de passer le nouveau disque en Hot Spare. Ainsi le contrôleur « prendra » le disque Hot Spare pour faire le rebuild.

~~~
megacli -PDHSP -Set -PhysDrv \[65535:2\] -a0
~~~

Cela passe le disque d'ID 2, enclosure 65535, en Hot Spare.

## Utiliser un disque HotSpare

Parfois, un disque est disponible en tant que HotSpare, mais le controleur ne l'utilise pas… Une astuce est de dire qu'il n'est plus HS, puis le repasser HS.


~~~
megacli -PDHSP -Rmv -PhysDrv [8:4] -a0
megacli -PDHSP -Set -Dedicated -Array0 -PhysDrv [8:4] -a0 
~~~

Cela remet le disque d'ID 4; enclosure 8, en tant que HS dédié pour l'array 0.

## Contrôler le rebuild d'un disque

~~~
# megacli -pdrbld -showprog -physdrv\[E:S\] -a0
                                     
Rebuild Progress on Device at Enclosure E, Slot S Completed 10% in 23 Minutes.
~~~

## Passer un disque en offline

~~~
megacli -PDOffline -PhysDrv \[E:S\] -a0
~~~

## Passer un disque en missing

Ça le sort du RAID.

~~~
megacli -PDMarkMissing -PhysDrv \[E:S\] -a0
~~~

## Passer un disque en JBOD à unconfigured(good)

~~~
megacli -PDMakeGood -PhysDrv\[E:S\] -force -a0
~~~

## Remplacer un disque missing

Lister d'abord :

~~~
# megacli -PdGetMissing -a0     
                                              
    Adapter 0 - Missing Physical drives       
                                              
    No.   Array   Row   Size Expected         
    0     0       0     139236 MB             
                                              
Exit Code: 0x00                               
~~~

Le disque (row 0) de l'array 0 est missing. Pour cet exemple, on va dire au disque physique 64:2 de prendre la place du row 0.

~~~
megacli -PdReplaceMissing -PhysDrv \[64:2\] -Array0 -row0 -a0 
~~~

Le passer online

~~~
megacli -PDOnline -PhysDrv \[64:2\] -a0
~~~

## Faire clignoter un disque

~~~
# megacli -PdLocate -start -physdrv\[E:S\] -a0
~~~

Note : cela ne fonctionne pas sur tous les contrôleurs

## Configurer un volume RAID à partir de nouveaux disques

Vérifier que les disques ne sont pas déjà dans un volume RAID :

~~~
# megacli -ldpdinfo -a0 |grep -E '(Virtual|Inquiry|Slot)'
~~~

Créer le volume :

~~~
# megacli -CfgLdAdd -r1[E:S1,E:S2] -a0
~~~

-r1 indique le type de RAID, E correspond au numéro d'enclosure et S1 et S2 sont les numéros de slot des disques.
