:.     Home     .:.     Cours     .:.     Faits divers     .:.     Blagues     .:.     Liens     .:.     Perso     .:

 

Raid matériel avec megacli

 

À chaque fois que je dois faire du RAID matériel, je suis confronté à la syntaxe de megacli (megaraid), avec la peur de casser les RAID déjà existants.
Aujourd'hui, je vais documenter cela pour éviter de me faire des frayeurs à chaque fois.

1- Les commandes sans risque (affichage d'informations)


* [root@serveur:/root] # megacli -adpCount
                                    
Controller Count: 2.

Il y a donc 2 contrôleurs (adaptateurs) RAID.

* [root@serveur:/root] # megacli -adpallinfo -aALL  # Affriche toutes les infos sur tous les contrôleurs

[root@serveur:/root] # megacli -adpallinfo -a0  # Affiche toutes les infos sur le 1er adaptateur (a0)

Exemple :

Adapter #0

==============================================================================
                    Versions
                ================
Product Name    : ServeRAID M5110
Serial No       : SV51511825
FW Package Build: 23.34.0-0023

                    Mfg. Data
                ================
Mfg. Date       : 04/08/15
Rework Date     : 00/00/00
Revision No     : 46F
Battery FRU     : N/A

                Image Versions in Flash:
                ================
BIOS Version       : 5.50.03.0_4.17.08.00_0x06110200
FW Version         : 3.460.145-8209
NVDATA Version     : 2.1507.03-0162
WebBIOS Version    : 6.1-76-e_76-Rel
Preboot CLI Version: 05.07-00:#%00011
Boot Block Version : 2.05.00.00-0010
BOOT Version       : 07.26.26.219

                Pending Images in Flash
                ================
None

                PCI Info
                ================
Controller Id    : 0000
Vendor Id       : 1000
Device Id       : 005b
SubVendorId     : 1014
SubDeviceId     : 040b

Host Interface  : PCIE


* Nombre de disques présent pour l'adaptateur a1.

[root@serveur:/root] # megacli -PDGetNum -a1

 Number of Physical Drives on Adapter 1: 8

* Numéro de l'enclosure (sorte d'adresse) et le nombre disques possibles pour a0

[root@serveur:/root] # megacli -EncInfo -a0
                                    
    Number of enclosures on adapter 0 -- 1

    Enclosure 0:
    Device ID                     : 252
    Number of Slots               : 8
    Number of Power Supplies      : 0
    Number of Fans                : 0
    Number of Temperature Sensors : 0
    Number of Alarms              : 0
    Number of SIM Modules         : 1
    Number of Physical Drives     : 5
    Status                        : Normal
    Position                      : 1
    Connector Name                : Unavailable
    Enclosure type                : SGPIO
    FRU Part Number               : N/A
    Enclosure Serial Number       : N/A
    ESM Serial Number             : N/A
    Enclosure Zoning Mode         : N/A
    Partner Device Id             : Unavailable

    Inquiry data                  :
        Vendor Identification     : LSI    
        Product Identification    : SGPIO          
        Product Revision Level    : N/A
        Vendor Specific           :       


* Lister les phyisical devices (donc les disques durs) sur a0

[root@serveur:/root] # megacli -pdlist -a0

* Lister les logical et physical devices sur a0

[root@serveur:/root] # megacli -LDPDInfo -a0                    
Adapter #0

Number of Virtual Disks: 1
Virtual Drive: 0 (Target Id: 0)
Name                :
RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3
Size                : 2.906 TB
Is VD emulated      : Yes
Parity Size         : 744.125 GB
State               : Optimal
Strip Size          : 128 KB
Number Of Drives    : 5
Span Depth          : 1
Default Cache Policy: WriteThrough, ReadAhead, Direct, No Write Cache if Bad BBU
Current Cache Policy: WriteThrough, ReadAhead, Direct, No Write Cache if Bad BBU
Default Access Policy: Read/Write
Current Access Policy: Read/Write
Disk Cache Policy   : Disabled
Encryption Type     : None
PI type: No PI

Is VD Cached: No
Number of Spans: 1
Span: 0 - Number of PDs: 5

PD: 0 Information
Enclosure Device ID: 252
Slot Number: 8
Drive's postion: DiskGroup: 0, Span: 0, Arm: 0
Enclosure position: N/A
Device Id: 10
WWN: 500a075110654841
Sequence Number: 2
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
PD Type: SATA

Raw Size: 745.211 GB [0x5d26ceb0 Sectors]
Non Coerced Size: 744.711 GB [0x5d16ceb0 Sectors]
Coerced Size: 744.125 GB [0x5d040800 Sectors]
Emulated Drive: Yes
Firmware state: Online, Spun Up
Commissioned Spare : No


La même commande peut être lancée sur tous les adaptateurs :
megacli -LDPDInfo -aAll

*  Voir le nombre de devices logiques sur le contrôleur a0.

[root@serveur:/root] # megacli -LDGetNum -a0
                                   
 Number of Virtual Drives Configured on Adapter 0: 1

Pour ce cas, on en a qu'un, il s'appellera L0.

