Table of Contents
1. Card information
MegaRAID is the legacy high-end RAID controllers series by LSI.
It is fully hardware RAIDs controllers supporting RAID5, at least, with various SCSI interfaces.
If you're a looking for information about MegaRAID with SAS or SATA connectors, please look at LSIMegaRAIDSAS instead.
All theses card can be used with stock Linux kernel which includes a working driver.
Both opensource reporting tool and proprietary management utilities exists.
Even there are old and deprecated, theses cards are a good choice for Linux, because of their great support.
2. Linux kernel drivers
|megaraid_mm & megaraid_mbox||LSI MegaRAID|
megaraid_mm and megaraid_mbox have been part of the mainstream Linux kernel for a while and should be available in all current Linux distributions.
If your card use megaraid_sas driver, please lookg at LSIMegaRAIDSAS instead.
Some lspci -nn output examples:
- 02:0e.0 RAID bus controller : Dell PowerEdge Expandable RAID controller 4 ![1028:0013] (rev 06)
- 04:03.0 RAID bus controller : Dell PowerEdge Expandable RAID controller 4/Di ![1028:000f] (rev 02)
- 02:04.0 RAID bus controller : American Megatrends Inc. MegaRAID ![101e:1960] (rev 02)
- 02:03.0 RAID bus controller : LSI Logic / Symbios Logic MegaRAID ![1000:1960] (rev 01)
3. Management and reporting tools
As theses cards are quite old, many tools exists to monitor and manage them.
The first one is an opensource tool named megactl which can be used to report controller and disks status.
For the management side, you can you megamgr, which is a proprietary utility from LSI.
3.1.1. Quickstart and output example
Print current controller status:
server:~# megactl a0 PERC 4/Di chan:2 ldrv:1 batt:good a0d0 273GiB RAID 5 1x3 optimal a0c0t0 136GiB a0d0 online a0c0t1 136GiB a0d0 online a0c0t2 136GiB a0d0 online
server:~# megactl a0 MegaRAID SCSI 320-1 chan:1 ldrv:2 batt:FAULT, module missing a0d0 68GiB RAID 1 1x2 optimal a0d1 137GiB RAID 10 2x2 optimal a0c0t0 68GiB a0d0 online a0c0t1 68GiB a0d0 online a0c0t2 68GiB a0d1 online a0c0t3 68GiB a0d1 online a0c0t4 68GiB a0d1 online a0c0t5 68GiB a0d1 online
There are several switches which are interresting:
- -H: Only print lines which are not ok.
If nothing is printer, everything is fine
- -B: Ignore batttery problems when running -H.
In fact megactl can't define if your controller has a battery or not.
If you don't have one, use this parameter.
3.1.2. SAS support and periodic checks
megactl package includes a megasasctl command too.
It works fine on old sas controller but fails with the latest one.
Please read LSIMegaRAIDSAS for informations about SATA/SAS controllers.
You can write your own script around megactl to check your adapter status health periodically.
However, I already did this for you. See megaraid-status below.
3.2.1. About megaraid-status
megaraid-status is a wrapper script around megactl with periodics checks.
It is available in the packages repository too.
The packages comes with a python wrapper around megactl and an initscript that periodic run this wrapper to check status.
It keeps a file with latest status and thus is able to detect RAID status changes and/or brokeness.
It will log a ligne to syslog when something failed and will send you a mail.
Until arrays are healthy again a reminder will be sent each 2 hours.
3.2.2. Wrapper output example
server:~# megaraid-status -- Arrays informations -- -- ID | Type | Size | Status a0d0 | RAID 5 | 273GiB | optimal -- Disks informations -- ID | Model | Status | Warnings a0c0t0 | SEAGATE ST3146807LC 136GiB | online a0c0t1 | SEAGATE ST3146807LC 136GiB | online a0c0t2 | SEAGATE ST3146807LC 136GiB | online
server:~# megaraid-status -- Arrays informations -- -- ID | Type | Size | Status a0d0 | RAID 1 | 68GiB | optimal a0d1 | RAID 10 | 137GiB | optimal -- Disks informations -- ID | Model | Status | Warnings a0c0t0 | MAXTOR ATLAS10K5_73SCA 68GiB | online a0c0t1 | MAXTOR ATLAS10K5_73SCA 68GiB | online a0c0t2 | MAXTOR ATLAS10K5_73SCA 68GiB | online a0c0t3 | MAXTOR ATLAS10K5_73SCA 68GiB | online a0c0t4 | MAXTOR ATLAS10K5_73SCA 68GiB | online a0c0t5 | MAXTOR ATLAS10K5_73SCA 68GiB | online
3.3. megamgr & dellmgr
3.3.1. About megamgr
megamgr is a proprietary tool from LSI.
It emulates the controller BIOS from Linux, which is really nice.
However, it cannot be used to script some actions. That's why you need megactl for periodic health checks.
3.3.2. Dell specific note
A Dell specific megamgr is also available. It's called dellmgr.
Despites both megamgr and dellmgr seems to work on Dell megaraid-based RAID cards, I would advice you to use dellmgr on Dell hardware.
3.4. About /dev/megadev0
All theses tools requires this device node to be created.
Since Linux kernel 2.6.25rc2, it's created dynamically by udev.
On previous kernel, this has to be done by hand.
Proprietary tools creates the device node at startup.
I made some wrappers around binaries from megactl package to create the node if it doesn't exist yet.
4. BIOS upgrade from a Linux system
Dell cards can be flashed using firmware-tools.
See http://linux.dell.com/wiki/index.php/Repository/firmware for more informations.
However this will only work on RedHat, CentOS, SuSE and Fedora. Even Ubuntu is listed in the wikipage, LSI card upgrade is not supported.
We use a Fedora 8 nfsroot booted by PXE to update our Dell's firmware running Debian.
We don't have any informations yet about upgrading non-Dell cards.