diff --git a/HowtoPerccli.md b/HowtoPerccli.md index 80ef0c31..b09cec9b 100644 --- a/HowtoPerccli.md +++ b/HowtoPerccli.md @@ -15,6 +15,19 @@ On télécharge `perccli` et on l'installe dans `/usr/local/sbin/perccli` : bsdtar -C /usr/local/sbin/ -'s|\./opt/MegaRAID/perccli/perccli64|perccli|' -xf- ./opt/MegaRAID/perccli/perccli64 ~~~ +# Pierre de rosette + +| PERCCLI | MegaCLI | Description | +|------------------------------------+-----------------------------------------+-------------------| +| `perccli /call show all` | `megacli -adpallinfo -aALL` | Adaptateurs | +| `perccli /call/eall/sall show all` | `megacli -pdlist -aALL` | Disques physiques | +| `perccli /call/vall show all` | `megacli -LDInfo -Lall -aALL` | Disques virtuels | +| `perccli /call show events` | `megacli -AdpEventLog -GetEvents -aALL` | Logs | +| `perccli /call show alilog` | `megacli -AdpAlILog -aALL` | NVRAM logs | + +[Documentation de Broadcom](https://www.broadcom.com/support/knowledgebase/1211161499760/lsi-command-line-interface-cross-reference-megacli-vs-twcli-vs-s) traduisant les commandes `MegaCLI` en equivalant +`StorCLI` (équivalant à `PERCCLI`). + # Explications ## Syntaxe de la ligne de commande @@ -36,6 +49,38 @@ Par exemple pour avoir l'état du premier controleur (son index est donc 0) il f Pour avoir une sortie en JSON d'une commande il suffit de la sufixer avec l'argument `J`. Par exemple pour avoir l'état du la batterie du premier controleur en JSON il faut executer `perccli /c0/bbu show J`. +## Exemple de sortie de la commande + +``` +# perccli show +CLI Version = 007.2313.0000.0000 Mar 07, 2023 +Operating system = Linux 6.1.0-16-amd64 +Status Code = 0 +Status = Success +Description = None + +Number of Controllers = 1 +Host Name = parbackup4bis +Operating System = Linux 6.1.0-16-amd64 + +System Overview : +=============== + +------------------------------------------------------------------------- +Ctl Model Ports PDs DGs DNOpt VDs VNOpt BBU sPR DS EHS ASOs Hlth +------------------------------------------------------------------------- + 0 PERCH755Front 16 4 1 0 1 0 Opt On - N 0 Opt +------------------------------------------------------------------------- + +Ctl=Controller Index|DGs=Drive groups|VDs=Virtual drives|Fld=Failed +PDs=Physical drives|DNOpt=Array NotOptimal|VNOpt=VD NotOptimal|Opt=Optimal +Msng=Missing|Dgd=Degraded|NdAtn=Need Attention|Unkwn=Unknown +sPR=Scheduled Patrol Read|DS=DimmerSwitch|EHS=Emergency Spare Drive +Y=Yes|N=No|ASOs=Advanced Software Options|BBU=Battery backup unit/CV +Hlth=Health|Safe=Safe-mode boot|CertProv-Certificate Provision mode +Chrg=Charging | MsngCbl=Cable Failure +``` + ## Abréviations de la sortie standard De nombreuses abréviations sont utilisées dans la sortie standard, en voici une **liste non exhaustive** : @@ -215,3 +260,97 @@ Hlth=Health|Safe=Safe-mode boot|CertProv-Certificate Provision mode Chrg=Charging | MsngCbl=Cable Failure ~~~ +# Mode d'emploi + + +## Actions sur les disques physiques + + +### Localiser un disque + +Faire clignoter un disque : + + controler=0 ; enclosure=252 ; slot=0 + perccli "/c${controler}/e${enclosure}/s${slot}" start locate + +Arrêter le clignotement d’un disque : + + controler=0 ; enclosure=252 ; slot=0 + perccli "/c${controler}/e${enclosure}/s${slot}" stop locate + + +### Passer un disque en OFFLINE + + controler=0 ; enclosure=252 ; slot=0 + perccli "/c${controler}/e${enclosure}/s${slot}" set offline + + +### Passer un disque en ONLINE + +**!!! ATTENTION !!! ATTENTION !!! ATTENTION !!!** + +L’erreur fatale à ne pas commettre lorsque vous constatez un disque en état +Firmware state: Failed est de le forcer à revenir Online. En effet, cela +force à repasser en mode RAID sans reconstruction et vous pouvez dire adieu +à votre système de fichiers. NE FAITES DONC PAS : + + controler=0 ; enclosure=252 ; slot=0 + perccli "/c${controler}/e${enclosure}/s${slot}" set online + + +### Passer un disque en missing + + controler=0 ; enclosure=252 ; slot=0 + perccli "/c${controler}/e${enclosure}/s${slot}" set online + +Ça le sort du RAID. + + +### Contrôler la rotation d’un disque rotatif + +Stopper la rotation d’un disque, dans le but de le retirer : + + controler=0 ; enclosure=252 ; slot=0 + perccli "/c${controler}/e${enclosure}/s${slot}" spindown + +Activer la rotation d’un disque : + + controler=0 ; enclosure=252 ; slot=0 + perccli "/c${controler}/e${enclosure}/s${slot}" spinup + + +### Lancer la reconstruction d’un disque + + controler=0 ; enclosure=252 ; slot=0 + perccli "/c${controler}/e${enclosure}/s${slot}" start rebuild + + +### Contrôler la reconstruction d’un disque + + controler=0 ; enclosure=252 ; slot=0 + perccli "/c${controler}/e${enclosure}/s${slot}" show rebuild + + +## Actions sur les disques virtuels + + +### Extensions à chaud d’un disque virtuel + + controler=0 ; virtual=239 ; size=1337 + perccli "/c${controler}/v${virtual}" expand "Size=$size" + + +### Suivre l’extensions d’un disque virtuel + + controler=0 ; virtual=239 + perccli "/c${controler}/v${virtual}" show expansion + + +## Actions sur les controleurs disques + + +### Accéder aux logs d’un controller + + controler=0 + perccli "/c${controler}" show alilog +