007 4507 015
User Manual: 007-4507-015
Open the PDF directly: View PDF .
Page Count: 338
Download | |
Open PDF In Browser | View PDF |
CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 007–4507–015 COPYRIGHT © 2002–2007 SGI. All rights reserved; provided portions may be copyright in third parties, as indicated elsewhere herein. No permission is granted to copy, distribute, or create derivative works from the contents of this electronic documentation in any manner, in whole or in part, without the prior written permission of SGI. LIMITED RIGHTS LEGEND The software described in this document is "commercial computer software" provided with restricted rights (except as to included open/free source) as specified in the FAR 52.227-19 and/or the DFAR 227.7202, or successive sections. Use beyond license provisions is a violation of worldwide intellectual property laws, treaties and conventions. This document is provided with limited rights as defined in 52.227-14. TRADEMARKS AND ATTRIBUTIONS SGI, Altix, the SGI cube and the SGI logo are registered trademarks and CXFS, FailSafe, IRIS FailSafe, SGI ProPack, and Trusted IRIX are trademarks of SGI in the United States and/or other countries worldwide. Active Directory, Microsoft, Windows, and Windows NT are registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries. AIX and IBM are registered trademarks of IBM Corporation. Brocade and Silkworm are trademarks of Brocade Communication Systems, Inc. AMD, AMD Athlon, AMD Duron, and AMD Opteron are trademarks of Advanced Micro Devices, Inc. Apple, Mac, Mac OS, Power Mac, and Xserve are registered trademarks of Apple Computer, Inc. Disk Manager is a registered trademark of ONTRACK Data International, Inc. Engenio, LSI Logic, and SANshare are trademarks or registered trademarks of LSI Corporation. FLEXlm is a registered trademark of Macrovision Corporation. HP-UX is a trademark of Hewlett-Packard Company. InstallShield is a registered trademark of InstallShield Software Corporation in the United States and/or other countries. Intel, Intel Xeon, Itanium, and Pentium are registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries. Legato NetWorker is a registered trademark of Legato Systems, Inc. Linux is a registered trademark of Linus Torvalds in several countries. Norton Ghost is a trademark of Symantec Corporation. Novell is a registered trademark, and SUSE is a trademark of Novell, Inc. in the United States and other countries. OpenLDAP is a registered trademark of OpenLDAP Foundation. Red Hat and all Red Hat-based trademarks are trademarks or registered trademarks of Red Hat, Inc. in the United States and other countries. SANsurfer and QLogic are registered trademarks of QLogic Corporation. Solaris, Sun, and SunOS are trademarks or registered trademarks of Sun Microsystems, Inc. UltraSPARC is a registered trademark of SPARC International, Inc. in the United States and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc. UNIX and the X device are registered trademarks of The Open Group in the United States and other countries. All other trademarks mentioned herein are the property of their respective owners. The lsof command is written by Victor A. Abell and is copyright of Purdue Research Foundation. New Features in this Guide Note: Be sure to read the release notes for your platforms to learn about any late-breaking changes to the installation and configuration procedures. This guide includes the following changes: • Support for the following new platforms: – Mac OS X on the Intel platform – Windows 2003 x86_64 platform • As of CXFS 4.2, all server-capable nodes running 4.2 and client-only nodes running 4.2 require server-side licensing. If all existing client-only nodes are running a prior supported release, they may continue to use client-side license as part of the rolling upgrade policy until they are upgraded to 4.2. All client-only nodes in the cluster must use the same licensing type — if any client-only node in the cluster is upgraded to 4.2 or if a new 4.2 client-only node is added, then all nodes must use server-side licensing. Customers with support contracts can exchange their existing client-side licenses for new server-side licenses. For more information, contact SGI customer support. See "License Keys" on page 9. • Support for 4Gb PICx and PCIe HBA support on Windows nodes • Support for GPT labels on the Mac OS X and Windows platforms • "Memory-Mapped Files Flush Time for Windows" on page 178 • "Mapping XVM Volumes to Storage Targets on Windows" on page 208 • "XVM Failover V2 on Windows" on page 205 • Documentation for the support of XVM failover version 2 on Windows nodes (first supported in the CXFS 4.1.1 release). See "XVM Failover V2 on Windows" on page 205 and "XVM Failover and CXFS" on page 11. • Clarifications about support for the following: – "Real-Time Subvolumes" on page 9 – "External Logs" on page 9 007–4507–015 iii New Features in this Guide • Information about the cmgr command has been moved to Appendix E, "cmgr Examples" on page 267. The preferred CXFS configuration tools are cxfs_admin and the CXFS graphical user interface (GUI). As of the CXFS 5.0 release, the cmgr command will not be supported or documented. • Removal of support for the following: – AIX 5.2 – SLES 9 SP3 – SGI ProPack 4 SP 3 – Solaris 9 – Windows 2000 and Windows XP SP 1 iv 007–4507–015 Record of Revision 007–4507–015 Version Description 001 March 2002 Original publication with the CXFS MultiOS Clients 2.0 release for IRIX 6.5.16f. 002 May 2002 Revised to support the CXFS MultiOS Clients 2.1 release for IRIX 6.5.16f. This release supports the Sun Microsystems Solaris and Microsoft Windows NT platforms. 003 June 2002 Revised to support the CXFS MultiOS Clients 2.1.1 release for IRIX 6.5.16f. This release supports the Sun Microsystems Solaris and Microsoft Windows NT platforms. 004 August 2002 Revised to support the CXFS MultiOS 2.2 Clients release for IRIX 6.5.17f. This release supports the Sun Microsystems Solaris, Microsoft Windows NT, and Microsoft Windows 2000 platforms. 005 November 2002 Revised to support the CXFS MultiOS Clients 2.3 release for IRIX 6.5.18f. This release supports the Sun Microsystems Solaris, Microsoft Windows NT, and Microsoft Windows 2000 platforms. 006 February 2003 Revised to support the CXFS MultiOS Clients 2.4 release for IRIX 6.5.19f. This release supports the Sun Microsystems Solaris, Microsoft Windows NT, and Microsoft Windows 2000 platforms. 007 May 2003 Revised to support the CXFS MultiOS Clients 2.5 release for IRIX 6.5.20f. This release supports the IBM AIX platform, Linux on supported 32-bit platforms, SGI ProPack for Linux on SGI Altix 3000 family of servers and superclusters, Sun Microsystems Solaris platform, Microsoft Windows NT platform, and Microsoft Windows 2000 platform. v Record of Revision vi 008 September 2003 Revised to support CXFS MultiOS Clients 3.0. This release supports the IBM AIX platform, Linux on supported 32–bit platforms, Sun Microsystems Solaris platform, Microsoft Windows NT platform, Microsoft Windows 2000 platform, and Microsoft Windows XP platform. The documentation for Linux 64–bit nodes supported by the CXFS 3.0 for SGI ProPack release will appear in the next version of the CXFS Administration Guide for SGI InfiniteStorage. 009 February 2004 Revised to support CXFS MultiOS Clients 3.1. This release supports the Apple Mac OS X platform, IBM AIX platform, Linux on supported 32–bit platforms, Sun Microsystems Solaris platform, Microsoft Windows 2000 platform, and Microsoft Windows XP platform. 010 November 2004 Revised to support CXFS MultiOS Clients 3.2. This release supports the Apple Mac OS X platform, IBM AIX platform, Linux on supported 32–bit platforms, Sun Microsystems Solaris platform, Microsoft Windows 2000 platform, and Microsoft Windows XP platform. 011 April 2005 Revised to support CXFS MultiOS Clients 3.3. This release supports the Apple Mac OS X platform, IBM AIX platform, Linux on supported third-party platforms (x86, AMD64/EM64T, Intel Itanium 2), Sun Microsystems Solaris platform, Microsoft Windows 2000 platform, Microsoft Windows Server 2003, and Microsoft Windows XP platform. 012 July 2005 Revised to support CXFS MultiOS Clients 3.4. This release supports the Apple Mac OS X platform, IBM AIX platform, Linux on supported third-party platforms (x86, AMD64/EM64T, Intel Itanium 2), Sun Microsystems Solaris platform, Microsoft Windows 2000 platform, Microsoft Windows Server 2003, and Microsoft Windows XP platform. 013 May 2006 Supports CXFS 4.0 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 007–4507–015 014 January 2007 Supports CXFS 4.1 015 September 2007 Supports CXFS 4.2 vii Contents About This Guide Prerequisites . . . . . . . . . . . . . . xxvii . . . . . . . . . . . . . . . . . . . . . xxvii Related Publications . . . . . . . . . . . . . . . . . . . . . . xxvii Obtaining Publications . . . . . . . . . . . . . . . . . . . . . . xxix Conventions . . . . . . . . . . . . . . . . . . . . . . . xxx . . . . . . . . . . . . . . . . . . . . . . . xxx . . . . . . 1 . Reader Comments . . . . . . . . . . . . 1. Introduction . When to Use CXFS . . . . . . . CXFS on Client-Only Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 . . . . . . . . . . . . . . . . . . . . 3 . . . . . . . . . . . 3 Client-Only Installation and Configuration Overview CXFS Processes . . Cluster Administration . . . . . . . . . . . . . . . . . . . . . . . . . 4 . . . . . . . . . . . . . . . . . . . . . 4 . . . . . . . . . . . . . . . . . . 5 User Administration for CXFS User and Group Quotas . . . . . . . . . . . . . . . . . . . . 5 CXFS Mount Scripts . . . . . . . . . . . . . . . . . . . . . . 6 Requirements . . . . . . . . . . . . . . . . . . . . . . 7 . . . . . . . . . . . . . . . . . . . . . 9 . . Real-Time Subvolumes External Logs License Keys . . . . . . . . . . . . . . . . . . . . . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . 9 . . . . . . . . . . . . . . . . 10 Guaranteed-Rate I/O (GRIO) and CXFS XVM Failover and CXFS Monitoring CXFS . . . . . . . . . . . . . . . . . . . . . . . 11 . . . . . . . . . . . . . . . . . . . . . 12 . . 13 2. Best Practices for Client-Only Nodes 007–4507–015 . . . . . . . . . . . ix Contents Configuration Best Practices . Use CXFS when Appropriate . . . . . . . . . . . . . . . . . . . 13 . . . . . . . . . . . . . . . . . . . 14 . . . . . . 15 Understand Hostname Resolution and Network Configuration Rules Fix Network Issues First Use a Private Network . . . . . . . . . . . . . . . . . . . . . 16 . . . . . . . . . . . . . . . . . . . . 16 . . . . . . . . . . . . . . . . 17 . . . . . . . . . . . . . . . 17 Make Most Nodes Client-Only Nodes Use the Correct Mix of Software Releases Protect Data Integrity . . . . . . . . . . . . . . . . . . . . . 17 . . . . . . . . . . . . . . . . . . . 18 . . . . . . . . . . . . . . . . . . . 19 . . . . . . . . . . . . . . . . . 19 . . . . . . . . . . . . . . . . . . 20 . . . . . . . . . . . . . . . . . . 20 Understand the Platform-Specific Limitations and Considerations . . . . . . . . 21 Shut Down Client-Only Nodes Properly Use a Client-Only Tiebreaker Enable Forced Unmount . Configure Firewalls for CXFS Use Administration Best Practices . . Upgrade the Software Properly . . . . . . . . . . . . . . 21 Do Not Run Backups on a Client Node . . . . . . . . . . . . . . . . 21 Use cron Jobs Properly . . . . . . . . . . . . . . . . . . . . 21 . . . . . . . . . . . . . . . . . . . 22 . . . . . . . . . . . . . . . . . 23 Running Power Management Software . . . . . . . . . . . . . . . . 23 Use Fast Copying for Large CXFS Files . . . . . . . . . . . . . . . . 23 . . . . . . 25 Repair Filesystems with Care Disable CXFS Before Maintenance 3. AIX Platform CXFS on AIX . . . . . . . . . Requirements for AIX Log Files on AIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 . . . . . . . . . . . . . . . . . . . . . 26 . . . . . . . . . . . . . . . . . . . . 27 . . . . . . . . . . . . . . . . . . . . 27 . . . . . . . . . . . . . . . . . . . 28 CXFS Commands on AIX . CXFS Mount Scripts on AIX x . 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Limitations and Considerations for AIX . . Maximum CXFS I/O Request Size and AIX Access Control Lists and AIX . . . . . . . . . . . . . . . . . . 28 . . . . . . . . . . . . . . 30 . . . . . . . . . . . . . . 32 . . . . . . . . . . . . . 33 Storage Partitioning and XVM Failover V2 for AIX HBA Installation for AIX . Preinstallation Steps for AIX . . . . . . . . . . . . . . . . . . . . 33 . . . . . . . . . . . . . . . . . . . . 33 . . . . . . . . . . . . . . . . . 33 . . . . . . . . . . . . 36 Adding a Private Network for AIX Verifying the Private and Public Network for AIX Client Software Installation for AIX . . . . . . . . . . . . . . . . . . 37 Installing CXFS Software on AIX . . . . . . . . . . . . . . . . . . 37 Verifying the AIX Installation . . . . . . . . . . . . . . . . . . 39 . . . . . . . . . . . . . . . . . . 39 . . . . . . . . . . . . . . . 41 . . . . . . . . . . . . . . . . 42 Upgrading the CXFS Software for AIX . . . . . . . . . . . . . . . . 42 Modifying the CXFS Software for AIX . . . . . . . . . . . . . . . . 42 Recognizing Storage Changes for AIX . . . . . . . . . . . . . . . . 43 I/O Fencing for AIX . . . . Start/Stop cxfs_client Daemon for AIX Maintenance for AIX GRIO on AIX . . . XVM Failover V2 on AIX . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 . . . . . . . . . . . . . . . . . . . . . 43 . . . . . . . . . . . . . 43 Mapping XVM Volumes to Storage Targets on AIX Troubleshooting for AIX . . . . . Unable to Mount Filesystems on AIX . . . . . . . . . . . . . . . . 44 . . . . . . . . . . . . . . . . 44 . . . . . . . . . . . . 45 . . . . . . . . . . . . 46 . . . . . . . . . . . 46 The cxfs_client Daemon is Not Started on AIX Filesystems Do Not Mount on AIX . . . . . Panic Occurs when Executing cxfs_cluster on AIX A Memory Error Occurs with cp -p on AIX . . . . . . . . . . . . . . 47 An ACL Problem Occurs with cp -p on AIX . . . . . . . . . . . . . . 47 007–4507–015 xi Contents Large Log Files on AIX Reporting AIX Problems . . . . . . . . . . . . . . . . . . . . . 47 . . . . . . . . . . . . . . . . . . . . . 47 . . . . . . 49 4. Linux Third-Party Platforms CXFS on Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 . . . . . . . . . . . . . . . . . . . . 50 . . . . . . . . . . . . . . . . . . . 51 . . . . . . . . . . . . . . . . . . . . 52 CXFS Mount Scripts on Linux . . . . . . . . . . . . . . . . . . . 52 . . . . . . . . . . . . . . . 52 Requirements for Linux CXFS Commands on Linux Log Files on Linux . . Limitations and Considerations for Linux Access Control Lists and Linux HBA Installation for Linux . Preinstallation Steps for Linux . . . . . . . . . . . . . . . . . . 54 . . . . . . . . . . . . . . . . . . . 54 . . . . . . . . . . . . . . . . . . . 56 . . . . . . . . . . . . . . . . 56 . . . . . . 58 Adding a Private Network for Linux Modifications Required for CXFS Connectivity Diagnostics for Linux Verifying the Private and Public Networks for Linux Client Software Installation for Linux . . . . . . . . . . . 59 . . . . . . . . . . . . . . . . . 60 . . . . . . . . . . . . . . . . . . 61 . . . . . . . . . . . . . . . . . . 63 . . . . . . . . . . . . . . . . . . . 63 Start/Stop cxfs_client for Linux . . . . . . . . . . . . . . . . . . 65 Maintenance for Linux . . . . . . . . . . . . . . . . . . 66 . . . . . . . . . . . . . . . 67 . . . . . . . . . . . . . . . 67 . . . . . . . . . . . . . . . 67 Linux Installation Overview . Verifying the Linux Installation I/O Fencing for Linux . . . . . . . Modifying the CXFS Software for Linux Recognizing Storage Changes for Linux . Using cxfs-reprobe with Red Hat Linux GRIO on Linux . . . XVM Failover V2 on Linux . . . . . . . . . . . . . . . . . . . . . 69 . . . . . . . . . . . . . . . . . . . . 70 . . . . . . . . . . . . 70 Mapping XVM Volumes to Storage Targets on Linux xii 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Troubleshooting for Linux . . . . . . . . . . . . . . . . . . . . . 70 . . . . . . . . . . . . . . . . 71 The cxfs_client Daemon is Not Started on Linux . . . . . . . . . . . . 71 Filesystems Do Not Mount on Linux Device Filesystem Enabled for Linux Large Log Files on Linux . . . xfs off Output from chkconfig Reporting Linux Problems . . . 5. Mac OS X Platform . . . CXFS on Mac OS X . . . . Requirements for Mac OS X . . . . . . . . . . . . . . . . . 71 . . . . . . . . . . . . . . . . . 72 . . . . . . . . . . . . . . . . . 73 . . . . . . . . . . . . . . . . . 73 . . . . . . 75 . . . . . . . . . . . . . . . . . . . . . . . . . 75 . . . . . . . . . . . . . . . . . . . 76 . . . . . . . . . . . . . . . . . . 76 . . . . . . . . . . . . . . . . . . 77 . . . . . . . . . . . . . . 78 . . . . . . . . . . . . . . 78 . . . . . . . . . . . . 79 . Limitations and Considerations on Mac OS X Configuring Hostnames on Mac OS X . . Mapping User and Group Identifiers for Mac OS X Access Control Lists and Mac OS X Displaying ACLs . . . . . . . . . . . . . . . . . . . . . . 80 . . . . . . . . . . . . . . . . . 81 . . . . . . . . . . . . 81 Comparing POSIX ACLs with Mac OS X ACLs Editing ACLs on Mac OS X . . . . Default or Inherited ACLs on Mac OS X HBA Installation for Mac OS X . . . . . CXFS Commands on Mac OS X Log Files on Mac OS X . . . . . . . . . . . . . . . 83 . . . . . . . . . . . . . . 86 . . . . . . . . . . . . . . . . . . . 88 . . . . . . . . . . . . . . . . . . . 89 Installing the Fibre Channel Utility for Mac OS X . . . . . . . . . . . . . 89 Configuring Two or More Apple HBA Ports . . . . . . . . . . . . . 90 . . . . . . . . . . 90 Installing the Apple HBA . . Using point-to-point Fabric Setting for Apple HBAs Preinstallation Steps for Mac OS X . . . . Adding a Private Network for Mac OS X Nodes 007–4507–015 . . . . . . . . . . . . . . 90 . . . . . . . . . . . . . 91 xiii Contents Verifying the Private and Public Networks for Mac OS X Disabling Power Save Mode for Mac OS X . . . . . . . . . . 92 . . . . . . . . . . . . . . . 92 . . . . . . . . . . . . . . . . 93 . . . . . . . . . . . . . . . . 94 . . . . . . . . . . . . . . . . 96 . . . . . . . . . . . . . . . . 96 Upgrading the CXFS Software for Mac OS X . . . . . . . . . . . . . . 97 Modifying the CXFS Software for Mac OS X . . . . . . . . . . . . . . 97 Removing the CXFS Software for Mac OS X . . . . . . . . . . . . . . 97 Recognizing Storage Changes for Mac OS X . . . . . . . . . . . . . . 97 Client Software Installation for Mac OS X I/O Fencing for Mac OS X . . . . Start/Stop cxfs_client for Mac OS X Maintenance for Mac OS X GRIO on Mac OS X . . . . XVM Failover V2 on Mac OS X . . . . . . . . . . . . . . . . . . . . . . . 98 . . . . . . . . . . . . . . . . . . . 98 . . . . . . . . . . . 98 . . . . . . . . . . . 99 . . . . . . . . . . 100 Mapping XVM Volumes to Storage Targets on Mac OS X Troubleshooting for Mac OS X . . . . . . . . The cxfs_client Daemon is Not Started on Mac OS X XVM Volume Name is Too Long on Mac OS X Large Log Files on Mac OS X Reporting Mac OS X Problems . . . . . . . . . . . . . 100 . . . . . . . . . . . . . . . . . . . 100 . . . . . . . . . . . . . . . . . . . 100 . . . . . . 101 6. SGI ProPack Client-Only Platform CXFS on SGI ProPack Client-Only Nodes . . . . . . . . Requirements for SGI ProPack Client-Only Nodes . . . . . . . . . . . . 101 . . . . . . . . . . . . 102 . . . . . . . . . . . 103 . . . . . . . . . . . 103 . . . . . . . . . . 104 . . . . . . . 104 . . . . . . . 104 CXFS Commands on SGI ProPack Client-Only Nodes Log Files on SGI ProPack Client-Only Nodes . . . . . . . CXFS Mount Scripts on SGI ProPack Client-Only Nodes Limitations and Considerations for SGI ProPack Client-Only Nodes Limitations and Considerations for Any SGI ProPack Node xiv . . 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Limitations and Considerations for SGI ProPack Client-Only Nodes Client Software Installation for SGI ProPack Client-Only Nodes SGI ProPack Client-Only Installation Overview Installing the Performance Co-Pilot Agent . . . . . . . . 105 . . . . . . . . . 106 . . . . . . . . . . . . . 106 . . . . . . . . . . . . . 108 . . . . . . . . . . . . 109 . . . . . . . . . . . . 109 . . . . . . . . . 111 Verifying the SGI ProPack Client-Only Installation I/O Fencing for SGI ProPack Client-Only Nodes . . Start/Stop cxfs_client for SGI ProPack Client-Only Nodes Maintenance for SGI ProPack Client-Only Nodes . . . . . . . . . . . . . 111 Modifying the CXFS Software for SGI ProPack . . . . . . . . . . . . . 112 Recognizing Storage Changes for SGI ProPack . . . . . . . . . . . . . 112 . . . . . . . . . . . . . 114 . . . . . . . . . . . . 115 . . . . . . . . . . 115 . . . . . . . . . . 115 . . . . . . 119 GRIO on SGI ProPack Client-Only Nodes . . . XVM Failover V2 on SGI ProPack Client-Only Nodes Mapping XVM Volumes to Storage Targets on SGI ProPack Reporting SGI ProPack Client-Only Nodes Problems 7. Solaris Platform CXFS on Solaris . . . . . . . . Requirements for Solaris . . . . . . . . . . . . . . . . . . . 119 . . . . . . . . . . . . . . . . . . . . 120 . . . . . . . . . . . . . . . . . . . 121 . . . . . . . . . . . . . . . . . . . 122 . . . . . . . . . . . . . . . . . . 122 . . . . . . . . . . . . . . . 122 . . . . . . . . . . . . . . . . 123 . . . . . . . . . . . . . . . . 124 . Access Control Lists and Solaris . . maxphys System Tunable for Solaris . Installing the LSI Logic HBA . . . . . . . . . . . . . . . . . . . 125 . . . . . . . . . . . . . . . . . . . 125 . . . . . . . . . . . . . . . . . . 126 . . . . . . . . . . . . . . . . . . 128 Verifying the HBA Installation 007–4507–015 . . . . . Limitations and Considerations on Solaris Preinstallation Steps for Solaris . . . . CXFS Mount Scripts on Solaris HBA Installation for Solaris . . CXFS Commands on Solaris Log Files on Solaris . . . . . . xv Contents Adding a Private Network for Solaris Nodes . . . Verifying the Private and Public Networks for Solaris Client Software Installation for Solaris . . . . . . . . . . . 128 . . . . . . . . . . . 133 . . . . . . . . . . . . . . . . . 134 . . . . . . . . . . . . . . . . . . 134 . . . . . . . . . . . . . . . . . . 135 . . . . . . . . . . . . . . . . . . 136 . . . . . . . . . . . . . . . . . 138 . . . . . . . . . . . . . . . . . 138 Upgrading the CXFS Software for Solaris . . . . . . . . . . . . . . . 139 Modifying the CXFS Software for Solaris . . . . . . . . . . . . . . . 139 Recognizing Storage Changes for Solaris . . . . . . . . . . . . . . . 140 Solaris Installation Overview . Verifying the Solaris Installation I/O Fencing for Solaris . . . Start/Stop cxfs_client for Solaris Maintenance for Solaris GRIO on Solaris . . . . . XVM Failover V2 on Solaris . . . . . . . . . . . . . . . . . . . . . . . 140 . . . . . . . . . . . . . . . . . . . . 140 . . . . . . . . . . . . 141 . . . . . . . . . . . . 142 . . . . . . . . . . . 143 Mapping XVM Volumes to Storage Targets on Solaris Troubleshooting for Solaris . . . . . . . . The cxfs_client Daemon is Not Started on Solaris Filesystems Do Not Mount on Solaris . . . . . . . . . . . . . . . . 143 New Storage is Not Recognized on Solaris . . . . . . . . . . . . . . . 144 Large Log Files on Solaris . . . . . . . . . . . . . . . 144 . . . . . . . . . . . . . 144 . . . . . . . . . . . . . 145 . . . . . . 147 . . . . . Changing the CXFS Heartbeat Value on Solaris Reporting Solaris Problems . 8. Windows Platforms CXFS on Windows . . . . . . . . Requirements for Windows CXFS Commands on Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 . . . . . . . . . . . . . . . . . . . 149 . . . . . . . . . . . . . . . . . . 150 . . . . . . . . . . . . . . . 151 . . . . . . . . . . 155 Log Files and Cluster Status for Windows Functional Limitations and Considerations for Windows xvi . . . . 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Use of TPSSM . . . . . . . . . UNIX Perspective of CXFS for Windows . . . . . . . . . . . . . . 155 . . . . . . . . . . . . . . 155 . . . . . . . . . . . . . 156 . . . . . . . . . . . . . 157 . . . . . . . . . . . 157 Windows Perspective of CXFS for Windows Forced Unmount on Windows . . . . . Define LUN 0 on All Storage Devices for Windows Memory-Mapping Large Files for Windows CXFS Mount Scripts for Windows . . . Norton Ghost Prevents Mounting Filesystems . . . . . . . . . . . . . 158 . . . . . . . . . . . . . 158 . . . . . . . . . . . . . 158 Mapping Network and CXFS Drives . . . . . . . . . . . . . . . . 158 Windows Filesystem Limitations . . . . . . . . . . . . . . . . . 158 . . . . . . . . . . . . . . . . . 159 . . . . . . . . . . . . . . . 159 XFS Filesystem Limitations . . Performance Considerations for Windows Access Controls for Windows . . . . . . . . . . . . . . . . . . . 160 . . . . . . . . . . . . . . . . . 161 . . . . . . . . . . . 162 . . . . . . . . . . 164 Viewing and Changing File Attributes with Windows Explorer . . . . . . . . 164 . . . . . . . 165 . . . . . 168 User Identification for Windows User Identification Mapping Methods for Windows Enforcing Access to Files and Directories for Windows Viewing and Changing File Permissions with Windows Explorer Viewing and Changing File Access Control Lists (ACLs) for Windows Effective Access for Windows . . . . Restrictions with file ACLs for Windows . . . . . . . . . . . . . . 169 . . . . . . . . . . . . . . 169 . . . . . . . . . . . . . 170 Inheritance and Default ACLs for Windows System Tunables for Windows . . . . . . . . . . . . . . . . . . 172 . . . . . . . . . . . . . . . . . . 172 . . . . . . . . . . . . . . . . . . 173 . . . . . . . . . . . . . . . . 173 Memory-Mapping Coherency for Windows . . . . . . . . . . . . . . 174 DNLC Size for Windows . . . . . . . . . . . . . . 174 Registry Modification . . Default Umask for Windows Maximum DMA Size for Windows 007–4507–015 . . . . . xvii Contents Mandatory Locks for Windows . . . . . . . . . . . . . . . . . 175 User Identification Map Updates for Windows . . . . . . . . . . . . . 176 I/O Size Issues Within the QLogic HBA . . . . . . . . . . . . . 177 . . . . . . . . . 177 . . Command Tag Queueing (CTQ) Used by the QLogic HBA Memory-Mapped Files Flush Time for Windows HBA Installation for Windows . . . . . . . . . . . . . . . . . . . 178 . . . . . . . . . . . . 179 . . . . . . . . . . . 180 . . . . . . . . . 180 Confirming the QLogic HBA Installation for Windows Configuring Multiple HBAs for Load Balancing on Windows Configuring HBA Failover for Windows 2003 . . . . . . . . . . . . . . 182 . . . . . . . . . . . . . . . 183 . . . . . . . . . . . . . . . 183 . . . . . . . . . . . 183 . . . . . . . . . . 185 Verifying the Private and Public Networks for Windows . . . . . . . . . . 185 Configuring the Windows XP SP2 Firewall for Windows . . . . . . . . . . 186 Preinstallation Steps for Windows . . . Adding a Private Network for Windows Procedure to Add a Private Network for Windows Ensuring Proper Hostname Configuration for Windows Client Software Installation for Windows Postinstallation Steps for Windows . . . . . . . . . . . . . . . . . . 187 . . . . . . . . . . . . . . . . 194 . . . . . . 195 Checking Permissions on the Password and Group Files for Windows Performing User Configuration for Windows . . . . . . . . . . . . . . 195 . . . . . . . . . . . . . . 196 . . . . . . . . . . . . . . 197 . . . . . . . . . . . . . . . 198 Start/Stop the CXFS Client Service for Windows . . . . . . . . . . . . . . 200 Maintenance for Windows . . . . . . . . . . . . . . 200 Modifying the CXFS Software for Windows . . . . . . . . . . . . . . 201 Upgrading the CXFS Software for Windows . . . . . . . . . . . . . . 202 Removing the CXFS Software for Windows . . . . . . . . . . . . . . 203 I/O Fencing for Windows . . . . . . . Determining the WWPN for a QLogic Switch Determining WWPN for a Brocade Switch xviii . . . . . . 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Downgrading the CXFS Software for Windows Recognizing Storage Changes for Windows GRIO on Windows . . . . . . . . . . . . . . . . . 204 . . . . . . . . . . . . . . 204 . . . . . . . . . . . . . . . . . . . 204 . . . . . . . . . . . . . . . . . . . 205 . . . . . . . . . . . 208 . . . . . . . . . . . 210 Verifying that the CXFS Software is Running Correctly for Windows . . . . . . . 211 Unable to Mount Filesystems on Windows XVM Failover V2 on Windows Mapping XVM Volumes to Storage Targets on Windows Troubleshooting for Windows . . . . . . . . . . . . . 211 Access-Denied Error when Accessing Filesystem on Windows . . . . . . . . . 213 Application Works with NTFS but not CXFS for Windows . . . . . . . . . 213 Delayed-Write Error Dialog is Generated by the Windows Kernel . . . . . . . . 214 CXFS Client Service Does Not Start on Windows . . . . . . . . . . . . . . . . HBA Problems . . . . . . . . . . . . . . . . . . 215 . . . . . . . . . . . . . 215 . . 215 CXFS Client Service Cannot Map Users other than Administrator for Windows Filesystems Are Not Displayed on Windows . . . . . . . . . . . . . . 216 Large Log Files on Windows . . . . . . . . . . . . . . . . . . . 217 Windows Failure on Restart . . . . . . . . . . . . . . . . . . . 217 . . . . . . . . . . . . . . . . 218 . . . . . . . . . . 218 Memory Configuration for Windows Application Cannot Create File Under CXFS Drive Letter Installation File Not Found Errors Reporting Windows Problems . . . . . . . . . . . . . . . . 218 . . . . . . . . . . . . . . . . . . . 218 . . . . . . . . . . . . . . . . . . . 219 Save Crash Dumps for Windows . . . . . . . . . . . . . . . . . . 219 . . . . . . . . . . . 220 . . . . . . 221 Retain Windows Information Generating a Crash Dump on a Hung Windows Node 9. Cluster Configuration Defining the Client-Only Nodes . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 Adding the Client-Only Nodes to the Cluster (GUI) . . . . . . . . . . . . . 223 007–4507–015 . . . . . xix Contents Defining the Switch for I/O Fencing . . . . . . Starting CXFS Services on the Client-Only Nodes (GUI) Verifying LUN Masking . . . . . . . . . 224 . . . . . . . . . . . 225 . . . . . . . . . . . . 225 Mounting Filesystems on the Client-Only Nodes . . . . . . . . . . . . . . 226 Unmounting Filesystems . . . . . . . . . . . . . . . . . . 226 . . . . . . . . . . . . . . . . . 227 . . . . . . . . . . . . . . . . . . 227 . . . . . . . . . . . . . . . . . . 227 . . . . . . . . . . . . . 228 Forced Unmount of CXFS Filesystems Restarting the Windows Node . Verifying the Cluster Configuration . . . . . . . . . . . . . . Verifying Connectivity in a Multicast Environment Verifying the Cluster Status . . . . Verifying the I/O Fencing Configuration Verifying Access to XVM Volumes . 10. General Troubleshooting Identifying Problems . . . . . . . . . . . . . . . . . . . . 228 . . . . . . . . . . . . . . . . 232 . . . . . . . . . . . . . . . . 233 . . . . . . 237 . . . . . . . . . . . . . . . . . . . . . . . . . . 237 . . . . . . . . . . . . . 238 . . . . . . . . . . . . . 238 Is the Client-Only Node Mounting All Filesystems? . . . . . . . . . . . . 238 Can the Client-Only Node Access All Filesystems? . . . . . . . . . . . . 239 Is the Client-Only Node Configured Correctly? Is the Client-Only Node in Membership? . . Are There Error Messages? . . . . . . . . . . . . . . . . . . . 239 What Is the Network Status? . . . . . . . . . . . . . . . . . . . 239 . . . . . . . . . . . . . . 240 What is the Status of XVM Mirror Licenses? Typical Problems and Solutions . . . . . . . . . . . . . . . . . . . 240 cdb Error in the cxfs_client Log . . . . . . . . . . . . . . . . . 241 Unable to Achieve Membership . . . . . . . . . . . . . . . . . . 241 Filesystem Appears to Be Hung . . . . . . . . . . . . . . . . . . 242 . . . . . . . . . . . . . . 244 Determining If a Client-Only Node Is Fenced xx . . . . 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage No HBA WWPNs are Detected . . Membership Is Prevented by Firewalls Reporting Problems to SGI . . . . . . . . . . . . . . . . . . . . 245 . . . . . . . . . . . . . . . . 246 . . . . . . . . . . . . . . . . 246 . . . . . . 247 . . . . . . . 253 Appendix A. Operating System Path Differences . . . . Appendix B. Filesystem and Logical Unit Specifications Appendix C. Mount Options Support Appendix D. Error Messages . . . . . . . . . . . . . . 255 . . . . . . . . . . . . . . . . . 263 Could Not Start CXFS Client Error Messages CMS Error Messages . . . . . . . . . . . . . . . 263 . . . . . . . . . . . . . . . . . . . . . . 263 . . . . . . . . . . . . . . . . . . . . . . 264 Network Connectivity Messages . . . . . . . . . . . . . . . . . . . 264 Device Busy Message Mount Messages Windows Messages . . . . . . . . . . . . . . . . . . . . . . . . 265 . . . . . . . . . . . . . . . . . . . . . . 265 . . . . . . 267 Appendix E. cmgr Examples . . . . Example of Defining a Node Using cmgr . . . . . . . . . . . . . . . . . . . . . . . 267 Adding the Client-Only Nodes to the Cluster Using cmgr . . . . . . . . . . . 268 Defining the Switch for I/O Fencing Using cmgr . . . . . . . . . . . 268 Starting CXFS Services on the Client-Only Nodes Using cmgr . . . . . . . . . 270 Mounting Filesystems on New Client-Only Nodes Using cmgr . . . . . . . . . 270 . . . . . . . . . 271 . . . . 273 . Forced Unmount of CXFS Filesystems Using cmgr . . . . . Appendix F. Summary of New Features from Previous Releases CXFS MultiOS 2.0 . . . . . . . . . . . . . . . . . . . . . . . 273 CXFS MultiOS 2.1 . . . . . . . . . . . . . . . . . . . . . . . 273 007–4507–015 xxi Contents CXFS MultiOS 2.1.1 . . . . . . . . . . . . . . . . . . . . . . . 273 CXFS MultiOS 2.2 . . . . . . . . . . . . . . . . . . . . . . . 274 CXFS MultiOS 2.3 . . . . . . . . . . . . . . . . . . . . . . . 274 CXFS MultiOS 2.4 . . . . . . . . . . . . . . . . . . . . . . . 274 CXFS MultiOS 2.5 . . . . . . . . . . . . . . . . . . . . . . . 275 CXFS MultiOS 3.0 . . . . . . . . . . . . . . . . . . . . . . . 276 CXFS MultiOS 3.1 . . . . . . . . . . . . . . . . . . . . . . . 276 CXFS MultiOS 3.2 . . . . . . . . . . . . . . . . . . . . . . . 276 CXFS MultiOS 3.3 . . . . . . . . . . . . . . . . . . . . . . . 277 CXFS MultiOS 3.4 . . . . . . . . . . . . . . . . . . . . . . . 278 CXFS 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . 278 CXFS 4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . 280 Glossary Index xxii . . . . . . . . . . . . . . . . . . . . . . . . . 283 . . . . . . . . . . . . . . . . . . . . . . . . . 297 007–4507–015 Figures Figure 8-1 CXFS Info Window — Nodes Tab Display Figure 8-2 CXFS Info Window — Filesystems Tab Figure 8-3 CXFS Info Window — CXFS Client Log Tab Figure 8-4 Private Properties: Selecting only TCP/IP Figure 8-5 Choose Destination Location . . . Figure 8-6 Enter CXFS Details . . . Figure 8-7 Active Directory Details . . Figure 8-8 Generic LDAP Details . . Figure 8-9 Review the Settings . Figure 8-10 Start CXFS Driver Figure 8-11 Restart the System Figure 8-12 Modify CXFS for Windows Figure 8-13 Upgrading the Windows Software Figure 8-14 CXFS Info Display for GRIO for Windows Figure 8-15 QLogic SANsurfer (Copyright QLogic® Corporation, all rights reserved) 007–4507–015 . . . . . . . . . . . . . 152 . . . . . . . . . . . 153 . . . . . . . . . . . 154 . . . . . . . . . . . . 184 . . . . . . . . . . . . . 188 . . . . . . . . . . . . . . 189 . . . . . . . . . . . . . . . 190 . . . . . . . . . . . . . . . . 191 . . . . . . . . . . . . . . . . . 192 . . . . . . . . . . . . . . . . . . 193 . . . . . . . . . . . . . . . . . . 194 . . . . . . . . . . . . . . . . 201 . . . . . . . . . . . . . 203 . . . . . . . . . . . 205 . . 209 . . xxiii Tables Table 4-1 RHEL Processor and Package Extension Examples Table 4-2 SLES Processor and Package Extension Examples Table 5-1 Mac OS X Permissions Compared with POSIX Access Permissions Table 8-1 Permission Flags that May Be Edited Table A-1 AIX Paths Table A-2 Linux or SGI ProPack Paths Table A-3 Mac OS X Paths Table A-4 Solaris Paths Table A-5 Windows Paths . . . . . . . . . . . . . . . . 60 . . . . . . . . . 60 . . . . 81 . . . . . . . . . . . . . 167 . . . . . . . . . . . . . . . . 247 . . . . . . . . . . . . . . . . 248 . . . . . . . . . . . . . . . . . . . . 249 . . . . . . . . . . . . . . . . . . . . 250 . . . . . . . . . . . . . . . . . . . . 251 Table B-1 Filesystem and Logical Unit Specifications . . . . . . . . . . . . 254 Table C-1 Mount Options Support for Client-Only Platforms in an IRIX Cluster . . . 256 Table C-2 Mount Options Support for Client-Only Platforms in an SGI ProPack Cluster . 259 007–4507–015 . xxv About This Guide This publication documents the CXFS MultiOS Clients 4.2 release. This release supports Apple Computer Mac OS X, IBM AIX, Linux on supported third-party platforms, Sun Microsystems Solaris, Microsoft Windows 2003, and Microsoft Windows XP nodes. For more details, see the platform-specific release notes. Prerequisites This guide assumes the following: • The IRIX or SGI ProPack for Linux CXFS cluster is installed and operational. • The CXFS client-only nodes have the appropriate platform-specific operating system software installed. • The reader is familiar with the information presented in the CXFS Administration Guide for SGI InfiniteStorage and the platform’s operating system and installation documentation. Related Publications The following documents contain additional information (if you are viewing this document online, you can click on TPL Link below to link to the book on the SGI TechPubs library): • CXFS documentation: – Platform-specific release notes – CXFS Administration Guide for SGI InfiniteStorage (TPL link) • QLogic HBA card and driver documentation. See the QLogic website at: http://www.qlogic.com • AIX documentation on the IBM website at: http://www.ibm.com 007–4507–015 xxvii About This Guide • Linux third-party platform documentation: – Red Hat: • Red Hat Enterprise Linux Installation Guide for x86, Itanium, AMD64, and Intel Extended Memory 64 Technology (Intel EM64T) • Red Hat Enterprise Linux System Administration Guide • Red Hat SELinux Guide http://www.redhat.com/docs/manuals/enterprise/RHEL-4Manual/selinux-guide/ See: http://www.redhat.com/docs/manuals/enterprise/ – SLES 10: • SLES 10 Start-Up Guide • SLES 10 Installation and Administration Guide See: http://www.novell.com/documentation/sles10/index.html • Mac OS X software documentation: – Welcome to Mac OS X – Mac OS X Server Administrator’s Guide – Understanding and Using NetInfo See the Apple website at: http://www.apple.com • Solaris documentation: – Solaris 10 Installation Guide – Solaris 10 System Administration Collection See the Sun Microsystems website at: http://www.sun.com xxviii 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • Sun Microsystems owner’s guide and product notes for the Sun hardware platform • Windows software documentation: see the Microsoft website at: http://www.microsoft.com • Hardware documentation for the Intel platform The following man pages are provided on CXFS client-only nodes: Client-Only Man Page IRIX Subsystem SGI ProPack Subsystem cxfs_client(1M) cxfs_client.man.man cxfs_client cxfs_info(1M) cxfs_client.man.man cxfs_client cxfs-config(1M) cxfs_util.man.man cxfs_util cxfscp(1) cxfs_util.man.man cxfs_util cxfsdump(1M) cxfs_util.man.man cxfs_util Obtaining Publications You can obtain SGI documentation as follows: • See the SGI Technical Publications Library at http://docs.sgi.com. Various formats are available. This library contains the most recent and most comprehensive set of online books, release notes, man pages, and other information. • If it is installed on your IRIX SGI system, you can use InfoSearch, an online tool that provides a more limited set of online books, release notes, and man pages. On an IRIX system, enter infosearch at a command line or select Help > InfoSearch from the Toolchest. • You can view the release notes in the /cdrom/docs directory. • On all but Windows systems, you can view man pages by typing man title at a command line. 007–4507–015 xxix About This Guide Conventions This guide uses the following terminology abbreviations: • Solaris to Solaris 9 and Solaris 10 • Windows to refer to Microsoft Windows 2000, Microsoft Windows 2003, and Microsoft Windows XP • Linux used alone refers to the Linux operating system running on third-party hardware The following conventions are used throughout this document: Convention Meaning command This fixed-space font denotes literal items such as commands, files, routines, path names, signals, messages, and programming language structures. variable Italic typeface denotes variable entries and words or concepts being defined. user input This bold, fixed-space font denotes literal items that the user enters in interactive sessions. (Output is shown in nonbold, fixed-space font.) GUI This font denotes the names of graphical user interface (GUI) elements such as windows, screens, dialog boxes, menus, toolbars, icons, buttons, boxes, fields, and lists. [] Brackets enclose optional portions of a command or directive line. ... Ellipses indicate that a preceding element can be repeated. Reader Comments If you have comments about the technical accuracy, content, or organization of this publication, contact SGI. Be sure to include the title and document number of the publication with your comments. (Online, the document number is located in the front matter of the publication. In printed publications, the document number is located at the bottom of each page.) xxx 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage You can contact SGI in any of the following ways: • Send e-mail to the following address: techpubs@sgi.com • Contact your customer service representative and ask that an incident be filed in the SGI incident tracking system. • Send mail to the following address: SGI Technical Publications 1140 East Arques Avenue Sunnyvale, CA 94085–4602 SGI values your comments and will respond to them promptly. 007–4507–015 xxxi Chapter 1 Introduction This guide provides an overview of the installation and configuration procedures for the following CXFS client-only nodes running SGI CXFS clustered filesystems: • AIX • Mac OS X • Red Hat Enterprise Linux • SGI ProPack 5 running SUSE Linux Enterprise Server 10 (SLES 10) • SUSE Linux Enterprise Server 10 (SLES 10) • Sun Microsystems Solaris • Microsoft Windows 2000, Microsoft Windows Server 2003, and Microsoft Windows XP A CXFS client-only node has a minimal implementation of CXFS services that run a single daemon, the CXFS client daemon (cxfs_client). A cluster running multiple operating systems is known as a multiOS cluster. It will contain potential CXFS metadata servers and client-only nodes. Nodes running SGI ProPack for Linux or running IRIX can be either CXFS metadata server-capable nodes or client-only nodes. (Metadata is information that describes a file, such as the file’s name, size, location, and permissions.) For more information about these nodes, see the CXFS Administration Guide for SGI InfiniteStorage. ! Caution: CXFS is a complex product. To ensure that CXFS is installed and configured in an optimal manner, it is mandatory that you purchase SGI installation services developed for CXFS. Many of the procedures mentioned in this guide will be performed by SGI personnel or other qualified service personnel. Details for these procedures are provided in other documents. Contact your local SGI sales representative for details. For general information about CXFS terminology, concepts, and configuration, see the CXFS Administration Guide for SGI InfiniteStorage. 007–4507–015 1 1: Introduction This chapter discusses the following: • "When to Use CXFS" on page 2 • "CXFS on Client-Only Nodes" on page 3 • "License Keys" on page 9 • "Guaranteed-Rate I/O (GRIO) and CXFS" on page 10 • "XVM Failover and CXFS" on page 11 • "Monitoring CXFS" on page 12 Also see Chapter 2, "Best Practices for Client-Only Nodes" on page 13. When to Use CXFS You should use CXFS when you have multiple hosts running applications that require high-bandwidth access to common filesystems. CXFS performs best under the following conditions: • Data I/O operations are greater than 16 KB. • All processes that perform read/write operations for a given file reside on the same host. • Multiple processes on multiple hosts read the same file. • Direct-access I/O is used for read/write operations for multiple processes on multiple hosts. • Large files and file accesses are being used. Applications that perform well on a client typically do the following: • Issue large I/O requests, rather than several smaller requests • Use asynchronous or multithreaded I/O to have several I/O requests in flight at the same time • Minimize the number of metadata operations they perform For most filesystem loads, the preceding scenarios represent the bulk of the file accesses. Thus, CXFS delivers fast local-file performance. CXFS is also useful when 2 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage the amount of data I/O is larger than the amount of metadata I/O. CXFS is faster than NFS because the data does not go through the network. CXFS on Client-Only Nodes This section contains the following: • "Client-Only Installation and Configuration Overview" on page 3 • "CXFS Processes" on page 4 • "Cluster Administration" on page 4 • "User Administration for CXFS" on page 5 • "User and Group Quotas " on page 5 • "CXFS Mount Scripts" on page 6 • "Requirements" on page 7 • "Real-Time Subvolumes" on page 9 Client-Only Installation and Configuration Overview Following is the order of installation and configuration steps for a CXFS client-only node. See the specific operating system (OS) chapter for details: 1. Read the CXFS release notes to learn about any late-breaking changes in the installation procedure. 2. Install the OS software according to the directions in the OS documentation (if not already done). 3. Install and verify the RAID. See the CXFS Administration Guide for SGI InfiniteStorage and the release notes. 4. Install and verify the switch. See the CXFS Administration Guide for SGI InfiniteStorage and the release notes. 5. Obtain the CXFS server-side license key. For more information about licensing, see "License Keys" on page 9 and CXFS Administration Guide for SGI InfiniteStorage. 007–4507–015 3 1: Introduction If you want to access an XVM cluster mirror volume from client-only nodes in the cluster, you must have a valid XVM cluster mirror license installed on the server-capable nodes. No additional license key is needed on the client-only nodes. The client-only node will automatically acquire a mirror license key when the CXFS client service is started on the node. 6. Install and verify the host bus adapter (HBA) and driver. 7. Prepare the node, including adding a private network. See "Preinstallation Steps for Windows" on page 183. 8. Install the CXFS software. 9. Perform any required post-installation configuration steps. 10. Configure the cluster to define the new client-only node in the pool, add it to the cluster, start CXFS services, and mount filesystems. See Chapter 9, "Cluster Configuration" on page 221. 11. Start CXFS services on the client-only node to see the mounted filesystems. If you run into problems, see the OS-specific troubleshooting section and Chapter 10, "General Troubleshooting" on page 237. CXFS Processes When CXFS is started on a client-only node, a user-space daemon/service is started that provides the required processes. This is a subset of the processes needed on a CXFS administration node. Cluster Administration There must be at least one server-capable administration node in the cluster that is responsible for updating that filesystem’s metadata. This node is referred to as the CXFS metadata server. (Client-only nodes cannot be metadata servers.) Metadata servers store information in the CXFS cluster database. The CXFS cluster database is not stored on client-only nodes; only administration nodes contain the cluster database. An administration node is required to perform administrative tasks, using the cxfs_admin command or the CXFS graphical user interface (GUI). For more 4 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage information about using these tools, see the CXFS Administration Guide for SGI InfiniteStorage. User Administration for CXFS A CXFS cluster requires a consistent user identification scheme across all hosts in the cluster so that one person using different cluster nodes has the same access to the files on the cluster. The following must be observed to achieve this consistency: • Users must have the same usernames on all nodes in the cluster. An individual user identifier (UID) should not be used by two different people anywhere in the cluster. Ideally, group names and group identifiers (GIDs) should also be consistent on all nodes in the cluster. • Each CXFS client and server node must have access to the same UID and GID information. The simplest way to achieve this is to maintain the same /etc/passwd and /etc/group files on all CXFS nodes, but other mechanisms may be supported. User and Group Quotas Client-only nodes cannot view or edit user and group quotas because CXFS administration must be performed from a CXFS administration node. However, user and group quotas are enforced correctly by the metadata server. To view or edit your quota information, you must log in to a CXFS administration node and make any necessary changes. If you want to provide a viewing command on the client-only node, such as repquota, you can construct a shell script similar to the following: # ! /bin/sh # # Where repquota lives on IRIX repquota=/usr/etc/repquota # The name of an IRIX node in the cluster irixnode=cain rsh $irixnode "$repquota $*" exit 007–4507–015 5 1: Introduction CXFS Mount Scripts CXFS mount scripts are provided for execution prior to and after a CXFS filesystem is mounted or unmounted on the following platforms: • AIX • IRIX • Linux • Solaris • SGI ProPack Note: NFS and Samba exports of CXFS filesystems are only supported from IRIX and SGI ProPack for Linux metadata server nodes. The CXFS mount scripts are not supported on Mac OS X or Windows. The CXFS mount scripts are installed in the following locations: /var/cluster/cxfs_client-scripts/cxfs-pre-mount /var/cluster/cxfs_client-scripts/cxfs-post-mount /var/cluster/cxfs_client-scripts/cxfs-pre-umount /var/cluster/cxfs_client-scripts/cxfs-post-umount The CXFS mount scripts are used by CXFS to ensure that LUN path failover works after fencing. These scripts can be customized to suit a particular environment. For example, an application could be started when a CXFS filesystem is mounted by extending the cxfs-post-mount script. The application could be terminated by changing the cxfs-pre-umount script. For information about using these scripts, see the CXFS Administration Guide for SGI InfiniteStorage. The following script is run by cxfs_client when it reprobes the Fibre Channel controllers upon joining or rejoining membership: /var/cluster/cxfs_client-scripts/cxfs-reprobe For Linux nodes, you must define a group of environment variables in the /etc/cluster/config/cxfs_client.options file in order for cxfs-reprobe to appropriately probe all of the targets on the SCSI bus. For more information, see "Using cxfs-reprobe with Red Hat Linux" on page 67. 6 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage On Linux nodes, the following script enumerates the world wide names (WWNs) on the host that are known to CXFS. The following example is for a Linux node with two single-port HBAs: root@linux ~# /var/cluster/cxfs_client-scripts/cxfs-enumerate-wwns # cxfs-enumerate-wwns # xscsi @ /dev/xscsi/pci01.01.0/bus # xscsi @ /dev/xscsi/pci01.03.01/bus # xscsi @ /dev/xscsi/pci01.03.02/bus # xscsi @ /dev/xscsi/pci02.02.0/bus 210000e08b100df1 # xscsi @ /dev/xscsi/pci02.02.1/bus 210100e08b300df1 Requirements Using a client-only node in a multiOS CXFS cluster requires the following: • A supported storage area network (SAN) hardware configuration. Note: For details about supported hardware, see the Entitlement Sheet that accompanies the base CXFS release materials. Using unsupported hardware constitutes a breach of the CXFS license. CXFS does not support the Silicon Graphics O2 workstation as a CXFS node nor does it support JBOD. • A private 100baseT (or greater) TCP/IP network connected to each node, to be dedicated to the CXFS private heartbeat and control network. This network must not be a virtual local area network (VLAN) and the Ethernet switch must not connect to other networks. All nodes must be configured to use the same subnet. • The appropriate license keys. See "License Keys" on page 9. • A switch, which is required to protect data integrity on nodes without system controllers. See the release notes for supported switches. AIX, Linux, Solaris, Mac OS X, and Windows client-only nodes must use I/O fencing to protect the data integrity of the filesystems in the cluster. Potential metadata servers should use serial reset lines. See "Protect Data Integrity" on page 17. 007–4507–015 7 1: Introduction • There must be at least one server-capable node to act as the metadata server and from which to perform cluster administration tasks. You should install CXFS software on the server-capable nodes first. • Nodes that are not potential metadata servers should be CXFS client-only nodes. A cluster may contain as many as 64 nodes, of which as many as 16 can be administration nodes; the rest must be client-only nodes. See "Make Most Nodes Client-Only Nodes" on page 17. A cluster in which both CXFS and FailSafe 2.1 or later are run (known as coexecution) is supported with a maximum of 64 nodes, as many as 8 of which can run FailSafe. FailSafe runs on IRIX nodes only. • No nodes within the cluster running Trusted IRIX. A multiOS cluster cannot contain Trusted IRIX nodes. • If you are using IRIX server-capable nodes, there are additional installation requirements. For example, if you want to use quotas and access control lists (ACLs) on any cluster node with IRIX metadata servers, the eoe.sw.quotas, nfs.sw.acl_nfs, and eoe.sw.acl subsystems must be installed on the administration nodes listed as potential metadata servers. Likewise, if using guaranteed-rate I/O (GRIO) version 2 in the cluster, ensure that eoe.sw.grio2 and cxfs.sw.grio2_cell are installed on all IRIX nodes in the cluster. For more information, see the following: – IRIX Admin: Disks and Filesystems – IRIX Admin: Backup, Security and Accounting – Guaranteed-Rate I/O Version 2 Guide – Your site’s IRIX system administrator • Set the mtcp_nodelay system tunable parameter to 1 on potential metadata servers in order to provide adequate performance on file deletes. Also see "Requirements for Solaris" on page 120, "Requirements for Windows" on page 149, and Chapter 2, "Best Practices for Client-Only Nodes" on page 13. 8 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Real-Time Subvolumes CXFS supports reading from a real-time subvolume on IRIX, Linux, SGI ProPack, Solaris, and Windows clients. CXFS supports writing to a real-time subvolume on IRIX metadata servers. When creating a filesystem, you must provide subvolume information at mkfs time and you must explicitly provide mount options for all platforms other than IRIX. External Logs CXFS supports external logs on all platforms other than AIX and Mac OS X. To use external logs, you must do the following: • When creating a filesystem, you must provide subvolume information at mkfs time and you must explicitly provide mount options for all platforms other than IRIX. • Set up the volume under XVM with a log subvolume. • Specify the external log device in the mkfs command used to create the XFS filesystem Note: The mkfs command will pick a default log buffer size based on the log subvolume size that may be larger than XFS allows. In that case, you must use the logsize parameter of mkfs to set a smaller value. For more information, see the mkfs man page and XVM Volume Manager Administrator’s Guide. License Keys CXFS requires the following license keys: • CXFS license keys using server-side licensing. Server-side licensing is required on all nodes. 007–4507–015 9 1: Introduction Note: As of CXFS 4.2, all server-capable nodes running 4.2 and client-only nodes running 4.2 require server-side licensing. If all existing client-only nodes are running a prior supported release, they may continue to use client-side license as part of the rolling upgrade policy until they are upgraded to 4.2. All client-only nodes in the cluster must use the same licensing type — if any client-only node in the cluster is upgraded to 4.2 or if a new 4.2 client-only node is added, then all nodes must use server-side licensing. To obtain server-side CXFS and XVM license keys, see information provided in your customer letter and the following web page: http://www.sgi.com/support/licensing The licensing used for SGI ProPack server-capable nodes is based the SGI License Key (LK) software. For IRIX server-capable nodes, the licensing is based on the FLEXlm product from Macrovision Corporation. See the general release notes and the CXFS Administration Guide for SGI InfiniteStorage for more information. • XVM cluster mirroring requires a license key on server-capable nodes in order for cluster nodes to access the cluster mirror. On CXFS client-only nodes, the user feature where applicable is honored after the cxfs_client service is started. XVM cluster mirroring on clients is also honored if it is enabled on the server. All CXFS client nodes need an appropriate mirror license key in order to access local mirrors. • Guaranteed rate I/O version 2 (GRIOv2) requires a license key on the server-capable nodes. • Fibre Channel switch license key. See the release notes. • AIX using XVM failover version 2 also requires a SANshare license for storage partitioning; see "Storage Partitioning and XVM Failover V2 for AIX" on page 33. Guaranteed-Rate I/O (GRIO) and CXFS CXFS supports guaranteed-rate I/O (GRIO) version 2 clients on all platforms, and GRIO servers on IRIX server-capable nodes or SGI ProPack server-capable nodes. However, GRIO is disabled by default on Linux. See "GRIO on Linux" on page 69. 10 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Once installed in a cluster, the superuser can run the following commands from any node in the cluster: • grioadmin, which provides stream and bandwidth management • grioqos, which is the comprehensive stream quality-of-service monitoring tool Run the above tools with the -h (help) option for a full description of all available options. See Appendix A, "Operating System Path Differences" on page 247, for the platform-specific locations of these tools. See the platform-specific chapters in this guide for GRIO limitations and considerations: • "GRIO on AIX" on page 43 • "GRIO on Linux" on page 69 • "GRIO on Mac OS X" on page 98 • "GRIO on SGI ProPack Client-Only Nodes" on page 114 • "GRIO on Solaris" on page 140 • "GRIO on Windows" on page 204 For details about GRIO installation, configuration, and use, see the Guaranteed-Rate I/O Version 2 Guide. XVM Failover and CXFS There are two versions of XVM failover. You must choose the appropriate version for your cluster: • CXFS supports XVM failover version 1 (V1) on clusters with only IRIX nodes • CXFS supports XVM failover v2 (V2) on all platforms XVM failover v2 requires that the RAID be configured in AVT mode. AIX also requires a SANshare license; see "Storage Partitioning and XVM Failover V2 for AIX" on page 33. To configure failover v2, you must create and edit the failover2.conf file. For more information, see the comments in the failover2.conf file on a CXFS 007–4507–015 11 1: Introduction administration node, CXFS Administration Guide for SGI InfiniteStorage, and the XVM Volume Manager Administrator’s Guide. This guide contains platform-specific examples of failover2.conf for the following: • "XVM Failover V2 on AIX" on page 43 • "XVM Failover V2 on Linux" on page 70 • "XVM Failover V2 on Mac OS X" on page 98 • "XVM Failover V2 on SGI ProPack Client-Only Nodes" on page 115 • "XVM Failover V2 on Solaris" on page 140 • "XVM Failover V2 on Windows" on page 205 Monitoring CXFS To monitor CXFS, you can use the cxfs_info command on the client, or view area of the CXFS GUI, the cxfs_admin command, or the clconf_info command on a CXFS administration node. For more information, see "Verifying the Cluster Status" on page 228. 12 007–4507–015 Chapter 2 Best Practices for Client-Only Nodes This chapter discusses best-practices for client-only nodes: • "Configuration Best Practices" on page 13 • "Administration Best Practices" on page 20 Also see the best practices information in the CXFS Administration Guide for SGI InfiniteStorage. Configuration Best Practices This section discusses the following: • "Use CXFS when Appropriate" on page 14 • "Understand Hostname Resolution and Network Configuration Rules" on page 15 • "Fix Network Issues First" on page 16 • "Use a Private Network" on page 16 • "Make Most Nodes Client-Only Nodes" on page 17 • "Use the Correct Mix of Software Releases" on page 17 • "Protect Data Integrity" on page 17 • "Use a Client-Only Tiebreaker" on page 18 • "Enable Forced Unmount" on page 19 • "Configure Firewalls for CXFS Use" on page 19 007–4507–015 13 2: Best Practices for Client-Only Nodes Use CXFS when Appropriate CXFS may not give optimal performance under the following circumstances: • When distributed applications write to shared files that are memory-mapped. • If a client is used, SGI will only support an NFS or Samba export from an IRIX or SGI ProPack for Linux metadata server. • When extending large highly fragmented files. The metadata traffic when growing files with a large number of extents will increase as more extents are added to the file. The following I/O patterns will cause highly fragmented files: – Random writes to sparse files – Files generated with memory-mapped I/O – Writing files in an order other than linearly from beginning to end Do the following to prevent highly fragmented files: – Create files with linear I/O from beginning to end – Use file preallocation to allocate space for a file before writing – Create filesystems with sparse files disabled (unwritten=0) • When access would be as slow with CXFS as with network filesystems, such as with the following: – Small files. – Low bandwidth. – Lots of metadata transfer. Metadata operations can take longer to complete through CXFS than on local filesystems. Metadata transaction examples include the following: • Opening and closing a file • Changing file size (usually extending a file) • Creating, renaming, and deleting files • Searching a directory In addition, multiple processes on multiple hosts that are reading and writing the same file using buffered I/O can be slower when using CXFS than when 14 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage using a local filesystem. This performance difference comes from maintaining coherency among the distributed file buffers; a write into a shared, buffered file will invalidate data (pertaining to that file) that is buffered in other hosts. Also see "Functional Limitations and Considerations for Windows" on page 155. Understand Hostname Resolution and Network Configuration Rules ! Caution: It is critical that you understand these rules before attempting to configure a CXFS cluster. The following hostname resolution rules and recommendations apply to all nodes: • The first node you define must be an server-capable administration node. • Hostnames cannot begin with an underscore (_) or include any whitespace characters. • The private network IP addresses on a running node in the cluster cannot be changed while CXFS services are active. • You must be able to communicate directly between every node in the cluster (including client-only nodes) using IP addresses and logical names, without routing. • A private network must be dedicated to be the heartbeat and control network. No other load is supported on this network. • The heartbeat and control network must be connected to all nodes, and all nodes must be configured to use the same subnet for that network. If you change hostname resolution settings in the /etc/nsswitch.conf file after you have defined the first administration node (which creates the cluster database), you must recreate the cluster database. Use the cxfs-config -check -ping command line on an administration node to confirm network connectivity. For more information, see CXFS Administration Guide for SGI InfiniteStorage. 007–4507–015 15 2: Best Practices for Client-Only Nodes Fix Network Issues First If there are any network issues on the private network, fix them before trying to use CXFS. Ensure that you understand the information in "Understand Hostname Resolution and Network Configuration Rules" on page 15. When you install the CXFS software on the client-only node, you must modify certain system files. The network configuration is critical. Each node in the cluster must be able to communicate with every other node in the cluster by both logical name and IP address without going through any other network routing; proper name resolution is key. SGI recommends static routing. Use a Private Network You must use a private network for CXFS metadata traffic: • A private network is a requirement. • The private network is used for metadata traffic and should not be used for other kinds of traffic. • A stable private network is important for a stable CXFS cluster environment. • Two or more clusters should not share the same private network. A separate private network switch is required for each cluster. • The private network should contain at least a 100-Mbit network switch. A network hub is not supported and should not be used. • All cluster nodes should be on the same physical network segment (that is, no routers between hosts and the switch). • The private network must be configured as the highest priority network for the cluster. The public network may be configured as a lower priority network to be used by CXFS network failover in case of a failure in the private network. • A virtual local area network (VLAN) is not supported for a private network. • Use private (10.x.x.x, 176.16.x.x, or 192.168.x.x) network addresses (RFC 1918). 16 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Make Most Nodes Client-Only Nodes You should define most nodes as client-only nodes and define just the nodes that may be used for CXFS metadata as server-capable administration nodes. Use client administration nodes only if a Failsafe co-execution node cannot be a potential metadata server (Failsafe requires that a node be either a server-capable administration node or a client administration node). The advantage to using client-only nodes is that they do not keep a copy of the cluster database; they contact an administration node to get configuration information. It is easier and faster to keep the database synchronized on a small set of nodes, rather than on every node in the cluster. In addition, if there are issues, there will be a smaller set of nodes on which you must look for problems. Use the Correct Mix of Software Releases All nodes should run the same level of CXFS and the same level of operating system software, according to platform type. To support upgrading without having to take the whole cluster down, nodes can run different CXFS releases during the upgrade process. For details, see the platform-specific release notes and the information about rolling upgrades in CXFS Administration Guide for SGI InfiniteStorage. Protect Data Integrity I/O fencing is required on client-only nodes without reset capability in order to protect the data integrity of the filesystems in the cluster. You should use the admin account when configuring I/O fencing. On a Brocade switch running 4.x.x.x or later firmware, modify the admin account to restrict it to a single telnet session. For details, see the CXFS Administration Guide for SGI InfiniteStorage. You must keep the telnet port on the switch free at all times; do not perform a telnet to the switch and leave the session connected. SGI recommends that you use a switched network of at least 100baseT. You should isolate the power supply for the switch from the power supply for a node and its system controller. You should avoid any possible situation in which a node can continue running while both the switch and the system controller lose power. Avoiding this situation will prevent the possibility a split-brain scenario. 007–4507–015 17 2: Best Practices for Client-Only Nodes You must put switches used for I/O fencing on a network other than the primary CXFS private network so that problems on the CXFS private network can be dealt with by the fencing process and thereby avoid data corruption issues. The network to which the switch is connected must be accessible by all administration nodes in the cluster. See the following: • "I/O Fencing for AIX" on page 39 • "I/O Fencing for Linux" on page 63 • "I/O Fencing for Mac OS X" on page 94 • "I/O Fencing for SGI ProPack Client-Only Nodes" on page 109 • "I/O Fencing for Solaris" on page 136 • "I/O Fencing for Windows" on page 196 Use a Client-Only Tiebreaker SGI recommends that you always define a client-only node as the CXFS tiebreaker. (Server-capable nodes are not recommended as tiebreaker nodes.) This is most important when there are an even number of server-capable administration nodes. The tiebreaker is of benefit in a cluster with an odd number of server-capable nodes when one of the server-capable nodes is removed from the cluster for maintenance (via a stop of CXFS services). The following rules apply: • If exactly two server-capable nodes are configured and there are no client-only nodes, neither server-capable node should be set as the tiebreaker. (If one node was set as the tiebreaker and it failed, the other node would also shut down.) • If exactly two server-capable nodes are configured and there is at least one client-only node, you should specify the client-only node as a tiebreaker. If one of the server-capable nodes is the CXFS tiebreaker in a two server-capable cluster, failure of that node or stopping the CXFS services on that node will result in a cluster-wide forced shutdown. Therefore SGI recommends that you use client-only nodes as tiebreakers so that either server could fail but the cluster would remain operational via the other server. 18 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Setting a client-only node as the tiebreaker avoids the problem of multiple-clusters being formed (also known as split-brain syndrome) while still allowing the cluster to continue if one of the metadata servers fails. • Setting a server-capable node as tiebreaker is recommended only when there are four or more server-capable nodes and no client-only nodes. • If there are an even number of servers and there is no tiebreaker set, the failure action hierarchy should not contain the shutdown option because there is no notification that a shutdown has occurred. SGI recommends that you start CXFS services on the tie-breaker client after the metadata servers are all up and running, and before CXFS services are started on any other clients. Enable Forced Unmount Enable the forced unmount feature for CXFS filesystems, which is turned off by default. Normally, an unmount operation will fail if any process has an open file on the filesystem. However, a forced unmount allows the unmount to proceed regardless of whether the filesystem is still in use. Many sites have found that enabling this feature improves the stability of their CXFS cluster, particularly in situations where the filesystem must be unmounted. For more information, see "Forced Unmount of CXFS Filesystems" on page 227 and the CXFS Administration Guide for SGI InfiniteStorage. Configure Firewalls for CXFS Use Do one of the following: • Configure firewalls to allow CXFS traffic. See CXFS Administration Guide for SGI InfiniteStorage for CXFS port usage. (Preferred.) • Configure firewalls to allow all traffic on the CXFS private interfaces. This assumes that the public interface is not a backup metadata network. • Disable firewalls. For more information, see your firewall documentation. 007–4507–015 19 2: Best Practices for Client-Only Nodes Administration Best Practices This section discusses the following: • "Upgrade the Software Properly" on page 20 • "Understand the Platform-Specific Limitations and Considerations" on page 21 • "Shut Down Client-Only Nodes Properly" on page 21 • "Do Not Run Backups on a Client Node" on page 21 • "Use cron Jobs Properly" on page 21 • "Repair Filesystems with Care" on page 22 • "Disable CXFS Before Maintenance" on page 23 • "Running Power Management Software" on page 23 • "Use Fast Copying for Large CXFS Files" on page 23 Upgrade the Software Properly Do the following when upgrading the software: • Read the release notes when installing and/or upgrading CXFS. These notes contain useful information and caveats needed for a stable install/upgrade. • Do not make any other configuration changes to the cluster (such as adding new nodes or filesystems) until the upgrade of all nodes is complete and the cluster is running normally. See the following: • "Upgrading the CXFS Software for AIX" on page 42 • "Upgrading the CXFS Software for Mac OS X" on page 97 • "Upgrading the CXFS Software for Solaris" on page 139 • "Upgrading the CXFS Software for Windows" on page 202 20 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Understand the Platform-Specific Limitations and Considerations Each platform in a CXFS cluster has different issues. See the following: • "Limitations and Considerations for AIX" on page 28 • "Limitations and Considerations for Linux" on page 52 • "Limitations and Considerations on Mac OS X" on page 78 • "Limitations and Considerations for SGI ProPack Client-Only Nodes" on page 104 • "Limitations and Considerations on Solaris" on page 122 • "Functional Limitations and Considerations for Windows" on page 155 and "Performance Considerations for Windows" on page 159 Shut Down Client-Only Nodes Properly When shutting down, resetting, or restarting a CXFS client-only node, do not stop CXFS services on the node. (Stopping CXFS services is more intrusive on other nodes in the cluster because it updates the cluster database. Stopping CXFS services is appropriate only for a CXFS administration node.) Rather, let the CXFS shutdown scripts on the node stop CXFS when the client-only node is shut down or restarted. Do Not Run Backups on a Client Node SGI recommends that backups are done on the CXFS metadata server. Do not run backups on a client node, because it causes heavy use of non-swappable kernel memory on the metadata server. During a backup, every inode on the filesystem is visited; if done from a client, it imposes a huge load on the metadata server. The metadata server may experience typical out-of-memory symptoms, and in the worst case can even become unresponsive or crash. Use cron Jobs Properly Because CXFS filesystems are considered as local on all nodes in the cluster, the nodes may generate excessive filesystem activity if they try to access the same filesystems simultaneously while running commands such as find, ls, or Linux slocate. You should build databases for rfind and GNU locate only on the metadata server. 007–4507–015 21 2: Best Practices for Client-Only Nodes On IRIX systems, the default root crontab on some platforms has the following find job that should be removed or disabled on all nodes (line breaks added here for readability): 0 5 * * * /sbin/suattr -m -C CAP_MAC_READ, CAP_MAC_WRITE,CAP_DAC_WRITE,CAP_DAC_READ_SEARCH,CAP_DAC_EXECUTE=eip -c "find / -local -type f ’(’ -name core -o -name dead.letter ’)’ -atime +7 -mtime +7 -exec rm -f ’{}’ ’;’" Edit the nodes’ crontab file to only execute this find command on one metadata server of the cluster. On Linux systems, there is often a cron job to execute updatedb, which can be problematic. You should remove this cron job or modify it to exclude CXFS directories. On Linux third-party systems, you can add xfs to the PRUNEFS configuration variable to exclude all CXFS filesystems. (This is not appropriate for SGI ProPack for Linux systems, which may use local XFS filesystems.) Repair Filesystems with Care Do not use any filesystem defragmenter software. You can use the IRIX fsr command or the Linux xfs_fsr command only on a metadata server for the filesystem it acts upon. Always contact SGI technical support before using xfs_repair on CXFS filesystems. Only use xfs_repair on metadata servers and only when you have verified that all other cluster nodes have unmounted the filesystem. When using xfs_repair, make sure it is run only on a cleanly unmounted filesystem. If your filesystem has not been cleanly unmounted, there will be un-committed metadata transactions in the log, which xfs_repair will erase. This usually causes loss of some data and messages from xfs_repair that make the filesystem appear to be corrupted. If you are running xfs_repair right after a system crash or a filesystem shutdown, your filesystem is likely to have a dirty log. To avoid data loss, you MUST mount and unmount the filesystem before running xfs_repair. It does not hurt anything to mount and unmount the filesystem locally, after CXFS has unmounted it, before xfs_repair is run. 22 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Disable CXFS Before Maintenance Disable CXFS before maintenance (perform a forced CXFS shutdown, stop the cxfs_client daemon, and disable cxfs_client from automatically restarting). Running Power Management Software Do not run power management software, which may interfere with the CXFS cluster. Use Fast Copying for Large CXFS Files You can use the cxfscp(1) command to quickly copy large files (64 KB or larger) to and from a CXFS filesystem. It can be significantly faster than cp(1) on CXFS filesystems because it uses multiple threads and large direct I/Os to fully use the bandwidth to the storage hardware. Files smaller than 64 KB do not benefit from large direct I/Os. For these files, cxfscp uses a separate thread using buffered I/O, similar to cp(1). The cxfscp command is available on IRIX, SGI ProPack, Linux, and Windows platforms. However, some options are platform-specific, and other limitations apply. For more information and a complete list of options, see the cxfscp(1) man page. 007–4507–015 23 Chapter 3 AIX Platform CXFS supports a client-only node running the AIX operating system. This chapter contains the following sections: • "CXFS on AIX" on page 25 • "Storage Partitioning and XVM Failover V2 for AIX" on page 33 • "HBA Installation for AIX" on page 33 • "Preinstallation Steps for AIX" on page 33 • "Client Software Installation for AIX" on page 37 • "I/O Fencing for AIX" on page 39 • "Start/Stop cxfs_client Daemon for AIX" on page 41 • "Maintenance for AIX" on page 42 • "GRIO on AIX" on page 43 • "XVM Failover V2 on AIX" on page 43 • "Mapping XVM Volumes to Storage Targets on AIX" on page 43 • "Troubleshooting for AIX" on page 44 • "Reporting AIX Problems" on page 47 CXFS on AIX This section contains the following information about CXFS on AIX: • "Requirements for AIX" on page 26 • "CXFS Commands on AIX" on page 27 • "Log Files on AIX" on page 27 • "CXFS Mount Scripts on AIX" on page 28 • "Limitations and Considerations for AIX" on page 28 007–4507–015 25 3: AIX Platform • "Maximum CXFS I/O Request Size and AIX" on page 30 • "Access Control Lists and AIX " on page 32 Requirements for AIX In addition to the items listed in "Requirements" on page 7, using an AIX node to support CXFS requires the following: • IBM AIX 5L: Version 5.3 Maintenance Level 3 (64-bit mode) APAR number IY71011 or its successor To verify the operating system level, use the following command: oslevel -r • IBM FC5716, FC6228, or FC6239 2-Gbit Fibre Channel host bus adapters (HBAs) • One or more of the following IBM hardware platforms: pSeries pSeries pSeries pSeries pSeries pSeries pSeries pSeries pSeries pSeries pSeries pSeries 570 575 595 610 620 630 640 650 660 670 680 690 For the latest information, see the CXFS AIX release notes. 26 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage CXFS Commands on AIX The following commands are shipped as part of the CXFS for AIX package: /usr/cxfs_cluster/bin/cxfs_client /usr/cxfs_cluster/bin/cxfs_info /usr/cxfs_cluster/bin/grioadmin /usr/cxfs_cluster/bin/grioqos /usr/cxfs_cluster/bin/xvm The cxfs_client and xvm commands are needed to include a client-only node in a CXFS cluster. The cxfs_info command reports the current status of this node in the CXFS cluster. The lslpp output lists all of the software added; see "Installing CXFS Software on AIX" on page 37. For information about the GRIO commands, see "Guaranteed-Rate I/O (GRIO) and CXFS" on page 10 and "GRIO on AIX" on page 43. For more information on these commands, see the man pages. Log Files on AIX The cxfs_client command creates a /var/tmp/cxfs_client log file. To rotate this log file, use the -z option in the following file: /usr/cxfs_cluster/bin/cxfs_client.options See the cxfs_client man page for details. Some daemons related to CXFS output a message in the console log. To see the contents of this log file, use the following command: alog -o -t console The console log is rotated. For information about the log files created on administration nodes, see the CXFS Administration Guide for SGI InfiniteStorage. Also see the AIX /etc/syslog.conf file. 007–4507–015 27 3: AIX Platform CXFS Mount Scripts on AIX AIX supports the CXFS mount scripts. See "CXFS Mount Scripts" on page 6 and the CXFS Administration Guide for SGI InfiniteStorage. Limitations and Considerations for AIX Note the following: • IRIX nodes do not permit nested mount points on CXFS filesystems; that is, you cannot mount an IRIX XFS or CXFS filesystem on top of an existing CXFS filesystem. Although it is possible to mount a JFS or NFS filesystem on top of an AIX CXFS filesystem, this is not recommended. • There is no default access control list (ACL) in AIX. Therefore, the setup and display of the default ACL cannot be completed using the following commands: aclget aclput acledit If an IRIX ACL exists, the ACL becomes effective when the default ACL is set up by IRIX and a file and a directory are made under that directory in AIX. • There is no MASK entry in AIX, but the access permissions in AIX follow those established when an ACL set up by IRIX contains a MASK entry. If the default ACL is set up for a given directory and the MASK entry exists, then that MASK entry is used when a file or a subdirectory is made by AIX. When the MASK entry does not exist, rwx is used. • ACL control of the following, which the AIX JFS filesystem has, cannot be applied to CXFS: – The access to a certain user or the group is rejected (deny) – When a user belongs to the specific group, access is permitted or rejected (specify) If deny or specify is used, an error occurs (EINVAL) because these features are not in IRIX. • Socket files cannot be copied. The following error is returned: AIX:The socket does not allow the requested operation. 28 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • You can use the fuser command to extract process information about the mounted filesystem, but you cannot extract process information about the file or the directory. • When a CXFS mount is performed on a mirror volume created by XVM, the AIX system goes into panic status. The mirror volume cannot be mounted on the AIX CXFS system. • The AIX node does not automatically detect the worldwide port number (WWPN). In order to use I/O fencing, you must list the WWPN in the /etc/fencing.conf file. See "License Keys" on page 9. • If your users want to use a file size/offset maximum greater than 1 GB, you must change their user properties to allow files of unlimited size. To do this, use the smit command. For more information, see the smit man page. • By default, the maximum request size for direct I/O is 512 MB (524288 KB). A direct I/O request larger than 512 MB will revert to buffered I/O. However, you can change the maximum XVM direct memory access (DMA) size to improve direct I/O performance. To do this, use the chdev command to modify the xvm_maxdmasz attribute. The actual maximum limit will always be 4 KB less than any of the supplied or displayed values (for example, the default is actually 512 MB minus 4 KB). Note: The XVM module must be loaded if any attribute changes are to be noticed and applied. To display the current setting, use the following command: lsattr -E -l xvm -a xvm_maxdmasz To change the current setting, use the following command: chdev [-P|-T] -l xvm -a xvm_maxdmasz=NewValue Legal values for NewValue are specified in KB units in the range 256 to 2097152 (that is, 256 KB to 2 GB). By default, using chdev on a running system makes a permanent change for subsequently mounted filesystems. (Running filesystems will not be changed until they are remounted, either manually or after a reboot.) 007–4507–015 29 3: AIX Platform If you use -P, the change is deferred until the next boot and after that it is permanent. If you use -T (temporary), the change is immediate for subsequently mounted filesystems, but lasts only until the next boot. For example, to change the DMA size to 2 GB for subsequently mounted filesystems on the currently running device and in the database, enter the following: aix# chdev -l xvm -a xvm_maxdmasz=2097152 For more information, see the lsattr and chdev man pages. • Due to FC controller limitations, large ( > 256K) direct I/O requests may be problematic. See also Appendix B, "Filesystem and Logical Unit Specifications" on page 253. Maximum CXFS I/O Request Size and AIX By default, the maximum CXFS I/O request size for normal filesystem I/O is 1 MB (1024 KB). However, depending on filesystem size and internal layout, the actual request size can be smaller or larger: • Requests that are smaller than 1 MB are unaffected by the limit and proceed normally • Requests larger than 1 MB are automatically split into multiple smaller requests in order to accommodate the limit The cxfs_maxiosz attribute determines the CXFS maximum I/O size request. To display the current setting, use the lsattr command. For example: aix# lsattr -E -l xvm -a cxfs_maxiosz To change the CXFS maximum I/O request size, use the chdev command to modify the cxfs_maxiosz attribute. For example: aix# chdev [-P|-T] -l xvm -a cxfs_maxiosz=NewValue Note: For attribute changes to be noticed and applied, the XVM module must be loaded. 30 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Legal values for NewValue are specified in KB units in the range 64 through 2048 (that is, 64 KB to 2 MB). By default, using chdev on a running system makes a permanent change for subsequently mounted filesystems. (Running filesystems will not be changed until they are remounted, either manually or after a reboot.) If you use -P, the change is deferred until the next boot and after that it is permanent. If you use -T (temporary), the change is immediate for subsequently mounted filesystems, but lasts only until the next boot. For example, to change the CXFS maximum I/O request size to 512 KB for subsequently mounted filesystems on the currently running device xvm and in the database, enter the following: aix# chdev -l xvm -a cxfs_maxiosz=512 For more information, see the lsattr and chdev man pages. There is a possibility that CXFS I/O limits may conflict with AIX’s internal disk driver limits. In such cases, you will see console error messages from CXFS that specify an illegal request size error. You can use one of the following ways to correct this problem: • You can decrease CXFS maximum I/O size to match the limit imposed by the AIX disk driver using a procedure similar to the above. This AIX limit is per physical disk drive and is described by the AIX attribute max_transfer. You can display this limit with the lsattr command if you know the name of the physical disk that corresponds to your XVM volume. For example, where hdiskXX is the subsystem name that AIX chooses for each physical disk driver it finds at boot time (the XX number will vary depending upon controller configuration and number of drives): aix# lsattr -E -l hdiskXX -a max_transfer max_transfer 0x40000 Maximum TRANSFER Size True The hexadecimal value 0x40000 is 256 KB. From the CXFS error messages on the console, you can find the transfer size that CXFS tried to use; it will likely be hexadecimal 0x80000 (512 KB), which is too large. You can decrease the CXFS maximum I/O size to 256 KB to match AIX’s max_transfer limit. This decrease may slightly decrease overall filesystem performance. 007–4507–015 31 3: AIX Platform • You can increase AIX’s per-physical-disk max_transfer attribute to 512 KB to match the CXFS maximum I/O request size. You must perform the following command for each physical disk that is part of the cluster configuration: aix# chdev -l hdiskXX -a max_transfer=0x80000 You can verify the change by using lsattr command as described above. After modifying AIX’s disk driver limits, you must reboot the machine to allow the changes to take effect. Access Control Lists and AIX All CXFS files have UNIX mode bits (read, write, and execute) and optionally an ACL. For more information, see the AIX chmod, acledit, aclget, and aclput man pages. If you want to use an AIX node to restore a CXFS file with an ACL, you should use the backup and restore commands. If you use the tar, cpio, or pax command, the ACL will not be used because these tools behave "intelligently" by not calling acl subroutines to set an ACL. These tools will only set the file mode. When using the ls command to display access permissions for a file with an ACL, the mode reported for a CXFS file follows IRIX semantics instead of AIX JFS semantics. The IRIX model calls for reporting the ACL MASK for the group permission in the mode. Therefore, if the GROUP entry is r-x and the MASK entry is rw-, the group permission will be reported as rw-. Although it appears that the group has write permission, it does not and an attempt to write to the file will be rejected. You can obtain the real (that is, effective) group permission by using the AIX aclget command. Note: Normally, AIX filesystem ACLs can have up to one memory page (4096 bytes) for a file and a directory. However, CXFS filesystems on AIX nodes in a multiOS cluster must maintain compatibility with the metadata server. The CXFS filesystems on an AIX node are limited to a maximum of 25 ACL entries converted to IRIX ACL type for a file and a directory. 32 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Storage Partitioning and XVM Failover V2 for AIX IBM hosts running the AIX 5L operating system set the QERR mode page bit to 1 for support storage (other than IBM storage), which does not work well with IRIX or Linux metadata servers: IRIX will disable command tag queuing (CTQ) and Linux will leave CTQ enabled but suffer from timeouts. There is an administrative work-around for this problem. Engenio offers an enhanced feature called SANshare for storage partioning. There is an additional licensing cost required to obtain a SANshare license. SANshare allows hosts to be grouped separately and still access the same LUNs, thus allowing the IBM AIX 5L hosts to set the QERR mode page bit to 1 and not affect the other hosts accessing the LUN. For each RAID unit, create one Host Group for all of the AIX 5L systems and the other hosts in the CXFS cluster. Set the Host Type to LINUX for the AIX nodes and to SGIAVT for the other nodes. (The Host Type of AIX has AVT status disabled.) HBA Installation for AIX For information about installing and configuring the host bus adapter (HBA), see the IBM HBA documentation. Preinstallation Steps for AIX This section provides an overview of the steps that you or a qualified IBM service representative will perform on your AIX nodes prior to installing the CXFS software. It contains the following sections: • "Adding a Private Network for AIX" on page 33 • "Verifying the Private and Public Network for AIX" on page 36 Adding a Private Network for AIX The following procedure provides an overview of the steps required to add a private network to the AIX system. A private network is required for use with CXFS. See "Use a Private Network" on page 16. You may skip some steps, depending upon the starting conditions at your site. For details about any of these steps, see the AIX documentation. 007–4507–015 33 3: AIX Platform 1. If your system is already operational and on the network, skip to step 2. If the AIX operating system has not been installed, install it in accordance with the AIX documentation. 2. Edit the /etc/hosts file so that it contains entries for every node in the cluster and their private interfaces. The /etc/hosts file has the following format, where primary_hostname can be the simple hostname or the fully qualified domain name: IP_address primary_hostname aliases You should be consistent when using fully qualified domain names in the /etc/hosts file. If you use fully qualified domain names on a particular node, then all of the nodes in the cluster should use the fully qualified name of that node when defining the IP/hostname information for that node in the /etc/hosts file. The decision to use fully qualified domain names is usually a matter of how the clients (such as NFS) are going to resolve names for their client server programs, how their default resolution is done, and so on. Even if you are using the domain name service (DNS) or the network information service (NIS), you must add every IP address and hostname for the nodes to /etc/hosts on all nodes. For example: 190.0.2.1 190.0.2.3 190.0.3.1 190.0.2.2 190.0.2.4 190.0.3.2 server1.company.com server1 stocks priv-server1 server2-.company.com server2 bonds priv-server2 You should then add all of these IP addresses to /etc/hosts on the other nodes in the cluster. Note: Exclusive use of NIS or DNS for IP address lookup for the nodes will reduce availability in situations where the NIS or DNS service becomes unreliable. For more information, see "Understand Hostname Resolution and Network Configuration Rules" on page 15 and the hosts, named, and nis man pages. 34 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 3. (Optional) Edit the /etc/netsvc.conf file so that local files are accessed before either NIS or DNS. That is, the hosts line in /etc/netsvc.conf must list local first. For example: hosts = local,nis,bind (The order of nis and bind is not significant to CXFS, but local must be first.) 4. Determine the name of the private interface by using the ifconfig command as follows, to list the available networks. For example: # ifconfig -l en0 en1 lo0 However, if the second network interface (en1) does not appear, then the network interface must be set up in accordance with the AIX documentation. You can set up an IP address by using ifconfig after restarting the system. If it is set up properly, the following information is output (line breaks added here for readability): # ifconfig -a en0:flags=4e080863inet 10.208.148.61 netmask 0xffffff00 broadcast 10.208.148.255 en1:flags=7e080863,10 inet 192.168.10.61 netmask 0xffffff00 broadcast 192.168.10.255 lo0:flags=e08084b inet 127.0.0.1 netmask 0xff000000 broadcast 127.255.255.255 5. (Optional) Edit the /.rhosts file if you want to use remote access or if you want to use the connectivity diagnostics with CXFS. Make sure that the mode of the .rhosts file is set to 600 (read and write access for the owner only). Make sure that the /.rhosts file on each AIX node allows all of the nodes in the cluster to have access to each other. The connectivity tests execute a ping command from the local node to all nodes and from all nodes to the local node. To execute ping on a remote node, CXFS uses rsh as user root. For example, suppose you have a cluster with three nodes: irix0, aix1, and aix2. The /.rhosts files could be as follows (where the prompt denotes the node name): irix0# cat /.rhosts aix1 root 007–4507–015 35 3: AIX Platform aix2 root aix1# cat /.rhosts irix0 root aix2 root aix2# cat /.rhosts irix0 root aix1 root Verifying the Private and Public Network for AIX For each private network on each AIX node in the pool, verify access with the AIX ping command. Enter the following, where nodeIPaddress is the IP address of the node: /usr/sbin/ping -c 3 nodeIPaddress For example: aix# /usr/sbin/ping -c 3 192.168.10.61 PING 192.168.10.61: (192.168.10.61): 56 data data bytes 64 bytes from 192.168.10.61 icmp_seq=0 ttl=255 time=0 ms 64 bytes from 192.168.10.61 icmp_seq=1 ttl=255 time=0 ms 64 bytes from 192.168.10.61 icmp_seq=2 ttl=255 time=0 ms ----192.168.10.61 PING Statistics---3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0/0/00 ms You should also execute a ping on the public networks. If that ping fails, follow these steps: 1. Verify that the network interface was configured up. For example: aix# /usr/sbin/ifconfig en0 en0: flgs=4e08086 inet 10.208.148.61 netmask 0xffffff00 broadcast 10.208.148.255 In the first output line above, UP indicates that the interface was configured up. 2. Verify that the cables are correctly seated. Repeat this procedure on each node. 36 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Client Software Installation for AIX The CXFS software initially will be installed and configured by SGI personnel. This section discusses the following: • "Installing CXFS Software on AIX" on page 37 • "Verifying the AIX Installation " on page 39 Installing CXFS Software on AIX Installing CXFS for AIX requires approximately 20 MB of space. To install the required software on an AIX node, SGI personnel will do the following: 1. Read the release notes to learn about any late-breaking changes in the installation procedure. 2. Verify that the node has been upgraded to the supported AIX version according to the AIX documentation. Use the following command to display the currently installed system: oslevel -r For example, the following output indicates AIX version 5, revision 3, maintenance level 03: aix# oslevel -r 5300-03 3. Insert the CXFS MultiOS Client 4.2 CD. 4. Mount the CD-ROM: aix# mount -v cdrfs -o ro /dev/cd0 /mnt/cdrom 5. Install the CXFS software (the example output below is truncated): aix# installp -a -d /mnt/cdrom/aix/SGIcxfs-aix5L all +-----------------------------------------------------------------------------+ Pre-installation Verification... +-----------------------------------------------------------------------------+ Verifying selections...done Verifying requisites...done Results... 007–4507–015 37 3: AIX Platform SUCCESSES --------Filesets listed in this section passed pre-installation verification and will be installed. Selected Filesets ----------------SGIcxfs-aix5L 4.2.0.5 # CXFS CLIENT for AIX << End of Success Section >> FILESET STATISTICS -----------------1 Selected to be installed, of which: 1 Passed pre-installation verification ---1 Total to be installed +-----------------------------------------------------------------------------+ Installing Software... +-----------------------------------------------------------------------------+ installp: APPLYING software for: SGIcxfs-aix5L 4.2.0.5 . . . . . << Copyright notice for SGIcxfs-aix5L >> . . . . . . . ... Finished processing all filesets. (Total time: 4 secs). +-----------------------------------------------------------------------------+ Summaries: +-----------------------------------------------------------------------------+ Installation Summary -------------------Name Level Part Event Result ------------------------------------------------------------------------------SGIcxfs-aix5L 4.2.0.5 USR APPLY SUCCESS SGIcxfs-aix5L 4.2.0.5 ROOT APPLY SUCCESS 38 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 6. To start AIX CXFS services without rebooting, see "Start/Stop cxfs_client Daemon for AIX" on page 41. To start CXFS services automatically, reboot. Verifying the AIX Installation To verify that the CXFS software has been installed properly, use the lslpp command as follows: aix# lslpp -L SGIcxfs-aix5L For example, the following output (showing a state of C, for “committed”) indicates that the CXFS package installed properly: aix# lslpp -L SGIcxfs-aix5L Fileset Level State Type Description (Uninstaller) ---------------------------------------------------------------------------SGIcxfs-aix5L 4.2.0.5 C F CXFS CLIENT for AIX State A -B -C -E -O -? -- codes: Applied. Broken. Committed. EFIX Locked. Obsolete. (partially migrated to newer version) Inconsistent State...Run lppchk -v. Type codes: F -- Installp Fileset P -- Product C -- Component T -- Feature R -- RPM Package I/O Fencing for AIX I/O fencing is required on AIX nodes in order to protect data integrity of the filesystems in the cluster. The /etc/fencing.conf file enumerates the worldwide 007–4507–015 39 3: AIX Platform port name (WWPN) for all of the host bus adapters (HBAs) that will be used to mount a CXFS filesystem. The /etc/fencing.conf file must contain a simple list of WWPNs as 64-bit hexadecimal numbers, one per line. These HBAs will then be available for fencing. If you want to use the /etc/fencing.conf file, you must update it whenever the HBA configuration changes, including the replacement of an HBA. Do the following: 1. Follow the Fibre Channel cable on the back of the AIX host to determine the port to which it is connected in the switch. Ports are numbered beginning with 0. (For example, if there are 8 ports, they will be numbered 0 through 7.) 2. Use the telnet command to connect to the switch and log in as user admin (the password is password by default). 3. Execute the switchshow command to display the switches and their WWPNs. For example: brocade04:admin> switchshow switchName: brocade04 switchType: 2.4 switchState: Online switchRole: Principal switchDomain: 6 switchId: fffc06 switchWwn: 10:00:00:60:69:12:11:9e switchBeacon: OFF port 0: sw Online F-Port 20:00:00:01:73:00:2c:0b port 1: cu Online F-Port 21:00:00:e0:8b:02:36:49 port 2: cu Online F-Port 21:00:00:e0:8b:02:12:49 port 3: sw Online F-Port 20:00:00:01:73:00:2d:3e port 4: cu Online F-Port 21:00:00:e0:8b:02:18:96 port 5: cu Online F-Port 21:00:00:e0:8b:00:90:8e port 6: sw Online F-Port 20:00:00:01:73:00:3b:5f port 7: sw Online F-Port 20:00:00:01:73:00:33:76 port 8: sw Online F-Port 21:00:00:e0:8b:01:d2:57 port 9: sw Online F-Port 21:00:00:e0:8b:01:0c:57 port 10: sw Online F-Port 20:08:00:a0:b8:0c:13:c9 port 11: sw Online F-Port 20:0a:00:a0:b8:0c:04:5a port 12: sw Online F-Port 20:0c:00:a0:b8:0c:24:76 port 13: sw Online L-Port 1 public 40 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage port port 14: 15: sw cu No_Light Online F-Port 21:00:00:e0:8b:00:42:d8 The WWPN is the hexadecimal string to the right of the port number. For example, the WWPN for port 0 is 2000000173002c0b. (You must remove the colons from the WWPN reported in the switchshow output to produce the string to be used in the /etc/fencing.conf file.) 4. Edit or create the /etc/fencing.conf file on the AIX node and add the WWPN for the port determined in step 1. (Comment lines begin with a # character.) For example, if you determined that port 0 is the port connected to the switch, your /etc/fencing.conf file should appear as follows: 2000000173002c0b 5. To configure fencing, see the CXFS Administration Guide for SGI InfiniteStorage. Start/Stop cxfs_client Daemon for AIX The /usr/cxfs_cluster/bin/cxfs_cluster script will be invoked automatically during normal system startup and shutdown procedures. This script starts and stops the processes required to run CXFS. To start up cxfs_client after initial installation completes, enter the following: aix# /usr/cxfs_cluster/bin/cxfs_cluster init To start up cxfs_client manually, enter the following: aix# /usr/cxfs_cluster/bin/cxfs_cluster start To stop cxfs_client manually, enter the following: aix# /usr/cxfs_cluster/bin/cxfs_cluster stop To stop and then start cxfs_client manually, enter the following: aix# /usr/cxfs_cluster/bin/cxfs_cluster restart 007–4507–015 41 3: AIX Platform Maintenance for AIX This section contains the following: • "Upgrading the CXFS Software for AIX" on page 42 • "Modifying the CXFS Software for AIX" on page 42 • "Recognizing Storage Changes for AIX" on page 43 Upgrading the CXFS Software for AIX To upgrade the CXFS software on an AIX system, do the following: 1. Make sure that no applications on the node are accessing files on a CXFS filesystem. 2. Determine the name of the CXFS package that is installed. For example: aix# lslpp -L | grep cxfs SGIcxfs-aix5L 4.2.0.5 C F CXFS CLIENT for AIX 3. Uninstall the old version by using the following command: installp -u packagename For example, given a package name of SGIcxfs-aix5L: aix# installp -u SGIcxfs-aix5L 4. Install the new version. See "Client Software Installation for AIX" on page 37. Modifying the CXFS Software for AIX You can modify the behavior of the CXFS client daemon (cxfs_client) by placing options in the /usr/cxfs_cluster/bin/cxfs_client.options file. The available options are documented in the cxfs_client man page. ! 42 Caution: Some of the options are intended to be used internally by SGI only for testing purposes and do not represent supported configurations. Consult your SGI service representative before making any changes. 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Recognizing Storage Changes for AIX If you make changes to your storage configuration, you must rerun the HBA utilities to reprobe the storage. For more information, see the IBM HBA documentation. GRIO on AIX CXFS supports guaranteed-rate I/O (GRIO) version 2 on the AIX platform. Application bandwidth reservations must be explicitly released by the application before exit. If the application terminates unexpectedly or is killed, its bandwidth reservations are not automatically released and will cause a bandwidth leak. If this happens, the lost bandwidth could be recovered by rebooting the client node. An AIX client can mount a GRIO-managed filesystem and supports application- and node-level reservations. An AIX client will interoperate with the dynamic bandwidth allocator for all I/O outside of any reservation. For more information, see "Guaranteed-Rate I/O (GRIO) and CXFS" on page 10 and the Guaranteed-Rate I/O Version 2 Guide. XVM Failover V2 on AIX Following is an example of the /etc/failover2.conf file on AIX: /dev/hdisk199 /dev/hdisk135 /dev/hdisk231 /dev/hdisk167 affinity=1 preferred affinity=1 affinity=2 affinity=2 For more information, see "XVM Failover and CXFS" on page 11, the comments in the /etc/failover2.conf file, CXFS Administration Guide for SGI InfiniteStorage, and the XVM Volume Manager Administrator’s Guide. Mapping XVM Volumes to Storage Targets on AIX To map XVM volumes to storage targets on AIX, do the following: 1. Get visible controller port WWNs. 007–4507–015 43 3: AIX Platform 2. Display the desired fields by using the lscfg command. For example (line breaks shown for readability): # lscfg |sed -n -e ’s/000000000000//’ -e ’s/.*\(hdisk[0-9]*\) .*-\(P.*-C.*-T.*\)-W\(.*\)-L\([0-9ABCDEF]*\) .*/\/dev\/\1 # HBA=\2 WWN=\3 LUN=\4/p’|sort -k5 /dev/hdisk137 # HBA=F8-P1-C1-T1 WWN=W21000080E5119F42 LUN=0 /dev/hdisk98 # HBA=F8-P1-C4-T1 WWN=W21000080E5119F42 LUN=0 /dev/hdisk127 # HBA=F8-P1-C4-T1 WWN=W21000080E5119F42 LUN=1 /dev/hdisk138 # HBA=F8-P1-C1-T1 WWN=W21000080E5119F42 LUN=1 Troubleshooting for AIX This section discusses the following: • "Unable to Mount Filesystems on AIX" on page 44 • "The cxfs_client Daemon is Not Started on AIX" on page 45 • "Filesystems Do Not Mount on AIX" on page 46 • "Panic Occurs when Executing cxfs_cluster on AIX " on page 46 • "A Memory Error Occurs with cp -p on AIX" on page 47 • "An ACL Problem Occurs with cp -p on AIX" on page 47 • "Large Log Files on AIX" on page 47 Also see Chapter 10, "General Troubleshooting" on page 237 and Appendix D, "Error Messages" on page 263. Unable to Mount Filesystems on AIX If cxfs_info reports that cms is up but XVM or the filesystem is in another state, then one or more mounts is still in the process of mounting or has failed to mount. The CXFS node might not mount filesystems for the following reasons: • The client may not be able to see all the LUNs. This is usually caused by misconfiguration of the HBA or the SAN fabric: – Check that the ports on the Fibre Channel switch connected to the HBA are active. Physically look at the switch to confirm the light next to the port is green, or remotely check by using the switchShow command. 44 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage – Check that the HBA configuration is correct. – Check that the HBA can see all the LUNs for the filesystems it is mounting. – Check that the operating system kernel can see all the LUN devices. – If the RAID device has more than one LUN mapped to different controllers, ensure the node has a Fibre Channel path to all relevant controllers. • The cxfs_client daemon may not be running. See "The cxfs_client Daemon is Not Started on AIX" on page 45. • The filesystem may have an unsupported mount option. Check the cxfs_client.log for mount option errors or any other errors that are reported when attempting to mount the filesystem. • The cluster membership (cms), XVM, or the filesystems may not be up on the node. Execute the /usr/cxfs_cluster/bin/cxfs_info command to determine the current state of cms, XVM, and the filesystems. If the node is not up for each of these, then check the /var/tmp/cxfs_client log to see what actions have failed. Do the following: – If cms is not up, check the following: • Is the node is configured on the administration node with the correct hostname? See "Configuring Hostnames on Mac OS X" on page 78. • Has the node been added to the cluster and enabled? See "Verifying the Cluster Status" on page 228. – If XVM is not up, check that the HBA is active and can see the LUNs. – If the filesystem is not up, check that one or more filesystems are configured to be mounted on this node and check the /var/tmp/cxfs_client file for mount errors. The cxfs_client Daemon is Not Started on AIX Confirm that the cxfs_client is not running. The following command would list the cxfs_client process if it were running: aix# ps -ef | grep cxfs_client 007–4507–015 45 3: AIX Platform The cxfs_client daemon might not start for the following reasons: • The workstation is in 32-bit kernel mode, which is indicated if the following message is output to the console: CXFS works only in the 64 bit kernel mode In this case, you must change to 64-bit mode as follows: 1. Link the following libraries: aix# ln -fs /usr/lib/boot/unix_64 /unix aix# ln -fs /usr/lib/boot/unix_64 /usr/lib/boot/unix 2. Create the boot image: aix# bosboot -ad /dev/ipldevice 3. Reboot the system. • Restart cxfs_client as described in "Start/Stop cxfs_client Daemon for AIX" on page 41 and watch the cxfs_client log file for errors. Filesystems Do Not Mount on AIX If the /var/tmp filesystem is full, CXFS cannot write logs to it and the CXFS filesystem will not be able to mount on the AIX node. In this case, you should clean out the /var/tmp filesystem. If a disk is read from an AIX node and the following message is output, it means that the Fibre Channel switch has broken down: no such device or address In this case, you should restart the Fibre Channel switch. Panic Occurs when Executing cxfs_cluster on AIX If the following message is output, then the genkex command does not exist: genkex isn’t found In this case, you must install the bos.perf.tools file set. 46 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage A Memory Error Occurs with cp -p on AIX If an error occurs when a file is copied with the cp -p command and the following message is output, there is a problem with NFS: There is not enough memory available now In this case, you must use maintenance level 5100-04+IY42428. For more information, see: https://techsupport.services.ibm.com/server/aix.fdc An ACL Problem Occurs with cp -p on AIX If an ACL is not reflected when a file with an ACL is copied from JFS to CXFS using the cp -p command, there is a problem with the AIX software. (The ACL information for the file is indicated by the aclget command.) In this case, you must use maintenance level 5100-04. For more information, see: https://techsupport.services.ibm.com/server/aix.fdc Large Log Files on AIX The /var/tmp/cxfs_client log file may become quite large over a period of time if the verbosity level is increased. To manually rotate this log file, use the -z option in the /usr/cxfs_cluster/bin/cxfs_client.options file. See the cxfs_client man page and "Log Files on AIX" on page 27. Reporting AIX Problems When reporting a problem about a CXFS AIX node to SGI, you should retain the following information: • Information about the AIX node system dump and system configuration: aix# snap -a -o /dev/rmt0 007–4507–015 47 3: AIX Platform • Console log: aix# alog -o -t console • Current syslog file • The /var/tmp/cxfs_client CXFS log file • Moduler debugger output from the kdb command: – For panics or generated dumps, use the following commands and save the output: aix# kdb /var/adm/ras/vmcore.xx[/unix] (0)> stat – For dumps from hangs: aix# (0)> (0)> (0)> kdb /var/adm/ras/vmcore.xx[/unix] th* (to find the slot value of the working process or thread) sw slot_value stat • A list of the installed CXFS packages. Use the lslpp command as follows: aix# lslpp -l SGIcxfs-aix5L • The version information of the operating system. Use the following oslevel commands: aix# oslevel -r aix# oslevel -g | grep bos.64bit • A list of the loaded AIX kernel extensions. Use the genkex command. If any of these AIX tools are not currently installed on your AIX node, you should install them. 48 007–4507–015 Chapter 4 Linux Third-Party Platforms CXFS supports a client-only node running the Linux operating system on supported third–party platforms. Note: The term Linux in this guide always refers to Linux client-only nodes on third-party platforms. For information about SGI ProPack for Linux and CXFS, see Chapter 6, "SGI ProPack Client-Only Platform" on page 101, and CXFS Administration Guide for SGI InfiniteStorage. On Linux systems, the use of XVM is supported only with CXFS; XVM does not support local Linux disk volumes. This chapter contains the following sections: • "CXFS on Linux" on page 50 • "HBA Installation for Linux" on page 54 • "Preinstallation Steps for Linux" on page 56 • "Client Software Installation for Linux" on page 60 • "I/O Fencing for Linux" on page 63 • "Start/Stop cxfs_client for Linux" on page 65 • "Maintenance for Linux" on page 66 • "Using cxfs-reprobe with Red Hat Linux" on page 67 • "GRIO on Linux" on page 69 • "XVM Failover V2 on Linux" on page 70 • "Mapping XVM Volumes to Storage Targets on Linux" on page 70 • "Troubleshooting for Linux" on page 70 • "Reporting Linux Problems" on page 73 007–4507–015 49 4: Linux Third-Party Platforms CXFS on Linux This section contains the following information about CXFS on Linux systems: • "Requirements for Linux" • "CXFS Commands on Linux" on page 51 • "Log Files on Linux" on page 52 • "CXFS Mount Scripts on Linux" on page 52 • "Limitations and Considerations for Linux" on page 52 • "Access Control Lists and Linux" on page 54 Requirements for Linux In addition to the items listed in "Requirements" on page 7, using a Linux node to support CXFS requires the following: • One of the following operating systems (see the release notes for the supported kernels, update levels, and service pack levels): – Red Hat Enterprise Linux 4 (RHEL 4) update 4 for WS, ES, and AS – SUSE Linux Enterprise Server 10 (SLES 10) – SLES 10 Service Pack (SP) 1 • A choice of at least one Fibre Channel host bus adapter (HBA): – QLogic QLA2200, QLA2200F, QLA2310, QLA2342, QLA2344 – LSI Logic LS17202XP-LC, LS17402XP-LC, LS17104XP-LC, LS17204XP-LC, LS17404XP-LC Note: The LSI HBA requires the 01030600 firmware or newer. • A CPU of the following class: – i386 architecture (i386 as reported by the uname -i command), such as: • Advanced Micro Devices AMD Athlon 50 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • AMD Duron • Intel Pentium 4 – x86_64 architecture, such as: • AMD Opteron • Intel Xeon EM64T – ia64 architecture, such as Intel Itanium 2 The machine must have at least the following minimum requirements: – 256 MB of RAM memory – Two Ethernet 100baseT interfaces – One empty PCI slot (to receive the HBA) For the latest information, see the CXFS Linux release notes. CXFS Commands on Linux The following commands are shipped as part of the CXFS Linux package: /usr/cluster/bin/cxfs-config /usr/cluster/bin/cxfs_client /usr/cluster/bin/cxfs_info /usr/cluster/bin/cxfscp /usr/cluster/bin/cxfsdump /usr/sbin/grioadmin /usr/sbin/grioqos /sbin/xvm The cxfs_client and xvm commands are needed to include a client-only node in a CXFS cluster. The cxfs_info command reports the current status of this node in the CXFS cluster. The rpm output lists all software added; see "Linux Installation Overview" on page 61. For more information, see the man pages. 007–4507–015 51 4: Linux Third-Party Platforms Log Files on Linux The cxfs_client command creates a /var/log/cxfs_client log file. This file is rotated by default. The Linux platform uses the logrotate system utility to rotate the CXFS logs (as opposed to other multiOS platforms, which use the -z option to cxfs_client): • The /etc/logrotate.conf file specifies how often system logs are rotated • The /etc/logrotate.d/cxfs_client file specifies the manner in which cxfs_client logs are rotated For information about the log files created on CXFS administration nodes, see the CXFS Administration Guide for SGI InfiniteStorage. CXFS Mount Scripts on Linux Linux supports the CXFS mount scripts. See "CXFS Mount Scripts" on page 6 and the CXFS Administration Guide for SGI InfiniteStorage. For Red Hat Linux nodes, you must define a group of environment variables in the /etc/cluster/config/cxfs_client.options file in order for cxfs-reprobe to appropriately probe all of the targets on the SCSI bus. For more information, see "Using cxfs-reprobe with Red Hat Linux" on page 67. Limitations and Considerations for Linux Note the following: • By default, DMAPI is turned off on SLES 10 systems. If you want to mount filesystems on a SLES 10 client-only node with the dmi mount option, you must ensure that the DMAPI_PROBE system tunable parameter on the node is set to yes in the /etc/sysconfig/sysctl file. Changes to the file will processed on the next reboot. After setting that system configuration file, you can immediately enable DMAPI by executing the following: sysctl -w fs.xfs.probe_dmapi=1 • IRIX nodes do not permit nested mount points on CXFS filesystems; that is, you cannot mount an IRIX XFS or CXFS filesystem on top of an existing CXFS filesystem. Although it is possible to mount other filesystems on top of a Linux CXFS filesystem, this is not recommended. 52 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • On Linux systems, the mkfs.xfs command does not discover log or real-time subvolumes. You must specify the log or real-time subvolumes on the command line. For more information, see the mkfs.xfs(8) man page. See also "Real-Time Subvolumes" on page 9. • Due to Linux kernel limitations, CXFS filesystems cannot be mounted with the inode64 mount option. For more information, see Appendix C, "Mount Options Support" on page 255. • CXFS filesystems with XFS version 1 directory format cannot be mounted on Linux nodes. • By default, the Linux kernel will only scan LUN 0 of a SCSI device. This can be altered by adding max_scsi_luns=N to the kernel boot arguments, where N is the number of LUNs that should be scanned. If not all devices on the fabric are found, this may resolve the issue. • The implementation of file creates using O_EXCL is not complete. Multiple applications running on the same node using O_EXCL creates as a synchronization mechanism will see the expected behavior (only one of the creates will succeed). However, applications running between nodes may not get the O_EXCL behavior they requested (creates of the same file from two or more separate nodes may all succeed). • The Fibre Channel HBA driver must be loaded before CXFS services are started. The HBA driver could be loaded early in the initialization scripts or be added to the initial RAM disk for the kernel. See the mkinitrd man page for more information. • RHEL4 i386 and x86_64 nodes have a severely limited kernel stack size. To use CXFS on these nodes requires the following to avoid a stack overflow panic: – You must fully disable SELinux on i386 and x86_64 RHEL4 client nodes (you cannot simply set it to permissive mode). See the Red Hat SELinux Guide for instructions: http://www.redhat.com/docs/manuals/enterprise/RHEL-4-Manual/selinuxguide/ Note: This caveat does not apply to RHEL4 nodes with ia64 architectures. – You must redirect core dump files on RHEL4 i386 nodes to an absolute path. (By default, core dump files are in the current working directory of the 007–4507–015 53 4: Linux Third-Party Platforms process, which might be on a CXFS filesystem and could cause a panic.) Add the following line to the /etc/sysctl.conf file: kernel.core_pattern = /core For more information, see the sysctl man page. See also Appendix B, "Filesystem and Logical Unit Specifications" on page 253. Access Control Lists and Linux All CXFS files have UNIX mode bits (read, write, and execute) and optionally an access control list (ACL). For more information, see the chmod and setfacl man pages. HBA Installation for Linux This section provides an overview of the Fibre Channel host bus adapter (HBA) installation information for Linux nodes. The installation may be performed by you or by a qualified service representative for your hardware. See the Linux operating system documentation and the documentation for your hardware platform. The driver requirements are as follows: • LSI Logic card: the drivers are supplied with the Linux kernel. The module name is mptscsih. The LSI lsiutil command displays the number of LSI HBAs installed, the model numbers, and firmware versions. • QLogic card: the drivers are supplied with the Linux kernel. You must ensure that the HBA driver is loaded prior to CXFS initialization by building the module into the initial RAM disk automatically or manually. For example, using the QLogic card and the qla2200 driver: • Automatic method: For RHEL, add a new line such as the following to the /etc/modprobe.conf file: alias scsi_hostadapter1 qla2200 54 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage For SLES, add the driver name to the INITRD_MODULES variable in the /etc/sysconfig/kernel file. After adding the HBA driver into INITRD_MODULES, you must rebuild initrd with mkinitrd. Note: If the host adapter is installed in the box when the operating system is installed, this may not be necessary. Or hardware may be detected at boot time. When the new kernel is installed, the driver will be automatically included in the corresponding initrd image. • Manual method: recreate your initrd to include the appropriate HBA driver module. For more information, see the operating system documentation for the mkinitrd command. You should then verify the appropriate initrd information: • If using the GRUB loader, verify that the following line appears in the /boot/grub/grub.conf file: initrd /initrd-version.img • If using the LILO loader, do the following: 1. Verify that the following line appears in the appropriate stanza of /etc/lilo.conf: /boot/initrd-version.img 2. Rerun LILO. The system must be rebooted (and when using LILO, LILO must be rerun) for the new initrd image to take effect. Instead of this procedure, you could also modify the /etc/rc.sysinit script to load the qla2200 driver early in the initscript sequence. 007–4507–015 55 4: Linux Third-Party Platforms Preinstallation Steps for Linux This section provides an overview of the steps that you will perform on your Linux nodes prior to installing the CXFS software. It contains the following sections: • "Adding a Private Network for Linux" on page 56 • "Modifications Required for CXFS Connectivity Diagnostics for Linux" on page 58 • "Verifying the Private and Public Networks for Linux" on page 59 Adding a Private Network for Linux The following procedure provides an overview of the steps required to add a private network to the Linux system. A private network is required for use with CXFS. See "Use a Private Network" on page 16. You may skip some steps, depending upon the starting conditions at your site. For details about any of these steps, see the Linux operating system documentation. 1. Edit the /etc/hosts file so that it contains entries for every node in the cluster and their private interfaces as well. The /etc/hosts file has the following format, where primary_hostname can be the simple hostname or the fully qualified domain name: IP_address primary_hostname aliases You should be consistent when using fully qualified domain names in the /etc/hosts file. If you use fully qualified domain names on a particular node, then all of the nodes in the cluster should use the fully qualified name of that node when defining the IP/hostname information for that node in their /etc/hosts file. The decision to use fully qualified domain names is usually a matter of how the clients (such as NFS) are going to resolve names for their client server programs, how their default resolution is done, and so on. Even if you are using the domain name service (DNS) or the network information service (NIS), you must add every IP address and hostname for the nodes to /etc/hosts on all nodes. For example: 190.0.2.1 server1.company.com server1 190.0.2.3 stocks 56 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 190.0.3.1 190.0.2.2 190.0.2.4 190.0.3.2 priv-server1 server2.company.com server2 bonds priv-server2 You should then add all of these IP addresses to /etc/hosts on the other nodes in the cluster. For more information, see the hosts and resolver man pages. Note: Exclusive use of NIS or DNS for IP address lookup for the nodes will reduce availability in situations where the NIS or DNS service becomes unreliable. For more information, see "Understand Hostname Resolution and Network Configuration Rules" on page 15. 2. Edit the /etc/nsswitch.conf file so that local files are accessed before either NIS or DNS. That is, the hosts line in /etc/nsswitch.conf must list files first. For example: hosts: files nis dns (The order of nis and dns is not significant to CXFS, but files must be first.) 3. Configure your private interface according to the instructions in the Network Configuration section of your Linux distribution manual. To verify that the private interface is operational, issue the following command: [root@linux root]# ifconfig -a eth0 Link encap:Ethernet HWaddr 00:50:81:A4:75:6A inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:13782788 errors:0 dropped:0 overruns:0 frame:0 TX packets:60846 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:826016878 (787.7 Mb) TX bytes:5745933 (5.4 Mb) Interrupt:19 Base address:0xb880 Memory:fe0fe000-fe0fe038 eth1 Link encap:Ethernet HWaddr 00:81:8A:10:5C:34 inet addr:10.0.0.10 Bcast:10.0.0.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 007–4507–015 57 4: Linux Third-Party Platforms RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:19 Base address:0xef00 Memory:febfd000-febfd038 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:162 errors:0 dropped:0 overruns:0 frame:0 TX packets:162 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:11692 (11.4 Kb) TX bytes:11692 (11.4 Kb) This example shows that two ethernet interfaces, eth0 and eth1, are present and running (as indicated by UP in the third line of each interface description. If the second network does not appear, it may be that a network interface card must be installed in order to provide a second network, or it may be that the network is not yet initialized. Modifications Required for CXFS Connectivity Diagnostics for Linux In order to test node connectivity by using the GUI, the root user on the node running the CXFS diagnostics must be able to access a remote shell using the rsh command (as root) on all other nodes in the cluster. (This test is not required when using cxfs_admin because it verifies the connectivity of each node as it is added to the cluster.) There are several ways of accomplishing this, depending on the existing settings in the pluggable authentication modules (PAMs) and other security configuration files. Following is one possible method that works with default settings. Do the following on all nodes in the cluster: 1. Install the rsh-server RPM. 2. Enable rsh. 3. Restart xinted. 4. Add rsh to the /etc/securetty file. 58 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 5. Add the hostname of the node from which you will be running the diagnostics into the /root/.rhosts file. Make sure that the mode of the .rhosts file is set to 600 (read and write access for the owner only). After you have completed running the connectivity tests, you may wish to disable rsh on all cluster nodes. For more information, see the Linux operating system documentation about PAM and the hosts.equiv man page. Verifying the Private and Public Networks for Linux For each private network on each Linux node in the pool, verify access with the ping command. Enter the following, where nodeIPaddress is the IP address of the node: ping nodeIPaddress For example: [root@linux root]# ping 10.0.0.1 PING 10.0.0.1 (10.0.0.1) from 128.162.240.141 : 56(84) bytes of data. 64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.310 ms 64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.122 ms 64 bytes from 10.0.0.1: icmp_seq=3 ttl=64 time=0.127 ms Also execute a ping on the public networks. If ping fails, repeat the following procedure on each node: 1. Verify that the network interface was configured up using ifconfig. For example: [root@linux root]# ifconfig eth1 eth1 Link encap:Ethernet HWaddr 00:81:8A:10:5C:34 inet addr:10.0.0.10 Bcast:10.0.0.255 Mask:255.255.255.0 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 b) TX bytes:0 (0.0 b) Interrupt:19 Base address:0xef00 Memory:febfd000-febfd038 In the third output line above, UP indicates that the interface was configured up. 2. Verify that the cables are correctly seated. 007–4507–015 59 4: Linux Third-Party Platforms Client Software Installation for Linux The CXFS software will be initially installed and configured by SGI personnel. This section provides an overview of those procedures. You can use the information in this section to verify the installation. Table 4-1 and Table 4-2 provide examples of the differences in package extensions among the various processor classes supported by CXFS. Note: The kernel package extensions vary by architecture. Ensure that you install the appropriate package for your processor architecture. Table 4-1 RHEL Processor and Package Extension Examples Class Example Processors User Package Architecture Extension Kernel Package Architecture Extension i386 AMD Athlon .i386.rpm .athlon.rpm AMD Duron .i386.rpm .athlon.rpm Intel Pentium 4 .i386.rpm .i686.rpm AMD Opteron .x86_64.rpm .x86_64.rpm Intel Xeon EM64T .x86_64.rpm .x86_64.rpm Intel Itanium 2 .ia64.rpm .ia64.rpm x86_64 ia64 Table 4-2 SLES Processor and Package Extension Examples Class Example Processors User and Kernel Package Architecture Extension i386 AMD Athlon .i586.rpm (.i386.rpm for sysadm packages) x86_64 AMD Opteron .x86_64.rpm EM64T .x86_64.rpm Intel Itanium 2 .ia64.rpm ia64 60 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Linux Installation Overview Note: Specific packages listed here are examples and may not match the released product. Installing the CXFS client CD for Linux requires approximately 50–200 MB of space, depending upon the packages installed at your site. To install the required software on a Linux node, SGI personnel will do the following: 1. Read the release notes to learn about any late-breaking changes in the installation procedure. 2. Verify that the node is running a supported Linux distribution, according to the CXFS for Linux release notes. See the Red Hat /etc/redhat-release or SLES /etc/SuSE-release files. Note: When installing the Linux OS, disconnect the system from the fabric or ensure that the drive you are installing on is not a SAN-attached drive. 3. (Red Hat systems only) Insert and mount the CXFS MultiOS Client 4.2 XFS for the RHEL4 Client CD. Change to the directory containing the appropriate kernel RPM for your system, according to the information about upgrading the kernel in the operating system documentation. Then install the XFS kernel module, as follows: [root@linux cdrom]# rpm -Uvh kernel-module-dmapi-KERNELRELEASE-VERSION.ARCHITECTURE.rpm Preparing... ########################################### [100%] 1:kernel-module-dmapi-KER########################################### [100%] [root@linux cdrom]# rpm -Uvh kernel-module-xfs-KERNELRELEASE-VERSION.ARCHITECTURE.rpm Preparing... ########################################### [100%] 1:kernel-module-xfs-KERNE########################################### [100%] where: • KERNELRELEASE is the kernel release level as output by the uname -r command • VERSION is the version number • ARCHITECTURE is the architecture type extension 007–4507–015 61 4: Linux Third-Party Platforms 4. Insert and mount the CXFS MultiOS Client 4.2 CD. 5. Install the CXFS kernel modules: [root@linux cdrom]# rpm -Uvh sgi-cxfs-kmp-kernelvariant-kernelrelease-version.architecture.rpm Preparing... ########################################### [100%] 1:sgi-cxfs-kmp-kernelvariant-ker########################################### [100%] Where: • KERNELVARIANT and KERNELRELEASE are the kernel variant and release level as output by the uname -r command • VERSION is the version number • ARCHITECTURE is the architecture type extension as listed in Table 4-1 on page 60 or Table 4-2 on page 60 Note: One version of CXFS may support one or more KERNELRELEASE values. See the CXFS Linux release notes for the supported versions. 6. Install the user-space packages: [root@linux cdrom]# rpm -Uvh cxfs_client* cxfs_util* cxfs-xvm-cmds* cxfs-doc* Preparing... ########################################### [100%] 1:cxfs-xvm-cmds ########################################### [ 25%] 2:cxfs_util ########################################### [ 50%] 3:cxfs_client ########################################### [ 75%] cxfs_client 0:off 1:off 2:off 3:on 4:off 5:on 6:off 4:cxfs-doc ########################################### [100%] Note: The order of RPMs listed on the command line is not necessarily the same order in which they will be displayed in the rpm command output. 7. If you are using GRIO, install the grio2-cmds packages: [root@linux cdrom]# rpm -Uvh grio2-cmds* Preparing... 1:grio2-cmds 62 ###########################################[100%] ###########################################[100%] 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 8. Edit the /etc/cluster/config/cxfs_client.options file as necessary. See the "Maintenance for Linux" on page 66 and the cxfs_client(1M) man page. 9. Reboot the system with the newly installed kernel: [root@linux root]# reboot Verifying the Linux Installation Use the uname -r command to ensure the kernel installed above is running. To verify that the CXFS software has been installed properly, use the rpm -qa command to display all of the installed packages. You can filter the output by searching for particular package name. I/O Fencing for Linux I/O fencing is required on Linux nodes in order to protect data integrity of the filesystems in the cluster. The cxfs_client software automatically detects the world wide port names (WWPNs) of any supported host bus adapters (HBAs) for Linux nodes that are connected to a switch that is configured in the cluster database. These HBAs are available for fencing. However, if no WWPNs are detected, there will be messages about loading the HBA/SNIA library logged to the /var/log/cxfs_client file. If no WWPNs are detected, you can manually specify the WWPNs in the fencing file. Note: This method does not work if the WWPNs are partially discovered. The /etc/fencing.conf file enumerates the WWPNs for all of the HBAs that will be used to mount a CXFS filesystem. There must be a line for each HBA WWPN as a 64-bit hexadecimal number. Note: The WWPN is that of the HBA itself, not any of the devices that are visible to that HBA in the fabric. If used, /etc/fencing.conf must contain a simple list of WWPNs, one per line. You must update it whenever the HBA configuration changes, including the replacement of an HBA. 007–4507–015 63 4: Linux Third-Party Platforms Do the following: 1. Set up the switch and HBA. See the release notes for supported hardware. 2. Determine the HBA WWPN: Follow the Fibre Channel cable on the back of the node to determine the port to which it is connected in the switch. Ports are numbered beginning with 0. (For example, if there are 8 ports, they will be numbered 0 through 7.) 3. Use the telnet command to connect to the switch and log in as user admin. (On Brocade switches, the password is password by default). 4. Execute the switchshow command to display the switches and their WWPN numbers. For example: brocade04:admin> switchshow switchName: brocade04 switchType: 2.4 switchState: Online switchRole: Principal switchDomain: 6 switchId: fffc06 switchWwn: 10:00:00:60:69:12:11:9e switchBeacon: OFF port 0: sw Online F-Port 20:00:00:01:73:00:2c:0b port 1: cu Online F-Port 21:00:00:e0:8b:02:36:49 port 2: cu Online F-Port 21:00:00:e0:8b:02:12:49 port 3: sw Online F-Port 20:00:00:01:73:00:2d:3e port 4: cu Online F-Port 21:00:00:e0:8b:02:18:96 port 5: cu Online F-Port 21:00:00:e0:8b:00:90:8e port 6: sw Online F-Port 20:00:00:01:73:00:3b:5f port 7: sw Online F-Port 20:00:00:01:73:00:33:76 port 8: sw Online F-Port 21:00:00:e0:8b:01:d2:57 port 9: sw Online F-Port 21:00:00:e0:8b:01:0c:57 port 10: sw Online F-Port 20:08:00:a0:b8:0c:13:c9 port 11: sw Online F-Port 20:0a:00:a0:b8:0c:04:5a port 12: sw Online F-Port 20:0c:00:a0:b8:0c:24:76 port 13: sw Online L-Port 1 public port 14: sw No_Light port 15: cu Online F-Port 21:00:00:e0:8b:00:42:d8 64 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage The WWPN is the hexadecimal string to the right of the port number. For example, the WWPN for port 0 is 2000000173002c0b (you must remove the colons from the WWPN reported in the switchshow output to produce the string to be used in the fencing file). 5. Edit or create /etc/fencing.conf and add the WWPN for the port determined in step 2. (Comment lines begin with #.) For dual-ported HBAs, you must include the WWPNs of any ports that are used to access cluster disks. This may result in multiple WWPNs per HBA in the file; the numbers will probably differ by a single digit. For example, if you determined that port 0 is the port connected to the switch, your fencing file should contain the following: # WWPN of the HBA installed on this system # 2000000173002c0b 6. To configure fencing, see the CXFS Administration Guide for SGI InfiniteStorage. Start/Stop cxfs_client for Linux The /etc/init.d/cxfs_client script will be invoked automatically during normal system startup and shutdown procedures. This script starts and stops the cxfs_client daemon. To start up cxfs_client manually, enter the following: [root@linux root]# /etc/init.d/cxfs_client start Loading cxfs modules: Mounting devfs filesystems: Starting cxfs client: [ [ [ OK OK OK ] ] ] [ OK ] [ OK ] To stop cxfs_client manually, enter the following: [root@linux root]# /etc/init.d/cxfs_client stop Stopping cxfs client: To stop and then start cxfs_client manually, enter the following: [root@linux root]# /etc/init.d/cxfs_client restart Stopping cxfs client: 007–4507–015 65 4: Linux Third-Party Platforms To see the current status, use the status argument. For example: [root@ceara root]# /etc/init.d/cxfs_client status cxfs_client status [timestamp Apr 20 14:54:30 / generation 4364] CXFS client: state: stable (5), cms: up, xvm: up, fs: up Cluster: connies_cluster (707) - enabled Local: ceara (7) - enabled Nodes: aiden enabled up 12 brenna enabled DOWN 10 brigid enabled up 11 ceara enabled up 7 chili enabled up 4 cxfsibm2 enabled up 9 cxfssun4 enabled up 5 daghada enabled up 8 flynn enabled up 2 gaeth enabled up 0 minnesota enabled up 6 rowan enabled up 3 rylie enabled up 1 Filesystems: concatfs enabled mounted concatfs /concatfs stripefs enabled mounted stripefs /stripefs tp9300_stripefs enabled forced mounted tp9300_stripefs /tp9300_stripefs cxfs_client is running. For example, if cxfs_client is stopped: [root@linux root]# /etc/init.d/cxfs_client status cxfs_client is stopped Maintenance for Linux This section contains information about maintenance procedures for CXFS on Linux. 66 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Modifying the CXFS Software for Linux You can modify the behavior of the CXFS client daemon (cxfs_client) by placing options in the /etc/cluster/config/cxfs_client.options file. The available options are documented in the cxfs_client man page. ! Caution: Some of the options are intended to be used internally by SGI only for testing purposes and do not represent supported configurations. Consult your SGI service representative before making any changes. To see if cxfs_client is using the options in cxfs_client.options, enter the following: [root@linux root]# ps -ax | grep cxfs_client 3612 ? S 0:00 /usr/cluster/bin/cxfs_client -i cxfs3-5 3841 pts/0 S 0:00 grep cxfs_client Recognizing Storage Changes for Linux The following script is run by cxfs_client when it reprobes the Fibre Channel controllers upon joining or rejoining membership: /var/cluster/cxfs_client-scripts/cxfs-reprobe For Red Hat Linux nodes, you must define a group of environment variables in the /etc/cluster/config/cxfs_client.options file in order for cxfs-reprobe to appropriately probe all of the targets on the SCSI bus. For more information, see "Using cxfs-reprobe with Red Hat Linux" on page 67. On Linux nodes, the cxfs-enumerate-wwns script enumerates the world wide names (WWNs) on the host that are known to CXFS. See "CXFS Mount Scripts" on page 6. Using cxfs-reprobe with Red Hat Linux When cxfs_client needs to rescan disk buses, it executes the /var/cluster/cxfs_client-scripts/cxfs-reprobe script. This requires the use of parameters in Red Hat Linux due to limitations in the SCSI layer. You can export these parameters from the /etc/cluster/config/cxfs_client.options file. 007–4507–015 67 4: Linux Third-Party Platforms The script detects the presence of the SCSI and/or XSCSI layers on the system and defaults to probing whichever layers are detected. You can override this decision by setting CXFS_PROBE_SCSI (for Linux SCSI) or CXFS_PROBE_XSCSI (for Linux XSCSI) to either 0 (to disable the probe) or 1 (to force the probe). When an XSCSI scan is performed, all buses are scanned by default. You can override this by specifying a space-separated list of buses in CXFS_PROBE_XSCSI_BUSES. (If you include space, you must enclose the list within single quotation marks.) For example: export CXFS_PROBE_XSCSI_BUSES=’/dev/xscsi/pci01.03.0-1/bus /dev/xscsi/pci02.01.0-2/bus’ When a SCSI scan is performed, a fixed range of buses/channels/IDs and LUNs are scanned; these ranges may need to be changed to ensure that all devices are found. The ranges can also be reduced to increase scanning speed if a smaller space is sufficient. The following summarizes the environment variables (separate multiple values by white space and enclose withing single quotation marks): CXFS_PROBE_SCSI=0|1 Stops (0) or forces (1) a SCSI probe. Default: 1 if SCSI CXFS_PROBE_SCSI_BUSES=BusList Scans the buses listed. Default: 0 1 2 CXFS_PROBE_SCSI_CHANNELS=ChannelList Scans the channels listed. Default: 0 CXFS_PROBE_SCSI_IDS=IDList Scans the IDS listed. Default: 0 1 2 3 CXFS_PROBE_SCSI_LUNS=LunList Scans the LUNs listed. Default: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 CXFS_PROBE_XSCSI=0|1 Stops (1) or forces (1) an XSCSI probe. Default: 1 if XSCSI 68 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage CXFS_PROBE_XSCSI_BUSES=BusList Scans the buses listed. Default: all XSCSI buses For example, the following would only scan the first two SCSI buses: export CXFS_PROBE_SCSI_BUSES=’0 1’ The following would scan 16 LUNs on each bus, channel, and ID combination (all on one line): export CXFS_PROBE_SCSI_LUNS=’0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15’ Other options within the /etc/cluster/config/cxfs_client.options file begin with a - character. Following is an example cxfs_client.options file: # Example cxfs_client.options file # -Dnormal -serror export CXFS_PROBE_SCSI_BUSSES=1 export CXFS_PROBE_SCSI_LUNS=’0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20’ Note: The - character or the term export must start in the first position of each line in the cxfs_client.options file; otherwise, they are ignored by the /etc/init.d/cxfs_client script. GRIO on Linux CXFS supports guaranteed-rate I/O (GRIO) version 2 on the Linux platform. However, GRIO is disabled by default on Linux. To enable GRIO, change the following line in /etc/cluster/config/cxfs_client.options from: export GRIO2=off to: export GRIO2=on Application bandwidth reservations must be explicitly released by the application before exit. If the application terminates unexpectedly or is killed, its bandwidth reservations are not automatically released and will cause a bandwidth leak. If this happens, the lost bandwidth could be recovered by rebooting the client node. 007–4507–015 69 4: Linux Third-Party Platforms A Linux client can mount a GRIO-managed filesystem and supports application- and node-level reservations. A Linux client will interoperate with the dynamic bandwidth allocator for all I/O outside of any reservation. For more information, see "Guaranteed-Rate I/O (GRIO) and CXFS" on page 10 and the Guaranteed-Rate I/O Version 2 Guide. XVM Failover V2 on Linux Following is an example of the /etc/failover2.conf file on a Linux system: /dev/disk/by-path/pci-0000:06:02.1-fc-0x200800a0b8184c8e:0x0000000000000000 affinity=0 preferred /dev/disk/by-path/pci-0000:06:02.1-fc-0x200900a0b8184c8d:0x0000000000000000 affinity=1 For more information, see: • The comments in the /etc/failover2.conf.example file • "XVM Failover and CXFS" on page 11 • CXFS Administration Guide for SGI InfiniteStorage • XVM Volume Manager Administrator’s Guide Mapping XVM Volumes to Storage Targets on Linux To map XVM volumes to storage targets on Linux, do the following: 1. Get visible controller port WWNs. 2. Display the desired fields from the /proc/scsi/qla*/[0-9] files: cat /proc/scsi/qla*/[0-9]* | grep target | cut -f2 -d"=" | cut -f1 -d";" Troubleshooting for Linux This section discusses the following: • "Device Filesystem Enabled for Linux" on page 71 • "The cxfs_client Daemon is Not Started on Linux" on page 71 • "Filesystems Do Not Mount on Linux" on page 71 70 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • "Large Log Files on Linux" on page 72 • "xfs off Output from chkconfig" on page 73 For general troubleshooting information, see Chapter 10, "General Troubleshooting" on page 237 and Appendix D, "Error Messages" on page 263. Device Filesystem Enabled for Linux The kernels provided for the Linux client have the Device File System (devfs) enabled. This can cause problems with locating system devices in some circumstances. See the devfs FAQ at the following location: http://www.atnf.csiro.au/people/rgooch/linux/docs/devfs.html The cxfs_client Daemon is Not Started on Linux Confirm that the cxfs_client is not running. The following command would list the cxfs_client process if it were running: linux# ps -ax | grep cxfs_client Check the cxfs_client log file for errors. Restart cxfs_client as described in "Start/Stop cxfs_client for Linux" on page 65 and watch the cxfs_client log file for errors. Filesystems Do Not Mount on Linux If cxfs_info reports that cms is up but XVM or the filesystem is in another state, then one or more mounts is still in the process of mounting or has failed to mount. The CXFS node might not mount filesystems for the following reasons: • The client may not be able to see all of the LUNs. This is usually caused by misconfiguration of the HBA or the SAN fabric: – Check that the ports on the Fibre Channel switch connected to the HBA are active. Physically look at the switch to confirm the light next to the port is green, or remotely check by using the switchShow command. – Check that the HBA configuration is correct. 007–4507–015 71 4: Linux Third-Party Platforms – Check that the HBA can see all the LUNs for the filesystems it is mounting. – Check that the operating system kernel can see all the LUN devices. – If the RAID device has more than one LUN mapped to different controllers, ensure the node has a Fibre Channel path to all relevant controllers. • The cxfs_client daemon may not be running. See "The cxfs_client Daemon is Not Started on Linux" on page 71. • The filesystem may have an unsupported mount option. Check the cxfs_client.log for mount option errors or any other errors that are reported when attempting to mount the filesystem. • The cluster membership (cms), XVM, or the filesystems may not be up on the node. Execute the /usr/cluster/bin/cxfs_info command to determine the current state of cms, XVM, and the filesystems. If the node is not up for each of these, then check the /var/log/cxfs_client log to see what actions have failed. Do the following: – If cms is not up, check the following: • Is the node is configured on the administration node with the correct hostname? • Has the node been added to the cluster and enabled? See "Verifying the Cluster Status" on page 228. – If XVM is not up, check that the HBA is active and can see the LUNs. – If the filesystem is not up, check that one or more filesystems are configured to be mounted on this node and check the /var/log/cxfs_client file for mount errors. Large Log Files on Linux The /var/log/cxfs_client log file may become quite large over a period of time if the verbosity level is increased. See the cxfs_client.options man page and "Log Files on Linux" on page 52. 72 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage xfs off Output from chkconfig The following output from chkconfig --list refers to the X Font Server, not the XFS filesystem, and has no association with CXFS: xfs 0:off 1:off 2:off 3:off 4:off 5:off 6:off Reporting Linux Problems When reporting a problem about a Linux node to SGI, you should retain the following information: • The kernel you are running: [root@linux root]# uname -a • The CXFS packages you are running: [root@linux root]# rpm -q cxfs_client cxfs_utils cxfs-xvm-cmds \ sgi-cxfs-kmp-kernelvariant-kernelrelease-version • The numbers and types of the processors on your machine: [root@linux root]# cat /proc/cpuinfo • The hardware installed on your machine: [root@linux root]# lspci • Number of LSI HBAs installed, the model numbers, and firmware versions: [root@linux root]# lsiutil • Modules that are loaded on your machine: [root@linux root]# lsmod • The /var/log/cxfs_client log file • Any messages that appeared in the system logs immediately before the system exhibited the problem. • Output about the cluster obtained from the cxfsdump utility run on a CXFS administration node. The cxfsdump command transfers all of the information back to the node where the command was issued. When run in local mode on a 007–4507–015 73 4: Linux Third-Party Platforms Linux node, it stores information in /var/cluster/cxfsdump-data/nodename.tar.gz. • After a system kernel panic, the debugger information from the kdb built-in kernel debugger. ! Caution: When the system enters the debugger after a panic, it will render the system unresponsive until the user exits from the debugger. Also, if kdb is entered while the system is in graphical (X) mode, the debugger prompt cannot be seen. For these reasons, kdb is turned off by default. You can temporarily enable kdb by entering the following: [root@linux root]# echo 1 > /proc/sys/kernel/kdb To enable kdb at every boot, place the following entry in the /etc/sysctl.conf file: # Turn on KDB kernel.kdb = 1 For more information, see the sysctl man page. When kdb is enabled, a system panic will cause the debugger to be invoked and the keyboard LEDs will blink. The kdb prompt will display basic information. To obtain a stack trace, enter the bt command at the kdb prompt: kdb> bt To get a list of current processes, enter the following: kdb> ps To backtrace a particular process, enter the following, where PID is the process ID: kdb> btp PID To exit the debugger, enter the following: kdb> go If the system will be run in graphical mode with kdb enabled, SGI highly recommends that you use kdb on a serial console so that the kdb prompt can be seen. 74 007–4507–015 Chapter 5 Mac OS X Platform CXFS supports a client-only node running the Mac OS X operating system. This chapter contains the following sections: • "CXFS on Mac OS X" on page 75 • "HBA Installation for Mac OS X" on page 88 • "Preinstallation Steps for Mac OS X" on page 90 • "Client Software Installation for Mac OS X" on page 93 • "I/O Fencing for Mac OS X" on page 94 • "Start/Stop cxfs_client for Mac OS X" on page 96 • "Maintenance for Mac OS X" on page 96 • "GRIO on Mac OS X" on page 98 • "XVM Failover V2 on Mac OS X" on page 98 • "Mapping XVM Volumes to Storage Targets on Mac OS X" on page 98 • "Troubleshooting for Mac OS X" on page 99 • "Reporting Mac OS X Problems" on page 100 CXFS on Mac OS X This section contains the following information about CXFS on Mac OS X: • "Requirements for Mac OS X" on page 76 • "CXFS Commands on Mac OS X" on page 76 • "Log Files on Mac OS X" on page 77 • "Limitations and Considerations on Mac OS X" on page 78 • "Configuring Hostnames on Mac OS X" on page 78 • "Mapping User and Group Identifiers for Mac OS X" on page 79 007–4507–015 75 5: Mac OS X Platform • "Access Control Lists and Mac OS X" on page 80 Requirements for Mac OS X In addition to the items listed in "Requirements" on page 7, using a Mac OS X node to support CXFS requires the following: • Mac OS X operating system 10.4.8 or later Tiger • One of the following single- or dual-processor Apple Computer hardware platforms: Power Mac G4 Xserve G4 Power Mac G5 Xserve G5 Mac Pro • Apple Fibre Channel PCI and PCI-X host bus adapter (HBA) or Apple PCI Express HBA For the latest information, see the CXFS Mac OS X release notes. CXFS Commands on Mac OS X The following commands are shipped as part of the CXFS Mac OS X package: /usr/cluster/bin/autopsy /usr/cluster/bin/cxfs_client /usr/cluster/bin/cxfs_info /usr/cluster/bin/cxfsdump /usr/cluster/bin/fabric_dump /usr/cluster/bin/install-cxfs /usr/cluster/bin/uninstall-cxfs /Library/StartupItems/cxfs/cxfs /usr/sbin/grioadmin /usr/sbin/grioqos /usr/cluster/bin/xvm If a Mac OS X node panics, the OS will write details of the panic to /Library/Logs/panic.log. Running autopsy parses this file and adds symbolic backtraces where possible to make it easier to determine the cause of the panic. The 76 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage autopsy script is automatically run as part of the cxfsdump script, so the recommended steps for gathering data from a problematic node are still the same. Run autopsy with the -man option to display the man page. To display details of all visible devices on the Fibre Channel fabric, run the fabric_dump script. The output is useful for diagnosing issues related to mount problems due to missing LUNs. Run fabric_dump with the -man option to display the man page. The cxfs_client and xvm commands are needed to include a client-only node in a CXFS cluster. The cxfs_info command reports the current status of this node in the CXFS cluster. The installation package uses install-cxfs to install or update all of the CXFS files. You can use the uninstall-cxfs command to uninstall all CXFS files; uninstall is not an installation package option. The /Library/StartupItems/cxfs/cxfs command is run by the operating system to start and stop CXFS on the Mac OS X node. For more information on these commands, see the man pages. For information about the GRIO commands, see "Guaranteed-Rate I/O (GRIO) and CXFS" on page 10 and "GRIO on Mac OS X" on page 98. Log Files on Mac OS X The cxfs_client command creates a /var/log/cxfs_client log file. To rotate this log file, use the -z option in the /usr/cluster/bin/cxfs_client.options file; see the cxfs_client man page for details. The CXFS installation process (install-cxfs and uninstall-cxfs) appends to /var/log/cxfs_inst.log. For information about the log files created on CXFS administration nodes, see the CXFS Administration Guide for SGI InfiniteStorage. Also see the Mac OS X /var/log/system.log file. 007–4507–015 77 5: Mac OS X Platform Limitations and Considerations on Mac OS X CXFS for Mac OS X has the following limitations and considerations: • Mac OS X does not support the inode64 mount option. For more information, see Appendix C, "Mount Options Support" on page 255. • Mac OS X is unable to safely memory-map a file on a filesystem whose block size is greater than 4 KB. This is a due to a bug in the Darwin kernel that may be fixed by Apple in a future OS update. • Mac OS X is unable to memory-map a file larger than 2 GB. • XVM volume names are limited to 31 characters and subvolumes are limited to 26 characters. For more information about XVM, see XVM Volume Manager Administrator’s Guide. • Mac OS X does not support the CXFS mount scripts. See also Appendix B, "Filesystem and Logical Unit Specifications" on page 253. Configuring Hostnames on Mac OS X A Mac OS X node may use a combination of methods for obtaining the node’s hostname, depending on if it is in a NetInfo domain or is standalone. Normally, you specify the hostname by using the following menu selection: System Preferences > Sharing > Computer Name Although the HOSTNAME=-AUTOMATIC- entry does not exist in the /etc/hostconfig file, you can specify a hostname by using the HOSTNAME parameter in this file. The hostname specified for the machine will have the following domain by default: .local For example, if the hostname was specified as cxfsmac1, then you would see the following when requesting the hostname: macosx# /bin/hostname cxfsmac1.local 78 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage The full hostname including .local is the hostname that the CXFS software will use to determine its identity in the cluster, not cxfsmac1. Therefore, you must configure the node as cxfsmac1.local or specify the fully qualified hostname in /etc/hostconfig. For example: HOSTNAME=cxfsmac1.sgi.com Specifying the hostname in this way may impact some applications, most notably Bonjour, and should be researched and tested carefully. There are also known issues with the hostname being reported as localhost on some reboots after making such a change. SGI recommends that you specify other hosts in the cluster in the Mac OS X node’s /etc/hosts file. Mapping User and Group Identifiers for Mac OS X To ensure that the correct access controls are applied to users on Mac OS X nodes when accessing CXFS filesystems, you must ensure that the user IDs (UIDs) and group IDs (GIDs) are the same on the Mac OS X node as on all other nodes in the cluster, particularly any CXFS administration nodes. Note: A user does not have to have user accounts on all nodes in the cluster. However, all access control checks are performed by CXFS administration nodes, so any administration nodes must be configured with the superset of all users in the cluster. Users can quickly check that their UID and GID settings are correct by using the id command on both the Mac OS X node and the CXFS administration node, and the groups command on the administration node. For example: macosx% id uid=1113(fred) gid=999(users) groups=999(users), 20(staff) irix% id uid=1113(fred) gid=999(users) irix% groups users staff If the UID and/or GID do not match, or if the user is not a member of the same groups, then the user may unexpectedly fail to access some files. 007–4507–015 79 5: Mac OS X Platform To change the user’s UID, GID, or other groups requires changes to the NetInfo domain, whether local or distributed. Do the following: • Run the NetInfo Manager tool: Applications > Utilities > NetInfo Manager • Select the domain (if not the local domain): Domain > Open.... • Select the user in question: users > username • Modify the uid, gid, or group fields as required. Note: Changing a user’s primary UID and/or GID will also require modifying all files owned by the user to the new UID and GID. Ideally, users should be created with the correct values. Alternatively, you can change the UID and GID on the CXFS administration nodes and CXFS filesystems. Access Control Lists and Mac OS X All CXFS files have POSIX mode bits (read, write, and execute) and optionally an access control list (ACL). For more information, see the chmod and chacl man pages on a metadata server. CXFS on Mac OS X supports both enforcement of ACLs and the editing of ACLs from the Mac OS X node. 80 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Displaying ACLs To display ACLs on a Mac OS X node, use the ls -l command. For example, the + character after the file permissions indicates that there are ACLs for newfile: macosx# ls -l newfile -rw-r--r-- + 1 userA ptg 4 Jan 18 09:49 newfile To list the ACLs in detail, use the -le options (line breaks shown here for readability): macosx# ls -le newfile -rw--wxr-- + 1 userA ptg 4 Jan 18 09:49 newfile 0: user:userA allow read,write,delete,append,readattr,writeattr,readextattr,writeextattr, readsecurity,writesecurity,chown 1: user:userA deny execute 2: group:everyone deny read,readattr,readextattr,readsecurity 3: group:ptg allow read,execute,readattr,readextattr,readsecurity 4: group:ptg deny write,delete,append,writeattr,writeextattr,writesecurity,chown 5: group:everyone allow read,readattr,readextattr,readsecurity 6: group:everyone deny write,execute,delete,append,writeattr,writeextattr,writesecurity,chown Comparing POSIX ACLs with Mac OS X ACLs POSIX ACLs (used by IRIX and SGI ProPack for Linux) are very different from those available on Mac OS X. Therefore a translation occurs, which places some limitations on what can be achieved with Mac OS X ACLs. As shown in Table 5-1, POSIX supports only three types of access permissions; in contrast, Mac OS X supports many variations. This means that some granularity is lost when converting between the two systems. Table 5-1 Mac OS X Permissions Compared with POSIX Access Permissions 007–4507–015 POSIX Mac OS X Read Read data, read attributes, read extended attributes, read security Write Write data, append data, delete, delete child, write attributes, write extended attributes, write security, add file, add subdirectory, take ownership, linktarget, check immutable Execute Execute 81 5: Mac OS X Platform POSIX ACLs and the file permissions have a particular relationship that must be translated to work with Mac OS X ACLs. For example, the minimum ACL for a file on IRIX is user, group, and other, as follows: irix# ls -ldD newfile -rw-r-xr--+ 1 userA ptg 4 Jan 18 09:49 newfile [u::rw-,g::r-x,o::r--] The ACL (user, group, and other) exactly matches the file permissions. Further, any changes to the file permissions will be reflected in the ACL, and vice versa. For example: irix# chmod 167 newfile irix# ls -ldD newfile ---xrw-rwx+ 1 userA ptg 4 Jan 18 09:49 newfile [u::--x,g::rw-,o::rwx] This is slightly complicated by the mask ACL, which if it exists takes the file’s group permissions instead. For example: irix# ls -ldD newfile -rw-rwxr--+ 1 userA ptg 4 Jan 18 09:49 newfile [u::rw-,g::r-x,o::r--,m::rwx] With POSIX, it is not possible to have fewer than three ACL entries, which ensures the rules always match with the file permissions. On Mac OS X, ACLs and file permissions are treated differently. ACLs are processed first; if there is no matching rule, the file permissions are used. Further, each entry can either be an allow entry or a deny entry. Given these differences, some restrictions are enforced to allow translation between these systems. For example, the simplest possible IRIX ACL: irix# ls -ldD newfile -rw-r-xr--+ 1 userA ptg 4 Jan 18 09:49 newfile [u::rw-,g::r-x,o::r--] And the comparative Mac OS X ACL: macosx# ls -le newfile -rw-r-xr-- + 1 userA ptg 4 Jan 18 09:49 newfile 0: user:userA allow read,write,delete,append,readattr,writeattr,readextattr, writeextattr,readsecurity,writesecurity,chown 1: user:userA deny execute 2: group:ptg allow read,execute,readattr,readextattr,readsecurity 3: group:ptg deny write,delete,append,writeattr,writeextattr,writesecurity,chown 4: group:everyone allow read,readattr,readextattr,readsecurity 5: group:everyone deny write,execute,delete,append,writeattr,writeextattr,writesecurity,chown 82 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Each POSIX rule is translated into two Mac OS X rules. For example, the following user rules are equivalent: • IRIX: u::rw- • Mac OS X: 0: user:userA allow read,write,delete,append,readattr,writeattr, readextattr,writeextattr,readsecurity,writesecurity,chown 1: user:userA deny execute However, because the mask rule limits the access that can be assigned to anyone except the owner, the mask is represented by a single deny rule. For example, the following are equivalent: • IRIX: # ls -lD newfile -rw--wxr--+ 1 userA ptg 4 Jan 18 09:49 newfile [u::rw-,g::r-x,o::r--,m::-wx] • Mac OS X: macosx# ls -le newfile -rw--wxr-- + 1 userA ptg 4 Jan 18 09:49 newfile 0: user:userA allow read,write,delete,append,readattr,writeattr,readextattr, writeextattr,readsecurity,writesecurity,chown 1: user:userA deny execute 2: group:everyone deny read,readattr,readextattr,readsecurity 3: group:ptg allow read,execute,readattr,readextattr,readsecurity 4: group:ptg deny write,delete,append,writeattr,writeextattr,writesecurity,chown 5: group:everyone allow read,readattr,readextattr,readsecurity 6: group:everyone deny write,execute,delete,append,writeattr,writeextattr, writesecurity,chown The mask rule (m::-wx) is inverted into a simple deny rule (group:everyone deny read,readattr,readextattr,readsecurity). If a mask rule exists, it is always rule number 2 because it applies to everyone except for the file owner. Editing ACLs on Mac OS X To add, remove, or edit an ACL on a file or directory, use the chmod command, which allows you to change only a single rule at a time. However, it is not valid in 007–4507–015 83 5: Mac OS X Platform POSIX to have a single entry in an ACL. Therefore the basic rules are created based on the file permissions. For example (line breaks shown here for readability): macosx# ls -le newfile -rw-rw-rw1 userA ptg 0 Jan 18 15:40 newfile macosx# chmod +a "cxfs allow read,execute" newfile macosx# ls -le newfile -rw-rw-rw- + 1 userA ptg 0 Jan 18 15:40 newfile 0: user:userA allow read,write,delete,append,readattr,writeattr,readextattr, writeextattr,readsecurity,writesecurity,chown 1: user:userA deny execute 2: group:everyone deny execute 3: user:cxfs allow read,execute,readattr,readextattr,readsecurity 4: user:cxfs deny write,delete,append,writeattr,writeextattr,writesecurity,chown 5: group:ptg allow read,write,delete,append,readattr,writeattr,readextattr, writeextattr,readsecurity,writesecurity,chown 6: group:ptg deny execute 7: group:everyone allow read,write,delete,append,readattr,writeattr,readextattr, writeextattr,readsecurity,writesecurity,chown 8: group:everyone deny execute You should only ever add, modify, or remove the allow rules. The corresponding deny rule will be created, modified, or removed as necessary. The mask rule is the only deny rule that you should specify directly. For example, to remove a rule by using chmod: macosx# chmod -a# 3 newfile macosx# ls -le newfile -rw-rw-rw- + 1 userA ptg 0 Jan 18 15:40 newfile 0: user:userA allow read,write,delete,append,readattr,writeattr,readextattr, writeextattr,readsecurity,writesecurity,chown 1: user:userA deny execute 2: group:everyone deny execute 3: group:ptg allow read,write,delete,append,readattr,writeattr,readextattr, writeextattr,readsecurity,writesecurity,chown 4: group:ptg deny execute 5: group:everyone allow read,write,delete,append,readattr,writeattr,readextattr, writeextattr,readsecurity,writesecurity,chown 6: group:everyone deny execute 7: group:everyone allow read,write,delete,append,readattr,writeattr,readextattr, writeextattr,readsecurity,writesecurity,chown 84 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 8: group:everyone deny execute If you remove rules leaving only the user, group, and other rules, ACLs will be removed completely. For example: macosx# chmod -a# 2 newfile macosx# ls -le newfile -rw-rw-rw- 1 userA ptg 0 Jan 18 15:40 newfile Adding rules to an existing ACL is complicated slightly because the ordering required by CXFS is different from the order used on Mac OS X. You may see the following error: macosx# chmod +a "cxfs allow execute" newfile chmod: The specified file newfile does not have an ACL in canonical order, please specify a position with +a# : Invalid argument However, because an order will be enforced regardless of where the rule is placed, insert at any position and the rules will be sorted appropriately. For example: macosx# chmod +a# 6 "sshd allow execute" newfile macosx# ls -le newfile -rw-rw-rw- + 1 userA ptg 0 Jan 18 15:40 newfile 0: user:userA allow read,write,delete,append,readattr,writeattr,readextattr,writeextattr, readsecurity,writesecurity,chown 1: user:userA deny execute 2: group:everyone deny execute 3: user:cxfs allow execute 4: user:cxfs deny read,write,delete,append,readattr,writeattr,readextattr,writeextattr, readsecurity,writesecurity,chown 5: user:sshd allow execute 6: user:sshd deny read,write,delete,append,readattr,writeattr,readextattr,writeextattr, readsecurity,writesecurity,chown 7: group:ptg allow read,write,delete,append,readattr,writeattr,readextattr,writeextattr, readsecurity,writesecurity,chown 8: group:ptg deny execute 9: group:everyone allow read,write,delete,append,readattr,writeattr,readextattr, writeextattr,readsecurity,writesecurity,chown 10: group:everyone deny execute 007–4507–015 85 5: Mac OS X Platform You can also edit an existing rule by using chmod. Assuming the above file and permissions, you could allow the user to read files with the following command: macosx# chmod =a# 3 "cxfs allow execute,read" newfile macosx# ls -le newfile -rw-rw-rw- + 1 userA ptg 0 Jan 18 15:40 newfile 0: user:userA allow read,write,delete,append,readattr,writeattr,readextattr,writeextattr, readsecurity,writesecurity,chown 1: user:userA deny execute 2: group:everyone deny execute 3: user:cxfs allow read,execute,readattr,readextattr,readsecurity 4: user:cxfs deny write,delete,append,writeattr,writeextattr,writesecurity,chown 5: user:sshd allow execute 6: user:sshd deny read,write,delete,append,readattr,writeattr,readextattr,writeextattr, readsecurity,writesecurity,chown 7: group:ptg allow read,write,delete,append,readattr,writeattr,readextattr,writeextattr, readsecurity,writesecurity,chown 8: group:ptg deny execute 9: group:everyone allow read,write,delete,append,readattr,writeattr,readextattr, writeextattr,readsecurity,writesecurity,chown 10: group:everyone deny execute Adding a second rule for the same user or group is not permitted with POSIX ACLs. If you attempt to do this, the permissions will be merged. It is important to get the rule number correct when editing a rule. Default or Inherited ACLs on Mac OS X It is possible to define default ACLs to a directory, so that all new files or directories created below are assigned a set of ACLs automatically. The semantics are handled differently between IRIX and Mac OS X, so the functionality is limited to mimic what is available in POSIX. In POSIX, the default ACL is applied at creation time only; if the default rule subsequently changes, it is not applied to a directory’s children. The equivalent behavior on Mac OS X is achieved by the only_inherit and limit_inherit flags. For example, a default ACL might look like this on IRIX: irix# ls -dD test test [u::rwx,g::r--,o::---/u::rw-,g::rw-,o::r--,u:501:r--,m::rwx] 86 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage On Mac OS X, a default ACL might look like the following: macosx# ls -lde test drwxr----- + 2 userA ptg 78 Jan 18 15:39 test 0: user:userA allow list,add_file,search,delete,add_subdirectory,delete_child, readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown 1: user:userA deny 2: group:ptg allow list,readattr,readextattr,readsecurity 3: group:ptg deny add_file,search,delete,add_subdirectory,delete_child,writeattr, writeextattr,writesecurity,chown 4: group:everyone allow 5: group:everyone deny list,add_file,search,delete,add_subdirectory,delete_child, readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown 6: user:userA allow list,add_file,delete,add_subdirectory,delete_child,readattr, writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit, directory_inherit,only_inherit 7: user:userA deny search,file_inherit,directory_inherit,only_inherit 8: group:everyone deny file_inherit,directory_inherit,only_inherit 9: user:cxfs allow list,readattr,readextattr,readsecurity,file_inherit, directory_inherit,only_inherit 10: user:cxfs deny add_file,search,delete,add_subdirectory,delete_child,writeattr, writeextattr,writesecurity,chown,file_inherit,directory_inherit,only_inherit 11: group:ptg allow list,add_file,delete,add_subdirectory,delete_child,readattr, writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown,file_inherit, directory_inherit,only_inherit 12: group:ptg deny search,file_inherit,directory_inherit,only_inherit 13: group:everyone allow list,readattr,readextattr,readsecurity,file_inherit, directory_inherit,only_inherit 14: group:everyone deny add_file,search,delete,add_subdirectory,delete_child,writeattr, writeextattr,writesecurity,chown,file_inherit,directory_inherit,only_inherit The default rules are flagged with the inheritance flags (file_inherit,directory_inherit,only_inherit). Editing these rules is similar to editing an access rule, except the inherit flag is included. For example: macosx# mkdir newdir macosx# chmod +a "cxfs allow read,only_inherit" newdir macosx# ls -led newdir drwxr-xr-x + 2 userA ptg 6 Jan 20 11:20 newdir 0: user:userA allow list,add_file,search,delete,add_subdirectory,delete_child, readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown 1: user:userA deny 007–4507–015 87 5: Mac OS X Platform 2: group:ptg allow list,search,readattr,readextattr,readsecurity 3: group:ptg deny add_file,delete,add_subdirectory,delete_child,writeattr, writeextattr,writesecurity,chown 4: group:everyone allow list,search,readattr,readextattr,readsecurity 5: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr, writeextattr,writesecurity,chown 6: user:userA allow list,add_file,search,delete,add_subdirectory,delete_child, readattr,writeattr,readextattr,writeextattr,readsecurity,writesecurity,chown, file_inherit,directory_inherit,only_inherit 7: user:userA deny file_inherit,directory_inherit,only_inherit 8: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr, writeextattr,writesecurity,chown,file_inherit,directory_inherit,only_inherit 9: user:cxfs allow list,readattr,readextattr,readsecurity,file_inherit, directory_inherit,only_inherit 10: user:cxfs deny add_file,search,delete,add_subdirectory,delete_child,writeattr, writeextattr,writesecurity,chown,file_inherit,directory_inherit,only_inherit 11: group:ptg allow list,search,readattr,readextattr,readsecurity,file_inherit, directory_inherit,only_inherit 12: group:ptg deny add_file,delete,add_subdirectory,delete_child,writeattr, writeextattr,writesecurity,chown,file_inherit,directory_inherit,only_inherit 13: group:everyone allow list,search,readattr,readextattr,readsecurity, file_inherit,directory_inherit,only_inherit 14: group:everyone deny add_file,delete,add_subdirectory,delete_child,writeattr, writeextattr,writesecurity,chown,file_inherit,directory_inherit,only_inherit The base ACL is created if its not specified and removing the default ACL is a matter of removing rules until only the base rules are present, at which point the ACL will be removed. HBA Installation for Mac OS X CXFS for Mac OS X supports Apple Computer, Inc. host bus adapters (HBAs). Note: The procedures in this section may be performed by you or by a qualified service representative. You must be logged in as root to perform the steps listed in this section. This section discusses the following: • "Installing the Apple HBA" on page 89 88 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • "Installing the Fibre Channel Utility for Mac OS X" on page 89 • "Configuring Two or More Apple HBA Ports" on page 90 • "Using point-to-point Fabric Setting for Apple HBAs" on page 90 Installing the Apple HBA Do the following: 1. Install the Apple HBA into a spare PCI, PCI-X, or PCI Express slot in the Mac OS X node, according to the manufacturer’s instructions. Do not connect the HBA to the Fibre Channel switch at this time. Note: Apple HBAs are normally shipped with copper SFPs and copper cables, so additional optic SFPs and optic cables may be required. 2. Reboot the node. Installing the Fibre Channel Utility for Mac OS X Do the following: 1. Install the configuration utility from the CD distributed with the Apple HBA. To do this, copy Mac OS X Utilities/Fibre Channel Utility from the CD to your Application directory. 2. Run the Fibre Channel Utility after it is copied to the node. The tool will list the HBA on the left-hand side of the window. Select the Apple FC card item to display the status of the ports via a pull-down menu. Initially, each port will report that it is up (even though it is not connected to the switch), and the speed and port topology will configure automatically. 3. Connect one of the HBA ports to the switch via a Fibre Channel cable. After a few seconds, close and relaunch the Fibre Channel Utility. Select the Apple FC card item and then the connected port from the drop-down list to display the speed of the link. Repeat these steps for the second HBA port if required. 007–4507–015 89 5: Mac OS X Platform 4. (Optional) If necessary, use Apple’s /sbin/fibreconfig tool to modify port speed and topology. See the man page for details. The CXFS fabric_dump tool can also be of use in verifying Fibre Channel fabric configuration. See "CXFS Commands on Mac OS X" on page 76. Configuring Two or More Apple HBA Ports The Mac OS X node does its own path management for paths that go to the same RAID controller and thus only presents one /dev device to userspace per RAID controller. Even if multiple paths exist to a RAID controller, you will only see one /dev device. Therefore, the Fibre Channel Utility does not support masking logical units (LUNs) on specific ports. However, if the first port can see all of the LUNs, the default is that all I/O will go through a single port. To avoid this, configure the switch so that each port can see a different set of LUNs. You can achieve this by zoning the switch or by using multiple switches, with different controllers and HBA ports to each switch. Using point-to-point Fabric Setting for Apple HBAs SGI recommends that you use the manual point-to-point fabric setting rather than rely on automatic detection, which can prove unreliable after a reboot. Preinstallation Steps for Mac OS X This section provides an overview of the steps that you or a qualified Apple service representative will perform on your Mac OS X nodes prior to installing the CXFS software. It contains the following sections: • "Adding a Private Network for Mac OS X Nodes" • "Verifying the Private and Public Networks for Mac OS X" on page 92 • "Disabling Power Save Mode for Mac OS X" on page 92 90 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Adding a Private Network for Mac OS X Nodes The following procedure provides an overview of the steps required to add a private network to the Mac OS X system. A private network is required for use with CXFS. See "Use a Private Network" on page 16. You may skip some steps, depending upon the starting conditions at your site. For details about any of these steps, see the Mac OS X system documentation. 1. Install Mac OS X and configure the machine’s hostname (see "Configuring Hostnames on Mac OS X" on page 78) and IP address on its public network interface. 2. Decide if the Mac OS X node will be part of a NetInfo domain or a standalone machine. If part of a NetInfo domain, configure the node into the domain before proceeding further. 3. Add the IP addresses and hostnames of other machines in the cluster to the NetInfo database and/or the /etc/hosts file. You should be consistent about specifying the hostname or the fully qualified domain name for each host. A common convention is to name the CXFS private network address for each host as hostname-priv. 4. Install a second network interface card if necessary as per the manufacturer’s instructions. 5. Configure the second network interface by using the following menu selection: System Preferences > Network > Show Select the second network interface (most likely PCI Ethernet Slot 1), and specify the IP address, subnet mask, and router. The private network interface should not require a DNS server because the private network address of other cluster nodes should be explicitly listed in the NetInfo database and/or in the /etc/hosts file. Relying on a DNS server for private network addresses introduces another point of failure into the cluster and must be avoided. 6. Confirm the configuration using ifconfig to list the network interfaces that are up: macosx# ifconfig -u 007–4507–015 91 5: Mac OS X Platform In general, this should include en0 (the onboard Ethernet) and en1 (the additional PCI interface), but the names of these interfaces may vary. For more information, see the ifconfig man page. Verifying the Private and Public Networks for Mac OS X Verify each interface by using the ping command to connect to the public and private network addresses of the other nodes that are in the CXFS pool. For example: macosx# grep cxfsmac2 /etc/hosts 134.14.55.115 cxfsmac2 macosx# ping -c 3 134.14.55.115 PING 134.14.55.115 (134.14.55.115): 56 data bytes 64 bytes from 134.14.55.115: icmp_seq=0 ttl=64 time=0.247 ms 64 bytes from 134.14.55.115: icmp_seq=1 ttl=64 time=0.205 ms 64 bytes from 134.14.55.115: icmp_seq=2 ttl=64 time=0.197 ms --- 134.14.55.115 ping statistics --3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.197/0.216/0.247 ms Disabling Power Save Mode for Mac OS X CXFS does not support the energy-saving mode on Mac OS X. If this mode is enabled, the Mac OS X node will lose CXFS membership and unmount the CXFS filesystem whenever it is activated. Select the following to disable the energy-saving mode: System Preferences > Energy Saver > Put the computer to sleep when it is inactive for > Never 92 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Client Software Installation for Mac OS X The CXFS software will be initially installed and configured by SGI personnel. This section provides an overview of those procedures. You can use the information in this section to verify the installation. Note: CXFS software can also be installed from the command line. For more information about command line installation using the installer command, see the Mac OS X documentation. Installing the CXFS client CD for Mac OS X requires approximately 30 MB of space. To install the required software on a Mac OS X node, SGI personnel will do the following: 1. Read the release notes to learn about any late-breaking changes in the installation procedure. 2. Verify that the node is running the supported Mac OS X operating system according to the Mac OS X installation guide. Use the following command to display the currently installed system: macosx# uname -r This command should return a value of 8.4.0 or higher. 3. Insert the CXFS MultiOS Client 4.2 CD. 4. Using the Finder, open macosx/cxfs.dmg from the CD. This will launch the installation application, which will do the following: • Display the release notes • Display the license agreement and request acceptance • Force you to select the boot disk if multiple local disk partitions are installed Before starting the actual file installation, you may use the following menu selection to view the installation process in more detail: File > Show Log This information is also appended to the /var/log/cxfs_inst.log file. 007–4507–015 93 5: Mac OS X Platform 5. Restart the machine. I/O Fencing for Mac OS X I/O fencing is required on Mac OS X nodes in order to protect data integrity of the filesystems in the cluster. The cxfs_client software automatically detects the world wide port names (WWPNs) of any supported host bus adapters (HBAs) for Mac OS X nodes that are connected to a switch that is configured in the cluster database. These HBAs are available for fencing. However, if no WWPNs are detected, the following messages will be logged to the /var/log/cxfs_client file: hba_wwpn_list warning: No WWPN found from IO Registry cis_get_hbas warning: Not able to find WWN (err=Device not configured). Falling back to "/etc/fencing.conf". cis_config_swports_set error fetching hbas If no WWPNs are detected, you can manually specify the WWPNs in the fencing file. Note: This method does not work if the WWPNs are partially discovered. The /etc/fencing.conf file enumerates the WWPNs for all of the HBAs that will be used to mount a CXFS filesystem. There must be a line for the HBA WWPN as a 64-bit hexadecimal number. Note: The WWPN is that of the HBA itself, not any of the devices that are visible to that HBA in the fabric. If used, /etc/fencing.conf must contain a simple list of WWPNs, one per line. You must update it whenever the HBA configuration changes, including the replacement of an HBA. Do the following: 1. Set up the switch and HBA. See the release notes for supported hardware. 2. Follow the Fibre Channel cable on the back of the node to determine the port to which it is connected in the switch. Ports are numbered beginning with 0. (For example, if there are 8 ports, they will be numbered 0 through 7.) 94 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 3. Use the telnet command to connect to the switch and log in as user admin. (On Brocade switches, the password is password by default). 4. Execute the switchshow command to display the switches and their WWPN numbers. For example: brocade04:admin> switchshow switchName: brocade04 switchType: 2.4 switchState: Online switchRole: Principal switchDomain: 6 switchId: fffc06 switchWwn: 10:00:00:60:69:12:11:9e switchBeacon: OFF port 0: sw Online F-Port 20:00:00:01:73:00:2c:0b port 1: cu Online F-Port 21:00:00:e0:8b:02:36:49 port 2: cu Online F-Port 21:00:00:e0:8b:02:12:49 port 3: sw Online F-Port 20:00:00:01:73:00:2d:3e port 4: cu Online F-Port 21:00:00:e0:8b:02:18:96 port 5: cu Online F-Port 21:00:00:e0:8b:00:90:8e port 6: sw Online F-Port 20:00:00:01:73:00:3b:5f port 7: sw Online F-Port 20:00:00:01:73:00:33:76 port 8: sw Online F-Port 21:00:00:e0:8b:01:d2:57 port 9: sw Online F-Port 21:00:00:e0:8b:01:0c:57 port 10: sw Online F-Port 20:08:00:a0:b8:0c:13:c9 port 11: sw Online F-Port 20:0a:00:a0:b8:0c:04:5a port 12: sw Online F-Port 20:0c:00:a0:b8:0c:24:76 port 13: sw Online L-Port 1 public port 14: sw No_Light port 15: cu Online F-Port 21:00:00:e0:8b:00:42:d8 The WWPN is the hexadecimal string to the right of the port number. For example, the WWPN for port 0 is 2000000173002c0b (you must remove the colons from the WWPN reported in the switchshow output to produce the string to be used in the fencing file). 5. Edit or create /etc/fencing.conf and add the WWPN for the port determined in step 2. (Comment lines begin with #.) 007–4507–015 95 5: Mac OS X Platform For dual-ported HBAs, you must include the WWPNs of any ports that are used to access cluster disks. This may result in multiple WWPNs per HBA in the file; the numbers will probably differ by a single digit. For example, if you determined that port 0 is the port connected to the switch, your fencing file should contain the following: # WWPN of the HBA installed on this system # 2000000173002c0b 6. To configure fencing, see the CXFS Administration Guide for SGI InfiniteStorage. Start/Stop cxfs_client for Mac OS X The /Library/StartupItems/cxfs/cxfs script will be invoked automatically during normal system startup and shutdown procedures. This script starts and stops the cxfs_client daemon. To start cxfs_client manually, enter the following: macosx# sudo /Library/StartupItems/cxfs/cxfs start To stop cxfs_client manually, enter the following: macosx# sudo /Library/StartupItems/cxfs/cxfs stop To stop and start cxfs_client manually, enter the following: macosx# sudo /Library/StartupItems/cxfs/cxfs restart To prevent the automatic startup of cxfs_client on boot, move the /Library/StartupItems/cxfs directory out of /Library/StartupItems. Maintenance for Mac OS X This section contains the following: • "Upgrading the CXFS Software for Mac OS X" on page 97 • "Modifying the CXFS Software for Mac OS X" on page 97 • "Removing the CXFS Software for Mac OS X" on page 97 96 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • "Recognizing Storage Changes for Mac OS X" on page 97 Upgrading the CXFS Software for Mac OS X Before upgrading CXFS software, ensure that no applications on the node are accessing files on a CXFS filesystem. You can then run the new CXFS software package, which will automatically upgrade all CXFS software. Modifying the CXFS Software for Mac OS X You can modify the behavior of the CXFS client daemon (cxfs_client) by placing options in the /usr/cluster/bin/cxfs_client.options file. The available options are documented in the cxfs_client man page. ! Caution: Some of the options are intended to be used internally by SGI only for testing purposes and do not represent supported configurations. Consult your SGI service representative before making any changes. To see if cxfs_client is using the options in cxfs_client.options, enter the following: macosx# ps -auxwww | grep cxfs Removing the CXFS Software for Mac OS X After terminating any applications that access CXFS filesystems on the Mac OS X node, execute the following: macosx# sudo /usr/cluster/bin/uninstall-cxfs Restart the system to unload the CXFS module from the Mac OS X kernel. Recognizing Storage Changes for Mac OS X If you make changes to your storage configuration, you may have to reboot your machine because there is currently no mechanism in Mac OS X to reprobe the storage. 007–4507–015 97 5: Mac OS X Platform GRIO on Mac OS X CXFS supports guaranteed-rate I/O (GRIO) version 2 on the Mac OS X platform. Application bandwidth reservations must be explicitly released by the application before exit. If the application terminates unexpectedly or is killed, its bandwidth reservations are not automatically released and will cause a bandwidth leak. If this happens, the lost bandwidth could be recovered by rebooting the client node. For more information, see "Guaranteed-Rate I/O (GRIO) and CXFS" on page 10 and the Guaranteed-Rate I/O Version 2 Guide. XVM Failover V2 on Mac OS X Following is an example of the /etc/failover2.conf file on Mac OS X: /dev/rxvm-200400a0b80cd5fe-000 affinity=1 preferred /dev/rxvm-200500a0b80cd5fe-000 affinity=2 /dev/rxvm-200400a0b80cd5fe-001 affinity=2 /dev/rxvm-200500a0b80cd5fe-001 affinity=1 preferred The device is the node’s WWN plus the LUN number. Note: Even if multiple paths exist to a RAID controller, you will only see one /dev device. The Mac OS X node does its own path management for paths that go to the same RAID controller and thus only presents one /dev device to userspace per RAID controller. See "Configuring Two or More Apple HBA Ports" on page 90. For more information, see "XVM Failover and CXFS" on page 11, the comments in the /etc/failover2.conf file, CXFS Administration Guide for SGI InfiniteStorage, and the XVM Volume Manager Administrator’s Guide. Mapping XVM Volumes to Storage Targets on Mac OS X To map XVM volumes to storage targets on Mac OS X, do the following: 1. Get visible controller node WWNs 98 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 2. Display the desired fields: ls -1 /dev/xvm-* | cut -d’-’ -f2 | sort -u For example: macosx# ls -1 /dev/xvm-* | cut -d’-’ -f2 | sort -u 200400a0b80cd5fe 200500a0b80cd5fe You can also map XVM volumes to devices and to targets on RAID controllers using the output from the xvm command and the device entries in the filesystem. You can use the xvm command to display the device names: macosx# /usr/cluster/bin/xvm show -e -t vol vol/stripe1 0 online,open subvol/stripe1/data 2292668416 online,open stripe/stripe1 2292668416 online,open (unit size: 1024) slice/d9400_0s0 1146334816 online,open (d9400_0:/dev/rxvm-200400a0b80cd5fe-000) slice/d9400_1s0 1146334816 online,open (d9400_1:/dev/rxvm-200500a0b80cd5fe-001) These devices include the controller WWN and LUN number in their name. The CXFS fabric_dump tool can also be of use in verifying Fibre Channel fabric configuration. See "CXFS Commands on Mac OS X" on page 76. For more information, see "Verifying Access to XVM Volumes" on page 233 and the XVM Volume Manager Administrator’s Guide. Troubleshooting for Mac OS X This section discusses the following: • "The cxfs_client Daemon is Not Started on Mac OS X" on page 100 • "XVM Volume Name is Too Long on Mac OS X" on page 100 • "Large Log Files on Mac OS X" on page 100 For general troubleshooting information, see Chapter 10, "General Troubleshooting" on page 237 and Appendix D, "Error Messages" on page 263 007–4507–015 99 5: Mac OS X Platform The cxfs_client Daemon is Not Started on Mac OS X Confirm that the cxfs_client is not running. The following command would list the cxfs_client process if it were running: macosx# ps -auxww | grep cxfs_client Check the cxfs_client log file for errors. Restart cxfs_client as described in "Start/Stop cxfs_client for Mac OS X" on page 96 and watch the cxfs_client log file for errors. XVM Volume Name is Too Long on Mac OS X On Mac OS X nodes, the following error message in the system.log file indicates that the volume name is too long and must be shortened so that the Mac OS X node can recognize it: devfs: volumename name slot allocation failed (Errno=63) See "Limitations and Considerations on Mac OS X" on page 78. Large Log Files on Mac OS X The /var/log/cxfs_client log file may become quite large over a period of time if the verbosity level is increased. To manually rotate this log file, use the -z option in the /usr/cluster/bin/cxfs_client.options file. See the cxfs_client.options man page and "Log Files on Mac OS X" on page 77. Reporting Mac OS X Problems When reporting a problem about a CXFS Mac OS X node to SGI, you should run /usr/cluster/bin/cxfs_dump and send the tar.gz file that is created in the /var/cluster/cxfsdump-data/date_time directory to SGI. 100 007–4507–015 Chapter 6 SGI ProPack Client-Only Platform SGI ProPack for Linux is an overlay product that adds or enhances features in the supported Linux base distributions. This chapter discusses the following: • "CXFS on SGI ProPack Client-Only Nodes" on page 101 • "Client Software Installation for SGI ProPack Client-Only Nodes" on page 106 • "I/O Fencing for SGI ProPack Client-Only Nodes" on page 109 • "Start/Stop cxfs_client for SGI ProPack Client-Only Nodes" on page 111 • "Maintenance for SGI ProPack Client-Only Nodes" on page 111 • "XVM Failover V2 on SGI ProPack Client-Only Nodes" on page 115 • "Mapping XVM Volumes to Storage Targets on SGI ProPack" on page 115 • "Reporting SGI ProPack Client-Only Nodes Problems" on page 115 For information about SGI ProPack server-capable administration nodes, see CXFS Administration Guide for SGI InfiniteStorage. CXFS on SGI ProPack Client-Only Nodes This section discusses the following: • "Requirements for SGI ProPack Client-Only Nodes" on page 102 • "CXFS Commands on SGI ProPack Client-Only Nodes" on page 103 • "Log Files on SGI ProPack Client-Only Nodes" on page 103 • "CXFS Mount Scripts on SGI ProPack Client-Only Nodes" on page 104 • "Limitations and Considerations for SGI ProPack Client-Only Nodes" on page 104 007–4507–015 101 6: SGI ProPack Client-Only Platform Requirements for SGI ProPack Client-Only Nodes In addition to the items listed in "Requirements" on page 7, using an SGI ProPack client-only node to support CXFS requires the following: • SGI ProPack 5 SP 2 default kernel on Altix ia64 systems. Note: On SGI ProPack nodes, CXFS supports either a server-capable administration node containing the cluster administration daemons (fs2d, crsd, cad, and cmond), the CXFS control daemon (clconfd), and the cluster database or a client-only node containing the cxfs_client daemon. The software you install on a node determines the node type. For more information about using SGI ProPack 5 SP 2 as a server-capable node, see the CXFS Administration Guide for SGI InfiniteStorage. Nodes that you intend to run as metadata servers must be installed as administration nodes; all other nodes should be client-only nodes. • SGI ProPack 5 SP 1 default kernel on Altix ia64 systems. • SGI ProPack 5 default kernel on Altix ia64 systems • SGI ProPack 5 SP 2 smp kernel on Altix XE x86_64 • SGI ProPack 5 SP 1 smp kernel on Altix XE x86_64 • SGI ProPack 5 smp kernel on Altix XE x86_64 CXFS requires the hardware and software specified in the release notes: • A supported SAN hardware configuration. Note: For details about supported hardware, see the Entitlement Sheet that accompanies the release materials. Using unsupported hardware constitutes a breach of the CXFS license. • Use a network switch. (A network hub is not supported.) The switch should be at least 100baseT. • A private 100baseT or Gigabit Ethernet TCP/IP network connected to each node. Note: When using Gigabit Ethernet, do not use jumbo frames. For more information, see the tgconfig man page. 102 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • Serial lines and/or supported Fibre Channel switches. For supported switches, see the release notes. Either system reset or I/O fencing is required for all nodes. • At least one host bus adapter: – QLogic QLA2310, QLA2342, or QLA2344 – LSI Logic LSI7104XP-LC, LSI7204XP-LC, or LSI7204EP-LC Note: The LSI HBA requires the 01030600 firmware. • RAID hardware as specified in the release notes. • The XVM volume manager, which is provided with the CXFS release. • If you use I/O fencing and ipfilterd on a node, the ipfilterd configuration must allow communication between the node and the telnet port on the switch. CXFS Commands on SGI ProPack Client-Only Nodes The following commands are shipped as part of the CXFS SGI ProPack package: /usr/cluster/bin/cxfs-config /usr/cluster/bin/cxfs_client /usr/cluster/bin/cxfs_info /usr/cluster/bin/cxfscp /usr/cluster/bin/cxfsdump /usr/sbin/grioadmin /usr/sbin/grioqos /sbin/xvm The cxfs_client and xvm commands are needed to include a client-only node in a CXFS cluster. The cxfs_info command reports the current status of this node in the CXFS cluster. For more information, see the man pages. Log Files on SGI ProPack Client-Only Nodes You should monitor the /var/log/cxfs_client and /var/log/messages log files for problems. Look for a Membership delivered message to indicate that a cluster was formed. 007–4507–015 103 6: SGI ProPack Client-Only Platform The SGI ProPack platform uses the logrotate system utility to rotate the cxfs_client logs: • The /etc/logrotate.conf file specifies how often system logs are rotated • The /etc/logrotate.d/cxfs_client file specifies the manner in which cxfs_client logs are rotated CXFS Mount Scripts on SGI ProPack Client-Only Nodes SGI ProPack supports the CXFS mount scripts. See "CXFS Mount Scripts" on page 6 and the CXFS Administration Guide for SGI InfiniteStorage. Limitations and Considerations for SGI ProPack Client-Only Nodes The following sections highlight limitations and considerations for SGI ProPack nodes. Limitations and Considerations for Any SGI ProPack Node The following limitations and considerations apply to any SGI ProPack node (client-only or server-capable): • By default, DMAPI is turned off on SGI ProPack 5 systems. When you install DMF on a server-capable node, it automatically enables DMAPI. However, if you want to mount filesystems on an SGI ProPack 5 client-only node with the dmi mount option, you must ensure that the DMAPI_PROBE system tunable parameter on the node is set to yes in the /etc/sysconfig/sysctl file. Changes to the file will be processed on the next reboot. After setting that system configuration file, you can immediately enable DMAPI by executing the following: sysctl -w fs.xfs.probe_dmapi=1 If you run a DMAPI application other than DMF, you must also change parameter on the SGI ProPack 5 server-capable nodes. • On SGI ProPack systems, the mkfs.xfs command does not discover log or realtime subvolumes. You must specify the log or realtime subvolumes on the command line. For more information, see the mkfs.xfs(8) man page. • GPT partition tables, often created by operating system installers or the parted partitioning tool, store labels in two locations. If you reuse a disk that previously had a GPT label, you must be careful; using tools such as fdisk to repartition the 104 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage drive will not eliminate the backup GPT label. When you reboot, EFI scans the disks before the operating system is started. It assumes any backup labels it finds are valid and restores them. This can corrupt or destroy filesystems. You can use the parted tool to detect this situation and fix it. Note: The parted tool has a mkpartsect command that accepts start and end values for partitions being created in sectors rather than MB. For more information, see the XVM Volume Manager Administrator’s Guide and http://support.sgi.com/content_request/838562/index.html on Supportfolio. • CXFS filesystems with XFS version 1 directory format cannot be mounted on SGI ProPack nodes. • Whenever you install a new kernel patch, you must also install the corresponding CXFS package. This is required because the kernel patch causes the kernel version number to be increased. Failure to install the corresponding CXFS package will result in the inability to run CXFS. To obtain the required CXFS package, see your SGI support contact. • After upgrading CXFS, you should reboot the system in order to make the new updates to take effect. A reboot is not required if you are performing a fresh installation. • The implementation of file creates using O_EXCL is not complete. Multiple applications running on the same node using O_EXCL creates as a synchronization mechanism will see the expected behavior (only one of the creates will succeed). However, applications running between nodes may not get the O_EXCL behavior they requested (creates of the same file from two or more separate nodes may all succeed). Limitations and Considerations for SGI ProPack Client-Only Nodes On systems running SUSE Linux Enterprise Server 10 (SLES 10) that are greater than 64 CPUs, there are issues with using the md driver and CXFS. The md driver holds the BKL (Big Kernel Lock), which is a single, system-wide spin lock. Attempting to acquire this lock can add substantial latency to a driver’s operation, which in turn holds off other processes such as CXFS. The delay causes CXFS to lose membership. This problem has been observed specifically when an md pair RAID split is done, such as the following: raidsetfaulty /dev/md1 /dev/path/to/partition 007–4507–015 105 6: SGI ProPack Client-Only Platform Client Software Installation for SGI ProPack Client-Only Nodes The CXFS client-only software will be initially installed and configured by SGI personnel. This section provides an overview of those procedures. You can use the information in this section to verify the installation. Note: Package version numbers shown here are examples; your installed system may differ. This section covers the following: • "SGI ProPack Client-Only Installation Overview" on page 106 • "Installing the Performance Co-Pilot Agent" on page 108 • "Verifying the SGI ProPack Client-Only Installation" on page 109 SGI ProPack Client-Only Installation Overview Installing the CXFS client CD for SGI ProPack requires approximately 50–200 MB of space, depending upon the packages installed at your site. To install the required software on an SGI ProPack client-only node, SGI personnel will do the following: 1. Read the release notes to learn about any late-breaking changes in the installation procedure. 2. Install the SGI ProPack release, according to the directions in the SGI ProPack documentation. Ensure that you select the SGI Licensed package group. You must install the pcp-open package from the SGI ProPack release. Note: When installing the Linux OS, disconnect the system from the fabric or ensure that the drive you are installing on is not a SAN-attached drive. 3. Install any required patches. See the SGI ProPack releasenotes/README file for more information. ! 106 Caution: You must update the operating system with all security fixes, bug fixes, and enhancements available from the operating system vendor. 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 4. Verify that the node is running the supported Linux distribution and SGI ProPack overlay, according to the CXFS for SGI ProPack release notes. See the /etc/SuSE-release and /etc/sgi-release files. 5. If you have previously installed XVM in standalone mode, remove any remaining sgi-xvm-standalone package. To find and remove the package: [root@linux CXFS_CDROM]# rpm -e --allmatches ‘rpm -qa | grep xvm-standalone‘ If installing on an SGI ProPack 5 client, you may also need to remove weak-updates links from the sgi-xvm-standalone RPM. If you are running the 2.6.16.21-0.25 kernel, you would do the following: [root@linux CXFS_CDROM]# rm -rf /lib/modules/2.6.16.21-0.25-default/weak-updates/os_lib [root@linux CXFS_CDROM]# rm -rf /lib/modules/2.6.16.21-0.25-default/weak-updates/xvm 6. Insert and mount the CXFS MultiOS Client 4.2 CD. 7. Install the CXFS kernel modules: Note: This procedure uses the rpm -U option to update RPMs, which works for an initial installation as well as updates. For an initial installation, you could also use -i. [root@linux cdrom]# rpm -Uvh sgi-cxfs-kmp-kernelvariant-kernelrelease-version.architecture.rpm Preparing... ########################################### [100%] 1:sgi-cxfs-kmp-kernelvariant-########################################### [100%] Where: • kernelvariant and kernelrelease are the kernel variant and release level as output by the uname -r command • version is the version number • architecture is the processor architecture type Note: For SGI ProPack 4, the kernelrelease must match the stock kernel release provided by SUSE. For SGI ProPack 5 running SLES 10, one version of CXFS may support one or more kernelrelease values. See the CXFS SGI ProPack release notes for the supported versions. 007–4507–015 107 6: SGI ProPack Client-Only Platform 8. Install the user-space packages: [root@linux cdrom]# rpm -Uvh cxfs_client* cxfs_util* cxfs-xvm-cmds* cxfs-doc* Preparing... ########################################### [100%] 1:cxfs-xvm-cmds ########################################### [ 25%] boot.xvm 0:off 1:off 2:off 3:off 4:off 5:off 6:off 2:cxfs_util ########################################### [ 50%] 3:cxfs_client ########################################### [ 75%] cxfs_client 0:off 1:off 2:off 3:on 4:off 5:on 6:off 4:cxfs-doc ########################################### [100%] boot.xvm 0:off 1:off 2:off 3:off 4:off 5:off 6:off Note: The order of RPMs listed on the command line is not necessarily the same order in which they will be displayed in the rpm command output. 9. If you are using GRIO, install the grio2-cmds package: [root@linux cdrom]# rpm Preparing... 1:grio2-cmds -Uvh grio2-cmds* ###########################################[100%] ###########################################[100%] 10. Edit the /etc/cluster/config/cxfs_client.options file as necessary. See "Modifying the CXFS Software for SGI ProPack" on page 112 and the cxfs_client(1M) man page. 11. Reboot the system with the newly installed kernel: [root@linux cdrom]# reboot 12. Modify updatedb behavior so that it avoids CXFS filesystems. ! Caution: If XVM standalone was in use prior to CXFS installation, you must reboot the system before starting CXFS services to ensure that the new xvm modules are loaded. Installing the Performance Co-Pilot Agent The cxfs_utils package includes a Performance Co-Pilot (PCP) agent for monitoring CXFS heartbeat, CMS status and other statistics. If you want to use this feature, you must also install the following PCP packages: 108 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage pcp-open pcp-sgi These packages and are included on the first and second SGI ProPack CDs (respectively). You can obtain the open source PCP package from ftp://oss.sgi.com/projects/pcp/download Verifying the SGI ProPack Client-Only Installation To verify that the CXFS software has been installed properly, use the rpm -q command to query the packages. To verify the SGI ProPack release, display the /etc/sgi-release file. I/O Fencing for SGI ProPack Client-Only Nodes On the SGI ProPack platform, the cxfs_client software automatically detects the world wide port names (WWPNs) of any supported host bus adapters (HBAs) in the system that are connected to a switch that is configured in the cluster database. These HBAs will then be available for fencing. However, if no WWPNs are detected, there will be messages logged to the /var/log/cxfs_client file. If no WWPNs are detected, you can manually specify the WWPNs in the /etc/fencing.conf fencing file. Note: This method does not work if the WWPNs are partially discovered. The /etc/fencing.conf file enumerates the WWPN for all of the HBAs that will be used to mount a CXFS filesystem. There must be a line for the HBA WWPN as a 64-bit hexadecimal number. Note: The WWPN is that of the HBA itself, not any of the devices that are visible to that HBA in the fabric. If used, /etc/fencing.conf must contain a simple list of WWPNs, one per line. You must update it whenever the HBA configuration changes, including the replacement of an HBA. 007–4507–015 109 6: SGI ProPack Client-Only Platform Do the following: 1. Set up the switch and HBA. See the release notes for supported hardware. 2. Determine the HBA WWPN: Follow the Fibre Channel cable on the back of the node to determine the port to which it is connected in the switch. Ports are numbered beginning with 0. (For example, if there are 8 ports, they will be numbered 0 through 7.) 3. Use the telnet command to connect to the switch and log in as user admin. (On Brocade switches, the password is password by default). 4. Execute the switchshow command to display the switches and their WWPN numbers. For example: brocade04:admin> switchshow switchName: brocade04 switchType: 2.4 switchState: Online switchRole: Principal switchDomain: 6 switchId: fffc06 switchWwn: 10:00:00:60:69:12:11:9e switchBeacon: OFF port 0: sw Online F-Port 20:00:00:01:73:00:2c:0b port 1: cu Online F-Port 21:00:00:e0:8b:02:36:49 port 2: cu Online F-Port 21:00:00:e0:8b:02:12:49 port 3: sw Online F-Port 20:00:00:01:73:00:2d:3e port 4: cu Online F-Port 21:00:00:e0:8b:02:18:96 port 5: cu Online F-Port 21:00:00:e0:8b:00:90:8e port 6: sw Online F-Port 20:00:00:01:73:00:3b:5f port 7: sw Online F-Port 20:00:00:01:73:00:33:76 port 8: sw Online F-Port 21:00:00:e0:8b:01:d2:57 port 9: sw Online F-Port 21:00:00:e0:8b:01:0c:57 port 10: sw Online F-Port 20:08:00:a0:b8:0c:13:c9 port 11: sw Online F-Port 20:0a:00:a0:b8:0c:04:5a port 12: sw Online F-Port 20:0c:00:a0:b8:0c:24:76 port 13: sw Online L-Port 1 public port 14: sw No_Light port 15: cu Online F-Port 21:00:00:e0:8b:00:42:d8 110 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage The WWPN is the hexadecimal string to the right of the port number. For example, the WWPN for port 0 is 2000000173002c0b (you must remove the colons from the WWPN reported in the switchshow output to produce the string to be used in the fencing file). 5. Edit or create /etc/fencing.conf and add the WWPN for the port determined in step 2. (Comment lines begin with #.) For dual-ported HBAs, you must include the WWPNs of any ports that are used to access cluster disks. This may result in multiple WWPNs per HBA in the file; the numbers will probably differ by a single digit. For example, if you determined that port 0 is the port connected to the switch, your fencing file should contain the following: # WWPN of the HBA installed on this system # 2000000173002c0b 6. To configure fencing, see the CXFS Administration Guide for SGI InfiniteStorage. Start/Stop cxfs_client for SGI ProPack Client-Only Nodes The /etc/init.d/cxfs_cluster script will be invoked automatically during normal system startup and shutdown procedures. This script starts and stops the cxfs_client daemon. • To start cxfs_client manually, enter the following: # /etc/init.d/cxfs_client start Loading cxfs modules: Mounting devfs filesystems: Starting cxfs client: [ [ [ OK OK OK ] ] ] To stop CXFS processes manually, enter the following command: # /etc/init.d/cxfs_client stop Stopping cxfs client: [ OK ] Maintenance for SGI ProPack Client-Only Nodes This section discusses the following: 007–4507–015 111 6: SGI ProPack Client-Only Platform • "Modifying the CXFS Software for SGI ProPack" on page 112 • "Recognizing Storage Changes for SGI ProPack" on page 112 Modifying the CXFS Software for SGI ProPack You can modify the CXFS client daemon (/usr/cluster/bin/cxfs_client) by placing options in the cxfs_client.options file: /etc/cluster/config/cxfs_client.options The available options are documented in the cxfs_client man page. ! Caution: Some of the options are intended to be used internally by SGI only for testing purposes and do not represent supported configurations. Consult your SGI service representative before making any changes. For example, to see if cxfs_client is using the options in cxfs_client.options, enter the following: propack# ps -ax | grep cxfs_client 3612 ? S 0:00 /usr/cluster/bin/cxfs_client -i cxfs3-5 3841 pts/0 S 0:00 grep cxfs_client Recognizing Storage Changes for SGI ProPack When cxfs_client needs to rescan disk buses, it executes the /var/cluster/cxfs_client-scripts/cxfs-reprobe script. This requires the use of parameters in SGI ProPack due to limitations in the Linux SCSI layer. You can export these parameters from the /etc/cluster/config/cxfs_client.options file. The script detects the presence of the SCSI and/or XSCSI layers on the system and defaults to probing whichever layers are detected. You can override this decision by setting CXFS_PROBE_SCSI and/or CXFS_PROBE_XSCSI to either 0 (to disable the probe) or 1 (to force the probe) on the appropriate bus. When an XSCSI scan is performed, all buses are scanned by default. You can override this decision by specifying a space-separated list of buses in 112 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage CXFS_PROBE_XSCSI_BUSES. (If you include space, you must enclose the list within single quotation marks.) For example, for SGI ProPack 4: export CXFS_PROBE_XSCSI_BUSES=’/dev/xscsi/pci01.03.0-1/bus /dev/xscsi/pci02.01.0-2/bus’ For SGI ProPack 5: export CXFS_PROBE_XSCSI_BUSES=’/dev/xscsi/pci0001:00:03.0-1/bus /dev/xscsi/pci0002:00:01.0-2/bus’ When a SCSI scan is performed, a fixed range of buses/channels/IDs and LUNs are scanned; these ranges may need to be changed to ensure that all devices are found. The ranges can also be reduced to increase scanning speed if a smaller space is sufficient. The following summarizes the environment variables (separate multiple values by white space and enclose withing single quotation marks): CXFS_PROBE_SCSI=0|1 Stops (0) or forces (1) a SCSI probe. Default: 1 if SCSI CXFS_PROBE_SCSI_BUSES=BusList Scans the buses listed. Default: 0 1 2 CXFS_PROBE_SCSI_CHANNELS=ChannelList Scans the channels listed. Default: 0 CXFS_PROBE_SCSI_IDS=IDList Scans the IDS listed. Default: 0 1 2 3 CXFS_PROBE_SCSI_LUNS=LunList Scans the LUNs listed. Default: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 CXFS_PROBE_XSCSI=0|1 Stops (1) or forces (1) an XSCSI probe. Default: 1 if XSCSI CXFS_PROBE_XSCSI_BUSES=BusList Scans the buses listed. Default: all XSCSI buses For example, the following would only scan the first two SCSI buses: export CXFS_PROBE_SCSI_BUSES=’0 1’ 007–4507–015 113 6: SGI ProPack Client-Only Platform The following would scan 16 LUNs on each bus, channel, and ID combination (all on one line): export CXFS_PROBE_SCSI_LUNS=’0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15’ Other options within the /etc/cluster/config/cxfs_client.options file begin with a - character. Following is an example cxfs_client.options file: # Example cxfs_client.options file # -Dnormal -serror export CXFS_PROBE_SCSI_BUSSES=1 export CXFS_PROBE_SCSI_LUNS=’0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20’ Note: The - character or the term export must start in the first position of each line in the cxfs_client.options file; otherwise, they are ignored by the /etc/init.d/cxfs_client script. GRIO on SGI ProPack Client-Only Nodes CXFS supports guaranteed-rate I/O (GRIO) version 2 on the SGI ProPack client-only platform. GRIO is disabled by default on SGI ProPack. To enable GRIO, change the following line in /etc/cluster/config/cxfs_client.options from: export GRIO2=off to: export GRIO2=on Application bandwidth reservations must be explicitly released by the application before exit. If the application terminates unexpectedly or is killed, its bandwidth reservations are not automatically released and will cause a bandwidth leak. If this happens, the lost bandwidth could be recovered by rebooting the client node. An SGI ProPack client-only node can mount a GRIO-managed filesystem and supports application- and node-level reservations. An SGI ProPack client-only node client will interoperate with the dynamic bandwidth allocator for all I/O outside of any reservation. 114 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage For more information, see "Guaranteed-Rate I/O (GRIO) and CXFS" on page 10 and the Guaranteed-Rate I/O Version 2 Guide. XVM Failover V2 on SGI ProPack Client-Only Nodes Following is an example of the /etc/failover2.conf file on SGI ProPack: /dev/xscsi/pci0004:00:01.1/node200900a0b813b982/port1/lun4/disc, /dev/xscsi/pci0004:00:01.1/node200900a0b813b982/port2/lun4/disc, /dev/xscsi/pci0004:00:01.0/node200900a0b813b982/port1/lun4/disc, /dev/xscsi/pci0004:00:01.0/node200900a0b813b982/port2/lun4/disc, /dev/xscsi/pci0004:00:01.1/node200800a0b813b982/port1/lun4/disc, /dev/xscsi/pci0004:00:01.1/node200800a0b813b982/port2/lun4/disc, /dev/xscsi/pci0004:00:01.0/node200800a0b813b982/port1/lun4/disc, /dev/xscsi/pci0004:00:01.0/node200800a0b813b982/port2/lun4/disc, affinity=1 affinity=2 affinity=1 affinity=2 affinity=4 affinity=3 preferred affinity=4 affinity=3 For more information, see "XVM Failover and CXFS" on page 11, the comments in the /etc/failover2.conf.example file, CXFS Administration Guide for SGI InfiniteStorage, and the XVM Volume Manager Administrator’s Guide. Mapping XVM Volumes to Storage Targets on SGI ProPack You can use the cxfs-enumerate-wwns script to map XVM volumes to storage targets (assuming that CXFS software is installed.) # /var/cluster/cxfs_client-scripts/cxfs-enumerate-wwns | grep -v "#"| sort -u Reporting SGI ProPack Client-Only Nodes Problems Retain the following information for SGI ProPack nodes: • The kernel you are running: [root@linux root]# uname -a • The CXFS packages you are running: [root@linux root]# rpm -q cxfs_client sgi-cxfs-kmp cxfs_utils cxfs-xvm-cmds 007–4507–015 115 6: SGI ProPack Client-Only Platform • The number and types of processors in your machine: [root@linux root]# cat /proc/cpuinfo • The hardware installed on your machine: [root@linux root]# /sbin/lspci • Modules that are loaded on your machine: [root@linux root]# /sbin/lsmod • The /var/log/cxfs_client log file • Any messages that appeared in the system logs immediately before the system exhibited the problem. • Output about the cluster obtained from the cxfsdump utility run on an administration node. • After a system kernel panic, the debugger information from the KDB built-in kernel debugger. • Fibre Channel HBA World Wide name mapping: cat /sys/class/fc_transport/bus_ID/node_name For example: cat /sys/class/fc_transport/11:0:0:0/node_name The bus_ID value is the output of hwinfo --disk in the SysFS BusID field. 116 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • Output from the following commands: – Information from the following files: /var/log/messages /var/log/cxfs_client /etc/failover.conf /etc/failover2.conf /etc/hosts /proc/discontig (for client-only nodes) (for XVM failover version 1) (for XVM failover version 2) – Output from the following commands: /usr/cluster/bin/cdbutil gettree ’#’ /usr/bin/hinv /usr/bin/topology /sbin/xvm show -v phys /sbin/xvm show -top -v vol /bin/netstat -ia 007–4507–015 117 Chapter 7 Solaris Platform CXFS supports a client-only node running the Solaris operating system. This chapter contains the following sections: • "CXFS on Solaris" on page 119 • "HBA Installation for Solaris" on page 125 • "Preinstallation Steps for Solaris" on page 128 • "Client Software Installation for Solaris" on page 134 • "I/O Fencing for Solaris" on page 136 • "Start/Stop cxfs_client for Solaris" on page 138 • "Maintenance for Solaris" on page 138 • "GRIO on Solaris" on page 140 • "XVM Failover V2 on Solaris" on page 140 • "Mapping XVM Volumes to Storage Targets on Solaris" on page 141 • "Troubleshooting for Solaris" on page 142 • "Reporting Solaris Problems" on page 145 CXFS on Solaris This section contains the following information about CXFS on Solaris: • "Requirements for Solaris" on page 120 • "CXFS Commands on Solaris" on page 121 • "Log Files on Solaris" on page 122 • "CXFS Mount Scripts on Solaris" on page 122 • "Limitations and Considerations on Solaris" on page 122 007–4507–015 119 7: Solaris Platform • "Access Control Lists and Solaris" on page 123 • "maxphys System Tunable for Solaris" on page 124 Requirements for Solaris In addition to the items listed in "Requirements" on page 7, using a Solaris node to support CXFS requires the following: • Solaris operating system: – Solaris 10 January 06 (patch 118822-25) ! Caution: This release of CXFS Solaris only supports the January 06 release (patch 118822-25) of Solaris 10. All other releases of Solaris 10 are not supported and may cause system instabilities when used with CXFS. • The following supported Fibre Channel HBAs: Note: You can use only one vendor for HBA (LSI Logic or QLogic). You cannot mix HBA vendors. – LSI Logic models using the 01030600 firmware or newer: LSI7102XP LSI7202XP LSI7402XP LSI7104XP LSI7204XP LSI7404XP 120 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage – QLogic models sold by Sun Microsystems and running with the driver supplied by Sun: Note: If you have a Qlogic HBA, your system will only access disks with GPT labels. For more information about GPT labels and CXFS, see the CXFS Administration Guide for SGI InfiniteStorage. SG-XPCI1FC-QL2 (single-port 2 Gb) SG-XPCI2FC-QF2-Z (dual-port 2 Gb) Note: CXFS does not automatically detect WWPNs for LSI HBAs or QLogic HBAs. See "I/O Fencing for Solaris" on page 136. • Any system based on UltraSPARC III, IIIi, or IV with a spare 66-MHz (or faster) PCI slot for a Fibre Channel HBA and a spare 100-Mb/s (or faster) ethernet port for the CXFS private network. Note: CXFS supports a Solaris client only on the SPARC platform. It is not supported on other hardware platforms. For additional latest information, see the CXFS Solaris release notes. CXFS Commands on Solaris The following commands are shipped as part of the CXFS Solaris package: /usr/cxfs_cluster/bin/cxfs_client /usr/cxfs_cluster/bin/cxfs_info /usr/cxfs_cluster/bin/cxfsdump /usr/sbin/grioadmin /usr/sbin/griomon /usr/sbin/grioqos /usr/cxfs_cluster/bin/xvm The cxfs_client and xvm commands are needed to include a client-only node in a CXFS cluster. The cxfs_info command reports the current status of this node in the CXFS cluster. 007–4507–015 121 7: Solaris Platform The pkgadd output lists all software added; see "Solaris Installation Overview" on page 134. For more information, see the man pages. For information about the GRIO commands, see "Guaranteed-Rate I/O (GRIO) and CXFS" on page 10 and "GRIO on Solaris" on page 140. Log Files on Solaris The cxfs_client command creates a /var/log/cxfs_client log file. To rotate this log file, use the -z option in the /usr/cxfs_cluster/bin/cxfs_client.options file; see the cxfs_client man page for details. For information about the log files created on CXFS administration nodes, see the CXFS Administration Guide for SGI InfiniteStorage. CXFS Mount Scripts on Solaris Solaris supports the CXFS mount scripts. See "CXFS Mount Scripts" on page 6 and the CXFS Administration Guide for SGI InfiniteStorage. Limitations and Considerations on Solaris Note the following: • IRIX nodes do not permit nested mount points on CXFS filesystems; that is, you cannot mount an IRIX XFS or CXFS filesystem on top of an existing CXFS filesystem. Although it is possible to mount a UFS or NFS filesystem on top of a Solaris CXFS filesystem, this is not recommended. • After a crash, attempts to reclaim locks and commit asynchronous writes to a CXFS filesystem from an NFS client may result in a stale file handle. • For optimal performance, you should set the value of the Solaris system tunable parameter maxphys in the /etc/system file. See "maxphys System Tunable for Solaris" on page 124. • All disk devices attached to LSI Logic HBAs must be for use only by CXFS disks; do not attach non-disk devices to any Fibre Channel HBA that is configured for 122 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage CXFS use. This restriction is required because all disk devices on these HBAs (configured for CXFS) make use of the whole disk volume, which must be conveyed to Solaris via modification in the HBA driver to the value returned by the READ_CAPACITY SCSI command. • CXFS does not automatically detect WWPNs for LSI HBAs. See "I/O Fencing for Solaris" on page 136 for instructions to set up a fencing configuration. • The xvm command displays duplicate entries of physvols. The number of duplicate entries correspond to the devices for each LUN. See also Appendix B, "Filesystem and Logical Unit Specifications" on page 253. Access Control Lists and Solaris All CXFS files have UNIX mode bits (read, write, and execute) and optionally an access control list (ACL). For more information, see the chmod and setfacl man pages. If you restore a CXFS file that had an ACL containing only owner-ACL entries (that is, owner/group/other/mask) from a Solaris node, upon restoration one of the following will happen: • When using tar(1), cpio(1), and Legato Networker: The ACL will be lost because these tools behave "intelligently" by not calling acl to set an ACL if the file has only owner/group/other/mask entries. These tools will only set the file mode. However, this does not present a change in functionality because an access permissions check on the mode and the ACL containing only owner entries will give the same result. • When using other backup/restore utilities: A mask will be added to the ACL if the application calls acl for every file. A backup/restore utility that calls acl to set an ACL for every file will result in a file being restored with four ACL entries (that is, owner/group/other/mask), even though it may have originally had only three (that is, owner/group/other). This is due to a requirement in getfacl that it receive four ACL entries for the GETACL command to acl. (If fewer than four entries are returned, getfacl will report an error). 007–4507–015 123 7: Solaris Platform Note: Normally, Solaris filesystem ACLs can have up to 1024 entries for a file and a directory can have 1024 entries as well as an additional 1024 entries for the default ACL. However, CXFS filesystems on Solaris nodes in a multiOS cluster must maintain compatibility with the metadata server. The CXFS filesystems on a Solaris node are limited to a maximum of 25 ACL entries for a file and a maximum total of 50 for a directory (that is, the directory ACL plus the default ACL). When using the ls command to display access permissions for a file with an ACL, the mode reported for a CXFS file follows IRIX semantics instead of Solaris/UFS semantics. On Solaris, a UFS file mode reports the group permission as the intersection of the GROUP and MASK entries in the ACL. If the GROUP entry is r-x and the MASK entry is rw-, the group permission will be reported as r--. The IRIX model calls for reporting the ACL MASK for the group permission in the mode. Therefore, using the example above, the group permission will be reported as rw-. Although it appears that the group has write permission, it does not and an attempt to write to the file will be rejected. You can obtain the real (that is, effective) group permission by using the Solaris getfacl command. maxphys System Tunable for Solaris For optimal performance, you should set the value of the Solaris system tunable parameter maxphys in the /etc/system file. Do the following: 1. Make a backup copy of the /etc/system file. Note: Exercise extreme caution in changing /etc/system and always make a backup copy. 2. Change the value of maxphys to 0x800000 (hexadecimal) by adding the following to /etc/system: set maxphys=0x800000 3. Reboot the Solaris node. This causes the change to take effect. 124 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 4. Verify that the new value for maxphys is in effect by running the following command: solaris# echo "maxphys/X" | adb -k physmem 1f03f maxphys: maxphys: 800000 HBA Installation for Solaris The QLogic driver is provided with Solaris 10. The remainder of this section discusses the following: • "Installing the LSI Logic HBA" on page 125 • "Verifying the HBA Installation" on page 126 These procedures may be performed by you or by a qualified Sun service representative. You must be logged in as root to perform the steps listed in this section. Installing the LSI Logic HBA To install the LSI Logic HBA, perform the following steps. Additional details are provided in the Fibre Channel to PCI-X Host Adapters User’s Guide. 1. Install the LSI Logic HBA into the Solaris system. See the chapter "Installing the Host Adapter" from the Fibre Channel to PCI-X Host Adapters User’s Guide. 2. Bring the system back up. 3. Install the LSI Logic HBA driver software (ITImpt, version 5.07.00 or later) according to the instructions in the driver’s readme file. Do the following: a. Retrieve the driver package from the following LSI Logic website: http://www.lsi.com/cm/DownloadSearch.do?locale=EN b. Install the driver package: solaris# unzip itmpt-5.07.00.zip solaris# uncompress itmpt_install.tar.Z 007–4507–015 125 7: Solaris Platform solaris# tar -xvf itmpt_install.tar solaris# cd install solaris# pkgadd -d . c. Install the lsi utilities package: solaris# solaris# solaris# solaris# uncompress lsiutils_v60.tar.Z tar -xvf lsiutils_v60.tar cd install pkgadd -d . 4. For each target/LUN pair to be used by the LSI Logic HBA, use the lsiprobe utility to add entries to /kernel/drv/ssd.conf. For example, to add entries for targets 0 through 5 (inclusive), with each of those targets scanning LUNs 0, 2, 4, 5, and 6: solaris# lsiprobe -a target 0-5 lun 0,2,4-6 Note: If you modify /kernel/drv/ssd.conf, you must reboot the system (as in step 5) in order for changes to take effect. 5. Reboot the Solaris node: solaris# init 6 6. After the system has rebooted, verify that the driver attached correctly to the HBA by following the steps "Verifying the HBA Installation" on page 126. Do not proceed until the verification succeeds. Verifying the HBA Installation After the system reboots, you should verify that the devices were correctly configured by running the Solaris format command. You should see a list of each device you selected. 126 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage For example: solaris# format Searching for disks...done c2t200400A0B80C268Cd1: configured with capacity of 67.75GB c2t200400A0B80C268Cd3: configured with capacity of 136.64GB AVAILABLE 0. 1. 2. 3. DISK SELECTIONS: c0t0d0 /pci@1c,600000/scsi@2/sd@0,0 c0t1d0 /pci@1c,600000/scsi@2/sd@1,0 c2t200400A0B80C268Cd1 /pci@1d,700000/SUNW,qlc@1/fp@0,0/ssd@w200400a0b80c268c,1 c2t200400A0B80C268Cd3 /pci@1d,700000/SUNW,qlc@1/fp@0,0/ssd@w200400a0b80c268c,3 Specify disk (enter its number): In this example, disks 2 and 3 are being addressed by the QLogic driver, as indicated by the presence of SUNW,qlc@1 in the pathname. You can also use the luxadm command to view the status of the HBA: solaris# luxadm -e port /devices/pci@1d,700000/SUNW,qlc@1/fp@0,0:devctl /devices/pci@1d,700000/SUNW,qlc@1,1/fp@0,0:devctl CONNECTED NOT CONNECTED solaris# luxadm probe No Network Array enclosures found in /dev/es Found Fibre Channel device(s): Node WWN:200400a0b80c268b Device Type:Disk device Logical Path:/dev/rdsk/c2t200400A0B80C268Cd1s2 Node WWN:200400a0b80c268b Device Type:Disk device Logical Path:/dev/rdsk/c2t200400A0B80C268Cd3s2 The system log and console display may display warning messages similar to the following: WARNING: /pci@1d,700000/SUNW,qlc@1/fp@0,0/ssd@w200400a0b80c268c,3 (ssd0): Corrupt label; wrong magic number WARNING: /pci@1d,700000/SUNW,qlc@1/fp@0,0/ssd@w200400a0b80c268c,1 (ssd1): Corrupt label; wrong magic number 007–4507–015 127 7: Solaris Platform For QLogic HBA, these messages means that the disk has a bad label or a DVH label, which is not supported. (QLogic HBAs support only GPT labels.) Similar messages for an LSI Logic HBA will appear on boot for LUNs that have DVH labels. When the XVM module is loaded or started, it installs hooks into the HBA driver and automatically translates the DVH labels into SUN labels (you should not try to relabel the disks with the format command); after XVM translates the labels, you will not see these error messages. Note: You can also use the lsiutil command to determine the number of LSI HBAs installed, the model numbers, and firmware versions. If you are having trouble with the verification steps, see "New Storage is Not Recognized on Solaris" on page 144. Preinstallation Steps for Solaris This section provides an overview of the steps that you or a qualified Sun service representative will perform on your Solaris nodes prior to installing the CXFS software. It contains the following sections: • "Adding a Private Network for Solaris Nodes" on page 128 • "Verifying the Private and Public Networks for Solaris" on page 133 Adding a Private Network for Solaris Nodes The following procedure provides an overview of the steps required to add a private network to the Solaris system. A private network is required for use with CXFS. See "Use a Private Network" on page 16. You may skip some steps, depending upon the starting conditions at your site. For details about any of these steps, see the Solaris documentation. 1. If your system is already operational and on the network, skip to step 2. If your Solaris system has never been set up, bring the system to single-user mode. For example, go to the PROM prompt and boot the Solaris node into single-user mode: > boot -s 128 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage As a last resort, you can reach the PROM prompt by pressing the L1-A (or Stop-A) key sequence. 2. Edit the /etc/inet/ipnodes file so that it contains entries for each node in the cluster and its private interfaces. The /etc/inet/ipnodes file has the following format, where primary_hostname can be the simple hostname or the fully qualified domain name: IP_address primary_hostname aliases You should be consistent when using fully qualified domain names in the /etc/inet/ipnodes file. If you use fully qualified domain names on a particular node, then all of the nodes in the cluster should use the fully qualified name of that node when defining the IP/hostname information for that node in their /etc/inet/ipnodes file. The decision to use fully qualified domain names is usually a matter of how the clients (such as NFS) are going to resolve names for their client server programs, how their default resolution is done, and so on. Even if you are using the domain name service (DNS) or the network information service (NIS), you must add every IP address and hostname for the nodes to /etc/inet/ipnodes on all nodes. For example: 190.0.2.1 190.0.2.3 190.0.3.1 190.0.2.2 190.0.2.4 190.0.3.2 server1.company.com server1 stocks priv-server1 server2.company.com server2 bonds priv-server2 You should then add all of these IP addresses to /etc/inet/ipnodes on the other nodes in the cluster. For more information, see the hosts, named, and nis man pages. Note: Exclusive use of NIS or DNS for IP address lookup for the nodes will reduce availability in situations where the NIS or DNS service becomes unreliable. For more information, see "Understand Hostname Resolution and Network Configuration Rules" on page 15. 007–4507–015 129 7: Solaris Platform 3. Edit the /etc/nsswitch.conf file so that local files are accessed before either NIS or DNS. That is, the ipnodes line in /etc/nsswitch.conf must list files first. For example: ipnodes: files nis dns (The order of nis and dns is not significant to CXFS, but files must be first.) 4. Determine the name of the private interface by using the ifconfig command as follows: solaris# ifconfig -a If the second network does not appear, it may be that a network interface card must be installed in order to provide a second network, or it may be that the network is not yet initialized. For example, on an Ultra Enterprise 250, the integrated Ethernet is hme0; this is the public network. The following ifconfig output shows that only the public interface exists: solaris# ifconfig -a lo0: flags=1000849 mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 hme0: flags=1000843 mtu 1500 index 2 inet 128.162.2.91 netmask ffffff00 broadcast 128.162.2.255 ether 8:0:20:d2:29:c5 If the second network does not appear, do the following: a. If you do not have the PCI card installed, install it. Refer to your PCI documentation for instructions. If your card is already installed, skip to step b. 130 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage b. Use the output from the dmesg command to determine the interface name for the private network; look for the network interface that immediately follows the public network; you may wish to search for Found. For example: solaris# dmesg Feb 6 09:38:36 ue250 last message repeated 42 times Feb 6 11:38:40 ue250 pseudo: [ID 129642 kern.info] pseudo-device: devinfo0 Feb Feb 6 11:38:40 ue250 genunix: [ID 936769 kern.info] devinfo0 is /pseudo/devinfo@0 6 11:38:41 ue250 hme: [ID 517527 kern.info] SUNW,hme0 : PCI IO 2.0 (Rev Id = c1) Found Feb 6 11:38:41 ue250 genunix: [ID 936769 kern.info] hme0 is /pci@1f,4000/network@1,1 Feb 6 11:38:41 ue250 hme: [ID 517527 kern.info] SUNW,hme1 : PCI IO 2.0 (Rev Id = c1) Found Feb 6 11:38:41 ue250 hme: [ID 517527 kern.info] SUNW,hme1 : Local Ethernet address = 8:0:20:cc:43:48 Feb Feb 6 11:38:41 ue250 pcipsy: [ID 370704 kern.info] PCI-device: SUNW,hme@1,1, hme1 6 11:38:41 ue250 genunix: [ID 936769 kern.info] hme1 is /pci@1f,2000/SUNW,hme@1,1 The second network is hme1; this is the private network, and is displayed after hme0 in the dmesg output. In this example, hme1 is the value needed in step c and in step 5 below. c. Initialize the private network’s interface by using the ifconfig command as follows, where interface is the value determined in step b: ifconfig interface plumb For example: solaris# ifconfig hme1 plumb After performing the plumb, the hme1 interface will appear in the ifconfig output, although it will not contain the appropriate information (the correct information will be discovered after the system is rebooted later in step 8). For example, at this stage you would see the following: solaris# ifconfig -a lo0: flags=1000849 mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 hme0: flags=1000843 mtu 1500 index 2 inet 128.162.2.91 netmask ffffff00 broadcast 128.162.2.255 ether 8:0:20:d2:29:c5 hme1: flags=1000843 mtu 1500 index 3 inet 0.0.0.0 netmask ff000000 broadcast 255.0.0.0 ether 8:0:20:d2:29:c5 007–4507–015 131 7: Solaris Platform 5. Create a file named /etc/hostname.interface, where interface is the value determined in step 4. This file must contain the name of the private network. For example: solaris# cat /etc/hostname.hme1 cxfssun3-priv Note: In this scenario, /etc/hostname.hme0 must contain the same value as the /etc/nodename file. For example: solaris# cat /etc/hostname.hme0 cxfssun3 solaris# cat /etc/nodename cxfssun3 The Solaris /etc/nodename file is analogous to the IRIX /etc/sys_id file. 6. Edit the /etc/netmasks file to include the appropriate entries. 7. (Optional) Edit the /.rhosts file if you want to use remote access or if you want to use the connectivity diagnostics provided with CXFS. Ensure that the mode of the .rhosts file is set to 600 (read and write access for the owner only). Make sure that the /.rhosts file on each Solaris node allows all of the nodes in the cluster to have access to each other. The connectivity tests execute a ping command from the local node to all nodes and from all nodes to the local node. To execute ping on a remote node, CXFS uses rsh as user root. For example, suppose you have a cluster with three nodes: irix0, solaris1, and solaris2. The /.rhosts files could be as follows (the prompt denotes the node name): irix0# cat /.rhosts solaris1 root solaris1-priv root solaris2 root solaris2-priv root solaris1# cat /.rhosts irix0 root irix0-priv root solaris2 root solaris2-priv root 132 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage solaris2# cat /.rhosts irix0 root irix0-priv root solaris1 root solaris1-priv root 8. Reboot the Solaris system: solaris# init 6 At this point, ifconfig will show the correct information for the private network. For example: ifconfig -a lo0: flags=1000849 mtu 8232 index 1 inet 127.0.0.1 netmask ff000000 hme0: flags=1000843 mtu 1500 index 2 inet 128.162.2.91 netmask ffffff00 broadcast 128.162.2.255 ether 8:0:20:d2:29:c5 hme1: flags=1000843 mtu 1500 index 3 inet 10.1.1.36 netmask ffffff00 broadcast 10.1.1.255 ether 8:0:20:d2:29:c5 Verifying the Private and Public Networks for Solaris For each private network on each Solaris node in the pool, verify access with the Solaris ping command. Enter the following, where nodeIPaddress is the IP address of the node: solaris# /usr/sbin/ping -s -c 3 nodeIPaddress For example: solaris# /usr/sbin/ping -s -c 3 128.162.2.91 PING 128.162.2.91: 56 data bytes 64 bytes from cxfssun3.americas.sgi.com (128.162.2.91): 64 bytes from cxfssun3.americas.sgi.com (128.162.2.91): 64 bytes from cxfssun3.americas.sgi.com (128.162.2.91): 64 bytes from cxfssun3.americas.sgi.com (128.162.2.91): 007–4507–015 icmp_seq=0. icmp_seq=1. icmp_seq=2. icmp_seq=3. time=0. time=0. time=0. time=0. ms ms ms ms 133 7: Solaris Platform Also execute a ping on the public networks. If ping fails, follow these steps: 1. Verify that the network interface was configured up using ifconfig; for example: solaris# /usr/sbin/ifconfig eri0 eri0: flags=1000843 mtu 1500 index 2 inet 128.162.2.127 netmask ffffff00 broadcast 128.162.2.255 ether 0:3:ba:d:ad:77 In the first output line above, UP indicates that the interface was configured up. 2. Verify that the cables are correctly seated. Repeat this procedure on each node. Client Software Installation for Solaris The CXFS software will be initially installed and configured by SGI personnel. This section provides an overview of those procedures. You can use the information in this section to verify the installation. Solaris Installation Overview Installing the CXFS client CD for Solaris requires approximately 20 MB of space. To install the required software on a Solaris node, SGI personnel will do the following: 1. Read the release notes to learn about any late-breaking changes in the installation procedure. 2. Verify that the node has been upgraded to Solaris 10 (also known as SunOS 5.10) according to the Solaris installation guide. Use the following command to display the currently installed system: solaris# uname -r This command should return a value of 5.10. 3. Insert the CXFS MultiOS Client 4.2 CD. 4. Read the already inserted CD as follows: solaris# pkgadd -d /cdrom/cdrom01/solaris/SGIcxfs-sol10.pkg 134 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage For example, installing SGIcxfs-sol10.pkg will display at least the following output, although the exact version numbers may differ: solaris# pkgadd -d /cdrom/cdrom01/solaris/SGIcxfs-sol10.pkg The following packages are available: 1 SGIcxfs SGI CXFS client software (sparc) release X.X Select package(s) you wish to process (or ’all’ to process all packages). (default: all) [?,??,q]: Processing package instance from . . . This package contains scripts which will be executed with super-user permission during the process of installing this package. Do you want to continue with the installation of [y,n,?] y Installing SGI CXFS client software as ... Verifying the Solaris Installation To verify that the CXFS software has been installed properly, use the pkginfo command as follows: pkginfo -l SGIcxfs For example, the following output indicates that the CXFS package installed properly: % pkginfo -l PKGINST: NAME: CATEGORY: ARCH: VERSION: BASEDIR: VENDOR: 007–4507–015 SGIcxfs SGIcxfs SGI CXFS MultiOS client software system sparc release 2.4 / Silicon Graphics Inc. 135 7: Solaris Platform I/O Fencing for Solaris I/O fencing is required on Solaris nodes in order to protect data integrity of the filesystems in the cluster. The /etc/fencing.conf file enumerates the WWPN for all of the HBAs that will be used to mount a CXFS filesystem. There must be a line for the HBA WWPN as a 64-bit hexadecimal number. Note: The WWPN is that of the HBA itself, not any of the devices that are visible to that HBA in the fabric. If used, /etc/fencing.conf must contain a simple list of WWPNs, one per line. You must update it whenever the HBA configuration changes, including the replacement of an HBA. Do the following: 1. Set up the switch and HBA. See the release notes for supported hardware. 2. Determine the HBA WWNs: • If the HBA is a Sun QLogic card, use the /usr/sbin/fcinfo command. For example: # /usr/sbin/fcinfo hba-port | grep ’HBA Port WWN:’ | cut -d’:’ -f2 210000e08b86d53c 210100e08ba6d53c For more information, see the QLogic documentation. • If the HBA is a LSI card, you can use the lsiutil command to scan for devices. For example for ports 1 and 2: # lsiutil -p 1 8 | grep ’FC949X Port’ | awk ’{print $3}’ 100000062b114f50 # lsiutil -p 2 8 | grep ’FC949X Port’ | awk ’{print $3}’ 100000062b114f51 For more information, see the LSI documentation. • If either of the above do not work, do the following: 1. Follow the Fibre Channel cable on the back of the node to determine the port to which it is connected in the switch. Ports are numbered beginning 136 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage with 0. (For example, if there are 8 ports, they will be numbered 0 through 7.) 2. Connect to the switch via telnet and log in as user admin. (On Brocade switches, the password is password by default). 3. Use switchshow command. For example: brocade04:admin> switchshow switchName: brocade04 switchType: 2.4 switchState: Online switchRole: Principal switchDomain: 6 switchId: fffc06 switchWwn: 10:00:00:60:69:12:11:9e switchBeacon: OFF port 0: sw Online F-Port 20:00:00:01:73:00:2c:0b port 1: cu Online F-Port 21:00:00:e0:8b:02:36:49 port 2: cu Online F-Port 21:00:00:e0:8b:02:12:49 port 3: sw Online F-Port 20:00:00:01:73:00:2d:3e port 4: cu Online F-Port 21:00:00:e0:8b:02:18:96 port 5: cu Online F-Port 21:00:00:e0:8b:00:90:8e port 6: sw Online F-Port 20:00:00:01:73:00:3b:5f port 7: sw Online F-Port 20:00:00:01:73:00:33:76 port 8: sw Online F-Port 21:00:00:e0:8b:01:d2:57 port 9: sw Online F-Port 21:00:00:e0:8b:01:0c:57 port 10: sw Online F-Port 20:08:00:a0:b8:0c:13:c9 port 11: sw Online F-Port 20:0a:00:a0:b8:0c:04:5a port 12: sw Online F-Port 20:0c:00:a0:b8:0c:24:76 port 13: sw Online L-Port 1 public port 14: sw No_Light port 15: cu Online F-Port 21:00:00:e0:8b:00:42:d8 The WWPN is the hexadecimal string to the right of the port number. For example, the WWPN for port 0 is 2000000173002c0b (you must remove the colons from the WWPN reported in the switchshow output to produce the string to be used in the fencing file). 3. Edit or create /etc/fencing.conf and add the WWPN for the port determined in step 2. (Comment lines begin with #.) 007–4507–015 137 7: Solaris Platform For dual-ported HBAs, you must include the WWPNs of any ports that are used to access cluster disks. This may result in multiple WWPNs per HBA in the file; the numbers will probably differ by a single digit. For example, if you determined that port 0 is the port connected to the switch, your fencing file should contain the following: # WWPN of the HBA installed on this system # 2000000173002c0b 4. To configure fencing, see the CXFS Administration Guide for SGI InfiniteStorage. Start/Stop cxfs_client for Solaris The /etc/init.d/cxfs_cluster script will be invoked automatically during normal system startup and shutdown procedures. This script starts and stops the cxfs_client daemon. To start cxfs_client manually, enter the following: solaris# /etc/init.d/cxfs_cluster start To stop cxfs_client manually, enter the following: solaris# /etc/init.d/cxfs_cluster stop To stop and then start cxfs_client manually, enter the following: solaris# /etc/init.d/cxfs_cluster restart Maintenance for Solaris This section contains the following: • "Upgrading the CXFS Software for Solaris" on page 139 • "Modifying the CXFS Software for Solaris" on page 139 • "Recognizing Storage Changes for Solaris" on page 140 138 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Upgrading the CXFS Software for Solaris Note: Before upgrading CXFS software, ensure that no applications on the node are accessing files on a CXFS filesystem. To upgrade CXFS on a Solaris system, do the following: 1. Remove the current package: solaris# pkgrm SGIcxfs The following package is currently installed: SGIcxfs SGI CXFS client software (sparc) releaselevel Do you want to remove this package? [y,n,?,q] y # Removing installed package instance This package contains scripts which will be executed with super-user permission during the process of removing this package. Do you want to continue with the removal of this package [y,n,?,q] y # Verifying package dependencies ... 2. Reboot the Solaris system: solaris# reboot 3. Follow the installation instructions to install the new package. See "Client Software Installation for Solaris" on page 134. Modifying the CXFS Software for Solaris You can modify the behavior of the CXFS client daemon (cxfs_client) by placing options in the /usr/cxfs_cluster/bin/cxfs_client.options file. The available options are documented in the cxfs_client man page. 007–4507–015 139 7: Solaris Platform ! Caution: Some of the options are intended to be used internally by SGI only for testing purposes and do not represent supported configurations. Consult your SGI service representative before making any changes. To see if cxfs_client is using the options in cxfs_client.options, enter the following: solaris# ps -ef | grep cxfs Recognizing Storage Changes for Solaris If you make changes to your storage configuration, you must rerun the HBA utilities to reprobe the storage. See "HBA Installation for Solaris" on page 125. GRIO on Solaris CXFS supports guaranteed-rate I/O (GRIO) version 2 on the Solaris platform. Application bandwidth reservations must be explicitly released by the application before exit. If the application terminates unexpectedly or is killed, its bandwidth reservations are not automatically released and will cause a bandwidth leak. If this happens, the lost bandwidth could be recovered by rebooting the client node. For more information, see "Guaranteed-Rate I/O (GRIO) and CXFS" on page 10 and the Guaranteed-Rate I/O Version 2 Guide. XVM Failover V2 on Solaris Following is an example of the /etc/failover2.conf file on Solaris using a QLogic HBA: /devices/pci@1d,700000/SUNW,qlc@1/fp@0,0/ssd@w200400a0b80c268c,1 affinity=1 preferred /devices/pci@1d,700000/SUNW,qlc@1,1/fp@0,0/ssd@w200400a0b80c268c,1 affinity=1 /devices/pci@1d,700000/SUNW,qlc@1/fp@0,0/ssd@w200500a0b80c268c,1 affinity=2 /devices/pci@1d,700000/SUNW,qlc@1,1/fp@0,0/ssd@w200500a0b80c268c,1 affinity=2 140 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage In this case: • SUNW,qlc@1 is the first port on the PCI card • SUNW,qlc@1,1 is the second port on the PCI card • 200400a0b80c268c is controller A on the TP9XXX • 200500a0b80c268c is controller B on the TP9XXX Following is an example using an LSI HBA: pci@1f,2000/IntraServer,fc@1,1/ssd@0,0 affinity=1 pci@1f,2000/IntraServer,fc@1,1/ssd@2,0 affinity=0 preferred pci@1f,2000/IntraServer,fc@1,1/ssd@0,1 affinity=1 preferred pci@1f,2000/IntraServer,fc@1,1/ssd@2,1 affinity=0 pci@1f,2000/IntraServer,fc@1,1/ssd@0,2 affinity=1 pci@1f,2000/IntraServer,fc@1,1/ssd@2,2 affinity=0 preferred pci@1f,2000/IntraServer,fc@1,1/ssd@0,3 affinity=1 preferred pci@1f,2000/IntraServer,fc@1,1/ssd@2,3 affinity=0 For more information, see "XVM Failover and CXFS" on page 11, the comments in the /etc/failover2.conf file, CXFS Administration Guide for SGI InfiniteStorage, and the XVM Volume Manager Administrator’s Guide. Mapping XVM Volumes to Storage Targets on Solaris You can map XVM volumes to devices and to targets on RAID controllers using the output from the xvm command, and the device entries in the filesystem. 007–4507–015 141 7: Solaris Platform You can use the xvm command to display the device names. For example (line breaks added here for readability): solaris# /usr/cxfs_cluster/bin/xvm show -e -t vol vol/stripe1 0 online,open subvol/stripe1/data 573157888 online,open stripe/stripe1 573157888 online,tempname,open (unit size: 128) slice/tp9400-l3s0 286580064 online,open slice/tp9400-l4s0 (tp9400-l1:pci@1d,700000/SUNW,qlc@1/fp@0,0/ssd@w200400a0b80c268c,1) 286579040 online,open (tp9400-l3:pci@1d,700000/SUNW,qlc@1/fp@0,0/ssd@w200400a0b80c268c,3) These devices are created in the /devices directory (note the *:c,raw): solaris# ls /devices/pci\@1d\,700000/SUNW\,qlc\@1/fp\@0\,0/ssd\@*c,raw /devices/pci@1d,700000/SUNW,qlc@1/fp@0,0/ssd@w200400a0b80c268c,1:c,raw /devices/pci@1d,700000/SUNW,qlc@1/fp@0,0/ssd@w200400a0b80c268c,3:c,raw These devices are linked from the disk devices under /dev/rdsk: solaris# ls -l /dev/rdsk/*s2 | grep ’ssd@w200400a0b80c268c,1:’ lrwxrwxrwx 1 root root 75 Mar 21 08:02 /dev/rdsk/c2t200400A0B80C268Cd1s2 -> ../../devices/pci@1d,700000/SUNW,qlc@1/fp@0,0/ssd@w200400a0b80c268c,1:c,raw For more information, see "Verifying Access to XVM Volumes" on page 233 and the XVM Volume Manager Administrator’s Guide. Troubleshooting for Solaris This section contains the following: • "The cxfs_client Daemon is Not Started on Solaris" on page 143 • "Filesystems Do Not Mount on Solaris" on page 143 • "New Storage is Not Recognized on Solaris" on page 144 • "Large Log Files on Solaris" on page 144 • "Changing the CXFS Heartbeat Value on Solaris" on page 144 For general troubleshooting information, see Chapter 10, "General Troubleshooting" on page 237 and Appendix D, "Error Messages" on page 263. 142 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage The cxfs_client Daemon is Not Started on Solaris Confirm that the cxfs_client is not running. The following command would list the cxfs_client process if it were running: solaris# ps -ef | grep cxfs_client Check the cxfs_client log file for errors. Restart cxfs_client as described in "Start/Stop cxfs_client for Linux" on page 65 and watch the cxfs_client log file for errors. Filesystems Do Not Mount on Solaris If cxfs_info reports that cms is up but XVM or the filesystem is in another state, then one or more mounts is still in the process of mounting or has failed to mount. The CXFS node might not mount filesystems for the following reasons: • The client may not be able to see all the LUNs. This is usually caused by misconfiguration of the HBA or the SAN fabric: – Can the HBA see all of the LUNs for the filesystems it is mounting? – Can the operating system kernel see all of the LUN devices? See "New Storage is Not Recognized on Solaris" on page 144. • The cxfs_client daemon may not be running. See "The cxfs_client Daemon is Not Started on Solaris" on page 143. • The filesystem may have an unsupported mount option. Check the cxfs_client.log for mount option errors or any other errors that are reported when attempting to mount the filesystem. • The cluster membership (cms), XVM, or the filesystems may not be up on the node. Execute the /usr/cluster/bin/cxfs_info command to determine the current state of cms, XVM, and the filesystems. If the node is not up for each of these, then check the /var/log/cxfs_client log to see what actions have failed. 007–4507–015 143 7: Solaris Platform Do the following: – If cms is not up, check the following: • Is the node is configured on the administration node with the correct hostname? • Has the node been added to the cluster and enabled? See "Verifying the Cluster Status" on page 228. – If XVM is not up, check that the HBA is active and can see the LUNs. – If the filesystem is not up, check that one or more filesystems are configured to be mounted on this node and check the /var/log/cxfs_client file for mount errors. New Storage is Not Recognized on Solaris If you have a problem with an HBA, verify that you enabled fabric mode. See "Recognizing Storage Changes for Solaris" on page 140. Large Log Files on Solaris The /var/log/cxfs_client log file may become quite large over a period of time if the verbosity level is increased. To manually rotate this log file, use the -z option in the /usr/cxfs_cluster/bin/cxfs_client.options file. For information about the log files created on CXFS administration nodes, see the CXFS Administration Guide for SGI InfiniteStorage. Changing the CXFS Heartbeat Value on Solaris To view the CXFS heartbeat value on Solaris, use the following: # echo mtcp_hb_period/D | adb -k physmem 3df86 mtcp_hb_period: mtcp_hb_period: 600 Using the -k option to the adb(1) debugger causes it to attach to a live kernel. Echoing the command allows you to put it on a single line. 144 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage For example, to reset the value to 15 seconds, enter the following (the value is in Hz): # echo mtcp_hb_period/W0t1500 | adb -kw physmem 3df86 mtcp_hb_period: 0x258 = 0x5dc Reporting Solaris Problems When reporting a problem about a CXFS Solaris node to SGI, you should retain the following information: • If there is a system panic, retain the system core file in /var/crash/hostname on a Solaris node. • Output from the crash utility. • mdb(1M) modular debugger output: – For panics or generated dumps, use the following commands and save the output: $c (or $C) $r $ Settings > Control Panel However, on your system this menu could be as follows: Start > Control Panel CXFS on Windows This section contains the following information about CXFS on Windows: • "Requirements for Windows" on page 149 • "CXFS Commands on Windows" on page 150 • "Log Files and Cluster Status for Windows" on page 151 • "Functional Limitations and Considerations for Windows" on page 155 • "Performance Considerations for Windows" on page 159 • "Access Controls for Windows" on page 160 • "System Tunables for Windows" on page 172 148 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Requirements for Windows In addition to the items listed in "Requirements" on page 7, CXFS requires at least the following: • Windows versions: – Windows XP Service Pack (SP) 1 or SP 2 – Windows 2003 Server SP 1 (32/x86_64) – Windows 2003 Server SP 2 (32/x86_64) – Windows 2003 Server R2 SP 1 (32/x86_64) – Windows 2003 Server R2 SP 2 (32/x86_64) • One of the following: – An Intel Pentium or compatible processor – Xeon family with Intel Extended Memory 64 Technology (EM64T) processor architecture, or AMD Opteron family, AMD Athlon family, or compatible processor • Minimum RAM requirements (more will improve performance): 512 MB • A minimum of 10 MB of free disk space • Host bus adapter (HBA): – LSI Logic LSI 2Gb/4Gb, single/dual/quad-port , PCI-X/PCI-E HBAs – QLogic QLA2200, QLA2310, QLA2342, or QLA2344 HBAs • The following LSI Logic software from the http://www.lsilogic.com website: – Windows 2003: 1.21.03 – Windows XP: 1.21.04 • The following QLogic software from the http://www.qlogic.com website: – QLA2200: • Windows Server 2003: v8.1.5.15 • Windows XP: v8.1.5.12 007–4507–015 149 8: Windows Platforms – QLA2310, QLA2342 and QLA2344: • Windows XP, Windows Server 2003: v9.1.4.10 SCSI Miniport Driver • Windows XP, Windows Server 2003: v9.1.4.15 STOR Miniport Driver – SANsurfer FC HBA Manager 5.0.0 build 17 You should install the documentation associated with the software. See the SANsurfer README for the default password. Follow the QLogic instructions to install the driver, the SANsurfer NT Agent, and the SANsurfer Manager software. See the SANsurfer help for information on target persistent binding. • If two QLogic HBAs are installed for Windows Server 2003, you should also install the QLDirect Filter (8.01.12) in order to facilitate HBA failover and load balancing. If two different model HBAs are installed, you must install drivers for both models. Note: If the primary HBA path is at fault during the Windows boot up (for example, if the Fibre Channel cable is disconnected), no failover to the secondary HBA path will occur. This is a limitation of the QLogic driver. For the latest information, see the CXFS Windows release notes. CXFS Commands on Windows The following commands are shipped as part of the CXFS Windows package: %windir%\system32\cxfs_client.exe %ProgramFiles%\CXFS\cxfs_info.exe %ProgramFiles%\CXFS\cxfscp.exe %ProgramFiles%\CXFS\cxfsdump.exe %ProgramFiles%\CXFS\grioadmin.exe %ProgramFiles%\CXFS\griomon.exe %ProgramFiles%\CXFS\grioqos.exe %ProgramFiles%\CXFS\xvm.exe A single CXFS client service and a single CXFS filesystem driver are installed as part of the Windows installation. The service and the CXFS filesystem driver can be configured to run automatically when the first user logs into the node. 150 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage The command %ProgramFiles%\CXFS\cxfs_info.exe displays the current state of the node in the cluster in a graphical user interface. See "Log Files and Cluster Status for Windows" and "Verifying the Cluster Status" on page 228. For information about the GRIO commands, see "Guaranteed-Rate I/O (GRIO) and CXFS" on page 10 and "GRIO on Windows" on page 204. Log Files and Cluster Status for Windows The Windows node will log important events in the system event log. You can view these events by selecting the following: Start > Settings > Control Panel > Administrative Tools > Event Viewer For information about the log files created on CXFS administration nodes, see the CXFS Administration Guide for SGI InfiniteStorage. The CXFS Client service will also log important information to the following file: %ProgramFiles%\CXFS\log\cxfs_client.log When CXFS is first installed, the log file is automatically rotated when it grows to 10 MB. This is set by the -z option in the CXFS Client service Additional arguments window during installation (see Figure 8-6 on page 189) and may be adjusted by following the steps described in "Modifying the CXFS Software for Windows" on page 201. You may also wish to keep the CXFS Info window open to check the cluster status and view the log file. To open this informational window on any Windows system, select the following: Start > Programs > CXFS > CXFS Info The top of CXFS Info window displays the overall state of the cluster environment: • Number of stable nodes 007–4507–015 151 8: Windows Platforms • Status of the cms cluster membership daemon • Status of XVM • Status of filesystems • Status of the cluster • Status of the local node Figure 8-1 shows an example of the CXFS Info window. Figure 8-1 CXFS Info Window — Nodes Tab Display The CXFS Info window also provides the following tabs to access further information: • Nodes displays each node in the cluster, its state, and its cell ID number. For more information, see "Verifying the Cluster Status" on page 228. 152 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • Filesystems displays each CXFS filesystem, its state, size, and other statistics. Figure 8-2 shows an example. Figure 8-2 CXFS Info Window — Filesystems Tab • User Map displays the usernames that are mapped to UNIX user identifiers. • Group Map displays the groups that are mapped to UNIX group identifiers. • GRIOv2 Status displays each guaranteed-rate I/O (GRIO) stream, its reservation size, and other statistics. See "GRIO on Windows" on page 204. • CXFS Client log displays the log since the CXFS Client service last rebooted. It highlights the text in different colors based on the severity of the output: – Red indicates an error, which is a situation that will cause a problem and must be fixed – Orange indicates a warning, which is a situation that might cause a problem and should be examined 007–4507–015 153 8: Windows Platforms – Black indicates general log information that can provide a frame of reference – Green indicates good progress in joining membership and mounting filesystems Figure 8-3 shows an example. Figure 8-3 CXFS Info Window — CXFS Client Log Tab The CXFS Info icon in the task bar will change from green to yellow or red depending on the state of the client in the cluster: • Green indicates that the client is in the membership, everything is fully functional, and all enabled filesystems are mounted • Yellow indicates an in-between state (neither inactive nor stable state) • Red indicates that CXFS is not running (inactive state) Also see Figure 8-14 on page 205. 154 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Functional Limitations and Considerations for Windows There are a number of limitations in the CXFS software that are unique to the Windows platform: • "Use of TPSSM" on page 155 • "UNIX Perspective of CXFS for Windows" on page 155 • "Windows Perspective of CXFS for Windows" on page 156 • "Forced Unmount on Windows" on page 157 • "Define LUN 0 on All Storage Devices for Windows" on page 157 • "Memory-Mapping Large Files for Windows" on page 158 • "CXFS Mount Scripts for Windows" on page 158 • "Norton Ghost Prevents Mounting Filesystems" on page 158 • "Mapping Network and CXFS Drives" on page 158 • "Windows Filesystem Limitations" on page 158 • "XFS Filesystem Limitations" on page 159 See also Appendix B, "Filesystem and Logical Unit Specifications" on page 253. Use of TPSSM When installing TPSSM on a Windows client, you must choose Custom install and uncheck the TPSSM RDAC option. This will prevent the RDAC pseudo/virtual LUNs from being installed onto the system (installing these LUNs would have a detrimental affect on XVM failover V2 for the Windows client). UNIX Perspective of CXFS for Windows This section describes the differences and limitations of a CXFS filesystem on a Windows node from a UNIX perspective: • Windows nodes can support multiple CXFS filesystems mounted under a single drive letter. Only one CXFS drive letter may be configured on a Windows node. The top-level file structure under the CXFS drive letter consists of an in-memory directory structure that mimics the mount points on the CXFS administration 007–4507–015 155 8: Windows Platforms node. The CXFS software creates these directories before mounting the CXFS filesystems. For example, a CXFS filesystem with a mount point of /mnt/cxfs on a CXFS Windows node configured to use drive letter X, will create X:\mnt\cxfs during filesystem mount process. This file structure supports only creating and deleting directories; there is no support for creating and deleting regular files, renaming directories, and so on. Attempts to perform unsupported actions will generally result in an invalid parameter error. You can perform normal filesystem operations on files and directories beneath the mount points, but an application that must write to the directory directly under the CXFS drive letter will fail. Note: A CXFS mount point or directory beneath a mount point can be mapped to another drive letter by using the subst command from a command shell to which the application can write. See "Application Cannot Create File Under CXFS Drive Letter" on page 218. • A Windows node can support regular files, directories, and links. However, it does not support other XFS file types. • Symbolic links cannot be distinguished from normal files or directories on a Windows node. Opening a symbolic link will open the target of the link, or will report file not found if it is a dangling link. • You can move, rename, or delete a symbolic link; however, you cannot copy a symbolic link. Copying a valid symbolic link will result in copying the file or directory that the link refers to, rather than the normal UNIX behavior that copies the link itself. Windows Perspective of CXFS for Windows This section describes the differences and limitations of a CXFS filesystem on a Windows node in comparison to other Windows filesystems from a Windows perspective: • Avoid using duplicate filenames in the same directory that vary only in case. CXFS is case-sensitive, but some Windows applications may not maintain the case of all filenames, which may result in unexpected behavior. • CXFS software does not export 8.3 alternative filenames. Older Windows applications that only support 8.3 filenames may be unable to open files with longer filenames and mail fail with file not found errors. 156 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • Avoid using completely uppercase 8.3 filenames. If you use completely uppercase 8.3 filenames, some applications (including Windows Explorer) may incorrectly assume that only 8.3 filenames are supported by the filesystem and will not preserve case. • Install the CXFS software components onto a NTFS partition rather than a FAT partition. The security of the following files cannot be guaranteed if these files are installed onto a FAT filesystem: %ProgramFiles%\CXFS\passwd %ProgramFiles%\CXFS\group • There is no recycle bin; deleted files are permanently deleted. • There is no automatic notification of directory changes performed by other nodes in the cluster. Applications (such as Windows Explorer) will not automatically update their display if another node adds or removes files from the directory currently displayed. • A CXFS filesystem cannot be used as the boot partition of a Windows node. • The volume properties window in Windows Explorer for the CXFS drive letter will display the total capacity of all mounted filesystems and the largest free space on any one of those filesystems. Forced Unmount on Windows SGI recommends that you enable the forced unmount feature on CXFS filesystems. See "Enable Forced Unmount" on page 19 and "Forced Unmount of CXFS Filesystems" on page 227. A forced unmount causes all processes that have open files on the specified filesystem to be unconditionally killed and therefore permit the filesystem to be unmounted without delay. Define LUN 0 on All Storage Devices for Windows Windows, and therefore CXFS, may not detect any LUNs on a storage device if LUN 0 is not defined on the storage device. This problem may occur when CXFS Info reports that XVM is up, but one or more filesystems are not mounted and CXFS therefore retries the mount continuously. This problem has occurred on Windows XP CXFS clients. For more information about this issue, see the following (the problem exists for all supported Windows platforms): 007–4507–015 157 8: Windows Platforms http://support.microsoft.com/kb/821666/en-us Memory-Mapping Large Files for Windows You can memory-map a file much larger than 2 GB under Windows, but only up to 2 GB of that file in one or more parts can be mapped into a process at any one time on a 32-bit platform. See the Windows Platform Software Development Kit for more details. CXFS Mount Scripts for Windows Windows does not support the CXFS mount scripts. Norton Ghost Prevents Mounting Filesystems If Norton Ghost is installed on a node, CXFS cannot mount filesystems on the mount-point driver letter. You must uninstall Norton Ghost in order to use CXFS. Mapping Network and CXFS Drives Under Windows XP, users may define their own local set of drive letter mappings that can override the global settings for the host. When identifying the filesystem mapped to a drive letter, Windows XP will check the local mappings and may hide CXFS from the user. Users and administrators of CXFS Windows nodes must avoid mapping network and CXFS drives to the same drive letter. Windows Filesystem Limitations A Windows node running CXFS has the following filesystem limitations: • Does not support shutdown of the CXFS driver via the device manager. If restarting the CXFS Client service fails to achieve membership, you must restart the Windows node. • Does not support for opportunistic locking, also known as oplocks. Hosts that are using a CXFS Windows node as an SMB server will not be able to cache data locally. The workaround is to use NFS or Samba to export the filesystem on one of the server-capable nodes. • Enforces the Windows file sharing options when opening a file on the same node, but does not enforce it on other nodes in the cluster. 158 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage XFS Filesystem Limitations Support for unwritten extents is limited on Windows nodes. However, reading and writing unwritten extents will work correctly in the absence of concurrent reading and writing of the same file extent elsewhere in the cluster. Performance Considerations for Windows The following are performance considerations on a CXFS Windows node, in addition to the limitations described in "Use CXFS when Appropriate" on page 14: • Using CIFS to share a CXFS filesystem from a CXFS Windows node to another Windows host is not recommended for the following reasons: – Metadata operations sent to the Windows node must also be sent to the CXFS metadata server causing additional latency – CXFS Windows does not support opportunistic locking, which CIFS uses to improve performance (see "Windows Filesystem Limitations" on page 158) SGI recommends that you use Samba on the CXFS metadata server to export CXFS filesystems to other nodes that are not running CXFS. • Windows supplies autonotification APIs for informing applications when files or directories have changed on the local client. With each notification, Windows Explorer will do a full directory lookup. Under CXFS, directory lookups can require multiple RPCs to the server (about 1 per 30 files in the directory), resulting in a linear increase in network traffic. This can grow to megabytes per second for directories with large numbers of files. For better performance, do one of the following: – Select the destination folder itself – Close the drive tree or mount point folder by clicking on the |+| on the drive icon or mount point folder • If you open the Windows Explorer Properties window on a directory, it will attempt to traverse the filesystem in order to count the number and size of all subdirectories and files; this action is the equivalent of running the UNIX du command. This can be an expensive operation, especially if performed on directories between the drive letter and the mount points, because it will traverse all mounted filesystems. 007–4507–015 159 8: Windows Platforms • Virus scanners, Microsoft Find Fast, and similar tools that traverse a filesystem are very expensive on a CXFS filesystem. Such tools should be configured so that they do not automatically traverse the CXFS drive letter. • The mapping from Windows user and group names to UNIX identifiers occurs as the CXFS software starts up. In a Windows domain environment, this process can take a number of seconds per user for usernames that do not have accounts within the domain. If you are using a passwd file for user identification and the file contains a number of unknown users on the Windows node, you should remove users who do not have accounts on the Windows nodes from the passwd file that is installed on the Windows nodes. This issue has less impact on Windows nodes in a workgroup than on those in a domain because the usernames can be quickly resolved on the node itself, rather than across the network to the domain controller. • With 1-GB fabric to a single RAID controller, it is possible for one 32-bit 33-MHz QLogic card to reach the bandwidth limitations of the fabric, and therefore there will be no benefit from load balancing two HBAs in the same PCI bus. This can be avoided by using 2-GB fabric and/or multiple RAID controllers. • For load balancing of two HBAs to be truly beneficial, the host must have at least one of the following three attributes: – A 64-bit PCI bus – A 66-MHz PCI bus – Multiple PCI buses • Applications running on a CXFS Windows client should perform well when their I/O access patterns are similar to those described in "When to Use CXFS" on page 2. • The maximum I/O size issued by the QLogic HBA to a storage target and the command tag queue length the HBA maintains to each target can be configured in the registry. See "System Tunables for Windows" on page 172. Access Controls for Windows The XFS filesystem used by CXFS implements and enforces UNIX mode bits and POSIX access control lists (ACLs), which are quite different from Windows file attributes and access control lists. The CXFS software attempts to map Windows 160 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage access controls to the UNIX access controls for display and manipulation, but there are a number of features that are not supported (or may result in unexpected behavior) that are described here. This section contains the following: • "User Identification for Windows" on page 161 • "User Identification Mapping Methods for Windows" on page 162 • "Enforcing Access to Files and Directories for Windows" on page 164 • "Viewing and Changing File Attributes with Windows Explorer" on page 164 • "Viewing and Changing File Permissions with Windows Explorer" on page 165 • "Viewing and Changing File Access Control Lists (ACLs) for Windows" on page 168 • "Effective Access for Windows" on page 169 • "Restrictions with file ACLs for Windows" on page 169 • "Inheritance and Default ACLs for Windows" on page 170 User Identification for Windows The CXFS software supports several user identification mechanisms, which are described in "User Identification Mapping Methods for Windows" on page 162. Windows user and group names that match entries in the configured user list will be mapped to those user IDs (UIDs) and group IDs (GIDs). The following additional mappings are automatically applied: • User Administrator is mapped to root (UID = 0) • Group Administrators is mapped to sys (GID = 0) A user’s default UNIX GID is the default GID in the passwd listing for the user and is not based on a Windows group mapped to a UNIX group name. You can display the users and groups that have been successfully mapped by looking at the tables for the User Map and Group Map tabs in the CXFS Info window. 007–4507–015 161 8: Windows Platforms The following sections assume that a CXFS Windows node was configured with the following passwd and group files: C:\> type %ProgramFiles%\CXFS\passwd root::0:0:Super-User:/root:/bin/tcsh guest::998:998:Guest Account:/usr/people/guest:/bin/csh fred::1040:402:Fred Costello:/users/fred:/bin/tcsh diane::1052:402:Diane Green:/users/diane:/bin/tcsh C:\> type %ProgramFiles%\CXFS\group sys::0:root,bin,sys,adm root::0:root guest:*:998: video::402:fred,diane audio::403:fred User Identification Mapping Methods for Windows User identification can be performed by one choosing one of the following methods for the User ID mapping lookup sequence item of the Enter CXFS Details window: • files: /etc/passwd and /etc/group files from the metadata server copied onto the clients. If you select this method, you must install the /etc/passwd and /etc/group files immediately after installing the CXFS software, as described in "Performing User Configuration for Windows" on page 195. • ldap_activedir: Windows Active Directory server with Services for UNIX (SFU) installed, which uses lightweight directory access protocol (LDAP). The ldap_activedir method configures the CXFS Windows software to communicate with the Active Directory for the CXFS node’s domain. With the Windows Services for UNIX (SFU) extensions, the Active Directory User Manager lets you define UNIX identifiers for each user and export these identifiers as an LDAP database. Permissions on the Active Directory server must allow Authenticated Users to read the SFU attributes from the server. Depending on the installation and configuration of the server, LDAP clients may or may not be able to access the SFU attributes. For more information, see"CXFS Client Service Cannot Map Users other than Administrator for Windows" on page 215. This configuration requires a domain controller that is installed with the following: 162 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage – Windows 2003 Server with Active Directory. – Windows Services for UNIX (SFU) version 2 or later with the NFS server component installed. SGI recommends SFU version 3.5. Note: The domain controller does not have to be a CXFS node. • ldap_generic: Generic LDAP lookup for UNIX users and groups from another LDAP server. The ldap_generic method configures the CXFS software to communicate with an LDAP database that maps user names and group names to UNIX identifiers. For an example of the window, see Figure 8-6 on page 189. You must select one of these as the primary mapping method during installation, but you can change the method at a later time, as described in "Modifying the CXFS Software for Windows" on page 201. Optionally, you can select a secondary mapping method that will be applied to users that are not covered by the first method. If you choose a primary and a secondary mapping method, one of them must be files. For example, suppose the user has selected ldap_generic as the primary method and files as the secondary method. A user mapping will be created for all suitable ldap_generic users and this mapping will be extended with any additional users found in the secondary method (files). The primary method will be used to resolve any duplicate entries. Suppose the primary method (ldap_generic) has users for UIDs 1, 2 and 3, and the secondary method (files) has users for UIDs 2 and 4. The username for UIDs 1, 2 and 3 will be determined by the ldap_generic method and the username for UID 4 will be determined by the files method. If the LDAP lookup failed (such as if the LDAP server was down), a user mapping for UIDs 2 and 4 would be generated using the files method. The default behavior is to use the files method to map Windows usernames to UNIX UIDs and GIDs, with no secondary method selected. Regardless of the method used, the consistent mapping of usernames is a requirement to ensure consistent behavior on all CXFS nodes. Most platforms can be configured to use an LDAP database for user identification. 007–4507–015 163 8: Windows Platforms Enforcing Access to Files and Directories for Windows Access controls are enforced on the CXFS metadata server by using the mapped UID and GID of the user attempting to access the file. Therefore, a user can expect the same access on a Windows node as any other node in the cluster when mounting a given filesystem. Access is determined using the file’s ACL, if one is defined, otherwise by using the file’s mode bits. ACLs that are set on any files or directories are also enforced as they would be on any IRIX node. The presentation of ACLs is customized to the interfaces of Windows Explorer, so the enforcement of the ACL may vary from an NTFS ACL that is presented in the same way. A new file will inherit the parent directory default ACL, if one is defined. The user Administrator has read and write access to all files on a CXFS filesystem, in the same way that root has superuser privileges on a UNIX node. The following example is a directory listing on the IRIX metadata server: irix# ls -l . drwxr-x--2 fred -rw-r----1 fred -rw-rw-r-1 fred video audio video 6 Nov 20 13:33 dir1 0 Nov 20 12:59 file1 0 Nov 20 12:59 file2 Users will have the following access to the contents of this directory: • file1 will be readable and writable to user fred and Administrator on a CXFS Windows node. It can also be read by other users in group audio. No other users, including diane and guest, will be able to access this file. • file2 will be readable by all users, and writable by user fred, diane (because she is in group video), and Administrator. • dir1 will be readable, writable, and searchable by user fred and Administrator. It will be readable and searchable by other users in group video, and not accessible by all other users. Viewing and Changing File Attributes with Windows Explorer File permissions may be viewed and manipulated in two different ways when using Windows Explorer: • By displaying the list of attributes in a detailed directory listing; this is the most limited approach 164 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • By selecting properties on a file The only file attribute that is supported by CXFS is the read-only attribute, other attributes will not be set by CXFS and changes to those attributes will be ignored. If the user is not permitted to write to the file, the read-only attribute will be set. The owner of the file may change this attribute and modify the mode bits. Other users, including the user Administrator, will receive an error message if they attempt to change this attribute. Marking a file read-only will remove the write bit from the user, group, and other mode bits on the file. Unsetting the read-only attribute will make the file writable by the owner only. For example, selecting file properties on file1 using Windows Explorer on a CXFS Windows node will display the read-only attribute unset if logged in as Administrator or fred, and it will be set for diane and guest. Only user fred will be able to change the attribute on these files, which will change the files under UNIX to the following: -r--r-----r--r--r-- 1 fred 1 fred audio video 0 Nov 20 12:59 file1 0 Nov 20 12:59 file2 If fred then unset these flags, only he could write to both files: -rw-r-----rw-r--r-- 1 fred 1 fred audio video 0 Nov 20 12:59 file1 0 Nov 20 12:59 file2 Viewing and Changing File Permissions with Windows Explorer By selecting the Security tab in the File Properties window of a file, a user may view and change a file’s permissions with a high level of granularity. Windows Explorer will list the permissions of the file’s owner and the file’s group. The Everyone group, which represents the mode bits for other users, will also be displayed if other users have any access to the file. Not all Windows permission flags are supported. The permissions on file1 are displayed as follows: audio (cxfs1\audio) Fred Costello (cxfs1\fred) 007–4507–015 Allow: Read Allow: Read, Write 165 8: Windows Platforms Using the Advanced button, file1 is displayed as follows: Allow Allow Fred Costello (cxfs1\fred) audio (cxfs1\audio) Special Read User fred is listed as having Special access because the permission flags in the next example do not exactly match the standard Windows permissions for read and write access to a file. Select Fred Costello and then click View/Edit to display the permission flags listed in Table 8-1. (The table displays the permissions in the order in which they appear in the View/Edit window). You can choose to allow or deny each flag, but some flags will be ignored as described in Table 8-1. 166 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Table 8-1 Permission Flags that May Be Edited Permission Description Traverse Folder / Execute File Used to display and change the execute mode bit on the file or directory List Folder / Read Data Used to display and change the read mode bit on the file or directory Read Attributes Set if the read mode bit is set; changing this flag has no effect Read Extended Attributes Set if the read mode bit is set; changing this flag has no effect Create Files / Write Data Used to display and change the write mode bit on the file or directory Create Folders / Append Data Set if the write mode bit is set; changing this flag has no effect Write Attributes Set if the write mode bit is set; changing this flag has no effect Write Extended Attributes Set if the write mode bit is set; changing this flag has no effect Delete Subfolders and Files Set for directories if you have write and execute permission on the directory; changing this flag has no effect Delete Never set (because delete depends on the parent directory permissions); changing the flag has no effect Read Permissions Always set; changing the flag has no effect Change Permissions Always set for the owner of the file and the user Administrator; changing this flag has no effect Take Ownership Always set for the owner of the file and the user Administrator; changing this flag has no effect The permissions for file2 are displayed as follows: Everyone video (cxfs1\video) Fred Costello (cxfs1\fred) Allow: Read Allow: Read, Write Allow: Read, Write The permissions for dir1 are displayed as follows: Fred Costello (cxfs1\fred) Video (cxfs1\video) 007–4507–015 Allow: Allow: 167 8: Windows Platforms Note: In this example, the permission flags for directories do not match any of the standard permission sets, therefore no Allow flags are set. In general, you must click the Advanced button to see the actual permissions of directories. For example: Allow Allow Fred Costello video Special Read & Execute This folder only This folder only The dir1 directory does not have a default ACL, so none of these permissions are inherited, as indicated by the This folder only tag, when a new subdirectory or file is created. Viewing and Changing File Access Control Lists (ACLs) for Windows If the file or directory has an ACL, the list may include other users and groups, and the CXFS ACL Mask group that represents the IRIX ACL mask. See the chacl(1) man page for an explanation of IRIX ACLs and the mask bits. The effective permissions of all entries except for the owner will be the intersection of the listed permissions for that user or group and the mask permissions. Therefore, changing the CXFS ACL Mask permissions will set the maximum permissions that other listed users and groups may have. Their access may be further constrained in the specific entries for those users and groups. By default, files and directories do not have an ACL, only mode bits, but an ACL will be created if changes to the permissions require an ACL to be defined. For example, granting or denying permissions to another user or group will force an ACL to be created. Once an ACL has been created for a file, the file will continue to have an ACL even if the permissions are reduced back to only the owner or group of the file. The chacl(1) command under IRIX can be used to remove an ACL from a file. For example, fred grants diane read access to file1 by adding user diane using the file properties dialogs, and then deselecting Read & Execute so that only Read is selected. The access list now appears as follows: audio (cxfs1\audio) Diane Green (cxfs1\diane) Fred Costello (cxfs1\fred) 168 Allow: Read Allow: Read Allow: Read, Write 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage After clicking OK, the properties for file1 will also include the CXFS ACL Mask displayed as follows: audio (cxfs1\audio) CXFS ACL Mask (cxfs1\CXFS...) Diane Green (cxfs1\diane) Fred Costello (cxfs1\fred) Allow: Allow: Allow: Allow: Read Read Read Read, Write Note: You should select and deselect entries in the Allow column only, because UNIX ACLs do not have the concept of Deny. Using the Deny column will result in an ACL that allows everything that is not denied, even if it is not specifically selected in the Allow column, which is usually not what the user intended. Effective Access for Windows The effective access of user diane and group audio is read-only. Granting write access to user diane as in the following example does not give diane write access because the mask remains read-only. However, because user fred is the owner of the file, the mask does not apply to his access to file1. For example: audio (cxfs1\audio) CXFS ACL Mask (cxfs1\CXFS...) Diane Green (cxfs1\diane) Fred Costello (cxfs1\fred) Allow: Allow: Allow: Allow: Read Read Read, Write Read, Write Restrictions with file ACLs for Windows If the users and groups listed in a file’s permissions (whether mode bits and/or ACL entries) cannot be mapped to users and groups on the Windows node, attempts to display the file permissions in a file properties window will fail with an unknown user or group error. This prevents the display of an incomplete view, which could be misleading. Both the owner of the file and the user Administrator may change the permissions of a file or directory using Windows Explorer. All other users will get a permission denied error message. 007–4507–015 169 8: Windows Platforms Note: A user must use a node that is not running Windows to change the ownership of a file because a Windows user takes ownership of a file with Windows Explorer, rather than the owner giving ownership to another user (which is supported by the UNIX access controls). Inheritance and Default ACLs for Windows When a new file or directory is created, normally the mode bits are set using a mask of 022. Therefore, a new file has a mode of 644 and a new directory of 755, which means that only the user has write access to the file or directory. You can change this mask during CXFS installation or later by modifying the installation. For more information, see "Client Software Installation for Windows" on page 187 and "Inheritance and Default ACLs for Windows" on page 170. The four umask options available during installation or modification correspond to the following umask values: 000 Everyone can write 002 User and group can write 022 User only can write (default) 222 Read only (no one can write) Therefore, creating a file on a UNIX CXFS client results in a mode of 644 for a mask of 022: irix% ls -lda . drwxr-xr-x 3 fred video 41 Nov 21 18:01 ./ irix% umask 22 irix% touch file3 irix% ls -l file3 -rw-r--r-1 fred video 0 Nov 21 18:23 file3 For more information, see the umask man page. Creating a file in Windows Explorer on a Windows node will have the same result. 170 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage An IRIX directory ACL may include a default ACL that is inherited by new files and directories, instead of applying the umask. Default ACLs are displayed in the Windows Explorer file permission window if they have been set on a directory. Unlike a Windows inheritable ACL on an NTFS filesystem, an IRIX default ACL applies to both new files and subdirectories, there is no support for an inheritable ACL for new files and another ACL for new subdirectories. The following example applies an ACL and a default ACL to dir1 and then creates a file and a directory in dir1: irix% chacl -b "u::rwx,g::r-x,u:diane:r-x,o::---,m::r-x" \ "u::rwx,g::r-x,u:diane:rwx,o::---,m::rwx" dir1 irix% touch dir1/newfile irix% mkdir dir1/newdir irix% ls -D dir1 newdir [u::rwx,g::r-x,u:diane:rwx,o::---,m::r-x/ u::rwx,g::r-x,u:diane:rwx,o::---,m::rwx] newfile [u::rw-,g::r-x,u:diane:rwx,o::---,m::r--] The permissions for dir1 will be as follows: CXFS ACL Mask (cxfs1\CXFS...) Diane Green (cxfs1\diane) Fred Costello (cxfs1\fred) Video (cxfs1\video) Allow: Allow: Allow: Read & Exec, List, Read, Write Allow: Read & Exec, List, Read After clicking on Advanced, the permissions displayed are as follows:, Allow Allow Allow Allow Allow Allow Fred Costello video Diane Green CXFS ACL Mask Diane Green CXFS ACL Mask Special Read & Execute Read, Write & Exec Read, Write & Exec Read & Exec Read & Exec This folder, subfolders and files This folder, subfolders and files Subfolders and files Subfolders and files This folder only This folder only If an ACL entry is the same in the default ACL, a single entry is generated for the This folder, subfolders and files entry. Any entries that are different will have both Subfolders and files and This folder only entries. Adding the first inheritable entry to a directory will cause CXFS to generate any missing ACL entries like the owner, group, and other users. The mode bits for these entries will be generated from the umask. 007–4507–015 171 8: Windows Platforms Adding different Subfolders Only and Files Only entries will result in only the first entry being used because an IRIX ACL cannot differentiate between the two. System Tunables for Windows This section discusses the following topics: • "Registry Modification" on page 172 • "Default Umask for Windows" on page 173 • "Maximum DMA Size for Windows" on page 173 • "Memory-Mapping Coherency for Windows" on page 174 • "DNLC Size for Windows" on page 174 • "Mandatory Locks for Windows" on page 175 • "User Identification Map Updates for Windows" on page 176 • "I/O Size Issues Within the QLogic HBA" on page 177 • "Command Tag Queueing (CTQ) Used by the QLogic HBA" on page 177 • "Memory-Mapped Files Flush Time for Windows" on page 178 Note: These system tunables are removed when the software is removed. They may need to be reset when downgrading the CXFS for Windows software. Registry Modification In order to configure system tuning settings, you must to modify the registry. Do the following: 1. Back up the registry before making any changes. 2. Click Start, select Run, and open the Regedit.exe program. 3. Select HKEY_LOCAL_MACHINE and follow the tree structure down to the parameter you wish to change. 4. After making the change, reboot the system so that the change takes affect. 172 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage ! Caution: Only the parameters documented here may be changed to modify the behavior of CXFS. All other registry entries for CXFS must not be modified or else the software may no longer function. Default Umask for Windows The default umask that is set up during installation can be configured to a value not supported by the installer. For more information on the umask, see "Inheritance and Default ACLs for Windows" on page 170. In regedit, navigate and edit the following value: HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > CXFS > Parameters > DefaultUMask This value specifies the umask in hexadecimal (and decimal), not its normal octal representation used on UNIX platforms. Maximum DMA Size for Windows CXFS for Windows prior to CXFS 3.2 broke down large direct I/O requests into requests no larger than 4 MB, which would result in additional network traffic to the metadata server and potentially multiple extents on disk when it could allocate a single extent. This limit has been increased to 16 MB and can be configured by modifying a new registry key in CXFS 3.2 and later. In regedit, navigate and edit the following value: HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > CXFS > Parameters 007–4507–015 173 8: Windows Platforms Create a new DWORD key called MaxDMASize and specify the maximum I/O request size in bytes. If this parameter is not defined, it defaults to 0x1000000, which is 16 MB. The upper bound for Windows is just under 64 MB. Memory-Mapping Coherency for Windows By default, a CXFS Windows client enforces memory-mapping coherency by preventing other clients and the CXFS metadata server access to the file while it is mapped. This can cause problems for some applications that do not expect this behavior. Microsoft Office applications and Notepad.exe use memory-mapped I/O to read and write files, but use byte-range locks to prevent two people from accessing the same file at the same time. The CXFS behavior causes the second Office application to hang until the file is closed by the first application, without displaying a dialog that the file is in use. Backup applications that search the filesystem for modified files will stall when they attempt to back up a file that has been memory-mapped on a CXFS Windows node. In regedit, navigate and edit the following value: HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > CXFS > Parameters You can disable this behavior in CXFS by changing the DisableMemMapCoherency parameter from 0 to 1 to avoid these problems. However, CXFS can no longer ensure data coherency if two applications memory-map the same file at the same time on different nodes in the cluster. ! Caution: Use this option with extreme caution with multiple clients concurrently accessing the same files. DNLC Size for Windows The Directory Name Lookup Cache (DNLC) in a CXFS Windows client allows repetitive lookups to be performed without going to the metadata server for each 174 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage component in a file path. This can provide a significant performance boost for applications that perform several opens in a deep directory structure. In regedit, navigate and edit the following value: HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > CXFS > Parameters The DnlcSize parameter is set to 4096 by default. You can change it to a value from 0 (which disables the DNLC) to 100000. Values outside this range will be reset to 4096. Note: Increasing the DNLC size can have a significant memory impact on the Windows node and the metadata server because they maintain data structures for every actively opened file on the CXFS clients. You should monitor the memory usage on these nodes before and after changing this parameter because placing nodes under memory pressure is counter-productive to increasing the DNLC size. Mandatory Locks for Windows By default, byte-range locks across the cluster are advisory locks, which do not prevent a rogue application from reading and writing to locked regions of a file. Note: Windows filesystems (NTFS and FAT) implement a mandatory locking system that prevents applications from reading and writing to locked regions of a file. Mandatory locks are enabled within a Windows client. In regedit, navigate and edit the following value: HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > CXFS > Parameters 007–4507–015 175 8: Windows Platforms To enable mandatory byte-range locks across the cluster, set the ForceMandatoryLocks parameter to 1. Setting this parameter will adversely affect performance of applications using these locks. User Identification Map Updates for Windows User identification maps are updated automatically by the following triggers: • An unmapped user logs into the system • The passwd and/or group file is modified when the primary mapping method is files • An LDAP database change is detected when the primary mapping method is ldap_activedir or ldap_generic The most common trigger in a typical environment is when an unmapped user logs into the system; the other two triggers are generally static in nature. Updating the map can be a resource-intensive operation in a domain environment. Therefore, by default, an update is triggered only when an unmapped user logs in and not more often than every 5 minutes. To configure the minimum update interval, select the following: HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > CXFS_Client > Parameters In the regedit menu: Edit > New > DWORD Value Enter MinMapGenTime for the name. Press Enter to edit the value, which is the minimum time between updates in minutes. The minimum time is 1 minute. 176 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage I/O Size Issues Within the QLogic HBA The maximum size of I/O issued by the QLogic HBA defaults to only 256 KB. Many applications are capable of generating much larger requests, so you may want to increase this I/O size to the HBA’s maximum of 1 MB. In regedit, navigate and edit the following value: HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > ql2xxx > Parameters > Device Command Tag Queueing (CTQ) Used by the QLogic HBA Command Tag Queueing (CTQ) is used by HBAs to manage the number of outstanding requests each adapter port has to each target. Adjusting this value (up or down) can improve the performance of applications, depending on the number of clients in the cluster and the number of I/O requests they require to meet the required quality of service. You should only modify this setting for HBA ports that are to be used by CXFS. Do not modify ports used for local storage. While it is possible to change this value with the volume mounted, I/O will halt momentarily and there may be problems if the node is under a heavy load. Note: The Windows QLogic HBA will not recognize the CTQ setting placed on the disk by IRIX nodes. To configure the CTQ for the QLogic HBA, do the following: 1. Start the SANsurfer Manager program and connect. 2. Click the first adapter, for example Adapter QLA2342. 3. Click the Settings tab. 4. Click the Select Settings section drop down list and select Advanced Adapter Settings. 007–4507–015 177 8: Windows Platforms 5. Enter a value in the range 1 through 256 in the Execution Throttle up-down edit control (the default is 16). The value describes how many commands will be queued by the HBA. 6. Repeat step 5 for each HBA port used for CXFS. 7. Click Save, enter the password (config by default), and click OK. 8. Close the SANsurfer Manager program. 9. Reboot the system. If you do not have SANsurfer Manager installed, you can also set the execution throttle in the QLogic BIOS during boot-up. To do this, press ctrl-q when you see the QLogic BIOS message. See the QLogic HBA card and driver documentation. Note: Unlike CTQ, you cannot have separate depths per LUN. Execution throttle limits the number of simultaneous requests for all targets in the specified port. Memory-Mapped Files Flush Time for Windows The MmapFlushTimeSeconds tunable allows the CXFS memory manager to periodically relinquish references to files that are currently memory-mapped but are not in use. This enables other clients in the cluster to access the files. The MmapFlushTimeSeconds registry value specifies the length of time in seconds that a CXFS flushing thread periodically awakens to flush the memory-mapped files that are not in use. The larger the value the longer the client will hold onto the tokens for that file. The default is 30 seconds. Setting the value to 0 disables the flushing of memory-mapped files. (A negative value is invalid and will cause the setting to return to the default 30 seconds.) ! 178 Caution: Change the value for this parameter with caution. Increasing the MmapFlushTimeSeconds time can cause other clients to increase their access wait time if memory-mapping coherency is enabled. Decreasing the value might cause unnecessary flushing and invalidation operations, which will hurt the system performance. 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage In regedit, navigate and edit the following value: HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > CXFS > Parameters > MmapFlushTimeSeconds HBA Installation for Windows The QLogic Fibre Channel host bus adapter (HBA) should be installed according to the QLogic hardware and driver installation instructions. Information regarding large logical unit (LUN) support under Windows can be found in the QLogic documentation and also in Microsoft’s support database: http://support.microsoft.com/default.aspx?scid=kb;en-us;Q310072 http://support.microsoft.com/default.aspx?scid=kb;en-us;Q245637 This section discusses the following: • "Confirming the QLogic HBA Installation for Windows" on page 180 • "Configuring Multiple HBAs for Load Balancing on Windows" on page 180 • "Configuring HBA Failover for Windows 2003" on page 182 007–4507–015 179 8: Windows Platforms Confirming the QLogic HBA Installation for Windows To confirm that the QLogic HBA and driver are correctly installed, select the following to display all of the logical units (LUNs) visible to the HBA and listed within the Device Manager : Start > Settings > Control Panel > Administrative Tools > Computer Management > Device Manager > View > Devices by connection The Windows Device Manager hardware tree will differ from one configuration to another, so the actual location of the QLogic HBA within the Device Manager may differ. After it is located, any LUNS attached will be listed beneath it. Configuring Multiple HBAs for Load Balancing on Windows The QLogic HBA can be configured to mask particular targets so that I/O to one target will always use one HBA port, while I/O to another target will use another HBA port. This procedure assumes that the CXFS driver is already installed and working properly with one HBA. Note: QLogic only supports load balancing of two or more HBAs when all the HBAs have Fibre Channel connections to the LUNs on startup. If the connection to one of the HBAs is not present upon boot, this feature may not function correctly. To configure two HBAs for static load balancing, do the following: 1. Disable fencing for this node. 2. Determine the worldwide port name (WWPN) of the current adapter: 180 a. Install SANsurfer QLogic Agent and Manager b. Run SANsurfer to determine the WWPN c. Record the WWPN on paper 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 3. Shut down Windows. 4. Install the second HBA and start Windows. 5. If the second HBA is a different model from the original one, install its mini port driver (for example, ql2300.sys). 6. Start the QLogic SANsurfer Manager and verify that two HBAs are detected. Verify that both of them mirror the same devices and logical units (LUNs). Notice that both HBAs have the same worldwide node name (WWNN) but different WWPNs. The original HBA can be recognized by its WWPN recorded in step 2. 7. If you are using SanSurfer, set the persistent binding to bind the target to the target ID. For more information, see "Mapping XVM Volumes to Storage Targets on Windows" on page 208³ Otherwise, verify the driver parameters for the QLogic HBAs. Run regedit and go to the following key: HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > ql2xxx > Parameters > Device There should be a value named DriverParameters. This must contain at least the following semicolon-separated parameters: Buschange=0;FixupInquriry=1 It will typically include UseSameNN=1 as well. If the Buschange and FixupInquiry values are not there or are incorrect, edit the parameter list to correct them. Do not delete any other parameters. 8. Configure the HBA port (click Configure). Note: Ignore the following message, which appears when HBA/LAN configuration is done for the first time (line breaks added here for readability): An invalid device and LUN configuration has been detected. Auto configure run automatically. click OK to continue. 007–4507–015 181 8: Windows Platforms The HBA0 devices are automatically set to be visible for Windows applications (notice the open eye) and HBA1 devices are set to be invisible (notice the closed eye). 9. Select the first device in the table, right click, and then select Configure LUN(s). In the new window, select the following: Tools > Load Balance > All LUNs This will statically distribute the LAN’s traffic load that is associated with this device between the two HBAs. Repeat step 9 for each of the other HBA devices. 10. Click Apply to save the new configuration. 11. Update the switch port information. Reenable fencing. 12. Reboot Windows. For more information about using the CXFS GUI or cxfs_admin to perform these tasks, see CXFS Administration Guide for SGI InfiniteStorage. Configuring HBA Failover for Windows 2003 The QLogic HBA on Windows 2003 also supports a mechanism to configure the automatic failover to another HBA port if the configured port is no longer able to see the target. Note: QLogic only supports failover of two or more HBAs when all the HBAs have Fibre Channel connections to the LUNs on startup. If the connection to one of the HBAs is not present upon boot, this feature may not function correctly. To configure two HBAs for failover, do the following: 1. Install the QLdirect driver v8.01.12 by following all the default settings for the installation and verify that the CXFS client still operates normally. 182 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 2. Perform the procedure in "Configuring Multiple HBAs for Load Balancing on Windows" on page 180. With QLdirect installed, the targets can be masked but will also failover to another port if a connection is lost. Preinstallation Steps for Windows This section provides an overview of the steps that you or a qualified Windows service representative will perform on your Windows nodes prior to installing the CXFS software. It contains the following: • "Adding a Private Network for Windows" on page 183 • "Verifying the Private and Public Networks for Windows" on page 185 • "Configuring the Windows XP SP2 Firewall for Windows" on page 186 Adding a Private Network for Windows A private network is required for use with CXFS. See "Use a Private Network" on page 16. Procedure to Add a Private Network for Windows The following procedure provides an overview of the steps required to add a private network to the Windows node. You may skip some steps, depending upon the starting conditions at your site. Do the following: 1. Install the second network adapter in the Windows node as per the network adapter vendor instructions. In some cases you must remove all network setups, restart, and then add network services to each network adapter from scratch. 2. Ensure that the node recognizes two network adapters in the system. Select the following: Start > Settings > Network and Dial-up Connections 007–4507–015 183 8: Windows Platforms 3. Specify the private network settings (IP address, subnet mask, default gateway) on one of the network adapters. Select the following: Start > Settings > Network and Dial-up Connections Then right-mouse click the private network adapter and click Properties. Uncheck all check boxes except Internet Protocol (TCP/IP), thereby enabling only Internet Protocol (TCP/IP), as shown in Figure 8-4. Figure 8-4 Private Properties: Selecting only TCP/IP 184 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 4. Select Internet Protocol (TCP/IP) and then click Properties. Specify the static IP address and DNS server. The private network IP address must be a fixed address and cannot be configured by DHCP. The location of the host information is: %SystemRoot%\system32\drivers\etc\hosts Ensuring Proper Hostname Configuration for Windows It is very important, especially in the presence of private network failover, to ensure that the hostnames and IP addresses for the various network interfaces are properly configured on both the Windows node and the CXFS metadata servers. (For more information about configuring private network failover, see the CXFS Administration Guide for SGI InfiniteStorage.) For example, problems may occur if the cluster is configured using hostnames and the primary network interface on the Windows node is used for the CXFS private network. In this situation, the Windows node may associate the computer name to the primary network interface rather than the private network name configured in DNS. To avoid such problems, SGI recommends that you specify the private network addresses for the Windows node using IP addresses rather than hostnames. Verifying the Private and Public Networks for Windows You can confirm that the previous procedures to add private networks were performed correctly by using the ipconfig command in a DOS command shell. Create a DOS command shell with the following sequence: Start > Programs > Accessories > Command Prompt In the following example, the 10 network is the private network and the 192.168.0 network is the public network on a Windows system: C:\> ipconfig /all Windows IP Configuration Host Name . . . . . . . . . . . . : cxfs1 007–4507–015 185 8: Windows Platforms Primary Dns Suffix . . Node Type . . . . . . . IP Routing Enabled. . . WINS Proxy Enabled. . . DNS Suffix Search List. . . . . . . . . . . . . . . . . . . . . . . . . . : : : : : cxfs-domain.sgi.com Unknown No No cxfs-domain.sgi.com sgi.com DNS . . . . . . . . . . . . . . Suffix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . : : : : : : : : cxfs-domain.sgi.com 3Com EtherLink PCI 00-01-03-46-2E-09 No 192.168.0.101 255.255.255.0 192.168.0.1 192.168.0.x DNS . . . . . . . . . . . . Suffix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . : : : : : : : 3Com EtherLink PCI 00-B0-D0-31-22-7C No 10.0.0.101 255.255.255.0 Ethernet adapter Public: Connection-specific Description . . . . Physical Address. . Dhcp Enabled. . . . IP Address. . . . . Subnet Mask . . . . Default Gateway . . DNS Servers . . . . Ethernet adapter Private: Connection-specific Description . . . . Physical Address. . Dhcp Enabled. . . . IP Address. . . . . Subnet Mask . . . . Default Gateway . . Configuring the Windows XP SP2 Firewall for Windows The Windows XP firewall will prevent a CXFS Windows node from achieving membership unless several ports are opened using the following applet: Start > Settings > Control Panel > Windows Firewall In the Exceptions tab, add the following Ports: • UDP on port 5449 186 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • TCP on port 5450 • TCP on port 5451 • UDP on port 5453 Client Software Installation for Windows The CXFS software will be initially installed and configured by SGI personnel. This section provides an overview of those procedures. You can use the information in this section to verify the installation. Note: This procedure assumes that the CXFS software is installed under the default path %ProgramFiles%\CXFS. If a different path is selected, then that path should be used in its place in the following instructions. To install the CXFS client software on a Windows node, do the following: 1. Read the release notes for the Windows platform to learn about any late-breaking changes in the installation procedure. 2. Log onto the Windows node as Administrator or as an account with administrative privileges. 3. Verify that the node has been updated to the correct service pack: Start > Programs > Accessories > System Tools > System Information 4. Insert the CXFS MultiOS Client 4.2 CD into the Windows host. Normally, the setup program will automatically run, otherwise run the following program from the CD: CD_drive:Windows/setup.exe 5. Acknowledge the software license agreement when prompted and read the release notes, which may contain corrections to this guide. 007–4507–015 187 8: Windows Platforms 6. Install the CXFS software, as shown in Figure 8-5. If the software is to be installed in a nondefault directory, click Browse to select another directory. Click Next when finished. Figure 8-5 Choose Destination Location 7. Enter details for the following fields as shown in Figure 8-6 and click Next when finished: • Drive letter for CXFS: specify the drive letter under which all CXFS filesystems will be mounted. You cannot select a drive letter that is currently in use. • Default Umask: choose the default umask. For more information on the umask, see "Inheritance and Default ACLs for Windows" on page 170. 188 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • User ID mapping lookup sequence: choose the appropriate primary and (optionally) secondary method. See "User Identification Mapping Methods for Windows" on page 162. • Location of fencing, UNIX /etc/passwd and /etc/group files: specify the path where the configuration files will be installed and accessed by the CXFS software if required. The default is the same location as the software under %ProgramFiles%\CXFS. • IP address of the heartbeat network adapter: specify the IP address of the private network adapter on the Windows node. • Additional arguments: contains parameters that are used by the CXFS Client service when it starts up. For most configurations, this should be left alone. To get a list of options, from the command line type cxfs_client -h. Figure 8-6 Enter CXFS Details 8. If you select ldap_activedir as the user ID mapping method, the dialog in Figure 8-7 is displayed after you click Next. 007–4507–015 189 8: Windows Platforms Figure 8-7 Active Directory Details If you have a standard Active Directory configuration with Windows Services for UNIX (SFU), you need only to select the version of SFU and Auth (authenticated) for Bind details; doing so will then define the correct Active Directory defaults. The other server details can normally remain blank. 9. If you select ldap_generic as the user ID mapping method, the dialog in Figure 8-8 is displayed after you click Next. You must provide entries for the Host name and the Base DN to search from fields. For a standard OpenLDAP server, you can select a simple anonymous bind (default settings with the User name and Password fields left blank) and select the standard search settings by clicking Posix. 190 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Figure 8-8 Generic LDAP Details 10. Review the settings, as shown in Figure 8-9. If they appear as you intended, click Next. If you need to make corrections, click Back. 007–4507–015 191 8: Windows Platforms Figure 8-9 Review the Settings After you click Next, the CXFS software will be installed. 11. You will be given the option to start the driver at system start-up, as shown in Figure 8-10. By checking the boxes, you will start the driver automatically when the system starts up and invoke the CXFS Info window minimized to an icon. 192 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Figure 8-10 Start CXFS Driver 12. Choose to restart your computer later if you need to install /etc/passwd and /etc/group files or set up fencing; otherwise, choose to restart your computer now. The default is to restart later, as shown in Figure 8-11. (CXFS will not run until a restart has occurred.) 007–4507–015 193 8: Windows Platforms Figure 8-11 Restart the System Postinstallation Steps for Windows This section discusses the configuration steps that you should perform after installing CXFS software but before restarting a Windows node. The following postinstallation steps are required to ensure the correct operation of the CXFS software: • "Checking Permissions on the Password and Group Files for Windows" on page 195 • "Performing User Configuration for Windows" on page 195 194 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Checking Permissions on the Password and Group Files for Windows The permissions on the passwd and group files must restrict access so that only the system administrator can modify these files. This can be done by right-clicking on the filenames in Windows Explorer and selecting the following: Properties > Security Verify that the permissions are Read for Everyone and Full Control for Administrators. ! Caution: Failure to set permissions on the passwd and group files would allow users to change their UID/GID at will and even gain superuser access to the files on the CXFS filesystem. Performing User Configuration for Windows If the user mapping is not correctly configured, all filesystem operations will be as user nobody. If you selected the passwd and group files user ID mapping method, you must install the passwd and group files. The default passwd and group files that are installed are invalid files containing comments; these invalid files will cause the CXFS Client service to generate warnings in its log file and users may not be correctly configured. You must remove the comments in these files when you install the passwd and group files. After installing the CXFS software onto the Windows node but before restarting it, you must install the /etc/passwd and /etc/group files from a CXFS administration node to the location on the Windows node specified during installation. The defaults are as follows: • /etc/passwd as %ProgramFiles%\CXFS\passwd • /etc/group as %ProgramFiles%\CXFS\group Do the following: 1. Verify that permissions are set as described in "Checking Permissions on the Password and Group Files for Windows" on page 195. 007–4507–015 195 8: Windows Platforms 2. If you selected the Active Directory method, you must specify the UNIX identifiers for all users of the CXFS node. On the domain controller, run the following to specify the UNIX UID and GID of a given user: Start > Program Files > Administrative Tools > Active Directory Users and Computers > Users 3. Select a user and then select: Properties > UNIX Attributes The CXFS software will check for changes to the LDAP database every 5 minutes. 4. After the CXFS software has started, you can use CXFS Info to confirm the user configuration, regardless of the user ID mapping method chosen. See "User Identification for Windows" on page 161. If only the Administrator user is mapped, see "CXFS Client Service Cannot Map Users other than Administrator for Windows" on page 215. I/O Fencing for Windows I/O fencing is required on Windows nodes in order to protect data integrity of the filesystems in the cluster. The CXFS client software automatically detects the worldwide port names (WWPNs) of any supported host bus adapters (HBAs) for Windows nodes that are connected to a switch that is configured in the cluster database. These HBAs are available for fencing. However, if no WWPNs are detected, there will be messages about loading the HBA/SNIA library logged to the %ProgramFiles%\CXFS\log\cxfs_client.log file. If no WWPNs are detected, you can manually specify the WWPNs in the fencing file. Note: This method does not work if the WWPNs are partially discovered. 196 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage The %ProgramFiles%\CXFS\fencing.conf file enumerates the WWPN for all of the HBAs that will be used to mount a CXFS filesystem. There must be a line for the HBA WWPN as a 64-bit hexadecimal number. Note: The WWPN is that of the HBA itself, not any of the devices that are visible to that HBA in the fabric. If used, %ProgramFiles%\CXFS\fencing.conf must contain a simple list of WWPNs, one per line. You must update it whenever the HBA configuration changes, including the replacement of an HBA. Determining the WWPN for a QLogic Switch Do the following to determine the WWPN for a QLogic switch: 1. Set up the switch and HBA. See the release notes for supported hardware. 2. Use the telnet command to connect to the switch and log in as user admin. (The password is password by default). 3. Enter the show topology command to retrieve the WWPN numbers. For example: SANbox #> show topology Unique ID Key ------------A = ALPA, D = Domain ID, Port Number -----0 2 4 5 6 8 12 15 17 Loc Type ---F F F F F F F F E 007–4507–015 P = Port ID Local PortWWN ------20:00:00:c0:dd:06:ff:7f 20:02:00:c0:dd:06:ff:7f 20:04:00:c0:dd:06:ff:7f 20:05:00:c0:dd:06:ff:7f 20:06:00:c0:dd:06:ff:7f 20:08:00:c0:dd:06:ff:7f 20:0c:00:c0:dd:06:ff:7f 20:0f:00:c0:dd:06:ff:7f 20:11:00:c0:dd:06:ff:7f Rem Type ---N N N N N N N N E Remote NodeWWN ------20:00:00:01:ff:03:05:b2 20:01:00:e0:8b:32:ba:14 20:00:00:01:ff:03:05:b2 20:00:00:e0:8b:0b:81:24 20:01:00:e0:8b:32:06:c8 20:00:00:01:ff:03:05:b2 20:00:00:01:ff:03:05:b2 20:00:00:e0:8b:10:04:13 10:00:00:c0:dd:06:fb:04 Unique ID -----020000 020200 020400 020500 020600 020800 020c00 020f00 1(0x1) D P P P P P P P P 197 8: Windows Platforms 19 E 20:13:00:c0:dd:06:ff:7f E 10:00:00:c0:dd:06:fb:04 1(0x1) D The WWPN is the hexadecimal string in the Remote Node WWN column are the numbers that you copy for the fencing.conf file. For example, the WWPN for port 0 is 20000001ff0305b2 (you must remove the colons from the WWPN reported in the show topology output in order to produce the string to be used in the fencing file). 4. Edit or create %ProgramFiles%\CXFS\fencing.conf and add the WWPN for the port. (Comment lines begin with #.) For dual-ported HBAs, you must include the WWPNs of any ports that are used to access cluster disks. This may result in multiple WWPNs per HBA in the file; the numbers will probably differ by a single digit. For example, if you determined that port 0 is the port connected to the switch, your fencing file should contain the following: # WWPN of the HBA installed on this system # 2000000173002c0b 5. To enable fencing, see the CXFS Administration Guide for SGI InfiniteStorage. Determining WWPN for a Brocade Switch Do the following to determine the WWPN for a Brocade switch: 1. Set up the switch and HBA. See the release notes for supported hardware. 2. Use the telnet command to connect to the switch and log in as user admin. (The password is password by default). 3. Execute the switchshow command to display the switches and their WWPN numbers. For example: brocade04:admin> switchshow switchName: brocade04 switchType: 2.4 switchState: Online switchRole: Principal 198 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage switchDomain: 6 switchId: fffc06 switchWwn: 10:00:00:60:69:12:11:9e switchBeacon: OFF port 0: sw Online F-Port 20:00:00:01:73:00:2c:0b port 1: cu Online F-Port 21:00:00:e0:8b:02:36:49 port 2: cu Online F-Port 21:00:00:e0:8b:02:12:49 port 3: sw Online F-Port 20:00:00:01:73:00:2d:3e port 4: cu Online F-Port 21:00:00:e0:8b:02:18:96 port 5: cu Online F-Port 21:00:00:e0:8b:00:90:8e port 6: sw Online F-Port 20:00:00:01:73:00:3b:5f port 7: sw Online F-Port 20:00:00:01:73:00:33:76 port 8: sw Online F-Port 21:00:00:e0:8b:01:d2:57 port 9: sw Online F-Port 21:00:00:e0:8b:01:0c:57 port 10: sw Online F-Port 20:08:00:a0:b8:0c:13:c9 port 11: sw Online F-Port 20:0a:00:a0:b8:0c:04:5a port 12: sw Online F-Port 20:0c:00:a0:b8:0c:24:76 port 13: sw Online L-Port 1 public port 14: sw No_Light port 15: cu Online F-Port 21:00:00:e0:8b:00:42:d8 The WWPN is the hexadecimal string to the right of the port number. For example, the WWPN for port 0 is 2000000173002c0b (you must remove the colons from the WWPN reported in the switchshow output in order to produce the string to be used in the fencing file). 4. Edit or create %ProgramFiles%\CXFS\fencing.conf and add the WWPN for the port. (Comment lines begin with #.) For dual-ported HBAs, you must include the WWPNs of any ports that are used to access cluster disks. This may result in multiple WWPNs per HBA in the file; the numbers will probably differ by a single digit. For example, if you determined that port 0 is the port connected to the switch, your fencing file should contain the following: # WWPN of the HBA installed on this system # 2000000173002c0b 5. To enable fencing, see the CXFS Administration Guide for SGI InfiniteStorage. 007–4507–015 199 8: Windows Platforms Note: You could also use SANsurfer to determine the WWPN. Start/Stop the CXFS Client Service for Windows The CXFS Client service is automatically started when a Windows node is restarted. This behavior may be altered by changing the configuration of the CXFS filesystem driver and the CXFS Client service. By default, the driver is configured to start manually and the Client service is configured to start automatically. Because the CXFS Client service depends on the CXFS filesystem driver, the driver will be started by the service. SGI recommends that the CXFS driver configuration remains manual. You can change the CXFS Client service configuration to start manually, meaning that CXFS does not automatically start, by selecting the following: Start > Settings > Control Panel > Administrative Tools > Services Change CXFS Client to manual rather than automatic. CXFS can then be started and stopped manually by the Administrator using the same selection sequence. Maintenance for Windows This section contains the following: • "Modifying the CXFS Software for Windows" on page 201 • "Upgrading the CXFS Software for Windows" on page 202 • "Removing the CXFS Software for Windows" on page 203 • "Downgrading the CXFS Software for Windows" on page 204 • "Recognizing Storage Changes for Windows" on page 204 200 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Modifying the CXFS Software for Windows To change the location of the software and other configuration settings that were requested in "Client Software Installation for Windows" on page 187, perform the following steps: 1. Select the following: Start > Settings > Control Panel > Add/Remove Programs > CXFS > Add/Remove > Modify Figure 8-12 shows the screen that lets you modify the software. Figure 8-12 Modify CXFS for Windows 007–4507–015 201 8: Windows Platforms 2. Make the necessary configuration changes. You can display the list of possible command line arguments supported by the CXFS Client service by running the service from a command line as follows: C:\> %SystemRoot%\system32\cxfs_client.exe -h 3. Restart the Windows node, which causes the changes to take effect. Upgrading the CXFS Software for Windows To upgrade the CXFS for Windows software, perform the following steps: 1. Insert the CD containing the upgraded software to run the setup program. If the setup program does not automatically start, run CD_drive:Windows/Setup.exe from the CD. 2. A welcome screen will appear that displays the version you are upgrading from and the version you are upgrading to. Figure 8-13 shows the screen that appears when you are upgrading the software. All the configuration options are available to update as discussed in "Client Software Installation for Windows" on page 187. 202 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Figure 8-13 Upgrading the Windows Software 3. Restart the Windows node. The upgraded software will not activate until the Windows node is restarted. Removing the CXFS Software for Windows To remove the CXFS for Windows software, first ensure that no applications on this node are accessing files on a CXFS filesystem. Then, select the following sequence to remove all installed files and registry entries: Start > Settings > Control Panel > Add/Remove Programs > CXFS > Add/Remove > Remove 007–4507–015 203 8: Windows Platforms Figure 8-12 on page 201 shows the screen that lets you remove the software. Note: By default, the passwd, group, and log files will not be removed. To remove these other files, check the following box: Delete all config files, license file, logs, etc Then click Next. You should then restart the Windows node. This will cause the changes to take effect. Downgrading the CXFS Software for Windows To downgrade the CXFS software, follow the instructions to remove the software in "Removing the CXFS Software for Windows" on page 203 and then install the older version of the software as directed in "Client Software Installation for Windows" on page 187. Note: The removal process may remove the configuration file. You should back up the configuration file before removing the CXFS software so that you can easily restore it after installing the downgrade. Recognizing Storage Changes for Windows If you make changes to your storage configuration, you must rerun the HBA utilities to reprobe the storage. See "HBA Installation for Windows" on page 179. If new storage devices are added to the cluster, you must reboot the Windows node in order to discover those devices. GRIO on Windows CXFS supports guaranteed-rate I/O (GRIO) version 2 on the Windows platform. Figure 8-14 shows the CXFS Info display for GRIO. 204 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Figure 8-14 CXFS Info Display for GRIO for Windows For more information, see "Guaranteed-Rate I/O (GRIO) and CXFS" on page 10 and the Guaranteed-Rate I/O Version 2 Guide. XVM Failover V2 on Windows Note: You must not install RDAC pseudo/virtual LUNs onto the Windows client. See "Use of TPSSM" on page 155. To configure the failover2.conf file for a Windows node, do the following: 1. Run the HBA utility (SanSurfer for QLogic, LSIUtil for LSI HBA), and set the persistent binding to bind the target (node and port’s WWN) to the target ID. For more information, see "Mapping XVM Volumes to Storage Targets on Windows" on page 208. 007–4507–015 205 8: Windows Platforms When you bind a persistent target ID to a specific LUN, you can find the WWN of the corresponding port and node (controller) on the storage array. As a result, a target ID corresponds to a controller and a port on the controller. You must make sure that the failover2.conf setting is consistent across the cluster. In the persistent binding, there are normally the following fields: • Type • Target’s node WWN (the controller’s WWN) • Target’s port WWN (the port on the controller) • A configurable target ID Note the controller and port to which the target ID corresponds. 2. Reboot the Windows node. 3. Run the following command: xvm show -v phys | grep affinity > failover2.conf 4. Verify that the failover2.conf file has affinity=0 set for the target ID corresponding to controller A and affinity=1 set for the target ID corresponding to controller B. This is the default setting, but you must make sure that the settings are consistent across the cluster. 5. Copy the failover2.conf file to the CXFS folder. 6. Set the preferred path for each target depending on the storage array’s setting. 7. Run xvm commands to read in the new configuration and change to the preferred path: xvm foconfig -init xvm foswitch -preferred phys For example, assume there are two controllers in a storage array. Controller A has a WWN of 200400a0b82925e2; it has two ports connecting to the host or the fabric. Port 1 has a WWN of 201400A0B82925E2, port 2 has a WWN of 202400A0B82925E2. Controller B has a WWN of 200500a0b82925e2; it also has two ports with WWNs of 201500A0B82925E2 and 202500A0B82925E2, respectively. So there are four paths to LUN 0. 206 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage The SGI ProPack metadata server in this cluster would have entries like the following in its failover2.conf file (where information within angle brackets is an embedded comment): /dev/xscsi/pci08.03.1/node200500a0b82925e2/port2/lun0/disc /dev/xscsi/pci08.03.1/node200500a0b82925e2/port1/lun0/disc /dev/xscsi/pci08.03.1/node200400a0b82925e2/port2/lun0/disc /dev/xscsi/pci08.03.1/node200400a0b82925e2/port1/lun0/disc affinity=1 affinity=1 affinity=0 affinity=0 preferred In this configuration, controller A (node200400a0b82925e2) has an affinity of 0, controller B has an affinity of 1. Controller A’s port 1 is the preferred path. To create the corresponding failover2.conf file on the Windows node, you must first define the persistent-binding targets. Use SANSurfer (for Qlogic HBA) or LSIUtil (for LSI HBA) to define four possible targets: Binding type WWN WWN WWN WWN World Wide Node Name 200500a0b82925e2 200500a0b82925e2 200400a0b82925e2 200400a0b82925e2 World Wide port Name 202500A0B82925E2 201500A0B82925E2 202400A0B82925E2 201400A0B82925E2 Target ID 0 1 2 3 As a result, target 0 corresponds to the first path on the SGI ProPack node. Targets 1, 2, and 3 correspond to the 2nd, 3rd, and 4th path, respectively. To be consistent, target 2 or 3 (on controller A) should be the preferred path on Windows. Then you would run the following command: xvm show -v phys |grep affinity >failover2.conf Assuming that there are two HBA ports on the Windows node, you would end up with eight paths for the two HBA ports. The Windows failover2.conf file would contain something like the following: SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&030 affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&020 affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&010 affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&000 affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&030 affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&020 affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&010 affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&000 affinity=0 # 007–4507–015 207 8: Windows Platforms # # # # # # # Where SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&030 affinity=0 ^^^^^^^ ^^^ | |||-- Lun = 0 | ||--- Target = 1 (1-2 hex digits) | |---- Bus ID = 0 |----------- Host HBA port ID = 67032E4 Finally, you would set the proper affinity values and add the preferred tag to target 2 or 3: SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&030 affinity=0 preferred SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&020 affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&010 affinity=1 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&000 affinity=1 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&030 affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&020 affinity=0 preferred SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&010 affinity=1 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&000 affinity=1 In this setting, the access to LUN 0 from one HBA (with its ID of 67032E4) goes to controller A, port 1. From another HBA (with ID of 1F095A8E), it goes to controller A, port 2. Controller A (to which targets 2 and 3 belong) has an affinity of 0; controller B has an affinity of 1. For more information, see "XVM Failover and CXFS" on page 11, the comments in the failover2.conf file, CXFS Administration Guide for SGI InfiniteStorage, and the XVM Volume Manager Administrator’s Guide. Mapping XVM Volumes to Storage Targets on Windows You must configure the host bus adapter (HBA) on each client to use persistent bindings for all ports used for CXFS filesystems. The method for configuration varies depending on your HBA vendor. For more information, see the following: • Information about binding target devices is in the QLogic SANsurfer help. You must select a port number and then select Bind and the appropriate Target ID for each disk. For example, see Figure 8-15. 208 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • Information about persistent bindings is in the LSI Logic MPT Configuration Utility (LSIUtil.exe). LSIUtil is a command line tool. It has a submenu for displaying and changing persistent mapping. Do the following: 1. Choose the HBA port 2. Select e to enable expert mode 3. Select 15 to manipulate persistent binding 4. Choose one of the following: – 2 to automatically add persistent mappings for all targets – 3 to automatically add persistent mappings for some targets – 6 to manually add persistent mappings. Note: You should disable any failover functionality provided by the HBA. Figure 8-15 QLogic SANsurfer (Copyright QLogic® Corporation, all rights reserved) 007–4507–015 209 8: Windows Platforms Troubleshooting for Windows This section contains the following common Windows problems: • "Verifying that the CXFS Software is Running Correctly for Windows" on page 211 • "Unable to Mount Filesystems on Windows" on page 211 • "Access-Denied Error when Accessing Filesystem on Windows" on page 213 • "Application Works with NTFS but not CXFS for Windows" on page 213 • "Delayed-Write Error Dialog is Generated by the Windows Kernel" on page 214 • "CXFS Client Service Does Not Start on Windows" on page 215 • "HBA Problems" on page 215 • "CXFS Client Service Cannot Map Users other than Administrator for Windows" on page 215 • "Filesystems Are Not Displayed on Windows" on page 216 • "Large Log Files on Windows" on page 217 • "Windows Failure on Restart" on page 217 • "Memory Configuration for Windows" on page 218 • "Application Cannot Create File Under CXFS Drive Letter" on page 218 • "Installation File Not Found Errors" on page 218 Also see: • The Windows cxfsdump documentation located at %ProgramFiles%\CXFS\cxfsdump.html • Chapter 10, "General Troubleshooting" on page 237 210 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Verifying that the CXFS Software is Running Correctly for Windows To verify that the CXFS software is running correctly on a Windows node, do the following: • Verify that the CXFS driver has started by selecting the following: Start > Settings > Control Panel > Administrative Tools > Computer Management > System Tools > Device Manager To show non-plug-and-play devices, select the following: View > Show hidden devices To show the CXFS driver, select the following: Non-Plug and Play Devices > CXFS > Properties • Verify that the CXFS Client service has started by selecting the following: Start > Settings > Control Panel > Administrative Tools > Services Unable to Mount Filesystems on Windows If CXFS Info reports that cms is up but XVM or the filesystem is in another state, then one or more mounts is still in the process of mounting or has failed to mount. The CXFS node might not mount filesystems for the following reasons: • The client may not be able to see all the LUNs. This is usually caused by misconfiguration of the HBA or the SAN fabric: 007–4507–015 211 8: Windows Platforms – Check that the ports on the Fibre Channel switch connected to the HBA are active. Physically look at the switch to confirm the light next to the port is green, or remotely check by using the switchShow command. – Check that the HBA configuration is correct. For information specific to Windows, see "HBA Problems" on page 215. – Check that the HBA can see all the LUNs for the filesystems it is mounting. – Check that the operating system kernel can see all the LUN devices. For example: Start > Settings > Control Panel > Administrative Tools > ComputerManagement > Device Manager > View > Devices by connection – Use debugview to monitor the CXFS driver when it probes the disk devices. You should see it successfully probe each of the LUN devices. – If the RAID device has more than one LUN mapped to different controllers, ensure the node has a Fibre Channel path to all relevant controllers. • The CXFS Client service may not be running. To verify that it is running, open the Task Manager by pressing the Ctrl+Shift+Esc, or right-mouse click on an empty area of the taskbar and select Task Manager from the popup menu. In the Processes tab, search for cxfs_client.exe in the Image Name column. You can sort the processes by name by clicking the heading of the column. • The filesystem may have an unsupported mount option. Check the cxfs_client.log for mount option errors or any other errors that are reported when attempting to mount the filesystem. • The cluster membership (cms), XVM, or the filesystems may not be up on the node. Use CXFS Info to determine the current state of cms, XVM, and the filesystems. Do the following: – If cms is not up, check the following: 212 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • Is the node is configured on the administration node with the correct hostname? See "Configuring Hostnames on Mac OS X" on page 78. • Has the node been added to the cluster and enabled? See "Verifying the Cluster Status" on page 228. – If XVM is not up, check that the HBA is active and can see the LUNs. – If the filesystem is not up, check that one or more filesystems are configured to be mounted on this node and Also, check the CXFS Client Log in CXFS Info for mount errors. They will be highlighted in red. Access-Denied Error when Accessing Filesystem on Windows If an application reports an access-denied error, do the following: • Check the list of users and groups that CXFS Info has mapped to a UNIX UID and GID. If the current user is not listed as one of those users, check that the user mapping method that was selected is configured correctly, that there is an LDAP server running (if you are using LDAP), and that the user is correctly configured. • Increase the verbosity of output from the CXFS Client service so that it shows each user as it is parsed and mapped. • Use Sysinternals Filemon to monitor the application and verify that there is no file that has been created below a mount point under the CXFS drive letter. An error may be caused by attempting to create a file below the drive letter but above the mount point. For more information about Filemon, see: http://www.sysinternals.com Application Works with NTFS but not CXFS for Windows The Windows filesystem APIs are far more extensive than the UNIX POSIX APIs and there are some limitations in mapping the native APIs to POSIX APIs (see "Functional Limitations and Considerations for Windows" on page 155). Sometimes these limitations may affect applications, other times the applications that have only ever been tested on NTFS make assumptions about the underlying filesystem without querying the filesystem first. 007–4507–015 213 8: Windows Platforms If an application does not behave as expected, and retrying the same actions on an NTFS filesystem causes it to behave as was expected, then third-party tools like SysInternals Filemon can be used to capture a log of the application when using both NTFS and CXFS. Look for differences in the output and try to determine the action and/or result that is different. Using the same filenames in both places will make this easier. For more information about Filemon, see: http://www.sysinternals.com Note: There are some problems that will not be visible in a Sysinternals Filemon log. For example, some older applications use only a 32-bit number when computing filesystem or file size. Such applications may report out of disk space errors when trying to save a file to a large (greater than 1 TB) filesystem. Delayed-Write Error Dialog is Generated by the Windows Kernel A delayed-write error is generated by the Windows kernel when it attempts to write file data that is in the cache and has been written to disk, but the I/O failed. The write call made by the application that wrote the data may have completed successfully some time ago (the application may have even exited by now), so there is no way for the Windows kernel to notify the application that the I/O failed. This error can occur on a CXFS filesystem if CXFS has lost access to the disk due to the following: • Loss of membership resulting in the Windows client being fenced and the filesystem being unmounted. Check that the Windows client is still in membership and that there are no unmount messages in the cxfs_client.log file. • Loss of Fibre Channel connection to the Fibre Channel switch or RAID. Check the Fibre Channel connections and use the SanManager tool to verify that the HBA can still see all of the LUNs. Make sure the filesystems are still mounted. • The metadata server returned an I/O error. Check the system log on the metadata server for any I/O errors on the filesystem and take corrective action on the server if required. 214 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage CXFS Client Service Does Not Start on Windows The following error may be seen when the CXFS Client service attempts to start: Error 10038: An operation was attempted on something that is not a socket. Check the CXFS Client Log in CXFS Info for information on why the CXFS client failed to start. HBA Problems If you have a problem with an HBA, check the following: • Has plug-and-play been disabled? Plug-and-play functionality, which would normally discover new devices, is disabled by the QLogic HBA software so that it can perform path failover without Windows attempting to manage the change in available devices. Disabling the plug-and-play feature also enables CXFS to map CXFS volumes to the same devices if a Fibre Channel path was lost and then reestablished. If HBA path failover or CXFS rediscovering XVM volumes and filesystems does not appear to work, verify that plug-and-play is disabled. • Are there QLogic management tool event and alarm log messages? Select the following: Start > Programs > QLogic Management Suite > SANsurfer Also see "Recognizing Storage Changes for Windows" on page 204 and "Unable to Mount Filesystems on Windows" on page 211. CXFS Client Service Cannot Map Users other than Administrator for Windows If the CXFS Client service cannot map any users other than Administrator and there are no LDAP errors in the cxfs_client log file (and you are using LDAP), you must change the configuration to allow reading of the attributes. 007–4507–015 215 8: Windows Platforms Do the following: 1. Select the following: Start > Settings > Control Panel > Administrative Tools > Active Directory Users and Computers 2. Select the following: View > Advanced Features 3. Right-mouse click the Users folder under the domain controller you are using and select the following: Properties > Security > Advanced > Add 4. Select Authenticated Users from the list and click OK. 5. Select Child Objects Only from the Apply onto drop-down list and check Read All Properties from the list of permissions. 6. Click OK to complete the operation. If the above configuration is too broad security-wise, you can enable the individual attributes for each user to be mapped. Filesystems Are Not Displayed on Windows If the CXFS drive letter is visible in Windows Explorer but no filesystems are mounted, do the following: • Run %ProgramFiles%\CXFS\cxfs_info to ensure that the filesystems have been configured for this node. • Verify the filesystems that should be mounted. For more information, see "Mounting Filesystems on the Client-Only Nodes" on page 226 . 216 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • Ensure that the CXFS metadata server is up and that the Windows node is in the cluster membership; see "Verifying the Cluster Status" on page 228. • Check that the CXFS Client service has started. See "Start/Stop the CXFS Client Service for Windows" on page 200 and "Verifying that the CXFS Software is Running Correctly for Windows" on page 211. • Check the CXFS Client Log in CXFS Info for warnings and errors regarding mounting filesystems. • Check the cluster configuration to ensure that this node is configured to mount one or more filesystems. Large Log Files on Windows The CXFS Client service creates the following log file: %ProgramFiles%\CXFS\log\cxfs_client.log On an upgraded system, this log file may become quite large over a period of time if the verbosity level is increased. (New installations perform automatic log rotation when the file grows to 10MB.) To verify that log rotation is enabled, check the Addition arguments by modifying the installation (see "Modifying the CXFS Software for Windows" on page 201) and append the following if the -z option is not present: -z 10000000 You must restart the CXFS Client service for the new settings to take effect. See "Start/Stop the CXFS Client Service for Windows" on page 200 for information on how to stop and start the CXFS Client service. Windows Failure on Restart If the CXFS Windows node fails to start and terminates in a blue screen, restart your computer and select the backup hardware profile (with CXFS disabled). Alternatively, pressing L at the Hardware Profile menu will select the last configuration that was successfully started and shut down. If the node has only one hardware profile, press the spacebar after selecting the boot partition to get to the Hardware Profile menu. 007–4507–015 217 8: Windows Platforms Memory Configuration for Windows A Windows problem may affect Windows CXFS nodes performing large asynchronous I/O operations. If the Windows node crashes with a NO_MORE_SYSTEM_PTES message, the work-around described in the following link should be considered: http://www.microsoft.com/technet/treeview/default.asp?url=/technet/prodtechnol/winxppro/reskit/prmd_stp_fztl.asp Application Cannot Create File Under CXFS Drive Letter If an application requires that it be able to create files and/or directories in the root of the CXFS drive, you must create a virtual drive for the system that maps to a mounted filesystem directory. This can be performed using the subst command from the command prompt. For example, to use the CXFS filesystem X:\mnt\tp9500_0 to the free drive letter V, you would enter the following: C:\> subst V: X:\mnt\tp9500_0 To remove the mapping, run: C:\> subst V: /D Installation File Not Found Errors Some installation programs are known to use old Windows APIs for file operations so that they work on older versions of Windows. These APIs use 8.3 filenames rather then the full filename, so the installation may fail with file not found or similar errors. In general, SGI recommends that you install software to a local disk and use CXFS filesystems primarily for data storage. Reporting Windows Problems To report problems about a Windows node, you should retain platform-specific information and save crash dumps. 218 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Retain Windows Information When reporting a problem about a CXFS Windows node to SGI, run the following: Start > Program Files > CXFS > CXFS Dump This will collect the following information: • System information • CXFS registry settings • CXFS client logs • CXFS version information • Network settings • Event log • (optionally) Windows crash dump, as described in "Save Crash Dumps for Windows" on page 219 You can obtain information about the cluster by running the cxfsdump utility on a CXFS administration node. Save Crash Dumps for Windows If you are experiencing crashes or if the Windows node hangs, you should configure the Windows node to save crash dumps to a filesystem that is not a CXFS filesystem. This crash dump can then be analyzed by SGI. To do this, click the right mouse button on the My Computer icon and select the following: Properties > Advanced > Startup and Recovery > Write debugging information to 007–4507–015 219 8: Windows Platforms Enter a path on a filesystem other than a CXFS filesystem.You may also select a Kernel Memory Dump, which is a smaller dump that typically contains enough information regarding CXFS problems. These changes will take affect only after the node is restarted. Generating a Crash Dump on a Hung Windows Node If user applications on a Windows node are no longer responsive and cannot be killed, you should attempt to generate a crash dump by forcing the node to crash. After configuring the crash dump location (see "Save Crash Dumps for Windows" on page 219), you can modify the registry so that a combination of key strokes will cause the Windows node to crash. This will only work on machines with a PS/2 keyboard. To do this, run the registry editor as follows: Start > Run > regedit Then navigate to: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters Add a new entry by selecting the following: Edit > Add Value Enter the following information: • Value Name: CrashOnCtrlScroll • Data Type: REG_DWORD • Value: l These changes will take affect only after the node is restarted. To generate a crash on the node after applying these changes, hold the right CTRL key and press SCROLL LOCK twice. See the following for more information: http://support.microsoft.com/?kbid=244139 220 007–4507–015 Chapter 9 Cluster Configuration This chapter provides an overview of the procedures to add the client-only nodes to an established cluster. It assumes that you already have a cluster of server-capable administration nodes installed and running with mounted filesystems. These procedures will be performed by you or by SGI service personnel. All CXFS administrative tasks other than restarting the Windows node must be performed using the CXFS GUI (invoked by the cxfsmgr command and connected to a CXFS administration node) or the cxfs_admin command on any host that has access permission to the cluster. The GUI and cxfs_admin provide a guided configuration and setup help for defining a cluster. This section discusses the following tasks in cluster configuration: • "Defining the Client-Only Nodes" on page 222 • "Adding the Client-Only Nodes to the Cluster (GUI)" on page 223 • "Defining the Switch for I/O Fencing" on page 224 • "Starting CXFS Services on the Client-Only Nodes (GUI)" on page 225 • "Verifying LUN Masking" on page 225 • "Mounting Filesystems on the Client-Only Nodes" on page 226 • "Unmounting Filesystems" on page 226 • "Forced Unmount of CXFS Filesystems" on page 227 • "Restarting the Windows Node" on page 227 • "Verifying the Cluster Configuration" on page 227 • "Verifying Connectivity in a Multicast Environment" on page 228 • "Verifying the Cluster Status" on page 228 • "Verifying the I/O Fencing Configuration" on page 232 • "Verifying Access to XVM Volumes" on page 233 For detailed configuration instructions, see the CXFS Administration Guide for SGI InfiniteStorage. 007–4507–015 221 9: Cluster Configuration Defining the Client-Only Nodes To add a client-only node to a CXFS cluster, you must define it as a node in the pool. Do the following to determine the value for the hostname field in the GUI: • AIX: use the value displayed by /usr/bin/hostname • Linux: use the value displayed by /bin/hostname • Mac OS X: use the value displayed by /bin/hostname • SGI ProPack: use the value displayed by /bin/hostname • Solaris: use the value displayed by /bin/hostname • Windows: select the following: Start > Settings > Network and Dial-up Connections > Advanced > Network Identification When you specify that a node is running an operating system other than IRIX or Linux, the node will automatically be defined as a client-only node and you cannot change it. (These nodes cannot be potential metadata servers and are not counted when calculating the CXFS kernel membership quorum.) For client-only nodes, you must specify a unique node ID. For example, the following shows the entries used to define a Solaris node named solaris1 in the mycluster cluster: # /usr/cluster/bin/cxfs_admin -i mycluster cxfs_admin:mycluster> create node name=solaris1 os=solaris private_net=192.168.0.178 Node "solaris1" has been created, waiting for it to join the cluster... Waiting for node solaris1, current status: Inactive Waiting for node solaris1, current status: Establishing membership Waiting for node solaris1, current status: Probing XVM volumes Operation completed successfully 222 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Or, in prompting mode: # /usr/cluster/bin/cxfs_admin -i mycluster cxfs_admin:mycluster> create node Specify the attributes for create node: name? solaris1 os? solaris private_net? 192.168.0.178 Node "solaris1" has been created, waiting for it to join the cluster... Waiting for node solaris1, current status: Inactive Waiting for node solaris1, current status: Establishing membership Waiting for node solaris1, current status: Probing XVM volumes Operation completed successfully When you specify that a node is running an operating system other than IRIX or Linux, the node will automatically be defined as a client-only node and you cannot change it. (These nodes cannot be potential metadata servers and are not counted when calculating the CXFS kernel membership quorum.) For client-only nodes, you must specify a unique node ID if you use the GUI; cxfs_admin provides a default node ID. The following shows a cxfs_admin example in basic mode: cxfs_admin:mycluster> create node Specify the attributes for create node: name? cxfsopus5 os? Linux private_net? 10.11.20.5 type? client_only Node "cxfsopus5" has been created, waiting for it to join the cluster... For details about these commands, see the CXFS Administration Guide for SGI InfiniteStorage. Adding the Client-Only Nodes to the Cluster (GUI) If you are using the GUI, you must add the defined nodes to the cluster. This happens by default if you are using cxfs_admin. After you define all of the client-only nodes, you must add them to the cluster. 007–4507–015 223 9: Cluster Configuration Depending upon your filesystem configuration, you may also need to add the node to the list of clients that have access to the volume. See "Mounting Filesystems on the Client-Only Nodes" on page 226. Defining the Switch for I/O Fencing You are required to use I/O fencing on client-only nodes in order to protect data integrity. I/O fencing requires a switch; see the release notes for supported switches. For example, for a QLogic switch named myswitch: cxfs_admin:mycluster> create switch name=myswitch vendor=qlogic After you have defined the switch, you must ensure that all of the switch ports that are connected to the cluster nodes are enabled. To determine port status, enter the following on a CXFS administration node: irix# hafence -v If there are disabled ports that are connected to cluster nodes, you must enable them. Log into the switch as user admin and use the following command: switch# portEnable portnumber You must then update the switch port information For example, suppose that you have a cluster with port 0 connected to the node blue, port 1 connected to the node green, and port 5 connected to the node yellow, all of which are defined in cluster colors. The following output shows that the status of port 0 and port 1 is disabled and that the host is UNKNOWN (as opposed to port 5, which has a status of enabled and a host of yellow). Ports 2, 3, 4, 6, and 7 are not connected to nodes in the cluster and therefore their status does not matter. irix# hafence -v Switch[0] "ptg-brocade" has 8 ports Port 0 type=FABRIC status=disabled Port 1 type=FABRIC status=disabled Port 2 type=FABRIC status=enabled Port 3 type=FABRIC status=enabled Port 4 type=FABRIC status=enabled Port 5 type=FABRIC status=enabled Port 6 type=FABRIC status=enabled Port 7 type=FABRIC status=enabled 224 hba=0000000000000000 hba=0000000000000000 hba=210000e08b05fecf hba=210000e08b01fec5 hba=210000e08b01fec3 hba=210000e08b019ef0 hba=210000e08b0113ce hba=210000e08b027795 on on on on on on on on host host host host host host host host UNKNOWN UNKNOWN UNKNOWN UNKNOWN UNKNOWN yellow UNKNOWN UNKNOWN 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage In this case, you would need to enable ports 0 and 1: Logged in to the switch: switch# portEnable 0 switch# portEnable 1 Logged in to a CXFS administration node: irix# hafence -v Switch[0] "ptg-brocade" has 8 ports Port 0 type=FABRIC status=disabled Port 1 type=FABRIC status=disabled Port 2 type=FABRIC status=enabled Port 3 type=FABRIC status=enabled Port 4 type=FABRIC status=enabled Port 5 type=FABRIC status=enabled Port 6 type=FABRIC status=enabled Port 7 type=FABRIC status=enabled hba=210000e08b0103b8 hba=210000e08b0102c6 hba=210000e08b05fecf hba=210000e08b01fec5 hba=210000e08b01fec3 hba=210000e08b019ef0 hba=210000e08b0113ce hba=210000e08b027795 on on on on on on on on host host host host host host host host UNKNOWN UNKNOWN UNKNOWN UNKNOWN UNKNOWN yellow UNKNOWN UNKNOWN irix# hafence -v Switch[0] "ptg-brocade" has 8 ports Port 0 type=FABRIC status=disabled Port 1 type=FABRIC status=disabled Port 2 type=FABRIC status=enabled Port 3 type=FABRIC status=enabled Port 4 type=FABRIC status=enabled Port 5 type=FABRIC status=enabled Port 6 type=FABRIC status=enabled Port 7 type=FABRIC status=enabled hba=210000e08b0103b8 hba=210000e08b0102c6 hba=210000e08b05fecf hba=210000e08b01fec5 hba=210000e08b01fec3 hba=210000e08b019ef0 hba=210000e08b0113ce hba=210000e08b027795 on on on on on on on on host host host host host host host host blue green UNKNOWN UNKNOWN UNKNOWN yellow UNKNOWN UNKNOWN Starting CXFS Services on the Client-Only Nodes (GUI) After adding the client-only nodes to the cluster with the GUI, you must start CXFS services for them, which enables the node by setting a flag for the node in the cluster database. This happens by default with cxfs_admin. Verifying LUN Masking You should verify that the HBA has logical unit (LUN) masking configured such that the LUNs are visible to all the nodes in the cluster after you connect the HBA to the 007–4507–015 225 9: Cluster Configuration switch and before configuring the filesystems with XVM. For more information, see the RAID documentation. Mounting Filesystems on the Client-Only Nodes If you have specified that the filesystems are to be automatically mounted on any newly added nodes (such as setting mount_new_nodes=true for a filesystem in cxfs_admin), you do not need to specifically mount the filesystems on the new client-only nodes that you added to the cluster. If you have specified that filesystems will not be automatically mounted (for example, by setting the advanced-mode mount_new_nodes=false for a filesystem in cxfs_admin), you can do the following to mount the new filesystem: • With cxfs_admin, use the following command to mount the specified filesystem: mount filesystemname nodes=nodename For example: cxfs_admin:mycluster> mount fs1 nodes=solaris2 You can leave mount_new_nodes=false. You do not have to unmount the entire filesystem. • With the GUI, you can mount the filesystems on the new client-only nodes by unmounting the currently active filesystems, enabling the mount on the required nodes, and then performing the actual mount. Note: SGI recommends that you enable the forced unmount feature for CXFS filesystems, which is turned off by default; see "Enable Forced Unmount" on page 19 and "Forced Unmount of CXFS Filesystems" on page 227. Unmounting Filesystems You can unmount a filesystem from all nodes in the cluster or from just the node you specify. 226 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage For example, to unmount the filesystem fs1 from all nodes: cxfs_admin:mycluster> unmount fs1 To unmount the filesystem only from the node mynode: cxfs_admin:mycluster> unmount fs1 nodes=mynode Forced Unmount of CXFS Filesystems Normally, an unmount operation will fail if any process has an open file on the filesystem. However, a forced unmount allows the unmount to proceed regardless of whether the filesystem is still in use. For example: cxfs_admin:mycluster> create filesystem name=myfs forced_unmount=true Using the CXFS GUI, define or modify the filesystem to unmount with force and then unmount the filesystem. For details, see the “CXFS Filesystems Tasks with the GUI” sections of the GUI chapter in the CXFS Administration Guide for SGI InfiniteStorage. Restarting the Windows Node After completing the steps in "Postinstallation Steps for Windows" on page 194 and this chapter, you should restart the Windows node. This will automatically start the driver and the CXFS Client service. When you log into the node after restarting it, Windows Explorer will list the CXFS drive letter, which will contain the CXFS filesystems configured for this node. Verifying the Cluster Configuration To verify that the client-only nodes have been properly added to the cluster, run the cxfs-config command on the metadata server. For example: irix# /usr/cluster/bin/cxfs-config -all -check 007–4507–015 227 9: Cluster Configuration This command will dump the current cluster nodes, private network configuration, filesystems, XVM volumes, failover hierarchy, and switches. It will check the configuration and report any common errors. You should rectify these error before starting CXFS services. Verifying Connectivity in a Multicast Environment To verify general connectivity in a multicast environment, you can execute a UNIX ping command on the 224.0.0.1 IP address. To verify the CXFS heartbeat, use the 224.0.0.250 IP address. The 224.0.0.250 address is the default CXFS heartbeat multicast address (because it is the default, this address does not have to appear in the /etc/hosts file). Note: A node is capable of responding only when the administration daemons (fs2d, cmond, cad, and crsd) or the cxfs_client daemon is running. For example, to see the response for two packets sent from Solaris IP address 128.162.240.27 to the multicast address for CXFS heartbeat and ignore loopback, enter the following: solaris# ping -i 128.162.240.27 -s -L 224.0.0.250 2 To override the default address, you can use the -c and -m options or make the name cluster_mcast resolvable on all nodes (such as in the /etc/hosts file). For more information, see the cxfs_client man page. Verifying the Cluster Status To verify that the client-only nodes have been properly added to the cluster and that filesystems have been mounted, use the view area of the CXFS GUI, the cxfs_admin status command, or the clconf_info command (on a CXFS administration node) and the cxfs_info command (on a client-only node). For example, using cxfs_admin: cxfs_admin:mycluster> status Cluster : mycluster Tiebreaker : irix-client 228 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Licenses : enterprise allocated 12 of 278 workstation allocated 4 of 15 ------------------ -------- ------------------------------------------------Node Cell ID Status ------------------ -------- ------------------------------------------------mds1 * 6 Stable mds2 * 0 Stable aix-client 4 Stable irix-client 1 Stable mac-client 3 Inactive solaris-client 2 Stable windows-client 5 Stable -----------------Filesystem -----------------concatfs mirrorfs stripefs ------------------Mount Point ------------------/mnt/concatfs /mnt/mirrorfs /mnt/stripefs -----------------Switch -----------------fcswitch12 fcswitch13 ---------Port Count ---------32 32 -------------------------------------Status -------------------------------------Mounted (mds1) Mounted (mds1) Mounted (mds1) ----------------------------------------------Known Fenced Ports ----------------------------------------------None None The following example for a different cluster shows clconf_info output: irix# /usr/cluster/bin/clconf_info Event at [2004-05-04 19:00:33] Membership since Tue May 4 19:00:33 2004 ____________ ______ ________ ______ ______ Node NodeID Status Age CellID ____________ ______ ________ ______ ______ cxfsirix4 1 up 27 2 cxfsirix5 2 up 26 1 cxfsirix6 3 up 27 0 cxfswin4 5 up 1 5 cxfssun3 6 up 0 6 cxfsmac3.local. 17 up 0 7 ____________ ______ ________ ______ ______ 007–4507–015 229 9: Cluster Configuration 2 CXFS FileSystems /dev/cxvm/vol0 on /mnt/vol0 enabled server=(cxfsirix4) 5 client(s)=(cxfsirix6,cxfsirix5,cxfswin4,cxfssun3,cxfsmac3.local.) /dev/cxvm/vol1 on /mnt/vol1 enabled server=(cxfsirix5) 5 client(s)=(cxfsirix6,cxfsirix4,cxfswin4,cxfssun3,cxfsmac3.local.) status=UP status=UP On client-only nodes, the cxfs_info command serves a similar purpose. The command path is as follows: • AIX, IRIX, Linux, and Solaris: /usr/cxfs_cluster/bin/cxfs_info • Mac OS X: /usr/cluster/bin/cxfs_info • Windows: %ProgramFiles%\CXFS\cxfs_info.exe On AIX, Linux, Mac OS X, and Solaris nodes, you can use the -e option to wait for events, which keeps the command running until you kill the process and the -c option to clear the screen between updates. For example, on a Solaris node: solaris# /usr/cxfs_cluster/bin/cxfs_info cxfs_client status [timestamp Jun 03 03:48:07 / generation 82342] CXFS client: state: reconfigure (2), cms: up, xvm: up, fs: up Cluster: performance (123) - enabled Local: cxfssun3 (9) - enabled Nodes: cxfsirix4 enabled up 2 cxfsirix5 enabled up 1 cxfsirix6 enabled up 0 cxfswin4 enabled up 5 cxfssun3 enabled up 6 cxfsmac3.local. enabled up 7 Filesystems: vol0 enabled mounted vol0 vol1 enabled mounted vol1 /mnt/vol0 /mnt/vol1 The CXFS client line shows the state of the client in the cluster, which can be one of the following states: 230 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage bootstrap Initial state after starting cxfs_client, while listening for bootstrap packets from the cluster. connect Connecting to the CXFS metadata server. query The client is downloading the cluster database from the metadata server. reconfigure The cluster database has changed, so the client is reconfiguring itself to match the cluster database. stable The client has been configured according to what is in the cluster database. stuck The client is unable to proceed, usually due to a configuration error. Because the problem may be transient, the client periodically reevaluates the situation. The number in parenthesis indicates the number of seconds the client will wait before retrying the operation. With each retry, the number of seconds to wait is increased; therefore, the higher the number the longer it has been stuck. See the log file for more information. terminate The client is shutting down. The cms field has the following states: unknown Initial state before connecting to the metadata server. down The client is not in membership. fetal The client is joining membership. up The client is in membership. quiesce The client is dropping out of membership. The xvm field has the following states: 007–4507–015 unknown Initial state before connecting to the metadata server. down After membership, but before any XVM information has been gathered. fetal Gathering XVM information. up XVM volumes have been retrieved. 231 9: Cluster Configuration The fs field has the following states: unknown Initial state before connecting to the metadata server. down One or more filesystems are not in the desired state. up All filesystems are in the desired state. retry One or more filesystems cannot be mounted/unmounted, and will retry. See the "Filesystem" section of cxfs_info output to see the affected filesystems. Verifying the I/O Fencing Configuration To determine if a node is correctly configured for I/O fencing, log in to a CXFS administration node and use the cxfs-config(1M) command. For example: irix# /usr/cluster/bin/cxfs-config The failure hierarchy for a client-only node should be listed as Fence, Shutdown, as in the following example: Machines: node cxfswin2: node 102 cell 1 enabled Windows client_only hostname: cxfswin2.melbourne.sgi.com fail policy: Fence, Shutdown nic 0: address: 192.168.0.102 priority: 1 See "Defining the Client-Only Nodes" on page 222 to change the failure hierarchy for the node if required. The HBA ports should also be listed in the switch configuration: Switches: switch 1: 16 port brocade admin@asg-fcsw7 port 5: 210200e08b51fd49 cxfswin2 port 15: 210100e08b32d914 cxfsirix2 switch 2: 16 port brocade admin@asg-fcsw8 port 5: 210300e08b71fd49 cxfswin2 port 14: 210000e08b12d914 cxfsirix2 No warnings or errors should be displayed regarding the failure hierarchy or switch configuration. 232 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage If the HBA ports for the client node are not listed, see the following: • "I/O Fencing for AIX" on page 39 • "I/O Fencing for Linux" on page 63 • "I/O Fencing for Mac OS X" on page 94 • "I/O Fencing for SGI ProPack Client-Only Nodes" on page 109 • "I/O Fencing for Solaris" on page 136 • "I/O Fencing for Windows" on page 196 Verifying Access to XVM Volumes To verify that a client node has access to all XVM volumes that are required to mount the configured filesystems, log on to a CXFS administration node and run: irix# /usr/cluster/bin/cxfs-config -xvm This will display the list of filesystems and the XVM volume and volume elements used to construct those filesystems. For example: fs stripe1: /mnt/stripe1 enabled device = /dev/cxvm/stripe1 force = false options = [] servers = cxfsirix5 (0), cxfsirix4 (1) clients = cxfsirix4, cxfsirix5, cxfsirix6, cxfsmac4, cxfssun1 xvm: vol/stripe1 0 online,open subvol/stripe1/data 2292668416 online,open stripe/stripe1 2292668416 online,open slice/d9400_0s0 1146334816 online,open slice/d9400_1s0 1146334816 online,open data size: 1.07 TB It is then possible to run the xvm command to identify the XVM volumes and disk devices. This provides enough information to identify the device’s WWN, LUN, and 007–4507–015 233 9: Cluster Configuration controller. In the following example, the slice/d9400_0s0 from phys/d9400_0 is LUN 0 located on a RAID controller with WWN 200500a0b80cedb3. irix# xvm show -e -t vol vol/stripe1 0 online,open subvol/stripe1/data 2292668416 online,open stripe/stripe1 2292668416 online,open (unit size: 1024) slice/d9400_0s0 1146334816 online,open (d9400_0:/dev/rdsk/200500a0b80cedb3/lun0vol/c2p1) slice/d9400_1s0 1146334816 online,open (d9400_1:/dev/rdsk/200400a0b80cedb3/lun1vol/c3p1) On all platforms other than Windows, it is then possible to run the xvm command on the client to identify the matching disk devices on the client: solaris# /usr/cxfs_cluster/bin/xvm show -e -t vol vol/stripe1 0 online,open subvol/stripe1/data 2292668416 online,open stripe/stripe1 2292668416 online,open (unit size: 1024) slice/d9400_0s0 slice/d9400_1s0 1146334816 online,open (d9400_0:pci@9,600000/JNI,FCR@2,1/sd@2,0) 1146334816 online,open (d9400_1:pci@9,600000/JNI,FCR@2/sd@2,1) The process to map device names to identify the target WWN is platform-specific. See: • "Mapping XVM Volumes to Storage Targets on AIX" on page 43 • "Mapping XVM Volumes to Storage Targets on Linux" on page 70 • "Mapping XVM Volumes to Storage Targets on Mac OS X" on page 98 • "Mapping XVM Volumes to Storage Targets on SGI ProPack" on page 115 • "Mapping XVM Volumes to Storage Targets on Solaris" on page 141 Note: There is no xvm command on the Windows platform and therefore no method to map XVM volumes directly to disk devices under Windows. If a disk device has not been found for a particular volume element, the following message will be displayed instead of the device name: no direct attachment on this cell For example: solaris# /usr/cxfs_cluster/bin/xvm show -e -t volvol/stripe1 0 online,open,no physical connection 234 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage subvol/stripe1/data stripe/stripe1 2292668416 online,open 2292668416 online,open (unit size: 1024) slice/d9400_0s0 1146334816 online,open (d9400_0:no direct attachment on this cell) slice/d9400_1s0 1146334816 online,open (d9400_1:no direct attachment on this cell) Using the device information from the CXFS administration node, it should then be possible to determine if the client can see the same devices using the client HBA tools and the RAID configuration tool. To see the complete list of volumes and devices mappings, especially when XVM failover v2 is configured, run: solaris# /usr/cxfs_cluster/bin/xvm show -v phys For more information about xvm, see the XVM Volume Manager Administrator’s Guide. 007–4507–015 235 Chapter 10 General Troubleshooting This chapter contains the following: • "Identifying Problems" on page 237 • "Typical Problems and Solutions" on page 240 • "Reporting Problems to SGI" on page 246 Also see the following platform-specific sections: • "Troubleshooting for AIX" on page 44 • "Troubleshooting for Linux" on page 70 • "Troubleshooting for Mac OS X" on page 99 • "Troubleshooting for Solaris" on page 142 • "Troubleshooting for Windows" on page 210 For more advanced cluster troubleshooting, see the CXFS Administration Guide for SGI InfiniteStorage. Identifying Problems This section provides tips about identifying problems: • "Is the Client-Only Node Configured Correctly? " on page 238 • "Is the Client-Only Node in Membership?" on page 238 • "Is the Client-Only Node Mounting All Filesystems?" on page 238 • "Can the Client-Only Node Access All Filesystems?" on page 239 • "Are There Error Messages?" on page 239 • "What Is the Network Status?" on page 239 • "What is the Status of XVM Mirror Licenses?" on page 240 007–4507–015 237 10: General Troubleshooting Is the Client-Only Node Configured Correctly? To determine the current configuration of a node in a cluster, run the following command on a CXFS administration node: /usr/cluster/bin/cxfs-config -all For more information, see "Verifying the Cluster Status" on page 228. Confirm that the host type, private network, and failure hierarchy are configured correctly, and that no warnings or errors are reported. You should rectify any warnings or errors before proceeding with further troubleshooting. Is the Client-Only Node in Membership? To determine if the node is in the cluster membership, use the tools described in "Verifying the Cluster Status" on page 228. If the client is not in membership, see the following: • "Verifying the Cluster Configuration" on page 227 • "Verifying Connectivity in a Multicast Environment" on page 228 • "Unable to Achieve Membership" on page 241 Is the Client-Only Node Mounting All Filesystems? To determine if the node has mounted all configured filesystems, use the tools described in "Verifying the Cluster Status" on page 228. If the client has not mounted all filesystems, see the following: • "Verifying the Cluster Configuration" on page 227 • "Verifying Access to XVM Volumes" on page 233 • "Determining If a Client-Only Node Is Fenced" on page 244 • Appendix C, "Mount Options Support" on page 255 238 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Can the Client-Only Node Access All Filesystems? To determine if the client-only node can access a filesystem, navigate the filesystem and attempt to create a file. If the filesystem appears to be empty, the mount may have failed or been lost. See "Determining If a Client-Only Node Is Fenced" on page 244 and "Verifying Access to XVM Volumes" on page 233. If accessing the filesystem hangs the viewing process, see "Filesystem Appears to Be Hung" on page 242. Are There Error Messages? When determining the state of the client-only node, you should check error message logs to help identify any problems. Appendix A, "Operating System Path Differences" on page 247 lists the location of the cxfs_client log file for each platform. This log is also displayed in the Windows version of cxfs_info. Each platform also has its own system log for kernel error messages that may also capture CXFS messages. See the following: • "Log Files on AIX" on page 27 • "Log Files on Linux" on page 52 • "Log Files on Mac OS X" on page 77 • "Log Files on Solaris" on page 122 • "Log Files and Cluster Status for Windows" on page 151 There are various logs also located on the CXFS administration nodes. For more information, see the CXFS Administration Guide for SGI InfiniteStorage. What Is the Network Status? Use the netstat command on a client-only node to determine the network status. 007–4507–015 239 10: General Troubleshooting For example, to determine if you have a bad connection, you could enter the following from a DOS console on the Windows platform: C:\Documents and Settings\cxfsqa>netstat -e -s The Linux, Mac OS X, and Windows platforms support the -s option, which shows per-protocol statistics. The Linux and Windows systems also support the -e option, which shows Ethernet statistics. See the netstat(1) man page for information about options. What is the Status of XVM Mirror Licenses? To view the current status of XVM mirror licenses, use the following command and search for the line containing the keyword mirrors: xvm show -subsystem For example: # xvm show -subsystem XVM Subsystem Information: -------------------------apivers: 26 config gen: 33 privileged: 1 clustered: 1 cluster initialized: 1 user license enabled: 1 local mirrors enabled: 1 cluster mirrors enabled: 1 snapshot enabled: 1 snapshot max blocks: -1 snapshot blocks used: 0 Typical Problems and Solutions This section contains the following typical problems that apply to any platform: • "cdb Error in the cxfs_client Log" on page 241 • "Unable to Achieve Membership" on page 241 240 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • "Filesystem Appears to Be Hung" on page 242 • "Determining If a Client-Only Node Is Fenced" on page 244 • "No HBA WWPNs are Detected" on page 245 • "Membership Is Prevented by Firewalls" on page 246 cdb Error in the cxfs_client Log The following errors in the cxfs_client may log indicate that the client is not found in the cluster database: cxfs_client: cis_client_run querying CIS server cxfs_client: cis_cdb_go ERROR: Error returned from server: cdb error (6) Run the cxfs-config command on the metadata server and verify that the client’s hostname appears in the cluster database. For additional information about the error, review the /var/cluster/ha/log/fs2d_log file on the metadata server. Unable to Achieve Membership If cxfs_info does not report that CMS is UP, do the following: 1. Check that cxfs_client is running. See one of the following sections as appropriate for your platform: • "Start/Stop cxfs_client Daemon for AIX" on page 41 • "Start/Stop cxfs_client for Linux" on page 65 • "Start/Stop cxfs_client for Mac OS X" on page 96 • "Mapping XVM Volumes to Storage Targets on SGI ProPack" on page 115 • "Start/Stop cxfs_client for Solaris" on page 138 • "Start/Stop the CXFS Client Service for Windows" on page 200 2. Look for other warnings and error messages in the cxfs_client log file. See Appendix A, "Operating System Path Differences" on page 247 for the location of the log file on different platforms. 007–4507–015 241 10: General Troubleshooting 3. Check cxfs-config output on the CXFS administration node to ensure that the client is correctly configured and is reachable via the configured CXFS private network. For example: irix# /usr/cluster/bin/cxfs-config -all 4. Check that the client is enabled into the cluster by running clconf_info on a CXFS administration node. 5. Look in the system log on the CXFS metadata server to ensure the server detected the client that is attempting to join membership and check for any other CXFS warnings or errors. 6. Check that the metadata server has the node correctly configured in its hostname lookup scheme (/etc/host file or DNS). 7. If you are still unable to resolve the problem, reboot the client node. 8. If rebooting the client node in step 7 did not resolve the problem, restart the cluster administration daemons (fs2d, cad, cmond, and crsd) on the metadata server. This step may result in a temporary delay in access to the filesystem from all nodes. 9. If restarting cluster administration daemons in step 8 did not solve the problem, reboot the metadata server. This step may result in the filesystems being unmounted on all nodes. Filesystem Appears to Be Hung If any CXFS filesystem activity appears to hung in the filesystem, do the following: 1. Check that the client is still in membership and the filesystem is mounted according to cxfs_info. 242 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage 2. Check on the metadata server to see if any messages are more than a few seconds in age (known as a stuck message). For example, on IRIX running icrash as root, the following message was received from cell 4 more than four minutes ago: # icrash >>>> mesglist Cell:1 THREAD ADDR MSG ID TYPE CELL MESSAGE Time(Secs) ================== ======= ==== ==== ================================ ========== 0xa80000004bc86400 10fc Rcv 4 I_dsxvn_allocate 4:20 3. If there is a stuck message, gather information for SGI support: • Find the stack trace for the stuck thread. For example: >>>> kthread 0xa80000004bc86400 KTHREAD TYPE ID WCHAN NAME ============================================================================= a80000004bc86400 1 100000534 c000000002748008 mtcp_notify ============================================================================= 1 kthread struct found >>>> defkthread 0xa80000004bc86400 Default kthread is 0xa80000004bc86400 >>>> trace =============================================================================== STACK TRACE FOR XTHREAD 0xa80000004bc86400 (mtcp_notify): 1 2 3 4 5 6 7 istswtch[../os/swtch.c: 1526, 0xc00000000021764c] swtch[../os/swtch.c: 1026, 0xc000000000216de8] thread_block[../os/ksync/mutex.c: 178, 0xc00000000017dc8c] sv_queue[../os/ksync/mutex.c: 1595, 0xc00000000017f36c] sv_timedwait[../os/ksync/mutex.c: 2205, 0xc0000000001800a0] sv_wait[../os/ksync/mutex.c: 1392, 0xc00000000017f038] xlog_state_sync[../fs/xfs/xfs_log.c: 2986, 0xc0000000002a535c] 007–4507–015 243 10: General Troubleshooting 8 xfs_log_force[../fs/xfs/xfs_log.c: 361, 0xc0000000002a25dc] 9 cxfs_dsxvn_wait_inode_safe[../fs/cxfs/server/cxfs_dsxvn.c: 2011, 0xc00000000046a594] 10 dsvn_getobjects[../fs/cxfs/server/dsvn.c: 3266, 0xc0000000004676fc] 11 I_dsxvn_allocate[../fs/cxfs/server/cxfs_dsxvn.c: 1406, 0xc0000000004699c8] 12 dsxvn_msg_dispatcher[../IP27bootarea/I_dsxvn_stubs.c: 119, 0xc000000000456768] 13 mesg_demux[../cell/mesg/mesg.c: 1130, 0xc000000000408e88] 14 mtcp_notify[../cell/mesg/mesg_tcp.c: 1100, 0xc0000000004353d8] 15 tsv_thread[../cell/tsv.c: 303, 0xc000000000437738] 16 xthread_prologue[../os/swtch.c: 1638, 0xc00000000021782c] 17 xtresume[../os/swtch.c: 1686, 0xc0000000002178f8] =============================================================================== • Run cxfsdump on the metadata server. • Run cxfsdump on the client that has the stuck message. • If possible, force the client that has the stuck message to generate a crash dump. 4. Reboot the client that has the stuck message. This is required for CXFS to recover. Determining If a Client-Only Node Is Fenced To determine if a client-only node is fenced, log in to a CXFS administration node and use the hafence(1M) command. A fenced port is displayed as status=disabled. In the following example, all ports that have been registered as CXFS host ports are not fenced: irix# /usr/cluster/bin/hafence -q Switch[0] "brocade04" has 16 ports Port 4 type=FABRIC status=enabled hba=210000e08b0042d8 on host o200c Port 5 type=FABRIC status=enabled hba=210000e08b00908e on host cxfs30 Port 9 type=FABRIC status=enabled hba=2000000173002d3e on host cxfssun3 244 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage All switch ports can also be shown with hafence: irix# /usr/cluster/bin/hafence -v Switch[0] "brocade04" has 16 ports Port 0 type=FABRIC status=enabled hba=2000000173003b5f on host UNKNOWN Port 1 type=FABRIC status=enabled hba=2000000173003adf on host UNKNOWN Port 2 type=FABRIC status=enabled hba=210000e08b023649 on host UNKNOWN Port 3 type=FABRIC status=enabled hba=210000e08b021249 on host UNKNOWN Port 4 type=FABRIC status=enabled hba=210000e08b0042d8 on host o200c Port 5 type=FABRIC status=enabled hba=210000e08b00908e on host cxfs30 Port 6 type=FABRIC status=enabled hba=2000000173002d2a on host UNKNOWN Port 7 type=FABRIC status=enabled hba=2000000173003376 on host UNKNOWN Port 8 type=FABRIC status=enabled hba=2000000173002c0b on host UNKNOWN Port 9 type=FABRIC status=enabled hba=2000000173002d3e on host cxfssun3 Port 10 type=FABRIC status=enabled hba=2000000173003430 on host UNKNOWN Port 11 type=FABRIC status=enabled hba=200900a0b80c13c9 on host UNKNOWN Port 12 type=FABRIC status=disabled hba=0000000000000000 on host UNKNOWN Port 13 type=FABRIC status=enabled hba=200d00a0b80c2476 on host UNKNOWN Port 14 type=FABRIC status=enabled hba=1000006069201e5b on host UNKNOWN Port 15 type=FABRIC status=enabled hba=1000006069201e5b on host UNKNOWN When the client-only node joins membership, any fences on any switch ports connected to that node should be lowered and the status changed to enabled. However, if the node still does not have access to the storage, do the following: • Check that the HBA WWPNs were correctly identified. See "Verifying the I/O Fencing Configuration" on page 232. • Check the cxfs_client log file for warnings or errors while trying to determine the HBA WWPNs. See "No HBA WWPNs are Detected" on page 245. • Log into the Fibre Channel switch. Check the status of the switch ports and confirm that the WWPNs match those identified by cxfs_client. No HBA WWPNs are Detected On most platforms, the cxfs_client software automatically detects the world wide port names (WWPNs) of any supported host bus adapters (HBAs) in the system that are connected to a switch that is configured in the cluster database. These HBAs will then be available for fencing. 007–4507–015 245 10: General Troubleshooting However, if no WWPNs are detected, there will be messages about loading the HBA/SNIA library. See the following: • "I/O Fencing for AIX" on page 39 • "I/O Fencing for Linux" on page 63 • "I/O Fencing for Mac OS X" on page 94 • "I/O Fencing for SGI ProPack Client-Only Nodes" on page 109 • "I/O Fencing for Solaris" on page 136 • "I/O Fencing for Windows" on page 196 Membership Is Prevented by Firewalls If a client has trouble obtaining membership, verify that the system firewall is configured for CXFS use. See "Configure Firewalls for CXFS Use" on page 19. Reporting Problems to SGI When reporting a problem with a client-only node, it is important to retain the appropriate information; having access to this information will greatly assist SGI in the process of diagnosing and fixing problems. The methods used to collect required information for problem reports are platform-specific: • "Reporting AIX Problems" on page 47 • "Reporting Linux Problems" on page 73 • "Reporting Mac OS X Problems" on page 100 • "Reporting SGI ProPack Client-Only Nodes Problems" on page 115 • "Reporting Solaris Problems" on page 145 • "Reporting Windows Problems" on page 218 246 007–4507–015 Appendix A Operating System Path Differences This appendix lists the location of CXFS-specific commands and files. For SGI ProPack paths, see the CXFS Administration Guide for SGI InfiniteStorage For more information, see the cxfs_client man page. Table A-1 AIX Paths Component Path CXFS client daemon: /usr/cxfs_cluster/bin/cxfs_client Command that normally invokes the client daemon: /usr/cxfs_cluster/bin/cxfs_cluster Log file: /var/tmp/cxfs_client Options file: /usr/cxfs_cluster/bin/cxfs_client.options CXFS status: /usr/cxfs_cluster/bin/cxfs_info Hostname/address information /etc/hosts GRIO v2 administration /usr/cxfs_cluster/bin/grioadmin GRIO v2 quality of service /usr/cxfs_cluster/bin/grioqos XVM query /usr/cxfs_cluster/bin/xvm 007–4507–015 247 A: Operating System Path Differences Table A-2 Linux or SGI ProPack Paths Component Path CXFS client service: /usr/cluster/bin/cxfs_client Command that normally invokes the client daemon: /etc/init.d/cxfs_client Log file: /var/log/cxfs_client Options file: /etc/cluster/config/cxfs_client.options CXFS status: /usr/cluster/bin/cxfs_info Hostname/address information /etc/hosts GRIO v2 administration /usr/sbin/grioadmin GRIO v2 quality of service /usr/sbin/grioqos XVM query /sbin/xvm 248 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Table A-3 Mac OS X Paths Component Path CXFS client daemon: /usr/cluster/bin/cxfs_client Command that normally invokes the client daemon: /Library/StartupItems/cxfs/cxfs Log file: /var/log/cxfs_client Options file: /usr/cluster/bin/cxfs_client.options CXFS status: /usr/cluster/bin/cxfs_info Hostname/address information /etc/hosts GRIO v2 administration /usr/sbin/grioadmin GRIO v2 quality of service /usr/sbin/grioqos XVM query /usr/cluster/bin/xvm 007–4507–015 249 A: Operating System Path Differences Table A-4 Solaris Paths Component Path CXFS client daemon: /usr/cxfs_cluster/bin/cxfs_client Command that normally invokes the client daemon: /etc/init.d/cxfs_client Log file: /var/log/cxfs_client Options file: /usr/cxfs_cluster/bin/cxfs_client.options CXFS status: /usr/cxfs_cluster/bin/cxfs_info Hostname/address information /etc/hosts GRIO v2 administration /usr/sbin/grioadmin GRIO v2 quality of service /usr/sbin/grioqos XVM query /usr/cxfs_cluster/bin/xvm 250 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Table A-5 Windows Paths Component Path CXFS client service: %SystemRoot%\system32\cxfs_client.exe Command that normally invokes the client service: See "Start/Stop the CXFS Client Service for Windows" on page 200 Log file: %ProgramFiles%\CXFS\log\cxfs_client.log Options file: See "Modifying the CXFS Software for Windows" on page 201 CXFS status: %ProgramFiles%\CXFS\cxfs_info.exe Hostname and address information: %SystemRoot%\system32\drivers\etc\hosts GRIO v2 administration: %ProgramFiles%\CXFS\grioadmin.exe GRIO v2 quality of service: %ProgramFiles%\CXFS\grioqos.exe XVM query: (unsupported) 007–4507–015 251 Appendix B Filesystem and Logical Unit Specifications Table B-1 on page 254 summarizes filesystem and logical unit specifications differences among the supported client-only platforms. 007–4507–015 253 Linux SGI i3861 Linux x86_64 16 TB 2 16 TB 3 16 TB 4 2 Filesystem 4096 (XFS 512, 1024, 512, 1024, 512, 1024, block size (in default) 2048, or 4096 2048, or 4096 2048, 4096, 8192, or Item AIX 64 Maximum 2 filesystem 2 bytes 64 bytes Linux ia64 2 64 bytes Mac OS X 2 64 bytes ProPack 2 64 bytes Solaris 2 64 bytes Windows 2 64 bytes size Maximum file 63 –1 bytes 2 63 –1 bytes 63 2 –1 bytes 2 4096, 8192, 512, 1024, 2048, 4096, 512, 1024, 16384, 32768, 2048, 4096, 8192, 16384, 2048, 4096, or 65536 8192, or 32768, or 8192, 16384, 16384 65536 6 32768, or 65536 2 63 –1 bytes 63 –1 bytes 2 63 –1 bytes size/offset bytes)5 16384 XVM device 512 512 512 512 512 512 512 512 2 TB 2 TB 2 TB 2 TB 2 TB 2 TB 1 TB or 2 TB 2 TB block size (in bytes) Physical 7 LUN limit Maximum concatenated 65536 8 65536 65536 65536 65536 65536 65536 65536 slices 1 2 3 4 5 007–4507–015 6 7 8 The Linux architecture is reported by the uname -i command About 18 million terabytes Assumes the default ulimit is changed, see "Limitations and Considerations for AIX" on page 28. Using large file support (O_LARGEFILE) If the filesystem is to be accessible by other platforms in a multiOS cluster, its block size must be supported on all platforms in the cluster. 8192 is recommended DVH labels for Solaris 9 and Solaris 10 have a limit of 1 TB. GPT labels for Solaris 10 have a limit of 2 TB. (Solaris 9 does not support GPT labels.) 65536 concatenated slices is 130 PetaBytes 10: General Troubleshooting 254 Table B-1 Filesystem and Logical Unit Specifications Appendix C Mount Options Support The table in this appendix list the mount options that are supported by CXFS, depending upon the server platform. Some of these mount options affect only server behavior and are ignored by client-only nodes. The tables also list those options that are not supported, especially where that support varies from one platform to another. Both the IRIX and the SGI ProPack for Linux mount commands support many additional options, but these options may be silently ignored by the clients, or cause the mount to fail and should be avoided. For more information, see the IRIX mount(1M) and Linux mount(8) man pages. Note: The following are mandatory, internal CXFS mount options that cannot be modified and are set by clconfd and cxfs_client: client_timeout server_list The table uses the following abbreviations: Y = Yes, client checks for the option and sets flag/fields for the metadata server N = No, client does not check for the option S = Supported n = Not supported D = Determined by the CXFS administration tools (not user-configurable) A blank space within the table means that the option has not been verified. The Linux architectures are (as output by uname -i) 32–bit Linux on i386 architecture and 64–bit Linux on x86_64 and ia64 architectures. 007–4507–015 255 Option 007–4507–015 1 Checked by Client AIX IRIX Linux 32 Linux 64 Mac OS X Solaris Windows attr2 Y S biosize Y S S S S S S S client_timeout N D D D D D D D dmapi N n n n n n n n dmi N S S S S S S filestreams1 Y S S S S S S gqnoenforce N S S S S S gquota N S S S S S grpid N S n S S S inode64 Y S n S S logbsize Y S S logbufs Y S S logdev N noalign Y S S S n Do not use the dmi and filestreams options together. DMF is not able to arrange file extents on disk in a contiguous fashion when restoring offline files. This means that a DMF-managed filesystem most likely will not maintain the file layouts or performance characteristics normally associated with filesystems using the filestreams mount option. 10: General Troubleshooting 256 Table C-1 Mount Options Support for Client-Only Platforms in an IRIX Cluster 007–4507–015 Option Checked by Client AIX IRIX Linux 32 Linux 64 Mac OS X Solaris Windows S S S S n n n n Y S noattr2 N S noauto N nodev N S S S n S noquota N S S S S S nosuid N S S S S S osyncisdsync Y S S pqnoenforce N S S pquota N S S qnoenforce N S S S S S quota N S S S S S ro N S S S S S S S rtdev N n S n n n n n rw N S S S S server_list N D D D D D D D server_timeout N D D D D D D D shared Y sunit N n n n S S S 257 CXFS TM MultiOS Client-Only Guide for SGI ® InfiniteStorage noatime Checked by Client AIX IRIX Linux 32 Linux 64 Mac OS X Solaris Windows swalloc Y S S swidth N S S uqnoenforce N S S S S S uquota N S S S S S wsync Y S S 10: General Troubleshooting 258 Option 007–4507–015 007–4507–015 Table C-2 Mount Options Support for Client-Only Platforms in an SGI ProPack Cluster Option AIX IRIX Linux 32 Linux 64 Mac OS X Solaris Windows attr2 Y biosize Y S S S S S S client_timeout N D D D D D D D dmapi N n n n n n n n dmi N S S S S S filestreams2 Y S S S S S gqnoenforce N S S S S gquota N S S S S grpid N inode64 Y logbsize Y logbufs Y logdev N noalign Y S n S n n n n n S n S n S S S S S S n S 259 Do not use the dmi and filestreams options together. DMF is not able to arrange file extents on disk in a contiguous fashion when restoring offline files. This means that a DMF-managed filesystem most likely will not maintain the file layouts or performance characteristics normally associated with filesystems using the filestreams mount option. CXFS TM MultiOS Client-Only Guide for SGI ® InfiniteStorage 2 Checked by Client Checked by Client AIX IRIX Linux 32 S Linux 64 Mac OS X Solaris Windows S S S n n n n n 007–4507–015 noatime Y noattr2 N noauto N nodev N S S S n noquota N S S S S nosuid N S S S S osyncisdsync Y pqnoenforce N pquota N qnoenforce N S S S S quota N S S S S ro N S S S S S S S rtdev N n n n n n n n rw N S S S server_list N D D D D D D D server_timeout N D D D D D D D shared Y sunit N n n n S 10: General Troubleshooting 260 Option 007–4507–015 Option Checked by Client AIX IRIX Linux 32 Linux 64 Mac OS X Solaris swalloc Y swidth N uqnoenforce N S S S S uquota N S S S S wsync Y Windows CXFS TM MultiOS Client-Only Guide for SGI ® InfiniteStorage 261 Appendix D Error Messages The following are commonly seen error messages: • "Could Not Start CXFS Client Error Messages" on page 263 • "CMS Error Messages" on page 263 • "Mount Messages" on page 264 • "Network Connectivity Messages" on page 264 • "Device Busy Message" on page 265 • "Windows Messages" on page 265 Could Not Start CXFS Client Error Messages The following error message indicates that the cxfs_client service has failed the license checks: Could not start the CXFS Client service on Local Computer. Error 10038: An operation was attempted on something that is not a socket. You must install the license as appropriate. See the CXFS Administration Guide for SGI InfiniteStorage. CMS Error Messages The following messages may be logged by CMS. CMS excluded cells 0xXXX with incomplete connectivity Generated when CMS delivers a membership that excluded some new cells that had not established connections with enough cells yet to be admitted. 0xXXX is a bitmask of excluded cells. CMS calculation limited to last membership:configuration change incomplete on cells 0xXXX 007–4507–015 263 D: Error Messages Generated when the leader is attempting to make a configuration change current (that is, actually use the change on all nodes), but some cells in the cluster have not yet received the configuration change staged (uploaded and ready to be made current). 0xXXX is a bitmask of cells that do not yet have the change in their configuration. Changes make their way through the cluster asynchronously, so this situation is expected. It can take a few attempts by the CMS leader before all nodes have the change staged. As long as this situation resolves eventually, there is no problem. CMS calculation limited to last membership:recovery incomplete Generated when new members were disallowed due to recovery from the last cell failure that is still being processed. Mount Messages cxfs_client: op_failed ERROR : Mount failed for aixdisk0s0 A filesystem mount has failed on an AIX node and will be retried cxfs_client:op_failed ERROR: Mount failed for concat0 A filesystem mount has failed on an Linux 32–bit, Mac OS X, Solaris, or Windows node and will be retried. Network Connectivity Messages unable unable unable unable failed unable unable to join multicast group on interface to create multicast socket to allocate interface list query interfaces to configure any interfaces to create multicast socket to bind socket Check the network configuration of the node, ensuring that the private network is working and the Windows node can at least reach the metadata server by using the ping command from a command shell. 264 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Device Busy Message You may see the following error message repeatedly on a node when you stop services on another node until the shutdown completes: Nov 4 15:35:12 ray : Nov 04 15:35:12 cxfs_client: cis_cms_exclude_cell ERROR: exclude cellset ffffffffffffff00 failed: Device busy After the other node completes shutdown, the error will cease to be sent. However, if the error message continues to appear even after shutdown is complete, another problem may be present. In this case, contact your SGI support person. Windows Messages The following are common Windows CXFS messages. cis_driver_init() failed: could not open handle to driver cis_driver_init() failed: could not close handle to CXFS driver The CXFS driver may not have successfully started. Check the system event log for errors. cis_generate_userid_map warning: could not open group file The group file could not be found. Even with passwd and group warnings above, filesystem mounts should proceed; however, all users will be given nobody credentials and will be unable to view or modify files on the CXFS filesystems. For more information about these files, see "Log Files on Solaris" on page 122 and "Log Files and Cluster Status for Windows" on page 151. Also see the log files on the CXFS administration node; for more information, see the CXFS Administration Guide for SGI InfiniteStorage. cis_generate_userid_map warning: could not open passwd file The passwd file could not be found. could could error error error not get location of passwd/group files not retreving fencing configuration file name from registry retrieving passwd filename retrieving group filename retrieving fencing filename The registry entries for the location of the passwd, group, or fencing.conf files may be missing, or the path provided on the command line to the CXFS Client 007–4507–015 265 D: Error Messages service is badly formed. Reset these values by modifying the current installation as described in "Modifying the CXFS Software for Windows" on page 201. could not open passwd file could not open group file fencing configuration file not found Check that the passwd, group and fencing.conf files are in the configured location and are accessible as described in "Checking Permissions on the Password and Group Files for Windows" on page 195. no valid users configured in passwd file No users in the passwd file could be matched to users on the Windows node. All users will be treated as user nobody for the purpose of all access control checks. no valid groups configured in group file No groups in the group file could be matched to groups on the Windows node. Attempts to display file permissions will most likely fail with the message Unknown Group Errors. op_failed ERROR: Mount failed for concat0 A filesystem mount has failed and will be retried. unable to create mount point Configured drive letter may already be in use Check that the configured drive letter is not already in use by a physical or mapped drive. Unix user is something other than a user on the NT domain/workgroup Unix group is something other than a group on the NT domain/workgroup This warning indicates that a username or groupname is not a valid user or group on the Windows node, which may be confusing when examining file permissions. 266 007–4507–015 Appendix E cmgr Examples The cxfs_admin and the CXFS GUI are the preferred CXFS administration tools. This appendix contains the following information about the cmgr command: • "Example of Defining a Node Using cmgr" on page 267 • "Adding the Client-Only Nodes to the Cluster Using cmgr" on page 268 • "Defining the Switch for I/O Fencing Using cmgr" on page 268 • "Starting CXFS Services on the Client-Only Nodes Using cmgr" on page 270 • "Mounting Filesystems on New Client-Only Nodes Using cmgr" on page 270 • "Forced Unmount of CXFS Filesystems Using cmgr" on page 271 Example of Defining a Node Using cmgr The following example shows the entries used to define a Solaris node named solaris1 using the cmgr command in prompting mode: # /usr/cluster/bin/cmgr -p Welcome to SGI Cluster Manager Command-Line Interface cmgr> define node solaris1 Enter commands, you may enter "done" or "cancel" at any time to exit Hostname[optional] ? Is this a FailSafe node ? false Is this a CXFS node ? true Operating System ? solaris Node ID ? 7 Do you wish to define failure hierarchy[y/n]:y Hierarchy option 0 [optional] ? fence Hierarchy option 1 [optional] ? shutdown Hierarchy option 2 [optional] ? Number of Network Interfaces ? (1) NIC 1 - IP Address ? 163.154.18.172 NIC 1 - Heartbeat HB (use network for heartbeats) ? true 007–4507–015 267 E: cmgr Examples NIC 1 - (use network for control messages) ? true NIC 1 - Priority <1,2,...> ? 1 Adding the Client-Only Nodes to the Cluster Using cmgr If you are using cmgr, you must add the defined nodes to the cluster. This happens by default if you are using cxfs_admin. After you define all of the client-only nodes, you must add them to the cluster. For example, if you have already defined a cluster named cxfscluster using cmgr and want to add the Solaris nodes solaris1 and solaris2, you could use the following cmgr command: cmgr> modify cluster cxfscluster cxfscluster ? add node solaris1 cxfscluster ? add node solaris2 cxfscluster ? done Depending upon your filesystem configuration, you may also need to add the node to the list of clients that have access to the volume. See "Mounting Filesystems on the Client-Only Nodes" on page 226. Defining the Switch for I/O Fencing Using cmgr You are required to use I/O fencing on client-only nodes in order to protect data integrity. I/O fencing requires a switch; see the release notes for supported switches. For example, for a QLogic switch named myswitch: cxfs_admin:mycluster> create switch name=myswitch vendor=qlogic After you have defined the switch, you must ensure that all of the switch ports that are connected to the cluster nodes are enabled. To determine port status, enter the following on a CXFS administration node: irix# hafence -v 268 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage If there are disabled ports that are connected to cluster nodes, you must enable them. Log into the switch as user admin and use the following command: switch# portEnable portnumber You must then update the switch port information For example, suppose that you have a cluster with port 0 connected to the node blue, port 1 connected to the node green, and port 5 connected to the node yellow, all of which are defined in cluster colors. The following output shows that the status of port 0 and port 1 is disabled and that the host is UNKNOWN (as opposed to port 5, which has a status of enabled and a host of yellow). Ports 2, 3, 4, 6, and 7 are not connected to nodes in the cluster and therefore their status does not matter. irix# hafence -v Switch[0] "ptg-brocade" has 8 ports Port 0 type=FABRIC status=disabled Port 1 type=FABRIC status=disabled Port 2 type=FABRIC status=enabled Port 3 type=FABRIC status=enabled Port 4 type=FABRIC status=enabled Port 5 type=FABRIC status=enabled Port 6 type=FABRIC status=enabled Port 7 type=FABRIC status=enabled hba=0000000000000000 hba=0000000000000000 hba=210000e08b05fecf hba=210000e08b01fec5 hba=210000e08b01fec3 hba=210000e08b019ef0 hba=210000e08b0113ce hba=210000e08b027795 on on on on on on on on host host host host host host host host UNKNOWN UNKNOWN UNKNOWN UNKNOWN UNKNOWN yellow UNKNOWN UNKNOWN In this case, you would need to enable ports 0 and 1: Logged in to the switch: switch# portEnable 0 switch# portEnable 1 Logged in to a CXFS administration node: irix# hafence -v Switch[0] "ptg-brocade" has 8 ports Port 0 type=FABRIC status=disabled Port 1 type=FABRIC status=disabled Port 2 type=FABRIC status=enabled Port 3 type=FABRIC status=enabled Port 4 type=FABRIC status=enabled Port 5 type=FABRIC status=enabled Port 6 type=FABRIC status=enabled Port 7 type=FABRIC status=enabled 007–4507–015 hba=210000e08b0103b8 hba=210000e08b0102c6 hba=210000e08b05fecf hba=210000e08b01fec5 hba=210000e08b01fec3 hba=210000e08b019ef0 hba=210000e08b0113ce hba=210000e08b027795 on on on on on on on on host host host host host host host host UNKNOWN UNKNOWN UNKNOWN UNKNOWN UNKNOWN yellow UNKNOWN UNKNOWN 269 E: cmgr Examples irix# cmgr -c admin fence update (No command necessary for cxfs_admin) irix# hafence -v Switch[0] "ptg-brocade" has 8 ports Port 0 type=FABRIC status=disabled Port 1 type=FABRIC status=disabled Port 2 type=FABRIC status=enabled Port 3 type=FABRIC status=enabled Port 4 type=FABRIC status=enabled Port 5 type=FABRIC status=enabled Port 6 type=FABRIC status=enabled Port 7 type=FABRIC status=enabled hba=210000e08b0103b8 hba=210000e08b0102c6 hba=210000e08b05fecf hba=210000e08b01fec5 hba=210000e08b01fec3 hba=210000e08b019ef0 hba=210000e08b0113ce hba=210000e08b027795 on on on on on on on on host host host host host host host host blue green UNKNOWN UNKNOWN UNKNOWN yellow UNKNOWN UNKNOWN Starting CXFS Services on the Client-Only Nodes Using cmgr After adding the client-only nodes to the cluster with cmgr, you must start CXFS services for them, which enables the node by setting a flag for the node in the cluster database. This happens by default with cxfs_admin. For example: cmgr> start cx_services on node solaris1 for cluster cxfscluster cmgr> start cx_services on node solaris2 for cluster cxfscluster Mounting Filesystems on New Client-Only Nodes Using cmgr With cmgr command, you can mount the filesystems on the new client-only nodes by unmounting the currently active filesystems, enabling the mount on the required nodes, and then performing the actual mount. For example, to mount the fs1 filesystem on all nodes in the cluster except solaris2, you could use the following commands: cmgr> admin cxfs_unmount cxfs_filesystem fs1 in cluster cxfscluster cmgr> modify cxfs_filesystem fs1 in cluster cxfscluster cxfs_filesystem fs1 ? set dflt_local_status to enabled cxfs_filesystem fs1 ? add disabled_node solaris2 cxfs_filesystem fs1 ? done 270 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Note: SGI recommends that you enable the forced unmount feature for CXFS filesystems, which is turned off by default; see "Enable Forced Unmount" on page 19 and "Forced Unmount of CXFS Filesystems" on page 227. Forced Unmount of CXFS Filesystems Using cmgr Normally, an unmount operation will fail if any process has an open file on the filesystem. However, a forced unmount allows the unmount to proceed regardless of whether the filesystem is still in use. For example: cxfs_admin:mycluster> create filesystem name=myfs forced_unmount=true Using cmgr, define or modify the filesystem to unmount with force and then unmount the filesystem. For example: define cxfs_filesystem logical_filesystem_name [in cluster clustername] set force to true modify cxfs_filesystem logical_filesystem_name [in cluster clustername] set force to true admin cxfs_unmount cxfs_filesystem filesystemname [on node nodename] [in cluster clustername] For example, the following set of commands modifies the fs1 filesystem to allow forced unmount, then unmounts the filesystem on all nodes in the cxfscluster cluster: cmgr> modify cxfs_filesystem fs1 in cluster cxfscluster Enter commands, when finished enter either "done" or "cancel"cmgr> cxfs_filesystem fs1 ? set force to true cxfs_filesystem fs1 ? done Successfully defined cxfs_filesystem fs1 cmgr> admin cxfs_unmount cxfs_filesystem fs1 in cluster cxfscluster 007–4507–015 271 E: cmgr Examples For details, see cmgr reference appendix in the CXFS Administration Guide for SGI InfiniteStorage. 272 007–4507–015 Appendix F Summary of New Features from Previous Releases This appendix contains a summary of the new features for each version of this guide. CXFS MultiOS 2.0 Original publication (007-4507-001) supporting Solaris client-only nodes in a multiOS cluster with IRIX metadata servers. CXFS MultiOS 2.1 The 007-4507–002 update contains the following: • Support for Windows NT nodes in a CXFS multiOS cluster. Platform-specific information is grouped into separate chapters. • Support for up to four JNI HBAs in each CXFS Solaris node. Note: JNI supports a maximum of four JNI HBAs in operating environments with qualified Solaris platforms. CXFS MultiOS 2.1.1 The 007-4507–003 update contains the following: • References to using the latest software from the JNI website (http://www.jni.com/Drivers). • Information about ensuring that appropriate software is installed on the IRIX nodes that are potential metadata servers. • Clarifications to the use of I/O fencing and serial reset. • Corrections to the procedure in the “Solaris Installation Overview” section and other editorial corrections. 007–4507–015 273 F: Summary of New Features from Previous Releases CXFS MultiOS 2.2 The 007-4507–004 update contains the following: • Support for Microsoft Windows 2000 nodes in a CXFS MultiOS cluster. This guide uses Windows to refer to both Microsoft Windows NT and Microsoft Windows 2000 systems. • Support for SGI TP9100s. For additional details, see the release notes. • A new section about configuring two HBAs for failover operation. • Support for the JNI 5.1.1 and later driver on Solaris clients, which simplifies the installation steps. • DMAPI support for all platforms. • Removal of the Solaris limitation requiring more kernel threads. CXFS MultiOS 2.3 The 007-4507–005 update contains the following: • Updated Brocade Fibre Channel switch firmware levels. • Filename corrections the chapters about FLEXlm licensing for Windows and modifying CXFS software on a Solaris system. CXFS MultiOS 2.4 The 007-4507–006 update contains the following: • Support for Sun Microsystems Solaris 9 and specific Sun Fire systems. • Support for the JNI EZ Fibre release 2.2.1 or later. • A cluster of as many as 32 nodes, of which as many as 16 can be CXFS administration nodes; the rest will be client-only nodes. • Information about the Node Function field, which replaces node weight. For Solaris and Windows nodes, Client-Only is automatically selected for you. Similar fields are provided for the cmgr command. For more information, see the CXFS Administration Guide for SGI InfiniteStorage. 274 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • Clarification that if the primary HBA path is at fault during the Windows boot up (for example, if the Fibre Channel cable is disconnected), no failover to the secondary HBA path will occur. This is a limitation of the QLogic driver. • Reference to the availability of cluster information on Windows nodes. • Information about enabling Brocade Fibre Channel switch ports. • Additional information about functional limitations specific to Windows, and performance considerations, and access controls. CXFS MultiOS 2.5 The 007-4507–007 update contains the following: • Support for the IBM AIX platform, Linux on supported 32-bit platforms, SGI ProPack for Linux on Altix servers. • Support for a cluster of up to 48 nodes, 16 of which can be CXFS administration nodes; the rest must be client-only nodes. • For Windows nodes, user identification with lightweight directory access protocol (LDAP). • Support of forced unmount of filesystems on Windows nodes. • Information about protecting data integrity if JNI Fibre Channel cables are disconnected or fail. • Support for the SGI TP9500 RAID. • Support for the QLogic 2342 host bus adapter. • Information about new cxfs-reprobe scripts on AIX, IRIX, Linux, and Solaris nodes. These scripts are run by either clconfd or cxfs_client when they need to reprobe the Fibre Channel controllers. The administrator may modify these scripts if needed. • Information about setting the ntcp_nodelay system tunable parameter in order to provide adequate performance on file deletes. • Automatic detection of HBAs is provided for Linux, Solaris, and Windows nodes. 007–4507–015 275 F: Summary of New Features from Previous Releases CXFS MultiOS 3.0 The 007-4507–008 update contains the following: • Support for the Microsoft Windows XP client. Note: The CXFS multiOS 3.0 release is the last release that will support the Microsoft Windows NT 4.0 platform. The 3.1 release will not include software for Windows NT 4.0. • Clarifications to the terminology and installation information for Linux 32-bit clients. • Information about Linux 64-bit clients running SGI ProPack for Linux on SGI Altix 3000 systems has been removed and will appear in the CXFS Administration Guide for SGI InfiniteStorage that support CXFS 3.0 for SGI ProPack 2.3 for Linux. CXFS MultiOS 3.1 The 007-4507–009 update contains the following: • Support for the Apple Computer, Inc. Mac OS X operating system on client-only nodes. • Support for a cluster of up to 64 nodes. • Information about the SGI TP9300, SGI TP9300S, and SGI TP9500S. • Information about setting the LUN discovery method for Solaris systems using the SGI TP9100 1-Gbit controller • Additional AIX troubleshooting information. CXFS MultiOS 3.2 The 007–4507–010 update contains the following: • Support for Mac OS X 10.3.5 and Apple host bust adapters (HBAs). 276 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Note: Mac OS X 10.2.x and the Astera HBA are not supported with the CXFS 3.2 release. • Support for Red Hat Enterprise Linux 3. If you are running a Red Hat Enterprise Linux 3 kernel and you want to use quotas on a CXFS filesystem, you must install the quota package. • Support for the Sun Fire V210 server as a multiOS client platform. • A summary of the maximum filesystem size, file size, and block size for each platform. • Information about the environment variables you must define in the /etc/cluster/config/cxfs_client.options file in order for the /etc/cluster/config/cxfs-reprobe script to appropriately probe all of the targets on the SCSI bus for the Linux platform on third-party hardware. • Availability of the new xvm_maxdmasz attribute to the AIX chdev command, used to change the maximum XVM direct memory access (DMA) size to improve direct I/O performance. • Information about ensuring proper hostname configuration for a Windows node. • XVM volume names are limited to 31 characters and subvolumes are limited to 26 characters. • Information about mount options. • Updates to the procedure for installing the AMCC JNI HBA. • Clarification that the AMCC JNI HBA that is provided by Sun Microsystems does not function with CXFS and cannot be configured to do so. You must purchase the JNI HBA directly from AMCC. CXFS MultiOS 3.3 The 007–4507–011 update contains the following: • Support for Microsoft Windows Server 2003. • Support for AMD AMD64, Intel EM64T, and Intel Itanium 2 third-party Linux systems as client-only nodes. 007–4507–015 277 F: Summary of New Features from Previous Releases • Information about guaranteed-rate I/O (GRIO) version 2 (v2). • Information about XVM failover v2. • Platform-specific information about FLEXlm licenses and troubleshooting has been separated out into the various platform-specific chapters. • Information about the recognizing changes to the storage systems. • System tunables information for Solaris and Windows. • Information about the SANshare license and XVM failover v2 on AIX. • Information about configuring HBA failover on Windows. • New sections about verifying the cluster configuration, connectivity, and status. • Removed references to xvmprobe. The functionality of xvmprobe has been replaced by the xvm command. CXFS MultiOS 3.4 The 007–4507–012 update contains the following: • Support for SUSE Linux Enterprise Server 9 (SLES9) • Best practices for client-only nodes • Mapping XVM volumes to storage targets on AIX and Linux • Remote core dump on Mac OS X • Installing the LSI Logic HBA CXFS 4.0 The 007–4507–013 update contains the following: • Support for the following: – Red Hat Enterprise Linux 4. 278 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage Note: On Red Hat Enterprise Linux 4 (RHEL4) x86 nodes, you must fully disable SELinux and redirect core dump files in order to avoid a stack overflow panic. – Mac OS X 10.4, including full ACL support. – Solaris 10. The following are not included in CXFS 4.0: – AIX 5.2 – Red Hat Enterprise Linux 3 – Mac OS X 10.3.9 – Solaris 8 • Support for the cxfs_admin command • Information about choosing the correct version of XVM failover for your cluster. • If Norton Ghost is installed on a Windows node, CXFS cannot mount filesystems on the mount point driver letter. • Information about using fast copying for large CXFS files • A platform-independent overview of client-only installation process • Server-side CXFS client license keys are now supported on server-capable nodes, allowing a client without a node-locked client-side license key to request a license key from the server. Server-side license keys are optional on IRIX metadata servers, but are required on SGI ProPack metadata servers. The licensing software is based on the FLEXlm product from Macrovision Corporation. See CXFS Administration Guide for SGI InfiniteStorage. • Information about configuring firewalls for CXFS use and membership being prevented by inappropriate firewall configuration • Information about the maximum CXFS I/O request size for AIX • Support for Apple PCI Express HBA. • Support for QLogic HBA for the Solaris platform. 007–4507–015 279 F: Summary of New Features from Previous Releases • Support for the CXFS autopsy and fabric_dump scripts on Mac OS X. CXFS 4.1 The 007–4507–014 update contains the following: • Support for SUSE Linux Enterprise Server 10 (SLES 10) client-only nodes Note: DMAPI is disabled by default on SLES 10 systems. If you want to mount filesystems on a SLES 10 client-only node with the dmi mount option, you must enable DMAPI. • Support for SGI License Key (LK) software on SGI ProPack server-capable nodes. Server-side licensing is required on the following client-only nodes (to determine the Linux architecture type, use the uname -i command): – SGI ProPack 5 – Red Hat Enterprise Linux (RHEL) 4 on x86_64 – SLES 9 on x86_64 – SLES 10 on x86_64 or ia64 (For specific release levels, see the release notes.) Other nodes can use either server-side or client-side licensing. However, if one node within a cluster requires server-side licensing, all nodes must use server-side licensing. If no nodes in the cluster require server-side licensing, the nodes can continue to use existing client-side licensing. Note: Server-side licensing is preferred, and no new client-side licenses will be issued. Customers with support contracts can exchange their existing client-side licenses for new server-side licenses. A future release will not support client-side licensing. For more information, contact SGI customer support. For licensing details, see the release notes and the CXFS Administration Guide for SGI InfiniteStorage. 280 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage • Support for changes in the Mac OS X device paths used by the xvm and and failover2.conf files. • A new chapter to support SGI Altix XE as a client-only node. • Updates to the supported mount options tables. 007–4507–015 281 Glossary active metadata server A server-capable administration node chosen from the list of potential metadata servers. There can be only one active metadata server for any one filesystem. administration node A node in the pool that is installed with the cluster_admin.sw.base software product, allowing the node to perform cluster administration tasks and contain a copy of the cluster database. There are two types of administration nodes: server-capable administration nodes and client administration nodes. administrative stop See forced CXFS shutdown cell ID A number associated with a node that is used by the CXFS software and appears in messages. CLI Underlying command line interface commands used by the CXFS Manager graphical user interface (GUI). client See CXFS client node, CXFS client-only node and administration node. client administration node A node that is installed with the cluster_admin software product, allowing the node to perform cluster administration tasks and contain a copy of the cluster database, but is not capable of coordinating CXFS metadata. Only supported for IRIX nodes running in coexecution with FailSafe. 007–4507–015 283 Glossary client-only node A node that is installed with the cxfs_client.sw.base software product; it does not run cluster administration daemons and is not capable of coordinating CXFS metadata. Any node can be client-only node. See also server-capable administration node cluster A cluster is the set of systems (nodes) configured to work together as a single computing resource. A cluster is identified by a simple name and a cluster ID. A cluster running multiple operating systems is known as a multiOS cluster. There is only one cluster that may be formed from a given pool of nodes. Disks or logical units (LUNs) are assigned to clusters by recording the name of the cluster on the disk (or LUN). Thus, if any disk is accessible (via a Fibre Channel connection) from machines in multiple clusters, then those clusters must have unique names. When members of a cluster send messages to each other, they identify their cluster via the cluster ID. Cluster names must be unique. Because of the above restrictions on cluster names and cluster IDs, and because cluster names and cluster IDs cannot be changed once the cluster is created (without deleting the cluster and recreating it), SGI advises that you choose unique names and cluster IDs for each of the clusters within your organization. cluster administration daemons The set of daemons on a server-capable administration node that provide the cluster infrastructure: fs2d, cad, cmond, crsd. cluster administrator The person responsible for managing and maintaining a cluster. cluster database Contains configuration information about all nodes and the cluster. The database is managed by the cluster administration daemons. cluster domain XVM concept in which a filesystem applies to the entire cluster, not just to the local node. See also local domain. 284 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage cluster database membership The group of administration nodes in the pool that are accessible to cluster administration daemons and therefore are able to receive cluster database updates; this may be a subset of the nodes defined in the pool. The cluster administration daemons manage the distribution of the cluster database (CDB) across the administration nodes in the pool. (Also known as user-space membership and fs2d database membership.) cluster ID A unique number within your network in the range 1 through 128. The cluster ID is used by the operating system kernel to make sure that it does not accept cluster information from any other cluster that may be on the network. The kernel does not use the database for communication, so it requires the cluster ID in order to verify cluster communications. This information in the kernel cannot be changed after it has been initialized; therefore, you must not change a cluster ID after the cluster has been defined. Clusters IDs must be unique. cluster mode One of two methods of CXFS cluster operation, Normal or Experimental. In Normal mode, CXFS resets any node for which it detects heartbeat failure; in Experimental mode, CXFS ignores heartbeat failure. Experimental mode allows you to use the kernel debugger (which stops heartbeat) without causing node failures. You should only use Experimental mode during debugging. cluster node A node that is defined as part of the cluster. See also node. coexecution The ability to run CXFS and IRIS FailSafe together. control messages Messages that cluster software sends between the cluster nodes to request operations on or distribute information about cluster nodes. Control messages and heartbeat messages are sent through a node’s network interfaces that have been attached to a control network. 007–4507–015 285 Glossary control network The network that connects nodes through their network interfaces (typically Ethernet) such that CXFS can send heartbeat messages and control messages through the network to the attached nodes. CXFS uses the highest priority network interface on the control network; it uses a network interface with lower priority when all higher-priority network interfaces on the control network fail. CXFS client daemon The daemon (cxfs_client) that controls CXFS services on a client-only node. CXFS control daemon The daemon (clconfd) that controls CXFS services on an administration node. CXFS database See cluster database. CXFS kernel membership The group of CXFS nodes that can share filesystems in the cluster, which may be a subset of the nodes defined in a cluster. During the boot process, a node applies for CXFS kernel membership. Once accepted, the node can share the filesystems of the cluster. (Also known as kernel-space membership.) CXFS kernel membership differs from cluster database membership and FailSafe membership. For more information about FailSafe, see FailSafe Administrator’s Guide for SGI InfiniteStorage. CXFS services The enabling/disabling of a node, which changes a flag in the cluster database. This disabling/enabling does not affect the daemons involved. The daemons that control CXFS services are clconfd on an administration node and cxfs_client on a client-only node. CXFS services start To enable a node, which changes a flag in the cluster database, by using an administrative task in the CXFS GUI. 286 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage CXFS services stop To disable a node, which changes a flag in the cluster database, by using a CXFS GUI. See also forced CXFS shutdown. CXFS shutdown See forced CXFS shutdown and shutdown CXFS tiebreaker node A node identified as a tiebreaker for CXFS to use in the process of computing CXFS kernel membership for the cluster, when exactly half the nodes in the cluster are up and can communicate with each other. There is no default CXFS tiebreaker. SGI recommends that the tiebreaker node be a client-only node. The CXFS tiebreaker differs from the FailSafe tiebreaker; see FailSafe Administrator’s Guide for SGI InfiniteStorage. database See cluster database. database membership See cluster database membership. details area The portion of the GUI window that displays details about a selected component in the view area. See also view area. domain See cluster domain and local domain. dynamic heartbeat monitoring Starts monitoring only when an operation is pending. Once monitoring initiates, it monitors at 1-second intervals and declares a timeout after 5 consecutive missed seconds, just like static heartbeat monitoring. 007–4507–015 287 Glossary FailSafe membership The group of nodes that are actively sharing resources in the cluster, which may be a subset of the nodes defined in a cluster. FailSafe membership differs from CXFS kernel membership and cluster database membership. For more information about FailSafe, see FailSafe Administrator’s Guide for SGI InfiniteStorage. failure action hierarchy See failpolicy methods failpolicy methods The set of instructions that determine what happens to a failed node; the second instruction will be followed only if the first instruction fails; the third instruction will be followed only if the first and second fail. The available actions are: fence, fenceresetreset, and shutdown. Also known as failure action hierarchy fence The failure policy method that isolates a problem node so that it cannot access I/O devices, and therefore cannot corrupt data in the shared CXFS filesystem. I/O fencing can be applied to any node in the cluster (CXFS clients and metadata servers). The rest of the cluster can begin immediate recovery. fencereset The failure policy method that fences the node and then, if the node is successfully fenced, performs an asynchronous system reset; recovery begins without waiting for reset acknowledgment. If used, this fail policy method should be specified first. If the fencing action fails, the reset is not performed; therefore, reset alone is also highly recommended for all server-capable nodes (unless there is a single server-capable node in the cluster). fencing recovery The process of recovery from fencing, in which the affected node automatically withdraws from the CXFS kernel membership, unmounts all file systems that are using an I/O path via fenced HBA(s), and then rejoins the cluster. 288 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage forced CXFS shutdown The withdrawl of a node from the CXFS kernel membership, either due to the fact that the node has failed somehow or by issuing an admin cxfs_stop command. This disables filesystem and cluster volume access for the node. The node remains enabled in the cluster database. See also CXFS services stop and shutdown. fs2d database membership See cluster database membership. heartbeat messages Messages that cluster software sends between the nodes that indicate a node is up and running. Heartbeat messages and control messages are sent through the node’s network interfaces that have been attached to a control network. heartbeat interval The time between heartbeat messages. The node timeout value must be at least 10 times the heartbeat interval for proper CXFS operation. The higher the number of heartbeats (smaller heartbeat interval), the greater the potential for slowing down the network. See also dynamic heartbeat monitoring and static heartbeat monitoring. I/O fencing See fence. kernel-space membership See CXFS kernel membership. local domain XVM concept in which a filesystem applies only to the local node, not to the cluster. See also cluster domain. log configuration A log configuration has two parts: a log level and a log file, both associated with a log group. The cluster administrator can customize the location and amount of log output, and can specify a log configuration for all nodes or for only one node. For example, the crsd log group can be configured to log detailed level-10 messages to the 007–4507–015 289 Glossary crsd-foo log only on the node foo and to write only minimal level-1 messages to the crsd log on all other nodes. log file A file containing notifications for a particular log group. A log file is part of the log configuration for a log group. log group A set of one or more CXFS processes that use the same log configuration. A log group usually corresponds to one daemon, such as gcd. log level A number controlling the number of log messages that CXFS will write into an associated log group’s log file. A log level is part of the log configuration for a log group. membership See cluster database membership and CXFS kernel membership. membership version A number associated with a node’s cell ID that indicates the number of times the CXFS kernel membership has changed since a node joined the membership. metadata Information that describes a file, such as the file’s name, size, location, and permissions. metadata server The administration node that coordinates updating of meta data on behalf of all nodes in a cluster. There can be multiple potential metadata servers, but only one is chosen to be the active metadata server for any one filesystem. metadata server recovery The process by which the metadata server moves from one node to another due to an interruption in CXFS services on the first node. See also recovery 290 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage multiOS A cluster that is running multiple operating systems, such as IRIX and Solaris. multiport serial adapter cable A device that provides four DB9 serial ports from a 36-pin connector. node A node is an operating system (OS) image, usually an individual computer. (This use of the term node does not have the same meaning as a node in an SGI Origin 3000 or SGI 2000 system and is different from the NUMA definition for a brick/blade on the end of a NUMAlink cable.) A given node can be a member of only one pool (and therefore) only one cluster. See also administration node, client-only node, server-capable administration node, and standby node node ID An integer in the range 1 through 32767 that is unique among the nodes in the pool. If you do not specify a number, CXFS will calculate an ID for you. You must not change the node ID number after the node has been defined. node membership The list of nodes that are active (have CXFS kernel membership) in a cluster. node timeout If no heartbeat is received from a node in this period of time, the node is considered to be dead. The node timeout value must be at least 10 times the heartbeat interval for proper CXFS operation. notification command The command used to notify the cluster administrator of changes or failures in the cluster and nodes. The command must exist on every node in the cluster. 007–4507–015 291 Glossary owner host A system that can control a node remotely, such as power-cycling the node. At run time, the owner host must be defined as a node in the pool. owner TTY name The device file name of the terminal port (TTY) on the owner host to which the system controller is connected. The other end of the cable connects to the node with the system controller port, so the node can be controlled remotely by the owner host. pool The pool is the set of nodes from which a particular cluster may be formed. Only one cluster may be configured from a given pool, and it need not contain all of the available nodes. (Other pools may exist, but each is disjoint from the other. They share no node or cluster definitions.) A pool is formed when you connect to a given node and define that node in the cluster database using the CXFS GUI. You can then add other nodes to the pool by defining them while still connected to the first node, or to any other node that is already in the pool. (If you were to connect to another node and then define it, you would be creating a second pool). port password The password for the system controller port, usually set once in firmware or by setting jumper wires. (This is not the same as the node’s root password.) potential metadata server A server-capable administration node that is listed in the metadata server list when defining a filesystem; only one node in the list will be chosen as the active metadata server. 292 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage quorum The number of nodes required to form a cluster, which differs according to membership: • For CXFS kernel membership: – A majority (>50%) of the server-capable nodes in the cluster are required to form an initial membership – Half (50%) of the server-capable nodes in the cluster are required to maintain an existing membership • For cluster database membership, 50% of the nodes in the pool are required to form and maintain a cluster. recovery The process by which a node is removed from the CXFS kernel membership due to an interruption in CXFS services. It is during this process that the remaining nodes in the CXFS kernel membership resolve their state for cluster resources owned or shared with the removed node. See also metadata server recovery relocation The process by which the metadata server moves from one node to another due to an administrative action; other services on the first node are not interrupted. reset The failure policy method that performs a system reset via a serial line connected to the system controller. The reset may be a powercycle, serial reset, or NMI (nonmaskable interrupt). server-capable administration node A node that is installed with the cluster_admin product and is also capable of coordinating CXFS metadata. server-side licensing Licensing that uses license keys on the CXFS server-capable nodes; it does not require node-locked license keys on CXFS client-only nodes. The license keys are node-locked to each server-capable node and specify the number and size of client-only nodes that 007–4507–015 293 Glossary may join the cluster membership. For details, see the CXFS Administration Guide for SGI InfiniteStorage. shutdown The fail action hierarchy selection that tells the other nodes in the cluster to wait before reforming the CXFS kernel membership. The surviving cluster delays the beginning of recovery to allow the node time to complete the shutdown. See also forced CXFS shutdown. snooping A security breach involving illicit viewing. split-brain syndrome A situation in which multiple clusters are formed due to a network partition and the lack of reset and/or CXFS tiebreaker capability. spoofing A security breach in which one machine on the network masquerades as another. standby node A server-capable administration node that is configured as a potential metadata server for a given filesystem, but does not currently run any applications that will use that filesystem. static heartbeat monitoring Monitors constantly at 1-second intervals and declares a timeout after 5 consecutive missed seconds (default). See also dynamic heartbeat monitoring. storage area network (SAN) A dedicated, high-speed, scalable network of servers and storage devices designed to enhance the storage, retrieval, and management of data 294 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage system controller port A port sitting on a node that provides a way to power-cycle the node remotely. Enabling or disabling a system controller port in the cluster database tells CXFS whether it can perform operations on the system controller port. system log file Log files in which system messages are stored tiebreaker node See CXFS tiebreaker node. user-space membership See cluster database membership. view area The portion of the GUI window that displays components graphically. See also details area. 007–4507–015 295 Index 100baseT, 102 A ACL problem and AIX, 47 acledit, 28 aclget, 28 aclput, 28 ACLs AIX, 28, 32 Linux, 54 Mac OS X, 80 Solaris, 123 Windows, 160 Active Directory user ID mapping method, 189 admin account, 17 admin cxfs_unmount, 270 administrative tasks, 5 AIX ACLs, 28 client software installation, 37 commands installed by CXFS , 27 common problems, 45 hardware, 26 HBA installation, 33 identifying problems, 237 ifconfig, 35 kernel extensions, 48 limitations, 28 log files, 27 manual CXFS startup/shutdown, 41 modify the CXFS software, 42 operating system version, 26 postinstallation steps, 40 preinstallation steps, 33 problem reporting, 47 007–4507–015 requirements, 26 software maintenance, 42 upgrades, 42 space requirements, 37 storage partitioning, 10, 33 alog, 48 appropriate use of CXFS, 14 B backups, 21 bandwidth, 2, 14 best practices, 13 administration tasks, 20 appropriate use of CXFS, 14 backups, 21 client-only nodes, 17 configuration tasks, 13 cron jobs, 21 fast copying, 23 filesystem repair, 22 firewall configuration, 19 forced unmount, 19 hostname resolution rules, 15 maintenance of CXFS, 23 mix of software releases, 17 network configuration rules, 15 network issues, 16 node shutdown, 21 platform-specific limitations, 21 power mangement software, 23 private network, 16 protect data integrity, 17 tiebreaker (client-only), 18 upgrades, 20 297 Index BIOS version, 149 block size, 254 buffered I/O, 15 C $c or $C, 145 client software installation AIX, 37 Linux, 60 Mac OS X, 93 SGI ProPack, 106 Solaris, 134 Windows, 187 client-only node advantage, 17 client-only node configuration add to the cluster, 224, 268 define the node, 222 define the switch, 224, 268 modify the cluster, 224, 268 mount filesystems, 226 permit fencing, 222 start CXFS services, 225, 270 verify the cluster, 228 client-only nodes added to cluster, 224, 268 client.options file, 112 cluster configuration, 221 verification, 228 cluster administration, 5 Command Tag Queueing (CTQ), 177 commands installed AIX, 27 Linux, 51, 52, 103, 150 Mac OS X, 76 Solaris, 121 Windows, 150 common problems, 240 concatenated slice limit, 254 concepts, 2 298 console log, 48 contacting SGI with problems SGI ProPack, 115 core files, 145 CPU types for Linux, 50 cpuinfo, 73, 116 crash dumps Solaris, 145 Windows, 219 crash utility and gathering output, 145 cron jobs, 21 crontab, 22 CXFS GUI , 221 software removal on Windows, 203 startup/shutdown Windows, 200 CXFS Client log color meanings, 153 CXFS Client service command line arguments, 189 CXFS Info icon color meanings, 154 CXFS startup/shutdown AIX, 41 Linux, 65 Mac OS X, 96 SGI ProPack, 111 Solaris, 138 Windows, 200 cxfs_admin, 221 cxfs_client daemon is not started Linux, 71 Mac OS X, 100 Solaris, 143 service is not started AIX, 46 cxfs_client.options, 112 cxfs_cluster, 41 cxfs_cluster command, 111, 138 cxfs_info, 151 state information, 230 cxfscp, 23 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage cxfsdump, 74, 116, 146 D data integrity, 17 define a client-only node, 222 defragmenter software, 22 devfs, 71 device block size, 254 dflt_local_status, 270 direct-access I/O, 2 disk device verification for Solaris, 127 display LUNs for QLogic HBA, 180 distributed applications, 14 dmesg command, 131 DNS AIX, 34 Linux, 57 Mac OS X, 91 Solaris, 129 Windows, 185 DOS command shell, 185 dumps and output to gather, 145 E Entitlement Sheet, 7 error messages, 239 /etc/fencing.conf and AIX, 40 /etc/hostname. , 132 /etc/hosts AIX, 34 Linux, 56 Mac OS X, 79 /etc/inet/ipnodes, 129 /etc/init.d/cxfs_client, 65 /etc/init.d/cxfs_cluster command, 111, 138 /etc/netmasks, 132 /etc/nodename file, 132 /etc/nsswitch.conf, 130 007–4507–015 /etc/nsswitch.conf file, 15 /etc/sys_id, 132 examples add a client-only node to the cluster, 268 CXFS software installation AIX, 37 Linux, 61 SGI ProPack, 106 Solaris, 135 Windows, 188 define a node, 267 define a switch, 224, 268 /etc/hosts file Linux, 57 /etc/inet/hosts file Linux, 57 /etc/inet/ipnodes file Solaris, 129 ifconfig AIX, 35, 36 Linux, 57, 59 Mac OS X, 91 Solaris, 130, 134 modify the cluster, 268 modifying the CXFS software AIX, 42 Solaris, 139 Windows, 201 mount filesystems, 270 name services Linux, 57 Solaris, 129 ping AIX, 36 Linux, 59 Mac OS X, 92 Solaris, 133 ping output for Solaris, 133 private network interface test AIX, 36 Linux, 59 299 Index Mac OS X, 92 Solaris, 133 private network interface test for Solaris, 133 .rhosts, 132 start CXFS services, 225, 270 verify the cluster configuration, 228 Windows Client service command line options, 202 fsr, 22 G G5 Xserve, 76 genkex, 48 gigabit ethernet, 102 guided configuration, 221 F H fail action hierarchy, 267 FailSafe coexecution, 8 failure on restart, 217 fast cp[u, 23 fence specification in node definition, 267 fencing data integrity protection, 17 fencing.conf and AIX, 40 fencing.conf file, 63, 94, 109, 196 Fibre Channel HBA See "host bus adapter", 54 Fibre Channel requirements AIX, 26 Solaris, 120 file size and CXFS, 14 file size/offset maximum, 254 filesystem block size, 254 filesystem defragmenter software, 22 filesystem does not mount AIX, 46 Solaris, 143 Windows, 216 filesystem network access, 3 filesystem repair, 22 filesystem specifications, 254 find and crontab, 22 firewalls, 19, 246 forced unmount, 19 format command, 127 free disk space required, 149 300 hangs and output to gather, 145 hardware installed, 73, 116 hardware requirements, 102 AIX, 26 all platforms, 7 Linux, 50 Mac OS X, 76 Solaris, 120 Windows, 149 HBA AIX, 26, 33 Linux, 50, 54 Mac OS X, 88 problems, 144 Solaris, 120 Windows, 149, 179 hierarchy of fail actions, 267 host bust adapter See "HBA", 179 hostname Mac OS X, 78 hostname resolution rules, 15 hostname. , 132 hosts file Linux, 56 hub, 102 007–4507–015 CXFSTM MultiOS Client-Only Guide for SGI® InfiniteStorage L I I/O fencing See "fencing", 17 I/O operations, 2 I/O request size and AIX, 29 identifying problems, 239 ifconfig AIX, 35, 36 Linux, 57, 59 Mac OS X, 91 Solaris, 130, 134 initial setup services, 1 inode64 mount option Mac OS X, 78 installed packages, 145 installed patches, 145 installp, 37 integrated Ethernet, 131 Intel Pentium processor, 149 interface for the private network, 131 internode communication, 15 introduction, 1 IP address, changing, 15 ipconfig, 185 ipnodes, 129 IRIX labels in warning messages, 127 J JBOD, 7 jumbo frames, 102 K large file support, 254 large files, 2 LDAP generic user ID mapping method, 190 license key, 9 obtaining, 10 licensing, 7 Linux client software installation, 60 commands installed by CXFS, 51, 52, 103, 150 common problems, 71 HBA installation, 54 identifying problems, 237 ifconfig, 59 limitations, 52 log files, 52 manual CXFS startup/shutdown, 65 preinstallation steps, 56 problem reporting, 73 requirements, 50 software maintenance, 67 software maintenance, 67 space requirements, 61 log files AIX, 27 Linux, 52 list of, 103 Mac OS X, 77 monitoring, 103 Solaris, 122 Windows, 151, 217 lslpp, 27, 39, 48 lsmod, 73, 116 lspci, 73, 116 LUN limit, 254 kdb, 48, 74 kernel modules and versions, 146 kernel running on Linux, 73 kernel running on SGI ProPack, 115 007–4507–015 301 Index M Mac OS X access control lists, 80 client software installation, 93 commands installed, 76 common problems, 100 hardware platforms, 76 HBA, 88 hostname, 78 identifying problems, 237 ifconfig, 91 limitations and considerations, 78 log files, 77 manual CXFS startup/shutdown, 96 modifying CXFS software, 97 NetInfo Manager, 80 power-save mode disabling, 92 preinstallation steps, 90 private network, 91 problem reporting, 101 removing CXFS software, 97 requirements, 76 software maintenance, 96 UID and GID mapping, 79 upgrading CXFS software, 97 maintenance and CXFS services, 23 manual CXFS startup/shutdown AIX, 41 Linux, 65 Windows, 200 md driver and SGI Altix systems, 105 mdb, 145 membership problems and firewalls, 246 memory error and AIX, 47 memory-map maximum Mac OS X, 78 memory-mapped files flush time, 178 memory-mapped shared files, 14 metadata, 3, 14 metadata server, 4 mirroring feature and license key, 9 302 MmapFlushTimeSeconds, 178 modify cluster command, 268 modinfo, 146 modules and versions, 146 modules loaded on Linux, 73 modules loaded on SGI ProPack, 116 mount filesystems, 226 mount options support, 255 mount-point nesting on Solaris, 122 msgbuf, 145 $ , 145 /var/log/cxfs_client, 52 /var/tmp/cxfs_client, 27 verify cluster, 228 versions of modules installed, 146 volume manager, 103 W warning message and IRIX labels, 127 Windows ACLs, 160 client software installation steps, 187 common problems, 210 crash dumps, 219 CXFS commands installed, 150 CXFS software removal, 203 debugging information, 219 failure on restart, 217 filesystems not displayed, 216 identifying problems, 237 installation overview, 3 ipconfig, 185 large log files, 217 log files, 151 LUNs, 180 manual CXFS startup/shutdown, 200 memory configuration, 218 modify the CXFS software, 201 306 postinstallation steps, 194 preinstallation steps, 183 problem reporting, 218 QLogic HBA installation, 179 requirements, 7, 149 software maintenance, 200 software upgrades, 202 verify networks, 185 Windows/Setup.exe, 187 worldwide number, 40 worldwide port name, 63, 94, 109, 196 Linux, 63, 109, 246 Mac OS X, 94 Windows, 196 WWPN, 40, 63, 94, 109, 196 Linux, 63, 109, 246 Mac OS X, 94 Windows, 196 X xfs_fsr, 22 xfs_repair, 22 Xserve, 76 XVM requirement, 103 XVM failover v2, 11 Linux, 70 Mac OS X, 98 XVM mirroring license key, 9 007–4507–015
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.2 Linearized : Yes Create Date : 2007:09:11 09:45:43-07:00 Modify Date : 2007:09:11 09:45:43-07:00 Page Count : 338 Creation Date : 2007:09:11 16:45:43Z Mod Date : 2007:09:11 16:45:43Z Producer : Acrobat Distiller 5.0 (Windows) Metadata Date : 2007:09:11 16:45:43Z Page Mode : UseOutlinesEXIF Metadata provided by EXIF.tools