This configuration has two servers and two packages. The primary
node for each package NFS-mounts the file systems from its own package
and the other package. Figure 3-7 “Two Servers with NFS
Cross-Mounts” illustrates this
configuration. If one server fails, the other server adopts its
package. The NFS mounts are not interrupted when a package fails
over. Figure 3-8 “Two Servers with NFS
Cross-Mounts” shows the same configuration after
one server has failed.
Figure 3-8 “Two Servers with NFS
Cross-Mounts” shows two servers with NFS cross-mounted
file systems after server thyme has failed. The NFS mounts on server basil are not interrupted.
Cluster Configuration File for Two-Server NFS Cross-Mount |
 |
This section shows the cluster configuration file (cluster.conf) for this configuration example. The comments
are not shown.
CLUSTER_NAME XMnt FIRST_CLUSTER_LOCK_VG /dev/nfsu01 NODE_NAME thyme NETWORK_INTERFACE lan0 HEARTBEAT_IP 15.13.119.146 NETWORK_INTERFACE lan1 FIRST_CLUSTER_LOCK_PV /dev/dsk/c0t1d0 NODE_NAME basil NETWORK_INTERFACE lan0 HEARTBEAT_IP 15.13.113.168 FIRST_CLUSTER_LOCK_PV /dev/dsk/c1t1d0 HEARTBEAT_INTERVAL 1000000 NODE_TIMEOUT 2000000 AUTO_START_TIMEOUT 600000000 NETWORK_POLLING_INTERVAL 2000000 VOLUME_GROUP /dev/nfsu01 VOLUME_GROUP /dev/nfsu02 |
Package Configuration File for pkg01 |
 |
This section shows the package configuration file (nfs1.conf) for the package pkg01 in this sample configuration. The comments are
not shown.
PACKAGE_NAME pkg01 NODE_NAME thyme NODE_NAME basil RUN_SCRIPT /etc/cmcluster/nfs/nfs1.cntl RUN_SCRIPT_TIMEOUT NO_TIMEOUT HALT_SCRIPT /etc/cmcluster/nfs/nfs1.cntl HALT_SCRIPT_TIMEOUT NO_TIMEOUT SERVICE_NAME nfs1.monitor SERVICE_FAIL_FAST_ENABLED NO SERVICE_HALT_TIMEOUT 300 SUBNET 15.13.112.0 PKG_SWITCHING_ENABLED YES NET_SWITCHING_ENABLED YES NODE_FAIL_FAST_ENABLED NO |
NFS Control Script for pkg01 |
 |
This section shows the NFS control script (nfs1.cntl) for the package pkg01 in this sample configuration. Only the user-configured
part of the script is shown; the executable part of the script and
most of the comments have been omitted.
PATH=/sbin:/usr/bin:/usr/sbin:/etc:/bin #VGCHANGE="vgchange -a e -q n" #VGCHANGE="vgchange -a y" VGCHANGE="vgchange -a e" # Default VG[0]=nfsu01 LV[0]=/dev/nfsu01/lvol1; FS[0]=/hanfs/nfsu011 XFS[0]=/hanfs/nfsu011 IP[0]=15.13.114.243 SUBNET[0]=15.13.112.0 NFS_SERVICE_NAME[0]="nfs1.monitor" NFS_SERVICE_CMD[0]="/etc/cmcluster/nfs/nfs.mon" #NFS_SERVICE_RESTART[0]= function customer_defined_run_cmds { /etc/cmcluster/nfs/nfs1_xmnt start remsh basil /etc/cmcluster/nfs/nfs1_xmnt start } |
The function customer_defined_run_cmds calls a script called nfs1_xmnt. This script NFS-mounts the file system exported
by the package pkg01. If you configured the file system in the /etc/fstab file, the package might not be active yet when
the servers tried to mount the file system at system boot. By configuring
the NFS control script to NFS-mount the file system, you ensure
that the package is active before the mount command is invoked.
The first line in the customer_defined_run_cmds function executes the nfs1_xmnt script locally on host thyme (the primary node for pkg01). The second line, beginning with remsh, executes the nfs1_xmnt script remotely on host basil.
If pkg01 fails to come up, or if the remsh to host basil fails, the file system will not be mounted, and
no error will be returned. The only way to be sure the file system
was mounted successfully is to run the nfs1_xmnt script manually on both host thyme and host basil.
The only user-configurable values in the nfs1_xmnt script are the SNFS[n] and CNFS[n] variables. These specify the server location of
the file system and the client mount point for the file system.
The following line is the from the nfs1_xmnt script in this example configuration:
SNFS[0]="nfs1:/hanfs/nfsu011"; CNFS[0]="/nfs/nfsu011" |
In the SNFS[0] variable, "nfs1" is the name that maps to the relocatable IP
address of pkg01. It must be configured in the name service the
host is using (DNS, NIS, or the /etc/hosts file). If you do not want to configure a name
for the package, you can just specify the IP address in the SNFS[0] variable, as follows:
SNFS[0]="15.13.114.243:/hanfs/nfsu011"; CNFS[0]="/nfs/nfsu011" |
The client mount point, specified in the CNFS[0] variable, must be different
from the location of the file system on the server (SNFS[0]).
Package Configuration File for pkg02 |
 |
