This is an old revision of the document!
http://thatlinuxbox.com/blog/article.php/lsi-megaraid-megacli
Install MegaCLI:
wget ftp://tsupport:tsupport@ftp0.lsil.com/private/MegaRAID/downloads/8.00.23_Linux_MegaCLI.zip unzip 8.00.23_Linux_MegaCLI.zip rpm -Uvh Lib_Utils-1.00-08.noarch.rpm MegaCli-8.00.23-1.i386.rpm
The path to MegaCLI may not be added during installation, so you might just change into the directory containing the binaries and preface commands with “./”:
cd /opt/MegaRAID/MegaCli/
In the following examples, we assume only one controller is installed and use
-a0
or -a0
.
Silence an alarm:
./MegaCli -AdpSetProp -AlarmSilence -a0
You have to escape the brackets and braces needed by some commands.
To manipulate a particular physical device, address it by enclosure and slot:
E | Enclosure Device ID |
S | Slot Number |
Disk info for drive on port 6:
./MegaCli -pdInfo -PhysDrv \[252:6\] -aALL
Display all information about all RAID adapter / settings:
./MegaCli -AdpAllinfo -aALL
Display information about all physical drives:
./MegaCli -PDList -aALL
Display information about all logical / virtual drives:
./MegaCli -LDGetProp -LALL -aALL
Removing a drive and putting it right back onto the same RAID controller will cause the drive to marked as “Foreign”. A drive in the “Foreign” state is not usable in an array.
See the detailed section here: http://thatlinuxbox.com/blog/article.php/lsi-megaraid-megacli
Summary:
Find the drive that is not “Online” which should be the newly replaced drive by showing the first few lines of output for each drive:
./MegaCli -PDList -aALL | grep --before-context=12 Firmware ./MegaCli -PDMakeGood -PhysDrv \[E:S\] -aALL
Drives (arrays) from another controller (in a “Foreign” state) can be imported and used. However, if you just want to reuse a drive, you have to clear the “Foreign” state before you can use it again:
./MegaCli -CfgForeign -Clear -a0
Make this unconfigured drive a hot spare:
./MegaCli -PDHSP -Set -PhysDrv \[E:S\] -a0
Verify RAID rebuild in progress:
./MegaCli -pdrbld -showprog -physdrv\[E:S\] -a0
or display a continuous text-gui rebuild status:
./MegaCli -pdrbld -progdsply -physdrv\[E:S\] -a0
Change the adapter rebuild rate to 60%:
./MegaCli -AdpSetProp \{RebuildRate -60\} -a0
Create a single disk (RAID 0):
./MegaCli -CfgLdAdd -r0 \[252:6\] -a0
Create a two-disk (RAID 1):
./MegaCli -CfgLdAdd -r1 \[252:6,252:7\] -a0
In some circumstances, the OS can’t see the new drive when using fdisk -l
. Try forcing a SCSI bus rescan:
echo "- - -" > /sys/class/scsi_host/host0/scan
You may need to find the proper host#:
cat /sys/class/scsi_host/host0/proc_name cat /sys/class/scsi_host/host1/proc_name cat /sys/class/scsi_host/host2/proc_name