Symmetrix Fibre Channel with QLogic QLA2200F-EMC Host Bus Adapters in the Linux X86 Environment REV 3, JANUARY 2001
Copyright © 2000, 2001 EMC Corporation. All rights reserved. No part of this publication may be reproduced or distributed in any form or by any means, or stored in a database or retrieval system, without the prior written consent of EMC Corporation. The information contained in this document is subject to change without notice. EMC Corporation assumes no responsibility for any errors that may appear.
Introduction Introduction This document describes the procedures for installing an EMC-approved QLogic host bus adapter (HBA) into a Linux® host and configuring the host for connection to EMC® Symmetrix® over Fibre Channel. Check the EMC Open Systems Host Support Matrix for the latest information on approved HBAs and drivers. Refer to the appropriate section for the installation procedures: • Arbitrated Loop Configurations..........................................................4 • Fabric Configurations .
Arbitrated Loop Configurations Arbitrated Loop Configurations Useful Linux Utilities and Functions Installing the HBA These utilities and functions can be helpful in performing configuration operations: Utility/Function Description fdisk Command used to create and manipulate Linux partition tables cfdisk Curses-based disk partition table manipulator for Linux fsck Command used to check and repair a Linux file system mkfs Command used to create Linux file system on a device mount Command used t
Arbitrated Loop Configurations Configuring Firmware Settings After the HBA is installed, follow these steps to verify and configure HBA firmware settings. Verifying the Correct Firmware Version The firmware (HBA BIOS) version can be determined at boot time from the QLA2200F banner or from the Fast!Util Options menu. ◆ To determine the firmware version from the QLA2200F banner, boot the host and watch for the banner: Qlogic Corporation QLA2200 PCI Fibre Channel ROM BIOS Version 1.
Arbitrated Loop Configurations Upgrading the HBA BIOS Follow these steps to upgrade the HBA BIOS: 1. Obtain the latest version of the BIOS from the QLogic Website: a. Access http://www.qlogic.com. b. Click Driver Download. c. Scroll to the bottom of the QLogic Drivers License Agreement and click Use QLogic Drivers/Software. d. Click EMC Approved Drivers. e. Click EMC Approved QLA22xx Drivers. f. Click Link to ROM BIOS in the ROM BIOS v1.61 section. g. Save the file to a local directory as 22emc03bios161.
Arbitrated Loop Configurations Setting the NVRAM Variables ! Follow the steps below to set the NVRAM variables. CAUTION Any time the default settings for the adapter are chosen via Fast!Util, the NVRAM settings specific to EMC are overwritten. EMC recommends that you do not select the default adapter settings option from Fast!Util. 1. As the host boots, press ALT-Q when prompted Press for Fast!Util. 2.
Arbitrated Loop Configurations 13. Change the setting for LUNs per Target to 128. (The factory setting is 8, but this must be changed to utilize all 128 LUNs available from the Symmetrix.) 14. Select Enable LIP Full Login and press ENTER to change the setting to Yes. 15. Select Enable Target Reset and press ENTER to change the setting to Yes. 16. Increase the setting for Port Down Retry Count to 32. 17. Press ESC to return to the Configuration Settings menu. 18.
Arbitrated Loop Configurations Verifying the Disk Media To verify that the HBA can see the Symmetrix, use the Fibre Disk utility to scan and verify disk media. 1. Under the Fast!UTIL Options menu, select FIBRE DISK UTILTY. 2. You should see SYMMETRIX in a Fibre Channel device list of all possible 128 targets, as shown below. Page down if necessary to display all targets in the list.
Arbitrated Loop Configurations Configuring the Host with the QLogic HBA Driver Using the QLogic adapter with the Linux operating system requires HBA driver software. The driver functions at a layer below the Linux SCSI driver to present Fibre Channel devices to the operating system as if they were standard SCSI devices. Installation Methods The QLogic driver can be installed onto a Linux host using one of two methods: ◆ Method One — Build the driver in the directory created for it.
Arbitrated Loop Configurations Discussion of Default and EMC-Approved Drivers EMC supports only the QLogic qla2x00(smp) driver, which can be downloaded from the QLogic Website. EMC does not support the qlogicfc driver that is included in the Linux kernel (because the driver does not support persistent binding). Also, EMC does not support the alternate qla2x00 driver that is included in the kernel in the Red Hat v7.0 distribution.
Arbitrated Loop Configurations Be aware that if the qlogicfc driver is alternately loaded and unloaded with the EMC-Approved QLogic qla2x00(smp) driver, there may be problems seeing Symmetrix devices. The two drivers use different firmware revisions; therefore, alternately loading both drivers might have an adverse effect on the HBA. Downloading the Driver Use the following procedure to download the QLogic driver from the QLogic Website: 1.
Arbitrated Loop Configurations Installing the QLogic Driver — Method One Follow these steps to configure the driver as modular only: 1. Change to the directory to which the tar archive was saved. cd /home/qlogic 2. Uncompress and extract the source files from the tar archive: tar zxvf qla2x00src-v2.19.15.tgz The files are: ◆ Makefile ◆ ql2100_fw.h ◆ ql2200_fw.h ◆ qla2100.h ◆ qla2100.c ◆ release.txt ◆ emc.txt 3.
Arbitrated Loop Configurations 6. Run the following command to update your /lib/modules/$1/modules.dep file (where $1 is the kernel version) with the information you added to /etc/conf.modules: depmod -a 7. Proceed to Required Kernel Modifications on page 22 to modify and compile the Linux kernel. Installing the QLogic Driver — Method Two Follow these steps to integrate the QLogic driver into the kernel: 1. Change to the directory to which the tar archive was saved. cd /home/qlogic 2.
Arbitrated Loop Configurations Edit Config.in Depending on the Linux distribution and the kernel version, the lines indicated in this section may differ. In order for the QLogic driver to be listed as an option in config/menuconfig/xconfig, edit Config.in as follows: 1. cd /usr/src/linux/drivers/scsi 2. vi Config.in x 3. If the Linux distribution is Red Hat v6.2, proceed to step 3a. If the distribution is v7.0, go to step 3b: a. If the Linux distribution is Red Hat v6.
Arbitrated Loop Configurations b. If the Linux distribution is Red Hat v7.
Arbitrated Loop Configurations Edit Makefile Depending on the Linux distribution and the kernel version, the lines indicated in this section may differ. Edit the Makefile (located in /usr/src/linux/drivers/scsi) as described below. Note the occurrences of qla2x00.o. This applies to UP systems. For SMP systems, these entries are qla2x00smp.o. 1. vi Makefile x 2. If the Linux distribution is Red Hat v6.2, proceed to step 2a. If the distribution is v7.0, go to step 2b: a.
Arbitrated Loop Configurations The result should look like the following: ifeq ($(CONFIG_SCSI_QLOGIC_FC),y) L_OBJS += qlogicfc.o else ifeq ($(CONFIG_SCSI_QLOGIC_FC),m) M_OBJS += qlogicfc.o endif endif ifeq ($(CONFIG_SCSI_QLOGIC_QLA2100),y) L_OBJS += qla2x00.o else ifeq ($(CONFIG_SCSI_QLOGIC_QLA2100),m) M_OBJS += qla2x00.o endif endif ifeq ($(CONFIG_SCSI_AHA152X),y) L_OBJS += aha152x.o else b. If the Linux distribution is Red Hat v7.
Arbitrated Loop Configurations Insert the following lines between the qla2x00 and cpfqc blocks: ifeq ($(CONFIG_SCSI_QLOGIC_QLA2100),y) L_OBJS += qla2x00.o else ifeq ($(CONFIG_SCSI_QLOGIC_QLA2100),m) M_OBJS += qla2x00.o endif endif The result should look like the following: ifeq ($(CONFIG_SCSI_QLOGIC_FC),y) L_OBJS += qlogicfc.o else ifeq ($(CONFIG_SCSI_QLOGIC_FC),m) M_OBJS += qlogicfc.o endif endif ifeq ($(CONFIG_SCSI_QLOGIC_2x00),y) L_OBJS += qla2x00.
Arbitrated Loop Configurations 3. Around line 703 (if using Red Hat v6.2) or 760 (if using Red Hat v7.0), search for the following code block: megaraid.o: megaraid.c $(CC) $(CFLAGS) -c megaraid.c scsi_mod.o: $(MIX_OBJS) hosts.o scsi.o scsi_ioctl.o constants.o \ scsicam.o scsi_proc.o scsi_error.o scsi_obsolete.o scsi_queue.o Insert the following lines between the megaraid and scsi_mod sections: qla2x00.o: ql2100_fw.h ql2200_fw.h qla2100.h qla2100.c $(CC) $(CFLAGS) -c qla2100.c -o qla2x00.
Arbitrated Loop Configurations Insert the following lines between the qlogicfc and seagate sections: #ifdef CONFIG_SCSI_QLOGIC_QLA2100 #include "qla2100.h" #endif The result should look like the following: #ifdef CONFIG_SCSI_QLOGIC_FC #include "qlogicfc.h" #endif #ifdef CONFIG_SCSI_QLOGIC_QLA2100 #include "qla2100.h" #endif #ifdef CONFIG_SCSI_SEAGATE #include "seagate.h" #endif 3. Around line 515 (if using Red Hat v6.2) or 542 (if using Red Hat v7.
Arbitrated Loop Configurations Modular Driver Specifics 1. In order to load the driver automatically at boot time, /etc/conf.modules must be edited. vi /etc/conf.modules Add the appropriate entry: System: Enter: alias scsi_hostadapter qla2x00 UP alias scsi_hostadapter qla2x00smp SMP 2. Proceed to Required Kernel Modifications on page 60 to modify and compile the Linux kernel. Required Kernel Modifications Make the following changes to the kernel. Edit hosts.
Arbitrated Loop Configurations Edit scsi.c To allow the host to access and utilize more than eight SCSI LUNs, edit scsi.c as follows: cd /usr/src/linux/drivers/scsi vi scsi.c #ifdef CONFIG_SCSI_MULTI_LUN static int max_scsi_luns = 8; (Change to 128) #else static int max_scsi_luns = 1; #endif This can also be accomplished by appending a line to /etc/lilo.conf: vi /etc/lilo.conf Add this line: append="max_scsi_luns=128" Edit sg.h The value for the SCSI generic buffer must be increased.
Arbitrated Loop Configurations Additional Notes Dynamic Device Reconfiguration Linux currently lacks a command built into the kernel that allows for a dynamic SCSI channel reconfiguration like drvconfig or ioscan. Depending upon the hardware configuration and on whether the QLogic driver has been loaded into the kernel as a module, the QLogic driver can be unloaded and then reloaded. If the QLogic driver has been loaded as a module, this unloading and reloading will cause a scan of the SCSI bus.
Arbitrated Loop Configurations new device can more easily be appended to the list of the regularly attached devices and the mount table altered accordingly. tasks.h There is a limit to the number of processes that can run simultaneously on a host. The default is set to 512. If the environment requires it, this value can be increased up to 4092. To change the value: 1. cd /usr/src/linux/include/linux x 2. vi tasks.h x 3. Line 14 is: #define NR_TASKS 512 /*On x86 Max 4092, or 4090 w/ APM configured.
Arbitrated Loop Configurations 4. Go to the end of the BLIST_NOLUN list and add the device. For example, in the case of the NEC ExpressServer 5800 120Ra2, the entry would be similar to the following: {"NEC", "GEM312R2-G7CGQ", "4.1a", BLIST_NOLUN}, /*Reports back incorrect LUNs*/ 5. After this addition is made, proceed to Configuring and Compiling the Kernel. Configuring and Compiling the Kernel If this is a new installation, proceed to New Installation later on this page.
Arbitrated Loop Configurations . Figure 2 SCSI Support Menu Select SCSI support as static (* or y). Under ---SCSI support type (disk, tape, CD-ROM) select the options SCSI disk support and SCSI generic support as static (* or y). Under ---Some SCSI devices (e.g. CD jukebox) support multiple LUNs select Probe all LUNs on each SCSI device as static (* or y). The qlogicfc driver must be disabled in the kernel to eliminate any possible conflicts between the qlogicfc and qla2x00(smp) drivers.
Arbitrated Loop Configurations Figure 1-1 SCSI Low-Level Drivers Menu Under SCSI low-level drivers deselect QLogic ISP FC SCSI support. deselect Qlogic QLA 2x00 FC SCSI support. If Method Two was used to incorporate the QLogic driver into the kernel (refer to Installation Methods on page 10), you must select the QLogic driver in menuconfig as static or modular. Under SCSI low-level drivers select EMC-approved QLogic QLA2x00F Driver as modular (M or m) or static (* or y), as required.
Arbitrated Loop Configurations 5. Compile the kernel: make dep make clean make install make modules make modules_install cd /boot 6. Build a ramdisk image: mkinitrd /boot/initrd-$1.img $1 (where $1 is the kernel version) For example: mkinitrd /boot/initrd-2.2.17.img 2.2.17 The mkinitrd command is used to create a new ramdisk image and is dependent upon the loopback device being available. If the loopback driver is selected in the kernel as a module, ensure that it is loaded with #lsmod.
Arbitrated Loop Configurations 3. Delete stale .o files and dependencies: make mrproper 4. Configure the kernel: make config/menuconfig/xconfig From the main menu, select the SCSI support menu (Figure 4): Figure 1-2 SCSI Support Menu Select SCSI support as static (* or y). Under ---SCSI support type (disk, tape, CD-ROM) select the options SCSI disk support and SCSI generic support as static (* or y). Under ---Some SCSI devices (e.g.
Arbitrated Loop Configurations Under SCSI low-level drivers deselect QLogic ISP FC SCSI support. deselect Qlogic QLA 2x00 FC SCSI support. If Method Two was used to incorporate the QLogic driver into the kernel (refer to Installation Methods on page 10), you must select the QLogic driver in menuconfig as static or modular. Under SCSI low-level drivers select EMC-approved QLogic QLA2x00F Driver as modular (M or m) or static (* or y), as required. (Refer to the above note.) 5.
Arbitrated Loop Configurations The mkinitrd command is used to create a new ramdisk image and is dependent upon the loopback device being available. If the loopback driver is selected in the kernel as a module, ensure that it is loaded with #lsmod. If the loopback driver was not loaded, insert it with #insmod loop. 8.
Arbitrated Loop Configurations The four high-level device drivers are: sg (SCSI generic interface) sd (direct access; disks, for example) st (tapes) sr (data CD-ROMs) The sg driver is a character-based device, while the other three drivers are block-based devices. sg is used primarily for scanners, CD writers, printers, and raw access, although sg is not a true raw device. The sg device files are dynamically mapped to SCSI IDs/LUNs on the SCSI bus, starting with the first SCSI controller.
Arbitrated Loop Configurations Command action n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition’s system ID u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) To display a list of advanced options, type x ENTER (for expert functionality), then m ENTER to display the following: Command action b move beginnin
Arbitrated Loop Configurations 4. Repeat step 3 for each new Symmetrix device. cfdisk is a curses-based disk partition table manipulator for Linux that is used instead of fdisk.) If used with the -z option, cfdisk allows the device’s partition table to be zeroed out. The use of cfdisk -z is required if you are converting a device previously used by another host. Example: cfdisk -z /dev/sdb The resulting display would be similar to the following: cfdisk 0.
Arbitrated Loop Configurations Once the above step is completed, the options listed at the bottom will change to the following: cfdisk 0.8n Disk Drive: /dev/sdb Sectors per Track: 63 Heads: 255 Cylinders: 550 Name Flags Part Type FS Type [Label] Size (MB) -------------------------------------------------------------------sdb1 Primary [ Bootable [ Quit ] [ ] [ Type Linux Delete ] [ Help ] ][ Units ] [ Write 4314.
Arbitrated Loop Configurations 7. Save the settings for the HBA installed in the host and exit Fast!Util. 8. Plug the fiber cables back into the HBA(s) in the host and reboot. 9. Upon rebooting, press ALT-Q when prompted to enter the Fast!Util menu. 10. From the Fast!Util Options menu, select Fibre Disk Utility. 11. Follow the instructions from Verifying the Disk Media on page 9 to ensure that the HBA has been reset and can now access all of the Symmetrix devices. 12.
Arbitrated Loop Configurations System and Error Messages 38 Linux logs system and error messages to a file called /var/log/messages. This file includes SCSI error messages. Linux also logs boot messages in a file called /var/log/boot.log. The host will also display these messages at the system console.
Fabric Configurations Fabric Configurations This section describes the procedures required to install one or more EMC-approved Qlogic host bus adapters into a Linux host and configure the host for Symmetrix Fibre Channel fabric.
Fabric Configurations Configuring Firmware Settings After the HBA is installed, follow these steps to verify and configure HBA firmware settings. Verifying the Correct Firmware Version The firmware (HBA BIOS) version can be determined at boot time from the QLA2200F banner or from the Fast!Util Options menu. ◆ To determine the firmware version from the QLA2200F banner, boot the host and watch for the banner: Qlogic Corporation QLA2200 PCI Fibre Channel ROM BIOS Version 1.
Fabric Configurations Upgrading the HBA BIOS Follow these steps to upgrade the HBA BIOS: 1. Obtain the latest version of the BIOS from the QLogic website: a. Access http://www.qlogic.com. b. Click Driver Download. c. Scroll to the bottom of the QLogic Drivers License Agreement and click Use QLogic Drivers/Software. d. Click EMC Approved Drivers. e. Click EMC Approved QLA22xx Drivers. f. Click Link to ROM BIOS in the ROM BIOS v1.61 section. g. Save the file to a local directory as 22emc03bios161.exe. 2.
Fabric Configurations Setting the NVRAM Variables ! Follow the steps below to set the NVRAM variables. CAUTION Any time the default settings for the adapter are chosen via Fast!Util, the NVRAM settings specific to EMC are overwritten. EMC recommends that you do not select the default adapter settings option from Fast!Util. 1. As the host boots, press ALT-Q when prompted Press for Fast!Util. 2.
Fabric Configurations 13. Change the setting for LUNs per Target to 128. (The factory setting is 8, but this must be changed to utilize all 128 LUNs available from the Symmetrix.) 14. Select Enable LIP Full Login and press ENTER to change the setting to Yes. 15. Select Enable Target Reset and press ENTER to change the setting to Yes. 16. Increase the setting for Port Down Retry Count to 32. 17. Press ESC to return to the Configuration Settings menu. 18.
Fabric Configurations Verifying the Disk Media To verify that the HBA can see the Symmetrix, use the Fibre Disk utility to scan and verify disk media. 1. Under the Fast!UTIL Options menu, select FIBRE DISK UTILTY. 2. You should see SYMMETRIX in a Fibre Channel device list of all possible 128 targets, as shown below. Page down if necessary to display all targets in the list.
Fabric Configurations Configuring the Host with the QLogic HBA Driver Using the QLogic adapter with the Linux operating system requires HBA driver software. The driver functions at a layer below the Linux SCSI driver to present Fibre Channel devices to the operating system as if they were standard SCSI devices. Installation Methods The QLogic driver can be installed onto a Linux host using one of two methods: ◆ Method One — Build the driver in the directory created for it.
Fabric Configurations Discussion of Default and EMC-Approved Drivers EMC supports only the QLogic qla2x00(smp) driver, which can be downloaded from the QLogic Website. EMC does not support the qlogicfc driver that is included in the Linux kernel (because the driver does not support persistent binding). Also, EMC does not support the alternate qla2x00 driver that is included in the kernel in the RedHat v7.0 distribution.
Fabric Configurations Be aware that if the qlogicfc driver is alternately loaded and unloaded with the EMC-Approved QLogic qla2x00(smp) driver, there may be problems seeing Symmetrix devices. The two drivers use different firmware revisions; therefore, alternately loading both drivers might have an adverse effect on the HBA. Downloading the Driver Use the following procedure to download the QLogic driver from the QLogic Website: 1.
Fabric Configurations Installing the QLogic Driver — Method One Follow these steps to configure the driver as modular only: 1. Change to the directory to which the tar archive was saved. cd /home/qlogic 2. Uncompress and extract the source files from the tar archive: tar zxvf qla2x00src-v2.19.15.tgz The files are: ◆ Makefile ◆ ql2100_fw.h ◆ ql2200_fw.h ◆ qla2100.h ◆ qla2100.c ◆ release.txt ◆ emc.txt 3.
Fabric Configurations 6. In a fabric environment, persistent binding must be enabled. Without a persistent binding mechanism, the host will be unable to maintain persistent logical routing of the communication from a storage device object across the fabric to a Symmetrix volume. If the physical configuration of the switch is changed (for example, cables are swapped or the host is rebooted), the logical route becomes inconsistent, which could cause possible data corruption.
Fabric Configurations Installing the QLogic Driver — Method Two Follow these steps to integrate the QLogic driver into the kernel: 1. Change to the directory to which the tar archive was saved. cd /home/qlogic 2. Uncompress and extract the source files from the tar archive: tar zxvf qla2x00src-v2.19.15.tgz The files are: ◆ Makefile ◆ ql2100_fw.h ◆ ql2200_fw.h ◆ qla2100.h ◆ qla2100.c ◆ release.txt ◆ emc.txt 3. Copy the firmware and source files to the appropriate directory: cp ql2100_fw.
Fabric Configurations Between the fi and the dep_tristate 'Seagate…' lines, insert the following statement: dep_tristate ’EMC-approved QLogic QLA2X00F Driver’ CONFIG_SCSI_QLOGIC_QLA2100 $CONFIG_SCSI The above is one line. It appears here on two lines because of space limitations.
Fabric Configurations The result should look like the following: if [ "$CONFIG_PCI" = "y" ]; then dep_tristate ’Qlogic ISP SCSI support’ CONFIG_SCSI_QLOGIC_ISP $CONFIG_SCSI dep_tristate ’Qlogic QLA 1280/12160 SCSI support’ CONFIG_SCSI_QLOGIC_1280 $CONFIG_SCSI dep_tristate ’Qlogic ISP FC SCSI support’ CONFIG_SCSI_QLOGIC_FC $CONFIG_SCSI if [ "$CONFIG_SCSI_QLOGIC_FC" != "y" ]; then dep_tristate ’Qlogic QLA 2x00 FC SCSI support’ CONFIG_SCSI_QLOGIC_2x00 $CONFIG_SCSI fi fi dep_tristate ’EMC-approved QLogic QLA2X
Fabric Configurations Edit Makefile Depending on the Linux distribution and the kernel version, the lines indicated in this section may differ. Edit the Makefile (located in /usr/src/linux/drivers/scsi) as described below. Note the occurrences of qla2x00.o. This applies to UP systems. For SMP systems, these entries are qla2x00smp.o. 1. vi Makefile x 2. If the Linux distribution is RedHat v6.2, proceed to step 2a. If the distribution is v7.0, go to step 2b: a. If the Linux distribution is RedHat v6.
Fabric Configurations The result should look like the following: ifeq ($(CONFIG_SCSI_QLOGIC_FC),y) L_OBJS += qlogicfc.o else ifeq ($(CONFIG_SCSI_QLOGIC_FC),m) M_OBJS += qlogicfc.o endif endif ifeq ($(CONFIG_SCSI_QLOGIC_QLA2100),y) L_OBJS += qla2x00.o else ifeq ($(CONFIG_SCSI_QLOGIC_QLA2100),m) M_OBJS += qla2x00.o endif endif ifeq ($(CONFIG_SCSI_AHA152X),y) L_OBJS += aha152x.o else b. If the Linux distribution is RedHat v7.
Fabric Configurations Insert the following lines between the qla2x00 and cpfqc blocks: ifeq ($(CONFIG_SCSI_QLOGIC_QLA2100),y) L_OBJS += qla2x00.o else ifeq ($(CONFIG_SCSI_QLOGIC_QLA2100),m) M_OBJS += qla2x00.o endif endif The result should look like the following: ifeq ($(CONFIG_SCSI_QLOGIC_FC),y) L_OBJS += qlogicfc.o else ifeq ($(CONFIG_SCSI_QLOGIC_FC),m) M_OBJS += qlogicfc.o endif endif ifeq ($(CONFIG_SCSI_QLOGIC_2x00),y) L_OBJS += qla2x00.o else ifeq ($(CONFIG_SCSI_QLOGIC_2x00),m) M_OBJS += qla2x00.
Fabric Configurations 3. Around line 703 (if using RedHat x6.2) or 760 (if using RedHat v7.0), search for the following code block: megaraid.o: megaraid.c $(CC) $(CFLAGS) -c megaraid.c scsi_mod.o: $(MIX_OBJS) hosts.o scsi.o scsi_ioctl.o constants.o \ scsicam.o scsi_proc.o scsi_error.o scsi_obsolete.o scsi_queue.o Insert the following lines between the megaraid and scsi_mod sections: qla2x00.o: ql2100_fw.h ql2200_fw.h qla2100.h qla2100.c $(CC) $(CFLAGS) -c qla2100.c -o qla2x00.
Fabric Configurations Insert the following lines between the qlogicfc and seagate sections: #ifdef CONFIG_SCSI_QLOGIC_QLA2100 #include "qla2100.h" #endif The result should look like the following: #ifdef CONFIG_SCSI_QLOGIC_FC #include "qlogicfc.h" #endif #ifdef CONFIG_SCSI_QLOGIC_QLA2100 #include "qla2100.h" #endif #ifdef CONFIG_SCSI_SEAGATE #include "seagate.h" #endif 3. Around line 515 (if using RedHat v6.2) or 542 (if using RedHat v7.
Fabric Configurations Modular Driver Specifics 1. In order to load the driver automatically at boot time, /etc/conf.modules must be edited. vi /etc/conf.modules Add the appropriate entry: System: Enter: UP alias scsi_hostadapter qla2x00 SMP alias scsi_hostadapter qla2x00smp 2. In a fabric environment, persistent binding must be enabled in the driver.
Fabric Configurations When configuring and manually loading the qla2x00(smp) module with persistent binding information, you must use modprobe rather than insmod. modprobe is a wrapper that is an extension to insmod. This utility will load the driver and automatically read the /etc/conf.modules configuration file. 3. Proceed to Required Kernel Modifications on page 60 to modify and compile the Linux kernel. Static Driver Specifics 1.
Fabric Configurations 2. Proceed to Required Kernel Modifications on page 60 to modify and compile the Linux kernel. Required Kernel Modifications Make the following changes to the kernel. Edit hosts.h In order to see more than four SCSI hard drives, edit hosts.h as follows: cd /usr/src/linux/drivers/scsi vi hosts.h The text of hosts.h differs depending on the RedHat distribution version: ◆ v6.2: #define SD_EXTRA_DEVS #else #define SD_EXTRA_DEVS #endif ◆ 40 4 (Change to 128) v7.
Fabric Configurations Edit sg.h The value for the SCSI generic buffer must be increased. Change to the appropriate directory and increase the value for SG_SCATTER_SZ to the maximum of 131072. cd /usr/src/linux/include/scsi vi sg.h Around line 195, look for the following code block: #define SG_SCATTER_SZ (8 * 4096) /* PAGE_SIZE not available to user */ /* Largest size (in bytes) a single scatter-gather list element can have. The value must be a power of 2 and <= (PAGE_SIZE * 32) [131072 bytes on i386].
Fabric Configurations The unloading of the module is done with modprobe -r qla2x00(smp). modprobe with the -r switch used to unload the loadable modules from the running kernel if they are not in use and if other modules are not dependent upon them. In the standard Linux v2.2.x kernel, the SCSI addresses are not used in the device names as they are in other types of UNIX (Sun, SGI, HP-UX, and BSD, for example).
Fabric Configurations BLIST_NOLUN Hosts with a GEM SCSI chip on the motherboard may incorrectly report multiple processors when booting. This incorrect reporting can be fixed by adding an entry to BLIST_NOLUN in the file scsi.c. For example, in the NEC ExpressServer 5800 120Ra2, the GEM chip incorrectly reports back 8 LUNs instead of 1 LUN as it should. This problem can be corrected by editing scsi.c as follows: 1. cd /usr/src/linux/drivers/scsi x 2. vi scsi.c x 3.
Fabric Configurations Configuring and Compiling the Kernel If this is a new installation, proceed to New Installation later on this page. If this is an upgrade to a newer kernel revision, go to Kernel Upgrade on page 67. New Installation Follow these steps to configure the host in a new installation: 1. Prior to configuring the kernel, change to the appropriate directory: cd /usr/src/linux 2. Configure the kernel: make config/menuconfig/xconfig 3.
Fabric Configurations . Figure 3 SCSI Support Menu Select SCSI support as static (* or y). Under ---SCSI support type (disk, tape, CD-ROM) select the options SCSI disk support and SCSI generic support as static (* or y). Under ---Some SCSI devices (e.g. CD jukebox) support multiple LUNs select Probe all LUNs on each SCSI device as static (* or y). The qlogicfc driver must be disabled in the kernel to eliminate any possible conflicts between the qlogicfc and qla2x00(smp) drivers.
Fabric Configurations Under SCSI low-level drivers select EMC-approved QLogic QLA2x00F Driver as modular (M or m) or static (* or y), as required. (Refer to the above note.) Select Exit to return to the Main Menu. From the Main Menu, select Exit; then select Yes to save your configuration in response to the question Do you wish to save your new kernel configuration? The configuration will be saved to the file /usr/src/linux/.config. 5.
Fabric Configurations Kernel Upgrade For a kernel upgrade, install Linux from the RedHat v6.2 CD, following the procedure in the installation guide. Partition the boot drive and select the packages and services necessary for the host. The host can be upgraded from RedHat v6.2 to up to v2.2.17 of the Linux kernel. To upgrade the host to a newer version of the kernel, the kernel must be downloaded, from: http://www.kernel.org/mirrors/. 1.
Fabric Configurations Select SCSI support as static (* or y). Under ---SCSI support type (disk, tape, CD-ROM) select the options SCSI disk support and SCSI generic support as static (* or y). Under ---Some SCSI devices (e.g. CD jukebox) support multiple LUNs select Probe all LUNs on each SCSI device as static (* or y). The qlogicfc driver must be disabled in the kernel to eliminate any possible conflicts between the qlogicfc and qla2x00(smp) drivers.
Fabric Configurations Under SCSI low-level drivers select EMC-approved QLogic QLA2x00F Driver as modular (M or m) or static (* or y), as required. (Refer to the above note.) 5. Compile the kernel: make dep make clean make install make modules make modules_install cd /boot 6. Add the new kernel version to lilo.conf so it will be bootable: vi /etc/lilo.conf For example: image=/boot/vmlinuz-2.2.17 label=linux-2.2.17 root=/dev/sda1 initrd=/boot/initrd-2.2.17.img read-only 7.
Fabric Configurations Incorporating Symmetrix Fibre Channel Once the Symmetrix has devices assigned with device addresses and the directors have been switched on line, the host can see all the target Symmetrix devices assigned to that host interface. Devices are presented to the host in the same manner as devices accessed through a standard SCSI interface.
Fabric Configurations The Linux kernel assigns minor SCSI device numbers dynamically by assigning them only to devices that are actually connected to the host in the order of their SCSI IDs. This means that connecting an external SCSI device can change the minor numbers of all the internal SCSI devices with a higher SCSI ID. Partitioning Symmetrix Devices Once the QLogic driver is loaded, the Symmetrix devices will be represented in /proc/scsi/scsi. They can be viewed by using more /proc/scsi/scsi.
Fabric Configurations To display a list of advanced options, type x ENTER (for expert functionality), then m ENTER to display the following: Command action b move beginning of data in a partition c change number of cylinders d print the raw data in the partition table e list extended partitions g create an IRIX partition table h change number of heads m print this menu p print the partition table q quit without saving changes r return to main menu s change number of sectors v verify the partition table w w
Fabric Configurations cfdisk is a curses-based disk partition table manipulator for Linux that is used instead of fdisk.) If used with the -z option, cfdisk allows the device’s partition table to be zeroed out. The use of cfdisk -z is required if you are converting a device previously used by another host. Example: cfdisk -z /dev/sdb The resulting display would be similar to the following: cfdisk 0.
Fabric Configurations Once the above step is completed, the options listed at the bottom will change to the following: cfdisk 0.8n Disk Drive: /dev/sdb Sectors per Track: 63 Heads: 255 Cylinders: 550 Name Flags Part Type FS Type [Label] Size (MB) -------------------------------------------------------------------sdb1 Primary [ Bootable [ Quit ] [ ] [ Type Linux Delete ] [ Help ] ][ Units ] [ Write 4314.
Fabric Configurations 7. Save the settings for the HBA installed in the host and exit Fast!Util. 8. Plug the fiber cables back into the HBA(s) in the host and reboot. 9. Upon rebooting, press ALT-Q when prompted to enter the Fast!Util menu. 10. From the Fast!Util Options menu, select Fibre Disk Utility. 11. Follow the instructions from Verifying the Disk Media on page 44 to ensure that the HBA has been reset and can now access all of the Symmetrix devices. 12.
Fabric Configurations System and Error Messages 76 Linux logs system and error messages to a file called /var/log/messages. This file includes SCSI error messages. Linux also logs boot messages in a file called /var/log/boot.log. The host will also display these messages at the system console.