CXFS supports a client-only node running the Windows operating system. The information in this chapter applies to all of these versions of Windows unless otherwise noted.
This chapter contains the following sections:
![]() | Note: Your Start menu may differ from the
examples shown in this guide, depending upon your start menu preferences.
For example, this guide describes selecting the control panel as follows:Start -> Settings -> Control Panel However, on your system this menu could be as follows: Start -> Control Panel |
This section contains the following information about CXFS on Windows:
In addition to the items listed in “Requirements” in Chapter 1, CXFS requires at least the following:
Windows XP SP2
Windows XP x64
Windows Server 2003 R2
Windows Server 2003 R2 x64
Windows Server 2003 SP2
Windows Server 2003 SP2 x64
Windows Vista
Windows Vista x64
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): at least 1 GB of physical RAM
Host bus adapter (HBA):
The following LSI Logic software from the http://www.lsilogic.com website:
Windows 2003: 1.26.01
Windows XP: 1.26.01
Windows Vista: 1.26.01
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
![]() | Note: Windows Vista does not support the QLA2200. |
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
Windows Vista: Business, Enterprise and Ultimate Editions v9.1.7.15 STOR Miniport for both 32- and 6 4-bit
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.
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.
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” in Chapter 10.
For information about the GRIO commands, see “Guaranteed-Rate I/O (GRIO) and CXFS” in Chapter 1 and “GRIO on 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 server-capable 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 9-6) and may be adjusted by following the steps described in “Modifying the CXFS Software for Windows”.
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
Status of the cms cluster membership daemon
Status of XVM
Status of filesystems
Status of the cluster
Status of the local node
Figure 9-1 shows an example of the CXFS Info window.
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” in Chapter 10.
Filesystems displays each CXFS filesystem, its state, size, and other statistics. Figure 9-2 shows an example.
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”.
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
Black indicates general log information that can provide a frame of reference
Green indicates good progress in joining membership and mounting filesystems
Figure 9-3 shows an example.
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 9-14.
There are a number of limitations in the CXFS software that are unique to the Windows platform:
See also Appendix B, “Filesystem and Logical Unit Specifications”.
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).
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 server-capable administration 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”. |
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.
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.
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.
SGI recommends that you enable the forced unmount feature on CXFS filesystems. See “Enable Forced Unmount” in Chapter 2 and “Forced Unmount of CXFS Filesystems” in Chapter 10.
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.
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):
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.
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.
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.
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 administration 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.
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.
By default, User Account Control is enabled for Windows Vista, but it is not appropriate for use with CXFS. You must therefore disable user account control. See step 4 in “Client Software Installation for Windows”.
The following are performance considerations on a CXFS Windows node, in addition to the limitations described in “Use CXFS when Appropriate” in Chapter 2:
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”)
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.
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” in Chapter 1.
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”.
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 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:
The CXFS software supports several user identification mechanisms, which are described in “User Identification Mapping Methods for Windows”. 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.
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 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”.
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”.
This configuration requires a domain controller that is installed with the following:
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 9-6.
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”.
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.
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 Linux 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 metadata server:
MDS# ls -l drwxr-x--- 2 fred video 6 Nov 20 13:33 dir1 -rw-r----- 1 fred audio 0 Nov 20 12:59 file1 -rw-rw-r-- 1 fred video 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.
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
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----- 1 fred audio 0 Nov 20 12:59 file1 -r--r--r-- 1 fred video 0 Nov 20 12:59 file2 |
If fred then unset these flags, only he could write to both files:
-rw-r----- 1 fred audio 0 Nov 20 12:59 file1 -rw-r--r-- 1 fred video 0 Nov 20 12:59 file2 |
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) Allow: Read Fred Costello (cxfs1\fred) Allow: Read, Write |
Using the Advanced button, file1 is displayed as follows:
Allow Fred Costello (cxfs1\fred) Special Allow audio (cxfs1\audio) 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 9-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 9-1.
Table 9-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 Allow: Read video (cxfs1\video) Allow: Read, Write Fred Costello (cxfs1\fred) Allow: Read, Write |
The permissions for dir1 are displayed as follows:
Fred Costello (cxfs1\fred) Allow: Video (cxfs1\video) Allow: |
![]() | 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 Fred Costello Special This folder only Allow video Read & Execute 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.
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 Linux ACL mask. See the chacl(1) man page for an explanation of Linux 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 Linux 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) Allow: Read Diane Green (cxfs1\diane) Allow: Read Fred Costello (cxfs1\fred) Allow: Read, Write |
After clicking OK, the properties for file1 will also include the CXFS ACL Mask displayed as follows:
audio (cxfs1\audio) Allow: Read CXFS ACL Mask (cxfs1\CXFS...) Allow: Read Diane Green (cxfs1\diane) Allow: Read Fred Costello (cxfs1\fred) Allow: 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. |
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) Allow: Read CXFS ACL Mask (cxfs1\CXFS...) Allow: Read Diane Green (cxfs1\diane) Allow: Read, Write Fred Costello (cxfs1\fred) Allow: Read, Write |
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.
![]() | 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). |
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” and “Inheritance and Default ACLs for Windows”.
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:
admin% ls -lda . drwxr-xr-x 3 fred video 41 Nov 21 18:01 ./ admin% umask 0022 admin% touch file3 admin% 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.
A Linux 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, a Linux 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 :
admin% 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 admin% touch dir1/newfile admin% mkdir dir1/newdir admin% 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...) Allow: Diane Green (cxfs1\diane) Allow: Fred Costello (cxfs1\fred) Allow: Read & Exec, List, Read, Write Video (cxfs1\video) Allow: Read & Exec, List, Read |
After clicking on Advanced, the permissions displayed are as follows:,
Allow Fred Costello Special This folder, subfolders and files Allow video Read & Execute This folder, subfolders and files Allow Diane Green Read, Write & Exec Subfolders and files Allow CXFS ACL Mask Read, Write & Exec Subfolders and files Allow Diane Green Read & Exec This folder only Allow CXFS ACL Mask Read & Exec 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.
Adding different Subfolders Only and Files Only entries will result in only the first entry being used because a Linux ACL cannot differentiate between the two.
This section discusses the following topics:
![]() | Note: These system tunables are removed when the software is removed. They may need to be reset when downgrading the CXFS for Windows software. |
In order to configure system tuning settings, you must to modify the registry. Do the following:
Back up the registry before making any changes.
Click Start, select Run, and open the adit.exe program.
Select HKEY_LOCAL_MACHINE and follow the tree structure down to the parameter you wish to change.
After making the change, reboot the system so that the change takes affect.
![]() | 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. |
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”.
In the Registry Editor (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.
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
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.
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. |
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 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. |
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
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 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.
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.
To increase the size of the I/O, do the following:
Run regedit as follows:
Start -> Run -> regedit
In regedit, select HKEY_LOCAL_MACHINE and follow the tree structure down to the QLogic driver as follows:
HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Services -> ql2xxx -> Parameters -> Device
Double-click on MaximumSGList:REG_DWORD:0x21
Enter a value from 16 to 255 (0x10 hex to 0xFF). A value of 255 (0xFF) enables the maximum 1-MByte transfer size. Setting a value higher than 255 results in 64-KB transfers. The default value is 33 (0x21).
Enter a value from 16 to 255 (0x10 hex to 0xFF). A value of > 255 (0xFF) enables the maximum 1 MByte transfer size. Setting > a value higher than 255 results with the default of 64K > transfers. The default value is 33 (0x21).
Exit the Registry Editor.
Shutdown and reboot the system.
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 Linux nodes. |
To configure the CTQ for the QLogic HBA, do the following:
Start the SANsurfer Manager program and connect.
Click the first adapter, for example Adapter QLA2342.
Click the Settings tab.
Click the Select Settings section drop down list and select Advanced Adapter Settings .
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.
Repeat step 5 for each HBA port used for CXFS.
Click Save, enter the password (config by default), and click OK.
Close the SANsurfer Manager program.
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. |
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.)
![]() | 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. |
In regedit, navigate and edit the following value:
HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Services -> CXFS -> Parameters -> MmapFlushTimeSeconds
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:
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.
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:
Disable fencing for this node.
Determine the worldwide port name (WWPN) of the current adapter:
Install SANsurfer QLogic Agent and Manager
Run SANsurfer to determine the WWPN
Record the WWPN on paper
Shut down Windows.
Install the second HBA and start Windows.
If the second HBA is a different model from the original one, install its mini port driver (for example, ql2300.sys).
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.
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”“ 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.
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):
|
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).
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.
Click Apply to save the new configuration.
Update the switch port information. Reenable fencing.
Reboot Windows.
For more information about using the CXFS GUI or cxfs_admin to perform these tasks, see CXFS Administration Guide for SGI InfiniteStorage.
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:
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.
Perform the procedure in “Configuring Multiple HBAs for Load Balancing on Windows”. With QLdirect installed, the targets can be masked but will also failover to another port if a connection is lost.
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:
A private network is required for use with CXFS. See “Use a Private Network” in Chapter 2.
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:
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.
Ensure that the node recognizes two network adapters in the system. Select the following:
Start -> Settings -> Network and Dial-up Connections
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 9-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 |
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.
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 Primary Dns Suffix . . . . . . . : cxfs-domain.sgi.com Node Type . . . . . . . . . . . . : Unknown IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No DNS Suffix Search List. . . . . . : cxfs-domain.sgi.com sgi.com Ethernet adapter Public: Connection-specific DNS Suffix . : cxfs-domain.sgi.com Description . . . . . . . . . . . : 3Com EtherLink PCI Physical Address. . . . . . . . . : 00-01-03-46-2E-09 Dhcp Enabled. . . . . . . . . . . : No IP Address. . . . . . . . . . . . : 192.168.0.101 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.0.1 DNS Servers . . . . . . . . . . . : 192.168.0.x Ethernet adapter Private: Connection-specific DNS Suffix . : Description . . . . . . . . . . . : 3Com EtherLink PCI Physical Address. . . . . . . . . : 00-B0-D0-31-22-7C Dhcp Enabled. . . . . . . . . . . : No IP Address. . . . . . . . . . . . : 10.0.0.101 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : |
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 |
TCP on port 5450 |
TCP on port 5451 |
UDP on port 5453 |
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.
To install the CXFS client software on a Windows node, do the following:
Read the SGI InfiniteStorage Software Platform release notes CXFS general release notes in the /docs directory on the ISSP DVD and any late-breaking caveats on Supportfolio.
Log onto the Windows node as Administrator or as an account with administrative privileges.
Verify that the node has been updated to the correct service pack:
Start -> Programs -> Accessories -> System Tools -> System Information
![]() | Note: If you must reinstall the OS, disconnect the system from the fabric first. |
(Windows Vista Only) Disable User Account Control (requires administrator privileges). By default, User Account Control is enabled for Windows Vista, but it is not appropriate for use with CXFS; you should disable it before you install CXFS on a Windows Vista node. Do the following:
Using the User Accounts control panel, click the Turn User Account Control on or off link.
Uncheck the Use User Account Control (UAC) to help protect your computer check box. Press the OK button to confirm your selection.
Press the Restart Now button in the dialog box that says you must restart your computer to apply these changes. This will reboot your system.
Transfer the client software that was downloaded onto a server-capable administration node during its installation procedure using ftp, rcp, or scp . The location of the Windows installation program on the server will be as follows:
/usr/cluster/client-dist/CXFS_VERSION/windows/all/noarch/setup.exe |
Double-click on the setup.exe installation program to execute it.
Acknowledge the software license agreement when prompted and read the Windows release notes, which may contain corrections to this guide.
Install the CXFS software, as shown in Figure 9-5. If the software is to be installed in a nondefault directory, click Browse to select another directory. Click Next when finished.
Enter details for the following fields as shown in Figure 9-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”.
User ID mapping lookup sequence: choose the appropriate primary and (optionally) secondary method. See “User Identification Mapping Methods for Windows”.
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.
If you select ldap_activedir as the user ID mapping method, the dialog in Figure 9-7 is displayed after you click Next.
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.
If you select ldap_generic as the user ID mapping method, the dialog in Figure 9-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.
Review the settings, as shown in Figure 9-9. If they appear as you intended, click Next. If you need to make corrections, click Back.
After you click Next, the CXFS software will be installed.
You will be given the option to start the driver at system start-up, as shown in Figure 9-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.
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 9-11. (CXFS will not run until a restart has occurred.)
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:
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. |
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 server-capable 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:
Verify that permissions are set as described in “Checking Permissions on the Password and Group Files for Windows ”.
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
Select a user and then select:
Properties -> UNIX Attributes
The CXFS software will check for changes to the LDAP database every 5 minutes.
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”.
If only the Administrator user is mapped, see “CXFS Client Service Cannot Map Users other than Administrator 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. |
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.
Do the following to determine the WWPN for a QLogic switch:
Set up the switch and HBA. See the release notes for supported hardware.
Use the telnet command to connect to the switch and log in as user admin. (The password is password by default).
Enter the show topology command to retrieve the WWPN numbers. For example:
SANbox #> show topology Unique ID Key ------------- A = ALPA, D = Domain ID, P = Port ID Port Loc Local Rem Remote Unique Number Type PortWWN Type NodeWWN ID ------ ---- ------- ---- ------- ------ 0 F 20:00:00:c0:dd:06:ff:7f N 20:00:00:01:ff:03:05:b2 020000 P 2 F 20:02:00:c0:dd:06:ff:7f N 20:01:00:e0:8b:32:ba:14 020200 P 4 F 20:04:00:c0:dd:06:ff:7f N 20:00:00:01:ff:03:05:b2 020400 P 5 F 20:05:00:c0:dd:06:ff:7f N 20:00:00:e0:8b:0b:81:24 020500 P 6 F 20:06:00:c0:dd:06:ff:7f N 20:01:00:e0:8b:32:06:c8 020600 P 8 F 20:08:00:c0:dd:06:ff:7f N 20:00:00:01:ff:03:05:b2 020800 P 12 F 20:0c:00:c0:dd:06:ff:7f N 20:00:00:01:ff:03:05:b2 020c00 P 15 F 20:0f:00:c0:dd:06:ff:7f N 20:00:00:e0:8b:10:04:13 020f00 P 17 E 20:11:00:c0:dd:06:ff:7f E 10:00:00:c0:dd:06:fb:04 1(0x1) D 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).
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 |
To enable fencing, see the CXFS Administration Guide for SGI InfiniteStorage.
Do the following to determine the WWPN for a Brocade switch:
Set up the switch and HBA. See the release notes for supported hardware.
Use the telnet command to connect to the switch and log in as user admin. (The password is password by default).
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 in order to produce the string to be used in the fencing file).
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 |
To enable fencing, see the CXFS Administration Guide for SGI InfiniteStorage.
![]() | Note: You could also use SANsurfer to determine the WWPN. |
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.
This section contains the following:
To change the location of the software and other configuration settings that were requested in “Client Software Installation for Windows”, perform the following steps:
Select the following:
Start -> Settings -> Control Panel -> Add/Remove Programs -> CXFS -> Add/Remove -> Modify
Figure 9-12 shows the screen that lets you modify the software.
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 |
Restart the Windows node, which causes the changes to take effect.
To upgrade the CXFS for Windows software, perform the following steps:
Obtain the CXFS update software from Supportfolio according to the directions in the CXFS Administration Guide for SGI InfiniteStorage.
Transfer the client software that was downloaded onto a server-capable administration node during its installation procedure using ftp, rcp, or scp . The location of the Windows installation program will be as follows:
/usr/cluster/client-dist/CXFS_VERSION/windows/all/noarch/setup.exe |
Double-click on the setup.exe installation program to execute it.
A welcome screen will appear that displays the version you are upgrading from and the version you are upgrading to. Figure 9-13 shows an example of the screen that appears when you are upgrading the software (the actual versions displayed by your system will vary based upon the release that is currently installed and the release that will be installed. All the configuration options are available to update as discussed in “Client Software Installation for Windows”.
Restart the Windows node. The upgraded software will not activate until the Windows node is restarted.
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
Figure 9-12 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.
To downgrade the CXFS software, follow the instructions to remove the software in “Removing the CXFS Software for Windows” and then install the older version of the software as directed in “Client Software Installation for Windows”.
![]() | 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. |
If you make changes to your storage configuration, you must rerun the HBA utilities to reprobe the storage. See “HBA Installation for Windows”.
If new storage devices are added to the cluster, you must reboot the Windows node in order to discover those devices.
CXFS supports guaranteed-rate I/O (GRIO) version 2 on the Windows platform.
Figure 9-14 shows an example of the CXFS Info display for GRIO.
For more information, see “Guaranteed-Rate I/O (GRIO) and CXFS” in Chapter 1 and the Guaranteed-Rate I/O Version 2 Guide.
To configure the failover2.conf file for a Windows node, do the following:
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”.
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.
Reboot the Windows node.
Run the following command:
xvm show -v phys | grep affinity > failover2.conf |
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.
Copy the failover2.conf file to the CXFS folder.
Set the preferred path for each target depending on the storage array's setting.
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.
The 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 affinity=1 /dev/xscsi/pci08.03.1/node200500a0b82925e2/port1/lun0/disc affinity=1 /dev/xscsi/pci08.03.1/node200400a0b82925e2/port2/lun0/disc affinity=0 /dev/xscsi/pci08.03.1/node200400a0b82925e2/port1/lun0/disc affinity=0 preferred <current path> |
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 World Wide Node Name World Wide port Name Target ID WWN 200500a0b82925e2 202500A0B82925E2 0 WWN 200500a0b82925e2 201500A0B82925E2 1 WWN 200400a0b82925e2 202400A0B82925E2 2 WWN 200400a0b82925e2 201400A0B82925E2 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 failover2.conf file would contain something like examples shown in the following sections (the format varies by the Windows OS version):
For more information, see “XVM Failover and CXFS” in Chapter 1, the comments in the failover2.conf file, CXFS Administration Guide for SGI InfiniteStorage, and the XVM Volume Manager Administrator's Guide.
Windows XP SP 2 and Windows 2003 Server R2 SP1 failover2.conf example:
SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&030 <dev 321> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&020 <dev 301> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&010 <dev 281> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&000 <dev 261> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&030 <dev 236> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&020 <dev 216> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&010 <dev 196> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&000 <dev 176> affinity=0 # # Where # SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&030 <dev 321> affinity=0 # ^^^^^^^ ^^^ # | |||-- Lun = 0 # | ||--- Target = 1 (1-2 hex digits) # | |---- Bus ID = 0 # |----------- Host HBA port ID = 67032E4 |
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 <dev 321> affinity=0 preferred SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&020 <dev 301> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&010 <dev 281> affinity=1 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&000 <dev 261> affinity=1 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&030 <dev 236> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&020 <dev 216> affinity=0 preferred SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&010 <dev 196> affinity=1 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&000 <dev 176> 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.
Windows 2003 Server R2 SP2 and Windows Vista failover2 example
SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&000300 <dev 321> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&000200 <dev 301> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&000100 <dev 281> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&000000 <dev 261> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&000300 <dev 236> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&000200 <dev 216> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&000100 <dev 196> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&000000 <dev 176> affinity=0 # # Where # SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&00300 <dev 321> affinity=0 # ^^^^^^^ ^^^^^ # | || |- Lun = 0 (2 hex digits) # | ||--- Target = 3 (2 hex digits) # | |---- Bus ID = 0 # |----------- Host HBA port ID = 67032E4 |
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&000300 <dev 321> affinity=0 preferred SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&000200 <dev 301> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&000100 <dev 281> affinity=1 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&67032E4&0&000000 <dev 261> affinity=1 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&000300 <dev 236> affinity=0 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&000200 <dev 216> affinity=0 preferred SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&000100 <dev 196> affinity=1 SCSI\DISK&VEN_SGI&PROD_TP9700&REV_0619\5&1F095A8E&0&000000 <dev 176> 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.
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 9-15.
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:
Choose the HBA port
Select e to enable expert mode
Select 15 to manipulate persistent binding
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. |
This section contains the following common Windows problems:
Also see:
The Windows cxfsdump documentation located at %ProgramFiles%\CXFS\cxfsdump.html
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
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.
Check that the HBA configuration is correct. For information specific to Windows, see “HBA Problems”.
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:
Is the node is configured on the server-capable administration node with the correct hostname? See “Configuring Hostnames on Mac OS X” in Chapter 6.
Has the node been added to the cluster and enabled? See “Verifying the Cluster Status” in Chapter 10.
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.
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:
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”). 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.
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:
![]() | 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. |
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.
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.
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” and “Unable to Mount Filesystems on 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.
Do the following:
Select the following:
Start -> Settings -> Control Panel -> Administrative Tools -> Active Directory Users and Computers
Select the following:
View -> Advanced Features
Right-mouse click the Users folder under the domain controller you are using and select the following:
Properties -> Security -> Advanced -> Add
Select Authenticated Users from the list and click OK.
Select Child Objects Only from the Apply onto drop-down list and check Read All Properties from the list of permissions.
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.
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” in Chapter 10.
Ensure that the CXFS metadata server is up and that the Windows node is in the cluster membership; see “Verifying the Cluster Status” in Chapter 10.
Check that the CXFS Client service has started. See “Start/Stop the CXFS Client Service for Windows” and “Verifying that the CXFS Software is Running Correctly for Windows”.
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.
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”) 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” for information on how to stop and start the CXFS Client service.
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.
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 |
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 |
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.
If the Windows Vista node hibernates, it will lose membership in the CXFS cluster. Hibernation is turned on by default for Vista and must be modified.
Do the following:
Select the following:
Start -> Settings -> Control Panel -> Power Options
Select the High Performance radio button.
Click OK.
Alternatively, you can use the following command:
C:\> powercfg -S SCHEME_MIN |
If the Windows Vista node appears to be in membership when the cxfs_info command is run from the Vista node but is not in membership according to administration tools run on a server-capable administration node, it may be that User Account Control is still enabled (it is enabled by default for Windows Vista).
User Account Control is not appropriate for use with CXFS, and you must disable it. See step 4 in “Client Software Installation for Windows”.
If you are unable to use the cd command on a Windows Vista node for a filesystem that appears to be mounted, it may be that User Account Control is still enabled (it is enabled by default for Windows Vista). For example:
vista$ cd /cygdrive/x/mnt/stripefs -bash: cd: /cygdrive/x/mnt/stripefs: Input/Output error |
User Account Control is not appropriate for use with CXFS, and you must disable it. See step 4 in “Client Software Installation for Windows”.
To report problems about a Windows node, you should retain platform-specific information and save crash dumps.
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”
You can obtain information about the cluster by running the cxfsdump utility on a server-capable administration node.
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
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.
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”), 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
In regedit, navigate and edit the following value:
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: