Raid Perc Megaraid / Adaptec

De BlaxWiki
Aller à la navigationAller à la recherche

Migration de raid entre différentes cartes

Cela concerne des raid 1 (mais ne doit pas poser de soucis en raid 5) :

R610 SAS carte Dell 6R vers R620 carte H710 : Rebuild en boucle : KO
R610 carte Perc6I vers R620 carte H710 : ok
R610 carte H700 vers R620 carte H710 : ok


Changement de batterie

Pour effectuer un bon changement de batterie de carte raid 8408e ou de carte raid , si l on veut juste changer la batterie de la carte raid, il faut obligatoirement la reflasher car :
 - la batterie ne serait pas reconnue (test effectué, batterie chargée, dépleuguée et repluguée sur même carte )
 - de même si la batterie est complément déchargée ou si le câble qui relier la batterie à son support est débranchée (elle doit servir en meme temps de piles de bios car on perd même 
la conf)

Check Megaraid

MegaRaid SCSI / Megarc

Scrits

megaraid.tar.gz
Script check-raid-status-PERC.pl
# cp megarc /usr/local/sbin/
# cp megamgr /usr/local/sbin/
# ./check-raid-status-PERC.pl
# cat /var/tmp/raid.status
OPTIMAL 1.00=ONLINE 1.01=ONLINE

Commandes utiles

./megarc.bin  -dispCfg -a0 : info sur le raid
./megarc.bin -LogPhysInfo -alladp : info disque
./megarc.bin  -ctlrInfo -a0 : info controleur
./megarc.bin  -newCfg -R1 -a0 WB RAA CIO : passe le logical drive en Write back
./megarc.bin  -doRbld -a0 -RbldArray[0:1] : rebuild du disque channel 0 Target 1 (le nouveau disque)

MegaRaid SAS / Megacli

Scripts

MegaCli

Placez le fichier "MegaCli" et "check-raid-status-SAS.sh" dans le repertoire "/usr/local/sbin/"

Commandes Utiles

MegaCli -LDInfo -LALL -aALL : donne infos essentiels
MegaCli -AdpAllInfo -aALL : Info multiples
MegaCli -CfgDsply -a0 : configuration actuelle du Raid
MegaCli -LDSetProp ADRA -LALL -AALL ; passe le cache en readadaptative 
MegaCli -LDSetProp WB -LALL -AALL ; passe le cache en write back
MegaCli -LDSetProp cached -LALL -AALL ; passe le cache en cached
MegaCli -CfgDsply -aALL donne info serial et autre sur les disques durs
MegaCli -AdpBbuCmd -GetBbuCapacityInfo  -aALL ; info batterie	
MegaCli -AdpSetProp AlarmSilence -a0 : coupe l'alarme sonore
MegaCli -PDList -a0 : lister les disques (permet de récupérer Enclosure Device ID (E) et le Slot Number (S))
MegaCli-2.00 -EncInfo -aALL : info sur la carte controleur

# Commandes disques & raid
Dans les commandes "-PhysDrv[E:S]" - E = Enclosure devide ID / S = Slot number

MegaCli -PDMakeGood -PhysDrv [E0:S0] -aAll : passe un disque en Unconfigured Good
MegaCli -PdPrpRmv -PhysDrv [E0:S0] -a0 : demande à deconnecter le disque proprepement
MegaCli -PDClear -ProgDsply -PhysDrv [E0:S0,E1:S1,...] -a0 : effectue un "Clear" sur un disque
MegaCli -PDRbld -ProgDsply -PhysDrv [E0:S0,E1:S1,...] -a0 : checke l'état d'un Rebuilt
MegaCli -PdReplaceMissing -PhysDrv [E:S] -ArrayN -rowN -aN : Replace missing drive. The number N of the array parameter is the Span Reference you get using '${megacli} -CfgDsply 
-aALL' and tr N of the row parameter is the  Physical Disk in that span or array starting with zero (it is not the physical disk.  
MegaCli -PDRbld -Start -PhysDrv [E:S] -aN : rebuild drive

Pour créer un raid avec de nouveaux disques, il faut que le disque soit dans les 2 états suivants 
 - Foreign State: None (si il est en état Foreign State:Foreign, il faut faire un ./MegaCli3 -CfgForeign -Clear -aALL , ca le fait sur tous les disques, on ne peut pas préciser le 
E:S, mais si il y a deja des disques dans une grappe raid en prod, ca ne changera rien)
 - Firmware state: Unconfigured(good), Spun Up (./MegaCli3 -PDMakeGood -PhysDrv[E] -aN)