* Voir la configuration de nos RAID sur a0.

[root@serveur:/root] # megacli -CfgDsply -a0
       
==============================================================================
Adapter: 0
Product Name: ServeRAID M5110
Memory: 1024MB
BBU: Present
Serial No: SV51511825
==============================================================================
Number of DISK GROUPS: 1

DISK GROUP: 0
Number of Spans: 1
SPAN: 0
Span Reference: 0x00
Number of PDs: 5
Number of VDs: 1
Number of dedicated Hotspares: 0
Virtual Drive Information:
Virtual Drive: 0 (Target Id: 0)
Name                :
RAID Level          : Primary-5, Secondary-0, RAID Level Qualifier-3
Size                : 2.906 TB
Is VD emulated      : Yes
Parity Size         : 744.125 GB
State               : Optimal
Strip Size          : 128 KB
Number Of Drives    : 5


* Voir les informations de positionnement disques (en prévision de leur manipulation par exemple)

[root@serveur:/root] # megacli -PDList -aALL | egrep 'Adapter|Enclosure|Slot|Inquiry'
Adapter #0
Enclosure Device ID: 252
Slot Number: 8
Enclosure position: N/A
Inquiry Data:             10654841MTFDDAK800MBB-1AE1ZA 00AJ371 00AJ374LEN     MC50
Enclosure Device ID: 252
Slot Number: 9
Enclosure position: N/A
Inquiry Data:             1065482EMTFDDAK800MBB-1AE1ZA 00AJ371 00AJ374LEN     MC50
Enclosure Device ID: 252
Slot Number: 10
Enclosure position: N/A
Inquiry Data:             10654840MTFDDAK800MBB-1AE1ZA 00AJ371 00AJ374LEN     MC50
Enclosure Device ID: 252
Slot Number: 11
Enclosure position: N/A
Inquiry Data:             158BEF04MTFDDAK800MBB-1AE1ZA 00AJ371 00AJ374LEN     MC50
Enclosure Device ID: 252
Slot Number: 12
Enclosure position: N/A
Inquiry Data:             128CFABAMTFDDAK800MBB-1AE1ZA 00AJ371 00AJ374LEN     MC47
Adapter #1
Enclosure Device ID: 252
Slot Number: 0
Enclosure position: N/A
Inquiry Data: IBM-ESXSAL13SEB300      SB3574803AH5SB35SB35SB35
Enclosure Device ID: 252
Slot Number: 1
Enclosure position: N/A
Inquiry Data: IBM-ESXSAL13SEB300      SB3574602GH5SB35SB35SB35
Enclosure Device ID: 252
Slot Number: 2
Enclosure position: N/A
Inquiry Data: IBM-ESXSAL13SEB600      SB3564T01GH4SB35SB35SB35
Enclosure Device ID: 252
Slot Number: 3
Enclosure position: N/A
Inquiry Data: IBM-ESXSAL13SEB600      SB3564U0BNH4SB35SB35SB35
Enclosure Device ID: 252
Slot Number: 4
Enclosure position: N/A
Inquiry Data: IBM-ESXSHUC101212CSS60  J2MCKZHT7WYHJ2MCJ2MCJ2MC
Enclosure Device ID: 252
Slot Number: 5
Enclosure position: N/A
Inquiry Data: IBM-ESXSHUC101212CSS60  J2MCKZHT7GBHJ2MCJ2MCJ2MC
Enclosure Device ID: 252
Slot Number: 6
Enclosure position: N/A
Inquiry Data: IBM-ESXSHUC101212CSS60  J2MCKZJAMP4HJ2MCJ2MCJ2MC
Enclosure Device ID: 252
Slot Number: 7
Enclosure position: N/A
Inquiry Data: IBM-ESXSST1200MM0007    B57ES3L0HEXZ0526B57E   


Ou bien, juste :

[root@serveur:/root] # megacli -LDPDInfo -a0 | egrep -e "Enclosure Device|Slot Number"
Enclosure Device ID: 252
Slot Number: 8
Enclosure Device ID: 252
Slot Number: 11
Enclosure Device ID: 252
Slot Number: 9
Enclosure Device ID: 252
Slot Number: 10
Enclosure Device ID: 252
Slot Number: 12


* Juste un disque en particulier

[root@serveur:/root] # megacli -PDInfo -PhysDrv [252:12] -a0
Enclosure Device ID: 252
Slot Number: 12
Enclosure position: N/A
Device Id: 13
WWN: 500a0751128cfaba
Sequence Number: 2
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
PD Type: SATA

Raw Size: 745.211 GB [0x5d26ceb0 Sectors]
Non Coerced Size: 744.711 GB [0x5d16ceb0 Sectors]
Coerced Size: 744.125 GB [0x5d040800 Sectors]
Emulated Drive: Yes
Firmware state: Online, Spun Up
Device Firmware Level: MC47
Shield Counter: 0
Successful diagnostics completion on :  N/A
SAS Address(0): 0x4433221103000000
Connected Port Number: 4(path0)
Inquiry Data:             128CFABAMTFDDAK800MBB-1AE1ZA 00AJ371 00AJ374LEN     MC47
FDE Capable: Not Capable
FDE Enable: Disable
Secured: Unsecured
Locked: Unlocked
Needs EKM Attention: No
Foreign State: None
Device Speed: 6.0Gb/s
Link Speed: 6.0Gb/s
Media Type: Solid State Device
Drive Temperature :17C (62.60 F)
PI Eligibility:  No
Drive is formatted for PI information:  No
PI: No PI
Port-0 :
Port status: Active
Port's Linkspeed: 6.0Gb/s
Drive has flagged a S.M.A.R.T alert : No


