Table of Contents
LSI Fusion MPT SAS
1. Card information
The FusionMPT SAS is a low-end card from LSI.
It only supports RAID0 and RAID1 an can usually be found in many 1U rackmount servers which have only two disks drives.
Even it's not full of features theses card appear to work fine and are supported by an opensource Linux driver.
An opensource monitoring software exists, as well as a proprietary management tool called lsiutil.
2. Linux kernel drivers
|mptsas||LSI FusionMPT SAS cards|
|mptctl||Driver to handle monitoring IOCTLs|
There are many more mpt* drivers in Linux kernel.
Somes seems to be required dependencies. Others looks like being real driver but we haven't used them yet.
mptsas has been part of the mainstream Linux kernel for a while and should be available in all current Linux distributions.
Some lspci -nn output examples:
- 02:08.0 SCSI storage controller : LSI Logic / Symbios Logic SAS1068 PCI-X Fusion-MPT SAS ![1000:0054] (rev 01)
- 07:00.0 SCSI storage controller : LSI Logic / Symbios Logic SAS1068E PCI-Express Fusion-MPT SAS ![1000:0058] (rev 08)
3. Management and reporting tools
An opensource reporting tool named mpt-status has been developped. A proprietary management tool also exists, see below.
3.1.1. Quickstart and output example
Probe controllers IDs:
server:~# mpt-status -p Checking for SCSI ID:0 Found SCSI id=0, use ''mpt-status -i 0`` to get more information.
Get status of controller "0":
server:~# mpt-status -i 0 ioc0 vol_id 0 type IM, 2 phy, 73 GB, state OPTIMAL, flags ENABLED ioc0 phy 1 scsi_id 32 ATA ST3808110AS J , 74 GB, state ONLINE, flags NONE ioc0 phy 0 scsi_id 1 ATA ST3808110AS J , 74 GB, state ONLINE, flags NONE
In most case, your controller ID will be 0. Running mpt-status without any parameters will give you the same output example as above.
You MUST have mptctl kernel module loaded to monitor your RAID HBAs.
Load it by hand for the first time and add it to /etc/modules for next reboots:
modprobe mptctl echo mptctl >> /etc/modules
3.1.2. My opinion about mpt-status
Despite it seems that no real upstream development exists for this tool, it works fine and is reliable.
We experienced several disks failure on MPT SAS controllers and mpt-status always reported the failure and status changes.
However don't expected verbose output.
3.1.3. Reporting with mpt-status
mpt-status has been greatly integrated to Debian by Petter Reinholdtsen and Steffen Joeris.
Many thanks to them for good work !
The packages comes with an initscript that periodic run mpt-status 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.
In fact, I must admit all my "something-status" packages for others kind of cards are based on this work.
This tool comes from LSI. Its sources (for Linux systems) are available but the license is not specified.
I haven't use it much, so here is a quick example of what it can do:
server:~# lsiutil LSI Logic MPT Configuration Utility, Version 1.56, March 19, 2008 1 MPT Port found Port Name Chip Vendor/Type/Rev MPT Rev Firmware Rev IOC 1. /proc/mpt/ioc0 LSI Logic SAS1068E B3 105 00143000 0 Select a device: [1-1 or 0 to quit] 1 1. Identify firmware, BIOS, and/or FCode 2. Download firmware (update the FLASH) 4. Download/erase BIOS and/or FCode (update the FLASH) 8. Scan for devices 10. Change IOC settings (interrupt coalescing) 13. Change SAS IO Unit settings 16. Display attached devices 20. Diagnostics 21. RAID actions 22. Reset bus 23. Reset target 42. Display operating system names for devices 45. Concatenate SAS firmware and NVDATA files 60. Show non-default settings 61. Restore default settings 69. Show board manufacturing information 97. Reset SAS link, HARD RESET 98. Reset SAS link 99. Reset port e Enable expert mode in menus p Enable paged mode w Enable logging Main menu, select an option: [1-99 or e/p/w or 0 to quit] 1 Current active firmware version is 00143000 (0.20.48) Firmware image's version is MPTFW-00.20.48.00-IE LSI Logic x86 BIOS image's version is MPTBIOS-6.14.10.00 (2007.09.29) Main menu, select an option: [1-99 or e/p/w or 0 to quit] 21 1. Show volumes 2. Show physical disks 3. Get volume state 4. Wait for volume resync to complete 23. Replace physical disk 26. Disable drive firmware update mode 27. Enable drive firmware update mode 30. Create volume 31. Delete volume 32. Change volume settings 33. Change volume name 50. Create hot spare 99. Reset port e Enable expert mode in menus p Enable paged mode w Enable logging RAID actions menu, select an option: [1-99 or e/p/w or 0 to quit] 2 1 volume is active, 2 physical disks are active PhysDisk 0 is Bus 0 Target 1 PhysDisk State: online PhysDisk Size 238418 MB, Inquiry Data: ATA ST3250620NS 3BKS PhysDisk 1 is Bus 0 Target 8 PhysDisk State: online PhysDisk Size 238418 MB, Inquiry Data: ATA ST3250620NS 3BKS RAID actions menu, select an option: [1-99 or e/p/w or 0 to quit] 1 1 volume is active, 2 physical disks are active Volume 0 is Bus 0 Target 0, Type IM (Integrated Mirroring) Volume Name: Volume WWID: 01e2adb8d959aedc Volume State: optimal, enabled Volume Settings: write caching enabled, auto configure, priority resync Volume draws from Hot Spare Pools: 0 Volume Size 237464 MB, 2 Members Primary is PhysDisk 1 (Bus 0 Target 8) Secondary is PhysDisk 0 (Bus 0 Target 1) RAID actions menu, select an option: [1-99 or e/p/w or 0 to quit] 3 Volume 0 State: optimal, enabled RAID actions menu, select an option: [1-99 or e/p/w or 0 to quit]
3.3. S.M.A.R.T and such
Disks' SMART can be monitored trough an SCSI generic device.
You need to make sure SCSI generic device driver is loaded (and will be loaded at boot). On Debian based system, simply run:
modprobe sg echo sg >> /etc/modules
You can now try to run smartctl against one of the scsi generic devices (you will have to figure out by yourself which one to use):
server:~# smartctl -a /dev/sg1 smartctl version 5.38 [i686-pc-linux-gnu] Copyright (C) 2002-8 Bruce Allen Home page is http://smartmontools.sourceforge.net/ Device: SEAGATE ST3600057SS Version: ES64 Serial number: 6SL0D4C3 Device type: disk Transport protocol: SAS Local Time is: Wed Feb 22 23:57:28 2012 CET Device supports SMART and is Enabled Temperature Warning Disabled or Not Supported SMART Health Status: OK Current Drive Temperature: 32 C Drive Trip Temperature: 68 C [...]
You can now edit /etc/smartd.conf and comment the "DEVICESCAN" line and add specific configuration for each drive, like the example below:
# Monitor LSI's disk SMART through SCSI generic /dev/sg1 -d removable -a -s L/../../3/02 /dev/sg2 -d removable -a -s L/../../3/03
Restart smartd and check syslog...
Feb 23 00:00:00 server smartd: Device: /dev/sg1, opened Feb 23 00:00:00 server smartd: Device: /dev/sg1, is SMART capable. Adding to "monitor" list. Feb 23 00:00:00 server smartd: Device: /dev/sg2, opened Feb 23 00:00:01 server smartd: Device: /dev/sg2, is SMART capable. Adding to "monitor" list. Feb 23 00:00:01 server smartd: Monitoring 0 ATA and 2 SCSI devices
4. BIOS upgrade from a Linux system
Sorry, we don't have any informations about this.