IBM System Storage™ DS3000 Linux RDAC multipath driver package version 09.03.0C05.0251 FOR USE IN LINUX 2.6 KERNEL OPERATING SYSTEM ENVIRONMENTS ONLY. Note: This release only supports SLES 11 or SLES10 with SP1 and RHEL5 or higher. For Linux support of SLES9, SLES10 or RHEL4 operationg systems, please refer to the IBM DS3000 Linux RDAC package version 09.03.0B05.00251 instead. (C) Copyright International Business Machines Corporation 1999, 2006. All rights reserved. US Government Users Restricted Rights - Use, duplication, or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Note: Before using this information and the product it supports, read the general information in section 6.0 "Trademarks and Notices" in this document. Last Update Date: 11/09/2009 Note: The IBM System Storage DS3000 Storage Manager version 10 Installation and Support Guide for Windows Server 2003, Netware, ESX Server, and Linux publication which is included on the DS3000 Support CD, is also available on IBM's Support Web Site as a downloadable Portable Document Format (PDF) file. The IBM System Storage DS3000 Storage Manager version 10 Installation and Support Guide for AIX and Linux on POWER publication which is included on the DS3000 Support CD, is also available on IBM's Support Web Site as a downloadable Portable Document Format (PDF) file. These publications provide useful information on the installation of all DS3000 Storage Manager host software packages including the RDAC package. Products Supported: ---------------------------------------------------------- | Product | Machine Type | Model | |------------|---------------|-----------------------------| | DS3200 | 1726 | 21X, 22X, 22T, HC2, HC6 | |------------|---------------|-----------------------------| | DS3300 | 1726 | 31X, 32X, 32T, HC3, HC7 | |------------|---------------|-----------------------------| | DS3400 | 1726 | 41X, 42X, 42T, HC4, HC8 | ---------------------------------------------------------- CONTENTS --------- 1.0 Overview 2.0 Installation and Setup Instructions 3.0 Configuration Information 4.0 Unattended Mode 5.0 Web Sites and Support Phone Number 6.0 Trademarks and Notices 7.0 Disclaimer 1.0 Overview: 1.1 Description The Linux RDAC provides redundant failover/failback support for the logical drives in the DS3000 storage subsystem that are mapped to the Linux host server. The Linux host server must have connections to the host ports of both controllers A and B of the DS3000 storage subsystem. It is provided as a redundant path failover/failback driver alternative to the Linux host bus adapter failover device driver. There are three versions of the Linux RDAC driver. This version (09.03.0C05.0251) that this README is packaged with is for Linux 2.6 kernels with RHEL 5, SLES 11 and SLES 10 with SP1. For supporting Linux versions of SLES 9, SLES 10 and RHEL 4, please refer to the RDAC package version 09.03.0B05.0251 instead. For Linux 2.4 kernel environment, please refer to the Linux RDAC package version 09.00.A5.XX instead. Please refer to the Dependencies section for the required code levels and Linux kernel versions. In addition, please refer to the http://www.ibm.com/servers/storage/support/disk/ IBM System Storage™ Disk Storage Systems Technical Support web site for the latest supported DS3000 storage subsystem models, host adapters, device drivers, Linux kernel versions and updated readme. Note: Deviations from the listed code levels are not supported. Please contact IBM Support or representatives for help if required. 1.2 Limitations 1. This version of DS3000 Linux RDAC will not support any Linux 2.4 kernels like SuSE SLES 8 or Redhat 3 Linux operating system on Intel/AMD architecture or Linux on POWER (LoP) servers. Please refer to the Linux RDAC package driver version 09.00.A5.XX instead. 2. This version of DS3000 Linux RDAC will not support any Linux 2.6 kernels for SuSE SLES 9, SLES 10 or RHEL 4 Linux operating system on Intel/AMD architecture or Linux on POWER (LoP)servers. Please refer to the Linux RDAC package driver version 09.03.0B05.0251 instead. 2. The Linux RDAC driver cannot co-exist with a HBA-level multipath failover/failback driver. Note: You might have to modify the driver make file for it to be compiled in the non-failover mode. 3. All limitations which apply to the current DS3000 Storage Server when configured with Linux servers also apply to this Linux RDAC release. 4. The Linux SCSI layer does not support skipped (sparse) LUNs. If the mapped LUNs are not contiguous, the Linux kernel will not scan the rest of the LUNs. Therefore, the LUNs after the skipped LUN will not be available to the host server. The LUNs should always be mapped using consecutive LUN numbers. The SMutil hot_add command can be used to scan for sparse LUNs. However, after the system is reboot, the LUNs after the skipped LUN might not be available until the hot-add utility was performed. 5. The RDAC driver reports I/O failures immediately after all paths are failed. When the RDAC driver detects that all paths to a DS3000 storage subsystem are failed, it will report I/O failure immediately. This behavior is different from other failover device driver methods. Some device drivers will wait for a certain time out/retry period before reporting an I/O failure to the host application. There is no work-around. 6. The virtual HBA driver can not be loaded if there is no storage array attached. The work-around is to connect the host server to a storage subsystem and run the "mppBusRescan" utility, which is previously known as the "hot_add" utility. Note: If no LUN is mapped to the host server partition on the storage subsystem, "mppBusRescan"/"hot_add" will not load the mpp_Vhba module. If the server did not recognize any new mapped LUNs after running the "mppBusRescan" utility a few times, consider rebooting the server. 7. Universal Access Luns (UTM LUNs) should not be assigned to LUN ID 0, especially with RDAC's installed. Placing an Universal Access Lun at LUN id 0, may lead to loss of LUN recognition of next sequence LUN ids or partial list of Virtual Luns reported with the RDAC driver. These UTM LUNs should be assigned LUN ID 31. 1.3 Enhancements Support has been added for the SLES 11 operating system. This release also allows for path failover using shorter timeouts based on internal HBA FW counters. 1.4 Level of Recommendations and Prerequisites for the Update: N/A 1.5 Dependencies: The following code levels should be used. Previous levels of controller FW are supported back to 07.35.41.00. 1.5.1 For Linux servers running Intel 32bit architecture, Intel EM64T architecture, AMD 64bit architecture, IBM POWER processor. a. DS3000 storage subsystem Controller firmware and NVSRAM: 1. Storage Controller Firmware versions: a. DS3200: FW_DS3200_07355300 b. DS3300: FW_DS3300_07355300 c. DS3400: FW_DS3400_07355300 2. Storage Controller NVSRAM versions a. DS3200 - Single Controller: N1726D32LR335V03.dlp Dual Controller : N1726D320R335V07.dlp b. DS3300 - Single Controller: N1726D33LR335V03.dlp Dual Controller : N1726D330R335V06.dlp c. DS3400 - Single Controller: N1726D34LR335V03.dlp Dual Controller : N1726D340R335V06.dlp d. Boot DS - Dual Controller : N1726D320R230V03.dlp b. The following HBA's are supported Fibre Channel HBA's: DS4000 FC 4Gbps: DS4000 FC 4Gbps - PCI-X Single Port HBA DS4000 FC 4Gbps - PCI-X Dual Port HBA QLogic 4Gb FC: QLogic 4Gb FC Single-Port PCIe HBA for System x QLogic 4Gb FC Dual-Port PCIe HBA for System x QLogic 4Gb SFF Fibre Channel Expansion Card for BladeCenter Qlogic Ethernet & 4Gb Fibre Channel Expansion Card FAStT FC-133: FAStT FC-133 Host Bus Adapter Emulex 4Gb PCI-X: Emulex 4Gb FC Single-Port PCI-X HBA for System x Emulex 4Gb FC Dual-Port PCI-X HBA for System x Emulex 4Gb PCIe: Emulex 4Gb FC Single-Port PCIe HBA for System x Emulex 4Gb FC Dual-Port PCIe HBA for System x Emulex 4Gb SFF Fibre Channel Expansion Card for BladeCenter IBM BladeCenter Fibre Channel Expansion Card System p fibre channel host bus adatpers: - FC 6239 - FC 5716 / 1957 / 1977 - FC 5758 / 1905 - FC 5759 / 1910 - FC 5773 - FC 5774 SAS HBAs: IBM SAS HBA Controller IBM BladeCenter SAS Expansion Card iSCSI HBAs: IBM PCI-X iSCSI: IBM iSCSI Server TX Adapter IBM iSCSI Server SX Adapter QLogic PCIe iSCSI: QLogic iSCSI Single-Port PCIe HBA for IBM System x QLogic iSCSI Dual-Port PCIe HBA for IBM System x IBM iSCSI Daughter Card for BladeCenter Qlogic iSCSI Expansion Card for BladeCenter c. Linux versions - For Redhat EL 4.8 (32 & 64 bit) - For Redhat EL 5.2 (32 & 64 bit) - For SuSe SLES 9.0 SP4 (32 & 64 bit) - For SuSe SLES 10 SP2 (32 & 64 bit) - For SuSe SLES 11 (32 & 64 bit) 3. IBM DS3000 Storage Manager Host software (Linux version) - Linux 2.6 Kernel SMIA-Linux-10.60.A5.14 - Linux 2.6 Kernel (PowerPC) SMIA-LinuxPPC-10.60.A5.14 Refer to the http://www.ibm.com/servers/storage/support/disk/ IBM System Storage™ Disk Storage Systems Technical Support web site for the latest update to the supported host adapters, device driver levels, Linux kernel versions, DS3000 controller firmware versions and readme. 2.0 Installation and Setup Instructions ----------------------------------------- 2.1 Prerequisites 1. The Linux RDAC driver is released as a source-code package in the format of a gunzip compressed tar file. To unpack the driver source package, type the following command in the Linux console window: tar -zxvf rdac-LINUX-xx.xx.xx.xx-source.tar.gz where xx.xx.xx.xx is the release version of the RDAC driver. The source files will uncompress to the "linuxrdac" directory. 2. The Host server must have the non-failover HBA device driver properly built and installed before the Linux RDAC driver installation. Refer to the HBA device driver README or the HBA User Guide for instructions on installing the non-failover version of the device driver. The driver source tree is included in the package if you need to build it from the source tree. 3. Although the Host server can have different HBAs from multiple vendors or different HBA models from the same vendors, only one model of the HBA can be connected to the IBM DS3000 storage subsystems in each host server. 4. Check for the following low level host bus adapter driver names entries in the appropriate file for a given Linux OS distribution. - For SuSE SLES 9 Linux OS distribution: low level driver HBA names should be included in the INITRD_MODULES string in /etc/sysconfig/kernel file. Examples: - For the systems that have the IBM FC2-133 adapter or JS20 fibre channel expansion card, the INITRD_MODULES string should include a qla2xxx and qla2300 ( or qla2300). - For the systems that have IBM Emulex HBAs, the INITRD_MODULES string should include lpfcdd or lpfc. Examples: - For the systems that have the IBM FC2-133 adapter or JS20 fibre channel expansion card, there is a scsi_hostadapter entry such as: alias scsi_hostadapterx qla2300 - For the systems that have IBM Emulex HBAs, there is a scsi_hostadapter entry such as: alias scsi_hostadapterx lpfc(or lpfcdd) 5. The kernel source tree for the Linux kernel version to be built against should already be installed before RDAC driver package installation. 2.2 Build and Installation 2.2.1. This step is for SUSE kernel distribution only. For Redhat kernel distribution, proceed to step 3.2.2. a. Install the kernel-source from the SUSE distribution. b. create a soft link to the kernel source. ln -sf /usr/src/ /usr/src/linux c. To ensure kernel version synchronization between the driver and running kernel, type the following in the Linux console window. Press Enter after each command. - cd /usr/src/linux - make mrproper (completely clean the kernel tree) - cp /boot/config-`uname -r` .config (copy the new config) - make oldconfig (update configuration using .config) - make dep (rebuild the dependencies) - make modules (build the modules-not require on newer kernel version) 2.2.2. RDAC Driver Building for SuSE and Redhat a. Change to the "linuxrdac" directory. b. To remove the old driver modules in that directory, type the following and press Enter: make clean c. To compile all driver modules and utilities in a multiple CPUs server (SMP kernel), type the following and press Enter: make 2.2.3. RDAC Driver Installation for SuSE and Redhat a. Type the following and press Enter: make install This command will do the following things: * copy the driver modules to the kernel module tree. * build the new RAMdisk image (mpp-`uname -r`.img) which includes the RDAC driver modules and all driver modules that are needed at boot. b. Follow the instructions displayed at the end of of the build process to add a new boot menu option which uses /boot/mpp-`uname -r`.img as the initial RAMdisk image. The following is an example for /boot/grub/menu.lst (Note that it may vary in accordance with different system setup configuration): title SUSE Linux with MPP support kernel (hd0,1)/boot/vmlinuz root=/dev/sda2 vga=0x317 selinux=0 splash=silent console=tty0 resume=/dev/sda3 elevator=cfq showopts initrd (hd0,1)/boot/mpp-2.6.5-7.139-smp.img The following is an example of /etc/yaboot.conf for IBM® eServer pSeries Architectures (ppc64) systems (Note entries may vary in accordance with your system setup configuration) image = /boot/vmlinux label = MPP root = /dev/sdb3 append = "selinux=0 elevator=cfq" initrd = /boot/mpp-2.6.5-7.139-pseries64.img 2.3 RDAC Driver Post-Installation a. Reboot the system using the new boot menu option. b. To verify that sd_mod, sg, mpp_Upper, mpp_Vhba, and HBA device driver were loaded after the reboot, type the following and press Enter: /sbin/lsmod On SuSE platforms, verify sg, mppUpper, mppVhba and low level HBA drivers (e.g., qla2xxx, qla2300, qla4xxx) are loaded. c. To verify that the RDAC driver discovered the available physical Luns and created virtual Luns for them, type the following and press Enter: ls -lR /proc/mpp d. You can now issue I/Os to the Luns. e. If you make any changes to MPP configuration file (/etc/mpp.conf) or persistent binding file (/var/mpp/devicemapping), please run mppUpdate to re-build RAMdisk image to include the new file so that the new configuration file (or persistent binding file) can be used on the next system reboot. f. To dynamically re-load the driver stack (scsi_mod, sd_mod, sg, mpp_Upper, , mpp_Vhba) without rebooting the system, you need to first comment out all "scsi_hostadapter" entries in /etc/module.conf. Then, issue "modprobe -r mpp_Upper" to unload the driver stack and follow by "modprobe mpp_Upper" to re-load the driver stack. See Recommendation. Recommendation: Reboot the system whenever a need to unload the driver stack arises. The use of modprobe with the RDAC driver stack or the use of rmmod to remove all the drivers in the RDAC driver stack, in order, is not recommended/ supported. g. Installation of the Emulex Application Kit,lpfcapp-2.10g-1.ppc64.tgz, on SLES9 servers, automatically installs HBAnyware. HBAnyware interferes with the unloading the lpfcdfc and lpfc modules. The work around for this is to either stop HBAnyware (/usr/sbin/HBAnyware stop) or uninstall the Application kit. See the Emulex Application Kit Readme for further instructions. h. The file /etc/syslog.conf should have entries for kern.debug, kern.notice, kern.info and kern.warning in order to capture all debug and error messages for MPP driver. 2.4 Persistent Naming Linux SCSI device names have the possibility of changing when the host system reboots. We recommend using a utility such as devlabel to create user-defined device names that will map devices based on a unique identifier, called a UUID. 2.5 RDAC driver unload The unload order for the MPP driver stack is as follows: a. rmmod mppVhba b. start "rmmod mppUpper" as a background process Note: If this command in not run before the next command in LoP server, one will gets a response of "ERROR: Module lpfcdd is in use" and the lpfcdd driver can not be removed. c. rmmod the installed HBA driver 2.6 RDAC Driver Package Uninstall and Reinstall/Update To un-install the RDAC driver package, type the following and press Enter: make uninstall Note: To Reinstall/Update the RDAC driver package, you need to issue the command "make uninstall" followed by the "make install" command under the /linuxrdac directory in the new RDAC driver source code bundle. 2.7 Kernel Update After applying the kernel update and booting into the new kernel, please do the following things to build MPP Initrd image for the new kernel: a. Change directory to Linuxrdac source code directory. b. do "make uninstall". c. Follow driver building and installation procedure described in Section 3.2.2 and Section 3.2.3. 2.8 Initial Ramdisk image (initrd) Initial RamDisk Image (initrd image) is automatically created when the driver is installed using "make install". Boot loader Configuration file needs to have entry for this newly created image. The initrd image is located in boot partition with file name :'mpp-`uname -r`.img. { Example : mpp-2.4.21-9.ELsmp.img } For a Driver Update, If the system already has an old entry for MPP, the system administrator has to just modify the existing MPP entry accordingly in the boot loader configuration file. In most of the cases, no change is required if the kernel version is same. To create new 'initrd image' user has to run 'mppUpdate' which will overwrite old image file with the new image file. If 3rd party drivers needed to be added to initrd image, edit the /etc/sysconfig/kernel ( SUSE ) with the 3rd party driver entries. Run 'mppUpdate' to create new ramdisk image. 2.9 Adding and Deleting mapped logical drives (LUNs) Linux RDAC supports re-scanning to recognize a newly mapped LUN without rebooting the server. The utility program is packed with the Linux RDAC driver. It can be invoked by using either "hot_add" or "mppBusRescan" command. "hot_add" is a symbolic link to mppBusRescan. There are man pages for both commands. However, the Linux RDAC driver doesn't support LUN deletion. One has to reboot the server after deleting the mapped logical drives. 2.10 Proc entries To verify that the RDAC driver discovered the available physical LUNs and created virtual LUNs for them, type the following and press Enter: ls -lR /proc/mpp The linux system provides a /proc file system that is a special memory-only, software-created filesystem used by the kernel to export driver information to the user space. The proc pseudo- filesystem is mounted to /proc. The linux SCSI subsystem's proc filesystem directory is /proc/scsi. By convention each HBA driver creates a sub directory under /proc/scsi. The linux RDAC driver's proc entries are: 1. /proc/mpp Entry for the RDAC driver itself 2. /proc/scsi/mpp/ The entry for the MPP virtual host adapter. This can differ from system to system and is assigned by the scsi middle-layer. 3. /proc/mpp/ There is an entry for each array that is visible to the host. 4. /proc/mpp//controllerA /proc/mpp//controllerB These are the entries for the 2 targets on each array seen by the host. Each storage array has 2 controllers. 5. /proc/mpp//controller/ Here the low level driver can be any one of qlogic or emulex HBAs. The HCT# is the Host#, channel#, Target#, where Host# is the Host No of the low-level driver and is assigned by the scsi mid-layer. Channel# depends on whether the HBA card is single or dual channeled. Target# is the Target # assigned to that controller on that array and is assigned by the Low-level HBA driver. 6. /proc/mpp//controller//LUN # Lastly are the Volumes or LUN # of Volumes as mapped on host partition on the storage array and seen through that path or Initiater(Host)-Target combination. 2.11 MAN pages There are 4 MAN pages that can provide more information man RDAC - This man page talks about the RDAC(MPP) driver and the RDAC(MPP) configurable parameters. man mppUtil - This man page tells you how to use the mppUtil - the utility for the RDAC(MPP) driver. man mppBusRescan - This man page describes the hot_add (a.k.a mppBusRescan) script that is available to add newly mapped luns and newly added storage arrays. man mppUpdate - This man page instructs you as to how you can use the persistant device mapping facility available with the RDAC driver and how to change the configuration values for the RDAC driver and build a new RDAC ramdisk. 3.0 Configuration Information ------------------------------- 3.1 Configuration installation N/A 3.2 Configuration Settings N/A 3.3 Hardware Status and Information N/A 4.0 Unattended Mode ------------------------------- N/A 5.0 WEB Sites and Support Phone Number ---------------- 6.1 IBM System Storage™ Disk Storage Systems Technical Support web site: http://www.ibm.com/servers/storage/support/disk/ 6.2 IBM System Storage™ Marketing Web Site: http://www.ibm.com/servers/storage/disk 6.3 If you have any questions about this update, or problem applying the update go to the following HelpCenter World Telephone Numbers URL: http://www.ibm.com/planetwide IMPORTANT: You should download the latest version of the DS3000 Storage Manager host software, the DS3000 storage subsystem controller firmware, the DS3000 drive expansion enclosure ESM firmware and the drive firmware at the time of the initial installation and when product updates become available. To be notified of important product updates, you must first register at the IBM Support and Download Web site: www-1.ibm.com/servers/storage/disk/ 6.0 Trademarks and Notices ---------------------------- The following terms are trademarks of the IBM Corporation in the United States or other countries or both: IBM FAStT System Storage™ the e-business logo xSeries HelpCenter Linux is a registered trademark of Linus Torvalds. Microsoft, Windows, and Windows NT are trademarks of Microsoft Corporation in the United States, other countries, or both. Java and all Java-based trademarks and logos are trademarks or registered trademarks of Sun Microsystems, Inc. in the United states, other countries, or both. UNIX is a registered trademark of The Open Group in the United States and other countries. STEELEYE are TRADEMARKS and LIFEKEEPER is a registered trademark of STEELEYE TECHNOLOGY, INC. 7.0 Disclaimer -------------- 7.1 THIS DOCUMENT IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IBM DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE AND MERCHANTABILITY WITH RESPECT TO THE INFORMATION IN THIS DOCUMENT. BY FURNISHING THIS DOCUMENT, IBM GRANTS NO LICENSES TO ANY PATENTS OR COPYRIGHTS. 7.2 Note to U.S. Government Users -- Documentation related to restricted rights -- Use, duplication or disclosure is subject to restrictions set forth in GSA ADP Schedule Contract with IBM Corporation.