Author: Jeremy Sanders <email@example.com>
The Accusys ACS-7x range of RAID controllers are inexpensive hardware RAID devices. They have sophisticated features such as hot swapping and automatic bad-block reallocation. They look to the host system as a standard SATA or PATA device, acting transparently with the operating system. They require no software to set up the RAID device.
Their main downside is that the supplied software to monitor the status of the RAID is rather heavy. The software runs a web server displaying the state of the RAID. It also only runs under certain platforms and is a large download.
acs7_check are two simple Python programs to monitor the RAID status using a serial port (RS232) or accessing SMART information from the disk device directly. They are designed to be run periodically from cron to monitor RAID status. Currently the serial connection should work under all POSIX systems (i.e. Linux and Unix), but the SMART program only works under Linux.
The programs only require a fairly modern version of Python. I have tested them on Python-2.5, but they should run on versions down to Python 2.2. The serial line checking program should run under any POSIX platform (I have only tested Linux). The SMART checking program will only run under Linux. If you know how to access the SMART ioctl under other platforms, please tell me.
They have been tested with the Accusys InneRAID Duo 75200 under Linux, so please check and report successes with other devices and platforms.
The programs are released under
the GNU General Public
License, version 2 or greater. The code is Copyright © 2007
Jeremy Sanders. Note that
This program is distributed in the hope
that it will be useful, but WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
Go to the download section to download the source code. See the project page for details of the SVN repository.
The acs7_serial and acs_smart scripts do not need proper installation and can be run directly from the unpacked tar.gz file. If you wish to install them properly do
# python setup.py build # python setup.py install
See the distutils documentation if you have more specific installation requirements.
The two scripts are called
acs7_serial. They take the same command line
parameters. They return a non-zero error code if there is a problem
with the RAID device or its disks. Any error message is printed to
stderr. To periodically check the RAID status they can be run
from cron by being
placed in the crontab. cron emails the owner of the crontab if any
output appears. For instance the following crontab entry would check
the SMART status of device /dev/sda every 15 minutes:
01,16,31,46 * * * * acs7_smart --device=/dev/sda
The programs take additional command line parameters to print out more information about the status of the RAID. They can be used to check that the programs are interrogating the RAID device correctly.
|-d DEVICE, --device=DEVICE||Specify the device to query the RAID on. This will be a disk device for SMART or a serial device for the serial interface. By default this is /dev/sda and /dev/ttyS0 for SMART and serial, respectively.|
|-a, --all||Show all available information|
|-s, --status||Show RAID status|
|-c, --controller||Show controller information|
|-r, --raid||Show information about the RAID device|
|-k, --disks||Show information about the disks which make up the RAID|
|-h, --help||Show how to run the program|
Sample output from the programs is shown here.
Please report any problems to my email address above. I will set up a mailing list if I receive interest.
Thanks to Accusys for providing me with the API documentation for the ACS-7 series. For reference, the version of the documentation I received used the wrong Feature code for SMART. It should be 0xd0 (ATA_SMART_READ_VALUES) rather than 0xd9 (SMART_DISABLE).Last updated by Jeremy Sanders on 2007-11-18.