It's true – the CFS is a client-server implementation; however, the TruCluster engineers at Compaq are continually improving the CFS to reduce the amount of communication between CFS clients and the CFS servers. For example, in V5.0A, double caching at the CFS server was eliminated while read-ahead for large I/O operations and Direct I/O was added. In V5.1, Concurrent Direct I/O was introduced, allowing clients with a physical path to a device to use it, thereby reducing (but not eliminating) communication to the CFS server. And in V5.1A, Direct Access Cached Reads were introduced, increasing performance yet again. For additional information, see the following sections:
| 13.7 |
| 13.7.1 |
| 13.8 |
More information can also be found in the TruCluster Server Technical Overview for version 5.1 and 5.1A (section 2.2) and the TruCluster Server Cluster Administration Guide (chapter 9).
Any member in the cluster can be a CFS server, and multiple CFS servers will likely exist in any instance of a running cluster because there is a CFS server per file system (or domain).
You can use the cfsmgr(8) command to see which member is the CFS server for each file system or domain.
# cfsmgr /u1 /kits Domain or filesystem name = /u1 Server Name = sheridan Server Status : OK Domain or filesystem name = /kits Server Name = sheridan Server Status : OK
Note that you can see all the mounted file systems by using the cfsmgr command without any arguments.
When a cluster is first formed, the first member booted is apt to become the CFS server for all of the file systems it can see. As other members join the cluster, they will serve their member boot_partition file system as well as any file systems on local buses or semi-shared buses where the previously booted member(s) did not have physical access. The CFS will always choose a member with direct connectivity to a device to be the CFS server for a file system located on that device.
Here is an example showing which file systems are served (by member) on our two-member cluster:
# cfs CFS Server Mount Point File System FS Type ----------------- ------------------------- ------------------------ ------- molari /cluster/members/member1/ root1_domain#root AdvFS boot_partition sheridan /cdrom /dev/disk/cdrom1c CDFS sheridan /mnt /dev/disk/dsk5a UFS sheridan / cluster_root#root AdvFS sheridan /usr cluster_usr#usr AdvFS sheridan /var cluster_var#var AdvFS sheridan /kits extra#kits AdvFS sheridan /u1 home#u1 AdvFS sheridan /cluster/members/member2/ root2_domain#root AdvFS boot_partition sheridan @ /fafrak tcrhb#fafrak AdvFS sheridan @ /lola tcrhb#lola AdvFS
From the output we can infer that sheridan was probably the first member booted (or that molari was rebooted at some point). In this case, sheridan was booted first.
Note | The cfs command is not a Compaq-supplied command but a Perl script written for this book so that we can show the raw output from the cfsmgr command in a formatted tabular output sorted by cluster member. All of the information is gathered from the cfsmgr command with the "-F raw" and "–a server" switches. |
# cfsmgr -F raw -a server molari 1 2001 07 03 17 38 58 cluster_root#root AdvFS FS / sheridan 0 1 root1_domain#root AdvFS FS /cluster/members/member1/boot_partition molari 0 1 root2_domain#root AdvFS FS /cluster/members/member2/boot_partition sheridan 0 1 cluster_usr#usr AdvFS FS /usr sheridan 0 1 cluster_var#var AdvFS FS /var sheridan 0 1 home#u1 AdvFS FS /u1 sheridan 0 1 extra#kits AdvFS FS /kits sheridan 0 1 tcrhb#fafrak AdvFS FS /fafrak sheridan 0 1 tcrhb#lola AdvFS FS /lola sheridan 0 1 /dev/disk/cdrom1c CDFS FS /cdrom sheridan 0 1 /dev/disk/dsk5a UFS FS /mnt sheridan 0 1
You can download the cfs command from the TruCluster Server Handbook web site (See Appendix B for the URL). There are two versions of cfs:
| cfs |
| cfs_p5.005 |
Tru64 UNIX version 5.1A includes Perl version 5.6.0, and the cfs command takes advantage of features specific to V5.6.0. So, if you have Perl version 5.6.0 or greater installed on your system, then use cfs; otherwise use cfs_p5.005.