Mylex DAC960 PCI RAID Controller Driver for Linux Version 2.0.0 for Linux 2.0.36 Version 2.1.0 for Linux 2.1.130 BETA TEST RELEASE 3 23 November 1998 Leonard N. Zubkoff Dandelion Digital lnz@dandelion.com Copyright 1998 by Leonard N. Zubkoff INTRODUCTION Mylex, Inc. designs and manufactures a variety of high performance PCI RAID controllers based on the Intel i960 processor. Mylex Corporation is located at 34551 Ardenwood Blvd., Fremont, California 94555, USA and can be reached at 510/796-6100 or on the World Wide Web at http://www.mylex.com. Mylex RAID Technical Support can be reached by electronic mail at support@mylex.com, by Voice at 510/608-2400, or by FAX at 510/745-7715. Contact information for offices in Europe and Japan is available on the Web site. The latest information on Linux support for DAC960 PCI RAID Controllers, as well as the most recent release of this driver, will always be available from my Linux Home Page at URL "http://www.dandelion.com/Linux/". Bug reports should be sent via electronic mail to "lnz@dandelion.com". Please include with the bug report the complete configuration messages reported by the driver at startup, along with any subsequent system messages relevant to the controller's operation, and a detailed description of your system's hardware configuration. Please consult the DAC960 documentation for detailed information regarding installation and configuration of the controllers. This document primarily provides information specific to the Linux DAC960 support. DRIVER FEATURES The DAC960 is supported solely as a high performance RAID controller, not as an interface to arbitrary SCSI devices. The Linux DAC960 driver operates at the block device level, the same level as the SCSI and IDE drivers. Unlike other RAID controllers currently supported on Linux, the DAC960 driver is not dependent on the SCSI subsystem, and hence avoids all the complexity and unnecessary code that would be associated with an implementation as a SCSI driver. The DAC960 driver is designed for as high a performance as possible with no compromises or extra code for compatibility with lower performance devices. The DAC960 driver is architected to support up to 8 controllers per system. Each DAC960 controller can support up to 45 disk drives on 3 channels. The drives installed on a controller are divided into one or more "Drive Groups", and then each Drive Group is subdivided further into 1 to 32 "Logical Drives". Each Logical Drive has a specific RAID Level and caching policy associated with it, and it appears to Linux as a single block device. Logical Drives are further subdivided into up to 7 partitions through the normal Linux and PC disk partitioning schemes. Logical Drives are also known as "System Drives", and Drive Groups are also called "Packs". Both terms are in use in the Mylex documentation; I have chosen to standardize on the more generic "Logical Drive" and "Drive Group". DAC960 RAID disk devices are named in the style of the Device File System (DEVFS). The device corresponding to Logical Drive D on Controller C is referred to as /dev/rd/cCdD, and the partitions are called /dev/rd/cCdDp1 through /dev/rd/cCdDp7. For example, partition 3 of Logical Drive 5 on Controller 2 is referred to as /dev/rd/c2d5p3. Note that unlike with SCSI disks the device names will not change in the event of a disk drive failure. The DAC960 driver is assigned major numbers 48 - 55 with one major number per controller. The 8 bits of minor number are divided into 5 bits for the Logical Drive and 3 bits for the partition. SUPPORTED DAC960 PCI RAID CONTROLLERS The following list comprises the supported DAC960 PCI RAID Controllers as of the date of this document. It is recommended that anyone purchasing a Mylex PCI RAID Controller not in the following table contact the author beforehand to verify that it is or will be supported. AcceleRAID 250 (DAC960PTL-1) Uses onboard Symbios SCSI chips on certain motherboards Also includes one onboard Wide Ultra-2/LVD SCSI channel 66MHz Intel i960RD RISC Processor 4MB/8MB/16MB/32MB/64MB/128MB ECC EDO Memory AcceleRAID 200 (DAC960PTL-0) Uses onboard Symbios SCSI chips on certain motherboards Includes no onboard SCSI channels 66MHz Intel i960RD RISC Processor 4MB/8MB/16MB/32MB/64MB/128MB ECC EDO Memory DAC960PJ 1/2/3 Wide Ultra SCSI-3 Channels 66MHz Intel i960RD RISC Processor 4MB/8MB/16MB/32MB/64MB/128MB ECC EDO Memory DAC960PG 1/2/3 Wide Ultra SCSI-3 Channels 33MHz Intel i960RP RISC Processor 4MB/8MB ECC EDO Memory DAC960PU 1/2/3 Wide Ultra SCSI-3 Channels Intel i960CF RISC Processor 2MB/4MB/8MB/16MB/32MB EDRAM or DRAM Memory (max 8MB EDRAM) DAC960PD 1/2/3 Wide Fast SCSI-2 Channels Intel i960CF RISC Processor 2MB/4MB/8MB/16MB/32MB EDRAM or DRAM Memory (max 8MB EDRAM) DAC960PL 1/2/3 Wide Fast SCSI-2 Channels Intel i960 RISC Processor 2MB/4MB/8MB/16MB/32MB DRAM Memory For the DAC960PJ and DAC960PG, firmware version 4.06-0-00 or above is required. This firmware version is available from http://www.dandelion.com/Linux/ and will eventually be available from http://www.mylex.com as well. It has been released by Mylex and is provided with new controllers, but it has not yet appeared on their support web pages as of the date of this document. For the DAC960PU, DAC960PD, and DAC960PL, firmware version 3.51-0-04 or above required. This firmware version is available from http://www.mylex.com. Note that earlier revisions of the DAC960PU, DAC960PD, and DAC960PL controllers were delivered with version 2.xx firmware. Version 2.xx firmware is not supported by this driver and no support is envisioned. Contact Mylex RAID Technical Support to inquire about upgrading controllers with version 2.xx firmware to version 3.51-0-04. Upgrading to version 3.xx firmware requires installation of higher capacity Flash ROM chips, and not all DAC960PD and DAC960PL controllers can be upgraded. Please note that not all SCSI disk drives are suitable for use with DAC960 controllers, and only particular firmware versions of any given model may actually function correctly. Similarly, not all motherboards have a BIOS that properly initializes the AcceleRAID 250, AcceleRAID 200, DAC960PJ, and DAC960PG because the Intel i960RD/RP is a multi-function device. If in doubt, contact Mylex RAID Technical Support (support@mylex.com) to verify compatibility. CONTROLLER CONFIGURATION AND STATUS MONITORING The DAC960 Online Configuration Utilities are not yet available on Linux but will hopefully be supported in the future. The AcceleRAID 250, AcceleRAID 200, DAC960PJ, and DAC960PG controllers can generally be configured using the DAC960 Configuration Utility included in the controller's BIOS ROM and available via Alt-R during BIOS initialization. Older DAC960 controllers required the DACCF utility that runs from a DOS boot disk. The status of each DAC960 controller is queried every 7 seconds by the Linux driver to verify that no problems have been detected, and any changes in status are reported through appropriate kernel messages. The following log excerpt details the process of the controller automatically rebuilding onto a spare drive when a disk drive failed. In this example, 4 drives in a SAF-TE enclosure were grouped into a Drive Group which was then divided into 3 Logical Drives configured as RAID-5, RAID-5, and RAID-6. An additional identical drive was installed as a "Standby" or "Hot Spare" to provide for automatic rebuilding. The first two messages are the result of the standby drive being removed, the third message is a result of it being reinstalled, and the remaining messages are the result of the first drive being removed to force an automatic rebuild. DAC960#0: Physical Drive 0:4 killed because it was removed DAC960#0: Physical Drive 0:4 is now DEAD DAC960#0: Physical Drive 0:4 is now STANDBY DAC960#0: Logical Drive 0 (/dev/rd/c0d0) is now CRITICAL DAC960#0: Logical Drive 1 (/dev/rd/c0d1) is now CRITICAL DAC960#0: Logical Drive 2 (/dev/rd/c0d2) is now CRITICAL DAC960#0: Physical Drive 0:0 killed because of timeout on SCSI command DAC960#0: Physical Drive 0:0 is now DEAD DAC960#0: Physical Drive 0:0 killed because it was removed DAC960#0: Physical Drive 0:4 is now WRITE-ONLY DAC960#0: REBUILD IN PROGRESS: Logical Drive 0 (/dev/rd/c0d0) 9% completed DAC960#0: REBUILD IN PROGRESS: Logical Drive 0 (/dev/rd/c0d0) 45% completed DAC960#0: REBUILD IN PROGRESS: Logical Drive 0 (/dev/rd/c0d0) 90% completed DAC960#0: REBUILD IN PROGRESS: Logical Drive 1 (/dev/rd/c0d1) 28% completed DAC960#0: REBUILD IN PROGRESS: Logical Drive 1 (/dev/rd/c0d1) 66% completed DAC960#0: REBUILD IN PROGRESS: Logical Drive 2 (/dev/rd/c0d2) 62% completed DAC960#0: REBUILD IN PROGRESS: Logical Drive 2 (/dev/rd/c0d2) 82% completed DAC960#0: REBUILD COMPLETED SUCCESSFULLY DAC960#0: Logical Drive 0 (/dev/rd/c0d0) is now ONLINE DAC960#0: Logical Drive 1 (/dev/rd/c0d1) is now ONLINE DAC960#0: Logical Drive 2 (/dev/rd/c0d2) is now ONLINE DAC960#0: Physical Drive 0:4 is now ONLINE DRIVER INSTALLATION This distribution was prepared for Linux kernel version 2.0.36 or 2.1.130. To install the DAC960 RAID driver, you may use the following commands, replacing "/usr/src" with wherever you keep your Linux kernel source tree: cd /usr/src tar -xvzf DAC960-2.0.0-Beta3.tar.gz (or DAC960-2.1.0-Beta3.tar.gz) mv README.DAC960 DAC960.[ch] linux/drivers/block patch -p0 < DAC960.patch cd linux make config make depend make zImage (or bzImage) Then install "arch/i386/boot/zImage" or "arch/i386/boot/bzImage" as your standard kernel, run lilo if appropriate, and reboot. To create the necessary devices in /dev, the "make_rd" script included in "DAC960-Utilities.tar.gz" from http://www.dandelion.com/Linux/ may be used. Also included in this archive are patches to LILO 20 and FDISK v2.8 that add DAC960 support, along with statically linked executables of LILO and FDISK. This modified version of LILO will allow booting from a DAC960 controller and/or mounting the root file system from a DAC960. Unfortunately, installing directly onto a DAC960 will be problematic until the various Linux distribution vendors update their installation utilities. DAC960 ANNOUNCEMENTS MAILING LIST The DAC960 Announcements Mailing List provides a forum for informing Linux users of new driver releases and other announcements regarding Linux support for DAC960 PCI RAID Controllers. To join the mailing list, send a message to "dac960-announce-request@dandelion.com" with the line "subscribe" in the message body.