MegaCli -CfgLdAdd -r(0|1|5) [E:S, E:S, ...] -aN : create RAID 0, 1, 5 drive (./MegaCli2 -CfgLdAdd -r 5 [32:2, 32:3, 32:4] -a0, où ici l'enclosure est 32, et les id des disques 2,3,4)
MegaCli -CfgSpanAdd -r10 -Array0[E:S,E:S] -Array1[E:S,E:S] -aN : create RAID 10 drive

MegaCli -PDOffline -PhysDrv [E:S] -aN : passe un disque en offline
MegaCli -PDHSP -Set -PhysDrv [E:S] -aN : spécifie un global hotspare

# Commandes liées à la batterie

Lorsque le taux d'erreur de la carte est > 5/6%, elle ne peut pas passer en writeback, il faut alors envoyer un relearn (qui va décharger puis recharger la batterie)
# Extraire la configuration de la carte :
MegaCli –AdpAllInfo -a0 > LSIconfiguration.txt

# Lancer un calibrage / relearn de la BBU (batterie)
MegaCli -adpbbucmd -bbulearn –a0

# Si commande ok, le résultat est le suivant (si il y a un failed, c est que la batterie est morte ou pas encore assez rechargée, il faut attendre
Adapter 0: BBU Learn Succeeded.

# Extraire les logs de la carte 
MegaCli.exe -adpeventlog -getevents -f logsas.txt –a0

# Extraire le statut de la BBU
MegaCli -AdpBbuCmd -a0 > LSIBBUstatus.txt

On doit pouvoir alors la passer en writeback, cached....

Check du raid

Placez une crontab dans "/etc/crontab" :

# Check du raid
*/5 * * * * root /usr/local/sbin/check-raid-status-SAS.sh

Mettre en place un check_http2 avec "Optimal" en chaine de caractères.

En cas de disque Failed

1er choix

En cas de changement de disque (disque neuf) il n'y a pas besoin de faire ces manipulations, le Rebuilt doit se faire automatiquement. Pensez à vérifier l'état du Rebuilt voir s'il se fait correctement.

Repérer le disque deffectueux :

# MegaCli -PDList -a0
Adapter #0

Enclosure Number: 1
Slot Number: 3
Device Id: 4
Sequence Number: 6
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
Raw Size: 70007MB [0x88bb93a Sectors]
Non Coerced Size: 69495MB [0x87bb93a Sectors]
Coerced Size: 68664MB [0x861c000 Sectors]
Firmware state: Unconfigured(bad)
SAS Address(0): 0x500000e013e0db32
SAS Address(1): 0x0
Inquiry Data: FUJITSU MAX3073RC       D206DRA3P6C02MPP

Enclosure Number: 1
Slot Number: 255
Device Id: 248
Sequence Number: 0
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
Raw Size: 0MB [0x0 Sectors]
Non Coerced Size: 9007199254740480MB [0xfffffffffff00000 Sectors]
Coerced Size: 0MB [0x0 Sectors]
Firmware state: Unconfigured(good)
Inquiry Data: LSI     SGPIO           N/A 

Enclosure Number: 1
Slot Number: 2
Device Id: 3
Sequence Number: 15
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
Raw Size: 70007MB [0x88bb93a Sectors]
Non Coerced Size: 69495MB [0x87bb93a Sectors]
Coerced Size: 68664MB [0x861c000 Sectors]
Firmware state: Online
SAS Address(0): 0x500000e013e0dc12
SAS Address(1): 0x0
Inquiry Data: FUJITSU MAX3073RC       D206DRA3P6C02MPY

Enclosure Number: 0
Slot Number: 255
Device Id: 65535
Sequence Number: 0
Media Error Count: 0
Other Error Count: 0
Predictive Failure Count: 0
Last Predictive Failure Event Seq Number: 0
Raw Size: 0MB [0x0 Sectors]
Non Coerced Size: 9007199254740480MB [0xfffffffffff00000 Sectors]
Coerced Size: 0MB [0x0 Sectors]
Firmware state: Unconfigured(good)
Inquiry Data: 

Passer le disque en "Unconfigured (Good)"

MegaCli -PDMakeGood -PhysDrv [1:3] -aAll

En ligne de commande, dire au serveur que nous retirons le disque :

MegaCli -PdPrpRmv -physdrv [1:3] -a0

Ensuite retirer le disque à la main et le remplacer et le Rebuilt se fera automatiquement.

Vous pouvez ensuite checker l'état du Rebuilt avec cette commande :

MegaCli -PDRbld -ProgDsply -PhysDrv [1:3] -a0
2nd choix

Dans le cas ou le 1er choix ne fonctionne pas, rebooter le serveur afin d'effectuer le rebuilt via le "WebBios" Ctrl + H au démarrage.

Check Adaptec

2015S

# cd /usr/local/src
# wget http://i2o.shadowconnect.com/raidutils/raidutils-0.0.6.tar.bz2
# tar xjf raidutils-0.0.6.tar.bz2 && cd raidutils-0.0.6
# for i in 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17; do mknod /dev/dpti$i c 151 $i; done
# ./configure
# make
# make install
# /usr/local/bin/raidutil -L logical 2>&1 | sed -e 's/$/<br>/' > /var/www/raid.html

Vérifier que "http://aaa.bbb.ccc.ddd/raid.html" retourne bien Optimal dans l'output.

Si c'est le cas, mettre en place le fichier "check_raid.sh" :

#!/bin/sh
/usr/local/bin/raidutil -L logical 2>&1 | sed -e 's/$/<br>/' > /var/www/raid.html
exit 0
# cp check_raid.sh /usr/local/libexec
# chmod 700 /usr/local/libexec/check_raid.sh

Mettre ca dans la crontab:

# Check du raid
*/5 * * * * root /usr/local/libexec/check_raid.sh

Puis mettre en place un check_http2 dans clarawatch en recherchant le mot 'Optimal' dans la page /raid.html


Si jamais le script affiche deux RAID alors qu'il y en a qu'un (on a pas compris pourquoi), remplacer la ligne centrale de ce script avec:

/usr/local/bin/raidutil -d0 -L logical 2>&1 | sed -e 's/$/<br>/' > /var/www/raid.html

2120S

Linux Debian

Adaptec-2120S-2.6-0.tar.gz

# cd /
# tar -zxvf adaptec_2120S.tar.gz

Créer le fichier "raid.commands" dans le repertoire "/usr/local/raid/" :

open afa0
logfile start raid.current.config
container list
disk list
logfile end 
exit

Créer le fichier "check_raid.sh" toujours dans "/usr/local/raid/" :

#!/bin/bash
cd /usr/local/raid/
/usr/sbin/afacli < raid.commands

Ensuite faite la commande suivante :

# cd /usr/local/raid/
# /usr/sbin/afacli < raid.commands