Amélioration RAID Hard DELL

This commit is contained in:
Jérémy Lecour 2021-11-04 18:43:45 +01:00 committed by Jérémy Lecour
parent 5d8c700e1b
commit cb3b0cd22f

View file

@ -2,10 +2,23 @@
title: RAID Hardware sur serveur DELL avec contrôleur PERC
---
**Cette page a été importée automatiquement de notre ancien wiki mais n'a pas encore été révisée.**
Documentation : <http://hwraid.le-vert.net/wiki/LSIMegaRAIDSAS>
## Infos générales
MegaCli est un outil propriétaire mal documenté mais qui s'avère capable de faire de très nombreuses opérations sur des cartes RAID Dell PERC.
On peut avoir l'ensemble des options avec la commande `megacli -help`.
Quelques termes et acronymes ou abréviations courantes :
* LD = logicial device
* PD = physical device
* Cfg = Configuration
* Prop = propriété
* aX (utilisé souvent comme `-a0`, `-aAll`…) désigne un adaptateur (une carte RAID)
* LX (utilisé souvent comme `-L0`, `-LAll`…) désigne un volume logique
<http://hwraid.le-vert.net/wiki/LSIMegaRAIDSAS>
## Remplacement d'un disque HS
@ -13,8 +26,8 @@ Vous avez un disque HS, par exemple le disque 0, qui clignote.
Vous constatez ainsi le `Firmware state: Failed` :
~~~
# /opt/MegaCli -PDList -a0
# megacli -PDList -a0
Adapter #0
Enclosure Device ID: 32
@ -90,8 +103,8 @@ Connected Port Number: 0(path0)
Après un petit reboot, seul `Firmware state: Unconfigured(good)` subsiste. Vous avez ainsi :
~~~
# /opt/MegaCli -PDList -a0
# megacli -PDList -a0
Adapter #0
Enclosure Device ID: 32
@ -130,8 +143,8 @@ Connected Port Number: 1(path0)
On s'intéresse ensuite à notre volume RAID1 dans ce cas :
~~~
# /opt/MegaCli -CfgDsply -a0
# megacli -CfgDsply -a0
==============================================================================
Adapter: 0
Product Name: PERC 6/i Integrated
@ -183,7 +196,7 @@ Connected Port Number: 1(path0)
On veut donc remplacer `Physical Disk: 0` (row = 0) dans le `target id: 0` (array = 0) par notre nouveau disque identifié comme étant `[32:0]` ce qui donne :
~~~
# /opt/MegaCli -PdReplaceMissing -PhysDrv [32:0] -array0 -row0 -a0
# megacli -PdReplaceMissing -PhysDrv [32:0] -array0 -row0 -a0
Adapter: 0: Missing PD at Array 0, Row 0 is replaced.
~~~
@ -191,7 +204,7 @@ Il devrait donc apparaître en `Firmware state: Offline`.
On lance enfin la reconstruction :
~~~
# /opt/MegaCli -PDRbld -Start -PhysDrv[32:0] -a0
# megacli -PDRbld -Start -PhysDrv[32:0] -a0
Started rebuild progress on device(Encl-32 Slot-0)
~~~
@ -199,7 +212,7 @@ Il passe donc en `Firmware state: Rebuild`.
On peut suivre sa reconstruction via :
~~~
# /opt/MegaCli -PDRbld -ShowProg -PhysDrv [32:0] -aALL
# megacli -PDRbld -ShowProg -PhysDrv [32:0] -aALL
Rebuild Progress on Device at Enclosure 32, Slot 0 Completed 28% in 3 Minutes.
~~~
@ -211,14 +224,14 @@ L'erreur fatale à ne pas commettre lorsque vous constatez un disque en état `F
En effet, cela force à repasser en mode RAID sans reconstruction et vous pouvez dire adieu à votre système de fichiers. NE FAITES DONC *PAS* :
~~~
# /opt/MegaCli_ATTENTION -PDOnline -PhysDrv [32:0] -a0
# megacli_ATTENTION -PDOnline -PhysDrv [32:0] -a0
EnclId-32 SlotId-0 state changed to OnLine.
~~~
Identifier un disque physiquement (faire clinoter la LED) :
~~~
/opt/MegaCli -PdLocate start -physdrv[<Enclosure Device ID>:<Slot Number>] -a0
megacli -PdLocate start -physdrv[<Enclosure Device ID>:<Slot Number>] -a0
~~~
## Ajout d'un disque dans un volume RAID5
@ -247,7 +260,7 @@ Si les performances lors d'un benchmark avec le cache FS désactivé sont ridicu
Dans ce cas, si le controlleur dispose d'une mémoire cache ET d'une batterie, on peut l'activer :
~~~
# /opt/MegaCli -AdpBbuCmd -GetBbuStatus -a0 | grep -e '^isSOHGood' -e '^Charger Status' -e '^Remaining Capacity'
# megacli -AdpBbuCmd -GetBbuStatus -a0 | grep -e '^isSOHGood' -e '^Charger Status' -e '^Remaining Capacity'
Charger Status: Complete
Remaining Capacity: 1640 mAh
isSOHGood: Yes
@ -256,22 +269,22 @@ isSOHGood: Yes
La batterie est bonne, on peut l'activer :
~~~
# /opt/MegaCli -LDSetProp -Cached -LAll -aAll
# megacli -LDSetProp -Cached -LAll -aAll
Set Cache Policy to Cached on Adapter 0, VD 0 (target id: 0) success
Set Cache Policy to Cached on Adapter 0, VD 1 (target id: 1) success
Exit Code: 0x00
# /opt/MegaCli -LDSetProp EnDskCache -LAll -aAll
# megacli -LDSetProp EnDskCache -LAll -aAll
Set Disk Cache Policy to Enabled on Adapter 0, VD 0 (target id: 0) success
Set Disk Cache Policy to Enabled on Adapter 0, VD 1 (target id: 1) success
Exit Code: 0x00
# /opt/MegaCli -LDSetProp WB -LALL -aALL
# megacli -LDSetProp WB -LALL -aALL
Set Write Policy to WriteBack on Adapter 0, VD 0 (target id: 0) success
Set Write Policy to WriteBack on Adapter 0, VD 1 (target id: 1) success
@ -281,8 +294,8 @@ Exit Code: 0x00
Et dans le cas ou la batterie subisse une defaillance, on demande à ce que le cache soit désactivé :
~~~
# /opt/MegaCli -LDSetProp NoCachedBadBBU -LALL -aALL
# megacli -LDSetProp NoCachedBadBBU -LALL -aALL
Set No Write Cache if bad BBU on Adapter 0, VD 0 (target id: 0) success
Set No Write Cache if bad BBU on Adapter 0, VD 1 (target id: 1) success
@ -293,11 +306,86 @@ Les débits en lecture/écriture devraient faire un bond !
## Ajout d'un nouveau volume RAID
Exemple avec l'ajout d'un volume RAID1 sur 2 nouveaux disques :
Exemple avec l'ajout d'un volume RAID1 sur 2 nouveaux disques,pour une carte RAID où 2 ensembles RAID sont déjà présents :
~~~
# /opt/MegaCli -CfgLdAdd -r1 [32:2,32:3] -a0
# megaclisas-status
-- Controller information --
-- ID | H/W Model | RAM | Temp | BBU | Firmware
c0 | PERC H730P Adapter | 2048MB | 54C | Good | FW: 25.5.7.0005
-- Array information --
-- ID | Type | Size | Strpsz | Flags | DskCache | Status | OS Path | CacheCade |InProgress
c0u0 | RAID-1 | 223G | 64 KB | RA,WB | Enabled | Optimal | /dev/sda | None |None
c0u1 | RAID-1 | 893G | 64 KB | RA,WB | Enabled | Optimal | /dev/sdb | None |None
-- Disk information --
-- ID | Type | Drive Model | Size | Status | Speed | Temp | Slot ID | LSI ID
c0u0p0 | SSD | PHYG0240000L240AGN SSDSC2KG240G8R XCV1DL69 | 223.0 GB | Online, Spun Up | 6.0Gb/s | 28C | [32:0] | 0
c0u0p1 | SSD | PHYG02440004240AGN SSDSC2KG240G8R XCV1DL69 | 223.0 GB | Online, Spun Up | 6.0Gb/s | 24C | [32:1] | 1
c0u1p0 | SSD | TOSHIBA KPM5XVUG480G B01C80D0A115TP4F | 446.6 Gb | Online, Spun Up | 12.0Gb/s | 33C | [32:2] | 2
c0u1p1 | SSD | TOSHIBA KPM5XVUG480G B01C80D0A113TP4F | 446.6 Gb | Online, Spun Up | 12.0Gb/s | 34C | [32:3] | 3
c0u1p2 | SSD | TOSHIBA KPM5XVUG480G B01C80D0A114TP4F | 446.6 Gb | Online, Spun Up | 12.0Gb/s | 33C | [32:4] | 4
c0u1p3 | SSD | TOSHIBA KPM5XVUG480G B01C80D0A10KTP4F | 446.6 Gb | Online, Spun Up | 12.0Gb/s | 33C | [32:5] | 5
-- Unconfigured Disk information --
-- ID | Type | Drive Model | Size | Status | Speed | Temp | Slot ID | LSI ID | Path
c0uXpY | SSD | S47NNA0N201026 SAMSUNG MZ7KH960HAJR-00005 HXM7404Q | 893. Gb | Unconfigured(good), Spun Up | 6.0Gb/s | 33C | [32:6] | 6 | N/A
c0uXpY | SSD | S47NNA0N105465 SAMSUNG MZ7KH960HAJR-00005 HXM7404Q | 893. Gb | Unconfigured(good), Spun Up | 6.0Gb/s | 32C | [32:7] | 7 | N/A
~~~
Nos 2 nouveaux disques (`32:6` et `32:7`) sont dans l'état `Unconfigured`.
On tente de créer un nouveau volume logique (`-CfgLdAdd`) de type RAID1 (`-r1`) avec 2 disques sur notre carte (`-a0`).
Soit ça fonctionne directement (si les disques sont neufs), soit ce sont des disques réutilisés et il y aura probablement une erreur de ce type :
~~~
# megacli -CfgLdAdd -r1 [32:6,32:7] -a0
The specified physical disk does not have the appropriate attributes to complete
the requested command.
Exit Code: 0x26
~~~
Cela signifie qu'il y a déjà une configuration RAID trouvée sur ces disques.
Pour s'en assurer on cherche une configuration étrangère :
~~~
# megacli -CfgForeign -Scan -a0
There are 1 foreign configuration(s) on controller 0.
Exit Code: 0x00
~~~
On demande alors à afficher la configuration (`-CfgForeign`) en question (`-Dsply 0` puisqu'il n'y en a qu'une), pour vérifier si elle concerne bien les disques ajoutés et pas des disques déjà présents :
~~~
# megacli -CfgForeign -Dsply 0 -a0
[…]
Enclosure Device ID: 32
Slot Number: 7
[…]
~~~
L'affichage est très long mais il faut chercher des lignes qui mentionnent nos disques.
Maintenant qu'on est sûr, on supprime cette configuration étrangère :
~~~
# megacli -CfgForeign -Clear -a0
Foreign configuration 0 is cleared on controller 0.
Exit Code: 0x00
~~~
On peut alors retenter de créer le volume logique :
~~~
# megacli -CfgLdAdd -r1 [32:6,32:7] -a0
Adapter 0: Created VD 1
Adapter 0: Configured the Adapter!!
@ -305,18 +393,56 @@ Adapter 0: Configured the Adapter!!
Exit Code: 0x00
~~~
Ou un disque simple :
On peut ensuite ajouter au RAID créé les propriétés (`-LDSetProp`) courantes, en ciblant le volume logique `L2` de l'apateur `a0` :
~~~
# /opt/MegaCli -CfgLdAdd -r0 [252:3] -a0
Adapter 0: Created VD 2
# megacli -LDSetProp -Cached -L2 -a0
Adapter 0: Configured the Adapter!!
Set Cache Policy to Cached on Adapter 0, VD 2 (target id: 2) success
Exit Code: 0x00
# megacli -LDSetProp EnDskCache -L2 -a0
Set Disk Cache Policy to Enabled on Adapter 0, VD 2 (target id: 2) success
Exit Code: 0x00
# megacli -LDSetProp RA -L2 -a0
Set Read Policy to ReadAhead on Adapter 0, VD 2 (target id: 2) success
Exit Code: 0x00
~~~
Notre carte RAID indique donc :
~~~
# megaclisas-status
-- Controller information --
-- ID | H/W Model | RAM | Temp | BBU | Firmware
c0 | PERC H730P Adapter | 2048MB | 54C | Good | FW: 25.5.7.0005
-- Array information --
-- ID | Type | Size | Strpsz | Flags | DskCache | Status | OS Path | CacheCade |InProgress
c0u0 | RAID-1 | 223G | 64 KB | RA,WB | Enabled | Optimal | /dev/sda | None |None
c0u1 | RAID-1 | 893G | 64 KB | RA,WB | Enabled | Optimal | /dev/sdb | None |None
c0u2 | RAID-1 | 894G | 64 KB | RA,WB | Enabled | Optimal | /dev/sdc | None |Background Initialization : Completed 0%, Taken 0 min.
-- Disk information --
-- ID | Type | Drive Model | Size | Status | Speed | Temp | Slot ID | LSI ID
c0u0p0 | SSD | PHYG0240000L240AGN SSDSC2KG240G8R XCV1DL69 | 223.0 GB | Online, Spun Up | 6.0Gb/s | 28C | [32:0] | 0
c0u0p1 | SSD | PHYG02440004240AGN SSDSC2KG240G8R XCV1DL69 | 223.0 GB | Online, Spun Up | 6.0Gb/s | 24C | [32:1] | 1
c0u1p0 | SSD | TOSHIBA KPM5XVUG480G B01C80D0A115TP4F | 446.6 Gb | Online, Spun Up | 12.0Gb/s | 33C | [32:2] | 2
c0u1p1 | SSD | TOSHIBA KPM5XVUG480G B01C80D0A113TP4F | 446.6 Gb | Online, Spun Up | 12.0Gb/s | 33C | [32:3] | 3
c0u1p2 | SSD | TOSHIBA KPM5XVUG480G B01C80D0A114TP4F | 446.6 Gb | Online, Spun Up | 12.0Gb/s | 32C | [32:4] | 4
c0u1p3 | SSD | TOSHIBA KPM5XVUG480G B01C80D0A10KTP4F | 446.6 Gb | Online, Spun Up | 12.0Gb/s | 33C | [32:5] | 5
c0u2p0 | SSD | S47NNA0N201026 SAMSUNG MZ7KH960HAJR-00005 HXM7404Q | 893. Gb | Online, Spun Up | 6.0Gb/s | 33C | [32:6] | 6
c0u2p1 | SSD | S47NNA0N105465 SAMSUNG MZ7KH960HAJR-00005 HXM7404Q | 893. Gb | Online, Spun Up | 6.0Gb/s | 32C | [32:7] | 7
~~~
On voit bien un 3ème volume logique (`c0u2`) en RAID-1, en cours de reconstruction. Dans la liste des disques, on retroouve nos 2 disques associés.
## Sauvegarde/restauration de la configuration
~~~