This section shows the package configuration file (nfs2.conf) for the package pkg02 in this sample configuration. The comments are
not shown.
PACKAGE_NAME pkg02 NODE_NAME basil NODE_NAME thyme RUN_SCRIPT /etc/cmcluster/nfs/nfs2.cntl RUN_SCRIPT_TIMEOUT NO_TIMEOUT HALT_SCRIPT /etc/cmcluster/nfs/nfs2.cntl HALT_SCRIPT_TIMEOUT NO_TIMEOUT SERVICE_NAME nfs2.monitor SERVICE_FAIL_FAST_ENABLED NO SERVICE_HALT_TIMEOUT 300 SUBNET 15.13.112.0 PKG_SWITCHING_ENABLED YES NET_SWITCHING_ENABLED YES NODE_FAIL_FAST_ENABLED NO |
NFS Control Script for pkg02 |
 |
This section shows the NFS control script (nfs2.cntl) for the package pkg02 in this sample configuration. Only the user-configured
part of the script is shown; the executable part of the script and
most of the comments have been omitted.
PATH=/sbin:/usr/bin:/usr/sbin:/etc:/bin #VGCHANGE="vgchange -a e -q n" #VGCHANGE="vgchange -a y" VGCHANGE="vgchange -a e" # Default VG[0]=nfsu02 LV[0]=/dev/nfsu02/lvol1; FS[0]=/hanfs/nfsu021 XFS[0]=/hanfs/nfsu021 IP[0]=15.13.114.244 SUBNET[0]=15.13.112.0 NFS_SERVICE_NAME[0]="nfs2.monitor" NFS_SERVICE_CMD[0]="/etc/cmcluster/nfs/nfs.mon" #NFS_SERVICE_RESTART[0]= function customer_defined_run_cmds { /etc/cmcluster/nfs/nfs2_xmnt start remsh thyme /etc/cmcluster/nfs/nfs2_xmnt start } |
The function customer_defined_run_cmds calls a script called nfs2_xmnt. This script NFS-mounts the file system exported
by the package pkg02. If you configured the file system in the /etc/fstab file, the package might not be active yet when
the servers tried to mount the file system at system boot. By configuring
the NFS control script to NFS-mount the file system, you ensure
that the package is active before the mount command is invoked.
The first line in the customer_defined_run_cmds function executes the nfs2_xmnt script locally on host basil (the primary node for pkg02). The second line, beginning with remsh, executes the nfs2_xmnt script remotely on host thyme.
If pkg02 fails to come up, or if the remsh to host thyme fails, the file system will not be mounted, and
no error will be returned. The only way to be sure the file system
was mounted successfully is to run the nfs2_xmnt script manually on both host basil and host thyme.
The only user-configurable values in the nfs2_xmnt script are the SNFS[n] and CNFS[n] variables. These specify the server location of
the file system and the client mount point for the file system.
The following line is the from the nfs2_xmnt script in this example configuration:
SNFS[0]="nfs2:/hanfs/nfsu021"; CNFS[0]="/nfs/nfsu021" |
In the SNFS[0] variable, "nfs2" is the name that maps to the relocatable IP
address of pkg02. It must be configured in the name service the
host is using (DNS, NIS, or the /etc/hosts file). If you do not want to configure a name
for the package, you can just specify the IP address in the SNFS[0] variable, as follows:
SNFS[0]="15.13.114.244:/hanfs/nfsu021"; CNFS[0]="/nfs/nfsu021" |
The client mount point, specified in the CNFS[0] variable, must be different
from the location of the file system on the server (SNFS[0]).