IBM(R) Multipath Subsystem Device Driver Path Control Module (PCM) Supporting Open HyperSwap Version 3.0.0.5 README FOR AIX™ July 25, 2011 --------------------------------------------------------------------------- CONTENTS 1.0 About this README file 1.1 Who should read this README file 1.2 How to get help 2.0 Prerequisites for SDDPCM 3.0 SDDPCM change history 3.1 Defects Fixed 3.2 New Features 3.3 Feature Details 3.4 Unsupported configurations 3.5 Known issues 3.6 Corrections to User's Guide 4.0 User license agreement for IBM device drivers 4.1 Background / Purpose 4.2 Definitions 4.3 License grant 4.4 Responsibilities 4.5 Confidential information 4.6 Limitation of liability 4.7 Termination 4.8 Representations and warranties 4.9 General provisions 4.10 Appendix A 5.0 Notices 6.0 Trademarks and service marks --------------------------------------------------------------------------- 1.0 About this README file Welcome to IBM Multipath Subsystem Device Driver Path Control Module(SDDPCM). This README file contains the most recent information about the IBM Multipath Subsystem Device Driver PCM, supporting DS8000 Open HyperSwap Version 3 Release 0 Modification 0 Level 5 (SDDPCM 3.0.0.5) for AIX. IBM recommends that you print and review the contents of this README file before installing and using SDDPCM on AIX with MPIO-capable disk driver. 1.1 Who should read this README file This README file is intended for storage administrators, system programmers, and performance and capacity analysts. The information in this file only applies to customers who run: 1. DS8000 with SDDPCM supporting Open HyperSwap 2. Tivoli Productivity Center for Replication 1.2 How to get help Go to the following Web site for SDD/SDDPCM technical support and for the most current SDD documentation and support information: http://www.ibm.com/servers/storage/support/software/sdd/ Go to the following Web site for the most current TPC-R documentation and support information: http://publib.boulder.ibm.com/infocenter/tivihelp/v4r1/index.jsp --------------------------------------------------------------------------- 2.0 Prerequisites for SDDPCM supporting DS8000 Open HyperSwap feature The Open HyperSwap functionality for Tivoli Storage Productivity Center for Replication(TPC-R) requires a minimum version of R5.1 with model DS8700 or up. Please check TPC support matrix to determine which DS8000 model(s) is/are supported for the specific TPC-R version through the link below: https://www-304.ibm.com/support/docview.wss?rs=40&uid=swg21386446&context=SSBSEX&cs=utf-8&wv=1&lang=en&loc=en_US Prior to install SDDPCM,you must deinstall fileset "ibm2105.rte"(version of 32.6.100.XX) and "devices.fcp.disk.ibm.rte"(version of 1.0.0.XX) host attachment for SDD driver, along with the SDD package. The SDD driver and SDDPCM supporting DS8000 Open HyperSwap module can not coexist on one server. You must install the following host attachment for SDDPCM v3.0.0.4, which only configures DS8000 storage devices: devices.fcp.disk.ibm.mpio.rte (version 2.0.0.1) Please check the AIX fix central website for fix availability: http://www-912.ibm.com/eserver/support/fixes/fixcentral/main/pseries/aix If not available for download, contact AIX software support to determine eligibility for a temporary fix. sddpcm 3.0.0.5 only supports DS8000 storage devices with Open HyperSwap feature. It requires the following AIX releases and APARs: AIX Level APAR AIX53V TL11 IZ33540 IZ68202 IZ82078 AIX61H TL04 IZ33541 IZ68187 IZ78841 AIX53X TL12 IZ51404 IZ68197 IZ81632 AIX61J TL05 IZ51405 IZ69033 IZ78807 The AIX APARs are available from AIX fix central website: http://www-912.ibm.com/eserver/support/fixes/fixcentral/main/pseries/aix --------------------------------------------------------------------------- 3.0 SDDPCM change history =============================================================================== 3.1 Defects Fixed V3.0.0.1 -------- 4954: This defect fixed a few issues found in SDDPCM v3.0.0.0 release. V3.0.0.2 -------- 4950: Add '-s' option for 'pcmpath query portmap' and 'pcmpath query essmap' commands to refresh the information after LUN configuration or sddpcm upgrade. 4955: Allow 'pcmpath enable ports' or 'pcmpath disable ports' command to put paths on closed devices online/offline. 4962: A race condition which occurs when pcmsrv reclaims CLOSED_PATH paths could crash system. 4964: Allow PPRC secondary lun to open for read, enable cache hint function based on support of individual lun of the OS device pair, and fails the IO failover to target lun during HyperSwap if mode select command to resume IOs hit reservation conflict on target lun. 4965: During dynamic OpenSwap device coupling, close paths will cause system hang. 4968: fix query essmap alignment problem. V3.0.0.3 -------- 4974: HyperSwap fails when device is in closing state. 4979: respawnpcmsrv/respawnAE commands consume too much CPU usage, and impact IO performance. V3.0.0.4 -------- 4990: Fix multiple IO failover issues. 4991: Correct ODM quiesce_timeout attribute description. 4997: Fix potential data integrity issue during IO failover to secondary storage. V3.0.0.5 -------- 5033: Fix HyperSwap failure when devices are being closed. =============================================================================== 3.2 New Features OAR 1396: Support DS8000 storage Open HyperSwap on AIX open system(AIX 53V & up, AIX61H & up) by SDDPCM(v3.0.0.0 and up) and TPC-R(v4.2 & up). 4751: Add two new commands 'pcmpath query session' and 'pcmpath query device -S ' to support Open HyperSwap. 4810: New commands are provided to stop and restart AE daemon and pcmsrv daemon. 4827: Add Open HyperSwap related events in AIX host errlog. 4934: Support DS8800 8 port FC adapter by 'pcmpath query portmap' and 'pcmpath query essmap' commands. =============================================================================== 3.3 Feature/defect Details OAR 1396: Support DS8000 storage Open HyperSwap on AIX open system(AIX 53V up, AIX61H &* up) by SDDPCM(v3.0.0.0 and up) and TPC-R(v4.2 & up). Note: This version only supports DS8K devices and Open HyperSwap feature in single host environment. Clustering environment such as VIO and HACMP is not supported with current version. Configuring Open HyperSwap devices as boot or paging devices are not supported. 4751: Add 2 new commands 'pcmpath query session' and 'pcmpath query device -S ' to support Open HyperSwap. New query session option added to display session state: >pcmpath query session Total Open Hyperswap Sessions : 1 SESSION NAME: session1 SessId Host_OS_State Host_copysets Disabled Quies Resum SwRes 0 READY 20 0 0 0 0 New query device option -S added to display all Open HyperSwap devices of a session: >pcmpath query device -S session1 Total Devices in session1 Session : 4 DEV#: 2 DEVICE NAME: hdisk2 TYPE: 2107900 ALGORITHM: Load Balance SESSION NAME: session1 OS Direction: H1<-H2 ========================================================================== PRIMARY SERIAL: 25252520000 ----------------------------- Path# Adapter/Path Name State Mode Select Errors 0 fscsi0/path0 CLOSE NORMAL 6091 0 1 fscsi0/path2 CLOSE NORMAL 6300 0 2 fscsi1/path4 CLOSE NORMAL 6294 0 3 fscsi1/path5 CLOSE NORMAL 6187 0 SECONDARY SERIAL: 34343430000 * ----------------------------- Path# Adapter/Path Name State Mode Select Errors 4 fscsi0/path1 CLOSE NORMAL 59463 0 5 fscsi0/path3 CLOSE NORMAL 59250 0 6 fscsi1/path6 CLOSE NORMAL 59258 0 7 fscsi1/path7 CLOSE NORMAL 59364 0 DEV#: 3 DEVICE NAME: hdisk3 TYPE: 2107900 ALGORITHM: Load Balance SESSION NAME: session1 OS Direction: H1<-H2 ========================================================================== PRIMARY SERIAL: 25252520001 SECONDARY SERIAL: 34343430001 ----------------------------- Path# Adapter/Path Name State Mode Select Errors 0 fscsi0/path0 CLOSE NORMAL 0 0 1 fscsi0/path2 CLOSE NORMAL 0 0 2 fscsi1/path4 CLOSE NORMAL 0 0 3 fscsi1/path5 CLOSE NORMAL 0 0 4 fscsi0/path1 CLOSE NORMAL 0 0 5 fscsi0/path3 CLOSE NORMAL 0 0 6 fscsi1/path6 CLOSE NORMAL 0 0 7 fscsi1/path7 CLOSE NORMAL 0 0 Note: path needs to be opened at least once in order to show its volume association as hdisk2 in the example above. 4827: Add Open HyperSwap related events in AIX host errlog SDDPCM_CHKHSACTION SDDPCM_OSPAIRDISABLED SDDPCM_OSPAIRENABLED SDDPCM_SESSIONQUIESCE SDDPCM_SESSIONRESUME SDDPCM_SESSIONSWAPRESUME SDDPCM_SESSIONRDY SDDPCM_SWAPRESUMEDONE SDDPCM_RESUMEDONE SDDPCM_QUIESCETIMEOUT SDDPCM_OSPAIRSRFAILED SDDPCM_OSPAIRBLOCK SDDPCM_OSPAIRASSOCIATE SDDPCM_OSPAIRDISASSOCIATE For detail Open HyperSwap events associated with these errlogs, please refer to SDD User Guide, section "SDDPCM error log messages". 4810: New commands are provided to stop and restart AE daemon: stopAE startAE 1. Issue "startAE" to manually start AE daemon, and "stopAE' to stop AE daemon. 2. Note: stopsrc -s AE and startsrc -s AE will still work. However, with stopsrc -s AE, AE will be respawned in 1 second. Therefore, this command can not be used to stop AE daemon permanently. New commands are provided to stop and restart pcmsrv daemon: stoppcmsrv startpcmsrv 1. Issue "startpcmsrv" to manually start pcmsrv daemon, and "stoppcmsrv" to stop pcmsrv daemon. 2. Note: stopsrc -s pcmsrv and startsrc -s pcmsrv will still work. However, with stopsrc -s pcmsrv, pcmsrv will be respawned in 1 second. Therefore, this command can not be used to stop pcmsrv daemon permanently. 4954: This defect fixed a few issues found in SDDPCM v3.0.0.0 release. A few Race conditions among events between TPC_R and host. These race conditions may cause the data integrity issue during the unplanned Hyperswap. There maybe a small window that some devices' I/O could be failed right before unplanned HyperSwap starts. Incorrectly change Host HyperSwap session state to 'READY' after a Hyperswap event happened. This allows HyperSwap event to occur to a session, which is not really ready to implement HyperSwap. Host HyperSwap session state should only be changed to 'READY' when user issues start session('Start H1->H2' or 'Start H2-H1') command from TPC-R GUI. There is a small window that I/O could be hung during HyperSwap process. Dynamically adding path(s) to opened devices, which are in the middle of HyperSwap process at quiesced state, may fail to be added to the device, and be displayed in DEFINED state by 'lspath' command. Dynamically changing path priority of device(s) with failover_only path selection algorithm, followed by changing path selection algorithm from failover_only to load_balance, or to round_robin may cause I/O to be issued to both primary and secondary volumes. After PPRC device(s) are dynamically disassociated by TCP-R's 'remove copyset' command, leaving disassociated devices in open state may cause host crash. Unplanned HyperSwap request that triggered during the time AE is inactive won't be sent to TPC-R at that moment, but this request could be sent to TPC-R after AE restarts later, under the condition that the error which triggered the original HyperSwap no longer exists. Hyperswap occurs during a dynamic tracking event could cause I/O hanging. 4934: Support DS8800 8 port FC adapter by 'pcmpath query portmap' and 'pcmpath query essmap' commands. The output is changed in order to display 8 ports per adapter. Example of 'pcmpath query portmap' display: BAY-X BAY-Y ESSID DISK H1 H2 H3 H4 H1 H2 H3 H4 ABCDEFGH ABCDEFGH ABCDEFGH ABCDEFGH ABCDEFGH ABCDEFGH ABCDEFGH ABCDEFGH 1302481 hdisk55 Bay1-Bay2: -------- -------- -O------ -------- -------- -------- -------- -------- Bay3-Bay4: -------- -------- -------- -------- -------- -------- -O------ -------- 1302481 hdisk56 Bay1-Bay2: -------- -------- -O------ -------- -------- -------- -------- -------- Bay3-Bay4: -------- -------- -------- -------- -------- -------- -O------ -------- 1302481 hdisk57 Bay1-Bay2: -------- -------- -O------ -------- -------- -------- -------- -------- Bay3-Bay4: -------- -------- -------- -------- -------- -------- -O------ -------- 1302481 hdisk58 Bay1-Bay2: -------- -------- -Y------ -------- -------- -------- -------- -------- Bay3-Bay4: -------- -------- -------- -------- -------- -------- -Y------ -------- 7508821 hdisk58 Bay1-Bay2: -------- -------- -Y------ -------- -------- -------- -------- -------- Bay3-Bay4: -------- -------- --Y----- -------- -------- -------- -------- -------- 1302481 hdisk59 Bay1-Bay2: -------- -------- -O------ -------- -------- -------- -------- -------- Bay3-Bay4: -------- -------- -------- -------- -------- -------- -O------ -------- 7508821 hdisk59 Bay1-Bay2: -------- -------- -O------ -------- -------- -------- -------- -------- Bay3-Bay4: -------- -------- --O----- -------- -------- -------- -------- -------- Y = online/open y = (alternate path) online/open O = online/closed o = (alternate path) online/closed N = offline n = (alternate path) offline - = path not configured ? = path information not available PD = path down Note: 2105 devices' essid has 5 digits, while 1750/2107 device's essid has 7 digits. 4950: After LUN reconfiguration or sddpcm upgrade, 'pcmpath query essmap' or 'query portmap command' output may not match the latest configuration. Using '-s' option will cause rescanning the configured luns to ensure the essmap and portmap outputs will match the latest configuration. 4955: In previous sddpcm releases, 'pcmpath enable ports' or 'pcmpath disable ports' command will only put paths on opened devices online/offline. This fix will also put paths on closed devices online/offline as long as those paths are connected to storage target ports which have one of the connected paths opened once. 4962: There is a race condition between pcmsrv tries to reclaim the CLOSE_FAILED paths and kernel opens these paths. This race condition could cause system crash. 4964: Allow PPRC secondary lun to open for read. Modify the enable cache hint function. In previous releases, cache hint function will only be enabled if both luns in a Open Hyperswap device pair support cache hint function. This change will enable cache hint function of a lun on an Open device if the lun support cache hint regardless if the other lun of the pair support cache hint function or not. Also, fails the IO failover to target lun during HyperSwap if mode select command to resume IOs hit reservation conflict on target lun. 4974: HyperSwap fails when device is in closing state. This fixes a problem when an OS device is being closed, there is a small window HyperSwap would fail. 4979: respawnpcmsrv/respawnAE commands consume too much CPU usage, and impact IO performance. SDDPPCM respawnpcmsrv and respawnAE commands check the daemon status too frequently, and the 'ps' command option specified consumes high CPU time on a system with thousands of processes running. 4991: Correct ODM quiesce_timeout attribute description In previous releases, the odm attribute quiesce_timeout description displayed by lsattr command is incorrectly stated as "Retry Timeout". The description should be "I/O Quiesce Timeout". 5033: Fix HyperSwap failure when devices are being closed. During HyperSwap, if application happens to close Open Hyperswap enabled devices, HyperSwap may fail and IOs on the closing devices may not be able to failover to secondary storage successfully. =============================================================================== 3.4 Unsupported configurations This version only supports DS8K devices Open HyperSwap feature in single host environment. Clustering environment such as VIO and/or HACMP are not supported. Configuring Open HyperSwap devices as boot or paging devices are not supported. Configuring Open HyperSwap devices as dump devices are not supported. Auto varyonvg is not supported with Open HyperSwap devices. Currently DB2 with raw device access is not supported. Changing path priority of Open HyperSwap enabled devices with failover_only algorithm is not supported. PR_exclusive, PR_shared, and single_path for reserve_policy are not supported. IOCTL command DKPATHFORCE is not supported. SCSI commands issued through path aware IOCTL commands are not supported because commands for a specific path can not be sent through another path even after storage failover. Path aware IOCTL commands are DKPATHIOCMD, DKPATHIOLCMD, DKPATHRWBUFFER, and DKPATHPASSTHRU. =============================================================================== 3.5 Known issues If cfgmgr command is executed on the host, while user issues an Open HyperSwap Start command, host will fail the Start command and TPC-R GUI will display session state as Prepared, but status as Severe. User needs to check if cfgmgr command is succeeded on the host, then re-issues the Open HyperSwap Start command. If user needs to change Open HyperSwap devices' configuration(rmdev or mkdev) on the system, it is required to disable the session Open HyperSwap function from TPC_R's GUI, in order to avoid HyperSwap event happen during the middle of the devices configuration, which could cause HyperSwap failure. Dynamically coupling devices while I/O running on the primary volumes could cause configuring HyperSwap session timeout. It is strongly recommended to stop I/O and close devices before creating copysets of the Open HyperSwap session, then restart I/O after session is created, or new copysets are added to the session successfully. It is strongly recommended to implement 'remove copyset' from TPC-R GUI after device is closed. Due to AIX disk driver does not retry on application IOCTL SCSI commands, even Hyperswap occurred successfully, failed application IOCTL SCSI commands will fail back to application without being retried on target volume. User application has the responsibility to re-drive the non-path aware IOCTL SCSI commands for retry. =============================================================================== 3.6 Corrections to User's Guide User's Guide 1.8-3.0* version, on page 136, under "Note:. 2. For Open HyperSwap devices, an attempt to set the last active path of the source or target volume offline by using the pcmpath set device M path N offline command will be rejected. When the device is closed, it's allowed to set the last active path of the source volume offline. However, when the device is opened with all paths to the source volume offline, an unplanned HyperSwap will be triggered after I/Os issued. On page 137, under "4. For Open HyperSwap devices, when the device is open, an attempt to set the last active path of the source or target volume offline by the pcmpath set adapter command will be rejected. When the device is closed, it's allowed to set the last path of the source volume offline. However, when the device is opened with all paths to the source volume offline, an unplanned HyperSwap will be triggered after I/Os issued. User's Guide 1.8-3.0* version, under section "Using SDDPCM pcmpath commands" in chapter 3 "Using SDDPCM on an AIX host system", following statement should be added: "pcmpath query portmamp and pcmpath query essmap commands are designated for product support analysis only. User should use other pcmpath query commands to monitor device/path state." User's Guide 1.8-3.0* version, under chapter 13 "Using the datapath Commands", following statement should be added: "datapath query portmap and datapath query essmap commands are designated for product support analysis only. User should use other datapath query commands to monitor device/path states." --------------------------------------------------------------------------- 4.0 User license agreement for IBM device drivers NOTICE: PLEASE READ THIS AGREEMENT CAREFULLY BEFORE USING THE PROGRAM AND DOCUMENTATION. IBM(R) WILL ONLY LICENSE THIS PROGRAM AND DOCUMENTATION TO YOU IF YOU FIRST ACCEPT THE TERMS OF THIS AGREEMENT. BY USING THE PROGRAM AND DOCUMENTATION, YOU AGREE TO ABIDE BY THESE TERMS AND APPLICABLE COPYRIGHT LAWS. IBM LIMITS YOUR ACCEPTANCE OF THE PROGRAM AND DOCUMENTATION TO THE TERMS OF THIS AGREEMENT. The Program and Documentation is owned by International Business Machines Corporation or one of its subsidiaries (IBM) or IBM suppliers, and is copyrighted and licensed, not sold. IBM does not transfer title to this Program and Documentation to you. The terms of this Agreement apply to any additional license copy of the Program or Documentation that IBM authorizes you to make. The term "Program" means the original program and all whole or partial copies of it, including portions merged with other programs. A Program consists of machine-readable instructions and related license materials. Under this Agreement, IBM provides you with a license to use the Program and Documentation only. 4.1 Background/Purpose IBM provides certain device drivers and Documentation under this Agreement. The device drivers and library support that IBM provides under this Agreement are in object code form only. Appendix A of this Agreement indicates the server platforms that are supported. IBM uses announcements to withdraw service for device drivers, feature codes, etc., on hardware and/or operating system platforms. IBM reserves the right to change the Programs or Documentation at any time without prior notice. 4.2 Definitions Derivative Work is a work based on a preexisting work, including a compilation. A Derivative Work prepared without the authorization of the copyright owner of the preexisting work would constitute a copyright infringement. Documentation is the Program documentation that IBM provides to you as follows: IBM Subsystem Device Driver and README files. Object Code is machine-readable instructions in Object Code format. It is substantially in binary form and directly executable by a computer after suitable processing but without the intervening steps of compilation or assembly. Program is the IBM Subsystem Device Driver in Object Code form. 4.3 License grant IBM grants you a revocable, nontransferable, nonexclusive, worldwide, paid-up copyright license to: 1. Use the Program and Documentation solely on the platforms and with the applicable IBM devices described in Appendix A of this Agreement. 2. Maintain one copy of the Program for backup purposes only. Your license to the Programs and Documentation terminates when you no longer rightfully possess the IBM device described in Appendix A. This Agreement does not grant you any right or license to prepare Derivative Works of the Program and Documentation. Nothing in this Agreement grants either party any rights or licenses under any patents or patent applications regardless of whether use and/or execution of the software licensed herein may be construed to practice one or more patents. 4.4 Responsibilities You agree to use the Program and Documentation only with the IBM device described in Appendix A of this Agreement. You will not: 1. otherwise copy, display, transfer, adopt, modify or distribute in any form, the Program and Documentation, except as IBM expressly authorizes in the Documentation 2. decompile, disassemble, reverse engineer, or in any way modify the Program or Documentation 3. sell, rent, lease, sublicense the Program or Documentation, unless explicitly permitted by law without the possibility of contractual waiver; and sublicense or assign the license for the Program and Documentation 4.5 Confidential information Any information which either party may disclose to the other party shall not be deemed to be confidential. If the parties require the exchange of confidential information, such exchange will be made under a separate written confidentiality agreement. 4.6 Limitation of liability IN NO EVENT SHALL IBM OR ITS SUPPLIERS BE LIABLE FOR COSTS OF PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, LOSS OF DATA, LOST PROFITS, BUSINESS INTERRUPTION OR ANY SPECIAL, INCIDENTAL, INDIRECT, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES , EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES AND NOTWITHSTANDING THE FAILURE OF ESSENTIAL PURPOSE OF ANY REMEDY. You acknowledge that circumstances may arise where, because of a default on IBM's part or other liability, you may be entitled to recover damages. Under any such circumstances, you agree that in each such instance, regardless of the basis on which you are entitled to claim damages, IBM shall be liable only up to an amount equal to five thousand U.S. dollars ($5,000). This limitation will not apply to claims relating to bodily injury (including death), and damage to real property and personal property. 4.7 Termination Termination for Cause. If either party fails to perform its obligations hereunder, then the other party may terminate this Agreement or the license granted hereunder for cause. Effect of Termination. The rights and licenses granted to you under this Agreement shall automatically terminate upon the termination of this Agreement. 4.8 Representations and warranties THE PROGRAM AND DOCUMENTATION IS PROVIDED ON AN "AS IS" BASIS. IBM MAKES NO REPRESENTATION OR WARRANTY, EXPRESS OR IMPLIED, WITH RESPECT TO THE PROGRAM AND DOCUMENTATION. IBM DISCLAIMS THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. THE ENTIRE RISK ARISING OUT OF THE USE OR PERFORMANCE OF THE PROGRAM AND DOCUMENTATION REMAINS WITH YOU. 4.9 General Provisions Transfer. You may transfer possession of the program and its media and Documentation to another pay with the transfer of the IBM device described in Appendix A on which such Program is used with. If you do so, you must give the other party a copy of these terms and provide all user documentation to that party, and such party must first agree to such terms before it uses the Program and Documentation. Upon transfer of the Program and Documentation, you must destroy all your copies of the Program and Documentation. Severability. If any provision of this Agreement is found to be illegal or unenforceable, the remainder of this Agreement shall continue in full force and effect provided that the Agreement still effectuates the parties' original intent. Governing Law and Jury Trial Waiver. This Agreement shall be governed by the laws of the State of New York, excluding its conflict of law rules. Each party hereby agrees to waive its rights to a trial by jury. Modifications. No modification to this Agreement, nor any waiver of any rights, shall be effective unless agreed to in a writing that is executed by both parties, and the waiver of any breach or default of this Agreement shall not constitute a waiver of any other right or of any subsequent breach or default. Limitations on Legal Actions. Neither party will bring a legal action against the other more than two (2) years after the cause of action arose. Both parties will act in good faith to resolve disputes. Order of Precedence. In the event of a conflict in terms between this Agreement and another agreement, the terms of this Agreement shall take precedence and prevail over such other terms. Entire Agreement. This Agreement constitutes the entire and exclusive agreement between the parties with respect to this subject matter. All previous discussions and agreements with respect to this subject matter are superseded by this Agreement. 4.10 Appendix A This Appendix indicates: 1. Which specific IBM devices the Program and Documentation are to be used with: IBM devices: IBM TotalStorage DS8000 2. For what specific server platforms the Program and Documentation are to be used and for what software requirements apply to the use of the Program and Documentation, refer to the following websites: - IBM Enterprise Storage Server (ESS) support: www.storage.ibm.com/hardsoft/products/ess/supserver.htm - IBM TotalStorage DS8000 www.ibm.com/servers/storage/disk/ds8000/index.html CONTINUING WITH THIS INSTALLATION CONSTITUTES YOUR ACCEPTANCE OF THE TERMS OF THE ABOVE 'USER LICENSE AGREEMENT FOR IBM DEVICE DRIVERS' ------------------------------------------------------------------------------- 5.0 Notices This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services,or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service. IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not give you any license to these patents. You can send license inquiries, in writing, to: IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY 10504-1785 U.S.A. For license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property Department in your country or send inquiries,in writing, to: IBM World Trade Asia Corporation Licensing 2-31 Roppongi 3-chome, Minato-ku Tokyo 106, Japan The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND,EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you. Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk. This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice. IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you. Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of information between independently created programs and other programs (including this one) and (ii) the mutual use of the information which has been exchanged, should contact: IBM Corporation Information Enabling Requests Dept. DZWA 5600 Cottle Road San Jose, CA 95193 U.S.A. Such information may be available, subject to appropriate terms and conditions, including in some cases, payment of a fee. The licensed program described in this document and all licensed material available for it are provided by IBM under terms of the IBM License Agreement for Non-Warranted Programs. Any performance data contained herein was determined in a controlled environment. Therefore, the results obtained in other operating environments may vary significantly. Some measurements may have been made on development-level systems and there is no guarantee that these measurements will be the same on generally available systems. Furthermore, some measurement may have been estimated through extrapolation. Actual results may vary. Users of this document should verify the applicable data for their specific environment. Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products. This information contains examples of data and reports used in daily business operations. To illustrate them as completely as possible, the examples include the names of individuals, companies, brands, and products. All of these names are fictitious and any similarity to the names and addresses used by an actual business enterprise is entirely coincidental. =============================================================================== IBM agreement for licensed internal code +---- Read Before Using -----------------------------------------------+ |IMPORTANT | | | |YOU ACCEPT THE TERMS OF THIS IBM LICENSE AGREEMENT FOR MACHINE CODE BY| |YOUR USE OF THE HARDWARE PRODUCT OR MACHINE CODE. PLEASE READ THE | |AGREEMENT CONTAINED IN THIS BOOK BEFORE USING THE HARDWARE PRODUCT.SEE| |IBM agreement for licensed internal code. | | | +----------------------------------------------------------------------+ You accept the terms of this Agreement(3) by your initial use of a machine that contains IBM Licensed Internal Code (called "Code"). These terms apply to Code used by certain machines IBM or your reseller specifies (called "Specific Machines"). International Business Machines Corporation or one of its subsidiaries ("IBM") owns copyrights in Code or has the right to license Code. IBM or a third party owns all copies of Code, including all copies made from them. If you are the rightful possessor of a Specific Machine, IBM grants you a license to use the Code (or any replacement IBM provides) on, or in conjunction with, only the Specific Machine for which the Code is provided. IBM licenses the Code to only one rightful possessor at a time. Under each license, IBM authorizes you to do only the following: 1. execute the Code to enable the Specific Machine to function according to its Official Published Specifications (called "Specifications"); 2. make a backup or archival copy of the Code (unless IBM makes one available for your use), provided you reproduce the copyright notice and any other legend of ownership on the copy. You may use the copy only to replace the original, when necessary; and 3. execute and display the Code as necessary to maintain the Specific Machine. You agree to acquire any replacement for, or additional copy of, Code directly from IBM in accordance with IBM's standard policies and practices. You also agree to use that Code under these terms. You may transfer possession of the Code to another party only with the transfer of the Specific Machine. If you do so, you must 1) destroy all your copies of the Code that were not provided by IBM, 2) either give the other party all your IBM-provided copies of the Code or destroy them, and 3) notify the other party of these terms. IBM licenses the other party when it accepts these terms. These terms apply to all Code you acquire from any source. Your license terminates when you no longer rightfully possess the Specific Machine. Actions you must not take You agree to use the Code only as authorized above. You must not do, for example, any of the following: 1. Otherwise copy, display, transfer, adapt, modify, or distribute the Code (electronically or otherwise), except as IBM may authorize in the Specific Machine's Specifications or in writing to you; 2. Reverse assemble, reverse compile, or otherwise translate the Code unless expressly permitted by applicable law without the possibility of contractual waiver; 3. Sublicense or assign the license for the Code; or 4. Lease the Code or any copy of it. ------------------------------------------------------------------------------- 6.0 Trademarks and service marks The following terms are trademarks of the International Business Machines Corporation in the United States,other countries, or both: AIX AS/400 Enterprise Storage Server HACMP/6000 IBM IBM logo iSeries Netfinity NetVista Operating System/400 pSeries RS/6000 Seascape SP System/360 System/370 System/390 The eServer logo TotalStorage Versatile Storage Server xSeries zSeries z/Architecture z/OS Microsoft, Windows, Windows NT, and the Windows logo are registered trademarks of Microsoft Corporation. Java and all Java-based trademarks are 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. Other company, product, and service names may be trademarks or service marks of others. ------------------------------------------------------------------------------- (C) Copyright IBM Corporation 2000, 2002, 2003, 2004. All rights reserved.