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