Configuring and administering a CXFS cluster can be a complex task. In general, most problems can be solved by rebooting a node. However, the topics in this chapter may help you avoid rebooting:
See the CXFS 7 Client-Only Guide for SGI InfiniteStorage for additional troubleshooting information.
To troubleshoot CXFS problems, do the following:
To avoid problems in the first place, follow the recommendations in Chapter 2, “CXFS Best Practices”.
You should be able to use the tools discussed in “Troubleshooting Tools”.
You should have a good understanding of the log files discussed in “Status in Log Files” in Chapter 14.
When you encounter a problem, identify the cluster status by answering the following questions:
Are the cluster daemons running? See “Verify that the Cluster Daemons are Running” in Chapter 9.
Is the cluster state consistent on each node? Run the GUI or cxfs_admin command on each server-capable administration node and compare.
Which nodes are in the CXFS kernel membership? Check the cluster status and the /var/log/messages file on server-capable administration nodes.
Which nodes are in the cluster database (fs2d ) membership? See the /var/log/cxfs/fs2d_log files on each server-capable administration node.
Is the database consistent on all server-capable administration nodes? Determine this logging in to each server-capable administration node and examining the /var/log/cxfs/fs2d_log file and database checksum.
Log onto the various CXFS client nodes or use the GUI view area display with details showing to answer the following:
Are the devices available on all nodes? Use the following:
The xvm command to show the physical volumes:
xvm:cluster> show -v phys/ |
Is the client-only node in the cluster? Use the cxfs_info command.
List the contents of the /dev/cxvm directory with the ls command:
# ls /dev/cxvm |
Use the hwinfo(8) command to display the hardware inventory. See “Physical Storage Tools”.
Are the filesystems mounted on all nodes? Use mount, the GUI, and the cxfs_admin and clconf_info commands.
Which node is the metadata server for each filesystem? Use the GUI or the cxfs_admin command to determine. See “Discovering the Active Metadata Server” in Chapter 12.
Is the metadata server in the process of recovery? Look at the following file:
/var/log/messages |
Messages indicate the recovery status. For example:
Recovery is in process:
Mar 13 11:31:02 1A:p2 unix: ALERT: CXFS Recovery: Cell 1: Client Cell 0 Died, Recovering </scratch/p9/local> |
Recovery is complete:
Mar 13 11:31:04 5A:p2 unix: NOTICE: Signaling end of recovery cell 1 |
If filesystems are not mounting, do they appear online in XVM? You can use the following xvm command:
xvm:cluster> show vol/* |
Before you start configuring another new cluster, make sure no nodes are still in a CXFS kernel membership from a previous cluster. Enter the following to check for a cmsd kernel thread:
server-admin# ps -ef | grep cmsd |
If the output shows a cmsd kernel thread, perform a forced CXFS shutdown by entering the following:
server-admin# service cxfs stop |
Then check for a cmsd kernel thread again.
After waiting a few moments, if the cmsd kernel thread still exists, you must reboot the machine or leave it out of the new cluster definition. It will not be able to join a new cluster in this state and it may prevent the rest of the cluster from forming a new CXFS kernel membership.
To determine if a node is fenced, log in to a server-capable administration node and use the cxfs_admin status command or the hafence(1M) command.
The following messages are logged when fencing changes:
Raising fence on cell cellID (nodename) Lowering fence on cell cellID (nodename) |
The quorum master is the server-capable administration node with the lowest node ID number (not cell ID). To confirm which node is the quorum master, look in the /var/log/cxfs/fs2d_log file for the most recent quorum message, such as the following example, which shows that node3 is the quorum master:
Tue Jul 7 12:52:41.490 cxfsopus4 fs2d - Checking quorum with 4 members for any unknown members. Tue Jul 7 12:52:41.490 cxfsopus4 fs2d - All quorum member machines known, master is node3 |
To locate the problem, do the following:
Examine the log files (see “Understand the Log Files”):
Search for errors in all log files. See “Status in Log Files” in Chapter 14. Examine all messages within the timeframe in question.
Trace errors to the source. Try to find an event that triggered the error.
Use detailed information from the view area in the GUI to drill down to specific configuration information.
Run the Test Connectivity task in the GUI. See “Test Node Connectivity with the GUI” in Chapter 10.
Determine how the nodes of the cluster see the current CXFS kernel membership by entering the following command on each server-capable administration node:
server-admin# /usr/cluster/bin/clconf_info |
Check the /var/log/messages file on each server-capable administration node to make sure the CXFS filesystems have been successfully mounted or unmounted.
If a mount/unmount fails, the error will be logged and the operation will be retried after a short delay.
Get a dump of the cluster database. You can extract such a dump with the following command:
server-admin # /usr/cluster/bin/cdbutil -c 'gettree #' > dumpfile |
Brocade switch problems can cause CXFS to behave abnormally. For easier troubleshooting, use the syslogdipadd function on the switch to redirect its syslogd information to up to six potential metadata servers in the cluster. SGI recommends logging to at least two potential metadata servers on which you troubleshoot issues and look for error messages. The syslogd information is the same as that given by errshow command on the switch.
For example, on each switch, define the metadata server nodes MDS1 and MDS2 to which the switch can redirect its syslogd output:
switch:admin > syslogdipadd ipaddress_MDS1 switch:admin > syslogdipadd ipaddress_MDS2 |
The entries from the switch can be sorted because they are prefixed by the switch name, which is standard syslogd behavior.
This section provides an overview of the tools required to troubleshoot CXFS:
| Caution: Many of the commands listed are beyond the scope of this book and are provided here for quick reference only. See the other guides and man pages referenced for complete information before using these commands. |
Understand the following physical storage tools:
For all nodes with Fibre Channel or serial-attached storage (SAS) connections and some nodes with InfiniBand connections, use the following command to probe the LUNs on the specified SCSI host hostX:
# echo "- - -" > /sys/class/scsi_host/hostX/scan |
Each "-" character is a wildcard for bus, target, and LUN, respectively.
Note: InfiniBand drivers and infrastructure on Linux are moving
targets and the behaviors encountered can be distribution-specific; their
documentation beyond the scope of this guide. In some Linux distributions,
there is an issue with the InfiniBand srp driver such
that issuing the above command can cause redundant targets to be created
per InfiniBand host. For those distributions, the following is the preferred
command to probe each selected target for new LUNs
To determine the appropriate bus and target values, use the lsscsi output showing host:bus:target:lun for already-discovered targets. You may need to use the srp_daemon command to dynamically add new targets. |
Use the cxfs-reprobe script look for devices. cxfs-reprobe will also issue an XVM probe to tell XVM that there may be new devices available:
On server-capable administration nodes:
server-admin# /var/cluster/clconfd-scripts/cxfs-reprobe |
On client-only nodes:
client# /var/cluster/cxfs_client-scripts/cxfs-reprobe |
To show the physical volumes, use the xvm command. For example, from a Linux node:
linux# /sbin/xvm show -v phys/ |
The path to the xvm command varies by platform. For more information, see the appendix in CXFS 7 Client-Only Guide for SGI InfiniteStorage. For details about XVM, see the XVM Volume Manager Administrator Guide.
This section discusses the following:
To configure XVM volumes, use the xvm command. On a server-capable administration node:
# /sbin/xvm |
The path to the xvm command varies by platform. For more information, see the appendix in CXFS 7 Client-Only Guide for SGI InfiniteStorage. For details about XVM, see the XVM Volume Manager Administrator Guide.
To configure CXFS, use the CXFS GUI or cxfs_admin:
# /usr/bin/cxfsmgr |
See “GUI Features” in Chapter 10 and Chapter 10, “CXFS GUI”.
The cxfs_admin command:
# /usr/cluster/bin/cxfs_admin [-i clustername] |
See
| Note: If you have multiple clusters connected to the same public network, use the -i option to identify the cluster name. |
To check the cluster configuration, use the following command from a server-capable administration node in the cluster:
server-admin# /usr/cluster/bin/cxfs-config -all -check |
SGI recommends that you run this command after any significant configuration change or whenever problems occur. For more information, see “Validating the Cluster Configuration with cxfs-config ” in Chapter 13.
Understand the cluster control tools:
These commands are useful if you know that filesystems are available but are not indicated as such by the cluster status, or if cluster quorum is lost. However, note that service cxfs stop will cause CXFS to completely shut down on the local node.
See the following:
“CXFS Services” in Chapter 1. Stopping CXFS services or shutting down CXFS services will cause its filesystems to be recovered by another potential metadata server.
| Note: Relocation is disabled by default. |
To revoke and allow CXFS kernel membership on the local node, forcing recovery on the metadata server for the local node, use the GUI or the following cxfs_admin command:
cxfs_admin:clustername> disable node:nodename |
Wait until recovery is complete before issuing a subsequent:
cxfs_admin:clustername> enable node:nodename |
The local node cannot rejoin the CXFS kernel membership until recovery is complete.
Also see the following:
Understand the following networking tools:
Send packets to network hosts using the ping(1) command
Show network status using the netstat(1) command
Understand the following cluster/node status tools:
To show which cluster daemons are running:
# ps -ef | grep cluster |
See “Verify that the Cluster Daemons are Running” in Chapter 9.
To see cluster and filesystem status, use one of the following:
GUI:
# /usr/bin/cxfsmgr |
cxfs_admin command:
# /usr/cluster/bin/cxfs_admin -c status [-i clustername] |
cxfs_info command on an client-only node (see CXFS 7 Client-Only Guide for SGI InfiniteStorage)
To see the mounted filesystems:
# /bin/mount # /bin/df |
For more information, see the mount(8) and df(1) man pages.
You can also use the df command to report the number of free disk blocks
# /sbin/xvm show vol/ |
See the XVM Volume Manager Administrator Guide.
Understand the following performance monitoring tools:
To monitor system activity, use the sar(1) command:
# /usr/bin/sar |
To monitor system input/output device loading on a Linux node, use the iostat(1) command. For example, to monitor at 2-second intervals for 10000000 times:
linux# iostat 2 1000000 |
To monitor process status, memory consumption, paging activity, block I/O operations, interrupts, context switches, and processor usage on a Linux node, use the vmstat(8) command. For example, to monitor at 1-second intervals for 1000 times:
linux# vmstat -a -n 1 1000 |
To monitor the statistics for an XVM volume, use the xvm command:
# /sbin/xvm change stat on {concatname|stripename|physname} |
See the XVM Volume Manager Administrator Guide.
To monitor system performance, use Performance Co-Pilot. See the following:
Performance Co-Pilot for Linux User's and Administrator's Guide
pmie(1) man page
pmieconf(1)man page
For system dump analysis, use the crash(8) tool provided with SLES or RHEL.
To enable the collection of crash dumps, do the following:
Install the following RPMs, where kernelrev matches your installed kernel:
RHEL:
kernel-debuginfo- kernelrev
kernel-debuginfo-common- kernelrev
system-config-kdump- kernelrev
SLES:
kernel-default-debuginfo- kernelrev
kdump-version
kexec-tools-version
For example, for the SLES 2.6.27.19-5-default kernel, you would require kernel-default-debuginfo-2.6.27.19-5.1 RPM, which would install the following file:
/usr/lib/debug/boot/vmlinux-2.6.27.19-5-default.debug |
When you install the RHEL kdump-version RPM, it will automatically add the following information onto the kernel lines in the /boot/grub/menu.lst file:
crashkernel=256m-:128M@16M |
| Note: When you install the kdump RPM, kdump is automatically enabled. |
Reboot, which activates the kernel and reserves the required memory. You will see the following message on the console:
Loading kdump done |
Verify that the machine is set up correctly by requesting an NMI from the console:
console# echo "c">/proc/sysrq-trigger |
| Note: If there are several old dump files, the oldest one might be deleted by this process. |
For example:
console# echo "c">/proc/sysrq-trigger SysRq : Trigger a crashdump Initializing cgroup subsys cpuset Initializing cgroup subsys cpu ... (pages of output) |
The key piece of information to look for are lines such as the following at the end of the output:
Saving dump using makedumpfile ------------------------------------------------------------------------------- Copying data : [ 100 %] The dumpfile is saved to /root/var/crash/2009-10-28-13:05/vmcore. makedumpfile Completed. ------------------------------------------------------------------------------- Generating README Finished. Copying System.map Finished. Copying kernel Finished. Copying kernel.debug Finished. |
Then the machine will reboot normally.
Go to the /var/crash directory and look for the dump directories that named according to the date and time. Each date directory will contain the files required for analysis. For example:
# cd /var/crash console# ls 2009-10-13-21:02/ 2009-10-26-15:55/ # ls -1 2009-10-26-15:55 README.txt System.map-2.6.27.19-5-default vmlinux-2.6.27.19-5-default.debug vmlinux-2.6.27.19-5-default.gz vmcore |
For more information, see the crash(8) man page.
| Note: On systems with CXFS installed, a set of crash extensions is available. These extensions are loaded with the extend sgidbg command incrash. The sgi-cxfs-kmp-kernelrev and cxfs_utils RPMs are required. |
Before reporting a problem to SGI, do the following:
Ensure that there is passwordless root ssh access from the server-capable administration node to all other nodes in the cluster, other than Windows nodes. (Reverse access from the client-only nodes to the server--capable administration node is not needed.)
Run the cxfsdump(8) command on a server-capable administration node, which will collect the information such as the following across the cluster:
System information
CXFS client logs
CXFS version information
Network settings
Execute the following:
mds# /usr/cluster/bin/cxfsdump -secure -fast |
| Note: The -fast option skips the collection of certain data that can be time consuming. The use of this flag is acceptable for most CXFS related issues. |
If your cluster includes Windows nodes, run cxfsdump manually on those nodes. See the Windows chapter of CXFS 7 Client-Only Guide for SGI InfiniteStorage .
The following are common problems and solutions:
If the GUI will not run, check the following:
Is the license key properly installed on the server-capable administration node? See the following:
Are the cluster daemons running? See “Verify that the Cluster Daemons are Running” in Chapter 9.
Are you connecting to a server-capable administration node? The cxfsmgr command can only be executed on a server-capable administration node. The GUI may be run from another system via the Web if you connect the GUI to a server-capable administration node.
Is the following line is commented out in the file /etc/ld.so.conf ?
/usr/lib64/sysadm/lib |
For example:
Error connecting to server: /usr/lib64/sysadm/bin/sysadmd: error
while loading shared libraries: libsysadmUtil.so.0: cannot open
shared object file: No such file or directory. |
To resolve the problem, do the following:
Uncomment the /usr/lib64/sysadm/lib or /usr/lib/sysadm/lib line in the file /etc/ld.so.conf.
Make your change take effect:
# ldconfig |
If you create new slices on a previously sliced disk that have the same starting blocks as slices already existing on the disk, and if the old slices had filesystems, then the GUI will display those old filesystems even though they may not be valid.
If the cxfs_admin output appears to be stale (such as after you manually change the port status, in which case the CXFS database is not informed), you can update the CXFS database by running the following command:
server-admin# /usr/cluster/bin/hafence -U |
If you cannot log in to a server-capable administration node, you can use one of the following commands, assuming that the node you are on is listed in the other nodes' .rhosts files:
# rsh hostname ksh -i # rsh hostname csh -i |
The following message indicates a problem with client membership:
Error -N reading mesg header channel X cell Y |
where N can be one of:
| Number | Description | |
| 61 | No data available | |
| 104 | Connection reset by peer | |
| 110 | Connection timed out |
The following series of messages indicate that a client has lost membership (line breaks added here for readability):
Mar 15 10:55:35 5A:mvcxfs2 kernel: Error -61 reading mesg header channel 0 cell 4 (mvcxfs17) [priority 1 at 192.168.17.173 via 192.168.17.48] Mar 15 10:55:35 4A:mvcxfs2 kernel: Error receiving messages from cell 4 (mvcxfs17) tcpchannel 0 [priority 1 at 192.168.17.173 via 192.168.17.48] Mar 15 10:55:36 5A:mvcxfs2 kernel: Error -61 reading mesg header channel 1 cell 4 (mvcxfs17) [priority 1 at 192.168.17.173 via 192.168.17.48] Mar 15 10:55:36 4A:mvcxfs2 kernel: Error receiving messages from cell 4 (mvcxfs17) tcpchannel 1 [priority 1 at 192.168.17.173 via 192.168.17.48] Mar 15 10:55:36 5A:mvcxfs2 kernel: Error -61 reading mesg header channel 1 cell 4 (mvcxfs17) [priority 2 at 163.154.17.173 via 163.154.17.48] Mar 15 10:55:36 4A:mvcxfs2 kernel: Error receiving messages from cell 4 (mvcxfs17) tcpchannel 1 [priority 2 at 163.154.17.173 via 163.154.17.48] Mar 15 10:55:36 4A:mvcxfs2 kernel: Transport failure cell 4 [priority 2 at 163.154.17.173 via 163.154.17.48] 0 of 2 interfaces up Mar 15 10:55:36 6A:mvcxfs2 kernel: Heartbeat Monitor:Failure time-stamp 295789 ticks:Last heartbeat time-stamp 289940 ticks:Time-stamp delta 5849 ticks (5 seconds):Heartbeat timeout 5120 ticks (5 seconds) |
The Error receiving and Error reading messages indicate that the message channel went down. The last message, which includes the Heartbeat Monitor string, contains other strings that give clues as to why the channel was disconnected. Table 15-1 lists all of the possible strings that may be included.
In the above example, the last message indicates that there is a heartbeat timeout because the string Heartbeat Monitor is included. The message also indicates that the error was detected at 295789 ticks (Failure time-stamp string) and that the configured timeout is 5120 ticks or 5 seconds (the Heartbeat timeout string). The delta is 5849 ticks or 5 seconds (the Time-stamp delta string), therefore it is a heartbeat timeout because the delta is greater than the configured heartbeat timeout.
If you are unable to raise the fence on a node, it may be that the switch ports are unable to determine the WWPN. See “Hardware Changes and I/O Fencing” in Chapter 12.
If you are unable to define a node, it may be that there are hostname resolution problems. See “Hostname Resolution and Network Configuration Rules” in Chapter 6.
If a node is detected in the system log file but it never receives a Membership delivered message, it is likely that there is a network problem. See Chapter 8, “Postinstallation Steps”.
If you experience problems involving a node being inappropriately taken out of the cluster membership (reset, fenced, or shut down, depending upon how the node fail policy is set), it may be that the CXFS kernel heartbeat timeout setting is inappropriate, especially if your cluster includes a large SGI ia64 system (one with more than 64 processors). If you suspect this problem, you should examine the SYSLOG messages to determine the current kernel heartbeat timeout. Membership issues can involve either:
Heartbeats sent from server-capable administration nodes to all other nodes in the cluster
Heartbeats sent from client-only nodes to server-capable administration nodes (these are more likely to have problems)
Every kernel heartbeat multicast packet includes a counter value that monotonically increases with every heartbeat sent by the system. You can use a snoop/tcpdump of the private network to look at the counter and determine if the issue is a missing heartbeat or a late heartbeat. A nonconsecutive heartbeat count indicates that the heartbeat was issued by the client-only node but never received by the server-capable administration node. It generally indicates a problem somewhere in the network stack or physical network layer.
Most client-only node heartbeat timeouts are caused by late heartbeats. This is a heartbeat multicast that is not sent out by the client-only node in a timely fashion. It is a strong indicator that the client-only node is suffering from some sort of resource constraint issue. Many common resources are subject to this problem, and detailed system performance analysis is usually required to determine the exact nature of the failure. The following are common problem areas:
Kernel locks can be held for very long periods of time and prevent a client-only node from issuing a heartbeat multicast packet in a timely fashion.
The CPU servicing interrupts for a CXFS private network interface may be too busy with other activities to service the CXFS heartbeat kernel thread.
Memory thrashing and the associated high-priority kernel threads attempting to relieve the memory pressure may prevent the CXFS kernel heartbeat thread from being serviced or prevent the thread from allocating the memory it requires.
Buffered I/O uses page cache and therefore contends for the same memory resources as user applications. Applications that have high I/O requirements can put intense pressure on system memory management functions and cause memory thrashing when dealing with a large amount of dirty page cache pages.
A poorly configured or over-stressed CXFS private network can cause dropped heartbeat packets. This can be a problem with any node and can effect multiple client-only nodes at the same time.
To avoid these problems, see “Avoid CXFS Kernel Heartbeat Issues on Large Systems” in Chapter 2.
The following may cause the system to hang:
Overrun disk drives.
CXFS kernel heartbeat was lost. In this case, you will see a message that mentions withdrawl of node.
As a last resort, do a non-maskable interrupt (NMI) of the system and contact SGI. (The NMI tells the kernel to panic the node so that an image of memory is saved and can be analyzed later.) For more information, see the owner's guide for the node. Make available the /var/log/messages system log file on server-capable administration nodes.
If you cannot access a filesystem, check the following:
Is the filesystem enabled? Check the GUI and the cxfs_admin status command.
Were there mount errors?
If the log files are consuming too much disk space, you should rotate them; see “Log File Management” in Chapter 12. You may also want to consider choosing a less-verbose log level; see the following:
The Membership delivered messages in the system log file include a bitmask with a bit set for the cell IDs of nodes that are members of the new CXFS membership. The Membership delivered messages are followed by one or more messages starting with Cell(age): that print the individual cell IDs and the ages of their membership. In the following example, 704 is a 64-bit hexadecimal bitmask of cells included in the membership and cell 2 has been in the last 4 CXFS memberships:
[10798.974447] Cell 10 (cxfsxe14) joined the membership [10798.989690] Membership delivered for cells <0:0:0:0:0:0:0:704> [10799.011084] Cell(age): 2(4) 8(7) 9(17) 10(1) |
If the Membership delivered messages are appearing frequently in the system log file, it may indicate a network problem:
Nodes that are stable and remain in the membership will have a large membership version number.
Nodes that are having problems will be missing from the messages or have a small membership version number.
The following message indicates a problem (output lines wrapped here for readability):
ALERT: I/O error in filesystem ("/mnt") metadata dev 0xbd block 0x41df03 ("xlog_iodone")
ALERT: b_error 0 b_bcount 32768 b_resid 0
NOTICE: xfs_force_shutdown(/mnt,0x2) called from line 966 of file ../fs/xfs/xfs_log.c.
Return address = 0xc0000000008626e8
ALERT: I/O Error Detected. Shutting down filesystem: /mnt
ALERT: Please umount the filesystem, and rectify the problem(s) |
You can fix this problem using xfs_repair only if there is no metadata in the XFS log. See “Forced Filesystem Shutdown Messages and XFS File Corruption”, for the appropriate procedure.
I/O errors can also appear if the node is unable to access the storage. This can happen for several reasons:
The node has been physically disconnected from the SAN
A filesystem shutdown due to loss of membership
A filesystem shutdown due to lost of the metadata server
The node has been fenced out of the SAN
If you are unable to raise the fence on a node, it may be that the switch ports are unable to determine the WWPN. See “Hardware Changes and I/O Fencing” in Chapter 12.
If you have defined filesystems and then rename your cluster (by deleting the old cluster and defining a new cluster), CXFS will not be able to mount the existing filesystems. This happens because the clustered XVM volume on which your CXFS filesystem resides is not accessible to the new cluster, and the volumes are therefore considered as foreign.
In order to mount the filesystem on the new cluster, you must use the XVM steal command to bring the clustered XVM volume into the domain of the new cluster. For more information, see the XVM Volume Manager Administrator Guide.
The clconfd and cxfs_client daemons set the client_timeout value. The value depends on the order in which filesystems are mounted on the various nodes and adapts to help ensure that all filesystems get mounted in a timely manner. The value may differ among nodes and has no effect on the filesystem operation after it is mounted.
| Caution: You should not attempt to change the client_timeout value. Improperly setting the values for client_timeout and retry could cause the mount command to keep waiting for a server and could delay the availability of the CXFS filesystems. |
The retry value is forced to be 0 and you cannot change it.
On most platforms, the cxfs_client software automatically detects the world wide port names (WWPNs) of any supported host bus adapters (HBAs) in the system that are connected to a switch that is configured in the cluster database. These HBAs will then be available for fencing.
However, if no WWPNs are detected, there will be messages logged to the cxfs_client file.
If no WWPNs are detected, you can manually specify the WWPNs in the /etc/fencing.conf fencing file for the Linux platform. This method does not work if the WWPNs are partially discovered.
The fencing file enumerates the worldwide port name 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, the fencing file must contain a simple list of WWPNs, one per line.
If you use the fencing file, you must update it whenever the HBA configuration changes, including the replacement of an HBA.
Do the following:
Set up the switch and HBA.
Follow the Fibre Channel, SAS, or InfiniBand cable on the back of the node to determine the port to which it is connected in the switch. Ports are numbered beginning with 0. (For example, if there are 8 ports, they will be numbered 0 through 7.)
Use the ssh (for Brocade or InfiniBand) or 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 to produce the string to be used in the fencing file).
Create the /etc/fencing.conf fencing file and add the WWPN for the port determined in step 2. (Comment lines begin with #.)
For dual-ported HBAs, you must include the WWPNs of any ports that are used to access cluster disks. This may result in multiple WWPNs per HBA in the file; the numbers will probably differ by a single digit.
For example, if you determined that port 0 is the port connected to the switch, your fencing file should contain the following:
# WWPN of the HBA installed on this system # 2000000173002c0b |
After the node is added to the cluster, enable the fencing feature by using the CXFS GUI, hafence, or cxfs_admin on a server-capable administration node.
After a filesystem has been defined in CXFS, running mkfs on it (or using “Make Filesystems with the GUI” in Chapter 10) will cause XFS internal errors to appear in the system log file. For example (line breaks added for readability):
Aug 17 09:25:52 1A:yokohama-mds1 unix: ALERT: Filesystem "(NULL)": XFS internal error xfs_mount_validate_sb(4) at line 237 of file ../fs/xfs/xfs_mount.c. Caller 0xc000000000326ef4 Aug 17 09:14:52 6X:yokohama-mds1 clconfd[360]: < E clconf 11> CI_FAILURE, fsinfo_update(/dev/cxvm/work) kernel returned 1010 (Filesystem is corrupted) |
To avoid these errors, run mkfs before defining the filesystem in CXFS or delete the CXFS filesystem before running mkfs.
If you have multiple metadata servers in the cluster but only one potential metadata server defined for a given filesystem and that server goes down, the now server-less filesystem goes into a shutdown state. Although the clients maintain membership in the cluster, they will not mount the filesystem automatically when the potential metadata server comes back up. You must manually unmount the filesystem.
If there had been only one potential metadata server in the cluster, the filesystem's clients would have lost membership and gone through a forced shutdown, which automatically unmounts the filesystems.
Forced filesystem shutdown messages do not necessarily imply that xfs_repair should be run. Following is an example of a message that does indicate an XFS file corruption:
XFS read error in file system metadata block 106412416 |
When a filesystem is forcibly shut down, the log is not empty -- it contains valuable metadata. You must replay it by mounting the filesystem. The log is only empty if the filesystem is unmounted cleanly (that is, not a forced CXFS shutdown, not a crash). You can use the following command line to see an example of the transactions captured in the log file:
xfs_logprint -t device |
If you run xfs_repair before mounting the filesystem, xfs_repair will delete all of this valuable metadata.
You should run xfs_ncheck and capture the output to a file before running xfs_repair. If running xfs_repair results in files being placed in the lost+found directory, the saved output from xfs_ncheck may help you to identify the original names of the files.
| Caution: Always contact SGI technical support before using xfs_repair on CXFS filesystems. See“Repair Filesystems with Care” in Chapter 2. |
If you think you have a filesystem with real corruption, do the following from an Linux node with XFS commands RPM (sgi-xfsprogs ) installed:
Disable the filesystem in CXFS:
linux# /usr/cluster/bin/cxfs_admin -A -c 'unmount filesystem' [-i clustername] |
Mount the device in order to replay the log:
linux# mount device any_mount_point |
Unmount the filesystem:
linux# unmount device |
Check the filesystem:
linux# xfs_check device |
View the repairs that could be made, using xfs_repair in no-modify mode:
linux# xfs_repair -n device |
Capture filesystem file name and inode pairs:
linux# xfs_ncheck device > xfs_ncheck.out |
If you are certain that the repairs are appropriate, complete them:
linux# xfs_repair device |
Enable the filesystem in CXFS:
linux# /usr/cluster/bin/cxfs_admin -A -c 'mount filesystem' [-i clustername] |
This section discusses the following IPMI issues:
If the baseboard management controller (BMC) does not respond to a ping(8) command from a remote node, verify that the BMC has a valid IP address assigned. See step 4 in Appendix C, “BMC System Controller”.
| Note: The BMC will not respond to the ping command when issued from the local node (the node containing the BMC). |
If an ipmitool(1) command issued to a local BMC device (the node containing the BMC) fails, check the following:
Are the IPMI modules loaded? See step 2 in Appendix C, “BMC System Controller”.
Does the IPMI device exist? The default device name is /dev/ipmi0.
Has the admin user name and password been set on the BMC with the required ADMINISTRATOR privileges? See step 3 in Appendix C, “BMC System Controller”.
Does the BMC have a valid IP address assigned? See step 4 in Appendix C, “BMC System Controller”.
Does the ipmitool command line contain all of the required arguments, including the OEM identifier and the device path? The basic command line used for a local node is as follows:
# ipmitool -o intelplus -d /dev/ipmi0 command |
For example:
# ipmitool -o intelplus -d /dev/ipmi0 power status Chassis Power is on |
For more information, see the ipmitool(1) man page.
If an ipmitool(1) command issued to the BMC from a remote node fails, check the following:
Does the BMC respond to the ping(8) command? See “BMC Does Not Respond to a ping Command”.
Is the correct version of ipmitool installed? See step 1 in Appendix C, “BMC System Controller”.
Have the admin user name and password been set on the BMC with the required ADMINISTRATOR privileges? See step 3 in Appendix C, “BMC System Controller”.
Does the ipmitool command contain all of the required arguments, including the lan interface, the OEM identifier, and the IP address (or alias) for the BMC? The basic command line used from a remote node is as follows:
# ipmitool -I lan -o intelplus -H bmc-nodename -U admin -P admin_password command |
For example:
# ipmitool -I lan -o intelplus -H my-bmc-node \ -U admin -P mypassword power status Chassis Power is on |
For more information, see the ipmitool(1) man page.
Does the BMC IP address (or alias) specified with the ipmitool -H command respond to a ping(8)?
Does the BMC have address resolution protocol (ARP) and gratuitous ARP configured, with the ARP interval set to 5 seconds? (An interval of 5 seconds is supported for CXFS.) See step 4 in Appendix C, “BMC System Controller”.
If a node is not properly reset by CXFS, check the following:
Does the node's failpolicy contain Reset or FenceReset? See the following:
Does the BMC respond to a ping(8) command from the node defined as the reset_node? See “BMC Does Not Respond to a ping Command”.
Does ipmitool(1) work correctly from the node defined as the reset_node? Check the system log files for relevant error messages and see the following:
Sending clconfd a SIGTERM signal, the default signal sent by the kill(1) command, will cause the clconfd process to terminate. When the clconfd process terminates on a SIGTERM signal, it is not restarted by cmond and the node will remain in the CXFS cluster membership. All filesystem activity will continue without interruption. However, if clconfd is not running on one or more server-capable administration nodes in the cluster, configuration changes cannot be made in the cluster and CXFS recovery may hang, preventing nodes from joining the cluster membership.
The clconfd process will not run if there is a licensing problem. See “clconfd Daemon Death”.
If file access is slow, it could be due to one of the following problems:
Ownership changes for a LUN between RAID controllers (LUN flipping ) can result in poor disk performance. To determine if LUN flipping is a problem, compare the contents of the /etc/failover2.conf file and the output of the following command (which shows the LUNs designated as preferred):
# xvm show -v phys | grep preferred |
If the preferred LUNs do not also show current path, there is a problem with ownership changes.
File fragmentation can also decrease performance. Run the following command on the metadata server for the file with suspected fragmentation:
# xfs_bmap -v filename |
There is only a single active admin login permitted to Fibre Channel, SAS, or InfiniBand switches that are properly configured for CXFS. If there is a defunct admin login remaining, CXFS may be unable to access the switch.
To solve this problem, do the following:
Log in to the switch as root.
Determine the process IDs of the inactive admin logins. For example:
brocade:root> ps -ef | grep defunct root 9179 9173 0 Apr12 ? 00:00:00 [login] <defunct> root 18311 18308 0 May13 ? 00:00:00 [login] <defunct> |
Kill the defunct login process IDs. For example:
brocade:root> kill -9 9179 18311 |
Remove the contents of the login records file:
brocade:root> cat /dev/null > /var/run/utmp |
Rebooting the metadata server without first shutting down CXFS services can cause the metadata server to panic. You must use the proper procedures for shutting down nodes. See “Shut Down Nodes Unobtrusively” in Chapter 2.
The dynamic TCP port assignment used by the fs2d daemon may result in a collision with another service that is already using a fixed port number.
One example that has been observed is Samba hanging during startup when trying to query the CUPS printing system for printer information. Other applications that expect to connect on a well-known port may be affected.
To see which ports fs2d is using, use the following command:
# lsof -i TCP | grep fs2d |
If you encounter this problem, one option is to restart fs2d with a SIGHUP signal so that it will move to another port:
# /usr/bin/killall -HUP fs2d |
You may have to repeat this command until fs2d is assigned to a port that is not in contention.
If you restart rpcbind without the -w option to cause a warm start, the fs2d daemon will not be able to communicate with other CXFS daemons, and the cluster will not function normally. In this case, you should force a restart of the fs2d daemon so that it can continue to communicate with the various CXFS daemons:
# killall -9 fs2d |
The Brocade telnet login session can become hung for Brocade switches running firmware version V5* and later. To clear the situation, do the following:
Log in to the switch as root.
Kill the defunct telnet login process IDs.
Execute the following command:
# cat /dev/null > /var/run/utmp |
If a CXFS client fails or exits the cluster during the metadata server relocation process, the relocation process and the client recovery are likely to hang. This prevents any clients, including the failed client, from joining the cluster.
Once in this state, it may be possible to resolve the deadlock by resetting or power-cycling the fs2d quorum master. See “Determine the Quorum Master”.
NFSv4-exported filesystems do not display properly in df output on Linux nodes. This is an NFS issue that exists independent of CXFS.
If mkinitrd fails, it may be because a new kernel module was installed but the sgi-xfsprogs RPM was not installed. To resolve this problem, install the sgi-xfsprogs RPM and rerun mkinitrd.
CXFS token prefetch and range tokens are designed as optimizations for applications using CXFS filesystems on a CXFS client. However, under some workloads, may cause stability issues. If directed to do so by SGI Support, you can use the cell_tkm_feature_disable system tunable parameter to disable these features on Linux and Mac OS X clients.
| Note: You should modify cell_tkm_feature_disable only if directed to do so by SGI Support. |
For more information, see “cell_tkm_feature_disable” in Appendix D and the Linux and Mac OS X chapters of CXFS 7 Client-Only Guide for SGI InfiniteStorage.
If you encounter membership issues after installing or upgrading licenses, you may need to restart the fs2d daemon. See “Restarting fs2d After Installing or Upgrading Licenses” in Chapter 5.
If an XVM volume is not functioning on only one node, it may be that there is a mismatch of required RPMs on that node. For XVM to function properly, a node must have matching versions of the following RPMs:
XVM kernel: sgi-xvm-kmp-default (SLES) or kmod-xvm (RHEL)
XVM user space: sgi-xvm-commands
Path manager: sgi-pm-commands
If there is an inconsistency in the RPM levels, the XVM volume may function normally on the CXFS metadata server and other client-only nodes. However, on the node with a mismatch of RPM versions, XVM will report the volume as problematic (as offline, as inaccessible, and/or with no physical connection) despite the fact that the SCSI device ( /dev/sd*) can be read without problems. For example:
xvm:cluster> show * phys/zj 0 cluster,inaccessible slice/zjs0 366878464 offline,open,inaccessible slice/zjs1 366878464 offline,inaccessible slice/zjs2 366878464 offline,inaccessible slice/zjs3 366878464 offline,inaccessible subvol/zjs0/data 366878464 offline,pieceoffline,open,inaccessible subvol/zjs1/data 366878464 offline,pieceoffline,inaccessible subvol/zjs2/data 366878464 offline,pieceoffline,inaccessible subvol/zjs3/data 366878464 offline,pieceoffline,inaccessible vol/zjs0 0 offline,open,no physical connection,inaccessible vol/zjs1 0 offline,no physical connection,inaccessible vol/zjs2 0 offline,no physical connection,inaccessible vol/zjs3 0 offline,no physical connection,inaccessible |
If a mismatch is the cause, a message similar to one of the following should appear in the system log:
XVM api version 24 doesn't match kernel api version 23: kernel/user api
pm api version mismatch: user:7, kernel:8 |
To resolve the problem, upgrade the out-of-date client-only node with the appropriate RPMs.
This section describes some of the error messages you may see. In general, the example messages are listed first by type and then in alphabetical order, starting with the message identifier or text.
This section discusses the following:
Many messages are normal and do not indicate a problem. Following is a subset of normal messages:
The following are common error and warning messages displayed by cxfs-client. For more information, see “Validating the Cluster Configuration with cxfs-config ” in Chapter 13.
enabled machine hostname has no NICs matching any net |
There are failover networks defined, but the network interfaces for hostname are not members of the defined networks. See:
one or more machines have fencing enabled, but no switches are defined |
CXFS requires either system reset or I/O fencing for all nodes. Fencing requires a switch. See “Create or Modify a Node with cxfs_admin” in Chapter 11.
server hostname fail policy must not contain "Shutdown" for cluster
with even number of enabled servers and no tiebreaker |
If there are an even number of server-capable administration nodes and there is no tiebreaker set, the fail policy must not contain the shutdown option because there is no notification that a shutdown has occurred. See:
tiebreaker must not be set in cluster with exactly two enabled nodes both server capable |
If exactly two server-capable administration nodes are configured and there are no client-only nodes, neither server-capable administration node should be set as the tiebreaker. See “Use a Client-Only Tiebreaker” in Chapter 2.
If you try to relocate a filesystem and see an error similar to the following cxfs_admin example, it means that relocation has not been enabled:
Error returned from server: feature not enabled (12) Command "relocate slice1C server=server1" failed during commit: feature not enabled |
To allow the relocation to occur, you must enable relocation as specified in “Relocation” in Chapter 1.
If you see an error message such as the following when trying to shut down a node, it means that the node which is the active metadata server for one or more filesystems and was unable to unmount the filesystems, and therefore was unable to shutdown gracefully:
Aug 31 10:06:18 cc-xe kernel: Filesystem "xvm-2": relocation from this host is disabled |
Also see “Shutdown Failure”.
If a node is unable to shutdown gracefully, it may be because it was unable to unmount the filesystems for which it is the active metadata server. See “Relocation Error”.
If you see messages such as the following on the console or in a message log, it means that the Fibre Channel, SAS, or InfiniBand switch is misconfigured:
controller disable is not supported on loop |
CXFS fencing recovery operations do not support loop mode. Verify that all switches are configured correctly. See the switch documentation for configuration information.
The following messages may be logged by CMS:
CMS excluded cells <0:0:0:0:c000000000000000:0:0:704> with incomplete connectivity |
Generated when CMS delivers a membership that excluded some new cells that had not established connections with enough cells yet to be admitted. 704 is a binary bitmask of excluded cells.
CMS calculation limited to last membership:configuration change incomplete on cells <0:0:0:0:0:0:0:704> |
Generated when the leader is attempting to make a configuration change current (that is, actually use the change on all nodes), but some cells in the cluster have not yet gotten the configuration change staged (uploaded and ready to be made current). 704 is a binary bitmask of cells that do not yet have the change in their configuration. Changes make their way through the cluster asynchronously, so this situation is expected. It can take a few attempts by the CMS leader before all nodes have the change staged. As long as this situation resolves eventually, there is no problem.
CMS calculation limited to last membership:recovery incomplete |
Generated when new members were disallowed due to recovery from the last cell failure that is still being processed.
Cell XXX is tardy |
Generated when cell XXX has not reported in to the cluster membership leader during a membership change, resulting in a timeout. This situation will cause the node to be removed from the cluster membership and can result in a shutdown of the entire cluster if quorum is lost.
If the clconfd daemon exits immediately after it starts up, it usually means that the CXFS license key has not been properly installed. Check the end of the clconfd log file (/var/log/cxfs/clconfd_ nodename) for error messages. For information about licensing error messages, see “License Key Error”.
You must properly install the license keys before you can use CXFS. See Chapter 5, “CXFS Licensing”.
The following example system log file message indicates an oversubscribed system:
ALERT: inetd [164] - out of logical swap space during fork while allocating uarea - see swap(1M) Availsmem 8207 availrmem 427 rlx freemem 10, real freemem 9 |
See “Use System Capacity Wisely” in Chapter 2.
Daemons could also be leaking memory in this case. You may need to restart them:
On server-capable administration nodes:
server-admin# service cxfs_cluster restart |
On client-only nodes:
client# killall cxfs_client client# service cxfs_client start |
The following message in the system log file indicates a kernel-triggered revocation of CXFS membership:
Membership lost - withdrawing from cluster |
You must allow CXFS membership for the local node in this situation. See “Allow Membership of the Local Node with the GUI” in Chapter 10 or “Enable a Node with cxfs_admin” in Chapter 11.
You will see the following error if you try to install CXFS on a server-capable administration node without a valid license key already in place:
Preparing... ###########################################
[100%]
1:cxfs_cluster ###########################################
[100%]
cxfs 0:off 1:off 2:off 3:on 4:off 5:on 6:off
cluster_cx-exitop: Added CXFS keys to /var/cluster/cdb/cdb.db
cluster_cx-exitop: Added CXFS administration access keys to
/var/cluster/cdb/cdb.db
cxfs license check failed - use '/usr/cluster/bin/cxfslicense -d' for
details
* * * * * * * * * * I M P O R T A N T * * * * * * * * * * * * *
CXFS is not properly licensed for this host. Run
'/usr/cluster/bin/cxfslicense -d'
for more detailed license information.
After fixing the license, please run
'/bin/true; /etc/init.d/cxfs_cluster restart'.
cluster_cx-exitop: success |
If you see the following message in the /var/log/cxfs/clconfd_nodename logfile, it means that the CXFS license key was not properly installed:
CXFS not properly licensed for this host. Run
'/usr/cluster/bin/cxfslicense -d'
for detailed failure information. |
If you do not have the CXFS license key properly installed, you will see an error on the console when trying to run CXFS. For example:
Cluster services:CXFS not properly licensed for this host. Run
'/usr/cluster/bin/cxfslicense -d'
for detailed failure information. After fixing the
license, please run '/etc/init.d/cxfs_cluster restart'. |
An error such as the following example will appear in the system log file:
Mar 4 12:58:05 6X:typhoon-q32 crsd[533]: <<CI> N crs 0> Crsd restarted. Mar 4 12:58:05 6X:typhoon-q32 clconfd[537]: <<CI> N clconf 0> Mar 4 12:58:05 5B:typhoon-q32 CLCONFD failed the CXFS license check.Use the Mar 4 12:58:05 5B:typhoon-q32 '/usr/cluster/bin/cxfslicense -d' Mar 4 12:58:05 5B:typhoon-q32 command to diagnose the license problem. |
If the clconfd daemon dies right after it starts up, this error may be present.
An error such as the following example will appear in the SYSLOG file (line breaks added here for readability):
Jan 25 10:24:03 ncc1701:Jan 25 10:24:03 cxfs_client: cis_main FATAL: cxfs_client failed the CXFS license check. Use the cxfslicense command to diagnose the license problem |
Message similar to the following will appear in the client-log file:
Successful:
Server license key granted, regardless of local client license key:
date CXFS_Client: cis_license_apply successfully reapplied for server-based license date CXFS_Client: cis_license_apply allocated 1 "license_type" license(s). |
Unsuccessful (CXFS will not start):
Server denies a license key, regardless of local license key presence:
date CXFS_Client: cis_license_apply ERROR: No license available |
On a server-capable administration node, the error will appear in the clconfd log.
You must properly install the license key before you can use CXFS. See Chapter 5, “CXFS Licensing”.
If you have conflicting cluster ID numbers at your site, you will see errors such as the following:
WARNING: mtcp ignoring alive message from 1 with wrong ip addr 128.162.89.34 WARNING: mtcp ignoring alive message from 0 with wrong ip addr 128.162.89.33 |
A cluster ID number must be unique. This error can occur if you redefine the cluster configuration and start CXFS services while some nodes have stale information from a previous configuration.
To solve this problem, make the cluster ID numbers unique. First try the steps in “Eliminate a Residual Cluster”. If that does not work, reboot the nodes that have stale information. Stale nodes will complain about all of the nodes, but the up-to-date nodes will complain only about the stale nodes. The /var/log/cxfs/clconfd_ log file on the stale nodes will also show error messages about SGI_CMS_CONFIG_ID failures.
If there are too many error messages to recognize the stale nodes, reboot every node.
CXFS logs both normal operations and critical errors to the system log file, as well as to individual log files for each log group.
The system log file on server-capable administration nodes is in /var/log/messages.
In general, errors in the system log file take the following form:
timestamp priority_&_facility : hostname process[ID]: <internal_info> CODE message_text |
For example:
Sep 7 11:12:59 6X:cxfs0 cli[5830]: < E clconf 0> CI_IPCERR_NOSERVER, clconf ipc: ipcclnt_connect() failed, file /var/cluster/comm/clconfd-ipc_cxfs0 |
Table 15-2 breaks down the parts of the preceding message.
Table 15-2. System Log File Error Message Format
Content | Part | Meaning |
|---|---|---|
Sep 7 11:12:59 | Time stamp | September 7 at 11:12 AM. |
6X | Facility and level | 6X indicates an informational message. See syslogd and the file /usr/include/sys/syslog.h. |
cxfs0 | Node name | The node whose logical name is cxfs0 is the node on which the process is running. |
cli[5830] | Process[ID] | The process sending the message is cli and its process ID number is 5830. |
<CI>E clconf 0 | Internal information: message source, logging subsystem, and thread ID | The message is from the cluster infrastructure (CI). E indicates that it is an error. The clconf command is the logging subsystem. 0 indicates that it is not multithreaded. |
CI_IPCERR_NOSERVER, clconf ipc | Internal error code | Information about the type of message; in this case, a message indicating that the server is missing. No error code is printed if it is a normal message. |
ipcclnt_connect() failed, file /var/cluster/comm/clconfd-ipc_cxfs0 | Message text | A connection failed for the clconfd-ipc_cxfs0 file. |
The following sections present only the message identifiers and text:
| CI_CONFERR_NOTFOUND, Logging configuration error: could not read cluster database /var/cluster/cdb/cdb.db, cdb error = 3. | |
The cluster database has not been initialized. See “Recreating the Cluster Database”. | |
| WARNING: Error receiving messages from cell 2 tcpchannel 1 | |
There has been an error on the CXFS membership channel (channel 1; channel 0 is the main message channel for CXFS and XVM data). This may be a result of tearing down the channel or may be an error of the node (node with an ID of 2 in this case). There is no corrective action. | |
| CI_CRFERR_NOLCK, failed to raise fence on cell 0 | |
This message might indicate that CXFS cannot log in to the Fibre Channel, SAS, or InfiniBand switch. This could occur if the switch operation has slowed due to a status change. You should examine the following:
You may need to reboot the switch to ensure the stability of CXFS. This message could also indicate that an existing telnet session has hung on the switch. The fix to this situation, see “Brocade telnet Session is Hung” or reboot the switch. | |
| sw core-fc, port 95, host mds02 : still transient, 292s until timeout | |
This message indicates that the port status is temporary (neither enabled nor disabled). This could be due to an unused port or a problem with the switch operation, either running too slowly or with too much traffic. | |
For all cli messages, only the last message from the command (which begins with CLI private command failed) is meaningful. You can ignore all other cli messages.
The following are example errors from the cli daemon.
| CI_ERR_INVAL, CLI private command: failed (Machine (cxfs0) exists.) | |
You tried to create a new node definition with logical name cxfs0; however, that node name already exists in the cluster database. Choose a different name. | |
| CI_ERR_INVAL, CLI private command: failed (IP address (128.162.89.33) specified for control network is cxfs0 is assigned to control network of machine (cxfs0).) | |
You specified the same IP address for two different private networks of node cxfs0. Use a different IP address. | |
| CI_FAILURE, CLI private command: failed (Unable to validate hostname of machine (cxfs0) being modified.) | |
The DNS resolution of the cxfs0 name failed. To solve this problem, add an entry for cxfs0 in /etc/hosts on all nodes. | |
| CI_IPCERR_NOPULSE, CLI private command: failed (Cluster state is UNKNOWN.) | |
The command could not complete. This is a transient error. However, if it persists, stop and restart the cluster daemons; see “Stopping and Restarting Cluster Administration Daemons”. | |
The following errors are sent by the clconfd daemon.
| CI_CONFERR_NOTFOUND, Could not access root node. | ||
The cluster database is either non-existent or corrupted, or the database daemons are not responding. Check that the database exists. If you get an error or the dump is empty, re-create the database; for more information, see “Clearing the Cluster Database”. If the database exists, restart the cluster daemons; see “Stopping and Restarting Cluster Administration Daemons”. | ||
| CI_ERR_NOTFOUND, Could not get Cellular status for local machine (cxfs1) | ||
The database is corrupted or cannot be accessed. Same actions as above. | ||
| CI_ERR_NOMEM, get_fsinfo: out of space: got 2096184, need 2845224 | ||
The maximum number of filesystems defined in CXFS has been exceeded. CXFS has a static limit that depends upon a number of factors, including the number of nodes in the cluster. | ||
| CI_FAILURE, Call to open cdb for logging configuration when it is already open. | ||
This indicates a software problem requiring you to restart the daemons; see “Stopping and Restarting Cluster Administration Daemons”. | ||
| CI_FAILURE, Cell 1 Machine cxfs1: server has no information about a machine that has reset capabilities for this machine | ||
A reset mechanism was not provided for this node. The node will not be automatically reset if it fails. To ensure proper failure handling, use the CXFS GUI or cxfs_admin to modify the node's definition and add reset information. System reset configuration is recommended for all potential metadata servers. See “Define a Node with the GUI” in Chapter 10, or “Create or Modify a Node with cxfs_admin” in Chapter 11. | ||
| CI_FAILURE, CMD(/sbin/umount -k /dev/xvm/bob1): exited with status 1 (0x1) | ||
An error occurred when trying to unmount the /dev/xvm/bob1 filesystem. Messages from the umount command are usually issued just before this message and provide more information about the reason for the failure. | ||
| CI_FAILURE, CMD(/sbin/clmount -o 'server_list=(cxfs0,cxfs1)' /dev/xvm/bob2 /bob2): exited with status 1 (0x1) | ||
An error occurred when trying to mount the /dev/xvm/bob2 filesystem. Messages from the mount command are usually issued just before this message and provide more information about the reason of the failure. | ||
| CI_FAILURE, CMD(/sbin/clmount -o 'server_list=(cxfs2,cxfs0)' /dev/xvm/stripe4 /xvm/stripe4): exited with status 1 (0x1) | ||
You have tried to mount a filesystem without first running mkfs. You must use mkfs to construct the filesystem before mounting it. For more information, see the mkfs(8) man page. | ||
| CI_FAILURE, Could not write newincarnation number to CDB, error = 9. | ||
There was a problem accessing the cluster database. Retry the operation. If the error persists, stop and restart the cluster daemons; see “Stopping and Restarting Cluster Administration Daemons”. If the problem persists, clear the database, reboot, and re-create the database. See “Clearing the Cluster Database”. | ||
| CI_FAILURE, Exiting, monitoring agent should revive me. | ||
The daemon requires fresh data. It will be automatically restarted. | ||
| CI_FAILURE, No node for client (3) of filesystem (/dev/xvm/bob1) on (/bob1). | ||
(There may be many repetitions of this message.) The filesystem appears to still be mounted on a CXFS client node that is no longer in the cluster database. If you can identify the CXFS client node that used to be in the cluster and still has the filesystem mounted, reboot that node. Otherwise, reboot the entire cluster. | ||
| CI_FAILURE, No node for server (-1) of filesystem (/dev/xvm/bob1) on (/bob1). | ||
(There may be many repetitions of this message.) The filesystem appears to still be mounted on a server node that is no longer in the cluster database. If you can identify the server node that used to be in the cluster and still has the filesystem mounted, reboot that node. Otherwise, reboot the entire cluster. | ||
| CI_ FAILURE, Node cxfs0: SGI_CMS_HOST_ID(tcp,128.162.8 >9.33) error 149 (Operation already in progress) | ||
The kernel already had this information; you can ignore this message. | ||
| CI_FAILURE, Unregistered from crs. | ||
The clconfd daemon is no longer connected to the reset daemon and will not be able to handle resets of failed nodes. There is no corrective action. | ||
| CI_IPCERR_NOSERVER, Crs_register failed,will retry later. Resetting not possible yet. | ||
The clconfd daemon cannot connect to the reset daemon. It will not be able to handle resets of failed nodes. Check the reset daemon's log file (/var/log/cxfs/crsd_) for more error messages. | ||
| CI_FAILURE, | > > SGI_CMS_CONFIG_ID_AUX_V2 error 22 (Invalid argument) , CI_FAILURE, | > > clconfd_kernel_config_thread: failed to update kernel config - retrying in 1 | > > second(s) | ||
The previous configuration change has not fully propagated across the cluster and clconfd keeps trying until it succeeds. Possible causes include the following:
| ||
| Clconfd is out of membership, will restart after notifying clients. | ||
The clconfd daemon does not have enough information about the current state of the cluster. It will exit and be automatically restarted with fresh data. | ||
| CMD(/sbin/clmount -o 'server_list=(cxfs2,cxfs0)' /dev/xvm/stripe4 /xvm/stripe4): /dev/xvm/stripe4: Invalid argument | ||
You have tried to mount a filesystem without first running mkfs. You must use mkfs to construct the filesystem before mounting it. For more information, see the mkfs(8) man page.
| ||
| CMD(/sbin/clmount -o 'server_list=(cxfs0,cxfs1)' /dev/xvm/bob2 /bob2): /dev/xvm/bob2: Invalid argumentSep 9 14:12:43 6X:cxfs0 clconfd[345]: < E clconf 3> CI_FAILURE, CMD(/sbin/clmount -o 'server_list=(cxfs0,cxfs1)' /dev/xvm/bob2 /bob2): exited with status 1 (0x1) | ||
The first message comes from the clmount command (the internal CXFS mount command) and explains the error (an invalid argument was issued). The second message says that the mount failed. | ||
| CI_FAILURE, clconfd_status_init: Failed to open status comm module Wed Jan 2 15:06:40.128 EXITING. | ||
This error message might indicate that there is a problem with CXFS multicast. You should also examine the fs2d log to see if a line such as the following specifies a valid multicast address for IPaddress:
If the address is not valid, there may be a problem with DNS or other name service. In this case, you must explicitly define the cluster_mcast value to the normal CXFS multicast default value of 224.0.0.250 in the /etc/hosts file and ensure that etc/nsswitch.conf is configured so that files are read first. For more information, see “Verifying Connectivity in a Multicast Environment”. | ||
| CI_CRFERR_NOLCK, failed to lock switch for fencing update | ||
The CXFS I/O fencing facility is unable to lock access to one or more Fibre Channel, SAS, or InfiniBand switches, perhaps due to defunct admin login processes. See “CXFS Cannot Access the Switch”. | ||
| CI_FAILURE, CXFS filesystem (/dev/cxvm/tp95) on (/cxfs/tp95) already mounted with different options | ||
A server-capable administration node was added to or deleted from the cluster while the filesystems for which it is a potential metadata server remained mounted, causing confusion. See “Unmount Filesystems Before Adding or Deleting Server-Capable Administration Nodes” in Chapter 2. | ||
The following errors are sent by the crsd daemon.
| CI_ERR_NOTFOUND, No logging entries found for group crsd, no logging will take place - Database entry #global#logging#crsd not found. | |
No crsd logging definition was found in the cluster database. This can happen if you start cluster processes without creating the database. See “Recreating the Cluster Database”. | |
| CI_ERR_RETRY, Could not find machine listing. | |
The crsd daemon could not find the local node in the cluster database. You can ignore this message if the local node definition has not yet been created. | |
| CI_ERR_SYS:125, bind() failed. | |
The sgi-crsd port number in the /etc/services file is not unique, or there is no sgi-crsd entry in the file. For information about adding this entry, see “/etc/services on Server-Capable Administration Nodes” in Chapter 8. | |
| CI_FAILURE, Entry for sgi-crsd is missing in /etc/services. | |
The sgi-crsd entry is missing from the /etc/services file. For information about adding this entry, see “/etc/services on Server-Capable Administration Nodes” in Chapter 8. | |
| CI_FAILURE, Initialization failed, exiting. | |
A sequence of messages will be ended with this message; see the messages prior to this one in order to determine the cause of the failure. | |
| CI_ERR_INTR, BMC is busy, delaying 5 seconds. Attempt 1 of 5. | |
The crsd daemon was unable to contact the baseboard management controller (BMC) of the system being reset. There will be 5 attempts to connect. You can ignore this message if the connection is successful upon a subsequent attempt. If the reset is not successful after all 5 attempts, see “IPMI Issues”. | |
| CI_CONFERR_NOTFOUND, Error reading and storing port info. CI_CONFERR_NOTFOUND, Initialization failed, exiting. | |
This error may indicate that the node that is responsible for resetting another node has not been defined in the cluster database. If you use the reset policy, you must define the owner node before starting CXFS. See “Define a Node with the GUI” in Chapter 10 or “Create or Modify a Node with cxfs_admin” in Chapter 11. | |
The following errors are sent by the cmond daemon.
The following message will be output by the cxfslicense -d command if you execute it before rebooting the system:
error reading kernel XVM cluster mirror status. Check if XVM module is started. |
After you reboot the system and therefore load the XVM module, this message will no longer appear when you run cxfslicense -d.
The following errors are sent by the fs2d daemon.
| Error 9 writing CDB info attribute for node #cluster#elaine#machines#cxfs2#Cellular#status | |
An internal error occurred when writing to the cluster database. Retry the operation. If the error persists, stop and restart the cluster daemons; see “Stopping and Restarting Cluster Administration Daemons”. If the problem persists, clear the database, reboot, and re-create the database. See “Clearing the Cluster Database”. | |
| Error 9 writing CDB string value for node #cluster#elaine#machines#cxfs2#Cellular#status | |
An internal error occurred when writing to the cluster database. Retry the operation. If the error persists, stop and restart the cluster daemons; see “Stopping and Restarting Cluster Administration Daemons”. If the problem persists, clear the database, reboot, and re-create the database. See “Clearing the Cluster Database”. | |
| Failed to update CDB for node #cluster#elaine#Cellular#FileSystems#fs1#FSStatus | |
An internal error occurred when writing to the cluster database. Retry the operation. If the error persists, stop and restart the cluster daemons; see “Stopping and Restarting Cluster Administration Daemons”. If the problem persists, clear the database, reboot, and re-create the database. See “Clearing the Cluster Database”. | |
| Failed to update CDB for node #cluster#elaine#machines#cxfs2#Cellular#status | |
An internal error occurred when writing to the cluster database. Retry the operation. If the error persists, stop and restart the cluster daemons; see “Stopping and Restarting Cluster Administration Daemons”. If the problem persists, clear the database, reboot, and re-create the database. See “Clearing the Cluster Database”. | |
| Machine 101 machine_sync failed with lock_timeout error | |
The fs2d daemon was not able to synchronize the cluster database and the sync process timed out. This operation will be retried automatically by fs2d. | |
| ALERT: CXFS Recovery: Cell 0: Server Cell 2 Died, Recovering | |
The server (cell 2) died and the system is now recovering a filesystem. | |
CXFS maintains logs for each of the CXFS daemons. For information about customizing these logs, see “Set Log Configuration with the GUI” in Chapter 10.
Log file messages take the following form:
daemon_log timestamp internal_process: message_text |
For example:
cad_log:Thu Sep 2 17:25:06.092 cclconf_poll_clconfd: clconf_poll failed with error CI_IPCERR_NOPULSE |
Table 15-3, shows the parts in the preceding message.
Table 15-3. Log File Error Message Format
Content | Part | Meaning |
|---|---|---|
cad_log | Daemon identifier | The message pertains to the cad daemon |
Sep 2 17:25:06.092 | Time stamp and process ID | September 2 at 5:25 PM, process ID 92. |
cclconf_poll_clconfd | Internal process information | Internal process information |
clconf_poll failed with error CI_IPCERR_NOPULSE | Message text | The clconfd daemon could not be contacted to get an update on the cluster's status. |
This section discusses the following:
The following are examples of messages from /var/log/cxfs/cad_log :
| ccacdb_cam_open: failed to open connection to CAM server error 4 | |
Internal message that can be ignored because the cad operation is automatically retried. | |
| ccamail_cam_open: failed to open connection to CAM server error 4 | |
Internal message that can be ignored because the cad operation is automatically retried. | |
| ccicdb_cam_open: failed to open connection to CAM server error 4 | |
Internal message that can be ignored because the cad operation is automatically retried. | |
| cclconf_cam_open: failed to open connection to CAM server error 4 | |
Internal message that can be ignored because the cad operation is automatically retried. | |
| cclconf_poll_clconfd: clconf_poll failed with error CI_IPCERR_NOCONN | |
The clconfd daemon is not running or is not responding to external requests. If the error persists, stop and restart the cluster daemons; see “Stopping and Restarting Cluster Administration Daemons”. | |
| cclconf_poll_clconfd: clconf_poll failed with error CI_IPCERR_NOPULSE | |
The clconfd daemon could not be contacted to get an update on the cluster's status. If the error persists, stop and restart the cluster daemons; see “Stopping and Restarting Cluster Administration Daemons”. | |
| cclconf_poll_clconfd: clconf_poll failed with error CI_CLCONFERR_LONELY | |
The clconfd daemon does not have enough information to provide an accurate status of the cluster. It will automatically restart with fresh data and resume its service. | |
| csrm_cam_open: failed to open connection to CAM server error 4 | |
Internal message that can be ignored because the cad operation is automatically retried. | |
| Could not execute notification cmd. system() failed. Error: No child processes | |
No mail message was sent because cad could not fork processes. Stop and restart the cluster daemons; see “Stopping and Restarting Cluster Administration Daemons”. | |
| error 3 sending event notification to client [counter: 7 info: 0x000000021010f078]" | |
GUI process exited without cleaning up. (The counter and info numbers are internal data structures.) | |
The following are examples of messages from /var/log/cxfs/cli_ hostname:
| CI_CONFERR_NOTFOUND, No machines found in the CDB. | |
The local node is not defined in the cluster database. | |
| CI_ERR_INVAL, Cluster (bob) not defined | |
The cluster called bob is not present in the cluster database. | |
| CI_ERR_INVAL, CLI private command: failed (Cluster (bob) not defined) | |
The cluster called bob is not present in the cluster database. | |
| CI_IPCERR_NOPULSE, CLI private command: failed (Cluster state is UNKNOWN.) | |
The cluster state could not be determined. Check if the clconfd daemon is running. | |
| CI_IPCERR_NOPULSE, ipcclnt_pulse_internal(): server failed to pulse | |
The cluster state could not be determined. Check if the clconfd daemon is running. | |
| CI_IPCERR_NOSERVER, clconf ipc: ipcclnt_connect() failed, file /var/cluster/comm/clconfd-ipc_cxfs0 | |
The local node (cxfs0) is not defined in the cluster database. | |
| CI_IPCERR_NOSERVER, Connection file /var/cluster/comm/clconfd-ipc_cxfs0 not present. | |
The local node (cxfs0) is not defined in the cluster database. | |
The following are examples of messages from /var/log/cxfs/crsd_hostname:
| CI_CONFERR_INVAL, Nodeid -1 is invalid., I_CONFERR_INVAL, Error from ci_security_init()., CI_ERR_SYS:125, bind() failed., CI_ERR_SYS:125, Initialization failed, exiting., CI_ERR_NOTFOUND, Nodeid does not have a value., CI_CONFERR_INVAL, Nodeid -1 is invalid. | |
For each of these messages, either the node ID was not provided in the node definition or the cluster processes were not running in that node when the node definition was created in the cluster database. This is a warning that optional information is not available when expected. | |
| CI_ERR_NOTFOUND, SystemController information for node cxfs2 not found, requests will be ignored. | |
System controller information (optional information) was not provided for node cxfs2. Provide system controller information for node cxfs2 by modifying node definition. This is a warning that optional information is not available when expected. Without this information, the node will not be reset if it fails, which might prevent the cluster from properly recovering from the failure. | |
| CI_ERR_NOTFOUND, SystemController information for node cxfs0 not found, requests will be ignored. | |
The owner node specified in the node definition for node cxfs0 has not been defined. You must define the owner node. | |
| CI_CRSERR_NOTFOUND, Reset request 0x10087d48 received for node 101, but its owner node does not exist. | |
The owner node specified in the node definition for the node with a node ID of 101 has not been defined. You must define the owner node. 0x10087d48 is a pointer to an internal datastructure that uniquely identifies the request while it is being handled. | |
The following are examples of messages from /var/log/cxfs/fs2d_log:
| Failed to copy global CDB to node cxfs1 (1), error 4 | |
There are communication problems between the local node and node cxfs1. Check the private networks of the two nodes. | |
| Communication failure send new quorum to machine cxfs2 (102) (error 6003) | |
There are communication problems between the local node and node cxfs2. Check the private networks of the two nodes. | |
| Failed to copy CDB transaction to node cxfs2 (1) | |
There are communication problems between the local node and node cxfs2. Check the private networks of the two nodes. | |
| Outgoing RPC to hostname : NULL | |
If you see this message, check your Remote Procedure Call (RPC) configuration. For more information, see the rpcinfo(8) and rpcbind(8) man pages. | |
| fs2d - RPC machine register: rejecting quorum from machine hostname due to that machine not responding to our poll attempts | |
This message might indicate that the NIC for the private network has not been configured or has been configured incorrectly. It also might indicate that the cable has been unplugged. | |
Thu Jun 3 16:20:45.431 cxfsopus1.example.com cbe_fs2 - cbe_create_node: cannot create new node (RPC error = 9) libcdb - cdb_create_node: error 9 creating child of node 0x60000000000135c0 with subkey "ifd1" |
This error means that some nodes have not been created in the cluster database. Error 9 usually means that fs2d is has encountered an internal error while creating that node. To fix the problem, make sure that fs2d is not running on any server-capable administration node and rerun cdbreinit.
Following are common cxfs_admin errors.
Connecting to the local CXFS server... receiving conflicting bootstrap packets from cluster(s) - cannot identify server to connect to gave up trying to connect to server FATAL: exiting on fatal error |
The cxfs_admin command can see multiple clusters. Reconfigure your network so that each cluster's private network subnet is independent of the private network subnet of other clusters. If you have multiple clusters connected to the same public network, use the -i option to identify the cluster name. See “Accessing the Correct Cluster at a Multiple-Cluster Site” in Chapter 11.
Connecting to the CXFS server for the "mycluster" cluster... Error returned from server: authorization error (8) Inappropriate privileges to connect to the CXFS server |
The host can see the cluster, but does not have permission to connect to it. Use cxfs_admin on another node that does have permission and use the access command to give permission to the first node.
Connecting to the CXFS server for the "mycluster" cluster... Error returned from server: permissions error (9) Insufficient privileges to acquire the administration lock |
The host only has monitoring privileges and no administration privileges. Use the permission=admin attribute with the access command to grant the host administration rights, or use -r on the cxfs_admin command line.
Connecting to the CXFS server for the "mycluster" cluster... not receiving bootstrap packets from any cluster - cannot identify server to connect to gave up trying to connect to server FATAL: exiting on fatal error |
The host is not on the CXFS metadata private network and has not been granted explicit access to the cluster. Grant the host access by using the access command from a server-capable administration node or another host with admin access to the cluster.
transient bootstrap state for cluster clustername detected |
This message usually indicates that there are two clusters with the same name running on the network. You must rename one of the clusters.
The following error indicates that one of the LUNs in this volume is inaccessible. A GPT-labeled LUN in the volume may cause this if GPT labels are not supported on the system:
# /sbin/mount -t cxfs -o 'client_timeout=30s,retry=0,server_list=(server1,server2)' \ /dev/cxvm/stripe93 /mnt/stripe93 cxfs.util get_subvol_stripe: open(/dev/rcxvm/stripe93) returned -1, errno 19 (Operation not supported by device) cxfs.util get_subvol_stripe: Some of the volumes needed for /dev/rcxvm/stripe93 may have a main path that runs through a controller to which this machine is not connected. cxfs.util set_xfs_args: get_subvol_stripe failed cxfs.util mount_main: set_xfs_args failed |
If a node is not allowed to be configured automatically by the cxfs_admin command, errors such as the following will appear in the cxfs_client log:
Aug 06 10:36:51 cxfs_client: cis_cdb_go ERROR: Error returned from server: authorization error (8) Aug 06 10:36:51 cxfs_client: cis_autoconf client is not in an autoconf "allowed" policy |
For more information about automatic configuration, see “Automatically Configure a Client-Only Node” in Chapter 11.
The cxfs_admin command will also display errors if the node running cxfs_admin does not have admin or monitor access to the cluster. See “Setting cxfs_admin Access Permissions” in Chapter 11.
The following message indicates that the system is unable to open UDP socket connection to another system (in this case, cell ID 4) because the connection attempt is refused:
mesg_connect:cell 4:channel 0:transport 2:connect error -111 |
Frequently repeated occurrences of this message may indicate an incorrect network configuration or may require reinstalling the CXFS software on either the CXFS client-only node or the server-capable administration node. This message may also occur occasionally when a node is started or shut down.
The following error is generated when the cluster contains nodes running incompatible versions of CXFS software, such as cluster with nodes running CXFS 7.0 (ISSP 3.0) and CXFS 6.6 (ISSP 2.6):
[ 552.680802] Cell 3 (pg-5) transport [from 192.168.14.163:5450 to 192.168.14.54:5450] connection refused: remote version is too old. |
All server-capable administration nodes in the cluster must run the same version of CXFS except during a rolling upgrade. The following types of errors indicate that the server-capable administration nodes are running different versions of CXFS software:
CXFS cell C (name) mount refused: node is downrev (tag X, has N, need M) CXFS cell C (name) relocation refused: node is downrev (tag X, has N, need M) Cell C (nodename) is downrev and will not be able to connect |
An operation may be forbidden because of a version mismatch between the metadata server and the other node involved. The following operations may fail:
An attempt by a client-only node running a newer version (such as CXFS 5.5) to mount a filesystem served by a metadata server running an older version (such as CXFS 5.4)
An attempt to relocate a filesystem to between nodes with different versions (for example, from a CXFS 5.4 metadata server to a CXFS 5.5 server-capable administration node)
For example, the following message indicates that a client-only node tried to mount a filesystem served by a metadata server that is running an older version of CXFS:
CXFS cell 0 (xo-xe1) mount refused: node is downrev (tag 30, has -1, need 0) |
In another example, the following message that appears on a client-only node (with a cell ID of 5) indicates that server-capable administration node cxfsxe6 (with a cell ID of 9) is running an older CXFS release:
Cell 9 (cxfsxe6) is downrev and will not be able to connect |
In this case, the following message will also appear at 1-second intervals on cxfsxe6:
mesg_connect:cell 5:channel 0:transport 2:connect error -111 |
This combination of messages indicates that the client-only node is running a version of CXFS from ISSP 2.x and cxfsxe6 is a server-capable administration node running a later version of CXFS from ISSP 1.x, which is an unsupported configuration.
During a rolling upgrade, relocation of a filesystem between server-capable administration nodes running different versions of CXFS may be disabled. Recovery rather than relocation is used to move filesystems to an upgraded server-capable node. See “CXFS Release Versions and Rolling Upgrades” in Chapter 12.
If you see messages like the following on the console or in the system log file, turn off CXFS extents deltas:
EXTENT: a8000002c9e60600 bno 10 not at boundary (got = 9+5) |
This is best done on the metadata server by setting the fs.cxfs.cxfs_extents_delta system tunable parameter to 0. A reboot is not required. For more information, see “cxfs_extents_delta” in Appendix D.
If you see errors like the following, it means that the server-capable administration node was not rebooted after installing GRIOv2:
# /usr/sbin/grioadmin -sv print_streams: error: Cannot get GRIO server info: Resource temporarily unavailable grioadmin: print_streams: error: grio_get_streams: Resource temporarily unavailable |
The following are examples of errors that can be produced by the xvm foswitch command, which changes the path used to access a physical disk:
mds1-hd kernel: foswitch error i/o error on cell 19 |
The test I/O on cell 19 failed when trying the new path.
mds1-hd kernel: foswitch error failover: no device of specified affinity on cell 9 |
There is no a path with the desired affinity on cell 9 . For more information, see the failover2.conf file on the node with the specified cell ID.
mds1-hd kernel: foswitch error failover: potentially recoverable error, try again on cell 0 |
An foswitch command was attempted while a failover was happening.
For more information, see XVM Volume Manager Administrator Guide.
Multiple messages of the following type indicate that the port on the switch is not fenced but the Fiber Channel connection with the node is gone:
<I0 clconfd clconf 25808:10 clconfd_fence.c:245> sw msdsan2, port 5, host dpox01 : leaving transient state (timeout => no connection), clearing cdb entries and lowering fences on this port |
You should check the connection between the nodes and the switches, and verify that the switches are running properly.
The following error message when trying to stop the CXFS filesystem service (cxfs) may indicate that filesystems cannot be unmounted:
# /etc/init.d/cxfs stop
Stopping CXFS cluster services...
Stopping clconfd:
done
CXFS Cluster Admin Shutdown:
CXFS Cluster Admin Shutdown failed
failed
/etc/init.d/cxfs: line 333: 2200 Killed $CAP_CXFS "${BIN}/cxfs_shutdown -f -r 0" > /dev/null 2>&1
MDS:
... |
This can be the result if the node has already been removed from the cluster (despite the shutdown failure message).
The following message indicates that a CXFS node on the CXFS private network is running an older, incompatible version of CXFS software:
mtcp ignoring improperly sized alive message from node_IP_address:nnnnn (got 16 want 72) |
You should disable or upgrade the CXFS software software on the indicated node. If the node belongs to a different cluster, the private networks for the two clusters should be segregated. Running multiple clusters on a shared private network is not a supported configuration.
This message may also occur if there is more than one cluster using the public network as a backup private network. This is a valid configuration. In this case the message frequency can be modified or the messages disabled using the mtcp_hb_warn_period system tunable parameter. See “mtcp_hb_warn_period” in Appendix D.
The following error indicates that the XVM server is waiting for a reply from the client with the identified cell number, but the client has not responded:
mds kernel: remote_clients_verify: cell NN timed out |
XVM operations in the cluster will be blocked until the client responds. If you seen the message, review the client's system log for I/O errors and try to execute the following command on the client:
client# xvm show -v phys |
Most likely, this xvm command will hang. If so, trigger an NMI or otherwise panic the system in order to generate a kernel dump.
It is normal for the following kernel log message to appear occasionally on CXFS server-capable administration nodes, where X and Y are replaced by the cell IDs of the actual nodes involved:
XVM client X unable to lock bootconfig, held by cell Y |
However, a problem is indicated when the message appears continually. To resolve the problem, reset cell Y.
This section covers the following corrective actions:
If CXFS services to do not restart after a reboot, it may be that the node was marked as INACTIVE in the cluster database using the Stop CXFS Services function of the GUI or a disable node:nodename function of cxfs_admin. In this case, issuing a service cxfs_cluster start or service cxfs start will not restart the services.
You must manually start CXFS services. If you use the GUI to restart the services, or enable with cxfs_admin, the configuration will be set so that future reboots will also restart CXFS services.
For information, see:
To clear the cluster database on all of the server-capable administration nodes, do the following, completing each step on each server-capable administration node before moving to the next step:
| Caution: This procedure deletes all configuration information. |
Enter the following on all server-capable administration nodes:
server-admin# service cxfs stop |
Enter the following on all server-capable administration nodes:
server-admin# service cxfs_cluster stop |
| Caution: Complete steps 1 and 2 on each node before moving to step 3 for any node. |
Enter the following on all server-capable administration nodes:
server-admin# /usr/cluster/bin/cdbreinit |
See also “Reboot Before Changing Node ID or Cluster ID” in Chapter 2.
Enter the following on all server-capable administration nodes:
server-admin# service cxfs_cluster start |
Enter the following on all server-capable administration nodes:
server-admin# service cxfs start |
See “Eliminate a Residual Cluster” to get rid of possible stale cluster configuration in the kernel. If needed, reboot the nodes.
The following are situations that may require rebooting:
If some CXFS clients are unable to unmount a filesystem because of a busy vnode and a reset of the node does not fix the problem, you may need to reboot every node in the cluster
If there is no recovery activity within 10 minutes, you may need to reboot the node
Enter the following individually on every node to reboot the cluster (other than Windows, which uses a different reboot mechanism):
# reboot |
If you want CXFS services to restart whenever the node is rebooted, use the CXFS GUI to start CXFS services or cxfs_admin to enable the node. For information, see:
For information about client-only nodes, see the CXFS 7 Client-Only Guide for SGI InfiniteStorage.
The cxfs_cluster argument to chkconfig controls the other cluster administration daemons and the replicated cluster database. If turned off, the database daemons will not be started at the next reboot and the local copy of the database will not be updated if you make changes to the cluster configuration on the other nodes. This could cause problems later, especially if a majority of nodes are not running the database daemons.
If the cluster daemons are causing serious trouble and prevent the machine from booting, you can recover the node by booting in single-user mode, turning the argument off and booting in multiuser mode.
For example:
ELILO boot: linux single Uncompressing Linux... done ... Skipped services in runlevel S: splash Give root password for login: ***** (none)# /sbin/chkconfig grio2 off (if running GRIOv2) (none)# /sbin/chkconfig cxfs off (none)# /sbin/chkconfig cxfs_cluster off (none)# reboot |
For more information, see “chkconfig Arguments” in Chapter 12.
There are specific issues with recovering a cluster with two server-capable administration nodes. Suppose the following sequence of events:
You have cluster named clusterA that has two server-capable administration nodes, any number of client-only nodes, and no CXFS tiebreaker:
node1
node2
node1 goes down and will remain down for a while.
node2 recovers and clusterA remains up.
| Note: An existing cluster can drop down to 50% of the remaining server-capable administration nodes after the initial CXFS kernel membership is formed. |
node2 goes down and therefore clusterA fails.
node2 comes back up. However, clusterA cannot form because the initialization of a cluster requires either:
More than 50% of the server-capable administration nodes
50% of the server-capable administration nodes, one of which is the CXFS tiebreaker
To allow node2 to form a cluster by itself, you must do the following:
Set node2 to be the CXFS tiebreaker node, using the GUI or cxfs_admin. See:
Revoke the CXFS kernel membership of node2. See:
Allow CXFS kernel membership of node2. See:
Unset the CXFS tiebreaker node capability. See:
| Caution: All two-server-capable administration node clusters without a tiebreaker set must have fencing or reset configured. SGI recommends reset. |
The cluster will attempt to communicate with the node1 because it is still configured in the cluster, even though it is down. Therefore, it may take some time for the CXFS kernel membership to form and for filesystems to mount.
| Caution: When the cluster administration daemons are stopped, the node will not receive database updates and will not update the kernel configuration. This can have very unpleasant side effects. Under most circumstances, the administration daemons should remain running at all times. Use these commands only as directed. |
The commands to stop and restart cluster administration daemons depend upon the platform.
To stop and restart cluster administration daemons, enter the following:
On server-capable administration nodes:
server-admin# service cxfs_cluster restart |
On client-only nodes:
client# killall cxfs_client client# cxfs_client start |
These commands affect the cluster administration daemons only.
See also “Restarting CXFS Services”. For general information about the daemons, see “Kernel Threads” in Appendix A.
See Chapter 13, “Cluster Database Management”. If a node will not join cluster membership, you must reboot it.
Verification of multicast connectivity requires multicast ping on each node in the cluster (other than Windows nodes).
On Linux nodes, you must enable multicast ping by using one of the following methods (the permanent method will not take affect until after a reboot):
Immediate but temporary method:
server-admin# echo "0" > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts |
Immediate but temporary method:
server-admin# sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=0" |
Permanent method upon reboot (survives across reboots):
Remove the following line (if it exists) from the /etc/sysctl.conf file:
net.ipv4.icmp_echo_ignore_broadcasts = 1 |
Add the following line to the /etc/sysctl.conf file:
net.ipv4.icmp_echo_ignore_broadcasts = 0 |
To verify general connectivity in a multicast environment, you can execute a ping command on the 224.0.0.1 IP address; 224.0.0.1 is the address for all systems on this subnet multicast.
To verify the CXFS kernel heartbeat, use the 224.0.0.250 IP address. (SGI uses 224.0.0.250 by default; you may need to explicitly set this if you are having problems with name resolution involving cluster_mcast, see below).
| Note: A node is capable of responding only when the administration daemons (fs2d, cmond, cad, and crsd) or the cxfs_client daemon is running. |
For example, to see the response for two packets sent from IP address 163.154.17.49 to the multicast address for CXFS kernel heartbeat and ignore loopback, enter the following:
nodeA# ping -c 2 -I 163.154.17.49 -L 224.0.0.250 PING 224.0.0.250 (224.0.0.250): 56 data bytes 64 bytes from 163.154.17.140: icmp_seq=0 ttl=64 time=1.146 ms 64 bytes from 163.154.17.55: icmp_seq=0 DUP! ttl=255 time=1.460 ms 64 bytes from 163.154.17.52: icmp_seq=0 DUP! ttl=255 time=4.607 ms 64 bytes from 163.154.17.50: icmp_seq=0 DUP! ttl=255 time=4.942 ms 64 bytes from 163.154.17.140: icmp_seq=1 ttl=64 time=2.692 ms ----224.0.0.250 PING Statistics---- 2 packets transmitted, 2 packets received, +3 duplicates, 0.0% packet loss round-trip min/avg/max = 1.146/2.969/4.942 ms |
The above output indicates that there is a response from the following addresses:
163.154.17.140 163.154.17.55 163.154.17.52 163.154.17.50 |
To override the default address, you can use the -c and -m options on client-only nodes; for more information, see the cxfs_client man page.
To override or explicitly set the CXFS multicast address, do the following:
Set cluster_mcast to an IP address in the range 224.0.0.0 through 239.255.255.255 in the /etc/hosts file and make it resolvable on all nodes in the cluster. If you want to use DNS or another name service, you should avoid using a registered number. For a list of registered numbers, see:
Verify that the /etc/nsswitch.conf file is configured so that local files are accessed before either NIS or DNS. That is, the hosts line in /etc/nsswitch.conf must list files first. For example:
hosts: files nis dns |
For more information, see “Adding a Private Network” in Chapter 6.
To power-cycle a node, see “Control and Contact a Node with cxfs_admin” in Chapter 11.
To reset a node, see “Control and Contact a Node with cxfs_admin” in Chapter 11.
In the case of an abrupt power outage, you can bring up CXFS without mounting the previously mounted filesystems by doing the following:
Boot each server-capable administration node to single-user mode.
Execute the following on each server-capable administration node, to ensure that CXFS will not be started upon reboot:
# chkconfig cxfs off |
Boot each server-capable administration node to multi-user mode.
On one of the server-capable administration nodes, use the cxfs_admin command with the unmount operation to unmount all CXFS filesystems.
For example, to unmount filesystem myfs from nodes node1, node2, and node3:
cxfs_admin:mycluster> unmount myfs nodes=node1,node2,node3 |
See “Unmount a CXFS Filesystem with cxfs_admin” in Chapter 11.
Execute the following on each server-capable administration node, to ensure that CXFS will be started upon reboot:
# chkconfig cxfs on |
Execute the following on each server-capable administration node, to start CXFS:
# service cxfs start |
Before reporting a problem to SGI, you should retain the information by using the cxfsdump(8) utility. See “Cluster Information Gathering Tool (cxfsdump) ”.
Also do the following:
Retain any messages that appeared in the system logs immediately before the system exhibited the problem.
After a system kernel panic, retain the debugger information from the KDB built-in kernel debugger. See “System Dump Analysis Tool”.
When a CXFS daemon or command aborts and creates core files, provide the core files and the following associated information:
The application that created the core file:
file core_filename |
The binaries listed by the following command:
ldd application_path |