From cb3b0cd22f53857eb05255d68611069ebb9f8673 Mon Sep 17 00:00:00 2001 From: Jeremy Lecour Date: Thu, 4 Nov 2021 18:43:45 +0100 Subject: [PATCH] =?UTF-8?q?Am=C3=A9lioration=20RAID=20Hard=20DELL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ServeurDELL/PERC.md | 182 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 154 insertions(+), 28 deletions(-) diff --git a/ServeurDELL/PERC.md b/ServeurDELL/PERC.md index 471970fb..58064768 100644 --- a/ServeurDELL/PERC.md +++ b/ServeurDELL/PERC.md @@ -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 : +## 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 - ## 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[:] -a0 +megacli -PdLocate start -physdrv[:] -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 ~~~