Version 27 (modified by Adam Cécile, 12 years ago) (diff)




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

Driver Supported cards
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 [0104]: Dell PowerEdge Expandable RAID controller 4 ![1028:0013] (rev 06)
  • 04:03.0 RAID bus controller [0104]: Dell PowerEdge Expandable RAID controller 4/Di ![1028:000f] (rev 02)

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. megactl

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

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

SAS support:

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.

Periodic checks:

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. megaraid-status

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
a0c0t0  SEAGATE ST3146807LC     online
a0c0t1  SEAGATE ST3146807LC     online
a0c0t2  SEAGATE ST3146807LC     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.3.3. Screenshots



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 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.

Attachments (2)

Download all attachments as: .zip