[[TOC(depth=-1)]] = LSI MegaRAID SAS = [[Image(wiki:LSI:logo_lsi.gif)]] [[BR]][[BR]] = 1. Card information = MegaRAID SAS is the current high-end RAID controllers series by LSI. [[BR]]It is fully hardware RAIDs controllers supporting RAID5, at least, with SAS or SATA interfaces. [[BR]]If you're a looking for information about MegaRAID SCSI connectors, please look at [wiki:LSIMegaRAID] instead. All theses card can be used with stock Linux kernel which includes a '''working driver'''. [[BR]]It's quite new and thus, may be missing in some not-up-to-date distributions. There is currently '''no known opensource tool''' for theses cards. [[BR]]Some old MegaRAID SAS can be used with megactl, but none of current cards works. [[BR]]However LSI provide ''megacli'', a '''proprietary management command line utility''' which is rather '''hard to use'''. [[BR]] = 2. Linux kernel drivers = || Driver || Supported cards || || megaraid_sas || LSI MegaRAID SAS || ''megaraid_sas is part of mainstream Linux kernel and should be available in all current distributions. [[BR]]However, please that most of old distributions won't have this driver. If your card use ''megaraid_mm'' or ''megaraid_mbox'' driver, please look at [wiki:LSIMegaRAID] instead. Some ''lspci -nn' output examples: * 02:0e.0 RAID bus controller ![0104]: Dell !PowerEdge Expandable RAID controller 5 ![1028:0015] [[BR]] = 3. Management and reporting tools = '''megactl''' includes a SAS compliant binary named '''megasasctl'''. It seems to '''work on old card''' but fails with the new one. [[BR]] If megasasctl doesn't work for you, you will have to use the '''proprietary cli utility''' from LSI: '''megaclisas'''. For managing the card there are no alternatives to ''megaclisas''. == 3.1. megactl == Despites megasasctl doesn't seem to work with recent cards, you should really give it a try. === 3.1.1. Quickstart and output example === Print current controller status: {{{ server:~# megasasctl a0 PERC 5/i Integrated encl:1 ldrv:1 batt:good a0d0 136GiB RAID 1 1x2 optimal a0e8s0 136GiB a0d0 online a0e8s1 136GiB a0d0 online }}} There are several switches which are interresting: * '''-H''': Only print lines which are not ok.[[BR]]If nothing is printer, everything is fine * '''-B''': Ignore batttery problems when running -H.[[BR]]In fact megasasctl can't define if your controller has a battery or not.[[BR]]If you don't have one, use this parameter. === 3.1.2. Periodic checks === You can write your own script around megasasctl 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 === '''megaraidsas-status''' is a wrapper script around megactl with periodics checks. [[BR]]It is available in the packages repository too. [[BR]]The packages comes with a python wrapper around megasasctl and an initscript that '''periodic''' run this wrapper to '''check status'''. [[BR]]It keeps a file with latest status and thus is able to detect RAID '''status changes and/or brokeness'''. [[BR]]It will log a ligne to '''syslog''' when something failed and will send you a '''mail'''. [[BR]]Until arrays are healthy again a '''reminder''' will be sent each 2 hours. === 3.2.2. Wrapper output example === {{{ server:~# megaraidsas-status -- Arrays informations -- -- ID Type Size Status a0d0 RAID 1 136GiB optimal -- Disks informations -- ID Model Status a0e8s0 SEAGATE ST3146854SS online a0e8s1 SEAGATE ST3146854SS online }}} == 3.3. megaclisas == === 3.3.1. About megaclisas === '''megacli''' is a proprietary tool by LSI which can perform both '''reporting and management''' for MegaRAID SAS cards. [[BR]]However it's really hard to use because it's use '''tones of command line parameters''' and there's '''no documentation'''. === 3.3.2. Quickstart and output example === Get all adapters status and config: {{{ server:~# megacli -AdpAllInfo -aAll Adapter #0 ============================================================================== Versions ================ Product Name : PERC 5/i Integrated Serial No : 12345 FW Package Build: 5.2.1-0067 Mfg. Data ================ Mfg. Date : 00/00/00 Rework Date : 00/00/00 Revision No : @��A Battery FRU : N/A Image Versions In Flash: ================ Boot Block Version : R.2.3.12 BIOS Version : MT28-8 MPT Version : MPTFW-00.10.61.00-IT FW Version : 1.03.40-0316 WebBIOS Version : 1.03-04 Ctrl-R Version : 1.04-019A [...] }}} Logical drive 0 on adapter 0 status and type: {{{ server:~# megacli -LDInfo -L0 -a0 Adapter 0 -- Virtual Drive Information: Virtual Disk: 0 (Target Id: 0) Name:raid1 RAID Level: Primary-1, Secondary-0, RAID Level Qualifier-0 Size:237824MB State: Optimal Stripe Size: 64kB Number Of Drives:2 Span Depth:1 Default Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU Current Cache Policy: WriteBack, ReadAheadNone, Direct, No Write Cache if Bad BBU Access Policy: Read/Write Disk Cache Policy: Disk's Default Exit Code: 0x00 }}} Display, disable or enable automatic rebuild on adapter 0: {{{ server:~# megacli -AdpAutoRbld -Dsply -a0 Adapter 0: AutoRebuild is Enabled. Exit Code: 0x00 server:~# megacli -AdpAutoRbld -Dsbl -a0 Adapter 0: AutoRebuild is Disabled. Exit Code: 0x00 server:~# megacli -AdpAutoRbld -Enbl -a0 Adapter 0: AutoRebuild is Enabled. Exit Code: 0x00 }}} Get and modify rebuild rate: {{{ pr57ga:~# megacli -AdpGetProp RebuildRate -a0 Adapter 0: Rebuild Rate = 30% Exit Code: 0x00 server:~# megacli -AdpSetProp RebuildRate 60 -a0 Adapter 0: Set rebuild rate to 60% success. Exit Code: 0x00 }}}