2- Ajouter un nouveau disque à un RAID


* Exemple : Ajouter le physical device (disque physique) à la position [252:12] sur l'adaptateur a0 au logical device L0 (qui est un RAID-5)

[root@serveur:/root] # megacli -LDRecon -Start -r5 -Add -PhysDrv[252:12]  -L0 -a0

* Pour voir l'évolution de la reconstruction (qui peut prendre plusieurs heures, voire même quelques jours) :

megacli -LDRecon -ShowProg -L0 -a0 # Le taux de progression

megacli -pdrbld -ShowProg -PhysDrv[252:12] -a0 #

megacli -AdpGetProp RebuildRate -a0  # La vitesse de progression

 *  Une fois la reconstruction terminée, vérifier avec ceci :

megacli -CfgDsply  -a0

[root@serveur:/root] # megacli -PdInfo -PhysDrv[252:12] -a0
Enclosure Device ID: 252
Slot Number: 12
Drive's postion: DiskGroup: 0, Span: 0, Arm: 4
Enclosure position: N/A
Device Id: 13
WWN: 500a0751128cfaba
Sequence Number: 2
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
PD Type: SATA

Raw Size: 745.211 GB [0x5d26ceb0 Sectors]
Non Coerced Size: 744.711 GB [0x5d16ceb0 Sectors]
Coerced Size: 744.125 GB [0x5d040800 Sectors]
Emulated Drive: Yes
Firmware state: Online, Spun Up


3- Ajouter/Supprimer un disque de spare

* Ajouter un disque de spare pour le contrôleur a0 (spare tous les volumes RAID sur le contrôleur) :

megacli -PDHSP -Set -PhysDrv [252:14] -a0

* Ajouter un spare pour un volume RAID particulier (par exemple L2)

megacli -PDHSP -Set -Dedicated -array2 -PhysDrv[252:14] -a0

* Supprimer le spare

megacli -PDHSP -Rmv -PhysDrv [252:14] -a0

4- Retirer (et remplacer) un disque

* Étape 0 : Faire blinker les LED du disque pour le retrait manuel

megacli -PdLocate -start -physdrv[252:14] -a1   # Démarrer
megacli -PdLocate -stop -physdrv[252:14] -a1   # Arrêter une fois que c'est repéré

* Étape 1 : Mettre le disque à offline s'il ne l'est pas déjà

megacli -pdoffline -physdrv[252:14] -a1
megacli -LDPDInfo -a1 | egrep -e "Enclosure Device|Slot Number|^Firmware" # Vérifier qu'il y a offline sur la ligne firmware pour le disque en question

* Étape 2 : Passer le disque à missing

megacli -pdmarkmissing -physdrv[252:14] -a1

* Étape 3 : Marquer le disque à "prepared for removal"

megacli -pdprprmv -physdrv[252:14] -a1

* Le disque peut alors être retiré physiquement en utilisant l'étape 0 pour le repérer

* Pour le remplacer, deux possibilités :

a- Il y avait un spare qui a déjà pris sa place, donc on rajoute un nouveau spare

b- Il n y avait pas de spare, il faut donc ajouter un nouveau disque dans le RAID

megacli -Pdgetmissing -a1   # Récupérer les informations sur le array et le row
megacli -PdReplaceMissing -PhysDrv[252:14] -ArrayN -rowM -a1   # Remplacer
megacli -PDRbld -Start -PhysDrv[252:14] -a1   # Reconstruire
megacli -pdrbld -ShowProg -PhysDrv[252:14] -a1 # Vérifier la progression de la reconstruction

5- Autres

* Informations sur le port PCI de branchement de l'adaptateur a0

megacli -AdpGetPciInfo -a0

* Informations sur l'heure de l'adaptateur a0

megacli -AdpGetTime -a0

* Lancer un diagnostique et récupérer les résultats sur l'adaptateur a0

megacli -AdpDiag -a0
megacli -EncInfo -a0

* Passer un disque offline

megacli -PDOffline -PhysDrv [252:14] -a0


Sources :

https://www.maths.cam.ac.uk/computing/docs/public/megacli_raid_lsi.html

https://www.admin-linux.fr/memo-megacli-utilisation-de-controleur-raid-delllsi/

https://blog.frehi.be/2011/09/12/megacli-useful-commands/

http://www.advancedclustering.com/act_kb/how-to-expand-an-existing-lsi-raid-array-using-megacli/



L'information, n'est-elle pas précieuse ? Partageons la tous ensemble !

 © Juin 2018
Roger YERBANGA
www.yerbynet.com