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