What LSI Host RAID Adapters are supported by the amird Host Bus Adapter driver? KEYWORDS: openserver v5 osr5 LSI adapter drivers bus pci PCI-X Express u320 Ultra320 ROMB advanced hardware supplement ftp downloadable amird scsi SATA ATA fibre perc Dell version 2.22 2.18 2.25 Intel SRCU42E SRCU42X megaraid MegaRAID RELEASE: SCO OpenServer Enterprise System Release 5.0.6a, 5.0.7b SCO OpenServer Desktop System Release 5.0.6a, 5.0.7b SCO OpenServer Host System Release 5.0.6a, 5.0.7b HARDWARE: -- Ultra 320 SCSI PCI MegaRAID 320-0 (ZCR-Zero channel RAID) MegaRAID 320-1 (MegaRAID 520) MegaRAID 320-2 (MegaRAID 518) Dell PERC4/Sc (MegaRAID 320-1) Dell PERC4/Dc (MegaRAID 32-2) -- Ultra 320 SCSI PCI-X MegaRAID 320-0X (ZCR-Zero channel RAID) MegaRAID 320-2X MegaRAID 320-4X Intel SRCU42X (MegaRAID 320-2X) Dell PERC4/Di ROMB (RAID On Motherboard) -- Ultra 320 SCSI PCI-E (PCI Express) MegaRAID 320-2E Intel SRCU42E (MegaRAID 320-2E) -- Ultra 160 SCSI PCI MegaRAID 471 MegaRAID 493 MegaRAID Elite 1600 Dell PERC3/Dc (MegaRAID Elite 1600) Dell PERC3/Qc (MegaRAID Enterprise 1600) Dell PERC3/Sc -- PCI SATA MegaRAID SATA 150-4 MegaRAID SATA 150-6 MegaRAID SATA 300-4x MegaRAID SATA 300-8x -- ATA Dell CERC ATA 100/4ch RAID Controller PROBLEM: What LSI Host RAID Adapters are supported by the amird Host Bus Adapter driver? WARNING: Please read this entire document, especially when upgrading from the perc driver and/or the amird 2.22 or earlier driver. Certain steps are needed to ensure that your drives are accessible after an upgrade, and to configure logical drives via the "mkdev hd" utility after installation. NOTE: This driver package is to be installed on: SCO OpenServer Release 5.0.6a, 5.0.7b The amird version 2.25 device driver provides a unique device mapping feature to work around the SCSI address limitations of 15 devices on each physical SCSI channel. This is accomplished by introducing the concept of a "Virtual Channel", which makes it possible to define up to 40 logical drives. The new amird driver maps the logical drives to "virtual" SCSI/RAID channel(s). The number for the first virtual channel (bus) is: 1 for single channel RAID card 2 for dual channel RAID card 4 quad channel RAID card So on a: LSI 320-1 (single channel) first Virtual Bus = 1 LSI 320-2/2x/2E (dual channel) first Virtual Bus = 2 LSI 320-4x (quad channel) first Virtual Bus = 4 A mapping table is used to map the bus, target and lun to the logical drives. An example for a two channel MegaRAID controller is given below. When you use "mkdev hd" to add the logical drives to the system, the bus, target, and lun parameters should be specified as shown below. Logical Drive 0 --> bus = 2, target = 0, lun = 0 Logical Drive 1 --> bus = 2, target = 1, lun = 0 Logical Drive 2 --> bus = 2, target = 2, lun = 0 Logical Drive 3 --> bus = 2, target = 3, lun = 0 Logical Drive 4 --> bus = 2, target = 4, lun = 0 Logical Drive 5 --> bus = 2, target = 5, lun = 0 Logical Drive 6 --> bus = 2, target = 6, lun = 0 Logical Drive 7 --> bus = 2, target = 8, lun = 0 Logical Drive 8 --> bus = 2, target = 9, lun = 0 Logical Drive 9 --> bus = 2, target = 10, lun = 0 Logical Drive 10 --> bus = 2, target = 11, lun = 0 Logical Drive 11 --> bus = 2, target = 12, lun = 0 Logical Drive 12 --> bus = 2, target = 13, lun = 0 Logical Drive 13 --> bus = 2, target = 14, lun = 0 Logical Drive 14 --> bus = 2, target = 15, lun = 0 Logical Drive 15 --> bus = 3, target = 0, lun = 0 Logical Drive 16 --> bus = 3, target = 1, lun = 0 Logical Drive 17 --> bus = 3, target = 2, lun = 0 Logical Drive 18 --> bus = 3, target = 3, lun = 0 Logical Drive 19 --> bus = 3, target = 4, lun = 0 Logical Drive 20 --> bus = 3, target = 5, lun = 0 Logical Drive 21 --> bus = 3, target = 6, lun = 0 Logical Drive 22 --> bus = 3, target = 8, lun = 0 Logical Drive 23 --> bus = 3, target = 9, lun = 0 Logical Drive 24 --> bus = 3, target = 10, lun = 0 Logical Drive 25 --> bus = 3, target = 11, lun = 0 Logical Drive 26 --> bus = 3, target = 12, lun = 0 Logical Drive 27 --> bus = 3, target = 13, lun = 0 Logical Drive 28 --> bus = 3, target = 14, lun = 0 Logical Drive 29 --> bus = 3, target = 15, lun = 0 Logical Drive 30 --> bus = 4, target = 0, lun = 0 Logical Drive 31 --> bus = 4, target = 1, lun = 0 Logical Drive 32 --> bus = 4, target = 2, lun = 0 Logical Drive 33 --> bus = 4, target = 3, lun = 0 Logical Drive 34 --> bus = 4, target = 4, lun = 0 Logical Drive 35 --> bus = 4, target = 5, lun = 0 Logical Drive 36 --> bus = 4, target = 6, lun = 0 Logical Drive 37 --> bus = 4, target = 8, lun = 0 Logical Drive 38 --> bus = 4, target = 9, lun = 0 Logical Drive 39 --> bus = 4, target = 10, lun = 0 To make things easier to understand, an example is given below. SOLUTION: The amird 2.25 driver is available at the following URL: ftp://ftp.sco.com/pub/openserver5/507/drivers/amird225 This driver package includes the following: Driver - amird ver 2.25 Feb. 25 2005 Monitor - amirdmon ver 1.05 Dec. 08 2003 Manager - megamgr ver 5.05 Apr. 21 2004 To install the driver, follow these instructions: First, acquire the driver from the ftp address listed above. Download the btld image to a directory on your machine such as /tmp. Verify the downloaded image using sum. sum -r /tmp/amird_2.25.btld.img This should return: 09526 2880 /tmp/amird_2.25.btld.img Format a floppy disk using the format command. Copy the downloaded image to the floppy: dd if=/tmp/amird_2.25.btld.img of=/dev/fd0 bs=18k Verify the copied floppy image using sum: sum -r /dev/fd0 This should return: 09526 2880 /dev/fd0 An example is given below of how to map the logical drives on a dual channel RAID controller such as an LSI MegaRAID 320-2 with 4 arrays (4 logical drives) defined. In the example we will use the following abbreviations: Ha = Host Bus Adapter Number Ch = channel LD = Logical Drive ID = Target SCSI ID number LUN = Logical Unit Number BUS = channel number The logical array drives defined in this example are: Ch0 --> First channel LD0 RAID 1 --> 8680 MB LD1 RAID 1 --> 17300 MB Ch1 --> Second channel LD2 RAID 5 --> 51900 MB LD3 RAID 1 --> 34700 MB The logical drives must be configured in the controller BIOS prior to installing the OS. Refer to the documentation for your controller. The sections below will cover: - New installation of OSR5 with LSI/SCO amird 2.25 driver. - Update from amird 2.18 or earlier to 2.25. - Update from amird 2.22 to 2.25. - Update from Dell perc to amird 2.25. New Installation ---------------- Insert a boot disk or installation CD and boot the system. At the boot prompt, for a dual channel controller, you MUST type: boot : defbootstr link="amird" Sdsk=amird(0,2,0,0) where Sdsk=amird(HA, BUS, ID, LUN). This is because you are installing on the first logical drive, which (as described above) is mapped to a (bus, id, lun) value of (2, 0, 0). For single channel controller such as a 320-1, you would type: boot : defbootstr link="amird" Sdsk=amird(0,1,0,0) If you fail to type the Sdsk=amird(0,n,0,0), the installation will fail and you will get this error message when the hardware configuration is listed: %adapter - 5 - type=amird ha=0 id=7 NOTICE: Sdsk: Spurious interrupt WARNING: hd: no root disk controller was found hd: a Boot-Time Loadable Driver may be required After installing the OS, in order to add additional logical drives, you need to use the "mkdev hd" command: # mkdev hd Your rootdisk is attached to a SCSI controller. Pick one of the choices below or you may quit and invoke mkdev hd -u for a detailed usage message. 1) Add a hard disk to an IDE controller 2) Add a hard disk to a SCSI controller 3) Add a hard disk to an IDA controller 4) Add a hard disk to a USB controller Enter 1, 2, 3, 4 or enter 'q' to quit: 2 Enter the prefix of the SCSI host adapter that supports this device or press for the default: 'amird' Enter h for a list of host adapters or enter q to quit: amird Which 'amird' SCSI host adapter supports this device? Select 0-9, or enter q to quit: 0 The Host Adapter parameters will be automatically configured What SCSI Bus is this device attached to? Press to use the default:0 Select 0-n, or h for help, or q to quit: 2 What is the Target ID for this device? Select 0-15, or h for help, or q to quit: 1 What is the LUN of this device? Press to use the default: 0 Select 0-7, or h for help, or q to quit: 0 During installation you may choose to overwrite all or part of the present contents of your hard disk. Do you wish to continue? (y/n) y For LD2 and LD3, follow the example above but enter these parameters: For LD2: ha=0, bus=2, ID=2, lun=0 For LD3: ha=0, bus=2, ID=3, lun=0 After completing the above, your /etc/conf/cf.d/mscsi file should look like this: *ha attach number ID lun bus * wd Srom 1 0 0 0 amird Sdsk 0 0 0 2 amird Sdsk 0 1 0 2 amird Sdsk 0 2 0 2 amird Sdsk 0 3 0 2 Below is an example mscsi file for a single channel LSI 320-1 MegaRAID with 4 logical drives connected to it. In this case, the bus value is 1. *ha attach number ID lun bus * wd Srom 1 0 0 0 amird Sdsk 0 0 0 1 amird Sdsk 0 1 0 1 amird Sdsk 0 2 0 1 amird Sdsk 0 3 0 1 Here is an example for two LSI 320-XX MegaRAID cards where LD0 & LD1 are on HA0 and LD2 & LD3 are on HA1. *ha attach number ID lun bus * wd Srom 1 0 0 0 amird Sdsk 0 0 0 2 amird Sdsk 0 1 0 2 amird Sdsk 1 0 0 2 amird Sdsk 1 1 0 2 Upgrading from amird 2.18 or earlier to 2.25 -------------------------------------------- Before upgrading the amird driver: * Back up the data on your SCO OpenServer system and verify the integrity of the backup. * Ensure that you have a current, working emergency boot floppy disk set. If you are upgrading the amird driver from 2.18 to 2.25, due to the updated device mapping, you MUST edit the /etc/conf/cf.d/mscsi file after installing the driver and before you reboot, to ensure that your drives remain accessible. First mount the floppy image created as described above: mount -r /dev/fd0 /mnt Then use the "btldinstall" command to update the driver: /etc/btldinstall /mnt You will see the messages below. Enter your responses as shown. The following packages are on this disk: NAME DESCRIPTION amird SCO UNIX Megaraid Adapter BTLD floppy Ver 2.25, Driver Version 2.25 Please enter the names of the packages you wish to install, or q to quit: amird Installing amird. *** WARNING *** The amird driver is already installed on the system. If you want to upgrade the driver, YOU MUST UPDATE your /etc/conf/cf.d/mscsi file as described in the Release Notes or else YOUR LOGICAL DRIVES WILL BE INACCESSIBLE after the upgrade. DO NOT upgrade this driver without making the appropriate /etc/conf/cf.d/mscsi changes. Do you wish to upgrade the Driver package now? [yn] y There is already a amird installed. Do you want to replace it with the version in amird? (y/n/q) y Preserving the following files: /././tmp/scsihas /././etc/amirdmon /././etc/megamgr Installing the following files: /tmp/scsihas /etc/amirdmon /etc/megamgr Installing SCO UNIX Megaraid Adapter Package Version 2.25 The Driver files have been installed Relink the Kernel for changes to make effect use /etc/conf/bin/idbuild Installed amird. Once the amird 2.25 is installed, DO NOT relink the kernel yet as requested by the installation routine. To reflect the updated device mapping, the ID/lun/bus columns in the /etc/conf/cf.d/mscsi file need to be modified as follows. Examine your mscsi file. You will see one line starting with "amird" for each logical drive in your system. Refer to the mapping table above to determine what the new ID/lun/bus values should be for your configuration, and edit these columns to reflect the new values. In our example of 4 logical drives on a dual-channel card, with the amird 2.18 driver, the /etc/conf/cf.d/mscsi file will look like this: *ha attach number ID lun bus * wd Srom 1 0 0 0 amird Sdsk 0 0 0 0 amird Sdsk 0 0 1 0 amird Sdsk 0 0 2 0 amird Sdsk 0 0 3 0 With the amird 2.25 driver, the bus becomes the "virtual" bus number 2, the ID starts from 0 and is incremented for each logical drive, and the lun is always 0. (See the mapping table above.) So after upgrading the driver, you would edit the /etc/conf/cf.d/mscsi file to look like this: *ha attach number ID lun bus * wd Srom 1 0 0 0 amird Sdsk 0 0 0 2 amird Sdsk 0 1 0 2 amird Sdsk 0 2 0 2 amird Sdsk 0 3 0 2 Then relink the kernel and reboot. If you fail to do the above, you will not be able to access your logical drives after rebooting. If you are booting from a logical drive, you will not be able to boot and the system will panic on reboot with the message: H iinit PANIC: srmountfun - Error 22 mounting rootdev hd (1/42) Cannot dump 130943 pages to dumpdev hd (1/41): Space for only 0 pages Dump not completed NOTICE: Flushing MegaRAID PCI RAID Adapter(s) ** Safe to Power Off ** - or - ** Press Any Key to Reboot ** If you have not done the above changes after the upgrade and you are getting a panic on reboot, then boot the system with unix.old or unix.safe and edit the /etc/conf/cf.d/mscsi file as above. Relink and then reboot. NOTE: For non-disk devices like Tape or CD-ROM connected to the LSI MegaRAID, before upgrading the driver, remove all of the devices using the remove option of the mkdev cdrom/tape command. Then re-add the devices after installing the 2.25 driver. Upgrading from amird 2.22 to 2.25 --------------------------------- Before upgrading the amird driver: * Back up the data on your SCO OpenServer system and verify the integrity of the backup. * Ensure that you have a current, working emergency boot floppy disk set. The amird version 2.22 driver contained a bug where physical disk drives were incorrectly exposed to the OS. In the 2.25 driver, this issue has been fixed, and the physical drives will no longer exist after upgrading to 2.25. If you have installed the 2.22 driver and have been accessing the physical drives, you will need to back up all data on these drives before upgrading the driver. Once the driver has been upgraded, the data will need to be restored on to a logical RAID drive. To upgrade, perform a full backup and then follow the instructions above for upgrading from 2.18 to 2.25, editing your mscsi file to define one "amird" line for each logical drive that has been configured in the controller BIOS, with the ID, lun, and bus values set according to the discussion above. Upgrading from Dell perc to amird 2.25 -------------------------------------- Before upgrading from the perc to the amird driver: * Back up the data on your SCO OpenServer system and verify the integrity of the backup. * Ensure that you have a current, working emergency boot floppy disk set. The amird 2.25 driver supports the Dell PERC controllers listed in the Hardware section above. To upgrade the driver, follow the instructions below. Failure to do so can cause the logical drives to become inaccessible and/or can cause the system to panic on reboot. Before you update your perc 2.xx driver to amird 2.25, you MUST do the following pre-install actions: 1. edit the /etc/conf/sdevices.d/perc file and change the second field of each line from "Y" to "N". This will disable the perc driver. 2. mkdir /dell-perc-backup 3. mv /etc/conf/rc.d/perc /dell-perc-backup/perc_rc.d mv /etc/idrc.d/perc /dell-perc-backup/perc_idrc.d To upgrade, install the amird 2.25 driver using the "btldinstall" command. First mount the floppy image created as described above: mount -r /dev/fd0 /mnt Then use the "btldinstall" command to update the driver: /etc/btldinstall /mnt You will see the messages below. Enter your responses as shown. The following packages are on this disk: NAME DESCRIPTION amird SCO UNIX Megaraid Adapter BTLD floppy Ver 2.25, Driver Version 2.25 Please enter the names of the packages you wish to install, or q to quit: amird Installing amird. *** WARNING *** The perc driver is currently installed on the system. If you want to upgrade to amird, YOU MUST disable perc in /etc/conf/sdevice.d/perc AND UPDATE your /etc/conf/cf.d/mscsi file as described in the Release Notes to ensure that your logical drives will be accessible after the upgrade. DO NOT upgrade this driver without making the appropriate configuration changes. Do you wish to upgrade the Driver package now? [yn] y Continue as shown above under "Upgrading from amird 2.18 or earlier". If you receive a prompt such as Add HA#0 Drive ID#0 LUN#0 entry to mscsi file (y/n) enter "n". Once the amird 2.25 is installed, do not relink the kernel yet. Next edit the /etc/conf/cf.d/mscsi file to reflect the new driver name and the new "virtual" bus mapping, as discussed above. For example, for a Dell PERC dual channel RAID with 4 configured logical drives, your mscsi file will be as below: *ha attach number ID lun bus * wd Srom 1 0 0 0 perc Sdsk 0 0 0 0 perc Sdsk 0 0 1 0 perc Sdsk 0 0 2 0 perc Sdsk 0 0 3 0 After installing the amird 2.25 driver, you would edit the file to look like the below. The driver name must be changed from perc to amird. The bus becomes the "virtual" bus number 2, the ID starts from 0 and is incremented for each logical drive, and the lun is always 0. (See the mapping table above.) *ha attach number ID lun bus * wd Srom 1 0 0 0 amird Sdsk 0 0 0 2 amird Sdsk 0 1 0 2 amird Sdsk 0 2 0 2 amird Sdsk 0 3 0 2 Then relink the kernel and reboot. If you have not done the above changes after the upgrade and you are getting a panic on reboot, then boot the system with unix.old or unix.safe and edit the /etc/conf/cf.d/mscsi file as above. Relink and then reboot.